File size: 14,080 Bytes
71f1aa7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
{
    "policy_class": {
        ":type:": "<class 'abc.ABCMeta'>",
        ":serialized:": "gAWVOwAAAAAAAACMIXN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbi5wb2xpY2llc5SMEUFjdG9yQ3JpdGljUG9saWN5lJOULg==",
        "__module__": "stable_baselines3.common.policies",
        "__doc__": "\n    Policy class for actor-critic algorithms (has both policy and value prediction).\n    Used by A2C, PPO and the likes.\n\n    :param observation_space: Observation space\n    :param action_space: Action space\n    :param lr_schedule: Learning rate schedule (could be constant)\n    :param net_arch: The specification of the policy and value networks.\n    :param activation_fn: Activation function\n    :param ortho_init: Whether to use or not orthogonal initialization\n    :param use_sde: Whether to use State Dependent Exploration or not\n    :param log_std_init: Initial value for the log standard deviation\n    :param full_std: Whether to use (n_features x n_actions) parameters\n        for the std instead of only (n_features,) when using gSDE\n    :param use_expln: Use ``expln()`` function instead of ``exp()`` to ensure\n        a positive standard deviation (cf paper). It allows to keep variance\n        above zero and prevent it from growing too fast. In practice, ``exp()`` is usually enough.\n    :param squash_output: Whether to squash the output using a tanh function,\n        this allows to ensure boundaries when using gSDE.\n    :param features_extractor_class: Features extractor to use.\n    :param features_extractor_kwargs: Keyword arguments\n        to pass to the features extractor.\n    :param share_features_extractor: If True, the features extractor is shared between the policy and value networks.\n    :param normalize_images: Whether to normalize images or not,\n         dividing by 255.0 (True by default)\n    :param optimizer_class: The optimizer to use,\n        ``th.optim.Adam`` by default\n    :param optimizer_kwargs: Additional keyword arguments,\n        excluding the learning rate, to pass to the optimizer\n    ",
        "__init__": "<function ActorCriticPolicy.__init__ at 0x7e5bed3dbf40>",
        "_get_constructor_parameters": "<function ActorCriticPolicy._get_constructor_parameters at 0x7e5bed3e0040>",
        "reset_noise": "<function ActorCriticPolicy.reset_noise at 0x7e5bed3e00d0>",
        "_build_mlp_extractor": "<function ActorCriticPolicy._build_mlp_extractor at 0x7e5bed3e0160>",
        "_build": "<function ActorCriticPolicy._build at 0x7e5bed3e01f0>",
        "forward": "<function ActorCriticPolicy.forward at 0x7e5bed3e0280>",
        "extract_features": "<function ActorCriticPolicy.extract_features at 0x7e5bed3e0310>",
        "_get_action_dist_from_latent": "<function ActorCriticPolicy._get_action_dist_from_latent at 0x7e5bed3e03a0>",
        "_predict": "<function ActorCriticPolicy._predict at 0x7e5bed3e0430>",
        "evaluate_actions": "<function ActorCriticPolicy.evaluate_actions at 0x7e5bed3e04c0>",
        "get_distribution": "<function ActorCriticPolicy.get_distribution at 0x7e5bed3e0550>",
        "predict_values": "<function ActorCriticPolicy.predict_values at 0x7e5bed3e05e0>",
        "__abstractmethods__": "frozenset()",
        "_abc_impl": "<_abc._abc_data object at 0x7e5bed576840>"
    },
    "verbose": 1,
    "policy_kwargs": {},
    "num_timesteps": 1015808,
    "_total_timesteps": 1000000,
    "_num_timesteps_at_start": 0,
    "seed": null,
    "action_noise": null,
    "start_time": 1701438508933284224,
    "learning_rate": 0.0003,
    "tensorboard_log": null,
    "_last_obs": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVdQIAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYAAgAAAAAAADNpNTxD2Ru8Gop8PVl6GL4SDYq8mJktvQAAgD8AAIA/ANJSPaTaS7vqlN28JIsDPScTojuCQ8q8AACAPwAAgD9mDlc9FHiSuooYcrpk9Ko1WTjaOSz0izkAAIA/AACAPwD8uDtchwy6G4ZZOZ6zXrYEC6g7mvN7uAAAgD8AAIA/ZkKKO1KY6rk48tU6LFjDNyvvHrsbY923AACAPwAAgD+TdD++uumbPwacwr4D0rS+9dVovrrg2r0AAAAAAAAAAADBtTxI46a6sJWOu2CnWbZ3GI85NVCjOgAAgD8AAIA/ZoodvFxjWrphU7O3V0q/slFomLj7ztI2AACAPwAAgD/NKg4+MYynPkMVLb2mn2q+4cogPeMcNDsAAAAAAAAAAGale70pQFW6nMwsune6d7Q2zk065lhLOQAAgD8AAIA/ZmQwvBTslrrehUE7LcwLNlRhyjp+Yl+6AACAPwAAgD/Qvmm+W6THvPJ7gj4kRbm928RZPlfzQz8AAAAAAACAPzPz2jwpSBe6q+IFuBE/kbPZAo87fkIcNwAAgD8AAIA/M2aNPXtyl7oC0n48/iGOtfTc/zlKroK0AACAPwAAgD8zG7y99ixeuhFAiTnXf8Q0Vd84O8nsnbgAAIA/AACAP2YijDzDoTy6TivqumsCFbZoWaA6ml4KOgAAgD8AAIA/lIwFbnVtcHmUjAVkdHlwZZSTlIwCZjSUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYksQSwiGlIwBQ5R0lFKULg=="
    },
    "_last_episode_starts": {
        ":type:": "<class 'numpy.ndarray'>",
        ":serialized:": "gAWVgwAAAAAAAACMEm51bXB5LmNvcmUubnVtZXJpY5SMC19mcm9tYnVmZmVylJOUKJYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUjAVudW1weZSMBWR0eXBllJOUjAJiMZSJiIeUUpQoSwOMAXyUTk5OSv////9K/////0sAdJRiSxCFlIwBQ5R0lFKULg=="
    },
    "_last_original_obs": null,
    "_episode_num": 0,
    "use_sde": false,
    "sde_sample_freq": -1,
    "_current_progress_remaining": -0.015808000000000044,
    "_stats_window_size": 100,
    "ep_info_buffer": {
        ":type:": "<class 'collections.deque'>",
        ":serialized:": "gAWVQQwAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKUKH2UKIwBcpRHQGSoySeRPoGMAWyUTegDjAF0lEdAlQG4lQdjonV9lChoBkdAYEO3G4qgAmgHTegDaAhHQJUvbfLs8gZ1fZQoaAZHQGG0stCiRGNoB03oA2gIR0CVMOQhOgxrdX2UKGgGR0BbqNqxkd3jaAdN6ANoCEdAlTUYG6f8M3V9lChoBkdAZxOHNX5nDmgHTegDaAhHQJU4iQtBfKJ1fZQoaAZHQF5cqlxffGdoB03oA2gIR0CVOPA8SwnqdX2UKGgGR0BgTgToMa0haAdN6ANoCEdAlT0nZf2K23V9lChoBkdAY1+jmjj7ymgHTegDaAhHQJVBT9tMwlB1fZQoaAZHQGCa2TX8O09oB03oA2gIR0CVTaMhHLA6dX2UKGgGR0BjVonYxtYTaAdN6ANoCEdAlU3cajvd/XV9lChoBkdAYb93225QQGgHTegDaAhHQJVTogeRxLl1fZQoaAZHQGDSnvlU6xRoB03oA2gIR0CVWAX+ERJ3dX2UKGgGR0BlU513dKukaAdN6ANoCEdAlVldjG1hLHV9lChoBkdAYx3Bj4Hoo2gHTegDaAhHQJVm2QHRkVh1fZQoaAZHQGClTS1E3KloB03oA2gIR0CVaEot+TePdX2UKGgGR0BjXUKCxu89aAdN6ANoCEdAlWiFcUuct3V9lChoBkdAZEBVR1oxpWgHTegDaAhHQJVqL/S6UaB1fZQoaAZHQGOhAdn003xoB03oA2gIR0CVl5zFuNxVdX2UKGgGR0BlAbUqhDgJaAdN6ANoCEdAlZknSOR1YHV9lChoBkdAYa93h4t6HGgHTegDaAhHQJWdVYyO7xx1fZQoaAZHQGDVScLBsRBoB03oA2gIR0CVoMrJKaoddX2UKGgGR0Bl8zuSfUWmaAdN6ANoCEdAlaEwIt16mnV9lChoBkdAX2t0EHMUy2gHTegDaAhHQJWlJ5UtI091fZQoaAZHQFu/j8k2P1doB03oA2gIR0CVqSlIVdondX2UKGgGR0Bk9LfLs8gZaAdN6ANoCEdAlbKuyeI2wXV9lChoBkdAYHH6zE74jGgHTegDaAhHQJWy3QfIS151fZQoaAZHQGPLW6TW5H5oB03oA2gIR0CVuRFsHjZMdX2UKGgGR0Bl06rNnoPkaAdN6ANoCEdAlb9R9XtBwHV9lChoBkdAYfnFR51Ng2gHTegDaAhHQJXBMJXyRSx1fZQoaAZHQGP9S13MY/FoB03oA2gIR0CVzzE2YOUddX2UKGgGR0BlsHUjLSuyaAdN6ANoCEdAldCX31zySXV9lChoBkdAYtGPnSv1UWgHTegDaAhHQJXQ1l+Vkc11fZQoaAZHQGDKE8zQ/otoB03oA2gIR0CV0nSXdCVsdX2UKGgGR0Be0K2SdOIqaAdN6ANoCEdAlf9dPxhDxHV9lChoBkdAYgrCIk7fYWgHTegDaAhHQJYA2k+HJtB1fZQoaAZHQGB5YVRDTjNoB03oA2gIR0CWBQ2DQJHBdX2UKGgGR0Bg7V2vB7/oaAdN6ANoCEdAlgha/dqL0nV9lChoBkdAYD8V/MGHHmgHTegDaAhHQJYItqUNayN1fZQoaAZHQGVPe6y0KJFoB03oA2gIR0CWDHdyT6i1dX2UKGgGR0Bd6Xdfsu3+aAdN6ANoCEdAlhAVfE4vOHV9lChoBkdAYtLjGT9sJ2gHTegDaAhHQJYYrBuXNTt1fZQoaAZHQGHRYuTRplBoB03oA2gIR0CWGNRPoFFEdX2UKGgGR0Bii0DZDiOvaAdN6ANoCEdAlh0ZxrBTGnV9lChoBkdAYrVg9eQdS2gHTegDaAhHQJYhXuy/sVt1fZQoaAZHQGQv9/jKgZloB03oA2gIR0CWIsBZ6lchdX2UKGgGR0BitDcM3IdVaAdN6ANoCEdAljKZ/Tb35HV9lChoBkdAZTRx1gYxcmgHTegDaAhHQJY0l4s3AEd1fZQoaAZHQGZwYpUgjhVoB03oA2gIR0CWNOqTbFjvdX2UKGgGR0BhS9mBe5WjaAdN6ANoCEdAljcFEAo5P3V9lChoBkdAMsZrP+n622gHS/loCEdAllwXdO6/ZnV9lChoBkdAZAuUY8+zMWgHTegDaAhHQJZfb4j8k2R1fZQoaAZHQGLCIHcDbJxoB03oA2gIR0CWYYE1l5GCdX2UKGgGR0Bk4LJdSl3yaAdN6ANoCEdAlmccrI5o5HV9lChoBkdAYOkWkadc0WgHTegDaAhHQJZrkzpHI6t1fZQoaAZHQGYcsTWXkYJoB03oA2gIR0CWbBVFx4pudX2UKGgGR0Bjm6RSxZ+yaAdN6ANoCEdAlnEY3FUADXV9lChoBkdAXs1BjWkJr2gHTegDaAhHQJZ0+7kGRmt1fZQoaAZHQGCQ14gRsdloB03oA2gIR0CWfqHBUJfIdX2UKGgGR0Bil01uR9w4aAdN6ANoCEdAln7RZuAI6nV9lChoBkdAZE2Xm/336GgHTegDaAhHQJaD3bcoH9p1fZQoaAZHQF1VYht+CshoB03oA2gIR0CWiJ7MPjGUdX2UKGgGR0Bf3aP4mCyyaAdN6ANoCEdAlooKNyYG+3V9lChoBkdAZCW4S6DoQmgHTegDaAhHQJaYlMCcPOJ1fZQoaAZHQGUr8iGFi8ZoB03oA2gIR0CWmqgeii7DdX2UKGgGR0BhKQXdj5KwaAdN6ANoCEdAlpsF90A93nV9lChoBkdAZaLG0eEIxGgHTegDaAhHQJbJVMIu5Bl1fZQoaAZHQGSriUHIIWxoB03oA2gIR0CWzN5HmRvFdX2UKGgGR0Bd8JcLSeAeaAdN6ANoCEdAls6dbkfcOHV9lChoBkdAYhTVbzK9wmgHTegDaAhHQJbUk8A7xNJ1fZQoaAZHQGBp7VJ+UhVoB03oA2gIR0CW2dR9PUKBdX2UKGgGR0BoBJ/mT1TSaAdN6ANoCEdAltp66nR9gHV9lChoBkdAY1KE/SpiqmgHTegDaAhHQJbg8uSOinJ1fZQoaAZHQGZH4WUKRdRoB03oA2gIR0CW5ccmShaldX2UKGgGR0BitrJyQxN7aAdN6ANoCEdAlvAhbGFSKnV9lChoBkdAYTK1xbSql2gHTegDaAhHQJbwUBzV+Zx1fZQoaAZHQGKcuMl1KXhoB03oA2gIR0CW9Sr92ovSdX2UKGgGR0Bii1O6/ZdwaAdN6ANoCEdAlvmYKlYU4HV9lChoBkdAY2Okadc0L2gHTegDaAhHQJb63MMZxaR1fZQoaAZHQF8LsunMt9RoB03oA2gIR0CXB8fa6BiDdX2UKGgGR0BgtScPOIIoaAdN6ANoCEdAlwk4nWrfcnV9lChoBkdAZ1geHSF492gHTegDaAhHQJcJj850bLl1fZQoaAZHQEaJG9YfW+ZoB0v7aAhHQJcNmZtvXK91fZQoaAZHQEP2bYK6WgRoB00NAWgIR0CXESmU4aP0dX2UKGgGR0BAWhX0XgtOaAdL7GgIR0CXHbWLgn+idX2UKGgGR0BjjA7eVLSNaAdN6ANoCEdAlzVJlSS/03V9lChoBkdAZPqnUDuBtmgHTegDaAhHQJc3+6OHWSV1fZQoaAZHQGY2jBEa2ndoB03oA2gIR0CXOTC+10DEdX2UKGgGR0Bjs4RTS9dvaAdN6ANoCEdAlzy4jSofjnV9lChoBkdAZ3q+MZP2wmgHTegDaAhHQJc/g2zfJmx1fZQoaAZHQGVMQQtjCpFoB03oA2gIR0CXP+Gd7OVxdX2UKGgGR0Bgut7SiM5waAdN6ANoCEdAl0P95Y5ksnV9lChoBkdAZr8zru6VdGgHTegDaAhHQJdJEkdFOO91fZQoaAZHQGYGrr5ZbINoB03oA2gIR0CXVHFdcB2fdX2UKGgGR0BeQaxPfsNUaAdN6ANoCEdAl1SdCE6DG3V9lChoBkdAZFAKpkwvg2gHTegDaAhHQJdZQUHpr1x1fZQoaAZHQGGlYgRsdktoB03oA2gIR0CXbwBU70WedX2UKGgGR0BlvJn3+MqCaAdN6ANoCEdAl29DakAPu3V9lChoBkdAZN9LzPKMemgHTegDaAhHQJdylPKuB+Z1fZQoaAZHQGULSHM2WIJoB03oA2gIR0CXdVYwqRU4dX2UKGgGR0BmHcj3VTaTaAdN6ANoCEdAl4JADV6NVHVlLg=="
    },
    "ep_success_buffer": {
        ":type:": "<class 'collections.deque'>",
        ":serialized:": "gAWVIAAAAAAAAACMC2NvbGxlY3Rpb25zlIwFZGVxdWWUk5QpS2SGlFKULg=="
    },
    "_n_updates": 248,
    "observation_space": {
        ":type:": "<class 'gymnasium.spaces.box.Box'>",
        ":serialized:": "gAWVcAIAAAAAAACMFGd5bW5hc2l1bS5zcGFjZXMuYm94lIwDQm94lJOUKYGUfZQojAVkdHlwZZSMBW51bXB5lGgFk5SMAmY0lImIh5RSlChLA4wBPJROTk5K/////0r/////SwB0lGKMDWJvdW5kZWRfYmVsb3eUjBJudW1weS5jb3JlLm51bWVyaWOUjAtfZnJvbWJ1ZmZlcpSTlCiWCAAAAAAAAAABAQEBAQEBAZRoB4wCYjGUiYiHlFKUKEsDjAF8lE5OTkr/////Sv////9LAHSUYksIhZSMAUOUdJRSlIwNYm91bmRlZF9hYm92ZZRoECiWCAAAAAAAAAABAQEBAQEBAZRoFEsIhZRoGHSUUpSMBl9zaGFwZZRLCIWUjANsb3eUaBAoliAAAAAAAAAAAAC0wgAAtMIAAKDAAACgwNsPScAAAKDAAAAAgAAAAICUaApLCIWUaBh0lFKUjARoaWdolGgQKJYgAAAAAAAAAAAAtEIAALRCAACgQAAAoEDbD0lAAACgQAAAgD8AAIA/lGgKSwiFlGgYdJRSlIwIbG93X3JlcHKUjFtbLTkwLiAgICAgICAgLTkwLiAgICAgICAgIC01LiAgICAgICAgIC01LiAgICAgICAgIC0zLjE0MTU5MjcgIC01LgogIC0wLiAgICAgICAgIC0wLiAgICAgICBdlIwJaGlnaF9yZXBylIxTWzkwLiAgICAgICAgOTAuICAgICAgICAgNS4gICAgICAgICA1LiAgICAgICAgIDMuMTQxNTkyNyAgNS4KICAxLiAgICAgICAgIDEuICAgICAgIF2UjApfbnBfcmFuZG9tlE51Yi4=",
        "dtype": "float32",
        "bounded_below": "[ True  True  True  True  True  True  True  True]",
        "bounded_above": "[ True  True  True  True  True  True  True  True]",
        "_shape": [
            8
        ],
        "low": "[-90.        -90.         -5.         -5.         -3.1415927  -5.\n  -0.         -0.       ]",
        "high": "[90.        90.         5.         5.         3.1415927  5.\n  1.         1.       ]",
        "low_repr": "[-90.        -90.         -5.         -5.         -3.1415927  -5.\n  -0.         -0.       ]",
        "high_repr": "[90.        90.         5.         5.         3.1415927  5.\n  1.         1.       ]",
        "_np_random": null
    },
    "action_space": {
        ":type:": "<class 'gymnasium.spaces.discrete.Discrete'>",
        ":serialized:": "gAWV1QAAAAAAAACMGWd5bW5hc2l1bS5zcGFjZXMuZGlzY3JldGWUjAhEaXNjcmV0ZZSTlCmBlH2UKIwBbpSMFW51bXB5LmNvcmUubXVsdGlhcnJheZSMBnNjYWxhcpSTlIwFbnVtcHmUjAVkdHlwZZSTlIwCaTiUiYiHlFKUKEsDjAE8lE5OTkr/////Sv////9LAHSUYkMIBAAAAAAAAACUhpRSlIwFc3RhcnSUaAhoDkMIAAAAAAAAAACUhpRSlIwGX3NoYXBllCloCmgOjApfbnBfcmFuZG9tlE51Yi4=",
        "n": "4",
        "start": "0",
        "_shape": [],
        "dtype": "int64",
        "_np_random": null
    },
    "n_envs": 16,
    "n_steps": 1024,
    "gamma": 0.999,
    "gae_lambda": 0.98,
    "ent_coef": 0.01,
    "vf_coef": 0.5,
    "max_grad_norm": 0.5,
    "batch_size": 64,
    "n_epochs": 4,
    "clip_range": {
        ":type:": "<class 'function'>",
        ":serialized:": "gAWVxQIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTAvZGlzdC1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvdXNyL2xvY2FsL2xpYi9weXRob24zLjEwL2Rpc3QtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgWaA2MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgXjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz/JmZmZmZmahZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
    },
    "clip_range_vf": null,
    "normalize_advantage": true,
    "target_kl": null,
    "lr_schedule": {
        ":type:": "<class 'function'>",
        ":serialized:": "gAWVxQIAAAAAAACMF2Nsb3VkcGlja2xlLmNsb3VkcGlja2xllIwOX21ha2VfZnVuY3Rpb26Uk5QoaACMDV9idWlsdGluX3R5cGWUk5SMCENvZGVUeXBllIWUUpQoSwFLAEsASwFLAUsTQwSIAFMAlE6FlCmMAV+UhZSMSS91c3IvbG9jYWwvbGliL3B5dGhvbjMuMTAvZGlzdC1wYWNrYWdlcy9zdGFibGVfYmFzZWxpbmVzMy9jb21tb24vdXRpbHMucHmUjARmdW5jlEuEQwIEAZSMA3ZhbJSFlCl0lFKUfZQojAtfX3BhY2thZ2VfX5SMGHN0YWJsZV9iYXNlbGluZXMzLmNvbW1vbpSMCF9fbmFtZV9flIwec3RhYmxlX2Jhc2VsaW5lczMuY29tbW9uLnV0aWxzlIwIX19maWxlX1+UjEkvdXNyL2xvY2FsL2xpYi9weXRob24zLjEwL2Rpc3QtcGFja2FnZXMvc3RhYmxlX2Jhc2VsaW5lczMvY29tbW9uL3V0aWxzLnB5lHVOTmgAjBBfbWFrZV9lbXB0eV9jZWxslJOUKVKUhZR0lFKUjBxjbG91ZHBpY2tsZS5jbG91ZHBpY2tsZV9mYXN0lIwSX2Z1bmN0aW9uX3NldHN0YXRllJOUaB99lH2UKGgWaA2MDF9fcXVhbG5hbWVfX5SMGWNvbnN0YW50X2ZuLjxsb2NhbHM+LmZ1bmOUjA9fX2Fubm90YXRpb25zX1+UfZSMDl9fa3dkZWZhdWx0c19flE6MDF9fZGVmYXVsdHNfX5ROjApfX21vZHVsZV9flGgXjAdfX2RvY19flE6MC19fY2xvc3VyZV9flGgAjApfbWFrZV9jZWxslJOURz8zqSowVTJhhZRSlIWUjBdfY2xvdWRwaWNrbGVfc3VibW9kdWxlc5RdlIwLX19nbG9iYWxzX1+UfZR1hpSGUjAu"
    }
}