├── .gitignore ├── 2020ECCV_HALO_Camera_Ready.pdf ├── LICENSE ├── README.md ├── environment.yml ├── l2o-scale-regularize-test ├── .gitignore ├── .idea │ ├── inspectionProfiles │ │ └── profiles_settings.xml │ ├── learned_optimizer.iml │ ├── misc.xml │ ├── modules.xml │ └── workspace.xml ├── .l2o_scale.sh.swp ├── TDD-Female.npy ├── TDD-Male.npy ├── cifar10.py ├── jetsonTX2Power.py ├── metaopt.py ├── metaopt_energy.py ├── metaopt_wearable.py ├── metarun.py ├── metatest.py ├── metatest_adapt.py ├── metatest_adapt_PIE.py ├── metatest_adapt_TDD.py ├── metatest_adapt_lstm.py ├── metatest_adapt_lstm_energy.py ├── metatest_adapt_preresnet.py ├── metatest_adapt_timing.py ├── metatest_adapt_wearable.py ├── mnist.py ├── optimizer │ ├── BUILD │ ├── coordinatewise_rnn.py │ ├── global_learning_rate.py │ ├── hierarchical_rnn.py │ ├── learning_rate_schedule.py │ ├── rnn_cells.py │ ├── trainable_adam.py │ ├── trainable_optimizer.py │ └── utils.py ├── problems │ ├── .gitignore │ ├── SML_config.json │ ├── config.py │ ├── datasets.py │ ├── model_adapter.py │ ├── problem_generator.py │ ├── problem_sets.py │ └── problem_spec.py ├── train_pretrain.py └── train_pretrain_lstm.py └── l2o-scale-regularize-train ├── .gitignore ├── .idea ├── inspectionProfiles │ └── profiles_settings.xml ├── learned_optimizer.iml ├── misc.xml ├── modules.xml └── workspace.xml ├── dtata_process.py ├── metaopt.py ├── metarun.py ├── metarun_adapt.py ├── metatest.py ├── mnist ├── .gitignore ├── BUILD ├── __init__.py ├── fully_connected_feed.py ├── input_data.py ├── minisst_data.png ├── mnist.py ├── mnist_softmax_xla.py └── mnist_with_summaries.py ├── optimizer ├── BUILD ├── coordinatewise_rnn.py ├── global_learning_rate.py ├── hierarchical_rnn.py ├── learning_rate_schedule.py ├── rnn_cells.py ├── trainable_adam.py ├── trainable_optimizer.py └── utils.py └── problems ├── BUILD ├── datasets.py ├── model_adapter.py ├── problem_generator.py ├── problem_sets.py └── problem_spec.py /.gitignore: -------------------------------------------------------------------------------- 1 | **/__pycache__/** 2 | **/BUILD/** -------------------------------------------------------------------------------- /2020ECCV_HALO_Camera_Ready.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/2020ECCV_HALO_Camera_Ready.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/README.md -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/environment.yml -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.gitignore -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.idea/inspectionProfiles/profiles_settings.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.idea/learned_optimizer.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.idea/learned_optimizer.iml -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.idea/misc.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.idea/modules.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.idea/workspace.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.idea/workspace.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-test/.l2o_scale.sh.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/.l2o_scale.sh.swp -------------------------------------------------------------------------------- /l2o-scale-regularize-test/TDD-Female.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/TDD-Female.npy -------------------------------------------------------------------------------- /l2o-scale-regularize-test/TDD-Male.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/TDD-Male.npy -------------------------------------------------------------------------------- /l2o-scale-regularize-test/cifar10.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/cifar10.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/jetsonTX2Power.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/jetsonTX2Power.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metaopt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metaopt.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metaopt_energy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metaopt_energy.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metaopt_wearable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metaopt_wearable.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metarun.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metarun.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_PIE.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_PIE.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_TDD.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_TDD.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_lstm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_lstm.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_lstm_energy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_lstm_energy.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_preresnet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_preresnet.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_timing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_timing.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/metatest_adapt_wearable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/metatest_adapt_wearable.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/mnist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/mnist.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/BUILD -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/coordinatewise_rnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/coordinatewise_rnn.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/global_learning_rate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/global_learning_rate.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/hierarchical_rnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/hierarchical_rnn.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/learning_rate_schedule.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/learning_rate_schedule.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/rnn_cells.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/rnn_cells.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/trainable_adam.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/trainable_adam.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/trainable_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/trainable_optimizer.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/optimizer/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/optimizer/utils.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/.gitignore -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/SML_config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/SML_config.json -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/config.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/datasets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/datasets.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/model_adapter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/model_adapter.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/problem_generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/problem_generator.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/problem_sets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/problem_sets.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/problems/problem_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/problems/problem_spec.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/train_pretrain.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/train_pretrain.py -------------------------------------------------------------------------------- /l2o-scale-regularize-test/train_pretrain_lstm.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-test/train_pretrain_lstm.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/.gitignore -------------------------------------------------------------------------------- /l2o-scale-regularize-train/.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/.idea/inspectionProfiles/profiles_settings.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-train/.idea/learned_optimizer.iml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/.idea/learned_optimizer.iml -------------------------------------------------------------------------------- /l2o-scale-regularize-train/.idea/misc.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/.idea/misc.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-train/.idea/modules.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/.idea/modules.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-train/.idea/workspace.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/.idea/workspace.xml -------------------------------------------------------------------------------- /l2o-scale-regularize-train/dtata_process.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/dtata_process.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/metaopt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/metaopt.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/metarun.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/metarun.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/metarun_adapt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/metarun_adapt.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/metatest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/metatest.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/.gitignore -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/BUILD -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/__init__.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/fully_connected_feed.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/fully_connected_feed.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/input_data.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/input_data.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/minisst_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/minisst_data.png -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/mnist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/mnist.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/mnist_softmax_xla.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/mnist_softmax_xla.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/mnist/mnist_with_summaries.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/mnist/mnist_with_summaries.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/BUILD -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/coordinatewise_rnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/coordinatewise_rnn.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/global_learning_rate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/global_learning_rate.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/hierarchical_rnn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/hierarchical_rnn.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/learning_rate_schedule.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/learning_rate_schedule.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/rnn_cells.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/rnn_cells.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/trainable_adam.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/trainable_adam.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/trainable_optimizer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/trainable_optimizer.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/optimizer/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/optimizer/utils.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/problems/BUILD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/problems/BUILD -------------------------------------------------------------------------------- /l2o-scale-regularize-train/problems/datasets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/problems/datasets.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/problems/model_adapter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/problems/model_adapter.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/problems/problem_generator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/problems/problem_generator.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/problems/problem_sets.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/problems/problem_sets.py -------------------------------------------------------------------------------- /l2o-scale-regularize-train/problems/problem_spec.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GATECH-EIC/HALO/HEAD/l2o-scale-regularize-train/problems/problem_spec.py --------------------------------------------------------------------------------