diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5aabdc9f06c01f04e6297b3487e99e6369c28c39 --- /dev/null +++ b/README.md @@ -0,0 +1,31 @@ + +--- + tags: + - unity-ml-agents + - ml-agents + - deep-reinforcement-learning + - reinforcement-learning + - ML-Agents-SoccerTwos + library_name: ml-agents +--- + + # **poca** Agent playing **SoccerTwos** + This is a trained model of a **poca** agent playing **SoccerTwos** using the [Unity ML-Agents Library](https://github.com/Unity-Technologies/ml-agents). + + ## Usage (with ML-Agents) + The Documentation: https://github.com/huggingface/ml-agents#get-started + We wrote a complete tutorial to learn to train your first agent using ML-Agents and publish it to the Hub: + + + ### Resume the training + ``` + mlagents-learn --run-id= --resume + ``` + ### Watch your Agent play + You can watch your agent **playing directly in your browser:**. + + 1. Go to https://huggingface.co/spaces/unity/ML-Agents-SoccerTwos + 2. Step 1: Write your model_id: ThoDum/poca-SoccerTwos + 3. Step 2: Select your *.nn /*.onnx file + 4. Click on Watch the agent play 👀 + \ No newline at end of file diff --git a/SoccerTwos/SoccerTwos-10499032.onnx b/SoccerTwos/SoccerTwos-10499032.onnx new file mode 100644 index 0000000000000000000000000000000000000000..21623b74890770124181f58933ba566dfb3589d9 --- /dev/null +++ b/SoccerTwos/SoccerTwos-10499032.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae14b39c16f146f20838a4529c46b76bf515061746b31db087f2225be4f4e309 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-10499032.pt b/SoccerTwos/SoccerTwos-10499032.pt new file mode 100644 index 0000000000000000000000000000000000000000..7d093d5b22f65960d31e4de99ef6a33441120180 --- /dev/null +++ b/SoccerTwos/SoccerTwos-10499032.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d20f534dc304e0d8877f6f2b300f71a333deb9532143470569faf3e616c010da +size 28431689 diff --git a/SoccerTwos/SoccerTwos-10999356.onnx b/SoccerTwos/SoccerTwos-10999356.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bcd6bcfe6649b15590e7a86c1bba156f2a82a842 --- /dev/null +++ b/SoccerTwos/SoccerTwos-10999356.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b763618f5267b0eb53596e744fe6a78244b340218a6697214597c2f631d0b02 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-10999356.pt b/SoccerTwos/SoccerTwos-10999356.pt new file mode 100644 index 0000000000000000000000000000000000000000..13123ca8c194b92d90ca21f7e90dc67c7680225f --- /dev/null +++ b/SoccerTwos/SoccerTwos-10999356.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7d1fdeca987cda1666ba137316939cd750ddc743fbc670fa55e2b5580fffeb1 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-11499680.onnx b/SoccerTwos/SoccerTwos-11499680.onnx new file mode 100644 index 0000000000000000000000000000000000000000..87a930ceb9338895feefc9e470d009cfe8800f32 --- /dev/null +++ b/SoccerTwos/SoccerTwos-11499680.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed854a742d661c259604ce8b08d3748754c04164a04f12710496724e7cb7b0dc +size 1768746 diff --git a/SoccerTwos/SoccerTwos-11499680.pt b/SoccerTwos/SoccerTwos-11499680.pt new file mode 100644 index 0000000000000000000000000000000000000000..6a04db70969a2aabc72bb2187e8f721d21a77014 --- /dev/null +++ b/SoccerTwos/SoccerTwos-11499680.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789b909d7359148b5d270d00e892cce07a59cf333180a86a6fecd9f6d44b1059 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-11999004.onnx b/SoccerTwos/SoccerTwos-11999004.onnx new file mode 100644 index 0000000000000000000000000000000000000000..34c87473ea6005414730eec9a8ef26960eef441e --- /dev/null +++ b/SoccerTwos/SoccerTwos-11999004.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:721465306c42b3380363e02715741c535c3839418863ecc51fd757f1e3344b79 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-11999004.pt b/SoccerTwos/SoccerTwos-11999004.pt new file mode 100644 index 0000000000000000000000000000000000000000..5b5d058f3de0028d89ae617b04464edf9100551e --- /dev/null +++ b/SoccerTwos/SoccerTwos-11999004.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d53c3df99f2099d5f9725ecacd05f6fa67d99895fb64e08f403033696114cd2 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-12499328.onnx b/SoccerTwos/SoccerTwos-12499328.onnx new file mode 100644 index 0000000000000000000000000000000000000000..835f1a780cf6723414a5b4c848709b8ea8974402 --- /dev/null +++ b/SoccerTwos/SoccerTwos-12499328.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ba4132427bbdb09c371e83972ab2667ddd5d13d0236c0567263397a04c50223 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-12499328.pt b/SoccerTwos/SoccerTwos-12499328.pt new file mode 100644 index 0000000000000000000000000000000000000000..78c32e68699be3d8cb95aefcf11ec5b52180e8cb --- /dev/null +++ b/SoccerTwos/SoccerTwos-12499328.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7342b1391f266c31893b5823da262c77b86873f1c30e7e0f1ea529cd4dd4ccc2 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-12999652.onnx b/SoccerTwos/SoccerTwos-12999652.onnx new file mode 100644 index 0000000000000000000000000000000000000000..476423c6357e1b608209a684a87492bf914d493a --- /dev/null +++ b/SoccerTwos/SoccerTwos-12999652.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5691b4c7de7d16c18836684221f0144527bd6202b292da4cf3896cd834adf428 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-12999652.pt b/SoccerTwos/SoccerTwos-12999652.pt new file mode 100644 index 0000000000000000000000000000000000000000..01d1e53bb2612a924e13353176364c15bbafd197 --- /dev/null +++ b/SoccerTwos/SoccerTwos-12999652.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd273e8a095c1d2f25c63c98f2ade8e760a67dda2bce1a8d70294513ac021871 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-13499976.onnx b/SoccerTwos/SoccerTwos-13499976.onnx new file mode 100644 index 0000000000000000000000000000000000000000..245980f69b43ec78ff72b43b307ca33ab73b05bf --- /dev/null +++ b/SoccerTwos/SoccerTwos-13499976.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ec97d2569f90b7ea4ed0a27547a32127d24a9ca73c54aee35ddb7434333cbd3 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-13499976.pt b/SoccerTwos/SoccerTwos-13499976.pt new file mode 100644 index 0000000000000000000000000000000000000000..7e232ca40c418d6212f1ce2319cbed53cca1aef0 --- /dev/null +++ b/SoccerTwos/SoccerTwos-13499976.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b5d8d31b2f448b4390c3664c545631e7892987e7f883b5f8b06ca10a0053554 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-13999300.onnx b/SoccerTwos/SoccerTwos-13999300.onnx new file mode 100644 index 0000000000000000000000000000000000000000..bf6f951aac4e34cc9f606510097ed5c2150c8ecf --- /dev/null +++ b/SoccerTwos/SoccerTwos-13999300.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:609759fa06195a3da6eab4a45dc0b24e01899b25e14fdac0eba862157f13c1a3 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-13999300.pt b/SoccerTwos/SoccerTwos-13999300.pt new file mode 100644 index 0000000000000000000000000000000000000000..004844983ec3a5afda825290ca306b0eb040f48f --- /dev/null +++ b/SoccerTwos/SoccerTwos-13999300.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3922b8bf400048dd64cd3ccc6a150f9ecbab8443a9106a6c30393778b4b0fa4c +size 28431689 diff --git a/SoccerTwos/SoccerTwos-14499624.onnx b/SoccerTwos/SoccerTwos-14499624.onnx new file mode 100644 index 0000000000000000000000000000000000000000..aa746a2dc7308b1d3259e56280aa8bf0e7084ddd --- /dev/null +++ b/SoccerTwos/SoccerTwos-14499624.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd381e257c75417161675a8106a56bb8de95ccdd5223fa8acbd6eb882edb599e +size 1768746 diff --git a/SoccerTwos/SoccerTwos-14499624.pt b/SoccerTwos/SoccerTwos-14499624.pt new file mode 100644 index 0000000000000000000000000000000000000000..2af022c0619062d41d20c63cb04ba5d656891e1b --- /dev/null +++ b/SoccerTwos/SoccerTwos-14499624.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d38c18e9a513f7d8ddd933b53d8b8a5f293d0484b737fa7c423f1fff555429c8 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-1499602.onnx b/SoccerTwos/SoccerTwos-1499602.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b23f857115f620945255ca7b59f7f23ee2d5c0b8 --- /dev/null +++ b/SoccerTwos/SoccerTwos-1499602.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc013eac2b237b8835c0837c6c21f2bfa6480c294f2f762f02ab5eae044caa2b +size 1768746 diff --git a/SoccerTwos/SoccerTwos-1499602.pt b/SoccerTwos/SoccerTwos-1499602.pt new file mode 100644 index 0000000000000000000000000000000000000000..09a36e3b70e9cb1ce9ae427da08926299f31a09f --- /dev/null +++ b/SoccerTwos/SoccerTwos-1499602.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1aa1138647a48113639d0a898841960e3040f54d4728711028bb1f3174534966 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-14999948.onnx b/SoccerTwos/SoccerTwos-14999948.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3f902884bac958c2fb91a04e94a9aec689dc0b2d --- /dev/null +++ b/SoccerTwos/SoccerTwos-14999948.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b659b47e8b9b7128895830ca2408f2ea5a6bd29ed95f641d9432840e02f83256 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-14999948.pt b/SoccerTwos/SoccerTwos-14999948.pt new file mode 100644 index 0000000000000000000000000000000000000000..fa7557eedd3ca8d079bb01a458490297e3ab4693 --- /dev/null +++ b/SoccerTwos/SoccerTwos-14999948.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48af53d83896a141ed3018a60c4228a3d02d62aae2f7b594ca31b4e4a46fb2e6 +size 28431689 diff --git a/SoccerTwos/SoccerTwos-1999764.onnx b/SoccerTwos/SoccerTwos-1999764.onnx new file mode 100644 index 0000000000000000000000000000000000000000..41f0c5e35d2eeed093aebc5075b68dd5103c6e24 --- /dev/null +++ b/SoccerTwos/SoccerTwos-1999764.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b20dfceaef394dfa7126fc25d5b0bdb0f645de024eb77c3ed736991c4f1bbdec +size 1768746 diff --git a/SoccerTwos/SoccerTwos-1999764.pt b/SoccerTwos/SoccerTwos-1999764.pt new file mode 100644 index 0000000000000000000000000000000000000000..53e826a57ead182dac3279f767b711d84c01b732 --- /dev/null +++ b/SoccerTwos/SoccerTwos-1999764.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdfec7daae3c748700f6d68065862a5db9e089b0febe3f929e38c16f70bbafde +size 28431567 diff --git a/SoccerTwos/SoccerTwos-2499731.onnx b/SoccerTwos/SoccerTwos-2499731.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4d589e2ffddd9abbb3972dc7f011c7359d7e1f4a --- /dev/null +++ b/SoccerTwos/SoccerTwos-2499731.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b57681045916155f1523affce143842a369cf48cbedd54834530596d2d45d870 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-2499731.pt b/SoccerTwos/SoccerTwos-2499731.pt new file mode 100644 index 0000000000000000000000000000000000000000..ad8f560dec715d99a52aea6bb8d6318b2f89d1f2 --- /dev/null +++ b/SoccerTwos/SoccerTwos-2499731.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22e0229c8845ba9f3079e16e7fe99b1586af8263d9994170c9a9d9db1179fae3 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-2999768.onnx b/SoccerTwos/SoccerTwos-2999768.onnx new file mode 100644 index 0000000000000000000000000000000000000000..2c5cea0b359bda71b5e824b765d0eb2e6781225d --- /dev/null +++ b/SoccerTwos/SoccerTwos-2999768.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c067a72d6463b8fe022c61b5157db8bf9f147e6f19d8b76eea12996a891ab765 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-2999768.pt b/SoccerTwos/SoccerTwos-2999768.pt new file mode 100644 index 0000000000000000000000000000000000000000..ea60f4e6c93829e9807502a96a57b768376daf0b --- /dev/null +++ b/SoccerTwos/SoccerTwos-2999768.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b4f3c21210cdc88d8be7aae7899a61eef76966dd17a6bb01deaac455de9e2ee +size 28431567 diff --git a/SoccerTwos/SoccerTwos-3499810.onnx b/SoccerTwos/SoccerTwos-3499810.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f3b5de73a6d237d6dc73c8f552d84136424c4a6d --- /dev/null +++ b/SoccerTwos/SoccerTwos-3499810.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14a8cfc1f7ed95f9916614951d03bde0e63d8b657af1e9feb5650a4795d93f1a +size 1768746 diff --git a/SoccerTwos/SoccerTwos-3499810.pt b/SoccerTwos/SoccerTwos-3499810.pt new file mode 100644 index 0000000000000000000000000000000000000000..119c0a1065c7feccb0f3251e34542225954801b0 --- /dev/null +++ b/SoccerTwos/SoccerTwos-3499810.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:295e95ff5f8bffb59b37d9d39d8010f46c91b1d74053610aeee21c6e58a8f3ca +size 28431567 diff --git a/SoccerTwos/SoccerTwos-3999450.onnx b/SoccerTwos/SoccerTwos-3999450.onnx new file mode 100644 index 0000000000000000000000000000000000000000..b78295901ff4446b049d71b1ba317fa3e0ee9740 --- /dev/null +++ b/SoccerTwos/SoccerTwos-3999450.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a4ef21fc21eb2ee5ed9eba998a90607e97ce10ee24223f26765811a404c0f8b +size 1768746 diff --git a/SoccerTwos/SoccerTwos-3999450.pt b/SoccerTwos/SoccerTwos-3999450.pt new file mode 100644 index 0000000000000000000000000000000000000000..1656db5038363539422236789c48402a7e0e2d80 --- /dev/null +++ b/SoccerTwos/SoccerTwos-3999450.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f870b16c9eea4dd4b3a851d58e17898c4fc684d8a471615186fc9933479b467 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-4499286.onnx b/SoccerTwos/SoccerTwos-4499286.onnx new file mode 100644 index 0000000000000000000000000000000000000000..6e2b99237a3c3a73101aa0dd72523303ebed5621 --- /dev/null +++ b/SoccerTwos/SoccerTwos-4499286.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d222536e1066d29bc6917b9893b7f19811ac251508a7816827e32b6bdc97085c +size 1768746 diff --git a/SoccerTwos/SoccerTwos-4499286.pt b/SoccerTwos/SoccerTwos-4499286.pt new file mode 100644 index 0000000000000000000000000000000000000000..efb24b9b72b8b9374b2178562a2b84742b8e4416 --- /dev/null +++ b/SoccerTwos/SoccerTwos-4499286.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:095438b468f7615c3e5a3d6a756510647f256c4e5618af16bdedbef040c0c89e +size 28431567 diff --git a/SoccerTwos/SoccerTwos-499822.onnx b/SoccerTwos/SoccerTwos-499822.onnx new file mode 100644 index 0000000000000000000000000000000000000000..1903dc9dbfcfd89769b604be011881623199b9da --- /dev/null +++ b/SoccerTwos/SoccerTwos-499822.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91ad1236c0c080af6d593f94a0781c1545a1fc5f9e05671fcc090bab43908c66 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-499822.pt b/SoccerTwos/SoccerTwos-499822.pt new file mode 100644 index 0000000000000000000000000000000000000000..bd121672d71e2124725ffdeb9139f0d9c4f607f2 --- /dev/null +++ b/SoccerTwos/SoccerTwos-499822.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa2e6c2311a66aa1efa4a5cc270f566311ea2e5055456140871ce6143d7e3cfc +size 28431445 diff --git a/SoccerTwos/SoccerTwos-4999904.onnx b/SoccerTwos/SoccerTwos-4999904.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9e2a41a862709e6e82f10b60f27d87b195453564 --- /dev/null +++ b/SoccerTwos/SoccerTwos-4999904.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b62f35c8d5eaa042915d6deb1894fe63549010ffbafa49279b2d551c6ef1033 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-4999904.pt b/SoccerTwos/SoccerTwos-4999904.pt new file mode 100644 index 0000000000000000000000000000000000000000..8ace6568a6c4b5e23b4ea0ae1ddd0e8daa5fb2ab --- /dev/null +++ b/SoccerTwos/SoccerTwos-4999904.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd79b7337b1e361f9e90f6081802e6873d2bd461b5c9a6c4f4f543ba49340fc1 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-5499878.onnx b/SoccerTwos/SoccerTwos-5499878.onnx new file mode 100644 index 0000000000000000000000000000000000000000..f59c47f26a4128f4a7b809bbe7294bc882af9deb --- /dev/null +++ b/SoccerTwos/SoccerTwos-5499878.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcdf5a07b76b42e249544edfeec0bee736d51b931bd98d86151c2886573ae783 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-5499878.pt b/SoccerTwos/SoccerTwos-5499878.pt new file mode 100644 index 0000000000000000000000000000000000000000..63deb61bf789b9aa8b2e43e081f6a90d8f348098 --- /dev/null +++ b/SoccerTwos/SoccerTwos-5499878.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2696506fa6465821e674b31c1dc37c56b776aa7f1d5122456311b5187ab9af2c +size 28431567 diff --git a/SoccerTwos/SoccerTwos-5999658.onnx b/SoccerTwos/SoccerTwos-5999658.onnx new file mode 100644 index 0000000000000000000000000000000000000000..643ab54cc734aa5ccb44e2586247b1163b05f88f --- /dev/null +++ b/SoccerTwos/SoccerTwos-5999658.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66c111c24fc8b850954f4dfb90ab085dbfc31970558e910605a254382e79c0b0 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-5999658.pt b/SoccerTwos/SoccerTwos-5999658.pt new file mode 100644 index 0000000000000000000000000000000000000000..afb8e439883811d4c080f80e683b11256d1f3f91 --- /dev/null +++ b/SoccerTwos/SoccerTwos-5999658.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae4941d4c1a4b1ca9852882b7b7dd5427cf4b0836b192ad79f9daf1fecdc4500 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-6499020.onnx b/SoccerTwos/SoccerTwos-6499020.onnx new file mode 100644 index 0000000000000000000000000000000000000000..39c30a25ba9d2d2119f90608adba5f75b5e62965 --- /dev/null +++ b/SoccerTwos/SoccerTwos-6499020.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00a5dae212b7de3f2e54a3a53a279e1d51c7ee91d86e7ffe124b5494d495fa70 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-6499020.pt b/SoccerTwos/SoccerTwos-6499020.pt new file mode 100644 index 0000000000000000000000000000000000000000..7211e978159d69caea6f0c8deac80aaad35f71cd --- /dev/null +++ b/SoccerTwos/SoccerTwos-6499020.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69b7ef65c6f9054190c2451a5803224dd4f0dcd89352d065804844f88bba68f7 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-6999868.onnx b/SoccerTwos/SoccerTwos-6999868.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3cffd8d556f05624c2a6e97fd20191247f1bbea7 --- /dev/null +++ b/SoccerTwos/SoccerTwos-6999868.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4003b908dd4a0d445bb2ee4cedf288046cfb0bb10a46e05cce5566f5a58f80b +size 1768746 diff --git a/SoccerTwos/SoccerTwos-6999868.pt b/SoccerTwos/SoccerTwos-6999868.pt new file mode 100644 index 0000000000000000000000000000000000000000..b89dda22a74264f3ca8c81a6692488bc6daa1deb --- /dev/null +++ b/SoccerTwos/SoccerTwos-6999868.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:347c653a4dc442a3c0918bf67a3a87a633396860173163fc4ad40fc60286cf1f +size 28431567 diff --git a/SoccerTwos/SoccerTwos-7499852.onnx b/SoccerTwos/SoccerTwos-7499852.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3f337fd7d87ce78adbb91727d9deec14a9df866a --- /dev/null +++ b/SoccerTwos/SoccerTwos-7499852.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b91e1c4a365e2591762447f4ee8c69ef4391b689d61e338a3b38a47ea510cf09 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-7499852.pt b/SoccerTwos/SoccerTwos-7499852.pt new file mode 100644 index 0000000000000000000000000000000000000000..df87315e8f446fa5e7c1cb90323316ce177dde52 --- /dev/null +++ b/SoccerTwos/SoccerTwos-7499852.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3784be05b169ea549c36942b553d463b9bce96cf40552cb89ac0beaf06957566 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-7999500.onnx b/SoccerTwos/SoccerTwos-7999500.onnx new file mode 100644 index 0000000000000000000000000000000000000000..37db47171aaad87217c2e097b3ab83e7a87cd6fc --- /dev/null +++ b/SoccerTwos/SoccerTwos-7999500.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dec4a7d7fdbfdfed967c6d95794ec9f0cfcfe79de031654c6f91f8345dbfd0b2 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-7999500.pt b/SoccerTwos/SoccerTwos-7999500.pt new file mode 100644 index 0000000000000000000000000000000000000000..288468fd6c90ad9e60739cfbcdc1fe64cc063461 --- /dev/null +++ b/SoccerTwos/SoccerTwos-7999500.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6689f2f251ef7b2200d5f95f04330788e64a2f169eef1b049ae9e1ab804a002d +size 28431567 diff --git a/SoccerTwos/SoccerTwos-8499812.onnx b/SoccerTwos/SoccerTwos-8499812.onnx new file mode 100644 index 0000000000000000000000000000000000000000..98ce25233b0be990e568466f52153a26e0ca5b3e --- /dev/null +++ b/SoccerTwos/SoccerTwos-8499812.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9af243b58a3148aff710cf035ad33d54932a4bacb7ead1ff39f2ee625f859e85 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-8499812.pt b/SoccerTwos/SoccerTwos-8499812.pt new file mode 100644 index 0000000000000000000000000000000000000000..5c478611626576f8c0704e785ae5b116be608d73 --- /dev/null +++ b/SoccerTwos/SoccerTwos-8499812.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78cb43fe0a36c2d7db32e3fc51fa8a71552ad9914e80aa94f936b96449aa9055 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-8999956.onnx b/SoccerTwos/SoccerTwos-8999956.onnx new file mode 100644 index 0000000000000000000000000000000000000000..d270afc742eac89f1583b2c1ad8b322ed317b0bd --- /dev/null +++ b/SoccerTwos/SoccerTwos-8999956.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c85751e9b17e4bb9c0021fb26274480792ebcb6351650008e01ccb84f0541bc +size 1768746 diff --git a/SoccerTwos/SoccerTwos-8999956.pt b/SoccerTwos/SoccerTwos-8999956.pt new file mode 100644 index 0000000000000000000000000000000000000000..7bc274bbcfbacc0bbc20e8afd3e12388b7a3b3c7 --- /dev/null +++ b/SoccerTwos/SoccerTwos-8999956.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caeaad0a60697e829a3ab1d359bf9a68132203bfa67ab92346cd2bf104906035 +size 28431567 diff --git a/SoccerTwos/SoccerTwos-9499384.onnx b/SoccerTwos/SoccerTwos-9499384.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7bbe6884bbaeac65bc8f5101de924c4d80a68955 --- /dev/null +++ b/SoccerTwos/SoccerTwos-9499384.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4086ec7b1c1305a698dae212de79cf1720bda2aa7fef4b0f9c2bd38427c14d5a +size 1768746 diff --git a/SoccerTwos/SoccerTwos-9499384.pt b/SoccerTwos/SoccerTwos-9499384.pt new file mode 100644 index 0000000000000000000000000000000000000000..ca9f8d71aec81bf6e0102e540a4330c415419798 --- /dev/null +++ b/SoccerTwos/SoccerTwos-9499384.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bc3c37c40cafabb6e00a4c3dbca9380fd86b57e7d2f55e9529b739f35a6a3fd +size 28431567 diff --git a/SoccerTwos/SoccerTwos-999672.onnx b/SoccerTwos/SoccerTwos-999672.onnx new file mode 100644 index 0000000000000000000000000000000000000000..c3a9eac3198924173ff7d6cb087b6e6211fb2b64 --- /dev/null +++ b/SoccerTwos/SoccerTwos-999672.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6ed03777c444647fcc88ffc980a2c2e0e5b1e182ee1fbac63d8b02fe5343e6d +size 1768746 diff --git a/SoccerTwos/SoccerTwos-999672.pt b/SoccerTwos/SoccerTwos-999672.pt new file mode 100644 index 0000000000000000000000000000000000000000..7bbb86765137afa25da08b6ec39d8e8b61b612b7 --- /dev/null +++ b/SoccerTwos/SoccerTwos-999672.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3628f35e6ef3428147de5bfd769ff21ebcff09400587ac095fb743b66677f4a7 +size 28431445 diff --git a/SoccerTwos/SoccerTwos-9999708.onnx b/SoccerTwos/SoccerTwos-9999708.onnx new file mode 100644 index 0000000000000000000000000000000000000000..4b20bd88d768d02fb1a7df609bf2f56ea48280f6 --- /dev/null +++ b/SoccerTwos/SoccerTwos-9999708.onnx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1789ba13f7f466a360c0d5448471c5129e8aa211e83c1a3e18cbbf287367ce41 +size 1768746 diff --git a/SoccerTwos/SoccerTwos-9999708.pt b/SoccerTwos/SoccerTwos-9999708.pt new file mode 100644 index 0000000000000000000000000000000000000000..e12fcbca0fdbf5cb6d7ed64f9fa0d403df022f57 --- /dev/null +++ b/SoccerTwos/SoccerTwos-9999708.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bc9851ca2099b8abb6763970245d246f8a3c293bfe8d4419da195f22cffb4e3 +size 28431567 diff --git a/SoccerTwos/checkpoint.pt b/SoccerTwos/checkpoint.pt new file mode 100644 index 0000000000000000000000000000000000000000..a6a330d72912d4b404fb93db135e182237ac1ce7 --- /dev/null +++ b/SoccerTwos/checkpoint.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e21b9a0ac9e27ac3a2d4abd498cbdf9ece5d9f2f3101217259399c287c3c7c1a +size 28430591 diff --git a/SoccerTwos/events.out.tfevents.1678884105.ThoDum.6468.0 b/SoccerTwos/events.out.tfevents.1678884105.ThoDum.6468.0 new file mode 100644 index 0000000000000000000000000000000000000000..0d45a0c3d9654600fabfddd4818d0e2f4d1963da --- /dev/null +++ b/SoccerTwos/events.out.tfevents.1678884105.ThoDum.6468.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94d5ee9375ec3ae89d77be7194fad0d6e80f2270cfb54c9c8af4ca35612271ad +size 105046 diff --git a/SoccerTwos/events.out.tfevents.1678889483.ThoDum.26972.0 b/SoccerTwos/events.out.tfevents.1678889483.ThoDum.26972.0 new file mode 100644 index 0000000000000000000000000000000000000000..889d9fd8cf606ddb2a48b7999f1d73340911e7d6 --- /dev/null +++ b/SoccerTwos/events.out.tfevents.1678889483.ThoDum.26972.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88bc75ca3936e4fa5c5c5507b53bbef6e9b73bca67a9a198aeef65569fd6247b +size 1411 diff --git a/SoccerTwos/events.out.tfevents.1678889649.ThoDum.17260.0 b/SoccerTwos/events.out.tfevents.1678889649.ThoDum.17260.0 new file mode 100644 index 0000000000000000000000000000000000000000..9936497b3b87215219283e666a30a69cf635f256 --- /dev/null +++ b/SoccerTwos/events.out.tfevents.1678889649.ThoDum.17260.0 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e07138d729372644ff8df1e4066d5ea0285c144ba8d95249e38d944fe6568cc +size 1178320 diff --git a/config.json b/config.json new file mode 100644 index 0000000000000000000000000000000000000000..6bb118c79c09cff94d741972fb9b53126e1bd9fe --- /dev/null +++ b/config.json @@ -0,0 +1 @@ +{"default_settings": null, "behaviors": {"SoccerTwos": {"trainer_type": "poca", "hyperparameters": {"batch_size": 2048, "buffer_size": 20480, "learning_rate": 0.0003, "beta": 0.005, "epsilon": 0.2, "lambd": 0.95, "num_epoch": 3, "learning_rate_schedule": "linear", "beta_schedule": "linear", "epsilon_schedule": "linear"}, "checkpoint_interval": 500000, "network_settings": {"normalize": false, "hidden_units": 512, "num_layers": 2, "vis_encode_type": "simple", "memory": null, "goal_conditioning_type": "hyper", "deterministic": false}, "reward_signals": {"extrinsic": {"gamma": 0.99, "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}}}, "init_path": null, "keep_checkpoints": 50, "even_checkpoints": false, "max_steps": 100000000, "time_horizon": 1000, "summary_freq": 50000, "threaded": false, "self_play": {"save_steps": 100000, "team_change": 250000, "swap_steps": 2500, "window": 10, "play_against_latest_model_ratio": 0.5, "initial_elo": 1200.0}, "behavioral_cloning": null}}, "env_settings": {"env_path": "./training-envs-executables/SoccerTwos.exe", "env_args": null, "base_port": 5005, "num_envs": 1, "num_areas": 1, "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}, "environment_parameters": null, "checkpoint_settings": {"run_id": "SoccerTwos", "initialize_from": null, "load_model": false, "resume": true, "force": false, "train_model": false, "inference": false, "results_dir": "results"}, "torch_settings": {"device": "cuda"}, "debug": false} \ No newline at end of file diff --git a/configuration.yaml b/configuration.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f51c7234e08986ad8a1e2f089fc1799332889bd4 --- /dev/null +++ b/configuration.yaml @@ -0,0 +1,82 @@ +default_settings: null +behaviors: + SoccerTwos: + trainer_type: poca + hyperparameters: + batch_size: 2048 + buffer_size: 20480 + learning_rate: 0.0003 + beta: 0.005 + epsilon: 0.2 + lambd: 0.95 + num_epoch: 3 + learning_rate_schedule: linear + beta_schedule: linear + epsilon_schedule: linear + checkpoint_interval: 500000 + network_settings: + normalize: false + hidden_units: 512 + num_layers: 2 + vis_encode_type: simple + memory: null + goal_conditioning_type: hyper + deterministic: false + reward_signals: + extrinsic: + gamma: 0.99 + 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 + init_path: null + keep_checkpoints: 50 + even_checkpoints: false + max_steps: 100000000 + time_horizon: 1000 + summary_freq: 50000 + threaded: false + self_play: + save_steps: 100000 + team_change: 250000 + swap_steps: 2500 + window: 10 + play_against_latest_model_ratio: 0.5 + initial_elo: 1200.0 + behavioral_cloning: null +env_settings: + env_path: ./training-envs-executables/SoccerTwos.exe + env_args: null + base_port: 5005 + num_envs: 1 + num_areas: 1 + 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 +environment_parameters: null +checkpoint_settings: + run_id: SoccerTwos + initialize_from: null + load_model: false + resume: true + force: false + train_model: false + inference: false + results_dir: results +torch_settings: + device: cuda +debug: false diff --git a/run_logs/Player-0.log b/run_logs/Player-0.log new file mode 100644 index 0000000000000000000000000000000000000000..7772765ebc03af25c840aa8a7987794ec2b9a30d --- /dev/null +++ b/run_logs/Player-0.log @@ -0,0 +1,7622 @@ +Mono path[0] = 'C:/Users/dumaz/OneDrive/Bureau/reinforcement_learning/hugging_face/ml-agents/training-envs-executables/SoccerTwos/SoccerTwos_Data/Managed' +Mono config path = 'C:/Users/dumaz/OneDrive/Bureau/reinforcement_learning/hugging_face/ml-agents/training-envs-executables/SoccerTwos/MonoBleedingEdge/etc' +Initialize engine version: 2021.3.14f1 (eee1884e7226) +[Subsystems] Discovering subsystems at path C:/Users/dumaz/OneDrive/Bureau/reinforcement_learning/hugging_face/ml-agents/training-envs-executables/SoccerTwos/SoccerTwos_Data/UnitySubsystems +Forcing GfxDevice: Null +GfxDevice: creating device client; threaded=0; jobified=0 +NullGfxDevice: + Version: NULL 1.0 [1.0] + Renderer: Null Device + Vendor: Unity Technologies +Begin MonoManager ReloadAssembly +- Completed reload, in 0.064 seconds +ERROR: Shader Sprites/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +Microsoft Media Foundation video decoding to texture disabled: graphics device is Null, only Direct3D 11 and Direct3D 12 (only on desktop) are supported for hardware-accelerated video decoding. +ERROR: Shader Sprites/Mask shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +ERROR: Shader Legacy Shaders/VertexLit shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +WARNING: Shader Unsupported: 'Standard (Specular setup)' - All subshaders removed +WARNING: Shader Did you use #pragma only_renderers and omit this platform? +WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off? +ERROR: Shader Standard (Specular setup) shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +WARNING: Shader Unsupported: 'Standard (Specular setup)' - All subshaders removed +WARNING: Shader Did you use #pragma only_renderers and omit this platform? +WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off? +WARNING: Shader Unsupported: 'Autodesk Interactive' - All subshaders removed +WARNING: Shader Did you use #pragma only_renderers and omit this platform? +WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off? +ERROR: Shader Autodesk Interactive shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +WARNING: Shader Unsupported: 'Autodesk Interactive' - All subshaders removed +WARNING: Shader Did you use #pragma only_renderers and omit this platform? +WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off? +WARNING: Shader Unsupported: 'Standard' - All subshaders removed +WARNING: Shader Did you use #pragma only_renderers and omit this platform? +WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off? +ERROR: Shader Standard shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +WARNING: Shader Unsupported: 'Standard' - All subshaders removed +WARNING: Shader Did you use #pragma only_renderers and omit this platform? +WARNING: Shader If subshaders removal was intentional, you may have forgotten turning Fallback off? +UnloadTime: 0.629200 ms +Registered Communicator in Agent. +ERROR: Shader UI/Default shader is not supported on this GPU (none of subshaders/fallbacks are suitable) +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +TOO LONG +Setting up 8 worker threads for Enlighten. +Memory Statistics: +[ALLOC_TEMP_TLS] TLS Allocator + StackAllocators : + [ALLOC_TEMP_MAIN] + Peak usage frame count: [8.0 KB-16.0 KB]: 284145 frames, [2.0 MB-4.0 MB]: 1 frames + Initial Block Size 4.0 MB + Current Block Size 4.0 MB + Peak Allocated Bytes 2.0 MB + Overflow Count 0 + [ALLOC_TEMP_Loading.AsyncRead] + Initial Block Size 64.0 KB + Current Block Size 64.0 KB + Peak Allocated Bytes 468 B + Overflow Count 0 + [ALLOC_TEMP_Loading.PreloadManager] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 67.2 KB + Overflow Count 4 + [ALLOC_TEMP_Background Job.Worker 8] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 6] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 0] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 10] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 9] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 5] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 14] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 6] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 4] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 14] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 3] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 13] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 12] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_EnlightenWorker] x 8 + Initial Block Size 64.0 KB + Current Block Size 64.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 15] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 1] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 2] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 7] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_AssetGarbageCollectorHelper] x 15 + Initial Block Size 64.0 KB + Current Block Size 64.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 5] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 9] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 13] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 8] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 7] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 1] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 2] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 3] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 11] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 10] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 0.8 KB + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 0] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 11] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Job.Worker 12] + Initial Block Size 256.0 KB + Current Block Size 256.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_Background Job.Worker 4] + Initial Block Size 32.0 KB + Current Block Size 32.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 + [ALLOC_TEMP_BatchDeleteObjects] + Initial Block Size 64.0 KB + Current Block Size 64.0 KB + Peak Allocated Bytes 54 B + Overflow Count 0 +[ALLOC_DEFAULT] Dual Thread Allocator + Peak main deferred allocation count 5 + [ALLOC_BUCKET] + Large Block size 4.0 MB + Used Block count 1 + Peak Allocated bytes 0.9 MB + [ALLOC_DEFAULT_MAIN] + Peak usage frame count: [4.0 MB-8.0 MB]: 284146 frames + Requested Block Size 16.0 MB + Peak Block count 1 + Peak Allocated memory 5.2 MB + Peak Large allocation bytes 0 B + [ALLOC_DEFAULT_THREAD] + Peak usage frame count: [16.0 MB-32.0 MB]: 284146 frames + Requested Block Size 16.0 MB + Peak Block count 1 + Peak Allocated memory 17.2 MB + Peak Large allocation bytes 16.0 MB +[ALLOC_TEMP_JOB_1_FRAME] + Initial Block Size 2.0 MB + Used Block Count 1 + Overflow Count (too large) 0 + Overflow Count (full) 0 +[ALLOC_TEMP_JOB_2_FRAMES] + Initial Block Size 2.0 MB + Used Block Count 1 + Overflow Count (too large) 0 + Overflow Count (full) 0 +[ALLOC_TEMP_JOB_4_FRAMES (JobTemp)] + Initial Block Size 2.0 MB + Used Block Count 2 + Overflow Count (too large) 0 + Overflow Count (full) 0 +[ALLOC_TEMP_JOB_ASYNC (Background)] + Initial Block Size 1.0 MB + Used Block Count 3 + Overflow Count (too large) 0 + Overflow Count (full) 0 +[ALLOC_GFX] Dual Thread Allocator + Peak main deferred allocation count 0 + [ALLOC_BUCKET] + Large Block size 4.0 MB + Used Block count 1 + Peak Allocated bytes 0.9 MB + [ALLOC_GFX_MAIN] + Peak usage frame count: [32.0 KB-64.0 KB]: 284145 frames, [64.0 KB-128.0 KB]: 1 frames + Requested Block Size 16.0 MB + Peak Block count 1 + Peak Allocated memory 65.6 KB + Peak Large allocation bytes 0 B + [ALLOC_GFX_THREAD] + Peak usage frame count: [128.0 KB-256.0 KB]: 284146 frames + Requested Block Size 16.0 MB + Peak Block count 1 + Peak Allocated memory 173.6 KB + Peak Large allocation bytes 0 B +[ALLOC_CACHEOBJECTS] Dual Thread Allocator + Peak main deferred allocation count 2 + [ALLOC_BUCKET] + Large Block size 4.0 MB + Used Block count 1 + Peak Allocated bytes 0.9 MB + [ALLOC_CACHEOBJECTS_MAIN] + Peak usage frame count: [0.5 MB-1.0 MB]: 284146 frames + Requested Block Size 4.0 MB + Peak Block count 1 + Peak Allocated memory 0.6 MB + Peak Large allocation bytes 0 B + [ALLOC_CACHEOBJECTS_THREAD] + Peak usage frame count: [0.5 MB-1.0 MB]: 284145 frames, [2.0 MB-4.0 MB]: 1 frames + Requested Block Size 4.0 MB + Peak Block count 1 + Peak Allocated memory 3.2 MB + Peak Large allocation bytes 0 B +[ALLOC_TYPETREE] Dual Thread Allocator + Peak main deferred allocation count 0 + [ALLOC_BUCKET] + Large Block size 4.0 MB + Used Block count 1 + Peak Allocated bytes 0.9 MB + [ALLOC_TYPETREE_MAIN] + Peak usage frame count: [0-1.0 KB]: 284146 frames + Requested Block Size 2.0 MB + Peak Block count 1 + Peak Allocated memory 1.0 KB + Peak Large allocation bytes 0 B + [ALLOC_TYPETREE_THREAD] + Peak usage frame count: [1.0 KB-2.0 KB]: 284145 frames, [2.0 KB-4.0 KB]: 1 frames + Requested Block Size 2.0 MB + Peak Block count 1 + Peak Allocated memory 2.2 KB + Peak Large allocation bytes 0 B diff --git a/run_logs/timers.json b/run_logs/timers.json new file mode 100644 index 0000000000000000000000000000000000000000..8ba036f909add38666c9ad6cf451e82f8cabecc8 --- /dev/null +++ b/run_logs/timers.json @@ -0,0 +1,207 @@ +{ + "name": "root", + "gauges": { + "SoccerTwos.Policy.Entropy.mean": { + "value": 3.2222988605499268, + "min": 3.2222988605499268, + "max": 3.2222988605499268, + "count": 1 + }, + "SoccerTwos.Policy.Entropy.sum": { + "value": 60733.88671875, + "min": 60733.88671875, + "max": 60733.88671875, + "count": 1 + }, + "SoccerTwos.Environment.EpisodeLength.mean": { + "value": 587.0, + "min": 587.0, + "max": 587.0, + "count": 1 + }, + "SoccerTwos.Environment.EpisodeLength.sum": { + "value": 2348.0, + "min": 2348.0, + "max": 2348.0, + "count": 1 + }, + "SoccerTwos.Self-play.ELO.mean": { + "value": 1193.81937369352, + "min": 1193.81937369352, + "max": 1193.81937369352, + "count": 1 + }, + "SoccerTwos.Self-play.ELO.sum": { + "value": 2387.63874738704, + "min": 2387.63874738704, + "max": 2387.63874738704, + "count": 1 + }, + "SoccerTwos.IsTraining.mean": { + "value": 1.0, + "min": 1.0, + "max": 1.0, + "count": 1 + }, + "SoccerTwos.IsTraining.sum": { + "value": 1.0, + "min": 1.0, + "max": 1.0, + "count": 1 + } + }, + "metadata": { + "timer_format_version": "0.1.0", + "start_time_seconds": "1678889480", + "python_version": "3.9.16 (main, Mar 8 2023, 10:39:24) [MSC v.1916 64 bit (AMD64)]", + "command_line_arguments": "C:\\ProgramData\\Anaconda3\\envs\\rl\\Scripts\\mlagents-learn ./config/poca/SoccerTwos.yaml --env=./training-envs-executables/SoccerTwos.exe --run-id=SoccerTwos --no-graphics --resume", + "mlagents_version": "0.31.0.dev0", + "mlagents_envs_version": "0.31.0.dev0", + "communication_protocol_version": "1.5.0", + "pytorch_version": "2.0.0", + "numpy_version": "1.21.2", + "end_time_seconds": "1678889498" + }, + "total": 18.397226800000002, + "count": 1, + "self": 0.18404840000000533, + "children": { + "run_training.setup": { + "total": 0.08811899999999984, + "count": 1, + "self": 0.08811899999999984 + }, + "TrainerController.start_learning": { + "total": 18.125059399999998, + "count": 1, + "self": 0.010332200000007674, + "children": { + "TrainerController._reset_env": { + "total": 6.0909763, + "count": 2, + "self": 6.0909763 + }, + "TrainerController.advance": { + "total": 11.865379899999986, + "count": 589, + "self": 0.008734799999924547, + "children": { + "env_step": { + "total": 11.615216600000066, + "count": 589, + "self": 6.12649140000002, + "children": { + "SubprocessEnvManager._take_step": { + "total": 5.482178700000048, + "count": 589, + "self": 0.052296300000096, + "children": { + "TorchPolicy.evaluate": { + "total": 5.429882399999952, + "count": 1178, + "self": 5.429882399999952 + } + } + }, + "workers": { + "total": 0.006546499999997124, + "count": 589, + "self": 0.0, + "children": { + "worker_root": { + "total": 14.318467800000036, + "count": 589, + "is_parallel": true, + "self": 9.446842600000044, + "children": { + "steps_from_proto": { + "total": 0.0026891, + "count": 4, + "is_parallel": true, + "self": 0.0005422000000008254, + "children": { + "_process_rank_one_or_two_observation": { + "total": 0.0021468999999991745, + "count": 16, + "is_parallel": true, + "self": 0.0021468999999991745 + } + } + }, + "UnityEnvironment.step": { + "total": 4.868936099999991, + "count": 589, + "is_parallel": true, + "self": 0.29477409999998816, + "children": { + "UnityEnvironment._generate_step_input": { + "total": 0.16951989999997785, + "count": 589, + "is_parallel": true, + "self": 0.16951989999997785 + }, + "communicator.exchange": { + "total": 3.591647200000014, + "count": 589, + "is_parallel": true, + "self": 3.591647200000014 + }, + "steps_from_proto": { + "total": 0.8129949000000112, + "count": 1178, + "is_parallel": true, + "self": 0.15749629999999915, + "children": { + "_process_rank_one_or_two_observation": { + "total": 0.655498600000012, + "count": 4712, + "is_parallel": true, + "self": 0.655498600000012 + } + } + } + } + } + } + } + } + } + } + }, + "trainer_advance": { + "total": 0.24142849999999605, + "count": 589, + "self": 0.03252839999997725, + "children": { + "process_trajectory": { + "total": 0.2089001000000188, + "count": 589, + "self": 0.006168500000018895, + "children": { + "RLTrainer._checkpoint": { + "total": 0.2027315999999999, + "count": 1, + "self": 0.2027315999999999 + } + } + } + } + } + } + }, + "TrainerController._save_models": { + "total": 0.15837100000000248, + "count": 1, + "self": 3.080000000110772e-05, + "children": { + "RLTrainer._checkpoint": { + "total": 0.15834020000000137, + "count": 1, + "self": 0.15834020000000137 + } + } + } + } + } + } +} \ No newline at end of file diff --git a/run_logs/training_status.json b/run_logs/training_status.json new file mode 100644 index 0000000000000000000000000000000000000000..79bfc077f606fc87d5c4da8966a6b7e8057923ea --- /dev/null +++ b/run_logs/training_status.json @@ -0,0 +1,10 @@ +{ + "SoccerTwos": { + "elo": 1194.0686541376654 + }, + "metadata": { + "stats_format_version": "0.3.0", + "mlagents_version": "0.31.0.dev0", + "torch_version": "2.0.0" + } +} \ No newline at end of file