Sixth Push
Browse files- SoccerTwos.onnx +1 -1
- SoccerTwos/SoccerTwos-28999994.onnx +3 -0
- SoccerTwos/SoccerTwos-28999994.pt +3 -0
- SoccerTwos/checkpoint.pt +1 -1
- SoccerTwos/events.out.tfevents.1725587524.Bretts-MBP.home.80316.0 +2 -2
- SoccerTwos/events.out.tfevents.1725639231.Bretts-MacBook-Pro.local.54985.0 +3 -0
- SoccerTwos/events.out.tfevents.1725639265.Bretts-MacBook-Pro.local.55651.0 +3 -0
- config.json +1 -1
- configuration.yaml +2 -2
- run_logs/Player-0.log +2 -2
- run_logs/timers.json +59 -59
- run_logs/training_status.json +8 -8
SoccerTwos.onnx
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 2351062
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:8310f421d4a705039d63cbe9bc3d579c90750570a9296b0f42eb6b2a7f44b6b7
|
3 |
size 2351062
|
SoccerTwos/SoccerTwos-28999994.onnx
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1d52a1f018d12a98eb864334fe510c9d04bcd783aa007118dcc8c679c55f7547
|
3 |
+
size 2351062
|
SoccerTwos/SoccerTwos-28999994.pt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:114991bd4b4398997c2222b469695674a836079918aa92d4e57ec640ad11519f
|
3 |
+
size 36303154
|
SoccerTwos/checkpoint.pt
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 36301318
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:94a3b101cf7c8db717bd805a14c3a2aa885485c424e1ac8714fcd2bd87a93781
|
3 |
size 36301318
|
SoccerTwos/events.out.tfevents.1725587524.Bretts-MBP.home.80316.0
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
-
size
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1688d12308ffae8f52e82784fc731cb0d5e6f679fec59489b53e52254096b138
|
3 |
+
size 13686253
|
SoccerTwos/events.out.tfevents.1725639231.Bretts-MacBook-Pro.local.54985.0
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6da47222d62c96e958cd2719d92809683509919a15716565cdc9be156e85fa33
|
3 |
+
size 1901
|
SoccerTwos/events.out.tfevents.1725639265.Bretts-MacBook-Pro.local.55651.0
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:5f952e5b983a9fe03dbadfbae99f9e339ae4d629adf958b2208d76516ddad8ec
|
3 |
+
size 740049
|
config.json
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"default_settings": null, "behaviors": {"SoccerTwos": {"trainer_type": "poca", "hyperparameters": {"batch_size": 40960, "buffer_size": 163840, "learning_rate": 0.0003, "beta": 0.01, "epsilon": 0.2, "lambd": 0.9, "num_epoch": 3, "learning_rate_schedule": "constant", "beta_schedule": "linear", "epsilon_schedule": "constant"}, "checkpoint_interval": 500000, "network_settings": {"normalize": true, "hidden_units": 512, "num_layers": 2, "vis_encode_type": "simple", "memory": {"sequence_length": 16, "memory_size": 128}, "goal_conditioning_type": "hyper", "deterministic": false}, "reward_signals": {"extrinsic": {"gamma": 0.995, "strength": 1.0, "network_settings": {"normalize": false, "hidden_units": 128, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}}, "curiosity": {"gamma": 0.9, "strength":
|
|
|
1 |
+
{"default_settings": null, "behaviors": {"SoccerTwos": {"trainer_type": "poca", "hyperparameters": {"batch_size": 40960, "buffer_size": 163840, "learning_rate": 0.0003, "beta": 0.01, "epsilon": 0.2, "lambd": 0.9, "num_epoch": 3, "learning_rate_schedule": "constant", "beta_schedule": "linear", "epsilon_schedule": "constant"}, "checkpoint_interval": 500000, "network_settings": {"normalize": true, "hidden_units": 512, "num_layers": 2, "vis_encode_type": "simple", "memory": {"sequence_length": 16, "memory_size": 128}, "goal_conditioning_type": "hyper", "deterministic": false}, "reward_signals": {"extrinsic": {"gamma": 0.995, "strength": 1.0, "network_settings": {"normalize": false, "hidden_units": 128, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}}, "curiosity": {"gamma": 0.9, "strength": 1e-06, "network_settings": {"normalize": false, "hidden_units": 512, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}, "learning_rate": 0.0003, "encoding_size": 512}, "rnd": {"gamma": 0.9, "strength": 1e-06, "network_settings": {"normalize": false, "hidden_units": 128, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}, "learning_rate": 0.0001, "encoding_size": null}}, "init_path": null, "keep_checkpoints": 1, "even_checkpoints": false, "max_steps": 80000000, "time_horizon": 1000, "summary_freq": 10000, "threaded": false, "self_play": {"save_steps": 100000, "team_change": 400000, "swap_steps": 2000, "window": 30, "play_against_latest_model_ratio": 0.5, "initial_elo": 1.0}, "behavioral_cloning": null}}, "env_settings": {"env_path": "./SoccerTwos/SoccerTwos.app", "env_args": null, "base_port": 5005, "num_envs": 1, "num_areas": 1, "timeout_wait": 60, "seed": -1, "max_lifetime_restarts": 10, "restarts_rate_limit_n": 1, "restarts_rate_limit_period_s": 60}, "engine_settings": {"width": 84, "height": 84, "quality_level": 5, "time_scale": 20, "target_frame_rate": -1, "capture_frame_rate": 60, "no_graphics": true, "no_graphics_monitor": false}, "environment_parameters": null, "checkpoint_settings": {"run_id": "sept-run-01", "initialize_from": null, "load_model": false, "resume": true, "force": false, "train_model": false, "inference": false, "results_dir": "results"}, "torch_settings": {"device": null}, "debug": false}
|
configuration.yaml
CHANGED
@@ -38,7 +38,7 @@ behaviors:
|
|
38 |
deterministic: false
|
39 |
curiosity:
|
40 |
gamma: 0.9
|
41 |
-
strength:
|
42 |
network_settings:
|
43 |
normalize: false
|
44 |
hidden_units: 512
|
@@ -95,7 +95,7 @@ engine_settings:
|
|
95 |
time_scale: 20
|
96 |
target_frame_rate: -1
|
97 |
capture_frame_rate: 60
|
98 |
-
no_graphics:
|
99 |
no_graphics_monitor: false
|
100 |
environment_parameters: null
|
101 |
checkpoint_settings:
|
|
|
38 |
deterministic: false
|
39 |
curiosity:
|
40 |
gamma: 0.9
|
41 |
+
strength: 1.0e-06
|
42 |
network_settings:
|
43 |
normalize: false
|
44 |
hidden_units: 512
|
|
|
95 |
time_scale: 20
|
96 |
target_frame_rate: -1
|
97 |
capture_frame_rate: 60
|
98 |
+
no_graphics: true
|
99 |
no_graphics_monitor: false
|
100 |
environment_parameters: null
|
101 |
checkpoint_settings:
|
run_logs/Player-0.log
CHANGED
@@ -10,7 +10,7 @@ NullGfxDevice:
|
|
10 |
Renderer: Null Device
|
11 |
Vendor: Unity Technologies
|
12 |
Begin MonoManager ReloadAssembly
|
13 |
-
- Completed reload, in 0.
|
14 |
ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
15 |
ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
16 |
ERROR: Shader Legacy Shaders/VertexLit shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
@@ -35,6 +35,6 @@ ERROR: Shader Standard shader is not supported on this GPU (none of subshaders/f
|
|
35 |
WARNING: Shader Unsupported: 'Standard' - All subshaders removed
|
36 |
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
|
37 |
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
|
38 |
-
UnloadTime: 0.
|
39 |
Registered Communicator in Agent.
|
40 |
ERROR: Shader UI/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
|
|
10 |
Renderer: Null Device
|
11 |
Vendor: Unity Technologies
|
12 |
Begin MonoManager ReloadAssembly
|
13 |
+
- Completed reload, in 0.036 seconds
|
14 |
ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
15 |
ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
16 |
ERROR: Shader Legacy Shaders/VertexLit shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
|
|
35 |
WARNING: Shader Unsupported: 'Standard' - All subshaders removed
|
36 |
WARNING: Shader Did you use #pragma only_renderers and omit this platform?
|
37 |
WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off?
|
38 |
+
UnloadTime: 0.223000 ms
|
39 |
Registered Communicator in Agent.
|
40 |
ERROR: Shader UI/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable)
|
run_logs/timers.json
CHANGED
@@ -2,111 +2,111 @@
|
|
2 |
"name": "root",
|
3 |
"metadata": {
|
4 |
"timer_format_version": "0.1.0",
|
5 |
-
"start_time_seconds": "
|
6 |
"python_version": "3.10.12 (main, Aug 23 2024, 16:29:11) [Clang 15.0.0 (clang-1500.3.9.4)]",
|
7 |
-
"command_line_arguments": "/Users/brettgohre/Desktop/huggingface/ml-agents/games/bin/mlagents-learn ./config/poca/sept/three.yaml --env=./SoccerTwos/SoccerTwos.app --run-id=sept-run-01 --resume",
|
8 |
"mlagents_version": "1.1.0.dev0",
|
9 |
"mlagents_envs_version": "1.1.0.dev0",
|
10 |
"communication_protocol_version": "1.5.0",
|
11 |
"pytorch_version": "2.4.0",
|
12 |
"numpy_version": "1.23.5",
|
13 |
-
"end_time_seconds": "
|
14 |
},
|
15 |
-
"total":
|
16 |
"count": 1,
|
17 |
-
"self": 0.
|
18 |
"children": {
|
19 |
"run_training.setup": {
|
20 |
-
"total": 0.
|
21 |
"count": 1,
|
22 |
-
"self": 0.
|
23 |
},
|
24 |
"TrainerController.start_learning": {
|
25 |
-
"total":
|
26 |
"count": 1,
|
27 |
-
"self": 0.
|
28 |
"children": {
|
29 |
"TrainerController._reset_env": {
|
30 |
-
"total":
|
31 |
"count": 2,
|
32 |
-
"self":
|
33 |
},
|
34 |
"TrainerController.advance": {
|
35 |
-
"total":
|
36 |
-
"count":
|
37 |
-
"self": 0.
|
38 |
"children": {
|
39 |
"env_step": {
|
40 |
-
"total":
|
41 |
-
"count":
|
42 |
-
"self":
|
43 |
"children": {
|
44 |
"SubprocessEnvManager._take_step": {
|
45 |
-
"total": 0.
|
46 |
-
"count":
|
47 |
-
"self": 0.
|
48 |
"children": {
|
49 |
"TorchPolicy.evaluate": {
|
50 |
-
"total": 0.
|
51 |
-
"count":
|
52 |
-
"self": 0.
|
53 |
}
|
54 |
}
|
55 |
},
|
56 |
"workers": {
|
57 |
-
"total": 0.
|
58 |
-
"count":
|
59 |
"self": 0.0,
|
60 |
"children": {
|
61 |
"worker_root": {
|
62 |
-
"total":
|
63 |
-
"count":
|
64 |
"is_parallel": true,
|
65 |
-
"self":
|
66 |
"children": {
|
67 |
"steps_from_proto": {
|
68 |
-
"total": 0.
|
69 |
"count": 4,
|
70 |
"is_parallel": true,
|
71 |
-
"self": 0.
|
72 |
"children": {
|
73 |
"_process_rank_one_or_two_observation": {
|
74 |
-
"total": 0.
|
75 |
"count": 16,
|
76 |
"is_parallel": true,
|
77 |
-
"self": 0.
|
78 |
}
|
79 |
}
|
80 |
},
|
81 |
"UnityEnvironment.step": {
|
82 |
-
"total":
|
83 |
-
"count":
|
84 |
"is_parallel": true,
|
85 |
-
"self": 0.
|
86 |
"children": {
|
87 |
"UnityEnvironment._generate_step_input": {
|
88 |
-
"total": 0.
|
89 |
-
"count":
|
90 |
"is_parallel": true,
|
91 |
-
"self": 0.
|
92 |
},
|
93 |
"communicator.exchange": {
|
94 |
-
"total":
|
95 |
-
"count":
|
96 |
"is_parallel": true,
|
97 |
-
"self":
|
98 |
},
|
99 |
"steps_from_proto": {
|
100 |
-
"total": 0.
|
101 |
-
"count":
|
102 |
"is_parallel": true,
|
103 |
-
"self": 0.
|
104 |
"children": {
|
105 |
"_process_rank_one_or_two_observation": {
|
106 |
-
"total": 0.
|
107 |
-
"count":
|
108 |
"is_parallel": true,
|
109 |
-
"self": 0.
|
110 |
}
|
111 |
}
|
112 |
}
|
@@ -119,33 +119,33 @@
|
|
119 |
}
|
120 |
},
|
121 |
"trainer_advance": {
|
122 |
-
"total":
|
123 |
-
"count":
|
124 |
-
"self": 0.
|
125 |
"children": {
|
126 |
"process_trajectory": {
|
127 |
-
"total":
|
128 |
-
"count":
|
129 |
-
"self":
|
130 |
}
|
131 |
}
|
132 |
}
|
133 |
}
|
134 |
},
|
135 |
"trainer_threads": {
|
136 |
-
"total": 5.
|
137 |
"count": 1,
|
138 |
-
"self": 5.
|
139 |
},
|
140 |
"TrainerController._save_models": {
|
141 |
-
"total": 0.
|
142 |
"count": 1,
|
143 |
-
"self": 0.
|
144 |
"children": {
|
145 |
"RLTrainer._checkpoint": {
|
146 |
-
"total": 0.
|
147 |
"count": 1,
|
148 |
-
"self": 0.
|
149 |
}
|
150 |
}
|
151 |
}
|
|
|
2 |
"name": "root",
|
3 |
"metadata": {
|
4 |
"timer_format_version": "0.1.0",
|
5 |
+
"start_time_seconds": "1725639228",
|
6 |
"python_version": "3.10.12 (main, Aug 23 2024, 16:29:11) [Clang 15.0.0 (clang-1500.3.9.4)]",
|
7 |
+
"command_line_arguments": "/Users/brettgohre/Desktop/huggingface/ml-agents/games/bin/mlagents-learn ./config/poca/sept/three.yaml --env=./SoccerTwos/SoccerTwos.app --run-id=sept-run-01 --resume --no-graphics",
|
8 |
"mlagents_version": "1.1.0.dev0",
|
9 |
"mlagents_envs_version": "1.1.0.dev0",
|
10 |
"communication_protocol_version": "1.5.0",
|
11 |
"pytorch_version": "2.4.0",
|
12 |
"numpy_version": "1.23.5",
|
13 |
+
"end_time_seconds": "1725639244"
|
14 |
},
|
15 |
+
"total": 15.882768709008815,
|
16 |
"count": 1,
|
17 |
+
"self": 0.05988275000709109,
|
18 |
"children": {
|
19 |
"run_training.setup": {
|
20 |
+
"total": 0.019645958993351087,
|
21 |
"count": 1,
|
22 |
+
"self": 0.019645958993351087
|
23 |
},
|
24 |
"TrainerController.start_learning": {
|
25 |
+
"total": 15.803240000008373,
|
26 |
"count": 1,
|
27 |
+
"self": 0.0026913749461527914,
|
28 |
"children": {
|
29 |
"TrainerController._reset_env": {
|
30 |
+
"total": 3.5253060839895625,
|
31 |
"count": 2,
|
32 |
+
"self": 3.5253060839895625
|
33 |
},
|
34 |
"TrainerController.advance": {
|
35 |
+
"total": 12.153929750085808,
|
36 |
+
"count": 287,
|
37 |
+
"self": 0.002460731368046254,
|
38 |
"children": {
|
39 |
"env_step": {
|
40 |
+
"total": 11.317403695225948,
|
41 |
+
"count": 287,
|
42 |
+
"self": 10.868867997516645,
|
43 |
"children": {
|
44 |
"SubprocessEnvManager._take_step": {
|
45 |
+
"total": 0.4469113309751265,
|
46 |
+
"count": 287,
|
47 |
+
"self": 0.0130690521618817,
|
48 |
"children": {
|
49 |
"TorchPolicy.evaluate": {
|
50 |
+
"total": 0.4338422788132448,
|
51 |
+
"count": 506,
|
52 |
+
"self": 0.4338422788132448
|
53 |
}
|
54 |
}
|
55 |
},
|
56 |
"workers": {
|
57 |
+
"total": 0.0016243667341768742,
|
58 |
+
"count": 286,
|
59 |
"self": 0.0,
|
60 |
"children": {
|
61 |
"worker_root": {
|
62 |
+
"total": 12.562684869160876,
|
63 |
+
"count": 286,
|
64 |
"is_parallel": true,
|
65 |
+
"self": 2.0004065242537763,
|
66 |
"children": {
|
67 |
"steps_from_proto": {
|
68 |
+
"total": 0.0027742499951273203,
|
69 |
"count": 4,
|
70 |
"is_parallel": true,
|
71 |
+
"self": 0.00039266597013920546,
|
72 |
"children": {
|
73 |
"_process_rank_one_or_two_observation": {
|
74 |
+
"total": 0.002381584024988115,
|
75 |
"count": 16,
|
76 |
"is_parallel": true,
|
77 |
+
"self": 0.002381584024988115
|
78 |
}
|
79 |
}
|
80 |
},
|
81 |
"UnityEnvironment.step": {
|
82 |
+
"total": 10.559504094911972,
|
83 |
+
"count": 286,
|
84 |
"is_parallel": true,
|
85 |
+
"self": 0.027175818424439058,
|
86 |
"children": {
|
87 |
"UnityEnvironment._generate_step_input": {
|
88 |
+
"total": 0.18330224978853948,
|
89 |
+
"count": 286,
|
90 |
"is_parallel": true,
|
91 |
+
"self": 0.18330224978853948
|
92 |
},
|
93 |
"communicator.exchange": {
|
94 |
+
"total": 10.00545607091044,
|
95 |
+
"count": 286,
|
96 |
"is_parallel": true,
|
97 |
+
"self": 10.00545607091044
|
98 |
},
|
99 |
"steps_from_proto": {
|
100 |
+
"total": 0.34356995578855276,
|
101 |
+
"count": 572,
|
102 |
"is_parallel": true,
|
103 |
+
"self": 0.04205756550072692,
|
104 |
"children": {
|
105 |
"_process_rank_one_or_two_observation": {
|
106 |
+
"total": 0.30151239028782584,
|
107 |
+
"count": 2288,
|
108 |
"is_parallel": true,
|
109 |
+
"self": 0.30151239028782584
|
110 |
}
|
111 |
}
|
112 |
}
|
|
|
119 |
}
|
120 |
},
|
121 |
"trainer_advance": {
|
122 |
+
"total": 0.8340653234918136,
|
123 |
+
"count": 286,
|
124 |
+
"self": 0.01612685641157441,
|
125 |
"children": {
|
126 |
"process_trajectory": {
|
127 |
+
"total": 0.8179384670802392,
|
128 |
+
"count": 286,
|
129 |
+
"self": 0.8179384670802392
|
130 |
}
|
131 |
}
|
132 |
}
|
133 |
}
|
134 |
},
|
135 |
"trainer_threads": {
|
136 |
+
"total": 5.00003807246685e-07,
|
137 |
"count": 1,
|
138 |
+
"self": 5.00003807246685e-07
|
139 |
},
|
140 |
"TrainerController._save_models": {
|
141 |
+
"total": 0.12131229098304175,
|
142 |
"count": 1,
|
143 |
+
"self": 0.0006150819826871157,
|
144 |
"children": {
|
145 |
"RLTrainer._checkpoint": {
|
146 |
+
"total": 0.12069720900035463,
|
147 |
"count": 1,
|
148 |
+
"self": 0.12069720900035463
|
149 |
}
|
150 |
}
|
151 |
}
|
run_logs/training_status.json
CHANGED
@@ -1,24 +1,24 @@
|
|
1 |
{
|
2 |
"SoccerTwos": {
|
3 |
-
"elo":
|
4 |
"checkpoints": [
|
5 |
{
|
6 |
-
"steps":
|
7 |
-
"file_path": "results/sept-run-01/SoccerTwos/SoccerTwos-
|
8 |
"reward": 0.0,
|
9 |
-
"creation_time":
|
10 |
"auxillary_file_paths": [
|
11 |
-
"results/sept-run-01/SoccerTwos/SoccerTwos-
|
12 |
]
|
13 |
}
|
14 |
],
|
15 |
"final_checkpoint": {
|
16 |
-
"steps":
|
17 |
"file_path": "results/sept-run-01/SoccerTwos.onnx",
|
18 |
"reward": 0.0,
|
19 |
-
"creation_time":
|
20 |
"auxillary_file_paths": [
|
21 |
-
"results/sept-run-01/SoccerTwos/SoccerTwos-
|
22 |
]
|
23 |
}
|
24 |
},
|
|
|
1 |
{
|
2 |
"SoccerTwos": {
|
3 |
+
"elo": 78.23583539049073,
|
4 |
"checkpoints": [
|
5 |
{
|
6 |
+
"steps": 28614312,
|
7 |
+
"file_path": "results/sept-run-01/SoccerTwos/SoccerTwos-28614312.onnx",
|
8 |
"reward": 0.0,
|
9 |
+
"creation_time": 1725639244.512409,
|
10 |
"auxillary_file_paths": [
|
11 |
+
"results/sept-run-01/SoccerTwos/SoccerTwos-28614312.pt"
|
12 |
]
|
13 |
}
|
14 |
],
|
15 |
"final_checkpoint": {
|
16 |
+
"steps": 28614312,
|
17 |
"file_path": "results/sept-run-01/SoccerTwos.onnx",
|
18 |
"reward": 0.0,
|
19 |
+
"creation_time": 1725639244.512409,
|
20 |
"auxillary_file_paths": [
|
21 |
+
"results/sept-run-01/SoccerTwos/SoccerTwos-28614312.pt"
|
22 |
]
|
23 |
}
|
24 |
},
|