# -*- encoding: utf-8 -*- # stub: dynflow 0.8.32 ruby lib Gem::Specification.new do |s| s.name = "dynflow".freeze s.version = "0.8.32".freeze s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.require_paths = ["lib".freeze] s.authors = ["Ivan Necas".freeze, "Petr Chalupa".freeze] s.date = "2017-10-30" s.description = "Ruby workflow/orchestration engine".freeze s.email = ["inecas@redhat.com".freeze] s.files = [".gitignore".freeze, ".rubocop.yml".freeze, ".rubocop_todo.yml".freeze, ".travis.yml".freeze, "Gemfile".freeze, "MIT-LICENSE".freeze, "README.md".freeze, "Rakefile".freeze, "doc/images/logo.png".freeze, "doc/images/screenshot.png".freeze, "doc/pages/.gitignore".freeze, "doc/pages/Gemfile".freeze, "doc/pages/Rakefile".freeze, "doc/pages/_config.yml".freeze, "doc/pages/plugins/alert_block.rb".freeze, "doc/pages/plugins/div_tag.rb".freeze, "doc/pages/plugins/graphviz.rb".freeze, "doc/pages/plugins/plantuml.rb".freeze, "doc/pages/plugins/play.rb".freeze, "doc/pages/plugins/tags.rb".freeze, "doc/pages/plugins/toc.rb".freeze, "doc/pages/source/.nojekyll".freeze, "doc/pages/source/404.md".freeze, "doc/pages/source/_drafts/2015-03-01-new-documentation.markdown".freeze, "doc/pages/source/_includes/disqus.html".freeze, "doc/pages/source/_includes/google_analytics.html".freeze, "doc/pages/source/_includes/google_plus_one.html".freeze, "doc/pages/source/_includes/menu.html".freeze, "doc/pages/source/_includes/menu_brand.html".freeze, "doc/pages/source/_includes/menu_right.html".freeze, "doc/pages/source/_includes/post_item.html".freeze, "doc/pages/source/_includes/scroll_to.html".freeze, "doc/pages/source/_includes/twitter_sharing.html".freeze, "doc/pages/source/_layouts/default.html".freeze, "doc/pages/source/_layouts/page.html".freeze, "doc/pages/source/_layouts/post.html".freeze, "doc/pages/source/_layouts/presentation.html".freeze, "doc/pages/source/_layouts/tag_page.html".freeze, "doc/pages/source/_sass/_bootstrap-compass.scss".freeze, "doc/pages/source/_sass/_bootstrap-mincer.scss".freeze, "doc/pages/source/_sass/_bootstrap-sprockets.scss".freeze, "doc/pages/source/_sass/_bootstrap-variables.sass".freeze, "doc/pages/source/_sass/_bootstrap.scss".freeze, "doc/pages/source/_sass/_specific.scss".freeze, "doc/pages/source/_sass/_style.scss".freeze, "doc/pages/source/_sass/bootstrap/_alerts.scss".freeze, "doc/pages/source/_sass/bootstrap/_badges.scss".freeze, "doc/pages/source/_sass/bootstrap/_breadcrumbs.scss".freeze, "doc/pages/source/_sass/bootstrap/_button-groups.scss".freeze, "doc/pages/source/_sass/bootstrap/_buttons.scss".freeze, "doc/pages/source/_sass/bootstrap/_carousel.scss".freeze, "doc/pages/source/_sass/bootstrap/_close.scss".freeze, "doc/pages/source/_sass/bootstrap/_code.scss".freeze, "doc/pages/source/_sass/bootstrap/_component-animations.scss".freeze, "doc/pages/source/_sass/bootstrap/_dropdowns.scss".freeze, "doc/pages/source/_sass/bootstrap/_forms.scss".freeze, "doc/pages/source/_sass/bootstrap/_glyphicons.scss".freeze, "doc/pages/source/_sass/bootstrap/_grid.scss".freeze, "doc/pages/source/_sass/bootstrap/_input-groups.scss".freeze, "doc/pages/source/_sass/bootstrap/_jumbotron.scss".freeze, "doc/pages/source/_sass/bootstrap/_labels.scss".freeze, "doc/pages/source/_sass/bootstrap/_list-group.scss".freeze, "doc/pages/source/_sass/bootstrap/_media.scss".freeze, "doc/pages/source/_sass/bootstrap/_mixins.scss".freeze, "doc/pages/source/_sass/bootstrap/_modals.scss".freeze, "doc/pages/source/_sass/bootstrap/_navbar.scss".freeze, "doc/pages/source/_sass/bootstrap/_navs.scss".freeze, "doc/pages/source/_sass/bootstrap/_normalize.scss".freeze, "doc/pages/source/_sass/bootstrap/_pager.scss".freeze, "doc/pages/source/_sass/bootstrap/_pagination.scss".freeze, "doc/pages/source/_sass/bootstrap/_panels.scss".freeze, "doc/pages/source/_sass/bootstrap/_popovers.scss".freeze, "doc/pages/source/_sass/bootstrap/_print.scss".freeze, "doc/pages/source/_sass/bootstrap/_progress-bars.scss".freeze, "doc/pages/source/_sass/bootstrap/_responsive-embed.scss".freeze, "doc/pages/source/_sass/bootstrap/_responsive-utilities.scss".freeze, "doc/pages/source/_sass/bootstrap/_scaffolding.scss".freeze, "doc/pages/source/_sass/bootstrap/_tables.scss".freeze, "doc/pages/source/_sass/bootstrap/_theme.scss".freeze, "doc/pages/source/_sass/bootstrap/_thumbnails.scss".freeze, "doc/pages/source/_sass/bootstrap/_tooltip.scss".freeze, "doc/pages/source/_sass/bootstrap/_type.scss".freeze, "doc/pages/source/_sass/bootstrap/_utilities.scss".freeze, "doc/pages/source/_sass/bootstrap/_variables.scss".freeze, "doc/pages/source/_sass/bootstrap/_wells.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_alerts.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_background-variant.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_border-radius.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_buttons.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_center-block.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_clearfix.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_forms.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_gradients.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_grid-framework.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_grid.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_hide-text.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_image.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_labels.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_list-group.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_nav-divider.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_nav-vertical-align.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_opacity.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_pagination.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_panels.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_progress-bar.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_reset-filter.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_resize.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_responsive-visibility.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_size.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_tab-focus.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_table-row.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_text-emphasis.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_text-overflow.scss".freeze, "doc/pages/source/_sass/bootstrap/mixins/_vendor-prefixes.scss".freeze, "doc/pages/source/atom.xml".freeze, "doc/pages/source/blog/index.html".freeze, "doc/pages/source/bootstrap/config.json".freeze, "doc/pages/source/bootstrap/css/bootstrap-theme.css".freeze, "doc/pages/source/bootstrap/css/bootstrap-theme.min.css".freeze, "doc/pages/source/bootstrap/css/bootstrap.css".freeze, "doc/pages/source/bootstrap/css/bootstrap.min.css".freeze, "doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.eot".freeze, "doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.svg".freeze, "doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.ttf".freeze, "doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.woff".freeze, "doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.woff2".freeze, "doc/pages/source/bootstrap/js/bootstrap.js".freeze, "doc/pages/source/bootstrap/js/bootstrap.min.js".freeze, "doc/pages/source/css/app.scss".freeze, "doc/pages/source/css/syntax.css".freeze, "doc/pages/source/documentation/index.md".freeze, "doc/pages/source/faq/index.md".freeze, "doc/pages/source/images/dynflow-logos.svg".freeze, "doc/pages/source/images/logo-long.png".freeze, "doc/pages/source/images/logo-long.svg".freeze, "doc/pages/source/images/logo-square.png".freeze, "doc/pages/source/images/logo-square.svg".freeze, "doc/pages/source/images/noise.png".freeze, "doc/pages/source/images/screenshot.png".freeze, "doc/pages/source/index.md".freeze, "doc/pages/source/media/index.md".freeze, "doc/pages/source/projects/index.md".freeze, "dynflow.gemspec".freeze, "examples/example_helper.rb".freeze, "examples/future_execution.rb".freeze, "examples/memory_limit_watcher.rb".freeze, "examples/orchestrate.rb".freeze, "examples/orchestrate_evented.rb".freeze, "examples/remote_executor.rb".freeze, "examples/singletons.rb".freeze, "examples/sub_plan_concurrency_control.rb".freeze, "examples/sub_plans.rb".freeze, "lib/dynflow.rb".freeze, "lib/dynflow/action.rb".freeze, "lib/dynflow/action/cancellable.rb".freeze, "lib/dynflow/action/format.rb".freeze, "lib/dynflow/action/missing.rb".freeze, "lib/dynflow/action/polling.rb".freeze, "lib/dynflow/action/progress.rb".freeze, "lib/dynflow/action/rescue.rb".freeze, "lib/dynflow/action/singleton.rb".freeze, "lib/dynflow/action/suspended.rb".freeze, "lib/dynflow/action/timeouts.rb".freeze, "lib/dynflow/action/with_bulk_sub_plans.rb".freeze, "lib/dynflow/action/with_polling_sub_plans.rb".freeze, "lib/dynflow/action/with_sub_plans.rb".freeze, "lib/dynflow/active_job/queue_adapter.rb".freeze, "lib/dynflow/actor.rb".freeze, "lib/dynflow/actors.rb".freeze, "lib/dynflow/actors/execution_plan_cleaner.rb".freeze, "lib/dynflow/clock.rb".freeze, "lib/dynflow/config.rb".freeze, "lib/dynflow/connectors.rb".freeze, "lib/dynflow/connectors/abstract.rb".freeze, "lib/dynflow/connectors/database.rb".freeze, "lib/dynflow/connectors/direct.rb".freeze, "lib/dynflow/coordinator.rb".freeze, "lib/dynflow/coordinator_adapters.rb".freeze, "lib/dynflow/coordinator_adapters/abstract.rb".freeze, "lib/dynflow/coordinator_adapters/sequel.rb".freeze, "lib/dynflow/dead_letter_silencer.rb".freeze, "lib/dynflow/delayed_executors.rb".freeze, "lib/dynflow/delayed_executors/abstract.rb".freeze, "lib/dynflow/delayed_executors/abstract_core.rb".freeze, "lib/dynflow/delayed_executors/polling.rb".freeze, "lib/dynflow/delayed_plan.rb".freeze, "lib/dynflow/director.rb".freeze, "lib/dynflow/director/execution_plan_manager.rb".freeze, "lib/dynflow/director/flow_manager.rb".freeze, "lib/dynflow/director/running_steps_manager.rb".freeze, "lib/dynflow/director/sequence_cursor.rb".freeze, "lib/dynflow/director/sequential_manager.rb".freeze, "lib/dynflow/director/work_queue.rb".freeze, "lib/dynflow/dispatcher.rb".freeze, "lib/dynflow/dispatcher/abstract.rb".freeze, "lib/dynflow/dispatcher/client_dispatcher.rb".freeze, "lib/dynflow/dispatcher/executor_dispatcher.rb".freeze, "lib/dynflow/errors.rb".freeze, "lib/dynflow/execution_history.rb".freeze, "lib/dynflow/execution_plan.rb".freeze, "lib/dynflow/execution_plan/dependency_graph.rb".freeze, "lib/dynflow/execution_plan/output_reference.rb".freeze, "lib/dynflow/execution_plan/steps.rb".freeze, "lib/dynflow/execution_plan/steps/abstract.rb".freeze, "lib/dynflow/execution_plan/steps/abstract_flow_step.rb".freeze, "lib/dynflow/execution_plan/steps/error.rb".freeze, "lib/dynflow/execution_plan/steps/finalize_step.rb".freeze, "lib/dynflow/execution_plan/steps/plan_step.rb".freeze, "lib/dynflow/execution_plan/steps/run_step.rb".freeze, "lib/dynflow/executors.rb".freeze, "lib/dynflow/executors/abstract.rb".freeze, "lib/dynflow/executors/parallel.rb".freeze, "lib/dynflow/executors/parallel/core.rb".freeze, "lib/dynflow/executors/parallel/pool.rb".freeze, "lib/dynflow/executors/parallel/worker.rb".freeze, "lib/dynflow/flows.rb".freeze, "lib/dynflow/flows/abstract.rb".freeze, "lib/dynflow/flows/abstract_composed.rb".freeze, "lib/dynflow/flows/atom.rb".freeze, "lib/dynflow/flows/concurrence.rb".freeze, "lib/dynflow/flows/sequence.rb".freeze, "lib/dynflow/logger_adapters.rb".freeze, "lib/dynflow/logger_adapters/abstract.rb".freeze, "lib/dynflow/logger_adapters/delegator.rb".freeze, "lib/dynflow/logger_adapters/formatters.rb".freeze, "lib/dynflow/logger_adapters/formatters/abstract.rb".freeze, "lib/dynflow/logger_adapters/formatters/exception.rb".freeze, "lib/dynflow/logger_adapters/simple.rb".freeze, "lib/dynflow/middleware.rb".freeze, "lib/dynflow/middleware/common/singleton.rb".freeze, "lib/dynflow/middleware/common/transaction.rb".freeze, "lib/dynflow/middleware/register.rb".freeze, "lib/dynflow/middleware/resolver.rb".freeze, "lib/dynflow/middleware/stack.rb".freeze, "lib/dynflow/middleware/world.rb".freeze, "lib/dynflow/persistence.rb".freeze, "lib/dynflow/persistence_adapters.rb".freeze, "lib/dynflow/persistence_adapters/abstract.rb".freeze, "lib/dynflow/persistence_adapters/sequel.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/001_initial.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/002_incremental_progress.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/003_parent_action.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/004_coordinator_records.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/005_envelopes.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/006_fix_data_length.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/007_future_execution.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/008_rename_scheduled_plans_to_delayed_plans.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/009_fix_mysql_data_length.rb".freeze, "lib/dynflow/persistence_adapters/sequel_migrations/010_add_execution_plans_label.rb".freeze, "lib/dynflow/rails.rb".freeze, "lib/dynflow/rails/configuration.rb".freeze, "lib/dynflow/rails/daemon.rb".freeze, "lib/dynflow/round_robin.rb".freeze, "lib/dynflow/semaphores.rb".freeze, "lib/dynflow/semaphores/abstract.rb".freeze, "lib/dynflow/semaphores/aggregating.rb".freeze, "lib/dynflow/semaphores/dummy.rb".freeze, "lib/dynflow/semaphores/stateful.rb".freeze, "lib/dynflow/serializable.rb".freeze, "lib/dynflow/serializer.rb".freeze, "lib/dynflow/serializers.rb".freeze, "lib/dynflow/serializers/abstract.rb".freeze, "lib/dynflow/serializers/noop.rb".freeze, "lib/dynflow/stateful.rb".freeze, "lib/dynflow/testing.rb".freeze, "lib/dynflow/testing/assertions.rb".freeze, "lib/dynflow/testing/dummy_execution_plan.rb".freeze, "lib/dynflow/testing/dummy_executor.rb".freeze, "lib/dynflow/testing/dummy_planned_action.rb".freeze, "lib/dynflow/testing/dummy_step.rb".freeze, "lib/dynflow/testing/dummy_world.rb".freeze, "lib/dynflow/testing/factories.rb".freeze, "lib/dynflow/testing/in_thread_executor.rb".freeze, "lib/dynflow/testing/in_thread_world.rb".freeze, "lib/dynflow/testing/managed_clock.rb".freeze, "lib/dynflow/testing/mimic.rb".freeze, "lib/dynflow/throttle_limiter.rb".freeze, "lib/dynflow/transaction_adapters.rb".freeze, "lib/dynflow/transaction_adapters/abstract.rb".freeze, "lib/dynflow/transaction_adapters/active_record.rb".freeze, "lib/dynflow/transaction_adapters/none.rb".freeze, "lib/dynflow/utils.rb".freeze, "lib/dynflow/version.rb".freeze, "lib/dynflow/watchers/memory_consumption_watcher.rb".freeze, "lib/dynflow/web.rb".freeze, "lib/dynflow/web/console.rb".freeze, "lib/dynflow/web/console_helpers.rb".freeze, "lib/dynflow/web/filtering_helpers.rb".freeze, "lib/dynflow/web/world_helpers.rb".freeze, "lib/dynflow/web_console.rb".freeze, "lib/dynflow/world.rb".freeze, "test/abnormal_states_recovery_test.rb".freeze, "test/action_test.rb".freeze, "test/activejob_adapter_test.rb".freeze, "test/batch_sub_tasks_test.rb".freeze, "test/clock_test.rb".freeze, "test/concurrency_control_test.rb".freeze, "test/coordinator_test.rb".freeze, "test/daemon_test.rb".freeze, "test/dead_letter_silencer_test.rb".freeze, "test/dispatcher_test.rb".freeze, "test/execution_plan_cleaner_test.rb".freeze, "test/execution_plan_test.rb".freeze, "test/executor_test.rb".freeze, "test/future_execution_test.rb".freeze, "test/memory_cosumption_watcher_test.rb".freeze, "test/middleware_test.rb".freeze, "test/persistence_test.rb".freeze, "test/prepare_travis_env.sh".freeze, "test/rescue_test.rb".freeze, "test/round_robin_test.rb".freeze, "test/semaphores_test.rb".freeze, "test/support/code_workflow_example.rb".freeze, "test/support/dummy_example.rb".freeze, "test/support/middleware_example.rb".freeze, "test/support/rails/config/environment.rb".freeze, "test/support/rescue_example.rb".freeze, "test/support/test_execution_log.rb".freeze, "test/test_helper.rb".freeze, "test/testing_test.rb".freeze, "test/web_console_test.rb".freeze, "test/world_test.rb".freeze, "web/assets/images/logo-square.png".freeze, "web/assets/javascripts/application.js".freeze, "web/assets/stylesheets/application.css".freeze, "web/assets/vendor/bootstrap/config.json".freeze, "web/assets/vendor/bootstrap/css/bootstrap-theme.css".freeze, "web/assets/vendor/bootstrap/css/bootstrap-theme.min.css".freeze, "web/assets/vendor/bootstrap/css/bootstrap.css".freeze, "web/assets/vendor/bootstrap/css/bootstrap.min.css".freeze, "web/assets/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot".freeze, "web/assets/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg".freeze, "web/assets/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf".freeze, "web/assets/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff".freeze, "web/assets/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff2".freeze, "web/assets/vendor/bootstrap/js/bootstrap.js".freeze, "web/assets/vendor/bootstrap/js/bootstrap.min.js".freeze, "web/assets/vendor/jquery/jquery.js".freeze, "web/views/execution_history.erb".freeze, "web/views/flow.erb".freeze, "web/views/flow_step.erb".freeze, "web/views/index.erb".freeze, "web/views/layout.erb".freeze, "web/views/plan_step.erb".freeze, "web/views/show.erb".freeze, "web/views/worlds.erb".freeze] s.homepage = "http://github.com/Dynflow/dynflow".freeze s.licenses = ["MIT".freeze] s.required_ruby_version = Gem::Requirement.new(">= 2.0.0".freeze) s.rubygems_version = "3.5.10".freeze s.summary = "DYNamic workFLOW engine".freeze s.test_files = ["test/abnormal_states_recovery_test.rb".freeze, "test/action_test.rb".freeze, "test/activejob_adapter_test.rb".freeze, "test/batch_sub_tasks_test.rb".freeze, "test/clock_test.rb".freeze, "test/concurrency_control_test.rb".freeze, "test/coordinator_test.rb".freeze, "test/daemon_test.rb".freeze, "test/dead_letter_silencer_test.rb".freeze, "test/dispatcher_test.rb".freeze, "test/execution_plan_cleaner_test.rb".freeze, "test/execution_plan_test.rb".freeze, "test/executor_test.rb".freeze, "test/future_execution_test.rb".freeze, "test/memory_cosumption_watcher_test.rb".freeze, "test/middleware_test.rb".freeze, "test/persistence_test.rb".freeze, "test/prepare_travis_env.sh".freeze, "test/rescue_test.rb".freeze, "test/round_robin_test.rb".freeze, "test/semaphores_test.rb".freeze, "test/support/code_workflow_example.rb".freeze, "test/support/dummy_example.rb".freeze, "test/support/middleware_example.rb".freeze, "test/support/rails/config/environment.rb".freeze, "test/support/rescue_example.rb".freeze, "test/support/test_execution_log.rb".freeze, "test/test_helper.rb".freeze, "test/testing_test.rb".freeze, "test/web_console_test.rb".freeze, "test/world_test.rb".freeze] s.specification_version = 4 s.add_runtime_dependency(%q.freeze, [">= 0".freeze]) s.add_runtime_dependency(%q.freeze, [">= 0".freeze]) s.add_runtime_dependency(%q.freeze, ["~> 0.7.0".freeze]) s.add_runtime_dependency(%q.freeze, ["~> 1.0".freeze]) s.add_runtime_dependency(%q.freeze, ["~> 0.2.0".freeze]) s.add_runtime_dependency(%q.freeze, [">= 4.0.0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) s.add_development_dependency(%q.freeze, [">= 0".freeze]) end