Mercurial > repos > rnateam > rcas
annotate test-data/output.TIA1.bed.RCAS.report.html @ 0:aa9579837a2e draft
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
author | rnateam |
---|---|
date | Thu, 13 Apr 2017 12:36:05 -0400 |
parents | |
children |
rev | line source |
---|---|
0
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
1 <!DOCTYPE html> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
2 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
3 <html xmlns="http://www.w3.org/1999/xhtml"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
4 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
5 <head> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
6 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
7 <meta charset="utf-8"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
9 <meta name="generator" content="pandoc" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
10 <meta name="viewport" content="width=device-width, initial-scale=1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
11 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
12 <meta name="author" content="Bora Uyar, Dilmurat Yusuf, Ricardo Wurmus, Altuna Akalin" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
13 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
14 <meta name="date" content="2017-04-07" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
15 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
16 <title>The RNA Centric Analysis System Report</title> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
17 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
18 <script src="data:application/x-javascript;base64,LyohIGpRdWVyeSB2MS4xMi40IHwgKGMpIGpRdWVyeSBGb3VuZGF0aW9uIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihhLGIpeyJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWEuZG9jdW1lbnQ/YihhLCEwKTpmdW5jdGlvbihhKXtpZighYS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gYihhKX06YihhKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkPWEuZG9jdW1lbnQsZT1jLnNsaWNlLGY9Yy5jb25jYXQsZz1jLnB1c2gsaD1jLmluZGV4T2YsaT17fSxqPWkudG9TdHJpbmcsaz1pLmhhc093blByb3BlcnR5LGw9e30sbT0iMS4xMi40IixuPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBuLmZuLmluaXQoYSxiKX0sbz0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2cscD0vXi1tcy0vLHE9Ly0oW1xkYS16XSkvZ2kscj1mdW5jdGlvbihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9O24uZm49bi5wcm90b3R5cGU9e2pxdWVyeTptLGNvbnN0cnVjdG9yOm4sc2VsZWN0b3I6IiIsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT8wPmE/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdOmUuY2FsbCh0aGlzKX0scHVzaFN0YWNrOmZ1bmN0aW9uKGEpe3ZhciBiPW4ubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVybiBiLnByZXZPYmplY3Q9dGhpcyxiLmNvbnRleHQ9dGhpcy5jb250ZXh0LGJ9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4ubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aCxjPSthKygwPmE/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soYz49MCYmYj5jP1t0aGlzW2NdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDpnLHNvcnQ6Yy5zb3J0LHNwbGljZTpjLnNwbGljZX0sbi5leHRlbmQ9bi5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxpPWFyZ3VtZW50cy5sZW5ndGgsaj0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgZyYmKGo9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKSwib2JqZWN0Ij09dHlwZW9mIGd8fG4uaXNGdW5jdGlvbihnKXx8KGc9e30pLGg9PT1pJiYoZz10aGlzLGgtLSk7aT5oO2grKylpZihudWxsIT0oZT1hcmd1bWVudHNbaF0pKWZvcihkIGluIGUpYT1nW2RdLGM9ZVtkXSxnIT09YyYmKGomJmMmJihuLmlzUGxhaW5PYmplY3QoYyl8fChiPW4uaXNBcnJheShjKSkpPyhiPyhiPSExLGY9YSYmbi5pc0FycmF5KGEpP2E6W10pOmY9YSYmbi5pc1BsYWluT2JqZWN0KGEpP2E6e30sZ1tkXT1uLmV4dGVuZChqLGYsYykpOnZvaWQgMCE9PWMmJihnW2RdPWMpKTtyZXR1cm4gZ30sbi5leHRlbmQoe2V4cGFuZG86ImpRdWVyeSIrKG0rTWF0aC5yYW5kb20oKSkucmVwbGFjZSgvXEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PW4udHlwZShhKX0saXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iYXJyYXkiPT09bi50eXBlKGEpfSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09YS53aW5kb3d9LGlzTnVtZXJpYzpmdW5jdGlvbihhKXt2YXIgYj1hJiZhLnRvU3RyaW5nKCk7cmV0dXJuIW4uaXNBcnJheShhKSYmYi1wYXJzZUZsb2F0KGIpKzE+PTB9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIgaW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZighYXx8Im9iamVjdCIhPT1uLnR5cGUoYSl8fGEubm9kZVR5cGV8fG4uaXNXaW5kb3coYSkpcmV0dXJuITE7dHJ5e2lmKGEuY29uc3RydWN0b3ImJiFrLmNhbGwoYSwiY29uc3RydWN0b3IiKSYmIWsuY2FsbChhLmNvbnN0cnVjdG9yLnByb3RvdHlwZSwiaXNQcm90b3R5cGVPZiIpKXJldHVybiExfWNhdGNoKGMpe3JldHVybiExfWlmKCFsLm93bkZpcnN0KWZvcihiIGluIGEpcmV0dXJuIGsuY2FsbChhLGIpO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxrLmNhbGwoYSxiKX0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlwZW9mIGE/aVtqLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihiKXtiJiZuLnRyaW0oYikmJihhLmV4ZWNTY3JpcHR8fGZ1bmN0aW9uKGIpe2EuZXZhbC5jYWxsKGEsYil9KShiKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UocCwibXMtIikucmVwbGFjZShxLHIpfSxub2RlTmFtZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTA7aWYocyhhKSl7Zm9yKGM9YS5sZW5ndGg7Yz5kO2QrKylpZihiLmNhbGwoYVtkXSxkLGFbZF0pPT09ITEpYnJlYWt9ZWxzZSBmb3IoZCBpbiBhKWlmKGIuY2FsbChhW2RdLGQsYVtkXSk9PT0hMSlicmVhaztyZXR1cm4gYX0sdHJpbTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShvLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7dmFyIGM9Ynx8W107cmV0dXJuIG51bGwhPWEmJihzKE9iamVjdChhKSk/bi5tZXJnZShjLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6Zy5jYWxsKGMsYSkpLGN9LGluQXJyYXk6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO2lmKGIpe2lmKGgpcmV0dXJuIGguY2FsbChiLGEsYyk7Zm9yKGQ9Yi5sZW5ndGgsYz1jPzA+Yz9NYXRoLm1heCgwLGQrYyk6YzowO2Q+YztjKyspaWYoYyBpbiBiJiZiW2NdPT09YSlyZXR1cm4gY31yZXR1cm4tMX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXt2YXIgYz0rYi5sZW5ndGgsZD0wLGU9YS5sZW5ndGg7d2hpbGUoYz5kKWFbZSsrXT1iW2QrK107aWYoYyE9PWMpd2hpbGUodm9pZCAwIT09YltkXSlhW2UrK109YltkKytdO3JldHVybiBhLmxlbmd0aD1lLGF9LGdyZXA6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCxlPVtdLGY9MCxnPWEubGVuZ3RoLGg9IWM7Zz5mO2YrKylkPSFiKGFbZl0sZiksZCE9PWgmJmUucHVzaChhW2ZdKTtyZXR1cm4gZX0sbWFwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGc9MCxoPVtdO2lmKHMoYSkpZm9yKGQ9YS5sZW5ndGg7ZD5nO2crKyllPWIoYVtnXSxnLGMpLG51bGwhPWUmJmgucHVzaChlKTtlbHNlIGZvcihnIGluIGEpZT1iKGFbZ10sZyxjKSxudWxsIT1lJiZoLnB1c2goZSk7cmV0dXJuIGYuYXBwbHkoW10saCl9LGd1aWQ6MSxwcm94eTpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGImJihmPWFbYl0sYj1hLGE9Ziksbi5pc0Z1bmN0aW9uKGEpPyhjPWUuY2FsbChhcmd1bWVudHMsMiksZD1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsYy5jb25jYXQoZS5jYWxsKGFyZ3VtZW50cykpKX0sZC5ndWlkPWEuZ3VpZD1hLmd1aWR8fG4uZ3VpZCsrLGQpOnZvaWQgMH0sbm93OmZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfSxzdXBwb3J0Omx9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYobi5mbltTeW1ib2wuaXRlcmF0b3JdPWNbU3ltYm9sLml0ZXJhdG9yXSksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe2lbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7ZnVuY3Rpb24gcyhhKXt2YXIgYj0hIWEmJiJsZW5ndGgiaW4gYSYmYS5sZW5ndGgsYz1uLnR5cGUoYSk7cmV0dXJuImZ1bmN0aW9uIj09PWN8fG4uaXNXaW5kb3coYSk/ITE6ImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJmI+MCYmYi0xIGluIGF9dmFyIHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZixnLGgsaSxqLGssbCxtLG4sbyxwLHEscixzLHQsdT0ic2l6emxlIisxKm5ldyBEYXRlLHY9YS5kb2N1bWVudCx3PTAseD0wLHk9Z2EoKSx6PWdhKCksQT1nYSgpLEI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWImJihsPSEwKSwwfSxDPTE8PDMxLEQ9e30uaGFzT3duUHJvcGVydHksRT1bXSxGPUUucG9wLEc9RS5wdXNoLEg9RS5wdXNoLEk9RS5zbGljZSxKPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtkPmM7YysrKWlmKGFbY109PT1iKXJldHVybiBjO3JldHVybi0xfSxLPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTD0iW1xceDIwXFx0XFxyXFxuXFxmXSIsTT0iKD86XFxcXC58W1xcdy1dfFteXFx4MDAtXFx4YTBdKSsiLE49IlxcWyIrTCsiKigiK00rIikoPzoiK0wrIiooWypeJHwhfl0/PSkiK0wrIiooPzonKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitNKyIpKXwpIitMKyIqXFxdIixPPSI6KCIrTSsiKSg/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfCIrTisiKSopfC4qKVxcKXwpIixQPW5ldyBSZWdFeHAoTCsiKyIsImciKSxRPW5ldyBSZWdFeHAoIl4iK0wrIit8KCg/Ol58W15cXFxcXSkoPzpcXFxcLikqKSIrTCsiKyQiLCJnIiksUj1uZXcgUmVnRXhwKCJeIitMKyIqLCIrTCsiKiIpLFM9bmV3IFJlZ0V4cCgiXiIrTCsiKihbPit+XXwiK0wrIikiK0wrIioiKSxUPW5ldyBSZWdFeHAoIj0iK0wrIiooW15cXF0nXCJdKj8pIitMKyIqXFxdIiwiZyIpLFU9bmV3IFJlZ0V4cChPKSxWPW5ldyBSZWdFeHAoIl4iK00rIiQiKSxXPXtJRDpuZXcgUmVnRXhwKCJeIygiK00rIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrTSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrTSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK04pLFBTRVVETzpuZXcgUmVnRXhwKCJeIitPKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK0wrIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK0wrIiooPzooWystXXwpIitMKyIqKFxcZCspfCkpIitMKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitLKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTCsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitMKyIqKCg/Oi1cXGQpP1xcZCopIitMKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxYPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksWT0vXmhcZCQvaSxaPS9eW157XStce1xzKlxbbmF0aXZlIFx3LywkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sXz0vWyt+XS8sYWE9Lyd8XFwvZyxiYT1uZXcgUmVnRXhwKCJcXFxcKFtcXGRhLWZdezEsNn0iK0wrIj98KCIrTCsiKXwuKSIsImlnIiksY2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIweCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjowPmQ/U3RyaW5nLmZyb21DaGFyQ29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEwMjMmZHw1NjMyMCl9LGRhPWZ1bmN0aW9uKCl7bSgpfTt0cnl7SC5hcHBseShFPUkuY2FsbCh2LmNoaWxkTm9kZXMpLHYuY2hpbGROb2RlcyksRVt2LmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChlYSl7SD17YXBwbHk6RS5sZW5ndGg/ZnVuY3Rpb24oYSxiKXtHLmFwcGx5KGEsSS5jYWxsKGIpKX06ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmxlbmd0aCxkPTA7d2hpbGUoYVtjKytdPWJbZCsrXSk7YS5sZW5ndGg9Yy0xfX19ZnVuY3Rpb24gZmEoYSxiLGQsZSl7dmFyIGYsaCxqLGssbCxvLHIscyx3PWImJmIub3duZXJEb2N1bWVudCx4PWI/Yi5ub2RlVHlwZTo5O2lmKGQ9ZHx8W10sInN0cmluZyIhPXR5cGVvZiBhfHwhYXx8MSE9PXgmJjkhPT14JiYxMSE9PXgpcmV0dXJuIGQ7aWYoIWUmJigoYj9iLm93bmVyRG9jdW1lbnR8fGI6dikhPT1uJiZtKGIpLGI9Ynx8bixwKSl7aWYoMTEhPT14JiYobz0kLmV4ZWMoYSkpKWlmKGY9b1sxXSl7aWYoOT09PXgpe2lmKCEoaj1iLmdldEVsZW1lbnRCeUlkKGYpKSlyZXR1cm4gZDtpZihqLmlkPT09ZilyZXR1cm4gZC5wdXNoKGopLGR9ZWxzZSBpZih3JiYoaj13LmdldEVsZW1lbnRCeUlkKGYpKSYmdChiLGopJiZqLmlkPT09ZilyZXR1cm4gZC5wdXNoKGopLGR9ZWxzZXtpZihvWzJdKXJldHVybiBILmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksZDtpZigoZj1vWzNdKSYmYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEguYXBwbHkoZCxiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZikpLGR9aWYoYy5xc2EmJiFBW2ErIiAiXSYmKCFxfHwhcS50ZXN0KGEpKSl7aWYoMSE9PXgpdz1iLHM9YTtlbHNlIGlmKCJvYmplY3QiIT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXsoaz1iLmdldEF0dHJpYnV0ZSgiaWQiKSk/az1rLnJlcGxhY2UoYWEsIlxcJCYiKTpiLnNldEF0dHJpYnV0ZSgiaWQiLGs9dSkscj1nKGEpLGg9ci5sZW5ndGgsbD1WLnRlc3Qoayk/IiMiK2s6IltpZD0nIitrKyInXSI7d2hpbGUoaC0tKXJbaF09bCsiICIrcWEocltoXSk7cz1yLmpvaW4oIiwiKSx3PV8udGVzdChhKSYmb2EoYi5wYXJlbnROb2RlKXx8Yn1pZihzKXRyeXtyZXR1cm4gSC5hcHBseShkLHcucXVlcnlTZWxlY3RvckFsbChzKSksZH1jYXRjaCh5KXt9ZmluYWxseXtrPT09dSYmYi5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gaShhLnJlcGxhY2UoUSwiJDEiKSxiLGQsZSl9ZnVuY3Rpb24gZ2EoKXt2YXIgYT1bXTtmdW5jdGlvbiBiKGMsZSl7cmV0dXJuIGEucHVzaChjKyIgIik+ZC5jYWNoZUxlbmd0aCYmZGVsZXRlIGJbYS5zaGlmdCgpXSxiW2MrIiAiXT1lfXJldHVybiBifWZ1bmN0aW9uIGhhKGEpe3JldHVybiBhW3VdPSEwLGF9ZnVuY3Rpb24gaWEoYSl7dmFyIGI9bi5jcmVhdGVFbGVtZW50KCJkaXYiKTt0cnl7cmV0dXJuISFhKGIpfWNhdGNoKGMpe3JldHVybiExfWZpbmFsbHl7Yi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYiksYj1udWxsfX1mdW5jdGlvbiBqYShhLGIpe3ZhciBjPWEuc3BsaXQoInwiKSxlPWMubGVuZ3RoO3doaWxlKGUtLSlkLmF0dHJIYW5kbGVbY1tlXV09Yn1mdW5jdGlvbiBrYShhLGIpe3ZhciBjPWImJmEsZD1jJiYxPT09YS5ub2RlVHlwZSYmMT09PWIubm9kZVR5cGUmJih+Yi5zb3VyY2VJbmRleHx8QyktKH5hLnNvdXJjZUluZGV4fHxDKTtpZihkKXJldHVybiBkO2lmKGMpd2hpbGUoYz1jLm5leHRTaWJsaW5nKWlmKGM9PT1iKXJldHVybi0xO3JldHVybiBhPzE6LTF9ZnVuY3Rpb24gbGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YyYmYi50eXBlPT09YX19ZnVuY3Rpb24gbWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PWN8fCJidXR0b24iPT09YykmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG5hKGEpe3JldHVybiBoYShmdW5jdGlvbihiKXtyZXR1cm4gYj0rYixoYShmdW5jdGlvbihjLGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGctLSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIG9hKGEpe3JldHVybiBhJiYidW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWUmJmF9Yz1mYS5zdXBwb3J0PXt9LGY9ZmEuaXNYTUw9ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiBiPyJIVE1MIiE9PWIubm9kZU5hbWU6ITF9LG09ZmEuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZSxnPWE/YS5vd25lckRvY3VtZW50fHxhOnY7cmV0dXJuIGchPT1uJiY5PT09Zy5ub2RlVHlwZSYmZy5kb2N1bWVudEVsZW1lbnQ/KG49ZyxvPW4uZG9jdW1lbnRFbGVtZW50LHA9IWYobiksKGU9bi5kZWZhdWx0VmlldykmJmUudG9wIT09ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcj9lLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsZGEsITEpOmUuYXR0YWNoRXZlbnQmJmUuYXR0YWNoRXZlbnQoIm9udW5sb2FkIixkYSkpLGMuYXR0cmlidXRlcz1pYShmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGFzc05hbWU9ImkiLCFhLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxjLmdldEVsZW1lbnRzQnlUYWdOYW1lPWlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENoaWxkKG4uY3JlYXRlQ29tbWVudCgiIikpLCFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksYy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPVoudGVzdChuLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGMuZ2V0QnlJZD1pYShmdW5jdGlvbihhKXtyZXR1cm4gby5hcHBlbmRDaGlsZChhKS5pZD11LCFuLmdldEVsZW1lbnRzQnlOYW1lfHwhbi5nZXRFbGVtZW50c0J5TmFtZSh1KS5sZW5ndGh9KSxjLmdldEJ5SWQ/KGQuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50QnlJZCYmcCl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTtyZXR1cm4gYz9bY106W119fSxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgZC5maW5kLklELGQuZmlsdGVyLklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShiYSxjYSk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGVOb2RlJiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFsdWU9PT1ifX0pLGQuZmluZC5UQUc9Yy5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOmMucXNhP2IucXVlcnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3doaWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9cmV0dXJuIGZ9LGQuZmluZC5DTEFTUz1jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGEsYil7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnA/Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpOnZvaWQgMH0scj1bXSxxPVtdLChjLnFzYT1aLnRlc3Qobi5xdWVyeVNlbGVjdG9yQWxsKSkmJihpYShmdW5jdGlvbihhKXtvLmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD0iPGEgaWQ9JyIrdSsiJz48L2E+PHNlbGVjdCBpZD0nIit1KyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGEucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnEucHVzaCgiWypeJF09IitMKyIqKD86Jyd8XCJcIikiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHEucHVzaCgiXFxbIitMKyIqKD86dmFsdWV8IitLKyIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrdSsiLV0iKS5sZW5ndGh8fHEucHVzaCgifj0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxxLnB1c2goIjpjaGVja2VkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrdSsiKyoiKS5sZW5ndGh8fHEucHVzaCgiLiMuK1srfl0iKX0pLGlhKGZ1bmN0aW9uKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtiLnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGEuYXBwZW5kQ2hpbGQoYikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGEucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnEucHVzaCgibmFtZSIrTCsiKlsqXiR8IX5dPz0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RofHxxLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4IikscS5wdXNoKCIsLio6Iil9KSksKGMubWF0Y2hlc1NlbGVjdG9yPVoudGVzdChzPW8ubWF0Y2hlc3x8by53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fG8ubW96TWF0Y2hlc1NlbGVjdG9yfHxvLm9NYXRjaGVzU2VsZWN0b3J8fG8ubXNNYXRjaGVzU2VsZWN0b3IpKSYmaWEoZnVuY3Rpb24oYSl7Yy5kaXNjb25uZWN0ZWRNYXRjaD1zLmNhbGwoYSwiZGl2Iikscy5jYWxsKGEsIltzIT0nJ106eCIpLHIucHVzaCgiIT0iLE8pfSkscT1xLmxlbmd0aCYmbmV3IFJlZ0V4cChxLmpvaW4oInwiKSkscj1yLmxlbmd0aCYmbmV3IFJlZ0V4cChyLmpvaW4oInwiKSksYj1aLnRlc3Qoby5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiksdD1ifHxaLnRlc3Qoby5jb250YWlucyk/ZnVuY3Rpb24oYSxiKXt2YXIgYz05PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDphLGQ9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT09ZHx8ISghZHx8MSE9PWQubm9kZVR5cGV8fCEoYy5jb250YWlucz9jLmNvbnRhaW5zKGQpOmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZCkpKX06ZnVuY3Rpb24oYSxiKXtpZihiKXdoaWxlKGI9Yi5wYXJlbnROb2RlKWlmKGI9PT1hKXJldHVybiEwO3JldHVybiExfSxCPWI/ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBkPSFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSFiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBkP2Q6KGQ9KGEub3duZXJEb2N1bWVudHx8YSk9PT0oYi5vd25lckRvY3VtZW50fHxiKT9hLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGIpOjEsMSZkfHwhYy5zb3J0RGV0YWNoZWQmJmIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYSk9PT1kP2E9PT1ufHxhLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYSk/LTE6Yj09PW58fGIub3duZXJEb2N1bWVudD09PXYmJnQodixiKT8xOms/SihrLGEpLUooayxiKTowOjQmZD8tMToxKX06ZnVuY3Rpb24oYSxiKXtpZihhPT09YilyZXR1cm4gbD0hMCwwO3ZhciBjLGQ9MCxlPWEucGFyZW50Tm9kZSxmPWIucGFyZW50Tm9kZSxnPVthXSxoPVtiXTtpZighZXx8IWYpcmV0dXJuIGE9PT1uPy0xOmI9PT1uPzE6ZT8tMTpmPzE6az9KKGssYSktSihrLGIpOjA7aWYoZT09PWYpcmV0dXJuIGthKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWcudW5zaGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaC51bnNoaWZ0KGMpO3doaWxlKGdbZF09PT1oW2RdKWQrKztyZXR1cm4gZD9rYShnW2RdLGhbZF0pOmdbZF09PT12Py0xOmhbZF09PT12PzE6MH0sbik6bn0sZmEubWF0Y2hlcz1mdW5jdGlvbihhLGIpe3JldHVybiBmYShhLG51bGwsbnVsbCxiKX0sZmEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLGI9Yi5yZXBsYWNlKFQsIj0nJDEnXSIpLGMubWF0Y2hlc1NlbGVjdG9yJiZwJiYhQVtiKyIgIl0mJighcnx8IXIudGVzdChiKSkmJighcXx8IXEudGVzdChiKSkpdHJ5e3ZhciBkPXMuY2FsbChhLGIpO2lmKGR8fGMuZGlzY29ubmVjdGVkTWF0Y2h8fGEuZG9jdW1lbnQmJjExIT09YS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gZH1jYXRjaChlKXt9cmV0dXJuIGZhKGIsbixudWxsLFthXSkubGVuZ3RoPjB9LGZhLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7cmV0dXJuKGEub3duZXJEb2N1bWVudHx8YSkhPT1uJiZtKGEpLHQoYSxiKX0sZmEuYXR0cj1mdW5jdGlvbihhLGIpeyhhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKTt2YXIgZT1kLmF0dHJIYW5kbGVbYi50b0xvd2VyQ2FzZSgpXSxmPWUmJkQuY2FsbChkLmF0dHJIYW5kbGUsYi50b0xvd2VyQ2FzZSgpKT9lKGEsYiwhcCk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1mP2Y6Yy5hdHRyaWJ1dGVzfHwhcD9hLmdldEF0dHJpYnV0ZShiKTooZj1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZmLnNwZWNpZmllZD9mLnZhbHVlOm51bGx9LGZhLmVycm9yPWZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIithKX0sZmEudW5pcXVlU29ydD1mdW5jdGlvbihhKXt2YXIgYixkPVtdLGU9MCxmPTA7aWYobD0hYy5kZXRlY3REdXBsaWNhdGVzLGs9IWMuc29ydFN0YWJsZSYmYS5zbGljZSgwKSxhLnNvcnQoQiksbCl7d2hpbGUoYj1hW2YrK10pYj09PWFbZl0mJihlPWQucHVzaChmKSk7d2hpbGUoZS0tKWEuc3BsaWNlKGRbZV0sMSl9cmV0dXJuIGs9bnVsbCxhfSxlPWZhLmdldFRleHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixkPTAsZj1hLm5vZGVUeXBlO2lmKGYpe2lmKDE9PT1mfHw5PT09Znx8MTE9PT1mKXtpZigic3RyaW5nIj09dHlwZW9mIGEudGV4dENvbnRlbnQpcmV0dXJuIGEudGV4dENvbnRlbnQ7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWMrPWUoYSl9ZWxzZSBpZigzPT09Znx8ND09PWYpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2Ugd2hpbGUoYj1hW2QrK10pYys9ZShiKTtyZXR1cm4gY30sZD1mYS5zZWxlY3RvcnM9e2NhY2hlTGVuZ3RoOjUwLGNyZWF0ZVBzZXVkbzpoYSxtYXRjaDpXLGF0dHJIYW5kbGU6e30sZmluZDp7fSxyZWxhdGl2ZTp7Ij4iOntkaXI6InBhcmVudE5vZGUiLGZpcnN0OiEwfSwiICI6e2RpcjoicGFyZW50Tm9kZSJ9LCIrIjp7ZGlyOiJwcmV2aW91c1NpYmxpbmciLGZpcnN0OiEwfSwifiI6e2RpcjoicHJldmlvdXNTaWJsaW5nIn19LHByZUZpbHRlcjp7QVRUUjpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnJlcGxhY2UoYmEsY2EpLGFbM109KGFbM118fGFbNF18fGFbNV18fCIiKS5yZXBsYWNlKGJhLGNhKSwifj0iPT09YVsyXSYmKGFbM109IiAiK2FbM10rIiAiKSxhLnNsaWNlKDAsNCl9LENISUxEOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0udG9Mb3dlckNhc2UoKSwibnRoIj09PWFbMV0uc2xpY2UoMCwzKT8oYVszXXx8ZmEuZXJyb3IoYVswXSksYVs0XT0rKGFbNF0/YVs1XSsoYVs2XXx8MSk6MiooImV2ZW4iPT09YVszXXx8Im9kZCI9PT1hWzNdKSksYVs1XT0rKGFbN10rYVs4XXx8Im9kZCI9PT1hWzNdKSk6YVszXSYmZmEuZXJyb3IoYVswXSksYX0sUFNFVURPOmZ1bmN0aW9uKGEpe3ZhciBiLGM9IWFbNl0mJmFbMl07cmV0dXJuIFcuQ0hJTEQudGVzdChhWzBdKT9udWxsOihhWzNdP2FbMl09YVs0XXx8YVs1XXx8IiI6YyYmVS50ZXN0KGMpJiYoYj1nKGMsITApKSYmKGI9Yy5pbmRleE9mKCIpIixjLmxlbmd0aC1iKS1jLmxlbmd0aCkmJihhWzBdPWFbMF0uc2xpY2UoMCxiKSxhWzJdPWMuc2xpY2UoMCxiKSksYS5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZShiYSxjYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1ifX0sQ0xBU1M6ZnVuY3Rpb24oYSl7dmFyIGI9eVthKyIgIl07cmV0dXJuIGJ8fChiPW5ldyBSZWdFeHAoIihefCIrTCsiKSIrYSsiKCIrTCsifCQpIikpJiZ5KGEsZnVuY3Rpb24oYSl7cmV0dXJuIGIudGVzdCgic3RyaW5nIj09dHlwZW9mIGEuY2xhc3NOYW1lJiZhLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEF0dHJpYnV0ZSYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pfSxBVFRSOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7dmFyIGU9ZmEuYXR0cihkLGEpO3JldHVybiBudWxsPT1lPyIhPSI9PT1iOmI/KGUrPSIiLCI9Ij09PWI/ZT09PWM6IiE9Ij09PWI/ZSE9PWM6Il49Ij09PWI/YyYmMD09PWUuaW5kZXhPZihjKToiKj0iPT09Yj9jJiZlLmluZGV4T2YoYyk+LTE6IiQ9Ij09PWI/YyYmZS5zbGljZSgtYy5sZW5ndGgpPT09Yzoifj0iPT09Yj8oIiAiK2UucmVwbGFjZShQLCIgIikrIiAiKS5pbmRleE9mKGMpPi0xOiJ8PSI9PT1iP2U9PT1jfHxlLnNsaWNlKDAsYy5sZW5ndGgrMSk9PT1jKyItIjohMSk6ITB9fSxDSElMRDpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmPSJudGgiIT09YS5zbGljZSgwLDMpLGc9Imxhc3QiIT09YS5zbGljZSgtNCksaD0ib2YtdHlwZSI9PT1iO3JldHVybiAxPT09ZCYmMD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLHE9Yi5wYXJlbnROb2RlLHI9aCYmYi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHM9IWkmJiFoLHQ9ITE7aWYocSl7aWYoZil7d2hpbGUocCl7bT1iO3doaWxlKG09bVtwXSlpZihoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFzdENoaWxkXSxnJiZzKXttPXEsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biYmalsyXSxtPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShtPSsrbiYmbSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigxPT09bS5ub2RlVHlwZSYmKyt0JiZtPT09Yil7a1thXT1bdyxuLHRdO2JyZWFrfX1lbHNlIGlmKHMmJihtPWIsbD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT13JiZqWzFdLHQ9biksdD09PSExKXdoaWxlKG09KytuJiZtJiZtW3BdfHwodD1uPTApfHxvLnBvcCgpKWlmKChoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpJiYrK3QmJihzJiYobD1tW3VdfHwobVt1XT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17fSksa1thXT1bdyx0XSksbT09PWIpKWJyZWFrO3JldHVybiB0LT1lLHQ9PT1kfHx0JWQ9PT0wJiZ0L2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT1kLnBzZXVkb3NbYV18fGQuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxmYS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2EpO3JldHVybiBlW3VdP2UoYik6ZS5sZW5ndGg+MT8oYz1bYSxhLCIiLGJdLGQuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShhLnRvTG93ZXJDYXNlKCkpP2hhKGZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1lKGEsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pZD1KKGEsZltnXSksYVtkXT0hKGNbZF09ZltnXSl9KTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLDAsYyl9KTplfX0scHNldWRvczp7bm90OmhhKGZ1bmN0aW9uKGEpe3ZhciBiPVtdLGM9W10sZD1oKGEucmVwbGFjZShRLCIkMSIpKTtyZXR1cm4gZFt1XT9oYShmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnPWQoYSxudWxsLGUsW10pLGg9YS5sZW5ndGg7d2hpbGUoaC0tKShmPWdbaF0pJiYoYVtoXT0hKGJbaF09ZikpfSk6ZnVuY3Rpb24oYSxlLGYpe3JldHVybiBiWzBdPWEsZChiLG51bGwsZixjKSxiWzBdPW51bGwsIWMucG9wKCl9fSksaGFzOmhhKGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gZmEoYSxiKS5sZW5ndGg+MH19KSxjb250YWluczpoYShmdW5jdGlvbihhKXtyZXR1cm4gYT1hLnJlcGxhY2UoYmEsY2EpLGZ1bmN0aW9uKGIpe3JldHVybihiLnRleHRDb250ZW50fHxiLmlubmVyVGV4dHx8ZShiKSkuaW5kZXhPZihhKT4tMX19KSxsYW5nOmhhKGZ1bmN0aW9uKGEpe3JldHVybiBWLnRlc3QoYXx8IiIpfHxmYS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIithKSxhPWEucmVwbGFjZShiYSxjYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihiKXt2YXIgYztkbyBpZihjPXA/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9Mb3dlckNhc2UoKSxjPT09YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9Yi5wYXJlbnROb2RlKSYmMT09PWIubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZhLmxvY2F0aW9uLmhhc2g7cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09b30sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1uLmFjdGl2ZUVsZW1lbnQmJighbi5oYXNGb2N1c3x8bi5oYXNGb2N1cygpKSYmISEoYS50eXBlfHxhLmhyZWZ8fH5hLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNrZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hZC5wc2V1ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIFkudGVzdChhLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFgudGVzdChhLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmImJ1dHRvbiI9PT1hLnR5cGV8fCJidXR0b24iPT09Yn0sdGV4dDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4iaW5wdXQiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1hLnR5cGUmJihudWxsPT0oYj1hLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09Yi50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bmEoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0Om5hKGZ1bmN0aW9uKGEsYil7cmV0dXJuW2ItMV19KSxlcTpuYShmdW5jdGlvbihhLGIsYyl7cmV0dXJuWzA+Yz9jK2I6Y119KSxldmVuOm5hKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTA7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksb2RkOm5hKGZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTE7Yj5jO2MrPTIpYS5wdXNoKGMpO3JldHVybiBhfSksbHQ6bmEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpuYShmdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkPTA+Yz9jK2I6YzsrK2Q8YjspYS5wdXNoKGQpO3JldHVybiBhfSl9fSxkLnBzZXVkb3MubnRoPWQucHNldWRvcy5lcTtmb3IoYiBpbntyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlkLnBzZXVkb3NbYl09bGEoYik7Zm9yKGIgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlkLnBzZXVkb3NbYl09bWEoYik7ZnVuY3Rpb24gcGEoKXt9cGEucHJvdG90eXBlPWQuZmlsdGVycz1kLnBzZXVkb3MsZC5zZXRGaWx0ZXJzPW5ldyBwYSxnPWZhLnRva2VuaXplPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaCxpLGosaz16W2ErIiAiXTtpZihrKXJldHVybiBiPzA6ay5zbGljZSgwKTtoPWEsaT1bXSxqPWQucHJlRmlsdGVyO3doaWxlKGgpe2MmJiEoZT1SLmV4ZWMoaCkpfHwoZSYmKGg9aC5zbGljZShlWzBdLmxlbmd0aCl8fGgpLGkucHVzaChmPVtdKSksYz0hMSwoZT1TLmV4ZWMoaCkpJiYoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZVswXS5yZXBsYWNlKFEsIiAiKX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2ZvcihnIGluIGQuZmlsdGVyKSEoZT1XW2ddLmV4ZWMoaCkpfHxqW2ddJiYhKGU9altnXShlKSl8fChjPWUuc2hpZnQoKSxmLnB1c2goe3ZhbHVlOmMsdHlwZTpnLG1hdGNoZXM6ZX0pLGg9aC5zbGljZShjLmxlbmd0aCkpO2lmKCFjKWJyZWFrfXJldHVybiBiP2gubGVuZ3RoOmg/ZmEuZXJyb3IoYSk6eihhLGkpLnNsaWNlKDApfTtmdW5jdGlvbiBxYShhKXtmb3IodmFyIGI9MCxjPWEubGVuZ3RoLGQ9IiI7Yz5iO2IrKylkKz1hW2JdLnZhbHVlO3JldHVybiBkfWZ1bmN0aW9uIHJhKGEsYixjKXt2YXIgZD1iLmRpcixlPWMmJiJwYXJlbnROb2RlIj09PWQsZj14Kys7cmV0dXJuIGIuZmlyc3Q/ZnVuY3Rpb24oYixjLGYpe3doaWxlKGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSlyZXR1cm4gYShiLGMsZil9OmZ1bmN0aW9uKGIsYyxnKXt2YXIgaCxpLGosaz1bdyxmXTtpZihnKXt3aGlsZShiPWJbZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJuITB9ZWxzZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGo9Ylt1XXx8KGJbdV09e30pLGk9altiLnVuaXF1ZUlEXXx8KGpbYi51bmlxdWVJRF09e30pLChoPWlbZF0pJiZoWzBdPT09dyYmaFsxXT09PWYpcmV0dXJuIGtbMl09aFsyXTtpZihpW2RdPWssa1syXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIHNhKGEpe3JldHVybiBhLmxlbmd0aD4xP2Z1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmxlbmd0aDt3aGlsZShlLS0paWYoIWFbZV0oYixjLGQpKXJldHVybiExO3JldHVybiEwfTphWzBdfWZ1bmN0aW9uIHRhKGEsYixjKXtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2U+ZDtkKyspZmEoYSxiW2RdLGMpO3JldHVybiBjfWZ1bmN0aW9uIHVhKGEsYixjLGQsZSl7Zm9yKHZhciBmLGc9W10saD0wLGk9YS5sZW5ndGgsaj1udWxsIT1iO2k+aDtoKyspKGY9YVtoXSkmJihjJiYhYyhmLGQsZSl8fChnLnB1c2goZiksaiYmYi5wdXNoKGgpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gdmEoYSxiLGMsZCxlLGYpe3JldHVybiBkJiYhZFt1XSYmKGQ9dmEoZCkpLGUmJiFlW3VdJiYoZT12YShlLGYpKSxoYShmdW5jdGlvbihmLGcsaCxpKXt2YXIgaixrLGwsbT1bXSxuPVtdLG89Zy5sZW5ndGgscD1mfHx0YShifHwiKiIsaC5ub2RlVHlwZT9baF06aCxbXSkscT0hYXx8IWYmJmI/cDp1YShwLG0sYSxoLGkpLHI9Yz9lfHwoZj9hOm98fGQpP1tdOmc6cTtpZihjJiZjKHEscixoLGkpLGQpe2o9dWEocixuKSxkKGosW10saCxpKSxrPWoubGVuZ3RoO3doaWxlKGstLSkobD1qW2tdKSYmKHJbbltrXV09IShxW25ba11dPWwpKX1pZihmKXtpZihlfHxhKXtpZihlKXtqPVtdLGs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiZqLnB1c2gocVtrXT1sKTtlKG51bGwscj1bXSxqLGkpfWs9ci5sZW5ndGg7d2hpbGUoay0tKShsPXJba10pJiYoaj1lP0ooZixsKTptW2tdKT4tMSYmKGZbal09IShnW2pdPWwpKX19ZWxzZSByPXVhKHI9PT1nP3Iuc3BsaWNlKG8sci5sZW5ndGgpOnIpLGU/ZShudWxsLGcscixpKTpILmFwcGx5KGcscil9KX1mdW5jdGlvbiB3YShhKXtmb3IodmFyIGIsYyxlLGY9YS5sZW5ndGgsZz1kLnJlbGF0aXZlW2FbMF0udHlwZV0saD1nfHxkLnJlbGF0aXZlWyIgIl0saT1nPzE6MCxrPXJhKGZ1bmN0aW9uKGEpe3JldHVybiBhPT09Yn0saCwhMCksbD1yYShmdW5jdGlvbihhKXtyZXR1cm4gSihiLGEpPi0xfSxoLCEwKSxtPVtmdW5jdGlvbihhLGMsZCl7dmFyIGU9IWcmJihkfHxjIT09ail8fCgoYj1jKS5ub2RlVHlwZT9rKGEsYyxkKTpsKGEsYyxkKSk7cmV0dXJuIGI9bnVsbCxlfV07Zj5pO2krKylpZihjPWQucmVsYXRpdmVbYVtpXS50eXBlXSltPVtyYShzYShtKSxjKV07ZWxzZXtpZihjPWQuZmlsdGVyW2FbaV0udHlwZV0uYXBwbHkobnVsbCxhW2ldLm1hdGNoZXMpLGNbdV0pe2ZvcihlPSsraTtmPmU7ZSsrKWlmKGQucmVsYXRpdmVbYVtlXS50eXBlXSlicmVhaztyZXR1cm4gdmEoaT4xJiZzYShtKSxpPjEmJnFhKGEuc2xpY2UoMCxpLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09YVtpLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoUSwiJDEiKSxjLGU+aSYmd2EoYS5zbGljZShpLGUpKSxmPmUmJndhKGE9YS5zbGljZShlKSksZj5lJiZxYShhKSl9bS5wdXNoKGMpfXJldHVybiBzYShtKX1mdW5jdGlvbiB4YShhLGIpe3ZhciBjPWIubGVuZ3RoPjAsZT1hLmxlbmd0aD4wLGY9ZnVuY3Rpb24oZixnLGgsaSxrKXt2YXIgbCxvLHEscj0wLHM9IjAiLHQ9ZiYmW10sdT1bXSx2PWoseD1mfHxlJiZkLmZpbmQuVEFHKCIqIixrKSx5PXcrPW51bGw9PXY/MTpNYXRoLnJhbmRvbSgpfHwuMSx6PXgubGVuZ3RoO2ZvcihrJiYoaj1nPT09bnx8Z3x8ayk7cyE9PXomJm51bGwhPShsPXhbc10pO3MrKyl7aWYoZSYmbCl7bz0wLGd8fGwub3duZXJEb2N1bWVudD09PW58fChtKGwpLGg9IXApO3doaWxlKHE9YVtvKytdKWlmKHEobCxnfHxuLGgpKXtpLnB1c2gobCk7YnJlYWt9ayYmKHc9eSl9YyYmKChsPSFxJiZsKSYmci0tLGYmJnQucHVzaChsKSl9aWYocis9cyxjJiZzIT09cil7bz0wO3doaWxlKHE9YltvKytdKXEodCx1LGcsaCk7aWYoZil7aWYocj4wKXdoaWxlKHMtLSl0W3NdfHx1W3NdfHwodVtzXT1GLmNhbGwoaSkpO3U9dWEodSl9SC5hcHBseShpLHUpLGsmJiFmJiZ1Lmxlbmd0aD4wJiZyK2IubGVuZ3RoPjEmJmZhLnVuaXF1ZVNvcnQoaSl9cmV0dXJuIGsmJih3PXksaj12KSx0fTtyZXR1cm4gYz9oYShmKTpmfXJldHVybiBoPWZhLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9W10sZj1BW2ErIiAiXTtpZighZil7Ynx8KGI9ZyhhKSksYz1iLmxlbmd0aDt3aGlsZShjLS0pZj13YShiW2NdKSxmW3VdP2QucHVzaChmKTplLnB1c2goZik7Zj1BKGEseGEoZSxkKSksZi5zZWxlY3Rvcj1hfXJldHVybiBmfSxpPWZhLnNlbGVjdD1mdW5jdGlvbihhLGIsZSxmKXt2YXIgaSxqLGssbCxtLG49ImZ1bmN0aW9uIj09dHlwZW9mIGEmJmEsbz0hZiYmZyhhPW4uc2VsZWN0b3J8fGEpO2lmKGU9ZXx8W10sMT09PW8ubGVuZ3RoKXtpZihqPW9bMF09b1swXS5zbGljZSgwKSxqLmxlbmd0aD4yJiYiSUQiPT09KGs9alswXSkudHlwZSYmYy5nZXRCeUlkJiY5PT09Yi5ub2RlVHlwZSYmcCYmZC5yZWxhdGl2ZVtqWzFdLnR5cGVdKXtpZihiPShkLmZpbmQuSUQoay5tYXRjaGVzWzBdLnJlcGxhY2UoYmEsY2EpLGIpfHxbXSlbMF0sIWIpcmV0dXJuIGU7biYmKGI9Yi5wYXJlbnROb2RlKSxhPWEuc2xpY2Uoai5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1XLm5lZWRzQ29udGV4dC50ZXN0KGEpPzA6ai5sZW5ndGg7d2hpbGUoaS0tKXtpZihrPWpbaV0sZC5yZWxhdGl2ZVtsPWsudHlwZV0pYnJlYWs7aWYoKG09ZC5maW5kW2xdKSYmKGY9bShrLm1hdGNoZXNbMF0ucmVwbGFjZShiYSxjYSksXy50ZXN0KGpbMF0udHlwZSkmJm9hKGIucGFyZW50Tm9kZSl8fGIpKSl7aWYoai5zcGxpY2UoaSwxKSxhPWYubGVuZ3RoJiZxYShqKSwhYSlyZXR1cm4gSC5hcHBseShlLGYpLGU7YnJlYWt9fX1yZXR1cm4obnx8aChhLG8pKShmLGIsIXAsZSwhYnx8Xy50ZXN0KGEpJiZvYShiLnBhcmVudE5vZGUpfHxiKSxlfSxjLnNvcnRTdGFibGU9dS5zcGxpdCgiIikuc29ydChCKS5qb2luKCIiKT09PXUsYy5kZXRlY3REdXBsaWNhdGVzPSEhbCxtKCksYy5zb3J0RGV0YWNoZWQ9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIDEmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihuLmNyZWF0ZUVsZW1lbnQoImRpdiIpKX0pLGlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGphKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGM/dm9pZCAwOmEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9KSxjLmF0dHJpYnV0ZXMmJmlhKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlubmVySFRNTD0iPGlucHV0Lz4iLGEuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1hLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGphKCJ2YWx1ZSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjfHwiaW5wdXQiIT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP3ZvaWQgMDphLmRlZmF1bHRWYWx1ZX0pLGlhKGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxqYShLLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYz92b2lkIDA6YVtiXT09PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZkLnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxmYX0oYSk7bi5maW5kPXQsbi5leHByPXQuc2VsZWN0b3JzLG4uZXhwclsiOiJdPW4uZXhwci5wc2V1ZG9zLG4udW5pcXVlU29ydD1uLnVuaXF1ZT10LnVuaXF1ZVNvcnQsbi50ZXh0PXQuZ2V0VGV4dCxuLmlzWE1MRG9jPXQuaXNYTUwsbi5jb250YWlucz10LmNvbnRhaW5zO3ZhciB1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPXZvaWQgMCE9PWM7d2hpbGUoKGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlKWlmKDE9PT1hLm5vZGVUeXBlKXtpZihlJiZuKGEpLmlzKGMpKWJyZWFrO2QucHVzaChhKX1yZXR1cm4gZH0sdj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30sdz1uLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHg9L148KFtcdy1dKylccypcLz8+KD86PFwvXDE+fCkkLyx5PS9eLlteOiNcW1wuLF0qJC87ZnVuY3Rpb24geihhLGIsYyl7aWYobi5pc0Z1bmN0aW9uKGIpKXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhLGQpe3JldHVybiEhYi5jYWxsKGEsZCxhKSE9PWN9KTtpZihiLm5vZGVUeXBlKXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gYT09PWIhPT1jfSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKXtpZih5LnRlc3QoYikpcmV0dXJuIG4uZmlsdGVyKGIsYSxjKTtiPW4uZmlsdGVyKGIsYSl9cmV0dXJuIG4uZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVybiBuLmluQXJyYXkoYSxiKT4tMSE9PWN9KX1uLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYxPT09ZC5ub2RlVHlwZT9uLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGQsYSk/W2RdOltdOm4uZmluZC5tYXRjaGVzKGEsbi5ncmVwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfSkpfSxuLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPVtdLGQ9dGhpcyxlPWQubGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2sobihhKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2U+YjtiKyspaWYobi5jb250YWlucyhkW2JdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihiPTA7ZT5iO2IrKyluLmZpbmQoYSxkW2JdLGMpO3JldHVybiBjPXRoaXMucHVzaFN0YWNrKGU+MT9uLnVuaXF1ZShjKTpjKSxjLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3I/dGhpcy5zZWxlY3RvcisiICIrYTphLGN9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeih0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeih0aGlzLGF8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGEpe3JldHVybiEheih0aGlzLCJzdHJpbmciPT10eXBlb2YgYSYmdy50ZXN0KGEpP24oYSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgQSxCPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKikpJC8sQz1uLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxBLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoZT0iPCI9PT1hLmNoYXJBdCgwKSYmIj4iPT09YS5jaGFyQXQoYS5sZW5ndGgtMSkmJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06Qi5leGVjKGEpLCFlfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIG4/YlswXTpiLG4ubWVyZ2UodGhpcyxuLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU/Yi5vd25lckRvY3VtZW50fHxiOmQsITApKSx4LnRlc3QoZVsxXSkmJm4uaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKW4uaXNGdW5jdGlvbih0aGlzW2VdKT90aGlzW2VdKGJbZV0pOnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfWlmKGY9ZC5nZXRFbGVtZW50QnlJZChlWzJdKSxmJiZmLnBhcmVudE5vZGUpe2lmKGYuaWQhPT1lWzJdKXJldHVybiBBLmZpbmQoYSk7dGhpcy5sZW5ndGg9MSx0aGlzWzBdPWZ9cmV0dXJuIHRoaXMuY29udGV4dD1kLHRoaXMuc2VsZWN0b3I9YSx0aGlzfXJldHVybiBhLm5vZGVUeXBlPyh0aGlzLmNvbnRleHQ9dGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6bi5pc0Z1bmN0aW9uKGEpPyJ1bmRlZmluZWQiIT10eXBlb2YgYy5yZWFkeT9jLnJlYWR5KGEpOmEobik6KHZvaWQgMCE9PWEuc2VsZWN0b3ImJih0aGlzLnNlbGVjdG9yPWEuc2VsZWN0b3IsdGhpcy5jb250ZXh0PWEuY29udGV4dCksbi5tYWtlQXJyYXkoYSx0aGlzKSl9O0MucHJvdG90eXBlPW4uZm4sQT1uKGQpO3ZhciBEPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLEU9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07bi5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYixjPW4oYSx0aGlzKSxkPWMubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7ZD5iO2IrKylpZihuLmNvbnRhaW5zKHRoaXMsY1tiXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYyxkPTAsZT10aGlzLmxlbmd0aCxmPVtdLGc9dy50ZXN0KGEpfHwic3RyaW5nIiE9dHlwZW9mIGE/bihhLGJ8fHRoaXMuY29udGV4dCk6MDtlPmQ7ZCsrKWZvcihjPXRoaXNbZF07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoYy5ub2RlVHlwZTwxMSYmKGc/Zy5pbmRleChjKT4tMToxPT09Yy5ub2RlVHlwZSYmbi5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zi5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjayhmLmxlbmd0aD4xP24udW5pcXVlU29ydChmKTpmKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/InN0cmluZyI9PXR5cGVvZiBhP24uaW5BcnJheSh0aGlzWzBdLG4oYSkpOm4uaW5BcnJheShhLmpxdWVyeT9hWzBdOmEsdGhpcyk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2sobi51bmlxdWVTb3J0KG4ubWVyZ2UodGhpcy5nZXQoKSxuKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWE/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2Z1bmN0aW9uIEYoYSxiKXtkbyBhPWFbYl07d2hpbGUoYSYmMSE9PWEubm9kZVR5cGUpO3JldHVybiBhfW4uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtyZXR1cm4gYiYmMTEhPT1iLm5vZGVUeXBlP2I6bnVsbH0scGFyZW50czpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHUoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEYoYSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gRihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB1KGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB1KGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdShhLCJwcmV2aW91c1NpYmxpbmciLGMpfSxzaWJsaW5nczpmdW5jdGlvbihhKXtyZXR1cm4gdigoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHYoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG4ubm9kZU5hbWUoYSwiaWZyYW1lIik/YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDpuLm1lcmdlKFtdLGEuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihhLGIpe24uZm5bYV09ZnVuY3Rpb24oYyxkKXt2YXIgZT1uLm1hcCh0aGlzLGIsYyk7cmV0dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlwZW9mIGQmJihlPW4uZmlsdGVyKGQsZSkpLHRoaXMubGVuZ3RoPjEmJihFW2FdfHwoZT1uLnVuaXF1ZVNvcnQoZSkpLEQudGVzdChhKSYmKGU9ZS5yZXZlcnNlKCkpKSx0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgRz0vXFMrL2c7ZnVuY3Rpb24gSChhKXt2YXIgYj17fTtyZXR1cm4gbi5lYWNoKGEubWF0Y2goRyl8fFtdLGZ1bmN0aW9uKGEsYyl7YltjXT0hMH0pLGJ9bi5DYWxsYmFja3M9ZnVuY3Rpb24oYSl7YT0ic3RyaW5nIj09dHlwZW9mIGE/SChhKTpuLmV4dGVuZCh7fSxhKTt2YXIgYixjLGQsZSxmPVtdLGc9W10saD0tMSxpPWZ1bmN0aW9uKCl7Zm9yKGU9YS5vbmNlLGQ9Yj0hMDtnLmxlbmd0aDtoPS0xKXtjPWcuc2hpZnQoKTt3aGlsZSgrK2g8Zi5sZW5ndGgpZltoXS5hcHBseShjWzBdLGNbMV0pPT09ITEmJmEuc3RvcE9uRmFsc2UmJihoPWYubGVuZ3RoLGM9ITEpfWEubWVtb3J5fHwoYz0hMSksYj0hMSxlJiYoZj1jP1tdOiIiKX0saj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIGYmJihjJiYhYiYmKGg9Zi5sZW5ndGgtMSxnLnB1c2goYykpLGZ1bmN0aW9uIGQoYil7bi5lYWNoKGIsZnVuY3Rpb24oYixjKXtuLmlzRnVuY3Rpb24oYyk/YS51bmlxdWUmJmouaGFzKGMpfHxmLnB1c2goYyk6YyYmYy5sZW5ndGgmJiJzdHJpbmciIT09bi50eXBlKGMpJiZkKGMpfSl9KGFyZ3VtZW50cyksYyYmIWImJmkoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIG4uZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxiKXt2YXIgYzt3aGlsZSgoYz1uLmluQXJyYXkoYixmLGMpKT4tMSlmLnNwbGljZShjLDEpLGg+PWMmJmgtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4gYT9uLmluQXJyYXkoYSxmKT4tMTpmLmxlbmd0aD4wfSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBmJiYoZj1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBlPWc9W10sZj1jPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIWZ9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZT0hMCxjfHxqLmRpc2FibGUoKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWV9LGZpcmVXaXRoOmZ1bmN0aW9uKGEsYyl7cmV0dXJuIGV8fChjPWN8fFtdLGM9W2EsYy5zbGljZT9jLnNsaWNlKCk6Y10sZy5wdXNoKGMpLGJ8fGkoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiBqLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZH19O3JldHVybiBqfSxuLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbi5DYWxsYmFja3MoIm1lbW9yeSIpXV0sYz0icGVuZGluZyIsZD17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gY30sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSx0aGVuOmZ1bmN0aW9uKCl7dmFyIGE9YXJndW1lbnRzO3JldHVybiBuLkRlZmVycmVkKGZ1bmN0aW9uKGMpe24uZWFjaChiLGZ1bmN0aW9uKGIsZil7dmFyIGc9bi5pc0Z1bmN0aW9uKGFbYl0pJiZhW2JdO2VbZlsxXV0oZnVuY3Rpb24oKXt2YXIgYT1nJiZnLmFwcGx5KHRoaXMsYXJndW1lbnRzKTthJiZuLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9hLnByb21pc2UoKS5wcm9ncmVzcyhjLm5vdGlmeSkuZG9uZShjLnJlc29sdmUpLmZhaWwoYy5yZWplY3QpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJvbWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlzZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP24uZXh0ZW5kKGEsZCk6ZH19LGU9e307cmV0dXJuIGQucGlwZT1kLnRoZW4sbi5lYWNoKGIsZnVuY3Rpb24oYSxmKXt2YXIgZz1mWzJdLGg9ZlszXTtkW2ZbMV1dPWcuYWRkLGgmJmcuYWRkKGZ1bmN0aW9uKCl7Yz1ofSxiWzFeYV1bMl0uZGlzYWJsZSxiWzJdWzJdLmxvY2spLGVbZlswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZVtmWzBdKyJXaXRoIl0odGhpcz09PWU/ZDp0aGlzLGFyZ3VtZW50cyksdGhpc30sZVtmWzBdKyJXaXRoIl09Zy5maXJlV2l0aH0pLGQucHJvbWlzZShlKSxhJiZhLmNhbGwoZSxlKSxlfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPTAsYz1lLmNhbGwoYXJndW1lbnRzKSxkPWMubGVuZ3RoLGY9MSE9PWR8fGEmJm4uaXNGdW5jdGlvbihhLnByb21pc2UpP2Q6MCxnPTE9PT1mP2E6bi5EZWZlcnJlZCgpLGg9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbihkKXtiW2FdPXRoaXMsY1thXT1hcmd1bWVudHMubGVuZ3RoPjE/ZS5jYWxsKGFyZ3VtZW50cyk6ZCxjPT09aT9nLm5vdGlmeVdpdGgoYixjKTotLWZ8fGcucmVzb2x2ZVdpdGgoYixjKX19LGksaixrO2lmKGQ+MSlmb3IoaT1uZXcgQXJyYXkoZCksaj1uZXcgQXJyYXkoZCksaz1uZXcgQXJyYXkoZCk7ZD5iO2IrKyljW2JdJiZuLmlzRnVuY3Rpb24oY1tiXS5wcm9taXNlKT9jW2JdLnByb21pc2UoKS5wcm9ncmVzcyhoKGIsaixpKSkuZG9uZShoKGIsayxjKSkuZmFpbChnLnJlamVjdCk6LS1mO3JldHVybiBmfHxnLnJlc29sdmVXaXRoKGssYyksZy5wcm9taXNlKCl9fSk7dmFyIEk7bi5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gbi5yZWFkeS5wcm9taXNlKCkuZG9uZShhKSx0aGlzfSxuLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9uLnJlYWR5V2FpdCsrOm4ucmVhZHkoITApfSxyZWFkeTpmdW5jdGlvbihhKXsoYT09PSEwPy0tbi5yZWFkeVdhaXQ6bi5pc1JlYWR5KXx8KG4uaXNSZWFkeT0hMCxhIT09ITAmJi0tbi5yZWFkeVdhaXQ+MHx8KEkucmVzb2x2ZVdpdGgoZCxbbl0pLG4uZm4udHJpZ2dlckhhbmRsZXImJihuKGQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpLG4oZCkub2ZmKCJyZWFkeSIpKSkpfX0pO2Z1bmN0aW9uIEooKXtkLmFkZEV2ZW50TGlzdGVuZXI/KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSyksYS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixLKSk6KGQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSyksYS5kZXRhY2hFdmVudCgib25sb2FkIixLKSl9ZnVuY3Rpb24gSygpeyhkLmFkZEV2ZW50TGlzdGVuZXJ8fCJsb2FkIj09PWEuZXZlbnQudHlwZXx8ImNvbXBsZXRlIj09PWQucmVhZHlTdGF0ZSkmJihKKCksbi5yZWFkeSgpKX1uLnJlYWR5LnByb21pc2U9ZnVuY3Rpb24oYil7aWYoIUkpaWYoST1uLkRlZmVycmVkKCksImNvbXBsZXRlIj09PWQucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09ZC5yZWFkeVN0YXRlJiYhZC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwpYS5zZXRUaW1lb3V0KG4ucmVhZHkpO2Vsc2UgaWYoZC5hZGRFdmVudExpc3RlbmVyKWQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsSyksYS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixLKTtlbHNle2QuYXR0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsSyksYS5hdHRhY2hFdmVudCgib25sb2FkIixLKTt2YXIgYz0hMTt0cnl7Yz1udWxsPT1hLmZyYW1lRWxlbWVudCYmZC5kb2N1bWVudEVsZW1lbnR9Y2F0Y2goZSl7fWMmJmMuZG9TY3JvbGwmJiFmdW5jdGlvbiBmKCl7aWYoIW4uaXNSZWFkeSl7dHJ5e2MuZG9TY3JvbGwoImxlZnQiKX1jYXRjaChiKXtyZXR1cm4gYS5zZXRUaW1lb3V0KGYsNTApfUooKSxuLnJlYWR5KCl9fSgpfXJldHVybiBJLnByb21pc2UoYil9LG4ucmVhZHkucHJvbWlzZSgpO3ZhciBMO2ZvcihMIGluIG4obCkpYnJlYWs7bC5vd25GaXJzdD0iMCI9PT1MLGwuaW5saW5lQmxvY2tOZWVkc0xheW91dD0hMSxuKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGU7Yz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0sYyYmYy5zdHlsZSYmKGI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuc3R5bGUuem9vbSYmKGIuc3R5bGUuY3NzVGV4dD0iZGlzcGxheTppbmxpbmU7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsbC5pbmxpbmVCbG9ja05lZWRzTGF5b3V0PWE9Mz09PWIub2Zmc2V0V2lkdGgsYSYmKGMuc3R5bGUuem9vbT0xKSksYy5yZW1vdmVDaGlsZChlKSl9KSxmdW5jdGlvbigpe3ZhciBhPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5kZWxldGVFeHBhbmRvPSEwO3RyeXtkZWxldGUgYS50ZXN0fWNhdGNoKGIpe2wuZGVsZXRlRXhwYW5kbz0hMX1hPW51bGx9KCk7dmFyIE09ZnVuY3Rpb24oYSl7dmFyIGI9bi5ub0RhdGFbKGEubm9kZU5hbWUrIiAiKS50b0xvd2VyQ2FzZSgpXSxjPSthLm5vZGVUeXBlfHwxO3JldHVybiAxIT09YyYmOSE9PWM/ITE6IWJ8fGIhPT0hMCYmYS5nZXRBdHRyaWJ1dGUoImNsYXNzaWQiKT09PWJ9LE49L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxPPS8oW0EtWl0pL2c7ZnVuY3Rpb24gUChhLGIsYyl7aWYodm9pZCAwPT09YyYmMT09PWEubm9kZVR5cGUpe3ZhciBkPSJkYXRhLSIrYi5yZXBsYWNlKE8sIi0kMSIpLnRvTG93ZXJDYXNlKCk7aWYoYz1hLmdldEF0dHJpYnV0ZShkKSwic3RyaW5nIj09dHlwZW9mIGMpe3RyeXtjPSJ0cnVlIj09PWM/ITA6ImZhbHNlIj09PWM/ITE6Im51bGwiPT09Yz9udWxsOitjKyIiPT09Yz8rYzpOLnRlc3QoYyk/bi5wYXJzZUpTT04oYyk6Y31jYXRjaChlKXt9bi5kYXRhKGEsYixjKX1lbHNlIGM9dm9pZCAwOwp9cmV0dXJuIGN9ZnVuY3Rpb24gUShhKXt2YXIgYjtmb3IoYiBpbiBhKWlmKCgiZGF0YSIhPT1ifHwhbi5pc0VtcHR5T2JqZWN0KGFbYl0pKSYmInRvSlNPTiIhPT1iKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIFIoYSxiLGQsZSl7aWYoTShhKSl7dmFyIGYsZyxoPW4uZXhwYW5kbyxpPWEubm9kZVR5cGUsaj1pP24uY2FjaGU6YSxrPWk/YVtoXTphW2hdJiZoO2lmKGsmJmpba10mJihlfHxqW2tdLmRhdGEpfHx2b2lkIDAhPT1kfHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIGt8fChrPWk/YVtoXT1jLnBvcCgpfHxuLmd1aWQrKzpoKSxqW2tdfHwoaltrXT1pP3t9Ont0b0pTT046bi5ub29wfSksIm9iamVjdCIhPXR5cGVvZiBiJiYiZnVuY3Rpb24iIT10eXBlb2YgYnx8KGU/altrXT1uLmV4dGVuZChqW2tdLGIpOmpba10uZGF0YT1uLmV4dGVuZChqW2tdLmRhdGEsYikpLGc9altrXSxlfHwoZy5kYXRhfHwoZy5kYXRhPXt9KSxnPWcuZGF0YSksdm9pZCAwIT09ZCYmKGdbbi5jYW1lbENhc2UoYildPWQpLCJzdHJpbmciPT10eXBlb2YgYj8oZj1nW2JdLG51bGw9PWYmJihmPWdbbi5jYW1lbENhc2UoYildKSk6Zj1nLGZ9fWZ1bmN0aW9uIFMoYSxiLGMpe2lmKE0oYSkpe3ZhciBkLGUsZj1hLm5vZGVUeXBlLGc9Zj9uLmNhY2hlOmEsaD1mP2Fbbi5leHBhbmRvXTpuLmV4cGFuZG87aWYoZ1toXSl7aWYoYiYmKGQ9Yz9nW2hdOmdbaF0uZGF0YSkpe24uaXNBcnJheShiKT9iPWIuY29uY2F0KG4ubWFwKGIsbi5jYW1lbENhc2UpKTpiIGluIGQ/Yj1bYl06KGI9bi5jYW1lbENhc2UoYiksYj1iIGluIGQ/W2JdOmIuc3BsaXQoIiAiKSksZT1iLmxlbmd0aDt3aGlsZShlLS0pZGVsZXRlIGRbYltlXV07aWYoYz8hUShkKTohbi5pc0VtcHR5T2JqZWN0KGQpKXJldHVybn0oY3x8KGRlbGV0ZSBnW2hdLmRhdGEsUShnW2hdKSkpJiYoZj9uLmNsZWFuRGF0YShbYV0sITApOmwuZGVsZXRlRXhwYW5kb3x8ZyE9Zy53aW5kb3c/ZGVsZXRlIGdbaF06Z1toXT12b2lkIDApfX19bi5leHRlbmQoe2NhY2hlOnt9LG5vRGF0YTp7ImFwcGxldCAiOiEwLCJlbWJlZCAiOiEwLCJvYmplY3QgIjoiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIn0saGFzRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gYT1hLm5vZGVUeXBlP24uY2FjaGVbYVtuLmV4cGFuZG9dXTphW24uZXhwYW5kb10sISFhJiYhUShhKX0sZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFIoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFMoYSxiKX0sX2RhdGE6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBSKGEsYixjLCEwKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUyhhLGIsITApfX0pLG4uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9bi5kYXRhKGYpLDE9PT1mLm5vZGVUeXBlJiYhbi5fZGF0YShmLCJwYXJzZWRBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShjLS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihkPW4uY2FtZWxDYXNlKGQuc2xpY2UoNSkpLFAoZixkLGVbZF0pKSk7bi5fZGF0YShmLCJwYXJzZWRBdHRycyIsITApfXJldHVybiBlfXJldHVybiJvYmplY3QiPT10eXBlb2YgYT90aGlzLmVhY2goZnVuY3Rpb24oKXtuLmRhdGEodGhpcyxhKX0pOmFyZ3VtZW50cy5sZW5ndGg+MT90aGlzLmVhY2goZnVuY3Rpb24oKXtuLmRhdGEodGhpcyxhLGIpfSk6Zj9QKGYsYSxuLmRhdGEoZixhKSk6dm9pZCAwfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZURhdGEodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGE/KGI9KGJ8fCJmeCIpKyJxdWV1ZSIsZD1uLl9kYXRhKGEsYiksYyYmKCFkfHxuLmlzQXJyYXkoYyk/ZD1uLl9kYXRhKGEsYixuLm1ha2VBcnJheShjKSk6ZC5wdXNoKGMpKSxkfHxbXSk6dm9pZCAwfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPW4ucXVldWUoYSxiKSxkPWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9bi5fcXVldWVIb29rcyhhLGIpLGc9ZnVuY3Rpb24oKXtuLmRlcXVldWUoYSxiKX07ImlucHJvZ3Jlc3MiPT09ZSYmKGU9Yy5zaGlmdCgpLGQtLSksZSYmKCJmeCI9PT1iJiZjLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgZi5zdG9wLGUuY2FsbChhLGcsZikpLCFkJiZmJiZmLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gbi5fZGF0YShhLGMpfHxuLl9kYXRhKGEsYyx7ZW1wdHk6bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7bi5fcmVtb3ZlRGF0YShhLGIrInF1ZXVlIiksbi5fcmVtb3ZlRGF0YShhLGMpfSl9KX19KSxuLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM/bi5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1uLnF1ZXVlKHRoaXMsYSxiKTtuLl9xdWV1ZUhvb2tzKHRoaXMsYSksImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWNbMF0mJm4uZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe24uZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPTEsZT1uLkRlZmVycmVkKCksZj10aGlzLGc9dGhpcy5sZW5ndGgsaD1mdW5jdGlvbigpey0tZHx8ZS5yZXNvbHZlV2l0aChmLFtmXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCksYT1hfHwiZngiO3doaWxlKGctLSljPW4uX2RhdGEoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQrKyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSksZnVuY3Rpb24oKXt2YXIgYTtsLnNocmlua1dyYXBCbG9ja3M9ZnVuY3Rpb24oKXtpZihudWxsIT1hKXJldHVybiBhO2E9ITE7dmFyIGIsYyxlO3JldHVybiBjPWQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXSxjJiZjLnN0eWxlPyhiPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoYiksInVuZGVmaW5lZCIhPXR5cGVvZiBiLnN0eWxlLnpvb20mJihiLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGIuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUud2lkdGg9IjVweCIsYT0zIT09Yi5vZmZzZXRXaWR0aCksYy5yZW1vdmVDaGlsZChlKSxhKTp2b2lkIDB9fSgpO3ZhciBUPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLFU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK1QrIikoW2EteiVdKikkIiwiaSIpLFY9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxXPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9Ynx8YSwibm9uZSI9PT1uLmNzcyhhLCJkaXNwbGF5Iil8fCFuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX07ZnVuY3Rpb24gWChhLGIsYyxkKXt2YXIgZSxmPTEsZz0yMCxoPWQ/ZnVuY3Rpb24oKXtyZXR1cm4gZC5jdXIoKX06ZnVuY3Rpb24oKXtyZXR1cm4gbi5jc3MoYSxiLCIiKX0saT1oKCksaj1jJiZjWzNdfHwobi5jc3NOdW1iZXJbYl0/IiI6InB4Iiksaz0obi5jc3NOdW1iZXJbYl18fCJweCIhPT1qJiYraSkmJlUuZXhlYyhuLmNzcyhhLGIpKTtpZihrJiZrWzNdIT09ail7aj1qfHxrWzNdLGM9Y3x8W10saz0raXx8MTtkbyBmPWZ8fCIuNSIsay89ZixuLnN0eWxlKGEsYixrK2opO3doaWxlKGYhPT0oZj1oKCkvaSkmJjEhPT1mJiYtLWcpfXJldHVybiBjJiYoaz0ra3x8K2l8fDAsZT1jWzFdP2srKGNbMV0rMSkqY1syXTorY1syXSxkJiYoZC51bml0PWosZC5zdGFydD1rLGQuZW5kPWUpKSxlfXZhciBZPWZ1bmN0aW9uKGEsYixjLGQsZSxmLGcpe3ZhciBoPTAsaT1hLmxlbmd0aCxqPW51bGw9PWM7aWYoIm9iamVjdCI9PT1uLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYylZKGEsYixoLGNbaF0sITAsZixnKX1lbHNlIGlmKHZvaWQgMCE9PWQmJihlPSEwLG4uaXNGdW5jdGlvbihkKXx8KGc9ITApLGomJihnPyhiLmNhbGwoYSxkKSxiPW51bGwpOihqPWIsYj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGouY2FsbChuKGEpLGMpfSkpLGIpKWZvcig7aT5oO2grKyliKGFbaF0sYyxnP2Q6ZC5jYWxsKGFbaF0saCxiKGFbaF0sYykpKTtyZXR1cm4gZT9hOmo/Yi5jYWxsKGEpOmk/YihhWzBdLGMpOmZ9LFo9L14oPzpjaGVja2JveHxyYWRpbykkL2ksJD0vPChbXHc6LV0rKS8sXz0vXiR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2ksYWE9L15ccysvLGJhPSJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZGlhbG9nfGZpZ2NhcHRpb258ZmlndXJlfGZvb3RlcnxoZWFkZXJ8aGdyb3VwfG1haW58bWFya3xtZXRlcnxuYXZ8b3V0cHV0fHBpY3R1cmV8cHJvZ3Jlc3N8c2VjdGlvbnxzdW1tYXJ5fHRlbXBsYXRlfHRpbWV8dmlkZW8iO2Z1bmN0aW9uIGNhKGEpe3ZhciBiPWJhLnNwbGl0KCJ8IiksYz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtpZihjLmNyZWF0ZUVsZW1lbnQpd2hpbGUoYi5sZW5ndGgpYy5jcmVhdGVFbGVtZW50KGIucG9wKCkpO3JldHVybiBjfSFmdW5jdGlvbigpe3ZhciBhPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYj1kLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxjPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTthLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixsLmxlYWRpbmdXaGl0ZXNwYWNlPTM9PT1hLmZpcnN0Q2hpbGQubm9kZVR5cGUsbC50Ym9keT0hYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKS5sZW5ndGgsbC5odG1sU2VyaWFsaXplPSEhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxsLmh0bWw1Q2xvbmU9Ijw6bmF2PjwvOm5hdj4iIT09ZC5jcmVhdGVFbGVtZW50KCJuYXYiKS5jbG9uZU5vZGUoITApLm91dGVySFRNTCxjLnR5cGU9ImNoZWNrYm94IixjLmNoZWNrZWQ9ITAsYi5hcHBlbmRDaGlsZChjKSxsLmFwcGVuZENoZWNrZWQ9Yy5jaGVja2VkLGEuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IixsLm5vQ2xvbmVDaGVja2VkPSEhYS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWUsYi5hcHBlbmRDaGlsZChhKSxjPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIiksYy5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksYy5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksYS5hcHBlbmRDaGlsZChjKSxsLmNoZWNrQ2xvbmU9YS5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsbC5ub0Nsb25lRXZlbnQ9ISFhLmFkZEV2ZW50TGlzdGVuZXIsYVtuLmV4cGFuZG9dPTEsbC5hdHRyaWJ1dGVzPSFhLmdldEF0dHJpYnV0ZShuLmV4cGFuZG8pfSgpO3ZhciBkYT17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sbGVnZW5kOlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXSxhcmVhOlsxLCI8bWFwPiIsIjwvbWFwPiJdLHBhcmFtOlsxLCI8b2JqZWN0PiIsIjwvb2JqZWN0PiJdLHRoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSx0cjpbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il0sY29sOlsyLCI8dGFibGU+PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6bC5odG1sU2VyaWFsaXplP1swLCIiLCIiXTpbMSwiWDxkaXY+IiwiPC9kaXY+Il19O2RhLm9wdGdyb3VwPWRhLm9wdGlvbixkYS50Ym9keT1kYS50Zm9vdD1kYS5jb2xncm91cD1kYS5jYXB0aW9uPWRhLnRoZWFkLGRhLnRoPWRhLnRkO2Z1bmN0aW9uIGVhKGEsYil7dmFyIGMsZCxlPTAsZj0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0RWxlbWVudHNCeVRhZ05hbWU/YS5nZXRFbGVtZW50c0J5VGFnTmFtZShifHwiKiIpOiJ1bmRlZmluZWQiIT10eXBlb2YgYS5xdWVyeVNlbGVjdG9yQWxsP2EucXVlcnlTZWxlY3RvckFsbChifHwiKiIpOnZvaWQgMDtpZighZilmb3IoZj1bXSxjPWEuY2hpbGROb2Rlc3x8YTtudWxsIT0oZD1jW2VdKTtlKyspIWJ8fG4ubm9kZU5hbWUoZCxiKT9mLnB1c2goZCk6bi5tZXJnZShmLGVhKGQsYikpO3JldHVybiB2b2lkIDA9PT1ifHxiJiZuLm5vZGVOYW1lKGEsYik/bi5tZXJnZShbYV0sZik6Zn1mdW5jdGlvbiBmYShhLGIpe2Zvcih2YXIgYyxkPTA7bnVsbCE9KGM9YVtkXSk7ZCsrKW4uX2RhdGEoYywiZ2xvYmFsRXZhbCIsIWJ8fG4uX2RhdGEoYltkXSwiZ2xvYmFsRXZhbCIpKX12YXIgZ2E9Lzx8JiM/XHcrOy8saGE9Lzx0Ym9keS9pO2Z1bmN0aW9uIGlhKGEpe1oudGVzdChhLnR5cGUpJiYoYS5kZWZhdWx0Q2hlY2tlZD1hLmNoZWNrZWQpfWZ1bmN0aW9uIGphKGEsYixjLGQsZSl7Zm9yKHZhciBmLGcsaCxpLGosayxtLG89YS5sZW5ndGgscD1jYShiKSxxPVtdLHI9MDtvPnI7cisrKWlmKGc9YVtyXSxnfHwwPT09ZylpZigib2JqZWN0Ij09PW4udHlwZShnKSluLm1lcmdlKHEsZy5ub2RlVHlwZT9bZ106Zyk7ZWxzZSBpZihnYS50ZXN0KGcpKXtpPWl8fHAuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSksaj0oJC5leGVjKGcpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLG09ZGFbal18fGRhLl9kZWZhdWx0LGkuaW5uZXJIVE1MPW1bMV0rbi5odG1sUHJlZmlsdGVyKGcpK21bMl0sZj1tWzBdO3doaWxlKGYtLSlpPWkubGFzdENoaWxkO2lmKCFsLmxlYWRpbmdXaGl0ZXNwYWNlJiZhYS50ZXN0KGcpJiZxLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShhYS5leGVjKGcpWzBdKSksIWwudGJvZHkpe2c9InRhYmxlIiE9PWp8fGhhLnRlc3QoZyk/Ijx0YWJsZT4iIT09bVsxXXx8aGEudGVzdChnKT8wOmk6aS5maXJzdENoaWxkLGY9ZyYmZy5jaGlsZE5vZGVzLmxlbmd0aDt3aGlsZShmLS0pbi5ub2RlTmFtZShrPWcuY2hpbGROb2Rlc1tmXSwidGJvZHkiKSYmIWsuY2hpbGROb2Rlcy5sZW5ndGgmJmcucmVtb3ZlQ2hpbGQoayl9bi5tZXJnZShxLGkuY2hpbGROb2RlcyksaS50ZXh0Q29udGVudD0iIjt3aGlsZShpLmZpcnN0Q2hpbGQpaS5yZW1vdmVDaGlsZChpLmZpcnN0Q2hpbGQpO2k9cC5sYXN0Q2hpbGR9ZWxzZSBxLnB1c2goYi5jcmVhdGVUZXh0Tm9kZShnKSk7aSYmcC5yZW1vdmVDaGlsZChpKSxsLmFwcGVuZENoZWNrZWR8fG4uZ3JlcChlYShxLCJpbnB1dCIpLGlhKSxyPTA7d2hpbGUoZz1xW3IrK10paWYoZCYmbi5pbkFycmF5KGcsZCk+LTEpZSYmZS5wdXNoKGcpO2Vsc2UgaWYoaD1uLmNvbnRhaW5zKGcub3duZXJEb2N1bWVudCxnKSxpPWVhKHAuYXBwZW5kQ2hpbGQoZyksInNjcmlwdCIpLGgmJmZhKGkpLGMpe2Y9MDt3aGlsZShnPWlbZisrXSlfLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKX1yZXR1cm4gaT1udWxsLHB9IWZ1bmN0aW9uKCl7dmFyIGIsYyxlPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zm9yKGIgaW57c3VibWl0OiEwLGNoYW5nZTohMCxmb2N1c2luOiEwfSljPSJvbiIrYiwobFtiXT1jIGluIGEpfHwoZS5zZXRBdHRyaWJ1dGUoYywidCIpLGxbYl09ZS5hdHRyaWJ1dGVzW2NdLmV4cGFuZG89PT0hMSk7ZT1udWxsfSgpO3ZhciBrYT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksbGE9L15rZXkvLG1hPS9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudXxkcmFnfGRyb3ApfGNsaWNrLyxuYT0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sb2E9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHBhKCl7cmV0dXJuITB9ZnVuY3Rpb24gcWEoKXtyZXR1cm4hMX1mdW5jdGlvbiByYSgpe3RyeXtyZXR1cm4gZC5hY3RpdmVFbGVtZW50fWNhdGNoKGEpe319ZnVuY3Rpb24gc2EoYSxiLGMsZCxlLGYpe3ZhciBnLGg7aWYoIm9iamVjdCI9PXR5cGVvZiBiKXsic3RyaW5nIiE9dHlwZW9mIGMmJihkPWR8fGMsYz12b2lkIDApO2ZvcihoIGluIGIpc2EoYSxoLGMsZCxiW2hdLGYpO3JldHVybiBhfWlmKG51bGw9PWQmJm51bGw9PWU/KGU9YyxkPWM9dm9pZCAwKTpudWxsPT1lJiYoInN0cmluZyI9PXR5cGVvZiBjPyhlPWQsZD12b2lkIDApOihlPWQsZD1jLGM9dm9pZCAwKSksZT09PSExKWU9cWE7ZWxzZSBpZighZSlyZXR1cm4gYTtyZXR1cm4gMT09PWYmJihnPWUsZT1mdW5jdGlvbihhKXtyZXR1cm4gbigpLm9mZihhKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZS5ndWlkPWcuZ3VpZHx8KGcuZ3VpZD1uLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe24uZXZlbnQuYWRkKHRoaXMsYixlLGQsYyl9KX1uLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGwsbSxvLHAscSxyPW4uX2RhdGEoYSk7aWYocil7Yy5oYW5kbGVyJiYoaT1jLGM9aS5oYW5kbGVyLGU9aS5zZWxlY3RvciksYy5ndWlkfHwoYy5ndWlkPW4uZ3VpZCsrKSwoZz1yLmV2ZW50cyl8fChnPXIuZXZlbnRzPXt9KSwoaz1yLmhhbmRsZSl8fChrPXIuaGFuZGxlPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygbnx8YSYmbi5ldmVudC50cmlnZ2VyZWQ9PT1hLnR5cGU/dm9pZCAwOm4uZXZlbnQuZGlzcGF0Y2guYXBwbHkoay5lbGVtLGFyZ3VtZW50cyl9LGsuZWxlbT1hKSxiPShifHwiIikubWF0Y2goRyl8fFsiIl0saD1iLmxlbmd0aDt3aGlsZShoLS0pZj1vYS5leGVjKGJbaF0pfHxbXSxvPXE9ZlsxXSxwPShmWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyYmKGo9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShlP2ouZGVsZWdhdGVUeXBlOmouYmluZFR5cGUpfHxvLGo9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxsPW4uZXh0ZW5kKHt0eXBlOm8sb3JpZ1R5cGU6cSxkYXRhOmQsaGFuZGxlcjpjLGd1aWQ6Yy5ndWlkLHNlbGVjdG9yOmUsbmVlZHNDb250ZXh0OmUmJm4uZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChlKSxuYW1lc3BhY2U6cC5qb2luKCIuIil9LGkpLChtPWdbb10pfHwobT1nW29dPVtdLG0uZGVsZWdhdGVDb3VudD0wLGouc2V0dXAmJmouc2V0dXAuY2FsbChhLGQscCxrKSE9PSExfHwoYS5hZGRFdmVudExpc3RlbmVyP2EuYWRkRXZlbnRMaXN0ZW5lcihvLGssITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9uIitvLGspKSksai5hZGQmJihqLmFkZC5jYWxsKGEsbCksbC5oYW5kbGVyLmd1aWR8fChsLmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxlP20uc3BsaWNlKG0uZGVsZWdhdGVDb3VudCsrLDAsbCk6bS5wdXNoKGwpLG4uZXZlbnQuZ2xvYmFsW29dPSEwKTthPW51bGx9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG8scCxxLHI9bi5oYXNEYXRhKGEpJiZuLl9kYXRhKGEpO2lmKHImJihrPXIuZXZlbnRzKSl7Yj0oYnx8IiIpLm1hdGNoKEcpfHxbIiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWlmKGg9b2EuZXhlYyhiW2pdKXx8W10sbz1xPWhbMV0scD0oaFsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLG8pe2w9bi5ldmVudC5zcGVjaWFsW29dfHx7fSxvPShkP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxvLG09a1tvXXx8W10saD1oWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitwLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGk9Zj1tLmxlbmd0aDt3aGlsZShmLS0pZz1tW2ZdLCFlJiZxIT09Zy5vcmlnVHlwZXx8YyYmYy5ndWlkIT09Zy5ndWlkfHxoJiYhaC50ZXN0KGcubmFtZXNwYWNlKXx8ZCYmZCE9PWcuc2VsZWN0b3ImJigiKioiIT09ZHx8IWcuc2VsZWN0b3IpfHwobS5zcGxpY2UoZiwxKSxnLnNlbGVjdG9yJiZtLmRlbGVnYXRlQ291bnQtLSxsLnJlbW92ZSYmbC5yZW1vdmUuY2FsbChhLGcpKTtpJiYhbS5sZW5ndGgmJihsLnRlYXJkb3duJiZsLnRlYXJkb3duLmNhbGwoYSxwLHIuaGFuZGxlKSE9PSExfHxuLnJlbW92ZUV2ZW50KGEsbyxyLmhhbmRsZSksZGVsZXRlIGtbb10pfWVsc2UgZm9yKG8gaW4gayluLmV2ZW50LnJlbW92ZShhLG8rYltqXSxjLGQsITApO24uaXNFbXB0eU9iamVjdChrKSYmKGRlbGV0ZSByLmhhbmRsZSxuLl9yZW1vdmVEYXRhKGEsImV2ZW50cyIpKX19LHRyaWdnZXI6ZnVuY3Rpb24oYixjLGUsZil7dmFyIGcsaCxpLGosbCxtLG8scD1bZXx8ZF0scT1rLmNhbGwoYiwidHlwZSIpP2IudHlwZTpiLHI9ay5jYWxsKGIsIm5hbWVzcGFjZSIpP2IubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoaT1tPWU9ZXx8ZCwzIT09ZS5ub2RlVHlwZSYmOCE9PWUubm9kZVR5cGUmJiFuYS50ZXN0KHErbi5ldmVudC50cmlnZ2VyZWQpJiYocS5pbmRleE9mKCIuIik+LTEmJihyPXEuc3BsaXQoIi4iKSxxPXIuc2hpZnQoKSxyLnNvcnQoKSksaD1xLmluZGV4T2YoIjoiKTwwJiYib24iK3EsYj1iW24uZXhwYW5kb10/YjpuZXcgbi5FdmVudChxLCJvYmplY3QiPT10eXBlb2YgYiYmYiksYi5pc1RyaWdnZXI9Zj8yOjMsYi5uYW1lc3BhY2U9ci5qb2luKCIuIiksYi5ybmFtZXNwYWNlPWIubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3Iuam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1lKSxjPW51bGw9PWM/W2JdOm4ubWFrZUFycmF5KGMsW2JdKSxsPW4uZXZlbnQuc3BlY2lhbFtxXXx8e30sZnx8IWwudHJpZ2dlcnx8bC50cmlnZ2VyLmFwcGx5KGUsYykhPT0hMSkpe2lmKCFmJiYhbC5ub0J1YmJsZSYmIW4uaXNXaW5kb3coZSkpe2ZvcihqPWwuZGVsZWdhdGVUeXBlfHxxLG5hLnRlc3QoaitxKXx8KGk9aS5wYXJlbnROb2RlKTtpO2k9aS5wYXJlbnROb2RlKXAucHVzaChpKSxtPWk7bT09PShlLm93bmVyRG9jdW1lbnR8fGQpJiZwLnB1c2gobS5kZWZhdWx0Vmlld3x8bS5wYXJlbnRXaW5kb3d8fGEpfW89MDt3aGlsZSgoaT1wW28rK10pJiYhYi5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWIudHlwZT1vPjE/ajpsLmJpbmRUeXBlfHxxLGc9KG4uX2RhdGEoaSwiZXZlbnRzIil8fHt9KVtiLnR5cGVdJiZuLl9kYXRhKGksImhhbmRsZSIpLGcmJmcuYXBwbHkoaSxjKSxnPWgmJmlbaF0sZyYmZy5hcHBseSYmTShpKSYmKGIucmVzdWx0PWcuYXBwbHkoaSxjKSxiLnJlc3VsdD09PSExJiZiLnByZXZlbnREZWZhdWx0KCkpO2lmKGIudHlwZT1xLCFmJiYhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmKCFsLl9kZWZhdWx0fHxsLl9kZWZhdWx0LmFwcGx5KHAucG9wKCksYyk9PT0hMSkmJk0oZSkmJmgmJmVbcV0mJiFuLmlzV2luZG93KGUpKXttPWVbaF0sbSYmKGVbaF09bnVsbCksbi5ldmVudC50cmlnZ2VyZWQ9cTt0cnl7ZVtxXSgpfWNhdGNoKHMpe31uLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsbSYmKGVbaF09bSl9cmV0dXJuIGIucmVzdWx0fX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSl7YT1uLmV2ZW50LmZpeChhKTt2YXIgYixjLGQsZixnLGg9W10saT1lLmNhbGwoYXJndW1lbnRzKSxqPShuLl9kYXRhKHRoaXMsImV2ZW50cyIpfHx7fSlbYS50eXBlXXx8W10saz1uLmV2ZW50LnNwZWNpYWxbYS50eXBlXXx8e307aWYoaVswXT1hLGEuZGVsZWdhdGVUYXJnZXQ9dGhpcywhay5wcmVEaXNwYXRjaHx8ay5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsYSkhPT0hMSl7aD1uLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGopLGI9MDt3aGlsZSgoZj1oW2IrK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9Zi5lbGVtLGM9MDt3aGlsZSgoZz1mLmhhbmRsZXJzW2MrK10pJiYhYS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWEucm5hbWVzcGFjZSYmIWEucm5hbWVzcGFjZS50ZXN0KGcubmFtZXNwYWNlKXx8KGEuaGFuZGxlT2JqPWcsYS5kYXRhPWcuZGF0YSxkPSgobi5ldmVudC5zcGVjaWFsW2cub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxnLmhhbmRsZXIpLmFwcGx5KGYuZWxlbSxpKSx2b2lkIDAhPT1kJiYoYS5yZXN1bHQ9ZCk9PT0hMSYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpKSl9cmV0dXJuIGsucG9zdERpc3BhdGNoJiZrLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsYSksYS5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsaT1hLnRhcmdldDtpZihoJiZpLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8aXNOYU4oYS5idXR0b24pfHxhLmJ1dHRvbjwxKSlmb3IoO2khPXRoaXM7aT1pLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PWkubm9kZVR5cGUmJihpLmRpc2FibGVkIT09ITB8fCJjbGljayIhPT1hLnR5cGUpKXtmb3IoZD1bXSxjPTA7aD5jO2MrKylmPWJbY10sZT1mLnNlbGVjdG9yKyIgIix2b2lkIDA9PT1kW2VdJiYoZFtlXT1mLm5lZWRzQ29udGV4dD9uKGUsdGhpcykuaW5kZXgoaSk+LTE6bi5maW5kKGUsdGhpcyxudWxsLFtpXSkubGVuZ3RoKSxkW2VdJiZkLnB1c2goZik7ZC5sZW5ndGgmJmcucHVzaCh7ZWxlbTppLGhhbmRsZXJzOmR9KX1yZXR1cm4gaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOnRoaXMsaGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGZpeDpmdW5jdGlvbihhKXtpZihhW24uZXhwYW5kb10pcmV0dXJuIGE7dmFyIGIsYyxlLGY9YS50eXBlLGc9YSxoPXRoaXMuZml4SG9va3NbZl07aHx8KHRoaXMuZml4SG9va3NbZl09aD1tYS50ZXN0KGYpP3RoaXMubW91c2VIb29rczpsYS50ZXN0KGYpP3RoaXMua2V5SG9va3M6e30pLGU9aC5wcm9wcz90aGlzLnByb3BzLmNvbmNhdChoLnByb3BzKTp0aGlzLnByb3BzLGE9bmV3IG4uRXZlbnQoZyksYj1lLmxlbmd0aDt3aGlsZShiLS0pYz1lW2JdLGFbY109Z1tjXTtyZXR1cm4gYS50YXJnZXR8fChhLnRhcmdldD1nLnNyY0VsZW1lbnR8fGQpLDM9PT1hLnRhcmdldC5ub2RlVHlwZSYmKGEudGFyZ2V0PWEudGFyZ2V0LnBhcmVudE5vZGUpLGEubWV0YUtleT0hIWEubWV0YUtleSxoLmZpbHRlcj9oLmZpbHRlcihhLGcpOmF9LHByb3BzOiJhbHRLZXkgYnViYmxlcyBjYW5jZWxhYmxlIGN0cmxLZXkgY3VycmVudFRhcmdldCBkZXRhaWwgZXZlbnRQaGFzZSBtZXRhS2V5IHJlbGF0ZWRUYXJnZXQgc2hpZnRLZXkgdGFyZ2V0IHRpbWVTdGFtcCB2aWV3IHdoaWNoIi5zcGxpdCgiICIpLGZpeEhvb2tzOnt9LGtleUhvb2tzOntwcm9wczoiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZSIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbnVsbD09YS53aGljaCYmKGEud2hpY2g9bnVsbCE9Yi5jaGFyQ29kZT9iLmNoYXJDb2RlOmIua2V5Q29kZSksYX19LG1vdXNlSG9va3M6e3Byb3BzOiJidXR0b24gYnV0dG9ucyBjbGllbnRYIGNsaWVudFkgZnJvbUVsZW1lbnQgb2Zmc2V0WCBvZmZzZXRZIHBhZ2VYIHBhZ2VZIHNjcmVlblggc2NyZWVuWSB0b0VsZW1lbnQiLnNwbGl0KCIgIiksZmlsdGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9Yi5idXR0b24saD1iLmZyb21FbGVtZW50O3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihlPWEudGFyZ2V0Lm93bmVyRG9jdW1lbnR8fGQsZj1lLmRvY3VtZW50RWxlbWVudCxjPWUuYm9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZiYmZi5zY3JvbGxMZWZ0fHxjJiZjLnNjcm9sbExlZnR8fDApLShmJiZmLmNsaWVudExlZnR8fGMmJmMuY2xpZW50TGVmdHx8MCksYS5wYWdlWT1iLmNsaWVudFkrKGYmJmYuc2Nyb2xsVG9wfHxjJiZjLnNjcm9sbFRvcHx8MCktKGYmJmYuY2xpZW50VG9wfHxjJiZjLmNsaWVudFRvcHx8MCkpLCFhLnJlbGF0ZWRUYXJnZXQmJmgmJihhLnJlbGF0ZWRUYXJnZXQ9aD09PWEudGFyZ2V0P2IudG9FbGVtZW50OmgpLGEud2hpY2h8fHZvaWQgMD09PWd8fChhLndoaWNoPTEmZz8xOjImZz8zOjQmZz8yOjApLGF9fSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sZm9jdXM6e3RyaWdnZXI6ZnVuY3Rpb24oKXtpZih0aGlzIT09cmEoKSYmdGhpcy5mb2N1cyl0cnl7cmV0dXJuIHRoaXMuZm9jdXMoKSwhMX1jYXRjaChhKXt9fSxkZWxlZ2F0ZVR5cGU6ImZvY3VzaW4ifSxibHVyOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXM9PT1yYSgpJiZ0aGlzLmJsdXI/KHRoaXMuYmx1cigpLCExKTp2b2lkIDB9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpmdW5jdGlvbigpe3JldHVybiBuLm5vZGVOYW1lKHRoaXMsImlucHV0IikmJiJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2s/KHRoaXMuY2xpY2soKSwhMSk6dm9pZCAwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXtyZXR1cm4gbi5ub2RlTmFtZShhLnRhcmdldCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPW4uZXh0ZW5kKG5ldyBuLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO24uZXZlbnQudHJpZ2dlcihkLG51bGwsYiksZC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmYy5wcmV2ZW50RGVmYXVsdCgpfX0sbi5yZW1vdmVFdmVudD1kLnJlbW92ZUV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9OmZ1bmN0aW9uKGEsYixjKXt2YXIgZD0ib24iK2I7YS5kZXRhY2hFdmVudCYmKCJ1bmRlZmluZWQiPT10eXBlb2YgYVtkXSYmKGFbZF09bnVsbCksYS5kZXRhY2hFdmVudChkLGMpKX0sbi5FdmVudD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygbi5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiZhLnJldHVyblZhbHVlPT09ITE/cGE6cWEpOnRoaXMudHlwZT1hLGImJm4uZXh0ZW5kKHRoaXMsYiksdGhpcy50aW1lU3RhbXA9YSYmYS50aW1lU3RhbXB8fG4ubm93KCksdm9pZCh0aGlzW24uZXhwYW5kb109ITApKTpuZXcgbi5FdmVudChhLGIpfSxuLkV2ZW50LnByb3RvdHlwZT17Y29uc3RydWN0b3I6bi5FdmVudCxpc0RlZmF1bHRQcmV2ZW50ZWQ6cWEsaXNQcm9wYWdhdGlvblN0b3BwZWQ6cWEsaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6cWEscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9cGEsYSYmKGEucHJldmVudERlZmF1bHQ/YS5wcmV2ZW50RGVmYXVsdCgpOmEucmV0dXJuVmFsdWU9ITEpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1wYSxhJiYhdGhpcy5pc1NpbXVsYXRlZCYmKGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQcm9wYWdhdGlvbigpLGEuY2FuY2VsQnViYmxlPSEwKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9cGEsYSYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24mJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LG4uZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtuLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBjLGQ9dGhpcyxlPWEucmVsYXRlZFRhcmdldCxmPWEuaGFuZGxlT2JqO3JldHVybiBlJiYoZT09PWR8fG4uY29udGFpbnMoZCxlKSl8fChhLnR5cGU9Zi5vcmlnVHlwZSxjPWYuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYS50eXBlPWIpLGN9fX0pLGwuc3VibWl0fHwobi5ldmVudC5zcGVjaWFsLnN1Ym1pdD17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4gbi5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6dm9pZCBuLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXQiLGZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0LGM9bi5ub2RlTmFtZShiLCJpbnB1dCIpfHxuLm5vZGVOYW1lKGIsImJ1dHRvbiIpP24ucHJvcChiLCJmb3JtIik6dm9pZCAwO2MmJiFuLl9kYXRhKGMsInN1Ym1pdCIpJiYobi5ldmVudC5hZGQoYywic3VibWl0Ll9zdWJtaXQiLGZ1bmN0aW9uKGEpe2EuX3N1Ym1pdEJ1YmJsZT0hMH0pLG4uX2RhdGEoYywic3VibWl0IiwhMCkpfSl9LHBvc3REaXNwYXRjaDpmdW5jdGlvbihhKXthLl9zdWJtaXRCdWJibGUmJihkZWxldGUgYS5fc3VibWl0QnViYmxlLHRoaXMucGFyZW50Tm9kZSYmIWEuaXNUcmlnZ2VyJiZuLmV2ZW50LnNpbXVsYXRlKCJzdWJtaXQiLHRoaXMucGFyZW50Tm9kZSxhKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG4ubm9kZU5hbWUodGhpcywiZm9ybSIpPyExOnZvaWQgbi5ldmVudC5yZW1vdmUodGhpcywiLl9zdWJtaXQiKX19KSxsLmNoYW5nZXx8KG4uZXZlbnQuc3BlY2lhbC5jaGFuZ2U9e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIGthLnRlc3QodGhpcy5ub2RlTmFtZSk/KCJjaGVja2JveCIhPT10aGlzLnR5cGUmJiJyYWRpbyIhPT10aGlzLnR5cGV8fChuLmV2ZW50LmFkZCh0aGlzLCJwcm9wZXJ0eWNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXsiY2hlY2tlZCI9PT1hLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lJiYodGhpcy5fanVzdENoYW5nZWQ9ITApfSksbi5ldmVudC5hZGQodGhpcywiY2xpY2suX2NoYW5nZSIsZnVuY3Rpb24oYSl7dGhpcy5fanVzdENoYW5nZWQmJiFhLmlzVHJpZ2dlciYmKHRoaXMuX2p1c3RDaGFuZ2VkPSExKSxuLmV2ZW50LnNpbXVsYXRlKCJjaGFuZ2UiLHRoaXMsYSl9KSksITEpOnZvaWQgbi5ldmVudC5hZGQodGhpcywiYmVmb3JlYWN0aXZhdGUuX2NoYW5nZSIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7a2EudGVzdChiLm5vZGVOYW1lKSYmIW4uX2RhdGEoYiwiY2hhbmdlIikmJihuLmV2ZW50LmFkZChiLCJjaGFuZ2UuX2NoYW5nZSIsZnVuY3Rpb24oYSl7IXRoaXMucGFyZW50Tm9kZXx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fG4uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcy5wYXJlbnROb2RlLGEpfSksbi5fZGF0YShiLCJjaGFuZ2UiLCEwKSl9KX0saGFuZGxlOmZ1bmN0aW9uKGEpe3ZhciBiPWEudGFyZ2V0O3JldHVybiB0aGlzIT09Ynx8YS5pc1NpbXVsYXRlZHx8YS5pc1RyaWdnZXJ8fCJyYWRpbyIhPT1iLnR5cGUmJiJjaGVja2JveCIhPT1iLnR5cGU/YS5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfSx0ZWFyZG93bjpmdW5jdGlvbigpe3JldHVybiBuLmV2ZW50LnJlbW92ZSh0aGlzLCIuX2NoYW5nZSIpLCFrYS50ZXN0KHRoaXMubm9kZU5hbWUpfX0pLGwuZm9jdXNpbnx8bi5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKGEpe24uZXZlbnQuc2ltdWxhdGUoYixhLnRhcmdldCxuLmV2ZW50LmZpeChhKSl9O24uZXZlbnQuc3BlY2lhbFtiXT17c2V0dXA6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMsZT1uLl9kYXRhKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCksbi5fZGF0YShkLGIsKGV8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW4uX2RhdGEoZCxiKS0xO2U/bi5fZGF0YShkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLG4uX3JlbW92ZURhdGEoZCxiKSl9fX0pLG4uZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gc2EodGhpcyxhLGIsYyxkKX0sb25lOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBzYSh0aGlzLGEsYixjLGQsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZTtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZD1hLmhhbmRsZU9iaixuKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihkLm5hbWVzcGFjZT9kLm9yaWdUeXBlKyIuIitkLm5hbWVzcGFjZTpkLm9yaWdUeXBlLGQuc2VsZWN0b3IsZC5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGUgaW4gYSl0aGlzLm9mZihlLGIsYVtlXSk7cmV0dXJuIHRoaXN9cmV0dXJuIGIhPT0hMSYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLGM9PT0hMSYmKGM9cWEpLHRoaXMuZWFjaChmdW5jdGlvbigpe24uZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXNbMF07cmV0dXJuIGM/bi5ldmVudC50cmlnZ2VyKGEsYixjLCEwKTp2b2lkIDB9fSk7dmFyIHRhPS8galF1ZXJ5XGQrPSIoPzpudWxsfFxkKykiL2csdWE9bmV3IFJlZ0V4cCgiPCg/OiIrYmErIilbXFxzLz5dIiwiaSIpLHZhPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFtcdzotXSspW14+XSopXC8+L2dpLHdhPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLHhhPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLHlhPS9edHJ1ZVwvKC4qKS8semE9L15ccyo8ISg/OlxbQ0RBVEFcW3wtLSl8KD86XF1cXXwtLSk+XHMqJC9nLEFhPWNhKGQpLEJhPUFhLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpO2Z1bmN0aW9uIENhKGEsYil7cmV0dXJuIG4ubm9kZU5hbWUoYSwidGFibGUiKSYmbi5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRyIik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRDaGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1mdW5jdGlvbiBEYShhKXtyZXR1cm4gYS50eXBlPShudWxsIT09bi5maW5kLmF0dHIoYSwidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24gRWEoYSl7dmFyIGI9eWEuZXhlYyhhLnR5cGUpO3JldHVybiBiP2EudHlwZT1iWzFdOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksYX1mdW5jdGlvbiBGYShhLGIpe2lmKDE9PT1iLm5vZGVUeXBlJiZuLmhhc0RhdGEoYSkpe3ZhciBjLGQsZSxmPW4uX2RhdGEoYSksZz1uLl9kYXRhKGIsZiksaD1mLmV2ZW50cztpZihoKXtkZWxldGUgZy5oYW5kbGUsZy5ldmVudHM9e307Zm9yKGMgaW4gaClmb3IoZD0wLGU9aFtjXS5sZW5ndGg7ZT5kO2QrKyluLmV2ZW50LmFkZChiLGMsaFtjXVtkXSl9Zy5kYXRhJiYoZy5kYXRhPW4uZXh0ZW5kKHt9LGcuZGF0YSkpfX1mdW5jdGlvbiBHYShhLGIpe3ZhciBjLGQsZTtpZigxPT09Yi5ub2RlVHlwZSl7aWYoYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksIWwubm9DbG9uZUV2ZW50JiZiW24uZXhwYW5kb10pe2U9bi5fZGF0YShiKTtmb3IoZCBpbiBlLmV2ZW50cyluLnJlbW92ZUV2ZW50KGIsZCxlLmhhbmRsZSk7Yi5yZW1vdmVBdHRyaWJ1dGUobi5leHBhbmRvKX0ic2NyaXB0Ij09PWMmJmIudGV4dCE9PWEudGV4dD8oRGEoYikudGV4dD1hLnRleHQsRWEoYikpOiJvYmplY3QiPT09Yz8oYi5wYXJlbnROb2RlJiYoYi5vdXRlckhUTUw9YS5vdXRlckhUTUwpLGwuaHRtbDVDbG9uZSYmYS5pbm5lckhUTUwmJiFuLnRyaW0oYi5pbm5lckhUTUwpJiYoYi5pbm5lckhUTUw9YS5pbm5lckhUTUwpKToiaW5wdXQiPT09YyYmWi50ZXN0KGEudHlwZSk/KGIuZGVmYXVsdENoZWNrZWQ9Yi5jaGVja2VkPWEuY2hlY2tlZCxiLnZhbHVlIT09YS52YWx1ZSYmKGIudmFsdWU9YS52YWx1ZSkpOiJvcHRpb24iPT09Yz9iLmRlZmF1bHRTZWxlY3RlZD1iLnNlbGVjdGVkPWEuZGVmYXVsdFNlbGVjdGVkOiJpbnB1dCIhPT1jJiYidGV4dGFyZWEiIT09Y3x8KGIuZGVmYXVsdFZhbHVlPWEuZGVmYXVsdFZhbHVlKX19ZnVuY3Rpb24gSGEoYSxiLGMsZCl7Yj1mLmFwcGx5KFtdLGIpO3ZhciBlLGcsaCxpLGosayxtPTAsbz1hLmxlbmd0aCxwPW8tMSxxPWJbMF0scj1uLmlzRnVuY3Rpb24ocSk7aWYocnx8bz4xJiYic3RyaW5nIj09dHlwZW9mIHEmJiFsLmNoZWNrQ2xvbmUmJnhhLnRlc3QocSkpcmV0dXJuIGEuZWFjaChmdW5jdGlvbihlKXt2YXIgZj1hLmVxKGUpO3ImJihiWzBdPXEuY2FsbCh0aGlzLGUsZi5odG1sKCkpKSxIYShmLGIsYyxkKX0pO2lmKG8mJihrPWphKGIsYVswXS5vd25lckRvY3VtZW50LCExLGEsZCksZT1rLmZpcnN0Q2hpbGQsMT09PWsuY2hpbGROb2Rlcy5sZW5ndGgmJihrPWUpLGV8fGQpKXtmb3IoaT1uLm1hcChlYShrLCJzY3JpcHQiKSxEYSksaD1pLmxlbmd0aDtvPm07bSsrKWc9ayxtIT09cCYmKGc9bi5jbG9uZShnLCEwLCEwKSxoJiZuLm1lcmdlKGksZWEoZywic2NyaXB0IikpKSxjLmNhbGwoYVttXSxnLG0pO2lmKGgpZm9yKGo9aVtpLmxlbmd0aC0xXS5vd25lckRvY3VtZW50LG4ubWFwKGksRWEpLG09MDtoPm07bSsrKWc9aVttXSxfLnRlc3QoZy50eXBlfHwiIikmJiFuLl9kYXRhKGcsImdsb2JhbEV2YWwiKSYmbi5jb250YWlucyhqLGcpJiYoZy5zcmM/bi5fZXZhbFVybCYmbi5fZXZhbFVybChnLnNyYyk6bi5nbG9iYWxFdmFsKChnLnRleHR8fGcudGV4dENvbnRlbnR8fGcuaW5uZXJIVE1MfHwiIikucmVwbGFjZSh6YSwiIikpKTtrPWU9bnVsbH1yZXR1cm4gYX1mdW5jdGlvbiBJYShhLGIsYyl7Zm9yKHZhciBkLGU9Yj9uLmZpbHRlcihiLGEpOmEsZj0wO251bGwhPShkPWVbZl0pO2YrKyljfHwxIT09ZC5ub2RlVHlwZXx8bi5jbGVhbkRhdGEoZWEoZCkpLGQucGFyZW50Tm9kZSYmKGMmJm4uY29udGFpbnMoZC5vd25lckRvY3VtZW50LGQpJiZmYShlYShkLCJzY3JpcHQiKSksZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpKTtyZXR1cm4gYX1uLmV4dGVuZCh7aHRtbFByZWZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHZhLCI8JDE+PC8kMj4iKX0sY2xvbmU6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGgsaT1uLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKTtpZihsLmh0bWw1Q2xvbmV8fG4uaXNYTUxEb2MoYSl8fCF1YS50ZXN0KCI8IithLm5vZGVOYW1lKyI+Iik/Zj1hLmNsb25lTm9kZSghMCk6KEJhLmlubmVySFRNTD1hLm91dGVySFRNTCxCYS5yZW1vdmVDaGlsZChmPUJhLmZpcnN0Q2hpbGQpKSwhKGwubm9DbG9uZUV2ZW50JiZsLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxuLmlzWE1MRG9jKGEpKSlmb3IoZD1lYShmKSxoPWVhKGEpLGc9MDtudWxsIT0oZT1oW2ddKTsrK2cpZFtnXSYmR2EoZSxkW2ddKTtpZihiKWlmKGMpZm9yKGg9aHx8ZWEoYSksZD1kfHxlYShmKSxnPTA7bnVsbCE9KGU9aFtnXSk7ZysrKUZhKGUsZFtnXSk7ZWxzZSBGYShhLGYpO3JldHVybiBkPWVhKGYsInNjcmlwdCIpLGQubGVuZ3RoPjAmJmZhKGQsIWkmJmVhKGEsInNjcmlwdCIpKSxkPWg9ZT1udWxsLGZ9LGNsZWFuRGF0YTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgZCxlLGYsZyxoPTAsaT1uLmV4cGFuZG8saj1uLmNhY2hlLGs9bC5hdHRyaWJ1dGVzLG09bi5ldmVudC5zcGVjaWFsO251bGwhPShkPWFbaF0pO2grKylpZigoYnx8TShkKSkmJihmPWRbaV0sZz1mJiZqW2ZdKSl7aWYoZy5ldmVudHMpZm9yKGUgaW4gZy5ldmVudHMpbVtlXT9uLmV2ZW50LnJlbW92ZShkLGUpOm4ucmVtb3ZlRXZlbnQoZCxlLGcuaGFuZGxlKTtqW2ZdJiYoZGVsZXRlIGpbZl0sa3x8InVuZGVmaW5lZCI9PXR5cGVvZiBkLnJlbW92ZUF0dHJpYnV0ZT9kW2ldPXZvaWQgMDpkLnJlbW92ZUF0dHJpYnV0ZShpKSxjLnB1c2goZikpfX19KSxuLmZuLmV4dGVuZCh7ZG9tTWFuaXA6SGEsZGV0YWNoOmZ1bmN0aW9uKGEpe3JldHVybiBJYSh0aGlzLGEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIElhKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhKXtyZXR1cm4gdm9pZCAwPT09YT9uLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkKS5jcmVhdGVUZXh0Tm9kZShhKSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIEhhKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1DYSh0aGlzLGEpO2IuYXBwZW5kQ2hpbGQoYSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPUNhKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKyl7MT09PWEubm9kZVR5cGUmJm4uY2xlYW5EYXRhKGVhKGEsITEpKTt3aGlsZShhLmZpcnN0Q2hpbGQpYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Eub3B0aW9ucyYmbi5ub2RlTmFtZShhLCJzZWxlY3QiKSYmKGEub3B0aW9ucy5sZW5ndGg9MCl9cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbD09YT8hMTphLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gbi5jbG9uZSh0aGlzLGEsYil9KX0saHRtbDpmdW5jdGlvbihhKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWEpcmV0dXJuIDE9PT1iLm5vZGVUeXBlP2IuaW5uZXJIVE1MLnJlcGxhY2UodGEsIiIpOnZvaWQgMDtpZigic3RyaW5nIj09dHlwZW9mIGEmJiF3YS50ZXN0KGEpJiYobC5odG1sU2VyaWFsaXplfHwhdWEudGVzdChhKSkmJihsLmxlYWRpbmdXaGl0ZXNwYWNlfHwhYWEudGVzdChhKSkmJiFkYVsoJC5leGVjKGEpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpXSl7YT1uLmh0bWxQcmVmaWx0ZXIoYSk7dHJ5e2Zvcig7ZD5jO2MrKyliPXRoaXNbY118fHt9LDE9PT1iLm5vZGVUeXBlJiYobi5jbGVhbkRhdGEoZWEoYiwhMSkpLGIuaW5uZXJIVE1MPWEpO2I9MH1jYXRjaChlKXt9fWImJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5wYXJlbnROb2RlO24uaW5BcnJheSh0aGlzLGEpPDAmJihuLmNsZWFuRGF0YShlYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pLG4uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhKXtmb3IodmFyIGMsZD0wLGU9W10sZj1uKGEpLGg9Zi5sZW5ndGgtMTtoPj1kO2QrKyljPWQ9PT1oP3RoaXM6dGhpcy5jbG9uZSghMCksbihmW2RdKVtiXShjKSxnLmFwcGx5KGUsYy5nZXQoKSk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUpfX0pO3ZhciBKYSxLYT17SFRNTDoiYmxvY2siLEJPRFk6ImJsb2NrIn07ZnVuY3Rpb24gTGEoYSxiKXt2YXIgYz1uKGIuY3JlYXRlRWxlbWVudChhKSkuYXBwZW5kVG8oYi5ib2R5KSxkPW4uY3NzKGNbMF0sImRpc3BsYXkiKTtyZXR1cm4gYy5kZXRhY2goKSxkfWZ1bmN0aW9uIE1hKGEpe3ZhciBiPWQsYz1LYVthXTtyZXR1cm4gY3x8KGM9TGEoYSxiKSwibm9uZSIhPT1jJiZjfHwoSmE9KEphfHxuKCI8aWZyYW1lIGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMCcgaGVpZ2h0PScwJy8+IikpLmFwcGVuZFRvKGIuZG9jdW1lbnRFbGVtZW50KSxiPShKYVswXS5jb250ZW50V2luZG93fHxKYVswXS5jb250ZW50RG9jdW1lbnQpLmRvY3VtZW50LGIud3JpdGUoKSxiLmNsb3NlKCksYz1MYShhLGIpLEphLmRldGFjaCgpKSxLYVthXT1jKSxjfXZhciBOYT0vXm1hcmdpbi8sT2E9bmV3IFJlZ0V4cCgiXigiK1QrIikoPyFweClbYS16JV0rJCIsImkiKSxQYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc9e307Zm9yKGYgaW4gYilnW2ZdPWEuc3R5bGVbZl0sYS5zdHlsZVtmXT1iW2ZdO2U9Yy5hcHBseShhLGR8fFtdKTtmb3IoZiBpbiBiKWEuc3R5bGVbZl09Z1tmXTtyZXR1cm4gZX0sUWE9ZC5kb2N1bWVudEVsZW1lbnQ7IWZ1bmN0aW9uKCl7dmFyIGIsYyxlLGYsZyxoLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxqPWQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYoai5zdHlsZSl7ai5zdHlsZS5jc3NUZXh0PSJmbG9hdDpsZWZ0O29wYWNpdHk6LjUiLGwub3BhY2l0eT0iMC41Ij09PWouc3R5bGUub3BhY2l0eSxsLmNzc0Zsb2F0PSEhai5zdHlsZS5jc3NGbG9hdCxqLnN0eWxlLmJhY2tncm91bmRDbGlwPSJjb250ZW50LWJveCIsai5jbG9uZU5vZGUoITApLnN0eWxlLmJhY2tncm91bmRDbGlwPSIiLGwuY2xlYXJDbG9uZVN0eWxlPSJjb250ZW50LWJveCI9PT1qLnN0eWxlLmJhY2tncm91bmRDbGlwLGk9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpLnN0eWxlLmNzc1RleHQ9ImJvcmRlcjowO3dpZHRoOjhweDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHg7cGFkZGluZzowO21hcmdpbi10b3A6MXB4O3Bvc2l0aW9uOmFic29sdXRlIixqLmlubmVySFRNTD0iIixpLmFwcGVuZENoaWxkKGopLGwuYm94U2l6aW5nPSIiPT09ai5zdHlsZS5ib3hTaXppbmd8fCIiPT09ai5zdHlsZS5Nb3pCb3hTaXppbmd8fCIiPT09ai5zdHlsZS5XZWJraXRCb3hTaXppbmcsbi5leHRlbmQobCx7cmVsaWFibGVIaWRkZW5PZmZzZXRzOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxmfSxib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksZX0scGl4ZWxNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksY30scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksYn0scmVsaWFibGVNYXJnaW5SaWdodDpmdW5jdGlvbigpe3JldHVybiBudWxsPT1iJiZrKCksZ30scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxofX0pO2Z1bmN0aW9uIGsoKXt2YXIgayxsLG09ZC5kb2N1bWVudEVsZW1lbnQ7bS5hcHBlbmRDaGlsZChpKSxqLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7dG9wOjElO3dpZHRoOjUwJSIsYj1lPWg9ITEsYz1nPSEwLGEuZ2V0Q29tcHV0ZWRTdHlsZSYmKGw9YS5nZXRDb21wdXRlZFN0eWxlKGopLGI9IjElIiE9PShsfHx7fSkudG9wLGg9IjJweCI9PT0obHx8e30pLm1hcmdpbkxlZnQsZT0iNHB4Ij09PShsfHx7d2lkdGg6IjRweCJ9KS53aWR0aCxqLnN0eWxlLm1hcmdpblJpZ2h0PSI1MCUiLGM9IjRweCI9PT0obHx8e21hcmdpblJpZ2h0OiI0cHgifSkubWFyZ2luUmlnaHQsaz1qLmFwcGVuZENoaWxkKGQuY3JlYXRlRWxlbWVudCgiZGl2IikpLGsuc3R5bGUuY3NzVGV4dD1qLnN0eWxlLmNzc1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3g7Ym94LXNpemluZzpjb250ZW50LWJveDtkaXNwbGF5OmJsb2NrO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MCIsay5zdHlsZS5tYXJnaW5SaWdodD1rLnN0eWxlLndpZHRoPSIwIixqLnN0eWxlLndpZHRoPSIxcHgiLGc9IXBhcnNlRmxvYXQoKGEuZ2V0Q29tcHV0ZWRTdHlsZShrKXx8e30pLm1hcmdpblJpZ2h0KSxqLnJlbW92ZUNoaWxkKGspKSxqLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGY9MD09PWouZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgsZiYmKGouc3R5bGUuZGlzcGxheT0iIixqLmlubmVySFRNTD0iPHRhYmxlPjx0cj48dGQ+PC90ZD48dGQ+dDwvdGQ+PC90cj48L3RhYmxlPiIsai5jaGlsZE5vZGVzWzBdLnN0eWxlLmJvcmRlckNvbGxhcHNlPSJzZXBhcmF0ZSIsaz1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZCIpLGtbMF0uc3R5bGUuY3NzVGV4dD0ibWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowO2Rpc3BsYXk6bm9uZSIsZj0wPT09a1swXS5vZmZzZXRIZWlnaHQsZiYmKGtbMF0uc3R5bGUuZGlzcGxheT0iIixrWzFdLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGY9MD09PWtbMF0ub2Zmc2V0SGVpZ2h0KSksbS5yZW1vdmVDaGlsZChpKX19fSgpO3ZhciBSYSxTYSxUYT0vXih0b3B8cmlnaHR8Ym90dG9tfGxlZnQpJC87YS5nZXRDb21wdXRlZFN0eWxlPyhSYT1mdW5jdGlvbihiKXt2YXIgYz1iLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7cmV0dXJuIGMmJmMub3BlbmVyfHwoYz1hKSxjLmdldENvbXB1dGVkU3R5bGUoYil9LFNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8UmEoYSksZz1jP2MuZ2V0UHJvcGVydHlWYWx1ZShiKXx8Y1tiXTp2b2lkIDAsIiIhPT1nJiZ2b2lkIDAhPT1nfHxuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8KGc9bi5zdHlsZShhLGIpKSxjJiYhbC5waXhlbE1hcmdpblJpZ2h0KCkmJk9hLnRlc3QoZykmJk5hLnRlc3QoYikmJihkPWgud2lkdGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lkdGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgubWF4V2lkdGg9Ziksdm9pZCAwPT09Zz9nOmcrIiJ9KTpRYS5jdXJyZW50U3R5bGUmJihSYT1mdW5jdGlvbihhKXtyZXR1cm4gYS5jdXJyZW50U3R5bGV9LFNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuc3R5bGU7cmV0dXJuIGM9Y3x8UmEoYSksZz1jP2NbYl06dm9pZCAwLG51bGw9PWcmJmgmJmhbYl0mJihnPWhbYl0pLE9hLnRlc3QoZykmJiFUYS50ZXN0KGIpJiYoZD1oLmxlZnQsZT1hLnJ1bnRpbWVTdHlsZSxmPWUmJmUubGVmdCxmJiYoZS5sZWZ0PWEuY3VycmVudFN0eWxlLmxlZnQpLGgubGVmdD0iZm9udFNpemUiPT09Yj8iMWVtIjpnLGc9aC5waXhlbExlZnQrInB4IixoLmxlZnQ9ZCxmJiYoZS5sZWZ0PWYpKSx2b2lkIDA9PT1nP2c6ZysiInx8ImF1dG8ifSk7ZnVuY3Rpb24gVWEoYSxiKXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKT92b2lkIGRlbGV0ZSB0aGlzLmdldDoodGhpcy5nZXQ9YikuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19dmFyIFZhPS9hbHBoYVwoW14pXSpcKS9pLFdhPS9vcGFjaXR5XHMqPVxzKihbXildKikvaSxYYT0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sWWE9bmV3IFJlZ0V4cCgiXigiK1QrIikoLiopJCIsImkiKSxaYT17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sJGE9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LF9hPVsiV2Via2l0IiwiTyIsIk1veiIsIm1zIl0sYWI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmdW5jdGlvbiBiYihhKXtpZihhIGluIGFiKXJldHVybiBhO3ZhciBiPWEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKSxjPV9hLmxlbmd0aDt3aGlsZShjLS0paWYoYT1fYVtjXStiLGEgaW4gYWIpcmV0dXJuIGF9ZnVuY3Rpb24gY2IoYSxiKXtmb3IodmFyIGMsZCxlLGY9W10sZz0wLGg9YS5sZW5ndGg7aD5nO2crKylkPWFbZ10sZC5zdHlsZSYmKGZbZ109bi5fZGF0YShkLCJvbGRkaXNwbGF5IiksYz1kLnN0eWxlLmRpc3BsYXksYj8oZltnXXx8Im5vbmUiIT09Y3x8KGQuc3R5bGUuZGlzcGxheT0iIiksIiI9PT1kLnN0eWxlLmRpc3BsYXkmJlcoZCkmJihmW2ddPW4uX2RhdGEoZCwib2xkZGlzcGxheSIsTWEoZC5ub2RlTmFtZSkpKSk6KGU9VyhkKSwoYyYmIm5vbmUiIT09Y3x8IWUpJiZuLl9kYXRhKGQsIm9sZGRpc3BsYXkiLGU/YzpuLmNzcyhkLCJkaXNwbGF5IikpKSk7Zm9yKGc9MDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoYiYmIm5vbmUiIT09ZC5zdHlsZS5kaXNwbGF5JiYiIiE9PWQuc3R5bGUuZGlzcGxheXx8KGQuc3R5bGUuZGlzcGxheT1iP2ZbZ118fCIiOiJub25lIikpO3JldHVybiBhfWZ1bmN0aW9uIGRiKGEsYixjKXt2YXIgZD1ZYS5leGVjKGIpO3JldHVybiBkP01hdGgubWF4KDAsZFsxXS0oY3x8MCkpKyhkWzJdfHwicHgiKTpifWZ1bmN0aW9uIGViKGEsYixjLGQsZSl7Zm9yKHZhciBmPWM9PT0oZD8iYm9yZGVyIjoiY29udGVudCIpPzQ6IndpZHRoIj09PWI/MTowLGc9MDs0PmY7Zis9MikibWFyZ2luIj09PWMmJihnKz1uLmNzcyhhLGMrVltmXSwhMCxlKSksZD8oImNvbnRlbnQiPT09YyYmKGctPW4uY3NzKGEsInBhZGRpbmciK1ZbZl0sITAsZSkpLCJtYXJnaW4iIT09YyYmKGctPW4uY3NzKGEsImJvcmRlciIrVltmXSsiV2lkdGgiLCEwLGUpKSk6KGcrPW4uY3NzKGEsInBhZGRpbmciK1ZbZl0sITAsZSksInBhZGRpbmciIT09YyYmKGcrPW4uY3NzKGEsImJvcmRlciIrVltmXSsiV2lkdGgiLCEwLGUpKSk7cmV0dXJuIGd9ZnVuY3Rpb24gZmIoYSxiLGMpe3ZhciBkPSEwLGU9IndpZHRoIj09PWI/YS5vZmZzZXRXaWR0aDphLm9mZnNldEhlaWdodCxmPVJhKGEpLGc9bC5ib3hTaXppbmcmJiJib3JkZXItYm94Ij09PW4uY3NzKGEsImJveFNpemluZyIsITEsZik7aWYoMD49ZXx8bnVsbD09ZSl7aWYoZT1TYShhLGIsZiksKDA+ZXx8bnVsbD09ZSkmJihlPWEuc3R5bGVbYl0pLE9hLnRlc3QoZSkpcmV0dXJuIGU7ZD1nJiYobC5ib3hTaXppbmdSZWxpYWJsZSgpfHxlPT09YS5zdHlsZVtiXSksZT1wYXJzZUZsb2F0KGUpfHwwfXJldHVybiBlK2ViKGEsYixjfHwoZz8iYm9yZGVyIjoiY29udGVudCIpLGQsZikrInB4In1uLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpe3ZhciBjPVNhKGEsIm9wYWNpdHkiKTtyZXR1cm4iIj09PWM/IjEiOmN9fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEwLHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6bC5jc3NGbG9hdD8iY3NzRmxvYXQiOiJzdHlsZUZsb2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZSxmLGcsaD1uLmNhbWVsQ2FzZShiKSxpPWEuc3R5bGU7aWYoYj1uLmNzc1Byb3BzW2hdfHwobi5jc3NQcm9wc1toXT1iYihoKXx8aCksZz1uLmNzc0hvb2tzW2JdfHxuLmNzc0hvb2tzW2hdLHZvaWQgMD09PWMpcmV0dXJuIGcmJiJnZXQiaW4gZyYmdm9pZCAwIT09KGU9Zy5nZXQoYSwhMSxkKSk/ZTppW2JdO2lmKGY9dHlwZW9mIGMsInN0cmluZyI9PT1mJiYoZT1VLmV4ZWMoYykpJiZlWzFdJiYoYz1YKGEsYixlKSxmPSJudW1iZXIiKSxudWxsIT1jJiZjPT09YyYmKCJudW1iZXIiPT09ZiYmKGMrPWUmJmVbM118fChuLmNzc051bWJlcltoXT8iIjoicHgiKSksbC5jbGVhckNsb25lU3R5bGV8fCIiIT09Y3x8MCE9PWIuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwoaVtiXT0iaW5oZXJpdCIpLCEoZyYmInNldCJpbiBnJiZ2b2lkIDA9PT0oYz1nLnNldChhLGMsZCkpKSkpdHJ5e2lbYl09Y31jYXRjaChqKXt9fX0sY3NzOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZyxoPW4uY2FtZWxDYXNlKGIpO3JldHVybiBiPW4uY3NzUHJvcHNbaF18fChuLmNzc1Byb3BzW2hdPWJiKGgpfHxoKSxnPW4uY3NzSG9va3NbYl18fG4uY3NzSG9va3NbaF0sZyYmImdldCJpbiBnJiYoZj1nLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1TYShhLGIsZCkpLCJub3JtYWwiPT09ZiYmYiBpbiAkYSYmKGY9JGFbYl0pLCIiPT09Y3x8Yz8oZT1wYXJzZUZsb2F0KGYpLGM9PT0hMHx8aXNGaW5pdGUoZSk/ZXx8MDpmKTpmfX0pLG4uZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYSxjLGQpe3JldHVybiBjP1hhLnRlc3Qobi5jc3MoYSwiZGlzcGxheSIpKSYmMD09PWEub2Zmc2V0V2lkdGg/UGEoYSxaYSxmdW5jdGlvbigpe3JldHVybiBmYihhLGIsZCl9KTpmYihhLGIsZCk6dm9pZCAwfSxzZXQ6ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWQmJlJhKGEpO3JldHVybiBkYihhLGMsZD9lYihhLGIsZCxsLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bi5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxlKTowKX19fSksbC5vcGFjaXR5fHwobi5jc3NIb29rcy5vcGFjaXR5PXtnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gV2EudGVzdCgoYiYmYS5jdXJyZW50U3R5bGU/YS5jdXJyZW50U3R5bGUuZmlsdGVyOmEuc3R5bGUuZmlsdGVyKXx8IiIpPy4wMSpwYXJzZUZsb2F0KFJlZ0V4cC4kMSkrIiI6Yj8iMSI6IiJ9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjPWEuc3R5bGUsZD1hLmN1cnJlbnRTdHlsZSxlPW4uaXNOdW1lcmljKGIpPyJhbHBoYShvcGFjaXR5PSIrMTAwKmIrIikiOiIiLGY9ZCYmZC5maWx0ZXJ8fGMuZmlsdGVyfHwiIjtjLnpvb209MSwoYj49MXx8IiI9PT1iKSYmIiI9PT1uLnRyaW0oZi5yZXBsYWNlKFZhLCIiKSkmJmMucmVtb3ZlQXR0cmlidXRlJiYoYy5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpLCIiPT09Ynx8ZCYmIWQuZmlsdGVyKXx8KGMuZmlsdGVyPVZhLnRlc3QoZik/Zi5yZXBsYWNlKFZhLGUpOmYrIiAiK2UpfX0pLG4uY3NzSG9va3MubWFyZ2luUmlnaHQ9VWEobC5yZWxpYWJsZU1hcmdpblJpZ2h0LGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/UGEoYSx7ZGlzcGxheToiaW5saW5lLWJsb2NrIn0sU2EsW2EsIm1hcmdpblJpZ2h0Il0pOnZvaWQgMH0pLG4uY3NzSG9va3MubWFyZ2luTGVmdD1VYShsLnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihhLGIpe3JldHVybiBiPyhwYXJzZUZsb2F0KFNhKGEsIm1hcmdpbkxlZnQiKSl8fChuLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKT9hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtUGEoYSx7Cm1hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSk6MCkpKyJweCI6dm9pZCAwfSksbi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErVltkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSxOYS50ZXN0KGEpfHwobi5jc3NIb29rc1thK2JdLnNldD1kYil9KSxuLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihuLmlzQXJyYXkoYikpe2ZvcihkPVJhKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW4uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9uLnN0eWxlKGEsYixjKTpuLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtXKHRoaXMpP24odGhpcykuc2hvdygpOm4odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gZ2IoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IGdiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bi5Ud2Vlbj1nYixnYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmdiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fG4uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobi5jc3NOdW1iZXJbY10/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPWdiLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTpnYi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGIsYz1nYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9bi5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOmdiLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGdiLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1nYi5wcm90b3R5cGUsZ2IucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0/YS5lbGVtW2EucHJvcF06KGI9bi5jc3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApfSxzZXQ6ZnVuY3Rpb24oYSl7bi5meC5zdGVwW2EucHJvcF0/bi5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbD09YS5lbGVtLnN0eWxlW24uY3NzUHJvcHNbYS5wcm9wXV0mJiFuLmNzc0hvb2tzW2EucHJvcF0/YS5lbGVtW2EucHJvcF09YS5ub3c6bi5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0sZ2IucHJvcEhvb2tzLnNjcm9sbFRvcD1nYi5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxuLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LG4uZng9Z2IucHJvdG90eXBlLmluaXQsbi5meC5zdGVwPXt9O3ZhciBoYixpYixqYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sa2I9L3F1ZXVlSG9va3MkLztmdW5jdGlvbiBsYigpe3JldHVybiBhLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtoYj12b2lkIDB9KSxoYj1uLm5vdygpfWZ1bmN0aW9uIG1iKGEsYil7dmFyIGMsZD17aGVpZ2h0OmF9LGU9MDtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWM9VltlXSxkWyJtYXJnaW4iK2NdPWRbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihkLm9wYWNpdHk9ZC53aWR0aD1hKSxkfWZ1bmN0aW9uIG5iKGEsYixjKXtmb3IodmFyIGQsZT0ocWIudHdlZW5lcnNbYl18fFtdKS5jb25jYXQocWIudHdlZW5lcnNbIioiXSksZj0wLGc9ZS5sZW5ndGg7Zz5mO2YrKylpZihkPWVbZl0uY2FsbChjLGIsYSkpcmV0dXJuIGR9ZnVuY3Rpb24gb2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbT10aGlzLG89e30scD1hLnN0eWxlLHE9YS5ub2RlVHlwZSYmVyhhKSxyPW4uX2RhdGEoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGg9bi5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sbi5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bcC5vdmVyZmxvdyxwLm92ZXJmbG93WCxwLm92ZXJmbG93WV0saj1uLmNzcyhhLCJkaXNwbGF5Iiksaz0ibm9uZSI9PT1qP24uX2RhdGEoYSwib2xkZGlzcGxheSIpfHxNYShhLm5vZGVOYW1lKTpqLCJpbmxpbmUiPT09ayYmIm5vbmUiPT09bi5jc3MoYSwiZmxvYXQiKSYmKGwuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmImlubGluZSIhPT1NYShhLm5vZGVOYW1lKT9wLnpvb209MTpwLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYocC5vdmVyZmxvdz0iaGlkZGVuIixsLnNocmlua1dyYXBCbG9ja3MoKXx8bS5hbHdheXMoZnVuY3Rpb24oKXtwLm92ZXJmbG93PWMub3ZlcmZsb3dbMF0scC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXSxwLm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpO2ZvcihkIGluIGIpaWYoZT1iW2RdLGpiLmV4ZWMoZSkpe2lmKGRlbGV0ZSBiW2RdLGY9Znx8InRvZ2dsZSI9PT1lLGU9PT0ocT8iaGlkZSI6InNob3ciKSl7aWYoInNob3ciIT09ZXx8IXJ8fHZvaWQgMD09PXJbZF0pY29udGludWU7cT0hMH1vW2RdPXImJnJbZF18fG4uc3R5bGUoYSxkKX1lbHNlIGo9dm9pZCAwO2lmKG4uaXNFbXB0eU9iamVjdChvKSkiaW5saW5lIj09PSgibm9uZSI9PT1qP01hKGEubm9kZU5hbWUpOmopJiYocC5kaXNwbGF5PWopO2Vsc2V7cj8iaGlkZGVuImluIHImJihxPXIuaGlkZGVuKTpyPW4uX2RhdGEoYSwiZnhzaG93Iix7fSksZiYmKHIuaGlkZGVuPSFxKSxxP24oYSkuc2hvdygpOm0uZG9uZShmdW5jdGlvbigpe24oYSkuaGlkZSgpfSksbS5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7bi5fcmVtb3ZlRGF0YShhLCJmeHNob3ciKTtmb3IoYiBpbiBvKW4uc3R5bGUoYSxiLG9bYl0pfSk7Zm9yKGQgaW4gbylnPW5iKHE/cltkXTowLGQsbSksZCBpbiByfHwocltkXT1nLnN0YXJ0LHEmJihnLmVuZD1nLnN0YXJ0LGcuc3RhcnQ9IndpZHRoIj09PWR8fCJoZWlnaHQiPT09ZD8xOjApKX19ZnVuY3Rpb24gcGIoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihjIGluIGEpaWYoZD1uLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLG4uaXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYsZGVsZXRlIGFbY10pLGc9bi5jc3NIb29rc1tkXSxnJiYiZXhwYW5kImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBxYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1xYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPW4uRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWhifHxsYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtpPmc7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksMT5mJiZpP2M6KGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpuLmV4dGVuZCh7fSxiKSxvcHRzOm4uZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpuLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmhifHxsYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9bi5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtkPmM7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihwYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtnPmY7ZisrKWlmKGQ9cWIucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIG4uaXNGdW5jdGlvbihkLnN0b3ApJiYobi5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPW4ucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiBuLm1hcChrLG5iLGopLG4uaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLG4uZngudGltZXIobi5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3MpLmRvbmUoai5vcHRzLmRvbmUsai5vcHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5mYWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9bi5BbmltYXRpb249bi5leHRlbmQocWIse3R3ZWVuZXJzOnsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpO3JldHVybiBYKGMuZWxlbSxhLFUuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtuLmlzRnVuY3Rpb24oYSk/KGI9YSxhPVsiKiJdKTphPWEubWF0Y2goRyk7Zm9yKHZhciBjLGQ9MCxlPWEubGVuZ3RoO2U+ZDtkKyspYz1hW2RdLHFiLnR3ZWVuZXJzW2NdPXFiLnR3ZWVuZXJzW2NdfHxbXSxxYi50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltvYl0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9xYi5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6cWIucHJlZmlsdGVycy5wdXNoKGEpfX0pLG4uc3BlZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEmJiJvYmplY3QiPT10eXBlb2YgYT9uLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6Y3x8IWMmJmJ8fG4uaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiZifHxiJiYhbi5pc0Z1bmN0aW9uKGIpJiZifTtyZXR1cm4gZC5kdXJhdGlvbj1uLmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgZC5kdXJhdGlvbj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gbi5meC5zcGVlZHM/bi5meC5zcGVlZHNbZC5kdXJhdGlvbl06bi5meC5zcGVlZHMuX2RlZmF1bHQsbnVsbCE9ZC5xdWV1ZSYmZC5xdWV1ZSE9PSEwfHwoZC5xdWV1ZT0iZngiKSxkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oKXtuLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRoaXMpLGQucXVldWUmJm4uZGVxdWV1ZSh0aGlzLGQucXVldWUpfSxkfSxuLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcihXKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uLmlzRW1wdHlPYmplY3QoYSksZj1uLnNwZWVkKGIsYyxkKSxnPWZ1bmN0aW9uKCl7dmFyIGI9cWIodGhpcyxuLmV4dGVuZCh7fSxhKSxmKTsoZXx8bi5fZGF0YSh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVybiBnLmZpbmlzaD1nLGV8fGYucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mdW5jdGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxiKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ITAsZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPW4udGltZXJzLGc9bi5fZGF0YSh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZrYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyFiJiZjfHxuLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1uLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1uLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbi5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxuLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bi5mbltiXTtuLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobWIoYiwhMCksYSxkLGUpfX0pLG4uZWFjaCh7c2xpZGVEb3duOm1iKCJzaG93Iiksc2xpZGVVcDptYigiaGlkZSIpLHNsaWRlVG9nZ2xlOm1iKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxuLnRpbWVycz1bXSxuLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW4udGltZXJzLGM9MDtmb3IoaGI9bi5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxuLmZ4LnN0b3AoKSxoYj12b2lkIDB9LG4uZngudGltZXI9ZnVuY3Rpb24oYSl7bi50aW1lcnMucHVzaChhKSxhKCk/bi5meC5zdGFydCgpOm4udGltZXJzLnBvcCgpfSxuLmZ4LmludGVydmFsPTEzLG4uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpYnx8KGliPWEuc2V0SW50ZXJ2YWwobi5meC50aWNrLG4uZnguaW50ZXJ2YWwpKX0sbi5meC5zdG9wPWZ1bmN0aW9uKCl7YS5jbGVhckludGVydmFsKGliKSxpYj1udWxsfSxuLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxuLmZuLmRlbGF5PWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9bi5meD9uLmZ4LnNwZWVkc1tiXXx8YjpiLGM9Y3x8ImZ4Iix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYSxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGY9ZS5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYy5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxjLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxiLnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94IiksYy5hcHBlbmRDaGlsZChiKSxhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxhLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGwuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWMuY2xhc3NOYW1lLGwuc3R5bGU9L3RvcC8udGVzdChhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksbC5ocmVmTm9ybWFsaXplZD0iL2EiPT09YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxsLmNoZWNrT249ISFiLnZhbHVlLGwub3B0U2VsZWN0ZWQ9Zi5zZWxlY3RlZCxsLmVuY3R5cGU9ISFkLmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGUuZGlzYWJsZWQ9ITAsbC5vcHREaXNhYmxlZD0hZi5kaXNhYmxlZCxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxsLmlucHV0PSIiPT09Yi5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYi52YWx1ZT0idCIsYi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGwucmFkaW9WYWx1ZT0idCI9PT1iLnZhbHVlfSgpO3ZhciByYj0vXHIvZyxzYj0vW1x4MjBcdFxyXG5cZl0rL2c7bi5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPW4uaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxuKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6bi5pc0FycmF5KGUpJiYoZT1uLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOmErIiJ9KSksYj1uLnZhbEhvb2tzW3RoaXMudHlwZV18fG4udmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1uLnZhbEhvb2tzW2UudHlwZV18fG4udmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlwZW9mIGM/Yy5yZXBsYWNlKHJiLCIiKTpudWxsPT1jPyIiOmMpfX19KSxuLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW4uZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI/YjpuLnRyaW0obi50ZXh0KGEpKS5yZXBsYWNlKHNiLCIgIil9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxkPWEub3B0aW9ucyxlPWEuc2VsZWN0ZWRJbmRleCxmPSJzZWxlY3Qtb25lIj09PWEudHlwZXx8MD5lLGc9Zj9udWxsOltdLGg9Zj9lKzE6ZC5sZW5ndGgsaT0wPmU/aDpmP2U6MDtoPmk7aSsrKWlmKGM9ZFtpXSwoYy5zZWxlY3RlZHx8aT09PWUpJiYobC5vcHREaXNhYmxlZD8hYy5kaXNhYmxlZDpudWxsPT09Yy5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikpJiYoIWMucGFyZW50Tm9kZS5kaXNhYmxlZHx8IW4ubm9kZU5hbWUoYy5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoYj1uKGMpLnZhbCgpLGYpcmV0dXJuIGI7Zy5wdXNoKGIpfXJldHVybiBnfSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9YS5vcHRpb25zLGY9bi5tYWtlQXJyYXkoYiksZz1lLmxlbmd0aDt3aGlsZShnLS0paWYoZD1lW2ddLG4uaW5BcnJheShuLnZhbEhvb2tzLm9wdGlvbi5nZXQoZCksZik+LTEpdHJ5e2Quc2VsZWN0ZWQ9Yz0hMH1jYXRjaChoKXtkLnNjcm9sbEhlaWdodH1lbHNlIGQuc2VsZWN0ZWQ9ITE7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGV9fX19KSxuLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtuLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5pc0FycmF5KGIpP2EuY2hlY2tlZD1uLmluQXJyYXkobihhKS52YWwoKSxiKT4tMTp2b2lkIDB9fSxsLmNoZWNrT258fChuLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIHRiLHViLHZiPW4uZXhwci5hdHRySGFuZGxlLHdiPS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2kseGI9bC5nZXRTZXRBdHRyaWJ1dGUseWI9bC5pbnB1dDtuLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBZKHRoaXMsbi5hdHRyLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9YS5ub2RlVHlwZTtpZigzIT09ZiYmOCE9PWYmJjIhPT1mKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU/bi5wcm9wKGEsYixjKTooMT09PWYmJm4uaXNYTUxEb2MoYSl8fChiPWIudG9Mb3dlckNhc2UoKSxlPW4uYXR0ckhvb2tzW2JdfHwobi5leHByLm1hdGNoLmJvb2wudGVzdChiKT91Yjp0YikpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCBuLnJlbW92ZUF0dHIoYSxiKTplJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOihkPW4uZmluZC5hdHRyKGEsYiksbnVsbD09ZD92b2lkIDA6ZCkpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFsLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZuLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1hdGNoKEcpO2lmKGYmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZltlKytdKWQ9bi5wcm9wRml4W2NdfHxjLG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYyk/eWImJnhifHwhd2IudGVzdChjKT9hW2RdPSExOmFbbi5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtkXT0hMTpuLmF0dHIoYSxjLCIiKSxhLnJlbW92ZUF0dHJpYnV0ZSh4Yj9jOmQpfX0pLHViPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/bi5yZW1vdmVBdHRyKGEsYyk6eWImJnhifHwhd2IudGVzdChjKT9hLnNldEF0dHJpYnV0ZSgheGImJm4ucHJvcEZpeFtjXXx8YyxjKTphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYyldPWFbY109ITAsY319LG4uZWFjaChuLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPXZiW2JdfHxuLmZpbmQuYXR0cjt5YiYmeGJ8fCF3Yi50ZXN0KGIpP3ZiW2JdPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmO3JldHVybiBkfHwoZj12YltiXSx2YltiXT1lLGU9bnVsbCE9YyhhLGIsZCk/Yi50b0xvd2VyQ2FzZSgpOm51bGwsdmJbYl09ZiksZX06dmJbYl09ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYildP2IudG9Mb3dlckNhc2UoKTpudWxsfX0pLHliJiZ4Ynx8KG4uYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLm5vZGVOYW1lKGEsImlucHV0Iik/dm9pZChhLmRlZmF1bHRWYWx1ZT1iKTp0YiYmdGIuc2V0KGEsYixjKX19KSx4Ynx8KHRiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlTm9kZShjKTtyZXR1cm4gZHx8YS5zZXRBdHRyaWJ1dGVOb2RlKGQ9YS5vd25lckRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZShjKSksZC52YWx1ZT1iKz0iIiwidmFsdWUiPT09Y3x8Yj09PWEuZ2V0QXR0cmlidXRlKGMpP2I6dm9pZCAwfX0sdmIuaWQ9dmIubmFtZT12Yi5jb29yZHM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiYiIiE9PWQudmFsdWU/ZC52YWx1ZTpudWxsfSxuLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpO3JldHVybiBjJiZjLnNwZWNpZmllZD9jLnZhbHVlOnZvaWQgMH0sc2V0OnRiLnNldH0sbi5hdHRySG9va3MuY29udGVudGVkaXRhYmxlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3RiLnNldChhLCIiPT09Yj8hMTpiLGMpfX0sbi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihhLGIpe24uYXR0ckhvb2tzW2JdPXtzZXQ6ZnVuY3Rpb24oYSxjKXtyZXR1cm4iIj09PWM/KGEuc2V0QXR0cmlidXRlKGIsImF1dG8iKSxjKTp2b2lkIDB9fX0pKSxsLnN0eWxlfHwobi5hdHRySG9va3Muc3R5bGU9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fHx2b2lkIDB9LHNldDpmdW5jdGlvbihhLGIpe3JldHVybiBhLnN0eWxlLmNzc1RleHQ9YisiIn19KTt2YXIgemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdCkkL2ksQWI9L14oPzphfGFyZWEpJC9pO24uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxuLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9bi5wcm9wRml4W2FdfHxhLHRoaXMuZWFjaChmdW5jdGlvbigpe3RyeXt0aGlzW2FdPXZvaWQgMCxkZWxldGUgdGhpc1thXX1jYXRjaChiKXt9fSl9fSksbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBlO2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZuLmlzWE1MRG9jKGEpfHwoYj1uLnByb3BGaXhbYl18fGIsZT1uLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bi5maW5kLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTp6Yi50ZXN0KGEubm9kZU5hbWUpfHxBYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KSxsLmhyZWZOb3JtYWxpemVkfHxuLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXtuLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxsLm9wdFNlbGVjdGVkfHwobi5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtiJiYoYi5zZWxlY3RlZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLG4uZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7bi5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLGwuZW5jdHlwZXx8KG4ucHJvcEZpeC5lbmN0eXBlPSJlbmNvZGluZyIpO3ZhciBCYj0vW1x0XHJcblxmXS9nO2Z1bmN0aW9uIENiKGEpe3JldHVybiBuLmF0dHIoYSwiY2xhc3MiKXx8IiJ9bi5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsQ2IodGhpcykpKX0pO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKWQuaW5kZXhPZigiICIrZisiICIpPDAmJihkKz1mKyIgIik7aD1uLnRyaW0oZCksZSE9PWgmJm4uYXR0cihjLCJjbGFzcyIsaCl9fXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYobi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxiLENiKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKXdoaWxlKGQuaW5kZXhPZigiICIrZisiICIpPi0xKWQ9ZC5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9bi50cmltKGQpLGUhPT1oJiZuLmF0dHIoYywiY2xhc3MiLGgpfX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6bi5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihjKXtuKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsQ2IodGhpcyksYiksYil9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixkLGUsZjtpZigic3RyaW5nIj09PWMpe2Q9MCxlPW4odGhpcyksZj1hLm1hdGNoKEcpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWN8fChiPUNiKHRoaXMpLGImJm4uX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsYiksbi5hdHRyKHRoaXMsImNsYXNzIixifHxhPT09ITE/IiI6bi5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTA7Yj0iICIrYSsiICI7d2hpbGUoYz10aGlzW2QrK10paWYoMT09PWMubm9kZVR5cGUmJigiICIrQ2IoYykrIiAiKS5yZXBsYWNlKEJiLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KSxuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKGIsbnVsbCxhLGMpOnRoaXMudHJpZ2dlcihiKX19KSxuLmZuLmV4dGVuZCh7aG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7dmFyIERiPWEubG9jYXRpb24sRWI9bi5ub3coKSxGYj0vXD8vLEdiPS8oLCl8KFxbfHspfCh9fF0pfCIoPzpbXiJcXFxyXG5dfFxcWyJcXFwvYmZucnRdfFxcdVtcZGEtZkEtRl17NH0pKiJccyo6P3x0cnVlfGZhbHNlfG51bGx8LT8oPyEwXGQpXGQrKD86XC5cZCt8KSg/OltlRV1bKy1dP1xkK3wpL2c7bi5wYXJzZUpTT049ZnVuY3Rpb24oYil7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJzZShiKyIiKTt2YXIgYyxkPW51bGwsZT1uLnRyaW0oYisiIik7cmV0dXJuIGUmJiFuLnRyaW0oZS5yZXBsYWNlKEdiLGZ1bmN0aW9uKGEsYixlLGYpe3JldHVybiBjJiZiJiYoZD0wKSwwPT09ZD9hOihjPWV8fGIsZCs9IWYtIWUsIiIpfSkpP0Z1bmN0aW9uKCJyZXR1cm4gIitlKSgpOm4uZXJyb3IoIkludmFsaWQgSlNPTjogIitiKX0sbi5wYXJzZVhNTD1mdW5jdGlvbihiKXt2YXIgYyxkO2lmKCFifHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIG51bGw7dHJ5e2EuRE9NUGFyc2VyPyhkPW5ldyBhLkRPTVBhcnNlcixjPWQucGFyc2VGcm9tU3RyaW5nKGIsInRleHQveG1sIikpOihjPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bi5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIEhiPS8jLiokLyxJYj0vKFs/Jl0pXz1bXiZdKi8sSmI9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxLYj0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxMYj0vXig/OkdFVHxIRUFEKSQvLE1iPS9eXC9cLy8sTmI9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sT2I9e30sUGI9e30sUWI9IiovIi5jb25jYXQoIioiKSxSYj1EYi5ocmVmLFNiPU5iLmV4ZWMoUmIudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIFRiKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEcpfHxbXTtpZihuLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gVWIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09UGI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxuLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBWYihhLGIpe3ZhciBjLGQsZT1uLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZuLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gWGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1uLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6UmIsdHlwZToiR0VUIixpc0xvY2FsOktiLnRlc3QoU2JbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6UWIsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6bi5wYXJzZUpTT04sInRleHQgeG1sIjpuLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9WYihWYihhLG4uYWpheFNldHRpbmdzKSxiKTpWYihuLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpUYihPYiksYWpheFRyYW5zcG9ydDpUYihQYiksYWpheDpmdW5jdGlvbihiLGMpeyJvYmplY3QiPT10eXBlb2YgYiYmKGM9YixiPXZvaWQgMCksYz1jfHx7fTt2YXIgZCxlLGYsZyxoLGksaixrLGw9bi5hamF4U2V0dXAoe30sYyksbT1sLmNvbnRleHR8fGwsbz1sLmNvbnRleHQmJihtLm5vZGVUeXBlfHxtLmpxdWVyeSk/bihtKTpuLmV2ZW50LHA9bi5EZWZlcnJlZCgpLHE9bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iikscj1sLnN0YXR1c0NvZGV8fHt9LHM9e30sdD17fSx1PTAsdj0iY2FuY2VsZWQiLHc9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXt2YXIgYjtpZigyPT09dSl7aWYoIWspe2s9e307d2hpbGUoYj1KYi5leGVjKGcpKWtbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9a1thLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT11P2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdXx8KGE9dFtjXT10W2NdfHxhLHNbYV09YiksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdXx8KGwubWltZVR5cGU9YSksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dSlmb3IoYiBpbiBhKXJbYl09W3JbYl0sYVtiXV07ZWxzZSB3LmFsd2F5cyhhW3cuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHY7cmV0dXJuIGomJmouYWJvcnQoYikseSgwLGIpLHRoaXN9fTtpZihwLnByb21pc2UodykuY29tcGxldGU9cS5hZGQsdy5zdWNjZXNzPXcuZG9uZSx3LmVycm9yPXcuZmFpbCxsLnVybD0oKGJ8fGwudXJsfHxSYikrIiIpLnJlcGxhY2UoSGIsIiIpLnJlcGxhY2UoTWIsU2JbMV0rIi8vIiksbC50eXBlPWMubWV0aG9kfHxjLnR5cGV8fGwubWV0aG9kfHxsLnR5cGUsbC5kYXRhVHlwZXM9bi50cmltKGwuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChHKXx8WyIiXSxudWxsPT1sLmNyb3NzRG9tYWluJiYoZD1OYi5leGVjKGwudXJsLnRvTG93ZXJDYXNlKCkpLGwuY3Jvc3NEb21haW49ISghZHx8ZFsxXT09PVNiWzFdJiZkWzJdPT09U2JbMl0mJihkWzNdfHwoImh0dHA6Ij09PWRbMV0/IjgwIjoiNDQzIikpPT09KFNiWzNdfHwoImh0dHA6Ij09PVNiWzFdPyI4MCI6IjQ0MyIpKSkpLGwuZGF0YSYmbC5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBsLmRhdGEmJihsLmRhdGE9bi5wYXJhbShsLmRhdGEsbC50cmFkaXRpb25hbCkpLFViKE9iLGwsYyx3KSwyPT09dSlyZXR1cm4gdztpPW4uZXZlbnQmJmwuZ2xvYmFsLGkmJjA9PT1uLmFjdGl2ZSsrJiZuLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLGwudHlwZT1sLnR5cGUudG9VcHBlckNhc2UoKSxsLmhhc0NvbnRlbnQ9IUxiLnRlc3QobC50eXBlKSxmPWwudXJsLGwuaGFzQ29udGVudHx8KGwuZGF0YSYmKGY9bC51cmwrPShGYi50ZXN0KGYpPyImIjoiPyIpK2wuZGF0YSxkZWxldGUgbC5kYXRhKSxsLmNhY2hlPT09ITEmJihsLnVybD1JYi50ZXN0KGYpP2YucmVwbGFjZShJYiwiJDFfPSIrRWIrKyk6ZisoRmIudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0ViKyspKSxsLmlmTW9kaWZpZWQmJihuLmxhc3RNb2RpZmllZFtmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsbi5sYXN0TW9kaWZpZWRbZl0pLG4uZXRhZ1tmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixuLmV0YWdbZl0pKSwobC5kYXRhJiZsLmhhc0NvbnRlbnQmJmwuY29udGVudFR5cGUhPT0hMXx8Yy5jb250ZW50VHlwZSkmJncuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixsLmNvbnRlbnRUeXBlKSx3LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsbC5kYXRhVHlwZXNbMF0mJmwuYWNjZXB0c1tsLmRhdGFUeXBlc1swXV0/bC5hY2NlcHRzW2wuZGF0YVR5cGVzWzBdXSsoIioiIT09bC5kYXRhVHlwZXNbMF0/IiwgIitRYisiOyBxPTAuMDEiOiIiKTpsLmFjY2VwdHNbIioiXSk7Zm9yKGUgaW4gbC5oZWFkZXJzKXcuc2V0UmVxdWVzdEhlYWRlcihlLGwuaGVhZGVyc1tlXSk7aWYobC5iZWZvcmVTZW5kJiYobC5iZWZvcmVTZW5kLmNhbGwobSx3LGwpPT09ITF8fDI9PT11KSlyZXR1cm4gdy5hYm9ydCgpO3Y9ImFib3J0Ijtmb3IoZSBpbntzdWNjZXNzOjEsZXJyb3I6MSxjb21wbGV0ZToxfSl3W2VdKGxbZV0pO2lmKGo9VWIoUGIsbCxjLHcpKXtpZih3LnJlYWR5U3RhdGU9MSxpJiZvLnRyaWdnZXIoImFqYXhTZW5kIixbdyxsXSksMj09PXUpcmV0dXJuIHc7bC5hc3luYyYmbC50aW1lb3V0PjAmJihoPWEuc2V0VGltZW91dChmdW5jdGlvbigpe3cuYWJvcnQoInRpbWVvdXQiKX0sbC50aW1lb3V0KSk7dHJ5e3U9MSxqLnNlbmQocyx5KX1jYXRjaCh4KXtpZighKDI+dSkpdGhyb3cgeDt5KC0xLHgpfX1lbHNlIHkoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHkoYixjLGQsZSl7dmFyIGsscyx0LHYseCx5PWM7MiE9PXUmJih1PTIsaCYmYS5jbGVhclRpbWVvdXQoaCksaj12b2lkIDAsZz1lfHwiIix3LnJlYWR5U3RhdGU9Yj4wPzQ6MCxrPWI+PTIwMCYmMzAwPmJ8fDMwND09PWIsZCYmKHY9V2IobCx3LGQpKSx2PVhiKGwsdix3LGspLGs/KGwuaWZNb2RpZmllZCYmKHg9dy5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLHgmJihuLmxhc3RNb2RpZmllZFtmXT14KSx4PXcuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx4JiYobi5ldGFnW2ZdPXgpKSwyMDQ9PT1ifHwiSEVBRCI9PT1sLnR5cGU/eT0ibm9jb250ZW50IjozMDQ9PT1iP3k9Im5vdG1vZGlmaWVkIjooeT12LnN0YXRlLHM9di5kYXRhLHQ9di5lcnJvcixrPSF0KSk6KHQ9eSwhYiYmeXx8KHk9ImVycm9yIiwwPmImJihiPTApKSksdy5zdGF0dXM9Yix3LnN0YXR1c1RleHQ9KGN8fHkpKyIiLGs/cC5yZXNvbHZlV2l0aChtLFtzLHksd10pOnAucmVqZWN0V2l0aChtLFt3LHksdF0pLHcuc3RhdHVzQ29kZShyKSxyPXZvaWQgMCxpJiZvLnRyaWdnZXIoaz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt3LGwsaz9zOnRdKSxxLmZpcmVXaXRoKG0sW3cseV0pLGkmJihvLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3csbF0pLC0tbi5hY3RpdmV8fG4uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB3fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbi5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG4uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG4uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe25bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG4uYWpheChuLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sbi5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksbi5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gbi5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfSxuLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9bihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RDaGlsZCYmMT09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSlhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBuLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPW4odGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9bi5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7bih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpe24ubm9kZU5hbWUodGhpcywiYm9keSIpfHxuKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQoKX19KTtmdW5jdGlvbiBZYihhKXtyZXR1cm4gYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxuLmNzcyhhLCJkaXNwbGF5Iil9ZnVuY3Rpb24gWmIoYSl7aWYoIW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50fHxkLGEpKXJldHVybiEwO3doaWxlKGEmJjE9PT1hLm5vZGVUeXBlKXtpZigibm9uZSI9PT1ZYihhKXx8ImhpZGRlbiI9PT1hLnR5cGUpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9cmV0dXJuITF9bi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiBsLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpP2Eub2Zmc2V0V2lkdGg8PTAmJmEub2Zmc2V0SGVpZ2h0PD0wJiYhYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDpaYihhKX0sbi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hbi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfTt2YXIgJGI9LyUyMC9nLF9iPS9cW1xdJC8sYWM9L1xyP1xuL2csYmM9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGNjPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBkYyhhLGIsYyxkKXt2YXIgZTtpZihuLmlzQXJyYXkoYikpbi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxfYi50ZXN0KGEpP2QoYSxlKTpkYyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09bi50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpZGMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfW4ucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXtiPW4uaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9PT1iJiYoYj1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLG4uaXNBcnJheShhKXx8YS5qcXVlcnkmJiFuLmlzUGxhaW5PYmplY3QoYSkpbi5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlkYyhjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSgkYiwiKyIpfSxuLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1uLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9uLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFuKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmY2MudGVzdCh0aGlzLm5vZGVOYW1lKSYmIWJjLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFaLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9bih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOm4uaXNBcnJheShjKT9uLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYWMsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGFjLCJcclxuIil9fSkuZ2V0KCl9fSksbi5hamF4U2V0dGluZ3MueGhyPXZvaWQgMCE9PWEuQWN0aXZlWE9iamVjdD9mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTG9jYWw/aWMoKTpkLmRvY3VtZW50TW9kZT44P2hjKCk6L14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmaGMoKXx8aWMoKX06aGM7dmFyIGVjPTAsZmM9e30sZ2M9bi5hamF4U2V0dGluZ3MueGhyKCk7YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIGZjKWZjW2FdKHZvaWQgMCwhMCl9KSxsLmNvcnM9ISFnYyYmIndpdGhDcmVkZW50aWFscyJpbiBnYyxnYz1sLmFqYXg9ISFnYyxnYyYmbi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGIpe2lmKCFiLmNyb3NzRG9tYWlufHxsLmNvcnMpe3ZhciBjO3JldHVybntzZW5kOmZ1bmN0aW9uKGQsZSl7dmFyIGYsZz1iLnhocigpLGg9KytlYztpZihnLm9wZW4oYi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnhockZpZWxkcylmb3IoZiBpbiBiLnhockZpZWxkcylnW2ZdPWIueGhyRmllbGRzW2ZdO2IubWltZVR5cGUmJmcub3ZlcnJpZGVNaW1lVHlwZSYmZy5vdmVycmlkZU1pbWVUeXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGRbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGRbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZiBpbiBkKXZvaWQgMCE9PWRbZl0mJmcuc2V0UmVxdWVzdEhlYWRlcihmLGRbZl0rIiIpO2cuc2VuZChiLmhhc0NvbnRlbnQmJmIuZGF0YXx8bnVsbCksYz1mdW5jdGlvbihhLGQpe3ZhciBmLGksajtpZihjJiYoZHx8ND09PWcucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIGZjW2hdLGM9dm9pZCAwLGcub25yZWFkeXN0YXRlY2hhbmdlPW4ubm9vcCxkKTQhPT1nLnJlYWR5U3RhdGUmJmcuYWJvcnQoKTtlbHNle2o9e30sZj1nLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGcucmVzcG9uc2VUZXh0JiYoai50ZXh0PWcucmVzcG9uc2VUZXh0KTt0cnl7aT1nLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1mfHwhYi5pc0xvY2FsfHxiLmNyb3NzRG9tYWluPzEyMjM9PT1mJiYoZj0yMDQpOmY9ai50ZXh0PzIwMDo0MDR9aiYmZShmLGksaixnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYi5hc3luYz80PT09Zy5yZWFkeVN0YXRlP2Euc2V0VGltZW91dChjKTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mY1toXT1jOmMoKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKHZvaWQgMCwhMCl9fX19KTtmdW5jdGlvbiBoYygpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBpYygpe3RyeXtyZXR1cm4gbmV3IGEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChiKXt9fW4uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBuLmdsb2JhbEV2YWwoYSksYX19fSksbi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG4uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPWQuaGVhZHx8bigiaGVhZCIpWzBdfHxkLmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe2I9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxmKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgamM9W10sa2M9Lyg9KVw/KD89JnwkKXxcP1w/LztuLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9amMucG9wKCl8fG4uZXhwYW5kbysiXyIrRWIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG4uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGtjLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYwPT09KGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYma2MudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW4uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGtjLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPShGYi50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bi5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP24oYSkucmVtb3ZlUHJvcChlKTphW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssamMucHVzaChlKSksZyYmbi5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbi5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fGQ7dmFyIGU9eC5leGVjKGEpLGY9IWMmJltdO3JldHVybiBlP1tiLmNyZWF0ZUVsZW1lbnQoZVsxXSldOihlPWphKFthXSxiLGYpLGYmJmYubGVuZ3RoJiZuKGYpLnJlbW92ZSgpLG4ubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9O3ZhciBsYz1uLmZuLmxvYWQ7bi5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJmxjKXJldHVybiBsYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPi0xJiYoZD1uLnRyaW0oYS5zbGljZShoLGEubGVuZ3RoKSksYT1hLnNsaWNlKDAsaCkpLG4uaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmbi5hamF4KHt1cmw6YSx0eXBlOmV8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP24oIjxkaXY+IikuYXBwZW5kKG4ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pfSksdGhpc30sbi5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9uKGIsYSl9fSksbi5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZ3JlcChuLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0aH07ZnVuY3Rpb24gbWMoYSl7cmV0dXJuIG4uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1uLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW4uY3NzKGEsInBvc2l0aW9uIiksbD1uKGEpLG09e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1uLmNzcyhhLCJ0b3AiKSxpPW4uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZuLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLG4uZXh0ZW5kKHt9LGgpKSksbnVsbCE9Yi50b3AmJihtLnRvcD1iLnRvcC1oLnRvcCtnKSxudWxsIT1iLmxlZnQmJihtLmxlZnQ9Yi5sZWZ0LWgubGVmdCtlKSwidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxtKTpsLmNzcyhtKX19LG4uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09YT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihiKXtuLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGIpfSk7dmFyIGIsYyxkPXt0b3A6MCxsZWZ0OjB9LGU9dGhpc1swXSxmPWUmJmUub3duZXJEb2N1bWVudDtpZihmKXJldHVybiBiPWYuZG9jdW1lbnRFbGVtZW50LG4uY29udGFpbnMoYixlKT8oInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksYz1tYyhmKSx7dG9wOmQudG9wKyhjLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCktKGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoYy5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0KS0oYi5jbGllbnRMZWZ0fHwwKX0pOmR9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXt0b3A6MCxsZWZ0OjB9LGQ9dGhpc1swXTtyZXR1cm4iZml4ZWQiPT09bi5jc3MoZCwicG9zaXRpb24iKT9iPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5vZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksbi5ub2RlTmFtZShhWzBdLCJodG1sIil8fChjPWEub2Zmc2V0KCkpLGMudG9wKz1uLmNzcyhhWzBdLCJib3JkZXJUb3BXaWR0aCIsITApLGMubGVmdCs9bi5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtYy50b3Atbi5jc3MoZCwibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtYy5sZWZ0LW4uY3NzKGQsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYhbi5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bi5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxRYX0pfX0pLG4uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO24uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9bWMoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bihmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bihmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbi5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bi5jc3NIb29rc1tiXT1VYShsLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1TYShhLGIpLE9hLnRlc3QoYyk/bihhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxuLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe24uZWFjaCh7CnBhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZCl7bi5mbltkXT1mdW5jdGlvbihkLGUpe3ZhciBmPWFyZ3VtZW50cy5sZW5ndGgmJihjfHwiYm9vbGVhbiIhPXR5cGVvZiBkKSxnPWN8fChkPT09ITB8fGU9PT0hMD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihiLGMsZCl7dmFyIGU7cmV0dXJuIG4uaXNXaW5kb3coYik/Yi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWIubm9kZVR5cGU/KGU9Yi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5WyJzY3JvbGwiK2FdLGVbInNjcm9sbCIrYV0sYi5ib2R5WyJvZmZzZXQiK2FdLGVbIm9mZnNldCIrYV0sZVsiY2xpZW50IithXSkpOnZvaWQgMD09PWQ/bi5jc3MoYixjLGcpOm4uc3R5bGUoYixjLGQsZyl9LGIsZj9kOnZvaWQgMCxmLG51bGwpfX0pfSksbi5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLm9uKGEsbnVsbCxiLGMpfSx1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5vZmYoYSxudWxsLGIpfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gdGhpcy5vbihiLGEsYyxkKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGEsIioqIik6dGhpcy5vZmYoYixhfHwiKioiLGMpfX0pLG4uZm4uc2l6ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sbi5mbi5hbmRTZWxmPW4uZm4uYWRkQmFjaywiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gbn0pO3ZhciBuYz1hLmpRdWVyeSxvYz1hLiQ7cmV0dXJuIG4ubm9Db25mbGljdD1mdW5jdGlvbihiKXtyZXR1cm4gYS4kPT09biYmKGEuJD1vYyksYiYmYS5qUXVlcnk9PT1uJiYoYS5qUXVlcnk9bmMpLG59LGJ8fChhLmpRdWVyeT1hLiQ9biksbn0pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
19 <script src="data:application/x-javascript;base64,LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE2LTAxLTA1CiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiBjb3JlLmpzLCB3aWRnZXQuanMsIG1vdXNlLmpzLCBwb3NpdGlvbi5qcywgZHJhZ2dhYmxlLmpzLCBkcm9wcGFibGUuanMsIHJlc2l6YWJsZS5qcywgc2VsZWN0YWJsZS5qcywgc29ydGFibGUuanMsIGFjY29yZGlvbi5qcywgYXV0b2NvbXBsZXRlLmpzLCBidXR0b24uanMsIGRpYWxvZy5qcywgbWVudS5qcywgcHJvZ3Jlc3NiYXIuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc3Bpbm5lci5qcywgdGFicy5qcywgdG9vbHRpcC5qcywgZWZmZWN0LmpzLCBlZmZlY3QtYmxpbmQuanMsIGVmZmVjdC1ib3VuY2UuanMsIGVmZmVjdC1jbGlwLmpzLCBlZmZlY3QtZHJvcC5qcywgZWZmZWN0LWV4cGxvZGUuanMsIGVmZmVjdC1mYWRlLmpzLCBlZmZlY3QtZm9sZC5qcywgZWZmZWN0LWhpZ2hsaWdodC5qcywgZWZmZWN0LXB1ZmYuanMsIGVmZmVjdC1wdWxzYXRlLmpzLCBlZmZlY3Qtc2NhbGUuanMsIGVmZmVjdC1zaGFrZS5qcywgZWZmZWN0LXNpemUuanMsIGVmZmVjdC1zbGlkZS5qcywgZWZmZWN0LXRyYW5zZmVyLmpzCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLwoKKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0sZSk6ZShqUXVlcnkpfSkoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LHMpe3ZhciBuLGEsbyxyPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iYXJlYSI9PT1yPyhuPXQucGFyZW50Tm9kZSxhPW4ubmFtZSx0LmhyZWYmJmEmJiJtYXAiPT09bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPyhvPWUoImltZ1t1c2VtYXA9JyMiK2ErIiddIilbMF0sISFvJiZpKG8pKTohMSk6KC9eKGlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvLnRlc3Qocik/IXQuZGlzYWJsZWQ6ImEiPT09cj90LmhyZWZ8fHM6cykmJmkodCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZS5leHByLmZpbHRlcnMudmlzaWJsZSh0KSYmIWUodCkucGFyZW50cygpLmFkZEJhY2soKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4iaGlkZGVuIj09PWUuY3NzKHRoaXMsInZpc2liaWxpdHkiKX0pLmxlbmd0aH1mdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC52YWwoKTtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9yZWZyZXNoKCksdCE9PXRoaXMuZWxlbWVudC52YWwoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIil9fWUudWk9ZS51aXx8e30sZS5leHRlbmQoZS51aSx7dmVyc2lvbjoiMS4xMS40IixrZXlDb2RlOntCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH19KSxlLmZuLmV4dGVuZCh7c2Nyb2xsUGFyZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY3NzKCJwb3NpdGlvbiIpLHM9ImFic29sdXRlIj09PWksbj10Py8oYXV0b3xzY3JvbGx8aGlkZGVuKS86LyhhdXRvfHNjcm9sbCkvLGE9dGhpcy5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gcyYmInN0YXRpYyI9PT10LmNzcygicG9zaXRpb24iKT8hMTpuLnRlc3QodC5jc3MoIm92ZXJmbG93IikrdC5jc3MoIm92ZXJmbG93LXkiKSt0LmNzcygib3ZlcmZsb3cteCIpKX0pLmVxKDApO3JldHVybiJmaXhlZCIhPT1pJiZhLmxlbmd0aD9hOmUodGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCl9LHVuaXF1ZUlkOmZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZHx8KHRoaXMuaWQ9InVpLWlkLSIrICsrZSl9KX19KCkscmVtb3ZlVW5pcXVlSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7L151aS1pZC1cZCskLy50ZXN0KHRoaXMuaWQpJiZlKHRoaXMpLnJlbW92ZUF0dHIoImlkIil9KX19KSxlLmV4dGVuZChlLmV4cHJbIjoiXSx7ZGF0YTplLmV4cHIuY3JlYXRlUHNldWRvP2UuZXhwci5jcmVhdGVQc2V1ZG8oZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiEhZS5kYXRhKGksdCl9fSk6ZnVuY3Rpb24odCxpLHMpe3JldHVybiEhZS5kYXRhKHQsc1szXSl9LGZvY3VzYWJsZTpmdW5jdGlvbihpKXtyZXR1cm4gdChpLCFpc05hTihlLmF0dHIoaSwidGFiaW5kZXgiKSkpfSx0YWJiYWJsZTpmdW5jdGlvbihpKXt2YXIgcz1lLmF0dHIoaSwidGFiaW5kZXgiKSxuPWlzTmFOKHMpO3JldHVybihufHxzPj0wKSYmdChpLCFuKX19KSxlKCI8YT4iKS5vdXRlcldpZHRoKDEpLmpxdWVyeXx8ZS5lYWNoKFsiV2lkdGgiLCJIZWlnaHQiXSxmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHModCxpLHMsYSl7cmV0dXJuIGUuZWFjaChuLGZ1bmN0aW9uKCl7aS09cGFyc2VGbG9hdChlLmNzcyh0LCJwYWRkaW5nIit0aGlzKSl8fDAscyYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwiYm9yZGVyIit0aGlzKyJXaWR0aCIpKXx8MCksYSYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwibWFyZ2luIit0aGlzKSl8fDApfSksaX12YXIgbj0iV2lkdGgiPT09aT9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl0sYT1pLnRvTG93ZXJDYXNlKCksbz17aW5uZXJXaWR0aDplLmZuLmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6ZS5mbi5pbm5lckhlaWdodCxvdXRlcldpZHRoOmUuZm4ub3V0ZXJXaWR0aCxvdXRlckhlaWdodDplLmZuLm91dGVySGVpZ2h0fTtlLmZuWyJpbm5lciIraV09ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/b1siaW5uZXIiK2ldLmNhbGwodGhpcyk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCkrInB4Iil9KX0sZS5mblsib3V0ZXIiK2ldPWZ1bmN0aW9uKHQsbil7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0P29bIm91dGVyIitpXS5jYWxsKHRoaXMsdCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCwhMCxuKSsicHgiKX0pfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlKCI8YT4iKS5kYXRhKCJhLWIiLCJhIikucmVtb3ZlRGF0YSgiYS1iIikuZGF0YSgiYS1iIikmJihlLmZuLnJlbW92ZURhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuY2FsbCh0aGlzLGUuY2FtZWxDYXNlKGkpKTp0LmNhbGwodGhpcyl9fShlLmZuLnJlbW92ZURhdGEpKSxlLnVpLmllPSEhL21zaWUgW1x3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSksZS5mbi5leHRlbmQoe2ZvY3VzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgaT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHQpLmZvY3VzKCkscyYmcy5jYWxsKHQpfSxpKX0pOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5mb2N1cyksZGlzYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPSJvbnNlbGVjdHN0YXJ0ImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpPyJzZWxlY3RzdGFydCI6Im1vdXNlZG93biI7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmluZChlKyIudWktZGlzYWJsZVNlbGVjdGlvbiIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSl9fSgpLGVuYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuYmluZCgiLnVpLWRpc2FibGVTZWxlY3Rpb24iKX0sekluZGV4OmZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQpcmV0dXJuIHRoaXMuY3NzKCJ6SW5kZXgiLHQpO2lmKHRoaXMubGVuZ3RoKWZvcih2YXIgaSxzLG49ZSh0aGlzWzBdKTtuLmxlbmd0aCYmblswXSE9PWRvY3VtZW50Oyl7aWYoaT1uLmNzcygicG9zaXRpb24iKSwoImFic29sdXRlIj09PWl8fCJyZWxhdGl2ZSI9PT1pfHwiZml4ZWQiPT09aSkmJihzPXBhcnNlSW50KG4uY3NzKCJ6SW5kZXgiKSwxMCksIWlzTmFOKHMpJiYwIT09cykpcmV0dXJuIHM7bj1uLnBhcmVudCgpfXJldHVybiAwfX0pLGUudWkucGx1Z2luPXthZGQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9ZS51aVt0XS5wcm90b3R5cGU7Zm9yKG4gaW4gcylhLnBsdWdpbnNbbl09YS5wbHVnaW5zW25dfHxbXSxhLnBsdWdpbnNbbl0ucHVzaChbaSxzW25dXSl9LGNhbGw6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG4sYT1lLnBsdWdpbnNbdF07aWYoYSYmKHN8fGUuZWxlbWVudFswXS5wYXJlbnROb2RlJiYxMSE9PWUuZWxlbWVudFswXS5wYXJlbnROb2RlLm5vZGVUeXBlKSlmb3Iobj0wO2EubGVuZ3RoPm47bisrKWUub3B0aW9uc1thW25dWzBdXSYmYVtuXVsxXS5hcHBseShlLmVsZW1lbnQsaSl9fTt2YXIgbj0wLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuY2xlYW5EYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcyxuLGE7Zm9yKGE9MDtudWxsIT0obj1pW2FdKTthKyspdHJ5e3M9ZS5fZGF0YShuLCJldmVudHMiKSxzJiZzLnJlbW92ZSYmZShuKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIil9Y2F0Y2gobyl7fXQoaSl9fShlLmNsZWFuRGF0YSksZS53aWRnZXQ9ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbyxyLGg9e30sbD10LnNwbGl0KCIuIilbMF07cmV0dXJuIHQ9dC5zcGxpdCgiLiIpWzFdLG49bCsiLSIrdCxzfHwocz1pLGk9ZS5XaWRnZXQpLGUuZXhwclsiOiJdW24udG9Mb3dlckNhc2UoKV09ZnVuY3Rpb24odCl7cmV0dXJuISFlLmRhdGEodCxuKX0sZVtsXT1lW2xdfHx7fSxhPWVbbF1bdF0sbz1lW2xdW3RdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2NyZWF0ZVdpZGdldD8oYXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGUsdCksdm9pZCAwKTpuZXcgbyhlLHQpfSxlLmV4dGVuZChvLGEse3ZlcnNpb246cy52ZXJzaW9uLF9wcm90bzplLmV4dGVuZCh7fSxzKSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSxyPW5ldyBpLHIub3B0aW9ucz1lLndpZGdldC5leHRlbmQoe30sci5vcHRpb25zKSxlLmVhY2gocyxmdW5jdGlvbih0LHMpe3JldHVybiBlLmlzRnVuY3Rpb24ocyk/KGhbdF09ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG49ZnVuY3Rpb24oZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9O3JldHVybiBmdW5jdGlvbigpe3ZhciB0LGk9dGhpcy5fc3VwZXIsYT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1lLHRoaXMuX3N1cGVyQXBwbHk9bix0PXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPWksdGhpcy5fc3VwZXJBcHBseT1hLHR9fSgpLHZvaWQgMCk6KGhbdF09cyx2b2lkIDApfSksby5wcm90b3R5cGU9ZS53aWRnZXQuZXh0ZW5kKHIse3dpZGdldEV2ZW50UHJlZml4OmE/ci53aWRnZXRFdmVudFByZWZpeHx8dDp0fSxoLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTpsLHdpZGdldE5hbWU6dCx3aWRnZXRGdWxsTmFtZTpufSksYT8oZS5lYWNoKGEuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKHQsaSl7dmFyIHM9aS5wcm90b3R5cGU7ZS53aWRnZXQocy5uYW1lc3BhY2UrIi4iK3Mud2lkZ2V0TmFtZSxvLGkuX3Byb3RvKX0pLGRlbGV0ZSBhLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSxlLndpZGdldC5icmlkZ2UodCxvKSxvfSxlLndpZGdldC5leHRlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpLHMsbj1hLmNhbGwoYXJndW1lbnRzLDEpLG89MCxyPW4ubGVuZ3RoO3I+bztvKyspZm9yKGkgaW4gbltvXSlzPW5bb11baV0sbltvXS5oYXNPd25Qcm9wZXJ0eShpKSYmdm9pZCAwIT09cyYmKHRbaV09ZS5pc1BsYWluT2JqZWN0KHMpP2UuaXNQbGFpbk9iamVjdCh0W2ldKT9lLndpZGdldC5leHRlbmQoe30sdFtpXSxzKTplLndpZGdldC5leHRlbmQoe30scyk6cyk7cmV0dXJuIHR9LGUud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbih0LGkpe3ZhciBzPWkucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHx0O2UuZm5bdF09ZnVuY3Rpb24obil7dmFyIG89InN0cmluZyI9PXR5cGVvZiBuLHI9YS5jYWxsKGFyZ3VtZW50cywxKSxoPXRoaXM7cmV0dXJuIG8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGksYT1lLmRhdGEodGhpcyxzKTtyZXR1cm4iaW5zdGFuY2UiPT09bj8oaD1hLCExKTphP2UuaXNGdW5jdGlvbihhW25dKSYmIl8iIT09bi5jaGFyQXQoMCk/KGk9YVtuXS5hcHBseShhLHIpLGkhPT1hJiZ2b2lkIDAhPT1pPyhoPWkmJmkuanF1ZXJ5P2gucHVzaFN0YWNrKGkuZ2V0KCkpOmksITEpOnZvaWQgMCk6ZS5lcnJvcigibm8gc3VjaCBtZXRob2QgJyIrbisiJyBmb3IgIit0KyIgd2lkZ2V0IGluc3RhbmNlIik6ZS5lcnJvcigiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiK3QrIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIisiYXR0ZW1wdGVkIHRvIGNhbGwgbWV0aG9kICciK24rIiciKX0pOihyLmxlbmd0aCYmKG49ZS53aWRnZXQuZXh0ZW5kLmFwcGx5KG51bGwsW25dLmNvbmNhdChyKSkpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUuZGF0YSh0aGlzLHMpO3Q/KHQub3B0aW9uKG58fHt9KSx0Ll9pbml0JiZ0Ll9pbml0KCkpOmUuZGF0YSh0aGlzLHMsbmV3IGkobix0aGlzKSl9KSksaH19LGUuV2lkZ2V0PWZ1bmN0aW9uKCl7fSxlLldpZGdldC5fY2hpbGRDb25zdHJ1Y3RvcnM9W10sZS5XaWRnZXQucHJvdG90eXBlPXt3aWRnZXROYW1lOiJ3aWRnZXQiLHdpZGdldEV2ZW50UHJlZml4OiIiLGRlZmF1bHRFbGVtZW50OiI8ZGl2PiIsb3B0aW9uczp7ZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24odCxpKXtpPWUoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PWUoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9ZSgpLHRoaXMuaG92ZXJhYmxlPWUoKSx0aGlzLmZvY3VzYWJsZT1lKCksaSE9PXRoaXMmJihlLmRhdGEoaSx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09aSYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD1lKGkuc3R5bGU/aS5vd25lckRvY3VtZW50OmkuZG9jdW1lbnR8fGkpLHRoaXMud2luZG93PWUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksdCksdGhpcy5fY3JlYXRlKCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmUubm9vcCxfZ2V0Q3JlYXRlRXZlbnREYXRhOmUubm9vcCxfY3JlYXRlOmUubm9vcCxfaW5pdDplLm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3koKSx0aGlzLmVsZW1lbnQudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZURhdGEodGhpcy53aWRnZXRGdWxsTmFtZSkucmVtb3ZlRGF0YShlLmNhbWVsQ2FzZSh0aGlzLndpZGdldEZ1bGxOYW1lKSksdGhpcy53aWRnZXQoKS51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpLnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCAiKyJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuYmluZGluZ3MudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxfZGVzdHJveTplLm5vb3Asd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudH0sb3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89dDtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlmKG89e30scz10LnNwbGl0KCIuIiksdD1zLnNoaWZ0KCkscy5sZW5ndGgpe2ZvcihuPW9bdF09ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9uc1t0XSksYT0wO3MubGVuZ3RoLTE+YTthKyspbltzW2FdXT1uW3NbYV1dfHx7fSxuPW5bc1thXV07aWYodD1zLnBvcCgpLDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1uW3RdP251bGw6blt0XTtuW3RdPWl9ZWxzZXtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zW3RdP251bGw6dGhpcy5vcHRpb25zW3RdO29bdF09aX1yZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyhvKSx0aGlzfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub3B0aW9uc1tlXT10LCJkaXNhYmxlZCI9PT1lJiYodGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcyh0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLCEhdCksdCYmKHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpKSksdGhpc30sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX29uOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbixhPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgdCYmKHM9aSxpPXQsdD0hMSkscz8oaT1uPWUoaSksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChpKSk6KHM9aSxpPXRoaXMuZWxlbWVudCxuPXRoaXMud2lkZ2V0KCkpLGUuZWFjaChzLGZ1bmN0aW9uKHMsbyl7ZnVuY3Rpb24gcigpe3JldHVybiB0fHxhLm9wdGlvbnMuZGlzYWJsZWQhPT0hMCYmIWUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik/KCJzdHJpbmciPT10eXBlb2Ygbz9hW29dOm8pLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9InN0cmluZyIhPXR5cGVvZiBvJiYoci5ndWlkPW8uZ3VpZD1vLmd1aWR8fHIuZ3VpZHx8ZS5ndWlkKyspO3ZhciBoPXMubWF0Y2goL14oW1x3Oi1dKilccyooLiopJC8pLGw9aFsxXSthLmV2ZW50TmFtZXNwYWNlLHU9aFsyXTt1P24uZGVsZWdhdGUodSxsLHIpOmkuYmluZChsLHIpfSl9LF9vZmY6ZnVuY3Rpb24odCxpKXtpPShpfHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLHQudW5iaW5kKGkpLnVuZGVsZWdhdGUoaSksdGhpcy5iaW5kaW5ncz1lKHRoaXMuYmluZGluZ3Mubm90KHQpLmdldCgpKSx0aGlzLmZvY3VzYWJsZT1lKHRoaXMuZm9jdXNhYmxlLm5vdCh0KS5nZXQoKSksdGhpcy5ob3ZlcmFibGU9ZSh0aGlzLmhvdmVyYWJsZS5ub3QodCkuZ2V0KCkpfSxfZGVsYXk6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9zW2VdOmUpLmFwcGx5KHMsYXJndW1lbnRzKX12YXIgcz10aGlzO3JldHVybiBzZXRUaW1lb3V0KGksdHx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24odCl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKHQpLHRoaXMuX29uKHQse21vdXNlZW50ZXI6ZnVuY3Rpb24odCl7ZSh0LmN1cnJlbnRUYXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKX19KX0sX2ZvY3VzYWJsZTpmdW5jdGlvbih0KXt0aGlzLmZvY3VzYWJsZT10aGlzLmZvY3VzYWJsZS5hZGQodCksdGhpcy5fb24odCx7Zm9jdXNpbjpmdW5jdGlvbih0KXtlKHQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnNbdF07aWYocz1zfHx7fSxpPWUuRXZlbnQoaSksaS50eXBlPSh0PT09dGhpcy53aWRnZXRFdmVudFByZWZpeD90OnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrdCkudG9Mb3dlckNhc2UoKSxpLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sYT1pLm9yaWdpbmFsRXZlbnQpZm9yKG4gaW4gYSluIGluIGl8fChpW25dPWFbbl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihpLHMpLCEoZS5pc0Z1bmN0aW9uKG8pJiZvLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbaV0uY29uY2F0KHMpKT09PSExfHxpLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LGUuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24odCxpKXtlLldpZGdldC5wcm90b3R5cGVbIl8iK3RdPWZ1bmN0aW9uKHMsbixhKXsic3RyaW5nIj09dHlwZW9mIG4mJihuPXtlZmZlY3Q6bn0pO3ZhciBvLHI9bj9uPT09ITB8fCJudW1iZXIiPT10eXBlb2Ygbj9pOm4uZWZmZWN0fHxpOnQ7bj1ufHx7fSwibnVtYmVyIj09dHlwZW9mIG4mJihuPXtkdXJhdGlvbjpufSksbz0hZS5pc0VtcHR5T2JqZWN0KG4pLG4uY29tcGxldGU9YSxuLmRlbGF5JiZzLmRlbGF5KG4uZGVsYXkpLG8mJmUuZWZmZWN0cyYmZS5lZmZlY3RzLmVmZmVjdFtyXT9zW3RdKG4pOnIhPT10JiZzW3JdP3Nbcl0obi5kdXJhdGlvbixuLmVhc2luZyxhKTpzLnF1ZXVlKGZ1bmN0aW9uKGkpe2UodGhpcylbdF0oKSxhJiZhLmNhbGwoc1swXSksaSgpfSl9fSksZS53aWRnZXQ7dmFyIG89ITE7ZShkb2N1bWVudCkubW91c2V1cChmdW5jdGlvbigpe289ITF9KSxlLndpZGdldCgidWkubW91c2UiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NhbmNlbDoiaW5wdXQsdGV4dGFyZWEsYnV0dG9uLHNlbGVjdCxvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50LmJpbmQoIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VEb3duKGUpfSkuYmluZCgiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oaSl7cmV0dXJuITA9PT1lLmRhdGEoaS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKT8oZS5yZW1vdmVEYXRhKGkudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksaS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMSk6dm9pZCAwfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnVuYmluZCgiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24odCl7aWYoIW8pe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKHQpLHRoaXMuX21vdXNlRG93bkV2ZW50PXQ7dmFyIGk9dGhpcyxzPTE9PT10LndoaWNoLG49InN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuY2FuY2VsJiZ0LnRhcmdldC5ub2RlTmFtZT9lKHQudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDohMTtyZXR1cm4gcyYmIW4mJnRoaXMuX21vdXNlQ2FwdHVyZSh0KT8odGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQodCkmJnRoaXMuX21vdXNlRGVsYXlNZXQodCkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9dGhpcy5fbW91c2VTdGFydCh0KSE9PSExLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyh0LnByZXZlbnREZWZhdWx0KCksITApOighMD09PWUuZGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpJiZlLnJlbW92ZURhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaS5fbW91c2VNb3ZlKGUpfSx0aGlzLl9tb3VzZVVwRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuX21vdXNlVXAoZSl9LHRoaXMuZG9jdW1lbnQuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdC5wcmV2ZW50RGVmYXVsdCgpLG89ITAsITApKTohMH19LF9tb3VzZU1vdmU6ZnVuY3Rpb24odCl7aWYodGhpcy5fbW91c2VNb3ZlZCl7aWYoZS51aS5pZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk+ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSYmIXQuYnV0dG9uKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpO2lmKCF0LndoaWNoKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpfXJldHVybih0LndoaWNofHx0LmJ1dHRvbikmJih0aGlzLl9tb3VzZU1vdmVkPSEwKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/KHRoaXMuX21vdXNlRHJhZyh0KSx0LnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KHQpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KHQpJiYodGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsdCkhPT0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/dGhpcy5fbW91c2VEcmFnKHQpOnRoaXMuX21vdXNlVXAodCkpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpfSxfbW91c2VVcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLHQudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZlLmRhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AodCkpLG89ITEsITF9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1lLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1lLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21vdXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbigpe3JldHVybiEwfX0pLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQsaSl7cmV0dXJuW3BhcnNlRmxvYXQoZVswXSkqKHAudGVzdChlWzBdKT90LzEwMDoxKSxwYXJzZUZsb2F0KGVbMV0pKihwLnRlc3QoZVsxXSk/aS8xMDA6MSldfWZ1bmN0aW9uIGkodCxpKXtyZXR1cm4gcGFyc2VJbnQoZS5jc3ModCxpKSwxMCl8fDB9ZnVuY3Rpb24gcyh0KXt2YXIgaT10WzBdO3JldHVybiA5PT09aS5ub2RlVHlwZT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOjAsbGVmdDowfX06ZS5pc1dpbmRvdyhpKT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOnQuc2Nyb2xsVG9wKCksbGVmdDp0LnNjcm9sbExlZnQoKX19OmkucHJldmVudERlZmF1bHQ/e3dpZHRoOjAsaGVpZ2h0OjAsb2Zmc2V0Ont0b3A6aS5wYWdlWSxsZWZ0OmkucGFnZVh9fTp7d2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSxvZmZzZXQ6dC5vZmZzZXQoKX19ZS51aT1lLnVpfHx7fTt2YXIgbixhLG89TWF0aC5tYXgscj1NYXRoLmFicyxoPU1hdGgucm91bmQsbD0vbGVmdHxjZW50ZXJ8cmlnaHQvLHU9L3RvcHxjZW50ZXJ8Ym90dG9tLyxkPS9bXCtcLV1cZCsoXC5bXGRdKyk/JT8vLGM9L15cdysvLHA9LyUkLyxmPWUuZm4ucG9zaXRpb247ZS5wb3NpdGlvbj17c2Nyb2xsYmFyV2lkdGg6ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1uKXJldHVybiBuO3ZhciB0LGkscz1lKCI8ZGl2IHN0eWxlPSdkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6aGlkZGVuOyc+PGRpdiBzdHlsZT0naGVpZ2h0OjEwMHB4O3dpZHRoOmF1dG87Jz48L2Rpdj48L2Rpdj4iKSxhPXMuY2hpbGRyZW4oKVswXTtyZXR1cm4gZSgiYm9keSIpLmFwcGVuZChzKSx0PWEub2Zmc2V0V2lkdGgscy5jc3MoIm92ZXJmbG93Iiwic2Nyb2xsIiksaT1hLm9mZnNldFdpZHRoLHQ9PT1pJiYoaT1zWzBdLmNsaWVudFdpZHRoKSxzLnJlbW92ZSgpLG49dC1pfSxnZXRTY3JvbGxJbmZvOmZ1bmN0aW9uKHQpe3ZhciBpPXQuaXNXaW5kb3d8fHQuaXNEb2N1bWVudD8iIjp0LmVsZW1lbnQuY3NzKCJvdmVyZmxvdy14Iikscz10LmlzV2luZG93fHx0LmlzRG9jdW1lbnQ/IiI6dC5lbGVtZW50LmNzcygib3ZlcmZsb3cteSIpLG49InNjcm9sbCI9PT1pfHwiYXV0byI9PT1pJiZ0LndpZHRoPHQuZWxlbWVudFswXS5zY3JvbGxXaWR0aCxhPSJzY3JvbGwiPT09c3x8ImF1dG8iPT09cyYmdC5oZWlnaHQ8dC5lbGVtZW50WzBdLnNjcm9sbEhlaWdodDtyZXR1cm57d2lkdGg6YT9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MCxoZWlnaHQ6bj9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MH19LGdldFdpdGhpbkluZm86ZnVuY3Rpb24odCl7dmFyIGk9ZSh0fHx3aW5kb3cpLHM9ZS5pc1dpbmRvdyhpWzBdKSxuPSEhaVswXSYmOT09PWlbMF0ubm9kZVR5cGU7cmV0dXJue2VsZW1lbnQ6aSxpc1dpbmRvdzpzLGlzRG9jdW1lbnQ6bixvZmZzZXQ6aS5vZmZzZXQoKXx8e2xlZnQ6MCx0b3A6MH0sc2Nyb2xsTGVmdDppLnNjcm9sbExlZnQoKSxzY3JvbGxUb3A6aS5zY3JvbGxUb3AoKSx3aWR0aDpzfHxuP2kud2lkdGgoKTppLm91dGVyV2lkdGgoKSxoZWlnaHQ6c3x8bj9pLmhlaWdodCgpOmkub3V0ZXJIZWlnaHQoKX19fSxlLmZuLnBvc2l0aW9uPWZ1bmN0aW9uKG4pe2lmKCFufHwhbi5vZilyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj1lLmV4dGVuZCh7fSxuKTt2YXIgcCxtLGcsdix5LGIsXz1lKG4ub2YpLHg9ZS5wb3NpdGlvbi5nZXRXaXRoaW5JbmZvKG4ud2l0aGluKSx3PWUucG9zaXRpb24uZ2V0U2Nyb2xsSW5mbyh4KSxrPShuLmNvbGxpc2lvbnx8ImZsaXAiKS5zcGxpdCgiICIpLFQ9e307cmV0dXJuIGI9cyhfKSxfWzBdLnByZXZlbnREZWZhdWx0JiYobi5hdD0ibGVmdCB0b3AiKSxtPWIud2lkdGgsZz1iLmhlaWdodCx2PWIub2Zmc2V0LHk9ZS5leHRlbmQoe30sdiksZS5lYWNoKFsibXkiLCJhdCJdLGZ1bmN0aW9uKCl7dmFyIGUsdCxpPShuW3RoaXNdfHwiIikuc3BsaXQoIiAiKTsxPT09aS5sZW5ndGgmJihpPWwudGVzdChpWzBdKT9pLmNvbmNhdChbImNlbnRlciJdKTp1LnRlc3QoaVswXSk/WyJjZW50ZXIiXS5jb25jYXQoaSk6WyJjZW50ZXIiLCJjZW50ZXIiXSksaVswXT1sLnRlc3QoaVswXSk/aVswXToiY2VudGVyIixpWzFdPXUudGVzdChpWzFdKT9pWzFdOiJjZW50ZXIiLGU9ZC5leGVjKGlbMF0pLHQ9ZC5leGVjKGlbMV0pLFRbdGhpc109W2U/ZVswXTowLHQ/dFswXTowXSxuW3RoaXNdPVtjLmV4ZWMoaVswXSlbMF0sYy5leGVjKGlbMV0pWzBdXX0pLDE9PT1rLmxlbmd0aCYmKGtbMV09a1swXSksInJpZ2h0Ij09PW4uYXRbMF0/eS5sZWZ0Kz1tOiJjZW50ZXIiPT09bi5hdFswXSYmKHkubGVmdCs9bS8yKSwiYm90dG9tIj09PW4uYXRbMV0/eS50b3ArPWc6ImNlbnRlciI9PT1uLmF0WzFdJiYoeS50b3ArPWcvMikscD10KFQuYXQsbSxnKSx5LmxlZnQrPXBbMF0seS50b3ArPXBbMV0sdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbCx1PWUodGhpcyksZD11Lm91dGVyV2lkdGgoKSxjPXUub3V0ZXJIZWlnaHQoKSxmPWkodGhpcywibWFyZ2luTGVmdCIpLGI9aSh0aGlzLCJtYXJnaW5Ub3AiKSxEPWQrZitpKHRoaXMsIm1hcmdpblJpZ2h0Iikrdy53aWR0aCxTPWMrYitpKHRoaXMsIm1hcmdpbkJvdHRvbSIpK3cuaGVpZ2h0LE49ZS5leHRlbmQoe30seSksTT10KFQubXksdS5vdXRlcldpZHRoKCksdS5vdXRlckhlaWdodCgpKTsicmlnaHQiPT09bi5teVswXT9OLmxlZnQtPWQ6ImNlbnRlciI9PT1uLm15WzBdJiYoTi5sZWZ0LT1kLzIpLCJib3R0b20iPT09bi5teVsxXT9OLnRvcC09YzoiY2VudGVyIj09PW4ubXlbMV0mJihOLnRvcC09Yy8yKSxOLmxlZnQrPU1bMF0sTi50b3ArPU1bMV0sYXx8KE4ubGVmdD1oKE4ubGVmdCksTi50b3A9aChOLnRvcCkpLHM9e21hcmdpbkxlZnQ6ZixtYXJnaW5Ub3A6Yn0sZS5lYWNoKFsibGVmdCIsInRvcCJdLGZ1bmN0aW9uKHQsaSl7ZS51aS5wb3NpdGlvbltrW3RdXSYmZS51aS5wb3NpdGlvbltrW3RdXVtpXShOLHt0YXJnZXRXaWR0aDptLHRhcmdldEhlaWdodDpnLGVsZW1XaWR0aDpkLGVsZW1IZWlnaHQ6Yyxjb2xsaXNpb25Qb3NpdGlvbjpzLGNvbGxpc2lvbldpZHRoOkQsY29sbGlzaW9uSGVpZ2h0OlMsb2Zmc2V0OltwWzBdK01bMF0scFsxXStNWzFdXSxteTpuLm15LGF0Om4uYXQsd2l0aGluOngsZWxlbTp1fSl9KSxuLnVzaW5nJiYobD1mdW5jdGlvbihlKXt2YXIgdD12LmxlZnQtTi5sZWZ0LGk9dCttLWQscz12LnRvcC1OLnRvcCxhPXMrZy1jLGg9e3RhcmdldDp7ZWxlbWVudDpfLGxlZnQ6di5sZWZ0LHRvcDp2LnRvcCx3aWR0aDptLGhlaWdodDpnfSxlbGVtZW50OntlbGVtZW50OnUsbGVmdDpOLmxlZnQsdG9wOk4udG9wLHdpZHRoOmQsaGVpZ2h0OmN9LGhvcml6b250YWw6MD5pPyJsZWZ0Ijp0PjA/InJpZ2h0IjoiY2VudGVyIix2ZXJ0aWNhbDowPmE/InRvcCI6cz4wPyJib3R0b20iOiJtaWRkbGUifTtkPm0mJm0+cih0K2kpJiYoaC5ob3Jpem9udGFsPSJjZW50ZXIiKSxjPmcmJmc+cihzK2EpJiYoaC52ZXJ0aWNhbD0ibWlkZGxlIiksaC5pbXBvcnRhbnQ9byhyKHQpLHIoaSkpPm8ocihzKSxyKGEpKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixuLnVzaW5nLmNhbGwodGhpcyxlLGgpfSksdS5vZmZzZXQoZS5leHRlbmQoTix7dXNpbmc6bH0pKX0pfSxlLnVpLnBvc2l0aW9uPXtmaXQ6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPXQud2l0aGluLG49cy5pc1dpbmRvdz9zLnNjcm9sbExlZnQ6cy5vZmZzZXQubGVmdCxhPXMud2lkdGgscj1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LGg9bi1yLGw9cit0LmNvbGxpc2lvbldpZHRoLWEtbjt0LmNvbGxpc2lvbldpZHRoPmE/aD4wJiYwPj1sPyhpPWUubGVmdCtoK3QuY29sbGlzaW9uV2lkdGgtYS1uLGUubGVmdCs9aC1pKTplLmxlZnQ9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbldpZHRoOm46aD4wP2UubGVmdCs9aDpsPjA/ZS5sZWZ0LT1sOmUubGVmdD1vKGUubGVmdC1yLGUubGVmdCl9LHRvcDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dC53aXRoaW4sbj1zLmlzV2luZG93P3Muc2Nyb2xsVG9wOnMub2Zmc2V0LnRvcCxhPXQud2l0aGluLmhlaWdodCxyPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLGg9bi1yLGw9cit0LmNvbGxpc2lvbkhlaWdodC1hLW47dC5jb2xsaXNpb25IZWlnaHQ+YT9oPjAmJjA+PWw/KGk9ZS50b3AraCt0LmNvbGxpc2lvbkhlaWdodC1hLW4sZS50b3ArPWgtaSk6ZS50b3A9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbkhlaWdodDpuOmg+MD9lLnRvcCs9aDpsPjA/ZS50b3AtPWw6ZS50b3A9byhlLnRvcC1yLGUudG9wKX19LGZsaXA6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dC53aXRoaW4sYT1uLm9mZnNldC5sZWZ0K24uc2Nyb2xsTGVmdCxvPW4ud2lkdGgsaD1uLmlzV2luZG93P24uc2Nyb2xsTGVmdDpuLm9mZnNldC5sZWZ0LGw9ZS5sZWZ0LXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCx1PWwtaCxkPWwrdC5jb2xsaXNpb25XaWR0aC1vLWgsYz0ibGVmdCI9PT10Lm15WzBdPy10LmVsZW1XaWR0aDoicmlnaHQiPT09dC5teVswXT90LmVsZW1XaWR0aDowLHA9ImxlZnQiPT09dC5hdFswXT90LnRhcmdldFdpZHRoOiJyaWdodCI9PT10LmF0WzBdPy10LnRhcmdldFdpZHRoOjAsZj0tMip0Lm9mZnNldFswXTswPnU/KGk9ZS5sZWZ0K2MrcCtmK3QuY29sbGlzaW9uV2lkdGgtby1hLCgwPml8fHIodSk+aSkmJihlLmxlZnQrPWMrcCtmKSk6ZD4wJiYocz1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0K2MrcCtmLWgsKHM+MHx8ZD5yKHMpKSYmKGUubGVmdCs9YytwK2YpKX0sdG9wOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXQud2l0aGluLGE9bi5vZmZzZXQudG9wK24uc2Nyb2xsVG9wLG89bi5oZWlnaHQsaD1uLmlzV2luZG93P24uc2Nyb2xsVG9wOm4ub2Zmc2V0LnRvcCxsPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLHU9bC1oLGQ9bCt0LmNvbGxpc2lvbkhlaWdodC1vLWgsYz0idG9wIj09PXQubXlbMV0scD1jPy10LmVsZW1IZWlnaHQ6ImJvdHRvbSI9PT10Lm15WzFdP3QuZWxlbUhlaWdodDowLGY9InRvcCI9PT10LmF0WzFdP3QudGFyZ2V0SGVpZ2h0OiJib3R0b20iPT09dC5hdFsxXT8tdC50YXJnZXRIZWlnaHQ6MCxtPS0yKnQub2Zmc2V0WzFdOzA+dT8ocz1lLnRvcCtwK2YrbSt0LmNvbGxpc2lvbkhlaWdodC1vLWEsKDA+c3x8cih1KT5zKSYmKGUudG9wKz1wK2YrbSkpOmQ+MCYmKGk9ZS50b3AtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3ArcCtmK20taCwoaT4wfHxkPnIoaSkpJiYoZS50b3ArPXArZittKSl9fSxmbGlwZml0OntsZWZ0OmZ1bmN0aW9uKCl7ZS51aS5wb3NpdGlvbi5mbGlwLmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudWkucG9zaXRpb24uZml0LmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0b3A6ZnVuY3Rpb24oKXtlLnVpLnBvc2l0aW9uLmZsaXAudG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlLnVpLnBvc2l0aW9uLmZpdC50b3AuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LGZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sbyxyPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0saD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocj8iZGl2IjoiYm9keSIpLHM9e3Zpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6MCxoZWlnaHQ6MCxib3JkZXI6MCxtYXJnaW46MCxiYWNrZ3JvdW5kOiJub25lIn0sciYmZS5leHRlbmQocyx7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiItMTAwMHB4Iix0b3A6Ii0xMDAwcHgifSk7Zm9yKG8gaW4gcyl0LnN0eWxlW29dPXNbb107dC5hcHBlbmRDaGlsZChoKSxpPXJ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpLmluc2VydEJlZm9yZSh0LGkuZmlyc3RDaGlsZCksaC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwLjc0MzIyMjJweDsiLG49ZShoKS5vZmZzZXQoKS5sZWZ0LGE9bj4xMCYmMTE+bix0LmlubmVySFRNTD0iIixpLnJlbW92ZUNoaWxkKHQpfSgpfSgpLGUudWkucG9zaXRpb24sZS53aWRnZXQoInVpLmRyYWdnYWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoiZHJhZyIsb3B0aW9uczp7YWRkQ2xhc3NlczohMCxhcHBlbmRUbzoicGFyZW50IixheGlzOiExLGNvbm5lY3RUb1NvcnRhYmxlOiExLGNvbnRhaW5tZW50OiExLGN1cnNvcjoiYXV0byIsY3Vyc29yQXQ6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaWZyYW1lRml4OiExLG9wYWNpdHk6ITEscmVmcmVzaFBvc2l0aW9uczohMSxyZXZlcnQ6ITEscmV2ZXJ0RHVyYXRpb246NTAwLHNjb3BlOiJkZWZhdWx0IixzY3JvbGw6ITAsc2Nyb2xsU2Vuc2l0aXZpdHk6MjAsc2Nyb2xsU3BlZWQ6MjAsc25hcDohMSxzbmFwTW9kZToiYm90aCIsc25hcFRvbGVyYW5jZToyMCxzdGFjazohMSx6SW5kZXg6ITEsZHJhZzpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7Im9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKSx0aGlzLm9wdGlvbnMuYWRkQ2xhc3NlcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUiKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VJbml0KCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmKHRoaXMuX3JlbW92ZUhhbmRsZUNsYXNzTmFtZSgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5oZWxwZXJ8fHRoaXMuZWxlbWVudCkuaXMoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKT8odGhpcy5kZXN0cm95T25DbGVhcj0hMCx2b2lkIDApOih0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VEZXN0cm95KCksdm9pZCAwKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuX2JsdXJBY3RpdmVFbGVtZW50KHQpLHRoaXMuaGVscGVyfHxpLmRpc2FibGVkfHxlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktcmVzaXphYmxlLWhhbmRsZSIpLmxlbmd0aD4wPyExOih0aGlzLmhhbmRsZT10aGlzLl9nZXRIYW5kbGUodCksdGhpcy5oYW5kbGU/KHRoaXMuX2Jsb2NrRnJhbWVzKGkuaWZyYW1lRml4PT09ITA/ImlmcmFtZSI6aS5pZnJhbWVGaXgpLCEwKTohMSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbih0KXt0aGlzLmlmcmFtZUJsb2Nrcz10aGlzLmRvY3VtZW50LmZpbmQodCkubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5hcHBlbmRUbyh0LnBhcmVudCgpKS5vdXRlcldpZHRoKHQub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodCh0Lm91dGVySGVpZ2h0KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2JsdXJBY3RpdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuZG9jdW1lbnRbMF07aWYodGhpcy5oYW5kbGVFbGVtZW50LmlzKHQudGFyZ2V0KSl0cnl7aS5hY3RpdmVFbGVtZW50JiYiYm9keSIhPT1pLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpLmFjdGl2ZUVsZW1lbnQpLmJsdXIoKX1jYXRjaChzKXt9fSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcih0KSx0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiksdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpLGUudWkuZGRtYW5hZ2VyJiYoZS51aS5kZG1hbmFnZXIuY3VycmVudD10aGlzKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoITApLHRoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpLHRoaXMuaGFzRml4ZWRBbmNlc3Rvcj10aGlzLmhlbHBlci5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuImZpeGVkIj09PWUodGhpcykuY3NzKCJwb3NpdGlvbiIpfSkubGVuZ3RoPjAsdGhpcy5wb3NpdGlvbkFicz10aGlzLmVsZW1lbnQub2Zmc2V0KCksdGhpcy5fcmVmcmVzaE9mZnNldHModCksdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXRoaXMucG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0LCExKSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxpLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKGkuY3Vyc29yQXQpLHRoaXMuX3NldENvbnRhaW5tZW50KCksdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQpPT09ITE/KHRoaXMuX2NsZWFyKCksITEpOih0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksZS51aS5kZG1hbmFnZXImJiFpLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCksdGhpcy5fbm9ybWFsaXplUmlnaHRCb3R0b20oKSx0aGlzLl9tb3VzZURyYWcodCwhMCksZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWdTdGFydCh0aGlzLHQpLCEwKX0sX3JlZnJlc2hPZmZzZXRzOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXt0b3A6dGhpcy5wb3NpdGlvbkFicy50b3AtdGhpcy5tYXJnaW5zLnRvcCxsZWZ0OnRoaXMucG9zaXRpb25BYnMubGVmdC10aGlzLm1hcmdpbnMubGVmdCxzY3JvbGw6ITEscGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9LHRoaXMub2Zmc2V0LmNsaWNrPXtsZWZ0OmUucGFnZVgtdGhpcy5vZmZzZXQubGVmdCx0b3A6ZS5wYWdlWS10aGlzLm9mZnNldC50b3B9fSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQsaSl7aWYodGhpcy5oYXNGaXhlZEFuY2VzdG9yJiYodGhpcy5vZmZzZXQucGFyZW50PXRoaXMuX2dldFBhcmVudE9mZnNldCgpKSx0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCwhMCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSwhaSl7dmFyIHM9dGhpcy5fdWlIYXNoKCk7aWYodGhpcy5fdHJpZ2dlcigiZHJhZyIsdCxzKT09PSExKXJldHVybiB0aGlzLl9tb3VzZVVwKHt9KSwhMTt0aGlzLnBvc2l0aW9uPXMucG9zaXRpb259cmV0dXJuIHRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIsdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIsZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWcodGhpcyx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ITE7cmV0dXJuIGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJihzPWUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSksdGhpcy5kcm9wcGVkJiYocz10aGlzLmRyb3BwZWQsdGhpcy5kcm9wcGVkPSExKSwiaW52YWxpZCI9PT10aGlzLm9wdGlvbnMucmV2ZXJ0JiYhc3x8InZhbGlkIj09PXRoaXMub3B0aW9ucy5yZXZlcnQmJnN8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PT0hMHx8ZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5yZXZlcnQpJiZ0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LHMpP2UodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9uLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwxMCksZnVuY3Rpb24oKXtpLl90cmlnZ2VyKCJzdG9wIix0KSE9PSExJiZpLl9jbGVhcigpfSk6dGhpcy5fdHJpZ2dlcigic3RvcCIsdCkhPT0hMSYmdGhpcy5fY2xlYXIoKSwhMX0sX21vdXNlVXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VuYmxvY2tGcmFtZXMoKSxlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZ1N0b3AodGhpcyx0KSx0aGlzLmhhbmRsZUVsZW1lbnQuaXModC50YXJnZXQpJiZ0aGlzLmVsZW1lbnQuZm9jdXMoKSxlLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKHRoaXMsdCl9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlbHBlci5pcygiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpP3RoaXMuX21vdXNlVXAoe30pOnRoaXMuX2NsZWFyKCksdGhpc30sX2dldEhhbmRsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLmhhbmRsZT8hIWUodC50YXJnZXQpLmNsb3Nlc3QodGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhhbmRsZSkpLmxlbmd0aDohMH0sX3NldEhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudD10aGlzLm9wdGlvbnMuaGFuZGxlP3RoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5oYW5kbGUpOnRoaXMuZWxlbWVudCx0aGlzLmhhbmRsZUVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1oYW5kbGUiKX0sX3JlbW92ZUhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudC5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlLWhhbmRsZSIpfSxfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucyxzPWUuaXNGdW5jdGlvbihpLmhlbHBlciksbj1zP2UoaS5oZWxwZXIuYXBwbHkodGhpcy5lbGVtZW50WzBdLFt0XSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCJpZCIpOnRoaXMuZWxlbWVudDtyZXR1cm4gbi5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxuLmFwcGVuZFRvKCJwYXJlbnQiPT09aS5hcHBlbmRUbz90aGlzLmVsZW1lbnRbMF0ucGFyZW50Tm9kZTppLmFwcGVuZFRvKSxzJiZuWzBdPT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9zZXRQb3NpdGlvblJlbGF0aXZlKCksblswXT09PXRoaXMuZWxlbWVudFswXXx8LyhmaXhlZHxhYnNvbHV0ZSkvLnRlc3Qobi5jc3MoInBvc2l0aW9uIikpfHxuLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpLG59LF9zZXRQb3NpdGlvblJlbGF0aXZlOmZ1bmN0aW9uKCl7L14oPzpyfGF8ZikvLnRlc3QodGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSl8fCh0aGlzLmVsZW1lbnRbMF0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIil9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2lzUm9vdE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuLyhodG1sfGJvZHkpL2kudGVzdChlLnRhZ05hbWUpfHxlPT09dGhpcy5kb2N1bWVudFswXX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpLGk9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4iYWJzb2x1dGUiPT09dGhpcy5jc3NQb3NpdGlvbiYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT1pJiZlLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQubGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpLHQudG9wKz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksdGhpcy5faXNSb290Tm9kZSh0aGlzLm9mZnNldFBhcmVudFswXSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb24pcmV0dXJue3RvcDowLGxlZnQ6MH07dmFyIGU9dGhpcy5lbGVtZW50LnBvc2l0aW9uKCksdD10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkpfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0IiksMTApfHwwLHRvcDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDAscmlnaHQ6cGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwxMCl8fDAsYm90dG9tOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zLGE9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4gdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1udWxsLG4uY29udGFpbm1lbnQ/IndpbmRvdyI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVtlKHdpbmRvdykuc2Nyb2xsTGVmdCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsZSh3aW5kb3cpLnNjcm9sbFRvcCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLGUod2luZG93KS5zY3JvbGxMZWZ0KCkrZSh3aW5kb3cpLndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCxlKHdpbmRvdykuc2Nyb2xsVG9wKCkrKGUod2luZG93KS5oZWlnaHQoKXx8YS5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSx2b2lkIDApOiJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVswLDAsZShhKS53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKGUoYSkuaGVpZ2h0KCl8fGEuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF0sdm9pZCAwKTpuLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yPT09QXJyYXk/KHRoaXMuY29udGFpbm1lbnQ9bi5jb250YWlubWVudCx2b2lkIDApOigicGFyZW50Ij09PW4uY29udGFpbm1lbnQmJihuLmNvbnRhaW5tZW50PXRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUpLGk9ZShuLmNvbnRhaW5tZW50KSxzPWlbMF0scyYmKHQ9LyhzY3JvbGx8YXV0bykvLnRlc3QoaS5jc3MoIm92ZXJmbG93IikpLHRoaXMuY29udGFpbm1lbnQ9WyhwYXJzZUludChpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdMZWZ0IiksMTApfHwwKSwocGFyc2VJbnQoaS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdUb3AiKSwxMCl8fDApLCh0P01hdGgubWF4KHMuc2Nyb2xsV2lkdGgscy5vZmZzZXRXaWR0aCk6cy5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGkuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdC10aGlzLm1hcmdpbnMucmlnaHQsKHQ/TWF0aC5tYXgocy5zY3JvbGxIZWlnaHQscy5vZmZzZXRIZWlnaHQpOnMub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoaS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3AtdGhpcy5tYXJnaW5zLmJvdHRvbV0sdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1pKSx2b2lkIDApOih0aGlzLmNvbnRhaW5tZW50PW51bGwsdm9pZCAwKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKGUsdCl7dHx8KHQ9dGhpcy5wb3NpdGlvbik7dmFyIGk9ImFic29sdXRlIj09PWU/MTotMSxzPXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6dC50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmkrdGhpcy5vZmZzZXQucGFyZW50LnRvcCppLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcDpzPzA6dGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCkqaSxsZWZ0OnQubGVmdCt0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0KmkrdGhpcy5vZmZzZXQucGFyZW50LmxlZnQqaS0oImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0OnM/MDp0aGlzLm9mZnNldC5zY3JvbGwubGVmdCkqaX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuLGEsbz10aGlzLm9wdGlvbnMscj10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKSxoPWUucGFnZVgsbD1lLnBhZ2VZO3JldHVybiByJiZ0aGlzLm9mZnNldC5zY3JvbGx8fCh0aGlzLm9mZnNldC5zY3JvbGw9e3RvcDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX0pLHQmJih0aGlzLmNvbnRhaW5tZW50JiYodGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj8ocz10aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpLGk9W3RoaXMuY29udGFpbm1lbnRbMF0rcy5sZWZ0LHRoaXMuY29udGFpbm1lbnRbMV0rcy50b3AsdGhpcy5jb250YWlubWVudFsyXStzLmxlZnQsdGhpcy5jb250YWlubWVudFszXStzLnRvcF0pOmk9dGhpcy5jb250YWlubWVudCxlLnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8aVswXSYmKGg9aVswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSxlLnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDxpWzFdJiYobD1pWzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksZS5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PmlbMl0mJihoPWlbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksZS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+aVszXSYmKGw9aVszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxvLmdyaWQmJihuPW8uZ3JpZFsxXT90aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgobC10aGlzLm9yaWdpbmFsUGFnZVkpL28uZ3JpZFsxXSkqby5ncmlkWzFdOnRoaXMub3JpZ2luYWxQYWdlWSxsPWk/bi10aGlzLm9mZnNldC5jbGljay50b3A+PWlbMV18fG4tdGhpcy5vZmZzZXQuY2xpY2sudG9wPmlbM10/bjpuLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49aVsxXT9uLW8uZ3JpZFsxXTpuK28uZ3JpZFsxXTpuLGE9by5ncmlkWzBdP3RoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChoLXRoaXMub3JpZ2luYWxQYWdlWCkvby5ncmlkWzBdKSpvLmdyaWRbMF06dGhpcy5vcmlnaW5hbFBhZ2VYLGg9aT9hLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PWlbMF18fGEtdGhpcy5vZmZzZXQuY2xpY2subGVmdD5pWzJdP2E6YS10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj1pWzBdP2Etby5ncmlkWzBdOmErby5ncmlkWzBdOmEpLCJ5Ij09PW8uYXhpcyYmKGg9dGhpcy5vcmlnaW5hbFBhZ2VYKSwieCI9PT1vLmF4aXMmJihsPXRoaXMub3JpZ2luYWxQYWdlWSkpLHt0b3A6bC10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwudG9wOnI/MDp0aGlzLm9mZnNldC5zY3JvbGwudG9wKSxsZWZ0OmgtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQ6cj8wOnRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0KX19LF9jbGVhcjpmdW5jdGlvbigpe3RoaXMuaGVscGVyLnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSx0aGlzLmhlbHBlclswXT09PXRoaXMuZWxlbWVudFswXXx8dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsfHx0aGlzLmhlbHBlci5yZW1vdmUoKSx0aGlzLmhlbHBlcj1udWxsLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSx0aGlzLmRlc3Ryb3lPbkNsZWFyJiZ0aGlzLmRlc3Ryb3koKX0sX25vcm1hbGl6ZVJpZ2h0Qm90dG9tOmZ1bmN0aW9uKCl7InkiIT09dGhpcy5vcHRpb25zLmF4aXMmJiJhdXRvIiE9PXRoaXMuaGVscGVyLmNzcygicmlnaHQiKSYmKHRoaXMuaGVscGVyLndpZHRoKHRoaXMuaGVscGVyLndpZHRoKCkpLHRoaXMuaGVscGVyLmNzcygicmlnaHQiLCJhdXRvIikpLCJ4IiE9PXRoaXMub3B0aW9ucy5heGlzJiYiYXV0byIhPT10aGlzLmhlbHBlci5jc3MoImJvdHRvbSIpJiYodGhpcy5oZWxwZXIuaGVpZ2h0KHRoaXMuaGVscGVyLmhlaWdodCgpKSx0aGlzLmhlbHBlci5jc3MoImJvdHRvbSIsImF1dG8iKSl9LF90cmlnZ2VyOmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gcz1zfHx0aGlzLl91aUhhc2goKSxlLnVpLnBsdWdpbi5jYWxsKHRoaXMsdCxbaSxzLHRoaXNdLCEwKSwvXihkcmFnfHN0YXJ0fHN0b3ApLy50ZXN0KHQpJiYodGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSxzLm9mZnNldD10aGlzLnBvc2l0aW9uQWJzKSxlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCh0aGlzLHQsaSxzKX0scGx1Z2luczp7fSxfdWlIYXNoOmZ1bmN0aW9uKCl7cmV0dXJue2hlbHBlcjp0aGlzLmhlbHBlcixwb3NpdGlvbjp0aGlzLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9uLG9mZnNldDp0aGlzLnBvc2l0aW9uQWJzfX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsImNvbm5lY3RUb1NvcnRhYmxlIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUuZXh0ZW5kKHt9LGkse2l0ZW06cy5lbGVtZW50fSk7cy5zb3J0YWJsZXM9W10sZShzLm9wdGlvbnMuY29ubmVjdFRvU29ydGFibGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLnNvcnRhYmxlKCJpbnN0YW5jZSIpO2kmJiFpLm9wdGlvbnMuZGlzYWJsZWQmJihzLnNvcnRhYmxlcy5wdXNoKGkpLGkucmVmcmVzaFBvc2l0aW9ucygpLGkuX3RyaWdnZXIoImFjdGl2YXRlIix0LG4pKX0pfSxzdG9wOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lLmV4dGVuZCh7fSxpLHtpdGVtOnMuZWxlbWVudH0pO3MuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXNPdmVyPyhlLmlzT3Zlcj0wLHMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxlLmNhbmNlbEhlbHBlclJlbW92YWw9ITEsZS5fc3RvcmVkQ1NTPXtwb3NpdGlvbjplLnBsYWNlaG9sZGVyLmNzcygicG9zaXRpb24iKSx0b3A6ZS5wbGFjZWhvbGRlci5jc3MoInRvcCIpLGxlZnQ6ZS5wbGFjZWhvbGRlci5jc3MoImxlZnQiKX0sZS5fbW91c2VTdG9wKHQpLGUub3B0aW9ucy5oZWxwZXI9ZS5vcHRpb25zLl9oZWxwZXIpOihlLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsZS5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsdCxuKSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7ZS5lYWNoKHMuc29ydGFibGVzLGZ1bmN0aW9uKCl7dmFyIG49ITEsYT10aGlzO2EucG9zaXRpb25BYnM9cy5wb3NpdGlvbkFicyxhLmhlbHBlclByb3BvcnRpb25zPXMuaGVscGVyUHJvcG9ydGlvbnMsYS5vZmZzZXQuY2xpY2s9cy5vZmZzZXQuY2xpY2ssYS5faW50ZXJzZWN0c1dpdGgoYS5jb250YWluZXJDYWNoZSkmJihuPSEwLGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uQWJzPXMucG9zaXRpb25BYnMsdGhpcy5oZWxwZXJQcm9wb3J0aW9ucz1zLmhlbHBlclByb3BvcnRpb25zLHRoaXMub2Zmc2V0LmNsaWNrPXMub2Zmc2V0LmNsaWNrLHRoaXMhPT1hJiZ0aGlzLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmNvbnRhaW5lckNhY2hlKSYmZS5jb250YWlucyhhLmVsZW1lbnRbMF0sdGhpcy5lbGVtZW50WzBdKSYmKG49ITEpLG4KfSkpLG4/KGEuaXNPdmVyfHwoYS5pc092ZXI9MSxzLl9wYXJlbnQ9aS5oZWxwZXIucGFyZW50KCksYS5jdXJyZW50SXRlbT1pLmhlbHBlci5hcHBlbmRUbyhhLmVsZW1lbnQpLmRhdGEoInVpLXNvcnRhYmxlLWl0ZW0iLCEwKSxhLm9wdGlvbnMuX2hlbHBlcj1hLm9wdGlvbnMuaGVscGVyLGEub3B0aW9ucy5oZWxwZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5oZWxwZXJbMF19LHQudGFyZ2V0PWEuY3VycmVudEl0ZW1bMF0sYS5fbW91c2VDYXB0dXJlKHQsITApLGEuX21vdXNlU3RhcnQodCwhMCwhMCksYS5vZmZzZXQuY2xpY2sudG9wPXMub2Zmc2V0LmNsaWNrLnRvcCxhLm9mZnNldC5jbGljay5sZWZ0PXMub2Zmc2V0LmNsaWNrLmxlZnQsYS5vZmZzZXQucGFyZW50LmxlZnQtPXMub2Zmc2V0LnBhcmVudC5sZWZ0LWEub2Zmc2V0LnBhcmVudC5sZWZ0LGEub2Zmc2V0LnBhcmVudC50b3AtPXMub2Zmc2V0LnBhcmVudC50b3AtYS5vZmZzZXQucGFyZW50LnRvcCxzLl90cmlnZ2VyKCJ0b1NvcnRhYmxlIix0KSxzLmRyb3BwZWQ9YS5lbGVtZW50LGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMucmVmcmVzaFBvc2l0aW9ucygpfSkscy5jdXJyZW50SXRlbT1zLmVsZW1lbnQsYS5mcm9tT3V0c2lkZT1zKSxhLmN1cnJlbnRJdGVtJiYoYS5fbW91c2VEcmFnKHQpLGkucG9zaXRpb249YS5wb3NpdGlvbikpOmEuaXNPdmVyJiYoYS5pc092ZXI9MCxhLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsYS5vcHRpb25zLl9yZXZlcnQ9YS5vcHRpb25zLnJldmVydCxhLm9wdGlvbnMucmV2ZXJ0PSExLGEuX3RyaWdnZXIoIm91dCIsdCxhLl91aUhhc2goYSkpLGEuX21vdXNlU3RvcCh0LCEwKSxhLm9wdGlvbnMucmV2ZXJ0PWEub3B0aW9ucy5fcmV2ZXJ0LGEub3B0aW9ucy5oZWxwZXI9YS5vcHRpb25zLl9oZWxwZXIsYS5wbGFjZWhvbGRlciYmYS5wbGFjZWhvbGRlci5yZW1vdmUoKSxpLmhlbHBlci5hcHBlbmRUbyhzLl9wYXJlbnQpLHMuX3JlZnJlc2hPZmZzZXRzKHQpLGkucG9zaXRpb249cy5fZ2VuZXJhdGVQb3NpdGlvbih0LCEwKSxzLl90cmlnZ2VyKCJmcm9tU29ydGFibGUiLHQpLHMuZHJvcHBlZD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX0pKX0pfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwiY3Vyc29yIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUoImJvZHkiKSxhPXMub3B0aW9ucztuLmNzcygiY3Vyc29yIikmJihhLl9jdXJzb3I9bi5jc3MoImN1cnNvciIpKSxuLmNzcygiY3Vyc29yIixhLmN1cnNvcil9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9jdXJzb3ImJmUoImJvZHkiKS5jc3MoImN1cnNvciIsbi5fY3Vyc29yKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsIm9wYWNpdHkiLHtzdGFydDpmdW5jdGlvbih0LGkscyl7dmFyIG49ZShpLmhlbHBlciksYT1zLm9wdGlvbnM7bi5jc3MoIm9wYWNpdHkiKSYmKGEuX29wYWNpdHk9bi5jc3MoIm9wYWNpdHkiKSksbi5jc3MoIm9wYWNpdHkiLGEub3BhY2l0eSl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9vcGFjaXR5JiZlKGkuaGVscGVyKS5jc3MoIm9wYWNpdHkiLG4uX29wYWNpdHkpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic2Nyb2xsIix7c3RhcnQ6ZnVuY3Rpb24oZSx0LGkpe2kuc2Nyb2xsUGFyZW50Tm90SGlkZGVufHwoaS5zY3JvbGxQYXJlbnROb3RIaWRkZW49aS5oZWxwZXIuc2Nyb2xsUGFyZW50KCExKSksaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0hPT1pLmRvY3VtZW50WzBdJiYiSFRNTCIhPT1pLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXS50YWdOYW1lJiYoaS5vdmVyZmxvd09mZnNldD1pLnNjcm9sbFBhcmVudE5vdEhpZGRlbi5vZmZzZXQoKSl9LGRyYWc6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucyxhPSExLG89cy5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0scj1zLmRvY3VtZW50WzBdO28hPT1yJiYiSFRNTCIhPT1vLnRhZ05hbWU/KG4uYXhpcyYmIngiPT09bi5heGlzfHwocy5vdmVyZmxvd09mZnNldC50b3Arby5vZmZzZXRIZWlnaHQtdC5wYWdlWTxuLnNjcm9sbFNlbnNpdGl2aXR5P28uc2Nyb2xsVG9wPWE9by5zY3JvbGxUb3Arbi5zY3JvbGxTcGVlZDp0LnBhZ2VZLXMub3ZlcmZsb3dPZmZzZXQudG9wPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihvLnNjcm9sbFRvcD1hPW8uc2Nyb2xsVG9wLW4uc2Nyb2xsU3BlZWQpKSxuLmF4aXMmJiJ5Ij09PW4uYXhpc3x8KHMub3ZlcmZsb3dPZmZzZXQubGVmdCtvLm9mZnNldFdpZHRoLXQucGFnZVg8bi5zY3JvbGxTZW5zaXRpdml0eT9vLnNjcm9sbExlZnQ9YT1vLnNjcm9sbExlZnQrbi5zY3JvbGxTcGVlZDp0LnBhZ2VYLXMub3ZlcmZsb3dPZmZzZXQubGVmdDxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoby5zY3JvbGxMZWZ0PWE9by5zY3JvbGxMZWZ0LW4uc2Nyb2xsU3BlZWQpKSk6KG4uYXhpcyYmIngiPT09bi5heGlzfHwodC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpLW4uc2Nyb2xsU3BlZWQpOmUod2luZG93KS5oZWlnaHQoKS0odC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpKTxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoYT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpK24uc2Nyb2xsU3BlZWQpKSksbi5heGlzJiYieSI9PT1uLmF4aXN8fCh0LnBhZ2VYLWUocikuc2Nyb2xsTGVmdCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbExlZnQoZShyKS5zY3JvbGxMZWZ0KCktbi5zY3JvbGxTcGVlZCk6ZSh3aW5kb3cpLndpZHRoKCktKHQucGFnZVgtZShyKS5zY3JvbGxMZWZ0KCkpPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihhPWUocikuc2Nyb2xsTGVmdChlKHIpLnNjcm9sbExlZnQoKStuLnNjcm9sbFNwZWVkKSkpKSxhIT09ITEmJmUudWkuZGRtYW5hZ2VyJiYhbi5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyhzLHQpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic25hcCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1zLm9wdGlvbnM7cy5zbmFwRWxlbWVudHM9W10sZShuLnNuYXAuY29uc3RydWN0b3IhPT1TdHJpbmc/bi5zbmFwLml0ZW1zfHwiOmRhdGEodWktZHJhZ2dhYmxlKSI6bi5zbmFwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxpPXQub2Zmc2V0KCk7dGhpcyE9PXMuZWxlbWVudFswXSYmcy5zbmFwRWxlbWVudHMucHVzaCh7aXRlbTp0aGlzLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOmkudG9wLGxlZnQ6aS5sZWZ0fSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7dmFyIG4sYSxvLHIsaCxsLHUsZCxjLHAsZj1zLm9wdGlvbnMsbT1mLnNuYXBUb2xlcmFuY2UsZz1pLm9mZnNldC5sZWZ0LHY9ZytzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLHk9aS5vZmZzZXQudG9wLGI9eStzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodDtmb3IoYz1zLnNuYXBFbGVtZW50cy5sZW5ndGgtMTtjPj0wO2MtLSloPXMuc25hcEVsZW1lbnRzW2NdLmxlZnQtcy5tYXJnaW5zLmxlZnQsbD1oK3Muc25hcEVsZW1lbnRzW2NdLndpZHRoLHU9cy5zbmFwRWxlbWVudHNbY10udG9wLXMubWFyZ2lucy50b3AsZD11K3Muc25hcEVsZW1lbnRzW2NdLmhlaWdodCxoLW0+dnx8Zz5sK218fHUtbT5ifHx5PmQrbXx8IWUuY29udGFpbnMocy5zbmFwRWxlbWVudHNbY10uaXRlbS5vd25lckRvY3VtZW50LHMuc25hcEVsZW1lbnRzW2NdLml0ZW0pPyhzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZyYmcy5vcHRpb25zLnNuYXAucmVsZWFzZSYmcy5vcHRpb25zLnNuYXAucmVsZWFzZS5jYWxsKHMuZWxlbWVudCx0LGUuZXh0ZW5kKHMuX3VpSGFzaCgpLHtzbmFwSXRlbTpzLnNuYXBFbGVtZW50c1tjXS5pdGVtfSkpLHMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nPSExKTooImlubmVyIiE9PWYuc25hcE1vZGUmJihuPW0+PU1hdGguYWJzKHUtYiksYT1tPj1NYXRoLmFicyhkLXkpLG89bT49TWF0aC5hYnMoaC12KSxyPW0+PU1hdGguYWJzKGwtZyksbiYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDp1LXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGxlZnQ6MH0pLnRvcCksYSYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpkLGxlZnQ6MH0pLnRvcCksbyYmKGkucG9zaXRpb24ubGVmdD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Omgtcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsfSkubGVmdCkpLHA9bnx8YXx8b3x8ciwib3V0ZXIiIT09Zi5zbmFwTW9kZSYmKG49bT49TWF0aC5hYnModS15KSxhPW0+PU1hdGguYWJzKGQtYiksbz1tPj1NYXRoLmFicyhoLWcpLHI9bT49TWF0aC5hYnMobC12KSxuJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOnUsbGVmdDowfSkudG9wKSxhJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmQtcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVmdDowfSkudG9wKSxvJiYoaS5wb3NpdGlvbi5sZWZ0PXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsLXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGh9KS5sZWZ0KSksIXMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nJiYobnx8YXx8b3x8cnx8cCkmJnMub3B0aW9ucy5zbmFwLnNuYXAmJnMub3B0aW9ucy5zbmFwLnNuYXAuY2FsbChzLmVsZW1lbnQsdCxlLmV4dGVuZChzLl91aUhhc2goKSx7c25hcEl0ZW06cy5zbmFwRWxlbWVudHNbY10uaXRlbX0pKSxzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZz1ufHxhfHxvfHxyfHxwKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInN0YWNrIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9cy5vcHRpb25zLG89ZS5tYWtlQXJyYXkoZShhLnN0YWNrKSkuc29ydChmdW5jdGlvbih0LGkpe3JldHVybihwYXJzZUludChlKHQpLmNzcygiekluZGV4IiksMTApfHwwKS0ocGFyc2VJbnQoZShpKS5jc3MoInpJbmRleCIpLDEwKXx8MCl9KTtvLmxlbmd0aCYmKG49cGFyc2VJbnQoZShvWzBdKS5jc3MoInpJbmRleCIpLDEwKXx8MCxlKG8pLmVhY2goZnVuY3Rpb24odCl7ZSh0aGlzKS5jc3MoInpJbmRleCIsbit0KX0pLHRoaXMuY3NzKCJ6SW5kZXgiLG4rby5sZW5ndGgpKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInpJbmRleCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lKGkuaGVscGVyKSxhPXMub3B0aW9ucztuLmNzcygiekluZGV4IikmJihhLl96SW5kZXg9bi5jc3MoInpJbmRleCIpKSxuLmNzcygiekluZGV4IixhLnpJbmRleCl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl96SW5kZXgmJmUoaS5oZWxwZXIpLmNzcygiekluZGV4IixuLl96SW5kZXgpfX0pLGUudWkuZHJhZ2dhYmxlLGUud2lkZ2V0KCJ1aS5kcm9wcGFibGUiLHt2ZXJzaW9uOiIxLjExLjQiLHdpZGdldEV2ZW50UHJlZml4OiJkcm9wIixvcHRpb25zOnthY2NlcHQ6IioiLGFjdGl2ZUNsYXNzOiExLGFkZENsYXNzZXM6ITAsZ3JlZWR5OiExLGhvdmVyQ2xhc3M6ITEsc2NvcGU6ImRlZmF1bHQiLHRvbGVyYW5jZToiaW50ZXJzZWN0IixhY3RpdmF0ZTpudWxsLGRlYWN0aXZhdGU6bnVsbCxkcm9wOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzLm9wdGlvbnMscz1pLmFjY2VwdDt0aGlzLmlzb3Zlcj0hMSx0aGlzLmlzb3V0PSEwLHRoaXMuYWNjZXB0PWUuaXNGdW5jdGlvbihzKT9zOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHMpfSx0aGlzLnByb3BvcnRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9YXJndW1lbnRzWzBdLHZvaWQgMCk6dD90OnQ9e3dpZHRoOnRoaXMuZWxlbWVudFswXS5vZmZzZXRXaWR0aCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLm9mZnNldEhlaWdodH19LHRoaXMuX2FkZFRvTWFuYWdlcihpLnNjb3BlKSxpLmFkZENsYXNzZXMmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJvcHBhYmxlIil9LF9hZGRUb01hbmFnZXI6ZnVuY3Rpb24odCl7ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XT1lLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdfHxbXSxlLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdLnB1c2godGhpcyl9LF9zcGxpY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7ZS5sZW5ndGg+dDt0KyspZVt0XT09PXRoaXMmJmUuc3BsaWNlKHQsMSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZSh0KSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyb3BwYWJsZSB1aS1kcm9wcGFibGUtZGlzYWJsZWQiKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe2lmKCJhY2NlcHQiPT09dCl0aGlzLmFjY2VwdD1lLmlzRnVuY3Rpb24oaSk/aTpmdW5jdGlvbihlKXtyZXR1cm4gZS5pcyhpKX07ZWxzZSBpZigic2NvcGUiPT09dCl7dmFyIHM9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZShzKSx0aGlzLl9hZGRUb01hbmFnZXIoaSl9dGhpcy5fc3VwZXIodCxpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7dGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKSxpJiZ0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsdCx0aGlzLnVpKGkpKX0sX2RlYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9ZS51aS5kZG1hbmFnZXIuY3VycmVudDt0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLGkmJnRoaXMuX3RyaWdnZXIoImRlYWN0aXZhdGUiLHQsdGhpcy51aShpKSl9LF9vdmVyOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7aSYmKGkuY3VycmVudEl0ZW18fGkuZWxlbWVudClbMF0hPT10aGlzLmVsZW1lbnRbMF0mJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGkuY3VycmVudEl0ZW18fGkuZWxlbWVudCkmJih0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzKSx0aGlzLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMudWkoaSkpKX0sX291dDpmdW5jdGlvbih0KXt2YXIgaT1lLnVpLmRkbWFuYWdlci5jdXJyZW50O2kmJihpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpJiYodGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigib3V0Iix0LHRoaXMudWkoaSkpKX0sX2Ryb3A6ZnVuY3Rpb24odCxpKXt2YXIgcz1pfHxlLnVpLmRkbWFuYWdlci5jdXJyZW50LG49ITE7cmV0dXJuIHMmJihzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdPyh0aGlzLmVsZW1lbnQuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLm5vdCgiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKTtyZXR1cm4gaS5vcHRpb25zLmdyZWVkeSYmIWkub3B0aW9ucy5kaXNhYmxlZCYmaS5vcHRpb25zLnNjb3BlPT09cy5vcHRpb25zLnNjb3BlJiZpLmFjY2VwdC5jYWxsKGkuZWxlbWVudFswXSxzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpJiZlLnVpLmludGVyc2VjdChzLGUuZXh0ZW5kKGkse29mZnNldDppLmVsZW1lbnQub2Zmc2V0KCl9KSxpLm9wdGlvbnMudG9sZXJhbmNlLHQpPyhuPSEwLCExKTp2b2lkIDB9KSxuPyExOnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHMuY3VycmVudEl0ZW18fHMuZWxlbWVudCk/KHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyksdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigiZHJvcCIsdCx0aGlzLnVpKHMpKSx0aGlzLmVsZW1lbnQpOiExKTohMX0sdWk6ZnVuY3Rpb24oZSl7cmV0dXJue2RyYWdnYWJsZTplLmN1cnJlbnRJdGVtfHxlLmVsZW1lbnQsaGVscGVyOmUuaGVscGVyLHBvc2l0aW9uOmUucG9zaXRpb24sb2Zmc2V0OmUucG9zaXRpb25BYnN9fX0pLGUudWkuaW50ZXJzZWN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSl7cmV0dXJuIGU+PXQmJnQraT5lfXJldHVybiBmdW5jdGlvbih0LGkscyxuKXtpZighaS5vZmZzZXQpcmV0dXJuITE7dmFyIGE9KHQucG9zaXRpb25BYnN8fHQucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQrdC5tYXJnaW5zLmxlZnQsbz0odC5wb3NpdGlvbkFic3x8dC5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wK3QubWFyZ2lucy50b3Ascj1hK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsaD1vK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGw9aS5vZmZzZXQubGVmdCx1PWkub2Zmc2V0LnRvcCxkPWwraS5wcm9wb3J0aW9ucygpLndpZHRoLGM9dStpLnByb3BvcnRpb25zKCkuaGVpZ2h0O3N3aXRjaChzKXtjYXNlImZpdCI6cmV0dXJuIGE+PWwmJmQ+PXImJm8+PXUmJmM+PWg7Y2FzZSJpbnRlcnNlY3QiOnJldHVybiBhK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMj5sJiZkPnItdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC8yJiZvK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI+dSYmYz5oLXQuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI7Y2FzZSJwb2ludGVyIjpyZXR1cm4gZShuLnBhZ2VZLHUsaS5wcm9wb3J0aW9ucygpLmhlaWdodCkmJmUobi5wYWdlWCxsLGkucHJvcG9ydGlvbnMoKS53aWR0aCk7Y2FzZSJ0b3VjaCI6cmV0dXJuKG8+PXUmJmM+PW98fGg+PXUmJmM+PWh8fHU+byYmaD5jKSYmKGE+PWwmJmQ+PWF8fHI+PWwmJmQ+PXJ8fGw+YSYmcj5kKTtkZWZhdWx0OnJldHVybiExfX19KCksZS51aS5kZG1hbmFnZXI9e2N1cnJlbnQ6bnVsbCxkcm9wcGFibGVzOnsiZGVmYXVsdCI6W119LHByZXBhcmVPZmZzZXRzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhPWUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sbz1pP2kudHlwZTpudWxsLHI9KHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLmFkZEJhY2soKTtlOmZvcihzPTA7YS5sZW5ndGg+cztzKyspaWYoIShhW3NdLm9wdGlvbnMuZGlzYWJsZWR8fHQmJiFhW3NdLmFjY2VwdC5jYWxsKGFbc10uZWxlbWVudFswXSx0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpKSl7Zm9yKG49MDtyLmxlbmd0aD5uO24rKylpZihyW25dPT09YVtzXS5lbGVtZW50WzBdKXthW3NdLnByb3BvcnRpb25zKCkuaGVpZ2h0PTA7Y29udGludWUgZX1hW3NdLnZpc2libGU9Im5vbmUiIT09YVtzXS5lbGVtZW50LmNzcygiZGlzcGxheSIpLGFbc10udmlzaWJsZSYmKCJtb3VzZWRvd24iPT09byYmYVtzXS5fYWN0aXZhdGUuY2FsbChhW3NdLGkpLGFbc10ub2Zmc2V0PWFbc10uZWxlbWVudC5vZmZzZXQoKSxhW3NdLnByb3BvcnRpb25zKHt3aWR0aDphW3NdLmVsZW1lbnRbMF0ub2Zmc2V0V2lkdGgsaGVpZ2h0OmFbc10uZWxlbWVudFswXS5vZmZzZXRIZWlnaHR9KSl9fSxkcm9wOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ITE7cmV0dXJuIGUuZWFjaCgoZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0Lm9wdGlvbnMuc2NvcGVdfHxbXSkuc2xpY2UoKSxmdW5jdGlvbigpe3RoaXMub3B0aW9ucyYmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMudmlzaWJsZSYmZS51aS5pbnRlcnNlY3QodCx0aGlzLHRoaXMub3B0aW9ucy50b2xlcmFuY2UsaSkmJihzPXRoaXMuX2Ryb3AuY2FsbCh0aGlzLGkpfHxzKSwhdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkmJih0aGlzLmlzb3V0PSEwLHRoaXMuaXNvdmVyPSExLHRoaXMuX2RlYWN0aXZhdGUuY2FsbCh0aGlzLGkpKSl9KSxzfSxkcmFnU3RhcnQ6ZnVuY3Rpb24odCxpKXt0LmVsZW1lbnQucGFyZW50c1VudGlsKCJib2R5IikuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIsZnVuY3Rpb24oKXt0Lm9wdGlvbnMucmVmcmVzaFBvc2l0aW9uc3x8ZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModCxpKX0pfSxkcmFnOmZ1bmN0aW9uKHQsaSl7dC5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMmJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHQsaSksZS5lYWNoKGUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sZnVuY3Rpb24oKXtpZighdGhpcy5vcHRpb25zLmRpc2FibGVkJiYhdGhpcy5ncmVlZHlDaGlsZCYmdGhpcy52aXNpYmxlKXt2YXIgcyxuLGEsbz1lLnVpLmludGVyc2VjdCh0LHRoaXMsdGhpcy5vcHRpb25zLnRvbGVyYW5jZSxpKSxyPSFvJiZ0aGlzLmlzb3Zlcj8iaXNvdXQiOm8mJiF0aGlzLmlzb3Zlcj8iaXNvdmVyIjpudWxsO3ImJih0aGlzLm9wdGlvbnMuZ3JlZWR5JiYobj10aGlzLm9wdGlvbnMuc2NvcGUsYT10aGlzLmVsZW1lbnQucGFyZW50cygiOmRhdGEodWktZHJvcHBhYmxlKSIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKS5vcHRpb25zLnNjb3BlPT09bn0pLGEubGVuZ3RoJiYocz1lKGFbMF0pLmRyb3BwYWJsZSgiaW5zdGFuY2UiKSxzLmdyZWVkeUNoaWxkPSJpc292ZXIiPT09cikpLHMmJiJpc292ZXIiPT09ciYmKHMuaXNvdmVyPSExLHMuaXNvdXQ9ITAscy5fb3V0LmNhbGwocyxpKSksdGhpc1tyXT0hMCx0aGlzWyJpc291dCI9PT1yPyJpc292ZXIiOiJpc291dCJdPSExLHRoaXNbImlzb3ZlciI9PT1yPyJfb3ZlciI6Il9vdXQiXS5jYWxsKHRoaXMsaSkscyYmImlzb3V0Ij09PXImJihzLmlzb3V0PSExLHMuaXNvdmVyPSEwLHMuX292ZXIuY2FsbChzLGkpKSl9fSl9LGRyYWdTdG9wOmZ1bmN0aW9uKHQsaSl7dC5lbGVtZW50LnBhcmVudHNVbnRpbCgiYm9keSIpLnVuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIpLHQub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zfHxlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0LGkpfX0sZS51aS5kcm9wcGFibGUsZS53aWRnZXQoInVpLnJlc2l6YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoicmVzaXplIixvcHRpb25zOnthbHNvUmVzaXplOiExLGFuaW1hdGU6ITEsYW5pbWF0ZUR1cmF0aW9uOiJzbG93IixhbmltYXRlRWFzaW5nOiJzd2luZyIsYXNwZWN0UmF0aW86ITEsYXV0b0hpZGU6ITEsY29udGFpbm1lbnQ6ITEsZ2hvc3Q6ITEsZ3JpZDohMSxoYW5kbGVzOiJlLHMsc2UiLGhlbHBlcjohMSxtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxMCxtaW5XaWR0aDoxMCx6SW5kZXg6OTAscmVzaXplOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9udW06ZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfHwwfSxfaXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUsMTApKX0sX2hhc1Njcm9sbDpmdW5jdGlvbih0LGkpe2lmKCJoaWRkZW4iPT09ZSh0KS5jc3MoIm92ZXJmbG93IikpcmV0dXJuITE7dmFyIHM9aSYmImxlZnQiPT09aT8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCIsbj0hMTtyZXR1cm4gdFtzXT4wPyEwOih0W3NdPTEsbj10W3NdPjAsdFtzXT0wLG4pfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sYSxvPXRoaXMscj10aGlzLm9wdGlvbnM7aWYodGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKSxlLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFyLmFzcGVjdFJhdGlvLGFzcGVjdFJhdGlvOnIuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCxfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czpbXSxfaGVscGVyOnIuaGVscGVyfHxyLmdob3N0fHxyLmFuaW1hdGU/ci5oZWxwZXJ8fCJ1aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSksdGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9eKGNhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0dG9ufGltZykkL2kpJiYodGhpcy5lbGVtZW50LndyYXAoZSgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOnRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIiksd2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksdG9wOnRoaXMuZWxlbWVudC5jc3MoInRvcCIpLGxlZnQ6dGhpcy5lbGVtZW50LmNzcygibGVmdCIpfSkpLHRoaXMuZWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgidWktcmVzaXphYmxlIix0aGlzLmVsZW1lbnQucmVzaXphYmxlKCJpbnN0YW5jZSIpKSx0aGlzLmVsZW1lbnRJc1dyYXBwZXI9ITAsdGhpcy5lbGVtZW50LmNzcyh7bWFyZ2luTGVmdDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5Ub3A6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5SaWdodDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpblJpZ2h0IiksbWFyZ2luQm90dG9tOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIil9KSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCxtYXJnaW5SaWdodDowLG1hcmdpbkJvdHRvbTowfSksdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlPXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCJub25lIiksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7cG9zaXRpb246InN0YXRpYyIsem9vbToxLGRpc3BsYXk6ImJsb2NrIn0pKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbjp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbiIpfSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5oYW5kbGVzPXIuaGFuZGxlc3x8KGUoIi51aS1yZXNpemFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aD97bjoiLnVpLXJlc2l6YWJsZS1uIixlOiIudWktcmVzaXphYmxlLWUiLHM6Ii51aS1yZXNpemFibGUtcyIsdzoiLnVpLXJlc2l6YWJsZS13IixzZToiLnVpLXJlc2l6YWJsZS1zZSIsc3c6Ii51aS1yZXNpemFibGUtc3ciLG5lOiIudWktcmVzaXphYmxlLW5lIixudzoiLnVpLXJlc2l6YWJsZS1udyJ9OiJlLHMsc2UiKSx0aGlzLl9oYW5kbGVzPWUoKSx0aGlzLmhhbmRsZXMuY29uc3RydWN0b3I9PT1TdHJpbmcpZm9yKCJhbGwiPT09dGhpcy5oYW5kbGVzJiYodGhpcy5oYW5kbGVzPSJuLGUscyx3LHNlLHN3LG5lLG53IiksdD10aGlzLmhhbmRsZXMuc3BsaXQoIiwiKSx0aGlzLmhhbmRsZXM9e30saT0wO3QubGVuZ3RoPmk7aSsrKXM9ZS50cmltKHRbaV0pLGE9InVpLXJlc2l6YWJsZS0iK3Msbj1lKCI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlICIrYSsiJz48L2Rpdj4iKSxuLmNzcyh7ekluZGV4OnIuekluZGV4fSksInNlIj09PXMmJm4uYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKSx0aGlzLmhhbmRsZXNbc109Ii51aS1yZXNpemFibGUtIitzLHRoaXMuZWxlbWVudC5hcHBlbmQobik7dGhpcy5fcmVuZGVyQXhpcz1mdW5jdGlvbih0KXt2YXIgaSxzLG4sYTt0PXR8fHRoaXMuZWxlbWVudDtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpdGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yPT09U3RyaW5nP3RoaXMuaGFuZGxlc1tpXT10aGlzLmVsZW1lbnQuY2hpbGRyZW4odGhpcy5oYW5kbGVzW2ldKS5maXJzdCgpLnNob3coKToodGhpcy5oYW5kbGVzW2ldLmpxdWVyeXx8dGhpcy5oYW5kbGVzW2ldLm5vZGVUeXBlKSYmKHRoaXMuaGFuZGxlc1tpXT1lKHRoaXMuaGFuZGxlc1tpXSksdGhpcy5fb24odGhpcy5oYW5kbGVzW2ldLHttb3VzZWRvd246by5fbW91c2VEb3dufSkpLHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14odGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbikkL2kpJiYocz1lKHRoaXMuaGFuZGxlc1tpXSx0aGlzLmVsZW1lbnQpLGE9L3N3fG5lfG53fHNlfG58cy8udGVzdChpKT9zLm91dGVySGVpZ2h0KCk6cy5vdXRlcldpZHRoKCksbj1bInBhZGRpbmciLC9uZXxud3xuLy50ZXN0KGkpPyJUb3AiOi9zZXxzd3xzLy50ZXN0KGkpPyJCb3R0b20iOi9eZSQvLnRlc3QoaSk/IlJpZ2h0IjoiTGVmdCJdLmpvaW4oIiIpLHQuY3NzKG4sYSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmhhbmRsZXNbaV0pfSx0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKSksdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKXtvLnJlc2l6aW5nfHwodGhpcy5jbGFzc05hbWUmJihuPXRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kpKSxvLmF4aXM9biYmblsxXT9uWzFdOiJzZSIpfSksci5hdXRvSGlkZSYmKHRoaXMuX2hhbmRsZXMuaGlkZSgpLGUodGhpcy5lbGVtZW50KS5hZGRDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIikubW91c2VlbnRlcihmdW5jdGlvbigpe3IuZGlzYWJsZWR8fChlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKSxvLl9oYW5kbGVzLnNob3coKSl9KS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCl7ci5kaXNhYmxlZHx8by5yZXNpemluZ3x8KGUodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLG8uX2hhbmRsZXMuaGlkZSgpKX0pKSx0aGlzLl9tb3VzZUluaXQoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZURlc3Ryb3koKTt2YXIgdCxpPWZ1bmN0aW9uKHQpe2UodCkucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIikucmVtb3ZlRGF0YSgidWktcmVzaXphYmxlIikudW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUoKX07cmV0dXJuIHRoaXMuZWxlbWVudElzV3JhcHBlciYmKGkodGhpcy5lbGVtZW50KSx0PXRoaXMuZWxlbWVudCx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOnQuY3NzKCJwb3NpdGlvbiIpLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOnQuY3NzKCJ0b3AiKSxsZWZ0OnQuY3NzKCJsZWZ0Iil9KS5pbnNlcnRBZnRlcih0KSx0LnJlbW92ZSgpKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSxpKHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj0hMTtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpcz1lKHRoaXMuaGFuZGxlc1tpXSlbMF0sKHM9PT10LnRhcmdldHx8ZS5jb250YWlucyhzLHQudGFyZ2V0KSkmJihuPSEwKTtyZXR1cm4hdGhpcy5vcHRpb25zLmRpc2FibGVkJiZufSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYT10aGlzLm9wdGlvbnMsbz10aGlzLmVsZW1lbnQ7cmV0dXJuIHRoaXMucmVzaXppbmc9ITAsdGhpcy5fcmVuZGVyUHJveHkoKSxpPXRoaXMuX251bSh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSkscz10aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSksYS5jb250YWlubWVudCYmKGkrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLHMrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6aSx0b3A6c30sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6dGhpcy5oZWxwZXIud2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIuaGVpZ2h0KCl9Ont3aWR0aDpvLndpZHRoKCksaGVpZ2h0Om8uaGVpZ2h0KCl9LHRoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6by5vdXRlcldpZHRoKCksaGVpZ2h0Om8ub3V0ZXJIZWlnaHQoKX06e3dpZHRoOm8ud2lkdGgoKSxoZWlnaHQ6by5oZWlnaHQoKX0sdGhpcy5zaXplRGlmZj17d2lkdGg6by5vdXRlcldpZHRoKCktby53aWR0aCgpLGhlaWdodDpvLm91dGVySGVpZ2h0KCktby5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmksdG9wOnN9LHRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OnQucGFnZVgsdG9wOnQucGFnZVl9LHRoaXMuYXNwZWN0UmF0aW89Im51bWJlciI9PXR5cGVvZiBhLmFzcGVjdFJhdGlvP2EuYXNwZWN0UmF0aW86dGhpcy5vcmlnaW5hbFNpemUud2lkdGgvdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0fHwxLG49ZSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKSxlKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIj09PW4/dGhpcy5heGlzKyItcmVzaXplIjpuKSxvLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0YXJ0Iix0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG49dGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24sYT10aGlzLmF4aXMsbz10LnBhZ2VYLW4ubGVmdHx8MCxyPXQucGFnZVktbi50b3B8fDAsaD10aGlzLl9jaGFuZ2VbYV07cmV0dXJuIHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksaD8oaT1oLmFwcGx5KHRoaXMsW3QsbyxyXSksdGhpcy5fdXBkYXRlVmlydHVhbEJvdW5kYXJpZXModC5zaGlmdEtleSksKHRoaXMuX2FzcGVjdFJhdGlvfHx0LnNoaWZ0S2V5KSYmKGk9dGhpcy5fdXBkYXRlUmF0aW8oaSx0KSksaT10aGlzLl9yZXNwZWN0U2l6ZShpLHQpLHRoaXMuX3VwZGF0ZUNhY2hlKGkpLHRoaXMuX3Byb3BhZ2F0ZSgicmVzaXplIix0KSxzPXRoaXMuX2FwcGx5Q2hhbmdlcygpLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLGUuaXNFbXB0eU9iamVjdChzKXx8KHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksdGhpcy5fdHJpZ2dlcigicmVzaXplIix0LHRoaXMudWkoKSksdGhpcy5fYXBwbHlDaGFuZ2VzKCkpLCExKTohMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt0aGlzLnJlc2l6aW5nPSExO3ZhciBpLHMsbixhLG8scixoLGw9dGhpcy5vcHRpb25zLHU9dGhpcztyZXR1cm4gdGhpcy5faGVscGVyJiYoaT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLHM9aS5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoaVswXS5ub2RlTmFtZSksbj1zJiZ0aGlzLl9oYXNTY3JvbGwoaVswXSwibGVmdCIpPzA6dS5zaXplRGlmZi5oZWlnaHQsYT1zPzA6dS5zaXplRGlmZi53aWR0aCxvPXt3aWR0aDp1LmhlbHBlci53aWR0aCgpLWEsaGVpZ2h0OnUuaGVscGVyLmhlaWdodCgpLW59LHI9cGFyc2VJbnQodS5lbGVtZW50LmNzcygibGVmdCIpLDEwKSsodS5wb3NpdGlvbi5sZWZ0LXUub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbCxoPXBhcnNlSW50KHUuZWxlbWVudC5jc3MoInRvcCIpLDEwKSsodS5wb3NpdGlvbi50b3AtdS5vcmlnaW5hbFBvc2l0aW9uLnRvcCl8fG51bGwsbC5hbmltYXRlfHx0aGlzLmVsZW1lbnQuY3NzKGUuZXh0ZW5kKG8se3RvcDpoLGxlZnQ6cn0pKSx1LmhlbHBlci5oZWlnaHQodS5zaXplLmhlaWdodCksdS5oZWxwZXIud2lkdGgodS5zaXplLndpZHRoKSx0aGlzLl9oZWxwZXImJiFsLmFuaW1hdGUmJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLGUoImJvZHkiKS5jc3MoImN1cnNvciIsImF1dG8iKSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpLHRoaXMuX3Byb3BhZ2F0ZSgic3RvcCIsdCksdGhpcy5faGVscGVyJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX0sX3VwZGF0ZVByZXZQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2UG9zaXRpb249e3RvcDp0aGlzLnBvc2l0aW9uLnRvcCxsZWZ0OnRoaXMucG9zaXRpb24ubGVmdH0sdGhpcy5wcmV2U2l6ZT17d2lkdGg6dGhpcy5zaXplLndpZHRoLGhlaWdodDp0aGlzLnNpemUuaGVpZ2h0fX0sX2FwcGx5Q2hhbmdlczpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0aGlzLnBvc2l0aW9uLnRvcCE9PXRoaXMucHJldlBvc2l0aW9uLnRvcCYmKGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLHRoaXMucG9zaXRpb24ubGVmdCE9PXRoaXMucHJldlBvc2l0aW9uLmxlZnQmJihlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIpLHRoaXMuc2l6ZS53aWR0aCE9PXRoaXMucHJldlNpemUud2lkdGgmJihlLndpZHRoPXRoaXMuc2l6ZS53aWR0aCsicHgiKSx0aGlzLnNpemUuaGVpZ2h0IT09dGhpcy5wcmV2U2l6ZS5oZWlnaHQmJihlLmhlaWdodD10aGlzLnNpemUuaGVpZ2h0KyJweCIpLHRoaXMuaGVscGVyLmNzcyhlKSxlfSxfdXBkYXRlVmlydHVhbEJvdW5kYXJpZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYSxvPXRoaXMub3B0aW9uczthPXttaW5XaWR0aDp0aGlzLl9pc051bWJlcihvLm1pbldpZHRoKT9vLm1pbldpZHRoOjAsbWF4V2lkdGg6dGhpcy5faXNOdW1iZXIoby5tYXhXaWR0aCk/by5tYXhXaWR0aDoxLzAsbWluSGVpZ2h0OnRoaXMuX2lzTnVtYmVyKG8ubWluSGVpZ2h0KT9vLm1pbkhlaWdodDowLG1heEhlaWdodDp0aGlzLl9pc051bWJlcihvLm1heEhlaWdodCk/by5tYXhIZWlnaHQ6MS8wfSwodGhpcy5fYXNwZWN0UmF0aW98fGUpJiYodD1hLm1pbkhlaWdodCp0aGlzLmFzcGVjdFJhdGlvLHM9YS5taW5XaWR0aC90aGlzLmFzcGVjdFJhdGlvLGk9YS5tYXhIZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyxuPWEubWF4V2lkdGgvdGhpcy5hc3BlY3RSYXRpbyx0PmEubWluV2lkdGgmJihhLm1pbldpZHRoPXQpLHM+YS5taW5IZWlnaHQmJihhLm1pbkhlaWdodD1zKSxhLm1heFdpZHRoPmkmJihhLm1heFdpZHRoPWkpLGEubWF4SGVpZ2h0Pm4mJihhLm1heEhlaWdodD1uKSksdGhpcy5fdkJvdW5kYXJpZXM9YX0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMuX2lzTnVtYmVyKGUubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9ZS5sZWZ0KSx0aGlzLl9pc051bWJlcihlLnRvcCkmJih0aGlzLnBvc2l0aW9uLnRvcD1lLnRvcCksdGhpcy5faXNOdW1iZXIoZS5oZWlnaHQpJiYodGhpcy5zaXplLmhlaWdodD1lLmhlaWdodCksdGhpcy5faXNOdW1iZXIoZS53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9ZS53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uLGk9dGhpcy5zaXplLHM9dGhpcy5heGlzO3JldHVybiB0aGlzLl9pc051bWJlcihlLmhlaWdodCk/ZS53aWR0aD1lLmhlaWdodCp0aGlzLmFzcGVjdFJhdGlvOnRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiYoZS5oZWlnaHQ9ZS53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSwic3ciPT09cyYmKGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCksZS50b3A9bnVsbCksIm53Ij09PXMmJihlLnRvcD10LnRvcCsoaS5oZWlnaHQtZS5oZWlnaHQpLGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCkpLGV9LF9yZXNwZWN0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl92Qm91bmRhcmllcyxpPXRoaXMuYXhpcyxzPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1heFdpZHRoJiZ0Lm1heFdpZHRoPGUud2lkdGgsbj10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWF4SGVpZ2h0JiZ0Lm1heEhlaWdodDxlLmhlaWdodCxhPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1pbldpZHRoJiZ0Lm1pbldpZHRoPmUud2lkdGgsbz10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWluSGVpZ2h0JiZ0Lm1pbkhlaWdodD5lLmhlaWdodCxyPXRoaXMub3JpZ2luYWxQb3NpdGlvbi5sZWZ0K3RoaXMub3JpZ2luYWxTaXplLndpZHRoLGg9dGhpcy5wb3NpdGlvbi50b3ArdGhpcy5zaXplLmhlaWdodCxsPS9zd3xud3x3Ly50ZXN0KGkpLHU9L253fG5lfG4vLnRlc3QoaSk7cmV0dXJuIGEmJihlLndpZHRoPXQubWluV2lkdGgpLG8mJihlLmhlaWdodD10Lm1pbkhlaWdodCkscyYmKGUud2lkdGg9dC5tYXhXaWR0aCksbiYmKGUuaGVpZ2h0PXQubWF4SGVpZ2h0KSxhJiZsJiYoZS5sZWZ0PXItdC5taW5XaWR0aCkscyYmbCYmKGUubGVmdD1yLXQubWF4V2lkdGgpLG8mJnUmJihlLnRvcD1oLXQubWluSGVpZ2h0KSxuJiZ1JiYoZS50b3A9aC10Lm1heEhlaWdodCksZS53aWR0aHx8ZS5oZWlnaHR8fGUubGVmdHx8IWUudG9wP2Uud2lkdGh8fGUuaGVpZ2h0fHxlLnRvcHx8IWUubGVmdHx8KGUubGVmdD1udWxsKTplLnRvcD1udWxsLGV9LF9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsaT1bXSxzPVtlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSxlLmNzcygiYm9yZGVyUmlnaHRXaWR0aCIpLGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLGUuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKV0sbj1bZS5jc3MoInBhZGRpbmdUb3AiKSxlLmNzcygicGFkZGluZ1JpZ2h0IiksZS5jc3MoInBhZGRpbmdCb3R0b20iKSxlLmNzcygicGFkZGluZ0xlZnQiKV07ND50O3QrKylpW3RdPXBhcnNlSW50KHNbdF0sMTApfHwwLGlbdF0rPXBhcnNlSW50KG5bdF0sMTApfHwwO3JldHVybntoZWlnaHQ6aVswXStpWzJdLHdpZHRoOmlbMV0raVszXX19LF9wcm9wb3J0aW9uYWxseVJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKWZvcih2YXIgZSx0PTAsaT10aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50O3RoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoPnQ7dCsrKWU9dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50c1t0XSx0aGlzLm91dGVyRGltZW5zaW9uc3x8KHRoaXMub3V0ZXJEaW1lbnNpb25zPXRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyhlKSksZS5jc3Moe2hlaWdodDppLmhlaWdodCgpLXRoaXMub3V0ZXJEaW1lbnNpb25zLmhlaWdodHx8MCx3aWR0aDppLndpZHRoKCktdGhpcy5vdXRlckRpbWVuc2lvbnMud2lkdGh8fDB9KX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zO3RoaXMuZWxlbWVudE9mZnNldD10Lm9mZnNldCgpLHRoaXMuX2hlbHBlcj8odGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGUoIjxkaXYgc3R5bGU9J292ZXJmbG93OmhpZGRlbjsnPjwvZGl2PiIpLHRoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLTEsaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLTEscG9zaXRpb246ImFic29sdXRlIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0KyJweCIsdG9wOnRoaXMuZWxlbWVudE9mZnNldC50b3ArInB4Iix6SW5kZXg6KytpLnpJbmRleH0pLHRoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVjdGlvbigpKTp0aGlzLmhlbHBlcj10aGlzLmVsZW1lbnR9LF9jaGFuZ2U6e2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrdH19LHc6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLm9yaWdpbmFsU2l6ZSxzPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57bGVmdDpzLmxlZnQrdCx3aWR0aDppLndpZHRoLXR9fSxuOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz10aGlzLm9yaWdpbmFsU2l6ZSxuPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57dG9wOm4udG9wK2ksaGVpZ2h0OnMuaGVpZ2h0LWl9fSxzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm57aGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhlaWdodCtpfX0sc2U6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbdCxpLHNdKSl9LHN3OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW3QsaSxzXSkpfSxuZTpmdW5jdGlvbih0LGkscyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLFt0LGksc10pKX0sbnc6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcyxbdCxpLHNdKSl9fSxfcHJvcGFnYXRlOmZ1bmN0aW9uKHQsaSl7ZS51aS5wbHVnaW4uY2FsbCh0aGlzLHQsW2ksdGhpcy51aSgpXSksInJlc2l6ZSIhPT10JiZ0aGlzLl90cmlnZ2VyKHQsaSx0aGlzLnVpKCkpfSxwbHVnaW5zOnt9LHVpOmZ1bmN0aW9uKCl7cmV0dXJue29yaWdpbmFsRWxlbWVudDp0aGlzLm9yaWdpbmFsRWxlbWVudCxlbGVtZW50OnRoaXMuZWxlbWVudCxoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixzaXplOnRoaXMuc2l6ZSxvcmlnaW5hbFNpemU6dGhpcy5vcmlnaW5hbFNpemUsb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscz1pLm9wdGlvbnMsbj1pLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLGE9bi5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoblswXS5ub2RlTmFtZSksbz1hJiZpLl9oYXNTY3JvbGwoblswXSwibGVmdCIpPzA6aS5zaXplRGlmZi5oZWlnaHQscj1hPzA6aS5zaXplRGlmZi53aWR0aCxoPXt3aWR0aDppLnNpemUud2lkdGgtcixoZWlnaHQ6aS5zaXplLmhlaWdodC1vfSxsPXBhcnNlSW50KGkuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGkucG9zaXRpb24ubGVmdC1pLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsdT1wYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGkucG9zaXRpb24udG9wLWkub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2kuZWxlbWVudC5hbmltYXRlKGUuZXh0ZW5kKGgsdSYmbD97dG9wOnUsbGVmdDpsfTp7fSkse2R1cmF0aW9uOnMuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzpzLmFuaW1hdGVFYXNpbmcsc3RlcDpmdW5jdGlvbigpe3ZhciBzPXt3aWR0aDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ3aWR0aCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoaS5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJsZWZ0IiksMTApfTtuJiZuLmxlbmd0aCYmZShuWzBdKS5jc3Moe3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSksaS5fdXBkYXRlQ2FjaGUocyksaS5fcHJvcGFnYXRlKCJyZXNpemUiLHQpfX0pfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiY29udGFpbm1lbnQiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbyxyLGg9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksbD1oLm9wdGlvbnMsdT1oLmVsZW1lbnQsZD1sLmNvbnRhaW5tZW50LGM9ZCBpbnN0YW5jZW9mIGU/ZC5nZXQoMCk6L3BhcmVudC8udGVzdChkKT91LnBhcmVudCgpLmdldCgwKTpkO2MmJihoLmNvbnRhaW5lckVsZW1lbnQ9ZShjKSwvZG9jdW1lbnQvLnRlc3QoZCl8fGQ9PT1kb2N1bWVudD8oaC5jb250YWluZXJPZmZzZXQ9e2xlZnQ6MCx0b3A6MH0saC5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfSxoLnBhcmVudERhdGE9e2VsZW1lbnQ6ZShkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOmUoZG9jdW1lbnQpLndpZHRoKCksaGVpZ2h0OmUoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0fSk6KHQ9ZShjKSxpPVtdLGUoWyJUb3AiLCJSaWdodCIsIkxlZnQiLCJCb3R0b20iXSkuZWFjaChmdW5jdGlvbihlLHMpe2lbZV09aC5fbnVtKHQuY3NzKCJwYWRkaW5nIitzKSl9KSxoLmNvbnRhaW5lck9mZnNldD10Lm9mZnNldCgpLGguY29udGFpbmVyUG9zaXRpb249dC5wb3NpdGlvbigpLGguY29udGFpbmVyU2l6ZT17aGVpZ2h0OnQuaW5uZXJIZWlnaHQoKS1pWzNdLHdpZHRoOnQuaW5uZXJXaWR0aCgpLWlbMV19LHM9aC5jb250YWluZXJPZmZzZXQsbj1oLmNvbnRhaW5lclNpemUuaGVpZ2h0LGE9aC5jb250YWluZXJTaXplLndpZHRoLG89aC5faGFzU2Nyb2xsKGMsImxlZnQiKT9jLnNjcm9sbFdpZHRoOmEscj1oLl9oYXNTY3JvbGwoYyk/Yy5zY3JvbGxIZWlnaHQ6bixoLnBhcmVudERhdGE9e2VsZW1lbnQ6YyxsZWZ0OnMubGVmdCx0b3A6cy50b3Asd2lkdGg6byxoZWlnaHQ6cn0pKX0scmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscj1vLm9wdGlvbnMsaD1vLmNvbnRhaW5lck9mZnNldCxsPW8ucG9zaXRpb24sdT1vLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSxkPXt0b3A6MCxsZWZ0OjB9LGM9by5jb250YWluZXJFbGVtZW50LHA9ITA7Y1swXSE9PWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGMuY3NzKCJwb3NpdGlvbiIpKSYmKGQ9aCksbC5sZWZ0PChvLl9oZWxwZXI/aC5sZWZ0OjApJiYoby5zaXplLndpZHRoPW8uc2l6ZS53aWR0aCsoby5faGVscGVyP28ucG9zaXRpb24ubGVmdC1oLmxlZnQ6by5wb3NpdGlvbi5sZWZ0LWQubGVmdCksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSksby5wb3NpdGlvbi5sZWZ0PXIuaGVscGVyP2gubGVmdDowKSxsLnRvcDwoby5faGVscGVyP2gudG9wOjApJiYoby5zaXplLmhlaWdodD1vLnNpemUuaGVpZ2h0KyhvLl9oZWxwZXI/by5wb3NpdGlvbi50b3AtaC50b3A6by5wb3NpdGlvbi50b3ApLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpLG8ucG9zaXRpb24udG9wPW8uX2hlbHBlcj9oLnRvcDowKSxuPW8uY29udGFpbmVyRWxlbWVudC5nZXQoMCk9PT1vLmVsZW1lbnQucGFyZW50KCkuZ2V0KDApLGE9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KG8uY29udGFpbmVyRWxlbWVudC5jc3MoInBvc2l0aW9uIikpLG4mJmE/KG8ub2Zmc2V0LmxlZnQ9by5wYXJlbnREYXRhLmxlZnQrby5wb3NpdGlvbi5sZWZ0LG8ub2Zmc2V0LnRvcD1vLnBhcmVudERhdGEudG9wK28ucG9zaXRpb24udG9wKTooby5vZmZzZXQubGVmdD1vLmVsZW1lbnQub2Zmc2V0KCkubGVmdCxvLm9mZnNldC50b3A9by5lbGVtZW50Lm9mZnNldCgpLnRvcCksaT1NYXRoLmFicyhvLnNpemVEaWZmLndpZHRoKyhvLl9oZWxwZXI/by5vZmZzZXQubGVmdC1kLmxlZnQ6by5vZmZzZXQubGVmdC1oLmxlZnQpKSxzPU1hdGguYWJzKG8uc2l6ZURpZmYuaGVpZ2h0KyhvLl9oZWxwZXI/by5vZmZzZXQudG9wLWQudG9wOm8ub2Zmc2V0LnRvcC1oLnRvcCkpLGkrby5zaXplLndpZHRoPj1vLnBhcmVudERhdGEud2lkdGgmJihvLnNpemUud2lkdGg9by5wYXJlbnREYXRhLndpZHRoLWksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSkpLHMrby5zaXplLmhlaWdodD49by5wYXJlbnREYXRhLmhlaWdodCYmKG8uc2l6ZS5oZWlnaHQ9by5wYXJlbnREYXRhLmhlaWdodC1zLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpKSxwfHwoby5wb3NpdGlvbi5sZWZ0PW8ucHJldlBvc2l0aW9uLmxlZnQsby5wb3NpdGlvbi50b3A9by5wcmV2UG9zaXRpb24udG9wLG8uc2l6ZS53aWR0aD1vLnByZXZTaXplLndpZHRoLG8uc2l6ZS5oZWlnaHQ9by5wcmV2U2l6ZS5oZWlnaHQpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksaT10Lm9wdGlvbnMscz10LmNvbnRhaW5lck9mZnNldCxuPXQuY29udGFpbmVyUG9zaXRpb24sYT10LmNvbnRhaW5lckVsZW1lbnQsbz1lKHQuaGVscGVyKSxyPW8ub2Zmc2V0KCksaD1vLm91dGVyV2lkdGgoKS10LnNpemVEaWZmLndpZHRoLGw9by5vdXRlckhlaWdodCgpLXQuc2l6ZURpZmYuaGVpZ2h0O3QuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KGEuY3NzKCJwb3NpdGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6ci5sZWZ0LW4ubGVmdC1zLmxlZnQsd2lkdGg6aCxoZWlnaHQ6bH0pLHQuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3N0YXRpYy8udGVzdChhLmNzcygicG9zaXRpb24iKSkmJmUodGhpcykuY3NzKHtsZWZ0OnIubGVmdC1uLmxlZnQtcy5sZWZ0LHdpZHRoOmgsaGVpZ2h0Omx9KX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImFsc29SZXNpemUiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zO2UoaS5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTt0LmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIix7d2lkdGg6cGFyc2VJbnQodC53aWR0aCgpLDEwKSxoZWlnaHQ6cGFyc2VJbnQodC5oZWlnaHQoKSwxMCksbGVmdDpwYXJzZUludCh0LmNzcygibGVmdCIpLDEwKSx0b3A6cGFyc2VJbnQodC5jc3MoInRvcCIpLDEwKX0pfSl9LHJlc2l6ZTpmdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLG49cy5vcHRpb25zLGE9cy5vcmlnaW5hbFNpemUsbz1zLm9yaWdpbmFsUG9zaXRpb24scj17aGVpZ2h0OnMuc2l6ZS5oZWlnaHQtYS5oZWlnaHR8fDAsd2lkdGg6cy5zaXplLndpZHRoLWEud2lkdGh8fDAsdG9wOnMucG9zaXRpb24udG9wLW8udG9wfHwwLGxlZnQ6cy5wb3NpdGlvbi5sZWZ0LW8ubGVmdHx8MH07ZShuLmFsc29SZXNpemUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLHM9ZSh0aGlzKS5kYXRhKCJ1aS1yZXNpemFibGUtYWxzb3Jlc2l6ZSIpLG49e30sYT10LnBhcmVudHMoaS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bIndpZHRoIiwiaGVpZ2h0Il06WyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiXTtlLmVhY2goYSxmdW5jdGlvbihlLHQpe3ZhciBpPShzW3RdfHwwKSsoclt0XXx8MCk7aSYmaT49MCYmKG5bdF09aXx8bnVsbCl9KSx0LmNzcyhuKX0pfSxzdG9wOmZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIpfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zLHM9dC5zaXplO3QuZ2hvc3Q9dC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKSx0Lmdob3N0LmNzcyh7b3BhY2l0eTouMjUsZGlzcGxheToiYmxvY2siLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnMuaGVpZ2h0LHdpZHRoOnMud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1naG9zdCIpLmFkZENsYXNzKCJzdHJpbmciPT10eXBlb2YgaS5naG9zdD9pLmdob3N0OiIiKSx0Lmdob3N0LmFwcGVuZFRvKHQuaGVscGVyKX0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIik7dC5naG9zdCYmdC5naG9zdC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnQuc2l6ZS5oZWlnaHQsd2lkdGg6dC5zaXplLndpZHRofSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLnJlc2l6YWJsZSgiaW5zdGFuY2UiKTt0Lmdob3N0JiZ0LmhlbHBlciYmdC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKHQuZ2hvc3QuZ2V0KDApKX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oKXt2YXIgdCxpPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLHM9aS5vcHRpb25zLG49aS5zaXplLGE9aS5vcmlnaW5hbFNpemUsbz1pLm9yaWdpbmFsUG9zaXRpb24scj1pLmF4aXMsaD0ibnVtYmVyIj09dHlwZW9mIHMuZ3JpZD9bcy5ncmlkLHMuZ3JpZF06cy5ncmlkLGw9aFswXXx8MSx1PWhbMV18fDEsZD1NYXRoLnJvdW5kKChuLndpZHRoLWEud2lkdGgpL2wpKmwsYz1NYXRoLnJvdW5kKChuLmhlaWdodC1hLmhlaWdodCkvdSkqdSxwPWEud2lkdGgrZCxmPWEuaGVpZ2h0K2MsbT1zLm1heFdpZHRoJiZwPnMubWF4V2lkdGgsZz1zLm1heEhlaWdodCYmZj5zLm1heEhlaWdodCx2PXMubWluV2lkdGgmJnMubWluV2lkdGg+cCx5PXMubWluSGVpZ2h0JiZzLm1pbkhlaWdodD5mO3MuZ3JpZD1oLHYmJihwKz1sKSx5JiYoZis9dSksbSYmKHAtPWwpLGcmJihmLT11KSwvXihzZXxzfGUpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mKTovXihuZSkkLy50ZXN0KHIpPyhpLnNpemUud2lkdGg9cCxpLnNpemUuaGVpZ2h0PWYsaS5wb3NpdGlvbi50b3A9by50b3AtYyk6L14oc3cpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mLGkucG9zaXRpb24ubGVmdD1vLmxlZnQtZCk6KCgwPj1mLXV8fDA+PXAtbCkmJih0PWkuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyh0aGlzKSksZi11PjA/KGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcC1jKTooZj11LXQuaGVpZ2h0LGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcCthLmhlaWdodC1mKSxwLWw+MD8oaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdC1kKToocD1sLXQud2lkdGgsaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdCthLndpZHRoLXApKX19KSxlLnVpLnJlc2l6YWJsZSxlLndpZGdldCgidWkuc2VsZWN0YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b1JlZnJlc2g6ITAsZGlzdGFuY2U6MCxmaWx0ZXI6IioiLHRvbGVyYW5jZToidG91Y2giLHNlbGVjdGVkOm51bGwsc2VsZWN0aW5nOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdW5zZWxlY3RlZDpudWxsLHVuc2VsZWN0aW5nOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RhYmxlIiksdGhpcy5kcmFnZ2VkPSExLHRoaXMucmVmcmVzaD1mdW5jdGlvbigpe3Q9ZShpLm9wdGlvbnMuZmlsdGVyLGkuZWxlbWVudFswXSksdC5hZGRDbGFzcygidWktc2VsZWN0ZWUiKSx0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5vZmZzZXQoKTtlLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIix7ZWxlbWVudDp0aGlzLCRlbGVtZW50OnQsbGVmdDppLmxlZnQsdG9wOmkudG9wLHJpZ2h0OmkubGVmdCt0Lm91dGVyV2lkdGgoKSxib3R0b206aS50b3ArdC5vdXRlckhlaWdodCgpLHN0YXJ0c2VsZWN0ZWQ6ITEsc2VsZWN0ZWQ6dC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKSxzZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktc2VsZWN0aW5nIiksdW5zZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktdW5zZWxlY3RpbmciKX0pfSl9LHRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzPXQuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIiksdGhpcy5fbW91c2VJbml0KCksdGhpcy5oZWxwZXI9ZSgiPGRpdiBjbGFzcz0ndWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWVzLnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZSIpLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpLHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz10aGlzLm9wdGlvbnM7dGhpcy5vcG9zPVt0LnBhZ2VYLHQucGFnZVldLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWVzPWUocy5maWx0ZXIsdGhpcy5lbGVtZW50WzBdKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsdCksZShzLmFwcGVuZFRvKS5hcHBlbmQodGhpcy5oZWxwZXIpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDp0LnBhZ2VYLHRvcDp0LnBhZ2VZLHdpZHRoOjAsaGVpZ2h0OjB9KSxzLmF1dG9SZWZyZXNoJiZ0aGlzLnJlZnJlc2goKSx0aGlzLnNlbGVjdGVlcy5maWx0ZXIoIi51aS1zZWxlY3RlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgcz1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cy5zdGFydHNlbGVjdGVkPSEwLHQubWV0YUtleXx8dC5jdHJsS2V5fHwocy4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGVkPSExLHMuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMCxpLl90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsdCx7dW5zZWxlY3Rpbmc6cy5lbGVtZW50fSkpfSksZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbj1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cmV0dXJuIG4/KHM9IXQubWV0YUtleSYmIXQuY3RybEtleXx8IW4uJGVsZW1lbnQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIiksbi4kZWxlbWVudC5yZW1vdmVDbGFzcyhzPyJ1aS11bnNlbGVjdGluZyI6InVpLXNlbGVjdGVkIikuYWRkQ2xhc3Mocz8idWktc2VsZWN0aW5nIjoidWktdW5zZWxlY3RpbmciKSxuLnVuc2VsZWN0aW5nPSFzLG4uc2VsZWN0aW5nPXMsbi5zZWxlY3RlZD1zLHM/aS5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6bi5lbGVtZW50fSk6aS5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOm4uZWxlbWVudH0pLCExKTp2b2lkIDB9KSl9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7aWYodGhpcy5kcmFnZ2VkPSEwLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQpe3ZhciBpLHM9dGhpcyxuPXRoaXMub3B0aW9ucyxhPXRoaXMub3Bvc1swXSxvPXRoaXMub3Bvc1sxXSxyPXQucGFnZVgsaD10LnBhZ2VZO3JldHVybiBhPnImJihpPXIscj1hLGE9aSksbz5oJiYoaT1oLGg9byxvPWkpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDphLHRvcDpvLHdpZHRoOnItYSxoZWlnaHQ6aC1vfSksdGhpcy5zZWxlY3RlZXMuZWFjaChmdW5jdGlvbigpe3ZhciBpPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKSxsPSExOwppJiZpLmVsZW1lbnQhPT1zLmVsZW1lbnRbMF0mJigidG91Y2giPT09bi50b2xlcmFuY2U/bD0hKGkubGVmdD5yfHxhPmkucmlnaHR8fGkudG9wPmh8fG8+aS5ib3R0b20pOiJmaXQiPT09bi50b2xlcmFuY2UmJihsPWkubGVmdD5hJiZyPmkucmlnaHQmJmkudG9wPm8mJmg+aS5ib3R0b20pLGw/KGkuc2VsZWN0ZWQmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEpLGkudW5zZWxlY3RpbmcmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITEpLGkuc2VsZWN0aW5nfHwoaS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIiksaS5zZWxlY3Rpbmc9ITAscy5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6aS5lbGVtZW50fSkpKTooaS5zZWxlY3RpbmcmJigodC5tZXRhS2V5fHx0LmN0cmxLZXkpJiZpLnN0YXJ0c2VsZWN0ZWQ/KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMCk6KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksaS51bnNlbGVjdGluZz0hMCkscy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSksaS5zZWxlY3RlZCYmKHQubWV0YUtleXx8dC5jdHJsS2V5fHxpLnN0YXJ0c2VsZWN0ZWR8fChpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEsaS4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKSxpLnVuc2VsZWN0aW5nPSEwLHMuX3RyaWdnZXIoInVuc2VsZWN0aW5nIix0LHt1bnNlbGVjdGluZzppLmVsZW1lbnR9KSkpKSl9KSwhMX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5kcmFnZ2VkPSExLGUoIi51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHM9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3MuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMSxzLnN0YXJ0c2VsZWN0ZWQ9ITEsaS5fdHJpZ2dlcigidW5zZWxlY3RlZCIsdCx7dW5zZWxlY3RlZDpzLmVsZW1lbnR9KX0pLGUoIi51aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBzPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKS5hZGRDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGluZz0hMSxzLnNlbGVjdGVkPSEwLHMuc3RhcnRzZWxlY3RlZD0hMCxpLl90cmlnZ2VyKCJzZWxlY3RlZCIsdCx7c2VsZWN0ZWQ6cy5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKCJzdG9wIix0KSx0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX19KSxlLndpZGdldCgidWkuc29ydGFibGUiLGUudWkubW91c2Use3ZlcnNpb246IjEuMTEuNCIsd2lkZ2V0RXZlbnRQcmVmaXg6InNvcnQiLHJlYWR5OiExLG9wdGlvbnM6e2FwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ITEsY29ubmVjdFdpdGg6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOiJhdXRvIixjdXJzb3JBdDohMSxkcm9wT25FbXB0eTohMCxmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMSxmb3JjZUhlbHBlclNpemU6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaXRlbXM6Ij4gKiIsb3BhY2l0eTohMSxwbGFjZWhvbGRlcjohMSxyZXZlcnQ6ITEsc2Nyb2xsOiEwLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNjb3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsekluZGV4OjFlMyxhY3RpdmF0ZTpudWxsLGJlZm9yZVN0b3A6bnVsbCxjaGFuZ2U6bnVsbCxkZWFjdGl2YXRlOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsLHJlY2VpdmU6bnVsbCxyZW1vdmU6bnVsbCxzb3J0Om51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdXBkYXRlOm51bGx9LF9pc092ZXJBeGlzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZT49dCYmdCtpPmV9LF9pc0Zsb2F0aW5nOmZ1bmN0aW9uKGUpe3JldHVybi9sZWZ0fHJpZ2h0Ly50ZXN0KGUuY3NzKCJmbG9hdCIpKXx8L2lubGluZXx0YWJsZS1jZWxsLy50ZXN0KGUuY3NzKCJkaXNwbGF5IikpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNvcnRhYmxlIiksdGhpcy5yZWZyZXNoKCksdGhpcy5vZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpLHRoaXMucmVhZHk9ITB9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCl9LF9zZXRIYW5kbGVDbGFzc05hbWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNvcnRhYmxlLWhhbmRsZSIpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oYW5kbGUiKSxlLmVhY2godGhpcy5pdGVtcyxmdW5jdGlvbigpeyh0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlP3RoaXMuaXRlbS5maW5kKHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUpOnRoaXMuaXRlbSkuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhhbmRsZSIpfSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIpLmZpbmQoIi51aS1zb3J0YWJsZS1oYW5kbGUiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGFuZGxlIiksdGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZhciBlPXRoaXMuaXRlbXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5pdGVtc1tlXS5pdGVtLnJlbW92ZURhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIpO3JldHVybiB0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQsaSl7dmFyIHM9bnVsbCxuPSExLGE9dGhpcztyZXR1cm4gdGhpcy5yZXZlcnRpbmc/ITE6dGhpcy5vcHRpb25zLmRpc2FibGVkfHwic3RhdGljIj09PXRoaXMub3B0aW9ucy50eXBlPyExOih0aGlzLl9yZWZyZXNoSXRlbXModCksZSh0LnRhcmdldCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhKHRoaXMsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YT8ocz1lKHRoaXMpLCExKTp2b2lkIDB9KSxlLmRhdGEodC50YXJnZXQsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YSYmKHM9ZSh0LnRhcmdldCkpLHM/IXRoaXMub3B0aW9ucy5oYW5kbGV8fGl8fChlKHRoaXMub3B0aW9ucy5oYW5kbGUscykuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09PXQudGFyZ2V0JiYobj0hMCl9KSxuKT8odGhpcy5jdXJyZW50SXRlbT1zLHRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCksITApOiExOiExKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnM7aWYodGhpcy5jdXJyZW50Q29udGFpbmVyPXRoaXMsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKSx0aGlzLm9mZnNldD10aGlzLmN1cnJlbnRJdGVtLm9mZnNldCgpLHRoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fSxlLmV4dGVuZCh0aGlzLm9mZnNldCx7Y2xpY2s6e2xlZnQ6dC5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDp0LnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLmhlbHBlci5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0KSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxvLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKG8uY3Vyc29yQXQpLHRoaXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19LHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50SXRlbS5oaWRlKCksdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKSxvLmNvbnRhaW5tZW50JiZ0aGlzLl9zZXRDb250YWlubWVudCgpLG8uY3Vyc29yJiYiYXV0byIhPT1vLmN1cnNvciYmKGE9dGhpcy5kb2N1bWVudC5maW5kKCJib2R5IiksdGhpcy5zdG9yZWRDdXJzb3I9YS5jc3MoImN1cnNvciIpLGEuY3NzKCJjdXJzb3IiLG8uY3Vyc29yKSx0aGlzLnN0b3JlZFN0eWxlc2hlZXQ9ZSgiPHN0eWxlPip7IGN1cnNvcjogIitvLmN1cnNvcisiICFpbXBvcnRhbnQ7IH08L3N0eWxlPiIpLmFwcGVuZFRvKGEpKSxvLm9wYWNpdHkmJih0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiKSYmKHRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IikpLHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIsby5vcGFjaXR5KSksby56SW5kZXgmJih0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpJiYodGhpcy5fc3RvcmVkWkluZGV4PXRoaXMuaGVscGVyLmNzcygiekluZGV4IikpLHRoaXMuaGVscGVyLmNzcygiekluZGV4IixvLnpJbmRleCkpLHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmIkhUTUwiIT09dGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSYmKHRoaXMub3ZlcmZsb3dPZmZzZXQ9dGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCkpLHRoaXMuX3RyaWdnZXIoInN0YXJ0Iix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLl9wcmVzZXJ2ZUhlbHBlclByb3BvcnRpb25zfHx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksIXMpZm9yKG49dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO24+PTA7bi0tKXRoaXMuY29udGFpbmVyc1tuXS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKTtyZXR1cm4gZS51aS5kZG1hbmFnZXImJihlLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLGUudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpLHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpLHRoaXMuX21vdXNlRHJhZyh0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYSxvPXRoaXMub3B0aW9ucyxyPSExO2Zvcih0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSx0aGlzLmxhc3RQb3NpdGlvbkFic3x8KHRoaXMubGFzdFBvc2l0aW9uQWJzPXRoaXMucG9zaXRpb25BYnMpLHRoaXMub3B0aW9ucy5zY3JvbGwmJih0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJiJIVE1MIiE9PXRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWU/KHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wK3RoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodC10LnBhZ2VZPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wK28uc2Nyb2xsU3BlZWQ6dC5wYWdlWS10aGlzLm92ZXJmbG93T2Zmc2V0LnRvcDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wLW8uc2Nyb2xsU3BlZWQpLHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRXaWR0aC10LnBhZ2VYPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQrby5zY3JvbGxTcGVlZDp0LnBhZ2VYLXRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQtby5zY3JvbGxTcGVlZCkpOih0LnBhZ2VZLXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCk8by5zY3JvbGxTZW5zaXRpdml0eT9yPXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKHRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCktby5zY3JvbGxTcGVlZCk6dGhpcy53aW5kb3cuaGVpZ2h0KCktKHQucGFnZVktdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSk8by5zY3JvbGxTZW5zaXRpdml0eSYmKHI9dGhpcy5kb2N1bWVudC5zY3JvbGxUb3AodGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKStvLnNjcm9sbFNwZWVkKSksdC5wYWdlWC10aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKTxvLnNjcm9sbFNlbnNpdGl2aXR5P3I9dGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLW8uc2Nyb2xsU3BlZWQpOnRoaXMud2luZG93LndpZHRoKCktKHQucGFnZVgtdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkpPG8uc2Nyb2xsU2Vuc2l0aXZpdHkmJihyPXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCh0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKStvLnNjcm9sbFNwZWVkKSkpLHIhPT0hMSYmZS51aS5kZG1hbmFnZXImJiFvLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCkpLHRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIiksdGhpcy5vcHRpb25zLmF4aXMmJiJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUubGVmdD10aGlzLnBvc2l0aW9uLmxlZnQrInB4IiksdGhpcy5vcHRpb25zLmF4aXMmJiJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLGk9dGhpcy5pdGVtcy5sZW5ndGgtMTtpPj0wO2ktLSlpZihzPXRoaXMuaXRlbXNbaV0sbj1zLml0ZW1bMF0sYT10aGlzLl9pbnRlcnNlY3RzV2l0aFBvaW50ZXIocyksYSYmcy5pbnN0YW5jZT09PXRoaXMuY3VycmVudENvbnRhaW5lciYmbiE9PXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMucGxhY2Vob2xkZXJbMT09PWE/Im5leHQiOiJwcmV2Il0oKVswXSE9PW4mJiFlLmNvbnRhaW5zKHRoaXMucGxhY2Vob2xkZXJbMF0sbikmJigic2VtaS1keW5hbWljIj09PXRoaXMub3B0aW9ucy50eXBlPyFlLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSxuKTohMCkpe2lmKHRoaXMuZGlyZWN0aW9uPTE9PT1hPyJkb3duIjoidXAiLCJwb2ludGVyIiE9PXRoaXMub3B0aW9ucy50b2xlcmFuY2UmJiF0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKHMpKWJyZWFrO3RoaXMuX3JlYXJyYW5nZSh0LHMpLHRoaXMuX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2goKSk7YnJlYWt9cmV0dXJuIHRoaXMuX2NvbnRhY3RDb250YWluZXJzKHQpLGUudWkuZGRtYW5hZ2VyJiZlLnVpLmRkbWFuYWdlci5kcmFnKHRoaXMsdCksdGhpcy5fdHJpZ2dlcigic29ydCIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5sYXN0UG9zaXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicywhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0LGkpe2lmKHQpe2lmKGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSx0aGlzLm9wdGlvbnMucmV2ZXJ0KXt2YXIgcz10aGlzLG49dGhpcy5wbGFjZWhvbGRlci5vZmZzZXQoKSxhPXRoaXMub3B0aW9ucy5heGlzLG89e307YSYmIngiIT09YXx8KG8ubGVmdD1uLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQtdGhpcy5tYXJnaW5zLmxlZnQrKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsTGVmdCkpLGEmJiJ5IiE9PWF8fChvLnRvcD1uLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLXRoaXMubWFyZ2lucy50b3ArKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsVG9wKSksdGhpcy5yZXZlcnRpbmc9ITAsZSh0aGlzLmhlbHBlcikuYW5pbWF0ZShvLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnQsMTApfHw1MDAsZnVuY3Rpb24oKXtzLl9jbGVhcih0KX0pfWVsc2UgdGhpcy5fY2xlYXIodCxpKTtyZXR1cm4hMX19LGNhbmNlbDpmdW5jdGlvbigpe2lmKHRoaXMuZHJhZ2dpbmcpe3RoaXMuX21vdXNlVXAoe3RhcmdldDpudWxsfSksIm9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXI/dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik6dGhpcy5jdXJyZW50SXRlbS5zaG93KCk7Zm9yKHZhciB0PXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTt0Pj0wO3QtLSl0aGlzLmNvbnRhaW5lcnNbdF0uX3RyaWdnZXIoImRlYWN0aXZhdGUiLG51bGwsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdF0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1t0XS5fdHJpZ2dlcigib3V0IixudWxsLHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3RdLmNvbnRhaW5lckNhY2hlLm92ZXI9MCl9cmV0dXJuIHRoaXMucGxhY2Vob2xkZXImJih0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUmJnRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSwib3JpZ2luYWwiIT09dGhpcy5vcHRpb25zLmhlbHBlciYmdGhpcy5oZWxwZXImJnRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUmJnRoaXMuaGVscGVyLnJlbW92ZSgpLGUuZXh0ZW5kKHRoaXMse2hlbHBlcjpudWxsLGRyYWdnaW5nOiExLHJldmVydGluZzohMSxfbm9GaW5hbFNvcnQ6bnVsbH0pLHRoaXMuZG9tUG9zaXRpb24ucHJldj9lKHRoaXMuZG9tUG9zaXRpb24ucHJldikuYWZ0ZXIodGhpcy5jdXJyZW50SXRlbSk6ZSh0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCkucHJlcGVuZCh0aGlzLmN1cnJlbnRJdGVtKSksdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuX2dldEl0ZW1zQXNqUXVlcnkodCYmdC5jb25uZWN0ZWQpLHM9W107cmV0dXJuIHQ9dHx8e30sZShpKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9KGUodC5pdGVtfHx0aGlzKS5hdHRyKHQuYXR0cmlidXRlfHwiaWQiKXx8IiIpLm1hdGNoKHQuZXhwcmVzc2lvbnx8LyguKylbXC09X10oLispLyk7aSYmcy5wdXNoKCh0LmtleXx8aVsxXSsiW10iKSsiPSIrKHQua2V5JiZ0LmV4cHJlc3Npb24/aVsxXTppWzJdKSl9KSwhcy5sZW5ndGgmJnQua2V5JiZzLnB1c2godC5rZXkrIj0iKSxzLmpvaW4oIiYiKX0sdG9BcnJheTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9nZXRJdGVtc0FzalF1ZXJ5KHQmJnQuY29ubmVjdGVkKSxzPVtdO3JldHVybiB0PXR8fHt9LGkuZWFjaChmdW5jdGlvbigpe3MucHVzaChlKHQuaXRlbXx8dGhpcykuYXR0cih0LmF0dHJpYnV0ZXx8ImlkIil8fCIiKX0pLHN9LF9pbnRlcnNlY3RzV2l0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uQWJzLmxlZnQsaT10K3RoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgscz10aGlzLnBvc2l0aW9uQWJzLnRvcCxuPXMrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsYT1lLmxlZnQsbz1hK2Uud2lkdGgscj1lLnRvcCxoPXIrZS5oZWlnaHQsbD10aGlzLm9mZnNldC5jbGljay50b3AsdT10aGlzLm9mZnNldC5jbGljay5sZWZ0LGQ9IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHMrbD5yJiZoPnMrbCxjPSJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0K3U+YSYmbz50K3UscD1kJiZjO3JldHVybiJwb2ludGVyIj09PXRoaXMub3B0aW9ucy50b2xlcmFuY2V8fHRoaXMub3B0aW9ucy5mb3JjZVBvaW50ZXJGb3JDb250YWluZXJzfHwicG9pbnRlciIhPT10aGlzLm9wdGlvbnMudG9sZXJhbmNlJiZ0aGlzLmhlbHBlclByb3BvcnRpb25zW3RoaXMuZmxvYXRpbmc/IndpZHRoIjoiaGVpZ2h0Il0+ZVt0aGlzLmZsb2F0aW5nPyJ3aWR0aCI6ImhlaWdodCJdP3A6dCt0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzI+YSYmbz5pLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmcyt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yPnImJmg+bi10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yfSxfaW50ZXJzZWN0c1dpdGhQb2ludGVyOmZ1bmN0aW9uKGUpe3ZhciB0PSJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxlLnRvcCxlLmhlaWdodCksaT0ieSI9PT10aGlzLm9wdGlvbnMuYXhpc3x8dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQsZS53aWR0aCkscz10JiZpLG49dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksYT10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiBzP3RoaXMuZmxvYXRpbmc/YSYmInJpZ2h0Ij09PWF8fCJkb3duIj09PW4/MjoxOm4mJigiZG93biI9PT1uPzI6MSk6ITF9LF9pbnRlcnNlY3RzV2l0aFNpZGVzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy50b3ArdGhpcy5vZmZzZXQuY2xpY2sudG9wLGUudG9wK2UuaGVpZ2h0LzIsZS5oZWlnaHQpLGk9dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQrZS53aWR0aC8yLGUud2lkdGgpLHM9dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksbj10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiB0aGlzLmZsb2F0aW5nJiZuPyJyaWdodCI9PT1uJiZpfHwibGVmdCI9PT1uJiYhaTpzJiYoImRvd24iPT09cyYmdHx8InVwIj09PXMmJiF0KX0sX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucG9zaXRpb25BYnMudG9wLXRoaXMubGFzdFBvc2l0aW9uQWJzLnRvcDtyZXR1cm4gMCE9PWUmJihlPjA/ImRvd24iOiJ1cCIpfSxfZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uQWJzLmxlZnQtdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDtyZXR1cm4gMCE9PWUmJihlPjA/InJpZ2h0IjoibGVmdCIpfSxyZWZyZXNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZWZyZXNoSXRlbXMoZSksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpc30sX2Nvbm5lY3RXaXRoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiBlLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yPT09U3RyaW5nP1tlLmNvbm5lY3RXaXRoXTplLmNvbm5lY3RXaXRofSxfZ2V0SXRlbXNBc2pRdWVyeTpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7ci5wdXNoKHRoaXMpfXZhciBzLG4sYSxvLHI9W10saD1bXSxsPXRoaXMuX2Nvbm5lY3RXaXRoKCk7aWYobCYmdClmb3Iocz1sLmxlbmd0aC0xO3M+PTA7cy0tKWZvcihhPWUobFtzXSx0aGlzLmRvY3VtZW50WzBdKSxuPWEubGVuZ3RoLTE7bj49MDtuLS0pbz1lLmRhdGEoYVtuXSx0aGlzLndpZGdldEZ1bGxOYW1lKSxvJiZvIT09dGhpcyYmIW8ub3B0aW9ucy5kaXNhYmxlZCYmaC5wdXNoKFtlLmlzRnVuY3Rpb24oby5vcHRpb25zLml0ZW1zKT9vLm9wdGlvbnMuaXRlbXMuY2FsbChvLmVsZW1lbnQpOmUoby5vcHRpb25zLml0ZW1zLG8uZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSxvXSk7Zm9yKGgucHVzaChbZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5pdGVtcyk/dGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50LG51bGwse29wdGlvbnM6dGhpcy5vcHRpb25zLGl0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmUodGhpcy5vcHRpb25zLml0ZW1zLHRoaXMuZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSx0aGlzXSkscz1oLmxlbmd0aC0xO3M+PTA7cy0tKWhbc11bMF0uZWFjaChpKTtyZXR1cm4gZShyKX0sX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jdXJyZW50SXRlbS5maW5kKCI6ZGF0YSgiK3RoaXMud2lkZ2V0TmFtZSsiLWl0ZW0pIik7dGhpcy5pdGVtcz1lLmdyZXAodGhpcy5pdGVtcyxmdW5jdGlvbihlKXtmb3IodmFyIGk9MDt0Lmxlbmd0aD5pO2krKylpZih0W2ldPT09ZS5pdGVtWzBdKXJldHVybiExO3JldHVybiEwfSl9LF9yZWZyZXNoSXRlbXM6ZnVuY3Rpb24odCl7dGhpcy5pdGVtcz1bXSx0aGlzLmNvbnRhaW5lcnM9W3RoaXNdO3ZhciBpLHMsbixhLG8scixoLGwsdT10aGlzLml0ZW1zLGQ9W1tlLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKT90aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnRbMF0sdCx7aXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6ZSh0aGlzLm9wdGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KSx0aGlzXV0sYz10aGlzLl9jb25uZWN0V2l0aCgpO2lmKGMmJnRoaXMucmVhZHkpZm9yKGk9Yy5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobj1lKGNbaV0sdGhpcy5kb2N1bWVudFswXSkscz1uLmxlbmd0aC0xO3M+PTA7cy0tKWE9ZS5kYXRhKG5bc10sdGhpcy53aWRnZXRGdWxsTmFtZSksYSYmYSE9PXRoaXMmJiFhLm9wdGlvbnMuZGlzYWJsZWQmJihkLnB1c2goW2UuaXNGdW5jdGlvbihhLm9wdGlvbnMuaXRlbXMpP2Eub3B0aW9ucy5pdGVtcy5jYWxsKGEuZWxlbWVudFswXSx0LHtpdGVtOnRoaXMuY3VycmVudEl0ZW19KTplKGEub3B0aW9ucy5pdGVtcyxhLmVsZW1lbnQpLGFdKSx0aGlzLmNvbnRhaW5lcnMucHVzaChhKSk7Zm9yKGk9ZC5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobz1kW2ldWzFdLHI9ZFtpXVswXSxzPTAsbD1yLmxlbmd0aDtsPnM7cysrKWg9ZShyW3NdKSxoLmRhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIsbyksdS5wdXNoKHtpdGVtOmgsaW5zdGFuY2U6byx3aWR0aDowLGhlaWdodDowLGxlZnQ6MCx0b3A6MH0pfSxyZWZyZXNoUG9zaXRpb25zOmZ1bmN0aW9uKHQpe3RoaXMuZmxvYXRpbmc9dGhpcy5pdGVtcy5sZW5ndGg/IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5pdGVtc1swXS5pdGVtKTohMSx0aGlzLm9mZnNldFBhcmVudCYmdGhpcy5oZWxwZXImJih0aGlzLm9mZnNldC5wYXJlbnQ9dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkpO3ZhciBpLHMsbixhO2ZvcihpPXRoaXMuaXRlbXMubGVuZ3RoLTE7aT49MDtpLS0pcz10aGlzLml0ZW1zW2ldLHMuaW5zdGFuY2UhPT10aGlzLmN1cnJlbnRDb250YWluZXImJnRoaXMuY3VycmVudENvbnRhaW5lciYmcy5pdGVtWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXXx8KG49dGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQ/ZSh0aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVudCxzLml0ZW0pOnMuaXRlbSx0fHwocy53aWR0aD1uLm91dGVyV2lkdGgoKSxzLmhlaWdodD1uLm91dGVySGVpZ2h0KCkpLGE9bi5vZmZzZXQoKSxzLmxlZnQ9YS5sZWZ0LHMudG9wPWEudG9wKTtpZih0aGlzLm9wdGlvbnMuY3VzdG9tJiZ0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKXRoaXMub3B0aW9ucy5jdXN0b20ucmVmcmVzaENvbnRhaW5lcnMuY2FsbCh0aGlzKTtlbHNlIGZvcihpPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTtpPj0wO2ktLSlhPXRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50Lm9mZnNldCgpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5sZWZ0PWEubGVmdCx0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUudG9wPWEudG9wLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS53aWR0aD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlcldpZHRoKCksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLmhlaWdodD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlckhlaWdodCgpO3JldHVybiB0aGlzfSxfY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCl7dD10fHx0aGlzO3ZhciBpLHM9dC5vcHRpb25zO3MucGxhY2Vob2xkZXImJnMucGxhY2Vob2xkZXIuY29uc3RydWN0b3IhPT1TdHJpbmd8fChpPXMucGxhY2Vob2xkZXIscy5wbGFjZWhvbGRlcj17ZWxlbWVudDpmdW5jdGlvbigpe3ZhciBzPXQuY3VycmVudEl0ZW1bMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxuPWUoIjwiK3MrIj4iLHQuZG9jdW1lbnRbMF0pLmFkZENsYXNzKGl8fHQuY3VycmVudEl0ZW1bMF0uY2xhc3NOYW1lKyIgdWktc29ydGFibGUtcGxhY2Vob2xkZXIiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik7cmV0dXJuInRib2R5Ij09PXM/dC5fY3JlYXRlVHJQbGFjZWhvbGRlcih0LmN1cnJlbnRJdGVtLmZpbmQoInRyIikuZXEoMCksZSgiPHRyPiIsdC5kb2N1bWVudFswXSkuYXBwZW5kVG8obikpOiJ0ciI9PT1zP3QuX2NyZWF0ZVRyUGxhY2Vob2xkZXIodC5jdXJyZW50SXRlbSxuKToiaW1nIj09PXMmJm4uYXR0cigic3JjIix0LmN1cnJlbnRJdGVtLmF0dHIoInNyYyIpKSxpfHxuLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLG59LHVwZGF0ZTpmdW5jdGlvbihlLG4peyghaXx8cy5mb3JjZVBsYWNlaG9sZGVyU2l6ZSkmJihuLmhlaWdodCgpfHxuLmhlaWdodCh0LmN1cnJlbnRJdGVtLmlubmVySGVpZ2h0KCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdUb3AiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdCb3R0b20iKXx8MCwxMCkpLG4ud2lkdGgoKXx8bi53aWR0aCh0LmN1cnJlbnRJdGVtLmlubmVyV2lkdGgoKS1wYXJzZUludCh0LmN1cnJlbnRJdGVtLmNzcygicGFkZGluZ0xlZnQiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdSaWdodCIpfHwwLDEwKSkpfX0pLHQucGxhY2Vob2xkZXI9ZShzLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbCh0LmVsZW1lbnQsdC5jdXJyZW50SXRlbSkpLHQuY3VycmVudEl0ZW0uYWZ0ZXIodC5wbGFjZWhvbGRlcikscy5wbGFjZWhvbGRlci51cGRhdGUodCx0LnBsYWNlaG9sZGVyKX0sX2NyZWF0ZVRyUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz10aGlzO3QuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7ZSgiPHRkPiYjMTYwOzwvdGQ+IixzLmRvY3VtZW50WzBdKS5hdHRyKCJjb2xzcGFuIixlKHRoaXMpLmF0dHIoImNvbHNwYW4iKXx8MSkuYXBwZW5kVG8oaSl9KX0sX2NvbnRhY3RDb250YWluZXJzOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scixoLGwsdSxkLGM9bnVsbCxwPW51bGw7Zm9yKGk9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO2k+PTA7aS0tKWlmKCFlLmNvbnRhaW5zKHRoaXMuY3VycmVudEl0ZW1bMF0sdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0pKWlmKHRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZSkpe2lmKGMmJmUuY29udGFpbnModGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0sYy5lbGVtZW50WzBdKSljb250aW51ZTtjPXRoaXMuY29udGFpbmVyc1tpXSxwPWl9ZWxzZSB0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1tpXS5fdHJpZ2dlcigib3V0Iix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXI9MCk7aWYoYylpZigxPT09dGhpcy5jb250YWluZXJzLmxlbmd0aCl0aGlzLmNvbnRhaW5lcnNbcF0uY29udGFpbmVyQ2FjaGUub3Zlcnx8KHRoaXMuY29udGFpbmVyc1twXS5fdHJpZ2dlcigib3ZlciIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1twXS5jb250YWluZXJDYWNoZS5vdmVyPTEpO2Vsc2V7Zm9yKG49MWU0LGE9bnVsbCx1PWMuZmxvYXRpbmd8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5jdXJyZW50SXRlbSksbz11PyJsZWZ0IjoidG9wIixyPXU/IndpZHRoIjoiaGVpZ2h0IixkPXU/ImNsaWVudFgiOiJjbGllbnRZIixzPXRoaXMuaXRlbXMubGVuZ3RoLTE7cz49MDtzLS0pZS5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudFswXSx0aGlzLml0ZW1zW3NdLml0ZW1bMF0pJiZ0aGlzLml0ZW1zW3NdLml0ZW1bMF0hPT10aGlzLmN1cnJlbnRJdGVtWzBdJiYoaD10aGlzLml0ZW1zW3NdLml0ZW0ub2Zmc2V0KClbb10sbD0hMSx0W2RdLWg+dGhpcy5pdGVtc1tzXVtyXS8yJiYobD0hMCksbj5NYXRoLmFicyh0W2RdLWgpJiYobj1NYXRoLmFicyh0W2RdLWgpLGE9dGhpcy5pdGVtc1tzXSx0aGlzLmRpcmVjdGlvbj1sPyJ1cCI6ImRvd24iKSk7aWYoIWEmJiF0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkpcmV0dXJuO2lmKHRoaXMuY3VycmVudENvbnRhaW5lcj09PXRoaXMuY29udGFpbmVyc1twXSlyZXR1cm4gdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXJ8fCh0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoIm92ZXIiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyPTEpLHZvaWQgMDthP3RoaXMuX3JlYXJyYW5nZSh0LGEsbnVsbCwhMCk6dGhpcy5fcmVhcnJhbmdlKHQsbnVsbCx0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudCwhMCksdGhpcy5fdHJpZ2dlcigiY2hhbmdlIix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY3VycmVudENvbnRhaW5lcj10aGlzLmNvbnRhaW5lcnNbcF0sdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyLnVwZGF0ZSh0aGlzLmN1cnJlbnRDb250YWluZXIsdGhpcy5wbGFjZWhvbGRlciksdGhpcy5jb250YWluZXJzW3BdLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3BdLmNvbnRhaW5lckNhY2hlLm92ZXI9MX19LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS5pc0Z1bmN0aW9uKGkuaGVscGVyKT9lKGkuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbdCx0aGlzLmN1cnJlbnRJdGVtXSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmN1cnJlbnRJdGVtLmNsb25lKCk6dGhpcy5jdXJyZW50SXRlbTtyZXR1cm4gcy5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxlKCJwYXJlbnQiIT09aS5hcHBlbmRUbz9pLmFwcGVuZFRvOnRoaXMuY3VycmVudEl0ZW1bMF0ucGFyZW50Tm9kZSlbMF0uYXBwZW5kQ2hpbGQoc1swXSksc1swXT09PXRoaXMuY3VycmVudEl0ZW1bMF0mJih0aGlzLl9zdG9yZWRDU1M9e3dpZHRoOnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUuaGVpZ2h0LHBvc2l0aW9uOnRoaXMuY3VycmVudEl0ZW0uY3NzKCJwb3NpdGlvbiIpLHRvcDp0aGlzLmN1cnJlbnRJdGVtLmNzcygidG9wIiksbGVmdDp0aGlzLmN1cnJlbnRJdGVtLmNzcygibGVmdCIpfSksKCFzWzBdLnN0eWxlLndpZHRofHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMud2lkdGgodGhpcy5jdXJyZW50SXRlbS53aWR0aCgpKSwoIXNbMF0uc3R5bGUuaGVpZ2h0fHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMuaGVpZ2h0KHRoaXMuY3VycmVudEl0ZW0uaGVpZ2h0KCkpLHN9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3RoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpO3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpO3JldHVybiJhYnNvbHV0ZSI9PT10aGlzLmNzc1Bvc2l0aW9uJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYodC5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksdC50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSwodGhpcy5vZmZzZXRQYXJlbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmJvZHl8fHRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUmJiJodG1sIj09PXRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmZS51aS5pZSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIj09PXRoaXMuY3NzUG9zaXRpb24pe3ZhciBlPXRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpfX1yZXR1cm57dG9wOjAsbGVmdDowfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luTGVmdCIpLDEwKXx8MCx0b3A6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zOyJwYXJlbnQiPT09bi5jb250YWlubWVudCYmKG4uY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZSksKCJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50fHwid2luZG93Ij09PW4uY29udGFpbm1lbnQpJiYodGhpcy5jb250YWlubWVudD1bMC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LDAtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LmhlaWdodCgpfHx0aGlzLmRvY3VtZW50WzBdLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKSwvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvLnRlc3Qobi5jb250YWlubWVudCl8fCh0PWUobi5jb250YWlubWVudClbMF0saT1lKG4uY29udGFpbm1lbnQpLm9mZnNldCgpLHM9ImhpZGRlbiIhPT1lKHQpLmNzcygib3ZlcmZsb3ciKSx0aGlzLmNvbnRhaW5tZW50PVtpLmxlZnQrKHBhcnNlSW50KGUodCkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLXRoaXMubWFyZ2lucy5sZWZ0LGkudG9wKyhwYXJzZUludChlKHQpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLnRvcCxpLmxlZnQrKHM/TWF0aC5tYXgodC5zY3JvbGxXaWR0aCx0Lm9mZnNldFdpZHRoKTp0Lm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGUodCkuY3NzKCJwYWRkaW5nUmlnaHQiKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsaS50b3ArKHM/TWF0aC5tYXgodC5zY3JvbGxIZWlnaHQsdC5vZmZzZXRIZWlnaHQpOnQub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoZSh0KS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKHQsaSl7aXx8KGk9dGhpcy5wb3NpdGlvbik7dmFyIHM9ImFic29sdXRlIj09PXQ/MTotMSxuPSJhYnNvbHV0ZSIhPT10aGlzLmNzc1Bvc2l0aW9ufHx0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pP3RoaXMuc2Nyb2xsUGFyZW50OnRoaXMub2Zmc2V0UGFyZW50LGE9LyhodG1sfGJvZHkpL2kudGVzdChuWzBdLnRhZ05hbWUpO3JldHVybnt0b3A6aS50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKnMrdGhpcy5vZmZzZXQucGFyZW50LnRvcCpzLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6YT8wOm4uc2Nyb2xsVG9wKCkpKnMsbGVmdDppLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCpzK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KnMtKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6YT8wOm4uc2Nyb2xsTGVmdCgpKSpzfX0sX2dlbmVyYXRlUG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGkscyxuPXRoaXMub3B0aW9ucyxhPXQucGFnZVgsbz10LnBhZ2VZLHI9ImFic29sdXRlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmZS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSk/dGhpcy5zY3JvbGxQYXJlbnQ6dGhpcy5vZmZzZXRQYXJlbnQsaD0vKGh0bWx8Ym9keSkvaS50ZXN0KHJbMF0udGFnTmFtZSk7cmV0dXJuInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLm9mZnNldFBhcmVudFswXXx8KHRoaXMub2Zmc2V0LnJlbGF0aXZlPXRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCkpLHRoaXMub3JpZ2luYWxQb3NpdGlvbiYmKHRoaXMuY29udGFpbm1lbnQmJih0LnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXSYmKGE9dGhpcy5jb250YWlubWVudFswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSx0LnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdJiYobz10aGlzLmNvbnRhaW5tZW50WzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksdC5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0mJihhPXRoaXMuY29udGFpbm1lbnRbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksdC5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5jb250YWlubWVudFszXSYmKG89dGhpcy5jb250YWlubWVudFszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxuLmdyaWQmJihpPXRoaXMub3JpZ2luYWxQYWdlWStNYXRoLnJvdW5kKChvLXRoaXMub3JpZ2luYWxQYWdlWSkvbi5ncmlkWzFdKSpuLmdyaWRbMV0sbz10aGlzLmNvbnRhaW5tZW50P2ktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdJiZpLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDw9dGhpcy5jb250YWlubWVudFszXT9pOmktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdP2ktbi5ncmlkWzFdOmkrbi5ncmlkWzFdOmkscz10aGlzLm9yaWdpbmFsUGFnZVgrTWF0aC5yb3VuZCgoYS10aGlzLm9yaWdpbmFsUGFnZVgpL24uZ3JpZFswXSkqbi5ncmlkWzBdLGE9dGhpcy5jb250YWlubWVudD9zLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PXRoaXMuY29udGFpbm1lbnRbMF0mJnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdDw9dGhpcy5jb250YWlubWVudFsyXT9zOnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdD49dGhpcy5jb250YWlubWVudFswXT9zLW4uZ3JpZFswXTpzK24uZ3JpZFswXTpzKSkse3RvcDpvLXRoaXMub2Zmc2V0LmNsaWNrLnRvcC10aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCsoImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmg/MDpyLnNjcm9sbFRvcCgpKSxsZWZ0OmEtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmg/MDpyLnNjcm9sbExlZnQoKSl9fSxfcmVhcnJhbmdlOmZ1bmN0aW9uKGUsdCxpLHMpe2k/aVswXS5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTp0Lml0ZW1bMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5wbGFjZWhvbGRlclswXSwiZG93biI9PT10aGlzLmRpcmVjdGlvbj90Lml0ZW1bMF06dC5pdGVtWzBdLm5leHRTaWJsaW5nKSx0aGlzLmNvdW50ZXI9dGhpcy5jb3VudGVyPysrdGhpcy5jb3VudGVyOjE7dmFyIG49dGhpcy5jb3VudGVyO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7bj09PXRoaXMuY291bnRlciYmdGhpcy5yZWZyZXNoUG9zaXRpb25zKCFzKX0pfSxfY2xlYXI6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24ocyl7aS5fdHJpZ2dlcihlLHMsdC5fdWlIYXNoKHQpKX19dGhpcy5yZXZlcnRpbmc9ITE7dmFyIHMsbj1bXTtpZighdGhpcy5fbm9GaW5hbFNvcnQmJnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KCkubGVuZ3RoJiZ0aGlzLnBsYWNlaG9sZGVyLmJlZm9yZSh0aGlzLmN1cnJlbnRJdGVtKSx0aGlzLl9ub0ZpbmFsU29ydD1udWxsLHRoaXMuaGVscGVyWzBdPT09dGhpcy5jdXJyZW50SXRlbVswXSl7Zm9yKHMgaW4gdGhpcy5fc3RvcmVkQ1NTKSgiYXV0byI9PT10aGlzLl9zdG9yZWRDU1Nbc118fCJzdGF0aWMiPT09dGhpcy5fc3RvcmVkQ1NTW3NdKSYmKHRoaXMuX3N0b3JlZENTU1tzXT0iIik7dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIil9ZWxzZSB0aGlzLmN1cnJlbnRJdGVtLnNob3coKTtmb3IodGhpcy5mcm9tT3V0c2lkZSYmIXQmJm4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZWNlaXZlIixlLHRoaXMuX3VpSGFzaCh0aGlzLmZyb21PdXRzaWRlKSl9KSwhdGhpcy5mcm9tT3V0c2lkZSYmdGhpcy5kb21Qb3NpdGlvbi5wcmV2PT09dGhpcy5jdXJyZW50SXRlbS5wcmV2KCkubm90KCIudWktc29ydGFibGUtaGVscGVyIilbMF0mJnRoaXMuZG9tUG9zaXRpb24ucGFyZW50PT09dGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKVswXXx8dHx8bi5wdXNoKGZ1bmN0aW9uKGUpe3RoaXMuX3RyaWdnZXIoInVwZGF0ZSIsZSx0aGlzLl91aUhhc2goKSl9KSx0aGlzIT09dGhpcy5jdXJyZW50Q29udGFpbmVyJiYodHx8KG4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZW1vdmUiLGUsdGhpcy5fdWlIYXNoKCkpfSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJyZWNlaXZlIix0LHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jdXJyZW50Q29udGFpbmVyKSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJ1cGRhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmN1cnJlbnRDb250YWluZXIpKSkpLHM9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO3M+PTA7cy0tKXR8fG4ucHVzaChpKCJkZWFjdGl2YXRlIix0aGlzLHRoaXMuY29udGFpbmVyc1tzXSkpLHRoaXMuY29udGFpbmVyc1tzXS5jb250YWluZXJDYWNoZS5vdmVyJiYobi5wdXNoKGkoIm91dCIsdGhpcyx0aGlzLmNvbnRhaW5lcnNbc10pKSx0aGlzLmNvbnRhaW5lcnNbc10uY29udGFpbmVyQ2FjaGUub3Zlcj0wKTtpZih0aGlzLnN0b3JlZEN1cnNvciYmKHRoaXMuZG9jdW1lbnQuZmluZCgiYm9keSIpLmNzcygiY3Vyc29yIix0aGlzLnN0b3JlZEN1cnNvciksdGhpcy5zdG9yZWRTdHlsZXNoZWV0LnJlbW92ZSgpKSx0aGlzLl9zdG9yZWRPcGFjaXR5JiZ0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiLHRoaXMuX3N0b3JlZE9wYWNpdHkpLHRoaXMuX3N0b3JlZFpJbmRleCYmdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLCJhdXRvIj09PXRoaXMuX3N0b3JlZFpJbmRleD8iIjp0aGlzLl9zdG9yZWRaSW5kZXgpLHRoaXMuZHJhZ2dpbmc9ITEsdHx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlU3RvcCIsZSx0aGlzLl91aUhhc2goKSksdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbHx8KHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5oZWxwZXIucmVtb3ZlKCksdGhpcy5oZWxwZXI9bnVsbCksIXQpe2ZvcihzPTA7bi5sZW5ndGg+cztzKyspbltzXS5jYWxsKHRoaXMsZSk7dGhpcy5fdHJpZ2dlcigic3RvcCIsZSx0aGlzLl91aUhhc2goKSl9cmV0dXJuIHRoaXMuZnJvbU91dHNpZGU9ITEsIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbH0sX3RyaWdnZXI6ZnVuY3Rpb24oKXtlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpPT09ITEmJnRoaXMuY2FuY2VsKCl9LF91aUhhc2g6ZnVuY3Rpb24odCl7dmFyIGk9dHx8dGhpcztyZXR1cm57aGVscGVyOmkuaGVscGVyLHBsYWNlaG9sZGVyOmkucGxhY2Vob2xkZXJ8fGUoW10pLHBvc2l0aW9uOmkucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjppLm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OmkucG9zaXRpb25BYnMsaXRlbTppLmN1cnJlbnRJdGVtLHNlbmRlcjp0P3QuZWxlbWVudDpudWxsfX19KSxlLndpZGdldCgidWkuYWNjb3JkaW9uIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthY3RpdmU6MCxhbmltYXRlOnt9LGNvbGxhcHNpYmxlOiExLGV2ZW50OiJjbGljayIsaGVhZGVyOiI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsaGVpZ2h0U3R5bGU6ImF1dG8iLGljb25zOnthY3RpdmVIZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1zIixoZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1lIn0sYWN0aXZhdGU6bnVsbCxiZWZvcmVBY3RpdmF0ZTpudWxsfSxoaWRlUHJvcHM6e2JvcmRlclRvcFdpZHRoOiJoaWRlIixib3JkZXJCb3R0b21XaWR0aDoiaGlkZSIscGFkZGluZ1RvcDoiaGlkZSIscGFkZGluZ0JvdHRvbToiaGlkZSIsaGVpZ2h0OiJoaWRlIn0sc2hvd1Byb3BzOntib3JkZXJUb3BXaWR0aDoic2hvdyIsYm9yZGVyQm90dG9tV2lkdGg6InNob3ciLHBhZGRpbmdUb3A6InNob3ciLHBhZGRpbmdCb3R0b206InNob3ciLGhlaWdodDoic2hvdyJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPWUoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWFjY29yZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikuYXR0cigicm9sZSIsInRhYmxpc3QiKSx0LmNvbGxhcHNpYmxlfHx0LmFjdGl2ZSE9PSExJiZudWxsIT10LmFjdGl2ZXx8KHQuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSwwPnQuYWN0aXZlJiYodC5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTplKCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24gdWktaWNvbiAiK3QuaGVhZGVyKS5wcmVwZW5kVG8odGhpcy5oZWFkZXJzKSx0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKHQuaGVhZGVyKS5hZGRDbGFzcyh0LmFjdGl2ZUhlYWRlciksdGhpcy5oZWFkZXJzLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1pY29ucyIpLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIpLnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCB1aS1jb3JuZXItdG9wIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZXhwYW5kZWQiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1jb250cm9scyIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLl9kZXN0cm95SWNvbnMoKSxlPXRoaXMuaGVhZGVycy5uZXh0KCkucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWFjY29yZGlvbi1jb250ZW50IHVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCIpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fHRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkpLHZvaWQgMCl9LF9rZXlkb3duOmZ1bmN0aW9uKHQpe2lmKCF0LmFsdEtleSYmIXQuY3RybEtleSl7dmFyIGk9ZS51aS5rZXlDb2RlLHM9dGhpcy5oZWFkZXJzLmxlbmd0aCxuPXRoaXMuaGVhZGVycy5pbmRleCh0LnRhcmdldCksYT0hMTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGkuUklHSFQ6Y2FzZSBpLkRPV046YT10aGlzLmhlYWRlcnNbKG4rMSklc107YnJlYWs7Y2FzZSBpLkxFRlQ6Y2FzZSBpLlVQOmE9dGhpcy5oZWFkZXJzWyhuLTErcyklc107YnJlYWs7Y2FzZSBpLlNQQUNFOmNhc2UgaS5FTlRFUjp0aGlzLl9ldmVudEhhbmRsZXIodCk7YnJlYWs7Y2FzZSBpLkhPTUU6YT10aGlzLmhlYWRlcnNbMF07YnJlYWs7Y2FzZSBpLkVORDphPXRoaXMuaGVhZGVyc1tzLTFdfWEmJihlKHQudGFyZ2V0KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGUoYSkuYXR0cigidGFiSW5kZXgiLDApLGEuZm9jdXMoKSx0LnByZXZlbnREZWZhdWx0KCkpfX0sX3BhbmVsS2V5RG93bjpmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuVVAmJnQuY3RybEtleSYmZSh0LmN1cnJlbnRUYXJnZXQpLnByZXYoKS5mb2N1cygpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSx0LmFjdGl2ZT09PSExJiZ0LmNvbGxhcHNpYmxlPT09ITB8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnQuYWN0aXZlPT09ITE/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZCgiLnVpLXN0YXRlLWRpc2FibGVkIikubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKE1hdGgubWF4KDAsdC5hY3RpdmUtMSkpOnQuYWN0aXZlPXRoaXMuaGVhZGVycy5pbmRleCh0aGlzLmFjdGl2ZSksdGhpcy5fZGVzdHJveUljb25zKCksdGhpcy5fcmVmcmVzaCgpfSxfcHJvY2Vzc1BhbmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZGVycyx0PXRoaXMucGFuZWxzO3RoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSx0aGlzLnBhbmVscz10aGlzLmhlYWRlcnMubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudCB1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmZpbHRlcigiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIpLmhpZGUoKSx0JiYodGhpcy5fb2ZmKGUubm90KHRoaXMuaGVhZGVycykpLHRoaXMuX29mZih0Lm5vdCh0aGlzLnBhbmVscykpKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXMub3B0aW9ucyxzPWkuaGVpZ2h0U3R5bGUsbj10aGlzLmVsZW1lbnQucGFyZW50KCk7dGhpcy5hY3RpdmU9dGhpcy5fZmluZEFjdGl2ZShpLmFjdGl2ZSkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLnNob3coKSx0aGlzLmhlYWRlcnMuYXR0cigicm9sZSIsInRhYiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC51bmlxdWVJZCgpLmF0dHIoImlkIikscz10Lm5leHQoKSxuPXMudW5pcXVlSWQoKS5hdHRyKCJpZCIpO3QuYXR0cigiYXJpYS1jb250cm9scyIsbikscy5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLGkpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpLHRoaXMuaGVhZGVycy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLHRhYkluZGV4Oi0xfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkuaGlkZSgpLHRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJmYWxzZSJ9KTp0aGlzLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApLHRoaXMuX2NyZWF0ZUljb25zKCksdGhpcy5fc2V0dXBFdmVudHMoaS5ldmVudCksImZpbGwiPT09cz8odD1uLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncygiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPWkuY3NzKCJwb3NpdGlvbiIpOyJhYnNvbHV0ZSIhPT1zJiYiZml4ZWQiIT09cyYmKHQtPWkub3V0ZXJIZWlnaHQoITApKX0pLHRoaXMuaGVhZGVycy5lYWNoKGZ1bmN0aW9uKCl7dC09ZSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLHQtZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXMmJih0PTAsdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dD1NYXRoLm1heCh0LGUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSl9KS5oZWlnaHQodCkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5fZmluZEFjdGl2ZSh0KVswXTtpIT09dGhpcy5hY3RpdmVbMF0mJihpPWl8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmksY3VycmVudFRhcmdldDppLHByZXZlbnREZWZhdWx0OmUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5lcSh0KTplKCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbih0KXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTt0JiZlLmVhY2godC5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9dGhpcy5hY3RpdmUsbj1lKHQuY3VycmVudFRhcmdldCksYT1uWzBdPT09c1swXSxvPWEmJmkuY29sbGFwc2libGUscj1vP2UoKTpuLm5leHQoKSxoPXMubmV4dCgpLGw9e29sZEhlYWRlcjpzLG9sZFBhbmVsOmgsbmV3SGVhZGVyOm8/ZSgpOm4sbmV3UGFuZWw6cn07CnQucHJldmVudERlZmF1bHQoKSxhJiYhaS5jb2xsYXBzaWJsZXx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLHQsbCk9PT0hMXx8KGkuYWN0aXZlPW8/ITE6dGhpcy5oZWFkZXJzLmluZGV4KG4pLHRoaXMuYWN0aXZlPWE/ZSgpOm4sdGhpcy5fdG9nZ2xlKGwpLHMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLGkuaWNvbnMmJnMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKS5yZW1vdmVDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlcikuYWRkQ2xhc3MoaS5pY29ucy5oZWFkZXIpLGF8fChuLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItYWxsIikuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiksaS5pY29ucyYmbi5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKGkuaWNvbnMuaGVhZGVyKS5hZGRDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlciksbi5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24odCl7dmFyIGk9dC5uZXdQYW5lbCxzPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6dC5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PWksdGhpcy5wcmV2SGlkZT1zLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUoaSxzLHQpOihzLmhpZGUoKSxpLnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZSh0KSkscy5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLHMucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksaS5sZW5ndGgmJnMubGVuZ3RoP3MucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6aS5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KGUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGkuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighdC5sZW5ndGh8fGUuaW5kZXgoKTx0LmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGQ9bCYmdS5kb3dufHx1LGM9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZShpKX07cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiYoYT1kKSwic3RyaW5nIj09dHlwZW9mIGQmJihuPWQpLG49bnx8ZC5lYXNpbmd8fHUuZWFzaW5nLGE9YXx8ZC5kdXJhdGlvbnx8dS5kdXJhdGlvbix0Lmxlbmd0aD9lLmxlbmd0aD8ocz1lLnNob3coKS5vdXRlckhlaWdodCgpLHQuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixzdGVwOmZ1bmN0aW9uKGUsdCl7dC5ub3c9TWF0aC5yb3VuZChlKX19KSxlLmhpZGUoKS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLGNvbXBsZXRlOmMsc3RlcDpmdW5jdGlvbihlLGkpe2kubm93PU1hdGgucm91bmQoZSksImhlaWdodCIhPT1pLnByb3A/ImNvbnRlbnQtYm94Ij09PWgmJihyKz1pLm5vdyk6ImNvbnRlbnQiIT09by5vcHRpb25zLmhlaWdodFN0eWxlJiYoaS5ub3c9TWF0aC5yb3VuZChzLXQub3V0ZXJIZWlnaHQoKS1yKSxyPTApfX0pLHZvaWQgMCk6dC5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixjKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGMpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbDt0LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKS5wcmV2KCkucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci10b3AiKS5hZGRDbGFzcygidWktY29ybmVyLWFsbCIpLHQubGVuZ3RoJiYodC5wYXJlbnQoKVswXS5jbGFzc05hbWU9dC5wYXJlbnQoKVswXS5jbGFzc05hbWUpLHRoaXMuX3RyaWdnZXIoImFjdGl2YXRlIixudWxsLGUpfX0pLGUud2lkZ2V0KCJ1aS5tZW51Iix7dmVyc2lvbjoiMS4xMS40IixkZWZhdWx0RWxlbWVudDoiPHVsPiIsZGVsYXk6MzAwLG9wdGlvbnM6e2ljb25zOntzdWJtZW51OiJ1aS1pY29uLWNhcmF0LTEtZSJ9LGl0ZW1zOiI+ICoiLG1lbnVzOiJ1bCIscG9zaXRpb246e215OiJsZWZ0LTEgdG9wIixhdDoicmlnaHQgdG9wIn0scm9sZToibWVudSIsYmx1cjpudWxsLGZvY3VzOm51bGwsc2VsZWN0Om51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZU1lbnU9dGhpcy5lbGVtZW50LHRoaXMubW91c2VIYW5kbGVkPSExLHRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmFkZENsYXNzKCJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLnRvZ2dsZUNsYXNzKCJ1aS1tZW51LWljb25zIiwhIXRoaXMuZWxlbWVudC5maW5kKCIudWktaWNvbiIpLmxlbmd0aCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSx0YWJJbmRleDowfSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLl9vbih7Im1vdXNlZG93biAudWktbWVudS1pdGVtIjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9LCJjbGljayAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXt2YXIgaT1lKHQudGFyZ2V0KTshdGhpcy5tb3VzZUhhbmRsZWQmJmkubm90KCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGgmJih0aGlzLnNlbGVjdCh0KSx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCl8fCh0aGlzLm1vdXNlSGFuZGxlZD0hMCksaS5oYXMoIi51aS1tZW51IikubGVuZ3RoP3RoaXMuZXhwYW5kKHQpOiF0aGlzLmVsZW1lbnQuaXMoIjpmb2N1cyIpJiZlKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCkuY2xvc2VzdCgiLnVpLW1lbnUiKS5sZW5ndGgmJih0aGlzLmVsZW1lbnQudHJpZ2dlcigiZm9jdXMiLFshMF0pLHRoaXMuYWN0aXZlJiYxPT09dGhpcy5hY3RpdmUucGFyZW50cygiLnVpLW1lbnUiKS5sZW5ndGgmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSkpfSwibW91c2VlbnRlciAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXtpZighdGhpcy5wcmV2aW91c0ZpbHRlcil7dmFyIGk9ZSh0LmN1cnJlbnRUYXJnZXQpO2kuc2libGluZ3MoIi51aS1zdGF0ZS1hY3RpdmUiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5mb2N1cyh0LGkpfX0sbW91c2VsZWF2ZToiY29sbGFwc2VBbGwiLCJtb3VzZWxlYXZlIC51aS1tZW51IjoiY29sbGFwc2VBbGwiLGZvY3VzOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5hY3RpdmV8fHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZXEoMCk7dHx8dGhpcy5mb2N1cyhlLGkpfSxibHVyOmZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KXx8dGhpcy5jb2xsYXBzZUFsbCh0KX0pfSxrZXlkb3duOiJfa2V5ZG93biJ9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHtjbGljazpmdW5jdGlvbihlKXt0aGlzLl9jbG9zZU9uRG9jdW1lbnRDbGljayhlKSYmdGhpcy5jb2xsYXBzZUFsbChlKSx0aGlzLm1vdXNlSGFuZGxlZD0hMX19KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1hY3RpdmVkZXNjZW5kYW50IikuZmluZCgiLnVpLW1lbnUiKS5hZGRCYWNrKCkucmVtb3ZlQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtaWNvbnMgdWktZnJvbnQiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxhYmVsbGVkYnkiKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlVW5pcXVlSWQoKS5zaG93KCksdGhpcy5lbGVtZW50LmZpbmQoIi51aS1tZW51LWl0ZW0iKS5yZW1vdmVDbGFzcygidWktbWVudS1pdGVtIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKS5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtaGFzcG9wdXAiKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuZGF0YSgidWktbWVudS1zdWJtZW51LWNhcmF0IikmJnQucmVtb3ZlKCl9KSx0aGlzLmVsZW1lbnQuZmluZCgiLnVpLW1lbnUtZGl2aWRlciIpLnJlbW92ZUNsYXNzKCJ1aS1tZW51LWRpdmlkZXIgdWktd2lkZ2V0LWNvbnRlbnQiKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbz0hMDtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMucHJldmlvdXNQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlBBR0VfRE9XTjp0aGlzLm5leHRQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6dGhpcy5fbW92ZSgiZmlyc3QiLCJmaXJzdCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnRoaXMuX21vdmUoImxhc3QiLCJsYXN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0aGlzLnByZXZpb3VzKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046dGhpcy5uZXh0KHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5jb2xsYXBzZSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5SSUdIVDp0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKCIudWktc3RhdGUtZGlzYWJsZWQiKSYmdGhpcy5leHBhbmQodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5URVI6Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5fYWN0aXZhdGUodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRVNDQVBFOnRoaXMuY29sbGFwc2UodCk7YnJlYWs7ZGVmYXVsdDpvPSExLHM9dGhpcy5wcmV2aW91c0ZpbHRlcnx8IiIsbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksYT0hMSxjbGVhclRpbWVvdXQodGhpcy5maWx0ZXJUaW1lciksbj09PXM/YT0hMDpuPXMrbixpPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhuKSxpPWEmJi0xIT09aS5pbmRleCh0aGlzLmFjdGl2ZS5uZXh0KCkpP3RoaXMuYWN0aXZlLm5leHRBbGwoIi51aS1tZW51LWl0ZW0iKTppLGkubGVuZ3RofHwobj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksaT10aGlzLl9maWx0ZXJNZW51SXRlbXMobikpLGkubGVuZ3RoPyh0aGlzLmZvY3VzKHQsaSksdGhpcy5wcmV2aW91c0ZpbHRlcj1uLHRoaXMuZmlsdGVyVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcn0sMWUzKSk6ZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXJ9byYmdC5wcmV2ZW50RGVmYXVsdCgpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7dGhpcy5hY3RpdmUuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpfHwodGhpcy5hY3RpdmUuaXMoIlthcmlhLWhhc3BvcHVwPSd0cnVlJ10iKT90aGlzLmV4cGFuZChlKTp0aGlzLnNlbGVjdChlKSl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcyxuPXRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51LGE9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLm1lbnVzKTt0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLW1lbnUtaWNvbnMiLCEhdGhpcy5lbGVtZW50LmZpbmQoIi51aS1pY29uIikubGVuZ3RoKSxhLmZpbHRlcigiOm5vdCgudWktbWVudSkiKS5hZGRDbGFzcygidWktbWVudSB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktZnJvbnQiKS5oaWRlKCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSwiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5wYXJlbnQoKSxzPWUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1tZW51LWljb24gdWktaWNvbiAiK24pLmRhdGEoInVpLW1lbnUtc3VibWVudS1jYXJhdCIsITApO2kuYXR0cigiYXJpYS1oYXNwb3B1cCIsInRydWUiKS5wcmVwZW5kKHMpLHQuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixpLmF0dHIoImlkIikpfSksdD1hLmFkZCh0aGlzLmVsZW1lbnQpLGk9dC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcyksaS5ub3QoIi51aS1tZW51LWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtzLl9pc0RpdmlkZXIodCkmJnQuYWRkQ2xhc3MoInVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtZGl2aWRlciIpfSksaS5ub3QoIi51aS1tZW51LWl0ZW0sIC51aS1tZW51LWRpdmlkZXIiKS5hZGRDbGFzcygidWktbWVudS1pdGVtIikudW5pcXVlSWQoKS5hdHRyKHt0YWJJbmRleDotMSxyb2xlOnRoaXMuX2l0ZW1Sb2xlKCl9KSxpLmZpbHRlcigiLnVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLmFjdGl2ZSYmIWUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKSYmdGhpcy5ibHVyKCl9LF9pdGVtUm9sZTpmdW5jdGlvbigpe3JldHVybnttZW51OiJtZW51aXRlbSIsbGlzdGJveDoib3B0aW9uIn1bdGhpcy5vcHRpb25zLnJvbGVdfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Imljb25zIj09PWUmJnRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUpLmFkZENsYXNzKHQuc3VibWVudSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sZm9jdXM6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3RoaXMuYmx1cihlLGUmJiJmb2N1cyI9PT1lLnR5cGUpLHRoaXMuX3Njcm9sbEludG9WaWV3KHQpLHRoaXMuYWN0aXZlPXQuZmlyc3QoKSxzPXRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLm9wdGlvbnMucm9sZSYmdGhpcy5lbGVtZW50LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIscy5hdHRyKCJpZCIpKSx0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLGUmJiJrZXlkb3duIj09PWUudHlwZT90aGlzLl9jbG9zZSgpOnRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSx0aGlzLmRlbGF5KSxpPXQuY2hpbGRyZW4oIi51aS1tZW51IiksaS5sZW5ndGgmJmUmJi9ebW91c2UvLnRlc3QoZS50eXBlKSYmdGhpcy5fc3RhcnRPcGVuaW5nKGkpLHRoaXMuYWN0aXZlTWVudT10LnBhcmVudCgpLHRoaXMuX3RyaWdnZXIoImZvY3VzIixlLHtpdGVtOnR9KX0sX3Njcm9sbEludG9WaWV3OmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scjt0aGlzLl9oYXNTY3JvbGwoKSYmKGk9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sImJvcmRlclRvcFdpZHRoIikpfHwwLHM9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sInBhZGRpbmdUb3AiKSl8fDAsbj10Lm9mZnNldCgpLnRvcC10aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wLWktcyxhPXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKSxvPXRoaXMuYWN0aXZlTWVudS5oZWlnaHQoKSxyPXQub3V0ZXJIZWlnaHQoKSwwPm4/dGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcChhK24pOm4rcj5vJiZ0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKGErbi1vK3IpKX0sYmx1cjpmdW5jdGlvbihlLHQpe3R8fGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmFjdGl2ZSYmKHRoaXMuYWN0aXZlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMuYWN0aXZlPW51bGwsdGhpcy5fdHJpZ2dlcigiYmx1ciIsZSx7aXRlbTp0aGlzLmFjdGl2ZX0pKX0sX3N0YXJ0T3BlbmluZzpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksInRydWUiPT09ZS5hdHRyKCJhcmlhLWhpZGRlbiIpJiYodGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCksdGhpcy5fb3BlbihlKX0sdGhpcy5kZWxheSkpfSxfb3BlbjpmdW5jdGlvbih0KXt2YXIgaT1lLmV4dGVuZCh7b2Y6dGhpcy5hY3RpdmV9LHRoaXMub3B0aW9ucy5wb3NpdGlvbik7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpLm5vdCh0LnBhcmVudHMoIi51aS1tZW51IikpLmhpZGUoKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnNob3coKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikucG9zaXRpb24oaSl9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKHQsaSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt2YXIgcz1pP3RoaXMuZWxlbWVudDplKHQmJnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpKTtzLmxlbmd0aHx8KHM9dGhpcy5lbGVtZW50KSx0aGlzLl9jbG9zZShzKSx0aGlzLmJsdXIodCksdGhpcy5hY3RpdmVNZW51PXN9LHRoaXMuZGVsYXkpfSxfY2xvc2U6ZnVuY3Rpb24oZSl7ZXx8KGU9dGhpcy5hY3RpdmU/dGhpcy5hY3RpdmUucGFyZW50KCk6dGhpcy5lbGVtZW50KSxlLmZpbmQoIi51aS1tZW51IikuaGlkZSgpLmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLmVuZCgpLmZpbmQoIi51aS1zdGF0ZS1hY3RpdmUiKS5ub3QoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0sX2Nsb3NlT25Eb2N1bWVudENsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudSIpLmxlbmd0aH0sX2lzRGl2aWRlcjpmdW5jdGlvbihlKXtyZXR1cm4hL1teXC1cdTIwMTRcdTIwMTNcc10vLnRlc3QoZS50ZXh0KCkpfSxjb2xsYXBzZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFjdGl2ZSYmdGhpcy5hY3RpdmUucGFyZW50KCkuY2xvc2VzdCgiLnVpLW1lbnUtaXRlbSIsdGhpcy5lbGVtZW50KTt0JiZ0Lmxlbmd0aCYmKHRoaXMuX2Nsb3NlKCksdGhpcy5mb2N1cyhlLHQpKX0sZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aXZlJiZ0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLW1lbnUgIikuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpLmZpcnN0KCk7dCYmdC5sZW5ndGgmJih0aGlzLl9vcGVuKHQucGFyZW50KCkpLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cyhlLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoIm5leHQiLCJmaXJzdCIsZSl9LHByZXZpb3VzOmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoInByZXYiLCJsYXN0IixlKX0saXNGaXJzdEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlzLmFjdGl2ZS5wcmV2QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxpc0xhc3RJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5hY3RpdmUubmV4dEFsbCgiLnVpLW1lbnUtaXRlbSIpLmxlbmd0aH0sX21vdmU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzO3RoaXMuYWN0aXZlJiYocz0iZmlyc3QiPT09ZXx8Imxhc3QiPT09ZT90aGlzLmFjdGl2ZVsiZmlyc3QiPT09ZT8icHJldkFsbCI6Im5leHRBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKC0xKTp0aGlzLmFjdGl2ZVtlKyJBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKDApKSxzJiZzLmxlbmd0aCYmdGhpcy5hY3RpdmV8fChzPXRoaXMuYWN0aXZlTWVudS5maW5kKHRoaXMub3B0aW9ucy5pdGVtcylbdF0oKSksdGhpcy5mb2N1cyhpLHMpfSxuZXh0UGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzTGFzdEl0ZW0oKXx8KHRoaXMuX2hhc1Njcm9sbCgpPyhzPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxuPXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmFjdGl2ZS5uZXh0QWxsKCIudWktbWVudS1pdGVtIikuZWFjaChmdW5jdGlvbigpe3JldHVybiBpPWUodGhpcyksMD5pLm9mZnNldCgpLnRvcC1zLW59KSx0aGlzLmZvY3VzKHQsaSkpOnRoaXMuZm9jdXModCx0aGlzLmFjdGl2ZU1lbnUuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpW3RoaXMuYWN0aXZlPyJsYXN0IjoiZmlyc3QiXSgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LHByZXZpb3VzUGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzRmlyc3RJdGVtKCl8fCh0aGlzLl9oYXNTY3JvbGwoKT8ocz10aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3Asbj10aGlzLmVsZW1lbnQuaGVpZ2h0KCksdGhpcy5hY3RpdmUucHJldkFsbCgiLnVpLW1lbnUtaXRlbSIpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gaT1lKHRoaXMpLGkub2Zmc2V0KCkudG9wLXMrbj4wfSksdGhpcy5mb2N1cyh0LGkpKTp0aGlzLmZvY3VzKHQsdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maXJzdCgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LF9oYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCk8dGhpcy5lbGVtZW50LnByb3AoInNjcm9sbEhlaWdodCIpfSxzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmU9dGhpcy5hY3RpdmV8fGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1tZW51LWl0ZW0iKTt2YXIgaT17aXRlbTp0aGlzLmFjdGl2ZX07dGhpcy5hY3RpdmUuaGFzKCIudWktbWVudSIpLmxlbmd0aHx8dGhpcy5jb2xsYXBzZUFsbCh0LCEwKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQsaSl9LF9maWx0ZXJNZW51SXRlbXM6ZnVuY3Rpb24odCl7dmFyIGk9dC5yZXBsYWNlKC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCJcXCQmIikscz1SZWdFeHAoIl4iK2ksImkiKTtyZXR1cm4gdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maWx0ZXIoIi51aS1tZW51LWl0ZW0iKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gcy50ZXN0KGUudHJpbShlKHRoaXMpLnRleHQoKSkpfSl9fSksZS53aWRnZXQoInVpLmF1dG9jb21wbGV0ZSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLG9wdGlvbnM6e2FwcGVuZFRvOm51bGwsYXV0b0ZvY3VzOiExLGRlbGF5OjMwMCxtaW5MZW5ndGg6MSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHNvdXJjZTpudWxsLGNoYW5nZTpudWxsLGNsb3NlOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzcG9uc2U6bnVsbCxzZWFyY2g6bnVsbCxzZWxlY3Q6bnVsbH0scmVxdWVzdEluZGV4OjAscGVuZGluZzowLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpLHMsbj10aGlzLmVsZW1lbnRbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxhPSJ0ZXh0YXJlYSI9PT1uLG89ImlucHV0Ij09PW47dGhpcy5pc011bHRpTGluZT1hPyEwOm8/ITE6dGhpcy5lbGVtZW50LnByb3AoImlzQ29udGVudEVkaXRhYmxlIiksdGhpcy52YWx1ZU1ldGhvZD10aGlzLmVsZW1lbnRbYXx8bz8idmFsIjoidGV4dCJdLHRoaXMuaXNOZXdNZW51PSEwLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYXV0b2NvbXBsZXRlLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIiksdGhpcy5fb24odGhpcy5lbGVtZW50LHtrZXlkb3duOmZ1bmN0aW9uKG4pe2lmKHRoaXMuZWxlbWVudC5wcm9wKCJyZWFkT25seSIpKXJldHVybiB0PSEwLHM9ITAsaT0hMCx2b2lkIDA7dD0hMSxzPSExLGk9ITE7dmFyIGE9ZS51aS5rZXlDb2RlO3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgYS5QQUdFX1VQOnQ9ITAsdGhpcy5fbW92ZSgicHJldmlvdXNQYWdlIixuKTticmVhaztjYXNlIGEuUEFHRV9ET1dOOnQ9ITAsdGhpcy5fbW92ZSgibmV4dFBhZ2UiLG4pO2JyZWFrO2Nhc2UgYS5VUDp0PSEwLHRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIsbik7YnJlYWs7Y2FzZSBhLkRPV046dD0hMCx0aGlzLl9rZXlFdmVudCgibmV4dCIsbik7YnJlYWs7Y2FzZSBhLkVOVEVSOnRoaXMubWVudS5hY3RpdmUmJih0PSEwLG4ucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnUuc2VsZWN0KG4pKTticmVhaztjYXNlIGEuVEFCOnRoaXMubWVudS5hY3RpdmUmJnRoaXMubWVudS5zZWxlY3Qobik7YnJlYWs7Y2FzZSBhLkVTQ0FQRTp0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSYmKHRoaXMuaXNNdWx0aUxpbmV8fHRoaXMuX3ZhbHVlKHRoaXMudGVybSksdGhpcy5jbG9zZShuKSxuLnByZXZlbnREZWZhdWx0KCkpO2JyZWFrO2RlZmF1bHQ6aT0hMCx0aGlzLl9zZWFyY2hUaW1lb3V0KG4pfX0sa2V5cHJlc3M6ZnVuY3Rpb24ocyl7aWYodClyZXR1cm4gdD0hMSwoIXRoaXMuaXNNdWx0aUxpbmV8fHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpKSYmcy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMDtpZighaSl7dmFyIG49ZS51aS5rZXlDb2RlO3N3aXRjaChzLmtleUNvZGUpe2Nhc2Ugbi5QQUdFX1VQOnRoaXMuX21vdmUoInByZXZpb3VzUGFnZSIscyk7YnJlYWs7Y2FzZSBuLlBBR0VfRE9XTjp0aGlzLl9tb3ZlKCJuZXh0UGFnZSIscyk7YnJlYWs7Y2FzZSBuLlVQOnRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIscyk7YnJlYWs7Y2FzZSBuLkRPV046dGhpcy5fa2V5RXZlbnQoIm5leHQiLHMpfX19LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBzPyhzPSExLGUucHJldmVudERlZmF1bHQoKSx2b2lkIDApOih0aGlzLl9zZWFyY2hUaW1lb3V0KGUpLHZvaWQgMCl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCx0aGlzLnByZXZpb3VzPXRoaXMuX3ZhbHVlKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOihjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuY2xvc2UoZSksdGhpcy5fY2hhbmdlKGUpLHZvaWQgMCl9fSksdGhpcy5faW5pdFNvdXJjZSgpLHRoaXMubWVudT1lKCI8dWw+IikuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLm1lbnUoe3JvbGU6bnVsbH0pLmhpZGUoKS5tZW51KCJpbnN0YW5jZSIpLHRoaXMuX29uKHRoaXMubWVudS5lbGVtZW50LHttb3VzZWRvd246ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsQmx1cj0hMCx0aGlzLl9kZWxheShmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNhbmNlbEJsdXJ9KTt2YXIgaT10aGlzLm1lbnUuZWxlbWVudFswXTtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikubGVuZ3RofHx0aGlzLl9kZWxheShmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5kb2N1bWVudC5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24ocyl7cy50YXJnZXQ9PT10LmVsZW1lbnRbMF18fHMudGFyZ2V0PT09aXx8ZS5jb250YWlucyhpLHMudGFyZ2V0KXx8dC5jbG9zZSgpfSl9KX0sbWVudWZvY3VzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbjtyZXR1cm4gdGhpcy5pc05ld01lbnUmJih0aGlzLmlzTmV3TWVudT0hMSx0Lm9yaWdpbmFsRXZlbnQmJi9ebW91c2UvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpKT8odGhpcy5tZW51LmJsdXIoKSx0aGlzLmRvY3VtZW50Lm9uZSgibW91c2Vtb3ZlIixmdW5jdGlvbigpe2UodC50YXJnZXQpLnRyaWdnZXIodC5vcmlnaW5hbEV2ZW50KX0pLHZvaWQgMCk6KG49aS5pdGVtLmRhdGEoInVpLWF1dG9jb21wbGV0ZS1pdGVtIiksITEhPT10aGlzLl90cmlnZ2VyKCJmb2N1cyIsdCx7aXRlbTpufSkmJnQub3JpZ2luYWxFdmVudCYmL15rZXkvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpJiZ0aGlzLl92YWx1ZShuLnZhbHVlKSxzPWkuaXRlbS5hdHRyKCJhcmlhLWxhYmVsIil8fG4udmFsdWUscyYmZS50cmltKHMpLmxlbmd0aCYmKHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQocykuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSksdm9pZCAwKX0sbWVudXNlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXQuaXRlbS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIpLHM9dGhpcy5wcmV2aW91czt0aGlzLmVsZW1lbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQmJih0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXMsdGhpcy5zZWxlY3RlZEl0ZW09aX0pKSwhMSE9PXRoaXMuX3RyaWdnZXIoInNlbGVjdCIsZSx7aXRlbTppfSkmJnRoaXMuX3ZhbHVlKGkudmFsdWUpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLHRoaXMuY2xvc2UoZSksdGhpcy5zZWxlY3RlZEl0ZW09aX19KSx0aGlzLmxpdmVSZWdpb249ZSgiPHNwYW4+Iix7cm9sZToic3RhdHVzIiwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyJ9KS5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIikuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnNlYXJjaGluZyksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hdXRvY29tcGxldGUtaW5wdXQiKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKSx0aGlzLm1lbnUuZWxlbWVudC5yZW1vdmUoKSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJzb3VyY2UiPT09ZSYmdGhpcy5faW5pdFNvdXJjZSgpLCJhcHBlbmRUbyI9PT1lJiZ0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiZGlzYWJsZWQiPT09ZSYmdCYmdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCl9LF9hcHBlbmRUbzpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5hcHBlbmRUbztyZXR1cm4gdCYmKHQ9dC5qcXVlcnl8fHQubm9kZVR5cGU/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodCkuZXEoMCkpLHQmJnRbMF18fCh0PXRoaXMuZWxlbWVudC5jbG9zZXN0KCIudWktZnJvbnQiKSksdC5sZW5ndGh8fCh0PXRoaXMuZG9jdW1lbnRbMF0uYm9keSksdH0sX2luaXRTb3VyY2U6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcztlLmlzQXJyYXkodGhpcy5vcHRpb25zLnNvdXJjZSk/KHQ9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbihpLHMpe3MoZS51aS5hdXRvY29tcGxldGUuZmlsdGVyKHQsaS50ZXJtKSl9KToic3RyaW5nIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zb3VyY2U/KGk9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbih0LG4pe3MueGhyJiZzLnhoci5hYm9ydCgpLHMueGhyPWUuYWpheCh7dXJsOmksZGF0YTp0LGRhdGFUeXBlOiJqc29uIixzdWNjZXNzOmZ1bmN0aW9uKGUpe24oZSl9LGVycm9yOmZ1bmN0aW9uKCl7bihbXSl9fSl9KTp0aGlzLnNvdXJjZT10aGlzLm9wdGlvbnMuc291cmNlfSxfc2VhcmNoVGltZW91dDpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuc2VhcmNoaW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXJtPT09dGhpcy5fdmFsdWUoKSxpPXRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpLHM9ZS5hbHRLZXl8fGUuY3RybEtleXx8ZS5tZXRhS2V5fHxlLnNoaWZ0S2V5OyghdHx8dCYmIWkmJiFzKSYmKHRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsdGhpcy5zZWFyY2gobnVsbCxlKSl9LHRoaXMub3B0aW9ucy5kZWxheSl9LHNlYXJjaDpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWU/ZTp0aGlzLl92YWx1ZSgpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLGUubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGg/dGhpcy5jbG9zZSh0KTp0aGlzLl90cmlnZ2VyKCJzZWFyY2giLHQpIT09ITE/dGhpcy5fc2VhcmNoKGUpOnZvaWQgMH0sX3NlYXJjaDpmdW5jdGlvbihlKXt0aGlzLnBlbmRpbmcrKyx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiksdGhpcy5jYW5jZWxTZWFyY2g9ITEsdGhpcy5zb3VyY2Uoe3Rlcm06ZX0sdGhpcy5fcmVzcG9uc2UoKSl9LF9yZXNwb25zZTpmdW5jdGlvbigpe3ZhciB0PSsrdGhpcy5yZXF1ZXN0SW5kZXg7cmV0dXJuIGUucHJveHkoZnVuY3Rpb24oZSl7dD09PXRoaXMucmVxdWVzdEluZGV4JiZ0aGlzLl9fcmVzcG9uc2UoZSksdGhpcy5wZW5kaW5nLS0sdGhpcy5wZW5kaW5nfHx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIil9LHRoaXMpfSxfX3Jlc3BvbnNlOmZ1bmN0aW9uKGUpe2UmJihlPXRoaXMuX25vcm1hbGl6ZShlKSksdGhpcy5fdHJpZ2dlcigicmVzcG9uc2UiLG51bGwse2NvbnRlbnQ6ZX0pLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmUmJmUubGVuZ3RoJiYhdGhpcy5jYW5jZWxTZWFyY2g/KHRoaXMuX3N1Z2dlc3QoZSksdGhpcy5fdHJpZ2dlcigib3BlbiIpKTp0aGlzLl9jbG9zZSgpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmNhbmNlbFNlYXJjaD0hMCx0aGlzLl9jbG9zZShlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpJiYodGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpLHRoaXMubWVudS5ibHVyKCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5fdHJpZ2dlcigiY2xvc2UiLGUpKX0sX2NoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnByZXZpb3VzIT09dGhpcy5fdmFsdWUoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHtpdGVtOnRoaXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdLmxhYmVsJiZ0WzBdLnZhbHVlP3Q6ZS5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/e2xhYmVsOnQsdmFsdWU6dH06ZS5leHRlbmQoe30sdCx7bGFiZWw6dC5sYWJlbHx8dC52YWx1ZSx2YWx1ZTp0LnZhbHVlfHx0LmxhYmVsfSl9KX0sX3N1Z2dlc3Q6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTt0aGlzLl9yZW5kZXJNZW51KGksdCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5tZW51LnJlZnJlc2goKSxpLnNob3coKSx0aGlzLl9yZXNpemVNZW51KCksaS5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5lbGVtZW50fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKSx0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzJiZ0aGlzLm1lbnUubmV4dCgpfSxfcmVzaXplTWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVudS5lbGVtZW50O2Uub3V0ZXJXaWR0aChNYXRoLm1heChlLndpZHRoKCIiKS5vdXRlcldpZHRoKCkrMSx0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpKSl9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztlLmVhY2goaSxmdW5jdGlvbihlLGkpe3MuX3JlbmRlckl0ZW1EYXRhKHQsaSl9KX0sX3JlbmRlckl0ZW1EYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3JlbmRlckl0ZW0oZSx0KS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUoIjxsaT4iKS50ZXh0KGkubGFiZWwpLmFwcGVuZFRvKHQpfSxfbW92ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKT90aGlzLm1lbnUuaXNGaXJzdEl0ZW0oKSYmL15wcmV2aW91cy8udGVzdChlKXx8dGhpcy5tZW51LmlzTGFzdEl0ZW0oKSYmL15uZXh0Ly50ZXN0KGUpPyh0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLl92YWx1ZSh0aGlzLnRlcm0pLHRoaXMubWVudS5ibHVyKCksdm9pZCAwKToodGhpcy5tZW51W2VdKHQpLHZvaWQgMCk6KHRoaXMuc2VhcmNoKG51bGwsdCksdm9pZCAwKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudS5lbGVtZW50fSxfdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU1ldGhvZC5hcHBseSh0aGlzLmVsZW1lbnQsYXJndW1lbnRzKX0sX2tleUV2ZW50OmZ1bmN0aW9uKGUsdCl7KCF0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSkmJih0aGlzLl9tb3ZlKGUsdCksdC5wcmV2ZW50RGVmYXVsdCgpKX19KSxlLmV4dGVuZChlLnVpLmF1dG9jb21wbGV0ZSx7ZXNjYXBlUmVnZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywiXFwkJiIpfSxmaWx0ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz1SZWdFeHAoZS51aS5hdXRvY29tcGxldGUuZXNjYXBlUmVnZXgoaSksImkiKTtyZXR1cm4gZS5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlLmxhYmVsfHxlLnZhbHVlfHxlKX0pfX0pLGUud2lkZ2V0KCJ1aS5hdXRvY29tcGxldGUiLGUudWkuYXV0b2NvbXBsZXRlLHtvcHRpb25zOnttZXNzYWdlczp7bm9SZXN1bHRzOiJObyBzZWFyY2ggcmVzdWx0cy4iLHJlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrKGU+MT8iIHJlc3VsdHMgYXJlIjoiIHJlc3VsdCBpcyIpKyIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4ifX19LF9fcmVzcG9uc2U6ZnVuY3Rpb24odCl7dmFyIGk7dGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5jYW5jZWxTZWFyY2h8fChpPXQmJnQubGVuZ3RoP3RoaXMub3B0aW9ucy5tZXNzYWdlcy5yZXN1bHRzKHQubGVuZ3RoKTp0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzLHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQoaSkuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSl9fSksZS51aS5hdXRvY29tcGxldGU7dmFyIHIsaD0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLGw9InVpLWJ1dHRvbi1pY29ucy1vbmx5IHVpLWJ1dHRvbi1pY29uLW9ubHkgdWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IHVpLWJ1dHRvbi10ZXh0LW9ubHkiLHU9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmZpbmQoIjp1aS1idXR0b24iKS5idXR0b24oInJlZnJlc2giKX0sMSl9LGQ9ZnVuY3Rpb24odCl7dmFyIGk9dC5uYW1lLHM9dC5mb3JtLG49ZShbXSk7cmV0dXJuIGkmJihpPWkucmVwbGFjZSgvJy9nLCJcXCciKSxuPXM/ZShzKS5maW5kKCJbbmFtZT0nIitpKyInXVt0eXBlPXJhZGlvXSIpOmUoIltuYW1lPSciK2krIiddW3R5cGU9cmFkaW9dIix0Lm93bmVyRG9jdW1lbnQpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiF0aGlzLmZvcm19KSksbn07ZS53aWRnZXQoInVpLmJ1dHRvbiIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxidXR0b24+IixvcHRpb25zOntkaXNhYmxlZDpudWxsLHRleHQ6ITAsbGFiZWw6bnVsbCxpY29uczp7cHJpbWFyeTpudWxsLHNlY29uZGFyeTpudWxsfX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5jbG9zZXN0KCJmb3JtIikudW5iaW5kKCJyZXNldCIrdGhpcy5ldmVudE5hbWVzcGFjZSkuYmluZCgicmVzZXQiK3RoaXMuZXZlbnROYW1lc3BhY2UsdSksImJvb2xlYW4iIT10eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkP3RoaXMub3B0aW9ucy5kaXNhYmxlZD0hIXRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCksdGhpcy5oYXNUaXRsZT0hIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJ0aXRsZSIpO3ZhciB0PXRoaXMsaT10aGlzLm9wdGlvbnMscz0iY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlLG49cz8iIjoidWktc3RhdGUtYWN0aXZlIjtudWxsPT09aS5sYWJlbCYmKGkubGFiZWw9ImlucHV0Ij09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQudmFsKCk6dGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSksdGhpcy5faG92ZXJhYmxlKHRoaXMuYnV0dG9uRWxlbWVudCksdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKGgpLmF0dHIoInJvbGUiLCJidXR0b24iKS5iaW5kKCJtb3VzZWVudGVyIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7aS5kaXNhYmxlZHx8dGhpcz09PXImJmUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgibW91c2VsZWF2ZSIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2kuZGlzYWJsZWR8fGUodGhpcykucmVtb3ZlQ2xhc3Mobil9KS5iaW5kKCJjbGljayIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbihlKXtpLmRpc2FibGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfSksdGhpcy5fb24oe2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pLHMmJnRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UiK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXt0LnJlZnJlc2goKX0pLCJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5idXR0b25FbGVtZW50LmJpbmQoImNsaWNrIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6dm9pZCAwfSk6InJhZGlvIj09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgiY2xpY2siK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXtpZihpLmRpc2FibGVkKXJldHVybiExO2UodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHQuYnV0dG9uRWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik7dmFyIHM9dC5lbGVtZW50WzBdO2Qocykubm90KHMpLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKX0pOih0aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgibW91c2Vkb3duIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6KGUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHI9dGhpcyx0LmRvY3VtZW50Lm9uZSgibW91c2V1cCIsZnVuY3Rpb24oKXtyPW51bGx9KSx2b2lkIDApfSkuYmluZCgibW91c2V1cCIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe3JldHVybiBpLmRpc2FibGVkPyExOihlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx2b2lkIDApfSkuYmluZCgia2V5ZG93biIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbih0KXtyZXR1cm4gaS5kaXNhYmxlZD8hMTooKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5TUEFDRXx8dC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVOVEVSKSYmZSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdm9pZCAwKX0pLmJpbmQoImtleXVwIit0aGlzLmV2ZW50TmFtZXNwYWNlKyIgYmx1ciIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSksdGhpcy5idXR0b25FbGVtZW50LmlzKCJhIikmJnRoaXMuYnV0dG9uRWxlbWVudC5rZXl1cChmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuU1BBQ0UmJmUodGhpcykuY2xpY2soKX0pKSx0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIixpLmRpc2FibGVkKSx0aGlzLl9yZXNldEJ1dHRvbigpfSxfZGV0ZXJtaW5lQnV0dG9uVHlwZTpmdW5jdGlvbigpe3ZhciBlLHQsaTt0aGlzLnR5cGU9dGhpcy5lbGVtZW50LmlzKCJbdHlwZT1jaGVja2JveF0iKT8iY2hlY2tib3giOnRoaXMuZWxlbWVudC5pcygiW3R5cGU9cmFkaW9dIik/InJhZGlvIjp0aGlzLmVsZW1lbnQuaXMoImlucHV0Iik/ImlucHV0IjoiYnV0dG9uIiwiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlPyhlPXRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpLHQ9ImxhYmVsW2Zvcj0nIit0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSsiJ10iLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbmQodCksdGhpcy5idXR0b25FbGVtZW50Lmxlbmd0aHx8KGU9ZS5sZW5ndGg/ZS5zaWJsaW5ncygpOnRoaXMuZWxlbWVudC5zaWJsaW5ncygpLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbHRlcih0KSx0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RofHwodGhpcy5idXR0b25FbGVtZW50PWUuZmluZCh0KSkpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiksaT10aGlzLmVsZW1lbnQuaXMoIjpjaGVja2VkIiksaSYmdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCgiYXJpYS1wcmVzc2VkIixpKSk6dGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpLHRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyhoKyIgdWktc3RhdGUtYWN0aXZlICIrbCkucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtcHJlc3NlZCIpLmh0bWwodGhpcy5idXR0b25FbGVtZW50LmZpbmQoIi51aS1idXR0b24tdGV4dCIpLmh0bWwoKSksdGhpcy5oYXNUaXRsZXx8dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoInRpdGxlIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZT8odGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCksdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIiwhIXQpLHQmJigiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlP3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIpKSx2b2lkIDApOih0aGlzLl9yZXNldEJ1dHRvbigpLHZvaWQgMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuaXMoImlucHV0LCBidXR0b24iKT90aGlzLmVsZW1lbnQuaXMoIjpkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5oYXNDbGFzcygidWktYnV0dG9uLWRpc2FibGVkIik7dCE9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdCksInJhZGlvIj09PXRoaXMudHlwZT9kKHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe2UodGhpcykuaXMoIjpjaGVja2VkIik/ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik6ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpfSk6ImNoZWNrYm94Ij09PXRoaXMudHlwZSYmKHRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsInRydWUiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIikpfSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZigiaW5wdXQiPT09dGhpcy50eXBlKXJldHVybiB0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxlbWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKSx2b2lkIDA7dmFyIHQ9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGwpLGk9ZSgiPHNwYW4+PC9zcGFuPiIsdGhpcy5kb2N1bWVudFswXSkuYWRkQ2xhc3MoInVpLWJ1dHRvbi10ZXh0IikuaHRtbCh0aGlzLm9wdGlvbnMubGFiZWwpLmFwcGVuZFRvKHQuZW1wdHkoKSkudGV4dCgpLHM9dGhpcy5vcHRpb25zLmljb25zLG49cy5wcmltYXJ5JiZzLnNlY29uZGFyeSxhPVtdO3MucHJpbWFyeXx8cy5zZWNvbmRhcnk/KHRoaXMub3B0aW9ucy50ZXh0JiZhLnB1c2goInVpLWJ1dHRvbi10ZXh0LWljb24iKyhuPyJzIjpzLnByaW1hcnk/Ii1wcmltYXJ5IjoiLXNlY29uZGFyeSIpKSxzLnByaW1hcnkmJnQucHJlcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiAiK3MucHJpbWFyeSsiJz48L3NwYW4+Iikscy5zZWNvbmRhcnkmJnQuYXBwZW5kKCI8c3BhbiBjbGFzcz0ndWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHVpLWljb24gIitzLnNlY29uZGFyeSsiJz48L3NwYW4+IiksdGhpcy5vcHRpb25zLnRleHR8fChhLnB1c2gobj8idWktYnV0dG9uLWljb25zLW9ubHkiOiJ1aS1idXR0b24taWNvbi1vbmx5IiksdGhpcy5oYXNUaXRsZXx8dC5hdHRyKCJ0aXRsZSIsZS50cmltKGkpKSkpOmEucHVzaCgidWktYnV0dG9uLXRleHQtb25seSIpLHQuYWRkQ2xhc3MoYS5qb2luKCIgIikpfX0pLGUud2lkZ2V0KCJ1aS5idXR0b25zZXQiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2l0ZW1zOiJidXR0b24sIGlucHV0W3R5cGU9YnV0dG9uXSwgaW5wdXRbdHlwZT1zdWJtaXRdLCBpbnB1dFt0eXBlPXJlc2V0XSwgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dLCBhLCA6ZGF0YSh1aS1idXR0b24pIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uc2V0Iil9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiZGlzYWJsZWQiPT09ZSYmdGhpcy5idXR0b25zLmJ1dHRvbigib3B0aW9uIixlLHQpLHRoaXMuX3N1cGVyKGUsdCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD0icnRsIj09PXRoaXMuZWxlbWVudC5jc3MoImRpcmVjdGlvbiIpLGk9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKSxzPWkuZmlsdGVyKCI6dWktYnV0dG9uIik7aS5ub3QoIjp1aS1idXR0b24iKS5idXR0b24oKSxzLmJ1dHRvbigicmVmcmVzaCIpLHRoaXMuYnV0dG9ucz1pLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5maWx0ZXIoIjpmaXJzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1yaWdodCI6InVpLWNvcm5lci1sZWZ0IikuZW5kKCkuZmlsdGVyKCI6bGFzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1sZWZ0IjoidWktY29ybmVyLXJpZ2h0IikuZW5kKCkuZW5kKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b25zZXQiKSx0aGlzLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5idXR0b24oImRlc3Ryb3kiKX19KSxlLnVpLmJ1dHRvbixlLndpZGdldCgidWkuZGlhbG9nIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b09wZW46ITAsYnV0dG9uczpbXSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDoiQ2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTohMCxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxNTAsbWluV2lkdGg6MTUwLG1vZGFsOiExLHBvc2l0aW9uOntteToiY2VudGVyIixhdDoiY2VudGVyIixvZjp3aW5kb3csY29sbGlzaW9uOiJmaXQiLHVzaW5nOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcykuY3NzKHQpLm9mZnNldCgpLnRvcDswPmkmJmUodGhpcykuY3NzKCJ0b3AiLHQudG9wLWkpfX0scmVzaXphYmxlOiEwLHNob3c6bnVsbCx0aXRsZTpudWxsLHdpZHRoOjMwMCxiZWZvcmVDbG9zZTpudWxsLGNsb3NlOm51bGwsZHJhZzpudWxsLGRyYWdTdGFydDpudWxsLGRyYWdTdG9wOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzaXplOm51bGwscmVzaXplU3RhcnQ6bnVsbCxyZXNpemVTdG9wOm51bGx9LHNpemVSZWxhdGVkT3B0aW9uczp7YnV0dG9uczohMCxoZWlnaHQ6ITAsbWF4SGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1pbkhlaWdodDohMCxtaW5XaWR0aDohMCx3aWR0aDohMH0scmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6e21heEhlaWdodDohMCxtYXhXaWR0aDohMCxtaW5IZWlnaHQ6ITAsbWluV2lkdGg6ITB9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsQ3NzPXtkaXNwbGF5OnRoaXMuZWxlbWVudFswXS5zdHlsZS5kaXNwbGF5LHdpZHRoOnRoaXMuZWxlbWVudFswXS5zdHlsZS53aWR0aCxtaW5IZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1pbkhlaWdodCxtYXhIZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1heEhlaWdodCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLmhlaWdodH0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtwYXJlbnQ6dGhpcy5lbGVtZW50LnBhcmVudCgpLGluZGV4OnRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KHRoaXMuZWxlbWVudCl9LHRoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQuYXR0cigidGl0bGUiKSx0aGlzLm9wdGlvbnMudGl0bGU9dGhpcy5vcHRpb25zLnRpdGxlfHx0aGlzLm9yaWdpbmFsVGl0bGUsdGhpcy5fY3JlYXRlV3JhcHBlcigpLHRoaXMuZWxlbWVudC5zaG93KCkucmVtb3ZlQXR0cigidGl0bGUiKS5hZGRDbGFzcygidWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiKS5hcHBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9jcmVhdGVUaXRsZWJhcigpLHRoaXMuX2NyZWF0ZUJ1dHRvblBhbmUoKSx0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlJiZlLmZuLmRyYWdnYWJsZSYmdGhpcy5fbWFrZURyYWdnYWJsZSgpLHRoaXMub3B0aW9ucy5yZXNpemFibGUmJmUuZm4ucmVzaXphYmxlJiZ0aGlzLl9tYWtlUmVzaXphYmxlKCksdGhpcy5faXNPcGVuPSExLHRoaXMuX3RyYWNrRm9jdXMoKX0sX2luaXQ6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYXV0b09wZW4mJnRoaXMub3BlbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0LmpxdWVyeXx8dC5ub2RlVHlwZSk/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodHx8ImJvZHkiKS5lcSgwKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3JpZ2luYWxQb3NpdGlvbjt0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLl9kZXN0cm95T3ZlcmxheSgpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmNzcyh0aGlzLm9yaWdpbmFsQ3NzKS5kZXRhY2goKSx0aGlzLnVpRGlhbG9nLnN0b3AoITAsITApLnJlbW92ZSgpLHRoaXMub3JpZ2luYWxUaXRsZSYmdGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIix0aGlzLm9yaWdpbmFsVGl0bGUpLGU9dC5wYXJlbnQuY2hpbGRyZW4oKS5lcSh0LmluZGV4KSxlLmxlbmd0aCYmZVswXSE9PXRoaXMuZWxlbWVudFswXT9lLmJlZm9yZSh0aGlzLmVsZW1lbnQpOnQucGFyZW50LmFwcGVuZCh0aGlzLmVsZW1lbnQpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51aURpYWxvZ30sZGlzYWJsZTplLm5vb3AsZW5hYmxlOmUubm9vcCxjbG9zZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXM7aWYodGhpcy5faXNPcGVuJiZ0aGlzLl90cmlnZ2VyKCJiZWZvcmVDbG9zZSIsdCkhPT0hMSl7aWYodGhpcy5faXNPcGVuPSExLHRoaXMuX2ZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5fZGVzdHJveU92ZXJsYXkoKSx0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSwhdGhpcy5vcGVuZXIuZmlsdGVyKCI6Zm9jdXNhYmxlIikuZm9jdXMoKS5sZW5ndGgpdHJ5e2k9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGkmJiJib2R5IiE9PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpKS5ibHVyKCl9Y2F0Y2gobil7fXRoaXMuX2hpZGUodGhpcy51aURpYWxvZyx0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe3MuX3RyaWdnZXIoImNsb3NlIix0KX0pfX0saXNPcGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzT3Blbn0sbW92ZVRvVG9wOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVRvVG9wKCl9LF9tb3ZlVG9Ub3A6ZnVuY3Rpb24odCxpKXt2YXIgcz0hMSxuPXRoaXMudWlEaWFsb2cuc2libGluZ3MoIi51aS1mcm9udDp2aXNpYmxlIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuK2UodGhpcykuY3NzKCJ6LWluZGV4Iil9KS5nZXQoKSxhPU1hdGgubWF4LmFwcGx5KG51bGwsbik7cmV0dXJuIGE+PSt0aGlzLnVpRGlhbG9nLmNzcygiei1pbmRleCIpJiYodGhpcy51aURpYWxvZy5jc3MoInotaW5kZXgiLGErMSkscz0hMCkscyYmIWkmJnRoaXMuX3RyaWdnZXIoImZvY3VzIix0KSxzfSxvcGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faXNPcGVuPyh0aGlzLl9tb3ZlVG9Ub3AoKSYmdGhpcy5fZm9jdXNUYWJiYWJsZSgpLHZvaWQgMCk6KHRoaXMuX2lzT3Blbj0hMCx0aGlzLm9wZW5lcj1lKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCksdGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCksdGhpcy5fY3JlYXRlT3ZlcmxheSgpLHRoaXMuX21vdmVUb1RvcChudWxsLCEwKSx0aGlzLm92ZXJsYXkmJnRoaXMub3ZlcmxheS5jc3MoInotaW5kZXgiLHRoaXMudWlEaWFsb2cuY3NzKCJ6LWluZGV4IiktMSksdGhpcy5fc2hvdyh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5zaG93LGZ1bmN0aW9uKCl7dC5fZm9jdXNUYWJiYWJsZSgpLHQuX3RyaWdnZXIoImZvY3VzIil9KSx0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl90cmlnZ2VyKCJvcGVuIiksdm9pZCAwKX0sX2ZvY3VzVGFiYmFibGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9mb2N1c2VkRWxlbWVudDtlfHwoZT10aGlzLmVsZW1lbnQuZmluZCgiW2F1dG9mb2N1c10iKSksZS5sZW5ndGh8fChlPXRoaXMuZWxlbWVudC5maW5kKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmZpbmQoIjp0YWJiYWJsZSIpKSxlLmxlbmd0aHx8KGU9dGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuZmlsdGVyKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2cpLGUuZXEoMCkuZm9jdXMoKX0sX2tlZXBGb2N1czpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIHQ9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGk9dGhpcy51aURpYWxvZ1swXT09PXR8fGUuY29udGFpbnModGhpcy51aURpYWxvZ1swXSx0KTtpfHx0aGlzLl9mb2N1c1RhYmJhYmxlKCl9dC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLl9kZWxheShpKX0sX2NyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oKXt0aGlzLnVpRGlhbG9nPWUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1mcm9udCAiK3RoaXMub3B0aW9ucy5kaWFsb2dDbGFzcykuaGlkZSgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6ImRpYWxvZyJ9KS5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nLHtrZXlkb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmdC5rZXlDb2RlJiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuRVNDQVBFKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZSh0KSx2b2lkIDA7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlRBQiYmIXQuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBpPXRoaXMudWlEaWFsb2cuZmluZCgiOnRhYmJhYmxlIikscz1pLmZpbHRlcigiOmZpcnN0Iiksbj1pLmZpbHRlcigiOmxhc3QiKTt0LnRhcmdldCE9PW5bMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8dC5zaGlmdEtleT90LnRhcmdldCE9PXNbMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8IXQuc2hpZnRLZXl8fCh0aGlzLl9kZWxheShmdW5jdGlvbigpe24uZm9jdXMoKX0pLHQucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7cy5mb2N1cygpfSksdC5wcmV2ZW50RGVmYXVsdCgpKX19LG1vdXNlZG93bjpmdW5jdGlvbihlKXt0aGlzLl9tb3ZlVG9Ub3AoZSkmJnRoaXMuX2ZvY3VzVGFiYmFibGUoKX19KSx0aGlzLmVsZW1lbnQuZmluZCgiW2FyaWEtZGVzY3JpYmVkYnldIikubGVuZ3RofHx0aGlzLnVpRGlhbG9nLmF0dHIoeyJhcmlhLWRlc2NyaWJlZGJ5Ijp0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCJpZCIpfSl9LF9jcmVhdGVUaXRsZWJhcjpmdW5jdGlvbigpe3ZhciB0O3RoaXMudWlEaWFsb2dUaXRsZWJhcj1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIHVpLWhlbHBlci1jbGVhcmZpeCIpLnByZXBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nVGl0bGViYXIse21vdXNlZG93bjpmdW5jdGlvbih0KXtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIil8fHRoaXMudWlEaWFsb2cuZm9jdXMoKX19KSx0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZT1lKCI8YnV0dG9uIHR5cGU9J2J1dHRvbic+PC9idXR0b24+IikuYnV0dG9uKHtsYWJlbDp0aGlzLm9wdGlvbnMuY2xvc2VUZXh0LGljb25zOntwcmltYXJ5OiJ1aS1pY29uLWNsb3NldGhpY2sifSx0ZXh0OiExfSkuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIpLmFwcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fb24odGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2Use2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlKGUpfX0pLHQ9ZSgiPHNwYW4+IikudW5pcXVlSWQoKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlIikucHJlcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fdGl0bGUodCksdGhpcy51aURpYWxvZy5hdHRyKHsiYXJpYS1sYWJlbGxlZGJ5Ijp0LmF0dHIoImlkIil9KX0sX3RpdGxlOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucy50aXRsZXx8ZS5odG1sKCImIzE2MDsiKSxlLnRleHQodGhpcy5vcHRpb25zLnRpdGxlKQp9LF9jcmVhdGVCdXR0b25QYW5lOmZ1bmN0aW9uKCl7dGhpcy51aURpYWxvZ0J1dHRvblBhbmU9ZSgiPGRpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiksdGhpcy51aUJ1dHRvblNldD1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctYnV0dG9uc2V0IikuYXBwZW5kVG8odGhpcy51aURpYWxvZ0J1dHRvblBhbmUpLHRoaXMuX2NyZWF0ZUJ1dHRvbnMoKX0sX2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zLmJ1dHRvbnM7cmV0dXJuIHRoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpLHRoaXMudWlCdXR0b25TZXQuZW1wdHkoKSxlLmlzRW1wdHlPYmplY3QoaSl8fGUuaXNBcnJheShpKSYmIWkubGVuZ3RoPyh0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctYnV0dG9ucyIpLHZvaWQgMCk6KGUuZWFjaChpLGZ1bmN0aW9uKGkscyl7dmFyIG4sYTtzPWUuaXNGdW5jdGlvbihzKT97Y2xpY2s6cyx0ZXh0Oml9OnMscz1lLmV4dGVuZCh7dHlwZToiYnV0dG9uIn0scyksbj1zLmNsaWNrLHMuY2xpY2s9ZnVuY3Rpb24oKXtuLmFwcGx5KHQuZWxlbWVudFswXSxhcmd1bWVudHMpfSxhPXtpY29uczpzLmljb25zLHRleHQ6cy5zaG93VGV4dH0sZGVsZXRlIHMuaWNvbnMsZGVsZXRlIHMuc2hvd1RleHQsZSgiPGJ1dHRvbj48L2J1dHRvbj4iLHMpLmJ1dHRvbihhKS5hcHBlbmRUbyh0LnVpQnV0dG9uU2V0KX0pLHRoaXMudWlEaWFsb2cuYWRkQ2xhc3MoInVpLWRpYWxvZy1idXR0b25zIiksdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuYXBwZW5kVG8odGhpcy51aURpYWxvZyksdm9pZCAwKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybntwb3NpdGlvbjplLnBvc2l0aW9uLG9mZnNldDplLm9mZnNldH19dmFyIGk9dGhpcyxzPXRoaXMub3B0aW9uczt0aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLGhhbmRsZToiLnVpLWRpYWxvZy10aXRsZWJhciIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixzdGFydDpmdW5jdGlvbihzLG4pe2UodGhpcykuYWRkQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpLGkuX2Jsb2NrRnJhbWVzKCksaS5fdHJpZ2dlcigiZHJhZ1N0YXJ0IixzLHQobikpfSxkcmFnOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigiZHJhZyIsZSx0KHMpKX0sc3RvcDpmdW5jdGlvbihuLGEpe3ZhciBvPWEub2Zmc2V0LmxlZnQtaS5kb2N1bWVudC5zY3JvbGxMZWZ0KCkscj1hLm9mZnNldC50b3AtaS5kb2N1bWVudC5zY3JvbGxUb3AoKTtzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisobz49MD8iKyI6IiIpK28rIiAiKyJ0b3AiKyhyPj0wPyIrIjoiIikrcixvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLWRyYWdnaW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoImRyYWdTdG9wIixuLHQoYSkpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7cmV0dXJue29yaWdpbmFsUG9zaXRpb246ZS5vcmlnaW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTplLm9yaWdpbmFsU2l6ZSxwb3NpdGlvbjplLnBvc2l0aW9uLHNpemU6ZS5zaXplfX12YXIgaT10aGlzLHM9dGhpcy5vcHRpb25zLG49cy5yZXNpemFibGUsYT10aGlzLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKSxvPSJzdHJpbmciPT10eXBlb2Ygbj9uOiJuLGUscyx3LHNlLHN3LG5lLG53Ijt0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsYWxzb1Jlc2l6ZTp0aGlzLmVsZW1lbnQsbWF4V2lkdGg6cy5tYXhXaWR0aCxtYXhIZWlnaHQ6cy5tYXhIZWlnaHQsbWluV2lkdGg6cy5taW5XaWR0aCxtaW5IZWlnaHQ6dGhpcy5fbWluSGVpZ2h0KCksaGFuZGxlczpvLHN0YXJ0OmZ1bmN0aW9uKHMsbil7ZSh0aGlzKS5hZGRDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fYmxvY2tGcmFtZXMoKSxpLl90cmlnZ2VyKCJyZXNpemVTdGFydCIscyx0KG4pKX0scmVzaXplOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigicmVzaXplIixlLHQocykpfSxzdG9wOmZ1bmN0aW9uKG4sYSl7dmFyIG89aS51aURpYWxvZy5vZmZzZXQoKSxyPW8ubGVmdC1pLmRvY3VtZW50LnNjcm9sbExlZnQoKSxoPW8udG9wLWkuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7cy5oZWlnaHQ9aS51aURpYWxvZy5oZWlnaHQoKSxzLndpZHRoPWkudWlEaWFsb2cud2lkdGgoKSxzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisocj49MD8iKyI6IiIpK3IrIiAiKyJ0b3AiKyhoPj0wPyIrIjoiIikraCxvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoInJlc2l6ZVN0b3AiLG4sdChhKSl9fSkuY3NzKCJwb3NpdGlvbiIsYSl9LF90cmFja0ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fb24odGhpcy53aWRnZXQoKSx7Zm9jdXNpbjpmdW5jdGlvbih0KXt0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl9mb2N1c2VkRWxlbWVudD1lKHQudGFyZ2V0KX19KX0sX21ha2VGb2N1c1RhcmdldDpmdW5jdGlvbigpe3RoaXMuX3VudHJhY2tJbnN0YW5jZSgpLHRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCkudW5zaGlmdCh0aGlzKX0sX3VudHJhY2tJbnN0YW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCksaT1lLmluQXJyYXkodGhpcyx0KTstMSE9PWkmJnQuc3BsaWNlKGksMSl9LF90cmFja2luZ0luc3RhbmNlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLWluc3RhbmNlcyIpO3JldHVybiBlfHwoZT1bXSx0aGlzLmRvY3VtZW50LmRhdGEoInVpLWRpYWxvZy1pbnN0YW5jZXMiLGUpKSxlfSxfbWluSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiJhdXRvIj09PWUuaGVpZ2h0P2UubWluSGVpZ2h0Ok1hdGgubWluKGUubWluSGVpZ2h0LGUuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy51aURpYWxvZy5pcygiOnZpc2libGUiKTtlfHx0aGlzLnVpRGlhbG9nLnNob3coKSx0aGlzLnVpRGlhbG9nLnBvc2l0aW9uKHRoaXMub3B0aW9ucy5wb3NpdGlvbiksZXx8dGhpcy51aURpYWxvZy5oaWRlKCl9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz0hMSxuPXt9O2UuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7aS5fc2V0T3B0aW9uKGUsdCksZSBpbiBpLnNpemVSZWxhdGVkT3B0aW9ucyYmKHM9ITApLGUgaW4gaS5yZXNpemFibGVSZWxhdGVkT3B0aW9ucyYmKG5bZV09dCl9KSxzJiYodGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCkpLHRoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsbil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dGhpcy51aURpYWxvZzsiZGlhbG9nQ2xhc3MiPT09ZSYmbi5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENsYXNzKHQpLCJkaXNhYmxlZCIhPT1lJiYodGhpcy5fc3VwZXIoZSx0KSwiYXBwZW5kVG8iPT09ZSYmdGhpcy51aURpYWxvZy5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiYnV0dG9ucyI9PT1lJiZ0aGlzLl9jcmVhdGVCdXR0b25zKCksImNsb3NlVGV4dCI9PT1lJiZ0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZS5idXR0b24oe2xhYmVsOiIiK3R9KSwiZHJhZ2dhYmxlIj09PWUmJihpPW4uaXMoIjpkYXRhKHVpLWRyYWdnYWJsZSkiKSxpJiYhdCYmbi5kcmFnZ2FibGUoImRlc3Ryb3kiKSwhaSYmdCYmdGhpcy5fbWFrZURyYWdnYWJsZSgpKSwicG9zaXRpb24iPT09ZSYmdGhpcy5fcG9zaXRpb24oKSwicmVzaXphYmxlIj09PWUmJihzPW4uaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSxzJiYhdCYmbi5yZXNpemFibGUoImRlc3Ryb3kiKSxzJiYic3RyaW5nIj09dHlwZW9mIHQmJm4ucmVzaXphYmxlKCJvcHRpb24iLCJoYW5kbGVzIix0KSxzfHx0PT09ITF8fHRoaXMuX21ha2VSZXNpemFibGUoKSksInRpdGxlIj09PWUmJnRoaXMuX3RpdGxlKHRoaXMudWlEaWFsb2dUaXRsZWJhci5maW5kKCIudWktZGlhbG9nLXRpdGxlIikpKX0sX3NpemU6ZnVuY3Rpb24oKXt2YXIgZSx0LGkscz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxtYXhIZWlnaHQ6Im5vbmUiLGhlaWdodDowfSkscy5taW5XaWR0aD5zLndpZHRoJiYocy53aWR0aD1zLm1pbldpZHRoKSxlPXRoaXMudWlEaWFsb2cuY3NzKHtoZWlnaHQ6ImF1dG8iLHdpZHRoOnMud2lkdGh9KS5vdXRlckhlaWdodCgpLHQ9TWF0aC5tYXgoMCxzLm1pbkhlaWdodC1lKSxpPSJudW1iZXIiPT10eXBlb2Ygcy5tYXhIZWlnaHQ/TWF0aC5tYXgoMCxzLm1heEhlaWdodC1lKToibm9uZSIsImF1dG8iPT09cy5oZWlnaHQ/dGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OnQsbWF4SGVpZ2h0OmksaGVpZ2h0OiJhdXRvIn0pOnRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoMCxzLmhlaWdodC1lKSksdGhpcy51aURpYWxvZy5pcygiOmRhdGEodWktcmVzaXphYmxlKSIpJiZ0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSgib3B0aW9uIiwibWluSGVpZ2h0Iix0aGlzLl9taW5IZWlnaHQoKSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzPXRoaXMuZG9jdW1lbnQuZmluZCgiaWZyYW1lIikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKX0pLmFwcGVuZFRvKHQucGFyZW50KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2FsbG93SW50ZXJhY3Rpb246ZnVuY3Rpb24odCl7cmV0dXJuIGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1kaWFsb2ciKS5sZW5ndGg/ITA6ISFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGF0ZXBpY2tlciIpLmxlbmd0aH0sX2NyZWF0ZU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwpe3ZhciB0PSEwO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dD0hMX0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIil8fHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dHx8dGhpcy5fYWxsb3dJbnRlcmFjdGlvbihlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLl90cmFja2luZ0luc3RhbmNlcygpWzBdLl9mb2N1c1RhYmJhYmxlKCkpfX0pLHRoaXMub3ZlcmxheT1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMuX29uKHRoaXMub3ZlcmxheSx7bW91c2Vkb3duOiJfa2VlcEZvY3VzIn0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiwodGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKXx8MCkrMSl9fSxfZGVzdHJveU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwmJnRoaXMub3ZlcmxheSl7dmFyIGU9dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKS0xO2U/dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiLGUpOnRoaXMuZG9jdW1lbnQudW5iaW5kKCJmb2N1c2luIikucmVtb3ZlRGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiksdGhpcy5vdmVybGF5LnJlbW92ZSgpLHRoaXMub3ZlcmxheT1udWxsfX19KSxlLndpZGdldCgidWkucHJvZ3Jlc3NiYXIiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e21heDoxMDAsdmFsdWU6MCxjaGFuZ2U6bnVsbCxjb21wbGV0ZTpudWxsfSxtaW46MCxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5vbGRWYWx1ZT10aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZSgpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5hdHRyKHtyb2xlOiJwcm9ncmVzc2JhciIsImFyaWEtdmFsdWVtaW4iOnRoaXMubWlufSksdGhpcy52YWx1ZURpdj1lKCI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci12YWx1ZSB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1sZWZ0Jz48L2Rpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy52YWx1ZURpdi5yZW1vdmUoKX0sdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5vcHRpb25zLnZhbHVlOih0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZShlKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIDApfSxfY29uc3RyYWluZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dGhpcy5vcHRpb25zLnZhbHVlKSx0aGlzLmluZGV0ZXJtaW5hdGU9ZT09PSExLCJudW1iZXIiIT10eXBlb2YgZSYmKGU9MCksdGhpcy5pbmRldGVybWluYXRlPyExOk1hdGgubWluKHRoaXMub3B0aW9ucy5tYXgsTWF0aC5tYXgodGhpcy5taW4sZSkpfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdD1lLnZhbHVlO2RlbGV0ZSBlLnZhbHVlLHRoaXMuX3N1cGVyKGUpLHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl9jb25zdHJhaW5lZFZhbHVlKHQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Im1heCI9PT1lJiYodD1NYXRoLm1heCh0aGlzLm1pbix0KSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sX3BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRldGVybWluYXRlPzEwMDoxMDAqKHRoaXMub3B0aW9ucy52YWx1ZS10aGlzLm1pbikvKHRoaXMub3B0aW9ucy5tYXgtdGhpcy5taW4pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlLGk9dGhpcy5fcGVyY2VudGFnZSgpO3RoaXMudmFsdWVEaXYudG9nZ2xlKHRoaXMuaW5kZXRlcm1pbmF0ZXx8dD50aGlzLm1pbikudG9nZ2xlQ2xhc3MoInVpLWNvcm5lci1yaWdodCIsdD09PXRoaXMub3B0aW9ucy5tYXgpLndpZHRoKGkudG9GaXhlZCgwKSsiJSIpLHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSIsdGhpcy5pbmRldGVybWluYXRlKSx0aGlzLmluZGV0ZXJtaW5hdGU/KHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy5vdmVybGF5RGl2fHwodGhpcy5vdmVybGF5RGl2PWUoIjxkaXYgY2xhc3M9J3VpLXByb2dyZXNzYmFyLW92ZXJsYXknPjwvZGl2PiIpLmFwcGVuZFRvKHRoaXMudmFsdWVEaXYpKSk6KHRoaXMuZWxlbWVudC5hdHRyKHsiYXJpYS12YWx1ZW1heCI6dGhpcy5vcHRpb25zLm1heCwiYXJpYS12YWx1ZW5vdyI6dH0pLHRoaXMub3ZlcmxheURpdiYmKHRoaXMub3ZlcmxheURpdi5yZW1vdmUoKSx0aGlzLm92ZXJsYXlEaXY9bnVsbCkpLHRoaXMub2xkVmFsdWUhPT10JiYodGhpcy5vbGRWYWx1ZT10LHRoaXMuX3RyaWdnZXIoImNoYW5nZSIpKSx0PT09dGhpcy5vcHRpb25zLm1heCYmdGhpcy5fdHJpZ2dlcigiY29tcGxldGUiKX19KSxlLndpZGdldCgidWkuc2VsZWN0bWVudSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxzZWxlY3Q+IixvcHRpb25zOnthcHBlbmRUbzpudWxsLGRpc2FibGVkOm51bGwsaWNvbnM6e2J1dHRvbjoidWktaWNvbi10cmlhbmdsZS0xLXMifSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHdpZHRoOm51bGwsY2hhbmdlOm51bGwsY2xvc2U6bnVsbCxmb2N1czpudWxsLG9wZW46bnVsbCxzZWxlY3Q6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoImlkIik7dGhpcy5pZHM9e2VsZW1lbnQ6ZSxidXR0b246ZSsiLWJ1dHRvbiIsbWVudTplKyItbWVudSJ9LHRoaXMuX2RyYXdCdXR0b24oKSx0aGlzLl9kcmF3TWVudSgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5kaXNhYmxlKCl9LF9kcmF3QnV0dG9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxhYmVsPWUoImxhYmVsW2Zvcj0nIit0aGlzLmlkcy5lbGVtZW50KyInXSIpLmF0dHIoImZvciIsdGhpcy5pZHMuYnV0dG9uKSx0aGlzLl9vbih0aGlzLmxhYmVsLHtjbGljazpmdW5jdGlvbihlKXt0aGlzLmJ1dHRvbi5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKX19KSx0aGlzLmVsZW1lbnQuaGlkZSgpLHRoaXMuYnV0dG9uPWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLHRhYmluZGV4OnRoaXMub3B0aW9ucy5kaXNhYmxlZD8tMTowLGlkOnRoaXMuaWRzLmJ1dHRvbixyb2xlOiJjb21ib2JveCIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsImFyaWEtYXV0b2NvbXBsZXRlIjoibGlzdCIsImFyaWEtb3ducyI6dGhpcy5pZHMubWVudSwiYXJpYS1oYXNwb3B1cCI6InRydWUifSkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KSxlKCI8c3Bhbj4iLHsiY2xhc3MiOiJ1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbn0pLnByZXBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5idXR0b25UZXh0PWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtdGV4dCJ9KS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsdGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnRleHQoKSksdGhpcy5fcmVzaXplQnV0dG9uKCksdGhpcy5fb24odGhpcy5idXR0b24sdGhpcy5fYnV0dG9uRXZlbnRzKSx0aGlzLmJ1dHRvbi5vbmUoImZvY3VzaW4iLGZ1bmN0aW9uKCl7dC5tZW51SXRlbXN8fHQuX3JlZnJlc2hNZW51KCl9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5idXR0b24pLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmJ1dHRvbil9LF9kcmF3TWVudTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tZW51PWUoIjx1bD4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1sYWJlbGxlZGJ5Ijp0aGlzLmlkcy5idXR0b24saWQ6dGhpcy5pZHMubWVudX0pLHRoaXMubWVudVdyYXA9ZSgiPGRpdj4iLHsiY2xhc3MiOiJ1aS1zZWxlY3RtZW51LW1lbnUgdWktZnJvbnQifSkuYXBwZW5kKHRoaXMubWVudSkuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksdGhpcy5tZW51SW5zdGFuY2U9dGhpcy5tZW51Lm1lbnUoe3JvbGU6Imxpc3Rib3giLHNlbGVjdDpmdW5jdGlvbihlLGkpe2UucHJldmVudERlZmF1bHQoKSx0Ll9zZXRTZWxlY3Rpb24oKSx0Ll9zZWxlY3QoaS5pdGVtLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIpLGUpfSxmb2N1czpmdW5jdGlvbihlLGkpe3ZhciBzPWkuaXRlbS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKTtudWxsIT10LmZvY3VzSW5kZXgmJnMuaW5kZXghPT10LmZvY3VzSW5kZXgmJih0Ll90cmlnZ2VyKCJmb2N1cyIsZSx7aXRlbTpzfSksdC5pc09wZW58fHQuX3NlbGVjdChzLGUpKSx0LmZvY3VzSW5kZXg9cy5pbmRleCx0LmJ1dHRvbi5hdHRyKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLHQubWVudUl0ZW1zLmVxKHMuaW5kZXgpLmF0dHIoImlkIikpfX0pLm1lbnUoImluc3RhbmNlIiksdGhpcy5tZW51LmFkZENsYXNzKCJ1aS1jb3JuZXItYm90dG9tIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLm1lbnVJbnN0YW5jZS5fb2ZmKHRoaXMubWVudSwibW91c2VsZWF2ZSIpLHRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljaz1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuITF9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLl9zZXRUZXh0KHRoaXMuYnV0dG9uVGV4dCx0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKS50ZXh0KCkpLHRoaXMub3B0aW9ucy53aWR0aHx8dGhpcy5fcmVzaXplQnV0dG9uKCl9LF9yZWZyZXNoTWVudTpmdW5jdGlvbigpe3RoaXMubWVudS5lbXB0eSgpO3ZhciBlLHQ9dGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbiIpO3QubGVuZ3RoJiYodGhpcy5fcGFyc2VPcHRpb25zKHQpLHRoaXMuX3JlbmRlck1lbnUodGhpcy5tZW51LHRoaXMuaXRlbXMpLHRoaXMubWVudUluc3RhbmNlLnJlZnJlc2goKSx0aGlzLm1lbnVJdGVtcz10aGlzLm1lbnUuZmluZCgibGkiKS5ub3QoIi51aS1zZWxlY3RtZW51LW9wdGdyb3VwIiksZT10aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKSx0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhudWxsLGUpLHRoaXMuX3NldEFyaWEoZS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIikpKX0sb3BlbjpmdW5jdGlvbihlKXt0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fCh0aGlzLm1lbnVJdGVtcz8odGhpcy5tZW51LmZpbmQoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMubWVudUluc3RhbmNlLmZvY3VzKG51bGwsdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpKTp0aGlzLl9yZWZyZXNoTWVudSgpLHRoaXMuaXNPcGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLl9yZXNpemVNZW51KCksdGhpcy5fcG9zaXRpb24oKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHRoaXMuX2RvY3VtZW50Q2xpY2spLHRoaXMuX3RyaWdnZXIoIm9wZW4iLGUpKX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5tZW51V3JhcC5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5idXR0b259LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmlzT3BlbiYmKHRoaXMuaXNPcGVuPSExLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLnJhbmdlPW51bGwsdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQpLHRoaXMuX3RyaWdnZXIoImNsb3NlIixlKSl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbn0sbWVudVdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbnV9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcyxuPSIiO2UuZWFjaChpLGZ1bmN0aW9uKGksYSl7YS5vcHRncm91cCE9PW4mJihlKCI8bGk+Iix7ImNsYXNzIjoidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiKyhhLmVsZW1lbnQucGFyZW50KCJvcHRncm91cCIpLnByb3AoImRpc2FibGVkIik/IiB1aS1zdGF0ZS1kaXNhYmxlZCI6IiIpLHRleHQ6YS5vcHRncm91cH0pLmFwcGVuZFRvKHQpLG49YS5vcHRncm91cCkscy5fcmVuZGVySXRlbURhdGEodCxhKX0pfSxfcmVuZGVySXRlbURhdGE6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcmVuZGVySXRlbShlLHQpLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSgiPGxpPiIpO3JldHVybiBpLmRpc2FibGVkJiZzLmFkZENsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuX3NldFRleHQocyxpLmxhYmVsKSxzLmFwcGVuZFRvKHQpfSxfc2V0VGV4dDpmdW5jdGlvbihlLHQpe3Q/ZS50ZXh0KHQpOmUuaHRtbCgiJiMxNjA7Iil9LF9tb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPSIudWktbWVudS1pdGVtIjt0aGlzLmlzT3Blbj9pPXRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZm9jdXNJbmRleCk6KGk9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpLG4rPSI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZCkiKSxzPSJmaXJzdCI9PT1lfHwibGFzdCI9PT1lP2lbImZpcnN0Ij09PWU/InByZXZBbGwiOiJuZXh0QWxsIl0obikuZXEoLTEpOmlbZSsiQWxsIl0obikuZXEoMCkscy5sZW5ndGgmJnRoaXMubWVudUluc3RhbmNlLmZvY3VzKHQscyl9LF9nZXRTZWxlY3RlZEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXNbdGhpcy5pc09wZW4/ImNsb3NlIjoib3BlbiJdKGUpfSxfc2V0U2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5yYW5nZSYmKHdpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmVtb3ZlQWxsUmFuZ2VzKCksZS5hZGRSYW5nZSh0aGlzLnJhbmdlKSk6dGhpcy5yYW5nZS5zZWxlY3QoKSx0aGlzLmJ1dHRvbi5mb2N1cygpKX0sX2RvY3VtZW50Q2xpY2s6e21vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLmlzT3BlbiYmKGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1zZWxlY3RtZW51LW1lbnUsICMiK3RoaXMuaWRzLmJ1dHRvbikubGVuZ3RofHx0aGlzLmNsb3NlKHQpKX19LF9idXR0b25FdmVudHM6e21vdXNlZG93bjpmdW5jdGlvbigpe3ZhciBlO3dpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmFuZ2VDb3VudCYmKHRoaXMucmFuZ2U9ZS5nZXRSYW5nZUF0KDApKSk6dGhpcy5yYW5nZT1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKX0sY2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0aW9uKCksdGhpcy5fdG9nZ2xlKGUpfSxrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPSEwO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlRBQjpjYXNlIGUudWkua2V5Q29kZS5FU0NBUEU6dGhpcy5jbG9zZSh0KSxpPSExO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnRoaXMuaXNPcGVuJiZ0aGlzLl9zZWxlY3RGb2N1c2VkSXRlbSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRE9XTjp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5pc09wZW4/dGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0odCk6dGhpcy5fdG9nZ2xlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUklHSFQ6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuSE9NRTpjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMuX21vdmUoImZpcnN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5FTkQ6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOnRoaXMuX21vdmUoImxhc3QiLHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5tZW51LnRyaWdnZXIodCksaT0hMX1pJiZ0LnByZXZlbnREZWZhdWx0KCl9fSxfc2VsZWN0Rm9jdXNlZEl0ZW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5mb2N1c0luZGV4KTt0Lmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHx0aGlzLl9zZWxlY3QodC5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSxlKX0sX3NlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4O3RoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4PWUuaW5kZXgsdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsZS5sYWJlbCksdGhpcy5fc2V0QXJpYShlKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQse2l0ZW06ZX0pLGUuaW5kZXghPT1pJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQse2l0ZW06ZX0pLHRoaXMuY2xvc2UodCl9LF9zZXRBcmlhOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubWVudUl0ZW1zLmVxKGUuaW5kZXgpLmF0dHIoImlkIik7dGhpcy5idXR0b24uYXR0cih7ImFyaWEtbGFiZWxsZWRieSI6dCwiYXJpYS1hY3RpdmVkZXNjZW5kYW50Ijp0fSksdGhpcy5tZW51LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsdCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiaWNvbnMiPT09ZSYmdGhpcy5idXR0b24uZmluZCgic3Bhbi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbikuYWRkQ2xhc3ModC5idXR0b24pLHRoaXMuX3N1cGVyKGUsdCksImFwcGVuZFRvIj09PWUmJnRoaXMubWVudVdyYXAuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksImRpc2FibGVkIj09PWUmJih0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oImRpc2FibGVkIix0KSx0aGlzLmJ1dHRvbi50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLHQpLmF0dHIoImFyaWEtZGlzYWJsZWQiLHQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdCksdD8odGhpcy5idXR0b24uYXR0cigidGFiaW5kZXgiLC0xKSx0aGlzLmNsb3NlKCkpOnRoaXMuYnV0dG9uLmF0dHIoInRhYmluZGV4IiwwKSksIndpZHRoIj09PWUmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0PXQuanF1ZXJ5fHx0Lm5vZGVUeXBlP2UodCk6dGhpcy5kb2N1bWVudC5maW5kKHQpLmVxKDApKSx0JiZ0WzBdfHwodD10aGlzLmVsZW1lbnQuY2xvc2VzdCgiLnVpLWZyb250IikpLHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF90b2dnbGVBdHRyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b24udG9nZ2xlQ2xhc3MoInVpLWNvcm5lci10b3AiLHRoaXMuaXNPcGVuKS50b2dnbGVDbGFzcygidWktY29ybmVyLWFsbCIsIXRoaXMuaXNPcGVuKS5hdHRyKCJhcmlhLWV4cGFuZGVkIix0aGlzLmlzT3BlbiksdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcygidWktc2VsZWN0bWVudS1vcGVuIix0aGlzLmlzT3BlbiksdGhpcy5tZW51LmF0dHIoImFyaWEtaGlkZGVuIiwhdGhpcy5pc09wZW4pfSxfcmVzaXplQnV0dG9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLndpZHRoO2V8fChlPXRoaXMuZWxlbWVudC5zaG93KCkub3V0ZXJXaWR0aCgpLHRoaXMuZWxlbWVudC5oaWRlKCkpLHRoaXMuYnV0dG9uLm91dGVyV2lkdGgoZSl9LF9yZXNpemVNZW51OmZ1bmN0aW9uKCl7dGhpcy5tZW51Lm91dGVyV2lkdGgoTWF0aC5tYXgodGhpcy5idXR0b24ub3V0ZXJXaWR0aCgpLHRoaXMubWVudS53aWR0aCgiIikub3V0ZXJXaWR0aCgpKzEpKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57ZGlzYWJsZWQ6dGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIil9fSxfcGFyc2VPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPVtdO3QuZWFjaChmdW5jdGlvbih0LHMpe3ZhciBuPWUocyksYT1uLnBhcmVudCgib3B0Z3JvdXAiKTtpLnB1c2goe2VsZW1lbnQ6bixpbmRleDp0LHZhbHVlOm4udmFsKCksbGFiZWw6bi50ZXh0KCksb3B0Z3JvdXA6YS5hdHRyKCJsYWJlbCIpfHwiIixkaXNhYmxlZDphLnByb3AoImRpc2FibGVkIil8fG4ucHJvcCgiZGlzYWJsZWQiKX0pfSksdGhpcy5pdGVtcz1pfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMubWVudVdyYXAucmVtb3ZlKCksdGhpcy5idXR0b24ucmVtb3ZlKCksdGhpcy5lbGVtZW50LnNob3coKSx0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLmxhYmVsLmF0dHIoImZvciIsdGhpcy5pZHMuZWxlbWVudCl9fSksZS53aWRnZXQoInVpLnNsaWRlciIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ITEsZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKyIgdWktd2lkZ2V0IisiIHVpLXdpZGdldC1jb250ZW50IisiIHVpLWNvcm5lci1hbGwiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIHQsaSxzPXRoaXMub3B0aW9ucyxuPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSxhPSI8c3BhbiBjbGFzcz0ndWktc2xpZGVyLWhhbmRsZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwnIHRhYmluZGV4PScwJz48L3NwYW4+IixvPVtdO2ZvcihpPXMudmFsdWVzJiZzLnZhbHVlcy5sZW5ndGh8fDEsbi5sZW5ndGg+aSYmKG4uc2xpY2UoaSkucmVtb3ZlKCksbj1uLnNsaWNlKDAsaSkpLHQ9bi5sZW5ndGg7aT50O3QrKylvLnB1c2goYSk7dGhpcy5oYW5kbGVzPW4uYWRkKGUoby5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKHQpe2UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsdCl9KX0sX2NyZWF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9IiI7dC5yYW5nZT8odC5yYW5nZT09PSEwJiYodC52YWx1ZXM/dC52YWx1ZXMubGVuZ3RoJiYyIT09dC52YWx1ZXMubGVuZ3RoP3QudmFsdWVzPVt0LnZhbHVlc1swXSx0LnZhbHVlc1swXV06ZS5pc0FycmF5KHQudmFsdWVzKSYmKHQudmFsdWVzPXQudmFsdWVzLnNsaWNlKDApKTp0LnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg/dGhpcy5yYW5nZS5yZW1vdmVDbGFzcygidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IikuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pOih0aGlzLnJhbmdlPWUoIjxkaXY+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSxpPSJ1aS1zbGlkZXItcmFuZ2UgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiksdGhpcy5yYW5nZS5hZGRDbGFzcyhpKygibWluIj09PXQucmFuZ2V8fCJtYXgiPT09dC5yYW5nZT8iIHVpLXNsaWRlci1yYW5nZS0iK3QucmFuZ2U6IiIpKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbyxyLGgsbCx1PXRoaXMsZD10aGlzLm9wdGlvbnM7cmV0dXJuIGQuZGlzYWJsZWQ/ITE6KHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLGk9e3g6dC5wYWdlWCx5OnQucGFnZVl9LHM9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKGkpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24odCl7dmFyIGk9TWF0aC5hYnMocy11LnZhbHVlcyh0KSk7KG4+aXx8bj09PWkmJih0PT09dS5fbGFzdENoYW5nZWRWYWx1ZXx8dS52YWx1ZXModCk9PT1kLm1pbikpJiYobj1pLGE9ZSh0aGlzKSxvPXQpfSkscj10aGlzLl9zdGFydCh0LG8pLHI9PT0hMT8hMToodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PW8sYS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIikuZm9jdXMoKSxoPWEub2Zmc2V0KCksbD0hZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKSx0aGlzLl9jbGlja09mZnNldD1sP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OnQucGFnZVgtaC5sZWZ0LWEud2lkdGgoKS8yLHRvcDp0LnBhZ2VZLWgudG9wLWEuaGVpZ2h0KCkvMi0ocGFyc2VJbnQoYS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoYS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoYS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUodCxvLHMpLHRoaXMuX2FuaW1hdGVPZmY9ITAsITApKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sX21vdXNlRHJhZzpmdW5jdGlvbihlKXt2YXIgdD17eDplLnBhZ2VYLHk6ZS5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UodCk7cmV0dXJuIHRoaXMuX3NsaWRlKGUsdGhpcy5faGFuZGxlSW5kZXgsaSksITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGFuZGxlcy5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExLCExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYTtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsaT1lLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOih0PXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LGk9ZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSkscz1pL3Qscz4xJiYocz0xKSwwPnMmJihzPTApLCJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYocz0xLXMpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNaW4oKStzKm4sdGhpcy5fdHJpbUFsaWduVmFsdWUoYSl9LF9zdGFydDpmdW5jdGlvbihlLHQpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSxpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGE7dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/KHM9dGhpcy52YWx1ZXModD8wOjEpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmdGhpcy5vcHRpb25zLnJhbmdlPT09ITAmJigwPT09dCYmaT5zfHwxPT09dCYmcz5pKSYmKGk9cyksaSE9PXRoaXMudmFsdWVzKHQpJiYobj10aGlzLnZhbHVlcygpLG5bdF09aSxhPXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOmksdmFsdWVzOm59KSxzPXRoaXMudmFsdWVzKHQ/MDoxKSxhIT09ITEmJnRoaXMudmFsdWVzKHQsaSkpKTppIT09dGhpcy52YWx1ZSgpJiYoYT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx7aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTppfSksYSE9PSExJiZ0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTp0aGlzLnZhbHVlKCl9O3RoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdG9wIixlLGkpfSxfY2hhbmdlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2tleVNsaWRpbmcmJiF0aGlzLl9tb3VzZVNsaWRpbmcpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJihpLnZhbHVlPXRoaXMudmFsdWVzKHQpLGkudmFsdWVzPXRoaXMudmFsdWVzKCkpLHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsaSl9fSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHZvaWQgMCk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1t0XT10aGlzLl90cmltQWxpZ25WYWx1ZShpKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCx0KSx2b2lkIDA7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFlLmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/dGhpcy5fdmFsdWVzKHQpOnRoaXMudmFsdWUoKTtmb3Iocz10aGlzLm9wdGlvbnMudmFsdWVzLG49YXJndW1lbnRzWzBdLGE9MDtzLmxlbmd0aD5hO2ErPTEpc1thXT10aGlzLl90cmltQWxpZ25WYWx1ZShuW2FdKSx0aGlzLl9jaGFuZ2UobnVsbCxhKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe3ZhciBzLG49MDtzd2l0Y2goInJhbmdlIj09PXQmJnRoaXMub3B0aW9ucy5yYW5nZT09PSEwJiYoIm1pbiI9PT1pPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1pJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxlLmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihuPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSwiZGlzYWJsZWQiPT09dCYmdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFpKSx0aGlzLl9zdXBlcih0LGkpLHQpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1pPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxzPTA7bj5zO3MrPTEpdGhpcy5fY2hhbmdlKG51bGwscyk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQ9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSx0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpO2lmKHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKXtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCkscz0wO2kubGVuZ3RoPnM7cys9MSlpW3NdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGlbc10pO3JldHVybiBpfXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fdmFsdWVNaW4oKT49ZSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQscz1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihzKz1pPjA/dDotdCkscGFyc2VGbG9hdChzLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcCxzPU1hdGguZmxvb3IoKyhlLXQpLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpL2kpKmk7ZT1zK3QsdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbz10aGlzLm9wdGlvbnMucmFuZ2Uscj10aGlzLm9wdGlvbnMsaD10aGlzLGw9dGhpcy5fYW5pbWF0ZU9mZj8hMTpyLmFuaW1hdGUsdT17fTt0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihzKXtpPTEwMCooKGgudmFsdWVzKHMpLWguX3ZhbHVlTWluKCkpLyhoLl92YWx1ZU1heCgpLWguX3ZhbHVlTWluKCkpKSx1WyJob3Jpem9udGFsIj09PWgub3JpZW50YXRpb24/ImxlZnQiOiJib3R0b20iXT1pKyIlIixlKHRoaXMpLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0odSxyLmFuaW1hdGUpLGgub3B0aW9ucy5yYW5nZT09PSEwJiYoImhvcml6b250YWwiPT09aC5vcmllbnRhdGlvbj8oMD09PXMmJmgucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpyLmFuaW1hdGV9KSk6KDA9PT1zJiZoLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpKSx0PWl9KToocz10aGlzLnZhbHVlKCksbj10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNYXgoKSxpPWEhPT1uPzEwMCooKHMtbikvKGEtbikpOjAsdVsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh1LHIuYW5pbWF0ZSksIm1pbiI9PT1vJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOnIuYW5pbWF0ZX0pLCJtaW4iPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2VbbD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLWkrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6Y2FzZSBlLnVpLmtleUNvZGUuRU5EOmNhc2UgZS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZih0LnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLGUodC50YXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxpPXRoaXMuX3N0YXJ0KHQsbyksaT09PSExKSlyZXR1cm59c3dpdGNoKGE9dGhpcy5vcHRpb25zLnN0ZXAscz1uPXRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoP3RoaXMudmFsdWVzKG8pOnRoaXMudmFsdWUoKSx0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6bj10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVORDpuPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9VUDpuPXRoaXMuX3RyaW1BbGlnblZhbHVlKHMrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOm49dGhpcy5fdHJpbUFsaWduVmFsdWUocy0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDpjYXNlIGUudWkua2V5Q29kZS5SSUdIVDppZihzPT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzK2EpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZihzPT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzLWEpfXRoaXMuX3NsaWRlKHQsbyxuKX0sa2V5dXA6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AodCxpKSx0aGlzLl9jaGFuZ2UodCxpKSxlKHQudGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikpfX19KSxlLndpZGdldCgidWkuc3Bpbm5lciIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLHdpZGdldEV2ZW50UHJlZml4OiJzcGluIixvcHRpb25zOntjdWx0dXJlOm51bGwsaWNvbnM6e2Rvd246InVpLWljb24tdHJpYW5nbGUtMS1zIix1cDoidWktaWNvbi10cmlhbmdsZS0xLW4ifSxpbmNyZW1lbnRhbDohMCxtYXg6bnVsbCxtaW46bnVsbCxudW1iZXJGb3JtYXQ6bnVsbCxwYWdlOjEwLHN0ZXA6MSxjaGFuZ2U6bnVsbCxzcGluOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zZXRPcHRpb24oIm1heCIsdGhpcy5vcHRpb25zLm1heCksdGhpcy5fc2V0T3B0aW9uKCJtaW4iLHRoaXMub3B0aW9ucy5taW4pLHRoaXMuX3NldE9wdGlvbigic3RlcCIsdGhpcy5vcHRpb25zLnN0ZXApLCIiIT09dGhpcy52YWx1ZSgpJiZ0aGlzLl92YWx1ZSh0aGlzLmVsZW1lbnQudmFsKCksITApLHRoaXMuX2RyYXcoKSx0aGlzLl9vbih0aGlzLl9ldmVudHMpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXt9LGk9dGhpcy5lbGVtZW50O3JldHVybiBlLmVhY2goWyJtaW4iLCJtYXgiLCJzdGVwIl0sZnVuY3Rpb24oZSxzKXt2YXIgbj1pLmF0dHIocyk7dm9pZCAwIT09biYmbi5sZW5ndGgmJih0W3NdPW4pfSksdH0sX2V2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt0aGlzLl9zdGFydChlKSYmdGhpcy5fa2V5ZG93bihlKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSxrZXl1cDoiX3N0b3AiLGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz10aGlzLmVsZW1lbnQudmFsKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOih0aGlzLl9zdG9wKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMucHJldmlvdXMhPT10aGlzLmVsZW1lbnQudmFsKCkmJnRoaXMuX3RyaWdnZXIoImNoYW5nZSIsZSksdm9pZCAwKX0sbW91c2V3aGVlbDpmdW5jdGlvbihlLHQpe2lmKHQpe2lmKCF0aGlzLnNwaW5uaW5nJiYhdGhpcy5fc3RhcnQoZSkpcmV0dXJuITE7dGhpcy5fc3BpbigodD4wPzE6LTEpKnRoaXMub3B0aW9ucy5zdGVwLGUpLGNsZWFyVGltZW91dCh0aGlzLm1vdXNld2hlZWxUaW1lciksdGhpcy5tb3VzZXdoZWVsVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnNwaW5uaW5nJiZ0aGlzLl9zdG9wKGUpfSwxMDApLGUucHJldmVudERlZmF1bHQoKX19LCJtb3VzZWRvd24gLnVpLXNwaW5uZXItYnV0dG9uIjpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIGU9dGhpcy5lbGVtZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50O2V8fCh0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXN9KSl9dmFyIHM7cz10aGlzLmVsZW1lbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQ/dGhpcy5wcmV2aW91czp0aGlzLmVsZW1lbnQudmFsKCksdC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLmNhbmNlbEJsdXI9ITAsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jYW5jZWxCbHVyLGkuY2FsbCh0aGlzKX0pLHRoaXMuX3N0YXJ0KHQpIT09ITEmJnRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCl9LCJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIiwibW91c2VlbnRlciAudWktc3Bpbm5lci1idXR0b24iOmZ1bmN0aW9uKHQpe3JldHVybiBlKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpP3RoaXMuX3N0YXJ0KHQpPT09ITE/ITE6KHRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCksdm9pZCAwKTp2b2lkIDB9LCJtb3VzZWxlYXZlIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIn0sX2RyYXc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVpU3Bpbm5lcj10aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNwaW5uZXItaW5wdXQiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJvZmYiKS53cmFwKHRoaXMuX3VpU3Bpbm5lckh0bWwoKSkucGFyZW50KCkuYXBwZW5kKHRoaXMuX2J1dHRvbkh0bWwoKSk7dGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJzcGluYnV0dG9uIiksdGhpcy5idXR0b25zPWUuZmluZCgiLnVpLXNwaW5uZXItYnV0dG9uIikuYXR0cigidGFiSW5kZXgiLC0xKS5idXR0b24oKS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCIpLHRoaXMuYnV0dG9ucy5oZWlnaHQoKT5NYXRoLmNlaWwoLjUqZS5oZWlnaHQoKSkmJmUuaGVpZ2h0KCk+MCYmZS5oZWlnaHQoZS5oZWlnaHQoKSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmRpc2FibGUoKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS51aS5rZXlDb2RlO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2Ugcy5VUDpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsMSx0KSwhMDtjYXNlIHMuRE9XTjpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsLTEsdCksITA7Y2FzZSBzLlBBR0VfVVA6cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLGkucGFnZSx0KSwhMDtjYXNlIHMuUEFHRV9ET1dOOnJldHVybiB0aGlzLl9yZXBlYXQobnVsbCwtaS5wYWdlLHQpLCEwfXJldHVybiExfSxfdWlTcGlubmVySHRtbDpmdW5jdGlvbigpe3JldHVybiI8c3BhbiBjbGFzcz0ndWktc3Bpbm5lciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCc+PC9zcGFuPiJ9LF9idXR0b25IdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIjxhIGNsYXNzPSd1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLXVwIHVpLWNvcm5lci10cic+PHNwYW4gY2xhc3M9J3VpLWljb24gIit0aGlzLm9wdGlvbnMuaWNvbnMudXArIic+JiM5NjUwOzwvc3Bhbj4iKyI8L2E+IisiPGEgY2xhc3M9J3VpLXNwaW5uZXItYnV0dG9uIHVpLXNwaW5uZXItZG93biB1aS1jb3JuZXItYnInPiIrIjxzcGFuIGNsYXNzPSd1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmRvd24rIic+JiM5NjYwOzwvc3Bhbj4iKyI8L2E+In0sX3N0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNwaW5uaW5nfHx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSkhPT0hMT8odGhpcy5jb3VudGVyfHwodGhpcy5jb3VudGVyPTEpLHRoaXMuc3Bpbm5pbmc9ITAsITApOiExfSxfcmVwZWF0OmZ1bmN0aW9uKGUsdCxpKXtlPWV8fDUwMCxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX3JlcGVhdCg0MCx0LGkpfSxlKSx0aGlzLl9zcGluKHQqdGhpcy5vcHRpb25zLnN0ZXAsaSl9LF9zcGluOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy52YWx1ZSgpfHwwO3RoaXMuY291bnRlcnx8KHRoaXMuY291bnRlcj0xKSxpPXRoaXMuX2FkanVzdFZhbHVlKGkrZSp0aGlzLl9pbmNyZW1lbnQodGhpcy5jb3VudGVyKSksdGhpcy5zcGlubmluZyYmdGhpcy5fdHJpZ2dlcigic3BpbiIsdCx7dmFsdWU6aX0pPT09ITF8fCh0aGlzLl92YWx1ZShpKSx0aGlzLmNvdW50ZXIrKyl9LF9pbmNyZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmluY3JlbWVudGFsO3JldHVybiBpP2UuaXNGdW5jdGlvbihpKT9pKHQpOk1hdGguZmxvb3IodCp0KnQvNWU0LXQqdC81MDArMTcqdC8yMDArMSk6MX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX2FkanVzdFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LGkscz10aGlzLm9wdGlvbnM7cmV0dXJuIHQ9bnVsbCE9PXMubWluP3MubWluOjAsaT1lLXQsaT1NYXRoLnJvdW5kKGkvcy5zdGVwKSpzLnN0ZXAsZT10K2ksZT1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpLG51bGwhPT1zLm1heCYmZT5zLm1heD9zLm1heDpudWxsIT09cy5taW4mJnMubWluPmU/cy5taW46ZX0sX3N0b3A6ZnVuY3Rpb24oZSl7dGhpcy5zcGlubmluZyYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5tb3VzZXdoZWVsVGltZXIpLHRoaXMuY291bnRlcj0wLHRoaXMuc3Bpbm5pbmc9ITEsdGhpcy5fdHJpZ2dlcigic3RvcCIsZSkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7aWYoImN1bHR1cmUiPT09ZXx8Im51bWJlckZvcm1hdCI9PT1lKXt2YXIgaT10aGlzLl9wYXJzZSh0aGlzLmVsZW1lbnQudmFsKCkpO3JldHVybiB0aGlzLm9wdGlvbnNbZV09dCx0aGlzLmVsZW1lbnQudmFsKHRoaXMuX2Zvcm1hdChpKSksdm9pZCAwfSgibWF4Ij09PWV8fCJtaW4iPT09ZXx8InN0ZXAiPT09ZSkmJiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dGhpcy5fcGFyc2UodCkpLCJpY29ucyI9PT1lJiYodGhpcy5idXR0b25zLmZpcnN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMudXApLmFkZENsYXNzKHQudXApLHRoaXMuYnV0dG9ucy5sYXN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMuZG93bikuYWRkQ2xhc3ModC5kb3duKSksdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMud2lkZ2V0KCkudG9nZ2xlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIiwhIXQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsISF0KSx0aGlzLmJ1dHRvbnMuYnV0dG9uKHQ/ImRpc2FibGUiOiJlbmFibGUiKSl9LF9zZXRPcHRpb25zOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSl9KSxfcGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWUmJihlPXdpbmRvdy5HbG9iYWxpemUmJnRoaXMub3B0aW9ucy5udW1iZXJGb3JtYXQ/R2xvYmFsaXplLnBhcnNlRmxvYXQoZSwxMCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6K2UpLCIiPT09ZXx8aXNOYU4oZSk/bnVsbDplCn0sX2Zvcm1hdDpmdW5jdGlvbihlKXtyZXR1cm4iIj09PWU/IiI6d2luZG93Lkdsb2JhbGl6ZSYmdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdD9HbG9iYWxpemUuZm9ybWF0KGUsdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6ZX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cih7ImFyaWEtdmFsdWVtaW4iOnRoaXMub3B0aW9ucy5taW4sImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVub3ciOnRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSl9KX0saXNWYWxpZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmFsdWUoKTtyZXR1cm4gbnVsbD09PWU/ITE6ZT09PXRoaXMuX2FkanVzdFZhbHVlKGUpfSxfdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaTsiIiE9PWUmJihpPXRoaXMuX3BhcnNlKGUpLG51bGwhPT1pJiYodHx8KGk9dGhpcy5fYWRqdXN0VmFsdWUoaSkpLGU9dGhpcy5fZm9ybWF0KGkpKSksdGhpcy5lbGVtZW50LnZhbChlKSx0aGlzLl9yZWZyZXNoKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zcGlubmVyLWlucHV0IikucHJvcCgiZGlzYWJsZWQiLCExKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy51aVNwaW5uZXIucmVwbGFjZVdpdGgodGhpcy5lbGVtZW50KX0sc3RlcFVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKGUpfSksX3N0ZXBVcDpmdW5jdGlvbihlKXt0aGlzLl9zdGFydCgpJiYodGhpcy5fc3BpbigoZXx8MSkqdGhpcy5vcHRpb25zLnN0ZXApLHRoaXMuX3N0b3AoKSl9LHN0ZXBEb3duOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcERvd24oZSl9KSxfc3RlcERvd246ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQoKSYmKHRoaXMuX3NwaW4oKGV8fDEpKi10aGlzLm9wdGlvbnMuc3RlcCksdGhpcy5fc3RvcCgpKX0scGFnZVVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSxwYWdlRG93bjpzKGZ1bmN0aW9uKGUpe3RoaXMuX3N0ZXBEb3duKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0aGlzLl92YWx1ZSkuY2FsbCh0aGlzLGUpLHZvaWQgMCk6dGhpcy5fcGFyc2UodGhpcy5lbGVtZW50LnZhbCgpKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlTcGlubmVyfX0pLGUud2lkZ2V0KCJ1aS50YWJzIix7dmVyc2lvbjoiMS4xMS40IixkZWxheTozMDAsb3B0aW9uczp7YWN0aXZlOm51bGwsY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWlnaHRTdHlsZToiY29udGVudCIsaGlkZTpudWxsLHNob3c6bnVsbCxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGwsYmVmb3JlTG9hZDpudWxsLGxvYWQ6bnVsbH0sX2lzTG9jYWw6ZnVuY3Rpb24oKXt2YXIgZT0vIy4qJC87cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpLHM7dD10LmNsb25lTm9kZSghMSksaT10LmhyZWYucmVwbGFjZShlLCIiKSxzPWxvY2F0aW9uLmhyZWYucmVwbGFjZShlLCIiKTt0cnl7aT1kZWNvZGVVUklDb21wb25lbnQoaSl9Y2F0Y2gobil7fXRyeXtzPWRlY29kZVVSSUNvbXBvbmVudChzKX1jYXRjaChuKXt9cmV0dXJuIHQuaGFzaC5sZW5ndGg+MSYmaT09PXN9fSgpLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zO3RoaXMucnVubmluZz0hMSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsaS5jb2xsYXBzaWJsZSksdGhpcy5fcHJvY2Vzc1RhYnMoKSxpLmFjdGl2ZT10aGlzLl9pbml0aWFsQWN0aXZlKCksZS5pc0FycmF5KGkuZGlzYWJsZWQpJiYoaS5kaXNhYmxlZD1lLnVuaXF1ZShpLmRpc2FibGVkLmNvbmNhdChlLm1hcCh0aGlzLnRhYnMuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC50YWJzLmluZGV4KGUpfSkpKS5zb3J0KCkpLHRoaXMuYWN0aXZlPXRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLl9maW5kQWN0aXZlKGkuYWN0aXZlKTplKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMuYWN0aXZlLmxlbmd0aCYmdGhpcy5sb2FkKGkuYWN0aXZlKX0sX2luaXRpYWxBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYWN0aXZlLGk9dGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlLHM9bG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSk7cmV0dXJuIG51bGw9PT10JiYocyYmdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oaSxuKXtyZXR1cm4gZShuKS5hdHRyKCJhcmlhLWNvbnRyb2xzIik9PT1zPyh0PWksITEpOnZvaWQgMH0pLG51bGw9PT10JiYodD10aGlzLnRhYnMuaW5kZXgodGhpcy50YWJzLmZpbHRlcigiLnVpLXRhYnMtYWN0aXZlIikpKSwobnVsbD09PXR8fC0xPT09dCkmJih0PXRoaXMudGFicy5sZW5ndGg/MDohMSkpLHQhPT0hMSYmKHQ9dGhpcy50YWJzLmluZGV4KHRoaXMudGFicy5lcSh0KSksLTE9PT10JiYodD1pPyExOjApKSwhaSYmdD09PSExJiZ0aGlzLmFuY2hvcnMubGVuZ3RoJiYodD0wKSx0fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RhYjp0aGlzLmFjdGl2ZSxwYW5lbDp0aGlzLmFjdGl2ZS5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpOmUoKX19LF90YWJLZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KS5jbG9zZXN0KCJsaSIpLHM9dGhpcy50YWJzLmluZGV4KGkpLG49ITA7aWYoIXRoaXMuX2hhbmRsZVBhZ2VOYXYodCkpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046cysrO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLkxFRlQ6bj0hMSxzLS07YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnM9dGhpcy5hbmNob3JzLmxlbmd0aC0xO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6cz0wO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlNQQUNFOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocyksdm9pZCAwO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocz09PXRoaXMub3B0aW9ucy5hY3RpdmU/ITE6cyksdm9pZCAwO2RlZmF1bHQ6cmV0dXJufXQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5hY3RpdmF0aW5nKSxzPXRoaXMuX2ZvY3VzTmV4dFRhYihzLG4pLHQuY3RybEtleXx8dC5tZXRhS2V5fHwoaS5hdHRyKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSx0aGlzLnRhYnMuZXEocykuYXR0cigiYXJpYS1zZWxlY3RlZCIsInRydWUiKSx0aGlzLmFjdGl2YXRpbmc9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLm9wdGlvbigiYWN0aXZlIixzKX0sdGhpcy5kZWxheSkpfX0sX3BhbmVsS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVQYWdlTmF2KHQpfHx0LmN0cmxLZXkmJnQua2V5Q29kZT09PWUudWkua2V5Q29kZS5VUCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGl2ZS5mb2N1cygpKX0sX2hhbmRsZVBhZ2VOYXY6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYWx0S2V5JiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuUEFHRV9VUD8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUtMSwhMSkpLCEwKTp0LmFsdEtleSYmdC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlBBR0VfRE9XTj8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUrMSwhMCkpLCEwKTp2b2lkIDB9LF9maW5kTmV4dFRhYjpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXtyZXR1cm4gdD5uJiYodD0wKSwwPnQmJih0PW4pLHR9Zm9yKHZhciBuPXRoaXMudGFicy5sZW5ndGgtMTstMSE9PWUuaW5BcnJheShzKCksdGhpcy5vcHRpb25zLmRpc2FibGVkKTspdD1pP3QrMTp0LTE7cmV0dXJuIHR9LF9mb2N1c05leHRUYWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT10aGlzLl9maW5kTmV4dFRhYihlLHQpLHRoaXMudGFicy5lcShlKS5mb2N1cygpLGV9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6ImRpc2FibGVkIj09PWU/KHRoaXMuX3NldHVwRGlzYWJsZWQodCksdm9pZCAwKToodGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsdCksdHx8dGhpcy5vcHRpb25zLmFjdGl2ZSE9PSExfHx0aGlzLl9hY3RpdmF0ZSgwKSksImV2ZW50Ij09PWUmJnRoaXMuX3NldHVwRXZlbnRzKHQpLCJoZWlnaHRTdHlsZSI9PT1lJiZ0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHQpLHZvaWQgMCl9LF9zYW5pdGl6ZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZSgvWyEiJCUmJygpKissLlwvOjs8PT4/QFxbXF1cXmB7fH1+XS9nLCJcXCQmIik6IiJ9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLnRhYmxpc3QuY2hpbGRyZW4oIjpoYXMoYVtocmVmXSkiKTt0LmRpc2FibGVkPWUubWFwKGkuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5pbmRleChlKX0pLHRoaXMuX3Byb2Nlc3NUYWJzKCksdC5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZS5sZW5ndGgmJiFlLmNvbnRhaW5zKHRoaXMudGFibGlzdFswXSx0aGlzLmFjdGl2ZVswXSk/dGhpcy50YWJzLmxlbmd0aD09PXQuZGlzYWJsZWQubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKHRoaXMuX2ZpbmROZXh0VGFiKE1hdGgubWF4KDAsdC5hY3RpdmUtMSksITEpKTp0LmFjdGl2ZT10aGlzLnRhYnMuaW5kZXgodGhpcy5hY3RpdmUpOih0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpLHRoaXMuX3JlZnJlc2goKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9zZXR1cERpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fc2V0dXBFdmVudHModGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSksdGhpcy50YWJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KSx0aGlzLnBhbmVscy5ub3QodGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpKS5oaWRlKCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSx0aGlzLmFjdGl2ZS5sZW5ndGg/KHRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLHRoaXMuX2dldFBhbmVsRm9yVGFiKHRoaXMuYWN0aXZlKS5zaG93KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSkpOnRoaXMudGFicy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCl9LF9wcm9jZXNzVGFiczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT10aGlzLnRhYnMscz10aGlzLmFuY2hvcnMsbj10aGlzLnBhbmVsczt0aGlzLnRhYmxpc3Q9dGhpcy5fZ2V0TGlzdCgpLmFkZENsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIpLmF0dHIoInJvbGUiLCJ0YWJsaXN0IikuZGVsZWdhdGUoIj4gbGkiLCJtb3VzZWRvd24iK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24odCl7ZSh0aGlzKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnQucHJldmVudERlZmF1bHQoKX0pLmRlbGVnYXRlKCIudWktdGFicy1hbmNob3IiLCJmb2N1cyIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykuY2xvc2VzdCgibGkiKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnRoaXMuYmx1cigpfSksdGhpcy50YWJzPXRoaXMudGFibGlzdC5maW5kKCI+IGxpOmhhcyhhW2hyZWZdKSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiKS5hdHRyKHtyb2xlOiJ0YWIiLHRhYkluZGV4Oi0xfSksdGhpcy5hbmNob3JzPXRoaXMudGFicy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZSgiYSIsdGhpcylbMF19KS5hZGRDbGFzcygidWktdGFicy1hbmNob3IiKS5hdHRyKHtyb2xlOiJwcmVzZW50YXRpb24iLHRhYkluZGV4Oi0xfSksdGhpcy5wYW5lbHM9ZSgpLHRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKGkscyl7dmFyIG4sYSxvLHI9ZShzKS51bmlxdWVJZCgpLmF0dHIoImlkIiksaD1lKHMpLmNsb3Nlc3QoImxpIiksbD1oLmF0dHIoImFyaWEtY29udHJvbHMiKTt0Ll9pc0xvY2FsKHMpPyhuPXMuaGFzaCxvPW4uc3Vic3RyaW5nKDEpLGE9dC5lbGVtZW50LmZpbmQodC5fc2FuaXRpemVTZWxlY3RvcihuKSkpOihvPWguYXR0cigiYXJpYS1jb250cm9scyIpfHxlKHt9KS51bmlxdWVJZCgpWzBdLmlkLG49IiMiK28sYT10LmVsZW1lbnQuZmluZChuKSxhLmxlbmd0aHx8KGE9dC5fY3JlYXRlUGFuZWwobyksYS5pbnNlcnRBZnRlcih0LnBhbmVsc1tpLTFdfHx0LnRhYmxpc3QpKSxhLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpKSxhLmxlbmd0aCYmKHQucGFuZWxzPXQucGFuZWxzLmFkZChhKSksbCYmaC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiLGwpLGguYXR0cih7ImFyaWEtY29udHJvbHMiOm8sImFyaWEtbGFiZWxsZWRieSI6cn0pLGEuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixyKX0pLHRoaXMucGFuZWxzLmFkZENsYXNzKCJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKSxpJiYodGhpcy5fb2ZmKGkubm90KHRoaXMudGFicykpLHRoaXMuX29mZihzLm5vdCh0aGlzLmFuY2hvcnMpKSx0aGlzLl9vZmYobi5ub3QodGhpcy5wYW5lbHMpKSl9LF9nZXRMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFibGlzdHx8dGhpcy5lbGVtZW50LmZpbmQoIm9sLHVsIikuZXEoMCl9LF9jcmVhdGVQYW5lbDpmdW5jdGlvbih0KXtyZXR1cm4gZSgiPGRpdj4iKS5hdHRyKCJpZCIsdCkuYWRkQ2xhc3MoInVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmRhdGEoInVpLXRhYnMtZGVzdHJveSIsITApfSxfc2V0dXBEaXNhYmxlZDpmdW5jdGlvbih0KXtlLmlzQXJyYXkodCkmJih0Lmxlbmd0aD90Lmxlbmd0aD09PXRoaXMuYW5jaG9ycy5sZW5ndGgmJih0PSEwKTp0PSExKTtmb3IodmFyIGkscz0wO2k9dGhpcy50YWJzW3NdO3MrKyl0PT09ITB8fC0xIT09ZS5pbkFycmF5KHMsdCk/ZShpKS5hZGRDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpOmUoaSkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpO3RoaXMub3B0aW9ucy5kaXNhYmxlZD10fSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24odCl7dmFyIGk9e307dCYmZS5lYWNoKHQuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2lbdF09Il9ldmVudEhhbmRsZXIifSksdGhpcy5fb2ZmKHRoaXMuYW5jaG9ycy5hZGQodGhpcy50YWJzKS5hZGQodGhpcy5wYW5lbHMpKSx0aGlzLl9vbighMCx0aGlzLmFuY2hvcnMse2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX19KSx0aGlzLl9vbih0aGlzLmFuY2hvcnMsaSksdGhpcy5fb24odGhpcy50YWJzLHtrZXlkb3duOiJfdGFiS2V5ZG93biJ9KSx0aGlzLl9vbih0aGlzLnBhbmVscyx7a2V5ZG93bjoiX3BhbmVsS2V5ZG93biJ9KSx0aGlzLl9mb2N1c2FibGUodGhpcy50YWJzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy50YWJzKX0sX3NldHVwSGVpZ2h0U3R5bGU6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLmVsZW1lbnQucGFyZW50KCk7ImZpbGwiPT09dD8oaT1zLmhlaWdodCgpLGktPXRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmVsZW1lbnQuc2libGluZ3MoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcykscz10LmNzcygicG9zaXRpb24iKTsiYWJzb2x1dGUiIT09cyYmImZpeGVkIiE9PXMmJihpLT10Lm91dGVySGVpZ2h0KCEwKSl9KSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy5wYW5lbHMpLmVhY2goZnVuY3Rpb24oKXtpLT1lKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLGktZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXQmJihpPTAsdGhpcy5wYW5lbHMuZWFjaChmdW5jdGlvbigpe2k9TWF0aC5tYXgoaSxlKHRoaXMpLmhlaWdodCgiIikuaGVpZ2h0KCkpfSkuaGVpZ2h0KGkpKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnMscz10aGlzLmFjdGl2ZSxuPWUodC5jdXJyZW50VGFyZ2V0KSxhPW4uY2xvc2VzdCgibGkiKSxvPWFbMF09PT1zWzBdLHI9byYmaS5jb2xsYXBzaWJsZSxoPXI/ZSgpOnRoaXMuX2dldFBhbmVsRm9yVGFiKGEpLGw9cy5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIocyk6ZSgpLHU9e29sZFRhYjpzLG9sZFBhbmVsOmwsbmV3VGFiOnI/ZSgpOmEsbmV3UGFuZWw6aH07dC5wcmV2ZW50RGVmYXVsdCgpLGEuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIil8fGEuaGFzQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpfHx0aGlzLnJ1bm5pbmd8fG8mJiFpLmNvbGxhcHNpYmxlfHx0aGlzLl90cmlnZ2VyKCJiZWZvcmVBY3RpdmF0ZSIsdCx1KT09PSExfHwoaS5hY3RpdmU9cj8hMTp0aGlzLnRhYnMuaW5kZXgoYSksdGhpcy5hY3RpdmU9bz9lKCk6YSx0aGlzLnhociYmdGhpcy54aHIuYWJvcnQoKSxsLmxlbmd0aHx8aC5sZW5ndGh8fGUuZXJyb3IoImpRdWVyeSBVSSBUYWJzOiBNaXNtYXRjaGluZyBmcmFnbWVudCBpZGVudGlmaWVyLiIpLGgubGVuZ3RoJiZ0aGlzLmxvYWQodGhpcy50YWJzLmluZGV4KGEpLHQpLHRoaXMuX3RvZ2dsZSh0LHUpKX0sX3RvZ2dsZTpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXthLnJ1bm5pbmc9ITEsYS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsaSl9ZnVuY3Rpb24gbigpe2kubmV3VGFiLmNsb3Nlc3QoImxpIikuYWRkQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLG8ubGVuZ3RoJiZhLm9wdGlvbnMuc2hvdz9hLl9zaG93KG8sYS5vcHRpb25zLnNob3cscyk6KG8uc2hvdygpLHMoKSl9dmFyIGE9dGhpcyxvPWkubmV3UGFuZWwscj1pLm9sZFBhbmVsO3RoaXMucnVubmluZz0hMCxyLmxlbmd0aCYmdGhpcy5vcHRpb25zLmhpZGU/dGhpcy5faGlkZShyLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7aS5vbGRUYWIuY2xvc2VzdCgibGkiKS5yZW1vdmVDbGFzcygidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiksbigpfSk6KGkub2xkVGFiLmNsb3Nlc3QoImxpIikucmVtb3ZlQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLHIuaGlkZSgpLG4oKSksci5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSxpLm9sZFRhYi5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLG8ubGVuZ3RoJiZyLmxlbmd0aD9pLm9sZFRhYi5hdHRyKCJ0YWJJbmRleCIsLTEpOm8ubGVuZ3RoJiZ0aGlzLnRhYnMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1lKHRoaXMpLmF0dHIoInRhYkluZGV4Iil9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLG8uYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLGkubmV3VGFiLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXMuX2ZpbmRBY3RpdmUodCk7c1swXSE9PXRoaXMuYWN0aXZlWzBdJiYocy5sZW5ndGh8fChzPXRoaXMuYWN0aXZlKSxpPXMuZmluZCgiLnVpLXRhYnMtYW5jaG9yIilbMF0sdGhpcy5fZXZlbnRIYW5kbGVyKHt0YXJnZXQ6aSxjdXJyZW50VGFyZ2V0OmkscHJldmVudERlZmF1bHQ6ZS5ub29wfSkpfSxfZmluZEFjdGl2ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PSExP2UoKTp0aGlzLnRhYnMuZXEodCl9LF9nZXRJbmRleDpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXRoaXMuYW5jaG9ycy5pbmRleCh0aGlzLmFuY2hvcnMuZmlsdGVyKCJbaHJlZiQ9JyIrZSsiJ10iKSkpLGV9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy54aHImJnRoaXMueGhyLmFib3J0KCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXRhYnMtY29sbGFwc2libGUiKSx0aGlzLnRhYmxpc3QucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIikucmVtb3ZlQXR0cigicm9sZSIpLHRoaXMuYW5jaG9ycy5yZW1vdmVDbGFzcygidWktdGFicy1hbmNob3IiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMudGFibGlzdC51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSksdGhpcy50YWJzLmFkZCh0aGlzLnBhbmVscykuZWFjaChmdW5jdGlvbigpe2UuZGF0YSh0aGlzLCJ1aS10YWJzLWRlc3Ryb3kiKT9lKHRoaXMpLnJlbW92ZSgpOmUodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AgdWktY29ybmVyLWJvdHRvbSB1aS13aWRnZXQtY29udGVudCB1aS10YWJzLWFjdGl2ZSB1aS10YWJzLXBhbmVsIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxpdmUiKS5yZW1vdmVBdHRyKCJhcmlhLWJ1c3kiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1sYWJlbGxlZGJ5IikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigicm9sZSIpfSksdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiKTtpP3QuYXR0cigiYXJpYS1jb250cm9scyIsaSkucmVtb3ZlRGF0YSgidWktdGFicy1hcmlhLWNvbnRyb2xzIik6dC5yZW1vdmVBdHRyKCJhcmlhLWNvbnRyb2xzIil9KSx0aGlzLnBhbmVscy5zaG93KCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZ0aGlzLnBhbmVscy5jc3MoImhlaWdodCIsIiIpfSxlbmFibGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmRpc2FibGVkO2khPT0hMSYmKHZvaWQgMD09PXQ/aT0hMToodD10aGlzLl9nZXRJbmRleCh0KSxpPWUuaXNBcnJheShpKT9lLm1hcChpLGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dD9lOm51bGx9KTplLm1hcCh0aGlzLnRhYnMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gaSE9PXQ/aTpudWxsfSkpLHRoaXMuX3NldHVwRGlzYWJsZWQoaSkpfSxkaXNhYmxlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucy5kaXNhYmxlZDtpZihpIT09ITApe2lmKHZvaWQgMD09PXQpaT0hMDtlbHNle2lmKHQ9dGhpcy5fZ2V0SW5kZXgodCksLTEhPT1lLmluQXJyYXkodCxpKSlyZXR1cm47aT1lLmlzQXJyYXkoaSk/ZS5tZXJnZShbdF0saSkuc29ydCgpOlt0XX10aGlzLl9zZXR1cERpc2FibGVkKGkpfX0sbG9hZDpmdW5jdGlvbih0LGkpe3Q9dGhpcy5fZ2V0SW5kZXgodCk7dmFyIHM9dGhpcyxuPXRoaXMudGFicy5lcSh0KSxhPW4uZmluZCgiLnVpLXRhYnMtYW5jaG9yIiksbz10aGlzLl9nZXRQYW5lbEZvclRhYihuKSxyPXt0YWI6bixwYW5lbDpvfSxoPWZ1bmN0aW9uKGUsdCl7ImFib3J0Ij09PXQmJnMucGFuZWxzLnN0b3AoITEsITApLG4ucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpLG8ucmVtb3ZlQXR0cigiYXJpYS1idXN5IiksZT09PXMueGhyJiZkZWxldGUgcy54aHJ9O3RoaXMuX2lzTG9jYWwoYVswXSl8fCh0aGlzLnhocj1lLmFqYXgodGhpcy5fYWpheFNldHRpbmdzKGEsaSxyKSksdGhpcy54aHImJiJjYW5jZWxlZCIhPT10aGlzLnhoci5zdGF0dXNUZXh0JiYobi5hZGRDbGFzcygidWktdGFicy1sb2FkaW5nIiksby5hdHRyKCJhcmlhLWJ1c3kiLCJ0cnVlIiksdGhpcy54aHIuZG9uZShmdW5jdGlvbihlLHQsbil7c2V0VGltZW91dChmdW5jdGlvbigpe28uaHRtbChlKSxzLl90cmlnZ2VyKCJsb2FkIixpLHIpLGgobix0KX0sMSl9KS5mYWlsKGZ1bmN0aW9uKGUsdCl7c2V0VGltZW91dChmdW5jdGlvbigpe2goZSx0KX0sMSl9KSkpfSxfYWpheFNldHRpbmdzOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj10aGlzO3JldHVybnt1cmw6dC5hdHRyKCJocmVmIiksYmVmb3JlU2VuZDpmdW5jdGlvbih0LGEpe3JldHVybiBuLl90cmlnZ2VyKCJiZWZvcmVMb2FkIixpLGUuZXh0ZW5kKHtqcVhIUjp0LGFqYXhTZXR0aW5nczphfSxzKSl9fX0sX2dldFBhbmVsRm9yVGFiOmZ1bmN0aW9uKHQpe3ZhciBpPWUodCkuYXR0cigiYXJpYS1jb250cm9scyIpO3JldHVybiB0aGlzLmVsZW1lbnQuZmluZCh0aGlzLl9zYW5pdGl6ZVNlbGVjdG9yKCIjIitpKSl9fSksZS53aWRnZXQoInVpLnRvb2x0aXAiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NvbnRlbnQ6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLmF0dHIoInRpdGxlIil8fCIiO3JldHVybiBlKCI8YT4iKS50ZXh0KHQpLmh0bWwoKX0saGlkZTohMCxpdGVtczoiW3RpdGxlXTpub3QoW2Rpc2FibGVkXSkiLHBvc2l0aW9uOntteToibGVmdCB0b3ArMTUiLGF0OiJsZWZ0IGJvdHRvbSIsY29sbGlzaW9uOiJmbGlwZml0IGZsaXAifSxzaG93OiEwLHRvb2x0aXBDbGFzczpudWxsLHRyYWNrOiExLGNsb3NlOm51bGwsb3BlbjpudWxsfSxfYWRkRGVzY3JpYmVkQnk6ZnVuY3Rpb24odCxpKXt2YXIgcz0odC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5Iil8fCIiKS5zcGxpdCgvXHMrLyk7cy5wdXNoKGkpLHQuZGF0YSgidWktdG9vbHRpcC1pZCIsaSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZS50cmltKHMuam9pbigiICIpKSl9LF9yZW1vdmVEZXNjcmliZWRCeTpmdW5jdGlvbih0KXt2YXIgaT10LmRhdGEoInVpLXRvb2x0aXAtaWQiKSxzPSh0LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKXx8IiIpLnNwbGl0KC9ccysvKSxuPWUuaW5BcnJheShpLHMpOy0xIT09biYmcy5zcGxpY2UobiwxKSx0LnJlbW92ZURhdGEoInVpLXRvb2x0aXAtaWQiKSxzPWUudHJpbShzLmpvaW4oIiAiKSkscz90LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLHMpOnQucmVtb3ZlQXR0cigiYXJpYS1kZXNjcmliZWRieSIpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb24oe21vdXNlb3Zlcjoib3BlbiIsZm9jdXNpbjoib3BlbiJ9KSx0aGlzLnRvb2x0aXBzPXt9LHRoaXMucGFyZW50cz17fSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX2Rpc2FibGUoKSx0aGlzLmxpdmVSZWdpb249ZSgiPGRpdj4iKS5hdHRyKHtyb2xlOiJsb2ciLCJhcmlhLWxpdmUiOiJhc3NlcnRpdmUiLCJhcmlhLXJlbGV2YW50IjoiYWRkaXRpb25zIn0pLmFkZENsYXNzKCJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiKS5hcHBlbmRUbyh0aGlzLmRvY3VtZW50WzBdLmJvZHkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztyZXR1cm4iZGlzYWJsZWQiPT09dD8odGhpc1tpPyJfZGlzYWJsZSI6Il9lbmFibGUiXSgpLHRoaXMub3B0aW9uc1t0XT1pLHZvaWQgMCk6KHRoaXMuX3N1cGVyKHQsaSksImNvbnRlbnQiPT09dCYmZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oZSx0KXtzLl91cGRhdGVDb250ZW50KHQuZWxlbWVudCl9KSx2b2lkIDApfSxfZGlzYWJsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oaSxzKXt2YXIgbj1lLkV2ZW50KCJibHVyIik7bi50YXJnZXQ9bi5jdXJyZW50VGFyZ2V0PXMuZWxlbWVudFswXSx0LmNsb3NlKG4sITApfSksdGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5pcygiW3RpdGxlXSIpJiZ0LmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiLHQuYXR0cigidGl0bGUiKSkucmVtb3ZlQXR0cigidGl0bGUiKX0pfSxfZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikmJnQuYXR0cigidGl0bGUiLHQuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpKX0pfSxvcGVuOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz1lKHQ/dC50YXJnZXQ6dGhpcy5lbGVtZW50KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5pdGVtcyk7cy5sZW5ndGgmJiFzLmRhdGEoInVpLXRvb2x0aXAtaWQiKSYmKHMuYXR0cigidGl0bGUiKSYmcy5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIixzLmF0dHIoInRpdGxlIikpLHMuZGF0YSgidWktdG9vbHRpcC1vcGVuIiwhMCksdCYmIm1vdXNlb3ZlciI9PT10LnR5cGUmJnMucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxzPWUodGhpcyk7cy5kYXRhKCJ1aS10b29sdGlwLW9wZW4iKSYmKHQ9ZS5FdmVudCgiYmx1ciIpLHQudGFyZ2V0PXQuY3VycmVudFRhcmdldD10aGlzLGkuY2xvc2UodCwhMCkpLHMuYXR0cigidGl0bGUiKSYmKHMudW5pcXVlSWQoKSxpLnBhcmVudHNbdGhpcy5pZF09e2VsZW1lbnQ6dGhpcyx0aXRsZTpzLmF0dHIoInRpdGxlIil9LHMuYXR0cigidGl0bGUiLCIiKSl9KSx0aGlzLl9yZWdpc3RlckNsb3NlSGFuZGxlcnModCxzKSx0aGlzLl91cGRhdGVDb250ZW50KHMsdCkpfSxfdXBkYXRlQ29udGVudDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dGhpcy5vcHRpb25zLmNvbnRlbnQsbj10aGlzLGE9dD90LnR5cGU6bnVsbDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHM/dGhpcy5fb3Blbih0LGUscyk6KGk9cy5jYWxsKGVbMF0sZnVuY3Rpb24oaSl7bi5fZGVsYXkoZnVuY3Rpb24oKXtlLmRhdGEoInVpLXRvb2x0aXAtb3BlbiIpJiYodCYmKHQudHlwZT1hKSx0aGlzLl9vcGVuKHQsZSxpKSl9KX0pLGkmJnRoaXMuX29wZW4odCxlLGkpLHZvaWQgMCl9LF9vcGVuOmZ1bmN0aW9uKHQsaSxzKXtmdW5jdGlvbiBuKGUpe2wub2Y9ZSxvLmlzKCI6aGlkZGVuIil8fG8ucG9zaXRpb24obCl9dmFyIGEsbyxyLGgsbD1lLmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pO2lmKHMpe2lmKGE9dGhpcy5fZmluZChpKSlyZXR1cm4gYS50b29sdGlwLmZpbmQoIi51aS10b29sdGlwLWNvbnRlbnQiKS5odG1sKHMpLHZvaWQgMDtpLmlzKCJbdGl0bGVdIikmJih0JiYibW91c2VvdmVyIj09PXQudHlwZT9pLmF0dHIoInRpdGxlIiwiIik6aS5yZW1vdmVBdHRyKCJ0aXRsZSIpKSxhPXRoaXMuX3Rvb2x0aXAoaSksbz1hLnRvb2x0aXAsdGhpcy5fYWRkRGVzY3JpYmVkQnkoaSxvLmF0dHIoImlkIikpLG8uZmluZCgiLnVpLXRvb2x0aXAtY29udGVudCIpLmh0bWwocyksdGhpcy5saXZlUmVnaW9uLmNoaWxkcmVuKCkuaGlkZSgpLHMuY2xvbmU/KGg9cy5jbG9uZSgpLGgucmVtb3ZlQXR0cigiaWQiKS5maW5kKCJbaWRdIikucmVtb3ZlQXR0cigiaWQiKSk6aD1zLGUoIjxkaXY+IikuaHRtbChoKS5hcHBlbmRUbyh0aGlzLmxpdmVSZWdpb24pLHRoaXMub3B0aW9ucy50cmFjayYmdCYmL15tb3VzZS8udGVzdCh0LnR5cGUpPyh0aGlzLl9vbih0aGlzLmRvY3VtZW50LHttb3VzZW1vdmU6bn0pLG4odCkpOm8ucG9zaXRpb24oZS5leHRlbmQoe29mOml9LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpLG8uaGlkZSgpLHRoaXMuX3Nob3cobyx0aGlzLm9wdGlvbnMuc2hvdyksdGhpcy5vcHRpb25zLnNob3cmJnRoaXMub3B0aW9ucy5zaG93LmRlbGF5JiYocj10aGlzLmRlbGF5ZWRTaG93PXNldEludGVydmFsKGZ1bmN0aW9uKCl7by5pcygiOnZpc2libGUiKSYmKG4obC5vZiksY2xlYXJJbnRlcnZhbChyKSl9LGUuZnguaW50ZXJ2YWwpKSx0aGlzLl90cmlnZ2VyKCJvcGVuIix0LHt0b29sdGlwOm99KX19LF9yZWdpc3RlckNsb3NlSGFuZGxlcnM6ZnVuY3Rpb24odCxpKXt2YXIgcz17a2V5dXA6ZnVuY3Rpb24odCl7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVTQ0FQRSl7dmFyIHM9ZS5FdmVudCh0KTtzLmN1cnJlbnRUYXJnZXQ9aVswXSx0aGlzLmNsb3NlKHMsITApfX19O2lbMF0hPT10aGlzLmVsZW1lbnRbMF0mJihzLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3JlbW92ZVRvb2x0aXAodGhpcy5fZmluZChpKS50b29sdGlwKX0pLHQmJiJtb3VzZW92ZXIiIT09dC50eXBlfHwocy5tb3VzZWxlYXZlPSJjbG9zZSIpLHQmJiJmb2N1c2luIiE9PXQudHlwZXx8KHMuZm9jdXNvdXQ9ImNsb3NlIiksdGhpcy5fb24oITAsaSxzKX0sY2xvc2U6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLG49ZSh0P3QuY3VycmVudFRhcmdldDp0aGlzLmVsZW1lbnQpLGE9dGhpcy5fZmluZChuKTtyZXR1cm4gYT8oaT1hLnRvb2x0aXAsYS5jbG9zaW5nfHwoY2xlYXJJbnRlcnZhbCh0aGlzLmRlbGF5ZWRTaG93KSxuLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSYmIW4uYXR0cigidGl0bGUiKSYmbi5hdHRyKCJ0aXRsZSIsbi5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpLHRoaXMuX3JlbW92ZURlc2NyaWJlZEJ5KG4pLGEuaGlkaW5nPSEwLGkuc3RvcCghMCksdGhpcy5faGlkZShpLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7cy5fcmVtb3ZlVG9vbHRpcChlKHRoaXMpKX0pLG4ucmVtb3ZlRGF0YSgidWktdG9vbHRpcC1vcGVuIiksdGhpcy5fb2ZmKG4sIm1vdXNlbGVhdmUgZm9jdXNvdXQga2V5dXAiKSxuWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9vZmYobiwicmVtb3ZlIiksdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQsIm1vdXNlbW92ZSIpLHQmJiJtb3VzZWxlYXZlIj09PXQudHlwZSYmZS5lYWNoKHRoaXMucGFyZW50cyxmdW5jdGlvbih0LGkpe2UoaS5lbGVtZW50KS5hdHRyKCJ0aXRsZSIsaS50aXRsZSksZGVsZXRlIHMucGFyZW50c1t0XX0pLGEuY2xvc2luZz0hMCx0aGlzLl90cmlnZ2VyKCJjbG9zZSIsdCx7dG9vbHRpcDppfSksYS5oaWRpbmd8fChhLmNsb3Npbmc9ITEpKSx2b2lkIDApOihuLnJlbW92ZURhdGEoInVpLXRvb2x0aXAtb3BlbiIpLHZvaWQgMCl9LF90b29sdGlwOmZ1bmN0aW9uKHQpe3ZhciBpPWUoIjxkaXY+IikuYXR0cigicm9sZSIsInRvb2x0aXAiKS5hZGRDbGFzcygidWktdG9vbHRpcCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS13aWRnZXQtY29udGVudCAiKyh0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzfHwiIikpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7cmV0dXJuIGUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLXRvb2x0aXAtY29udGVudCIpLmFwcGVuZFRvKGkpLGkuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLnRvb2x0aXBzW3NdPXtlbGVtZW50OnQsdG9vbHRpcDppfX0sX2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhKCJ1aS10b29sdGlwLWlkIik7cmV0dXJuIHQ/dGhpcy50b29sdGlwc1t0XTpudWxsfSxfcmVtb3ZlVG9vbHRpcDpmdW5jdGlvbihlKXtlLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLnRvb2x0aXBzW2UuYXR0cigiaWQiKV19LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztlLmVhY2godGhpcy50b29sdGlwcyxmdW5jdGlvbihpLHMpe3ZhciBuPWUuRXZlbnQoImJsdXIiKSxhPXMuZWxlbWVudDtuLnRhcmdldD1uLmN1cnJlbnRUYXJnZXQ9YVswXSx0LmNsb3NlKG4sITApLGUoIiMiK2kpLnJlbW92ZSgpLGEuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpJiYoYS5hdHRyKCJ0aXRsZSIpfHxhLmF0dHIoInRpdGxlIixhLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSksYS5yZW1vdmVEYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpfSksdGhpcy5saXZlUmVnaW9uLnJlbW92ZSgpfX0pO3ZhciBjPSJ1aS1lZmZlY3RzLSIscD1lO2UuZWZmZWN0cz17ZWZmZWN0Ont9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoZSx0LGkpe3ZhciBzPWRbdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6MD5lPzA6ZT5zLm1heD9zLm1heDplKX1mdW5jdGlvbiBzKGkpe3ZhciBzPWwoKSxuPXMuX3JnYmE9W107cmV0dXJuIGk9aS50b0xvd2VyQ2FzZSgpLGYoaCxmdW5jdGlvbihlLGEpe3ZhciBvLHI9YS5yZS5leGVjKGkpLGg9ciYmYS5wYXJzZShyKSxsPWEuc3BhY2V8fCJyZ2JhIjtyZXR1cm4gaD8obz1zW2xdKGgpLHNbdVtsXS5jYWNoZV09b1t1W2xdLmNhY2hlXSxuPXMuX3JnYmE9by5fcmdiYSwhMSk6dH0pLG4ubGVuZ3RoPygiMCwwLDAsMCI9PT1uLmpvaW4oKSYmZS5leHRlbmQobixhLnRyYW5zcGFyZW50KSxzKTphW2ldfWZ1bmN0aW9uIG4oZSx0LGkpe3JldHVybiBpPShpKzEpJTEsMT42Kmk/ZSs2Kih0LWUpKmk6MT4yKmk/dDoyPjMqaT9lKzYqKHQtZSkqKDIvMy1pKTplfXZhciBhLG89ImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiLHI9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxoPVt7cmU6L3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KV19fSx7cmU6LyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KV19fSx7cmU6L2hzbGE/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLGw9ZS5Db2xvcj1mdW5jdGlvbih0LGkscyxuKXtyZXR1cm4gbmV3IGUuQ29sb3IuZm4ucGFyc2UodCxpLHMsbil9LHU9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sZD17ImJ5dGUiOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LGM9bC5zdXBwb3J0PXt9LHA9ZSgiPHA+IilbMF0sZj1lLmVhY2g7cC5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIixjLnJnYmE9cC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpPi0xLGYodSxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksbC5mbj1lLmV4dGVuZChsLnByb3RvdHlwZSx7cGFyc2U6ZnVuY3Rpb24obixvLHIsaCl7aWYobj09PXQpcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49ZShuKS5jc3Mobyksbz10KTt2YXIgZD10aGlzLGM9ZS50eXBlKG4pLHA9dGhpcy5fcmdiYT1bXTtyZXR1cm4gbyE9PXQmJihuPVtuLG8scixoXSxjPSJhcnJheSIpLCJzdHJpbmciPT09Yz90aGlzLnBhcnNlKHMobil8fGEuX2RlZmF1bHQpOiJhcnJheSI9PT1jPyhmKHUucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe3BbdC5pZHhdPWkoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PWM/KG4gaW5zdGFuY2VvZiBsP2YodSxmdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihkW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9KTpmKHUsZnVuY3Rpb24odCxzKXt2YXIgYT1zLmNhY2hlO2Yocy5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFkW2FdJiZzLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47ZFthXT1zLnRvKGQuX3JnYmEpfWRbYV1bdC5pZHhdPWkobltlXSx0LCEwKX0pLGRbYV0mJjA+ZS5pbkFycmF5KG51bGwsZFthXS5zbGljZSgwLDMpKSYmKGRbYV1bM109MSxzLmZyb20mJihkLl9yZ2JhPXMuZnJvbShkW2FdKSkpfSksdGhpcyk6dH0saXM6ZnVuY3Rpb24oZSl7dmFyIGk9bChlKSxzPSEwLG49dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGUsYSl7dmFyIG8scj1pW2EuY2FjaGVdO3JldHVybiByJiYobz1uW2EuY2FjaGVdfHxhLnRvJiZhLnRvKG4uX3JnYmEpfHxbXSxmKGEucHJvcHMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gbnVsbCE9cltpLmlkeF0/cz1yW2kuaWR4XT09PW9baS5pZHhdOnR9KSksc30pLHN9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGkscyl7dFtzLmNhY2hlXSYmZS5wdXNoKGkpfSksZS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBzPWwoZSksbj1zLl9zcGFjZSgpLGE9dVtuXSxvPTA9PT10aGlzLmFscGhhKCk/bCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9b1thLmNhY2hlXXx8YS50byhvLl9yZ2JhKSxoPXIuc2xpY2UoKTtyZXR1cm4gcz1zW2EuY2FjaGVdLGYoYS5wcm9wcyxmdW5jdGlvbihlLG4pe3ZhciBhPW4uaWR4LG89clthXSxsPXNbYV0sdT1kW24udHlwZV18fHt9O251bGwhPT1sJiYobnVsbD09PW8/aFthXT1sOih1Lm1vZCYmKGwtbz51Lm1vZC8yP28rPXUubW9kOm8tbD51Lm1vZC8yJiYoby09dS5tb2QpKSxoW2FdPWkoKGwtbykqdCtvLG4pKSl9KSx0aGlzW25dKGgpfSxibGVuZDpmdW5jdGlvbih0KXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpLG49bCh0KS5fcmdiYTtyZXR1cm4gbChlLm1hcChpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtcykqblt0XStzKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJyZ2JhKCIsaT1lLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dD4yPzE6MDplfSk7cmV0dXJuIDE9PT1pWzNdJiYoaS5wb3AoKSx0PSJyZ2IoIiksdCtpLmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJoc2xhKCIsaT1lLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT10PjI/MTowKSx0JiYzPnQmJihlPU1hdGgucm91bmQoMTAwKmUpKyIlIiksZX0pO3JldHVybiAxPT09aVszXSYmKGkucG9wKCksdD0iaHNsKCIpLHQraS5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpO3JldHVybiB0JiZpLnB1c2gofn4oMjU1KnMpKSwiIyIrZS5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gZT0oZXx8MCkudG9TdHJpbmcoMTYpLDE9PT1lLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSxsLmZuLnBhcnNlLnByb3RvdHlwZT1sLmZuLHUuaHNsYS50bz1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdCxpLHM9ZVswXS8yNTUsbj1lWzFdLzI1NSxhPWVbMl0vMjU1LG89ZVszXSxyPU1hdGgubWF4KHMsbixhKSxoPU1hdGgubWluKHMsbixhKSxsPXItaCx1PXIraCxkPS41KnU7cmV0dXJuIHQ9aD09PXI/MDpzPT09cj82MCoobi1hKS9sKzM2MDpuPT09cj82MCooYS1zKS9sKzEyMDo2MCoocy1uKS9sKzI0MCxpPTA9PT1sPzA6LjU+PWQ/bC91OmwvKDItdSksW01hdGgucm91bmQodCklMzYwLGksZCxudWxsPT1vPzE6b119LHUuaHNsYS5mcm9tPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMzYwLGk9ZVsxXSxzPWVbMl0sYT1lWzNdLG89LjU+PXM/cyooMStpKTpzK2ktcyppLHI9MipzLW87cmV0dXJuW01hdGgucm91bmQoMjU1Km4ocixvLHQrMS8zKSksTWF0aC5yb3VuZCgyNTUqbihyLG8sdCkpLE1hdGgucm91bmQoMjU1Km4ocixvLHQtMS8zKSksYV19LGYodSxmdW5jdGlvbihzLG4pe3ZhciBhPW4ucHJvcHMsbz1uLmNhY2hlLGg9bi50byx1PW4uZnJvbTtsLmZuW3NdPWZ1bmN0aW9uKHMpe2lmKGgmJiF0aGlzW29dJiYodGhpc1tvXT1oKHRoaXMuX3JnYmEpKSxzPT09dClyZXR1cm4gdGhpc1tvXS5zbGljZSgpO3ZhciBuLHI9ZS50eXBlKHMpLGQ9ImFycmF5Ij09PXJ8fCJvYmplY3QiPT09cj9zOmFyZ3VtZW50cyxjPXRoaXNbb10uc2xpY2UoKTtyZXR1cm4gZihhLGZ1bmN0aW9uKGUsdCl7dmFyIHM9ZFsib2JqZWN0Ij09PXI/ZTp0LmlkeF07bnVsbD09cyYmKHM9Y1t0LmlkeF0pLGNbdC5pZHhdPWkocyx0KX0pLHU/KG49bCh1KGMpKSxuW29dPWMsbik6bChjKX0sZihhLGZ1bmN0aW9uKHQsaSl7bC5mblt0XXx8KGwuZm5bdF09ZnVuY3Rpb24obil7dmFyIGEsbz1lLnR5cGUobiksaD0iYWxwaGEiPT09dD90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6cyxsPXRoaXNbaF0oKSx1PWxbaS5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09bz91OigiZnVuY3Rpb24iPT09byYmKG49bi5jYWxsKHRoaXMsdSksbz1lLnR5cGUobikpLG51bGw9PW4mJmkuZW1wdHk/dGhpczooInN0cmluZyI9PT1vJiYoYT1yLmV4ZWMobiksYSYmKG49dStwYXJzZUZsb2F0KGFbMl0pKigiKyI9PT1hWzFdPzE6LTEpKSksbFtpLmlkeF09bix0aGlzW2hdKGwpKSl9KX0pfSksbC5ob29rPWZ1bmN0aW9uKHQpe3ZhciBpPXQuc3BsaXQoIiAiKTtmKGksZnVuY3Rpb24odCxpKXtlLmNzc0hvb2tzW2ldPXtzZXQ6ZnVuY3Rpb24odCxuKXt2YXIgYSxvLHI9IiI7aWYoInRyYW5zcGFyZW50IiE9PW4mJigic3RyaW5nIiE9PWUudHlwZShuKXx8KGE9cyhuKSkpKXtpZihuPWwoYXx8biksIWMucmdiYSYmMSE9PW4uX3JnYmFbM10pe2ZvcihvPSJiYWNrZ3JvdW5kQ29sb3IiPT09aT90LnBhcmVudE5vZGU6dDsoIiI9PT1yfHwidHJhbnNwYXJlbnQiPT09cikmJm8mJm8uc3R5bGU7KXRyeXtyPWUuY3NzKG8sImJhY2tncm91bmRDb2xvciIpLG89by5wYXJlbnROb2RlfWNhdGNoKGgpe31uPW4uYmxlbmQociYmInRyYW5zcGFyZW50IiE9PXI/cjoiX2RlZmF1bHQiKX1uPW4udG9SZ2JhU3RyaW5nKCl9dHJ5e3Quc3R5bGVbaV09bn1jYXRjaChoKXt9fX0sZS5meC5zdGVwW2ldPWZ1bmN0aW9uKHQpe3QuY29sb3JJbml0fHwodC5zdGFydD1sKHQuZWxlbSxpKSx0LmVuZD1sKHQuZW5kKSx0LmNvbG9ySW5pdD0hMCksZS5jc3NIb29rc1tpXS5zZXQodC5lbGVtLHQuc3RhcnQudHJhbnNpdGlvbih0LmVuZCx0LnBvcykpfX0pfSxsLmhvb2sobyksZS5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBmKFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oaSxzKXt0WyJib3JkZXIiK3MrIkNvbG9yIl09ZX0pLHR9fSxhPWUuQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn19KHApLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaSxzLG49dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk6dC5jdXJyZW50U3R5bGUsYT17fTtpZihuJiZuLmxlbmd0aCYmblswXSYmbltuWzBdXSlmb3Iocz1uLmxlbmd0aDtzLS07KWk9bltzXSwic3RyaW5nIj09dHlwZW9mIG5baV0mJihhW2UuY2FtZWxDYXNlKGkpXT1uW2ldKTtlbHNlIGZvcihpIGluIG4pInN0cmluZyI9PXR5cGVvZiBuW2ldJiYoYVtpXT1uW2ldKTtyZXR1cm4gYX1mdW5jdGlvbiBpKHQsaSl7dmFyIHMsYSxvPXt9O2ZvcihzIGluIGkpYT1pW3NdLHRbc10hPT1hJiYobltzXXx8KGUuZnguc3RlcFtzXXx8IWlzTmFOKHBhcnNlRmxvYXQoYSkpKSYmKG9bc109YSkpO3JldHVybiBvfXZhciBzPVsiYWRkIiwicmVtb3ZlIiwidG9nZ2xlIl0sbj17Ym9yZGVyOjEsYm9yZGVyQm90dG9tOjEsYm9yZGVyQ29sb3I6MSxib3JkZXJMZWZ0OjEsYm9yZGVyUmlnaHQ6MSxib3JkZXJUb3A6MSxib3JkZXJXaWR0aDoxLG1hcmdpbjoxLHBhZGRpbmc6MX07ZS5lYWNoKFsiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyVG9wU3R5bGUiXSxmdW5jdGlvbih0LGkpe2UuZnguc3RlcFtpXT1mdW5jdGlvbihlKXsoIm5vbmUiIT09ZS5lbmQmJiFlLnNldEF0dHJ8fDE9PT1lLnBvcyYmIWUuc2V0QXR0cikmJihwLnN0eWxlKGUuZWxlbSxpLGUuZW5kKSxlLnNldEF0dHI9ITApfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlLmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKG4sYSxvLHIpe3ZhciBoPWUuc3BlZWQoYSxvLHIpO3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGEsbz1lKHRoaXMpLHI9by5hdHRyKCJjbGFzcyIpfHwiIixsPWguY2hpbGRyZW4/by5maW5kKCIqIikuYWRkQmFjaygpOm87bD1sLm1hcChmdW5jdGlvbigpe3ZhciBpPWUodGhpcyk7cmV0dXJue2VsOmksc3RhcnQ6dCh0aGlzKX19KSxhPWZ1bmN0aW9uKCl7ZS5lYWNoKHMsZnVuY3Rpb24oZSx0KXtuW3RdJiZvW3QrIkNsYXNzIl0oblt0XSl9KX0sYSgpLGw9bC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9dCh0aGlzLmVsWzBdKSx0aGlzLmRpZmY9aSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksby5hdHRyKCJjbGFzcyIsciksbD1sLm1hcChmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT1lLkRlZmVycmVkKCkscz1lLmV4dGVuZCh7fSxoLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2kucmVzb2x2ZSh0KX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixzKSxpLnByb21pc2UoKX0pLGUud2hlbi5hcHBseShlLGwuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXthKCksZS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7ZS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksaC5jb21wbGV0ZS5jYWxsKG9bMF0pfSl9KX0sZS5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gcz9lLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOml9LHMsbixhKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KGUuZm4uYWRkQ2xhc3MpLHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6aX0scyxuLGEpOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5yZW1vdmVDbGFzcyksdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkscyxuLGEsbyl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2Ygc3x8dm9pZCAwPT09cz9uP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHM/e2FkZDppfTp7cmVtb3ZlOml9LG4sYSxvKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOml9LHMsbixhKX19KGUuZm4udG9nZ2xlQ2xhc3MpLHN3aXRjaENsYXNzOmZ1bmN0aW9uKHQsaSxzLG4sYSl7cmV0dXJuIGUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6aSxyZW1vdmU6dH0scyxuLGEpfX0pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkscyxuKXtyZXR1cm4gZS5pc1BsYWluT2JqZWN0KHQpJiYoaT10LHQ9dC5lZmZlY3QpLHQ9e2VmZmVjdDp0fSxudWxsPT1pJiYoaT17fSksZS5pc0Z1bmN0aW9uKGkpJiYobj1pLHM9bnVsbCxpPXt9KSwoIm51bWJlciI9PXR5cGVvZiBpfHxlLmZ4LnNwZWVkc1tpXSkmJihuPXMscz1pLGk9e30pLGUuaXNGdW5jdGlvbihzKSYmKG49cyxzPW51bGwpLGkmJmUuZXh0ZW5kKHQsaSkscz1zfHxpLmR1cmF0aW9uLHQuZHVyYXRpb249ZS5meC5vZmY/MDoibnVtYmVyIj09dHlwZW9mIHM/czpzIGluIGUuZnguc3BlZWRzP2UuZnguc3BlZWRzW3NdOmUuZnguc3BlZWRzLl9kZWZhdWx0LHQuY29tcGxldGU9bnx8aS5jb21wbGV0ZSx0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIXR8fCJudW1iZXIiPT10eXBlb2YgdHx8ZS5meC5zcGVlZHNbdF0/ITA6InN0cmluZyIhPXR5cGVvZiB0fHxlLmVmZmVjdHMuZWZmZWN0W3RdP2UuaXNGdW5jdGlvbih0KT8hMDoib2JqZWN0IiE9dHlwZW9mIHR8fHQuZWZmZWN0PyExOiEwOiEwfWUuZXh0ZW5kKGUuZWZmZWN0cyx7dmVyc2lvbjoiMS4xMS40IixzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTA7dC5sZW5ndGg+aTtpKyspbnVsbCE9PXRbaV0mJmUuZGF0YShjK3RbaV0sZVswXS5zdHlsZVt0W2ldXSl9LHJlc3RvcmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO2ZvcihzPTA7dC5sZW5ndGg+cztzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YShjK3Rbc10pLHZvaWQgMD09PWkmJihpPSIiKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZS5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSIpLHR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24odCl7aWYodC5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiB0LnBhcmVudCgpO3ZhciBpPXt3aWR0aDp0Lm91dGVyV2lkdGgoITApLGhlaWdodDp0Lm91dGVySGVpZ2h0KCEwKSwiZmxvYXQiOnQuY3NzKCJmbG9hdCIpfSxzPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLG1hcmdpbjowLHBhZGRpbmc6MH0pLG49e3dpZHRoOnQud2lkdGgoKSxoZWlnaHQ6dC5oZWlnaHQoKX0sYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXthLmlkfWNhdGNoKG8pe2E9ZG9jdW1lbnQuYm9keX1yZXR1cm4gdC53cmFwKHMpLCh0WzBdPT09YXx8ZS5jb250YWlucyh0WzBdLGEpKSYmZShhKS5mb2N1cygpLHM9dC5wYXJlbnQoKSwic3RhdGljIj09PXQuY3NzKCJwb3NpdGlvbiIpPyhzLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLHQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOihlLmV4dGVuZChpLHtwb3NpdGlvbjp0LmNzcygicG9zaXRpb24iKSx6SW5kZXg6dC5jc3MoInotaW5kZXgiKX0pLGUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUscyl7aVtzXT10LmNzcyhzKSxpc05hTihwYXJzZUludChpW3NdLDEwKSkmJihpW3NdPSJhdXRvIil9KSx0LmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksdC5jc3Mobikscy5jc3MoaSkuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKHQpe3ZhciBpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIHQucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKHQucGFyZW50KCkucmVwbGFjZVdpdGgodCksKHRbMF09PT1pfHxlLmNvbnRhaW5zKHRbMF0saSkpJiZlKGkpLmZvY3VzKCkpLHR9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24odCxpLHMsbil7cmV0dXJuIG49bnx8e30sZS5lYWNoKGksZnVuY3Rpb24oZSxpKXt2YXIgYT10LmNzc1VuaXQoaSk7YVswXT4wJiYobltpXT1hWzBdKnMrYVsxXSl9KSxufX0pLGUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGkoKXtlLmlzRnVuY3Rpb24oYSkmJmEuY2FsbChuWzBdKSxlLmlzRnVuY3Rpb24odCkmJnQoKX12YXIgbj1lKHRoaXMpLGE9cy5jb21wbGV0ZSxyPXMubW9kZTsobi5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik/KG5bcl0oKSxpKCkpOm8uY2FsbChuWzBdLHMsaSl9dmFyIHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1zLm1vZGUsYT1zLnF1ZXVlLG89ZS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF07cmV0dXJuIGUuZngub2ZmfHwhbz9uP3RoaXNbbl0ocy5kdXJhdGlvbixzLmNvbXBsZXRlKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtzLmNvbXBsZXRlJiZzLmNvbXBsZXRlLmNhbGwodGhpcyl9KTphPT09ITE/dGhpcy5lYWNoKGkpOnRoaXMucXVldWUoYXx8ImZ4IixpKX0sc2hvdzpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0ic2hvdyIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLG4pfX0oZS5mbi5zaG93KSxoaWRlOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtpZihpKHMpKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbi5tb2RlPSJoaWRlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLmhpZGUpLHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKXx8ImJvb2xlYW4iPT10eXBlb2YgcylyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLnRvZ2dsZSksY3NzVW5pdDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmNzcyh0KSxzPVtdO3JldHVybiBlLmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXtpLmluZGV4T2YodCk+MCYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc319KX0oKSxmdW5jdGlvbigpe3ZhciB0PXt9O2UuZWFjaChbIlF1YWQiLCJDdWJpYyIsIlF1YXJ0IiwiUXVpbnQiLCJFeHBvIl0sZnVuY3Rpb24oZSxpKXt0W2ldPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LGUrMil9fSksZS5leHRlbmQodCx7U2luZTpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLmNvcyhlKk1hdGguUEkvMil9LENpcmM6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX0sRWxhc3RpYzpmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV8fDE9PT1lP2U6LU1hdGgucG93KDIsOCooZS0xKSkqTWF0aC5zaW4oKDgwKihlLTEpLTcuNSkqTWF0aC5QSS8xNSl9LEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooMyplLTIpfSxCb3VuY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9NDsoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMT5lOyk7cmV0dXJuIDEvTWF0aC5wb3coNCwzLWkpLTcuNTYyNSpNYXRoLnBvdygoMyp0LTIpLzIyLWUsMil9fSksZS5lYWNoKHQsZnVuY3Rpb24odCxpKXtlLmVhc2luZ1siZWFzZUluIit0XT1pLGUuZWFzaW5nWyJlYXNlT3V0Iit0XT1mdW5jdGlvbihlKXtyZXR1cm4gMS1pKDEtZSl9LGUuZWFzaW5nWyJlYXNlSW5PdXQiK3RdPWZ1bmN0aW9uKGUpe3JldHVybi41PmU/aSgyKmUpLzI6MS1pKC0yKmUrMikvMn19KX0oKSxlLmVmZmVjdHMsZS5lZmZlY3RzLmVmZmVjdC5ibGluZD1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYSxvPWUodGhpcykscj0vdXB8ZG93bnx2ZXJ0aWNhbC8saD0vdXB8bGVmdHx2ZXJ0aWNhbHxob3Jpem9udGFsLyxsPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHU9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksZD10LmRpcmVjdGlvbnx8InVwIixjPXIudGVzdChkKSxwPWM/ImhlaWdodCI6IndpZHRoIixmPWM/InRvcCI6ImxlZnQiLG09aC50ZXN0KGQpLGc9e30sdj0ic2hvdyI9PT11O28ucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKT9lLmVmZmVjdHMuc2F2ZShvLnBhcmVudCgpLGwpOmUuZWZmZWN0cy5zYXZlKG8sbCksby5zaG93KCkscz1lLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksbj1zW3BdKCksYT1wYXJzZUZsb2F0KHMuY3NzKGYpKXx8MCxnW3BdPXY/bjowLG18fChvLmNzcyhjPyJib3R0b20iOiJyaWdodCIsMCkuY3NzKGM/InRvcCI6ImxlZnQiLCJhdXRvIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSksZ1tmXT12P2E6bithKSx2JiYocy5jc3MocCwwKSxtfHxzLmNzcyhmLGErbikpLHMuYW5pbWF0ZShnLHtkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PXUmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sbCksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpCn19KX0sZS5lZmZlY3RzLmVmZmVjdC5ib3VuY2U9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz1lKHRoaXMpLHI9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0saD1lLmVmZmVjdHMuc2V0TW9kZShvLHQubW9kZXx8ImVmZmVjdCIpLGw9ImhpZGUiPT09aCx1PSJzaG93Ij09PWgsZD10LmRpcmVjdGlvbnx8InVwIixjPXQuZGlzdGFuY2UscD10LnRpbWVzfHw1LGY9MipwKyh1fHxsPzE6MCksbT10LmR1cmF0aW9uL2YsZz10LmVhc2luZyx2PSJ1cCI9PT1kfHwiZG93biI9PT1kPyJ0b3AiOiJsZWZ0Iix5PSJ1cCI9PT1kfHwibGVmdCI9PT1kLGI9by5xdWV1ZSgpLF89Yi5sZW5ndGg7Zm9yKCh1fHxsKSYmci5wdXNoKCJvcGFjaXR5IiksZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKSxjfHwoYz1vWyJ0b3AiPT09dj8ib3V0ZXJIZWlnaHQiOiJvdXRlcldpZHRoIl0oKS8zKSx1JiYoYT17b3BhY2l0eToxfSxhW3ZdPTAsby5jc3MoIm9wYWNpdHkiLDApLmNzcyh2LHk/MiotYzoyKmMpLmFuaW1hdGUoYSxtLGcpKSxsJiYoYy89TWF0aC5wb3coMixwLTEpKSxhPXt9LGFbdl09MCxzPTA7cD5zO3MrKyluPXt9LG5bdl09KHk/Ii09IjoiKz0iKStjLG8uYW5pbWF0ZShuLG0sZykuYW5pbWF0ZShhLG0sZyksYz1sPzIqYzpjLzI7bCYmKG49e29wYWNpdHk6MH0sblt2XT0oeT8iLT0iOiIrPSIpK2Msby5hbmltYXRlKG4sbSxnKSksby5xdWV1ZShmdW5jdGlvbigpe2wmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfSksXz4xJiZiLnNwbGljZS5hcHBseShiLFsxLDBdLmNvbmNhdChiLnNwbGljZShfLGYrMSkpKSxvLmRlcXVldWUoKX0sZS5lZmZlY3RzLmVmZmVjdC5jbGlwPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLGg9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksbD0ic2hvdyI9PT1oLHU9dC5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCIsZD0idmVydGljYWwiPT09dSxjPWQ/ImhlaWdodCI6IndpZHRoIixwPWQ/InRvcCI6ImxlZnQiLGY9e307ZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPSJJTUciPT09b1swXS50YWdOYW1lP3M6byxhPW5bY10oKSxsJiYobi5jc3MoYywwKSxuLmNzcyhwLGEvMikpLGZbY109bD9hOjAsZltwXT1sPzA6YS8yLG4uYW5pbWF0ZShmLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe2x8fG8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmRyb3A9ZnVuY3Rpb24odCxpKXt2YXIgcyxuPWUodGhpcyksYT1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Iiwib3BhY2l0eSIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImhpZGUiKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWg/InBvcyI6Im5lZyIsZD17b3BhY2l0eTpyPzE6MH07ZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxzPXQuZGlzdGFuY2V8fG5bInRvcCI9PT1sPyJvdXRlckhlaWdodCI6Im91dGVyV2lkdGgiXSghMCkvMixyJiZuLmNzcygib3BhY2l0eSIsMCkuY3NzKGwsInBvcyI9PT11Py1zOnMpLGRbbF09KHI/InBvcyI9PT11PyIrPSI6Ii09IjoicG9zIj09PXU/Ii09IjoiKz0iKStzLG4uYW5pbWF0ZShkLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PW8mJm4uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG4sYSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobiksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmV4cGxvZGU9ZnVuY3Rpb24odCxpKXtmdW5jdGlvbiBzKCl7Yi5wdXNoKHRoaXMpLGIubGVuZ3RoPT09ZCpjJiZuKCl9ZnVuY3Rpb24gbigpe3AuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGUoYikucmVtb3ZlKCksbXx8cC5oaWRlKCksaSgpfXZhciBhLG8scixoLGwsdSxkPXQucGllY2VzP01hdGgucm91bmQoTWF0aC5zcXJ0KHQucGllY2VzKSk6MyxjPWQscD1lKHRoaXMpLGY9ZS5lZmZlY3RzLnNldE1vZGUocCx0Lm1vZGV8fCJoaWRlIiksbT0ic2hvdyI9PT1mLGc9cC5zaG93KCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikub2Zmc2V0KCksdj1NYXRoLmNlaWwocC5vdXRlcldpZHRoKCkvYykseT1NYXRoLmNlaWwocC5vdXRlckhlaWdodCgpL2QpLGI9W107Zm9yKGE9MDtkPmE7YSsrKWZvcihoPWcudG9wK2EqeSx1PWEtKGQtMSkvMixvPTA7Yz5vO28rKylyPWcubGVmdCtvKnYsbD1vLShjLTEpLzIscC5jbG9uZSgpLmFwcGVuZFRvKCJib2R5Iikud3JhcCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToidmlzaWJsZSIsbGVmdDotbyp2LHRvcDotYSp5fSkucGFyZW50KCkuYWRkQ2xhc3MoInVpLWVmZmVjdHMtZXhwbG9kZSIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixvdmVyZmxvdzoiaGlkZGVuIix3aWR0aDp2LGhlaWdodDp5LGxlZnQ6cisobT9sKnY6MCksdG9wOmgrKG0/dSp5OjApLG9wYWNpdHk6bT8wOjF9KS5hbmltYXRlKHtsZWZ0OnIrKG0/MDpsKnYpLHRvcDpoKyhtPzA6dSp5KSxvcGFjaXR5Om0/MTowfSx0LmR1cmF0aW9ufHw1MDAsdC5lYXNpbmcscyl9LGUuZWZmZWN0cy5lZmZlY3QuZmFkZT1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8InRvZ2dsZSIpO3MuYW5pbWF0ZSh7b3BhY2l0eTpufSx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6aX0pfSxlLmVmZmVjdHMuZWZmZWN0LmZvbGQ9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGE9ZSh0aGlzKSxvPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHI9ZS5lZmZlY3RzLnNldE1vZGUoYSx0Lm1vZGV8fCJoaWRlIiksaD0ic2hvdyI9PT1yLGw9ImhpZGUiPT09cix1PXQuc2l6ZXx8MTUsZD0vKFswLTldKyklLy5leGVjKHUpLGM9ISF0Lmhvcml6Rmlyc3QscD1oIT09YyxmPXA/WyJ3aWR0aCIsImhlaWdodCJdOlsiaGVpZ2h0Iiwid2lkdGgiXSxtPXQuZHVyYXRpb24vMixnPXt9LHY9e307ZS5lZmZlY3RzLnNhdmUoYSxvKSxhLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKGEpLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPXA/W3Mud2lkdGgoKSxzLmhlaWdodCgpXTpbcy5oZWlnaHQoKSxzLndpZHRoKCldLGQmJih1PXBhcnNlSW50KGRbMV0sMTApLzEwMCpuW2w/MDoxXSksaCYmcy5jc3MoYz97aGVpZ2h0OjAsd2lkdGg6dX06e2hlaWdodDp1LHdpZHRoOjB9KSxnW2ZbMF1dPWg/blswXTp1LHZbZlsxXV09aD9uWzFdOjAscy5hbmltYXRlKGcsbSx0LmVhc2luZykuYW5pbWF0ZSh2LG0sdC5lYXNpbmcsZnVuY3Rpb24oKXtsJiZhLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShhLG8pLGUuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKGEpLGkoKX0pfSxlLmVmZmVjdHMuZWZmZWN0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1bImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRDb2xvciIsIm9wYWNpdHkiXSxhPWUuZWZmZWN0cy5zZXRNb2RlKHMsdC5tb2RlfHwic2hvdyIpLG89e2JhY2tncm91bmRDb2xvcjpzLmNzcygiYmFja2dyb3VuZENvbG9yIil9OyJoaWRlIj09PWEmJihvLm9wYWNpdHk9MCksZS5lZmZlY3RzLnNhdmUocyxuKSxzLnNob3coKS5jc3Moe2JhY2tncm91bmRJbWFnZToibm9uZSIsYmFja2dyb3VuZENvbG9yOnQuY29sb3J8fCIjZmZmZjk5In0pLmFuaW1hdGUobyx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXsiaGlkZSI9PT1hJiZzLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShzLG4pLGkoKX19KX0sZS5lZmZlY3RzLmVmZmVjdC5zaXplPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGg9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGw9WyJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Il0sdT1bImZvbnRTaXplIl0sZD1bImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGM9WyJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiXSxwPWUuZWZmZWN0cy5zZXRNb2RlKG8sdC5tb2RlfHwiZWZmZWN0IiksZj10LnJlc3RvcmV8fCJlZmZlY3QiIT09cCxtPXQuc2NhbGV8fCJib3RoIixnPXQub3JpZ2lufHxbIm1pZGRsZSIsImNlbnRlciJdLHY9by5jc3MoInBvc2l0aW9uIikseT1mP3I6aCxiPXtoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTsic2hvdyI9PT1wJiZvLnNob3coKSxzPXtoZWlnaHQ6by5oZWlnaHQoKSx3aWR0aDpvLndpZHRoKCksb3V0ZXJIZWlnaHQ6by5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6by5vdXRlcldpZHRoKCl9LCJ0b2dnbGUiPT09dC5tb2RlJiYic2hvdyI9PT1wPyhvLmZyb209dC50b3x8YixvLnRvPXQuZnJvbXx8cyk6KG8uZnJvbT10LmZyb218fCgic2hvdyI9PT1wP2I6cyksby50bz10LnRvfHwoImhpZGUiPT09cD9iOnMpKSxhPXtmcm9tOnt5Om8uZnJvbS5oZWlnaHQvcy5oZWlnaHQseDpvLmZyb20ud2lkdGgvcy53aWR0aH0sdG86e3k6by50by5oZWlnaHQvcy5oZWlnaHQseDpvLnRvLndpZHRoL3Mud2lkdGh9fSwoImJveCI9PT1tfHwiYm90aCI9PT1tKSYmKGEuZnJvbS55IT09YS50by55JiYoeT15LmNvbmNhdChkKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxkLGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLGQsYS50by55LG8udG8pKSxhLmZyb20ueCE9PWEudG8ueCYmKHk9eS5jb25jYXQoYyksby5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKG8sYyxhLmZyb20ueCxvLmZyb20pLG8udG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxjLGEudG8ueCxvLnRvKSkpLCgiY29udGVudCI9PT1tfHwiYm90aCI9PT1tKSYmYS5mcm9tLnkhPT1hLnRvLnkmJih5PXkuY29uY2F0KHUpLmNvbmNhdChsKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyx1LGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLHUsYS50by55LG8udG8pKSxlLmVmZmVjdHMuc2F2ZShvLHkpLG8uc2hvdygpLGUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLG8uY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLmNzcyhvLmZyb20pLGcmJihuPWUuZWZmZWN0cy5nZXRCYXNlbGluZShnLHMpLG8uZnJvbS50b3A9KHMub3V0ZXJIZWlnaHQtby5vdXRlckhlaWdodCgpKSpuLnksby5mcm9tLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLm91dGVyV2lkdGgoKSkqbi54LG8udG8udG9wPShzLm91dGVySGVpZ2h0LW8udG8ub3V0ZXJIZWlnaHQpKm4ueSxvLnRvLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLnRvLm91dGVyV2lkdGgpKm4ueCksby5jc3Moby5mcm9tKSwoImNvbnRlbnQiPT09bXx8ImJvdGgiPT09bSkmJihkPWQuY29uY2F0KFsibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIl0pLmNvbmNhdCh1KSxjPWMuY29uY2F0KFsibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0Il0pLGw9ci5jb25jYXQoZCkuY29uY2F0KGMpLG8uZmluZCgiKlt3aWR0aF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPXtoZWlnaHQ6aS5oZWlnaHQoKSx3aWR0aDppLndpZHRoKCksb3V0ZXJIZWlnaHQ6aS5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6aS5vdXRlcldpZHRoKCl9O2YmJmUuZWZmZWN0cy5zYXZlKGksbCksaS5mcm9tPXtoZWlnaHQ6cy5oZWlnaHQqYS5mcm9tLnksd2lkdGg6cy53aWR0aCphLmZyb20ueCxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KmEuZnJvbS55LG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKmEuZnJvbS54fSxpLnRvPXtoZWlnaHQ6cy5oZWlnaHQqYS50by55LHdpZHRoOnMud2lkdGgqYS50by54LG91dGVySGVpZ2h0OnMuaGVpZ2h0KmEudG8ueSxvdXRlcldpZHRoOnMud2lkdGgqYS50by54fSxhLmZyb20ueSE9PWEudG8ueSYmKGkuZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGQsYS5mcm9tLnksaS5mcm9tKSxpLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksZCxhLnRvLnksaS50bykpLGEuZnJvbS54IT09YS50by54JiYoaS5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksYyxhLmZyb20ueCxpLmZyb20pLGkudG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24oaSxjLGEudG8ueCxpLnRvKSksaS5jc3MoaS5mcm9tKSxpLmFuaW1hdGUoaS50byx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7ZiYmZS5lZmZlY3RzLnJlc3RvcmUoaSxsKX0pfSkpLG8uYW5pbWF0ZShvLnRvLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpezA9PT1vLnRvLm9wYWNpdHkmJm8uY3NzKCJvcGFjaXR5IixvLmZyb20ub3BhY2l0eSksImhpZGUiPT09cCYmby5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyx5KSxmfHwoInN0YXRpYyI9PT12P28uY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDpvLnRvLnRvcCxsZWZ0Om8udG8ubGVmdH0pOmUuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLHQpe28uY3NzKHQsZnVuY3Rpb24odCxpKXt2YXIgcz1wYXJzZUludChpLDEwKSxuPWU/by50by5sZWZ0Om8udG8udG9wO3JldHVybiJhdXRvIj09PWk/bisicHgiOnMrbisicHgifSl9KSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LnNjYWxlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPWUuZXh0ZW5kKCEwLHt9LHQpLGE9ZS5lZmZlY3RzLnNldE1vZGUocyx0Lm1vZGV8fCJlZmZlY3QiKSxvPXBhcnNlSW50KHQucGVyY2VudCwxMCl8fCgwPT09cGFyc2VJbnQodC5wZXJjZW50LDEwKT8wOiJoaWRlIj09PWE/MDoxMDApLHI9dC5kaXJlY3Rpb258fCJib3RoIixoPXQub3JpZ2luLGw9e2hlaWdodDpzLmhlaWdodCgpLHdpZHRoOnMud2lkdGgoKSxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDpzLm91dGVyV2lkdGgoKX0sdT17eToiaG9yaXpvbnRhbCIhPT1yP28vMTAwOjEseDoidmVydGljYWwiIT09cj9vLzEwMDoxfTtuLmVmZmVjdD0ic2l6ZSIsbi5xdWV1ZT0hMSxuLmNvbXBsZXRlPWksImVmZmVjdCIhPT1hJiYobi5vcmlnaW49aHx8WyJtaWRkbGUiLCJjZW50ZXIiXSxuLnJlc3RvcmU9ITApLG4uZnJvbT10LmZyb218fCgic2hvdyI9PT1hP3toZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTpsKSxuLnRvPXtoZWlnaHQ6bC5oZWlnaHQqdS55LHdpZHRoOmwud2lkdGgqdS54LG91dGVySGVpZ2h0Omwub3V0ZXJIZWlnaHQqdS55LG91dGVyV2lkdGg6bC5vdXRlcldpZHRoKnUueH0sbi5mYWRlJiYoInNob3ciPT09YSYmKG4uZnJvbS5vcGFjaXR5PTAsbi50by5vcGFjaXR5PTEpLCJoaWRlIj09PWEmJihuLmZyb20ub3BhY2l0eT0xLG4udG8ub3BhY2l0eT0wKSkscy5lZmZlY3Qobil9LGUuZWZmZWN0cy5lZmZlY3QucHVmZj1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8ImhpZGUiKSxhPSJoaWRlIj09PW4sbz1wYXJzZUludCh0LnBlcmNlbnQsMTApfHwxNTAscj1vLzEwMCxoPXtoZWlnaHQ6cy5oZWlnaHQoKSx3aWR0aDpzLndpZHRoKCksb3V0ZXJIZWlnaHQ6cy5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKCl9O2UuZXh0ZW5kKHQse2VmZmVjdDoic2NhbGUiLHF1ZXVlOiExLGZhZGU6ITAsbW9kZTpuLGNvbXBsZXRlOmkscGVyY2VudDphP286MTAwLGZyb206YT9oOntoZWlnaHQ6aC5oZWlnaHQqcix3aWR0aDpoLndpZHRoKnIsb3V0ZXJIZWlnaHQ6aC5vdXRlckhlaWdodCpyLG91dGVyV2lkdGg6aC5vdXRlcldpZHRoKnJ9fSkscy5lZmZlY3QodCl9LGUuZWZmZWN0cy5lZmZlY3QucHVsc2F0ZT1mdW5jdGlvbih0LGkpe3ZhciBzLG49ZSh0aGlzKSxhPWUuZWZmZWN0cy5zZXRNb2RlKG4sdC5tb2RlfHwic2hvdyIpLG89InNob3ciPT09YSxyPSJoaWRlIj09PWEsaD1vfHwiaGlkZSI9PT1hLGw9MioodC50aW1lc3x8NSkrKGg/MTowKSx1PXQuZHVyYXRpb24vbCxkPTAsYz1uLnF1ZXVlKCkscD1jLmxlbmd0aDtmb3IoKG98fCFuLmlzKCI6dmlzaWJsZSIpKSYmKG4uY3NzKCJvcGFjaXR5IiwwKS5zaG93KCksZD0xKSxzPTE7bD5zO3MrKyluLmFuaW1hdGUoe29wYWNpdHk6ZH0sdSx0LmVhc2luZyksZD0xLWQ7bi5hbmltYXRlKHtvcGFjaXR5OmR9LHUsdC5lYXNpbmcpLG4ucXVldWUoZnVuY3Rpb24oKXtyJiZuLmhpZGUoKSxpKCl9KSxwPjEmJmMuc3BsaWNlLmFwcGx5KGMsWzEsMF0uY29uY2F0KGMuc3BsaWNlKHAsbCsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNoYWtlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImVmZmVjdCIpLHI9dC5kaXJlY3Rpb258fCJsZWZ0IixoPXQuZGlzdGFuY2V8fDIwLGw9dC50aW1lc3x8Myx1PTIqbCsxLGQ9TWF0aC5yb3VuZCh0LmR1cmF0aW9uL3UpLGM9InVwIj09PXJ8fCJkb3duIj09PXI/InRvcCI6ImxlZnQiLHA9InVwIj09PXJ8fCJsZWZ0Ij09PXIsZj17fSxtPXt9LGc9e30sdj1uLnF1ZXVlKCkseT12Lmxlbmd0aDtmb3IoZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxmW2NdPShwPyItPSI6Iis9IikraCxtW2NdPShwPyIrPSI6Ii09IikrMipoLGdbY109KHA/Ii09IjoiKz0iKSsyKmgsbi5hbmltYXRlKGYsZCx0LmVhc2luZykscz0xO2w+cztzKyspbi5hbmltYXRlKG0sZCx0LmVhc2luZykuYW5pbWF0ZShnLGQsdC5lYXNpbmcpO24uYW5pbWF0ZShtLGQsdC5lYXNpbmcpLmFuaW1hdGUoZixkLzIsdC5lYXNpbmcpLnF1ZXVlKGZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9KSx5PjEmJnYuc3BsaWNlLmFwcGx5KHYsWzEsMF0uY29uY2F0KHYuc3BsaWNlKHksdSsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNsaWRlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0Il0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8InNob3ciKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWgsZD17fTtlLmVmZmVjdHMuc2F2ZShuLGEpLG4uc2hvdygpLHM9dC5kaXN0YW5jZXx8blsidG9wIj09PWw/Im91dGVySGVpZ2h0Ijoib3V0ZXJXaWR0aCJdKCEwKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksciYmbi5jc3MobCx1P2lzTmFOKHMpPyItIitzOi1zOnMpLGRbbF09KHI/dT8iKz0iOiItPSI6dT8iLT0iOiIrPSIpK3Msbi5hbmltYXRlKGQse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QudHJhbnNmZXI9ZnVuY3Rpb24odCxpKXt2YXIgcz1lKHRoaXMpLG49ZSh0LnRvKSxhPSJmaXhlZCI9PT1uLmNzcygicG9zaXRpb24iKSxvPWUoImJvZHkiKSxyPWE/by5zY3JvbGxUb3AoKTowLGg9YT9vLnNjcm9sbExlZnQoKTowLGw9bi5vZmZzZXQoKSx1PXt0b3A6bC50b3AtcixsZWZ0OmwubGVmdC1oLGhlaWdodDpuLmlubmVySGVpZ2h0KCksd2lkdGg6bi5pbm5lcldpZHRoKCl9LGQ9cy5vZmZzZXQoKSxjPWUoIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKHQuY2xhc3NOYW1lKS5jc3Moe3RvcDpkLnRvcC1yLGxlZnQ6ZC5sZWZ0LWgsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKSxwb3NpdGlvbjphPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUodSx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7Yy5yZW1vdmUoKSxpKCl9KX19KTs="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
20 <link href="data:text/css;charset=utf-8,%0A%0A%2Etocify%20%7B%0Awidth%3A%2020%25%3B%0Amax%2Dheight%3A%2090%25%3B%0Aoverflow%3A%20auto%3B%0Amargin%2Dleft%3A%202%25%3B%0Aposition%3A%20fixed%3B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Awebkit%2Dborder%2Dradius%3A%206px%3B%0Amoz%2Dborder%2Dradius%3A%206px%3B%0Aborder%2Dradius%3A%206px%3B%0A%7D%0A%0A%2Etocify%20ul%2C%20%2Etocify%20li%20%7B%0Alist%2Dstyle%3A%20none%3B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%20none%3B%0Aline%2Dheight%3A%2030px%3B%0A%7D%0A%0A%2Etocify%2Dheader%20%7B%0Atext%2Dindent%3A%2010px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2020px%3B%0Adisplay%3A%20none%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20li%20%7B%0Afont%2Dsize%3A%2012px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2030px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2040px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20%3E%20a%2C%20%2Etocify%20%2Enav%2Dlist%20%2Enav%2Dheader%20%7B%0Amargin%3A%200px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20a%2C%20%2Etocify%20%2Elist%2Dgroup%2Ditem%20%7B%0Apadding%3A%205px%3B%0A%7D%0A%2Etocify%20%2Enav%2Dpills%20%3E%20li%20%7B%0Afloat%3A%20none%3B%0A%7D%0A%0A%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
21 <script src="data:application/x-javascript;base64,LyoganF1ZXJ5IFRvY2lmeSAtIHYxLjkuMSAtIDIwMTMtMTAtMjIKICogaHR0cDovL3d3dy5ncmVnZnJhbmtvLmNvbS9qcXVlcnkudG9jaWZ5LmpzLwogKiBDb3B5cmlnaHQgKGMpIDIwMTMgR3JlZyBGcmFua287IExpY2Vuc2VkIE1JVCAqLwoKLy8gSW1tZWRpYXRlbHktSW52b2tlZCBGdW5jdGlvbiBFeHByZXNzaW9uIChJSUZFKSBbQmVuIEFsbWFuIEJsb2cgUG9zdF0oaHR0cDovL2JlbmFsbWFuLmNvbS9uZXdzLzIwMTAvMTEvaW1tZWRpYXRlbHktaW52b2tlZC1mdW5jdGlvbi1leHByZXNzaW9uLykgdGhhdCBjYWxscyBhbm90aGVyIElJRkUgdGhhdCBjb250YWlucyBhbGwgb2YgdGhlIHBsdWdpbiBsb2dpYy4gIEkgdXNlZCB0aGlzIHBhdHRlcm4gc28gdGhhdCBhbnlvbmUgdmlld2luZyB0aGlzIGNvZGUgd291bGQgbm90IGhhdmUgdG8gc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgdG8gdmlldyB0aGUgbG9jYWwgcGFyYW1ldGVycyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZSBtYWluIElJRkUuCihmdW5jdGlvbih0b2NpZnkpIHsKCiAgICAvLyBFQ01BU2NyaXB0IDUgU3RyaWN0IE1vZGU6IFtKb2huIFJlc2lnIEJsb2cgUG9zdF0oaHR0cDovL2Vqb2huLm9yZy9ibG9nL2VjbWFzY3JpcHQtNS1zdHJpY3QtbW9kZS1qc29uLWFuZC1tb3JlLykKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICAvLyBDYWxscyB0aGUgc2Vjb25kIElJRkUgYW5kIGxvY2FsbHkgcGFzc2VzIGluIHRoZSBnbG9iYWwgalF1ZXJ5LCB3aW5kb3csIGFuZCBkb2N1bWVudCBvYmplY3RzCiAgICB0b2NpZnkod2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgogIH0KCiAgLy8gTG9jYWxseSBwYXNzZXMgaW4gYGpRdWVyeWAsIHRoZSBgd2luZG93YCBvYmplY3QsIHRoZSBgZG9jdW1lbnRgIG9iamVjdCwgYW5kIGFuIGB1bmRlZmluZWRgIHZhcmlhYmxlLiAgVGhlIGBqUXVlcnlgLCBgd2luZG93YCBhbmQgYGRvY3VtZW50YCBvYmplY3RzIGFyZSBwYXNzZWQgaW4gbG9jYWxseSwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgc2luY2UgamF2YXNjcmlwdCBmaXJzdCBzZWFyY2hlcyBmb3IgYSB2YXJpYWJsZSBtYXRjaCB3aXRoaW4gdGhlIGxvY2FsIHZhcmlhYmxlcyBzZXQgYmVmb3JlIHNlYXJjaGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBzZXQuICBBbGwgb2YgdGhlIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFsc28gcGFzc2VkIGluIGxvY2FsbHkgdG8gYmUgbWluaWZpZXIgZnJpZW5kbHkuIGB1bmRlZmluZWRgIGNhbiBiZSBwYXNzZWQgaW4gbG9jYWxseSwgYmVjYXVzZSBpdCBpcyBub3QgYSByZXNlcnZlZCB3b3JkIGluIEphdmFTY3JpcHQuCiAgKGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoKICAgIC8vIEVDTUFTY3JpcHQgNSBTdHJpY3QgTW9kZTogW0pvaG4gUmVzaWcgQmxvZyBQb3N0XShodHRwOi8vZWpvaG4ub3JnL2Jsb2cvZWNtYXNjcmlwdC01LXN0cmljdC1tb2RlLWpzb24tYW5kLW1vcmUvKQogICAgInVzZSBzdHJpY3QiOwoKICAgIHZhciB0b2NDbGFzc05hbWUgPSAidG9jaWZ5IiwKICAgICAgdG9jQ2xhc3MgPSAiLiIgKyB0b2NDbGFzc05hbWUsCiAgICAgIHRvY0ZvY3VzQ2xhc3NOYW1lID0gInRvY2lmeS1mb2N1cyIsCiAgICAgIHRvY0hvdmVyQ2xhc3NOYW1lID0gInRvY2lmeS1ob3ZlciIsCiAgICAgIGhpZGVUb2NDbGFzc05hbWUgPSAidG9jaWZ5LWhpZGUiLAogICAgICBoaWRlVG9jQ2xhc3MgPSAiLiIgKyBoaWRlVG9jQ2xhc3NOYW1lLAogICAgICBoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LWhlYWRlciIsCiAgICAgIGhlYWRlckNsYXNzID0gIi4iICsgaGVhZGVyQ2xhc3NOYW1lLAogICAgICBzdWJoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LXN1YmhlYWRlciIsCiAgICAgIHN1YmhlYWRlckNsYXNzID0gIi4iICsgc3ViaGVhZGVyQ2xhc3NOYW1lLAogICAgICBpdGVtQ2xhc3NOYW1lID0gInRvY2lmeS1pdGVtIiwKICAgICAgaXRlbUNsYXNzID0gIi4iICsgaXRlbUNsYXNzTmFtZSwKICAgICAgZXh0ZW5kUGFnZUNsYXNzTmFtZSA9ICJ0b2NpZnktZXh0ZW5kLXBhZ2UiLAogICAgICBleHRlbmRQYWdlQ2xhc3MgPSAiLiIgKyBleHRlbmRQYWdlQ2xhc3NOYW1lOwoKICAgIC8vIENhbGxpbmcgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IE1ldGhvZAogICAgJC53aWRnZXQoInRvYy50b2NpZnkiLCB7CgogICAgICAvL1BsdWdpbiB2ZXJzaW9uCiAgICAgIHZlcnNpb246ICIxLjkuMSIsCgogICAgICAvLyBUaGVzZSBvcHRpb25zIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0cwogICAgICBvcHRpb25zOiB7CgogICAgICAgIC8vICoqY29udGV4dCoqOiBBY2NlcHRzIFN0cmluZzogQW55IGpRdWVyeSBzZWxlY3RvcgogICAgICAgIC8vIFRoZSBjb250YWluZXIgZWxlbWVudCB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMKICAgICAgICBjb250ZXh0OiAiYm9keSIsCgogICAgICAgIC8vICoqaWdub3JlU2VsZWN0b3IqKjogQWNjZXB0cyBTdHJpbmc6IEFueSBqUXVlcnkgc2VsZWN0b3IKICAgICAgICAvLyBBIHNlbGVjdG9yIHRvIGFueSBlbGVtZW50IHRoYXQgd291bGQgYmUgbWF0Y2hlZCBieSBzZWxlY3RvcnMgdGhhdCB5b3Ugd2lzaCB0byBiZSBpZ25vcmVkCiAgICAgICAgaWdub3JlU2VsZWN0b3I6IG51bGwsCgogICAgICAgIC8vICoqc2VsZWN0b3JzKio6IEFjY2VwdHMgYW4gQXJyYXkgb2YgU3RyaW5nczogQW55IGpRdWVyeSBzZWxlY3RvcnMKICAgICAgICAvLyBUaGUgZWxlbWVudCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgVGhlIG9yZGVyIGlzIHZlcnkgaW1wb3J0YW50IHNpbmNlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSB0YWJsZSBvZiBjb250ZW50J3MgbmVzdGluZyBzdHJ1Y3R1cmUKICAgICAgICBzZWxlY3RvcnM6ICJoMSwgaDIsIGgzIiwKCiAgICAgICAgLy8gKipzaG93QW5kSGlkZSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIGVsZW1lbnRzIHNob3VsZCBiZSBzaG93biBhbmQgaGlkZGVuCiAgICAgICAgc2hvd0FuZEhpZGU6IHRydWUsCgogICAgICAgIC8vICoqc2hvd0VmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZUluIiwgInNob3ciLCBvciAic2xpZGVEb3duIgogICAgICAgIC8vIFVzZWQgdG8gZGlzcGxheSBhbnkgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcwogICAgICAgIHNob3dFZmZlY3Q6ICJzbGlkZURvd24iLAoKICAgICAgICAvLyAqKnNob3dFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBzaG93IGFuaW1hdGlvbgogICAgICAgIHNob3dFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqaGlkZUVmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZU91dCIsICJoaWRlIiwgb3IgInNsaWRlVXAiCiAgICAgICAgLy8gVXNlZCB0byBoaWRlIGFueSBvZiB0aGUgdGFibGUgb2YgY29udGVudHMgbmVzdGVkIGl0ZW1zCiAgICAgICAgaGlkZUVmZmVjdDogInNsaWRlVXAiLAoKICAgICAgICAvLyAqKmhpZGVFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBoaWRlIGFuaW1hdGlvbgogICAgICAgIGhpZGVFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc21vb3RoU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhIGpRdWVyeSBhbmltYXRpb24gc2hvdWxkIGJlIHVzZWQgdG8gc2Nyb2xsIHRvIHNwZWNpZmljIHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW1zIG9uIHRoZSBwYWdlCiAgICAgICAgc21vb3RoU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKnNtb290aFNjcm9sbFNwZWVkKio6IEFjY2VwdHMgTnVtYmVyIChtaWxsaXNlY29uZHMpIG9yIFN0cmluZzogInNsb3ciLCAibWVkaXVtIiwgb3IgImZhc3QiCiAgICAgICAgLy8gVGhlIHRpbWUgZHVyYXRpb24gb2YgdGhlIHNtb290aFNjcm9sbCBhbmltYXRpb24KICAgICAgICBzbW9vdGhTY3JvbGxTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc2Nyb2xsVG8qKjogQWNjZXB0cyBOdW1iZXIgKHBpeGVscykKICAgICAgICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiBwYWdlIGFuZCB0aGUgc2VsZWN0ZWQgdGFibGUgb2YgY29udGVudHMgaXRlbSBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBzY3JvbGxlZAogICAgICAgIHNjcm9sbFRvOiAwLAoKICAgICAgICAvLyAqKnNob3dBbmRIaWRlT25TY3JvbGwqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBEZXRlcm1pbmVzIGlmIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcyBzaG91bGQgYmUgc2hvd24gYW5kIGhpZGRlbiB3aGlsZSBzY3JvbGxpbmcKICAgICAgICBzaG93QW5kSGlkZU9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9uU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiB0YWJsZSBvZiBjb250ZW50cyBuZXN0ZWQgaXRlbXMgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIChzZXQgdG8gYSBkaWZmZXJlbnQgY29sb3IpIHdoaWxlIHNjcm9sbGluZwogICAgICAgIGhpZ2hsaWdodE9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyCiAgICAgICAgLy8gVGhlIG9mZnNldCBkaXN0YW5jZSBpbiBwaXhlbHMgdG8gdHJpZ2dlciB0aGUgbmV4dCBhY3RpdmUgdGFibGUgb2YgY29udGVudHMgaXRlbQogICAgICAgIGhpZ2hsaWdodE9mZnNldDogNDAsCgogICAgICAgIC8vICoqdGhlbWUqKjogQWNjZXB0cyBhIHN0cmluZzogImJvb3RzdHJhcCIsICJqcXVlcnl1aSIsIG9yICJub25lIgogICAgICAgIC8vIERldGVybWluZXMgaWYgVHdpdHRlciBCb290c3RyYXAsIGpRdWVyeVVJLCBvciBUb2NpZnkgY2xhc3NlcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRhYmxlIG9mIGNvbnRlbnRzCiAgICAgICAgdGhlbWU6ICJib290c3RyYXAiLAoKICAgICAgICAvLyAqKmV4dGVuZFBhZ2UqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBJZiBhIHVzZXIgc2Nyb2xscyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGFuZCB0aGUgcGFnZSBpcyBub3QgdGFsbCBlbm91Z2ggdG8gc2Nyb2xsIHRvIHRoZSBsYXN0IHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW0sIHRoZW4gdGhlIHBhZ2UgaGVpZ2h0IGlzIGluY3JlYXNlZAogICAgICAgIGV4dGVuZFBhZ2U6IHRydWUsCgogICAgICAgIC8vICoqZXh0ZW5kUGFnZU9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyOiBwaXhlbHMKICAgICAgICAvLyBIb3cgY2xvc2UgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhIHVzZXIgbXVzdCBzY3JvbGwgYmVmb3JlIHRoZSBwYWdlIGlzIGV4dGVuZGVkCiAgICAgICAgZXh0ZW5kUGFnZU9mZnNldDogMTAwLAoKICAgICAgICAvLyAqKmhpc3RvcnkqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBBZGRzIGEgaGFzaCB0byB0aGUgcGFnZSB1cmwgdG8gbWFpbnRhaW4gaGlzdG9yeQogICAgICAgIGhpc3Rvcnk6IHRydWUsCgogICAgICAgIC8vICoqc2Nyb2xsSGlzdG9yeSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIEFkZHMgYSBoYXNoIHRvIHRoZSBwYWdlIHVybCwgdG8gbWFpbnRhaW4gaGlzdG9yeSwgd2hlbiBzY3JvbGxpbmcgdG8gYSBUT0MgaXRlbQogICAgICAgIHNjcm9sbEhpc3Rvcnk6IGZhbHNlLAoKICAgICAgICAvLyAqKmhhc2hHZW5lcmF0b3IqKjogSG93IHRoZSBoYXNoIHZhbHVlICh0aGUgYW5jaG9yIHNlZ21lbnQgb2YgdGhlIFVSTCwgZm9sbG93aW5nIHRoZQogICAgICAgIC8vICMgY2hhcmFjdGVyKSB3aWxsIGJlIGdlbmVyYXRlZC4KICAgICAgICAvLwogICAgICAgIC8vICJjb21wYWN0IiAoZGVmYXVsdCkgLSAjQ29tcHJlc3Nlc0V2ZXJ5dGhpbmdUb2dldGhlcgogICAgICAgIC8vICJwcmV0dHkiIC0gI2xvb2tzLWxpa2UtYS1uaWNlLXVybC1hbmQtaXMtZWFzaWx5LXJlYWRhYmxlCiAgICAgICAgLy8gZnVuY3Rpb24odGV4dCwgZWxlbWVudCl7fSAtIFlvdXIgb3duIGhhc2ggZ2VuZXJhdGlvbiBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHRleHQgYXMgYW4KICAgICAgICAvLyBhcmd1bWVudCwgYW5kIHJldHVybnMgdGhlIGhhc2ggdmFsdWUuCiAgICAgICAgaGFzaEdlbmVyYXRvcjogImNvbXBhY3QiLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodERlZmF1bHQqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBTZXQncyB0aGUgZmlyc3QgVE9DIGl0ZW0gYXMgYWN0aXZlIGlmIG5vIG90aGVyIFRPQyBpdGVtIGlzIGFjdGl2ZS4KICAgICAgICBoaWdobGlnaHREZWZhdWx0OiB0cnVlCgogICAgICB9LAoKICAgICAgLy8gX0NyZWF0ZQogICAgICAvLyAtLS0tLS0tCiAgICAgIC8vICAgICAgQ29uc3RydWN0cyB0aGUgcGx1Z2luLiAgT25seSBjYWxsZWQgb25jZS4KICAgICAgX2NyZWF0ZTogZnVuY3Rpb24oKSB7CgogICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gdHJ1ZTsKCiAgICAgICAgLy8gSW50ZXJuYWwgYXJyYXkgdGhhdCBrZWVwcyB0cmFjayBvZiBhbGwgVE9DIGl0ZW1zIChIZWxwcyB0byByZWNvZ25pemUgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBUT0MgaXRlbSBzdHJpbmdzKQogICAgICAgIHNlbGYuaXRlbXMgPSBbXTsKCiAgICAgICAgLy8gR2VuZXJhdGVzIHRoZSBIVE1MIGZvciB0aGUgZHluYW1pYyB0YWJsZSBvZiBjb250ZW50cwogICAgICAgIHNlbGYuX2dlbmVyYXRlVG9jKCk7CgogICAgICAgIC8vIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgICAgc2VsZi5fYWRkQ1NTQ2xhc3NlcygpOwoKICAgICAgICBzZWxmLndlYmtpdCA9IChmdW5jdGlvbigpIHsKCiAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHdpbmRvdykgewoKICAgICAgICAgICAgaWYgKHByb3ApIHsKCiAgICAgICAgICAgICAgaWYgKHByb3AudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSAhPT0gLTEpIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0oKSk7CgogICAgICAgIC8vIEFkZHMgalF1ZXJ5IGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBuZXdseSBnZW5lcmF0ZWQgdGFibGUgb2YgY29udGVudHMKICAgICAgICBzZWxmLl9zZXRFdmVudEhhbmRsZXJzKCk7CgogICAgICAgIC8vIEJpbmRpbmcgdG8gdGhlIFdpbmRvdyBsb2FkIGV2ZW50IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBzY3JvbGxUb3AgaXMgY2FsY3VsYXRlZAogICAgICAgICQod2luZG93KS5sb2FkKGZ1bmN0aW9uKCkgewoKICAgICAgICAgIC8vIFNldHMgdGhlIGFjdGl2ZSBUT0MgaXRlbQogICAgICAgICAgc2VsZi5fc2V0QWN0aXZlRWxlbWVudCh0cnVlKTsKCiAgICAgICAgICAvLyBPbmNlIGFsbCBhbmltYXRpb25zIG9uIHRoZSBwYWdlIGFyZSBjb21wbGV0ZSwgdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAogICAgICAgICAgJCgiaHRtbCwgYm9keSIpLnByb21pc2UoKS5kb25lKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gZmFsc2U7CgogICAgICAgICAgICB9LCAwKTsKCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlVG9jCiAgICAgIC8vIC0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgSFRNTCBmb3IgdGhlIGR5bmFtaWMgdGFibGUgb2YgY29udGVudHMKICAgICAgX2dlbmVyYXRlVG9jOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gX0xvY2FsIHZhcmlhYmxlc18KCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgc2VsZiB2YXJpYWJsZQogICAgICAgIHZhciBzZWxmID0gdGhpcywKCiAgICAgICAgICAvLyBBbGwgb2YgdGhlIEhUTUwgdGFncyBmb3VuZCB3aXRoaW4gdGhlIGNvbnRleHQgcHJvdmlkZWQgKGkuZS4gYm9keSkgdGhhdCBtYXRjaCB0aGUgdG9wIGxldmVsIGpRdWVyeSBzZWxlY3RvciBhYm92ZQogICAgICAgICAgZmlyc3RFbGVtLAoKICAgICAgICAgIC8vIEluc3RhbnRpYXRlZCB2YXJpYWJsZSB0aGF0IHdpbGwgc3RvcmUgdGhlIHRvcCBsZXZlbCBuZXdseSBjcmVhdGVkIHVub3JkZXJlZCBsaXN0IERPTSBlbGVtZW50CiAgICAgICAgICB1bCwKICAgICAgICAgIGlnbm9yZVNlbGVjdG9yID0gc2VsZi5vcHRpb25zLmlnbm9yZVNlbGVjdG9yOwoKCiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSB0b2Mgd2l0aAogICAgICAgIC8vIGdldCBhbGwgdGhlIHRvcCBsZXZlbCBzZWxlY3RvcnMKICAgICAgICBmaXJzdEVsZW0gPSBbXTsKICAgICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5vcHRpb25zLnNlbGVjdG9ycy5yZXBsYWNlKC8gL2csICIiKS5zcGxpdCgiLCIpOwogICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHNldCB0aGF0IGhhdmUgYXQgbGVhc3Qgb25lIG5vbi1pZ25vcmVkIGVsZW1lbnQKICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgZm91bmRTZWxlY3RvcnMgPSAkKHRoaXMub3B0aW9ucy5jb250ZXh0KS5maW5kKHNlbGVjdG9yc1tpXSk7CiAgICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IGZvdW5kU2VsZWN0b3JzLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgIGlmICghJChmb3VuZFNlbGVjdG9yc1tzXSkuaXMoaWdub3JlU2VsZWN0b3IpKSB7CiAgICAgICAgICAgICAgZmlyc3RFbGVtID0gZm91bmRTZWxlY3RvcnM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChmaXJzdEVsZW0ubGVuZ3RoPiAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmICghZmlyc3RFbGVtLmxlbmd0aCkgewoKICAgICAgICAgIHNlbGYuZWxlbWVudC5hZGRDbGFzcyhoaWRlVG9jQ2xhc3NOYW1lKTsKCiAgICAgICAgICByZXR1cm47CgogICAgICAgIH0KCiAgICAgICAgc2VsZi5lbGVtZW50LmFkZENsYXNzKHRvY0NsYXNzTmFtZSk7CgogICAgICAgIC8vIExvb3BzIHRocm91Z2ggZWFjaCB0b3AgbGV2ZWwgc2VsZWN0b3IKICAgICAgICBmaXJzdEVsZW0uZWFjaChmdW5jdGlvbihpbmRleCkgewoKICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIENyZWF0ZXMgYW4gdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGFuZCBhZGRzIGEgZHluYW1pYyBJRCBhbmQgc3RhbmRhcmQgY2xhc3MgbmFtZQogICAgICAgICAgdWwgPSAkKCI8dWwvPiIsIHsKICAgICAgICAgICAgImlkIjogaGVhZGVyQ2xhc3NOYW1lICsgaW5kZXgsCiAgICAgICAgICAgICJjbGFzcyI6IGhlYWRlckNsYXNzTmFtZQogICAgICAgICAgfSkuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIHRvcCBsZXZlbCBsaXN0IGl0ZW0gSFRNTCBlbGVtZW50IHRvIHRoZSBwcmV2aW91c2x5IGNyZWF0ZWQgSFRNTCBoZWFkZXIKICAgICAgICAgIGFwcGVuZChzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgICAvLyBBZGQgdGhlIGNyZWF0ZWQgdW5vcmRlcmVkIGxpc3QgZWxlbWVudCB0byB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgc2VsZi5lbGVtZW50LmFwcGVuZCh1bCk7CgogICAgICAgICAgLy8gRmluZHMgYWxsIG9mIHRoZSBIVE1MIHRhZ3MgYmV0d2VlbiB0aGUgaGVhZGVyIGFuZCBzdWJoZWFkZXIgZWxlbWVudHMKICAgICAgICAgICQodGhpcykubmV4dFVudGlsKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkuZWFjaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBuZXN0ZWQgc3ViaGVhZGVyIGVsZW1lbWVudHMKICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5sZW5ndGggPT09IDApIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmlsdGVyKHNlbGYub3B0aW9ucy5zZWxlY3RvcnMpLmVhY2goZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgZWxlbWVudCBtYXRjaGVzIHRoZSBpZ25vcmVTZWxlY3RvciB0aGVuIHdlIHNraXAgaXQKICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKGlnbm9yZVNlbGVjdG9yKSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kU3ViaGVhZGVycy5jYWxsKHRoaXMsIHNlbGYsIHVsKTsKCiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbmVzdGVkIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5lYWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZFN1YmhlYWRlcnMuY2FsbCh0aGlzLCBzZWxmLCB1bCk7CgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0pOwoKICAgICAgICB9KTsKCiAgICAgIH0sCgogICAgICBfc2V0QWN0aXZlRWxlbWVudDogZnVuY3Rpb24ocGFnZWxvYWQpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAoKICAgICAgICAgIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksCgogICAgICAgICAgZWxlbSA9IHNlbGYuZWxlbWVudC5maW5kKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGhhc2ggKyAnIl0nKTsKCiAgICAgICAgaWYgKGhhc2gubGVuZ3RoKSB7CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgZWxlbS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIFRyaWdnZXJzIHRoZSBjbGljayBldmVudCBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQgVE9DIGl0ZW0KICAgICAgICAgIGVsZW0uY2xpY2soKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBSZW1vdmVzIGhpZ2hsaWdodGluZyBmcm9tIGFsbCBvZiB0aGUgbGlzdCBpdGVtJ3MKICAgICAgICAgIHNlbGYuZWxlbWVudC5maW5kKCIuIiArIHNlbGYuZm9jdXNDbGFzcykucmVtb3ZlQ2xhc3Moc2VsZi5mb2N1c0NsYXNzKTsKCiAgICAgICAgICBpZiAoIWhhc2gubGVuZ3RoICYmIHBhZ2Vsb2FkICYmIHNlbGYub3B0aW9ucy5oaWdobGlnaHREZWZhdWx0KSB7CgogICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBmaXJzdCBUT0MgaXRlbSBpZiBubyBvdGhlciBpdGVtcyBhcmUgaGlnaGxpZ2h0ZWQKICAgICAgICAgICAgc2VsZi5lbGVtZW50LmZpbmQoaXRlbUNsYXNzKS5maXJzdCgpLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmOwoKICAgICAgfSwKCiAgICAgIC8vIF9uZXN0RWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEhlbHBzIGNyZWF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMgbGlzdCBieSBhcHBlbmRpbmcgbmVzdGVkIGxpc3QgaXRlbXMKICAgICAgX25lc3RFbGVtZW50czogZnVuY3Rpb24oc2VsZiwgaW5kZXgpIHsKCiAgICAgICAgdmFyIGFyciwgaXRlbSwgaGFzaFZhbHVlOwoKICAgICAgICBhcnIgPSAkLmdyZXAodGhpcy5pdGVtcywgZnVuY3Rpb24oaXRlbSkgewoKICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxmLnRleHQoKTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBkdXBsaWNhdGUgVE9DIGl0ZW0KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewoKICAgICAgICAgIC8vIEFkZHMgdGhlIGN1cnJlbnQgVE9DIGl0ZW0gdGV4dCBhbmQgaW5kZXggKGZvciBzbGlnaHQgcmFuZG9taXphdGlvbikgdG8gdGhlIGludGVybmFsIGFycmF5CiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goc2VsZi50ZXh0KCkgKyBpbmRleCk7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlcmUgbm90IGEgZHVwbGljYXRlIFRPQyBpdGVtCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgLy8gQWRkcyB0aGUgY3VycmVudCBUT0MgaXRlbSB0ZXh0IHRvIHRoZSBpbnRlcm5hbCBhcnJheQogICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHNlbGYudGV4dCgpKTsKCiAgICAgICAgfQoKICAgICAgICBoYXNoVmFsdWUgPSB0aGlzLl9nZW5lcmF0ZUhhc2hWYWx1ZShhcnIsIHNlbGYsIGluZGV4KTsKCiAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIGl0ZW0gPSAkKCI8bGkvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUgdG8gdGhlIGxpc3QgaXRlbQogICAgICAgICAgImNsYXNzIjogaXRlbUNsYXNzTmFtZSwKCiAgICAgICAgICAiZGF0YS11bmlxdWUiOiBoYXNoVmFsdWUKCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAzIikgewoKICAgICAgICAgIGl0ZW0uYXBwZW5kKCQoIjxhLz4iLCB7CgogICAgICAgICAgICAidGV4dCI6IHNlbGYudGV4dCgpCgogICAgICAgICAgfSkpOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIGl0ZW0udGV4dChzZWxmLnRleHQoKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gQWRkcyBhbiBIVE1MIGFuY2hvciB0YWcgYmVmb3JlIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIEhUTUwgZWxlbWVudAogICAgICAgIHNlbGYuYmVmb3JlKCQoIjxkaXYvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgbmFtZSBhdHRyaWJ1dGUgb24gdGhlIGFuY2hvciB0YWcgdG8gdGhlIHRleHQgb2YgdGhlIGN1cnJlbnRseSB0cmF2ZXJzZWQgSFRNTCBlbGVtZW50IChhbHNvIG1ha2luZyBzdXJlIHRoYXQgYWxsIHdoaXRlc3BhY2UgaXMgcmVwbGFjZWQgd2l0aCBhbiB1bmRlcnNjb3JlKQogICAgICAgICAgIm5hbWUiOiBoYXNoVmFsdWUsCgogICAgICAgICAgImRhdGEtdW5pcXVlIjogaGFzaFZhbHVlCgogICAgICAgIH0pKTsKCiAgICAgICAgcmV0dXJuIGl0ZW07CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlSGFzaFZhbHVlCiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgaGFzaCB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZWZlciB0byBlYWNoIGl0ZW0uCiAgICAgIF9nZW5lcmF0ZUhhc2hWYWx1ZTogZnVuY3Rpb24oYXJyLCBzZWxmLCBpbmRleCkgewoKICAgICAgICB2YXIgaGFzaFZhbHVlID0gIiIsCiAgICAgICAgICBoYXNoR2VuZXJhdG9yT3B0aW9uID0gdGhpcy5vcHRpb25zLmhhc2hHZW5lcmF0b3I7CgogICAgICAgIGlmIChoYXNoR2VuZXJhdG9yT3B0aW9uID09PSAicHJldHR5IikgewoKICAgICAgICAgIC8vIHByZXR0aWZ5IHRoZSB0ZXh0CiAgICAgICAgICBoYXNoVmFsdWUgPSBzZWxmLnRleHQoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzL2csICItIik7CgogICAgICAgICAgLy8gZml4IGRvdWJsZSBoeXBoZW5zCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIi0tIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvLS0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBmaXggY29sb24tc3BhY2UgaW5zdGFuY2VzCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIjotIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvOi0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaGFzaEdlbmVyYXRvck9wdGlvbiA9PT0gImZ1bmN0aW9uIikgewoKICAgICAgICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoR2VuZXJhdG9yT3B0aW9uKHNlbGYudGV4dCgpLCBzZWxmKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBjb21wYWN0IC0gdGhlIGRlZmF1bHQKICAgICAgICAgIGhhc2hWYWx1ZSA9IHNlbGYudGV4dCgpLnJlcGxhY2UoL1xzL2csICIiKTsKCiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgdGhlIGluZGV4IGlmIHdlIG5lZWQgdG8KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewogICAgICAgICAgaGFzaFZhbHVlICs9ICIiICsgaW5kZXg7CiAgICAgICAgfQoKICAgICAgICAvLyByZXR1cm4gdGhlIHZhbHVlCiAgICAgICAgcmV0dXJuIGhhc2hWYWx1ZTsKCiAgICAgIH0sCgogICAgICAvLyBfYXBwZW5kRWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgSGVscHMgY3JlYXRlIHRoZSB0YWJsZSBvZiBjb250ZW50cyBsaXN0IGJ5IGFwcGVuZGluZyBzdWJoZWFkZXIgZWxlbWVudHMKCiAgICAgIF9hcHBlbmRTdWJoZWFkZXJzOiBmdW5jdGlvbihzZWxmLCB1bCkgewoKICAgICAgICAvLyBUaGUgY3VycmVudCBlbGVtZW50IGluZGV4CiAgICAgICAgdmFyIGluZGV4ID0gJCh0aGlzKS5pbmRleChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKSwKCiAgICAgICAgICAvLyBGaW5kcyB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50CiAgICAgICAgICBwcmV2aW91c0hlYWRlciA9ICQoc2VsZi5vcHRpb25zLnNlbGVjdG9ycykuZXEoaW5kZXggLSAxKSwKCiAgICAgICAgICBjdXJyZW50VGFnTmFtZSA9ICskKHRoaXMpLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgcHJldmlvdXNUYWdOYW1lID0gK3ByZXZpb3VzSGVhZGVyLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgbGFzdFN1YmhlYWRlcjsKCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaGVhZGVyIERPTSBlbGVtZW50IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50IG9yIHRoZSBmaXJzdCBzdWJoZWFkZXIKICAgICAgICBpZiAoY3VycmVudFRhZ05hbWUgPCBwcmV2aW91c1RhZ05hbWUpIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZChzdWJoZWFkZXJDbGFzcyArICJbZGF0YS10YWc9IiArIGN1cnJlbnRUYWdOYW1lICsgIl0iKS5sYXN0KCkuYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGhlYWRlciBET00gZWxlbWVudCBpcyB0aGUgc2FtZSB0eXBlIG9mIGhlYWRlcihlZy4gaDQpIGFzIHRoZSBwcmV2aW91cyBoZWFkZXIgRE9NIGVsZW1lbnQKICAgICAgICBlbHNlIGlmIChjdXJyZW50VGFnTmFtZSA9PT0gcHJldmlvdXNUYWdOYW1lKSB7CgogICAgICAgICAgdWwuZmluZChpdGVtQ2xhc3MpLmxhc3QoKS5hZnRlcihzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICB1bC5maW5kKGl0ZW1DbGFzcykubGFzdCgpLgoKICAgICAgICAgIC8vIEFwcGVuZHMgYW4gdW5vcmRlcmVkTGlzdCBIVE1MIGVsZW1lbnQgdG8gdGhlIGR5bmFtaWMgYHVub3JkZXJlZExpc3RgIHZhcmlhYmxlIGFuZCBzZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUKICAgICAgICAgIGFmdGVyKCQoIjx1bC8+IiwgewoKICAgICAgICAgICAgImNsYXNzIjogc3ViaGVhZGVyQ2xhc3NOYW1lLAoKICAgICAgICAgICAgImRhdGEtdGFnIjogY3VycmVudFRhZ05hbWUKCiAgICAgICAgICB9KSkubmV4dChzdWJoZWFkZXJDbGFzcykuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwogICAgICAgIH0KCiAgICAgIH0sCgogICAgICAvLyBfc2V0RXZlbnRIYW5kbGVycwogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgQWRkcyBqUXVlcnkgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cwogICAgICBfc2V0RXZlbnRIYW5kbGVyczogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgIC8vIFN0b3JlcyB0aGUgcGx1Z2luIGNvbnRleHQgaW4gdGhlIHNlbGYgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGhvbGQgYSBzcGVjaWZpYyBlbGVtZW50J3MgY29udGV4dAogICAgICAgICAgJHNlbGYsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uCiAgICAgICAgICBkdXJhdGlvbjsKCiAgICAgICAgLy8gRXZlbnQgZGVsZWdhdGlvbiB0aGF0IGxvb2tzIGZvciBhbnkgY2xpY2tzIG9uIGxpc3QgaXRlbSBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIEhUTUwgZWxlbWVudCBjYWxsaW5nIHRoZSBwbHVnaW4KICAgICAgICB0aGlzLmVsZW1lbnQub24oImNsaWNrLnRvY2lmeSIsICJsaSIsIGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5oaXN0b3J5KSB7CgogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIElmIHRoZSBzaG93QW5kSGlkZSBvcHRpb24gaXMgdHJ1ZQogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5zaG93QW5kSGlkZSkgewoKICAgICAgICAgICAgdmFyIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICAgICAgc2VsZi5fdHJpZ2dlclNob3coZWxlbSk7CgogICAgICAgICAgfQoKICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQodGhpcykpOwoKICAgICAgICB9KTsKCiAgICAgICAgLy8gTW91c2VlbnRlciBhbmQgTW91c2VsZWF2ZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIGxpc3QgaXRlbSdzIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCJsaSIpLm9uKHsKCiAgICAgICAgICAvLyBNb3VzZWVudGVyIGV2ZW50IGhhbmRsZXIKICAgICAgICAgICJtb3VzZWVudGVyLnRvY2lmeSI6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgLy8gQWRkcyBhIGhvdmVyIENTUyBjbGFzcyB0byB0aGUgY3VycmVudCBsaXN0IGl0ZW0KICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmhvdmVyQ2xhc3MpOwoKICAgICAgICAgICAgLy8gTWFrZXMgc3VyZSB0aGUgY3Vyc29yIGlzIHNldCB0byB0aGUgcG9pbnRlciBpY29uCiAgICAgICAgICAgICQodGhpcykuY3NzKCJjdXJzb3IiLCAicG9pbnRlciIpOwoKICAgICAgICAgIH0sCgogICAgICAgICAgLy8gTW91c2VsZWF2ZSBldmVudCBoYW5kbGVyCiAgICAgICAgICAibW91c2VsZWF2ZS50b2NpZnkiOiBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAiKSB7CgogICAgICAgICAgICAgIC8vIFJlbW92ZXMgdGhlIGhvdmVyIENTUyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGxpc3QgaXRlbQogICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3Moc2VsZi5ob3ZlckNsYXNzKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIG9ubHkgYXR0YWNoIGhhbmRsZXIgaWYgbmVlZGVkIChleHBlbnNpdmUgaW4gSUUpCiAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5leHRlbmRQYWdlIHx8IHNlbGYub3B0aW9ucy5oaWdobGlnaHRPblNjcm9sbCB8fCBzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSB8fCBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCkgewogICAgICAgICAgLy8gV2luZG93IHNjcm9sbCBldmVudCBoYW5kbGVyCiAgICAgICAgICAkKHdpbmRvdykub24oInNjcm9sbC50b2NpZnkiLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIE9uY2UgYWxsIGFuaW1hdGlvbnMgb24gdGhlIHBhZ2UgYXJlIGNvbXBsZXRlLCB0aGlzIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCiAgICAgICAgICAgICQoImh0bWwsIGJvZHkiKS5wcm9taXNlKCkuZG9uZShmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzCgogICAgICAgICAgICAgIC8vIFN0b3JlcyBob3cgZmFyIHRoZSB1c2VyIGhhcyBzY3JvbGxlZAogICAgICAgICAgICAgIHZhciB3aW5TY3JvbGxUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCksCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdwogICAgICAgICAgICAgICAgd2luSGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpLAoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudAogICAgICAgICAgICAgICAgZG9jSGVpZ2h0ID0gJChkb2N1bWVudCkuaGVpZ2h0KCksCgogICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gJCgiYm9keSIpWzBdLnNjcm9sbEhlaWdodCwKCiAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZXMgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBob2xkIGEgc2VsZWN0ZWQgSFRNTCBlbGVtZW50CiAgICAgICAgICAgICAgICBlbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtT2Zmc2V0LAoKICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtOwoKICAgICAgICAgICAgICBpZiAoc2VsZi5vcHRpb25zLmV4dGVuZFBhZ2UpIHsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgdGhlIGxhc3QgdG9jIGl0ZW0gaXMgbm90IGZvY3VzZWQKICAgICAgICAgICAgICAgIGlmICgoc2VsZi53ZWJraXQgJiYgd2luU2Nyb2xsVG9wID49IHNjcm9sbEhlaWdodCAtIHdpbkhlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSB8fCAoIXNlbGYud2Via2l0ICYmIHdpbkhlaWdodCArIHdpblNjcm9sbFRvcCA+IGRvY0hlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSkgewoKICAgICAgICAgICAgICAgICAgaWYgKCEkKGV4dGVuZFBhZ2VDbGFzcykubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAgICAgIGxhc3RFbGVtID0gJCgnZGl2W2RhdGEtdW5pcXVlPSInICsgJChpdGVtQ2xhc3MpLmxhc3QoKS5hdHRyKCJkYXRhLXVuaXF1ZSIpICsgJyJdJyk7CgogICAgICAgICAgICAgICAgICAgIGlmICghbGFzdEVsZW0ubGVuZ3RoKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgIC8vIEdldHMgdGhlIHRvcCBvZmZzZXQgb2YgdGhlIHBhZ2UgaGVhZGVyIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBsYXN0IHRvYyBpdGVtCiAgICAgICAgICAgICAgICAgICAgbGFzdEVsZW1PZmZzZXQgPSBsYXN0RWxlbS5vZmZzZXQoKS50b3A7CgogICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZHMgYSBkaXYgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgc2V0cyB0aGUgaGVpZ2h0IHRvIHRoZSBkaWZmZXJlbmNlIG9mIHRoZSB3aW5kb3cgc2Nyb2xsVG9wIGFuZCB0aGUgbGFzdCBlbGVtZW50J3MgcG9zaXRpb24gdG9wIG9mZnNldAogICAgICAgICAgICAgICAgICAgICQoc2VsZi5vcHRpb25zLmNvbnRleHQpLmFwcGVuZCgkKCI8ZGl2Lz4iLCB7CgogICAgICAgICAgICAgICAgICAgICAgImNsYXNzIjogZXh0ZW5kUGFnZUNsYXNzTmFtZSwKCiAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogTWF0aC5hYnMobGFzdEVsZW1PZmZzZXQgLSB3aW5TY3JvbGxUb3ApICsgInB4IiwKCiAgICAgICAgICAgICAgICAgICAgICAiZGF0YS11bmlxdWUiOiBleHRlbmRQYWdlQ2xhc3NOYW1lCgogICAgICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuZXh0ZW5kUGFnZVNjcm9sbCkgewoKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtID0gc2VsZi5lbGVtZW50LmZpbmQoJ2xpLicgKyBzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGN1cnJlbnRFbGVtLmF0dHIoImRhdGEtdW5pcXVlIikgKyAnIl0nKSk7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgLy8gVGhlIHplcm8gdGltZW91dCBlbnN1cmVzIHRoZSBmb2xsb3dpbmcgY29kZSBpcyBydW4gYWZ0ZXIgdGhlIHNjcm9sbCBldmVudHMKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBkaXN0YW5jZSB0byB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIHZhciBjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPSBudWxsLAoKICAgICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgICAgY2xvc2VzdEFuY2hvcklkeCA9IG51bGwsCgogICAgICAgICAgICAgICAgICAvLyBLZWVwcyBhIHJlZmVyZW5jZSB0byBhbGwgYW5jaG9ycwogICAgICAgICAgICAgICAgICBhbmNob3JzID0gJChzZWxmLm9wdGlvbnMuY29udGV4dCkuZmluZCgiZGl2W2RhdGEtdW5pcXVlXSIpLAoKICAgICAgICAgICAgICAgICAgYW5jaG9yVGV4dDsKCiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIGFuY2hvcnMuZWFjaChmdW5jdGlvbihpZHgpIHsKICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5hYnMoKCQodGhpcykubmV4dCgpLmxlbmd0aCA/ICQodGhpcykubmV4dCgpIDogJCh0aGlzKSkub2Zmc2V0KCkudG9wIC0gd2luU2Nyb2xsVG9wIC0gc2VsZi5vcHRpb25zLmhpZ2hsaWdodE9mZnNldCk7CiAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPT0gbnVsbCB8fCBkaXN0YW5jZSA8IGNsb3Nlc3RBbmNob3JEaXN0YW5jZSkgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JEaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JJZHggPSBpZHg7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBhbmNob3JUZXh0ID0gJChhbmNob3JzW2Nsb3Nlc3RBbmNob3JJZHhdKS5hdHRyKCJkYXRhLXVuaXF1ZSIpOwoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgbGlzdCBpdGVtIEhUTUwgZWxlbWVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIGFuY2hvciB0YWcKICAgICAgICAgICAgICAgIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGFuY2hvclRleHQgKyAnIl0nKTsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYGhpZ2hsaWdodE9uU2Nyb2xsYCBvcHRpb24gaXMgdHJ1ZSBhbmQgYSBuZXh0IGVsZW1lbnQgaXMgZm91bmQKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuaGlnaGxpZ2h0T25TY3JvbGwgJiYgZWxlbS5sZW5ndGgpIHsKCiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIGZyb20gYWxsIG9mIHRoZSBsaXN0IGl0ZW0ncwogICAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBjb3JyZXNwb25kaW5nIGxpc3QgaXRlbQogICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSkgewoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSAiIyIgKyBhbmNob3JUZXh0KSB7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIiArIGFuY2hvclRleHQpOwoKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBgc2hvd0FuZEhpZGVPblNjcm9sbGAgb3B0aW9uIGlzIHRydWUKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCAmJiBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGUpIHsKCiAgICAgICAgICAgICAgICAgIHNlbGYuX3RyaWdnZXJTaG93KGVsZW0sIHRydWUpOwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfSwgMCk7CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICB9LAoKICAgICAgLy8gU2hvdwogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgT3BlbnMgdGhlIGN1cnJlbnQgc3ViLWhlYWRlcgogICAgICBzaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgYHNlbGZgIHZhcmlhYmxlCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgICAgZWxlbWVudCA9IGVsZW07CgogICAgICAgIC8vIElmIHRoZSBzdWItaGVhZGVyIGlzIG5vdCBhbHJlYWR5IHZpc2libGUKICAgICAgICBpZiAoIWVsZW0uaXMoIjp2aXNpYmxlIikpIHsKCiAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IG5lc3RlZCBzdWJoZWFkZXJzLCBpcyBub3QgYSBoZWFkZXIsIGFuZCBpdHMgcGFyZW50IGlzIG5vdCB2aXNpYmxlCiAgICAgICAgICBpZiAoIWVsZW0uZmluZChzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSAmJiAhZWxlbS5wYXJlbnQoKS5pcygiOnZpc2libGUiKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIGFsbCBvZiB0aGUgc3ViaGVhZGVycyB3aXRoaW4gdGhlIGN1cnJlbnQgaGVhZGVyCiAgICAgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudHMoc3ViaGVhZGVyQ2xhc3MpLmFkZChlbGVtKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFueSBuZXN0ZWQgc3ViaGVhZGVycyBhbmQgaXMgbm90IGEgaGVhZGVyCiAgICAgICAgICBlbHNlIGlmICghZWxlbS5jaGlsZHJlbihzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIHRoZSBjbG9zZXN0IHN1YmhlYWRlcgogICAgICAgICAgICBlbGVtID0gZWxlbS5jbG9zZXN0KHN1YmhlYWRlckNsYXNzKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy9EZXRlcm1pbmVzIHdoYXQgalF1ZXJ5IGVmZmVjdCB0byB1c2UKICAgICAgICAgIHN3aXRjaCAoc2VsZi5vcHRpb25zLnNob3dFZmZlY3QpIHsKCiAgICAgICAgICAgIC8vVXNlcyBgbm8gZWZmZWN0YAogICAgICAgICAgICBjYXNlICJub25lIjoKCiAgICAgICAgICAgICAgZWxlbS5zaG93KCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL1VzZXMgdGhlIGpRdWVyeSBgc2hvd2Agc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAic2hvdyI6CgogICAgICAgICAgICAgIGVsZW0uc2hvdyhzZWxmLm9wdGlvbnMuc2hvd0VmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIC8vVXNlcyB0aGUgalF1ZXJ5IGBzbGlkZURvd25gIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICAgIGNhc2UgInNsaWRlRG93biI6CgogICAgICAgICAgICAgIGVsZW0uc2xpZGVEb3duKHNlbGYub3B0aW9ucy5zaG93RWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgLy9Vc2VzIHRoZSBqUXVlcnkgYGZhZGVJbmAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAiZmFkZUluIjoKCiAgICAgICAgICAgICAgZWxlbS5mYWRlSW4oc2VsZi5vcHRpb25zLnNob3dFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL0lmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBgalF1ZXJ5VUkgc2hvdyBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICAgIGRlZmF1bHQ6CgogICAgICAgICAgICAgIGVsZW0uc2hvdygpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc3ViaGVhZGVyIHBhcmVudCBlbGVtZW50IGlzIGEgaGVhZGVyCiAgICAgICAgaWYgKGVsZW0ucGFyZW50KCkuaXMoaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gSGlkZXMgYWxsIG5vbi1hY3RpdmUgc3ViLWhlYWRlcnMKICAgICAgICAgIHNlbGYuaGlkZSgkKHN1YmhlYWRlckNsYXNzKS5ub3QoZWxlbSkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHN1YmhlYWRlciBwYXJlbnQgZWxlbWVudCBpcyBub3QgYSBoZWFkZXIKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBIaWRlcyBhbGwgbm9uLWFjdGl2ZSBzdWItaGVhZGVycwogICAgICAgICAgc2VsZi5oaWRlKCQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLmNsb3Nlc3QoaGVhZGVyQ2xhc3MpLmZpbmQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLnNpYmxpbmdzKCkpKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gTWFpbnRhaW5zIGNoYWluYWJsaXR5CiAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICB9LAoKICAgICAgLy8gSGlkZQogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgQ2xvc2VzIHRoZSBjdXJyZW50IHN1Yi1oZWFkZXIKICAgICAgaGlkZTogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICAvLyBTdG9yZXMgdGhlIHBsdWdpbiBjb250ZXh0IGluIHRoZSBgc2VsZmAgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIC8vRGV0ZXJtaW5lcyB3aGF0IGpRdWVyeSBlZmZlY3QgdG8gdXNlCiAgICAgICAgc3dpdGNoIChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdCkgewoKICAgICAgICAgIC8vIFVzZXMgYG5vIGVmZmVjdGAKICAgICAgICAgIGNhc2UgIm5vbmUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIFVzZXMgdGhlIGpRdWVyeSBgaGlkZWAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgIGNhc2UgImhpZGUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKHNlbGYub3B0aW9ucy5oaWRlRWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAvLyBVc2VzIHRoZSBqUXVlcnkgYHNsaWRlVXBgIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICBjYXNlICJzbGlkZVVwIjoKCiAgICAgICAgICAgIGVsZW0uc2xpZGVVcChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgLy8gVXNlcyB0aGUgalF1ZXJ5IGBmYWRlT3V0YCBzcGVjaWFsIGVmZmVjdAogICAgICAgICAgY2FzZSAiZmFkZU91dCI6CgogICAgICAgICAgICBlbGVtLmZhZGVPdXQoc2VsZi5vcHRpb25zLmhpZGVFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBganF1ZXJ5VUkgaGlkZSBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICBkZWZhdWx0OgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgfQoKICAgICAgICAvLyBNYWludGFpbnMgY2hhaW5hYmxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKICAgICAgfSwKCiAgICAgIC8vIF90cmlnZ2VyU2hvdwogICAgICAvLyAtLS0tLS0tLS0tLS0KICAgICAgLy8gICAgICBEZXRlcm1pbmVzIHdoYXQgZWxlbWVudHMgZ2V0IHNob3duIG9uIHNjcm9sbCBhbmQgY2xpY2sKICAgICAgX3RyaWdnZXJTaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgcGFyZW50IGlzIGEgaGVhZGVyIGVsZW1lbnQgb3IgdGhlIG5leHQgZWxlbWVudCBpcyBhIG5lc3RlZCBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGlmIChlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSB8fCBlbGVtLm5leHQoKS5pcyhzdWJoZWFkZXJDbGFzcykpIHsKCiAgICAgICAgICAvLyBTaG93cyB0aGUgbmV4dCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLm5leHQoc3ViaGVhZGVyQ2xhc3MpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGVsZW1lbnQncyBwYXJlbnQgaXMgYSBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGVsc2UgaWYgKGVsZW0ucGFyZW50KCkuaXMoc3ViaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gU2hvd3MgdGhlIHBhcmVudCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLnBhcmVudCgpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0sCgogICAgICAvLyBfYWRkQ1NTQ2xhc3NlcwogICAgICAvLyAtLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgIF9hZGRDU1NDbGFzc2VzOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSBqcXVlcnlVSSB0aGVtZQogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgPT09ICJqcXVlcnl1aSIpIHsKCiAgICAgICAgICB0aGlzLmZvY3VzQ2xhc3MgPSAidWktc3RhdGUtZGVmYXVsdCI7CgogICAgICAgICAgdGhpcy5ob3ZlckNsYXNzID0gInVpLXN0YXRlLWhvdmVyIjsKCiAgICAgICAgICAvL0FkZHMgdGhlIGRlZmF1bHQgc3R5bGluZyB0byB0aGUgZHJvcGRvd24gbGlzdAogICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS13aWRnZXQiKS5maW5kKCIudG9jLXRpdGxlIikuYWRkQ2xhc3MoInVpLXdpZGdldC1oZWFkZXIiKS5lbmQoKS5maW5kKCJsaSIpLmFkZENsYXNzKCJ1aS13aWRnZXQtY29udGVudCIpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSB1c2VyIHdhbnRzIGEgdHdpdHRlckJvb3RzdHJhcCB0aGVtZQogICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy50aGVtZSA9PT0gImJvb3RzdHJhcCIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibmF2IG5hdi1saXN0Iik7CgogICAgICAgICAgdGhpcy5mb2N1c0NsYXNzID0gImFjdGl2ZSI7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSB0d2l0dGVyQm9vdHN0cmFwIHRoZW1lCiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnRoZW1lID09PSAiYm9vdHN0cmFwMyIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibGlzdC1ncm91cCIpOwoKICAgICAgICAgIHRoaXMuZWxlbWVudC5maW5kKGl0ZW1DbGFzcykuYWRkQ2xhc3MoImxpc3QtZ3JvdXAtaXRlbSIpOwoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9ICJhY3RpdmUiOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIGEgdXNlciBkb2VzIG5vdCB3YW50IGEgcHJlYnVpbHQgdGhlbWUKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBBZGRzIG1vcmUgbmV1dHJhbCBjbGFzc2VzIChpbnN0ZWFkIG9mIGpxdWVyeXVpKQoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9IHRvY0ZvY3VzQ2xhc3NOYW1lOwoKICAgICAgICAgIHRoaXMuaG92ZXJDbGFzcyA9IHRvY0hvdmVyQ2xhc3NOYW1lOwoKICAgICAgICB9CgogICAgICAgIC8vTWFpbnRhaW5zIGNoYWluYWJpbGl0eQogICAgICAgIHJldHVybiB0aGlzOwoKICAgICAgfSwKCiAgICAgIC8vIHNldE9wdGlvbgogICAgICAvLyAtLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIFRvY2lmeSBvcHRpb24gYWZ0ZXIgdGhlIHBsdWdpbiBpcyBpbnZva2VkCiAgICAgIHNldE9wdGlvbjogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIENhbGxzIHRoZSBqUXVlcnlVSSBXaWRnZXQgRmFjdG9yeSBzZXRPcHRpb24gbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCiAgICAgIH0sCgogICAgICAvLyBzZXRPcHRpb25zCiAgICAgIC8vIC0tLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIG9yIG11bHRpcGxlIFRvY2lmeSBvcHRpb25zIGFmdGVyIHRoZSBwbHVnaW4gaXMgaW52b2tlZAogICAgICBzZXRPcHRpb25zOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gQ2FsbHMgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IHNldE9wdGlvbnMgbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb25zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgogICAgICB9LAoKICAgICAgLy8gX3Njcm9sbFRvCiAgICAgIC8vIC0tLS0tLS0tLQogICAgICAvLyAgICAgIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyBlbGVtZW50CiAgICAgIF9zY3JvbGxUbzogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICBkdXJhdGlvbiA9IHNlbGYub3B0aW9ucy5zbW9vdGhTY3JvbGwgfHwgMCwKICAgICAgICAgIHNjcm9sbFRvID0gc2VsZi5vcHRpb25zLnNjcm9sbFRvLAogICAgICAgICAgY3VycmVudERpdiA9ICQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGVsZW0uYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICBpZiAoIWN1cnJlbnREaXYubGVuZ3RoKSB7CgogICAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICAgIH0KCiAgICAgICAgLy8gT25jZSBhbGwgYW5pbWF0aW9ucyBvbiB0aGUgcGFnZSBhcmUgY29tcGxldGUsIHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKICAgICAgICAkKCJodG1sLCBib2R5IikucHJvbWlzZSgpLmRvbmUoZnVuY3Rpb24oKSB7CgogICAgICAgICAgLy8gQW5pbWF0ZXMgdGhlIGh0bWwgYW5kIGJvZHkgZWxlbWVudCBzY3JvbGx0b3BzCiAgICAgICAgICAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7CgogICAgICAgICAgICAvLyBTZXRzIHRoZSBqUXVlcnkgYHNjcm9sbFRvcGAgdG8gdGhlIHRvcCBvZmZzZXQgb2YgdGhlIEhUTUwgZGl2IHRhZyB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgbGlzdCBpdGVtJ3MgYGRhdGEtdW5pcXVlYCB0YWcKICAgICAgICAgICAgInNjcm9sbFRvcCI6IGN1cnJlbnREaXYub2Zmc2V0KCkudG9wIC0gKCQuaXNGdW5jdGlvbihzY3JvbGxUbykgPyBzY3JvbGxUby5jYWxsKCkgOiBzY3JvbGxUbykgKyAicHgiCgogICAgICAgICAgfSwgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uIHRvIHRoZSBzbW9vdGhTY3JvbGxTcGVlZCBvcHRpb24KICAgICAgICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24KCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0KCiAgICB9KTsKCiAgfSkpOyAvL2VuZCBvZiBwbHVnaW4K"></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
22 <meta name="viewport" content="width=device-width, initial-scale=1" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
23 <link href="data:text/css;charset=utf-8,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAASAQAABAAgR0RFRgAQANwAAISoAAAAFkdQT1MAFQAKAACEwAAAAAxHU1VC3cremgAAhMwAAAB0T1MvMqE%2BnskAAFgkAAAAYGNtYXDPgnIkAABYhAAAAMRjdnQgD00YpAAAYggAAACiZnBnbX5hthEAAFlIAAAHtGdhc3AAFQAjAACEmAAAABBnbHlmE1%2FC8AAAASwAAFFYaGVhZPd24qYAAFRgAAAANmhoZWENzAaoAABYAAAAACRobXR4roVY8AAAVJgAAANoa2VybqPrpOMAAGKsAAAekGxvY2H4KuHgAABSpAAAAbptYXhwAnUCCgAAUoQAAAAgbmFtZRTcL0oAAIE8AAABMnBvc3Rqw5auAACCcAAAAiZwcmVwQ7eWpAAAYPwAAAEJAAIAwQAABAoFtgADAAcAFbcEAwUCBAMHAAAvMi8zAS8zLzMxMBMhESE3IREhwQNJ%2FLdoAnn9hwW2%2BkpoBOYAAgCY%2F%2BMBiQW2AAMADgArQBQDCQkCBAQPEAEBDAIMBk9ZDBYCAwA%2FPysREgA5GC8REgE5ETMzETMxMAEjAzMDNDMyFhUUBiMiJgFGaTPP4Xg6P0A5NEQBkwQj%2BrSIRkJARz8AAAIAhQOmArAFtgADAAcAH0ANAAMHBAMECAkGAgcDAwA%2FM80yERIBOTkRMxEzMTABAyMDIQMjAwE%2FKGkpAispaCkFtv3wAhD98AIQAAACADMAAAT2BbYAGwAfAJlAVQgfHBUEFAkRDAwJEg8OCwQKExMUFh0eBwQGFwQBABkEGAUFBhQGCiEDGhcDGAoYICEIBAwNDE5ZHAENHwAQERBOWRkVEU8NAU8RAQ0RDREFFxMDCgUALzM%2FMxI5OS8vXV0RMzMrEQAzMxEzMysRADMzERIBOTkRFzMREjk5ETMREhc5ERIXOREzERIXOTIyETMREhc5MTABAyEVIQMjEyEDIxMhNSETITUhEzMDIRMzAyEVASETIQPVQgEb%2Fs1UiVT%2B0VKIUP76AR9E%2FusBK1KLUgExVIZUAQj85QEvQv7RA4P%2BrIH%2BUgGu%2FlIBroEBVH8BtP5MAbT%2BTH%2F%2BrAFUAAMAg%2F%2BJBAwGEgAgACYALQBmQDUnESUdFwQEKhQNBSEAABkFEQkFLi8lDQYNTVkDBiQOKg5MWR0qKxwUHE1ZFyoUBhQGFAUWBQAvLxI5OS8vEjkyKxEAMxEzKxEAMxEzKxEAMxESARc5ETMRMzMzMxEzMzMRMzEwARQGBxUjNSImJzUWFjMRJiY1NDY3NTMVFhcHJicRHgIHNCYnETYBFBYXEQYGBAzMt4Fw0kNT2VnNpcungbirNJWanZxKqlmA2f3dWm9jZgHBiLEX6N8jH5wlLwG4QayIg6gStrQFRYM7C%2F5OMl97ZUhZLP57HgMHTFwpAYMQXQAABQBo%2F%2BwGLQXLAAkAFQAhAC0AMQBFQCQAEAUKFigcIiIuKAowEAYyMwMNHysNKw0rMDEGMBgZJRkHEwcAPzM%2FMz8%2FEjk5Ly8RMxEzERIBFzkRMxEzETMRMzEwExQWMzIRECMiBgUUBiMiJjU0NjMyFgEUFjMyNjU0JiMiBgUUBiMiJjU0NjMyFgEBIwHySlOkpFNKAcqZlIyblZKRnAGmSlRUUFBUVEoBy5mUjpmVko6f%2Fv781ZMDKwQCqqoBVAFSqKrk6e7f4%2Bbu%2FNurqaetq6Wlq%2BPp7t7j5usDIPpKBbYAAAMAcf%2FsBdMFzQALABUANQBRQDATFgAdBiMqKy4rLSMOJhkdFgk2NzMMSVkzEw8nLQ4wBS8DGSYDKiogLxIgCUpZIAQAPysAGD8SOS8XORIXOT8rERIBFzkRMxEzETMRMzEwARQWFzY2NTQmIyIGEzI3AQ4CFRQWJTQ2Ny4CNTQ2MzIWFRQGBwE2NjczAgcBIycGBiMiJgGeSFeBZWdWWW%2Bb8Z%2F%2BS29cLJv%2BuYu0VT0kxK%2BiuoidAZc4QxeoRIkBK%2BW5dvSW1%2B0Ek0V9WEt%2FU01hYPudmgGoRFlmQXWJ%2BoLIZl9iajmWqKeVa7Vd%2Fnk%2Bp2P%2B4pT%2B3bJqXNQAAAEAhQOmAT8FtgADABS3AAMDBAUCAwMAP80REgE5ETMxMAEDIwMBPyhpKQW2%2FfACEAAAAQBS%2FrwCIQW2AA0AHEAMBwAKBAAEDg8LJwMDAD8%2FERIBOTkRMxEzMTATEBI3MwYCFRQSFyMmAlKbkqKQkZSLoJOaAjEBCQHOrsH%2BMvTw%2Fja9qgHGAAABAD3%2BvAIMBbYADQAcQAwECgcACgAODwoDBCcAPz8REgE5OREzETMxMAEQAgcjNhI1NAInMxYSAgybkqCLlJGQopOaAjH%2B%2Bf46qLwBy%2FD0Ac7Br%2F4xAAEAVgJ%2FBA4GFAAOADBAGwMFBAEHDQoJCwkPEAQKAQ0CDAwNCgcEBggOAAA%2FxDIXOREzETMRMxESARc5MTABAyUXBRMHAwMnEyU3BQMCkSsBjhr%2Bg%2FissKCw8v6HHQGHKwYU%2FnVvth%2F%2Bul4Bav6WXgFGH7ZvAYsAAAEAaADjBCkEwwALAChAEwAEBAkFBQwNAwcIB1BZAA8IAQgAL10zKxEAMxESATkRMzMRMzEwASEVIREjESE1IREzAo0BnP5ki%2F5mAZqLAxeK%2FlYBqooBrAABAD%2F%2B%2BAFtAO4ACAARtQUACQoFAAAvzRESATk5MTAlFwYCByM2EjcBXg8aYjV9G0EN7hdk%2FvdyaAEyXAABAFQB2QI%2FAnEAAwARtQIABQQAAQAvMxESATk5MTATNSEVVAHrAdmYmAABAJj%2F4wGJAPIACwAYQAsGAAAMDQkDT1kJFgA%2FKxESATkRMzEwNzQ2MzIWFRQGIyImmD05OkFCOTNDakNFRUNBRj8AAAEAFAAAAtsFtgADABO3AgAEBQMDAhIAPz8REgE5OTEwAQEjAQLb%2Fd%2BmAiEFtvpKBbYAAgBm%2F%2BwELQXNAAsAFwAoQBQSAAwGAAYZGAkVS1kJBwMPS1kDGQA%2FKwAYPysREgE5OREzETMxMAEQAiMiAhEQEjMyEgEQEjMyEhEQAiMiAgQt7%2Fbs9u707vf84ZakppWVpqSWAt3%2Bhf6KAX8BcgF%2BAXL%2Bfv6S%2FsH%2B3QEnATsBOwEl%2Ft8AAQC8AAACywW2AAoAJEAQCQABCAELDAQJBwcBCQYBGAA%2FPxI5LxI5ERIBOTkRMzMxMCEjETQ3BgYHJwEzAsuiCBU01FgBg4wEEoJ0FS6scgErAAEAZAAABCUFywAZACtAFxgBBxMAEw4BBBobEApLWRAHARhMWQEYAD8rABg%2FKxESARc5ETMRMzEwISE1AT4CNTQmIyIGByc2MzIWFRQCBwEVIQQl%2FD8BgbBwOI5%2BW6NkWMruzuqc1v7AAvCPAYOymJBTdYk8T3Go07KL%2FvDQ%2FscIAAABAF7%2F7AQbBcsAJwBDQCQbABMHBwADFiINBigpAxcWFxZLWRcXCiUlHktZJQcKEUtZChkAPysAGD8rERIAORgvKxESADkREgEXOREzETMxMAEUBgcVFhYVFAQhIiYnNRYWMyARECEjNTMyNjU0JiMiBgcnNjYzMhYD7p2QsKr%2B3v71dMFbX9dgAXv%2BXpCSq8iTfmCqbVRa64LV7ARejLIeCBa0ktHhIyyeLzEBKQEKj5eGa3o0RnBHUcMAAAIAKwAABGoFvgAKABIAPEAeEgUJAgILBwMAAwUDExQBBRIFTFkJDwcSEgMHBgMYAD8%2FEjkvEjkzKxEAMxESARc5ETMzMxEzETMxMAEjESMRITUBMxEzIRE0NyMGBwEEatmf%2FTkCtrDZ%2FogKCDAq%2FjcBUP6wAVCRA938KQHmj7RgP%2F12AAEAhf%2FsBB0FtgAaADpAHw8DGRQIFBcDBBwbABFLWQAABhUVGExZFQYGDEtZBhkAPysAGD8rERIAORgvKxESARc5ETMRMzEwATIEFRQAIyInNRYWMzI2NRAhIgcnEyEVIQM2Ai3nAQn%2B3%2F73gkbQZbDD%2Folfn1Y3Atf9tyVzA33lx%2BP%2B%2Fk%2BgLTOmnQEyHTcCrJn%2BSRcAAAIAdf%2FsBC8FywAWACQAREAjGhELISEAAAYRAyYlDAsOHU1ZCw4OFAMUF0tZFBkDCE1ZAwcAPysAGD8rERIAORgvOSsRADMREgEXOREzETMRMzEwExAAITIXFSYjIgIDMzYzMhYVFAIjIgAFMjY1NCYjIgYGFRQWFnUBTwFIcUFNY%2Bv4DAxu7sXj%2BdTj%2FvYB646dkpFalllQkwJxAa8BqxOPGf7b%2Fsas7szk%2FvsBVcizqZGmSoJGZ7JoAAEAXgAABCsFtgAGAB9AEAEFBQACAwcIAwJMWQMGABgAPz8rERIBFzkRMzEwIQEhNSEVAQEdAl784wPN%2FaoFHZmF%2Bs8AAwBo%2F%2BwEKQXLABYAIgAuAE1AKRcPJhQsAx0JCQMGERQPBi8wBhEpICkgS1kpKQwADBpNWQwZACNNWQAHAD8rABg%2FKxESADkYLysREgA5ORESARc5ETMRMxEzETMxMAEyFhUUBgcWFhUUBiMiJjU0JSYmNTQ2AxQWMzI2NTQmJwYGASIGFRQWFzY2NTQmAkjI6oaTspb%2B3er8ATKKeOt3p5eVppzClYYBOn2Odp%2BPd5EFy7qkbLJJVbt7ttnNvPuMTrVwn737pniGjHphl0dAmwNneGRchEI8ilxldwAAAgBq%2F%2BwEJQXLABcAJQBBQCIbESIKCgAABBEDJicOHk1ZCxQODgIUFBhLWRQHAgdNWQIZAD8rABg%2FKxESADkYLxI5KxESARc5ETMRMxEzMTABECEiJzUWMzISEyMGBiMiJjU0EjMyFhIBIgYVFBYzMjY2NTQmJgQl%2FWh0RFBm8PULDDe2csLk%2F9CV33j%2BFI%2BckJNbmVhSkwNG%2FKYUjxoBKQEzU1fo0OQBCJn%2B2wEwuKSQpUqARmmyZgAAAgCY%2F%2BMBiQRkAAsAFQAoQBQQBgYMAAAWFw4TT1kOEAkDT1kJFgA%2FKwAYPysREgE5ETMzETMxMDc0NjMyFhUUBiMiJhE0MzIVFAYjIiaYPTk6QUI5M0N2e0I5M0NqQ0VFQ0FGPwO7h4dBRj8AAgA%2F%2FvgBhQRkAAgAEgAiQBABDQ0FCQkUEwsQT1kLEAUAAC%2FNPysREgE5ETMzETMxMCUXBgIHIzYSNwM0MzIVFAYjIiYBXg8aYjV9G0ENFXd7Qjk6Pe4XZP73cmgBMlwC74eHQUZGAAABAGgA8gQpBNkABgAVQAkEAAUBBAcIAwAALy8REgEXOTEwJQE1ARUBAQQp%2FD8DwfzyAw7yAaZiAd%2BV%2Fo3%2BuAAAAgB3AcEEGQPjAAMABwAqQBUHAgQAAgAJCAQFUFkEAQBQWQ8BAQEAL10rABgvKxESATk5ETMRMzEwEzUhFQE1IRV3A6L8XgOiA1qJif5niYkAAAEAaADyBCkE2QAGABVACQUBAgAEBwgGAwAvLxESARc5MTATAQE1ARUBaAMP%2FPEDwfw%2FAYkBRgF1lf4hYv5aAAACABv%2F4wM5BcsAGwAmADlAHSEcGwAHExMAHA4EJygAACQQJB5PWSQWEApJWRAEAD8rABg%2FKxESADkYLxESARc5ETMRMxEzMTABNTQ2NzY2NTQmIyIGByc2MzIWFRQGBgcGBhUVAzQzMhYVFAYjIiYBIUhiiEeDe0%2BWYTu9zr%2FUJ0x%2BZUGyeDo%2FQDk0RAGTNnWXVHN0UmZvJTGHY7yrSW9jblZyXyH%2B14hGQkBHPwACAHn%2FRga4BbQANQA%2FAEVAIiMuNg47BxQbAAApFA4uBUBBGDg4BD0IEQsRCxErHzIDJisALzM%2FMxI5OS8vEjkyMzMRMxESARc5ETMRMzMRMxEzMTABFAYGIyImJyMGBiMiJjU0NjMyFhcDFRQzMjY1NAIkIyIEAhUQACEyNxUGIyAAERASJCEyBBIBFDMyExMmIyIGBrhYoGhWdgsIKJVmlqnswESsRRmFW3KU%2Fu%2Bx3%2F62rgFCAS%2FS4sD0%2FpX%2Bb9YBjAEA1wFPt%2Fv2w88SDkhVgpMC2Y7sgmhRV2LNsMz%2FGRb%2BKhay16y1ARCTuf6p4f7P%2FrhWhVQBjwFmAQQBlt%2B1%2FrP%2BpP4BOQEFFLQAAgAAAAAFEAW8AAcADgA5QB4CDgsIAQUAAwAHAwQHBBAPDgJJWQsFDg4EBQMABBIAPzM%2FEjkvEjkrERIBOTkRMxEzERIXOTEwIQMhAyMBMwEBAyYnBgcDBGC2%2Fba0rAJCjwI%2F%2FmWqISMWKawB0f4vBbz6RAJqAcVWfWBz%2FjsAAwDJAAAEvgW2AA4AFwAgAElAJhMEHQoPGRkOCgQHDgQhIggPGA8YSlkPDw4ADhlKWQ4SABdKWQADAD8rABg%2FKxESADkYLysREgA5ERIBFzkRMxEzETMRMzEwEyEgBBUUBgcVBBEUBCMhEyEyNjU0JiMjEREhMjY1NCYjyQGdASMBBJGLAU3%2B9%2B7%2BAqoBGLSesMD6ATGxs7e7BbauvIKpGQo5%2FtvE3ANEcYZ7bf2R%2Fd2JkoiAAAABAH3%2F7ATPBcsAFgAmQBQDDhQJDgMXGBIASVkSBAsGSVkLEwA%2FKwAYPysREgEXOREzMTABIgAREAAzMjcVBiMgABE0EiQzMhcHJgM78f7pAQ35mcSY3%2F69%2FqGpAT%2FY5qxIpgUz%2Fr%2F%2B6f7h%2Fsc3lTkBiAFp4gFUuFSSTgAAAgDJAAAFWAW2AAgAEQAoQBQOBAkABAASEwUNSlkFAwQOSlkEEgA%2FKwAYPysREgE5OREzETMxMAEQACEhESEgAAMQACEjETMgAAVY%2Fnf%2Bj%2F5rAcABVQF6tP7h%2FuX3zwEwATIC6f6W%2FoEFtv6G%2FqcBHgEi%2B3ABKwAAAQDJAAAD%2BAW2AAsAOkAfBgoKAQQACAEEDA0GCUlZBgYBAgIFSVkCAwEKSVkBEgA%2FKwAYPysREgA5GC8rERIBFzkRMxEzMTAhIREhFSERIRUhESED%2BPzRAy%2F9ewJe%2FaIChQW2l%2F4plv3mAAEAyQAAA%2FgFtgAJADJAGgYAAAEDCAEDCgsGCUlZBgYBAgIFSVkCAwESAD8%2FKxESADkYLysREgEXOREzETMxMCEjESEVIREhFSEBc6oDL%2F17Al79ogW2l%2F3plwAAAQB9%2F%2BwFPQXLABsAOkAfFAgZAgIOGwgEHB0AG0lZAAAFDAwRSVkMBAUXSVkFEwA%2FKwAYPysREgA5GC8rERIBFzkRMxEzMTABIREGBiMgABE0EiQzMhcHJiMgABEQACEyNxEhA0wB8XTwnv60%2Fo63AVjn6spCxrf%2B9f7UASEBGJiR%2FrkC%2Fv05JSYBiwFk5AFXtVaWVP7C%2Fub%2B2P7OIwHCAAEAyQAABR8FtgALADNAGQkBAQAIBAQFAAUNDAgDSVkICAUKBgMBBRIAPzM%2FMxI5LysREgE5OREzETMRMxEzMTAhIxEhESMRMxEhETMFH6r8%2FqqqAwKqArD9UAW2%2FZICbgAAAf9g%2Fn8BaAW2AA0AHUANCwgIDg8JAwAFSVkAIgA%2FKwAYPxESATkRMzEwAyInNRYzMjY1ETMRFAYMXjZHTWNnqsD%2BfxuRFHhxBbb6WL7RAAABAMkAAATpBbYACwAqQBUIBAQFBQILCgAFDQwCCAUJBgMBBRIAPzM%2FMxI5ORESARc5ETMRMzEwISMBBxEjETMRATMBBOnI%2FeuZqqoCl8n9tALFiP3DBbb9KwLV%2FYUAAQDJAAAD%2BAW2AAUAH0AOAwAABAYHAQMAA0lZABIAPysAGD8REgE5OREzMTAzETMRIRXJqgKFBbb65JoAAQDJAAAGcQW2ABMAMkAYCAUFBgsODg0GDRQVAQoRAwYLBwMOAAYSAD8zMz8zEhc5ERIBOTkRMxEzETMRMzEwIQEjFhURIxEhATMBMxEjETQ3IwEDUP4QCA6dAQABzwgB0%2F6qDgj%2BDAUQmtT8XgW2%2B0oEtvpKA66ivvryAAEAyQAABT8FtgAQAC5AFQkGBgcBDw8ABwAREgsDBw8IAwEHEgA%2FMz8zEjk5ERIBOTkRMxEzETMRMzEwISMBIxYVESMRMwEzJgI3ETMFP8L84QgQncADHQgCDgKfBMvYtPzBBbb7OhsBJT8DRwAAAgB9%2F%2BwFvgXNAAsAFwAoQBQSAAwGAAYZGAkVSVkJBAMPSVkDEwA%2FKwAYPysREgE5OREzETMxMAEQACEgABEQACEgAAEQEjMyEhEQAiMiAgW%2B%2Fp3%2BxP69%2FqEBYAFEATsBYvtz%2FfHz%2BPfy8%2F0C3f6h%2Fm4BiwFoAWUBif5w%2FqD%2B1%2F7NATIBKgEnATH%2BzQACAMkAAARoBbYACQASADRAGgoFBQYOAAYAExQKBEpZCgoGBwcSSlkHAwYSAD8%2FKxESADkYLysREgE5OREzETMRMzEwARQEISMRIxEhIAEzMjY1NCYjIwRo%2FtH%2B5qyqAXsCJP0LmeLKvsm%2BBAze7%2F3BBbb9G5KhkY4AAAIAff6kBb4FzQAPABsANEAbEAoWAAAEAwoEHB0DDQcNGUlZDQQHE0lZBQcTAD%2FGKwAYPysREgA5ERIBFzkRMxEzMTABEAIHASMBByAAERAAISAAARASMzISERACIyICBb7izgFc9%2F7jN%2F69%2FqEBYAFEATsBYvtz%2FfHz%2BPfy8%2F0C3f7n%2FoxC%2FpYBSgIBiwFoAWUBif5w%2FqD%2B1%2F7NATIBKgEnATH%2BzQACAMkAAATPBbYADAAVAEhAJQ0BAQIMCREHCwoKBwkCBBYXCQ0ADQBKWQ0NAgMDFUlZAwMLAhIAPzM%2FKxESADkYLysREgA5ERIBFzkRMxEzETMRMxEzMTABESMRISAEFRAFASMBJTMyNjU0JiMjAXOqAZEBDQEB%2FtoBjcn%2Bnv7P6bSoq73dAmD9oAW2zs%2F%2B3mb9bwJgko%2BPkYAAAQBq%2F%2BwEAgXLACQANEAbHhMMAAAYEwUEJSYMHgMWFhtJWRYEAwlJWQMTAD8rABg%2FKxESADk5ERIBFzkRMxEzMTABFAQjICc1FhYzMjY1NCYmJyYmNTQ2MzIXByYjIgYVFBYWFxYWBAL%2B6PD%2B%2FIxa1GiqrD2Pksyv%2FtHatzW1q4eYOIWJ5q0BhcHYQ6QmLIFzTGFSNEnIoanIUJRMdGdMYVExUrwAAAEAEgAABFoFtgAHACRAEgABBQEDAwgJBwMEA0lZBAMBEgA%2FPysRADMREgEXOREzMTAhIxEhNSEVIQKLqv4xBEj%2BMQUfl5cAAAEAuv%2FsBRkFtgARACVAERABCgcBBxMSEQgDBA1JWQQTAD8rABg%2FMxESATk5ETMRMzEwAREUACEgADURMxEUFjMyNjURBRn%2B0v74%2Fvj%2B36rIwrnIBbb8Tvr%2B4gEg%2FAOu%2FEa3xMW4A7gAAQAAAAAEwwW2AAoAGkALAQQMCwgDAAQDAxIAPz8zEjkREgE5OTEwATMBIwEzARYXNjcEDLf98aj99LQBUDoiJDoFtvpKBbb8TqOaoqEAAQAbAAAHTAW2ABkAJEAQGQobGhUODgUJGBEKAwEJEgA%2FMz8zMxI5OREzERIBOTkxMCEjASYmJwYHASMBMxMWFzY3ATMBFhc2NxMzBcWo%2FtkVNAEWMP7iqP57tOcwFhs1AQa0ARMwIRM15rQD00HGFISd%2FDMFtvx5vpq3rwN5%2FH%2Bbw47MA4UAAAEACAAABJYFtgALACNAEgQGBQsKAAYNDAIIBAkGAwEEEgA%2FMz8zEjk5ERIBFzkxMCEjAQEjAQEzAQEzAQSWwf53%2FnC0Aeb%2BO7wBawFutf47AoP9fQL8Arr9vQJD%2FUwAAAEAAAAABHsFtgAIACBADwQFAgUHAwkKAAUBBwMFEgA%2FPzMSORESARc5ETMxMAEBMwERIxEBMwI9AYa4%2Fhis%2Fhm6AtsC2%2FyB%2FckCLwOHAAEAUgAABD8FtgAJACtAFwgBAwcABwQBBAoLBQRJWQUDAQhJWQESAD8rABg%2FKxESARc5ETMRMzEwISE1ASE1IRUBIQQ%2F%2FBMDCP0QA7%2F8%2BAMehQSYmYX7aQABAKb%2BvAJvBbYABwAgQA4GAQQAAQAICQUCAwYBJwA%2FMz8zERIBOTkRMxEzMTABIREhFSERIQJv%2FjcByf7fASH%2BvAb6jfohAAABABcAAALdBbYAAwATtwMBBAUDAwISAD8%2FERIBOTkxMBMBIwG6AiOm%2FeAFtvpKBbYAAAEAM%2F68AfwFtgAHACBADgMAAQYABggJAAcnAwQDAD8zPzMREgE5OREzETMxMBchESE1IREhMwEh%2Ft8Byf43tgXfjfkGAAABADECJwQjBcEABgAYQAkAAwcIBQIABAIALy8zEjkREgE5OTEwEwEzASMBATEBsmMB3Zj%2BjP6yAicDmvxmAun9FwAB%2F%2Fz%2BxQOa%2F0gAAwARtQAFAQQBAgAvMxEBMxEzMTABITUhA5r8YgOe%2FsWDAAEBiQTZAxIGIQAJABO2AAQLCgaAAQAvGs0REgE5OTEwASMmJic1MxYWFwMSbkGyKMsgciwE2TTAPxVFtTUAAgBe%2F%2BwDzQRaABkAJABHQCUiCAseHhkZEggDJSYBAgseR1kCCwsAFRUPRlkVEAUaRlkFFgAVAD8%2FKwAYPysREgA5GC85KxEAMxESARc5ETMRMxEzMTAhJyMGBiMiJjUQJTc1NCYjIgcnNjYzMhYVESUyNjU1BwYGFRQWA1IhCFKjeqO5AhO6b3qJrTNRwWHEvf4Om7Gmxq9tnGdJqJsBTBAGRIF7VH8sMq7A%2FRR1qpljBwdtc1peAAIAsP%2FsBHUGFAATAB8AREAiChcXDw8MHQMMAyAhDQAMFRIRChEGAAYaRlkGFgAURlkAEAA%2FKwAYPysREgA5OREzGD8%2FERIBOTkRMxEzETMRMzEwATISERACIyImJyMHIxEzERQHMzYXIgYVFBYzMjY1NCYCrtjv8dZrsTwMI3emCAh0zKqWmqqZlpYEWv7Z%2FvL%2B8v7VT1KNBhT%2Bhn9lpIvD5%2BfH39HW0gAAAQBz%2F%2BwDiwRcABYAJkAUDwMDFQkDGBcGDUZZBhAAEkZZABYAPysAGD8rERIBFzkRMzEwBSIAERAAMzIWFwcmJiMgERQWMzI3FQYCZu7%2B%2BwEJ9U%2BeLTM3gjL%2BsqOgiZBuFAElAQwBEwEsIheNFh3%2BVsrYO5M5AAIAc%2F%2FsBDcGFAASAB8AQkAhHQYXAA4OEQYRICESFQ8AAAEBDAMJCRpGWQkQAxNGWQMWAD8rABg%2FKxESADk5ETMYPz8REgE5OREzETMzETMxMCUjBiMiAhEQEjMyFzMnJxEzESMlMjY1NTQmIyIGFRQWA5oJc%2BXX7%2FDW33cNBwSmh%2F6eqpmbqpKbmpOnASYBDwEPASyiT00Bvvnsd7nOI%2BnH48%2FS1gACAHP%2F7AQSBFwAEwAaADtAHxgKFwsDAxEKAxwbFwtGWRcXAAYGFEZZBhAADkZZABYAPysAGD8rERIAORgvKxESARc5ETMzETMxMAUiABEQADMyEhUVIRYWMzI3FQYGAyIGByE0JgJ%2F8%2F7nAQXczvD9DQW5qLGtWJ2chJ0OAj2MFAEoAQcBCQE4%2FvHeacHISpQmIQPlrJidpwAAAQAdAAADDgYfABQAOUAdFAwMEwICBwMFAxUWCg9GWQoAAQUHBUZZEwcPAxUAPz8zKxEAMxg%2FKxESATk5ETMzETMzEjkxMAEhESMRIzU3NRAhMhcHJiMiBhUVIQKe%2FummxMQBYVd1K2BEXloBFwPH%2FDkDx0s8PQGUI4UffYpHAAADACf%2BFAQxBFwAKgA3AEEAbkA%2BKxk4JQwfPQUxEwETBQIqIhwfJRkKQkMcDzUPNUZZCDtHWQoiCCoPCA8IFioqAkdZKg8oP0dZKBAWLkdZFhsAPysAGD8rABg%2FKxESADk5GC8vERI5OSsrERIAORESARc5ETMRMxEzETMRMzEwARUHFhYVFAYjIicGFRQWMzMyFhUUBCEiJjU0NjcmJjU0NjcmJjU0NjMyFwEUFjMyNjU0JiMjIgYTFBYzMjU0IyIGBDHLHCzcwDErakpawrK%2F%2Ftz%2B6NfpgHQqOUBFVWvYxlZF%2FhGWjNHJbpjHcX5agnTz9nV%2BBEhpGCNxR6HACDhVLSuWj7a%2FoJJkkhoTUDU8WiojqGy0wxT7AFlcfWtZRWwDPHN27Pd%2BAAEAsAAABEQGFAAWADNAGQ4MCAgJABYJFhcYDgkSEgRGWRIQCgAACRUAPzM%2FPysREgA5ERIBOTkRMxEzETMzMTAhETQmIyIGFREjETMRFAczNjYzMhYVEQOeeoKtn6amCAoxtXTJyQLFhoS81v3DBhT%2BKVU4T1u%2F0P01AAACAKIAAAFmBd8AAwAPACNAEQoAAAQBARARDQdIWQ0CDwEVAD8%2FzisREgE5ETMzETMxMCEjETMDNDYzMhYVFAYjIiYBVqamtDgqKDo6KCo4BEgBKTk1Njg4NzcAAAL%2Fkf4UAWYF3wAMABgALEAWEwsLDQgIGRoWEEhZFkAJDwAFRlkAGwA%2FKwAYPxrOKxESATkRMzMRMzEwEyInNRYzMjY1ETMREAM0NjMyFhUUBiMiJitfO0VDTkmmtDgqKDo6KCo4%2FhQZhxRVVwT8%2BxD%2BvAddOTU2ODg3NwABALAAAAQdBhQAEAA2QBsQDgoKCwsIBgQFCAQREgwAABAQCAgDBwsVAw8APz8zEjkvOREzPxESARc5ETkRMxEzMzEwATY3ATMBASMBBxEjETMRFAcBVCtYAWLF%2FkQB28n%2BfX2kpAgCMT1jAXf%2BLf2LAgZs%2FmYGFPzHN3MAAQCwAAABVgYUAAMAFkAJAAEBBAUCAAEVAD8%2FERIBOREzMTAhIxEzAVampgYUAAEAsAAABssEXAAjAEZAIxURERIICQAjCRIjAyQlHBYVFRIZBA0ZDUZZHxkQEw8JABIVAD8zMz8%2FMysRADMREjkYLzMzERIBFzkRMxEzETMRMzEwIRE0JiMiBhURIxE0JiMiBhURIxEzFzM2NjMgFzM2NjMyFhURBiVwdpuUpnB3nJGmhxsIL6tqAQFPCDG6d7q5AsmDg7K5%2FZwCyYODu9X9wQRIllBaulZkv9L9NQAAAQCwAAAERARcABQAMUAYABQMCAgJFAkWFQwJEBAERlkQEAoPAAkVAD8zPz8rERIAORESATk5ETMRMxEzMTAhETQmIyIGFREjETMXMzY2MzIWFREDnnqCrKCmhxsIM7hxxsgCxYaEutb9wQRIllFZv9L9NQACAHP%2F7ARiBFwADAAYAChAFBMADQcABxoZChZGWQoQAxBGWQMWAD8rABg%2FKxESATk5ETMRMzEwARAAIyImAjUQADMyAAEUFjMyNjU0JiMiBgRi%2FvLuk%2BR8AQzu5gEP%2FL2oo6OpqaWjpgIl%2FvT%2B04oBAq0BDAEr%2Fs7%2B%2B9Lc29PR2dYAAgCw%2FhQEdQRcABQAIQA%2FQCAZCwQHBwgfEggSIiMECwAPDxVGWQ8QCQ8IGwAcRlkAFgA%2FKwAYPz8%2FKxESADk5ERIBOTkRMxEzETMzMzEwBSImJyMWFREjETMXMzY2MzISERACAyIGBxUUFjMyNjU0JgKua7E8DAymhxcIQKpu2u3x7qiWApqqjqGhFE9SYFb%2BPQY0llpQ%2Ftb%2B8%2F7y%2FtUD47rLJefH5srN2wACAHP%2BFAQ3BFwADAAfAERAIgoQHRYDGhoZEBkgIRobFw8dHh4WDRMTB0ZZExANAEZZDRYAPysAGD8rERIAOTkRMxg%2FPxESATk5ETMRMzMzETMxMCUyNjc1NCYjIgYVFBYXIgIREBIzMhczNzMRIxE0NyMGAk6mmAWcqZKbmX3U7vDW4XkJGIOmCw1zd7LTJebK48%2FP2YsBKgELAQ0BLqqW%2BcwB1WRGpwABALAAAAMnBFwAEAAqQBQNCQkKCgIREgsPDQAKFQAFRlkAEAA%2FKwAYPxI5PxESATk5ETMRMzEwATIXByYjIgYVESMRMxczNjYCpEk6F0Q0hb2miRMIPawEXAyaD9ih%2FbQESMtrdAABAGr%2F7ANzBFwAJAA2QBweEwwAABgFEwQlJgweAxYWG0ZZFhAGAwlGWQMWAD8rABgvPysREgA5ORESARc5ETMRMzEwARQGIyInNRYWMzI2NTQmJy4CNTQ2MzIXByYjIgYVFBYWFxYWA3Pkztp6T7VUgoxvoZmBP9q%2Bsak7pYZ2eC1kjsOJASuZpkWaKC5TVUBbPjlVbEuGm0iHREpBLD44NUeQAAEAH%2F%2FsAqgFRgAWADRAGxAUFAkLCRIDBBgXChMQE0dZDkAQDwcARlkHFgA%2FKwAYPxrNKxEAMxESARc5ETMRMzEwJTI2NxUGBiMgEREjNTc3MxUhFSERFBYCEixSGBtpKv7CnZ1GYAE%2B%2FsJedQ0Hfw0RAU8CjFBF6v6B%2FXtjagAAAQCk%2F%2BwEOQRIABQANEAZARMHDAwKEwoVFgwNDRAIFA8QBEZZEBYLFQA%2FPysAGD8zEjkRMxESATk5ETMRMxEzMTABERQWMzI2NREzESMnIwYGIyImNREBTHqCrJ%2BmiRgJM7V0yMcESP05hoS81QJA%2B7iTUVa%2B0QLNAAABAAAAAAQCBEgACwAYQAoBCgwNBQkBDwAVAD8%2FMzkREgE5OTEwIQEzExYXMzYSEzMBAaD%2BYLLsUA4IC3XMsv5gBEj9duRENQFNAjD7uAABABcAAAYjBEgAHAAsQBQJGx0eFxYODQMEDQQIGhIJDwAIFQA%2FMz8zMxI5OREzETMzMxESATk5MTAhAyYnIwYHAyMBMxISFzM2NjcTMxMWFzM2NhMzAQQvyRM0CCgez8D%2B1a5qbwgICzESybTEOBQIBCO%2FrP7RAoM70a9f%2FX8ESP5j%2FlBLObU1AnX9i6x1JJYC3Pu4AAABACcAAAQIBEgACwAiQBEHBQYAAQUMDQkDAQgLFQQBDwA%2FMz8zEjk5ERIBFzkxMAEBMwEBMwEBIwEBIwG4%2FoO9ASEBILv%2BgwGRvP7N%2Fsq8AjECF%2F5cAaT96f3PAbz%2BRAABAAL%2BFAQGBEgAFQAkQBIJDwADFhcEDQANEkZZDRsIAA8APzI%2FKxESADkREgEXOTEwEzMTFhczNjYTMwEGBiMiJzUWMzI3NwKy8E8TCA1T5rL%2BKUa7iExKN0SrST0ESP2P1l8z9wJ8%2ByC5mxGFDMCcAAABAFIAAANtBEgACQArQBcIAQMHAAcEAQQKCwUER1kFDwEIR1kBFQA%2FKwAYPysREgEXOREzETMxMCEhNQEhNSEVASEDbfzlAlb9zwLn%2FbICXXEDVoGB%2FLoAAQA9%2FrwCwQW2ABwALEAVGRoaCxcAAA8HFAMDBwsDHR4TAwQnAD8%2FERIBFzkRMxEzMxEzETMRMzEwJRQWFxUmJjURNCYjNTY2NRE0NjMVBhURFAcVFhUB23VxvtB%2BeIJ02Lbm398MZlwCjAKqmgEvaFmNAlxgATKbrIsGwf7Z1ycMJ9cAAQHu%2FhACewYUAAMAFkAJAgMDBAUDGwAAAD8%2FERIBOREzMTABMxEjAe6NjQYU9%2FwAAQBI%2FrwCywW2AB0ALEAVFQUKEhICGQAdHQ4OGQUDHh8VJwYDAD8%2FERIBFzkRMxEzETMzETMRMzEwASY1ETQnNTIWFREUFhcVIgYVERQGBzU2NjURNDY3Agrf47jTdoJ6fs2%2Bb3RucQI%2FJ9cBJ8EGi66Z%2Fs5hWwKNWWj%2B0ZmrAowCXGYBKXJ4FAAAAQBoAlAEKQNUABcAJEARAw8YGRIMUFkDEg8GBgBQWQYALysAEBjEL8QrERIBOTkxMAEiBgc1NjMyFhcWFjMyNjcVBiMiJicmJgFSNX82ZJBEcVlCYi82gDZmjkh%2BSEtaAslDNpdtHCYcG0A5lm4hICAYAAACAJj%2BiwGJBF4AAwAOACtAFAIEBAMJCQ8QAAADDAwGT1kMEAMiAD8%2FKxESADkYLxESATkRMzMRMzEwEzMTIxMUIyImNTQ2MzIW22kzz%2BF5PDw%2FOTNGAqz73wVMh0dAP0hAAAEAvv%2FsA9sFywAbAD5AHhYIDQMDCgQAEBAECAMcHRkFAhMKDQINAg0ECwcEGQA%2FPxI5OS8vETMzETMzERIBFzkRMxEzMxEzETMxMCUGBxUjNSYCNRAlNTMVFhYXByYjIgYVFBYzMjcDy2mThcvBAYyHS44xMYVtrKKfp42O8DYGyM4gARH6Afw%2BrKQDIReMM9PZ1Ms7AAEAPwAABEQFyQAdAEhAJhgTCQ0NGhYRAgsWEwUeHwwYGRhOWQkZGRMAExBMWRMYAAVLWQAHAD8rABg%2FKxESADkYLzMrEQAzERIBFzkRMzMRMxEzMTABMhcHJiMiBhURIRUhFRQGByEVITU2NTUjNTMRNDYCqr6qPZqPe30Bpv5aQUoDG%2Fv7zcbG4AXJVIVNfIz%2B2X%2FdZIgsmo0v9N9%2FATyyzQAAAgB7AQYEFwSgABsAJwAgQA0cACIOAA4oKR8VFSUHAC8zMy8zERIBOTkRMxEzMTATNDcnNxc2MzIXNxcHFhUUBxcHJwYjIicHJzcmNxQWMzI2NTQmIyIGuEqHXodogn9miV%2BGSkqDXIlmf4Zkh1yFSoGddHSeoHJ0nQLTemuMXIVJSYVcinF2g2eHXIVHSYVciGt8cKCfcXKipAAAAQAfAAAEcQW2ABYAVkAuEg4HCwsQDAUJAgkDDBQOFQcXGAoODgcPBhISAwATFQ8THxMCDxMPEwwBFQYMGAA%2FPzMSOTkvL10REjkyMhEzETMzETMREgEXOREzETMzETMRMzEwAQEzASEVIRUhFSERIxEhNSE1ITUhATMCSAF7rv5gAQb%2BwwE9%2FsOk%2FsQBPP7EAQD%2BZbIC3wLX%2FP5%2Fqn%2F%2B9AEMf6p%2FAwIAAgHu%2FhACewYUAAMABwAkQBACBgYDBwcICQQDBAMHGwAAAD8%2FOTkvLxESATkRMzMRMzEwATMRIxEzESMB7o2NjY0GFPz4%2Fg389wACAHv%2F%2BAOWBh0AMQA9AENAJjIAEwYqHjgZGR4MBgAjBj4%2FFQM7NhwtBiEJISdHWSEVCRBHWQkAAD8rABg%2FKxESABc5ERIBFzkRMxEzETMRMzEwEzQ2NyYmNTQ2MzIWFwcmJiMiBhUUFhcWFhUUBgcWFRQGIyInNRYWMzI2NTQmJicuAjcUFhcXNjU0JicGBotWTkpUz8Ven2E1YodMdHR7mrqWUkqZ6tTagE7CUoaNMGxzjoZCkoSnMYmTuURVAylWiSUob1V5ix0ngycbO0A8VDdEl2tajSlRkoyZQZQlLUxHLjo6KzRacmJNaT0TUG9TcDkTZAACATUFDgNoBdMACwAXAB5ADAYADBIAEhgZDwMVCQAvM80yERIBOTkRMxEzMTABNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYBNTUlJjc3JiU1AX01JSU3NyUlNQVxNC4uNDIxMTI0Li40MjExAAADAGT%2F7AZEBcsAFgAmADYARkAnJxcDDy8fHxQJDxcFNzgGDAASDwwfDAIAEhASAgwSDBIbKyMTMxsEAD8zPzMSOTkvL11dETMRMxESARc5ETMRMxEzMTABIgYVFBYzMjcVBgYjIiY1NDYzMhcHJgE0EiQzMgQSFRQCBCMiJAI3FBIEMzIkEjU0AiQjIgQCA319h3%2BDVn0wZUbC0N2%2FgHY6bPyXyAFeysgBXsrC%2FqLQz%2F6iw2muAS2srgEqr67%2B17Cu%2FtavBCOumqiiLXwUHPHY0fY8djP%2BuMgBXsrI%2FqLKxf6m0M8BWsat%2FtOtrgEpsK4BKq%2Bu%2FtcAAAIARgMUAnEFxwAWAB8AN0AcFwYbCgEBFhYQBgMgIRwKChIZFgADEAMCAw0SHwA%2FM9RdxDMSOS8zERIBFzkRMxEzMxEzMTABJwYjIiY1NDY3NzU0IyIHJzYzMhYVESUUMzI1NQcGBgIUGFyMX2%2BapXWUZGgrcoWCif5QcMlicGcDIVRhY2ZmaQYEJ4UzYDhpef48vGS0MQQEOQACAFIAdQOqA74ABgANAClAEwMGCg0CBAsJCQQNBgQODwwFCAEALzMvMxESARc5ETMRMxEzETMxMBMBFwEBBwElARcBAQcBUgFWd%2F7fASF3%2FqoBiwFYdf7hAR91%2FqgCJwGXRf6i%2FqFHAZcbAZdF%2FqL%2BoUcBlwAAAQBoAQgEKQMXAAUAG0AMAgEEAQYHBQRQWQUCAC8vKxESATk5ETMxMAERIxEhNQQpifzIAxf98QGFigD%2F%2FwBUAdkCPwJxAgYAEAAAAAQAZP%2FsBkQFywAIABYAJgA2AF1AMycXABEREgQJLx8fDQkMEhcGNzgMEBAAAA4TDhIIEw8SHxICABMQEwISExITGysjEzMbBAA%2FMz8zEjk5Ly9dXREzETMREjkvMxEzERIBFzkRMxEzETMRMxEzMTABMzI2NTQmIyMFFAYHEyMDIxEjESEyFgE0EiQzMgQSFRQCBCMiJAI3FBIEMzIkEjU0AiQjIgQCAtNsUGFWXWoBslVN7qjPh5QBBaab%2B9%2FIAV7KyAFeysL%2BotDP%2FqLDaa4BLayuASqvrv7XsK7%2B1q8C%2BlNAS0GIUHse%2FnUBYv6eA3uC%2FsXIAV7KyP6iysX%2BptDPAVrGrf7Tra4BKbCuASqvrv7XAAH%2F%2BgYUBAYGkwADABG1AAUBBAECAC8zEQEzETMxMAEhNSEEBvv0BAwGFH8AAgB%2FA1wC7gXLAAwAGAAhQA4NABMGAAYZGhAKwBYDBAA%2FMxrMMhESATk5ETMRMzEwEzQ2MzIWFRQGBiMiJjcUFjMyNjU0JiMiBn%2B1goK2UpJUgrVzdVFQc3FSU3MEk4K2tYNUj1S0g1JycVNUcXIA%2F%2F8AaAABBCkEwwImAA4AAAAHANAAAP10AAEAMQJKAo0FyQAYACNAEQcTFwEBDhMABBoZChAfFwEgAD8zPzMREgEXOREzETMxMAEhNTc%2BAjU0JiMiBgcnNjMyFhUUBgcHIQKN%2FaTsWVIhUD80YkVCg5iEk1mTrgG4Akpo5lZhTDZERSYyWG%2BCcFCXiqUAAQAhAjkCjQXJACMAOUAiDwUFAAMSHgoGJCUSXRNtEwJMEwELExsTAhMTCBohHw0IIQA%2FMz8zEjkvXV1dMxESARc5ETMxMAEUBgcWFRQGIyInNRYzMjU0IyM1MzI2NTQmIyIGByc2NjMyFgJzUkSwuKiYdJN70%2Bd1d2djUENCcDhFP4xeiJ0E51BnFy%2BigI84e0SikWtPRD1EKyNaLTZ3AAEBiQTZAxIGIQAJABO2CQQKCwSACQAvGs0REgE5OTEwATY2NzMVBgYHIwGJMG8gyiyuQG8E8j6wQRVBvjQAAQCw%2FhQERARIABYANUAaBQoKCBAAExMUCBQYFwYVDxQbDQJGWQ0WCRUAPz8rABg%2FPzMREgE5OREzETMzETMRMzEwARAzMjY1ETMRIycjBiMiJyMWFREjETMBVv6rn6aIGgpv5ZZYCgqmpgF9%2Fvq91AJA%2B7iTp1xUoP7ABjQAAQBx%2FvwEYAYUAA8AJ0ASBAUBAAAFCwMQEQgIBQMPBQEFAC8zPzMSOS8REgEXOREzETMxMAEjESMRIxEGIyImNRA2MyEEYHLVcz5U2Mva6AIt%2FvwGsPlQAzMS%2BvsBBP4AAQCYAkwBiQNaAAsAF0AKBgAADQwDCU9ZAwAvKxESATkRMzEwEzQ2MzIWFRQGIyImmD44OkFCOTNDAtNCRUVCQUY%2FAAABACX%2BFAG0AAAAEgAkQBARDgsAAA4FAxMUDhERCAMQAC%2FMMjkvMxESARc5ETMRMzEwARQGIyInNRYzMjY1NCYnNzMHFgG0mZYzLS07T1FPbVhuN7T%2B32FqCWoIKDYrNRGycycAAQBMAkoB4QW2AAoAIEAOAgADAwoMCwkJAyAGAB4APzI%2FOS8REgE5OREzMzEwATMRIxE0NwYGBycBUo%2BFBhY2h0MFtvyUAkNbWhYtX2AAAgBCAxQCvgXHAAsAFwAlQBIMBhIABgAYGQ8AAxADAgMVCR8APzPEXTIREgE5OREzETMxMAEUBiMiJjU0NjMyFgUUFjMyNjU0JiMiBgK%2Bq5aSqaiXmKX9%2FltoaVxcaWdcBG%2Bkt7qho7W2onp6enp7dnYAAgBQAHUDqAO%2BAAYADQAjQBELCQQCAAMHAgoJBg4PDAUIAQAvMy8zERIBFzkRMxEzMTABAScBATcBBQEnAQE3AQOo%2Fqh1AR%2F%2B4XUBWP51%2Fqh1AR%2F%2B4XUBWAIM%2FmlHAV8BXkX%2BaRv%2BaUcBXwFeRf5p%2F%2F8ASwAABdEFtgAnAM4CgwAAACYAev8AAQcA0wMd%2FbcACbMDAhIYAD81NQD%2F%2FwAuAAAF2wW2ACcAzgI%2FAAAAJgB64gABBwBzA079twAHsgIQGAA%2FNQD%2F%2FwAaAAAGIQXJACYAdPkAACcAzgLfAAABBwDTA239twAJswMCKxgAPzU1AAACADP%2BdwNUBF4AHQAoAEFAIggUHiMBHA8cIxQEKSoAHQEMAx0dESYmIE9ZJhARC0lZESMAPysAGD8rERIAORgvX15dERIBFzkRMxEzETMxMAEVFAYHDgIVFBYzMjY3FwYjIiY1ND4CNzY2NTUTFCMiJjU0NjMyFgJOS2F5PRmEelCWYjvFxr7YI0BZNmVBtHk7PkI3M0YCrDN6lFRqS004ZHEmMIdguqpGaVlSL1h0XR8BK4dFQkBHQP%2F%2FAAAAAAUQB3MCJgAkAAABBwBC%2F8IBUgAIswIQBSYAKzX%2F%2FwAAAAAFEAdzAiYAJAAAAQcAdQCFAVIACLMCGAUmACs1%2F%2F8AAAAABRAHcwImACQAAAEHAMAAIwFSAAizAh0FJgArNf%2F%2FAAAAAAUQBy8CJgAkAAABBwDCAAQBUgAIswIYBSYAKzX%2F%2FwAAAAAFEAclAiYAJAAAAQcAaQA3AVIACrQDAiQFJgArNTX%2F%2FwAAAAAFEAcGAiYAJAAAAAcAwQA5AIEAAv%2F%2BAAAGgQW2AA8AEwBOQCwKDg4RAQAIDAEQBQUVBRQJEwYTSVkQA0lZCg1JWRAKEAoBBgMFEgEOSVkBEgA%2FKwAYPz8SOTkvLysrKxEAMxEBMxESFzkRMzMRMzEwISERIQMjASEVIREhFSERIQEhESMGgf0S%2Ff7jsAK6A8n9vAId%2FeMCRPtUAb52AdH%2BLwW2l%2F4plv3mAdICtQD%2F%2FwB9%2FhQEzwXLAiYAJgAAAAcAeQICAAD%2F%2FwDJAAAD%2BAdzAiYAKAAAAQcAQv%2B3AVIACLMBDQUmACs1%2F%2F8AyQAAA%2FgHcwImACgAAAEHAHUAPwFSAAizARUFJgArNf%2F%2FAMkAAAP4B3MCJgAoAAABBwDA%2F%2FsBUgAIswEaBSYAKzX%2F%2FwDJAAAD%2BAclAiYAKAAAAQcAaQASAVIACrQCASEFJgArNTUAAgAvAAAFSAW2AAwAFwBXQDIRFRUIBA0AABMEBgQYGRQGBwZJWREPBz8HrwfPB98HBQsDBwcECQkQSlkJAwQVSlkEEgA%2FKwAYPysREgA5GC9fXl0zKxEAMxESARc5ETMRMzMRMzEwARAAISERIzUzESEgAAMQISMRIRUhETMgBUj%2Bd%2F6P%2FnuamgGyAVEBfLX9x%2BcBe%2F6FvgJiAun%2Blv6BAomWApf%2Bif6kAkD9%2FJb%2BCv%2F%2FAMkAAAU%2FBy8CJgAwAAABBwDCAJMBUgAIswEaBSYAKzX%2F%2FwB9%2F%2BwFvgdzAiYAMQAAAQcAQgB5AVIACLMCGQUmACs1%2F%2F8Aff%2FsBb4HcwImADEAAAEHAHUBCgFSAAizAiEFJgArNf%2F%2FAH3%2F7AW%2BB3MCJgAxAAABBwDAALQBUgAIswImBSYAKzX%2F%2FwB9%2F%2BwFvgcvAiYAMQAAAQcAwgCaAVIACLMCIQUmACs1%2F%2F8Aff%2FsBb4HJQImADEAAAEHAGkA1QFSAAq0AwItBSYAKzU1AAEAhQEQBAwEmAALABlACQcJAwEJAQwNCAAZLxESATk5ETMRMzEwARcBAQcBAScBATcBA6xg%2FqABXmD%2Bnv6kZQFe%2FqBkAWEEmGP%2Bnv6gYwFf%2FqFjAWABYGX%2BnQAAAwB9%2F8MFvgX2ABMAGwAjAE5ALBYfFx4EHBQcChQAABIPBQgKBiQlFh4hGQ0hSVkPEggFBAMQDQQDGUlZBgMTAD%2FGKwAYP8YSFzkrERIAOTkREgEXOREzETMREhc5MTABEAAhIicHJzcmERAAITIXNxcHFgMQJwEWMzISARAXASYjIgIFvv6d%2FsTrlGV4bLIBYAFE0Z1heGrAtG79YHOw8%2Fj8J2UCnWqo8%2F0C3f6h%2Fm5kjU%2BaxgFtAWUBiV6HUJTK%2FpUBEJr8TFIBMgEq%2FvqaA69J%2Fs0A%2F%2F8Auv%2FsBRkHcwImADcAAAEHAEIARgFSAAizARMFJgArNf%2F%2FALr%2F7AUZB3MCJgA3AAABBwB1AM8BUgAIswEbBSYAKzX%2F%2FwC6%2F%2BwFGQdzAiYANwAAAQcAwAB9AVIACLMBIAUmACs1%2F%2F8Auv%2FsBRkHJQImADcAAAEHAGkAmAFSAAq0AgEnBSYAKzU1%2F%2F8AAAAABHsHcwImADsAAAEHAHUAMQFSAAizARIFJgArNQACAMkAAAR5BbYADAAVADZAHA0JBQUGEQAGABYXDQRKWQkVSlkNCQ0JBgcDBhIAPz8SOTkvLysrERIBOTkRMxEzETMzMTABFAQhIxEjETMRMyAEATMyNjU0JiMjBHn%2B0f7huKqq1wEZARb8%2Bqjiyr7KzAMQ4%2B7%2BwQW2%2FwDP%2FeqPpJWKAAABALD%2F7AScBh8AMABBQCIpKgUdIwAXDAwAHREqBTEyEhIqLi4mRlkuACoVDxVGWQ8WAD8rABg%2FPysREgA5GC8REgEXOREzETMRMxEzMTABFAcGBhUUFhYXFhYVFAYjIic1FhYzMjU0JicmJjU0Njc2NjU0JiMgFREjETQ2MzIWBBmPWDgbR06MZsKzvGs%2FnEjXU25%2FYEVHS0CIf%2F7sptzezuEE8odzRkMhICo5M1%2BdZaCrRZonL7ZLa0ZSe1Q%2FajU5WjVQVd%2F7TASysrud%2F%2F8AXv%2FsA80GIQImAEMAAAEGAEKOAAAIswImESYAKzX%2F%2FwBe%2F%2BwDzQYhAiYAQwAAAQYAdSsAAAizAi4RJgArNf%2F%2FAF7%2F7APNBiECJgBDAAABBgDA2AAACLMCMxEmACs1%2F%2F8AXv%2FsA80F3QImAEMAAAEGAMK9AAAIswIuESYAKzX%2F%2FwBe%2F%2BwDzQXTAiYAQwAAAQYAaeIAAAq0AwI6ESYAKzU1%2F%2F8AXv%2FsA80GhQImAEMAAAEGAMH3AAAKtAMCKBEmACs1NQADAF7%2F7AZzBFwAKQA0ADsAYUAzKgAkETA4GRkEMDkYGB8wCwAFPD0bLSctRlkZMQQxR1k4JCcRBAQOIicWNQgOCEZZFA4QAD8zKxEAMxg%2FMxI5LzkSOTMrEQAzKxEAMxESARc5ETMRMzMRMxI5OREzMTATNDY3NzU0JiMiByc2NjMyFhc2NjMyEhUVIRIhMjY3FQYGIyAnBgYjIiY3FBYzMjY1NQcGBgEiBgchNCZe%2BP64dHeQozRKx2KCpSk1q27A6P1DCAE6W51UVpVl%2Ft99UcWGo7mua1iRqJ66pAO9eYsLAgeAAS%2BhswgGRIF7VH8pNVdfWGD%2B9d5r%2FnUjJ5QmIel%2FaqqXX1mpmmMHCG0CMqaenKgA%2F%2F8Ac%2F4UA4sEXAImAEUAAAAHAHkBRgAA%2F%2F8Ac%2F%2FsBBIGIQImAEcAAAEGAEK1AAAIswIcESYAKzX%2F%2FwBz%2F%2BwEEgYhAiYARwAAAQYAdU4AAAizAiQRJgArNf%2F%2FAHP%2F7AQSBiECJgBHAAABBgDA9wAACLMCKREmACs1%2F%2F8Ac%2F%2FsBBIF0wImAEcAAAEGAGkKAAAKtAMCMBEmACs1Nf%2F%2F%2F9oAAAFjBiECJgC9AAABBwBC%2FlEAAAAIswEFESYAKzX%2F%2FwCpAAACMgYhAiYAvQAAAQcAdf8gAAAACLMBDREmACs1%2F%2F%2F%2FswAAAlUGIQImAL0AAAEHAMD%2BpwAAAAizARIRJgArNf%2F%2F%2F%2BwAAAIfBdMCJgC9AAABBwBp%2FrcAAAAKtAIBGREmACs1NQACAHH%2F7ARiBiEAGwAmAEpAKyEGDBwcAAAYGRYOERMQBgknKAkfRlkLAxYRGQ4PBRQJCQMXFAEDJEZZAxYAPysAGD8zEjkvEhc5EjkrERIBFzkRMxEzETMxMAEQACMiADU0ADMyFzcmJwUnNyYnNxYXNxcHFhIDNCYjIBEUFjMyNgRi%2Fvv33v7pAQfc4mQIOc3%2B8UnpXF5FnGbuTM%2BYpai0nP6vr6KvoQIz%2Fuf%2B0gEN4uYBBnkE1r%2BbbIU%2BMXVJS4prd4%2F%2Bcv7ok6r%2BmKe3yQD%2F%2FwCwAAAERAXdAiYAUAAAAQYAwg4AAAizAR4RJgArNf%2F%2FAHP%2F7ARiBiECJgBRAAABBgBC1AAACLMCGhEmACs1%2F%2F8Ac%2F%2FsBGIGIQImAFEAAAEGAHVWAAAIswIiESYAKzX%2F%2FwBz%2F%2BwEYgYhAiYAUQAAAQYAwA4AAAizAicRJgArNf%2F%2FAHP%2F7ARiBd0CJgBRAAABBgDC8QAACLMCIhEmACs1%2F%2F8Ac%2F%2FsBGIF0wImAFEAAAEGAGkbAAAKtAMCLhEmACs1NQADAGgA%2FAQpBKgAAwAPABsAM0AYFgoKEAQCBAEDHB0ZExMBBw0NAQEAUFkBAC8rEQAzGC8zETMvMxESARc5ETMzETMxMBM1IRUBNDYzMhYVFAYjIiYRNDYzMhYVFAYjIiZoA8H9rjs2NDo7MzQ9OzY0OjszND0CjYqK%2Fug8PT86OUA%2FAvQ8PT86OUA%2FAAMAc%2F%2B8BGIEhwATABsAIwBLQCkXHxwUFAocAAASDwUICgYkJRYeIRkNGUZZDxIIBQQDEA0QAyFGWQYDFgA%2FxisAGD%2FGEhc5KxESADk5ERIBFzkRMxEzERI5OTEwARAAIyInByc3JhEQADMyFzcXBxYFFBcBJiMiBgU0JwEWMzI2BGL%2B8u6acFRyXoEBDO6adFR1YX%2F8vTUB0Utyo6YClzP%2BL0dxo6kCJf70%2FtNFdU6DmAEAAQwBK0x3TIWY%2BatmAoY11tSkZP19M9sA%2F%2F8ApP%2FsBDkGIQImAFcAAAEGAELEAAAIswEWESYAKzX%2F%2FwCk%2F%2BwEOQYhAiYAVwAAAQYAdXEAAAizAR4RJgArNf%2F%2FAKT%2F7AQ5BiECJgBXAAABBgDAEgAACLMBIxEmACs1%2F%2F8ApP%2FsBDkF0wImAFcAAAEGAGkhAAAKtAIBKhEmACs1Nf%2F%2FAAL%2BFAQGBiECJgBbAAABBgB1EgAACLMBHxEmACs1AAIAsP4UBHUGFAAWACIAPkAfIAYbFBAQEQYRJCMSABEbDBYJAwkeRlkJFgMXRlkDEAA%2FKwAYPysREgA5ORg%2FPxESATk5ETMRMzMRMzEwATY2MzISERACIyInIxcWFREjETMRFAclIgYHFRQWMyARNCYBWEKqatfw8dbeegwECKamBgFIqJgCmqoBL5QDtFlP%2FtT%2B9f70%2FtOhIk0%2F%2FjUIAP4uNFobuMkp58cBsNfR%2F%2F8AAv4UBAYF0wImAFsAAAEGAGm1AAAKtAIBKxEmACs1NQABALAAAAFWBEgAAwAWQAkAAQEFBAIPARUAPz8REgE5ETMxMCEjETMBVqamBEgAAgB9%2F%2BwG5wXNABQAHwBTQC4YBg8TEx0ADREdBgUgIQ8SSVkPDwALCw5JWQsDCRVJWQkEAxtJWQMSABNJWQASAD8rABg%2FKwAYPysAGD8rERIAORgvKxESARc5ETMRMxEzMTAhIQYjIAAREAAhMhchFSERIRUhESEBIgAREAAzMjcRJgbn%2FQBmXP65%2Fp8BXAFAZloDDv2zAif92QJN%2FET5%2Fv8BAfdwV1cUAYkBagFoAYYXl%2F4plv3mBJ3%2Bz%2F7Z%2Ftf%2BzSEEdR4AAwBx%2F%2BwHHwRaAB4AKgAxAFVALR8IDgIWFiUvFRUcJQgEMjMrKAsoRlkuFkZZAgUOCy4uBRELEBgiBSJGWQAFFgA%2FMysRADMYPzMSOS8SORI5KysRADMREgEXOREzETMSOTkRMzEwBSAnBgYjIgAREAAzMhYXNjYzMhIVFSESITI2NxUGBgEUFjMyNjU0JiMiBiUiBgchNCYFlv7bfT7Rid%2F%2B9AEG64PNPjrAfsnu%2FScIAUpeoVdYmPshmKejmZulppUER3%2BRDAIghBTrdHcBMQEIAQkBLHdycHn%2B9%2BJp%2FncjJ5QnIAI509vV0d3V2Niknp6kAAEBDATZA64GIQAOABhACQcAEA8LBIAOCQAvMxrNMhESATk5MTABNjY3MxYWFxUjJicGByMBDH9mF6YWbX13WIWIU3ME8IiAKSqFghc3g4Y0AAACAW8E2QMtBoUACwAXAB5ADBIGDAAGABgZDwkVAwAvM8wyERIBOTkRMxEzMTABFAYjIiY1NDYzMhYHNCYjIgYVFBYzMjYDLXtmZXh5ZGV8bEIzM0I8OTRBBbJid3ViYnN3Xjg9PTg4PT0AAQEIBNkD8AXdABcAJEAPCRUYGREABQwADAAMFYAJAC8azDk5Ly8RMxEzERIBOTkxMAEiLgIjIgYHIzY2MzIeAjMyNjczBgYDFCtST0kiMjMOYg1zWy5WTkggMTAPYw1xBNslLSU8PXmJJS0lOz55iQAAAQBSAdkDrgJxAAMAEbUAAgQFAAEALzMREgE5OTEwEzUhFVIDXAHZmJgAAQBSAdkHrgJxAAMAEbUAAgQFAAEALzMREgE5OTEwEzUhFVIHXAHZmJgAAQAZA8EBRAW2AAcAErYBBQgJAAQDAD%2FNERIBOTkxMBMnNhI3MwYHJQwWYjh7QiUDwRZaAQx5%2FvcAAAEAGQPBAUQFtgAHABK2BQEICQUHAwA%2FxhESATk5MTABFwYCByMSNwE1DxpiNXpGIAW2FmT%2B93IBHdgA%2F%2F8AP%2F74AW0A7gIGAA8AAAACABkDwQK0BbYABwAPABpADAQBDQkEEBEACAMMAwA%2FM80yERIBFzkxMAEnNhMzBgIHISc2EjczBgcBlg84enseOw391wwWYjh7QiUDwRbXAQhz%2Ft9hFloBDHn%2B9wAAAgAZA8ECtAW2AAcAEAAaQAwJDQEFBBESDQUQBwMAPzPGMhESARc5MTABFwYCByMSNyEXBgIHIzYSNwE1DxpiNXpGIAInDhhgOH0aQg0FthZk%2FvdyAR3YFlv%2B9npkATRdAP%2F%2FABn%2B%2BQK0AO4BBwDJAAD7OAAgtwEAB0ANDUgHuP%2FAswwMSAe4%2F8CzCQlIBwARKysrNTUAAQCkAfQCXgPjAAsAE7YGAAAMDQkDAC%2FNERIBOREzMTATNDYzMhYVFAYjIiakcWxpdHNqa3IC7Hl%2BfHt3gYMAAAEAUgB1Ah8DvgAGABpACgQCAwYCBggHBQEALy8REgE5OREzETMxMBMBFwEBBwFSAVZ3%2Ft8BIXf%2BqgInAZdF%2FqL%2BoUcBlwABAFAAdQIdA74ABgAaQAoDAAQCAAIIBwUBAC8vERIBOTkRMxEzMTABAScBATcBAh3%2BqHUBH%2F7hdQFYAgz%2BaUcBXwFeRf5pAAAB%2FnkAAAKPBbYAAwATtwAFAgQDAwISAD8%2FEQEzETMxMAEBIwECj%2Fx5jwOHBbb6SgW2AAEAP%2F%2FsBIkFywAmAHFAPx0XHxYWGgsCBwcaJBEEChoXBicoCxcYF05ZCBgFHR4dTlkCHg8eHx4vHgMJAxgeGB4TIiIATFkiBxMOTFkTGQA%2FKwAYPysREgA5ORgvL19eXREzKxEAMxEzKxEAMxESARc5ETMRMzMRMxEzETMxMAEgAyEVIQcVFyEVIRYWMzI3FQYjIgADIzUzJzU3IzUzEgAzMhcHJgMb%2FsFPAf799AICAc%2F%2BQSXLqpyZkqvt%2Ft8uppgCApikJwEk7cmlR6YFNf5tgTlALYG0xUKWQQENAQGBKixQgQEFASRhi1YAAQBoAo0EKQMXAAMAFUAJAgAFBAEAUFkBAC8rERIBOTkxMBM1IRVoA8ECjYqK%2F%2F8AHQAABBwGHwAmAEgAAAAHAEsCtgAA%2F%2F8AHQAABAwGHwAmAEgAAAAHAE4CtgAAAAIAFAJKArQFvAAKABQAPEAfFAULBwMDCQIAAgUDFRYBBQUJDxQfFAIUFAMOBx8DIAA%2FPzMSOS9dMzMRMxESARc5ETMzETMzETMxMAEjFSM1ITUBMxEzITU0Nw4DBwcCtH2R%2Fm4BmIt9%2FvIGBRgeHguoAxTKymUCQ%2F3Nw4ZLDCctLRH2%2F%2F8AHQAABtMGHwAnAEgCsAAAACYASAAAAAcASwVtAAD%2F%2FwAdAAAGwwYfACcASAKwAAAAJgBIAAAABwBOBW0AAP%2F%2FAB0AAAXEBh8AJwBIArYAAAAGAEgAAAABAMkAAAFzBbYAAwARtgAEBQEDABIAPz8REgE5MTAzETMRyaoFtvpKAP%2F%2FAAUAAAGOB3MCJgDXAAABBwBC%2FnwBUgAIswEFBSYAKzX%2F%2FwCzAAACPAdzAiYA1wAAAQcAdf8qAVIACLMBDQUmACs1%2F%2F%2F%2FxwAAAmkHcwImANcAAAEHAMD%2BuwFSAAizARIFJgArNf%2F%2FAAUAAAI4ByUCJgDXAAABBwBp%2FtABUgAKtAIBGQUmACs1NQABAAAA3ACKABYAVgAFAAIAEAAvAFwAAAEOAPgAAwABAAAAHwAfAB8AHwBRAHcA%2FwF7AewCagKDAq4C2QMVA0EDXwN0A5YDrwPxBBoEWwS5BPsFRgWjBcUGNAaRBscG%2BwcbB0QHZAe7CEEIgAjbCRkJVQmKCbgKCAo5CmEKkAquCuwLIwtpC6YL%2BQxGDJkMvQzxDRgNXA2MDbMN3w4DDhwOPw5gDnYOlQ7xD0YPgQ%2FUECEQYRD1ETMRYRGfEd0R9BJMEoYSxxMcE3AToxP1FDUUchSZFOQVFBVNFXkVuxXTFhgWUhZSFoMWzhcgF24XwhfnGGIYmBkUGWEZnBm6GcIaTBpiGpoaphrgGzAbTxuOG74b4BwSHDkcchyqHMAc1RzrHUgdWR1qHXsdjB2eHaod%2BB4EHhUeJh43HkkeoR6yHsMe1B7lHvYfCB82H6Efsh%2FDH9Qf5h%2F3IDkgoCCwIMAg0CDgIPEhAiGNIZkhqSG5Ickh2iHrIfwiDSIfIocilyKnIrcixyLXIugjLiOUI6QjtCPEI9Uj5SQ8JE0kZCTHJUElaiWfJdgl7SYCJh8mPSZFJnQmpSa%2FJt8nAicmJz8ntSfMJ9gn5CgmKDYoRihSKGcoeCiJKJoorAAAAAEAAAABGZq3gNbUXw889QAJCAAAAAAAyTUxiwAAAADJ6ExM%2B5r91QmiCGIAAAAJAAIAAAAAAAAEzQDBAAAAAAQUAAACFAAAAiMAmAM1AIUFKwAzBJMAgwaWAGgF1wBxAcUAhQJeAFICXgA9BGoAVgSTAGgB9gA%2FApMAVAIhAJgC8AAUBJMAZgSTALwEkwBkBJMAXgSTACsEkwCFBJMAdQSTAF4EkwBoBJMAagIhAJgCIQA%2FBJMAaASTAHcEkwBoA28AGwcxAHkFEAAABS8AyQUMAH0F1QDJBHMAyQQhAMkF0wB9BecAyQIj%2F2AE6QDJBCcAyQc5AMkGCADJBjsAfQTRAMkGOwB9BPIAyQRkAGoEbQASBdMAugTDAAAHaAAbBJ4ACAR7AAAEkQBSAqIApgLwABcCogAzBFYAMQOW%2F%2FwEngGJBHMAXgTnALADzwBzBOcAcwR9AHMCtgAdBGIAJwTpALACBgCiAgb%2FkQQzALACBgCwB3EAsATpALAE1QBzBOcAsATnAHMDRACwA9EAagLTAB8E6QCkBAIAAAY5ABcEMQAnBAgAAgO%2BAFIDCAA9BGgB7gMIAEgEkwBoAhQAAAIjAJgEkwC%2BBJMAPwSTAHsEkwAfBGgB7gQhAHsEngE1BqgAZALVAEYD%2BgBSBJMAaAKTAFQGqABkBAD%2F%2BgNtAH8EkwBoAscAMQLHACEEngGJBPQAsAU9AHECIQCYAdEAJQLHAEwDAABCA%2FoAUAY9AEsGPQAuBj0AGgNvADMFEAAABRAAAAUQAAAFEAAABRAAAAUQAAAG%2FP%2F%2BBQwAfQRzAMkEcwDJBHMAyQRzAMkFxwAvBggAyQY7AH0GOwB9BjsAfQY7AH0GOwB9BJMAhQY7AH0F0wC6BdMAugXTALoF0wC6BHsAAATjAMkE%2BgCwBHMAXgRzAF4EcwBeBHMAXgRzAF4EcwBeBt0AXgPPAHMEfQBzBH0AcwR9AHMEfQBzAgb%2F2gIGAKkCBv%2BzAgb%2F7ATFAHEE6QCwBNUAcwTVAHME1QBzBNUAcwTVAHMEkwBoBNUAcwTpAKQE6QCkBOkApATpAKQECAACBOcAsAQIAAICBgCwB2IAfQeJAHEEvAEMBJ4BbwS8AQgEAABSCAAAUgFcABkBXAAZAfYAPwLNABkCzQAZAz0AGQMCAKQCbwBSAm8AUAEK%2FnkEuAA%2FBJMAaAS8AB0EvAAdAscAFAd1AB0HdQAdBW0AHQI7AMkABQCz%2F8cABQABAAAIjf2oAAAJrPua%2FnsJogABAAAAAAAAAAAAAAAAAAAA2AADBLYBkAAFAAgFmgUzAAABHwWaBTMAAAPRAGYB8QgCAgsGBgMFBAICBOAAAu9AACBbAAAAKAAAAAAxQVNDAEAAIP%2F9Bh%2F%2BFACECI0CWCAAAZ8AAAAABEgFtgAAACAAAwAAAAEAAwABAAAADAAEALgAAAAqACAABAAKAEgASQB%2BAMsAzwD%2FATEBUwLGAtoC3CAUIBogHiAiIDogRCB0IKwiEv%2F%2FAAAAIABJAEoAoADMANABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrCIS%2F%2F%2F%2F4wCO%2F%2BL%2FwQAM%2F73%2FjP9s%2Ffr95%2F3m4LDgreCs4Kngk%2BCK4F%2FgI96%2BAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAR1taWVhVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjUxMC8uLSwoJyYlJCMiIR8YFBEQDw4NCwoJCAcGBQQDAgEALCCwAWBFsAMlIBFGYSNFI2FILSwgRRhoRC0sRSNGYLAgYSCwRmCwBCYjSEgtLEUjRiNhsCBgILAmYbAgYbAEJiNISC0sRSNGYLBAYSCwZmCwBCYjSEgtLEUjRiNhsEBgILAmYbBAYbAEJiNISC0sARAgPAA8LSwgRSMgsM1EIyC4AVpRWCMgsI1EI1kgsO1RWCMgsE1EI1kgsAQmUVgjILANRCNZISEtLCAgRRhoRCCwAWAgRbBGdmiKRWBELSwBsQsKQyNDZQotLACxCgtDI0MLLSwAsCgjcLEBKD4BsCgjcLECKEU6sQIACA0tLCBFsAMlRWFksFBRWEVEGyEhWS0sSbAOI0QtLCBFsABDYEQtLAGwBkOwB0NlCi0sIGmwQGGwAIsgsSzAioy4EABiYCsMZCNkYVxYsANhWS0sigNFioqHsBErsCkjRLApeuQYLSxFZbAsI0RFsCsjRC0sS1JYRUQbISFZLSxLUVhFRBshIVktLAGwBSUQIyCK9QCwAWAj7ewtLAGwBSUQIyCK9QCwAWEj7ewtLAGwBiUQ9QDt7C0ssAJDsAFSWCEhISEhG0YjRmCKikYjIEaKYIphuP%2BAYiMgECOKsQwMinBFYCCwAFBYsAFhuP%2B6ixuwRoxZsBBgaAE6WS0sIEWwAyVGUkuwE1FbWLACJUYgaGGwAyWwAyU%2FIyE4GyERWS0sIEWwAyVGUFiwAiVGIGhhsAMlsAMlPyMhOBshEVktLACwB0OwBkMLLSwhIQxkI2SLuEAAYi0sIbCAUVgMZCNki7ggAGIbsgBALytZsAJgLSwhsMBRWAxkI2SLuBVVYhuyAIAvK1mwAmAtLAxkI2SLuEAAYmAjIS0sS1NYirAEJUlkI0VpsECLYbCAYrAgYWqwDiNEIxCwDvYbISOKEhEgOS9ZLSxLU1ggsAMlSWRpILAFJrAGJUlkI2GwgGKwIGFqsA4jRLAEJhCwDvaKELAOI0SwDvawDiNEsA7tG4qwBCYREiA5IyA5Ly9ZLSxFI0VgI0VgI0VgI3ZoGLCAYiAtLLBIKy0sIEWwAFRYsEBEIEWwQGFEGyEhWS0sRbEwL0UjRWFgsAFgaUQtLEtRWLAvI3CwFCNCGyEhWS0sS1FYILADJUVpU1hEGyEhWRshIVktLEWwFEOwAGBjsAFgaUQtLLAvRUQtLEUjIEWKYEQtLEUjRWBELSxLI1FYuQAz%2F%2BCxNCAbszMANABZREQtLLAWQ1iwAyZFilhkZrAfYBtksCBgZiBYGyGwQFmwAWFZI1hlWbApI0QjELAp4BshISEhIVktLLACQ1RYS1MjS1FaWDgbISFZGyEhISFZLSywFkNYsAQlRWSwIGBmIFgbIbBAWbABYSNYG2VZsCkjRLAFJbAIJQggWAIbA1mwBCUQsAUlIEawBCUjQjywBCWwByUIsAclELAGJSBGsAQlsAFgI0I8IFgBGwBZsAQlELAFJbAp4LApIEVlRLAHJRCwBiWwKeCwBSWwCCUIIFgCGwNZsAUlsAMlQ0iwBCWwByUIsAYlsAMlsAFgQ0gbIVkhISEhISEhLSwCsAQlICBGsAQlI0KwBSUIsAMlRUghISEhLSwCsAMlILAEJQiwAiVDSCEhIS0sRSMgRRggsABQIFgjZSNZI2ggsEBQWCGwQFkjWGVZimBELSxLUyNLUVpYIEWKYEQbISFZLSxLVFggRYpgRBshIVktLEtTI0tRWlg4GyEhWS0ssAAhS1RYOBshIVktLLACQ1RYsEYrGyEhISFZLSywAkNUWLBHKxshISFZLSywAkNUWLBIKxshISEhWS0ssAJDVFiwSSsbISEhWS0sIIoII0tTiktRWlgjOBshIVktLACwAiVJsABTWCCwQDgRGyFZLSwBRiNGYCNGYSMgECBGimG4%2F4BiirFAQIpwRWBoOi0sIIojSWSKI1NYPBshWS0sS1JYfRt6WS0ssBIASwFLVEItLLECAEKxIwGIUbFAAYhTWli5EAAAIIhUWLICAQJDYEJZsSQBiFFYuSAAAECIVFiyAgICQ2BCsSQBiFRYsgIgAkNgQgBLAUtSWLICCAJDYEJZG7lAAACAiFRYsgIEAkNgQlm5QAAAgGO4AQCIVFiyAggCQ2BCWblAAAEAY7gCAIhUWLICEAJDYEJZsSYBiFFYuUAAAgBjuAQAiFRYsgJAAkNgQlm5QAAEAGO4CACIVFiyAoACQ2BCWVlZWVlZsQACQ1RYQAoFQAhACUAMAg0CG7EBAkNUWLIFQAi6AQAACQEAswwBDQEbsYACQ1JYsgVACLgBgLEJQBuyBUAIugGAAAkBQFm5QAAAgIhVuUAAAgBjuAQAiFVaWLMMAA0BG7MMAA0BWVlZQkJCQkItLEUYaCNLUVgjIEUgZLBAUFh8WWiKYFlELSywABawAiWwAiUBsAEjPgCwAiM%2BsQECBgywCiNlQrALI0IBsAEjPwCwAiM%2FsQECBgywBiNlQrAHI0KwARYBLSywgLACQ1CwAbACQ1RbWCEjELAgGskbihDtWS0ssFkrLSyKEOUtQJkJIUggVSABHlUfSANVHx4BDx4%2FHq8eA01LJh9MSzMfS0YlHyY0EFUlMyRVGRP%2FHwcE%2Fx8GA%2F8fSkkzH0lGJR8TMxJVBQEDVQQzA1UfAwEPAz8DrwMDR0YZH%2BtGASMzIlUcMxtVFjMVVREBD1UQMw9VDw9PDwIfD88PAg8P%2Fw8CBgIBAFUBMwBVbwB%2FAK8A7wAEEAABgBYBBQG4AZCxVFMrK0u4B%2F9SS7AJUFuwAYiwJVOwAYiwQFFasAaIsABVWltYsQEBjlmFjY0AQh1LsDJTWLAgHVlLsGRTWLAQHbEWAEJZc3MrK15zdHUrKysrK3Qrc3QrKysrKysrKysrKysrc3QrKysYXgAAAAYUABcATgW2ABcAdQW2Bc0AAAAAAAAAAAAAAAAAAARIABQAkQAA%2F%2BwAAAAA%2F%2BwAAAAA%2F%2BwAAP4U%2F%2BwAAAW2ABP8lP%2Ft%2FoX%2F6v6p%2F%2BwAGP68AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAIsAgQDdAJgAjwCOAJkAiACBAQ8AigAAAAAAAQAAHowAAQUVGAAACgZ%2BAAUAJP9xAAUANgApAAUAOAApAAUAOQApAAUAOwAUAAUAQ%2F%2BuAAUARf%2BFAAUARv%2BFAAUAR%2F%2BFAAUASf%2FDAAUAT%2F%2FDAAUAUP%2FDAAUAUf%2BFAAUAUv%2FDAAUAU%2F%2BFAAUAVP%2FDAAUAVf%2FDAAUAV%2F%2FDAAUAgf9xAAUAgv9xAAUAg%2F9xAAUAhP9xAAUAhf9xAAUAhv9xAAUAmgAUAAUAnf%2BFAAUAnv%2BuAAUAn%2F%2BuAAUAoP%2BuAAUAof%2BuAAUAov%2BuAAUAo%2F%2BuAAUApP%2BFAAUApf%2BFAAUApv%2BFAAUAp%2F%2BFAAUAqP%2BFAAUAr%2F%2BFAAUAsP%2BFAAUAsf%2BFAAUAsv%2BFAAUAs%2F%2BFAAUAtf%2BFAAUAtv%2FDAAUAt%2F%2FDAAUAuP%2FDAAUAuf%2FDAAUAv%2F%2BFAAoAJP9xAAoANgApAAoAOAApAAoAOQApAAoAOwAUAAoAQ%2F%2BuAAoARf%2BFAAoARv%2BFAAoAR%2F%2BFAAoASf%2FDAAoAT%2F%2FDAAoAUP%2FDAAoAUf%2BFAAoAUv%2FDAAoAU%2F%2BFAAoAVP%2FDAAoAVf%2FDAAoAV%2F%2FDAAoAgf9xAAoAgv9xAAoAg%2F9xAAoAhP9xAAoAhf9xAAoAhv9xAAoAmgAUAAoAnf%2BFAAoAnv%2BuAAoAn%2F%2BuAAoAoP%2BuAAoAof%2BuAAoAov%2BuAAoAo%2F%2BuAAoApP%2BFAAoApf%2BFAAoApv%2BFAAoAp%2F%2BFAAoAqP%2BFAAoAr%2F%2BFAAoAsP%2BFAAoAsf%2BFAAoAsv%2BFAAoAs%2F%2BFAAoAtf%2BFAAoAtv%2FDAAoAt%2F%2FDAAoAuP%2FDAAoAuf%2FDAAoAv%2F%2BFAAsALAC4AA8AJv%2BaAA8AKv%2BaAA8AMf%2BaAA8AM%2F%2BaAA8ANv9xAA8AN%2F%2FXAA8AOP%2BFAA8AOf%2BFAA8AO%2F%2BFAA8AiP%2BaAA8Aj%2F%2BaAA8AkP%2BaAA8Akf%2BaAA8Akv%2BaAA8Ak%2F%2BaAA8Alf%2BaAA8Alv%2FXAA8Al%2F%2FXAA8AmP%2FXAA8Amf%2FXAA8Amv%2BFAA8Avv%2BaABAANv%2BuABEAJv%2BaABEAKv%2BaABEAMf%2BaABEAM%2F%2BaABEANv9xABEAN%2F%2FXABEAOP%2BFABEAOf%2BFABEAO%2F%2BFABEAiP%2BaABEAj%2F%2BaABEAkP%2BaABEAkf%2BaABEAkv%2BaABEAk%2F%2BaABEAlf%2BaABEAlv%2FXABEAl%2F%2FXABEAmP%2FXABEAmf%2FXABEAmv%2BFABEAvv%2BaACQABf9xACQACv9xACQAJv%2FXACQAKv%2FXACQALAEKACQAMf%2FXACQAM%2F%2FXACQANv9xACQAOP%2BuACQAOf%2BuACQAO%2F%2BFACQAiP%2FXACQAj%2F%2FXACQAkP%2FXACQAkf%2FXACQAkv%2FXACQAk%2F%2FXACQAlf%2FXACQAmv%2BFACQAvv%2FXACQAxv9xACQAyf9xACUAD%2F%2BuACUAEf%2BuACUAJP%2FXACUANv%2FDACUAOP%2FsACUAOf%2FsACUAOv%2FXACUAO%2F%2FsACUAPP%2FsACUAgf%2FXACUAgv%2FXACUAg%2F%2FXACUAhP%2FXACUAhf%2FXACUAhv%2FXACUAmv%2FsACUAx%2F%2BuACUAyv%2BuACYAJv%2FXACYAKv%2FXACYAMf%2FXACYAM%2F%2FXACYAiP%2FXACYAj%2F%2FXACYAkP%2FXACYAkf%2FXACYAkv%2FXACYAk%2F%2FXACYAlf%2FXACYAvv%2FXACcAD%2F%2BuACcAEf%2BuACcAJP%2FXACcANv%2FDACcAOP%2FsACcAOf%2FsACcAOv%2FXACcAO%2F%2FsACcAPP%2FsACcAgf%2FXACcAgv%2FXACcAg%2F%2FXACcAhP%2FXACcAhf%2FXACcAhv%2FXACcAmv%2FsACcAx%2F%2BuACcAyv%2BuACgALAB7ACkAD%2F%2BFACkAEf%2BFACkAIgApACkAJP%2FXACkAgf%2FXACkAgv%2FXACkAg%2F%2FXACkAhP%2FXACkAhf%2FXACkAhv%2FXACkAx%2F%2BFACkAyv%2BFAC0AJv%2FXAC0AKv%2FXAC0AMf%2FXAC0AM%2F%2FXAC0AiP%2FXAC0Aj%2F%2FXAC0AkP%2FXAC0Akf%2FXAC0Akv%2FXAC0Ak%2F%2FXAC0Alf%2FXAC0Avv%2FXAC4ABf9cAC4ACv9cAC4AJv%2FXAC4AKv%2FXAC4AMf%2FXAC4AM%2F%2FXAC4ANv%2FXAC4AN%2F%2FsAC4AOP%2FXAC4AOf%2FXAC4AO%2F%2FDAC4AiP%2FXAC4Aj%2F%2FXAC4AkP%2FXAC4Akf%2FXAC4Akv%2FXAC4Ak%2F%2FXAC4Alf%2FXAC4Alv%2FsAC4Al%2F%2FsAC4AmP%2FsAC4Amf%2FsAC4Amv%2FDAC4Avv%2FXAC4Axv9cAC4Ayf9cADEAD%2F%2BuADEAEf%2BuADEAJP%2FXADEANv%2FDADEAOP%2FsADEAOf%2FsADEAOv%2FXADEAO%2F%2FsADEAPP%2FsADEAgf%2FXADEAgv%2FXADEAg%2F%2FXADEAhP%2FXADEAhf%2FXADEAhv%2FXADEAmv%2FsADEAx%2F%2BuADEAyv%2BuADIAD%2F72ADIAEf72ADIAJP%2BaADIAOv%2FXADIAPP%2FsADIAgf%2BaADIAgv%2BaADIAg%2F%2BaADIAhP%2BaADIAhf%2BaADIAhv%2BaADIAx%2F72ADIAyv72ADMAD%2F%2BuADMAEf%2BuADMAJP%2FXADMANv%2FDADMAOP%2FsADMAOf%2FsADMAOv%2FXADMAO%2F%2FsADMAPP%2FsADMAgf%2FXADMAgv%2FXADMAg%2F%2FXADMAhP%2FXADMAhf%2FXADMAhv%2FXADMAmv%2FsADMAx%2F%2BuADMAyv%2BuADYAD%2F%2BFADYAEP%2BuADYAEf%2BFADYAIgApADYAJP9xADYAJv%2FXADYAKv%2FXADYAMf%2FXADYAM%2F%2FXADYANgApADYAQ%2F9cADYARf9xADYARv9xADYAR%2F9xADYASf9xADYAT%2F%2BaADYAUP%2BaADYAUf9xADYAUv%2BaADYAU%2F9xADYAVP%2BaADYAVf%2BFADYAV%2F%2BaADYAWP%2FXADYAWf%2FXADYAWv%2FXADYAW%2F%2FXADYAXP%2BuADYAgf9xADYAgv9xADYAg%2F9xADYAhP9xADYAhf9xADYAhv9xADYAiP%2FXADYAj%2F%2FXADYAkP%2FXADYAkf%2FXADYAkv%2FXADYAk%2F%2FXADYAlf%2FXADYAnf9xADYAnv9cADYAn%2F9cADYAoP9cADYAof9cADYAov9cADYAo%2F9cADYApP9xADYApf9xADYApv9xADYAp%2F9xADYAqP9xADYAr%2F9xADYAsP9xADYAsf9xADYAsv9xADYAs%2F9xADYAtf9xADYAtv%2BaADYAt%2F%2BaADYAuP%2BaADYAuf%2BaADYAuv%2FXADYAvv%2FXADYAv%2F9xADYAw%2F%2BuADYAxP%2BuADYAx%2F%2BFADYAyv%2BFADcAD%2F%2FXADcAEf%2FXADcAJP%2FsADcAgf%2FsADcAgv%2FsADcAg%2F%2FsADcAhP%2FsADcAhf%2FsADcAhv%2FsADcAx%2F%2FXADcAyv%2FXADgAD%2F%2BaADgAEf%2BaADgAIgApADgAJP%2BuADgAJv%2FsADgAKv%2FsADgAMf%2FsADgAM%2F%2FsADgAQ%2F%2FXADgARf%2FXADgARv%2FXADgAR%2F%2FXADgASf%2FsADgAT%2F%2FsADgAUP%2FsADgAUf%2FXADgAUv%2FsADgAU%2F%2FXADgAVP%2FsADgAVf%2FsADgAV%2F%2FsADgAgf%2BuADgAgv%2BuADgAg%2F%2BuADgAhP%2BuADgAhf%2BuADgAhv%2BuADgAiP%2FsADgAj%2F%2FsADgAkP%2FsADgAkf%2FsADgAkv%2FsADgAk%2F%2FsADgAlf%2FsADgAnf%2FXADgAnv%2FXADgAn%2F%2FXADgAoP%2FXADgAof%2FXADgAov%2FXADgAo%2F%2FXADgApP%2FXADgApf%2FXADgApv%2FXADgAp%2F%2FXADgAqP%2FXADgAr%2F%2FXADgAsP%2FXADgAsf%2FXADgAsv%2FXADgAs%2F%2FXADgAtf%2FXADgAtv%2FsADgAt%2F%2FsADgAuP%2FsADgAuf%2FsADgAvv%2FsADgAv%2F%2FXADgAx%2F%2BaADgAyv%2BaADkAD%2F%2BaADkAEf%2BaADkAIgApADkAJP%2BuADkAJv%2FsADkAKv%2FsADkAMf%2FsADkAM%2F%2FsADkAQ%2F%2FXADkARf%2FXADkARv%2FXADkAR%2F%2FXADkASf%2FsADkAT%2F%2FsADkAUP%2FsADkAUf%2FXADkAUv%2FsADkAU%2F%2FXADkAVP%2FsADkAVf%2FsADkAV%2F%2FsADkAgf%2BuADkAgv%2BuADkAg%2F%2BuADkAhP%2BuADkAhf%2BuADkAhv%2BuADkAiP%2FsADkAj%2F%2FsADkAkP%2FsADkAkf%2FsADkAkv%2FsADkAk%2F%2FsADkAlf%2FsADkAnf%2FXADkAnv%2FXADkAn%2F%2FXADkAoP%2FXADkAof%2FXADkAov%2FXADkAo%2F%2FXADkApP%2FXADkApf%2FXADkApv%2FXADkAp%2F%2FXADkAqP%2FXADkAr%2F%2FXADkAsP%2FXADkAsf%2FXADkAsv%2FXADkAs%2F%2FXADkAtf%2FXADkAtv%2FsADkAt%2F%2FsADkAuP%2FsADkAuf%2FsADkAvv%2FsADkAv%2F%2FXADkAx%2F%2BaADkAyv%2BaADoAJv%2FXADoAKv%2FXADoAMf%2FXADoAM%2F%2FXADoAiP%2FXADoAj%2F%2FXADoAkP%2FXADoAkf%2FXADoAkv%2FXADoAk%2F%2FXADoAlf%2FXADoAvv%2FXADsAD%2F%2BFADsAEf%2BFADsAIgApADsAJP%2BFADsAJv%2FXADsAKv%2FXADsAMf%2FXADsAM%2F%2FXADsAQ%2F%2BaADsARf%2BaADsARv%2BaADsAR%2F%2BaADsASf%2FXADsAT%2F%2FDADsAUP%2FDADsAUf%2BaADsAUv%2FDADsAU%2F%2BaADsAVP%2FDADsAVf%2BuADsAV%2F%2FDADsAXP%2FXADsAgf%2BFADsAgv%2BFADsAg%2F%2BFADsAhP%2BFADsAhf%2BFADsAhv%2BFADsAiP%2FXADsAj%2F%2FXADsAkP%2FXADsAkf%2FXADsAkv%2FXADsAk%2F%2FXADsAlf%2FXADsAnf%2BaADsAnv%2BaADsAn%2F%2BaADsAoP%2BaADsAof%2BaADsAov%2BaADsAo%2F%2BaADsApP%2BaADsApf%2BaADsApv%2BaADsAp%2F%2BaADsAqP%2BaADsAr%2F%2BaADsAsP%2BaADsAsf%2BaADsAsv%2BaADsAs%2F%2BaADsAtf%2BaADsAtv%2FDADsAt%2F%2FDADsAuP%2FDADsAuf%2FDADsAvv%2FXADsAv%2F%2BaADsAx%2F%2BFADsAyv%2BFADwAJv%2FsADwAKv%2FsADwAMf%2FsADwAM%2F%2FsADwAiP%2FsADwAj%2F%2FsADwAkP%2FsADwAkf%2FsADwAkv%2FsADwAk%2F%2FsADwAlf%2FsADwAvv%2FsAD0ALAC4AEMABf%2FsAEMACv%2FsAEMAxv%2FsAEMAyf%2FsAEQABf%2FsAEQACv%2FsAEQAWP%2FXAEQAWf%2FXAEQAWv%2FXAEQAW%2F%2FXAEQAXP%2FsAEQAuv%2FXAEQAxv%2FsAEQAyf%2FsAEUABQApAEUACgApAEUAxgApAEUAyQApAEcABf%2FsAEcACv%2FsAEcAWP%2FXAEcAWf%2FXAEcAWv%2FXAEcAW%2F%2FXAEcAXP%2FsAEcAuv%2FXAEcAxv%2FsAEcAyf%2FsAEgABQB7AEgACgB7AEgAxgB7AEgAyQB7AEoABf%2FsAEoACv%2FsAEoAxv%2FsAEoAyf%2FsAE0ARf%2FXAE0ARv%2FXAE0AR%2F%2FXAE0AUf%2FXAE0AU%2F%2FXAE0Anf%2FXAE0ApP%2FXAE0Apf%2FXAE0Apv%2FXAE0Ap%2F%2FXAE0AqP%2FXAE0Ar%2F%2FXAE0AsP%2FXAE0Asf%2FXAE0Asv%2FXAE0As%2F%2FXAE0Atf%2FXAE0Av%2F%2FXAE8ABf%2FsAE8ACv%2FsAE8Axv%2FsAE8Ayf%2FsAFAABf%2FsAFAACv%2FsAFAAxv%2FsAFAAyf%2FsAFEABf%2FsAFEACv%2FsAFEAWP%2FXAFEAWf%2FXAFEAWv%2FXAFEAW%2F%2FXAFEAXP%2FsAFEAuv%2FXAFEAxv%2FsAFEAyf%2FsAFIABf%2FsAFIACv%2FsAFIAWP%2FXAFIAWf%2FXAFIAWv%2FXAFIAW%2F%2FXAFIAXP%2FsAFIAuv%2FXAFIAxv%2FsAFIAyf%2FsAFQABQBSAFQACgBSAFQAQ%2F%2FXAFQARf%2FXAFQARv%2FXAFQAR%2F%2FXAFQASf%2FsAFQAUf%2FXAFQAU%2F%2FXAFQAnf%2FXAFQAnv%2FXAFQAn%2F%2FXAFQAoP%2FXAFQAof%2FXAFQAov%2FXAFQAo%2F%2FXAFQApP%2FXAFQApf%2FXAFQApv%2FXAFQAp%2F%2FXAFQAqP%2FXAFQAr%2F%2FXAFQAsP%2FXAFQAsf%2FXAFQAsv%2FXAFQAs%2F%2FXAFQAtf%2FXAFQAv%2F%2FXAFQAxgBSAFQAyQBSAFYABQApAFYACgApAFYAxgApAFYAyQApAFgABQBSAFgACgBSAFgAD%2F%2BuAFgAEf%2BuAFgAIgApAFgAxgBSAFgAx%2F%2BuAFgAyQBSAFgAyv%2BuAFkABQBSAFkACgBSAFkAD%2F%2BuAFkAEf%2BuAFkAIgApAFkAxgBSAFkAx%2F%2BuAFkAyQBSAFkAyv%2BuAFoARf%2FXAFoARv%2FXAFoAR%2F%2FXAFoAUf%2FXAFoAU%2F%2FXAFoAnf%2FXAFoApP%2FXAFoApf%2FXAFoApv%2FXAFoAp%2F%2FXAFoAqP%2FXAFoAr%2F%2FXAFoAsP%2FXAFoAsf%2FXAFoAsv%2FXAFoAs%2F%2FXAFoAtf%2FXAFoAv%2F%2FXAFsABQBSAFsACgBSAFsAD%2F%2BuAFsAEf%2BuAFsAIgApAFsAxgBSAFsAx%2F%2BuAFsAyQBSAFsAyv%2BuAF0ALAC4AIEABf9xAIEACv9xAIEAJv%2FXAIEAKv%2FXAIEALAEKAIEAMf%2FXAIEAM%2F%2FXAIEANv9xAIEAOP%2BuAIEAOf%2BuAIEAO%2F%2BFAIEAiP%2FXAIEAj%2F%2FXAIEAkP%2FXAIEAkf%2FXAIEAkv%2FXAIEAk%2F%2FXAIEAlf%2FXAIEAmv%2BFAIEAvv%2FXAIEAxv9xAIEAyf9xAIIABf9xAIIACv9xAIIAJv%2FXAIIAKv%2FXAIIALAEKAIIAMf%2FXAIIAM%2F%2FXAIIANv9xAIIAOP%2BuAIIAOf%2BuAIIAO%2F%2BFAIIAiP%2FXAIIAj%2F%2FXAIIAkP%2FXAIIAkf%2FXAIIAkv%2FXAIIAk%2F%2FXAIIAlf%2FXAIIAmv%2BFAIIAvv%2FXAIIAxv9xAIIAyf9xAIMABf9xAIMACv9xAIMAJv%2FXAIMAKv%2FXAIMALAEKAIMAMf%2FXAIMAM%2F%2FXAIMANv9xAIMAOP%2BuAIMAOf%2BuAIMAO%2F%2BFAIMAiP%2FXAIMAj%2F%2FXAIMAkP%2FXAIMAkf%2FXAIMAkv%2FXAIMAk%2F%2FXAIMAlf%2FXAIMAmv%2BFAIMAvv%2FXAIMAxv9xAIMAyf9xAIQABf9xAIQACv9xAIQAJv%2FXAIQAKv%2FXAIQALAEKAIQAMf%2FXAIQAM%2F%2FXAIQANv9xAIQAOP%2BuAIQAOf%2BuAIQAO%2F%2BFAIQAiP%2FXAIQAj%2F%2FXAIQAkP%2FXAIQAkf%2FXAIQAkv%2FXAIQAk%2F%2FXAIQAlf%2FXAIQAmv%2BFAIQAvv%2FXAIQAxv9xAIQAyf9xAIUABf9xAIUACv9xAIUAJv%2FXAIUAKv%2FXAIUALAEKAIUAMf%2FXAIUAM%2F%2FXAIUANv9xAIUAOP%2BuAIUAOf%2BuAIUAO%2F%2BFAIUAiP%2FXAIUAj%2F%2FXAIUAkP%2FXAIUAkf%2FXAIUAkv%2FXAIUAk%2F%2FXAIUAlf%2FXAIUAmv%2BFAIUAvv%2FXAIUAxv9xAIUAyf9xAIYABf9xAIYACv9xAIYAJv%2FXAIYAKv%2FXAIYALAEKAIYAMf%2FXAIYAM%2F%2FXAIYANv9xAIYAOP%2BuAIYAOf%2BuAIYAO%2F%2BFAIYAiP%2FXAIYAj%2F%2FXAIYAkP%2FXAIYAkf%2FXAIYAkv%2FXAIYAk%2F%2FXAIYAlf%2FXAIYAmv%2BFAIYAvv%2FXAIYAxv9xAIYAyf9xAIcALAB7AIgAJv%2FXAIgAKv%2FXAIgAMf%2FXAIgAM%2F%2FXAIgAiP%2FXAIgAj%2F%2FXAIgAkP%2FXAIgAkf%2FXAIgAkv%2FXAIgAk%2F%2FXAIgAlf%2FXAIgAvv%2FXAIkALAB7AIoALAB7AIsALAB7AIwALAB7AI0AD%2F%2BuAI0AEf%2BuAI0AJP%2FXAI0ANv%2FDAI0AOP%2FsAI0AOf%2FsAI0AOv%2FXAI0AO%2F%2FsAI0APP%2FsAI0Agf%2FXAI0Agv%2FXAI0Ag%2F%2FXAI0AhP%2FXAI0Ahf%2FXAI0Ahv%2FXAI0Amv%2FsAI0Ax%2F%2BuAI0Ayv%2BuAI8AD%2F%2BuAI8AEf%2BuAI8AJP%2FXAI8ANv%2FDAI8AOP%2FsAI8AOf%2FsAI8AOv%2FXAI8AO%2F%2FsAI8APP%2FsAI8Agf%2FXAI8Agv%2FXAI8Ag%2F%2FXAI8AhP%2FXAI8Ahf%2FXAI8Ahv%2FXAI8Amv%2FsAI8Ax%2F%2BuAI8Ayv%2BuAJAAD%2F%2BuAJAAEf%2BuAJAAJP%2FXAJAANv%2FDAJAAOP%2FsAJAAOf%2FsAJAAOv%2FXAJAAO%2F%2FsAJAAPP%2FsAJAAgf%2FXAJAAgv%2FXAJAAg%2F%2FXAJAAhP%2FXAJAAhf%2FXAJAAhv%2FXAJAAmv%2FsAJAAx%2F%2BuAJAAyv%2BuAJEAD%2F%2BuAJEAEf%2BuAJEAJP%2FXAJEANv%2FDAJEAOP%2FsAJEAOf%2FsAJEAOv%2FXAJEAO%2F%2FsAJEAPP%2FsAJEAgf%2FXAJEAgv%2FXAJEAg%2F%2FXAJEAhP%2FXAJEAhf%2FXAJEAhv%2FXAJEAmv%2FsAJEAx%2F%2BuAJEAyv%2BuAJIAD%2F%2BuAJIAEf%2BuAJIAJP%2FXAJIANv%2FDAJIAOP%2FsAJIAOf%2FsAJIAOv%2FXAJIAO%2F%2FsAJIAPP%2FsAJIAgf%2FXAJIAgv%2FXAJIAg%2F%2FXAJIAhP%2FXAJIAhf%2FXAJIAhv%2FXAJIAmv%2FsAJIAx%2F%2BuAJIAyv%2BuAJMAD%2F%2BuAJMAEf%2BuAJMAJP%2FXAJMANv%2FDAJMAOP%2FsAJMAOf%2FsAJMAOv%2FXAJMAO%2F%2FsAJMAPP%2FsAJMAgf%2FXAJMAgv%2FXAJMAg%2F%2FXAJMAhP%2FXAJMAhf%2FXAJMAhv%2FXAJMAmv%2FsAJMAx%2F%2BuAJMAyv%2BuAJUAD%2F%2BuAJUAEf%2BuAJUAJP%2FXAJUANv%2FDAJUAOP%2FsAJUAOf%2FsAJUAOv%2FXAJUAO%2F%2FsAJUAPP%2FsAJUAgf%2FXAJUAgv%2FXAJUAg%2F%2FXAJUAhP%2FXAJUAhf%2FXAJUAhv%2FXAJUAmv%2FsAJUAx%2F%2BuAJUAyv%2BuAJYAD%2F%2FXAJYAEf%2FXAJYAJP%2FsAJYAgf%2FsAJYAgv%2FsAJYAg%2F%2FsAJYAhP%2FsAJYAhf%2FsAJYAhv%2FsAJYAx%2F%2FXAJYAyv%2FXAJcAD%2F%2FXAJcAEf%2FXAJcAJP%2FsAJcAgf%2FsAJcAgv%2FsAJcAg%2F%2FsAJcAhP%2FsAJcAhf%2FsAJcAhv%2FsAJcAx%2F%2FXAJcAyv%2FXAJgAD%2F%2FXAJgAEf%2FXAJgAJP%2FsAJgAgf%2FsAJgAgv%2FsAJgAg%2F%2FsAJgAhP%2FsAJgAhf%2FsAJgAhv%2FsAJgAx%2F%2FXAJgAyv%2FXAJkAD%2F%2FXAJkAEf%2FXAJkAJP%2FsAJkAgf%2FsAJkAgv%2FsAJkAg%2F%2FsAJkAhP%2FsAJkAhf%2FsAJkAhv%2FsAJkAx%2F%2FXAJkAyv%2FXAJoAD%2F%2BFAJoAEf%2BFAJoAIgApAJoAJP%2BFAJoAJv%2FXAJoAKv%2FXAJoAMf%2FXAJoAM%2F%2FXAJoAQ%2F%2BaAJoARf%2BaAJoARv%2BaAJoAR%2F%2BaAJoASf%2FXAJoAT%2F%2FDAJoAUP%2FDAJoAUf%2BaAJoAUv%2FDAJoAU%2F%2BaAJoAVP%2FDAJoAVf%2BuAJoAV%2F%2FDAJoAXP%2FXAJoAgf%2BFAJoAgv%2BFAJoAg%2F%2BFAJoAhP%2BFAJoAhf%2BFAJoAhv%2BFAJoAiP%2FXAJoAj%2F%2FXAJoAkP%2FXAJoAkf%2FXAJoAkv%2FXAJoAk%2F%2FXAJoAlf%2FXAJoAnf%2BaAJoAnv%2BaAJoAn%2F%2BaAJoAoP%2BaAJoAof%2BaAJoAov%2BaAJoAo%2F%2BaAJoApP%2BaAJoApf%2BaAJoApv%2BaAJoAp%2F%2BaAJoAqP%2BaAJoAr%2F%2BaAJoAsP%2BaAJoAsf%2BaAJoAsv%2BaAJoAs%2F%2BaAJoAtf%2BaAJoAtv%2FDAJoAt%2F%2FDAJoAuP%2FDAJoAuf%2FDAJoAvv%2FXAJoAv%2F%2BaAJoAx%2F%2BFAJoAyv%2BFAJsAD%2F72AJsAEf72AJsAJP%2BaAJsAOv%2FXAJsAPP%2FsAJsAgf%2BaAJsAgv%2BaAJsAg%2F%2BaAJsAhP%2BaAJsAhf%2BaAJsAhv%2BaAJsAx%2F72AJsAyv72AJ0ABf%2FsAJ0ACv%2FsAJ0Axv%2FsAJ0Ayf%2FsAJ4ABf%2FsAJ4ACv%2FsAJ4Axv%2FsAJ4Ayf%2FsAJ8ABf%2FsAJ8ACv%2FsAJ8Axv%2FsAJ8Ayf%2FsAKAABf%2FsAKAACv%2FsAKAAxv%2FsAKAAyf%2FsAKEABf%2FsAKEACv%2FsAKEAxv%2FsAKEAyf%2FsAKIABf%2FsAKIACv%2FsAKIAxv%2FsAKIAyf%2FsAKUABf%2FsAKUACv%2FsAKUAWP%2FXAKUAWf%2FXAKUAWv%2FXAKUAW%2F%2FXAKUAXP%2FsAKUAuv%2FXAKUAxv%2FsAKUAyf%2FsAKYABf%2FsAKYACv%2FsAKYAWP%2FXAKYAWf%2FXAKYAWv%2FXAKYAW%2F%2FXAKYAXP%2FsAKYAuv%2FXAKYAxv%2FsAKYAyf%2FsAKcABf%2FsAKcACv%2FsAKcAWP%2FXAKcAWf%2FXAKcAWv%2FXAKcAW%2F%2FXAKcAXP%2FsAKcAuv%2FXAKcAxv%2FsAKcAyf%2FsAKgABf%2FsAKgACv%2FsAKgAWP%2FXAKgAWf%2FXAKgAWv%2FXAKgAW%2F%2FXAKgAXP%2FsAKgAuv%2FXAKgAxv%2FsAKgAyf%2FsAK0ABf%2FsAK0ACv%2FsAK0AWP%2FXAK0AWf%2FXAK0AWv%2FXAK0AW%2F%2FXAK0AXP%2FsAK0Auv%2FXAK0Axv%2FsAK0Ayf%2FsAK8ABf%2FsAK8ACv%2FsAK8AWP%2FXAK8AWf%2FXAK8AWv%2FXAK8AW%2F%2FXAK8AXP%2FsAK8Auv%2FXAK8Axv%2FsAK8Ayf%2FsALAABf%2FsALAACv%2FsALAAWP%2FXALAAWf%2FXALAAWv%2FXALAAW%2F%2FXALAAXP%2FsALAAuv%2FXALAAxv%2FsALAAyf%2FsALEABf%2FsALEACv%2FsALEAWP%2FXALEAWf%2FXALEAWv%2FXALEAW%2F%2FXALEAXP%2FsALEAuv%2FXALEAxv%2FsALEAyf%2FsALMABf%2FXALMACv%2FXALMAxv%2FXALMAyf%2FXALUABf%2FsALUACv%2FsALUAWP%2FXALUAWf%2FXALUAWv%2FXALUAW%2F%2FXALUAXP%2FsALUAuv%2FXALUAxv%2FsALUAyf%2FsALoABQBSALoACgBSALoAD%2F%2BuALoAEf%2BuALoAIgApALoAxgBSALoAx%2F%2BuALoAyQBSALoAyv%2BuALsABf%2FsALsACv%2FsALsAWP%2FXALsAWf%2FXALsAWv%2FXALsAW%2F%2FXALsAXP%2FsALsAuv%2FXALsAxv%2FsALsAyf%2FsALwABQBSALwACgBSALwAD%2F%2BuALwAEf%2BuALwAIgApALwAxgBSALwAx%2F%2BuALwAyQBSALwAyv%2BuAL4ALAB7AAAABwBaAAMAAQQJAAEAEgAAAAMAAQQJAAIADgASAAMAAQQJAAMAPAAgAAMAAQQJAAQAEgAAAAMAAQQJAAUAGABcAAMAAQQJAAYAEAB0AAMAAQQJAA4AVACEAE8AcABlAG4AIABTAGEAbgBzAFIAZQBnAHUAbABhAHIAQQBzAGMAZQBuAGQAZQByACAALQAgAE8AcABlAG4AIABTAGEAbgBzACAAQgB1AGkAbABkACAAMQAwADAAVgBlAHIAcwBpAG8AbgAgADEALgAxADAATwBwAGUAbgBTAGEAbgBzAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAHAAYQBjAGgAZQAuAG8AcgBnAC8AbABpAGMAZQBuAHMAZQBzAC8ATABJAEMARQBOAFMARQAtADIALgAwAAAAAgAAAAAAAP9mAGYAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAABAgACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA%2FAEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEArACjAIQAhQC9AJYA6ACGAI4AiwCdAKkApAEDAIoBBACDAJMA8gDzAI0AlwCIAMMA3gDxAJ4AqgD1APQA9gCiAK0AyQDHAK4AYgBjAJAAZADLAGUAyADKAOkAZgDTANAA0QCvAGcA8ACRANYA1ADVAGgA6wDtAIkAagBpAGsAbQBsAG4AoABvAHEAcAByAHMAdQB0AHYAdwDqAHgAegB5AHsAfQB8ALgAoQB%2FAH4AgACBAOwA7gC6ANcAsACxANgA3QDZALIAswC2ALcAxAC0ALUAxQCHAL4AvwC8AQUA7wEGAQcBCAEJAQoBCwAsAM8AzADNAM4EbnVsbAd1bmkwMEFECW92ZXJzY29yZQRFdXJvB3VuaUZCMDEHdW5pRkIwMgxmb3Vyc3VwZXJpb3IHdW5pRkIwMwd1bmlGQjA0AmZmAAAAAQADAAgACgANAAf%2F%2FwAPAAEAAAAMAAAAAAAAAAIAAQAAANsAAQAAAAEAAAAKAAoACgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA%2F%2F8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQA2AAEACAAFAAwAFAAcACIAKADVAAMASABOANQAAwBIAEsA1gACAEgA0gACAE4A0QACAEsAAQABAEg%3D%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Open%20Sans%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20700%3B%0Asrc%3A%20data%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAASAQAABAAgR0RFRgAQANwAAIsYAAAAFkdQT1MAFQAKAACLMAAAAAxHU1VC3cremgAAizwAAAB0T1MvMqJ1oRgAAF5QAAAAYGNtYXDPgnIkAABesAAAAMRjdnQgEy0alAAAaEwAAACqZnBnbbtzpHUAAF90AAAH4Gdhc3AACAAbAACLDAAAAAxnbHlmpn0rtQAAASwAAFeEaGVhZPfhxw4AAFqMAAAANmhoZWEOKQeHAABeLAAAACRobXR45L1NMAAAWsQAAANoa2VybqPrpOMAAGj4AAAekGxvY2GxCZk7AABY0AAAAbptYXhwAmcCHwAAWLAAAAAgbmFtZRiQM1gAAIeIAAABXHBvc3Rqw5auAACI5AAAAiZwcmVwyAn8awAAZ1QAAAD4AAIAwQAABAoFtgADAAcAHkAMBAMFAgMCCAkEAwcAAC8yLzMREgE5OREzETMxMBMhESE3IREhwQNJ%2FLdoAnn9hwW2%2BkpoBOYAAAIAdf%2FlAdMFtgADAA8AJkASAwoKAgQEEBEBBw0HVFkNEwIDAD8%2FKxEAMxESATkRMzMRMzEwASMDIQE0NjMyFhUUBiMiJgGg9DMBWv6iWlZTW1xSVFwB5QPR%2BtlUVlhST1tZAAACAIUDpgNCBbYAAwAHABtACwQHAAMDCAYCBwMDAD8zzTIRATMRM8wyMTABAyMDIQMjAwGcKcUpAr0pxSkFtv3wAhD98AIQAAACAC0AAAT%2BBbQAGwAfAH1ARAgcHxUEFAkJCgQBABkEGAUFBhIPDgsEChMTFBYeHQcEBhcXGBgUBgoEICEIBAsLHAEOHwAPDxkVEg4SDhIKFxMDBgoSAD8zPzMSOTkvLxEzMzMRMzMRMzMzETMzERIBFzkRMxESFzkRMxESFzkRMxESFzkRMxESFzkxMAEHIRUhAyMTIwMjEyM1ITcjNSETMwMzEzMDMxUFMzcjA%2BcvAQL%2B103cTsJM10ruARUv%2FAEhTdtNxk7XTvD9HcQvxANM6M7%2BagGW%2FmoBls7o0QGX%2FmkBl%2F5p0ejoAAADAFj%2FiQREBhIAIAAmACwAhkBFJBcDHR0UDQYqKiEpHicAJwgPIxEhIRkAEQAtLiodJwAADSQRIREnKxonIQklBgwcFxxPWRQXBgxQWQUGAwYXBhcGLRUAAD8SOTkvLxEzEM0rEQAzKxESABc5ETMREjk5MxESOTkREgE5OREzMxESOTkyMhESOTkROREzMzMzETMzMzEwARQGBxUjNSYnERYWFxEnJiY1NDY3NTMVFhcHJicRHgIFNCYnFTYBFBYXNQYERObPifS4V%2FVgQ8al48uJ5blenKTDpU3%2B00REiP5uPUSBAcmfwRPNyQVRAQgrQgYBNhpOt4eRuxSZlQpS6kAO%2FtlLboRnKjof%2BRcCviw5HusTAAUAP%2F%2FuBvYFywAJABQAGAAiAC0ASkAkFhcXBQUKEAAQGBUVGRkpIx4jECMuLyArHCYZGAYXGAMNBxIHAD8zxDI%2FPz8zxDIREgE5OREzEMAyEjkRMxEzEMAyEjkRMzEwARQWMzI1NCMiBgUUBiMiJjUQITIWJQEjARMUFjMyNTQjIgYFFAYjIiY1ECEyFgE7LTJgYDItAbuyrKW0AVmptQKw%2FNXwAyuFLTJgYDItAbuyrKW0AVmptQQAf338%2Bnt95uft4AHJ7dj6SgW2%2FAJ%2Fffz6e33l5%2B3fAcntAAADAFL%2F7AYABcsAHQAmADEAcUA5LQ0jCgEdFgAKFg0TEycZGhonDQMHAQAAMx4HBzIXIRoWCiQkLy8QGhoEEBAqTVkQBAQhTFkEEwESAD8%2FKwAYPysREgA5GC8SOREzEjk5ERI5EQEzETMRMxEzEhc5ETMRMxESOTkREjkREjkRMzEwISEnBiMiJDU0NjcmJjU0NjMyFhUUBgcBNjchBgIHJRQWMzI3AQYGATQmIyIGFRQXNjYGAP6Hc7%2Fx9P7ieZNLROnDut%2BKmgEcRzQBPiR%2BUPzAgWV%2BZf60OkMBZ0g5Q01fVlxxheC%2FicFUVp1dmLqtkXfFWf7rdbiH%2Fv9jg1ZmPQFKLGAChjU9QDtYajBdAAEAhQOmAZwFtgADABK2AAMDBAIDAwA%2FzREBMxEzMTABAyMDAZwpxSkFtv3wAhAAAAEAUv68AnkFtgANACBADgsKCgMEBAAHBw8LJAMDAD8%2FEQEzETMzETMzETMxMBMQEjczBgIVFBIXIyYCUpuS%2Bo2Qk4j4k5oCMQEJAc6uwf4y9PX%2BN7mqAcYAAAEAPf68AmQFtgANACBADgMEBAsKCgAHBw4KAwQkAD8%2FEQEzETMzETMzETMxMAEQAgcjNhI1NAInMxYSAmSbkviHlJCN%2BpOaAjH%2B%2Bf46qLgByfb0Ac7Br%2F4xAAEAPwJWBB0GFAAOADVAGAkLCwUDAw0BBwcQDwQKCgcHAQ0NBggOAAA%2FxDI5ETMzEjkRMxESATkRMzMzEjkzEjkxMAEDJRcFEwcDAycTJTcFAwKwKQF1If6s3%2BOciezd%2Fq4nAW0pBhT%2BkGj8GP7XeQE5%2Fsl3ASka%2BmgBcAABAFgA4wQ5BMUACwAmQBAIBgkJAwEAAAwNCwkABgQDAC8zMzMyMhESATkRMzMzETMzMTABITUhETMRIRUhESMB2%2F59AYPbAYP%2BfdsCZNsBhv562%2F5%2FAAEAP%2F74AcsA7gAGABW3AgMABQUHAwUAL8YRATMRM8IyMTAlBgMjEjchAcs0fNxBJAEY18r%2B6wEK7AABAD0BqAJWAqIAAwARtQMFAAQAAQAvMxEBMxEzMTATNSEVPQIZAaj6%2BgABAHX%2F5QHTATkACwAWQAoGAAAMCQNUWQkTAD8rEQEzETMxMDc0NjMyFhUUBiMiJnVaVlNbXFJUXI9UVlhST1tZAAABAA4AAANEBbYAAwAcQAwBAgMAAgAEBQMDAhIAPz8REgE5OREzETMxMAEBIQEDRP3f%2FusCIQW2%2BkoFtgACAEr%2F7ARIBc0ACwAXAChAFAwGEgAGABgZCRVPWQkHAw9PWQMZAD8rABg%2FKxESATk5ETMRMzEwARACISIAERASITIAARAWMzI2ERAmIyIGBEj7%2Fvv9%2Fv%2F6AQT9AQP9NV1ubGBha21eAtv%2Bgf6QAXwBcwGDAW%2F%2BgP6O%2FvPp7AEKAQ3r6wABAHkAAANOBbYACgAqQBMJBAAACAEBCwwIBwcBBAQJBgEYAD8%2FMxESOREzERIBOREzMxI5OTEwISERNzcGBwcnATMDTv7LAwVNHqiVAdf%2BA06LmE0Yh7oBdwABAE4AAARQBcsAHQA9QB4cDgEHABYBFh4fFgcHAgoSCk5ZEgcCARwBHE5ZARgAPysREgA5GD8rERIAOREzERIBOTkRMzMRMzMxMCEhNQE%2BAjU0JiMiBgcnPgIzMhYWFRQGBgcHFSEEUPwCAW%2BjZCxhUVWgV6hsjqhoidJ0R5W8vAJ91wFzp4FuO1hWTkjHXEwpZLR0ZbG6rLEOAAABAE7%2F7ARCBcsAJgBbQC8iFw0TEwcDHBwAAAcNBycoIR4kHk9ZAxgXGBdQWQwYAQ0DGBgKJAcNEAoQT1kKGQA%2FKxEAMxg%2FEjkvX15dKxESADkrEQAzERIBOTkRMxEzETMRMxESOTkxMAEUBgcVFhYVFAQhIicRFhYzMjY1NCYjIzUzMjY1NCMiBgcnNiEyBAQXppaxtv7O%2FuTuuFXMZJmSqLhvcaqd0EiVW4%2FIARXjAQcEb4nAJAYWq5HT608BBys2aHNnVu1ZbKYwO9WQuAAAAgAjAAAEcQW2AAoAEwBGQCIPBwMJAgILAwMFAAAVEwUFFAYTAQUTBVBZCRMTAw8HBgMYAD8%2FMxI5LzMrEQAzEjkRATMRMxEzERI5ETMzETMSOTkxMAEjESERITUBIREzITU0NjcjBgcBBHGw%2FtL9kAKBAR2w%2FiIKAwglNP70AS%2F%2B0QEv1wOw%2FGn4PuwTUk7%2BawABAGT%2F7AQ1BbYAGwBWQCsYFRUXAxkUFA4IDgMIAxwdFBMJEwwQABBPWRkAAAYVFRhOWRUGBgxPWQYZAD8rABg%2FKxESADkYLzMrERIAOTkRMxESATk5ETMREjkRMxI5OREzMTABMhYVFAAhIicRFhYzIDU0ISIGBycTIREhAzc2AmbU%2B%2F7S%2Fuf0lk%2FSXgEb%2Fts1gCh7NwMZ%2FfYbIz0Dpu7P9f74TwELKjXo3RUMQgLp%2Fvr%2B4QcOAAIASP%2FsBFAFxwAYACQAQUAhBhIMDCIiABwSABIlJg8fUFkPDxUDFRlPWRUZAwhPWQMHAD8rABg%2FKxESADkYLysREgE5OREzETMSORESOTEwExAAITIXFSYjIgYGBzM2MzIWFRQAIyImAgUyNjU0JiMiBhUUFkgBbwFufUdZV5%2FJZAkNY9rE3v746qLxgwIQY2pjZF6FfQJtAbIBqA%2F3FGC8rar22er%2B75YBIL%2BFe2t7elF3pAAAAQA3AAAEUAW0AAYALkAWBgAAAgEBBQIFBwgFAwIDAk5ZAwYAGAA%2FPysREgA5ERIBOTkRMxESOREzMTAzASERIRUB4wIl%2FS8EGf3XBLABBML7DgAAAwBI%2F%2BwESgXJABcAIgAuAFNAKRIGFSwDAxgJGCYVFQ8eHgkPCS8wBhISISEpKQwADBtRWQwZACNRWQAHAD8rABg%2FKxESADkRMxI5ETMREgE5OREzERI5ETMyERI5ETMSOTkxMAEyBBUUBgcWFhUUBCMiJDU0NjcmJjU0JAMUFjMyNjU0JicGEyIGFRQWFzY2NTQmAkrSAQF8iqSP%2Fubm8P7uhZN9bgEEE3hoc3Jxf9XiT2FNZWJOZAXJv6Jwr0VYv3K028y7fcJKT7RrncL7vFZgY1FDdUJiAsxRRDxfMi5gP0VQAAACAEL%2F7ARKBccAGQAlAD9AIB0FEwwMIyMAEwAmJxAgUFkQEAMWFhpPWRYHAwhQWQMZAD8rABg%2FKxESADkYLysREgE5OREzEjkREjkyMTABEAAhIic1FjMyNjY3IwYGIyImNTQAMzIWEiUiBhUUFjMyNjU0JgRK%2FpT%2Bj4JDVFybyGoIDDqYcr%2FcAQvmovOC%2Fe9gbGJkXoZ9A0b%2BUP5WDvgVW8OrXkz12usBEZj%2B38GEfGp8e1B3pAAAAgB1%2F%2BUB0wRzAAsAFwAmQBMSBgYMAAAYDxVUWQ8QCQNUWQkTAD8rABg%2FKxEBMxEzMxEzMTA3NDYzMhYVFAYjIiYRNDYzMhYVFAYjIiZ1WlZTW1xSVFxaVlNbXVFUXI9UVlhST1tZA4tUVlhSUVlYAAIAP%2F74AdMEcwAGABIAKEATDQcHEwMEBgEGBhMKEFRZChAEBgAvxj8rEQEzETMQwjIRMxEzMTAlFwYDIxI3AzQ2MzIWFRQGIyImAbwPNHzcQSQvWlZTW11RVFzuF8r%2B6wEK7ALbVFZYUlFZWAAAAQBYAMsEOQUAAAYAJ0AQBQEEAAEABwgEAwMGAAIBBQA9LzMzMzIzETMREgE5OREzETMxMCUBNQEVAQEEOfwfA%2BH9VAKsywG2jwHw8P7D%2FucAAAIAWAGiBDkEAAADAAcAJEARBwMDCQQACAVQBGAEAgQEAAEALzMzL10zEQEzMhEzETMxMBM1IRUBNSEVWAPh%2FB8D4QMl29v%2BfdvbAAABAFgAywQ5BQAABgArQBICAAEFAAUHCAAGBgECAwMFBAEAPS8zMzMRMxEzETMREgE5OREzETMxMBMBATUBFQFYAqz9VAPh%2FB8BugEZAT3w%2FhCP%2FkoAAAIABv%2FlA6AFywAZACUAREAiIBoaGQAADQcHEg0SJicPAAEJAwAAIyMdVFkjEw8KT1kPBAA%2FKwAYPysRADMYL19eXRESATk5ETMREjkRMzMRMzEwATU0Njc2NjU0JiMiByc2MzIWFRQGBwYGFRUBNDYzMhYVFAYjIiYBFFJtaUNgVpbAbd%2F6zvNkjGAz%2FtdaVlNbXFJUXAHlSmCOUEteOkFEYtt9xqVuoGRHSjw8%2FqpUVlhST1tZAAACAGb%2FZgbHBckANAA%2FAFlAKwc5ORQUEzU1DTsTKBMNAyEZIS0ZAC0AQEEWCDc3BAo9EAoQChAqHTEEJCoALzM%2FMxI5OS8vETMRMzMRMzMREgE5OREzETMREhc5ETMRMxESOREzEjkxMAEUBgYjIiYnIwYjIiY1NAAzMhYXAxQzMjY1NCYmIyIEAhUQACEyNjcVBiEgABE0EiQhMgQSARQzMjY3NyYjIgYGx1yob0pyGRBsp7HMAQzYVs9DF0xATIbznMr%2B1p8BJwEYav571v77%2FoT%2BV9kBkQEF3AFavPwArFpeCg0zQH2LAvCQ74hHOoHVudMBAiEX%2FheLu5eh94Km%2FsfN%2Fuz%2B2S8twFsBkAFk9wGT5bT%2BtP6q03%2BP3QucAAACAAAAAAWFBbwABwANAENAIQINAwgBAAYFCwsDAAAHBw8DBAQODQJMWQ0NAwsFAwADEgA%2FMz8zEjkvKxEBMxEzETMRMxESOREzMxI5ORI5OTEwIQMhAyEBIQEBAiYnBgMEN2r962r%2BsgIEAXsCBv3%2BkyUIIZwBXP6kBbz6RAJgAdl8JID%2BBwAAAwC4AAAE9AW2AA8AGAAgAFZALAcUFAQEGh4LCyIQGhoPDyEIEBkQGU1ZDBABDQMQEA8ADxpMWQ8SABhMWQADAD8rABg%2FKxESADkYL19eXSsREgA5EQEzETMRMxEzETMSOREzEjkxMBMhIAQVFAYHFRYWFRQEIyEBMzI2NTQmIyMRETMyNjU0IbgBxwE3ARl7Zot7%2Ft%2F4%2Fd0BNrR%2BcXuFo8qAev78BbaxwYOoEQofqo3I4ANzTlpUSf3F%2FoNiZbYAAQB3%2F%2BwE0QXLABYAMUAYBxMTGAMNDRcUABEATFkRBAcFCgVMWQoTAD8rEQAzGD8rEQAzEQEzETMRMxEzMTABIgIVECEyNxEGIyAAETQSJDMyFwcmJgMlr8ABb5rbtN7%2Bwf6upgE30dXXZFKmBMn%2B%2Bev%2BF03%2B%2FEsBgwFq5AFXt2f8JzoAAgC4AAAFdQW2AAgADwAoQBQJAAARDQQEEAUMTFkFAwQNTFkEEgA%2FKwAYPysRATMRMxEzETMxMAEQACEhESEgAAEQISMRMyAFdf5l%2Fnz%2BYgHLAWYBjP6%2B%2FmClhQHAAun%2Bl%2F6ABbb%2Bhv6lAdf8SAABALgAAAQCBbYACwBFQCQIBAAADQYKCgEBDAYJTFkMBgENAwYGAQICBUxZAgMBCkxZARIAPysAGD8rERIAORgvX15dKxEBMxEzETMRMxEzMzEwISERIRUhESEVIREhBAL8tgNK%2FewB7%2F4RAhQFtv7%2Bv%2F7%2BhwAAAQC4AAAD%2FgW2AAkANEAaCAMDCwYAAAEBCgYJTFkGBgECAgVMWQIDARIAPz8rERIAORgvKxEBMxEzETMRMxEzMTAhIREhFSERIRUhAen%2BzwNG%2FesB8P4QBbb%2B%2Fof9AAEAd%2F%2FsBScFywAaAExAJxoYGAIODQ0CAhMcEwgIGw4QCxBMWQAaTFkAAAULBBgWBRZMWQIFEwA%2FMysRADMYPxI5LysrEQAzEQEzETMREjkRMxEzETMROTEwASERBgYjIAAREAAhMhcHJiMiAhUUFjMyNxEhAuMCRI35gv61%2FqMBlQFn4dFnoK3J8sO6YWT%2B6wM1%2FQouJQGFAWwBYgGMWvhQ%2FvLk7vsUATEAAQC4AAAFZgW2AAsAN0AcCQEBAAANCAQEBQUMCANMWUwIAQgIBQoGAwEFEgA%2FMz8zEjkvXSsRATMRMxEzETMRMxEzMTAhIREhESERIREhESEFZv7L%2Fb3%2BygE2AkMBNQJ3%2FYkFtv3DAj0AAAH%2FaP5SAe4FtgANAB9ADgsCCAgOAwUABUxZAAkDAD%2FEKxEAMxEBMxEzMzEwEyInERYzMjY1ESEREAIfaU5QQmZYATbq%2FlIWAQIUf4cFWvqo%2FwD%2B9AAAAQC4AAAFUAW2AAwAQkAfDAICCgsLAQAADggDBQUNDAICAwsLBgMICAUGAwEFEgA%2FMz8SOREzETMREjkRMxEBMxEzMhEzETMzETM5ETMxMCEhAQcRIREhETcBIQEFUP6g%2FoGD%2FsoBNnoBjAFY%2FgICaF799gW2%2FWOsAfH9eQAAAQC4AAAEPwW2AAUAH0AOBAcDAAAGAQMAA0xZABIAPysAGD8RATMRMxEzMTAzESERIRG4ATYCUQW2%2B0r%2FAAABALgAAAbTBbYAFAA6QBwUAAkLCQgDBQ4ODQ0WBQYVEgIJAgYLBwMOAAYSAD8zMz8zEjk5ETMRATMyETMRMxESFzkRMzMxMCEBIxIVESERIQEzASERIRE0NhMjAQMj%2FqAJE%2F7rAaYBWgYBbwGm%2Ft8DDAn%2BhwR7%2FqJ1%2FVgFtvuiBF76SgK0MYABFPuHAAEAuAAABckFtgAPADZAGQoACQEGDQ0AABEDBQYGBxALAwcOCAMBBxIAPzM%2FMxI5OREBMzIRMzkRMxEzERI5ORI5MTAhIQEjEhURIREhATMCNREhBcn%2Bdv2ECRP%2B6wGHAnsHDwEXBFL%2B2339UAW2%2B7kBHXYCtAACAHf%2F7AXnBc0ACwAVAChAFBEAABcMBgYWCRNMWQkEAw9MWQMTAD8rABg%2FKxEBMxEzETMRMzEwARAAISAAERAAISAAARQWMyARECEiBgXn%2Fpj%2BsP6w%2FpgBaQFRAVEBZfvVurkBc%2F6PubwC3f6V%2FnoBhgFtAW0Bgf58%2FpT1%2BAHtAe75AAACALgAAASqBbYACAATADRAGgQJCRUADg4PDxQNAExZDQ0PEBAITFkQAw8SAD8%2FKxESADkYLysRATMRMxEzETMRMzEwATMyNjU0JiMjBRQEISMRIREhIAQB7maPjnd%2FjQK8%2Ftn%2B8IX%2BygHTAQoBFQMGcWxtaMrs%2Bv34BbblAAACAHf%2BpAXnBc0ADwAZAEJAIgYDBQQEAgMIBAoVAAAbEAoKGgMHDQ0XTFkNBAcTTFkFBxMAP8YrABg%2FKxESADkRATMRMxEzETMSFzkRMxEzMTABEAIHASEBIyAAERAAISAAARQWMyARECEiBgXnt7EBYP5z%2FvQX%2FrD%2BmAFpAVEBUQFl%2B9W6uQFz%2Fo%2B5vALd%2Fv7%2Bo1H%2BdwFIAYYBbQFtAYH%2BfP6U9fgB7QHu%2BQAAAgC4AAAFSAW2AAgAFwBOQCYTFxcECgQQEAoWFRkACgoLCxgTCQwACU1ZAAALDAwITFkMAxYLEgA%2FMz8rERIAORgvKxESADkRATMRMxEzEBjEMhE5ETMREjkRMzEwATMyNjU0JiMjEREhESEgBBUUBgcAFyEBAe5kk4yPll7%2BygGqASoBHo6CAUpk%2Fqj%2BowMtYmloWP15%2Fc8Fttndgck5%2FhOQAjEAAAEAXv%2FsBBcFywAnAEVAIhsaGiEAIQUUDAAUACgpFCEADCEMHgkXHkxZFwQDCUxZAxMAPysAGD8rERIAOTkRMxEzERIBOTkRMxEzMxESOREzMTABFAQjIicRFhYzMjY1NCYmJy4CNTQkMzIWFwcmJiMiBhUUFhYXFhYEF%2F7j%2Fuq0lM1VZm0wXY%2BGhlABB%2Bhyz3FkdZlKWF4mU5vNmAGWxuRYASBCNk5NK0M%2BRD90mmfC3jYx8TAmUkIpPTlKYsUAAAEAKQAABHkFtgAHACZAEgYAAAMBAQgJBwMEA0xZBAMBEgA%2FPysRADMREgE5ETMzETMxMCEhESERIREhAuz%2Byv5zBFD%2BcwS0AQL%2B%2FgABAK7%2F7AVeBbYAEgAlQBERAQEUCwgIExIJAwUOTFkFEwA%2FKwAYPzMRATMRMxEzETMxMAERFAYEIyAANREhERQWMzI2NREFXpH%2B7rv%2B5v7IATWInZiJBbb8TqL0ggEh%2BwOu%2FIGpnp%2BqA30AAQAAAAAFMwW2AAsAKkATAwIJCQUAAQENBQQEDAAEAwkDEgA%2FMz8zEQEzETMRMxEzETkRMzMxMAEhASEBIQEWFhc2NwP6ATn%2BD%2F6u%2FhABOQETFzEGC0AFtvpKBbb8mk3NKFzmAAEAAAAAB7wFtgAdAEZAIgoJDxQTBQEAGBgFDwMMHBwdHR8MCwseHBMFCwMYDw8BChIAPzMzETM%2FMzMzEQEzETMRMxEzERIXOREzMxEzMxEzMzEwISEDJgInBgYHAyEBIRMWFzY2NxMhExYWFzY2NxMhBkj%2Bn8YLNQQGMA3F%2FqD%2BiwExuzEWBisT1QEl1Q4qCwosEroBMQMAKQEBLDbvM%2F0CBbb84t2iOe9CAzP8zTfiUU7pSAMeAAABAAAAAAVWBbYACwBEQCALBQIICAcJBwYJCgYKAQAADQMEDAsIAgUFBAkGAwEEEgA%2FMz8zEjkRMzMzEQEzMhEzETM5OREzETMREjkRMzMzMTAhIQEBIQEBIQEBIQEFVv6e%2Fqz%2BrP60AeX%2BOgFWATsBNQFO%2FjUCKf3XAvICxP3yAg79KwABAAAAAAT%2BBbYACAA2QBkIBwcFAQICAAQEBQUJCgMGBgAABQEHAwUSAD8%2FMxI5ETMRMxESATkRMxI5MhEzETMRMzEwAQEhAREhEQEhAn8BMQFO%2Fhv%2BzP4bAVADXAJa%2FIP9xwIvA4cAAAEAMQAABHEFtgAJADtAHQgEAQMHBwABAAoLBwQFBQRMWQUDAgEIAQhMWQESAD8rERIAORg%2FKxESADkREgE5OREzETMRMzMxMCEhNQEhESEVASEEcfvAAr39VgQa%2FUQCz8kD7QEAyPwSAAABAI%2F%2BvAJzBbYABwAeQA0GAQEIBAAJBQIDBgEkAD8zPzMRATMyETkRMzEwASERIRUjETMCc%2F4cAeTg4P68BvrT%2BqwAAAEADAAAA0IFtgADABxADAADAwQCAQEFAwMCEgA%2FPxEBMxEzETMRMzEwAQEhAQEhAiH%2B6%2F3fBbb6SgW2AAEAM%2F68AhcFtgAHACBADgEGBgkDBwcIAAckAwQDAD8zPzMRATMRMxI5ETMxMBczESM1IREhM9%2FfAeT%2BHHEFVNP5BgAAAQAIAggEPQW%2BAAYALUAUAgEFBQYEBAMDCAYAAAAEBAcFAgYAPzMSOS8zATIRMxEzETMREjkRMzMxMBMBMwEjAQEIAbaQAe%2Fv%2Fr7%2B6AIIA7b8SgKD%2FX0AAAH%2F%2FP68A07%2FSAADABK2AAUBBAIBJAA%2FMxEBMxEzMTABITUhA078rgNS%2FryMAAABAUwE2QONBiEACAAcQAsAB0ADBQUJCgWAAAAvGt0REgE5ETMayjIxMAEmJic1IRYXFQLDP%2FREAVY%2FrATZLMVCFWXIGwAAAgBW%2F%2BwEOwR1ABgAIgBKQCYSDAgMAiIiGBgkHQgIIwwZS1kMDAUUFA9GWRQQAh8FH0ZZBRYAFQA%2FPysRADMYPysREgA5GC8rEQEzETMRMxEzEjkyERI5MTAhJyMGBiMiJjU0Njc3NTQjIgcnNjMyFhURAQcGBhUUMzI2NQNmOwhNo4Ohufn7wq6GtWXB6%2BHw%2FtF2hYKUan%2BYYUu4qrKpCQYxqlHOZcTI%2FRcCBgQEWFqBemUAAgCg%2F%2BwEtAYUABIAHwBCQCEdAwMhCRALDhcXCwsgDAALFQkQBgAGGkdZBhYAE0dZABAAPysAGD8rERIAOTkYPz8RATMRMxEzEjk5ETMRMzEwATISERACIyInIwcjESERFAczNhciBgcVFBYzMjY1NCYDDsbg58fFcBUz6QExDAxrcHFoAmt0Xm9wBHP%2By%2F7z%2Fuv%2B0I97BhT%2BlkWYpvSLoCG0nK2lpaUAAQBc%2F%2BwD3QRzABUAKkAVEw0HBxcNAgIWBQtHWQUQAA9HWQAWAD8rABg%2FKxEBMxEzETMREjkxMAUgERAAITIXByYmIyIREDMyNjcRBgYCZv32ARwBCcKaWkh8Pu7uWJZLSpcUAj0BHQEtTOwdJf6u%2FrgvMv77LyQAAgBc%2F%2BwEcQYUABIAHwBAQCEJFhADCwsODiEdAwMgDxUMABEJAAYGGkdZBhAAE0dZABYAPysAGD8rERIAOTkYPz8RATMRMxEzETMSFzkxMAUiAhEQEjMyFzMmNREhESMnIwYnMjY3NTQmIyIGFRQWAgLF4eXJ028KFwEy6jsNaGp1bQVvfWZxchQBMgEPARMBM6R9YgFm%2BeyRpfOIoyG0nK2lpaUAAAIAXP%2FsBGIEcwAGABsARkAjAxIEBBkRER0SCgocGBUSAxJKWQMDBw0NAEpZDRAHFUZZBxYAPysAGD8rERIAORgvKxESADkRATMRMxEzETMzERI5MTABIgYHISYmAyAAERAAMzIAFRUhFhYzMjY3FQYGAm9hbggBrAJyNv7y%2FtABGfjtAQj9LwWQgmW0YlC2A5p7cXF7%2FFIBKgERARkBM%2F7y7pSCkiou7CgnAAABACkAAAN1Bh8AFQA8QB4UAgIHBQMDFhcNAAAXBQEUAUZZBxQPCxBHWQsAAxUAPz8rABg%2FMysRADMRATMRMxESOREzMzMRMzEwASERIREjNTc1NDYzMhcHJiMiBhUVIQMK%2Fvj%2Bz6iovM%2Bee05cTkE6AQgDefyHA3mTUlK%2FsC%2FgHU08RgADAAb%2BFARtBHMAKQA2AEAAgEBECx0dPT0EMBERAikHIAQjAQQEQhoqKhcXNyMjQRoNAA0BDQYNNAc6S1kJIAQDBwcmNCkCSlkpKSYmP0tZJhAULUpZFBsAPysAGD8rEQAzGC8rABgvEjkvFzkrEQAzX15dEjkRATMRMzMRMxEzETMRMxIXOTMRMxEzETkRMzEwARUHFhUUBiMnJwYVFDMzMhYVFAQhIiY1NDY3JiY1NDY3JiY1NDYzMhYXARQWMzI2NTQmIyMiBhMUFjMyNjU0IyIEba8w%2B983LS%2BovrjB%2Frn%2Bzur3fnovRkpGWGfu3S%2BBEv4neW2kum5znlRxb1NVVlCmqARemy1LXbTJAwUkLEKemcTYo5NliB0UWzNAVSkmqHK3yBEE%2BwQ%2FSFpOPzBPA01bampbygABAKAAAASoBhQAFQA1QBoBAAAXDwkMCAgJCRYPBBISBEdZEhAKAAEJFQA%2FMz8%2FKxESADkRATMRMxEzEjkRMxEzMTAhIRE0IyIGFREhESERFAcHMzYzMhYVBKj%2Bz7SAcv7PATEHBxBm3sXMAo3yrsP98gYU%2FsMliVqk1MYAAgCTAAAB3wYUAAgADAAkQBEECQkACgoNCw8KFQIHSVkCAAA%2FKwAYPz8RATMRMzMRMzEwEzQzMhUUBiMiASERIZOmplNTpgE%2B%2Fs8BMQV%2FlZVHT%2FsXBF4AAAL%2Fff4UAd8GFAANABYAL0AYEgsLDgIICBcQFUlZEAAJDwMFAAVHWQAbAD8rEQAzGD8%2FKxEBMxEzMzMRMzEwEyInNRYzMjY1ESERFAYDNDMyFRQGIyJGdVRGSU1HATHOcKamU1Om%2FhQZ8BNWVASq%2BymywQdrlZVHTwAAAQCgAAAE9gYUAA4ASUAjBAcHCAIDAwYFBRAOCg0NCAgKCg8LAAQHBwgIDg4DBgoVAw8APz8zEjkRMxE5ETM%2FEQEzETMRMxESOREzETMzETMSOREzMTABNwEhAQEhAQcRIREhEQcBxYUBOQFY%2FkQB1%2F6g%2Fr6D%2Fs8BMRACYKoBVP4b%2FYcBxWn%2BpAYU%2FUr%2BAAEAoAAAAdEGFAADABO3AAEBBAIAARUAPz8RATMRMzEwISERIQHR%2Fs8BMQYUAAABAKAAAAdCBHMAIwBNQCYUExMAAAEBChwcGxslDQkJCgokEw0NESAFEQVHWRcREAsPHAEKFQA%2FMzM%2FPzMrEQAzEjkRMxEBMxEzEjkRMxEzERI5ETMSOREzMTAhIRE0JiMiBhURIREzFzM2NjMyFzM2NjMyFhURIRE0JiMiBhUEif7PUVd1av7P6SkRLapu%2B1kbLa9uvsP%2BzlFXcG8CjXl5rMX98gRej01XpE5Ww9f9JwKNeXmgrgAAAQCgAAAEqARzABQAMUAYAQAAFg0JCQoKFQ0FEREFR1kREAsPAQoVAD8zPz8rERIAOREBMxEzEjkRMxEzMTAhIRE0JiMiBhURIREzFzM2NjMyFhUEqP7PVl6Acv7P6SkRM7Nyw8oCjXl5q8b98gRej1FT08cAAAIAXP%2FsBJgEcwALABkAKEAUBgwMGwATExoWCUdZFhAPA0dZDxYAPysAGD8rEQEzETMRMxEzMTABFBYzMjY1NCYjIgYFEAAhIiYCNRAAITIWEgGTbXt6a2x7emwDBf7g%2Fv%2Bh9oQBHgEDofaEAjGmqqmnpqalp%2F7v%2FsyNAQiwARIBMIz%2B%2BgAAAgCg%2FhQEtARzABMAHwBDQCIYBgYHCgMDBx0QBxAgIQMKAA0NFEdZDRAIDwcbABtHWQAWAD8rABg%2FPz8rERIAOTkREgE5OREzETMRMxEzETMxMAUiJyMWFREhETMXMzYzMhIRFAIGAyIGBxUUFjMyETQmAwbFcBAQ%2Fs%2F4Kw5r0sbgacLdcWgCa3TNZRSPjBb%2BOwZKkab%2Bzv7ws%2F74igOTi6AhtJwBUqWlAAACAFz%2BFARxBHMACwAgAEJAIRYDHQMaGhkZIgkPDyEaGxcPHhYMEhIHR1kSEAwAR1kMFgA%2FKwAYPysREgA5ORg%2FPxEBMxEzETMRMxI5OREzMTAlMjY3NTQmIyIRFBYXIgIREBIzMhYXMzchESERNDcjBgYCb3RsBW9712sExuDlx2qePAgbAQL%2Bzg0NMaLbhaYltJz%2Brqim7wExARABEgE0UFSP%2BbYB1T1rUVQAAQCgAAADdwRzABAAJUARAhINCQkKChELDwoVDQUFABAAPzIROT8%2FEQEzETMSOREzMTABMhcDJiMiBhURIREzFzM2NgMQPikXJTWSo%2F7P5y0PNLEEcwn%2B4gqWh%2F3HBF68XnMAAAEAXP%2FsA6wEcwAlAD9AHwYZFAwAACcfFBQmAAwUHwwfCh0XHUZZFxADCkZZAxYAPysAGD8rERIAOTkRMxEzEQEzETMRMxEzEjk5MTABFAYjIiYnNRYWMzI1NCYmJy4CNTQ2MzIXByYmIyIVFBYXHgIDrO%2FueqxLVdVRpixsWoF5N%2BfUyr9cVJJMh1eTg3o6AUystCEg%2FCg2YCQtOSY2XHdXlaNY3CQuSSk8OzVceAAAAQAv%2F%2BwDNwVMABUAPUAeDAgPDxMTCggCEQgRFhcKEg8SRlkNDA8PBQBHWQUWAD8rABg%2FM8ErEQAzERIBOTkRMxEzMxEzERI5MTAlMjcVBiMiJjURIzU3NzMVIRUhERQWAndQcHKmt6eSqFjDATn%2Bx0nfI%2BMzubkCG4Fm7O7l%2FeVBPgAAAQCa%2F%2BwEogReABQAMkAYAhERFBQWCwgIFRIJDwIFDgUOR1kFFgAVAD8%2FKxESADkYPzMRATMRMxEzETMSOTEwIScjBgYjIiY1ESERFBYzMjY1ESERA7gpEDG0c8XIATFWXoByATGPTlXTxgLZ%2FXN5eavGAg77ogAAAQAAAAAEjQReAAsALEAUCwAFBQIJCQoKDQIBAQwJAQ8FABUAPzI%2FMxEBMxEzETMRMxESOREzMzEwIQEhExYXMzY3EyEBAar%2BVgE%2F2CQJBgUo1wE%2F%2FlYEXv2DeWxghQJ9%2B6IAAAEAFAAABsUEXgAdAEpAJAUEChAPAx0AFxcDCgMHGxscHB8HBgYeFwoKAwUPDxsGDwAFFQA%2FMz8zMxESOTkRMxEBMxEzETMRMxESFzkRMzMRMzMRMzMxMCEDAyMDIQEhExYXMzY3NxMhEx4DFzM2NjcTIQEEN1Z0B8z%2BuP7CATCBHyAGBB8QigFQgwQREA0BBgkuCoYBK%2F6%2BAYcB7vyLBF7%2BEYXqTKVVAhj96BZWYV0cSPssAe%2F7ogABAAoAAASWBF4ACwBMQCQGBQABCQMDAgQCAQQFAQULCAcHDQoLCwwJBgMAAAEICxUEAQ8APzM%2FMxI5ETMzMxEBMxEzETMRMxI5OREzETMREjkRMxI5EjkxMAEBIRMTIQEBIQMDIQGF%2FpgBWtnbAVr%2BlAF9%2FqXr7P6mAjsCI%2F6cAWT93f3FAX%2F%2BgQABAAD%2BFASNBF4AFgBMQCULFBQQFhYEBAEICAkJGBABAAAXCxQUEgQWFRASDRJHWQ0bCAAPAD8yPysRADMYPzMSOREzEQEzETMzETMRMxESOREzERI5ETMxMBEhExYXMzY3EyEBBgYjIic1FjMyNjc3AU7TGwoGCyDPAUf%2BJ0HxoU9MN0FReSISBF79i1JwZ1sCdfsTr64R8g1jZDcAAAEANwAAA6oEXgAJAD1AHgMHBAcBAAALCAEBCgcEBQUERlkFDwIIAQEIRlkBFQA%2FKxESADkYPysREgA5EQEzETMRMxESOTkRMzEwISE1ASE1IRUBIQOq%2FI0CBv4ZA0L%2BCAIKtALB6cb9UQABAB%2F%2BvALVBbYAHwA2QBkDFAgfHxEYGCANHBwhBAMTEw0bGxwkDQwDAD8zPzMREjkRMzMRATMRMxI5ETMzETMzOTEwATQmIzUyNjU1ETQ2MxUGBhURBgcVFhUVERQWFxUiJjUBH4N9foLC9GNLBuTqSmT0wgEOV1zvWFIIAT6ZfeEDRkT%2B1bwiDCOxCf7VREYD4n2aAAABAcf%2BLwKiBg4AAwAUtwIDAwQFAwAAAD8vERIBOREzMTABMxEjAcfb2wYO%2BCEAAQBS%2FrwDCAW2ACIANkAZHxoNAAAQCAgkFAQEIx8eDg4UBRQVAwUEJAA%2FMz8zERI5ETMzEQEzETMSOREzMxEzMzkxMAUUBgYjNTY2NRE1NDY3NSYnETQmJzUyFhYVERUUFjMVIgYVAghSvadjS3Zz4wZKZKe%2BUXuFfYMtcHI14gJERwErC1ZrEQwivAErRkQD4TVzbv7CClRU71JhAAABAFgCJwQ5A30AFQA3QBgGABELAAsDDw8XAxYPDg4GBAMDCxERAAYALzMyfS8zMxEzETMRMxEBMxEzERI5OREzETMxMAEiBgc1NjMyFhcWMzI2NxUGIyImJyYBQjd9NmeZSYFLgWI1fjZlm0J4WoMCoEM2520gIDdAOedtGiU4AAIAdf6PAdMEXgADAA8AJkASAwoKAgQEERAABw0HVFkNDwMiAD8%2FKxEAMxESATkRMzMRMzEwEzMTIQEUBiMiJjU0NjMyFqj0M%2F6mAV5aVlNbXVFUXAJe%2FDEFJVRWWFJRWVgAAQCP%2F%2BwEEAXLABsAREAjEQgaGgUbGwIXFwoCChwdGRNPWQgOT1kABQgZCBkIBhsZBgcAPz8SOTkvLxI5OSsrERIBOTkRMxESOREzMxEzMjEwJSQREBI3NTMVFhcHJiYjIgYVEDMyNjcVBgcVIwIz%2FlzR07KmhVpIfD55dO1ShGR%2FirKwOwH6AQUBHB%2BmnglB6x0kp6v%2BuR8t%2Fj0JvAABAFIAAARqBcsAHQBYQCwPEgsCCQ0NGhYWAhgQGBISEB4fDBgZGFFZCRkZABMSDxIPTlkSGAAFT1kABwA%2FKwAYPysREgA5ETkYLzMrEQAzERIBOTkRMxESOTkRMzMRMxI5EjkxMAEyFwcmIyIGFRUhFSEVFAchESE1NjY1NSM1MzU0NgK8w8NdnXNOVAF3%2FomXAs776GdNsrLlBctS5kBZU8Hbj6pO%2Fvz4LHJkkdvDydkAAgBxAP4EIQSqABsAJwA8QCIQDBMJBRcaAggADg4iHAAcHCgpFxMQGgIMCQUIBxUVHwclAC8zxjIREhc5ERIBOREzEMIyERIXOTEwEzQ3JzcXNjMyFzcXBxYVFAcXBycGIyInByc3JjcUFjMyNjU0JiMiBrw2gZN%2FW2ppW3%2BWgTU1fZJ%2FX2VzVH2RfzbPbVBRb3FPTm8C02Zff5N%2FNTeBj4FZbmtcfZF9MzN7kX1daE1vbk5QbnAAAAEABgAABIkFtgAWAHFAOA4SFBIVDRERAAkFAwUCCgYGAAAWAQECAhgWFRUXBhITElJZAAMBAxMPCg4PDlJZBw8PDAEVBgwYAD8%2FMxI5LzMrEQAzGBDGMhESOSsRADMRATMRMxEzETMREjkRMxEzEjk5ETMRMxEzEjk5ETMxMAEBIQEzFSMVMxUjFSE1IzUzNSM1MwEhAkgBCAE5%2FoHD9vb2%2FuH39%2Fe%2B%2FocBPANcAlr9FbKKst3dsoqyAusAAgHH%2Fi8CogYOAAMABwAjQA8CBgYDBwcICQQDBAMHAAAAPy85OS8vERIBOREzMxEzMTABMxEjETMRIwHH29vb2wYO%2FNH%2Bf%2FzRAAACAGr%2F7AN%2FBikALQA4AFVAKgoRFxEFBS4iACccHDMXABc5OgM2NhMZMTEqEyoOJR8lS1kfFggOS1kIAQA%2FKwAYPysREgA5OREzETMRMxEzERIBOTkRMzMRMxEzMzMRMxESOTEwEzQ2NyY1NDYzMhcHJiYjIgYVFBYXFhYVFAcWFhUUBiMiJzUWFjMyNTQmJicmJjcUFhc2NTQmJwYGeUg9hd%2B2qsFSRI1OUUpjcqOafT4%2F78nLklHGRsIlWlC3it%2BCdE5lhSU1AyVPgyhUlYOeVL4gMy4wMUotQKltsVMoaUqUr0%2FPKTl1JzAzIkqdi0NoLjlZRF4xDk8AAgEXBPgDxQYEAAsAFwAgQA0SDAAGAAAYGQ8DAxUJAC8zMxEzERIBOREzEMwyMTABNDYzMhYVFAYjIiYlNDYzMhYVFAYjIiYBF0tAQktMQUBLAZNRPEFNTkA8UQV9QUZKPTxJRj9GQUg%2FPUhBAAADAGT%2F7AZEBcsAFQAlADUAQkAfAw4JEw4TJi4mFi4eFh42NwULABELEQsRGioiEzIaBAA%2FMz8zEjk5Ly8RMxEzERIBOTkRMxEzERI5OREzETMxMAEiBhUQMzI2NxUGIyImNTQ2MzIXByYBNBIkMzIEEhUUAgQjIiQCNxQSBDMyJBI1NAIkIyIEAgN%2FYWrLOYQ5eITM4N3HlZxKcfx9yAFeysgBXsrC%2FqLQz%2F6iw46kARyipAEbo6T%2B5KKk%2FuWjA%2FKUg%2F7oHh2%2FOfrd3PVOqDr%2B6cgBXsrI%2FqLKxf6m0M8BWsak%2FuWjpAEcoqQBG6Ok%2FuQAAAIALwLwArgFxwAXACEAQUAeGAcBFxceEAcLCx4HHiIjDw0NHwsLEwEbGwAABBMfAD%2FEOS8yETMSOREzMhI5ERIBOTkRMxESOREzEjkRMzEwAScGBiMiJjU0Njc3NCMiByc2NjMyFhURJRQWMzI2NTUHBgIxHyt8SnV9pbljf1GIQkKfY4mV%2FkQuIE1ZY5EC%2FG46QHVqbW0JBHU9hyAyjoP%2BRtUmJFNBJAYKAAACAFIAXgSaBAQABgANAFxAKwoNDAkLCwwDBgIEBAEFDAgMDA8NBgYDBwAACgMDAgsEBAwFBQEOCQICCAEALzMzETMREjkvMzMRMxI5ETMzETMRMxEzEQEzETMQ1jIyETPBMhEzETMQwTIxMBMBFwEBBwElARcBAQcBUgFz2%2F7pARfb%2Fo0B%2BgFy3P7pARfc%2Fo4CPQHHd%2F6k%2FqR3AcUaAcd3%2FqT%2BpHcBxQABAFgA%2BAQ5Az8ABQAaQAoBAAAHAwEBBgMEAC8zEjkvATIRMxEzMTAlIxEhNSEEOdv8%2BgPh%2BAFs2wD%2F%2FwA9AagCVgKiAgYAEAAAAAQAZP%2FsBkQFywAMABUAJQA1AGZAMQQDAgUFBwAREQ0DDQcHCAMILiYmFi4eFh42NwIGBg0NBBUECBUJCAkICRoqIhMyGgQAPzM%2FMxI5OS8vETMRMxESOREzEjkREgE5OREzETMREjk5ETMRMxESOREzEjkRMxEzMTABFAcTIwMjESMRITIWATMyNjU0JiMjATQSJDMyBBIVFAIEIyIkAjcUEgQzMiQSNTQCJCMiBAIEhY%2Ft%2FrIv5QEItan%2Bfx9COThFHf1gyAFeysgBXsrC%2FqLQz%2F6iw46kARyipAEbo6T%2B5KKk%2FuWjA4mqP%2F5wAVL%2BrgOUjP7yOUJBNv7fyAFeysj%2BosrF%2FqbQzwFaxqT%2B5aOkARyipAEbo6T%2B5AAAAf%2F6BhQEBgbdAAMAErYABQEEAgEAAD8zEQEzETMxMAEhNSEEBvv0BAwGFMkAAAIAXAMZAxAFywAOABoAGEAJAA8PHBsSDBgEAC8zxDIREgE5ETMxMBM0NjYzMhYWFRQGBiMiJjcUFjMyNjU0JiMiBlxcoF5coV1doF2Ryb9ZQkJaW0FAWwRxXKBeXKJcXaFax5FAWlw%2BP15cAAIAWAAABDkFAgALAA8ANkAYDwcHBgoKCwwBAQMLCxARDQwLCQEBBgQCAC8zMzMRMzMvMxESATkRMzMRMxEzETMzETMxMAEhNSERMxEhFSERIwE1IRUB2%2F59AYPbAYP%2Bfdv%2BfQPhAqLbAYX%2Be9v%2Bf%2F7f29sAAQAvAkoCvgXLABYAKEASFQwBBgARAREXGAkOHwIVFQEgAD8zEjk%2FMxESATk5ETMzETMzMTABITU3NjY1NCYjIgcnNjMyFhUUBgcHIQK%2B%2FXngZjkwKFFje5O9iZ5egWkBYAJKqNtkWTImKFiYgYV1VZZ1XwABADsCOQK2BckAJQA%2BQB0UCwIZGQAAIAYgCxAGCwYmJwMUFBUVCRwjHw4JIQA%2FMz8zEjkvMxI5ERIBOTkRMxEzERI5ETMRMxI5MTABFAcVFhYVFAYjIic1FjMyNTQmIyM1MzI2NTQmIyIGByc2NjMyFgKaql5osLqPgpR7j1hOcFxTUTIzL1Q5ZT6XZ3%2BiBOGPNw0Ubk95i0a%2BWms1NaA0OSYyJiiNLz6AAAEBTATZA40GIQAIABxACwMEQAgAAAkKBIAAAC8azRESATkRMxrJMjEwATU2NyEVBgYHAUysPwFWNPtHBNkbyGUVNM0yAAABAKD%2BFASoBF4AGAA%2FQB8LBgYJCRoSFgAVFRYWGQcXDxYbEgwPAw8DR1kPFgoVAD8%2FKxESADk5GD8%2FMxEBMxEzETMSOREzETMSOTEwARQWMzI2NREhESMnIwYGIyImJxcXESERIQHRWF5%2BcgEx5ysPKnhYPmggBQX%2BzwExAdF5ea3EAg77opZVVS4sVZ3%2BwAZKAAEAcf78BI8GFAAPAC9AFQsQBAUBAAEBEBEICAEODgNNWQ4FAQAvMy8rERIAORgvERIBOREzEMQyETkxMAEjESMRIxEGIyImNRA2MyEEj6Gmoj5U2Mva6AJc%2FvwGUPmwAzMS%2BvsBBP4AAQB1AikB0wN9AAsAFUAJBgAADAMJVFkDAC8rEQEzETMxMBM0NjMyFhUUBiMiJnVaVlNbXVFUXALTVFZYUlFZWAAAAf%2Fb%2FhQBogAAABIANEAXEA0NBQUACwsTFBAQDRQNEwkOBgkJAxsAPzMRMy8REjkREjl8LxESATkRMzMSOREzMTAFFAYjIic1FhYzMjU0JzczBxYWAaKXnk5EG1sZSKZOwRtKWPqAchWoBw4%2BUxmaPRhlAAABAFwCSgJIBbYACgAqQBMECQAACAEBCwwIBwcBBAQJHgEgAD8%2FMxESOREzERIBOREzMxI5OTEwASMRNzcGBwcnJTMCSO4DBRswTm0BLb8CSgG%2BcF8kKj1%2F6wACADkC8ALhBccACwAXAB9ADQwGEgAGABgZDwMVCR8APzPEMhESATk5ETMRMzEwARQGIyImNTQ2MzIWBRQWMzI2NTQmIyIGAuG3n5m5s6OYuv4jQUhIPz9ISEEEXKvBxaepwsWmZGVlZGRjYwACAFIAXgSaBAQABgANAFpAKgsJCQoHCAQCAgMABQEIDAgIDg0GBgMHAAAKAwMECQICCAEBBQ4LBAQMBQAvMzMRMxESOS8zMxEzEjkRMzMRMxEzETMRATMRMxDWMsEyMxEzEMEyMxEzMTABAScBATcBBQEnAQE3AQSa%2Fo3bARb%2B6tsBc%2F4G%2Fo3bARb%2B6tsBcwIj%2Fjt3AVwBXHf%2BORr%2BO3cBXAFcd%2F45AP%2F%2FAC4AAAaSBbYAJgB60gAAJwDOAskAAAEHANMDnP23AAmzAwISGAA%2FNTUA%2F%2F8ALgAABrQFtgAmAHrSAAAnAM4CyQAAAQcAcwP2%2FbcAB7ICEBgAPzUA%2F%2F8AWgAABrAFyQAmAHQfAAAnAM4DEAAAAQcA0wO6%2FbcACbMDAi0YAD81NQAAAgA9%2FnkD1wReABsAJwBGQCQiHBwbAAAHBxQUDigOKQAbEBsCCQMbGyUlH1RZJQ8RCk9ZESMAPysAGD8rEQAzGC9fXl0RATMREjkRMxE5ETMzETMxMAEVFAYHBgYVFBYzMjY3FwYGIyImNTQ2NzY2NTUBFAYjIiY1NDYzMhYCyVlsbTlXWU%2B0YGZi92rc%2B2GPXzUBKFpWU1tdUVRcAl5KYo5NTlg%2FOUo6Kt04RcGpbJ5pRko9OwFWVFZYUlFZWAD%2F%2FwAAAAAFhQdzAiYAJAAAAQcAQgAGAVIACLMCFgUmACs1%2F%2F8AAAAABYUHcwImACQAAAEHAHUA0QFSAAizAhYFJgArNf%2F%2FAAAAAAWFB3MCJgAkAAABBwDAAFYBUgAIswIbBSYAKzX%2F%2FwAAAAAFhQdgAiYAJAAAAQcAwgBWAVIACLMCEgUmACs1%2F%2F8AAAAABYUHVgImACQAAAEHAGkAVgFSAAq0AwIjBSYAKzU1%2F%2F8AAAAABYUHCgImACQAAAEGAMF1WAAJswMCIwMAPzU1AAACAAAAAAclBbYADwATAG9APAYTAxATAxEEEQEKDg4BAQUMCAAAFQQFBRQQA0xZCg1MWQwKAQ0DEAoQCgEGEwkGCUxZBgMEEgEOTFkBEgA%2FKwAYPz8rEQAzERI5ORgvL19eXSsrEQEzETMRMxEzMxI5ETMRMxEzERIXOREzMTAhIREhAyEBIRUhESEVIREhASERIwcl%2FJf%2BFZb%2BxQKPBJb9zQIO%2FfICM%2FsdAXp%2FAVz%2BpAW2%2Fv6%2F%2Fv6HAWACTgD%2F%2FwB3%2FhQE0QXLAiYAJgAAAAcAeQIdAAD%2F%2FwC4AAAEAgdzAiYAKAAAAQcAQv%2B3AVIACLMBFAUmACs1%2F%2F8AuAAABAIHcwImACgAAAEHAHUAXAFSAAizARQFJgArNf%2F%2FAK8AAAQUB3MCJgAoAAABBwDA%2F%2FUBUgAIswEZBSYAKzX%2F%2FwC4AAAEAgdWAiYAKAAAAQcAaf%2F5AVIACrQCASEFJgArNTUAAgAvAAAFdQW2AAwAGABIQCQNBgYaFBIWFgwBCgoZFQwADExZEgAACgIKFkxZChICEUxZAgMAPysAGD8rERIAORgvMysRADMRATMRMzMzETMzETMRMzEwEzMRISAAERAAISERIyU0JiMjETMVIxEzIC%2BJAcsBZgGM%2FmX%2BfP5iiQQE0NKj7e2DAcIDUgJk%2Fob%2Brf6X%2FoACVI3o7%2F6a%2Fv6s%2F%2F8AuAAABckHYAImADAAAAEHAMIA0wFSAAizARQFJgArNf%2F%2FAHf%2F7AXnB3MCJgAxAAABBwBCAHUBUgAIswIeBSYAKzX%2F%2FwB3%2F%2BwF5wdzAiYAMQAAAQcAdQFGAVIACLMCHgUmACs1%2F%2F8Ad%2F%2FsBecHcwImADEAAAEHAMAAwwFSAAizAiMFJgArNf%2F%2FAHf%2F7AXnB2ACJgAxAAABBwDCAMMBUgAIswIaBSYAKzX%2F%2FwB3%2F%2BwF5wdWAiYAMQAAAQcAaQDDAVIACrQDAisFJgArNTUAAQCBAQwEEASaAAsAHUALBgMACQkMDQkGAwAAGS8yMjIREgE5ETMzMzEwAQE3AQEXAQEHAQEnAaz%2B1ZgBLQExmf7PAS2V%2Fs%2F%2B05YC0wEtmv7VASuW%2Fs%2F%2B0ZgBLf7VmAAAAwB3%2F6YF5wYEABMAGwAiADlAHBcfHBQUChwACgAjJBYeIRkNGUxZDQQDIUxZAxMAPysAGD8rERIAOTkREgE5OREzETMREjk5MTABEAAhIicHJzcmERAAITIXNxcHFgEUFwEmIyIGBTQnARYzIAXn%2Fpj%2BsMWLWqJaxgFpAVHGklSgWML71TgB%2BlRpubwC5jP%2BDExoAXMC3f6V%2FnpBh2yIwgGDAW0BgUZ9aIPC%2Foa%2FdAL0Lfn1tHX9ESf%2F%2FwCu%2F%2BwFXgdzAiYANwAAAQcAQgArAVIACLMBGwUmACs1%2F%2F8Arv%2FsBV4HcwImADcAAAEHAHUBDgFSAAizARsFJgArNf%2F%2FAK7%2F7AVeB3MCJgA3AAABBwDAAJoBUgAIswEgBSYAKzX%2F%2FwCu%2F%2BwFXgdWAiYANwAAAQcAaQCaAVIACrQCASgFJgArNTX%2F%2FwAAAAAE%2FgdzAiYAOwAAAQcAdQCBAVIACLMBEQUmACs1AAIAuAAABKoFtgAMABUANkAcEQAAFw0JBQUGBhYEDU1ZCRVNWQQJBAkGBwMGEgA%2FPxI5OS8vKysRATMRMxEzMxEzETMxMAEUBCEjESERIRUzMgQBMzI2NTQmIyMEqv7j%2FvqZ%2FsoBNrL%2BAQz9RGSRjn%2BIfAMC5fj%2B2wW25e7%2BPGl6a2gAAAEAoP%2FsBWgGHwA1AFRAKxQHISEnJwAALhoODjcuLy82DhohBwAnJwcaAxgqMypHWTMALxURGEpZERYAPysAGD8%2FKxESABc5ETMRMxEzEQEzETMRMxEzEjkRMxE5ETMzMTABFA4EFRQWFx4CFRQGIyImJzUWFjMyNTQmJicmJjU0Njc2NjU0JiMiBhURIRE0JCEyBAThKkBKQCo1QpJpM%2BnjY5A8NaVAqCBSSn5iRkZNPn9kdIL%2BzwElAQL0ASYE2UBhTDowKhYbNChbYnpOrK4dIvIkMnspMzwqSHdRQGoxN1AuPFFpYPuYBHPJ47EA%2F%2F8AVv%2FsBDsGIQImAEMAAAEGAEKjAAAIswIrESYAKzX%2F%2FwBW%2F%2BwEOwYhAiYAQwAAAQYAdW0AAAizAisRJgArNf%2F%2FAFb%2F7AQ7BiACJgBDAAABBgDA9%2F8ACLMCMBEmACs1%2F%2F8AVv%2FsBDsGDgImAEMAAAEGAMIKAAAIswInESYAKzX%2F%2FwBW%2F%2BwEOwYEAiYAQwAAAQYAaQYAAAq0AwI4ESYAKzU1%2F%2F8AVv%2FsBDsGsgImAEMAAAEGAMEpAAAKtAMCJhEmACs1NQADAFb%2F7Ab%2BBHUAKAAyADgAhUBFNTYDGCAgMhQNDTIyCTY2Jh8fOi0JCTklICM1IEpZNTUGAxgAGxszSlkbEA0pS1kNDRYGFhFGWRYQACNGWQAGBi9GWQYWAD8rEQAzKwAYPysREgA5GC8rABg%2FKxESADk5EjkYLysREgA5EQEzETMRMxEzMxESOREzETkRMxI5ORE5MTAFIiYnBgYjIiY1NDY3NzU0JiMiByc2MzIXNjYzMgAVFSEWFjMyNxUGBgEHBgYVFDMyNjUBIgchJiYFMYnhSGLFnqHD8vG%2FWU2MpWO96eNzQq143QEA%2FS0FkILEuE%2B4%2FUFxfHyMZXgCI9kRAa4CahRlaXVZvaWyqQkGVEVCTcplg0BB%2Fu3plIKSWOwnKAIaBARXW4F6ZQHw7HB8AP%2F%2FAFz%2BFAPdBHMCJgBFAAAABwB5AYMAAP%2F%2FAFz%2F7ARiBiECJgBHAAABBgBCqQAACLMCJBEmACs1%2F%2F8AXP%2FsBGIGIQImAEcAAAEGAHVzAAAIswIkESYAKzX%2F%2FwBc%2F%2BwEYgYhAiYARwAAAQYAwAgAAAizAikRJgArNf%2F%2FAFz%2F7ARiBgQCJgBHAAABBgBpEgAACrQDAjERJgArNTX%2F%2F%2F%2BbAAAB3AYhAiYAvQAAAQcAQv5PAAAACLMBDBEmACs1%2F%2F8AkQAAAtIGIQImAL0AAAEHAHX%2FRQAAAAizAQwRJgArNf%2F%2F%2F4YAAALrBiECJgC9AAABBwDA%2FswAAAAIswERESYAKzX%2F%2F%2F%2FjAAACkQYEAiYAvQAAAQcAaf7MAAAACrQCARkRJgArNTUAAgBc%2F%2BwEmAYjABsAJwB2QDsAGQIXFxwFCAMLAwICERwcCwspIhERKBkAGAIFCAMJCRgYAhYWHxQUH0ZZFBQOAg4lRlkOFgMCS1kDAQA%2FKwAYPysREgA5GC8rERIAORESOREzERI5ORESOTkRATMRMxEzETMREjkRMxESOTkRMxESOTkxMAEmJzcWFzcXBxYSFRAAIyIANTQAMzIXNyYnBycBNCYjIgYVFBYzMjYB%2FlBIZZBy4WSqnJT%2B3v%2F1%2FtoBBN3NRghDfeZkAhJ6a3lveHB7agUXNSewQUyLmmiP%2FpXo%2Fuj%2BxwES6%2BkBEWIEoneOnP1obIKJkoyOpAD%2F%2FwCgAAAEqAYOAiYAUAAAAQYAwjMAAAizARkRJgArNf%2F%2FAFz%2F7ASYBiECJgBRAAABBgBCoQAACLMCIhEmACs1%2F%2F8AXP%2FsBJgGIQImAFEAAAEHAHUAhwAAAAizAiIRJgArNf%2F%2FAFz%2F7ASYBiECJgBRAAABBgDADAAACLMCJxEmACs1%2F%2F8AXP%2FsBJgGDgImAFEAAAEGAMIMAAAIswIeESYAKzX%2F%2FwBc%2F%2BwEmAYEAiYAUQAAAQYAaQwAAAq0AwIvESYAKzU1AAMAWADdBDkExwADAA8AGwAqQBIWCgoQBAQAAwMdABwZEw0HAAEALzPEMsQyEQEzETMREjkRMzMRMzEwEzUhFQU0NjMyFhUUBiMiJhE0NjMyFhUUBiMiJlgD4f2DSkJCSUpBQUtKQkNISkFBSwJk29vvTEtOSUZSTgMES01RR0ZRTgADAFz%2FtASYBJEAEwAbACMAOUAcFx8cFBQKHAAKACUkFh4hGQ0ZR1kNEAMhR1kDFgA%2FKwAYPysREgA5ORESATk5ETMRMxESOTkxMAEQACEiJwcnNyYREAAhMhc3FwcWARQXASYjIgYFNCcBFjMyNgSY%2FuD%2B%2F35sQ5pEmAEeAQOEdDeYOo78%2BxMBPSs%2FemwBzQz%2ByyY2emsCMf7v%2FswtZWlknAEUARIBMDRSbFSb%2FvteSAHbF6WnUTz%2BMg%2Bp%2F%2F8Amv%2FsBKIGIQImAFcAAAEGAEKpAAAIswEdESYAKzX%2F%2FwCa%2F%2BwEogYhAiYAVwAAAQcAdQCmAAAACLMBHREmACs1%2F%2F8Amv%2FsBKIGIQImAFcAAAEGAMAxAAAIswEiESYAKzX%2F%2FwCa%2F%2BwEogYEAiYAVwAAAQYAaS8AAAq0AgEqESYAKzU1%2F%2F8AAP4UBI0GIQImAFsAAAEGAHU9AAAIswEfESYAKzUAAgCg%2FhQEtAYUABUAIQBEQCIfBgYjFQwQGhMPDxAQIhEAEBsMFQkDCR1HWQkWAxZHWQMQAD8rABg%2FKxESADk5GD8%2FEQEzETMRMzMSOTkRMxEzMTABNjYzMhIREAIjIicjFxcRIREhEQcHFyIGBxUUFjMyETQmAdEyomnG4N%2FH1WgOBwf%2BzwExBwfpcWgCa3TNZQPNUVX%2By%2F7z%2Fu%2F%2BzIk%2BXv47CAD%2BeXhITougIbScAVKlpQD%2F%2FwAA%2FhQEjQYEAiYAWwAAAQYAadwAAAq0AgEsESYAKzU1AAEAoAAAAdEEXgADABO3AAEBBAIPARUAPz8RATMRMzEwISERIQHR%2Fs8BMQReAAACAHf%2F7AdQBc0AFgAjAGVANhEVFQ0BICAHEw8AACUaBwckERRMWQwRAQ0DEREBDQ0QTFkNAwoXTFkKBAQdTFkEEgEVTFkBEgA%2FKwAYPysAGD8rABg%2FKxESADkYL19eXSsRATMRMxEzETMzEjkRMzMzETMxMCEhBgYjIAAREAAhMhYXIRUhESEVIREhASIGFRQWMzI2NxEmJgdQ%2FJcmji3%2Bwf6wAVMBPj2EIwNk%2Fc0CDv3yAjP7uKasrKRBeiYjhQkLAYoBaQFrAYMOCf7%2Bv%2F7%2BhwPL%2B%2FP0%2BRUSA4sTFgADAFz%2F7Ad7BHMAHwArADIAcEA6LzAOAhUVJiYIMDAdFBQ0IAgIMxwVGS8VSlkvLwAQECxKWRAQAg4ECwspR1kLEAAZRlkABAQjR1kEFgA%2FKxEAMysAGD8rERIAOTkYPysREgA5GC8rERIAOREBMxEzETMRMzMREjkRMxI5ORE5MTAFICcGIyImAjUQACEyFhc2MzIAFRUhFRYWMzI2NxUGBgEUFjMyNjU0JiMiBiUiBgchJiYFpv7xlY36oviFARsBAnDIR5Dv9AEQ%2FRYHlYVrumRRvftmbXt6a2x7emwD6l58CQHCAnUUm5uMAQixARUBLU9NnP7y7pQIf40qLuwnKAJFpqqpp6ampcJzeW99AAEAugTZBB8GIQANACpAEgUEBAIMAAAJCAICDg8CCYAFAAAvMhrNMhESATkRMzMzETMRMxEzMTABJicGByM1NjchFhYXFQNUnU1Ol8u9QwFlH5lIBNldU1FfG71wNLNGGwAAAgFUBNcDSgayAAsAFwAgQA8GEhIZGA8PCR8JAgkJFQMALzMzL10zERIBOREzMTABFAYjIiY1NDYzMhYHNCYjIgYVFBYzMjYDSo5wcIiHcW6QnjYqKjYwMCo2BcdshIBubIGEaS0zMy0tNDQAAQDPBNcEDAYOABcANEAZEA8DQAQDAxgZDBMABxMHEwdvEH8QAhCABAAvGsxdOTkvLxEzETMREgE5ETMaEMgyMTABIgYHIzY2MzIeAjMyNjczBgYjIi4CAckfOQ2VC492KU9NSiQfOQ2VC5F0KU9NSgVCNTaRpCEnIDQ2kaQhJyEAAAEAUgG0A64CmgADABG1AgUABAABAC8zEQEzETMxMBM1IRVSA1wBtObmAAEAUgG0B64CmgADABG1AgUABAABAC8zEQEzETMxMBM1IRVSB1wBtObmAAEAGQPBAaQFtgAHABlACgQFBwEHBwkABAMAP80RATMRMxDCMjEwEyc2EjczAgcnDhZlNdtCIwPBFlsBE3H%2B9eoAAAEAGQPBAaQFtgAGABdACQMEAQYGBwQGAwA%2FxhEBMxEzwjIxMAEXBgMjEjcBlg4yfttFHwW2FsX%2B5gEozQAAAQA%2F%2FvgBywDuAAYAGEAJAgMFAAUFBwMGAC%2FNEQEzETMQwjIxMCUGAyMSNyEByzR83EEkARjXyv7rAQrsAAACABkDwQN3BbYABwAPACVAEAsMCA4DBAYABgYRBw8DCwMAPzPNMhEBMxEzEMIy1DLCMjEwATYSNzMCByElNhI3MwIHIQHsFmU120Ij%2Fuj%2BHxZlNdtCI%2F7oA9dbARNx%2FvXqFlsBE3H%2B9eoAAgAZA8EDdwW2AAYADQAjQA8JCgcMAgMABQUOCgMMBQMAPzPGMhEBMxEzwjLUMsIyMTABBgMjEjchBQYDIxI3IQGkMn7bRR8BGQHhMn7bRR8BGAWgxf7mASjNFsX%2B5gEozQACAD%2F%2B%2BAOeAO4ABgANACJADgkKBwwCAwAFBQ4KAwwFAC8zxjIRATMRM8Iy1DLCMjEwJQYDIxI3IQUGAyMSNyEByzR83EEkARgB4jR83EEkARjXyv7rAQrsF8r%2B6wEK7AABAGIBrgKgBCkACwATtgYAAAwNCQMAL80REgE5ETMxMBM0NjMyFhUUBiMiJmKUi4mWl4iKlQLsmqOkmZimpgAAAQBSAF4CoAQEAAYAMEAVAwYCBAQBBQUIBgADAwIEBAUFBwIBAC8zEjkvMxESOREzMxEBMxEzMxEzwTIxMBMBFwEBBwFSAXPb%2FukBF9v%2BjQI9Acd3%2FqT%2BpHcBxQABAFIAXgKgBAQABgAwQBUEAgIDAAUBAQcGAAMDBAICAQEHBAUALzMSOS8zERI5ETMzEQEzETPBMjMRMzEwAQEnAQE3AQKg%2Fo3bARb%2B6tsBcwIj%2Fjt3AVwBXHf%2BOQAAAf53AAACkQW2AAMAGkALAwACAQICBAMDAhIAPz8RATMRMxDBMjEwAQEjAQKR%2FNXvAysFtvpKBbYAAAEAQv%2FsBIMFwQAnAIxASAYDCCUlHB8kGRYbCQwRESQLBQUIJCQpFx0dCBsbKAwXFwkYBh0eHVJZAx4PHn8eAgsDGB4YHhMiJQAiAE9ZIgcQDhMOTlkTGQA%2FKxEAMxg%2FKxEAMxESOTkYLy9fXl0RMysRADMRMzMRMxEBMxEzMxEzETMREjkRMxEzETk5Ejk5ETk5MxESOTkxMAEiBgchFSEHFRchFSEWITI3EQYjIgAnIzUzJjU3IzUzNgAzMhcHJiYDI3qeFwGT%2Fl4CAgFj%2Fq4zAQ6PhHSx9f7EKYl2BAJ0hSUBRPO8pGJFeATJjYawIy8hsvM5%2FwA7AQrrshcnNbDyARlS6B8jAAEAWAJkBDkDPwADABG1AgUABAABAC8zEQEzETMxMBM1IRVYA%2BECZNvb%2F%2F8AKQAABPgGHwAmAEgAAAAHAEsDGQAA%2F%2F8AKQAABOoGHwAmAEgAAAAHAE4DGQAAAAIADAJKAvYFvAAKABIAQkAfEgUHDgILAwMJAAIFAhMUDgkHCQYSAQUFEhIDBx4DIAA%2FPxI5LzMRMxI5MhESORESATk5ETMzMxEzEjk5ETMxMAEjFSM1ITUBMxEzITU0NwYGBwcC9n3u%2FoEBgex9%2FpUGCTUPfwLhl5eaAkH9zaRWYhpsF7%2F%2F%2FwApAAAIDgYfACYASAAAACcASAMZAAAABwBLBi8AAP%2F%2FACkAAAgABh8AJgBIAAAAJwBIAxkAAAAHAE4GLwAA%2F%2F8AKQAABo4GHwAmAEgAAAAHAEgDGQAAAAEAuAAAAe4FtgADABG2AAQFAQMAEgA%2FPxESATkxMDMRIRG4ATYFtvpK%2F%2F%2F%2FxgAAAgcHcwImANcAAAEHAEL%2BegFSAAizAQwFJgArNf%2F%2FAKcAAALoB3MCJgDXAAABBwB1%2F1sBUgAIswEMBSYAKzX%2F%2F%2F%2BgAAADBQdzAiYA1wAAAQcAwP7mAVIACLMBEQUmACs1%2F%2F%2F%2F%2FQAAAqsHVgImANcAAAEHAGn%2B5gFSAAq0AgEZBSYAKzU1AAEAAADcAIoAFgBYAAUAAgAQAC8AXAAAAQABCwADAAEAAAAkACQAJAAkAFYAegDvAXoB6AJwAogCtQLiAyADSwNoA30DngO8A%2F4EKwR5BOEFKgWFBeAGCgZ9BtkHEQdIB3EHlwfCCB4IrgjyCVIJlAnLCgYKNQqKCr8K6gspC0gLjgvJDAsMSgygDPMNUw15Da4N4A48Dn4Osg7nDwkPJw9JD3UPjA%2BvEAkQXRCZEOwRQhGEEiASXhKKEscTDhMlE4ETvBP%2FFFQUqhTcFTQVdhWyFeQWQBaFFtQXCRdUF2sXuhf6F%2FoYKxh6GNMZLxmNGbIaLxpmGt8bNRuJG6Ybrhw8HFMciRzDHP0dUh11Hb4d8h4THk0eeh6wHwQfGh8vH0UfpR%2B2H8cf2B%2FpH%2FsgDCBrIHcgiCCZIKogvCEMIR0hLiE%2FIVAhYSFzIaMiACIRIiIiMyJFIlYimCMQIyAjMCNAI1AjYSNyJAskFyQnJDckRyRYJGkkeiSLJJ0lGyUrJTslTCVcJWwlfSW%2BJhwmLCY9Jk0mXiZuJsgm2SbwJ18n5ygYKE4ojyikKLko2ij5KRgpTSl%2BKa4pzin8KisqSCrMKuEq7Sr5KzwrTCtcK2grfSuOK58rsCvCAAAAAQAAAAEZmh1fuTtfDzz1AAkIAAAAAADJQhegAAAAAMnoSqH7DP2oCo0IjQABAAkAAgAAAAAAAATNAMEAAAAABBQAAAIUAAACSgB1A8cAhQUrAC0EkQBYBzUAPwYAAFICIQCFArYAUgK2AD0EXAA%2FBJEAWAJSAD8CkwA9AkgAdQNOAA4EkQBKBJEAeQSRAE4EkQBOBJEAIwSRAGQEkQBIBJEANwSRAEgEkQBCAkgAdQJSAD8EkQBYBJEAWASRAFgD0QAGBy0AZgWFAAAFYAC4BRkAdwXsALgEewC4BGQAuAXLAHcGHwC4Aqb%2FaAVQALgEhQC4B4sAuAaBALgGXgB3BQYAuAZeAHcFSAC4BGgAXgSiACkGDACuBTMAAAe8AAAFVgAABP4AAASiADECpgCPA04ADAKmADMEQgAIA0r%2F%2FATbAUwE1QBWBRAAoAQdAFwFEABcBLoAXAMZACkEhQAGBUIAoAJxAJMCcf99BPYAoAJxAKAH2wCgBUIAoAT0AFwFEACgBRAAXAOiAKAD%2BgBcA3kALwVCAJoEjQAABtkAFASgAAoEjQAAA%2BcANwMnAB8EaAHHAycAUgSRAFgCFAAAAkoAdQSRAI8EkQBSBJEAcQSRAAYEaAHHA%2BMAagTbARcGqABkAxAALwTsAFIEkQBYApMAPQaoAGQEAP%2F6A20AXASRAFgDCAAvAwgAOwTbAUwFSACgBT0AcQJIAHUBpP%2FbAwgAXAMbADkE7ABSBwwALgcMAC4HDABaA9EAPQWFAAAFhQAABYUAAAWFAAAFhQAABYUAAAeeAAAFGQB3BHsAuAR7ALgEewCvBHsAuAXsAC8GgQC4Bl4AdwZeAHcGXgB3Bl4AdwZeAHcEkQCBBl4AdwYMAK4GDACuBgwArgYMAK4E%2FgAABQYAuAWwAKAE1QBWBNUAVgTVAFYE1QBWBNUAVgTVAFYHVgBWBB0AXAS6AFwEugBcBLoAXAS6AFwCcf%2BbAnEAkQJx%2F4YCcf%2FjBPQAXAVCAKAE9ABcBPQAXAT0AFwE9ABcBPQAXASRAFgE9ABcBUIAmgVCAJoFQgCaBUIAmgSNAAAFEACgBI0AAAJxAKAHyQB3B9MAXATbALoEngFUBNsAzwQAAFIIAABSAbwAGQG8ABkCVAA%2FA48AGQOPABkEJQA%2FAwIAYgLyAFIC8gBSAQr%2BdwSRAEIEkQBYBYkAKQWJACkDCAAMCKAAKQigACkGMQApAqYAuP%2FGAKf%2FoP%2F9AAEAAAiN%2FagAAAqN%2Bwz%2BeQqNAAEAAAAAAAAAAAAAAAAAAADYAAMFDwK8AAUACAWaBTMAAAEfBZoFMwAAA9EAZgH8CAICCwgGAwUEAgIE4AAC70AAIFsAAAAoAAAAADFBU0MAIAAg%2F%2F0GH%2F4UAIQIjQJYIAABnwAAAAAEXgW2AAAAIAADAAAAAQADAAEAAAAMAAQAuAAAACoAIAAEAAoASABJAH4AywDPAP8BMQFTAsYC2gLcIBQgGiAeICIgOiBEIHQgrCIS%2F%2F8AAAAgAEkASgCgAMwA0AExAVICxgLaAtwgEyAYIBwgIiA5IEQgdCCsIhL%2F%2F%2F%2FjAI7%2F4v%2FBAAz%2Fvf%2BM%2F2z9%2Bv3n%2FebgsOCt4KzgqeCT4IrgX%2BAj3r4AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBHW1pZWFVUU1JRUE9OTUxLSklIR0ZFRENCQUA%2FPj08Ozo5ODc2NTEwLy4tLCgnJiUkIyIhHxgUERAPDg0LCgkIBwYFBAMCAQAsILABYEWwAyUgEUZhI0UjYUgtLCBFGGhELSxFI0ZgsCBhILBGYLAEJiNISC0sRSNGI2GwIGAgsCZhsCBhsAQmI0hILSxFI0ZgsEBhILBmYLAEJiNISC0sRSNGI2GwQGAgsCZhsEBhsAQmI0hILSwBECA8ADwtLCBFIyCwzUQjILgBWlFYIyCwjUQjWSCw7VFYIyCwTUQjWSCwBCZRWCMgsA1EI1khIS0sICBFGGhEILABYCBFsEZ2aIpFYEQtLAGxCwpDI0NlCi0sALEKC0MjQwstLACwKCNwsQEoPgGwKCNwsQIoRTqxAgAIDS0sIEWwAyVFYWSwUFFYRUQbISFZLSxJsA4jRC0sIEWwAENgRC0sAbAGQ7AHQ2UKLSwgabBAYbAAiyCxLMCKjLgQAGJgKwxkI2RhXFiwA2FZLSyKA0WKioewESuwKSNEsCl65BgtLEVlsCwjREWwKyNELSxLUlhFRBshIVktLEtRWEVEGyEhWS0sAbAFJRAjIIr1ALABYCPt7C0sAbAFJRAjIIr1ALABYSPt7C0sAbAGJRD1AO3sLSywAkOwAVJYISEhISEbRiNGYIqKRiMgRopgimG4%2F4BiIyAQI4qxDAyKcEVgILAAUFiwAWG4%2F7qLG7BGjFmwEGBoATpZLSwgRbADJUZSS7ATUVtYsAIlRiBoYbADJbADJT8jITgbIRFZLSwgRbADJUZQWLACJUYgaGGwAyWwAyU%2FIyE4GyERWS0sALAHQ7AGQwstLCEhDGQjZIu4QABiLSwhsIBRWAxkI2SLuCAAYhuyAEAvK1mwAmAtLCGwwFFYDGQjZIu4FVViG7IAgC8rWbACYC0sDGQjZIu4QABiYCMhLSxLU1iKsAQlSWQjRWmwQIthsIBisCBharAOI0QjELAO9hshI4oSESA5L1ktLEtTWCCwAyVJZGkgsAUmsAYlSWQjYbCAYrAgYWqwDiNEsAQmELAO9ooQsA4jRLAO9rAOI0SwDu0birAEJhESIDkjIDkvL1ktLEUjRWAjRWAjRWAjdmgYsIBiIC0ssEgrLSwgRbAAVFiwQEQgRbBAYUQbISFZLSxFsTAvRSNFYWCwAWBpRC0sS1FYsC8jcLAUI0IbISFZLSxLUVggsAMlRWlTWEQbISFZGyEhWS0sRbAUQ7AAYGOwAWBpRC0ssC9FRC0sRSMgRYpgRC0sRiNGYIqKRiMgRopgimG4%2F4BiIyAQI4qxDAyKcEVgILAAUFiwAWG4%2F4CLG7CBjFloOi0sSyNRWLkAM%2F%2FgsTQgG7MzADQAWURELSywFkNYsAMmRYpYZGawH2AbZLAgYGYgWBshsEBZsAFhWSNYZVmwKSNEIxCwKeAbISEhISFZLSywAkNUWEtTI0tRWlg4GyEhWRshISEhWS0ssBZDWLAEJUVksCBgZiBYGyGwQFmwAWEjWBtlWbApI0SwBSWwCCUIIFgCGwNZsAQlELAFJSBGsAQlI0I8sAQlsAclCLAHJRCwBiUgRrAEJbABYCNCPCBYARsAWbAEJRCwBSWwKeCwKSBFZUSwByUQsAYlsCngsAUlsAglCCBYAhsDWbAFJbADJUNIsAQlsAclCLAGJbADJbABYENIGyFZISEhISEhIS0sArAEJSAgRrAEJSNCsAUlCLADJUVIISEhIS0sArADJSCwBCUIsAIlQ0ghISEtLEUjIEUYILAAUCBYI2UjWSNoILBAUFghsEBZI1hlWYpgRC0sS1MjS1FaWCBFimBEGyEhWS0sS1RYIEWKYEQbISFZLSxLUyNLUVpYOBshIVktLLAAIUtUWDgbISFZLSywAkNUWLBGKxshISEhWS0ssAJDVFiwRysbISEhWS0ssAJDVFiwSCsbISEhIVktLLACQ1RYsEkrGyEhIVktLCCKCCNLU4pLUVpYIzgbISFZLSwAsAIlSbAAU1ggsEA4ERshWS0sAUYjRmAjRmEjIBAgRophuP%2BAYoqxQECKcEVgaDotLCCKI0lkiiNTWDwbIVktLEtSWH0belktLLASAEsBS1RCLSyxAgBCsSMBiFGxQAGIU1pYuRAAACCIVFiyAgECQ2BCWbEkAYhRWLkgAABAiFRYsgICAkNgQrEkAYhUWLICIAJDYEIASwFLUliyAggCQ2BCWRu5QAAAgIhUWLICBAJDYEJZuUAAAIBjuAEAiFRYsgIIAkNgQlm5QAABAGO4AgCIVFiyAhACQ2BCWbEmAYhRWLlAAAIAY7gEAIhUWLICQAJDYEJZuUAABABjuAgAiFRYsgKAAkNgQllZWVlZWbEAAkNUWEAKBUAIQAlADAINAhuxAQJDVFiyBUAIugEAAAkBALMMAQ0BG7GAAkNSWLIFQAi4AYCxCUAbsgVACLoBgAAJAUBZuUAAAICIVblAAAIAY7gEAIhVWlizDAANARuzDAANAVlZWUJCQkJCLSxFGGgjS1FYIyBFIGSwQFBYfFloimBZRC0ssAAWsAIlsAIlAbABIz4AsAIjPrEBAgYMsAojZUKwCyNCAbABIz8AsAIjP7EBAgYMsAYjZUKwByNCsAEWAS0ssICwAkNQsAGwAkNUW1ghIxCwIBrJG4oQ7VktLLBZKy0sihDlLUCLCSFIIFUgAQNVH0gDVR4D%2Fx9QTBYfT01kH05MZB8mNBBVJTMkVRkT%2Fx8HBP8fBgP%2FH01MHh9kTAFMRg0fEzMSVQUBA1UEMwNVHwMBDwM%2FA68DAwZLRstG20YDIzMiVRwzG1UWMxVVEQEPVRAzD1WvD88PAjAPAQEzAFVvAH8ArwDvAAQQAAGAFgEFAbgBkLFUUysrS7gH%2F1JLsAlQW7ABiLAlU7ABiLBAUVqwBoiwAFVaW1ixAQGOWYWNjQBCHUuwMlNYsCAdWUuwZFNYsBAdsRYAQllzcytzcysrKysrc15zdCsrKyt0KysrKysrKysrKysrKxheBhQAFwAABbYAFwB1BbYFzQAAAAAAAAAAAAAAAAAABF4AFwB7AAD%2F7AAAAAD%2F7AAAAAD%2F7AAA%2FhT%2F7AAABbYAFfyU%2F%2Bv%2Bj%2F%2Fg%2Frz%2F7AAS%2FlYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA5QD2AQABKwDTALIBAgD2AQIA9gDtAN8AsgAAAVQAAAAAAAEAAB6MAAEFFRgAAAoGfgAFACT%2FcQAFADYAKQAFADgAKQAFADkAKQAFADsAFAAFAEP%2FrgAFAEX%2FhQAFAEb%2FhQAFAEf%2FhQAFAEn%2FwwAFAE%2F%2FwwAFAFD%2FwwAFAFH%2FhQAFAFL%2FwwAFAFP%2FhQAFAFT%2FwwAFAFX%2FwwAFAFf%2FwwAFAIH%2FcQAFAIL%2FcQAFAIP%2FcQAFAIT%2FcQAFAIX%2FcQAFAIb%2FcQAFAJoAFAAFAJ3%2FhQAFAJ7%2FrgAFAJ%2F%2FrgAFAKD%2FrgAFAKH%2FrgAFAKL%2FrgAFAKP%2FrgAFAKT%2FhQAFAKX%2FhQAFAKb%2FhQAFAKf%2FhQAFAKj%2FhQAFAK%2F%2FhQAFALD%2FhQAFALH%2FhQAFALL%2FhQAFALP%2FhQAFALX%2FhQAFALb%2FwwAFALf%2FwwAFALj%2FwwAFALn%2FwwAFAL%2F%2FhQAKACT%2FcQAKADYAKQAKADgAKQAKADkAKQAKADsAFAAKAEP%2FrgAKAEX%2FhQAKAEb%2FhQAKAEf%2FhQAKAEn%2FwwAKAE%2F%2FwwAKAFD%2FwwAKAFH%2FhQAKAFL%2FwwAKAFP%2FhQAKAFT%2FwwAKAFX%2FwwAKAFf%2FwwAKAIH%2FcQAKAIL%2FcQAKAIP%2FcQAKAIT%2FcQAKAIX%2FcQAKAIb%2FcQAKAJoAFAAKAJ3%2FhQAKAJ7%2FrgAKAJ%2F%2FrgAKAKD%2FrgAKAKH%2FrgAKAKL%2FrgAKAKP%2FrgAKAKT%2FhQAKAKX%2FhQAKAKb%2FhQAKAKf%2FhQAKAKj%2FhQAKAK%2F%2FhQAKALD%2FhQAKALH%2FhQAKALL%2FhQAKALP%2FhQAKALX%2FhQAKALb%2FwwAKALf%2FwwAKALj%2FwwAKALn%2FwwAKAL%2F%2FhQALACwAuAAPACb%2FmgAPACr%2FmgAPADH%2FmgAPADP%2FmgAPADb%2FcQAPADf%2F1wAPADj%2FhQAPADn%2FhQAPADv%2FhQAPAIj%2FmgAPAI%2F%2FmgAPAJD%2FmgAPAJH%2FmgAPAJL%2FmgAPAJP%2FmgAPAJX%2FmgAPAJb%2F1wAPAJf%2F1wAPAJj%2F1wAPAJn%2F1wAPAJr%2FhQAPAL7%2FmgAQADb%2FrgARACb%2FmgARACr%2FmgARADH%2FmgARADP%2FmgARADb%2FcQARADf%2F1wARADj%2FhQARADn%2FhQARADv%2FhQARAIj%2FmgARAI%2F%2FmgARAJD%2FmgARAJH%2FmgARAJL%2FmgARAJP%2FmgARAJX%2FmgARAJb%2F1wARAJf%2F1wARAJj%2F1wARAJn%2F1wARAJr%2FhQARAL7%2FmgAkAAX%2FcQAkAAr%2FcQAkACb%2F1wAkACr%2F1wAkACwBCgAkADH%2F1wAkADP%2F1wAkADb%2FcQAkADj%2FrgAkADn%2FrgAkADv%2FhQAkAIj%2F1wAkAI%2F%2F1wAkAJD%2F1wAkAJH%2F1wAkAJL%2F1wAkAJP%2F1wAkAJX%2F1wAkAJr%2FhQAkAL7%2F1wAkAMb%2FcQAkAMn%2FcQAlAA%2F%2FrgAlABH%2FrgAlACT%2F1wAlADb%2FwwAlADj%2F7AAlADn%2F7AAlADr%2F1wAlADv%2F7AAlADz%2F7AAlAIH%2F1wAlAIL%2F1wAlAIP%2F1wAlAIT%2F1wAlAIX%2F1wAlAIb%2F1wAlAJr%2F7AAlAMf%2FrgAlAMr%2FrgAmACb%2F1wAmACr%2F1wAmADH%2F1wAmADP%2F1wAmAIj%2F1wAmAI%2F%2F1wAmAJD%2F1wAmAJH%2F1wAmAJL%2F1wAmAJP%2F1wAmAJX%2F1wAmAL7%2F1wAnAA%2F%2FrgAnABH%2FrgAnACT%2F1wAnADb%2FwwAnADj%2F7AAnADn%2F7AAnADr%2F1wAnADv%2F7AAnADz%2F7AAnAIH%2F1wAnAIL%2F1wAnAIP%2F1wAnAIT%2F1wAnAIX%2F1wAnAIb%2F1wAnAJr%2F7AAnAMf%2FrgAnAMr%2FrgAoACwAewApAA%2F%2FhQApABH%2FhQApACIAKQApACT%2F1wApAIH%2F1wApAIL%2F1wApAIP%2F1wApAIT%2F1wApAIX%2F1wApAIb%2F1wApAMf%2FhQApAMr%2FhQAtACb%2F1wAtACr%2F1wAtADH%2F1wAtADP%2F1wAtAIj%2F1wAtAI%2F%2F1wAtAJD%2F1wAtAJH%2F1wAtAJL%2F1wAtAJP%2F1wAtAJX%2F1wAtAL7%2F1wAuAAX%2FXAAuAAr%2FXAAuACb%2F1wAuACr%2F1wAuADH%2F1wAuADP%2F1wAuADb%2F1wAuADf%2F7AAuADj%2F1wAuADn%2F1wAuADv%2FwwAuAIj%2F1wAuAI%2F%2F1wAuAJD%2F1wAuAJH%2F1wAuAJL%2F1wAuAJP%2F1wAuAJX%2F1wAuAJb%2F7AAuAJf%2F7AAuAJj%2F7AAuAJn%2F7AAuAJr%2FwwAuAL7%2F1wAuAMb%2FXAAuAMn%2FXAAxAA%2F%2FrgAxABH%2FrgAxACT%2F1wAxADb%2FwwAxADj%2F7AAxADn%2F7AAxADr%2F1wAxADv%2F7AAxADz%2F7AAxAIH%2F1wAxAIL%2F1wAxAIP%2F1wAxAIT%2F1wAxAIX%2F1wAxAIb%2F1wAxAJr%2F7AAxAMf%2FrgAxAMr%2FrgAyAA%2F%2B9gAyABH%2B9gAyACT%2FmgAyADr%2F1wAyADz%2F7AAyAIH%2FmgAyAIL%2FmgAyAIP%2FmgAyAIT%2FmgAyAIX%2FmgAyAIb%2FmgAyAMf%2B9gAyAMr%2B9gAzAA%2F%2FrgAzABH%2FrgAzACT%2F1wAzADb%2FwwAzADj%2F7AAzADn%2F7AAzADr%2F1wAzADv%2F7AAzADz%2F7AAzAIH%2F1wAzAIL%2F1wAzAIP%2F1wAzAIT%2F1wAzAIX%2F1wAzAIb%2F1wAzAJr%2F7AAzAMf%2FrgAzAMr%2FrgA2AA%2F%2FhQA2ABD%2FrgA2ABH%2FhQA2ACIAKQA2ACT%2FcQA2ACb%2F1wA2ACr%2F1wA2ADH%2F1wA2ADP%2F1wA2ADYAKQA2AEP%2FXAA2AEX%2FcQA2AEb%2FcQA2AEf%2FcQA2AEn%2FcQA2AE%2F%2FmgA2AFD%2FmgA2AFH%2FcQA2AFL%2FmgA2AFP%2FcQA2AFT%2FmgA2AFX%2FhQA2AFf%2FmgA2AFj%2F1wA2AFn%2F1wA2AFr%2F1wA2AFv%2F1wA2AFz%2FrgA2AIH%2FcQA2AIL%2FcQA2AIP%2FcQA2AIT%2FcQA2AIX%2FcQA2AIb%2FcQA2AIj%2F1wA2AI%2F%2F1wA2AJD%2F1wA2AJH%2F1wA2AJL%2F1wA2AJP%2F1wA2AJX%2F1wA2AJ3%2FcQA2AJ7%2FXAA2AJ%2F%2FXAA2AKD%2FXAA2AKH%2FXAA2AKL%2FXAA2AKP%2FXAA2AKT%2FcQA2AKX%2FcQA2AKb%2FcQA2AKf%2FcQA2AKj%2FcQA2AK%2F%2FcQA2ALD%2FcQA2ALH%2FcQA2ALL%2FcQA2ALP%2FcQA2ALX%2FcQA2ALb%2FmgA2ALf%2FmgA2ALj%2FmgA2ALn%2FmgA2ALr%2F1wA2AL7%2F1wA2AL%2F%2FcQA2AMP%2FrgA2AMT%2FrgA2AMf%2FhQA2AMr%2FhQA3AA%2F%2F1wA3ABH%2F1wA3ACT%2F7AA3AIH%2F7AA3AIL%2F7AA3AIP%2F7AA3AIT%2F7AA3AIX%2F7AA3AIb%2F7AA3AMf%2F1wA3AMr%2F1wA4AA%2F%2FmgA4ABH%2FmgA4ACIAKQA4ACT%2FrgA4ACb%2F7AA4ACr%2F7AA4ADH%2F7AA4ADP%2F7AA4AEP%2F1wA4AEX%2F1wA4AEb%2F1wA4AEf%2F1wA4AEn%2F7AA4AE%2F%2F7AA4AFD%2F7AA4AFH%2F1wA4AFL%2F7AA4AFP%2F1wA4AFT%2F7AA4AFX%2F7AA4AFf%2F7AA4AIH%2FrgA4AIL%2FrgA4AIP%2FrgA4AIT%2FrgA4AIX%2FrgA4AIb%2FrgA4AIj%2F7AA4AI%2F%2F7AA4AJD%2F7AA4AJH%2F7AA4AJL%2F7AA4AJP%2F7AA4AJX%2F7AA4AJ3%2F1wA4AJ7%2F1wA4AJ%2F%2F1wA4AKD%2F1wA4AKH%2F1wA4AKL%2F1wA4AKP%2F1wA4AKT%2F1wA4AKX%2F1wA4AKb%2F1wA4AKf%2F1wA4AKj%2F1wA4AK%2F%2F1wA4ALD%2F1wA4ALH%2F1wA4ALL%2F1wA4ALP%2F1wA4ALX%2F1wA4ALb%2F7AA4ALf%2F7AA4ALj%2F7AA4ALn%2F7AA4AL7%2F7AA4AL%2F%2F1wA4AMf%2FmgA4AMr%2FmgA5AA%2F%2FmgA5ABH%2FmgA5ACIAKQA5ACT%2FrgA5ACb%2F7AA5ACr%2F7AA5ADH%2F7AA5ADP%2F7AA5AEP%2F1wA5AEX%2F1wA5AEb%2F1wA5AEf%2F1wA5AEn%2F7AA5AE%2F%2F7AA5AFD%2F7AA5AFH%2F1wA5AFL%2F7AA5AFP%2F1wA5AFT%2F7AA5AFX%2F7AA5AFf%2F7AA5AIH%2FrgA5AIL%2FrgA5AIP%2FrgA5AIT%2FrgA5AIX%2FrgA5AIb%2FrgA5AIj%2F7AA5AI%2F%2F7AA5AJD%2F7AA5AJH%2F7AA5AJL%2F7AA5AJP%2F7AA5AJX%2F7AA5AJ3%2F1wA5AJ7%2F1wA5AJ%2F%2F1wA5AKD%2F1wA5AKH%2F1wA5AKL%2F1wA5AKP%2F1wA5AKT%2F1wA5AKX%2F1wA5AKb%2F1wA5AKf%2F1wA5AKj%2F1wA5AK%2F%2F1wA5ALD%2F1wA5ALH%2F1wA5ALL%2F1wA5ALP%2F1wA5ALX%2F1wA5ALb%2F7AA5ALf%2F7AA5ALj%2F7AA5ALn%2F7AA5AL7%2F7AA5AL%2F%2F1wA5AMf%2FmgA5AMr%2FmgA6ACb%2F1wA6ACr%2F1wA6ADH%2F1wA6ADP%2F1wA6AIj%2F1wA6AI%2F%2F1wA6AJD%2F1wA6AJH%2F1wA6AJL%2F1wA6AJP%2F1wA6AJX%2F1wA6AL7%2F1wA7AA%2F%2FhQA7ABH%2FhQA7ACIAKQA7ACT%2FhQA7ACb%2F1wA7ACr%2F1wA7ADH%2F1wA7ADP%2F1wA7AEP%2FmgA7AEX%2FmgA7AEb%2FmgA7AEf%2FmgA7AEn%2F1wA7AE%2F%2FwwA7AFD%2FwwA7AFH%2FmgA7AFL%2FwwA7AFP%2FmgA7AFT%2FwwA7AFX%2FrgA7AFf%2FwwA7AFz%2F1wA7AIH%2FhQA7AIL%2FhQA7AIP%2FhQA7AIT%2FhQA7AIX%2FhQA7AIb%2FhQA7AIj%2F1wA7AI%2F%2F1wA7AJD%2F1wA7AJH%2F1wA7AJL%2F1wA7AJP%2F1wA7AJX%2F1wA7AJ3%2FmgA7AJ7%2FmgA7AJ%2F%2FmgA7AKD%2FmgA7AKH%2FmgA7AKL%2FmgA7AKP%2FmgA7AKT%2FmgA7AKX%2FmgA7AKb%2FmgA7AKf%2FmgA7AKj%2FmgA7AK%2F%2FmgA7ALD%2FmgA7ALH%2FmgA7ALL%2FmgA7ALP%2FmgA7ALX%2FmgA7ALb%2FwwA7ALf%2FwwA7ALj%2FwwA7ALn%2FwwA7AL7%2F1wA7AL%2F%2FmgA7AMf%2FhQA7AMr%2FhQA8ACb%2F7AA8ACr%2F7AA8ADH%2F7AA8ADP%2F7AA8AIj%2F7AA8AI%2F%2F7AA8AJD%2F7AA8AJH%2F7AA8AJL%2F7AA8AJP%2F7AA8AJX%2F7AA8AL7%2F7AA9ACwAuABDAAX%2F7ABDAAr%2F7ABDAMb%2F7ABDAMn%2F7ABEAAX%2F7ABEAAr%2F7ABEAFj%2F1wBEAFn%2F1wBEAFr%2F1wBEAFv%2F1wBEAFz%2F7ABEALr%2F1wBEAMb%2F7ABEAMn%2F7ABFAAUAKQBFAAoAKQBFAMYAKQBFAMkAKQBHAAX%2F7ABHAAr%2F7ABHAFj%2F1wBHAFn%2F1wBHAFr%2F1wBHAFv%2F1wBHAFz%2F7ABHALr%2F1wBHAMb%2F7ABHAMn%2F7ABIAAUAewBIAAoAewBIAMYAewBIAMkAewBKAAX%2F7ABKAAr%2F7ABKAMb%2F7ABKAMn%2F7ABNAEX%2F1wBNAEb%2F1wBNAEf%2F1wBNAFH%2F1wBNAFP%2F1wBNAJ3%2F1wBNAKT%2F1wBNAKX%2F1wBNAKb%2F1wBNAKf%2F1wBNAKj%2F1wBNAK%2F%2F1wBNALD%2F1wBNALH%2F1wBNALL%2F1wBNALP%2F1wBNALX%2F1wBNAL%2F%2F1wBPAAX%2F7ABPAAr%2F7ABPAMb%2F7ABPAMn%2F7ABQAAX%2F7ABQAAr%2F7ABQAMb%2F7ABQAMn%2F7ABRAAX%2F7ABRAAr%2F7ABRAFj%2F1wBRAFn%2F1wBRAFr%2F1wBRAFv%2F1wBRAFz%2F7ABRALr%2F1wBRAMb%2F7ABRAMn%2F7ABSAAX%2F7ABSAAr%2F7ABSAFj%2F1wBSAFn%2F1wBSAFr%2F1wBSAFv%2F1wBSAFz%2F7ABSALr%2F1wBSAMb%2F7ABSAMn%2F7ABUAAUAUgBUAAoAUgBUAEP%2F1wBUAEX%2F1wBUAEb%2F1wBUAEf%2F1wBUAEn%2F7ABUAFH%2F1wBUAFP%2F1wBUAJ3%2F1wBUAJ7%2F1wBUAJ%2F%2F1wBUAKD%2F1wBUAKH%2F1wBUAKL%2F1wBUAKP%2F1wBUAKT%2F1wBUAKX%2F1wBUAKb%2F1wBUAKf%2F1wBUAKj%2F1wBUAK%2F%2F1wBUALD%2F1wBUALH%2F1wBUALL%2F1wBUALP%2F1wBUALX%2F1wBUAL%2F%2F1wBUAMYAUgBUAMkAUgBWAAUAKQBWAAoAKQBWAMYAKQBWAMkAKQBYAAUAUgBYAAoAUgBYAA%2F%2FrgBYABH%2FrgBYACIAKQBYAMYAUgBYAMf%2FrgBYAMkAUgBYAMr%2FrgBZAAUAUgBZAAoAUgBZAA%2F%2FrgBZABH%2FrgBZACIAKQBZAMYAUgBZAMf%2FrgBZAMkAUgBZAMr%2FrgBaAEX%2F1wBaAEb%2F1wBaAEf%2F1wBaAFH%2F1wBaAFP%2F1wBaAJ3%2F1wBaAKT%2F1wBaAKX%2F1wBaAKb%2F1wBaAKf%2F1wBaAKj%2F1wBaAK%2F%2F1wBaALD%2F1wBaALH%2F1wBaALL%2F1wBaALP%2F1wBaALX%2F1wBaAL%2F%2F1wBbAAUAUgBbAAoAUgBbAA%2F%2FrgBbABH%2FrgBbACIAKQBbAMYAUgBbAMf%2FrgBbAMkAUgBbAMr%2FrgBdACwAuACBAAX%2FcQCBAAr%2FcQCBACb%2F1wCBACr%2F1wCBACwBCgCBADH%2F1wCBADP%2F1wCBADb%2FcQCBADj%2FrgCBADn%2FrgCBADv%2FhQCBAIj%2F1wCBAI%2F%2F1wCBAJD%2F1wCBAJH%2F1wCBAJL%2F1wCBAJP%2F1wCBAJX%2F1wCBAJr%2FhQCBAL7%2F1wCBAMb%2FcQCBAMn%2FcQCCAAX%2FcQCCAAr%2FcQCCACb%2F1wCCACr%2F1wCCACwBCgCCADH%2F1wCCADP%2F1wCCADb%2FcQCCADj%2FrgCCADn%2FrgCCADv%2FhQCCAIj%2F1wCCAI%2F%2F1wCCAJD%2F1wCCAJH%2F1wCCAJL%2F1wCCAJP%2F1wCCAJX%2F1wCCAJr%2FhQCCAL7%2F1wCCAMb%2FcQCCAMn%2FcQCDAAX%2FcQCDAAr%2FcQCDACb%2F1wCDACr%2F1wCDACwBCgCDADH%2F1wCDADP%2F1wCDADb%2FcQCDADj%2FrgCDADn%2FrgCDADv%2FhQCDAIj%2F1wCDAI%2F%2F1wCDAJD%2F1wCDAJH%2F1wCDAJL%2F1wCDAJP%2F1wCDAJX%2F1wCDAJr%2FhQCDAL7%2F1wCDAMb%2FcQCDAMn%2FcQCEAAX%2FcQCEAAr%2FcQCEACb%2F1wCEACr%2F1wCEACwBCgCEADH%2F1wCEADP%2F1wCEADb%2FcQCEADj%2FrgCEADn%2FrgCEADv%2FhQCEAIj%2F1wCEAI%2F%2F1wCEAJD%2F1wCEAJH%2F1wCEAJL%2F1wCEAJP%2F1wCEAJX%2F1wCEAJr%2FhQCEAL7%2F1wCEAMb%2FcQCEAMn%2FcQCFAAX%2FcQCFAAr%2FcQCFACb%2F1wCFACr%2F1wCFACwBCgCFADH%2F1wCFADP%2F1wCFADb%2FcQCFADj%2FrgCFADn%2FrgCFADv%2FhQCFAIj%2F1wCFAI%2F%2F1wCFAJD%2F1wCFAJH%2F1wCFAJL%2F1wCFAJP%2F1wCFAJX%2F1wCFAJr%2FhQCFAL7%2F1wCFAMb%2FcQCFAMn%2FcQCGAAX%2FcQCGAAr%2FcQCGACb%2F1wCGACr%2F1wCGACwBCgCGADH%2F1wCGADP%2F1wCGADb%2FcQCGADj%2FrgCGADn%2FrgCGADv%2FhQCGAIj%2F1wCGAI%2F%2F1wCGAJD%2F1wCGAJH%2F1wCGAJL%2F1wCGAJP%2F1wCGAJX%2F1wCGAJr%2FhQCGAL7%2F1wCGAMb%2FcQCGAMn%2FcQCHACwAewCIACb%2F1wCIACr%2F1wCIADH%2F1wCIADP%2F1wCIAIj%2F1wCIAI%2F%2F1wCIAJD%2F1wCIAJH%2F1wCIAJL%2F1wCIAJP%2F1wCIAJX%2F1wCIAL7%2F1wCJACwAewCKACwAewCLACwAewCMACwAewCNAA%2F%2FrgCNABH%2FrgCNACT%2F1wCNADb%2FwwCNADj%2F7ACNADn%2F7ACNADr%2F1wCNADv%2F7ACNADz%2F7ACNAIH%2F1wCNAIL%2F1wCNAIP%2F1wCNAIT%2F1wCNAIX%2F1wCNAIb%2F1wCNAJr%2F7ACNAMf%2FrgCNAMr%2FrgCPAA%2F%2FrgCPABH%2FrgCPACT%2F1wCPADb%2FwwCPADj%2F7ACPADn%2F7ACPADr%2F1wCPADv%2F7ACPADz%2F7ACPAIH%2F1wCPAIL%2F1wCPAIP%2F1wCPAIT%2F1wCPAIX%2F1wCPAIb%2F1wCPAJr%2F7ACPAMf%2FrgCPAMr%2FrgCQAA%2F%2FrgCQABH%2FrgCQACT%2F1wCQADb%2FwwCQADj%2F7ACQADn%2F7ACQADr%2F1wCQADv%2F7ACQADz%2F7ACQAIH%2F1wCQAIL%2F1wCQAIP%2F1wCQAIT%2F1wCQAIX%2F1wCQAIb%2F1wCQAJr%2F7ACQAMf%2FrgCQAMr%2FrgCRAA%2F%2FrgCRABH%2FrgCRACT%2F1wCRADb%2FwwCRADj%2F7ACRADn%2F7ACRADr%2F1wCRADv%2F7ACRADz%2F7ACRAIH%2F1wCRAIL%2F1wCRAIP%2F1wCRAIT%2F1wCRAIX%2F1wCRAIb%2F1wCRAJr%2F7ACRAMf%2FrgCRAMr%2FrgCSAA%2F%2FrgCSABH%2FrgCSACT%2F1wCSADb%2FwwCSADj%2F7ACSADn%2F7ACSADr%2F1wCSADv%2F7ACSADz%2F7ACSAIH%2F1wCSAIL%2F1wCSAIP%2F1wCSAIT%2F1wCSAIX%2F1wCSAIb%2F1wCSAJr%2F7ACSAMf%2FrgCSAMr%2FrgCTAA%2F%2FrgCTABH%2FrgCTACT%2F1wCTADb%2FwwCTADj%2F7ACTADn%2F7ACTADr%2F1wCTADv%2F7ACTADz%2F7ACTAIH%2F1wCTAIL%2F1wCTAIP%2F1wCTAIT%2F1wCTAIX%2F1wCTAIb%2F1wCTAJr%2F7ACTAMf%2FrgCTAMr%2FrgCVAA%2F%2FrgCVABH%2FrgCVACT%2F1wCVADb%2FwwCVADj%2F7ACVADn%2F7ACVADr%2F1wCVADv%2F7ACVADz%2F7ACVAIH%2F1wCVAIL%2F1wCVAIP%2F1wCVAIT%2F1wCVAIX%2F1wCVAIb%2F1wCVAJr%2F7ACVAMf%2FrgCVAMr%2FrgCWAA%2F%2F1wCWABH%2F1wCWACT%2F7ACWAIH%2F7ACWAIL%2F7ACWAIP%2F7ACWAIT%2F7ACWAIX%2F7ACWAIb%2F7ACWAMf%2F1wCWAMr%2F1wCXAA%2F%2F1wCXABH%2F1wCXACT%2F7ACXAIH%2F7ACXAIL%2F7ACXAIP%2F7ACXAIT%2F7ACXAIX%2F7ACXAIb%2F7ACXAMf%2F1wCXAMr%2F1wCYAA%2F%2F1wCYABH%2F1wCYACT%2F7ACYAIH%2F7ACYAIL%2F7ACYAIP%2F7ACYAIT%2F7ACYAIX%2F7ACYAIb%2F7ACYAMf%2F1wCYAMr%2F1wCZAA%2F%2F1wCZABH%2F1wCZACT%2F7ACZAIH%2F7ACZAIL%2F7ACZAIP%2F7ACZAIT%2F7ACZAIX%2F7ACZAIb%2F7ACZAMf%2F1wCZAMr%2F1wCaAA%2F%2FhQCaABH%2FhQCaACIAKQCaACT%2FhQCaACb%2F1wCaACr%2F1wCaADH%2F1wCaADP%2F1wCaAEP%2FmgCaAEX%2FmgCaAEb%2FmgCaAEf%2FmgCaAEn%2F1wCaAE%2F%2FwwCaAFD%2FwwCaAFH%2FmgCaAFL%2FwwCaAFP%2FmgCaAFT%2FwwCaAFX%2FrgCaAFf%2FwwCaAFz%2F1wCaAIH%2FhQCaAIL%2FhQCaAIP%2FhQCaAIT%2FhQCaAIX%2FhQCaAIb%2FhQCaAIj%2F1wCaAI%2F%2F1wCaAJD%2F1wCaAJH%2F1wCaAJL%2F1wCaAJP%2F1wCaAJX%2F1wCaAJ3%2FmgCaAJ7%2FmgCaAJ%2F%2FmgCaAKD%2FmgCaAKH%2FmgCaAKL%2FmgCaAKP%2FmgCaAKT%2FmgCaAKX%2FmgCaAKb%2FmgCaAKf%2FmgCaAKj%2FmgCaAK%2F%2FmgCaALD%2FmgCaALH%2FmgCaALL%2FmgCaALP%2FmgCaALX%2FmgCaALb%2FwwCaALf%2FwwCaALj%2FwwCaALn%2FwwCaAL7%2F1wCaAL%2F%2FmgCaAMf%2FhQCaAMr%2FhQCbAA%2F%2B9gCbABH%2B9gCbACT%2FmgCbADr%2F1wCbADz%2F7ACbAIH%2FmgCbAIL%2FmgCbAIP%2FmgCbAIT%2FmgCbAIX%2FmgCbAIb%2FmgCbAMf%2B9gCbAMr%2B9gCdAAX%2F7ACdAAr%2F7ACdAMb%2F7ACdAMn%2F7ACeAAX%2F7ACeAAr%2F7ACeAMb%2F7ACeAMn%2F7ACfAAX%2F7ACfAAr%2F7ACfAMb%2F7ACfAMn%2F7ACgAAX%2F7ACgAAr%2F7ACgAMb%2F7ACgAMn%2F7AChAAX%2F7AChAAr%2F7AChAMb%2F7AChAMn%2F7ACiAAX%2F7ACiAAr%2F7ACiAMb%2F7ACiAMn%2F7AClAAX%2F7AClAAr%2F7AClAFj%2F1wClAFn%2F1wClAFr%2F1wClAFv%2F1wClAFz%2F7AClALr%2F1wClAMb%2F7AClAMn%2F7ACmAAX%2F7ACmAAr%2F7ACmAFj%2F1wCmAFn%2F1wCmAFr%2F1wCmAFv%2F1wCmAFz%2F7ACmALr%2F1wCmAMb%2F7ACmAMn%2F7ACnAAX%2F7ACnAAr%2F7ACnAFj%2F1wCnAFn%2F1wCnAFr%2F1wCnAFv%2F1wCnAFz%2F7ACnALr%2F1wCnAMb%2F7ACnAMn%2F7ACoAAX%2F7ACoAAr%2F7ACoAFj%2F1wCoAFn%2F1wCoAFr%2F1wCoAFv%2F1wCoAFz%2F7ACoALr%2F1wCoAMb%2F7ACoAMn%2F7ACtAAX%2F7ACtAAr%2F7ACtAFj%2F1wCtAFn%2F1wCtAFr%2F1wCtAFv%2F1wCtAFz%2F7ACtALr%2F1wCtAMb%2F7ACtAMn%2F7ACvAAX%2F7ACvAAr%2F7ACvAFj%2F1wCvAFn%2F1wCvAFr%2F1wCvAFv%2F1wCvAFz%2F7ACvALr%2F1wCvAMb%2F7ACvAMn%2F7ACwAAX%2F7ACwAAr%2F7ACwAFj%2F1wCwAFn%2F1wCwAFr%2F1wCwAFv%2F1wCwAFz%2F7ACwALr%2F1wCwAMb%2F7ACwAMn%2F7ACxAAX%2F7ACxAAr%2F7ACxAFj%2F1wCxAFn%2F1wCxAFr%2F1wCxAFv%2F1wCxAFz%2F7ACxALr%2F1wCxAMb%2F7ACxAMn%2F7ACzAAX%2F1wCzAAr%2F1wCzAMb%2F1wCzAMn%2F1wC1AAX%2F7AC1AAr%2F7AC1AFj%2F1wC1AFn%2F1wC1AFr%2F1wC1AFv%2F1wC1AFz%2F7AC1ALr%2F1wC1AMb%2F7AC1AMn%2F7AC6AAUAUgC6AAoAUgC6AA%2F%2FrgC6ABH%2FrgC6ACIAKQC6AMYAUgC6AMf%2FrgC6AMkAUgC6AMr%2FrgC7AAX%2F7AC7AAr%2F7AC7AFj%2F1wC7AFn%2F1wC7AFr%2F1wC7AFv%2F1wC7AFz%2F7AC7ALr%2F1wC7AMb%2F7AC7AMn%2F7AC8AAUAUgC8AAoAUgC8AA%2F%2FrgC8ABH%2FrgC8ACIAKQC8AMYAUgC8AMf%2FrgC8AMkAUgC8AMr%2FrgC%2BACwAewAAAAcAWgADAAEECQABABIAAAADAAEECQACAAgAEgADAAEECQADAEYAGgADAAEECQAEABwAYAADAAEECQAFABgAfAADAAEECQAGABoAlAADAAEECQAOAFQArgBPAHAAZQBuACAAUwBhAG4AcwBCAG8AbABkAEEAcwBjAGUAbgBkAGUAcgAgAC0AIABPAHAAZQBuACAAUwBhAG4AcwAgAEIAbwBsAGQAIABCAHUAaQBsAGQAIAAxADAAMABPAHAAZQBuACAAUwBhAG4AcwAgAEIAbwBsAGQAVgBlAHIAcwBpAG8AbgAgADEALgAxADAATwBwAGUAbgBTAGEAbgBzAC0AQgBvAGwAZABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMAACAAAAAAAA%2F2YAZgAAAAAAAAAAAAAAAAAAAAAAAAAAANwAAAECAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA%2BAD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQCsAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAQMAigEEAIMAkwDyAPMAjQCXAIgAwwDeAPEAngCqAPUA9AD2AKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoA6QBmANMA0ADRAK8AZwDwAJEA1gDUANUAaADrAO0AiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AOoAeAB6AHkAewB9AHwAuAChAH8AfgCAAIEA7ADuALoA1wCwALEA2ADdANkAsgCzALYAtwDEALQAtQDFAIcAvgC%2FALwBBQDvAQYBBwEIAQkBCgELACwAzwDMAM0AzgRudWxsB3VuaTAwQUQJb3ZlcnNjb3JlBEV1cm8HdW5pRkIwMQd1bmlGQjAyDGZvdXJzdXBlcmlvcgd1bmlGQjAzB3VuaUZCMDQCZmYAAAABAAIACAAK%2F%2F8ADwABAAAADAAAAAAAAAACAAEAAADbAAEAAAABAAAACgAKAAoAAAABAAAACgAeACwAAWxhdG4ACAAEAAAAAP%2F%2FAAEAAAABbGlnYQAIAAAAAQAAAAEABAAEAAAAAQAIAAEANgABAAgABQAMABQAHAAiACgA1QADAEgATgDUAAMASABLANYAAgBIANIAAgBOANEAAgBLAAEAAQBI%20format%28%27truetype%27%29%3B%0A%7D%0Ahtml%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctemplate%7Bdisplay%3Anone%7Da%7Bbackground%2Dcolor%3Atransparent%7Da%3Aactive%2Ca%3Ahover%7Boutline%3A0%7Dabbr%5Btitle%5D%7Bborder%2Dbottom%3A1px%20dotted%7Db%2Cstrong%7Bfont%2Dweight%3Abold%7Ddfn%7Bfont%2Dstyle%3Aitalic%7Dh1%7Bfont%2Dsize%3A2em%3Bmargin%3A0%2E67em%200%7Dmark%7Bbackground%3A%23ff0%3Bcolor%3A%23000%7Dsmall%7Bfont%2Dsize%3A80%25%7Dsub%2Csup%7Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bposition%3Arelative%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D0%2E5em%7Dsub%7Bbottom%3A%2D0%2E25em%7Dimg%7Bborder%3A0%7Dsvg%3Anot%28%3Aroot%29%7Boverflow%3Ahidden%7Dfigure%7Bmargin%3A1em%2040px%7Dhr%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3Bheight%3A0%7Dpre%7Boverflow%3Aauto%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%2C%20monospace%3Bfont%2Dsize%3A1em%7Dbutton%2Cinput%2Coptgroup%2Cselect%2Ctextarea%7Bcolor%3Ainherit%3Bfont%3Ainherit%3Bmargin%3A0%7Dbutton%7Boverflow%3Avisible%7Dbutton%2Cselect%7Btext%2Dtransform%3Anone%7Dbutton%2Chtml%20input%5Btype%3D%22button%22%5D%2Cinput%5Btype%3D%22reset%22%5D%2Cinput%5Btype%3D%22submit%22%5D%7B%2Dwebkit%2Dappearance%3Abutton%3Bcursor%3Apointer%7Dbutton%5Bdisabled%5D%2Chtml%20input%5Bdisabled%5D%7Bcursor%3Adefault%7Dbutton%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bborder%3A0%3Bpadding%3A0%7Dinput%7Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22checkbox%22%5D%2Cinput%5Btype%3D%22radio%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3Bpadding%3A0%7Dinput%5Btype%3D%22number%22%5D%3A%3A%2Dwebkit%2Dinner%2Dspin%2Dbutton%2Cinput%5Btype%3D%22number%22%5D%3A%3A%2Dwebkit%2Douter%2Dspin%2Dbutton%7Bheight%3Aauto%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dappearance%3Atextfield%3B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7Dinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Dcancel%2Dbutton%2Cinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Ddecoration%7B%2Dwebkit%2Dappearance%3Anone%7Dfieldset%7Bborder%3A1px%20solid%20%23c0c0c0%3Bmargin%3A0%202px%3Bpadding%3A0%2E35em%200%2E625em%200%2E75em%7Dlegend%7Bborder%3A0%3Bpadding%3A0%7Dtextarea%7Boverflow%3Aauto%7Doptgroup%7Bfont%2Dweight%3Abold%7Dtable%7Bborder%2Dcollapse%3Acollapse%3Bborder%2Dspacing%3A0%7Dtd%2Cth%7Bpadding%3A0%7D%40media%20print%7B%2A%2C%2A%3Abefore%2C%2A%3Aafter%7Bbackground%3Atransparent%20%21important%3Bcolor%3A%23000%20%21important%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%20%21important%3Bbox%2Dshadow%3Anone%20%21important%3Btext%2Dshadow%3Anone%20%21important%7Da%2Ca%3Avisited%7Btext%2Ddecoration%3Aunderline%7Da%5Bhref%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28href%29%20%22%29%22%7Dabbr%5Btitle%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28title%29%20%22%29%22%7Da%5Bhref%5E%3D%22%23%22%5D%3Aafter%2Ca%5Bhref%5E%3D%22javascript%3A%22%5D%3Aafter%7Bcontent%3A%22%22%7Dpre%2Cblockquote%7Bborder%3A1px%20solid%20%23999%3Bpage%2Dbreak%2Dinside%3Aavoid%7Dthead%7Bdisplay%3Atable%2Dheader%2Dgroup%7Dtr%2Cimg%7Bpage%2Dbreak%2Dinside%3Aavoid%7Dimg%7Bmax%2Dwidth%3A100%25%20%21important%7Dp%2Ch2%2Ch3%7Borphans%3A3%3Bwidows%3A3%7Dh2%2Ch3%7Bpage%2Dbreak%2Dafter%3Aavoid%7D%2Enavbar%7Bdisplay%3Anone%7D%2Ebtn%3E%2Ecaret%2C%2Edropup%3E%2Ebtn%3E%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23000%20%21important%7D%2Elabel%7Bborder%3A1px%20solid%20%23000%7D%2Etable%7Bborder%2Dcollapse%3Acollapse%20%21important%7D%2Etable%20td%2C%2Etable%20th%7Bbackground%2Dcolor%3A%23fff%20%21important%7D%2Etable%2Dbordered%20th%2C%2Etable%2Dbordered%20td%7Bborder%3A1px%20solid%20%23ddd%20%21important%7D%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bsrc%3Adata%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%3Bsrc%3Adata%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%20format%28%27embedded%2Dopentype%27%29%2Cdata%3Aapplication%2Fx%2Dfont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFuAAA8AAAAAsVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcbSqX3EdERUYAAAF0AAAAHwAAACABRAAET1MvMgAAAZQAAABFAAAAYGe5a4ljbWFwAAAB3AAAAsAAAAZy2q3jgWN2dCAAAAScAAAABAAAAAQAKAL4Z2FzcAAABKAAAAAIAAAACP%2F%2FAANnbHlmAAAEqAAATRcAAJSkfV3Cb2hlYWQAAFHAAAAANAAAADYFTS%2FYaGhlYQAAUfQAAAAcAAAAJApEBBFobXR4AABSEAAAAU8AAAN00scgYGxvY2EAAFNgAAACJwAAAjBv%2B5XObWF4cAAAVYgAAAAgAAAAIAFqANhuYW1lAABVqAAAAZ4AAAOisyygm3Bvc3QAAFdIAAAELQAACtG6o%2BU1d2ViZgAAW3gAAAAGAAAABsMYVFAAAAABAAAAAMw9os8AAAAA0HaBdQAAAADQdnOXeNpjYGRgYOADYgkGEGBiYGRgZBQDkixgHgMABUgASgB42mNgZulmnMDAysDCzMN0gYGBIQpCMy5hMGLaAeQDpRCACYkd6h3ux%2BDAoPD%2FP%2FOB%2FwJAdSIM1UBhRiQlCgyMADGWCwwAAAB42u2UP2hTQRzHf5ekaVPExv6JjW3fvTQ0sa3QLA5xylBLgyBx0gzSWEUaXbIoBBQyCQGHLqXUqYNdtIIgIg5FHJxEtwqtpbnfaV1E1KFaSvX5vVwGEbW6OPngk8%2FvvXfv7pt3v4SImojIDw6BViKxRgIVBaZwVdSv%2BxvXA%2BIuzqcog2cOkkvDNE8Lbqs74k64i%2B5Sf3u8Z2AnIRLbyVCyTflVSEXVoEqrrMqrgiqqsqqqWQ5xlAc5zWOc5TwXucxVnuE5HdQhHdFRHdNJndZZndeFLc%2FzsKJLQ%2FWV6BcrCdWkwspVKZVROaw0qUqqoqZZcJhdTnGGxznHBS5xhad5VhNWCuturBTXKZ3RObuS98pb9c57k6ql9rp2v1as5deb1r6s9q1GV2IrHSt73T631424YXzjgPwqt%2BRn%2BVG%2BlRvyirwsS%2FKCPCfPytPypDwhj8mjctRZd9acF86y89x55jxxHjkPnXstXfbt%2FpNjj%2FnwXW%2BcHa6%2FSYvZ7yEwbDYazDcIgoUGzY3h2HtqgUcs1AFPWKgTXrRQF7xkoQhRf7uF9hPFeyzUTTSwY6EoUUJY6AC8bSGMS4Ys1Au3WaiPSGGsMtkdGH2rzJgYHAaYjxIwQqtB1CnYkEZ9BM6ALOpROAfyqI%2FDBQudgidBETXuqRIooz4DV0AV9UV4GsyivkTEyMMmw1UYGdhkuAYjA5sMGMvIwCbDDRgZeAz1TXgcmDy3YeRhk%2BcOjCxsMjyAkYFNhscwMrDJ8BQ2886gXoaRhedQvyTSkDZ7uA6HLLQBI5vGntAbGHugTc53cMxC7%2BE4SKL%2BACOzNpk3YWTWJid%2BiRo5NXIKM3fBItAPW55FdJLY3FeHBDr90606JCIU9Jk%2BMs3%2FY%2F8L8jUq3y79bJ%2F0%2F%2BROoP4v9v%2F4%2Fmj%2Bi7HBXUd0%2FelU6IHfHt8Aj9EPGAAoAvgAAAAB%2F%2F8AAnjaxb0JfBvVtTA%2BdxaN1hltI1m2ZVuSJVneLVlSHCdy9oTEWchqtrBEJRAgCYEsQNhC2EsbWmpI2dqkQBoSYgKlpaQthVL0yusrpW77aEubfq%2Fly%2BujvJampSTW5Dvnzmi1E%2Bjr%2F%2F3%2BXmbu3Llz77nnbuece865DMu0MAy5jGtiOEZkOp8lTNeUwyLP%2FDH%2BrEH41ZTDHAtB5lkOowWMPiwayNiUwwTjE46AI5xwhFrINPXYn%2F7ENY0dbWHfZAiTZbL8ID%2FInAd5xz2NpIH4STpDGonHIJNE3OP1KG4ISaSNeBuITAyRLgIxoiEUhFAnmUpEiXSRSGqAQEw0kuyFUIb0k2gnGSApyBFi0il2SI5YLGb5MdFjXCey4mNHzQ7WwLGEdZiPPgYR64we8THZHAt%2BwnT84D%2Fx8YTpGPgheKH4CMEDVF9xBOIeP3EbQgGH29BGgpGkIxCMTCW9qUTA0Zsir%2BQUP1mt%2BP2KusevwIO6Bx%2FIaj8%2FOD5O0VNrZW2EsqZBWbO1skRiEKE0DdlKKaSVO5VAuRpqk8VQJAqY7ydxaK44YJvrO2EWjOoDBoFYzQbDNkON%2BUbiKoRkywMWWf1j4bEY2iIY1AeMgvmEz%2FkVo9v4FSc%2FaMZMrFbjl4zWLL0%2BY5FlyzNlEVYDudJohg8gPUP7kcB%2Fmn%2BG6cd%2B5PV4Q72dXCgocWJADBgUuDTwiXiGSyZo14HOEQ2lE6k0XDIEusexDzZOMXwt1Dutz%2BtqmxTvlskNWXXUQIbhaurum9GrePqm9Yaeabjkiqf%2BbUvzDOvb2Y1E%2BEX2DnemcTP%2FzLcuu7xjQXdAtjR0Lo5n4%2FHs%2FGtntMlysHt%2B29NXbH6se%2F%2FWbFcyu%2Br28H0MwzI30DYeYTLMXIA2EG8QlHpAsyS0EfEToR0a3utIxFPJ3kiIHCCrZ66b0e2xEmL1dM9YN%2FMwS5p01N5jMX%2FBLKt%2F1R83l0LyC29M6%2BiYxo%2FUNg%2FEF7c2WyyW5tYl8WnhWg2%2FhyySbD5UhnDyS7OcU0dnrFw%2BDfGdI7v4QfYIIzOMq9hFtY55gmvC7jZ2FK7sEdrn6IXBuucYhjsGdQ8z0yEbWkkczjjsE5hNAIZrPx2zOLZDmKNXcXtg7EMqidAEEWg%2BSJCBBNwxvxJfc%2FbZa%2BKKf%2BxoKZybnq5vaqpPTye7CiF%2BZFjxZ8%2F7Qij0hfOG%2FcowPA1rT1l4ymWnrKmxxqfErTVrpgwPlz1kC%2BOy8NMDz6c%2BIO38K%2Fx0xkPnLW8Kx6qGAoQdL%2BTD9V9rb%2B%2Fctn%2F%2Ftrxz8dUrZrD%2Fzk%2FferF0cNt1BzctmX2FZPXt%2FjnFCQNz4Ah%2FiKllGiCMs1w5Lkg0kiEwj6VTXCDKsX9rMpnvIj9pcDecXAIXMnqn2dTUbN6w0XQ9ue6FV%2FnnXCH7S3lPWGltVcLsH75ub3ab7A8M28caNrIeOr3o5Q0yFsYL80xaa0EY%2FUEczV7icUMY5pnelAkmUAXmHYjvFWFGxuqlSaow3OM%2B%2FiYY7%2Fl%2FhVELF4EjRqNR%2FbvRbOY%2BDUGzGR%2FOh3EqmE%2FugIQQguGt%2FeMYz%2F%2BL0cimjeZfQDI3phXMbMQsqH%2BCjwVz%2Fhf4idHovgVmB8gLvjbicDcC%2FNypP536E%2F9N%2FpuMibExdohBmNwyiaZdJGoigos7GpF222xrfnZhML%2F7Z%2BylaqP63Hr%2Bm7bdUkQ6%2F2cXqdfmvwixY%2Bs2ksXFeXcE%2BiX0Z%2BIow76DBNgjJ7TOdUK18iPsPflfQD%2BDPsZG2Aj9VmKMMJ4fYRrhIaxhTDR0Elh2vA6h%2FAE6xUb29mj3sjmL72petXjejPy%2Boel60M99tFduCI59N3221xe7apOvxs6aHs7vab1IqY2tv7q2xsHeHGml%2FcV06u%2F8S%2FxTjJ%2BJYc0bWEX0ukW6YmIbGkJRMdjJ9mYIH5QIdJF4hvRGyK7cC7ctImQRcUET99fGXOoft35GYLMQu%2Bg2smnkgZUrH8AL%2F9Si217IssJ916nv14ZrJrvdxLkQvrvtBcjgPC0NXOicO8Qf4mcxPqh3hgUw3DDfdvLJXngg7N3dN2zbPJSaed3OfZnMU7dvmznp3C3bruO%2BNmue0LFsy7S%2B6265%2BfCKFYdvvuW6vmlblnUI8xCXp37CrOZv4B9gauDBlYp7adcUXB5DNCwYImlXOJJKkAdvExXxVvKEYnCo%2B3eIskP9qrrfIYs71CccBjfXRC52udTHHdaP1A1ui%2FVvH1otbrLrpNXBsGX5B89QghDyimlvNB2KfkxZ5C9%2Fem3%2Bd1%2Bd%2F%2FIfFp2%2B2Oxn%2Fs%2B9n%2F79p39S3s8idN6g0yZObwJOgKUpNB3GyU0Ls0PbRzIRq4lcarLKOJBkLRzJQD4j2090XrbA7DW8K3jNF5hlGS5e4V2D17zgss4T20egOJte5iD0bReM9yjTxnQxCRj3c5kFzGJmGbNKmwGw39IJDJcXJZGMkaAB4jyJAKw0jt5IAuIE%2BA%2BU3cVAZZrq9zhDyBrU8oosuxcGNTzCKJfla7JjNVmuSb%2F%2BtuzN2H%2BX4vlB%2BPpdfMXXmuVsNiub1T34SFbjYw5itEvVi0K0Nt9pNJUMI7SLGRhf2xipfCYf8z5OdlGKayOucFeVPeS%2Fdbo3lBrbSMmwUiQN5%2Fed7g0Ds1s17IuZC5kNzM3MZ6EWCa0DtekdJfAxz%2BR%2FOX28sND7yRMTBcf%2B%2Bs8mQCQWHya4qBv%2FufeMoWyslPA9DtMxUknxkH%2FyfTnm2CMYzs%2BCq3r7PxY%2FMXomrvTEsRpfEGHa%2BWN8E1AHjElb7d06ddA7oK%2F%2B5Mdsv9EtPms0jv0Z5kf1FqPxWdFtfFr0kHfgDX0Y%2B5PRSG7RUj0tQr7rmfX8DH4G5W28kKeJLtmQsQkuwMP1pk16EV4sl7vrMJATfyUWo%2FGwEco4rh4XFQgaiUX9qxZHrMQqKnz%2Fc2d8b9TysYrAuXpP%2FRf%2FGr8b1qwwc5a%2BeuLa6S6sneNXToG2XrEJi4R5SGs8Sq2S3d97bsfCRaTdaLwKClRHt37mkudvXbjwVrLhuYeGhh56bvfQkHpk2CwvwClqgWwuBfndC3c8dwmstj81KkagcUgbfPY8Zje0W%2F82VPWJHmSq6pP8hPWpotc%2FEexDOK3qU%2BwngPhOCiO9MJRm8TJefjelrzoKnG2Bn%2B1NCUmPE4gHFmBN9jrTigRIpsACrc9Gstg58ULkp9467%2BGf%2FeFnD5%2F31lNrt2967dhrm7bzI%2BVT5m%2BfzKhvf2MzpICEm79Bopkn07lt1762adNr127LwVqQLdJ5%2BlpQDcvHPQtVY5knhYrK6q8%2FJsiP6EuhGZdFdaNszjvpqvc%2BPI0CdjN0AXsFOC3ZfALDJwr4q2Xq%2BGF%2BGNbsxUg5NLLIEXi8otcDQcUts0D8eQ1iVDRAMBTsYiNdRIxE09EIBJO9A2xqgERTaW86BUFn0OD2xFO97FAgFhF6OoQ7prYt4XwSeUgQHiJyDbeke9IdQntciLQ1FlJMaYcUNvZBg%2BFB1ubjlnRNvl3o6IEU2w7fdNPhm%2Fhh%2BFLysUu6%2B%2BDLHkOkrSHYEjH0tEPe7WdD3uyDgvAgK%2Fm4szFFR7ch0toUgBTdWHr7EpaWru6%2B6dmbbnqWEbV2EtxAsXiZAPTtGPSbHsotI2leoM8TePEqgSQprs7AGFf8kuOkPdZPXGb55POAW1d%2FjLST9v5YflasP6v%2FCO7%2BGNAPC2BMZWmsOjp2NNbfHwMCJD%2BLPVL%2BD%2FOYlWEEI%2F9jpPddOFkB5d1GSuKZYggmCCd7JUxD7EXAzxyirYnNDLdDZoFdx14kivkvGc3579Jm36reTTvDgBnaO6vzyQ6chQmlsMoIkIQ2%2BbBDWBud1Va4pcCn8CPqxlh%2FfgtG8IPaPH8C5wk6%2FnZDv69jurV5QhtwE0x2iqOsj9Mx8B9%2F0EaUdiPfOYYDCi%2Fq9jhWRuupMDEU0%2BCtX0sDFxv07T%2FK5niBPqN9%2BtQjgEc31NGCXFeMcCEuQBIc%2FBK4CO78u7EPYvl3yaEfK3vcb6qP1R2tI7vUjVDDUdKubsSrNjYKY1qBEa2P50SJoaXiksIoLiCwnxS6EBuBde87botNfdEWwYvF%2FR0%2Fu5yCqhGeEOR2ynSeyXjt6ka7neyye8kryBSWE52y%2BRBgogrXPZ8E1yIHoHIFUM%2BAbJhE7lbMtt8ApL%2BxmZW7PwbjAO0fAVoXQOuiSP%2FksIVdFZ0aulsamKUzwPZ%2FNYDMJRBPCxsBqLzqHyneXF6Ej9HlIFo7%2Bpg%2BjUb3unRmGpstGkm6etOuDBGA5wCMefp1gTHcdZlvPBXlOslvYTp1cd8UjYLVd%2FJ5awNrIOKLnIt9MD9qdrKrWCvA6ALm3QV9VrsPm60Q7%2BRHJHP%2B2hqfugo%2FMvI2H%2Fmqr4b9tFnKSRY1Y5Ek80Nm%2FWIhr1ikKnxGz9TWXrokf9xwujfvcOTtNTWnxd0F37Y2W79tteBqZ4G5qLCuomw%2BnSr28QESCRVLTyYKILGJOPfcnaIFOsewhRdvv%2BrWa%2FWih0vlbX6Zb75T5C0qNKVFvH1QL%2FvazSWgC2s6oWXXIuUxQelKiJbowuJDQViatLmLijg9CQBMg8WiPgiw3LEeYRmm5f%2BXdnvkDnxLLjMLxtvX74C3OlwPQqx4xwIdpPx38LrlDphiyWUWHWKAzzxurS%2FxTo%2BP5wGFak62ap1PVFFN4v%2Fy%2BxuR39WnIO7lsWfwgVsK17wxrs9K8ltIKuhkw7f%2F6dhK6gQokFKhWX3urrjk%2FrnI0pgfpGMeuQIUaEM7%2BGF5q2iMkCaMQwxxOzcvU0eXbsnS9XknXvP7Gtw5dwPXlFu2ecvSHEZgNDsU6x%2FGdXBYXyOQjzZReSedeEPY6nEv9gJR4oBQJtFO6Kd0fwC6BO4LNHDeBujB6dSNcUQC9zIv2LnAzGk99bUDrdFY%2B9yGFQtEo0GQPNv6vS2drj4%2B1jHbv3aJSMUWP%2BQTZrmbNTjU8wyG%2FiXNNpskybLcJ3CiTF5Ir%2BJYzmJwE0mSVhlxbtbmvweB3ulB6Til5UuUZydpgiFVeobhU0WaBqpJ198d%2B%2FXeNRTZ9%2F1OPfG7%2B2hwzd5W3D%2BhmyjsRcUg%2F%2BCavb%2B%2BVh2ls3L7zT%2FetOnHNxeerv313vzLVqPai4nJv%2BK1FC6040%2F4udw7sAb3laSg0XCkAAs0npBO6VJabS4Elk%2FU%2BD4gTXW%2Bj0wnrMlqNamq4tMIYB87tE10i0FR3LZNhJsb7%2FR561btmes8YBCRkhYNByRtKd55mqTas9FYhJnbRGHuOh3M4QTdgQSqmgRxuzGdSvZGcbMxNQGk5C3ebLjoXIOFM4l%2BWKHmLTJwRv9E8GWJ6dYvf%2FFmEyEGr%2Bgyrr1p5zrgkz0Cw2j94Hv8Jdx7dIVegBSNtgsqGsRQEYiIBoXwD0LNvQ5d7s5Z00QzwNhqZA0b%2BtMG1tQq5nd84uq8R0zPvX35G8uRaze4jcOHzz0w1%2BQ2BIRvf6J6Kgatnrbiem%2BCFvAxfkrndzD9MFPP1GWTUHclpASUkCNAQkpCCcCgDSUDAhDZ%2BCuEkgn8J7i9nMA7pA4lISappxILKfAeSAbIcSDuN2bJcfZILqeO5rLs0MnngSHYRdrHjmaz7JEsEPw51ZqDJDmUIOZIe34WaQeegNsJn1qz8AIpT3yCjyEih%2FxELkuJ0lEMYTLVCiWpo5oYMleMH6USyYJcD%2BuOe%2BkWKpn1Qns34iyYDjkSLvgnZXcgVQNeqINXr48m3iS7cjm8tedyY0f1QvTnHHdsrKby%2F%2BSSbPY8%2FNH6vpl%2FEsq3Ae4ZU1HC44KFiI9o7CEgab%2FRqHbj7s5KAg06s39ZP%2FzxI%2FmVuF%2FTbTSy%2B3Fb8If9%2Fcv7%2Bwt91yy8RfP1QXtW5RzQn7qIiZyuFM5QfJ5E9uVnqT85TanFx0lkP3ukBAMprvsRyi%2FC8NAJL1xbIIirSvnSj4O5netb4JxmNANHPssHAcHMHsFRgEug816gDBeMbdfiuRcghqYcm0%2BXxx%2F5IAEtN3fqFF3LzAXqwoT0PN0OVTNqxo8sxMkd5Ig6k79Zk7VxxX6gMLOZFQgvpW2RrMW1D0BDihaXQ9wVRoBxPLfpknmkeMtoB%2FqM9cRc9IqmMD2XUmdZ7GSRKPUZvChf8BoykriM2MnKYbOHX8R7cLdNCxSFFVQqoYswnlWtlFS2mNkhswVpZiQW1J%2FUKFfipHGlUkM6UKBhMz1istELIHJLMSctu3ugzfaVSOjKvUgc%2FTHK4Sdg2Wscz69leKIkkrwuuWiOe9yGYKQXRumkC3qbRcMwrvhjNXgdZk3RxAUEhuSPvn3nnd%2B%2BU%2F3vlVOmrJzCD8JLxV1OHRjrZifbcFDOuRNTGqdgQm1tSNJ2OcQ04YiEXuxtII1ECSQRoQGYioEsgCfchB4ghAtw7FfJre4WZ9hkVi9MtjuWqtdNDlpMrfEG9fOT6q21okg%2Be4As38MfGquNt7oUws6Ysarj1%2FefE%2Byst86YUVNvDdts3Pv5c8m%2FaP0C%2Bf8%2FQb%2BIMnGq09BgwN01oIOAnAdagI8mBSrqk1gxTDUBOtk2ousEtBH2z4Ir2d3f6k8PXXVlt2qN9RODxRuoJT%2Fv27wm09jRYVc%2Fe%2B%2Biyx2tyzJb%2Fn3J0htXP87eSsQaf2Ly0s6Zmxela88REy1cf4273mI3iXNJ7KxrZibOm9xm6rl4fqy%2Ft27smU8tOfdW2ucBzg2UfmOIVyLIl3kpYlwphDISTXJXsctmiDtN7fNV6zelgxwnWxsVr83Aj%2FS5ki1jL%2Fa0GC6%2B2L6Um%2BaoddlNFuj%2BbJ8mH%2FiaLh8I0%2FU51NspIEfq0dohwyFXKgm4NggwQ4rRhCOUFtxxo8XnitT4cnGfT93IS8FaT85XE3H5LMY4zIEPL1hw443wz%2B1UmhTJyJGxZzw%2BwsKkKZgUiVtKOKMEb2AKHTv61FNc01PQFwKnvsZ%2F9pPA4RKTASWahmh%2B8MxwzHxKy74IRn5LGRjsPUUwTu64UYNY38caqd7HKucZ%2FtHnODtENw%2F2UfHRMaq1UUPDJQ0OKkWCeet5fYOhII1VRz8%2B%2FElg5j4Gxur3J8o2PJ4rg%2B2d08T%2FfwEzSVbyZ9XPro95T477lRKqUSRXQnauHNsISAl27oWi6Fv9z48JMv8r%2FaMMj8onCP%2FDuDZOuN%2BGPPr%2F%2Bp7bx%2B7JlbYdppcNhzKU%2F1Px5aiaGDn%2Fs1iGMaBcleKUo%2Fv9rcxkZj7DBEKOfrayytXNLYiUdBY%2BpleQXdnscKlQcpzuWluxsieeyuXIK6SdxozitWyGOV3vOHHjguyCQ6fpIYy2JwvrQEF%2FQa9Pdf%2FQqOSqCiE%2FEE1%2FXIVKTc2tzWbHnimrEd%2BVyz311Ml3P0GVTj7PD5aDnsvCvH36alEaPMePcMegXs7x8igTu4B9v7G9vTHvhCu%2FkzIdx%2BBxC0ay9zRSvoS0F2lIxI%2BX7klU63I40gLQ3w5ep5na%2BSFnba3z5D64zv%2BQtM4n4ffG3tq4aNHGRfxgrXPMim%2B5487abL7xhdseIRn1KDl%2B7aINixdv0OD%2BJSPwKf5%2BxoP6aiTeQIDVlIhMcL1H5R9PYXvprs3fv2bO7MOplCmweuiq2JRZ1zz%2B9a%2Fv2PH1Hfz9236w%2BZrPXvWfAxlj4NLLHpq3c%2FPQ3uvmvbrjG7fe%2Bo2y%2FcLdtE6VUlXi0ASb1VLUBVSUWSU4HdvAraTyS8xzM8NxvxFkXV6pUVRiJwcgC5zEeht4rwcp7ki0k41G0qlQhG1Vzlq8alEmnFi58caB5Q9vn988MLhqyVlHvLEWjtQFeupdiocF%2FtkkOGPW2ibWaBTkeZ%2FdvPWazXfOnnvL6jkRXpi85sFzZt%2B55ZptW3bl1cCCHZPD06MhySha7UFzjcjbp8fOecFCirzAG%2FyVjBX6OFIaadSjQq1nNhyIe8tVbaaSdHlXIWKacMeuZA1uxS95zILhyrxAdsXTL6m7kNQlx2P9uZf2qhufePFFbpI6%2FOU0WcP99RrCsrwseVot5mtytpf6Y0gm9sdeyKnPQ7onyK4nXlR%2Frg7H95M1upzu89DH6pgUcikoiihJ6NJKmRxV1x%2BMJiOA3YwhDRQrWU0u%2F0rvq0VYXnyCwsLeTJYBq3dAtJDavuzyoVpzZ99Z0%2Ba0uoiFH%2FxcqgDR7rUFeOrUn6Cywb8ZeNMbhLV5ugP9l0zv9UN5b5mFkjzxUcpPJCn3V402pRxtJd2GrnLdhtVk9ZSZh9W91fCSH5B7ofxPiWL%2Bj3D%2FuwhBRdyAyozeZwvQzs79soi%2BBKSnafLviZCcfrpBpLyimfLfTyJtbyruIQKD01tUwJyKEo%2FybaxkSNFUMdMkhQoJyRBQFhnUkDQSXhTM%2B3NmY0EDM7ffLIjqWEGt8lCO6mLia3PukFnghosJD5p5SIho%2FVDkzQfLE%2BIrYoJXkD19pdP7OwG%2FvoIUtagiWiZ4PAFTHHlTVhRZ7dYmPar%2BNJ%2B8JhmR6DFK5DV1foHoLNO%2FpHrvZfmWZ15RQlwvoVDKhCWNK3CCch9lfFBuAqUgpFSShmNaPj%2Bi5%2B%2BWZfKeViJfW5HnUakVL4UCNVkA4%2BETfIqx4B5xSaP2L1yn0zn2ltPn4%2BOqZGmwwEVCaCSqG53ldtL1oLGAhdMLd09MpCCF6tD6ZnAZBY9hDaYsP0jzZ0j5ZjKsF4i1UmLuhbJMCnYJPt5VwFNvmZawXjEvLJqIH8STonZjq7BZ8gKgR20C9MDFqJAX1H64QW2NEup6qgzLP8cvppL%2FNNTOBTCJABOHeWoXzLhw4Wuy7gaBtjKr9kgKq8ZlRYBS32Lpxc8vIhpNDTfyNXWybMJbn2RyQ5EmWc2QF9wmSZ0KYCE%2BcPuYO6b15Uotj2Kd4MItLS7gtFbkTdrFND6pvEZqv5Yv7jXAus7Pg7avo7KDot50NX3CPkP%2BKps8J9%2F3mGQIteY%2FLGPC%2BL7872SPR2br5fy8MtKBMHedGuM28%2FMZmPJMrGgi3Gb1S%2BSi1%2FL%2FzrZwO9XH1ce%2Fz7ZQ1WSoY%2F%2BpMb5FT4ua0Wm%2BJf%2F298nFmChEQ%2BTi71est4mq9VYI6RsymoRJKYidElT2FGnDTZvqtfhGAFTbeqEw68GqtfmbVa%2F1IFO1%2FjdWr%2F8BDRRtQh9XNjubEm4aWVpVonpTGR7PVGc%2BKJNoBIWF7kYi4gUV3r1U6723i6TxUl3n3%2FtM27aZfKb7THiHW9VzFSwHJ05VfK6Ar7kaB0XgPPE0BSkSFKsBUpaLihEWoA9wBt8qirh2VSOkZwXEwyrxZ5jyt2rJmSo9gX7cg6jsEUGJU9z9xJPOEM3uQQxKgkh35DNATnVyrmJ3mbCNyIB%2Fyox4wH1bg2DwN7q9kov4pFqny8oSm3RQbGgJ1QQTs6ZMLilOVYJ9v6Wha3HcJ9jddsXp9YhGUXLXt%2FqMDnvLpPNTXfNa60z5%2FyjXQOMq%2BlNmwh5egpYrdfZQZV9rI47xlRkuyTjpzsmCBSWNkAXVoK8sgYWqQJWbo1RLo6QH0YW6pxqfCnRgkd%2BRiFjUQUQ7poIaYoakgXxwFd9BuuI38H1xBxXSFb%2FpBDIKQFn7YB3dB36l7sG1FLaKiBdp1KxLvfswap%2F30lnVESgNnvjbUoT6w9N%2BXoio0qcYOIM%2Bheg940YimsucQVvli9NEcft2UZwGQwLuilj1fFr1i3NP94X%2BPE7Hpvtj6lBJfJ4R6NvWiaL6MgzWHxiN66DExa%2BdAdAbMYX6HVF8A%2B7rjEZIXAVbDe7PVI9rmN69JOLV1DOSvRPxWNPZBZf%2FNf%2BNy65BhYxxxV%2B77XJ2wfQ389%2FIQPgajXbwMsuAz%2F0IaQcXJavKbRqR2IqyZruXjVC2%2Bhdee%2F5vdnYOedpmVtR3NGXldxSzDSIiBVpkGb9by89UpEPKrSLZmyFDzMab%2FwXl2CNe7s%2FqCtTvWgG5kpBmCBlSzDS%2Fr8N4uwBwohRW63JTS1y32f0TQsPfXVGEHQrV8%2FNCfiOUVirYcBbIeA2%2BiF68rQIo3B%2FS628vYESr79ehzS7Q9LEL9UXmik9XVHb1yBO3Ngvt5935%2Bk1efkV51mzzrM0LL3%2F20avnwMeKuWyOUZg2TasSqZ%2BKcZQiOn1Iu2Vh497ALUVZiCKt%2Fgh6IvTIj1ZLRjWAkpHKOKovNwp00eqPROiAbiNEKieXwMLcXhVJ1%2FuzmLP4tfxaHR59cBdJVG1kTAgl9ze9QKUEQ946Hkb%2BokJ5JRDyf54Axur1D%2BWS49cLr0tTPEu7UmXrxcSr3XNvumv4yXzInXKH4F7Tc7p17Zt%2Bt%2FqW2%2B93k063X7VW6lALxTY7i1nBXMxcxmzQbabxz%2BtJo%2BwijYaIGMNS8AoSMgAPt84DdHOoMPfjXhF%2BkuH1tZvuFQrRCN07xGcXRX9MYxYchDe5BcHj%2BZ4i%2B42WyPc8Xofi7bbZJN5nJLJ5qr6IqRtzqNlM17SpFsnkEyTWoABEjz4JXOQvzWYuwdnV5LNGOwTM5v9r4RpQ8ZXsYodks3o31JBlzbYtNotisnm22MxiwGFXam5oN1n0TA%2FhRvshvTSDwHff4nNzRo9Dum6PaJbMXzDz%2Bx%2BFkj4L4bFNBb1asqsgH7Dyh4DvbkPtf5yMDKzEwyoaESMSNS9P9gJVA3%2FRTlwoMwZvxECFWxIPNw9gi01nOHjP32esZTtmXHnxvZd8ZtakqQ7ekajbXetpNa6ocTVxJtY%2BuSe69OLz77zh5bDR3xjZMzUz6fxrz1nqrZGcHQHfPVefN%2BfiK86LeXj%2BSc5lPKy%2Bk%2FvCUI%2FDaLFYCWHr6nbXuILTIsb5imNKY%2FrCm28fSMxPhkN1XbNMNZGuqwOBhtTSxWuTk6bw0ZaG86b1hKddePOKuBvmiguYBn4T%2FyOqOyGRBt7bKUI1GjioBC8aUKwF7Q319UgcmtFGIzCJGBqwQij0ynDsfdFGc3TS3BlNfJ25xmzniMkpXXTPvCaD3ZaZvyzjmZdudBostmhb0ORZNN2sJBeed1HXkrUsywueQH%2BL0eCPxmsa5ZpgRJSDZ11yDv%2Bjmbd86vxZfc1WcZJ3UkMq1BOOOVtvu%2F%2BpB%2Ben186d3GTwWAw2jheaJs09%2F%2BLNfZft37DALyrNj1wABMuUKbODyTVnT%2FKYbJ3Tpq8IrNh92dkxOj5P%2FYpZx4%2FycyiVcDYdn4JbEoKdQi9054iBKsygLW46FRGxAb0NPNCm8BSNCPjoKcj6EAus4SuP3rB%2BcV99%2FeTF6294dA8%2BTK6v74MHVpYNRt%2FI30e8QGTOOdfGWzzxcy%2B87a7bLjw37rHw1nPzp0KyyRSeZO%2BQQhInt3dYgvycjrPOv%2BT8s1rptaP84VeywdWX2T4ysr0%2F7TLIs6%2Bx9zib56ye1dM9e%2FXsZmePY3NDs9zlnNVt4%2BWgHJbbz3Livg4P9WWgviOMm4kCRT6I8vw0NbUUEnFvOuFKoxQW1gTsvFirsF5pb7qTUCx4i7VmtToveaDxvK9uOaedVvPRpVOnNz0Q6bry7uiSdQ8t7Vy4JQKVS%2BXPplV2ts4bvCwZu%2BKzgITtxepaPRzWdpv74muvv6RO0SorX6cu%2FdqKn%2FXWnrtp%2FZragz13DUCl5myiFW2Ycvb0PtsXnU%2Btx8pvLFbUspLX68mdegwmOif%2FNPDONajTGoUh6tU56HBJCTBASVvNUB5VIiKpc9kd7kludodSFz7xQbiOmMk5dOYk56gzL6uaf7N8a6MQOHm0ae6snZpFDfuT3%2FjdYzjzwkXXIVHoXNuCfQslQZqBZjTsoHMqrkE4jaYdgkGz2ATOgB3cPkSukD01DnV3ttb1wx%2B6arPqbkcNAHoFPzKUUQ%2BqL0k97pjbZv1I%2FegC9zTFbrrlFpNdmea%2BgIgfWW3wqkcis8ky5FAcRd1If5nNZrl2FFpungc8wpoCl1BpQV%2FScS%2BzjlASyUTVv%2FAJ46gkJI4bHX4lTnloctxPZE1ckS3%2BjG2fKIjkQFyzuo8jvYQG1OrGvJPSTu%2FnSp9PHNTl4z5hK%2F8gtXVKF6gEKiglgcKiRlCESsQCV5QIlKWKpr34lt%2FwkSx%2FJCmP5%2FcBKQfl%2F5gd%2BrOS%2F%2Bp91%2F%2BYCg5CXK2W4M9fu%2B%2F6xxX%2BvnelVuldIDCG0VQTpU9Dw4pRfei%2B6zWx0MLie0gPbyrkmRU7OwT16JGeyXLHqOLqAfVN1GPlBzWtFNzj0TRTCjogtP1NjIvu5habN5Aoa1k66wGpqriVetJgiGdwDZtKhnN0y4n9sXYnsqGmZfDSR15%2B5NLBlhoDaedEm7sxmpqRija6ZEEg2EAnTiAC8IrmFbGz1q08P9PSkjl%2F5bqzYqT9hMmptEXDgTqP3Wiye%2BsD4Wir4jCeoHbbp5hRfpB7BakUIppIlPCD30dR1GtslDz8OsqbXmejFC%2Fv8wu5X2myq7SJ8Avzv9DFUJySf5uNvq4%2BTi7W9D%2FOZrLChdwxmPNiBRqVjnpK%2FaGxRCDspVYKAW9AN1JANoo8wP4BJUlGqdgw6m1qPQ2QW3%2BOfU5%2FieLS%2FNuKpDU3uf8bcAXyBal5jMR2NEAbPAZt0K3hvxHBEDlUxfIGcD%2BN2gNSNx36nfqlAYow0puatNpRz0e4W2oahKzQHsjf2c16ad%2F3t2KTtPobnX6D8C8pd0MDP%2BKx7wnXqGGlLQcvikMErm6TmfsuxJXbSAxqNjOogJLQBLiKEHAE%2BJGTS3JoEhTrz8%2FCB%2B5YlupJ58aOat8Kv4JvregxwcU5Cp8GFAFm1FyOfto6GS2m1NGTS6CPNKkbsTdCBlnN9onMho55BX8IJZtEQ35lk%2BhtwN5A0V3RCPoD%2FyXAcv6pAtbZczRUA64JmcUf4q7Q89ZHLeJVZ5D1Ps%2Ft%2B0iCT3AHVtZC7JDCXfR7OSb%2FXja5H3zQbZL1B%2BULX1BMTEk3AseSpmnKEK4T9ekMIidUCRQFfcbj7z8gNLvzF7mbhQN8h6ZbRset%2BnQWdS%2FZX3k7WpS8P9sfo0iGS64wV516pOhjI6TZ2dApgI5%2BLhxywYoWxKUrykKJsIoDsR4mSrCTg0egMPnLW%2F3Q5Nn8BZEuzqEI7HK3n0%2BzFmuO3TtWQ5WJoG9YqCD6Gc32SxnbnVPfsxvrFXK2dILl7bLthDp6glhcsfp4bYvbSmj%2FmQ94uBTw0E73x2jbNRCvC6VL6GCFDwU7eWQDcC5FY5s0slieRDwtAbRsbLXbaXAuu14e2OJw1dc6jQ3ZdY8v7rv2%2FBWZLqvFWVvvcmwZkK9f5jS4muO9yR5res4kfkRxhV03L1RfPOiPtYi8pd7jNEsOpyTwxpaY%2FyCZu%2FAmd5Or9uS3DYaeqVOhH7gZN%2F8I%2Fwi1fEuLXvyNivibjuKvN%2B1Nc01HF%2F3h%2Bef%2FsOhox8MPd5SFucPjorQwXT%2BytA8EmA5mamHNFDVhBI5pjZbQpugBNkO8MvRub8KVDKST1Wag7D3xlin1ZF7LFP%2F79nbvCXFOY%2BPUjrT7%2FotsPXXZ4exdPzuhZuL5LUXVAn7k7PbhG89uz3b41X01gbjP1xwlu5rrvvf9%2Bpbs6E%2FVu7Nk642%2FPYRaAiUBdrmO6CDTBLPQFA1ur0uXoBR1INDMkypKpoTqnSMx5GiEdTEaSHLs0Alvu%2F19%2F5QW9Rv1U1ridT22i%2B53pzumbs%2BXFFXYC%2B%2BCGsTj5JUT%2FGCgRt3n78i2n71FHG4%2Fu6X%2B%2B9%2Braya7os3ZbDmgWfXun44e%2Bu2NZKuGZ0HiF8M4TlMPR%2BEU6rPKRJ8wOU2RFUFLex3egEsz3YqEAq0cqhAAW19dBZIlVzR61tuIdTnpXH7l%2BuXrbjPUyep%2B8cl6aXKWhPHpDcXl9KiTWDNr4mBQc8Tq%2BNzK%2FOKSbsfl79o9G20R%2BbrBXYvUg0rLHhtrc4TN81TTOWSZ0gL1ZVlOYH2ery%2F7XVUjFMbzYpg7UswcqJPQwBd0LKLabJ8IaCr2otcjSkIrGwootKECaUd4XH1%2BSdazRrfddkBU98t1htvWrbjqSqjaCguxrffM%2F5zDCpBALUycmajhd%2BR6ww4SWafuZ5eU%2BtPid4lgd3gt%2Bb%2FY9rQoZNmiXYPXyRHbRs8zX%2Ff4WIFjWZJtUdSD55AP3xtXH%2BZipC0EqdBGDA4CoYEU6gRLGPU11QhkLTBiEYPiqOeQgwTCl9aok1Qr5pFf71qEeNxjy%2F8F0GoqYPv75Yh9j3x4DuJ%2BuEzHRpAq2lMqb%2BqfTdiq6kGtzfOWsv0c7lSeMXDHBDe1MT%2BLUgx0Pg%2Fp87u2UicdIvqQi8DkxhcUwUXCedMpb4NQjwY3npTmgsURJavLwCRyEcN2HfWsDVGfv%2Fu9ZUWUx%2BPYFueUKwaNvbtu%2BXps3eVWbN1GcgVrdMnWJ7WmJz9SD66EBidag0NF1Ukep0t5A7sFCWdhzvYwHv6L%2FBehXuHqfaBwBEU7hfVLcXvS4VQv%2BT%2FvaSIl7cbeMc7ekv9i8S3e1L5xxpvMGcu1EYPbKyCiijjGXcDKckm43PqU2qNWlXusZMiqF82cuVzolUHN9NNR0HZPxFPV9V0wLtvq%2Bk4DqOwVWDlzuQLVdqFiP08cRX7aRlBVfR8cb55bWe5LExnlcsDp1vAP8Q9BucPMk1Ulh4GnN0SAdxcNHv3q9ohx1Ati4S%2FtkWjIDe3hQdkUGrGRaFBiUdiTSkI41UkMuuQHP%2BEaSQYlPQTFWJF03BNPpTu5KFAdkWgDukzsZKMG0Q1TAQQglScOaP%2FdsZ8%2BfP75D%2F9Uu5Gs3FY%2F2SxPld0DHOciXI9gqjcEidXjE%2B3BLosy0OcX3T7O5g65ROGyzQ2BZs7WbZVnO5ydLe32hMwTQ4wnnKXW6XW5LAa7oaXOIHoUl0FgLQLH2by8wSTWeAx2Y5PDazK3BqZbeJZwXGPaYhX87ZNszoDdaRxotXO1nNlpdvAPFWHDm8PqEE0sZxDEqGzxisFNnuCWetPcGrObN0p23tTZwMuRVodSV8%2BLTrOV3eRvzjQZiSjaLYS1WEJe0kNsJlZu9LFun7%2B%2BwW4gRDRbaxw2nrOGm%2BxOj9cmtbp9ZqeTM1m8UXfQQCSTVSQox6pvtjot%2FFpHvIUjJovFEoYvHYV9C5Y%2FxN9OfcalvII37UEhTbTg%2FAQIaPb4Vz6j5u8%2FaViycMod%2FfkDcpu8QZbZoeBi%2FvbzP3XPsZvOubMtaPHkD9jt6%2BU2O7vqU%2F9C9SMvgrXpQNG%2FE0oJxun%2BCiElUa0IKQSUwERxOntKSV7ekcuh9VBZBBo3VUcB58ofKBHCwLyf9qFosz9Ibf8dGqwaBMjRig4SGOZ2UkWI7UiO9OfUPdxOYFApUZyfpY7mgEc5rtNGGk2H1lPhAk1Hp%2FVAMqQEHEUfEYkkUQq1JMdzsX7kklRrTrUi1wMcDjmu1YYfATj7Y%2BpGpPEBXuoQIj8rR9mgCl4C9yqmF7xnVWxGVniNqtpVmXBvQ6iwni5YQ8a1jYrXtc2J13HvgkvqWxuva1sbr%2BP2S5ceKGyBwDv2DbrToe1u6BkAJV7xnVLUaq0sJB8pFqcUIPi3yuwxi4JuLr%2BP30f3OkPQ72aO0xYo3%2FEsmO3QO5qEF8S0qQH0UsKXv0brnl9%2B8M7jF174%2BDsfvPOl1au%2FRL5%2F9DsbNnwHL2pHR1NTRxMZhJtHktOOxLxErPF6YlLvpC9YP73x%2B4ofw%2B3xVdrHcDE0dQQCmCRgvt9b35xINDf1CDcRSfJ%2BpYl%2BSf8YcurfmXP5F%2Fkj6J82jNsrkWiEuhVlgFfyNkB3S5MUzLhoNiwSCYcxQ7Ui4J0Xh7fmqRbaPa1tzujxkBRlsEHy0%2FOM4pYLPb7g9O6BQJN6l9zQ0OGyCaZz0vMTbHOzXfQ7a2tsterTcqxeInODoemdktw%2B1SbVhKwtW9ffe8VKadK0OVuC3bWzyKm5LeddsWTeorWyY9IMtUFutdu5g%2BRn533qkocdvLs2HmhU75br%2FMmWtD8zA3OP2t1ea636jEzqYxJZGAwFiDEd61oTsrRuW3%2F3pYNi3bS%2BRd%2BGjOfVpAPNd6y64Gsz1GaZleWIPoYL%2Fv9mTeQBENVEguiF1aC4YeXxFETw6QyPfn0m9g8IrMFAvKM1EI11DARnbqibHk%2FIojy5rSdgCyZi06y8sS024PeuO4MfwQ5Y9yKRZCqyYaF30vzeHlmUprR21tR0t0yz8KZY66zWuGvxVQB%2F36kP%2BK38t2Hu6NQ9SFJfw0AdpqPEK2qTMpf2VCqJwqPoJezTL824b8akoL%2Bx03nhh%2BoNo5e77psxg9Q5LzebIKD%2BfsY34f2MtB9fk9v5b8PT6tYrgv4kRPwd0q9z3gdJSJ0653KjCYPwCaR5aUY63eW48O%2Fkdo33yxX9wCiMv2QTrk8eGSI6Ag6moG9t2P%2FF7GRNlDjl0gw7pJ5aOXXqyqn8SENnXBmbSwUYLyqJjv3UmY1nKr4t80no0faXsaIEiF%2FBRaIBnItSce4OUif7W6Vm9T9H1X9Vj71BEm%2BRdmIJQST%2FZfVdudUvh9S%2FqqNvqT98g9SQ3lHibZY0mRVHooyDN%2FFHmTgzjdozKw28NwQ0hwN6BCoPKaEk3YtKwNhwRLXuk076CGoZNXDQcRwZvreTZY9EZi%2Bd0s4%2Bztv8iei04JQl6ZbDD2eHV7X4uHuFVfPrOmcs6m6Kr7hssr%2B1VZFcEZ%2FPdJkn1hOs8SXS%2FNFFgqt94PIZzZ3tdaL6Q5vo6piSzdy737pwsX1VyxUrF15iJ4uNkq%2Brbyg1Z%2BO8VsNC1UmcvORPRfxtPrfRwL2p%2FoA1eZp6Z%2FaGffoewaXcA%2FxBlKlQLfhQL%2FoPgBGP3qsA7IQS8qDVNswHKRSheDUvA3Q7MZoRcJMxlEygujn1QdyzfPfq3dEp%2FbXh5e5YXW2Ngfvza0ZF6UgFL%2FE0fTq4LBlvTE2qb%2FKuuzYSXVnjTfM1osvqMHVbm9950quIZlbqaL6YP7jk3kUtA0GnX2nvq53f3WoSsvEdDRnULgo2fN7lNZJgI8%2FVWi33c3bBZnGY05%2Bdm%2B3qc7fNmj4YGKLj2nfqFP%2Bg7jdDlxEV5XsJQZP6hYrS1l0VQr4c69Xueixp90gnZPmE5OF22j%2BSYEWHlZ0K%2FHgsh%2FZtsbh6h2DNRlvv6jJh9XaJaHCZDiUDKNTMkvb8vsqCyf3ZNdSmO0fa0Y4baJTtpbKzuVzeeSI7fCKr2Z0WypapnXJ4gnoWy3PoUIlIQ1TXdqhQJIXp9Wx5fYdpeWh2TY5D%2BYVyKd0jw3iumwi%2FBC3cEy4o83QlZnW79MrCgCjbhWXBlRZVVZZv4rIKpXC01HFlHdHLoeWVl6UVc%2FJ5uGm6CViW5mulYMk%2BHqNYr0AyUPivLg2oMs2MPqtuhHyRyiwvNJej1Br%2BfcLyoAyu8D9B7bgmzUqfFobF5nKnK4%2Bt8MPJkI%2FxHUNWk117jugWF%2BxazTAALQn6%2BUE9lhoI5ApGA%2FiuJOsrlNP28SVVuBVajXmircLel46w2bJS1Q0Ft0KDuikDFL%2F3pYrid1Q4FvofwRIo4R9h2ftSwc6jHAMqLcCql8YPHtlzGoByNXYN6v8hXnRaOhUvx0sVLCexwupGDR4NOYC7PePa5keIPACnuAdD7dEadRuTIiS6Lb7uskb381My5yjzF8lGCjBRqdwrWJCagfB3yCy7XT1i92hbcZ5Ci1FJkgYMDf6n%2BjspIsHFjJrTOdzSMuOa9DbDcj%2FnH9N9bIoGVgzHPWIQuFuYtaMRaq8eCKI0gEF6lPOZjBz3EEvaaxwSUT9U%2F8JbJZPJJLBLolH1La%2FRbF9AbC8JJjv%2FmMnssKjLRBJyqj9QXxNko0Ux%2FX79epfiXkm6fmKwF%2Fen1HLc6LxloXWKvGa5rVCVL83VuiPcDEX%2FK5pTXOxHfx6HHB0t2FI0qI2rCZFTrvPWU67zVuS%2FkTsLnc7IKhFg30e4FOkqNSfH5PtkmUy6Cpiv%2F36k2sbqCeCFNa%2BURpoY0sZoYmCgCr3qgZz6s8I0gP1bYiR%2BD79H56NOz0EVWCTy2%2FfffvSCCx59W7uRV9995eqrX8GLesOXNm360iZ%2BT%2FEl3uZqL%2BFyzSZ8XxpTiI%2FG0nkT4zznFZ0t4ipMz5v4q9ssqbdKUZt6u82knPCrt6PZwsnn0XySVnyPR1ZXAn72yx48bWJsu7apnI3Hy8bygUK5Js32qcytapqgmn95uexccj205vGgJ%2BeuOeG2SORmKZr%2FqKzcx9SFctMJdwMUFZDJITs7dnOp1EKZCxg304Cevyfya%2BvlKqv6aXK1qIj3imL%2BL6hL%2ByvUlFfE0VKZ7E8gBY3M%2F8VoJCFgizH1W6VyC76nH6b7jiibYVxUmVIEspry%2FLgZIlCeP11Z4zs%2FAwvVwtGFEut5S1JY4lfyT0N%2FevOLo%2BrUEgjcqc9IkGpQbv3iW7Co5b%2BKgjvpzYdH85PLcc4X21ouwEGl%2FS4qnUAvoSlXUUhR1eKr2VWFTB%2BGMl6FsiQsVD1R3urlAAIoSn7JQkmiVVCHSpCwDH%2FqPepXQ0Db77CJOAImohB%2BRPWr31ev5g%2FkE%2BzTa4lbvZo8xdWPffQu9yJTPCNB66s%2BzXoJt%2F0L6hSoCuBIoK8fnBGG87OoRckJpLqyWe4YbpGi50g0%2B3I3UD85Oa0fzubfoXxPLbW3FDWzigmyJeM0tQkax7PqTy80%2BUxfUHPlBZIRVNQ%2Bv0xRm8REKPoLmNr0%2BUo48v9GFbXPKylqQ2IKm00QddgyWGMROCTxdLB9nCY8P7j2DjlsV%2F%2Bmfr0C0r%2FNkeXbbpPlOTBBwT0mVz1zx9S%2FwJecBF9Wgv3p032iP2v4VSgfgW2G%2BHUEdEXU6iq4CtpLJfIN9XQG8dwa1VoO8XC2SrPDDyCOQptXgbcPvlAgBfxBoGwftQKeKFrNTASPt3pGGqDt%2FQRasn2kri%2BH6L80MJRsmVYJrAKyDItpJUy3%2F15WYIJqcJ9Q5N%2FLFJ4c3dc1URpWl9hW6mu50MUIelg4ucTPf15zs5DFo1c0VSp1tKB9jkwIyuM45kb%2BIP8gHed%2B6jO3v0KbIknzLy636E8KPTdCuUpB0wLo9JKnAO6pv0vS31EtBha%2FfJemkgLVVnd8KCk4qBTpQ5m7FbifBKrPJcq0pZAFVG%2FXbOFz%2BTcq2MLrcmV28Nmi%2FOHskh82bau0k8eWCaPijQPWQ5lUvslwVCfHkXBMIehqUgtDNLeauH1huvZTbYmw%2BluPjyWoNGEuxRLR7LK5fSyXFUyK7PURQv2v8D3XOt2NJ6liBbmPGOsakw1kbeOs%2B31Wm5qpH%2BiJWSzqdPr2O7zc2TmtnrzCig6bBd%2FvgQmzOlz0STWIlmZEQfupogOZFHUZ7EkUnMn0RrpIMqAgHRJAOjIJ3yGw1I%2FMAp9q9S3Q%2FclADNm1wEeO%2Bxbwg5OIYHZLY3ehG5lJk2xhco%2B6JWybpEVz2wrR6hZyD0QXZbeDVB%2BonmlimpkWprdAs4WEZDSQppsDlcdCBJJESIYFuAtUnC4GIF2C3Uu2Kv7L1bdz6FxtqxpG4TqQOqOUNAJ2HLvPWA2GgDy4O4vaDrtyl6P%2B1fAll%2BSyFcQ28GHqh7fvvf37udylf0fNwhzgz87Y%2Bcf5x9GnF6ygHu18sAbipWeF0YPBgp2GaKeQduxxdEr3SgbH1kvH7tvqSLhedomOvZyts2dw8acu3dY%2Ff%2BucuMtCuP%2Fe4zC4XnH3OLZ8ZuxTWxy8dJfU5dhDeKPSlJy5pn%2F%2B7u3XrJhmr9C5CuleGflGQocKnlAUaRKp0BAHV0ZwUt9VCqk6zYOgRIuMfePJzdmBdpPJ7%2F6B23%2Bf%2Bsp9NMDZevovvfYHG5dGPISQq1DojqNckchVrCcCYz%2FQ0hI0m3NKDRfkgsrnamo%2Bp0CAq1FyvC3a3Nak%2Fs5VX282x9Ufy3E39VAx6o7LpCvO2wK%2Bch9jNqpJCutcIOooKnYWtDK8gTRVYygRQfwgzKM5%2BjP2jOZdx3r32Py7rQUPOzAnoRs95NvRAR0qLGU11Taqu1bUYSzMcWjMEir067JQQHfIrLBHsrgv00%2FWavd8HRLMEEYFSW3HCSNQehnrHztKqHcDyo4VfZ6gPKCR%2BgufwA8GegxUEo4A%2Bgd0BASHiH6jYMLIsUdQJTs%2FC641KN4oCHWolCMLlMfIdtWKScjx7SM5LD9HnfmhrGI0S139UWfUnxgOXdJFW%2BAMcGjKr6eHAttHF5sUoeArYKDcxMSYcKA%2FxUDhPiEOEAPafSIUFArN0r24ynI91EPARDXvIDYyvqZaWeroBOUABQA%2FE%2BDXC7PWafDLQY2oiwpUEyj4RQtVlUp1GrM7In2p2A7VuiOW6otMiGOo5Mrp05ejVuTy6dNX%2Fk%2F7mybZQ0nUmfrbx3U4KueDnlHm5wdh8FFeKnoaKKh%2FTK18StOPhwG9Xo5mqXAxvw%2F79YQwwDR%2BnAKQQ4izVXioB84qcppWB7IqjU45z4CE17OvF1Dw%2BoTFqxtz8dxwtogBnF9MjIl%2Fin%2BK8s3hM9laIn0TiCbTAXL0T798bPXqx36p3chrv0O%2BGC9Xaj48Ecv8U8UEeBvUEsDlTepiU5OvlpeNGvpnKF0RvUooWhIjnx6GeBapXCQYTw9DNg6%2FOC3gZjp76oNTj9Kz6Jqobxb9NDqc08vcKReOpcsQV2K8InXFaXW3aI6Ofr1k48rp7CX7rx%2Bv1UKPsfvzQU0Kc83i2VdILmd2%2FyX55zT9luN2%2BCu4nKfwPcK%2FCvDVU%2BpHh8%2BLaldIf1fA5h3ndT6Fln9%2FW%2F9Ce1vndfvJtnPVO2xhm3qbafHVCN1X363UXHq9xuVD8OSD29Z8pZ5cZrern9cAdGW%2Fuib%2Fud%2BVK0L9a42r6C90kL8KzxwLQw9NkIQJL0ASU8M%2BVG0KsUdgdvpgP%2F6NqqP0%2FgHZFUfGEijZLHpiIgvV5%2FBltrj8Qd7XQd5p4P%2B7tJo30NMO6VGBwahSPMYiaaBYoLY6uEnciyhhh1Z%2FvvacG%2Frjpsvnpzs0B1Id6fmX8119l88XnOxe%2FuGrzzHcdu7UtY3%2B2vmXN5zUyj3ZcPl8p1sZSs6%2FnGXtwrV7Ka0XZdz83fwjjINpZWYw85lL8BRK4nGyIir2RiOsEyipuEcIakpGjWgBjLiHWOgj0Yi34gW1kKPxHt2Na5q%2Blwg1RdRSpFDNzosb44YJXnAfoEOpZW%2F%2F6u1lhYA6leevezbI26zNHO811M2dc5HFxpk4i1jPC0s21%2FBWW5DnPQbn2X1WK43%2FaM2n18DfSoybbNHijFpamzXI31eRibGUOxSu%2FlT96YZlq1Yt20DaSBuG6knw2eusHs5EPBfNmVvHKdaQzcDfz9ZsXmLDWGXy2U5OsYSsIn8CS12jQIyD12KKqZrLPy7mSPdICmd6WGHG8NDZkkHuE4h9TU8FpmUO%2FVjC%2FEinToFyoNDz2p9XD6g78WgQdPG7Z3R0T%2FZ5dTM9lsL8Ktek7szl2L%2BgQwGgwkZHc2g5Su7NvVqwGy2Ua4KSXUwt1X4PaM5paaEu6jQ5zVFyNabxvUksVt2T%2F4VeamYPlLtffdQsk%2B2sUTY%2FzDXl%2F05W53%2FBz9UK3p7LjapZ2ZxOm%2BUlZXrL3HHGqO8%2BwVroDaCTTnTxitMxmiAAYQzVJQH%2Bnj3oIHnPaN6Zq6sNSLjBl8tKgVr2mj%2F9CWi9dnKca8rBQBsd5R1tzVlgrl5pbnPw6kZclCr2CHxMnHohLz%2B3KRQokzALyeIKFU1TNCiayJdoHvDYe7K6mZLm8S3uJ9dojuaJ62%2FqN%2FtjQxnSnhnKPw%2BLNrLi8ZKyJ3x1YhiI1aNAtP6NzCGzYv3DmaGh%2FLvQZnt0evgIhTFV0kE%2FPYxAnOHhCQUZdCWY5JWJwMzlAGl1mpNbDU7yyGnhRMILsYhH3VRAijrPcBU8%2FCj1Y9NY6cnGVW0CjTLaz7E3epvaT%2FLtTV72Rs%2B0WVVmd0dz%2FMGTI5F0OsIviaqDlbbO5X6xT3PeXbXHRtf%2Fz%2Bfdka%2BeKPr8KF7IF4vBsT9MFPuPJMBTBMq9hQxXelQ%2Bbewnf18ap4Ib%2BmSMrtDU5zqlD8QANa5MBGh%2FOwOvSDfcV2d66mfEWsbGWmIz6nsyZDWQSmqmxDneYyvjHPmRXHZxeueyRGLZzvRioKnGto9nIPkibAJA16adcOZRQr1iAP3bUyBR7T4RgAWTKxhkCYFwshq%2B7iV9r0whk50cmRcTg4fy5x4OmmNkHndIA2%2BYuMbmE9dwGYB4KFTsvnDE6Ah47r%2FfE3AYI%2BoXADpkdlENcZ8OZEEf8FFGZNxMs6ZLpG3SUFLL7Q2kcFU%2FA%2FJsw%2BvWDa%2F7emewLaoeibaF1B9qUNnuqWK3%2BUfXYVL1v%2FomD15xxeDkPnXTOKSVcCbDGtOu0YQNpGAP7U1HU58UrqGu8xIbHtkQ3LVhb7Dx46ET3Ffcm1q0YcOizNmf3bC3VjWfAcpSv3MyTlgJ23FHQgmgvk%2Bgk8pL0mcCDOn08MDAQlf%2B%2FSlTZ1z12fnqntOhbOTL9%2FZdevbAPN%2Byby1f%2FuUtC%2Fixm8ZBo59LTXEW060hGrTDplNprWd58fwB%2Fb%2FE27BdS%2Fs7U%2BrGVCeQ46nzaw9QccnmZerGZZs3Yw9aVHt%2BKh6HN4ti6lxIhT%2FwahnZtWwzlY9QHQ2c79C%2BdxzvVDKy8GqKWQERO9YAKbpsDUTLdWV5dE8PVPjvj9pqw7ah%2FPFVtkit7aj6G5xY9mfJrCz1j1e0BcnPol4UjtrCdbahIVtd2HaURujnFJR8CuOuUUfhrGhgKKgjCYNSvCc1WKlEp8wHUaAYynFNyzZn%2B2MnYv36dbMDBTonl%2FT%2Fma5IKAyEGz%2B4eRnVtaX6tss2o34u8mWorFtuFgm4A6qK%2Fyp%2FgLEBVat5WnPDdKA574ubuFJ%2FIUfZ%2FY2Nt6mN%2BZNNTSTaeI56gKwkXerTe9DDHUw8%2FH35FY3nNN7GGuBKWhrV9ep%2B0k1WjNWVaHkW1yA%2BQHWNu8rtBw2a5YXuE40rs7%2FGA%2Bj09V3hA98yRnFPOGr8ltGlsFdD%2F7tRce3LH6Trcneuiy7K7J3khKu%2B3qUaXPWaX7T6%2FKfj9BX2eZq2XAcZT79u1ClJzUtHUqfqSMWBcZS43Ena0cUGLgpkKxB1QM%2B0Fxz10wgg6r5rltnFpH05pepUq3Y2HfYqeKRntmUFNz%2BXmcOs1H31U6cC6RTVLfCg7RNBF1UF2%2FwBgu0fFQtPEU1sSg3VcNsR7dWq3af87tUFn1l3ltXpaJxpNvtcZkH2WmMst3JqRpxUH%2BWC0E1qOGtP66s1MYv%2BVLu8%2FXFXvV%2FZbunYYBeVN64ls0ur6NzpV9xzlmQwB5qC4Tq70WC0tk8dWJXeHvkD0h9zJOM0vD86%2F1NJMaIAolctvlByferCsqOKDKceOfUu1PsmoFCamV5mCrMUOCi6V6FJosMF22AcrKJgQDVhfYh6tepp%2FlYgvnCEAbJQ1L0rOpajEmRcasMiPfxhgGoVo4rwreQpV6fUJHH2e8fa1s2c13Apl1b89a58ozdoap2sjgLN9uISl7P1DrulyeIkt0zr6JjWocoPOZsaXPb6jtqBblsgsaRre2xHi4nELm0MhG1%2Bx1SXwLpFi53b%2BaHRYo%2FIrbZtuWAKu5cSEXfybnnmUCaXGTpQr0xK2O2WWY76f%2BnAjNVf7nCZHU5XqIkTnpt6VtvsFlPXg1031g%2FVRdpkkyVpD7jnmax88QwDvg%2F66NnMRdRXTcGTmQc3cuINwN5IQqi0yzb%2BYFVHuVqI5s4ADfg5oE4ybDLd28mFSFmYvRoomsWXEdLU2Wl3GJy93ZNb%2Fd5gqmNaqJZSO1l6PVRy0nZIj%2F45EetjLguh1rLqR%2BSK0hO6NrsqcNX8zoUdjQYDJ7tb4os6%2Bi%2BY0qpY2AWlnLRDWdGFTfGY1gV0zNAtJ7pdo24se0D88AwLY%2FgZmE9iuP4V5v7CSR%2FRThaHLh%2BUeBkXwU6BC7lGOevK65udTv%2BtS%2FPfW7qj3ljTcj3b9OkbV85t8xsMj7Ddj7DGpthZKwKPvso%2Fc%2F1K9aLE12fMWLV1y1D9ua8lyJdWXr%2FbG%2BnoCFutf%2FmLILe39ITUV4igr3876fpX5g2zeB52sWnIL4fXHlgeUzOx5QfIvJQyrKQE9wHUqVq%2BPEaOrz0wVvNbJZVSfsuMzxN4l9PkedFzw9V5Dj%2BnzpgoT4ZxCxJfC5RWLc74YVHxKlExCYt0JAOMatREhHBSCAtSfod6x6Ls8HCWECLwXZ9nd5Dz1T24JUdWs6fU3%2B%2BfcnT49Qe%2BkBs%2BwdsMZgPXMp3U5S958snPP%2FEE7bvkOPCuTUDTUQ%2FUzirLhML9yPahoe1D5Fj5jWsaoveyP00PehdUAHk%2FseDVWsvDWXXXsyn%2F4wfpXc2V3%2FQxli3jl%2F5hj%2F83avSCfpTNxOEKLmTjxOEKuxgNlsQn0xgct724mhynupNW1Ph6o3RYS3%2F%2B2TJrzLlkFz%2Bip3qCHKf6eqW02QJLjBYuuj4sobhCWqa%2FYHGEHpcnumuWSOhxeaL7sOakNR6vvmo%2BYcfFA8UFXEPZf9UjyudIOyNwx%2Fi90DdsujS%2FFX2UAwvWSVK4NxaMhAGw3oowp%2Fuc8CTi7D2rBgZWwb%2F60faR7SPsEbjkXy4G0XaqhXPwe2cePjxjxuHD6ssQuR1fq6PF0E%2Bo2t1nePTn8TUmxz%2FA3crMoCc7egESuoTHYc7mYdg6etORoOhR7BBGD%2BqJopELrl4S6cJNRtEAsLP%2FOdvnJq0Wo0GolY2Et9VFB2Kf%2B4bZvVyxfOMz3WdFfSIryj6DwWghre7aQbdiDrkTL3A3vNDuDpk93HqXwam%2BbWmUJZfNn5ozKV5Pmmq8PF%2FjVY%2B2Tlk2M2RzSXKjmbQ4RZcQavEYrN%2F9rlXwtIQqzxQNMzPPfHYLvuPoO9TbT8bpGw5CQPGd%2BSyX%2FCyf0Vxjd2R9NmsunnXYa8xGHzn%2BsSfM5J0y0DZEXWWxkXjcR75KBLNLHi7XvX2G8VOrf4Ykg0AMdBESIpo7MgAfyakA6rkqpI6UjNs0px7cMV%2BD5BF49Tez1VGnYmq0WIijp985m4Sn2gJR9b07riPPFo97OYbUZbxJCpot7H%2FlpZBicglCPN7WOfJkcHqc3ElWqvvz%2F1E6bIQrG%2Btz6WkM1SM9FBTR7FSs8KyBBytSmNEoquJNFN5EQyTiCrnKDx1h58yxCepPHU5nxGoxEQeeOZi2m80DxNxncVhr6BmEfUarxejw%2BWSiHhWk19bSY7aKR5MsteblJpfTLtjimBouXsm3d3djjYM%2BwEW0El9dM%2FueVRWIsXwe43R7SgbVZqrnqoJ1X%2FkuF7pcgf8duv4q6vayV5U9zMV91GxO59UUjW8rHV6u799WzKMT7umRCXbYUKM%2BfoaCcwgaoqZUtmodV3p%2BX7akb4dnU9B9La38RPFUG2SCC90tVA4XwEFhyOpZZrUCsgWYHsczLFBBVGNtstoN1bw0Z%2BO4fYIbvZVt4EUcJEKOhHeincWqONw%2Bq6w5Go%2BWGOSR7LhKV%2BKBqbBPpfUvOf9QqkpDyVhBeyyZQGMsdA5FBUqvFMtUyGq9vjnsAJU4UcrxldP1CCaofyDkSAifoP5QwWx%2BSyUGxp75BzGAvtG7uQ38LehlyEQMeh0TeE6Bm7tYdXqdkt0uOb3kfYlNwmOdDyacOq%2FqlFo1v%2BPTmTi3E%2FglC9W11b34A22zmLzvb231Q0L2Bgg60OTW4YdstO%2BYOJnO38TtpH7zy9ymokWyA79qlVSn38HtpFlImFnhu3b4boNWXklOXV0Iwo7lQ1hrZyPFcwtjwFP7iEKSHSSJw509kh8kj6pr%2BH1jR7km9vcvqN9657vffefkv%2BfKxge1X%2B7RdjYUPIESN7gTvRkB%2FRMYtEkaVkdHApmdBPpnKmz0n1xSWFOyVIuLrinZwpoCRe6kyiVZoHX088F%2BUX4%2BWKS4iBTP0IWxGtZgOdMaV4KTayqHQF%2FVihBwTbgDXTCmKoOBJeNhwJMzEVjtjIFLuU38fPR7hqNG1JS7g%2FqRCuy3vmQ3W9Vu8qbVbP%2BSzazGRJH83MzP90Ck2m31mMjP8TiLn5uwD2Ugr2PFvPQjB5BnSJvQxGQZZEB%2BLopqzGzDbMmbkAPkZVJjeO5FzOSBKCgJze2ZS4Gemc9twrwY6u9H61iUQTcRvtdT9RW3tRxAWwFs2tcuJRnI6xjmBdWjbgFNRHMHiF1uHYBfUR%2Fut5Ug2jXAaT96%2B9RH%2FFToRwIzGbKmVJ1AZQnoabSB1yyIg7ByAridHApPMjyw0OiV6RjSbCuzwLAvFizBliWJua1tsuAgvNPbmljYbpt8lkWam7b3XZiOiKJskMOtmfScnsbPW208knwjuXrXK4Q1iKIgNyYXXDVT9C2Ye%2F78GQ5BEEXfFdde2RwauOysdJNL5AzCy84ard%2FnGAVN8alecnFdgu5Gbd5DJTL%2BhHZK0vApVy3OfU8XTSJg1TlssivsPYUlIqvn66PzrVTymCc4wgF6SDNR0pDf%2B9Gp%2BVnsUH5WtpHYsuhOaey8zdwLN47V8MTbm78g687%2BP3cx6tcAeNpjYGRgYGBk8s0%2FzBIfz2%2FzlUGeZQNQhOFCWfF0GP0%2F8P8c1jusIkAuBwMTSBQAYwQM6HjaY2BkYGAV%2Bd8KJgP%2FXWG9wwAUQQGLAYqPBl942n1TvUoDQRCe1VM8kWARjNrZGIurBAsRBIuA2vkAFsJiKTYW4guIjT5ARMgTxCLoA1hcb5OgDyGHrY7f7M65e8fpLF%2B%2B2W%2FnZ2eTmGfaIJi5I0qGDlZZcD51QzTTJirZPAI9JIwVA%2BwT8L5nOdMaV0AuMJ%2BicRHq8of6LSD18fzq8ds7xjpwBnQiSI9V5QVl6NwPvgM15NXn%2FAtWZyj3W0HjEXitOc%2FdIdbetPdFTZ%2BP6t%2BX7xU0%2Fk6GJtOe1%2FB3arN0%2Fpmz1J4UZc%2BD6ExwjD7vioeGd5HvhvU%2BR%2BDZcGZ6YBPNfAi0G97iBPwFXqph2cW8%2BD7kjMfwtinHb6kLb6Wygk3cZytSEoptGrlScdHtLPeri1JKueACMZfU1ViJG1Sq5E43dIt7SZZFl1zuRhb%2FGOs44xFVDbrJzB5tYs35OmaXTrEmkv0DajnMWQB42mNgYNCCwk0MLxheMPrhgUuY2JiUmOqY2pjWMD1hdmPOY%2B5hPsLCwWLEksSyiOUOawzrLrYiti%2FsCuxJ7Kc45DiSOPZxmnG2cG7jvMelweXDNYXrEbcBdxf3KR4OngheLd443g18fHwZfFv4NfiX8T8TEBIIEZggsEpQS7BMcJsQl5CFUI3QAWEp4RLhCyJaIldEbURXiJ4RYxEzE0sQ2yD2TzxIfJkEk4SeRJbENIkNEg8k%2FklqSGZITpE8InlL8p2UmVSG1A6pb9Jx0ltkjGSmyDySlZF1kc2RnSK7R%2FaZnJ5cmdwB%2BST5SwpuCvsUjRTLFHcoOShNU9qhzKespGyhXKV8SPmBCpOKgUqcyjSVR6omqgmqe9RE1OrUnqkHqO9R%2F6FholGgsUZzgeYZLTUtL60WbS7tKh0OnQydXTpvdGV0O3S%2F6Gnopekt0ruhz6fvpl%2Bnv0n%2Fh4GdQYvBJUMhwwTDdYYvjFSM4oxmGd0zVjK2M84w3mYiYZJgssLkkqmO6TzTF2Z2ZjVmd8ylzP3MJ5lfsRCwcLJoszhhyWXpZdlhecZKxirHapbVPesF1ndsJGwCbBbZ%2FLA1sn1jZ2XXY3fFXsM%2Bz36V%2FS8HD4cGh2OOTI51ThJOK5zeOUs4OzmXOS9wPuUi4JLgss7lm2uU6zY3NrcSty1u39zN3Mvct7l%2F8xDzMPLw88jyaPM44ynkaeEZ59niucqLyUvPKwgAn3OqOQAAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAHjarZK9TgJBEMf%2Fd6CRaAyRhMLqCgsbL4ciglTGRPEjSiSKlnLycXJ86CEniU%2FhM9jYWPgIFkYfwd6nsDD%2Bd1mBIIUx3mZnfzs3MzszuwDCeIYG8UUwQxmAFgxxPeeuyxrmcaNYxzTuFAewi0fFQSTxqXgM11pC8TgS2oPiCUS1d8Uh8ofiSczpYcVT5LjiCPlY8Qui%2BncOr7D02y6%2FBTCrP%2Fm%2Bb5bdTrPi2I26Z9qNGtbRQBMdXMJBGRW0YOCecxEWYoiTCvxrYBunqHPdoX2bLOyrMKlZg8thDETw5K7Itci1TXlGy0124QRZZLDFU%2FexhxztMozlosTpMH6ZPge0L%2BOKGnFKjJ4WRwppHPL0PP3SI2P9jLQwFOu3GRhDfkeyDo%2F%2FG7IHgzllZQxLdquvrdCyBVvat3seJlYo06gxapUxhU2JWnFygR03sSxnEkvcpf5Y5eibGq315TDp7fKWm8zbUVl71Aqq%2FZtNnlkWmLnQtno9ycvXYbA6W2pF3aKfCayyC0Ja7Fr%2FPW70%2FHO4YM0OKxFvzf0C1MyPjwAAeNpt1VWUU2cYRuHsgxenQt1d8%2F3JOUnqAyR1d%2FcCLQVKO22pu7tQd3d3d3d3d3cXmGzumrWy3pWLs%2FNdPDMpZaWu1783l1Lpf14MnfzO6FbqVupfGkD30iR60JNe9KYP09CXfvRnAAMZxGCGMG3pW6ZjemZgKDMyEzMzC7MyG7MzB3MyF3MzD%2FMyH%2FOzAAuyEAuzCIuyGIuzBGWCRIUqOQU16jRYkqVYmmVYluVYng6GMZwRNGmxAiuyEiuzCquyGquzBmuyFmuzDuuyHuuzARuyERuzCZuyGZuzBVuyFVuzDduyHdszklGMZgd2ZAw7MZZxjGdnJrALu9LJbuzOHkxkT%2FZib%2FZhX%2FZjfw7gQA7iYA7hUA7jcI7gSI7iaI7hWI7jeE7gRE7iZE5hEqdyGqdzBmdyFmdzDudyHudzARdyERdzCZdyGZdzBVdyFVdzDddyHddzAzdyEzdzC7dyG7dzB3dyF3dzD%2FdyH%2FfzAA%2FyEA%2FzCI%2FyGI%2FzBE%2FyFE%2FzDM%2FyHM%2FzAi%2FyEi%2FzCq%2FyGq%2FzBm%2FyFm%2FzDu%2FyHu%2FzAR%2FyER%2FzCZ%2FyGZ%2FzBV%2FyFV%2FzDd%2FyHd%2FzAz%2FyEz%2FzC7%2FyG7%2FzB3%2FyF3%2FzD%2F9mpYwsy7pl3bMeWc%2BsV9Y765NNk%2FXN%2BmX9swHZwGxQNjgb0nPkmInjR0V7Uq%2FOsaPL5Y7ylE3l8tQNN7kVt%2BrmbuHW3LrbcDvam1rtzVvdm50TxrU%2FDBvRtZUY1rV5a3jXFn550Wo%2FXDNWK3dFmh7X9LimxzU9qulRTY9qelTTo5rlKLt2wk7YiaprL%2ByFvbAX9pK9ZC%2FZS%2FaSvWQv2Uv2kr1kr2KvYq9ir2KvYq9ir2KvYq9ir2Kvaq9qr2qvaq9qr2qvaq9qr2qvai%2B3l9vL7eX2cnu5vdxebi%2B3l9sr7BV2CjuFncJOYaewU9gp7NTs1LyrZq9mr2avZq9mr2avZq9mr26vbq9ur26vbq9ur26vbq9ur26vYa9hr2GvYa9hr2GvYa%2FR7oXuQ%2Feh%2B2j%2FUU7e3C3cqc%2FV3fYdof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D92H7kP3ofvQfeg%2BdB%2B6D92H7kP3ofvQfRT29B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6j6nuG3Ya7U5q%2F0hN3nCTW3Grbu4Wrs%2FrP%2Bk%2F6T%2FpP%2Bk%2F6T%2FpP%2Bk%2B6T7pPek86TzpPOk86TzpOuk66TrpOuk66TrpOlWmPu%2F36zrpOuk66TrpOuk66TrpOvl%2FPek76TvpO%2Bk76TvpO%2Bk76TvpO%2Bk76TvpO7V9t%2BqtVs%2FOaOURU6bo6PgPt6rZbwAAAAABVFDDFwAA%20format%28%27woff%27%29%2Cdata%3Aapplication%2Fx%2Dfont%2Dtruetype%3Bbase64%2CAAEAAAAPAIAAAwBwRkZUTW0ql9wAAAD8AAAAHEdERUYBRAAEAAABGAAAACBPUy8yZ7lriQAAATgAAABgY21hcNqt44EAAAGYAAAGcmN2dCAAKAL4AAAIDAAAAARnYXNw%2F%2F8AAwAACBAAAAAIZ2x5Zn1dwm8AAAgYAACUpGhlYWQFTS%2FYAACcvAAAADZoaGVhCkQEEQAAnPQAAAAkaG10eNLHIGAAAJ0YAAADdGxvY2Fv%2B5XOAACgjAAAAjBtYXhwAWoA2AAAorwAAAAgbmFtZbMsoJsAAKLcAAADonBvc3S6o%2BU1AACmgAAACtF3ZWJmwxhUUAAAsVQAAAAGAAAAAQAAAADMPaLPAAAAANB2gXUAAAAA0HZzlwABAAAADgAAABgAAAAAAAIAAQABARYAAQAEAAAAAgAAAAMEiwGQAAUABAMMAtAAAABaAwwC0AAAAaQAMgK4AAAAAAUAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAFVLV04AQAAg%2F%2F8DwP8QAAAFFAB7AAAAAQAAAAAAAAAAAAAAIAABAAAABQAAAAMAAAAsAAAACgAAAdwAAQAAAAAEaAADAAEAAAAsAAMACgAAAdwABAGwAAAAaABAAAUAKAAgACsAoAClIAogLyBfIKwgvSISIxsl%2FCYBJvonCScP4APgCeAZ4CngOeBJ4FngYOBp4HngieCX4QnhGeEp4TnhRuFJ4VnhaeF54YnhleGZ4gbiCeIW4hniIeIn4jniSeJZ4mD4%2F%2F%2F%2FAAAAIAAqAKAApSAAIC8gXyCsIL0iEiMbJfwmASb6JwknD%2BAB4AXgEOAg4DDgQOBQ4GDgYuBw4IDgkOEB4RDhIOEw4UDhSOFQ4WDhcOGA4ZDhl%2BIA4gniEOIY4iHiI%2BIw4kDiUOJg%2BP%2F%2F%2F%2F%2Fj%2F9r%2FZv9i4Ajf5N%2B132nfWd4F3P3aHdoZ2SHZE9kOIB0gHCAWIBAgCiAEH%2F4f%2BB%2F3H%2FEf6x%2FlH3wfdh9wH2ofZB9jH10fVx9RH0sfRR9EHt4e3B7WHtUezh7NHsUevx65HrMIFQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAACjAAAAAAAAAA1AAAAIAAAACAAAAADAAAAKgAAACsAAAAEAAAAoAAAAKAAAAAGAAAApQAAAKUAAAAHAAAgAAAAIAoAAAAIAAAgLwAAIC8AAAATAAAgXwAAIF8AAAAUAAAgrAAAIKwAAAAVAAAgvQAAIL0AAAAWAAAiEgAAIhIAAAAXAAAjGwAAIxsAAAAYAAAl%2FAAAJfwAAAAZAAAmAQAAJgEAAAAaAAAm%2BgAAJvoAAAAbAAAnCQAAJwkAAAAcAAAnDwAAJw8AAAAdAADgAQAA4AMAAAAeAADgBQAA4AkAAAAhAADgEAAA4BkAAAAmAADgIAAA4CkAAAAwAADgMAAA4DkAAAA6AADgQAAA4EkAAABEAADgUAAA4FkAAABOAADgYAAA4GAAAABYAADgYgAA4GkAAABZAADgcAAA4HkAAABhAADggAAA4IkAAABrAADgkAAA4JcAAAB1AADhAQAA4QkAAAB9AADhEAAA4RkAAACGAADhIAAA4SkAAACQAADhMAAA4TkAAACaAADhQAAA4UYAAACkAADhSAAA4UkAAACrAADhUAAA4VkAAACtAADhYAAA4WkAAAC3AADhcAAA4XkAAADBAADhgAAA4YkAAADLAADhkAAA4ZUAAADVAADhlwAA4ZkAAADbAADiAAAA4gYAAADeAADiCQAA4gkAAADlAADiEAAA4hYAAADmAADiGAAA4hkAAADtAADiIQAA4iEAAADvAADiIwAA4icAAADwAADiMAAA4jkAAAD1AADiQAAA4kkAAAD%2FAADiUAAA4lkAAAEJAADiYAAA4mAAAAETAAD4%2FwAA%2BP8AAAEUAAH1EQAB9REAAAEVAAH2qgAB9qoAAAEWAAYCCgAAAAABAAABAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAEAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAL4AAAAAf%2F%2FAAIAAgAoAAABaAMgAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCxAwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIRElMxEjKAFA%2Fujw8AMg%2FOAoAtAAAQBkAGQETARMAFsAAAEyFh8BHgEdATc%2BAR8BFgYPATMyFhcWFRQGDwEOASsBFx4BDwEGJi8BFRQGBwYjIiYvAS4BPQEHDgEvASY2PwEjIiYnJjU0Nj8BPgE7AScuAT8BNhYfATU0Njc2AlgPJgsLCg%2BeBxYIagcCB57gChECBgMCAQIRCuCeBwIHaggWB54PCikiDyYLCwoPngcWCGoHAgee4AoRAgYDAgECEQrgngcCB2oIFgeeDwopBEwDAgECEQrgngcCB2oIFgeeDwopIg8mCwsKD54HFghqBwIHnuAKEQIGAwIBAhEK4J4HAgdqCBYHng8KKSIPJgsLCg%2BeBxYIagcCB57gChECBgAAAAABAAAAAARMBEwAIwAAATMyFhURITIWHQEUBiMhERQGKwEiJjURISImPQE0NjMhETQ2AcLIFR0BXhUdHRX%2Boh0VyBUd%2FqIVHR0VAV4dBEwdFf6iHRXIFR3%2BohUdHRUBXh0VyBUdAV4VHQAAAAABAHAAAARABEwARQAAATMyFgcBBgchMhYPAQ4BKwEVITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ASYnASY2OwEyHwEWMj8BNgM5%2BgoFCP6UBgUBDAoGBngGGAp9ARMKBgZ4BhgKfQ8LlAsP%2Fu0KBgZ4BhgKff7tCgYGeAYYCnYFBv6UCAUK%2BhkSpAgUCKQSBEwKCP6UBgwMCKAIDGQMCKAIDK4LDw8LrgwIoAgMZAwIoAgMDAYBbAgKEqQICKQSAAABAGQABQSMBK4AOwAAATIXFhcjNC4DIyIOAwchByEGFSEHIR4EMzI%2BAzUzBgcGIyInLgEnIzczNjcjNzM%2BATc2AujycDwGtSM0QDkXEys4MjAPAXtk%2FtQGAZZk%2FtQJMDlCNBUWOUA0I64eYmunznYkQgzZZHABBdpkhhQ%2BH3UErr1oaS1LMCEPCx4uTzJkMjJkSnRCKw8PIjBKK6trdZ4wqndkLzVkV4UljQAAAgB7AAAETASwAD4ARwAAASEyHgUVHAEVFA4FKwEHITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ARE0NhcRMzI2NTQmIwGsAV5DakIwFgwBAQwWMEJqQ7ICASAKBgZ4BhgKigsKlQoP%2FvUKBgZ4BhgKdf71CgYGeAYYCnUPtstALS1ABLAaJD8yTyokCwsLJCpQMkAlGmQMCKAIDK8LDg8KrwwIoAgMZAwIoAgMAdsKD8j%2B1EJWVEAAAAEAyAGQBEwCvAAPAAATITIWHQEUBiMhIiY9ATQ2%2BgMgFR0dFfzgFR0dArwdFcgVHR0VyBUdAAAAAgDIAAAD6ASwACUAQQAAARUUBisBFRQGBx4BHQEzMhYdASE1NDY7ATU0NjcuAT0BIyImPQEXFRQWFx4BFAYHDgEdASE1NCYnLgE0Njc%2BAT0BA%2BgdFTJjUVFjMhUd%2FOAdFTJjUVFjMhUdyEE3HCAgHDdBAZBBNxwgIBw3QQSwlhUdZFuVIyOVW5YdFZaWFR2WW5UjI5VbZB0VlshkPGMYDDI8MgwYYzyWljxjGAwyPDIMGGM8ZAAAAAEAAAAAAAAAAAAAAAAxAAAB%2F%2FIBLATCBEEAFgAAATIWFzYzMhYVFAYjISImNTQ2NyY1NDYB9261LCwueKqqeP0ST3FVQgLYBEF3YQ6teHmtclBFaw4MGZnXAAAAAgAAAGQEsASvABoAHgAAAB4BDwEBMzIWHQEhNTQ2OwEBJyY%2BARYfATc2AyEnAwL2IAkKiAHTHhQe%2B1AeFB4B1IcKCSAkCm9wCXoBebbDBLMTIxC7%2FRYlFSoqFSUC6rcQJBQJEJSWEPwecAIWAAAAAAQAAABkBLAETAALABcAIwA3AAATITIWBwEGIicBJjYXARYUBwEGJjURNDYJATYWFREUBicBJjQHARYGIyEiJjcBNjIfARYyPwE2MhkEfgoFCP3MCBQI%2FcwIBQMBCAgI%2FvgICgoDjAEICAoKCP74CFwBbAgFCvuCCgUIAWwIFAikCBQIpAgUBEwKCP3JCAgCNwgK2v74CBQI%2FvgIBQoCJgoF%2FvABCAgFCv3aCgUIAQgIFID%2BlAgKCggBbAgIpAgIpAgAAAAD%2F%2FD%2F8AS6BLoACQANABAAAAAyHwEWFA8BJzcTAScJAQUTA%2BAmDpkNDWPWXyL9mdYCZv4f%2FrNuBLoNmQ4mDlzWYP50%2FZrWAmb8anABTwAAAAEAAAAABLAEsAAPAAABETMyFh0BITU0NjsBEQEhArz6FR384B0V%2Bv4MBLACiv3aHRUyMhUdAiYCJgAAAAEADgAIBEwEnAAfAAABJTYWFREUBgcGLgE2NzYXEQURFAYHBi4BNjc2FxE0NgFwAoUnMFNGT4gkV09IQv2oWEFPiCRXT0hCHQP5ow8eIvzBN1EXGSltchkYEAIJm%2F2iKmAVGilucRoYEQJ%2FJioAAAACAAn%2F%2BAS7BKcAHQApAAAAMh4CFQcXFAcBFgYPAQYiJwEGIycHIi4CND4BBCIOARQeATI%2BATQmAZDItoNOAQFOARMXARY7GikT%2Fu13jgUCZLaDTk6DAXKwlFZWlLCUVlYEp06DtmQCBY15%2Fu4aJRg6FBQBEk0BAU6Dtsi2g1tWlLCUVlaUsJQAAQBkAFgErwREABkAAAE%2BAh4CFRQOAwcuBDU0PgIeAQKJMHt4dVg2Q3mEqD4%2Bp4V4Qzhadnh5A7VESAUtU3ZAOXmAf7JVVbJ%2FgHk5QHZTLQVIAAAAAf%2FTAF4EewSUABgAAAETNjIXEyEyFgcFExYGJyUFBiY3EyUmNjMBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAyABYRMT%2Fp8RDPn%2BbxQLDPb3DAsUAZD7DBEAAv%2FTAF4EewSUABgAIgAAARM2MhcTITIWBwUTFgYnJQUGJjcTJSY2MwUjFwc3Fyc3IycBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAfPwxUrBw0rA6k4DIAFhExP%2BnxEM%2Bf5vFAsM9vcMCxQBkPsMEWSO4ouM5YzTAAABAAAAAASwBLAAJgAAATIWHQEUBiMVFBYXBR4BHQEUBiMhIiY9ATQ2NyU%2BAT0BIiY9ATQ2Alh8sD4mDAkBZgkMDwr7ggoPDAkBZgkMJj6wBLCwfPouaEsKFwbmBRcKXQoPDwpdChcF5gYXCktoLvp8sAAAAA0AAAAABLAETAAPABMAIwAnACsALwAzADcARwBLAE8AUwBXAAATITIWFREUBiMhIiY1ETQ2FxUzNSkBIgYVERQWMyEyNjURNCYzFTM1BRUzNSEVMzUFFTM1IRUzNQchIgYVERQWMyEyNjURNCYFFTM1IRUzNQUVMzUhFTM1GQR%2BCg8PCvuCCg8PVWQCo%2F3aCg8PCgImCg8Pc2T8GGQDIGT8GGQDIGTh%2FdoKDw8KAiYKDw%2F872QDIGT8GGQDIGQETA8K%2B%2BYKDw8KBBoKD2RkZA8K%2FqIKDw8KAV4KD2RkyGRkZGTIZGRkZGQPCv6iCg8PCgFeCg9kZGRkZMhkZGRkAAAEAAAAAARMBEwADwAfAC8APwAAEyEyFhURFAYjISImNRE0NikBMhYVERQGIyEiJjURNDYBITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NjIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR39vQGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHQRMHRX%2BcBUdHRUBkBUdHRX%2BcBUdHRUBkBUd%2FagdFf5wFR0dFQGQFR0dFf5wFR0dFQGQFR0AAAkAAAAABEwETAAPAB8ALwA%2FAE8AXwBvAH8AjwAAEzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2MsgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR0ETB0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHf5wHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0ABgAAAAAEsARMAA8AHwAvAD8ATwBfAAATMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYyyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHQRMHRXIFR0dFcgVHR0VyBUdHRXIFR3%2BcB0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHQAAAAABACYALAToBCAAFwAACQE2Mh8BFhQHAQYiJwEmND8BNjIfARYyAdECOwgUB7EICPzxBxUH%2FoAICLEHFAirBxYB3QI7CAixBxQI%2FPAICAGACBQHsQgIqwcAAQBuAG4EQgRCACMAAAEXFhQHCQEWFA8BBiInCQEGIi8BJjQ3CQEmND8BNjIXCQE2MgOIsggI%2FvUBCwgIsggVB%2F70%2FvQHFQiyCAgBC%2F71CAiyCBUHAQwBDAcVBDuzCBUH%2FvT%2B9AcVCLIICAEL%2FvUICLIIFQcBDAEMBxUIsggI%2FvUBDAcAAwAX%2F%2BsExQSZABkAJQBJAAAAMh4CFRQHARYUDwEGIicBBiMiLgI0PgEEIg4BFB4BMj4BNCYFMzIWHQEzMhYdARQGKwEVFAYrASImPQEjIiY9ATQ2OwE1NDYBmcSzgk1OASwICG0HFQj%2B1HeOYrSBTU2BAW%2BzmFhYmLOZWFj%2BvJYKD0sKDw8KSw8KlgoPSwoPDwpLDwSZTYKzYo15%2FtUIFQhsCAgBK01NgbTEs4JNWJmzmFhYmLOZIw8KSw8KlgoPSwoPDwpLDwqWCg9LCg8AAAMAF%2F%2FrBMUEmQAZACUANQAAADIeAhUUBwEWFA8BBiInAQYjIi4CND4BBCIOARQeATI%2BATQmBSEyFh0BFAYjISImPQE0NgGZxLOCTU4BLAgIbQcVCP7Ud45itIFNTYEBb7OYWFiYs5lYWP5YAV4KDw8K%2FqIKDw8EmU2Cs2KNef7VCBUIbAgIAStNTYG0xLOCTViZs5hYWJizmYcPCpYKDw8KlgoPAAAAAAIAFwAXBJkEsAAPAC0AAAEzMhYVERQGKwEiJjURNDYFNRYSFRQOAiIuAjU0EjcVDgEVFB4BMj4BNTQmAiZkFR0dFWQVHR0BD6fSW5vW6tabW9KnZ3xyxejFcnwEsB0V%2FnAVHR0VAZAVHeGmPv7ZuHXWm1tbm9Z1uAEnPqY3yHh0xXJyxXR4yAAEAGQAAASwBLAADwAfAC8APwAAATMyFhURFAYrASImNRE0NgEzMhYVERQGKwEiJjURNDYBMzIWFREUBisBIiY1ETQ2BTMyFh0BFAYrASImPQE0NgQBlgoPDwqWCg8P%2Ft6WCg8PCpYKDw%2F%2B3pYKDw8KlgoPD%2F7elgoPDwqWCg8PBLAPCvuCCg8PCgR%2BCg%2F%2BcA8K%2FRIKDw8KAu4KD%2F7UDwr%2BPgoPDwoBwgoPyA8K%2BgoPDwr6Cg8AAAAAAgAaABsElgSWAEcATwAAATIfAhYfATcWFwcXFh8CFhUUDwIGDwEXBgcnBwYPAgYjIi8CJi8BByYnNycmLwImNTQ%2FAjY%2FASc2Nxc3Nj8CNhIiBhQWMjY0AlghKSYFMS0Fhj0rUAMZDgGYBQWYAQ8YA1AwOIYFLDIFJisfISkmBTEtBYY8LFADGQ0ClwYGlwINGQNQLzqFBS0xBSYreLJ%2BfrJ%2BBJYFmAEOGQJQMDmGBSwxBiYrHiIoJgYxLAWGPSxRAxkOApcFBZcCDhkDUTA5hgUtMAYmKiAhKCYGMC0Fhj0sUAIZDgGYBf6ZfrF%2BfrEABwBkAAAEsAUUABMAFwAhACUAKQAtADEAAAEhMhYdASEyFh0BITU0NjMhNTQ2FxUhNQERFAYjISImNREXETMRMxEzETMRMxEzETMRAfQBLCk7ARMKD%2Fu0DwoBEzspASwBLDsp%2FUQpO2RkZGRkZGRkBRQ7KWQPCktLCg9kKTtkZGT%2B1PzgKTs7KQMgZP1EArz9RAK8%2FUQCvP1EArwAAQAMAAAFCATRAB8AABMBNjIXARYGKwERFAYrASImNREhERQGKwEiJjURIyImEgJsCBUHAmAIBQqvDwr6Cg%2F%2B1A8K%2BgoPrwoFAmoCYAcH%2FaAICv3BCg8PCgF3%2FokKDw8KAj8KAAIAZAAAA%2BgEsAARABcAAAERFBYzIREUBiMhIiY1ETQ2MwEjIiY9AQJYOykBLB0V%2FOAVHR0VA1L6FR0EsP5wKTv9dhUdHRUETBUd%2FnAdFfoAAwAXABcEmQSZAA8AGwAwAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBTMyFhURMzIWHQEUBisBIiY1ETQ2AePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnL%2BfDIKD68KDw8K%2BgoPDwSZW5vW6tabW1ub1urWmztyxejFcnLF6MUNDwr%2B7Q8KMgoPDwoBXgoPAAAAAAL%2FnAAABRQEsAALAA8AACkBAyMDIQEzAzMDMwEDMwMFFP3mKfIp%2FeYBr9EVohTQ%2Fp4b4BsBkP5wBLD%2B1AEs%2FnD%2B1AEsAAAAAAIAZAAABLAEsAAVAC8AAAEzMhYVETMyFgcBBiInASY2OwERNDYBMzIWFREUBiMhIiY1ETQ2OwEyFh0BITU0NgImyBUdvxQLDf65DSYN%2FrkNCxS%2FHQJUMgoPDwr75goPDwoyCg8DhA8EsB0V%2Fj4XEP5wEBABkBAXAcIVHfzgDwr%2BogoPDwoBXgoPDwqvrwoPAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUzMhYVETMyFgcDBiInAyY2OwERNDYB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv58lgoPiRUKDd8NJg3fDQoViQ8EmVub1urWm1tbm9bq1ps7csXoxXJyxejFDQ8K%2Fu0XEP7tEBABExAXARMKDwAAAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiUTFgYrAREUBisBIiY1ESMiJjcTNjIB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv7n3w0KFYkPCpYKD4kVCg3fDSYEmVub1urWm1tbm9bq1ps7csXoxXJyxejFAf7tEBf%2B7QoPDwoBExcQARMQAAAAAAIAAAAABLAEsAAZADkAABMhMhYXExYVERQGBwYjISImJyY1EzQ3Ez4BBSEiBgcDBhY7ATIWHwEeATsBMjY%2FAT4BOwEyNicDLgHhAu4KEwO6BwgFDBn7tAweAgYBB7kDEwKX%2FdQKEgJXAgwKlgoTAiYCEwr6ChMCJgITCpYKDAJXAhIEsA4K%2FXQYGf5XDB4CBggEDRkBqRkYAowKDsgOC%2F4%2BCw4OCpgKDg4KmAoODgsBwgsOAAMAFwAXBJkEmQAPABsAJwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUXFhQPAQYmNRE0NgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJy%2Fov9ERH9EBgYBJlbm9bq1ptbW5vW6tabO3LF6MVycsXoxV2%2BDCQMvgwLFQGQFQsAAQAXABcEmQSwACgAAAE3NhYVERQGIyEiJj8BJiMiDgEUHgEyPgE1MxQOAiIuAjQ%2BAjMyA7OHBwsPCv6WCwQHhW2BdMVycsXoxXKWW5vW6tabW1ub1nXABCSHBwQL%2FpYKDwsHhUxyxejFcnLFdHXWm1tbm9bq1ptbAAAAAAIAFwABBJkEsAAaADUAAAE3NhYVERQGIyEiJj8BJiMiDgEVIzQ%2BAjMyEzMUDgIjIicHBiY1ETQ2MyEyFg8BFjMyPgEDs4cHCw8L%2FpcLBAeGboF0xXKWW5vWdcDrllub1nXAnIYHCw8LAWgKBQiFboJ0xXIEJIcHBAv%2BlwsPCweGS3LFdHXWm1v9v3XWm1t2hggFCgFoCw8LB4VMcsUAAAAKAGQAAASwBLAADwAfAC8APwBPAF8AbwB%2FAI8AnwAAEyEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0NgczMhYdARQGKwEiJj0BNDYzITIWHQEUBiMhIiY9ATQ2BzMyFh0BFAYrASImPQE0NjMhMhYdARQGIyEiJj0BNDYHMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0Nn0EGgoPDwr75goPDwPA%2FK4KDw8KA1IKDw%2F9CDIKDw8KMgoPD9IBwgoPDwr%2BPgoPD74yCg8PCjIKDw%2FSAcIKDw8K%2Fj4KDw%2B%2BMgoPDwoyCg8P0gHCCg8PCv4%2BCg8PvjIKDw8KMgoPD9IBwgoPDwr%2BPgoPDwSwDwr7ggoPDwoEfgoPyA8K%2FK4KDw8KA1IKD2QPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKDwAAAAACAAAAAARMBLAAGQAjAAABNTQmIyEiBh0BIyIGFREUFjMhMjY1ETQmIyE1NDY7ATIWHQEDhHVT%2FtRSdmQpOzspA4QpOzsp%2FageFMgUHgMgyFN1dlLIOyn9qCk7OykCWCk7lhUdHRWWAAIAZAAABEwETAAJADcAABMzMhYVESMRNDYFMhcWFREUBw4DIyIuAScuAiMiBwYjIicmNRE%2BATc2HgMXHgIzMjc2fTIKD2QPA8AEBRADIUNAMRwaPyonKSxHHlVLBwgGBQ4WeDsXKC4TOQQpLUUdZ1AHBEwPCvvNBDMKDzACBhH%2BWwYGO1AkDQ0ODg8PDzkFAwcPAbY3VwMCAwsGFAEODg5XCAAAAwAAAAAEsASXACEAMQBBAAAAMh4CFREUBisBIiY1ETQuASAOARURFAYrASImNRE0PgEDMzIWFREUBisBIiY1ETQ2ITMyFhURFAYrASImNRE0NgHk6N6jYw8KMgoPjeT%2B%2BuSNDwoyCg9joyqgCAwMCKAIDAwCYKAIDAwIoAgMDASXY6PedP7UCg8PCgEsf9FyctF%2F%2FtQKDw8KASx03qP9wAwI%2FjQIDAwIAcwIDAwI%2FjQIDAwIAcwIDAAAAAACAAAA0wRHA90AFQA5AAABJTYWFREUBiclJisBIiY1ETQ2OwEyBTc2Mh8BFhQPARcWFA8BBiIvAQcGIi8BJjQ%2FAScmND8BNjIXAUEBAgkMDAn%2B%2FhUZ%2BgoPDwr6GQJYeAcUByIHB3h4BwciBxQHeHgHFAciBwd3dwcHIgcUBwMurAYHCv0SCgcGrA4PCgFeCg%2BEeAcHIgcUB3h4BxQHIgcHd3cHByIHFAd4eAcUByIICAAAAAACAAAA0wNyA90AFQAvAAABJTYWFREUBiclJisBIiY1ETQ2OwEyJTMWFxYVFAcGDwEiLwEuATc2NTQnJjY%2FATYBQQECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcDLqwGBwr9EgoHBqwODwoBXgoPZAEJgaGafwkBAQYXBxMIZ36EaggUBxYFAAAAAAMAAADEBGID7AAbADEASwAAATMWFxYVFAYHBgcjIi8BLgE3NjU0JicmNj8BNgUlNhYVERQGJyUmKwEiJjURNDY7ATIlMxYXFhUUBwYPASIvAS4BNzY1NCcmNj8BNgPHAwsGh0RABwoDCQcqCAIGbzs3BgIJKgf9ggECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcD7AEJs9lpy1QJAQYiBhQIlrJarEcJFAYhBb6sBgcK%2FRIKBwasDg8KAV4KD2QBCYGhmn8JAQEGFwcTCGd%2BhGoIFQYWBQAAAAANAAAAAASwBLAACQAVABkAHQAhACUALQA7AD8AQwBHAEsATwAAATMVIxUhFSMRIQEjFTMVIREjESM1IQURIREhESERBSM1MwUjNTMBMxEhETM1MwEzFSMVIzUjNTM1IzUhBREhEQcjNTMFIzUzASM1MwUhNSEB9GRk%2FnBkAfQCvMjI%2FtTIZAJY%2B7QBLAGQASz84GRkArxkZP1EyP4MyGQB9MhkyGRkyAEs%2FUQBLGRkZAOEZGT%2BDGRkAfT%2B1AEsA4RkZGQCWP4MZMgBLAEsyGT%2B1AEs%2FtQBLMhkZGT%2BDP4MAfRk%2FtRkZGRkyGTI%2FtQBLMhkZGT%2B1GRkZAAAAAAJAAAAAASwBLAAAwAHAAsADwATABcAGwAfACMAADcjETMTIxEzASMRMxMjETMBIxEzASE1IRcjNTMXIzUzBSM1M2RkZMhkZAGQyMjIZGQBLMjI%2FOD%2B1AEsyGRkyGRkASzIyMgD6PwYA%2Bj8GAPo%2FBgD6PwYA%2Bj7UGRkW1tbW1sAAAIAAAAKBKYEsAANABUAAAkBFhQHAQYiJwETNDYzBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAUM7Uzs7UzsEsP1WCBQI%2FjAICAKqAdsKD807O1Q7OwAAAAADAAAACgXSBLAADQAZACEAAAkBFhQHAQYiJwETNDYzIQEWFAcBBiIvAQkBBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAwYCqggI%2FjAIFAg4Aaj9RP7TO1M7O1M7BLD9VggUCP4wCAgCqgHbCg%2F9VggUCP4wCAg4AaoCvM07O1Q7OwAAAAABAGQAAASwBLAAJgAAASEyFREUDwEGJjURNCYjISIPAQYWMyEyFhURFAYjISImNRE0PwE2ASwDOUsSQAgKDwr9RBkSQAgFCgK8Cg8PCvyuCg8SixIEsEv8fBkSQAgFCgO2Cg8SQAgKDwr8SgoPDwoDzxkSixIAAAABAMj%2F%2FwRMBLAACgAAEyEyFhURCQERNDb6AyAVHf4%2B%2Fj4dBLAdFfuCAbz%2BQwR%2FFR0AAAAAAwAAAAAEsASwABUARQBVAAABISIGBwMGHwEeATMhMjY%2FATYnAy4BASMiBg8BDgEjISImLwEuASsBIgYVERQWOwEyNj0BNDYzITIWHQEUFjsBMjY1ETQmASEiBg8BBhYzITI2LwEuAQM2%2FkQLEAFOBw45BhcKAcIKFwY%2BDgdTARABVpYKFgROBBYK%2FdoKFgROBBYKlgoPDwqWCg8PCgLuCg8PCpYKDw%2F%2Bsf4MChMCJgILCgJYCgsCJgITBLAPCv7TGBVsCQwMCWwVGAEtCg%2F%2BcA0JnAkNDQmcCQ0PCv12Cg8PCpYKDw8KlgoPDwoCigoP%2FagOCpgKDg4KmAoOAAAAAAQAAABkBLAETAAdACEAKQAxAAABMzIeAh8BMzIWFREUBiMhIiY1ETQ2OwE%2BBAEVMzUEIgYUFjI2NCQyFhQGIiY0AfTIOF00JAcGlik7Oyn8GCk7OymWAgknM10ByGT%2Bz76Hh76H%2Fu9WPDxWPARMKTs7FRQ7Kf2oKTs7KQJYKTsIG0U1K%2F7UZGRGh76Hh74IPFY8PFYAAAAAAgA1AAAEsASvACAAIwAACQEWFx4BHwEVITUyNi8BIQYHBh4CMxUhNTY3PgE%2FAQEDIQMCqQGBFCgSJQkK%2Fl81LBFS%2Fnk6IgsJKjIe%2FpM4HAwaBwcBj6wBVKIEr%2FwaMioTFQECQkJXLd6RWSIuHAxCQhgcDCUNDQPu%2FVoByQAAAAADAGQAAAPwBLAAJwAyADsAAAEeBhUUDgMjITU%2BATURNC4EJzUFMh4CFRQOAgclMzI2NTQuAisBETMyNjU0JisBAvEFEzUwOyodN1htbDD%2BDCk7AQYLFyEaAdc5dWM%2BHy0tEP6Pi05pESpTPnbYUFJ9Xp8CgQEHGB0zOlIuQ3VONxpZBzMoAzsYFBwLEAkHRwEpSXNDM1s6KwkxYUopOzQb%2FK5lUFqBAAABAMgAAANvBLAAGQAAARcOAQcDBhYXFSE1NjcTNjQuBCcmJzUDbQJTQgeECSxK%2Fgy6Dq0DAw8MHxUXDQYEsDkTNSj8uTEoBmFhEFIDQBEaExAJCwYHAwI5AAAAAAL%2FtQAABRQEsAAlAC8AAAEjNC4FKwERFBYfARUhNTI%2BAzURIyIOBRUjESEFIxEzByczESM3BRQyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj7m0tLfX1LS30DhBUgFQ4IAwH8rhYZAQJkZAEFCRUOA1IBAwgOFSAVASzI%2FOCnpwMgpwACACH%2FtQSPBLAAJQAvAAABIzQuBSsBERQWHwEVITUyPgM1ESMiDgUVIxEhEwc1IRUnNxUhNQRMMggLGRMmGBnIMhkZ%2FnAEDiIaFsgZGCYTGQsIMgPoQ6f84KenAyADhBUgFQ4IAwH9dhYZAQJkZAEFCRUOAooBAwgOFSAVASz7gn1LS319S0sABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyAlgVHR0V%2FagVHR0VA%2BgVHR0V%2FBgVHR0VAyAVHR0V%2FOAVHR0VBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYDITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NgMhMhYdARQGIyEiJj0BNDb6ArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR3dArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AAAE1NDYzITIWHQEUBiMhIiYBNTQ2MyEyFh0BFAYjISImEzU0NjMhMhYdARQGIyEiJgE1NDYzITIWHQEUBiMhIiYB9B0VAlgVHR0V%2FagVHf5wHRUD6BUdHRX8GBUdyB0VAyAVHR0V%2FOAVHf7UHRUETBUdHRX7tBUdA7ZkFR0dFWQVHR3%2B6WQVHR0VZBUdHf7pZBUdHRVkFR0d%2FulkFR0dFWQVHR0AAAQAAAAABLAETAAPAB8ALwA%2FAAATITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2MgRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dBEwdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAgAAAAABLAETAAPAB8ALwA%2FAE8AXwBvAH8AABMzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2MmQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR0ETB0VZBUdHRVkFR0dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdHRVkFR0dFWQVHf7UHRVkFR0dFWQVHR0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0dFWQVHR0VZBUdAAAG%2F5wAAASwBEwAAwATACMAKgA6AEoAACEjETsCMhYdARQGKwEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2BQc1IzUzNQUhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2AZBkZJZkFR0dFWQVHR0VAfQVHR0V%2FgwVHR3%2B%2BqfIyAHCASwVHR0V%2FtQVHR0VAlgVHR0V%2FagVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR36fUtkS68dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAAABgAAAAAFFARMAA8AEwAjACoAOgBKAAATMzIWHQEUBisBIiY9ATQ2ASMRMwEhMhYdARQGIyEiJj0BNDYFMxUjFSc3BSEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyZBUdHRVkFR0dA2dkZPyuAfQVHR0V%2FgwVHR0EL8jIp6f75gEsFR0dFf7UFR0dFQJYFR0dFf2oFR0dBEwdFWQVHR0VZBUd%2B7QETP7UHRVkFR0dFWQVHchkS319rx0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0AAAAAAgAAAMgEsAPoAA8AEgAAEyEyFhURFAYjISImNRE0NgkCSwLuHywsH%2F0SHywsBIT%2B1AEsA%2BgsH%2F12HywsHwKKHyz9RAEsASwAAwAAAAAEsARMAA8AFwAfAAATITIWFREUBiMhIiY1ETQ2FxE3BScBExEEMhYUBiImNCwEWBIaGhL7qBIaGkr3ASpKASXs%2FNJwTk5wTgRMGhL8DBIaGhID9BIaZP0ftoOcAT7%2B4AH0dE5vT09vAAAAAAIA2wAFBDYEkQAWAB4AAAEyHgEVFAcOAQ8BLgQnJjU0PgIWIgYUFjI2NAKIdcZzRkWyNjYJIV5YbSk8RHOft7eCgreCBJF4ynVzj23pPz4IIWZomEiEdVijeUjDgriBgbgAAAACABcAFwSZBJkADwAXAAAAMh4CFA4CIi4CND4BAREiDgEUHgEB4%2BrWm1tbm9bq1ptbW5sBS3TFcnLFBJlbm9bq1ptbW5vW6tab%2FG8DVnLF6MVyAAACAHUAAwPfBQ8AGgA1AAABHgYVFA4DBy4DNTQ%2BBQMOAhceBBcWNj8BNiYnLgInJjc2IyYCKhVJT1dOPiUzVnB9P1SbfEokP0xXUEm8FykoAwEbITEcExUWAgYCCQkFEikMGiACCAgFD0iPdXdzdYdFR4BeRiYEBTpjl1lFh3ZzeHaQ%2Ff4hS4I6JUEnIw4IBwwQIgoYBwQQQSlZtgsBAAAAAwAAAAAEywRsAAwAKgAvAAABNz4CHgEXHgEPAiUhMhcHISIGFREUFjMhMjY9ATcRFAYjISImNRE0NgkBBzcBA%2BhsAgYUFR0OFgoFBmz9BQGQMje7%2FpApOzspAfQpO8i7o%2F5wpbm5Azj%2BlqE3AWMD9XMBAgIEDw4WKgsKc8gNuzsp%2FgwpOzsptsj%2BtKW5uaUBkKW5%2Ftf%2BljKqAWMAAgAAAAAEkwRMABsANgAAASEGByMiBhURFBYzITI2NTcVFAYjISImNRE0NgUBFhQHAQYmJzUmDgMHPgY3NT4BAV4BaaQ0wyk7OykB9Ck7yLml%2FnClubkCfwFTCAj%2BrAcLARo5ZFRYGgouOUlARioTAQsETJI2Oyn%2BDCk7OymZZ6W5uaUBkKW5G%2F7TBxUH%2Fs4GBAnLAQINFjAhO2JBNB0UBwHSCgUAAAAAAgAAAAAEnQRMAB0ANQAAASEyFwchIgYVERQWMyEyNj0BNxUUBiMhIiY1ETQ2CQE2Mh8BFhQHAQYiLwEmND8BNjIfARYyAV4BXjxDsv6jKTs7KQH0KTvIuaX%2BcKW5uQHKAYsHFQdlBwf97QcVB%2FgHB2UHFQdvCBQETBexOyn%2BDCk7OylFyNulubmlAZCluf4zAYsHB2UHFQf97AcH%2BAcVB2UHB28HAAAAAQAKAAoEpgSmADsAAAkBNjIXARYGKwEVMzU0NhcBFhQHAQYmPQEjFTMyFgcBBiInASY2OwE1IxUUBicBJjQ3ATYWHQEzNSMiJgE%2BAQgIFAgBBAcFCqrICggBCAgI%2FvgICsiqCgUH%2FvwIFAj%2B%2BAgFCq%2FICgj%2B%2BAgIAQgICsivCgUDlgEICAj%2B%2BAgKyK0KBAf%2B%2FAcVB%2F73BwQKrcgKCP74CAgBCAgKyK0KBAcBCQcVBwEEBwQKrcgKAAEAyAAAA4QETAAZAAATMzIWFREBNhYVERQGJwERFAYrASImNRE0NvpkFR0B0A8VFQ%2F%2BMB0VZBUdHQRMHRX%2BSgHFDggV%2FBgVCA4Bxf5KFR0dFQPoFR0AAAABAAAAAASwBEwAIwAAEzMyFhURATYWFREBNhYVERQGJwERFAYnAREUBisBIiY1ETQ2MmQVHQHQDxUB0A8VFQ%2F%2BMBUP%2FjAdFWQVHR0ETB0V%2FkoBxQ4IFf5KAcUOCBX8GBUIDgHF%2FkoVCA4Bxf5KFR0dFQPoFR0AAAABAJ0AGQSwBDMAFQAAAREUBicBERQGJwEmNDcBNhYVEQE2FgSwFQ%2F%2BMBUP%2FhQPDwHsDxUB0A8VBBr8GBUIDgHF%2FkoVCA4B4A4qDgHgDggV%2FkoBxQ4IAAAAAQDIABYEMwQ2AAsAABMBFhQHAQYmNRE0NvMDLhIS%2FNISGRkEMv4OCx4L%2Fg4LDhUD6BUOAAIAyABkA4QD6AAPAB8AABMzMhYVERQGKwEiJjURNDYhMzIWFREUBisBIiY1ETQ2%2BsgVHR0VyBUdHQGlyBUdHRXIFR0dA%2BgdFfzgFR0dFQMgFR0dFfzgFR0dFQMgFR0AAAEAyABkBEwD6AAPAAABERQGIyEiJjURNDYzITIWBEwdFfzgFR0dFQMgFR0DtvzgFR0dFQMgFR0dAAAAAAEAAAAZBBMEMwAVAAABETQ2FwEWFAcBBiY1EQEGJjURNDYXAfQVDwHsDw%2F%2BFA8V%2FjAPFRUPAmQBthUIDv4gDioO%2FiAOCBUBtv47DggVA%2BgVCA4AAAH%2F%2FgACBLMETwAjAAABNzIWFRMUBiMHIiY1AwEGJjUDAQYmNQM0NhcBAzQ2FwEDNDYEGGQUHgUdFWQVHQL%2BMQ4VAv4yDxUFFQ8B0gIVDwHSAh0ETgEdFfwYFR0BHRUBtf46DwkVAbX%2BOQ4JFAPoFQkP%2Fj4BthQJDv49AbYVHQAAAQEsAAAD6ARMABkAAAEzMhYVERQGKwEiJjURAQYmNRE0NhcBETQ2A1JkFR0dFWQVHf4wDxUVDwHQHQRMHRX8GBUdHRUBtv47DggVA%2BgVCA7%2BOwG2FR0AAAIAZADIBLAESAALABsAAAkBFgYjISImNwE2MgEhMhYdARQGIyEiJj0BNDYCrgH1DwkW%2B%2B4WCQ8B9Q8q%2FfcD6BUdHRX8GBUdHQQ5%2FeQPFhYPAhwP%2FUgdFWQVHR0VZBUdAAEAiP%2F8A3UESgAFAAAJAgcJAQN1%2FqABYMX92AIoA4T%2Bn%2F6fxgIoAiYAAAAAAQE7%2F%2FwEKARKAAUAAAkBJwkBNwQo%2FdnGAWH%2Bn8YCI%2F3ZxgFhAWHGAAIAFwAXBJkEmQAPADMAAAAyHgIUDgIiLgI0PgEFIyIGHQEjIgYdARQWOwEVFBY7ATI2PQEzMjY9ATQmKwE1NCYB4%2BrWm1tbm9bq1ptbW5sBfWQVHZYVHR0Vlh0VZBUdlhUdHRWWHQSZW5vW6tabW1ub1urWm7odFZYdFWQVHZYVHR0Vlh0VZBUdlhUdAAAAAAIAFwAXBJkEmQAPAB8AAAAyHgIUDgIiLgI0PgEBISIGHQEUFjMhMjY9ATQmAePq1ptbW5vW6tabW1ubAkX%2BDBUdHRUB9BUdHQSZW5vW6tabW1ub1urWm%2F5%2BHRVkFR0dFWQVHQACABcAFwSZBJkADwAzAAAAMh4CFA4CIi4CND4BBCIPAScmIg8BBhQfAQcGFB8BFjI%2FARcWMj8BNjQvATc2NC8BAePq1ptbW5vW6tabW1ubAeUZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0JCXh4CQmNBJlbm9bq1ptbW5vW6tabrQl4eAkJjQkZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0AAgAXABcEmQSZAA8AJAAAADIeAhQOAiIuAjQ%2BAQEnJiIPAQYUHwEWMjcBNjQvASYiBwHj6tabW1ub1urWm1tbmwEVVAcVCIsHB%2FIHFQcBdwcHiwcVBwSZW5vW6tabW1ub1urWm%2F4xVQcHiwgUCPEICAF3BxUIiwcHAAAAAAMAFwAXBJkEmQAPADsASwAAADIeAhQOAiIuAjQ%2BAQUiDgMVFDsBFjc%2BATMyFhUUBgciDgUHBhY7ATI%2BAzU0LgMTIyIGHQEUFjsBMjY9ATQmAePq1ptbW5vW6tabW1ubAT8dPEIyIRSDHgUGHR8UFw4TARkOGhITDAIBDQ6tBx4oIxgiM0Q8OpYKDw8KlgoPDwSZW5vW6tabW1ub1urWm5ELHi9PMhkFEBQQFRIXFgcIBw4UHCoZCBEQKDhcNi9IKhsJ%2FeMPCpYKDw8KlgoPAAADABcAFwSZBJkADwAfAD4AAAAyHgIUDgIiLgI0PgEFIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ARUjIgYdARQWMyEyNj0BNCYrARE0JgHj6tabW1ub1urWm1tbmwGWlgoPDwqWCg8PCvoKDw8KS0sKDw8KAV4KDw8KSw8EmVub1urWm1tbm9bq1ptWDwqWCg8PCpYKD%2F7UDwoyCg%2FIDwoyCg8PCjIKDwETCg8AAgAAAAAEsASwAC8AXwAAATMyFh0BHgEXMzIWHQEUBisBDgEHFRQGKwEiJj0BLgEnIyImPQE0NjsBPgE3NTQ2ExUUBisBIiY9AQ4BBzMyFh0BFAYrAR4BFzU0NjsBMhYdAT4BNyMiJj0BNDY7AS4BAg2WCg9nlxvCCg8PCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw%2B5DwqWCg9EZheoCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmBLAPCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw8KlgoPZ5cbwgoP%2Fs2oCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmRA8KlgoPRGYAAwAXABcEmQSZAA8AGwA%2FAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBxcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyAePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnKaQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwdABxUHfHwHFQSZW5vW6tabW1ub1urWmztyxejFcnLF6MVaQAcVB3x8BxUHQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwAAAAMAFwAXBJkEmQAPABsAMAAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcXFhQHAQYiLwEmND8BNjIfATc2MgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJyg2oHB%2F7ACBQIyggIagcVB0%2FFBxUEmVub1urWm1tbm9bq1ps7csXoxXJyxejFfWoHFQf%2BvwcHywcVB2oICE%2FFBwAAAAMAFwAXBJkEmQAPABgAIQAAADIeAhQOAiIuAjQ%2BAQUiDgEVFBcBJhcBFjMyPgE1NAHj6tabW1ub1urWm1tbmwFLdMVyQQJLafX9uGhzdMVyBJlbm9bq1ptbW5vW6tabO3LFdHhpAktB0P24PnLFdHMAAAAAAQAXAFMEsAP5ABUAABMBNhYVESEyFh0BFAYjIREUBicBJjQnAgoQFwImFR0dFf3aFxD99hACRgGrDQoV%2Ft0dFcgVHf7dFQoNAasNJgAAAAABAAAAUwSZA%2FkAFQAACQEWFAcBBiY1ESEiJj0BNDYzIRE0NgJ%2FAgoQEP32EBf92hUdHRUCJhcD8f5VDSYN%2FlUNChUBIx0VyBUdASMVCgAAAAEAtwAABF0EmQAVAAAJARYGIyERFAYrASImNREhIiY3ATYyAqoBqw0KFf7dHRXIFR3%2B3RUKDQGrDSYEif32EBf92hUdHRUCJhcQAgoQAAAAAQC3ABcEXQSwABUAAAEzMhYVESEyFgcBBiInASY2MyERNDYCJsgVHQEjFQoN%2FlUNJg3%2BVQ0KFQEjHQSwHRX92hcQ%2FfYQEAIKEBcCJhUdAAABAAAAtwSZBF0AFwAACQEWFAcBBiY1EQ4DBz4ENxE0NgJ%2FAgoQEP32EBdesKWBJAUsW4fHfhcEVf5VDSYN%2FlUNChUBIwIkRHVNabGdcUYHAQYVCgACAAAAAASwBLAAFQArAAABITIWFREUBi8BBwYiLwEmND8BJyY2ASEiJjURNDYfATc2Mh8BFhQPARcWBgNSASwVHRUOXvkIFAhqBwf5Xg4I%2FiH%2B1BUdFQ5e%2BQgUCGoHB%2FleDggEsB0V%2FtQVCA5e%2BQcHaggUCPleDhX7UB0VASwVCA5e%2BQcHaggUCPleDhUAAAACAEkASQRnBGcAFQArAAABFxYUDwEXFgYjISImNRE0Nh8BNzYyASEyFhURFAYvAQcGIi8BJjQ%2FAScmNgP2agcH%2BV4OCBX%2B1BUdFQ5e%2BQgU%2FQwBLBUdFQ5e%2BQgUCGoHB%2FleDggEYGoIFAj5Xg4VHRUBLBUIDl75B%2F3xHRX%2B1BUIDl75BwdqCBQI%2BV4OFQAAAAADABcAFwSZBJkADwAfAC8AAAAyHgIUDgIiLgI0PgEFIyIGFxMeATsBMjY3EzYmAyMiBh0BFBY7ATI2PQE0JgHj6tabW1ub1urWm1tbmwGz0BQYBDoEIxQ2FCMEOgQYMZYKDw8KlgoPDwSZW5vW6tabW1ub1urWm7odFP7SFB0dFAEuFB3%2BDA8KlgoPDwqWCg8AAAAABQAAAAAEsASwAEkAVQBhAGgAbwAAATIWHwEWHwEWFxY3Nj8BNjc2MzIWHwEWHwIeATsBMhYdARQGKwEiBh0BIREjESE1NCYrASImPQE0NjsBMjY1ND8BNjc%2BBAUHBhY7ATI2LwEuAQUnJgYPAQYWOwEyNhMhIiY1ESkBERQGIyERAQQJFAUFFhbEFQ8dCAsmxBYXERUXMA0NDgQZCAEPCj0KDw8KMgoP%2FnDI%2FnAPCjIKDw8KPQsOCRkFDgIGFRYfAp2mBwQK2woKAzMDEP41sQgQAzMDCgrnCwMe%2FokKDwGQAlgPCv6JBLAEAgIKDXYNCxUJDRZ2DQoHIREQFRh7LAkLDwoyCg8PCq8BLP7UrwoPDwoyCg8GBQQwgBkUAwgWEQ55ogcKDgqVCgSqnQcECo8KDgr8cg8KAXf%2BiQoPAZAAAAAAAgAAAAwErwSmACsASQAAATYWFQYCDgQuAScmByYOAQ8BBiY1NDc%2BATc%2BAScuAT4BNz4GFyYGBw4BDwEOBAcOARY2Nz4CNz4DNz4BBI0IGgItQmxhi2KORDg9EQQRMxuZGhYqCFUYEyADCQIQOjEnUmFch3vAJQgdHyaiPT44XHRZUhcYDhItIRmKcVtGYWtbKRYEBKYDEwiy%2Ft3IlVgxEQgLCwwBAQIbG5kYEyJAJghKFRE8Hzdff4U%2FM0o1JSMbL0QJGCYvcSEhHjZST2c1ODwEJygeW0AxJUBff1UyFAABAF0AHgRyBM8ATwAAAQ4BHgQXLgc%2BATceAwYHDgQHBicmNzY3PgQuAScWDgMmJy4BJyY%2BBDcGHgM3PgEuAicmPgMCjScfCic4R0IgBBsKGAoQAwEJEg5gikggBhANPkpTPhZINx8SBgsNJysiCRZOQQoVNU1bYC9QZwICBAUWITsoCAYdJzIYHw8YIiYHDyJJYlkEz0OAZVxEOSQMBzgXOB42IzElKRIqg5Gnl0o3Z0c6IAYWCwYNAwQFIDhHXGF1OWiqb0sdBxUknF0XNTQ8PEUiNWNROBYJDS5AQVUhVZloUSkAAAAAA%2F%2FcAGoE1ARGABsAPwBRAAAAMh4FFA4FIi4FND4EBSYGFxYVFAYiJjU0NzYmBwYHDgEXHgQyPgM3NiYnJgUHDgEXFhcWNj8BNiYnJicuAQIGpJ17bk85HBw6T257naKde25POhwcOU9uewIPDwYIGbD4sBcIBw5GWg0ECxYyWl%2BDiINfWjIWCwQMWv3%2FIw8JCSU4EC0OIw4DDywtCyIERi1JXGJcSSpJXGJcSS0tSVxiXEkqSVxiXEncDwYTOT58sLB8OzcTBg9FcxAxEiRGXkQxMEVeRSQSMRF1HiQPLxJEMA0EDyIPJQ8sSRIEAAAABP%2FcAAAE1ASwABQAJwA7AEwAACEjNy4ENTQ%2BBTMyFzczEzceARUUDgMHNz4BNzYmJyYlBgcOARceBBc3LgE1NDc2JhcHDgEXFhcWNj8CJyYnLgECUJQfW6l2WSwcOU9ue51SPUEglCYvbIknUGqYUi5NdiYLBAw2%2FVFGWg0ECxIqSExoNSlrjxcIB3wjDwkJJTgQLQ4MFgMsLQsieBRhdHpiGxVJXGJcSS0Pef5StVXWNBpacm5jGq0xiD8SMRFGckVzEDESHjxRQTkNmhKnbjs3EwZwJA8vEkQwDQQPC1YELEkSBAAAAAP%2FngAABRIEqwALABgAKAAAJwE2FhcBFgYjISImJSE1NDY7ATIWHQEhAQczMhYPAQ4BKwEiJi8BJjZaAoIUOBQCghUbJfryJRsBCgFZDwqWCg8BWf5DaNAUGAQ6BCMUNhQjBDoEGGQEKh8FIfvgIEdEhEsKDw8KSwLT3x0U%2FBQdHRT8FB0AAAABAGQAFQSwBLAAKAAAADIWFREBHgEdARQGJyURFh0BFAYvAQcGJj0BNDcRBQYmPQE0NjcBETQCTHxYAWsPFhgR%2FplkGhPNzRMaZP6ZERgWDwFrBLBYPv6t%2FrsOMRQpFA0M%2Bf75XRRAFRAJgIAJEBVAFF0BB%2FkMDRQpFDEOAUUBUz4AAAARAAAAAARMBLAAHQAnACsALwAzADcAOwA%2FAEMARwBLAE8AUwBXAFsAXwBjAAABMzIWHQEzMhYdASE1NDY7ATU0NjsBMhYdASE1NDYBERQGIyEiJjURFxUzNTMVMzUzFTM1MxUzNTMVMzUFFTM1MxUzNTMVMzUzFTM1MxUzNQUVMzUzFTM1MxUzNTMVMzUzFTM1A1JkFR0yFR37tB0VMh0VZBUdAfQdAQ8dFfwYFR1kZGRkZGRkZGRk%2FHxkZGRkZGRkZGT8fGRkZGRkZGRkZASwHRUyHRWWlhUdMhUdHRUyMhUd%2FnD9EhUdHRUC7shkZGRkZGRkZGRkyGRkZGRkZGRkZGTIZGRkZGRkZGRkZAAAAAMAAAAZBXcElwAZACUANwAAARcWFA8BBiY9ASMBISImPQE0NjsBATM1NDYBBycjIiY9ATQ2MyEBFxYUDwEGJj0BIyc3FzM1NDYEb%2FkPD%2FkOFZ%2F9qP7dFR0dFdECWPEV%2FamNetEVHR0VASMDGvkPD%2FkOFfG1jXqfFQSN5g4qDuYOCBWW%2FagdFWQVHQJYlhUI%2FpiNeh0VZBUd%2Fk3mDioO5g4IFZa1jXqWFQgAAAABAAAAAASwBEwAEgAAEyEyFhURFAYjIQERIyImNRE0NmQD6Ck7Oyn9rP7QZCk7OwRMOyn9qCk7%2FtQBLDspAlgpOwAAAAMAZAAABEwEsAAJABMAPwAAEzMyFh0BITU0NiEzMhYdASE1NDYBERQOBSIuBTURIRUUFRwBHgYyPgYmNTQ9AZbIFR3%2B1B0C0cgVHf7UHQEPBhgoTGacwJxmTCgYBgEsAwcNFB8nNkI2Jx8TDwUFAQSwHRX6%2BhUdHRX6%2BhUd%2FnD%2B1ClJalZcPigoPlxWakkpASz6CRIVKyclIRsWEAgJEBccISUnKhURCPoAAAAB%2F%2F8A1ARMA8IABQAAAQcJAScBBEzG%2Fp%2F%2Bn8UCJwGbxwFh%2Fp%2FHAicAAQAAAO4ETQPcAAUAAAkCNwkBBE392v3ZxgFhAWEDFf3ZAifH%2Fp8BYQAAAAAC%2F1EAZAVfA%2BgAFAApAAABITIWFREzMhYPAQYiLwEmNjsBESElFxYGKwERIRchIiY1ESMiJj8BNjIBlALqFR2WFQgO5g4qDuYOCBWW%2FoP%2BHOYOCBWWAYHX%2FRIVHZYVCA7mDioD6B0V%2FdkVDvkPD%2FkOFQGRuPkOFf5wyB0VAiYVDvkPAAABAAYAAASeBLAAMAAAEzMyFh8BITIWBwMOASMhFyEyFhQGKwEVFAYiJj0BIRUUBiImPQEjIiYvAQMjIiY0NjheERwEJgOAGB4FZAUsIf2HMAIXFR0dFTIdKh3%2B1B0qHR8SHQYFyTYUHh4EsBYQoiUY%2FiUVK8gdKh0yFR0dFTIyFR0dFTIUCQoDwR0qHQAAAAACAAAAAASwBEwACwAPAAABFSE1MzQ2MyEyFhUFIREhBLD7UMg7KQEsKTv9RASw%2B1AD6GRkKTs7Kcj84AACAAAAAAXcBEwADAAQAAATAxEzNDYzITIWFSEVBQEhAcjIyDspASwqOgH0ASz%2B1PtQASwDIP5wAlgpOzspyGT9RAK8AAEBRQAAA2sErwAbAAABFxYGKwERMzIWDwEGIi8BJjY7AREjIiY%2FATYyAnvmDggVlpYVCA7mDioO5g4IFZaWFQgO5g4qBKD5DhX9pxUO%2BQ8P%2BQ4VAlkVDvkPAAAAAQABAUQErwNrABsAAAEXFhQPAQYmPQEhFRQGLwEmND8BNhYdASE1NDYDqPkODvkPFf2oFQ%2F5Dg75DxUCWBUDYOUPKQ%2FlDwkUl5cUCQ%2FlDykP5Q8JFZWVFQkAAAAEAAAAAASwBLAACQAZAB0AIQAAAQMuASMhIgYHAwUhIgYdARQWMyEyNj0BNCYFNTMVMzUzFQSRrAUkFP1gFCQFrAQt%2FBgpOzspA%2BgpOzv%2Bq2RkZAGQAtwXLSgV%2FR1kOylkKTs7KWQpO8hkZGRkAAAAA%2F%2BcAGQEsARMAAsAIwAxAAAAMhYVERQGIiY1ETQDJSMTFgYjIisBIiYnAj0BNDU0PgE7ASUBFSIuAz0BND4CNwRpKh0dKh1k%2FV0mLwMRFQUCVBQdBDcCCwzIAqP8GAQOIhoWFR0dCwRMHRX8rhUdHRUDUhX8mcj%2B7BAIHBUBUQ76AgQQDw36%2FtT6AQsTKRwyGigUDAEAAAACAEoAAARmBLAALAA1AAABMzIWDwEeARcTFzMyFhQGBw4EIyIuBC8BLgE0NjsBNxM%2BATcnJjYDFjMyNw4BIiYCKV4UEgYSU3oPP3YRExwaEggeZGqfTzl0XFU%2BLwwLEhocExF2Pw96UxIGEyQyNDUxDDdGOASwFRMlE39N%2FrmtHSkoBwQLHBYSCg4REg4FBAgoKR2tAUdNfhQgExr7vgYGMT09AAEAFAAUBJwEnAAXAAABNwcXBxcHFycHJwcnBzcnNyc3Jxc3FzcDIOBO6rS06k7gLZubLeBO6rS06k7gLZubA7JO4C2bmy3gTuq0tOpO4C2bmy3gTuq0tAADAAAAZASwBLAAIQAtAD0AAAEzMhYdAQchMhYdARQHAw4BKwEiJi8BIyImNRE0PwI%2BARcPAREzFzMTNSE3NQEzMhYVERQGKwEiJjURNDYCijIoPBwBSCg8He4QLBf6B0YfHz0tNxSRYA0xG2SWZIjW%2Bv4%2BMv12ZBUdHRVkFR0dBLBRLJZ9USxkLR3%2BqBghMhkZJCcBkCQbxMYcKGTU1f6JZAF3feGv%2FtQdFf4MFR0dFQH0FR0AAAAAAwAAAAAEsARMACAAMAA8AAABMzIWFxMWHQEUBiMhFh0BFAYrASImLwImNRE0NjsBNgUzMhYVERQGKwEiJjURNDYhByMRHwEzNSchNQMCWPoXLBDuHTwo%2FrgcPCgyGzENYJEUNy09fP3pZBUdHRVkFR0dAl%2BIZJZkMjIBwvoETCEY%2FqgdLWQsUXYHlixRKBzGxBskAZAnJGRkHRX%2BDBUdHRUB9BUdZP6J1dSv4X0BdwADAAAAZAUOBE8AGwA3AEcAAAElNh8BHgEPASEyFhQGKwEDDgEjISImNRE0NjcXERchEz4BOwEyNiYjISoDLgQnJj8BJwUzMhYVERQGKwEiJjURNDYBZAFrHxZuDQEMVAEuVGxuVGqDBhsP%2FqoHphwOOmQBJYMGGw%2FLFRMSFv44AgoCCQMHAwUDAQwRklb9T2QVHR0VZBUdHQNp5hAWcA0mD3lMkE7%2BrRUoog0CDRElCkj%2BCVkBUxUoMjIBAgIDBQIZFrdT5B0V%2FgwVHR0VAfQVHQAAAAP%2FnABkBLAETwAdADYARgAAAQUeBBURFAYjISImJwMjIiY0NjMhJyY2PwE2BxcWBw4FKgIjIRUzMhYXEyE3ESUFMzIWFREUBisBIiY1ETQ2AdsBbgIIFBANrAf%2Bqg8bBoNqVW1sVAEuVQsBDW4WSpIRDAIDBQMHAwkDCgH%2BJd0PHAaCASZq%2FqoCUGQVHR0VZBUdHQRP5gEFEBEXC%2F3zDaIoFQFTTpBMeQ8mDXAWrrcWGQIFAwICAWQoFf6tWQH37OQdFf4MFR0dFQH0FR0AAAADAGEAAARMBQ4AGwA3AEcAAAAyFh0BBR4BFREUBiMhIiYvAQMmPwE%2BAR8BETQXNTQmBhURHAMOBAcGLwEHEyE3ESUuAQMhMhYdARQGIyEiJj0BNDYB3pBOAVMVKKIN%2FfMRJQoJ5hAWcA0mD3nGMjIBAgIDBQIZFrdT7AH3Wf6tFSiWAfQVHR0V%2FgwVHR0FDm5UaoMGGw%2F%2BqgemHA4OAWsfFm4NAQxUAS5U1ssVExIW%2FjgCCgIJAwcDBQMBDBGSVv6tZAElgwYb%2FQsdFWQVHR0VZBUdAAP%2F%2FQAGA%2BgFFAAPAC0ASQAAASEyNj0BNCYjISIGHQEUFgEVFAYiJjURBwYmLwEmNxM%2BBDMhMhYVERQGBwEDFzc2Fx4FHAIVERQWNj0BNDY3JREnAV4B9BUdHRX%2BDBUdHQEPTpBMeQ8mDXAWEOYBBRARFwsCDQ2iKBX9iexTtxYZAgUDAgIBMjIoFQFTWQRMHRVkFR0dFWQVHfzmalRubFQBLlQMAQ1uFh8BawIIEw8Mpgf%2Bqg8bBgHP%2Fq1WkhEMAQMFAwcDCQIKAv44FhITFcsPGwaDASVkAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBJSYGHQEhIgYdARQWMyEVFBY3JTY0AeLs1ptbW5vW7NabW1ubAob%2B7RAX%2Fu0KDw8KARMXEAETEASaW5vW7NabW1ub1uzWm%2F453w0KFYkPCpYKD4kVCg3fDSYAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgENAQYUFwUWNj0BITI2PQE0JiMhNTQmAeLs1ptbW5vW7NabW1ubASX%2B7RAQARMQFwETCg8PCv7tFwSaW5vW7NabW1ub1uzWm%2BjfDSYN3w0KFYkPCpYKD4kVCgAAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBAyYiBwMGFjsBERQWOwEyNjURMzI2AeLs1ptbW5vW7NabW1ubAkvfDSYN3w0KFYkPCpYKD4kVCgSaW5vW7NabW1ub1uzWm%2F5AARMQEP7tEBf%2B7QoPDwoBExcAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEFIyIGFREjIgYXExYyNxM2JisBETQmAeLs1ptbW5vW7NabW1ubAZeWCg%2BJFQoN3w0mDd8NChWJDwSaW5vW7NabW1ub1uzWm7sPCv7tFxD%2B7RAQARMQFwETCg8AAAMAGAAYBJgEmAAPAJYApgAAADIeAhQOAiIuAjQ%2BASUOAwcGJgcOAQcGFgcOAQcGFgcUFgcyHgEXHgIXHgI3Fg4BFx4CFxQGFBcWNz4CNy4BJy4BJyIOAgcGJyY2NS4BJzYuAQYHBicmNzY3HgIXHgMfAT4CJyY%2BATc%2BAzcmNzIWMjY3LgMnND4CJiceAT8BNi4CJwYHFB4BFS4CJz4BNxYyPgEB5OjVm1xcm9Xo1ZtcXJsBZA8rHDoKDz0PFD8DAxMBAzEFCRwGIgEMFhkHECIvCxU%2FOR0HFBkDDRQjEwcFaHUeISQDDTAMD0UREi4oLBAzDwQBBikEAQMLGhIXExMLBhAGKBsGBxYVEwYFAgsFAwMNFwQGCQcYFgYQCCARFwkKKiFBCwQCAQMDHzcLDAUdLDgNEiEQEgg%2FKhADGgMKEgoRBJhcm9Xo1ZtcXJvV6NWbEQwRBwkCAwYFBycPCxcHInIWInYcCUcYChQECA4QBAkuHgQPJioRFRscBAcSCgwCch0kPiAIAQcHEAsBAgsLIxcBMQENCQIPHxkCFBkdHB4QBgEBBwoMGBENBAMMJSAQEhYXDQ4qFBkKEhIDCQsXJxQiBgEOCQwHAQ0DBAUcJAwSCwRnETIoAwEJCwsLJQcKDBEAAAAAAQAAAAIErwSFABYAAAE2FwUXNxYGBw4BJwEGIi8BJjQ3ASY2AvSkjv79kfsGUE08hjv9rA8rD28PDwJYIk8EhVxliuh%2BWYcrIgsW%2FawQEG4PKxACV2XJAAYAAABgBLAErAAPABMAIwAnADcAOwAAEyEyFh0BFAYjISImPQE0NgUjFTMFITIWHQEUBiMhIiY9ATQ2BSEVIQUhMhYdARQGIyEiJj0BNDYFIRUhZAPoKTs7KfwYKTs7BBHIyPwYA%2BgpOzsp%2FBgpOzsEEf4MAfT8GAPoKTs7KfwYKTs7BBH%2B1AEsBKw7KWQpOzspZCk7ZGTIOylkKTs7KWQpO2RkyDspZCk7OylkKTtkZAAAAAIAZAAABEwEsAALABEAABMhMhYUBiMhIiY0NgERBxEBIZYDhBUdHRX8fBUdHQI7yP6iA4QEsB0qHR0qHf1E%2FtTIAfQB9AAAAAMAAABkBLAEsAAXABsAJQAAATMyFh0BITIWFREhNSMVIRE0NjMhNTQ2FxUzNQEVFAYjISImPQEB9MgpOwEsKTv%2BDMj%2BDDspASw7KcgB9Dsp%2FBgpOwSwOylkOyn%2BcGRkAZApO2QpO2RkZP1EyCk7OynIAAAABAAAAAAEsASwABUAKwBBAFcAABMhMhYPARcWFA8BBiIvAQcGJjURNDYpATIWFREUBi8BBwYiLwEmND8BJyY2ARcWFA8BFxYGIyEiJjURNDYfATc2MgU3NhYVERQGIyEiJj8BJyY0PwE2MhcyASwVCA5exwcHaggUCMdeDhUdAzUBLBUdFQ5exwgUCGoHB8deDgj%2BL2oHB8deDggV%2FtQVHRUOXscIFALLXg4VHRX%2B1BUIDl7HBwdqCBQIBLAVDl7HCBQIagcHx14OCBUBLBUdHRX%2B1BUIDl7HBwdqCBQIx14OFf0maggUCMdeDhUdFQEsFQgOXscHzl4OCBX%2B1BUdFQ5exwgUCGoHBwAAAAYAAAAABKgEqAAPABsAIwA7AEMASwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiQyFhQGIiY0JDIWFAYjIicHFhUUBiImNTQ2PwImNTQEMhYUBiImNCQyFhQGIiY0Advy3Z9fX5%2Fd8t2gXl6gAcbgv29vv%2BC%2Fb2%2F%2BLS0gIC0gAUwtICAWDg83ETNIMykfegEJ%2FoctICAtIAIdLSAgLSAEqF%2Bf3fLdoF5eoN3y3Z9Xb7%2Fgv29vv%2BC%2FBiAtISEtICAtIQqRFxwkMzMkIDEFfgEODhekIC0gIC0gIC0gIC0AAf%2FYAFoEuQS8AFsAACUBNjc2JicmIyIOAwcABw4EFx4BMzI3ATYnLgEjIgcGBwEOASY0NwA3PgEzMhceARcWBgcOBgcGIyImJyY2NwE2NzYzMhceARcWBgcBDgEnLgECIgHVWwgHdl8WGSJBMD8hIP6IDx4eLRMNBQlZN0ozAiQkEAcdEhoYDRr%2Bqw8pHA4BRyIjQS4ODyw9DQ4YIwwod26La1YOOEBGdiIwGkQB%2F0coW2tQSE5nDxE4Qv4eDyoQEAOtAdZbZWKbEQQUGjIhH%2F6JDxsdNSg3HT5CMwIkJCcQFBcMGv6uDwEcKQ4BTSIjIQEINykvYyMLKnhuiWZMBxtAOU6%2BRAH%2FSBg3ISSGV121Qv4kDwIPDyYAAAACAGQAWASvBEQAGQBEAAABPgIeAhUUDgMHLgQ1ND4CHgEFIg4DIi4DIyIGFRQeAhcWFx4EMj4DNzY3PgQ1NCYCiTB7eHVYNkN5hKg%2BPqeFeEM4WnZ4eQEjIT8yLSohJyktPyJDbxtBMjMPBw86KzEhDSIzKUAMBAgrKT8dF2oDtURIBS1TdkA5eYB%2FslVVsn%2BAeTlAdlMtBUgtJjY1JiY1NiZvTRc4SjQxDwcOPCouGBgwKEALBAkpKkQqMhNPbQACADn%2F8gR3BL4AFwAuAAAAMh8BFhUUBg8BJi8BNycBFwcvASY0NwEDNxYfARYUBwEGIi8BJjQ%2FARYfAQcXAQKru0KNQjgiHR8uEl%2F3%2FnvUaRONQkIBGxJpCgmNQkL%2B5UK6Qo1CQjcdLhJf9wGFBL5CjUJeKmsiHTUuEl%2F4%2FnvUahKNQrpCARv%2BRmkICY1CukL%2B5UJCjUK7Qjc3LxFf%2BAGFAAAAAAMAyAAAA%2BgEsAARABUAHQAAADIeAhURFAYjISImNRE0PgEHESERACIGFBYyNjQCBqqaZDo7Kf2oKTs8Zj4CWP7%2FVj09Vj0EsB4uMhX8Ryk7OykDuRUzLar9RAK8%2FRY9Vj09VgABAAAAAASwBLAAFgAACQEWFAYiLwEBEScBBRMBJyEBJyY0NjIDhgEbDx0qDiT%2B6dT%2BzP7oywEz0gEsAQsjDx0qBKH%2B5g8qHQ8j%2FvX%2B1NL%2BzcsBGAE01AEXJA4qHQAAAAADAScAEQQJBOAAMgBAAEsAAAEVHgQXIy4DJxEXHgQVFAYHFSM1JicuASczHgEXEScuBDU0PgI3NRkBDgMVFB4DFxYXET4ENC4CArwmRVI8LAKfBA0dMydAIjxQNyiym2SWVygZA4sFV0obLkJOMCAyVWg6HSoqFQ4TJhkZCWgWKTEiGBkzNwTgTgUTLD9pQiQuLBsH%2Fs0NBxMtPGQ%2Bi6oMTU8QVyhrVk1iEAFPCA4ZLzlYNkZwSCoGTf4SARIEDh02Jh0rGRQIBgPQ%2FsoCCRYgNEM0JRkAAAABAGQAZgOUBK0ASgAAATIeARUjNC4CIyIGBwYVFB4BFxYXMxUjFgYHBgc%2BATM2FjMyNxcOAyMiLgEHDgEPASc%2BBTc%2BAScjNTMmJy4CPgE3NgIxVJlemSc8OxolVBQpGxoYBgPxxQgVFS02ImIWIIwiUzUyHzY4HCAXanQmJ1YYFzcEGAcTDBEJMAwk3aYXFQcKAg4tJGEErVCLTig%2FIhIdFSw5GkowKgkFZDKCHj4yCg8BIh6TExcIASIfBAMaDAuRAxAFDQsRCjePR2QvORQrREFMIVgAAAACABn%2F%2FwSXBLAADwAfAAABMzIWDwEGIi8BJjY7AREzBRcWBisBESMRIyImPwE2MgGQlhUIDuYOKg7mDggVlsgCF%2BYOCBWWyJYVCA7mDioBLBYO%2Bg8P%2Bg4WA4QQ%2BQ4V%2FHwDhBUO%2BQ8AAAQAGf%2F%2FA%2BgEsAAHABcAGwAlAAABIzUjFSMRIQEzMhYPAQYiLwEmNjsBETMFFTM1EwczFSE1NyM1IQPoZGRkASz9qJYVCA7mDioO5g4IFZbIAZFkY8jI%2FtTIyAEsArxkZAH0%2FHwWDvoPD%2FoOFgOEZMjI%2FRL6ZJb6ZAAAAAAEABn%2F%2FwPoBLAADwAZACEAJQAAATMyFg8BBiIvASY2OwERMwUHMxUhNTcjNSERIzUjFSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAljIyP7UyMgBLGRkZAEsx2QBLBYO%2Bg8P%2Bg4WA4SW%2BmSW%2BmT7UGRkAfRkyMgAAAAEABn%2F%2FwRMBLAADwAVABsAHwAAATMyFg8BBiIvASY2OwERMwEjESM1MxMjNSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAlhkZMhkZMgBLMdkASwWDvoPD%2FoOFgOE%2FgwBkGT7UGQBkGTIyAAAAAAEABn%2F%2FwRMBLAADwAVABkAHwAAATMyFg8BBiIvASY2OwERMwEjNSMRIQcVMzUDIxEjNTMBkJYVCA7mDioO5g4IFZbIArxkyAEsx2QBZGTIASwWDvoPD%2FoOFgOE%2FgxkAZBkyMj7tAGQZAAAAAAFABn%2F%2FwSwBLAADwATABcAGwAfAAABMzIWDwEGIi8BJjY7AREzBSM1MxMhNSETITUhEyE1IQGQlhUIDuYOKg7mDggVlsgB9MjIZP7UASxk%2FnABkGT%2BDAH0ASwWDvoPD%2FoOFgOEyMj%2BDMj%2BDMj%2BDMgABQAZ%2F%2F8EsASwAA8AEwAXABsAHwAAATMyFg8BBiIvASY2OwERMwUhNSEDITUhAyE1IQMjNTMBkJYVCA7mDioO5g4IFZbIAyD%2BDAH0ZP5wAZBk%2FtQBLGTIyAEsFg76Dw%2F6DhYDhMjI%2FgzI%2FgzI%2FgzIAAIAAAAABEwETAAPAB8AAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmAV4BkKK8u6P%2BcKW5uQJn%2FgwpOzspAfQpOzsETLuj%2FnClubmlAZClucg7Kf4MKTs7KQH0KTsAAAAAAwAAAAAETARMAA8AHwArAAABITIWFREUBiMhIiY1ETQ2BSEiBhURFBYzITI2NRE0JgUXFhQPAQYmNRE0NgFeAZClubml%2FnCju7wCZP4MKTs7KQH0KTs7%2Fm%2F9ERH9EBgYBEy5pf5wpbm5pQGQo7vIOyn%2BDCk7OykB9Ck7gr4MJAy%2BDAsVAZAVCwAAAAADAAAAAARMBEwADwAfACsAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFg8BBiIvASY2AV4BkKO7uaX%2BcKW5uQJn%2FgwpOzspAfQpOzv%2BFQGQFQsMvgwkDL4MCwRMvKL%2BcKW5uaUBkKO7yDsp%2FgwpOzspAfQpO8gYEP0REf0QGAAAAAMAAAAABEwETAAPAB8AKwAAASEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFFxYGIyEiJj8BNjIBXgGQpbm5pf5wo7u5Amf%2BDCk7OykB9Ck7O%2F77vgwLFf5wFQsMvgwkBEy5pf5wo7u8ogGQpbnIOyn%2BDCk7OykB9Ck7z%2F0QGBgQ%2FREAAAAAAgAAAAAFFARMAB8ANQAAASEyFhURFAYjISImPQE0NjMhMjY1ETQmIyEiJj0BNDYHARYUBwEGJj0BIyImPQE0NjsBNTQ2AiYBkKW5uaX%2BcBUdHRUBwik7Oyn%2BPhUdHb8BRBAQ%2FrwQFvoVHR0V%2BhYETLml%2FnCluR0VZBUdOykB9Ck7HRVkFR3p%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgAAAQDZAAID1wSeACMAAAEXFgcGAgclMhYHIggBBwYrAScmNz4BPwEhIicmNzYANjc2MwMZCQgDA5gCASwYEQ4B%2Fvf%2B8wQMDgkJCQUCUCcn%2FtIXCAoQSwENuwUJEASeCQoRC%2F5TBwEjEv7K%2FsUFDwgLFQnlbm4TFRRWAS%2FTBhAAAAACAAAAAAT%2BBEwAHwA1AAABITIWHQEUBiMhIgYVERQWMyEyFh0BFAYjISImNRE0NgUBFhQHAQYmPQEjIiY9ATQ2OwE1NDYBXgGQFR0dFf4%2BKTs7KQHCFR0dFf5wpbm5AvEBRBAQ%2FrwQFvoVHR0V%2BhYETB0VZBUdOyn%2BDCk7HRVkFR25pQGQpbnp%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgACAAAAAASwBLAAFQAxAAABITIWFREUBi8BAQYiLwEmNDcBJyY2ASMiBhURFBYzITI2PQE3ERQGIyEiJjURNDYzIQLuAZAVHRUObf7IDykPjQ8PAThtDgj%2B75wpOzspAfQpO8i7o%2F5wpbm5pQEsBLAdFf5wFQgObf7IDw%2BNDykPAThtDhX%2B1Dsp%2FgwpOzsplMj%2B1qW5uaUBkKW5AAADAA4ADgSiBKIADwAbACMAAAAyHgIUDgIiLgI0PgEEIg4BFB4BMj4BNCYEMhYUBiImNAHh7tmdXV2d2e7ZnV1dnQHD5sJxccLmwnFx%2FnugcnKgcgSiXZ3Z7tmdXV2d2e7ZnUdxwubCcXHC5sJzcqBycqAAAAMAAAAABEwEsAAVAB8AIwAAATMyFhURMzIWBwEGIicBJjY7ARE0NgEhMhYdASE1NDYFFTM1AcLIFR31FAoO%2FoEOJw3%2BhQ0JFfod%2FoUD6BUd%2B7QdA2dkBLAdFf6iFg%2F%2BVg8PAaoPFgFeFR38fB0V%2BvoVHWQyMgAAAAMAAAAABEwErAAVAB8AIwAACQEWBisBFRQGKwEiJj0BIyImNwE%2BAQEhMhYdASE1NDYFFTM1AkcBeg4KFfQiFsgUGPoUCw4Bfw4n%2FfkD6BUd%2B7QdA2dkBJ7%2BTQ8g%2BhQeHRX6IQ8BrxAC%2FH8dFfr6FR1kMjIAAwAAAAAETARLABQAHgAiAAAJATYyHwEWFAcBBiInASY0PwE2MhcDITIWHQEhNTQ2BRUzNQGMAXEHFQeLBwf98wcVB%2F7cBweLCBUH1APoFR37tB0DZ2QC0wFxBweLCBUH%2FfMICAEjCBQIiwcH%2FdIdFfr6FR1kMjIABAAAAAAETASbAAkAGQAjACcAABM3NjIfAQcnJjQFNzYWFQMOASMFIiY%2FASc3ASEyFh0BITU0NgUVMzWHjg4qDk3UTQ4CFtIOFQIBHRX9qxUIDtCa1P49A%2BgVHfu0HQNnZAP%2Fjg4OTdRMDyqa0g4IFf2pFB4BFQ7Qm9T9Oh0V%2BvoVHWQyMgAAAAQAAAAABEwEsAAPABkAIwAnAAABBR4BFRMUBi8BByc3JyY2EwcGIi8BJjQ%2FAQEhMhYdASE1NDYFFTM1AV4CVxQeARUO0JvUm9IOCMNMDyoOjg4OTf76A%2BgVHfu0HQNnZASwAgEdFf2rFQgO0JrUmtIOFf1QTQ4Ojg4qDk3%2BWB0V%2BvoVHWQyMgACAAT%2F7ASwBK8ABQAIAAAlCQERIQkBFQEEsP4d%2Fsb%2BcQSs%2FTMCq2cBFP5xAacDHPz55gO5AAAAAAIAAABkBEwEsAAVABkAAAERFAYrAREhESMiJjURNDY7AREhETMHIzUzBEwdFZb9RJYVHR0V%2BgH0ZMhkZAPo%2FK4VHQGQ%2FnAdFQPoFB7%2B1AEsyMgAAAMAAABFBN0EsAAWABoALwAAAQcBJyYiDwEhESMiJjURNDY7AREhETMHIzUzARcWFAcBBiIvASY0PwE2Mh8BATYyBEwC%2FtVfCRkJlf7IlhUdHRX6AfRkyGRkAbBqBwf%2BXAgUCMoICGoHFQdPASkHFQPolf7VXwkJk%2F5wHRUD6BQe%2FtQBLMjI%2Fc5qBxUH%2FlsHB8sHFQdqCAhPASkHAAMAAAANBQcEsAAWABoAPgAAAREHJy4BBwEhESMiJjURNDY7AREhETMHIzUzARcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyBExnhg8lEP72%2FreWFR0dFfoB9GTIZGQB9kYPD4ODDw9GDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykD6P7zZ4YPAw7%2B9v5wHRUD6BQe%2FtQBLMjI%2FYxGDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykPRg8Pg4MPAAADAAAAFQSXBLAAFQAZAC8AAAERISIGHQEhESMiJjURNDY7AREhETMHIzUzEzMyFh0BMzIWDwEGIi8BJjY7ATU0NgRM%2FqIVHf4MlhUdHRX6AfRkyGRklmQVHZYVCA7mDioO5g4IFZYdA%2Bj%2B1B0Vlv5wHRUD6BQe%2FtQBLMjI%2FagdFfoVDuYODuYOFfoVHQAAAAADAAAAAASXBLAAFQAZAC8AAAERJyYiBwEhESMiJjURNDY7AREhETMHIzUzExcWBisBFRQGKwEiJj0BIyImPwE2MgRMpQ4qDv75%2Fm6WFR0dFfoB9GTIZGTr5g4IFZYdFWQVHZYVCA7mDioD6P5wpQ8P%2Fvf%2BcB0VA%2BgUHv7UASzIyP2F5Q8V%2BhQeHhT6FQ%2FlDwADAAAAyASwBEwACQATABcAABMhMhYdASE1NDYBERQGIyEiJjURExUhNTIETBUd%2B1AdBJMdFfu0FR1kAZAETB0VlpYVHf7U%2FdoVHR0VAib%2B1MjIAAAGAAMAfQStBJcADwAZAB0ALQAxADsAAAEXFhQPAQYmPQEhNSE1NDYBIyImPQE0NjsBFyM1MwE3NhYdASEVIRUUBi8BJjQFIzU7AjIWHQEUBisBA6f4Dg74DhX%2BcAGQFf0vMhUdHRUyyGRk%2FoL3DhUBkP5wFQ73DwOBZGRkMxQdHRQzBI3mDioO5g4IFZbIlhUI%2FoUdFWQVHcjI%2FcvmDggVlsiWFQgO5g4qecgdFWQVHQAAAAACAGQAAASwBLAAFgBRAAABJTYWFREUBisBIiY1ES4ENRE0NiUyFh8BERQOAg8BERQGKwEiJjURLgQ1ETQ%2BAzMyFh8BETMRPAE%2BAjMyFh8BETMRND4DA14BFBklHRXIFR0EDiIaFiX%2B4RYZAgEVHR0LCh0VyBUdBA4iGhYBBwoTDRQZAgNkBQkVDxcZAQFkAQUJFQQxdBIUH%2FuuFR0dFQGNAQgbHzUeAWcfRJEZDA3%2BPhw%2FMSkLC%2F5BFR0dFQG%2FBA8uLkAcAcICBxENCxkMDf6iAV4CBxENCxkMDf6iAV4CBxENCwABAGQAAASwBEwAMwAAARUiDgMVERQWHwEVITUyNjURIREUFjMVITUyPgM1ETQmLwE1IRUiBhURIRE0JiM1BLAEDiIaFjIZGf5wSxn%2BDBlL%2FnAEDiIaFjIZGQGQSxkB9BlLBEw4AQUKFA78iBYZAQI4OA0lAYr%2BdiUNODgBBQoUDgN4FhkBAjg4DSX%2BdgGKJQ04AAAABgAAAAAETARMAAwAHAAgACQAKAA0AAABITIWHQEjBTUnITchBSEyFhURFAYjISImNRE0NhcVITUBBTUlBRUhNQUVFAYjIQchJyE3MwKjAXcVHWn%2B2cj%2BcGQBd%2F4lASwpOzsp%2FtQpOzspASwCvP5wAZD8GAEsArwdFf6JZP6JZAGQyGkD6B0VlmJiyGTIOyn%2BDCk7OykB9Ck7ZMjI%2FveFo4XGyMhm%2BBUdZGTIAAEAEAAQBJ8EnwAmAAATNzYWHwEWBg8BHgEXNz4BHwEeAQ8BBiIuBicuBTcRohEuDosOBhF3ZvyNdxEzE8ATBxGjAw0uMUxPZWZ4O0p3RjITCwED76IRBhPCFDERdo78ZXYRBA6IDi8RogEECBUgNUNjO0qZfHNVQBAAAAACAAAAAASwBEwAIwBBAAAAMh4EHwEVFAYvAS4BPQEmIAcVFAYPAQYmPQE%2BBRIyHgIfARUBHgEdARQGIyEiJj0BNDY3ATU0PgIB%2FLimdWQ%2FLAkJHRTKFB2N%2FsKNHRTKFB0DDTE7ZnTKcFImFgEBAW0OFR0V%2B7QVHRUOAW0CFiYETBUhKCgiCgrIFRgDIgMiFZIYGJIVIgMiAxgVyAQNJyQrIP7kExwcCgoy%2FtEPMhTUFR0dFdQUMg8BLzIEDSEZAAADAAAAAASwBLAADQAdACcAAAEHIScRMxUzNTMVMzUzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYETMj9qMjIyMjIyPyuArwVHR0VDIn8SokMFR0dswRMFR37UB0CvMjIAfTIyMjI%2FOAdKh1kZB0qHf7UHRUyMhUdAAAAAwBkAAAEsARMAAkAEwAdAAABIyIGFREhETQmASMiBhURIRE0JgEhETQ2OwEyFhUCvGQpOwEsOwFnZCk7ASw7%2FRv%2B1DspZCk7BEw7KfwYA%2BgpO%2F7UOyn9RAK8KTv84AGQKTs7KQAAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQURByMRMwcRMxHIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkyMhkZARMsHz%2BDHywsHwB9HywyP1EArzIZP7UZGQBLGT%2B1GQB9GT%2B1AEsAAAABf%2BcAAAEsARMAA8AEwAfACUAKQAAEyEyFhURFAYjISImNRE0NhcRIREBIzUjFSMRMxUzNTMFEQcjETMHETMRyAK8fLCwfP1EfLCwGAOE%2FgxkZGRkZGQBkGTIyGRkBEywfP4MfLCwfAH0fLDI%2FUQCvP2oyMgB9MjIZP7UZAH0ZP7UASwABP%2BcAAAEsARMAA8AEwAbACMAABMhMhYVERQGIyEiJjURNDYXESERBSMRMxUhESEFIxEzFSERIcgCvHywsHz9RHywsBgDhP4MyMj%2B1AEsAZDIyP7UASwETLB8%2Fgx8sLB8AfR8sMj9RAK8yP7UZAH0ZP7UZAH0AAAABP%2BcAAAEsARMAA8AEwAWABkAABMhMhYVERQGIyEiJjURNDYXESERAS0BDQERyAK8fLCwfP1EfLCwGAOE%2Fgz%2B1AEsAZD%2B1ARMsHz%2BDHywsHwB9HywyP1EArz%2BDJaWlpYBLAAAAAX%2FnAAABLAETAAPABMAFwAgACkAABMhMhYVERQGIyEiJjURNDYXESERAyERIQcjIgYVFBY7AQERMzI2NTQmI8gCvHywsHz9RHywsBgDhGT9RAK8ZIImOTYpgv4Mgik2OSYETLB8%2Fgx8sLB8AfR8sMj9RAK8%2FagB9GRWQUFUASz%2B1FRBQVYAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkZMjIZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yGT%2B1GRkASz%2BDAGQZP4MZAAG%2F5wAAASwBEwADwATABkAHwAjACcAABMhMhYVERQGIyEiJjURNDYXESERBTMRIREzASMRIzUzBRUzNQEjNTPIArx8sLB8%2FUR8sLAYA4T9RMj%2B1GQCWGRkyP2oZAEsZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yP5wAfT%2BDAGQZMjIyP7UZAAF%2F5wAAASwBEwADwATABwAIgAmAAATITIWFREUBiMhIiY1ETQ2FxEhEQEHIzU3NSM1IQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMdkx8gBLAGQZGTIx2RkBEywfP4MfLCwfAH0fLDI%2FUQCvP5wyDLIlmT%2BDAGQZP4MZAAAAAMACQAJBKcEpwAPABsAJQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgchFSEVISc1NyEB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWz%2B1AEs%2FtRkZAEsBKdentvw255eXp7b8NueTHHC5MJxccLkwtDIZGTIZAAAAAAEAAkACQSnBKcADwAbACcAKwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcVBxcVIycjFSMRIQcVMzUB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWwyZGRklmQBLMjIBKdentvw255eXp7b8NueTHHC5MJxccLkwtBkMmQyZGQBkGRkZAAAAv%2Fy%2F50EwgRBACAANgAAATIWFzYzMhYUBisBNTQmIyEiBh0BIyImNTQ2NyY1ND4BEzMyFhURMzIWDwEGIi8BJjY7ARE0NgH3brUsLC54qqp4gB0V%2FtQVHd5QcFZBAmKqepYKD4kVCg3fDSYN3w0KFYkPBEF3YQ6t8a36FR0dFfpzT0VrDhMSZKpi%2FbMPCv7tFxD0EBD0EBcBEwoPAAAAAAL%2F8v%2BcBMMEQQAcADMAAAEyFhc2MzIWFxQGBwEmIgcBIyImNTQ2NyY1ND4BExcWBisBERQGKwEiJjURIyImNzY3NjIB9m62LCsueaoBeFr%2Bhg0lDf6DCU9xVkECYqnm3w0KFYkPCpYKD4kVCg3HGBMZBEF3YQ%2BteGOkHAFoEBD%2Bk3NPRWsOExNkqWP9kuQQF%2F7tCg8PCgETFxDMGBMAAAABAGQAAARMBG0AGAAAJTUhATMBMwkBMwEzASEVIyIGHQEhNTQmIwK8AZD%2B8qr%2B8qr%2B1P7Uqv7yqv7yAZAyFR0BkB0VZGQBLAEsAU3%2Bs%2F7U%2FtRkHRUyMhUdAAAAAAEAeQAABDcEmwAvAAABMhYXHgEVFAYHFhUUBiMiJxUyFh0BITU0NjM1BiMiJjU0Ny4BNTQ2MzIXNCY1NDYCWF6TGll7OzIJaUo3LRUd%2FtQdFS03SmkELzlpSgUSAqMEm3FZBoNaPWcfHRpKaR77HRUyMhUd%2Bx5pShIUFVg1SmkCAhAFdKMAAAAGACcAFASJBJwAEQAqAEIASgBiAHsAAAEWEgIHDgEiJicmAhI3PgEyFgUiBw4BBwYWHwEWMzI3Njc2Nz4BLwEmJyYXIgcOAQcGFh8BFjMyNz4BNz4BLwEmJyYWJiIGFBYyNjciBw4BBw4BHwEWFxYzMjc%2BATc2Ji8BJhciBwYHBgcOAR8BFhcWMzI3PgE3NiYvASYD8m9PT29T2dzZU29PT29T2dzZ%2Fj0EBHmxIgQNDCQDBBcGG0dGYAsNAwkDCwccBAVQdRgEDA0iBAQWBhJROQwMAwkDCwf5Y4xjY4xjVhYGElE6CwwDCQMLBwgEBVB1GAQNDCIEjRcGG0dGYAsNAwkDCwcIBAR5sSIEDQwkAwPyb%2F7V%2FtVvU1dXU28BKwErb1NXVxwBIrF5DBYDCQEWYEZHGwMVDCMNBgSRAhh1UA0WAwkBFTpREgMVCyMMBwT6Y2OMY2MVFTpREQQVCyMMBwQCGHVQDRYDCQEkFmBGRxsDFQwjDQYEASKxeQwWAwkBAAAABQBkAAAD6ASwAAwADwAWABwAIgAAASERIzUhFSERNDYzIQEjNQMzByczNTMDISImNREFFRQGKwECvAEstP6s%2FoQPCgI%2FASzIZKLU1KJktP51Cg8DhA8KwwMg%2FoTIyALzCg%2F%2B1Mj84NTUyP4MDwoBi8jDCg8AAAAABQBkAAAD6ASwAAkADAATABoAIQAAASERCQERNDYzIQEjNRMjFSM1IzcDISImPQEpARUUBisBNQK8ASz%2Bov3aDwoCPwEsyD6iZKLUqv6dCg8BfAIIDwqbAyD9%2BAFe%2FdoERwoP%2FtTI%2FHzIyNT%2BZA8KNzcKD1AAAAAAAwAAAAAEsAP0AAgAGQAfAAABIxUzFyERIzcFMzIeAhUhFSEDETM0PgIBMwMhASEEiqJkZP7UotT9EsgbGiEOASz9qMhkDiEaAnPw8PzgASwB9AMgyGQBLNTUBBErJGT%2BogHCJCsRBP5w%2FnAB9AAAAAMAAAAABEwETAAZADIAOQAAATMyFh0BMzIWHQEUBiMhIiY9ATQ2OwE1NDYFNTIWFREUBiMhIic3ARE0NjMVFBYzITI2AQc1IzUzNQKKZBUdMhUdHRX%2B1BUdHRUyHQFzKTs7Kf2oARP2%2Fro7KVg%2BASw%2BWP201MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7KfzgKTsE9gFGAUQpO5Y%2BWFj95tSiZKIAAwBkAAAEvARMABkANgA9AAABMzIWHQEzMhYdARQGIyEiJj0BNDY7ATU0NgU1MhYVESMRMxQOAiMhIiY1ETQ2MxUUFjMhMjYBBzUjNTM1AcJkFR0yFR0dFf7UFR0dFTIdAXMpO8jIDiEaG%2F2oKTs7KVg%2BASw%2BWAGc1MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7Kf4M%2FtQkKxEEOykDICk7lj5YWP3m1KJkogAAAAP%2FogAABRYE1AALABsAHwAACQEWBiMhIiY3ATYyEyMiBhcTHgE7ATI2NxM2JgMVMzUCkgJ9FyAs%2BwQsIBcCfRZARNAUGAQ6BCMUNhQjBDoEGODIBK37sCY3NyYEUCf%2BTB0U%2FtIUHR0UAS4UHf4MZGQAAAAACQAAAAAETARMAA8AHwAvAD8ATwBfAG8AfwCPAAABMzIWHQEUBisBIiY9ATQ2EzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBqfoKDw8K%2BgoPDwr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPDwRMDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg%2F%2B1A8KlgoPDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKDw8KlgoPAAAAAwAAAAAEsAUUABkAKQAzAAABMxUjFSEyFg8BBgchJi8BJjYzITUjNTM1MwEhMhYUBisBFyE3IyImNDYDITIWHQEhNTQ2ArxkZAFePjEcQiko%2FPwoKUIcMT4BXmRkyP4%2BArwVHR0VDIn8SooNFR0dswRMFR37UB0EsMhkTzeEUzMzU4Q3T2TIZPx8HSodZGQdKh3%2B1B0VMjIVHQAABAAAAAAEsAUUAAUAGQArADUAAAAyFhUjNAchFhUUByEyFg8BIScmNjMhJjU0AyEyFhQGKwEVBSElNSMiJjQ2AyEyFh0BITU0NgIwUDnCPAE6EgMBSCkHIq%2F9WrIiCikBSAOvArwVHR0VlgET%2FEoBE5YVHR2zBEwVHftQHQUUOykpjSUmCBEhFpGRFiERCCb%2BlR0qHcjIyMgdKh39qB0VMjIVHQAEAAAAAASwBJ0ABwAUACQALgAAADIWFAYiJjQTMzIWFRQXITY1NDYzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYCDZZqapZqty4iKyf%2BvCcrI%2F7NArwVHR0VDYr8SokMFR0dswRMFR37UB0EnWqWamqW%2Fus5Okxra0w6Of5yHSodZGQdKh3%2B1B0VMjIVHQAEAAAAAASwBRQADwAcACwANgAAATIeARUUBiImNTQ3FzcnNhMzMhYVFBchNjU0NjMBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYL1szb5xvIpBvoyIfLiIrJ%2F68Jysj%2Fs0CvBUdHRUNivxKiQwVHR2zBEwVHftQHQUUa4s2Tm9vTj5Rj2%2BjGv4KOTpMa2tMOjn%2Bch0qHWRkHSod%2FtQdFTIyFR0AAAADAAAAAASwBRIAEgAiACwAAAEFFSEUHgMXIS4BNTQ%2BAjcBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYASz%2B1CU%2FP00T%2Fe48PUJtj0r%2BogK8FR0dFQ2K%2FEqJDBUdHbMETBUd%2B1AdBLChizlmUT9IGVO9VFShdksE%2FH4dKh1kZB0qHf7UHRUyMhUdAAIAyAAAA%2BgFFAAPACkAAAAyFh0BHgEdASE1NDY3NTQDITIWFyMVMxUjFTMVIxUzFAYjISImNRE0NgIvUjsuNv5wNi5kAZA2XBqsyMjIyMh1U%2F5wU3V1BRQ7KU4aXDYyMjZcGk4p%2Fkc2LmRkZGRkU3V1UwGQU3UAAAMAZP%2F%2FBEwETAAPAC8AMwAAEyEyFhURFAYjISImNRE0NgMhMhYdARQGIyEXFhQGIi8BIQcGIiY0PwEhIiY9ATQ2BQchJ5YDhBUdHRX8fBUdHQQDtgoPDwr%2B5eANGiUNWP30Vw0mGg3g%2Ft8KDw8BqmQBRGQETB0V%2FgwVHR0VAfQVHf1EDwoyCg%2FgDSUbDVhYDRslDeAPCjIKD2RkZAAAAAAEAAAAAASwBEwAGQAjAC0ANwAAEyEyFh0BIzQmKwEiBhUjNCYrASIGFSM1NDYDITIWFREhETQ2ExUUBisBIiY9ASEVFAYrASImPQHIAyBTdWQ7KfopO2Q7KfopO2R1EQPoKTv7UDvxHRVkFR0D6B0VZBUdBEx1U8gpOzspKTs7KchTdf4MOyn%2B1AEsKTv%2BDDIVHR0VMjIVHR0VMgADAAEAAASpBKwADQARABsAAAkBFhQPASEBJjQ3ATYyCQMDITIWHQEhNTQ2AeACqh8fg%2F4f%2FfsgIAEnH1n%2BrAFWAS%2F%2Bq6IDIBUd%2FHwdBI39VR9ZH4MCBh9ZHwEoH%2F5u%2FqoBMAFV%2FBsdFTIyFR0AAAAAAgCPAAAEIQSwABcALwAAAQMuASMhIgYHAwYWMyEVFBYyNj0BMzI2AyE1NDY7ATU0NjsBETMRMzIWHQEzMhYVBCG9CCcV%2FnAVJwi9CBMVAnEdKh19FROo%2Fa0dFTIdFTDILxUdMhUdAocB%2BhMcHBP%2BBhMclhUdHRWWHP2MMhUdMhUdASz%2B1B0VMh0VAAAEAAAAAASwBLAADQAQAB8AIgAAASERFAYjIREBNTQ2MyEBIzUBIREUBiMhIiY1ETQ2MyEBIzUDhAEsDwr%2Bif7UDwoBdwEsyP2oASwPCv12Cg8PCgF3ASzIAyD9wQoPAk8BLFQKD%2F7UyP4M%2FcEKDw8KA7YKD%2F7UyAAC%2F5wAZAUUBEcARgBWAAABMzIeAhcWFxY2NzYnJjc%2BARYXFgcOASsBDgEPAQ4BKwEiJj8BBisBIicHDgErASImPwEmLwEuAT0BNDY7ATY3JyY2OwE2BSMiBh0BFBY7ATI2PQE0JgHkw0uOakkMEhEfQwoKGRMKBQ8XDCkCA1Y9Pgc4HCcDIhVkFRgDDDEqwxgpCwMiFWQVGAMaVCyfExwdFXwLLW8QBxXLdAFF%2BgoPDwr6Cg8PBEdBa4pJDgYKISAiJRsQCAYIDCw9P1c3fCbqFB0dFEYOCEAUHR0UnUplNQcmFTIVHVdPXw4TZV8PCjIKDw8KMgoPAAb%2FnP%2FmBRQEfgAJACQANAA8AFIAYgAAASU2Fh8BFgYPASUzMhYfASEyFh0BFAYHBQYmJyYjISImPQE0NhcjIgYdARQ7ATI2NTQmJyYEIgYUFjI2NAE3PgEeARceAT8BFxYGDwEGJi8BJjYlBwYfAR4BPwE2Jy4BJy4BAoEBpxMuDiAOAxCL%2FCtqQ0geZgM3FR0cE%2F0fFyIJKjr%2B1D5YWLlQExIqhhALIAsSAYBALS1ALf4PmBIgHhMQHC0aPzANITNQL3wpgigJASlmHyElDR0RPRMFAhQHCxADhPcICxAmDyoNeMgiNtQdFTIVJgeEBBQPQ1g%2ByD5YrBwVODMQEAtEERzJLUAtLUD%2B24ITChESEyMgAwWzPUkrRSgJL5cvfRxYGyYrDwkLNRAhFEgJDAQAAAAAAwBkAAAEOQSwAFEAYABvAAABMzIWHQEeARcWDgIPATIeBRUUDgUjFRQGKwEiJj0BIxUUBisBIiY9ASMiJj0BNDY7AREjIiY9ATQ2OwE1NDY7ATIWHQEzNTQ2AxUhMj4CNTc0LgMjARUhMj4CNTc0LgMjAnGWCg9PaAEBIC4uEBEGEjQwOiodFyI2LUAjGg8KlgoPZA8KlgoPrwoPDwpLSwoPDwqvDwqWCg9kD9cBBxwpEwsBAQsTKRz%2B%2BQFrHCkTCwEBCxMpHASwDwptIW1KLk0tHwYGAw8UKDJOLTtdPCoVCwJLCg8PCktLCg8PCksPCpYKDwJYDwqWCg9LCg8PCktLCg%2F%2B1MgVHR0LCgQOIhoW%2FnDIFR0dCwoEDiIaFgAAAwAEAAIEsASuABcAKQAsAAATITIWFREUBg8BDgEjISImJy4CNRE0NgQiDgQPARchNy4FAyMT1AMMVnokEhIdgVL9xFKCHAgYKHoCIIx9VkcrHQYGnAIwnAIIIClJVSGdwwSuelb%2BYDO3QkJXd3ZYHFrFMwGgVnqZFyYtLSUMDPPzBQ8sKDEj%2FsIBBQACAMgAAAOEBRQADwAZAAABMzIWFREUBiMhIiY1ETQ2ARUUBisBIiY9AQHblmesVCn%2BPilUrAFINhWWFTYFFKxn%2FgwpVFQpAfRnrPwY4RU2NhXhAAACAMgAAAOEBRQADwAZAAABMxQWMxEUBiMhIiY1ETQ2ARUUBisBIiY9AQHbYLOWVCn%2BPilUrAFINhWWFTYFFJaz%2FkIpVFQpAfRnrPwY4RU2NhXhAAACAAAAFAUOBBoAFAAaAAAJASUHFRcVJwc1NzU0Jj4CPwEnCQEFJTUFJQUO%2FYL%2Bhk5klpZkAQEBBQQvkwKCAVz%2Bov6iAV4BXgL%2F%2FuWqPOCWx5SVyJb6BA0GCgYDKEEBG%2F1ipqaTpaUAAAMAZAH0BLADIAAHAA8AFwAAEjIWFAYiJjQkMhYUBiImNCQyFhQGIiY0vHxYWHxYAeh8WFh8WAHofFhYfFgDIFh8WFh8WFh8WFh8WFh8WFh8AAAAAAMBkAAAArwETAAHAA8AFwAAADIWFAYiJjQSMhYUBiImNBIyFhQGIiY0Aeh8WFh8WFh8WFh8WFh8WFh8WARMWHxYWHz%2ByFh8WFh8%2FshYfFhYfAAAAAMAZABkBEwETAAPAB8ALwAAEyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2fQO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PBEwPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoPAAAABAAAAAAEsASwAA8AHwAvADMAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFhURFAYjISImNRE0NhcVITUBXgH0ory7o%2F4Mpbm5Asv9qCk7OykCWCk7O%2F2xAfQVHR0V%2FgwVHR1HAZAEsLuj%2FgylubmlAfSlucg7Kf2oKTs7KQJYKTtkHRX%2B1BUdHRUBLBUdZMjIAAAAAAEAZABkBLAETAA7AAATITIWFAYrARUzMhYUBisBFTMyFhQGKwEVMzIWFAYjISImNDY7ATUjIiY0NjsBNSMiJjQ2OwE1IyImNDaWA%2BgVHR0VMjIVHR0VMjIVHR0VMjIVHR0V%2FBgVHR0VMjIVHR0VMjIVHR0VMjIVHR0ETB0qHcgdKh3IHSodyB0qHR0qHcgdKh3IHSodyB0qHQAAAAYBLAAFA%2BgEowAHAA0AEwAZAB8AKgAAAR4BBgcuATYBMhYVIiYlFAYjNDYBMhYVIiYlFAYjNDYDFRQGIiY9ARYzMgKKVz8%2FV1c%2FP%2F75fLB8sAK8sHyw%2FcB8sHywArywfLCwHSodKAMRBKNDsrJCQrKy%2FsCwfLB8fLB8sP7UsHywfHywfLD%2B05AVHR0VjgQAAAH%2FtQDIBJQDgQBCAAABNzYXAR4BBw4BKwEyFRQOBCsBIhE0NyYiBxYVECsBIi4DNTQzIyImJyY2NwE2HwEeAQ4BLwEHIScHBi4BNgLpRRkUASoLCAYFGg8IAQQNGyc%2FKZK4ChRUFQu4jjBJJxkHAgcPGQYGCAsBKhQaTBQVCiMUM7YDe7YsFCMKFgNuEwYS%2FtkLHw8OEw0dNkY4MhwBIBgXBAQYF%2F7gKjxTQyMNEw4PHwoBKBIHEwUjKBYGDMHBDAUWKCMAAAAAAgAAAAAEsASwACUAQwAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjNC4DKwERFBYXMxUjNTI1ESMiDgMVIzUhBLAyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj9RBkIChgQEWQZDQzIMmQREBgKCBkB9AOEFSAVDggDAfyuFhkBAmRkAQUJFQ4DUgEDCA4VIBUBLP0SDxMKBQH%2BVwsNATIyGQGpAQUKEw%2BWAAAAAAMAAAAABEwErgAdACAAMAAAATUiJy4BLwEBIwEGBw4BDwEVITUiJj8BIRcWBiMVARsBARUUBiMhIiY9ATQ2MyEyFgPoGR4OFgUE%2Ft9F%2FtQSFQkfCwsBETE7EkUBJT0NISf%2B7IZ5AbEdFfwYFR0dFQPoFR0BLDIgDiIKCwLr%2FQ4jFQkTBQUyMisusKYiQTIBhwFW%2Fqr942QVHR0VZBUdHQADAAAAAASwBLAADwBHAEoAABMhMhYVERQGIyEiJjURNDYFIyIHAQYHBgcGHQEUFjMhMjY9ATQmIyInJj8BIRcWBwYjIgYdARQWMyEyNj0BNCYnIicmJyMBJhMjEzIETBUdHRX7tBUdHQJGRg0F%2FtUREhImDAsJAREIDAwINxAKCj8BCjkLEQwYCAwMCAE5CAwLCBEZGQ8B%2FuAFDsVnBLAdFfu0FR0dFQRMFR1SDP0PIBMSEAUNMggMDAgyCAwXDhmjmR8YEQwIMggMDAgyBwwBGRskAuwM%2FgUBCAAABAAAAAAEsASwAAMAEwAjACcAAAEhNSEFITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NhcRIREEsPtQBLD7ggGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHUcBLARMZMgdFfx8FR0dFQOEFR0dFf5wFR0dFQGQFR1k%2FtQBLAAEAAAAAASwBLAADwAfACMAJwAAEyEyFhURFAYjISImNRE0NgEhMhYVERQGIyEiJjURNDYXESEREyE1ITIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR1HASzI%2B1AEsASwHRX8fBUdHRUDhBUd%2FgwdFf5wFR0dFQGQFR1k%2FtQBLP2oZAAAAAACAAAAZASwA%2BgAJwArAAATITIWFREzNTQ2MyEyFh0BMxUjFRQGIyEiJj0BIxEUBiMhIiY1ETQ2AREhETIBkBUdZB0VAZAVHWRkHRX%2BcBUdZB0V%2FnAVHR0CnwEsA%2BgdFf6ilhUdHRWWZJYVHR0Vlv6iFR0dFQMgFR3%2B1P7UASwAAAQAAAAABLAEsAADABMAFwAnAAAzIxEzFyEyFhURFAYjISImNRE0NhcRIREBITIWFREUBiMhIiY1ETQ2ZGRklgGQFR0dFf5wFR0dRwEs%2FqIDhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAAAAgBkAAAETASwACcAKwAAATMyFhURFAYrARUhMhYVERQGIyEiJjURNDYzITUjIiY1ETQ2OwE1MwcRIRECWJYVHR0VlgHCFR0dFfx8FR0dFQFelhUdHRWWZMgBLARMHRX%2BcBUdZB0V%2FnAVHR0VAZAVHWQdFQGQFR1kyP7UASwAAAAEAAAAAASwBLAAAwATABcAJwAAISMRMwUhMhYVERQGIyEiJjURNDYXESERASEyFhURFAYjISImNRE0NgSwZGT9dgGQFR0dFf5wFR0dRwEs%2FK4DhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAEBLAAwA28EgAAPAAAJAQYjIiY1ETQ2MzIXARYUA2H%2BEhcSDhAQDhIXAe4OAjX%2BEhcbGQPoGRsX%2FhIOKgAAAAABAUEAMgOEBH4ACwAACQE2FhURFAYnASY0AU8B7h0qKh3%2BEg4CewHuHREp%2FBgpER0B7g4qAAAAAAEAMgFBBH4DhAALAAATITIWBwEGIicBJjZkA%2BgpER3%2BEg4qDv4SHREDhCod%2FhIODgHuHSoAAAAAAQAyASwEfgNvAAsAAAkBFgYjISImNwE2MgJ7Ae4dESn8GCkRHQHuDioDYf4SHSoqHQHuDgAAAAACAAgAAASwBCgABgAKAAABFQE1LQE1ASE1IQK8%2FUwBnf5jBKj84AMgAuW2%2Fr3dwcHd%2B9jIAAAAAAIAAABkBLAEsAALADEAAAEjFTMVIREzNSM1IQEzND4FOwERFAYPARUhNSIuAzURMzIeBRUzESEEsMjI%2FtTIyAEs%2B1AyCAsZEyYYGWQyGRkBkAQOIhoWZBkYJhMZCwgy%2FOADhGRkASxkZP4MFSAVDggDAf3aFhkBAmRkAQUJFQ4CJgEDCA4VIBUBLAAAAgAAAAAETAPoACUAMQAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjFTMVIREzNSM1IQMgMggLGRMmGBlkMhkZ%2FnAEDiIaFmQZGCYTGQsIMgMgASzIyP7UyMgBLAK8FSAVDggDAf3aFhkCAWRkAQUJFQ4CJgEDCA4VIBUBLPzgZGQBLGRkAAABAMgAZgNyBEoAEgAAATMyFgcJARYGKwEiJwEmNDcBNgK9oBAKDP4wAdAMChCgDQr%2BKQcHAdcKBEoWDP4w%2FjAMFgkB1wgUCAHXCQAAAQE%2BAGYD6ARKABIAAAEzMhcBFhQHAQYrASImNwkBJjYBU6ANCgHXBwf%2BKQoNoBAKDAHQ%2FjAMCgRKCf4pCBQI%2FikJFgwB0AHQDBYAAAEAZgDIBEoDcgASAAAAFh0BFAcBBiInASY9ATQ2FwkBBDQWCf4pCBQI%2FikJFgwB0AHQA3cKEKANCv4pBwcB1woNoBAKDP4wAdAAAAABAGYBPgRKA%2BgAEgAACQEWHQEUBicJAQYmPQE0NwE2MgJqAdcJFgz%2BMP4wDBYJAdcIFAPh%2FikKDaAQCgwB0P4wDAoQoA0KAdcHAAAAAgDZ%2F%2FkEPQSwAAUAOgAAARQGIzQ2BTMyFh8BNjc%2BAh4EBgcOBgcGIiYjIgYiJy4DLwEuAT4EHgEXJyY2A%2BiwfLD%2BVmQVJgdPBQsiKFAzRyorDwURAQQSFyozTSwNOkkLDkc3EDlfNyYHBw8GDyUqPjdGMR%2BTDA0EsHywfLDIHBPCAQIGBwcFDx81S21DBxlLR1xKQhEFBQcHGWt0bCQjP2hJNyATBwMGBcASGAAAAAACAMgAFQOEBLAAFgAaAAATITIWFREUBisBEQcGJjURIyImNRE0NhcVITX6AlgVHR0Vlv8TGpYVHR2rASwEsB0V%2FnAVHf4MsgkQFQKKHRUBkBUdZGRkAAAAAgDIABkETASwAA4AEgAAEyEyFhURBRElIREjETQ2ARU3NfoC7ic9%2FUQCWP1EZB8BDWQEsFEs%2FFt1A7Z9%2FBgEARc0%2FV1kFGQAAQAAAAECTW%2FDBF9fDzz1AB8EsAAAAADQdnOXAAAAANB2c5f%2FUf%2BcBdwFFAAAAAgAAgAAAAAAAAABAAAFFP%2BFAAAFFP9R%2FtQF3AABAAAAAAAAAAAAAAAAAAAAowG4ACgAAAAAAZAAAASwAAAEsABkBLAAAASwAAAEsABwAooAAAUUAAACigAABRQAAAGxAAABRQAAANgAAADYAAAAogAAAQQAAABIAAABBAAAAUUAAASwAGQEsAB7BLAAyASwAMgB9AAABLD%2F8gSwAAAEsAAABLD%2F8ASwAAAEsAAOBLAACQSwAGQEsP%2FTBLD%2F0wSwAAAEsAAABLAAAASwAAAEsAAABLAAJgSwAG4EsAAXBLAAFwSwABcEsABkBLAAGgSwAGQEsAAMBLAAZASwABcEsP%2BcBLAAZASwABcEsAAXBLAAAASwABcEsAAXBLAAFwSwAGQEsAAABLAAZASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAZASwAMgEsAAABLAAAASwADUEsABkBLAAyASw%2F7UEsAAhBLAAAASwAAAEsAAABLAAAASwAAAEsP%2BcBLAAAASwAAAEsAAABLAA2wSwABcEsAB1BLAAAASwAAAEsAAABLAACgSwAMgEsAAABLAAnQSwAMgEsADIBLAAyASwAAAEsP%2F%2BBLABLASwAGQEsACIBLABOwSwABcEsAAXBLAAFwSwABcEsAAXBLAAFwSwAAAEsAAXBLAAFwSwABcEsAAXBLAAAASwALcEsAC3BLAAAASwAAAEsABJBLAAFwSwAAAEsAAABLAAXQSw%2F9wEsP%2FcBLD%2FnwSwAGQEsAAABLAAAASwAAAEsABkBLD%2F%2FwSwAAAEsP9RBLAABgSwAAAEsAAABLABRQSwAAEEsAAABLD%2FnASwAEoEsAAUBLAAAASwAAAEsAAABLD%2FnASwAGEEsP%2F9BLAAFgSwABYEsAAWBLAAFgSwABgEsAAABMQAAASwAGQAAAAAAAD%2F2ABkADkAyAAAAScAZAAZABkAGQAZABkAGQAZAAAAAAAAAAAAAADZAAAAAAAOAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAMAZABkAAAAEAAAAAAAZP%2Bc%2F5z%2FnP%2Bc%2F5z%2FnP%2Bc%2F5wACQAJ%2F%2FL%2F8gBkAHkAJwBkAGQAAAAAAGT%2FogAAAAAAAAAAAAAAAADIAGQAAAABAI8AAP%2Bc%2F5wAZAAEAMgAyAAAAGQBkABkAAAAZAEs%2F7UAAAAAAAAAAAAAAAAAAABkAAABLAFBADIAMgAIAAAAAADIAT4AZgBmANkAyADIAAAAKgAqACoAKgCyAOgA6AFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BpAIGAiICfgKGAqwC5ANGA24DjAPEBAgEMgRiBKIE3AVcBboGcgb0ByAHYgfKCB4IYgi%2BCTYJhAm2Cd4KKApMCpQK4gswC4oLygwIDFgNKg1eDbAODg5oDrQPKA%2BmD%2BYQEhBUEJAQqhEqEXYRthIKEjgSfBLAExoTdBPQFCoU1BU8FagVzBYEFjYWYBawFv4XUhemGAIYLhhqGJYYsBjgGP4ZKBloGZQZxBnaGe4aNhpoGrga9hteG7QcMhyUHOIdHB1EHWwdlB28HeYeLh52HsAfYh%2FSIEYgviEyIXYhuCJAIpYiuCMOIyIjOCN6I8Ij4CQCJDAkXiSWJOIlNCVgJbwmFCZ%2BJuYnUCe8J%2FgoNChwKKwpoCnMKiYqSiqEKworeiwILGgsuizsLRwtiC30LiguZi6iLtgvDi9GL34vsi%2F4MD4whDDSMRIxYDGuMegyJDJeMpoy3jMiMz4zaDO2NBg0YDSoNNI1LDWeNeg2PjZ8Ntw3GjdON5I31DgQOEI4hjjIOQo5SjmIOcw6HDpsOpo63jugO9w8GDxQPKI8%2BD0yPew%2BOj6MPtQ%2FKD9uP6o%2F%2BkBIQIBAxkECQX5CGEKoQu5DGENCQ3ZDoEPKRBBEYESuRPZFWkW2RgZGdEa0RvZHNkd2R7ZH9kgWSDJITkhqSIZIzEkSSThJXkmESapKAkouSlIAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAAAAABAAxgABAAAAAAATABIAAAADAAEECQAAAGoAEgADAAEECQABACgAfAADAAEECQACAA4ApAADAAEECQADAEwAsgADAAEECQAEADgA%2FgADAAEECQAFAHgBNgADAAEECQAGADYBrgADAAEECQAIABYB5AADAAEECQAJABYB%2BgADAAEECQALACQCEAADAAEECQAMACQCNAADAAEECQATACQCWAADAAEECQDIABYCfAADAAEECQDJADACkgADAAEECdkDABoCwnd3dy5nbHlwaGljb25zLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQA0ACAAYgB5ACAASgBhAG4AIABLAG8AdgBhAHIAaQBrAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4ARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAFIAZQBnAHUAbABhAHIAMQAuADAAMAA5ADsAVQBLAFcATgA7AEcATABZAFAASABJAEMATwBOAFMASABhAGwAZgBsAGkAbgBnAHMALQBSAGUAZwB1AGwAYQByAEcATABZAFAASABJAEMATwBOAFMAIABIAGEAbABmAGwAaQBuAGcAcwAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAOQA7AFAAUwAgADAAMAAxAC4AMAAwADkAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADkARwBMAFkAUABIAEkAQwBPAE4AUwBIAGEAbABmAGwAaQBuAGcAcwAtAFIAZQBnAHUAbABhAHIASgBhAG4AIABLAG8AdgBhAHIAaQBrAEoAYQBuACAASwBvAHYAYQByAGkAawB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQBXAGUAYgBmAG8AbgB0ACAAMQAuADAAVwBlAGQAIABPAGMAdAAgADIAOQAgADAANgA6ADMANgA6ADAANwAgADIAMAAxADQARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAABFwAAAQIBAwADAA0ADgEEAJYBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMA7wEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE%2BAT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG%2FAcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB%2BgH7AfwB%2FQH%2BAf8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgZnbHlwaDEGZ2x5cGgyB3VuaTAwQTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMkYHdW5pMjA1RgRFdXJvB3VuaTIwQkQHdW5pMjMxQgd1bmkyNUZDB3VuaTI2MDEHdW5pMjZGQQd1bmkyNzA5B3VuaTI3MEYHdW5pRTAwMQd1bmlFMDAyB3VuaUUwMDMHdW5pRTAwNQd1bmlFMDA2B3VuaUUwMDcHdW5pRTAwOAd1bmlFMDA5B3VuaUUwMTAHdW5pRTAxMQd1bmlFMDEyB3VuaUUwMTMHdW5pRTAxNAd1bmlFMDE1B3VuaUUwMTYHdW5pRTAxNwd1bmlFMDE4B3VuaUUwMTkHdW5pRTAyMAd1bmlFMDIxB3VuaUUwMjIHdW5pRTAyMwd1bmlFMDI0B3VuaUUwMjUHdW5pRTAyNgd1bmlFMDI3B3VuaUUwMjgHdW5pRTAyOQd1bmlFMDMwB3VuaUUwMzEHdW5pRTAzMgd1bmlFMDMzB3VuaUUwMzQHdW5pRTAzNQd1bmlFMDM2B3VuaUUwMzcHdW5pRTAzOAd1bmlFMDM5B3VuaUUwNDAHdW5pRTA0MQd1bmlFMDQyB3VuaUUwNDMHdW5pRTA0NAd1bmlFMDQ1B3VuaUUwNDYHdW5pRTA0Nwd1bmlFMDQ4B3VuaUUwNDkHdW5pRTA1MAd1bmlFMDUxB3VuaUUwNTIHdW5pRTA1Mwd1bmlFMDU0B3VuaUUwNTUHdW5pRTA1Ngd1bmlFMDU3B3VuaUUwNTgHdW5pRTA1OQd1bmlFMDYwB3VuaUUwNjIHdW5pRTA2Mwd1bmlFMDY0B3VuaUUwNjUHdW5pRTA2Ngd1bmlFMDY3B3VuaUUwNjgHdW5pRTA2OQd1bmlFMDcwB3VuaUUwNzEHdW5pRTA3Mgd1bmlFMDczB3VuaUUwNzQHdW5pRTA3NQd1bmlFMDc2B3VuaUUwNzcHdW5pRTA3OAd1bmlFMDc5B3VuaUUwODAHdW5pRTA4MQd1bmlFMDgyB3VuaUUwODMHdW5pRTA4NAd1bmlFMDg1B3VuaUUwODYHdW5pRTA4Nwd1bmlFMDg4B3VuaUUwODkHdW5pRTA5MAd1bmlFMDkxB3VuaUUwOTIHdW5pRTA5Mwd1bmlFMDk0B3VuaUUwOTUHdW5pRTA5Ngd1bmlFMDk3B3VuaUUxMDEHdW5pRTEwMgd1bmlFMTAzB3VuaUUxMDQHdW5pRTEwNQd1bmlFMTA2B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaUUxMTAHdW5pRTExMQd1bmlFMTEyB3VuaUUxMTMHdW5pRTExNAd1bmlFMTE1B3VuaUUxMTYHdW5pRTExNwd1bmlFMTE4B3VuaUUxMTkHdW5pRTEyMAd1bmlFMTIxB3VuaUUxMjIHdW5pRTEyMwd1bmlFMTI0B3VuaUUxMjUHdW5pRTEyNgd1bmlFMTI3B3VuaUUxMjgHdW5pRTEyOQd1bmlFMTMwB3VuaUUxMzEHdW5pRTEzMgd1bmlFMTMzB3VuaUUxMzQHdW5pRTEzNQd1bmlFMTM2B3VuaUUxMzcHdW5pRTEzOAd1bmlFMTM5B3VuaUUxNDAHdW5pRTE0MQd1bmlFMTQyB3VuaUUxNDMHdW5pRTE0NAd1bmlFMTQ1B3VuaUUxNDYHdW5pRTE0OAd1bmlFMTQ5B3VuaUUxNTAHdW5pRTE1MQd1bmlFMTUyB3VuaUUxNTMHdW5pRTE1NAd1bmlFMTU1B3VuaUUxNTYHdW5pRTE1Nwd1bmlFMTU4B3VuaUUxNTkHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTE2Mwd1bmlFMTY0B3VuaUUxNjUHdW5pRTE2Ngd1bmlFMTY3B3VuaUUxNjgHdW5pRTE2OQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE5MAd1bmlFMTkxB3VuaUUxOTIHdW5pRTE5Mwd1bmlFMTk0B3VuaUUxOTUHdW5pRTE5Nwd1bmlFMTk4B3VuaUUxOTkHdW5pRTIwMAd1bmlFMjAxB3VuaUUyMDIHdW5pRTIwMwd1bmlFMjA0B3VuaUUyMDUHdW5pRTIwNgd1bmlFMjA5B3VuaUUyMTAHdW5pRTIxMQd1bmlFMjEyB3VuaUUyMTMHdW5pRTIxNAd1bmlFMjE1B3VuaUUyMTYHdW5pRTIxOAd1bmlFMjE5B3VuaUUyMjEHdW5pRTIyMwd1bmlFMjI0B3VuaUUyMjUHdW5pRTIyNgd1bmlFMjI3B3VuaUUyMzAHdW5pRTIzMQd1bmlFMjMyB3VuaUUyMzMHdW5pRTIzNAd1bmlFMjM1B3VuaUUyMzYHdW5pRTIzNwd1bmlFMjM4B3VuaUUyMzkHdW5pRTI0MAd1bmlFMjQxB3VuaUUyNDIHdW5pRTI0Mwd1bmlFMjQ0B3VuaUUyNDUHdW5pRTI0Ngd1bmlFMjQ3B3VuaUUyNDgHdW5pRTI0OQd1bmlFMjUwB3VuaUUyNTEHdW5pRTI1Mgd1bmlFMjUzB3VuaUUyNTQHdW5pRTI1NQd1bmlFMjU2B3VuaUUyNTcHdW5pRTI1OAd1bmlFMjU5B3VuaUUyNjAHdW5pRjhGRgZ1MUY1MTEGdTFGNkFBAAAAAAFUUMMXAAA%3D%20format%28%27truetype%27%29%2Cdata%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE%2BPC9tZXRhZGF0YT4KPGRlZnM%2BCjxmb250IGlkPSJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA%2BCjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMjAwIiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTI0MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUwMCIgLz4KPGdseXBoIGhvcml6LWFkdi14PSIwIiAvPgo8Z2x5cGggaG9yaXotYWR2LXg9IjQwMCIgLz4KPGdseXBoIHVuaWNvZGU9IiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSIqIiBkPSJNNjAwIDExMDBxMTUgMCAzNCAtMS41dDMwIC0zLjVsMTEgLTFxMTAgLTIgMTcuNSAtMTAuNXQ3LjUgLTE4LjV2LTIyNGwxNTggMTU4cTcgNyAxOCA4dDE5IC02bDEwNiAtMTA2cTcgLTggNiAtMTl0LTggLTE4bC0xNTggLTE1OGgyMjRxMTAgMCAxOC41IC03LjV0MTAuNSAtMTcuNXE2IC00MSA2IC03NXEwIC0xNSAtMS41IC0zNHQtMy41IC0zMGwtMSAtMTFxLTIgLTEwIC0xMC41IC0xNy41dC0xOC41IC03LjVoLTIyNGwxNTggLTE1OCBxNyAtNyA4IC0xOHQtNiAtMTlsLTEwNiAtMTA2cS04IC03IC0xOSAtNnQtMTggOGwtMTU4IDE1OHYtMjI0cTAgLTEwIC03LjUgLTE4LjV0LTE3LjUgLTEwLjVxLTQxIC02IC03NSAtNnEtMTUgMCAtMzQgMS41dC0zMCAzLjVsLTExIDFxLTEwIDIgLTE3LjUgMTAuNXQtNy41IDE4LjV2MjI0bC0xNTggLTE1OHEtNyAtNyAtMTggLTh0LTE5IDZsLTEwNiAxMDZxLTcgOCAtNiAxOXQ4IDE4bDE1OCAxNThoLTIyNHEtMTAgMCAtMTguNSA3LjUgdC0xMC41IDE3LjVxLTYgNDEgLTYgNzVxMCAxNSAxLjUgMzR0My41IDMwbDEgMTFxMiAxMCAxMC41IDE3LjV0MTguNSA3LjVoMjI0bC0xNTggMTU4cS03IDcgLTggMTh0NiAxOWwxMDYgMTA2cTggNyAxOSA2dDE4IC04bDE1OCAtMTU4djIyNHEwIDEwIDcuNSAxOC41dDE3LjUgMTAuNXE0MSA2IDc1IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iKyIgZD0iTTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzUwaDM1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zNTB2LTM1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzNTBoLTM1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNSBoMzUwdjM1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTA7IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTU7IiBkPSJNODI1IDExMDBoMjUwcTEwIDAgMTIuNSAtNXQtNS41IC0xM2wtMzY0IC0zNjRxLTYgLTYgLTExIC0xOGgyNjhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTEwMGgyNzVxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTE3NHEwIC0xMSAtNy41IC0xOC41dC0xOC41IC03LjVoLTE0OHEtMTEgMCAtMTguNSA3LjV0LTcuNSAxOC41djE3NCBoLTI3NXEtMTAgMCAtMTMgNnQzIDE0bDEyMCAxNjBxNiA4IDE4IDE0dDIyIDZoMTI1djEwMGgtMjc1cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMThxLTUgMTIgLTExIDE4bC0zNjQgMzY0cS04IDggLTUuNSAxM3QxMi41IDVoMjUwcTI1IDAgNDMgLTE4bDE2NCAtMTY0cTggLTggMTggLTh0MTggOGwxNjQgMTY0cTE4IDE4IDQzIDE4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDA7IiBob3Jpei1hZHYteD0iNjUwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMTsiIGhvcml6LWFkdi14PSIxMzAwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDAzOyIgaG9yaXotYWR2LXg9IjEzMDAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA0OyIgaG9yaXotYWR2LXg9IjQzMyIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDU7IiBob3Jpei1hZHYteD0iMzI1IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwNjsiIGhvcml6LWFkdi14PSIyMTYiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA3OyIgaG9yaXotYWR2LXg9IjIxNiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwOTsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDBhOyIgaG9yaXotYWR2LXg9IjcyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDVmOyIgaG9yaXotYWR2LXg9IjMyNSIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwYWM7IiBkPSJNNzQ0IDExOThxMjQyIDAgMzU0IC0xODlxNjAgLTEwNCA2NiAtMjA5aC0xODFxMCA0NSAtMTcuNSA4Mi41dC00My41IDYxLjV0LTU4IDQwLjV0LTYwLjUgMjR0LTUxLjUgNy41cS0xOSAwIC00MC41IC01LjV0LTQ5LjUgLTIwLjV0LTUzIC0zOHQtNDkgLTYyLjV0LTM5IC04OS41aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNTAgLTYgLTEwMGg0MDZsLTEwMCAtMTAwaC0zMDBxOSAtNzQgMzMgLTEzMnQ1Mi41IC05MXQ2MS41IC01NC41dDU5IC0yOSB0NDcgLTcuNXEyMiAwIDUwLjUgNy41dDYwLjUgMjQuNXQ1OCA0MXQ0My41IDYxdDE3LjUgODBoMTc0cS0zMCAtMTcxIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDYgMCAtMzI0IDE1OHEtMzYgNDggLTY5IDEzM3QtNDUgMjA0aC0yMTdsMTAwIDEwMGgxMTJxMSA0NyA2IDEwMGgtMjE4bDEwMCAxMDBoMTM0cTIwIDg3IDUxIDE1My41dDYyIDEwMy41cTExNyAxNDEgMjk3IDE0MXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMGJkOyIgZD0iTTQyOCAxMjAwaDM1MHE2NyAwIDEyMCAtMTN0ODYgLTMxdDU3IC00OS41dDM1IC01Ni41dDE3IC02NC41dDYuNSAtNjAuNXQwLjUgLTU3di0xNi41di0xNi41cTAgLTM2IC0wLjUgLTU3dC02LjUgLTYxdC0xNyAtNjV0LTM1IC01N3QtNTcgLTUwLjV0LTg2IC0zMS41dC0xMjAgLTEzaC0xNzhsLTIgLTEwMGgyODhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMzh2LTE3NXEwIC0xMSAtNS41IC0xOCB0LTE1LjUgLTdoLTE0OXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE3NWgtMjY3cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMTd2MTAwaC0yNjdxLTEwIDAgLTEzIDZ0MyAxNGwxMjAgMTYwcTYgOCAxOCAxNHQyMiA2aDExN3Y0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNjAwIDEwMDB2LTMwMGgyMDNxNjQgMCA4Ni41IDMzdDIyLjUgMTE5cTAgODQgLTIyLjUgMTE2dC04Ni41IDMyaC0yMDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjIxMjsiIGQ9Ik0yNTAgNzAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjMxYjsiIGQ9Ik0xMDAwIDEyMDB2LTE1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTEwMHEwIC05MSAtNDkuNSAtMTY1LjV0LTEzMC41IC0xMDkuNXE4MSAtMzUgMTMwLjUgLTEwOS41dDQ5LjUgLTE2NS41di0xNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtODAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MTUwcTAgOTEgNDkuNSAxNjUuNXQxMzAuNSAxMDkuNXEtODEgMzUgLTEzMC41IDEwOS41IHQtNDkuNSAxNjUuNXYxMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxNTBoODAwek00MDAgMTAwMHYtMTAwcTAgLTYwIDMyLjUgLTEwOS41dDg3LjUgLTczLjVxMjggLTEyIDQ0IC0zN3QxNiAtNTV0LTE2IC01NXQtNDQgLTM3cS01NSAtMjQgLTg3LjUgLTczLjV0LTMyLjUgLTEwOS41di0xNTBoNDAwdjE1MHEwIDYwIC0zMi41IDEwOS41dC04Ny41IDczLjVxLTI4IDEyIC00NCAzN3QtMTYgNTV0MTYgNTV0NDQgMzcgcTU1IDI0IDg3LjUgNzMuNXQzMi41IDEwOS41djEwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI2MDE7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA2LjVxMCAtMTIxIC04NSAtMjA3LjV0LTIwNSAtODYuNWgtNzUwcS03OSAwIC0xMzUuNSA1N3QtNTYuNSAxMzdxMCA2OSA0Mi41IDEyMi41dDEwOC41IDY3LjVxLTIgMTIgLTIgMzdxMCAxNTMgMTA4IDI2MC41dDI2MCAxMDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNmZhOyIgZD0iTTc3NCAxMTkzLjVxMTYgLTkuNSAyMC41IC0yN3QtNS41IC0zMy41bC0xMzYgLTE4N2w0NjcgLTc0NmgzMHEyMCAwIDM1IC0xOC41dDE1IC0zOS41di00MmgtMTIwMHY0MnEwIDIxIDE1IDM5LjV0MzUgMTguNWgzMGw0NjggNzQ2bC0xMzUgMTgzcS0xMCAxNiAtNS41IDM0dDIwLjUgMjh0MzQgNS41dDI4IC0yMC41bDExMSAtMTQ4bDExMiAxNTBxOSAxNiAyNyAyMC41dDM0IC01ek02MDAgMjAwaDM3N2wtMTgyIDExMmwtMTk1IDUzNHYtNjQ2eiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNzA5OyIgZD0iTTI1IDExMDBoMTE1MHExMCAwIDEyLjUgLTV0LTUuNSAtMTNsLTU2NCAtNTY3cS04IC04IC0xOCAtOHQtMTggOGwtNTY0IDU2N3EtOCA4IC01LjUgMTN0MTIuNSA1ek0xOCA4ODJsMjY0IC0yNjRxOCAtOCA4IC0xOHQtOCAtMThsLTI2NCAtMjY0cS04IC04IC0xMyAtNS41dC01IDEyLjV2NTUwcTAgMTAgNSAxMi41dDEzIC01LjV6TTkxOCA2MThsMjY0IDI2NHE4IDggMTMgNS41dDUgLTEyLjV2LTU1MHEwIC0xMCAtNSAtMTIuNXQtMTMgNS41IGwtMjY0IDI2NHEtOCA4IC04IDE4dDggMTh6TTgxOCA0ODJsMzY0IC0zNjRxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xMTUwcS0xMCAwIC0xMi41IDV0NS41IDEzbDM2NCAzNjRxOCA4IDE4IDh0MTggLThsMTY0IC0xNjRxOCAtOCAxOCAtOHQxOCA4bDE2NCAxNjRxOCA4IDE4IDh0MTggLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjcwZjsiIGQ9Ik0xMDExIDEyMTBxMTkgMCAzMyAtMTNsMTUzIC0xNTNxMTMgLTE0IDEzIC0zM3QtMTMgLTMzbC05OSAtOTJsLTIxNCAyMTRsOTUgOTZxMTMgMTQgMzIgMTR6TTEwMTMgODAwbC02MTUgLTYxNGwtMjE0IDIxNGw2MTQgNjE0ek0zMTcgOTZsLTMzMyAtMTEybDExMCAzMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik03MDAgNjUwdi01NTBoMjUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtODAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyNTB2NTUwbC01MDAgNTUwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0zNjggMTAxN2w2NDUgMTYzcTM5IDE1IDYzIDB0MjQgLTQ5di04MzFxMCAtNTUgLTQxLjUgLTk1LjV0LTExMS41IC02My41cS03OSAtMjUgLTE0NyAtNC41dC04NiA3NXQyNS41IDExMS41dDEyMi41IDgycTcyIDI0IDEzOCA4djUyMWwtNjAwIC0xNTV2LTYwNnEwIC00MiAtNDQgLTkwdC0xMDkgLTY5cS03OSAtMjYgLTE0NyAtNS41dC04NiA3NS41dDI1LjUgMTExLjV0MTIyLjUgODIuNXE3MiAyNCAxMzggN3Y2MzlxMCAzOCAxNC41IDU5IHQ1My41IDM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNNTAwIDExOTFxMTAwIDAgMTkxIC0zOXQxNTYuNSAtMTA0LjV0MTA0LjUgLTE1Ni41dDM5IC0xOTFsLTEgLTJsMSAtNXEwIC0xNDEgLTc4IC0yNjJsMjc1IC0yNzRxMjMgLTI2IDIyLjUgLTQ0LjV0LTIyLjUgLTQyLjVsLTU5IC01OHEtMjYgLTIwIC00Ni41IC0yMHQtMzkuNSAyMGwtMjc1IDI3NHEtMTE5IC03NyAtMjYxIC03N2wtNSAxbC0yIC0xcS0xMDAgMCAtMTkxIDM5dC0xNTYuNSAxMDQuNXQtMTA0LjUgMTU2LjV0LTM5IDE5MSB0MzkgMTkxdDEwNC41IDE1Ni41dDE1Ni41IDEwNC41dDE5MSAzOXpNNTAwIDEwMjJxLTg4IDAgLTE2MiAtNDN0LTExNyAtMTE3dC00MyAtMTYydDQzIC0xNjJ0MTE3IC0xMTd0MTYyIC00M3QxNjIgNDN0MTE3IDExN3Q0MyAxNjJ0LTQzIDE2MnQtMTE3IDExN3QtMTYyIDQzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNNjQ5IDk0OXE0OCA2OCAxMDkuNSAxMDR0MTIxLjUgMzguNXQxMTguNSAtMjB0MTAyLjUgLTY0dDcxIC0xMDAuNXQyNyAtMTIzcTAgLTU3IC0zMy41IC0xMTcuNXQtOTQgLTEyNC41dC0xMjYuNSAtMTI3LjV0LTE1MCAtMTUyLjV0LTE0NiAtMTc0cS02MiA4NSAtMTQ1LjUgMTc0dC0xNTAgMTUyLjV0LTEyNi41IDEyNy41dC05My41IDEyNC41dC0zMy41IDExNy41cTAgNjQgMjggMTIzdDczIDEwMC41dDEwNCA2NHQxMTkgMjAgdDEyMC41IC0zOC41dDEwNC41IC0xMDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNjsiIGQ9Ik00MDcgODAwbDEzMSAzNTNxNyAxOSAxNy41IDE5dDE3LjUgLTE5bDEyOSAtMzUzaDQyMXEyMSAwIDI0IC04LjV0LTE0IC0yMC41bC0zNDIgLTI0OWwxMzAgLTQwMXE3IC0yMCAtMC41IC0yNS41dC0yNC41IDYuNWwtMzQzIDI0NmwtMzQyIC0yNDdxLTE3IC0xMiAtMjQuNSAtNi41dC0wLjUgMjUuNWwxMzAgNDAwbC0zNDcgMjUxcS0xNyAxMiAtMTQgMjAuNXQyMyA4LjVoNDI5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNNDA3IDgwMGwxMzEgMzUzcTcgMTkgMTcuNSAxOXQxNy41IC0xOWwxMjkgLTM1M2g0MjFxMjEgMCAyNCAtOC41dC0xNCAtMjAuNWwtMzQyIC0yNDlsMTMwIC00MDFxNyAtMjAgLTAuNSAtMjUuNXQtMjQuNSA2LjVsLTM0MyAyNDZsLTM0MiAtMjQ3cS0xNyAtMTIgLTI0LjUgLTYuNXQtMC41IDI1LjVsMTMwIDQwMGwtMzQ3IDI1MXEtMTcgMTIgLTE0IDIwLjV0MjMgOC41aDQyOXpNNDc3IDcwMGgtMjQwbDE5NyAtMTQybC03NCAtMjI2IGwxOTMgMTM5bDE5NSAtMTQwbC03NCAyMjlsMTkyIDE0MGgtMjM0bC03OCAyMTF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsiIGQ9Ik02MDAgMTIwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTI1MHEwIC00NiAtMzEgLTk4dC02OSAtNTJ2LTc1cTAgLTEwIDYgLTIxLjV0MTUgLTE3LjVsMzU4IC0yMzBxOSAtNSAxNSAtMTYuNXQ2IC0yMS41di05M3EwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5M3EwIDEwIDYgMjEuNXQxNSAxNi41bDM1OCAyMzBxOSA2IDE1IDE3LjV0NiAyMS41djc1cS0zOCAwIC02OSA1MiB0LTMxIDk4djI1MHEwIDEyNCA4OCAyMTJ0MjEyIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7IiBkPSJNMjUgMTEwMGgxMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTA1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMDUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwMCAxMDAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgMTAwMGgtNTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMzUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNTUwIHExMCAwIDE3LjUgNy41dDcuNSAxNy41djM1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTEwMDAgMTAwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwIDgwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA4MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgNjAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgNTAwaC01NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0zNTBxMCAtMTAgNy41IC0xNy41IHQxNy41IC03LjVoNTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MzUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMTAwIDQwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCAyMDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCA1MDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMTsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTEwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODUwIDcwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoMjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTg1MCAzMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41IHQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNDUwIDcwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoNzAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik00NjUgNDc3bDU3MSA1NzFxOCA4IDE4IDh0MTcgLThsMTc3IC0xNzdxOCAtNyA4IC0xN3QtOCAtMThsLTc4MyAtNzg0cS03IC04IC0xNy41IC04dC0xNy41IDhsLTM4NCAzODRxLTggOCAtOCAxOHQ4IDE3bDE3NyAxNzdxNyA4IDE3IDh0MTggLThsMTcxIC0xNzFxNyAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNOTA0IDEwODNsMTc4IC0xNzlxOCAtOCA4IC0xOC41dC04IC0xNy41bC0yNjcgLTI2OGwyNjcgLTI2OHE4IC03IDggLTE3LjV0LTggLTE4LjVsLTE3OCAtMTc4cS04IC04IC0xOC41IC04dC0xNy41IDhsLTI2OCAyNjdsLTI2OCAtMjY3cS03IC04IC0xNy41IC04dC0xOC41IDhsLTE3OCAxNzhxLTggOCAtOCAxOC41dDggMTcuNWwyNjcgMjY4bC0yNjcgMjY4cS04IDcgLTggMTcuNXQ4IDE4LjVsMTc4IDE3OHE4IDggMTguNSA4dDE3LjUgLTggbDI2OCAtMjY3bDI2OCAyNjhxNyA3IDE3LjUgN3QxOC41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNNDI1IDkwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWg3NXExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41IHQtMTcuNSAtNy41aC03NXYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtNzVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg3NXY3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNMzI1IDgwMGgzNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik01NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04MDAgOTc1djE2NnExNjcgLTYyIDI3MiAtMjA5LjV0MTA1IC0zMzEuNXEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNSB0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHEwIDE4NCAxMDUgMzMxLjV0MjcyIDIwOS41di0xNjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTExNiA1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXEwIDEyMCAtNjIgMjIwdC0xNjUgMTU1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBkPSJNMTAyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTExNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTcyNSA4MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgNTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTQ1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djQ1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0xMjUgMzAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41IHYyNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDE5OyIgZD0iTTYwMCAxMTc0cTMzIDAgNzQgLTVsMzggLTE1Mmw1IC0xcTQ5IC0xNCA5NCAtMzlsNSAtMmwxMzQgODBxNjEgLTQ4IDEwNCAtMTA1bC04MCAtMTM0bDMgLTVxMjUgLTQ0IDM5IC05M2wxIC02bDE1MiAtMzhxNSAtNDMgNSAtNzNxMCAtMzQgLTUgLTc0bC0xNTIgLTM4bC0xIC02cS0xNSAtNDkgLTM5IC05M2wtMyAtNWw4MCAtMTM0cS00OCAtNjEgLTEwNCAtMTA1bC0xMzQgODFsLTUgLTNxLTQ0IC0yNSAtOTQgLTM5bC01IC0ybC0zOCAtMTUxIHEtNDMgLTUgLTc0IC01cS0zMyAwIC03NCA1bC0zOCAxNTFsLTUgMnEtNDkgMTQgLTk0IDM5bC01IDNsLTEzNCAtODFxLTYwIDQ4IC0xMDQgMTA1bDgwIDEzNGwtMyA1cS0yNSA0NSAtMzggOTNsLTIgNmwtMTUxIDM4cS02IDQyIC02IDc0cTAgMzMgNiA3M2wxNTEgMzhsMiA2cTEzIDQ4IDM4IDkzbDMgNWwtODAgMTM0cTQ3IDYxIDEwNSAxMDVsMTMzIC04MGw1IDJxNDUgMjUgOTQgMzlsNSAxbDM4IDE1MnE0MyA1IDc0IDV6TTYwMCA4MTUgcS04OSAwIC0xNTIgLTYzdC02MyAtMTUxLjV0NjMgLTE1MS41dDE1MiAtNjN0MTUyIDYzdDYzIDE1MS41dC02MyAxNTEuNXQtMTUyIDYzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNNTAwIDEzMDBoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBoMjc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoLTExMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNzV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNTAwIDEyMDB2LTEwMGgzMDB2MTAwaC0zMDB6TTExMDAgOTAwdi04MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTcwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjUgdjgwMGg5MDB6TTMwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTUwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTcwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTkwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMTsiIGQ9Ik0xOCA2MThsNjIwIDYwOHE4IDcgMTguNSA3dDE3LjUgLTdsNjA4IC02MDhxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xNzV2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWgtMzAwdi0zNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NzVoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTTYwMCAxMjAwdi00MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDMwMHYtNjUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djExMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHpNMTAwMCA4MDBoLTI1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxMDI3cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd0MjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjV0LTU3IDIxNC41dC0xNTUuNSAxNTUuNXQtMjE0LjUgNTd6TTUyNSA5MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0yNzVoMTc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI0OyIgZD0iTTEzMDAgMGgtNTM4bC00MSA0MDBoLTI0MmwtNDEgLTQwMGgtNTM4bDQzMSAxMjAwaDIwOWwtMjEgLTMwMGgxNjJsLTIwIDMwMGgyMDh6TTUxNSA4MDBsLTI3IC0zMDBoMjI0bC0yNyAzMDBoLTE3MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDUwaDE5MXEyMCAwIDI1LjUgLTExLjV0LTcuNSAtMjcuNWwtMzI3IC00MDBxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMzI3IDQwMHEtMTMgMTYgLTcuNSAyNy41dDI1LjUgMTEuNWgxOTF2NDUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEyNSA0MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0zNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41IGgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTc1aDkwMHYxNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01MjUgOTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI3NWgxMzdxMjEgMCAyNiAtMTEuNXQtOCAtMjcuNWwtMjIzIC0yNzVxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMjIzIDI3NXEtMTMgMTYgLTggMjcuNXQyNiAxMS41aDEzN3YyNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNjMyIDkxNGwyMjMgLTI3NXExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTEzN3YtMjc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2Mjc1aC0xMzdxLTIxIDAgLTI2IDExLjV0OCAyNy41bDIyMyAyNzVxMTMgMTYgMzIgMTYgdDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI4OyIgZD0iTTIyNSAxMjAwaDc1MHExMCAwIDE5LjUgLTd0MTIuNSAtMTdsMTg2IC02NTJxNyAtMjQgNyAtNDl2LTQyNXEwIC0xMiAtNCAtMjd0LTkgLTE3cS0xMiAtNiAtMzcgLTZoLTExMDBxLTEyIDAgLTI3IDR0LTE3IDhxLTYgMTMgLTYgMzhsMSA0MjVxMCAyNSA3IDQ5bDE4NSA2NTJxMyAxMCAxMi41IDE3dDE5LjUgN3pNODc4IDEwMDBoLTU1NnEtMTAgMCAtMTkgLTd0LTExIC0xOGwtODcgLTQ1MHEtMiAtMTEgNCAtMTh0MTYgLTdoMTUwIHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1MnEyIC0xMCAxMS41IC0xN3QxOS41IC03aDI1MHExMCAwIDE5LjUgN3QxMS41IDE3bDM4IDE1MnEyIDEwIDExLjUgMTd0MTkuNSA3aDE1MHExMCAwIDE2IDd0NCAxOGwtODcgNDUwcS0yIDExIC0xMSAxOHQtMTkgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI5OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01NDAgODIwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMDsiIGQ9Ik05NDcgMTA2MGwxMzUgMTM1cTcgNyAxMi41IDV0NS41IC0xM3YtMzYycTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMzYycS0xMSAwIC0xMyA1LjV0NSAxMi41bDEzMyAxMzNxLTEwOSA3NiAtMjM4IDc2cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNWgxNTBxMCAtMTE3IC00NS41IC0yMjQgdC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMxOyIgZD0iTTk0NyAxMDYwbDEzNSAxMzVxNyA3IDEyLjUgNXQ1LjUgLTEzdi0zNjFxMCAtMTEgLTcuNSAtMTguNXQtMTguNSAtNy41aC0zNjFxLTExIDAgLTEzIDUuNXQ1IDEyLjVsMTM0IDEzNHEtMTEwIDc1IC0yMzkgNzVxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41aC0xNTBxMCAxMTcgNDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3pNMTAyNyA2MDBoMTUwIHEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41cS0xOTIgMCAtMzQ4IDExOGwtMTM0IC0xMzRxLTcgLTggLTEyLjUgLTUuNXQtNS41IDEyLjV2MzYwcTAgMTEgNy41IDE4LjV0MTguNSA3LjVoMzYwcTEwIDAgMTIuNSAtNS41dC01LjUgLTEyLjVsLTEzMyAtMTMzcTExMCAtNzYgMjQwIC03NnExMTYgMCAyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0iTTEyNSAxMjAwaDEwNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djExNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMTA3NSAxMDAwaC04NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di04NTBxMCAtMTAgNy41IC0xNy41dDE3LjUgLTcuNWg4NTBxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXY4NTAgcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMzI1IDkwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgOTAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTMyNSA3MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNTI1IDcwMGg0NTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTQ1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0zMjUgNTAwaDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTUyNSA1MDBoNDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC00NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMzI1IDMwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgMzAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMzsiIGQ9Ik05MDAgODAwdjIwMHEwIDgzIC01OC41IDE0MS41dC0xNDEuNSA1OC41aC0zMDBxLTgyIDAgLTE0MSAtNTl0LTU5IC0xNDF2LTIwMGgtMTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDkwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NjAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC0xMDB6TTQwMCA4MDB2MTUwcTAgMjEgMTUgMzUuNXQzNSAxNC41aDIwMCBxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNXYtMTUwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMjUgMTEwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwNzVoLTEwMHYxMDc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwNzUgMTA1MnE0IDAgOSAtMnExNiAtNiAxNiAtMjN2LTQyMXEwIC02IC0zIC0xMnEtMzMgLTU5IC02Ni41IC05OXQtNjUuNSAtNTh0LTU2LjUgLTI0LjV0LTUyLjUgLTYuNXEtMjYgMCAtNTcuNSA2LjV0LTUyLjUgMTMuNXQtNjAgMjFxLTQxIDE1IC02MyAyMi41dC01Ny41IDE1dC02NS41IDcuNSBxLTg1IDAgLTE2MCAtNTdxLTcgLTUgLTE1IC01cS02IDAgLTExIDNxLTE0IDcgLTE0IDIydjQzOHEyMiA1NSA4MiA5OC41dDExOSA0Ni41cTIzIDIgNDMgMC41dDQzIC03dDMyLjUgLTguNXQzOCAtMTN0MzIuNSAtMTFxNDEgLTE0IDYzLjUgLTIxdDU3IC0xNHQ2My41IC03cTEwMyAwIDE4MyA4N3E3IDggMTggOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTTYwMCAxMTc1cTExNiAwIDIyNyAtNDkuNXQxOTIuNSAtMTMxdDEzMSAtMTkyLjV0NDkuNSAtMjI3di0zMDBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djMwMHEwIDEyNyAtNzAuNSAyMzEuNXQtMTg0LjUgMTYxLjV0LTI0NSA1N3QtMjQ1IC01N3QtMTg0LjUgLTE2MS41dC03MC41IC0yMzEuNXYtMzAwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTAgcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzAwcTAgMTE2IDQ5LjUgMjI3dDEzMSAxOTIuNXQxOTIuNSAxMzF0MjI3IDQ5LjV6TTIyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwcTAgOCA2IDE0dDE0IDZ6TTgyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwIHEwIDggNiAxNHQxNCA2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzY7IiBkPSJNMzIxIDgxNGwyNTggMTcycTkgNiAxNSAyLjV0NiAtMTMuNXYtNzUwcTAgLTEwIC02IC0xMy41dC0xNSAyLjVsLTI1OCAxNzJxLTIxIDE0IC00NiAxNGgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMjUwcTI1IDAgNDYgMTR6TTkwMCA2NjhsMTIwIDEyMHE3IDcgMTcgN3QxNyAtN2wzNCAtMzRxNyAtNyA3IC0xN3QtNyAtMTdsLTEyMCAtMTIwbDEyMCAtMTIwcTcgLTcgNyAtMTcgdC03IC0xN2wtMzQgLTM0cS03IC03IC0xNyAtN3QtMTcgN2wtMTIwIDExOWwtMTIwIC0xMTlxLTcgLTcgLTE3IC03dC0xNyA3bC0zNCAzNHEtNyA3IC03IDE3dDcgMTdsMTE5IDEyMGwtMTE5IDEyMHEtNyA3IC03IDE3dDcgMTdsMzQgMzRxNyA4IDE3IDh0MTcgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNzsiIGQ9Ik0zMjEgODE0bDI1OCAxNzJxOSA2IDE1IDIuNXQ2IC0xMy41di03NTBxMCAtMTAgLTYgLTEzLjV0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNiBsLTI5IDIzcS03IDcgLTguNSAxNi41dDQuNSAxNy41cTcyIDEwMyA3MiAyMjlxMCAxMzIgLTc4IDIzOHEtNiA4IC00LjUgMTh0OS41IDE3bDI5IDIycTcgNSAxNSA1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzg7IiBkPSJNOTY3IDEwMDRoM3ExMSAtMSAxNyAtMTBxMTM1IC0xNzkgMTM1IC0zOTZxMCAtMTA1IC0zNCAtMjA2LjV0LTk4IC0xODUuNXEtNyAtOSAtMTcgLTEwaC0zcS05IDAgLTE2IDZsLTQyIDM0cS04IDYgLTkgMTZ0NSAxOHExMTEgMTUwIDExMSAzMjhxMCA5MCAtMjkuNSAxNzZ0LTg0LjUgMTU3cS02IDkgLTUgMTl0MTAgMTZsNDIgMzNxNyA1IDE1IDV6TTMyMSA4MTRsMjU4IDE3MnE5IDYgMTUgMi41dDYgLTEzLjV2LTc1MHEwIC0xMCAtNiAtMTMuNSB0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNmwtMjkgMjNxLTcgNyAtOC41IDE2LjV0NC41IDE3LjVxNzIgMTAzIDcyIDIyOXEwIDEzMiAtNzggMjM4IHEtNiA4IC00LjUgMTguNXQ5LjUgMTYuNWwyOSAyMnE3IDUgMTUgNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM5OyIgZD0iTTUwMCA5MDBoMTAwdi0xMDBoLTEwMHYtMTAwaC00MDB2LTEwMGgtMTAwdjYwMGg1MDB2LTMwMHpNMTIwMCA3MDBoLTIwMHYtMTAwaDIwMHYtMjAwaC0zMDB2MzAwaC0yMDB2MzAwaC0xMDB2MjAwaDYwMHYtNTAwek0xMDAgMTEwMHYtMzAwaDMwMHYzMDBoLTMwMHpNODAwIDExMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTMwMCA5MDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEwMDAgOTAwaC0xMDB2MTAwaDEwMHYtMTAwek0zMDAgNTAwaDIwMHYtNTAwIGgtNTAwdjUwMGgyMDB2MTAwaDEwMHYtMTAwek04MDAgMzAwaDIwMHYtMTAwaC0xMDB2LTEwMGgtMjAwdjEwMGgtMTAwdjEwMGgxMDB2MjAwaC0yMDB2MTAwaDMwMHYtMzAwek0xMDAgNDAwdi0zMDBoMzAwdjMwMGgtMzAwek0zMDAgMjAwaC0xMDB2MTAwaDEwMHYtMTAwek0xMjAwIDIwMGgtMTAwdjEwMGgxMDB2LTEwMHpNNzAwIDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEyMDAgMGgtMzAwdjEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTEwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMzAwIDIwMGgtMTAwdjEwMDBoMTAwdi0xMDAwek03MDAgMjAwaC0yMDB2MTAwMGgyMDB2LTEwMDB6TTkwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMTIwMCAyMDBoLTIwMHYxMDAwaDIwMHYtMTAwMHpNNDAwIDBoLTMwMHYxMDBoMzAwdi0xMDB6TTYwMCAwaC0xMDB2OTFoMTAwdi05MXpNODAwIDBoLTEwMHY5MWgxMDB2LTkxek0xMTAwIDBoLTIwMHY5MWgyMDB2LTkxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNDE7IiBkPSJNNTAwIDEyMDBsNjgyIC02ODJxOCAtOCA4IC0xOHQtOCAtMThsLTQ2NCAtNDY0cS04IC04IC0xOCAtOHQtMTggOGwtNjgyIDY4MmwxIDQ3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDQ3NHpNMzE5LjUgMTAyNC41cS0yOS41IDI5LjUgLTcxIDI5LjV0LTcxIC0yOS41dC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0iTTUwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTY4MiA2ODJsMSA0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg0NzR6TTgwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTU2IDU2bDQyNCA0MjZsLTcwMCA3MDBoMTUwek0zMTkuNSAxMDI0LjVxLTI5LjUgMjkuNSAtNzEgMjkuNXQtNzEgLTI5LjUgdC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQzOyIgZD0iTTMwMCAxMjAwaDgyNXE3NSAwIDc1IC03NXYtOTAwcTAgLTI1IC0xOCAtNDNsLTY0IC02NHEtOCAtOCAtMTMgLTUuNXQtNSAxMi41djk1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjVoLTcwMHEtMjUgMCAtNDMgLTE4bC02NCAtNjRxLTggLTggLTUuNSAtMTN0MTIuNSAtNWg3MDBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di05NTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC04NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NzUgcTAgMjUgMTggNDNsMTM5IDEzOXExOCAxOCA0MyAxOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ0OyIgZD0iTTI1MCAxMjAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTE1MGwtNDUwIDQ0NGwtNDUwIC00NDV2MTE1MXEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NTsiIGQ9Ik04MjIgMTIwMGgtNDQ0cS0xMSAwIC0xOSAtNy41dC05IC0xNy41bC03OCAtMzAxcS03IC0yNCA3IC00NWw1NyAtMTA4cTYgLTkgMTcuNSAtMTV0MjEuNSAtNmg0NTBxMTAgMCAyMS41IDZ0MTcuNSAxNWw2MiAxMDhxMTQgMjEgNyA0NWwtODMgMzAxcS0xIDEwIC05IDE3LjV0LTE5IDcuNXpNMTE3NSA4MDBoLTE1MHEtMTAgMCAtMjEgLTYuNXQtMTUgLTE1LjVsLTc4IC0xNTZxLTQgLTkgLTE1IC0xNS41dC0yMSAtNi41aC01NTAgcS0xMCAwIC0yMSA2LjV0LTE1IDE1LjVsLTc4IDE1NnEtNCA5IC0xNSAxNS41dC0yMSA2LjVoLTE1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTY1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDc1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41IHQ3LjUgMTcuNXY2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41ek04NTAgMjAwaC01MDBxLTEwIDAgLTE5LjUgLTd0LTExLjUgLTE3bC0zOCAtMTUycS0yIC0xMCAzLjUgLTE3dDE1LjUgLTdoNjAwcTEwIDAgMTUuNSA3dDMuNSAxN2wtMzggMTUycS0yIDEwIC0xMS41IDE3dC0xOS41IDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NjsiIGQ9Ik01MDAgMTEwMGgyMDBxNTYgMCAxMDIuNSAtMjAuNXQ3Mi41IC01MHQ0NCAtNTl0MjUgLTUwLjVsNiAtMjBoMTUwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di02MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djYwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTUwcTIgOCA2LjUgMjEuNXQyNCA0OHQ0NSA2MXQ3MiA0OHQxMDIuNSAyMS41ek05MDAgODAwdi0xMDAgaDEwMHYxMDBoLTEwMHpNNjAwIDczMHEtOTUgMCAtMTYyLjUgLTY3LjV0LTY3LjUgLTE2Mi41dDY3LjUgLTE2Mi41dDE2Mi41IC02Ny41dDE2Mi41IDY3LjV0NjcuNSAxNjIuNXQtNjcuNSAxNjIuNXQtMTYyLjUgNjcuNXpNNjAwIDYwM3E0MyAwIDczIC0zMHQzMCAtNzN0LTMwIC03M3QtNzMgLTMwdC03MyAzMHQtMzAgNzN0MzAgNzN0NzMgMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NzsiIGQ9Ik02ODEgMTE5OWwzODUgLTk5OHEyMCAtNTAgNjAgLTkycTE4IC0xOSAzNi41IC0yOS41dDI3LjUgLTExLjVsMTAgLTJ2LTY2aC00MTd2NjZxNTMgMCA3NSA0My41dDUgODguNWwtODIgMjIyaC0zOTFxLTU4IC0xNDUgLTkyIC0yMzRxLTExIC0zNCAtNi41IC01N3QyNS41IC0zN3Q0NiAtMjB0NTUgLTZ2LTY2aC0zNjV2NjZxNTYgMjQgODQgNTJxMTIgMTIgMjUgMzAuNXQyMCAzMS41bDcgMTNsMzk5IDEwMDZoOTN6TTQxNiA1MjFoMzQwIGwtMTYyIDQ1N3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTc1MyA2NDFxNSAtMSAxNC41IC00LjV0MzYgLTE1LjV0NTAuNSAtMjYuNXQ1My41IC00MHQ1MC41IC01NC41dDM1LjUgLTcwdDE0LjUgLTg3cTAgLTY3IC0yNy41IC0xMjUuNXQtNzEuNSAtOTcuNXQtOTguNSAtNjYuNXQtMTA4LjUgLTQwLjV0LTEwMiAtMTNoLTUwMHY4OXE0MSA3IDcwLjUgMzIuNXQyOS41IDY1LjV2ODI3cTAgMjQgLTAuNSAzNHQtMy41IDI0dC04LjUgMTkuNXQtMTcgMTMuNXQtMjggMTIuNXQtNDIuNSAxMS41djcxIGw0NzEgLTFxNTcgMCAxMTUuNSAtMjAuNXQxMDggLTU3dDgwLjUgLTk0dDMxIC0xMjQuNXEwIC01MSAtMTUuNSAtOTYuNXQtMzggLTc0LjV0LTQ1IC01MC41dC0zOC41IC0zMC41ek00MDAgNzAwaDEzOXE3OCAwIDEzMC41IDQ4LjV0NTIuNSAxMjIuNXEwIDQxIC04LjUgNzAuNXQtMjkuNSA1NS41dC02Mi41IDM5LjV0LTEwMy41IDEzLjVoLTExOHYtMzUwek00MDAgMjAwaDIxNnE4MCAwIDEyMSA1MC41dDQxIDEzMC41cTAgOTAgLTYyLjUgMTU0LjUgdC0xNTYuNSA2NC41aC0xNTl2LTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ5OyIgZD0iTTg3NyAxMjAwbDIgLTU3cS04MyAtMTkgLTExNiAtNDUuNXQtNDAgLTY2LjVsLTEzMiAtODM5cS05IC00OSAxMyAtNjl0OTYgLTI2di05N2gtNTAwdjk3cTE4NiAxNiAyMDAgOThsMTczIDgzMnEzIDE3IDMgMzB0LTEuNSAyMi41dC05IDE3LjV0LTEzLjUgMTIuNXQtMjEuNSAxMHQtMjYgOC41dC0zMy41IDEwcS0xMyAzIC0xOSA1djU3aDQyNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDUwOyIgZD0iTTEzMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTE3NSAxMDAwaC03NXYtODAwaDc1bC0xMjUgLTE2N2wtMTI1IDE2N2g3NXY4MDBoLTc1bDEyNSAxNjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MTsiIGQ9Ik0xMTAwIDkwMGgtNTBxMCAyMSAtNCAzN3QtOS41IDI2LjV0LTE4IDE3LjV0LTIyIDExdC0yOC41IDUuNXQtMzEgMnQtMzcgMC41aC0yMDB2LTY1MHEwIC0yMiAyNSAtMzQuNXQ1MCAtMTMuNWwyNSAtMnYtMTAwaC00MDB2MTAwcTQgMCAxMSAwLjV0MjQgM3QzMCA3dDI0IDE1dDExIDI0LjV2NjUwaC0yMDBxLTI1IDAgLTM3IC0wLjV0LTMxIC0ydC0yOC41IC01LjV0LTIyIC0xMXQtMTggLTE3LjV0LTkuNSAtMjYuNXQtNCAtMzdoLTUwdjMwMCBoMTAwMHYtMzAwek0xMTY3IDUwbC0xNjcgLTEyNXY3NWgtODAwdi03NWwtMTY3IDEyNWwxNjcgMTI1di03NWg4MDB2NzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MjsiIGQ9Ik01MCAxMTAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDgwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MzsiIGQ9Ik0yNTAgMTEwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjUwIDUwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTUwMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg2MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNMTAwIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0zMDAgMzUwdjEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU1OyIgZD0iTTUwIDExMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NjsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCAxMTAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMzUwIDgwMGg4MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zNTAgMjAwaDgwMCBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNTc7IiBkPSJNNDAwIDBoLTEwMHYxMTAwaDEwMHYtMTEwMHpNNTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjY3IDU1MGwtMTY3IC0xMjV2NzVoLTIwMHYxMDBoMjAwdjc1ek01NTAgNTAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTU1MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1ODsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAwaC0xMDB2MTEwMGgxMDB2LTExMDB6TTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEwMCA2MDBoMjAwdi0xMDBoLTIwMHYtNzVsLTE2NyAxMjVsMTY3IDEyNXYtNzV6TTUwIDUwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1OTsiIGQ9Ik03NSAxMDAwaDc1MHEzMSAwIDUzIC0yMnQyMiAtNTN2LTY1MHEwIC0zMSAtMjIgLTUzdC01MyAtMjJoLTc1MHEtMzEgMCAtNTMgMjJ0LTIyIDUzdjY1MHEwIDMxIDIyIDUzdDUzIDIyek0xMjAwIDMwMGwtMzAwIDMwMGwzMDAgMzAwdi02MDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MDsiIGQ9Ik00NCAxMTAwaDExMTJxMTggMCAzMSAtMTN0MTMgLTMxdi0xMDEycTAgLTE4IC0xMyAtMzF0LTMxIC0xM2gtMTExMnEtMTggMCAtMzEgMTN0LTEzIDMxdjEwMTJxMCAxOCAxMyAzMXQzMSAxM3pNMTAwIDEwMDB2LTczN2wyNDcgMTgybDI5OCAtMTMxbC03NCAxNTZsMjkzIDMxOGwyMzYgLTI4OHY1MDBoLTEwMDB6TTM0MiA4ODRxNTYgMCA5NSAtMzl0MzkgLTk0LjV0LTM5IC05NXQtOTUgLTM5LjV0LTk1IDM5LjV0LTM5IDk1dDM5IDk0LjUgdDk1IDM5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjI7IiBkPSJNNjQ4IDExNjlxMTE3IDAgMjE2IC02MHQxNTYuNSAtMTYxdDU3LjUgLTIxOHEwIC0xMTUgLTcwIC0yNThxLTY5IC0xMDkgLTE1OCAtMjI1LjV0LTE0MyAtMTc5LjVsLTU0IC02MnEtOSA4IC0yNS41IDI0LjV0LTYzLjUgNjcuNXQtOTEgMTAzdC05OC41IDEyOHQtOTUuNSAxNDhxLTYwIDEzMiAtNjAgMjQ5cTAgODggMzQgMTY5LjV0OTEuNSAxNDJ0MTM3IDk2LjV0MTY2LjUgMzZ6TTY1Mi41IDk3NHEtOTEuNSAwIC0xNTYuNSAtNjUgdC02NSAtMTU3dDY1IC0xNTYuNXQxNTYuNSAtNjQuNXQxNTYuNSA2NC41dDY1IDE1Ni41dC02NSAxNTd0LTE1Ni41IDY1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxNzN2ODU0cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NDsiIGQ9Ik01NTQgMTI5NXEyMSAtNzIgNTcuNSAtMTQzLjV0NzYgLTEzMHQ4MyAtMTE4dDgyLjUgLTExN3Q3MCAtMTE2dDQ5LjUgLTEyNnQxOC41IC0xMzYuNXEwIC03MSAtMjUuNSAtMTM1dC02OC41IC0xMTF0LTk5IC04MnQtMTE4LjUgLTU0dC0xMjUuNSAtMjNxLTg0IDUgLTE2MS41IDM0dC0xMzkuNSA3OC41dC05OSAxMjV0LTM3IDE2NC41cTAgNjkgMTggMTM2LjV0NDkuNSAxMjYuNXQ2OS41IDExNi41dDgxLjUgMTE3LjV0ODMuNSAxMTkgdDc2LjUgMTMxdDU4LjUgMTQzek0zNDQgNzEwcS0yMyAtMzMgLTQzLjUgLTcwLjV0LTQwLjUgLTEwMi41dC0xNyAtMTIzcTEgLTM3IDE0LjUgLTY5LjV0MzAgLTUydDQxIC0zN3QzOC41IC0yNC41dDMzIC0xNXEyMSAtNyAzMiAtMXQxMyAyMmw2IDM0cTIgMTAgLTIuNSAyMnQtMTMuNSAxOXEtNSA0IC0xNCAxMnQtMjkuNSA0MC41dC0zMi41IDczLjVxLTI2IDg5IDYgMjcxcTIgMTEgLTYgMTFxLTggMSAtMTUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjU7IiBkPSJNMTAwMCAxMDEzbDEwOCAxMTVxMiAxIDUgMnQxMyAydDIwLjUgLTF0MjUgLTkuNXQyOC41IC0yMS41cTIyIC0yMiAyNyAtNDN0MCAtMzJsLTYgLTEwbC0xMDggLTExNXpNMzUwIDExMDBoNDAwcTUwIDAgMTA1IC0xM2wtMTg3IC0xODdoLTM2OHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djE4MmwyMDAgMjAwdi0zMzIgcTAgLTE2NSAtOTMuNSAtMjU3LjV0LTI1Ni41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTEwMDkgODAzbC0zNjIgLTM2MmwtMTYxIC01MGw1NSAxNzBsMzU1IDM1NXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY2OyIgZD0iTTM1MCAxMTAwaDM2MXEtMTY0IC0xNDYgLTIxNiAtMjAwaC0xOTVxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNWwyMDAgMTUzdi0xMDNxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTgyNCAxMDczbDMzOSAtMzAxcTggLTcgOCAtMTcuNXQtOCAtMTcuNWwtMzQwIC0zMDZxLTcgLTYgLTEyLjUgLTR0LTYuNSAxMXYyMDNxLTI2IDEgLTU0LjUgMHQtNzguNSAtNy41dC05MiAtMTcuNXQtODYgLTM1dC03MCAtNTdxMTAgNTkgMzMgMTA4dDUxLjUgODEuNXQ2NSA1OC41dDY4LjUgNDAuNXQ2NyAyNC41dDU2IDEzLjV0NDAgNC41djIxMHExIDEwIDYuNSAxMi41dDEzLjUgLTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY3OyIgZD0iTTM1MCAxMTAwaDM1MHE2MCAwIDEyNyAtMjNsLTE3OCAtMTc3aC0zNDlxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY2OWwyMDAgMjAwdi0yMTlxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTY0MyA2MzlsMzk1IDM5NXE3IDcgMTcuNSA3dDE3LjUgLTdsMTAxIC0xMDFxNyAtNyA3IC0xNy41dC03IC0xNy41bC01MzEgLTUzMnEtNyAtNyAtMTcuNSAtN3QtMTcuNSA3bC0yNDggMjQ4cS03IDcgLTcgMTcuNXQ3IDE3LjVsMTAxIDEwMXE3IDcgMTcuNSA3dDE3LjUgLTdsMTExIC0xMTFxOCAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjg7IiBkPSJNMzE4IDkxOGwyNjQgMjY0cTggOCAxOCA4dDE4IC04bDI2MCAtMjY0cTcgLTggNC41IC0xM3QtMTIuNSAtNWgtMTcwdi0yMDBoMjAwdjE3M3EwIDEwIDUgMTJ0MTMgLTVsMjY0IC0yNjBxOCAtNyA4IC0xNy41dC04IC0xNy41bC0yNjQgLTI2NXEtOCAtNyAtMTMgLTV0LTUgMTJ2MTczaC0yMDB2LTIwMGgxNzBxMTAgMCAxMi41IC01dC00LjUgLTEzbC0yNjAgLTI2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTI2NCAyNjRxLTggOCAtNS41IDEzIHQxMi41IDVoMTc1djIwMGgtMjAwdi0xNzNxMCAtMTAgLTUgLTEydC0xMyA1bC0yNjQgMjY1cS04IDcgLTggMTcuNXQ4IDE3LjVsMjY0IDI2MHE4IDcgMTMgNXQ1IC0xMnYtMTczaDIwMHYyMDBoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY5OyIgZD0iTTI1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM4bDQ2NCA0NTNxMTUgMTQgMjUuNSAxMHQxMC41IC0yNXYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcwOyIgZD0iTTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di0xMDAwcTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcxOyIgZD0iTTEyMDAgMTA1MHYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ5MiA0ODBxLTE1IDE0IC0xNSAzNXQxNSAzNWw0OTIgNDgwcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV2LTQzOGw0NjQgNDUzcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MjsiIGQ9Ik0yNDMgMTA3NGw4MTQgLTQ5OHExOCAtMTEgMTggLTI2dC0xOCAtMjZsLTgxNCAtNDk4cS0xOCAtMTEgLTMwLjUgLTR0LTEyLjUgMjh2MTAwMHEwIDIxIDEyLjUgMjh0MzAuNSAtNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDczOyIgZD0iTTI1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJNMTEwMCA5NTB2LTgwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY4MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc1OyIgZD0iTTUwMCA2MTJ2NDM4cTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0OTIgLTQ4MHExNSAtMTQgMTUgLTM1dC0xNSAtMzVsLTQ5MiAtNDgwcS0xNSAtMTQgLTI1LjUgLTEwdC0xMC41IDI1djQzOGwtNDY0IC00NTNxLTE1IC0xNCAtMjUuNSAtMTB0LTEwLjUgMjV2MTAwMHEwIDIxIDEwLjUgMjV0MjUuNSAtMTB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NjsiIGQ9Ik0xMDQ4IDExMDJsMTAwIDFxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNWw1IC0xMDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41bC0xMDAgLTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41bC0yIDQzN2wtNDYzIC00NTRxLTE0IC0xNSAtMjQuNSAtMTAuNXQtMTAuNSAyNS41bC0yIDQzN2wtNDYyIC00NTVxLTE1IC0xNCAtMjUuNSAtOS41dC0xMC41IDI0LjVsLTUgMTAwMHEwIDIxIDEwLjUgMjUuNXQyNS41IC0xMC41bDQ2NiAtNDUwIGwtMiA0MzhxMCAyMCAxMC41IDI0LjV0MjUuNSAtOS41bDQ2NiAtNDUxbC0yIDQzOHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NzsiIGQ9Ik04NTAgMTEwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDM4bC00NjQgLTQ1M3EtMTUgLTE0IC0yNS41IC0xMHQtMTAuNSAyNXYxMDAwcTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0NjQgLTQ1M3Y0MzhxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzg7IiBkPSJNNjg2IDEwODFsNTAxIC01NDBxMTUgLTE1IDEwLjUgLTI2dC0yNi41IC0xMWgtMTA0MnEtMjIgMCAtMjYuNSAxMXQxMC41IDI2bDUwMSA1NDBxMTUgMTUgMzYgMTV0MzYgLTE1ek0xNTAgNDAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc5OyIgZD0iTTg4NSA5MDBsLTM1MiAtMzUzbDM1MiAtMzUzbC0xOTcgLTE5OGwtNTUyIDU1Mmw1NTIgNTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODA7IiBkPSJNMTA2NCA1NDdsLTU1MSAtNTUxbC0xOTggMTk4bDM1MyAzNTNsLTM1MyAzNTNsMTk4IDE5OHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NTAgOTAwaC0xMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTE1MGgtMTUwIHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAwcTAgLTIxIDE0LjUgLTM1LjV0MzUuNSAtMTQuNWgxNTB2LTE1MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxNTBoMTUwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTE1MHYxNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4MjsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNODUwIDcwMGgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03NDEuNSA5MTNxLTEyLjUgMCAtMjEuNSAtOWwtMTIwIC0xMjBsLTEyMCAxMjBxLTkgOSAtMjEuNSA5IHQtMjEuNSAtOWwtMTQxIC0xNDFxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxMjAgLTEyMGwtMTIwIC0xMjBxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxNDEgLTE0MXE5IC05IDIxLjUgLTl0MjEuNSA5bDEyMCAxMjBsMTIwIC0xMjBxOSAtOSAyMS41IC05dDIxLjUgOWwxNDEgMTQxcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTIwIDEyMGwxMjAgMTIwcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTQxIDE0MXEtOSA5IC0yMS41IDl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NDsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNTQ2IDYyM2wtODQgODVxLTcgNyAtMTcuNSA3dC0xOC41IC03bC0xMzkgLTEzOXEtNyAtOCAtNyAtMTh0NyAtMTggbDI0MiAtMjQxcTcgLTggMTcuNSAtOHQxNy41IDhsMzc1IDM3NXE3IDcgNyAxNy41dC03IDE4LjVsLTEzOSAxMzlxLTcgNyAtMTcuNSA3dC0xNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODU7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTU4OCA5NDFxLTI5IDAgLTU5IC01LjV0LTYzIC0yMC41dC01OCAtMzguNXQtNDEuNSAtNjN0LTE2LjUgLTg5LjUgcTAgLTI1IDIwIC0yNWgxMzFxMzAgLTUgMzUgMTFxNiAyMCAyMC41IDI4dDQ1LjUgOHEyMCAwIDMxLjUgLTEwLjV0MTEuNSAtMjguNXEwIC0yMyAtNyAtMzR0LTI2IC0xOHEtMSAwIC0xMy41IC00dC0xOS41IC03LjV0LTIwIC0xMC41dC0yMiAtMTd0LTE4LjUgLTI0dC0xNS41IC0zNXQtOCAtNDZxLTEgLTggNS41IC0xNi41dDIwLjUgLTguNWgxNzNxNyAwIDIyIDh0MzUgMjh0MzcuNSA0OHQyOS41IDc0dDEyIDEwMHEwIDQ3IC0xNyA4MyB0LTQyLjUgNTd0LTU5LjUgMzQuNXQtNjQgMTh0LTU5IDQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NzUgMTAwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNSB0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTY3NSA3MDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNzV2LTIwMGgtNzVxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di01MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDM1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djUwcTAgMTAgLTcuNSAxNy41IHQtMTcuNSA3LjVoLTc1djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NzsiIGQ9Ik01MjUgMTIwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xOTRxMTAzIC0yNyAxNzguNSAtMTAyLjV0MTAyLjUgLTE3OC41aDE5NHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE5NHEtMjcgLTEwMyAtMTAyLjUgLTE3OC41dC0xNzguNSAtMTAyLjV2LTE5NHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE5NCBxLTEwMyAyNyAtMTc4LjUgMTAyLjV0LTEwMi41IDE3OC41aC0xOTRxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxOTRxMjcgMTAzIDEwMi41IDE3OC41dDE3OC41IDEwMi41djE5NHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek03MDAgODkzdi0xNjhxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNjhxLTY4IC0yMyAtMTE5IC03NCB0LTc0IC0xMTloMTY4cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTY4cTIzIC02OCA3NCAtMTE5dDExOSAtNzR2MTY4cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTY4cTY4IDIzIDExOSA3NHQ3NCAxMTloLTE2OHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDE2OCBxLTIzIDY4IC03NCAxMTl0LTExOSA3NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg4OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek03NTkgODIzbDY0IC02NHE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTEyNCAtMTI0bDEyNCAtMTI0cTcgLTcgNyAtMTcuNXQtNyAtMTcuNWwtNjQgLTY0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTEyNCAxMjRsLTEyNCAtMTI0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTY0IDY0IHEtNyA3IC03IDE3LjV0NyAxNy41bDEyNCAxMjRsLTEyNCAxMjRxLTcgNyAtNyAxNy41dDcgMTcuNWw2NCA2NHE3IDcgMTcuNSA3dDE3LjUgLTdsMTI0IC0xMjRsMTI0IDEyNHE3IDcgMTcuNSA3dDE3LjUgLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNzgyIDc4OGwxMDYgLTEwNnE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTMyMCAtMzIxcS04IC03IC0xOCAtN3QtMTggN2wtMjAyIDIwM3EtOCA3IC04IDE3LjV0OCAxNy41bDEwNiAxMDZxNyA4IDE3LjUgOHQxNy41IC04bDc5IC03OWwxOTcgMTk3cTcgNyAxNy41IDd0MTcuNSAtN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkwOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjVxMCAtMTIwIDY1IC0yMjUgbDU4NyA1ODdxLTEwNSA2NSAtMjI1IDY1ek05NjUgODE5bC01ODQgLTU4NHExMDQgLTYyIDIxOSAtNjJxMTE2IDAgMjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjVxMCAxMTUgLTYyIDIxOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTM5IDU4Mmw1MjIgNDI3cTE2IDEzIDI3LjUgOHQxMS41IC0yNnYtMjkxaDU1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC01NTB2LTI5MXEwIC0yMSAtMTEuNSAtMjZ0LTI3LjUgOGwtNTIyIDQyN3EtMTYgMTMgLTE2IDMydDE2IDMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNNjM5IDEwMDlsNTIyIC00MjdxMTYgLTEzIDE2IC0zMnQtMTYgLTMybC01MjIgLTQyN3EtMTYgLTEzIC0yNy41IC04dC0xMS41IDI2djI5MWgtNTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDU1MHYyOTFxMCAyMSAxMS41IDI2dDI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5MzsiIGQ9Ik02ODIgMTE2MWw0MjcgLTUyMnExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTI5MXYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djU1MGgtMjkxcS0yMSAwIC0yNiAxMS41dDggMjcuNWw0MjcgNTIycTEzIDE2IDMyIDE2dDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk0OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUwaDI5MXEyMSAwIDI2IC0xMS41dC04IC0yNy41bC00MjcgLTUyMnEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC00MjcgNTIycS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMjkxdjU1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NTsiIGQ9Ik02MzkgMTEwOWw1MjIgLTQyN3ExNiAtMTMgMTYgLTMydC0xNiAtMzJsLTUyMiAtNDI3cS0xNiAtMTMgLTI3LjUgLTh0LTExLjUgMjZ2MjkxcS05NCAtMiAtMTgyIC0yMHQtMTcwLjUgLTUydC0xNDcgLTkyLjV0LTEwMC41IC0xMzUuNXE1IDEwNSAyNyAxOTMuNXQ2Ny41IDE2N3QxMTMgMTM1dDE2NyA5MS41dDIyNS41IDQydjI2MnEwIDIxIDExLjUgMjZ0MjcuNSAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTg1MCAxMjAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzAwcTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtOTQgOTRsLTI0OSAtMjQ5cS04IC03IC0xOCAtN3QtMTggN2wtMTA2IDEwNnEtNyA4IC03IDE4dDcgMThsMjQ5IDI0OWwtOTQgOTRxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjV6TTM1MCAwaC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djMwMHEwIDIxIDEwLjUgMjV0MjQuNSAtMTBsOTQgLTk0bDI0OSAyNDkgcTggNyAxOCA3dDE4IC03bDEwNiAtMTA2cTcgLTggNyAtMTh0LTcgLTE4bC0yNDkgLTI0OWw5NCAtOTRxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTEwMTQgMTEyMGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMjQ5IC0yNDlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMjQ5IDI0OXE4IDcgMTggN3QxOCAtN3pNMjUwIDYwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMjQ5IC0yNDlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwyNDkgMjQ5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03MDQgOTAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNSB0MzcuNSAtMTQuNWg1NHEyMCAwIDM3LjUgMTQuNXQyMS41IDM0LjVsNTggMzAycTQgMjAgLTggMzQuNXQtMzIgMTQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTI2MCAxMjAwcTkgMCAxOSAtMnQxNSAtNGw1IC0ycTIyIC0xMCA0NCAtMjNsMTk2IC0xMThxMjEgLTEzIDM2IC0yNHEyOSAtMjEgMzcgLTEycTExIDEzIDQ5IDM1bDE5NiAxMThxMjIgMTMgNDUgMjNxMTcgNyAzOCA3cTIzIDAgNDcgLTE2LjV0MzcgLTMzLjVsMTMgLTE2cTE0IC0yMSAxOCAtNDVsMjUgLTEyM2w4IC00NHExIC05IDguNSAtMTQuNXQxNy41IC01LjVoNjFxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MCBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE3NWgtNDAwdjMwMGgtMjAwdi0zMDBoLTQwMHYxNzVxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNjFxMTEgMCAxOCAzdDcgOHEwIDQgOSA1MmwyNSAxMjhxNSAyNSAxOSA0NXEyIDMgNSA3dDEzLjUgMTV0MjEuNSAxOS41dDI2LjUgMTUuNSB0MjkuNSA3ek05MTUgMTA3OWwtMTY2IC0xNjJxLTcgLTcgLTUgLTEydDEyIC01aDIxOXExMCAwIDE1IDd0MiAxN2wtNTEgMTQ5cS0zIDEwIC0xMSAxMnQtMTUgLTZ6TTQ2MyA5MTdsLTE3NyAxNTdxLTggNyAtMTYgNXQtMTEgLTEybC01MSAtMTQzcS0zIC0xMCAyIC0xN3QxNSAtN2gyMzFxMTEgMCAxMi41IDV0LTUuNSAxMnpNNTAwIDBoLTM3NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWg0MDB2LTQwMHpNMTEwMCA0MDB2LTM3NSBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNzV2NDAwaDQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAzOyIgZD0iTTExNjUgMTE5MHE4IDMgMjEgLTYuNXQxMyAtMTcuNXEtMiAtMTc4IC0yNC41IC0zMjMuNXQtNTUuNSAtMjQ1LjV0LTg3IC0xNzQuNXQtMTAyLjUgLTExOC41dC0xMTggLTY4LjV0LTExOC41IC0zM3QtMTIwIC00LjV0LTEwNSA5LjV0LTkwIDE2LjVxLTYxIDEyIC03OCAxMXEtNCAxIC0xMi41IDB0LTM0IC0xNC41dC01Mi41IC00MC41bC0xNTMgLTE1M3EtMjYgLTI0IC0zNyAtMTQuNXQtMTEgNDMuNXEwIDY0IDQyIDEwMnE4IDggNTAuNSA0NSB0NjYuNSA1OHExOSAxNyAzNSA0N3QxMyA2MXEtOSA1NSAtMTAgMTAyLjV0NyAxMTF0MzcgMTMwdDc4IDEyOS41cTM5IDUxIDgwIDg4dDg5LjUgNjMuNXQ5NC41IDQ1dDExMy41IDM2dDEyOSAzMXQxNTcuNSAzN3QxODIgNDcuNXpNMTExNiAxMDk4cS04IDkgLTIyLjUgLTN0LTQ1LjUgLTUwcS0zOCAtNDcgLTExOSAtMTAzLjV0LTE0MiAtODkuNWwtNjIgLTMzcS01NiAtMzAgLTEwMiAtNTd0LTEwNCAtNjh0LTEwMi41IC04MC41dC04NS41IC05MSB0LTY0IC0xMDQuNXEtMjQgLTU2IC0zMSAtODZ0MiAtMzJ0MzEuNSAxNy41dDU1LjUgNTkuNXEyNSAzMCA5NCA3NS41dDEyNS41IDc3LjV0MTQ3LjUgODFxNzAgMzcgMTE4LjUgNjl0MTAyIDc5LjV0OTkgMTExdDg2LjUgMTQ4LjVxMjIgNTAgMjQgNjB0LTYgMTl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNDsiIGQ9Ik02NTMgMTIzMXEtMzkgLTY3IC01NC41IC0xMzF0LTEwLjUgLTExNC41dDI0LjUgLTk2LjV0NDcuNSAtODB0NjMuNSAtNjIuNXQ2OC41IC00Ni41dDY1IC0zMHEtNCA3IC0xNy41IDM1dC0xOC41IDM5LjV0LTE3IDM5LjV0LTE3IDQzdC0xMyA0MnQtOS41IDQ0LjV0LTIgNDJ0NCA0M3QxMy41IDM5dDIzIDM4LjVxOTYgLTQyIDE2NSAtMTA3LjV0MTA1IC0xMzh0NTIgLTE1NnQxMyAtMTU5dC0xOSAtMTQ5LjVxLTEzIC01NSAtNDQgLTEwNi41IHQtNjggLTg3dC03OC41IC02NC41dC03Mi41IC00NXQtNTMgLTIycS03MiAtMjIgLTEyNyAtMTFxLTMxIDYgLTEzIDE5cTYgMyAxNyA3cTEzIDUgMzIuNSAyMXQ0MSA0NHQzOC41IDYzLjV0MjEuNSA4MS41dC02LjUgOTQuNXQtNTAgMTA3dC0xMDQgMTE1LjVxMTAgLTEwNCAtMC41IC0xODl0LTM3IC0xNDAuNXQtNjUgLTkzdC04NCAtNTJ0LTkzLjUgLTExdC05NSAyNC41cS04MCAzNiAtMTMxLjUgMTE0dC01My41IDE3MXEtMiAyMyAwIDQ5LjUgdDQuNSA1Mi41dDEzLjUgNTZ0MjcuNSA2MHQ0NiA2NC41dDY5LjUgNjguNXEtOCAtNTMgLTUgLTEwMi41dDE3LjUgLTkwdDM0IC02OC41dDQ0LjUgLTM5dDQ5IC0ycTMxIDEzIDM4LjUgMzZ0LTQuNSA1NXQtMjkgNjQuNXQtMzYgNzV0LTI2IDc1LjVxLTE1IDg1IDIgMTYxLjV0NTMuNSAxMjguNXQ4NS41IDkyLjV0OTMuNSA2MXQ4MS41IDI1LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNTsiIGQ9Ik02MDAgMTA5NHE4MiAwIDE2MC41IC0yMi41dDE0MCAtNTl0MTE2LjUgLTgyLjV0OTQuNSAtOTV0NjggLTk1dDQyLjUgLTgyLjV0MTQgLTU3LjV0LTE0IC01Ny41dC00MyAtODIuNXQtNjguNSAtOTV0LTk0LjUgLTk1dC0xMTYuNSAtODIuNXQtMTQwIC01OXQtMTU5LjUgLTIyLjV0LTE1OS41IDIyLjV0LTE0MCA1OXQtMTE2LjUgODIuNXQtOTQuNSA5NXQtNjguNSA5NXQtNDMgODIuNXQtMTQgNTcuNXQxNCA1Ny41dDQyLjUgODIuNXQ2OCA5NSB0OTQuNSA5NXQxMTYuNSA4Mi41dDE0MCA1OXQxNjAuNSAyMi41ek04ODggODI5cS0xNSAxNSAtMTggMTJ0NSAtMjJxMjUgLTU3IDI1IC0xMTlxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0LTg4IDIxMnEwIDU5IDIzIDExNHE4IDE5IDQuNSAyMnQtMTcuNSAtMTJxLTcwIC02OSAtMTYwIC0xODRxLTEzIC0xNiAtMTUgLTQwLjV0OSAtNDIuNXEyMiAtMzYgNDcgLTcxdDcwIC04MnQ5Mi41IC04MXQxMTMgLTU4LjV0MTMzLjUgLTI0LjUgdDEzMy41IDI0dDExMyA1OC41dDkyLjUgODEuNXQ3MCA4MS41dDQ3IDcwLjVxMTEgMTggOSA0Mi41dC0xNCA0MS41cS05MCAxMTcgLTE2MyAxODl6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wzNSAzNHExNCAxNSAxMi41IDMzLjV0LTE2LjUgMzMuNXEtNDQgNDQgLTg5IDExN3EtMTEgMTggLTI4IDIwdC0zMiAtMTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNjsiIGQ9Ik01OTIgMGgtMTQ4bDMxIDEyMHEtOTEgMjAgLTE3NS41IDY4LjV0LTE0My41IDEwNi41dC0xMDMuNSAxMTl0LTY2LjUgMTEwdC0yMiA3NnEwIDIxIDE0IDU3LjV0NDIuNSA4Mi41dDY4IDk1dDk0LjUgOTV0MTE2LjUgODIuNXQxNDAgNTl0MTYwLjUgMjIuNXE2MSAwIDEyNiAtMTVsMzIgMTIxaDE0OHpNOTQ0IDc3MGw0NyAxODFxMTA4IC04NSAxNzYuNSAtMTkydDY4LjUgLTE1OXEwIC0yNiAtMTkuNSAtNzF0LTU5LjUgLTEwMnQtOTMgLTExMiB0LTEyOSAtMTA0LjV0LTE1OCAtNzUuNWw0NiAxNzNxNzcgNDkgMTM2IDExN3Q5NyAxMzFxMTEgMTggOSA0Mi41dC0xNCA0MS41cS01NCA3MCAtMTA3IDEzMHpNMzEwIDgyNHEtNzAgLTY5IC0xNjAgLTE4NHEtMTMgLTE2IC0xNSAtNDAuNXQ5IC00Mi41cTE4IC0zMCAzOSAtNjB0NTcgLTcwLjV0NzQgLTczdDkwIC02MXQxMDUgLTQxLjVsNDEgMTU0cS0xMDcgMTggLTE3OC41IDEwMS41dC03MS41IDE5My41cTAgNTkgMjMgMTE0cTggMTkgNC41IDIyIHQtMTcuNSAtMTJ6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wxMiAxMWwyMiA4NmwtMyA0cS00NCA0NCAtODkgMTE3cS0xMSAxOCAtMjggMjB0LTMyIC0xMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTA3OyIgZD0iTS05MCAxMDBsNjQyIDEwNjZxMjAgMzEgNDggMjguNXQ0OCAtMzUuNWw2NDIgLTEwNTZxMjEgLTMyIDcuNSAtNjcuNXQtNTAuNSAtMzUuNWgtMTI5NHEtMzcgMCAtNTAuNSAzNHQ3LjUgNjZ6TTE1NSAyMDBoMzQ1djc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoMzQ1bC00NDUgNzIzek00OTYgNzAwaDIwOHEyMCAwIDMyIC0xNC41dDggLTM0LjVsLTU4IC0yNTIgcS00IC0yMCAtMjEuNSAtMzQuNXQtMzcuNSAtMTQuNWgtNTRxLTIwIDAgLTM3LjUgMTQuNXQtMjEuNSAzNC41bC01OCAyNTJxLTQgMjAgOCAzNC41dDMyIDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwODsiIGQ9Ik02NTAgMTIwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0xNCAyNiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2LTI2M3ExMDAgLTkzIDEwMCAtMTEzdi02NHEwIC0yMSAtMTMgLTI5dC0zMiAxbC0yMDUgMTI4bC0yMDUgLTEyOHEtMTkgLTkgLTMyIC0xdC0xMyAyOXY2NHEwIDIwIDEwMCAxMTN2MjYzbC0zNTkgLTI0OXEtMTcgLTEyIC0yOSAtNS41dC0xMiAyNi41djQxIHEwIDIwIDExIDQ0LjV0MjYgMzguNWwzNjMgMzI1djMzOXEwIDYyIDQ0IDEwNnQxMDYgNDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwOTsiIGQ9Ik04NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTExMDB2MTUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMTAwIDgwMHYtNzUwcTAgLTIxIC0xNC41IC0zNS41IHQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NzUwaDExMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTcwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTkwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA0MDAgdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek0xMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek0zMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek01MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTA7IiBkPSJNMTEzNSAxMTY1bDI0OSAtMjMwcTE1IC0xNCAxNSAtMzV0LTE1IC0zNWwtMjQ5IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC0xNTlsLTYwMCAtNjAwaC0yOTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjA5bDYwMCA2MDBoMjQxdjE1MHEwIDIxIDEwLjUgMjV0MjQuNSAtMTB6TTUyMiA4MTlsLTE0MSAtMTQxbC0xMjIgMTIyaC0yMDlxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI5MXpNMTEzNSA1NjVsMjQ5IC0yMzBxMTUgLTE0IDE1IC0zNXQtMTUgLTM1bC0yNDkgLTIzMHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYxNTBoLTI0MWwtMTgxIDE4MWwxNDEgMTQxbDEyMiAtMTIyaDE1OXYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTE7IiBkPSJNMTAwIDExMDBoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC01OTZsLTMwNCAtMzAwdjMwMGgtMTAwcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTMwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMzAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTExMDAgODAwdi0zMDBxMCAtNDEgLTMgLTc3LjV0LTE1IC04OS41dC0zMiAtOTZ0LTU4IC04OXQtODkgLTc3dC0xMjkgLTUxdC0xNzQgLTIwdC0xNzQgMjAgdC0xMjkgNTF0LTg5IDc3dC01OCA4OXQtMzIgOTZ0LTE1IDg5LjV0LTMgNzcuNXYzMDBoMzAwdi0yNTB2LTI3di00Mi41dDEuNSAtNDF0NSAtMzh0MTAgLTM1dDE2LjUgLTMwdDI1LjUgLTI0LjV0MzUgLTE5dDQ2LjUgLTEydDYwIC00dDYwIDQuNXQ0Ni41IDEyLjV0MzUgMTkuNXQyNSAyNS41dDE3IDMwLjV0MTAgMzV0NSAzOHQyIDQwLjV0LTAuNSA0MnYyNXYyNTBoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTM7IiBkPSJNMTEwMCA0MTFsLTE5OCAtMTk5bC0zNTMgMzUzbC0zNTMgLTM1M2wtMTk3IDE5OWw1NTEgNTUxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTQ7IiBkPSJNMTEwMSA3ODlsLTU1MCAtNTUxbC01NTEgNTUxbDE5OCAxOTlsMzUzIC0zNTNsMzUzIDM1M3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE1OyIgZD0iTTQwNCAxMDAwaDc0NnEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUxaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtMjMwIC0yNDlxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI0OXEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNWgxNTB2NDAxaC0zODF6TTEzNSA5ODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi00MDBoMzg1bDIxNSAtMjAwaC03NTBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXY1NTBoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7IiBkPSJNNTYgMTIwMGg5NHExNyAwIDMxIC0xMXQxOCAtMjdsMzggLTE2Mmg4OTZxMjQgMCAzOSAtMTguNXQxMCAtNDIuNWwtMTAwIC00NzVxLTUgLTIxIC0yNyAtNDIuNXQtNTUgLTIxLjVoLTYzM2w0OCAtMjAwaDUzNXEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41dC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MGgtMzAwdi01MCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaC0zMXEtMTggMCAtMzIuNSAxMHQtMjAuNSAxOWwtNSAxMGwtMjAxIDk2MWgtNTRxLTIwIDAgLTM1IDE0LjV0LTE1IDM1LjV0MTUgMzUuNXQzNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTc7IiBkPSJNMTIwMCAxMDAwdi0xMDBoLTEyMDB2MTAwaDIwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHpNMCA4MDBoMTIwMHYtODAwaC0xMjAwdjgwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTIwMCA4MDBsLTIwMCAtNDAwdjYwMGgyMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDMwMHE0MiAwIDcxIC0yOS41dDI5IC03MC41aDUwMHYtMjAwaC0xMDAwek0xNTAwIDcwMGwtMzAwIC03MDBoLTEyMDBsMzAwIDcwMGgxMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTk7IiBkPSJNNjM1IDExODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi02MDFoMTUwcTIxIDAgMjUgLTEwLjV0LTEwIC0yNC41bC0yMzAgLTI0OXEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjQ5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41aDE1MHY2MDFoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjA7IiBkPSJNOTM2IDg2NGwyNDkgLTIyOXExNCAtMTUgMTQgLTM1LjV0LTE0IC0zNS41bC0yNDkgLTIyOXEtMTUgLTE1IC0yNS41IC0xMC41dC0xMC41IDI0LjV2MTUxaC02MDB2LTE1MXEwIC0yMCAtMTAuNSAtMjQuNXQtMjUuNSAxMC41bC0yNDkgMjI5cS0xNCAxNSAtMTQgMzUuNXQxNCAzNS41bDI0OSAyMjlxMTUgMTUgMjUuNSAxMC41dDEwLjUgLTI1LjV2LTE0OWg2MDB2MTQ5cTAgMjEgMTAuNSAyNS41dDI1LjUgLTEwLjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0xMTY5IDQwMGwtMTcyIDczMnEtNSAyMyAtMjMgNDUuNXQtMzggMjIuNWgtNjcycS0yMCAwIC0zOCAtMjB0LTIzIC00MWwtMTcyIC03MzloMTEzOHpNMTEwMCAzMDBoLTEwMDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTEwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoMTAwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek04MDAgMTAwdjEwMGgxMDB2LTEwMGgtMTAwIHpNMTAwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMjsiIGQ9Ik0xMTUwIDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTg1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUuNSAxNC41dC0xNC41IDM1LjV2ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTAwMCAyMDBsLTY3NSAyMDBoLTM4bDQ3IC0yNzZxMyAtMTYgLTUuNSAtMjB0LTI5LjUgLTRoLTdoLTg0cS0yMCAwIC0zNC41IDE0dC0xOC41IDM1cS01NSAzMzcgLTU1IDM1MXYyNTB2NnEwIDE2IDEgMjMuNXQ2LjUgMTQgdDE3LjUgNi41aDIwMGw2NzUgMjUwdi04NTB6TTAgNzUwdi0yNTBxLTQgMCAtMTEgMC41dC0yNCA2dC0zMCAxNXQtMjQgMzB0LTExIDQ4LjV2NTBxMCAyNiAxMC41IDQ2dDI1IDMwdDI5IDE2dDI1LjUgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTU1MyAxMjAwaDk0cTIwIDAgMjkgLTEwLjV0MyAtMjkuNWwtMTggLTM3cTgzIC0xOSAxNDQgLTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMTkgMCAzMyAtMTQuNXQxNCAtMzV0LTEzIC00MC41dC0zMSAtMjdxLTggLTQgLTIzIC05LjV0LTY1IC0xOS41dC0xMDMgLTI1dC0xMzIuNSAtMjB0LTE1OC41IC05cS01NyAwIC0xMTUgNXQtMTA0IDEydC04OC41IDE1LjV0LTczLjUgMTcuNXQtNTQuNSAxNnQtMzUuNSAxMmwtMTEgNCBxLTE4IDggLTMxIDI4dC0xMyA0MC41dDE0IDM1dDMzIDE0LjVoMTdsMTE4IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMy41IDMydDI4LjUgMTN6TTQ5OCAxMTBxNTAgLTYgMTAyIC02cTUzIDAgMTAyIDZxLTEyIC00OSAtMzkuNSAtNzkuNXQtNjIuNSAtMzAuNXQtNjMgMzAuNXQtMzkgNzkuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI0OyIgZD0iTTgwMCA5NDZsMjI0IDc4bC03OCAtMjI0bDIzNCAtNDVsLTE4MCAtMTU1bDE4MCAtMTU1bC0yMzQgLTQ1bDc4IC0yMjRsLTIyNCA3OGwtNDUgLTIzNGwtMTU1IDE4MGwtMTU1IC0xODBsLTQ1IDIzNGwtMjI0IC03OGw3OCAyMjRsLTIzNCA0NWwxODAgMTU1bC0xODAgMTU1bDIzNCA0NWwtNzggMjI0bDIyNCAtNzhsNDUgMjM0bDE1NSAtMTgwbDE1NSAxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNTsiIGQ9Ik02NTAgMTIwMGg1MHE0MCAwIDcwIC00MC41dDMwIC04NC41di0xNTBsLTI4IC0xMjVoMzI4cTQwIDAgNzAgLTQwLjV0MzAgLTg0LjV2LTEwMHEwIC00NSAtMjkgLTc0bC0yMzggLTM0NHEtMTYgLTI0IC0zOCAtNDAuNXQtNDUgLTE2LjVoLTI1MHEtNyAwIC00MiAyNXQtNjYgNTBsLTMxIDI1aC02MXEtNDUgMCAtNzIuNSAxOHQtMjcuNSA1N3Y0MDBxMCAzNiAyMCA2M2wxNDUgMTk2bDk2IDE5OHExMyAyOCAzNy41IDQ4dDUxLjUgMjB6IE02NTAgMTEwMGwtMTAwIC0yMTJsLTE1MCAtMjEzdi0zNzVoMTAwbDEzNiAtMTAwaDIxNGwyNTAgMzc1djEyNWgtNDUwbDUwIDIyNXYxNzVoLTUwek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI2OyIgZD0iTTYwMCAxMTAwaDI1MHEyMyAwIDQ1IC0xNi41dDM4IC00MC41bDIzOCAtMzQ0cTI5IC0yOSAyOSAtNzR2LTEwMHEwIC00NCAtMzAgLTg0LjV0LTcwIC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0xNTBxMCAtNDQgLTMwIC04NC41dC03MCAtNDAuNWgtNTBxLTI3IDAgLTUxLjUgMjB0LTM3LjUgNDhsLTk2IDE5OGwtMTQ1IDE5NnEtMjAgMjcgLTIwIDYzdjQwMHEwIDM5IDI3LjUgNTd0NzIuNSAxOGg2MXExMjQgMTAwIDEzOSAxMDB6IE01MCAxMDAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTYzNiAxMDAwbC0xMzYgLTEwMGgtMTAwdi0zNzVsMTUwIC0yMTNsMTAwIC0yMTJoNTB2MTc1bC01MCAyMjVoNDUwdjEyNWwtMjUwIDM3NWgtMjE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjc7IiBkPSJNMzU2IDg3M2wzNjMgMjMwcTMxIDE2IDUzIC02bDExMCAtMTEycTEzIC0xMyAxMy41IC0zMnQtMTEuNSAtMzRsLTg0IC0xMjFoMzAycTg0IDAgMTM4IC0zOHQ1NCAtMTEwdC01NSAtMTExdC0xMzkgLTM5aC0xMDZsLTEzMSAtMzM5cS02IC0yMSAtMTkuNSAtNDF0LTI4LjUgLTIwaC0zNDJxLTcgMCAtOTAgODF0LTgzIDk0djUyNXEwIDE3IDE0IDM1LjV0MjggMjguNXpNNDAwIDc5MnYtNTAzbDEwMCAtODloMjkzbDEzMSAzMzkgcTYgMjEgMTkuNSA0MXQyOC41IDIwaDIwM3EyMSAwIDMwLjUgMjV0MC41IDUwdC0zMSAyNWgtNDU2aC03aC02aC01LjV0LTYgMC41dC01IDEuNXQtNSAydC00IDIuNXQtNCA0dC0yLjUgNC41cS0xMiAyNSA1IDQ3bDE0NiAxODNsLTg2IDgzek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwIHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyODsiIGQ9Ik00NzUgMTEwM2wzNjYgLTIzMHEyIC0xIDYgLTMuNXQxNCAtMTAuNXQxOCAtMTYuNXQxNC41IC0yMHQ2LjUgLTIyLjV2LTUyNXEwIC0xMyAtODYgLTk0dC05MyAtODFoLTM0MnEtMTUgMCAtMjguNSAyMHQtMTkuNSA0MWwtMTMxIDMzOWgtMTA2cS04NSAwIC0xMzkuNSAzOXQtNTQuNSAxMTF0NTQgMTEwdDEzOCAzOGgzMDJsLTg1IDEyMXEtMTEgMTUgLTEwLjUgMzR0MTMuNSAzMmwxMTAgMTEycTIyIDIyIDUzIDZ6TTM3MCA5NDVsMTQ2IC0xODMgcTE3IC0yMiA1IC00N3EtMiAtMiAtMy41IC00LjV0LTQgLTR0LTQgLTIuNXQtNSAtMnQtNSAtMS41dC02IC0wLjVoLTZoLTYuNWgtNmgtNDc1di0xMDBoMjIxcTE1IDAgMjkgLTIwdDIwIC00MWwxMzAgLTMzOWgyOTRsMTA2IDg5djUwM2wtMzQyIDIzNnpNMTA1MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjUgdjUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyOTsiIGQ9Ik01NTAgMTI5NHE3MiAwIDExMSAtNTV0MzkgLTEzOXYtMTA2bDMzOSAtMTMxcTIxIC02IDQxIC0xOS41dDIwIC0yOC41di0zNDJxMCAtNyAtODEgLTkwdC05NCAtODNoLTUyNXEtMTcgMCAtMzUuNSAxNHQtMjguNSAyOGwtOSAxNGwtMjMwIDM2M3EtMTYgMzEgNiA1M2wxMTIgMTEwcTEzIDEzIDMyIDEzLjV0MzQgLTExLjVsMTIxIC04NHYzMDJxMCA4NCAzOCAxMzh0MTEwIDU0ek02MDAgOTcydjIwM3EwIDIxIC0yNSAzMC41dC01MCAwLjUgdC0yNSAtMzF2LTQ1NnYtN3YtNnYtNS41dC0wLjUgLTZ0LTEuNSAtNXQtMiAtNXQtMi41IC00dC00IC00dC00LjUgLTIuNXEtMjUgLTEyIC00NyA1bC0xODMgMTQ2bC04MyAtODZsMjM2IC0zMzloNTAzbDg5IDEwMHYyOTNsLTMzOSAxMzFxLTIxIDYgLTQxIDE5LjV0LTIwIDI4LjV6TTQ1MCAyMDBoNTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTUwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMDsiIGQ9Ik0zNTAgMTEwMGg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41ek02MDAgMzA2di0xMDZxMCAtODQgLTM5IC0xMzl0LTExMSAtNTV0LTExMCA1NHQtMzggMTM4djMwMmwtMTIxIC04NHEtMTUgLTEyIC0zNCAtMTEuNXQtMzIgMTMuNWwtMTEyIDExMCBxLTIyIDIyIC02IDUzbDIzMCAzNjNxMSAyIDMuNSA2dDEwLjUgMTMuNXQxNi41IDE3dDIwIDEzLjV0MjIuNSA2aDUyNXExMyAwIDk0IC04M3Q4MSAtOTB2LTM0MnEwIC0xNSAtMjAgLTI4LjV0LTQxIC0xOS41ek0zMDggOTAwbC0yMzYgLTMzOWw4MyAtODZsMTgzIDE0NnEyMiAxNyA0NyA1cTIgLTEgNC41IC0yLjV0NCAtNHQyLjUgLTR0MiAtNXQxLjUgLTV0MC41IC02di01LjV2LTZ2LTd2LTQ1NnEwIC0yMiAyNSAtMzF0NTAgMC41dDI1IDMwLjUgdjIwM3EwIDE1IDIwIDI4LjV0NDEgMTkuNWwzMzkgMTMxdjI5M2wtODkgMTAwaC01MDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNOTE0IDYzMmwtMjc1IDIyM3EtMTYgMTMgLTI3LjUgOHQtMTEuNSAtMjZ2LTEzN2gtMjc1IHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDI3NXYtMTM3cTAgLTIxIDExLjUgLTI2dDI3LjUgOGwyNzUgMjIzcTE2IDEzIDE2IDMydC0xNiAzMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTMyOyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek01NjEgODU1bC0yNzUgLTIyM3EtMTYgLTEzIC0xNiAtMzJ0MTYgLTMybDI3NSAtMjIzcTE2IC0xMyAyNy41IC04IHQxMS41IDI2djEzN2gyNzVxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXYxNTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC0yNzV2MTM3cTAgMjEgLTExLjUgMjZ0LTI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMzsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNODU1IDYzOWwtMjIzIDI3NXEtMTMgMTYgLTMyIDE2dC0zMiAtMTZsLTIyMyAtMjc1cS0xMyAtMTYgLTggLTI3LjUgdDI2IC0xMS41aDEzN3YtMjc1cTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2Mjc1aDEzN3EyMSAwIDI2IDExLjV0LTggMjcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM0OyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek02NzUgOTAwaC0xNTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0yNzVoLTEzN3EtMjEgMCAtMjYgLTExLjUgdDggLTI3LjVsMjIzIC0yNzVxMTMgLTE2IDMyIC0xNnQzMiAxNmwyMjMgMjc1cTEzIDE2IDggMjcuNXQtMjYgMTEuNWgtMTM3djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzNTsiIGQ9Ik02MDAgMTE3NnExMTYgMCAyMjIuNSAtNDZ0MTg0IC0xMjMuNXQxMjMuNSAtMTg0dDQ2IC0yMjIuNXQtNDYgLTIyMi41dC0xMjMuNSAtMTg0dC0xODQgLTEyMy41dC0yMjIuNSAtNDZ0LTIyMi41IDQ2dC0xODQgMTIzLjV0LTEyMy41IDE4NHQtNDYgMjIyLjV0NDYgMjIyLjV0MTIzLjUgMTg0dDE4NCAxMjMuNXQyMjIuNSA0NnpNNjI3IDExMDFxLTE1IC0xMiAtMzYuNSAtMjAuNXQtMzUuNSAtMTJ0LTQzIC04dC0zOSAtNi41IHEtMTUgLTMgLTQ1LjUgMHQtNDUuNSAtMnEtMjAgLTcgLTUxLjUgLTI2LjV0LTM0LjUgLTM0LjVxLTMgLTExIDYuNSAtMjIuNXQ4LjUgLTE4LjVxLTMgLTM0IC0yNy41IC05MXQtMjkuNSAtNzlxLTkgLTM0IDUgLTkzdDggLTg3cTAgLTkgMTcgLTQ0LjV0MTYgLTU5LjVxMTIgMCAyMyAtNXQyMy41IC0xNXQxOS41IC0xNHExNiAtOCAzMyAtMTV0NDAuNSAtMTV0MzQuNSAtMTJxMjEgLTkgNTIuNSAtMzJ0NjAgLTM4dDU3LjUgLTExIHE3IC0xNSAtMyAtMzR0LTIyLjUgLTQwdC05LjUgLTM4cTEzIC0yMSAyMyAtMzQuNXQyNy41IC0yNy41dDM2LjUgLTE4cTAgLTcgLTMuNSAtMTZ0LTMuNSAtMTR0NSAtMTdxMTA0IC0yIDIyMSAxMTJxMzAgMjkgNDYuNSA0N3QzNC41IDQ5dDIxIDYzcS0xMyA4IC0zNyA4LjV0LTM2IDcuNXEtMTUgNyAtNDkuNSAxNXQtNTEuNSAxOXEtMTggMCAtNDEgLTAuNXQtNDMgLTEuNXQtNDIgLTYuNXQtMzggLTE2LjVxLTUxIC0zNSAtNjYgLTEyIHEtNCAxIC0zLjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxNy41dC0yNC41IDYuNXExIDE1IC0wLjUgMzAuNXQtNyAyOHQtMTguNSAxMS41dC0zMSAtMjFxLTIzIC0yNSAtNDIgNHEtMTkgMjggLTggNThxNiAxNiAyMiAyMnE2IC0xIDI2IC0xLjV0MzMuNSAtNHQxOS41IC0xMy41cTcgLTEyIDE4IC0yNHQyMS41IC0yMC41dDIwIC0xNXQxNS41IC0xMC41bDUgLTNxMiAxMiA3LjUgMzAuNXQ4IDM0LjV0LTAuNSAzMnEtMyAxOCAzLjUgMjkgdDE4IDIyLjV0MTUuNSAyNC41cTYgMTQgMTAuNSAzNXQ4IDMxdDE1LjUgMjIuNXQzNCAyMi41cS02IDE4IDEwIDM2cTggMCAyNCAtMS41dDI0LjUgLTEuNXQyMCA0LjV0MjAuNSAxNS41cS0xMCAyMyAtMzEgNDIuNXQtMzcuNSAyOS41dC00OSAyN3QtNDMuNSAyM3EwIDEgMiA4dDMgMTEuNXQxLjUgMTAuNXQtMSA5LjV0LTQuNSA0LjVxMzEgLTEzIDU4LjUgLTE0LjV0MzguNSAyLjVsMTIgNXE1IDI4IC05LjUgNDZ0LTM2LjUgMjR0LTUwIDE1IHQtNDEgMjBxLTE4IC00IC0zNyAwek02MTMgOTk0cTAgLTE3IDggLTQydDE3IC00NXQ5IC0yM3EtOCAxIC0zOS41IDUuNXQtNTIuNSAxMHQtMzcgMTYuNXEzIDExIDE2IDI5LjV0MTYgMjUuNXExMCAtMTAgMTkgLTEwdDE0IDZ0MTMuNSAxNC41dDE2LjUgMTIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM2OyIgZD0iTTc1NiAxMTU3cTE2NCA5MiAzMDYgLTlsLTI1OSAtMTM4bDE0NSAtMjMybDI1MSAxMjZxNiAtODkgLTM0IC0xNTYuNXQtMTE3IC0xMTAuNXEtNjAgLTM0IC0xMjcgLTM5LjV0LTEyNiAxNi41bC01OTYgLTU5NnEtMTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV0MTUgMzcuNWw2MDAgNTk5cS0zNCAxMDEgNS41IDIwMS41dDEzNS41IDE1NC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTEwMCAxMTk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAxMDk2aC0yMDB2LTEwMGgyMDB2MTAwek0xMDAgNzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMCBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTExMDAgNjk2aC01MDB2LTEwMGg1MDB2MTAwek0xMDAgMzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAyOTZoLTMwMHYtMTAwaDMwMHYxMDB6ICIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzg7IiBkPSJNMTUwIDEyMDBoOTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41dC0xNC41IC0zNS41dC0zNS41IC0xNC41aC05MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA1MDB2LTMwMGwtMjAwIC0yMDB2NTAwbC0zNTAgNTAwaDkwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIgZD0iTTUwMCAxMjAwaDIwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAwaC01MDB2MTAwaC0yMDB2LTEwMGgtNTAwdjQwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwdjEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTUwMCAxMTAwdi0xMDBoMjAwdjEwMGgtMjAwek0xMjAwIDQwMHYtMjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwIHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MjAwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MDsiIGQ9Ik01MCAxMjAwaDMwMHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtOTQgLTk0bDE5OSAtMTk5cTcgLTggNyAtMTh0LTcgLTE4bC0xMDYgLTEwNnEtOCAtNyAtMTggLTd0LTE4IDdsLTE5OSAxOTlsLTk0IC05NHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMTk5IC0xOTlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwxOTkgMTk5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNMzY0IDQ3MGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMTk5IC0xOTlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMTk5IDE5OSBxOCA3IDE4IDd0MTggLTd6TTEwNzEgMjcxbDk0IDk0cTE0IDE0IDI0LjUgMTB0MTAuNSAtMjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0yNSAxMC41dDEwIDI0LjVsOTQgOTRsLTE5OSAxOTlxLTcgOCAtNyAxOHQ3IDE4bDEwNiAxMDZxOCA3IDE4IDd0MTggLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MTsiIGQ9Ik01OTYgMTE5MnExMjEgMCAyMzEuNSAtNDcuNXQxOTAgLTEyN3QxMjcgLTE5MHQ0Ny41IC0yMzEuNXQtNDcuNSAtMjMxLjV0LTEyNyAtMTkwLjV0LTE5MCAtMTI3dC0yMzEuNSAtNDd0LTIzMS41IDQ3dC0xOTAuNSAxMjd0LTEyNyAxOTAuNXQtNDcgMjMxLjV0NDcgMjMxLjV0MTI3IDE5MHQxOTAuNSAxMjd0MjMxLjUgNDcuNXpNNTk2IDEwMTBxLTExMiAwIC0yMDcuNSAtNTUuNXQtMTUxIC0xNTF0LTU1LjUgLTIwNy41dDU1LjUgLTIwNy41IHQxNTEgLTE1MXQyMDcuNSAtNTUuNXQyMDcuNSA1NS41dDE1MSAxNTF0NTUuNSAyMDcuNXQtNTUuNSAyMDcuNXQtMTUxIDE1MXQtMjA3LjUgNTUuNXpNNDU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOC41IC0xNi41dC0zOC41IDE2LjV0LTE2IDM5dDE2IDM4LjV0MzguNSAxNnpNNzU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOCAtMTYuNXEtMTQgMCAtMjkgMTBsLTU1IC0xNDUgcTE3IC0yMyAxNyAtNTFxMCAtMzYgLTI1LjUgLTYxLjV0LTYxLjUgLTI1LjV0LTYxLjUgMjUuNXQtMjUuNSA2MS41cTAgMzIgMjAuNSA1Ni41dDUxLjUgMjkuNWwxMjIgMTI2bDEgMXEtOSAxNCAtOSAyOHEwIDIzIDE2IDM5dDM4LjUgMTZ6TTM0NS41IDcwOXEyMi41IDAgMzguNSAtMTZ0MTYgLTM4LjV0LTE2IC0zOC41dC0zOC41IC0xNnQtMzguNSAxNnQtMTYgMzguNXQxNiAzOC41dDM4LjUgMTZ6TTg1NC41IDcwOXEyMi41IDAgMzguNSAtMTYgdDE2IC0zOC41dC0xNiAtMzguNXQtMzguNSAtMTZ0LTM4LjUgMTZ0LTE2IDM4LjV0MTYgMzguNXQzOC41IDE2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDI7IiBkPSJNNTQ2IDE3M2w0NjkgNDcwcTkxIDkxIDk5IDE5MnE3IDk4IC01MiAxNzUuNXQtMTU0IDk0LjVxLTIyIDQgLTQ3IDRxLTM0IDAgLTY2LjUgLTEwdC01Ni41IC0yM3QtNTUuNSAtMzh0LTQ4IC00MS41dC00OC41IC00Ny41cS0zNzYgLTM3NSAtMzkxIC0zOTBxLTMwIC0yNyAtNDUgLTQxLjV0LTM3LjUgLTQxdC0zMiAtNDYuNXQtMTYgLTQ3LjV0LTEuNSAtNTYuNXE5IC02MiA1My41IC05NXQ5OS41IC0zM3E3NCAwIDEyNSA1MWw1NDggNTQ4IHEzNiAzNiAyMCA3NXEtNyAxNiAtMjEuNSAyNnQtMzIuNSAxMHEtMjYgMCAtNTAgLTIzcS0xMyAtMTIgLTM5IC0zOGwtMzQxIC0zMzhxLTE1IC0xNSAtMzUuNSAtMTUuNXQtMzQuNSAxMy41dC0xNCAzNC41dDE0IDM0LjVxMzI3IDMzMyAzNjEgMzY3cTM1IDM1IDY3LjUgNTEuNXQ3OC41IDE2LjVxMTQgMCAyOSAtMXE0NCAtOCA3NC41IC0zNS41dDQzLjUgLTY4LjVxMTQgLTQ3IDIgLTk2LjV0LTQ3IC04NC41cS0xMiAtMTEgLTMyIC0zMiB0LTc5LjUgLTgxdC0xMTQuNSAtMTE1dC0xMjQuNSAtMTIzLjV0LTEyMyAtMTE5LjV0LTk2LjUgLTg5dC01NyAtNDVxLTU2IC0yNyAtMTIwIC0yN3EtNzAgMCAtMTI5IDMydC05MyA4OXEtNDggNzggLTM1IDE3M3Q4MSAxNjNsNTExIDUxMXE3MSA3MiAxMTEgOTZxOTEgNTUgMTk4IDU1cTgwIDAgMTUyIC0zM3E3OCAtMzYgMTI5LjUgLTEwM3Q2Ni41IC0xNTRxMTcgLTkzIC0xMSAtMTgzLjV0LTk0IC0xNTYuNWwtNDgyIC00NzYgcS0xNSAtMTUgLTM2IC0xNnQtMzcgMTR0LTE3LjUgMzR0MTQuNSAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQzOyIgZD0iTTY0OSA5NDlxNDggNjggMTA5LjUgMTA0dDEyMS41IDM4LjV0MTE4LjUgLTIwdDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01NyAtMzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYgLTE3NHEtNjIgODUgLTE0NS41IDE3NHQtMTUwIDE1Mi41dC0xMjYuNSAxMjcuNXQtOTMuNSAxMjQuNXQtMzMuNSAxMTcuNXEwIDY0IDI4IDEyM3Q3MyAxMDAuNXQxMDQgNjR0MTE5IDIwIHQxMjAuNSAtMzguNXQxMDQuNSAtMTA0ek04OTYgOTcycS0zMyAwIC02NC41IC0xOXQtNTYuNSAtNDZ0LTQ3LjUgLTUzLjV0LTQzLjUgLTQ1LjV0LTM3LjUgLTE5dC0zNiAxOXQtNDAgNDUuNXQtNDMgNTMuNXQtNTQgNDZ0LTY1LjUgMTlxLTY3IDAgLTEyMi41IC01NS41dC01NS41IC0xMzIuNXEwIC0yMyAxMy41IC01MXQ0NiAtNjV0NTcuNSAtNjN0NzYgLTc1bDIyIC0yMnExNSAtMTQgNDQgLTQ0dDUwLjUgLTUxdDQ2IC00NHQ0MSAtMzV0MjMgLTEyIHQyMy41IDEydDQyLjUgMzZ0NDYgNDR0NTIuNSA1MnQ0NCA0M3E0IDQgMTIgMTNxNDMgNDEgNjMuNSA2MnQ1MiA1NXQ0NiA1NXQyNiA0NnQxMS41IDQ0cTAgNzkgLTUzIDEzMy41dC0xMjAgNTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQ0OyIgZD0iTTc3Ni41IDEyMTRxOTMuNSAwIDE1OS41IC02NmwxNDEgLTE0MXE2NiAtNjYgNjYgLTE2MHEwIC00MiAtMjggLTk1LjV0LTYyIC04Ny41bC0yOSAtMjlxLTMxIDUzIC03NyA5OWwtMTggMThsOTUgOTVsLTI0NyAyNDhsLTM4OSAtMzg5bDIxMiAtMjEybC0xMDUgLTEwNmwtMTkgMThsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTl0NjYgMTU5bDI4MyAyODNxNjUgNjYgMTU4LjUgNjZ6TTYwMCA3MDZsMTA1IDEwNXExMCAtOCAxOSAtMTdsMTQxIC0xNDEgcTY2IC02NiA2NiAtMTU5dC02NiAtMTU5bC0yODMgLTI4M3EtNjYgLTY2IC0xNTkgLTY2dC0xNTkgNjZsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTkuNXQ2NiAxNTkuNWw1NSA1NXEyOSAtNTUgNzUgLTEwMmwxOCAtMTdsLTk1IC05NWwyNDcgLTI0OGwzODkgMzg5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDU7IiBkPSJNNjAzIDEyMDBxODUgMCAxNjIgLTE1dDEyNyAtMzh0NzkgLTQ4dDI5IC00NnYtOTUzcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djk1M3EwIDIxIDMwIDQ2LjV0ODEgNDh0MTI5IDM3LjV0MTYzIDE1ek0zMDAgMTAwMHYtNzAwaDYwMHY3MDBoLTYwMHpNNjAwIDI1NHEtNDMgMCAtNzMuNSAtMzAuNXQtMzAuNSAtNzMuNXQzMC41IC03My41dDczLjUgLTMwLjV0NzMuNSAzMC41IHQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDY7IiBkPSJNOTAyIDExODVsMjgzIC0yODJxMTUgLTE1IDE1IC0zNnQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUgMTVsLTM2IDM1bC0yNzkgLTI2N3YtMzAwbC0yMTIgMjEwbC0zMDggLTMwN2wtMjgwIC0yMDNsMjAzIDI4MGwzMDcgMzA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE0LjUgMzUuNXQzNS41IDE0LjV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDg7IiBkPSJNNzAwIDEyNDh2LTc4cTM4IC01IDcyLjUgLTE0LjV0NzUuNSAtMzEuNXQ3MSAtNTMuNXQ1MiAtODR0MjQgLTExOC41aC0xNTlxLTQgMzYgLTEwLjUgNTl0LTIxIDQ1dC00MCAzNS41dC02NC41IDIwLjV2LTMwN2w2NCAtMTNxMzQgLTcgNjQgLTE2LjV0NzAgLTMydDY3LjUgLTUyLjV0NDcuNSAtODB0MjAgLTExMnEwIC0xMzkgLTg5IC0yMjR0LTI0NCAtOTd2LTc3aC0xMDB2NzlxLTE1MCAxNiAtMjM3IDEwM3EtNDAgNDAgLTUyLjUgOTMuNSB0LTE1LjUgMTM5LjVoMTM5cTUgLTc3IDQ4LjUgLTEyNnQxMTcuNSAtNjV2MzM1bC0yNyA4cS00NiAxNCAtNzkgMjYuNXQtNzIgMzZ0LTYzIDUydC00MCA3Mi41dC0xNiA5OHEwIDcwIDI1IDEyNnQ2Ny41IDkydDk0LjUgNTd0MTEwIDI3djc3aDEwMHpNNjAwIDc1NHYyNzRxLTI5IC00IC01MCAtMTF0LTQyIC0yMS41dC0zMS41IC00MS41dC0xMC41IC02NXEwIC0yOSA3IC01MC41dDE2LjUgLTM0dDI4LjUgLTIyLjV0MzEuNSAtMTR0MzcuNSAtMTAgcTkgLTMgMTMgLTR6TTcwMCA1NDd2LTMxMHEyMiAyIDQyLjUgNi41dDQ1IDE1LjV0NDEuNSAyN3QyOSA0MnQxMiA1OS41dC0xMi41IDU5LjV0LTM4IDQ0LjV0LTUzIDMxdC02Ni41IDI0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0OTsiIGQ9Ik01NjEgMTE5N3E4NCAwIDE2MC41IC00MHQxMjMuNSAtMTA5LjV0NDcgLTE0Ny41aC0xNTNxMCA0MCAtMTkuNSA3MS41dC00OS41IDQ4LjV0LTU5LjUgMjZ0LTU1LjUgOXEtMzcgMCAtNzkgLTE0LjV0LTYyIC0zNS41cS00MSAtNDQgLTQxIC0xMDFxMCAtMjYgMTMuNSAtNjN0MjYuNSAtNjF0MzcgLTY2cTYgLTkgOSAtMTRoMjQxdi0xMDBoLTE5N3E4IC01MCAtMi41IC0xMTV0LTMxLjUgLTk1cS00NSAtNjIgLTk5IC0xMTIgcTM0IDEwIDgzIDE3LjV0NzEgNy41cTMyIDEgMTAyIC0xNnQxMDQgLTE3cTgzIDAgMTM2IDMwbDUwIC0xNDdxLTMxIC0xOSAtNTggLTMwLjV0LTU1IC0xNS41dC00MiAtNC41dC00NiAtMC41cS0yMyAwIC03NiAxN3QtMTExIDMyLjV0LTk2IDExLjVxLTM5IC0zIC04MiAtMTZ0LTY3IC0yNWwtMjMgLTExbC01NSAxNDVxNCAzIDE2IDExdDE1LjUgMTAuNXQxMyA5dDE1LjUgMTJ0MTQuNSAxNHQxNy41IDE4LjVxNDggNTUgNTQgMTI2LjUgdC0zMCAxNDIuNWgtMjIxdjEwMGgxNjZxLTIzIDQ3IC00NCAxMDRxLTcgMjAgLTEyIDQxLjV0LTYgNTUuNXQ2IDY2LjV0MjkuNSA3MC41dDU4LjUgNzFxOTcgODggMjYzIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTA7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkzNSAxMTg0bDIzMCAtMjQ5cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTE1MHYtOTAwaC0yMDB2OTAwaC0xNTBxLTIxIDAgLTI1IDEwLjV0MTAgMjQuNWwyMzAgMjQ5cTE0IDE1IDM1IDE1dDM1IC0xNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUxOyIgZD0iTTEwMDAgNzAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwdjUwMGgzMDB2LTUwMHpNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTgwMSAxMTAwdi0yMDBoMTAwdjIwMGgtMTAwek0xMDAwIDM1MGwtMjAwIC0yNTBoMjAwdi0xMDBoLTMwMHYxNTBsMjAwIDI1MGgtMjAwdjEwMGgzMDB2LTE1MHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MjsiIGQ9Ik00MDAgMzAwaDE1MHEyMSAwIDI1IC0xMXQtMTAgLTI1bC0yMzAgLTI1MHEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjUwcS0xNCAxNCAtMTAgMjV0MjUgMTFoMTUwdjkwMGgyMDB2LTkwMHpNMTAwMCAxMDUwbC0yMDAgLTI1MGgyMDB2LTEwMGgtMzAwdjE1MGwyMDAgMjUwaC0yMDB2MTAwaDMwMHYtMTUwek0xMDAwIDBoLTEwMHYxMDBoLTEwMHYtMTAwaC0xMDB2NTAwaDMwMHYtNTAwek04MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUzOyIgZD0iTTQwMCAzMDBoMTUwcTIxIDAgMjUgLTExdC0xMCAtMjVsLTIzMCAtMjUwcS0xNCAtMTUgLTM1IC0xNXQtMzUgMTVsLTIzMCAyNTBxLTE0IDE0IC0xMCAyNXQyNSAxMWgxNTB2OTAwaDIwMHYtOTAwek0xMDAwIDcwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMTEwMCAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTQ7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTExMDAgNzAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgMTEwMHYtMjAwaDEwMHYyMDBoLTEwMHpNMTAwMCAwaC0xMDB2NDAwaC0xMDB2MTAwaDIwMHYtNTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTU7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkwMCAxMDAwaC0yMDB2MjAwaDIwMHYtMjAwek0xMDAwIDcwMGgtMzAwdjIwMGgzMDB2LTIwMHpNMTEwMCA0MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEyMDAgMTAwaC01MDB2MjAwaDUwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTY7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTEyMDAgMTAwMGgtNTAwdjIwMGg1MDB2LTIwMHpNMTEwMCA3MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEwMDAgNDAwaC0zMDB2MjAwaDMwMHYtMjAwek05MDAgMTAwaC0yMDB2MjAwaDIwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTc7IiBkPSJNMzUwIDExMDBoNDAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTQwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTg7IiBkPSJNMzUwIDExMDBoNDAwcTE2NSAwIDI1Ny41IC05Mi41dDkyLjUgLTI1Ny41di00MDBxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTYzIDAgLTI1Ni41IDkyLjV0LTkzLjUgMjU3LjV2NDAwcTAgMTYzIDk0IDI1Ni41dDI1NiA5My41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek00NDAgNzcwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1OTsiIGQ9Ik0zNTAgMTEwMGg0MDBxMTYzIDAgMjU2LjUgLTk0dDkzLjUgLTI1NnYtNDAwcTAgLTE2NSAtOTIuNSAtMjU3LjV0LTI1Ny41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2MyA5Mi41IDI1Ni41dDI1Ny41IDkzLjV6TTgwMCA5MDBoLTUwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41IHY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTM1MCA3MDBoNDAwcTIxIDAgMjYuNSAtMTJ0LTYuNSAtMjhsLTE5MCAtMjUzcS0xMiAtMTcgLTMwIC0xN3QtMzAgMTdsLTE5MCAyNTNxLTEyIDE2IC02LjUgMjh0MjYuNSAxMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTM1MCAxMTAwaDQwMHExNjUgMCAyNTcuNSAtOTIuNXQ5Mi41IC0yNTcuNXYtNDAwcTAgLTE2MyAtOTIuNSAtMjU2LjV0LTI1Ny41IC05My41aC00MDBxLTE2MyAwIC0yNTYuNSA5NHQtOTMuNSAyNTZ2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXpNODAwIDkwMGgtNTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjUgdjUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNNTgwIDY5M2wxOTAgLTI1M3ExMiAtMTYgNi41IC0yOHQtMjYuNSAtMTJoLTQwMHEtMjEgMCAtMjYuNSAxMnQ2LjUgMjhsMTkwIDI1M3ExMiAxNyAzMCAxN3QzMCAtMTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik01NTAgMTEwMGg0MDBxMTY1IDAgMjU3LjUgLTkyLjV0OTIuNSAtMjU3LjV2LTQwMHEwIC0xNjUgLTkyLjUgLTI1Ny41dC0yNTcuNSAtOTIuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC00NTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMzggODY3bDMyNCAtMjg0cTE2IC0xNCAxNiAtMzN0LTE2IC0zM2wtMzI0IC0yODRxLTE2IC0xNCAtMjcgLTl0LTExIDI2djE1MGgtMjUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI1MHYxNTBxMCAyMSAxMSAyNnQyNyAtOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYyOyIgZD0iTTc5MyAxMTgybDkgLTlxOCAtMTAgNSAtMjdxLTMgLTExIC03OSAtMjI1LjV0LTc4IC0yMjEuNWwzMDAgMXEyNCAwIDMyLjUgLTE3LjV0LTUuNSAtMzUuNXEtMSAwIC0xMzMuNSAtMTU1dC0yNjcgLTMxMi41dC0xMzguNSAtMTYyLjVxLTEyIC0xNSAtMjYgLTE1aC05bC05IDhxLTkgMTEgLTQgMzJxMiA5IDQyIDEyMy41dDc5IDIyNC41bDM5IDExMGgtMzAycS0yMyAwIC0zMSAxOXEtMTAgMjEgNiA0MXE3NSA4NiAyMDkuNSAyMzcuNSB0MjI4IDI1N3Q5OC41IDExMS41cTkgMTYgMjUgMTZoOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYzOyIgZD0iTTM1MCAxMTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00NTBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwIHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTkzOCA4NjdsMzI0IC0yODRxMTYgLTE0IDE2IC0zM3QtMTYgLTMzbC0zMjQgLTI4NHEtMTYgLTE0IC0yNyAtOXQtMTEgMjZ2MTUwaC0yNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjUwdjE1MHEwIDIxIDExIDI2dDI3IC05eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjQ7IiBkPSJNNzUwIDEyMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTEwLjUgLTI1dC0yNC41IDEwbC0xMDkgMTA5bC0zMTIgLTMxMnEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtMTQxIDE0MXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWwzMTIgMzEybC0xMDkgMTA5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41ek00NTYgOTAwaC0xNTZxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMCBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTQ4bDIwMCAyMDB2LTI5OHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41aDMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY1OyIgZD0iTTYwMCAxMTg2cTExOSAwIDIyNy41IC00Ni41dDE4NyAtMTI1dDEyNSAtMTg3dDQ2LjUgLTIyNy41dC00Ni41IC0yMjcuNXQtMTI1IC0xODd0LTE4NyAtMTI1dC0yMjcuNSAtNDYuNXQtMjI3LjUgNDYuNXQtMTg3IDEyNXQtMTI1IDE4N3QtNDYuNSAyMjcuNXQ0Ni41IDIyNy41dDEyNSAxODd0MTg3IDEyNXQyMjcuNSA0Ni41ek02MDAgMTAyMnEtMTE1IDAgLTIxMiAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTJ0NTYuNSAtMjEyIHQxNTMuNSAtMTUzLjV0MjEyIC01Ni41dDIxMiA1Ni41dDE1My41IDE1My41dDU2LjUgMjEydC01Ni41IDIxMnQtMTUzLjUgMTUzLjV0LTIxMiA1Ni41ek02MDAgNzk0cTgwIDAgMTM3IC01N3Q1NyAtMTM3dC01NyAtMTM3dC0xMzcgLTU3dC0xMzcgNTd0LTU3IDEzN3Q1NyAxMzd0MTM3IDU3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjY7IiBkPSJNNDUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMjQ1cTIwIDAgMjUgLTExdC05IC0yNmwtMzgzIC00MjZxLTE0IC0xNSAtMzMuNSAtMTV0LTMyLjUgMTVsLTM3OSA0MjZxLTEzIDE1IC04LjUgMjZ0MjUuNSAxMWgyNTB2MzUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMTEwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiBNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NzsiIGQ9Ik01ODMgMTE4MmwzNzggLTQzNXExNCAtMTUgOSAtMzF0LTI2IC0xNmgtMjQ0di0yNTBxMCAtMjAgLTE3IC0zNXQtMzkgLTE1aC0yMDBxLTIwIDAgLTMyIDE0LjV0LTEyIDM1LjV2MjUwaC0yNTBxLTIwIDAgLTI1LjUgMTYuNXQ4LjUgMzEuNWwzODMgNDMxcTE0IDE2IDMzLjUgMTd0MzMuNSAtMTR6TTUwIDMwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXogTTkwMCAyMDB2LTUwaDEwMHY1MGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjg7IiBkPSJNMzk2IDcyM2wzNjkgMzY5cTcgNyAxNy41IDd0MTcuNSAtN2wxMzkgLTEzOXE3IC04IDcgLTE4LjV0LTcgLTE3LjVsLTUyNSAtNTI1cS03IC04IC0xNy41IC04dC0xNy41IDhsLTI5MiAyOTFxLTcgOCAtNyAxOHQ3IDE4bDEzOSAxMzlxOCA3IDE4LjUgN3QxNy41IC03ek01MCAzMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaC0xMTAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAyMDB2LTUwaDEwMHY1MCBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY5OyIgZD0iTTEzNSAxMDIzbDE0MiAxNDJxMTQgMTQgMzUgMTR0MzUgLTE0bDc3IC03N2wtMjEyIC0yMTJsLTc3IDc2cS0xNCAxNSAtMTQgMzZ0MTQgMzV6TTY1NSA4NTVsMjEwIDIxMHExNCAxNCAyNC41IDEwdDEwLjUgLTI1bC0yIC01OTlxLTEgLTIwIC0xNS41IC0zNXQtMzUuNSAtMTVsLTU5NyAtMXEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIwOCAyMDhsLTE1NCAxNTVsMjEyIDIxMnpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjUgdi0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MDsiIGQ9Ik0zNTAgMTIwMGw1OTkgLTJxMjAgLTEgMzUgLTE1LjV0MTUgLTM1LjVsMSAtNTk3cTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtMjA4IDIwOGwtMTU1IC0xNTRsLTIxMiAyMTJsMTU1IDE1NGwtMjEwIDIxMHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNNTI0IDUxMmwtNzYgLTc3cS0xNSAtMTQgLTM2IC0xNHQtMzUgMTRsLTE0MiAxNDJxLTE0IDE0IC0xNCAzNXQxNCAzNWw3NyA3N3pNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41IHQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MTsiIGQ9Ik0xMjAwIDEwM2wtNDgzIDI3NmwtMzE0IC0zOTl2NDIzaC0zOTlsMTE5NiA3OTZ2LTEwOTZ6TTQ4MyA0MjR2LTIzMGw2ODMgOTUzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzI7IiBkPSJNMTEwMCAxMDAwdi04NTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTE1MHY0MDBoLTcwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzM7IiBkPSJNMTEwMCAxMDAwbC0yIC0xNDlsLTI5OSAtMjk5bC05NSA5NXEtOSA5IC0yMS41IDl0LTIxLjUgLTlsLTE0OSAtMTQ3aC0zMTJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTEzMiA2MzhsMTA2IC0xMDZxNyAtNyA3IC0xNy41dC03IC0xNy41bC00MjAgLTQyMXEtOCAtNyAtMTggLTcgdC0xOCA3bC0yMDIgMjAzcS04IDcgLTggMTcuNXQ4IDE3LjVsMTA2IDEwNnE3IDggMTcuNSA4dDE3LjUgLThsNzkgLTc5bDI5NyAyOTdxNyA3IDE3LjUgN3QxNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzQ7IiBkPSJNMTEwMCAxMDAwdi0yNjlsLTEwMyAtMTAzbC0xMzQgMTM0cS0xNSAxNSAtMzMuNSAxNi41dC0zNC41IC0xMi41bC0yNjYgLTI2NmgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwMHEwIDIwIDE0LjUgMzV0MzUuNSAxNWgyNTB2LTMwMGg1MDB2MzAwaDEwMHpNNzAwIDEwMDBoLTEwMHYyMDBoMTAwdi0yMDB6TTEyMDIgNTcybDcwIC03MHExNSAtMTUgMTUgLTM1LjV0LTE1IC0zNS41bC0xMzEgLTEzMSBsMTMxIC0xMzFxMTUgLTE1IDE1IC0zNS41dC0xNSAtMzUuNWwtNzAgLTcwcS0xNSAtMTUgLTM1LjUgLTE1dC0zNS41IDE1bC0xMzEgMTMxbC0xMzEgLTEzMXEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtNzAgNzBxLTE1IDE1IC0xNSAzNS41dDE1IDM1LjVsMTMxIDEzMWwtMTMxIDEzMXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWw3MCA3MHExNSAxNSAzNS41IDE1dDM1LjUgLTE1bDEzMSAtMTMxbDEzMSAxMzFxMTUgMTUgMzUuNSAxNSB0MzUuNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsiIGQ9Ik0xMTAwIDEwMDB2LTMwMGgtMzUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xNTBoLTUwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAwek04NTAgNjAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNSBsLTIzMCAtMjMwcS0xNCAtMTQgLTM1IC0xNHQtMzUgMTRsLTIzMCAyMzBxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjVoMTUwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NjsiIGQ9Ik0xMTAwIDEwMDB2LTQwMGwtMTY1IDE2NXEtMTQgMTUgLTM1IDE1dC0zNSAtMTVsLTI2MyAtMjY1aC00MDJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNOTM1IDU2NWwyMzAgLTIyOXExNCAtMTUgMTAgLTI1LjV0LTI1IC0xMC41aC0xNTB2LTI1MHEwIC0yMCAtMTQuNSAtMzUgdC0zNS41IC0xNWgtMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1djI1MGgtMTUwcS0yMSAwIC0yNSAxMC41dDEwIDI1LjVsMjMwIDIyOXExNCAxNSAzNSAxNXQzNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NzsiIGQ9Ik01MCAxMTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtMTIwMHYxNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjAwIDgwMHYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1NTBoMTIwMHpNMTAwIDUwMHYtMjAwaDQwMHYyMDBoLTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTc4OyIgZD0iTTkzNSAxMTY1bDI0OCAtMjMwcTE0IC0xNCAxNCAtMzV0LTE0IC0zNWwtMjQ4IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC00MDB2MjAwaDQwMHYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEwek0yMDAgODAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHYtMjAwek00MDAgODAwaC0xMDB2MjAwaDEwMHYtMjAwek0xOCA0MzVsMjQ3IDIzMCBxMTQgMTQgMjQuNSAxMHQxMC41IC0yNXYtMTUwaDQwMHYtMjAwaC00MDB2LTE1MHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTI0NyAyMzBxLTE1IDE0IC0xNSAzNXQxNSAzNXpNOTAwIDMwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTAwMCA1MDBoNTFxMjAgMCAzNC41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzQuNSAtMTQuNWgtNTF2MjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzk7IiBkPSJNODYyIDEwNzNsMjc2IDExNnEyNSAxOCA0My41IDh0MTguNSAtNDF2LTExMDZxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2Mzk3cS00IDEgLTExIDV0LTI0IDE3LjV0LTMwIDI5dC0yNCA0MnQtMTEgNTYuNXYzNTlxMCAzMSAxOC41IDY1dDQzLjUgNTJ6TTU1MCAxMjAwcTIyIDAgMzQuNSAtMTIuNXQxNC41IC0yNC41bDEgLTEzdi00NTBxMCAtMjggLTEwLjUgLTU5LjUgdC0yNSAtNTZ0LTI5IC00NXQtMjUuNSAtMzEuNWwtMTAgLTExdi00NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDQ3cS00IDQgLTExIDExLjV0LTI0IDMwLjV0LTMwIDQ2dC0yNCA1NXQtMTEgNjB2NDUwcTAgMiAwLjUgNS41dDQgMTJ0OC41IDE1dDE0LjUgMTJ0MjIuNSA1LjVxMjAgMCAzMi41IC0xMi41dDE0LjUgLTI0LjVsMyAtMTN2LTM1MGgxMDB2MzUwdjUuNXQyLjUgMTIgdDcgMTV0MTUgMTJ0MjUuNSA1LjVxMjMgMCAzNS41IC0xMi41dDEzLjUgLTI0LjVsMSAtMTN2LTM1MGgxMDB2MzUwcTAgMiAwLjUgNS41dDMgMTJ0NyAxNXQxNSAxMnQyNC41IDUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgwOyIgZD0iTTEyMDAgMTEwMHYtNTZxLTQgMCAtMTEgLTAuNXQtMjQgLTN0LTMwIC03LjV0LTI0IC0xNXQtMTEgLTI0di04ODhxMCAtMjIgMjUgLTM0LjV0NTAgLTEzLjVsMjUgLTJ2LTU2aC00MDB2NTZxNzUgMCA4Ny41IDYuNXQxMi41IDQzLjV2Mzk0aC01MDB2LTM5NHEwIC0zNyAxMi41IC00My41dDg3LjUgLTYuNXYtNTZoLTQwMHY1NnE0IDAgMTEgMC41dDI0IDN0MzAgNy41dDI0IDE1dDExIDI0djg4OHEwIDIyIC0yNSAzNC41dC01MCAxMy41IGwtMjUgMnY1Nmg0MDB2LTU2cS03NSAwIC04Ny41IC02LjV0LTEyLjUgLTQzLjV2LTM5NGg1MDB2Mzk0cTAgMzcgLTEyLjUgNDMuNXQtODcuNSA2LjV2NTZoNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODE7IiBkPSJNNjc1IDEwMDBoMzc1cTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTEwNWwtMjk1IC05OHY5OGwtMjAwIDIwMGgtNDAwbDEwMCAxMDBoMzc1ek0xMDAgOTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0zMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTEwMCA4MDB2LTIwMGgzMDB2MjAwIGgtMzAwek0xMTAwIDUzNWwtNDAwIC0xMzN2MTYzbDQwMCAxMzN2LTE2M3pNMTAwIDUwMHYtMjAwaDMwMHYyMDBoLTMwMHpNMTEwMCAzOTh2LTI0OHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzc1bC0xMDAgLTEwMGgtMzc1bC0xMDAgMTAwaDQwMGwyMDAgMjAwaDEwNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgyOyIgZD0iTTE3IDEwMDdsMTYyIDE2MnExNyAxNyA0MCAxNHQzNyAtMjJsMTM5IC0xOTRxMTQgLTIwIDExIC00NC41dC0yMCAtNDEuNWwtMTE5IC0xMThxMTAyIC0xNDIgMjI4IC0yNjh0MjY3IC0yMjdsMTE5IDExOHExNyAxNyA0Mi41IDE5dDQ0LjUgLTEybDE5MiAtMTM2cTE5IC0xNCAyMi41IC0zNy41dC0xMy41IC00MC41bC0xNjMgLTE2MnEtMyAtMSAtOS41IC0xdC0yOS41IDJ0LTQ3LjUgNnQtNjIuNSAxNC41dC03Ny41IDI2LjV0LTkwIDQyLjUgdC0xMDEuNSA2MHQtMTExIDgzdC0xMTkgMTA4LjVxLTc0IDc0IC0xMzMuNSAxNTAuNXQtOTQuNSAxMzguNXQtNjAgMTE5LjV0LTM0LjUgMTAwdC0xNSA3NC41dC00LjUgNDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MzsiIGQ9Ik02MDAgMTEwMHE5MiAwIDE3NSAtMTAuNXQxNDEuNSAtMjd0MTA4LjUgLTM2LjV0ODEuNSAtNDB0NTMuNSAtMzd0MzEgLTI3bDkgLTEwdi0yMDBxMCAtMjEgLTE0LjUgLTMzdC0zNC41IC05bC0yMDIgMzRxLTIwIDMgLTM0LjUgMjB0LTE0LjUgMzh2MTQ2cS0xNDEgMjQgLTMwMCAyNHQtMzAwIC0yNHYtMTQ2cTAgLTIxIC0xNC41IC0zOHQtMzQuNSAtMjBsLTIwMiAtMzRxLTIwIC0zIC0zNC41IDl0LTE0LjUgMzN2MjAwcTMgNCA5LjUgMTAuNSB0MzEgMjZ0NTQgMzcuNXQ4MC41IDM5LjV0MTA5IDM3LjV0MTQxIDI2LjV0MTc1IDEwLjV6TTYwMCA3OTVxNTYgMCA5NyAtOS41dDYwIC0yMy41dDMwIC0yOHQxMiAtMjRsMSAtMTB2LTUwbDM2NSAtMzAzcTE0IC0xNSAyNC41IC00MHQxMC41IC00NXYtMjEycTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMTJxMCAyMCAxMC41IDQ1dDI0LjUgNDBsMzY1IDMwM3Y1MCBxMCA0IDEgMTAuNXQxMiAyM3QzMCAyOXQ2MCAyMi41dDk3IDEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTEwMCA3MDBsLTIwMCAtMjAwaC02MDBsLTIwMCAyMDB2NTAwaDIwMHYtMjAwaDIwMHYyMDBoMjAwdi0yMDBoMjAwdjIwMGgyMDB2LTUwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODU7IiBkPSJNNzAwIDExMDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtMTAwMGgzMDB2MTAwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMTEwMCA4MDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNzAwaDMwMHY3MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTQwMCAwaC0zMDB2NDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTQwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4NjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDcwMHYtMzAwbC0xMDAgLTEwMGgtMjAwdjUwMGgyMDB6IE03MDAgNzAwdi0zMDBoMTAwdjMwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODc7IiBkPSJNMjAwIDExMDBoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ2NTAwcTAgMTI0IDg4IDIxMnQyMTIgODh6TTEwMCA5MDB2LTcwMGg5MDB2NzAwaC05MDB6TTUwMCAzMDBoLTEwMHYyMDBoLTEwMHYtMjAwaC0xMDB2NTAwaDEwMHYtMjAwaDEwMHYyMDBoMTAwdi01MDB6TTkwMCA3MDB2LTMwMGwtMTAwIC0xMDBoLTIwMHY1MDBoMjAweiBNNzAwIDcwMHYtMzAwaDEwMHYzMDBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek01MDAgNzAwaC0yMDB2LTMwMGgyMDB2LTEwMGgtMzAwdjUwMGgzMDB2LTEwMHpNOTAwIDcwMGgtMjAwdi0zMDBoMjAwdi0xMDBoLTMwMHY1MDBoMzAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDQwMGwtMzAwIDE1MGwzMDAgMTUwdi0zMDB6TTkwMCA1NTBsLTMwMCAtMTUwdjMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek05MDAgMzAwaC03MDB2NTAwaDcwMHYtNTAwek04MDAgNzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh0MjcgLTEwN3Q2OCAtNDJoMTMwdjMwMHpNMzAwIDcwMHYtMzAwIGgxMzBxNDEgMCA2OCA0MnQyNyAxMDd0LTI4LjUgMTA4dC02Ni41IDQzaC0xMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNMzAwIDcwMGgyMDB2LTQwMGgtMzAwdjUwMGgxMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMzAwIDYwMHYtMjAwaDEwMHYyMDBoLTEwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MzsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDUwMGwtMTk5IC0yMDBoLTEwMHY1MGwxOTkgMjAwdjE1MGgtMjAwdjEwMGgzMDB2LTMwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNNzAxIDMwMGgtMTAwIHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5NDsiIGQ9Ik02MDAgMTE5MXExMjAgMCAyMjkuNSAtNDd0MTg4LjUgLTEyNnQxMjYgLTE4OC41dDQ3IC0yMjkuNXQtNDcgLTIyOS41dC0xMjYgLTE4OC41dC0xODguNSAtMTI2dC0yMjkuNSAtNDd0LTIyOS41IDQ3dC0xODguNSAxMjZ0LTEyNiAxODguNXQtNDcgMjI5LjV0NDcgMjI5LjV0MTI2IDE4OC41dDE4OC41IDEyNnQyMjkuNSA0N3pNNjAwIDEwMjFxLTExNCAwIC0yMTEgLTU2LjV0LTE1My41IC0xNTMuNXQtNTYuNSAtMjExdDU2LjUgLTIxMSB0MTUzLjUgLTE1My41dDIxMSAtNTYuNXQyMTEgNTYuNXQxNTMuNSAxNTMuNXQ1Ni41IDIxMXQtNTYuNSAyMTF0LTE1My41IDE1My41dC0yMTEgNTYuNXpNODAwIDcwMGgtMzAwdi0yMDBoMzAwdi0xMDBoLTMwMGwtMTAwIDEwMHYyMDBsMTAwIDEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk1OyIgZD0iTTYwMCAxMTkxcTEyMCAwIDIyOS41IC00N3QxODguNSAtMTI2dDEyNiAtMTg4LjV0NDcgLTIyOS41dC00NyAtMjI5LjV0LTEyNiAtMTg4LjV0LTE4OC41IC0xMjZ0LTIyOS41IC00N3QtMjI5LjUgNDd0LTE4OC41IDEyNnQtMTI2IDE4OC41dC00NyAyMjkuNXQ0NyAyMjkuNXQxMjYgMTg4LjV0MTg4LjUgMTI2dDIyOS41IDQ3ek02MDAgMTAyMXEtMTE0IDAgLTIxMSAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTF0NTYuNSAtMjExIHQxNTMuNSAtMTUzLjV0MjExIC01Ni41dDIxMSA1Ni41dDE1My41IDE1My41dDU2LjUgMjExdC01Ni41IDIxMXQtMTUzLjUgMTUzLjV0LTIxMSA1Ni41ek04MDAgNzAwdi0xMDBsLTUwIC01MGwxMDAgLTEwMHYtNTBoLTEwMGwtMTAwIDEwMGgtMTUwdi0xMDBoLTEwMHY0MDBoMzAwek01MDAgNzAwdi0xMDBoMjAwdjEwMGgtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTc7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA3dC04NSAtMjA3dC0yMDUgLTg2LjVoLTEyOHYyNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTMwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMjUwaC0yMjJxLTgwIDAgLTEzNiA1Ny41dC01NiAxMzYuNXEwIDY5IDQzIDEyMi41dDEwOCA2Ny41cS0yIDE5IC0yIDM3cTAgMTAwIDQ5IDE4NSB0MTM0IDEzNHQxODUgNDl6TTUyNSA1MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMjc1aDEzN3EyMSAwIDI2IC0xMS41dC04IC0yNy41bC0yMjMgLTI0NHEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC0yMjMgMjQ0cS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMTM3djI3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTg7IiBkPSJNNTAyIDEwODlxMTEwIDAgMjAxIC01OS41dDEzNSAtMTU2LjVxNDMgMTUgODkgMTVxMTIxIDAgMjA2IC04Ni41dDg2IC0yMDYuNXEwIC05OSAtNjAgLTE4MXQtMTUwIC0xMTBsLTM3OCAzNjBxLTEzIDE2IC0zMS41IDE2dC0zMS41IC0xNmwtMzgxIC0zNjVoLTlxLTc5IDAgLTEzNS41IDU3LjV0LTU2LjUgMTM2LjVxMCA2OSA0MyAxMjIuNXQxMDggNjcuNXEtMiAxOSAtMiAzOHEwIDEwMCA0OSAxODQuNXQxMzMuNSAxMzR0MTg0LjUgNDkuNXogTTYzMiA0NjdsMjIzIC0yMjhxMTMgLTE2IDggLTI3LjV0LTI2IC0xMS41aC0xMzd2LTI3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djI3NWgtMTM3cS0yMSAwIC0yNiAxMS41dDggMjcuNXExOTkgMjA0IDIyMyAyMjhxMTkgMTkgMzEuNSAxOXQzMi41IC0xOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk5OyIgZD0iTTcwMCAxMDB2MTAwaDQwMGwtMjcwIDMwMGgxNzBsLTI3MCAzMDBoMTcwbC0zMDAgMzMzbC0zMDAgLTMzM2gxNzBsLTI3MCAtMzAwaDE3MGwtMjcwIC0zMDBoNDAwdi0xMDBoLTUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di01MGg0MDB2NTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDA7IiBkPSJNNjAwIDExNzlxOTQgMCAxNjcuNSAtNTYuNXQ5OS41IC0xNDUuNXE4OSAtNiAxNTAuNSAtNzEuNXQ2MS41IC0xNTUuNXEwIC02MSAtMjkuNSAtMTEyLjV0LTc5LjUgLTgyLjVxOSAtMjkgOSAtNTVxMCAtNzQgLTUyLjUgLTEyNi41dC0xMjYuNSAtNTIuNXEtNTUgMCAtMTAwIDMwdi0yNTFxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaC0zMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41djI1MXEtNDUgLTMwIC0xMDAgLTMwIHEtNzQgMCAtMTI2LjUgNTIuNXQtNTIuNSAxMjYuNXEwIDE4IDQgMzhxLTQ3IDIxIC03NS41IDY1dC0yOC41IDk3cTAgNzQgNTIuNSAxMjYuNXQxMjYuNSA1Mi41cTUgMCAyMyAtMnEwIDIgLTEgMTB0LTEgMTNxMCAxMTYgODEuNSAxOTcuNXQxOTcuNSA4MS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDE7IiBkPSJNMTAxMCAxMDEwcTExMSAtMTExIDE1MC41IC0yNjAuNXQwIC0yOTl0LTE1MC41IC0yNjAuNXEtODMgLTgzIC0xOTEuNSAtMTI2LjV0LTIxOC41IC00My41dC0yMTguNSA0My41dC0xOTEuNSAxMjYuNXEtMTExIDExMSAtMTUwLjUgMjYwLjV0MCAyOTl0MTUwLjUgMjYwLjVxODMgODMgMTkxLjUgMTI2LjV0MjE4LjUgNDMuNXQyMTguNSAtNDMuNXQxOTEuNSAtMTI2LjV6TTQ3NiAxMDY1cS00IDAgLTggLTFxLTEyMSAtMzQgLTIwOS41IC0xMjIuNSB0LTEyMi41IC0yMDkuNXEtNCAtMTIgMi41IC0yM3QxOC41IC0xNGwzNiAtOXEzIC0xIDcgLTFxMjMgMCAyOSAyMnEyNyA5NiA5OCAxNjZxNzAgNzEgMTY2IDk4cTExIDMgMTcuNSAxMy41dDMuNSAyMi41bC05IDM1cS0zIDEzIC0xNCAxOXEtNyA0IC0xNSA0ek01MTIgOTIwcS00IDAgLTkgLTJxLTgwIC0yNCAtMTM4LjUgLTgyLjV0LTgyLjUgLTEzOC41cS00IC0xMyAyIC0yNHQxOSAtMTRsMzQgLTlxNCAtMSA4IC0xcTIyIDAgMjggMjEgcTE4IDU4IDU4LjUgOTguNXQ5Ny41IDU4LjVxMTIgMyAxOCAxMy41dDMgMjEuNWwtOSAzNXEtMyAxMiAtMTQgMTlxLTcgNCAtMTUgNHpNNzE5LjUgNzE5LjVxLTQ5LjUgNDkuNSAtMTE5LjUgNDkuNXQtMTE5LjUgLTQ5LjV0LTQ5LjUgLTExOS41dDQ5LjUgLTExOS41dDExOS41IC00OS41dDExOS41IDQ5LjV0NDkuNSAxMTkuNXQtNDkuNSAxMTkuNXpNODU1IDU1MXEtMjIgMCAtMjggLTIxcS0xOCAtNTggLTU4LjUgLTk4LjV0LTk4LjUgLTU3LjUgcS0xMSAtNCAtMTcgLTE0LjV0LTMgLTIxLjVsOSAtMzVxMyAtMTIgMTQgLTE5cTcgLTQgMTUgLTRxNCAwIDkgMnE4MCAyNCAxMzguNSA4Mi41dDgyLjUgMTM4LjVxNCAxMyAtMi41IDI0dC0xOC41IDE0bC0zNCA5cS00IDEgLTggMXpNMTAwMCA1MTVxLTIzIDAgLTI5IC0yMnEtMjcgLTk2IC05OCAtMTY2cS03MCAtNzEgLTE2NiAtOThxLTExIC0zIC0xNy41IC0xMy41dC0zLjUgLTIyLjVsOSAtMzVxMyAtMTMgMTQgLTE5cTcgLTQgMTUgLTQgcTQgMCA4IDFxMTIxIDM0IDIwOS41IDEyMi41dDEyMi41IDIwOS41cTQgMTIgLTIuNSAyM3QtMTguNSAxNGwtMzYgOXEtMyAxIC03IDF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMjsiIGQ9Ik03MDAgODAwaDMwMHYtMzgwaC0xODB2MjAwaC0zNDB2LTIwMGgtMzgwdjc1NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDU3NXYtNDAwek0xMDAwIDkwMGgtMjAwdjIwMHpNNzAwIDMwMGgxNjJsLTIxMiAtMjEybC0yMTIgMjEyaDE2MnYyMDBoMTAwdi0yMDB6TTUyMCAwaC0zOTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzOTV6TTEwMDAgMjIwdi0xOTVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xOTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMzsiIGQ9Ik03MDAgODAwaDMwMHYtNTIwbC0zNTAgMzUwbC01NTAgLTU1MHYxMDk1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNTc1di00MDB6TTEwMDAgOTAwaC0yMDB2MjAwek04NjIgMjAwaC0xNjJ2LTIwMGgtMTAwdjIwMGgtMTYybDIxMiAyMTJ6TTQ4MCAwaC0zNTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NWgzODB2LTgwek0xMDAwIDgwdi01NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1NXY4MGgxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwNDsiIGQ9Ik0xMTYyIDgwMGgtMTYydi0yMDBoMTAwbDEwMCAtMTAwaC0zMDB2MzAwaC0xNjJsMjEyIDIxMnpNMjAwIDgwMGgyMDBxMjcgMCA0MCAtMnQyOS41IC0xMC41dDIzLjUgLTMwdDcgLTU3LjVoMzAwdi0xMDBoLTYwMGwtMjAwIC0zNTB2NDUwaDEwMHEwIDM2IDcgNTcuNXQyMy41IDMwdDI5LjUgMTAuNXQ0MCAyek04MDAgNDAwaDI0MGwtMjQwIC00MDBoLTgwMGwzMDAgNTAwaDUwMHYtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDU7IiBkPSJNNjUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMDAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTgwMCBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTYwMHEtMSAwIC0yMCA0bDI0NiAyNDZsLTMyNiAzMjZ2MzI0cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXYtMTUwcTAgLTYyIDQ0IC0xMDZ0MTA2IC00NGgzMDBxNjIgMCAxMDYgNDR0NDQgMTA2ek00MTIgMjUwbC0yMTIgLTIxMnYxNjJoLTIwMHYxMDBoMjAwdjE2MnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjA2OyIgZD0iTTQ1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTUwMCBoLTIwMHYtMzAwaDIwMHEwIC0zNiAtNyAtNTcuNXQtMjMuNSAtMzB0LTI5LjUgLTEwLjV0LTQwIC0yaC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djgwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV2LTE1MHEwIC02MiA0NCAtMTA2dDEwNiAtNDRoMzAwcTYyIDAgMTA2IDQ0dDQ0IDEwNnpNMTIxMiAyNTBsLTIxMiAtMjEydjE2MmgtMjAwdjEwMGgyMDB2MTYyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDk7IiBkPSJNNjU4IDExOTdsNjM3IC0xMTA0cTIzIC0zOCA3IC02NS41dC02MCAtMjcuNWgtMTI3NnEtNDQgMCAtNjAgMjcuNXQ3IDY1LjVsNjM3IDExMDRxMjIgMzkgNTQgMzl0NTQgLTM5ek03MDQgODAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNXQzNy41IC0xNC41aDU0cTIwIDAgMzcuNSAxNC41dDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41dC0zMiAxNC41ek01MDAgMzAwdi0xMDBoMjAwIHYxMDBoLTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjEwOyIgZD0iTTQyNSAxMTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgODAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41IHQxNy41IDcuNXpNODI1IDgwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMjUgNTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNODI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNSB2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTgyNSAyMDBoMjUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxMTsiIGQ9Ik03MDAgMTIwMGgxMDB2LTIwMGgtMTAwdi0xMDBoMzUwcTYyIDAgODYuNSAtMzkuNXQtMy41IC05NC41bC02NiAtMTMycS00MSAtODMgLTgxIC0xMzRoLTc3MnEtNDAgNTEgLTgxIDEzNGwtNjYgMTMycS0yOCA1NSAtMy41IDk0LjV0ODYuNSAzOS41aDM1MHYxMDBoLTEwMHYyMDBoMTAwdjEwMGgyMDB2LTEwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwIGgtOTUwbDEzOCAxMDBoLTEzcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTI7IiBkPSJNNjAwIDEzMDBxNDAgMCA2OC41IC0yOS41dDI4LjUgLTcwLjVoLTE5NHEwIDQxIDI4LjUgNzAuNXQ2OC41IDI5LjV6TTQ0MyAxMTAwaDMxNHExOCAtMzcgMTggLTc1cTAgLTggLTMgLTI1aDMyOHE0MSAwIDQ0LjUgLTE2LjV0LTMwLjUgLTM4LjVsLTE3NSAtMTQ1aC02NzhsLTE3OCAxNDVxLTM0IDIyIC0yOSAzOC41dDQ2IDE2LjVoMzI4cS0zIDE3IC0zIDI1cTAgMzggMTggNzV6TTI1MCA3MDBoNzAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTUwdi0yMDBsMjc1IC0yMDBoLTk1MGwyNzUgMjAwdjIwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTM7IiBkPSJNNjAwIDExODFxNzUgMCAxMjggLTUzdDUzIC0xMjh0LTUzIC0xMjh0LTEyOCAtNTN0LTEyOCA1M3QtNTMgMTI4dDUzIDEyOHQxMjggNTN6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTMgbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNDsiIGQ9Ik02MDAgMTMwMHE0NyAwIDkyLjUgLTUzLjV0NzEgLTEyM3QyNS41IC0xMjMuNXEwIC03OCAtNTUuNSAtMTMzLjV0LTEzMy41IC01NS41dC0xMzMuNSA1NS41dC01NS41IDEzMy41cTAgNjIgMzQgMTQzbDE0NCAtMTQzbDExMSAxMTFsLTE2MyAxNjNxMzQgMjYgNjMgMjZ6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1IHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEzbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNTsiIGQ9Ik02MDAgMTIwMGwzMDAgLTE2MXYtMTM5aC0zMDBxMCAtNTcgMTguNSAtMTA4dDUwIC05MS41dDYzIC03MnQ3MCAtNjcuNXQ1Ny41IC02MWgtNTMwcS02MCA4MyAtOTAuNSAxNzcuNXQtMzAuNSAxNzguNXQzMyAxNjQuNXQ4Ny41IDEzOS41dDEyNiA5Ni41dDE0NS41IDQxLjV2LTk4ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTNsMTM4IC0xMDBoLTk1MGwxMzcgMTAwIGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNjsiIGQ9Ik02MDAgMTMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNzhxNDYgLTI2IDczIC03MnQyNyAtMTAwdi01MGgtNDAwdjUwcTAgNTQgMjcgMTAwdDczIDcydjc4cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNDAwIDgwMGg0MDBxNTQgMCAxMDAgLTI3dDcyIC03M2gtMTcydi0xMDBoMjAwdi0xMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgyMDBxMCAtODMgLTU4LjUgLTE0MS41dC0xNDEuNSAtNTguNWgtNDAwIHEtODMgMCAtMTQxLjUgNTguNXQtNTguNSAxNDEuNXY0MDBxMCA4MyA1OC41IDE0MS41dDE0MS41IDU4LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxODsiIGQ9Ik0xNTAgMTEwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjUgNDAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjgzbDIyNCAtMjI0cTEzIC0xMyAxMyAtMzEuNXQtMTMgLTMyIHQtMzEuNSAtMTMuNXQtMzEuNSAxM2wtODggODhoLTUyNGwtODcgLTg4cS0xMyAtMTMgLTMyIC0xM3QtMzIgMTMuNXQtMTMgMzJ0MTMgMzEuNWwyMjQgMjI0aC0yODlxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01NDEgMzAwbC0xMDAgLTEwMGgzMjRsLTEwMCAxMDBoLTEyNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjE5OyIgZD0iTTIwMCAxMTAwaDgwMHE4MyAwIDE0MS41IC01OC41dDU4LjUgLTE0MS41di0yMDBoLTEwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtMjUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41aC0xMDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTI1MHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNWgtMTAwdjIwMHEwIDgzIDU4LjUgMTQxLjV0MTQxLjUgNTguNXpNMTAwIDYwMGgxMDAwcTQxIDAgNzAuNSAtMjkuNSB0MjkuNSAtNzAuNXYtMzAwaC0xMjAwdjMwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTMwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHpNMTEwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIxOyIgZD0iTTQ4MCAxMTY1bDY4MiAtNjgzcTMxIC0zMSAzMSAtNzUuNXQtMzEgLTc1LjVsLTEzMSAtMTMxaC00ODFsLTUxNyA1MThxLTMyIDMxIC0zMiA3NS41dDMyIDc1LjVsMjk1IDI5NnEzMSAzMSA3NS41IDMxdDc2LjUgLTMxek0xMDggNzk0bDM0MiAtMzQybDMwMyAzMDRsLTM0MSAzNDF6TTI1MCAxMDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtOTAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIzOyIgZD0iTTEwNTcgNjQ3bC0xODkgNTA2cS04IDE5IC0yNy41IDMzdC00MC41IDE0aC00MDBxLTIxIDAgLTQwLjUgLTE0dC0yNy41IC0zM2wtMTg5IC01MDZxLTggLTE5IDEuNSAtMzN0MzAuNSAtMTRoNjI1di0xNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41dDM1LjUgMTQuNXQxNC41IDM1LjV2MTUwaDEyNXEyMSAwIDMwLjUgMTR0MS41IDMzek04OTcgMGgtNTk1djUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ4djMwMGgyMDB2LTMwMGg0N3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjQ7IiBkPSJNOTAwIDgwMGgzMDB2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTM3NXY1OTFsLTMwMCAzMDB2ODRxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNMTIwMCA5MDBoLTIwMHYyMDB6TTQwMCA2MDBoMzAwdi01NzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC02NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNNzAwIDcwMGgtMjAwdjIwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIyNTsiIGQ9Ik00ODQgMTA5NWgxOTVxNzUgMCAxNDYgLTMyLjV0MTI0IC04NnQ4OS41IC0xMjIuNXQ0OC41IC0xNDJxMTggLTE0IDM1IC0yMHEzMSAtMTAgNjQuNSA2LjV0NDMuNSA0OC41cTEwIDM0IC0xNSA3MXEtMTkgMjcgLTkgNDNxNSA4IDEyLjUgMTF0MTkgLTF0MjMuNSAtMTZxNDEgLTQ0IDM5IC0xMDVxLTMgLTYzIC00NiAtMTA2LjV0LTEwNCAtNDMuNWgtNjJxLTcgLTU1IC0zNSAtMTE3dC01NiAtMTAwbC0zOSAtMjM0cS0zIC0yMCAtMjAgLTM0LjUgdC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMTIgNzBxLTQ5IC0xNCAtOTEgLTE0aC0xOTVxLTI0IDAgLTY1IDhsLTExIC02NHEtMyAtMjAgLTIwIC0zNC41dC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMjYgMTU3cS04NCA3NCAtMTI4IDE3NWwtMTU5IDUzcS0xOSA3IC0zMyAyNnQtMTQgNDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEyNHExMSA4NyA1NiAxNjZsLTExMSA5NSBxLTE2IDE0IC0xMi41IDIzLjV0MjQuNSA5LjVoMjAzcTExNiAxMDEgMjUwIDEwMXpNNjc1IDEwMDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMjUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjY7IiBkPSJNNjQxIDkwMGw0MjMgMjQ3cTE5IDggNDIgMi41dDM3IC0yMS41bDMyIC0zOHExNCAtMTUgMTIuNSAtMzZ0LTE3LjUgLTM0bC0xMzkgLTEyMGgtMzkwek01MCAxMTAwaDEwNnE2NyAwIDEwMyAtMTd0NjYgLTcxbDEwMiAtMjEyaDgyM3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBxMCAtMjEgLTE0IC00MHQtMzMgLTI2bC03MzcgLTEzMnEtMjMgLTQgLTQwIDZ0LTI2IDI1cS00MiA2NyAtMTAwIDY3aC0zMDBxLTYyIDAgLTEwNiA0NCB0LTQ0IDEwNnYyMDBxMCA2MiA0NCAxMDZ0MTA2IDQ0ek0xNzMgOTI4aC04MHEtMTkgMCAtMjggLTE0dC05IC0zNXYtNTZxMCAtNTEgNDIgLTUxaDEzNHExNiAwIDIxLjUgOHQ1LjUgMjRxMCAxMSAtMTYgNDV0LTI3IDUxcS0xOCAyOCAtNDMgMjh6TTU1MCA3MjdxLTMyIDAgLTU0LjUgLTIyLjV0LTIyLjUgLTU0LjV0MjIuNSAtNTQuNXQ1NC41IC0yMi41dDU0LjUgMjIuNXQyMi41IDU0LjV0LTIyLjUgNTQuNXQtNTQuNSAyMi41ek0xMzAgMzg5IGwxNTIgMTMwcTE4IDE5IDM0IDI0dDMxIC0zLjV0MjQuNSAtMTcuNXQyNS41IC0yOHEyOCAtMzUgNTAuNSAtNTF0NDguNSAtMTNsNjMgNWw0OCAtMTc5cTEzIC02MSAtMy41IC05Ny41dC02Ny41IC03OS41bC04MCAtNjlxLTQ3IC00MCAtMTA5IC0zNS41dC0xMDMgNTEuNWwtMTMwIDE1MXEtNDAgNDcgLTM1LjUgMTA5LjV0NTEuNSAxMDIuNXpNMzgwIDM3N2wtMTAyIC04OHEtMzEgLTI3IDIgLTY1bDM3IC00M3ExMyAtMTUgMjcuNSAtMTkuNSB0MzEuNSA2LjVsNjEgNTNxMTkgMTYgMTQgNDlxLTIgMjAgLTEyIDU2dC0xNyA0NXEtMTEgMTIgLTE5IDE0dC0yMyAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjI3OyIgZD0iTTYyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwOXE3OSAtMzMgMTMxIC04Ny41dDUzIC0xMjguNXExIC00NiAtMTUgLTg0LjV0LTM5IC02MXQtNDYgLTM4dC0zOSAtMjEuNWwtMTcgLTZxNiAwIDE1IC0xLjV0MzUgLTl0NTAgLTE3LjV0NTMgLTMwdDUwIC00NXQzNS41IC02NHQxNC41IC04NHEwIC01OSAtMTEuNSAtMTA1LjV0LTI4LjUgLTc2LjV0LTQ0IC01MXQtNDkuNSAtMzEuNXQtNTQuNSAtMTZ0LTQ5LjUgLTYuNSB0LTQzLjUgLTF2LTc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzVoLTEwMHYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtMTc1cS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNzV2NjAwaC03NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNzV2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWgxMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDAwIDkwMHYtMjAwaDI2M3EyOCAwIDQ4LjUgMTAuNXQzMCAyNXQxNSAyOXQ1LjUgMjUuNWwxIDEwcTAgNCAtMC41IDExdC02IDI0dC0xNSAzMHQtMzAgMjR0LTQ4LjUgMTFoLTI2M3pNNDAwIDUwMHYtMjAwaDM2M3EyOCAwIDQ4LjUgMTAuNSB0MzAgMjV0MTUgMjl0NS41IDI1LjVsMSAxMHEwIDQgLTAuNSAxMXQtNiAyNHQtMTUgMzB0LTMwIDI0dC00OC41IDExaC0zNjN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMDsiIGQ9Ik0yMTIgMTE5OGg3ODBxODYgMCAxNDcgLTYxdDYxIC0xNDd2LTQxNnEwIC01MSAtMTggLTE0Mi41dC0zNiAtMTU3LjVsLTE4IC02NnEtMjkgLTg3IC05My41IC0xNDYuNXQtMTQ2LjUgLTU5LjVoLTU3MnEtODIgMCAtMTQ3IDU5dC05MyAxNDdxLTggMjggLTIwIDczdC0zMiAxNDMuNXQtMjAgMTQ5LjV2NDE2cTAgODYgNjEgMTQ3dDE0NyA2MXpNNjAwIDEwNDVxLTcwIDAgLTEzMi41IC0xMS41dC0xMDUuNSAtMzAuNXQtNzguNSAtNDEuNSB0LTU3IC00NXQtMzYgLTQxdC0yMC41IC0zMC41bC02IC0xMmwxNTYgLTI0M2g1NjBsMTU2IDI0M3EtMiA1IC02IDEyLjV0LTIwIDI5LjV0LTM2LjUgNDJ0LTU3IDQ0LjV0LTc5IDQydC0xMDUgMjkuNXQtMTMyLjUgMTJ6TTc2MiA3MDNoLTE1N2wxOTUgMjYxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzE7IiBkPSJNNDc1IDEzMDBoMTUwcTEwMyAwIDE4OSAtODZ0ODYgLTE4OXYtNTAwcTAgLTQxIC00MiAtODN0LTgzIC00MmgtNDUwcS00MSAwIC04MyA0MnQtNDIgODN2NTAwcTAgMTAzIDg2IDE4OXQxODkgODZ6TTcwMCAzMDB2LTIyNXEwIC0yMSAtMjcgLTQ4dC00OCAtMjdoLTE1MHEtMjEgMCAtNDggMjd0LTI3IDQ4djIyNWgzMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMjsiIGQ9Ik00NzUgMTMwMGg5NnEwIC0xNTAgODkuNSAtMjM5LjV0MjM5LjUgLTg5LjV2LTQ0NnEwIC00MSAtNDIgLTgzdC04MyAtNDJoLTQ1MHEtNDEgMCAtODMgNDJ0LTQyIDgzdjUwMHEwIDEwMyA4NiAxODl0MTg5IDg2ek03MDAgMzAwdi0yMjVxMCAtMjEgLTI3IC00OHQtNDggLTI3aC0xNTBxLTIxIDAgLTQ4IDI3dC0yNyA0OHYyMjVoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzM7IiBkPSJNMTI5NCA3NjdsLTYzOCAtMjgzbC0zNzggMTcwbC03OCAtNjB2LTIyNGwxMDAgLTE1MHYtMTk5bC0xNTAgMTQ4bC0xNTAgLTE0OXYyMDBsMTAwIDE1MHYyNTBxMCA0IC0wLjUgMTAuNXQwIDkuNXQxIDh0MyA4dDYuNSA2bDQ3IDQwbC0xNDcgNjVsNjQyIDI4M3pNMTAwMCAzODBsLTM1MCAtMTY2bC0zNTAgMTY2djE0N2wzNTAgLTE2NWwzNTAgMTY1di0xNDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzNDsiIGQ9Ik0yNTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek02NTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek0xMDUwIDgwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnQtNDQgLTEwNnQtMTA2IC00NHQtMTA2IDQ0dC00NCAxMDZ0NDQgMTA2dDEwNiA0NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjM1OyIgZD0iTTU1MCAxMTAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgNzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgMzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzY7IiBkPSJNMTI1IDExMDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEyNSA3MDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjUgdDE3LjUgNy41ek0xMjUgMzAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTk1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzc7IiBkPSJNMzUwIDEyMDBoNTAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTUwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNTAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY1MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek05MDAgMTAwMGgtNjAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDYwMHE0MSAwIDcwLjUgMjkuNSB0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMzUwIDkwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek00MDAgODAwdi0yMDBoNDAwdjIwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzg7IiBkPSJNMTUwIDExMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNSB0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MjAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV0MTQuNSAzNS41dDM1LjUgMTQuNWg1MHYyMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41aDUwdjIwMGgtNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzOTsiIGQ9Ik02NTAgMTE4N3E4NyAtNjcgMTE4LjUgLTE1NnQwIC0xNzh0LTExOC41IC0xNTVxLTg3IDY2IC0xMTguNSAxNTV0MCAxNzh0MTE4LjUgMTU2ek0zMDAgODAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAwIDgwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhxMCAxMjQgODggMjEydDIxMiA4OHpNMzAwIDUwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnogTTEwMDAgNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek03MDAgMTk5di0xNDRxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djE0MnE0MCAtNCA0MyAtNHExNyAwIDU3IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0MDsiIGQ9Ik03NDUgODc4bDY5IDE5cTI1IDYgNDUgLTEybDI5OCAtMjk1cTExIC0xMSAxNSAtMjYuNXQtMiAtMzAuNXEtNSAtMTQgLTE4IC0yMy41dC0yOCAtOS41aC04cTEgMCAxIC0xM3EwIC0yOSAtMiAtNTZ0LTguNSAtNjJ0LTIwIC02M3QtMzMgLTUzdC01MSAtMzl0LTcyLjUgLTE0aC0xNDZxLTE4NCAwIC0xODQgMjg4cTAgMjQgMTAgNDdxLTIwIDQgLTYyIDR0LTYzIC00cTExIC0yNCAxMSAtNDdxMCAtMjg4IC0xODQgLTI4OGgtMTQyIHEtNDggMCAtODQuNSAyMXQtNTYgNTF0LTMyIDcxLjV0LTE2IDc1dC0zLjUgNjguNXEwIDEzIDIgMTNoLTdxLTE1IDAgLTI3LjUgOS41dC0xOC41IDIzLjVxLTYgMTUgLTIgMzAuNXQxNSAyNS41bDI5OCAyOTZxMjAgMTggNDYgMTFsNzYgLTE5cTIwIC01IDMwLjUgLTIyLjV0NS41IC0zNy41dC0yMi41IC0zMXQtMzcuNSAtNWwtNTEgMTJsLTE4MiAtMTkzaDg5MWwtMTgyIDE5M2wtNDQgLTEycS0yMCAtNSAtMzcuNSA2dC0yMi41IDMxdDYgMzcuNSB0MzEgMjIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQxOyIgZD0iTTEyMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTUwMCA0NTBoLTI1cTAgMTUgLTQgMjQuNXQtOSAxNC41dC0xNyA3LjV0LTIwIDN0LTI1IDAuNWgtMTAwdi00MjVxMCAtMTEgMTIuNSAtMTcuNXQyNS41IC03LjVoMTJ2LTUwaC0yMDB2NTBxNTAgMCA1MCAyNXY0MjVoLTEwMHEtMTcgMCAtMjUgLTAuNXQtMjAgLTN0LTE3IC03LjV0LTkgLTE0LjV0LTQgLTI0LjVoLTI1djE1MGg1MDB2LTE1MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQyOyIgZD0iTTEwMDAgMzAwdjUwcS0yNSAwIC01NSAzMnEtMTQgMTQgLTI1IDMxdC0xNiAyN2wtNCAxMWwtMjg5IDc0N2gtNjlsLTMwMCAtNzU0cS0xOCAtMzUgLTM5IC01NnEtOSAtOSAtMjQuNSAtMTguNXQtMjYuNSAtMTQuNWwtMTEgLTV2LTUwaDI3M3Y1MHEtNDkgMCAtNzguNSAyMS41dC0xMS41IDY3LjVsNjkgMTc2aDI5M2w2MSAtMTY2cTEzIC0zNCAtMy41IC02Ni41dC01NS41IC0zMi41di01MGgzMTJ6TTQxMiA2OTFsMTM0IDM0MmwxMjEgLTM0MiBoLTI1NXpNMTEwMCAxNTB2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDM7IiBkPSJNNTAgMTIwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjExIDExMThoLTcwcS0xMyAwIC0xOCAtMTJsLTI5OSAtNzUzcS0xNyAtMzIgLTM1IC01MXEtMTggLTE4IC01NiAtMzRxLTEyIC01IC0xMiAtMTh2LTUwcTAgLTggNS41IC0xNHQxNC41IC02IGgyNzNxOCAwIDE0IDZ0NiAxNHY1MHEwIDggLTYgMTR0LTE0IDZxLTU1IDAgLTcxIDIzcS0xMCAxNCAwIDM5bDYzIDE2M2gyNjZsNTcgLTE1M3ExMSAtMzEgLTYgLTU1cS0xMiAtMTcgLTM2IC0xN3EtOCAwIC0xNCAtNnQtNiAtMTR2LTUwcTAgLTggNiAtMTR0MTQgLTZoMzEzcTggMCAxNCA2dDYgMTR2NTBxMCA3IC01LjUgMTN0LTEzLjUgN3EtMTcgMCAtNDIgMjVxLTI1IDI3IC00MCA2M2gtMWwtMjg4IDc0OHEtNSAxMiAtMTkgMTJ6TTYzOSA2MTEgaC0xOTdsMTAzIDI2NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ0OyIgZD0iTTEyMDAgMTEwMGgtMTIwMHYxMDBoMTIwMHYtMTAwek01MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtOTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djkwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDAgcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgOTAwdi0zMDBoMzAwdjMwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDU7IiBkPSJNNTAgMTIwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTkwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY5MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgNzAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgNjAwdi0zMDBoMzAwdjMwMGgtMzAwek0xMjAwIDBoLTEyMDB2MTAwaDEyMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ2OyIgZD0iTTUwIDEwMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMTAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoMTAwdi0xMDBoLTEwMHYtMTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djE1MGgtMTAwdi0zNTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA3MDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0NzsiIGQ9Ik0xMDAgMGgtMTAwdjEyMDBoMTAwdi0xMjAwek0yNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMDAgMTAwMHYtMzAwaDMwMHYzMDBoLTMwMHpNMjUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ4OyIgZD0iTTYwMCAxMTAwaDE1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTEwMGg0NTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDM1MHYxMDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41IHQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTUwdjEwMGgxMDB2LTEwMHpNNDAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0OTsiIGQ9Ik0xMjAwIDBoLTEwMHYxMjAwaDEwMHYtMTIwMHpNNTUwIDExMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUwOyIgZD0iTTg2NSA1NjVsLTQ5NCAtNDk0cS0yMyAtMjMgLTQxIC0yM3EtMTQgMCAtMjIgMTMuNXQtOCAzOC41djEwMDBxMCAyNSA4IDM4LjV0MjIgMTMuNXExOCAwIDQxIC0yM2w0OTQgLTQ5NHExNCAtMTQgMTQgLTM1dC0xNCAtMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI1MTsiIGQ9Ik0zMzUgNjM1bDQ5NCA0OTRxMjkgMjkgNTAgMjAuNXQyMSAtNDkuNXYtMTAwMHEwIC00MSAtMjEgLTQ5LjV0LTUwIDIwLjVsLTQ5NCA0OTRxLTE0IDE0IC0xNCAzNXQxNCAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUyOyIgZD0iTTEwMCA5MDBoMTAwMHE0MSAwIDQ5LjUgLTIxdC0yMC41IC01MGwtNDk0IC00OTRxLTE0IC0xNCAtMzUgLTE0dC0zNSAxNGwtNDk0IDQ5NHEtMjkgMjkgLTIwLjUgNTB0NDkuNSAyMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUzOyIgZD0iTTYzNSA4NjVsNDk0IC00OTRxMjkgLTI5IDIwLjUgLTUwdC00OS41IC0yMWgtMTAwMHEtNDEgMCAtNDkuNSAyMXQyMC41IDUwbDQ5NCA0OTRxMTQgMTQgMzUgMTR0MzUgLTE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTQ7IiBkPSJNNzAwIDc0MXYtMTgybC02OTIgLTMyM3YyMjFsNDEzIDE5M2wtNDEzIDE5M3YyMjF6TTEyMDAgMGgtODAwdjIwMGg4MDB2LTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU1OyIgZD0iTTEyMDAgOTAwaC0yMDB2LTEwMGgyMDB2LTEwMGgtMzAwdjMwMGgyMDB2MTAwaC0yMDB2MTAwaDMwMHYtMzAwek0wIDcwMGg1MHEwIDIxIDQgMzd0OS41IDI2LjV0MTggMTcuNXQyMiAxMXQyOC41IDUuNXQzMSAydDM3IDAuNWgxMDB2LTU1MHEwIC0yMiAtMjUgLTM0LjV0LTUwIC0xMy41bC0yNSAtMnYtMTAwaDQwMHYxMDBxLTQgMCAtMTEgMC41dC0yNCAzdC0zMCA3dC0yNCAxNXQtMTEgMjQuNXY1NTBoMTAwcTI1IDAgMzcgLTAuNXQzMSAtMiB0MjguNSAtNS41dDIyIC0xMXQxOCAtMTcuNXQ5LjUgLTI2LjV0NCAtMzdoNTB2MzAwaC04MDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU2OyIgZD0iTTgwMCA3MDBoLTUwcTAgMjEgLTQgMzd0LTkuNSAyNi41dC0xOCAxNy41dC0yMiAxMXQtMjguNSA1LjV0LTMxIDJ0LTM3IDAuNWgtMTAwdi01NTBxMCAtMjIgMjUgLTM0LjV0NTAgLTE0LjVsMjUgLTF2LTEwMGgtNDAwdjEwMHE0IDAgMTEgMC41dDI0IDN0MzAgN3QyNCAxNXQxMSAyNC41djU1MGgtMTAwcS0yNSAwIC0zNyAtMC41dC0zMSAtMnQtMjguNSAtNS41dC0yMiAtMTF0LTE4IC0xNy41dC05LjUgLTI2LjV0LTQgLTM3aC01MHYzMDAgaDgwMHYtMzAwek0xMTAwIDIwMGgtMjAwdi0xMDBoMjAwdi0xMDBoLTMwMHYzMDBoMjAwdjEwMGgtMjAwdjEwMGgzMDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU3OyIgZD0iTTcwMSAxMDk4aDE2MHExNiAwIDIxIC0xMXQtNyAtMjNsLTQ2NCAtNDY0bDQ2NCAtNDY0cTEyIC0xMiA3IC0yM3QtMjEgLTExaC0xNjBxLTEzIDAgLTIzIDlsLTQ3MSA0NzFxLTcgOCAtNyAxOHQ3IDE4bDQ3MSA0NzFxMTAgOSAyMyA5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTg7IiBkPSJNMzM5IDEwOThoMTYwcTEzIDAgMjMgLTlsNDcxIC00NzFxNyAtOCA3IC0xOHQtNyAtMThsLTQ3MSAtNDcxcS0xMCAtOSAtMjMgLTloLTE2MHEtMTYgMCAtMjEgMTF0NyAyM2w0NjQgNDY0bC00NjQgNDY0cS0xMiAxMiAtNyAyM3QyMSAxMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU5OyIgZD0iTTEwODcgODgycTExIC01IDExIC0yMXYtMTYwcTAgLTEzIC05IC0yM2wtNDcxIC00NzFxLTggLTcgLTE4IC03dC0xOCA3bC00NzEgNDcxcS05IDEwIC05IDIzdjE2MHEwIDE2IDExIDIxdDIzIC03bDQ2NCAtNDY0bDQ2NCA0NjRxMTIgMTIgMjMgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjYwOyIgZD0iTTYxOCA5OTNsNDcxIC00NzFxOSAtMTAgOSAtMjN2LTE2MHEwIC0xNiAtMTEgLTIxdC0yMyA3bC00NjQgNDY0bC00NjQgLTQ2NHEtMTIgLTEyIC0yMyAtN3QtMTEgMjF2MTYwcTAgMTMgOSAyM2w0NzEgNDcxcTggNyAxOCA3dDE4IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGY4ZmY7IiBkPSJNMTAwMCAxMjAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek00NTAgMTAwMGgxMDBxMjEgMCA0MCAtMTR0MjYgLTMzbDc5IC0xOTRxNSAxIDE2IDNxMzQgNiA1NCA5LjV0NjAgN3Q2NS41IDF0NjEgLTEwdDU2LjUgLTIzdDQyLjUgLTQydDI5IC02NHQ1IC05MnQtMTkuNSAtMTIxLjVxLTEgLTcgLTMgLTE5LjV0LTExIC01MHQtMjAuNSAtNzN0LTMyLjUgLTgxLjV0LTQ2LjUgLTgzdC02NCAtNzAgdC04Mi41IC01MHEtMTMgLTUgLTQyIC01dC02NS41IDIuNXQtNDcuNSAyLjVxLTE0IDAgLTQ5LjUgLTMuNXQtNjMgLTMuNXQtNDMuNSA3cS01NyAyNSAtMTA0LjUgNzguNXQtNzUgMTExLjV0LTQ2LjUgMTEydC0yNiA5MGwtNyAzNXEtMTUgNjMgLTE4IDExNXQ0LjUgODguNXQyNiA2NHQzOS41IDQzLjV0NTIgMjUuNXQ1OC41IDEzdDYyLjUgMnQ1OS41IC00LjV0NTUuNSAtOGwtMTQ3IDE5MnEtMTIgMTggLTUuNSAzMHQyNy41IDEyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNTExOyIgZD0iTTI1MCAxMjAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTUwMGwtMjU1IC0xNzhxLTE5IC05IC0zMiAtMXQtMTMgMjl2NjUwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQwMCAxMTAwdi0xMDBoMzAwdjEwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNmFhOyIgZD0iTTI1MCAxMjAwaDc1MHEzOSAwIDY5LjUgLTQwLjV0MzAuNSAtODQuNXYtOTMzbC03MDAgLTExN3Y5NTBsNjAwIDEyNWgtNzAwdi0xMDAwaC0xMDB2MTAyNXEwIDIzIDE1LjUgNDl0MzQuNSAyNnpNNTAwIDUyNXYtMTAwbDEwMCAyMHYxMDB6IiAvPgo8L2ZvbnQ%2BCjwvZGVmcz48L3N2Zz4g%20format%28%27svg%27%29%7D%2Eglyphicon%7Bposition%3Arelative%3Btop%3A1px%3Bdisplay%3Ainline%2Dblock%3Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3B%2Dwebkit%2Dfont%2Dsmoothing%3Aantialiased%3B%2Dmoz%2Dosx%2Dfont%2Dsmoothing%3Agrayscale%7D%2Eglyphicon%2Dasterisk%3Abefore%7Bcontent%3A%22%5C002a%22%7D%2Eglyphicon%2Dplus%3Abefore%7Bcontent%3A%22%5C002b%22%7D%2Eglyphicon%2Deuro%3Abefore%2C%2Eglyphicon%2Deur%3Abefore%7Bcontent%3A%22%5C20ac%22%7D%2Eglyphicon%2Dminus%3Abefore%7Bcontent%3A%22%5C2212%22%7D%2Eglyphicon%2Dcloud%3Abefore%7Bcontent%3A%22%5C2601%22%7D%2Eglyphicon%2Denvelope%3Abefore%7Bcontent%3A%22%5C2709%22%7D%2Eglyphicon%2Dpencil%3Abefore%7Bcontent%3A%22%5C270f%22%7D%2Eglyphicon%2Dglass%3Abefore%7Bcontent%3A%22%5Ce001%22%7D%2Eglyphicon%2Dmusic%3Abefore%7Bcontent%3A%22%5Ce002%22%7D%2Eglyphicon%2Dsearch%3Abefore%7Bcontent%3A%22%5Ce003%22%7D%2Eglyphicon%2Dheart%3Abefore%7Bcontent%3A%22%5Ce005%22%7D%2Eglyphicon%2Dstar%3Abefore%7Bcontent%3A%22%5Ce006%22%7D%2Eglyphicon%2Dstar%2Dempty%3Abefore%7Bcontent%3A%22%5Ce007%22%7D%2Eglyphicon%2Duser%3Abefore%7Bcontent%3A%22%5Ce008%22%7D%2Eglyphicon%2Dfilm%3Abefore%7Bcontent%3A%22%5Ce009%22%7D%2Eglyphicon%2Dth%2Dlarge%3Abefore%7Bcontent%3A%22%5Ce010%22%7D%2Eglyphicon%2Dth%3Abefore%7Bcontent%3A%22%5Ce011%22%7D%2Eglyphicon%2Dth%2Dlist%3Abefore%7Bcontent%3A%22%5Ce012%22%7D%2Eglyphicon%2Dok%3Abefore%7Bcontent%3A%22%5Ce013%22%7D%2Eglyphicon%2Dremove%3Abefore%7Bcontent%3A%22%5Ce014%22%7D%2Eglyphicon%2Dzoom%2Din%3Abefore%7Bcontent%3A%22%5Ce015%22%7D%2Eglyphicon%2Dzoom%2Dout%3Abefore%7Bcontent%3A%22%5Ce016%22%7D%2Eglyphicon%2Doff%3Abefore%7Bcontent%3A%22%5Ce017%22%7D%2Eglyphicon%2Dsignal%3Abefore%7Bcontent%3A%22%5Ce018%22%7D%2Eglyphicon%2Dcog%3Abefore%7Bcontent%3A%22%5Ce019%22%7D%2Eglyphicon%2Dtrash%3Abefore%7Bcontent%3A%22%5Ce020%22%7D%2Eglyphicon%2Dhome%3Abefore%7Bcontent%3A%22%5Ce021%22%7D%2Eglyphicon%2Dfile%3Abefore%7Bcontent%3A%22%5Ce022%22%7D%2Eglyphicon%2Dtime%3Abefore%7Bcontent%3A%22%5Ce023%22%7D%2Eglyphicon%2Droad%3Abefore%7Bcontent%3A%22%5Ce024%22%7D%2Eglyphicon%2Ddownload%2Dalt%3Abefore%7Bcontent%3A%22%5Ce025%22%7D%2Eglyphicon%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce026%22%7D%2Eglyphicon%2Dupload%3Abefore%7Bcontent%3A%22%5Ce027%22%7D%2Eglyphicon%2Dinbox%3Abefore%7Bcontent%3A%22%5Ce028%22%7D%2Eglyphicon%2Dplay%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce029%22%7D%2Eglyphicon%2Drepeat%3Abefore%7Bcontent%3A%22%5Ce030%22%7D%2Eglyphicon%2Drefresh%3Abefore%7Bcontent%3A%22%5Ce031%22%7D%2Eglyphicon%2Dlist%2Dalt%3Abefore%7Bcontent%3A%22%5Ce032%22%7D%2Eglyphicon%2Dlock%3Abefore%7Bcontent%3A%22%5Ce033%22%7D%2Eglyphicon%2Dflag%3Abefore%7Bcontent%3A%22%5Ce034%22%7D%2Eglyphicon%2Dheadphones%3Abefore%7Bcontent%3A%22%5Ce035%22%7D%2Eglyphicon%2Dvolume%2Doff%3Abefore%7Bcontent%3A%22%5Ce036%22%7D%2Eglyphicon%2Dvolume%2Ddown%3Abefore%7Bcontent%3A%22%5Ce037%22%7D%2Eglyphicon%2Dvolume%2Dup%3Abefore%7Bcontent%3A%22%5Ce038%22%7D%2Eglyphicon%2Dqrcode%3Abefore%7Bcontent%3A%22%5Ce039%22%7D%2Eglyphicon%2Dbarcode%3Abefore%7Bcontent%3A%22%5Ce040%22%7D%2Eglyphicon%2Dtag%3Abefore%7Bcontent%3A%22%5Ce041%22%7D%2Eglyphicon%2Dtags%3Abefore%7Bcontent%3A%22%5Ce042%22%7D%2Eglyphicon%2Dbook%3Abefore%7Bcontent%3A%22%5Ce043%22%7D%2Eglyphicon%2Dbookmark%3Abefore%7Bcontent%3A%22%5Ce044%22%7D%2Eglyphicon%2Dprint%3Abefore%7Bcontent%3A%22%5Ce045%22%7D%2Eglyphicon%2Dcamera%3Abefore%7Bcontent%3A%22%5Ce046%22%7D%2Eglyphicon%2Dfont%3Abefore%7Bcontent%3A%22%5Ce047%22%7D%2Eglyphicon%2Dbold%3Abefore%7Bcontent%3A%22%5Ce048%22%7D%2Eglyphicon%2Ditalic%3Abefore%7Bcontent%3A%22%5Ce049%22%7D%2Eglyphicon%2Dtext%2Dheight%3Abefore%7Bcontent%3A%22%5Ce050%22%7D%2Eglyphicon%2Dtext%2Dwidth%3Abefore%7Bcontent%3A%22%5Ce051%22%7D%2Eglyphicon%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce052%22%7D%2Eglyphicon%2Dalign%2Dcenter%3Abefore%7Bcontent%3A%22%5Ce053%22%7D%2Eglyphicon%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce054%22%7D%2Eglyphicon%2Dalign%2Djustify%3Abefore%7Bcontent%3A%22%5Ce055%22%7D%2Eglyphicon%2Dlist%3Abefore%7Bcontent%3A%22%5Ce056%22%7D%2Eglyphicon%2Dindent%2Dleft%3Abefore%7Bcontent%3A%22%5Ce057%22%7D%2Eglyphicon%2Dindent%2Dright%3Abefore%7Bcontent%3A%22%5Ce058%22%7D%2Eglyphicon%2Dfacetime%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce059%22%7D%2Eglyphicon%2Dpicture%3Abefore%7Bcontent%3A%22%5Ce060%22%7D%2Eglyphicon%2Dmap%2Dmarker%3Abefore%7Bcontent%3A%22%5Ce062%22%7D%2Eglyphicon%2Dadjust%3Abefore%7Bcontent%3A%22%5Ce063%22%7D%2Eglyphicon%2Dtint%3Abefore%7Bcontent%3A%22%5Ce064%22%7D%2Eglyphicon%2Dedit%3Abefore%7Bcontent%3A%22%5Ce065%22%7D%2Eglyphicon%2Dshare%3Abefore%7Bcontent%3A%22%5Ce066%22%7D%2Eglyphicon%2Dcheck%3Abefore%7Bcontent%3A%22%5Ce067%22%7D%2Eglyphicon%2Dmove%3Abefore%7Bcontent%3A%22%5Ce068%22%7D%2Eglyphicon%2Dstep%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce069%22%7D%2Eglyphicon%2Dfast%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce070%22%7D%2Eglyphicon%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce071%22%7D%2Eglyphicon%2Dplay%3Abefore%7Bcontent%3A%22%5Ce072%22%7D%2Eglyphicon%2Dpause%3Abefore%7Bcontent%3A%22%5Ce073%22%7D%2Eglyphicon%2Dstop%3Abefore%7Bcontent%3A%22%5Ce074%22%7D%2Eglyphicon%2Dforward%3Abefore%7Bcontent%3A%22%5Ce075%22%7D%2Eglyphicon%2Dfast%2Dforward%3Abefore%7Bcontent%3A%22%5Ce076%22%7D%2Eglyphicon%2Dstep%2Dforward%3Abefore%7Bcontent%3A%22%5Ce077%22%7D%2Eglyphicon%2Deject%3Abefore%7Bcontent%3A%22%5Ce078%22%7D%2Eglyphicon%2Dchevron%2Dleft%3Abefore%7Bcontent%3A%22%5Ce079%22%7D%2Eglyphicon%2Dchevron%2Dright%3Abefore%7Bcontent%3A%22%5Ce080%22%7D%2Eglyphicon%2Dplus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce081%22%7D%2Eglyphicon%2Dminus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce082%22%7D%2Eglyphicon%2Dremove%2Dsign%3Abefore%7Bcontent%3A%22%5Ce083%22%7D%2Eglyphicon%2Dok%2Dsign%3Abefore%7Bcontent%3A%22%5Ce084%22%7D%2Eglyphicon%2Dquestion%2Dsign%3Abefore%7Bcontent%3A%22%5Ce085%22%7D%2Eglyphicon%2Dinfo%2Dsign%3Abefore%7Bcontent%3A%22%5Ce086%22%7D%2Eglyphicon%2Dscreenshot%3Abefore%7Bcontent%3A%22%5Ce087%22%7D%2Eglyphicon%2Dremove%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce088%22%7D%2Eglyphicon%2Dok%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce089%22%7D%2Eglyphicon%2Dban%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce090%22%7D%2Eglyphicon%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce091%22%7D%2Eglyphicon%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce092%22%7D%2Eglyphicon%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce093%22%7D%2Eglyphicon%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce094%22%7D%2Eglyphicon%2Dshare%2Dalt%3Abefore%7Bcontent%3A%22%5Ce095%22%7D%2Eglyphicon%2Dresize%2Dfull%3Abefore%7Bcontent%3A%22%5Ce096%22%7D%2Eglyphicon%2Dresize%2Dsmall%3Abefore%7Bcontent%3A%22%5Ce097%22%7D%2Eglyphicon%2Dexclamation%2Dsign%3Abefore%7Bcontent%3A%22%5Ce101%22%7D%2Eglyphicon%2Dgift%3Abefore%7Bcontent%3A%22%5Ce102%22%7D%2Eglyphicon%2Dleaf%3Abefore%7Bcontent%3A%22%5Ce103%22%7D%2Eglyphicon%2Dfire%3Abefore%7Bcontent%3A%22%5Ce104%22%7D%2Eglyphicon%2Deye%2Dopen%3Abefore%7Bcontent%3A%22%5Ce105%22%7D%2Eglyphicon%2Deye%2Dclose%3Abefore%7Bcontent%3A%22%5Ce106%22%7D%2Eglyphicon%2Dwarning%2Dsign%3Abefore%7Bcontent%3A%22%5Ce107%22%7D%2Eglyphicon%2Dplane%3Abefore%7Bcontent%3A%22%5Ce108%22%7D%2Eglyphicon%2Dcalendar%3Abefore%7Bcontent%3A%22%5Ce109%22%7D%2Eglyphicon%2Drandom%3Abefore%7Bcontent%3A%22%5Ce110%22%7D%2Eglyphicon%2Dcomment%3Abefore%7Bcontent%3A%22%5Ce111%22%7D%2Eglyphicon%2Dmagnet%3Abefore%7Bcontent%3A%22%5Ce112%22%7D%2Eglyphicon%2Dchevron%2Dup%3Abefore%7Bcontent%3A%22%5Ce113%22%7D%2Eglyphicon%2Dchevron%2Ddown%3Abefore%7Bcontent%3A%22%5Ce114%22%7D%2Eglyphicon%2Dretweet%3Abefore%7Bcontent%3A%22%5Ce115%22%7D%2Eglyphicon%2Dshopping%2Dcart%3Abefore%7Bcontent%3A%22%5Ce116%22%7D%2Eglyphicon%2Dfolder%2Dclose%3Abefore%7Bcontent%3A%22%5Ce117%22%7D%2Eglyphicon%2Dfolder%2Dopen%3Abefore%7Bcontent%3A%22%5Ce118%22%7D%2Eglyphicon%2Dresize%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce119%22%7D%2Eglyphicon%2Dresize%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce120%22%7D%2Eglyphicon%2Dhdd%3Abefore%7Bcontent%3A%22%5Ce121%22%7D%2Eglyphicon%2Dbullhorn%3Abefore%7Bcontent%3A%22%5Ce122%22%7D%2Eglyphicon%2Dbell%3Abefore%7Bcontent%3A%22%5Ce123%22%7D%2Eglyphicon%2Dcertificate%3Abefore%7Bcontent%3A%22%5Ce124%22%7D%2Eglyphicon%2Dthumbs%2Dup%3Abefore%7Bcontent%3A%22%5Ce125%22%7D%2Eglyphicon%2Dthumbs%2Ddown%3Abefore%7Bcontent%3A%22%5Ce126%22%7D%2Eglyphicon%2Dhand%2Dright%3Abefore%7Bcontent%3A%22%5Ce127%22%7D%2Eglyphicon%2Dhand%2Dleft%3Abefore%7Bcontent%3A%22%5Ce128%22%7D%2Eglyphicon%2Dhand%2Dup%3Abefore%7Bcontent%3A%22%5Ce129%22%7D%2Eglyphicon%2Dhand%2Ddown%3Abefore%7Bcontent%3A%22%5Ce130%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce131%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce132%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce133%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce134%22%7D%2Eglyphicon%2Dglobe%3Abefore%7Bcontent%3A%22%5Ce135%22%7D%2Eglyphicon%2Dwrench%3Abefore%7Bcontent%3A%22%5Ce136%22%7D%2Eglyphicon%2Dtasks%3Abefore%7Bcontent%3A%22%5Ce137%22%7D%2Eglyphicon%2Dfilter%3Abefore%7Bcontent%3A%22%5Ce138%22%7D%2Eglyphicon%2Dbriefcase%3Abefore%7Bcontent%3A%22%5Ce139%22%7D%2Eglyphicon%2Dfullscreen%3Abefore%7Bcontent%3A%22%5Ce140%22%7D%2Eglyphicon%2Ddashboard%3Abefore%7Bcontent%3A%22%5Ce141%22%7D%2Eglyphicon%2Dpaperclip%3Abefore%7Bcontent%3A%22%5Ce142%22%7D%2Eglyphicon%2Dheart%2Dempty%3Abefore%7Bcontent%3A%22%5Ce143%22%7D%2Eglyphicon%2Dlink%3Abefore%7Bcontent%3A%22%5Ce144%22%7D%2Eglyphicon%2Dphone%3Abefore%7Bcontent%3A%22%5Ce145%22%7D%2Eglyphicon%2Dpushpin%3Abefore%7Bcontent%3A%22%5Ce146%22%7D%2Eglyphicon%2Dusd%3Abefore%7Bcontent%3A%22%5Ce148%22%7D%2Eglyphicon%2Dgbp%3Abefore%7Bcontent%3A%22%5Ce149%22%7D%2Eglyphicon%2Dsort%3Abefore%7Bcontent%3A%22%5Ce150%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%3Abefore%7Bcontent%3A%22%5Ce151%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%2Dalt%3Abefore%7Bcontent%3A%22%5Ce152%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%3Abefore%7Bcontent%3A%22%5Ce153%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%2Dalt%3Abefore%7Bcontent%3A%22%5Ce154%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%3Abefore%7Bcontent%3A%22%5Ce155%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%2Dalt%3Abefore%7Bcontent%3A%22%5Ce156%22%7D%2Eglyphicon%2Dunchecked%3Abefore%7Bcontent%3A%22%5Ce157%22%7D%2Eglyphicon%2Dexpand%3Abefore%7Bcontent%3A%22%5Ce158%22%7D%2Eglyphicon%2Dcollapse%2Ddown%3Abefore%7Bcontent%3A%22%5Ce159%22%7D%2Eglyphicon%2Dcollapse%2Dup%3Abefore%7Bcontent%3A%22%5Ce160%22%7D%2Eglyphicon%2Dlog%2Din%3Abefore%7Bcontent%3A%22%5Ce161%22%7D%2Eglyphicon%2Dflash%3Abefore%7Bcontent%3A%22%5Ce162%22%7D%2Eglyphicon%2Dlog%2Dout%3Abefore%7Bcontent%3A%22%5Ce163%22%7D%2Eglyphicon%2Dnew%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce164%22%7D%2Eglyphicon%2Drecord%3Abefore%7Bcontent%3A%22%5Ce165%22%7D%2Eglyphicon%2Dsave%3Abefore%7Bcontent%3A%22%5Ce166%22%7D%2Eglyphicon%2Dopen%3Abefore%7Bcontent%3A%22%5Ce167%22%7D%2Eglyphicon%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce168%22%7D%2Eglyphicon%2Dimport%3Abefore%7Bcontent%3A%22%5Ce169%22%7D%2Eglyphicon%2Dexport%3Abefore%7Bcontent%3A%22%5Ce170%22%7D%2Eglyphicon%2Dsend%3Abefore%7Bcontent%3A%22%5Ce171%22%7D%2Eglyphicon%2Dfloppy%2Ddisk%3Abefore%7Bcontent%3A%22%5Ce172%22%7D%2Eglyphicon%2Dfloppy%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce173%22%7D%2Eglyphicon%2Dfloppy%2Dremove%3Abefore%7Bcontent%3A%22%5Ce174%22%7D%2Eglyphicon%2Dfloppy%2Dsave%3Abefore%7Bcontent%3A%22%5Ce175%22%7D%2Eglyphicon%2Dfloppy%2Dopen%3Abefore%7Bcontent%3A%22%5Ce176%22%7D%2Eglyphicon%2Dcredit%2Dcard%3Abefore%7Bcontent%3A%22%5Ce177%22%7D%2Eglyphicon%2Dtransfer%3Abefore%7Bcontent%3A%22%5Ce178%22%7D%2Eglyphicon%2Dcutlery%3Abefore%7Bcontent%3A%22%5Ce179%22%7D%2Eglyphicon%2Dheader%3Abefore%7Bcontent%3A%22%5Ce180%22%7D%2Eglyphicon%2Dcompressed%3Abefore%7Bcontent%3A%22%5Ce181%22%7D%2Eglyphicon%2Dearphone%3Abefore%7Bcontent%3A%22%5Ce182%22%7D%2Eglyphicon%2Dphone%2Dalt%3Abefore%7Bcontent%3A%22%5Ce183%22%7D%2Eglyphicon%2Dtower%3Abefore%7Bcontent%3A%22%5Ce184%22%7D%2Eglyphicon%2Dstats%3Abefore%7Bcontent%3A%22%5Ce185%22%7D%2Eglyphicon%2Dsd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce186%22%7D%2Eglyphicon%2Dhd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce187%22%7D%2Eglyphicon%2Dsubtitles%3Abefore%7Bcontent%3A%22%5Ce188%22%7D%2Eglyphicon%2Dsound%2Dstereo%3Abefore%7Bcontent%3A%22%5Ce189%22%7D%2Eglyphicon%2Dsound%2Ddolby%3Abefore%7Bcontent%3A%22%5Ce190%22%7D%2Eglyphicon%2Dsound%2D5%2D1%3Abefore%7Bcontent%3A%22%5Ce191%22%7D%2Eglyphicon%2Dsound%2D6%2D1%3Abefore%7Bcontent%3A%22%5Ce192%22%7D%2Eglyphicon%2Dsound%2D7%2D1%3Abefore%7Bcontent%3A%22%5Ce193%22%7D%2Eglyphicon%2Dcopyright%2Dmark%3Abefore%7Bcontent%3A%22%5Ce194%22%7D%2Eglyphicon%2Dregistration%2Dmark%3Abefore%7Bcontent%3A%22%5Ce195%22%7D%2Eglyphicon%2Dcloud%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce197%22%7D%2Eglyphicon%2Dcloud%2Dupload%3Abefore%7Bcontent%3A%22%5Ce198%22%7D%2Eglyphicon%2Dtree%2Dconifer%3Abefore%7Bcontent%3A%22%5Ce199%22%7D%2Eglyphicon%2Dtree%2Ddeciduous%3Abefore%7Bcontent%3A%22%5Ce200%22%7D%2Eglyphicon%2Dcd%3Abefore%7Bcontent%3A%22%5Ce201%22%7D%2Eglyphicon%2Dsave%2Dfile%3Abefore%7Bcontent%3A%22%5Ce202%22%7D%2Eglyphicon%2Dopen%2Dfile%3Abefore%7Bcontent%3A%22%5Ce203%22%7D%2Eglyphicon%2Dlevel%2Dup%3Abefore%7Bcontent%3A%22%5Ce204%22%7D%2Eglyphicon%2Dcopy%3Abefore%7Bcontent%3A%22%5Ce205%22%7D%2Eglyphicon%2Dpaste%3Abefore%7Bcontent%3A%22%5Ce206%22%7D%2Eglyphicon%2Dalert%3Abefore%7Bcontent%3A%22%5Ce209%22%7D%2Eglyphicon%2Dequalizer%3Abefore%7Bcontent%3A%22%5Ce210%22%7D%2Eglyphicon%2Dking%3Abefore%7Bcontent%3A%22%5Ce211%22%7D%2Eglyphicon%2Dqueen%3Abefore%7Bcontent%3A%22%5Ce212%22%7D%2Eglyphicon%2Dpawn%3Abefore%7Bcontent%3A%22%5Ce213%22%7D%2Eglyphicon%2Dbishop%3Abefore%7Bcontent%3A%22%5Ce214%22%7D%2Eglyphicon%2Dknight%3Abefore%7Bcontent%3A%22%5Ce215%22%7D%2Eglyphicon%2Dbaby%2Dformula%3Abefore%7Bcontent%3A%22%5Ce216%22%7D%2Eglyphicon%2Dtent%3Abefore%7Bcontent%3A%22%5C26fa%22%7D%2Eglyphicon%2Dblackboard%3Abefore%7Bcontent%3A%22%5Ce218%22%7D%2Eglyphicon%2Dbed%3Abefore%7Bcontent%3A%22%5Ce219%22%7D%2Eglyphicon%2Dapple%3Abefore%7Bcontent%3A%22%5Cf8ff%22%7D%2Eglyphicon%2Derase%3Abefore%7Bcontent%3A%22%5Ce221%22%7D%2Eglyphicon%2Dhourglass%3Abefore%7Bcontent%3A%22%5C231b%22%7D%2Eglyphicon%2Dlamp%3Abefore%7Bcontent%3A%22%5Ce223%22%7D%2Eglyphicon%2Dduplicate%3Abefore%7Bcontent%3A%22%5Ce224%22%7D%2Eglyphicon%2Dpiggy%2Dbank%3Abefore%7Bcontent%3A%22%5Ce225%22%7D%2Eglyphicon%2Dscissors%3Abefore%7Bcontent%3A%22%5Ce226%22%7D%2Eglyphicon%2Dbitcoin%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dbtc%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dxbt%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dyen%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Djpy%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Druble%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Drub%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Dscale%3Abefore%7Bcontent%3A%22%5Ce230%22%7D%2Eglyphicon%2Dice%2Dlolly%3Abefore%7Bcontent%3A%22%5Ce231%22%7D%2Eglyphicon%2Dice%2Dlolly%2Dtasted%3Abefore%7Bcontent%3A%22%5Ce232%22%7D%2Eglyphicon%2Deducation%3Abefore%7Bcontent%3A%22%5Ce233%22%7D%2Eglyphicon%2Doption%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce234%22%7D%2Eglyphicon%2Doption%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce235%22%7D%2Eglyphicon%2Dmenu%2Dhamburger%3Abefore%7Bcontent%3A%22%5Ce236%22%7D%2Eglyphicon%2Dmodal%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce237%22%7D%2Eglyphicon%2Doil%3Abefore%7Bcontent%3A%22%5Ce238%22%7D%2Eglyphicon%2Dgrain%3Abefore%7Bcontent%3A%22%5Ce239%22%7D%2Eglyphicon%2Dsunglasses%3Abefore%7Bcontent%3A%22%5Ce240%22%7D%2Eglyphicon%2Dtext%2Dsize%3Abefore%7Bcontent%3A%22%5Ce241%22%7D%2Eglyphicon%2Dtext%2Dcolor%3Abefore%7Bcontent%3A%22%5Ce242%22%7D%2Eglyphicon%2Dtext%2Dbackground%3Abefore%7Bcontent%3A%22%5Ce243%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dtop%3Abefore%7Bcontent%3A%22%5Ce244%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce245%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce246%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce247%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce248%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce249%22%7D%2Eglyphicon%2Dtriangle%2Dright%3Abefore%7Bcontent%3A%22%5Ce250%22%7D%2Eglyphicon%2Dtriangle%2Dleft%3Abefore%7Bcontent%3A%22%5Ce251%22%7D%2Eglyphicon%2Dtriangle%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce252%22%7D%2Eglyphicon%2Dtriangle%2Dtop%3Abefore%7Bcontent%3A%22%5Ce253%22%7D%2Eglyphicon%2Dconsole%3Abefore%7Bcontent%3A%22%5Ce254%22%7D%2Eglyphicon%2Dsuperscript%3Abefore%7Bcontent%3A%22%5Ce255%22%7D%2Eglyphicon%2Dsubscript%3Abefore%7Bcontent%3A%22%5Ce256%22%7D%2Eglyphicon%2Dmenu%2Dleft%3Abefore%7Bcontent%3A%22%5Ce257%22%7D%2Eglyphicon%2Dmenu%2Dright%3Abefore%7Bcontent%3A%22%5Ce258%22%7D%2Eglyphicon%2Dmenu%2Ddown%3Abefore%7Bcontent%3A%22%5Ce259%22%7D%2Eglyphicon%2Dmenu%2Dup%3Abefore%7Bcontent%3A%22%5Ce260%22%7D%2A%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2A%3Abefore%2C%2A%3Aafter%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dhtml%7Bfont%2Dsize%3A10px%3B%2Dwebkit%2Dtap%2Dhighlight%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7Dbody%7Bfont%2Dfamily%3A%22Open%20Sans%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777777%3Bbackground%2Dcolor%3A%23fcfcfc%7Dinput%2Cbutton%2Cselect%2Ctextarea%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dsize%3Ainherit%3Bline%2Dheight%3Ainherit%7Da%7Bcolor%3A%23d9230f%3Btext%2Ddecoration%3Anone%7Da%3Ahover%2Ca%3Afocus%7Bcolor%3A%2391170a%3Btext%2Ddecoration%3Aunderline%7Da%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Dfigure%7Bmargin%3A0%7Dimg%7Bvertical%2Dalign%3Amiddle%7D%2Eimg%2Dresponsive%2C%2Ethumbnail%3Eimg%2C%2Ethumbnail%20a%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bdisplay%3Ablock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Drounded%7Bborder%2Dradius%3A6px%7D%2Eimg%2Dthumbnail%7Bpadding%3A4px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23fcfcfc%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Dcircle%7Bborder%2Dradius%3A50%25%7Dhr%7Bmargin%2Dtop%3A18px%3Bmargin%2Dbottom%3A18px%3Bborder%3A0%3Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Esr%2Donly%7Bposition%3Aabsolute%3Bwidth%3A1px%3Bheight%3A1px%3Bmargin%3A%2D1px%3Bpadding%3A0%3Boverflow%3Ahidden%3Bclip%3Arect%280%2C%200%2C%200%2C%200%29%3Bborder%3A0%7D%2Esr%2Donly%2Dfocusable%3Aactive%2C%2Esr%2Donly%2Dfocusable%3Afocus%7Bposition%3Astatic%3Bwidth%3Aauto%3Bheight%3Aauto%3Bmargin%3A0%3Boverflow%3Avisible%3Bclip%3Aauto%7D%5Brole%3D%22button%22%5D%7Bcursor%3Apointer%7Dh1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%2C%2Eh1%2C%2Eh2%2C%2Eh3%2C%2Eh4%2C%2Eh5%2C%2Eh6%7Bfont%2Dfamily%3A%22Open%20Sans%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E1%3Bcolor%3A%23444444%7Dh1%20small%2Ch2%20small%2Ch3%20small%2Ch4%20small%2Ch5%20small%2Ch6%20small%2C%2Eh1%20small%2C%2Eh2%20small%2C%2Eh3%20small%2C%2Eh4%20small%2C%2Eh5%20small%2C%2Eh6%20small%2Ch1%20%2Esmall%2Ch2%20%2Esmall%2Ch3%20%2Esmall%2Ch4%20%2Esmall%2Ch5%20%2Esmall%2Ch6%20%2Esmall%2C%2Eh1%20%2Esmall%2C%2Eh2%20%2Esmall%2C%2Eh3%20%2Esmall%2C%2Eh4%20%2Esmall%2C%2Eh5%20%2Esmall%2C%2Eh6%20%2Esmall%7Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23808080%7Dh1%2C%2Eh1%2Ch2%2C%2Eh2%2Ch3%2C%2Eh3%7Bmargin%2Dtop%3A18px%3Bmargin%2Dbottom%3A9px%7Dh1%20small%2C%2Eh1%20small%2Ch2%20small%2C%2Eh2%20small%2Ch3%20small%2C%2Eh3%20small%2Ch1%20%2Esmall%2C%2Eh1%20%2Esmall%2Ch2%20%2Esmall%2C%2Eh2%20%2Esmall%2Ch3%20%2Esmall%2C%2Eh3%20%2Esmall%7Bfont%2Dsize%3A65%25%7Dh4%2C%2Eh4%2Ch5%2C%2Eh5%2Ch6%2C%2Eh6%7Bmargin%2Dtop%3A9px%3Bmargin%2Dbottom%3A9px%7Dh4%20small%2C%2Eh4%20small%2Ch5%20small%2C%2Eh5%20small%2Ch6%20small%2C%2Eh6%20small%2Ch4%20%2Esmall%2C%2Eh4%20%2Esmall%2Ch5%20%2Esmall%2C%2Eh5%20%2Esmall%2Ch6%20%2Esmall%2C%2Eh6%20%2Esmall%7Bfont%2Dsize%3A75%25%7Dh1%2C%2Eh1%7Bfont%2Dsize%3A33px%7Dh2%2C%2Eh2%7Bfont%2Dsize%3A27px%7Dh3%2C%2Eh3%7Bfont%2Dsize%3A23px%7Dh4%2C%2Eh4%7Bfont%2Dsize%3A17px%7Dh5%2C%2Eh5%7Bfont%2Dsize%3A13px%7Dh6%2C%2Eh6%7Bfont%2Dsize%3A12px%7Dp%7Bmargin%3A0%200%209px%7D%2Elead%7Bmargin%2Dbottom%3A18px%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E4%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Elead%7Bfont%2Dsize%3A19%2E5px%7D%7Dsmall%2C%2Esmall%7Bfont%2Dsize%3A92%25%7Dmark%2C%2Emark%7Bbackground%2Dcolor%3A%23fcf8e3%3Bpadding%3A%2E2em%7D%2Etext%2Dleft%7Btext%2Dalign%3Aleft%7D%2Etext%2Dright%7Btext%2Dalign%3Aright%7D%2Etext%2Dcenter%7Btext%2Dalign%3Acenter%7D%2Etext%2Djustify%7Btext%2Dalign%3Ajustify%7D%2Etext%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7D%2Etext%2Dlowercase%7Btext%2Dtransform%3Alowercase%7D%2Etext%2Duppercase%7Btext%2Dtransform%3Auppercase%7D%2Etext%2Dcapitalize%7Btext%2Dtransform%3Acapitalize%7D%2Etext%2Dmuted%7Bcolor%3A%23808080%7D%2Etext%2Dprimary%7Bcolor%3A%23d9230f%7Da%2Etext%2Dprimary%3Ahover%2Ca%2Etext%2Dprimary%3Afocus%7Bcolor%3A%23a91b0c%7D%2Etext%2Dsuccess%7Bcolor%3A%23468847%7Da%2Etext%2Dsuccess%3Ahover%2Ca%2Etext%2Dsuccess%3Afocus%7Bcolor%3A%23356635%7D%2Etext%2Dinfo%7Bcolor%3A%233a87ad%7Da%2Etext%2Dinfo%3Ahover%2Ca%2Etext%2Dinfo%3Afocus%7Bcolor%3A%232d6987%7D%2Etext%2Dwarning%7Bcolor%3A%23c09853%7Da%2Etext%2Dwarning%3Ahover%2Ca%2Etext%2Dwarning%3Afocus%7Bcolor%3A%23a47e3c%7D%2Etext%2Ddanger%7Bcolor%3A%23b94a48%7Da%2Etext%2Ddanger%3Ahover%2Ca%2Etext%2Ddanger%3Afocus%7Bcolor%3A%23953b39%7D%2Ebg%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23d9230f%7Da%2Ebg%2Dprimary%3Ahover%2Ca%2Ebg%2Dprimary%3Afocus%7Bbackground%2Dcolor%3A%23a91b0c%7D%2Ebg%2Dsuccess%7Bbackground%2Dcolor%3A%23dff0d8%7Da%2Ebg%2Dsuccess%3Ahover%2Ca%2Ebg%2Dsuccess%3Afocus%7Bbackground%2Dcolor%3A%23c1e2b3%7D%2Ebg%2Dinfo%7Bbackground%2Dcolor%3A%23d9edf7%7Da%2Ebg%2Dinfo%3Ahover%2Ca%2Ebg%2Dinfo%3Afocus%7Bbackground%2Dcolor%3A%23afd9ee%7D%2Ebg%2Dwarning%7Bbackground%2Dcolor%3A%23fcf8e3%7Da%2Ebg%2Dwarning%3Ahover%2Ca%2Ebg%2Dwarning%3Afocus%7Bbackground%2Dcolor%3A%23f7ecb5%7D%2Ebg%2Ddanger%7Bbackground%2Dcolor%3A%23f2dede%7Da%2Ebg%2Ddanger%3Ahover%2Ca%2Ebg%2Ddanger%3Afocus%7Bbackground%2Dcolor%3A%23e4b9b9%7D%2Epage%2Dheader%7Bpadding%2Dbottom%3A8px%3Bmargin%3A36px%200%2018px%3Bborder%2Dbottom%3A1px%20solid%20%23dddddd%7Dul%2Col%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A9px%7Dul%20ul%2Col%20ul%2Cul%20ol%2Col%20ol%7Bmargin%2Dbottom%3A0%7D%2Elist%2Dunstyled%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%3Bmargin%2Dleft%3A%2D5px%7D%2Elist%2Dinline%3Eli%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A5px%3Bpadding%2Dright%3A5px%7Ddl%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A18px%7Ddt%2Cdd%7Bline%2Dheight%3A1%2E42857143%7Ddt%7Bfont%2Dweight%3Abold%7Ddd%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Edl%2Dhorizontal%20dt%7Bfloat%3Aleft%3Bwidth%3A160px%3Bclear%3Aleft%3Btext%2Dalign%3Aright%3Boverflow%3Ahidden%3Btext%2Doverflow%3Aellipsis%3Bwhite%2Dspace%3Anowrap%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A180px%7D%7Dabbr%5Btitle%5D%2Cabbr%5Bdata%2Doriginal%2Dtitle%5D%7Bcursor%3Ahelp%3Bborder%2Dbottom%3A1px%20dotted%20%23808080%7D%2Einitialism%7Bfont%2Dsize%3A90%25%3Btext%2Dtransform%3Auppercase%7Dblockquote%7Bpadding%3A9px%2018px%3Bmargin%3A0%200%2018px%3Bfont%2Dsize%3A16%2E25px%3Bborder%2Dleft%3A5px%20solid%20%23dddddd%7Dblockquote%20p%3Alast%2Dchild%2Cblockquote%20ul%3Alast%2Dchild%2Cblockquote%20ol%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7Dblockquote%20footer%2Cblockquote%20small%2Cblockquote%20%2Esmall%7Bdisplay%3Ablock%3Bfont%2Dsize%3A80%25%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23808080%7Dblockquote%20footer%3Abefore%2Cblockquote%20small%3Abefore%2Cblockquote%20%2Esmall%3Abefore%7Bcontent%3A%27%5C2014%20%5C00A0%27%7D%2Eblockquote%2Dreverse%2Cblockquote%2Epull%2Dright%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A0%3Bborder%2Dright%3A5px%20solid%20%23dddddd%3Bborder%2Dleft%3A0%3Btext%2Dalign%3Aright%7D%2Eblockquote%2Dreverse%20footer%3Abefore%2Cblockquote%2Epull%2Dright%20footer%3Abefore%2C%2Eblockquote%2Dreverse%20small%3Abefore%2Cblockquote%2Epull%2Dright%20small%3Abefore%2C%2Eblockquote%2Dreverse%20%2Esmall%3Abefore%2Cblockquote%2Epull%2Dright%20%2Esmall%3Abefore%7Bcontent%3A%27%27%7D%2Eblockquote%2Dreverse%20footer%3Aafter%2Cblockquote%2Epull%2Dright%20footer%3Aafter%2C%2Eblockquote%2Dreverse%20small%3Aafter%2Cblockquote%2Epull%2Dright%20small%3Aafter%2C%2Eblockquote%2Dreverse%20%2Esmall%3Aafter%2Cblockquote%2Epull%2Dright%20%2Esmall%3Aafter%7Bcontent%3A%27%5C00A0%20%5C2014%27%7Daddress%7Bmargin%2Dbottom%3A18px%3Bfont%2Dstyle%3Anormal%3Bline%2Dheight%3A1%2E42857143%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%7Dcode%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23c7254e%3Bbackground%2Dcolor%3A%23f9f2f4%3Bborder%2Dradius%3A4px%7Dkbd%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23333333%3Bborder%2Dradius%3A3px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%7Dkbd%20kbd%7Bpadding%3A0%3Bfont%2Dsize%3A100%25%3Bfont%2Dweight%3Abold%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Dpre%7Bdisplay%3Ablock%3Bpadding%3A8%2E5px%3Bmargin%3A0%200%209px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E42857143%3Bword%2Dbreak%3Abreak%2Dall%3Bword%2Dwrap%3Abreak%2Dword%3Bcolor%3A%23444444%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%2Dradius%3A4px%7Dpre%20code%7Bpadding%3A0%3Bfont%2Dsize%3Ainherit%3Bcolor%3Ainherit%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dradius%3A0%7D%2Epre%2Dscrollable%7Bmax%2Dheight%3A340px%3Boverflow%2Dy%3Ascroll%7D%2Econtainer%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%7Bwidth%3A750px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Econtainer%7Bwidth%3A970px%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Econtainer%7Bwidth%3A1170px%7D%7D%2Econtainer%2Dfluid%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Erow%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dsm%2D1%2C%2Ecol%2Dmd%2D1%2C%2Ecol%2Dlg%2D1%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dxs%2D9%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dlg%2D12%7Bposition%3Arelative%3Bmin%2Dheight%3A1px%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dxs%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dxs%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dxs%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dxs%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dxs%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dxs%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dxs%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dxs%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dxs%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dxs%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dxs%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dxs%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dxs%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dxs%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dxs%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dxs%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dxs%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dxs%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dxs%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dxs%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dxs%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dxs%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dxs%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dxs%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dxs%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dxs%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dsm%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dsm%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dsm%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dsm%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dsm%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dsm%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dsm%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dsm%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dsm%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dsm%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dsm%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dsm%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dsm%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dsm%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dsm%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dsm%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dsm%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dsm%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dsm%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dsm%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dsm%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dsm%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dsm%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dsm%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dsm%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dsm%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dmd%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dmd%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dmd%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dmd%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dmd%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dmd%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dmd%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dmd%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dmd%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dmd%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dmd%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dmd%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dmd%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dmd%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dmd%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dmd%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dmd%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dmd%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dmd%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dmd%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dmd%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dmd%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dmd%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dmd%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dmd%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dmd%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dlg%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dlg%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dlg%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dlg%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dlg%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dlg%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dlg%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dlg%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dlg%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dlg%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dlg%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dlg%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dlg%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dlg%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dlg%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dlg%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dlg%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dlg%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dlg%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dlg%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dlg%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dlg%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dlg%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dlg%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dlg%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dlg%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7Dtable%7Bbackground%2Dcolor%3Atransparent%7Dcaption%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bcolor%3A%23808080%3Btext%2Dalign%3Aleft%7Dth%7B%7D%2Etable%7Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A18px%7D%2Etable%3Ethead%3Etr%3Eth%2C%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%3Etfoot%3Etr%3Etd%7Bpadding%3A8px%3Bline%2Dheight%3A1%2E42857143%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Etable%3Ethead%3Etr%3Eth%7Bvertical%2Dalign%3Abottom%3Bborder%2Dbottom%3A2px%20solid%20%23dddddd%7D%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Etd%7Bborder%2Dtop%3A0%7D%2Etable%3Etbody%2Btbody%7Bborder%2Dtop%3A2px%20solid%20%23dddddd%7D%2Etable%20%2Etable%7Bbackground%2Dcolor%3A%23fcfcfc%7D%2Etable%2Dcondensed%3Ethead%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Eth%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Etd%7Bpadding%3A5px%7D%2Etable%2Dbordered%7Bborder%3A1px%20solid%20%23dddddd%7D%2Etable%2Dbordered%3Ethead%3Etr%3Eth%2C%2Etable%2Dbordered%3Etbody%3Etr%3Eth%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Etbody%3Etr%3Etd%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%7Bborder%3A1px%20solid%20%23dddddd%7D%2Etable%2Dbordered%3Ethead%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%7Bborder%2Dbottom%2Dwidth%3A2px%7D%2Etable%2Dstriped%3Etbody%3Etr%3Anth%2Dof%2Dtype%28odd%29%7Bbackground%2Dcolor%3A%23f9f9f9%7D%2Etable%2Dhover%3Etbody%3Etr%3Ahover%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%20col%5Bclass%2A%3D%22col%2D%22%5D%7Bposition%3Astatic%3Bfloat%3Anone%3Bdisplay%3Atable%2Dcolumn%7Dtable%20td%5Bclass%2A%3D%22col%2D%22%5D%2Ctable%20th%5Bclass%2A%3D%22col%2D%22%5D%7Bposition%3Astatic%3Bfloat%3Anone%3Bdisplay%3Atable%2Dcell%7D%2Etable%3Ethead%3Etr%3Etd%2Eactive%2C%2Etable%3Etbody%3Etr%3Etd%2Eactive%2C%2Etable%3Etfoot%3Etr%3Etd%2Eactive%2C%2Etable%3Ethead%3Etr%3Eth%2Eactive%2C%2Etable%3Etbody%3Etr%3Eth%2Eactive%2C%2Etable%3Etfoot%3Etr%3Eth%2Eactive%2C%2Etable%3Ethead%3Etr%2Eactive%3Etd%2C%2Etable%3Etbody%3Etr%2Eactive%3Etd%2C%2Etable%3Etfoot%3Etr%2Eactive%3Etd%2C%2Etable%3Ethead%3Etr%2Eactive%3Eth%2C%2Etable%3Etbody%3Etr%2Eactive%3Eth%2C%2Etable%3Etfoot%3Etr%2Eactive%3Eth%7Bbackground%2Dcolor%3A%23f5f5f5%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Eactive%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23e8e8e8%7D%2Etable%3Ethead%3Etr%3Etd%2Esuccess%2C%2Etable%3Etbody%3Etr%3Etd%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Etd%2Esuccess%2C%2Etable%3Ethead%3Etr%3Eth%2Esuccess%2C%2Etable%3Etbody%3Etr%3Eth%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Eth%2Esuccess%2C%2Etable%3Ethead%3Etr%2Esuccess%3Etd%2C%2Etable%3Etbody%3Etr%2Esuccess%3Etd%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Etd%2C%2Etable%3Ethead%3Etr%2Esuccess%3Eth%2C%2Etable%3Etbody%3Etr%2Esuccess%3Eth%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Eth%7Bbackground%2Dcolor%3A%23dff0d8%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Esuccess%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23d0e9c6%7D%2Etable%3Ethead%3Etr%3Etd%2Einfo%2C%2Etable%3Etbody%3Etr%3Etd%2Einfo%2C%2Etable%3Etfoot%3Etr%3Etd%2Einfo%2C%2Etable%3Ethead%3Etr%3Eth%2Einfo%2C%2Etable%3Etbody%3Etr%3Eth%2Einfo%2C%2Etable%3Etfoot%3Etr%3Eth%2Einfo%2C%2Etable%3Ethead%3Etr%2Einfo%3Etd%2C%2Etable%3Etbody%3Etr%2Einfo%3Etd%2C%2Etable%3Etfoot%3Etr%2Einfo%3Etd%2C%2Etable%3Ethead%3Etr%2Einfo%3Eth%2C%2Etable%3Etbody%3Etr%2Einfo%3Eth%2C%2Etable%3Etfoot%3Etr%2Einfo%3Eth%7Bbackground%2Dcolor%3A%23d9edf7%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Einfo%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23c4e3f3%7D%2Etable%3Ethead%3Etr%3Etd%2Ewarning%2C%2Etable%3Etbody%3Etr%3Etd%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Etd%2Ewarning%2C%2Etable%3Ethead%3Etr%3Eth%2Ewarning%2C%2Etable%3Etbody%3Etr%3Eth%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Eth%2Ewarning%2C%2Etable%3Ethead%3Etr%2Ewarning%3Etd%2C%2Etable%3Etbody%3Etr%2Ewarning%3Etd%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Etd%2C%2Etable%3Ethead%3Etr%2Ewarning%3Eth%2C%2Etable%3Etbody%3Etr%2Ewarning%3Eth%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Eth%7Bbackground%2Dcolor%3A%23fcf8e3%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Ewarning%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23faf2cc%7D%2Etable%3Ethead%3Etr%3Etd%2Edanger%2C%2Etable%3Etbody%3Etr%3Etd%2Edanger%2C%2Etable%3Etfoot%3Etr%3Etd%2Edanger%2C%2Etable%3Ethead%3Etr%3Eth%2Edanger%2C%2Etable%3Etbody%3Etr%3Eth%2Edanger%2C%2Etable%3Etfoot%3Etr%3Eth%2Edanger%2C%2Etable%3Ethead%3Etr%2Edanger%3Etd%2C%2Etable%3Etbody%3Etr%2Edanger%3Etd%2C%2Etable%3Etfoot%3Etr%2Edanger%3Etd%2C%2Etable%3Ethead%3Etr%2Edanger%3Eth%2C%2Etable%3Etbody%3Etr%2Edanger%3Eth%2C%2Etable%3Etfoot%3Etr%2Edanger%3Eth%7Bbackground%2Dcolor%3A%23f2dede%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Edanger%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23ebcccc%7D%2Etable%2Dresponsive%7Boverflow%2Dx%3Aauto%3Bmin%2Dheight%3A0%2E01%25%7D%40media%20screen%20and%20%28max%2Dwidth%3A767px%29%7B%2Etable%2Dresponsive%7Bwidth%3A100%25%3Bmargin%2Dbottom%3A13%2E5px%3Boverflow%2Dy%3Ahidden%3B%2Dms%2Doverflow%2Dstyle%3A%2Dms%2Dautohiding%2Dscrollbar%3Bborder%3A1px%20solid%20%23dddddd%7D%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Etd%7Bwhite%2Dspace%3Anowrap%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%7Bborder%2Dbottom%3A0%7D%7Dfieldset%7Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%3Bmin%2Dwidth%3A0%7Dlegend%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%3A0%3Bmargin%2Dbottom%3A18px%3Bfont%2Dsize%3A19%2E5px%3Bline%2Dheight%3Ainherit%3Bcolor%3A%23777777%3Bborder%3A0%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7Dlabel%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A5px%3Bfont%2Dweight%3Abold%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dinput%5Btype%3D%22radio%22%5D%2Cinput%5Btype%3D%22checkbox%22%5D%7Bmargin%3A4px%200%200%3Bmargin%2Dtop%3A1px%20%5C9%3Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22file%22%5D%7Bdisplay%3Ablock%7Dinput%5Btype%3D%22range%22%5D%7Bdisplay%3Ablock%3Bwidth%3A100%25%7Dselect%5Bmultiple%5D%2Cselect%5Bsize%5D%7Bheight%3Aauto%7Dinput%5Btype%3D%22file%22%5D%3Afocus%2Cinput%5Btype%3D%22radio%22%5D%3Afocus%2Cinput%5Btype%3D%22checkbox%22%5D%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Doutput%7Bdisplay%3Ablock%3Bpadding%2Dtop%3A9px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777777%7D%2Eform%2Dcontrol%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bheight%3A36px%3Bpadding%3A8px%2012px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777777%3Bbackground%2Dcolor%3A%23ffffff%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dwebkit%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2C%2Dwebkit%2Dbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3B%2Do%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3Btransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%7D%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366afe9%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C0%2E6%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C0%2E6%29%7D%2Eform%2Dcontrol%3A%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23dddddd%3Bopacity%3A1%7D%2Eform%2Dcontrol%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23dddddd%7D%2Eform%2Dcontrol%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23dddddd%7D%2Eform%2Dcontrol%3A%3A%2Dms%2Dexpand%7Bborder%3A0%3Bbackground%2Dcolor%3Atransparent%7D%2Eform%2Dcontrol%5Bdisabled%5D%2C%2Eform%2Dcontrol%5Breadonly%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bbackground%2Dcolor%3A%23dddddd%3Bopacity%3A1%7D%2Eform%2Dcontrol%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bcursor%3Anot%2Dallowed%7Dtextarea%2Eform%2Dcontrol%7Bheight%3Aauto%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dappearance%3Anone%7D%40media%20screen%20and%20%28%2Dwebkit%2Dmin%2Ddevice%2Dpixel%2Dratio%3A0%29%7Binput%5Btype%3D%22date%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22time%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22month%22%5D%2Eform%2Dcontrol%7Bline%2Dheight%3A36px%7Dinput%5Btype%3D%22date%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22time%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22month%22%5D%2Einput%2Dsm%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22date%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22time%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22datetime%2Dlocal%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22month%22%5D%7Bline%2Dheight%3A30px%7Dinput%5Btype%3D%22date%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22time%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22month%22%5D%2Einput%2Dlg%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22date%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22time%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22datetime%2Dlocal%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22month%22%5D%7Bline%2Dheight%3A53px%7D%7D%2Eform%2Dgroup%7Bmargin%2Dbottom%3A15px%7D%2Eradio%2C%2Echeckbox%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Eradio%20label%2C%2Echeckbox%20label%7Bmin%2Dheight%3A18px%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3Anormal%3Bcursor%3Apointer%7D%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eradio%2Dinline%20input%5Btype%3D%22radio%22%5D%2C%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%2C%2Echeckbox%2Dinline%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Aabsolute%3Bmargin%2Dleft%3A%2D20px%3Bmargin%2Dtop%3A4px%20%5C9%7D%2Eradio%2B%2Eradio%2C%2Echeckbox%2B%2Echeckbox%7Bmargin%2Dtop%3A%2D5px%7D%2Eradio%2Dinline%2C%2Echeckbox%2Dinline%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%3Bfont%2Dweight%3Anormal%3Bcursor%3Apointer%7D%2Eradio%2Dinline%2B%2Eradio%2Dinline%2C%2Echeckbox%2Dinline%2B%2Echeckbox%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dleft%3A10px%7Dinput%5Btype%3D%22radio%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22checkbox%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22radio%22%5D%2Edisabled%2Cinput%5Btype%3D%22checkbox%22%5D%2Edisabled%2Cfieldset%5Bdisabled%5D%20input%5Btype%3D%22radio%22%5D%2Cfieldset%5Bdisabled%5D%20input%5Btype%3D%22checkbox%22%5D%7Bcursor%3Anot%2Dallowed%7D%2Eradio%2Dinline%2Edisabled%2C%2Echeckbox%2Dinline%2Edisabled%2Cfieldset%5Bdisabled%5D%20%2Eradio%2Dinline%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%2Dinline%7Bcursor%3Anot%2Dallowed%7D%2Eradio%2Edisabled%20label%2C%2Echeckbox%2Edisabled%20label%2Cfieldset%5Bdisabled%5D%20%2Eradio%20label%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%20label%7Bcursor%3Anot%2Dallowed%7D%2Eform%2Dcontrol%2Dstatic%7Bpadding%2Dtop%3A9px%3Bpadding%2Dbottom%3A9px%3Bmargin%2Dbottom%3A0%3Bmin%2Dheight%3A31px%7D%2Eform%2Dcontrol%2Dstatic%2Einput%2Dlg%2C%2Eform%2Dcontrol%2Dstatic%2Einput%2Dsm%7Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%2Einput%2Dsm%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7Dselect%2Einput%2Dsm%7Bheight%3A30px%3Bline%2Dheight%3A30px%7Dtextarea%2Einput%2Dsm%2Cselect%5Bmultiple%5D%2Einput%2Dsm%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Eform%2Dgroup%2Dsm%20select%2Eform%2Dcontrol%7Bheight%3A30px%3Bline%2Dheight%3A30px%7D%2Eform%2Dgroup%2Dsm%20textarea%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dsm%20select%5Bmultiple%5D%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A30px%3Bmin%2Dheight%3A30px%3Bpadding%3A6px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Einput%2Dlg%7Bheight%3A53px%3Bpadding%3A14px%2016px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7Dselect%2Einput%2Dlg%7Bheight%3A53px%3Bline%2Dheight%3A53px%7Dtextarea%2Einput%2Dlg%2Cselect%5Bmultiple%5D%2Einput%2Dlg%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%7Bheight%3A53px%3Bpadding%3A14px%2016px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7D%2Eform%2Dgroup%2Dlg%20select%2Eform%2Dcontrol%7Bheight%3A53px%3Bline%2Dheight%3A53px%7D%2Eform%2Dgroup%2Dlg%20textarea%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dlg%20select%5Bmultiple%5D%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A53px%3Bmin%2Dheight%3A35px%3Bpadding%3A15px%2016px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A1%2E3333333%7D%2Ehas%2Dfeedback%7Bposition%3Arelative%7D%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%7Bpadding%2Dright%3A45px%7D%2Eform%2Dcontrol%2Dfeedback%7Bposition%3Aabsolute%3Btop%3A0%3Bright%3A0%3Bz%2Dindex%3A2%3Bdisplay%3Ablock%3Bwidth%3A36px%3Bheight%3A36px%3Bline%2Dheight%3A36px%3Btext%2Dalign%3Acenter%3Bpointer%2Devents%3Anone%7D%2Einput%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A53px%3Bheight%3A53px%3Bline%2Dheight%3A53px%7D%2Einput%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A30px%3Bheight%3A30px%3Bline%2Dheight%3A30px%7D%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%7Bcolor%3A%23468847%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23468847%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23356635%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237aba7b%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237aba7b%7D%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23468847%3Bborder%2Dcolor%3A%23468847%3Bbackground%2Dcolor%3A%23dff0d8%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23468847%7D%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%7Bcolor%3A%23c09853%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23c09853%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23a47e3c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23dbc59e%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23dbc59e%7D%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23c09853%3Bborder%2Dcolor%3A%23c09853%3Bbackground%2Dcolor%3A%23fcf8e3%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23c09853%7D%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%7Bcolor%3A%23b94a48%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23b94a48%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23953b39%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23d59392%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23d59392%7D%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23b94a48%3Bborder%2Dcolor%3A%23b94a48%3Bbackground%2Dcolor%3A%23f2dede%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23b94a48%7D%2Ehas%2Dfeedback%20label%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A23px%7D%2Ehas%2Dfeedback%20label%2Esr%2Donly%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%2Ehelp%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A10px%3Bcolor%3A%23b7b7b7%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dinline%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Eform%2Dinline%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bwidth%3Aauto%7D%2Eform%2Dinline%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Eform%2Dinline%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eradio%2C%2Eform%2Dinline%20%2Echeckbox%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eradio%20label%2C%2Eform%2Dinline%20%2Echeckbox%20label%7Bpadding%2Dleft%3A0%7D%2Eform%2Dinline%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eform%2Dinline%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Eform%2Dinline%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Eradio%2Dinline%2C%2Eform%2Dhorizontal%20%2Echeckbox%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bpadding%2Dtop%3A9px%7D%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Echeckbox%7Bmin%2Dheight%3A27px%7D%2Eform%2Dhorizontal%20%2Eform%2Dgroup%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Btext%2Dalign%3Aright%3Bmargin%2Dbottom%3A0%3Bpadding%2Dtop%3A9px%7D%7D%2Eform%2Dhorizontal%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Bright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dlg%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A15px%3Bfont%2Dsize%3A17px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dsm%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A6px%3Bfont%2Dsize%3A12px%7D%7D%2Ebtn%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3Anormal%3Btext%2Dalign%3Acenter%3Bvertical%2Dalign%3Amiddle%3B%2Dms%2Dtouch%2Daction%3Amanipulation%3Btouch%2Daction%3Amanipulation%3Bcursor%3Apointer%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bwhite%2Dspace%3Anowrap%3Bpadding%3A8px%2012px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%7D%2Ebtn%3Afocus%2C%2Ebtn%3Aactive%3Afocus%2C%2Ebtn%2Eactive%3Afocus%2C%2Ebtn%2Efocus%2C%2Ebtn%3Aactive%2Efocus%2C%2Ebtn%2Eactive%2Efocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Ebtn%3Ahover%2C%2Ebtn%3Afocus%2C%2Ebtn%2Efocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%7D%2Ebtn%3Aactive%2C%2Ebtn%2Eactive%7Boutline%3A0%3Bbackground%2Dimage%3Anone%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%7Bcursor%3Anot%2Dallowed%3Bopacity%3A0%2E65%3Bfilter%3Aalpha%28opacity%3D65%29%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Da%2Ebtn%2Edisabled%2Cfieldset%5Bdisabled%5D%20a%2Ebtn%7Bpointer%2Devents%3Anone%7D%2Ebtn%2Ddefault%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23474949%3Bborder%2Dcolor%3A%23474949%7D%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232e2f2f%3Bborder%2Dcolor%3A%23080808%7D%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232e2f2f%3Bborder%2Dcolor%3A%23292a2a%7D%2Ebtn%2Ddefault%3Aactive%2C%2Ebtn%2Ddefault%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232e2f2f%3Bborder%2Dcolor%3A%23292a2a%7D%2Ebtn%2Ddefault%3Aactive%3Ahover%2C%2Ebtn%2Ddefault%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%3Aactive%3Afocus%2C%2Ebtn%2Ddefault%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%3Aactive%2Efocus%2C%2Ebtn%2Ddefault%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231c1d1d%3Bborder%2Dcolor%3A%23080808%7D%2Ebtn%2Ddefault%3Aactive%2C%2Ebtn%2Ddefault%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddefault%2Edisabled%3Ahover%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%2Edisabled%3Afocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%2Edisabled%2Efocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Efocus%7Bbackground%2Dcolor%3A%23474949%3Bborder%2Dcolor%3A%23474949%7D%2Ebtn%2Ddefault%20%2Ebadge%7Bcolor%3A%23474949%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dprimary%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23d9230f%7D%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23a91b0c%3Bborder%2Dcolor%3A%23621007%7D%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23a91b0c%3Bborder%2Dcolor%3A%23a01a0b%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23a91b0c%3Bborder%2Dcolor%3A%23a01a0b%7D%2Ebtn%2Dprimary%3Aactive%3Ahover%2C%2Ebtn%2Dprimary%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%3Aactive%3Afocus%2C%2Ebtn%2Dprimary%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%3Aactive%2Efocus%2C%2Ebtn%2Dprimary%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23881609%3Bborder%2Dcolor%3A%23621007%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dprimary%2Edisabled%3Ahover%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%2Edisabled%3Afocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%2Edisabled%2Efocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Efocus%7Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23d9230f%7D%2Ebtn%2Dprimary%20%2Ebadge%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23469408%3Bborder%2Dcolor%3A%23469408%7D%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232f6405%3Bborder%2Dcolor%3A%230d1b01%7D%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232f6405%3Bborder%2Dcolor%3A%232b5a05%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232f6405%3Bborder%2Dcolor%3A%232b5a05%7D%2Ebtn%2Dsuccess%3Aactive%3Ahover%2C%2Ebtn%2Dsuccess%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%3Aactive%3Afocus%2C%2Ebtn%2Dsuccess%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%3Aactive%2Efocus%2C%2Ebtn%2Dsuccess%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231f4204%3Bborder%2Dcolor%3A%230d1b01%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dsuccess%2Edisabled%3Ahover%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%2Edisabled%3Afocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%2Edisabled%2Efocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Efocus%7Bbackground%2Dcolor%3A%23469408%3Bborder%2Dcolor%3A%23469408%7D%2Ebtn%2Dsuccess%20%2Ebadge%7Bcolor%3A%23469408%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23029acf%3Bborder%2Dcolor%3A%23029acf%7D%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2302749c%3Bborder%2Dcolor%3A%23013c51%7D%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2302749c%3Bborder%2Dcolor%3A%23016d92%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2302749c%3Bborder%2Dcolor%3A%23016d92%7D%2Ebtn%2Dinfo%3Aactive%3Ahover%2C%2Ebtn%2Dinfo%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%3Aactive%3Afocus%2C%2Ebtn%2Dinfo%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%3Aactive%2Efocus%2C%2Ebtn%2Dinfo%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23015a79%3Bborder%2Dcolor%3A%23013c51%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dinfo%2Edisabled%3Ahover%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%2Edisabled%3Afocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%2Edisabled%2Efocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Efocus%7Bbackground%2Dcolor%3A%23029acf%3Bborder%2Dcolor%3A%23029acf%7D%2Ebtn%2Dinfo%20%2Ebadge%7Bcolor%3A%23029acf%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%239b479f%3Bborder%2Dcolor%3A%239b479f%7D%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2379377c%3Bborder%2Dcolor%3A%23452047%7D%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2379377c%3Bborder%2Dcolor%3A%23723475%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2379377c%3Bborder%2Dcolor%3A%23723475%7D%2Ebtn%2Dwarning%3Aactive%3Ahover%2C%2Ebtn%2Dwarning%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%3Aactive%3Afocus%2C%2Ebtn%2Dwarning%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%3Aactive%2Efocus%2C%2Ebtn%2Dwarning%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23612c63%3Bborder%2Dcolor%3A%23452047%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dwarning%2Edisabled%3Ahover%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%2Edisabled%3Afocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%2Edisabled%2Efocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Efocus%7Bbackground%2Dcolor%3A%239b479f%3Bborder%2Dcolor%3A%239b479f%7D%2Ebtn%2Dwarning%20%2Ebadge%7Bcolor%3A%239b479f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9831f%3Bborder%2Dcolor%3A%23d9831f%7D%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ac6819%3Bborder%2Dcolor%3A%2369400f%7D%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ac6819%3Bborder%2Dcolor%3A%23a36317%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ac6819%3Bborder%2Dcolor%3A%23a36317%7D%2Ebtn%2Ddanger%3Aactive%3Ahover%2C%2Ebtn%2Ddanger%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%3Aactive%3Afocus%2C%2Ebtn%2Ddanger%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%3Aactive%2Efocus%2C%2Ebtn%2Ddanger%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%238d5514%3Bborder%2Dcolor%3A%2369400f%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddanger%2Edisabled%3Ahover%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%2Edisabled%3Afocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%2Edisabled%2Efocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Efocus%7Bbackground%2Dcolor%3A%23d9831f%3Bborder%2Dcolor%3A%23d9831f%7D%2Ebtn%2Ddanger%20%2Ebadge%7Bcolor%3A%23d9831f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dlink%7Bcolor%3A%23d9230f%3Bfont%2Dweight%3Anormal%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%2Eactive%2C%2Ebtn%2Dlink%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%7Bbackground%2Dcolor%3Atransparent%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Aactive%7Bborder%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%2391170a%3Btext%2Ddecoration%3Aunderline%3Bbackground%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23808080%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Dlg%2C%2Ebtn%2Dgroup%2Dlg%3E%2Ebtn%7Bpadding%3A14px%2016px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7D%2Ebtn%2Dsm%2C%2Ebtn%2Dgroup%2Dsm%3E%2Ebtn%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dxs%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%7Bpadding%3A1px%205px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dblock%7Bdisplay%3Ablock%3Bwidth%3A100%25%7D%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dtop%3A5px%7Dinput%5Btype%3D%22submit%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22reset%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22button%22%5D%2Ebtn%2Dblock%7Bwidth%3A100%25%7D%2Efade%7Bopacity%3A0%3B%2Dwebkit%2Dtransition%3Aopacity%200%2E15s%20linear%3B%2Do%2Dtransition%3Aopacity%200%2E15s%20linear%3Btransition%3Aopacity%200%2E15s%20linear%7D%2Efade%2Ein%7Bopacity%3A1%7D%2Ecollapse%7Bdisplay%3Anone%7D%2Ecollapse%2Ein%7Bdisplay%3Ablock%7Dtr%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%7Dtbody%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%2Dgroup%7D%2Ecollapsing%7Bposition%3Arelative%3Bheight%3A0%3Boverflow%3Ahidden%3B%2Dwebkit%2Dtransition%2Dproperty%3Aheight%2C%20visibility%3B%2Do%2Dtransition%2Dproperty%3Aheight%2C%20visibility%3Btransition%2Dproperty%3Aheight%2C%20visibility%3B%2Dwebkit%2Dtransition%2Dduration%3A0%2E35s%3B%2Do%2Dtransition%2Dduration%3A0%2E35s%3Btransition%2Dduration%3A0%2E35s%3B%2Dwebkit%2Dtransition%2Dtiming%2Dfunction%3Aease%3B%2Do%2Dtransition%2Dtiming%2Dfunction%3Aease%3Btransition%2Dtiming%2Dfunction%3Aease%7D%2Ecaret%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A0%3Bheight%3A0%3Bmargin%2Dleft%3A2px%3Bvertical%2Dalign%3Amiddle%3Bborder%2Dtop%3A4px%20dashed%3Bborder%2Dtop%3A4px%20solid%20%5C9%3Bborder%2Dright%3A4px%20solid%20transparent%3Bborder%2Dleft%3A4px%20solid%20transparent%7D%2Edropup%2C%2Edropdown%7Bposition%3Arelative%7D%2Edropdown%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Edropdown%2Dmenu%7Bposition%3Aabsolute%3Btop%3A100%25%3Bleft%3A0%3Bz%2Dindex%3A1000%3Bdisplay%3Anone%3Bfloat%3Aleft%3Bmin%2Dwidth%3A160px%3Bpadding%3A5px%200%3Bmargin%3A2px%200%200%3Blist%2Dstyle%3Anone%3Bfont%2Dsize%3A13px%3Btext%2Dalign%3Aleft%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E15%29%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C0%2E175%29%3Bbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C0%2E175%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%7D%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%20%2Edivider%7Bheight%3A1px%3Bmargin%3A8px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Edropdown%2Dmenu%3Eli%3Ea%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bclear%3Aboth%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23444444%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%7D%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Boutline%3A0%3Bbackground%2Dcolor%3A%23d9230f%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23808080%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%3Bcursor%3Anot%2Dallowed%7D%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Eopen%3Ea%7Boutline%3A0%7D%2Edropdown%2Dmenu%2Dright%7Bleft%3Aauto%3Bright%3A0%7D%2Edropdown%2Dmenu%2Dleft%7Bleft%3A0%3Bright%3Aauto%7D%2Edropdown%2Dheader%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23808080%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dbackdrop%7Bposition%3Afixed%3Bleft%3A0%3Bright%3A0%3Bbottom%3A0%3Btop%3A0%3Bz%2Dindex%3A990%7D%2Epull%2Dright%3E%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Edropup%20%2Ecaret%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Ecaret%7Bborder%2Dtop%3A0%3Bborder%2Dbottom%3A4px%20dashed%3Bborder%2Dbottom%3A4px%20solid%20%5C9%3Bcontent%3A%22%22%7D%2Edropup%20%2Edropdown%2Dmenu%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A100%25%3Bmargin%2Dbottom%3A2px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dright%20%2Edropdown%2Dmenu%7Bleft%3Aauto%3Bright%3A0%7D%2Enavbar%2Dright%20%2Edropdown%2Dmenu%2Dleft%7Bleft%3A0%3Bright%3Aauto%7D%7D%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Amiddle%7D%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%7Bposition%3Arelative%3Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Eactive%7Bz%2Dindex%3A2%7D%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A%2D1px%7D%2Ebtn%2Dtoolbar%7Bmargin%2Dleft%3A%2D5px%7D%2Ebtn%2Dtoolbar%20%2Ebtn%2C%2Ebtn%2Dtoolbar%20%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%20%2Einput%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dtoolbar%3E%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%3E%2Einput%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%20%2Edropdown%2Dtoggle%3Aactive%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Edropdown%2Dtoggle%7Bpadding%2Dleft%3A8px%3Bpadding%2Dright%3A8px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlg%2B%2Edropdown%2Dtoggle%7Bpadding%2Dleft%3A12px%3Bpadding%2Dright%3A12px%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dlink%7B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%20%2Ecaret%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Edropup%20%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A0%205px%205px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bfloat%3Anone%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Djustified%7Bdisplay%3Atable%3Bwidth%3A100%25%3Btable%2Dlayout%3Afixed%3Bborder%2Dcollapse%3Aseparate%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%7Bfloat%3Anone%3Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Ebtn%7Bwidth%3A100%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Edropdown%2Dmenu%7Bleft%3Aauto%7D%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%20input%5Btype%3D%22radio%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3D%22radio%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%20input%5Btype%3D%22checkbox%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Aabsolute%3Bclip%3Arect%280%2C%200%2C%200%2C%200%29%3Bpointer%2Devents%3Anone%7D%2Einput%2Dgroup%7Bposition%3Arelative%3Bdisplay%3Atable%3Bborder%2Dcollapse%3Aseparate%7D%2Einput%2Dgroup%5Bclass%2A%3D%22col%2D%22%5D%7Bfloat%3Anone%3Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bposition%3Arelative%3Bz%2Dindex%3A2%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmargin%2Dbottom%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afocus%7Bz%2Dindex%3A3%7D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A53px%3Bpadding%3A14px%2016px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7Dselect%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A53px%3Bline%2Dheight%3A53px%7Dtextarea%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7Dselect%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A30px%3Bline%2Dheight%3A30px%7Dtextarea%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%2C%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bdisplay%3Atable%2Dcell%7D%2Einput%2Dgroup%2Daddon%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bwidth%3A1%25%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%7D%2Einput%2Dgroup%2Daddon%7Bpadding%3A8px%2012px%3Bfont%2Dsize%3A13px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23777777%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23dddddd%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A4px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dsm%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bborder%2Dradius%3A3px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dlg%7Bpadding%3A14px%2016px%3Bfont%2Dsize%3A17px%3Bborder%2Dradius%3A6px%7D%2Einput%2Dgroup%2Daddon%20input%5Btype%3D%22radio%22%5D%2C%2Einput%2Dgroup%2Daddon%20input%5Btype%3D%22checkbox%22%5D%7Bmargin%2Dtop%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%7Bborder%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Alast%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%7Bborder%2Dleft%3A0%7D%2Einput%2Dgroup%2Dbtn%7Bposition%3Arelative%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bposition%3Arelative%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Ahover%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Afocus%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Aactive%7Bz%2Dindex%3A2%7D%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%7Bmargin%2Dright%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%7Bz%2Dindex%3A2%3Bmargin%2Dleft%3A%2D1px%7D%2Enav%7Bmargin%2Dbottom%3A0%3Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Enav%3Eli%7Bposition%3Arelative%3Bdisplay%3Ablock%7D%2Enav%3Eli%3Ea%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%7D%2Enav%3Eli%3Ea%3Ahover%2C%2Enav%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23dddddd%7D%2Enav%3Eli%2Edisabled%3Ea%7Bcolor%3A%23808080%7D%2Enav%3Eli%2Edisabled%3Ea%3Ahover%2C%2Enav%3Eli%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23808080%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bcursor%3Anot%2Dallowed%7D%2Enav%20%2Eopen%3Ea%2C%2Enav%20%2Eopen%3Ea%3Ahover%2C%2Enav%20%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3A%23dddddd%3Bborder%2Dcolor%3A%23d9230f%7D%2Enav%20%2Enav%2Ddivider%7Bheight%3A1px%3Bmargin%3A8px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Enav%3Eli%3Ea%3Eimg%7Bmax%2Dwidth%3Anone%7D%2Enav%2Dtabs%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%7D%2Enav%2Dtabs%3Eli%7Bfloat%3Aleft%3Bmargin%2Dbottom%3A%2D1px%7D%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dright%3A2px%3Bline%2Dheight%3A1%2E42857143%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%7Bborder%2Dcolor%3A%23dddddd%20%23dddddd%20%23dddddd%7D%2Enav%2Dtabs%3Eli%2Eactive%3Ea%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Afocus%7Bcolor%3A%23777777%3Bbackground%2Dcolor%3A%23fcfcfc%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dbottom%2Dcolor%3Atransparent%3Bcursor%3Adefault%7D%2Enav%2Dtabs%2Enav%2Djustified%7Bwidth%3A100%25%3Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Btext%2Dalign%3Acenter%3Bmargin%2Dbottom%3A5px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%3A1px%20solid%20%23dddddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dbottom%2Dcolor%3A%23fcfcfc%7D%7D%2Enav%2Dpills%3Eli%7Bfloat%3Aleft%7D%2Enav%2Dpills%3Eli%3Ea%7Bborder%2Dradius%3A4px%7D%2Enav%2Dpills%3Eli%2Bli%7Bmargin%2Dleft%3A2px%7D%2Enav%2Dpills%3Eli%2Eactive%3Ea%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%7D%2Enav%2Dstacked%3Eli%7Bfloat%3Anone%7D%2Enav%2Dstacked%3Eli%2Bli%7Bmargin%2Dtop%3A2px%3Bmargin%2Dleft%3A0%7D%2Enav%2Djustified%7Bwidth%3A100%25%7D%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Djustified%3Eli%3Ea%7Btext%2Dalign%3Acenter%3Bmargin%2Dbottom%3A5px%7D%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Djustified%7Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%3A1px%20solid%20%23dddddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dbottom%2Dcolor%3A%23fcfcfc%7D%7D%2Etab%2Dcontent%3E%2Etab%2Dpane%7Bdisplay%3Anone%7D%2Etab%2Dcontent%3E%2Eactive%7Bdisplay%3Ablock%7D%2Enav%2Dtabs%20%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A%2D1px%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Enavbar%7Bposition%3Arelative%3Bmin%2Dheight%3A40px%3Bmargin%2Dbottom%3A18px%3Bborder%3A1px%20solid%20transparent%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%7Bborder%2Dradius%3A4px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dheader%7Bfloat%3Aleft%7D%7D%2Enavbar%2Dcollapse%7Boverflow%2Dx%3Avisible%3Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bborder%2Dtop%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dcollapse%7Bwidth%3Aauto%3Bborder%2Dtop%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dcollapse%2Ecollapse%7Bdisplay%3Ablock%20%21important%3Bheight%3Aauto%20%21important%3Bpadding%2Dbottom%3A0%3Boverflow%3Avisible%20%21important%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Avisible%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A340px%7D%40media%20%28max%2Ddevice%2Dwidth%3A480px%29%20and%20%28orientation%3Alandscape%29%7B%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A200px%7D%7D%2Econtainer%3E%2Enavbar%2Dheader%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%3E%2Enavbar%2Dheader%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%7Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%7D%7D%2Enavbar%2Dstatic%2Dtop%7Bz%2Dindex%3A1000%3Bborder%2Dwidth%3A0%200%201px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dstatic%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bposition%3Afixed%3Bright%3A0%3Bleft%3A0%3Bz%2Dindex%3A1030%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%7Btop%3A0%3Bborder%2Dwidth%3A0%200%201px%7D%2Enavbar%2Dfixed%2Dbottom%7Bbottom%3A0%3Bmargin%2Dbottom%3A0%3Bborder%2Dwidth%3A1px%200%200%7D%2Enavbar%2Dbrand%7Bfloat%3Aleft%3Bpadding%3A11px%2015px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A18px%3Bheight%3A40px%7D%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Dbrand%3Afocus%7Btext%2Ddecoration%3Anone%7D%2Enavbar%2Dbrand%3Eimg%7Bdisplay%3Ablock%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%3E%2Econtainer%20%2Enavbar%2Dbrand%2C%2Enavbar%3E%2Econtainer%2Dfluid%20%2Enavbar%2Dbrand%7Bmargin%2Dleft%3A%2D15px%7D%7D%2Enavbar%2Dtoggle%7Bposition%3Arelative%3Bfloat%3Aright%3Bmargin%2Dright%3A15px%3Bpadding%3A9px%2010px%3Bmargin%2Dtop%3A3px%3Bmargin%2Dbottom%3A3px%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Enavbar%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bdisplay%3Ablock%3Bwidth%3A22px%3Bheight%3A2px%3Bborder%2Dradius%3A1px%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%2B%2Eicon%2Dbar%7Bmargin%2Dtop%3A4px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtoggle%7Bdisplay%3Anone%7D%7D%2Enavbar%2Dnav%7Bmargin%3A5%2E5px%20%2D15px%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A10px%3Bpadding%2Dbottom%3A10px%3Bline%2Dheight%3A18px%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%7Bposition%3Astatic%3Bfloat%3Anone%3Bwidth%3Aauto%3Bmargin%2Dtop%3A0%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edropdown%2Dheader%7Bpadding%3A5px%2015px%205px%2025px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bline%2Dheight%3A18px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bbackground%2Dimage%3Anone%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dnav%7Bfloat%3Aleft%3Bmargin%3A0%7D%2Enavbar%2Dnav%3Eli%7Bfloat%3Aleft%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A11px%3Bpadding%2Dbottom%3A11px%7D%7D%2Enavbar%2Dform%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%3Bpadding%3A10px%2015px%3Bborder%2Dtop%3A1px%20solid%20transparent%3Bborder%2Dbottom%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bmargin%2Dtop%3A2px%3Bmargin%2Dbottom%3A2px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bwidth%3Aauto%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Enavbar%2Dform%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eradio%2C%2Enavbar%2Dform%20%2Echeckbox%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eradio%20label%2C%2Enavbar%2Dform%20%2Echeckbox%20label%7Bpadding%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Enavbar%2Dform%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bmargin%2Dbottom%3A5px%7D%2Enavbar%2Dform%20%2Eform%2Dgroup%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%7Bwidth%3Aauto%3Bborder%3A0%3Bmargin%2Dleft%3A0%3Bmargin%2Dright%3A0%3Bpadding%2Dtop%3A0%3Bpadding%2Dbottom%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%7D%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dbottom%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dbtn%7Bmargin%2Dtop%3A2px%3Bmargin%2Dbottom%3A2px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%7Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A5px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%7Bmargin%2Dtop%3A9px%3Bmargin%2Dbottom%3A9px%7D%2Enavbar%2Dtext%7Bmargin%2Dtop%3A11px%3Bmargin%2Dbottom%3A11px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtext%7Bfloat%3Aleft%3Bmargin%2Dleft%3A15px%3Bmargin%2Dright%3A15px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dleft%7Bfloat%3Aleft%20%21important%7D%2Enavbar%2Dright%7Bfloat%3Aright%20%21important%3Bmargin%2Dright%3A%2D15px%7D%2Enavbar%2Dright%7E%2Enavbar%2Dright%7Bmargin%2Dright%3A0%7D%7D%2Enavbar%2Ddefault%7Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23eeeeee%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%7Bcolor%3A%23777777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Afocus%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtext%7Bcolor%3A%23777777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23777777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23444444%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23dddddd%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Afocus%7Bbackground%2Dcolor%3A%23dddddd%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23cccccc%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23eeeeee%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3Atransparent%3Bcolor%3A%23d9230f%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23777777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23444444%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%7Bcolor%3A%23777777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23d9230f%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%7Bcolor%3A%23777777%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23d9230f%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23444444%7D%2Enavbar%2Dinverse%7Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23a91b0c%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%7Bcolor%3A%23fac0ba%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtext%7Bcolor%3A%23fac0ba%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23fac0ba%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23cccccc%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23a91b0c%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Afocus%7Bbackground%2Dcolor%3A%23a91b0c%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23b81e0d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3Atransparent%3Bcolor%3A%23ffffff%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edropdown%2Dheader%7Bborder%2Dcolor%3A%23a91b0c%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edivider%7Bbackground%2Dcolor%3A%23a91b0c%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23fac0ba%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23cccccc%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%7Bcolor%3A%23fac0ba%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%7Bcolor%3A%23fac0ba%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23cccccc%7D%2Ebreadcrumb%7Bpadding%3A8px%2015px%3Bmargin%2Dbottom%3A18px%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dradius%3A4px%7D%2Ebreadcrumb%3Eli%7Bdisplay%3Ainline%2Dblock%7D%2Ebreadcrumb%3Eli%2Bli%3Abefore%7Bcontent%3A%22%2F%5C00a0%22%3Bpadding%3A0%205px%3Bcolor%3A%23cccccc%7D%2Ebreadcrumb%3E%2Eactive%7Bcolor%3A%23808080%7D%2Epagination%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A0%3Bmargin%3A18px%200%3Bborder%2Dradius%3A4px%7D%2Epagination%3Eli%7Bdisplay%3Ainline%7D%2Epagination%3Eli%3Ea%2C%2Epagination%3Eli%3Espan%7Bposition%3Arelative%3Bfloat%3Aleft%3Bpadding%3A8px%2012px%3Bline%2Dheight%3A1%2E42857143%3Btext%2Ddecoration%3Anone%3Bcolor%3A%23444444%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bmargin%2Dleft%3A%2D1px%7D%2Epagination%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%3Eli%3Afirst%2Dchild%3Espan%7Bmargin%2Dleft%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%7D%2Epagination%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%7D%2Epagination%3Eli%3Ea%3Ahover%2C%2Epagination%3Eli%3Espan%3Ahover%2C%2Epagination%3Eli%3Ea%3Afocus%2C%2Epagination%3Eli%3Espan%3Afocus%7Bz%2Dindex%3A2%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23d9230f%7D%2Epagination%3E%2Eactive%3Ea%2C%2Epagination%3E%2Eactive%3Espan%2C%2Epagination%3E%2Eactive%3Ea%3Ahover%2C%2Epagination%3E%2Eactive%3Espan%3Ahover%2C%2Epagination%3E%2Eactive%3Ea%3Afocus%2C%2Epagination%3E%2Eactive%3Espan%3Afocus%7Bz%2Dindex%3A3%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23d9230f%3Bcursor%3Adefault%7D%2Epagination%3E%2Edisabled%3Espan%2C%2Epagination%3E%2Edisabled%3Espan%3Ahover%2C%2Epagination%3E%2Edisabled%3Espan%3Afocus%2C%2Epagination%3E%2Edisabled%3Ea%2C%2Epagination%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23dddddd%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23dddddd%3Bcursor%3Anot%2Dallowed%7D%2Epagination%2Dlg%3Eli%3Ea%2C%2Epagination%2Dlg%3Eli%3Espan%7Bpadding%3A14px%2016px%3Bfont%2Dsize%3A17px%3Bline%2Dheight%3A1%2E3333333%7D%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dbottom%2Dleft%2Dradius%3A6px%3Bborder%2Dtop%2Dleft%2Dradius%3A6px%7D%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A6px%3Bborder%2Dtop%2Dright%2Dradius%3A6px%7D%2Epagination%2Dsm%3Eli%3Ea%2C%2Epagination%2Dsm%3Eli%3Espan%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epager%7Bpadding%2Dleft%3A0%3Bmargin%3A18px%200%3Blist%2Dstyle%3Anone%3Btext%2Dalign%3Acenter%7D%2Epager%20li%7Bdisplay%3Ainline%7D%2Epager%20li%3Ea%2C%2Epager%20li%3Espan%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A5px%2014px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A15px%7D%2Epager%20li%3Ea%3Ahover%2C%2Epager%20li%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23d9230f%7D%2Epager%20%2Enext%3Ea%2C%2Epager%20%2Enext%3Espan%7Bfloat%3Aright%7D%2Epager%20%2Eprevious%3Ea%2C%2Epager%20%2Eprevious%3Espan%7Bfloat%3Aleft%7D%2Epager%20%2Edisabled%3Ea%2C%2Epager%20%2Edisabled%3Ea%3Ahover%2C%2Epager%20%2Edisabled%3Ea%3Afocus%2C%2Epager%20%2Edisabled%3Espan%7Bcolor%3A%23dddddd%3Bbackground%2Dcolor%3A%23ffffff%3Bcursor%3Anot%2Dallowed%7D%2Elabel%7Bdisplay%3Ainline%3Bpadding%3A%2E2em%20%2E6em%20%2E3em%3Bfont%2Dsize%3A75%25%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A1%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Abaseline%3Bborder%2Dradius%3A%2E25em%7Da%2Elabel%3Ahover%2Ca%2Elabel%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elabel%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Elabel%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Elabel%2Ddefault%7Bbackground%2Dcolor%3A%23474949%7D%2Elabel%2Ddefault%5Bhref%5D%3Ahover%2C%2Elabel%2Ddefault%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%232e2f2f%7D%2Elabel%2Dprimary%7Bbackground%2Dcolor%3A%23d9230f%7D%2Elabel%2Dprimary%5Bhref%5D%3Ahover%2C%2Elabel%2Dprimary%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23a91b0c%7D%2Elabel%2Dsuccess%7Bbackground%2Dcolor%3A%23469408%7D%2Elabel%2Dsuccess%5Bhref%5D%3Ahover%2C%2Elabel%2Dsuccess%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%232f6405%7D%2Elabel%2Dinfo%7Bbackground%2Dcolor%3A%23029acf%7D%2Elabel%2Dinfo%5Bhref%5D%3Ahover%2C%2Elabel%2Dinfo%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%2302749c%7D%2Elabel%2Dwarning%7Bbackground%2Dcolor%3A%239b479f%7D%2Elabel%2Dwarning%5Bhref%5D%3Ahover%2C%2Elabel%2Dwarning%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%2379377c%7D%2Elabel%2Ddanger%7Bbackground%2Dcolor%3A%23d9831f%7D%2Elabel%2Ddanger%5Bhref%5D%3Ahover%2C%2Elabel%2Ddanger%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23ac6819%7D%2Ebadge%7Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A10px%3Bpadding%3A3px%207px%3Bfont%2Dsize%3A12px%3Bfont%2Dweight%3Abold%3Bcolor%3A%23ffffff%3Bline%2Dheight%3A1%3Bvertical%2Dalign%3Amiddle%3Bwhite%2Dspace%3Anowrap%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dradius%3A10px%7D%2Ebadge%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Ebadge%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Ebtn%2Dxs%20%2Ebadge%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%20%2Ebadge%7Btop%3A0%3Bpadding%3A1px%205px%7Da%2Ebadge%3Ahover%2Ca%2Ebadge%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elist%2Dgroup%2Ditem%2Eactive%3E%2Ebadge%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%2Ebadge%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%7Bfloat%3Aright%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%2B%2Ebadge%7Bmargin%2Dright%3A5px%7D%2Enav%2Dpills%3Eli%3Ea%3E%2Ebadge%7Bmargin%2Dleft%3A3px%7D%2Ejumbotron%7Bpadding%2Dtop%3A30px%3Bpadding%2Dbottom%3A30px%3Bmargin%2Dbottom%3A30px%3Bcolor%3Ainherit%3Bbackground%2Dcolor%3A%23f4f4f4%7D%2Ejumbotron%20h1%2C%2Ejumbotron%20%2Eh1%7Bcolor%3Ainherit%7D%2Ejumbotron%20p%7Bmargin%2Dbottom%3A15px%3Bfont%2Dsize%3A20px%3Bfont%2Dweight%3A200%7D%2Ejumbotron%3Ehr%7Bborder%2Dtop%2Dcolor%3A%23dbdbdb%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bborder%2Dradius%3A6px%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Ejumbotron%20%2Econtainer%7Bmax%2Dwidth%3A100%25%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ejumbotron%7Bpadding%2Dtop%3A48px%3Bpadding%2Dbottom%3A48px%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bpadding%2Dleft%3A60px%3Bpadding%2Dright%3A60px%7D%2Ejumbotron%20h1%2C%2Ejumbotron%20%2Eh1%7Bfont%2Dsize%3A59px%7D%7D%2Ethumbnail%7Bdisplay%3Ablock%3Bpadding%3A4px%3Bmargin%2Dbottom%3A18px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23fcfcfc%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aborder%20%2E2s%20ease%2Din%2Dout%7D%2Ethumbnail%3Eimg%2C%2Ethumbnail%20a%3Eimg%7Bmargin%2Dleft%3Aauto%3Bmargin%2Dright%3Aauto%7Da%2Ethumbnail%3Ahover%2Ca%2Ethumbnail%3Afocus%2Ca%2Ethumbnail%2Eactive%7Bborder%2Dcolor%3A%23d9230f%7D%2Ethumbnail%20%2Ecaption%7Bpadding%3A9px%3Bcolor%3A%23777777%7D%2Ealert%7Bpadding%3A15px%3Bmargin%2Dbottom%3A18px%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Ealert%20h4%7Bmargin%2Dtop%3A0%3Bcolor%3Ainherit%7D%2Ealert%20%2Ealert%2Dlink%7Bfont%2Dweight%3Abold%7D%2Ealert%3Ep%2C%2Ealert%3Eul%7Bmargin%2Dbottom%3A0%7D%2Ealert%3Ep%2Bp%7Bmargin%2Dtop%3A5px%7D%2Ealert%2Ddismissable%2C%2Ealert%2Ddismissible%7Bpadding%2Dright%3A35px%7D%2Ealert%2Ddismissable%20%2Eclose%2C%2Ealert%2Ddismissible%20%2Eclose%7Bposition%3Arelative%3Btop%3A%2D2px%3Bright%3A%2D21px%3Bcolor%3Ainherit%7D%2Ealert%2Dsuccess%7Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23d6e9c6%3Bcolor%3A%23468847%7D%2Ealert%2Dsuccess%20hr%7Bborder%2Dtop%2Dcolor%3A%23c9e2b3%7D%2Ealert%2Dsuccess%20%2Ealert%2Dlink%7Bcolor%3A%23356635%7D%2Ealert%2Dinfo%7Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%23bce8f1%3Bcolor%3A%233a87ad%7D%2Ealert%2Dinfo%20hr%7Bborder%2Dtop%2Dcolor%3A%23a6e1ec%7D%2Ealert%2Dinfo%20%2Ealert%2Dlink%7Bcolor%3A%232d6987%7D%2Ealert%2Dwarning%7Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%23fbeed5%3Bcolor%3A%23c09853%7D%2Ealert%2Dwarning%20hr%7Bborder%2Dtop%2Dcolor%3A%23f8e5be%7D%2Ealert%2Dwarning%20%2Ealert%2Dlink%7Bcolor%3A%23a47e3c%7D%2Ealert%2Ddanger%7Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23eed3d7%3Bcolor%3A%23b94a48%7D%2Ealert%2Ddanger%20hr%7Bborder%2Dtop%2Dcolor%3A%23e6c1c7%7D%2Ealert%2Ddanger%20%2Ealert%2Dlink%7Bcolor%3A%23953b39%7D%40%2Dwebkit%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Do%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40keyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%2Eprogress%7Boverflow%3Ahidden%3Bheight%3A18px%3Bmargin%2Dbottom%3A18px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Eprogress%2Dbar%7Bfloat%3Aleft%3Bwidth%3A0%25%3Bheight%3A100%25%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A18px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23d9230f%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dwebkit%2Dtransition%3Awidth%200%2E6s%20ease%3B%2Do%2Dtransition%3Awidth%200%2E6s%20ease%3Btransition%3Awidth%200%2E6s%20ease%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2C%2Eprogress%2Dbar%2Dstriped%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3B%2Dwebkit%2Dbackground%2Dsize%3A40px%2040px%3Bbackground%2Dsize%3A40px%2040px%7D%2Eprogress%2Eactive%20%2Eprogress%2Dbar%2C%2Eprogress%2Dbar%2Eactive%7B%2Dwebkit%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Do%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3Banimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%7D%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dcolor%3A%23469408%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dcolor%3A%23029acf%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dcolor%3A%239b479f%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dcolor%3A%23d9831f%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Emedia%7Bmargin%2Dtop%3A15px%7D%2Emedia%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emedia%2C%2Emedia%2Dbody%7Bzoom%3A1%3Boverflow%3Ahidden%7D%2Emedia%2Dbody%7Bwidth%3A10000px%7D%2Emedia%2Dobject%7Bdisplay%3Ablock%7D%2Emedia%2Dobject%2Eimg%2Dthumbnail%7Bmax%2Dwidth%3Anone%7D%2Emedia%2Dright%2C%2Emedia%3E%2Epull%2Dright%7Bpadding%2Dleft%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%3E%2Epull%2Dleft%7Bpadding%2Dright%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%2Dright%2C%2Emedia%2Dbody%7Bdisplay%3Atable%2Dcell%3Bvertical%2Dalign%3Atop%7D%2Emedia%2Dmiddle%7Bvertical%2Dalign%3Amiddle%7D%2Emedia%2Dbottom%7Bvertical%2Dalign%3Abottom%7D%2Emedia%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Emedia%2Dlist%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dgroup%7Bmargin%2Dbottom%3A20px%3Bpadding%2Dleft%3A0%7D%2Elist%2Dgroup%2Ditem%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%3Bmargin%2Dbottom%3A%2D1px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%7D%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%7D%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7Da%2Elist%2Dgroup%2Ditem%2Cbutton%2Elist%2Dgroup%2Ditem%7Bcolor%3A%23555555%7Da%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3A%23333333%7Da%2Elist%2Dgroup%2Ditem%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%3Afocus%7Btext%2Ddecoration%3Anone%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23f5f5f5%7Dbutton%2Elist%2Dgroup%2Ditem%7Bwidth%3A100%25%3Btext%2Dalign%3Aleft%7D%2Elist%2Dgroup%2Ditem%2Edisabled%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%7Bbackground%2Dcolor%3A%23dddddd%3Bcolor%3A%23808080%3Bcursor%3Anot%2Dallowed%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23808080%7D%2Elist%2Dgroup%2Ditem%2Eactive%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%7Bz%2Dindex%3A2%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23d9230f%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23fac0ba%7D%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%23468847%3Bbackground%2Dcolor%3A%23dff0d8%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%23468847%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%7Bcolor%3A%23468847%3Bbackground%2Dcolor%3A%23d0e9c6%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23468847%3Bborder%2Dcolor%3A%23468847%7D%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%233a87ad%3Bbackground%2Dcolor%3A%23d9edf7%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%233a87ad%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%7Bcolor%3A%233a87ad%3Bbackground%2Dcolor%3A%23c4e3f3%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%233a87ad%3Bborder%2Dcolor%3A%233a87ad%7D%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%23c09853%3Bbackground%2Dcolor%3A%23fcf8e3%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%23c09853%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%7Bcolor%3A%23c09853%3Bbackground%2Dcolor%3A%23faf2cc%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c09853%3Bborder%2Dcolor%3A%23c09853%7D%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23b94a48%3Bbackground%2Dcolor%3A%23f2dede%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23b94a48%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%7Bcolor%3A%23b94a48%3Bbackground%2Dcolor%3A%23ebcccc%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23b94a48%3Bborder%2Dcolor%3A%23b94a48%7D%2Elist%2Dgroup%2Ditem%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Elist%2Dgroup%2Ditem%2Dtext%7Bmargin%2Dbottom%3A0%3Bline%2Dheight%3A1%2E3%7D%2Epanel%7Bmargin%2Dbottom%3A18px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Epanel%2Dbody%7Bpadding%3A15px%7D%2Epanel%2Dheading%7Bpadding%3A10px%2015px%3Bborder%2Dbottom%3A1px%20solid%20transparent%3Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%2Dheading%3E%2Edropdown%20%2Edropdown%2Dtoggle%7Bcolor%3Ainherit%7D%2Epanel%2Dtitle%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A15px%3Bcolor%3Ainherit%7D%2Epanel%2Dtitle%3Ea%2C%2Epanel%2Dtitle%3Esmall%2C%2Epanel%2Dtitle%3E%2Esmall%2C%2Epanel%2Dtitle%3Esmall%3Ea%2C%2Epanel%2Dtitle%3E%2Esmall%3Ea%7Bcolor%3Ainherit%7D%2Epanel%2Dfooter%7Bpadding%3A10px%2015px%3Bbackground%2Dcolor%3A%23fcfcfc%3Bborder%2Dtop%3A1px%20solid%20%23dddddd%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%7Bborder%2Dwidth%3A1px%200%3Bborder%2Dradius%3A0%7D%2Epanel%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bborder%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epanel%2Dheading%2B%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dwidth%3A0%7D%2Elist%2Dgroup%2B%2Epanel%2Dfooter%7Bborder%2Dtop%2Dwidth%3A0%7D%2Epanel%3E%2Etable%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%20caption%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%20caption%7Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2C%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2Dresponsive%2C%2Epanel%3E%2Etable%2B%2Epanel%2Dbody%2C%2Epanel%3E%2Etable%2Dresponsive%2B%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%2C%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3A0%7D%2Epanel%3E%2Etable%2Dbordered%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dresponsive%7Bborder%3A0%3Bmargin%2Dbottom%3A0%7D%2Epanel%2Dgroup%7Bmargin%2Dbottom%3A18px%7D%2Epanel%2Dgroup%20%2Epanel%7Bmargin%2Dbottom%3A0%3Bborder%2Dradius%3A4px%7D%2Epanel%2Dgroup%20%2Epanel%2B%2Epanel%7Bmargin%2Dtop%3A5px%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%7Bborder%2Dbottom%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%2C%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%7Bborder%2Dtop%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%20%2Epanel%2Dbody%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%7D%2Epanel%2Ddefault%7Bborder%2Dcolor%3A%23dddddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%7Bcolor%3A%23444444%3Bbackground%2Dcolor%3A%23fcfcfc%3Bborder%2Dcolor%3A%23dddddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23dddddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23fcfcfc%3Bbackground%2Dcolor%3A%23444444%7D%2Epanel%2Ddefault%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23dddddd%7D%2Epanel%2Dprimary%7Bborder%2Dcolor%3A%23d9230f%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9230f%3Bborder%2Dcolor%3A%23d9230f%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23d9230f%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23d9230f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dprimary%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23d9230f%7D%2Epanel%2Dsuccess%7Bborder%2Dcolor%3A%23469408%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23469408%3Bborder%2Dcolor%3A%23469408%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23469408%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23469408%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23469408%7D%2Epanel%2Dinfo%7Bborder%2Dcolor%3A%23029acf%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23029acf%3Bborder%2Dcolor%3A%23029acf%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23029acf%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23029acf%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dinfo%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23029acf%7D%2Epanel%2Dwarning%7Bborder%2Dcolor%3A%239b479f%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%239b479f%3Bborder%2Dcolor%3A%239b479f%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%239b479f%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%239b479f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dwarning%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%239b479f%7D%2Epanel%2Ddanger%7Bborder%2Dcolor%3A%23d9831f%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23d9831f%3Bborder%2Dcolor%3A%23d9831f%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23d9831f%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23d9831f%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Ddanger%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23d9831f%7D%2Eembed%2Dresponsive%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bheight%3A0%3Bpadding%3A0%3Boverflow%3Ahidden%7D%2Eembed%2Dresponsive%20%2Eembed%2Dresponsive%2Ditem%2C%2Eembed%2Dresponsive%20iframe%2C%2Eembed%2Dresponsive%20embed%2C%2Eembed%2Dresponsive%20object%2C%2Eembed%2Dresponsive%20video%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%3Bheight%3A100%25%3Bwidth%3A100%25%3Bborder%3A0%7D%2Eembed%2Dresponsive%2D16by9%7Bpadding%2Dbottom%3A56%2E25%25%7D%2Eembed%2Dresponsive%2D4by3%7Bpadding%2Dbottom%3A75%25%7D%2Ewell%7Bmin%2Dheight%3A20px%3Bpadding%3A19px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23f4f4f4%3Bborder%3A1px%20solid%20%23e3e3e3%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ewell%20blockquote%7Bborder%2Dcolor%3A%23ddd%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E15%29%7D%2Ewell%2Dlg%7Bpadding%3A24px%3Bborder%2Dradius%3A6px%7D%2Ewell%2Dsm%7Bpadding%3A9px%3Bborder%2Dradius%3A3px%7D%2Eclose%7Bfloat%3Aright%3Bfont%2Dsize%3A19%2E5px%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A1%3Bcolor%3A%23000000%3Btext%2Dshadow%3A0%201px%200%20%23ffffff%3Bopacity%3A0%2E2%3Bfilter%3Aalpha%28opacity%3D20%29%7D%2Eclose%3Ahover%2C%2Eclose%3Afocus%7Bcolor%3A%23000000%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%3Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7Dbutton%2Eclose%7Bpadding%3A0%3Bcursor%3Apointer%3Bbackground%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dappearance%3Anone%7D%2Emodal%2Dopen%7Boverflow%3Ahidden%7D%2Emodal%7Bdisplay%3Anone%3Boverflow%3Ahidden%3Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1050%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Boutline%3A0%7D%2Emodal%2Efade%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Do%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3Btransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E3s%20ease%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E3s%20ease%2Dout%3Btransition%3Atransform%20%2E3s%20ease%2Dout%7D%2Emodal%2Ein%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C%200%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%200%29%3B%2Do%2Dtransform%3Atranslate%280%2C%200%29%3Btransform%3Atranslate%280%2C%200%29%7D%2Emodal%2Dopen%20%2Emodal%7Boverflow%2Dx%3Ahidden%3Boverflow%2Dy%3Aauto%7D%2Emodal%2Ddialog%7Bposition%3Arelative%3Bwidth%3Aauto%3Bmargin%3A10px%7D%2Emodal%2Dcontent%7Bposition%3Arelative%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23999999%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3Bborder%2Dradius%3A6px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C0%2E5%29%3Bbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C0%2E5%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Boutline%3A0%7D%2Emodal%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1040%3Bbackground%2Dcolor%3A%23000000%7D%2Emodal%2Dbackdrop%2Efade%7Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%7D%2Emodal%2Dbackdrop%2Ein%7Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7D%2Emodal%2Dheader%7Bpadding%3A15px%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dheader%20%2Eclose%7Bmargin%2Dtop%3A%2D2px%7D%2Emodal%2Dtitle%7Bmargin%3A0%3Bline%2Dheight%3A1%2E42857143%7D%2Emodal%2Dbody%7Bposition%3Arelative%3Bpadding%3A20px%7D%2Emodal%2Dfooter%7Bpadding%3A20px%3Btext%2Dalign%3Aright%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dfooter%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A5px%3Bmargin%2Dbottom%3A0%7D%2Emodal%2Dfooter%20%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dleft%3A0%7D%2Emodal%2Dscrollbar%2Dmeasure%7Bposition%3Aabsolute%3Btop%3A%2D9999px%3Bwidth%3A50px%3Bheight%3A50px%3Boverflow%3Ascroll%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Emodal%2Ddialog%7Bwidth%3A600px%3Bmargin%3A30px%20auto%7D%2Emodal%2Dcontent%7B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C0%2E5%29%3Bbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C0%2E5%29%7D%2Emodal%2Dsm%7Bwidth%3A300px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Emodal%2Dlg%7Bwidth%3A900px%7D%7D%2Etooltip%7Bposition%3Aabsolute%3Bz%2Dindex%3A1070%3Bdisplay%3Ablock%3Bfont%2Dfamily%3A%22Open%20Sans%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bletter%2Dspacing%3Anormal%3Bline%2Dbreak%3Aauto%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bwhite%2Dspace%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bfont%2Dsize%3A12px%3Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%7D%2Etooltip%2Ein%7Bopacity%3A0%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Etooltip%2Etop%7Bmargin%2Dtop%3A%2D3px%3Bpadding%3A5px%200%7D%2Etooltip%2Eright%7Bmargin%2Dleft%3A3px%3Bpadding%3A0%205px%7D%2Etooltip%2Ebottom%7Bmargin%2Dtop%3A3px%3Bpadding%3A5px%200%7D%2Etooltip%2Eleft%7Bmargin%2Dleft%3A%2D3px%3Bpadding%3A0%205px%7D%2Etooltip%2Dinner%7Bmax%2Dwidth%3A200px%3Bpadding%3A3px%208px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23000000%3Bborder%2Dradius%3A4px%7D%2Etooltip%2Darrow%7Bposition%3Aabsolute%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Etooltip%2Etop%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Etop%2Dleft%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bright%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Etop%2Dright%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Eright%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bleft%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%205px%200%3Bborder%2Dright%2Dcolor%3A%23000000%7D%2Etooltip%2Eleft%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bright%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%200%205px%205px%3Bborder%2Dleft%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%2Dleft%20%2Etooltip%2Darrow%7Btop%3A0%3Bright%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%2Dright%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Epopover%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bz%2Dindex%3A1060%3Bdisplay%3Anone%3Bmax%2Dwidth%3A276px%3Bpadding%3A1px%3Bfont%2Dfamily%3A%22Open%20Sans%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bletter%2Dspacing%3Anormal%3Bline%2Dbreak%3Aauto%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bwhite%2Dspace%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bfont%2Dsize%3A13px%3Bbackground%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3Bborder%2Dradius%3A6px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%7D%2Epopover%2Etop%7Bmargin%2Dtop%3A%2D10px%7D%2Epopover%2Eright%7Bmargin%2Dleft%3A10px%7D%2Epopover%2Ebottom%7Bmargin%2Dtop%3A10px%7D%2Epopover%2Eleft%7Bmargin%2Dleft%3A%2D10px%7D%2Epopover%2Dtitle%7Bmargin%3A0%3Bpadding%3A8px%2014px%3Bfont%2Dsize%3A13px%3Bbackground%2Dcolor%3A%23f7f7f7%3Bborder%2Dbottom%3A1px%20solid%20%23ebebeb%3Bborder%2Dradius%3A5px%205px%200%200%7D%2Epopover%2Dcontent%7Bpadding%3A9px%2014px%7D%2Epopover%3E%2Earrow%2C%2Epopover%3E%2Earrow%3Aafter%7Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Epopover%3E%2Earrow%7Bborder%2Dwidth%3A11px%7D%2Epopover%3E%2Earrow%3Aafter%7Bborder%2Dwidth%3A10px%3Bcontent%3A%22%22%7D%2Epopover%2Etop%3E%2Earrow%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dbottom%2Dwidth%3A0%3Bborder%2Dtop%2Dcolor%3A%23999999%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bbottom%3A%2D11px%7D%2Epopover%2Etop%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bbottom%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dbottom%2Dwidth%3A0%3Bborder%2Dtop%2Dcolor%3A%23ffffff%7D%2Epopover%2Eright%3E%2Earrow%7Btop%3A50%25%3Bleft%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dleft%2Dwidth%3A0%3Bborder%2Dright%2Dcolor%3A%23999999%3Bborder%2Dright%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%7D%2Epopover%2Eright%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bleft%3A1px%3Bbottom%3A%2D10px%3Bborder%2Dleft%2Dwidth%3A0%3Bborder%2Dright%2Dcolor%3A%23ffffff%7D%2Epopover%2Ebottom%3E%2Earrow%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23999999%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Btop%3A%2D11px%7D%2Epopover%2Ebottom%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Btop%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%2Epopover%2Eleft%3E%2Earrow%7Btop%3A50%25%3Bright%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23999999%3Bborder%2Dleft%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%7D%2Epopover%2Eleft%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bright%3A1px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23ffffff%3Bbottom%3A%2D10px%7D%2Ecarousel%7Bposition%3Arelative%7D%2Ecarousel%2Dinner%7Bposition%3Arelative%3Boverflow%3Ahidden%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eitem%7Bdisplay%3Anone%3Bposition%3Arelative%3B%2Dwebkit%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Do%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3Btransition%3A%2E6s%20ease%2Din%2Dout%20left%7D%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bline%2Dheight%3A1%7D%40media%20all%20and%20%28transform%2D3d%29%2C%28%2Dwebkit%2Dtransform%2D3d%29%7B%2Ecarousel%2Dinner%3E%2Eitem%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E6s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E6s%20ease%2Din%2Dout%3Btransition%3Atransform%20%2E6s%20ease%2Din%2Dout%3B%2Dwebkit%2Dbackface%2Dvisibility%3Ahidden%3Bbackface%2Dvisibility%3Ahidden%3B%2Dwebkit%2Dperspective%3A1000px%3Bperspective%3A1000px%7D%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eright%7B%2Dwebkit%2Dtransform%3Atranslate3d%28100%25%2C%200%2C%200%29%3Btransform%3Atranslate3d%28100%25%2C%200%2C%200%29%3Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eleft%7B%2Dwebkit%2Dtransform%3Atranslate3d%28%2D100%25%2C%200%2C%200%29%3Btransform%3Atranslate3d%28%2D100%25%2C%200%2C%200%29%3Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2Eright%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%7B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C%200%2C%200%29%3Btransform%3Atranslate3d%280%2C%200%2C%200%29%3Bleft%3A0%7D%7D%2Ecarousel%2Dinner%3E%2Eactive%2C%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bdisplay%3Ablock%7D%2Ecarousel%2Dinner%3E%2Eactive%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Enext%7Bleft%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eprev%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eprev%2Eright%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eleft%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eright%7Bleft%3A100%25%7D%2Ecarousel%2Dcontrol%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%3Bwidth%3A15%25%3Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%3Bfont%2Dsize%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E6%29%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7D%2Ecarousel%2Dcontrol%2Eleft%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20from%28rgba%280%2C0%2C0%2C0%2E5%29%29%2C%20to%28rgba%280%2C0%2C0%2C0%2E0001%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2380000000%27%2C%20endColorstr%3D%27%2300000000%27%2C%20GradientType%3D1%29%7D%2Ecarousel%2Dcontrol%2Eright%7Bleft%3Aauto%3Bright%3A0%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20from%28rgba%280%2C0%2C0%2C0%2E0001%29%29%2C%20to%28rgba%280%2C0%2C0%2C0%2E5%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2300000000%27%2C%20endColorstr%3D%27%2380000000%27%2C%20GradientType%3D1%29%7D%2Ecarousel%2Dcontrol%3Ahover%2C%2Ecarousel%2Dcontrol%3Afocus%7Boutline%3A0%3Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bopacity%3A0%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%7Bposition%3Aabsolute%3Btop%3A50%25%3Bmargin%2Dtop%3A%2D10px%3Bz%2Dindex%3A5%3Bdisplay%3Ainline%2Dblock%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%7Bright%3A50%25%3Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bwidth%3A20px%3Bheight%3A20px%3Bline%2Dheight%3A1%3Bfont%2Dfamily%3Aserif%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%3Abefore%7Bcontent%3A%27%5C2039%27%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%3Abefore%7Bcontent%3A%27%5C203a%27%7D%2Ecarousel%2Dindicators%7Bposition%3Aabsolute%3Bbottom%3A10px%3Bleft%3A50%25%3Bz%2Dindex%3A15%3Bwidth%3A60%25%3Bmargin%2Dleft%3A%2D30%25%3Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%3Btext%2Dalign%3Acenter%7D%2Ecarousel%2Dindicators%20li%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A10px%3Bheight%3A10px%3Bmargin%3A1px%3Btext%2Dindent%3A%2D999px%3Bborder%3A1px%20solid%20%23ffffff%3Bborder%2Dradius%3A10px%3Bcursor%3Apointer%3Bbackground%2Dcolor%3A%23000%20%5C9%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7D%2Ecarousel%2Dindicators%20%2Eactive%7Bmargin%3A0%3Bwidth%3A12px%3Bheight%3A12px%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ecarousel%2Dcaption%7Bposition%3Aabsolute%3Bleft%3A15%25%3Bright%3A15%25%3Bbottom%3A20px%3Bz%2Dindex%3A10%3Bpadding%2Dtop%3A20px%3Bpadding%2Dbottom%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E6%29%7D%2Ecarousel%2Dcaption%20%2Ebtn%7Btext%2Dshadow%3Anone%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bwidth%3A30px%3Bheight%3A30px%3Bmargin%2Dtop%3A%2D10px%3Bfont%2Dsize%3A30px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcaption%7Bleft%3A20%25%3Bright%3A20%25%3Bpadding%2Dbottom%3A30px%7D%2Ecarousel%2Dindicators%7Bbottom%3A20px%7D%7D%2Eclearfix%3Abefore%2C%2Eclearfix%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Abefore%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Econtainer%3Abefore%2C%2Econtainer%3Aafter%2C%2Econtainer%2Dfluid%3Abefore%2C%2Econtainer%2Dfluid%3Aafter%2C%2Erow%3Abefore%2C%2Erow%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Abefore%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Abefore%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Abefore%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Enav%3Abefore%2C%2Enav%3Aafter%2C%2Enavbar%3Abefore%2C%2Enavbar%3Aafter%2C%2Enavbar%2Dheader%3Abefore%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dcollapse%3Abefore%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Epager%3Abefore%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Abefore%2C%2Epanel%2Dbody%3Aafter%2C%2Emodal%2Dheader%3Abefore%2C%2Emodal%2Dheader%3Aafter%2C%2Emodal%2Dfooter%3Abefore%2C%2Emodal%2Dfooter%3Aafter%7Bcontent%3A%22%20%22%3Bdisplay%3Atable%7D%2Eclearfix%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Econtainer%3Aafter%2C%2Econtainer%2Dfluid%3Aafter%2C%2Erow%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Enav%3Aafter%2C%2Enavbar%3Aafter%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Aafter%2C%2Emodal%2Dheader%3Aafter%2C%2Emodal%2Dfooter%3Aafter%7Bclear%3Aboth%7D%2Ecenter%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dleft%3Aauto%3Bmargin%2Dright%3Aauto%7D%2Epull%2Dright%7Bfloat%3Aright%20%21important%7D%2Epull%2Dleft%7Bfloat%3Aleft%20%21important%7D%2Ehide%7Bdisplay%3Anone%20%21important%7D%2Eshow%7Bdisplay%3Ablock%20%21important%7D%2Einvisible%7Bvisibility%3Ahidden%7D%2Etext%2Dhide%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Ehidden%7Bdisplay%3Anone%20%21important%7D%2Eaffix%7Bposition%3Afixed%7D%40%2Dms%2Dviewport%7Bwidth%3Adevice%2Dwidth%7D%2Evisible%2Dxs%2C%2Evisible%2Dsm%2C%2Evisible%2Dmd%2C%2Evisible%2Dlg%7Bdisplay%3Anone%20%21important%7D%2Evisible%2Dxs%2Dblock%2C%2Evisible%2Dxs%2Dinline%2C%2Evisible%2Dxs%2Dinline%2Dblock%2C%2Evisible%2Dsm%2Dblock%2C%2Evisible%2Dsm%2Dinline%2C%2Evisible%2Dsm%2Dinline%2Dblock%2C%2Evisible%2Dmd%2Dblock%2C%2Evisible%2Dmd%2Dinline%2C%2Evisible%2Dmd%2Dinline%2Dblock%2C%2Evisible%2Dlg%2Dblock%2C%2Evisible%2Dlg%2Dinline%2C%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dxs%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dxs%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dxs%2Ctd%2Evisible%2Dxs%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dsm%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dsm%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dsm%2Ctd%2Evisible%2Dsm%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dmd%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dmd%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dmd%2Ctd%2Evisible%2Dmd%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dlg%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dlg%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dlg%2Ctd%2Evisible%2Dlg%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Ehidden%2Dxs%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Ehidden%2Dsm%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Ehidden%2Dmd%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ehidden%2Dlg%7Bdisplay%3Anone%20%21important%7D%7D%2Evisible%2Dprint%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dprint%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dprint%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dprint%2Ctd%2Evisible%2Dprint%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%2Evisible%2Dprint%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%2Evisible%2Dprint%2Dinline%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20print%7B%2Ehidden%2Dprint%7Bdisplay%3Anone%20%21important%7D%7D%2Enavbar%2Dinverse%20%2Ebadge%7Bbackground%2Dcolor%3A%23fff%3Bcolor%3A%23d9230f%7D%2Ebtn%7Bfont%2Dfamily%3A%22Open%20Sans%22%2C%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%7D%2Ebtn%2Ddefault%2C%2Ebtn%2Ddefault%3Ahover%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28%234f5151%2C%20%23474949%206%25%2C%20%233f4141%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28%234f5151%2C%20%23474949%206%25%2C%20%233f4141%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20from%28%234f5151%29%2C%20color%2Dstop%286%25%2C%20%23474949%29%2C%20to%28%233f4141%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28%234f5151%2C%20%23474949%206%25%2C%20%233f4141%29%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff4f5151%27%2C%20endColorstr%3D%27%23ff3f4141%27%2C%20GradientType%3D0%29%3B%2Dwebkit%2Dfilter%3Anone%3Bfilter%3Anone%3Bborder%3A1px%20solid%20%232e2f2f%7D%2Ebtn%2Dprimary%2C%2Ebtn%2Dprimary%3Ahover%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28%23e72510%2C%20%23d9230f%206%25%2C%20%23cb210e%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28%23e72510%2C%20%23d9230f%206%25%2C%20%23cb210e%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20from%28%23e72510%29%2C%20color%2Dstop%286%25%2C%20%23d9230f%29%2C%20to%28%23cb210e%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28%23e72510%2C%20%23d9230f%206%25%2C%20%23cb210e%29%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffe72510%27%2C%20endColorstr%3D%27%23ffcb210e%27%2C%20GradientType%3D0%29%3B%2Dwebkit%2Dfilter%3Anone%3Bfilter%3Anone%3Bborder%3A1px%20solid%20%23a91b0c%7D%2Ebtn%2Dsuccess%2C%2Ebtn%2Dsuccess%3Ahover%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28%234da309%2C%20%23469408%206%25%2C%20%233f8507%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28%234da309%2C%20%23469408%206%25%2C%20%233f8507%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20from%28%234da309%29%2C%20color%2Dstop%286%25%2C%20%23469408%29%2C%20to%28%233f8507%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28%234da309%2C%20%23469408%206%25%2C%20%233f8507%29%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff4da309%27%2C%20endColorstr%3D%27%23ff3f8507%27%2C%20GradientType%3D0%29%3B%2Dwebkit%2Dfilter%3Anone%3Bfilter%3Anone%3Bborder%3A1px%20solid%20%232f6405%7D%2Ebtn%2Dinfo%2C%2Ebtn%2Dinfo%3Ahover%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28%2302a5de%2C%20%23029acf%206%25%2C%20%23028fc0%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28%2302a5de%2C%20%23029acf%206%25%2C%20%23028fc0%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20from%28%2302a5de%29%2C%20color%2Dstop%286%25%2C%20%23029acf%29%2C%20to%28%23028fc0%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28%2302a5de%2C%20%23029acf%206%25%2C%20%23028fc0%29%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff02a5de%27%2C%20endColorstr%3D%27%23ff028fc0%27%2C%20GradientType%3D0%29%3B%2Dwebkit%2Dfilter%3Anone%3Bfilter%3Anone%3Bborder%3A1px%20solid%20%2302749c%7D%2Ebtn%2Dwarning%2C%2Ebtn%2Dwarning%3Ahover%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28%23a54caa%2C%20%239b479f%206%25%2C%20%23914294%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28%23a54caa%2C%20%239b479f%206%25%2C%20%23914294%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20from%28%23a54caa%29%2C%20color%2Dstop%286%25%2C%20%239b479f%29%2C%20to%28%23914294%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28%23a54caa%2C%20%239b479f%206%25%2C%20%23914294%29%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffa54caa%27%2C%20endColorstr%3D%27%23ff914294%27%2C%20GradientType%3D0%29%3B%2Dwebkit%2Dfilter%3Anone%3Bfilter%3Anone%3Bborder%3A1px%20solid%20%2379377c%7D%2Ebtn%2Ddanger%2C%2Ebtn%2Ddanger%3Ahover%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28%23e08b27%2C%20%23d9831f%206%25%2C%20%23cc7b1d%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28%23e08b27%2C%20%23d9831f%206%25%2C%20%23cc7b1d%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20from%28%23e08b27%29%2C%20color%2Dstop%286%25%2C%20%23d9831f%29%2C%20to%28%23cc7b1d%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28%23e08b27%2C%20%23d9831f%206%25%2C%20%23cc7b1d%29%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffe08b27%27%2C%20endColorstr%3D%27%23ffcc7b1d%27%2C%20GradientType%3D0%29%3B%2Dwebkit%2Dfilter%3Anone%3Bfilter%3Anone%3Bborder%3A1px%20solid%20%23ac6819%7Dbody%7Bfont%2Dweight%3A200%7Dth%7Bcolor%3A%23444444%7Dlegend%7Bcolor%3A%23444444%7Dlabel%7Bfont%2Dweight%3Anormal%7D%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23d9831f%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2C%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23d9831f%7D%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%2C%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23d9230f%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2C%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23d9230f%7D%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23469408%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2C%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23469408%7D%2Epager%20a%7Bcolor%3A%23444444%7D%2Epager%20a%3Ahover%2C%2Epager%20%2Eactive%3Ea%7Bborder%2Dcolor%3A%23d9230f%3Bcolor%3A%23fff%7D%2Epager%20%2Edisabled%3Ea%7Bborder%2Dcolor%3A%23dddddd%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
24 <script src="data:application/x-javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyIil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYm9vdHN0cmFwIiksYj17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn07Zm9yKHZhciBjIGluIGIpaWYodm9pZCAwIT09YS5zdHlsZVtjXSlyZXR1cm57ZW5kOmJbY119O3JldHVybiExfWEuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oYil7dmFyIGM9ITEsZD10aGlzO2EodGhpcykub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Yz0hMH0pO3ZhciBlPWZ1bmN0aW9uKCl7Y3x8YShkKS50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCl9O3JldHVybiBzZXRUaW1lb3V0KGUsYiksdGhpc30sYShmdW5jdGlvbigpe2Euc3VwcG9ydC50cmFuc2l0aW9uPWIoKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGEuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6YS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbihiKXtyZXR1cm4gYShiLnRhcmdldCkuaXModGhpcyk/Yi5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjUiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YShmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdCgiLmFsZXJ0IikpLGcudHJpZ2dlcihiPWEuRXZlbnQoImNsb3NlLmJzLmFsZXJ0IikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChnLnJlbW92ZUNsYXNzKCJpbiIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKCJmYWRlIik/Zy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYykuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpjKCkpfTt2YXIgZT1hLmZuLmFsZXJ0O2EuZm4uYWxlcnQ9YixhLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWQsYS5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWxlcnQ9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuYWxlcnQuZGF0YS1hcGkiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMuYnV0dG9uIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5idXR0b24iLGU9bmV3IGModGhpcyxmKSksInRvZ2dsZSI9PWI/ZS50b2dnbGUoKTpiJiZlLnNldFN0YXRlKGIpfSl9dmFyIGM9ZnVuY3Rpb24oYixkKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy5pc0xvYWRpbmc9ITF9O2MuVkVSU0lPTj0iMy4zLjUiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OiJsb2FkaW5nLi4uIn0sYy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYil7dmFyIGM9ImRpc2FibGVkIixkPXRoaXMuJGVsZW1lbnQsZT1kLmlzKCJpbnB1dCIpPyJ2YWwiOiJodG1sIixmPWQuZGF0YSgpO2IrPSJUZXh0IixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKCJyZXNldFRleHQiLGRbZV0oKSksc2V0VGltZW91dChhLnByb3h5KGZ1bmN0aW9uKCl7ZFtlXShudWxsPT1mW2JdP3RoaXMub3B0aW9uc1tiXTpmW2JdKSwibG9hZGluZ1RleHQiPT1iPyh0aGlzLmlzTG9hZGluZz0hMCxkLmFkZENsYXNzKGMpLmF0dHIoYyxjKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KTtkLmhhc0NsYXNzKCJidG4iKXx8KGQ9ZC5jbG9zZXN0KCIuYnRuIikpLGIuY2FsbChkLCJ0b2dnbGUiKSxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0icmFkaW8iXScpfHxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpfHxjLnByZXZlbnREZWZhdWx0KCl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO3JldHVybiBhPnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHwwPmE/dm9pZCAwOnRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZSgic2xpZC5icy5jYXJvdXNlbCIsZnVuY3Rpb24oKXtiLnRvKGEpfSk6Yz09YT90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGE+Yz8ibmV4dCI6InByZXYiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKCIubmV4dCwgLnByZXYiKS5sZW5ndGgmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxjLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgibmV4dCIpfSxjLnByb3RvdHlwZS5wcmV2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgicHJldiIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIiksZj1kfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24oYixlKSxnPXRoaXMuaW50ZXJ2YWwsaD0ibmV4dCI9PWI/ImxlZnQiOiJyaWdodCIsaT10aGlzO2lmKGYuaGFzQ2xhc3MoImFjdGl2ZSIpKXJldHVybiB0aGlzLnNsaWRpbmc9ITE7dmFyIGo9ZlswXSxrPWEuRXZlbnQoInNsaWRlLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7dmFyIGw9YSh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgoZildKTtsJiZsLmFkZENsYXNzKCJhY3RpdmUiKX12YXIgbT1hLkV2ZW50KCJzbGlkLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJzbGlkZSIpPyhmLmFkZENsYXNzKGIpLGZbMF0ub2Zmc2V0V2lkdGgsZS5hZGRDbGFzcyhoKSxmLmFkZENsYXNzKGgpLGUub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKCIgIikpLmFkZENsYXNzKCJhY3RpdmUiKSxlLnJlbW92ZUNsYXNzKFsiYWN0aXZlIixoXS5qb2luKCIgIikpLGkuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS4kZWxlbWVudC50cmlnZ2VyKG0pfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTikpOihlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxmLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKCJkYXRhLXRhcmdldCIpfHwoZD1lLmF0dHIoImhyZWYiKSkmJmQucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKSk7aWYoZi5oYXNDbGFzcygiY2Fyb3VzZWwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKCJkYXRhLXNsaWRlLXRvIik7aCYmKGcuaW50ZXJ2YWw9ITEpLGIuY2FsbChmLGcpLGgmJmYuZGF0YSgiYnMuY2Fyb3VzZWwiKS50byhoKSxjLnByZXZlbnREZWZhdWx0KCl9fTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1zbGlkZV0iLGUpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlLXRvXSIsZSksYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXJpZGU9ImNhcm91c2VsIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKTtiLmNhbGwoYyxjLmRhdGEoKSl9KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cigiZGF0YS10YXJnZXQiKXx8KGM9Yi5hdHRyKCJocmVmIikpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIik7cmV0dXJuIGEoZCl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuY29sbGFwc2UiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTshZSYmZi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoYikmJihmLnRvZ2dsZT0hMSksZXx8Yy5kYXRhKCJicy5jb2xsYXBzZSIsZT1uZXcgZCh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2hyZWY9IiMnK2IuaWQrJyJdLFtkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXRhcmdldD0iIycrYi5pZCsnIl0nKSx0aGlzLnRyYW5zaXRpb25pbmc9bnVsbCx0aGlzLm9wdGlvbnMucGFyZW50P3RoaXMuJHBhcmVudD10aGlzLmdldFBhcmVudCgpOnRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuJGVsZW1lbnQsdGhpcy4kdHJpZ2dlciksdGhpcy5vcHRpb25zLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX07ZC5WRVJTSU9OPSIzLjMuNSIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxkLkRFRkFVTFRTPXt0b2dnbGU6ITB9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKCIucGFuZWwiKS5jaGlsZHJlbigiLmluLCAuY29sbGFwc2luZyIpO2lmKCEoZSYmZS5sZW5ndGgmJihiPWUuZGF0YSgiYnMuY29sbGFwc2UiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudCgic2hvdy5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihmKSwhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ZSYmZS5sZW5ndGgmJihjLmNhbGwoZSwiaGlkZSIpLGJ8fGUuZGF0YSgiYnMuY29sbGFwc2UiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIikuYWRkQ2xhc3MoImNvbGxhcHNpbmciKVtnXSgwKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSBpbiIpW2ddKCIiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLmNvbGxhcHNlIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFsic2Nyb2xsIixnXS5qb2luKCItIikpO3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiPWEuRXZlbnQoImhpZGUuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksIWIuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBjPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudFtjXSh0aGlzLiRlbGVtZW50W2NdKCkpWzBdLm9mZnNldEhlaWdodCx0aGlzLiRlbGVtZW50LmFkZENsYXNzKCJjb2xsYXBzaW5nIikucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIGluIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMuJHRyaWdnZXIuYWRkQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgZT1mdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UiKS50cmlnZ2VyKCJoaWRkZW4uYnMuY29sbGFwc2UiKX07cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uP3ZvaWQgdGhpcy4kZWxlbWVudFtjXSgwKS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShlLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmUuY2FsbCh0aGlzKX19fSxkLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIik/ImhpZGUiOiJzaG93Il0oKX0sZC5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtcGFyZW50PSInK3RoaXMub3B0aW9ucy5wYXJlbnQrJyJdJykuZWFjaChhLnByb3h5KGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhiKGUpLGUpfSx0aGlzKSkuZW5kKCl9LGQucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuaGFzQ2xhc3MoImluIik7YS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKSxiLnRvZ2dsZUNsYXNzKCJjb2xsYXBzZWQiLCFjKS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKX07dmFyIGU9YS5mbi5jb2xsYXBzZTthLmZuLmNvbGxhcHNlPWMsYS5mbi5jb2xsYXBzZS5Db25zdHJ1Y3Rvcj1kLGEuZm4uY29sbGFwc2Uubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNvbGxhcHNlPWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdJyxmdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2UuYXR0cigiZGF0YS10YXJnZXQiKXx8ZC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBmPWIoZSksZz1mLmRhdGEoImJzLmNvbGxhcHNlIiksaD1nPyJ0b2dnbGUiOmUuZGF0YSgpO2MuY2FsbChmLGgpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjPWIuYXR0cigiZGF0YS10YXJnZXQiKTtjfHwoYz1iLmF0dHIoImhyZWYiKSxjPWMmJi8jW0EtWmEtel0vLnRlc3QoYykmJmMucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGQ9YyYmYShjKTtyZXR1cm4gZCYmZC5sZW5ndGg/ZDpiLnBhcmVudCgpfWZ1bmN0aW9uIGMoYyl7YyYmMz09PWMud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1iKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoYyYmImNsaWNrIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGMuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSkpfSkpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoImJzLmRyb3Bkb3duIik7ZHx8Yy5kYXRhKCJicy5kcm9wZG93biIsZD1uZXcgZyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZkW2JdLmNhbGwoYyl9KX12YXIgZT0iLmRyb3Bkb3duLWJhY2tkcm9wIixmPSdbZGF0YS10b2dnbGU9ImRyb3Bkb3duIl0nLGc9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2suYnMuZHJvcGRvd24iLHRoaXMudG9nZ2xlKX07Zy5WRVJTSU9OPSIzLjMuNSIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoIi5kaXNhYmxlZCwgOmRpc2FibGVkIikpe3ZhciBmPWIoZSksZz1mLmhhc0NsYXNzKCJvcGVuIik7aWYoYygpLCFnKXsib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdCgiLm5hdmJhci1uYXYiKS5sZW5ndGgmJmEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJkcm9wZG93bi1iYWNrZHJvcCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYyk7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGMpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGMud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChjLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YihkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhIixpPWUuZmluZCgiLmRyb3Bkb3duLW1lbnUiK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGMudGFyZ2V0KTszOD09Yy53aGljaCYmaj4wJiZqLS0sNDA9PWMud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYykub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsIi5kcm9wZG93bi1tZW51IixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYixkKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YSgiYnMubW9kYWwiKSxnPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZS5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoImJzLm1vZGFsIixmPW5ldyBjKHRoaXMsZykpLCJzdHJpbmciPT10eXBlb2YgYj9mW2JdKGQpOmcuc2hvdyYmZi5zaG93KGQpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLm9wdGlvbnM9Yyx0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGRpYWxvZz10aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1kaWFsb2ciKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1jb250ZW50IikubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLGEucHJveHkoZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoImxvYWRlZC5icy5tb2RhbCIpfSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoInNob3cuYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTt0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksdGhpcy5pc1Nob3dufHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5pc1Nob3duPSEwLHRoaXMuY2hlY2tTY3JvbGxiYXIoKSx0aGlzLnNldFNjcm9sbGJhcigpLHRoaXMuJGJvZHkuYWRkQ2xhc3MoIm1vZGFsLW9wZW4iKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsJ1tkYXRhLWRpc21pc3M9Im1vZGFsIl0nLGEucHJveHkodGhpcy5oaWRlLHRoaXMpKSx0aGlzLiRkaWFsb2cub24oIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuJGVsZW1lbnQub25lKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLGQuZW5mb3JjZUZvY3VzKCk7dmFyIGY9YS5FdmVudCgic2hvd24uYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudCgiaGlkZS5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSx0aGlzLmlzU2hvd24mJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodGhpcy5pc1Nob3duPSExLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSxhKGRvY3VtZW50KS5vZmYoImZvY3VzaW4uYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJpbiIpLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLm9mZigibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiksdGhpcy4kZGlhbG9nLm9mZigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGMucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe2EoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLm9uKCJmb2N1c2luLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3RoaXMuJGVsZW1lbnRbMF09PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudC5oYXMoYS50YXJnZXQpLmxlbmd0aHx8dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpfSx0aGlzKSl9LGMucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duP2Eod2luZG93KS5vbigicmVzaXplLmJzLm1vZGFsIixhLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTphKHdpbmRvdykub2ZmKCJyZXNpemUuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcygibW9kYWwtb3BlbiIpLGEucmVzZXRBZGp1c3RtZW50cygpLGEucmVzZXRTY3JvbGxiYXIoKSxhLiRlbGVtZW50LnRyaWdnZXIoImhpZGRlbi5icy5tb2RhbCIpfSl9LGMucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGMucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/ImZhZGUiOiIiO2lmKHRoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmJhY2tkcm9wKXt2YXIgZj1hLnN1cHBvcnQudHJhbnNpdGlvbiYmZTtpZih0aGlzLiRiYWNrZHJvcD1hKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5hZGRDbGFzcygibW9kYWwtYmFja2Ryb3AgIitlKS5hcHBlbmRUbyh0aGlzLiRib2R5KSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dm9pZCh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITEpOnZvaWQoYS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJigic3RhdGljIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoImluIiksIWIpcmV0dXJuO2Y/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6YigpfWVsc2UgaWYoIXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3Ape3RoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCJpbiIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpnKCl9ZWxzZSBiJiZiKCl9LGMucHJvdG90eXBlLmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRqdXN0RGlhbG9nKCl9LGMucHJvdG90eXBlLmFkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiF0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiJ9KX0sYy5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDoiIixwYWRkaW5nUmlnaHQ6IiJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMub3JpZ2luYWxCb2R5UGFkPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0fHwiIix0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZ0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsdGhpcy5vcmlnaW5hbEJvZHlQYWQpfSxjLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9Im1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJtb2RhbCJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLGU9ZC5hdHRyKCJocmVmIiksZj1hKGQuYXR0cigiZGF0YS10YXJnZXQiKXx8ZSYmZS5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKSxnPWYuZGF0YSgiYnMubW9kYWwiKT8idG9nZ2xlIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoImEiKSYmYy5wcmV2ZW50RGVmYXVsdCgpLGYub25lKCJzaG93LmJzLm1vZGFsIixmdW5jdGlvbihhKXthLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxmLm9uZSgiaGlkZGVuLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuaXMoIjp2aXNpYmxlIikmJmQudHJpZ2dlcigiZm9jdXMiKX0pfSksYi5jYWxsKGYsZyx0aGlzKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMudG9vbHRpcCIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy41IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVsiZm9jdXNvdXQiPT1iLnR5cGU/ImZvY3VzIjoiaG92ZXIiXT0hMSksYy5pc0luU3RhdGVUcnVlKCk/dm9pZCAwOihjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCkpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudCgic2hvdy5icy4iK3RoaXMudHlwZSk7aWYodGhpcy5oYXNDb250ZW50KCkmJnRoaXMuZW5hYmxlZCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpO3ZhciBkPWEuY29udGFpbnModGhpcy4kZWxlbWVudFswXS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLiRlbGVtZW50WzBdKTtpZihiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhZClyZXR1cm47dmFyIGU9dGhpcyxmPXRoaXMudGlwKCksZz10aGlzLmdldFVJRCh0aGlzLnR5cGUpO3RoaXMuc2V0Q29udGVudCgpLGYuYXR0cigiaWQiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZyksdGhpcy5vcHRpb25zLmFuaW1hdGlvbiYmZi5hZGRDbGFzcygiZmFkZSIpO3ZhciBoPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9ccz9hdXRvP1xzPy9pLGo9aS50ZXN0KGgpO2omJihoPWgucmVwbGFjZShpLCIiKXx8InRvcCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheToiYmxvY2sifSkuYWRkQ2xhc3MoaCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj9mLmFwcGVuZFRvKHRoaXMub3B0aW9ucy5jb250YWluZXIpOmYuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJpbnNlcnRlZC5icy4iK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPm8uYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPG8udG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5vLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPG8ubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcD10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChwLGgpO3ZhciBxPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wKz1nLGIubGVmdCs9aCxhLm9mZnNldC5zZXRPZmZzZXQoZFswXSxhLmV4dGVuZCh7dXNpbmc6ZnVuY3Rpb24oYSl7ZC5jc3Moe3RvcDpNYXRoLnJvdW5kKGEudG9wKSxsZWZ0Ok1hdGgucm91bmQoYS5sZWZ0KX0pfX0sYiksMCksZC5hZGRDbGFzcygiaW4iKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7InRvcCI9PWMmJmohPWYmJihiLnRvcD1iLnRvcCtmLWopO3ZhciBrPXRoaXMuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhKGMsYixpLGopO2subGVmdD9iLmxlZnQrPWsubGVmdDpiLnRvcCs9ay50b3A7dmFyIGw9L3RvcHxib3R0b20vLnRlc3QoYyksbT1sPzIqay5sZWZ0LWUraToyKmsudG9wLWYraixuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjPyJsZWZ0IjoidG9wIiw1MCooMS1hL2IpKyIlIikuY3NzKGM/InRvcCI6ImxlZnQiLCIiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKCIudG9vbHRpcC1pbm5lciIpW3RoaXMub3B0aW9ucy5odG1sPyJodG1sIjoidGV4dCJdKGIpLGEucmVtb3ZlQ2xhc3MoImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0Iil9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpeyJpbiIhPWUuaG92ZXJTdGF0ZSYmZi5kZXRhY2goKSxlLiRlbGVtZW50LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKS50cmlnZ2VyKCJoaWRkZW4uYnMuIitlLnR5cGUpLGImJmIoKX12YXIgZT10aGlzLGY9YSh0aGlzLiR0aXApLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXMpfSxjLnByb3RvdHlwZS5maXhUaXRsZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQ7KGEuYXR0cigidGl0bGUiKXx8InN0cmluZyIhPXR5cGVvZiBhLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKSkmJmEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIsYS5hdHRyKCJ0aXRsZSIpfHwiIikuYXR0cigidGl0bGUiLCIiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9IkJPRFkiPT1jLnRhZ05hbWUsZT1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PWUud2lkdGgmJihlPWEuZXh0ZW5kKHt9LGUse3dpZHRoOmUucmlnaHQtZS5sZWZ0LGhlaWdodDplLmJvdHRvbS1lLnRvcH0pKTt2YXIgZj1kP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCksZz17c2Nyb2xsOmQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6Yi5zY3JvbGxUb3AoKX0saD1kP3t3aWR0aDphKHdpbmRvdykud2lkdGgoKSxoZWlnaHQ6YSh3aW5kb3cpLmhlaWdodCgpfTpudWxsO3JldHVybiBhLmV4dGVuZCh7fSxlLGcsaCxmKX0sYy5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZE9mZnNldD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4iYm90dG9tIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJ0b3AiPT1hP3t0b3A6Yi50b3AtZCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToibGVmdCI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdC1jfTp7dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0K2Iud2lkdGh9fSxjLnByb3RvdHlwZS5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e3RvcDowLGxlZnQ6MH07aWYoIXRoaXMuJHZpZXdwb3J0KXJldHVybiBlO3ZhciBmPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAsZz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtpZigvcmlnaHR8bGVmdC8udGVzdChhKSl7dmFyIGg9Yi50b3AtZi1nLnNjcm9sbCxpPWIudG9wK2YtZy5zY3JvbGwrZDtoPGcudG9wP2UudG9wPWcudG9wLWg6aT5nLnRvcCtnLmhlaWdodCYmKGUudG9wPWcudG9wK2cuaGVpZ2h0LWkpfWVsc2V7dmFyIGo9Yi5sZWZ0LWYsaz1iLmxlZnQrZitjO2o8Zy5sZWZ0P2UubGVmdD1nLmxlZnQtajprPmcucmlnaHQmJihlLmxlZnQ9Zy5sZWZ0K2cud2lkdGgtayl9cmV0dXJuIGV9LGMucHJvdG90eXBlLmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRlbGVtZW50LGM9dGhpcy5vcHRpb25zO3JldHVybiBhPWIuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGMudGl0bGU/Yy50aXRsZS5jYWxsKGJbMF0pOmMudGl0bGUpfSxjLnByb3RvdHlwZS5nZXRVSUQ9ZnVuY3Rpb24oYSl7ZG8gYSs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpO3doaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtyZXR1cm4gYX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7aWYoIXRoaXMuJHRpcCYmKHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSksMSE9dGhpcy4kdGlwLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhIik7cmV0dXJuIHRoaXMuJHRpcH0sYy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZCgiLnRvb2x0aXAtYXJyb3ciKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSksY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSxjKSkpLGI/KGMuaW5TdGF0ZS5jbGljaz0hYy5pblN0YXRlLmNsaWNrLGMuaXNJblN0YXRlVHJ1ZSgpP2MuZW50ZXIoYyk6Yy5sZWF2ZShjKSk6Yy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKSxhLiR0aXAmJmEuJHRpcC5kZXRhY2goKSxhLiR0aXA9bnVsbCxhLiRhcnJvdz1udWxsLGEuJHZpZXdwb3J0PW51bGx9KX07dmFyIGQ9YS5mbi50b29sdGlwO2EuZm4udG9vbHRpcD1iLGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvcj1jLGEuZm4udG9vbHRpcC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udG9vbHRpcD1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMucG9wb3ZlciIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyIHJlcXVpcmVzIHRvb2x0aXAuanMiKTtjLlZFUlNJT049IjMuMy41IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNSIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3RoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD0iJytiKyciXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPSInK2IrJyJdJyxkPWEoYykucGFyZW50cygibGkiKS5hZGRDbGFzcygiYWN0aXZlIik7ZC5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiYoZD1kLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpKSwKZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gYz5lPyJ0b3AiOiExO2lmKCJib3R0b20iPT10aGlzLmFmZml4ZWQpcmV0dXJuIG51bGwhPWM/ZSt0aGlzLnVucGluPD1mLnRvcD8hMToiYm90dG9tIjphLWQ+PWUrZz8hMToiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmYz49ZT8idG9wIjpudWxsIT1kJiZpK2o+PWEtZD8iYm90dG9tIjohMX0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoImFmZml4Iik7dmFyIGE9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGI9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9Yi50b3AtYX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcygiOnZpc2libGUiKSl7dmFyIGI9dGhpcy4kZWxlbWVudC5oZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQsZT1kLnRvcCxmPWQuYm90dG9tLGc9TWF0aC5tYXgoYShkb2N1bWVudCkuaGVpZ2h0KCksYShkb2N1bWVudC5ib2R5KS5oZWlnaHQoKSk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
25 <script src="data:application/x-javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
26 <script src="data:application/x-javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Owo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
27 <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gZXZhbCgiKCIgKyB0YXNrICsgIikiKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgZnVuY3Rpb24gaW5pdFNpemluZyhlbCkgewogICAgdmFyIHNpemluZyA9IHNpemluZ1BvbGljeShlbCk7CiAgICBpZiAoIXNpemluZykKICAgICAgcmV0dXJuOwoKICAgIHZhciBjZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaHRtbHdpZGdldF9jb250YWluZXIiKTsKICAgIGlmICghY2VsKQogICAgICByZXR1cm47CgogICAgaWYgKHR5cGVvZihzaXppbmcucGFkZGluZykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUubWFyZ2luID0gIjAiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmcgPSBwYWRkaW5nVG9Dc3ModW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZykpOwogICAgfQoKICAgIGlmIChzaXppbmcuZmlsbCkgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gImhpZGRlbiI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGlmIChjZWwpIHsKICAgICAgICBjZWwuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgICAgIHZhciBwYWQgPSB1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKTsKICAgICAgICBjZWwuc3R5bGUudG9wID0gcGFkLnRvcCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLnJpZ2h0ID0gcGFkLnJpZ2h0ICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUuYm90dG9tID0gcGFkLmJvdHRvbSArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmxlZnQgPSBwYWQubGVmdCArICJweCI7CiAgICAgICAgZWwuc3R5bGUud2lkdGggPSAiMTAwJSI7CiAgICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwoKICAgIH0gZWxzZSB7CiAgICAgIGVsLnN0eWxlLndpZHRoID0gcHgoc2l6aW5nLndpZHRoKTsKICAgICAgZWwuc3R5bGUuaGVpZ2h0ID0gcHgoc2l6aW5nLmhlaWdodCk7CgogICAgICByZXR1cm4gewogICAgICAgIGdldFdpZHRoOiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKICAgIH0KICB9CgogIC8vIERlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBtZXRob2RzCiAgdmFyIGRlZmF1bHRzID0gewogICAgZmluZDogZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgcmV0dXJuIHF1ZXJ5U2VsZWN0b3JBbGwoc2NvcGUsICIuIiArIHRoaXMubmFtZSk7CiAgICB9LAogICAgcmVuZGVyRXJyb3I6IGZ1bmN0aW9uKGVsLCBlcnIpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwoKICAgICAgdGhpcy5jbGVhckVycm9yKGVsKTsKCiAgICAgIC8vIEFkZCBhbGwgdGhlc2UgZXJyb3IgY2xhc3NlcywgYXMgU2hpbnkgZG9lcwogICAgICB2YXIgZXJyQ2xhc3MgPSAic2hpbnktb3V0cHV0LWVycm9yIjsKICAgICAgaWYgKGVyci50eXBlICE9PSBudWxsKSB7CiAgICAgICAgLy8gdXNlIHRoZSBjbGFzc2VzIG9mIHRoZSBlcnJvciBjb25kaXRpb24gYXMgQ1NTIGNsYXNzIG5hbWVzCiAgICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgIiArICQubWFwKGFzQXJyYXkoZXJyLnR5cGUpLCBmdW5jdGlvbih0eXBlKSB7CiAgICAgICAgICByZXR1cm4gZXJyQ2xhc3MgKyAiLSIgKyB0eXBlOwogICAgICAgIH0pLmpvaW4oIiAiKTsKICAgICAgfQogICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiBodG1sd2lkZ2V0cy1lcnJvciI7CgogICAgICAvLyBJcyBlbCBpbmxpbmUgb3IgYmxvY2s/IElmIGlubGluZSBvciBpbmxpbmUtYmxvY2ssIGp1c3QgZGlzcGxheTpub25lIGl0CiAgICAgIC8vIGFuZCBhZGQgYW4gaW5saW5lIGVycm9yLgogICAgICB2YXIgZGlzcGxheSA9ICRlbC5jc3MoImRpc3BsYXkiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgZGlzcGxheSk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICAkZWwuaGlkZSgpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvclNwYW4gPSAkKCI8c3Bhbj4iKS5hZGRDbGFzcyhlcnJDbGFzcyk7CiAgICAgICAgICBlcnJvclNwYW4udGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JTcGFuKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIikgewogICAgICAgIC8vIElmIGJsb2NrLCBhZGQgYW4gZXJyb3IganVzdCBhZnRlciB0aGUgZWwsIHNldCB2aXNpYmlsaXR5Om5vbmUgb24gdGhlCiAgICAgICAgLy8gZWwsIGFuZCBwb3NpdGlvbiB0aGUgZXJyb3IgdG8gYmUgb24gdG9wIG9mIHRoZSBlbC4KICAgICAgICAvLyBNYXJrIGl0IHdpdGggYSB1bmlxdWUgSUQgYW5kIENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGxhdGVyLgogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaGlkZGVuIik7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yRGl2ID0gJCgiPGRpdj4iKS5hZGRDbGFzcyhlcnJDbGFzcykuY3NzKCJwb3NpdGlvbiIsICJhYnNvbHV0ZSIpCiAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgIC8vIHNldHRpbmcgd2lkdGggY2FuIHB1c2ggb3V0IHRoZSBwYWdlIHNpemUsIGZvcmNpbmcgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vIHVubmVjZXNzYXJ5IHNjcm9sbGJhcnMgdG8gYXBwZWFyIGFuZCBtYWtpbmcgaXQgaW1wb3NzaWJsZSBmb3IKICAgICAgICAgICAgLy8gdGhlIGVsZW1lbnQgdG8gc2hyaW5rOyBzbyB1c2UgbWF4LXdpZHRoIGluc3RlYWQKICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIGVycm9yRGl2LnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yRGl2KTsKCiAgICAgICAgICAvLyBSZWFsbHkgZHVtYiB3YXkgdG8ga2VlcCB0aGUgc2l6ZS9wb3NpdGlvbiBvZiB0aGUgZXJyb3IgaW4gc3luYyB3aXRoCiAgICAgICAgICAvLyB0aGUgcGFyZW50IGVsZW1lbnQgYXMgdGhlIHdpbmRvdyBpcyByZXNpemVkIG9yIHdoYXRldmVyLgogICAgICAgICAgdmFyIGludElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmICghZXJyb3JEaXZbMF0ucGFyZW50RWxlbWVudCkgewogICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50SWQpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBlcnJvckRpdgogICAgICAgICAgICAgIC5jc3MoInRvcCIsIGVsLm9mZnNldFRvcCkKICAgICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICB9LCA1MDApOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGNsZWFyRXJyb3I6IGZ1bmN0aW9uKGVsKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiKTsKICAgICAgJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIiwgbnVsbCk7CgogICAgICBpZiAoZGlzcGxheSA9PT0gImlubGluZSIgfHwgZGlzcGxheSA9PT0gImlubGluZS1ibG9jayIpIHsKICAgICAgICBpZiAoZGlzcGxheSkKICAgICAgICAgICRlbC5jc3MoImRpc3BsYXkiLCBkaXNwbGF5KTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpewogICAgICAgICRlbC5jc3MoInZpc2liaWxpdHkiLCAiaW5oZXJpdCIpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0KICAgIH0sCiAgICBzaXppbmc6IHt9CiAgfTsKCiAgLy8gQ2FsbGVkIGJ5IHdpZGdldCBiaW5kaW5ncyB0byByZWdpc3RlciBhIG5ldyB0eXBlIG9mIHdpZGdldC4gVGhlIGRlZmluaXRpb24KICAvLyBvYmplY3QgY2FuIGNvbnRhaW4gdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogIC8vIC0gbmFtZSAocmVxdWlyZWQpIC0gQSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgYmluZGluZyBuYW1lLCB3aGljaCB3aWxsIGJlCiAgLy8gICB1c2VkIGJ5IGRlZmF1bHQgYXMgdGhlIENTUyBjbGFzc25hbWUgdG8gbG9vayBmb3IuCiAgLy8gLSBpbml0aWFsaXplIChvcHRpb25hbCkgLSBBIGZ1bmN0aW9uKGVsKSB0aGF0IHdpbGwgYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICB3aWRnZXQgZWxlbWVudDsgaWYgYSB2YWx1ZSBpcyByZXR1cm5lZCwgaXQgd2lsbCBiZSBwYXNzZWQgYXMgdGhlIHRoaXJkCiAgLy8gICB2YWx1ZSB0byByZW5kZXJWYWx1ZS4KICAvLyAtIHJlbmRlclZhbHVlIChyZXF1aXJlZCkgLSBBIGZ1bmN0aW9uKGVsLCBkYXRhLCBpbml0VmFsdWUpIHRoYXQgd2lsbCBiZQogIC8vICAgY2FsbGVkIHdpdGggZGF0YS4gU3RhdGljIGNvbnRleHRzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIGVsZW1lbnQ7IFNoaW55IGFwcHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBwZXIKICAvLyAgIGVsZW1lbnQsIGFzIHRoZSBkYXRhIGNoYW5nZXMuCiAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldCA9IGZ1bmN0aW9uKGRlZmluaXRpb24pIHsKICAgIGlmICghZGVmaW5pdGlvbi5uYW1lKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIG5hbWUiKTsKICAgIH0KICAgIGlmICghZGVmaW5pdGlvbi50eXBlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHR5cGUiKTsKICAgIH0KICAgIC8vIEN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb3V0cHV0IHdpZGdldHMKICAgIGlmIChkZWZpbml0aW9uLnR5cGUgIT09ICJvdXRwdXQiKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHdpZGdldCB0eXBlICciICsgZGVmaW5pdGlvbi50eXBlICsgIiciKTsKICAgIH0KICAgIC8vIFRPRE86IFZlcmlmeSB0aGF0IC5uYW1lIGlzIGEgdmFsaWQgQ1NTIGNsYXNzbmFtZQoKICAgIC8vIFN1cHBvcnQgbmV3LXN0eWxlIGluc3RhbmNlLWJvdW5kIGRlZmluaXRpb25zLiBPbGQtc3R5bGUgY2xhc3MtYm91bmQKICAgIC8vIGRlZmluaXRpb25zIGhhdmUgb25lIHdpZGdldCAib2JqZWN0IiBwZXIgd2lkZ2V0IHBlciB0eXBlL2NsYXNzIG9mCiAgICAvLyB3aWRnZXQ7IHRoZSByZW5kZXJWYWx1ZSBhbmQgcmVzaXplIG1ldGhvZHMgb24gc3VjaCB3aWRnZXQgb2JqZWN0cwogICAgLy8gdGFrZSBlbCBhbmQgaW5zdGFuY2UgYXJndW1lbnRzLCBiZWNhdXNlIHRoZSB3aWRnZXQgb2JqZWN0IGNhbid0CiAgICAvLyBzdG9yZSB0aGVtLiBOZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0CiAgICAvLyBvYmplY3QgcGVyIHdpZGdldCBpbnN0YW5jZTsgdGhlIGRlZmluaXRpb24gdGhhdCdzIHBhc3NlZCBpbiBkb2Vzbid0CiAgICAvLyBwcm92aWRlIHJlbmRlclZhbHVlIG9yIHJlc2l6ZSBtZXRob2RzIGF0IGFsbCwganVzdCB0aGUgc2luZ2xlIG1ldGhvZAogICAgLy8gICBmYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KQogICAgLy8gd2hpY2ggcmV0dXJucyBhbiBvYmplY3QgdGhhdCBoYXMgcmVuZGVyVmFsdWUoeCkgYW5kIHJlc2l6ZSh3LCBoKS4KICAgIC8vIFRoaXMgZW5hYmxlcyBhIGZhciBtb3JlIG5hdHVyYWwgcHJvZ3JhbW1pbmcgc3R5bGUgZm9yIHRoZSB3aWRnZXQKICAgIC8vIGF1dGhvciwgd2hvIGNhbiBzdG9yZSBwZXItaW5zdGFuY2Ugc3RhdGUgdXNpbmcgZWl0aGVyIE9PLXN0eWxlCiAgICAvLyBpbnN0YW5jZSBmaWVsZHMgb3IgZnVuY3Rpb25hbC1zdHlsZSBjbG9zdXJlIHZhcmlhYmxlcyAoSSBndWVzcyB0aGlzCiAgICAvLyBpcyBpbiBjb250cmFzdCB0byB3aGF0IGNhbiBvbmx5IGJlIGNhbGxlZCBDLXN0eWxlIHBzZXVkby1PTyB3aGljaCBpcwogICAgLy8gd2hhdCB3ZSByZXF1aXJlZCBiZWZvcmUpLgogICAgaWYgKGRlZmluaXRpb24uZmFjdG9yeSkgewogICAgICBkZWZpbml0aW9uID0gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmaW5pdGlvbik7CiAgICB9CgogICAgaWYgKCFkZWZpbml0aW9uLnJlbmRlclZhbHVlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiV2lkZ2V0IG11c3QgaGF2ZSBhIHJlbmRlclZhbHVlIGZ1bmN0aW9uIik7CiAgICB9CgogICAgLy8gRm9yIHN0YXRpYyByZW5kZXJpbmcgKG5vbi1TaGlueSksIHVzZSBhIHNpbXBsZSB3aWRnZXQgcmVnaXN0cmF0aW9uCiAgICAvLyBzY2hlbWUuIFdlIGFsc28gdXNlIHRoaXMgc2NoZW1lIGZvciBTaGlueSBhcHBzL2RvY3VtZW50cyB0aGF0IGFsc28KICAgIC8vIGNvbnRhaW4gc3RhdGljIHdpZGdldHMuCiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgLy8gTWVyZ2UgZGVmYXVsdHMgaW50byB0aGUgZGVmaW5pdGlvbjsgZG9uJ3QgbXV0YXRlIHRoZSBvcmlnaW5hbCBkZWZpbml0aW9uLgogICAgdmFyIHN0YXRpY0JpbmRpbmcgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKICAgIG92ZXJyaWRlTWV0aG9kKHN0YXRpY0JpbmRpbmcsICJmaW5kIiwgZnVuY3Rpb24oc3VwZXJmdW5jKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gc3VwZXJmdW5jKHNjb3BlKTsKICAgICAgICAvLyBGaWx0ZXIgb3V0IFNoaW55IG91dHB1dHMsIHdlIG9ubHkgd2FudCB0aGUgc3RhdGljIGtpbmQKICAgICAgICByZXR1cm4gZmlsdGVyQnlDbGFzcyhyZXN1bHRzLCAiaHRtbC13aWRnZXQtb3V0cHV0IiwgZmFsc2UpOwogICAgICB9OwogICAgfSk7CiAgICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cy5wdXNoKHN0YXRpY0JpbmRpbmcpOwoKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gU2hpbnkgaXMgcnVubmluZy4gUmVnaXN0ZXIgdGhlIGRlZmluaXRpb24gd2l0aCBhbiBvdXRwdXQgYmluZGluZy4KICAgICAgLy8gVGhlIGRlZmluaXRpb24gaXRzZWxmIHdpbGwgbm90IGJlIHRoZSBvdXRwdXQgYmluZGluZywgaW5zdGVhZAogICAgICAvLyB3ZSB3aWxsIG1ha2UgYW4gb3V0cHV0IGJpbmRpbmcgb2JqZWN0IHRoYXQgZGVsZWdhdGVzIHRvIHRoZQogICAgICAvLyBkZWZpbml0aW9uLiBUaGlzIGlzIGJlY2F1c2Ugd2UgZm9vbGlzaGx5IHVzZWQgdGhlIHNhbWUgbWV0aG9kCiAgICAgIC8vIG5hbWUgKHJlbmRlclZhbHVlKSBmb3IgaHRtbHdpZGdldHMgZGVmaW5pdGlvbiBhbmQgU2hpbnkgYmluZGluZ3MKICAgICAgLy8gYnV0IHRoZXkgYWN0dWFsbHkgaGF2ZSBxdWl0ZSBkaWZmZXJlbnQgc2VtYW50aWNzICh0aGUgU2hpbnkKICAgICAgLy8gYmluZGluZ3MgcmVjZWl2ZSBkYXRhIHRoYXQgaW5jbHVkZXMgbG90cyBvZiBtZXRhZGF0YSB0aGF0IGl0CiAgICAgIC8vIHN0cmlwcyBvZmYgYmVmb3JlIGNhbGxpbmcgaHRtbHdpZGdldHMgcmVuZGVyVmFsdWUpLiBXZSBjYW4ndAogICAgICAvLyBqdXN0IGlnbm9yZSB0aGUgZGlmZmVyZW5jZSBiZWNhdXNlIGluIHNvbWUgd2lkZ2V0cyBpdCdzIGhlbHBmdWwKICAgICAgLy8gdG8gY2FsbCB0aGlzLnJlbmRlclZhbHVlKCkgZnJvbSBpbnNpZGUgb2YgcmVzaXplKCksIGFuZCBpZgogICAgICAvLyB3ZSdyZSBub3QgZGVsZWdhdGluZywgdGhlbiB0aGF0IGNhbGwgd2lsbCBnbyB0byB0aGUgU2hpbnkKICAgICAgLy8gdmVyc2lvbiBpbnN0ZWFkIG9mIHRoZSBodG1sd2lkZ2V0cyB2ZXJzaW9uLgoKICAgICAgLy8gTWVyZ2UgZGVmYXVsdHMgd2l0aCBkZWZpbml0aW9uLCB3aXRob3V0IG11dGF0aW5nIGVpdGhlci4KICAgICAgdmFyIGJpbmRpbmdEZWYgPSBleHRlbmQoe30sIGRlZmF1bHRzLCBkZWZpbml0aW9uKTsKCiAgICAgIC8vIFRoaXMgb2JqZWN0IHdpbGwgYmUgb3VyIGFjdHVhbCBTaGlueSBiaW5kaW5nLgogICAgICB2YXIgc2hpbnlCaW5kaW5nID0gbmV3IFNoaW55Lk91dHB1dEJpbmRpbmcoKTsKCiAgICAgIC8vIFdpdGggYSBmZXcgZXhjZXB0aW9ucywgd2UnbGwgd2FudCB0byBzaW1wbHkgdXNlIHRoZSBiaW5kaW5nRGVmJ3MKICAgICAgLy8gdmVyc2lvbiBvZiBtZXRob2RzIGlmIHRoZXkgYXJlIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0bwogICAgICAvLyBTaGlueSdzIGRlZmF1bHRzLiBOT1RFOiBJZiBTaGlueSdzIG91dHB1dCBiaW5kaW5ncyBnYWluIGFkZGl0aW9uYWwKICAgICAgLy8gbWV0aG9kcyBpbiB0aGUgZnV0dXJlLCBhbmQgd2Ugd2FudCB0aGVtIHRvIGJlIG92ZXJyaWRlYWJsZSBieQogICAgICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcgZGVmaW5pdGlvbnMsIHRoZW4gd2UnbGwgbmVlZCB0byBhZGQgdGhlbSB0byB0aGlzCiAgICAgIC8vIGxpc3QuCiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImdldElkIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgIm9uVmFsdWVDaGFuZ2UiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgInJlbmRlckVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgImNsZWFyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAic2hvd1Byb2dyZXNzIik7CgogICAgICAvLyBUaGUgZmluZCwgcmVuZGVyVmFsdWUsIGFuZCByZXNpemUgYXJlIGhhbmRsZWQgZGlmZmVyZW50bHksIGJlY2F1c2Ugd2UKICAgICAgLy8gd2FudCB0byBhY3R1YWxseSBkZWNvcmF0ZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGJpbmRpbmdEZWYgbWV0aG9kcy4KCiAgICAgIHNoaW55QmluZGluZy5maW5kID0gZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgICB2YXIgcmVzdWx0cyA9IGJpbmRpbmdEZWYuZmluZChzY29wZSk7CgogICAgICAgIC8vIE9ubHkgcmV0dXJuIGVsZW1lbnRzIHRoYXQgYXJlIFNoaW55IG91dHB1dHMsIG5vdCBzdGF0aWMgb25lcwogICAgICAgIHZhciBkeW5hbWljUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKCIuaHRtbC13aWRnZXQtb3V0cHV0Iik7CgogICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB3aGF0ZXZlciBjYXVzZWQgU2hpbnkgdG8gdGhpbmsgdGhlcmUgbWlnaHQgYmUKICAgICAgICAvLyBuZXcgZHluYW1pYyBvdXRwdXRzLCBhbHNvIGNhdXNlZCB0aGVyZSB0byBiZSBuZXcgc3RhdGljIG91dHB1dHMuCiAgICAgICAgLy8gU2luY2UgdGhlcmUgbWlnaHQgYmUgbG90cyBvZiBkaWZmZXJlbnQgaHRtbHdpZGdldHMgYmluZGluZ3MsIHdlCiAgICAgICAgLy8gc2NoZWR1bGUgZXhlY3V0aW9uIGZvciBsYXRlci0tbm8gbmVlZCB0byBzdGF0aWNSZW5kZXIgbXVsdGlwbGUKICAgICAgICAvLyB0aW1lcy4KICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT09IGR5bmFtaWNSZXN1bHRzLmxlbmd0aCkKICAgICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyKCk7CgogICAgICAgIHJldHVybiBkeW5hbWljUmVzdWx0czsKICAgICAgfTsKCiAgICAgIC8vIFdyYXAgcmVuZGVyVmFsdWUgdG8gaGFuZGxlIGluaXRpYWxpemF0aW9uLCB3aGljaCB1bmZvcnR1bmF0ZWx5IGlzbid0CiAgICAgIC8vIHN1cHBvcnRlZCBuYXRpdmVseSBieSBTaGlueSBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcuCgogICAgICBzaGlueUJpbmRpbmcucmVuZGVyVmFsdWUgPSBmdW5jdGlvbihlbCwgZGF0YSkgewogICAgICAgIC8vIFJlc29sdmUgc3RyaW5ncyBtYXJrZWQgYXMgamF2YXNjcmlwdCBsaXRlcmFscyB0byBvYmplY3RzCiAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgZGF0YS5ldmFscyAmJiBpIDwgZGF0YS5ldmFscy5sZW5ndGg7IGkrKykgewogICAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyKGRhdGEueCwgZGF0YS5ldmFsc1tpXSk7CiAgICAgICAgfQogICAgICAgIGlmICghYmluZGluZ0RlZi5yZW5kZXJPbk51bGxWYWx1ZSkgewogICAgICAgICAgaWYgKGRhdGEueCA9PT0gbnVsbCkgewogICAgICAgICAgICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaW5oZXJpdCI7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICBpbml0U2l6aW5nKGVsKTsKCiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIiwgdHJ1ZSk7CiAgICAgICAgICBpZiAoYmluZGluZ0RlZi5pbml0aWFsaXplKSB7CiAgICAgICAgICAgIHZhciByZXN1bHQgPSBiaW5kaW5nRGVmLmluaXRpYWxpemUoZWwsIGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICAgIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiLCByZXN1bHQpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBTaGlueS5yZW5kZXJEZXBlbmRlbmNpZXMoZGF0YS5kZXBzKTsKICAgICAgICBiaW5kaW5nRGVmLnJlbmRlclZhbHVlKGVsLCBkYXRhLngsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgZXZhbEFuZFJ1bihkYXRhLmpzSG9va3MucmVuZGVyLCBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiksIFtlbCwgZGF0YS54XSk7CiAgICAgIH07CgogICAgICAvLyBPbmx5IG92ZXJyaWRlIHJlc2l6ZSBpZiBiaW5kaW5nRGVmIGltcGxlbWVudHMgaXQKICAgICAgaWYgKGJpbmRpbmdEZWYucmVzaXplKSB7CiAgICAgICAgc2hpbnlCaW5kaW5nLnJlc2l6ZSA9IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgICAvLyBTaGlueSBjYW4gY2FsbCByZXNpemUgYmVmb3JlIGluaXRpYWxpemUvcmVuZGVyVmFsdWUgaGF2ZSBiZWVuCiAgICAgICAgICAvLyBjYWxsZWQsIHdoaWNoIGRvZXNuJ3QgbWFrZSBzZW5zZSBmb3Igd2lkZ2V0cy4KICAgICAgICAgIGlmIChlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgICAgYmluZGluZ0RlZi5yZXNpemUoZWwsIHdpZHRoLCBoZWlnaHQsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQoKICAgICAgU2hpbnkub3V0cHV0QmluZGluZ3MucmVnaXN0ZXIoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLm5hbWUpOwogICAgfQogIH07CgogIHZhciBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogIGZ1bmN0aW9uIHNjaGVkdWxlU3RhdGljUmVuZGVyKCkgewogICAgaWYgKCFzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQpIHsKICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBudWxsOwogICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgICAgfSwgMSk7CiAgICB9CiAgfQoKICAvLyBSZW5kZXIgc3RhdGljIHdpZGdldHMgYWZ0ZXIgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKICAvLyBTdGF0aWNhbGx5IHJlbmRlciBhbGwgZWxlbWVudHMgdGhhdCBhcmUgb2YgdGhpcyB3aWRnZXQncyBjbGFzcwogIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIgPSBmdW5jdGlvbigpIHsKICAgIHZhciBiaW5kaW5ncyA9IHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzIHx8IFtdOwogICAgZm9yRWFjaChiaW5kaW5ncywgZnVuY3Rpb24oYmluZGluZykgewogICAgICB2YXIgbWF0Y2hlcyA9IGJpbmRpbmcuZmluZChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOwogICAgICBmb3JFYWNoKG1hdGNoZXMsIGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgdmFyIHNpemVPYmogPSBpbml0U2l6aW5nKGVsLCBiaW5kaW5nKTsKCiAgICAgICAgaWYgKGhhc0NsYXNzKGVsLCAiaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgZWwuY2xhc3NOYW1lID0gZWwuY2xhc3NOYW1lICsgIiBodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiOwoKICAgICAgICB2YXIgaW5pdFJlc3VsdDsKICAgICAgICBpZiAoYmluZGluZy5pbml0aWFsaXplKSB7CiAgICAgICAgICBpbml0UmVzdWx0ID0gYmluZGluZy5pbml0aWFsaXplKGVsLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICApOwogICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIGluaXRSZXN1bHQpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGJpbmRpbmcucmVzaXplKSB7CiAgICAgICAgICB2YXIgbGFzdFNpemUgPSB7fTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJzaG93bi5odG1sd2lkZ2V0cyBzaG93bi5icy50YWIuaHRtbHdpZGdldHMgc2hvd24uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd2luZG93LmpRdWVyeShkb2N1bWVudCkub24oCiAgICAgICAgICAgICAgImhpZGRlbi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMudGFiLmh0bWx3aWRnZXRzIGhpZGRlbi5icy5jb2xsYXBzZS5odG1sd2lkZ2V0cyIsCiAgICAgICAgICAgICAgcmVzaXplSGFuZGxlcgogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgc3BlY2lmaWMgY2FzZSBvZiBpb3NsaWRlcywgd2hpY2gKICAgICAgICAgIC8vIGZsaXBzIHNsaWRlcyBiZXR3ZWVuIGRpc3BsYXk6bm9uZSBhbmQgZGlzcGxheTpibG9jay4KICAgICAgICAgIC8vIElkZWFsbHkgd2Ugd291bGQgbm90IGhhdmUgdG8gaGF2ZSBpb3NsaWRlLXNwZWNpZmljIGNvZGUKICAgICAgICAgIC8vIGhlcmUsIGJ1dCByYXRoZXIgaGF2ZSBpb3NsaWRlcyByYWlzZSBhIGdlbmVyaWMgZXZlbnQsCiAgICAgICAgICAvLyBidXQgdGhlIHJtYXJrZG93biBwYWNrYWdlIGp1c3Qgd2VudCB0byBDUkFOIHNvIHRoZQogICAgICAgICAgLy8gd2luZG93IHRvIGdldHRpbmcgdGhhdCBmaXhlZCBtYXkgYmUgbG9uZy4KICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgICAgICAvLyBJdCdzIE9LIHRvIGxpbWl0IHRoaXMgdG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgLy8gYnJvd3NlcnMgYmVjYXVzZSBpb3NsaWRlcyBpdHNlbGYgb25seSBzdXBwb3J0cwogICAgICAgICAgICAvLyBzdWNoIGJyb3dzZXJzLgogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlZW50ZXIiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWxlYXZlIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgc2NyaXB0RGF0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXSIpOwogICAgICAgIGlmIChzY3JpcHREYXRhKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc2NyaXB0RGF0YS50ZXh0Q29udGVudCB8fCBzY3JpcHREYXRhLnRleHQpOwogICAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICAgIGlmICghKGRhdGEuZXZhbHMgaW5zdGFuY2VvZiBBcnJheSkpIGRhdGEuZXZhbHMgPSBbZGF0YS5ldmFsc107CiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgZGF0YS5ldmFscyAmJiBrIDwgZGF0YS5ldmFscy5sZW5ndGg7IGsrKykgewogICAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2tdKTsKICAgICAgICAgIH0KICAgICAgICAgIGJpbmRpbmcucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGluaXRSZXN1bHQsIFtlbCwgZGF0YS54XSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwoKICAgIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpOwogIH0KCiAgLy8gV2FpdCB1bnRpbCBhZnRlciB0aGUgZG9jdW1lbnQgaGFzIGxvYWRlZCB0byByZW5kZXIgdGhlIHdpZGdldHMuCiAgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGFyZ3VtZW50cy5jYWxsZWUsIGZhbHNlKTsKICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgfSwgZmFsc2UpOwogIH0gZWxzZSBpZiAoZG9jdW1lbnQuYXR0YWNoRXZlbnQpIHsKICAgIGRvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBmdW5jdGlvbigpIHsKICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIpIHsKICAgICAgICBkb2N1bWVudC5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgYXJndW1lbnRzLmNhbGxlZSk7CiAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgICB9CiAgICB9KTsKICB9CgoKICB3aW5kb3cuSFRNTFdpZGdldHMuZ2V0QXR0YWNobWVudFVybCA9IGZ1bmN0aW9uKGRlcG5hbWUsIGtleSkgewogICAgLy8gSWYgbm8ga2V5LCBkZWZhdWx0IHRvIHRoZSBmaXJzdCBpdGVtCiAgICBpZiAodHlwZW9mKGtleSkgPT09ICJ1bmRlZmluZWQiKQogICAgICBrZXkgPSAxOwoKICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVwbmFtZSArICItIiArIGtleSArICItYXR0YWNobWVudCIpOwogICAgaWYgKCFsaW5rKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0YWNobWVudCAiICsgZGVwbmFtZSArICIvIiArIGtleSArICIgbm90IGZvdW5kIGluIGRvY3VtZW50Iik7CiAgICB9CiAgICByZXR1cm4gbGluay5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMuZGF0YWZyYW1lVG9EMyA9IGZ1bmN0aW9uKGRmKSB7CiAgICB2YXIgbmFtZXMgPSBbXTsKICAgIHZhciBsZW5ndGg7CiAgICBmb3IgKHZhciBuYW1lIGluIGRmKSB7CiAgICAgICAgaWYgKGRmLmhhc093blByb3BlcnR5KG5hbWUpKQogICAgICAgICAgICBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgIGlmICh0eXBlb2YoZGZbbmFtZV0pICE9PSAib2JqZWN0IiB8fCB0eXBlb2YoZGZbbmFtZV0ubGVuZ3RoKSA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIik7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YobGVuZ3RoKSAhPT0gInVuZGVmaW5lZCIgJiYgbGVuZ3RoICE9PSBkZltuYW1lXS5sZW5ndGgpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpOwogICAgICAgIH0KICAgICAgICBsZW5ndGggPSBkZltuYW1lXS5sZW5ndGg7CiAgICB9CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGl0ZW07CiAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCBsZW5ndGg7IHJvdysrKSB7CiAgICAgICAgaXRlbSA9IHt9OwogICAgICAgIGZvciAodmFyIGNvbCA9IDA7IGNvbCA8IG5hbWVzLmxlbmd0aDsgY29sKyspIHsKICAgICAgICAgICAgaXRlbVtuYW1lc1tjb2xdXSA9IGRmW25hbWVzW2NvbF1dW3Jvd107CiAgICAgICAgfQogICAgICAgIHJlc3VsdHMucHVzaChpdGVtKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy50cmFuc3Bvc2VBcnJheTJEID0gZnVuY3Rpb24oYXJyYXkpIHsKICAgICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIGFycmF5OwogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gZXZhbCgiKCIgKyBvW3BhcnRdICsgIikiKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIC8vIFJldHJpZXZlIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YgYW4KICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCBhbiBlbGVtZW50LCBvciBudWxsIGlmIG5vbmUuCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0Iik7CiAgfTsKCiAgLy8gRmluZHMgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2hlcyB0aGUgc2VsZWN0b3IsCiAgLy8gYW5kIHJldHVybnMgdGhlIEhUTUxXaWRnZXQgaW5zdGFuY2UgKGkuZS4gdGhlIHJldHVybiB2YWx1ZSBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoYXQgZWxlbWVudCwgaWYgYW55LiBJZiBubyBlbGVtZW50IG1hdGNoZXMgdGhlCiAgLy8gc2VsZWN0b3IsIG9yIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50IGhhcyBubyBIVE1MV2lkZ2V0CiAgLy8gaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGl0LCB0aGVuIG51bGwgaXMgcmV0dXJuZWQuCiAgLy8KICAvLyBUaGUgc2NvcGUgYXJndW1lbnQgaXMgb3B0aW9uYWwsIGFuZCBkZWZhdWx0cyB0byB3aW5kb3cuZG9jdW1lbnQuCiAgd2luZG93LkhUTUxXaWRnZXRzLmZpbmQgPSBmdW5jdGlvbihzY29wZSwgc2VsZWN0b3IpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgc2VsZWN0b3IgPSBzY29wZTsKICAgICAgc2NvcGUgPSBkb2N1bWVudDsKICAgIH0KCiAgICB2YXIgZWwgPSBzY29wZS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKICAgIGlmIChlbCA9PT0gbnVsbCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiB3aW5kb3cuSFRNTFdpZGdldHMuZ2V0SW5zdGFuY2UoZWwpOwogICAgfQogIH07CgogIC8vIEZpbmRzIGFsbCBlbGVtZW50cyBpbiB0aGUgc2NvcGUgdGhhdCBtYXRjaCB0aGUgc2VsZWN0b3IsIGFuZAogIC8vIHJldHVybnMgdGhlIEhUTUxXaWRnZXQgaW5zdGFuY2VzIChpLmUuIHRoZSByZXR1cm4gdmFsdWVzIG9mCiAgLy8gYW4gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIGVsZW1lbnRzLCBpbiBhbiBhcnJheS4gSWYgZWxlbWVudHMgdGhhdAogIC8vIG1hdGNoIHRoZSBzZWxlY3RvciBkb24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgSFRNTFdpZGdldAogIC8vIGluc3RhbmNlLCB0aGUgcmV0dXJuZWQgYXJyYXkgd2lsbCBjb250YWluIG51bGxzLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kQWxsID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIG5vZGVzID0gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewogICAgICByZXN1bHRzLnB1c2god2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKG5vZGVzW2ldKSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB2YXIgcG9zdFJlbmRlckhhbmRsZXJzID0gW107CiAgZnVuY3Rpb24gaW52b2tlUG9zdFJlbmRlckhhbmRsZXJzKCkgewogICAgd2hpbGUgKHBvc3RSZW5kZXJIYW5kbGVycy5sZW5ndGgpIHsKICAgICAgdmFyIGhhbmRsZXIgPSBwb3N0UmVuZGVySGFuZGxlcnMuc2hpZnQoKTsKICAgICAgaWYgKGhhbmRsZXIpIHsKICAgICAgICBoYW5kbGVyKCk7CiAgICAgIH0KICAgIH0KICB9CgogIC8vIFJlZ2lzdGVyIHRoZSBnaXZlbiBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIGFmdGVyIHRoZQogIC8vIG5leHQgdGltZSBzdGF0aWMgd2lkZ2V0cyBhcmUgcmVuZGVyZWQuCiAgd2luZG93LkhUTUxXaWRnZXRzLmFkZFBvc3RSZW5kZXJIYW5kbGVyID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgIHBvc3RSZW5kZXJIYW5kbGVycy5wdXNoKGNhbGxiYWNrKTsKICB9OwoKICAvLyBUYWtlcyBhIG5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9uLCBhbmQgcmV0dXJucyBhbgogIC8vIG9sZC1zdHlsZSBjbGFzcy1ib3VuZCBkZWZpbml0aW9uLiBUaGlzIHNhdmVzIHVzIGZyb20gaGF2aW5nCiAgLy8gdG8gcmV3cml0ZSBhbGwgdGhlIGxvZ2ljIGluIHRoaXMgZmlsZSB0byBhY2NvbW9kYXRlIGJvdGgKICAvLyB0eXBlcyBvZiBkZWZpbml0aW9ucy4KICBmdW5jdGlvbiBjcmVhdGVMZWdhY3lEZWZpbml0aW9uQWRhcHRlcihkZWZuKSB7CiAgICB2YXIgcmVzdWx0ID0gewogICAgICBuYW1lOiBkZWZuLm5hbWUsCiAgICAgIHR5cGU6IGRlZm4udHlwZSwKICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICByZXR1cm4gZGVmbi5mYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgfSwKICAgICAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgICAgIHJldHVybiBpbnN0YW5jZS5yZW5kZXJWYWx1ZSh4KTsKICAgICAgfSwKICAgICAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVzaXplKHdpZHRoLCBoZWlnaHQpOwogICAgICB9CiAgICB9OwoKICAgIGlmIChkZWZuLmZpbmQpCiAgICAgIHJlc3VsdC5maW5kID0gZGVmbi5maW5kOwogICAgaWYgKGRlZm4ucmVuZGVyRXJyb3IpCiAgICAgIHJlc3VsdC5yZW5kZXJFcnJvciA9IGRlZm4ucmVuZGVyRXJyb3I7CiAgICBpZiAoZGVmbi5jbGVhckVycm9yKQogICAgICByZXN1bHQuY2xlYXJFcnJvciA9IGRlZm4uY2xlYXJFcnJvcjsKCiAgICByZXR1cm4gcmVzdWx0OwogIH0KfSkoKTsKCg=="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
28 <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewoKLy8gc29tZSBoZWxwZXIgZnVuY3Rpb25zOiB1c2luZyBhIGdsb2JhbCBvYmplY3QgRFRXaWRnZXQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZAovLyBpbiBKUygpIGNvZGUsIGUuZy4gZGF0YXRhYmxlKG9wdGlvbnMgPSBsaXN0KGZvbyA9IEpTKCdjb2RlJykpKTsgdW5saWtlIFIncwovLyBkeW5hbWljIHNjb3BpbmcsIHdoZW4gJ2NvZGUnIGlzIGV2YWwoKSdlZCwgSmF2YVNjcmlwdCBkb2VzIG5vdCBrbm93IG9iamVjdHMKLy8gZnJvbSB0aGUgInBhcmVudCBmcmFtZSIsIGUuZy4gSlMoJ0RUV2lkZ2V0Jykgd2lsbCBub3Qgd29yayB1bmxlc3MgaXQgd2FzIG1hZGUKLy8gYSBnbG9iYWwgb2JqZWN0CnZhciBEVFdpZGdldCA9IHt9OwoKRFRXaWRnZXQuZm9ybWF0Q3VycmVuY3kgPSBmdW5jdGlvbih0aGl6LCByb3csIGRhdGEsIGNvbCwgY3VycmVuY3ksIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmssIGJlZm9yZSkgewogIHZhciBkID0gcGFyc2VGbG9hdChkYXRhW2NvbF0pOwogIGlmIChpc05hTihkKSkgcmV0dXJuOwogIC8vIDEyMzQ1NjY2Ni43ODkwIC0+IDEyMyw0NTYsNjY2Ljc4OTAKICB2YXIgbWFya0ludGVydmFsID0gZnVuY3Rpb24oeCwgaW50ZXJ2YWwsIG1hcmspIHsKICAgIGlmICghL14tP1tcZC5dKyQvLnRlc3QoeCkpIHJldHVybiB4OwogICAgdmFyIHh2ID0geC5zcGxpdCgnLicpOwogICAgaWYgKHh2Lmxlbmd0aCA+IDIpIHJldHVybiB4OyAgLy8gc2hvdWxkIGhhdmUgYXQgbW9zdCBvbmUgZGVjaW1hbCBwb2ludAogICAgeHZbMF0gPSB4dlswXS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcQig/PShcXGR7JyArIGludGVydmFsICsgJ30pKyg/IVxcZCkpJywgJ2cnKSwgbWFyayk7CiAgICByZXR1cm4geHYuam9pbihkZWNNYXJrKTsKICB9OwogIGQgPSBkLnRvRml4ZWQoZGlnaXRzKTsKICB2YXIgcmVzID0gbWFya0ludGVydmFsKGQsIGludGVydmFsLCBtYXJrKTsKICByZXMgPSBiZWZvcmUgPyAoL14tLy50ZXN0KHJlcykgPyAnLScgKyBjdXJyZW5jeSArIHJlcy5yZXBsYWNlKC9eLS8sICcnKSA6IGN1cnJlbmN5ICsgcmVzKSA6CiAgICByZXMgKyBjdXJyZW5jeTsKICAkKHRoaXouYXBpKCkuY2VsbChyb3csIGNvbCkubm9kZSgpKS5odG1sKHJlcyk7Cn07CgpEVFdpZGdldC5mb3JtYXRTdHJpbmcgPSBmdW5jdGlvbih0aGl6LCByb3csIGRhdGEsIGNvbCwgcHJlZml4LCBzdWZmaXgpIHsKICB2YXIgZCA9IGRhdGFbY29sXTsKICBpZiAoZCA9PT0gbnVsbCkgcmV0dXJuOwogICQodGhpei5hcGkoKS5jZWxsKHJvdywgY29sKS5ub2RlKCkpLmh0bWwocHJlZml4ICsgZCArIHN1ZmZpeCk7Cn07CgpEVFdpZGdldC5mb3JtYXRQZXJjZW50YWdlID0gZnVuY3Rpb24odGhpeiwgcm93LCBkYXRhLCBjb2wsIGRpZ2l0cykgewogIHZhciBkID0gcGFyc2VGbG9hdChkYXRhW2NvbF0pOwogIGlmIChpc05hTihkKSkgcmV0dXJuOwogICQodGhpei5hcGkoKS5jZWxsKHJvdywgY29sKS5ub2RlKCkpLmh0bWwoKGQgKiAxMDApLnRvRml4ZWQoZGlnaXRzKSArICclJyk7Cn07CgpEVFdpZGdldC5mb3JtYXRSb3VuZCA9IGZ1bmN0aW9uKHRoaXosIHJvdywgZGF0YSwgY29sLCBkaWdpdHMpIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YVtjb2xdKTsKICBpZiAoaXNOYU4oZCkpIHJldHVybjsKICAkKHRoaXouYXBpKCkuY2VsbChyb3csIGNvbCkubm9kZSgpKS5odG1sKGQudG9GaXhlZChkaWdpdHMpKTsKfTsKCkRUV2lkZ2V0LmZvcm1hdFNpZ25pZiA9IGZ1bmN0aW9uKHRoaXosIHJvdywgZGF0YSwgY29sLCBkaWdpdHMpIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YVtjb2xdKTsKICBpZiAoaXNOYU4oZCkpIHJldHVybjsKICAkKHRoaXouYXBpKCkuY2VsbChyb3csIGNvbCkubm9kZSgpKS5odG1sKGQudG9QcmVjaXNpb24oZGlnaXRzKSk7Cn07CgpEVFdpZGdldC5mb3JtYXREYXRlID0gZnVuY3Rpb24odGhpeiwgcm93LCBkYXRhLCBjb2wsIG1ldGhvZCkgewogIHZhciBkID0gZGF0YVtjb2xdOwogIGlmIChkID09PSBudWxsKSByZXR1cm47CiAgZCA9IG5ldyBEYXRlKGQpOwogICQodGhpei5hcGkoKS5jZWxsKHJvdywgY29sKS5ub2RlKCkpLmh0bWwoZFttZXRob2RdKCkpOwp9OwoKd2luZG93LkRUV2lkZ2V0ID0gRFRXaWRnZXQ7Cgp2YXIgdHJhbnNwb3NlQXJyYXkyRCA9IGZ1bmN0aW9uKGEpIHsKICByZXR1cm4gYS5sZW5ndGggPT09IDAgPyBhIDogSFRNTFdpZGdldHMudHJhbnNwb3NlQXJyYXkyRChhKTsKfTsKCkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogImRhdGF0YWJsZXMiLAogIHR5cGU6ICJvdXRwdXQiLAogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAkKGVsKS5odG1sKCcmbmJzcDsnKTsKICAgIHJldHVybiB7IGRhdGE6IG51bGwgfTsKICB9LAogIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgZGF0YSwgaW5zdGFuY2UpIHsKICAgIGlmIChlbC5vZmZzZXRXaWR0aCA9PT0gMCB8fCBlbC5vZmZzZXRIZWlnaHQgPT09IDApIHsKICAgICAgaW5zdGFuY2UuZGF0YSA9IGRhdGE7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGluc3RhbmNlLmRhdGEgPSBudWxsOwogICAgdmFyICRlbCA9ICQoZWwpOwogICAgJGVsLmVtcHR5KCk7CgogICAgaWYgKGRhdGEgPT09IG51bGwpIHsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIC8vIElmIHdlIGFyZSBpbiBhIGZsZXhkYXNoYm9hcmQgc2Nyb2xsIGxheW91dCB0aGVuIHdlOgogICAgLy8gIChhKSBBbHdheXMgd2FudCB0byB1c2UgcGFnaW5hdGlvbiAob3RoZXJ3aXNlIHdlJ2xsIGhhdmUKICAgIC8vICAgICAgYSAiZG91YmxlIHNjcm9sbCBiYXIiIGVmZmVjdCBvbiB0aGUgcGhvbmUpOyBhbmQKICAgIC8vICAoYikgTmV2ZXIgd2FudCB0byBmaWxsIHRoZSBjb250YWluZXIgKHdlIHdhbnQgdGhlIHBhZ2luYXRpb24KICAgIC8vICAgICAgbGV2ZWwgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIpCiAgICBpZiAod2luZG93LkZsZXhEYXNoYm9hcmQgJiYgIXdpbmRvdy5GbGV4RGFzaGJvYXJkLmlzRmlsbFBhZ2UoKSkgewogICAgICBkYXRhLm9wdGlvbnMuYlBhZ2luYXRlID0gdHJ1ZTsKICAgICAgZGF0YS5maWxsQ29udGFpbmVyID0gZmFsc2U7CiAgICB9CgogICAgLy8gaWYgd2UgYXJlIGluIHRoZSB2aWV3ZXIgdGhlbiB3ZSBhbHdheXMgd2FudCB0byBmaWxsQ29udGFpbmVyIGFuZAogICAgLy8gYW5kIGF1dG9IaWRlTmF2aWdhdGlvbiAodW5sZXNzIHRoZSB1c2VyIGhhcyBleHBsaWNpdGx5IHNldCB0aGVzZSkKICAgIGlmICh3aW5kb3cuSFRNTFdpZGdldHMudmlld2VyTW9kZSkgewogICAgICBpZiAoIWRhdGEuaGFzT3duUHJvcGVydHkoImZpbGxDb250YWluZXIiKSkKICAgICAgICBkYXRhLmZpbGxDb250YWluZXIgPSB0cnVlOwogICAgICBpZiAoIWRhdGEuaGFzT3duUHJvcGVydHkoImF1dG9IaWRlTmF2aWdhdGlvbiIpKQogICAgICAgIGRhdGEuYXV0b0hpZGVOYXZpZ2F0aW9uID0gdHJ1ZTsKICAgIH0KCiAgICAvLyBwcm9wYWdhdGUgZmlsbENvbnRhaW5lciB0byBpbnN0YW5jZSAoc28gd2UgaGF2ZSBpdCBpbiByZXNpemUpCiAgICBpbnN0YW5jZS5maWxsQ29udGFpbmVyID0gZGF0YS5maWxsQ29udGFpbmVyOwoKICAgIHZhciBjZWxscyA9IGRhdGEuZGF0YTsKCiAgICBpZiAoY2VsbHMgaW5zdGFuY2VvZiBBcnJheSkgY2VsbHMgPSB0cmFuc3Bvc2VBcnJheTJEKGNlbGxzKTsKCiAgICAkZWwuYXBwZW5kKGRhdGEuY29udGFpbmVyKTsKICAgIHZhciAkdGFibGUgPSAkZWwuZmluZCgndGFibGUnKTsKICAgIGlmIChkYXRhLmNsYXNzKSAkdGFibGUuYWRkQ2xhc3MoZGF0YS5jbGFzcyk7CiAgICBpZiAoZGF0YS5jYXB0aW9uKSAkdGFibGUucHJlcGVuZChkYXRhLmNhcHRpb24pOwoKICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgZGF0YS5zZWxlY3Rpb24ubW9kZSAhPT0gJ25vbmUnICYmCiAgICAgICAgZGF0YS5zZWxlY3Rpb24udGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgaWYgKCR0YWJsZS5jaGlsZHJlbigndGZvb3QnKS5sZW5ndGggPT09IDApIHsKICAgICAgICAkdGFibGUuYXBwZW5kKCQoJzx0Zm9vdD4nKSk7CiAgICAgICAgJHRhYmxlLmZpbmQoJ3RoZWFkIHRyJykuY2xvbmUoKS5hcHBlbmRUbygkdGFibGUuZmluZCgndGZvb3QnKSk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBjb2x1bW4gZmlsdGVycwogICAgdmFyIGZpbHRlclJvdzsKICAgIHN3aXRjaCAoZGF0YS5maWx0ZXIpIHsKICAgICAgY2FzZSAndG9wJzoKICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3RoZWFkJykuYXBwZW5kKGRhdGEuZmlsdGVySFRNTCk7CiAgICAgICAgZmlsdGVyUm93ID0gJHRhYmxlLmZpbmQoJ3RoZWFkIHRyOmxhc3QgdGQnKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnYm90dG9tJzoKICAgICAgICBpZiAoJHRhYmxlLmNoaWxkcmVuKCd0Zm9vdCcpLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgJHRhYmxlLmFwcGVuZCgkKCc8dGZvb3Q+JykpOwogICAgICAgIH0KICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3Rmb290JykucHJlcGVuZChkYXRhLmZpbHRlckhUTUwpOwogICAgICAgIGZpbHRlclJvdyA9ICR0YWJsZS5maW5kKCd0Zm9vdCB0cjpmaXJzdCB0ZCcpOwogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHZhciBvcHRpb25zID0geyBzZWFyY2hEZWxheTogMTAwMCB9OwogICAgaWYgKGNlbGxzICE9PSBudWxsKSAkLmV4dGVuZChvcHRpb25zLCB7CiAgICAgIGRhdGE6IGNlbGxzCiAgICB9KTsKCiAgICAvLyBvcHRpb25zIGZvciBmaWxsQ29udGFpbmVyCiAgICB2YXIgYm9vdHN0cmFwQWN0aXZlID0gdHlwZW9mKCQuZm4ucG9wb3ZlcikgIT0gJ3VuZGVmaW5lZCc7CiAgICBpZiAoaW5zdGFuY2UuZmlsbENvbnRhaW5lcikgewoKICAgICAgLy8gZm9yY2Ugc2Nyb2xsWC9zY3JvbGxZIGFuZCB0dXJuIG9mZiBhdXRvV2lkdGgKICAgICAgb3B0aW9ucy5zY3JvbGxYID0gdHJ1ZTsKICAgICAgb3B0aW9ucy5zY3JvbGxZID0gIjEwMHB4IjsgLy8gY2FuIGJlIGFueSB2YWx1ZSwgd2UnbGwgYWRqdXN0IGJlbG93CgogICAgICAvLyBpZiB3ZSBhcmVuJ3QgcGFnaW5hdGluZyB0aGVuIG1vdmUgYXJvdW5kIHRoZSBpbmZvL2ZpbHRlciBjb250cm9scwogICAgICAvLyB0byBzYXZlIHNwYWNlIGF0IHRoZSBib3R0b20gYW5kIHJlcGhyYXNlIHRoZSBpbmZvIGNhbGxiYWNrCiAgICAgIGlmIChkYXRhLm9wdGlvbnMuYlBhZ2luYXRlID09PSBmYWxzZSkgewoKICAgICAgICAvLyB3ZSBrbm93IGhvdyB0byBkbyB0aGlzIGNsZWFubHkgZm9yIGJvb3RzdHJhcCwgbm90IHNvIG11Y2gKICAgICAgICAvLyBmb3Igb3RoZXIgdGhlbWVzL2xheW91dHMKICAgICAgICBpZiAoYm9vdHN0cmFwQWN0aXZlKSB7CiAgICAgICAgICBvcHRpb25zLmRvbSA9ICI8J3Jvdyc8J2NvbC1zbS00J2k+PCdjb2wtc20tOCdmPj4iICsKICAgICAgICAgICAgICAgICAgICAgICAgIjwncm93JzwnY29sLXNtLTEyJ3RyPj4iOwogICAgICAgIH0KCiAgICAgICAgb3B0aW9ucy5mbkluZm9DYWxsYmFjayA9IGZ1bmN0aW9uKG9TZXR0aW5ncywgaVN0YXJ0LCBpRW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaU1heCwgaVRvdGFsLCBzUHJlKSB7CiAgICAgICAgICByZXR1cm4gTnVtYmVyKGlUb3RhbCkudG9Mb2NhbGVTdHJpbmcoKSArICIgcmVjb3JkcyI7CiAgICAgICAgfTsKICAgICAgfQogICAgfQoKICAgIC8vIGF1dG8gaGlkZSBuYXZpZ2F0aW9uIGlmIHJlcXVlc3RlZAogICAgaWYgKGRhdGEuYXV0b0hpZGVOYXZpZ2F0aW9uID09PSB0cnVlKSB7CiAgICAgIGlmIChib290c3RyYXBBY3RpdmUgJiYgZGF0YS5vcHRpb25zLmJQYWdpbmF0ZSAhPT0gZmFsc2UpIHsKICAgICAgICAvLyBzdHJpcCBhbGwgbmF2IGlmIGxlbmd0aCA+PSBjZWxscwogICAgICAgIGlmICgoY2VsbHMgaW5zdGFuY2VvZiBBcnJheSkgJiYgZGF0YS5vcHRpb25zLmlEaXNwbGF5TGVuZ3RoID49IGNlbGxzLmxlbmd0aCkKICAgICAgICAgIG9wdGlvbnMuZG9tID0gIjwncm93JzwnY29sLXNtLTEyJ3RyPj4iOwogICAgICAgIC8vIGFsdGVybmF0aXZlbHkgbGVhbiB0aGluZ3Mgb3V0IGZvciBmbGV4ZGFzaGJvYXJkIG1vYmlsZSBwb3J0cmFpdAogICAgICAgIGVsc2UgaWYgKHdpbmRvdy5GbGV4RGFzaGJvYXJkICYmIHdpbmRvdy5GbGV4RGFzaGJvYXJkLmlzTW9iaWxlUGhvbmUoKSkKICAgICAgICAgIG9wdGlvbnMuZG9tID0gIjwncm93JzwnY29sLXNtLTEyJ2Y+PiIgKwogICAgICAgICAgICAgICAgICAgICAgICAiPCdyb3cnPCdjb2wtc20tMTIndHI+PiIgICsKICAgICAgICAgICAgICAgICAgICAgICAgIjwncm93JzwnY29sLXNtLTEyJ3A+PiI7CiAgICAgIH0KICAgIH0KCiAgICAkLmV4dGVuZCh0cnVlLCBvcHRpb25zLCBkYXRhLm9wdGlvbnMgfHwge30pOwoKICAgIHZhciBzZWFyY2hDb2xzID0gb3B0aW9ucy5zZWFyY2hDb2xzOwogICAgaWYgKHNlYXJjaENvbHMpIHsKICAgICAgc2VhcmNoQ29scyA9IHNlYXJjaENvbHMubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICByZXR1cm4geCA9PT0gbnVsbCA/ICcnIDogeC5zZWFyY2g7CiAgICAgIH0pOwogICAgICAvLyBGSVhNRTogdGhpcyBtZWFucyBJIGRvbid0IHJlc3BlY3QgdGhlIGVzY2FwZVJlZ2V4IHNldHRpbmcKICAgICAgZGVsZXRlIG9wdGlvbnMuc2VhcmNoQ29sczsKICAgIH0KCiAgICAvLyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nPwogICAgdmFyIHNlcnZlciA9IG9wdGlvbnMuc2VydmVyU2lkZSA9PT0gdHJ1ZTsKCiAgICAvLyB1c2UgdGhlIGRhdGFTcmMgZnVuY3Rpb24gdG8gcHJlLXByb2Nlc3MgSlNPTiBkYXRhIHJldHVybmVkIGZyb20gUgogICAgdmFyIERUX3Jvd3NfYWxsID0gW10sIERUX3Jvd3NfY3VycmVudCA9IFtdOwogICAgaWYgKHNlcnZlciAmJiBIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgdHlwZW9mIG9wdGlvbnMuYWpheCA9PT0gJ29iamVjdCcgJiYKICAgICAgICAvXnNlc3Npb25cL1tcZGEtel0rXC9kYXRhb2JqLy50ZXN0KG9wdGlvbnMuYWpheC51cmwpICYmICFvcHRpb25zLmFqYXguZGF0YVNyYykgewogICAgICBvcHRpb25zLmFqYXguZGF0YVNyYyA9IGZ1bmN0aW9uKGpzb24pIHsKICAgICAgICBEVF9yb3dzX2FsbCA9ICQubWFrZUFycmF5KGpzb24uRFRfcm93c19hbGwpOwogICAgICAgIERUX3Jvd3NfY3VycmVudCA9ICQubWFrZUFycmF5KGpzb24uRFRfcm93c19jdXJyZW50KTsKICAgICAgICByZXR1cm4ganNvbi5kYXRhOwogICAgICB9OwogICAgfQoKICAgIHZhciB0YWJsZSA9ICR0YWJsZS5EYXRhVGFibGUob3B0aW9ucyk7CiAgICAkZWwuZGF0YSgnZGF0YXRhYmxlJywgdGFibGUpOwoKICAgIHZhciBpbkFycmF5ID0gZnVuY3Rpb24odmFsLCBhcnJheSkgewogICAgICByZXR1cm4gJC5pbkFycmF5KHZhbCwgJC5tYWtlQXJyYXkoYXJyYXkpKSA+IC0xOwogICAgfTsKCiAgICAvLyBlbmNvZGUgKyB0byAlMkIgd2hlbiBzZWFyY2hpbmcgaW4gdGhlIHRhYmxlIG9uIHNlcnZlciBzaWRlLCBiZWNhdXNlCiAgICAvLyBzaGlueTo6cGFyc2VRdWVyeVN0cmluZygpIHRyZWF0cyArIGFzIHNwYWNlcywgYW5kIERhdGFUYWJsZXMgZG9lcyBub3QKICAgIC8vIGVuY29kZSArIHRvICUyQiAob3IgJSB0byAlMjUpIHdoZW4gc2VuZGluZyB0aGUgcmVxdWVzdAogICAgdmFyIGVuY29kZV9wbHVzID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4gc2VydmVyID8geC5yZXBsYWNlKC8lL2csICclMjUnKS5yZXBsYWNlKC9cKy9nLCAnJTJCJykgOiB4OwogICAgfTsKCiAgICBpZiAoZGF0YS5maWx0ZXIgIT09ICdub25lJykgewoKICAgICAgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKCiAgICAgICAgdmFyICR0ZCA9ICQodGQpLCB0eXBlID0gJHRkLmRhdGEoJ3R5cGUnKSwgZmlsdGVyOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgJGlucHV0LnByb3AoJ2Rpc2FibGVkJywgIXRhYmxlLnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW2ldLmJTZWFyY2hhYmxlIHx8IHR5cGUgPT09ICdkaXNhYmxlZCcpOwogICAgICAgICRpbnB1dC5vbignaW5wdXQgYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgJGlucHV0Lm5leHQoJ3NwYW4nKS50b2dnbGUoQm9vbGVhbigkaW5wdXQudmFsKCkpKTsKICAgICAgICB9KTsKICAgICAgICAvLyBCb290c3RyYXAgc2V0cyBwb2ludGVyLWV2ZW50cyB0byBub25lIGFuZCB3ZSB3b24ndCBiZSBhYmxlIHRvIGNsaWNrCiAgICAgICAgLy8gdGhlIGNsZWFyIGJ1dHRvbgogICAgICAgICRpbnB1dC5uZXh0KCdzcGFuJykuY3NzKCdwb2ludGVyLWV2ZW50cycsICdhdXRvJykuaGlkZSgpLmNsaWNrKGZ1bmN0aW9uKCkgewogICAgICAgICAgJCh0aGlzKS5oaWRlKCkucHJldignaW5wdXQnKS52YWwoJycpLnRyaWdnZXIoJ2lucHV0JykuZm9jdXMoKTsKICAgICAgICB9KTsKICAgICAgICB2YXIgc2VhcmNoQ29sOyAgLy8gc2VhcmNoIHN0cmluZyBmb3IgdGhpcyBjb2x1bW4KICAgICAgICBpZiAoc2VhcmNoQ29scyAmJiBzZWFyY2hDb2xzW2ldKSB7CiAgICAgICAgICBzZWFyY2hDb2wgPSBzZWFyY2hDb2xzW2ldOwogICAgICAgICAgJGlucHV0LnZhbChzZWFyY2hDb2wpLnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgfQogICAgICAgIHZhciAkeCA9ICR0ZC5jaGlsZHJlbignZGl2JykubGFzdCgpOwoKICAgICAgICAvLyByZW1vdmUgdGhlIG92ZXJmbG93OiBoaWRkZW4gYXR0cmlidXRlIG9mIHRoZSBzY3JvbGxIZWFkCiAgICAgICAgLy8gKG90aGVyd2lzZSB0aGUgc2Nyb2xsaW5nIHRhYmxlIGJvZHkgb2JzY3VyZXMgdGhlIGZpbHRlcnMpCiAgICAgICAgdmFyIHNjcm9sbEhlYWQgPSAkKGVsKS5maW5kKCcuZGF0YVRhYmxlc19zY3JvbGxIZWFkLC5kYXRhVGFibGVzX3Njcm9sbEZvb3QnKTsKICAgICAgICB2YXIgY3NzT3ZlcmZsb3cgPSBzY3JvbGxIZWFkLmNzcygnb3ZlcmZsb3cnKTsKICAgICAgICBpZiAoY3NzT3ZlcmZsb3cgPT09ICdoaWRkZW4nKSB7CiAgICAgICAgICAkeC5vbignc2hvdyBoaWRlJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBzY3JvbGxIZWFkLmNzcygnb3ZlcmZsb3cnLCBlLnR5cGUgPT09ICdzaG93JyA/ICcnIDogY3NzT3ZlcmZsb3cpOwogICAgICAgICAgfSk7CiAgICAgICAgICAkeC5jc3MoJ3otaW5kZXgnLCAyNSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaW5BcnJheSh0eXBlLCBbJ2ZhY3RvcicsICdsb2dpY2FsJ10pKSB7CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBjbGljazogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJGlucHV0LnBhcmVudCgpLmhpZGUoKTsgJHguc2hvdygpLnRyaWdnZXIoJ3Nob3cnKTsgZmlsdGVyWzBdLnNlbGVjdGl6ZS5mb2N1cygpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKCRpbnB1dC52YWwoKSA9PT0gJycpIGZpbHRlclswXS5zZWxlY3RpemUuc2V0VmFsdWUoW10pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciAkaW5wdXQyID0gJHguY2hpbGRyZW4oJ3NlbGVjdCcpOwogICAgICAgICAgZmlsdGVyID0gJGlucHV0Mi5zZWxlY3RpemUoewogICAgICAgICAgICBvcHRpb25zOiAkaW5wdXQyLmRhdGEoJ29wdGlvbnMnKS5tYXAoZnVuY3Rpb24odiwgaSkgewogICAgICAgICAgICAgIHJldHVybiAoe3RleHQ6IHYsIHZhbHVlOiB2fSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBwbHVnaW5zOiBbJ3JlbW92ZV9idXR0b24nXSwKICAgICAgICAgICAgaGlkZVNlbGVjdGVkOiB0cnVlLAogICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHZhbHVlID0gW107IC8vIGNvbXBhdGliaWxpdHkgd2l0aCBqUXVlcnkgMy4wCiAgICAgICAgICAgICAgJGlucHV0LnZhbCh2YWx1ZS5sZW5ndGggPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiAnJyk7CiAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkgJGlucHV0LnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgJGlucHV0LnZhbCgpKTsKICAgICAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgICAgICB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKHZhbHVlLmxlbmd0aCA/IGVuY29kZV9wbHVzKEpTT04uc3RyaW5naWZ5KHZhbHVlKSkgOiAnJykuZHJhdygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyB0dXJuIG9mZiBmaWx0ZXIgaWYgbm90aGluZyBzZWxlY3RlZAogICAgICAgICAgICAgICR0ZC5kYXRhKCdmaWx0ZXInLCB2YWx1ZS5sZW5ndGggPiAwKTsKICAgICAgICAgICAgICB0YWJsZS5kcmF3KCk7ICAvLyByZWRyYXcgdGFibGUsIGFuZCBmaWx0ZXJzIHdpbGwgYmUgYXBwbGllZAogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIGlmIChzZWFyY2hDb2wpIGZpbHRlclswXS5zZWxlY3RpemUuc2V0VmFsdWUoSlNPTi5wYXJzZShzZWFyY2hDb2wpKTsKICAgICAgICAgIC8vIGFuIHVnbHkgaGFjayB0byBkZWFsIHdpdGggc2hpbnk6IGZvciBzb21lIHJlYXNvbiwgdGhlIG9uQmx1ciBldmVudAogICAgICAgICAgLy8gb2Ygc2VsZWN0aXplIGRvZXMgbm90IHdvcmsgaW4gc2hpbnkKICAgICAgICAgICR4LmZpbmQoJ2RpdiA+IGRpdi5zZWxlY3RpemUtaW5wdXQgPiBpbnB1dCcpLm9uKCdibHVyJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICR4LmhpZGUoKS50cmlnZ2VyKCdoaWRlJyk7ICRpbnB1dC5wYXJlbnQoKS5zaG93KCk7ICRpbnB1dC50cmlnZ2VyKCdibHVyJyk7CiAgICAgICAgICB9KTsKICAgICAgICAgIGZpbHRlci5uZXh0KCdkaXYnKS5jc3MoJ21hcmdpbi1ib3R0b20nLCAnYXV0bycpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2NoYXJhY3RlcicpIHsKICAgICAgICAgIHZhciBmdW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHJlZ2V4ID0gZmFsc2UsIGNpID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKG9wdGlvbnMuc2VhcmNoKSB7CiAgICAgICAgICAgICAgcmVnZXggPSBvcHRpb25zLnNlYXJjaC5yZWdleCwKICAgICAgICAgICAgICBjaSA9IG9wdGlvbnMuc2VhcmNoLmNhc2VJbnNlbnNpdGl2ZSAhPT0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFibGUuY29sdW1uKGkpLnNlYXJjaChlbmNvZGVfcGx1cygkaW5wdXQudmFsKCkpLCByZWdleCwgIXJlZ2V4LCBjaSkuZHJhdygpOwogICAgICAgICAgfTsKICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgZnVuID0gJC5mbi5kYXRhVGFibGUudXRpbC50aHJvdHRsZShmdW4sIG9wdGlvbnMuc2VhcmNoRGVsYXkpOwogICAgICAgICAgfQogICAgICAgICAgJGlucHV0Lm9uKCdpbnB1dCcsIGZ1bik7CiAgICAgICAgfSBlbHNlIGlmIChpbkFycmF5KHR5cGUsIFsnbnVtYmVyJywgJ2ludGVnZXInLCAnZGF0ZScsICd0aW1lJ10pKSB7CiAgICAgICAgICB2YXIgJHgwID0gJHg7CiAgICAgICAgICAkeCA9ICR4MC5jaGlsZHJlbignZGl2JykuZmlyc3QoKTsKICAgICAgICAgICR4MC5jc3MoewogICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZmZmJywKICAgICAgICAgICAgJ2JvcmRlcic6ICcxcHggI2RkZCBzb2xpZCcsCiAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsCiAgICAgICAgICAgICdwYWRkaW5nJzogJzIwcHggMjBweCAxMHB4IDIwcHgnCiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciAkc3BhbnMgPSAkeDAuY2hpbGRyZW4oJ3NwYW4nKS5jc3MoewogICAgICAgICAgICAnbWFyZ2luLXRvcCc6ICcxMHB4JywKICAgICAgICAgICAgJ3doaXRlLXNwYWNlJzogJ25vd3JhcCcKICAgICAgICAgIH0pOwogICAgICAgICAgdmFyICRzcGFuMSA9ICRzcGFucy5maXJzdCgpLCAkc3BhbjIgPSAkc3BhbnMubGFzdCgpOwogICAgICAgICAgdmFyIHIxID0gKyR4LmRhdGEoJ21pbicpLCByMiA9ICskeC5kYXRhKCdtYXgnKTsKICAgICAgICAgIC8vIHdoZW4gdGhlIG51bWJlcnMgYXJlIHRvbyBzbWFsbCBvciBoYXZlIG1hbnkgZGVjaW1hbCBwbGFjZXMsIHRoZQogICAgICAgICAgLy8gc2xpZGVyIG1heSBoYXZlIG51bWVyaWMgcHJlY2lzaW9uIHByb2JsZW1zICgjMTUwKQogICAgICAgICAgdmFyIHNjYWxlID0gTWF0aC5wb3coMTAsIE1hdGgubWF4KDAsICskeC5kYXRhKCdzY2FsZScpIHx8IDApKTsKICAgICAgICAgIHIxID0gTWF0aC5yb3VuZChyMSAqIHNjYWxlKTsgcjIgPSBNYXRoLnJvdW5kKHIyICogc2NhbGUpOwogICAgICAgICAgdmFyIHNjYWxlQmFjayA9IGZ1bmN0aW9uKHgsIHNjYWxlKSB7CiAgICAgICAgICAgIGlmIChzY2FsZSA9PT0gMSkgcmV0dXJuIHg7CiAgICAgICAgICAgIHZhciBkID0gTWF0aC5yb3VuZChNYXRoLmxvZyhzY2FsZSkgLyBNYXRoLmxvZygxMCkpOwogICAgICAgICAgICAvLyB0byBhdm9pZCBwcm9ibGVtcyBsaWtlIDMuNDIzLzEwMCAtPiAwLjAzNDIzMDAwMDAwMDAwMDAwMwogICAgICAgICAgICByZXR1cm4gKHggLyBzY2FsZSkudG9GaXhlZChkKTsKICAgICAgICAgIH07CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBmb2N1czogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJHgwLnNob3coKS50cmlnZ2VyKCdzaG93Jyk7CiAgICAgICAgICAgICAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB0aGUgc2xpZGVyIGRpdiBsZWF2ZXMgYXQgbGVhc3QgMjBweCBiZXR3ZWVuCiAgICAgICAgICAgICAgLy8gdGhlIHR3byAoc2xpZGVyIHZhbHVlKSBzcGFuJ3MKICAgICAgICAgICAgICAkeDAud2lkdGgoTWF0aC5tYXgoMTYwLCAkc3BhbjEub3V0ZXJXaWR0aCgpICsgJHNwYW4yLm91dGVyV2lkdGgoKSArIDIwKSk7CiAgICAgICAgICAgICAgLy8gdGhlbiwgaWYgdGhlIGlucHV0IGlzIHJlYWxseSB3aWRlLCBtYWtlIHRoZSBzbGlkZXIgdGhlIHNhbWUKICAgICAgICAgICAgICAvLyB3aWR0aCBhcyB0aGUgaW5wdXQKICAgICAgICAgICAgICBpZiAoJHgwLm91dGVyV2lkdGgoKSA8ICRpbnB1dC5vdXRlcldpZHRoKCkpIHsKICAgICAgICAgICAgICAgICR4MC5vdXRlcldpZHRoKCRpbnB1dC5vdXRlcldpZHRoKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhlIHNsaWRlciBkaXYgZG9lcyBub3QgcmVhY2ggYmV5b25kIHRoZSByaWdodCBtYXJnaW4KICAgICAgICAgICAgICBpZiAoJCh3aW5kb3cpLndpZHRoKCkgPCAkeDAub2Zmc2V0KCkubGVmdCArICR4MC53aWR0aCgpKSB7CiAgICAgICAgICAgICAgICAkeDAub2Zmc2V0KHsKICAgICAgICAgICAgICAgICAgJ2xlZnQnOiAkaW5wdXQub2Zmc2V0KCkubGVmdCArICRpbnB1dC5vdXRlcldpZHRoKCkgLSAkeDAub3V0ZXJXaWR0aCgpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGJsdXI6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICR4MC5oaWRlKCkudHJpZ2dlcignaGlkZScpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKCRpbnB1dC52YWwoKSA9PT0gJycpIGZpbHRlci52YWwoW3IxLCByMl0pOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjaGFuZ2U6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciB2ID0gJGlucHV0LnZhbCgpLnJlcGxhY2UoL1xzL2csICcnKTsKICAgICAgICAgICAgICBpZiAodiA9PT0gJycpIHJldHVybjsKICAgICAgICAgICAgICB2ID0gdi5zcGxpdCgnLi4uJyk7CiAgICAgICAgICAgICAgaWYgKHYubGVuZ3RoICE9PSAyKSB7CiAgICAgICAgICAgICAgICAkaW5wdXQucGFyZW50KCkuYWRkQ2xhc3MoJ2hhcy1lcnJvcicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodlswXSA9PT0gJycpIHZbMF0gPSByMTsKICAgICAgICAgICAgICBpZiAodlsxXSA9PT0gJycpIHZbMV0gPSByMjsKICAgICAgICAgICAgICAkaW5wdXQucGFyZW50KCkucmVtb3ZlQ2xhc3MoJ2hhcy1lcnJvcicpOwogICAgICAgICAgICAgIC8vIHRyZWF0IGRhdGUgYXMgVVRDIHRpbWUgYXQgbWlkbmlnaHQKICAgICAgICAgICAgICB2YXIgc3RyVGltZSA9IGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgICAgIHZhciBzID0gdHlwZSA9PT0gJ2RhdGUnID8gJ1QwMDowMDowMFonIDogJyc7CiAgICAgICAgICAgICAgICB2YXIgdCA9IG5ldyBEYXRlKHggKyBzKS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICAvLyBhZGQgMTAgbWludXRlcyB0byBkYXRlIHNpbmNlIGl0IGRvZXMgbm90IGh1cnQgdGhlIGRhdGUsIGFuZAogICAgICAgICAgICAgICAgLy8gaXQgaGVscHMgYXZvaWQgdGhlIHRyaWNreSBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIHByb2JsZW1zLAogICAgICAgICAgICAgICAgLy8gZS5nLiBzb21ldGltZXMgdGhlIGRhdGUgbWF5IGJlIGEgZmV3IG1pbGxpc2Vjb25kcyBlYXJsaWVyCiAgICAgICAgICAgICAgICAvLyB0aGFuIHRoZSBtaWRuaWdodCBkdWUgdG8gcHJlY2lzaW9uIHByb2JsZW1zIGluIG5vVWlTbGlkZXIKICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09PSAnZGF0ZScgPyB0ICsgMzYwMDAwMCA6IHQ7CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBpZiAoaW5BcnJheSh0eXBlLCBbJ2RhdGUnLCAndGltZSddKSkgewogICAgICAgICAgICAgICAgdlswXSA9IHN0clRpbWUodlswXSk7CiAgICAgICAgICAgICAgICB2WzFdID0gc3RyVGltZSh2WzFdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHZbMF0gIT0gcjEpIHZbMF0gKj0gc2NhbGU7CiAgICAgICAgICAgICAgaWYgKHZbMV0gIT0gcjIpIHZbMV0gKj0gc2NhbGU7CiAgICAgICAgICAgICAgZmlsdGVyLnZhbCh2KTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uKGQpIHsKICAgICAgICAgICAgZCA9IHNjYWxlQmFjayhkLCBzY2FsZSk7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJykgcmV0dXJuIGQ7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnaW50ZWdlcicpIHJldHVybiBwYXJzZUludChkKTsKICAgICAgICAgICAgdmFyIHggPSBuZXcgRGF0ZSgrZCk7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHsKICAgICAgICAgICAgICB2YXIgcGFkMCA9IGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoJzAnICsgeCkuc3Vic3RyKC0yLCAyKTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHJldHVybiB4LmdldFVUQ0Z1bGxZZWFyKCkgKyAnLScgKyBwYWQwKDEgKyB4LmdldFVUQ01vbnRoKCkpCiAgICAgICAgICAgICAgICAgICAgICArICctJyArIHBhZDAoeC5nZXRVVENEYXRlKCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJldHVybiB4LnRvSVNPU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICB2YXIgb3B0cyA9IHR5cGUgPT09ICdkYXRlJyA/IHsgc3RlcDogNjAgKiA2MCAqIDEwMDAgfSA6CiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdpbnRlZ2VyJyA/IHsgc3RlcDogMSB9IDoge307CiAgICAgICAgICBmaWx0ZXIgPSAkeC5ub1VpU2xpZGVyKCQuZXh0ZW5kKHsKICAgICAgICAgICAgc3RhcnQ6IFtyMSwgcjJdLAogICAgICAgICAgICByYW5nZToge21pbjogcjEsIG1heDogcjJ9LAogICAgICAgICAgICBjb25uZWN0OiB0cnVlCiAgICAgICAgICB9LCBvcHRzKSk7CiAgICAgICAgICBpZiAoc2NhbGUgPiAxKSAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciB0MSA9IHIxLCB0MiA9IHIyOwogICAgICAgICAgICB2YXIgdmFsID0gZmlsdGVyLnZhbCgpOwogICAgICAgICAgICB3aGlsZSAodmFsWzBdID4gcjEgfHwgdmFsWzFdIDwgcjIpIHsKICAgICAgICAgICAgICBpZiAodmFsWzBdID4gcjEpIHsKICAgICAgICAgICAgICAgIHQxIC09IHZhbFswXSAtIHIxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodmFsWzFdIDwgcjIpIHsKICAgICAgICAgICAgICAgIHQyICs9IHIyIC0gdmFsWzFdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBmaWx0ZXIgPSAkeC5ub1VpU2xpZGVyKCQuZXh0ZW5kKHsKICAgICAgICAgICAgICAgIHN0YXJ0OiBbdDEsIHQyXSwKICAgICAgICAgICAgICAgIHJhbmdlOiB7bWluOiB0MSwgbWF4OiB0Mn0sCiAgICAgICAgICAgICAgICBjb25uZWN0OiB0cnVlCiAgICAgICAgICAgICAgfSwgb3B0cyksIHRydWUpOwogICAgICAgICAgICAgIHZhbCA9IGZpbHRlci52YWwoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByMSAgPSB0MTsgcjIgPSB0MjsKICAgICAgICAgIH0pKCk7CiAgICAgICAgICAkc3BhbjEudGV4dChmb3JtYXREYXRlKHIxKSk7ICRzcGFuMi50ZXh0KGZvcm1hdERhdGUocjIpKTsKICAgICAgICAgIHZhciB1cGRhdGVTbGlkZXIgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciB2YWwgPSBmaWx0ZXIudmFsKCk7CiAgICAgICAgICAgIC8vIHR1cm4gb2ZmIGZpbHRlciBpZiBpbiBmdWxsIHJhbmdlCiAgICAgICAgICAgICR0ZC5kYXRhKCdmaWx0ZXInLCB2YWxbMF0gPiByMSB8fCB2YWxbMV0gPCByMik7CiAgICAgICAgICAgIHZhciB2MSA9IGZvcm1hdERhdGUodmFsWzBdKSwgdjIgPSBmb3JtYXREYXRlKHZhbFsxXSksIGl2YWw7CiAgICAgICAgICAgIGlmICgkdGQuZGF0YSgnZmlsdGVyJykpIHsKICAgICAgICAgICAgICBpdmFsID0gdjEgKyAnIC4uLiAnICsgdjI7CiAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgaXZhbCkudmFsKGl2YWwpLnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgJycpLnZhbCgnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNwYW4xLnRleHQodjEpOyAkc3BhbjIudGV4dCh2Mik7CiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdzbGlkZScpIHJldHVybjsgIC8vIG5vIHNlYXJjaGluZyB3aGVuIHNsaWRpbmcgb25seQogICAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgICAgdGFibGUuY29sdW1uKGkpLnNlYXJjaCgkdGQuZGF0YSgnZmlsdGVyJykgPyBpdmFsIDogJycpLmRyYXcoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFibGUuZHJhdygpOwogICAgICAgICAgfTsKICAgICAgICAgIGZpbHRlci5vbih7CiAgICAgICAgICAgIHNldDogdXBkYXRlU2xpZGVyLAogICAgICAgICAgICBzbGlkZTogdXBkYXRlU2xpZGVyCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIC8vIHNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2lsbCBiZSBoYW5kbGVkIGJ5IFIgKG9yIHdoYXRldmVyIHNlcnZlcgogICAgICAgIC8vIGxhbmd1YWdlIHlvdSB1c2UpOyB0aGUgZm9sbG93aW5nIGNvZGUgaXMgb25seSBuZWVkZWQgZm9yIGNsaWVudC1zaWRlCiAgICAgICAgLy8gcHJvY2Vzc2luZwogICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgIC8vIGlmIGEgc2VhcmNoIHN0cmluZyBoYXMgYmVlbiBwcmUtc2V0LCBzZWFyY2ggbm93CiAgICAgICAgICBpZiAoc2VhcmNoQ29sKSB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKGVuY29kZV9wbHVzKHNlYXJjaENvbCkpLmRyYXcoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHZhciBjdXN0b21GaWx0ZXIgPSBmdW5jdGlvbihzZXR0aW5ncywgZGF0YSwgZGF0YUluZGV4KSB7CiAgICAgICAgICAvLyB0aGVyZSBpcyBubyB3YXkgdG8gYXR0YWNoIGEgc2VhcmNoIGZ1bmN0aW9uIHRvIGEgc3BlY2lmaWMgdGFibGUsCiAgICAgICAgICAvLyBhbmQgd2UgbmVlZCB0byBtYWtlIHN1cmUgYSBnbG9iYWwgc2VhcmNoIGZ1bmN0aW9uIGlzIG5vdCBhcHBsaWVkIHRvCiAgICAgICAgICAvLyBhbGwgdGFibGVzIChpLmUuIGEgcmFuZ2UgZmlsdGVyIGluIGEgcHJldmlvdXMgdGFibGUgc2hvdWxkIG5vdCBiZQogICAgICAgICAgLy8gYXBwbGllZCB0byB0aGUgY3VycmVudCB0YWJsZSk7IHdlIHVzZSB0aGUgc2V0dGluZ3Mgb2JqZWN0IHRvCiAgICAgICAgICAvLyBkZXRlcm1pbmUgaWYgd2Ugd2FudCB0byBwZXJmb3JtIHNlYXJjaGluZyBvbiB0aGUgY3VycmVudCB0YWJsZSwKICAgICAgICAgIC8vIHNpbmNlIHNldHRpbmdzLnNUYWJsZUlkIHdpbGwgYmUgZGlmZmVyZW50IHRvIGRpZmZlcmVudCB0YWJsZXMKICAgICAgICAgIGlmICh0YWJsZS5zZXR0aW5ncygpWzBdICE9PSBzZXR0aW5ncykgcmV0dXJuIHRydWU7CiAgICAgICAgICAvLyBubyBmaWx0ZXIgb24gdGhpcyBjb2x1bW4gb3Igbm8gbmVlZCB0byBmaWx0ZXIgdGhpcyBjb2x1bW4KICAgICAgICAgIGlmICh0eXBlb2YgZmlsdGVyID09PSAndW5kZWZpbmVkJyB8fCAhJHRkLmRhdGEoJ2ZpbHRlcicpKSByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICB2YXIgciA9IGZpbHRlci52YWwoKSwgdiwgcjAsIHIxOwogICAgICAgICAgaWYgKHR5cGUgPT09ICdudW1iZXInIHx8IHR5cGUgPT09ICdpbnRlZ2VyJykgewogICAgICAgICAgICB2ID0gcGFyc2VGbG9hdChkYXRhW2ldKTsKICAgICAgICAgICAgLy8gaG93IHRvIGhhbmRsZSBOYU4/IGN1cnJlbnRseSBleGNsdWRlIHRoZXNlIHJvd3MKICAgICAgICAgICAgaWYgKGlzTmFOKHYpKSByZXR1cm4oZmFsc2UpOwogICAgICAgICAgICByMCA9IHBhcnNlRmxvYXQoc2NhbGVCYWNrKHJbMF0sIHNjYWxlKSkKICAgICAgICAgICAgcjEgPSBwYXJzZUZsb2F0KHNjYWxlQmFjayhyWzFdLCBzY2FsZSkpOwogICAgICAgICAgICBpZiAodiA+PSByMCAmJiB2IDw9IHIxKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RhdGUnIHx8IHR5cGUgPT09ICd0aW1lJykgewogICAgICAgICAgICB2ID0gbmV3IERhdGUoZGF0YVtpXSk7CiAgICAgICAgICAgIHIwID0gbmV3IERhdGUoclswXSAvIHNjYWxlKTsgcjEgPSBuZXcgRGF0ZShyWzFdIC8gc2NhbGUpOwogICAgICAgICAgICBpZiAodiA+PSByMCAmJiB2IDw9IHIxKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ZhY3RvcicpIHsKICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAwIHx8IGluQXJyYXkoZGF0YVtpXSwgcikpIHJldHVybiB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbG9naWNhbCcpIHsKICAgICAgICAgICAgaWYgKHIubGVuZ3RoID09PSAwKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgaWYgKGluQXJyYXkoZGF0YVtpXSA9PT0gJycgPyAnbmEnIDogZGF0YVtpXSwgcikpIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH07CgogICAgICAgICQuZm4uZGF0YVRhYmxlLmV4dC5zZWFyY2gucHVzaChjdXN0b21GaWx0ZXIpOwoKICAgICAgICAvLyBzZWFyY2ggZm9yIHRoZSBwcmVzZXQgc2VhcmNoIHN0cmluZ3MgaWYgaXQgaXMgbm9uLWVtcHR5CiAgICAgICAgaWYgKHNlYXJjaENvbCkgewogICAgICAgICAgaWYgKGluQXJyYXkodHlwZSwgWydmYWN0b3InLCAnbG9naWNhbCddKSkgewogICAgICAgICAgICBmaWx0ZXJbMF0uc2VsZWN0aXplLnNldFZhbHVlKEpTT04ucGFyc2Uoc2VhcmNoQ29sKSk7CiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjaGFyYWN0ZXInKSB7CiAgICAgICAgICAgICRpbnB1dC50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgICAgfSBlbHNlIGlmIChpbkFycmF5KHR5cGUsIFsnbnVtYmVyJywgJ2ludGVnZXInLCAnZGF0ZScsICd0aW1lJ10pKSB7CiAgICAgICAgICAgICRpbnB1dC50cmlnZ2VyKCdjaGFuZ2UnKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICB9KTsKCiAgICB9CgogICAgLy8gaGlnaGxpZ2h0IHNlYXJjaCBrZXl3b3JkcwogICAgdmFyIGhpZ2hsaWdodCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgYm9keSA9ICQodGFibGUudGFibGUoKS5ib2R5KCkpOwogICAgICAvLyByZW1vdmluZyB0aGUgb2xkIGhpZ2hsaWdodGluZyBmaXJzdAogICAgICBib2R5LnVuaGlnaGxpZ2h0KCk7CgogICAgICAvLyBkb24ndCBoaWdobGlnaHQgdGhlICJub3QgZm91bmQiIHJvdywgc28gd2UgZ2V0IHRoZSByb3dzIHVzaW5nIHRoZSBhcGkKICAgICAgaWYgKHRhYmxlLnJvd3MoeyBmaWx0ZXI6ICdhcHBsaWVkJyB9KS5kYXRhKCkubGVuZ3RoID09PSAwKSByZXR1cm47CiAgICAgIC8vIGhpZ2hsaWdodCBnbG9hbCBzZWFyY2gga2V5d29yZHMKICAgICAgYm9keS5oaWdobGlnaHQoJC50cmltKHRhYmxlLnNlYXJjaCgpKS5zcGxpdCgvXHMrLykpOwogICAgICAvLyB0aGVuIGhpZ2hsaWdodCBrZXl3b3JkcyBmcm9tIGluZGl2aWR1YWwgY29sdW1uIGZpbHRlcnMKICAgICAgaWYgKGZpbHRlclJvdykgZmlsdGVyUm93LmVhY2goZnVuY3Rpb24oaSwgdGQpIHsKICAgICAgICB2YXIgJHRkID0gJCh0ZCksIHR5cGUgPSAkdGQuZGF0YSgndHlwZScpOwogICAgICAgIGlmICh0eXBlICE9PSAnY2hhcmFjdGVyJykgcmV0dXJuOwogICAgICAgIHZhciAkaW5wdXQgPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmZpcnN0KCkuY2hpbGRyZW4oJ2lucHV0Jyk7CiAgICAgICAgdmFyIGNvbHVtbiA9IHRhYmxlLmNvbHVtbihpKS5ub2RlcygpLnRvJCgpLAogICAgICAgICAgICB2YWwgPSAkLnRyaW0oJGlucHV0LnZhbCgpKTsKICAgICAgICBpZiAodHlwZSAhPT0gJ2NoYXJhY3RlcicgfHwgdmFsID09PSAnJykgcmV0dXJuOwogICAgICAgIGNvbHVtbi5oaWdobGlnaHQodmFsLnNwbGl0KC9ccysvKSk7CiAgICAgIH0pOwogICAgfTsKCiAgICBpZiAob3B0aW9ucy5zZWFyY2hIaWdobGlnaHQpIHsKICAgICAgdGFibGUKICAgICAgLm9uKCdkcmF3LmR0LmR0aCBjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGggY29sdW1uLXJlb3JkZXIuZHQuZHRoJywgaGlnaGxpZ2h0KQogICAgICAub24oJ2Rlc3Ryb3knLCBmdW5jdGlvbigpIHsKICAgICAgICAvLyByZW1vdmUgZXZlbnQgaGFuZGxlcgogICAgICAgIHRhYmxlLm9mZiggJ2RyYXcuZHQuZHRoIGNvbHVtbi12aXNpYmlsaXR5LmR0LmR0aCBjb2x1bW4tcmVvcmRlci5kdC5kdGgnICk7CiAgICAgIH0pOwoKICAgICAgLy8gaW5pdGlhbCBoaWdobGlnaHQgZm9yIHN0YXRlIHNhdmVkIGNvbmRpdGlvbnMgYW5kIGluaXRpYWwgc3RhdGVzCiAgICAgIGhpZ2hsaWdodCgpOwogICAgfQoKICAgIC8vIHJ1biB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHRhYmxlIGluc3RhbmNlCiAgICBpZiAodHlwZW9mIGRhdGEuY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIGRhdGEuY2FsbGJhY2sodGFibGUpOwogICAgdGhpcy5hZGp1c3RXaWR0aChlbCk7CgogICAgIC8vIGZpbGxDb250YWluZXIgPSBUUlVFIGJlaGF2aW9yCiAgICBpZiAoaW5zdGFuY2UuZmlsbENvbnRhaW5lcikgewoKICAgICAgLy8gd2UgbmVlZCB0byB3YWl0IGp1c3QgYSBiaXQgdG8gZG8gdGhpcyBzbyBEVCBjYW4gY29tcGxldGVseQogICAgICAvLyBmaW5pc2ggbGF5aW5nIGl0c2VsZiBvdXQKICAgICAgdmFyIHRoaXogPSB0aGlzOwogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoKICAgICAgICAvLyBjYWxjdWxhdGUgY29ycmVjdCBoZWlnaHQKICAgICAgICB0aGl6LmZpbGxBdmFpbGFibGVIZWlnaHQoZWwsICQoZWwpLmlubmVySGVpZ2h0KCkpOwoKICAgICAgICAvLyB3ZSBuZWVkIHRvIGZvcmNlIERUIHRvIHJlY2FsY3VsYXRlIGNvbHVtbiB3aWR0aHMKICAgICAgICAvLyAob3RoZXJ3aXNlIGFsbCB0aGUgY29sdW1ucyBhcmUgdGhlIHNhbWUgc2l6ZSkKICAgICAgICB0YWJsZS5jb2x1bW5zLmFkanVzdCgpOwogICAgICB9LCAyMDApOwogICAgfQoKICAgIC8vIGludGVyYWN0aW9uIHdpdGggc2hpbnkKICAgIGlmICghSFRNTFdpZGdldHMuc2hpbnlNb2RlKSByZXR1cm47CgogICAgdmFyIG1ldGhvZHMgPSB7fTsKICAgIHZhciBzaGlueURhdGEgPSB7fTsKCiAgICBtZXRob2RzLnVwZGF0ZUNhcHRpb24gPSBmdW5jdGlvbihjYXB0aW9uKSB7CiAgICAgIGlmICghY2FwdGlvbikgcmV0dXJuOwogICAgICAkdGFibGUuY2hpbGRyZW4oJ2NhcHRpb24nKS5yZXBsYWNlV2l0aChjYXB0aW9uKTsKICAgIH0KCiAgICB2YXIgY2hhbmdlSW5wdXQgPSBmdW5jdGlvbihpZCwgZGF0YSwgdHlwZSkgewogICAgICBpZCA9IGVsLmlkICsgJ18nICsgaWQ7CiAgICAgIGlmICh0eXBlKSBpZCA9IGlkICsgJzonICsgdHlwZTsKICAgICAgLy8gZG8gbm90IHVwZGF0ZSBpZiB0aGUgbmV3IGRhdGEgaXMgdGhlIHNhbWUgYXMgb2xkIGRhdGEKICAgICAgaWYgKHNoaW55RGF0YS5oYXNPd25Qcm9wZXJ0eShpZCkgJiYgc2hpbnlEYXRhW2lkXSA9PT0gSlNPTi5zdHJpbmdpZnkoZGF0YSkpCiAgICAgICAgcmV0dXJuOwogICAgICBzaGlueURhdGFbaWRdID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CiAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UoaWQsIGRhdGEpOwogICAgfTsKCiAgICB2YXIgYWRkT25lID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4geC5tYXAoZnVuY3Rpb24oaSkgeyByZXR1cm4gMSArIGk7IH0pOwogICAgfTsKCiAgICB2YXIgdW5pcXVlID0gZnVuY3Rpb24oeCkgewogICAgICB2YXIgdXggPSBbXTsKICAgICAgJC5lYWNoKHgsIGZ1bmN0aW9uKGksIGVsKXsKICAgICAgICBpZiAoJC5pbkFycmF5KGVsLCB1eCkgPT09IC0xKSB1eC5wdXNoKGVsKTsKICAgICAgfSk7CiAgICAgIHJldHVybiB1eDsKICAgIH0KCiAgICAvLyBjaGFuZ2UgdGhlIHJvdyBpbmRleCBvZiBhIGNlbGwKICAgIHZhciB0d2Vha0NlbGxJbmRleCA9IGZ1bmN0aW9uKGNlbGwpIHsKICAgICAgdmFyIGluZm8gPSBjZWxsLmluZGV4KCk7CiAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICBpbmZvLnJvdyA9IERUX3Jvd3NfY3VycmVudFtpbmZvLnJvd107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaW5mby5yb3cgKz0gMTsKICAgICAgfQogICAgICByZXR1cm4ge3JvdzogaW5mby5yb3csIGNvbDogaW5mby5jb2x1bW59OwogICAgfQoKICAgIHZhciBzZWxNb2RlID0gZGF0YS5zZWxlY3Rpb24ubW9kZSwgc2VsVGFyZ2V0ID0gZGF0YS5zZWxlY3Rpb24udGFyZ2V0OwogICAgaWYgKGluQXJyYXkoc2VsTW9kZSwgWydzaW5nbGUnLCAnbXVsdGlwbGUnXSkpIHsKICAgICAgdmFyIHNlbENsYXNzID0gZGF0YS5zdHlsZSA9PT0gJ2Jvb3RzdHJhcCcgPyAnYWN0aXZlJyA6ICdzZWxlY3RlZCc7CiAgICAgIHZhciBzZWxlY3RlZCA9IGRhdGEuc2VsZWN0aW9uLnNlbGVjdGVkLCBzZWxlY3RlZDEsIHNlbGVjdGVkMjsKICAgICAgaWYgKHNlbGVjdGVkID09PSBudWxsKSB7CiAgICAgICAgc2VsZWN0ZWQxID0gc2VsZWN0ZWQyID0gW107CiAgICAgIH0gZWxzZSBpZiAoc2VsVGFyZ2V0ID09PSAncm93JykgewogICAgICAgIHNlbGVjdGVkMSA9ICQubWFrZUFycmF5KHNlbGVjdGVkKTsKICAgICAgfSBlbHNlIGlmIChzZWxUYXJnZXQgPT09ICdjb2x1bW4nKSB7CiAgICAgICAgc2VsZWN0ZWQyID0gJC5tYWtlQXJyYXkoc2VsZWN0ZWQpOwogICAgICB9IGVsc2UgaWYgKHNlbFRhcmdldCA9PT0gJ3Jvdytjb2x1bW4nKSB7CiAgICAgICAgc2VsZWN0ZWQxID0gJC5tYWtlQXJyYXkoc2VsZWN0ZWQucm93cyk7CiAgICAgICAgc2VsZWN0ZWQyID0gJC5tYWtlQXJyYXkoc2VsZWN0ZWQuY29scyk7CiAgICAgIH0KICAgICAgLy8gcm93LCBjb2x1bW4sIG9yIGNlbGwgc2VsZWN0aW9uCiAgICAgIGlmIChpbkFycmF5KHNlbFRhcmdldCwgWydyb3cnLCAncm93K2NvbHVtbiddKSkgewogICAgICAgIHZhciBzZWxlY3RlZFJvd3MgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciByb3dzID0gdGFibGUucm93cygnLicgKyBzZWxDbGFzcywge3NlYXJjaDogJ2FwcGxpZWQnfSk7CiAgICAgICAgICB2YXIgaWR4ID0gcm93cy5pbmRleGVzKCkudG9BcnJheSgpOwogICAgICAgICAgaWYgKCFzZXJ2ZXIpIHJldHVybiBhZGRPbmUoaWR4KTsKICAgICAgICAgIGlkeCA9IGlkeC5tYXAoZnVuY3Rpb24oaSkgewogICAgICAgICAgICByZXR1cm4gRFRfcm93c19jdXJyZW50W2ldOwogICAgICAgICAgfSk7CiAgICAgICAgICBzZWxlY3RlZDEgPSBzZWxNb2RlID09PSAnbXVsdGlwbGUnID8gdW5pcXVlKHNlbGVjdGVkMS5jb25jYXQoaWR4KSkgOiBpZHg7CiAgICAgICAgICByZXR1cm4gc2VsZWN0ZWQxOwogICAgICAgIH0KICAgICAgICB0YWJsZS5vbignY2xpY2suZHQnLCAndGJvZHkgdHInLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksIHRoaXNSb3cgPSB0YWJsZS5yb3codGhpcyk7CiAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ211bHRpcGxlJykgewogICAgICAgICAgICAkdGhpcy50b2dnbGVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgICAgJHRoaXMucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhYmxlLiQoJ3RyLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNlcnZlciAmJiAhJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgIHZhciBpZCA9IERUX3Jvd3NfY3VycmVudFt0aGlzUm93LmluZGV4KCldOwogICAgICAgICAgICAvLyByZW1vdmUgaWQgZnJvbSBzZWxlY3RlZDEgc2luY2UgaXRzIGNsYXNzIC5zZWxlY3RlZCBoYXMgYmVlbiByZW1vdmVkCiAgICAgICAgICAgIHNlbGVjdGVkMS5zcGxpY2UoJC5pbkFycmF5KGlkLCBzZWxlY3RlZDEpLCAxKTsKICAgICAgICAgIH0KICAgICAgICAgIGNoYW5nZUlucHV0KCdyb3dzX3NlbGVjdGVkJywgc2VsZWN0ZWRSb3dzKCkpOwogICAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd19sYXN0X2NsaWNrZWQnLCBzZXJ2ZXIgPwogICAgICAgICAgICAgICAgICAgICAgRFRfcm93c19jdXJyZW50W3RoaXNSb3cuaW5kZXgoKV0gOiB0aGlzUm93LmluZGV4KCkgKyAxKTsKICAgICAgICB9KTsKICAgICAgICBjaGFuZ2VJbnB1dCgncm93c19zZWxlY3RlZCcsIHNlbGVjdGVkMSk7CiAgICAgICAgdmFyIHNlbGVjdFJvd3MgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHRhYmxlLiQoJ3RyLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgaWYgKHNlbGVjdGVkMS5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgdGFibGUucm93cyh7cGFnZTogJ2N1cnJlbnQnfSkuZXZlcnkoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKGluQXJyYXkoRFRfcm93c19jdXJyZW50W3RoaXMuaW5kZXgoKV0sIHNlbGVjdGVkMSkpIHsKICAgICAgICAgICAgICAgICQodGhpcy5ub2RlKCkpLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHNlbGVjdGVkMCA9IHNlbGVjdGVkMS5tYXAoZnVuY3Rpb24oaSkgeyByZXR1cm4gaSAtIDE7IH0pOwogICAgICAgICAgICAkKHRhYmxlLnJvd3Moc2VsZWN0ZWQwKS5ub2RlcygpKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNlbGVjdFJvd3MoKTsgIC8vIGluIGNhc2UgdXNlcnMgaGF2ZSBzcGVjaWZpZWQgcHJlLXNlbGVjdGVkIHJvd3MKICAgICAgICAvLyByZXN0b3JlIHNlbGVjdGVkIHJvd3MgYWZ0ZXIgdGhlIHRhYmxlIGlzIHJlZHJhd24gKGUuZy4gc29ydC9zZWFyY2gvcGFnZSk7CiAgICAgICAgLy8gY2xpZW50LXNpZGUgdGFibGVzIHdpbGwgcHJlc2VydmUgdGhlIHNlbGVjdGlvbnMgYXV0b21hdGljYWxseTsgZm9yCiAgICAgICAgLy8gc2VydmVyLXNpZGUgdGFibGVzLCB3ZSBoYXZlIHRvICpyZWFsKiByb3cgaW5kaWNlcyBhcmUgaW4gYHNlbGVjdGVkMWAKICAgICAgICBpZiAoc2VydmVyKSB0YWJsZS5vbignZHJhdy5kdCcsIHNlbGVjdFJvd3MpOwogICAgICAgIG1ldGhvZHMuc2VsZWN0Um93cyA9IGZ1bmN0aW9uKHNlbGVjdGVkKSB7CiAgICAgICAgICBzZWxlY3RlZDEgPSBzZWxlY3RlZCA/IHNlbGVjdGVkIDogW107CiAgICAgICAgICBzZWxlY3RSb3dzKCk7CiAgICAgICAgICBjaGFuZ2VJbnB1dCgncm93c19zZWxlY3RlZCcsIHNlbGVjdGVkMSk7CiAgICAgICAgfQogICAgICB9CgogICAgICBpZiAoaW5BcnJheShzZWxUYXJnZXQsIFsnY29sdW1uJywgJ3Jvdytjb2x1bW4nXSkpIHsKICAgICAgICBpZiAoc2VsVGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgICAgICQodGFibGUuY29sdW1ucygpLmZvb3RlcigpKS5jc3MoJ2N1cnNvcicsICdwb2ludGVyJyk7CiAgICAgICAgfQogICAgICAgIHRhYmxlLm9uKCdjbGljay5kdCcsIHNlbFRhcmdldCA9PT0gJ2NvbHVtbicgPyAndGJvZHkgdGQnIDogJ3Rmb290IHRyIHRoJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgY29sSWR4ID0gc2VsVGFyZ2V0ID09PSAnY29sdW1uJyA/IHRhYmxlLmNlbGwodGhpcykuaW5kZXgoKS5jb2x1bW4gOgogICAgICAgICAgICAgICQuaW5BcnJheSh0aGlzLCB0YWJsZS5jb2x1bW5zKCkuZm9vdGVyKCkpLAogICAgICAgICAgICAgIHRoaXNDb2wgPSAkKHRhYmxlLmNvbHVtbihjb2xJZHgpLm5vZGVzKCkpOwogICAgICAgICAgaWYgKGNvbElkeCA9PT0gLTEpIHJldHVybjsKICAgICAgICAgIGlmICh0aGlzQ29sLmhhc0NsYXNzKHNlbENsYXNzKSkgewogICAgICAgICAgICB0aGlzQ29sLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgc2VsZWN0ZWQyLnNwbGljZSgkLmluQXJyYXkoY29sSWR4LCBzZWxlY3RlZDIpLCAxKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChzZWxNb2RlID09PSAnc2luZ2xlJykgJCh0YWJsZS5jZWxscygpLm5vZGVzKCkpLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgdGhpc0NvbC5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHNlbGVjdGVkMiA9IHNlbE1vZGUgPT09ICdzaW5nbGUnID8gW2NvbElkeF0gOiB1bmlxdWUoc2VsZWN0ZWQyLmNvbmNhdChbY29sSWR4XSkpOwogICAgICAgICAgfQogICAgICAgICAgY2hhbmdlSW5wdXQoJ2NvbHVtbnNfc2VsZWN0ZWQnLCBzZWxlY3RlZDIpOwogICAgICAgIH0pOwogICAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgc2VsZWN0ZWQyKTsKICAgICAgICB2YXIgc2VsZWN0Q29scyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdGFibGUuY29sdW1ucygpLm5vZGVzKCkuZmxhdHRlbigpLnRvJCgpLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgIGlmIChzZWxlY3RlZDIubGVuZ3RoID4gMCkKICAgICAgICAgICAgdGFibGUuY29sdW1ucyhzZWxlY3RlZDIpLm5vZGVzKCkuZmxhdHRlbigpLnRvJCgpLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICB9CiAgICAgICAgc2VsZWN0Q29scygpOyAgLy8gaW4gY2FzZSB1c2VycyBoYXZlIHNwZWNpZmllZCBwcmUtc2VsZWN0ZWQgY29sdW1ucwogICAgICAgIGlmIChzZXJ2ZXIpIHRhYmxlLm9uKCdkcmF3LmR0Jywgc2VsZWN0Q29scyk7CiAgICAgICAgbWV0aG9kcy5zZWxlY3RDb2x1bW5zID0gZnVuY3Rpb24oc2VsZWN0ZWQpIHsKICAgICAgICAgIHNlbGVjdGVkMiA9IHNlbGVjdGVkID8gc2VsZWN0ZWQgOiBbXTsKICAgICAgICAgIHNlbGVjdENvbHMoKTsKICAgICAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgc2VsZWN0ZWQyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChzZWxUYXJnZXQgPT09ICdjZWxsJykgewogICAgICAgIHZhciBzZWxlY3RlZDM7CiAgICAgICAgaWYgKHNlbGVjdGVkID09PSBudWxsKSB7CiAgICAgICAgICBzZWxlY3RlZDMgPSBbXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgc2VsZWN0ZWQzID0gc2VsZWN0ZWQ7CiAgICAgICAgfQogICAgICAgIHZhciBmaW5kSW5kZXggPSBmdW5jdGlvbihpaikgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWxlY3RlZDMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGlqWzBdID09PSBzZWxlY3RlZDNbaV1bMF0gJiYgaWpbMV0gPT09IHNlbGVjdGVkM1tpXVsxXSkgcmV0dXJuIGk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIHRhYmxlLm9uKCdjbGljay5kdCcsICd0Ym9keSB0ZCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwgaW5mbyA9IHR3ZWFrQ2VsbEluZGV4KHRhYmxlLmNlbGwodGhpcykpOwogICAgICAgICAgaWYgKCR0aGlzLmhhc0NsYXNzKHNlbENsYXNzKSkgewogICAgICAgICAgICAkdGhpcy5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHNlbGVjdGVkMy5zcGxpY2UoZmluZEluZGV4KFtpbmZvLnJvdywgaW5mby5jb2xdKSwgMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoc2VsTW9kZSA9PT0gJ3NpbmdsZScpICQodGFibGUuY2VsbHMoKS5ub2RlcygpKS5yZW1vdmVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgICR0aGlzLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgc2VsZWN0ZWQzID0gc2VsTW9kZSA9PT0gJ3NpbmdsZScgPyBbW2luZm8ucm93LCBpbmZvLmNvbF1dIDoKICAgICAgICAgICAgICB1bmlxdWUoc2VsZWN0ZWQzLmNvbmNhdChbW2luZm8ucm93LCBpbmZvLmNvbF1dKSk7CiAgICAgICAgICB9CiAgICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkMyksICdzaGlueS5tYXRyaXgnKTsKICAgICAgICB9KTsKICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkMyksICdzaGlueS5tYXRyaXgnKTsKICAgICAgICB2YXIgc2VsZWN0Q2VsbHMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHRhYmxlLiQoJ3RkLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgaWYgKHNlbGVjdGVkMy5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgdGFibGUuY2VsbHMoe3BhZ2U6ICdjdXJyZW50J30pLmV2ZXJ5KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBpbmZvID0gdHdlYWtDZWxsSW5kZXgodGhpcyk7CiAgICAgICAgICAgICAgaWYgKGZpbmRJbmRleChbaW5mby5yb3csIGluZm8uY29sXSwgc2VsZWN0ZWQzKSA+IC0xKQogICAgICAgICAgICAgICAgJCh0aGlzLm5vZGUoKSkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNlbGVjdGVkMy5tYXAoZnVuY3Rpb24oaWopIHsKICAgICAgICAgICAgICAkKHRhYmxlLmNlbGwoaWpbMF0gLSAxLCBpalsxXSkubm9kZSgpKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc2VsZWN0Q2VsbHMoKTsgIC8vIGluIGNhc2UgdXNlcnMgaGF2ZSBzcGVjaWZpZWQgcHJlLXNlbGVjdGVkIGNvbHVtbnMKICAgICAgICBpZiAoc2VydmVyKSB0YWJsZS5vbignZHJhdy5kdCcsIHNlbGVjdENlbGxzKTsKICAgICAgICBtZXRob2RzLnNlbGVjdENlbGxzID0gZnVuY3Rpb24oc2VsZWN0ZWQpIHsKICAgICAgICAgIHNlbGVjdGVkMyA9IHNlbGVjdGVkID8gc2VsZWN0ZWQgOiBbXTsKICAgICAgICAgIHNlbGVjdENlbGxzKCk7CiAgICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkMyksICdzaGlueS5tYXRyaXgnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICAvLyBleHBvc2Ugc29tZSB0YWJsZSBpbmZvIHRvIFNoaW55CiAgICB2YXIgdXBkYXRlVGFibGVJbmZvID0gZnVuY3Rpb24oZSwgc2V0dGluZ3MpIHsKICAgICAgLy8gVE9ETzogaXMgYW55b25lIGludGVyZXN0ZWQgaW4gdGhlIHBhZ2UgaW5mbz8KICAgICAgLy8gY2hhbmdlSW5wdXQoJ3BhZ2VfaW5mbycsIHRhYmxlLnBhZ2UuaW5mbygpKTsKICAgICAgdmFyIHVwZGF0ZVJvd0luZm8gPSBmdW5jdGlvbihpZCwgbW9kaWZpZXIpIHsKICAgICAgICB2YXIgaWR4OwogICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgIGlkeCA9IG1vZGlmaWVyLnBhZ2UgPT09ICdjdXJyZW50JyA/IERUX3Jvd3NfY3VycmVudCA6IERUX3Jvd3NfYWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3MoJC5leHRlbmQoewogICAgICAgICAgICBzZWFyY2g6ICdhcHBsaWVkJywKICAgICAgICAgICAgcGFnZTogJ2FsbCcKICAgICAgICAgIH0sIG1vZGlmaWVyKSk7CiAgICAgICAgICBpZHggPSBhZGRPbmUocm93cy5pbmRleGVzKCkudG9BcnJheSgpKTsKICAgICAgICB9CiAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3MnICsgJ18nICsgaWQsIGlkeCk7CiAgICAgIH07CiAgICAgIHVwZGF0ZVJvd0luZm8oJ2N1cnJlbnQnLCB7cGFnZTogJ2N1cnJlbnQnfSk7CiAgICAgIHVwZGF0ZVJvd0luZm8oJ2FsbCcsIHt9KTsKICAgIH0KICAgIHRhYmxlLm9uKCdkcmF3LmR0JywgdXBkYXRlVGFibGVJbmZvKTsKICAgIHVwZGF0ZVRhYmxlSW5mbygpOwoKICAgIC8vIHN0YXRlIGluZm8KICAgIHRhYmxlLm9uKCdkcmF3LmR0IGNvbHVtbi12aXNpYmlsaXR5LmR0JywgZnVuY3Rpb24oKSB7CiAgICAgIGNoYW5nZUlucHV0KCdzdGF0ZScsIHRhYmxlLnN0YXRlKCkpOwogICAgfSk7CiAgICBjaGFuZ2VJbnB1dCgnc3RhdGUnLCB0YWJsZS5zdGF0ZSgpKTsKCiAgICAvLyBzZWFyY2ggaW5mbwogICAgdmFyIHVwZGF0ZVNlYXJjaEluZm8gPSBmdW5jdGlvbigpIHsKICAgICAgY2hhbmdlSW5wdXQoJ3NlYXJjaCcsIHRhYmxlLnNlYXJjaCgpKTsKICAgICAgaWYgKGZpbHRlclJvdykgY2hhbmdlSW5wdXQoJ3NlYXJjaF9jb2x1bW5zJywgZmlsdGVyUm93LnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24odGQpIHsKICAgICAgICByZXR1cm4gJCh0ZCkuZmluZCgnaW5wdXQnKS5maXJzdCgpLnZhbCgpOwogICAgICB9KSk7CiAgICB9CiAgICB0YWJsZS5vbignZHJhdy5kdCcsIHVwZGF0ZVNlYXJjaEluZm8pOwogICAgdXBkYXRlU2VhcmNoSW5mbygpOwoKICAgIC8vIHRoZSBjdXJyZW50IGNlbGwgY2xpY2tlZCBvbgogICAgdGFibGUub24oJ2NsaWNrLmR0JywgJ3Rib2R5IHRkJywgZnVuY3Rpb24oKSB7CiAgICAgIHZhciBpbmZvID0gdHdlYWtDZWxsSW5kZXgodGFibGUuY2VsbCh0aGlzKSk7CiAgICAgIGluZm8udmFsdWUgPSB0YWJsZS5jZWxsKHRoaXMpLmRhdGEoKTsKICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxfY2xpY2tlZCcsIGluZm8pOwogICAgfSkKICAgIGNoYW5nZUlucHV0KCdjZWxsX2NsaWNrZWQnLCB7fSk7CgogICAgLy8gZG8gbm90IHRyaWdnZXIgdGFibGUgc2VsZWN0aW9uIHdoZW4gY2xpY2tpbmcgb24gbGlua3MgdW5sZXNzIHRoZXkgaGF2ZSBjbGFzc2VzCiAgICB0YWJsZS5vbignY2xpY2suZHQnLCAndGJvZHkgdGQgYScsIGZ1bmN0aW9uKGUpIHsKICAgICAgaWYgKHRoaXMuY2xhc3NOYW1lID09PSAnJykgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgIH0pOwoKICAgIG1ldGhvZHMuYWRkUm93ID0gZnVuY3Rpb24oZGF0YSwgcm93bmFtZSkgewogICAgICB2YXIgZGF0YTAgPSB0YWJsZS5yb3coMCkuZGF0YSgpLCBuID0gZGF0YTAubGVuZ3RoLCBkID0gbiAtIGRhdGEubGVuZ3RoOwogICAgICBpZiAoZCA9PT0gMSkgewogICAgICAgIGRhdGEgPSByb3duYW1lLmNvbmNhdChkYXRhKQogICAgICB9IGVsc2UgaWYgKGQgIT09IDApIHsKICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICBjb25zb2xlLmxvZyhkYXRhMCk7CiAgICAgICAgdGhyb3cgJ05ldyBkYXRhIG11c3QgYmUgb2YgdGhlIHNhbWUgbGVuZ3RoIGFzIGN1cnJlbnQgZGF0YSAoJyArIG4gKyAnKSc7CiAgICAgIH07CiAgICAgIHRhYmxlLnJvdy5hZGQoZGF0YSkuZHJhdygpOwogICAgfQoKICAgIG1ldGhvZHMudXBkYXRlU2VhcmNoID0gZnVuY3Rpb24oa2V5d29yZHMpIHsKICAgICAgaWYgKGtleXdvcmRzLmdsb2JhbCAhPT0gbnVsbCkKICAgICAgICAkKHRhYmxlLnRhYmxlKCkuY29udGFpbmVyKCkpLmZpbmQoJ2lucHV0W3R5cGU9c2VhcmNoXScpLmZpcnN0KCkKICAgICAgICAgICAgIC52YWwoa2V5d29yZHMuZ2xvYmFsKS50cmlnZ2VyKCdpbnB1dCcpOwogICAgICB2YXIgY29sdW1ucyA9IGtleXdvcmRzLmNvbHVtbnM7CiAgICAgIGlmICghZmlsdGVyUm93IHx8IGNvbHVtbnMgPT09IG51bGwpIHJldHVybjsKICAgICAgZmlsdGVyUm93LnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24odGQsIGkpIHsKICAgICAgICB2YXIgdiA9IHR5cGVvZiBjb2x1bW5zID09PSAnc3RyaW5nJyA/IGNvbHVtbnMgOiBjb2x1bW5zW2ldOwogICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIGNvbnNvbGUubG9nKCdUaGUgc2VhcmNoIGtleXdvcmQgZm9yIGNvbHVtbiAnICsgaSArICcgaXMgdW5kZWZpbmVkJykKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgJCh0ZCkuZmluZCgnaW5wdXQnKS5maXJzdCgpLnZhbCh2KTsKICAgICAgICB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKHYpOwogICAgICB9KTsKICAgICAgdGFibGUuZHJhdygpOwogICAgfQoKICAgIG1ldGhvZHMuc2VsZWN0UGFnZSA9IGZ1bmN0aW9uKHBhZ2UpIHsKICAgICAgaWYgKHRhYmxlLnBhZ2UuaW5mbygpLnBhZ2VzIDwgcGFnZSB8fCBwYWdlIDwgMSkgewogICAgICAgIHRocm93ICdTZWxlY3RlZCBwYWdlIGlzIG91dCBvZiByYW5nZSc7CiAgICAgIH07CiAgICAgIHRhYmxlLnBhZ2UocGFnZSAtIDEpLmRyYXcoZmFsc2UpOwogICAgfQoKICAgIG1ldGhvZHMucmVsb2FkRGF0YSA9IGZ1bmN0aW9uKHJlc2V0UGFnaW5nLCBjbGVhclNlbGVjdGlvbikgewogICAgICAvLyBlbXB0eSBzZWxlY3Rpb25zIGZpcnN0IGlmIG5lY2Vzc2FyeQogICAgICBpZiAobWV0aG9kcy5zZWxlY3RSb3dzICYmIGluQXJyYXkoJ3JvdycsIGNsZWFyU2VsZWN0aW9uKSkgbWV0aG9kcy5zZWxlY3RSb3dzKFtdKTsKICAgICAgaWYgKG1ldGhvZHMuc2VsZWN0Q29sdW1ucyAmJiBpbkFycmF5KCdjb2x1bW4nLCBjbGVhclNlbGVjdGlvbikpIG1ldGhvZHMuc2VsZWN0Q29sdW1ucyhbXSk7CiAgICAgIGlmIChtZXRob2RzLnNlbGVjdENlbGxzICYmIGluQXJyYXkoJ2NlbGwnLCBjbGVhclNlbGVjdGlvbikpIG1ldGhvZHMuc2VsZWN0Q2VsbHMoW10pOwogICAgICB0YWJsZS5hamF4LnJlbG9hZChudWxsLCByZXNldFBhZ2luZyk7CiAgICB9CgogICAgdGFibGUuc2hpbnlNZXRob2RzID0gbWV0aG9kczsKICB9LAogIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICBpZiAoaW5zdGFuY2UuZGF0YSkgdGhpcy5yZW5kZXJWYWx1ZShlbCwgaW5zdGFuY2UuZGF0YSwgaW5zdGFuY2UpOwoKICAgIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBoZWlnaHQgaWYgZmlsbENvbnRhaW5lciA9IFRSVUUKICAgIGlmIChpbnN0YW5jZS5maWxsQ29udGFpbmVyKQogICAgICB0aGlzLmZpbGxBdmFpbGFibGVIZWlnaHQoZWwsIGhlaWdodCk7CgogICAgdGhpcy5hZGp1c3RXaWR0aChlbCk7CiAgfSwKCiAgLy8gZHluYW1pY2FsbHkgc2V0IHRoZSBzY3JvbGwgYm9keSB0byBmaWxsIGF2YWlsYWJsZSBoZWlnaHQKICAvLyAodXNlZCB3aXRoIGZpbGxDb250YWluZXIgPSBUUlVFKQogIGZpbGxBdmFpbGFibGVIZWlnaHQ6IGZ1bmN0aW9uKGVsLCBhdmFpbGFibGVIZWlnaHQpIHsKCiAgICAvLyBzZWUgaG93IG11Y2ggb2YgdGhlIHRhYmxlIGlzIG9jY3VwaWVkIGJ5IGhlYWRlci9mb290ZXIgZWxlbWVudHMKICAgIC8vIGFuZCB1c2UgdGhhdCB0byBjb21wdXRlIGEgdGFyZ2V0IHNjcm9sbCBib2R5IGhlaWdodAogICAgdmFyIGR0V3JhcHBlciA9ICQoZWwpLmZpbmQoJ2Rpdi5kYXRhVGFibGVzX3dyYXBwZXInKTsKICAgIHZhciBkdFNjcm9sbEJvZHkgPSAkKGVsKS5maW5kKCQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKSk7CiAgICB2YXIgZnJhbWluZ0hlaWdodCA9IGR0V3JhcHBlci5pbm5lckhlaWdodCgpIC0gZHRTY3JvbGxCb2R5LmlubmVySGVpZ2h0KCk7CiAgICB2YXIgc2Nyb2xsQm9keUhlaWdodCA9IGF2YWlsYWJsZUhlaWdodCAtIGZyYW1pbmdIZWlnaHQ7CgogICAgLy8gc2V0IHRoZSBoZWlnaHQKICAgIGR0U2Nyb2xsQm9keS5oZWlnaHQoc2Nyb2xsQm9keUhlaWdodCArICdweCcpOwogIH0sCgogIC8vIGFkanVzdCB0aGUgd2lkdGggb2YgY29sdW1uczsgcmVtb3ZlIHRoZSBoYXJkLWNvZGVkIHdpZHRocyBvbiB0YWJsZSBhbmQgdGhlCiAgLy8gc2Nyb2xsIGhlYWRlciB3aGVuIHNjcm9sbFgvWSBhcmUgZW5hYmxlZAogIGFkanVzdFdpZHRoOiBmdW5jdGlvbihlbCkgewogICAgdmFyICRlbCA9ICQoZWwpLCB0YWJsZSA9ICRlbC5kYXRhKCdkYXRhdGFibGUnKTsKICAgIGlmICh0YWJsZSkgdGFibGUuY29sdW1ucy5hZGp1c3QoKTsKICAgICRlbC5maW5kKCcuZGF0YVRhYmxlc19zY3JvbGxIZWFkSW5uZXInKS5jc3MoJ3dpZHRoJywgJycpCiAgICAgICAgLmNoaWxkcmVuKCd0YWJsZScpLmNzcygnbWFyZ2luLWxlZnQnLCAnJyk7CiAgfQp9KTsKCiAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHJldHVybjsKCiAgU2hpbnkuYWRkQ3VzdG9tTWVzc2FnZUhhbmRsZXIoJ2RhdGF0YWJsZS1jYWxscycsIGZ1bmN0aW9uKGRhdGEpIHsKICAgIHZhciBpZCA9IGRhdGEuaWQ7CiAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICB2YXIgdGFibGUgPSBlbCA/ICQoZWwpLmRhdGEoJ2RhdGF0YWJsZScpIDogbnVsbDsKICAgIGlmICghdGFibGUpIHsKICAgICAgY29uc29sZS5sb2coIkNvdWxkbid0IGZpbmQgdGFibGUgd2l0aCBpZCAiICsgaWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIG1ldGhvZHMgPSB0YWJsZS5zaGlueU1ldGhvZHMsIGNhbGwgPSBkYXRhLmNhbGw7CiAgICBpZiAobWV0aG9kc1tjYWxsLm1ldGhvZF0pIHsKICAgICAgbWV0aG9kc1tjYWxsLm1ldGhvZF0uYXBwbHkodGFibGUsIGNhbGwuYXJncyk7CiAgICB9IGVsc2UgewogICAgICBjb25zb2xlLmxvZygiVW5rbm93biBtZXRob2QgIiArIGNhbGwubWV0aG9kKTsKICAgIH0KICB9KTsKCn0pKCk7Cg=="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
29 <link href="data:text/css;charset=utf-8,table%2EdataTable%7Bwidth%3A100%25%3Bmargin%3A0%20auto%3Bclear%3Aboth%3Bborder%2Dcollapse%3Aseparate%3Bborder%2Dspacing%3A0%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20tfoot%20th%7Bfont%2Dweight%3Abold%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20thead%20td%7Bpadding%3A10px%2018px%3Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20th%3Aactive%2Ctable%2EdataTable%20thead%20td%3Aactive%7Boutline%3Anone%7Dtable%2EdataTable%20tfoot%20th%2Ctable%2EdataTable%20tfoot%20td%7Bpadding%3A10px%2018px%206px%2018px%3Bborder%2Dtop%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bcursor%3Apointer%3B%2Acursor%3Ahand%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Drepeat%3Ano%2Drepeat%3Bbackground%2Dposition%3Acenter%20right%7Dtable%2EdataTable%20thead%20%2Esorting%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL%2BTq%2FQCM1oNiJidwox0355mXnG%2FDrEtIQ6azioNZQxI0ykPhTQIwhCR%2BBmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P%2BGtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS%2FgDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM%2BwTENuQahAvEO9DMwiGdwAxOymGJQLxTyD%2BjgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA%2FBOIv2PBIPFEUgxjB%2BIdQPwfC94HxLykus4GiD%2BhGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL%2BAuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAW0lEQVQoz2NgoCm4w3Vnwh02wspK7%2Fy6k01Ikdadx3f%2B37l9RxmfIsY7c4GKQHDiHUbcyhzvvIMq%2B3THBpci3jv7oIpAcMcdduzKEu%2F8vPMdDn%2FeiWQYBYMKAAC3ykIEuYQJUgAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAWUlEQVQoz2NgGAWDCtyJvPPzznc4%2FHknEbsy9js77vyHw313eHGZZ3PnE1TRuzuOuK1lvDMRqmzuHUZ87lO%2Bcxuo6PEdLUIeyb7z604pYf%2By3Zlwh4u2YQoAc7ZCBHH4jigAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20tbody%20tr%7Bbackground%2Dcolor%3A%23ffffff%7Dtable%2EdataTable%20tbody%20tr%2Eselected%7Bbackground%2Dcolor%3A%23B0BED9%7Dtable%2EdataTable%20tbody%20th%2Ctable%2EdataTable%20tbody%20td%7Bpadding%3A8px%2010px%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dright%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20th%3Afirst%2Dchild%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20td%3Afirst%2Dchild%7Bborder%2Dleft%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%7Bbackground%2Dcolor%3A%23acbad4%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%7Bbackground%2Dcolor%3A%23f6f6f6%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%7Bbackground%2Dcolor%3A%23aab7d1%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23f1f1f1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23f3f3f3%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F3%7Bbackground%2Dcolor%3Awhitesmoke%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a6b4cd%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a8b5cf%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a9b7d1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23fcfcfc%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fefefe%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23aebcd6%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23afbdd8%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23eaeaea%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23ececec%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23efefef%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a2aec7%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a3b0c9%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a5b2cb%7Dtable%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%2Enowrap%20th%2Ctable%2EdataTable%2Enowrap%20td%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ecompact%20thead%20th%2Ctable%2EdataTable%2Ecompact%20thead%20td%7Bpadding%3A4px%2017px%204px%204px%7Dtable%2EdataTable%2Ecompact%20tfoot%20th%2Ctable%2EdataTable%2Ecompact%20tfoot%20td%7Bpadding%3A4px%7Dtable%2EdataTable%2Ecompact%20tbody%20th%2Ctable%2EdataTable%2Ecompact%20tbody%20td%7Bpadding%3A4px%7Dtable%2EdataTable%20th%2Edt%2Dleft%2Ctable%2EdataTable%20td%2Edt%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20th%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2EdataTables%5Fempty%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20th%2Edt%2Dright%2Ctable%2EdataTable%20td%2Edt%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20th%2Edt%2Djustify%2Ctable%2EdataTable%20td%2Edt%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20th%2Edt%2Dnowrap%2Ctable%2EdataTable%20td%2Edt%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dleft%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dcenter%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dright%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Djustify%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dnowrap%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ctable%2EdataTable%20th%2Ctable%2EdataTable%20td%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7D%2EdataTables%5Fwrapper%7Bposition%3Arelative%3Bclear%3Aboth%3B%2Azoom%3A1%3Bzoom%3A1%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%7Bfloat%3Aleft%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Aright%3Btext%2Dalign%3Aright%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%20input%7Bmargin%2Dleft%3A0%2E5em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%7Bclear%3Aboth%3Bfloat%3Aleft%3Bpadding%2Dtop%3A0%2E755em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Aright%3Btext%2Dalign%3Aright%3Bpadding%2Dtop%3A0%2E25em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%7Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A1%2E5em%3Bpadding%3A0%2E5em%201em%3Bmargin%2Dleft%3A2px%3Btext%2Dalign%3Acenter%3Btext%2Ddecoration%3Anone%20%21important%3Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A2px%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%3Ahover%7Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20%23979797%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23fff%29%2C%20color%2Dstop%28100%25%2C%20%23dcdcdc%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Ahover%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Aactive%7Bcursor%3Adefault%3Bcolor%3A%23666%20%21important%3Bborder%3A1px%20solid%20transparent%3Bbackground%3Atransparent%3Bbox%2Dshadow%3Anone%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Ahover%7Bcolor%3Awhite%20%21important%3Bborder%3A1px%20solid%20%23111%3Bbackground%2Dcolor%3A%23585858%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23585858%29%2C%20color%2Dstop%28100%25%2C%20%23111%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23585858%200%25%2C%20%23111%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Aactive%7Boutline%3Anone%3Bbackground%2Dcolor%3A%232b2b2b%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%232b2b2b%29%2C%20color%2Dstop%28100%25%2C%20%230c0c0c%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbox%2Dshadow%3Ainset%200%200%203px%20%23111%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Eellipsis%7Bpadding%3A0%201em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A100%25%3Bheight%3A40px%3Bmargin%2Dleft%3A%2D50%25%3Bmargin%2Dtop%3A%2D25px%3Bpadding%2Dtop%3A20px%3Btext%2Dalign%3Acenter%3Bfont%2Dsize%3A1%2E2em%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20color%2Dstop%280%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%2C%20color%2Dstop%2825%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%2875%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%28100%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20right%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bcolor%3A%23333%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%7Bclear%3Aboth%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%7B%2Amargin%2Dtop%3A%2D1px%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%20th%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%20td%7Bvertical%2Dalign%3Amiddle%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%20th%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%20td%3Ediv%2EdataTables%5Fsizing%7Bheight%3A0%3Boverflow%3Ahidden%3Bmargin%3A0%20%21important%3Bpadding%3A0%20%21important%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20%2EdataTables%5FscrollBody%7Bborder%2Dbottom%3A1px%20solid%20%23111%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollHead%20table%2C%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollBody%20table%7Bborder%2Dbottom%3Anone%7D%2EdataTables%5Fwrapper%3Aafter%7Bvisibility%3Ahidden%3Bdisplay%3Ablock%3Bcontent%3A%22%22%3Bclear%3Aboth%3Bheight%3A0%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20767px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bmargin%2Dtop%3A0%2E5em%7D%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bmargin%2Dtop%3A0%2E5em%7D%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
30 <link href="data:text/css;charset=utf-8,%0Atable%2EdataTable%20tr%2Eselected%20td%2C%20table%2EdataTable%20td%2Eselected%20%7B%0Abackground%2Dcolor%3A%20%23b0bed9%20%21important%3B%0A%7D%0A%0A%2EdataTables%5FscrollBody%20%2EdataTables%5Fsizing%20%7B%0Avisibility%3A%20hidden%3B%0A%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
31 <script src="data:application/x-javascript;base64,LyohCiBEYXRhVGFibGVzIDEuMTAuMTIKIMKpMjAwOC0yMDE1IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCihmdW5jdGlvbihoKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihEKXtyZXR1cm4gaChELHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKEQsSSl7RHx8KEQ9d2luZG93KTtJfHwoST0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c/cmVxdWlyZSgianF1ZXJ5Iik6cmVxdWlyZSgianF1ZXJ5IikoRCkpO3JldHVybiBoKEksRCxELmRvY3VtZW50KX06aChqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGgsRCxJLGspe2Z1bmN0aW9uIFgoYSl7dmFyIGIsYyxkPXt9O2guZWFjaChhLGZ1bmN0aW9uKGUpe2lmKChiPWUubWF0Y2goL14oW15BLVpdKz8pKFtBLVpdKS8pKSYmLTEhPT0iYSBhYSBhaSBhbyBhcyBiIGZuIGkgbSBvIHMgIi5pbmRleE9mKGJbMV0rIiAiKSljPWUucmVwbGFjZShiWzBdLGJbMl0udG9Mb3dlckNhc2UoKSksCmRbY109ZSwibyI9PT1iWzFdJiZYKGFbZV0pfSk7YS5faHVuZ2FyaWFuTWFwPWR9ZnVuY3Rpb24gSyhhLGIsYyl7YS5faHVuZ2FyaWFuTWFwfHxYKGEpO3ZhciBkO2guZWFjaChiLGZ1bmN0aW9uKGUpe2Q9YS5faHVuZ2FyaWFuTWFwW2VdO2lmKGQhPT1rJiYoY3x8YltkXT09PWspKSJvIj09PWQuY2hhckF0KDApPyhiW2RdfHwoYltkXT17fSksaC5leHRlbmQoITAsYltkXSxiW2VdKSxLKGFbZF0sYltkXSxjKSk6YltkXT1iW2VdfSl9ZnVuY3Rpb24gRGEoYSl7dmFyIGI9bS5kZWZhdWx0cy5vTGFuZ3VhZ2UsYz1hLnNaZXJvUmVjb3JkczshYS5zRW1wdHlUYWJsZSYmKGMmJiJObyBkYXRhIGF2YWlsYWJsZSBpbiB0YWJsZSI9PT1iLnNFbXB0eVRhYmxlKSYmRShhLGEsInNaZXJvUmVjb3JkcyIsInNFbXB0eVRhYmxlIik7IWEuc0xvYWRpbmdSZWNvcmRzJiYoYyYmIkxvYWRpbmcuLi4iPT09Yi5zTG9hZGluZ1JlY29yZHMpJiZFKGEsYSwic1plcm9SZWNvcmRzIiwic0xvYWRpbmdSZWNvcmRzIik7CmEuc0luZm9UaG91c2FuZHMmJihhLnNUaG91c2FuZHM9YS5zSW5mb1Rob3VzYW5kcyk7KGE9YS5zRGVjaW1hbCkmJmRiKGEpfWZ1bmN0aW9uIGViKGEpe0EoYSwib3JkZXJpbmciLCJiU29ydCIpO0EoYSwib3JkZXJNdWx0aSIsImJTb3J0TXVsdGkiKTtBKGEsIm9yZGVyQ2xhc3NlcyIsImJTb3J0Q2xhc3NlcyIpO0EoYSwib3JkZXJDZWxsc1RvcCIsImJTb3J0Q2VsbHNUb3AiKTtBKGEsIm9yZGVyIiwiYWFTb3J0aW5nIik7QShhLCJvcmRlckZpeGVkIiwiYWFTb3J0aW5nRml4ZWQiKTtBKGEsInBhZ2luZyIsImJQYWdpbmF0ZSIpO0EoYSwicGFnaW5nVHlwZSIsInNQYWdpbmF0aW9uVHlwZSIpO0EoYSwicGFnZUxlbmd0aCIsImlEaXNwbGF5TGVuZ3RoIik7QShhLCJzZWFyY2hpbmciLCJiRmlsdGVyIik7ImJvb2xlYW4iPT09dHlwZW9mIGEuc1Njcm9sbFgmJihhLnNTY3JvbGxYPWEuc1Njcm9sbFg/IjEwMCUiOiIiKTsiYm9vbGVhbiI9PT10eXBlb2YgYS5zY3JvbGxYJiYoYS5zY3JvbGxYPQphLnNjcm9sbFg/IjEwMCUiOiIiKTtpZihhPWEuYW9TZWFyY2hDb2xzKWZvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKylhW2JdJiZLKG0ubW9kZWxzLm9TZWFyY2gsYVtiXSl9ZnVuY3Rpb24gZmIoYSl7QShhLCJvcmRlcmFibGUiLCJiU29ydGFibGUiKTtBKGEsIm9yZGVyRGF0YSIsImFEYXRhU29ydCIpO0EoYSwib3JkZXJTZXF1ZW5jZSIsImFzU29ydGluZyIpO0EoYSwib3JkZXJEYXRhVHlwZSIsInNvcnREYXRhVHlwZSIpO3ZhciBiPWEuYURhdGFTb3J0O2ImJiFoLmlzQXJyYXkoYikmJihhLmFEYXRhU29ydD1bYl0pfWZ1bmN0aW9uIGdiKGEpe2lmKCFtLl9fYnJvd3Nlcil7dmFyIGI9e307bS5fX2Jyb3dzZXI9Yjt2YXIgYz1oKCI8ZGl2Lz4iKS5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOjAsbGVmdDowLGhlaWdodDoxLHdpZHRoOjEsb3ZlcmZsb3c6ImhpZGRlbiJ9KS5hcHBlbmQoaCgiPGRpdi8+IikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDoxLGxlZnQ6MSwKd2lkdGg6MTAwLG92ZXJmbG93OiJzY3JvbGwifSkuYXBwZW5kKGgoIjxkaXYvPiIpLmNzcyh7d2lkdGg6IjEwMCUiLGhlaWdodDoxMH0pKSkuYXBwZW5kVG8oImJvZHkiKSxkPWMuY2hpbGRyZW4oKSxlPWQuY2hpbGRyZW4oKTtiLmJhcldpZHRoPWRbMF0ub2Zmc2V0V2lkdGgtZFswXS5jbGllbnRXaWR0aDtiLmJTY3JvbGxPdmVyc2l6ZT0xMDA9PT1lWzBdLm9mZnNldFdpZHRoJiYxMDAhPT1kWzBdLmNsaWVudFdpZHRoO2IuYlNjcm9sbGJhckxlZnQ9MSE9PU1hdGgucm91bmQoZS5vZmZzZXQoKS5sZWZ0KTtiLmJCb3VuZGluZz1jWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoPyEwOiExO2MucmVtb3ZlKCl9aC5leHRlbmQoYS5vQnJvd3NlcixtLl9fYnJvd3Nlcik7YS5vU2Nyb2xsLmlCYXJXaWR0aD1tLl9fYnJvd3Nlci5iYXJXaWR0aH1mdW5jdGlvbiBoYihhLGIsYyxkLGUsZil7dmFyIGcsaj0hMTtjIT09ayYmKGc9YyxqPSEwKTtmb3IoO2QhPT1lOylhLmhhc093blByb3BlcnR5KGQpJiYKKGc9aj9iKGcsYVtkXSxkLGEpOmFbZF0saj0hMCxkKz1mKTtyZXR1cm4gZ31mdW5jdGlvbiBFYShhLGIpe3ZhciBjPW0uZGVmYXVsdHMuY29sdW1uLGQ9YS5hb0NvbHVtbnMubGVuZ3RoLGM9aC5leHRlbmQoe30sbS5tb2RlbHMub0NvbHVtbixjLHtuVGg6Yj9iOkkuY3JlYXRlRWxlbWVudCgidGgiKSxzVGl0bGU6Yy5zVGl0bGU/Yy5zVGl0bGU6Yj9iLmlubmVySFRNTDoiIixhRGF0YVNvcnQ6Yy5hRGF0YVNvcnQ/Yy5hRGF0YVNvcnQ6W2RdLG1EYXRhOmMubURhdGE/Yy5tRGF0YTpkLGlkeDpkfSk7YS5hb0NvbHVtbnMucHVzaChjKTtjPWEuYW9QcmVTZWFyY2hDb2xzO2NbZF09aC5leHRlbmQoe30sbS5tb2RlbHMub1NlYXJjaCxjW2RdKTtqYShhLGQsaChiKS5kYXRhKCkpfWZ1bmN0aW9uIGphKGEsYixjKXt2YXIgYj1hLmFvQ29sdW1uc1tiXSxkPWEub0NsYXNzZXMsZT1oKGIublRoKTtpZighYi5zV2lkdGhPcmlnKXtiLnNXaWR0aE9yaWc9ZS5hdHRyKCJ3aWR0aCIpfHxudWxsO3ZhciBmPQooZS5hdHRyKCJzdHlsZSIpfHwiIikubWF0Y2goL3dpZHRoOlxzKihcZCtbcHhlbSVdKykvKTtmJiYoYi5zV2lkdGhPcmlnPWZbMV0pfWMhPT1rJiZudWxsIT09YyYmKGZiKGMpLEsobS5kZWZhdWx0cy5jb2x1bW4sYyksYy5tRGF0YVByb3AhPT1rJiYhYy5tRGF0YSYmKGMubURhdGE9Yy5tRGF0YVByb3ApLGMuc1R5cGUmJihiLl9zTWFudWFsVHlwZT1jLnNUeXBlKSxjLmNsYXNzTmFtZSYmIWMuc0NsYXNzJiYoYy5zQ2xhc3M9Yy5jbGFzc05hbWUpLGguZXh0ZW5kKGIsYyksRShiLGMsInNXaWR0aCIsInNXaWR0aE9yaWciKSxjLmlEYXRhU29ydCE9PWsmJihiLmFEYXRhU29ydD1bYy5pRGF0YVNvcnRdKSxFKGIsYywiYURhdGFTb3J0IikpO3ZhciBnPWIubURhdGEsaj1RKGcpLGk9Yi5tUmVuZGVyP1EoYi5tUmVuZGVyKTpudWxsLGM9ZnVuY3Rpb24oYSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmLTEhPT1hLmluZGV4T2YoIkAiKX07Yi5fYkF0dHJTcmM9aC5pc1BsYWluT2JqZWN0KGcpJiYKKGMoZy5zb3J0KXx8YyhnLnR5cGUpfHxjKGcuZmlsdGVyKSk7Yi5fc2V0dGVyPW51bGw7Yi5mbkdldERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWooYSxiLGssYyk7cmV0dXJuIGkmJmI/aShkLGIsYSxjKTpkfTtiLmZuU2V0RGF0YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFIoZykoYSxiLGMpfTsibnVtYmVyIiE9PXR5cGVvZiBnJiYoYS5fcm93UmVhZE9iamVjdD0hMCk7YS5vRmVhdHVyZXMuYlNvcnR8fChiLmJTb3J0YWJsZT0hMSxlLmFkZENsYXNzKGQuc1NvcnRhYmxlTm9uZSkpO2E9LTEhPT1oLmluQXJyYXkoImFzYyIsYi5hc1NvcnRpbmcpO2M9LTEhPT1oLmluQXJyYXkoImRlc2MiLGIuYXNTb3J0aW5nKTshYi5iU29ydGFibGV8fCFhJiYhYz8oYi5zU29ydGluZ0NsYXNzPWQuc1NvcnRhYmxlTm9uZSxiLnNTb3J0aW5nQ2xhc3NKVUk9IiIpOmEmJiFjPyhiLnNTb3J0aW5nQ2xhc3M9ZC5zU29ydGFibGVBc2MsYi5zU29ydGluZ0NsYXNzSlVJPWQuc1NvcnRKVUlBc2NBbGxvd2VkKToKIWEmJmM/KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZURlc2MsYi5zU29ydGluZ0NsYXNzSlVJPWQuc1NvcnRKVUlEZXNjQWxsb3dlZCk6KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZSxiLnNTb3J0aW5nQ2xhc3NKVUk9ZC5zU29ydEpVSSl9ZnVuY3Rpb24gWShhKXtpZighMSE9PWEub0ZlYXR1cmVzLmJBdXRvV2lkdGgpe3ZhciBiPWEuYW9Db2x1bW5zO0ZhKGEpO2Zvcih2YXIgYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKyliW2NdLm5UaC5zdHlsZS53aWR0aD1iW2NdLnNXaWR0aH1iPWEub1Njcm9sbDsoIiIhPT1iLnNZfHwiIiE9PWIuc1gpJiZrYShhKTt1KGEsbnVsbCwiY29sdW1uLXNpemluZyIsW2FdKX1mdW5jdGlvbiBaKGEsYil7dmFyIGM9bGEoYSwiYlZpc2libGUiKTtyZXR1cm4ibnVtYmVyIj09PXR5cGVvZiBjW2JdP2NbYl06bnVsbH1mdW5jdGlvbiAkKGEsYil7dmFyIGM9bGEoYSwiYlZpc2libGUiKSxjPWguaW5BcnJheShiLGMpO3JldHVybi0xIT09Yz9jOm51bGx9CmZ1bmN0aW9uIGFhKGEpe3ZhciBiPTA7aC5lYWNoKGEuYW9Db2x1bW5zLGZ1bmN0aW9uKGEsZCl7ZC5iVmlzaWJsZSYmIm5vbmUiIT09aChkLm5UaCkuY3NzKCJkaXNwbGF5IikmJmIrK30pO3JldHVybiBifWZ1bmN0aW9uIGxhKGEsYil7dmFyIGM9W107aC5tYXAoYS5hb0NvbHVtbnMsZnVuY3Rpb24oYSxlKXthW2JdJiZjLnB1c2goZSl9KTtyZXR1cm4gY31mdW5jdGlvbiBHYShhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPWEuYW9EYXRhLGQ9bS5leHQudHlwZS5kZXRlY3QsZSxmLGcsaixpLGgsbCxxLHQ7ZT0wO2ZvcihmPWIubGVuZ3RoO2U8ZjtlKyspaWYobD1iW2VdLHQ9W10sIWwuc1R5cGUmJmwuX3NNYW51YWxUeXBlKWwuc1R5cGU9bC5fc01hbnVhbFR5cGU7ZWxzZSBpZighbC5zVHlwZSl7Zz0wO2ZvcihqPWQubGVuZ3RoO2c8ajtnKyspe2k9MDtmb3IoaD1jLmxlbmd0aDtpPGg7aSsrKXt0W2ldPT09ayYmKHRbaV09QihhLGksZSwidHlwZSIpKTtxPWRbZ10odFtpXSxhKTtpZighcSYmCmchPT1kLmxlbmd0aC0xKWJyZWFrO2lmKCJodG1sIj09PXEpYnJlYWt9aWYocSl7bC5zVHlwZT1xO2JyZWFrfX1sLnNUeXBlfHwobC5zVHlwZT0ic3RyaW5nIil9fWZ1bmN0aW9uIGliKGEsYixjLGQpe3ZhciBlLGYsZyxqLGksbixsPWEuYW9Db2x1bW5zO2lmKGIpZm9yKGU9Yi5sZW5ndGgtMTswPD1lO2UtLSl7bj1iW2VdO3ZhciBxPW4udGFyZ2V0cyE9PWs/bi50YXJnZXRzOm4uYVRhcmdldHM7aC5pc0FycmF5KHEpfHwocT1bcV0pO2Y9MDtmb3IoZz1xLmxlbmd0aDtmPGc7ZisrKWlmKCJudW1iZXIiPT09dHlwZW9mIHFbZl0mJjA8PXFbZl0pe2Zvcig7bC5sZW5ndGg8PXFbZl07KUVhKGEpO2QocVtmXSxuKX1lbHNlIGlmKCJudW1iZXIiPT09dHlwZW9mIHFbZl0mJjA+cVtmXSlkKGwubGVuZ3RoK3FbZl0sbik7ZWxzZSBpZigic3RyaW5nIj09PXR5cGVvZiBxW2ZdKXtqPTA7Zm9yKGk9bC5sZW5ndGg7ajxpO2orKykoIl9hbGwiPT1xW2ZdfHxoKGxbal0ublRoKS5oYXNDbGFzcyhxW2ZdKSkmJgpkKGosbil9fWlmKGMpe2U9MDtmb3IoYT1jLmxlbmd0aDtlPGE7ZSsrKWQoZSxjW2VdKX19ZnVuY3Rpb24gTihhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YS5sZW5ndGgsZj1oLmV4dGVuZCghMCx7fSxtLm1vZGVscy5vUm93LHtzcmM6Yz8iZG9tIjoiZGF0YSIsaWR4OmV9KTtmLl9hRGF0YT1iO2EuYW9EYXRhLnB1c2goZik7Zm9yKHZhciBnPWEuYW9Db2x1bW5zLGo9MCxpPWcubGVuZ3RoO2o8aTtqKyspZ1tqXS5zVHlwZT1udWxsO2EuYWlEaXNwbGF5TWFzdGVyLnB1c2goZSk7Yj1hLnJvd0lkRm4oYik7YiE9PWsmJihhLmFJZHNbYl09Zik7KGN8fCFhLm9GZWF0dXJlcy5iRGVmZXJSZW5kZXIpJiZIYShhLGUsYyxkKTtyZXR1cm4gZX1mdW5jdGlvbiBtYShhLGIpe3ZhciBjO2IgaW5zdGFuY2VvZiBofHwoYj1oKGIpKTtyZXR1cm4gYi5tYXAoZnVuY3Rpb24oYixlKXtjPUlhKGEsZSk7cmV0dXJuIE4oYSxjLmRhdGEsZSxjLmNlbGxzKX0pfWZ1bmN0aW9uIEIoYSxiLGMsZCl7dmFyIGU9YS5pRHJhdywKZj1hLmFvQ29sdW1uc1tjXSxnPWEuYW9EYXRhW2JdLl9hRGF0YSxqPWYuc0RlZmF1bHRDb250ZW50LGk9Zi5mbkdldERhdGEoZyxkLHtzZXR0aW5nczphLHJvdzpiLGNvbDpjfSk7aWYoaT09PWspcmV0dXJuIGEuaURyYXdFcnJvciE9ZSYmbnVsbD09PWomJihMKGEsMCwiUmVxdWVzdGVkIHVua25vd24gcGFyYW1ldGVyICIrKCJmdW5jdGlvbiI9PXR5cGVvZiBmLm1EYXRhPyJ7ZnVuY3Rpb259IjoiJyIrZi5tRGF0YSsiJyIpKyIgZm9yIHJvdyAiK2IrIiwgY29sdW1uICIrYyw0KSxhLmlEcmF3RXJyb3I9ZSksajtpZigoaT09PWd8fG51bGw9PT1pKSYmbnVsbCE9PWomJmQhPT1rKWk9ajtlbHNlIGlmKCJmdW5jdGlvbiI9PT10eXBlb2YgaSlyZXR1cm4gaS5jYWxsKGcpO3JldHVybiBudWxsPT09aSYmImRpc3BsYXkiPT1kPyIiOml9ZnVuY3Rpb24gamIoYSxiLGMsZCl7YS5hb0NvbHVtbnNbY10uZm5TZXREYXRhKGEuYW9EYXRhW2JdLl9hRGF0YSxkLHtzZXR0aW5nczphLHJvdzpiLGNvbDpjfSl9CmZ1bmN0aW9uIEphKGEpe3JldHVybiBoLm1hcChhLm1hdGNoKC8oXFwufFteXC5dKSsvZyl8fFsiIl0sZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXFwuL2csIi4iKX0pfWZ1bmN0aW9uIFEoYSl7aWYoaC5pc1BsYWluT2JqZWN0KGEpKXt2YXIgYj17fTtoLmVhY2goYSxmdW5jdGlvbihhLGMpe2MmJihiW2FdPVEoYykpfSk7cmV0dXJuIGZ1bmN0aW9uKGEsYyxmLGcpe3ZhciBqPWJbY118fGIuXztyZXR1cm4gaiE9PWs/aihhLGMsZixnKTphfX1pZihudWxsPT09YSlyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGF9O2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlyZXR1cm4gZnVuY3Rpb24oYixjLGYsZyl7cmV0dXJuIGEoYixjLGYsZyl9O2lmKCJzdHJpbmciPT09dHlwZW9mIGEmJigtMSE9PWEuaW5kZXhPZigiLiIpfHwtMSE9PWEuaW5kZXhPZigiWyIpfHwtMSE9PWEuaW5kZXhPZigiKCIpKSl7dmFyIGM9ZnVuY3Rpb24oYSxiLGYpe3ZhciBnLGo7aWYoIiIhPT1mKXtqPUphKGYpOwpmb3IodmFyIGk9MCxuPWoubGVuZ3RoO2k8bjtpKyspe2Y9altpXS5tYXRjaChiYSk7Zz1qW2ldLm1hdGNoKFUpO2lmKGYpe2pbaV09altpXS5yZXBsYWNlKGJhLCIiKTsiIiE9PWpbaV0mJihhPWFbaltpXV0pO2c9W107ai5zcGxpY2UoMCxpKzEpO2o9ai5qb2luKCIuIik7aWYoaC5pc0FycmF5KGEpKXtpPTA7Zm9yKG49YS5sZW5ndGg7aTxuO2krKylnLnB1c2goYyhhW2ldLGIsaikpfWE9ZlswXS5zdWJzdHJpbmcoMSxmWzBdLmxlbmd0aC0xKTthPSIiPT09YT9nOmcuam9pbihhKTticmVha31lbHNlIGlmKGcpe2pbaV09altpXS5yZXBsYWNlKFUsIiIpO2E9YVtqW2ldXSgpO2NvbnRpbnVlfWlmKG51bGw9PT1hfHxhW2pbaV1dPT09aylyZXR1cm4gazthPWFbaltpXV19fXJldHVybiBhfTtyZXR1cm4gZnVuY3Rpb24oYixlKXtyZXR1cm4gYyhiLGUsYSl9fXJldHVybiBmdW5jdGlvbihiKXtyZXR1cm4gYlthXX19ZnVuY3Rpb24gUihhKXtpZihoLmlzUGxhaW5PYmplY3QoYSkpcmV0dXJuIFIoYS5fKTsKaWYobnVsbD09PWEpcmV0dXJuIGZ1bmN0aW9uKCl7fTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsZCxlKXthKGIsInNldCIsZCxlKX07aWYoInN0cmluZyI9PT10eXBlb2YgYSYmKC0xIT09YS5pbmRleE9mKCIuIil8fC0xIT09YS5pbmRleE9mKCJbIil8fC0xIT09YS5pbmRleE9mKCIoIikpKXt2YXIgYj1mdW5jdGlvbihhLGQsZSl7dmFyIGU9SmEoZSksZjtmPWVbZS5sZW5ndGgtMV07Zm9yKHZhciBnLGosaT0wLG49ZS5sZW5ndGgtMTtpPG47aSsrKXtnPWVbaV0ubWF0Y2goYmEpO2o9ZVtpXS5tYXRjaChVKTtpZihnKXtlW2ldPWVbaV0ucmVwbGFjZShiYSwiIik7YVtlW2ldXT1bXTtmPWUuc2xpY2UoKTtmLnNwbGljZSgwLGkrMSk7Zz1mLmpvaW4oIi4iKTtpZihoLmlzQXJyYXkoZCkpe2o9MDtmb3Iobj1kLmxlbmd0aDtqPG47aisrKWY9e30sYihmLGRbal0sZyksYVtlW2ldXS5wdXNoKGYpfWVsc2UgYVtlW2ldXT1kO3JldHVybn1qJiYoZVtpXT1lW2ldLnJlcGxhY2UoVSwKIiIpLGE9YVtlW2ldXShkKSk7aWYobnVsbD09PWFbZVtpXV18fGFbZVtpXV09PT1rKWFbZVtpXV09e307YT1hW2VbaV1dfWlmKGYubWF0Y2goVSkpYVtmLnJlcGxhY2UoVSwiIildKGQpO2Vsc2UgYVtmLnJlcGxhY2UoYmEsIiIpXT1kfTtyZXR1cm4gZnVuY3Rpb24oYyxkKXtyZXR1cm4gYihjLGQsYSl9fXJldHVybiBmdW5jdGlvbihiLGQpe2JbYV09ZH19ZnVuY3Rpb24gS2EoYSl7cmV0dXJuIEcoYS5hb0RhdGEsIl9hRGF0YSIpfWZ1bmN0aW9uIG5hKGEpe2EuYW9EYXRhLmxlbmd0aD0wO2EuYWlEaXNwbGF5TWFzdGVyLmxlbmd0aD0wO2EuYWlEaXNwbGF5Lmxlbmd0aD0wO2EuYUlkcz17fX1mdW5jdGlvbiBvYShhLGIsYyl7Zm9yKHZhciBkPS0xLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspYVtlXT09Yj9kPWU6YVtlXT5iJiZhW2VdLS07IC0xIT1kJiZjPT09ayYmYS5zcGxpY2UoZCwxKX1mdW5jdGlvbiBjYShhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YVtiXSxmLGc9ZnVuY3Rpb24oYyxkKXtmb3IoO2MuY2hpbGROb2Rlcy5sZW5ndGg7KWMucmVtb3ZlQ2hpbGQoYy5maXJzdENoaWxkKTsKYy5pbm5lckhUTUw9QihhLGIsZCwiZGlzcGxheSIpfTtpZigiZG9tIj09PWN8fCghY3x8ImF1dG8iPT09YykmJiJkb20iPT09ZS5zcmMpZS5fYURhdGE9SWEoYSxlLGQsZD09PWs/azplLl9hRGF0YSkuZGF0YTtlbHNle3ZhciBqPWUuYW5DZWxscztpZihqKWlmKGQhPT1rKWcoaltkXSxkKTtlbHNle2M9MDtmb3IoZj1qLmxlbmd0aDtjPGY7YysrKWcoaltjXSxjKX19ZS5fYVNvcnREYXRhPW51bGw7ZS5fYUZpbHRlckRhdGE9bnVsbDtnPWEuYW9Db2x1bW5zO2lmKGQhPT1rKWdbZF0uc1R5cGU9bnVsbDtlbHNle2M9MDtmb3IoZj1nLmxlbmd0aDtjPGY7YysrKWdbY10uc1R5cGU9bnVsbDtMYShhLGUpfX1mdW5jdGlvbiBJYShhLGIsYyxkKXt2YXIgZT1bXSxmPWIuZmlyc3RDaGlsZCxnLGosaT0wLG4sbD1hLmFvQ29sdW1ucyxxPWEuX3Jvd1JlYWRPYmplY3QsZD1kIT09az9kOnE/e306W10sdD1mdW5jdGlvbihhLGIpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpe3ZhciBjPWEuaW5kZXhPZigiQCIpOwotMSE9PWMmJihjPWEuc3Vic3RyaW5nKGMrMSksUihhKShkLGIuZ2V0QXR0cmlidXRlKGMpKSl9fSxTPWZ1bmN0aW9uKGEpe2lmKGM9PT1rfHxjPT09aSlqPWxbaV0sbj1oLnRyaW0oYS5pbm5lckhUTUwpLGomJmouX2JBdHRyU3JjPyhSKGoubURhdGEuXykoZCxuKSx0KGoubURhdGEuc29ydCxhKSx0KGoubURhdGEudHlwZSxhKSx0KGoubURhdGEuZmlsdGVyLGEpKTpxPyhqLl9zZXR0ZXJ8fChqLl9zZXR0ZXI9UihqLm1EYXRhKSksai5fc2V0dGVyKGQsbikpOmRbaV09bjtpKyt9O2lmKGYpZm9yKDtmOyl7Zz1mLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk7aWYoIlREIj09Z3x8IlRIIj09ZylTKGYpLGUucHVzaChmKTtmPWYubmV4dFNpYmxpbmd9ZWxzZXtlPWIuYW5DZWxscztmPTA7Zm9yKGc9ZS5sZW5ndGg7ZjxnO2YrKylTKGVbZl0pfWlmKGI9Yi5maXJzdENoaWxkP2I6Yi5uVHIpKGI9Yi5nZXRBdHRyaWJ1dGUoImlkIikpJiZSKGEucm93SWQpKGQsYik7cmV0dXJue2RhdGE6ZCxjZWxsczplfX0KZnVuY3Rpb24gSGEoYSxiLGMsZCl7dmFyIGU9YS5hb0RhdGFbYl0sZj1lLl9hRGF0YSxnPVtdLGosaSxuLGwscTtpZihudWxsPT09ZS5uVHIpe2o9Y3x8SS5jcmVhdGVFbGVtZW50KCJ0ciIpO2UublRyPWo7ZS5hbkNlbGxzPWc7ai5fRFRfUm93SW5kZXg9YjtMYShhLGUpO2w9MDtmb3IocT1hLmFvQ29sdW1ucy5sZW5ndGg7bDxxO2wrKyl7bj1hLmFvQ29sdW1uc1tsXTtpPWM/ZFtsXTpJLmNyZWF0ZUVsZW1lbnQobi5zQ2VsbFR5cGUpO2kuX0RUX0NlbGxJbmRleD17cm93OmIsY29sdW1uOmx9O2cucHVzaChpKTtpZigoIWN8fG4ubVJlbmRlcnx8bi5tRGF0YSE9PWwpJiYoIWguaXNQbGFpbk9iamVjdChuLm1EYXRhKXx8bi5tRGF0YS5fIT09bCsiLmRpc3BsYXkiKSlpLmlubmVySFRNTD1CKGEsYixsLCJkaXNwbGF5Iik7bi5zQ2xhc3MmJihpLmNsYXNzTmFtZSs9IiAiK24uc0NsYXNzKTtuLmJWaXNpYmxlJiYhYz9qLmFwcGVuZENoaWxkKGkpOiFuLmJWaXNpYmxlJiZjJiZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSk7Cm4uZm5DcmVhdGVkQ2VsbCYmbi5mbkNyZWF0ZWRDZWxsLmNhbGwoYS5vSW5zdGFuY2UsaSxCKGEsYixsKSxmLGIsbCl9dShhLCJhb1Jvd0NyZWF0ZWRDYWxsYmFjayIsbnVsbCxbaixmLGJdKX1lLm5Uci5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyb3ciKX1mdW5jdGlvbiBMYShhLGIpe3ZhciBjPWIublRyLGQ9Yi5fYURhdGE7aWYoYyl7dmFyIGU9YS5yb3dJZEZuKGQpO2UmJihjLmlkPWUpO2QuRFRfUm93Q2xhc3MmJihlPWQuRFRfUm93Q2xhc3Muc3BsaXQoIiAiKSxiLl9fcm93Yz1iLl9fcm93Yz9wYShiLl9fcm93Yy5jb25jYXQoZSkpOmUsaChjKS5yZW1vdmVDbGFzcyhiLl9fcm93Yy5qb2luKCIgIikpLmFkZENsYXNzKGQuRFRfUm93Q2xhc3MpKTtkLkRUX1Jvd0F0dHImJmgoYykuYXR0cihkLkRUX1Jvd0F0dHIpO2QuRFRfUm93RGF0YSYmaChjKS5kYXRhKGQuRFRfUm93RGF0YSl9fWZ1bmN0aW9uIGtiKGEpe3ZhciBiLGMsZCxlLGYsZz1hLm5USGVhZCxqPWEublRGb290LGk9MD09PQpoKCJ0aCwgdGQiLGcpLmxlbmd0aCxuPWEub0NsYXNzZXMsbD1hLmFvQ29sdW1ucztpJiYoZT1oKCI8dHIvPiIpLmFwcGVuZFRvKGcpKTtiPTA7Zm9yKGM9bC5sZW5ndGg7YjxjO2IrKylmPWxbYl0sZD1oKGYublRoKS5hZGRDbGFzcyhmLnNDbGFzcyksaSYmZC5hcHBlbmRUbyhlKSxhLm9GZWF0dXJlcy5iU29ydCYmKGQuYWRkQ2xhc3MoZi5zU29ydGluZ0NsYXNzKSwhMSE9PWYuYlNvcnRhYmxlJiYoZC5hdHRyKCJ0YWJpbmRleCIsYS5pVGFiSW5kZXgpLmF0dHIoImFyaWEtY29udHJvbHMiLGEuc1RhYmxlSWQpLE1hKGEsZi5uVGgsYikpKSxmLnNUaXRsZSE9ZFswXS5pbm5lckhUTUwmJmQuaHRtbChmLnNUaXRsZSksTmEoYSwiaGVhZGVyIikoYSxkLGYsbik7aSYmZGEoYS5hb0hlYWRlcixnKTtoKGcpLmZpbmQoIj50ciIpLmF0dHIoInJvbGUiLCJyb3ciKTtoKGcpLmZpbmQoIj50cj50aCwgPnRyPnRkIikuYWRkQ2xhc3Mobi5zSGVhZGVyVEgpO2goaikuZmluZCgiPnRyPnRoLCA+dHI+dGQiKS5hZGRDbGFzcyhuLnNGb290ZXJUSCk7CmlmKG51bGwhPT1qKXthPWEuYW9Gb290ZXJbMF07Yj0wO2ZvcihjPWEubGVuZ3RoO2I8YztiKyspZj1sW2JdLGYublRmPWFbYl0uY2VsbCxmLnNDbGFzcyYmaChmLm5UZikuYWRkQ2xhc3MoZi5zQ2xhc3MpfX1mdW5jdGlvbiBlYShhLGIsYyl7dmFyIGQsZSxmLGc9W10saj1bXSxpPWEuYW9Db2x1bW5zLmxlbmd0aCxuO2lmKGIpe2M9PT1rJiYoYz0hMSk7ZD0wO2ZvcihlPWIubGVuZ3RoO2Q8ZTtkKyspe2dbZF09YltkXS5zbGljZSgpO2dbZF0ublRyPWJbZF0ublRyO2ZvcihmPWktMTswPD1mO2YtLSkhYS5hb0NvbHVtbnNbZl0uYlZpc2libGUmJiFjJiZnW2RdLnNwbGljZShmLDEpO2oucHVzaChbXSl9ZD0wO2ZvcihlPWcubGVuZ3RoO2Q8ZTtkKyspe2lmKGE9Z1tkXS5uVHIpZm9yKDtmPWEuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChmKTtmPTA7Zm9yKGI9Z1tkXS5sZW5ndGg7ZjxiO2YrKylpZihuPWk9MSxqW2RdW2ZdPT09ayl7YS5hcHBlbmRDaGlsZChnW2RdW2ZdLmNlbGwpOwpmb3IoaltkXVtmXT0xO2dbZCtpXSE9PWsmJmdbZF1bZl0uY2VsbD09Z1tkK2ldW2ZdLmNlbGw7KWpbZCtpXVtmXT0xLGkrKztmb3IoO2dbZF1bZituXSE9PWsmJmdbZF1bZl0uY2VsbD09Z1tkXVtmK25dLmNlbGw7KXtmb3IoYz0wO2M8aTtjKyspaltkK2NdW2Yrbl09MTtuKyt9aChnW2RdW2ZdLmNlbGwpLmF0dHIoInJvd3NwYW4iLGkpLmF0dHIoImNvbHNwYW4iLG4pfX19fWZ1bmN0aW9uIE8oYSl7dmFyIGI9dShhLCJhb1ByZURyYXdDYWxsYmFjayIsInByZURyYXciLFthXSk7aWYoLTEhPT1oLmluQXJyYXkoITEsYikpQyhhLCExKTtlbHNle3ZhciBiPVtdLGM9MCxkPWEuYXNTdHJpcGVDbGFzc2VzLGU9ZC5sZW5ndGgsZj1hLm9MYW5ndWFnZSxnPWEuaUluaXREaXNwbGF5U3RhcnQsaj0ic3NwIj09eShhKSxpPWEuYWlEaXNwbGF5O2EuYkRyYXdpbmc9ITA7ZyE9PWsmJi0xIT09ZyYmKGEuX2lEaXNwbGF5U3RhcnQ9aj9nOmc+PWEuZm5SZWNvcmRzRGlzcGxheSgpPzA6ZyxhLmlJbml0RGlzcGxheVN0YXJ0PQotMSk7dmFyIGc9YS5faURpc3BsYXlTdGFydCxuPWEuZm5EaXNwbGF5RW5kKCk7aWYoYS5iRGVmZXJMb2FkaW5nKWEuYkRlZmVyTG9hZGluZz0hMSxhLmlEcmF3KyssQyhhLCExKTtlbHNlIGlmKGope2lmKCFhLmJEZXN0cm95aW5nJiYhbGIoYSkpcmV0dXJufWVsc2UgYS5pRHJhdysrO2lmKDAhPT1pLmxlbmd0aCl7Zj1qP2EuYW9EYXRhLmxlbmd0aDpuO2ZvcihqPWo/MDpnO2o8ZjtqKyspe3ZhciBsPWlbal0scT1hLmFvRGF0YVtsXTtudWxsPT09cS5uVHImJkhhKGEsbCk7bD1xLm5UcjtpZigwIT09ZSl7dmFyIHQ9ZFtjJWVdO3EuX3NSb3dTdHJpcGUhPXQmJihoKGwpLnJlbW92ZUNsYXNzKHEuX3NSb3dTdHJpcGUpLmFkZENsYXNzKHQpLHEuX3NSb3dTdHJpcGU9dCl9dShhLCJhb1Jvd0NhbGxiYWNrIixudWxsLFtsLHEuX2FEYXRhLGMsal0pO2IucHVzaChsKTtjKyt9fWVsc2UgYz1mLnNaZXJvUmVjb3JkcywxPT1hLmlEcmF3JiYiYWpheCI9PXkoYSk/Yz1mLnNMb2FkaW5nUmVjb3JkczoKZi5zRW1wdHlUYWJsZSYmMD09PWEuZm5SZWNvcmRzVG90YWwoKSYmKGM9Zi5zRW1wdHlUYWJsZSksYlswXT1oKCI8dHIvPiIseyJjbGFzcyI6ZT9kWzBdOiIifSkuYXBwZW5kKGgoIjx0ZCAvPiIse3ZhbGlnbjoidG9wIixjb2xTcGFuOmFhKGEpLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUm93RW1wdHl9KS5odG1sKGMpKVswXTt1KGEsImFvSGVhZGVyQ2FsbGJhY2siLCJoZWFkZXIiLFtoKGEublRIZWFkKS5jaGlsZHJlbigidHIiKVswXSxLYShhKSxnLG4saV0pO3UoYSwiYW9Gb290ZXJDYWxsYmFjayIsImZvb3RlciIsW2goYS5uVEZvb3QpLmNoaWxkcmVuKCJ0ciIpWzBdLEthKGEpLGcsbixpXSk7ZD1oKGEublRCb2R5KTtkLmNoaWxkcmVuKCkuZGV0YWNoKCk7ZC5hcHBlbmQoaChiKSk7dShhLCJhb0RyYXdDYWxsYmFjayIsImRyYXciLFthXSk7YS5iU29ydGVkPSExO2EuYkZpbHRlcmVkPSExO2EuYkRyYXdpbmc9ITF9fWZ1bmN0aW9uIFQoYSxiKXt2YXIgYz1hLm9GZWF0dXJlcyxkPWMuYkZpbHRlcjsKYy5iU29ydCYmbWIoYSk7ZD9mYShhLGEub1ByZXZpb3VzU2VhcmNoKTphLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOyEwIT09YiYmKGEuX2lEaXNwbGF5U3RhcnQ9MCk7YS5fZHJhd0hvbGQ9YjtPKGEpO2EuX2RyYXdIb2xkPSExfWZ1bmN0aW9uIG5iKGEpe3ZhciBiPWEub0NsYXNzZXMsYz1oKGEublRhYmxlKSxjPWgoIjxkaXYvPiIpLmluc2VydEJlZm9yZShjKSxkPWEub0ZlYXR1cmVzLGU9aCgiPGRpdi8+Iix7aWQ6YS5zVGFibGVJZCsiX3dyYXBwZXIiLCJjbGFzcyI6Yi5zV3JhcHBlcisoYS5uVEZvb3Q/IiI6IiAiK2Iuc05vRm9vdGVyKX0pO2EubkhvbGRpbmc9Y1swXTthLm5UYWJsZVdyYXBwZXI9ZVswXTthLm5UYWJsZVJlaW5zZXJ0QmVmb3JlPWEublRhYmxlLm5leHRTaWJsaW5nO2Zvcih2YXIgZj1hLnNEb20uc3BsaXQoIiIpLGcsaixpLG4sbCxxLHQ9MDt0PGYubGVuZ3RoO3QrKyl7Zz1udWxsO2o9Zlt0XTtpZigiPCI9PWope2k9aCgiPGRpdi8+IilbMF07Cm49Zlt0KzFdO2lmKCInIj09bnx8JyInPT1uKXtsPSIiO2ZvcihxPTI7Zlt0K3FdIT1uOylsKz1mW3QrcV0scSsrOyJIIj09bD9sPWIuc0pVSUhlYWRlcjoiRiI9PWwmJihsPWIuc0pVSUZvb3Rlcik7LTEhPWwuaW5kZXhPZigiLiIpPyhuPWwuc3BsaXQoIi4iKSxpLmlkPW5bMF0uc3Vic3RyKDEsblswXS5sZW5ndGgtMSksaS5jbGFzc05hbWU9blsxXSk6IiMiPT1sLmNoYXJBdCgwKT9pLmlkPWwuc3Vic3RyKDEsbC5sZW5ndGgtMSk6aS5jbGFzc05hbWU9bDt0Kz1xfWUuYXBwZW5kKGkpO2U9aChpKX1lbHNlIGlmKCI+Ij09aillPWUucGFyZW50KCk7ZWxzZSBpZigibCI9PWomJmQuYlBhZ2luYXRlJiZkLmJMZW5ndGhDaGFuZ2UpZz1vYihhKTtlbHNlIGlmKCJmIj09aiYmZC5iRmlsdGVyKWc9cGIoYSk7ZWxzZSBpZigiciI9PWomJmQuYlByb2Nlc3NpbmcpZz1xYihhKTtlbHNlIGlmKCJ0Ij09ailnPXJiKGEpO2Vsc2UgaWYoImkiPT1qJiZkLmJJbmZvKWc9c2IoYSk7ZWxzZSBpZigicCI9PQpqJiZkLmJQYWdpbmF0ZSlnPXRiKGEpO2Vsc2UgaWYoMCE9PW0uZXh0LmZlYXR1cmUubGVuZ3RoKXtpPW0uZXh0LmZlYXR1cmU7cT0wO2ZvcihuPWkubGVuZ3RoO3E8bjtxKyspaWYoaj09aVtxXS5jRmVhdHVyZSl7Zz1pW3FdLmZuSW5pdChhKTticmVha319ZyYmKGk9YS5hYW5GZWF0dXJlcyxpW2pdfHwoaVtqXT1bXSksaVtqXS5wdXNoKGcpLGUuYXBwZW5kKGcpKX1jLnJlcGxhY2VXaXRoKGUpO2EubkhvbGRpbmc9bnVsbH1mdW5jdGlvbiBkYShhLGIpe3ZhciBjPWgoYikuY2hpbGRyZW4oInRyIiksZCxlLGYsZyxqLGksbixsLHEsdDthLnNwbGljZSgwLGEubGVuZ3RoKTtmPTA7Zm9yKGk9Yy5sZW5ndGg7ZjxpO2YrKylhLnB1c2goW10pO2Y9MDtmb3IoaT1jLmxlbmd0aDtmPGk7ZisrKXtkPWNbZl07Zm9yKGU9ZC5maXJzdENoaWxkO2U7KXtpZigiVEQiPT1lLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCl8fCJUSCI9PWUubm9kZU5hbWUudG9VcHBlckNhc2UoKSl7bD0xKmUuZ2V0QXR0cmlidXRlKCJjb2xzcGFuIik7CnE9MSplLmdldEF0dHJpYnV0ZSgicm93c3BhbiIpO2w9IWx8fDA9PT1sfHwxPT09bD8xOmw7cT0hcXx8MD09PXF8fDE9PT1xPzE6cTtnPTA7Zm9yKGo9YVtmXTtqW2ddOylnKys7bj1nO3Q9MT09PWw/ITA6ITE7Zm9yKGo9MDtqPGw7aisrKWZvcihnPTA7ZzxxO2crKylhW2YrZ11bbitqXT17Y2VsbDplLHVuaXF1ZTp0fSxhW2YrZ10ublRyPWR9ZT1lLm5leHRTaWJsaW5nfX19ZnVuY3Rpb24gcWEoYSxiLGMpe3ZhciBkPVtdO2N8fChjPWEuYW9IZWFkZXIsYiYmKGM9W10sZGEoYyxiKSkpO2Zvcih2YXIgYj0wLGU9Yy5sZW5ndGg7YjxlO2IrKylmb3IodmFyIGY9MCxnPWNbYl0ubGVuZ3RoO2Y8ZztmKyspaWYoY1tiXVtmXS51bmlxdWUmJighZFtmXXx8IWEuYlNvcnRDZWxsc1RvcCkpZFtmXT1jW2JdW2ZdLmNlbGw7cmV0dXJuIGR9ZnVuY3Rpb24gcmEoYSxiLGMpe3UoYSwiYW9TZXJ2ZXJQYXJhbXMiLCJzZXJ2ZXJQYXJhbXMiLFtiXSk7aWYoYiYmaC5pc0FycmF5KGIpKXt2YXIgZD17fSwKZT0vKC4qPylcW1xdJC87aC5lYWNoKGIsZnVuY3Rpb24oYSxiKXt2YXIgYz1iLm5hbWUubWF0Y2goZSk7Yz8oYz1jWzBdLGRbY118fChkW2NdPVtdKSxkW2NdLnB1c2goYi52YWx1ZSkpOmRbYi5uYW1lXT1iLnZhbHVlfSk7Yj1kfXZhciBmLGc9YS5hamF4LGo9YS5vSW5zdGFuY2UsaT1mdW5jdGlvbihiKXt1KGEsbnVsbCwieGhyIixbYSxiLGEuanFYSFJdKTtjKGIpfTtpZihoLmlzUGxhaW5PYmplY3QoZykmJmcuZGF0YSl7Zj1nLmRhdGE7dmFyIG49aC5pc0Z1bmN0aW9uKGYpP2YoYixhKTpmLGI9aC5pc0Z1bmN0aW9uKGYpJiZuP246aC5leHRlbmQoITAsYixuKTtkZWxldGUgZy5kYXRhfW49e2RhdGE6YixzdWNjZXNzOmZ1bmN0aW9uKGIpe3ZhciBjPWIuZXJyb3J8fGIuc0Vycm9yO2MmJkwoYSwwLGMpO2EuanNvbj1iO2koYil9LGRhdGFUeXBlOiJqc29uIixjYWNoZTohMSx0eXBlOmEuc1NlcnZlck1ldGhvZCxlcnJvcjpmdW5jdGlvbihiLGMpe3ZhciBkPXUoYSxudWxsLCJ4aHIiLApbYSxudWxsLGEuanFYSFJdKTstMT09PWguaW5BcnJheSghMCxkKSYmKCJwYXJzZXJlcnJvciI9PWM/TChhLDAsIkludmFsaWQgSlNPTiByZXNwb25zZSIsMSk6ND09PWIucmVhZHlTdGF0ZSYmTChhLDAsIkFqYXggZXJyb3IiLDcpKTtDKGEsITEpfX07YS5vQWpheERhdGE9Yjt1KGEsbnVsbCwicHJlWGhyIixbYSxiXSk7YS5mblNlcnZlckRhdGE/YS5mblNlcnZlckRhdGEuY2FsbChqLGEuc0FqYXhTb3VyY2UsaC5tYXAoYixmdW5jdGlvbihhLGIpe3JldHVybntuYW1lOmIsdmFsdWU6YX19KSxpLGEpOmEuc0FqYXhTb3VyY2V8fCJzdHJpbmciPT09dHlwZW9mIGc/YS5qcVhIUj1oLmFqYXgoaC5leHRlbmQobix7dXJsOmd8fGEuc0FqYXhTb3VyY2V9KSk6aC5pc0Z1bmN0aW9uKGcpP2EuanFYSFI9Zy5jYWxsKGosYixpLGEpOihhLmpxWEhSPWguYWpheChoLmV4dGVuZChuLGcpKSxnLmRhdGE9Zil9ZnVuY3Rpb24gbGIoYSl7cmV0dXJuIGEuYkFqYXhEYXRhR2V0PyhhLmlEcmF3KyssQyhhLAohMCkscmEoYSx1YihhKSxmdW5jdGlvbihiKXt2YihhLGIpfSksITEpOiEwfWZ1bmN0aW9uIHViKGEpe3ZhciBiPWEuYW9Db2x1bW5zLGM9Yi5sZW5ndGgsZD1hLm9GZWF0dXJlcyxlPWEub1ByZXZpb3VzU2VhcmNoLGY9YS5hb1ByZVNlYXJjaENvbHMsZyxqPVtdLGksbixsLHE9VihhKTtnPWEuX2lEaXNwbGF5U3RhcnQ7aT0hMSE9PWQuYlBhZ2luYXRlP2EuX2lEaXNwbGF5TGVuZ3RoOi0xO3ZhciBrPWZ1bmN0aW9uKGEsYil7ai5wdXNoKHtuYW1lOmEsdmFsdWU6Yn0pfTtrKCJzRWNobyIsYS5pRHJhdyk7aygiaUNvbHVtbnMiLGMpO2soInNDb2x1bW5zIixHKGIsInNOYW1lIikuam9pbigiLCIpKTtrKCJpRGlzcGxheVN0YXJ0IixnKTtrKCJpRGlzcGxheUxlbmd0aCIsaSk7dmFyIFM9e2RyYXc6YS5pRHJhdyxjb2x1bW5zOltdLG9yZGVyOltdLHN0YXJ0OmcsbGVuZ3RoOmksc2VhcmNoOnt2YWx1ZTplLnNTZWFyY2gscmVnZXg6ZS5iUmVnZXh9fTtmb3IoZz0wO2c8YztnKyspbj1iW2ddLApsPWZbZ10saT0iZnVuY3Rpb24iPT10eXBlb2Ygbi5tRGF0YT8iZnVuY3Rpb24iOm4ubURhdGEsUy5jb2x1bW5zLnB1c2goe2RhdGE6aSxuYW1lOm4uc05hbWUsc2VhcmNoYWJsZTpuLmJTZWFyY2hhYmxlLG9yZGVyYWJsZTpuLmJTb3J0YWJsZSxzZWFyY2g6e3ZhbHVlOmwuc1NlYXJjaCxyZWdleDpsLmJSZWdleH19KSxrKCJtRGF0YVByb3BfIitnLGkpLGQuYkZpbHRlciYmKGsoInNTZWFyY2hfIitnLGwuc1NlYXJjaCksaygiYlJlZ2V4XyIrZyxsLmJSZWdleCksaygiYlNlYXJjaGFibGVfIitnLG4uYlNlYXJjaGFibGUpKSxkLmJTb3J0JiZrKCJiU29ydGFibGVfIitnLG4uYlNvcnRhYmxlKTtkLmJGaWx0ZXImJihrKCJzU2VhcmNoIixlLnNTZWFyY2gpLGsoImJSZWdleCIsZS5iUmVnZXgpKTtkLmJTb3J0JiYoaC5lYWNoKHEsZnVuY3Rpb24oYSxiKXtTLm9yZGVyLnB1c2goe2NvbHVtbjpiLmNvbCxkaXI6Yi5kaXJ9KTtrKCJpU29ydENvbF8iK2EsYi5jb2wpO2soInNTb3J0RGlyXyIrCmEsYi5kaXIpfSksaygiaVNvcnRpbmdDb2xzIixxLmxlbmd0aCkpO2I9bS5leHQubGVnYWN5LmFqYXg7cmV0dXJuIG51bGw9PT1iP2Euc0FqYXhTb3VyY2U/ajpTOmI/ajpTfWZ1bmN0aW9uIHZiKGEsYil7dmFyIGM9c2EoYSxiKSxkPWIuc0VjaG8hPT1rP2Iuc0VjaG86Yi5kcmF3LGU9Yi5pVG90YWxSZWNvcmRzIT09az9iLmlUb3RhbFJlY29yZHM6Yi5yZWNvcmRzVG90YWwsZj1iLmlUb3RhbERpc3BsYXlSZWNvcmRzIT09az9iLmlUb3RhbERpc3BsYXlSZWNvcmRzOmIucmVjb3Jkc0ZpbHRlcmVkO2lmKGQpe2lmKDEqZDxhLmlEcmF3KXJldHVybjthLmlEcmF3PTEqZH1uYShhKTthLl9pUmVjb3Jkc1RvdGFsPXBhcnNlSW50KGUsMTApO2EuX2lSZWNvcmRzRGlzcGxheT1wYXJzZUludChmLDEwKTtkPTA7Zm9yKGU9Yy5sZW5ndGg7ZDxlO2QrKylOKGEsY1tkXSk7YS5haURpc3BsYXk9YS5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTthLmJBamF4RGF0YUdldD0hMTtPKGEpO2EuX2JJbml0Q29tcGxldGV8fAp0YShhLGIpO2EuYkFqYXhEYXRhR2V0PSEwO0MoYSwhMSl9ZnVuY3Rpb24gc2EoYSxiKXt2YXIgYz1oLmlzUGxhaW5PYmplY3QoYS5hamF4KSYmYS5hamF4LmRhdGFTcmMhPT1rP2EuYWpheC5kYXRhU3JjOmEuc0FqYXhEYXRhUHJvcDtyZXR1cm4iZGF0YSI9PT1jP2IuYWFEYXRhfHxiW2NdOiIiIT09Yz9RKGMpKGIpOmJ9ZnVuY3Rpb24gcGIoYSl7dmFyIGI9YS5vQ2xhc3NlcyxjPWEuc1RhYmxlSWQsZD1hLm9MYW5ndWFnZSxlPWEub1ByZXZpb3VzU2VhcmNoLGY9YS5hYW5GZWF0dXJlcyxnPSc8aW5wdXQgdHlwZT0ic2VhcmNoIiBjbGFzcz0iJytiLnNGaWx0ZXJJbnB1dCsnIi8+JyxqPWQuc1NlYXJjaCxqPWoubWF0Y2goL19JTlBVVF8vKT9qLnJlcGxhY2UoIl9JTlBVVF8iLGcpOmorZyxiPWgoIjxkaXYvPiIse2lkOiFmLmY/YysiX2ZpbHRlciI6bnVsbCwiY2xhc3MiOmIuc0ZpbHRlcn0pLmFwcGVuZChoKCI8bGFiZWwvPiIpLmFwcGVuZChqKSksZj1mdW5jdGlvbigpe3ZhciBiPSF0aGlzLnZhbHVlPwoiIjp0aGlzLnZhbHVlO2IhPWUuc1NlYXJjaCYmKGZhKGEse3NTZWFyY2g6YixiUmVnZXg6ZS5iUmVnZXgsYlNtYXJ0OmUuYlNtYXJ0LGJDYXNlSW5zZW5zaXRpdmU6ZS5iQ2FzZUluc2Vuc2l0aXZlfSksYS5faURpc3BsYXlTdGFydD0wLE8oYSkpfSxnPW51bGwhPT1hLnNlYXJjaERlbGF5P2Euc2VhcmNoRGVsYXk6InNzcCI9PT15KGEpPzQwMDowLGk9aCgiaW5wdXQiLGIpLnZhbChlLnNTZWFyY2gpLmF0dHIoInBsYWNlaG9sZGVyIixkLnNTZWFyY2hQbGFjZWhvbGRlcikuYmluZCgia2V5dXAuRFQgc2VhcmNoLkRUIGlucHV0LkRUIHBhc3RlLkRUIGN1dC5EVCIsZz9PYShmLGcpOmYpLmJpbmQoImtleXByZXNzLkRUIixmdW5jdGlvbihhKXtpZigxMz09YS5rZXlDb2RlKXJldHVybiExfSkuYXR0cigiYXJpYS1jb250cm9scyIsYyk7aChhLm5UYWJsZSkub24oInNlYXJjaC5kdC5EVCIsZnVuY3Rpb24oYixjKXtpZihhPT09Yyl0cnl7aVswXSE9PUkuYWN0aXZlRWxlbWVudCYmaS52YWwoZS5zU2VhcmNoKX1jYXRjaChkKXt9fSk7CnJldHVybiBiWzBdfWZ1bmN0aW9uIGZhKGEsYixjKXt2YXIgZD1hLm9QcmV2aW91c1NlYXJjaCxlPWEuYW9QcmVTZWFyY2hDb2xzLGY9ZnVuY3Rpb24oYSl7ZC5zU2VhcmNoPWEuc1NlYXJjaDtkLmJSZWdleD1hLmJSZWdleDtkLmJTbWFydD1hLmJTbWFydDtkLmJDYXNlSW5zZW5zaXRpdmU9YS5iQ2FzZUluc2Vuc2l0aXZlfTtHYShhKTtpZigic3NwIiE9eShhKSl7d2IoYSxiLnNTZWFyY2gsYyxiLmJFc2NhcGVSZWdleCE9PWs/IWIuYkVzY2FwZVJlZ2V4OmIuYlJlZ2V4LGIuYlNtYXJ0LGIuYkNhc2VJbnNlbnNpdGl2ZSk7ZihiKTtmb3IoYj0wO2I8ZS5sZW5ndGg7YisrKXhiKGEsZVtiXS5zU2VhcmNoLGIsZVtiXS5iRXNjYXBlUmVnZXghPT1rPyFlW2JdLmJFc2NhcGVSZWdleDplW2JdLmJSZWdleCxlW2JdLmJTbWFydCxlW2JdLmJDYXNlSW5zZW5zaXRpdmUpO3liKGEpfWVsc2UgZihiKTthLmJGaWx0ZXJlZD0hMDt1KGEsbnVsbCwic2VhcmNoIixbYV0pfWZ1bmN0aW9uIHliKGEpe2Zvcih2YXIgYj0KbS5leHQuc2VhcmNoLGM9YS5haURpc3BsYXksZCxlLGY9MCxnPWIubGVuZ3RoO2Y8ZztmKyspe2Zvcih2YXIgaj1bXSxpPTAsbj1jLmxlbmd0aDtpPG47aSsrKWU9Y1tpXSxkPWEuYW9EYXRhW2VdLGJbZl0oYSxkLl9hRmlsdGVyRGF0YSxlLGQuX2FEYXRhLGkpJiZqLnB1c2goZSk7Yy5sZW5ndGg9MDtoLm1lcmdlKGMsail9fWZ1bmN0aW9uIHhiKGEsYixjLGQsZSxmKXtpZigiIiE9PWIpZm9yKHZhciBnPWEuYWlEaXNwbGF5LGQ9UGEoYixkLGUsZiksZT1nLmxlbmd0aC0xOzA8PWU7ZS0tKWI9YS5hb0RhdGFbZ1tlXV0uX2FGaWx0ZXJEYXRhW2NdLGQudGVzdChiKXx8Zy5zcGxpY2UoZSwxKX1mdW5jdGlvbiB3YihhLGIsYyxkLGUsZil7dmFyIGQ9UGEoYixkLGUsZiksZT1hLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoLGY9YS5haURpc3BsYXlNYXN0ZXIsZzswIT09bS5leHQuc2VhcmNoLmxlbmd0aCYmKGM9ITApO2c9emIoYSk7aWYoMD49Yi5sZW5ndGgpYS5haURpc3BsYXk9Zi5zbGljZSgpOwplbHNle2lmKGd8fGN8fGUubGVuZ3RoPmIubGVuZ3RofHwwIT09Yi5pbmRleE9mKGUpfHxhLmJTb3J0ZWQpYS5haURpc3BsYXk9Zi5zbGljZSgpO2I9YS5haURpc3BsYXk7Zm9yKGM9Yi5sZW5ndGgtMTswPD1jO2MtLSlkLnRlc3QoYS5hb0RhdGFbYltjXV0uX3NGaWx0ZXJSb3cpfHxiLnNwbGljZShjLDEpfX1mdW5jdGlvbiBQYShhLGIsYyxkKXthPWI/YTpRYShhKTtjJiYoYT0iXig/PS4qPyIraC5tYXAoYS5tYXRjaCgvIlteIl0rInxbXiBdKy9nKXx8WyIiXSxmdW5jdGlvbihhKXtpZignIic9PT1hLmNoYXJBdCgwKSl2YXIgYj1hLm1hdGNoKC9eIiguKikiJC8pLGE9Yj9iWzFdOmE7cmV0dXJuIGEucmVwbGFjZSgnIicsIiIpfSkuam9pbigiKSg/PS4qPyIpKyIpLiokIik7cmV0dXJuIFJlZ0V4cChhLGQ/ImkiOiIiKX1mdW5jdGlvbiB6YihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjLGQsZSxmLGcsaixpLGgsbD1tLmV4dC50eXBlLnNlYXJjaDtjPSExO2Q9MDtmb3IoZj1hLmFvRGF0YS5sZW5ndGg7ZDwKZjtkKyspaWYoaD1hLmFvRGF0YVtkXSwhaC5fYUZpbHRlckRhdGEpe2o9W107ZT0wO2ZvcihnPWIubGVuZ3RoO2U8ZztlKyspYz1iW2VdLGMuYlNlYXJjaGFibGU/KGk9QihhLGQsZSwiZmlsdGVyIiksbFtjLnNUeXBlXSYmKGk9bFtjLnNUeXBlXShpKSksbnVsbD09PWkmJihpPSIiKSwic3RyaW5nIiE9PXR5cGVvZiBpJiZpLnRvU3RyaW5nJiYoaT1pLnRvU3RyaW5nKCkpKTppPSIiLGkuaW5kZXhPZiYmLTEhPT1pLmluZGV4T2YoIiYiKSYmKHVhLmlubmVySFRNTD1pLGk9WmI/dWEudGV4dENvbnRlbnQ6dWEuaW5uZXJUZXh0KSxpLnJlcGxhY2UmJihpPWkucmVwbGFjZSgvW1xyXG5dL2csIiIpKSxqLnB1c2goaSk7aC5fYUZpbHRlckRhdGE9ajtoLl9zRmlsdGVyUm93PWouam9pbigiICAiKTtjPSEwfXJldHVybiBjfWZ1bmN0aW9uIEFiKGEpe3JldHVybntzZWFyY2g6YS5zU2VhcmNoLHNtYXJ0OmEuYlNtYXJ0LHJlZ2V4OmEuYlJlZ2V4LGNhc2VJbnNlbnNpdGl2ZTphLmJDYXNlSW5zZW5zaXRpdmV9fQpmdW5jdGlvbiBCYihhKXtyZXR1cm57c1NlYXJjaDphLnNlYXJjaCxiU21hcnQ6YS5zbWFydCxiUmVnZXg6YS5yZWdleCxiQ2FzZUluc2Vuc2l0aXZlOmEuY2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiBzYihhKXt2YXIgYj1hLnNUYWJsZUlkLGM9YS5hYW5GZWF0dXJlcy5pLGQ9aCgiPGRpdi8+Iix7ImNsYXNzIjphLm9DbGFzc2VzLnNJbmZvLGlkOiFjP2IrIl9pbmZvIjpudWxsfSk7Y3x8KGEuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46Q2Isc05hbWU6ImluZm9ybWF0aW9uIn0pLGQuYXR0cigicm9sZSIsInN0YXR1cyIpLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLGgoYS5uVGFibGUpLmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGIrIl9pbmZvIikpO3JldHVybiBkWzBdfWZ1bmN0aW9uIENiKGEpe3ZhciBiPWEuYWFuRmVhdHVyZXMuaTtpZigwIT09Yi5sZW5ndGgpe3ZhciBjPWEub0xhbmd1YWdlLGQ9YS5faURpc3BsYXlTdGFydCsxLGU9YS5mbkRpc3BsYXlFbmQoKSxmPWEuZm5SZWNvcmRzVG90YWwoKSwKZz1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxqPWc/Yy5zSW5mbzpjLnNJbmZvRW1wdHk7ZyE9PWYmJihqKz0iICIrYy5zSW5mb0ZpbHRlcmVkKTtqKz1jLnNJbmZvUG9zdEZpeDtqPURiKGEsaik7Yz1jLmZuSW5mb0NhbGxiYWNrO251bGwhPT1jJiYoaj1jLmNhbGwoYS5vSW5zdGFuY2UsYSxkLGUsZixnLGopKTtoKGIpLmh0bWwoail9fWZ1bmN0aW9uIERiKGEsYil7dmFyIGM9YS5mbkZvcm1hdE51bWJlcixkPWEuX2lEaXNwbGF5U3RhcnQrMSxlPWEuX2lEaXNwbGF5TGVuZ3RoLGY9YS5mblJlY29yZHNEaXNwbGF5KCksZz0tMT09PWU7cmV0dXJuIGIucmVwbGFjZSgvX1NUQVJUXy9nLGMuY2FsbChhLGQpKS5yZXBsYWNlKC9fRU5EXy9nLGMuY2FsbChhLGEuZm5EaXNwbGF5RW5kKCkpKS5yZXBsYWNlKC9fTUFYXy9nLGMuY2FsbChhLGEuZm5SZWNvcmRzVG90YWwoKSkpLnJlcGxhY2UoL19UT1RBTF8vZyxjLmNhbGwoYSxmKSkucmVwbGFjZSgvX1BBR0VfL2csYy5jYWxsKGEsZz8xOk1hdGguY2VpbChkLwplKSkpLnJlcGxhY2UoL19QQUdFU18vZyxjLmNhbGwoYSxnPzE6TWF0aC5jZWlsKGYvZSkpKX1mdW5jdGlvbiBnYShhKXt2YXIgYixjLGQ9YS5pSW5pdERpc3BsYXlTdGFydCxlPWEuYW9Db2x1bW5zLGY7Yz1hLm9GZWF0dXJlczt2YXIgZz1hLmJEZWZlckxvYWRpbmc7aWYoYS5iSW5pdGlhbGlzZWQpe25iKGEpO2tiKGEpO2VhKGEsYS5hb0hlYWRlcik7ZWEoYSxhLmFvRm9vdGVyKTtDKGEsITApO2MuYkF1dG9XaWR0aCYmRmEoYSk7Yj0wO2ZvcihjPWUubGVuZ3RoO2I8YztiKyspZj1lW2JdLGYuc1dpZHRoJiYoZi5uVGguc3R5bGUud2lkdGg9eChmLnNXaWR0aCkpO3UoYSxudWxsLCJwcmVJbml0IixbYV0pO1QoYSk7ZT15KGEpO2lmKCJzc3AiIT1lfHxnKSJhamF4Ij09ZT9yYShhLFtdLGZ1bmN0aW9uKGMpe3ZhciBmPXNhKGEsYyk7Zm9yKGI9MDtiPGYubGVuZ3RoO2IrKylOKGEsZltiXSk7YS5pSW5pdERpc3BsYXlTdGFydD1kO1QoYSk7QyhhLCExKTt0YShhLGMpfSxhKTooQyhhLCExKSwKdGEoYSkpfWVsc2Ugc2V0VGltZW91dChmdW5jdGlvbigpe2dhKGEpfSwyMDApfWZ1bmN0aW9uIHRhKGEsYil7YS5fYkluaXRDb21wbGV0ZT0hMDsoYnx8YS5vSW5pdC5hYURhdGEpJiZZKGEpO3UoYSxudWxsLCJwbHVnaW4taW5pdCIsW2EsYl0pO3UoYSwiYW9Jbml0Q29tcGxldGUiLCJpbml0IixbYSxiXSl9ZnVuY3Rpb24gUmEoYSxiKXt2YXIgYz1wYXJzZUludChiLDEwKTthLl9pRGlzcGxheUxlbmd0aD1jO1NhKGEpO3UoYSxudWxsLCJsZW5ndGgiLFthLGNdKX1mdW5jdGlvbiBvYihhKXtmb3IodmFyIGI9YS5vQ2xhc3NlcyxjPWEuc1RhYmxlSWQsZD1hLmFMZW5ndGhNZW51LGU9aC5pc0FycmF5KGRbMF0pLGY9ZT9kWzBdOmQsZD1lP2RbMV06ZCxlPWgoIjxzZWxlY3QvPiIse25hbWU6YysiX2xlbmd0aCIsImFyaWEtY29udHJvbHMiOmMsImNsYXNzIjpiLnNMZW5ndGhTZWxlY3R9KSxnPTAsaj1mLmxlbmd0aDtnPGo7ZysrKWVbMF1bZ109bmV3IE9wdGlvbihkW2ddLGZbZ10pO3ZhciBpPQpoKCI8ZGl2PjxsYWJlbC8+PC9kaXY+IikuYWRkQ2xhc3MoYi5zTGVuZ3RoKTthLmFhbkZlYXR1cmVzLmx8fChpWzBdLmlkPWMrIl9sZW5ndGgiKTtpLmNoaWxkcmVuKCkuYXBwZW5kKGEub0xhbmd1YWdlLnNMZW5ndGhNZW51LnJlcGxhY2UoIl9NRU5VXyIsZVswXS5vdXRlckhUTUwpKTtoKCJzZWxlY3QiLGkpLnZhbChhLl9pRGlzcGxheUxlbmd0aCkuYmluZCgiY2hhbmdlLkRUIixmdW5jdGlvbigpe1JhKGEsaCh0aGlzKS52YWwoKSk7TyhhKX0pO2goYS5uVGFibGUpLmJpbmQoImxlbmd0aC5kdC5EVCIsZnVuY3Rpb24oYixjLGQpe2E9PT1jJiZoKCJzZWxlY3QiLGkpLnZhbChkKX0pO3JldHVybiBpWzBdfWZ1bmN0aW9uIHRiKGEpe3ZhciBiPWEuc1BhZ2luYXRpb25UeXBlLGM9bS5leHQucGFnZXJbYl0sZD0iZnVuY3Rpb24iPT09dHlwZW9mIGMsZT1mdW5jdGlvbihhKXtPKGEpfSxiPWgoIjxkaXYvPiIpLmFkZENsYXNzKGEub0NsYXNzZXMuc1BhZ2luZytiKVswXSxmPWEuYWFuRmVhdHVyZXM7CmR8fGMuZm5Jbml0KGEsYixlKTtmLnB8fChiLmlkPWEuc1RhYmxlSWQrIl9wYWdpbmF0ZSIsYS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpmdW5jdGlvbihhKXtpZihkKXt2YXIgYj1hLl9pRGlzcGxheVN0YXJ0LGk9YS5faURpc3BsYXlMZW5ndGgsaD1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxsPS0xPT09aSxiPWw/MDpNYXRoLmNlaWwoYi9pKSxpPWw/MTpNYXRoLmNlaWwoaC9pKSxoPWMoYixpKSxrLGw9MDtmb3Ioaz1mLnAubGVuZ3RoO2w8aztsKyspTmEoYSwicGFnZUJ1dHRvbiIpKGEsZi5wW2xdLGwsaCxiLGkpfWVsc2UgYy5mblVwZGF0ZShhLGUpfSxzTmFtZToicGFnaW5hdGlvbiJ9KSk7cmV0dXJuIGJ9ZnVuY3Rpb24gVGEoYSxiLGMpe3ZhciBkPWEuX2lEaXNwbGF5U3RhcnQsZT1hLl9pRGlzcGxheUxlbmd0aCxmPWEuZm5SZWNvcmRzRGlzcGxheSgpOzA9PT1mfHwtMT09PWU/ZD0wOiJudW1iZXIiPT09dHlwZW9mIGI/KGQ9YiplLGQ+ZiYmKGQ9MCkpOiJmaXJzdCI9PWI/ZD0wOgoicHJldmlvdXMiPT1iPyhkPTA8PWU/ZC1lOjAsMD5kJiYoZD0wKSk6Im5leHQiPT1iP2QrZTxmJiYoZCs9ZSk6Imxhc3QiPT1iP2Q9TWF0aC5mbG9vcigoZi0xKS9lKSplOkwoYSwwLCJVbmtub3duIHBhZ2luZyBhY3Rpb246ICIrYiw1KTtiPWEuX2lEaXNwbGF5U3RhcnQhPT1kO2EuX2lEaXNwbGF5U3RhcnQ9ZDtiJiYodShhLG51bGwsInBhZ2UiLFthXSksYyYmTyhhKSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcWIoYSl7cmV0dXJuIGgoIjxkaXYvPiIse2lkOiFhLmFhbkZlYXR1cmVzLnI/YS5zVGFibGVJZCsiX3Byb2Nlc3NpbmciOm51bGwsImNsYXNzIjphLm9DbGFzc2VzLnNQcm9jZXNzaW5nfSkuaHRtbChhLm9MYW5ndWFnZS5zUHJvY2Vzc2luZykuaW5zZXJ0QmVmb3JlKGEublRhYmxlKVswXX1mdW5jdGlvbiBDKGEsYil7YS5vRmVhdHVyZXMuYlByb2Nlc3NpbmcmJmgoYS5hYW5GZWF0dXJlcy5yKS5jc3MoImRpc3BsYXkiLGI/ImJsb2NrIjoibm9uZSIpO3UoYSxudWxsLCJwcm9jZXNzaW5nIiwKW2EsYl0pfWZ1bmN0aW9uIHJiKGEpe3ZhciBiPWgoYS5uVGFibGUpO2IuYXR0cigicm9sZSIsImdyaWQiKTt2YXIgYz1hLm9TY3JvbGw7aWYoIiI9PT1jLnNYJiYiIj09PWMuc1kpcmV0dXJuIGEublRhYmxlO3ZhciBkPWMuc1gsZT1jLnNZLGY9YS5vQ2xhc3NlcyxnPWIuY2hpbGRyZW4oImNhcHRpb24iKSxqPWcubGVuZ3RoP2dbMF0uX2NhcHRpb25TaWRlOm51bGwsaT1oKGJbMF0uY2xvbmVOb2RlKCExKSksbj1oKGJbMF0uY2xvbmVOb2RlKCExKSksbD1iLmNoaWxkcmVuKCJ0Zm9vdCIpO2wubGVuZ3RofHwobD1udWxsKTtpPWgoIjxkaXYvPiIseyJjbGFzcyI6Zi5zU2Nyb2xsV3JhcHBlcn0pLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEhlYWR9KS5jc3Moe292ZXJmbG93OiJoaWRkZW4iLHBvc2l0aW9uOiJyZWxhdGl2ZSIsYm9yZGVyOjAsd2lkdGg6ZD8hZD9udWxsOngoZCk6IjEwMCUifSkuYXBwZW5kKGgoIjxkaXYvPiIseyJjbGFzcyI6Zi5zU2Nyb2xsSGVhZElubmVyfSkuY3NzKHsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94IiwKd2lkdGg6Yy5zWElubmVyfHwiMTAwJSJ9KS5hcHBlbmQoaS5yZW1vdmVBdHRyKCJpZCIpLmNzcygibWFyZ2luLWxlZnQiLDApLmFwcGVuZCgidG9wIj09PWo/ZzpudWxsKS5hcHBlbmQoYi5jaGlsZHJlbigidGhlYWQiKSkpKSkuYXBwZW5kKGgoIjxkaXYvPiIseyJjbGFzcyI6Zi5zU2Nyb2xsQm9keX0pLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiYXV0byIsd2lkdGg6IWQ/bnVsbDp4KGQpfSkuYXBwZW5kKGIpKTtsJiZpLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEZvb3R9KS5jc3Moe292ZXJmbG93OiJoaWRkZW4iLGJvcmRlcjowLHdpZHRoOmQ/IWQ/bnVsbDp4KGQpOiIxMDAlIn0pLmFwcGVuZChoKCI8ZGl2Lz4iLHsiY2xhc3MiOmYuc1Njcm9sbEZvb3RJbm5lcn0pLmFwcGVuZChuLnJlbW92ZUF0dHIoImlkIikuY3NzKCJtYXJnaW4tbGVmdCIsMCkuYXBwZW5kKCJib3R0b20iPT09aj9nOm51bGwpLmFwcGVuZChiLmNoaWxkcmVuKCJ0Zm9vdCIpKSkpKTsKdmFyIGI9aS5jaGlsZHJlbigpLGs9YlswXSxmPWJbMV0sdD1sP2JbMl06bnVsbDtpZihkKWgoZikub24oInNjcm9sbC5EVCIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLnNjcm9sbExlZnQ7ay5zY3JvbGxMZWZ0PWE7bCYmKHQuc2Nyb2xsTGVmdD1hKX0pO2goZikuY3NzKGUmJmMuYkNvbGxhcHNlPyJtYXgtaGVpZ2h0IjoiaGVpZ2h0IixlKTthLm5TY3JvbGxIZWFkPWs7YS5uU2Nyb2xsQm9keT1mO2EublNjcm9sbEZvb3Q9dDthLmFvRHJhd0NhbGxiYWNrLnB1c2goe2ZuOmthLHNOYW1lOiJzY3JvbGxpbmcifSk7cmV0dXJuIGlbMF19ZnVuY3Rpb24ga2EoYSl7dmFyIGI9YS5vU2Nyb2xsLGM9Yi5zWCxkPWIuc1hJbm5lcixlPWIuc1ksYj1iLmlCYXJXaWR0aCxmPWgoYS5uU2Nyb2xsSGVhZCksZz1mWzBdLnN0eWxlLGo9Zi5jaGlsZHJlbigiZGl2IiksaT1qWzBdLnN0eWxlLG49ai5jaGlsZHJlbigidGFibGUiKSxqPWEublNjcm9sbEJvZHksbD1oKGopLHE9ai5zdHlsZSx0PWgoYS5uU2Nyb2xsRm9vdCkuY2hpbGRyZW4oImRpdiIpLAptPXQuY2hpbGRyZW4oInRhYmxlIiksbz1oKGEublRIZWFkKSxGPWgoYS5uVGFibGUpLHA9RlswXSxyPXAuc3R5bGUsdT1hLm5URm9vdD9oKGEublRGb290KTpudWxsLEViPWEub0Jyb3dzZXIsVWE9RWIuYlNjcm9sbE92ZXJzaXplLHM9RyhhLmFvQ29sdW1ucywiblRoIiksUCx2LHcseSx6PVtdLEE9W10sQj1bXSxDPVtdLEQsRT1mdW5jdGlvbihhKXthPWEuc3R5bGU7YS5wYWRkaW5nVG9wPSIwIjthLnBhZGRpbmdCb3R0b209IjAiO2EuYm9yZGVyVG9wV2lkdGg9IjAiO2EuYm9yZGVyQm90dG9tV2lkdGg9IjAiO2EuaGVpZ2h0PTB9O3Y9ai5zY3JvbGxIZWlnaHQ+ai5jbGllbnRIZWlnaHQ7aWYoYS5zY3JvbGxCYXJWaXMhPT12JiZhLnNjcm9sbEJhclZpcyE9PWspYS5zY3JvbGxCYXJWaXM9dixZKGEpO2Vsc2V7YS5zY3JvbGxCYXJWaXM9djtGLmNoaWxkcmVuKCJ0aGVhZCwgdGZvb3QiKS5yZW1vdmUoKTt1JiYodz11LmNsb25lKCkucHJlcGVuZFRvKEYpLFA9dS5maW5kKCJ0ciIpLHc9CncuZmluZCgidHIiKSk7eT1vLmNsb25lKCkucHJlcGVuZFRvKEYpO289by5maW5kKCJ0ciIpO3Y9eS5maW5kKCJ0ciIpO3kuZmluZCgidGgsIHRkIikucmVtb3ZlQXR0cigidGFiaW5kZXgiKTtjfHwocS53aWR0aD0iMTAwJSIsZlswXS5zdHlsZS53aWR0aD0iMTAwJSIpO2guZWFjaChxYShhLHkpLGZ1bmN0aW9uKGIsYyl7RD1aKGEsYik7Yy5zdHlsZS53aWR0aD1hLmFvQ29sdW1uc1tEXS5zV2lkdGh9KTt1JiZKKGZ1bmN0aW9uKGEpe2Euc3R5bGUud2lkdGg9IiJ9LHcpO2Y9Ri5vdXRlcldpZHRoKCk7aWYoIiI9PT1jKXtyLndpZHRoPSIxMDAlIjtpZihVYSYmKEYuZmluZCgidGJvZHkiKS5oZWlnaHQoKT5qLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PWwuY3NzKCJvdmVyZmxvdy15IikpKXIud2lkdGg9eChGLm91dGVyV2lkdGgoKS1iKTtmPUYub3V0ZXJXaWR0aCgpfWVsc2UiIiE9PWQmJihyLndpZHRoPXgoZCksZj1GLm91dGVyV2lkdGgoKSk7SihFLHYpO0ooZnVuY3Rpb24oYSl7Qi5wdXNoKGEuaW5uZXJIVE1MKTsKei5wdXNoKHgoaChhKS5jc3MoIndpZHRoIikpKX0sdik7SihmdW5jdGlvbihhLGIpe2lmKGguaW5BcnJheShhLHMpIT09LTEpYS5zdHlsZS53aWR0aD16W2JdfSxvKTtoKHYpLmhlaWdodCgwKTt1JiYoSihFLHcpLEooZnVuY3Rpb24oYSl7Qy5wdXNoKGEuaW5uZXJIVE1MKTtBLnB1c2goeChoKGEpLmNzcygid2lkdGgiKSkpfSx3KSxKKGZ1bmN0aW9uKGEsYil7YS5zdHlsZS53aWR0aD1BW2JdfSxQKSxoKHcpLmhlaWdodCgwKSk7SihmdW5jdGlvbihhLGIpe2EuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJkYXRhVGFibGVzX3NpemluZyIgc3R5bGU9ImhlaWdodDowO292ZXJmbG93OmhpZGRlbjsiPicrQltiXSsiPC9kaXY+IjthLnN0eWxlLndpZHRoPXpbYl19LHYpO3UmJkooZnVuY3Rpb24oYSxiKXthLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZGF0YVRhYmxlc19zaXppbmciIHN0eWxlPSJoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47Ij4nK0NbYl0rIjwvZGl2PiI7YS5zdHlsZS53aWR0aD0KQVtiXX0sdyk7aWYoRi5vdXRlcldpZHRoKCk8Zil7UD1qLnNjcm9sbEhlaWdodD5qLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PWwuY3NzKCJvdmVyZmxvdy15Iik/ZitiOmY7aWYoVWEmJihqLnNjcm9sbEhlaWdodD5qLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PWwuY3NzKCJvdmVyZmxvdy15IikpKXIud2lkdGg9eChQLWIpOygiIj09PWN8fCIiIT09ZCkmJkwoYSwxLCJQb3NzaWJsZSBjb2x1bW4gbWlzYWxpZ25tZW50Iiw2KX1lbHNlIFA9IjEwMCUiO3Eud2lkdGg9eChQKTtnLndpZHRoPXgoUCk7dSYmKGEublNjcm9sbEZvb3Quc3R5bGUud2lkdGg9eChQKSk7IWUmJlVhJiYocS5oZWlnaHQ9eChwLm9mZnNldEhlaWdodCtiKSk7Yz1GLm91dGVyV2lkdGgoKTtuWzBdLnN0eWxlLndpZHRoPXgoYyk7aS53aWR0aD14KGMpO2Q9Ri5oZWlnaHQoKT5qLmNsaWVudEhlaWdodHx8InNjcm9sbCI9PWwuY3NzKCJvdmVyZmxvdy15Iik7ZT0icGFkZGluZyIrKEViLmJTY3JvbGxiYXJMZWZ0PyJMZWZ0IjoKIlJpZ2h0Iik7aVtlXT1kP2IrInB4IjoiMHB4Ijt1JiYobVswXS5zdHlsZS53aWR0aD14KGMpLHRbMF0uc3R5bGUud2lkdGg9eChjKSx0WzBdLnN0eWxlW2VdPWQ/YisicHgiOiIwcHgiKTtGLmNoaWxkcmVuKCJjb2xncm91cCIpLmluc2VydEJlZm9yZShGLmNoaWxkcmVuKCJ0aGVhZCIpKTtsLnNjcm9sbCgpO2lmKChhLmJTb3J0ZWR8fGEuYkZpbHRlcmVkKSYmIWEuX2RyYXdIb2xkKWouc2Nyb2xsVG9wPTB9fWZ1bmN0aW9uIEooYSxiLGMpe2Zvcih2YXIgZD0wLGU9MCxmPWIubGVuZ3RoLGcsajtlPGY7KXtnPWJbZV0uZmlyc3RDaGlsZDtmb3Ioaj1jP2NbZV0uZmlyc3RDaGlsZDpudWxsO2c7KTE9PT1nLm5vZGVUeXBlJiYoYz9hKGcsaixkKTphKGcsZCksZCsrKSxnPWcubmV4dFNpYmxpbmcsaj1jP2oubmV4dFNpYmxpbmc6bnVsbDtlKyt9fWZ1bmN0aW9uIEZhKGEpe3ZhciBiPWEublRhYmxlLGM9YS5hb0NvbHVtbnMsZD1hLm9TY3JvbGwsZT1kLnNZLGY9ZC5zWCxnPWQuc1hJbm5lciwKaj1jLmxlbmd0aCxpPWxhKGEsImJWaXNpYmxlIiksbj1oKCJ0aCIsYS5uVEhlYWQpLGw9Yi5nZXRBdHRyaWJ1dGUoIndpZHRoIiksaz1iLnBhcmVudE5vZGUsdD0hMSxtLG8scD1hLm9Ccm93c2VyLGQ9cC5iU2Nyb2xsT3ZlcnNpemU7KG09Yi5zdHlsZS53aWR0aCkmJi0xIT09bS5pbmRleE9mKCIlIikmJihsPW0pO2ZvcihtPTA7bTxpLmxlbmd0aDttKyspbz1jW2lbbV1dLG51bGwhPT1vLnNXaWR0aCYmKG8uc1dpZHRoPUZiKG8uc1dpZHRoT3JpZyxrKSx0PSEwKTtpZihkfHwhdCYmIWYmJiFlJiZqPT1hYShhKSYmaj09bi5sZW5ndGgpZm9yKG09MDttPGo7bSsrKWk9WihhLG0pLG51bGwhPT1pJiYoY1tpXS5zV2lkdGg9eChuLmVxKG0pLndpZHRoKCkpKTtlbHNle2o9aChiKS5jbG9uZSgpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLnJlbW92ZUF0dHIoImlkIik7ai5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZSgpO3ZhciByPWgoIjx0ci8+IikuYXBwZW5kVG8oai5maW5kKCJ0Ym9keSIpKTsKai5maW5kKCJ0aGVhZCwgdGZvb3QiKS5yZW1vdmUoKTtqLmFwcGVuZChoKGEublRIZWFkKS5jbG9uZSgpKS5hcHBlbmQoaChhLm5URm9vdCkuY2xvbmUoKSk7ai5maW5kKCJ0Zm9vdCB0aCwgdGZvb3QgdGQiKS5jc3MoIndpZHRoIiwiIik7bj1xYShhLGouZmluZCgidGhlYWQiKVswXSk7Zm9yKG09MDttPGkubGVuZ3RoO20rKylvPWNbaVttXV0sblttXS5zdHlsZS53aWR0aD1udWxsIT09by5zV2lkdGhPcmlnJiYiIiE9PW8uc1dpZHRoT3JpZz94KG8uc1dpZHRoT3JpZyk6IiIsby5zV2lkdGhPcmlnJiZmJiZoKG5bbV0pLmFwcGVuZChoKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOm8uc1dpZHRoT3JpZyxtYXJnaW46MCxwYWRkaW5nOjAsYm9yZGVyOjAsaGVpZ2h0OjF9KSk7aWYoYS5hb0RhdGEubGVuZ3RoKWZvcihtPTA7bTxpLmxlbmd0aDttKyspdD1pW21dLG89Y1t0XSxoKEdiKGEsdCkpLmNsb25lKCExKS5hcHBlbmQoby5zQ29udGVudFBhZGRpbmcpLmFwcGVuZFRvKHIpO2goIltuYW1lXSIsCmopLnJlbW92ZUF0dHIoIm5hbWUiKTtvPWgoIjxkaXYvPiIpLmNzcyhmfHxlP3twb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxoZWlnaHQ6MSxyaWdodDowLG92ZXJmbG93OiJoaWRkZW4ifTp7fSkuYXBwZW5kKGopLmFwcGVuZFRvKGspO2YmJmc/ai53aWR0aChnKTpmPyhqLmNzcygid2lkdGgiLCJhdXRvIiksai5yZW1vdmVBdHRyKCJ3aWR0aCIpLGoud2lkdGgoKTxrLmNsaWVudFdpZHRoJiZsJiZqLndpZHRoKGsuY2xpZW50V2lkdGgpKTplP2oud2lkdGgoay5jbGllbnRXaWR0aCk6bCYmai53aWR0aChsKTtmb3IobT1lPTA7bTxpLmxlbmd0aDttKyspaz1oKG5bbV0pLGc9ay5vdXRlcldpZHRoKCktay53aWR0aCgpLGs9cC5iQm91bmRpbmc/TWF0aC5jZWlsKG5bbV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpOmsub3V0ZXJXaWR0aCgpLGUrPWssY1tpW21dXS5zV2lkdGg9eChrLWcpO2Iuc3R5bGUud2lkdGg9eChlKTtvLnJlbW92ZSgpfWwmJihiLnN0eWxlLndpZHRoPQp4KGwpKTtpZigobHx8ZikmJiFhLl9yZXN6RXZ0KWI9ZnVuY3Rpb24oKXtoKEQpLmJpbmQoInJlc2l6ZS5EVC0iK2Euc0luc3RhbmNlLE9hKGZ1bmN0aW9uKCl7WShhKX0pKX0sZD9zZXRUaW1lb3V0KGIsMUUzKTpiKCksYS5fcmVzekV2dD0hMH1mdW5jdGlvbiBGYihhLGIpe2lmKCFhKXJldHVybiAwO3ZhciBjPWgoIjxkaXYvPiIpLmNzcygid2lkdGgiLHgoYSkpLmFwcGVuZFRvKGJ8fEkuYm9keSksZD1jWzBdLm9mZnNldFdpZHRoO2MucmVtb3ZlKCk7cmV0dXJuIGR9ZnVuY3Rpb24gR2IoYSxiKXt2YXIgYz1IYihhLGIpO2lmKDA+YylyZXR1cm4gbnVsbDt2YXIgZD1hLmFvRGF0YVtjXTtyZXR1cm4hZC5uVHI/aCgiPHRkLz4iKS5odG1sKEIoYSxjLGIsImRpc3BsYXkiKSlbMF06ZC5hbkNlbGxzW2JdfWZ1bmN0aW9uIEhiKGEsYil7Zm9yKHZhciBjLGQ9LTEsZT0tMSxmPTAsZz1hLmFvRGF0YS5sZW5ndGg7ZjxnO2YrKyljPUIoYSxmLGIsImRpc3BsYXkiKSsiIixjPWMucmVwbGFjZSgkYiwKIiIpLGM9Yy5yZXBsYWNlKC8mbmJzcDsvZywiICIpLGMubGVuZ3RoPmQmJihkPWMubGVuZ3RoLGU9Zik7cmV0dXJuIGV9ZnVuY3Rpb24geChhKXtyZXR1cm4gbnVsbD09PWE/IjBweCI6Im51bWJlciI9PXR5cGVvZiBhPzA+YT8iMHB4IjphKyJweCI6YS5tYXRjaCgvXGQkLyk/YSsicHgiOmF9ZnVuY3Rpb24gVihhKXt2YXIgYixjLGQ9W10sZT1hLmFvQ29sdW1ucyxmLGcsaixpO2I9YS5hYVNvcnRpbmdGaXhlZDtjPWguaXNQbGFpbk9iamVjdChiKTt2YXIgbj1bXTtmPWZ1bmN0aW9uKGEpe2EubGVuZ3RoJiYhaC5pc0FycmF5KGFbMF0pP24ucHVzaChhKTpoLm1lcmdlKG4sYSl9O2guaXNBcnJheShiKSYmZihiKTtjJiZiLnByZSYmZihiLnByZSk7ZihhLmFhU29ydGluZyk7YyYmYi5wb3N0JiZmKGIucG9zdCk7Zm9yKGE9MDthPG4ubGVuZ3RoO2ErKyl7aT1uW2FdWzBdO2Y9ZVtpXS5hRGF0YVNvcnQ7Yj0wO2ZvcihjPWYubGVuZ3RoO2I8YztiKyspZz1mW2JdLGo9ZVtnXS5zVHlwZXx8CiJzdHJpbmciLG5bYV0uX2lkeD09PWsmJihuW2FdLl9pZHg9aC5pbkFycmF5KG5bYV1bMV0sZVtnXS5hc1NvcnRpbmcpKSxkLnB1c2goe3NyYzppLGNvbDpnLGRpcjpuW2FdWzFdLGluZGV4Om5bYV0uX2lkeCx0eXBlOmosZm9ybWF0dGVyOm0uZXh0LnR5cGUub3JkZXJbaisiLXByZSJdfSl9cmV0dXJuIGR9ZnVuY3Rpb24gbWIoYSl7dmFyIGIsYyxkPVtdLGU9bS5leHQudHlwZS5vcmRlcixmPWEuYW9EYXRhLGc9MCxqLGk9YS5haURpc3BsYXlNYXN0ZXIsaDtHYShhKTtoPVYoYSk7Yj0wO2ZvcihjPWgubGVuZ3RoO2I8YztiKyspaj1oW2JdLGouZm9ybWF0dGVyJiZnKyssSWIoYSxqLmNvbCk7aWYoInNzcCIhPXkoYSkmJjAhPT1oLmxlbmd0aCl7Yj0wO2ZvcihjPWkubGVuZ3RoO2I8YztiKyspZFtpW2JdXT1iO2c9PT1oLmxlbmd0aD9pLnNvcnQoZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGcsaixpPWgubGVuZ3RoLGs9ZlthXS5fYVNvcnREYXRhLG09ZltiXS5fYVNvcnREYXRhO2ZvcihnPQowO2c8aTtnKyspaWYoaj1oW2ddLGM9a1tqLmNvbF0sZT1tW2ouY29sXSxjPWM8ZT8tMTpjPmU/MTowLDAhPT1jKXJldHVybiJhc2MiPT09ai5kaXI/YzotYztjPWRbYV07ZT1kW2JdO3JldHVybiBjPGU/LTE6Yz5lPzE6MH0pOmkuc29ydChmdW5jdGlvbihhLGIpe3ZhciBjLGcsaixpLGs9aC5sZW5ndGgsbT1mW2FdLl9hU29ydERhdGEscD1mW2JdLl9hU29ydERhdGE7Zm9yKGo9MDtqPGs7aisrKWlmKGk9aFtqXSxjPW1baS5jb2xdLGc9cFtpLmNvbF0saT1lW2kudHlwZSsiLSIraS5kaXJdfHxlWyJzdHJpbmctIitpLmRpcl0sYz1pKGMsZyksMCE9PWMpcmV0dXJuIGM7Yz1kW2FdO2c9ZFtiXTtyZXR1cm4gYzxnPy0xOmM+Zz8xOjB9KX1hLmJTb3J0ZWQ9ITB9ZnVuY3Rpb24gSmIoYSl7Zm9yKHZhciBiLGMsZD1hLmFvQ29sdW1ucyxlPVYoYSksYT1hLm9MYW5ndWFnZS5vQXJpYSxmPTAsZz1kLmxlbmd0aDtmPGc7ZisrKXtjPWRbZl07dmFyIGo9Yy5hc1NvcnRpbmc7Yj1jLnNUaXRsZS5yZXBsYWNlKC88Lio/Pi9nLAoiIik7dmFyIGk9Yy5uVGg7aS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtc29ydCIpO2MuYlNvcnRhYmxlJiYoMDxlLmxlbmd0aCYmZVswXS5jb2w9PWY/KGkuc2V0QXR0cmlidXRlKCJhcmlhLXNvcnQiLCJhc2MiPT1lWzBdLmRpcj8iYXNjZW5kaW5nIjoiZGVzY2VuZGluZyIpLGM9altlWzBdLmluZGV4KzFdfHxqWzBdKTpjPWpbMF0sYis9ImFzYyI9PT1jP2Euc1NvcnRBc2NlbmRpbmc6YS5zU29ydERlc2NlbmRpbmcpO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixiKX19ZnVuY3Rpb24gVmEoYSxiLGMsZCl7dmFyIGU9YS5hYVNvcnRpbmcsZj1hLmFvQ29sdW1uc1tiXS5hc1NvcnRpbmcsZz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuX2lkeDtjPT09ayYmKGM9aC5pbkFycmF5KGFbMV0sZikpO3JldHVybiBjKzE8Zi5sZW5ndGg/YysxOmI/bnVsbDowfTsibnVtYmVyIj09PXR5cGVvZiBlWzBdJiYoZT1hLmFhU29ydGluZz1bZV0pO2MmJmEub0ZlYXR1cmVzLmJTb3J0TXVsdGk/KGM9aC5pbkFycmF5KGIsCkcoZSwiMCIpKSwtMSE9PWM/KGI9ZyhlW2NdLCEwKSxudWxsPT09YiYmMT09PWUubGVuZ3RoJiYoYj0wKSxudWxsPT09Yj9lLnNwbGljZShjLDEpOihlW2NdWzFdPWZbYl0sZVtjXS5faWR4PWIpKTooZS5wdXNoKFtiLGZbMF0sMF0pLGVbZS5sZW5ndGgtMV0uX2lkeD0wKSk6ZS5sZW5ndGgmJmVbMF1bMF09PWI/KGI9ZyhlWzBdKSxlLmxlbmd0aD0xLGVbMF1bMV09ZltiXSxlWzBdLl9pZHg9Yik6KGUubGVuZ3RoPTAsZS5wdXNoKFtiLGZbMF1dKSxlWzBdLl9pZHg9MCk7VChhKTsiZnVuY3Rpb24iPT10eXBlb2YgZCYmZChhKX1mdW5jdGlvbiBNYShhLGIsYyxkKXt2YXIgZT1hLmFvQ29sdW1uc1tjXTtXYShiLHt9LGZ1bmN0aW9uKGIpeyExIT09ZS5iU29ydGFibGUmJihhLm9GZWF0dXJlcy5iUHJvY2Vzc2luZz8oQyhhLCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VmEoYSxjLGIuc2hpZnRLZXksZCk7InNzcCIhPT15KGEpJiZDKGEsITEpfSwwKSk6VmEoYSxjLGIuc2hpZnRLZXksZCkpfSl9CmZ1bmN0aW9uIHZhKGEpe3ZhciBiPWEuYUxhc3RTb3J0LGM9YS5vQ2xhc3Nlcy5zU29ydENvbHVtbixkPVYoYSksZT1hLm9GZWF0dXJlcyxmLGc7aWYoZS5iU29ydCYmZS5iU29ydENsYXNzZXMpe2U9MDtmb3IoZj1iLmxlbmd0aDtlPGY7ZSsrKWc9YltlXS5zcmMsaChHKGEuYW9EYXRhLCJhbkNlbGxzIixnKSkucmVtb3ZlQ2xhc3MoYysoMj5lP2UrMTozKSk7ZT0wO2ZvcihmPWQubGVuZ3RoO2U8ZjtlKyspZz1kW2VdLnNyYyxoKEcoYS5hb0RhdGEsImFuQ2VsbHMiLGcpKS5hZGRDbGFzcyhjKygyPmU/ZSsxOjMpKX1hLmFMYXN0U29ydD1kfWZ1bmN0aW9uIEliKGEsYil7dmFyIGM9YS5hb0NvbHVtbnNbYl0sZD1tLmV4dC5vcmRlcltjLnNTb3J0RGF0YVR5cGVdLGU7ZCYmKGU9ZC5jYWxsKGEub0luc3RhbmNlLGEsYiwkKGEsYikpKTtmb3IodmFyIGYsZz1tLmV4dC50eXBlLm9yZGVyW2Muc1R5cGUrIi1wcmUiXSxqPTAsaT1hLmFvRGF0YS5sZW5ndGg7ajxpO2orKylpZihjPWEuYW9EYXRhW2pdLApjLl9hU29ydERhdGF8fChjLl9hU29ydERhdGE9W10pLCFjLl9hU29ydERhdGFbYl18fGQpZj1kP2Vbal06QihhLGosYiwic29ydCIpLGMuX2FTb3J0RGF0YVtiXT1nP2coZik6Zn1mdW5jdGlvbiB3YShhKXtpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlJiYhYS5iRGVzdHJveWluZyl7dmFyIGI9e3RpbWU6K25ldyBEYXRlLHN0YXJ0OmEuX2lEaXNwbGF5U3RhcnQsbGVuZ3RoOmEuX2lEaXNwbGF5TGVuZ3RoLG9yZGVyOmguZXh0ZW5kKCEwLFtdLGEuYWFTb3J0aW5nKSxzZWFyY2g6QWIoYS5vUHJldmlvdXNTZWFyY2gpLGNvbHVtbnM6aC5tYXAoYS5hb0NvbHVtbnMsZnVuY3Rpb24oYixkKXtyZXR1cm57dmlzaWJsZTpiLmJWaXNpYmxlLHNlYXJjaDpBYihhLmFvUHJlU2VhcmNoQ29sc1tkXSl9fSl9O3UoYSwiYW9TdGF0ZVNhdmVQYXJhbXMiLCJzdGF0ZVNhdmVQYXJhbXMiLFthLGJdKTthLm9TYXZlZFN0YXRlPWI7YS5mblN0YXRlU2F2ZUNhbGxiYWNrLmNhbGwoYS5vSW5zdGFuY2UsYSwKYil9fWZ1bmN0aW9uIEtiKGEpe3ZhciBiLGMsZD1hLmFvQ29sdW1ucztpZihhLm9GZWF0dXJlcy5iU3RhdGVTYXZlKXt2YXIgZT1hLmZuU3RhdGVMb2FkQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhKTtpZihlJiZlLnRpbWUmJihiPXUoYSwiYW9TdGF0ZUxvYWRQYXJhbXMiLCJzdGF0ZUxvYWRQYXJhbXMiLFthLGVdKSwtMT09PWguaW5BcnJheSghMSxiKSYmKGI9YS5pU3RhdGVEdXJhdGlvbiwhKDA8YiYmZS50aW1lPCtuZXcgRGF0ZS0xRTMqYikmJmQubGVuZ3RoPT09ZS5jb2x1bW5zLmxlbmd0aCkpKXthLm9Mb2FkZWRTdGF0ZT1oLmV4dGVuZCghMCx7fSxlKTtlLnN0YXJ0IT09ayYmKGEuX2lEaXNwbGF5U3RhcnQ9ZS5zdGFydCxhLmlJbml0RGlzcGxheVN0YXJ0PWUuc3RhcnQpO2UubGVuZ3RoIT09ayYmKGEuX2lEaXNwbGF5TGVuZ3RoPWUubGVuZ3RoKTtlLm9yZGVyIT09ayYmKGEuYWFTb3J0aW5nPVtdLGguZWFjaChlLm9yZGVyLGZ1bmN0aW9uKGIsYyl7YS5hYVNvcnRpbmcucHVzaChjWzBdPj0KZC5sZW5ndGg/WzAsY1sxXV06Yyl9KSk7ZS5zZWFyY2ghPT1rJiZoLmV4dGVuZChhLm9QcmV2aW91c1NlYXJjaCxCYihlLnNlYXJjaCkpO2I9MDtmb3IoYz1lLmNvbHVtbnMubGVuZ3RoO2I8YztiKyspe3ZhciBmPWUuY29sdW1uc1tiXTtmLnZpc2libGUhPT1rJiYoZFtiXS5iVmlzaWJsZT1mLnZpc2libGUpO2Yuc2VhcmNoIT09ayYmaC5leHRlbmQoYS5hb1ByZVNlYXJjaENvbHNbYl0sQmIoZi5zZWFyY2gpKX11KGEsImFvU3RhdGVMb2FkZWQiLCJzdGF0ZUxvYWRlZCIsW2EsZV0pfX19ZnVuY3Rpb24geGEoYSl7dmFyIGI9bS5zZXR0aW5ncyxhPWguaW5BcnJheShhLEcoYiwiblRhYmxlIikpO3JldHVybi0xIT09YT9iW2FdOm51bGx9ZnVuY3Rpb24gTChhLGIsYyxkKXtjPSJEYXRhVGFibGVzIHdhcm5pbmc6ICIrKGE/InRhYmxlIGlkPSIrYS5zVGFibGVJZCsiIC0gIjoiIikrYztkJiYoYys9Ii4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBlcnJvciwgcGxlYXNlIHNlZSBodHRwOi8vZGF0YXRhYmxlcy5uZXQvdG4vIisKZCk7aWYoYilELmNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhjKTtlbHNlIGlmKGI9bS5leHQsYj1iLnNFcnJNb2RlfHxiLmVyck1vZGUsYSYmdShhLG51bGwsImVycm9yIixbYSxkLGNdKSwiYWxlcnQiPT1iKWFsZXJ0KGMpO2Vsc2V7aWYoInRocm93Ij09Yil0aHJvdyBFcnJvcihjKTsiZnVuY3Rpb24iPT10eXBlb2YgYiYmYihhLGQsYyl9fWZ1bmN0aW9uIEUoYSxiLGMsZCl7aC5pc0FycmF5KGMpP2guZWFjaChjLGZ1bmN0aW9uKGMsZCl7aC5pc0FycmF5KGQpP0UoYSxiLGRbMF0sZFsxXSk6RShhLGIsZCl9KTooZD09PWsmJihkPWMpLGJbY10hPT1rJiYoYVtkXT1iW2NdKSl9ZnVuY3Rpb24gTGIoYSxiLGMpe3ZhciBkLGU7Zm9yKGUgaW4gYiliLmhhc093blByb3BlcnR5KGUpJiYoZD1iW2VdLGguaXNQbGFpbk9iamVjdChkKT8oaC5pc1BsYWluT2JqZWN0KGFbZV0pfHwoYVtlXT17fSksaC5leHRlbmQoITAsYVtlXSxkKSk6YVtlXT1jJiYiZGF0YSIhPT1lJiYiYWFEYXRhIiE9PQplJiZoLmlzQXJyYXkoZCk/ZC5zbGljZSgpOmQpO3JldHVybiBhfWZ1bmN0aW9uIFdhKGEsYixjKXtoKGEpLmJpbmQoImNsaWNrLkRUIixiLGZ1bmN0aW9uKGIpe2EuYmx1cigpO2MoYil9KS5iaW5kKCJrZXlwcmVzcy5EVCIsYixmdW5jdGlvbihhKXsxMz09PWEud2hpY2gmJihhLnByZXZlbnREZWZhdWx0KCksYyhhKSl9KS5iaW5kKCJzZWxlY3RzdGFydC5EVCIsZnVuY3Rpb24oKXtyZXR1cm4hMX0pfWZ1bmN0aW9uIHooYSxiLGMsZCl7YyYmYVtiXS5wdXNoKHtmbjpjLHNOYW1lOmR9KX1mdW5jdGlvbiB1KGEsYixjLGQpe3ZhciBlPVtdO2ImJihlPWgubWFwKGFbYl0uc2xpY2UoKS5yZXZlcnNlKCksZnVuY3Rpb24oYil7cmV0dXJuIGIuZm4uYXBwbHkoYS5vSW5zdGFuY2UsZCl9KSk7bnVsbCE9PWMmJihiPWguRXZlbnQoYysiLmR0IiksaChhLm5UYWJsZSkudHJpZ2dlcihiLGQpLGUucHVzaChiLnJlc3VsdCkpO3JldHVybiBlfWZ1bmN0aW9uIFNhKGEpe3ZhciBiPWEuX2lEaXNwbGF5U3RhcnQsCmM9YS5mbkRpc3BsYXlFbmQoKSxkPWEuX2lEaXNwbGF5TGVuZ3RoO2I+PWMmJihiPWMtZCk7Yi09YiVkO2lmKC0xPT09ZHx8MD5iKWI9MDthLl9pRGlzcGxheVN0YXJ0PWJ9ZnVuY3Rpb24gTmEoYSxiKXt2YXIgYz1hLnJlbmRlcmVyLGQ9bS5leHQucmVuZGVyZXJbYl07cmV0dXJuIGguaXNQbGFpbk9iamVjdChjKSYmY1tiXT9kW2NbYl1dfHxkLl86InN0cmluZyI9PT10eXBlb2YgYz9kW2NdfHxkLl86ZC5ffWZ1bmN0aW9uIHkoYSl7cmV0dXJuIGEub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPyJzc3AiOmEuYWpheHx8YS5zQWpheFNvdXJjZT8iYWpheCI6ImRvbSJ9ZnVuY3Rpb24geWEoYSxiKXt2YXIgYz1bXSxjPU1iLm51bWJlcnNfbGVuZ3RoLGQ9TWF0aC5mbG9vcihjLzIpO2I8PWM/Yz1XKDAsYik6YTw9ZD8oYz1XKDAsYy0yKSxjLnB1c2goImVsbGlwc2lzIiksYy5wdXNoKGItMSkpOihhPj1iLTEtZD9jPVcoYi0oYy0yKSxiKTooYz1XKGEtZCsyLGErZC0xKSxjLnB1c2goImVsbGlwc2lzIiksCmMucHVzaChiLTEpKSxjLnNwbGljZSgwLDAsImVsbGlwc2lzIiksYy5zcGxpY2UoMCwwLDApKTtjLkRUX2VsPSJzcGFuIjtyZXR1cm4gY31mdW5jdGlvbiBkYihhKXtoLmVhY2goe251bTpmdW5jdGlvbihiKXtyZXR1cm4gemEoYixhKX0sIm51bS1mbXQiOmZ1bmN0aW9uKGIpe3JldHVybiB6YShiLGEsWGEpfSwiaHRtbC1udW0iOmZ1bmN0aW9uKGIpe3JldHVybiB6YShiLGEsQWEpfSwiaHRtbC1udW0tZm10IjpmdW5jdGlvbihiKXtyZXR1cm4gemEoYixhLEFhLFhhKX19LGZ1bmN0aW9uKGIsYyl7di50eXBlLm9yZGVyW2IrYSsiLXByZSJdPWM7Yi5tYXRjaCgvXmh0bWxcLS8pJiYodi50eXBlLnNlYXJjaFtiK2FdPXYudHlwZS5zZWFyY2guaHRtbCl9KX1mdW5jdGlvbiBOYihhKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj1beGEodGhpc1ttLmV4dC5pQXBpSW5kZXhdKV0uY29uY2F0KEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpO3JldHVybiBtLmV4dC5pbnRlcm5hbFthXS5hcHBseSh0aGlzLApiKX19dmFyIG09ZnVuY3Rpb24oYSl7dGhpcy4kPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYXBpKCEwKS4kKGEsYil9O3RoaXMuXz1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmFwaSghMCkucm93cyhhLGIpLmRhdGEoKX07dGhpcy5hcGk9ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bmV3IHIoeGEodGhpc1t2LmlBcGlJbmRleF0pKTpuZXcgcih0aGlzKX07dGhpcy5mbkFkZERhdGE9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmFwaSghMCksZD1oLmlzQXJyYXkoYSkmJihoLmlzQXJyYXkoYVswXSl8fGguaXNQbGFpbk9iamVjdChhWzBdKSk/Yy5yb3dzLmFkZChhKTpjLnJvdy5hZGQoYSk7KGI9PT1rfHxiKSYmYy5kcmF3KCk7cmV0dXJuIGQuZmxhdHRlbigpLnRvQXJyYXkoKX07dGhpcy5mbkFkanVzdENvbHVtblNpemluZz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmFwaSghMCkuY29sdW1ucy5hZGp1c3QoKSxjPWIuc2V0dGluZ3MoKVswXSxkPWMub1Njcm9sbDthPT09a3x8YT9iLmRyYXcoITEpOgooIiIhPT1kLnNYfHwiIiE9PWQuc1kpJiZrYShjKX07dGhpcy5mbkNsZWFyVGFibGU9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApLmNsZWFyKCk7KGE9PT1rfHxhKSYmYi5kcmF3KCl9O3RoaXMuZm5DbG9zZT1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkucm93KGEpLmNoaWxkLmhpZGUoKX07dGhpcy5mbkRlbGV0ZVJvdz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5hcGkoITApLGE9ZC5yb3dzKGEpLGU9YS5zZXR0aW5ncygpWzBdLGg9ZS5hb0RhdGFbYVswXVswXV07YS5yZW1vdmUoKTtiJiZiLmNhbGwodGhpcyxlLGgpOyhjPT09a3x8YykmJmQuZHJhdygpO3JldHVybiBofTt0aGlzLmZuRGVzdHJveT1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkuZGVzdHJveShhKX07dGhpcy5mbkRyYXc9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLmRyYXcoYSl9O3RoaXMuZm5GaWx0ZXI9ZnVuY3Rpb24oYSxiLGMsZCxlLGgpe2U9dGhpcy5hcGkoITApO251bGw9PT1ifHxiPT09az9lLnNlYXJjaChhLApjLGQsaCk6ZS5jb2x1bW4oYikuc2VhcmNoKGEsYyxkLGgpO2UuZHJhdygpfTt0aGlzLmZuR2V0RGF0YT1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuYXBpKCEwKTtpZihhIT09ayl7dmFyIGQ9YS5ub2RlTmFtZT9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk6IiI7cmV0dXJuIGIhPT1rfHwidGQiPT1kfHwidGgiPT1kP2MuY2VsbChhLGIpLmRhdGEoKTpjLnJvdyhhKS5kYXRhKCl8fG51bGx9cmV0dXJuIGMuZGF0YSgpLnRvQXJyYXkoKX07dGhpcy5mbkdldE5vZGVzPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKTtyZXR1cm4gYSE9PWs/Yi5yb3coYSkubm9kZSgpOmIucm93cygpLm5vZGVzKCkuZmxhdHRlbigpLnRvQXJyYXkoKX07dGhpcy5mbkdldFBvc2l0aW9uPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKSxjPWEubm9kZU5hbWUudG9VcHBlckNhc2UoKTtyZXR1cm4iVFIiPT1jP2Iucm93KGEpLmluZGV4KCk6IlREIj09Y3x8IlRIIj09Yz8oYT1iLmNlbGwoYSkuaW5kZXgoKSwKW2Eucm93LGEuY29sdW1uVmlzaWJsZSxhLmNvbHVtbl0pOm51bGx9O3RoaXMuZm5Jc09wZW49ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYXBpKCEwKS5yb3coYSkuY2hpbGQuaXNTaG93bigpfTt0aGlzLmZuT3Blbj1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMuYXBpKCEwKS5yb3coYSkuY2hpbGQoYixjKS5zaG93KCkuY2hpbGQoKVswXX07dGhpcy5mblBhZ2VDaGFuZ2U9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmFwaSghMCkucGFnZShhKTsoYj09PWt8fGIpJiZjLmRyYXcoITEpfTt0aGlzLmZuU2V0Q29sdW1uVmlzPWZ1bmN0aW9uKGEsYixjKXthPXRoaXMuYXBpKCEwKS5jb2x1bW4oYSkudmlzaWJsZShiKTsoYz09PWt8fGMpJiZhLmNvbHVtbnMuYWRqdXN0KCkuZHJhdygpfTt0aGlzLmZuU2V0dGluZ3M9ZnVuY3Rpb24oKXtyZXR1cm4geGEodGhpc1t2LmlBcGlJbmRleF0pfTt0aGlzLmZuU29ydD1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkub3JkZXIoYSkuZHJhdygpfTt0aGlzLmZuU29ydExpc3RlbmVyPQpmdW5jdGlvbihhLGIsYyl7dGhpcy5hcGkoITApLm9yZGVyLmxpc3RlbmVyKGEsYixjKX07dGhpcy5mblVwZGF0ZT1mdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBoPXRoaXMuYXBpKCEwKTtjPT09a3x8bnVsbD09PWM/aC5yb3coYikuZGF0YShhKTpoLmNlbGwoYixjKS5kYXRhKGEpOyhlPT09a3x8ZSkmJmguY29sdW1ucy5hZGp1c3QoKTsoZD09PWt8fGQpJiZoLmRyYXcoKTtyZXR1cm4gMH07dGhpcy5mblZlcnNpb25DaGVjaz12LmZuVmVyc2lvbkNoZWNrO3ZhciBiPXRoaXMsYz1hPT09ayxkPXRoaXMubGVuZ3RoO2MmJihhPXt9KTt0aGlzLm9BcGk9dGhpcy5pbnRlcm5hbD12LmludGVybmFsO2Zvcih2YXIgZSBpbiBtLmV4dC5pbnRlcm5hbCllJiYodGhpc1tlXT1OYihlKSk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9e30sZT0xPGQ/TGIoZSxhLCEwKTphLGc9MCxqLGk9dGhpcy5nZXRBdHRyaWJ1dGUoImlkIiksbj0hMSxsPW0uZGVmYXVsdHMscT1oKHRoaXMpO2lmKCJ0YWJsZSIhPQp0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpTChudWxsLDAsIk5vbi10YWJsZSBub2RlIGluaXRpYWxpc2F0aW9uICgiK3RoaXMubm9kZU5hbWUrIikiLDIpO2Vsc2V7ZWIobCk7ZmIobC5jb2x1bW4pO0sobCxsLCEwKTtLKGwuY29sdW1uLGwuY29sdW1uLCEwKTtLKGwsaC5leHRlbmQoZSxxLmRhdGEoKSkpO3ZhciB0PW0uc2V0dGluZ3MsZz0wO2ZvcihqPXQubGVuZ3RoO2c8ajtnKyspe3ZhciBwPXRbZ107aWYocC5uVGFibGU9PXRoaXN8fHAublRIZWFkLnBhcmVudE5vZGU9PXRoaXN8fHAublRGb290JiZwLm5URm9vdC5wYXJlbnROb2RlPT10aGlzKXtnPWUuYlJldHJpZXZlIT09az9lLmJSZXRyaWV2ZTpsLmJSZXRyaWV2ZTtpZihjfHxnKXJldHVybiBwLm9JbnN0YW5jZTtpZihlLmJEZXN0cm95IT09az9lLmJEZXN0cm95OmwuYkRlc3Ryb3kpe3Aub0luc3RhbmNlLmZuRGVzdHJveSgpO2JyZWFrfWVsc2V7TChwLDAsIkNhbm5vdCByZWluaXRpYWxpc2UgRGF0YVRhYmxlIiwzKTsKcmV0dXJufX1pZihwLnNUYWJsZUlkPT10aGlzLmlkKXt0LnNwbGljZShnLDEpO2JyZWFrfX1pZihudWxsPT09aXx8IiI9PT1pKXRoaXMuaWQ9aT0iRGF0YVRhYmxlc19UYWJsZV8iK20uZXh0Ll91bmlxdWUrKzt2YXIgbz1oLmV4dGVuZCghMCx7fSxtLm1vZGVscy5vU2V0dGluZ3Mse3NEZXN0cm95V2lkdGg6cVswXS5zdHlsZS53aWR0aCxzSW5zdGFuY2U6aSxzVGFibGVJZDppfSk7by5uVGFibGU9dGhpcztvLm9BcGk9Yi5pbnRlcm5hbDtvLm9Jbml0PWU7dC5wdXNoKG8pO28ub0luc3RhbmNlPTE9PT1iLmxlbmd0aD9iOnEuZGF0YVRhYmxlKCk7ZWIoZSk7ZS5vTGFuZ3VhZ2UmJkRhKGUub0xhbmd1YWdlKTtlLmFMZW5ndGhNZW51JiYhZS5pRGlzcGxheUxlbmd0aCYmKGUuaURpc3BsYXlMZW5ndGg9aC5pc0FycmF5KGUuYUxlbmd0aE1lbnVbMF0pP2UuYUxlbmd0aE1lbnVbMF1bMF06ZS5hTGVuZ3RoTWVudVswXSk7ZT1MYihoLmV4dGVuZCghMCx7fSxsKSxlKTtFKG8ub0ZlYXR1cmVzLAplLCJiUGFnaW5hdGUgYkxlbmd0aENoYW5nZSBiRmlsdGVyIGJTb3J0IGJTb3J0TXVsdGkgYkluZm8gYlByb2Nlc3NpbmcgYkF1dG9XaWR0aCBiU29ydENsYXNzZXMgYlNlcnZlclNpZGUgYkRlZmVyUmVuZGVyIi5zcGxpdCgiICIpKTtFKG8sZSxbImFzU3RyaXBlQ2xhc3NlcyIsImFqYXgiLCJmblNlcnZlckRhdGEiLCJmbkZvcm1hdE51bWJlciIsInNTZXJ2ZXJNZXRob2QiLCJhYVNvcnRpbmciLCJhYVNvcnRpbmdGaXhlZCIsImFMZW5ndGhNZW51Iiwic1BhZ2luYXRpb25UeXBlIiwic0FqYXhTb3VyY2UiLCJzQWpheERhdGFQcm9wIiwiaVN0YXRlRHVyYXRpb24iLCJzRG9tIiwiYlNvcnRDZWxsc1RvcCIsImlUYWJJbmRleCIsImZuU3RhdGVMb2FkQ2FsbGJhY2siLCJmblN0YXRlU2F2ZUNhbGxiYWNrIiwicmVuZGVyZXIiLCJzZWFyY2hEZWxheSIsInJvd0lkIixbImlDb29raWVEdXJhdGlvbiIsImlTdGF0ZUR1cmF0aW9uIl0sWyJvU2VhcmNoIiwib1ByZXZpb3VzU2VhcmNoIl0sWyJhb1NlYXJjaENvbHMiLAoiYW9QcmVTZWFyY2hDb2xzIl0sWyJpRGlzcGxheUxlbmd0aCIsIl9pRGlzcGxheUxlbmd0aCJdLFsiYkpRdWVyeVVJIiwiYkpVSSJdXSk7RShvLm9TY3JvbGwsZSxbWyJzU2Nyb2xsWCIsInNYIl0sWyJzU2Nyb2xsWElubmVyIiwic1hJbm5lciJdLFsic1Njcm9sbFkiLCJzWSJdLFsiYlNjcm9sbENvbGxhcHNlIiwiYkNvbGxhcHNlIl1dKTtFKG8ub0xhbmd1YWdlLGUsImZuSW5mb0NhbGxiYWNrIik7eihvLCJhb0RyYXdDYWxsYmFjayIsZS5mbkRyYXdDYWxsYmFjaywidXNlciIpO3oobywiYW9TZXJ2ZXJQYXJhbXMiLGUuZm5TZXJ2ZXJQYXJhbXMsInVzZXIiKTt6KG8sImFvU3RhdGVTYXZlUGFyYW1zIixlLmZuU3RhdGVTYXZlUGFyYW1zLCJ1c2VyIik7eihvLCJhb1N0YXRlTG9hZFBhcmFtcyIsZS5mblN0YXRlTG9hZFBhcmFtcywidXNlciIpO3oobywiYW9TdGF0ZUxvYWRlZCIsZS5mblN0YXRlTG9hZGVkLCJ1c2VyIik7eihvLCJhb1Jvd0NhbGxiYWNrIixlLmZuUm93Q2FsbGJhY2ssCiJ1c2VyIik7eihvLCJhb1Jvd0NyZWF0ZWRDYWxsYmFjayIsZS5mbkNyZWF0ZWRSb3csInVzZXIiKTt6KG8sImFvSGVhZGVyQ2FsbGJhY2siLGUuZm5IZWFkZXJDYWxsYmFjaywidXNlciIpO3oobywiYW9Gb290ZXJDYWxsYmFjayIsZS5mbkZvb3RlckNhbGxiYWNrLCJ1c2VyIik7eihvLCJhb0luaXRDb21wbGV0ZSIsZS5mbkluaXRDb21wbGV0ZSwidXNlciIpO3oobywiYW9QcmVEcmF3Q2FsbGJhY2siLGUuZm5QcmVEcmF3Q2FsbGJhY2ssInVzZXIiKTtvLnJvd0lkRm49UShlLnJvd0lkKTtnYihvKTtpPW8ub0NsYXNzZXM7ZS5iSlF1ZXJ5VUk/KGguZXh0ZW5kKGksbS5leHQub0pVSUNsYXNzZXMsZS5vQ2xhc3NlcyksZS5zRG9tPT09bC5zRG9tJiYibGZydGlwIj09PWwuc0RvbSYmKG8uc0RvbT0nPCJIImxmcj50PCJGImlwPicpLG8ucmVuZGVyZXIpP2guaXNQbGFpbk9iamVjdChvLnJlbmRlcmVyKSYmIW8ucmVuZGVyZXIuaGVhZGVyJiYoby5yZW5kZXJlci5oZWFkZXI9ImpxdWVyeXVpIik6Cm8ucmVuZGVyZXI9ImpxdWVyeXVpIjpoLmV4dGVuZChpLG0uZXh0LmNsYXNzZXMsZS5vQ2xhc3Nlcyk7cS5hZGRDbGFzcyhpLnNUYWJsZSk7by5pSW5pdERpc3BsYXlTdGFydD09PWsmJihvLmlJbml0RGlzcGxheVN0YXJ0PWUuaURpc3BsYXlTdGFydCxvLl9pRGlzcGxheVN0YXJ0PWUuaURpc3BsYXlTdGFydCk7bnVsbCE9PWUuaURlZmVyTG9hZGluZyYmKG8uYkRlZmVyTG9hZGluZz0hMCxnPWguaXNBcnJheShlLmlEZWZlckxvYWRpbmcpLG8uX2lSZWNvcmRzRGlzcGxheT1nP2UuaURlZmVyTG9hZGluZ1swXTplLmlEZWZlckxvYWRpbmcsby5faVJlY29yZHNUb3RhbD1nP2UuaURlZmVyTG9hZGluZ1sxXTplLmlEZWZlckxvYWRpbmcpO3ZhciByPW8ub0xhbmd1YWdlO2guZXh0ZW5kKCEwLHIsZS5vTGFuZ3VhZ2UpOyIiIT09ci5zVXJsJiYoaC5hamF4KHtkYXRhVHlwZToianNvbiIsdXJsOnIuc1VybCxzdWNjZXNzOmZ1bmN0aW9uKGEpe0RhKGEpO0sobC5vTGFuZ3VhZ2UsYSk7aC5leHRlbmQodHJ1ZSwKcixhKTtnYShvKX0sZXJyb3I6ZnVuY3Rpb24oKXtnYShvKX19KSxuPSEwKTtudWxsPT09ZS5hc1N0cmlwZUNsYXNzZXMmJihvLmFzU3RyaXBlQ2xhc3Nlcz1baS5zU3RyaXBlT2RkLGkuc1N0cmlwZUV2ZW5dKTt2YXIgZz1vLmFzU3RyaXBlQ2xhc3Nlcyx2PXEuY2hpbGRyZW4oInRib2R5IikuZmluZCgidHIiKS5lcSgwKTstMSE9PWguaW5BcnJheSghMCxoLm1hcChnLGZ1bmN0aW9uKGEpe3JldHVybiB2Lmhhc0NsYXNzKGEpfSkpJiYoaCgidGJvZHkgdHIiLHRoaXMpLnJlbW92ZUNsYXNzKGcuam9pbigiICIpKSxvLmFzRGVzdHJveVN0cmlwZXM9Zy5zbGljZSgpKTt0PVtdO2c9dGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGhlYWQiKTswIT09Zy5sZW5ndGgmJihkYShvLmFvSGVhZGVyLGdbMF0pLHQ9cWEobykpO2lmKG51bGw9PT1lLmFvQ29sdW1ucyl7cD1bXTtnPTA7Zm9yKGo9dC5sZW5ndGg7ZzxqO2crKylwLnB1c2gobnVsbCl9ZWxzZSBwPWUuYW9Db2x1bW5zO2c9MDtmb3Ioaj0KcC5sZW5ndGg7ZzxqO2crKylFYShvLHQ/dFtnXTpudWxsKTtpYihvLGUuYW9Db2x1bW5EZWZzLHAsZnVuY3Rpb24oYSxiKXtqYShvLGEsYil9KTtpZih2Lmxlbmd0aCl7dmFyIHM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUoImRhdGEtIitiKSE9PW51bGw/YjpudWxsfTtoKHZbMF0pLmNoaWxkcmVuKCJ0aCwgdGQiKS5lYWNoKGZ1bmN0aW9uKGEsYil7dmFyIGM9by5hb0NvbHVtbnNbYV07aWYoYy5tRGF0YT09PWEpe3ZhciBkPXMoYiwic29ydCIpfHxzKGIsIm9yZGVyIiksZT1zKGIsImZpbHRlciIpfHxzKGIsInNlYXJjaCIpO2lmKGQhPT1udWxsfHxlIT09bnVsbCl7Yy5tRGF0YT17XzphKyIuZGlzcGxheSIsc29ydDpkIT09bnVsbD9hKyIuQGRhdGEtIitkOmssdHlwZTpkIT09bnVsbD9hKyIuQGRhdGEtIitkOmssZmlsdGVyOmUhPT1udWxsP2ErIi5AZGF0YS0iK2U6a307amEobyxhKX19fSl9dmFyIHc9by5vRmVhdHVyZXM7ZS5iU3RhdGVTYXZlJiYody5iU3RhdGVTYXZlPQohMCxLYihvLGUpLHoobywiYW9EcmF3Q2FsbGJhY2siLHdhLCJzdGF0ZV9zYXZlIikpO2lmKGUuYWFTb3J0aW5nPT09ayl7dD1vLmFhU29ydGluZztnPTA7Zm9yKGo9dC5sZW5ndGg7ZzxqO2crKyl0W2ddWzFdPW8uYW9Db2x1bW5zW2ddLmFzU29ydGluZ1swXX12YShvKTt3LmJTb3J0JiZ6KG8sImFvRHJhd0NhbGxiYWNrIixmdW5jdGlvbigpe2lmKG8uYlNvcnRlZCl7dmFyIGE9VihvKSxiPXt9O2guZWFjaChhLGZ1bmN0aW9uKGEsYyl7YltjLnNyY109Yy5kaXJ9KTt1KG8sbnVsbCwib3JkZXIiLFtvLGEsYl0pO0piKG8pfX0pO3oobywiYW9EcmF3Q2FsbGJhY2siLGZ1bmN0aW9uKCl7KG8uYlNvcnRlZHx8eShvKT09PSJzc3AifHx3LmJEZWZlclJlbmRlcikmJnZhKG8pfSwic2MiKTtnPXEuY2hpbGRyZW4oImNhcHRpb24iKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5fY2FwdGlvblNpZGU9cS5jc3MoImNhcHRpb24tc2lkZSIpfSk7aj1xLmNoaWxkcmVuKCJ0aGVhZCIpOzA9PT1qLmxlbmd0aCYmCihqPWgoIjx0aGVhZC8+IikuYXBwZW5kVG8odGhpcykpO28ublRIZWFkPWpbMF07aj1xLmNoaWxkcmVuKCJ0Ym9keSIpOzA9PT1qLmxlbmd0aCYmKGo9aCgiPHRib2R5Lz4iKS5hcHBlbmRUbyh0aGlzKSk7by5uVEJvZHk9alswXTtqPXEuY2hpbGRyZW4oInRmb290Iik7aWYoMD09PWoubGVuZ3RoJiYwPGcubGVuZ3RoJiYoIiIhPT1vLm9TY3JvbGwuc1h8fCIiIT09by5vU2Nyb2xsLnNZKSlqPWgoIjx0Zm9vdC8+IikuYXBwZW5kVG8odGhpcyk7MD09PWoubGVuZ3RofHwwPT09ai5jaGlsZHJlbigpLmxlbmd0aD9xLmFkZENsYXNzKGkuc05vRm9vdGVyKTowPGoubGVuZ3RoJiYoby5uVEZvb3Q9alswXSxkYShvLmFvRm9vdGVyLG8ublRGb290KSk7aWYoZS5hYURhdGEpZm9yKGc9MDtnPGUuYWFEYXRhLmxlbmd0aDtnKyspTihvLGUuYWFEYXRhW2ddKTtlbHNlKG8uYkRlZmVyTG9hZGluZ3x8ImRvbSI9PXkobykpJiZtYShvLGgoby5uVEJvZHkpLmNoaWxkcmVuKCJ0ciIpKTtvLmFpRGlzcGxheT0Kby5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtvLmJJbml0aWFsaXNlZD0hMDshMT09PW4mJmdhKG8pfX0pO2I9bnVsbDtyZXR1cm4gdGhpc30sdixyLHAscyxZYT17fSxPYj0vW1xyXG5dL2csQWE9LzwuKj8+L2csYWM9L15bXHdcK1wtXS8sYmM9L1tcd1wrXC1dJC8sY2M9UmVnRXhwKCIoXFwvfFxcLnxcXCp8XFwrfFxcP3xcXHx8XFwofFxcKXxcXFt8XFxdfFxce3xcXH18XFxcXHxcXCR8XFxefFxcLSkiLCJnIiksWGE9L1snLCTCo+KCrMKlJVx1MjAwOVx1MjAyRlx1MjBCRFx1MjBhOVx1MjBCQXJma10vZ2ksTT1mdW5jdGlvbihhKXtyZXR1cm4hYXx8ITA9PT1hfHwiLSI9PT1hPyEwOiExfSxQYj1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUludChhLDEwKTtyZXR1cm4haXNOYU4oYikmJmlzRmluaXRlKGEpP2I6bnVsbH0sUWI9ZnVuY3Rpb24oYSxiKXtZYVtiXXx8KFlhW2JdPVJlZ0V4cChRYShiKSwiZyIpKTtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBhJiYiLiIhPT1iP2EucmVwbGFjZSgvXC4vZywKIiIpLnJlcGxhY2UoWWFbYl0sIi4iKTphfSxaYT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9InN0cmluZyI9PT10eXBlb2YgYTtpZihNKGEpKXJldHVybiEwO2ImJmQmJihhPVFiKGEsYikpO2MmJmQmJihhPWEucmVwbGFjZShYYSwiIikpO3JldHVybiFpc05hTihwYXJzZUZsb2F0KGEpKSYmaXNGaW5pdGUoYSl9LFJiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gTShhKT8hMDohKE0oYSl8fCJzdHJpbmciPT09dHlwZW9mIGEpP251bGw6WmEoYS5yZXBsYWNlKEFhLCIiKSxiLGMpPyEwOm51bGx9LEc9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9MCxmPWEubGVuZ3RoO2lmKGMhPT1rKWZvcig7ZTxmO2UrKylhW2VdJiZhW2VdW2JdJiZkLnB1c2goYVtlXVtiXVtjXSk7ZWxzZSBmb3IoO2U8ZjtlKyspYVtlXSYmZC5wdXNoKGFbZV1bYl0pO3JldHVybiBkfSxoYT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1bXSxmPTAsZz1iLmxlbmd0aDtpZihkIT09aylmb3IoO2Y8ZztmKyspYVtiW2ZdXVtjXSYmCmUucHVzaChhW2JbZl1dW2NdW2RdKTtlbHNlIGZvcig7ZjxnO2YrKyllLnB1c2goYVtiW2ZdXVtjXSk7cmV0dXJuIGV9LFc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXSxkO2I9PT1rPyhiPTAsZD1hKTooZD1iLGI9YSk7Zm9yKHZhciBlPWI7ZTxkO2UrKyljLnB1c2goZSk7cmV0dXJuIGN9LFNiPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKWFbY10mJmIucHVzaChhW2NdKTtyZXR1cm4gYn0scGE9ZnVuY3Rpb24oYSl7dmFyIGI9W10sYyxkLGU9YS5sZW5ndGgsZixnPTA7ZD0wO2E6Zm9yKDtkPGU7ZCsrKXtjPWFbZF07Zm9yKGY9MDtmPGc7ZisrKWlmKGJbZl09PT1jKWNvbnRpbnVlIGE7Yi5wdXNoKGMpO2crK31yZXR1cm4gYn07bS51dGlsPXt0aHJvdHRsZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIhPT1rP2I6MjAwLGQsZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj10aGlzLGc9K25ldyBEYXRlLGg9YXJndW1lbnRzO2QmJmc8ZCtjPyhjbGVhclRpbWVvdXQoZSksCmU9c2V0VGltZW91dChmdW5jdGlvbigpe2Q9azthLmFwcGx5KGIsaCl9LGMpKTooZD1nLGEuYXBwbHkoYixoKSl9fSxlc2NhcGVSZWdleDpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGNjLCJcXCQxIil9fTt2YXIgQT1mdW5jdGlvbihhLGIsYyl7YVtiXSE9PWsmJihhW2NdPWFbYl0pfSxiYT0vXFsuKj9cXSQvLFU9L1woXCkkLyxRYT1tLnV0aWwuZXNjYXBlUmVnZXgsdWE9aCgiPGRpdj4iKVswXSxaYj11YS50ZXh0Q29udGVudCE9PWssJGI9LzwuKj8+L2csT2E9bS51dGlsLnRocm90dGxlLFRiPVtdLHc9QXJyYXkucHJvdG90eXBlLGRjPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZD1tLnNldHRpbmdzLGU9aC5tYXAoZCxmdW5jdGlvbihhKXtyZXR1cm4gYS5uVGFibGV9KTtpZihhKXtpZihhLm5UYWJsZSYmYS5vQXBpKXJldHVyblthXTtpZihhLm5vZGVOYW1lJiYidGFibGUiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBiPWguaW5BcnJheShhLGUpLC0xIT09Yj9bZFtiXV06Cm51bGw7aWYoYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzKXJldHVybiBhLnNldHRpbmdzKCkudG9BcnJheSgpOyJzdHJpbmciPT09dHlwZW9mIGE/Yz1oKGEpOmEgaW5zdGFuY2VvZiBoJiYoYz1hKX1lbHNlIHJldHVybltdO2lmKGMpcmV0dXJuIGMubWFwKGZ1bmN0aW9uKCl7Yj1oLmluQXJyYXkodGhpcyxlKTtyZXR1cm4tMSE9PWI/ZFtiXTpudWxsfSkudG9BcnJheSgpfTtyPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgcikpcmV0dXJuIG5ldyByKGEsYik7dmFyIGM9W10sZD1mdW5jdGlvbihhKXsoYT1kYyhhKSkmJihjPWMuY29uY2F0KGEpKX07aWYoaC5pc0FycmF5KGEpKWZvcih2YXIgZT0wLGY9YS5sZW5ndGg7ZTxmO2UrKylkKGFbZV0pO2Vsc2UgZChhKTt0aGlzLmNvbnRleHQ9cGEoYyk7YiYmaC5tZXJnZSh0aGlzLGIpO3RoaXMuc2VsZWN0b3I9e3Jvd3M6bnVsbCxjb2xzOm51bGwsb3B0czpudWxsfTtyLmV4dGVuZCh0aGlzLHRoaXMsVGIpfTsKbS5BcGk9cjtoLmV4dGVuZChyLnByb3RvdHlwZSx7YW55OmZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLmNvdW50KCl9LGNvbmNhdDp3LmNvbmNhdCxjb250ZXh0OltdLGNvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmxhdHRlbigpLmxlbmd0aH0sZWFjaDpmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2I8YztiKyspYS5jYWxsKHRoaXMsdGhpc1tiXSxiLHRoaXMpO3JldHVybiB0aGlzfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7cmV0dXJuIGIubGVuZ3RoPmE/bmV3IHIoYlthXSx0aGlzW2FdKTpudWxsfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYody5maWx0ZXIpYj13LmZpbHRlci5jYWxsKHRoaXMsYSx0aGlzKTtlbHNlIGZvcih2YXIgYz0wLGQ9dGhpcy5sZW5ndGg7YzxkO2MrKylhLmNhbGwodGhpcyx0aGlzW2NdLGMsdGhpcykmJmIucHVzaCh0aGlzW2NdKTtyZXR1cm4gbmV3IHIodGhpcy5jb250ZXh0LGIpfSxmbGF0dGVuOmZ1bmN0aW9uKCl7dmFyIGE9CltdO3JldHVybiBuZXcgcih0aGlzLmNvbnRleHQsYS5jb25jYXQuYXBwbHkoYSx0aGlzLnRvQXJyYXkoKSkpfSxqb2luOncuam9pbixpbmRleE9mOncuaW5kZXhPZnx8ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9Ynx8MCxkPXRoaXMubGVuZ3RoO2M8ZDtjKyspaWYodGhpc1tjXT09PWEpcmV0dXJuIGM7cmV0dXJuLTF9LGl0ZXJhdG9yOmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVtdLGYsZyxoLGksbixsPXRoaXMuY29udGV4dCxtLHQscD10aGlzLnNlbGVjdG9yOyJzdHJpbmciPT09dHlwZW9mIGEmJihkPWMsYz1iLGI9YSxhPSExKTtnPTA7Zm9yKGg9bC5sZW5ndGg7ZzxoO2crKyl7dmFyIG89bmV3IHIobFtnXSk7aWYoInRhYmxlIj09PWIpZj1jLmNhbGwobyxsW2ddLGcpLGYhPT1rJiZlLnB1c2goZik7ZWxzZSBpZigiY29sdW1ucyI9PT1ifHwicm93cyI9PT1iKWY9Yy5jYWxsKG8sbFtnXSx0aGlzW2ddLGcpLGYhPT1rJiZlLnB1c2goZik7ZWxzZSBpZigiY29sdW1uIj09PWJ8fCJjb2x1bW4tcm93cyI9PT0KYnx8InJvdyI9PT1ifHwiY2VsbCI9PT1iKXt0PXRoaXNbZ107ImNvbHVtbi1yb3dzIj09PWImJihtPUJhKGxbZ10scC5vcHRzKSk7aT0wO2ZvcihuPXQubGVuZ3RoO2k8bjtpKyspZj10W2ldLGY9ImNlbGwiPT09Yj9jLmNhbGwobyxsW2ddLGYucm93LGYuY29sdW1uLGcsaSk6Yy5jYWxsKG8sbFtnXSxmLGcsaSxtKSxmIT09ayYmZS5wdXNoKGYpfX1yZXR1cm4gZS5sZW5ndGh8fGQ/KGE9bmV3IHIobCxhP2UuY29uY2F0LmFwcGx5KFtdLGUpOmUpLGI9YS5zZWxlY3RvcixiLnJvd3M9cC5yb3dzLGIuY29scz1wLmNvbHMsYi5vcHRzPXAub3B0cyxhKTp0aGlzfSxsYXN0SW5kZXhPZjp3Lmxhc3RJbmRleE9mfHxmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmluZGV4T2YuYXBwbHkodGhpcy50b0FycmF5LnJldmVyc2UoKSxhcmd1bWVudHMpfSxsZW5ndGg6MCxtYXA6ZnVuY3Rpb24oYSl7dmFyIGI9W107aWYody5tYXApYj13Lm1hcC5jYWxsKHRoaXMsYSx0aGlzKTtlbHNlIGZvcih2YXIgYz0KMCxkPXRoaXMubGVuZ3RoO2M8ZDtjKyspYi5wdXNoKGEuY2FsbCh0aGlzLHRoaXNbY10sYykpO3JldHVybiBuZXcgcih0aGlzLmNvbnRleHQsYil9LHBsdWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYlthXX0pfSxwb3A6dy5wb3AscHVzaDp3LnB1c2gscmVkdWNlOncucmVkdWNlfHxmdW5jdGlvbihhLGIpe3JldHVybiBoYih0aGlzLGEsYiwwLHRoaXMubGVuZ3RoLDEpfSxyZWR1Y2VSaWdodDp3LnJlZHVjZVJpZ2h0fHxmdW5jdGlvbihhLGIpe3JldHVybiBoYih0aGlzLGEsYix0aGlzLmxlbmd0aC0xLC0xLC0xKX0scmV2ZXJzZTp3LnJldmVyc2Usc2VsZWN0b3I6bnVsbCxzaGlmdDp3LnNoaWZ0LHNvcnQ6dy5zb3J0LHNwbGljZTp3LnNwbGljZSx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHcuc2xpY2UuY2FsbCh0aGlzKX0sdG8kOmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcyl9LHRvSlF1ZXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcyl9LAp1bmlxdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIodGhpcy5jb250ZXh0LHBhKHRoaXMpKX0sdW5zaGlmdDp3LnVuc2hpZnR9KTtyLmV4dGVuZD1mdW5jdGlvbihhLGIsYyl7aWYoYy5sZW5ndGgmJmImJihiIGluc3RhbmNlb2Ygcnx8Yi5fX2R0X3dyYXBwZXIpKXt2YXIgZCxlLGYsZz1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9Yi5hcHBseShhLGFyZ3VtZW50cyk7ci5leHRlbmQoZCxkLGMubWV0aG9kRXh0KTtyZXR1cm4gZH19O2Q9MDtmb3IoZT1jLmxlbmd0aDtkPGU7ZCsrKWY9Y1tkXSxiW2YubmFtZV09ImZ1bmN0aW9uIj09PXR5cGVvZiBmLnZhbD9nKGEsZi52YWwsZik6aC5pc1BsYWluT2JqZWN0KGYudmFsKT97fTpmLnZhbCxiW2YubmFtZV0uX19kdF93cmFwcGVyPSEwLHIuZXh0ZW5kKGEsYltmLm5hbWVdLGYucHJvcEV4dCl9fTtyLnJlZ2lzdGVyPXA9ZnVuY3Rpb24oYSxiKXtpZihoLmlzQXJyYXkoYSkpZm9yKHZhciBjPTAsZD1hLmxlbmd0aDtjPApkO2MrKylyLnJlZ2lzdGVyKGFbY10sYik7ZWxzZSBmb3IodmFyIGU9YS5zcGxpdCgiLiIpLGY9VGIsZyxqLGM9MCxkPWUubGVuZ3RoO2M8ZDtjKyspe2c9KGo9LTEhPT1lW2NdLmluZGV4T2YoIigpIikpP2VbY10ucmVwbGFjZSgiKCkiLCIiKTplW2NdO3ZhciBpO2E6e2k9MDtmb3IodmFyIG49Zi5sZW5ndGg7aTxuO2krKylpZihmW2ldLm5hbWU9PT1nKXtpPWZbaV07YnJlYWsgYX1pPW51bGx9aXx8KGk9e25hbWU6Zyx2YWw6e30sbWV0aG9kRXh0OltdLHByb3BFeHQ6W119LGYucHVzaChpKSk7Yz09PWQtMT9pLnZhbD1iOmY9aj9pLm1ldGhvZEV4dDppLnByb3BFeHR9fTtyLnJlZ2lzdGVyUGx1cmFsPXM9ZnVuY3Rpb24oYSxiLGMpe3IucmVnaXN0ZXIoYSxjKTtyLnJlZ2lzdGVyKGIsZnVuY3Rpb24oKXt2YXIgYT1jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gYT09PXRoaXM/dGhpczphIGluc3RhbmNlb2Ygcj9hLmxlbmd0aD9oLmlzQXJyYXkoYVswXSk/bmV3IHIoYS5jb250ZXh0LAphWzBdKTphWzBdOms6YX0pfTtwKCJ0YWJsZXMoKSIsZnVuY3Rpb24oYSl7dmFyIGI7aWYoYSl7Yj1yO3ZhciBjPXRoaXMuY29udGV4dDtpZigibnVtYmVyIj09PXR5cGVvZiBhKWE9W2NbYV1dO2Vsc2UgdmFyIGQ9aC5tYXAoYyxmdW5jdGlvbihhKXtyZXR1cm4gYS5uVGFibGV9KSxhPWgoZCkuZmlsdGVyKGEpLm1hcChmdW5jdGlvbigpe3ZhciBhPWguaW5BcnJheSh0aGlzLGQpO3JldHVybiBjW2FdfSkudG9BcnJheSgpO2I9bmV3IGIoYSl9ZWxzZSBiPXRoaXM7cmV0dXJuIGJ9KTtwKCJ0YWJsZSgpIixmdW5jdGlvbihhKXt2YXIgYT10aGlzLnRhYmxlcyhhKSxiPWEuY29udGV4dDtyZXR1cm4gYi5sZW5ndGg/bmV3IHIoYlswXSk6YX0pO3MoInRhYmxlcygpLm5vZGVzKCkiLCJ0YWJsZSgpLm5vZGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5UYWJsZX0sMSl9KTtzKCJ0YWJsZXMoKS5ib2R5KCkiLCJ0YWJsZSgpLmJvZHkoKSIsCmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVEJvZHl9LDEpfSk7cygidGFibGVzKCkuaGVhZGVyKCkiLCJ0YWJsZSgpLmhlYWRlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRIZWFkfSwxKX0pO3MoInRhYmxlcygpLmZvb3RlcigpIiwidGFibGUoKS5mb290ZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5URm9vdH0sMSl9KTtzKCJ0YWJsZXMoKS5jb250YWluZXJzKCkiLCJ0YWJsZSgpLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRhYmxlV3JhcHBlcn0sMSl9KTtwKCJkcmF3KCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7InBhZ2UiPT09CmE/TyhiKTooInN0cmluZyI9PT10eXBlb2YgYSYmKGE9ImZ1bGwtaG9sZCI9PT1hPyExOiEwKSxUKGIsITE9PT1hKSl9KX0pO3AoInBhZ2UoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1rP3RoaXMucGFnZS5pbmZvKCkucGFnZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7VGEoYixhKX0pfSk7cCgicGFnZS5pbmZvKCkiLGZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuY29udGV4dC5sZW5ndGgpcmV0dXJuIGs7dmFyIGE9dGhpcy5jb250ZXh0WzBdLGI9YS5faURpc3BsYXlTdGFydCxjPWEub0ZlYXR1cmVzLmJQYWdpbmF0ZT9hLl9pRGlzcGxheUxlbmd0aDotMSxkPWEuZm5SZWNvcmRzRGlzcGxheSgpLGU9LTE9PT1jO3JldHVybntwYWdlOmU/MDpNYXRoLmZsb29yKGIvYykscGFnZXM6ZT8xOk1hdGguY2VpbChkL2MpLHN0YXJ0OmIsZW5kOmEuZm5EaXNwbGF5RW5kKCksbGVuZ3RoOmMscmVjb3Jkc1RvdGFsOmEuZm5SZWNvcmRzVG90YWwoKSxyZWNvcmRzRGlzcGxheTpkLApzZXJ2ZXJTaWRlOiJzc3AiPT09eShhKX19KTtwKCJwYWdlLmxlbigpIixmdW5jdGlvbihhKXtyZXR1cm4gYT09PWs/MCE9PXRoaXMuY29udGV4dC5sZW5ndGg/dGhpcy5jb250ZXh0WzBdLl9pRGlzcGxheUxlbmd0aDprOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtSYShiLGEpfSl9KTt2YXIgVWI9ZnVuY3Rpb24oYSxiLGMpe2lmKGMpe3ZhciBkPW5ldyByKGEpO2Qub25lKCJkcmF3IixmdW5jdGlvbigpe2MoZC5hamF4Lmpzb24oKSl9KX1pZigic3NwIj09eShhKSlUKGEsYik7ZWxzZXtDKGEsITApO3ZhciBlPWEuanFYSFI7ZSYmNCE9PWUucmVhZHlTdGF0ZSYmZS5hYm9ydCgpO3JhKGEsW10sZnVuY3Rpb24oYyl7bmEoYSk7Zm9yKHZhciBjPXNhKGEsYyksZD0wLGU9Yy5sZW5ndGg7ZDxlO2QrKylOKGEsY1tkXSk7VChhLGIpO0MoYSwhMSl9KX19O3AoImFqYXguanNvbigpIixmdW5jdGlvbigpe3ZhciBhPXRoaXMuY29udGV4dDtpZigwPGEubGVuZ3RoKXJldHVybiBhWzBdLmpzb259KTsKcCgiYWpheC5wYXJhbXMoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7aWYoMDxhLmxlbmd0aClyZXR1cm4gYVswXS5vQWpheERhdGF9KTtwKCJhamF4LnJlbG9hZCgpIixmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7VWIoYywhMT09PWIsYSl9KX0pO3AoImFqYXgudXJsKCkiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY29udGV4dDtpZihhPT09ayl7aWYoMD09PWIubGVuZ3RoKXJldHVybiBrO2I9YlswXTtyZXR1cm4gYi5hamF4P2guaXNQbGFpbk9iamVjdChiLmFqYXgpP2IuYWpheC51cmw6Yi5hamF4OmIuc0FqYXhTb3VyY2V9cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtoLmlzUGxhaW5PYmplY3QoYi5hamF4KT9iLmFqYXgudXJsPWE6Yi5hamF4PWF9KX0pO3AoImFqYXgudXJsKCkubG9hZCgpIixmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7VWIoYywKITE9PT1iLGEpfSl9KTt2YXIgJGE9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1bXSxnLGosaSxuLGwsbTtpPXR5cGVvZiBiO2lmKCFifHwic3RyaW5nIj09PWl8fCJmdW5jdGlvbiI9PT1pfHxiLmxlbmd0aD09PWspYj1bYl07aT0wO2ZvcihuPWIubGVuZ3RoO2k8bjtpKyspe2o9YltpXSYmYltpXS5zcGxpdD9iW2ldLnNwbGl0KCIsIik6W2JbaV1dO2w9MDtmb3IobT1qLmxlbmd0aDtsPG07bCsrKShnPWMoInN0cmluZyI9PT10eXBlb2YgaltsXT9oLnRyaW0oaltsXSk6altsXSkpJiZnLmxlbmd0aCYmKGY9Zi5jb25jYXQoZykpfWE9di5zZWxlY3RvclthXTtpZihhLmxlbmd0aCl7aT0wO2ZvcihuPWEubGVuZ3RoO2k8bjtpKyspZj1hW2ldKGQsZSxmKX1yZXR1cm4gcGEoZil9LGFiPWZ1bmN0aW9uKGEpe2F8fChhPXt9KTthLmZpbHRlciYmYS5zZWFyY2g9PT1rJiYoYS5zZWFyY2g9YS5maWx0ZXIpO3JldHVybiBoLmV4dGVuZCh7c2VhcmNoOiJub25lIixvcmRlcjoiY3VycmVudCIsCnBhZ2U6ImFsbCJ9LGEpfSxiYj1mdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPWEubGVuZ3RoO2I8YztiKyspaWYoMDxhW2JdLmxlbmd0aClyZXR1cm4gYVswXT1hW2JdLGFbMF0ubGVuZ3RoPTEsYS5sZW5ndGg9MSxhLmNvbnRleHQ9W2EuY29udGV4dFtiXV0sYTthLmxlbmd0aD0wO3JldHVybiBhfSxCYT1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmPVtdLGc9YS5haURpc3BsYXk7Yz1hLmFpRGlzcGxheU1hc3Rlcjt2YXIgaj1iLnNlYXJjaDtkPWIub3JkZXI7ZT1iLnBhZ2U7aWYoInNzcCI9PXkoYSkpcmV0dXJuInJlbW92ZWQiPT09aj9bXTpXKDAsYy5sZW5ndGgpO2lmKCJjdXJyZW50Ij09ZSl7Yz1hLl9pRGlzcGxheVN0YXJ0O2ZvcihkPWEuZm5EaXNwbGF5RW5kKCk7YzxkO2MrKylmLnB1c2goZ1tjXSl9ZWxzZSBpZigiY3VycmVudCI9PWR8fCJhcHBsaWVkIj09ZClmPSJub25lIj09aj9jLnNsaWNlKCk6ImFwcGxpZWQiPT1qP2cuc2xpY2UoKTpoLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybi0xPT09CmguaW5BcnJheShhLGcpP2E6bnVsbH0pO2Vsc2UgaWYoImluZGV4Ij09ZHx8Im9yaWdpbmFsIj09ZCl7Yz0wO2ZvcihkPWEuYW9EYXRhLmxlbmd0aDtjPGQ7YysrKSJub25lIj09aj9mLnB1c2goYyk6KGU9aC5pbkFycmF5KGMsZyksKC0xPT09ZSYmInJlbW92ZWQiPT1qfHwwPD1lJiYiYXBwbGllZCI9PWopJiZmLnB1c2goYykpfXJldHVybiBmfTtwKCJyb3dzKCkiLGZ1bmN0aW9uKGEsYil7YT09PWs/YT0iIjpoLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7dmFyIGI9YWIoYiksYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7dmFyIGU9YjtyZXR1cm4gJGEoInJvdyIsYSxmdW5jdGlvbihhKXt2YXIgYj1QYihhKTtpZihiIT09bnVsbCYmIWUpcmV0dXJuW2JdO3ZhciBqPUJhKGMsZSk7aWYoYiE9PW51bGwmJmguaW5BcnJheShiLGopIT09LTEpcmV0dXJuW2JdO2lmKCFhKXJldHVybiBqO2lmKHR5cGVvZiBhPT09ImZ1bmN0aW9uIilyZXR1cm4gaC5tYXAoaixmdW5jdGlvbihiKXt2YXIgZT0KYy5hb0RhdGFbYl07cmV0dXJuIGEoYixlLl9hRGF0YSxlLm5Ucik/YjpudWxsfSk7Yj1TYihoYShjLmFvRGF0YSxqLCJuVHIiKSk7aWYoYS5ub2RlTmFtZSl7aWYoYS5fRFRfUm93SW5kZXghPT1rKXJldHVyblthLl9EVF9Sb3dJbmRleF07aWYoYS5fRFRfQ2VsbEluZGV4KXJldHVyblthLl9EVF9DZWxsSW5kZXgucm93XTtiPWgoYSkuY2xvc2VzdCgiKltkYXRhLWR0LXJvd10iKTtyZXR1cm4gYi5sZW5ndGg/W2IuZGF0YSgiZHQtcm93IildOltdfWlmKHR5cGVvZiBhPT09InN0cmluZyImJmEuY2hhckF0KDApPT09IiMiKXtqPWMuYUlkc1thLnJlcGxhY2UoL14jLywiIildO2lmKGohPT1rKXJldHVybltqLmlkeF19cmV0dXJuIGgoYikuZmlsdGVyKGEpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLl9EVF9Sb3dJbmRleH0pLnRvQXJyYXkoKX0sYyxlKX0sMSk7Yy5zZWxlY3Rvci5yb3dzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTtwKCJyb3dzKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IiwKZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5hb0RhdGFbYl0ublRyfHxrfSwxKX0pO3AoInJvd3MoKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoITAsInJvd3MiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGhhKGEuYW9EYXRhLGIsIl9hRGF0YSIpfSwxKX0pO3MoInJvd3MoKS5jYWNoZSgpIiwicm93KCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjKXt2YXIgZD1iLmFvRGF0YVtjXTtyZXR1cm4ic2VhcmNoIj09PWE/ZC5fYUZpbHRlckRhdGE6ZC5fYVNvcnREYXRhfSwxKX0pO3MoInJvd3MoKS5pbnZhbGlkYXRlKCkiLCJyb3coKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGIsYyl7Y2EoYixjLGEpfSl9KTtzKCJyb3dzKCkuaW5kZXhlcygpIiwicm93KCkuaW5kZXgoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IiwKZnVuY3Rpb24oYSxiKXtyZXR1cm4gYn0sMSl9KTtzKCJyb3dzKCkuaWRzKCkiLCJyb3coKS5pZCgpIixmdW5jdGlvbihhKXtmb3IodmFyIGI9W10sYz10aGlzLmNvbnRleHQsZD0wLGU9Yy5sZW5ndGg7ZDxlO2QrKylmb3IodmFyIGY9MCxnPXRoaXNbZF0ubGVuZ3RoO2Y8ZztmKyspe3ZhciBoPWNbZF0ucm93SWRGbihjW2RdLmFvRGF0YVt0aGlzW2RdW2ZdXS5fYURhdGEpO2IucHVzaCgoITA9PT1hPyIjIjoiIikraCl9cmV0dXJuIG5ldyByKGMsYil9KTtzKCJyb3dzKCkucmVtb3ZlKCkiLCJyb3coKS5yZW1vdmUoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjLGQpe3ZhciBlPWIuYW9EYXRhLGY9ZVtjXSxnLGgsaSxuLGw7ZS5zcGxpY2UoYywxKTtnPTA7Zm9yKGg9ZS5sZW5ndGg7ZzxoO2crKylpZihpPWVbZ10sbD1pLmFuQ2VsbHMsbnVsbCE9PWkublRyJiYoaS5uVHIuX0RUX1Jvd0luZGV4PWcpLG51bGwhPT1sKXtpPTA7Zm9yKG49CmwubGVuZ3RoO2k8bjtpKyspbFtpXS5fRFRfQ2VsbEluZGV4LnJvdz1nfW9hKGIuYWlEaXNwbGF5TWFzdGVyLGMpO29hKGIuYWlEaXNwbGF5LGMpO29hKGFbZF0sYywhMSk7U2EoYik7Yz1iLnJvd0lkRm4oZi5fYURhdGEpO2MhPT1rJiZkZWxldGUgYi5hSWRzW2NdfSk7dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe2Zvcih2YXIgYz0wLGQ9YS5hb0RhdGEubGVuZ3RoO2M8ZDtjKyspYS5hb0RhdGFbY10uaWR4PWN9KTtyZXR1cm4gdGhpc30pO3AoInJvd3MuYWRkKCkiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgYyxmLGcsaD1bXTtmPTA7Zm9yKGc9YS5sZW5ndGg7ZjxnO2YrKyljPWFbZl0sYy5ub2RlTmFtZSYmIlRSIj09PWMubm9kZU5hbWUudG9VcHBlckNhc2UoKT9oLnB1c2gobWEoYixjKVswXSk6aC5wdXNoKE4oYixjKSk7cmV0dXJuIGh9LDEpLGM9dGhpcy5yb3dzKC0xKTtjLnBvcCgpO2gubWVyZ2UoYyxiKTsKcmV0dXJuIGN9KTtwKCJyb3coKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYmIodGhpcy5yb3dzKGEsYikpfSk7cCgicm93KCkuZGF0YSgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7aWYoYT09PWspcmV0dXJuIGIubGVuZ3RoJiZ0aGlzLmxlbmd0aD9iWzBdLmFvRGF0YVt0aGlzWzBdXS5fYURhdGE6aztiWzBdLmFvRGF0YVt0aGlzWzBdXS5fYURhdGE9YTtjYShiWzBdLHRoaXNbMF0sImRhdGEiKTtyZXR1cm4gdGhpc30pO3AoInJvdygpLm5vZGUoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiZ0aGlzLmxlbmd0aD9hWzBdLmFvRGF0YVt0aGlzWzBdXS5uVHJ8fG51bGw6bnVsbH0pO3AoInJvdy5hZGQoKSIsZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIGgmJmEubGVuZ3RoJiYoYT1hWzBdKTt2YXIgYj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7cmV0dXJuIGEubm9kZU5hbWUmJiJUUiI9PT1hLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk/Cm1hKGIsYSlbMF06TihiLGEpfSk7cmV0dXJuIHRoaXMucm93KGJbMF0pfSk7dmFyIGNiPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5jb250ZXh0O2lmKGMubGVuZ3RoJiYoYz1jWzBdLmFvRGF0YVtiIT09az9iOmFbMF1dKSYmYy5fZGV0YWlscyljLl9kZXRhaWxzLnJlbW92ZSgpLGMuX2RldGFpbHNTaG93PWssYy5fZGV0YWlscz1rfSxWYj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGV4dDtpZihjLmxlbmd0aCYmYS5sZW5ndGgpe3ZhciBkPWNbMF0uYW9EYXRhW2FbMF1dO2lmKGQuX2RldGFpbHMpeyhkLl9kZXRhaWxzU2hvdz1iKT9kLl9kZXRhaWxzLmluc2VydEFmdGVyKGQublRyKTpkLl9kZXRhaWxzLmRldGFjaCgpO3ZhciBlPWNbMF0sZj1uZXcgcihlKSxnPWUuYW9EYXRhO2Yub2ZmKCJkcmF3LmR0LkRUX2RldGFpbHMgY29sdW1uLXZpc2liaWxpdHkuZHQuRFRfZGV0YWlscyBkZXN0cm95LmR0LkRUX2RldGFpbHMiKTswPEcoZywiX2RldGFpbHMiKS5sZW5ndGgmJihmLm9uKCJkcmF3LmR0LkRUX2RldGFpbHMiLApmdW5jdGlvbihhLGIpe2U9PT1iJiZmLnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuZXEoMCkuZWFjaChmdW5jdGlvbihhKXthPWdbYV07YS5fZGV0YWlsc1Nob3cmJmEuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYS5uVHIpfSl9KSxmLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVF9kZXRhaWxzIixmdW5jdGlvbihhLGIpe2lmKGU9PT1iKWZvcih2YXIgYyxkPWFhKGIpLGY9MCxoPWcubGVuZ3RoO2Y8aDtmKyspYz1nW2ZdLGMuX2RldGFpbHMmJmMuX2RldGFpbHMuY2hpbGRyZW4oInRkW2NvbHNwYW5dIikuYXR0cigiY29sc3BhbiIsZCl9KSxmLm9uKCJkZXN0cm95LmR0LkRUX2RldGFpbHMiLGZ1bmN0aW9uKGEsYil7aWYoZT09PWIpZm9yKHZhciBjPTAsZD1nLmxlbmd0aDtjPGQ7YysrKWdbY10uX2RldGFpbHMmJmNiKGYsYyl9KSl9fX07cCgicm93KCkuY2hpbGQoKSIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRleHQ7aWYoYT09PWspcmV0dXJuIGMubGVuZ3RoJiZ0aGlzLmxlbmd0aD8KY1swXS5hb0RhdGFbdGhpc1swXV0uX2RldGFpbHM6aztpZighMD09PWEpdGhpcy5jaGlsZC5zaG93KCk7ZWxzZSBpZighMT09PWEpY2IodGhpcyk7ZWxzZSBpZihjLmxlbmd0aCYmdGhpcy5sZW5ndGgpe3ZhciBkPWNbMF0sYz1jWzBdLmFvRGF0YVt0aGlzWzBdXSxlPVtdLGY9ZnVuY3Rpb24oYSxiKXtpZihoLmlzQXJyYXkoYSl8fGEgaW5zdGFuY2VvZiBoKWZvcih2YXIgYz0wLGs9YS5sZW5ndGg7YzxrO2MrKylmKGFbY10sYik7ZWxzZSBhLm5vZGVOYW1lJiYidHIiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP2UucHVzaChhKTooYz1oKCI8dHI+PHRkLz48L3RyPiIpLmFkZENsYXNzKGIpLGgoInRkIixjKS5hZGRDbGFzcyhiKS5odG1sKGEpWzBdLmNvbFNwYW49YWEoZCksZS5wdXNoKGNbMF0pKX07ZihhLGIpO2MuX2RldGFpbHMmJmMuX2RldGFpbHMucmVtb3ZlKCk7Yy5fZGV0YWlscz1oKGUpO2MuX2RldGFpbHNTaG93JiZjLl9kZXRhaWxzLmluc2VydEFmdGVyKGMublRyKX1yZXR1cm4gdGhpc30pOwpwKFsicm93KCkuY2hpbGQuc2hvdygpIiwicm93KCkuY2hpbGQoKS5zaG93KCkiXSxmdW5jdGlvbigpe1ZiKHRoaXMsITApO3JldHVybiB0aGlzfSk7cChbInJvdygpLmNoaWxkLmhpZGUoKSIsInJvdygpLmNoaWxkKCkuaGlkZSgpIl0sZnVuY3Rpb24oKXtWYih0aGlzLCExKTtyZXR1cm4gdGhpc30pO3AoWyJyb3coKS5jaGlsZC5yZW1vdmUoKSIsInJvdygpLmNoaWxkKCkucmVtb3ZlKCkiXSxmdW5jdGlvbigpe2NiKHRoaXMpO3JldHVybiB0aGlzfSk7cCgicm93KCkuY2hpbGQuaXNTaG93bigpIixmdW5jdGlvbigpe3ZhciBhPXRoaXMuY29udGV4dDtyZXR1cm4gYS5sZW5ndGgmJnRoaXMubGVuZ3RoP2FbMF0uYW9EYXRhW3RoaXNbMF1dLl9kZXRhaWxzU2hvd3x8ITE6ITF9KTt2YXIgZWM9L14oLispOihuYW1lfHZpc0lkeHx2aXNpYmxlKSQvLFdiPWZ1bmN0aW9uKGEsYixjLGQsZSl7Zm9yKHZhciBjPVtdLGQ9MCxmPWUubGVuZ3RoO2Q8ZjtkKyspYy5wdXNoKEIoYSxlW2RdLGIpKTsKcmV0dXJuIGN9O3AoImNvbHVtbnMoKSIsZnVuY3Rpb24oYSxiKXthPT09az9hPSIiOmguaXNQbGFpbk9iamVjdChhKSYmKGI9YSxhPSIiKTt2YXIgYj1hYihiKSxjPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjKXt2YXIgZT1hLGY9YixnPWMuYW9Db2x1bW5zLGo9RyhnLCJzTmFtZSIpLGk9RyhnLCJuVGgiKTtyZXR1cm4gJGEoImNvbHVtbiIsZSxmdW5jdGlvbihhKXt2YXIgYj1QYihhKTtpZihhPT09IiIpcmV0dXJuIFcoZy5sZW5ndGgpO2lmKGIhPT1udWxsKXJldHVybltiPj0wP2I6Zy5sZW5ndGgrYl07aWYodHlwZW9mIGE9PT0iZnVuY3Rpb24iKXt2YXIgZT1CYShjLGYpO3JldHVybiBoLm1hcChnLGZ1bmN0aW9uKGIsZil7cmV0dXJuIGEoZixXYihjLGYsMCwwLGUpLGlbZl0pP2Y6bnVsbH0pfXZhciBrPXR5cGVvZiBhPT09InN0cmluZyI/YS5tYXRjaChlYyk6IiI7aWYoaylzd2l0Y2goa1syXSl7Y2FzZSAidmlzSWR4IjpjYXNlICJ2aXNpYmxlIjpiPXBhcnNlSW50KGtbMV0sCjEwKTtpZihiPDApe3ZhciBtPWgubWFwKGcsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5iVmlzaWJsZT9iOm51bGx9KTtyZXR1cm5bbVttLmxlbmd0aCtiXV19cmV0dXJuW1ooYyxiKV07Y2FzZSAibmFtZSI6cmV0dXJuIGgubWFwKGosZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT09PWtbMV0/YjpudWxsfSk7ZGVmYXVsdDpyZXR1cm5bXX1pZihhLm5vZGVOYW1lJiZhLl9EVF9DZWxsSW5kZXgpcmV0dXJuW2EuX0RUX0NlbGxJbmRleC5jb2x1bW5dO2I9aChpKS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGguaW5BcnJheSh0aGlzLGkpfSkudG9BcnJheSgpO2lmKGIubGVuZ3RofHwhYS5ub2RlTmFtZSlyZXR1cm4gYjtiPWgoYSkuY2xvc2VzdCgiKltkYXRhLWR0LWNvbHVtbl0iKTtyZXR1cm4gYi5sZW5ndGg/W2IuZGF0YSgiZHQtY29sdW1uIildOltdfSxjLGYpfSwxKTtjLnNlbGVjdG9yLmNvbHM9YTtjLnNlbGVjdG9yLm9wdHM9YjtyZXR1cm4gY30pO3MoImNvbHVtbnMoKS5oZWFkZXIoKSIsCiJjb2x1bW4oKS5oZWFkZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvQ29sdW1uc1tiXS5uVGh9LDEpfSk7cygiY29sdW1ucygpLmZvb3RlcigpIiwiY29sdW1uKCkuZm9vdGVyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5hb0NvbHVtbnNbYl0ublRmfSwxKX0pO3MoImNvbHVtbnMoKS5kYXRhKCkiLCJjb2x1bW4oKS5kYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixXYiwxKX0pO3MoImNvbHVtbnMoKS5kYXRhU3JjKCkiLCJjb2x1bW4oKS5kYXRhU3JjKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5hb0NvbHVtbnNbYl0ubURhdGF9LDEpfSk7cygiY29sdW1ucygpLmNhY2hlKCkiLCJjb2x1bW4oKS5jYWNoZSgpIiwKZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbihiLGMsZCxlLGYpe3JldHVybiBoYShiLmFvRGF0YSxmLCJzZWFyY2giPT09YT8iX2FGaWx0ZXJEYXRhIjoiX2FTb3J0RGF0YSIsYyl9LDEpfSk7cygiY29sdW1ucygpLm5vZGVzKCkiLCJjb2x1bW4oKS5ub2RlcygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4gaGEoYS5hb0RhdGEsZSwiYW5DZWxscyIsYil9LDEpfSk7cygiY29sdW1ucygpLnZpc2libGUoKSIsImNvbHVtbigpLnZpc2libGUoKSIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGIsYyl7aWYoYT09PWspcmV0dXJuIGIuYW9Db2x1bW5zW2NdLmJWaXNpYmxlO3ZhciBmPWIuYW9Db2x1bW5zLGc9ZltjXSxqPWIuYW9EYXRhLGksbixsO2lmKGEhPT1rJiZnLmJWaXNpYmxlIT09YSl7aWYoYSl7dmFyIG09CmguaW5BcnJheSghMCxHKGYsImJWaXNpYmxlIiksYysxKTtpPTA7Zm9yKG49ai5sZW5ndGg7aTxuO2krKylsPWpbaV0ublRyLGY9altpXS5hbkNlbGxzLGwmJmwuaW5zZXJ0QmVmb3JlKGZbY10sZlttXXx8bnVsbCl9ZWxzZSBoKEcoYi5hb0RhdGEsImFuQ2VsbHMiLGMpKS5kZXRhY2goKTtnLmJWaXNpYmxlPWE7ZWEoYixiLmFvSGVhZGVyKTtlYShiLGIuYW9Gb290ZXIpO3dhKGIpfX0pO2EhPT1rJiYodGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihjLGUpe3UoYyxudWxsLCJjb2x1bW4tdmlzaWJpbGl0eSIsW2MsZSxhLGJdKX0pLChiPT09a3x8YikmJnRoaXMuY29sdW1ucy5hZGp1c3QoKSk7cmV0dXJuIGN9KTtzKCJjb2x1bW5zKCkuaW5kZXhlcygpIiwiY29sdW1uKCkuaW5kZXgoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYixjKXtyZXR1cm4idmlzaWJsZSI9PT1hPyQoYixjKTpjfSwxKX0pO3AoImNvbHVtbnMuYWRqdXN0KCkiLApmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7WShhKX0sMSl9KTtwKCJjb2x1bW4uaW5kZXgoKSIsZnVuY3Rpb24oYSxiKXtpZigwIT09dGhpcy5jb250ZXh0Lmxlbmd0aCl7dmFyIGM9dGhpcy5jb250ZXh0WzBdO2lmKCJmcm9tVmlzaWJsZSI9PT1hfHwidG9EYXRhIj09PWEpcmV0dXJuIFooYyxiKTtpZigiZnJvbURhdGEiPT09YXx8InRvVmlzaWJsZSI9PT1hKXJldHVybiAkKGMsYil9fSk7cCgiY29sdW1uKCkiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGJiKHRoaXMuY29sdW1ucyhhLGIpKX0pO3AoImNlbGxzKCkiLGZ1bmN0aW9uKGEsYixjKXtoLmlzUGxhaW5PYmplY3QoYSkmJihhLnJvdz09PWs/KGM9YSxhPW51bGwpOihjPWIsYj1udWxsKSk7aC5pc1BsYWluT2JqZWN0KGIpJiYoYz1iLGI9bnVsbCk7aWYobnVsbD09PWJ8fGI9PT1rKXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7dmFyIGQ9YSxlPWFiKGMpLGY9CmIuYW9EYXRhLGc9QmEoYixlKSxqPVNiKGhhKGYsZywiYW5DZWxscyIpKSxpPWgoW10uY29uY2F0LmFwcGx5KFtdLGopKSxsLG49Yi5hb0NvbHVtbnMubGVuZ3RoLG0scCxyLHUsdixzO3JldHVybiAkYSgiY2VsbCIsZCxmdW5jdGlvbihhKXt2YXIgYz10eXBlb2YgYT09PSJmdW5jdGlvbiI7aWYoYT09PW51bGx8fGE9PT1rfHxjKXttPVtdO3A9MDtmb3Iocj1nLmxlbmd0aDtwPHI7cCsrKXtsPWdbcF07Zm9yKHU9MDt1PG47dSsrKXt2PXtyb3c6bCxjb2x1bW46dX07aWYoYyl7cz1mW2xdO2EodixCKGIsbCx1KSxzLmFuQ2VsbHM/cy5hbkNlbGxzW3VdOm51bGwpJiZtLnB1c2godil9ZWxzZSBtLnB1c2godil9fXJldHVybiBtfWlmKGguaXNQbGFpbk9iamVjdChhKSlyZXR1cm5bYV07Yz1pLmZpbHRlcihhKS5tYXAoZnVuY3Rpb24oYSxiKXtyZXR1cm57cm93OmIuX0RUX0NlbGxJbmRleC5yb3csY29sdW1uOmIuX0RUX0NlbGxJbmRleC5jb2x1bW59fSkudG9BcnJheSgpO2lmKGMubGVuZ3RofHwKIWEubm9kZU5hbWUpcmV0dXJuIGM7cz1oKGEpLmNsb3Nlc3QoIipbZGF0YS1kdC1yb3ddIik7cmV0dXJuIHMubGVuZ3RoP1t7cm93OnMuZGF0YSgiZHQtcm93IiksY29sdW1uOnMuZGF0YSgiZHQtY29sdW1uIil9XTpbXX0sYixlKX0pO3ZhciBkPXRoaXMuY29sdW1ucyhiLGMpLGU9dGhpcy5yb3dzKGEsYyksZixnLGosaSxuLGw9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEsYil7Zj1bXTtnPTA7Zm9yKGo9ZVtiXS5sZW5ndGg7ZzxqO2crKyl7aT0wO2ZvcihuPWRbYl0ubGVuZ3RoO2k8bjtpKyspZi5wdXNoKHtyb3c6ZVtiXVtnXSxjb2x1bW46ZFtiXVtpXX0pfXJldHVybiBmfSwxKTtoLmV4dGVuZChsLnNlbGVjdG9yLHtjb2xzOmIscm93czphLG9wdHM6Y30pO3JldHVybiBsfSk7cygiY2VsbHMoKS5ub2RlcygpIiwiY2VsbCgpLm5vZGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybihhPWEuYW9EYXRhW2JdKSYmCmEuYW5DZWxscz9hLmFuQ2VsbHNbY106a30sMSl9KTtwKCJjZWxscygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBCKGEsYixjKX0sMSl9KTtzKCJjZWxscygpLmNhY2hlKCkiLCJjZWxsKCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7YT0ic2VhcmNoIj09PWE/Il9hRmlsdGVyRGF0YSI6Il9hU29ydERhdGEiO3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGIuYW9EYXRhW2NdW2FdW2RdfSwxKX0pO3MoImNlbGxzKCkucmVuZGVyKCkiLCJjZWxsKCkucmVuZGVyKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7cmV0dXJuIEIoYixjLGQsYSl9LDEpfSk7cygiY2VsbHMoKS5pbmRleGVzKCkiLCJjZWxsKCkuaW5kZXgoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSwKYixjKXtyZXR1cm57cm93OmIsY29sdW1uOmMsY29sdW1uVmlzaWJsZTokKGEsYyl9fSwxKX0pO3MoImNlbGxzKCkuaW52YWxpZGF0ZSgpIiwiY2VsbCgpLmludmFsaWRhdGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGIsYyxkKXtjYShiLGMsYSxkKX0pfSk7cCgiY2VsbCgpIixmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGJiKHRoaXMuY2VsbHMoYSxiLGMpKX0pO3AoImNlbGwoKS5kYXRhKCkiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY29udGV4dCxjPXRoaXNbMF07aWYoYT09PWspcmV0dXJuIGIubGVuZ3RoJiZjLmxlbmd0aD9CKGJbMF0sY1swXS5yb3csY1swXS5jb2x1bW4pOms7amIoYlswXSxjWzBdLnJvdyxjWzBdLmNvbHVtbixhKTtjYShiWzBdLGNbMF0ucm93LCJkYXRhIixjWzBdLmNvbHVtbik7cmV0dXJuIHRoaXN9KTtwKCJvcmRlcigpIixmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGV4dDtpZihhPT09aylyZXR1cm4gMCE9PQpjLmxlbmd0aD9jWzBdLmFhU29ydGluZzprOyJudW1iZXIiPT09dHlwZW9mIGE/YT1bW2EsYl1dOmEubGVuZ3RoJiYhaC5pc0FycmF5KGFbMF0pJiYoYT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe2IuYWFTb3J0aW5nPWEuc2xpY2UoKX0pfSk7cCgib3JkZXIubGlzdGVuZXIoKSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZCl7TWEoZCxhLGIsYyl9KX0pO3AoIm9yZGVyLmZpeGVkKCkiLGZ1bmN0aW9uKGEpe2lmKCFhKXt2YXIgYj10aGlzLmNvbnRleHQsYj1iLmxlbmd0aD9iWzBdLmFhU29ydGluZ0ZpeGVkOms7cmV0dXJuIGguaXNBcnJheShiKT97cHJlOmJ9OmJ9cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtiLmFhU29ydGluZ0ZpeGVkPWguZXh0ZW5kKCEwLHt9LGEpfSl9KTtwKFsiY29sdW1ucygpLm9yZGVyKCkiLAoiY29sdW1uKCkub3JkZXIoKSJdLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihjLGQpe3ZhciBlPVtdO2guZWFjaChiW2RdLGZ1bmN0aW9uKGIsYyl7ZS5wdXNoKFtjLGFdKX0pO2MuYWFTb3J0aW5nPWV9KX0pO3AoInNlYXJjaCgpIixmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT10aGlzLmNvbnRleHQ7cmV0dXJuIGE9PT1rPzAhPT1lLmxlbmd0aD9lWzBdLm9QcmV2aW91c1NlYXJjaC5zU2VhcmNoOms6dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGUpe2Uub0ZlYXR1cmVzLmJGaWx0ZXImJmZhKGUsaC5leHRlbmQoe30sZS5vUHJldmlvdXNTZWFyY2gse3NTZWFyY2g6YSsiIixiUmVnZXg6bnVsbD09PWI/ITE6YixiU21hcnQ6bnVsbD09PWM/ITA6YyxiQ2FzZUluc2Vuc2l0aXZlOm51bGw9PT1kPyEwOmR9KSwxKX0pfSk7cygiY29sdW1ucygpLnNlYXJjaCgpIiwiY29sdW1uKCkuc2VhcmNoKCkiLGZ1bmN0aW9uKGEsCmIsYyxkKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihlLGYpe3ZhciBnPWUuYW9QcmVTZWFyY2hDb2xzO2lmKGE9PT1rKXJldHVybiBnW2ZdLnNTZWFyY2g7ZS5vRmVhdHVyZXMuYkZpbHRlciYmKGguZXh0ZW5kKGdbZl0se3NTZWFyY2g6YSsiIixiUmVnZXg6bnVsbD09PWI/ITE6YixiU21hcnQ6bnVsbD09PWM/ITA6YyxiQ2FzZUluc2Vuc2l0aXZlOm51bGw9PT1kPyEwOmR9KSxmYShlLGUub1ByZXZpb3VzU2VhcmNoLDEpKX0pfSk7cCgic3RhdGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0Lmxlbmd0aD90aGlzLmNvbnRleHRbMF0ub1NhdmVkU3RhdGU6bnVsbH0pO3AoInN0YXRlLmNsZWFyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXthLmZuU3RhdGVTYXZlQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhLHt9KX0pfSk7cCgic3RhdGUubG9hZGVkKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGV4dC5sZW5ndGg/CnRoaXMuY29udGV4dFswXS5vTG9hZGVkU3RhdGU6bnVsbH0pO3AoInN0YXRlLnNhdmUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3dhKGEpfSl9KTttLnZlcnNpb25DaGVjaz1tLmZuVmVyc2lvbkNoZWNrPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1tLnZlcnNpb24uc3BsaXQoIi4iKSxhPWEuc3BsaXQoIi4iKSxjLGQsZT0wLGY9YS5sZW5ndGg7ZTxmO2UrKylpZihjPXBhcnNlSW50KGJbZV0sMTApfHwwLGQ9cGFyc2VJbnQoYVtlXSwxMCl8fDAsYyE9PWQpcmV0dXJuIGM+ZDtyZXR1cm4hMH07bS5pc0RhdGFUYWJsZT1tLmZuSXNEYXRhVGFibGU9ZnVuY3Rpb24oYSl7dmFyIGI9aChhKS5nZXQoMCksYz0hMTtoLmVhY2gobS5zZXR0aW5ncyxmdW5jdGlvbihhLGUpe3ZhciBmPWUublNjcm9sbEhlYWQ/aCgidGFibGUiLGUublNjcm9sbEhlYWQpWzBdOm51bGwsZz1lLm5TY3JvbGxGb290P2goInRhYmxlIixlLm5TY3JvbGxGb290KVswXToKbnVsbDtpZihlLm5UYWJsZT09PWJ8fGY9PT1ifHxnPT09YiljPSEwfSk7cmV0dXJuIGN9O20udGFibGVzPW0uZm5UYWJsZXM9ZnVuY3Rpb24oYSl7dmFyIGI9ITE7aC5pc1BsYWluT2JqZWN0KGEpJiYoYj1hLmFwaSxhPWEudmlzaWJsZSk7dmFyIGM9aC5tYXAobS5zZXR0aW5ncyxmdW5jdGlvbihiKXtpZighYXx8YSYmaChiLm5UYWJsZSkuaXMoIjp2aXNpYmxlIikpcmV0dXJuIGIublRhYmxlfSk7cmV0dXJuIGI/bmV3IHIoYyk6Y307bS5jYW1lbFRvSHVuZ2FyaWFuPUs7cCgiJCgpIixmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucm93cyhiKS5ub2RlcygpLGM9aChjKTtyZXR1cm4gaChbXS5jb25jYXQoYy5maWx0ZXIoYSkudG9BcnJheSgpLGMuZmluZChhKS50b0FycmF5KCkpKX0pO2guZWFjaChbIm9uIiwib25lIiwib2ZmIl0sZnVuY3Rpb24oYSxiKXtwKGIrIigpIixmdW5jdGlvbigpe3ZhciBhPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7YVswXS5tYXRjaCgvXC5kdFxiLyl8fAooYVswXSs9Ii5kdCIpO3ZhciBkPWgodGhpcy50YWJsZXMoKS5ub2RlcygpKTtkW2JdLmFwcGx5KGQsYSk7cmV0dXJuIHRoaXN9KX0pO3AoImNsZWFyKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtuYShhKX0pfSk7cCgic2V0dGluZ3MoKSIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIodGhpcy5jb250ZXh0LHRoaXMuY29udGV4dCl9KTtwKCJpbml0KCkiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb250ZXh0O3JldHVybiBhLmxlbmd0aD9hWzBdLm9Jbml0Om51bGx9KTtwKCJkYXRhKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gRyhhLmFvRGF0YSwiX2FEYXRhIil9KS5mbGF0dGVuKCl9KTtwKCJkZXN0cm95KCkiLGZ1bmN0aW9uKGEpe2E9YXx8ITE7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgYz1iLm5UYWJsZVdyYXBwZXIucGFyZW50Tm9kZSwKZD1iLm9DbGFzc2VzLGU9Yi5uVGFibGUsZj1iLm5UQm9keSxnPWIublRIZWFkLGo9Yi5uVEZvb3QsaT1oKGUpLGY9aChmKSxrPWgoYi5uVGFibGVXcmFwcGVyKSxsPWgubWFwKGIuYW9EYXRhLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5Ucn0pLHA7Yi5iRGVzdHJveWluZz0hMDt1KGIsImFvRGVzdHJveUNhbGxiYWNrIiwiZGVzdHJveSIsW2JdKTthfHwobmV3IHIoYikpLmNvbHVtbnMoKS52aXNpYmxlKCEwKTtrLnVuYmluZCgiLkRUIikuZmluZCgiOm5vdCh0Ym9keSAqKSIpLnVuYmluZCgiLkRUIik7aChEKS51bmJpbmQoIi5EVC0iK2Iuc0luc3RhbmNlKTtlIT1nLnBhcmVudE5vZGUmJihpLmNoaWxkcmVuKCJ0aGVhZCIpLmRldGFjaCgpLGkuYXBwZW5kKGcpKTtqJiZlIT1qLnBhcmVudE5vZGUmJihpLmNoaWxkcmVuKCJ0Zm9vdCIpLmRldGFjaCgpLGkuYXBwZW5kKGopKTtiLmFhU29ydGluZz1bXTtiLmFhU29ydGluZ0ZpeGVkPVtdO3ZhKGIpO2gobCkucmVtb3ZlQ2xhc3MoYi5hc1N0cmlwZUNsYXNzZXMuam9pbigiICIpKTsKaCgidGgsIHRkIixnKS5yZW1vdmVDbGFzcyhkLnNTb3J0YWJsZSsiICIrZC5zU29ydGFibGVBc2MrIiAiK2Quc1NvcnRhYmxlRGVzYysiICIrZC5zU29ydGFibGVOb25lKTtiLmJKVUkmJihoKCJ0aCBzcGFuLiIrZC5zU29ydEljb24rIiwgdGQgc3Bhbi4iK2Quc1NvcnRJY29uLGcpLmRldGFjaCgpLGgoInRoLCB0ZCIsZykuZWFjaChmdW5jdGlvbigpe3ZhciBhPWgoImRpdi4iK2Quc1NvcnRKVUlXcmFwcGVyLHRoaXMpO2godGhpcykuYXBwZW5kKGEuY29udGVudHMoKSk7YS5kZXRhY2goKX0pKTtmLmNoaWxkcmVuKCkuZGV0YWNoKCk7Zi5hcHBlbmQobCk7Zz1hPyJyZW1vdmUiOiJkZXRhY2giO2lbZ10oKTtrW2ddKCk7IWEmJmMmJihjLmluc2VydEJlZm9yZShlLGIublRhYmxlUmVpbnNlcnRCZWZvcmUpLGkuY3NzKCJ3aWR0aCIsYi5zRGVzdHJveVdpZHRoKS5yZW1vdmVDbGFzcyhkLnNUYWJsZSksKHA9Yi5hc0Rlc3Ryb3lTdHJpcGVzLmxlbmd0aCkmJmYuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKGEpe2godGhpcykuYWRkQ2xhc3MoYi5hc0Rlc3Ryb3lTdHJpcGVzW2ElCnBdKX0pKTtjPWguaW5BcnJheShiLG0uc2V0dGluZ3MpOy0xIT09YyYmbS5zZXR0aW5ncy5zcGxpY2UoYywxKX0pfSk7aC5lYWNoKFsiY29sdW1uIiwicm93IiwiY2VsbCJdLGZ1bmN0aW9uKGEsYil7cChiKyJzKCkuZXZlcnkoKSIsZnVuY3Rpb24oYSl7dmFyIGQ9dGhpcy5zZWxlY3Rvci5vcHRzLGU9dGhpcztyZXR1cm4gdGhpcy5pdGVyYXRvcihiLGZ1bmN0aW9uKGYsZyxoLGksbil7YS5jYWxsKGVbYl0oZywiY2VsbCI9PT1iP2g6ZCwiY2VsbCI9PT1iP2Q6ayksZyxoLGksbil9KX0pfSk7cCgiaTE4bigpIixmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpcy5jb250ZXh0WzBdLGE9UShhKShkLm9MYW5ndWFnZSk7YT09PWsmJihhPWIpO2MhPT1rJiZoLmlzUGxhaW5PYmplY3QoYSkmJihhPWFbY10hPT1rP2FbY106YS5fKTtyZXR1cm4gYS5yZXBsYWNlKCIlZCIsYyl9KTttLnZlcnNpb249IjEuMTAuMTIiO20uc2V0dGluZ3M9W107bS5tb2RlbHM9e307bS5tb2RlbHMub1NlYXJjaD17YkNhc2VJbnNlbnNpdGl2ZTohMCwKc1NlYXJjaDoiIixiUmVnZXg6ITEsYlNtYXJ0OiEwfTttLm1vZGVscy5vUm93PXtuVHI6bnVsbCxhbkNlbGxzOm51bGwsX2FEYXRhOltdLF9hU29ydERhdGE6bnVsbCxfYUZpbHRlckRhdGE6bnVsbCxfc0ZpbHRlclJvdzpudWxsLF9zUm93U3RyaXBlOiIiLHNyYzpudWxsLGlkeDotMX07bS5tb2RlbHMub0NvbHVtbj17aWR4Om51bGwsYURhdGFTb3J0Om51bGwsYXNTb3J0aW5nOm51bGwsYlNlYXJjaGFibGU6bnVsbCxiU29ydGFibGU6bnVsbCxiVmlzaWJsZTpudWxsLF9zTWFudWFsVHlwZTpudWxsLF9iQXR0clNyYzohMSxmbkNyZWF0ZWRDZWxsOm51bGwsZm5HZXREYXRhOm51bGwsZm5TZXREYXRhOm51bGwsbURhdGE6bnVsbCxtUmVuZGVyOm51bGwsblRoOm51bGwsblRmOm51bGwsc0NsYXNzOm51bGwsc0NvbnRlbnRQYWRkaW5nOm51bGwsc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6bnVsbCxzU29ydERhdGFUeXBlOiJzdGQiLHNTb3J0aW5nQ2xhc3M6bnVsbCxzU29ydGluZ0NsYXNzSlVJOm51bGwsCnNUaXRsZTpudWxsLHNUeXBlOm51bGwsc1dpZHRoOm51bGwsc1dpZHRoT3JpZzpudWxsfTttLmRlZmF1bHRzPXthYURhdGE6bnVsbCxhYVNvcnRpbmc6W1swLCJhc2MiXV0sYWFTb3J0aW5nRml4ZWQ6W10sYWpheDpudWxsLGFMZW5ndGhNZW51OlsxMCwyNSw1MCwxMDBdLGFvQ29sdW1uczpudWxsLGFvQ29sdW1uRGVmczpudWxsLGFvU2VhcmNoQ29sczpbXSxhc1N0cmlwZUNsYXNzZXM6bnVsbCxiQXV0b1dpZHRoOiEwLGJEZWZlclJlbmRlcjohMSxiRGVzdHJveTohMSxiRmlsdGVyOiEwLGJJbmZvOiEwLGJKUXVlcnlVSTohMSxiTGVuZ3RoQ2hhbmdlOiEwLGJQYWdpbmF0ZTohMCxiUHJvY2Vzc2luZzohMSxiUmV0cmlldmU6ITEsYlNjcm9sbENvbGxhcHNlOiExLGJTZXJ2ZXJTaWRlOiExLGJTb3J0OiEwLGJTb3J0TXVsdGk6ITAsYlNvcnRDZWxsc1RvcDohMSxiU29ydENsYXNzZXM6ITAsYlN0YXRlU2F2ZTohMSxmbkNyZWF0ZWRSb3c6bnVsbCxmbkRyYXdDYWxsYmFjazpudWxsLGZuRm9vdGVyQ2FsbGJhY2s6bnVsbCwKZm5Gb3JtYXROdW1iZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9TdHJpbmcoKS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpKS9nLHRoaXMub0xhbmd1YWdlLnNUaG91c2FuZHMpfSxmbkhlYWRlckNhbGxiYWNrOm51bGwsZm5JbmZvQ2FsbGJhY2s6bnVsbCxmbkluaXRDb21wbGV0ZTpudWxsLGZuUHJlRHJhd0NhbGxiYWNrOm51bGwsZm5Sb3dDYWxsYmFjazpudWxsLGZuU2VydmVyRGF0YTpudWxsLGZuU2VydmVyUGFyYW1zOm51bGwsZm5TdGF0ZUxvYWRDYWxsYmFjazpmdW5jdGlvbihhKXt0cnl7cmV0dXJuIEpTT04ucGFyc2UoKC0xPT09YS5pU3RhdGVEdXJhdGlvbj9zZXNzaW9uU3RvcmFnZTpsb2NhbFN0b3JhZ2UpLmdldEl0ZW0oIkRhdGFUYWJsZXNfIithLnNJbnN0YW5jZSsiXyIrbG9jYXRpb24ucGF0aG5hbWUpKX1jYXRjaChiKXt9fSxmblN0YXRlTG9hZFBhcmFtczpudWxsLGZuU3RhdGVMb2FkZWQ6bnVsbCxmblN0YXRlU2F2ZUNhbGxiYWNrOmZ1bmN0aW9uKGEsYil7dHJ5eygtMT09PQphLmlTdGF0ZUR1cmF0aW9uP3Nlc3Npb25TdG9yYWdlOmxvY2FsU3RvcmFnZSkuc2V0SXRlbSgiRGF0YVRhYmxlc18iK2Euc0luc3RhbmNlKyJfIitsb2NhdGlvbi5wYXRobmFtZSxKU09OLnN0cmluZ2lmeShiKSl9Y2F0Y2goYyl7fX0sZm5TdGF0ZVNhdmVQYXJhbXM6bnVsbCxpU3RhdGVEdXJhdGlvbjo3MjAwLGlEZWZlckxvYWRpbmc6bnVsbCxpRGlzcGxheUxlbmd0aDoxMCxpRGlzcGxheVN0YXJ0OjAsaVRhYkluZGV4OjAsb0NsYXNzZXM6e30sb0xhbmd1YWdlOntvQXJpYTp7c1NvcnRBc2NlbmRpbmc6IjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gYXNjZW5kaW5nIixzU29ydERlc2NlbmRpbmc6IjogYWN0aXZhdGUgdG8gc29ydCBjb2x1bW4gZGVzY2VuZGluZyJ9LG9QYWdpbmF0ZTp7c0ZpcnN0OiJGaXJzdCIsc0xhc3Q6Ikxhc3QiLHNOZXh0OiJOZXh0IixzUHJldmlvdXM6IlByZXZpb3VzIn0sc0VtcHR5VGFibGU6Ik5vIGRhdGEgYXZhaWxhYmxlIGluIHRhYmxlIixzSW5mbzoiU2hvd2luZyBfU1RBUlRfIHRvIF9FTkRfIG9mIF9UT1RBTF8gZW50cmllcyIsCnNJbmZvRW1wdHk6IlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllcyIsc0luZm9GaWx0ZXJlZDoiKGZpbHRlcmVkIGZyb20gX01BWF8gdG90YWwgZW50cmllcykiLHNJbmZvUG9zdEZpeDoiIixzRGVjaW1hbDoiIixzVGhvdXNhbmRzOiIsIixzTGVuZ3RoTWVudToiU2hvdyBfTUVOVV8gZW50cmllcyIsc0xvYWRpbmdSZWNvcmRzOiJMb2FkaW5nLi4uIixzUHJvY2Vzc2luZzoiUHJvY2Vzc2luZy4uLiIsc1NlYXJjaDoiU2VhcmNoOiIsc1NlYXJjaFBsYWNlaG9sZGVyOiIiLHNVcmw6IiIsc1plcm9SZWNvcmRzOiJObyBtYXRjaGluZyByZWNvcmRzIGZvdW5kIn0sb1NlYXJjaDpoLmV4dGVuZCh7fSxtLm1vZGVscy5vU2VhcmNoKSxzQWpheERhdGFQcm9wOiJkYXRhIixzQWpheFNvdXJjZTpudWxsLHNEb206ImxmcnRpcCIsc2VhcmNoRGVsYXk6bnVsbCxzUGFnaW5hdGlvblR5cGU6InNpbXBsZV9udW1iZXJzIixzU2Nyb2xsWDoiIixzU2Nyb2xsWElubmVyOiIiLHNTY3JvbGxZOiIiLHNTZXJ2ZXJNZXRob2Q6IkdFVCIsCnJlbmRlcmVyOm51bGwscm93SWQ6IkRUX1Jvd0lkIn07WChtLmRlZmF1bHRzKTttLmRlZmF1bHRzLmNvbHVtbj17YURhdGFTb3J0Om51bGwsaURhdGFTb3J0Oi0xLGFzU29ydGluZzpbImFzYyIsImRlc2MiXSxiU2VhcmNoYWJsZTohMCxiU29ydGFibGU6ITAsYlZpc2libGU6ITAsZm5DcmVhdGVkQ2VsbDpudWxsLG1EYXRhOm51bGwsbVJlbmRlcjpudWxsLHNDZWxsVHlwZToidGQiLHNDbGFzczoiIixzQ29udGVudFBhZGRpbmc6IiIsc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6IiIsc1NvcnREYXRhVHlwZToic3RkIixzVGl0bGU6bnVsbCxzVHlwZTpudWxsLHNXaWR0aDpudWxsfTtYKG0uZGVmYXVsdHMuY29sdW1uKTttLm1vZGVscy5vU2V0dGluZ3M9e29GZWF0dXJlczp7YkF1dG9XaWR0aDpudWxsLGJEZWZlclJlbmRlcjpudWxsLGJGaWx0ZXI6bnVsbCxiSW5mbzpudWxsLGJMZW5ndGhDaGFuZ2U6bnVsbCxiUGFnaW5hdGU6bnVsbCxiUHJvY2Vzc2luZzpudWxsLGJTZXJ2ZXJTaWRlOm51bGwsCmJTb3J0Om51bGwsYlNvcnRNdWx0aTpudWxsLGJTb3J0Q2xhc3NlczpudWxsLGJTdGF0ZVNhdmU6bnVsbH0sb1Njcm9sbDp7YkNvbGxhcHNlOm51bGwsaUJhcldpZHRoOjAsc1g6bnVsbCxzWElubmVyOm51bGwsc1k6bnVsbH0sb0xhbmd1YWdlOntmbkluZm9DYWxsYmFjazpudWxsfSxvQnJvd3Nlcjp7YlNjcm9sbE92ZXJzaXplOiExLGJTY3JvbGxiYXJMZWZ0OiExLGJCb3VuZGluZzohMSxiYXJXaWR0aDowfSxhamF4Om51bGwsYWFuRmVhdHVyZXM6W10sYW9EYXRhOltdLGFpRGlzcGxheTpbXSxhaURpc3BsYXlNYXN0ZXI6W10sYUlkczp7fSxhb0NvbHVtbnM6W10sYW9IZWFkZXI6W10sYW9Gb290ZXI6W10sb1ByZXZpb3VzU2VhcmNoOnt9LGFvUHJlU2VhcmNoQ29sczpbXSxhYVNvcnRpbmc6bnVsbCxhYVNvcnRpbmdGaXhlZDpbXSxhc1N0cmlwZUNsYXNzZXM6bnVsbCxhc0Rlc3Ryb3lTdHJpcGVzOltdLHNEZXN0cm95V2lkdGg6MCxhb1Jvd0NhbGxiYWNrOltdLGFvSGVhZGVyQ2FsbGJhY2s6W10sCmFvRm9vdGVyQ2FsbGJhY2s6W10sYW9EcmF3Q2FsbGJhY2s6W10sYW9Sb3dDcmVhdGVkQ2FsbGJhY2s6W10sYW9QcmVEcmF3Q2FsbGJhY2s6W10sYW9Jbml0Q29tcGxldGU6W10sYW9TdGF0ZVNhdmVQYXJhbXM6W10sYW9TdGF0ZUxvYWRQYXJhbXM6W10sYW9TdGF0ZUxvYWRlZDpbXSxzVGFibGVJZDoiIixuVGFibGU6bnVsbCxuVEhlYWQ6bnVsbCxuVEZvb3Q6bnVsbCxuVEJvZHk6bnVsbCxuVGFibGVXcmFwcGVyOm51bGwsYkRlZmVyTG9hZGluZzohMSxiSW5pdGlhbGlzZWQ6ITEsYW9PcGVuUm93czpbXSxzRG9tOm51bGwsc2VhcmNoRGVsYXk6bnVsbCxzUGFnaW5hdGlvblR5cGU6InR3b19idXR0b24iLGlTdGF0ZUR1cmF0aW9uOjAsYW9TdGF0ZVNhdmU6W10sYW9TdGF0ZUxvYWQ6W10sb1NhdmVkU3RhdGU6bnVsbCxvTG9hZGVkU3RhdGU6bnVsbCxzQWpheFNvdXJjZTpudWxsLHNBamF4RGF0YVByb3A6bnVsbCxiQWpheERhdGFHZXQ6ITAsanFYSFI6bnVsbCxqc29uOmssb0FqYXhEYXRhOmssCmZuU2VydmVyRGF0YTpudWxsLGFvU2VydmVyUGFyYW1zOltdLHNTZXJ2ZXJNZXRob2Q6bnVsbCxmbkZvcm1hdE51bWJlcjpudWxsLGFMZW5ndGhNZW51Om51bGwsaURyYXc6MCxiRHJhd2luZzohMSxpRHJhd0Vycm9yOi0xLF9pRGlzcGxheUxlbmd0aDoxMCxfaURpc3BsYXlTdGFydDowLF9pUmVjb3Jkc1RvdGFsOjAsX2lSZWNvcmRzRGlzcGxheTowLGJKVUk6bnVsbCxvQ2xhc3Nlczp7fSxiRmlsdGVyZWQ6ITEsYlNvcnRlZDohMSxiU29ydENlbGxzVG9wOm51bGwsb0luaXQ6bnVsbCxhb0Rlc3Ryb3lDYWxsYmFjazpbXSxmblJlY29yZHNUb3RhbDpmdW5jdGlvbigpe3JldHVybiJzc3AiPT15KHRoaXMpPzEqdGhpcy5faVJlY29yZHNUb3RhbDp0aGlzLmFpRGlzcGxheU1hc3Rlci5sZW5ndGh9LGZuUmVjb3Jkc0Rpc3BsYXk6ZnVuY3Rpb24oKXtyZXR1cm4ic3NwIj09eSh0aGlzKT8xKnRoaXMuX2lSZWNvcmRzRGlzcGxheTp0aGlzLmFpRGlzcGxheS5sZW5ndGh9LGZuRGlzcGxheUVuZDpmdW5jdGlvbigpe3ZhciBhPQp0aGlzLl9pRGlzcGxheUxlbmd0aCxiPXRoaXMuX2lEaXNwbGF5U3RhcnQsYz1iK2EsZD10aGlzLmFpRGlzcGxheS5sZW5ndGgsZT10aGlzLm9GZWF0dXJlcyxmPWUuYlBhZ2luYXRlO3JldHVybiBlLmJTZXJ2ZXJTaWRlPyExPT09Znx8LTE9PT1hP2IrZDpNYXRoLm1pbihiK2EsdGhpcy5faVJlY29yZHNEaXNwbGF5KTohZnx8Yz5kfHwtMT09PWE/ZDpjfSxvSW5zdGFuY2U6bnVsbCxzSW5zdGFuY2U6bnVsbCxpVGFiSW5kZXg6MCxuU2Nyb2xsSGVhZDpudWxsLG5TY3JvbGxGb290Om51bGwsYUxhc3RTb3J0OltdLG9QbHVnaW5zOnt9LHJvd0lkRm46bnVsbCxyb3dJZDpudWxsfTttLmV4dD12PXtidXR0b25zOnt9LGNsYXNzZXM6e30sYnVpbGRlcjoiLXNvdXJjZS0iLGVyck1vZGU6ImFsZXJ0IixmZWF0dXJlOltdLHNlYXJjaDpbXSxzZWxlY3Rvcjp7Y2VsbDpbXSxjb2x1bW46W10scm93OltdfSxpbnRlcm5hbDp7fSxsZWdhY3k6e2FqYXg6bnVsbH0scGFnZXI6e30scmVuZGVyZXI6e3BhZ2VCdXR0b246e30sCmhlYWRlcjp7fX0sb3JkZXI6e30sdHlwZTp7ZGV0ZWN0OltdLHNlYXJjaDp7fSxvcmRlcjp7fX0sX3VuaXF1ZTowLGZuVmVyc2lvbkNoZWNrOm0uZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsb0pVSUNsYXNzZXM6e30sc1ZlcnNpb246bS52ZXJzaW9ufTtoLmV4dGVuZCh2LHthZm5GaWx0ZXJpbmc6di5zZWFyY2gsYVR5cGVzOnYudHlwZS5kZXRlY3Qsb2ZuU2VhcmNoOnYudHlwZS5zZWFyY2gsb1NvcnQ6di50eXBlLm9yZGVyLGFmblNvcnREYXRhOnYub3JkZXIsYW9GZWF0dXJlczp2LmZlYXR1cmUsb0FwaTp2LmludGVybmFsLG9TdGRDbGFzc2VzOnYuY2xhc3NlcyxvUGFnaW5hdGlvbjp2LnBhZ2VyfSk7aC5leHRlbmQobS5leHQuY2xhc3Nlcyx7c1RhYmxlOiJkYXRhVGFibGUiLHNOb0Zvb3Rlcjoibm8tZm9vdGVyIixzUGFnZUJ1dHRvbjoicGFnaW5hdGVfYnV0dG9uIixzUGFnZUJ1dHRvbkFjdGl2ZToiY3VycmVudCIsc1BhZ2VCdXR0b25EaXNhYmxlZDoiZGlzYWJsZWQiLHNTdHJpcGVPZGQ6Im9kZCIsCnNTdHJpcGVFdmVuOiJldmVuIixzUm93RW1wdHk6ImRhdGFUYWJsZXNfZW1wdHkiLHNXcmFwcGVyOiJkYXRhVGFibGVzX3dyYXBwZXIiLHNGaWx0ZXI6ImRhdGFUYWJsZXNfZmlsdGVyIixzSW5mbzoiZGF0YVRhYmxlc19pbmZvIixzUGFnaW5nOiJkYXRhVGFibGVzX3BhZ2luYXRlIHBhZ2luZ18iLHNMZW5ndGg6ImRhdGFUYWJsZXNfbGVuZ3RoIixzUHJvY2Vzc2luZzoiZGF0YVRhYmxlc19wcm9jZXNzaW5nIixzU29ydEFzYzoic29ydGluZ19hc2MiLHNTb3J0RGVzYzoic29ydGluZ19kZXNjIixzU29ydGFibGU6InNvcnRpbmciLHNTb3J0YWJsZUFzYzoic29ydGluZ19hc2NfZGlzYWJsZWQiLHNTb3J0YWJsZURlc2M6InNvcnRpbmdfZGVzY19kaXNhYmxlZCIsc1NvcnRhYmxlTm9uZToic29ydGluZ19kaXNhYmxlZCIsc1NvcnRDb2x1bW46InNvcnRpbmdfIixzRmlsdGVySW5wdXQ6IiIsc0xlbmd0aFNlbGVjdDoiIixzU2Nyb2xsV3JhcHBlcjoiZGF0YVRhYmxlc19zY3JvbGwiLHNTY3JvbGxIZWFkOiJkYXRhVGFibGVzX3Njcm9sbEhlYWQiLApzU2Nyb2xsSGVhZElubmVyOiJkYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lciIsc1Njcm9sbEJvZHk6ImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsc1Njcm9sbEZvb3Q6ImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCIsc1Njcm9sbEZvb3RJbm5lcjoiZGF0YVRhYmxlc19zY3JvbGxGb290SW5uZXIiLHNIZWFkZXJUSDoiIixzRm9vdGVyVEg6IiIsc1NvcnRKVUlBc2M6IiIsc1NvcnRKVUlEZXNjOiIiLHNTb3J0SlVJOiIiLHNTb3J0SlVJQXNjQWxsb3dlZDoiIixzU29ydEpVSURlc2NBbGxvd2VkOiIiLHNTb3J0SlVJV3JhcHBlcjoiIixzU29ydEljb246IiIsc0pVSUhlYWRlcjoiIixzSlVJRm9vdGVyOiIifSk7dmFyIENhPSIiLENhPSIiLEg9Q2ErInVpLXN0YXRlLWRlZmF1bHQiLGlhPUNhKyJjc3NfcmlnaHQgdWktaWNvbiB1aS1pY29uLSIsWGI9Q2ErImZnLXRvb2xiYXIgdWktdG9vbGJhciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCI7aC5leHRlbmQobS5leHQub0pVSUNsYXNzZXMsCm0uZXh0LmNsYXNzZXMse3NQYWdlQnV0dG9uOiJmZy1idXR0b24gdWktYnV0dG9uICIrSCxzUGFnZUJ1dHRvbkFjdGl2ZToidWktc3RhdGUtZGlzYWJsZWQiLHNQYWdlQnV0dG9uRGlzYWJsZWQ6InVpLXN0YXRlLWRpc2FibGVkIixzUGFnaW5nOiJkYXRhVGFibGVzX3BhZ2luYXRlIGZnLWJ1dHRvbnNldCB1aS1idXR0b25zZXQgZmctYnV0dG9uc2V0LW11bHRpIHVpLWJ1dHRvbnNldC1tdWx0aSBwYWdpbmdfIixzU29ydEFzYzpIKyIgc29ydGluZ19hc2MiLHNTb3J0RGVzYzpIKyIgc29ydGluZ19kZXNjIixzU29ydGFibGU6SCsiIHNvcnRpbmciLHNTb3J0YWJsZUFzYzpIKyIgc29ydGluZ19hc2NfZGlzYWJsZWQiLHNTb3J0YWJsZURlc2M6SCsiIHNvcnRpbmdfZGVzY19kaXNhYmxlZCIsc1NvcnRhYmxlTm9uZTpIKyIgc29ydGluZ19kaXNhYmxlZCIsc1NvcnRKVUlBc2M6aWErInRyaWFuZ2xlLTEtbiIsc1NvcnRKVUlEZXNjOmlhKyJ0cmlhbmdsZS0xLXMiLHNTb3J0SlVJOmlhKyJjYXJhdC0yLW4tcyIsCnNTb3J0SlVJQXNjQWxsb3dlZDppYSsiY2FyYXQtMS1uIixzU29ydEpVSURlc2NBbGxvd2VkOmlhKyJjYXJhdC0xLXMiLHNTb3J0SlVJV3JhcHBlcjoiRGF0YVRhYmxlc19zb3J0X3dyYXBwZXIiLHNTb3J0SWNvbjoiRGF0YVRhYmxlc19zb3J0X2ljb24iLHNTY3JvbGxIZWFkOiJkYXRhVGFibGVzX3Njcm9sbEhlYWQgIitILHNTY3JvbGxGb290OiJkYXRhVGFibGVzX3Njcm9sbEZvb3QgIitILHNIZWFkZXJUSDpILHNGb290ZXJUSDpILHNKVUlIZWFkZXI6WGIrIiB1aS1jb3JuZXItdGwgdWktY29ybmVyLXRyIixzSlVJRm9vdGVyOlhiKyIgdWktY29ybmVyLWJsIHVpLWNvcm5lci1iciJ9KTt2YXIgTWI9bS5leHQucGFnZXI7aC5leHRlbmQoTWIse3NpbXBsZTpmdW5jdGlvbigpe3JldHVyblsicHJldmlvdXMiLCJuZXh0Il19LGZ1bGw6ZnVuY3Rpb24oKXtyZXR1cm5bImZpcnN0IiwicHJldmlvdXMiLCJuZXh0IiwibGFzdCJdfSxudW1iZXJzOmZ1bmN0aW9uKGEsYil7cmV0dXJuW3lhKGEsCmIpXX0sc2ltcGxlX251bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5bInByZXZpb3VzIix5YShhLGIpLCJuZXh0Il19LGZ1bGxfbnVtYmVyczpmdW5jdGlvbihhLGIpe3JldHVyblsiZmlyc3QiLCJwcmV2aW91cyIseWEoYSxiKSwibmV4dCIsImxhc3QiXX0sX251bWJlcnM6eWEsbnVtYmVyc19sZW5ndGg6N30pO2guZXh0ZW5kKCEwLG0uZXh0LnJlbmRlcmVyLHtwYWdlQnV0dG9uOntfOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1hLm9DbGFzc2VzLGo9YS5vTGFuZ3VhZ2Uub1BhZ2luYXRlLGk9YS5vTGFuZ3VhZ2Uub0FyaWEucGFnaW5hdGV8fHt9LGssbCxtPTAscD1mdW5jdGlvbihiLGQpe3ZhciBvLHIsdSxzLHY9ZnVuY3Rpb24oYil7VGEoYSxiLmRhdGEuYWN0aW9uLHRydWUpfTtvPTA7Zm9yKHI9ZC5sZW5ndGg7bzxyO28rKyl7cz1kW29dO2lmKGguaXNBcnJheShzKSl7dT1oKCI8Iisocy5EVF9lbHx8ImRpdiIpKyIvPiIpLmFwcGVuZFRvKGIpO3AodSxzKX1lbHNle2s9bnVsbDsKbD0iIjtzd2l0Y2gocyl7Y2FzZSAiZWxsaXBzaXMiOmIuYXBwZW5kKCc8c3BhbiBjbGFzcz0iZWxsaXBzaXMiPiYjeDIwMjY7PC9zcGFuPicpO2JyZWFrO2Nhc2UgImZpcnN0IjprPWouc0ZpcnN0O2w9cysoZT4wPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2Nhc2UgInByZXZpb3VzIjprPWouc1ByZXZpb3VzO2w9cysoZT4wPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2Nhc2UgIm5leHQiOms9ai5zTmV4dDtsPXMrKGU8Zi0xPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2Nhc2UgImxhc3QiOms9ai5zTGFzdDtsPXMrKGU8Zi0xPyIiOiIgIitnLnNQYWdlQnV0dG9uRGlzYWJsZWQpO2JyZWFrO2RlZmF1bHQ6az1zKzE7bD1lPT09cz9nLnNQYWdlQnV0dG9uQWN0aXZlOiIifWlmKGshPT1udWxsKXt1PWgoIjxhPiIseyJjbGFzcyI6Zy5zUGFnZUJ1dHRvbisiICIrbCwiYXJpYS1jb250cm9scyI6YS5zVGFibGVJZCwiYXJpYS1sYWJlbCI6aVtzXSwKImRhdGEtZHQtaWR4IjptLHRhYmluZGV4OmEuaVRhYkluZGV4LGlkOmM9PT0wJiZ0eXBlb2Ygcz09PSJzdHJpbmciP2Euc1RhYmxlSWQrIl8iK3M6bnVsbH0pLmh0bWwoaykuYXBwZW5kVG8oYik7V2EodSx7YWN0aW9uOnN9LHYpO20rK319fX0scjt0cnl7cj1oKGIpLmZpbmQoSS5hY3RpdmVFbGVtZW50KS5kYXRhKCJkdC1pZHgiKX1jYXRjaChvKXt9cChoKGIpLmVtcHR5KCksZCk7ciYmaChiKS5maW5kKCJbZGF0YS1kdC1pZHg9IityKyJdIikuZm9jdXMoKX19fSk7aC5leHRlbmQobS5leHQudHlwZS5kZXRlY3QsW2Z1bmN0aW9uKGEsYil7dmFyIGM9Yi5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIFphKGEsYyk/Im51bSIrYzpudWxsfSxmdW5jdGlvbihhKXtpZihhJiYhKGEgaW5zdGFuY2VvZiBEYXRlKSYmKCFhYy50ZXN0KGEpfHwhYmMudGVzdChhKSkpcmV0dXJuIG51bGw7dmFyIGI9RGF0ZS5wYXJzZShhKTtyZXR1cm4gbnVsbCE9PWImJiFpc05hTihiKXx8TShhKT8iZGF0ZSI6Cm51bGx9LGZ1bmN0aW9uKGEsYil7dmFyIGM9Yi5vTGFuZ3VhZ2Uuc0RlY2ltYWw7cmV0dXJuIFphKGEsYywhMCk/Im51bS1mbXQiK2M6bnVsbH0sZnVuY3Rpb24oYSxiKXt2YXIgYz1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gUmIoYSxjKT8iaHRtbC1udW0iK2M6bnVsbH0sZnVuY3Rpb24oYSxiKXt2YXIgYz1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gUmIoYSxjLCEwKT8iaHRtbC1udW0tZm10IitjOm51bGx9LGZ1bmN0aW9uKGEpe3JldHVybiBNKGEpfHwic3RyaW5nIj09PXR5cGVvZiBhJiYtMSE9PWEuaW5kZXhPZigiPCIpPyJodG1sIjpudWxsfV0pO2guZXh0ZW5kKG0uZXh0LnR5cGUuc2VhcmNoLHtodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBNKGEpP2E6InN0cmluZyI9PT10eXBlb2YgYT9hLnJlcGxhY2UoT2IsIiAiKS5yZXBsYWNlKEFhLCIiKToiIn0sc3RyaW5nOmZ1bmN0aW9uKGEpe3JldHVybiBNKGEpP2E6InN0cmluZyI9PT10eXBlb2YgYT9hLnJlcGxhY2UoT2IsCiIgIik6YX19KTt2YXIgemE9ZnVuY3Rpb24oYSxiLGMsZCl7aWYoMCE9PWEmJighYXx8Ii0iPT09YSkpcmV0dXJuLUluZmluaXR5O2ImJihhPVFiKGEsYikpO2EucmVwbGFjZSYmKGMmJihhPWEucmVwbGFjZShjLCIiKSksZCYmKGE9YS5yZXBsYWNlKGQsIiIpKSk7cmV0dXJuIDEqYX07aC5leHRlbmQodi50eXBlLm9yZGVyLHsiZGF0ZS1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBEYXRlLnBhcnNlKGEpfHwwfSwiaHRtbC1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBNKGEpPyIiOmEucmVwbGFjZT9hLnJlcGxhY2UoLzwuKj8+L2csIiIpLnRvTG93ZXJDYXNlKCk6YSsiIn0sInN0cmluZy1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBNKGEpPyIiOiJzdHJpbmciPT09dHlwZW9mIGE/YS50b0xvd2VyQ2FzZSgpOiFhLnRvU3RyaW5nPyIiOmEudG9TdHJpbmcoKX0sInN0cmluZy1hc2MiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/MTowfSwic3RyaW5nLWRlc2MiOmZ1bmN0aW9uKGEsCmIpe3JldHVybiBhPGI/MTphPmI/LTE6MH19KTtkYigiIik7aC5leHRlbmQoITAsbS5leHQucmVuZGVyZXIse2hlYWRlcjp7XzpmdW5jdGlvbihhLGIsYyxkKXtoKGEublRhYmxlKS5vbigib3JkZXIuZHQuRFQiLGZ1bmN0aW9uKGUsZixnLGgpe2lmKGE9PT1mKXtlPWMuaWR4O2IucmVtb3ZlQ2xhc3MoYy5zU29ydGluZ0NsYXNzKyIgIitkLnNTb3J0QXNjKyIgIitkLnNTb3J0RGVzYykuYWRkQ2xhc3MoaFtlXT09ImFzYyI/ZC5zU29ydEFzYzpoW2VdPT0iZGVzYyI/ZC5zU29ydERlc2M6Yy5zU29ydGluZ0NsYXNzKX19KX0sanF1ZXJ5dWk6ZnVuY3Rpb24oYSxiLGMsZCl7aCgiPGRpdi8+IikuYWRkQ2xhc3MoZC5zU29ydEpVSVdyYXBwZXIpLmFwcGVuZChiLmNvbnRlbnRzKCkpLmFwcGVuZChoKCI8c3Bhbi8+IikuYWRkQ2xhc3MoZC5zU29ydEljb24rIiAiK2Muc1NvcnRpbmdDbGFzc0pVSSkpLmFwcGVuZFRvKGIpO2goYS5uVGFibGUpLm9uKCJvcmRlci5kdC5EVCIsZnVuY3Rpb24oZSwKZixnLGgpe2lmKGE9PT1mKXtlPWMuaWR4O2IucmVtb3ZlQ2xhc3MoZC5zU29ydEFzYysiICIrZC5zU29ydERlc2MpLmFkZENsYXNzKGhbZV09PSJhc2MiP2Quc1NvcnRBc2M6aFtlXT09ImRlc2MiP2Quc1NvcnREZXNjOmMuc1NvcnRpbmdDbGFzcyk7Yi5maW5kKCJzcGFuLiIrZC5zU29ydEljb24pLnJlbW92ZUNsYXNzKGQuc1NvcnRKVUlBc2MrIiAiK2Quc1NvcnRKVUlEZXNjKyIgIitkLnNTb3J0SlVJKyIgIitkLnNTb3J0SlVJQXNjQWxsb3dlZCsiICIrZC5zU29ydEpVSURlc2NBbGxvd2VkKS5hZGRDbGFzcyhoW2VdPT0iYXNjIj9kLnNTb3J0SlVJQXNjOmhbZV09PSJkZXNjIj9kLnNTb3J0SlVJRGVzYzpjLnNTb3J0aW5nQ2xhc3NKVUkpfX0pfX19KTt2YXIgWWI9ZnVuY3Rpb24oYSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYT9hLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7Iik6YX07bS5yZW5kZXI9e251bWJlcjpmdW5jdGlvbihhLApiLGMsZCxlKXtyZXR1cm57ZGlzcGxheTpmdW5jdGlvbihmKXtpZigibnVtYmVyIiE9PXR5cGVvZiBmJiYic3RyaW5nIiE9PXR5cGVvZiBmKXJldHVybiBmO3ZhciBnPTA+Zj8iLSI6IiIsaD1wYXJzZUZsb2F0KGYpO2lmKGlzTmFOKGgpKXJldHVybiBZYihmKTtmPU1hdGguYWJzKGgpO2g9cGFyc2VJbnQoZiwxMCk7Zj1jP2IrKGYtaCkudG9GaXhlZChjKS5zdWJzdHJpbmcoMik6IiI7cmV0dXJuIGcrKGR8fCIiKStoLnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyxhKStmKyhlfHwiIil9fX0sdGV4dDpmdW5jdGlvbigpe3JldHVybntkaXNwbGF5OllifX19O2guZXh0ZW5kKG0uZXh0LmludGVybmFsLHtfZm5FeHRlcm5BcGlGdW5jOk5iLF9mbkJ1aWxkQWpheDpyYSxfZm5BamF4VXBkYXRlOmxiLF9mbkFqYXhQYXJhbWV0ZXJzOnViLF9mbkFqYXhVcGRhdGVEcmF3OnZiLF9mbkFqYXhEYXRhU3JjOnNhLF9mbkFkZENvbHVtbjpFYSxfZm5Db2x1bW5PcHRpb25zOmphLApfZm5BZGp1c3RDb2x1bW5TaXppbmc6WSxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleDpaLF9mbkNvbHVtbkluZGV4VG9WaXNpYmxlOiQsX2ZuVmlzYmxlQ29sdW1uczphYSxfZm5HZXRDb2x1bW5zOmxhLF9mbkNvbHVtblR5cGVzOkdhLF9mbkFwcGx5Q29sdW1uRGVmczppYixfZm5IdW5nYXJpYW5NYXA6WCxfZm5DYW1lbFRvSHVuZ2FyaWFuOkssX2ZuTGFuZ3VhZ2VDb21wYXQ6RGEsX2ZuQnJvd3NlckRldGVjdDpnYixfZm5BZGREYXRhOk4sX2ZuQWRkVHI6bWEsX2ZuTm9kZVRvRGF0YUluZGV4OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGIuX0RUX1Jvd0luZGV4IT09az9iLl9EVF9Sb3dJbmRleDpudWxsfSxfZm5Ob2RlVG9Db2x1bW5JbmRleDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGguaW5BcnJheShjLGEuYW9EYXRhW2JdLmFuQ2VsbHMpfSxfZm5HZXRDZWxsRGF0YTpCLF9mblNldENlbGxEYXRhOmpiLF9mblNwbGl0T2JqTm90YXRpb246SmEsX2ZuR2V0T2JqZWN0RGF0YUZuOlEsX2ZuU2V0T2JqZWN0RGF0YUZuOlIsCl9mbkdldERhdGFNYXN0ZXI6S2EsX2ZuQ2xlYXJUYWJsZTpuYSxfZm5EZWxldGVJbmRleDpvYSxfZm5JbnZhbGlkYXRlOmNhLF9mbkdldFJvd0VsZW1lbnRzOklhLF9mbkNyZWF0ZVRyOkhhLF9mbkJ1aWxkSGVhZDprYixfZm5EcmF3SGVhZDplYSxfZm5EcmF3Ok8sX2ZuUmVEcmF3OlQsX2ZuQWRkT3B0aW9uc0h0bWw6bmIsX2ZuRGV0ZWN0SGVhZGVyOmRhLF9mbkdldFVuaXF1ZVRoczpxYSxfZm5GZWF0dXJlSHRtbEZpbHRlcjpwYixfZm5GaWx0ZXJDb21wbGV0ZTpmYSxfZm5GaWx0ZXJDdXN0b206eWIsX2ZuRmlsdGVyQ29sdW1uOnhiLF9mbkZpbHRlcjp3YixfZm5GaWx0ZXJDcmVhdGVTZWFyY2g6UGEsX2ZuRXNjYXBlUmVnZXg6UWEsX2ZuRmlsdGVyRGF0YTp6YixfZm5GZWF0dXJlSHRtbEluZm86c2IsX2ZuVXBkYXRlSW5mbzpDYixfZm5JbmZvTWFjcm9zOkRiLF9mbkluaXRpYWxpc2U6Z2EsX2ZuSW5pdENvbXBsZXRlOnRhLF9mbkxlbmd0aENoYW5nZTpSYSxfZm5GZWF0dXJlSHRtbExlbmd0aDpvYiwKX2ZuRmVhdHVyZUh0bWxQYWdpbmF0ZTp0YixfZm5QYWdlQ2hhbmdlOlRhLF9mbkZlYXR1cmVIdG1sUHJvY2Vzc2luZzpxYixfZm5Qcm9jZXNzaW5nRGlzcGxheTpDLF9mbkZlYXR1cmVIdG1sVGFibGU6cmIsX2ZuU2Nyb2xsRHJhdzprYSxfZm5BcHBseVRvQ2hpbGRyZW46SixfZm5DYWxjdWxhdGVDb2x1bW5XaWR0aHM6RmEsX2ZuVGhyb3R0bGU6T2EsX2ZuQ29udmVydFRvV2lkdGg6RmIsX2ZuR2V0V2lkZXN0Tm9kZTpHYixfZm5HZXRNYXhMZW5TdHJpbmc6SGIsX2ZuU3RyaW5nVG9Dc3M6eCxfZm5Tb3J0RmxhdHRlbjpWLF9mblNvcnQ6bWIsX2ZuU29ydEFyaWE6SmIsX2ZuU29ydExpc3RlbmVyOlZhLF9mblNvcnRBdHRhY2hMaXN0ZW5lcjpNYSxfZm5Tb3J0aW5nQ2xhc3Nlczp2YSxfZm5Tb3J0RGF0YTpJYixfZm5TYXZlU3RhdGU6d2EsX2ZuTG9hZFN0YXRlOktiLF9mblNldHRpbmdzRnJvbU5vZGU6eGEsX2ZuTG9nOkwsX2ZuTWFwOkUsX2ZuQmluZEFjdGlvbjpXYSxfZm5DYWxsYmFja1JlZzp6LApfZm5DYWxsYmFja0ZpcmU6dSxfZm5MZW5ndGhPdmVyZmxvdzpTYSxfZm5SZW5kZXJlcjpOYSxfZm5EYXRhU291cmNlOnksX2ZuUm93QXR0cmlidXRlczpMYSxfZm5DYWxjdWxhdGVFbmQ6ZnVuY3Rpb24oKXt9fSk7aC5mbi5kYXRhVGFibGU9bTttLiQ9aDtoLmZuLmRhdGFUYWJsZVNldHRpbmdzPW0uc2V0dGluZ3M7aC5mbi5kYXRhVGFibGVFeHQ9bS5leHQ7aC5mbi5EYXRhVGFibGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGgodGhpcykuZGF0YVRhYmxlKGEpLmFwaSgpfTtoLmVhY2gobSxmdW5jdGlvbihhLGIpe2guZm4uRGF0YVRhYmxlW2FdPWJ9KTtyZXR1cm4gaC5mbi5kYXRhVGFibGV9KTsK"></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
32 <link href="data:text/css;charset=utf-8,table%2EDTFC%5FCloned%20thead%2Ctable%2EDTFC%5FCloned%20tfoot%7Bbackground%2Dcolor%3Awhite%7Ddiv%2EDTFC%5FBlocker%7Bbackground%2Dcolor%3Awhite%7Ddiv%2EDTFC%5FLeftWrapper%20table%2EdataTable%2Cdiv%2EDTFC%5FRightWrapper%20table%2EdataTable%7Bmargin%2Dbottom%3A0%3Bz%2Dindex%3A2%7Ddiv%2EDTFC%5FLeftWrapper%20table%2EdataTable%2Eno%2Dfooter%2Cdiv%2EDTFC%5FRightWrapper%20table%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3Anone%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
33 <script src="data:application/x-javascript;base64,LyohCiBGaXhlZENvbHVtbnMgMy4yLjIKIMKpMjAxMC0yMDE2IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCihmdW5jdGlvbihkKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiLCJkYXRhdGFibGVzLm5ldCJdLGZ1bmN0aW9uKHEpe3JldHVybiBkKHEsd2luZG93LGRvY3VtZW50KX0pOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24ocSxyKXtxfHwocT13aW5kb3cpO2lmKCFyfHwhci5mbi5kYXRhVGFibGUpcj1yZXF1aXJlKCJkYXRhdGFibGVzLm5ldCIpKHEscikuJDtyZXR1cm4gZChyLHEscS5kb2N1bWVudCl9OmQoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KShmdW5jdGlvbihkLHEscix0KXt2YXIgcz1kLmZuLmRhdGFUYWJsZSx1LG09ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKHRoaXMgaW5zdGFuY2VvZiBtKXtpZihiPT09dHx8ITA9PT1iKWI9e307dmFyIGU9ZC5mbi5kYXRhVGFibGUuY2FtZWxUb0h1bmdhcmlhbjtlJiYoZShtLmRlZmF1bHRzLG0uZGVmYXVsdHMsITApLGUobS5kZWZhdWx0cywKYikpO2U9KG5ldyBkLmZuLmRhdGFUYWJsZS5BcGkoYSkpLnNldHRpbmdzKClbMF07dGhpcy5zPXtkdDplLGlUYWJsZUNvbHVtbnM6ZS5hb0NvbHVtbnMubGVuZ3RoLGFpT3V0ZXJXaWR0aHM6W10sYWlJbm5lcldpZHRoczpbXSxydGw6InJ0bCI9PT1kKGUublRhYmxlKS5jc3MoImRpcmVjdGlvbiIpfTt0aGlzLmRvbT17c2Nyb2xsZXI6bnVsbCxoZWFkZXI6bnVsbCxib2R5Om51bGwsZm9vdGVyOm51bGwsZ3JpZDp7d3JhcHBlcjpudWxsLGR0Om51bGwsbGVmdDp7d3JhcHBlcjpudWxsLGhlYWQ6bnVsbCxib2R5Om51bGwsZm9vdDpudWxsfSxyaWdodDp7d3JhcHBlcjpudWxsLGhlYWQ6bnVsbCxib2R5Om51bGwsZm9vdDpudWxsfX0sY2xvbmU6e2xlZnQ6e2hlYWRlcjpudWxsLGJvZHk6bnVsbCxmb290ZXI6bnVsbH0scmlnaHQ6e2hlYWRlcjpudWxsLGJvZHk6bnVsbCxmb290ZXI6bnVsbH19fTtpZihlLl9vRml4ZWRDb2x1bW5zKXRocm93IkZpeGVkQ29sdW1ucyBhbHJlYWR5IGluaXRpYWxpc2VkIG9uIHRoaXMgdGFibGUiOwplLl9vRml4ZWRDb2x1bW5zPXRoaXM7ZS5fYkluaXRDb21wbGV0ZT90aGlzLl9mbkNvbnN0cnVjdChiKTplLm9BcGkuX2ZuQ2FsbGJhY2tSZWcoZSwiYW9Jbml0Q29tcGxldGUiLGZ1bmN0aW9uKCl7Yy5fZm5Db25zdHJ1Y3QoYil9LCJGaXhlZENvbHVtbnMiKX1lbHNlIGFsZXJ0KCJGaXhlZENvbHVtbnMgd2FybmluZzogRml4ZWRDb2x1bW5zIG11c3QgYmUgaW5pdGlhbGlzZWQgd2l0aCB0aGUgJ25ldycga2V5d29yZC4iKX07ZC5leHRlbmQobS5wcm90b3R5cGUse2ZuVXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5fZm5EcmF3KCEwKX0sZm5SZWRyYXdMYXlvdXQ6ZnVuY3Rpb24oKXt0aGlzLl9mbkNvbENhbGMoKTt0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLmZuVXBkYXRlKCl9LGZuUmVjYWxjdWxhdGVIZWlnaHQ6ZnVuY3Rpb24oYSl7ZGVsZXRlIGEuX0RUVENfaUhlaWdodDthLnN0eWxlLmhlaWdodD0iYXV0byJ9LGZuU2V0Um93SGVpZ2h0OmZ1bmN0aW9uKGEsYil7YS5zdHlsZS5oZWlnaHQ9CmIrInB4In0sZm5HZXRQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnMuZHQub0luc3RhbmNlO2lmKGQoYSkucGFyZW50cygiLkRURkNfQ2xvbmVkIikubGVuZ3RoKXtpZigidHIiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBhPWQoYSkuaW5kZXgoKSxiLmZuR2V0UG9zaXRpb24oZCgidHIiLHRoaXMucy5kdC5uVEJvZHkpW2FdKTt2YXIgYz1kKGEpLmluZGV4KCksYT1kKGEucGFyZW50Tm9kZSkuaW5kZXgoKTtyZXR1cm5bYi5mbkdldFBvc2l0aW9uKGQoInRyIix0aGlzLnMuZHQublRCb2R5KVthXSksYyxiLm9BcGkuX2ZuVmlzaWJsZVRvQ29sdW1uSW5kZXgodGhpcy5zLmR0LGMpXX1yZXR1cm4gYi5mbkdldFBvc2l0aW9uKGEpfSxfZm5Db25zdHJ1Y3Q6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztpZigiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5zLmR0Lm9JbnN0YW5jZS5mblZlcnNpb25DaGVja3x8ITAhPT10aGlzLnMuZHQub0luc3RhbmNlLmZuVmVyc2lvbkNoZWNrKCIxLjguMCIpKWFsZXJ0KCJGaXhlZENvbHVtbnMgIisKbS5WRVJTSU9OKyIgcmVxdWlyZWQgRGF0YVRhYmxlcyAxLjguMCBvciBsYXRlci4gUGxlYXNlIHVwZ3JhZGUgeW91ciBEYXRhVGFibGVzIGluc3RhbGxhdGlvbiIpO2Vsc2UgaWYoIiI9PT10aGlzLnMuZHQub1Njcm9sbC5zWCl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuTG9nKHRoaXMucy5kdCwxLCJGaXhlZENvbHVtbnMgaXMgbm90IG5lZWRlZCAobm8geC1zY3JvbGxpbmcgaW4gRGF0YVRhYmxlcyBlbmFibGVkKSwgc28gbm8gYWN0aW9uIHdpbGwgYmUgdGFrZW4uIFVzZSAnRml4ZWRIZWFkZXInIGZvciBjb2x1bW4gZml4aW5nIHdoZW4gc2Nyb2xsaW5nIGlzIG5vdCBlbmFibGVkIik7ZWxzZXt0aGlzLnM9ZC5leHRlbmQoITAsdGhpcy5zLG0uZGVmYXVsdHMsYSk7YT10aGlzLnMuZHQub0NsYXNzZXM7dGhpcy5kb20uZ3JpZC5kdD1kKHRoaXMucy5kdC5uVGFibGUpLnBhcmVudHMoImRpdi4iK2Euc1Njcm9sbFdyYXBwZXIpWzBdO3RoaXMuZG9tLnNjcm9sbGVyPWQoImRpdi4iKwphLnNTY3JvbGxCb2R5LHRoaXMuZG9tLmdyaWQuZHQpWzBdO3RoaXMuX2ZuQ29sQ2FsYygpO3RoaXMuX2ZuR3JpZFNldHVwKCk7dmFyIGMsZT0hMTtkKHRoaXMucy5kdC5uVGFibGVXcmFwcGVyKS5vbigibW91c2Vkb3duLkRURkMiLGZ1bmN0aW9uKCl7ZT0hMDtkKHIpLm9uZSgibW91c2V1cCIsZnVuY3Rpb24oKXtlPSExfSl9KTtkKHRoaXMuZG9tLnNjcm9sbGVyKS5vbigibW91c2VvdmVyLkRURkMgdG91Y2hzdGFydC5EVEZDIixmdW5jdGlvbigpe2V8fChjPSJtYWluIil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFjJiZhLm9yaWdpbmFsRXZlbnQmJihjPSJtYWluIik7aWYoIm1haW4iPT09YyYmKDA8Yi5zLmlMZWZ0Q29sdW1ucyYmKGIuZG9tLmdyaWQubGVmdC5saW5lci5zY3JvbGxUb3A9Yi5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wKSwwPGIucy5pUmlnaHRDb2x1bW5zKSliLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcD1iLmRvbS5zY3JvbGxlci5zY3JvbGxUb3B9KTsKdmFyIGY9Im9ud2hlZWwiaW4gci5jcmVhdGVFbGVtZW50KCJkaXYiKT8id2hlZWwuRFRGQyI6Im1vdXNld2hlZWwuRFRGQyI7aWYoMDxiLnMuaUxlZnRDb2x1bW5zKWQoYi5kb20uZ3JpZC5sZWZ0LmxpbmVyKS5vbigibW91c2VvdmVyLkRURkMgdG91Y2hzdGFydC5EVEZDIixmdW5jdGlvbigpe2V8fChjPSJsZWZ0Iil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFjJiZhLm9yaWdpbmFsRXZlbnQmJihjPSJsZWZ0Iik7ImxlZnQiPT09YyYmKGIuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wLDA8Yi5zLmlSaWdodENvbHVtbnMmJihiLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wKSl9KS5vbihmLGZ1bmN0aW9uKGEpe2IuZG9tLnNjcm9sbGVyLnNjcm9sbExlZnQtPSJ3aGVlbCI9PT1hLnR5cGU/LWEub3JpZ2luYWxFdmVudC5kZWx0YVg6YS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGFYfSk7CmlmKDA8Yi5zLmlSaWdodENvbHVtbnMpZChiLmRvbS5ncmlkLnJpZ2h0LmxpbmVyKS5vbigibW91c2VvdmVyLkRURkMgdG91Y2hzdGFydC5EVEZDIixmdW5jdGlvbigpe2V8fChjPSJyaWdodCIpfSkub24oInNjcm9sbC5EVEZDIixmdW5jdGlvbihhKXshYyYmYS5vcmlnaW5hbEV2ZW50JiYoYz0icmlnaHQiKTsicmlnaHQiPT09YyYmKGIuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcCwwPGIucy5pTGVmdENvbHVtbnMmJihiLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wPWIuZG9tLmdyaWQucmlnaHQubGluZXIuc2Nyb2xsVG9wKSl9KS5vbihmLGZ1bmN0aW9uKGEpe2IuZG9tLnNjcm9sbGVyLnNjcm9sbExlZnQtPSJ3aGVlbCI9PT1hLnR5cGU/LWEub3JpZ2luYWxFdmVudC5kZWx0YVg6YS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGFYfSk7ZChxKS5vbigicmVzaXplLkRURkMiLGZ1bmN0aW9uKCl7Yi5fZm5HcmlkTGF5b3V0LmNhbGwoYil9KTsKdmFyIGc9ITAsaD1kKHRoaXMucy5kdC5uVGFibGUpO2gub24oImRyYXcuZHQuRFRGQyIsZnVuY3Rpb24oKXtiLl9mbkNvbENhbGMoKTtiLl9mbkRyYXcuY2FsbChiLGcpO2c9ITF9KS5vbigiY29sdW1uLXNpemluZy5kdC5EVEZDIixmdW5jdGlvbigpe2IuX2ZuQ29sQ2FsYygpO2IuX2ZuR3JpZExheW91dChiKX0pLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVEZDIixmdW5jdGlvbihhLGMsZCxlLGYpe2lmKGY9PT10fHxmKWIuX2ZuQ29sQ2FsYygpLGIuX2ZuR3JpZExheW91dChiKSxiLl9mbkRyYXcoITApfSkub24oInNlbGVjdC5kdC5EVEZDIGRlc2VsZWN0LmR0LkRURkMiLGZ1bmN0aW9uKGEpeyJkdCI9PT1hLm5hbWVzcGFjZSYmYi5fZm5EcmF3KCExKX0pLm9uKCJkZXN0cm95LmR0LkRURkMiLGZ1bmN0aW9uKCl7aC5vZmYoIi5EVEZDIik7ZChiLmRvbS5zY3JvbGxlcikub2ZmKCIuRFRGQyIpO2QocSkub2ZmKCIuRFRGQyIpO2QoYi5zLmR0Lm5UYWJsZVdyYXBwZXIpLm9mZigiLkRURkMiKTsKZChiLmRvbS5ncmlkLmxlZnQubGluZXIpLm9mZigiLkRURkMgIitmKTtkKGIuZG9tLmdyaWQubGVmdC53cmFwcGVyKS5yZW1vdmUoKTtkKGIuZG9tLmdyaWQucmlnaHQubGluZXIpLm9mZigiLkRURkMgIitmKTtkKGIuZG9tLmdyaWQucmlnaHQud3JhcHBlcikucmVtb3ZlKCl9KTt0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLnMuZHQub0luc3RhbmNlLmZuRHJhdyghMSl9fSxfZm5Db2xDYWxjOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPTAsYz0wO3RoaXMucy5haUlubmVyV2lkdGhzPVtdO3RoaXMucy5haU91dGVyV2lkdGhzPVtdO2QuZWFjaCh0aGlzLnMuZHQuYW9Db2x1bW5zLGZ1bmN0aW9uKGUsZil7dmFyIGc9ZChmLm5UaCksaDtpZihnLmZpbHRlcigiOnZpc2libGUiKS5sZW5ndGgpe3ZhciBpPWcub3V0ZXJXaWR0aCgpOzA9PT1hLnMuYWlPdXRlcldpZHRocy5sZW5ndGgmJihoPWQoYS5zLmR0Lm5UYWJsZSkuY3NzKCJib3JkZXItbGVmdC13aWR0aCIpLGkrPSJzdHJpbmciPT09CnR5cGVvZiBoPzE6cGFyc2VJbnQoaCwxMCkpO2Eucy5haU91dGVyV2lkdGhzLmxlbmd0aD09PWEucy5kdC5hb0NvbHVtbnMubGVuZ3RoLTEmJihoPWQoYS5zLmR0Lm5UYWJsZSkuY3NzKCJib3JkZXItcmlnaHQtd2lkdGgiKSxpKz0ic3RyaW5nIj09PXR5cGVvZiBoPzE6cGFyc2VJbnQoaCwxMCkpO2Eucy5haU91dGVyV2lkdGhzLnB1c2goaSk7YS5zLmFpSW5uZXJXaWR0aHMucHVzaChnLndpZHRoKCkpO2U8YS5zLmlMZWZ0Q29sdW1ucyYmKGIrPWkpO2Eucy5pVGFibGVDb2x1bW5zLWEucy5pUmlnaHRDb2x1bW5zPD1lJiYoYys9aSl9ZWxzZSBhLnMuYWlJbm5lcldpZHRocy5wdXNoKDApLGEucy5haU91dGVyV2lkdGhzLnB1c2goMCl9KTt0aGlzLnMuaUxlZnRXaWR0aD1iO3RoaXMucy5pUmlnaHRXaWR0aD1jfSxfZm5HcmlkU2V0dXA6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9mbkRUT3ZlcmZsb3coKSxiO3RoaXMuZG9tLmJvZHk9dGhpcy5zLmR0Lm5UYWJsZTt0aGlzLmRvbS5oZWFkZXI9CnRoaXMucy5kdC5uVEhlYWQucGFyZW50Tm9kZTt0aGlzLmRvbS5oZWFkZXIucGFyZW50Tm9kZS5wYXJlbnROb2RlLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSI7dmFyIGM9ZCgnPGRpdiBjbGFzcz0iRFRGQ19TY3JvbGxXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IGNsZWFyOmJvdGg7Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRIZWFkV3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX0xlZnRCb2R5V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRCb2R5TGluZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3cteTpzY3JvbGw7Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX0xlZnRGb290V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsiPjxkaXYgY2xhc3M9IkRURkNfUmlnaHRIZWFkV3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyI+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEhlYWRCbG9ja2VyIERURkNfQmxvY2tlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgYm90dG9tOjA7Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Qm9keVdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyI+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEJvZHlMaW5lciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdy15OnNjcm9sbDsiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9IkRURkNfUmlnaHRGb290V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyI+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEZvb3RCbG9ja2VyIERURkNfQmxvY2tlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgYm90dG9tOjA7Ij48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nKVswXSwKZT1jLmNoaWxkTm9kZXNbMF0sZj1jLmNoaWxkTm9kZXNbMV07dGhpcy5kb20uZ3JpZC5kdC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLHRoaXMuZG9tLmdyaWQuZHQpO2MuYXBwZW5kQ2hpbGQodGhpcy5kb20uZ3JpZC5kdCk7dGhpcy5kb20uZ3JpZC53cmFwcGVyPWM7MDx0aGlzLnMuaUxlZnRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5sZWZ0LndyYXBwZXI9ZSx0aGlzLmRvbS5ncmlkLmxlZnQuaGVhZD1lLmNoaWxkTm9kZXNbMF0sdGhpcy5kb20uZ3JpZC5sZWZ0LmJvZHk9ZS5jaGlsZE5vZGVzWzFdLHRoaXMuZG9tLmdyaWQubGVmdC5saW5lcj1kKCJkaXYuRFRGQ19MZWZ0Qm9keUxpbmVyIixjKVswXSxjLmFwcGVuZENoaWxkKGUpKTswPHRoaXMucy5pUmlnaHRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5yaWdodC53cmFwcGVyPWYsdGhpcy5kb20uZ3JpZC5yaWdodC5oZWFkPWYuY2hpbGROb2Rlc1swXSx0aGlzLmRvbS5ncmlkLnJpZ2h0LmJvZHk9Zi5jaGlsZE5vZGVzWzFdLHRoaXMuZG9tLmdyaWQucmlnaHQubGluZXI9CmQoImRpdi5EVEZDX1JpZ2h0Qm9keUxpbmVyIixjKVswXSxmLnN0eWxlLnJpZ2h0PWEuYmFyKyJweCIsYj1kKCJkaXYuRFRGQ19SaWdodEhlYWRCbG9ja2VyIixjKVswXSxiLnN0eWxlLndpZHRoPWEuYmFyKyJweCIsYi5zdHlsZS5yaWdodD0tYS5iYXIrInB4Iix0aGlzLmRvbS5ncmlkLnJpZ2h0LmhlYWRCbG9jaz1iLGI9ZCgiZGl2LkRURkNfUmlnaHRGb290QmxvY2tlciIsYylbMF0sYi5zdHlsZS53aWR0aD1hLmJhcisicHgiLGIuc3R5bGUucmlnaHQ9LWEuYmFyKyJweCIsdGhpcy5kb20uZ3JpZC5yaWdodC5mb290QmxvY2s9YixjLmFwcGVuZENoaWxkKGYpKTtpZih0aGlzLnMuZHQublRGb290JiYodGhpcy5kb20uZm9vdGVyPXRoaXMucy5kdC5uVEZvb3QucGFyZW50Tm9kZSwwPHRoaXMucy5pTGVmdENvbHVtbnMmJih0aGlzLmRvbS5ncmlkLmxlZnQuZm9vdD1lLmNoaWxkTm9kZXNbMl0pLDA8dGhpcy5zLmlSaWdodENvbHVtbnMpKXRoaXMuZG9tLmdyaWQucmlnaHQuZm9vdD1mLmNoaWxkTm9kZXNbMl07CnRoaXMucy5ydGwmJmQoImRpdi5EVEZDX1JpZ2h0SGVhZEJsb2NrZXIiLGMpLmNzcyh7bGVmdDotYS5iYXIrInB4IixyaWdodDoiIn0pfSxfZm5HcmlkTGF5b3V0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPXRoaXMuZG9tLmdyaWQ7ZChiLndyYXBwZXIpLndpZHRoKCk7dmFyIGM9ZCh0aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUpLm91dGVySGVpZ2h0KCksZT1kKHRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZS5wYXJlbnROb2RlKS5vdXRlckhlaWdodCgpLGY9dGhpcy5fZm5EVE92ZXJmbG93KCksZz10aGlzLnMuaUxlZnRXaWR0aCxoPXRoaXMucy5pUmlnaHRXaWR0aCxpPSJydGwiPT09ZCh0aGlzLmRvbS5ib2R5KS5jc3MoImRpcmVjdGlvbiIpLGo9ZnVuY3Rpb24oYixjKXtmLmJhcj9hLl9maXJlZm94U2Nyb2xsRXJyb3IoKT8zNDxkKGIpLmhlaWdodCgpJiYoYi5zdHlsZS53aWR0aD1jK2YuYmFyKyJweCIpOmIuc3R5bGUud2lkdGg9YytmLmJhcisicHgiOihiLnN0eWxlLndpZHRoPQpjKzIwKyJweCIsYi5zdHlsZS5wYWRkaW5nUmlnaHQ9IjIwcHgiLGIuc3R5bGUuYm94U2l6aW5nPSJib3JkZXItYm94Iil9O2YueCYmKGMtPWYuYmFyKTtiLndyYXBwZXIuc3R5bGUuaGVpZ2h0PWUrInB4IjswPHRoaXMucy5pTGVmdENvbHVtbnMmJihlPWIubGVmdC53cmFwcGVyLGUuc3R5bGUud2lkdGg9ZysicHgiLGUuc3R5bGUuaGVpZ2h0PSIxcHgiLGk/KGUuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PTApOihlLnN0eWxlLmxlZnQ9MCxlLnN0eWxlLnJpZ2h0PSIiKSxiLmxlZnQuYm9keS5zdHlsZS5oZWlnaHQ9YysicHgiLGIubGVmdC5mb290JiYoYi5sZWZ0LmZvb3Quc3R5bGUudG9wPShmLng/Zi5iYXI6MCkrInB4IiksaihiLmxlZnQubGluZXIsZyksYi5sZWZ0LmxpbmVyLnN0eWxlLmhlaWdodD1jKyJweCIpOzA8dGhpcy5zLmlSaWdodENvbHVtbnMmJihlPWIucmlnaHQud3JhcHBlcixlLnN0eWxlLndpZHRoPWgrInB4IixlLnN0eWxlLmhlaWdodD0iMXB4Iix0aGlzLnMucnRsPwooZS5zdHlsZS5sZWZ0PWYueT9mLmJhcisicHgiOjAsZS5zdHlsZS5yaWdodD0iIik6KGUuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PWYueT9mLmJhcisicHgiOjApLGIucmlnaHQuYm9keS5zdHlsZS5oZWlnaHQ9YysicHgiLGIucmlnaHQuZm9vdCYmKGIucmlnaHQuZm9vdC5zdHlsZS50b3A9KGYueD9mLmJhcjowKSsicHgiKSxqKGIucmlnaHQubGluZXIsaCksYi5yaWdodC5saW5lci5zdHlsZS5oZWlnaHQ9YysicHgiLGIucmlnaHQuaGVhZEJsb2NrLnN0eWxlLmRpc3BsYXk9Zi55PyJibG9jayI6Im5vbmUiLGIucmlnaHQuZm9vdEJsb2NrLnN0eWxlLmRpc3BsYXk9Zi55PyJibG9jayI6Im5vbmUiKX0sX2ZuRFRPdmVyZmxvdzpmdW5jdGlvbigpe3ZhciBhPXRoaXMucy5kdC5uVGFibGUsYj1hLnBhcmVudE5vZGUsYz17eDohMSx5OiExLGJhcjp0aGlzLnMuZHQub1Njcm9sbC5pQmFyV2lkdGh9O2Eub2Zmc2V0V2lkdGg+Yi5jbGllbnRXaWR0aCYmKGMueD0hMCk7YS5vZmZzZXRIZWlnaHQ+CmIuY2xpZW50SGVpZ2h0JiYoYy55PSEwKTtyZXR1cm4gY30sX2ZuRHJhdzpmdW5jdGlvbihhKXt0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLl9mbkNsb25lTGVmdChhKTt0aGlzLl9mbkNsb25lUmlnaHQoYSk7bnVsbCE9PXRoaXMucy5mbkRyYXdDYWxsYmFjayYmdGhpcy5zLmZuRHJhd0NhbGxiYWNrLmNhbGwodGhpcyx0aGlzLmRvbS5jbG9uZS5sZWZ0LHRoaXMuZG9tLmNsb25lLnJpZ2h0KTtkKHRoaXMpLnRyaWdnZXIoImRyYXcuZHRmYyIse2xlZnRDbG9uZTp0aGlzLmRvbS5jbG9uZS5sZWZ0LHJpZ2h0Q2xvbmU6dGhpcy5kb20uY2xvbmUucmlnaHR9KX0sX2ZuQ2xvbmVSaWdodDpmdW5jdGlvbihhKXtpZighKDA+PXRoaXMucy5pUmlnaHRDb2x1bW5zKSl7dmFyIGIsYz1bXTtmb3IoYj10aGlzLnMuaVRhYmxlQ29sdW1ucy10aGlzLnMuaVJpZ2h0Q29sdW1ucztiPHRoaXMucy5pVGFibGVDb2x1bW5zO2IrKyl0aGlzLnMuZHQuYW9Db2x1bW5zW2JdLmJWaXNpYmxlJiZjLnB1c2goYik7CnRoaXMuX2ZuQ2xvbmUodGhpcy5kb20uY2xvbmUucmlnaHQsdGhpcy5kb20uZ3JpZC5yaWdodCxjLGEpfX0sX2ZuQ2xvbmVMZWZ0OmZ1bmN0aW9uKGEpe2lmKCEoMD49dGhpcy5zLmlMZWZ0Q29sdW1ucykpe3ZhciBiLGM9W107Zm9yKGI9MDtiPHRoaXMucy5pTGVmdENvbHVtbnM7YisrKXRoaXMucy5kdC5hb0NvbHVtbnNbYl0uYlZpc2libGUmJmMucHVzaChiKTt0aGlzLl9mbkNsb25lKHRoaXMuZG9tLmNsb25lLmxlZnQsdGhpcy5kb20uZ3JpZC5sZWZ0LGMsYSl9fSxfZm5Db3B5TGF5b3V0OmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGU9W10sZj1bXSxnPVtdLGg9MCxpPWEubGVuZ3RoO2g8aTtoKyspe3ZhciBqPVtdO2oublRyPWQoYVtoXS5uVHIpLmNsb25lKGMsITEpWzBdO2Zvcih2YXIgbD0wLG89dGhpcy5zLmlUYWJsZUNvbHVtbnM7bDxvO2wrKylpZigtMSE9PWQuaW5BcnJheShsLGIpKXt2YXIgcD1kLmluQXJyYXkoYVtoXVtsXS5jZWxsLGcpOy0xPT09cD8ocD1kKGFbaF1bbF0uY2VsbCkuY2xvbmUoYywKITEpWzBdLGYucHVzaChwKSxnLnB1c2goYVtoXVtsXS5jZWxsKSxqLnB1c2goe2NlbGw6cCx1bmlxdWU6YVtoXVtsXS51bmlxdWV9KSk6ai5wdXNoKHtjZWxsOmZbcF0sdW5pcXVlOmFbaF1bbF0udW5pcXVlfSl9ZS5wdXNoKGopfXJldHVybiBlfSxfZm5DbG9uZTpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj10aGlzLGcsaCxpLGosbCxvLHAsbixtLGs9dGhpcy5zLmR0O2lmKGUpe2QoYS5oZWFkZXIpLnJlbW92ZSgpO2EuaGVhZGVyPWQodGhpcy5kb20uaGVhZGVyKS5jbG9uZSghMCwhMSlbMF07YS5oZWFkZXIuY2xhc3NOYW1lKz0iIERURkNfQ2xvbmVkIjthLmhlYWRlci5zdHlsZS53aWR0aD0iMTAwJSI7Yi5oZWFkLmFwcGVuZENoaWxkKGEuaGVhZGVyKTtuPXRoaXMuX2ZuQ29weUxheW91dChrLmFvSGVhZGVyLGMsITApO2o9ZCgiPnRoZWFkIixhLmhlYWRlcik7ai5lbXB0eSgpO2c9MDtmb3IoaD1uLmxlbmd0aDtnPGg7ZysrKWpbMF0uYXBwZW5kQ2hpbGQobltnXS5uVHIpO2sub0FwaS5fZm5EcmF3SGVhZChrLApuLCEwKX1lbHNle249dGhpcy5fZm5Db3B5TGF5b3V0KGsuYW9IZWFkZXIsYywhMSk7bT1bXTtrLm9BcGkuX2ZuRGV0ZWN0SGVhZGVyKG0sZCgiPnRoZWFkIixhLmhlYWRlcilbMF0pO2c9MDtmb3IoaD1uLmxlbmd0aDtnPGg7ZysrKXtpPTA7Zm9yKGo9bltnXS5sZW5ndGg7aTxqO2krKyltW2ddW2ldLmNlbGwuY2xhc3NOYW1lPW5bZ11baV0uY2VsbC5jbGFzc05hbWUsZCgic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIsbVtnXVtpXS5jZWxsKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5jbGFzc05hbWU9ZCgic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIsbltnXVtpXS5jZWxsKVswXS5jbGFzc05hbWV9KX19dGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoInRoZWFkIix0aGlzLmRvbS5oZWFkZXIsYS5oZWFkZXIpOyJhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmZCgiPnRib2R5PnRyIixmLmRvbS5ib2R5KS5jc3MoImhlaWdodCIsImF1dG8iKTtudWxsIT09YS5ib2R5JiYoZChhLmJvZHkpLnJlbW92ZSgpLAphLmJvZHk9bnVsbCk7YS5ib2R5PWQodGhpcy5kb20uYm9keSkuY2xvbmUoITApWzBdO2EuYm9keS5jbGFzc05hbWUrPSIgRFRGQ19DbG9uZWQiO2EuYm9keS5zdHlsZS5wYWRkaW5nQm90dG9tPWsub1Njcm9sbC5pQmFyV2lkdGgrInB4IjthLmJvZHkuc3R5bGUubWFyZ2luQm90dG9tPTIqay5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiO251bGwhPT1hLmJvZHkuZ2V0QXR0cmlidXRlKCJpZCIpJiZhLmJvZHkucmVtb3ZlQXR0cmlidXRlKCJpZCIpO2QoIj50aGVhZD50ciIsYS5ib2R5KS5lbXB0eSgpO2QoIj50Zm9vdCIsYS5ib2R5KS5yZW1vdmUoKTt2YXIgcT1kKCJ0Ym9keSIsYS5ib2R5KVswXTtkKHEpLmVtcHR5KCk7aWYoMDxrLmFpRGlzcGxheS5sZW5ndGgpe2g9ZCgiPnRoZWFkPnRyIixhLmJvZHkpWzBdO2ZvcihwPTA7cDxjLmxlbmd0aDtwKyspbD1jW3BdLG89ZChrLmFvQ29sdW1uc1tsXS5uVGgpLmNsb25lKCEwKVswXSxvLmlubmVySFRNTD0iIixqPW8uc3R5bGUsai5wYWRkaW5nVG9wPQoiMCIsai5wYWRkaW5nQm90dG9tPSIwIixqLmJvcmRlclRvcFdpZHRoPSIwIixqLmJvcmRlckJvdHRvbVdpZHRoPSIwIixqLmhlaWdodD0wLGoud2lkdGg9Zi5zLmFpSW5uZXJXaWR0aHNbbF0rInB4IixoLmFwcGVuZENoaWxkKG8pO2QoIj50Ym9keT50ciIsZi5kb20uYm9keSkuZWFjaChmdW5jdGlvbihhKXt2YXIgYT1mLnMuZHQub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPT09ZmFsc2U/Zi5zLmR0LmFpRGlzcGxheVtmLnMuZHQuX2lEaXNwbGF5U3RhcnQrYV06YSxiPWYucy5kdC5hb0RhdGFbYV0uYW5DZWxsc3x8ZCh0aGlzKS5jaGlsZHJlbigidGQsIHRoIiksZT10aGlzLmNsb25lTm9kZShmYWxzZSk7ZS5yZW1vdmVBdHRyaWJ1dGUoImlkIik7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IixhKTtmb3IocD0wO3A8Yy5sZW5ndGg7cCsrKXtsPWNbcF07aWYoYi5sZW5ndGg+MCl7bz1kKGJbbF0pLmNsb25lKHRydWUsdHJ1ZSlbMF07by5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IiwKYSk7by5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtY29sdW1uIixwKTtlLmFwcGVuZENoaWxkKG8pfX1xLmFwcGVuZENoaWxkKGUpfSl9ZWxzZSBkKCI+dGJvZHk+dHIiLGYuZG9tLmJvZHkpLmVhY2goZnVuY3Rpb24oKXtvPXRoaXMuY2xvbmVOb2RlKHRydWUpO28uY2xhc3NOYW1lPW8uY2xhc3NOYW1lKyIgRFRGQ19Ob0RhdGEiO2QoInRkIixvKS5odG1sKCIiKTtxLmFwcGVuZENoaWxkKG8pfSk7YS5ib2R5LnN0eWxlLndpZHRoPSIxMDAlIjthLmJvZHkuc3R5bGUubWFyZ2luPSIwIjthLmJvZHkuc3R5bGUucGFkZGluZz0iMCI7ay5vU2Nyb2xsZXIhPT10JiYoaD1rLm9TY3JvbGxlci5kb20uZm9yY2UsYi5mb3JjZXI/Yi5mb3JjZXIuc3R5bGUuaGVpZ2h0PWguc3R5bGUuaGVpZ2h0OihiLmZvcmNlcj1oLmNsb25lTm9kZSghMCksYi5saW5lci5hcHBlbmRDaGlsZChiLmZvcmNlcikpKTtiLmxpbmVyLmFwcGVuZENoaWxkKGEuYm9keSk7dGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoInRib2R5IiwKZi5kb20uYm9keSxhLmJvZHkpO2lmKG51bGwhPT1rLm5URm9vdCl7aWYoZSl7bnVsbCE9PWEuZm9vdGVyJiZhLmZvb3Rlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGEuZm9vdGVyKTthLmZvb3Rlcj1kKHRoaXMuZG9tLmZvb3RlcikuY2xvbmUoITAsITApWzBdO2EuZm9vdGVyLmNsYXNzTmFtZSs9IiBEVEZDX0Nsb25lZCI7YS5mb290ZXIuc3R5bGUud2lkdGg9IjEwMCUiO2IuZm9vdC5hcHBlbmRDaGlsZChhLmZvb3Rlcik7bj10aGlzLl9mbkNvcHlMYXlvdXQoay5hb0Zvb3RlcixjLCEwKTtiPWQoIj50Zm9vdCIsYS5mb290ZXIpO2IuZW1wdHkoKTtnPTA7Zm9yKGg9bi5sZW5ndGg7ZzxoO2crKyliWzBdLmFwcGVuZENoaWxkKG5bZ10ublRyKTtrLm9BcGkuX2ZuRHJhd0hlYWQoayxuLCEwKX1lbHNle249dGhpcy5fZm5Db3B5TGF5b3V0KGsuYW9Gb290ZXIsYywhMSk7Yj1bXTtrLm9BcGkuX2ZuRGV0ZWN0SGVhZGVyKGIsZCgiPnRmb290IixhLmZvb3RlcilbMF0pO2c9MDtmb3IoaD1uLmxlbmd0aDtnPApoO2crKyl7aT0wO2ZvcihqPW5bZ10ubGVuZ3RoO2k8ajtpKyspYltnXVtpXS5jZWxsLmNsYXNzTmFtZT1uW2ddW2ldLmNlbGwuY2xhc3NOYW1lfX10aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cygidGZvb3QiLHRoaXMuZG9tLmZvb3RlcixhLmZvb3Rlcil9Yj1rLm9BcGkuX2ZuR2V0VW5pcXVlVGhzKGssZCgiPnRoZWFkIixhLmhlYWRlcilbMF0pO2QoYikuZWFjaChmdW5jdGlvbihhKXtsPWNbYV07dGhpcy5zdHlsZS53aWR0aD1mLnMuYWlJbm5lcldpZHRoc1tsXSsicHgifSk7bnVsbCE9PWYucy5kdC5uVEZvb3QmJihiPWsub0FwaS5fZm5HZXRVbmlxdWVUaHMoayxkKCI+dGZvb3QiLGEuZm9vdGVyKVswXSksZChiKS5lYWNoKGZ1bmN0aW9uKGEpe2w9Y1thXTt0aGlzLnN0eWxlLndpZHRoPWYucy5haUlubmVyV2lkdGhzW2xdKyJweCJ9KSl9LF9mbkdldFRyTm9kZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MCxkPWEuY2hpbGROb2Rlcy5sZW5ndGg7YzxkO2MrKykiVFIiPT1hLmNoaWxkTm9kZXNbY10ubm9kZU5hbWUudG9VcHBlckNhc2UoKSYmCmIucHVzaChhLmNoaWxkTm9kZXNbY10pO3JldHVybiBifSxfZm5FcXVhbGlzZUhlaWdodHM6ZnVuY3Rpb24oYSxiLGMpe2lmKCEoIm5vbmUiPT10aGlzLnMuc0hlaWdodE1hdGNoJiYidGhlYWQiIT09YSYmInRmb290IiE9PWEpKXt2YXIgZSxmLGc9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKVswXSxjPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSlbMF0sYT1kKCI+IithKyI+dHI6ZXEoMCkiLGIpLmNoaWxkcmVuKCI6Zmlyc3QiKTthLm91dGVySGVpZ2h0KCk7YS5oZWlnaHQoKTtmb3IodmFyIGc9dGhpcy5fZm5HZXRUck5vZGVzKGcpLGI9dGhpcy5fZm5HZXRUck5vZGVzKGMpLGg9W10sYz0wLGE9Yi5sZW5ndGg7YzxhO2MrKyllPWdbY10ub2Zmc2V0SGVpZ2h0LGY9YltjXS5vZmZzZXRIZWlnaHQsZT1mPmU/ZjplLCJzZW1pYXV0byI9PXRoaXMucy5zSGVpZ2h0TWF0Y2gmJihnW2NdLl9EVFRDX2lIZWlnaHQ9ZSksaC5wdXNoKGUpO2M9MDtmb3IoYT1iLmxlbmd0aDtjPGE7YysrKWJbY10uc3R5bGUuaGVpZ2h0PQpoW2NdKyJweCIsZ1tjXS5zdHlsZS5oZWlnaHQ9aFtjXSsicHgifX0sX2ZpcmVmb3hTY3JvbGxFcnJvcjpmdW5jdGlvbigpe2lmKHU9PT10KXt2YXIgYT1kKCI8ZGl2Lz4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowLGhlaWdodDoxMCx3aWR0aDo1MCxvdmVyZmxvdzoic2Nyb2xsIn0pLmFwcGVuZFRvKCJib2R5Iik7dT1hWzBdLmNsaWVudFdpZHRoPT09YVswXS5vZmZzZXRXaWR0aCYmMCE9PXRoaXMuX2ZuRFRPdmVyZmxvdygpLmJhcjthLnJlbW92ZSgpfXJldHVybiB1fX0pO20uZGVmYXVsdHM9e2lMZWZ0Q29sdW1uczoxLGlSaWdodENvbHVtbnM6MCxmbkRyYXdDYWxsYmFjazpudWxsLHNIZWlnaHRNYXRjaDoic2VtaWF1dG8ifTttLnZlcnNpb249IjMuMi4yIjtzLkFwaS5yZWdpc3RlcigiZml4ZWRDb2x1bW5zKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTtzLkFwaS5yZWdpc3RlcigiZml4ZWRDb2x1bW5zKCkudXBkYXRlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIiwKZnVuY3Rpb24oYSl7YS5fb0ZpeGVkQ29sdW1ucyYmYS5fb0ZpeGVkQ29sdW1ucy5mblVwZGF0ZSgpfSl9KTtzLkFwaS5yZWdpc3RlcigiZml4ZWRDb2x1bW5zKCkucmVsYXlvdXQoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe2EuX29GaXhlZENvbHVtbnMmJmEuX29GaXhlZENvbHVtbnMuZm5SZWRyYXdMYXlvdXQoKX0pfSk7cy5BcGkucmVnaXN0ZXIoInJvd3MoKS5yZWNhbGNIZWlnaHQoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLGIpe2EuX29GaXhlZENvbHVtbnMmJmEuX29GaXhlZENvbHVtbnMuZm5SZWNhbGN1bGF0ZUhlaWdodCh0aGlzLnJvdyhiKS5ub2RlKCkpfSl9KTtzLkFwaS5yZWdpc3RlcigiZml4ZWRDb2x1bW5zKCkucm93SW5kZXgoKSIsZnVuY3Rpb24oYSl7YT1kKGEpO3JldHVybiBhLnBhcmVudHMoIi5EVEZDX0Nsb25lZCIpLmxlbmd0aD90aGlzLnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuaW5kZXhlcygpW2EuaW5kZXgoKV06CnRoaXMucm93KGEpLmluZGV4KCl9KTtzLkFwaS5yZWdpc3RlcigiZml4ZWRDb2x1bW5zKCkuY2VsbEluZGV4KCkiLGZ1bmN0aW9uKGEpe2E9ZChhKTtpZihhLnBhcmVudHMoIi5EVEZDX0Nsb25lZCIpLmxlbmd0aCl7dmFyIGI9YS5wYXJlbnQoKS5pbmRleCgpLGI9dGhpcy5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmluZGV4ZXMoKVtiXSxhPWEucGFyZW50cygiLkRURkNfTGVmdFdyYXBwZXIiKS5sZW5ndGg/YS5pbmRleCgpOnRoaXMuY29sdW1ucygpLmZsYXR0ZW4oKS5sZW5ndGgtdGhpcy5jb250ZXh0WzBdLl9vRml4ZWRDb2x1bW5zLnMuaVJpZ2h0Q29sdW1ucythLmluZGV4KCk7cmV0dXJue3JvdzpiLGNvbHVtbjp0aGlzLmNvbHVtbi5pbmRleCgidG9EYXRhIixhKSxjb2x1bW5WaXNpYmxlOmF9fXJldHVybiB0aGlzLmNlbGwoYSkuaW5kZXgoKX0pO2Qocikub24oImluaXQuZHQuZml4ZWRDb2x1bW5zIixmdW5jdGlvbihhLGIpe2lmKCJkdCI9PT1hLm5hbWVzcGFjZSl7dmFyIGM9Yi5vSW5pdC5maXhlZENvbHVtbnMsCmU9cy5kZWZhdWx0cy5maXhlZENvbHVtbnM7aWYoY3x8ZSllPWQuZXh0ZW5kKHt9LGMsZSksITEhPT1jJiZuZXcgbShiLGUpfX0pO2QuZm4uZGF0YVRhYmxlLkZpeGVkQ29sdW1ucz1tO3JldHVybiBkLmZuLkRhdGFUYWJsZS5GaXhlZENvbHVtbnM9bX0pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
34 <link href="data:text/css;charset=utf-8,%0Aslide%3Anot%28%2Ecurrent%29%20%2Eplotly%2Ehtml%2Dwidget%7B%0Adisplay%3A%20none%3B%0A%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
35 <script src="data:application/x-javascript;base64,LyoqCiogcGxvdGx5LmpzIHYxLjE2LjMKKiBDb3B5cmlnaHQgMjAxMi0yMDE2LCBQbG90bHksIEluYy4KKiBBbGwgcmlnaHRzIHJlc2VydmVkLgoqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZQoqLwohZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSltb2R1bGUuZXhwb3J0cz10KCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kKWRlZmluZShbXSx0KTtlbHNle3ZhciBlO2U9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjp0aGlzLGUuUGxvdGx5PXQoKX19KGZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIGZ1bmN0aW9uIGUodCxyLG4pe2Z1bmN0aW9uIGkoYSxzKXtpZighclthXSl7aWYoIXRbYV0pe3ZhciBsPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFzJiZsKXJldHVybiBsKGEsITApO2lmKG8pcmV0dXJuIG8oYSwhMCk7dmFyIHU9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrYSsiJyIpO3Rocm93IHUuY29kZT0iTU9EVUxFX05PVF9GT1VORCIsdX12YXIgYz1yW2FdPXtleHBvcnRzOnt9fTt0W2FdWzBdLmNhbGwoYy5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciByPXRbYV1bMV1bZV07cmV0dXJuIGkocj9yOmUpfSxjLGMuZXhwb3J0cyxlLHQscixuKX1yZXR1cm4gclthXS5leHBvcnRzfWZvcih2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxhPTA7YTxuLmxlbmd0aDthKyspaShuW2FdKTtyZXR1cm4gaX0oezE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc3JjL3Bsb3RseSIpLGk9eyJYLFggZGl2IjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO21hcmdpbjowO3BhZGRpbmc6MDsiLCJYIGlucHV0LFggYnV0dG9uIjoiZm9udC1mYW1pbHk6J09wZW4gU2FucycsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmOyIsIlggaW5wdXQ6Zm9jdXMsWCBidXR0b246Zm9jdXMiOiJvdXRsaW5lOm5vbmU7IiwiWCBhIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCBhOmhvdmVyIjoidGV4dC1kZWNvcmF0aW9uOm5vbmU7IiwiWCAuY3Jpc3AiOiJzaGFwZS1yZW5kZXJpbmc6Y3Jpc3BFZGdlczsiLCJYIC51c2VyLXNlbGVjdC1ub25lIjoiLXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7IiwiWCBzdmciOiJvdmVyZmxvdzpoaWRkZW47IiwiWCBzdmcgYSI6ImZpbGw6IzQ0N2FkYjsiLCJYIHN2ZyBhOmhvdmVyIjoiZmlsbDojM2M2ZGM1OyIsIlggLm1haW4tc3ZnIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7IiwiWCAubWFpbi1zdmcgLmRyYWdsYXllciI6InBvaW50ZXItZXZlbnRzOmFsbDsiLCJYIC5jdXJzb3ItcG9pbnRlciI6ImN1cnNvcjpwb2ludGVyOyIsIlggLmN1cnNvci1jcm9zc2hhaXIiOiJjdXJzb3I6Y3Jvc3NoYWlyOyIsIlggLmN1cnNvci1tb3ZlIjoiY3Vyc29yOm1vdmU7IiwiWCAuY3Vyc29yLWNvbC1yZXNpemUiOiJjdXJzb3I6Y29sLXJlc2l6ZTsiLCJYIC5jdXJzb3Itcm93LXJlc2l6ZSI6ImN1cnNvcjpyb3ctcmVzaXplOyIsIlggLmN1cnNvci1ucy1yZXNpemUiOiJjdXJzb3I6bnMtcmVzaXplOyIsIlggLmN1cnNvci1ldy1yZXNpemUiOiJjdXJzb3I6ZXctcmVzaXplOyIsIlggLmN1cnNvci1zdy1yZXNpemUiOiJjdXJzb3I6c3ctcmVzaXplOyIsIlggLmN1cnNvci1zLXJlc2l6ZSI6ImN1cnNvcjpzLXJlc2l6ZTsiLCJYIC5jdXJzb3Itc2UtcmVzaXplIjoiY3Vyc29yOnNlLXJlc2l6ZTsiLCJYIC5jdXJzb3Itdy1yZXNpemUiOiJjdXJzb3I6dy1yZXNpemU7IiwiWCAuY3Vyc29yLWUtcmVzaXplIjoiY3Vyc29yOmUtcmVzaXplOyIsIlggLmN1cnNvci1udy1yZXNpemUiOiJjdXJzb3I6bnctcmVzaXplOyIsIlggLmN1cnNvci1uLXJlc2l6ZSI6ImN1cnNvcjpuLXJlc2l6ZTsiLCJYIC5jdXJzb3ItbmUtcmVzaXplIjoiY3Vyc29yOm5lLXJlc2l6ZTsiLCJYIC5tb2RlYmFyIjoicG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7ei1pbmRleDoxMDAxO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjcpOyIsIlggLm1vZGViYXItLWhvdmVyIjoib3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczstbW96LXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246b3BhY2l0eSAwLjNzIGVhc2UgMHM7LW8tdHJhbnNpdGlvbjpvcGFjaXR5IDAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOm9wYWNpdHkgMC4zcyBlYXNlIDBzOyIsIlg6aG92ZXIgLm1vZGViYXItLWhvdmVyIjoib3BhY2l0eToxOyIsIlggLm1vZGViYXItZ3JvdXAiOiJmbG9hdDpsZWZ0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW4tbGVmdDo4cHg7cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDsiLCJYIC5tb2RlYmFyLWdyb3VwOmZpcnN0LWNoaWxkIjoibWFyZ2luLWxlZnQ6MHB4OyIsIlggLm1vZGViYXItYnRuIjoicG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjE2cHg7cGFkZGluZzozcHggNHB4O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0Om5vcm1hbDtib3gtc2l6aW5nOmJvcmRlci1ib3g7IiwiWCAubW9kZWJhci1idG4gc3ZnIjoicG9zaXRpb246cmVsYXRpdmU7dG9wOjJweDsiLCJYIC5tb2RlYmFyLWJ0biBwYXRoIjoiZmlsbDpyZ2JhKDAsMzEsOTUsMC4zKTsiLCJYIC5tb2RlYmFyLWJ0bi5hY3RpdmUgcGF0aCxYIC5tb2RlYmFyLWJ0bjpob3ZlciBwYXRoIjoiZmlsbDpyZ2JhKDAsMjIsNzIsMC41KTsiLCJYIC5tb2RlYmFyLWJ0bi5tb2RlYmFyLWJ0bi0tbG9nbyI6InBhZGRpbmc6M3B4IDFweDsiLCJYIC5tb2RlYmFyLWJ0bi5tb2RlYmFyLWJ0bi0tbG9nbyBwYXRoIjoiZmlsbDojNDQ3YWRiICFpbXBvcnRhbnQ7IiwiWCBbZGF0YS10aXRsZV06YmVmb3JlLFggW2RhdGEtdGl0bGVdOmFmdGVyIjoicG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO2Rpc3BsYXk6bm9uZTtvcGFjaXR5OjA7ei1pbmRleDoxMDAxO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjExMCU7cmlnaHQ6NTAlOyIsIlggW2RhdGEtdGl0bGVdOmhvdmVyOmJlZm9yZSxYIFtkYXRhLXRpdGxlXTpob3ZlcjphZnRlciI6ImRpc3BsYXk6YmxvY2s7b3BhY2l0eToxOyIsIlggW2RhdGEtdGl0bGVdOmJlZm9yZSI6ImNvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6NnB4IHNvbGlkIHRyYW5zcGFyZW50O3otaW5kZXg6MTAwMjttYXJnaW4tdG9wOi0xMnB4O2JvcmRlci1ib3R0b20tY29sb3I6IzY5NzM4YTttYXJnaW4tcmlnaHQ6LTZweDsiLCJYIFtkYXRhLXRpdGxlXTphZnRlciI6ImNvbnRlbnQ6YXR0cihkYXRhLXRpdGxlKTtiYWNrZ3JvdW5kOiM2OTczOGE7Y29sb3I6d2hpdGU7cGFkZGluZzo4cHggMTBweDtmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxMnB4O3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tcmlnaHQ6LTE4cHg7Ym9yZGVyLXJhZGl1czoycHg7IiwiWCAuc2VsZWN0LW91dGxpbmUiOiJmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjE7c2hhcGUtcmVuZGVyaW5nOmNyaXNwRWRnZXM7IiwiWCAuc2VsZWN0LW91dGxpbmUtMSI6InN0cm9rZTp3aGl0ZTsiLCJYIC5zZWxlY3Qtb3V0bGluZS0yIjoic3Ryb2tlOmJsYWNrO3N0cm9rZS1kYXNoYXJyYXk6MnB4IDJweDsiLFk6ImZvbnQtZmFtaWx5OidPcGVuIFNhbnMnO3Bvc2l0aW9uOmZpeGVkO3RvcDo1MHB4O3JpZ2h0OjIwcHg7ei1pbmRleDoxMDAwMDtmb250LXNpemU6MTBwdDttYXgtd2lkdGg6MTgwcHg7IiwiWSBwIjoibWFyZ2luOjA7IiwiWSAubm90aWZpZXItbm90ZSI6Im1pbi13aWR0aDoxODBweDttYXgtd2lkdGg6MjUwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO3otaW5kZXg6MzAwMDttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiM4Yzk3YWY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0MCwxNTEsMTc1LDAuOSk7Y29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7IiwiWSAubm90aWZpZXItY2xvc2UiOiJjb2xvcjojZmZmO29wYWNpdHk6MC44O2Zsb2F0OnJpZ2h0O3BhZGRpbmc6MCA1cHg7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OmJvbGQ7bGluZS1oZWlnaHQ6MjBweDsiLCJZIC5ub3RpZmllci1jbG9zZTpob3ZlciI6ImNvbG9yOiM0NDQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7In07Zm9yKHZhciBvIGluIGkpe3ZhciBhPW8ucmVwbGFjZSgvXiwvLCIgLCIpLnJlcGxhY2UoL1gvZywiLmpzLXBsb3RseS1wbG90IC5wbG90bHkiKS5yZXBsYWNlKC9ZL2csIi5wbG90bHktbm90aWZpZXIiKTtuLkxpYi5hZGRTdHlsZVJ1bGUoYSxpW29dKX19LHsiLi4vc3JjL3Bsb3RseSI6NjEyfV0sMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3VuZG86e3dpZHRoOjg1Ny4xLHBhdGg6Im04NTcgMzUwcTAtODctMzQtMTY2dC05MS0xMzctMTM3LTkyLTE2Ni0zNHEtOTYgMC0xODMgNDF0LTE0NyAxMTRxLTQgNi00IDEzdDUgMTFsNzYgNzdxNiA1IDE0IDUgOS0xIDEzLTcgNDEtNTMgMTAwLTgydDEyNi0yOXE1OCAwIDExMCAyM3Q5MiA2MSA2MSA5MSAyMiAxMTEtMjIgMTExLTYxIDkxLTkyIDYxLTExMCAyM3EtNTUgMC0xMDUtMjB0LTkwLTU3bDc3LTc3cTE3LTE2IDgtMzgtMTAtMjMtMzMtMjNoLTI1MHEtMTUgMC0yNSAxMXQtMTEgMjV2MjUwcTAgMjQgMjIgMzMgMjIgMTAgMzktOGw3Mi03MnE2MCA1NyAxMzcgODh0MTU5IDMxcTg3IDAgMTY2LTM0dDEzNy05MiA5MS0xMzcgMzQtMTY2eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGhvbWU6e3dpZHRoOjkyOC42LHBhdGg6Im03ODYgMjk2di0yNjdxMC0xNS0xMS0yNnQtMjUtMTBoLTIxNHYyMTRoLTE0M3YtMjE0aC0yMTRxLTE1IDAtMjUgMTB0LTExIDI2djI2N3EwIDEgMCAydDAgMmwzMjEgMjY0IDMyMS0yNjRxMS0xIDEtNHogbTEyNCAzOWwtMzQtNDFxLTUtNS0xMi02aC0ycS03IDAtMTIgM2wtMzg2IDMyMi0zODYtMzIycS03LTQtMTMtNC03IDItMTIgN2wtMzUgNDFxLTQgNS0zIDEzdDYgMTJsNDAxIDMzNHExOCAxNSA0MiAxNXQ0My0xNWwxMzYtMTE0djEwOXEwIDggNSAxM3QxMyA1aDEwN3E4IDAgMTMtNXQ1LTEzdi0yMjdsMTIyLTEwMnE1LTUgNi0xMnQtNC0xM3oiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSwiY2FtZXJhLXJldHJvIjp7d2lkdGg6MWUzLHBhdGg6Im01MTggMzg2cTAgOC01IDEzdC0xMyA1cS0zNyAwLTYzLTI3dC0yNi02M3EwLTggNS0xM3QxMy01IDEyIDUgNSAxM3EwIDIzIDE2IDM4dDM4IDE2cTggMCAxMyA1dDUgMTN6IG0xMjUtNzNxMC01OS00Mi0xMDF0LTEwMS00Mi0xMDEgNDItNDIgMTAxIDQyIDEwMSAxMDEgNDIgMTAxLTQyIDQyLTEwMXogbS01NzItMzIwaDg1OHY3MWgtODU4di03MXogbTY0MyAzMjBxMCA4OS02MiAxNTJ0LTE1MiA2Mi0xNTEtNjItNjMtMTUyIDYzLTE1MSAxNTEtNjMgMTUyIDYzIDYyIDE1MXogbS01NzEgMzU4aDIxNHY3MmgtMjE0di03MnogbS03Mi0xMDdoODU4djE0M2gtNDYybC0zNi03MWgtMzYwdi03MnogbTkyOSAxNDN2LTcxNHEwLTMwLTIxLTUxdC01MC0yMWgtODU4cS0yOSAwLTUwIDIxdC0yMSA1MXY3MTRxMCAzMCAyMSA1MXQ1MCAyMWg4NThxMjkgMCA1MC0yMXQyMS01MXoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSx6b29tYm94Ont3aWR0aDoxZTMscGF0aDoibTEwMDAtMjVsLTI1MCAyNTFjNDAgNjMgNjMgMTM4IDYzIDIxOCAwIDIyNC0xODIgNDA2LTQwNyA0MDYtMjI0IDAtNDA2LTE4Mi00MDYtNDA2czE4My00MDYgNDA3LTQwNmM4MCAwIDE1NSAyMiAyMTggNjJsMjUwLTI1MCAxMjUgMTI1eiBtLTgxMiAyNTBsMCA0MzggNDM3IDAgMC00MzgtNDM3IDB6IG02MiAzNzVsMzEzIDAgMC0zMTItMzEzIDAgMCAzMTJ6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0scGFuOnt3aWR0aDoxZTMscGF0aDoibTEwMDAgMzUwbC0xODcgMTg4IDAtMTI1LTI1MCAwIDAgMjUwIDEyNSAwLTE4OCAxODctMTg3LTE4NyAxMjUgMCAwLTI1MC0yNTAgMCAwIDEyNS0xODgtMTg4IDE4Ni0xODcgMCAxMjUgMjUyIDAgMC0yNTAtMTI1IDAgMTg3LTE4OCAxODggMTg4LTEyNSAwIDAgMjUwIDI1MCAwIDAtMTI2IDE4NyAxODh6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sem9vbV9wbHVzOnt3aWR0aDoxZTMscGF0aDoibTEgNzg3bDAtODc1IDg3NSAwIDAgODc1LTg3NSAweiBtNjg3LTUwMGwtMTg3IDAgMC0xODctMTI1IDAgMCAxODctMTg4IDAgMCAxMjUgMTg4IDAgMCAxODcgMTI1IDAgMC0xODcgMTg3IDAgMC0xMjV6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sem9vbV9taW51czp7d2lkdGg6MWUzLHBhdGg6Im0wIDc4OGwwLTg3NiA4NzUgMCAwIDg3Ni04NzUgMHogbTY4OC01MDBsLTUwMCAwIDAgMTI1IDUwMCAwIDAtMTI1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGF1dG9zY2FsZTp7d2lkdGg6MWUzLHBhdGg6Im0yNTAgODUwbC0xODcgMC02MyAwIDAtNjIgMC0xODggNjMgMCAwIDE4OCAxODcgMCAwIDYyeiBtNjg4IDBsLTE4OCAwIDAtNjIgMTg4IDAgMC0xODggNjIgMCAwIDE4OCAwIDYyLTYyIDB6IG0tODc1LTkzOGwwIDE4OC02MyAwIDAtMTg4IDAtNjIgNjMgMCAxODcgMCAwIDYyLTE4NyAweiBtODc1IDE4OGwwLTE4OC0xODggMCAwLTYyIDE4OCAwIDYyIDAgMCA2MiAwIDE4OC02MiAweiBtLTEyNSAxODhsLTEgMC05My05NC0xNTYgMTU2IDE1NiAxNTYgOTItOTMgMiAwIDAgMjUwLTI1MCAwIDAtMiA5My05Mi0xNTYtMTU2LTE1NiAxNTYgOTQgOTIgMCAyLTI1MCAwIDAtMjUwIDAgMCA5MyA5MyAxNTctMTU2LTE1Ny0xNTYtOTMgOTQgMCAwIDAtMjUwIDI1MCAwIDAgMC05NCA5MyAxNTYgMTU3IDE1Ni0xNTctOTMtOTMgMCAwIDI1MCAwIDAgMjUweiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LHRvb2x0aXBfYmFzaWM6e3dpZHRoOjE1MDAscGF0aDoibTM3NSA3MjVsMCAwLTM3NS0zNzUgMzc1LTM3NCAwLTEgMTEyNSAwIDAgNzUwLTExMjUgMHoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSx0b29sdGlwX2NvbXBhcmU6e3dpZHRoOjExMjUscGF0aDoibTE4NyA3ODZsMCAyLTE4Ny0xODggMTg4LTE4NyAwIDAgOTM3IDAgMCAzNzMtOTM4IDB6IG0wLTQ5OWwwIDEtMTg3LTE4OCAxODgtMTg4IDAgMCA5MzcgMCAwIDM3Ni05MzgtMXoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSxwbG90bHlsb2dvOnt3aWR0aDoxNTQyLHBhdGg6Im0wLTEwaDE4MnYtMTQwaC0xODJ2MTQweiBtMjI4IDE0NmgxODN2LTI4NmgtMTgzdjI4NnogbTIyNSA3MTRoMTgydi0xMDAwaC0xODJ2MTAwMHogbTIyNS0yODVoMTgydi03MTVoLTE4MnY3MTV6IG0yMjUgMTQyaDE4M3YtODU3aC0xODN2ODU3eiBtMjMxLTQyOGgxODJ2LTQyOWgtMTgydjQyOXogbTIyNS0yOTFoMTgzdi0xMzhoLTE4M3YxMzh6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sInotYXhpcyI6e3dpZHRoOjFlMyxwYXRoOiJtODMzIDVsLTE3IDEwOHY0MWwtMTMwLTY1IDEzMC02NmMwIDAgMCAzOCAwIDM5IDAtMSAzNi0xNCAzOS0yNSA0LTE1LTYtMjItMTYtMzAtMTUtMTItMzktMTYtNTYtMjAtOTAtMjItMTg3LTIzLTI3OS0yMy0yNjEgMC0zNDEgMzQtMzUzIDU5IDMgNjAgMjI4IDExMCAyMjggMTEwLTE0MC04LTM1MS0zNS0zNTEtMTE2IDAtMTIwIDI5My0xNDIgNDc0LTE0MiAxNTUgMCA0NzcgMjIgNDc3IDE0MiAwIDUwLTc0IDc5LTE2MyA5NnogbS0zNzQgOTRjLTU4LTUtOTktMjEtOTktNDAgMC0yNCA2NS00MyAxNDQtNDMgNzkgMCAxNDMgMTkgMTQzIDQzIDAgMTktNDIgMzQtOTggNDB2MjE2aDg3bC0xMzIgMTM1LTEzMy0xMzVoODh2LTIxNnogbTE2NyA1MTVoLTEzNnYxYzE2IDE2IDMxIDM0IDQ2IDUybDg0IDEwOXY1NGgtMjMwdi03MWgxMjR2LTFjLTE2LTE3LTI4LTMyLTQ0LTUxbC04OS0xMTR2LTUxaDI0NXY3MnoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfSwiM2Rfcm90YXRlIjp7d2lkdGg6MWUzLHBhdGg6Im05MjIgNjYwYy01IDQtOSA3LTE0IDExLTM1OSAyNjMtNTgwLTMxLTU4MC0zMWwtMTAyIDI4IDU4LTQwMGMwIDEgMSAxIDIgMiAxMTggMTA4IDM1MSAyNDkgMzUxIDI0OXMtNjIgMjctMTAwIDQyYzg4IDgzIDIyMiAxODMgMzQ3IDEyMiAxNi04IDMwLTE3IDQ0LTI3LTIgMS00IDItNiA0eiBtMzYtMzI5YzAgMCA2NCAyMjktODggMjk2LTYyIDI3LTEyNCAxNC0xNzUtMTEgMTU3LTc4IDIyNS0yMDggMjQ5LTI2NiA4LTE5IDExLTMxIDExLTMxIDIgNSA2IDE1IDExIDMyLTUtMTMtOC0yMC04LTIweiBtLTc3NS0yMzljNzAtMzEgMTE3LTUwIDE5OC0zMi0xMjEgODAtMTk5IDM0Ni0xOTkgMzQ2bC05Ni0xNS01OC0xMmMwIDAgNTUtMjI2IDE1NS0yODd6IG02MDMgMTMzbC0zMTctMTM5YzAgMCA0LTQgMTktMTQgNy01IDI0LTE1IDI0LTE1cy0xNzctMTQ3LTM4OSA0YzIzNS0yODcgNTM2LTExMiA1MzYtMTEybDMxLTIyIDEwMCAyOTktNC0xeiBtLTI5OC0xNTNjNi00IDE0LTkgMjQtMTUgMCAwLTE3IDEwLTI0IDE1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGNhbWVyYTp7d2lkdGg6MWUzLHBhdGg6Im01MDAgNDUwYy04MyAwLTE1MC02Ny0xNTAtMTUwIDAtODMgNjctMTUwIDE1MC0xNTAgODMgMCAxNTAgNjcgMTUwIDE1MCAwIDgzLTY3IDE1MC0xNTAgMTUweiBtNDAwIDE1MGgtMTIwYy0xNiAwLTM0IDEzLTM5IDI5bC0zMSA5M2MtNiAxNS0yMyAyOC00MCAyOGgtMzQwYy0xNiAwLTM0LTEzLTM5LTI4bC0zMS05NGMtNi0xNS0yMy0yOC00MC0yOGgtMTIwYy01NSAwLTEwMC00NS0xMDAtMTAwdi00NTBjMC01NSA0NS0xMDAgMTAwLTEwMGg4MDBjNTUgMCAxMDAgNDUgMTAwIDEwMHY0NTBjMCA1NS00NSAxMDAtMTAwIDEwMHogbS00MDAtNTUwYy0xMzggMC0yNTAgMTEyLTI1MCAyNTAgMCAxMzggMTEyIDI1MCAyNTAgMjUwIDEzOCAwIDI1MC0xMTIgMjUwLTI1MCAwLTEzOC0xMTItMjUwLTI1MC0yNTB6IG0zNjUgMzgwYy0xOSAwLTM1IDE2LTM1IDM1IDAgMTkgMTYgMzUgMzUgMzUgMTkgMCAzNS0xNiAzNS0zNSAwLTE5LTE2LTM1LTM1LTM1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LG1vdmllOnt3aWR0aDoxZTMscGF0aDoibTkzOCA0MTNsLTE4OC0xMjVjMCAzNy0xNyA3MS00NCA5NCA2NCAzOCAxMDcgMTA3IDEwNyAxODcgMCAxMjEtOTggMjE5LTIxOSAyMTktMTIxIDAtMjE5LTk4LTIxOS0yMTkgMC02MSAyNS0xMTcgNjYtMTU2aC0xMTVjMzAgMzMgNDkgNzYgNDkgMTI1IDAgMTAzLTg0IDE4Ny0xODcgMTg3cy0xODgtODQtMTg4LTE4N2MwLTU3IDI2LTEwNyA2NS0xNDEtMzgtMjItNjUtNjItNjUtMTA5di0yNTBjMC03MCA1Ni0xMjYgMTI1LTEyNmg1MDBjNjkgMCAxMjUgNTYgMTI1IDEyNmwxODgtMTI2YzM0IDAgNjIgMjggNjIgNjN2Mzc1YzAgMzUtMjggNjMtNjIgNjN6IG0tNzUwIDBjLTY5IDAtMTI1IDU2LTEyNSAxMjVzNTYgMTI1IDEyNSAxMjUgMTI1LTU2IDEyNS0xMjUtNTYtMTI1LTEyNS0xMjV6IG00MDYtMWMtODcgMC0xNTcgNzAtMTU3IDE1NyAwIDg2IDcwIDE1NiAxNTcgMTU2czE1Ni03MCAxNTYtMTU2LTcwLTE1Ny0xNTYtMTU3eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LHF1ZXN0aW9uOnt3aWR0aDo4NTcuMSxwYXRoOiJtNTAwIDgydjEwN3EwIDgtNSAxM3QtMTMgNWgtMTA3cS04IDAtMTMtNXQtNS0xM3YtMTA3cTAtOCA1LTEzdDEzLTVoMTA3cTggMCAxMyA1dDUgMTN6IG0xNDMgMzc1cTAgNDktMzEgOTF0LTc3IDY1LTk1IDIzcS0xMzYgMC0yMDctMTE5LTktMTQgNC0yNGw3NC01NXE0LTQgMTAtNCA5IDAgMTQgNyAzMCAzOCA0OCA1MSAxOSAxNCA0OCAxNCAyNyAwIDQ4LTE1dDIxLTMzcTAtMjEtMTEtMzR0LTM4LTI1cS0zNS0xNi02NS00OHQtMjktNzB2LTIwcTAtOCA1LTEzdDEzLTVoMTA3cTggMCAxMyA1dDUgMTNxMCAxMCAxMiAyN3QzMCAyOHExOCAxMCAyOCAxNnQyNSAxOSAyNSAyNyAxNiAzNCA3IDQ1eiBtMjE0LTEwN3EwLTExNy01Ny0yMTV0LTE1Ni0xNTYtMjE1LTU4LTIxNiA1OC0xNTUgMTU2LTU4IDIxNSA1OCAyMTUgMTU1IDE1NiAyMTYgNTggMjE1LTU4IDE1Ni0xNTYgNTctMjE1eiIsYXNjZW50Ojg1MCxkZXNjZW50Oi0xNTB9LGRpc2s6e3dpZHRoOjg1Ny4xLHBhdGg6Im0yMTQtN2g0Mjl2MjE0aC00Mjl2LTIxNHogbTUwMCAwaDcydjUwMHEwIDgtNiAyMXQtMTEgMjBsLTE1NyAxNTZxLTUgNi0xOSAxMnQtMjIgNXYtMjMycTAtMjItMTUtMzh0LTM4LTE2aC0zMjJxLTIyIDAtMzcgMTZ0LTE2IDM4djIzMmgtNzJ2LTcxNGg3MnYyMzJxMCAyMiAxNiAzOHQzNyAxNmg0NjVxMjIgMCAzOC0xNnQxNS0zOHYtMjMyeiBtLTIxNCA1MTh2MTc4cTAgOC01IDEzdC0xMyA1aC0xMDdxLTcgMC0xMy01dC01LTEzdi0xNzhxMC04IDUtMTN0MTMtNWgxMDdxNyAwIDEzIDV0NSAxM3ogbTM1Ny0xOHYtNTE4cTAtMjItMTUtMzh0LTM4LTE2aC03NTBxLTIzIDAtMzggMTZ0LTE2IDM4djc1MHEwIDIyIDE2IDM4dDM4IDE2aDUxN3EyMyAwIDUwLTEydDQyLTI2bDE1Ni0xNTdxMTYtMTUgMjctNDJ0MTEtNDl6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sbGFzc286e3dpZHRoOjEwMzEscGF0aDoibTEwMTggNTM4Yy0zNiAyMDctMjkwIDMzNi01NjggMjg2LTI3Ny00OC00NzMtMjU2LTQzNi00NjMgMTAtNTcgMzYtMTA4IDc2LTE1MS0xMy02NiAxMS0xMzcgNjgtMTgzIDM0LTI4IDc1LTQxIDExNC00MmwtNTUtNzAgMCAwYy0yLTEtMy0yLTQtMy0xMC0xNC04LTM0IDUtNDUgMTQtMTEgMzQtOCA0NSA0IDEgMSAyIDMgMiA1bDAgMCAxMTMgMTQwYzE2IDExIDMxIDI0IDQ1IDQwIDQgMyA2IDcgOCAxMSA0OC0zIDEwMCAwIDE1MSA5IDI3OCA0OCA0NzMgMjU1IDQzNiA0NjJ6IG0tNjI0LTM3OWMtODAgMTQtMTQ5IDQ4LTE5NyA5NiA0MiA0MiAxMDkgNDcgMTU2IDkgMzMtMjYgNDctNjYgNDEtMTA1eiBtLTE4Ny03NGMtMTkgMTYtMzMgMzctMzkgNjAgNTAtMzIgMTA5LTU1IDE3NC02OC00Mi0yNS05NS0yNC0xMzUgOHogbTM2MCA3NWMtMzQtNy02OS05LTEwMi04IDggNjItMTYgMTI4LTY4IDE3MC03MyA1OS0xNzUgNTQtMjQ0LTUtOSAyMC0xNiA0MC0yMCA2MS0yOCAxNTkgMTIxIDMxNyAzMzMgMzU0czQwNy02MCA0MzQtMjE3YzI4LTE1OS0xMjEtMzE4LTMzMy0zNTV6Iixhc2NlbnQ6ODUwLGRlc2NlbnQ6LTE1MH0sc2VsZWN0Ym94Ont3aWR0aDoxZTMscGF0aDoibTAgODUwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg2IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODUgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtLTg1Ny0yODZsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG04NTcgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbS04NTctMjg1bDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtODU3IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0tODU3LTI4NmwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg1IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHoiLGFzY2VudDo4NTAsZGVzY2VudDotMTUwfX19LHt9XSwzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvYmFyIil9LHsiLi4vc3JjL3RyYWNlcy9iYXIiOjY5N31dLDQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9ib3giKX0seyIuLi9zcmMvdHJhY2VzL2JveCI6NzA4fV0sNTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiKX0seyIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiOjcxN31dLDY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jb250b3VyIil9LHsiLi4vc3JjL3RyYWNlcy9jb250b3VyIjo3MjR9XSw3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy9jb3JlIil9LHsiLi4vc3JjL2NvcmUiOjU4MH1dLDg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oZWF0bWFwIil9LHsiLi4vc3JjL3RyYWNlcy9oZWF0bWFwIjo3MzZ9XSw5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0iOjc0N31dLDEwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmQiKX0seyIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbTJkIjo3NTJ9XSwxMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbTJkY29udG91ciIpfSx7Ii4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmRjb250b3VyIjo3NTZ9XSwxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvcmUiKTtuLnJlZ2lzdGVyKFt0KCIuL2JhciIpLHQoIi4vYm94IiksdCgiLi9oZWF0bWFwIiksdCgiLi9oaXN0b2dyYW0iKSx0KCIuL2hpc3RvZ3JhbTJkIiksdCgiLi9oaXN0b2dyYW0yZGNvbnRvdXIiKSx0KCIuL3BpZSIpLHQoIi4vY29udG91ciIpLHQoIi4vc2NhdHRlcjNkIiksdCgiLi9zdXJmYWNlIiksdCgiLi9tZXNoM2QiKSx0KCIuL3NjYXR0ZXJnZW8iKSx0KCIuL2Nob3JvcGxldGgiKSx0KCIuL3NjYXR0ZXJnbCIpLHQoIi4vc2NhdHRlcnRlcm5hcnkiKSx0KCIuL3NjYXR0ZXJtYXBib3giKV0pLGUuZXhwb3J0cz1ufSx7Ii4vYmFyIjozLCIuL2JveCI6NCwiLi9jaG9yb3BsZXRoIjo1LCIuL2NvbnRvdXIiOjYsIi4vY29yZSI6NywiLi9oZWF0bWFwIjo4LCIuL2hpc3RvZ3JhbSI6OSwiLi9oaXN0b2dyYW0yZCI6MTAsIi4vaGlzdG9ncmFtMmRjb250b3VyIjoxMSwiLi9tZXNoM2QiOjEzLCIuL3BpZSI6MTQsIi4vc2NhdHRlcjNkIjoxNSwiLi9zY2F0dGVyZ2VvIjoxNiwiLi9zY2F0dGVyZ2wiOjE3LCIuL3NjYXR0ZXJtYXBib3giOjE4LCIuL3NjYXR0ZXJ0ZXJuYXJ5IjoxOSwiLi9zdXJmYWNlIjoyMH1dLDEzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvbWVzaDNkIil9LHsiLi4vc3JjL3RyYWNlcy9tZXNoM2QiOjc2MH1dLDE0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvcGllIil9LHsiLi4vc3JjL3RyYWNlcy9waWUiOjc2Nn1dLDE1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcjNkIil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVyM2QiOjgwMH1dLDE2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcmdlbyIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcmdlbyI6ODA0fV0sMTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVyZ2wiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnbCI6ODA5fV0sMTg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVybWFwYm94Iil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVybWFwYm94Ijo4MTV9XSwxOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJ0ZXJuYXJ5Iil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVydGVybmFyeSI6ODIxfV0sMjA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIil9LHsiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIjo4MzB9XSwyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtyZXR1cm4gTWF0aC5taW4oZSxNYXRoLm1heCh0LHIpKX1mdW5jdGlvbiBpKHQsZSxyKXt0aGlzLmRpbWVuc2lvbj10Lmxlbmd0aCx0aGlzLmJvdW5kcz1bbmV3IEFycmF5KHRoaXMuZGltZW5zaW9uKSxuZXcgQXJyYXkodGhpcy5kaW1lbnNpb24pXTtmb3IodmFyIG49MDtuPHRoaXMuZGltZW5zaW9uOysrbil0aGlzLmJvdW5kc1swXVtuXT0tKDEvMCksdGhpcy5ib3VuZHNbMV1bbl09MS8wO3RoaXMuX3N0YXRlPXQuc2xpY2UoKS5yZXZlcnNlKCksdGhpcy5fdmVsb2NpdHk9ZS5zbGljZSgpLnJldmVyc2UoKSx0aGlzLl90aW1lPVtyXSx0aGlzLl9zY3JhdGNoPVt0LnNsaWNlKCksdC5zbGljZSgpLHQuc2xpY2UoKSx0LnNsaWNlKCksdC5zbGljZSgpXX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3Q+cjsrK3IpZVtyXT0wO3JldHVybiBlfWZ1bmN0aW9uIGEodCxlLHIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBpKFswXSxbMF0sMCk7Y2FzZSAxOmlmKCJudW1iZXIiPT10eXBlb2YgdCl7dmFyIG49byh0KTtyZXR1cm4gbmV3IGkobixuLDApfXJldHVybiBuZXcgaSh0LG8odC5sZW5ndGgpLDApO2Nhc2UgMjppZigibnVtYmVyIj09dHlwZW9mIGUpe3ZhciBuPW8odC5sZW5ndGgpO3JldHVybiBuZXcgaSh0LG4sK2UpfXI9MDtjYXNlIDM6aWYodC5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoInN0YXRlIGFuZCB2ZWxvY2l0eSBsZW5ndGhzIG11c3QgbWF0Y2giKTtyZXR1cm4gbmV3IGkodCxlLHIpfX1lLmV4cG9ydHM9YTt2YXIgcz10KCJjdWJpYy1oZXJtaXRlIiksbD10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLHU9aS5wcm90b3R5cGU7dS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT1sLmd0KHRoaXMuX3RpbWUsdCktMTswPj1lfHwodGhpcy5fdGltZS5zcGxpY2UoMCxlKSx0aGlzLl9zdGF0ZS5zcGxpY2UoMCxlKnRoaXMuZGltZW5zaW9uKSx0aGlzLl92ZWxvY2l0eS5zcGxpY2UoMCxlKnRoaXMuZGltZW5zaW9uKSl9LHUuY3VydmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGltZSxyPWUubGVuZ3RoLGk9bC5sZShlLHQpLG89dGhpcy5fc2NyYXRjaFswXSxhPXRoaXMuX3N0YXRlLHU9dGhpcy5fdmVsb2NpdHksYz10aGlzLmRpbWVuc2lvbixoPXRoaXMuYm91bmRzO2lmKDA+aSlmb3IodmFyIGY9Yy0xLHA9MDtjPnA7KytwLC0tZilvW3BdPWFbZl07ZWxzZSBpZihpPj1yLTEpZm9yKHZhciBmPWEubGVuZ3RoLTEsZD10LWVbci0xXSxwPTA7Yz5wOysrcCwtLWYpb1twXT1hW2ZdK2QqdVtmXTtlbHNle2Zvcih2YXIgZj1jKihpKzEpLTEsbT1lW2ldLGc9ZVtpKzFdLHY9Zy1tfHwxLHk9dGhpcy5fc2NyYXRjaFsxXSxiPXRoaXMuX3NjcmF0Y2hbMl0seD10aGlzLl9zY3JhdGNoWzNdLF89dGhpcy5fc2NyYXRjaFs0XSx3PSEwLHA9MDtjPnA7KytwLC0tZil5W3BdPWFbZl0seFtwXT11W2ZdKnYsYltwXT1hW2YrY10sX1twXT11W2YrY10qdix3PXcmJnlbcF09PT1iW3BdJiZ4W3BdPT09X1twXSYmMD09PXhbcF07aWYodylmb3IodmFyIHA9MDtjPnA7KytwKW9bcF09eVtwXTtlbHNlIHMoeSx4LGIsXywodC1tKS92LG8pfWZvcih2YXIgTT1oWzBdLGs9aFsxXSxwPTA7Yz5wOysrcClvW3BdPW4oTVtwXSxrW3BdLG9bcF0pO3JldHVybiBvfSx1LmRjdXJ2ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aW1lLHI9ZS5sZW5ndGgsbj1sLmxlKGUsdCksaT10aGlzLl9zY3JhdGNoWzBdLG89dGhpcy5fc3RhdGUsYT10aGlzLl92ZWxvY2l0eSx1PXRoaXMuZGltZW5zaW9uO2lmKG4+PXItMSlmb3IodmFyIGM9by5sZW5ndGgtMSxoPSh0LWVbci0xXSwwKTt1Pmg7KytoLC0tYylpW2hdPWFbY107ZWxzZXtmb3IodmFyIGM9dSoobisxKS0xLGY9ZVtuXSxwPWVbbisxXSxkPXAtZnx8MSxtPXRoaXMuX3NjcmF0Y2hbMV0sZz10aGlzLl9zY3JhdGNoWzJdLHY9dGhpcy5fc2NyYXRjaFszXSx5PXRoaXMuX3NjcmF0Y2hbNF0sYj0hMCxoPTA7dT5oOysraCwtLWMpbVtoXT1vW2NdLHZbaF09YVtjXSpkLGdbaF09b1tjK3VdLHlbaF09YVtjK3VdKmQsYj1iJiZtW2hdPT09Z1toXSYmdltoXT09PXlbaF0mJjA9PT12W2hdO2lmKGIpZm9yKHZhciBoPTA7dT5oOysraClpW2hdPTA7ZWxzZXtzLmRlcml2YXRpdmUobSx2LGcseSwodC1mKS9kLGkpO2Zvcih2YXIgaD0wO3U+aDsrK2gpaVtoXS89ZH19cmV0dXJuIGl9LHUubGFzdFQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl90aW1lO3JldHVybiB0W3QubGVuZ3RoLTFdfSx1LnN0YWJsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl92ZWxvY2l0eSxlPXQubGVuZ3RoLHI9dGhpcy5kaW1lbnNpb24tMTtyPj0wOy0tcilpZih0Wy0tZV0pcmV0dXJuITE7cmV0dXJuITB9LHUuanVtcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10aGlzLmRpbWVuc2lvbjtpZighKGU+dHx8YXJndW1lbnRzLmxlbmd0aCE9PXIrMSkpe3ZhciBpPXRoaXMuX3N0YXRlLG89dGhpcy5fdmVsb2NpdHksYT1pLmxlbmd0aC10aGlzLmRpbWVuc2lvbixzPXRoaXMuYm91bmRzLGw9c1swXSx1PXNbMV07dGhpcy5fdGltZS5wdXNoKGUsdCk7Zm9yKHZhciBjPTA7Mj5jOysrYylmb3IodmFyIGg9MDtyPmg7KytoKWkucHVzaChpW2ErK10pLG8ucHVzaCgwKTt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciBoPXI7aD4wOy0taClpLnB1c2gobihsW2gtMV0sdVtoLTFdLGFyZ3VtZW50c1toXSkpLG8ucHVzaCgwKX19LHUucHVzaD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10aGlzLmRpbWVuc2lvbjtpZighKGU+dHx8YXJndW1lbnRzLmxlbmd0aCE9PXIrMSkpe3ZhciBpPXRoaXMuX3N0YXRlLG89dGhpcy5fdmVsb2NpdHksYT1pLmxlbmd0aC10aGlzLmRpbWVuc2lvbixzPXQtZSxsPXRoaXMuYm91bmRzLHU9bFswXSxjPWxbMV0saD1zPjFlLTY/MS9zOjA7dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgZj1yO2Y+MDstLWYpe3ZhciBwPW4odVtmLTFdLGNbZi0xXSxhcmd1bWVudHNbZl0pO2kucHVzaChwKSxvLnB1c2goKHAtaVthKytdKSpoKX19fSx1LnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRpbWVuc2lvbjtpZighKHQ8dGhpcy5sYXN0VCgpfHxhcmd1bWVudHMubGVuZ3RoIT09ZSsxKSl7dmFyIHI9dGhpcy5fc3RhdGUsaT10aGlzLl92ZWxvY2l0eSxvPXRoaXMuYm91bmRzLGE9b1swXSxzPW9bMV07dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgbD1lO2w+MDstLWwpci5wdXNoKG4oYVtsLTFdLHNbbC0xXSxhcmd1bWVudHNbbF0pKSxpLnB1c2goMCl9fSx1Lm1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0VCgpLHI9dGhpcy5kaW1lbnNpb247aWYoIShlPj10fHxhcmd1bWVudHMubGVuZ3RoIT09cisxKSl7dmFyIGk9dGhpcy5fc3RhdGUsbz10aGlzLl92ZWxvY2l0eSxhPWkubGVuZ3RoLXRoaXMuZGltZW5zaW9uLHM9dGhpcy5ib3VuZHMsbD1zWzBdLHU9c1sxXSxjPXQtZSxoPWM+MWUtNj8xL2M6MDt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciBmPXI7Zj4wOy0tZil7dmFyIHA9YXJndW1lbnRzW2ZdO2kucHVzaChuKGxbZi0xXSx1W2YtMV0saVthKytdK3ApKSxvLnB1c2gocCpoKX19fSx1LmlkbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXN0VCgpO2lmKCEoZT50KSl7dmFyIHI9dGhpcy5kaW1lbnNpb24saT10aGlzLl9zdGF0ZSxvPXRoaXMuX3ZlbG9jaXR5LGE9aS5sZW5ndGgtcixzPXRoaXMuYm91bmRzLGw9c1swXSx1PXNbMV0sYz10LWU7dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgaD1yLTE7aD49MDstLWgpaS5wdXNoKG4obFtoXSx1W2hdLGlbYV0rYypvW2FdKSksby5wdXNoKDApLGErPTF9fX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MjIsImN1YmljLWhlcm1pdGUiOjIzfV0sMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyl7dmFyIGE9WyJmdW5jdGlvbiAiLHQsIihhLGwsaCwiLG4uam9pbigiLCIpLCIpeyIsbz8iIjoidmFyIGk9IixyPyJsLTEiOiJoKzEiLCI7d2hpbGUobDw9aCl7dmFyIG09KGwraCk+Pj4xLHg9YSIsaT8iLmdldChtKSI6IlttXSJdO3JldHVybiBvP2UuaW5kZXhPZigiYyIpPDA/YS5wdXNoKCI7aWYoeD09PXkpe3JldHVybiBtfWVsc2UgaWYoeDw9eSl7Iik6YS5wdXNoKCI7dmFyIHA9Yyh4LHkpO2lmKHA9PT0wKXtyZXR1cm4gbX1lbHNlIGlmKHA8PTApeyIpOmEucHVzaCgiO2lmKCIsZSwiKXtpPW07Iikscj9hLnB1c2goImw9bSsxfWVsc2V7aD1tLTF9Iik6YS5wdXNoKCJoPW0tMX1lbHNle2w9bSsxfSIpLGEucHVzaCgifSIpLG8/YS5wdXNoKCJyZXR1cm4gLTF9OyIpOmEucHVzaCgicmV0dXJuIGl9OyIpLGEuam9pbigiIil9ZnVuY3Rpb24gaSh0LGUscixpKXt2YXIgbz1uZXcgRnVuY3Rpb24oW24oIkEiLCJ4Iit0KyJ5IixlLFsieSJdLCExLGkpLG4oIkIiLCJ4Iit0KyJ5IixlLFsieSJdLCEwLGkpLG4oIlAiLCJjKHgseSkiK3QrIjAiLGUsWyJ5IiwiYyJdLCExLGkpLG4oIlEiLCJjKHgseSkiK3QrIjAiLGUsWyJ5IiwiYyJdLCEwLGkpLCJmdW5jdGlvbiBkaXNwYXRjaEJzZWFyY2giLHIsIihhLHksYyxsLGgpe2lmKGEuc2hhcGUpe2lmKHR5cGVvZihjKT09PSdmdW5jdGlvbicpe3JldHVybiBRKGEsKGw9PT11bmRlZmluZWQpPzA6bHwwLChoPT09dW5kZWZpbmVkKT9hLnNoYXBlWzBdLTE6aHwwLHksYyl9ZWxzZXtyZXR1cm4gQihhLChjPT09dW5kZWZpbmVkKT8wOmN8MCwobD09PXVuZGVmaW5lZCk/YS5zaGFwZVswXS0xOmx8MCx5KX19ZWxzZXtpZih0eXBlb2YoYyk9PT0nZnVuY3Rpb24nKXtyZXR1cm4gUChhLChsPT09dW5kZWZpbmVkKT8wOmx8MCwoaD09PXVuZGVmaW5lZCk/YS5sZW5ndGgtMTpofDAseSxjKX1lbHNle3JldHVybiBBKGEsKGM9PT11bmRlZmluZWQpPzA6Y3wwLChsPT09dW5kZWZpbmVkKT9hLmxlbmd0aC0xOmx8MCx5KX19fXJldHVybiBkaXNwYXRjaEJzZWFyY2giLHJdLmpvaW4oIiIpKTtyZXR1cm4gbygpfWUuZXhwb3J0cz17Z2U6aSgiPj0iLCExLCJHRSIpLGd0OmkoIj4iLCExLCJHVCIpLGx0OmkoIjwiLCEwLCJMVCIpLGxlOmkoIjw9IiwhMCwiTEUiKSxlcTppKCItIiwhMCwiRVEiLCEwKX19LHt9XSwyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxvKXt2YXIgYT02KmkqaS02Kmkscz0zKmkqaS00KmkrMSxsPS02KmkqaSs2KmksdT0zKmkqaS0yKmk7aWYodC5sZW5ndGgpe298fChvPW5ldyBBcnJheSh0Lmxlbmd0aCkpO2Zvcih2YXIgYz10Lmxlbmd0aC0xO2M+PTA7LS1jKW9bY109YSp0W2NdK3MqZVtjXStsKnJbY10rdSpuW2NdO3JldHVybiBvfXJldHVybiBhKnQrcyplK2wqcltjXSt1Km59ZnVuY3Rpb24gaSh0LGUscixuLGksbyl7dmFyIGE9aS0xLHM9aSppLGw9YSphLHU9KDErMippKSpsLGM9aSpsLGg9cyooMy0yKmkpLGY9cyphO2lmKHQubGVuZ3RoKXtvfHwobz1uZXcgQXJyYXkodC5sZW5ndGgpKTtmb3IodmFyIHA9dC5sZW5ndGgtMTtwPj0wOy0tcClvW3BdPXUqdFtwXStjKmVbcF0raCpyW3BdK2YqbltwXTtyZXR1cm4gb31yZXR1cm4gdSp0K2MqZStoKnIrZipufWUuZXhwb3J0cz1pLGUuZXhwb3J0cy5kZXJpdmF0aXZlPW59LHt9XSwyNDpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPXJbMF0scz1yWzFdLGw9clsyXTtyZXR1cm4gdFswXT1pKmwtbypzLHRbMV09byphLW4qbCx0WzJdPW4qcy1pKmEsdH1lLmV4cG9ydHM9bn0se31dLDI1OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXX1lLmV4cG9ydHM9bn0se31dLDI2OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl07cmV0dXJuIE1hdGguc3FydChlKmUrcipyK24qbil9ZS5leHBvcnRzPW59LHt9XSwyNzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIGk9ZVswXSxvPWVbMV0sYT1lWzJdO3JldHVybiB0WzBdPWkrbiooclswXS1pKSx0WzFdPW8rbiooclsxXS1vKSx0WzJdPWErbiooclsyXS1hKSx0fWUuZXhwb3J0cz1ufSx7fV0sMjg6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLG89cipyK24qbitpKmk7cmV0dXJuIG8+MCYmKG89MS9NYXRoLnNxcnQobyksdFswXT1lWzBdKm8sdFsxXT1lWzFdKm8sdFsyXT1lWzJdKm8pLHR9ZS5leHBvcnRzPW59LHt9XSwyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMuX2NvbXBvbmVudHM9dC5zbGljZSgpLHRoaXMuX3RpbWU9WzBdLHRoaXMucHJldk1hdHJpeD10LnNsaWNlKCksdGhpcy5uZXh0TWF0cml4PXQuc2xpY2UoKSx0aGlzLmNvbXB1dGVkTWF0cml4PXQuc2xpY2UoKSx0aGlzLmNvbXB1dGVkSW52ZXJzZT10LnNsaWNlKCksdGhpcy5jb21wdXRlZEV5ZT1bMCwwLDBdLHRoaXMuY29tcHV0ZWRVcD1bMCwwLDBdLHRoaXMuY29tcHV0ZWRDZW50ZXI9WzAsMCwwXSx0aGlzLmNvbXB1dGVkUmFkaXVzPVswXSx0aGlzLl9saW1pdHM9Wy0oMS8wKSwxLzBdfWZ1bmN0aW9uIGkodCl7dD10fHx7fTt2YXIgZT10Lm1hdHJpeHx8WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO3JldHVybiBuZXcgbihlKX12YXIgbz10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLGE9dCgibWF0NC1pbnRlcnBvbGF0ZSIpLHM9dCgiZ2wtbWF0NC9pbnZlcnQiKSxsPXQoImdsLW1hdDQvcm90YXRlWCIpLHU9dCgiZ2wtbWF0NC9yb3RhdGVZIiksYz10KCJnbC1tYXQ0L3JvdGF0ZVoiKSxoPXQoImdsLW1hdDQvbG9va0F0IiksZj10KCJnbC1tYXQ0L3RyYW5zbGF0ZSIpLHA9KHQoImdsLW1hdDQvc2NhbGUiKSx0KCJnbC12ZWMzL25vcm1hbGl6ZSIpKSxkPVswLDAsMF07ZS5leHBvcnRzPWk7dmFyIG09bi5wcm90b3R5cGU7bS5yZWNhbGNNYXRyaXg9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGltZSxyPW8ubGUoZSx0KSxuPXRoaXMuY29tcHV0ZWRNYXRyaXg7aWYoISgwPnIpKXt2YXIgaT10aGlzLl9jb21wb25lbnRzO2lmKHI9PT1lLmxlbmd0aC0xKWZvcih2YXIgbD0xNipyLHU9MDsxNj51OysrdSluW3VdPWlbbCsrXTtlbHNle2Zvcih2YXIgYz1lW3IrMV0tZVtyXSxsPTE2KnIsaD10aGlzLnByZXZNYXRyaXgsZj0hMCx1PTA7MTY+dTsrK3UpaFt1XT1pW2wrK107Zm9yKHZhciBkPXRoaXMubmV4dE1hdHJpeCx1PTA7MTY+dTsrK3UpZFt1XT1pW2wrK10sZj1mJiZoW3VdPT09ZFt1XTtpZigxZS02PmN8fGYpZm9yKHZhciB1PTA7MTY+dTsrK3Upblt1XT1oW3VdO2Vsc2UgYShuLGgsZCwodC1lW3JdKS9jKX12YXIgbT10aGlzLmNvbXB1dGVkVXA7bVswXT1uWzFdLG1bMV09bls1XSxtWzJdPW5bNl0scChtLG0pO3ZhciBnPXRoaXMuY29tcHV0ZWRJbnZlcnNlO3MoZyxuKTt2YXIgdj10aGlzLmNvbXB1dGVkRXllLHk9Z1sxNV07dlswXT1nWzEyXS95LHZbMV09Z1sxM10veSx2WzJdPWdbMTRdL3k7Zm9yKHZhciBiPXRoaXMuY29tcHV0ZWRDZW50ZXIseD1NYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKSx1PTA7Mz51OysrdSliW3VdPXZbdV0tblsyKzQqdV0qeH19LG0uaWRsZT1mdW5jdGlvbih0KXtpZighKHQ8dGhpcy5sYXN0VCgpKSl7Zm9yKHZhciBlPXRoaXMuX2NvbXBvbmVudHMscj1lLmxlbmd0aC0xNixuPTA7MTY+bjsrK24pZS5wdXNoKGVbcisrXSk7dGhpcy5fdGltZS5wdXNoKHQpfX0sbS5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT1vLmd0KHRoaXMuX3RpbWUsdCktMjswPmV8fCh0aGlzLl90aW1lLnNsaWNlKDAsZSksdGhpcy5fY29tcG9uZW50cy5zbGljZSgwLDE2KmUpKX0sbS5sYXN0VD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90aW1lW3RoaXMuX3RpbWUubGVuZ3RoLTFdfSxtLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxlPWV8fHRoaXMuY29tcHV0ZWRFeWUscj1yfHxkLG49bnx8dGhpcy5jb21wdXRlZFVwLHRoaXMuc2V0TWF0cml4KHQsaCh0aGlzLmNvbXB1dGVkTWF0cml4LGUscixuKSk7Zm9yKHZhciBpPTAsbz0wOzM+bzsrK28paSs9TWF0aC5wb3cocltvXS1lW29dLDIpO2k9TWF0aC5sb2coTWF0aC5zcXJ0KGkpKSx0aGlzLmNvbXB1dGVkUmFkaXVzWzBdPWl9LG0ucm90YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWRJbnZlcnNlO2UmJnUoaSxpLGUpLHImJmwoaSxpLHIpLG4mJmMoaSxpLG4pLHRoaXMuc2V0TWF0cml4KHQscyh0aGlzLmNvbXB1dGVkTWF0cml4LGkpKX07dmFyIGc9WzAsMCwwXTttLnBhbj1mdW5jdGlvbih0LGUscixuKXtnWzBdPS0oZXx8MCksZ1sxXT0tKHJ8fDApLGdbMl09LShufHwwKSx0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkSW52ZXJzZTtmKGksaSxnKSx0aGlzLnNldE1hdHJpeCh0LHMoaSxpKSl9LG0udHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe2dbMF09ZXx8MCxnWzFdPXJ8fDAsZ1syXT1ufHwwLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXg7ZihpLGksZyksdGhpcy5zZXRNYXRyaXgodCxpKX0sbS5zZXRNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighKHQ8dGhpcy5sYXN0VCgpKSl7dGhpcy5fdGltZS5wdXNoKHQpO2Zvcih2YXIgcj0wOzE2PnI7KytyKXRoaXMuX2NvbXBvbmVudHMucHVzaChlW3JdKX19LG0uc2V0RGlzdGFuY2U9ZnVuY3Rpb24odCxlKXt0aGlzLmNvbXB1dGVkUmFkaXVzWzBdPWV9LG0uc2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl9saW1pdHM7clswXT10LHJbMV09ZX0sbS5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9saW1pdHM7cmV0dXJuIHQ/KHRbMF09ZVswXSx0WzFdPWVbMV0sdCk6ZX19LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjMwLCJnbC1tYXQ0L2ludmVydCI6MTQ4LCJnbC1tYXQ0L2xvb2tBdCI6MTQ5LCJnbC1tYXQ0L3JvdGF0ZVgiOjE1MywiZ2wtbWF0NC9yb3RhdGVZIjoxNTQsImdsLW1hdDQvcm90YXRlWiI6MTU1LCJnbC1tYXQ0L3NjYWxlIjoxNTYsImdsLW1hdDQvdHJhbnNsYXRlIjoxNTcsImdsLXZlYzMvbm9ybWFsaXplIjoyOCwibWF0NC1pbnRlcnBvbGF0ZSI6MzF9XSwzMDpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVsyMl1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjIyfV0sMzE6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyLG4pe2lmKDA9PT1jKGUpfHwwPT09YyhyKSlyZXR1cm4hMTt2YXIgaT11KGUsZi50cmFuc2xhdGUsZi5zY2FsZSxmLnNrZXcsZi5wZXJzcGVjdGl2ZSxmLnF1YXRlcm5pb24pLG89dShyLHAudHJhbnNsYXRlLHAuc2NhbGUscC5za2V3LHAucGVyc3BlY3RpdmUscC5xdWF0ZXJuaW9uKTtyZXR1cm4gaSYmbz8ocyhkLnRyYW5zbGF0ZSxmLnRyYW5zbGF0ZSxwLnRyYW5zbGF0ZSxuKSxzKGQuc2tldyxmLnNrZXcscC5za2V3LG4pLHMoZC5zY2FsZSxmLnNjYWxlLHAuc2NhbGUsbikscyhkLnBlcnNwZWN0aXZlLGYucGVyc3BlY3RpdmUscC5wZXJzcGVjdGl2ZSxuKSxoKGQucXVhdGVybmlvbixmLnF1YXRlcm5pb24scC5xdWF0ZXJuaW9uLG4pLGwodCxkLnRyYW5zbGF0ZSxkLnNjYWxlLGQuc2tldyxkLnBlcnNwZWN0aXZlLGQucXVhdGVybmlvbiksITApOiExfWZ1bmN0aW9uIGkoKXtyZXR1cm57dHJhbnNsYXRlOm8oKSxzY2FsZTpvKDEpLHNrZXc6bygpLHBlcnNwZWN0aXZlOmEoKSxxdWF0ZXJuaW9uOmEoKX19ZnVuY3Rpb24gbyh0KXtyZXR1cm5bdHx8MCx0fHwwLHR8fDBdfWZ1bmN0aW9uIGEoKXtyZXR1cm5bMCwwLDAsMV19dmFyIHM9dCgiZ2wtdmVjMy9sZXJwIiksbD10KCJtYXQ0LXJlY29tcG9zZSIpLHU9dCgibWF0NC1kZWNvbXBvc2UiKSxjPXQoImdsLW1hdDQvZGV0ZXJtaW5hbnQiKSxoPXQoInF1YXQtc2xlcnAiKSxmPWkoKSxwPWkoKSxkPWkoKTtlLmV4cG9ydHM9bn0seyJnbC1tYXQ0L2RldGVybWluYW50IjoxNDQsImdsLXZlYzMvbGVycCI6MjcsIm1hdDQtZGVjb21wb3NlIjozMiwibWF0NC1yZWNvbXBvc2UiOjM0LCJxdWF0LXNsZXJwIjozNX1dLDMyOltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXTtyZXR1cm4gdFswXT1yWzBdKm4rcls0XSppK3JbOF0qbytyWzEyXSphLHRbMV09clsxXSpuK3JbNV0qaStyWzldKm8rclsxM10qYSx0WzJdPXJbMl0qbityWzZdKmkrclsxMF0qbytyWzE0XSphLHRbM109clszXSpuK3JbN10qaStyWzExXSpvK3JbMTVdKmEsdH1mdW5jdGlvbiBpKHQsZSl7dFswXVswXT1lWzBdLHRbMF1bMV09ZVsxXSx0WzBdWzJdPWVbMl0sdFsxXVswXT1lWzRdLHRbMV1bMV09ZVs1XSx0WzFdWzJdPWVbNl0sdFsyXVswXT1lWzhdLHRbMl1bMV09ZVs5XSx0WzJdWzJdPWVbMTBdfWZ1bmN0aW9uIG8odCxlLHIsbixpKXt0WzBdPWVbMF0qbityWzBdKmksdFsxXT1lWzFdKm4rclsxXSppLHRbMl09ZVsyXSpuK3JbMl0qaX12YXIgYT10KCIuL25vcm1hbGl6ZSIpLHM9dCgiZ2wtbWF0NC9jcmVhdGUiKSxsPXQoImdsLW1hdDQvY2xvbmUiKSx1PXQoImdsLW1hdDQvZGV0ZXJtaW5hbnQiKSxjPXQoImdsLW1hdDQvaW52ZXJ0IiksaD10KCJnbC1tYXQ0L3RyYW5zcG9zZSIpLGY9e2xlbmd0aDp0KCJnbC12ZWMzL2xlbmd0aCIpLG5vcm1hbGl6ZTp0KCJnbC12ZWMzL25vcm1hbGl6ZSIpLGRvdDp0KCJnbC12ZWMzL2RvdCIpLGNyb3NzOnQoImdsLXZlYzMvY3Jvc3MiKX0scD1zKCksZD1zKCksbT1bMCwwLDAsMF0sZz1bWzAsMCwwXSxbMCwwLDBdLFswLDAsMF1dLHY9WzAsMCwwXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyx5LGIpe2lmKGV8fChlPVswLDAsMF0pLHJ8fChyPVswLDAsMF0pLHN8fChzPVswLDAsMF0pLHl8fCh5PVswLDAsMCwxXSksYnx8KGI9WzAsMCwwLDFdKSwhYShwLHQpKXJldHVybiExO2lmKGwoZCxwKSxkWzNdPTAsZFs3XT0wLGRbMTFdPTAsZFsxNV09MSxNYXRoLmFicyh1KGQpPDFlLTgpKXJldHVybiExO3ZhciB4PXBbM10sXz1wWzddLHc9cFsxMV0sTT1wWzEyXSxrPXBbMTNdLEE9cFsxNF0sVD1wWzE1XTtpZigwIT09eHx8MCE9PV98fDAhPT13KXttWzBdPXgsbVsxXT1fLG1bMl09dyxtWzNdPVQ7dmFyIEU9YyhkLGQpO2lmKCFFKXJldHVybiExO2goZCxkKSxuKHksbSxkKX1lbHNlIHlbMF09eVsxXT15WzJdPTAseVszXT0xO2lmKGVbMF09TSxlWzFdPWssZVsyXT1BLGkoZyxwKSxyWzBdPWYubGVuZ3RoKGdbMF0pLGYubm9ybWFsaXplKGdbMF0sZ1swXSksc1swXT1mLmRvdChnWzBdLGdbMV0pLG8oZ1sxXSxnWzFdLGdbMF0sMSwtc1swXSksclsxXT1mLmxlbmd0aChnWzFdKSxmLm5vcm1hbGl6ZShnWzFdLGdbMV0pLHNbMF0vPXJbMV0sc1sxXT1mLmRvdChnWzBdLGdbMl0pLG8oZ1syXSxnWzJdLGdbMF0sMSwtc1sxXSksc1syXT1mLmRvdChnWzFdLGdbMl0pLG8oZ1syXSxnWzJdLGdbMV0sMSwtc1syXSksclsyXT1mLmxlbmd0aChnWzJdKSxmLm5vcm1hbGl6ZShnWzJdLGdbMl0pLHNbMV0vPXJbMl0sc1syXS89clsyXSxmLmNyb3NzKHYsZ1sxXSxnWzJdKSxmLmRvdChnWzBdLHYpPDApZm9yKHZhciBTPTA7Mz5TO1MrKylyW1NdKj0tMSxnW1NdWzBdKj0tMSxnW1NdWzFdKj0tMSxnW1NdWzJdKj0tMTtyZXR1cm4gYlswXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMStnWzBdWzBdLWdbMV1bMV0tZ1syXVsyXSwwKSksYlsxXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMS1nWzBdWzBdK2dbMV1bMV0tZ1syXVsyXSwwKSksYlsyXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMS1nWzBdWzBdLWdbMV1bMV0rZ1syXVsyXSwwKSksYlszXT0uNSpNYXRoLnNxcnQoTWF0aC5tYXgoMStnWzBdWzBdK2dbMV1bMV0rZ1syXVsyXSwwKSksZ1syXVsxXT5nWzFdWzJdJiYoYlswXT0tYlswXSksZ1swXVsyXT5nWzJdWzBdJiYoYlsxXT0tYlsxXSksZ1sxXVswXT5nWzBdWzFdJiYoYlsyXT0tYlsyXSksITB9fSx7Ii4vbm9ybWFsaXplIjozMywiZ2wtbWF0NC9jbG9uZSI6MTQyLCJnbC1tYXQ0L2NyZWF0ZSI6MTQzLCJnbC1tYXQ0L2RldGVybWluYW50IjoxNDQsImdsLW1hdDQvaW52ZXJ0IjoxNDgsImdsLW1hdDQvdHJhbnNwb3NlIjoxNTgsImdsLXZlYzMvY3Jvc3MiOjI0LCJnbC12ZWMzL2RvdCI6MjUsImdsLXZlYzMvbGVuZ3RoIjoyNiwiZ2wtdmVjMy9ub3JtYWxpemUiOjI4fV0sMzM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzE1XTtpZigwPT09cilyZXR1cm4hMTtmb3IodmFyIG49MS9yLGk9MDsxNj5pO2krKyl0W2ldPWVbaV0qbjtyZXR1cm4hMH19LHt9XSwzNDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXtpZGVudGl0eTp0KCJnbC1tYXQ0L2lkZW50aXR5IiksdHJhbnNsYXRlOnQoImdsLW1hdDQvdHJhbnNsYXRlIiksbXVsdGlwbHk6dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGNyZWF0ZTp0KCJnbC1tYXQ0L2NyZWF0ZSIpLHNjYWxlOnQoImdsLW1hdDQvc2NhbGUiKSxmcm9tUm90YXRpb25UcmFuc2xhdGlvbjp0KCJnbC1tYXQ0L2Zyb21Sb3RhdGlvblRyYW5zbGF0aW9uIil9LGk9KG4uY3JlYXRlKCksbi5jcmVhdGUoKSk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8sYSxzKXtyZXR1cm4gbi5pZGVudGl0eSh0KSxuLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKHQscyxlKSx0WzNdPWFbMF0sdFs3XT1hWzFdLHRbMTFdPWFbMl0sdFsxNV09YVszXSxuLmlkZW50aXR5KGkpLDAhPT1vWzJdJiYoaVs5XT1vWzJdLG4ubXVsdGlwbHkodCx0LGkpKSwwIT09b1sxXSYmKGlbOV09MCxpWzhdPW9bMV0sbi5tdWx0aXBseSh0LHQsaSkpLDAhPT1vWzBdJiYoaVs4XT0wLGlbNF09b1swXSxuLm11bHRpcGx5KHQsdCxpKSksbi5zY2FsZSh0LHQsciksdH19LHsiZ2wtbWF0NC9jcmVhdGUiOjE0MywiZ2wtbWF0NC9mcm9tUm90YXRpb25UcmFuc2xhdGlvbiI6MTQ2LCJnbC1tYXQ0L2lkZW50aXR5IjoxNDcsImdsLW1hdDQvbXVsdGlwbHkiOjE1MCwiZ2wtbWF0NC9zY2FsZSI6MTU2LCJnbC1tYXQ0L3RyYW5zbGF0ZSI6MTU3fV0sMzU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiZ2wtcXVhdC9zbGVycCIpfSx7ImdsLXF1YXQvc2xlcnAiOjM2fV0sMzY6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyLG4pe3ZhciBpLG8sYSxzLGwsdT1lWzBdLGM9ZVsxXSxoPWVbMl0sZj1lWzNdLHA9clswXSxkPXJbMV0sbT1yWzJdLGc9clszXTtyZXR1cm4gbz11KnArYypkK2gqbStmKmcsMD5vJiYobz0tbyxwPS1wLGQ9LWQsbT0tbSxnPS1nKSwxLW8+MWUtNj8oaT1NYXRoLmFjb3MobyksYT1NYXRoLnNpbihpKSxzPU1hdGguc2luKCgxLW4pKmkpL2EsbD1NYXRoLnNpbihuKmkpL2EpOihzPTEtbixsPW4pLHRbMF09cyp1K2wqcCx0WzFdPXMqYytsKmQsdFsyXT1zKmgrbCptLHRbM109cypmK2wqZyx0fWUuZXhwb3J0cz1ufSx7fV0sMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyxhLHMsbCx1KXt2YXIgYz1lK28rdTtpZihoPjApe3ZhciBoPU1hdGguc3FydChjKzEpO3RbMF09LjUqKGEtbCkvaCx0WzFdPS41KihzLW4pL2gsdFsyXT0uNSooci1vKS9oLHRbM109LjUqaH1lbHNle3ZhciBmPU1hdGgubWF4KGUsbyx1KSxoPU1hdGguc3FydCgyKmYtYysxKTtlPj1mPyh0WzBdPS41KmgsdFsxXT0uNSooaStyKS9oLHRbMl09LjUqKHMrbikvaCx0WzNdPS41KihhLWwpL2gpOm8+PWY/KHRbMF09LjUqKHIraSkvaCx0WzFdPS41KmgsdFsyXT0uNSoobCthKS9oLHRbM109LjUqKHMtbikvaCk6KHRbMF09LjUqKG4rcykvaCx0WzFdPS41KihhK2wpL2gsdFsyXT0uNSpoLHRbM109LjUqKHItaSkvaCl9cmV0dXJuIHR9ZS5leHBvcnRzPW59LHt9XSwzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKStNYXRoLnBvdyhyLDIpKX1mdW5jdGlvbiBpKHQsZSxyLG4pe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codCwyKStNYXRoLnBvdyhlLDIpK01hdGgucG93KHIsMikrTWF0aC5wb3cobiwyKSl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPWVbMF0sbj1lWzFdLG89ZVsyXSxhPWVbM10scz1pKHIsbixvLGEpO3M+MWUtNj8odFswXT1yL3MsdFsxXT1uL3MsdFsyXT1vL3MsdFszXT1hL3MpOih0WzBdPXRbMV09dFsyXT0wLHRbM109MSl9ZnVuY3Rpb24gYSh0LGUscil7dGhpcy5yYWRpdXM9bChbcl0pLHRoaXMuY2VudGVyPWwoZSksdGhpcy5yb3RhdGlvbj1sKHQpLHRoaXMuY29tcHV0ZWRSYWRpdXM9dGhpcy5yYWRpdXMuY3VydmUoMCksdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLmNlbnRlci5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkUm90YXRpb249dGhpcy5yb3RhdGlvbi5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkVXA9Wy4xLDAsMF0sdGhpcy5jb21wdXRlZEV5ZT1bLjEsMCwwXSx0aGlzLmNvbXB1dGVkTWF0cml4PVsuMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sdGhpcy5yZWNhbGNNYXRyaXgoMCl9ZnVuY3Rpb24gcyh0KXt0PXR8fHt9O3ZhciBlPXQuY2VudGVyfHxbMCwwLDBdLHI9dC5yb3RhdGlvbnx8WzAsMCwwLDFdLG49dC5yYWRpdXN8fDE7ZT1bXS5zbGljZS5jYWxsKGUsMCwzKSxyPVtdLnNsaWNlLmNhbGwociwwLDQpLG8ocixyKTt2YXIgaT1uZXcgYShyLGUsTWF0aC5sb2cobikpO3JldHVybiBpLnNldERpc3RhbmNlTGltaXRzKHQuem9vbU1pbix0Lnpvb21NYXgpLCgiZXllImluIHR8fCJ1cCJpbiB0KSYmaS5sb29rQXQoMCx0LmV5ZSx0LmNlbnRlcix0LnVwKSxpfWUuZXhwb3J0cz1zO3ZhciBsPXQoImZpbHRlcmVkLXZlY3RvciIpLHU9dCgiZ2wtbWF0NC9sb29rQXQiKSxjPXQoImdsLW1hdDQvZnJvbVF1YXQiKSxoPXQoImdsLW1hdDQvaW52ZXJ0IiksZj10KCIuL2xpYi9xdWF0RnJvbUZyYW1lIikscD1hLnByb3RvdHlwZTtwLmxhc3RUPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMucmFkaXVzLmxhc3RUKCksdGhpcy5jZW50ZXIubGFzdFQoKSx0aGlzLnJvdGF0aW9uLmxhc3RUKCkpfSxwLnJlY2FsY01hdHJpeD1mdW5jdGlvbih0KXt0aGlzLnJhZGl1cy5jdXJ2ZSh0KSx0aGlzLmNlbnRlci5jdXJ2ZSh0KSx0aGlzLnJvdGF0aW9uLmN1cnZlKHQpO3ZhciBlPXRoaXMuY29tcHV0ZWRSb3RhdGlvbjtvKGUsZSk7dmFyIHI9dGhpcy5jb21wdXRlZE1hdHJpeDtjKHIsZSk7dmFyIG49dGhpcy5jb21wdXRlZENlbnRlcixpPXRoaXMuY29tcHV0ZWRFeWUsYT10aGlzLmNvbXB1dGVkVXAscz1NYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKTtpWzBdPW5bMF0rcypyWzJdLGlbMV09blsxXStzKnJbNl0saVsyXT1uWzJdK3MqclsxMF0sYVswXT1yWzFdLGFbMV09cls1XSxhWzJdPXJbOV07Zm9yKHZhciBsPTA7Mz5sOysrbCl7Zm9yKHZhciB1PTAsaD0wOzM+aDsrK2gpdSs9cltsKzQqaF0qaVtoXTtyWzEyK2xdPS11fX0scC5nZXRNYXRyaXg9ZnVuY3Rpb24odCxlKXt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgcj10aGlzLmNvbXB1dGVkTWF0cml4O2lmKGUpe2Zvcih2YXIgbj0wOzE2Pm47KytuKWVbbl09cltuXTtyZXR1cm4gZX1yZXR1cm4gcn0scC5pZGxlPWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmlkbGUodCksdGhpcy5yYWRpdXMuaWRsZSh0KSx0aGlzLnJvdGF0aW9uLmlkbGUodCl9LHAuZmx1c2g9ZnVuY3Rpb24odCl7dGhpcy5jZW50ZXIuZmx1c2godCksdGhpcy5yYWRpdXMuZmx1c2godCksdGhpcy5yb3RhdGlvbi5mbHVzaCh0KX0scC5wYW49ZnVuY3Rpb24odCxlLHIsaSl7ZT1lfHwwLHI9cnx8MCxpPWl8fDAsdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIG89dGhpcy5jb21wdXRlZE1hdHJpeCxhPW9bMV0scz1vWzVdLGw9b1s5XSx1PW4oYSxzLGwpO2EvPXUscy89dSxsLz11O3ZhciBjPW9bMF0saD1vWzRdLGY9b1s4XSxwPWMqYStoKnMrZipsO2MtPWEqcCxoLT1zKnAsZi09bCpwO3ZhciBkPW4oYyxoLGYpO2MvPWQsaC89ZCxmLz1kO3ZhciBtPW9bMl0sZz1vWzZdLHY9b1sxMF0seT1tKmErZypzK3YqbCxiPW0qYytnKmgrdipmO20tPXkqYStiKmMsZy09eSpzK2IqaCx2LT15KmwrYipmO3ZhciB4PW4obSxnLHYpO20vPXgsZy89eCx2Lz14O3ZhciBfPWMqZSthKnIsdz1oKmUrcypyLE09ZiplK2wqcjt0aGlzLmNlbnRlci5tb3ZlKHQsXyx3LE0pO3ZhciBrPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO2s9TWF0aC5tYXgoMWUtNCxrK2kpLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKGspKX0scC5yb3RhdGU9ZnVuY3Rpb24odCxlLHIsbyl7dGhpcy5yZWNhbGNNYXRyaXgodCksZT1lfHwwLHI9cnx8MDt2YXIgYT10aGlzLmNvbXB1dGVkTWF0cml4LHM9YVswXSxsPWFbNF0sdT1hWzhdLGM9YVsxXSxoPWFbNV0sZj1hWzldLHA9YVsyXSxkPWFbNl0sbT1hWzEwXSxnPWUqcytyKmMsdj1lKmwrcipoLHk9ZSp1K3IqZixiPS0oZCp5LW0qdikseD0tKG0qZy1wKnkpLF89LShwKnYtZCpnKSx3PU1hdGguc3FydChNYXRoLm1heCgwLDEtTWF0aC5wb3coYiwyKS1NYXRoLnBvdyh4LDIpLU1hdGgucG93KF8sMikpKSxNPWkoYix4LF8sdyk7TT4xZS02PyhiLz1NLHgvPU0sXy89TSx3Lz1NKTooYj14PV89MCx3PTEpO3ZhciBrPXRoaXMuY29tcHV0ZWRSb3RhdGlvbixBPWtbMF0sVD1rWzFdLEU9a1syXSxTPWtbM10sTD1BKncrUypiK1QqXy1FKngsej1UKncrUyp4K0UqYi1BKl8sST1FKncrUypfK0EqeC1UKmIsUD1TKnctQSpiLVQqeC1FKl87aWYobyl7Yj1wLHg9ZCxfPW07dmFyIEM9TWF0aC5zaW4obykvbihiLHgsXyk7Yio9Qyx4Kj1DLF8qPUMsdz1NYXRoLmNvcyhlKSxMPUwqdytQKmIreipfLUkqeCx6PXoqdytQKngrSSpiLUwqXyxJPUkqdytQKl8rTCp4LXoqYixQPVAqdy1MKmIteip4LUkqX312YXIgUj1pKEwseixJLFApO1I+MWUtNj8oTC89Uix6Lz1SLEkvPVIsUC89Uik6KEw9ej1JPTAsUD0xKSx0aGlzLnJvdGF0aW9uLnNldCh0LEwseixJLFApfSxwLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxyPXJ8fHRoaXMuY29tcHV0ZWRDZW50ZXIsZT1lfHx0aGlzLmNvbXB1dGVkRXllLG49bnx8dGhpcy5jb21wdXRlZFVwO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXg7dShpLGUscixuKTt2YXIgYT10aGlzLmNvbXB1dGVkUm90YXRpb247ZihhLGlbMF0saVsxXSxpWzJdLGlbNF0saVs1XSxpWzZdLGlbOF0saVs5XSxpWzEwXSksbyhhLGEpLHRoaXMucm90YXRpb24uc2V0KHQsYVswXSxhWzFdLGFbMl0sYVszXSk7Zm9yKHZhciBzPTAsbD0wOzM+bDsrK2wpcys9TWF0aC5wb3cocltsXS1lW2xdLDIpO3RoaXMucmFkaXVzLnNldCh0LC41Kk1hdGgubG9nKE1hdGgubWF4KHMsMWUtNikpKSx0aGlzLmNlbnRlci5zZXQodCxyWzBdLHJbMV0sclsyXSl9LHAudHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuY2VudGVyLm1vdmUodCxlfHwwLHJ8fDAsbnx8MCl9LHAuc2V0TWF0cml4PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jb21wdXRlZFJvdGF0aW9uO2YocixlWzBdLGVbMV0sZVsyXSxlWzRdLGVbNV0sZVs2XSxlWzhdLGVbOV0sZVsxMF0pLG8ocixyKSx0aGlzLnJvdGF0aW9uLnNldCh0LHJbMF0sclsxXSxyWzJdLHJbM10pO3ZhciBuPXRoaXMuY29tcHV0ZWRNYXRyaXg7aChuLGUpO3ZhciBpPW5bMTVdO2lmKE1hdGguYWJzKGkpPjFlLTYpe3ZhciBhPW5bMTJdL2kscz1uWzEzXS9pLGw9blsxNF0vaTt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgdT1NYXRoLmV4cCh0aGlzLmNvbXB1dGVkUmFkaXVzWzBdKTt0aGlzLmNlbnRlci5zZXQodCxhLW5bMl0qdSxzLW5bNl0qdSxsLW5bMTBdKnUpLHRoaXMucmFkaXVzLmlkbGUodCl9ZWxzZSB0aGlzLmNlbnRlci5pZGxlKHQpLHRoaXMucmFkaXVzLmlkbGUodCl9LHAuc2V0RGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtlPjAmJnRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKGUpKX0scC5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe3Q9dD4wP01hdGgubG9nKHQpOi0oMS8wKSwKZT1lPjA/TWF0aC5sb2coZSk6MS8wLGU9TWF0aC5tYXgoZSx0KSx0aGlzLnJhZGl1cy5ib3VuZHNbMF1bMF09dCx0aGlzLnJhZGl1cy5ib3VuZHNbMV1bMF09ZX0scC5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnJhZGl1cy5ib3VuZHM7cmV0dXJuIHQ/KHRbMF09TWF0aC5leHAoZVswXVswXSksdFsxXT1NYXRoLmV4cChlWzFdWzBdKSx0KTpbTWF0aC5leHAoZVswXVswXSksTWF0aC5leHAoZVsxXVswXSldfSxwLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlY2FsY01hdHJpeCh0aGlzLmxhc3RUKCkpLHtjZW50ZXI6dGhpcy5jb21wdXRlZENlbnRlci5zbGljZSgpLHJvdGF0aW9uOnRoaXMuY29tcHV0ZWRSb3RhdGlvbi5zbGljZSgpLGRpc3RhbmNlOk1hdGgubG9nKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pLHpvb21NaW46dGhpcy5yYWRpdXMuYm91bmRzWzBdWzBdLHpvb21NYXg6dGhpcy5yYWRpdXMuYm91bmRzWzFdWzBdfX0scC5mcm9tSlNPTj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10LmNlbnRlcjtyJiZ0aGlzLmNlbnRlci5zZXQoZSxyWzBdLHJbMV0sclsyXSk7dmFyIG49dC5yb3RhdGlvbjtuJiZ0aGlzLnJvdGF0aW9uLnNldChlLG5bMF0sblsxXSxuWzJdLG5bM10pO3ZhciBpPXQuZGlzdGFuY2U7aSYmaT4wJiZ0aGlzLnJhZGl1cy5zZXQoZSxNYXRoLmxvZyhpKSksdGhpcy5zZXREaXN0YW5jZUxpbWl0cyh0Lnpvb21NaW4sdC56b29tTWF4KX19LHsiLi9saWIvcXVhdEZyb21GcmFtZSI6MzcsImZpbHRlcmVkLXZlY3RvciI6MjEsImdsLW1hdDQvZnJvbVF1YXQiOjE0NSwiZ2wtbWF0NC9pbnZlcnQiOjE0OCwiZ2wtbWF0NC9sb29rQXQiOjE0OX1dLDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codCwyKStNYXRoLnBvdyhlLDIpK01hdGgucG93KHIsMikpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIE1hdGgubWluKDEsTWF0aC5tYXgoLTEsdCkpfWZ1bmN0aW9uIG8odCl7dmFyIGU9TWF0aC5hYnModFswXSkscj1NYXRoLmFicyh0WzFdKSxuPU1hdGguYWJzKHRbMl0pLGk9WzAsMCwwXTtlPk1hdGgubWF4KHIsbik/aVsyXT0xOnI+TWF0aC5tYXgoZSxuKT9pWzBdPTE6aVsxXT0xO2Zvcih2YXIgbz0wLGE9MCxzPTA7Mz5zOysrcylvKz10W3NdKnRbc10sYSs9aVtzXSp0W3NdO2Zvcih2YXIgcz0wOzM+czsrK3MpaVtzXS09YS9vKnRbc107cmV0dXJuIGYoaSxpKSxpfWZ1bmN0aW9uIGEodCxlLHIsbixpLG8sYSxzKXt0aGlzLmNlbnRlcj1sKHIpLHRoaXMudXA9bChuKSx0aGlzLnJpZ2h0PWwoaSksdGhpcy5yYWRpdXM9bChbb10pLHRoaXMuYW5nbGU9bChbYSxzXSksdGhpcy5hbmdsZS5ib3VuZHM9W1stKDEvMCksLU1hdGguUEkvMl0sWzEvMCxNYXRoLlBJLzJdXSx0aGlzLnNldERpc3RhbmNlTGltaXRzKHQsZSksdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLmNlbnRlci5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkVXA9dGhpcy51cC5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkUmlnaHQ9dGhpcy5yaWdodC5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMucmFkaXVzLmN1cnZlKDApLHRoaXMuY29tcHV0ZWRBbmdsZT10aGlzLmFuZ2xlLmN1cnZlKDApLHRoaXMuY29tcHV0ZWRUb3dhcmQ9WzAsMCwwXSx0aGlzLmNvbXB1dGVkRXllPVswLDAsMF0sdGhpcy5jb21wdXRlZE1hdHJpeD1uZXcgQXJyYXkoMTYpO2Zvcih2YXIgdT0wOzE2PnU7Kyt1KXRoaXMuY29tcHV0ZWRNYXRyaXhbdV09LjU7dGhpcy5yZWNhbGNNYXRyaXgoMCl9ZnVuY3Rpb24gcyh0KXt0PXR8fHt9O3ZhciBlPXQuY2VudGVyfHxbMCwwLDBdLHI9dC51cHx8WzAsMSwwXSxpPXQucmlnaHR8fG8ocikscz10LnJhZGl1c3x8MSxsPXQudGhldGF8fDAsdT10LnBoaXx8MDtpZihlPVtdLnNsaWNlLmNhbGwoZSwwLDMpLHI9W10uc2xpY2UuY2FsbChyLDAsMyksZihyLHIpLGk9W10uc2xpY2UuY2FsbChpLDAsMyksZihpLGkpLCJleWUiaW4gdCl7dmFyIGM9dC5leWUsZD1bY1swXS1lWzBdLGNbMV0tZVsxXSxjWzJdLWVbMl1dO2goaSxkLHIpLG4oaVswXSxpWzFdLGlbMl0pPDFlLTY/aT1vKHIpOmYoaSxpKSxzPW4oZFswXSxkWzFdLGRbMl0pO3ZhciBtPXAocixkKS9zLGc9cChpLGQpL3M7dT1NYXRoLmFjb3MobSksbD1NYXRoLmFjb3MoZyl9cmV0dXJuIHM9TWF0aC5sb2cocyksbmV3IGEodC56b29tTWluLHQuem9vbU1heCxlLHIsaSxzLGwsdSl9ZS5leHBvcnRzPXM7dmFyIGw9dCgiZmlsdGVyZWQtdmVjdG9yIiksdT10KCJnbC1tYXQ0L2ludmVydCIpLGM9dCgiZ2wtbWF0NC9yb3RhdGUiKSxoPXQoImdsLXZlYzMvY3Jvc3MiKSxmPXQoImdsLXZlYzMvbm9ybWFsaXplIikscD10KCJnbC12ZWMzL2RvdCIpLGQ9YS5wcm90b3R5cGU7ZC5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe3Q9dD4wP01hdGgubG9nKHQpOi0oMS8wKSxlPWU+MD9NYXRoLmxvZyhlKToxLzAsZT1NYXRoLm1heChlLHQpLHRoaXMucmFkaXVzLmJvdW5kc1swXVswXT10LHRoaXMucmFkaXVzLmJvdW5kc1sxXVswXT1lfSxkLmdldERpc3RhbmNlTGltaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmFkaXVzLmJvdW5kc1swXTtyZXR1cm4gdD8odFswXT1NYXRoLmV4cChlWzBdWzBdKSx0WzFdPU1hdGguZXhwKGVbMV1bMF0pLHQpOltNYXRoLmV4cChlWzBdWzBdKSxNYXRoLmV4cChlWzFdWzBdKV19LGQucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmN1cnZlKHQpLHRoaXMudXAuY3VydmUodCksdGhpcy5yaWdodC5jdXJ2ZSh0KSx0aGlzLnJhZGl1cy5jdXJ2ZSh0KSx0aGlzLmFuZ2xlLmN1cnZlKHQpO2Zvcih2YXIgZT10aGlzLmNvbXB1dGVkVXAscj10aGlzLmNvbXB1dGVkUmlnaHQsaT0wLG89MCxhPTA7Mz5hOysrYSlvKz1lW2FdKnJbYV0saSs9ZVthXSplW2FdO2Zvcih2YXIgcz1NYXRoLnNxcnQoaSksbD0wLGE9MDszPmE7KythKXJbYV0tPWVbYV0qby9pLGwrPXJbYV0qclthXSxlW2FdLz1zO2Zvcih2YXIgdT1NYXRoLnNxcnQobCksYT0wOzM+YTsrK2EpclthXS89dTt2YXIgYz10aGlzLmNvbXB1dGVkVG93YXJkO2goYyxlLHIpLGYoYyxjKTtmb3IodmFyIHA9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSksZD10aGlzLmNvbXB1dGVkQW5nbGVbMF0sbT10aGlzLmNvbXB1dGVkQW5nbGVbMV0sZz1NYXRoLmNvcyhkKSx2PU1hdGguc2luKGQpLHk9TWF0aC5jb3MobSksYj1NYXRoLnNpbihtKSx4PXRoaXMuY29tcHV0ZWRDZW50ZXIsXz1nKnksdz12KnksTT1iLGs9LWcqYixBPS12KmIsVD15LEU9dGhpcy5jb21wdXRlZEV5ZSxTPXRoaXMuY29tcHV0ZWRNYXRyaXgsYT0wOzM+YTsrK2Epe3ZhciBMPV8qclthXSt3KmNbYV0rTSplW2FdO1NbNCphKzFdPWsqclthXStBKmNbYV0rVCplW2FdLFNbNCphKzJdPUwsU1s0KmErM109MH12YXIgej1TWzFdLEk9U1s1XSxQPVNbOV0sQz1TWzJdLFI9U1s2XSxqPVNbMTBdLEQ9SSpqLVAqUixPPVAqQy16KmosRj16KlItSSpDLE49bihELE8sRik7RC89TixPLz1OLEYvPU4sU1swXT1ELFNbNF09TyxTWzhdPUY7Zm9yKHZhciBhPTA7Mz5hOysrYSlFW2FdPXhbYV0rU1syKzQqYV0qcDtmb3IodmFyIGE9MDszPmE7KythKXtmb3IodmFyIGw9MCxCPTA7Mz5COysrQilsKz1TW2ErNCpCXSpFW0JdO1NbMTIrYV09LWx9U1sxNV09MX0sZC5nZXRNYXRyaXg9ZnVuY3Rpb24odCxlKXt0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgcj10aGlzLmNvbXB1dGVkTWF0cml4O2lmKGUpe2Zvcih2YXIgbj0wOzE2Pm47KytuKWVbbl09cltuXTtyZXR1cm4gZX1yZXR1cm4gcn07dmFyIG09WzAsMCwwXTtkLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXtpZih0aGlzLmFuZ2xlLm1vdmUodCxlLHIpLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXg7bVswXT1pWzJdLG1bMV09aVs2XSxtWzJdPWlbMTBdO2Zvcih2YXIgbz10aGlzLmNvbXB1dGVkVXAsYT10aGlzLmNvbXB1dGVkUmlnaHQscz10aGlzLmNvbXB1dGVkVG93YXJkLGw9MDszPmw7KytsKWlbNCpsXT1vW2xdLGlbNCpsKzFdPWFbbF0saVs0KmwrMl09c1tsXTtjKGksaSxuLG0pO2Zvcih2YXIgbD0wOzM+bDsrK2wpb1tsXT1pWzQqbF0sYVtsXT1pWzQqbCsxXTt0aGlzLnVwLnNldCh0LG9bMF0sb1sxXSxvWzJdKSx0aGlzLnJpZ2h0LnNldCh0LGFbMF0sYVsxXSxhWzJdKX19LGQucGFuPWZ1bmN0aW9uKHQsZSxyLGkpe2U9ZXx8MCxyPXJ8fDAsaT1pfHwwLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBvPXRoaXMuY29tcHV0ZWRNYXRyaXgsYT0oTWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSksb1sxXSkscz1vWzVdLGw9b1s5XSx1PW4oYSxzLGwpO2EvPXUscy89dSxsLz11O3ZhciBjPW9bMF0saD1vWzRdLGY9b1s4XSxwPWMqYStoKnMrZipsO2MtPWEqcCxoLT1zKnAsZi09bCpwO3ZhciBkPW4oYyxoLGYpO2MvPWQsaC89ZCxmLz1kO3ZhciBtPWMqZSthKnIsZz1oKmUrcypyLHY9ZiplK2wqcjt0aGlzLmNlbnRlci5tb3ZlKHQsbSxnLHYpO3ZhciB5PU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3k9TWF0aC5tYXgoMWUtNCx5K2kpLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKHkpKX0sZC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5jZW50ZXIubW92ZSh0LGV8fDAscnx8MCxufHwwKX0sZC5zZXRNYXRyaXg9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIGE9MTsibnVtYmVyIj09dHlwZW9mIHImJihhPTB8ciksKDA+YXx8YT4zKSYmKGE9MSk7dmFyIHM9KGErMiklMztlfHwodGhpcy5yZWNhbGNNYXRyaXgodCksZT10aGlzLmNvbXB1dGVkTWF0cml4KTt2YXIgbD1lW2FdLGM9ZVthKzRdLGg9ZVthKzhdO2lmKG8pe3ZhciBmPU1hdGguYWJzKGwpLHA9TWF0aC5hYnMoYyksZD1NYXRoLmFicyhoKSxtPU1hdGgubWF4KGYscCxkKTtmPT09bT8obD0wPmw/LTE6MSxjPWg9MCk6ZD09PW0/KGg9MD5oPy0xOjEsbD1jPTApOihjPTA+Yz8tMToxLGw9aD0wKX1lbHNle3ZhciBnPW4obCxjLGgpO2wvPWcsYy89ZyxoLz1nfXZhciB2PWVbc10seT1lW3MrNF0sYj1lW3MrOF0seD12KmwreSpjK2IqaDt2LT1sKngseS09Yyp4LGItPWgqeDt2YXIgXz1uKHYseSxiKTt2Lz1fLHkvPV8sYi89Xzt2YXIgdz1jKmItaCp5LE09aCp2LWwqYixrPWwqeS1jKnYsQT1uKHcsTSxrKTt3Lz1BLE0vPUEsay89QSx0aGlzLmNlbnRlci5qdW1wKHQsRyxILFgpLHRoaXMucmFkaXVzLmlkbGUodCksdGhpcy51cC5qdW1wKHQsbCxjLGgpLHRoaXMucmlnaHQuanVtcCh0LHYseSxiKTt2YXIgVCxFO2lmKDI9PT1hKXt2YXIgUz1lWzFdLEw9ZVs1XSx6PWVbOV0sST1TKnYrTCp5K3oqYixQPVMqdytMKk0reiprO1Q9MD5EPy1NYXRoLlBJLzI6TWF0aC5QSS8yLEU9TWF0aC5hdGFuMihQLEkpfWVsc2V7dmFyIEM9ZVsyXSxSPWVbNl0saj1lWzEwXSxEPUMqbCtSKmMraipoLE89Qyp2K1IqeStqKmIsRj1DKncrUipNK2oqaztUPU1hdGguYXNpbihpKEQpKSxFPU1hdGguYXRhbjIoRixPKX10aGlzLmFuZ2xlLmp1bXAodCxFLFQpLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBOPWVbMl0sQj1lWzZdLFU9ZVsxMF0sVj10aGlzLmNvbXB1dGVkTWF0cml4O3UoVixlKTt2YXIgcT1WWzE1XSxHPVZbMTJdL3EsSD1WWzEzXS9xLFg9VlsxNF0vcSxZPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3RoaXMuY2VudGVyLmp1bXAodCxHLU4qWSxILUIqWSxYLVUqWSl9LGQubGFzdFQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5jZW50ZXIubGFzdFQoKSx0aGlzLnVwLmxhc3RUKCksdGhpcy5yaWdodC5sYXN0VCgpLHRoaXMucmFkaXVzLmxhc3RUKCksdGhpcy5hbmdsZS5sYXN0VCgpKX0sZC5pZGxlPWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmlkbGUodCksdGhpcy51cC5pZGxlKHQpLHRoaXMucmlnaHQuaWRsZSh0KSx0aGlzLnJhZGl1cy5pZGxlKHQpLHRoaXMuYW5nbGUuaWRsZSh0KX0sZC5mbHVzaD1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5mbHVzaCh0KSx0aGlzLnVwLmZsdXNoKHQpLHRoaXMucmlnaHQuZmx1c2godCksdGhpcy5yYWRpdXMuZmx1c2godCksdGhpcy5hbmdsZS5mbHVzaCh0KX0sZC5zZXREaXN0YW5jZT1mdW5jdGlvbih0LGUpe2U+MCYmdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2coZSkpfSxkLmxvb2tBdD1mdW5jdGlvbih0LGUscixvKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxlPWV8fHRoaXMuY29tcHV0ZWRFeWUscj1yfHx0aGlzLmNvbXB1dGVkQ2VudGVyLG89b3x8dGhpcy5jb21wdXRlZFVwO3ZhciBhPW9bMF0scz1vWzFdLGw9b1syXSx1PW4oYSxzLGwpO2lmKCEoMWUtNj51KSl7YS89dSxzLz11LGwvPXU7dmFyIGM9ZVswXS1yWzBdLGg9ZVsxXS1yWzFdLGY9ZVsyXS1yWzJdLHA9bihjLGgsZik7aWYoISgxZS02PnApKXtjLz1wLGgvPXAsZi89cDt2YXIgZD10aGlzLmNvbXB1dGVkUmlnaHQsbT1kWzBdLGc9ZFsxXSx2PWRbMl0seT1hKm0rcypnK2wqdjttLT15KmEsZy09eSpzLHYtPXkqbDt2YXIgYj1uKG0sZyx2KTtpZighKC4wMT5iJiYobT1zKmYtbCpoLGc9bCpjLWEqZix2PWEqaC1zKmMsYj1uKG0sZyx2KSwxZS02PmIpKSl7bS89YixnLz1iLHYvPWIsdGhpcy51cC5zZXQodCxhLHMsbCksdGhpcy5yaWdodC5zZXQodCxtLGcsdiksdGhpcy5jZW50ZXIuc2V0KHQsclswXSxyWzFdLHJbMl0pLHRoaXMucmFkaXVzLnNldCh0LE1hdGgubG9nKHApKTt2YXIgeD1zKnYtbCpnLF89bCptLWEqdix3PWEqZy1zKm0sTT1uKHgsXyx3KTt4Lz1NLF8vPU0sdy89TTt2YXIgaz1hKmMrcypoK2wqZixBPW0qYytnKmgrdipmLFQ9eCpjK18qaCt3KmYsRT1NYXRoLmFzaW4oaShrKSksUz1NYXRoLmF0YW4yKFQsQSksTD10aGlzLmFuZ2xlLl9zdGF0ZSx6PUxbTC5sZW5ndGgtMV0sST1MW0wubGVuZ3RoLTJdO3olPTIqTWF0aC5QSTt2YXIgUD1NYXRoLmFicyh6KzIqTWF0aC5QSS1TKSxDPU1hdGguYWJzKHotUyksUj1NYXRoLmFicyh6LTIqTWF0aC5QSS1TKTtDPlAmJih6Kz0yKk1hdGguUEkpLEM+UiYmKHotPTIqTWF0aC5QSSksdGhpcy5hbmdsZS5qdW1wKHRoaXMuYW5nbGUubGFzdFQoKSx6LEkpLHRoaXMuYW5nbGUuc2V0KHQsUyxFKX19fX19LHsiZmlsdGVyZWQtdmVjdG9yIjoyMSwiZ2wtbWF0NC9pbnZlcnQiOjE0OCwiZ2wtbWF0NC9yb3RhdGUiOjE1MiwiZ2wtdmVjMy9jcm9zcyI6MjQsImdsLXZlYzMvZG90IjoyNSwiZ2wtdmVjMy9ub3JtYWxpemUiOjI4fV0sNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMuX2NvbnRyb2xsZXJOYW1lcz1PYmplY3Qua2V5cyh0KSx0aGlzLl9jb250cm9sbGVyTGlzdD10aGlzLl9jb250cm9sbGVyTmFtZXMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSksdGhpcy5fbW9kZT1lLHRoaXMuX2FjdGl2ZT10W2VdLHRoaXMuX2FjdGl2ZXx8KHRoaXMuX21vZGU9InR1cm50YWJsZSIsdGhpcy5fYWN0aXZlPXQudHVybnRhYmxlKSx0aGlzLm1vZGVzPXRoaXMuX2NvbnRyb2xsZXJOYW1lcyx0aGlzLmNvbXB1dGVkTWF0cml4PXRoaXMuX2FjdGl2ZS5jb21wdXRlZE1hdHJpeCx0aGlzLmNvbXB1dGVkRXllPXRoaXMuX2FjdGl2ZS5jb21wdXRlZEV5ZSx0aGlzLmNvbXB1dGVkVXA9dGhpcy5fYWN0aXZlLmNvbXB1dGVkVXAsdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLl9hY3RpdmUuY29tcHV0ZWRDZW50ZXIsdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLl9hY3RpdmUuY29tcHV0ZWRSYWRpdXN9ZnVuY3Rpb24gaSh0KXt0PXR8fHt9O3ZhciBlPXQuZXllfHxbMCwwLDFdLHI9dC5jZW50ZXJ8fFswLDAsMF0saT10LnVwfHxbMCwxLDBdLGw9dC5kaXN0YW5jZUxpbWl0c3x8WzAsMS8wXSx1PXQubW9kZXx8InR1cm50YWJsZSIsYz1vKCksaD1hKCksZj1zKCk7cmV0dXJuIGMuc2V0RGlzdGFuY2VMaW1pdHMobFswXSxsWzFdKSxjLmxvb2tBdCgwLGUscixpKSxoLnNldERpc3RhbmNlTGltaXRzKGxbMF0sbFsxXSksaC5sb29rQXQoMCxlLHIsaSksZi5zZXREaXN0YW5jZUxpbWl0cyhsWzBdLGxbMV0pLGYubG9va0F0KDAsZSxyLGkpLG5ldyBuKHt0dXJudGFibGU6YyxvcmJpdDpoLG1hdHJpeDpmfSx1KX1lLmV4cG9ydHM9aTt2YXIgbz10KCJ0dXJudGFibGUtY2FtZXJhLWNvbnRyb2xsZXIiKSxhPXQoIm9yYml0LWNhbWVyYS1jb250cm9sbGVyIikscz10KCJtYXRyaXgtY2FtZXJhLWNvbnRyb2xsZXIiKSxsPW4ucHJvdG90eXBlLHU9W1siZmx1c2giLDFdLFsiaWRsZSIsMV0sWyJsb29rQXQiLDRdLFsicm90YXRlIiw0XSxbInBhbiIsNF0sWyJ0cmFuc2xhdGUiLDRdLFsic2V0TWF0cml4IiwyXSxbInNldERpc3RhbmNlTGltaXRzIiwyXSxbInNldERpc3RhbmNlIiwyXV07dS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdLHI9W10sbj0wO248dFsxXTsrK24pci5wdXNoKCJhIituKTt2YXIgaT0idmFyIGNjPXRoaXMuX2NvbnRyb2xsZXJMaXN0O2Zvcih2YXIgaT0wO2k8Y2MubGVuZ3RoOysraSl7Y2NbaV0uIit0WzBdKyIoIityLmpvaW4oKSsiKX0iO2xbZV09RnVuY3Rpb24uYXBwbHkobnVsbCxyLmNvbmNhdChpKSl9KSxsLnJlY2FsY01hdHJpeD1mdW5jdGlvbih0KXt0aGlzLl9hY3RpdmUucmVjYWxjTWF0cml4KHQpfSxsLmdldERpc3RhbmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hY3RpdmUuZ2V0RGlzdGFuY2UodCl9LGwuZ2V0RGlzdGFuY2VMaW1pdHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5nZXREaXN0YW5jZUxpbWl0cyh0KX0sbC5sYXN0VD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmUubGFzdFQoKX0sbC5zZXRNb2RlPWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLl9tb2RlKXt2YXIgZT10aGlzLl9jb250cm9sbGVyTmFtZXMuaW5kZXhPZih0KTtpZighKDA+ZSkpe3ZhciByPXRoaXMuX2FjdGl2ZSxuPXRoaXMuX2NvbnRyb2xsZXJMaXN0W2VdLGk9TWF0aC5tYXgoci5sYXN0VCgpLG4ubGFzdFQoKSk7ci5yZWNhbGNNYXRyaXgoaSksbi5zZXRNYXRyaXgoaSxyLmNvbXB1dGVkTWF0cml4KSx0aGlzLl9hY3RpdmU9bix0aGlzLl9tb2RlPXQsdGhpcy5jb21wdXRlZE1hdHJpeD10aGlzLl9hY3RpdmUuY29tcHV0ZWRNYXRyaXgsdGhpcy5jb21wdXRlZEV5ZT10aGlzLl9hY3RpdmUuY29tcHV0ZWRFeWUsdGhpcy5jb21wdXRlZFVwPXRoaXMuX2FjdGl2ZS5jb21wdXRlZFVwLHRoaXMuY29tcHV0ZWRDZW50ZXI9dGhpcy5fYWN0aXZlLmNvbXB1dGVkQ2VudGVyLHRoaXMuY29tcHV0ZWRSYWRpdXM9dGhpcy5fYWN0aXZlLmNvbXB1dGVkUmFkaXVzfX19LGwuZ2V0TW9kZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb2RlfX0seyJtYXRyaXgtY2FtZXJhLWNvbnRyb2xsZXIiOjI5LCJvcmJpdC1jYW1lcmEtY29udHJvbGxlciI6MzgsInR1cm50YWJsZS1jYW1lcmEtY29udHJvbGxlciI6Mzl9XSw0MTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gbyhpKHQsZSkpfWUuZXhwb3J0cz1uO3ZhciBpPXQoImFscGhhLWNvbXBsZXgiKSxvPXQoInNpbXBsaWNpYWwtY29tcGxleC1ib3VuZGFyeSIpfSx7ImFscGhhLWNvbXBsZXgiOjQyLCJzaW1wbGljaWFsLWNvbXBsZXgtYm91bmRhcnkiOjQ1fV0sNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBpKGUpLmZpbHRlcihmdW5jdGlvbihyKXtmb3IodmFyIG49bmV3IEFycmF5KHIubGVuZ3RoKSxpPTA7aTxyLmxlbmd0aDsrK2kpbltpXT1lW3JbaV1dO3JldHVybiBvKG4pKnQ8MX0pfWUuZXhwb3J0cz1uO3ZhciBpPXQoImRlbGF1bmF5LXRyaWFuZ3VsYXRlIiksbz10KCJjaXJjdW1yYWRpdXMiKX0se2NpcmN1bXJhZGl1czo0MywiZGVsYXVuYXktdHJpYW5ndWxhdGUiOjEyNX1dLDQzOltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9aSh0KSxyPTAsbj0wO248dC5sZW5ndGg7KytuKWZvcih2YXIgbz10W25dLGE9MDthPGUubGVuZ3RoOysrYSlyKz1NYXRoLnBvdyhvW2FdLWVbYV0sMik7cmV0dXJuIE1hdGguc3FydChyL3QubGVuZ3RoKX1lLmV4cG9ydHM9bjt2YXIgaT10KCJjaXJjdW1jZW50ZXIiKX0se2NpcmN1bWNlbnRlcjo0NH1dLDQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLGk9MDtuPmk7KytpKXIrPXRbaV0qZVtpXTtyZXR1cm4gcn1mdW5jdGlvbiBpKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDA9PT1lKXJldHVybltdO3ZhciByPSh0WzBdLmxlbmd0aCxhKFt0Lmxlbmd0aCsxLHQubGVuZ3RoKzFdLDEpKSxpPWEoW3QubGVuZ3RoKzFdLDEpO3JbZV1bZV09MDtmb3IodmFyIG89MDtlPm87KytvKXtmb3IodmFyIGw9MDtvPj1sOysrbClyW2xdW29dPXJbb11bbF09MipuKHRbb10sdFtsXSk7aVtvXT1uKHRbb10sdFtvXSl9Zm9yKHZhciB1PXMocixpKSxjPTAsaD11W2UrMV0sbz0wO288aC5sZW5ndGg7KytvKWMrPWhbb107Zm9yKHZhciBmPW5ldyBBcnJheShlKSxvPTA7ZT5vOysrbyl7Zm9yKHZhciBoPXVbb10scD0wLGw9MDtsPGgubGVuZ3RoOysrbClwKz1oW2xdO2Zbb109cC9jfXJldHVybiBmfWZ1bmN0aW9uIG8odCl7aWYoMD09PXQubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgZT10WzBdLmxlbmd0aCxyPWEoW2VdKSxuPWkodCksbz0wO288dC5sZW5ndGg7KytvKWZvcih2YXIgcz0wO2U+czsrK3MpcltzXSs9dFtvXVtzXSpuW29dO3JldHVybiByfXZhciBhPXQoImR1cCIpLHM9dCgicm9idXN0LWxpbmVhci1zb2x2ZSIpO28uYmFyeWNlbmV0cmljPWksZS5leHBvcnRzPW99LHtkdXA6MTI2LCJyb2J1c3QtbGluZWFyLXNvbHZlIjo0NTl9XSw0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiBvKGkodCkpfWUuZXhwb3J0cz1uO3ZhciBpPXQoImJvdW5kYXJ5LWNlbGxzIiksbz10KCJyZWR1Y2Utc2ltcGxpY2lhbC1jb21wbGV4Iil9LHsiYm91bmRhcnktY2VsbHMiOjQ2LCJyZWR1Y2Utc2ltcGxpY2lhbC1jb21wbGV4Ijo0OX1dLDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9MCxuPTA7ZT5uOysrbilyKz10W25dLmxlbmd0aDtmb3IodmFyIGk9bmV3IEFycmF5KHIpLG89MCxuPTA7ZT5uOysrbilmb3IodmFyIGE9dFtuXSxzPWEubGVuZ3RoLGw9MDtzPmw7KytsKWZvcih2YXIgdT1pW28rK109bmV3IEFycmF5KHMtMSksYz0xO3M+YzsrK2MpdVtjLTFdPWFbKGwrYyklc107cmV0dXJuIGl9ZS5leHBvcnRzPW59LHt9XSw0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0xLHI9MTtyPHQubGVuZ3RoOysrcilmb3IodmFyIG49MDtyPm47KytuKWlmKHRbcl08dFtuXSllPS1lO2Vsc2UgaWYodFtuXT09PXRbcl0pcmV0dXJuIDA7cmV0dXJuIGV9ZS5leHBvcnRzPW59LHt9XSw0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGkodCxlKXx8byh0KS1vKGUpfXZhciBpPXQoImNvbXBhcmUtY2VsbCIpLG89dCgiY2VsbC1vcmllbnRhdGlvbiIpO2UuZXhwb3J0cz1ufSx7ImNlbGwtb3JpZW50YXRpb24iOjQ3LCJjb21wYXJlLWNlbGwiOjExMn1dLDQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dC5zb3J0KG8pO2Zvcih2YXIgZT10Lmxlbmd0aCxyPTAsbj0wO2U+bjsrK24pe3ZhciBzPXRbbl0sbD1hKHMpO2lmKDAhPT1sKXtpZihyPjApe3ZhciB1PXRbci0xXTtpZigwPT09aShzLHUpJiZhKHUpIT09bCl7ci09MTtjb250aW51ZX19dFtyKytdPXN9fXJldHVybiB0Lmxlbmd0aD1yLHR9dmFyIGk9dCgiY29tcGFyZS1jZWxsIiksbz10KCJjb21wYXJlLW9yaWVudGVkLWNlbGwiKSxhPXQoImNlbGwtb3JpZW50YXRpb24iKTtlLmV4cG9ydHM9bn0seyJjZWxsLW9yaWVudGF0aW9uIjo0NywiY29tcGFyZS1jZWxsIjoxMTIsImNvbXBhcmUtb3JpZW50ZWQtY2VsbCI6NDh9XSw1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIUFycmF5LmlzQXJyYXkodCkmJm51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR9ZnVuY3Rpb24gZSh0LGUscil7Zm9yKHZhciBuPShlLXQpL01hdGgubWF4KHItMSwxKSxpPVtdLG89MDtyPm87bysrKWkucHVzaCh0K28qbik7cmV0dXJuIGl9ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cyksZT10Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9KSxyPU1hdGgubWluLmFwcGx5KG51bGwsZSksbj1bXSxpPTA7cj5pO2krKyl7bltpXT1bXTtmb3IodmFyIG89MDtvPHQubGVuZ3RoOysrbyluW2ldW29dPXRbb11baV19cmV0dXJuIG59ZnVuY3Rpb24gbih0LGUscil7Zm9yKHZhciBuPU1hdGgubWluLmFwcGx5KG51bGwsW3QubGVuZ3RoLGUubGVuZ3RoLHIubGVuZ3RoXSksaT1bXSxvPTA7bj5vO28rKylpLnB1c2goW3Rbb10sZVtvXSxyW29dXSk7cmV0dXJuIGl9ZnVuY3Rpb24gaSh0KXtmdW5jdGlvbiBlKHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKUFycmF5LmlzQXJyYXkodFtuXSk/ZSh0W25dLHIpOnIrPXRbbl19dmFyIHI9MDtyZXR1cm4gZSh0LHIpLHJ9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKXtlW3JdPVtdO2Zvcih2YXIgbj0wO248dFtyXS5sZW5ndGg7KytuKWVbcl1bbl09dFtyXVtuXX1yZXR1cm4gZX1mdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZVtyXT10W3JdO3JldHVybiBlfWZ1bmN0aW9uIHModCxlKXtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj10Lmxlbmd0aDtyLS07KWlmKHRbcl0hPT1lW3JdKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGwodCxlKXt2YXIgcixuO2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gdDtpZihyPVtdLCIjIj09PXRbMF0/KHQ9dC5zdWJzdHIoMSksMz09PXQubGVuZ3RoJiYodCs9dCksbj1wYXJzZUludCh0LDE2KSxyWzBdPW4+PjE2JjI1NSxyWzFdPW4+PjgmMjU1LHJbMl09MjU1Jm4pOmgudGVzdCh0KSYmKG49dC5tYXRjaChmKSxyWzBdPXBhcnNlSW50KG5bMV0pLHJbMV09cGFyc2VJbnQoblsyXSksclsyXT1wYXJzZUludChuWzNdKSksIWUpZm9yKHZhciBpPTA7Mz5pOysraSlyW2ldPXJbaV0vMjU1O3JldHVybiByfWZ1bmN0aW9uIHUodCxlKXt2YXIgcixuO2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gdDtpZihyPVtdLCIjIj09PXRbMF0/KHQ9dC5zdWJzdHIoMSksMz09PXQubGVuZ3RoJiYodCs9dCksbj1wYXJzZUludCh0LDE2KSxyWzBdPW4+PjE2JjI1NSxyWzFdPW4+PjgmMjU1LHJbMl09MjU1Jm4pOmgudGVzdCh0KSYmKG49dC5tYXRjaChmKSxyWzBdPXBhcnNlSW50KG5bMV0pLHJbMV09cGFyc2VJbnQoblsyXSksclsyXT1wYXJzZUludChuWzNdKSxuWzRdP3JbM109cGFyc2VGbG9hdChuWzRdKTpyWzNdPTEpLCFlKWZvcih2YXIgaT0wOzM+aTsrK2kpcltpXT1yW2ldLzI1NTtyZXR1cm4gcn12YXIgYz17fSxoPS9ecmdiYT9cKFxzKlxkezEsM31ccyosXHMqXGR7MSwzfVxzKixccypcZHsxLDN9XHMqKCwuKik/XCkkLyxmPS9ecmdiYT9cKFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLD9ccyooLiopP1wpJC87cmV0dXJuIGMuaXNQbGFpbk9iamVjdD10LGMubGluc3BhY2U9ZSxjLnppcDM9bixjLnN1bT1pLGMuemlwPXIsYy5pc0VxdWFsPXMsYy5jb3B5MkQ9byxjLmNvcHkxRD1hLGMuc3RyMlJnYkFycmF5PWwsYy5zdHIyUmdiYUFycmF5PXUsY307ZS5leHBvcnRzPW4oKX0se31dLDUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiOyJ1c2UgcmVzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9MzI7cmV0dXJuIHQmPS10LHQmJmUtLSw2NTUzNSZ0JiYoZS09MTYpLDE2NzExOTM1JnQmJihlLT04KSwyNTI2NDUxMzUmdCYmKGUtPTQpLDg1ODk5MzQ1OSZ0JiYoZS09MiksMTQzMTY1NTc2NSZ0JiYoZS09MSksZX12YXIgaT0zMjtyLklOVF9CSVRTPWksci5JTlRfTUFYPTIxNDc0ODM2NDcsci5JTlRfTUlOPS0xPDxpLTEsci5zaWduPWZ1bmN0aW9uKHQpe3JldHVybih0PjApLSgwPnQpfSxyLmFicz1mdW5jdGlvbih0KXt2YXIgZT10Pj5pLTE7cmV0dXJuKHReZSktZX0sci5taW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZV4odF5lKSYtKGU+dCl9LHIubWF4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHReKHReZSkmLShlPnQpfSxyLmlzUG93Mj1mdW5jdGlvbih0KXtyZXR1cm4hKHQmdC0xfHwhdCl9LHIubG9nMj1mdW5jdGlvbih0KXt2YXIgZSxyO3JldHVybiBlPSh0PjY1NTM1KTw8NCx0Pj4+PWUscj0odD4yNTUpPDwzLHQ+Pj49cixlfD1yLHI9KHQ+MTUpPDwyLHQ+Pj49cixlfD1yLHI9KHQ+Myk8PDEsdD4+Pj1yLGV8PXIsZXx0Pj4xfSxyLmxvZzEwPWZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xZTk/OTp0Pj0xZTg/ODp0Pj0xZTc/Nzp0Pj0xZTY/Njp0Pj0xZTU/NTp0Pj0xZTQ/NDp0Pj0xZTM/Mzp0Pj0xMDA/Mjp0Pj0xMD8xOjB9LHIucG9wQ291bnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQtPXQ+Pj4xJjE0MzE2NTU3NjUsdD0oODU4OTkzNDU5JnQpKyh0Pj4+MiY4NTg5OTM0NTkpLDE2ODQzMDA5Kih0Kyh0Pj4+NCkmMjUyNjQ1MTM1KT4+PjI0fSxyLmNvdW50VHJhaWxpbmdaZXJvcz1uLHIubmV4dFBvdzI9ZnVuY3Rpb24odCl7cmV0dXJuIHQrPTA9PT10LC0tdCx0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCx0fD10Pj4+MTYsdCsxfSxyLnByZXZQb3cyPWZ1bmN0aW9uKHQpe3JldHVybiB0fD10Pj4+MSx0fD10Pj4+Mix0fD10Pj4+NCx0fD10Pj4+OCx0fD10Pj4+MTYsdC0odD4+PjEpfSxyLnBhcml0eT1mdW5jdGlvbih0KXtyZXR1cm4gdF49dD4+PjE2LHRePXQ+Pj44LHRePXQ+Pj40LHQmPTE1LDI3MDMwPj4+dCYxfTt2YXIgbz1uZXcgQXJyYXkoMjU2KTshZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7MjU2PmU7KytlKXt2YXIgcj1lLG49ZSxpPTc7Zm9yKHI+Pj49MTtyO3I+Pj49MSluPDw9MSxufD0xJnIsLS1pO3RbZV09bjw8aSYyNTV9fShvKSxyLnJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIG9bMjU1JnRdPDwyNHxvW3Q+Pj44JjI1NV08PDE2fG9bdD4+PjE2JjI1NV08PDh8b1t0Pj4+MjQmMjU1XX0sci5pbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybiB0Jj02NTUzNSx0PTE2NzExOTM1Jih0fHQ8PDgpLHQ9MjUyNjQ1MTM1Jih0fHQ8PDQpLHQ9ODU4OTkzNDU5Jih0fHQ8PDIpLHQ9MTQzMTY1NTc2NSYodHx0PDwxKSxlJj02NTUzNSxlPTE2NzExOTM1JihlfGU8PDgpLGU9MjUyNjQ1MTM1JihlfGU8PDQpLGU9ODU4OTkzNDU5JihlfGU8PDIpLGU9MTQzMTY1NTc2NSYoZXxlPDwxKSx0fGU8PDF9LHIuZGVpbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj5lJjE0MzE2NTU3NjUsdD04NTg5OTM0NTkmKHR8dD4+PjEpLHQ9MjUyNjQ1MTM1Jih0fHQ+Pj4yKSx0PTE2NzExOTM1Jih0fHQ+Pj40KSx0PTY1NTM1Jih0fHQ+Pj4xNiksdDw8MTY+PjE2fSxyLmludGVybGVhdmUzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCY9MTAyMyx0PTQyNzgxOTAzMzUmKHR8dDw8MTYpLHQ9MjUxNzE5Njk1Jih0fHQ8PDgpLHQ9MzI3MjM1NjAzNSYodHx0PDw0KSx0PTEyMjcxMzM1MTMmKHR8dDw8MiksZSY9MTAyMyxlPTQyNzgxOTAzMzUmKGV8ZTw8MTYpLGU9MjUxNzE5Njk1JihlfGU8PDgpLGU9MzI3MjM1NjAzNSYoZXxlPDw0KSxlPTEyMjcxMzM1MTMmKGV8ZTw8MiksdHw9ZTw8MSxyJj0xMDIzLHI9NDI3ODE5MDMzNSYocnxyPDwxNikscj0yNTE3MTk2OTUmKHJ8cjw8OCkscj0zMjcyMzU2MDM1JihyfHI8PDQpLHI9MTIyNzEzMzUxMyYocnxyPDwyKSx0fHI8PDJ9LHIuZGVpbnRlcmxlYXZlMz1mdW5jdGlvbih0LGUpe3JldHVybiB0PXQ+Pj5lJjEyMjcxMzM1MTMsdD0zMjcyMzU2MDM1Jih0fHQ+Pj4yKSx0PTI1MTcxOTY5NSYodHx0Pj4+NCksdD00Mjc4MTkwMzM1Jih0fHQ+Pj44KSx0PTEwMjMmKHR8dD4+PjE2KSx0PDwyMj4+MjJ9LHIubmV4dENvbWJpbmF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXR8dC0xO3JldHVybiBlKzF8KH5lJi1+ZSktMT4+Pm4odCkrMX19LHt9XSw1MjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbigpe3RyeXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gdC5mb289ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9LDQyPT09dC5mb28oKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuc3ViYXJyYXkmJjA9PT10LnN1YmFycmF5KDEsMSkuYnl0ZUxlbmd0aH1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gaSgpe3JldHVybiBvLlRZUEVEX0FSUkFZX1NVUFBPUlQ/MjE0NzQ4MzY0NzoxMDczNzQxODIzfWZ1bmN0aW9uIG8odCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBvPyhvLlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0aGlzLmxlbmd0aD0wLHRoaXMucGFyZW50PXZvaWQgMCksIm51bWJlciI9PXR5cGVvZiB0P2EodGhpcyx0KToic3RyaW5nIj09dHlwZW9mIHQ/cyh0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXToidXRmOCIpOmwodGhpcyx0KSk6YXJndW1lbnRzLmxlbmd0aD4xP25ldyBvKHQsYXJndW1lbnRzWzFdKTpuZXcgbyh0KX1mdW5jdGlvbiBhKHQsZSl7aWYodD1tKHQsMD5lPzA6MHxnKGUpKSwhby5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcih2YXIgcj0wO2U+cjtyKyspdFtyXT0wO3JldHVybiB0fWZ1bmN0aW9uIHModCxlLHIpeyJzdHJpbmciPT10eXBlb2YgciYmIiIhPT1yfHwocj0idXRmOCIpO3ZhciBuPTB8eShlLHIpO3JldHVybiB0PW0odCxuKSx0LndyaXRlKGUsciksdH1mdW5jdGlvbiBsKHQsZSl7aWYoby5pc0J1ZmZlcihlKSlyZXR1cm4gdSh0LGUpO2lmKFEoZSkpcmV0dXJuIGModCxlKTtpZihudWxsPT1lKXRocm93IG5ldyBUeXBlRXJyb3IoIm11c3Qgc3RhcnQgd2l0aCBudW1iZXIsIGJ1ZmZlciwgYXJyYXkgb3Igc3RyaW5nIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlcil7aWYoZS5idWZmZXIgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gaCh0LGUpO2lmKGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gZih0LGUpfXJldHVybiBlLmxlbmd0aD9wKHQsZSk6ZCh0LGUpfWZ1bmN0aW9uIHUodCxlKXt2YXIgcj0wfGcoZS5sZW5ndGgpO3JldHVybiB0PW0odCxyKSxlLmNvcHkodCwwLDAsciksdH1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9MHxnKGUubGVuZ3RoKTt0PW0odCxyKTtmb3IodmFyIG49MDtyPm47bis9MSl0W25dPTI1NSZlW25dO3JldHVybiB0fWZ1bmN0aW9uIGgodCxlKXt2YXIgcj0wfGcoZS5sZW5ndGgpO3Q9bSh0LHIpO2Zvcih2YXIgbj0wO3I+bjtuKz0xKXRbbl09MjU1JmVbbl07cmV0dXJuIHR9ZnVuY3Rpb24gZih0LGUpe3JldHVybiBlLmJ5dGVMZW5ndGgsby5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0PW5ldyBVaW50OEFycmF5KGUpLHQuX19wcm90b19fPW8ucHJvdG90eXBlKTp0PWgodCxuZXcgVWludDhBcnJheShlKSksdH1mdW5jdGlvbiBwKHQsZSl7dmFyIHI9MHxnKGUubGVuZ3RoKTt0PW0odCxyKTtmb3IodmFyIG49MDtyPm47bis9MSl0W25dPTI1NSZlW25dO3JldHVybiB0fWZ1bmN0aW9uIGQodCxlKXt2YXIgcixuPTA7IkJ1ZmZlciI9PT1lLnR5cGUmJlEoZS5kYXRhKSYmKHI9ZS5kYXRhLG49MHxnKHIubGVuZ3RoKSksdD1tKHQsbik7Zm9yKHZhciBpPTA7bj5pO2krPTEpdFtpXT0yNTUmcltpXTtyZXR1cm4gdH1mdW5jdGlvbiBtKHQsZSl7by5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0PW5ldyBVaW50OEFycmF5KGUpLHQuX19wcm90b19fPW8ucHJvdG90eXBlKTp0Lmxlbmd0aD1lO3ZhciByPTAhPT1lJiZlPD1vLnBvb2xTaXplPj4+MTtyZXR1cm4gciYmKHQucGFyZW50PUspLHR9ZnVuY3Rpb24gZyh0KXtpZih0Pj1pKCkpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHgiK2koKS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfHR9ZnVuY3Rpb24gdih0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHYpKXJldHVybiBuZXcgdih0LGUpO3ZhciByPW5ldyBvKHQsZSk7cmV0dXJuIGRlbGV0ZSByLnBhcmVudCxyfWZ1bmN0aW9uIHkodCxlKXsic3RyaW5nIiE9dHlwZW9mIHQmJih0PSIiK3QpO3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXJldHVybiAwO2Zvcih2YXIgbj0hMTs7KXN3aXRjaChlKXtjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJyYXciOmNhc2UicmF3cyI6cmV0dXJuIHI7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gcSh0KS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKnI7Y2FzZSJoZXgiOnJldHVybiByPj4+MTtjYXNlImJhc2U2NCI6cmV0dXJuIFgodCkubGVuZ3RoO2RlZmF1bHQ6aWYobilyZXR1cm4gcSh0KS5sZW5ndGg7ZT0oIiIrZSkudG9Mb3dlckNhc2UoKSxuPSEwfX1mdW5jdGlvbiBiKHQsZSxyKXt2YXIgbj0hMTtpZihlPTB8ZSxyPXZvaWQgMD09PXJ8fHI9PT0xLzA/dGhpcy5sZW5ndGg6MHxyLHR8fCh0PSJ1dGY4IiksMD5lJiYoZT0wKSxyPnRoaXMubGVuZ3RoJiYocj10aGlzLmxlbmd0aCksZT49cilyZXR1cm4iIjtmb3IoOzspc3dpdGNoKHQpe2Nhc2UiaGV4IjpyZXR1cm4gSSh0aGlzLGUscik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gRSh0aGlzLGUscik7Y2FzZSJhc2NpaSI6cmV0dXJuIEwodGhpcyxlLHIpO2Nhc2UiYmluYXJ5IjpyZXR1cm4geih0aGlzLGUscik7Y2FzZSJiYXNlNjQiOnJldHVybiBUKHRoaXMsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFAodGhpcyxlLHIpO2RlZmF1bHQ6aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3Q9KHQrIiIpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24geCh0LGUscixuKXtyPU51bWJlcihyKXx8MDt2YXIgaT10Lmxlbmd0aC1yO24/KG49TnVtYmVyKG4pLG4+aSYmKG49aSkpOm49aTt2YXIgbz1lLmxlbmd0aDtpZihvJTIhPT0wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBoZXggc3RyaW5nIik7bj5vLzImJihuPW8vMik7Zm9yKHZhciBhPTA7bj5hO2ErKyl7dmFyIHM9cGFyc2VJbnQoZS5zdWJzdHIoMiphLDIpLDE2KTtpZihpc05hTihzKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaGV4IHN0cmluZyIpO3RbcithXT1zfXJldHVybiBhfWZ1bmN0aW9uIF8odCxlLHIsbil7cmV0dXJuIFkocShlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiB3KHQsZSxyLG4pe3JldHVybiBZKEcoZSksdCxyLG4pfWZ1bmN0aW9uIE0odCxlLHIsbil7cmV0dXJuIHcodCxlLHIsbil9ZnVuY3Rpb24gayh0LGUscixuKXtyZXR1cm4gWShYKGUpLHQscixuKX1mdW5jdGlvbiBBKHQsZSxyLG4pe3JldHVybiBZKEgoZSx0Lmxlbmd0aC1yKSx0LHIsbil9ZnVuY3Rpb24gVCh0LGUscil7cmV0dXJuIDA9PT1lJiZyPT09dC5sZW5ndGg/Vy5mcm9tQnl0ZUFycmF5KHQpOlcuZnJvbUJ5dGVBcnJheSh0LnNsaWNlKGUscikpfWZ1bmN0aW9uIEUodCxlLHIpe3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKHZhciBuPVtdLGk9ZTtyPmk7KXt2YXIgbz10W2ldLGE9bnVsbCxzPW8+MjM5PzQ6bz4yMjM/MzpvPjE5MT8yOjE7aWYocj49aStzKXt2YXIgbCx1LGMsaDtzd2l0Y2gocyl7Y2FzZSAxOjEyOD5vJiYoYT1vKTticmVhaztjYXNlIDI6bD10W2krMV0sMTI4PT09KDE5MiZsKSYmKGg9KDMxJm8pPDw2fDYzJmwsaD4xMjcmJihhPWgpKTticmVhaztjYXNlIDM6bD10W2krMV0sdT10W2krMl0sMTI4PT09KDE5MiZsKSYmMTI4PT09KDE5MiZ1KSYmKGg9KDE1Jm8pPDwxMnwoNjMmbCk8PDZ8NjMmdSxoPjIwNDcmJig1NTI5Nj5ofHxoPjU3MzQzKSYmKGE9aCkpO2JyZWFrO2Nhc2UgNDpsPXRbaSsxXSx1PXRbaSsyXSxjPXRbaSszXSwxMjg9PT0oMTkyJmwpJiYxMjg9PT0oMTkyJnUpJiYxMjg9PT0oMTkyJmMpJiYoaD0oMTUmbyk8PDE4fCg2MyZsKTw8MTJ8KDYzJnUpPDw2fDYzJmMsaD42NTUzNSYmMTExNDExMj5oJiYoYT1oKSl9fW51bGw9PT1hPyhhPTY1NTMzLHM9MSk6YT42NTUzNSYmKGEtPTY1NTM2LG4ucHVzaChhPj4+MTAmMTAyM3w1NTI5NiksYT01NjMyMHwxMDIzJmEpLG4ucHVzaChhKSxpKz1zfXJldHVybiBTKG4pfWZ1bmN0aW9uIFModCl7dmFyIGU9dC5sZW5ndGg7aWYoSj49ZSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdCk7Zm9yKHZhciByPSIiLG49MDtlPm47KXIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQuc2xpY2UobixuKz1KKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gTCh0LGUscil7dmFyIG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIGk9ZTtyPmk7aSsrKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbaV0pO3JldHVybiBufWZ1bmN0aW9uIHoodCxlLHIpe3ZhciBuPSIiO3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKHZhciBpPWU7cj5pO2krKyluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbaV0pO3JldHVybiBufWZ1bmN0aW9uIEkodCxlLHIpe3ZhciBuPXQubGVuZ3RoOyghZXx8MD5lKSYmKGU9MCksKCFyfHwwPnJ8fHI+bikmJihyPW4pO2Zvcih2YXIgaT0iIixvPWU7cj5vO28rKylpKz1WKHRbb10pO3JldHVybiBpfWZ1bmN0aW9uIFAodCxlLHIpe2Zvcih2YXIgbj10LnNsaWNlKGUsciksaT0iIixvPTA7bzxuLmxlbmd0aDtvKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUobltvXSsyNTYqbltvKzFdKTtyZXR1cm4gaX1mdW5jdGlvbiBDKHQsZSxyKXtpZih0JTEhPT0wfHwwPnQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKHQrZT5yKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gUih0LGUscixuLGksYSl7aWYoIW8uaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYnVmZmVyIG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UiKTtpZihlPml8fGE+ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmFsdWUgaXMgb3V0IG9mIGJvdW5kcyIpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiaW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gaih0LGUscixuKXswPmUmJihlPTY1NTM1K2UrMSk7Zm9yKHZhciBpPTAsbz1NYXRoLm1pbih0Lmxlbmd0aC1yLDIpO28+aTtpKyspdFtyK2ldPShlJjI1NTw8OCoobj9pOjEtaSkpPj4+OCoobj9pOjEtaSl9ZnVuY3Rpb24gRCh0LGUscixuKXswPmUmJihlPTQyOTQ5NjcyOTUrZSsxKTtmb3IodmFyIGk9MCxvPU1hdGgubWluKHQubGVuZ3RoLXIsNCk7bz5pO2krKyl0W3IraV09ZT4+PjgqKG4/aTozLWkpJjI1NX1mdW5jdGlvbiBPKHQsZSxyLG4saSxvKXtpZihyK24+dC5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoImluZGV4IG91dCBvZiByYW5nZSIpO2lmKDA+cil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiaW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRih0LGUscixuLGkpe3JldHVybiBpfHxPKHQsZSxyLDQsMy40MDI4MjM0NjYzODUyODg2ZTM4LC0zLjQwMjgyMzQ2NjM4NTI4ODZlMzgpLFoud3JpdGUodCxlLHIsbiwyMyw0KSxyKzR9ZnVuY3Rpb24gTih0LGUscixuLGkpe3JldHVybiBpfHxPKHQsZSxyLDgsMS43OTc2OTMxMzQ4NjIzMTU3ZTMwOCwtMS43OTc2OTMxMzQ4NjIzMTU3ZTMwOCksWi53cml0ZSh0LGUscixuLDUyLDgpLHIrOH1mdW5jdGlvbiBCKHQpe2lmKHQ9VSh0KS5yZXBsYWNlKCQsIiIpLHQubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDt0Lmxlbmd0aCU0IT09MDspdCs9Ij0iO3JldHVybiB0fWZ1bmN0aW9uIFUodCl7cmV0dXJuIHQudHJpbT90LnRyaW0oKTp0LnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX1mdW5jdGlvbiBWKHQpe3JldHVybiAxNj50PyIwIit0LnRvU3RyaW5nKDE2KTp0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBxKHQsZSl7ZT1lfHwxLzA7Zm9yKHZhciByLG49dC5sZW5ndGgsaT1udWxsLG89W10sYT0wO24+YTthKyspe2lmKHI9dC5jaGFyQ29kZUF0KGEpLHI+NTUyOTUmJjU3MzQ0PnIpe2lmKCFpKXtpZihyPjU2MzE5KXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aWYoYSsxPT09bil7KGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWk9cjtjb250aW51ZX1pZig1NjMyMD5yKXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSksaT1yO2NvbnRpbnVlfXI9KGktNTUyOTY8PDEwfHItNTYzMjApKzY1NTM2fWVsc2UgaSYmKGUtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKGk9bnVsbCwxMjg+cil7aWYoKGUtPTEpPDApYnJlYWs7by5wdXNoKHIpfWVsc2UgaWYoMjA0OD5yKXtpZigoZS09Mik8MClicmVhaztvLnB1c2gocj4+NnwxOTIsNjMmcnwxMjgpfWVsc2UgaWYoNjU1MzY+cil7aWYoKGUtPTMpPDApYnJlYWs7by5wdXNoKHI+PjEyfDIyNCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9ZWxzZXtpZighKDExMTQxMTI+cikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhaztvLnB1c2gocj4+MTh8MjQwLHI+PjEyJjYzfDEyOCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9fXJldHVybiBvfWZ1bmN0aW9uIEcodCl7Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoO3IrKyllLnB1c2goMjU1JnQuY2hhckNvZGVBdChyKSk7cmV0dXJuIGV9ZnVuY3Rpb24gSCh0LGUpe2Zvcih2YXIgcixuLGksbz1bXSxhPTA7YTx0Lmxlbmd0aCYmISgoZS09Mik8MCk7YSsrKXI9dC5jaGFyQ29kZUF0KGEpLG49cj4+OCxpPXIlMjU2LG8ucHVzaChpKSxvLnB1c2gobik7cmV0dXJuIG99ZnVuY3Rpb24gWCh0KXtyZXR1cm4gVy50b0J5dGVBcnJheShCKHQpKX1mdW5jdGlvbiBZKHQsZSxyLG4pe2Zvcih2YXIgaT0wO24+aSYmIShpK3I+PWUubGVuZ3RofHxpPj10Lmxlbmd0aCk7aSsrKWVbaStyXT10W2ldO3JldHVybiBpfXZhciBXPXQoImJhc2U2NC1qcyIpLFo9dCgiaWVlZTc1NCIpLFE9dCgiaXNhcnJheSIpO3IuQnVmZmVyPW8sci5TbG93QnVmZmVyPXYsci5JTlNQRUNUX01BWF9CWVRFUz01MCxvLnBvb2xTaXplPTgxOTI7dmFyIEs9e307by5UWVBFRF9BUlJBWV9TVVBQT1JUPXZvaWQgMCE9PWUuVFlQRURfQVJSQVlfU1VQUE9SVD9lLlRZUEVEX0FSUkFZX1NVUFBPUlQ6bigpLG8uX2F1Z21lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX19wcm90b19fPW8ucHJvdG90eXBlLHR9LG8uVFlQRURfQVJSQVlfU1VQUE9SVD8oby5wcm90b3R5cGUuX19wcm90b19fPVVpbnQ4QXJyYXkucHJvdG90eXBlLG8uX19wcm90b19fPVVpbnQ4QXJyYXksInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5zcGVjaWVzJiZvW1N5bWJvbC5zcGVjaWVzXT09PW8mJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLFN5bWJvbC5zcGVjaWVzLHt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMH0pKTooby5wcm90b3R5cGUubGVuZ3RoPXZvaWQgMCxvLnByb3RvdHlwZS5wYXJlbnQ9dm9pZCAwKSxvLmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiEobnVsbD09dHx8IXQuX2lzQnVmZmVyKX0sby5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7aWYoIW8uaXNCdWZmZXIodCl8fCFvLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMiKTtpZih0PT09ZSlyZXR1cm4gMDtmb3IodmFyIHI9dC5sZW5ndGgsbj1lLmxlbmd0aCxpPTAsYT1NYXRoLm1pbihyLG4pO2E+aSYmdFtpXT09PWVbaV07KSsraTtyZXR1cm4gaSE9PWEmJihyPXRbaV0sbj1lW2ldKSxuPnI/LTE6cj5uPzE6MH0sby5pc0VuY29kaW5nPWZ1bmN0aW9uKHQpe3N3aXRjaChTdHJpbmcodCkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInJhdyI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxvLmNvbmNhdD1mdW5jdGlvbih0LGUpe2lmKCFRKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzLiIpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IG8oMCk7dmFyIHI7aWYodm9pZCAwPT09ZSlmb3IoZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyllKz10W3JdLmxlbmd0aDt2YXIgbj1uZXcgbyhlKSxpPTA7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGE9dFtyXTthLmNvcHkobixpKSxpKz1hLmxlbmd0aH1yZXR1cm4gbn0sby5ieXRlTGVuZ3RoPXksby5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLG8ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9MHx0aGlzLmxlbmd0aDtyZXR1cm4gMD09PXQ/IiI6MD09PWFyZ3VtZW50cy5sZW5ndGg/RSh0aGlzLDAsdCk6Yi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG8ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtpZighby5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT10PyEwOjA9PT1vLmNvbXBhcmUodGhpcyx0KX0sby5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3ZhciB0PSIiLGU9ci5JTlNQRUNUX01BWF9CWVRFUztyZXR1cm4gdGhpcy5sZW5ndGg+MCYmKHQ9dGhpcy50b1N0cmluZygiaGV4IiwwLGUpLm1hdGNoKC8uezJ9L2cpLmpvaW4oIiAiKSx0aGlzLmxlbmd0aD5lJiYodCs9IiAuLi4gIikpLCI8QnVmZmVyICIrdCsiPiJ9LG8ucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odCl7aWYoIW8uaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dD8wOm8uY29tcGFyZSh0aGlzLHQpfSxvLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LGUscil7Zm9yKHZhciBuPS0xLGk9MDtyK2k8dC5sZW5ndGg7aSsrKWlmKHRbcitpXT09PWVbLTE9PT1uPzA6aS1uXSl7aWYoLTE9PT1uJiYobj1pKSxpLW4rMT09PWUubGVuZ3RoKXJldHVybiByK259ZWxzZSBuPS0xO3JldHVybi0xfWlmKGU+MjE0NzQ4MzY0Nz9lPTIxNDc0ODM2NDc6LTIxNDc0ODM2NDg+ZSYmKGU9LTIxNDc0ODM2NDgpLGU+Pj0wLDA9PT10aGlzLmxlbmd0aClyZXR1cm4tMTtpZihlPj10aGlzLmxlbmd0aClyZXR1cm4tMTtpZigwPmUmJihlPU1hdGgubWF4KHRoaXMubGVuZ3RoK2UsMCkpLCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gMD09PXQubGVuZ3RoPy0xOlN0cmluZy5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsdCxlKTtpZihvLmlzQnVmZmVyKHQpKXJldHVybiByKHRoaXMsdCxlKTtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIG8uVFlQRURfQVJSQVlfU1VQUE9SVCYmImZ1bmN0aW9uIj09PVVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHRoaXMsdCxlKTpyKHRoaXMsW3RdLGUpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfSxvLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUscixuKXtpZih2b2lkIDA9PT1lKW49InV0ZjgiLHI9dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09ciYmInN0cmluZyI9PXR5cGVvZiBlKW49ZSxyPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKGlzRmluaXRlKGUpKWU9MHxlLGlzRmluaXRlKHIpPyhyPTB8cix2b2lkIDA9PT1uJiYobj0idXRmOCIpKToobj1yLHI9dm9pZCAwKTtlbHNle3ZhciBpPW47bj1lLGU9MHxyLHI9aX12YXIgbz10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1yfHxyPm8pJiYocj1vKSx0Lmxlbmd0aD4wJiYoMD5yfHwwPmUpfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJhdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO258fChuPSJ1dGY4Iik7Zm9yKHZhciBhPSExOzspc3dpdGNoKG4pe2Nhc2UiaGV4IjpyZXR1cm4geCh0aGlzLHQsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBfKHRoaXMsdCxlLHIpO2Nhc2UiYXNjaWkiOnJldHVybiB3KHRoaXMsdCxlLHIpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gTSh0aGlzLHQsZSxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIGsodGhpcyx0LGUscik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBBKHRoaXMsdCxlLHIpO2RlZmF1bHQ6aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksYT0hMH19LG8ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07dmFyIEo9NDA5NjtvLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3Q9fn50LGU9dm9pZCAwPT09ZT9yOn5+ZSwwPnQ/KHQrPXIsMD50JiYodD0wKSk6dD5yJiYodD1yKSwwPmU/KGUrPXIsMD5lJiYoZT0wKSk6ZT5yJiYoZT1yKSx0PmUmJihlPXQpO3ZhciBuO2lmKG8uVFlQRURfQVJSQVlfU1VQUE9SVCluPXRoaXMuc3ViYXJyYXkodCxlKSxuLl9fcHJvdG9fXz1vLnByb3RvdHlwZTtlbHNle3ZhciBpPWUtdDtuPW5ldyBvKGksdm9pZCAwKTtmb3IodmFyIGE9MDtpPmE7YSsrKW5bYV09dGhpc1thK3RdfXJldHVybiBuLmxlbmd0aCYmKG4ucGFyZW50PXRoaXMucGFyZW50fHx0aGlzKSxufSxvLnByb3RvdHlwZS5yZWFkVUludExFPWZ1bmN0aW9uKHQsZSxyKXt0PTB8dCxlPTB8ZSxyfHxDKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdF0saT0xLG89MDsrK288ZSYmKGkqPTI1Nik7KW4rPXRoaXNbdCtvXSppO3JldHVybiBufSxvLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxyKXt0PTB8dCxlPTB8ZSxyfHxDKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdCstLWVdLGk9MTtlPjAmJihpKj0yNTYpOyluKz10aGlzW3QrLS1lXSppO3JldHVybiBufSxvLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8Qyh0LDEsdGhpcy5sZW5ndGgpLHRoaXNbdF19LG8ucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxDKHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh9LG8ucHJvdG90eXBlLnJlYWRVSW50MTZCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxDKHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LG8ucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxDKHQsNCx0aGlzLmxlbmd0aCksKHRoaXNbdF18dGhpc1t0KzFdPDw4fHRoaXNbdCsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbdCszXX0sby5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEModCw0LHRoaXMubGVuZ3RoKSwxNjc3NzIxNip0aGlzW3RdKyh0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM10pfSxvLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24odCxlLHIpe3Q9MHx0LGU9MHxlLHJ8fEModCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49dGhpc1t0XSxpPTEsbz0wOysrbzxlJiYoaSo9MjU2KTspbis9dGhpc1t0K29dKmk7cmV0dXJuIGkqPTEyOCxuPj1pJiYobi09TWF0aC5wb3coMiw4KmUpKSxufSxvLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24odCxlLHIpe3Q9MHx0LGU9MHxlLHJ8fEModCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49ZSxpPTEsbz10aGlzW3QrLS1uXTtuPjAmJihpKj0yNTYpOylvKz10aGlzW3QrLS1uXSppO3JldHVybiBpKj0xMjgsbz49aSYmKG8tPU1hdGgucG93KDIsOCplKSksb30sby5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8Qyh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSxvLnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LGUpe2V8fEModCwyLHRoaXMubGVuZ3RoKTt2YXIgcj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gMzI3Njgmcj80Mjk0OTAxNzYwfHI6cn0sby5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXtlfHxDKHQsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LG8ucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEModCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2fHRoaXNbdCszXTw8MjR9LG8ucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEModCw0LHRoaXMubGVuZ3RoKSx0aGlzW3RdPDwyNHx0aGlzW3QrMV08PDE2fHRoaXNbdCsyXTw8OHx0aGlzW3QrM119LG8ucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEModCw0LHRoaXMubGVuZ3RoKSxaLnJlYWQodGhpcyx0LCEwLDIzLDQpfSxvLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxDKHQsNCx0aGlzLmxlbmd0aCksWi5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sby5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEModCw4LHRoaXMubGVuZ3RoKSxaLnJlYWQodGhpcyx0LCEwLDUyLDgpfSxvLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8Qyh0LDgsdGhpcy5sZW5ndGgpLFoucmVhZCh0aGlzLHQsITEsNTIsOCl9LG8ucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe3Q9K3QsZT0wfGUscj0wfHIsbnx8Uih0aGlzLHQsZSxyLE1hdGgucG93KDIsOCpyKSwwKTt2YXIgaT0xLG89MDtmb3IodGhpc1tlXT0yNTUmdDsrK288ciYmKGkqPTI1Nik7KXRoaXNbZStvXT10L2kmMjU1O3JldHVybiBlK3J9LG8ucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKHQsZSxyLG4pe3Q9K3QsZT0wfGUscj0wfHIsbnx8Uih0aGlzLHQsZSxyLE1hdGgucG93KDIsOCpyKSwwKTt2YXIgaT1yLTEsbz0xO2Zvcih0aGlzW2UraV09MjU1JnQ7LS1pPj0wJiYobyo9MjU2KTspdGhpc1tlK2ldPXQvbyYyNTU7cmV0dXJuIGUrcn0sby5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT0wfGUscnx8Uih0aGlzLHQsZSwxLDI1NSwwKSxvLlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLHRoaXNbZV09MjU1JnQsZSsxfSxvLnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPTB8ZSxyfHxSKHRoaXMsdCxlLDIsNjU1MzUsMCksby5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCk6aih0aGlzLHQsZSwhMCksZSsyfSxvLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPTB8ZSxyfHxSKHRoaXMsdCxlLDIsNjU1MzUsMCksby5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPXQ+Pj44LHRoaXNbZSsxXT0yNTUmdCk6aih0aGlzLHQsZSwhMSksZSsyfSxvLnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPTB8ZSxyfHxSKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSxvLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCk6RCh0aGlzLHQsZSwhMCksZSs0fSxvLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPTB8ZSxyfHxSKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSxvLlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCk6RCh0aGlzLHQsZSwhMSksZSs0fSxvLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT0wfGUsIW4pe3ZhciBpPU1hdGgucG93KDIsOCpyLTEpO1IodGhpcyx0LGUscixpLTEsLWkpfXZhciBvPTAsYT0xLHM9MD50PzE6MDtmb3IodGhpc1tlXT0yNTUmdDsrK288ciYmKGEqPTI1Nik7KXRoaXNbZStvXT0odC9hPj4wKS1zJjI1NTtyZXR1cm4gZStyfSxvLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT0wfGUsIW4pe3ZhciBpPU1hdGgucG93KDIsOCpyLTEpO1IodGhpcyx0LGUscixpLTEsLWkpfXZhciBvPXItMSxhPTEscz0wPnQ/MTowO2Zvcih0aGlzW2Urb109MjU1JnQ7LS1vPj0wJiYoYSo9MjU2KTspdGhpc1tlK29dPSh0L2E+PjApLXMmMjU1O3JldHVybiBlK3J9LG8ucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT0wfGUscnx8Uih0aGlzLHQsZSwxLDEyNywtMTI4KSxvLlRZUEVEX0FSUkFZX1NVUFBPUlR8fCh0PU1hdGguZmxvb3IodCkpLDA+dCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LG8ucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT0wfGUscnx8Uih0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksby5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCk6aih0aGlzLHQsZSwhMCksZSsyfSxvLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU9MHxlLHJ8fFIodGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLG8uVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQpOmoodGhpcyx0LGUsITEpLGUrMn0sby5wcm90b3R5cGUud3JpdGVJbnQzMkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPTB8ZSxyfHxSKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksby5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQpOkQodGhpcyx0LGUsITApLGUrNH0sby5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPTB8ZSxyfHxSKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksMD50JiYodD00Mjk0OTY3Mjk1K3QrMSksby5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW2VdPXQ+Pj4yNCx0aGlzW2UrMV09dD4+PjE2LHRoaXNbZSsyXT10Pj4+OCx0aGlzW2UrM109MjU1JnQpOkQodGhpcyx0LGUsITEpLGUrNH0sby5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gRih0aGlzLHQsZSwhMCxyKX0sby5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gRih0aGlzLHQsZSwhMSxyKX0sby5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIE4odGhpcyx0LGUsITAscil9LG8ucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBOKHRoaXMsdCxlLCExLHIpfSxvLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksZT49dC5sZW5ndGgmJihlPXQubGVuZ3RoKSxlfHwoZT0wKSxuPjAmJnI+biYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PXQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoMD5lKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7CmlmKDA+cnx8cj49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZVN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZigwPm4pdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzIik7bj50aGlzLmxlbmd0aCYmKG49dGhpcy5sZW5ndGgpLHQubGVuZ3RoLWU8bi1yJiYobj10Lmxlbmd0aC1lK3IpO3ZhciBpLGE9bi1yO2lmKHRoaXM9PT10JiZlPnImJm4+ZSlmb3IoaT1hLTE7aT49MDtpLS0pdFtpK2VdPXRoaXNbaStyXTtlbHNlIGlmKDFlMz5hfHwhby5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcihpPTA7YT5pO2krKyl0W2krZV09dGhpc1tpK3JdO2Vsc2UgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwodCx0aGlzLnN1YmFycmF5KHIscithKSxlKTtyZXR1cm4gYX0sby5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbih0LGUscil7aWYodHx8KHQ9MCksZXx8KGU9MCkscnx8KHI9dGhpcy5sZW5ndGgpLGU+cil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiZW5kIDwgc3RhcnQiKTtpZihyIT09ZSYmMCE9PXRoaXMubGVuZ3RoKXtpZigwPmV8fGU+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJzdGFydCBvdXQgb2YgYm91bmRzIik7aWYoMD5yfHxyPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJlbmQgb3V0IG9mIGJvdW5kcyIpO3ZhciBuO2lmKCJudW1iZXIiPT10eXBlb2YgdClmb3Iobj1lO3I+bjtuKyspdGhpc1tuXT10O2Vsc2V7dmFyIGk9cSh0LnRvU3RyaW5nKCkpLG89aS5sZW5ndGg7Zm9yKG49ZTtyPm47bisrKXRoaXNbbl09aVtuJW9dfXJldHVybiB0aGlzfX07dmFyICQ9L1teK1wvMC05QS1aYS16LV9dL2d9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiYmFzZTY0LWpzIjo1MyxpZWVlNzU0OjU0LGlzYXJyYXk6NTV9XSw1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dmFyIHQsZT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscj1lLmxlbmd0aDtmb3IodD0wO3I+dDt0KyspbFt0XT1lW3RdO2Zvcih0PTA7cj50OysrdCl1W2UuY2hhckNvZGVBdCh0KV09dDt1WyItIi5jaGFyQ29kZUF0KDApXT02Mix1WyJfIi5jaGFyQ29kZUF0KDApXT02M31mdW5jdGlvbiBpKHQpe3ZhciBlLHIsbixpLG8sYSxzPXQubGVuZ3RoO2lmKHMlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO289Ij0iPT09dFtzLTJdPzI6Ij0iPT09dFtzLTFdPzE6MCxhPW5ldyBjKDMqcy80LW8pLG49bz4wP3MtNDpzO3ZhciBsPTA7Zm9yKGU9MCxyPTA7bj5lO2UrPTQscis9MylpPXVbdC5jaGFyQ29kZUF0KGUpXTw8MTh8dVt0LmNoYXJDb2RlQXQoZSsxKV08PDEyfHVbdC5jaGFyQ29kZUF0KGUrMildPDw2fHVbdC5jaGFyQ29kZUF0KGUrMyldLGFbbCsrXT0oMTY3MTE2ODAmaSk+PjE2LGFbbCsrXT0oNjUyODAmaSk+PjgsYVtsKytdPTI1NSZpO3JldHVybiAyPT09bz8oaT11W3QuY2hhckNvZGVBdChlKV08PDJ8dVt0LmNoYXJDb2RlQXQoZSsxKV0+PjQsYVtsKytdPTI1NSZpKToxPT09byYmKGk9dVt0LmNoYXJDb2RlQXQoZSldPDwxMHx1W3QuY2hhckNvZGVBdChlKzEpXTw8NHx1W3QuY2hhckNvZGVBdChlKzIpXT4+MixhW2wrK109aT4+OCYyNTUsYVtsKytdPTI1NSZpKSxhfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGxbdD4+MTgmNjNdK2xbdD4+MTImNjNdK2xbdD4+NiY2M10rbFs2MyZ0XX1mdW5jdGlvbiBhKHQsZSxyKXtmb3IodmFyIG4saT1bXSxhPWU7cj5hO2ErPTMpbj0odFthXTw8MTYpKyh0W2ErMV08PDgpK3RbYSsyXSxpLnB1c2gobyhuKSk7cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gcyh0KXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPXIlMyxpPSIiLG89W10scz0xNjM4Myx1PTAsYz1yLW47Yz51O3UrPXMpby5wdXNoKGEodCx1LHUrcz5jP2M6dStzKSk7cmV0dXJuIDE9PT1uPyhlPXRbci0xXSxpKz1sW2U+PjJdLGkrPWxbZTw8NCY2M10saSs9Ij09Iik6Mj09PW4mJihlPSh0W3ItMl08PDgpK3Rbci0xXSxpKz1sW2U+PjEwXSxpKz1sW2U+PjQmNjNdLGkrPWxbZTw8MiY2M10saSs9Ij0iKSxvLnB1c2goaSksby5qb2luKCIiKX1yLnRvQnl0ZUFycmF5PWksci5mcm9tQnl0ZUFycmF5PXM7dmFyIGw9W10sdT1bXSxjPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5O24oKX0se31dLDU0OltmdW5jdGlvbih0LGUscil7ci5yZWFkPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG8sYSxzPTgqaS1uLTEsbD0oMTw8cyktMSx1PWw+PjEsYz0tNyxoPXI/aS0xOjAsZj1yPy0xOjEscD10W2UraF07Zm9yKGgrPWYsbz1wJigxPDwtYyktMSxwPj49LWMsYys9cztjPjA7bz0yNTYqbyt0W2UraF0saCs9ZixjLT04KTtmb3IoYT1vJigxPDwtYyktMSxvPj49LWMsYys9bjtjPjA7YT0yNTYqYSt0W2UraF0saCs9ZixjLT04KTtpZigwPT09bylvPTEtdTtlbHNle2lmKG89PT1sKXJldHVybiBhP05hTjoocD8tMToxKSooMS8wKTthKz1NYXRoLnBvdygyLG4pLG8tPXV9cmV0dXJuKHA/LTE6MSkqYSpNYXRoLnBvdygyLG8tbil9LHIud3JpdGU9ZnVuY3Rpb24odCxlLHIsbixpLG8pe3ZhciBhLHMsbCx1PTgqby1pLTEsYz0oMTw8dSktMSxoPWM+PjEsZj0yMz09PWk/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLHA9bj8wOm8tMSxkPW4/MTotMSxtPTA+ZXx8MD09PWUmJjA+MS9lPzE6MDtmb3IoZT1NYXRoLmFicyhlKSxpc05hTihlKXx8ZT09PTEvMD8ocz1pc05hTihlKT8xOjAsYT1jKTooYT1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4yKSxlKihsPU1hdGgucG93KDIsLWEpKTwxJiYoYS0tLGwqPTIpLGUrPWEraD49MT9mL2w6ZipNYXRoLnBvdygyLDEtaCksZSpsPj0yJiYoYSsrLGwvPTIpLGEraD49Yz8ocz0wLGE9Yyk6YStoPj0xPyhzPShlKmwtMSkqTWF0aC5wb3coMixpKSxhKz1oKToocz1lKk1hdGgucG93KDIsaC0xKSpNYXRoLnBvdygyLGkpLGE9MCkpO2k+PTg7dFtyK3BdPTI1NSZzLHArPWQscy89MjU2LGktPTgpO2ZvcihhPWE8PGl8cyx1Kz1pO3U+MDt0W3IrcF09MjU1JmEscCs9ZCxhLz0yNTYsdS09OCk7dFtyK3AtZF18PTEyOCptfX0se31dLDU1OltmdW5jdGlvbih0LGUscil7dmFyIG49e30udG9TdHJpbmc7ZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PW4uY2FsbCh0KX19LHt9XSw1NjpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4oKXt0aGlzLl9ldmVudHM9dGhpcy5fZXZlbnRzfHx7fSx0aGlzLl9tYXhMaXN0ZW5lcnM9dGhpcy5fbWF4TGlzdGVuZXJzfHx2b2lkIDB9ZnVuY3Rpb24gaSh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdH1mdW5jdGlvbiBvKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdH1mdW5jdGlvbiBhKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXR9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdm9pZCAwPT09dH1lLmV4cG9ydHM9bixuLkV2ZW50RW1pdHRlcj1uLG4ucHJvdG90eXBlLl9ldmVudHM9dm9pZCAwLG4ucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnM9dm9pZCAwLG4uZGVmYXVsdE1heExpc3RlbmVycz0xMCxuLnByb3RvdHlwZS5zZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24odCl7aWYoIW8odCl8fDA+dHx8aXNOYU4odCkpdGhyb3cgVHlwZUVycm9yKCJuIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIiKTtyZXR1cm4gdGhpcy5fbWF4TGlzdGVuZXJzPXQsdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxsLHU7aWYodGhpcy5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPXt9KSwiZXJyb3IiPT09dCYmKCF0aGlzLl9ldmVudHMuZXJyb3J8fGEodGhpcy5fZXZlbnRzLmVycm9yKSYmIXRoaXMuX2V2ZW50cy5lcnJvci5sZW5ndGgpKXtpZihlPWFyZ3VtZW50c1sxXSxlIGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgZTt0aHJvdyBUeXBlRXJyb3IoJ1VuY2F1Z2h0LCB1bnNwZWNpZmllZCAiZXJyb3IiIGV2ZW50LicpfWlmKHI9dGhpcy5fZXZlbnRzW3RdLHMocikpcmV0dXJuITE7aWYoaShyKSlzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOnIuY2FsbCh0aGlzKTticmVhaztjYXNlIDI6ci5jYWxsKHRoaXMsYXJndW1lbnRzWzFdKTticmVhaztjYXNlIDM6ci5jYWxsKHRoaXMsYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSk7YnJlYWs7ZGVmYXVsdDpvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxyLmFwcGx5KHRoaXMsbyl9ZWxzZSBpZihhKHIpKWZvcihvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSx1PXIuc2xpY2UoKSxuPXUubGVuZ3RoLGw9MDtuPmw7bCsrKXVbbF0uYXBwbHkodGhpcyxvKTtyZXR1cm4hMH0sbi5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24odCxlKXt2YXIgcjtpZighaShlKSl0aHJvdyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO3JldHVybiB0aGlzLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9e30pLHRoaXMuX2V2ZW50cy5uZXdMaXN0ZW5lciYmdGhpcy5lbWl0KCJuZXdMaXN0ZW5lciIsdCxpKGUubGlzdGVuZXIpP2UubGlzdGVuZXI6ZSksdGhpcy5fZXZlbnRzW3RdP2EodGhpcy5fZXZlbnRzW3RdKT90aGlzLl9ldmVudHNbdF0ucHVzaChlKTp0aGlzLl9ldmVudHNbdF09W3RoaXMuX2V2ZW50c1t0XSxlXTp0aGlzLl9ldmVudHNbdF09ZSxhKHRoaXMuX2V2ZW50c1t0XSkmJiF0aGlzLl9ldmVudHNbdF0ud2FybmVkJiYocj1zKHRoaXMuX21heExpc3RlbmVycyk/bi5kZWZhdWx0TWF4TGlzdGVuZXJzOnRoaXMuX21heExpc3RlbmVycyxyJiZyPjAmJnRoaXMuX2V2ZW50c1t0XS5sZW5ndGg+ciYmKHRoaXMuX2V2ZW50c1t0XS53YXJuZWQ9ITAsY29uc29sZS5lcnJvcigiKG5vZGUpIHdhcm5pbmc6IHBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gJWQgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4iLHRoaXMuX2V2ZW50c1t0XS5sZW5ndGgpLCJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLnRyYWNlJiZjb25zb2xlLnRyYWNlKCkpKSx0aGlzfSxuLnByb3RvdHlwZS5vbj1uLnByb3RvdHlwZS5hZGRMaXN0ZW5lcixuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcigpe3RoaXMucmVtb3ZlTGlzdGVuZXIodCxyKSxufHwobj0hMCxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9aWYoIWkoZSkpdGhyb3cgVHlwZUVycm9yKCJsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24iKTt2YXIgbj0hMTtyZXR1cm4gci5saXN0ZW5lcj1lLHRoaXMub24odCxyKSx0aGlzfSxuLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3ZhciByLG4sbyxzO2lmKCFpKGUpKXRocm93IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIik7aWYoIXRoaXMuX2V2ZW50c3x8IXRoaXMuX2V2ZW50c1t0XSlyZXR1cm4gdGhpcztpZihyPXRoaXMuX2V2ZW50c1t0XSxvPXIubGVuZ3RoLG49LTEscj09PWV8fGkoci5saXN0ZW5lcikmJnIubGlzdGVuZXI9PT1lKWRlbGV0ZSB0aGlzLl9ldmVudHNbdF0sdGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIix0LGUpO2Vsc2UgaWYoYShyKSl7Zm9yKHM9bztzLS0gPjA7KWlmKHJbc109PT1lfHxyW3NdLmxpc3RlbmVyJiZyW3NdLmxpc3RlbmVyPT09ZSl7bj1zO2JyZWFrfWlmKDA+bilyZXR1cm4gdGhpczsxPT09ci5sZW5ndGg/KHIubGVuZ3RoPTAsZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSk6ci5zcGxpY2UobiwxKSx0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHQsZSl9cmV0dXJuIHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbih0KXt2YXIgZSxyO2lmKCF0aGlzLl9ldmVudHMpcmV0dXJuIHRoaXM7aWYoIXRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fZXZlbnRzPXt9OnRoaXMuX2V2ZW50c1t0XSYmZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXtmb3IoZSBpbiB0aGlzLl9ldmVudHMpInJlbW92ZUxpc3RlbmVyIiE9PWUmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGUpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9e30sdGhpc31pZihyPXRoaXMuX2V2ZW50c1t0XSxpKHIpKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxyKTtlbHNlIGlmKHIpZm9yKDtyLmxlbmd0aDspdGhpcy5yZW1vdmVMaXN0ZW5lcih0LHJbci5sZW5ndGgtMV0pO3JldHVybiBkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gZT10aGlzLl9ldmVudHMmJnRoaXMuX2V2ZW50c1t0XT9pKHRoaXMuX2V2ZW50c1t0XSk/W3RoaXMuX2V2ZW50c1t0XV06dGhpcy5fZXZlbnRzW3RdLnNsaWNlKCk6W119LG4ucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24odCl7aWYodGhpcy5fZXZlbnRzKXt2YXIgZT10aGlzLl9ldmVudHNbdF07aWYoaShlKSlyZXR1cm4gMTtpZihlKXJldHVybiBlLmxlbmd0aH1yZXR1cm4gMH0sbi5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGlzdGVuZXJDb3VudChlKX19LHt9XSw1NzpbZnVuY3Rpb24odCxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3Quc3VwZXJfPWUsdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSl9OmUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3Quc3VwZXJfPWU7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyByLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9fSx7fV0sNTg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dFtuXTsiLiI9PT1pP3Quc3BsaWNlKG4sMSk6Ii4uIj09PWk/KHQuc3BsaWNlKG4sMSkscisrKTpyJiYodC5zcGxpY2UobiwxKSxyLS0pfWlmKGUpZm9yKDtyLS07cil0LnVuc2hpZnQoIi4uIik7cmV0dXJuIHR9ZnVuY3Rpb24gbih0LGUpe2lmKHQuZmlsdGVyKXJldHVybiB0LmZpbHRlcihlKTtmb3IodmFyIHI9W10sbj0wO248dC5sZW5ndGg7bisrKWUodFtuXSxuLHQpJiZyLnB1c2godFtuXSk7cmV0dXJuIHJ9dmFyIGk9L14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvLG89ZnVuY3Rpb24odCl7cmV0dXJuIGkuZXhlYyh0KS5zbGljZSgxKX07ci5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZhciByPSIiLGk9ITEsbz1hcmd1bWVudHMubGVuZ3RoLTE7bz49LTEmJiFpO28tLSl7dmFyIGE9bz49MD9hcmd1bWVudHNbb106dC5jd2QoKTtpZigic3RyaW5nIiE9dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MiKTthJiYocj1hKyIvIityLGk9Ii8iPT09YS5jaGFyQXQoMCkpfXJldHVybiByPWUobihyLnNwbGl0KCIvIiksZnVuY3Rpb24odCl7cmV0dXJuISF0fSksIWkpLmpvaW4oIi8iKSwoaT8iLyI6IiIpK3J8fCIuIn0sci5ub3JtYWxpemU9ZnVuY3Rpb24odCl7dmFyIGk9ci5pc0Fic29sdXRlKHQpLG89Ii8iPT09YSh0LC0xKTtyZXR1cm4gdD1lKG4odC5zcGxpdCgiLyIpLGZ1bmN0aW9uKHQpe3JldHVybiEhdH0pLCFpKS5qb2luKCIvIiksdHx8aXx8KHQ9Ii4iKSx0JiZvJiYodCs9Ii8iKSwoaT8iLyI6IiIpK3R9LHIuaXNBYnNvbHV0ZT1mdW5jdGlvbih0KXtyZXR1cm4iLyI9PT10LmNoYXJBdCgwKX0sci5qb2luPWZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3JldHVybiByLm5vcm1hbGl6ZShuKHQsZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGguam9pbiBtdXN0IGJlIHN0cmluZ3MiKTtyZXR1cm4gdH0pLmpvaW4oIi8iKSl9LHIucmVsYXRpdmU9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGgmJiIiPT09dFtlXTtlKyspO2Zvcih2YXIgcj10Lmxlbmd0aC0xO3I+PTAmJiIiPT09dFtyXTtyLS0pO3JldHVybiBlPnI/W106dC5zbGljZShlLHItZSsxKX10PXIucmVzb2x2ZSh0KS5zdWJzdHIoMSksZT1yLnJlc29sdmUoZSkuc3Vic3RyKDEpO2Zvcih2YXIgaT1uKHQuc3BsaXQoIi8iKSksbz1uKGUuc3BsaXQoIi8iKSksYT1NYXRoLm1pbihpLmxlbmd0aCxvLmxlbmd0aCkscz1hLGw9MDthPmw7bCsrKWlmKGlbbF0hPT1vW2xdKXtzPWw7YnJlYWt9Zm9yKHZhciB1PVtdLGw9cztsPGkubGVuZ3RoO2wrKyl1LnB1c2goIi4uIik7cmV0dXJuIHU9dS5jb25jYXQoby5zbGljZShzKSksdS5qb2luKCIvIil9LHIuc2VwPSIvIixyLmRlbGltaXRlcj0iOiIsci5kaXJuYW1lPWZ1bmN0aW9uKHQpe3ZhciBlPW8odCkscj1lWzBdLG49ZVsxXTtyZXR1cm4gcnx8bj8obiYmKG49bi5zdWJzdHIoMCxuLmxlbmd0aC0xKSkscituKToiLiJ9LHIuYmFzZW5hbWU9ZnVuY3Rpb24odCxlKXt2YXIgcj1vKHQpWzJdO3JldHVybiBlJiZyLnN1YnN0cigtMSplLmxlbmd0aCk9PT1lJiYocj1yLnN1YnN0cigwLHIubGVuZ3RoLWUubGVuZ3RoKSkscn0sci5leHRuYW1lPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpWzNdfTt2YXIgYT0iYiI9PT0iYWIiLnN1YnN0cigtMSk/ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LnN1YnN0cihlLHIpfTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDA+ZSYmKGU9dC5sZW5ndGgrZSksdC5zdWJzdHIoZSxyKX19KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHtfcHJvY2Vzczo1OX1dLDU5OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbigpe2M9ITEscy5sZW5ndGg/dT1zLmNvbmNhdCh1KTpoPS0xLHUubGVuZ3RoJiZpKCl9ZnVuY3Rpb24gaSgpe2lmKCFjKXt2YXIgdD1zZXRUaW1lb3V0KG4pO2M9ITA7Zm9yKHZhciBlPXUubGVuZ3RoO2U7KXtmb3Iocz11LHU9W107KytoPGU7KXMmJnNbaF0ucnVuKCk7aD0tMSxlPXUubGVuZ3RofXM9bnVsbCxjPSExLGNsZWFyVGltZW91dCh0KX19ZnVuY3Rpb24gbyh0LGUpe3RoaXMuZnVuPXQsdGhpcy5hcnJheT1lfWZ1bmN0aW9uIGEoKXt9dmFyIHMsbD1lLmV4cG9ydHM9e30sdT1bXSxjPSExLGg9LTE7bC5uZXh0VGljaz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aC0xKTtpZihhcmd1bWVudHMubGVuZ3RoPjEpZm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyllW3ItMV09YXJndW1lbnRzW3JdO3UucHVzaChuZXcgbyh0LGUpKSwxIT09dS5sZW5ndGh8fGN8fHNldFRpbWVvdXQoaSwwKX0sby5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0sbC50aXRsZT0iYnJvd3NlciIsbC5icm93c2VyPSEwLGwuZW52PXt9LGwuYXJndj1bXSxsLnZlcnNpb249IiIsbC52ZXJzaW9ucz17fSxsLm9uPWEsbC5hZGRMaXN0ZW5lcj1hLGwub25jZT1hLGwub2ZmPWEsbC5yZW1vdmVMaXN0ZW5lcj1hLGwucmVtb3ZlQWxsTGlzdGVuZXJzPWEsbC5lbWl0PWEsbC5iaW5kaW5nPWZ1bmN0aW9uKHQpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0sbC5jd2Q9ZnVuY3Rpb24oKXtyZXR1cm4iLyJ9LGwuY2hkaXI9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sbC51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX0se31dLDYwOltmdW5jdGlvbihlLHIsbil7KGZ1bmN0aW9uKGUpeyFmdW5jdGlvbihpKXtmdW5jdGlvbiBvKHQpe3Rocm93IG5ldyBSYW5nZUVycm9yKFJbdF0pfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1bXTtyLS07KW5bcl09ZSh0W3JdKTtyZXR1cm4gbn1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9dC5zcGxpdCgiQCIpLG49IiI7ci5sZW5ndGg+MSYmKG49clswXSsiQCIsdD1yWzFdKSx0PXQucmVwbGFjZShDLCIuIik7dmFyIGk9dC5zcGxpdCgiLiIpLG89YShpLGUpLmpvaW4oIi4iKTtyZXR1cm4gbitvfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlLHIsbj1bXSxpPTAsbz10Lmxlbmd0aDtvPmk7KWU9dC5jaGFyQ29kZUF0KGkrKyksZT49NTUyOTYmJjU2MzE5Pj1lJiZvPmk/KHI9dC5jaGFyQ29kZUF0KGkrKyksNTYzMjA9PSg2NDUxMiZyKT9uLnB1c2goKCgxMDIzJmUpPDwxMCkrKDEwMjMmcikrNjU1MzYpOihuLnB1c2goZSksaS0tKSk6bi5wdXNoKGUpO3JldHVybiBufWZ1bmN0aW9uIHUodCl7cmV0dXJuIGEodCxmdW5jdGlvbih0KXt2YXIgZT0iIjtyZXR1cm4gdD42NTUzNSYmKHQtPTY1NTM2LGUrPU8odD4+PjEwJjEwMjN8NTUyOTYpLHQ9NTYzMjB8MTAyMyZ0KSxlKz1PKHQpfSkuam9pbigiIil9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gMTA+dC00OD90LTIyOjI2PnQtNjU/dC02NToyNj50LTk3P3QtOTc6TX1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQrMjIrNzUqKDI2PnQpLSgoMCE9ZSk8PDUpfWZ1bmN0aW9uIGYodCxlLHIpe3ZhciBuPTA7Zm9yKHQ9cj9EKHQvRSk6dD4+MSx0Kz1EKHQvZSk7dD5qKkE+PjE7bis9TSl0PUQodC9qKTtyZXR1cm4gRChuKyhqKzEpKnQvKHQrVCkpfWZ1bmN0aW9uIHAodCl7dmFyIGUscixuLGksYSxzLGwsaCxwLGQsbT1bXSxnPXQubGVuZ3RoLHY9MCx5PUwsYj1TO2ZvcihyPXQubGFzdEluZGV4T2YoeiksMD5yJiYocj0wKSxuPTA7cj5uOysrbil0LmNoYXJDb2RlQXQobik+PTEyOCYmbygibm90LWJhc2ljIiksbS5wdXNoKHQuY2hhckNvZGVBdChuKSk7Zm9yKGk9cj4wP3IrMTowO2c+aTspe2ZvcihhPXYscz0xLGw9TTtpPj1nJiZvKCJpbnZhbGlkLWlucHV0IiksaD1jKHQuY2hhckNvZGVBdChpKyspKSwoaD49TXx8aD5EKCh3LXYpL3MpKSYmbygib3ZlcmZsb3ciKSx2Kz1oKnMscD1iPj1sP2s6bD49YitBP0E6bC1iLCEocD5oKTtsKz1NKWQ9TS1wLHM+RCh3L2QpJiZvKCJvdmVyZmxvdyIpLHMqPWQ7ZT1tLmxlbmd0aCsxLGI9Zih2LWEsZSwwPT1hKSxEKHYvZSk+dy15JiZvKCJvdmVyZmxvdyIpLHkrPUQodi9lKSx2JT1lLG0uc3BsaWNlKHYrKywwLHkpfXJldHVybiB1KG0pfWZ1bmN0aW9uIGQodCl7dmFyIGUscixuLGksYSxzLHUsYyxwLGQsbSxnLHYseSxiLHg9W107Zm9yKHQ9bCh0KSxnPXQubGVuZ3RoLGU9TCxyPTAsYT1TLHM9MDtnPnM7KytzKW09dFtzXSwxMjg+bSYmeC5wdXNoKE8obSkpO2ZvcihuPWk9eC5sZW5ndGgsaSYmeC5wdXNoKHopO2c+bjspe2Zvcih1PXcscz0wO2c+czsrK3MpbT10W3NdLG0+PWUmJnU+bSYmKHU9bSk7Zm9yKHY9bisxLHUtZT5EKCh3LXIpL3YpJiZvKCJvdmVyZmxvdyIpLHIrPSh1LWUpKnYsZT11LHM9MDtnPnM7KytzKWlmKG09dFtzXSxlPm0mJisrcj53JiZvKCJvdmVyZmxvdyIpLG09PWUpe2ZvcihjPXIscD1NO2Q9YT49cD9rOnA+PWErQT9BOnAtYSwhKGQ+Yyk7cCs9TSliPWMtZCx5PU0tZCx4LnB1c2goTyhoKGQrYiV5LDApKSksYz1EKGIveSk7eC5wdXNoKE8oaChjLDApKSksYT1mKHIsdixuPT1pKSxyPTAsKytufSsrciwrK2V9cmV0dXJuIHguam9pbigiIil9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gcyh0LGZ1bmN0aW9uKHQpe3JldHVybiBJLnRlc3QodCk/cCh0LnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOnR9KX1mdW5jdGlvbiBnKHQpe3JldHVybiBzKHQsZnVuY3Rpb24odCl7cmV0dXJuIFAudGVzdCh0KT8ieG4tLSIrZCh0KTp0fSl9dmFyIHY9Im9iamVjdCI9PXR5cGVvZiBuJiZuJiYhbi5ub2RlVHlwZSYmbix5PSJvYmplY3QiPT10eXBlb2YgciYmciYmIXIubm9kZVR5cGUmJnIsYj0ib2JqZWN0Ij09dHlwZW9mIGUmJmU7Yi5nbG9iYWwhPT1iJiZiLndpbmRvdyE9PWImJmIuc2VsZiE9PWJ8fChpPWIpO3ZhciB4LF8sdz0yMTQ3NDgzNjQ3LE09MzYsaz0xLEE9MjYsVD0zOCxFPTcwMCxTPTcyLEw9MTI4LHo9Ii0iLEk9L154bi0tLyxQPS9bXlx4MjAtXHg3RV0vLEM9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLFI9e292ZXJmbG93OiJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlucHV0IjoiSW52YWxpZCBpbnB1dCJ9LGo9TS1rLEQ9TWF0aC5mbG9vcixPPVN0cmluZy5mcm9tQ2hhckNvZGU7aWYoeD17dmVyc2lvbjoiMS4zLjIiLHVjczI6e2RlY29kZTpsLGVuY29kZTp1fSxkZWNvZGU6cCxlbmNvZGU6ZCx0b0FTQ0lJOmcsdG9Vbmljb2RlOm19LCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYib2JqZWN0Ij09dHlwZW9mIHQuYW1kJiZ0LmFtZCl0KCJwdW55Y29kZSIsZnVuY3Rpb24oKXtyZXR1cm4geH0pO2Vsc2UgaWYodiYmeSlpZihyLmV4cG9ydHM9PXYpeS5leHBvcnRzPXg7ZWxzZSBmb3IoXyBpbiB4KXguaGFzT3duUHJvcGVydHkoXykmJih2W19dPXhbX10pO2Vsc2UgaS5wdW55Y29kZT14fSh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2U9ZXx8IiYiLHI9cnx8Ij0iO3ZhciBhPXt9O2lmKCJzdHJpbmciIT10eXBlb2YgdHx8MD09PXQubGVuZ3RoKXJldHVybiBhO3ZhciBzPS9cKy9nO3Q9dC5zcGxpdChlKTt2YXIgbD0xZTM7byYmIm51bWJlciI9PXR5cGVvZiBvLm1heEtleXMmJihsPW8ubWF4S2V5cyk7dmFyIHU9dC5sZW5ndGg7bD4wJiZ1PmwmJih1PWwpO2Zvcih2YXIgYz0wO3U+YzsrK2Mpe3ZhciBoLGYscCxkLG09dFtjXS5yZXBsYWNlKHMsIiUyMCIpLGc9bS5pbmRleE9mKHIpO2c+PTA/KGg9bS5zdWJzdHIoMCxnKSxmPW0uc3Vic3RyKGcrMSkpOihoPW0sZj0iIikscD1kZWNvZGVVUklDb21wb25lbnQoaCksZD1kZWNvZGVVUklDb21wb25lbnQoZiksbihhLHApP2koYVtwXSk/YVtwXS5wdXNoKGQpOmFbcF09W2FbcF0sZF06YVtwXT1kfXJldHVybiBhfTt2YXIgaT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfX0se31dLDYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZih0Lm1hcClyZXR1cm4gdC5tYXAoZSk7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKylyLnB1c2goZSh0W25dLG4pKTtyZXR1cm4gcn12YXIgaT1mdW5jdGlvbih0KXtzd2l0Y2godHlwZW9mIHQpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gdDtjYXNlImJvb2xlYW4iOnJldHVybiB0PyJ0cnVlIjoiZmFsc2UiO2Nhc2UibnVtYmVyIjpyZXR1cm4gaXNGaW5pdGUodCk/dDoiIjtkZWZhdWx0OnJldHVybiIifX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3JldHVybiBlPWV8fCImIixyPXJ8fCI9IixudWxsPT09dCYmKHQ9dm9pZCAwKSwib2JqZWN0Ij09dHlwZW9mIHQ/bihhKHQpLGZ1bmN0aW9uKGEpe3ZhciBzPWVuY29kZVVSSUNvbXBvbmVudChpKGEpKStyO3JldHVybiBvKHRbYV0pP24odFthXSxmdW5jdGlvbih0KXtyZXR1cm4gcytlbmNvZGVVUklDb21wb25lbnQoaSh0KSl9KS5qb2luKGUpOnMrZW5jb2RlVVJJQ29tcG9uZW50KGkodFthXSkpfSkuam9pbihlKTpzP2VuY29kZVVSSUNvbXBvbmVudChpKHMpKStyK2VuY29kZVVSSUNvbXBvbmVudChpKHQpKToiIn07dmFyIG89QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0sYT1PYmplY3Qua2V5c3x8ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikmJmUucHVzaChyKTtyZXR1cm4gZX19LHt9XSw2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmRlY29kZT1yLnBhcnNlPXQoIi4vZGVjb2RlIiksci5lbmNvZGU9ci5zdHJpbmdpZnk9dCgiLi9lbmNvZGUiKX0seyIuL2RlY29kZSI6NjEsIi4vZW5jb2RlIjo2Mn1dLDY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt0aGlzLnByb3RvY29sPW51bGwsdGhpcy5zbGFzaGVzPW51bGwsdGhpcy5hdXRoPW51bGwsdGhpcy5ob3N0PW51bGwsdGhpcy5wb3J0PW51bGwsdGhpcy5ob3N0bmFtZT1udWxsLHRoaXMuaGFzaD1udWxsLHRoaXMuc2VhcmNoPW51bGwsdGhpcy5xdWVyeT1udWxsLHRoaXMucGF0aG5hbWU9bnVsbCx0aGlzLnBhdGg9bnVsbCx0aGlzLmhyZWY9bnVsbH1mdW5jdGlvbiBpKHQsZSxyKXtpZih0JiZ1LmlzT2JqZWN0KHQpJiZ0IGluc3RhbmNlb2YgbilyZXR1cm4gdDt2YXIgaT1uZXcgbjtyZXR1cm4gaS5wYXJzZSh0LGUsciksaX1mdW5jdGlvbiBvKHQpe3JldHVybiB1LmlzU3RyaW5nKHQpJiYodD1pKHQpKSx0IGluc3RhbmNlb2Ygbj90LmZvcm1hdCgpOm4ucHJvdG90eXBlLmZvcm1hdC5jYWxsKHQpfWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gaSh0LCExLCEwKS5yZXNvbHZlKGUpfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gdD9pKHQsITEsITApLnJlc29sdmVPYmplY3QoZSk6ZX12YXIgbD10KCJwdW55Y29kZSIpLHU9dCgiLi91dGlsIik7ci5wYXJzZT1pLHIucmVzb2x2ZT1hLHIucmVzb2x2ZU9iamVjdD1zLHIuZm9ybWF0PW8sci5Vcmw9bjt2YXIgYz0vXihbYS16MC05ListXSs6KS9pLGg9LzpbMC05XSokLyxmPS9eKFwvXC8/KD8hXC8pW15cP1xzXSopKFw/W15cc10qKT8kLyxwPVsiPCIsIj4iLCciJywiYCIsIiAiLCJcciIsIlxuIiwiCSJdLGQ9WyJ7IiwifSIsInwiLCJcXCIsIl4iLCJgIl0uY29uY2F0KHApLG09WyInIl0uY29uY2F0KGQpLGc9WyIlIiwiLyIsIj8iLCI7IiwiIyJdLmNvbmNhdChtKSx2PVsiLyIsIj8iLCIjIl0seT0yNTUsYj0vXlsrYS16MC05QS1aXy1dezAsNjN9JC8seD0vXihbK2EtejAtOUEtWl8tXXswLDYzfSkoLiopJC8sXz17amF2YXNjcmlwdDohMCwiamF2YXNjcmlwdDoiOiEwfSx3PXtqYXZhc2NyaXB0OiEwLCJqYXZhc2NyaXB0OiI6ITB9LE09e2h0dHA6ITAsaHR0cHM6ITAsZnRwOiEwLGdvcGhlcjohMCxmaWxlOiEwLCJodHRwOiI6ITAsImh0dHBzOiI6ITAsImZ0cDoiOiEwLCJnb3BoZXI6IjohMCwiZmlsZToiOiEwfSxrPXQoInF1ZXJ5c3RyaW5nIik7bi5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odCxlLHIpe2lmKCF1LmlzU3RyaW5nKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhcmFtZXRlciAndXJsJyBtdXN0IGJlIGEgc3RyaW5nLCBub3QgIit0eXBlb2YgdCk7dmFyIG49dC5pbmRleE9mKCI/IiksaT0tMSE9PW4mJm48dC5pbmRleE9mKCIjIik/Ij8iOiIjIixvPXQuc3BsaXQoaSksYT0vXFwvZztvWzBdPW9bMF0ucmVwbGFjZShhLCIvIiksdD1vLmpvaW4oaSk7dmFyIHM9dDtpZihzPXMudHJpbSgpLCFyJiYxPT09dC5zcGxpdCgiIyIpLmxlbmd0aCl7dmFyIGg9Zi5leGVjKHMpO2lmKGgpcmV0dXJuIHRoaXMucGF0aD1zLHRoaXMuaHJlZj1zLHRoaXMucGF0aG5hbWU9aFsxXSxoWzJdPyh0aGlzLnNlYXJjaD1oWzJdLGU/dGhpcy5xdWVyeT1rLnBhcnNlKHRoaXMuc2VhcmNoLnN1YnN0cigxKSk6dGhpcy5xdWVyeT10aGlzLnNlYXJjaC5zdWJzdHIoMSkpOmUmJih0aGlzLnNlYXJjaD0iIix0aGlzLnF1ZXJ5PXt9KSx0aGlzfXZhciBwPWMuZXhlYyhzKTtpZihwKXtwPXBbMF07dmFyIGQ9cC50b0xvd2VyQ2FzZSgpO3RoaXMucHJvdG9jb2w9ZCxzPXMuc3Vic3RyKHAubGVuZ3RoKX1pZihyfHxwfHxzLm1hdGNoKC9eXC9cL1teQFwvXStAW15AXC9dKy8pKXt2YXIgQT0iLy8iPT09cy5zdWJzdHIoMCwyKTshQXx8cCYmd1twXXx8KHM9cy5zdWJzdHIoMiksdGhpcy5zbGFzaGVzPSEwKX1pZighd1twXSYmKEF8fHAmJiFNW3BdKSl7Zm9yKHZhciBUPS0xLEU9MDtFPHYubGVuZ3RoO0UrKyl7dmFyIFM9cy5pbmRleE9mKHZbRV0pOy0xIT09UyYmKC0xPT09VHx8VD5TKSYmKFQ9Uyl9dmFyIEwsejt6PS0xPT09VD9zLmxhc3RJbmRleE9mKCJAIik6cy5sYXN0SW5kZXhPZigiQCIsVCksLTEhPT16JiYoTD1zLnNsaWNlKDAseikscz1zLnNsaWNlKHorMSksdGhpcy5hdXRoPWRlY29kZVVSSUNvbXBvbmVudChMKSksVD0tMTtmb3IodmFyIEU9MDtFPGcubGVuZ3RoO0UrKyl7dmFyIFM9cy5pbmRleE9mKGdbRV0pOy0xIT09UyYmKC0xPT09VHx8VD5TKSYmKFQ9Uyl9LTE9PT1UJiYoVD1zLmxlbmd0aCksdGhpcy5ob3N0PXMuc2xpY2UoMCxUKSxzPXMuc2xpY2UoVCksdGhpcy5wYXJzZUhvc3QoKSx0aGlzLmhvc3RuYW1lPXRoaXMuaG9zdG5hbWV8fCIiO3ZhciBJPSJbIj09PXRoaXMuaG9zdG5hbWVbMF0mJiJdIj09PXRoaXMuaG9zdG5hbWVbdGhpcy5ob3N0bmFtZS5sZW5ndGgtMV07aWYoIUkpZm9yKHZhciBQPXRoaXMuaG9zdG5hbWUuc3BsaXQoL1wuLyksRT0wLEM9UC5sZW5ndGg7Qz5FO0UrKyl7dmFyIFI9UFtFXTtpZihSJiYhUi5tYXRjaChiKSl7Zm9yKHZhciBqPSIiLEQ9MCxPPVIubGVuZ3RoO08+RDtEKyspais9Ui5jaGFyQ29kZUF0KEQpPjEyNz8ieCI6UltEXTtpZighai5tYXRjaChiKSl7dmFyIEY9UC5zbGljZSgwLEUpLE49UC5zbGljZShFKzEpLEI9Ui5tYXRjaCh4KTtCJiYoRi5wdXNoKEJbMV0pLE4udW5zaGlmdChCWzJdKSksTi5sZW5ndGgmJihzPSIvIitOLmpvaW4oIi4iKStzKSx0aGlzLmhvc3RuYW1lPUYuam9pbigiLiIpO2JyZWFrfX19dGhpcy5ob3N0bmFtZS5sZW5ndGg+eT90aGlzLmhvc3RuYW1lPSIiOnRoaXMuaG9zdG5hbWU9dGhpcy5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLEl8fCh0aGlzLmhvc3RuYW1lPWwudG9BU0NJSSh0aGlzLmhvc3RuYW1lKSk7dmFyIFU9dGhpcy5wb3J0PyI6Iit0aGlzLnBvcnQ6IiIsVj10aGlzLmhvc3RuYW1lfHwiIjt0aGlzLmhvc3Q9VitVLHRoaXMuaHJlZis9dGhpcy5ob3N0LEkmJih0aGlzLmhvc3RuYW1lPXRoaXMuaG9zdG5hbWUuc3Vic3RyKDEsdGhpcy5ob3N0bmFtZS5sZW5ndGgtMiksIi8iIT09c1swXSYmKHM9Ii8iK3MpKX1pZighX1tkXSlmb3IodmFyIEU9MCxDPW0ubGVuZ3RoO0M+RTtFKyspe3ZhciBxPW1bRV07aWYoLTEhPT1zLmluZGV4T2YocSkpe3ZhciBHPWVuY29kZVVSSUNvbXBvbmVudChxKTtHPT09cSYmKEc9ZXNjYXBlKHEpKSxzPXMuc3BsaXQocSkuam9pbihHKX19dmFyIEg9cy5pbmRleE9mKCIjIik7LTEhPT1IJiYodGhpcy5oYXNoPXMuc3Vic3RyKEgpLHM9cy5zbGljZSgwLEgpKTt2YXIgWD1zLmluZGV4T2YoIj8iKTtpZigtMSE9PVg/KHRoaXMuc2VhcmNoPXMuc3Vic3RyKFgpLHRoaXMucXVlcnk9cy5zdWJzdHIoWCsxKSxlJiYodGhpcy5xdWVyeT1rLnBhcnNlKHRoaXMucXVlcnkpKSxzPXMuc2xpY2UoMCxYKSk6ZSYmKHRoaXMuc2VhcmNoPSIiLHRoaXMucXVlcnk9e30pLHMmJih0aGlzLnBhdGhuYW1lPXMpLE1bZF0mJnRoaXMuaG9zdG5hbWUmJiF0aGlzLnBhdGhuYW1lJiYodGhpcy5wYXRobmFtZT0iLyIpLHRoaXMucGF0aG5hbWV8fHRoaXMuc2VhcmNoKXt2YXIgVT10aGlzLnBhdGhuYW1lfHwiIixZPXRoaXMuc2VhcmNofHwiIjt0aGlzLnBhdGg9VStZfXJldHVybiB0aGlzLmhyZWY9dGhpcy5mb3JtYXQoKSx0aGlzfSxuLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF1dGh8fCIiO3QmJih0PWVuY29kZVVSSUNvbXBvbmVudCh0KSx0PXQucmVwbGFjZSgvJTNBL2ksIjoiKSx0Kz0iQCIpO3ZhciBlPXRoaXMucHJvdG9jb2x8fCIiLHI9dGhpcy5wYXRobmFtZXx8IiIsbj10aGlzLmhhc2h8fCIiLGk9ITEsbz0iIjt0aGlzLmhvc3Q/aT10K3RoaXMuaG9zdDp0aGlzLmhvc3RuYW1lJiYoaT10KygtMT09PXRoaXMuaG9zdG5hbWUuaW5kZXhPZigiOiIpP3RoaXMuaG9zdG5hbWU6IlsiK3RoaXMuaG9zdG5hbWUrIl0iKSx0aGlzLnBvcnQmJihpKz0iOiIrdGhpcy5wb3J0KSksdGhpcy5xdWVyeSYmdS5pc09iamVjdCh0aGlzLnF1ZXJ5KSYmT2JqZWN0LmtleXModGhpcy5xdWVyeSkubGVuZ3RoJiYobz1rLnN0cmluZ2lmeSh0aGlzLnF1ZXJ5KSk7dmFyIGE9dGhpcy5zZWFyY2h8fG8mJiI/IitvfHwiIjtyZXR1cm4gZSYmIjoiIT09ZS5zdWJzdHIoLTEpJiYoZSs9IjoiKSx0aGlzLnNsYXNoZXN8fCghZXx8TVtlXSkmJmkhPT0hMT8oaT0iLy8iKyhpfHwiIiksciYmIi8iIT09ci5jaGFyQXQoMCkmJihyPSIvIityKSk6aXx8KGk9IiIpLG4mJiIjIiE9PW4uY2hhckF0KDApJiYobj0iIyIrbiksYSYmIj8iIT09YS5jaGFyQXQoMCkmJihhPSI/IithKSxyPXIucmVwbGFjZSgvWz8jXS9nLGZ1bmN0aW9uKHQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodCl9KSxhPWEucmVwbGFjZSgiIyIsIiUyMyIpLGUraStyK2Erbn0sbi5wcm90b3R5cGUucmVzb2x2ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXNvbHZlT2JqZWN0KGkodCwhMSwhMCkpLmZvcm1hdCgpfSxuLnByb3RvdHlwZS5yZXNvbHZlT2JqZWN0PWZ1bmN0aW9uKHQpe2lmKHUuaXNTdHJpbmcodCkpe3ZhciBlPW5ldyBuO2UucGFyc2UodCwhMSwhMCksdD1lfWZvcih2YXIgcj1uZXcgbixpPU9iamVjdC5rZXlzKHRoaXMpLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIGE9aVtvXTtyW2FdPXRoaXNbYV19aWYoci5oYXNoPXQuaGFzaCwiIj09PXQuaHJlZilyZXR1cm4gci5ocmVmPXIuZm9ybWF0KCkscjtpZih0LnNsYXNoZXMmJiF0LnByb3RvY29sKXtmb3IodmFyIHM9T2JqZWN0LmtleXModCksbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgYz1zW2xdOyJwcm90b2NvbCIhPT1jJiYocltjXT10W2NdKX1yZXR1cm4gTVtyLnByb3RvY29sXSYmci5ob3N0bmFtZSYmIXIucGF0aG5hbWUmJihyLnBhdGg9ci5wYXRobmFtZT0iLyIpLHIuaHJlZj1yLmZvcm1hdCgpLHJ9aWYodC5wcm90b2NvbCYmdC5wcm90b2NvbCE9PXIucHJvdG9jb2wpe2lmKCFNW3QucHJvdG9jb2xdKXtmb3IodmFyIGg9T2JqZWN0LmtleXModCksZj0wO2Y8aC5sZW5ndGg7ZisrKXt2YXIgcD1oW2ZdO3JbcF09dFtwXX1yZXR1cm4gci5ocmVmPXIuZm9ybWF0KCkscn1pZihyLnByb3RvY29sPXQucHJvdG9jb2wsdC5ob3N0fHx3W3QucHJvdG9jb2xdKXIucGF0aG5hbWU9dC5wYXRobmFtZTtlbHNle2Zvcih2YXIgZD0odC5wYXRobmFtZXx8IiIpLnNwbGl0KCIvIik7ZC5sZW5ndGgmJiEodC5ob3N0PWQuc2hpZnQoKSk7KTt0Lmhvc3R8fCh0Lmhvc3Q9IiIpLHQuaG9zdG5hbWV8fCh0Lmhvc3RuYW1lPSIiKSwiIiE9PWRbMF0mJmQudW5zaGlmdCgiIiksZC5sZW5ndGg8MiYmZC51bnNoaWZ0KCIiKSxyLnBhdGhuYW1lPWQuam9pbigiLyIpfWlmKHIuc2VhcmNoPXQuc2VhcmNoLHIucXVlcnk9dC5xdWVyeSxyLmhvc3Q9dC5ob3N0fHwiIixyLmF1dGg9dC5hdXRoLHIuaG9zdG5hbWU9dC5ob3N0bmFtZXx8dC5ob3N0LHIucG9ydD10LnBvcnQsci5wYXRobmFtZXx8ci5zZWFyY2gpe3ZhciBtPXIucGF0aG5hbWV8fCIiLGc9ci5zZWFyY2h8fCIiO3IucGF0aD1tK2d9cmV0dXJuIHIuc2xhc2hlcz1yLnNsYXNoZXN8fHQuc2xhc2hlcyxyLmhyZWY9ci5mb3JtYXQoKSxyfXZhciB2PXIucGF0aG5hbWUmJiIvIj09PXIucGF0aG5hbWUuY2hhckF0KDApLHk9dC5ob3N0fHx0LnBhdGhuYW1lJiYiLyI9PT10LnBhdGhuYW1lLmNoYXJBdCgwKSxiPXl8fHZ8fHIuaG9zdCYmdC5wYXRobmFtZSx4PWIsXz1yLnBhdGhuYW1lJiZyLnBhdGhuYW1lLnNwbGl0KCIvIil8fFtdLGQ9dC5wYXRobmFtZSYmdC5wYXRobmFtZS5zcGxpdCgiLyIpfHxbXSxrPXIucHJvdG9jb2wmJiFNW3IucHJvdG9jb2xdO2lmKGsmJihyLmhvc3RuYW1lPSIiLHIucG9ydD1udWxsLHIuaG9zdCYmKCIiPT09X1swXT9fWzBdPXIuaG9zdDpfLnVuc2hpZnQoci5ob3N0KSksci5ob3N0PSIiLHQucHJvdG9jb2wmJih0Lmhvc3RuYW1lPW51bGwsdC5wb3J0PW51bGwsdC5ob3N0JiYoIiI9PT1kWzBdP2RbMF09dC5ob3N0OmQudW5zaGlmdCh0Lmhvc3QpKSx0Lmhvc3Q9bnVsbCksYj1iJiYoIiI9PT1kWzBdfHwiIj09PV9bMF0pKSx5KXIuaG9zdD10Lmhvc3R8fCIiPT09dC5ob3N0P3QuaG9zdDpyLmhvc3Qsci5ob3N0bmFtZT10Lmhvc3RuYW1lfHwiIj09PXQuaG9zdG5hbWU/dC5ob3N0bmFtZTpyLmhvc3RuYW1lLHIuc2VhcmNoPXQuc2VhcmNoLHIucXVlcnk9dC5xdWVyeSxfPWQ7ZWxzZSBpZihkLmxlbmd0aClffHwoXz1bXSksXy5wb3AoKSxfPV8uY29uY2F0KGQpLHIuc2VhcmNoPXQuc2VhcmNoLHIucXVlcnk9dC5xdWVyeTtlbHNlIGlmKCF1LmlzTnVsbE9yVW5kZWZpbmVkKHQuc2VhcmNoKSl7aWYoayl7ci5ob3N0bmFtZT1yLmhvc3Q9Xy5zaGlmdCgpO3ZhciBBPXIuaG9zdCYmci5ob3N0LmluZGV4T2YoIkAiKT4wP3IuaG9zdC5zcGxpdCgiQCIpOiExO0EmJihyLmF1dGg9QS5zaGlmdCgpLHIuaG9zdD1yLmhvc3RuYW1lPUEuc2hpZnQoKSl9cmV0dXJuIHIuc2VhcmNoPXQuc2VhcmNoLHIucXVlcnk9dC5xdWVyeSx1LmlzTnVsbChyLnBhdGhuYW1lKSYmdS5pc051bGwoci5zZWFyY2gpfHwoci5wYXRoPShyLnBhdGhuYW1lP3IucGF0aG5hbWU6IiIpKyhyLnNlYXJjaD9yLnNlYXJjaDoiIikpLHIuaHJlZj1yLmZvcm1hdCgpLHJ9aWYoIV8ubGVuZ3RoKXJldHVybiByLnBhdGhuYW1lPW51bGwsci5zZWFyY2g/ci5wYXRoPSIvIityLnNlYXJjaDpyLnBhdGg9bnVsbCxyLmhyZWY9ci5mb3JtYXQoKSxyO2Zvcih2YXIgVD1fLnNsaWNlKC0xKVswXSxFPShyLmhvc3R8fHQuaG9zdHx8Xy5sZW5ndGg+MSkmJigiLiI9PT1UfHwiLi4iPT09VCl8fCIiPT09VCxTPTAsTD1fLmxlbmd0aDtMPj0wO0wtLSlUPV9bTF0sIi4iPT09VD9fLnNwbGljZShMLDEpOiIuLiI9PT1UPyhfLnNwbGljZShMLDEpLFMrKyk6UyYmKF8uc3BsaWNlKEwsMSksUy0tKTtpZighYiYmIXgpZm9yKDtTLS07UylfLnVuc2hpZnQoIi4uIik7IWJ8fCIiPT09X1swXXx8X1swXSYmIi8iPT09X1swXS5jaGFyQXQoMCl8fF8udW5zaGlmdCgiIiksRSYmIi8iIT09Xy5qb2luKCIvIikuc3Vic3RyKC0xKSYmXy5wdXNoKCIiKTt2YXIgej0iIj09PV9bMF18fF9bMF0mJiIvIj09PV9bMF0uY2hhckF0KDApO2lmKGspe3IuaG9zdG5hbWU9ci5ob3N0PXo/IiI6Xy5sZW5ndGg/Xy5zaGlmdCgpOiIiO3ZhciBBPXIuaG9zdCYmci5ob3N0LmluZGV4T2YoIkAiKT4wP3IuaG9zdC5zcGxpdCgiQCIpOiExO0EmJihyLmF1dGg9QS5zaGlmdCgpLHIuaG9zdD1yLmhvc3RuYW1lPUEuc2hpZnQoKSl9cmV0dXJuIGI9Ynx8ci5ob3N0JiZfLmxlbmd0aCxiJiYheiYmXy51bnNoaWZ0KCIiKSxfLmxlbmd0aD9yLnBhdGhuYW1lPV8uam9pbigiLyIpOihyLnBhdGhuYW1lPW51bGwsci5wYXRoPW51bGwpLHUuaXNOdWxsKHIucGF0aG5hbWUpJiZ1LmlzTnVsbChyLnNlYXJjaCl8fChyLnBhdGg9KHIucGF0aG5hbWU/ci5wYXRobmFtZToiIikrKHIuc2VhcmNoP3Iuc2VhcmNoOiIiKSksci5hdXRoPXQuYXV0aHx8ci5hdXRoLHIuc2xhc2hlcz1yLnNsYXNoZXN8fHQuc2xhc2hlcyxyLmhyZWY9ci5mb3JtYXQoKSxyfSxuLnByb3RvdHlwZS5wYXJzZUhvc3Q9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmhvc3QsZT1oLmV4ZWModCk7ZSYmKGU9ZVswXSwiOiIhPT1lJiYodGhpcy5wb3J0PWUuc3Vic3RyKDEpKSx0PXQuc3Vic3RyKDAsdC5sZW5ndGgtZS5sZW5ndGgpKSx0JiYodGhpcy5ob3N0bmFtZT10KX19LHsiLi91dGlsIjo2NSxwdW55Y29kZTo2MCxxdWVyeXN0cmluZzo2M31dLDY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aXNTdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fSxpc09iamVjdDpmdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fSxpc051bGw6ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fSxpc051bGxPclVuZGVmaW5lZDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dH19fSx7fV0sNjY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY29weSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuZmlsbCYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZFVJbnQ4fX0se31dLDY3OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKGUsbil7ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPXtzZWVuOltdLHN0eWxpemU6YX07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTMmJihuLmRlcHRoPWFyZ3VtZW50c1syXSksYXJndW1lbnRzLmxlbmd0aD49NCYmKG4uY29sb3JzPWFyZ3VtZW50c1szXSksbShlKT9uLnNob3dIaWRkZW49ZTplJiZyLl9leHRlbmQobixlKSxfKG4uc2hvd0hpZGRlbikmJihuLnNob3dIaWRkZW49ITEpLF8obi5kZXB0aCkmJihuLmRlcHRoPTIpLF8obi5jb2xvcnMpJiYobi5jb2xvcnM9ITEpLF8obi5jdXN0b21JbnNwZWN0KSYmKG4uY3VzdG9tSW5zcGVjdD0hMCksbi5jb2xvcnMmJihuLnN0eWxpemU9byksbChuLHQsbi5kZXB0aCl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPWkuc3R5bGVzW2VdO3JldHVybiByPyIbWyIraS5jb2xvcnNbcl1bMF0rIm0iK3QrIhtbIitpLmNvbG9yc1tyXVsxXSsibSI6dH1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIHR9ZnVuY3Rpb24gcyh0KXt2YXIgZT17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQscil7ZVt0XT0hMH0pLGV9ZnVuY3Rpb24gbCh0LGUsbil7aWYodC5jdXN0b21JbnNwZWN0JiZlJiZUKGUuaW5zcGVjdCkmJmUuaW5zcGVjdCE9PXIuaW5zcGVjdCYmKCFlLmNvbnN0cnVjdG9yfHxlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSE9PWUpKXt2YXIgaT1lLmluc3BlY3Qobix0KTtyZXR1cm4gYihpKXx8KGk9bCh0LGksbikpLGl9dmFyIG89dSh0LGUpO2lmKG8pcmV0dXJuIG87dmFyIGE9T2JqZWN0LmtleXMoZSksbT1zKGEpO2lmKHQuc2hvd0hpZGRlbiYmKGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkpLEEoZSkmJihhLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8YS5pbmRleE9mKCJkZXNjcmlwdGlvbiIpPj0wKSlyZXR1cm4gYyhlKTtpZigwPT09YS5sZW5ndGgpe2lmKFQoZSkpe3ZhciBnPWUubmFtZT8iOiAiK2UubmFtZToiIjtyZXR1cm4gdC5zdHlsaXplKCJbRnVuY3Rpb24iK2crIl0iLCJzcGVjaWFsIil9aWYodyhlKSlyZXR1cm4gdC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSwicmVnZXhwIik7aWYoayhlKSlyZXR1cm4gdC5zdHlsaXplKERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksImRhdGUiKTtpZihBKGUpKXJldHVybiBjKGUpfXZhciB2PSIiLHk9ITEseD1bInsiLCJ9Il07aWYoZChlKSYmKHk9ITAseD1bIlsiLCJdIl0pLFQoZSkpe3ZhciBfPWUubmFtZT8iOiAiK2UubmFtZToiIjt2PSIgW0Z1bmN0aW9uIitfKyJdIn1pZih3KGUpJiYodj0iICIrUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpKSxrKGUpJiYodj0iICIrRGF0ZS5wcm90b3R5cGUudG9VVENTdHJpbmcuY2FsbChlKSksQShlKSYmKHY9IiAiK2MoZSkpLDA9PT1hLmxlbmd0aCYmKCF5fHwwPT1lLmxlbmd0aCkpcmV0dXJuIHhbMF0rdit4WzFdO2lmKDA+bilyZXR1cm4gdyhlKT90LnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLCJyZWdleHAiKTp0LnN0eWxpemUoIltPYmplY3RdIiwic3BlY2lhbCIpO3Quc2Vlbi5wdXNoKGUpO3ZhciBNO3JldHVybiBNPXk/aCh0LGUsbixtLGEpOmEubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBmKHQsZSxuLG0scix5KX0pLHQuc2Vlbi5wb3AoKSxwKE0sdix4KX1mdW5jdGlvbiB1KHQsZSl7aWYoXyhlKSlyZXR1cm4gdC5zdHlsaXplKCJ1bmRlZmluZWQiLCJ1bmRlZmluZWQiKTtpZihiKGUpKXt2YXIgcj0iJyIrSlNPTi5zdHJpbmdpZnkoZSkucmVwbGFjZSgvXiJ8IiQvZywiIikucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpKyInIjtyZXR1cm4gdC5zdHlsaXplKHIsInN0cmluZyIpfXJldHVybiB5KGUpP3Quc3R5bGl6ZSgiIitlLCJudW1iZXIiKTptKGUpP3Quc3R5bGl6ZSgiIitlLCJib29sZWFuIik6ZyhlKT90LnN0eWxpemUoIm51bGwiLCJudWxsIik6dm9pZCAwfWZ1bmN0aW9uIGModCl7cmV0dXJuIlsiK0Vycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKyJdIn1mdW5jdGlvbiBoKHQsZSxyLG4saSl7Zm9yKHZhciBvPVtdLGE9MCxzPWUubGVuZ3RoO3M+YTsrK2EpSShlLFN0cmluZyhhKSk/by5wdXNoKGYodCxlLHIsbixTdHJpbmcoYSksITApKTpvLnB1c2goIiIpO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5tYXRjaCgvXlxkKyQvKXx8by5wdXNoKGYodCxlLHIsbixpLCEwKSl9KSxvfWZ1bmN0aW9uIGYodCxlLHIsbixpLG8pe3ZhciBhLHMsdTtpZih1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKXx8e3ZhbHVlOmVbaV19LHUuZ2V0P3M9dS5zZXQ/dC5zdHlsaXplKCJbR2V0dGVyL1NldHRlcl0iLCJzcGVjaWFsIik6dC5zdHlsaXplKCJbR2V0dGVyXSIsInNwZWNpYWwiKTp1LnNldCYmKHM9dC5zdHlsaXplKCJbU2V0dGVyXSIsInNwZWNpYWwiKSksSShuLGkpfHwoYT0iWyIraSsiXSIpLHN8fCh0LnNlZW4uaW5kZXhPZih1LnZhbHVlKTwwPyhzPWcocik/bCh0LHUudmFsdWUsbnVsbCk6bCh0LHUudmFsdWUsci0xKSxzLmluZGV4T2YoIlxuIik+LTEmJihzPW8/cy5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIiAgIit0fSkuam9pbigiXG4iKS5zdWJzdHIoMik6IlxuIitzLnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iICAgIit0fSkuam9pbigiXG4iKSkpOnM9dC5zdHlsaXplKCJbQ2lyY3VsYXJdIiwic3BlY2lhbCIpKSxfKGEpKXtpZihvJiZpLm1hdGNoKC9eXGQrJC8pKXJldHVybiBzO2E9SlNPTi5zdHJpbmdpZnkoIiIraSksYS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pPyhhPWEuc3Vic3RyKDEsYS5sZW5ndGgtMiksYT10LnN0eWxpemUoYSwibmFtZSIpKTooYT1hLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKS5yZXBsYWNlKC8oXiJ8IiQpL2csIiciKSxhPXQuc3R5bGl6ZShhLCJzdHJpbmciKSl9cmV0dXJuIGErIjogIitzfWZ1bmN0aW9uIHAodCxlLHIpe3ZhciBuPTAsaT10LnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiBuKyssZS5pbmRleE9mKCJcbiIpPj0wJiZuKyssdCtlLnJlcGxhY2UoL1x1MDAxYlxbXGRcZD9tL2csIiIpLmxlbmd0aCsxfSwwKTtyZXR1cm4gaT42MD9yWzBdKygiIj09PWU/IiI6ZSsiXG4gIikrIiAiK3Quam9pbigiLFxuICAiKSsiICIrclsxXTpyWzBdK2UrIiAiK3Quam9pbigiLCAiKSsiICIrclsxXX1mdW5jdGlvbiBkKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfWZ1bmN0aW9uIG0odCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdH1mdW5jdGlvbiBnKHQpe3JldHVybiBudWxsPT09dH1mdW5jdGlvbiB2KHQpe3JldHVybiBudWxsPT10fWZ1bmN0aW9uIHkodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fWZ1bmN0aW9uIGIodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIHgodCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fWZ1bmN0aW9uIF8odCl7cmV0dXJuIHZvaWQgMD09PXR9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gTSh0KSYmIltvYmplY3QgUmVnRXhwXSI9PT1TKHQpfWZ1bmN0aW9uIE0odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBrKHQpe3JldHVybiBNKHQpJiYiW29iamVjdCBEYXRlXSI9PT1TKHQpfWZ1bmN0aW9uIEEodCl7cmV0dXJuIE0odCkmJigiW29iamVjdCBFcnJvcl0iPT09Uyh0KXx8dCBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiBUKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIEUodCl7cmV0dXJuIG51bGw9PT10fHwiYm9vbGVhbiI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdHx8InN5bWJvbCI9PXR5cGVvZiB0fHwidW5kZWZpbmVkIj09dHlwZW9mIHR9ZnVuY3Rpb24gUyh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIEwodCl7cmV0dXJuIDEwPnQ/IjAiK3QudG9TdHJpbmcoMTApOnQudG9TdHJpbmcoMTApfWZ1bmN0aW9uIHooKXt2YXIgdD1uZXcgRGF0ZSxlPVtMKHQuZ2V0SG91cnMoKSksTCh0LmdldE1pbnV0ZXMoKSksTCh0LmdldFNlY29uZHMoKSldLmpvaW4oIjoiKTtyZXR1cm5bdC5nZXREYXRlKCksalt0LmdldE1vbnRoKCldLGVdLmpvaW4oIiAiKX1mdW5jdGlvbiBJKHQsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpfXZhciBQPS8lW3NkaiVdL2c7ci5mb3JtYXQ9ZnVuY3Rpb24odCl7aWYoIWIodCkpe2Zvcih2YXIgZT1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyllLnB1c2goaShhcmd1bWVudHNbcl0pKTtyZXR1cm4gZS5qb2luKCIgIil9Zm9yKHZhciByPTEsbj1hcmd1bWVudHMsbz1uLmxlbmd0aCxhPVN0cmluZyh0KS5yZXBsYWNlKFAsZnVuY3Rpb24odCl7aWYoIiUlIj09PXQpcmV0dXJuIiUiO2lmKHI+PW8pcmV0dXJuIHQ7c3dpdGNoKHQpe2Nhc2UiJXMiOnJldHVybiBTdHJpbmcobltyKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKG5bcisrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuW3IrK10pfWNhdGNoKGUpe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiB0fX0pLHM9bltyXTtvPnI7cz1uWysrcl0pYSs9ZyhzKXx8IU0ocyk/IiAiK3M6IiAiK2kocyk7cmV0dXJuIGF9LHIuZGVwcmVjYXRlPWZ1bmN0aW9uKHQsaSl7ZnVuY3Rpb24gbygpe2lmKCFhKXtpZihlLnRocm93RGVwcmVjYXRpb24pdGhyb3cgbmV3IEVycm9yKGkpO2UudHJhY2VEZXByZWNhdGlvbj9jb25zb2xlLnRyYWNlKGkpOmNvbnNvbGUuZXJyb3IoaSksYT0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9aWYoXyhuLnByb2Nlc3MpKXJldHVybiBmdW5jdGlvbigpe3JldHVybiByLmRlcHJlY2F0ZSh0LGkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07aWYoZS5ub0RlcHJlY2F0aW9uPT09ITApcmV0dXJuIHQ7dmFyIGE9ITE7cmV0dXJuIG99O3ZhciBDLFI9e307ci5kZWJ1Z2xvZz1mdW5jdGlvbih0KXtpZihfKEMpJiYoQz1lLmVudi5OT0RFX0RFQlVHfHwiIiksdD10LnRvVXBwZXJDYXNlKCksIVJbdF0paWYobmV3IFJlZ0V4cCgiXFxiIit0KyJcXGIiLCJpIikudGVzdChDKSl7dmFyIG49ZS5waWQ7Ult0XT1mdW5jdGlvbigpe3ZhciBlPXIuZm9ybWF0LmFwcGx5KHIsYXJndW1lbnRzKTtjb25zb2xlLmVycm9yKCIlcyAlZDogJXMiLHQsbixlKX19ZWxzZSBSW3RdPWZ1bmN0aW9uKCl7fTtyZXR1cm4gUlt0XX0sci5pbnNwZWN0PWksaS5jb2xvcnM9e2JvbGQ6WzEsMjJdLGl0YWxpYzpbMywyM10sdW5kZXJsaW5lOls0LDI0XSxpbnZlcnNlOls3LDI3XSx3aGl0ZTpbMzcsMzldLGdyZXk6WzkwLDM5XSxibGFjazpbMzAsMzldLGJsdWU6WzM0LDM5XSxjeWFuOlszNiwzOV0sZ3JlZW46WzMyLDM5XSxtYWdlbnRhOlszNSwzOV0scmVkOlszMSwzOV0seWVsbG93OlszMywzOV19LGkuc3R5bGVzPXtzcGVjaWFsOiJjeWFuIixudW1iZXI6InllbGxvdyIsImJvb2xlYW4iOiJ5ZWxsb3ciLHVuZGVmaW5lZDoiZ3JleSIsIm51bGwiOiJib2xkIixzdHJpbmc6ImdyZWVuIixkYXRlOiJtYWdlbnRhIixyZWdleHA6InJlZCJ9LHIuaXNBcnJheT1kLHIuaXNCb29sZWFuPW0sci5pc051bGw9ZyxyLmlzTnVsbE9yVW5kZWZpbmVkPXYsci5pc051bWJlcj15LHIuaXNTdHJpbmc9YixyLmlzU3ltYm9sPXgsci5pc1VuZGVmaW5lZD1fLHIuaXNSZWdFeHA9dyxyLmlzT2JqZWN0PU0sci5pc0RhdGU9ayxyLmlzRXJyb3I9QSxyLmlzRnVuY3Rpb249VCxyLmlzUHJpbWl0aXZlPUUsci5pc0J1ZmZlcj10KCIuL3N1cHBvcnQvaXNCdWZmZXIiKTt2YXIgaj1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO3IubG9nPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIiVzIC0gJXMiLHooKSxyLmZvcm1hdC5hcHBseShyLGFyZ3VtZW50cykpfSxyLmluaGVyaXRzPXQoImluaGVyaXRzIiksci5fZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fCFNKGUpKXJldHVybiB0O2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxuPXIubGVuZ3RoO24tLTspdFtyW25dXT1lW3Jbbl1dO3JldHVybiB0fX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vc3VwcG9ydC9pc0J1ZmZlciI6NjYsX3Byb2Nlc3M6NTksaW5oZXJpdHM6NTd9XSw2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybltNYXRoLm1pbih0WzBdLHRbMV0pLE1hdGgubWF4KHRbMF0sdFsxXSldfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdC5tYXAobikuc29ydChpKX1mdW5jdGlvbiBhKHQsZSxyKXtyZXR1cm4gZSBpbiB0P3RbZV06cn1mdW5jdGlvbiBzKHQsZSxyKXtBcnJheS5pc0FycmF5KGUpPyhyPXJ8fHt9LGU9ZXx8W10pOihyPWV8fHt9LGU9W10pO3ZhciBuPSEhYShyLCJkZWxhdW5heSIsITApLGk9ISFhKHIsImludGVyaW9yIiwhMCkscz0hIWEociwiZXh0ZXJpb3IiLCEwKSxmPSEhYShyLCJpbmZpbml0eSIsITEpO2lmKCFpJiYhc3x8MD09PXQubGVuZ3RoKXJldHVybltdO3ZhciBwPWwodCxlKTtpZihufHxpIT09c3x8Zil7Zm9yKHZhciBkPXUodC5sZW5ndGgsbyhlKSksbT0wO208cC5sZW5ndGg7KyttKXt2YXIgZz1wW21dO2QuYWRkVHJpYW5nbGUoZ1swXSxnWzFdLGdbMl0pfXJldHVybiBuJiZjKHQsZCkscz9pP2Y/aChkLDAsZik6ZC5jZWxscygpOmgoZCwxLGYpOmgoZCwtMSl9cmV0dXJuIHB9dmFyIGw9dCgiLi9saWIvbW9ub3RvbmUiKSx1PXQoIi4vbGliL3RyaWFuZ3VsYXRpb24iKSxjPXQoIi4vbGliL2RlbGF1bmF5IiksaD10KCIuL2xpYi9maWx0ZXIiKTtlLmV4cG9ydHM9c30seyIuL2xpYi9kZWxhdW5heSI6NjksIi4vbGliL2ZpbHRlciI6NzAsIi4vbGliL21vbm90b25lIjo3MSwiLi9saWIvdHJpYW5ndWxhdGlvbiI6NzJ9XSw2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxhKXt2YXIgcz1lLm9wcG9zaXRlKG4saSk7aWYoISgwPnMpKXtpZihuPmkpe3ZhciBsPW47bj1pLGk9bCxsPWEsYT1zLHM9bH1lLmlzQ29uc3RyYWludChuLGkpfHxvKHRbbl0sdFtpXSx0W2FdLHRbc10pPDAmJnIucHVzaChuLGkpfX1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPVtdLGk9dC5sZW5ndGgsYT1lLnN0YXJzLHM9MDtpPnM7KytzKWZvcih2YXIgbD1hW3NdLHU9MTt1PGwubGVuZ3RoO3UrPTIpe3ZhciBjPWxbdV07aWYoIShzPmN8fGUuaXNDb25zdHJhaW50KHMsYykpKXtmb3IodmFyIGg9bFt1LTFdLGY9LTEscD0xO3A8bC5sZW5ndGg7cCs9MilpZihsW3AtMV09PT1jKXtmPWxbcF07YnJlYWt9MD5mfHxvKHRbc10sdFtjXSx0W2hdLHRbZl0pPDAmJnIucHVzaChzLGMpfX1mb3IoO3IubGVuZ3RoPjA7KXtmb3IodmFyIGM9ci5wb3AoKSxzPXIucG9wKCksaD0tMSxmPS0xLGw9YVtzXSxkPTE7ZDxsLmxlbmd0aDtkKz0yKXt2YXIgbT1sW2QtMV0sZz1sW2RdO209PT1jP2Y9ZzpnPT09YyYmKGg9bSl9MD5ofHwwPmZ8fG8odFtzXSx0W2NdLHRbaF0sdFtmXSk+PTB8fChlLmZsaXAocyxjKSxuKHQsZSxyLGgscyxmKSxuKHQsZSxyLHMsZixoKSxuKHQsZSxyLGYsYyxoKSxuKHQsZSxyLGMsaCxmKSl9fXZhciBvPXQoInJvYnVzdC1pbi1zcGhlcmUiKVs0XTt0KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpO2UuZXhwb3J0cz1pfSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjo3Mywicm9idXN0LWluLXNwaGVyZSI6NzR9XSw3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxvLGEpe3RoaXMuY2VsbHM9dCx0aGlzLm5laWdoYm9yPWUsdGhpcy5mbGFncz1uLHRoaXMuY29uc3RyYWludD1yLHRoaXMuYWN0aXZlPWksdGhpcy5uZXh0PW8sdGhpcy5ib3VuZGFyeT1hfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV18fHRbMl0tZVsyXX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPXQuY2VsbHMoKSxvPXIubGVuZ3RoLGE9MDtvPmE7KythKXt2YXIgcz1yW2FdLGw9c1swXSx1PXNbMV0sYz1zWzJdO2M+dT9sPnUmJihzWzBdPXUsc1sxXT1jLHNbMl09bCk6bD5jJiYoc1swXT1jLHNbMV09bCxzWzJdPXUpfXIuc29ydChpKTtmb3IodmFyIGg9bmV3IEFycmF5KG8pLGE9MDthPGgubGVuZ3RoOysrYSloW2FdPTA7dmFyIGY9W10scD1bXSxkPW5ldyBBcnJheSgzKm8pLG09bmV3IEFycmF5KDMqbyksZz1udWxsO2UmJihnPVtdKTtmb3IodmFyIHY9bmV3IG4ocixkLG0saCxmLHAsZyksYT0wO28+YTsrK2EpZm9yKHZhciBzPXJbYV0seT0wOzM+eTsrK3kpe3ZhciBsPXNbeV0sdT1zWyh5KzEpJTNdLGI9ZFszKmEreV09di5sb2NhdGUodSxsLHQub3Bwb3NpdGUodSxsKSkseD1tWzMqYSt5XT10LmlzQ29uc3RyYWludChsLHUpOzA+YiYmKHg/cC5wdXNoKGEpOihmLnB1c2goYSksaFthXT0xKSxlJiZnLnB1c2goW3UsbCwtMV0pKX1yZXR1cm4gdn1mdW5jdGlvbiBhKHQsZSxyKXtmb3IodmFyIG49MCxpPTA7aTx0Lmxlbmd0aDsrK2kpZVtpXT09PXImJih0W24rK109dFtpXSk7cmV0dXJuIHQubGVuZ3RoPW4sdH1mdW5jdGlvbiBzKHQsZSxyKXt2YXIgbj1vKHQscik7aWYoMD09PWUpcmV0dXJuIHI/bi5jZWxscy5jb25jYXQobi5ib3VuZGFyeSk6bi5jZWxscztmb3IodmFyIGk9MSxzPW4uYWN0aXZlLGw9bi5uZXh0LHU9bi5mbGFncyxjPW4uY2VsbHMsaD1uLmNvbnN0cmFpbnQsZj1uLm5laWdoYm9yO3MubGVuZ3RoPjB8fGwubGVuZ3RoPjA7KXtmb3IoO3MubGVuZ3RoPjA7KXt2YXIgcD1zLnBvcCgpO2lmKHVbcF0hPT0taSl7dVtwXT1pO2Zvcih2YXIgZD0oY1twXSwwKTszPmQ7KytkKXt2YXIgbT1mWzMqcCtkXTttPj0wJiYwPT09dVttXSYmKGhbMypwK2RdP2wucHVzaChtKToocy5wdXNoKG0pLHVbbV09aSkpfX19dmFyIGc9bDtsPXMscz1nLGwubGVuZ3RoPTAsaT0taX12YXIgdj1hKGMsdSxlKTtyZXR1cm4gcj92LmNvbmNhdChuLmJvdW5kYXJ5KTp2fXZhciBsPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZS5leHBvcnRzPXM7dmFyIHU9bi5wcm90b3R5cGU7dS5sb2NhdGU9ZnVuY3Rpb24oKXt2YXIgdD1bMCwwLDBdO3JldHVybiBmdW5jdGlvbihlLHIsbil7dmFyIG89ZSxhPXIscz1uO3JldHVybiBuPnI/ZT5yJiYobz1yLGE9bixzPWUpOmU+biYmKG89bixhPWUscz1yKSwwPm8/LTE6KHRbMF09byx0WzFdPWEsdFsyXT1zLGwuZXEodGhpcy5jZWxscyx0LGkpKX19KCl9LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjczfV0sNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7CmZ1bmN0aW9uIG4odCxlLHIsbixpKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLmlkeD1yLHRoaXMubG93ZXJJZHM9bix0aGlzLnVwcGVySWRzPWl9ZnVuY3Rpb24gaSh0LGUscixuKXt0aGlzLmE9dCx0aGlzLmI9ZSx0aGlzLnR5cGU9cix0aGlzLmlkeD1ufWZ1bmN0aW9uIG8odCxlKXt2YXIgcj10LmFbMF0tZS5hWzBdfHx0LmFbMV0tZS5hWzFdfHx0LnR5cGUtZS50eXBlO3JldHVybiByP3I6dC50eXBlIT09ZCYmKHI9cCh0LmEsdC5iLGUuYikpP3I6dC5pZHgtZS5pZHh9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBwKHQuYSx0LmIsZSl9ZnVuY3Rpb24gcyh0LGUscixuLGkpe2Zvcih2YXIgbz1mLmx0KGUsbixhKSxzPWYuZ3QoZSxuLGEpLGw9bztzPmw7KytsKXtmb3IodmFyIHU9ZVtsXSxjPXUubG93ZXJJZHMsaD1jLmxlbmd0aDtoPjEmJnAocltjW2gtMl1dLHJbY1toLTFdXSxuKT4wOyl0LnB1c2goW2NbaC0xXSxjW2gtMl0saV0pLGgtPTE7Yy5sZW5ndGg9aCxjLnB1c2goaSk7Zm9yKHZhciBkPXUudXBwZXJJZHMsaD1kLmxlbmd0aDtoPjEmJnAocltkW2gtMl1dLHJbZFtoLTFdXSxuKTwwOyl0LnB1c2goW2RbaC0yXSxkW2gtMV0saV0pLGgtPTE7ZC5sZW5ndGg9aCxkLnB1c2goaSl9fWZ1bmN0aW9uIGwodCxlKXt2YXIgcjtyZXR1cm4ocj10LmFbMF08ZS5hWzBdP3AodC5hLHQuYixlLmEpOnAoZS5iLGUuYSx0LmEpKT9yOihyPWUuYlswXTx0LmJbMF0/cCh0LmEsdC5iLGUuYik6cChlLmIsZS5hLHQuYikscnx8dC5pZHgtZS5pZHgpfWZ1bmN0aW9uIHUodCxlLHIpe3ZhciBpPWYubGUodCxyLGwpLG89dFtpXSxhPW8udXBwZXJJZHMscz1hW2EubGVuZ3RoLTFdO28udXBwZXJJZHM9W3NdLHQuc3BsaWNlKGkrMSwwLG5ldyBuKHIuYSxyLmIsci5pZHgsW3NdLGEpKX1mdW5jdGlvbiBjKHQsZSxyKXt2YXIgbj1yLmE7ci5hPXIuYixyLmI9bjt2YXIgaT1mLmVxKHQscixsKSxvPXRbaV0sYT10W2ktMV07YS51cHBlcklkcz1vLnVwcGVySWRzLHQuc3BsaWNlKGksMSl9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxhPWUubGVuZ3RoLGw9W10saD0wO3I+aDsrK2gpbC5wdXNoKG5ldyBpKHRbaF0sbnVsbCxkLGgpKTtmb3IodmFyIGg9MDthPmg7KytoKXt2YXIgZj1lW2hdLHA9dFtmWzBdXSx2PXRbZlsxXV07cFswXTx2WzBdP2wucHVzaChuZXcgaShwLHYsZyxoKSxuZXcgaSh2LHAsbSxoKSk6cFswXT52WzBdJiZsLnB1c2gobmV3IGkodixwLGcsaCksbmV3IGkocCx2LG0saCkpfWwuc29ydChvKTtmb3IodmFyIHk9bFswXS5hWzBdLSgxK01hdGguYWJzKGxbMF0uYVswXSkpKk1hdGgucG93KDIsLTUyKSxiPVtuZXcgbihbeSwxXSxbeSwwXSwtMSxbXSxbXSxbXSxbXSldLHg9W10saD0wLF89bC5sZW5ndGg7Xz5oOysraCl7dmFyIHc9bFtoXSxNPXcudHlwZTtNPT09ZD9zKHgsYix0LHcuYSx3LmlkeCk6TT09PWc/dShiLHQsdyk6YyhiLHQsdyl9cmV0dXJuIHh9dmFyIGY9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxwPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdLGQ9MCxtPTEsZz0yO2UuZXhwb3J0cz1ofSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjo3Mywicm9idXN0LW9yaWVudGF0aW9uIjo0NjJ9XSw3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy5zdGFycz10LHRoaXMuZWRnZXM9ZX1mdW5jdGlvbiBpKHQsZSxyKXtmb3IodmFyIG49MSxpPXQubGVuZ3RoO2k+bjtuKz0yKWlmKHRbbi0xXT09PWUmJnRbbl09PT1yKXJldHVybiB0W24tMV09dFtpLTJdLHRbbl09dFtpLTFdLHZvaWQodC5sZW5ndGg9aS0yKX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxpPTA7dD5pOysraSlyW2ldPVtdO3JldHVybiBuZXcgbihyLGUpfXZhciBhPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZS5leHBvcnRzPW87dmFyIHM9bi5wcm90b3R5cGU7cy5pc0NvbnN0cmFpbnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfXZhciBlPVswLDBdO3JldHVybiBmdW5jdGlvbihyLG4pe3JldHVybiBlWzBdPU1hdGgubWluKHIsbiksZVsxXT1NYXRoLm1heChyLG4pLGEuZXEodGhpcy5lZGdlcyxlLHQpPj0wfX0oKSxzLnJlbW92ZVRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnN0YXJzO2koblt0XSxlLHIpLGkobltlXSxyLHQpLGkobltyXSx0LGUpfSxzLmFkZFRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnN0YXJzO25bdF0ucHVzaChlLHIpLG5bZV0ucHVzaChyLHQpLG5bcl0ucHVzaCh0LGUpfSxzLm9wcG9zaXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuc3RhcnNbZV0sbj0xLGk9ci5sZW5ndGg7aT5uO24rPTIpaWYocltuXT09PXQpcmV0dXJuIHJbbi0xXTtyZXR1cm4tMX0scy5mbGlwPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5vcHBvc2l0ZSh0LGUpLG49dGhpcy5vcHBvc2l0ZShlLHQpO3RoaXMucmVtb3ZlVHJpYW5nbGUodCxlLHIpLHRoaXMucmVtb3ZlVHJpYW5nbGUoZSx0LG4pLHRoaXMuYWRkVHJpYW5nbGUodCxuLHIpLHRoaXMuYWRkVHJpYW5nbGUoZSxyLG4pfSxzLmVkZ2VzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuc3RhcnMsZT1bXSxyPTAsbj10Lmxlbmd0aDtuPnI7KytyKWZvcih2YXIgaT10W3JdLG89MCxhPWkubGVuZ3RoO2E+bztvKz0yKWUucHVzaChbaVtvXSxpW28rMV1dKTtyZXR1cm4gZX0scy5jZWxscz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN0YXJzLGU9W10scj0wLG49dC5sZW5ndGg7bj5yOysrcilmb3IodmFyIGk9dFtyXSxvPTAsYT1pLmxlbmd0aDthPm87bys9Mil7dmFyIHM9aVtvXSxsPWlbbysxXTtyPE1hdGgubWluKHMsbCkmJmUucHVzaChbcixzLGxdKX1yZXR1cm4gZX19LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjczfV0sNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe3ZhciBvPVsiZnVuY3Rpb24gIix0LCIoYSxsLGgsIixuLmpvaW4oIiwiKSwiKXsiLGk/IiI6InZhciBpPSIscj8ibC0xIjoiaCsxIiwiO3doaWxlKGw8PWgpe3ZhciBtPShsK2gpPj4+MSx4PWFbbV0iXTtyZXR1cm4gaT9lLmluZGV4T2YoImMiKTwwP28ucHVzaCgiO2lmKHg9PT15KXtyZXR1cm4gbX1lbHNlIGlmKHg8PXkpeyIpOm8ucHVzaCgiO3ZhciBwPWMoeCx5KTtpZihwPT09MCl7cmV0dXJuIG19ZWxzZSBpZihwPD0wKXsiKTpvLnB1c2goIjtpZigiLGUsIil7aT1tOyIpLHI/by5wdXNoKCJsPW0rMX1lbHNle2g9bS0xfSIpOm8ucHVzaCgiaD1tLTF9ZWxzZXtsPW0rMX0iKSxvLnB1c2goIn0iKSxpP28ucHVzaCgicmV0dXJuIC0xfTsiKTpvLnB1c2goInJldHVybiBpfTsiKSxvLmpvaW4oIiIpfWZ1bmN0aW9uIGkodCxlLHIsaSl7dmFyIG89bmV3IEZ1bmN0aW9uKFtuKCJBIiwieCIrdCsieSIsZSxbInkiXSxpKSxuKCJQIiwiYyh4LHkpIit0KyIwIixlLFsieSIsImMiXSxpKSwiZnVuY3Rpb24gZGlzcGF0Y2hCc2VhcmNoIixyLCIoYSx5LGMsbCxoKXtpZih0eXBlb2YoYyk9PT0nZnVuY3Rpb24nKXtyZXR1cm4gUChhLChsPT09dm9pZCAwKT8wOmx8MCwoaD09PXZvaWQgMCk/YS5sZW5ndGgtMTpofDAseSxjKX1lbHNle3JldHVybiBBKGEsKGM9PT12b2lkIDApPzA6Y3wwLChsPT09dm9pZCAwKT9hLmxlbmd0aC0xOmx8MCx5KX19cmV0dXJuIGRpc3BhdGNoQnNlYXJjaCIscl0uam9pbigiIikpO3JldHVybiBvKCl9ZS5leHBvcnRzPXtnZTppKCI+PSIsITEsIkdFIiksZ3Q6aSgiPiIsITEsIkdUIiksbHQ6aSgiPCIsITAsIkxUIiksbGU6aSgiPD0iLCEwLCJMRSIpLGVxOmkoIi0iLCEwLCJFUSIsITApfX0se31dLDc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoLTEpLG49MTtuPHQubGVuZ3RoOysrbilmb3IodmFyIGk9cltuLTFdPW5ldyBBcnJheSh0Lmxlbmd0aC0xKSxvPTAsYT0wO288dC5sZW5ndGg7KytvKW8hPT1lJiYoaVthKytdPXRbbl1bb10pO3JldHVybiByfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7dD5yOysrcil7ZVtyXT1uZXcgQXJyYXkodCk7Zm9yKHZhciBuPTA7dD5uOysrbillW3JdW25dPVsibSIsbiwiWyIsdC1yLTIsIl0iXS5qb2luKCIiKX1yZXR1cm4gZX1mdW5jdGlvbiBvKHQpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gdFswXTtpZigyPT09dC5sZW5ndGgpcmV0dXJuWyJzdW0oIix0WzBdLCIsIix0WzFdLCIpIl0uam9pbigiIik7dmFyIGU9dC5sZW5ndGg+PjE7cmV0dXJuWyJzdW0oIixvKHQuc2xpY2UoMCxlKSksIiwiLG8odC5zbGljZShlKSksIikiXS5qb2luKCIiKX1mdW5jdGlvbiBhKHQsZSl7aWYoIm0iPT09dC5jaGFyQXQoMCkpe2lmKCJ3Ij09PWUuY2hhckF0KDApKXt2YXIgcj10LnNwbGl0KCJbIik7cmV0dXJuWyJ3IixlLnN1YnN0cigxKSwibSIsclswXS5zdWJzdHIoMSldLmpvaW4oIiIpfXJldHVyblsicHJvZCgiLHQsIiwiLGUsIikiXS5qb2luKCIiKX1yZXR1cm4gYShlLHQpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQmITA/Ii0iOiIifWZ1bmN0aW9uIGwodCl7aWYoMj09PXQubGVuZ3RoKXJldHVybltbImRpZmYoIixhKHRbMF1bMF0sdFsxXVsxXSksIiwiLGEodFsxXVswXSx0WzBdWzFdKSwiKSJdLmpvaW4oIiIpXTtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKWUucHVzaChbInNjYWxlKCIsbyhsKG4odCxyKSkpLCIsIixzKHIpLHRbMF1bcl0sIikiXS5qb2luKCIiKSk7cmV0dXJuIGV9ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcj1bXSxuPTA7ZS0yPm47KytuKXIucHVzaChbInByb2QobSIsdCwiWyIsbiwiXSxtIix0LCJbIixuLCJdKSJdLmpvaW4oIiIpKTtyZXR1cm4gbyhyKX1mdW5jdGlvbiBjKHQpe2Zvcih2YXIgZT1bXSxyPVtdLGE9aSh0KSxzPTA7dD5zOysrcylhWzBdW3NdPSIxIixhW3QtMV1bc109InciK3M7Zm9yKHZhciBzPTA7dD5zOysrcykwPT09KDEmcyk/ZS5wdXNoLmFwcGx5KGUsbChuKGEscykpKTpyLnB1c2guYXBwbHkocixsKG4oYSxzKSkpO2Zvcih2YXIgYz1vKGUpLGg9byhyKSxmPSJleGFjdEluU3BoZXJlIit0LHA9W10scz0wO3Q+czsrK3MpcC5wdXNoKCJtIitzKTtmb3IodmFyIGQ9WyJmdW5jdGlvbiAiLGYsIigiLHAuam9pbigpLCIpeyJdLHM9MDt0PnM7KytzKXtkLnB1c2goInZhciB3IixzLCI9Iix1KHMsdCksIjsiKTtmb3IodmFyIG09MDt0Pm07KyttKW0hPT1zJiZkLnB1c2goInZhciB3IixzLCJtIixtLCI9c2NhbGUodyIscywiLG0iLG0sIlswXSk7Iil9ZC5wdXNoKCJ2YXIgcD0iLGMsIixuPSIsaCwiLGQ9ZGlmZihwLG4pO3JldHVybiBkW2QubGVuZ3RoLTFdO31yZXR1cm4gIixmKTt2YXIgeD1uZXcgRnVuY3Rpb24oInN1bSIsImRpZmYiLCJwcm9kIiwic2NhbGUiLGQuam9pbigiIikpO3JldHVybiB4KHYseSxnLGIpfWZ1bmN0aW9uIGgoKXtyZXR1cm4gMH1mdW5jdGlvbiBmKCl7cmV0dXJuIDB9ZnVuY3Rpb24gcCgpe3JldHVybiAwfWZ1bmN0aW9uIGQodCl7dmFyIGU9X1t0Lmxlbmd0aF07cmV0dXJuIGV8fChlPV9bdC5sZW5ndGhdPWModC5sZW5ndGgpKSxlLmFwcGx5KHZvaWQgMCx0KX1mdW5jdGlvbiBtKCl7Zm9yKDtfLmxlbmd0aDw9eDspXy5wdXNoKGMoXy5sZW5ndGgpKTtmb3IodmFyIHQ9W10scj1bInNsb3ciXSxuPTA7eD49bjsrK24pdC5wdXNoKCJhIituKSxyLnB1c2goIm8iK24pO2Zvcih2YXIgaT1bImZ1bmN0aW9uIHRlc3RJblNwaGVyZSgiLHQuam9pbigpLCIpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6Y2FzZSAxOnJldHVybiAwOyJdLG49Mjt4Pj1uOysrbilpLnB1c2goImNhc2UgIixuLCI6cmV0dXJuIG8iLG4sIigiLHQuc2xpY2UoMCxuKS5qb2luKCksIik7Iik7aS5wdXNoKCJ9dmFyIHM9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDsrK2kpe3NbaV09YXJndW1lbnRzW2ldfTtyZXR1cm4gc2xvdyhzKTt9cmV0dXJuIHRlc3RJblNwaGVyZSIpLHIucHVzaChpLmpvaW4oIiIpKTt2YXIgbz1GdW5jdGlvbi5hcHBseSh2b2lkIDAscik7ZS5leHBvcnRzPW8uYXBwbHkodm9pZCAwLFtkXS5jb25jYXQoXykpO2Zvcih2YXIgbj0wO3g+PW47KytuKWUuZXhwb3J0c1tuXT1fW25dfXZhciBnPXQoInR3by1wcm9kdWN0Iiksdj10KCJyb2J1c3Qtc3VtIikseT10KCJyb2J1c3Qtc3VidHJhY3QiKSxiPXQoInJvYnVzdC1zY2FsZSIpLHg9NixfPVtoLGYscF07bSgpfSx7InJvYnVzdC1zY2FsZSI6NDYzLCJyb2J1c3Qtc3VidHJhY3QiOjQ2NCwicm9idXN0LXN1bSI6NDY1LCJ0d28tcHJvZHVjdCI6NDc5fV0sNzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT14KHQpLHI9Yih5KGUpLHQpO3JldHVybiAwPnI/W2UsdyhlLDEvMCldOnI+MD9bdyhlLC0oMS8wKSksZV06W2UsZV19ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoOysrbil7dmFyIGk9ZVtuXSxvPXRbaVswXV0sYT10W2lbMV1dO3Jbbl09W01hdGgubWluKG9bMF0sYVswXSksTWF0aC5taW4ob1sxXSxhWzFdKSxNYXRoLm1heChvWzBdLGFbMF0pLE1hdGgubWF4KG9bMV0sYVsxXSldfXJldHVybiByfWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0wO3I8dC5sZW5ndGg7KytyKXt2YXIgbj10W3JdO2Vbcl09W25bMF0sblsxXSxuWzBdLG5bMV1dfXJldHVybiBlfWZ1bmN0aW9uIGEodCxlLHIpe3ZhciBuPVtdO3JldHVybiBnKHIsZnVuY3Rpb24ocixpKXt2YXIgbz1lW3JdLGE9ZVtpXTtpZihvWzBdIT09YVswXSYmb1swXSE9PWFbMV0mJm9bMV0hPT1hWzBdJiZvWzFdIT09YVsxXSl7dmFyIHM9dFtvWzBdXSxsPXRbb1sxXV0sdT10W2FbMF1dLGM9dFthWzFdXTt2KHMsbCx1LGMpJiZuLnB1c2goW3IsaV0pfX0pLG59ZnVuY3Rpb24gcyh0LGUscixuKXt2YXIgaT1bXTtyZXR1cm4gZyhyLG4sZnVuY3Rpb24ocixuKXt2YXIgbz1lW3JdO2lmKG9bMF0hPT1uJiZvWzFdIT09bil7dmFyIGE9dFtuXSxzPXRbb1swXV0sbD10W29bMV1dO3YocyxsLGEsYSkmJmkucHVzaChbcixuXSl9fSksaX1mdW5jdGlvbiBsKHQsZSxyLG4saSl7ZnVuY3Rpb24gbyhlKXtpZihlPj10Lmxlbmd0aClyZXR1cm4gYVtlLXQubGVuZ3RoXTt2YXIgcj10W2VdO3JldHVyblt5KHJbMF0pLHkoclsxXSldfWZvcih2YXIgYT1bXSxzPTA7czxyLmxlbmd0aDsrK3Mpe3ZhciBsPXJbc10sdT1sWzBdLGM9bFsxXSxoPWVbdV0sZj1lW2NdLHA9TShfKHRbaFswXV0pLF8odFtoWzFdXSksXyh0W2ZbMF1dKSxfKHRbZlsxXV0pKTtpZihwKXt2YXIgZD1hLmxlbmd0aCt0Lmxlbmd0aDthLnB1c2gocCksbi5wdXNoKFt1LGRdLFtjLGRdKX19bi5zb3J0KGZ1bmN0aW9uKHQsZSl7aWYodFswXSE9PWVbMF0pcmV0dXJuIHRbMF0tZVswXTt2YXIgcj1vKHRbMV0pLG49byhlWzFdKTtyZXR1cm4gYihyWzBdLG5bMF0pfHxiKHJbMV0sblsxXSl9KTtmb3IodmFyIHM9bi5sZW5ndGgtMTtzPj0wOy0tcyl7dmFyIG09bltzXSx1PW1bMF0sZz1lW3VdLHY9Z1swXSx4PWdbMV0sdz10W3ZdLGs9dFt4XTtpZigod1swXS1rWzBdfHx3WzFdLWtbMV0pPDApe3ZhciBBPXY7dj14LHg9QX1nWzBdPXY7dmFyIFQsRT1nWzFdPW1bMV07Zm9yKGkmJihUPWdbMl0pO3M+MCYmbltzLTFdWzBdPT09dTspe3ZhciBtPW5bLS1zXSxTPW1bMV07aT9lLnB1c2goW0UsUyxUXSk6ZS5wdXNoKFtFLFNdKSxFPVN9aT9lLnB1c2goW0UseCxUXSk6ZS5wdXNoKFtFLHhdKX1yZXR1cm4gYX1mdW5jdGlvbiB1KHQsZSxyKXtmb3IodmFyIGk9dC5sZW5ndGgrZS5sZW5ndGgsbz1uZXcgbShpKSxhPXIscz0wO3M8ZS5sZW5ndGg7KytzKXt2YXIgbD1lW3NdLHU9bihsWzBdKSxjPW4obFsxXSk7YS5wdXNoKFt1WzBdLGNbMF0sdVsxXSxjWzFdXSksdC5wdXNoKFt4KGxbMF0pLHgobFsxXSldKX1nKGEsZnVuY3Rpb24odCxlKXtvLmxpbmsodCxlKX0pO2Zvcih2YXIgaD0wLGY9ITAscD1uZXcgQXJyYXkoaSkscz0wO2k+czsrK3Mpe3ZhciBkPW8uZmluZChzKTtkPT09cz8ocFtzXT1oLHRbaCsrXT10W3NdKTooZj0hMSxwW3NdPS0xKX1pZih0Lmxlbmd0aD1oLGYpcmV0dXJuIG51bGw7Zm9yKHZhciBzPTA7aT5zOysrcylwW3NdPDAmJihwW3NdPXBbby5maW5kKHMpXSk7cmV0dXJuIHB9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXX1mdW5jdGlvbiBoKHQsZSl7dmFyIHI9dFswXS1lWzBdfHx0WzFdLWVbMV07cmV0dXJuIHI/cjp0WzJdPGVbMl0/LTE6dFsyXT5lWzJdPzE6MH1mdW5jdGlvbiBmKHQsZSxyKXtpZigwIT09dC5sZW5ndGgpe2lmKGUpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBpPXRbbl0sbz1lW2lbMF1dLGE9ZVtpWzFdXTtpWzBdPU1hdGgubWluKG8sYSksaVsxXT1NYXRoLm1heChvLGEpfWVsc2UgZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBpPXRbbl0sbz1pWzBdLGE9aVsxXTtpWzBdPU1hdGgubWluKG8sYSksaVsxXT1NYXRoLm1heChvLGEpfXI/dC5zb3J0KGgpOnQuc29ydChjKTtmb3IodmFyIHM9MSxuPTE7bjx0Lmxlbmd0aDsrK24pe3ZhciBsPXRbbi0xXSx1PXRbbl07KHVbMF0hPT1sWzBdfHx1WzFdIT09bFsxXXx8ciYmdVsyXSE9PWxbMl0pJiYodFtzKytdPXUpfXQubGVuZ3RoPXN9fWZ1bmN0aW9uIHAodCxlLHIpe3ZhciBuPWkodCxlKSxjPWEodCxlLG4pLGg9byh0KSxwPXModCxlLG4saCksZD1sKHQsZSxjLHAsciksbT11KHQsZCxoKTtyZXR1cm4gZihlLG0sciksbT8hMDpjLmxlbmd0aD4wfHxwLmxlbmd0aD4wfWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBuLGk9ITE7aWYocil7bj1lO2Zvcih2YXIgbz1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9MDthPGUubGVuZ3RoOysrYSl7dmFyIHM9ZVthXTtvW2FdPVtzWzBdLHNbMV0sclthXV19ZT1vfWZvcig7cCh0LGUsISFyKTspaT0hMDtpZihyJiZpKXtuLmxlbmd0aD0wLHIubGVuZ3RoPTA7Zm9yKHZhciBhPTA7YTxlLmxlbmd0aDsrK2Epe3ZhciBzPWVbYV07bi5wdXNoKFtzWzBdLHNbMV1dKSxyLnB1c2goc1syXSl9fXJldHVybiBpfWUuZXhwb3J0cz1kO3ZhciBtPXQoInVuaW9uLWZpbmQiKSxnPXQoImJveC1pbnRlcnNlY3QiKSx2PSh0KCJjb21wYXJlLWNlbGwiKSx0KCJyb2J1c3Qtc2VnbWVudC1pbnRlcnNlY3QiKSkseT10KCJiaWctcmF0IiksYj10KCJiaWctcmF0L2NtcCIpLHg9dCgiYmlnLXJhdC90by1mbG9hdCIpLF89dCgicmF0LXZlYyIpLHc9dCgibmV4dGFmdGVyIiksTT10KCIuL2xpYi9yYXQtc2VnLWludGVyc2VjdCIpfSx7Ii4vbGliL3JhdC1zZWctaW50ZXJzZWN0Ijo3NiwiYmlnLXJhdCI6ODAsImJpZy1yYXQvY21wIjo3OCwiYmlnLXJhdC90by1mbG9hdCI6OTMsImJveC1pbnRlcnNlY3QiOjk0LCJjb21wYXJlLWNlbGwiOjExMixuZXh0YWZ0ZXI6MTAyLCJyYXQtdmVjIjoxMDQsInJvYnVzdC1zZWdtZW50LWludGVyc2VjdCI6MTA3LCJ1bmlvbi1maW5kIjoxMDh9XSw3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIHMobyh0WzBdLGVbMV0pLG8odFsxXSxlWzBdKSl9ZnVuY3Rpb24gaSh0LGUscixpKXt2YXIgbz11KGUsdCkscz11KGksciksZj1uKG8scyk7aWYoMD09PWwoZikpcmV0dXJuIG51bGw7dmFyIHA9dSh0LHIpLGQ9bihzLHApLG09YShkLGYpO3JldHVybiBjKHQsaChvLG0pKX1lLmV4cG9ydHM9aTt2YXIgbz10KCJiaWctcmF0L211bCIpLGE9dCgiYmlnLXJhdC9kaXYiKSxzPXQoImJpZy1yYXQvc3ViIiksbD10KCJiaWctcmF0L3NpZ24iKSx1PXQoInJhdC12ZWMvc3ViIiksYz10KCJyYXQtdmVjL2FkZCIpLGg9dCgicmF0LXZlYy9tdWxzIik7dCgiYmlnLXJhdC90by1mbG9hdCIpfSx7ImJpZy1yYXQvZGl2Ijo3OSwiYmlnLXJhdC9tdWwiOjg5LCJiaWctcmF0L3NpZ24iOjkxLCJiaWctcmF0L3N1YiI6OTIsImJpZy1yYXQvdG8tZmxvYXQiOjkzLCJyYXQtdmVjL2FkZCI6MTAzLCJyYXQtdmVjL211bHMiOjEwNSwicmF0LXZlYy9zdWIiOjEwNn1dLDc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gaSh0WzBdLm11bChlWzFdKS5hZGQoZVswXS5tdWwodFsxXSkpLHRbMV0ubXVsKGVbMV0pKX12YXIgaT10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL3JhdGlvbmFsaXplIjo4N31dLDc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gdFswXS5tdWwoZVsxXSkuY21wKGVbMF0ubXVsKHRbMV0pKX1lLmV4cG9ydHM9bn0se31dLDc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gaSh0WzBdLm11bChlWzFdKSx0WzFdLm11bChlWzBdKSl9dmFyIGk9dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9bn0seyIuL2xpYi9yYXRpb25hbGl6ZSI6ODd9XSw4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoaSh0KSlyZXR1cm4gZT91KHQsbihlKSk6W3RbMF0uY2xvbmUoKSx0WzFdLmNsb25lKCldO3ZhciByLGMsaD0wO2lmKG8odCkpcj10LmNsb25lKCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHQpcj1zKHQpO2Vsc2V7aWYoMD09PXQpcmV0dXJuW2EoMCksYSgxKV07aWYodD09PU1hdGguZmxvb3IodCkpcj1hKHQpO2Vsc2V7Zm9yKDt0IT09TWF0aC5mbG9vcih0KTspdCo9TWF0aC5wb3coMiwyNTYpLGgtPTI1NjtyPWEodCl9fWlmKGkoZSkpci5tdWwoZVsxXSksYz1lWzBdLmNsb25lKCk7ZWxzZSBpZihvKGUpKWM9ZS5jbG9uZSgpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKWM9cyhlKTtlbHNlIGlmKGUpaWYoZT09PU1hdGguZmxvb3IoZSkpYz1hKGUpO2Vsc2V7Zm9yKDtlIT09TWF0aC5mbG9vcihlKTspZSo9TWF0aC5wb3coMiwyNTYpLGgrPTI1NjtjPWEoZSl9ZWxzZSBjPWEoMSk7cmV0dXJuIGg+MD9yPXIuc2hsbihoKTowPmgmJihjPWMuc2hsbigtaCkpLGwocixjKX12YXIgaT10KCIuL2lzLXJhdCIpLG89dCgiLi9saWIvaXMtYm4iKSxhPXQoIi4vbGliL251bS10by1ibiIpLHM9dCgiLi9saWIvc3RyLXRvLWJuIiksbD10KCIuL2xpYi9yYXRpb25hbGl6ZSIpLHU9dCgiLi9kaXYiKTtlLmV4cG9ydHM9bn0seyIuL2RpdiI6NzksIi4vaXMtcmF0Ijo4MSwiLi9saWIvaXMtYm4iOjg1LCIuL2xpYi9udW0tdG8tYm4iOjg2LCIuL2xpYi9yYXRpb25hbGl6ZSI6ODcsIi4vbGliL3N0ci10by1ibiI6ODh9XSw4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYyPT09dC5sZW5ndGgmJmkodFswXSkmJmkodFsxXSl9dmFyIGk9dCgiLi9saWIvaXMtYm4iKTtlLmV4cG9ydHM9bn0seyIuL2xpYi9pcy1ibiI6ODV9XSw4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0LmNtcChuZXcgaSgwKSl9dmFyIGk9dCgiYm4uanMiKTtlLmV4cG9ydHM9bn0seyJibi5qcyI6OTB9XSw4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQubGVuZ3RoLHI9dC53b3JkcyxuPTA7aWYoMT09PWUpbj1yWzBdO2Vsc2UgaWYoMj09PWUpbj1yWzBdKzY3MTA4ODY0KnJbMV07ZWxzZSBmb3IodmFyIG49MCxpPTA7ZT5pO2krKyl7dmFyIG89cltpXTtuKz1vKk1hdGgucG93KDY3MTA4ODY0LGkpfXJldHVybiB0LnNpZ24/LW46bn1lLmV4cG9ydHM9bn0se31dLDg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9byhpLmxvKHQpKTtpZigzMj5lKXJldHVybiBlO3ZhciByPW8oaS5oaSh0KSk7cmV0dXJuIHI+MjA/NTI6ciszMn12YXIgaT10KCJkb3VibGUtYml0cyIpLG89dCgiYml0LXR3aWRkbGUiKS5jb3VudFRyYWlsaW5nWmVyb3M7ZS5leHBvcnRzPW59LHsiYml0LXR3aWRkbGUiOjUxLCJkb3VibGUtYml0cyI6MTAxfV0sODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0JiZCb29sZWFuKHQud29yZHMpfXQoImJuLmpzIik7ZS5leHBvcnRzPW59LHsiYm4uanMiOjkwfV0sODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1vLmV4cG9uZW50KHQpO3JldHVybiA1Mj5lP25ldyBpKHQpOm5ldyBpKHQqTWF0aC5wb3coMiw1Mi1lKSkuc2hsbihlLTUyKX12YXIgaT10KCJibi5qcyIpLG89dCgiZG91YmxlLWJpdHMiKTtlLmV4cG9ydHM9bn0seyJibi5qcyI6OTAsImRvdWJsZS1iaXRzIjoxMDF9XSw4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9byh0KSxuPW8oZSk7aWYoMD09PXIpcmV0dXJuW2koMCksaSgxKV07aWYoMD09PW4pcmV0dXJuW2koMCksaSgwKV07MD5uJiYodD10Lm5lZygpLGU9ZS5uZWcoKSk7dmFyIGE9dC5nY2QoZSk7cmV0dXJuIGEuY21wbigxKT9bdC5kaXYoYSksZS5kaXYoYSldOlt0LGVdfXZhciBpPXQoIi4vbnVtLXRvLWJuIiksbz10KCIuL2JuLXNpZ24iKTtlLmV4cG9ydHM9bn0seyIuL2JuLXNpZ24iOjgyLCIuL251bS10by1ibiI6ODZ9XSw4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgaSh0KX12YXIgaT10KCJibi5qcyIpO2UuZXhwb3J0cz1ufSx7ImJuLmpzIjo5MH1dLDg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gaSh0WzBdLm11bChlWzBdKSx0WzFdLm11bChlWzFdKSl9dmFyIGk9dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9bn0seyIuL2xpYi9yYXRpb25hbGl6ZSI6ODd9XSw5MDpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKGV8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gbih0LGUpe3Quc3VwZXJfPWU7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyByLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9ZnVuY3Rpb24gaSh0LGUscil7cmV0dXJuIG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHQmJkFycmF5LmlzQXJyYXkodC53b3Jkcyk/dDoodGhpcy5zaWduPSExLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsImxlIiE9PWUmJiJiZSIhPT1lfHwocj1lLGU9MTApLHZvaWQobnVsbCE9PXQmJnRoaXMuX2luaXQodHx8MCxlfHwxMCxyfHwiYmUiKSkpfWZ1bmN0aW9uIG8odCxlLHIpe2Zvcih2YXIgbj0wLGk9TWF0aC5taW4odC5sZW5ndGgsciksbz1lO2k+bztvKyspe3ZhciBhPXQuY2hhckNvZGVBdChvKS00ODtuPDw9NCxufD1hPj00OSYmNTQ+PWE/YS00OSsxMDphPj0xNyYmMjI+PWE/YS0xNysxMDoxNSZhfXJldHVybiBufWZ1bmN0aW9uIGEodCxlLHIsbil7Zm9yKHZhciBpPTAsbz1NYXRoLm1pbih0Lmxlbmd0aCxyKSxhPWU7bz5hO2ErKyl7dmFyIHM9dC5jaGFyQ29kZUF0KGEpLTQ4O2kqPW4saSs9cz49NDk/cy00OSsxMDpzPj0xNz9zLTE3KzEwOnN9cmV0dXJuIGl9ZnVuY3Rpb24gcyh0LGUpe3RoaXMubmFtZT10LHRoaXMucD1uZXcgaShlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgaSgxKS5pc2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBsKCl7cy5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIHUoKXtzLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gYygpe3MuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBoKCl7cy5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIGYodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT1pLl9wcmltZSh0KTt0aGlzLm09ZS5wLHRoaXMucHJpbWU9ZX1lbHNlIHRoaXMubT10LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBwKHQpe2YuY2FsbCh0aGlzLHQpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBpKDEpLmlzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludi5zaWduPSEwLHRoaXMubWludj10aGlzLm1pbnYubW9kKHRoaXMucil9Im9iamVjdCI9PXR5cGVvZiB0P3QuZXhwb3J0cz1pOmUuQk49aSxpLkJOPWksaS53b3JkU2l6ZT0yNixpLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0LGUsbil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHQsZSxuKTtpZigib2JqZWN0Ij09dHlwZW9mIHQpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh0LGUsbik7ImhleCI9PT1lJiYoZT0xNikscihlPT09KDB8ZSkmJmU+PTImJjM2Pj1lKSx0PXQudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIik7dmFyIGk9MDsiLSI9PT10WzBdJiZpKyssMTY9PT1lP3RoaXMuX3BhcnNlSGV4KHQsaSk6dGhpcy5fcGFyc2VCYXNlKHQsZSxpKSwiLSI9PT10WzBdJiYodGhpcy5zaWduPSEwKSx0aGlzLnN0cmlwKCksImxlIj09PW4mJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxlLG4pfSxpLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih0LGUsbil7MD50JiYodGhpcy5zaWduPSEwLHQ9LXQpLDY3MTA4ODY0PnQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJnRdLHRoaXMubGVuZ3RoPTEpOjQ1MDM1OTk2MjczNzA0OTY+dD8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKToocig5MDA3MTk5MjU0NzQwOTkyPnQpLHRoaXMud29yZHM9WzY3MTA4ODYzJnQsdC82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09biYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLGUsbil9LGkucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24odCxlLG4pe2lmKHIoIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aCksdC5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwodC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgaT0wO2k8dGhpcy5sZW5ndGg7aSsrKXRoaXMud29yZHNbaV09MDt2YXIgbz0wO2lmKCJiZSI9PT1uKWZvcih2YXIgaT10Lmxlbmd0aC0xLGE9MDtpPj0wO2ktPTMpe3ZhciBzPXRbaV18dFtpLTFdPDw4fHRbaS0yXTw8MTY7dGhpcy53b3Jkc1thXXw9czw8byY2NzEwODg2Myx0aGlzLndvcmRzW2ErMV09cz4+PjI2LW8mNjcxMDg4NjMsbys9MjQsbz49MjYmJihvLT0yNixhKyspfWVsc2UgaWYoImxlIj09PW4pZm9yKHZhciBpPTAsYT0wO2k8dC5sZW5ndGg7aSs9Myl7dmFyIHM9dFtpXXx0W2krMV08PDh8dFtpKzJdPDwxNjt0aGlzLndvcmRzW2FdfD1zPDxvJjY3MTA4ODYzLHRoaXMud29yZHNbYSsxXT1zPj4+MjYtbyY2NzEwODg2MyxvKz0yNCxvPj0yNiYmKG8tPTI2LGErKyl9cmV0dXJuIHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHQsZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh0Lmxlbmd0aC1lKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdGhpcy53b3Jkc1tyXT0wO2Zvcih2YXIgbj0wLHI9dC5sZW5ndGgtNixpPTA7cj49ZTtyLT02KXt2YXIgYT1vKHQscixyKzYpO3RoaXMud29yZHNbaV18PWE8PG4mNjcxMDg4NjMsdGhpcy53b3Jkc1tpKzFdfD1hPj4+MjYtbiY0MTk0MzAzLG4rPTI0LG4+PTI2JiYobi09MjYsaSsrKX1pZihyKzYhPT1lKXt2YXIgYT1vKHQsZSxyKzYpO3RoaXMud29yZHNbaV18PWE8PG4mNjcxMDg4NjMsdGhpcy53b3Jkc1tpKzFdfD1hPj4+MjYtbiY0MTk0MzAzfXRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih0LGUscil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIG49MCxpPTE7NjcxMDg4NjM+PWk7aSo9ZSluKys7bi0tLGk9aS9lfDA7Zm9yKHZhciBvPXQubGVuZ3RoLXIscz1vJW4sbD1NYXRoLm1pbihvLG8tcykrcix1PTAsYz1yO2w+YztjKz1uKXU9YSh0LGMsYytuLGUpLHRoaXMuaW11bG4oaSksdGhpcy53b3Jkc1swXSt1PDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPXU6dGhpcy5faWFkZG4odSk7aWYoMCE9PXMpe2Zvcih2YXIgaD0xLHU9YSh0LGMsdC5sZW5ndGgsZSksYz0wO3M+YztjKyspaCo9ZTt0aGlzLmltdWxuKGgpLHRoaXMud29yZHNbMF0rdTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz11OnRoaXMuX2lhZGRuKHUpfX0saS5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0KXt0LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aDtlKyspdC53b3Jkc1tlXT10aGlzLndvcmRzW2VdO3QubGVuZ3RoPXRoaXMubGVuZ3RoLHQuc2lnbj10aGlzLnNpZ24sdC5yZWQ9dGhpcy5yZWR9LGkucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGkobnVsbCk7cmV0dXJuIHRoaXMuY29weSh0KSx0fSxpLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LGkucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5zaWduPSExKSx0aGlzfSxpLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBkPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLG09WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZz1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtpLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0LGUpe2lmKHQ9dHx8MTAsMTY9PT10fHwiaGV4Ij09PXQpe2Zvcih2YXIgbj0iIixpPTAsZT0wfGV8fDEsbz0wLGE9MDthPHRoaXMubGVuZ3RoO2ErKyl7dmFyIHM9dGhpcy53b3Jkc1thXSxsPSgxNjc3NzIxNSYoczw8aXxvKSkudG9TdHJpbmcoMTYpO289cz4+PjI0LWkmMTY3NzcyMTUsbj0wIT09b3x8YSE9PXRoaXMubGVuZ3RoLTE/ZFs2LWwubGVuZ3RoXStsK246bCtuLGkrPTIsaT49MjYmJihpLT0yNixhLS0pfWZvcigwIT09byYmKG49by50b1N0cmluZygxNikrbik7bi5sZW5ndGglZSE9PTA7KW49IjAiK247cmV0dXJuIHRoaXMuc2lnbiYmKG49Ii0iK24pLG59aWYodD09PSgwfHQpJiZ0Pj0yJiYzNj49dCl7dmFyIHU9bVt0XSxjPWdbdF0sbj0iIixoPXRoaXMuY2xvbmUoKTtmb3IoaC5zaWduPSExOzAhPT1oLmNtcG4oMCk7KXt2YXIgZj1oLm1vZG4oYykudG9TdHJpbmcodCk7aD1oLmlkaXZuKGMpLG49MCE9PWguY21wbigwKT9kW3UtZi5sZW5ndGhdK2YrbjpmK259cmV0dXJuIDA9PT10aGlzLmNtcG4oMCkmJihuPSIwIituKSx0aGlzLnNpZ24mJihuPSItIituKSxufXIoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0saS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxpLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHQpe3RoaXMuc3RyaXAoKTt2YXIgZT1uZXcgQXJyYXkodGhpcy5ieXRlTGVuZ3RoKCkpO2VbMF09MDt2YXIgcj10aGlzLmNsb25lKCk7aWYoImxlIiE9PXQpZm9yKHZhciBuPTA7MCE9PXIuY21wbigwKTtuKyspe3ZhciBpPXIuYW5kbG4oMjU1KTtyLmlzaHJuKDgpLGVbZS5sZW5ndGgtbi0xXT1pfWVsc2UgZm9yKHZhciBuPTA7MCE9PXIuY21wbigwKTtuKyspe3ZhciBpPXIuYW5kbG4oMjU1KTtyLmlzaHJuKDgpLGVbbl09aX1yZXR1cm4gZX0sTWF0aC5jbHozMj9pLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKHQpe3JldHVybiAzMi1NYXRoLmNsejMyKHQpfTppLnByb3RvdHlwZS5fY291bnRCaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQscj0wO3JldHVybiBlPj00MDk2JiYocis9MTMsZT4+Pj0xMyksZT49NjQmJihyKz03LGU+Pj49NyksZT49OCYmKHIrPTQsZT4+Pj00KSxlPj0yJiYocis9MixlPj4+PTIpLHIrZX0saS5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKHQpe2lmKDA9PT10KXJldHVybiAyNjt2YXIgZT10LHI9MDtyZXR1cm4gMD09PSg4MTkxJmUpJiYocis9MTMsZT4+Pj0xMyksMD09PSgxMjcmZSkmJihyKz03LGU+Pj49NyksMD09PSgxNSZlKSYmKHIrPTQsZT4+Pj00KSwwPT09KDMmZSkmJihyKz0yLGU+Pj49MiksMD09PSgxJmUpJiZyKysscn0saS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHQ9MCxlPXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0sdD10aGlzLl9jb3VudEJpdHMoZSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt0fSxpLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKDA9PT10aGlzLmNtcG4oMCkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsZT0wO2U8dGhpcy5sZW5ndGg7ZSsrKXt2YXIgcj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW2VdKTtpZih0Kz1yLDI2IT09cilicmVha31yZXR1cm4gdH0saS5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0saS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuY21wbigwKSlyZXR1cm4gdGhpcy5jbG9uZSgpO3ZhciB0PXRoaXMuY2xvbmUoKTtyZXR1cm4gdC5zaWduPSF0aGlzLnNpZ24sdH0saS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHQpe2Zvcih0aGlzLnNpZ249dGhpcy5zaWdufHx0LnNpZ247dGhpcy5sZW5ndGg8dC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl0aGlzLndvcmRzW2VdPXRoaXMud29yZHNbZV18dC53b3Jkc1tlXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5vcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcih0KTp0LmNsb25lKCkuaW9yKHRoaXMpfSxpLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHQpe3RoaXMuc2lnbj10aGlzLnNpZ24mJnQuc2lnbjt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mdC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHQpOnQuY2xvbmUoKS5pYW5kKHRoaXMpfSxpLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3RoaXMuc2lnbj10aGlzLnNpZ258fHQuc2lnbjt2YXIgZSxyO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhlPXRoaXMscj10KTooZT10LHI9dGhpcyk7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dXnIud29yZHNbbl07aWYodGhpcyE9PWUpZm9yKDtuPGUubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPWUud29yZHNbbl07cmV0dXJuIHRoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcih0KTp0LmNsb25lKCkuaXhvcih0aGlzKX0saS5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LGUpe3IoIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTtmb3IodmFyIG49dC8yNnwwLGk9dCUyNjt0aGlzLmxlbmd0aDw9bjspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiBlP3RoaXMud29yZHNbbl09dGhpcy53b3Jkc1tuXXwxPDxpOnRoaXMud29yZHNbbl09dGhpcy53b3Jkc1tuXSZ+KDE8PGkpLHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0KXtpZih0aGlzLnNpZ24mJiF0LnNpZ24pe3RoaXMuc2lnbj0hMTt2YXIgZT10aGlzLmlzdWIodCk7cmV0dXJuIHRoaXMuc2lnbj0hdGhpcy5zaWduLHRoaXMuX25vcm1TaWduKCl9aWYoIXRoaXMuc2lnbiYmdC5zaWduKXt0LnNpZ249ITE7dmFyIGU9dGhpcy5pc3ViKHQpO3JldHVybiB0LnNpZ249ITAsZS5fbm9ybVNpZ24oKX12YXIgcixuO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhyPXRoaXMsbj10KToocj10LG49dGhpcyk7Zm9yKHZhciBpPTAsbz0wO288bi5sZW5ndGg7bysrKXt2YXIgZT1yLndvcmRzW29dK24ud29yZHNbb10raTt0aGlzLndvcmRzW29dPTY3MTA4ODYzJmUsaT1lPj4+MjZ9Zm9yKDswIT09aSYmbzxyLmxlbmd0aDtvKyspe3ZhciBlPXIud29yZHNbb10raTt0aGlzLndvcmRzW29dPTY3MTA4ODYzJmUsaT1lPj4+MjZ9aWYodGhpcy5sZW5ndGg9ci5sZW5ndGgsMCE9PWkpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09aSx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYociE9PXRoaXMpZm9yKDtvPHIubGVuZ3RoO28rKyl0aGlzLndvcmRzW29dPXIud29yZHNbb107cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXtpZih0LnNpZ24mJiF0aGlzLnNpZ24pe3Quc2lnbj0hMTt2YXIgZT10aGlzLnN1Yih0KTtyZXR1cm4gdC5zaWduPSEwLGV9aWYoIXQuc2lnbiYmdGhpcy5zaWduKXt0aGlzLnNpZ249ITE7dmFyIGU9dC5zdWIodGhpcyk7cmV0dXJuIHRoaXMuc2lnbj0hMCxlfXJldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh0KTp0LmNsb25lKCkuaWFkZCh0aGlzKX0saS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih0KXtpZih0LnNpZ24pe3Quc2lnbj0hMTt2YXIgZT10aGlzLmlhZGQodCk7cmV0dXJuIHQuc2lnbj0hMCxlLl9ub3JtU2lnbigpfWlmKHRoaXMuc2lnbilyZXR1cm4gdGhpcy5zaWduPSExLHRoaXMuaWFkZCh0KSx0aGlzLnNpZ249ITAsdGhpcy5fbm9ybVNpZ24oKTt2YXIgcj10aGlzLmNtcCh0KTtpZigwPT09cilyZXR1cm4gdGhpcy5zaWduPSExLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7dmFyIG4saTtyPjA/KG49dGhpcyxpPXQpOihuPXQsaT10aGlzKTtmb3IodmFyIG89MCxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBlPW4ud29yZHNbYV0taS53b3Jkc1thXStvO289ZT4+MjYsdGhpcy53b3Jkc1thXT02NzEwODg2MyZlfWZvcig7MCE9PW8mJmE8bi5sZW5ndGg7YSsrKXt2YXIgZT1uLndvcmRzW2FdK287bz1lPj4yNix0aGlzLndvcmRzW2FdPTY3MTA4ODYzJmV9aWYoMD09PW8mJmE8bi5sZW5ndGgmJm4hPT10aGlzKWZvcig7YTxuLmxlbmd0aDthKyspdGhpcy53b3Jkc1thXT1uLndvcmRzW2FdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxhKSxuIT09dGhpcyYmKHRoaXMuc2lnbj0hMCksdGhpcy5zdHJpcCgpfSxpLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHQpfSxpLnByb3RvdHlwZS5fc21hbGxNdWxUbz1mdW5jdGlvbih0LGUpe2Uuc2lnbj10LnNpZ24hPT10aGlzLnNpZ24sZS5sZW5ndGg9dGhpcy5sZW5ndGgrdC5sZW5ndGg7Zm9yKHZhciByPTAsbj0wO248ZS5sZW5ndGgtMTtuKyspe2Zvcih2YXIgaT1yPj4+MjYsbz02NzEwODg2MyZyLGE9TWF0aC5taW4obix0Lmxlbmd0aC0xKSxzPU1hdGgubWF4KDAsbi10aGlzLmxlbmd0aCsxKTthPj1zO3MrKyl7dmFyIGw9bi1zLHU9MHx0aGlzLndvcmRzW2xdLGM9MHx0LndvcmRzW3NdLGg9dSpjLGY9NjcxMDg4NjMmaDtpPWkrKGgvNjcxMDg4NjR8MCl8MCxmPWYrb3wwLG89NjcxMDg4NjMmZixpPWkrKGY+Pj4yNil8MH1lLndvcmRzW25dPW8scj1pfXJldHVybiAwIT09cj9lLndvcmRzW25dPXI6ZS5sZW5ndGgtLSxlLnN0cmlwKCl9LGkucHJvdG90eXBlLl9iaWdNdWxUbz1mdW5jdGlvbih0LGUpe2Uuc2lnbj10LnNpZ24hPT10aGlzLnNpZ24sZS5sZW5ndGg9dGhpcy5sZW5ndGgrdC5sZW5ndGg7Zm9yKHZhciByPTAsbj0wLGk9MDtpPGUubGVuZ3RoLTE7aSsrKXt2YXIgbz1uO249MDtmb3IodmFyIGE9NjcxMDg4NjMmcixzPU1hdGgubWluKGksdC5sZW5ndGgtMSksbD1NYXRoLm1heCgwLGktdGhpcy5sZW5ndGgrMSk7cz49bDtsKyspe3ZhciB1PWktbCxjPTB8dGhpcy53b3Jkc1t1XSxoPTB8dC53b3Jkc1tsXSxmPWMqaCxwPTY3MTA4ODYzJmY7bz1vKyhmLzY3MTA4ODY0fDApfDAscD1wK2F8MCxhPTY3MTA4ODYzJnAsbz1vKyhwPj4+MjYpfDAsbis9bz4+PjI2LG8mPTY3MTA4ODYzfWUud29yZHNbaV09YSxyPW8sbz1ufXJldHVybiAwIT09cj9lLndvcmRzW2ldPXI6ZS5sZW5ndGgtLSxlLnN0cmlwKCl9LGkucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIHI9dGhpcy5sZW5ndGgrdC5sZW5ndGg8NjM/dGhpcy5fc21hbGxNdWxUbyh0LGUpOnRoaXMuX2JpZ011bFRvKHQsZSl9LGkucHJvdG90eXBlLm11bD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgaShudWxsKTtyZXR1cm4gZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrdC5sZW5ndGgpLHRoaXMubXVsVG8odCxlKX0saS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0KXtpZigwPT09dGhpcy5jbXBuKDApfHwwPT09dC5jbXBuKDApKXJldHVybiB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSx0aGlzO3ZhciBlPXRoaXMubGVuZ3RoLHI9dC5sZW5ndGg7dGhpcy5zaWduPXQuc2lnbiE9PXRoaXMuc2lnbix0aGlzLmxlbmd0aD10aGlzLmxlbmd0aCt0Lmxlbmd0aCx0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdPTA7Zm9yKHZhciBuPXRoaXMubGVuZ3RoLTI7bj49MDtuLS0pe2Zvcih2YXIgaT0wLG89MCxhPU1hdGgubWluKG4sci0xKSxzPU1hdGgubWF4KDAsbi1lKzEpO2E+PXM7cysrKXt2YXIgbD1uLXMsdT10aGlzLndvcmRzW2xdLGM9dC53b3Jkc1tzXSxoPXUqYyxmPTY3MTA4ODYzJmg7aSs9aC82NzEwODg2NHwwLGYrPW8sbz02NzEwODg2MyZmLGkrPWY+Pj4yNn10aGlzLndvcmRzW25dPW8sdGhpcy53b3Jkc1tuKzFdKz1pLGk9MH1mb3IodmFyIGk9MCxsPTE7bDx0aGlzLmxlbmd0aDtsKyspe3ZhciBwPXRoaXMud29yZHNbbF0raTt0aGlzLndvcmRzW2xdPTY3MTA4ODYzJnAsaT1wPj4+MjZ9cmV0dXJuIHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24odCl7cigibnVtYmVyIj09dHlwZW9mIHQpO2Zvcih2YXIgZT0wLG49MDtuPHRoaXMubGVuZ3RoO24rKyl7dmFyIGk9dGhpcy53b3Jkc1tuXSp0LG89KDY3MTA4ODYzJmkpKyg2NzEwODg2MyZlKTtlPj49MjYsZSs9aS82NzEwODg2NHwwLGUrPW8+Pj4yNix0aGlzLndvcmRzW25dPTY3MTA4ODYzJm99cmV0dXJuIDAhPT1lJiYodGhpcy53b3Jkc1tuXT1lLHRoaXMubGVuZ3RoKyspLHRoaXN9LGkucHJvdG90eXBlLm11bG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih0KX0saS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxpLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxpLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih0KXtyKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2LGk9NjcxMDg4NjM+Pj4yNi1lPDwyNi1lO2lmKDAhPT1lKXtmb3IodmFyIG89MCxhPTA7YTx0aGlzLmxlbmd0aDthKyspe3ZhciBzPXRoaXMud29yZHNbYV0maSxsPXRoaXMud29yZHNbYV0tczw8ZTt0aGlzLndvcmRzW2FdPWx8byxvPXM+Pj4yNi1lfW8mJih0aGlzLndvcmRzW2FdPW8sdGhpcy5sZW5ndGgrKyl9aWYoMCE9PW4pe2Zvcih2YXIgYT10aGlzLmxlbmd0aC0xO2E+PTA7YS0tKXRoaXMud29yZHNbYStuXT10aGlzLndvcmRzW2FdO2Zvcih2YXIgYT0wO24+YTthKyspdGhpcy53b3Jkc1thXT0wO3RoaXMubGVuZ3RoKz1ufXJldHVybiB0aGlzLnN0cmlwKCl9LGkucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHQsZSxuKXtyKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGk7aT1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixhPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxzPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byxsPW47aWYoaS09YSxpPU1hdGgubWF4KDAsaSksbCl7Zm9yKHZhciB1PTA7YT51O3UrKylsLndvcmRzW3VdPXRoaXMud29yZHNbdV07bC5sZW5ndGg9YX1pZigwPT09YSk7ZWxzZSBpZih0aGlzLmxlbmd0aD5hKXt0aGlzLmxlbmd0aC09YTtmb3IodmFyIHU9MDt1PHRoaXMubGVuZ3RoO3UrKyl0aGlzLndvcmRzW3VdPXRoaXMud29yZHNbdSthXX1lbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgYz0wLHU9dGhpcy5sZW5ndGgtMTt1Pj0wJiYoMCE9PWN8fHU+PWkpO3UtLSl7dmFyIGg9dGhpcy53b3Jkc1t1XTt0aGlzLndvcmRzW3VdPWM8PDI2LW98aD4+Pm8sYz1oJnN9cmV0dXJuIGwmJjAhPT1jJiYobC53b3Jkc1tsLmxlbmd0aCsrXT1jKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpLHRoaXN9LGkucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0saS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHQpfSxpLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih0KXtyKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2LGk9MTw8ZTtpZih0aGlzLmxlbmd0aDw9bilyZXR1cm4hMTt2YXIgbz10aGlzLndvcmRzW25dO3JldHVybiEhKG8maSl9LGkucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih0KXtyKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixuPSh0LWUpLzI2O2lmKHIoIXRoaXMuc2lnbiwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksMCE9PWUmJm4rKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihuLHRoaXMubGVuZ3RoKSwwIT09ZSl7dmFyIGk9NjcxMDg4NjNeNjcxMDg4NjM+Pj5lPDxlO3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24odCl9LGkucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKHQpe3JldHVybiByKCJudW1iZXIiPT10eXBlb2YgdCksMD50P3RoaXMuaXN1Ym4oLXQpOnRoaXMuc2lnbj8xPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08dD8odGhpcy53b3Jkc1swXT10LXRoaXMud29yZHNbMF0sdGhpcy5zaWduPSExLHRoaXMpOih0aGlzLnNpZ249ITEsdGhpcy5pc3Vibih0KSx0aGlzLnNpZ249ITAsdGhpcyk6dGhpcy5faWFkZG4odCl9LGkucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbih0KXt0aGlzLndvcmRzWzBdKz10O2Zvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZV0+PTY3MTA4ODY0O2UrKyl0aGlzLndvcmRzW2VdLT02NzEwODg2NCxlPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW2UrMV09MTp0aGlzLndvcmRzW2UrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsZSsxKSx0aGlzfSxpLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbih0KXtpZihyKCJudW1iZXIiPT10eXBlb2YgdCksMD50KXJldHVybiB0aGlzLmlhZGRuKC10KTtpZih0aGlzLnNpZ24pcmV0dXJuIHRoaXMuc2lnbj0hMSx0aGlzLmlhZGRuKHQpLHRoaXMuc2lnbj0hMCx0aGlzO3RoaXMud29yZHNbMF0tPXQ7Zm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tlXTwwO2UrKyl0aGlzLndvcmRzW2VdKz02NzEwODg2NCx0aGlzLndvcmRzW2UrMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKHQpfSxpLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4odCl9LGkucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaWduPSExLHRoaXN9LGkucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxpLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLG89dC5sZW5ndGgrbjtpZih0aGlzLndvcmRzLmxlbmd0aDxvKXtmb3IodmFyIGE9bmV3IEFycmF5KG8pLGk9MDtpPHRoaXMubGVuZ3RoO2krKylhW2ldPXRoaXMud29yZHNbaV07dGhpcy53b3Jkcz1hfWVsc2UgaT10aGlzLmxlbmd0aDtmb3IodGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsbyk7aTx0aGlzLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT0wO2Zvcih2YXIgcz0wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGw9dGhpcy53b3Jkc1tpK25dK3MsdT10LndvcmRzW2ldKmU7bC09NjcxMDg4NjMmdSxzPShsPj4yNiktKHUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tpK25dPTY3MTA4ODYzJmx9Zm9yKDtpPHRoaXMubGVuZ3RoLW47aSsrKXt2YXIgbD10aGlzLndvcmRzW2krbl0rcztzPWw+PjI2LHRoaXMud29yZHNbaStuXT02NzEwODg2MyZsfWlmKDA9PT1zKXJldHVybiB0aGlzLnN0cmlwKCk7cigtMT09PXMpLHM9MDtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krKyl7dmFyIGw9LXRoaXMud29yZHNbaV0rcztzPWw+PjI2LHRoaXMud29yZHNbaV09NjcxMDg4NjMmbH1yZXR1cm4gdGhpcy5zaWduPSEwLHRoaXMuc3RyaXAoKX0saS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxlbmd0aC10Lmxlbmd0aCxuPXRoaXMuY2xvbmUoKSxvPXQsYT1vLndvcmRzW28ubGVuZ3RoLTFdLHM9dGhpcy5fY291bnRCaXRzKGEpO3I9MjYtcywwIT09ciYmKG89by5zaGxuKHIpLG4uaXNobG4ociksYT1vLndvcmRzW28ubGVuZ3RoLTFdKTt2YXIgbCx1PW4ubGVuZ3RoLW8ubGVuZ3RoO2lmKCJtb2QiIT09ZSl7bD1uZXcgaShudWxsKSxsLmxlbmd0aD11KzEsbC53b3Jkcz1uZXcgQXJyYXkobC5sZW5ndGgpO2Zvcih2YXIgYz0wO2M8bC5sZW5ndGg7YysrKWwud29yZHNbY109MH12YXIgaD1uLmNsb25lKCkuX2lzaGxuc3VibXVsKG8sMSx1KTtoLnNpZ258fChuPWgsbCYmKGwud29yZHNbdV09MSkpO2Zvcih2YXIgZj11LTE7Zj49MDtmLS0pe3ZhciBwPTY3MTA4ODY0Km4ud29yZHNbby5sZW5ndGgrZl0rbi53b3Jkc1tvLmxlbmd0aCtmLTFdO2ZvcihwPU1hdGgubWluKHAvYXwwLDY3MTA4ODYzKSxuLl9pc2hsbnN1Ym11bChvLHAsZik7bi5zaWduOylwLS0sbi5zaWduPSExLG4uX2lzaGxuc3VibXVsKG8sMSxmKSwwIT09bi5jbXBuKDApJiYobi5zaWduPSFuLnNpZ24pO2wmJihsLndvcmRzW2ZdPXApfXJldHVybiBsJiZsLnN0cmlwKCksbi5zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXNocm4ocikse2RpdjpsP2w6bnVsbCxtb2Q6bn19LGkucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUpe2lmKHIoMCE9PXQuY21wbigwKSksdGhpcy5zaWduJiYhdC5zaWduKXt2YXIgbixvLGE9dGhpcy5uZWcoKS5kaXZtb2QodCxlKTtyZXR1cm4ibW9kIiE9PWUmJihuPWEuZGl2Lm5lZygpKSwiZGl2IiE9PWUmJihvPTA9PT1hLm1vZC5jbXBuKDApP2EubW9kOnQuc3ViKGEubW9kKSkse2RpdjpuLG1vZDpvfX1pZighdGhpcy5zaWduJiZ0LnNpZ24pe3ZhciBuLGE9dGhpcy5kaXZtb2QodC5uZWcoKSxlKTtyZXR1cm4ibW9kIiE9PWUmJihuPWEuZGl2Lm5lZygpKSx7ZGl2Om4sbW9kOmEubW9kfX1yZXR1cm4gdGhpcy5zaWduJiZ0LnNpZ24/dGhpcy5uZWcoKS5kaXZtb2QodC5uZWcoKSxlKTp0Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAodCk8MD97ZGl2Om5ldyBpKDApLG1vZDp0aGlzfToxPT09dC5sZW5ndGg/ImRpdiI9PT1lP3tkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PWU/e2RpdjpudWxsLG1vZDpuZXcgaSh0aGlzLm1vZG4odC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bmV3IGkodGhpcy5tb2RuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih0LGUpfSxpLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsImRpdiIpLmRpdn0saS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRpdm1vZCh0LCJtb2QiKS5tb2R9LGkucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGl2bW9kKHQpO2lmKDA9PT1lLm1vZC5jbXBuKDApKXJldHVybiBlLmRpdjt2YXIgcj1lLmRpdi5zaWduP2UubW9kLmlzdWIodCk6ZS5tb2Qsbj10LnNocm4oMSksaT10LmFuZGxuKDEpLG89ci5jbXAobik7cmV0dXJuIDA+b3x8MT09PWkmJjA9PT1vP2UuZGl2OmUuZGl2LnNpZ24/ZS5kaXYuaXN1Ym4oMSk6ZS5kaXYuaWFkZG4oMSl9LGkucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24odCl7cig2NzEwODg2Mz49dCk7Zm9yKHZhciBlPSgxPDwyNikldCxuPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKW49KGUqbit0aGlzLndvcmRzW2ldKSV0O3JldHVybiBufSxpLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih0KXtyKDY3MTA4ODYzPj10KTtmb3IodmFyIGU9MCxuPXRoaXMubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXRoaXMud29yZHNbbl0rNjcxMDg4NjQqZTt0aGlzLndvcmRzW25dPWkvdHwwLGU9aSV0fXJldHVybiB0aGlzLnN0cmlwKCl9LGkucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih0KX0saS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih0KXtyKCF0LnNpZ24pLHIoMCE9PXQuY21wbigwKSk7dmFyIGU9dGhpcyxuPXQuY2xvbmUoKTtlPWUuc2lnbj9lLm1vZCh0KTplLmNsb25lKCk7Zm9yKHZhciBvPW5ldyBpKDEpLGE9bmV3IGkoMCkscz1uZXcgaSgwKSxsPW5ldyBpKDEpLHU9MDtlLmlzRXZlbigpJiZuLmlzRXZlbigpOyllLmlzaHJuKDEpLG4uaXNocm4oMSksKyt1O2Zvcih2YXIgYz1uLmNsb25lKCksaD1lLmNsb25lKCk7MCE9PWUuY21wbigwKTspe2Zvcig7ZS5pc0V2ZW4oKTspZS5pc2hybigxKSxvLmlzRXZlbigpJiZhLmlzRXZlbigpPyhvLmlzaHJuKDEpLGEuaXNocm4oMSkpOihvLmlhZGQoYykuaXNocm4oMSksYS5pc3ViKGgpLmlzaHJuKDEpKTtmb3IoO24uaXNFdmVuKCk7KW4uaXNocm4oMSkscy5pc0V2ZW4oKSYmbC5pc0V2ZW4oKT8ocy5pc2hybigxKSxsLmlzaHJuKDEpKToocy5pYWRkKGMpLmlzaHJuKDEpLGwuaXN1YihoKS5pc2hybigxKSk7ZS5jbXAobik+PTA/KGUuaXN1YihuKSxvLmlzdWIocyksYS5pc3ViKGwpKToobi5pc3ViKGUpLHMuaXN1YihvKSxsLmlzdWIoYSkpfXJldHVybnthOnMsYjpsLGdjZDpuLmlzaGxuKHUpfX0saS5wcm90b3R5cGUuX2ludm1wPWZ1bmN0aW9uKHQpe3IoIXQuc2lnbikscigwIT09dC5jbXBuKDApKTt2YXIgZT10aGlzLG49dC5jbG9uZSgpO2U9ZS5zaWduP2UubW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIG89bmV3IGkoMSksYT1uZXcgaSgwKSxzPW4uY2xvbmUoKTtlLmNtcG4oMSk+MCYmbi5jbXBuKDEpPjA7KXtmb3IoO2UuaXNFdmVuKCk7KWUuaXNocm4oMSksby5pc0V2ZW4oKT9vLmlzaHJuKDEpOm8uaWFkZChzKS5pc2hybigxKTtmb3IoO24uaXNFdmVuKCk7KW4uaXNocm4oMSksYS5pc0V2ZW4oKT9hLmlzaHJuKDEpOmEuaWFkZChzKS5pc2hybigxKTtlLmNtcChuKT49MD8oZS5pc3ViKG4pLG8uaXN1YihhKSk6KG4uaXN1YihlKSxhLmlzdWIobykpfXJldHVybiAwPT09ZS5jbXBuKDEpP286YX0saS5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHQpe2lmKDA9PT10aGlzLmNtcG4oMCkpcmV0dXJuIHQuY2xvbmUoKTtpZigwPT09dC5jbXBuKDApKXJldHVybiB0aGlzLmNsb25lKCk7dmFyIGU9dGhpcy5jbG9uZSgpLHI9dC5jbG9uZSgpO2Uuc2lnbj0hMSxyLnNpZ249ITE7Zm9yKHZhciBuPTA7ZS5pc0V2ZW4oKSYmci5pc0V2ZW4oKTtuKyspZS5pc2hybigxKSxyLmlzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtlLmlzRXZlbigpOyllLmlzaHJuKDEpO2Zvcig7ci5pc0V2ZW4oKTspci5pc2hybigxKTt2YXIgaT1lLmNtcChyKTtpZigwPmkpe3ZhciBvPWU7ZT1yLHI9b31lbHNlIGlmKDA9PT1pfHwwPT09ci5jbXBuKDEpKWJyZWFrO2UuaXN1YihyKX1yZXR1cm4gci5pc2hsbihuKX0saS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lZ2NkKHQpLmEubW9kKHQpfSxpLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09PSgxJnRoaXMud29yZHNbMF0pfSxpLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT09KDEmdGhpcy53b3Jkc1swXSl9LGkucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndvcmRzWzBdJnR9LGkucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHQpe3IoIm51bWJlciI9PXR5cGVvZiB0KTt2YXIgZT10JTI2LG49KHQtZSkvMjYsaT0xPDxlO2lmKHRoaXMubGVuZ3RoPD1uKXtmb3IodmFyIG89dGhpcy5sZW5ndGg7bisxPm87bysrKXRoaXMud29yZHNbb109MDtyZXR1cm4gdGhpcy53b3Jkc1tuXXw9aSx0aGlzLmxlbmd0aD1uKzEsdGhpc31mb3IodmFyIGE9aSxvPW47MCE9PWEmJm88dGhpcy5sZW5ndGg7bysrKXt2YXIgcz10aGlzLndvcmRzW29dO3MrPWEsYT1zPj4+MjYscyY9NjcxMDg4NjMsdGhpcy53b3Jkc1tvXT1zfXJldHVybiAwIT09YSYmKHRoaXMud29yZHNbb109YSx0aGlzLmxlbmd0aCsrKSx0aGlzfSxpLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHQpe3ZhciBlPTA+dDtpZihlJiYodD0tdCksdGhpcy5zaWduJiYhZSlyZXR1cm4tMTtpZighdGhpcy5zaWduJiZlKXJldHVybiAxO3QmPTY3MTA4ODYzLHRoaXMuc3RyaXAoKTsKdmFyIHI7aWYodGhpcy5sZW5ndGg+MSlyPTE7ZWxzZXt2YXIgbj10aGlzLndvcmRzWzBdO3I9bj09PXQ/MDp0Pm4/LTE6MX1yZXR1cm4gdGhpcy5zaWduJiYocj0tcikscn0saS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHQpe2lmKHRoaXMuc2lnbiYmIXQuc2lnbilyZXR1cm4tMTtpZighdGhpcy5zaWduJiZ0LnNpZ24pcmV0dXJuIDE7dmFyIGU9dGhpcy51Y21wKHQpO3JldHVybiB0aGlzLnNpZ24/LWU6ZX0saS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbih0KXtpZih0aGlzLmxlbmd0aD50Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx0Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIGU9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPXRoaXMud29yZHNbcl0saT10LndvcmRzW3JdO2lmKG4hPT1pKXtpPm4/ZT0tMTpuPmkmJihlPTEpO2JyZWFrfX1yZXR1cm4gZX0saS5yZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmKHQpfSxpLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih0KXtyZXR1cm4gcighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxyKCF0aGlzLnNpZ24sInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksdC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHQpfSxpLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0saS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlZD10LHRoaXN9LGkucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiByKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHQpfSxpLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHIodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx0KX0saS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsdCl9LGkucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHQpfSxpLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx0KX0saS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsdCl9LGkucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih0KXtyZXR1cm4gcih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdCksdGhpcy5yZWQubXVsKHRoaXMsdCl9LGkucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHIodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLmltdWwodGhpcyx0KX0saS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LGkucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxpLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0saS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiByKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LGkucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiByKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxpLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHIodGhpcy5yZWQmJiF0LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx0KX07dmFyIHY9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtzLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGkobnVsbCk7cmV0dXJuIHQud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx0fSxzLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dDtkbyB0aGlzLnNwbGl0KHIsdGhpcy50bXApLHI9dGhpcy5pbXVsSyhyKSxyPXIuaWFkZCh0aGlzLnRtcCksZT1yLmJpdExlbmd0aCgpO3doaWxlKGU+dGhpcy5uKTt2YXIgbj1lPHRoaXMubj8tMTpyLnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PW4/KHIud29yZHNbMF09MCxyLmxlbmd0aD0xKTpuPjA/ci5pc3ViKHRoaXMucCk6ci5zdHJpcCgpLHJ9LHMucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7dC5pc2hybih0aGlzLm4sMCxlKX0scy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW11bCh0aGlzLmspfSxuKGwscyksbC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9NDE5NDMwMyxuPU1hdGgubWluKHQubGVuZ3RoLDkpLGk9MDtuPmk7aSsrKWUud29yZHNbaV09dC53b3Jkc1tpXTtpZihlLmxlbmd0aD1uLHQubGVuZ3RoPD05KXJldHVybiB0LndvcmRzWzBdPTAsdm9pZCh0Lmxlbmd0aD0xKTt2YXIgbz10LndvcmRzWzldO2Uud29yZHNbZS5sZW5ndGgrK109byZyO2Zvcih2YXIgaT0xMDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dC53b3Jkc1tpXTt0LndvcmRzW2ktMTBdPShhJnIpPDw0fG8+Pj4yMixvPWF9dC53b3Jkc1tpLTEwXT1vPj4+MjIsdC5sZW5ndGgtPTl9LGwucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3Qud29yZHNbdC5sZW5ndGhdPTAsdC53b3Jkc1t0Lmxlbmd0aCsxXT0wLHQubGVuZ3RoKz0yO2Zvcih2YXIgZSxyPTAsbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10LndvcmRzW25dO2U9NjQqaSxyKz05NzcqaSxlKz1yLzY3MTA4ODY0fDAsciY9NjcxMDg4NjMsdC53b3Jkc1tuXT1yLHI9ZX1yZXR1cm4gMD09PXQud29yZHNbdC5sZW5ndGgtMV0mJih0Lmxlbmd0aC0tLDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aC0tKSx0fSxuKHUscyksbihjLHMpLG4oaCxzKSxoLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPTE5KnQud29yZHNbcl0rZSxpPTY3MTA4ODYzJm47bj4+Pj0yNix0LndvcmRzW3JdPWksZT1ufXJldHVybiAwIT09ZSYmKHQud29yZHNbdC5sZW5ndGgrK109ZSksdH0saS5fcHJpbWU9ZnVuY3Rpb24geSh0KXtpZih2W3RdKXJldHVybiB2W3RdO3ZhciB5O2lmKCJrMjU2Ij09PXQpeT1uZXcgbDtlbHNlIGlmKCJwMjI0Ij09PXQpeT1uZXcgdTtlbHNlIGlmKCJwMTkyIj09PXQpeT1uZXcgYztlbHNle2lmKCJwMjU1MTkiIT09dCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit0KTt5PW5ldyBofXJldHVybiB2W3RdPXkseX0sZi5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24odCl7cighdC5zaWduLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHIodC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sZi5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odCxlKXtyKCF0LnNpZ24mJiFlLnNpZ24sInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikscih0LnJlZCYmdC5yZWQ9PT1lLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxmLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh0KS5fZm9yY2VSZWQodGhpcyk6dC5tb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LGYucHJvdG90eXBlLm5lZz1mdW5jdGlvbih0KXt2YXIgZT10LmNsb25lKCk7cmV0dXJuIGUuc2lnbj0hZS5zaWduLGUuaWFkZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sZi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciByPXQuYWRkKGUpO3JldHVybiByLmNtcCh0aGlzLm0pPj0wJiZyLmlzdWIodGhpcy5tKSxyLl9mb3JjZVJlZCh0aGlzKX0sZi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmlhZGQoZSk7cmV0dXJuIHIuY21wKHRoaXMubSk+PTAmJnIuaXN1Yih0aGlzLm0pLHJ9LGYucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LnN1YihlKTtyZXR1cm4gci5jbXBuKDApPDAmJnIuaWFkZCh0aGlzLm0pLHIuX2ZvcmNlUmVkKHRoaXMpfSxmLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciByPXQuaXN1YihlKTtyZXR1cm4gci5jbXBuKDApPDAmJnIuaWFkZCh0aGlzLm0pLHJ9LGYucHJvdG90eXBlLnNobD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkxKHQpLHRoaXMuaW1vZCh0LnNobG4oZSkpfSxmLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIodCxlKSx0aGlzLmltb2QodC5pbXVsKGUpKX0sZi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIodCxlKSx0aGlzLmltb2QodC5tdWwoZSkpfSxmLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltdWwodCx0KX0sZi5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bCh0LHQpfSxmLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHQpe2lmKDA9PT10LmNtcG4oMCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgZT10aGlzLm0uYW5kbG4oMyk7aWYocihlJTI9PT0xKSwzPT09ZSl7dmFyIG49dGhpcy5tLmFkZChuZXcgaSgxKSkuaXNocm4oMiksbz10aGlzLnBvdyh0LG4pO3JldHVybiBvfWZvcih2YXIgYT10aGlzLm0uc3VibigxKSxzPTA7MCE9PWEuY21wbigwKSYmMD09PWEuYW5kbG4oMSk7KXMrKyxhLmlzaHJuKDEpO3IoMCE9PWEuY21wbigwKSk7dmFyIGw9bmV3IGkoMSkudG9SZWQodGhpcyksdT1sLnJlZE5lZygpLGM9dGhpcy5tLnN1Ym4oMSkuaXNocm4oMSksaD10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKGg9bmV3IGkoMipoKmgpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhoLGMpLmNtcCh1KTspaC5yZWRJQWRkKHUpO2Zvcih2YXIgZj10aGlzLnBvdyhoLGEpLG89dGhpcy5wb3codCxhLmFkZG4oMSkuaXNocm4oMSkpLHA9dGhpcy5wb3codCxhKSxkPXM7MCE9PXAuY21wKGwpOyl7Zm9yKHZhciBtPXAsZz0wOzAhPT1tLmNtcChsKTtnKyspbT1tLnJlZFNxcigpO3IoZD5nKTt2YXIgdj10aGlzLnBvdyhmLG5ldyBpKDEpLmlzaGxuKGQtZy0xKSk7bz1vLnJlZE11bCh2KSxmPXYucmVkU3FyKCkscD1wLnJlZE11bChmKSxkPWd9cmV0dXJuIG99LGYucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7dmFyIGU9dC5faW52bXAodGhpcy5tKTtyZXR1cm4gZS5zaWduPyhlLnNpZ249ITEsdGhpcy5pbW9kKGUpLnJlZE5lZygpKTp0aGlzLmltb2QoZSl9LGYucHJvdG90eXBlLnBvdz1mdW5jdGlvbih0LGUpe3ZhciByPVtdO2lmKDA9PT1lLmNtcG4oMCkpcmV0dXJuIG5ldyBpKDEpO2Zvcih2YXIgbj1lLmNsb25lKCk7MCE9PW4uY21wbigwKTspci5wdXNoKG4uYW5kbG4oMSkpLG4uaXNocm4oMSk7Zm9yKHZhciBvPXQsYT0wO2E8ci5sZW5ndGgmJjA9PT1yW2FdO2ErKyxvPXRoaXMuc3FyKG8pKTtpZigrK2E8ci5sZW5ndGgpZm9yKHZhciBuPXRoaXMuc3FyKG8pO2E8ci5sZW5ndGg7YSsrLG49dGhpcy5zcXIobikpMCE9PXJbYV0mJihvPXRoaXMubXVsKG8sbikpO3JldHVybiBvfSxmLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24odCl7dmFyIGU9dC5tb2QodGhpcy5tKTtyZXR1cm4gZT09PXQ/ZS5jbG9uZSgpOmV9LGYucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvbmUoKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxpLm1vbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBwKHQpfSxuKHAsZikscC5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC5zaGxuKHRoaXMuc2hpZnQpKX0scC5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbW9kKHQubXVsKHRoaXMucmludikpO3JldHVybiBlLnJlZD1udWxsLGV9LHAucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCxlKXtpZigwPT09dC5jbXBuKDApfHwwPT09ZS5jbXBuKDApKXJldHVybiB0LndvcmRzWzBdPTAsdC5sZW5ndGg9MSx0O3ZhciByPXQuaW11bChlKSxuPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGk9ci5pc3ViKG4pLmlzaHJuKHRoaXMuc2hpZnQpLG89aTtyZXR1cm4gaS5jbXAodGhpcy5tKT49MD9vPWkuaXN1Yih0aGlzLm0pOmkuY21wbigwKTwwJiYobz1pLmlhZGQodGhpcy5tKSksby5fZm9yY2VSZWQodGhpcyl9LHAucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe2lmKDA9PT10LmNtcG4oMCl8fDA9PT1lLmNtcG4oMCkpcmV0dXJuIG5ldyBpKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgcj10Lm11bChlKSxuPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLG89ci5pc3ViKG4pLmlzaHJuKHRoaXMuc2hpZnQpLGE9bztyZXR1cm4gby5jbXAodGhpcy5tKT49MD9hPW8uaXN1Yih0aGlzLm0pOm8uY21wbigwKTwwJiYoYT1vLmlhZGQodGhpcy5tKSksYS5fZm9yY2VSZWQodGhpcyl9LHAucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbW9kKHQuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKTtyZXR1cm4gZS5fZm9yY2VSZWQodGhpcyl9fSgidW5kZWZpbmVkIj09dHlwZW9mIGV8fGUsdGhpcyl9LHt9XSw5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiBpKHRbMF0pKmkodFsxXSl9dmFyIGk9dCgiLi9saWIvYm4tc2lnbiIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL2JuLXNpZ24iOjgyfV0sOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBpKHRbMF0ubXVsKGVbMV0pLnN1Yih0WzFdLm11bChlWzBdKSksdFsxXS5tdWwoZVsxXSkpfXZhciBpPXQoIi4vbGliL3JhdGlvbmFsaXplIik7ZS5leHBvcnRzPW59LHsiLi9saWIvcmF0aW9uYWxpemUiOjg3fV0sOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT10WzBdLHI9dFsxXTtpZigwPT09ZS5jbXBuKDApKXJldHVybiAwO3ZhciBuPWUuZGl2bW9kKHIpLGE9bi5kaXYscz1pKGEpLGw9bi5tb2Q7aWYoMD09PWwuY21wbigwKSlyZXR1cm4gcztpZihzKXt2YXIgdT1vKHMpKzQsYz1pKGwuc2hsbih1KS5kaXZSb3VuZChyKSk7cmV0dXJuIDA+cyYmKGM9LWMpLHMrYypNYXRoLnBvdygyLC11KX12YXIgaD1yLmJpdExlbmd0aCgpLWwuYml0TGVuZ3RoKCkrNTMsYz1pKGwuc2hsbihoKS5kaXZSb3VuZChyKSk7cmV0dXJuIDEwMjM+aD9jKk1hdGgucG93KDIsLWgpOihjKj1NYXRoLnBvdygyLC0xMDIzKSxjKk1hdGgucG93KDIsMTAyMy1oKSl9dmFyIGk9dCgiLi9saWIvYm4tdG8tbnVtIiksbz10KCIuL2xpYi9jdHoiKTtlLmV4cG9ydHM9bn0seyIuL2xpYi9ibi10by1udW0iOjgzLCIuL2xpYi9jdHoiOjg0fV0sOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj0wO3Q+cjsrK3IpaWYoIShlW3JdPD1lW3IrdF0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGkodCxlLHIsaSl7Zm9yKHZhciBvPTAsYT0wLHM9MCxsPXQubGVuZ3RoO2w+czsrK3Mpe3ZhciB1PXRbc107aWYoIW4oZSx1KSl7Zm9yKHZhciBjPTA7MiplPmM7KytjKXJbbysrXT11W2NdO2lbYSsrXT1zfX1yZXR1cm4gYX1mdW5jdGlvbiBvKHQsZSxyLG4pe3ZhciBvPXQubGVuZ3RoLGE9ZS5sZW5ndGg7aWYoISgwPj1vfHwwPj1hKSl7dmFyIHM9dFswXS5sZW5ndGg+Pj4xO2lmKCEoMD49cykpe3ZhciBsLHU9aC5tYWxsb2NEb3VibGUoMipzKm8pLGM9aC5tYWxsb2NJbnQzMihvKTtpZihvPWkodCxzLHUsYyksbz4wKXtpZigxPT09cyYmbilmLmluaXQobyksbD1mLnN3ZWVwQ29tcGxldGUocyxyLDAsbyx1LGMsMCxvLHUsYyk7ZWxzZXt2YXIgZD1oLm1hbGxvY0RvdWJsZSgyKnMqYSksbT1oLm1hbGxvY0ludDMyKGEpO2E9aShlLHMsZCxtKSxhPjAmJihmLmluaXQobythKSxsPTE9PT1zP2Yuc3dlZXBCaXBhcnRpdGUocyxyLDAsbyx1LGMsMCxhLGQsbSk6cChzLHIsbixvLHUsYyxhLGQsbSksaC5mcmVlKGQpLGguZnJlZShtKSl9aC5mcmVlKHUpLGguZnJlZShjKX1yZXR1cm4gbH19fWZ1bmN0aW9uIGEodCxlKXtjLnB1c2goW3QsZV0pfWZ1bmN0aW9uIHModCl7cmV0dXJuIGM9W10sbyh0LHQsYSwhMCksY31mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIGM9W10sbyh0LGUsYSwhMSksY31mdW5jdGlvbiB1KHQsZSxyKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBzKHQpO2Nhc2UgMjpyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9vKHQsdCxlLCEwKTpsKHQsZSk7Y2FzZSAzOnJldHVybiBvKHQsZSxyLCExKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiYm94LWludGVyc2VjdDogSW52YWxpZCBhcmd1bWVudHMiKX19ZS5leHBvcnRzPXU7dmFyIGMsaD10KCJ0eXBlZGFycmF5LXBvb2wiKSxmPXQoIi4vbGliL3N3ZWVwIikscD10KCIuL2xpYi9pbnRlcnNlY3QiKX0seyIuL2xpYi9pbnRlcnNlY3QiOjk2LCIuL2xpYi9zd2VlcCI6MTAwLCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPSJicnV0ZUZvcmNlIisodD8iUmVkIjoiQmx1ZSIpKyhlPyJGbGlwIjoiIikrKHI/IkZ1bGwiOiIiKSxpPVsiZnVuY3Rpb24gIixuLCIoIix3LmpvaW4oKSwiKXsiLCJ2YXIgIix1LCI9MioiLG8sIjsiXSxsPSJmb3IodmFyIGk9IitjKyIsIitkKyI9Iit1KyIqIitjKyI7aTwiK2grIjsrK2ksIitkKyIrPSIrdSsiKXt2YXIgeDA9IitmKyJbIithKyIrIitkKyJdLHgxPSIrZisiWyIrYSsiKyIrZCsiKyIrbysiXSx4aT0iK3ArIltpXTsiLE09ImZvcih2YXIgaj0iK20rIiwiK2IrIj0iK3UrIioiK20rIjtqPCIrZysiOysraiwiK2IrIis9Iit1KyIpe3ZhciB5MD0iK3YrIlsiK2ErIisiK2IrIl0sIisocj8ieTE9Iit2KyJbIithKyIrIitiKyIrIitvKyJdLCI6IiIpKyJ5aT0iK3krIltqXTsiO3JldHVybiB0P2kucHVzaChsLF8sIjoiLE0pOmkucHVzaChNLF8sIjoiLGwpLHI/aS5wdXNoKCJpZih5MTx4MHx8eDE8eTApY29udGludWU7Iik6ZT9pLnB1c2goImlmKHkwPD14MHx8eDE8eTApY29udGludWU7Iik6aS5wdXNoKCJpZih5MDx4MHx8eDE8eTApY29udGludWU7IiksaS5wdXNoKCJmb3IodmFyIGs9IithKyIrMTtrPCIrbysiOysrayl7dmFyIHIwPSIrZisiW2srIitkKyJdLHIxPSIrZisiW2srIitvKyIrIitkKyJdLGIwPSIrdisiW2srIitiKyJdLGIxPSIrdisiW2srIitvKyIrIitiKyJdO2lmKHIxPGIwfHxiMTxyMCljb250aW51ZSAiK18rIjt9dmFyICIreCsiPSIrcysiKCIpLGU/aS5wdXNoKCJ5aSx4aSIpOmkucHVzaCgieGkseWkiKSxpLnB1c2goIik7aWYoIit4KyIhPT12b2lkIDApcmV0dXJuICIreCsiO319fSIpLHtuYW1lOm4sY29kZTppLmpvaW4oIiIpfX1mdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGUoZSxyKXt2YXIgbz1uKGUscix0KTtpLnB1c2goby5jb2RlKSxhLnB1c2goInJldHVybiAiK28ubmFtZSsiKCIrdy5qb2luKCkrIik7Iil9dmFyIHI9ImJydXRlRm9yY2UiKyh0PyJGdWxsIjoiUGFydGlhbCIpLGk9W10sbz13LnNsaWNlKCk7dHx8by5zcGxpY2UoMywwLGwpO3ZhciBhPVsiZnVuY3Rpb24gIityKyIoIitvLmpvaW4oKSsiKXsiXTthLnB1c2goImlmKCIraCsiLSIrYysiPiIrZysiLSIrbSsiKXsiKSx0PyhlKCEwLCExKSxhLnB1c2goIn1lbHNleyIpLGUoITEsITEpKTooYS5wdXNoKCJpZigiK2wrIil7IiksZSghMCwhMCksYS5wdXNoKCJ9ZWxzZXsiKSxlKCEwLCExKSxhLnB1c2goIn19ZWxzZXtpZigiK2wrIil7IiksZSghMSwhMCksYS5wdXNoKCJ9ZWxzZXsiKSxlKCExLCExKSxhLnB1c2goIn0iKSksYS5wdXNoKCJ9fXJldHVybiAiK3IpO3ZhciBzPWkuam9pbigiIikrYS5qb2luKCIiKSx1PW5ldyBGdW5jdGlvbihzKTtyZXR1cm4gdSgpfXZhciBvPSJkIixhPSJheCIscz0idnYiLGw9ImZwIix1PSJlcyIsYz0icnMiLGg9InJlIixmPSJyYiIscD0icmkiLGQ9InJwIixtPSJicyIsZz0iYmUiLHY9ImJiIix5PSJiaSIsYj0iYnAiLHg9InJ2IixfPSJRIix3PVtvLGEscyxjLGgsZixwLG0sZyx2LHldO3IucGFydGlhbD1pKCExKSxyLmZ1bGw9aSghMCl9LHt9XSw5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9OCp1LmxvZzIoZSsxKSoodCsxKXwwLG49dS5uZXh0UG93MihBKnIpO1MubGVuZ3RoPG4mJihsLmZyZWUoUyksUz1sLm1hbGxvY0ludDMyKG4pKTt2YXIgaT11Lm5leHRQb3cyKFQqcik7aT5MJiYobC5mcmVlKEwpLEw9bC5tYWxsb2NEb3VibGUoaSkpfWZ1bmN0aW9uIGkodCxlLHIsbixpLG8sYSxzLGwpe3ZhciB1PUEqdDtTW3VdPWUsU1t1KzFdPXIsU1t1KzJdPW4sU1t1KzNdPWksU1t1KzRdPW8sU1t1KzVdPWE7dmFyIGM9VCp0O0xbY109cyxMW2MrMV09bH1mdW5jdGlvbiBvKHQsZSxyLG4saSxvLGEscyxsLHUsYyl7dmFyIGg9Mip0LGY9bCpoLHA9dVtmK2VdO3Q6Zm9yKHZhciBkPWksbT1pKmg7bz5kOysrZCxtKz1oKXt2YXIgZz1hW20rZV0sdj1hW20rZSt0XTtpZighKGc+cHx8cD52fHxuJiZwPT09Zykpe2Zvcih2YXIgeT1zW2RdLGI9ZSsxO3Q+YjsrK2Ipe3ZhciBnPWFbbStiXSx2PWFbbStiK3RdLHg9dVtmK2JdLF89dVtmK2IrdF07aWYoeD52fHxnPl8pY29udGludWUgdH12YXIgdztpZih3PW4/cihjLHkpOnIoeSxjKSx2b2lkIDAhPT13KXJldHVybiB3fX19ZnVuY3Rpb24gYSh0LGUscixuLGksbyxhLHMsbCx1KXt2YXIgYz0yKnQsaD1zKmMsZj1sW2grZV07dDpmb3IodmFyIHA9bixkPW4qYztpPnA7KytwLGQrPWMpe3ZhciBtPWFbcF07aWYobSE9PXUpe3ZhciBnPW9bZCtlXSx2PW9bZCtlK3RdO2lmKCEoZz5mfHxmPnYpKXtmb3IodmFyIHk9ZSsxO3Q+eTsrK3kpe3ZhciBnPW9bZCt5XSx2PW9bZCt5K3RdLGI9bFtoK3ldLHg9bFtoK3krdF07aWYoYj52fHxnPngpY29udGludWUgdH12YXIgXz1yKG0sdSk7aWYodm9pZCAwIT09XylyZXR1cm4gX319fX1mdW5jdGlvbiBzKHQsZSxyLHMsbCx1LGMsbSxFKXtuKHQscytjKTt2YXIgeixJPTAsUD0yKnQ7Zm9yKGkoSSsrLDAsMCxzLDAsYyxyPzE2OjAsLSgxLzApLDEvMCkscnx8aShJKyssMCwwLGMsMCxzLDEsLSgxLzApLDEvMCk7ST4wOyl7SS09MTt2YXIgQz1JKkEsUj1TW0NdLGo9U1tDKzFdLEQ9U1tDKzJdLE89U1tDKzNdLEY9U1tDKzRdLE49U1tDKzVdLEI9SSpULFU9TFtCXSxWPUxbQisxXSxxPTEmTixHPSEhKDE2Jk4pLEg9bCxYPXUsWT1tLFc9RTtpZihxJiYoSD1tLFg9RSxZPWwsVz11KSwhKDImTiYmKEQ9Xyh0LFIsaixELEgsWCxWKSxqPj1EKXx8NCZOJiYoaj13KHQsUixqLEQsSCxYLFUpLGo+PUQpKSl7dmFyIFo9RC1qLFE9Ri1PO2lmKEcpe2lmKHk+dCpaKihaK1EpKXtpZih6PXAuc2NhbkNvbXBsZXRlKHQsUixlLGosRCxILFgsTyxGLFksVyksdm9pZCAwIT09eilyZXR1cm4gejtjb250aW51ZX19ZWxzZXtpZih0Kk1hdGgubWluKFosUSk8Zyl7aWYoej1oKHQsUixlLHEsaixELEgsWCxPLEYsWSxXKSx2b2lkIDAhPT16KXJldHVybiB6O2NvbnRpbnVlfWlmKHY+dCpaKlEpe2lmKHo9cC5zY2FuQmlwYXJ0aXRlKHQsUixlLHEsaixELEgsWCxPLEYsWSxXKSx2b2lkIDAhPT16KXJldHVybiB6O2NvbnRpbnVlfX12YXIgSz1iKHQsUixqLEQsSCxYLFUsVik7aWYoSz5qKWlmKGc+dCooSy1qKSl7aWYoej1mKHQsUisxLGUsaixLLEgsWCxPLEYsWSxXKSx2b2lkIDAhPT16KXJldHVybiB6fWVsc2UgaWYoUj09PXQtMil7aWYoej1xP3Auc3dlZXBCaXBhcnRpdGUodCxlLE8sRixZLFcsaixLLEgsWCk6cC5zd2VlcEJpcGFydGl0ZSh0LGUsaixLLEgsWCxPLEYsWSxXKSx2b2lkIDAhPT16KXJldHVybiB6fWVsc2UgaShJKyssUisxLGosSyxPLEYscSwtKDEvMCksMS8wKSxpKEkrKyxSKzEsTyxGLGosSywxXnEsLSgxLzApLDEvMCk7aWYoRD5LKXt2YXIgSj1kKHQsUixPLEYsWSxXKSwkPVlbUCpKK1JdLHR0PXgodCxSLEosRixZLFcsJCk7aWYoRj50dCYmaShJKyssUixLLEQsdHQsRiwoNHxxKSsoRz8xNjowKSwkLFYpLEo+TyYmaShJKyssUixLLEQsTyxKLCgyfHEpKyhHPzE2OjApLFUsJCksSisxPT09dHQpe2lmKHo9Rz9hKHQsUixlLEssRCxILFgsSixZLFdbSl0pOm8odCxSLGUscSxLLEQsSCxYLEosWSxXW0pdKSx2b2lkIDAhPT16KXJldHVybiB6fWVsc2UgaWYodHQ+Sil7dmFyIGV0O2lmKEcpe2lmKGV0PU0odCxSLEssRCxILFgsJCksZXQ+Syl7dmFyIHJ0PXgodCxSLEssZXQsSCxYLCQpO2lmKFI9PT10LTIpe2lmKHJ0PksmJih6PXAuc3dlZXBDb21wbGV0ZSh0LGUsSyxydCxILFgsSix0dCxZLFcpLHZvaWQgMCE9PXopKXJldHVybiB6O2lmKGV0PnJ0JiYoej1wLnN3ZWVwQmlwYXJ0aXRlKHQsZSxydCxldCxILFgsSix0dCxZLFcpLHZvaWQgMCE9PXopKXJldHVybiB6fWVsc2UgcnQ+SyYmaShJKyssUisxLEsscnQsSix0dCwxNiwtKDEvMCksMS8wKSxldD5ydCYmKGkoSSsrLFIrMSxydCxldCxKLHR0LDAsLSgxLzApLDEvMCksaShJKyssUisxLEosdHQscnQsZXQsMSwtKDEvMCksMS8wKSl9fWVsc2UgZXQ9cT9rKHQsUixLLEQsSCxYLCQpOk0odCxSLEssRCxILFgsJCksZXQ+SyYmKFI9PT10LTI/ej1xP3Auc3dlZXBCaXBhcnRpdGUodCxlLEosdHQsWSxXLEssZXQsSCxYKTpwLnN3ZWVwQmlwYXJ0aXRlKHQsZSxLLGV0LEgsWCxKLHR0LFksVyk6KGkoSSsrLFIrMSxLLGV0LEosdHQscSwtKDEvMCksMS8wKSxpKEkrKyxSKzEsSix0dCxLLGV0LDFecSwtKDEvMCksMS8wKSkpfX19fX1lLmV4cG9ydHM9czt2YXIgbD10KCJ0eXBlZGFycmF5LXBvb2wiKSx1PXQoImJpdC10d2lkZGxlIiksYz10KCIuL2JydXRlIiksaD1jLnBhcnRpYWwsZj1jLmZ1bGwscD10KCIuL3N3ZWVwIiksZD10KCIuL21lZGlhbiIpLG09dCgiLi9wYXJ0aXRpb24iKSxnPTEyOCx2PTE8PDIyLHk9MTw8MjIsYj1tKCIhKGxvPj1wMCkmJiEocDE+PWhpKSIsWyJwMCIsInAxIl0pLHg9bSgibG89PT1wMCIsWyJwMCJdKSxfPW0oImxvPHAwIixbInAwIl0pLHc9bSgiaGk8PXAwIixbInAwIl0pLE09bSgibG88PXAwJiZwMDw9aGkiLFsicDAiXSksaz1tKCJsbzxwMCYmcDA8PWhpIixbInAwIl0pLEE9NixUPTIsRT0xMDI0LFM9bC5tYWxsb2NJbnQzMihFKSxMPWwubWFsbG9jRG91YmxlKEUpfSx7Ii4vYnJ1dGUiOjk1LCIuL21lZGlhbiI6OTcsIi4vcGFydGl0aW9uIjo5OCwiLi9zd2VlcCI6MTAwLCJiaXQtdHdpZGRsZSI6NTEsInR5cGVkYXJyYXktcG9vbCI6NDgxfV0sOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyl7Zm9yKHZhciBhPTIqdCxzPWEqKHIrMSkrZSxsPXIrMTtuPmw7KytsLHMrPWEpZm9yKHZhciB1PWlbc10sYz1sLGg9YSoobC0xKTtjPnImJmlbaCtlXT51Oy0tYyxoLT1hKXtmb3IodmFyIGY9aCxwPWgrYSxkPTA7YT5kOysrZCwrK2YsKytwKXt2YXIgbT1pW2ZdO2lbZl09aVtwXSxpW3BdPW19dmFyIGc9b1tjXTtvW2NdPW9bYy0xXSxvW2MtMV09Z319ZnVuY3Rpb24gaSh0LGUscixpLG8sbCl7aWYocisxPj1pKXJldHVybiByO2Zvcih2YXIgdT1yLGM9aSxoPWkrcj4+PjEsZj0yKnQscD1oLGQ9b1tmKmgrZV07Yz51Oyl7aWYocz5jLXUpe24odCxlLHUsYyxvLGwpLGQ9b1tmKmgrZV07YnJlYWt9dmFyIG09Yy11LGc9TWF0aC5yYW5kb20oKSptK3V8MCx2PW9bZipnK2VdLHk9TWF0aC5yYW5kb20oKSptK3V8MCxiPW9bZip5K2VdLHg9TWF0aC5yYW5kb20oKSptK3V8MCxfPW9bZip4K2VdO2I+PXY/Xz49Yj8ocD15LGQ9Yik6dj49Xz8ocD1nLGQ9dik6KHA9eCxkPV8pOmI+PV8/KHA9eSxkPWIpOl8+PXY/KHA9ZyxkPXYpOihwPXgsZD1fKTtmb3IodmFyIHc9ZiooYy0xKSxNPWYqcCxrPTA7Zj5rOysraywrK3csKytNKXt2YXIgQT1vW3ddO29bd109b1tNXSxvW01dPUF9dmFyIFQ9bFtjLTFdO2xbYy0xXT1sW3BdLGxbcF09VCxwPWEodCxlLHUsYy0xLG8sbCxkKTtmb3IodmFyIHc9ZiooYy0xKSxNPWYqcCxrPTA7Zj5rOysraywrK3csKytNKXt2YXIgQT1vW3ddO29bd109b1tNXSxvW01dPUF9dmFyIFQ9bFtjLTFdO2lmKGxbYy0xXT1sW3BdLGxbcF09VCxwPmgpe2ZvcihjPXAtMTtjPnUmJm9bZiooYy0xKStlXT09PWQ7KWMtPTE7Yys9MX1lbHNle2lmKCEoaD5wKSlicmVhaztmb3IodT1wKzE7Yz51JiZvW2YqdStlXT09PWQ7KXUrPTF9fXJldHVybiBhKHQsZSxyLGgsbyxsLG9bZipoK2VdKX1lLmV4cG9ydHM9aTt2YXIgbz10KCIuL3BhcnRpdGlvbiIpLGE9bygibG88cDAiLFsicDAiXSkscz04fSx7Ii4vcGFydGl0aW9uIjo5OH1dLDk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj0iYWJjZGVmIi5zcGxpdCgiIikuY29uY2F0KGUpLG49W107cmV0dXJuIHQuaW5kZXhPZigibG8iKT49MCYmbi5wdXNoKCJsbz1lW2srbl0iKSx0LmluZGV4T2YoImhpIik+PTAmJm4ucHVzaCgiaGk9ZVtrK29dIiksci5wdXNoKGkucmVwbGFjZSgiXyIsbi5qb2luKCkpLnJlcGxhY2UoIiQiLHQpKSxGdW5jdGlvbi5hcHBseSh2b2lkIDAscil9ZS5leHBvcnRzPW47dmFyIGk9ImZvcih2YXIgaj0yKmEsaz1qKmMsbD1rLG09YyxuPWIsbz1hK2IscD1jO2Q+cDsrK3Asays9ail7dmFyIF87aWYoJClpZihtPT09cCltKz0xLGwrPWo7ZWxzZXtmb3IodmFyIHM9MDtqPnM7KytzKXt2YXIgdD1lW2src107ZVtrK3NdPWVbbF0sZVtsKytdPXR9dmFyIHU9ZltwXTtmW3BdPWZbbV0sZlttKytdPXV9fXJldHVybiBtIn0se31dLDk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXs0KmY+PWU/aSgwLGUtMSx0KTpoKDAsZS0xLHQpfWZ1bmN0aW9uIGkodCxlLHIpe2Zvcih2YXIgbj0yKih0KzEpLGk9dCsxO2U+PWk7KytpKXtmb3IodmFyIG89cltuKytdLGE9cltuKytdLHM9aSxsPW4tMjtzLS0gPnQ7KXt2YXIgdT1yW2wtMl0sYz1yW2wtMV07aWYobz51KWJyZWFrO2lmKHU9PT1vJiZhPmMpYnJlYWs7cltsXT11LHJbbCsxXT1jLGwtPTJ9cltsXT1vLHJbbCsxXT1hfX1mdW5jdGlvbiBvKHQsZSxyKXt0Kj0yLGUqPTI7dmFyIG49clt0XSxpPXJbdCsxXTtyW3RdPXJbZV0sclt0KzFdPXJbZSsxXSxyW2VdPW4scltlKzFdPWl9ZnVuY3Rpb24gYSh0LGUscil7dCo9MixlKj0yLHJbdF09cltlXSxyW3QrMV09cltlKzFdfWZ1bmN0aW9uIHModCxlLHIsbil7dCo9MixlKj0yLHIqPTI7dmFyIGk9blt0XSxvPW5bdCsxXTtuW3RdPW5bZV0sblt0KzFdPW5bZSsxXSxuW2VdPW5bcl0sbltlKzFdPW5bcisxXSxuW3JdPWksbltyKzFdPW99ZnVuY3Rpb24gbCh0LGUscixuLGkpe3QqPTIsZSo9MixpW3RdPWlbZV0saVtlXT1yLGlbdCsxXT1pW2UrMV0saVtlKzFdPW59ZnVuY3Rpb24gdSh0LGUscil7dCo9MixlKj0yO3ZhciBuPXJbdF0saT1yW2VdO3JldHVybiBpPm4/ITE6bj09PWk/clt0KzFdPnJbZSsxXTohMH1mdW5jdGlvbiBjKHQsZSxyLG4pe3QqPTI7dmFyIGk9blt0XTtyZXR1cm4gZT5pPyEwOmk9PT1lP25bdCsxXTxyOiExfWZ1bmN0aW9uIGgodCxlLHIpe3ZhciBuPShlLXQrMSkvNnwwLHA9dCtuLGQ9ZS1uLG09dCtlPj4xLGc9bS1uLHY9bStuLHk9cCxiPWcseD1tLF89dix3PWQsTT10KzEsaz1lLTEsQT0wO3UoeSxiLHIpJiYoQT15LHk9YixiPUEpLHUoXyx3LHIpJiYoQT1fLF89dyx3PUEpLHUoeSx4LHIpJiYoQT15LHk9eCx4PUEpLHUoYix4LHIpJiYoQT1iLGI9eCx4PUEpLHUoeSxfLHIpJiYoQT15LHk9XyxfPUEpLHUoeCxfLHIpJiYoQT14LHg9XyxfPUEpLHUoYix3LHIpJiYoQT1iLGI9dyx3PUEpLHUoYix4LHIpJiYoQT1iLGI9eCx4PUEpLHUoXyx3LHIpJiYoQT1fLF89dyx3PUEpO2Zvcih2YXIgVD1yWzIqYl0sRT1yWzIqYisxXSxTPXJbMipfXSxMPXJbMipfKzFdLHo9Mip5LEk9Mip4LFA9Mip3LEM9MipwLFI9MiptLGo9MipkLEQ9MDsyPkQ7KytEKXt2YXIgTz1yW3orRF0sRj1yW0krRF0sTj1yW1ArRF07cltDK0RdPU8scltSK0RdPUYscltqK0RdPU59YShnLHQsciksYSh2LGUscik7Zm9yKHZhciBCPU07az49QjsrK0IpaWYoYyhCLFQsRSxyKSlCIT09TSYmbyhCLE0sciksKytNO2Vsc2UgaWYoIWMoQixTLEwscikpZm9yKDs7KXtpZihjKGssUyxMLHIpKXtjKGssVCxFLHIpPyhzKEIsTSxrLHIpLCsrTSwtLWspOihvKEIsayxyKSwtLWspO2JyZWFrfWlmKC0tazxCKWJyZWFrfWwodCxNLTEsVCxFLHIpLGwoZSxrKzEsUyxMLHIpLGY+PU0tMi10P2kodCxNLTIscik6aCh0LE0tMixyKSxmPj1lLShrKzIpP2koaysyLGUscik6aChrKzIsZSxyKSxmPj1rLU0/aShNLGsscik6aChNLGsscil9ZS5leHBvcnRzPW47dmFyIGY9MzJ9LHt9XSwxMDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1oLm5leHRQb3cyKHQpO20ubGVuZ3RoPGUmJihjLmZyZWUobSksbT1jLm1hbGxvY0ludDMyKGUpKSxnLmxlbmd0aDxlJiYoYy5mcmVlKGcpLGc9Yy5tYWxsb2NJbnQzMihlKSksdi5sZW5ndGg8ZSYmKGMuZnJlZSh2KSx2PWMubWFsbG9jSW50MzIoZSkpLHkubGVuZ3RoPGUmJihjLmZyZWUoeSkseT1jLm1hbGxvY0ludDMyKGUpKSxiLmxlbmd0aDxlJiYoYy5mcmVlKGIpLGI9Yy5tYWxsb2NJbnQzMihlKSkseC5sZW5ndGg8ZSYmKGMuZnJlZSh4KSx4PWMubWFsbG9jSW50MzIoZSkpO3ZhciByPTgqZTtfLmxlbmd0aDxyJiYoYy5mcmVlKF8pLF89Yy5tYWxsb2NEb3VibGUocikpfWZ1bmN0aW9uIGkodCxlLHIsbil7dmFyIGk9ZVtuXSxvPXRbci0xXTt0W2ldPW8sZVtvXT1pfWZ1bmN0aW9uIG8odCxlLHIsbil7dFtyXT1uLGVbbl09cn1mdW5jdGlvbiBhKHQsZSxyLG4sYSxzLGwsdSxjLGgpe2Zvcih2YXIgZD0wLGI9Mip0LHg9dC0xLHc9Yi0xLE09cjtuPk07KytNKXt2YXIgaz1zW01dLEE9YipNO19bZCsrXT1hW0EreF0sX1tkKytdPS0oaysxKSxfW2QrK109YVtBK3ddLF9bZCsrXT1rfWZvcih2YXIgTT1sO3U+TTsrK00pe3ZhciBrPWhbTV0rcCxUPWIqTTtfW2QrK109Y1tUK3hdLF9bZCsrXT0tayxfW2QrK109Y1tUK3ddLF9bZCsrXT1rfXZhciBFPWQ+Pj4xO2YoXyxFKTtmb3IodmFyIFM9MCxMPTAsTT0wO0U+TTsrK00pe3ZhciB6PTB8X1syKk0rMV07aWYoej49cCl6PXotcHwwLGkodix5LEwtLSx6KTtlbHNlIGlmKHo+PTApaShtLGcsUy0tLHopO2Vsc2UgaWYoLXA+PXope3o9LXotcHwwO2Zvcih2YXIgST0wO1M+STsrK0kpe3ZhciBQPWUobVtJXSx6KTtpZih2b2lkIDAhPT1QKXJldHVybiBQfW8odix5LEwrKyx6KX1lbHNle3o9LXotMXwwO2Zvcih2YXIgST0wO0w+STsrK0kpe3ZhciBQPWUoeix2W0ldKTtpZih2b2lkIDAhPT1QKXJldHVybiBQfW8obSxnLFMrKyx6KX19fWZ1bmN0aW9uIHModCxlLHIsbixhLHMsbCx1LGMsaCl7Zm9yKHZhciBwPTAsZD0yKnQsdz10LTEsTT1kLTEsaz1yO24+azsrK2spe3ZhciBBPXNba10rMTw8MSxUPWQqaztfW3ArK109YVtUK3ddLF9bcCsrXT0tQSxfW3ArK109YVtUK01dLF9bcCsrXT1BfWZvcih2YXIgaz1sO3U+azsrK2spe3ZhciBBPWhba10rMTw8MSxFPWQqaztfW3ArK109Y1tFK3ddLF9bcCsrXT0xfC1BLF9bcCsrXT1jW0UrTV0sX1twKytdPTF8QX12YXIgUz1wPj4+MTtmKF8sUyk7Zm9yKHZhciBMPTAsej0wLEk9MCxrPTA7Uz5rOysrayl7dmFyIFA9MHxfWzIqaysxXSxDPTEmUDtpZihTLTE+ayYmUD4+MT09PV9bMiprKzNdPj4xJiYoQz0yLGsrPTEpLDA+UCl7Zm9yKHZhciBSPS0oUD4+MSktMSxqPTA7ST5qOysrail7dmFyIEQ9ZShiW2pdLFIpO2lmKHZvaWQgMCE9PUQpcmV0dXJuIER9aWYoMCE9PUMpZm9yKHZhciBqPTA7TD5qOysrail7dmFyIEQ9ZShtW2pdLFIpO2lmKHZvaWQgMCE9PUQpcmV0dXJuIER9aWYoMSE9PUMpZm9yKHZhciBqPTA7ej5qOysrail7dmFyIEQ9ZSh2W2pdLFIpO2lmKHZvaWQgMCE9PUQpcmV0dXJuIER9MD09PUM/byhtLGcsTCsrLFIpOjE9PT1DP28odix5LHorKyxSKToyPT09QyYmbyhiLHgsSSsrLFIpfWVsc2V7dmFyIFI9KFA+PjEpLTE7MD09PUM/aShtLGcsTC0tLFIpOjE9PT1DP2kodix5LHotLSxSKToyPT09QyYmaShiLHgsSS0tLFIpfX19ZnVuY3Rpb24gbCh0LGUscixuLGEscyxsLHUsYyxoLGQsdil7dmFyIHk9MCxiPTIqdCx4PWUsdz1lK3QsTT0xLGs9MTtuP2s9cDpNPXA7Zm9yKHZhciBBPWE7cz5BOysrQSl7dmFyIFQ9QStNLEU9YipBO19beSsrXT1sW0UreF0sX1t5KytdPS1ULF9beSsrXT1sW0Urd10sX1t5KytdPVR9Zm9yKHZhciBBPWM7aD5BOysrQSl7dmFyIFQ9QStrLFM9YipBO19beSsrXT1kW1MreF0sX1t5KytdPS1UfXZhciBMPXk+Pj4xO2YoXyxMKTtmb3IodmFyIHo9MCxBPTA7TD5BOysrQSl7dmFyIEk9MHxfWzIqQSsxXTtpZigwPkkpe3ZhciBUPS1JLFA9ITE7aWYoVD49cD8oUD0hbixULT1wKTooUD0hIW4sVC09MSksUClvKG0sZyx6KyssVCk7ZWxzZXt2YXIgQz12W1RdLFI9YipULGo9ZFtSK2UrMV0sRD1kW1IrZSsxK3RdO3Q6Zm9yKHZhciBPPTA7ej5POysrTyl7dmFyIEY9bVtPXSxOPWIqRjtpZighKEQ8bFtOK2UrMV18fGxbTitlKzErdF08aikpe2Zvcih2YXIgQj1lKzI7dD5COysrQilpZihkW1IrQit0XTxsW04rQl18fGxbTitCK3RdPGRbUitCXSljb250aW51ZSB0O3ZhciBVLFY9dVtGXTtpZihVPW4/cihDLFYpOnIoVixDKSx2b2lkIDAhPT1VKXJldHVybiBVfX19fWVsc2UgaShtLGcsei0tLEktTSl9fWZ1bmN0aW9uIHUodCxlLHIsbixpLG8sYSxzLGwsdSxjKXtmb3IodmFyIGg9MCxkPTIqdCxnPWUsdj1lK3QseT1uO2k+eTsrK3kpe3ZhciBiPXkrcCx4PWQqeTtfW2grK109b1t4K2ddLF9baCsrXT0tYixfW2grK109b1t4K3ZdLF9baCsrXT1ifWZvcih2YXIgeT1zO2w+eTsrK3kpe3ZhciBiPXkrMSx3PWQqeTtfW2grK109dVt3K2ddLF9baCsrXT0tYn12YXIgTT1oPj4+MTtmKF8sTSk7Zm9yKHZhciBrPTAseT0wO00+eTsrK3kpe3ZhciBBPTB8X1syKnkrMV07aWYoMD5BKXt2YXIgYj0tQTtpZihiPj1wKW1baysrXT1iLXA7ZWxzZXtiLT0xO3ZhciBUPWNbYl0sRT1kKmIsUz11W0UrZSsxXSxMPXVbRStlKzErdF07dDpmb3IodmFyIHo9MDtrPno7Kyt6KXt2YXIgST1tW3pdLFA9YVtJXTtpZihQPT09VClicmVhazt2YXIgQz1kKkk7aWYoIShMPG9bQytlKzFdfHxvW0MrZSsxK3RdPFMpKXtmb3IodmFyIFI9ZSsyO3Q+UjsrK1IpaWYodVtFK1IrdF08b1tDK1JdfHxvW0MrUit0XTx1W0UrUl0pY29udGludWUgdDt2YXIgaj1yKFAsVCk7aWYodm9pZCAwIT09ailyZXR1cm4gan19fX1lbHNle2Zvcih2YXIgYj1BLXAsej1rLTE7ej49MDstLXopaWYobVt6XT09PWIpe2Zvcih2YXIgUj16KzE7az5SOysrUiltW1ItMV09bVtSXTticmVha30tLWt9fX1lLmV4cG9ydHM9e2luaXQ6bixzd2VlcEJpcGFydGl0ZTphLHN3ZWVwQ29tcGxldGU6cyxzY2FuQmlwYXJ0aXRlOmwsc2NhbkNvbXBsZXRlOnV9O3ZhciBjPXQoInR5cGVkYXJyYXktcG9vbCIpLGg9dCgiYml0LXR3aWRkbGUiKSxmPXQoIi4vc29ydCIpLHA9MTw8MjgsZD0xMDI0LG09Yy5tYWxsb2NJbnQzMihkKSxnPWMubWFsbG9jSW50MzIoZCksdj1jLm1hbGxvY0ludDMyKGQpLHk9Yy5tYWxsb2NJbnQzMihkKSxiPWMubWFsbG9jSW50MzIoZCkseD1jLm1hbGxvY0ludDMyKGQpLF89Yy5tYWxsb2NEb3VibGUoOCpkKX0seyIuL3NvcnQiOjk5LCJiaXQtdHdpZGRsZSI6NTEsInR5cGVkYXJyYXktcG9vbCI6NDgxfV0sMTAxOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIodCxlKXtyZXR1cm4gcFswXT10LHBbMV09ZSxmWzBdfWZ1bmN0aW9uIG4odCl7cmV0dXJuIGZbMF09dCxwWzBdfWZ1bmN0aW9uIGkodCl7cmV0dXJuIGZbMF09dCxwWzFdfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gcFsxXT10LHBbMF09ZSxmWzBdfWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZbMF09dCxwWzFdfWZ1bmN0aW9uIHModCl7cmV0dXJuIGZbMF09dCxwWzBdfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gZC53cml0ZVVJbnQzMkxFKHQsMCwhMCksZC53cml0ZVVJbnQzMkxFKGUsNCwhMCksZC5yZWFkRG91YmxlTEUoMCwhMCl9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gZC53cml0ZURvdWJsZUxFKHQsMCwhMCksZC5yZWFkVUludDMyTEUoMCwhMCl9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gZC53cml0ZURvdWJsZUxFKHQsMCwhMCksZC5yZWFkVUludDMyTEUoNCwhMCl9dmFyIGg9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBGbG9hdDY0QXJyYXkpe3ZhciBmPW5ldyBGbG9hdDY0QXJyYXkoMSkscD1uZXcgVWludDMyQXJyYXkoZi5idWZmZXIpO2ZbMF09MSxoPSEwLDEwNzI2OTMyNDg9PT1wWzFdPyhlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGZbMF09dCxbcFswXSxwWzFdXX0sZS5leHBvcnRzLnBhY2s9cixlLmV4cG9ydHMubG89bixlLmV4cG9ydHMuaGk9aSk6MTA3MjY5MzI0OD09PXBbMF0/KGUuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gZlswXT10LFtwWzFdLHBbMF1dfSxlLmV4cG9ydHMucGFjaz1vLGUuZXhwb3J0cy5sbz1hLGUuZXhwb3J0cy5oaT1zKTpoPSExfWlmKCFoKXt2YXIgZD1uZXcgdCg4KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGQud3JpdGVEb3VibGVMRSh0LDAsITApLFtkLnJlYWRVSW50MzJMRSgwLCEwKSxkLnJlYWRVSW50MzJMRSg0LCEwKV19LGUuZXhwb3J0cy5wYWNrPWwsZS5leHBvcnRzLmxvPXUsZS5leHBvcnRzLmhpPWN9ZS5leHBvcnRzLnNpZ249ZnVuY3Rpb24odCl7cmV0dXJuIGUuZXhwb3J0cy5oaSh0KT4+PjMxfSxlLmV4cG9ydHMuZXhwb25lbnQ9ZnVuY3Rpb24odCl7dmFyIHI9ZS5leHBvcnRzLmhpKHQpO3JldHVybihyPDwxPj4+MjEpLTEwMjN9LGUuZXhwb3J0cy5mcmFjdGlvbj1mdW5jdGlvbih0KXt2YXIgcj1lLmV4cG9ydHMubG8odCksbj1lLmV4cG9ydHMuaGkodCksaT0xMDQ4NTc1Jm47cmV0dXJuIDIxNDY0MzUwNzImbiYmKGkrPTE8PDIwKSxbcixpXX0sZS5leHBvcnRzLmRlbm9ybWFsaXplZD1mdW5jdGlvbih0KXt2YXIgcj1lLmV4cG9ydHMuaGkodCk7cmV0dXJuISgyMTQ2NDM1MDcyJnIpfX0pLmNhbGwodGhpcyx0KCJidWZmZXIiKS5CdWZmZXIpfSx7YnVmZmVyOjUyfV0sMTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZihpc05hTih0KXx8aXNOYU4oZSkpcmV0dXJuIE5hTjtpZih0PT09ZSlyZXR1cm4gdDtpZigwPT09dClyZXR1cm4gMD5lPy1vOm87dmFyIHI9aS5oaSh0KSxuPWkubG8odCk7cmV0dXJuIGU+dD09dD4wP249PT1hPyhyKz0xLG49MCk6bis9MTowPT09bj8obj1hLHItPTEpOm4tPTEsaS5wYWNrKG4scil9dmFyIGk9dCgiZG91YmxlLWJpdHMiKSxvPU1hdGgucG93KDIsLTEwNzQpLGE9LTE+Pj4wO2UuZXhwb3J0cz1ufSx7ImRvdWJsZS1iaXRzIjoxMDF9XSwxMDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxvPTA7cj5vOysrbyluW29dPWkodFtvXSxlW29dKTtyZXR1cm4gbn12YXIgaT10KCJiaWctcmF0L2FkZCIpO2UuZXhwb3J0cz1ufSx7ImJpZy1yYXQvYWRkIjo3N31dLDEwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoOysrcillW3JdPWkodFtyXSk7cmV0dXJuIGV9ZS5leHBvcnRzPW47dmFyIGk9dCgiYmlnLXJhdCIpfSx7ImJpZy1yYXQiOjgwfV0sMTA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9aShlKSxuPXQubGVuZ3RoLGE9bmV3IEFycmF5KG4pLHM9MDtuPnM7KytzKWFbc109byh0W3NdLHIpO3JldHVybiBhfXZhciBpPXQoImJpZy1yYXQiKSxvPXQoImJpZy1yYXQvbXVsIik7ZS5leHBvcnRzPW59LHsiYmlnLXJhdCI6ODAsImJpZy1yYXQvbXVsIjo4OX1dLDEwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLG89MDtyPm87KytvKW5bb109aSh0W29dLGVbb10pO3JldHVybiBufXZhciBpPXQoImJpZy1yYXQvc3ViIik7ZS5leHBvcnRzPW59LHsiYmlnLXJhdC9zdWIiOjkyfV0sMTA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbil7Zm9yKHZhciBpPTA7Mj5pOysraSl7dmFyIG89dFtpXSxhPWVbaV0scz1NYXRoLm1pbihvLGEpLGw9TWF0aC5tYXgobyxhKSx1PXJbaV0sYz1uW2ldLGg9TWF0aC5taW4odSxjKSxmPU1hdGgubWF4KHUsYyk7aWYocz5mfHxoPmwpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gaSh0LGUscixpKXt2YXIgYT1vKHQscixpKSxzPW8oZSxyLGkpO2lmKGE+MCYmcz4wfHwwPmEmJjA+cylyZXR1cm4hMTt2YXIgbD1vKHIsdCxlKSx1PW8oaSx0LGUpO3JldHVybiBsPjAmJnU+MHx8MD5sJiYwPnU/ITE6MD09PWEmJjA9PT1zJiYwPT09bCYmMD09PXU/bih0LGUscixpKTohMH1lLmV4cG9ydHM9aTt2YXIgbz10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjQ2Mn1dLDEwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjsidXNlIHJlc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMucm9vdHM9bmV3IEFycmF5KHQpLHRoaXMucmFua3M9bmV3IEFycmF5KHQpO2Zvcih2YXIgZT0wO3Q+ZTsrK2UpdGhpcy5yb290c1tlXT1lLHRoaXMucmFua3NbZV09MH1lLmV4cG9ydHM9bjt2YXIgaT1uLnByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdHMubGVuZ3RofX0pLGkubWFrZVNldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdHMubGVuZ3RoO3JldHVybiB0aGlzLnJvb3RzLnB1c2godCksdGhpcy5yYW5rcy5wdXNoKDApLHR9LGkuZmluZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dCxyPXRoaXMucm9vdHM7clt0XSE9PXQ7KXQ9clt0XTtmb3IoO3JbZV0hPT10Oyl7dmFyIG49cltlXTtyW2VdPXQsZT1ufXJldHVybiB0fSxpLmxpbms9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmQodCksbj10aGlzLmZpbmQoZSk7aWYociE9PW4pe3ZhciBpPXRoaXMucmFua3Msbz10aGlzLnJvb3RzLGE9aVtyXSxzPWlbbl07cz5hP29bcl09bjphPnM/b1tuXT1yOihvW25dPXIsKytpW3JdKX19fSx7fV0sMTA5OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpe3ZhciByPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUocixuLGksbyl7ZnVuY3Rpb24gcyhyLGkpe2lmKG51bGw9PT1yKXJldHVybiBudWxsO2lmKDA9PWkpcmV0dXJuIHI7dmFyIGwsZjtpZigib2JqZWN0IiE9dHlwZW9mIHIpcmV0dXJuIHI7aWYoZS5fX2lzQXJyYXkocikpbD1bXTtlbHNlIGlmKGUuX19pc1JlZ0V4cChyKSlsPW5ldyBSZWdFeHAoci5zb3VyY2UsYShyKSksci5sYXN0SW5kZXgmJihsLmxhc3RJbmRleD1yLmxhc3RJbmRleCk7ZWxzZSBpZihlLl9faXNEYXRlKHIpKWw9bmV3IERhdGUoci5nZXRUaW1lKCkpO2Vsc2V7aWYoaCYmdC5pc0J1ZmZlcihyKSlyZXR1cm4gbD1uZXcgdChyLmxlbmd0aCksci5jb3B5KGwpLGw7InVuZGVmaW5lZCI9PXR5cGVvZiBvPyhmPU9iamVjdC5nZXRQcm90b3R5cGVPZihyKSxsPU9iamVjdC5jcmVhdGUoZikpOihsPU9iamVjdC5jcmVhdGUobyksZj1vKX1pZihuKXt2YXIgcD11LmluZGV4T2Yocik7aWYoLTEhPXApcmV0dXJuIGNbcF07dS5wdXNoKHIpLGMucHVzaChsKX1mb3IodmFyIGQgaW4gcil7dmFyIG07ZiYmKG09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihmLGQpKSxtJiZudWxsPT1tLnNldHx8KGxbZF09cyhyW2RdLGktMSkpfXJldHVybiBsfXZhciBsOyJvYmplY3QiPT10eXBlb2YgbiYmKGk9bi5kZXB0aCxvPW4ucHJvdG90eXBlLGw9bi5maWx0ZXIsbj1uLmNpcmN1bGFyKTt2YXIgdT1bXSxjPVtdLGg9InVuZGVmaW5lZCIhPXR5cGVvZiB0O3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgbiYmKG49ITApLCJ1bmRlZmluZWQiPT10eXBlb2YgaSYmKGk9MS8wKSxzKHIsaSl9ZnVuY3Rpb24gcih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYiW29iamVjdCBEYXRlXSI9PT1yKHQpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYiW29iamVjdCBBcnJheV0iPT09cih0KX1mdW5jdGlvbiBvKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdCYmIltvYmplY3QgUmVnRXhwXSI9PT1yKHQpfWZ1bmN0aW9uIGEodCl7dmFyIGU9IiI7cmV0dXJuIHQuZ2xvYmFsJiYoZSs9ImciKSx0Lmlnbm9yZUNhc2UmJihlKz0iaSIpLHQubXVsdGlsaW5lJiYoZSs9Im0iKSxlfXJldHVybiBlLmNsb25lUHJvdG90eXBlPWZ1bmN0aW9uKHQpe2lmKG51bGw9PT10KXJldHVybiBudWxsO3ZhciBlPWZ1bmN0aW9uKCl7fTtyZXR1cm4gZS5wcm90b3R5cGU9dCxuZXcgZX0sZS5fX29ialRvU3RyPXIsZS5fX2lzRGF0ZT1uLGUuX19pc0FycmF5PWksZS5fX2lzUmVnRXhwPW8sZS5fX2dldFJlZ0V4cEZsYWdzPWEsZX0oKTsib2JqZWN0Ij09dHlwZW9mIGUmJmUuZXhwb3J0cyYmKGUuZXhwb3J0cz1yKX0pLmNhbGwodGhpcyx0KCJidWZmZXIiKS5CdWZmZXIpfSx7YnVmZmVyOjUyfV0sMTEwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtqZXQ6W3tpbmRleDowLHJnYjpbMCwwLDEzMV19LHtpbmRleDouMTI1LHJnYjpbMCw2MCwxNzBdfSx7aW5kZXg6LjM3NSxyZ2I6WzUsMjU1LDI1NV19LHtpbmRleDouNjI1LHJnYjpbMjU1LDI1NSwwXX0se2luZGV4Oi44NzUscmdiOlsyNTAsMCwwXX0se2luZGV4OjEscmdiOlsxMjgsMCwwXX1dLGhzdjpbe2luZGV4OjAscmdiOlsyNTUsMCwwXX0se2luZGV4Oi4xNjkscmdiOlsyNTMsMjU1LDJdfSx7aW5kZXg6LjE3MyxyZ2I6WzI0NywyNTUsMl19LHtpbmRleDouMzM3LHJnYjpbMCwyNTIsNF19LHtpbmRleDouMzQxLHJnYjpbMCwyNTIsMTBdfSx7aW5kZXg6LjUwNixyZ2I6WzEsMjQ5LDI1NV19LHtpbmRleDouNjcxLHJnYjpbMiwwLDI1M119LHtpbmRleDouNjc1LHJnYjpbOCwwLDI1M119LHtpbmRleDouODM5LHJnYjpbMjU1LDAsMjUxXX0se2luZGV4Oi44NDMscmdiOlsyNTUsMCwyNDVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDZdfV0saG90Olt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4Oi4zLHJnYjpbMjMwLDAsMF19LHtpbmRleDouNixyZ2I6WzI1NSwyMTAsMF19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwyNTVdfV0sY29vbDpbe2luZGV4OjAscmdiOlswLDI1NSwyNTVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDI1NV19XSxzcHJpbmc6W3tpbmRleDowLHJnYjpbMjU1LDAsMjU1XX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDBdfV0sc3VtbWVyOlt7aW5kZXg6MCxyZ2I6WzAsMTI4LDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwxMDJdfV0sYXV0dW1uOlt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMF19XSx3aW50ZXI6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDoxLHJnYjpbMCwyNTUsMTI4XX1dLGJvbmU6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjM3NixyZ2I6Wzg0LDg0LDExNl19LHtpbmRleDouNzUzLHJnYjpbMTY5LDIwMCwyMDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLGNvcHBlcjpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouODA0LHJnYjpbMjU1LDE2MCwxMDJdfSx7aW5kZXg6MSxyZ2I6WzI1NSwxOTksMTI3XX1dLGdyZXlzOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSx5aWduYnU6W3tpbmRleDowLHJnYjpbOCwyOSw4OF19LHtpbmRleDouMTI1LHJnYjpbMzcsNTIsMTQ4XX0se2luZGV4Oi4yNSxyZ2I6WzM0LDk0LDE2OF19LHtpbmRleDouMzc1LHJnYjpbMjksMTQ1LDE5Ml19LHtpbmRleDouNSxyZ2I6WzY1LDE4MiwxOTZdfSx7aW5kZXg6LjYyNSxyZ2I6WzEyNywyMDUsMTg3XX0se2luZGV4Oi43NSxyZ2I6WzE5OSwyMzMsMTgwXX0se2luZGV4Oi44NzUscmdiOlsyMzcsMjQ4LDIxN119LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwyMTddfV0sZ3JlZW5zOlt7aW5kZXg6MCxyZ2I6WzAsNjgsMjddfSx7aW5kZXg6LjEyNSxyZ2I6WzAsMTA5LDQ0XX0se2luZGV4Oi4yNSxyZ2I6WzM1LDEzOSw2OV19LHtpbmRleDouMzc1LHJnYjpbNjUsMTcxLDkzXX0se2luZGV4Oi41LHJnYjpbMTE2LDE5NiwxMThdfSx7aW5kZXg6LjYyNSxyZ2I6WzE2MSwyMTcsMTU1XX0se2luZGV4Oi43NSxyZ2I6WzE5OSwyMzMsMTkyXX0se2luZGV4Oi44NzUscmdiOlsyMjksMjQ1LDIyNF19LHtpbmRleDoxLHJnYjpbMjQ3LDI1MiwyNDVdfV0seWlvcnJkOlt7aW5kZXg6MCxyZ2I6WzEyOCwwLDM4XX0se2luZGV4Oi4xMjUscmdiOlsxODksMCwzOF19LHtpbmRleDouMjUscmdiOlsyMjcsMjYsMjhdfSx7aW5kZXg6LjM3NSxyZ2I6WzI1Miw3OCw0Ml19LHtpbmRleDouNSxyZ2I6WzI1MywxNDEsNjBdfSx7aW5kZXg6LjYyNSxyZ2I6WzI1NCwxNzgsNzZdfSx7aW5kZXg6Ljc1LHJnYjpbMjU0LDIxNywxMThdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1NSwyMzcsMTYwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDIwNF19XSxibHVlcmVkOlt7aW5kZXg6MCxyZ2I6WzAsMCwyNTVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDBdfV0scmRidTpbe2luZGV4OjAscmdiOls1LDEwLDE3Ml19LHtpbmRleDouMzUscmdiOlsxMDYsMTM3LDI0N119LHtpbmRleDouNSxyZ2I6WzE5MCwxOTAsMTkwXX0se2luZGV4Oi42LHJnYjpbMjIwLDE3MCwxMzJdfSx7aW5kZXg6LjcscmdiOlsyMzAsMTQ1LDkwXX0se2luZGV4OjEscmdiOlsxNzgsMTAsMjhdfV0scGljbmljOlt7aW5kZXg6MCxyZ2I6WzAsMCwyNTVdfSx7aW5kZXg6LjEscmdiOls1MSwxNTMsMjU1XX0se2luZGV4Oi4yLHJnYjpbMTAyLDIwNCwyNTVdfSx7aW5kZXg6LjMscmdiOlsxNTMsMjA0LDI1NV19LHtpbmRleDouNCxyZ2I6WzIwNCwyMDQsMjU1XX0se2luZGV4Oi41LHJnYjpbMjU1LDI1NSwyNTVdfSx7aW5kZXg6LjYscmdiOlsyNTUsMjA0LDI1NV19LHtpbmRleDouNyxyZ2I6WzI1NSwxNTMsMjU1XX0se2luZGV4Oi44LHJnYjpbMjU1LDEwMiwyMDRdfSx7aW5kZXg6LjkscmdiOlsyNTUsMTAyLDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxyYWluYm93Olt7aW5kZXg6MCxyZ2I6WzE1MCwwLDkwXX0se2luZGV4Oi4xMjUscmdiOlswLDAsMjAwXX0se2luZGV4Oi4yNSxyZ2I6WzAsMjUsMjU1XX0se2luZGV4Oi4zNzUscmdiOlswLDE1MiwyNTVdfSx7aW5kZXg6LjUscmdiOls0NCwyNTUsMTUwXX0se2luZGV4Oi42MjUscmdiOlsxNTEsMjU1LDBdfSx7aW5kZXg6Ljc1LHJnYjpbMjU1LDIzNCwwXX0se2luZGV4Oi44NzUscmdiOlsyNTUsMTExLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDBdfV0scG9ydGxhbmQ6W3tpbmRleDowLHJnYjpbMTIsNTEsMTMxXX0se2luZGV4Oi4yNSxyZ2I6WzEwLDEzNiwxODZdfSx7aW5kZXg6LjUscmdiOlsyNDIsMjExLDU2XX0se2luZGV4Oi43NSxyZ2I6WzI0MiwxNDMsNTZdfSx7aW5kZXg6MSxyZ2I6WzIxNywzMCwzMF19XSxibGFja2JvZHk6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjIscmdiOlsyMzAsMCwwXX0se2luZGV4Oi40LHJnYjpbMjMwLDIxMCwwXX0se2luZGV4Oi43LHJnYjpbMjU1LDI1NSwyNTVdfSx7aW5kZXg6MSxyZ2I6WzE2MCwyMDAsMjU1XX1dLGVhcnRoOlt7aW5kZXg6MCxyZ2I6WzAsMCwxMzBdfSx7aW5kZXg6LjEscmdiOlswLDE4MCwxODBdfSx7aW5kZXg6LjIscmdiOls0MCwyMTAsNDBdfSx7aW5kZXg6LjQscmdiOlsyMzAsMjMwLDUwXX0se2luZGV4Oi42LHJnYjpbMTIwLDcwLDIwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxlbGVjdHJpYzpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMTUscmdiOlszMCwwLDEwMF19LHtpbmRleDouNCxyZ2I6WzEyMCwwLDEwMF19LHtpbmRleDouNixyZ2I6WzE2MCw5MCwwXX0se2luZGV4Oi44LHJnYjpbMjMwLDIwMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjUwLDIyMF19XSxhbHBoYTpbe2luZGV4OjAscmdiOlsyNTUsMjU1LDI1NSwwXX0se2luZGV4OjAscmdiOlsyNTUsMjU1LDI1NSwxXX1dfX0se31dLDExMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZSxyPSIjIixuPTA7Mz5uOysrbillPXRbbl0sZT1lLnRvU3RyaW5nKDE2KSxyKz0oIjAwIitlKS5zdWJzdHIoZS5sZW5ndGgpO3JldHVybiByfWZ1bmN0aW9uIGkodCl7cmV0dXJuInJnYmEoIit0LmpvaW4oIiwiKSsiKSJ9dmFyIG89dCgiYXJyYXl0b29scyIpLGE9dCgiY2xvbmUiKSxzPXQoIi4vY29sb3JTY2FsZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixsLHUsYyxoLGYscCxkLG0sZyx2LHksYj1bXSx4PVtdLF89W10sdz1bXTtpZihvLmlzUGxhaW5PYmplY3QodCl8fCh0PXt9KSxkPXQubnNoYWRlc3x8NzIscD10LmZvcm1hdHx8ImhleCIsZj10LmNvbG9ybWFwLGZ8fChmPSJqZXQiKSwic3RyaW5nIj09dHlwZW9mIGYpe2lmKGY9Zi50b0xvd2VyQ2FzZSgpLCFzW2ZdKXRocm93IEVycm9yKGYrIiBub3QgYSBzdXBwb3J0ZWQgY29sb3JzY2FsZSIpO2g9YShzW2ZdKX1lbHNle2lmKCFBcnJheS5pc0FycmF5KGYpKXRocm93IEVycm9yKCJ1bnN1cHBvcnRlZCBjb2xvcm1hcCBvcHRpb24iLGYpO2g9YShmKX1pZihoLmxlbmd0aD5kKXRocm93IG5ldyBFcnJvcihmKyIgbWFwIHJlcXVpcmVzIG5zaGFkZXMgdG8gYmUgYXQgbGVhc3Qgc2l6ZSAiK2gubGVuZ3RoKTtmb3IoZz1BcnJheS5pc0FycmF5KHQuYWxwaGEpPzIhPT10LmFscGhhLmxlbmd0aD9bMSwxXTphKHQuYWxwaGEpOiJudW1iZXIiPT10eXBlb2YgdC5hbHBoYT9bdC5hbHBoYSx0LmFscGhhXTpbMSwxXSxlPWgubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQuaW5kZXgqZCl9KSxnWzBdPDAmJihnWzBdPTApLGdbMV08MCYmKGdbMF09MCksZ1swXT4xJiYoZ1swXT0xKSxnWzFdPjEmJihnWzBdPTEpLHk9MDt5PGUubGVuZ3RoOysreSl2PWhbeV0uaW5kZXgscj1oW3ldLnJnYiw0PT09ci5sZW5ndGgmJnJbM10+PTAmJnJbM108PTF8fChyWzNdPWdbMF0rKGdbMV0tZ1swXSkqdik7Zm9yKHk9MDt5PGUubGVuZ3RoLTE7Kyt5KWM9ZVt5KzFdLWVbeV0sbD1oW3ldLnJnYix1PWhbeSsxXS5yZ2IsYj1iLmNvbmNhdChvLmxpbnNwYWNlKGxbMF0sdVswXSxjKSkseD14LmNvbmNhdChvLmxpbnNwYWNlKGxbMV0sdVsxXSxjKSksXz1fLmNvbmNhdChvLmxpbnNwYWNlKGxbMl0sdVsyXSxjKSksdz13LmNvbmNhdChvLmxpbnNwYWNlKGxbM10sdVszXSxjKSk7cmV0dXJuIGI9Yi5tYXAoTWF0aC5yb3VuZCkseD14Lm1hcChNYXRoLnJvdW5kKSxfPV8ubWFwKE1hdGgucm91bmQpLG09by56aXAoYix4LF8sdyksImhleCI9PT1wJiYobT1tLm1hcChuKSksInJnYmFTdHJpbmciPT09cCYmKG09bS5tYXAoaSkpLG19fSx7Ii4vY29sb3JTY2FsZXMiOjExMCxhcnJheXRvb2xzOjUwLGNsb25lOjEwOX1dLDExMjpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gdC1lfWZ1bmN0aW9uIGkodCxlKXt2YXIgcj10Lmxlbmd0aCxpPXQubGVuZ3RoLWUubGVuZ3RoO2lmKGkpcmV0dXJuIGk7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gMDtjYXNlIDE6cmV0dXJuIHRbMF0tZVswXTtjYXNlIDI6cmV0dXJuIHRbMF0rdFsxXS1lWzBdLWVbMV18fG8odFswXSx0WzFdKS1vKGVbMF0sZVsxXSk7Y2FzZSAzOnZhciBhPXRbMF0rdFsxXSxzPWVbMF0rZVsxXTtpZihpPWErdFsyXS0ocytlWzJdKSlyZXR1cm4gaTt2YXIgbD1vKHRbMF0sdFsxXSksdT1vKGVbMF0sZVsxXSk7cmV0dXJuIG8obCx0WzJdKS1vKHUsZVsyXSl8fG8obCt0WzJdLGEpLW8odStlWzJdLHMpO2Nhc2UgNDp2YXIgYz10WzBdLGg9dFsxXSxmPXRbMl0scD10WzNdLGQ9ZVswXSxtPWVbMV0sZz1lWzJdLHY9ZVszXTtyZXR1cm4gYytoK2YrcC0oZCttK2crdil8fG8oYyxoLGYscCktbyhkLG0sZyx2LGQpfHxvKGMraCxjK2YsYytwLGgrZixoK3AsZitwKS1vKGQrbSxkK2csZCt2LG0rZyxtK3YsZyt2KXx8byhjK2grZixjK2grcCxjK2YrcCxoK2YrcCktbyhkK20rZyxkK20rdixkK2crdixtK2crdik7ZGVmYXVsdDpmb3IodmFyIHk9dC5zbGljZSgpLnNvcnQobiksYj1lLnNsaWNlKCkuc29ydChuKSx4PTA7cj54OysreClpZihpPXlbeF0tYlt4XSlyZXR1cm4gaTtyZXR1cm4gMH19ZS5leHBvcnRzPWk7dmFyIG89TWF0aC5taW59LHt9XSwxMTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT10Lmxlbmd0aDtpZigwPT09ZSlyZXR1cm5bXTtpZigxPT09ZSlyZXR1cm5bWzBdXTt2YXIgcj10WzBdLmxlbmd0aDtyZXR1cm4gMD09PXI/W106MT09PXI/aSh0KToyPT09cj9vKHQpOmEodCxyKX12YXIgaT10KCIuL2xpYi9jaDFkIiksbz10KCIuL2xpYi9jaDJkIiksYT10KCIuL2xpYi9jaG5kIik7ZS5leHBvcnRzPW59LHsiLi9saWIvY2gxZCI6MTE0LCIuL2xpYi9jaDJkIjoxMTUsIi4vbGliL2NobmQiOjExNn1dLDExNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0wLHI9MCxuPTE7bjx0Lmxlbmd0aDsrK24pdFtuXVswXTx0W2VdWzBdJiYoZT1uKSx0W25dWzBdPnRbcl1bMF0mJihyPW4pO3JldHVybiByPmU/W1tlXSxbcl1dOmU+cj9bW3JdLFtlXV06W1tlXV19ZS5leHBvcnRzPW59LHt9XSwxMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1pKHQpLHI9ZS5sZW5ndGg7aWYoMj49cilyZXR1cm5bXTtmb3IodmFyIG49bmV3IEFycmF5KHIpLG89ZVtyLTFdLGE9MDtyPmE7KythKXt2YXIgcz1lW2FdO25bYV09W28sc10sbz1zfXJldHVybiBufWUuZXhwb3J0cz1uO3ZhciBpPXQoIm1vbm90b25lLWNvbnZleC1odWxsLTJkIil9LHsibW9ub3RvbmUtY29udmV4LWh1bGwtMmQiOjExOH1dLDExNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPGUubGVuZ3RoOysraSluW2ldPXRbZVtpXV07Zm9yKHZhciBvPWUubGVuZ3RoLGk9MDtyPmk7KytpKWUuaW5kZXhPZihpKTwwJiYobltvKytdPXRbaV0pO3JldHVybiBufWZ1bmN0aW9uIGkodCxlKXsKZm9yKHZhciByPXQubGVuZ3RoLG49ZS5sZW5ndGgsaT0wO3I+aTsrK2kpZm9yKHZhciBvPXRbaV0sYT0wO2E8by5sZW5ndGg7KythKXt2YXIgcz1vW2FdO2lmKG4+cylvW2FdPWVbc107ZWxzZXtzLT1uO2Zvcih2YXIgbD0wO24+bDsrK2wpcz49ZVtsXSYmKHMrPTEpO29bYV09c319cmV0dXJuIHR9ZnVuY3Rpb24gbyh0LGUpe3RyeXtyZXR1cm4gYSh0LCEwKX1jYXRjaChyKXt2YXIgbz1zKHQpO2lmKG8ubGVuZ3RoPD1lKXJldHVybltdO3ZhciBsPW4odCxvKSx1PWEobCwhMCk7cmV0dXJuIGkodSxvKX19ZS5leHBvcnRzPW87dmFyIGE9dCgiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiKSxzPXQoImFmZmluZS1odWxsIil9LHsiYWZmaW5lLWh1bGwiOjExNywiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiOjI0Nn1dLDExNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKzEpLG49MDtuPHQubGVuZ3RoOysrbilyW25dPXRbbl07Zm9yKHZhciBuPTA7bjw9dC5sZW5ndGg7KytuKXtmb3IodmFyIGk9dC5sZW5ndGg7ZT49aTsrK2kpe2Zvcih2YXIgYT1uZXcgQXJyYXkoZSkscz0wO2U+czsrK3MpYVtzXT1NYXRoLnBvdyhpKzEtbixzKTtyW2ldPWF9dmFyIGw9by5hcHBseSh2b2lkIDAscik7aWYobClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBpKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDA9PT1lKXJldHVybltdO2lmKDE9PT1lKXJldHVyblswXTtmb3IodmFyIHI9dFswXS5sZW5ndGgsaT1bdFswXV0sbz1bMF0sYT0xO2U+YTsrK2EpaWYoaS5wdXNoKHRbYV0pLG4oaSxyKSl7aWYoby5wdXNoKGEpLG8ubGVuZ3RoPT09cisxKXJldHVybiBvfWVsc2UgaS5wb3AoKTtyZXR1cm4gb31lLmV4cG9ydHM9aTt2YXIgbz10KCJyb2J1c3Qtb3JpZW50YXRpb24iKX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjQ2Mn1dLDExODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDM+ZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKSxuPTA7ZT5uOysrbilyW25dPW47cmV0dXJuIDI9PT1lJiZ0WzBdWzBdPT09dFsxXVswXSYmdFswXVsxXT09PXRbMV1bMV0/WzBdOnJ9Zm9yKHZhciBvPW5ldyBBcnJheShlKSxuPTA7ZT5uOysrbilvW25dPW47by5zb3J0KGZ1bmN0aW9uKGUscil7dmFyIG49dFtlXVswXS10W3JdWzBdO3JldHVybiBuP246dFtlXVsxXS10W3JdWzFdfSk7Zm9yKHZhciBhPVtvWzBdLG9bMV1dLHM9W29bMF0sb1sxXV0sbj0yO2U+bjsrK24pe2Zvcih2YXIgbD1vW25dLHU9dFtsXSxjPWEubGVuZ3RoO2M+MSYmaSh0W2FbYy0yXV0sdFthW2MtMV1dLHUpPD0wOyljLT0xLGEucG9wKCk7Zm9yKGEucHVzaChsKSxjPXMubGVuZ3RoO2M+MSYmaSh0W3NbYy0yXV0sdFtzW2MtMV1dLHUpPj0wOyljLT0xLHMucG9wKCk7cy5wdXNoKGwpfWZvcih2YXIgcj1uZXcgQXJyYXkocy5sZW5ndGgrYS5sZW5ndGgtMiksaD0wLG49MCxmPWEubGVuZ3RoO2Y+bjsrK24pcltoKytdPWFbbl07Zm9yKHZhciBwPXMubGVuZ3RoLTI7cD4wOy0tcClyW2grK109c1twXTtyZXR1cm4gcn1lLmV4cG9ydHM9bjt2YXIgaT10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjQ2Mn1dLDExOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17QUZHOiJhZmdoYW4iLEFMQToiXFxiXFx3bGFuZCIsQUxCOiJhbGJhbmlhIixEWkE6ImFsZ2VyaWEiLEFTTToiXig/PS4qYW1lcmljKS4qc2Ftb2EiLEFORDoiYW5kb3JyYSIsQUdPOiJhbmdvbGEiLEFJQToiYW5ndWlsbD9hIixBVEE6ImFudGFyY3RpY2EiLEFURzoiYW50aWd1YSIsQVJHOiJhcmdlbnRpbiIsQVJNOiJhcm1lbmlhIixBQlc6Il4oPyEuKmJvbmFpcmUpLipcXGJhcnViYSIsQVVTOiJhdXN0cmFsaWEiLEFVVDoiXig/IS4qaHVuZ2FyeSkuKmF1c3RyaWF8XFxiYXVzdHJpLipcXGJlbXAiLEFaRToiYXplcmJhaWphbiIsQkhTOiJiYWhhbWFzIixCSFI6ImJhaHJhaW4iLEJHRDoiYmFuZ2xhZGVzaHxeKD89LiplYXN0KS4qcGFraT9zdGFuIixCUkI6ImJhcmJhZG9zIixCTFI6ImJlbGFydXN8YnllbG8iLEJFTDoiXig/IS4qbHV4ZW0pLipiZWxnaXVtIixCTFo6ImJlbGl6ZXxeKD89Lipicml0aXNoKS4qaG9uZHVyYXMiLEJFTjoiYmVuaW58ZGFob21lIixCTVU6ImJlcm11ZGEiLEJUTjoiYmh1dGFuIixCT0w6ImJvbGl2aWEiLEJFUzoiXig/PS4qYm9uYWlyZSkuKmV1c3RhdGl1c3xeKD89LipjYXJpYikuKm5ldGhlcmxhbmRzfFxcYmJlcy4/aXNsYW5kcyIsQklIOiJoZXJ6ZWdvdmluYXxib3NuaWEiLEJXQToiYm90c3dhbmF8YmVjaHVhbmEiLEJWVDoiYm91dmV0IixCUkE6ImJyYXppbCIsSU9UOiJicml0aXNoLj9pbmRpYW4uP29jZWFuIixCUk46ImJydW5laSIsQkdSOiJidWxnYXJpYSIsQkZBOiJidXJraW5hfFxcYmZhc298dXBwZXIuP3ZvbHRhIixCREk6ImJ1cnVuZGkiLEtITToiY2FtYm9kaWF8a2FtcHVjaGVhfGtobWVyIixDTVI6ImNhbWVyb29uIixDQU46ImNhbmFkYSIsQ1BWOiJ2ZXJkZSIsQ1lNOiJjYXltYW4iLENBRjoiXFxiY2VudHJhbC5hZnJpY2FuLnJlcHVibGljIixUQ0Q6IlxcYmNoYWQiLENITDoiXFxiY2hpbGUiLENITjoiXig/IS4qXFxibWFjKSg/IS4qXFxiaG9uZykoPyEuKlxcYnRhaSkuKmNoaW5hIixDWFI6ImNocmlzdG1hcyIsQ0NLOiJcXGJjb2Nvc3xrZWVsaW5nIixDT0w6ImNvbG9tYmlhIixDT006ImNvbW9ybyIsQ09EOiJcXGJkZW0uKmNvbmdvfGNvbmdvLipcXGJkZW18Y29uZ28uKlxcYmRyfFxcYmRyLipjb25nb3xiZWxnaWFuLj9jb25nb3xjb25nby4/ZnJlZS4/c3RhdGV8a2luc2hhc2F8emFpcmV8bC5vcG9sZHZpbGxlfGRyY3xkcm9jfHJkYyIsQ09HOiJeKD8hLipcXGJkZW0pKD8hLipcXGJkcikoPyEuKmtpbnNoYXNhKSg/IS4qemFpcmUpKD8hLipiZWxnKSg/IS4qbC5vcG9sZHZpbGxlKSg/IS4qZnJlZSkuKlxcYmNvbmdvIixDT0s6IlxcYmNvb2siLENSSToiY29zdGEuP3JpY2EiLENJVjoiaXZvaXJlfGl2b3J5IixIUlY6ImNyb2F0aWEiLENVQjoiXFxiY3ViYSIsQ1VXOiJeKD8hLipib25haXJlKS4qXFxiY3VyYShjfFx4ZTcpYW8iLENZUDoiY3lwcnVzIixDWkU6Il4oPz0uKnJlcCkuKmN6ZWNofGN6ZWNoaWF8Ym9oZW1pYSIsQ1NLOiJjemVjaG9zbG92YWtpYSIsRE5LOiJkZW5tYXJrIixESkk6ImRqaWJvdXRpIixETUE6ImRvbWluaWNhKD8hbikiLERPTToiZG9taW5pY2FuLnJlcCIsRUNVOiJlY3VhZG9yIixFR1k6ImVneXB0IixTTFY6ImVsLj9zYWx2YWRvciIsR05ROiJndWluZS4qZXF8ZXEuKmd1aW5lfF4oPz0uKnNwYW4pLipndWluZWEiLEVSSToiZXJpdHJlYSIsRVNUOiJlc3RvbmlhIixFVEg6ImV0aGlvcGlhfGFieXNzaW5pYSIsRkxLOiJmYWxrbGFuZHxtYWx2aW5hcyIsRlJPOiJmYXJvZXxmYWVyb2UiLEZKSToiZmlqaSIsRklOOiJmaW5sYW5kIixGUkE6Il4oPyEuKlxcYmRlcCkoPyEuKm1hcnRpbmlxdWUpLipmcmFuY2V8ZnJlbmNoLj9yZXB1YmxpY3xcXGJnYXVsIixHVUY6Il4oPz0uKmZyZW5jaCkuKmd1aWFuYSIsUFlGOiJmcmVuY2guP3BvbHluZXNpYXx0YWhpdGkiLEFURjoiZnJlbmNoLj9zb3V0aGVybiIsR0FCOiJnYWJvbiIsR01COiJnYW1iaWEiLEdFTzoiXig/IS4qc291dGgpLipnZW9yZ2lhIixERFI6Imdlcm1hbi4/ZGVtb2NyYXRpYy4/cmVwdWJsaWN8ZGVtb2NyYXRpYy4/cmVwdWJsaWMuKmdlcm1hbnl8ZWFzdC5nZXJtYW55IixERVU6Il4oPyEuKmVhc3QpLipnZXJtYW55fF4oPz0uKlxcYmZlZC4qXFxicmVwKS4qZ2VybWFuIixHSEE6ImdoYW5hfGdvbGQuP2NvYXN0IixHSUI6ImdpYnJhbHRhciIsR1JDOiJncmVlY2V8aGVsbGVuaWN8aGVsbGFzIixHUkw6ImdyZWVubGFuZCIsR1JEOiJncmVuYWRhIixHTFA6Imd1YWRlbG91cGUiLEdVTToiXFxiZ3VhbSIsR1RNOiJndWF0ZW1hbGEiLEdHWToiZ3Vlcm5zZXkiLEdJTjoiXig/IS4qZXEpKD8hLipzcGFuKSg/IS4qYmlzc2F1KSg/IS4qcG9ydHUpKD8hLipuZXcpLipndWluZWEiLEdOQjoiYmlzc2F1fF4oPz0uKnBvcnR1KS4qZ3VpbmVhIixHVVk6Imd1eWFuYXxicml0aXNoLj9ndWlhbmEiLEhUSToiaGFpdGkiLEhNRDoiaGVhcmQuKm1jZG9uYWxkIixWQVQ6ImhvbHkuP3NlZXx2YXRpY2FufHBhcGFsLj9zdCIsSE5EOiJeKD8hLipicml0KS4qaG9uZHVyYXMiLEhLRzoiaG9uZy4/a29uZyIsSFVOOiJeKD8hLiphdXN0cikuKmh1bmdhcnkiLElTTDoiaWNlbGFuZCIsSU5EOiJpbmRpYSg/IS4qb2NlYSkiLElETjoiaW5kb25lc2lhIixJUk46IlxcYmlyYW58cGVyc2lhIixJUlE6IlxcYmlyYXF8bWVzb3BvdGFtaWEiLElSTDoiaXJlbGFuZCIsSU1OOiJeKD89Lippc2xlKS4qXFxibWFuIixJU1I6ImlzcmFlbCIsSVRBOiJpdGFseSIsSkFNOiJqYW1haWNhIixKUE46ImphcGFuIixKRVk6ImplcnNleSIsSk9SOiJqb3JkYW4iLEtBWjoia2F6YWsiLEtFTjoia2VueWF8YnJpdGlzaC4/ZWFzdC4/YWZyaWNhfGVhc3QuP2FmcmljYS4/cHJvdCIsS0lSOiJraXJpYmF0aSIsUFJLOiJeKD89LipkZW1vY3JhdCkuKlxcYmtvcmVhfF4oPz0uKnBlb3BsZSkuKlxcYmtvcmVhfF4oPz0uKm5vcnRoKS4qXFxia29yZWF8ZHByayIsS09SOiJeKD8hLipkZW1vY3JhdCkoPyEuKnBlb3BsZSkoPyEuKm5vcnRoKS4qXFxia29yZWEiLEtXVDoia3V3YWl0IixLR1o6Imt5cmd5enxraXJnaGl6IixMQU86IlxcYmxhb3M/XFxiIixMVkE6ImxhdHZpYSIsTEJOOiJsZWJhbm9uIixMU086Imxlc290aG98YmFzdXRvIixMQlI6ImxpYmVyaWEiLExCWToibGlieWEiLExJRToibGllY2h0ZW5zdGVpbiIsTFRVOiJsaXRodWFuaWEiLExVWDoiXig/IS4qYmVsZykuKmx1eGVtIixNQUM6Im1hY2Eob3x1KSIsTUtEOiJtYWNlZG9uaWF8Znlyb20iLE1ERzoibWFkYWdhc2NhcnxtYWxhZ2FzeSIsTVdJOiJtYWxhd2l8bnlhc2EiLE1ZUzoibWFsYXlzaWEiLE1EVjoibWFsZGl2ZSIsTUxJOiJcXGJtYWxpXFxiIixNTFQ6IlxcYm1hbHRhIixNSEw6Im1hcnNoYWxsIixNVFE6Im1hcnRpbmlxdWUiLE1SVDoibWF1cml0YW5pYSIsTVVTOiJtYXVyaXRpdXMiLE1ZVDoiXFxibWF5b3R0ZSIsTUVYOiJcXGJtZXhpYyIsRlNNOiJtaWNyb25lc2lhIixNREE6Im1vbGRvdnxiKGF8ZSlzc2FyYWJpYSIsTUNPOiJtb25hY28iLE1ORzoibW9uZ29saWEiLE1ORToiXig/IS4qc2VyYmlhKS4qbW9udGVuZWdybyIsTVNSOiJtb250c2VycmF0IixNQVI6Im1vcm9jY298XFxibWFyb2MiLE1PWjoibW96YW1iaXF1ZSIsTU1SOiJteWFubWFyfGJ1cm1hIixOQU06Im5hbWliaWEiLE5SVToibmF1cnUiLE5QTDoibmVwYWwiLE5MRDoiXig/IS4qXFxiYW50KSg/IS4qXFxiY2FyaWIpLipuZXRoZXJsYW5kcyIsQU5UOiJeKD89LipcXGJhbnQpLioobmV0aGVyfGR1dGNoKSIsTkNMOiJuZXcuP2NhbGVkb25pYSIsTlpMOiJuZXcuP3plYWxhbmQiLE5JQzoibmljYXJhZ3VhIixORVI6IlxcYm5pZ2VyKD8haWEpIixOR0E6Im5pZ2VyaWEiLE5JVToibml1ZSIsTkZLOiJub3Jmb2xrIixNTlA6Im1hcmlhbmEiLE5PUjoibm9yd2F5IixPTU46IlxcYm9tYW58dHJ1Y2lhbCIsUEFLOiJeKD8hLiplYXN0KS4qcGFraT9zdGFuIixQTFc6InBhbGF1IixQU0U6InBhbGVzdGlufFxcYmdhemF8d2VzdC4/YmFuayIsUEFOOiJwYW5hbWEiLFBORzoicGFwdWF8bmV3Lj9ndWluZWEiLFBSWToicGFyYWd1YXkiLFBFUjoicGVydSIsUEhMOiJwaGlsaXBwaW5lcyIsUENOOiJwaXRjYWlybiIsUE9MOiJwb2xhbmQiLFBSVDoicG9ydHVnYWwiLFBSSToicHVlcnRvLj9yaWNvIixRQVQ6InFhdGFyIixSRVU6InIoZXxceGU5KXVuaW9uIixST1U6InIob3x1fG91KW1hbmlhIixSVVM6IlxcYnJ1c3NpYXxzb3ZpZXQuP3VuaW9ufHVcXC4/c1xcLj9zXFwuP3J8c29jaWFsaXN0Lj9yZXB1YmxpY3MiLFJXQToicndhbmRhIixCTE06ImJhcnRoKGV8XHhlOSlsZW15IixTSE46ImhlbGVuYSIsS05BOiJraXR0c3xcXGJuZXZpcyIsTENBOiJcXGJsdWNpYSIsTUFGOiJeKD89Lipjb2xsZWN0aXZpdHkpLiptYXJ0aW58Xig/PS4qZnJhbmNlKS4qbWFydGluKD8haXF1ZSl8Xig/PS4qZnJlbmNoKS4qbWFydGluKD8haXF1ZSkiLFNQTToibWlxdWVsb24iLFZDVDoidmluY2VudCIsV1NNOiJeKD8hLiphbWVyKS4qc2Ftb2EiLFNNUjoic2FuLj9tYXJpbm8iLFNUUDoiXFxicyhhfFx4ZTMpby4/dG9tKGV8XHhlOSkiLFNBVToiXFxic2FcXHcqLj9hcmFiaWEiLFNFTjoic2VuZWdhbCIsU1JCOiJeKD8hLiptb250ZSkuKnNlcmJpYSIsU1lDOiJzZXljaGVsbCIsU0xFOiJzaWVycmEiLFNHUDoic2luZ2Fwb3JlIixTWE06Il4oPyEuKm1hcnRpbikoPyEuKnNhYmEpLiptYWFydGVuIixTVks6Il4oPyEuKmN6ZSkuKnNsb3ZhayIsU1ZOOiJzbG92ZW5pYSIsU0xCOiJzb2xvbW9uIixTT006InNvbWFsaSIsWkFGOiJcXGJzXFx3Ki4/YWZyaWNhIixTR1M6InNvdXRoLj9nZW9yZ2lhfHNhbmR3aWNoIixTU0Q6IlxcYnNcXHcqLj9zdWRhbiIsRVNQOiJzcGFpbiIsTEtBOiJzcmkuP2xhbmthfGNleWxvbiIsU0ROOiJeKD8hLipcXGJzKD8hdSkpLipzdWRhbiIsU1VSOiJzdXJpbmFtfGR1dGNoLj9ndWlhbmEiLFNKTToic3ZhbGJhcmQiLFNXWjoic3dhemlsYW5kIixTV0U6InN3ZWRlbiIsQ0hFOiJzd2l0enxzd2lzcyIsU1lSOiJzeXJpYSIsVFdOOiJ0YWl3YW58dGFpcGVpfGZvcm1vc2EiLFRKSzoidGFqaWsiLFRaQToidGFuemFuaWEiLFRIQToidGhhaWxhbmR8XFxic2lhbSIsVExTOiJeKD89LipsZXN0ZSkuKnRpbW9yfF4oPz0uKmVhc3QpLip0aW1vciIsVEdPOiJ0b2dvIixUS0w6InRva2VsYXUiLFRPTjoidG9uZ2EiLFRUTzoidHJpbmlkYWR8dG9iYWdvIixUVU46InR1bmlzaWEiLFRVUjoidHVya2V5IixUS006InR1cmttZW4iLFRDQToidHVya3MiLFRVVjoidHV2YWx1IixVR0E6InVnYW5kYSIsVUtSOiJ1a3JhaW4iLEFSRToiZW1pcmF0ZXN8XnVcXC4/YVxcLj9lXFwuPyR8dW5pdGVkLj9hcmFiLj9lbSIsR0JSOiJ1bml0ZWQuP2tpbmdkb218YnJpdGFpbnxedVxcLj9rXFwuPyQiLFVTQToidW5pdGVkLj9zdGF0ZXN8XFxidVxcLj9zXFwuP2FcXC4/XFxifFxcYnVcXC4/c1xcLj9cXGIoPyEuKmlzbGFuZHMpIixVTUk6Im1pbm9yLj9vdXRseWluZy4/aXMiLFVSWToidXJ1Z3VheSIsVVpCOiJ1emJlayIsVlVUOiJ2YW51YXR1fG5ldy4/aGVicmlkZXMiLFZFTjoidmVuZXp1ZWxhIixWTk06Il4oPyEuKnJlcHVibGljKS4qdmlldC4/bmFtfF4oPz0uKnNvY2lhbGlzdCkuKnZpZXQuP25hbSIsVkdCOiJeKD89LipcXGJ1XFwuP1xccz9rKS4qdmlyZ2lufF4oPz0uKmJyaXQpLip2aXJnaW58Xig/PS4qa2luZ2RvbSkuKnZpcmdpbiIsVklSOiJeKD89LipcXGJ1XFwuP1xccz9zKS4qdmlyZ2lufF4oPz0uKnN0YXRlcykuKnZpcmdpbiIsV0xGOiJmdXR1bmF8d2FsbGlzIixFU0g6Indlc3Rlcm4uc2FoYXJhIixZRU06Il4oPyEuKmFyYWIpKD8hLipub3J0aCkoPyEuKnNhbmEpKD8hLipwZW8pKD8hLipkZW0pKD8hLipzb3V0aCkoPyEuKmFkZW4pKD8hLipcXGJwXFwuP2RcXC4/cikuKnllbWVuIixZTUQ6Il4oPz0uKnBlbykuKnllbWVufF4oPyEuKnJlcCkoPz0uKmRlbSkuKnllbWVufF4oPz0uKnNvdXRoKS4qeWVtZW58Xig/PS4qYWRlbikuKnllbWVufF4oPz0uKlxcYnBcXC4/ZFxcLj9yKS4qeWVtZW4iLFlVRzoieXVnb3NsYXZpYSIsWk1COiJ6YW1iaWF8bm9ydGhlcm4uP3Job2Rlc2lhIixFQVo6InphbnppYmFyIixaV0U6InppbWJhYndlfF4oPyEuKm5vcnRoZXJuKS4qcmhvZGVzaWEifX0se31dLDEyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dGhpcy5hcmdUeXBlcz1bXSx0aGlzLnNoaW1BcmdzPVtdLHRoaXMuYXJyYXlBcmdzPVtdLHRoaXMuYXJyYXlCbG9ja0luZGljZXM9W10sdGhpcy5zY2FsYXJBcmdzPVtdLHRoaXMub2Zmc2V0QXJncz1bXSx0aGlzLm9mZnNldEFyZ0luZGV4PVtdLHRoaXMuaW5kZXhBcmdzPVtdLHRoaXMuc2hhcGVBcmdzPVtdLHRoaXMuZnVuY05hbWU9IiIsdGhpcy5wcmU9bnVsbCx0aGlzLmJvZHk9bnVsbCx0aGlzLnBvc3Q9bnVsbCx0aGlzLmRlYnVnPSExfWZ1bmN0aW9uIGkodCl7dmFyIGU9bmV3IG47ZS5wcmU9dC5wcmUsZS5ib2R5PXQuYm9keSxlLnBvc3Q9dC5wb3N0O3ZhciByPXQuYXJncy5zbGljZSgwKTtlLmFyZ1R5cGVzPXI7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDsrK2kpe3ZhciBhPXJbaV07aWYoImFycmF5Ij09PWF8fCJvYmplY3QiPT10eXBlb2YgYSYmYS5ibG9ja0luZGljZXMpe2lmKGUuYXJnVHlwZXNbaV09ImFycmF5IixlLmFycmF5QXJncy5wdXNoKGkpLGUuYXJyYXlCbG9ja0luZGljZXMucHVzaChhLmJsb2NrSW5kaWNlcz9hLmJsb2NrSW5kaWNlczowKSxlLnNoaW1BcmdzLnB1c2goImFycmF5IitpKSxpPGUucHJlLmFyZ3MubGVuZ3RoJiZlLnByZS5hcmdzW2ldLmNvdW50PjApdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogcHJlKCkgYmxvY2sgbWF5IG5vdCByZWZlcmVuY2UgYXJyYXkgYXJncyIpO2lmKGk8ZS5wb3N0LmFyZ3MubGVuZ3RoJiZlLnBvc3QuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHBvc3QoKSBibG9jayBtYXkgbm90IHJlZmVyZW5jZSBhcnJheSBhcmdzIil9ZWxzZSBpZigic2NhbGFyIj09PWEpZS5zY2FsYXJBcmdzLnB1c2goaSksZS5zaGltQXJncy5wdXNoKCJzY2FsYXIiK2kpO2Vsc2UgaWYoImluZGV4Ij09PWEpe2lmKGUuaW5kZXhBcmdzLnB1c2goaSksaTxlLnByZS5hcmdzLmxlbmd0aCYmZS5wcmUuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHByZSgpIGJsb2NrIG1heSBub3QgcmVmZXJlbmNlIGFycmF5IGluZGV4Iik7aWYoaTxlLmJvZHkuYXJncy5sZW5ndGgmJmUuYm9keS5hcmdzW2ldLmx2YWx1ZSl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBib2R5KCkgYmxvY2sgbWF5IG5vdCB3cml0ZSB0byBhcnJheSBpbmRleCIpO2lmKGk8ZS5wb3N0LmFyZ3MubGVuZ3RoJiZlLnBvc3QuYXJnc1tpXS5jb3VudD4wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHBvc3QoKSBibG9jayBtYXkgbm90IHJlZmVyZW5jZSBhcnJheSBpbmRleCIpfWVsc2UgaWYoInNoYXBlIj09PWEpe2lmKGUuc2hhcGVBcmdzLnB1c2goaSksaTxlLnByZS5hcmdzLmxlbmd0aCYmZS5wcmUuYXJnc1tpXS5sdmFsdWUpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogcHJlKCkgYmxvY2sgbWF5IG5vdCB3cml0ZSB0byBhcnJheSBzaGFwZSIpO2lmKGk8ZS5ib2R5LmFyZ3MubGVuZ3RoJiZlLmJvZHkuYXJnc1tpXS5sdmFsdWUpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogYm9keSgpIGJsb2NrIG1heSBub3Qgd3JpdGUgdG8gYXJyYXkgc2hhcGUiKTtpZihpPGUucG9zdC5hcmdzLmxlbmd0aCYmZS5wb3N0LmFyZ3NbaV0ubHZhbHVlKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IHBvc3QoKSBibG9jayBtYXkgbm90IHdyaXRlIHRvIGFycmF5IHNoYXBlIil9ZWxzZXtpZigib2JqZWN0IiE9dHlwZW9mIGF8fCFhLm9mZnNldCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBVbmtub3duIGFyZ3VtZW50IHR5cGUgIityW2ldKTtlLmFyZ1R5cGVzW2ldPSJvZmZzZXQiLGUub2Zmc2V0QXJncy5wdXNoKHthcnJheTphLmFycmF5LG9mZnNldDphLm9mZnNldH0pLGUub2Zmc2V0QXJnSW5kZXgucHVzaChpKX19aWYoZS5hcnJheUFyZ3MubGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IE5vIGFycmF5IGFyZ3VtZW50cyBzcGVjaWZpZWQiKTtpZihlLnByZS5hcmdzLmxlbmd0aD5yLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBUb28gbWFueSBhcmd1bWVudHMgaW4gcHJlKCkgYmxvY2siKTtpZihlLmJvZHkuYXJncy5sZW5ndGg+ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjd2lzZTogVG9vIG1hbnkgYXJndW1lbnRzIGluIGJvZHkoKSBibG9jayIpO2lmKGUucG9zdC5hcmdzLmxlbmd0aD5yLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImN3aXNlOiBUb28gbWFueSBhcmd1bWVudHMgaW4gcG9zdCgpIGJsb2NrIik7cmV0dXJuIGUuZGVidWc9ISF0LnByaW50Q29kZXx8ISF0LmRlYnVnLGUuZnVuY05hbWU9dC5mdW5jTmFtZXx8ImN3aXNlIixlLmJsb2NrU2l6ZT10LmJsb2NrU2l6ZXx8NjQsbyhlKX12YXIgbz10KCIuL2xpYi90aHVuay5qcyIpO2UuZXhwb3J0cz1pfSx7Ii4vbGliL3RodW5rLmpzIjoxMjJ9XSwxMjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG4saSxvPXQubGVuZ3RoLGE9ZS5hcnJheUFyZ3MubGVuZ3RoLHM9ZS5pbmRleEFyZ3MubGVuZ3RoPjAsbD1bXSx1PVtdLGM9MCxoPTA7Zm9yKG49MDtvPm47KytuKXUucHVzaChbImkiLG4sIj0wIl0uam9pbigiIikpO2ZvcihpPTA7YT5pOysraSlmb3Iobj0wO28+bjsrK24paD1jLGM9dFtuXSwwPT09bj91LnB1c2goWyJkIixpLCJzIixuLCI9dCIsaSwicCIsY10uam9pbigiIikpOnUucHVzaChbImQiLGksInMiLG4sIj0odCIsaSwicCIsYywiLXMiLGgsIip0IixpLCJwIixoLCIpIl0uam9pbigiIikpO2ZvcihsLnB1c2goInZhciAiK3Uuam9pbigiLCIpKSxuPW8tMTtuPj0wOy0tbiljPXRbbl0sbC5wdXNoKFsiZm9yKGkiLG4sIj0wO2kiLG4sIjxzIixjLCI7KytpIixuLCIpeyJdLmpvaW4oIiIpKTtmb3IobC5wdXNoKHIpLG49MDtvPm47KytuKXtmb3IoaD1jLGM9dFtuXSxpPTA7YT5pOysraSlsLnB1c2goWyJwIixpLCIrPWQiLGksInMiLG5dLmpvaW4oIiIpKTtzJiYobj4wJiZsLnB1c2goWyJpbmRleFsiLGgsIl0tPXMiLGhdLmpvaW4oIiIpKSxsLnB1c2goWyIrK2luZGV4WyIsYywiXSJdLmpvaW4oIiIpKSksbC5wdXNoKCJ9Iil9cmV0dXJuIGwuam9pbigiXG4iKX1mdW5jdGlvbiBpKHQsZSxyLGkpe2Zvcih2YXIgbz1lLmxlbmd0aCxhPXIuYXJyYXlBcmdzLmxlbmd0aCxzPXIuYmxvY2tTaXplLGw9ci5pbmRleEFyZ3MubGVuZ3RoPjAsdT1bXSxjPTA7YT5jOysrYyl1LnB1c2goWyJ2YXIgb2Zmc2V0IixjLCI9cCIsY10uam9pbigiIikpO2Zvcih2YXIgYz10O28+YzsrK2MpdS5wdXNoKFsiZm9yKHZhciBqIitjKyI9U1NbIixlW2NdLCJdfDA7aiIsYywiPjA7KXsiXS5qb2luKCIiKSksdS5wdXNoKFsiaWYoaiIsYywiPCIscywiKXsiXS5qb2luKCIiKSksdS5wdXNoKFsicyIsZVtjXSwiPWoiLGNdLmpvaW4oIiIpKSx1LnB1c2goWyJqIixjLCI9MCJdLmpvaW4oIiIpKSx1LnB1c2goWyJ9ZWxzZXtzIixlW2NdLCI9IixzXS5qb2luKCIiKSksdS5wdXNoKFsiaiIsYywiLT0iLHMsIn0iXS5qb2luKCIiKSksbCYmdS5wdXNoKFsiaW5kZXhbIixlW2NdLCJdPWoiLGNdLmpvaW4oIiIpKTtmb3IodmFyIGM9MDthPmM7KytjKXtmb3IodmFyIGg9WyJvZmZzZXQiK2NdLGY9dDtvPmY7KytmKWgucHVzaChbImoiLGYsIip0IixjLCJwIixlW2ZdXS5qb2luKCIiKSk7dS5wdXNoKFsicCIsYywiPSgiLGguam9pbigiKyIpLCIpIl0uam9pbigiIikpfXUucHVzaChuKGUscixpKSk7Zm9yKHZhciBjPXQ7bz5jOysrYyl1LnB1c2goIn0iKTtyZXR1cm4gdS5qb2luKCJcbiIpfWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPTAscj10WzBdLmxlbmd0aDtyPmU7KXtmb3IodmFyIG49MTtuPHQubGVuZ3RoOysrbilpZih0W25dW2VdIT09dFswXVtlXSlyZXR1cm4gZTsrK2V9cmV0dXJuIGV9ZnVuY3Rpb24gYSh0LGUscil7Zm9yKHZhciBuPXQuYm9keSxpPVtdLG89W10sYT0wO2E8dC5hcmdzLmxlbmd0aDsrK2Epe3ZhciBzPXQuYXJnc1thXTtpZighKHMuY291bnQ8PTApKXt2YXIgbD1uZXcgUmVnRXhwKHMubmFtZSwiZyIpLHU9IiIsYz1lLmFycmF5QXJncy5pbmRleE9mKGEpO3N3aXRjaChlLmFyZ1R5cGVzW2FdKXtjYXNlIm9mZnNldCI6dmFyIGg9ZS5vZmZzZXRBcmdJbmRleC5pbmRleE9mKGEpLGY9ZS5vZmZzZXRBcmdzW2hdO2M9Zi5hcnJheSx1PSIrcSIraDtjYXNlImFycmF5Ijp1PSJwIitjK3U7dmFyIHA9ImwiK2EsZD0iYSIrYztpZigwPT09ZS5hcnJheUJsb2NrSW5kaWNlc1tjXSkxPT09cy5jb3VudD8iZ2VuZXJpYyI9PT1yW2NdP3MubHZhbHVlPyhpLnB1c2goWyJ2YXIgIixwLCI9IixkLCIuZ2V0KCIsdSwiKSJdLmpvaW4oIiIpKSxuPW4ucmVwbGFjZShsLHApLG8ucHVzaChbZCwiLnNldCgiLHUsIiwiLHAsIikiXS5qb2luKCIiKSkpOm49bi5yZXBsYWNlKGwsW2QsIi5nZXQoIix1LCIpIl0uam9pbigiIikpOm49bi5yZXBsYWNlKGwsW2QsIlsiLHUsIl0iXS5qb2luKCIiKSk6ImdlbmVyaWMiPT09cltjXT8oaS5wdXNoKFsidmFyICIscCwiPSIsZCwiLmdldCgiLHUsIikiXS5qb2luKCIiKSksbj1uLnJlcGxhY2UobCxwKSxzLmx2YWx1ZSYmby5wdXNoKFtkLCIuc2V0KCIsdSwiLCIscCwiKSJdLmpvaW4oIiIpKSk6KGkucHVzaChbInZhciAiLHAsIj0iLGQsIlsiLHUsIl0iXS5qb2luKCIiKSksbj1uLnJlcGxhY2UobCxwKSxzLmx2YWx1ZSYmby5wdXNoKFtkLCJbIix1LCJdPSIscF0uam9pbigiIikpKTtlbHNle2Zvcih2YXIgbT1bcy5uYW1lXSxnPVt1XSx2PTA7djxNYXRoLmFicyhlLmFycmF5QmxvY2tJbmRpY2VzW2NdKTt2KyspbS5wdXNoKCJcXHMqXFxbKFteXFxdXSspXFxdIiksZy5wdXNoKCIkIisodisxKSsiKnQiK2MrImIiK3YpO2lmKGw9bmV3IFJlZ0V4cChtLmpvaW4oIiIpLCJnIiksdT1nLmpvaW4oIisiKSwiZ2VuZXJpYyI9PT1yW2NdKXRocm93IG5ldyBFcnJvcigiY3dpc2U6IEdlbmVyaWMgYXJyYXlzIG5vdCBzdXBwb3J0ZWQgaW4gY29tYmluYXRpb24gd2l0aCBibG9ja3MhIik7bj1uLnJlcGxhY2UobCxbZCwiWyIsdSwiXSJdLmpvaW4oIiIpKX1icmVhaztjYXNlInNjYWxhciI6bj1uLnJlcGxhY2UobCwiWSIrZS5zY2FsYXJBcmdzLmluZGV4T2YoYSkpO2JyZWFrO2Nhc2UiaW5kZXgiOm49bi5yZXBsYWNlKGwsImluZGV4Iik7YnJlYWs7Y2FzZSJzaGFwZSI6bj1uLnJlcGxhY2UobCwic2hhcGUiKX19fXJldHVybltpLmpvaW4oIlxuIiksbixvLmpvaW4oIlxuIildLmpvaW4oIlxuIikudHJpbSgpfWZ1bmN0aW9uIHModCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0Lmxlbmd0aCkscj0hMCxuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBpPXRbbl0sbz1pLm1hdGNoKC9cZCsvKTtvPW8/b1swXToiIiwwPT09aS5jaGFyQXQoMCk/ZVtuXT0idSIraS5jaGFyQXQoMSkrbzplW25dPWkuY2hhckF0KDApK28sbj4wJiYocj1yJiZlW25dPT09ZVtuLTFdKX1yZXR1cm4gcj9lWzBdOmUuam9pbigiIil9ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgcj1lWzFdLmxlbmd0aC1NYXRoLmFicyh0LmFycmF5QmxvY2tJbmRpY2VzWzBdKXwwLGw9bmV3IEFycmF5KHQuYXJyYXlBcmdzLmxlbmd0aCksYz1uZXcgQXJyYXkodC5hcnJheUFyZ3MubGVuZ3RoKSxoPTA7aDx0LmFycmF5QXJncy5sZW5ndGg7KytoKWNbaF09ZVsyKmhdLGxbaF09ZVsyKmgrMV07Zm9yKHZhciBmPVtdLHA9W10sZD1bXSxtPVtdLGc9W10saD0wO2g8dC5hcnJheUFyZ3MubGVuZ3RoOysraCl7dC5hcnJheUJsb2NrSW5kaWNlc1toXTwwPyhkLnB1c2goMCksbS5wdXNoKHIpLGYucHVzaChyKSxwLnB1c2gocit0LmFycmF5QmxvY2tJbmRpY2VzW2hdKSk6KGQucHVzaCh0LmFycmF5QmxvY2tJbmRpY2VzW2hdKSxtLnB1c2godC5hcnJheUJsb2NrSW5kaWNlc1toXStyKSxmLnB1c2goMCkscC5wdXNoKHQuYXJyYXlCbG9ja0luZGljZXNbaF0pKTtmb3IodmFyIHY9W10seT0wO3k8bFtoXS5sZW5ndGg7eSsrKWRbaF08PWxbaF1beV0mJmxbaF1beV08bVtoXSYmdi5wdXNoKGxbaF1beV0tZFtoXSk7Zy5wdXNoKHYpfWZvcih2YXIgYj1bIlNTIl0seD1bIid1c2Ugc3RyaWN0JyJdLF89W10seT0wO3I+eTsrK3kpXy5wdXNoKFsicyIseSwiPVNTWyIseSwiXSJdLmpvaW4oIiIpKTtmb3IodmFyIGg9MDtoPHQuYXJyYXlBcmdzLmxlbmd0aDsrK2gpe2IucHVzaCgiYSIraCksYi5wdXNoKCJ0IitoKSxiLnB1c2goInAiK2gpO2Zvcih2YXIgeT0wO3I+eTsrK3kpXy5wdXNoKFsidCIsaCwicCIseSwiPXQiLGgsIlsiLGRbaF0reSwiXSJdLmpvaW4oIiIpKTtmb3IodmFyIHk9MDt5PE1hdGguYWJzKHQuYXJyYXlCbG9ja0luZGljZXNbaF0pOysreSlfLnB1c2goWyJ0IixoLCJiIix5LCI9dCIsaCwiWyIsZltoXSt5LCJdIl0uam9pbigiIikpfWZvcih2YXIgaD0wO2g8dC5zY2FsYXJBcmdzLmxlbmd0aDsrK2gpYi5wdXNoKCJZIitoKTtpZih0LnNoYXBlQXJncy5sZW5ndGg+MCYmXy5wdXNoKCJzaGFwZT1TUy5zbGljZSgwKSIpLHQuaW5kZXhBcmdzLmxlbmd0aD4wKXtmb3IodmFyIHc9bmV3IEFycmF5KHIpLGg9MDtyPmg7KytoKXdbaF09IjAiO18ucHVzaChbImluZGV4PVsiLHcuam9pbigiLCIpLCJdIl0uam9pbigiIikpfWZvcih2YXIgaD0wO2g8dC5vZmZzZXRBcmdzLmxlbmd0aDsrK2gpe2Zvcih2YXIgTT10Lm9mZnNldEFyZ3NbaF0saz1bXSx5PTA7eTxNLm9mZnNldC5sZW5ndGg7Kyt5KTAhPT1NLm9mZnNldFt5XSYmKDE9PT1NLm9mZnNldFt5XT9rLnB1c2goWyJ0IixNLmFycmF5LCJwIix5XS5qb2luKCIiKSk6ay5wdXNoKFtNLm9mZnNldFt5XSwiKnQiLE0uYXJyYXksInAiLHldLmpvaW4oIiIpKSk7MD09PWsubGVuZ3RoP18ucHVzaCgicSIraCsiPTAiKTpfLnB1c2goWyJxIixoLCI9IixrLmpvaW4oIisiKV0uam9pbigiIikpfXZhciBBPXUoW10uY29uY2F0KHQucHJlLnRoaXNWYXJzKS5jb25jYXQodC5ib2R5LnRoaXNWYXJzKS5jb25jYXQodC5wb3N0LnRoaXNWYXJzKSk7Xz1fLmNvbmNhdChBKSx4LnB1c2goInZhciAiK18uam9pbigiLCIpKTtmb3IodmFyIGg9MDtoPHQuYXJyYXlBcmdzLmxlbmd0aDsrK2gpeC5wdXNoKCJwIitoKyJ8PTAiKTt0LnByZS5ib2R5Lmxlbmd0aD4zJiZ4LnB1c2goYSh0LnByZSx0LGMpKTt2YXIgVD1hKHQuYm9keSx0LGMpLEU9byhnKTtyPkU/eC5wdXNoKGkoRSxnWzBdLHQsVCkpOngucHVzaChuKGdbMF0sdCxUKSksdC5wb3N0LmJvZHkubGVuZ3RoPjMmJngucHVzaChhKHQucG9zdCx0LGMpKSx0LmRlYnVnJiZjb25zb2xlLmxvZygiLS0tLS1HZW5lcmF0ZWQgY3dpc2Ugcm91dGluZSBmb3IgIixlLCI6XG4iK3guam9pbigiXG4iKSsiXG4tLS0tLS0tLS0tIik7dmFyIFM9W3QuZnVuY05hbWV8fCJ1bm5hbWVkIiwiX2N3aXNlX2xvb3BfIixsWzBdLmpvaW4oInMiKSwibSIsRSxzKGMpXS5qb2luKCIiKSxMPW5ldyBGdW5jdGlvbihbImZ1bmN0aW9uICIsUywiKCIsYi5qb2luKCIsIiksIil7Iix4LmpvaW4oIlxuIiksIn0gcmV0dXJuICIsU10uam9pbigiIikpO3JldHVybiBMKCl9dmFyIHU9dCgidW5pcSIpO2UuZXhwb3J0cz1sfSx7dW5pcTo0ODJ9XSwxMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1bIid1c2Ugc3RyaWN0JyIsInZhciBDQUNIRUQ9e30iXSxyPVtdLG49dC5mdW5jTmFtZSsiX2N3aXNlX3RodW5rIjtlLnB1c2goWyJyZXR1cm4gZnVuY3Rpb24gIixuLCIoIix0LnNoaW1BcmdzLmpvaW4oIiwiKSwiKXsiXS5qb2luKCIiKSk7Zm9yKHZhciBvPVtdLGE9W10scz1bWyJhcnJheSIsdC5hcnJheUFyZ3NbMF0sIi5zaGFwZS5zbGljZSgiLE1hdGgubWF4KDAsdC5hcnJheUJsb2NrSW5kaWNlc1swXSksdC5hcnJheUJsb2NrSW5kaWNlc1swXTwwPyIsIit0LmFycmF5QmxvY2tJbmRpY2VzWzBdKyIpIjoiKSJdLmpvaW4oIiIpXSxsPVtdLHU9W10sYz0wO2M8dC5hcnJheUFyZ3MubGVuZ3RoOysrYyl7dmFyIGg9dC5hcnJheUFyZ3NbY107ci5wdXNoKFsidCIsaCwiPWFycmF5IixoLCIuZHR5cGUsIiwiciIsaCwiPWFycmF5IixoLCIub3JkZXIiXS5qb2luKCIiKSksby5wdXNoKCJ0IitoKSxvLnB1c2goInIiK2gpLGEucHVzaCgidCIraCksYS5wdXNoKCJyIitoKyIuam9pbigpIikscy5wdXNoKCJhcnJheSIraCsiLmRhdGEiKSxzLnB1c2goImFycmF5IitoKyIuc3RyaWRlIikscy5wdXNoKCJhcnJheSIraCsiLm9mZnNldHwwIiksYz4wJiYobC5wdXNoKCJhcnJheSIrdC5hcnJheUFyZ3NbMF0rIi5zaGFwZS5sZW5ndGg9PT1hcnJheSIraCsiLnNoYXBlLmxlbmd0aCsiKyhNYXRoLmFicyh0LmFycmF5QmxvY2tJbmRpY2VzWzBdKS1NYXRoLmFicyh0LmFycmF5QmxvY2tJbmRpY2VzW2NdKSkpLHUucHVzaCgiYXJyYXkiK3QuYXJyYXlBcmdzWzBdKyIuc2hhcGVbc2hhcGVJbmRleCsiK01hdGgubWF4KDAsdC5hcnJheUJsb2NrSW5kaWNlc1swXSkrIl09PT1hcnJheSIraCsiLnNoYXBlW3NoYXBlSW5kZXgrIitNYXRoLm1heCgwLHQuYXJyYXlCbG9ja0luZGljZXNbY10pKyJdIikpfXQuYXJyYXlBcmdzLmxlbmd0aD4xJiYoZS5wdXNoKCJpZiAoISgiK2wuam9pbigiICYmICIpKyIpKSB0aHJvdyBuZXcgRXJyb3IoJ2N3aXNlOiBBcnJheXMgZG8gbm90IGFsbCBoYXZlIHRoZSBzYW1lIGRpbWVuc2lvbmFsaXR5IScpIiksZS5wdXNoKCJmb3IodmFyIHNoYXBlSW5kZXg9YXJyYXkiK3QuYXJyYXlBcmdzWzBdKyIuc2hhcGUubGVuZ3RoLSIrTWF0aC5hYnModC5hcnJheUJsb2NrSW5kaWNlc1swXSkrIjsgc2hhcGVJbmRleC0tPjA7KSB7IiksZS5wdXNoKCJpZiAoISgiK3Uuam9pbigiICYmICIpKyIpKSB0aHJvdyBuZXcgRXJyb3IoJ2N3aXNlOiBBcnJheXMgZG8gbm90IGFsbCBoYXZlIHRoZSBzYW1lIHNoYXBlIScpIiksZS5wdXNoKCJ9IikpO2Zvcih2YXIgYz0wO2M8dC5zY2FsYXJBcmdzLmxlbmd0aDsrK2Mpcy5wdXNoKCJzY2FsYXIiK3Quc2NhbGFyQXJnc1tjXSk7ci5wdXNoKFsidHlwZT1bIixhLmpvaW4oIiwiKSwiXS5qb2luKCkiXS5qb2luKCIiKSksci5wdXNoKCJwcm9jPUNBQ0hFRFt0eXBlXSIpLGUucHVzaCgidmFyICIrci5qb2luKCIsIikpLGUucHVzaChbImlmKCFwcm9jKXsiLCJDQUNIRURbdHlwZV09cHJvYz1jb21waWxlKFsiLG8uam9pbigiLCIpLCJdKX0iLCJyZXR1cm4gcHJvYygiLHMuam9pbigiLCIpLCIpfSJdLmpvaW4oIiIpKSx0LmRlYnVnJiZjb25zb2xlLmxvZygiLS0tLS1HZW5lcmF0ZWQgdGh1bms6XG4iK2Uuam9pbigiXG4iKSsiXG4tLS0tLS0tLS0tIik7dmFyIGY9bmV3IEZ1bmN0aW9uKCJjb21waWxlIixlLmpvaW4oIlxuIikpO3JldHVybiBmKGkuYmluZCh2b2lkIDAsdCkpfXZhciBpPXQoIi4vY29tcGlsZS5qcyIpO2UuZXhwb3J0cz1ufSx7Ii4vY29tcGlsZS5qcyI6MTIxfV0sMTIzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImN3aXNlLWNvbXBpbGVyIil9LHsiY3dpc2UtY29tcGlsZXIiOjEyMH1dLDEyNDpbZnVuY3Rpb24oZSxyLG4peyFmdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQmJih0Lm93bmVyRG9jdW1lbnR8fHQuZG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBuKHQpe3JldHVybiB0JiYodC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXcpfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gZT50Py0xOnQ+ZT8xOnQ+PWU/MDpOYU59ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbnVsbD09PXQ/TmFOOit0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIWlzTmFOKHQpfWZ1bmN0aW9uIHModCl7cmV0dXJue2xlZnQ6ZnVuY3Rpb24oZSxyLG4saSl7Zm9yKGFyZ3VtZW50cy5sZW5ndGg8MyYmKG49MCksYXJndW1lbnRzLmxlbmd0aDw0JiYoaT1lLmxlbmd0aCk7aT5uOyl7dmFyIG89bitpPj4+MTt0KGVbb10scik8MD9uPW8rMTppPW99cmV0dXJuIG59LHJpZ2h0OmZ1bmN0aW9uKGUscixuLGkpe2Zvcihhcmd1bWVudHMubGVuZ3RoPDMmJihuPTApLGFyZ3VtZW50cy5sZW5ndGg8NCYmKGk9ZS5sZW5ndGgpO2k+bjspe3ZhciBvPW4raT4+PjE7dChlW29dLHIpPjA/aT1vOm49bysxfXJldHVybiBufX19ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC5sZW5ndGh9ZnVuY3Rpb24gdSh0KXtmb3IodmFyIGU9MTt0KmUlMTspZSo9MTA7cmV0dXJuIGV9ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgciBpbiBlKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxyLHt2YWx1ZTplW3JdLGVudW1lcmFibGU6ITF9KX1mdW5jdGlvbiBoKCl7dGhpcy5fPU9iamVjdC5jcmVhdGUobnVsbCl9ZnVuY3Rpb24gZih0KXtyZXR1cm4odCs9IiIpPT09TWF8fHRbMF09PT1rYT9rYSt0OnR9ZnVuY3Rpb24gcCh0KXtyZXR1cm4odCs9IiIpWzBdPT09a2E/dC5zbGljZSgxKTp0fWZ1bmN0aW9uIGQodCl7cmV0dXJuIGYodClpbiB0aGlzLl99ZnVuY3Rpb24gbSh0KXtyZXR1cm4odD1mKHQpKWluIHRoaXMuXyYmZGVsZXRlIHRoaXMuX1t0XX1mdW5jdGlvbiBnKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuXyl0LnB1c2gocChlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gdigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMuXykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24geSgpe2Zvcih2YXIgdCBpbiB0aGlzLl8pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gYigpe3RoaXMuXz1PYmplY3QuY3JlYXRlKG51bGwpfWZ1bmN0aW9uIHgodCl7cmV0dXJuIHR9ZnVuY3Rpb24gXyh0LGUscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ci5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIG49PT1lP3Q6bn19ZnVuY3Rpb24gdyh0LGUpe2lmKGUgaW4gdClyZXR1cm4gZTtlPWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtmb3IodmFyIHI9MCxuPUFhLmxlbmd0aDtuPnI7KytyKXt2YXIgaT1BYVtyXStlO2lmKGkgaW4gdClyZXR1cm4gaX19ZnVuY3Rpb24gTSgpe31mdW5jdGlvbiBrKCl7fWZ1bmN0aW9uIEEodCl7ZnVuY3Rpb24gZSgpe2Zvcih2YXIgZSxuPXIsaT0tMSxvPW4ubGVuZ3RoOysraTxvOykoZT1uW2ldLm9uKSYmZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHR9dmFyIHI9W10sbj1uZXcgaDtyZXR1cm4gZS5vbj1mdW5jdGlvbihlLGkpe3ZhciBvLGE9bi5nZXQoZSk7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9hJiZhLm9uOihhJiYoYS5vbj1udWxsLHI9ci5zbGljZSgwLG89ci5pbmRleE9mKGEpKS5jb25jYXQoci5zbGljZShvKzEpKSxuLnJlbW92ZShlKSksaSYmci5wdXNoKG4uc2V0KGUse29uOml9KSksdCl9LGV9ZnVuY3Rpb24gVCgpe2NhLmV2ZW50LnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gRSgpe2Zvcih2YXIgdCxlPWNhLmV2ZW50O3Q9ZS5zb3VyY2VFdmVudDspZT10O3JldHVybiBlfWZ1bmN0aW9uIFModCl7Zm9yKHZhciBlPW5ldyBrLHI9MCxuPWFyZ3VtZW50cy5sZW5ndGg7KytyPG47KWVbYXJndW1lbnRzW3JdXT1BKGUpO3JldHVybiBlLm9mPWZ1bmN0aW9uKHIsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3RyeXt2YXIgbz1pLnNvdXJjZUV2ZW50PWNhLmV2ZW50O2kudGFyZ2V0PXQsY2EuZXZlbnQ9aSxlW2kudHlwZV0uYXBwbHkocixuKX1maW5hbGx5e2NhLmV2ZW50PW99fX0sZX1mdW5jdGlvbiBMKHQpe3JldHVybiBFYSh0LElhKSx0fWZ1bmN0aW9uIHoodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpmdW5jdGlvbigpe3JldHVybiBTYSh0LHRoaXMpfX1mdW5jdGlvbiBJKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gTGEodCx0aGlzKX19ZnVuY3Rpb24gUCh0LGUpe2Z1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KX1mdW5jdGlvbiBuKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyh0LnNwYWNlLHQubG9jYWwpfWZ1bmN0aW9uIGkoKXt0aGlzLnNldEF0dHJpYnV0ZSh0LGUpfWZ1bmN0aW9uIG8oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxlKX1mdW5jdGlvbiBhKCl7dmFyIHI9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09cj90aGlzLnJlbW92ZUF0dHJpYnV0ZSh0KTp0aGlzLnNldEF0dHJpYnV0ZSh0LHIpfWZ1bmN0aW9uIHMoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP3RoaXMucmVtb3ZlQXR0cmlidXRlTlModC5zcGFjZSx0LmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCxyKX1yZXR1cm4gdD1jYS5ucy5xdWFsaWZ5KHQpLG51bGw9PWU/dC5sb2NhbD9uOnI6ImZ1bmN0aW9uIj09dHlwZW9mIGU/dC5sb2NhbD9zOmE6dC5sb2NhbD9vOml9ZnVuY3Rpb24gQyh0KXtyZXR1cm4gdC50cmltKCkucmVwbGFjZSgvXHMrL2csIiAiKX1mdW5jdGlvbiBSKHQpe3JldHVybiBuZXcgUmVnRXhwKCIoPzpefFxccyspIitjYS5yZXF1b3RlKHQpKyIoPzpcXHMrfCQpIiwiZyIpfWZ1bmN0aW9uIGoodCl7cmV0dXJuKHQrIiIpLnRyaW0oKS5zcGxpdCgvXnxccysvKX1mdW5jdGlvbiBEKHQsZSl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgcj0tMTsrK3I8aTspdFtyXSh0aGlzLGUpfWZ1bmN0aW9uIG4oKXtmb3IodmFyIHI9LTEsbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsrK3I8aTspdFtyXSh0aGlzLG4pfXQ9aih0KS5tYXAoTyk7dmFyIGk9dC5sZW5ndGg7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGU/bjpyfWZ1bmN0aW9uIE8odCl7dmFyIGU9Uih0KTtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihpPXIuY2xhc3NMaXN0KXJldHVybiBuP2kuYWRkKHQpOmkucmVtb3ZlKHQpO3ZhciBpPXIuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIjtuPyhlLmxhc3RJbmRleD0wLGUudGVzdChpKXx8ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixDKGkrIiAiK3QpKSk6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixDKGkucmVwbGFjZShlLCIgIikpKX19ZnVuY3Rpb24gRih0LGUscil7ZnVuY3Rpb24gbigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCl9ZnVuY3Rpb24gaSgpe3RoaXMuc3R5bGUuc2V0UHJvcGVydHkodCxlLHIpfWZ1bmN0aW9uIG8oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4scil9cmV0dXJuIG51bGw9PWU/bjoiZnVuY3Rpb24iPT10eXBlb2YgZT9vOml9ZnVuY3Rpb24gTih0LGUpe2Z1bmN0aW9uIHIoKXtkZWxldGUgdGhpc1t0XX1mdW5jdGlvbiBuKCl7dGhpc1t0XT1lfWZ1bmN0aW9uIGkoKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09cn1yZXR1cm4gbnVsbD09ZT9yOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2k6bn1mdW5jdGlvbiBCKHQpe2Z1bmN0aW9uIGUoKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnQscj10aGlzLm5hbWVzcGFjZVVSSTtyZXR1cm4gcj09PVBhJiZlLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1QYT9lLmNyZWF0ZUVsZW1lbnQodCk6ZS5jcmVhdGVFbGVtZW50TlMocix0KX1mdW5jdGlvbiByKCl7cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50TlModC5zcGFjZSx0LmxvY2FsKX1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90Oih0PWNhLm5zLnF1YWxpZnkodCkpLmxvY2FsP3I6ZX1mdW5jdGlvbiBVKCl7dmFyIHQ9dGhpcy5wYXJlbnROb2RlO3QmJnQucmVtb3ZlQ2hpbGQodGhpcyl9ZnVuY3Rpb24gVih0KXtyZXR1cm57X19kYXRhX186dH19ZnVuY3Rpb24gcSh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gemEodGhpcyx0KX19ZnVuY3Rpb24gRyh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aHx8KHQ9aSksZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSYmcj90KGUuX19kYXRhX18sci5fX2RhdGFfXyk6IWUtIXJ9fWZ1bmN0aW9uIEgodCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoO24+cjtyKyspZm9yKHZhciBpLG89dFtyXSxhPTAscz1vLmxlbmd0aDtzPmE7YSsrKShpPW9bYV0pJiZlKGksYSxyKTtyZXR1cm4gdH1mdW5jdGlvbiBYKHQpe3JldHVybiBFYSh0LFJhKSx0fWZ1bmN0aW9uIFkodCl7dmFyIGUscjtyZXR1cm4gZnVuY3Rpb24obixpLG8pe3ZhciBhLHM9dFtvXS51cGRhdGUsbD1zLmxlbmd0aDtmb3IobyE9ciYmKHI9byxlPTApLGk+PWUmJihlPWkrMSk7IShhPXNbZV0pJiYrK2U8bDspO3JldHVybiBhfX1mdW5jdGlvbiBXKHQsZSxyKXtmdW5jdGlvbiBuKCl7dmFyIGU9dGhpc1thXTtlJiYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSxlLiQpLGRlbGV0ZSB0aGlzW2FdKX1mdW5jdGlvbiBpKCl7dmFyIGk9bChlLGZhKGFyZ3VtZW50cykpO24uY2FsbCh0aGlzKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIodCx0aGlzW2FdPWksaS4kPXIpLGkuXz1lfWZ1bmN0aW9uIG8oKXt2YXIgZSxyPW5ldyBSZWdFeHAoIl5fX29uKFteLl0rKSIrY2EucmVxdW90ZSh0KSsiJCIpO2Zvcih2YXIgbiBpbiB0aGlzKWlmKGU9bi5tYXRjaChyKSl7dmFyIGk9dGhpc1tuXTt0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZVsxXSxpLGkuJCksZGVsZXRlIHRoaXNbbl19fXZhciBhPSJfX29uIit0LHM9dC5pbmRleE9mKCIuIiksbD1aO3M+MCYmKHQ9dC5zbGljZSgwLHMpKTt2YXIgdT1qYS5nZXQodCk7cmV0dXJuIHUmJih0PXUsbD1RKSxzP2U/aTpuOmU/TTpvfWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49Y2EuZXZlbnQ7Y2EuZXZlbnQ9cixlWzBdPXRoaXMuX19kYXRhX187dHJ5e3QuYXBwbHkodGhpcyxlKX1maW5hbGx5e2NhLmV2ZW50PW59fX1mdW5jdGlvbiBRKHQsZSl7dmFyIHI9Wih0LGUpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dC5yZWxhdGVkVGFyZ2V0O24mJihuPT09ZXx8OCZuLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpKXx8ci5jYWxsKGUsdCl9fWZ1bmN0aW9uIEsodCl7dmFyIHI9Ii5kcmFnc3VwcHJlc3MtIisgKytPYSxpPSJjbGljayIrcixvPWNhLnNlbGVjdChuKHQpKS5vbigidG91Y2htb3ZlIityLFQpLm9uKCJkcmFnc3RhcnQiK3IsVCkub24oInNlbGVjdHN0YXJ0IityLFQpO2lmKG51bGw9PURhJiYoRGE9Im9uc2VsZWN0c3RhcnQiaW4gdD8hMTp3KHQuc3R5bGUsInVzZXJTZWxlY3QiKSksRGEpe3ZhciBhPWUodCkuc3R5bGUscz1hW0RhXTthW0RhXT0ibm9uZSJ9cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKG8ub24ocixudWxsKSxEYSYmKGFbRGFdPXMpLHQpe3ZhciBlPWZ1bmN0aW9uKCl7by5vbihpLG51bGwpfTtvLm9uKGksZnVuY3Rpb24oKXtUKCksZSgpfSwhMCksc2V0VGltZW91dChlLDApfX19ZnVuY3Rpb24gSih0LGUpe2UuY2hhbmdlZFRvdWNoZXMmJihlPWUuY2hhbmdlZFRvdWNoZXNbMF0pO3ZhciByPXQub3duZXJTVkdFbGVtZW50fHx0O2lmKHIuY3JlYXRlU1ZHUG9pbnQpe3ZhciBpPXIuY3JlYXRlU1ZHUG9pbnQoKTtpZigwPkZhKXt2YXIgbz1uKHQpO2lmKG8uc2Nyb2xsWHx8by5zY3JvbGxZKXtyPWNhLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgic3ZnIikuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjAsbGVmdDowLG1hcmdpbjowLHBhZGRpbmc6MCxib3JkZXI6Im5vbmUifSwiaW1wb3J0YW50Iik7dmFyIGE9clswXVswXS5nZXRTY3JlZW5DVE0oKTtGYT0hKGEuZnx8YS5lKSxyLnJlbW92ZSgpfX1yZXR1cm4gRmE/KGkueD1lLnBhZ2VYLGkueT1lLnBhZ2VZKTooaS54PWUuY2xpZW50WCxpLnk9ZS5jbGllbnRZKSxpPWkubWF0cml4VHJhbnNmb3JtKHQuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSxbaS54LGkueV19dmFyIHM9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm5bZS5jbGllbnRYLXMubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXMudG9wLXQuY2xpZW50VG9wXX1mdW5jdGlvbiAkKCl7cmV0dXJuIGNhLmV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXJ9ZnVuY3Rpb24gdHQodCl7cmV0dXJuIHQ+MD8xOjA+dD8tMTowfWZ1bmN0aW9uIGV0KHQsZSxyKXtyZXR1cm4oZVswXS10WzBdKSooclsxXS10WzFdKS0oZVsxXS10WzFdKSooclswXS10WzBdKX1mdW5jdGlvbiBydCh0KXtyZXR1cm4gdD4xPzA6LTE+dD9VYTpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gbnQodCl7cmV0dXJuIHQ+MT9HYTotMT50Py1HYTpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gaXQodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9ZnVuY3Rpb24gb3QodCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKSsxL3QpLzJ9ZnVuY3Rpb24gYXQodCl7cmV0dXJuKCh0PU1hdGguZXhwKDIqdCkpLTEpLyh0KzEpfWZ1bmN0aW9uIHN0KHQpe3JldHVybih0PU1hdGguc2luKHQvMikpKnR9ZnVuY3Rpb24gbHQoKXt9ZnVuY3Rpb24gdXQodCxlLHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgdXQ/KHRoaXMuaD0rdCx0aGlzLnM9K2Usdm9pZCh0aGlzLmw9K3IpKTphcmd1bWVudHMubGVuZ3RoPDI/dCBpbnN0YW5jZW9mIHV0P25ldyB1dCh0LmgsdC5zLHQubCk6TXQoIiIrdCxrdCx1dCk6bmV3IHV0KHQsZSxyKX1mdW5jdGlvbiBjdCh0LGUscil7ZnVuY3Rpb24gbih0KXtyZXR1cm4gdD4zNjA/dC09MzYwOjA+dCYmKHQrPTM2MCksNjA+dD9vKyhhLW8pKnQvNjA6MTgwPnQ/YToyNDA+dD9vKyhhLW8pKigyNDAtdCkvNjA6b31mdW5jdGlvbiBpKHQpe3JldHVybiBNYXRoLnJvdW5kKDI1NSpuKHQpKX12YXIgbyxhO3JldHVybiB0PWlzTmFOKHQpPzA6KHQlPTM2MCk8MD90KzM2MDp0LGU9aXNOYU4oZSk/MDowPmU/MDplPjE/MTplLHI9MD5yPzA6cj4xPzE6cixhPS41Pj1yP3IqKDErZSk6citlLXIqZSxvPTIqci1hLG5ldyBidChpKHQrMTIwKSxpKHQpLGkodC0xMjApKX1mdW5jdGlvbiBodCh0LGUscil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBodD8odGhpcy5oPSt0LHRoaXMuYz0rZSx2b2lkKHRoaXMubD0rcikpOmFyZ3VtZW50cy5sZW5ndGg8Mj90IGluc3RhbmNlb2YgaHQ/bmV3IGh0KHQuaCx0LmMsdC5sKTp0IGluc3RhbmNlb2YgcHQ/bXQodC5sLHQuYSx0LmIpOm10KCh0PUF0KCh0PWNhLnJnYih0KSkucix0LmcsdC5iKSkubCx0LmEsdC5iKTpuZXcgaHQodCxlLHIpfWZ1bmN0aW9uIGZ0KHQsZSxyKXtyZXR1cm4gaXNOYU4odCkmJih0PTApLGlzTmFOKGUpJiYoZT0wKSxuZXcgcHQocixNYXRoLmNvcyh0Kj1IYSkqZSxNYXRoLnNpbih0KSplKX1mdW5jdGlvbiBwdCh0LGUscil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBwdD8odGhpcy5sPSt0LHRoaXMuYT0rZSx2b2lkKHRoaXMuYj0rcikpOmFyZ3VtZW50cy5sZW5ndGg8Mj90IGluc3RhbmNlb2YgcHQ/bmV3IHB0KHQubCx0LmEsdC5iKTp0IGluc3RhbmNlb2YgaHQ/ZnQodC5oLHQuYyx0LmwpOkF0KCh0PWJ0KHQpKS5yLHQuZyx0LmIpOm5ldyBwdCh0LGUscil9ZnVuY3Rpb24gZHQodCxlLHIpe3ZhciBuPSh0KzE2KS8xMTYsaT1uK2UvNTAwLG89bi1yLzIwMDtyZXR1cm4gaT1ndChpKSpycyxuPWd0KG4pKm5zLG89Z3QobykqaXMsbmV3IGJ0KHl0KDMuMjQwNDU0MippLTEuNTM3MTM4NSpuLS40OTg1MzE0Km8pLHl0KC0uOTY5MjY2KmkrMS44NzYwMTA4Km4rLjA0MTU1NipvKSx5dCguMDU1NjQzNCppLS4yMDQwMjU5Km4rMS4wNTcyMjUyKm8pKX1mdW5jdGlvbiBtdCh0LGUscil7cmV0dXJuIHQ+MD9uZXcgaHQoTWF0aC5hdGFuMihyLGUpKlhhLE1hdGguc3FydChlKmUrcipyKSx0KTpuZXcgaHQoTmFOLE5hTix0KX1mdW5jdGlvbiBndCh0KXtyZXR1cm4gdD4uMjA2ODkzMDM0P3QqdCp0Oih0LTQvMjkpLzcuNzg3MDM3fWZ1bmN0aW9uIHZ0KHQpe3JldHVybiB0Pi4wMDg4NTY/TWF0aC5wb3codCwxLzMpOjcuNzg3MDM3KnQrNC8yOX1mdW5jdGlvbiB5dCh0KXtyZXR1cm4gTWF0aC5yb3VuZCgyNTUqKC4wMDMwND49dD8xMi45Mip0OjEuMDU1Kk1hdGgucG93KHQsMS8yLjQpLS4wNTUpKX1mdW5jdGlvbiBidCh0LGUscil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBidD8odGhpcy5yPX5+dCx0aGlzLmc9fn5lLHZvaWQodGhpcy5iPX5+cikpOmFyZ3VtZW50cy5sZW5ndGg8Mj90IGluc3RhbmNlb2YgYnQ/bmV3IGJ0KHQucix0LmcsdC5iKTpNdCgiIit0LGJ0LGN0KTpuZXcgYnQodCxlLHIpfWZ1bmN0aW9uIHh0KHQpe3JldHVybiBuZXcgYnQodD4+MTYsdD4+OCYyNTUsMjU1JnQpfWZ1bmN0aW9uIF90KHQpe3JldHVybiB4dCh0KSsiIn1mdW5jdGlvbiB3dCh0KXtyZXR1cm4gMTY+dD8iMCIrTWF0aC5tYXgoMCx0KS50b1N0cmluZygxNik6TWF0aC5taW4oMjU1LHQpLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBNdCh0LGUscil7dmFyIG4saSxvLGE9MCxzPTAsbD0wO2lmKG49LyhbYS16XSspXCgoLiopXCkvLmV4ZWModD10LnRvTG93ZXJDYXNlKCkpKXN3aXRjaChpPW5bMl0uc3BsaXQoIiwiKSxuWzFdKXtjYXNlImhzbCI6cmV0dXJuIHIocGFyc2VGbG9hdChpWzBdKSxwYXJzZUZsb2F0KGlbMV0pLzEwMCxwYXJzZUZsb2F0KGlbMl0pLzEwMCk7Y2FzZSJyZ2IiOnJldHVybiBlKEV0KGlbMF0pLEV0KGlbMV0pLEV0KGlbMl0pKX1yZXR1cm4obz1zcy5nZXQodCkpP2Uoby5yLG8uZyxvLmIpOihudWxsPT10fHwiIyIhPT10LmNoYXJBdCgwKXx8aXNOYU4obz1wYXJzZUludCh0LnNsaWNlKDEpLDE2KSl8fCg0PT09dC5sZW5ndGg/KGE9KDM4NDAmbyk+PjQsYT1hPj40fGEscz0yNDAmbyxzPXM+PjR8cyxsPTE1Jm8sbD1sPDw0fGwpOjc9PT10Lmxlbmd0aCYmKGE9KDE2NzExNjgwJm8pPj4xNixzPSg2NTI4MCZvKT4+OCxsPTI1NSZvKSksZShhLHMsbCkpfWZ1bmN0aW9uIGt0KHQsZSxyKXt2YXIgbixpLG89TWF0aC5taW4odC89MjU1LGUvPTI1NSxyLz0yNTUpLGE9TWF0aC5tYXgodCxlLHIpLHM9YS1vLGw9KGErbykvMjtyZXR1cm4gcz8oaT0uNT5sP3MvKGErbyk6cy8oMi1hLW8pLG49dD09YT8oZS1yKS9zKyhyPmU/NjowKTplPT1hPyhyLXQpL3MrMjoodC1lKS9zKzQsbio9NjApOihuPU5hTixpPWw+MCYmMT5sPzA6biksbmV3IHV0KG4saSxsKX1mdW5jdGlvbiBBdCh0LGUscil7dD1UdCh0KSxlPVR0KGUpLHI9VHQocik7dmFyIG49dnQoKC40MTI0NTY0KnQrLjM1NzU3NjEqZSsuMTgwNDM3NSpyKS9ycyksaT12dCgoLjIxMjY3MjkqdCsuNzE1MTUyMiplKy4wNzIxNzUqcikvbnMpLG89dnQoKC4wMTkzMzM5KnQrLjExOTE5MiplKy45NTAzMDQxKnIpL2lzKTtyZXR1cm4gcHQoMTE2KmktMTYsNTAwKihuLWkpLDIwMCooaS1vKSl9ZnVuY3Rpb24gVHQodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gRXQodCl7dmFyIGU9cGFyc2VGbG9hdCh0KTtyZXR1cm4iJSI9PT10LmNoYXJBdCh0Lmxlbmd0aC0xKT9NYXRoLnJvdW5kKDIuNTUqZSk6ZX1mdW5jdGlvbiBTdCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIEx0KHQpe3JldHVybiBmdW5jdGlvbihlLHIsbil7cmV0dXJuIDI9PT1hcmd1bWVudHMubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgciYmKG49cixyPW51bGwpLHp0KGUscix0LG4pfX1mdW5jdGlvbiB6dCh0LGUscixuKXtmdW5jdGlvbiBpKCl7dmFyIHQsZT1sLnN0YXR1cztpZighZSYmUHQobCl8fGU+PTIwMCYmMzAwPmV8fDMwND09PWUpe3RyeXt0PXIuY2FsbChvLGwpfWNhdGNoKG4pe3JldHVybiB2b2lkIGEuZXJyb3IuY2FsbChvLG4pfWEubG9hZC5jYWxsKG8sdCl9ZWxzZSBhLmVycm9yLmNhbGwobyxsKX12YXIgbz17fSxhPWNhLmRpc3BhdGNoKCJiZWZvcmVzZW5kIiwicHJvZ3Jlc3MiLCJsb2FkIiwiZXJyb3IiKSxzPXt9LGw9bmV3IFhNTEh0dHBSZXF1ZXN0LHU9bnVsbDtyZXR1cm4hdGhpcy5YRG9tYWluUmVxdWVzdHx8IndpdGhDcmVkZW50aWFscyJpbiBsfHwhL14oaHR0cChzKT86KT9cL1wvLy50ZXN0KHQpfHwobD1uZXcgWERvbWFpblJlcXVlc3QpLCJvbmxvYWQiaW4gbD9sLm9ubG9hZD1sLm9uZXJyb3I9aTpsLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2wucmVhZHlTdGF0ZT4zJiZpKCl9LGwub25wcm9ncmVzcz1mdW5jdGlvbih0KXt2YXIgZT1jYS5ldmVudDtjYS5ldmVudD10O3RyeXthLnByb2dyZXNzLmNhbGwobyxsKX1maW5hbGx5e2NhLmV2ZW50PWV9fSxvLmhlYWRlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLGFyZ3VtZW50cy5sZW5ndGg8Mj9zW3RdOihudWxsPT1lP2RlbGV0ZSBzW3RdOnNbdF09ZSsiIixvKX0sby5taW1lVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P251bGw6dCsiIixvKTplfSxvLnJlc3BvbnNlVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LG8pOnV9LG8ucmVzcG9uc2U9ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxvfSxbImdldCIsInBvc3QiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe29bdF09ZnVuY3Rpb24oKXtyZXR1cm4gby5zZW5kLmFwcGx5KG8sW3RdLmNvbmNhdChmYShhcmd1bWVudHMpKSl9fSksby5zZW5kPWZ1bmN0aW9uKHIsbixpKXtpZigyPT09YXJndW1lbnRzLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJihpPW4sbj1udWxsKSxsLm9wZW4ocix0LCEwKSxudWxsPT1lfHwiYWNjZXB0ImluIHN8fChzLmFjY2VwdD1lKyIsKi8qIiksbC5zZXRSZXF1ZXN0SGVhZGVyKWZvcih2YXIgYyBpbiBzKWwuc2V0UmVxdWVzdEhlYWRlcihjLHNbY10pO3JldHVybiBudWxsIT1lJiZsLm92ZXJyaWRlTWltZVR5cGUmJmwub3ZlcnJpZGVNaW1lVHlwZShlKSxudWxsIT11JiYobC5yZXNwb25zZVR5cGU9dSksbnVsbCE9aSYmby5vbigiZXJyb3IiLGkpLm9uKCJsb2FkIixmdW5jdGlvbih0KXtpKG51bGwsdCl9KSxhLmJlZm9yZXNlbmQuY2FsbChvLGwpLGwuc2VuZChudWxsPT1uP251bGw6biksb30sby5hYm9ydD1mdW5jdGlvbigpe3JldHVybiBsLmFib3J0KCksb30sY2EucmViaW5kKG8sYSwib24iKSxudWxsPT1uP286by5nZXQoSXQobikpfWZ1bmN0aW9uIEl0KHQpe3JldHVybiAxPT09dC5sZW5ndGg/ZnVuY3Rpb24oZSxyKXt0KG51bGw9PWU/cjpudWxsKX06dH1mdW5jdGlvbiBQdCh0KXt2YXIgZT10LnJlc3BvbnNlVHlwZTtyZXR1cm4gZSYmInRleHQiIT09ZT90LnJlc3BvbnNlOnQucmVzcG9uc2VUZXh0fWZ1bmN0aW9uIEN0KHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoOzI+biYmKGU9MCksMz5uJiYocj1EYXRlLm5vdygpKTt2YXIgaT1yK2Usbz17Yzp0LHQ6aSxuOm51bGx9O3JldHVybiB1cz91cy5uPW86bHM9byx1cz1vLGNzfHwoaHM9Y2xlYXJUaW1lb3V0KGhzKSxjcz0xLGZzKFJ0KSksb31mdW5jdGlvbiBSdCgpe3ZhciB0PWp0KCksZT1EdCgpLXQ7ZT4yND8oaXNGaW5pdGUoZSkmJihjbGVhclRpbWVvdXQoaHMpLGhzPXNldFRpbWVvdXQoUnQsZSkpLGNzPTApOihjcz0xLGZzKFJ0KSl9ZnVuY3Rpb24ganQoKXtmb3IodmFyIHQ9RGF0ZS5ub3coKSxlPWxzO2U7KXQ+PWUudCYmZS5jKHQtZS50KSYmKGUuYz1udWxsKSxlPWUubjtyZXR1cm4gdH1mdW5jdGlvbiBEdCgpe2Zvcih2YXIgdCxlPWxzLHI9MS8wO2U7KWUuYz8oZS50PHImJihyPWUudCksZT0odD1lKS5uKTplPXQ/dC5uPWUubjpscz1lLm47cmV0dXJuIHVzPXQscn1mdW5jdGlvbiBPdCh0LGUpe3JldHVybiBlLSh0P01hdGguY2VpbChNYXRoLmxvZyh0KS9NYXRoLkxOMTApOjEpfWZ1bmN0aW9uIEZ0KHQsZSl7dmFyIHI9TWF0aC5wb3coMTAsMyp3YSg4LWUpKTtyZXR1cm57c2NhbGU6ZT44P2Z1bmN0aW9uKHQpe3JldHVybiB0L3J9OmZ1bmN0aW9uKHQpe3JldHVybiB0KnJ9LHN5bWJvbDp0fX1mdW5jdGlvbiBOdCh0KXt2YXIgZT10LmRlY2ltYWwscj10LnRob3VzYW5kcyxuPXQuZ3JvdXBpbmcsaT10LmN1cnJlbmN5LG89biYmcj9mdW5jdGlvbih0LGUpe2Zvcih2YXIgaT10Lmxlbmd0aCxvPVtdLGE9MCxzPW5bMF0sbD0wO2k+MCYmcz4wJiYobCtzKzE+ZSYmKHM9TWF0aC5tYXgoMSxlLWwpKSxvLnB1c2godC5zdWJzdHJpbmcoaS09cyxpK3MpKSwhKChsKz1zKzEpPmUpKTspcz1uW2E9KGErMSklbi5sZW5ndGhdO3JldHVybiBvLnJldmVyc2UoKS5qb2luKHIpfTp4O3JldHVybiBmdW5jdGlvbih0KXt2YXIgcj1kcy5leGVjKHQpLG49clsxXXx8IiAiLGE9clsyXXx8Ij4iLHM9clszXXx8Ii0iLGw9cls0XXx8IiIsdT1yWzVdLGM9K3JbNl0saD1yWzddLGY9cls4XSxwPXJbOV0sZD0xLG09IiIsZz0iIix2PSExLHk9ITA7c3dpdGNoKGYmJihmPStmLnN1YnN0cmluZygxKSksKHV8fCIwIj09PW4mJiI9Ij09PWEpJiYodT1uPSIwIixhPSI9IikscCl7Y2FzZSJuIjpoPSEwLHA9ImciO2JyZWFrO2Nhc2UiJSI6ZD0xMDAsZz0iJSIscD0iZiI7YnJlYWs7Y2FzZSJwIjpkPTEwMCxnPSIlIixwPSJyIjticmVhaztjYXNlImIiOmNhc2UibyI6Y2FzZSJ4IjpjYXNlIlgiOiIjIj09PWwmJihtPSIwIitwLnRvTG93ZXJDYXNlKCkpO2Nhc2UiYyI6eT0hMTtjYXNlImQiOnY9ITAsZj0wO2JyZWFrO2Nhc2UicyI6ZD0tMSxwPSJyIn0iJCI9PT1sJiYobT1pWzBdLGc9aVsxXSksInIiIT1wfHxmfHwocD0iZyIpLG51bGwhPWYmJigiZyI9PXA/Zj1NYXRoLm1heCgxLE1hdGgubWluKDIxLGYpKToiZSIhPXAmJiJmIiE9cHx8KGY9TWF0aC5tYXgoMCxNYXRoLm1pbigyMCxmKSkpKSxwPW1zLmdldChwKXx8QnQ7dmFyIGI9dSYmaDtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9ZztpZih2JiZ0JTEpcmV0dXJuIiI7dmFyIGk9MD50fHwwPT09dCYmMD4xL3Q/KHQ9LXQsIi0iKToiLSI9PT1zPyIiOnM7aWYoMD5kKXt2YXIgbD1jYS5mb3JtYXRQcmVmaXgodCxmKTt0PWwuc2NhbGUodCkscj1sLnN5bWJvbCtnfWVsc2UgdCo9ZDt0PXAodCxmKTt2YXIgeCxfLHc9dC5sYXN0SW5kZXhPZigiLiIpO2lmKDA+dyl7dmFyIE09eT90Lmxhc3RJbmRleE9mKCJlIik6LTE7MD5NPyh4PXQsXz0iIik6KHg9dC5zdWJzdHJpbmcoMCxNKSxfPXQuc3Vic3RyaW5nKE0pKX1lbHNlIHg9dC5zdWJzdHJpbmcoMCx3KSxfPWUrdC5zdWJzdHJpbmcodysxKTshdSYmaCYmKHg9byh4LDEvMCkpO3ZhciBrPW0ubGVuZ3RoK3gubGVuZ3RoK18ubGVuZ3RoKyhiPzA6aS5sZW5ndGgpLEE9Yz5rP25ldyBBcnJheShrPWMtaysxKS5qb2luKG4pOiIiO3JldHVybiBiJiYoeD1vKEEreCxBLmxlbmd0aD9jLV8ubGVuZ3RoOjEvMCkpLGkrPW0sdD14K18sKCI8Ij09PWE/aSt0K0E6Ij4iPT09YT9BK2krdDoiXiI9PT1hP0Euc3Vic3RyaW5nKDAsaz4+PTEpK2krdCtBLnN1YnN0cmluZyhrKTppKyhiP3Q6QSt0KSkrcn19fWZ1bmN0aW9uIEJ0KHQpe3JldHVybiB0KyIifWZ1bmN0aW9uIFV0KCl7dGhpcy5fPW5ldyBEYXRlKGFyZ3VtZW50cy5sZW5ndGg+MT9EYXRlLlVUQy5hcHBseSh0aGlzLGFyZ3VtZW50cyk6YXJndW1lbnRzWzBdKX1mdW5jdGlvbiBWdCh0LGUscil7ZnVuY3Rpb24gbihlKXt2YXIgcj10KGUpLG49byhyLDEpO3JldHVybiBuLWU+ZS1yP3I6bn1mdW5jdGlvbiBpKHIpe3JldHVybiBlKHI9dChuZXcgdnMoci0xKSksMSkscn1mdW5jdGlvbiBvKHQscil7cmV0dXJuIGUodD1uZXcgdnMoK3QpLHIpLHR9ZnVuY3Rpb24gYSh0LG4sbyl7dmFyIGE9aSh0KSxzPVtdO2lmKG8+MSlmb3IoO24+YTspcihhKSVvfHxzLnB1c2gobmV3IERhdGUoK2EpKSxlKGEsMSk7ZWxzZSBmb3IoO24+YTspcy5wdXNoKG5ldyBEYXRlKCthKSksZShhLDEpO3JldHVybiBzfWZ1bmN0aW9uIHModCxlLHIpe3RyeXt2cz1VdDt2YXIgbj1uZXcgVXQ7cmV0dXJuIG4uXz10LGEobixlLHIpfWZpbmFsbHl7dnM9RGF0ZX19dC5mbG9vcj10LHQucm91bmQ9bix0LmNlaWw9aSx0Lm9mZnNldD1vLHQucmFuZ2U9YTt2YXIgbD10LnV0Yz1xdCh0KTtyZXR1cm4gbC5mbG9vcj1sLGwucm91bmQ9cXQobiksbC5jZWlsPXF0KGkpLGwub2Zmc2V0PXF0KG8pLGwucmFuZ2U9cyx0fWZ1bmN0aW9uIHF0KHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3RyeXt2cz1VdDt2YXIgbj1uZXcgVXQ7cmV0dXJuIG4uXz1lLHQobixyKS5ffWZpbmFsbHl7dnM9RGF0ZX19fWZ1bmN0aW9uIEd0KHQpe2Z1bmN0aW9uIGUodCl7ZnVuY3Rpb24gZShlKXtmb3IodmFyIHIsaSxvLGE9W10scz0tMSxsPTA7KytzPG47KTM3PT09dC5jaGFyQ29kZUF0KHMpJiYoYS5wdXNoKHQuc2xpY2UobCxzKSksbnVsbCE9KGk9YnNbcj10LmNoYXJBdCgrK3MpXSkmJihyPXQuY2hhckF0KCsrcykpLChvPVNbcl0pJiYocj1vKGUsbnVsbD09aT8iZSI9PT1yPyIgIjoiMCI6aSkpLGEucHVzaChyKSxsPXMrMSk7cmV0dXJuIGEucHVzaCh0LnNsaWNlKGwscykpLGEuam9pbigiIil9dmFyIG49dC5sZW5ndGg7cmV0dXJuIGUucGFyc2U9ZnVuY3Rpb24oZSl7dmFyIG49e3k6MTkwMCxtOjAsZDoxLEg6MCxNOjAsUzowLEw6MCxaOm51bGx9LGk9cihuLHQsZSwwKTtpZihpIT1lLmxlbmd0aClyZXR1cm4gbnVsbDsicCJpbiBuJiYobi5IPW4uSCUxMisxMipuLnApO3ZhciBvPW51bGwhPW4uWiYmdnMhPT1VdCxhPW5ldyhvP1V0OnZzKTtyZXR1cm4iaiJpbiBuP2Euc2V0RnVsbFllYXIobi55LDAsbi5qKToiVyJpbiBufHwiVSJpbiBuPygidyJpbiBufHwobi53PSJXImluIG4/MTowKSwKYS5zZXRGdWxsWWVhcihuLnksMCwxKSxhLnNldEZ1bGxZZWFyKG4ueSwwLCJXImluIG4/KG4udys2KSU3Kzcqbi5XLShhLmdldERheSgpKzUpJTc6bi53Kzcqbi5VLShhLmdldERheSgpKzYpJTcpKTphLnNldEZ1bGxZZWFyKG4ueSxuLm0sbi5kKSxhLnNldEhvdXJzKG4uSCsobi5aLzEwMHwwKSxuLk0rbi5aJTEwMCxuLlMsbi5MKSxvP2EuXzphfSxlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9ZnVuY3Rpb24gcih0LGUscixuKXtmb3IodmFyIGksbyxhLHM9MCxsPWUubGVuZ3RoLHU9ci5sZW5ndGg7bD5zOyl7aWYobj49dSlyZXR1cm4tMTtpZihpPWUuY2hhckNvZGVBdChzKyspLDM3PT09aSl7aWYoYT1lLmNoYXJBdChzKyspLG89TFthIGluIGJzP2UuY2hhckF0KHMrKyk6YV0sIW98fChuPW8odCxyLG4pKTwwKXJldHVybi0xfWVsc2UgaWYoaSE9ci5jaGFyQ29kZUF0KG4rKykpcmV0dXJuLTF9cmV0dXJuIG59ZnVuY3Rpb24gbih0LGUscil7dy5sYXN0SW5kZXg9MDt2YXIgbj13LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQudz1NLmdldChuWzBdLnRvTG93ZXJDYXNlKCkpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGkodCxlLHIpe3gubGFzdEluZGV4PTA7dmFyIG49eC5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0Lnc9Xy5nZXQoblswXS50b0xvd2VyQ2FzZSgpKSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBvKHQsZSxyKXtULmxhc3RJbmRleD0wO3ZhciBuPVQuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5tPUUuZ2V0KG5bMF0udG9Mb3dlckNhc2UoKSkscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gYSh0LGUscil7ay5sYXN0SW5kZXg9MDt2YXIgbj1rLmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQubT1BLmdldChuWzBdLnRvTG93ZXJDYXNlKCkpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHModCxlLG4pe3JldHVybiByKHQsUy5jLnRvU3RyaW5nKCksZSxuKX1mdW5jdGlvbiBsKHQsZSxuKXtyZXR1cm4gcih0LFMueC50b1N0cmluZygpLGUsbil9ZnVuY3Rpb24gdSh0LGUsbil7cmV0dXJuIHIodCxTLlgudG9TdHJpbmcoKSxlLG4pfWZ1bmN0aW9uIGModCxlLHIpe3ZhciBuPWIuZ2V0KGUuc2xpY2UocixyKz0yKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gbnVsbD09bj8tMToodC5wPW4scil9dmFyIGg9dC5kYXRlVGltZSxmPXQuZGF0ZSxwPXQudGltZSxkPXQucGVyaW9kcyxtPXQuZGF5cyxnPXQuc2hvcnREYXlzLHY9dC5tb250aHMseT10LnNob3J0TW9udGhzO2UudXRjPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIodCl7dHJ5e3ZzPVV0O3ZhciBlPW5ldyB2cztyZXR1cm4gZS5fPXQsbihlKX1maW5hbGx5e3ZzPURhdGV9fXZhciBuPWUodCk7cmV0dXJuIHIucGFyc2U9ZnVuY3Rpb24odCl7dHJ5e3ZzPVV0O3ZhciBlPW4ucGFyc2UodCk7cmV0dXJuIGUmJmUuX31maW5hbGx5e3ZzPURhdGV9fSxyLnRvU3RyaW5nPW4udG9TdHJpbmcscn0sZS5tdWx0aT1lLnV0Yy5tdWx0aT1jZTt2YXIgYj1jYS5tYXAoKSx4PVh0KG0pLF89WXQobSksdz1YdChnKSxNPVl0KGcpLGs9WHQodiksQT1ZdCh2KSxUPVh0KHkpLEU9WXQoeSk7ZC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7Yi5zZXQodC50b0xvd2VyQ2FzZSgpLGUpfSk7dmFyIFM9e2E6ZnVuY3Rpb24odCl7cmV0dXJuIGdbdC5nZXREYXkoKV19LEE6ZnVuY3Rpb24odCl7cmV0dXJuIG1bdC5nZXREYXkoKV19LGI6ZnVuY3Rpb24odCl7cmV0dXJuIHlbdC5nZXRNb250aCgpXX0sQjpmdW5jdGlvbih0KXtyZXR1cm4gdlt0LmdldE1vbnRoKCldfSxjOmUoaCksZDpmdW5jdGlvbih0LGUpe3JldHVybiBIdCh0LmdldERhdGUoKSxlLDIpfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEh0KHQuZ2V0RGF0ZSgpLGUsMil9LEg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHQodC5nZXRIb3VycygpLGUsMil9LEk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHQodC5nZXRIb3VycygpJTEyfHwxMixlLDIpfSxqOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEh0KDErZ3MuZGF5T2ZZZWFyKHQpLGUsMyl9LEw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHQodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfSxtOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEh0KHQuZ2V0TW9udGgoKSsxLGUsMil9LE06ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHQodC5nZXRNaW51dGVzKCksZSwyKX0scDpmdW5jdGlvbih0KXtyZXR1cm4gZFsrKHQuZ2V0SG91cnMoKT49MTIpXX0sUzpmdW5jdGlvbih0LGUpe3JldHVybiBIdCh0LmdldFNlY29uZHMoKSxlLDIpfSxVOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEh0KGdzLnN1bmRheU9mWWVhcih0KSxlLDIpfSx3OmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERheSgpfSxXOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEh0KGdzLm1vbmRheU9mWWVhcih0KSxlLDIpfSx4OmUoZiksWDplKHApLHk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gSHQodC5nZXRGdWxsWWVhcigpJTEwMCxlLDIpfSxZOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIEh0KHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX0sWjpsZSwiJSI6ZnVuY3Rpb24oKXtyZXR1cm4iJSJ9fSxMPXthOm4sQTppLGI6byxCOmEsYzpzLGQ6cmUsZTpyZSxIOmllLEk6aWUsajpuZSxMOnNlLG06ZWUsTTpvZSxwOmMsUzphZSxVOlp0LHc6V3QsVzpRdCx4OmwsWDp1LHk6SnQsWTpLdCxaOiR0LCIlIjp1ZX07cmV0dXJuIGV9ZnVuY3Rpb24gSHQodCxlLHIpe3ZhciBuPTA+dD8iLSI6IiIsaT0obj8tdDp0KSsiIixvPWkubGVuZ3RoO3JldHVybiBuKyhyPm8/bmV3IEFycmF5KHItbysxKS5qb2luKGUpK2k6aSl9ZnVuY3Rpb24gWHQodCl7cmV0dXJuIG5ldyBSZWdFeHAoIl4oPzoiK3QubWFwKGNhLnJlcXVvdGUpLmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBZdCh0KXtmb3IodmFyIGU9bmV3IGgscj0tMSxuPXQubGVuZ3RoOysrcjxuOyllLnNldCh0W3JdLnRvTG93ZXJDYXNlKCkscik7cmV0dXJuIGV9ZnVuY3Rpb24gV3QodCxlLHIpe3hzLmxhc3RJbmRleD0wO3ZhciBuPXhzLmV4ZWMoZS5zbGljZShyLHIrMSkpO3JldHVybiBuPyh0Lnc9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gWnQodCxlLHIpe3hzLmxhc3RJbmRleD0wO3ZhciBuPXhzLmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQuVT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBRdCh0LGUscil7eHMubGFzdEluZGV4PTA7dmFyIG49eHMuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5XPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEt0KHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzQpKTtyZXR1cm4gbj8odC55PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEp0KHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC55PXRlKCtuWzBdKSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiAkdCh0LGUscil7cmV0dXJuL15bKy1dXGR7NH0kLy50ZXN0KGU9ZS5zbGljZShyLHIrNSkpPyh0Llo9LWUscis1KTotMX1mdW5jdGlvbiB0ZSh0KXtyZXR1cm4gdCsodD42OD8xOTAwOjJlMyl9ZnVuY3Rpb24gZWUodCxlLHIpe3hzLmxhc3RJbmRleD0wO3ZhciBuPXhzLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0Lm09blswXS0xLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHJlKHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5kPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG5lKHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8odC5qPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGllKHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5IPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIG9lKHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5NPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGFlKHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5TPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHNlKHQsZSxyKXt4cy5sYXN0SW5kZXg9MDt2YXIgbj14cy5leGVjKGUuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8odC5MPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGxlKHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSxyPWU+MD8iLSI6IisiLG49d2EoZSkvNjB8MCxpPXdhKGUpJTYwO3JldHVybiByK0h0KG4sIjAiLDIpK0h0KGksIjAiLDIpfWZ1bmN0aW9uIHVlKHQsZSxyKXtfcy5sYXN0SW5kZXg9MDt2YXIgbj1fcy5leGVjKGUuc2xpY2UocixyKzEpKTtyZXR1cm4gbj9yK25bMF0ubGVuZ3RoOi0xfWZ1bmN0aW9uIGNlKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPS0xOysrcjxlOyl0W3JdWzBdPXRoaXModFtyXVswXSk7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgcj0wLG49dFtyXTshblsxXShlKTspbj10Wysrcl07cmV0dXJuIG5bMF0oZSl9fWZ1bmN0aW9uIGhlKCl7fWZ1bmN0aW9uIGZlKHQsZSxyKXt2YXIgbj1yLnM9dCtlLGk9bi10LG89bi1pO3IudD10LW8rKGUtaSl9ZnVuY3Rpb24gcGUodCxlKXt0JiZBcy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZBc1t0LnR5cGVdKHQsZSl9ZnVuY3Rpb24gZGUodCxlLHIpe3ZhciBuLGk9LTEsbz10Lmxlbmd0aC1yO2ZvcihlLmxpbmVTdGFydCgpOysraTxvOyluPXRbaV0sZS5wb2ludChuWzBdLG5bMV0sblsyXSk7ZS5saW5lRW5kKCl9ZnVuY3Rpb24gbWUodCxlKXt2YXIgcj0tMSxuPXQubGVuZ3RoO2ZvcihlLnBvbHlnb25TdGFydCgpOysrcjxuOylkZSh0W3JdLGUsMSk7ZS5wb2x5Z29uRW5kKCl9ZnVuY3Rpb24gZ2UoKXtmdW5jdGlvbiB0KHQsZSl7dCo9SGEsZT1lKkhhLzIrVWEvNDt2YXIgcj10LW4sYT1yPj0wPzE6LTEscz1hKnIsbD1NYXRoLmNvcyhlKSx1PU1hdGguc2luKGUpLGM9byp1LGg9aSpsK2MqTWF0aC5jb3MocyksZj1jKmEqTWF0aC5zaW4ocyk7RXMuYWRkKE1hdGguYXRhbjIoZixoKSksbj10LGk9bCxvPXV9dmFyIGUscixuLGksbztTcy5wb2ludD1mdW5jdGlvbihhLHMpe1NzLnBvaW50PXQsbj0oZT1hKSpIYSxpPU1hdGguY29zKHM9KHI9cykqSGEvMitVYS80KSxvPU1hdGguc2luKHMpfSxTcy5saW5lRW5kPWZ1bmN0aW9uKCl7dChlLHIpfX1mdW5jdGlvbiB2ZSh0KXt2YXIgZT10WzBdLHI9dFsxXSxuPU1hdGguY29zKHIpO3JldHVybltuKk1hdGguY29zKGUpLG4qTWF0aC5zaW4oZSksTWF0aC5zaW4ocildfWZ1bmN0aW9uIHllKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdfWZ1bmN0aW9uIGJlKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiB4ZSh0LGUpe3RbMF0rPWVbMF0sdFsxXSs9ZVsxXSx0WzJdKz1lWzJdfWZ1bmN0aW9uIF9lKHQsZSl7cmV0dXJuW3RbMF0qZSx0WzFdKmUsdFsyXSplXX1mdW5jdGlvbiB3ZSh0KXt2YXIgZT1NYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO3RbMF0vPWUsdFsxXS89ZSx0WzJdLz1lfWZ1bmN0aW9uIE1lKHQpe3JldHVybltNYXRoLmF0YW4yKHRbMV0sdFswXSksbnQodFsyXSldfWZ1bmN0aW9uIGtlKHQsZSl7cmV0dXJuIHdhKHRbMF0tZVswXSk8TmEmJndhKHRbMV0tZVsxXSk8TmF9ZnVuY3Rpb24gQWUodCxlKXt0Kj1IYTt2YXIgcj1NYXRoLmNvcyhlKj1IYSk7VGUocipNYXRoLmNvcyh0KSxyKk1hdGguc2luKHQpLE1hdGguc2luKGUpKX1mdW5jdGlvbiBUZSh0LGUscil7KytMcyxJcys9KHQtSXMpL0xzLFBzKz0oZS1QcykvTHMsQ3MrPShyLUNzKS9Mc31mdW5jdGlvbiBFZSgpe2Z1bmN0aW9uIHQodCxpKXt0Kj1IYTt2YXIgbz1NYXRoLmNvcyhpKj1IYSksYT1vKk1hdGguY29zKHQpLHM9bypNYXRoLnNpbih0KSxsPU1hdGguc2luKGkpLHU9TWF0aC5hdGFuMihNYXRoLnNxcnQoKHU9cipsLW4qcykqdSsodT1uKmEtZSpsKSp1Kyh1PWUqcy1yKmEpKnUpLGUqYStyKnMrbipsKTt6cys9dSxScys9dSooZSsoZT1hKSksanMrPXUqKHIrKHI9cykpLERzKz11KihuKyhuPWwpKSxUZShlLHIsbil9dmFyIGUscixuO0JzLnBvaW50PWZ1bmN0aW9uKGksbyl7aSo9SGE7dmFyIGE9TWF0aC5jb3Mobyo9SGEpO2U9YSpNYXRoLmNvcyhpKSxyPWEqTWF0aC5zaW4oaSksbj1NYXRoLnNpbihvKSxCcy5wb2ludD10LFRlKGUscixuKX19ZnVuY3Rpb24gU2UoKXtCcy5wb2ludD1BZX1mdW5jdGlvbiBMZSgpe2Z1bmN0aW9uIHQodCxlKXt0Kj1IYTt2YXIgcj1NYXRoLmNvcyhlKj1IYSksYT1yKk1hdGguY29zKHQpLHM9cipNYXRoLnNpbih0KSxsPU1hdGguc2luKGUpLHU9aSpsLW8qcyxjPW8qYS1uKmwsaD1uKnMtaSphLGY9TWF0aC5zcXJ0KHUqdStjKmMraCpoKSxwPW4qYStpKnMrbypsLGQ9ZiYmLXJ0KHApL2YsbT1NYXRoLmF0YW4yKGYscCk7T3MrPWQqdSxGcys9ZCpjLE5zKz1kKmgsenMrPW0sUnMrPW0qKG4rKG49YSkpLGpzKz1tKihpKyhpPXMpKSxEcys9bSoobysobz1sKSksVGUobixpLG8pfXZhciBlLHIsbixpLG87QnMucG9pbnQ9ZnVuY3Rpb24oYSxzKXtlPWEscj1zLEJzLnBvaW50PXQsYSo9SGE7dmFyIGw9TWF0aC5jb3Mocyo9SGEpO249bCpNYXRoLmNvcyhhKSxpPWwqTWF0aC5zaW4oYSksbz1NYXRoLnNpbihzKSxUZShuLGksbyl9LEJzLmxpbmVFbmQ9ZnVuY3Rpb24oKXt0KGUsciksQnMubGluZUVuZD1TZSxCcy5wb2ludD1BZX19ZnVuY3Rpb24gemUodCxlKXtmdW5jdGlvbiByKHIsbil7cmV0dXJuIHI9dChyLG4pLGUoclswXSxyWzFdKX1yZXR1cm4gdC5pbnZlcnQmJmUuaW52ZXJ0JiYoci5pbnZlcnQ9ZnVuY3Rpb24ocixuKXtyZXR1cm4gcj1lLmludmVydChyLG4pLHImJnQuaW52ZXJ0KHJbMF0sclsxXSl9KSxyfWZ1bmN0aW9uIEllKCl7cmV0dXJuITB9ZnVuY3Rpb24gUGUodCxlLHIsbixpKXt2YXIgbz1bXSxhPVtdO2lmKHQuZm9yRWFjaChmdW5jdGlvbih0KXtpZighKChlPXQubGVuZ3RoLTEpPD0wKSl7dmFyIGUscj10WzBdLG49dFtlXTtpZihrZShyLG4pKXtpLmxpbmVTdGFydCgpO2Zvcih2YXIgcz0wO2U+czsrK3MpaS5wb2ludCgocj10W3NdKVswXSxyWzFdKTtyZXR1cm4gdm9pZCBpLmxpbmVFbmQoKX12YXIgbD1uZXcgUmUocix0LG51bGwsITApLHU9bmV3IFJlKHIsbnVsbCxsLCExKTtsLm89dSxvLnB1c2gobCksYS5wdXNoKHUpLGw9bmV3IFJlKG4sdCxudWxsLCExKSx1PW5ldyBSZShuLG51bGwsbCwhMCksbC5vPXUsby5wdXNoKGwpLGEucHVzaCh1KX19KSxhLnNvcnQoZSksQ2UobyksQ2UoYSksby5sZW5ndGgpe2Zvcih2YXIgcz0wLGw9cix1PWEubGVuZ3RoO3U+czsrK3MpYVtzXS5lPWw9IWw7Zm9yKHZhciBjLGgsZj1vWzBdOzspe2Zvcih2YXIgcD1mLGQ9ITA7cC52OylpZigocD1wLm4pPT09ZilyZXR1cm47Yz1wLnosaS5saW5lU3RhcnQoKTtkb3tpZihwLnY9cC5vLnY9ITAscC5lKXtpZihkKWZvcih2YXIgcz0wLHU9Yy5sZW5ndGg7dT5zOysrcylpLnBvaW50KChoPWNbc10pWzBdLGhbMV0pO2Vsc2UgbihwLngscC5uLngsMSxpKTtwPXAubn1lbHNle2lmKGQpe2M9cC5wLno7Zm9yKHZhciBzPWMubGVuZ3RoLTE7cz49MDstLXMpaS5wb2ludCgoaD1jW3NdKVswXSxoWzFdKX1lbHNlIG4ocC54LHAucC54LC0xLGkpO3A9cC5wfXA9cC5vLGM9cC56LGQ9IWR9d2hpbGUoIXAudik7aS5saW5lRW5kKCl9fX1mdW5jdGlvbiBDZSh0KXtpZihlPXQubGVuZ3RoKXtmb3IodmFyIGUscixuPTAsaT10WzBdOysrbjxlOylpLm49cj10W25dLHIucD1pLGk9cjtpLm49cj10WzBdLHIucD1pfX1mdW5jdGlvbiBSZSh0LGUscixuKXt0aGlzLng9dCx0aGlzLno9ZSx0aGlzLm89cix0aGlzLmU9bix0aGlzLnY9ITEsdGhpcy5uPXRoaXMucD1udWxsfWZ1bmN0aW9uIGplKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihpLG8pe2Z1bmN0aW9uIGEoZSxyKXt2YXIgbj1pKGUscik7dChlPW5bMF0scj1uWzFdKSYmby5wb2ludChlLHIpfWZ1bmN0aW9uIHModCxlKXt2YXIgcj1pKHQsZSk7Zy5wb2ludChyWzBdLHJbMV0pfWZ1bmN0aW9uIGwoKXt5LnBvaW50PXMsZy5saW5lU3RhcnQoKX1mdW5jdGlvbiB1KCl7eS5wb2ludD1hLGcubGluZUVuZCgpfWZ1bmN0aW9uIGModCxlKXttLnB1c2goW3QsZV0pO3ZhciByPWkodCxlKTt4LnBvaW50KHJbMF0sclsxXSl9ZnVuY3Rpb24gaCgpe3gubGluZVN0YXJ0KCksbT1bXX1mdW5jdGlvbiBmKCl7YyhtWzBdWzBdLG1bMF1bMV0pLHgubGluZUVuZCgpO3ZhciB0LGU9eC5jbGVhbigpLHI9Yi5idWZmZXIoKSxuPXIubGVuZ3RoO2lmKG0ucG9wKCksZC5wdXNoKG0pLG09bnVsbCxuKWlmKDEmZSl7dD1yWzBdO3ZhciBpLG49dC5sZW5ndGgtMSxhPS0xO2lmKG4+MCl7Zm9yKF98fChvLnBvbHlnb25TdGFydCgpLF89ITApLG8ubGluZVN0YXJ0KCk7KythPG47KW8ucG9pbnQoKGk9dFthXSlbMF0saVsxXSk7by5saW5lRW5kKCl9fWVsc2Ugbj4xJiYyJmUmJnIucHVzaChyLnBvcCgpLmNvbmNhdChyLnNoaWZ0KCkpKSxwLnB1c2goci5maWx0ZXIoRGUpKX12YXIgcCxkLG0sZz1lKG8pLHY9aS5pbnZlcnQoblswXSxuWzFdKSx5PXtwb2ludDphLGxpbmVTdGFydDpsLGxpbmVFbmQ6dSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt5LnBvaW50PWMseS5saW5lU3RhcnQ9aCx5LmxpbmVFbmQ9ZixwPVtdLGQ9W119LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt5LnBvaW50PWEseS5saW5lU3RhcnQ9bCx5LmxpbmVFbmQ9dSxwPWNhLm1lcmdlKHApO3ZhciB0PVZlKHYsZCk7cC5sZW5ndGg/KF98fChvLnBvbHlnb25TdGFydCgpLF89ITApLFBlKHAsRmUsdCxyLG8pKTp0JiYoX3x8KG8ucG9seWdvblN0YXJ0KCksXz0hMCksby5saW5lU3RhcnQoKSxyKG51bGwsbnVsbCwxLG8pLG8ubGluZUVuZCgpKSxfJiYoby5wb2x5Z29uRW5kKCksXz0hMSkscD1kPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe28ucG9seWdvblN0YXJ0KCksby5saW5lU3RhcnQoKSxyKG51bGwsbnVsbCwxLG8pLG8ubGluZUVuZCgpLG8ucG9seWdvbkVuZCgpfX0sYj1PZSgpLHg9ZShiKSxfPSExO3JldHVybiB5fX1mdW5jdGlvbiBEZSh0KXtyZXR1cm4gdC5sZW5ndGg+MX1mdW5jdGlvbiBPZSgpe3ZhciB0LGU9W107cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe2UucHVzaCh0PVtdKX0scG9pbnQ6ZnVuY3Rpb24oZSxyKXt0LnB1c2goW2Uscl0pfSxsaW5lRW5kOk0sYnVmZmVyOmZ1bmN0aW9uKCl7dmFyIHI9ZTtyZXR1cm4gZT1bXSx0PW51bGwscn0scmVqb2luOmZ1bmN0aW9uKCl7ZS5sZW5ndGg+MSYmZS5wdXNoKGUucG9wKCkuY29uY2F0KGUuc2hpZnQoKSkpfX19ZnVuY3Rpb24gRmUodCxlKXtyZXR1cm4oKHQ9dC54KVswXTwwP3RbMV0tR2EtTmE6R2EtdFsxXSktKChlPWUueClbMF08MD9lWzFdLUdhLU5hOkdhLWVbMV0pfWZ1bmN0aW9uIE5lKHQpe3ZhciBlLHI9TmFOLG49TmFOLGk9TmFOO3JldHVybntsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0LmxpbmVTdGFydCgpLGU9MX0scG9pbnQ6ZnVuY3Rpb24obyxhKXt2YXIgcz1vPjA/VWE6LVVhLGw9d2Eoby1yKTt3YShsLVVhKTxOYT8odC5wb2ludChyLG49KG4rYSkvMj4wP0dhOi1HYSksdC5wb2ludChpLG4pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludChzLG4pLHQucG9pbnQobyxuKSxlPTApOmkhPT1zJiZsPj1VYSYmKHdhKHItaSk8TmEmJihyLT1pKk5hKSx3YShvLXMpPE5hJiYoby09cypOYSksbj1CZShyLG4sbyxhKSx0LnBvaW50KGksbiksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHMsbiksZT0wKSx0LnBvaW50KHI9byxuPWEpLGk9c30sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLHI9bj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItZX19fWZ1bmN0aW9uIEJlKHQsZSxyLG4pe3ZhciBpLG8sYT1NYXRoLnNpbih0LXIpO3JldHVybiB3YShhKT5OYT9NYXRoLmF0YW4oKE1hdGguc2luKGUpKihvPU1hdGguY29zKG4pKSpNYXRoLnNpbihyKS1NYXRoLnNpbihuKSooaT1NYXRoLmNvcyhlKSkqTWF0aC5zaW4odCkpLyhpKm8qYSkpOihlK24pLzJ9ZnVuY3Rpb24gVWUodCxlLHIsbil7dmFyIGk7aWYobnVsbD09dClpPXIqR2Esbi5wb2ludCgtVWEsaSksbi5wb2ludCgwLGkpLG4ucG9pbnQoVWEsaSksbi5wb2ludChVYSwwKSxuLnBvaW50KFVhLC1pKSxuLnBvaW50KDAsLWkpLG4ucG9pbnQoLVVhLC1pKSxuLnBvaW50KC1VYSwwKSxuLnBvaW50KC1VYSxpKTtlbHNlIGlmKHdhKHRbMF0tZVswXSk+TmEpe3ZhciBvPXRbMF08ZVswXT9VYTotVWE7aT1yKm8vMixuLnBvaW50KC1vLGkpLG4ucG9pbnQoMCxpKSxuLnBvaW50KG8saSl9ZWxzZSBuLnBvaW50KGVbMF0sZVsxXSl9ZnVuY3Rpb24gVmUodCxlKXt2YXIgcj10WzBdLG49dFsxXSxpPVtNYXRoLnNpbihyKSwtTWF0aC5jb3MociksMF0sbz0wLGE9MDtFcy5yZXNldCgpO2Zvcih2YXIgcz0wLGw9ZS5sZW5ndGg7bD5zOysrcyl7dmFyIHU9ZVtzXSxjPXUubGVuZ3RoO2lmKGMpZm9yKHZhciBoPXVbMF0sZj1oWzBdLHA9aFsxXS8yK1VhLzQsZD1NYXRoLnNpbihwKSxtPU1hdGguY29zKHApLGc9MTs7KXtnPT09YyYmKGc9MCksdD11W2ddO3ZhciB2PXRbMF0seT10WzFdLzIrVWEvNCxiPU1hdGguc2luKHkpLHg9TWF0aC5jb3MoeSksXz12LWYsdz1fPj0wPzE6LTEsTT13Kl8saz1NPlVhLEE9ZCpiO2lmKEVzLmFkZChNYXRoLmF0YW4yKEEqdypNYXRoLnNpbihNKSxtKngrQSpNYXRoLmNvcyhNKSkpLG8rPWs/Xyt3KlZhOl8sa15mPj1yXnY+PXIpe3ZhciBUPWJlKHZlKGgpLHZlKHQpKTt3ZShUKTt2YXIgRT1iZShpLFQpO3dlKEUpO3ZhciBTPShrXl8+PTA/LTE6MSkqbnQoRVsyXSk7KG4+U3x8bj09PVMmJihUWzBdfHxUWzFdKSkmJihhKz1rXl8+PTA/MTotMSl9aWYoIWcrKylicmVhaztmPXYsZD1iLG09eCxoPXR9fXJldHVybigtTmE+b3x8TmE+byYmMD5FcyleMSZhfWZ1bmN0aW9uIHFlKHQpe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gTWF0aC5jb3ModCkqTWF0aC5jb3MoZSk+b31mdW5jdGlvbiByKHQpe3ZhciByLG8sbCx1LGM7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3U9bD0hMSxjPTF9LHBvaW50OmZ1bmN0aW9uKGgsZil7dmFyIHAsZD1baCxmXSxtPWUoaCxmKSxnPWE/bT8wOmkoaCxmKTptP2koaCsoMD5oP1VhOi1VYSksZik6MDtpZighciYmKHU9bD1tKSYmdC5saW5lU3RhcnQoKSxtIT09bCYmKHA9bihyLGQpLChrZShyLHApfHxrZShkLHApKSYmKGRbMF0rPU5hLGRbMV0rPU5hLG09ZShkWzBdLGRbMV0pKSksbSE9PWwpYz0wLG0/KHQubGluZVN0YXJ0KCkscD1uKGQsciksdC5wb2ludChwWzBdLHBbMV0pKToocD1uKHIsZCksdC5wb2ludChwWzBdLHBbMV0pLHQubGluZUVuZCgpKSxyPXA7ZWxzZSBpZihzJiZyJiZhXm0pe3ZhciB2O2cmb3x8ISh2PW4oZCxyLCEwKSl8fChjPTAsYT8odC5saW5lU3RhcnQoKSx0LnBvaW50KHZbMF1bMF0sdlswXVsxXSksdC5wb2ludCh2WzFdWzBdLHZbMV1bMV0pLHQubGluZUVuZCgpKToodC5wb2ludCh2WzFdWzBdLHZbMV1bMV0pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh2WzBdWzBdLHZbMF1bMV0pKSl9IW18fHImJmtlKHIsZCl8fHQucG9pbnQoZFswXSxkWzFdKSxyPWQsbD1tLG89Z30sbGluZUVuZDpmdW5jdGlvbigpe2wmJnQubGluZUVuZCgpLHI9bnVsbH0sY2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gY3wodSYmbCk8PDF9fX1mdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj12ZSh0KSxpPXZlKGUpLGE9WzEsMCwwXSxzPWJlKG4saSksbD15ZShzLHMpLHU9c1swXSxjPWwtdSp1O2lmKCFjKXJldHVybiFyJiZ0O3ZhciBoPW8qbC9jLGY9LW8qdS9jLHA9YmUoYSxzKSxkPV9lKGEsaCksbT1fZShzLGYpO3hlKGQsbSk7dmFyIGc9cCx2PXllKGQsZykseT15ZShnLGcpLGI9dip2LXkqKHllKGQsZCktMSk7aWYoISgwPmIpKXt2YXIgeD1NYXRoLnNxcnQoYiksXz1fZShnLCgtdi14KS95KTtpZih4ZShfLGQpLF89TWUoXyksIXIpcmV0dXJuIF87dmFyIHcsTT10WzBdLGs9ZVswXSxBPXRbMV0sVD1lWzFdO00+ayYmKHc9TSxNPWssaz13KTt2YXIgRT1rLU0sUz13YShFLVVhKTxOYSxMPVN8fE5hPkU7aWYoIVMmJkE+VCYmKHc9QSxBPVQsVD13KSxMP1M/QStUPjBeX1sxXTwod2EoX1swXS1NKTxOYT9BOlQpOkE8PV9bMV0mJl9bMV08PVQ6RT5VYV4oTTw9X1swXSYmX1swXTw9aykpe3ZhciB6PV9lKGcsKC12K3gpL3kpO3JldHVybiB4ZSh6LGQpLFtfLE1lKHopXX19fWZ1bmN0aW9uIGkoZSxyKXt2YXIgbj1hP3Q6VWEtdCxpPTA7cmV0dXJuLW4+ZT9pfD0xOmU+biYmKGl8PTIpLC1uPnI/aXw9NDpyPm4mJihpfD04KSxpfXZhciBvPU1hdGguY29zKHQpLGE9bz4wLHM9d2Eobyk+TmEsbD1ncih0LDYqSGEpO3JldHVybiBqZShlLHIsbCxhP1swLC10XTpbLVVhLHQtVWFdKX1mdW5jdGlvbiBHZSh0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24oaSl7dmFyIG8sYT1pLmEscz1pLmIsbD1hLngsdT1hLnksYz1zLngsaD1zLnksZj0wLHA9MSxkPWMtbCxtPWgtdTtpZihvPXQtbCxkfHwhKG8+MCkpe2lmKG8vPWQsMD5kKXtpZihmPm8pcmV0dXJuO3A+byYmKHA9byl9ZWxzZSBpZihkPjApe2lmKG8+cClyZXR1cm47bz5mJiYoZj1vKX1pZihvPXItbCxkfHwhKDA+bykpe2lmKG8vPWQsMD5kKXtpZihvPnApcmV0dXJuO28+ZiYmKGY9byl9ZWxzZSBpZihkPjApe2lmKGY+bylyZXR1cm47cD5vJiYocD1vKX1pZihvPWUtdSxtfHwhKG8+MCkpe2lmKG8vPW0sMD5tKXtpZihmPm8pcmV0dXJuO3A+byYmKHA9byl9ZWxzZSBpZihtPjApe2lmKG8+cClyZXR1cm47bz5mJiYoZj1vKX1pZihvPW4tdSxtfHwhKDA+bykpe2lmKG8vPW0sMD5tKXtpZihvPnApcmV0dXJuO28+ZiYmKGY9byl9ZWxzZSBpZihtPjApe2lmKGY+bylyZXR1cm47cD5vJiYocD1vKX1yZXR1cm4gZj4wJiYoaS5hPXt4OmwrZipkLHk6dStmKm19KSwxPnAmJihpLmI9e3g6bCtwKmQseTp1K3AqbX0pLGl9fX19fX1mdW5jdGlvbiBIZSh0LGUscixuKXtmdW5jdGlvbiBpKG4saSl7cmV0dXJuIHdhKG5bMF0tdCk8TmE/aT4wPzA6Mzp3YShuWzBdLXIpPE5hP2k+MD8yOjE6d2EoblsxXS1lKTxOYT9pPjA/MTowOmk+MD8zOjJ9ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBhKHQueCxlLngpfWZ1bmN0aW9uIGEodCxlKXt2YXIgcj1pKHQsMSksbj1pKGUsMSk7cmV0dXJuIHIhPT1uP3ItbjowPT09cj9lWzFdLXRbMV06MT09PXI/dFswXS1lWzBdOjI9PT1yP3RbMV0tZVsxXTplWzBdLXRbMF19cmV0dXJuIGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIGwodCl7Zm9yKHZhciBlPTAscj1nLmxlbmd0aCxuPXRbMV0saT0wO3I+aTsrK2kpZm9yKHZhciBvLGE9MSxzPWdbaV0sbD1zLmxlbmd0aCx1PXNbMF07bD5hOysrYSlvPXNbYV0sdVsxXTw9bj9vWzFdPm4mJmV0KHUsbyx0KT4wJiYrK2U6b1sxXTw9biYmZXQodSxvLHQpPDAmJi0tZSx1PW87cmV0dXJuIDAhPT1lfWZ1bmN0aW9uIHUobyxzLGwsdSl7dmFyIGM9MCxoPTA7aWYobnVsbD09b3x8KGM9aShvLGwpKSE9PShoPWkocyxsKSl8fGEobyxzKTwwXmw+MCl7ZG8gdS5wb2ludCgwPT09Y3x8Mz09PWM/dDpyLGM+MT9uOmUpO3doaWxlKChjPShjK2wrNCklNCkhPT1oKX1lbHNlIHUucG9pbnQoc1swXSxzWzFdKX1mdW5jdGlvbiBjKGksbyl7cmV0dXJuIGk+PXQmJnI+PWkmJm8+PWUmJm4+PW99ZnVuY3Rpb24gaCh0LGUpe2ModCxlKSYmcy5wb2ludCh0LGUpfWZ1bmN0aW9uIGYoKXtMLnBvaW50PWQsZyYmZy5wdXNoKHY9W10pLGs9ITAsTT0hMSxfPXc9TmFOfWZ1bmN0aW9uIHAoKXttJiYoZCh5LGIpLHgmJk0mJkUucmVqb2luKCksbS5wdXNoKEUuYnVmZmVyKCkpKSxMLnBvaW50PWgsTSYmcy5saW5lRW5kKCl9ZnVuY3Rpb24gZCh0LGUpe3Q9TWF0aC5tYXgoLVZzLE1hdGgubWluKFZzLHQpKSxlPU1hdGgubWF4KC1WcyxNYXRoLm1pbihWcyxlKSk7dmFyIHI9Yyh0LGUpO2lmKGcmJnYucHVzaChbdCxlXSksayl5PXQsYj1lLHg9cixrPSExLHImJihzLmxpbmVTdGFydCgpLHMucG9pbnQodCxlKSk7ZWxzZSBpZihyJiZNKXMucG9pbnQodCxlKTtlbHNle3ZhciBuPXthOnt4Ol8seTp3fSxiOnt4OnQseTplfX07UyhuKT8oTXx8KHMubGluZVN0YXJ0KCkscy5wb2ludChuLmEueCxuLmEueSkpLHMucG9pbnQobi5iLngsbi5iLnkpLHJ8fHMubGluZUVuZCgpLEE9ITEpOnImJihzLmxpbmVTdGFydCgpLHMucG9pbnQodCxlKSxBPSExKX1fPXQsdz1lLE09cn12YXIgbSxnLHYseSxiLHgsXyx3LE0sayxBLFQ9cyxFPU9lKCksUz1HZSh0LGUscixuKSxMPXtwb2ludDpoLGxpbmVTdGFydDpmLGxpbmVFbmQ6cCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtzPUUsbT1bXSxnPVtdLEE9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtzPVQsbT1jYS5tZXJnZShtKTt2YXIgZT1sKFt0LG5dKSxyPUEmJmUsaT1tLmxlbmd0aDsocnx8aSkmJihzLnBvbHlnb25TdGFydCgpLHImJihzLmxpbmVTdGFydCgpLHUobnVsbCxudWxsLDEscykscy5saW5lRW5kKCkpLGkmJlBlKG0sbyxlLHUscykscy5wb2x5Z29uRW5kKCkpLG09Zz12PW51bGx9fTtyZXR1cm4gTH19ZnVuY3Rpb24gWGUodCl7dmFyIGU9MCxyPVVhLzMsbj1scih0KSxpPW4oZSxyKTtyZXR1cm4gaS5wYXJhbGxlbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihlPXRbMF0qVWEvMTgwLHI9dFsxXSpVYS8xODApOltlL1VhKjE4MCxyL1VhKjE4MF19LGl9ZnVuY3Rpb24gWWUodCxlKXtmdW5jdGlvbiByKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KG8tMippKk1hdGguc2luKGUpKS9pO3JldHVybltyKk1hdGguc2luKHQqPWkpLGEtcipNYXRoLmNvcyh0KV19dmFyIG49TWF0aC5zaW4odCksaT0obitNYXRoLnNpbihlKSkvMixvPTErbiooMippLW4pLGE9TWF0aC5zcXJ0KG8pL2k7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9YS1lO3JldHVybltNYXRoLmF0YW4yKHQscikvaSxudCgoby0odCp0K3IqcikqaSppKS8oMippKSldfSxyfWZ1bmN0aW9uIFdlKCl7ZnVuY3Rpb24gdCh0LGUpe0dzKz1pKnQtbiplLG49dCxpPWV9dmFyIGUscixuLGk7WnMucG9pbnQ9ZnVuY3Rpb24obyxhKXtacy5wb2ludD10LGU9bj1vLHI9aT1hfSxacy5saW5lRW5kPWZ1bmN0aW9uKCl7dChlLHIpfX1mdW5jdGlvbiBaZSh0LGUpe0hzPnQmJihIcz10KSx0PllzJiYoWXM9dCksWHM+ZSYmKFhzPWUpLGU+V3MmJihXcz1lKX1mdW5jdGlvbiBRZSgpe2Z1bmN0aW9uIHQodCxlKXthLnB1c2goIk0iLHQsIiwiLGUsbyl9ZnVuY3Rpb24gZSh0LGUpe2EucHVzaCgiTSIsdCwiLCIsZSkscy5wb2ludD1yfWZ1bmN0aW9uIHIodCxlKXthLnB1c2goIkwiLHQsIiwiLGUpfWZ1bmN0aW9uIG4oKXtzLnBvaW50PXR9ZnVuY3Rpb24gaSgpe2EucHVzaCgiWiIpfXZhciBvPUtlKDQuNSksYT1bXSxzPXtwb2ludDp0LGxpbmVTdGFydDpmdW5jdGlvbigpe3MucG9pbnQ9ZX0sbGluZUVuZDpuLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3MubGluZUVuZD1pfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cy5saW5lRW5kPW4scy5wb2ludD10fSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gbz1LZSh0KSxzfSxyZXN1bHQ6ZnVuY3Rpb24oKXtpZihhLmxlbmd0aCl7dmFyIHQ9YS5qb2luKCIiKTtyZXR1cm4gYT1bXSx0fX19O3JldHVybiBzfWZ1bmN0aW9uIEtlKHQpe3JldHVybiJtMCwiK3QrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrLTIqdCsiYSIrdCsiLCIrdCsiIDAgMSwxIDAsIisyKnQrInoifWZ1bmN0aW9uIEplKHQsZSl7SXMrPXQsUHMrPWUsKytDc31mdW5jdGlvbiAkZSgpe2Z1bmN0aW9uIHQodCxuKXt2YXIgaT10LWUsbz1uLXIsYT1NYXRoLnNxcnQoaSppK28qbyk7UnMrPWEqKGUrdCkvMixqcys9YSoocituKS8yLERzKz1hLEplKGU9dCxyPW4pfXZhciBlLHI7S3MucG9pbnQ9ZnVuY3Rpb24obixpKXtLcy5wb2ludD10LEplKGU9bixyPWkpfX1mdW5jdGlvbiB0cigpe0tzLnBvaW50PUplfWZ1bmN0aW9uIGVyKCl7ZnVuY3Rpb24gdCh0LGUpe3ZhciByPXQtbixvPWUtaSxhPU1hdGguc3FydChyKnIrbypvKTtScys9YSoobit0KS8yLGpzKz1hKihpK2UpLzIsRHMrPWEsYT1pKnQtbiplLE9zKz1hKihuK3QpLEZzKz1hKihpK2UpLE5zKz0zKmEsSmUobj10LGk9ZSl9dmFyIGUscixuLGk7S3MucG9pbnQ9ZnVuY3Rpb24obyxhKXtLcy5wb2ludD10LEplKGU9bj1vLHI9aT1hKX0sS3MubGluZUVuZD1mdW5jdGlvbigpe3QoZSxyKX19ZnVuY3Rpb24gcnIodCl7ZnVuY3Rpb24gZShlLHIpe3QubW92ZVRvKGUrYSxyKSx0LmFyYyhlLHIsYSwwLFZhKX1mdW5jdGlvbiByKGUscil7dC5tb3ZlVG8oZSxyKSxzLnBvaW50PW59ZnVuY3Rpb24gbihlLHIpe3QubGluZVRvKGUscil9ZnVuY3Rpb24gaSgpe3MucG9pbnQ9ZX1mdW5jdGlvbiBvKCl7dC5jbG9zZVBhdGgoKX12YXIgYT00LjUscz17cG9pbnQ6ZSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtzLnBvaW50PXJ9LGxpbmVFbmQ6aSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtzLmxpbmVFbmQ9b30scG9seWdvbkVuZDpmdW5jdGlvbigpe3MubGluZUVuZD1pLHMucG9pbnQ9ZX0scG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuIGE9dCxzfSxyZXN1bHQ6TX07cmV0dXJuIHN9ZnVuY3Rpb24gbnIodCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4ocz9uOnIpKHQpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIGFyKGUsZnVuY3Rpb24ocixuKXtyPXQocixuKSxlLnBvaW50KHJbMF0sclsxXSl9KX1mdW5jdGlvbiBuKGUpe2Z1bmN0aW9uIHIocixuKXtyPXQocixuKSxlLnBvaW50KHJbMF0sclsxXSl9ZnVuY3Rpb24gbigpe2I9TmFOLGsucG9pbnQ9byxlLmxpbmVTdGFydCgpfWZ1bmN0aW9uIG8ocixuKXt2YXIgbz12ZShbcixuXSksYT10KHIsbik7aShiLHgseSxfLHcsTSxiPWFbMF0seD1hWzFdLHk9cixfPW9bMF0sdz1vWzFdLE09b1syXSxzLGUpLGUucG9pbnQoYix4KX1mdW5jdGlvbiBhKCl7ay5wb2ludD1yLGUubGluZUVuZCgpfWZ1bmN0aW9uIGwoKXtuKCksay5wb2ludD11LGsubGluZUVuZD1jfWZ1bmN0aW9uIHUodCxlKXtvKGg9dCxmPWUpLHA9YixkPXgsbT1fLGc9dyx2PU0say5wb2ludD1vfWZ1bmN0aW9uIGMoKXtpKGIseCx5LF8sdyxNLHAsZCxoLG0sZyx2LHMsZSksay5saW5lRW5kPWEsYSgpfXZhciBoLGYscCxkLG0sZyx2LHksYix4LF8sdyxNLGs9e3BvaW50OnIsbGluZVN0YXJ0Om4sbGluZUVuZDphLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksay5saW5lU3RhcnQ9bH0scG9seWdvbkVuZDpmdW5jdGlvbigpe2UucG9seWdvbkVuZCgpLGsubGluZVN0YXJ0PW59fTtyZXR1cm4ga31mdW5jdGlvbiBpKGUscixuLHMsbCx1LGMsaCxmLHAsZCxtLGcsdil7dmFyIHk9Yy1lLGI9aC1yLHg9eSp5K2IqYjtpZih4PjQqbyYmZy0tKXt2YXIgXz1zK3Asdz1sK2QsTT11K20saz1NYXRoLnNxcnQoXypfK3cqdytNKk0pLEE9TWF0aC5hc2luKE0vPWspLFQ9d2Eod2EoTSktMSk8TmF8fHdhKG4tZik8TmE/KG4rZikvMjpNYXRoLmF0YW4yKHcsXyksRT10KFQsQSksUz1FWzBdLEw9RVsxXSx6PVMtZSxJPUwtcixQPWIqei15Kkk7KFAqUC94Pm98fHdhKCh5KnorYipJKS94LS41KT4uM3x8YT5zKnArbCpkK3UqbSkmJihpKGUscixuLHMsbCx1LFMsTCxULF8vPWssdy89ayxNLGcsdiksdi5wb2ludChTLEwpLGkoUyxMLFQsXyx3LE0sYyxoLGYscCxkLG0sZyx2KSl9fXZhciBvPS41LGE9TWF0aC5jb3MoMzAqSGEpLHM9MTY7cmV0dXJuIGUucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPShvPXQqdCk+MCYmMTYsZSk6TWF0aC5zcXJ0KG8pfSxlfWZ1bmN0aW9uIGlyKHQpe3ZhciBlPW5yKGZ1bmN0aW9uKGUscil7cmV0dXJuIHQoW2UqWGEscipYYV0pfSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB1cihlKHQpKX19ZnVuY3Rpb24gb3IodCl7dGhpcy5zdHJlYW09dH1mdW5jdGlvbiBhcih0LGUpe3JldHVybntwb2ludDplLHNwaGVyZTpmdW5jdGlvbigpe3Quc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3QubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0LmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dC5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3QucG9seWdvbkVuZCgpfX19ZnVuY3Rpb24gc3IodCl7cmV0dXJuIGxyKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSgpfWZ1bmN0aW9uIGxyKHQpe2Z1bmN0aW9uIGUodCl7cmV0dXJuIHQ9cyh0WzBdKkhhLHRbMV0qSGEpLFt0WzBdKmYrbCx1LXRbMV0qZl19ZnVuY3Rpb24gcih0KXtyZXR1cm4gdD1zLmludmVydCgodFswXS1sKS9mLCh1LXRbMV0pL2YpLHQmJlt0WzBdKlhhLHRbMV0qWGFdfWZ1bmN0aW9uIG4oKXtzPXplKGE9ZnIodix5LGIpLG8pO3ZhciB0PW8obSxnKTtyZXR1cm4gbD1wLXRbMF0qZix1PWQrdFsxXSpmLGkoKX1mdW5jdGlvbiBpKCl7cmV0dXJuIGMmJihjLnZhbGlkPSExLGM9bnVsbCksZX12YXIgbyxhLHMsbCx1LGMsaD1ucihmdW5jdGlvbih0LGUpe3JldHVybiB0PW8odCxlKSxbdFswXSpmK2wsdS10WzFdKmZdfSksZj0xNTAscD00ODAsZD0yNTAsbT0wLGc9MCx2PTAseT0wLGI9MCxfPVVzLHc9eCxNPW51bGwsaz1udWxsO3JldHVybiBlLnN0cmVhbT1mdW5jdGlvbih0KXtyZXR1cm4gYyYmKGMudmFsaWQ9ITEpLGM9dXIoXyhhLGgodyh0KSkpKSxjLnZhbGlkPSEwLGN9LGUuY2xpcEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPW51bGw9PXQ/KE09dCxVcyk6cWUoKE09K3QpKkhhKSxpKCkpOk19LGUuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaz10LHc9dD9IZSh0WzBdWzBdLHRbMF1bMV0sdFsxXVswXSx0WzFdWzFdKTp4LGkoKSk6a30sZS5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0rdCxuKCkpOmZ9LGUudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSt0WzBdLGQ9K3RbMV0sbigpKTpbcCxkXX0sZS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09dFswXSUzNjAqSGEsZz10WzFdJTM2MCpIYSxuKCkpOlttKlhhLGcqWGFdfSxlLnJvdGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj10WzBdJTM2MCpIYSx5PXRbMV0lMzYwKkhhLGI9dC5sZW5ndGg+Mj90WzJdJTM2MCpIYTowLG4oKSk6W3YqWGEseSpYYSxiKlhhXX0sY2EucmViaW5kKGUsaCwicHJlY2lzaW9uIiksZnVuY3Rpb24oKXtyZXR1cm4gbz10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlLmludmVydD1vLmludmVydCYmcixuKCl9fWZ1bmN0aW9uIHVyKHQpe3JldHVybiBhcih0LGZ1bmN0aW9uKGUscil7dC5wb2ludChlKkhhLHIqSGEpfSl9ZnVuY3Rpb24gY3IodCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBocih0LGUpe3JldHVyblt0PlVhP3QtVmE6LVVhPnQ/dCtWYTp0LGVdfWZ1bmN0aW9uIGZyKHQsZSxyKXtyZXR1cm4gdD9lfHxyP3plKGRyKHQpLG1yKGUscikpOmRyKHQpOmV8fHI/bXIoZSxyKTpocn1mdW5jdGlvbiBwcih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSs9dCxbZT5VYT9lLVZhOi1VYT5lP2UrVmE6ZSxyXX19ZnVuY3Rpb24gZHIodCl7dmFyIGU9cHIodCk7cmV0dXJuIGUuaW52ZXJ0PXByKC10KSxlfWZ1bmN0aW9uIG1yKHQsZSl7ZnVuY3Rpb24gcih0LGUpe3ZhciByPU1hdGguY29zKGUpLHM9TWF0aC5jb3ModCkqcixsPU1hdGguc2luKHQpKnIsdT1NYXRoLnNpbihlKSxjPXUqbitzKmk7cmV0dXJuW01hdGguYXRhbjIobCpvLWMqYSxzKm4tdSppKSxudChjKm8rbCphKV19dmFyIG49TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KSxvPU1hdGguY29zKGUpLGE9TWF0aC5zaW4oZSk7cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5jb3MoZSkscz1NYXRoLmNvcyh0KSpyLGw9TWF0aC5zaW4odCkqcix1PU1hdGguc2luKGUpLGM9dSpvLWwqYTtyZXR1cm5bTWF0aC5hdGFuMihsKm8rdSphLHMqbitjKmkpLG50KGMqbi1zKmkpXX0scn1mdW5jdGlvbiBncih0LGUpe3ZhciByPU1hdGguY29zKHQpLG49TWF0aC5zaW4odCk7cmV0dXJuIGZ1bmN0aW9uKGksbyxhLHMpe3ZhciBsPWEqZTtudWxsIT1pPyhpPXZyKHIsaSksbz12cihyLG8pLChhPjA/bz5pOmk+bykmJihpKz1hKlZhKSk6KGk9dCthKlZhLG89dC0uNSpsKTtmb3IodmFyIHUsYz1pO2E+MD9jPm86bz5jO2MtPWwpcy5wb2ludCgodT1NZShbciwtbipNYXRoLmNvcyhjKSwtbipNYXRoLnNpbihjKV0pKVswXSx1WzFdKX19ZnVuY3Rpb24gdnIodCxlKXt2YXIgcj12ZShlKTtyWzBdLT10LHdlKHIpO3ZhciBuPXJ0KC1yWzFdKTtyZXR1cm4oKC1yWzJdPDA/LW46bikrMipNYXRoLlBJLU5hKSUoMipNYXRoLlBJKX1mdW5jdGlvbiB5cih0LGUscil7dmFyIG49Y2EucmFuZ2UodCxlLU5hLHIpLmNvbmNhdChlKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG4ubWFwKGZ1bmN0aW9uKGUpe3JldHVyblt0LGVdfSl9fWZ1bmN0aW9uIGJyKHQsZSxyKXt2YXIgbj1jYS5yYW5nZSh0LGUtTmEscikuY29uY2F0KGUpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuW2UsdF19KX19ZnVuY3Rpb24geHIodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIF9yKHQpe3JldHVybiB0LnRhcmdldH1mdW5jdGlvbiB3cih0LGUscixuKXt2YXIgaT1NYXRoLmNvcyhlKSxvPU1hdGguc2luKGUpLGE9TWF0aC5jb3Mobikscz1NYXRoLnNpbihuKSxsPWkqTWF0aC5jb3ModCksdT1pKk1hdGguc2luKHQpLGM9YSpNYXRoLmNvcyhyKSxoPWEqTWF0aC5zaW4ociksZj0yKk1hdGguYXNpbihNYXRoLnNxcnQoc3Qobi1lKStpKmEqc3Qoci10KSkpLHA9MS9NYXRoLnNpbihmKSxkPWY/ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zaW4odCo9ZikqcCxyPU1hdGguc2luKGYtdCkqcCxuPXIqbCtlKmMsaT1yKnUrZSpoLGE9cipvK2UqcztyZXR1cm5bTWF0aC5hdGFuMihpLG4pKlhhLE1hdGguYXRhbjIoYSxNYXRoLnNxcnQobipuK2kqaSkpKlhhXX06ZnVuY3Rpb24oKXtyZXR1cm5bdCpYYSxlKlhhXX07cmV0dXJuIGQuZGlzdGFuY2U9ZixkfWZ1bmN0aW9uIE1yKCl7ZnVuY3Rpb24gdCh0LGkpe3ZhciBvPU1hdGguc2luKGkqPUhhKSxhPU1hdGguY29zKGkpLHM9d2EoKHQqPUhhKS1lKSxsPU1hdGguY29zKHMpO0pzKz1NYXRoLmF0YW4yKE1hdGguc3FydCgocz1hKk1hdGguc2luKHMpKSpzKyhzPW4qby1yKmEqbCkqcykscipvK24qYSpsKSxlPXQscj1vLG49YX12YXIgZSxyLG47JHMucG9pbnQ9ZnVuY3Rpb24oaSxvKXtlPWkqSGEscj1NYXRoLnNpbihvKj1IYSksbj1NYXRoLmNvcyhvKSwkcy5wb2ludD10fSwkcy5saW5lRW5kPWZ1bmN0aW9uKCl7JHMucG9pbnQ9JHMubGluZUVuZD1NfX1mdW5jdGlvbiBrcih0LGUpe2Z1bmN0aW9uIHIoZSxyKXt2YXIgbj1NYXRoLmNvcyhlKSxpPU1hdGguY29zKHIpLG89dChuKmkpO3JldHVybltvKmkqTWF0aC5zaW4oZSksbypNYXRoLnNpbihyKV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQscil7dmFyIG49TWF0aC5zcXJ0KHQqdCtyKnIpLGk9ZShuKSxvPU1hdGguc2luKGkpLGE9TWF0aC5jb3MoaSk7cmV0dXJuW01hdGguYXRhbjIodCpvLG4qYSksTWF0aC5hc2luKG4mJnIqby9uKV19LHJ9ZnVuY3Rpb24gQXIodCxlKXtmdW5jdGlvbiByKHQsZSl7YT4wPy1HYStOYT5lJiYoZT0tR2ErTmEpOmU+R2EtTmEmJihlPUdhLU5hKTt2YXIgcj1hL01hdGgucG93KGkoZSksbyk7cmV0dXJuW3IqTWF0aC5zaW4obyp0KSxhLXIqTWF0aC5jb3Mobyp0KV19dmFyIG49TWF0aC5jb3ModCksaT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC50YW4oVWEvNCt0LzIpfSxvPXQ9PT1lP01hdGguc2luKHQpOk1hdGgubG9nKG4vTWF0aC5jb3MoZSkpL01hdGgubG9nKGkoZSkvaSh0KSksYT1uKk1hdGgucG93KGkodCksbykvbztyZXR1cm4gbz8oci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1hLWUsbj10dChvKSpNYXRoLnNxcnQodCp0K3Iqcik7cmV0dXJuW01hdGguYXRhbjIodCxyKS9vLDIqTWF0aC5hdGFuKE1hdGgucG93KGEvbiwxL28pKS1HYV19LHIpOkVyfWZ1bmN0aW9uIFRyKHQsZSl7ZnVuY3Rpb24gcih0LGUpe3ZhciByPW8tZTtyZXR1cm5bcipNYXRoLnNpbihpKnQpLG8tcipNYXRoLmNvcyhpKnQpXX12YXIgbj1NYXRoLmNvcyh0KSxpPXQ9PT1lP01hdGguc2luKHQpOihuLU1hdGguY29zKGUpKS8oZS10KSxvPW4vaSt0O3JldHVybiB3YShpKTxOYT9jcjooci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1vLWU7cmV0dXJuW01hdGguYXRhbjIodCxyKS9pLG8tdHQoaSkqTWF0aC5zcXJ0KHQqdCtyKnIpXX0scil9ZnVuY3Rpb24gRXIodCxlKXtyZXR1cm5bdCxNYXRoLmxvZyhNYXRoLnRhbihVYS80K2UvMikpXX1mdW5jdGlvbiBTcih0KXt2YXIgZSxyPXNyKHQpLG49ci5zY2FsZSxpPXIudHJhbnNsYXRlLG89ci5jbGlwRXh0ZW50O3JldHVybiByLnNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9bi5hcHBseShyLGFyZ3VtZW50cyk7cmV0dXJuIHQ9PT1yP2U/ci5jbGlwRXh0ZW50KG51bGwpOnI6dH0sci50cmFuc2xhdGU9ZnVuY3Rpb24oKXt2YXIgdD1pLmFwcGx5KHIsYXJndW1lbnRzKTtyZXR1cm4gdD09PXI/ZT9yLmNsaXBFeHRlbnQobnVsbCk6cjp0fSxyLmNsaXBFeHRlbnQ9ZnVuY3Rpb24odCl7dmFyIGE9by5hcHBseShyLGFyZ3VtZW50cyk7aWYoYT09PXIpe2lmKGU9bnVsbD09dCl7dmFyIHM9VWEqbigpLGw9aSgpO28oW1tsWzBdLXMsbFsxXS1zXSxbbFswXStzLGxbMV0rc11dKX19ZWxzZSBlJiYoYT1udWxsKTtyZXR1cm4gYX0sci5jbGlwRXh0ZW50KG51bGwpfWZ1bmN0aW9uIExyKHQsZSl7cmV0dXJuW01hdGgubG9nKE1hdGgudGFuKFVhLzQrZS8yKSksLXRdfWZ1bmN0aW9uIHpyKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIElyKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIFByKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPVswLDFdLG49MixpPTI7ZT5pO2krKyl7Zm9yKDtuPjEmJmV0KHRbcltuLTJdXSx0W3Jbbi0xXV0sdFtpXSk8PTA7KS0tbjtyW24rK109aX1yZXR1cm4gci5zbGljZSgwLG4pfWZ1bmN0aW9uIENyKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIFJyKHQsZSxyKXtyZXR1cm4oclswXS1lWzBdKSoodFsxXS1lWzFdKTwoclsxXS1lWzFdKSoodFswXS1lWzBdKX1mdW5jdGlvbiBqcih0LGUscixuKXt2YXIgaT10WzBdLG89clswXSxhPWVbMF0taSxzPW5bMF0tbyxsPXRbMV0sdT1yWzFdLGM9ZVsxXS1sLGg9blsxXS11LGY9KHMqKGwtdSktaCooaS1vKSkvKGgqYS1zKmMpO3JldHVybltpK2YqYSxsK2YqY119ZnVuY3Rpb24gRHIodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIShlWzBdLXJbMF18fGVbMV0tclsxXSl9ZnVuY3Rpb24gT3IoKXtvbih0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gRnIodCl7dmFyIGU9aGwucG9wKCl8fG5ldyBPcjtyZXR1cm4gZS5zaXRlPXQsZX1mdW5jdGlvbiBOcih0KXtacih0KSxsbC5yZW1vdmUodCksaGwucHVzaCh0KSxvbih0KX1mdW5jdGlvbiBCcih0KXt2YXIgZT10LmNpcmNsZSxyPWUueCxuPWUuY3ksaT17eDpyLHk6bn0sbz10LlAsYT10Lk4scz1bdF07TnIodCk7Zm9yKHZhciBsPW87bC5jaXJjbGUmJndhKHItbC5jaXJjbGUueCk8TmEmJndhKG4tbC5jaXJjbGUuY3kpPE5hOylvPWwuUCxzLnVuc2hpZnQobCksTnIobCksbD1vO3MudW5zaGlmdChsKSxacihsKTtmb3IodmFyIHU9YTt1LmNpcmNsZSYmd2Eoci11LmNpcmNsZS54KTxOYSYmd2Eobi11LmNpcmNsZS5jeSk8TmE7KWE9dS5OLHMucHVzaCh1KSxOcih1KSx1PWE7cy5wdXNoKHUpLFpyKHUpO3ZhciBjLGg9cy5sZW5ndGg7Zm9yKGM9MTtoPmM7KytjKXU9c1tjXSxsPXNbYy0xXSxlbih1LmVkZ2UsbC5zaXRlLHUuc2l0ZSxpKTtsPXNbMF0sdT1zW2gtMV0sdS5lZGdlPSRyKGwuc2l0ZSx1LnNpdGUsbnVsbCxpKSxXcihsKSxXcih1KX1mdW5jdGlvbiBVcih0KXtmb3IodmFyIGUscixuLGksbz10LngsYT10Lnkscz1sbC5fO3M7KWlmKG49VnIocyxhKS1vLG4+TmEpcz1zLkw7ZWxzZXtpZihpPW8tcXIocyxhKSwhKGk+TmEpKXtuPi1OYT8oZT1zLlAscj1zKTppPi1OYT8oZT1zLHI9cy5OKTplPXI9czticmVha31pZighcy5SKXtlPXM7YnJlYWt9cz1zLlJ9dmFyIGw9RnIodCk7aWYobGwuaW5zZXJ0KGUsbCksZXx8cil7aWYoZT09PXIpcmV0dXJuIFpyKGUpLHI9RnIoZS5zaXRlKSxsbC5pbnNlcnQobCxyKSxsLmVkZ2U9ci5lZGdlPSRyKGUuc2l0ZSxsLnNpdGUpLFdyKGUpLHZvaWQgV3Iocik7aWYoIXIpcmV0dXJuIHZvaWQobC5lZGdlPSRyKGUuc2l0ZSxsLnNpdGUpKTtacihlKSxacihyKTt2YXIgdT1lLnNpdGUsYz11LngsaD11LnksZj10LngtYyxwPXQueS1oLGQ9ci5zaXRlLG09ZC54LWMsZz1kLnktaCx2PTIqKGYqZy1wKm0pLHk9ZipmK3AqcCxiPW0qbStnKmcseD17eDooZyp5LXAqYikvditjLHk6KGYqYi1tKnkpL3YraH07ZW4oci5lZGdlLHUsZCx4KSxsLmVkZ2U9JHIodSx0LG51bGwseCksci5lZGdlPSRyKHQsZCxudWxsLHgpLFdyKGUpLFdyKHIpfX1mdW5jdGlvbiBWcih0LGUpe3ZhciByPXQuc2l0ZSxuPXIueCxpPXIueSxvPWktZTtpZighbylyZXR1cm4gbjt2YXIgYT10LlA7aWYoIWEpcmV0dXJuLSgxLzApO3I9YS5zaXRlO3ZhciBzPXIueCxsPXIueSx1PWwtZTtpZighdSlyZXR1cm4gczt2YXIgYz1zLW4saD0xL28tMS91LGY9Yy91O3JldHVybiBoPygtZitNYXRoLnNxcnQoZipmLTIqaCooYypjLygtMip1KS1sK3UvMitpLW8vMikpKS9oK246KG4rcykvMn1mdW5jdGlvbiBxcih0LGUpe3ZhciByPXQuTjtpZihyKXJldHVybiBWcihyLGUpO3ZhciBuPXQuc2l0ZTtyZXR1cm4gbi55PT09ZT9uLng6MS8wfWZ1bmN0aW9uIEdyKHQpe3RoaXMuc2l0ZT10LHRoaXMuZWRnZXM9W119ZnVuY3Rpb24gSHIodCl7Zm9yKHZhciBlLHIsbixpLG8sYSxzLGwsdSxjLGg9dFswXVswXSxmPXRbMV1bMF0scD10WzBdWzFdLGQ9dFsxXVsxXSxtPXNsLGc9bS5sZW5ndGg7Zy0tOylpZihvPW1bZ10sbyYmby5wcmVwYXJlKCkpZm9yKHM9by5lZGdlcyxsPXMubGVuZ3RoLGE9MDtsPmE7KWM9c1thXS5lbmQoKSxuPWMueCxpPWMueSx1PXNbKythJWxdLnN0YXJ0KCksZT11Lngscj11LnksKHdhKG4tZSk+TmF8fHdhKGktcik+TmEpJiYocy5zcGxpY2UoYSwwLG5ldyBybih0bihvLnNpdGUsYyx3YShuLWgpPE5hJiZkLWk+TmE/e3g6aCx5OndhKGUtaCk8TmE/cjpkfTp3YShpLWQpPE5hJiZmLW4+TmE/e3g6d2Eoci1kKTxOYT9lOmYseTpkfTp3YShuLWYpPE5hJiZpLXA+TmE/e3g6Zix5OndhKGUtZik8TmE/cjpwfTp3YShpLXApPE5hJiZuLWg+TmE/e3g6d2Eoci1wKTxOYT9lOmgseTpwfTpudWxsKSxvLnNpdGUsbnVsbCkpLCsrbCl9ZnVuY3Rpb24gWHIodCxlKXtyZXR1cm4gZS5hbmdsZS10LmFuZ2xlfWZ1bmN0aW9uIFlyKCl7b24odGhpcyksdGhpcy54PXRoaXMueT10aGlzLmFyYz10aGlzLnNpdGU9dGhpcy5jeT1udWxsfWZ1bmN0aW9uIFdyKHQpe3ZhciBlPXQuUCxyPXQuTjtpZihlJiZyKXt2YXIgbj1lLnNpdGUsaT10LnNpdGUsbz1yLnNpdGU7aWYobiE9PW8pe3ZhciBhPWkueCxzPWkueSxsPW4ueC1hLHU9bi55LXMsYz1vLngtYSxoPW8ueS1zLGY9MioobCpoLXUqYyk7aWYoIShmPj0tQmEpKXt2YXIgcD1sKmwrdSp1LGQ9YypjK2gqaCxtPShoKnAtdSpkKS9mLGc9KGwqZC1jKnApL2YsaD1nK3Msdj1mbC5wb3AoKXx8bmV3IFlyO3YuYXJjPXQsdi5zaXRlPWksdi54PW0rYSx2Lnk9aCtNYXRoLnNxcnQobSptK2cqZyksdi5jeT1oLHQuY2lyY2xlPXY7Zm9yKHZhciB5PW51bGwsYj1jbC5fO2I7KWlmKHYueTxiLnl8fHYueT09PWIueSYmdi54PD1iLngpe2lmKCFiLkwpe3k9Yi5QO2JyZWFrfWI9Yi5MfWVsc2V7aWYoIWIuUil7eT1iO2JyZWFrfWI9Yi5SfWNsLmluc2VydCh5LHYpLHl8fCh1bD12KX19fX1mdW5jdGlvbiBacih0KXt2YXIgZT10LmNpcmNsZTtlJiYoZS5QfHwodWw9ZS5OKSxjbC5yZW1vdmUoZSksZmwucHVzaChlKSxvbihlKSx0LmNpcmNsZT1udWxsKX1mdW5jdGlvbiBRcih0KXtmb3IodmFyIGUscj1hbCxuPUdlKHRbMF1bMF0sdFswXVsxXSx0WzFdWzBdLHRbMV1bMV0pLGk9ci5sZW5ndGg7aS0tOyllPXJbaV0sKCFLcihlLHQpfHwhbihlKXx8d2EoZS5hLngtZS5iLngpPE5hJiZ3YShlLmEueS1lLmIueSk8TmEpJiYoZS5hPWUuYj1udWxsLHIuc3BsaWNlKGksMSkpfWZ1bmN0aW9uIEtyKHQsZSl7dmFyIHI9dC5iO2lmKHIpcmV0dXJuITA7dmFyIG4saSxvPXQuYSxhPWVbMF1bMF0scz1lWzFdWzBdLGw9ZVswXVsxXSx1PWVbMV1bMV0sYz10LmwsaD10LnIsZj1jLngscD1jLnksZD1oLngsbT1oLnksZz0oZitkKS8yLHY9KHArbSkvMjtpZihtPT09cCl7aWYoYT5nfHxnPj1zKXJldHVybjtpZihmPmQpe2lmKG8pe2lmKG8ueT49dSlyZXR1cm59ZWxzZSBvPXt4OmcseTpsfTtyPXt4OmcseTp1fX1lbHNle2lmKG8pe2lmKG8ueTxsKXJldHVybn1lbHNlIG89e3g6Zyx5OnV9O3I9e3g6Zyx5Omx9fX1lbHNlIGlmKG49KGYtZCkvKG0tcCksaT12LW4qZywtMT5ufHxuPjEpaWYoZj5kKXtpZihvKXtpZihvLnk+PXUpcmV0dXJufWVsc2Ugbz17eDoobC1pKS9uLHk6bH07cj17eDoodS1pKS9uLHk6dX19ZWxzZXtpZihvKXtpZihvLnk8bClyZXR1cm59ZWxzZSBvPXt4Oih1LWkpL24seTp1fTtyPXt4OihsLWkpL24seTpsfX1lbHNlIGlmKG0+cCl7aWYobyl7aWYoby54Pj1zKXJldHVybn1lbHNlIG89e3g6YSx5Om4qYStpfTtyPXt4OnMseTpuKnMraX19ZWxzZXtpZihvKXtpZihvLng8YSlyZXR1cm59ZWxzZSBvPXt4OnMseTpuKnMraX07cj17eDphLHk6biphK2l9fXJldHVybiB0LmE9byx0LmI9ciwhMH1mdW5jdGlvbiBKcih0LGUpe3RoaXMubD10LHRoaXMucj1lLHRoaXMuYT10aGlzLmI9bnVsbH1mdW5jdGlvbiAkcih0LGUscixuKXt2YXIgaT1uZXcgSnIodCxlKTtyZXR1cm4gYWwucHVzaChpKSxyJiZlbihpLHQsZSxyKSxuJiZlbihpLGUsdCxuKSxzbFt0LmldLmVkZ2VzLnB1c2gobmV3IHJuKGksdCxlKSksc2xbZS5pXS5lZGdlcy5wdXNoKG5ldyBybihpLGUsdCkpLGl9ZnVuY3Rpb24gdG4odCxlLHIpe3ZhciBuPW5ldyBKcih0LG51bGwpO3JldHVybiBuLmE9ZSxuLmI9cixhbC5wdXNoKG4pLG59ZnVuY3Rpb24gZW4odCxlLHIsbil7dC5hfHx0LmI/dC5sPT09cj90LmI9bjp0LmE9bjoodC5hPW4sdC5sPWUsdC5yPXIpfWZ1bmN0aW9uIHJuKHQsZSxyKXt2YXIgbj10LmEsaT10LmI7dGhpcy5lZGdlPXQsdGhpcy5zaXRlPWUsdGhpcy5hbmdsZT1yP01hdGguYXRhbjIoci55LWUueSxyLngtZS54KTp0Lmw9PT1lP01hdGguYXRhbjIoaS54LW4ueCxuLnktaS55KTpNYXRoLmF0YW4yKG4ueC1pLngsaS55LW4ueSl9ZnVuY3Rpb24gbm4oKXt0aGlzLl89bnVsbH1mdW5jdGlvbiBvbih0KXt0LlU9dC5DPXQuTD10LlI9dC5QPXQuTj1udWxsfWZ1bmN0aW9uIGFuKHQsZSl7dmFyIHI9ZSxuPWUuUixpPXIuVTtpP2kuTD09PXI/aS5MPW46aS5SPW46dC5fPW4sbi5VPWksci5VPW4sci5SPW4uTCxyLlImJihyLlIuVT1yKSxuLkw9cn1mdW5jdGlvbiBzbih0LGUpe3ZhciByPWUsbj1lLkwsaT1yLlU7aT9pLkw9PT1yP2kuTD1uOmkuUj1uOnQuXz1uLG4uVT1pLHIuVT1uLHIuTD1uLlIsci5MJiYoci5MLlU9ciksbi5SPXJ9ZnVuY3Rpb24gbG4odCl7Zm9yKDt0Lkw7KXQ9dC5MO3JldHVybiB0fWZ1bmN0aW9uIHVuKHQsZSl7dmFyIHIsbixpLG89dC5zb3J0KGNuKS5wb3AoKTtmb3IoYWw9W10sc2w9bmV3IEFycmF5KHQubGVuZ3RoKSxsbD1uZXcgbm4sY2w9bmV3IG5uOzspaWYoaT11bCxvJiYoIWl8fG8ueTxpLnl8fG8ueT09PWkueSYmby54PGkueCkpby54PT09ciYmby55PT09bnx8KHNsW28uaV09bmV3IEdyKG8pLFVyKG8pLHI9by54LG49by55KSxvPXQucG9wKCk7ZWxzZXtpZighaSlicmVhaztCcihpLmFyYyl9ZSYmKFFyKGUpLEhyKGUpKTt2YXIgYT17Y2VsbHM6c2wsZWRnZXM6YWx9O3JldHVybiBsbD1jbD1hbD1zbD1udWxsLGF9ZnVuY3Rpb24gY24odCxlKXtyZXR1cm4gZS55LXQueXx8ZS54LXQueH1mdW5jdGlvbiBobih0LGUscil7cmV0dXJuKHQueC1yLngpKihlLnktdC55KS0odC54LWUueCkqKHIueS10LnkpfWZ1bmN0aW9uIGZuKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gcG4odCl7cmV0dXJuIHQueX1mdW5jdGlvbiBkbigpe3JldHVybntsZWFmOiEwLG5vZGVzOltdLHBvaW50Om51bGwseDpudWxsLHk6bnVsbH19ZnVuY3Rpb24gbW4odCxlLHIsbixpLG8pe2lmKCF0KGUscixuLGksbykpe3ZhciBhPS41KihyK2kpLHM9LjUqKG4rbyksbD1lLm5vZGVzO2xbMF0mJm1uKHQsbFswXSxyLG4sYSxzKSxsWzFdJiZtbih0LGxbMV0sYSxuLGkscyksbFsyXSYmbW4odCxsWzJdLHIscyxhLG8pLGxbM10mJm1uKHQsbFszXSxhLHMsaSxvKX19ZnVuY3Rpb24gZ24odCxlLHIsbixpLG8sYSl7dmFyIHMsbD0xLzA7cmV0dXJuIGZ1bmN0aW9uIHUodCxjLGgsZixwKXtpZighKGM+b3x8aD5hfHxuPmZ8fGk+cCkpe2lmKGQ9dC5wb2ludCl7dmFyIGQsbT1lLXQueCxnPXItdC55LHY9bSptK2cqZztpZihsPnYpe3ZhciB5PU1hdGguc3FydChsPXYpO249ZS15LGk9ci15LG89ZSt5LGE9cit5LHM9ZH19Zm9yKHZhciBiPXQubm9kZXMseD0uNSooYytmKSxfPS41KihoK3ApLHc9ZT49eCxNPXI+PV8saz1NPDwxfHcsQT1rKzQ7QT5rOysraylpZih0PWJbMyZrXSlzd2l0Y2goMyZrKXtjYXNlIDA6dSh0LGMsaCx4LF8pO2JyZWFrO2Nhc2UgMTp1KHQseCxoLGYsXyk7YnJlYWs7Y2FzZSAyOnUodCxjLF8seCxwKTticmVhaztjYXNlIDM6dSh0LHgsXyxmLHApfX19KHQsbixpLG8sYSksc31mdW5jdGlvbiB2bih0LGUpe3Q9Y2EucmdiKHQpLGU9Y2EucmdiKGUpO3ZhciByPXQucixuPXQuZyxpPXQuYixvPWUuci1yLGE9ZS5nLW4scz1lLmItaTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIiMiK3d0KE1hdGgucm91bmQocitvKnQpKSt3dChNYXRoLnJvdW5kKG4rYSp0KSkrd3QoTWF0aC5yb3VuZChpK3MqdCkpfX1mdW5jdGlvbiB5bih0LGUpe3ZhciByLG49e30saT17fTtmb3IociBpbiB0KXIgaW4gZT9uW3JdPV9uKHRbcl0sZVtyXSk6aVtyXT10W3JdO2ZvcihyIGluIGUpciBpbiB0fHwoaVtyXT1lW3JdKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHIgaW4gbilpW3JdPW5bcl0odCk7cmV0dXJuIGl9fWZ1bmN0aW9uIGJuKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gdCooMS1yKStlKnJ9fWZ1bmN0aW9uIHhuKHQsZSl7dmFyIHIsbixpLG89ZGwubGFzdEluZGV4PW1sLmxhc3RJbmRleD0wLGE9LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsocj1kbC5leGVjKHQpKSYmKG49bWwuZXhlYyhlKSk7KShpPW4uaW5kZXgpPm8mJihpPWUuc2xpY2UobyxpKSxzW2FdP3NbYV0rPWk6c1srK2FdPWkpLChyPXJbMF0pPT09KG49blswXSk/c1thXT9zW2FdKz1uOnNbKythXT1uOihzWysrYV09bnVsbCxsLnB1c2goe2k6YSx4OmJuKHIsbil9KSksbz1tbC5sYXN0SW5kZXg7cmV0dXJuIG88ZS5sZW5ndGgmJihpPWUuc2xpY2Uobyksc1thXT9zW2FdKz1pOnNbKythXT1pKSxzLmxlbmd0aDwyP2xbMF0/KGU9bFswXS54LGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifSk6ZnVuY3Rpb24oKXtyZXR1cm4gZX06KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MDtlPm47KytuKXNbKHI9bFtuXSkuaV09ci54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gX24odCxlKXtmb3IodmFyIHIsbj1jYS5pbnRlcnBvbGF0b3JzLmxlbmd0aDstLW4+PTAmJiEocj1jYS5pbnRlcnBvbGF0b3JzW25dKHQsZSkpOyk7cmV0dXJuIHJ9ZnVuY3Rpb24gd24odCxlKXt2YXIgcixuPVtdLGk9W10sbz10Lmxlbmd0aCxhPWUubGVuZ3RoLHM9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpO2ZvcihyPTA7cz5yOysrciluLnB1c2goX24odFtyXSxlW3JdKSk7Zm9yKDtvPnI7KytyKWlbcl09dFtyXTtmb3IoO2E+cjsrK3IpaVtyXT1lW3JdO3JldHVybiBmdW5jdGlvbih0KXtmb3Iocj0wO3M+cjsrK3IpaVtyXT1uW3JdKHQpO3JldHVybiBpfX1mdW5jdGlvbiBNbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIDA+PWU/MDplPj0xPzE6dChlKX19ZnVuY3Rpb24ga24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX19ZnVuY3Rpb24gQW4odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi41KiguNT5lP3QoMiplKToyLXQoMi0yKmUpKX19ZnVuY3Rpb24gVG4odCl7cmV0dXJuIHQqdH1mdW5jdGlvbiBFbih0KXtyZXR1cm4gdCp0KnR9ZnVuY3Rpb24gU24odCl7aWYoMD49dClyZXR1cm4gMDtpZih0Pj0xKXJldHVybiAxO3ZhciBlPXQqdCxyPWUqdDtyZXR1cm4gNCooLjU+dD9yOjMqKHQtZSkrci0uNzUpfWZ1bmN0aW9uIExuKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSx0KX19ZnVuY3Rpb24gem4odCl7cmV0dXJuIDEtTWF0aC5jb3ModCpHYSl9ZnVuY3Rpb24gSW4odCl7cmV0dXJuIE1hdGgucG93KDIsMTAqKHQtMSkpfWZ1bmN0aW9uIFBuKHQpe3JldHVybiAxLU1hdGguc3FydCgxLXQqdCl9ZnVuY3Rpb24gQ24odCxlKXt2YXIgcjtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYoZT0uNDUpLGFyZ3VtZW50cy5sZW5ndGg/cj1lL1ZhKk1hdGguYXNpbigxL3QpOih0PTEscj1lLzQpLGZ1bmN0aW9uKG4pe3JldHVybiAxK3QqTWF0aC5wb3coMiwtMTAqbikqTWF0aC5zaW4oKG4tcikqVmEvZSl9fWZ1bmN0aW9uIFJuKHQpe3JldHVybiB0fHwodD0xLjcwMTU4KSxmdW5jdGlvbihlKXtyZXR1cm4gZSplKigodCsxKSplLXQpfX1mdW5jdGlvbiBqbih0KXtyZXR1cm4gMS8yLjc1PnQ/Ny41NjI1KnQqdDoyLzIuNzU+dD83LjU2MjUqKHQtPTEuNS8yLjc1KSp0Ky43NToyLjUvMi43NT50PzcuNTYyNSoodC09Mi4yNS8yLjc1KSp0Ky45Mzc1OjcuNTYyNSoodC09Mi42MjUvMi43NSkqdCsuOTg0Mzc1fWZ1bmN0aW9uIERuKHQsZSl7dD1jYS5oY2wodCksZT1jYS5oY2woZSk7dmFyIHI9dC5oLG49dC5jLGk9dC5sLG89ZS5oLXIsYT1lLmMtbixzPWUubC1pO3JldHVybiBpc05hTihhKSYmKGE9MCxuPWlzTmFOKG4pP2UuYzpuKSxpc05hTihvKT8obz0wLHI9aXNOYU4ocik/ZS5oOnIpOm8+MTgwP28tPTM2MDotMTgwPm8mJihvKz0zNjApLGZ1bmN0aW9uKHQpe3JldHVybiBmdChyK28qdCxuK2EqdCxpK3MqdCkrIiJ9fWZ1bmN0aW9uIE9uKHQsZSl7dD1jYS5oc2wodCksZT1jYS5oc2woZSk7dmFyIHI9dC5oLG49dC5zLGk9dC5sLG89ZS5oLXIsYT1lLnMtbixzPWUubC1pO3JldHVybiBpc05hTihhKSYmKGE9MCxuPWlzTmFOKG4pP2UuczpuKSxpc05hTihvKT8obz0wLHI9aXNOYU4ocik/ZS5oOnIpOm8+MTgwP28tPTM2MDotMTgwPm8mJihvKz0zNjApLGZ1bmN0aW9uKHQpe3JldHVybiBjdChyK28qdCxuK2EqdCxpK3MqdCkrIiJ9fWZ1bmN0aW9uIEZuKHQsZSl7dD1jYS5sYWIodCksZT1jYS5sYWIoZSk7dmFyIHI9dC5sLG49dC5hLGk9dC5iLG89ZS5sLXIsYT1lLmEtbixzPWUuYi1pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZHQocitvKnQsbithKnQsaStzKnQpKyIifX1mdW5jdGlvbiBObih0LGUpe3JldHVybiBlLT10LGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLnJvdW5kKHQrZSpyKX19ZnVuY3Rpb24gQm4odCl7dmFyIGU9W3QuYSx0LmJdLHI9W3QuYyx0LmRdLG49Vm4oZSksaT1VbihlLHIpLG89Vm4ocW4ocixlLC1pKSl8fDA7ZVswXSpyWzFdPHJbMF0qZVsxXSYmKGVbMF0qPS0xLGVbMV0qPS0xLG4qPS0xLGkqPS0xKSx0aGlzLnJvdGF0ZT0obj9NYXRoLmF0YW4yKGVbMV0sZVswXSk6TWF0aC5hdGFuMigtclswXSxyWzFdKSkqWGEsdGhpcy50cmFuc2xhdGU9W3QuZSx0LmZdLHRoaXMuc2NhbGU9W24sb10sdGhpcy5za2V3PW8/TWF0aC5hdGFuMihpLG8pKlhhOjB9ZnVuY3Rpb24gVW4odCxlKXsKcmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV19ZnVuY3Rpb24gVm4odCl7dmFyIGU9TWF0aC5zcXJ0KFVuKHQsdCkpO3JldHVybiBlJiYodFswXS89ZSx0WzFdLz1lKSxlfWZ1bmN0aW9uIHFuKHQsZSxyKXtyZXR1cm4gdFswXSs9ciplWzBdLHRbMV0rPXIqZVsxXSx0fWZ1bmN0aW9uIEduKHQpe3JldHVybiB0Lmxlbmd0aD90LnBvcCgpKyIsIjoiIn1mdW5jdGlvbiBIbih0LGUscixuKXtpZih0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV0pe3ZhciBpPXIucHVzaCgidHJhbnNsYXRlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO24ucHVzaCh7aTppLTQseDpibih0WzBdLGVbMF0pfSx7aTppLTIseDpibih0WzFdLGVbMV0pfSl9ZWxzZShlWzBdfHxlWzFdKSYmci5wdXNoKCJ0cmFuc2xhdGUoIitlKyIpIil9ZnVuY3Rpb24gWG4odCxlLHIsbil7dCE9PWU/KHQtZT4xODA/ZSs9MzYwOmUtdD4xODAmJih0Kz0zNjApLG4ucHVzaCh7aTpyLnB1c2goR24ocikrInJvdGF0ZSgiLG51bGwsIikiKS0yLHg6Ym4odCxlKX0pKTplJiZyLnB1c2goR24ocikrInJvdGF0ZSgiK2UrIikiKX1mdW5jdGlvbiBZbih0LGUscixuKXt0IT09ZT9uLnB1c2goe2k6ci5wdXNoKEduKHIpKyJza2V3WCgiLG51bGwsIikiKS0yLHg6Ym4odCxlKX0pOmUmJnIucHVzaChHbihyKSsic2tld1goIitlKyIpIil9ZnVuY3Rpb24gV24odCxlLHIsbil7aWYodFswXSE9PWVbMF18fHRbMV0hPT1lWzFdKXt2YXIgaT1yLnB1c2goR24ocikrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO24ucHVzaCh7aTppLTQseDpibih0WzBdLGVbMF0pfSx7aTppLTIseDpibih0WzFdLGVbMV0pfSl9ZWxzZSAxPT09ZVswXSYmMT09PWVbMV18fHIucHVzaChHbihyKSsic2NhbGUoIitlKyIpIil9ZnVuY3Rpb24gWm4odCxlKXt2YXIgcj1bXSxuPVtdO3JldHVybiB0PWNhLnRyYW5zZm9ybSh0KSxlPWNhLnRyYW5zZm9ybShlKSxIbih0LnRyYW5zbGF0ZSxlLnRyYW5zbGF0ZSxyLG4pLFhuKHQucm90YXRlLGUucm90YXRlLHIsbiksWW4odC5za2V3LGUuc2tldyxyLG4pLFduKHQuc2NhbGUsZS5zY2FsZSxyLG4pLHQ9ZT1udWxsLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPS0xLG89bi5sZW5ndGg7KytpPG87KXJbKGU9bltpXSkuaV09ZS54KHQpO3JldHVybiByLmpvaW4oIiIpfX1mdW5jdGlvbiBRbih0LGUpe3JldHVybiBlPShlLT10PSt0KXx8MS9lLGZ1bmN0aW9uKHIpe3JldHVybihyLXQpL2V9fWZ1bmN0aW9uIEtuKHQsZSl7cmV0dXJuIGU9KGUtPXQ9K3QpfHwxL2UsZnVuY3Rpb24ocil7cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5taW4oMSwoci10KS9lKSl9fWZ1bmN0aW9uIEpuKHQpe2Zvcih2YXIgZT10LnNvdXJjZSxyPXQudGFyZ2V0LG49dGkoZSxyKSxpPVtlXTtlIT09bjspZT1lLnBhcmVudCxpLnB1c2goZSk7Zm9yKHZhciBvPWkubGVuZ3RoO3IhPT1uOylpLnNwbGljZShvLDAscikscj1yLnBhcmVudDtyZXR1cm4gaX1mdW5jdGlvbiAkbih0KXtmb3IodmFyIGU9W10scj10LnBhcmVudDtudWxsIT1yOyllLnB1c2godCksdD1yLHI9ci5wYXJlbnQ7cmV0dXJuIGUucHVzaCh0KSxlfWZ1bmN0aW9uIHRpKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7Zm9yKHZhciByPSRuKHQpLG49JG4oZSksaT1yLnBvcCgpLG89bi5wb3AoKSxhPW51bGw7aT09PW87KWE9aSxpPXIucG9wKCksbz1uLnBvcCgpO3JldHVybiBhfWZ1bmN0aW9uIGVpKHQpe3QuZml4ZWR8PTJ9ZnVuY3Rpb24gcmkodCl7dC5maXhlZCY9LTd9ZnVuY3Rpb24gbmkodCl7dC5maXhlZHw9NCx0LnB4PXQueCx0LnB5PXQueX1mdW5jdGlvbiBpaSh0KXt0LmZpeGVkJj0tNX1mdW5jdGlvbiBvaSh0LGUscil7dmFyIG49MCxpPTA7aWYodC5jaGFyZ2U9MCwhdC5sZWFmKWZvcih2YXIgbyxhPXQubm9kZXMscz1hLmxlbmd0aCxsPS0xOysrbDxzOylvPWFbbF0sbnVsbCE9byYmKG9pKG8sZSxyKSx0LmNoYXJnZSs9by5jaGFyZ2Usbis9by5jaGFyZ2Uqby5jeCxpKz1vLmNoYXJnZSpvLmN5KTtpZih0LnBvaW50KXt0LmxlYWZ8fCh0LnBvaW50LngrPU1hdGgucmFuZG9tKCktLjUsdC5wb2ludC55Kz1NYXRoLnJhbmRvbSgpLS41KTt2YXIgdT1lKnJbdC5wb2ludC5pbmRleF07dC5jaGFyZ2UrPXQucG9pbnRDaGFyZ2U9dSxuKz11KnQucG9pbnQueCxpKz11KnQucG9pbnQueX10LmN4PW4vdC5jaGFyZ2UsdC5jeT1pL3QuY2hhcmdlfWZ1bmN0aW9uIGFpKHQsZSl7cmV0dXJuIGNhLnJlYmluZCh0LGUsInNvcnQiLCJjaGlsZHJlbiIsInZhbHVlIiksdC5ub2Rlcz10LHQubGlua3M9ZmksdH1mdW5jdGlvbiBzaSh0LGUpe2Zvcih2YXIgcj1bdF07bnVsbCE9KHQ9ci5wb3AoKSk7KWlmKGUodCksKGk9dC5jaGlsZHJlbikmJihuPWkubGVuZ3RoKSlmb3IodmFyIG4saTstLW4+PTA7KXIucHVzaChpW25dKX1mdW5jdGlvbiBsaSh0LGUpe2Zvcih2YXIgcj1bdF0sbj1bXTtudWxsIT0odD1yLnBvcCgpKTspaWYobi5wdXNoKHQpLChvPXQuY2hpbGRyZW4pJiYoaT1vLmxlbmd0aCkpZm9yKHZhciBpLG8sYT0tMTsrK2E8aTspci5wdXNoKG9bYV0pO2Zvcig7bnVsbCE9KHQ9bi5wb3AoKSk7KWUodCl9ZnVuY3Rpb24gdWkodCl7cmV0dXJuIHQuY2hpbGRyZW59ZnVuY3Rpb24gY2kodCl7cmV0dXJuIHQudmFsdWV9ZnVuY3Rpb24gaGkodCxlKXtyZXR1cm4gZS52YWx1ZS10LnZhbHVlfWZ1bmN0aW9uIGZpKHQpe3JldHVybiBjYS5tZXJnZSh0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4odC5jaGlsZHJlbnx8W10pLm1hcChmdW5jdGlvbihlKXtyZXR1cm57c291cmNlOnQsdGFyZ2V0OmV9fSl9KSl9ZnVuY3Rpb24gcGkodCl7cmV0dXJuIHQueH1mdW5jdGlvbiBkaSh0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIG1pKHQsZSxyKXt0LnkwPWUsdC55PXJ9ZnVuY3Rpb24gZ2kodCl7cmV0dXJuIGNhLnJhbmdlKHQubGVuZ3RoKX1mdW5jdGlvbiB2aSh0KXtmb3IodmFyIGU9LTEscj10WzBdLmxlbmd0aCxuPVtdOysrZTxyOyluW2VdPTA7cmV0dXJuIG59ZnVuY3Rpb24geWkodCl7Zm9yKHZhciBlLHI9MSxuPTAsaT10WzBdWzFdLG89dC5sZW5ndGg7bz5yOysrcikoZT10W3JdWzFdKT5pJiYobj1yLGk9ZSk7cmV0dXJuIG59ZnVuY3Rpb24gYmkodCl7cmV0dXJuIHQucmVkdWNlKHhpLDApfWZ1bmN0aW9uIHhpKHQsZSl7cmV0dXJuIHQrZVsxXX1mdW5jdGlvbiBfaSh0LGUpe3JldHVybiB3aSh0LE1hdGguY2VpbChNYXRoLmxvZyhlLmxlbmd0aCkvTWF0aC5MTjIrMSkpfWZ1bmN0aW9uIHdpKHQsZSl7Zm9yKHZhciByPS0xLG49K3RbMF0saT0odFsxXS1uKS9lLG89W107KytyPD1lOylvW3JdPWkqcituO3JldHVybiBvfWZ1bmN0aW9uIE1pKHQpe3JldHVybltjYS5taW4odCksY2EubWF4KHQpXX1mdW5jdGlvbiBraSh0LGUpe3JldHVybiB0LnZhbHVlLWUudmFsdWV9ZnVuY3Rpb24gQWkodCxlKXt2YXIgcj10Ll9wYWNrX25leHQ7dC5fcGFja19uZXh0PWUsZS5fcGFja19wcmV2PXQsZS5fcGFja19uZXh0PXIsci5fcGFja19wcmV2PWV9ZnVuY3Rpb24gVGkodCxlKXt0Ll9wYWNrX25leHQ9ZSxlLl9wYWNrX3ByZXY9dH1mdW5jdGlvbiBFaSh0LGUpe3ZhciByPWUueC10Lngsbj1lLnktdC55LGk9dC5yK2UucjtyZXR1cm4uOTk5KmkqaT5yKnIrbipufWZ1bmN0aW9uIFNpKHQpe2Z1bmN0aW9uIGUodCl7Yz1NYXRoLm1pbih0LngtdC5yLGMpLGg9TWF0aC5tYXgodC54K3QucixoKSxmPU1hdGgubWluKHQueS10LnIsZikscD1NYXRoLm1heCh0LnkrdC5yLHApfWlmKChyPXQuY2hpbGRyZW4pJiYodT1yLmxlbmd0aCkpe3ZhciByLG4saSxvLGEscyxsLHUsYz0xLzAsaD0tKDEvMCksZj0xLzAscD0tKDEvMCk7aWYoci5mb3JFYWNoKExpKSxuPXJbMF0sbi54PS1uLnIsbi55PTAsZShuKSx1PjEmJihpPXJbMV0saS54PWkucixpLnk9MCxlKGkpLHU+MikpZm9yKG89clsyXSxQaShuLGksbyksZShvKSxBaShuLG8pLG4uX3BhY2tfcHJldj1vLEFpKG8saSksaT1uLl9wYWNrX25leHQsYT0zO3U+YTthKyspe1BpKG4saSxvPXJbYV0pO3ZhciBkPTAsbT0xLGc9MTtmb3Iocz1pLl9wYWNrX25leHQ7cyE9PWk7cz1zLl9wYWNrX25leHQsbSsrKWlmKEVpKHMsbykpe2Q9MTticmVha31pZigxPT1kKWZvcihsPW4uX3BhY2tfcHJldjtsIT09cy5fcGFja19wcmV2JiYhRWkobCxvKTtsPWwuX3BhY2tfcHJldixnKyspO2Q/KGc+bXx8bT09ZyYmaS5yPG4ucj9UaShuLGk9cyk6VGkobj1sLGkpLGEtLSk6KEFpKG4sbyksaT1vLGUobykpfXZhciB2PShjK2gpLzIseT0oZitwKS8yLGI9MDtmb3IoYT0wO3U+YTthKyspbz1yW2FdLG8ueC09dixvLnktPXksYj1NYXRoLm1heChiLG8ucitNYXRoLnNxcnQoby54Km8ueCtvLnkqby55KSk7dC5yPWIsci5mb3JFYWNoKHppKX19ZnVuY3Rpb24gTGkodCl7dC5fcGFja19uZXh0PXQuX3BhY2tfcHJldj10fWZ1bmN0aW9uIHppKHQpe2RlbGV0ZSB0Ll9wYWNrX25leHQsZGVsZXRlIHQuX3BhY2tfcHJldn1mdW5jdGlvbiBJaSh0LGUscixuKXt2YXIgaT10LmNoaWxkcmVuO2lmKHQueD1lKz1uKnQueCx0Lnk9cis9bip0LnksdC5yKj1uLGkpZm9yKHZhciBvPS0xLGE9aS5sZW5ndGg7KytvPGE7KUlpKGlbb10sZSxyLG4pfWZ1bmN0aW9uIFBpKHQsZSxyKXt2YXIgbj10LnIrci5yLGk9ZS54LXQueCxvPWUueS10Lnk7aWYobiYmKGl8fG8pKXt2YXIgYT1lLnIrci5yLHM9aSppK28qbzthKj1hLG4qPW47dmFyIGw9LjUrKG4tYSkvKDIqcyksdT1NYXRoLnNxcnQoTWF0aC5tYXgoMCwyKmEqKG4rcyktKG4tPXMpKm4tYSphKSkvKDIqcyk7ci54PXQueCtsKmkrdSpvLHIueT10LnkrbCpvLXUqaX1lbHNlIHIueD10LngrbixyLnk9dC55fWZ1bmN0aW9uIENpKHQsZSl7cmV0dXJuIHQucGFyZW50PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gUmkodCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZS5sZW5ndGg/ZVswXTp0LnR9ZnVuY3Rpb24gamkodCl7dmFyIGUscj10LmNoaWxkcmVuO3JldHVybihlPXIubGVuZ3RoKT9yW2UtMV06dC50fWZ1bmN0aW9uIERpKHQsZSxyKXt2YXIgbj1yLyhlLmktdC5pKTtlLmMtPW4sZS5zKz1yLHQuYys9bixlLnorPXIsZS5tKz1yfWZ1bmN0aW9uIE9pKHQpe2Zvcih2YXIgZSxyPTAsbj0wLGk9dC5jaGlsZHJlbixvPWkubGVuZ3RoOy0tbz49MDspZT1pW29dLGUueis9cixlLm0rPXIscis9ZS5zKyhuKz1lLmMpfWZ1bmN0aW9uIEZpKHQsZSxyKXtyZXR1cm4gdC5hLnBhcmVudD09PWUucGFyZW50P3QuYTpyfWZ1bmN0aW9uIE5pKHQpe3JldHVybiAxK2NhLm1heCh0LGZ1bmN0aW9uKHQpe3JldHVybiB0Lnl9KX1mdW5jdGlvbiBCaSh0KXtyZXR1cm4gdC5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnh9LDApL3QubGVuZ3RofWZ1bmN0aW9uIFVpKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGUmJmUubGVuZ3RoP1VpKGVbMF0pOnR9ZnVuY3Rpb24gVmkodCl7dmFyIGUscj10LmNoaWxkcmVuO3JldHVybiByJiYoZT1yLmxlbmd0aCk/VmkocltlLTFdKTp0fWZ1bmN0aW9uIHFpKHQpe3JldHVybnt4OnQueCx5OnQueSxkeDp0LmR4LGR5OnQuZHl9fWZ1bmN0aW9uIEdpKHQsZSl7dmFyIHI9dC54K2VbM10sbj10LnkrZVswXSxpPXQuZHgtZVsxXS1lWzNdLG89dC5keS1lWzBdLWVbMl07cmV0dXJuIDA+aSYmKHIrPWkvMixpPTApLDA+byYmKG4rPW8vMixvPTApLHt4OnIseTpuLGR4OmksZHk6b319ZnVuY3Rpb24gSGkodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIHI+ZT9bZSxyXTpbcixlXX1mdW5jdGlvbiBYaSh0KXtyZXR1cm4gdC5yYW5nZUV4dGVudD90LnJhbmdlRXh0ZW50KCk6SGkodC5yYW5nZSgpKX1mdW5jdGlvbiBZaSh0LGUscixuKXt2YXIgaT1yKHRbMF0sdFsxXSksbz1uKGVbMF0sZVsxXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBvKGkodCkpfX1mdW5jdGlvbiBXaSh0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoLTEsbz10W25dLGE9dFtpXTtyZXR1cm4gbz5hJiYocj1uLG49aSxpPXIscj1vLG89YSxhPXIpLHRbbl09ZS5mbG9vcihvKSx0W2ldPWUuY2VpbChhKSx0fWZ1bmN0aW9uIFppKHQpe3JldHVybiB0P3tmbG9vcjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5mbG9vcihlL3QpKnR9LGNlaWw6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguY2VpbChlL3QpKnR9fTpUbH1mdW5jdGlvbiBRaSh0LGUscixuKXt2YXIgaT1bXSxvPVtdLGE9MCxzPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKS0xO2Zvcih0W3NdPHRbMF0mJih0PXQuc2xpY2UoKS5yZXZlcnNlKCksZT1lLnNsaWNlKCkucmV2ZXJzZSgpKTsrK2E8PXM7KWkucHVzaChyKHRbYS0xXSx0W2FdKSksby5wdXNoKG4oZVthLTFdLGVbYV0pKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9Y2EuYmlzZWN0KHQsZSwxLHMpLTE7cmV0dXJuIG9bcl0oaVtyXShlKSl9fWZ1bmN0aW9uIEtpKHQsZSxyLG4pe2Z1bmN0aW9uIGkoKXt2YXIgaT1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCk+Mj9RaTpZaSxsPW4/S246UW47cmV0dXJuIGE9aSh0LGUsbCxyKSxzPWkoZSx0LGwsX24pLG99ZnVuY3Rpb24gbyh0KXtyZXR1cm4gYSh0KX12YXIgYSxzO3JldHVybiBvLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gcyh0KX0sby5kb21haW49ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZS5tYXAoTnVtYmVyKSxpKCkpOnR9LG8ucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxpKCkpOmV9LG8ucmFuZ2VSb3VuZD1mdW5jdGlvbih0KXtyZXR1cm4gby5yYW5nZSh0KS5pbnRlcnBvbGF0ZShObil9LG8uY2xhbXA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxpKCkpOm59LG8uaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxpKCkpOnJ9LG8udGlja3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGVvKHQsZSl9LG8udGlja0Zvcm1hdD1mdW5jdGlvbihlLHIpe3JldHVybiBybyh0LGUscil9LG8ubmljZT1mdW5jdGlvbihlKXtyZXR1cm4gJGkodCxlKSxpKCl9LG8uY29weT1mdW5jdGlvbigpe3JldHVybiBLaSh0LGUscixuKX0saSgpfWZ1bmN0aW9uIEppKHQsZSl7cmV0dXJuIGNhLnJlYmluZCh0LGUsInJhbmdlIiwicmFuZ2VSb3VuZCIsImludGVycG9sYXRlIiwiY2xhbXAiKX1mdW5jdGlvbiAkaSh0LGUpe3JldHVybiBXaSh0LFppKHRvKHQsZSlbMl0pKSxXaSh0LFppKHRvKHQsZSlbMl0pKSx0fWZ1bmN0aW9uIHRvKHQsZSl7bnVsbD09ZSYmKGU9MTApO3ZhciByPUhpKHQpLG49clsxXS1yWzBdLGk9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhuL2UpL01hdGguTE4xMCkpLG89ZS9uKmk7cmV0dXJuLjE1Pj1vP2kqPTEwOi4zNT49bz9pKj01Oi43NT49byYmKGkqPTIpLHJbMF09TWF0aC5jZWlsKHJbMF0vaSkqaSxyWzFdPU1hdGguZmxvb3IoclsxXS9pKSppKy41KmksclsyXT1pLHJ9ZnVuY3Rpb24gZW8odCxlKXtyZXR1cm4gY2EucmFuZ2UuYXBwbHkoY2EsdG8odCxlKSl9ZnVuY3Rpb24gcm8odCxlLHIpe3ZhciBuPXRvKHQsZSk7aWYocil7dmFyIGk9ZHMuZXhlYyhyKTtpZihpLnNoaWZ0KCksInMiPT09aVs4XSl7dmFyIG89Y2EuZm9ybWF0UHJlZml4KE1hdGgubWF4KHdhKG5bMF0pLHdhKG5bMV0pKSk7cmV0dXJuIGlbN118fChpWzddPSIuIitubyhvLnNjYWxlKG5bMl0pKSksaVs4XT0iZiIscj1jYS5mb3JtYXQoaS5qb2luKCIiKSksZnVuY3Rpb24odCl7cmV0dXJuIHIoby5zY2FsZSh0KSkrby5zeW1ib2x9fWlbN118fChpWzddPSIuIitpbyhpWzhdLG4pKSxyPWkuam9pbigiIil9ZWxzZSByPSIsLiIrbm8oblsyXSkrImYiO3JldHVybiBjYS5mb3JtYXQocil9ZnVuY3Rpb24gbm8odCl7cmV0dXJuLU1hdGguZmxvb3IoTWF0aC5sb2codCkvTWF0aC5MTjEwKy4wMSl9ZnVuY3Rpb24gaW8odCxlKXt2YXIgcj1ubyhlWzJdKTtyZXR1cm4gdCBpbiBFbD9NYXRoLmFicyhyLW5vKE1hdGgubWF4KHdhKGVbMF0pLHdhKGVbMV0pKSkpKyArKCJlIiE9PXQpOnItMiooIiUiPT09dCl9ZnVuY3Rpb24gb28odCxlLHIsbil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4ocj9NYXRoLmxvZygwPnQ/MDp0KTotTWF0aC5sb2codD4wPzA6LXQpKS9NYXRoLmxvZyhlKX1mdW5jdGlvbiBvKHQpe3JldHVybiByP01hdGgucG93KGUsdCk6LU1hdGgucG93KGUsLXQpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIHQoaShlKSl9cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKGUpe3JldHVybiBvKHQuaW52ZXJ0KGUpKX0sYS5kb21haW49ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ZVswXT49MCx0LmRvbWFpbigobj1lLm1hcChOdW1iZXIpKS5tYXAoaSkpLGEpOm59LGEuYmFzZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rcix0LmRvbWFpbihuLm1hcChpKSksYSk6ZX0sYS5uaWNlPWZ1bmN0aW9uKCl7dmFyIGU9V2kobi5tYXAoaSkscj9NYXRoOkxsKTtyZXR1cm4gdC5kb21haW4oZSksbj1lLm1hcChvKSxhfSxhLnRpY2tzPWZ1bmN0aW9uKCl7dmFyIHQ9SGkobiksYT1bXSxzPXRbMF0sbD10WzFdLHU9TWF0aC5mbG9vcihpKHMpKSxjPU1hdGguY2VpbChpKGwpKSxoPWUlMT8yOmU7aWYoaXNGaW5pdGUoYy11KSl7aWYocil7Zm9yKDtjPnU7dSsrKWZvcih2YXIgZj0xO2g+ZjtmKyspYS5wdXNoKG8odSkqZik7YS5wdXNoKG8odSkpfWVsc2UgZm9yKGEucHVzaChvKHUpKTt1Kys8YzspZm9yKHZhciBmPWgtMTtmPjA7Zi0tKWEucHVzaChvKHUpKmYpO2Zvcih1PTA7YVt1XTxzO3UrKyk7Zm9yKGM9YS5sZW5ndGg7YVtjLTFdPmw7Yy0tKTthPWEuc2xpY2UodSxjKX1yZXR1cm4gYX0sYS50aWNrRm9ybWF0PWZ1bmN0aW9uKHQscil7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIFNsO2FyZ3VtZW50cy5sZW5ndGg8Mj9yPVNsOiJmdW5jdGlvbiIhPXR5cGVvZiByJiYocj1jYS5mb3JtYXQocikpO3ZhciBuPU1hdGgubWF4KDEsZSp0L2EudGlja3MoKS5sZW5ndGgpO3JldHVybiBmdW5jdGlvbih0KXt2YXIgYT10L28oTWF0aC5yb3VuZChpKHQpKSk7cmV0dXJuIGUtLjU+YSplJiYoYSo9ZSksbj49YT9yKHQpOiIifX0sYS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIG9vKHQuY29weSgpLGUscixuKX0sSmkoYSx0KX1mdW5jdGlvbiBhbyh0LGUscil7ZnVuY3Rpb24gbihlKXtyZXR1cm4gdChpKGUpKX12YXIgaT1zbyhlKSxvPXNvKDEvZSk7cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKGUpe3JldHVybiBvKHQuaW52ZXJ0KGUpKX0sbi5kb21haW49ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQuZG9tYWluKChyPWUubWFwKE51bWJlcikpLm1hcChpKSksbik6cn0sbi50aWNrcz1mdW5jdGlvbih0KXtyZXR1cm4gZW8ocix0KX0sbi50aWNrRm9ybWF0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJvKHIsdCxlKX0sbi5uaWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuLmRvbWFpbigkaShyLHQpKX0sbi5leHBvbmVudD1mdW5jdGlvbihhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1zbyhlPWEpLG89c28oMS9lKSx0LmRvbWFpbihyLm1hcChpKSksbik6ZX0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGFvKHQuY29weSgpLGUscil9LEppKG4sdCl9ZnVuY3Rpb24gc28odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiAwPmU/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fWZ1bmN0aW9uIGxvKHQsZSl7ZnVuY3Rpb24gcihyKXtyZXR1cm4gb1soKGkuZ2V0KHIpfHwoInJhbmdlIj09PWUudD9pLnNldChyLHQucHVzaChyKSk6TmFOKSktMSklby5sZW5ndGhdfWZ1bmN0aW9uIG4oZSxyKXtyZXR1cm4gY2EucmFuZ2UodC5sZW5ndGgpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZStyKnR9KX12YXIgaSxvLGE7cmV0dXJuIHIuZG9tYWluPWZ1bmN0aW9uKG4pe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0O3Q9W10saT1uZXcgaDtmb3IodmFyIG8sYT0tMSxzPW4ubGVuZ3RoOysrYTxzOylpLmhhcyhvPW5bYV0pfHxpLnNldChvLHQucHVzaChvKSk7cmV0dXJuIHJbZS50XS5hcHBseShyLGUuYSl9LHIucmFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxhPTAsZT17dDoicmFuZ2UiLGE6YXJndW1lbnRzfSxyKTpvfSxyLnJhbmdlUG9pbnRzPWZ1bmN0aW9uKGkscyl7YXJndW1lbnRzLmxlbmd0aDwyJiYocz0wKTt2YXIgbD1pWzBdLHU9aVsxXSxjPXQubGVuZ3RoPDI/KGw9KGwrdSkvMiwwKToodS1sKS8odC5sZW5ndGgtMStzKTtyZXR1cm4gbz1uKGwrYypzLzIsYyksYT0wLGU9e3Q6InJhbmdlUG9pbnRzIixhOmFyZ3VtZW50c30scn0sci5yYW5nZVJvdW5kUG9pbnRzPWZ1bmN0aW9uKGkscyl7YXJndW1lbnRzLmxlbmd0aDwyJiYocz0wKTt2YXIgbD1pWzBdLHU9aVsxXSxjPXQubGVuZ3RoPDI/KGw9dT1NYXRoLnJvdW5kKChsK3UpLzIpLDApOih1LWwpLyh0Lmxlbmd0aC0xK3MpfDA7cmV0dXJuIG89bihsK01hdGgucm91bmQoYypzLzIrKHUtbC0odC5sZW5ndGgtMStzKSpjKS8yKSxjKSxhPTAsZT17dDoicmFuZ2VSb3VuZFBvaW50cyIsYTphcmd1bWVudHN9LHJ9LHIucmFuZ2VCYW5kcz1mdW5jdGlvbihpLHMsbCl7YXJndW1lbnRzLmxlbmd0aDwyJiYocz0wKSxhcmd1bWVudHMubGVuZ3RoPDMmJihsPXMpO3ZhciB1PWlbMV08aVswXSxjPWlbdS0wXSxoPWlbMS11XSxmPShoLWMpLyh0Lmxlbmd0aC1zKzIqbCk7cmV0dXJuIG89bihjK2YqbCxmKSx1JiZvLnJldmVyc2UoKSxhPWYqKDEtcyksZT17dDoicmFuZ2VCYW5kcyIsYTphcmd1bWVudHN9LHJ9LHIucmFuZ2VSb3VuZEJhbmRzPWZ1bmN0aW9uKGkscyxsKXthcmd1bWVudHMubGVuZ3RoPDImJihzPTApLGFyZ3VtZW50cy5sZW5ndGg8MyYmKGw9cyk7dmFyIHU9aVsxXTxpWzBdLGM9aVt1LTBdLGg9aVsxLXVdLGY9TWF0aC5mbG9vcigoaC1jKS8odC5sZW5ndGgtcysyKmwpKTtyZXR1cm4gbz1uKGMrTWF0aC5yb3VuZCgoaC1jLSh0Lmxlbmd0aC1zKSpmKS8yKSxmKSx1JiZvLnJldmVyc2UoKSxhPU1hdGgucm91bmQoZiooMS1zKSksZT17dDoicmFuZ2VSb3VuZEJhbmRzIixhOmFyZ3VtZW50c30scn0sci5yYW5nZUJhbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gYX0sci5yYW5nZUV4dGVudD1mdW5jdGlvbigpe3JldHVybiBIaShlLmFbMF0pfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gbG8odCxlKX0sci5kb21haW4odCl9ZnVuY3Rpb24gdW8odCxlKXtmdW5jdGlvbiByKCl7dmFyIHI9MCxpPWUubGVuZ3RoO2ZvcihzPVtdOysrcjxpOylzW3ItMV09Y2EucXVhbnRpbGUodCxyL2kpO3JldHVybiBufWZ1bmN0aW9uIG4odCl7cmV0dXJuIGlzTmFOKHQ9K3QpP3ZvaWQgMDplW2NhLmJpc2VjdChzLHQpXX12YXIgcztyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZS5tYXAobykuZmlsdGVyKGEpLnNvcnQoaSkscigpKTp0fSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQscigpKTplfSxuLnF1YW50aWxlcz1mdW5jdGlvbigpe3JldHVybiBzfSxuLmludmVydEV4dGVudD1mdW5jdGlvbihyKXtyZXR1cm4gcj1lLmluZGV4T2YociksMD5yP1tOYU4sTmFOXTpbcj4wP3Nbci0xXTp0WzBdLHI8cy5sZW5ndGg/c1tyXTp0W3QubGVuZ3RoLTFdXX0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHVvKHQsZSl9LHIoKX1mdW5jdGlvbiBjbyh0LGUscil7ZnVuY3Rpb24gbihlKXtyZXR1cm4gcltNYXRoLm1heCgwLE1hdGgubWluKGEsTWF0aC5mbG9vcihvKihlLXQpKSkpXX1mdW5jdGlvbiBpKCl7cmV0dXJuIG89ci5sZW5ndGgvKGUtdCksYT1yLmxlbmd0aC0xLG59dmFyIG8sYTtyZXR1cm4gbi5kb21haW49ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K3JbMF0sZT0rcltyLmxlbmd0aC0xXSxpKCkpOlt0LGVdfSxuLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsaSgpKTpyfSxuLmludmVydEV4dGVudD1mdW5jdGlvbihlKXtyZXR1cm4gZT1yLmluZGV4T2YoZSksZT0wPmU/TmFOOmUvbyt0LFtlLGUrMS9vXX0sbi5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGNvKHQsZSxyKX0saSgpfWZ1bmN0aW9uIGhvKHQsZSl7ZnVuY3Rpb24gcihyKXtyZXR1cm4gcj49cj9lW2NhLmJpc2VjdCh0LHIpXTp2b2lkIDB9cmV0dXJuIHIuZG9tYWluPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWUscik6dH0sci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHIpOmV9LHIuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHIpe3JldHVybiByPWUuaW5kZXhPZihyKSxbdFtyLTFdLHRbcl1dfSxyLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gaG8odCxlKX0scn1mdW5jdGlvbiBmbyh0KXtmdW5jdGlvbiBlKHQpe3JldHVybit0fXJldHVybiBlLmludmVydD1lLGUuZG9tYWluPWUucmFuZ2U9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ci5tYXAoZSksZSk6dH0sZS50aWNrcz1mdW5jdGlvbihlKXtyZXR1cm4gZW8odCxlKX0sZS50aWNrRm9ybWF0PWZ1bmN0aW9uKGUscil7cmV0dXJuIHJvKHQsZSxyKX0sZS5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGZvKHQpfSxlfWZ1bmN0aW9uIHBvKCl7cmV0dXJuIDB9ZnVuY3Rpb24gbW8odCl7cmV0dXJuIHQuaW5uZXJSYWRpdXN9ZnVuY3Rpb24gZ28odCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gdm8odCl7cmV0dXJuIHQuc3RhcnRBbmdsZX1mdW5jdGlvbiB5byh0KXtyZXR1cm4gdC5lbmRBbmdsZX1mdW5jdGlvbiBibyh0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiB4byh0LGUscixuKXtyZXR1cm4odC1yKSplLShlLW4pKnQ+MD8wOjF9ZnVuY3Rpb24gX28odCxlLHIsbixpKXt2YXIgbz10WzBdLWVbMF0sYT10WzFdLWVbMV0scz0oaT9uOi1uKS9NYXRoLnNxcnQobypvK2EqYSksbD1zKmEsdT0tcypvLGM9dFswXStsLGg9dFsxXSt1LGY9ZVswXStsLHA9ZVsxXSt1LGQ9KGMrZikvMixtPShoK3ApLzIsZz1mLWMsdj1wLWgseT1nKmcrdip2LGI9ci1uLHg9YypwLWYqaCxfPSgwPnY/LTE6MSkqTWF0aC5zcXJ0KE1hdGgubWF4KDAsYipiKnkteCp4KSksdz0oeCp2LWcqXykveSxNPSgteCpnLXYqXykveSxrPSh4KnYrZypfKS95LEE9KC14KmcrdipfKS95LFQ9dy1kLEU9TS1tLFM9ay1kLEw9QS1tO3JldHVybiBUKlQrRSpFPlMqUytMKkwmJih3PWssTT1BKSxbW3ctbCxNLXVdLFt3KnIvYixNKnIvYl1dfWZ1bmN0aW9uIHdvKHQpe2Z1bmN0aW9uIGUoZSl7ZnVuY3Rpb24gYSgpe3UucHVzaCgiTSIsbyh0KGMpLHMpKX1mb3IodmFyIGwsdT1bXSxjPVtdLGg9LTEsZj1lLmxlbmd0aCxwPVN0KHIpLGQ9U3Qobik7KytoPGY7KWkuY2FsbCh0aGlzLGw9ZVtoXSxoKT9jLnB1c2goWytwLmNhbGwodGhpcyxsLGgpLCtkLmNhbGwodGhpcyxsLGgpXSk6Yy5sZW5ndGgmJihhKCksYz1bXSk7cmV0dXJuIGMubGVuZ3RoJiZhKCksdS5sZW5ndGg/dS5qb2luKCIiKTpudWxsfXZhciByPXpyLG49SXIsaT1JZSxvPU1vLGE9by5rZXkscz0uNztyZXR1cm4gZS54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsZSk6cn0sZS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZSk6bn0sZS5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsZSk6aX0sZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT0iZnVuY3Rpb24iPT10eXBlb2YgdD9vPXQ6KG89amwuZ2V0KHQpfHxNbykua2V5LGUpOmF9LGUudGVuc2lvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGUpOnN9LGV9ZnVuY3Rpb24gTW8odCl7cmV0dXJuIHQubGVuZ3RoPjE/dC5qb2luKCJMIik6dCsiWiJ9ZnVuY3Rpb24ga28odCl7cmV0dXJuIHQuam9pbigiTCIpKyJaIn1mdW5jdGlvbiBBbyh0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLG49dFswXSxpPVtuWzBdLCIsIixuWzFdXTsrK2U8cjspaS5wdXNoKCJIIiwoblswXSsobj10W2VdKVswXSkvMiwiViIsblsxXSk7cmV0dXJuIHI+MSYmaS5wdXNoKCJIIixuWzBdKSxpLmpvaW4oIiIpfWZ1bmN0aW9uIFRvKHQpe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGgsbj10WzBdLGk9W25bMF0sIiwiLG5bMV1dOysrZTxyOylpLnB1c2goIlYiLChuPXRbZV0pWzFdLCJIIixuWzBdKTtyZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBFbyh0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLG49dFswXSxpPVtuWzBdLCIsIixuWzFdXTsrK2U8cjspaS5wdXNoKCJIIiwobj10W2VdKVswXSwiViIsblsxXSk7cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gU28odCxlKXtyZXR1cm4gdC5sZW5ndGg8ND9Nbyh0KTp0WzFdK0lvKHQuc2xpY2UoMSwtMSksUG8odCxlKSl9ZnVuY3Rpb24gTG8odCxlKXtyZXR1cm4gdC5sZW5ndGg8Mz9rbyh0KTp0WzBdK0lvKCh0LnB1c2godFswXSksdCksUG8oW3RbdC5sZW5ndGgtMl1dLmNvbmNhdCh0LFt0WzFdXSksZSkpfWZ1bmN0aW9uIHpvKHQsZSl7cmV0dXJuIHQubGVuZ3RoPDM/TW8odCk6dFswXStJbyh0LFBvKHQsZSkpfWZ1bmN0aW9uIElvKHQsZSl7aWYoZS5sZW5ndGg8MXx8dC5sZW5ndGghPWUubGVuZ3RoJiZ0Lmxlbmd0aCE9ZS5sZW5ndGgrMilyZXR1cm4gTW8odCk7dmFyIHI9dC5sZW5ndGghPWUubGVuZ3RoLG49IiIsaT10WzBdLG89dFsxXSxhPWVbMF0scz1hLGw9MTtpZihyJiYobis9IlEiKyhvWzBdLTIqYVswXS8zKSsiLCIrKG9bMV0tMiphWzFdLzMpKyIsIitvWzBdKyIsIitvWzFdLGk9dFsxXSxsPTIpLGUubGVuZ3RoPjEpe3M9ZVsxXSxvPXRbbF0sbCsrLG4rPSJDIisoaVswXSthWzBdKSsiLCIrKGlbMV0rYVsxXSkrIiwiKyhvWzBdLXNbMF0pKyIsIisob1sxXS1zWzFdKSsiLCIrb1swXSsiLCIrb1sxXTtmb3IodmFyIHU9Mjt1PGUubGVuZ3RoO3UrKyxsKyspbz10W2xdLHM9ZVt1XSxuKz0iUyIrKG9bMF0tc1swXSkrIiwiKyhvWzFdLXNbMV0pKyIsIitvWzBdKyIsIitvWzFdfWlmKHIpe3ZhciBjPXRbbF07bis9IlEiKyhvWzBdKzIqc1swXS8zKSsiLCIrKG9bMV0rMipzWzFdLzMpKyIsIitjWzBdKyIsIitjWzFdfXJldHVybiBufWZ1bmN0aW9uIFBvKHQsZSl7Zm9yKHZhciByLG49W10saT0oMS1lKS8yLG89dFswXSxhPXRbMV0scz0xLGw9dC5sZW5ndGg7KytzPGw7KXI9byxvPWEsYT10W3NdLG4ucHVzaChbaSooYVswXS1yWzBdKSxpKihhWzFdLXJbMV0pXSk7cmV0dXJuIG59ZnVuY3Rpb24gQ28odCl7aWYodC5sZW5ndGg8MylyZXR1cm4gTW8odCk7dmFyIGU9MSxyPXQubGVuZ3RoLG49dFswXSxpPW5bMF0sbz1uWzFdLGE9W2ksaSxpLChuPXRbMV0pWzBdXSxzPVtvLG8sbyxuWzFdXSxsPVtpLCIsIixvLCJMIixPbyhGbCxhKSwiLCIsT28oRmwscyldO2Zvcih0LnB1c2godFtyLTFdKTsrK2U8PXI7KW49dFtlXSxhLnNoaWZ0KCksYS5wdXNoKG5bMF0pLHMuc2hpZnQoKSxzLnB1c2goblsxXSksRm8obCxhLHMpO3JldHVybiB0LnBvcCgpLGwucHVzaCgiTCIsbiksbC5qb2luKCIiKX1mdW5jdGlvbiBSbyh0KXtpZih0Lmxlbmd0aDw0KXJldHVybiBNbyh0KTtmb3IodmFyIGUscj1bXSxuPS0xLGk9dC5sZW5ndGgsbz1bMF0sYT1bMF07KytuPDM7KWU9dFtuXSxvLnB1c2goZVswXSksYS5wdXNoKGVbMV0pO2ZvcihyLnB1c2goT28oRmwsbykrIiwiK09vKEZsLGEpKSwtLW47KytuPGk7KWU9dFtuXSxvLnNoaWZ0KCksby5wdXNoKGVbMF0pLGEuc2hpZnQoKSxhLnB1c2goZVsxXSksRm8ocixvLGEpO3JldHVybiByLmpvaW4oIiIpfWZ1bmN0aW9uIGpvKHQpe2Zvcih2YXIgZSxyLG49LTEsaT10Lmxlbmd0aCxvPWkrNCxhPVtdLHM9W107KytuPDQ7KXI9dFtuJWldLGEucHVzaChyWzBdKSxzLnB1c2goclsxXSk7Zm9yKGU9W09vKEZsLGEpLCIsIixPbyhGbCxzKV0sLS1uOysrbjxvOylyPXRbbiVpXSxhLnNoaWZ0KCksYS5wdXNoKHJbMF0pLHMuc2hpZnQoKSxzLnB1c2goclsxXSksRm8oZSxhLHMpO3JldHVybiBlLmpvaW4oIiIpfWZ1bmN0aW9uIERvKHQsZSl7dmFyIHI9dC5sZW5ndGgtMTtpZihyKWZvcih2YXIgbixpLG89dFswXVswXSxhPXRbMF1bMV0scz10W3JdWzBdLW8sbD10W3JdWzFdLWEsdT0tMTsrK3U8PXI7KW49dFt1XSxpPXUvcixuWzBdPWUqblswXSsoMS1lKSoobytpKnMpLG5bMV09ZSpuWzFdKygxLWUpKihhK2kqbCk7cmV0dXJuIENvKHQpfWZ1bmN0aW9uIE9vKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX1mdW5jdGlvbiBGbyh0LGUscil7dC5wdXNoKCJDIixPbyhEbCxlKSwiLCIsT28oRGwsciksIiwiLE9vKE9sLGUpLCIsIixPbyhPbCxyKSwiLCIsT28oRmwsZSksIiwiLE9vKEZsLHIpKX1mdW5jdGlvbiBObyh0LGUpe3JldHVybihlWzFdLXRbMV0pLyhlWzBdLXRbMF0pfWZ1bmN0aW9uIEJvKHQpe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGgtMSxuPVtdLGk9dFswXSxvPXRbMV0sYT1uWzBdPU5vKGksbyk7KytlPHI7KW5bZV09KGErKGE9Tm8oaT1vLG89dFtlKzFdKSkpLzI7cmV0dXJuIG5bZV09YSxufWZ1bmN0aW9uIFVvKHQpe2Zvcih2YXIgZSxyLG4saSxvPVtdLGE9Qm8odCkscz0tMSxsPXQubGVuZ3RoLTE7KytzPGw7KWU9Tm8odFtzXSx0W3MrMV0pLHdhKGUpPE5hP2Fbc109YVtzKzFdPTA6KHI9YVtzXS9lLG49YVtzKzFdL2UsaT1yKnIrbipuLGk+OSYmKGk9MyplL01hdGguc3FydChpKSxhW3NdPWkqcixhW3MrMV09aSpuKSk7Zm9yKHM9LTE7KytzPD1sOylpPSh0W01hdGgubWluKGwscysxKV1bMF0tdFtNYXRoLm1heCgwLHMtMSldWzBdKS8oNiooMSthW3NdKmFbc10pKSxvLnB1c2goW2l8fDAsYVtzXSppfHwwXSk7cmV0dXJuIG99ZnVuY3Rpb24gVm8odCl7cmV0dXJuIHQubGVuZ3RoPDM/TW8odCk6dFswXStJbyh0LFVvKHQpKX1mdW5jdGlvbiBxbyh0KXtmb3IodmFyIGUscixuLGk9LTEsbz10Lmxlbmd0aDsrK2k8bzspZT10W2ldLHI9ZVswXSxuPWVbMV0tR2EsZVswXT1yKk1hdGguY29zKG4pLGVbMV09cipNYXRoLnNpbihuKTtyZXR1cm4gdH1mdW5jdGlvbiBHbyh0KXtmdW5jdGlvbiBlKGUpe2Z1bmN0aW9uIGwoKXttLnB1c2goIk0iLHModCh2KSxoKSxjLHUodChnLnJldmVyc2UoKSksaCksIloiKX1mb3IodmFyIGYscCxkLG09W10sZz1bXSx2PVtdLHk9LTEsYj1lLmxlbmd0aCx4PVN0KHIpLF89U3QoaSksdz1yPT09bj9mdW5jdGlvbigpe3JldHVybiBwfTpTdChuKSxNPWk9PT1vP2Z1bmN0aW9uKCl7cmV0dXJuIGR9OlN0KG8pOysreTxiOylhLmNhbGwodGhpcyxmPWVbeV0seSk/KGcucHVzaChbcD0reC5jYWxsKHRoaXMsZix5KSxkPStfLmNhbGwodGhpcyxmLHkpXSksdi5wdXNoKFsrdy5jYWxsKHRoaXMsZix5KSwrTS5jYWxsKHRoaXMsZix5KV0pKTpnLmxlbmd0aCYmKGwoKSxnPVtdLHY9W10pO3JldHVybiBnLmxlbmd0aCYmbCgpLG0ubGVuZ3RoP20uam9pbigiIik6bnVsbH12YXIgcj16cixuPXpyLGk9MCxvPUlyLGE9SWUscz1NbyxsPXMua2V5LHU9cyxjPSJMIixoPS43O3JldHVybiBlLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9bj10LGUpOm59LGUueDA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxlKTpyfSxlLngxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQsZSk6bn0sZS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW89dCxlKTpvfSxlLnkwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsZSk6aX0sZS55MT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz10LGUpOm99LGUuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LGUpOmF9LGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/cz10OihzPWpsLmdldCh0KXx8TW8pLmtleSx1PXMucmV2ZXJzZXx8cyxjPXMuY2xvc2VkPyJNIjoiTCIsZSk6bH0sZS50ZW5zaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXQsZSk6aH0sZX1mdW5jdGlvbiBIbyh0KXtyZXR1cm4gdC5yYWRpdXN9ZnVuY3Rpb24gWG8odCl7cmV0dXJuW3QueCx0LnldfWZ1bmN0aW9uIFlvKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpLHI9ZVswXSxuPWVbMV0tR2E7cmV0dXJuW3IqTWF0aC5jb3MobikscipNYXRoLnNpbihuKV19fWZ1bmN0aW9uIFdvKCl7cmV0dXJuIDY0fWZ1bmN0aW9uIFpvKCl7cmV0dXJuImNpcmNsZSJ9ZnVuY3Rpb24gUW8odCl7dmFyIGU9TWF0aC5zcXJ0KHQvVWEpO3JldHVybiJNMCwiK2UrIkEiK2UrIiwiK2UrIiAwIDEsMSAwLCIrLWUrIkEiK2UrIiwiK2UrIiAwIDEsMSAwLCIrZSsiWiJ9ZnVuY3Rpb24gS28odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGUscixuOyhlPXRoaXNbdF0pJiYobj1lW3I9ZS5hY3RpdmVdKSYmKG4udGltZXIuYz1udWxsLG4udGltZXIudD1OYU4sLS1lLmNvdW50P2RlbGV0ZSBlW3JdOmRlbGV0ZSB0aGlzW3RdLGUuYWN0aXZlKz0uNSxuLmV2ZW50JiZuLmV2ZW50LmludGVycnVwdC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxuLmluZGV4KSl9fWZ1bmN0aW9uIEpvKHQsZSxyKXtyZXR1cm4gRWEodCxIbCksdC5uYW1lc3BhY2U9ZSx0LmlkPXIsdH1mdW5jdGlvbiAkbyh0LGUscixuKXt2YXIgaT10LmlkLG89dC5uYW1lc3BhY2U7cmV0dXJuIEgodCwiZnVuY3Rpb24iPT10eXBlb2Ygcj9mdW5jdGlvbih0LGEscyl7dFtvXVtpXS50d2Vlbi5zZXQoZSxuKHIuY2FsbCh0LHQuX19kYXRhX18sYSxzKSkpfToocj1uKHIpLGZ1bmN0aW9uKHQpe3Rbb11baV0udHdlZW4uc2V0KGUscil9KSl9ZnVuY3Rpb24gdGEodCl7cmV0dXJuIG51bGw9PXQmJih0PSIiKSxmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gZWEodCl7cmV0dXJuIG51bGw9PXQ/Il9fdHJhbnNpdGlvbl9fIjoiX190cmFuc2l0aW9uXyIrdCsiX18ifWZ1bmN0aW9uIHJhKHQsZSxyLG4saSl7ZnVuY3Rpb24gbyh0KXt2YXIgZT1tLmRlbGF5O3JldHVybiB1LnQ9ZStsLHQ+PWU/YSh0LWUpOnZvaWQodS5jPWEpfWZ1bmN0aW9uIGEocil7dmFyIGk9ZC5hY3RpdmUsbz1kW2ldO28mJihvLnRpbWVyLmM9bnVsbCxvLnRpbWVyLnQ9TmFOLC0tZC5jb3VudCxkZWxldGUgZFtpXSxvLmV2ZW50JiZvLmV2ZW50LmludGVycnVwdC5jYWxsKHQsdC5fX2RhdGFfXyxvLmluZGV4KSk7Zm9yKHZhciBhIGluIGQpaWYobj4rYSl7dmFyIGg9ZFthXTtoLnRpbWVyLmM9bnVsbCxoLnRpbWVyLnQ9TmFOLC0tZC5jb3VudCxkZWxldGUgZFthXX11LmM9cyxDdChmdW5jdGlvbigpe3JldHVybiB1LmMmJnMocnx8MSkmJih1LmM9bnVsbCx1LnQ9TmFOKSwxfSwwLGwpLGQuYWN0aXZlPW4sbS5ldmVudCYmbS5ldmVudC5zdGFydC5jYWxsKHQsdC5fX2RhdGFfXyxlKSxwPVtdLG0udHdlZW4uZm9yRWFjaChmdW5jdGlvbihyLG4peyhuPW4uY2FsbCh0LHQuX19kYXRhX18sZSkpJiZwLnB1c2gobil9KSxmPW0uZWFzZSxjPW0uZHVyYXRpb259ZnVuY3Rpb24gcyhpKXtmb3IodmFyIG89aS9jLGE9ZihvKSxzPXAubGVuZ3RoO3M+MDspcFstLXNdLmNhbGwodCxhKTtyZXR1cm4gbz49MT8obS5ldmVudCYmbS5ldmVudC5lbmQuY2FsbCh0LHQuX19kYXRhX18sZSksLS1kLmNvdW50P2RlbGV0ZSBkW25dOmRlbGV0ZSB0W3JdLDEpOnZvaWQgMH12YXIgbCx1LGMsZixwLGQ9dFtyXXx8KHRbcl09e2FjdGl2ZTowLGNvdW50OjB9KSxtPWRbbl07bXx8KGw9aS50aW1lLHU9Q3QobywwLGwpLG09ZFtuXT17dHdlZW46bmV3IGgsdGltZTpsLHRpbWVyOnUsZGVsYXk6aS5kZWxheSxkdXJhdGlvbjppLmR1cmF0aW9uLGVhc2U6aS5lYXNlLGluZGV4OmV9LGk9bnVsbCwrK2QuY291bnQpfWZ1bmN0aW9uIG5hKHQsZSxyKXt0LmF0dHIoInRyYW5zZm9ybSIsZnVuY3Rpb24odCl7dmFyIG49ZSh0KTtyZXR1cm4idHJhbnNsYXRlKCIrKGlzRmluaXRlKG4pP246cih0KSkrIiwwKSJ9KX1mdW5jdGlvbiBpYSh0LGUscil7dC5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3ZhciBuPWUodCk7cmV0dXJuInRyYW5zbGF0ZSgwLCIrKGlzRmluaXRlKG4pP246cih0KSkrIikifSl9ZnVuY3Rpb24gb2EodCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX1mdW5jdGlvbiBhYSh0LGUscil7ZnVuY3Rpb24gbihlKXtyZXR1cm4gdChlKX1mdW5jdGlvbiBpKHQscil7dmFyIG49dFsxXS10WzBdLGk9bi9yLG89Y2EuYmlzZWN0KHR1LGkpO3JldHVybiBvPT10dS5sZW5ndGg/W2UueWVhcix0byh0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC8zMTUzNmU2fSkscilbMl1dOm8/ZVtpL3R1W28tMV08dHVbb10vaT9vLTE6b106W251LHRvKHQscilbMl1dfXJldHVybiBuLmludmVydD1mdW5jdGlvbihlKXtyZXR1cm4gc2EodC5pbnZlcnQoZSkpfSxuLmRvbWFpbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odC5kb21haW4oZSksbik6dC5kb21haW4oKS5tYXAoc2EpfSxuLm5pY2U9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIpe3JldHVybiFpc05hTihyKSYmIXQucmFuZ2UocixzYSgrcisxKSxlKS5sZW5ndGh9dmFyIG89bi5kb21haW4oKSxhPUhpKG8pLHM9bnVsbD09dD9pKGEsMTApOiJudW1iZXIiPT10eXBlb2YgdCYmaShhLHQpO3JldHVybiBzJiYodD1zWzBdLGU9c1sxXSksbi5kb21haW4oV2kobyxlPjE/e2Zsb29yOmZ1bmN0aW9uKGUpe2Zvcig7cihlPXQuZmxvb3IoZSkpOyllPXNhKGUtMSk7cmV0dXJuIGV9LGNlaWw6ZnVuY3Rpb24oZSl7Zm9yKDtyKGU9dC5jZWlsKGUpKTspZT1zYSgrZSsxKTtyZXR1cm4gZX19OnQpKX0sbi50aWNrcz1mdW5jdGlvbih0LGUpe3ZhciByPUhpKG4uZG9tYWluKCkpLG89bnVsbD09dD9pKHIsMTApOiJudW1iZXIiPT10eXBlb2YgdD9pKHIsdCk6IXQucmFuZ2UmJlt7cmFuZ2U6dH0sZV07cmV0dXJuIG8mJih0PW9bMF0sZT1vWzFdKSx0LnJhbmdlKHJbMF0sc2EoK3JbMV0rMSksMT5lPzE6ZSl9LG4udGlja0Zvcm1hdD1mdW5jdGlvbigpe3JldHVybiByfSxuLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gYWEodC5jb3B5KCksZSxyKX0sSmkobix0KX1mdW5jdGlvbiBzYSh0KXtyZXR1cm4gbmV3IERhdGUodCl9ZnVuY3Rpb24gbGEodCl7cmV0dXJuIEpTT04ucGFyc2UodC5yZXNwb25zZVRleHQpfWZ1bmN0aW9uIHVhKHQpe3ZhciBlPXBhLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGUuc2VsZWN0Tm9kZShwYS5ib2R5KSxlLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudCh0LnJlc3BvbnNlVGV4dCl9dmFyIGNhPXt2ZXJzaW9uOiIzLjUuMTYifSxoYT1bXS5zbGljZSxmYT1mdW5jdGlvbih0KXtyZXR1cm4gaGEuY2FsbCh0KX0scGE9dGhpcy5kb2N1bWVudDtpZihwYSl0cnl7ZmEocGEuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpWzBdLm5vZGVUeXBlfWNhdGNoKGRhKXtmYT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbZV07cmV0dXJuIHJ9fWlmKERhdGUubm93fHwoRGF0ZS5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9KSxwYSl0cnl7cGEuY3JlYXRlRWxlbWVudCgiRElWIikuc3R5bGUuc2V0UHJvcGVydHkoIm9wYWNpdHkiLDAsIiIpfWNhdGNoKG1hKXt2YXIgZ2E9dGhpcy5FbGVtZW50LnByb3RvdHlwZSx2YT1nYS5zZXRBdHRyaWJ1dGUseWE9Z2Euc2V0QXR0cmlidXRlTlMsYmE9dGhpcy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSx4YT1iYS5zZXRQcm9wZXJ0eTtnYS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXt2YS5jYWxsKHRoaXMsdCxlKyIiKX0sZ2Euc2V0QXR0cmlidXRlTlM9ZnVuY3Rpb24odCxlLHIpe3lhLmNhbGwodGhpcyx0LGUscisiIil9LGJhLnNldFByb3BlcnR5PWZ1bmN0aW9uKHQsZSxyKXt4YS5jYWxsKHRoaXMsdCxlKyIiLHIpfX1jYS5hc2NlbmRpbmc9aSxjYS5kZXNjZW5kaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+ZT8tMTplPnQ/MTplPj10PzA6TmFOfSxjYS5taW49ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9LTEsbz10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7Zm9yKDsrK2k8bzspaWYobnVsbCE9KG49dFtpXSkmJm4+PW4pe3I9bjticmVha31mb3IoOysraTxvOyludWxsIT0obj10W2ldKSYmcj5uJiYocj1uKX1lbHNle2Zvcig7KytpPG87KWlmKG51bGwhPShuPWUuY2FsbCh0LHRbaV0saSkpJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2k8bzspbnVsbCE9KG49ZS5jYWxsKHQsdFtpXSxpKSkmJnI+biYmKHI9bil9cmV0dXJuIHJ9LGNhLm1heD1mdW5jdGlvbih0LGUpe3ZhciByLG4saT0tMSxvPXQubGVuZ3RoO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtmb3IoOysraTxvOylpZihudWxsIT0obj10W2ldKSYmbj49bil7cj1uO2JyZWFrfWZvcig7KytpPG87KW51bGwhPShuPXRbaV0pJiZuPnImJihyPW4pfWVsc2V7Zm9yKDsrK2k8bzspaWYobnVsbCE9KG49ZS5jYWxsKHQsdFtpXSxpKSkmJm4+PW4pe3I9bjticmVha31mb3IoOysraTxvOyludWxsIT0obj1lLmNhbGwodCx0W2ldLGkpKSYmbj5yJiYocj1uKX1yZXR1cm4gcn0sY2EuZXh0ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLG89LTEsYT10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7Zm9yKDsrK288YTspaWYobnVsbCE9KG49dFtvXSkmJm4+PW4pe3I9aT1uO2JyZWFrfWZvcig7KytvPGE7KW51bGwhPShuPXRbb10pJiYocj5uJiYocj1uKSxuPmkmJihpPW4pKX1lbHNle2Zvcig7KytvPGE7KWlmKG51bGwhPShuPWUuY2FsbCh0LHRbb10sbykpJiZuPj1uKXtyPWk9bjticmVha31mb3IoOysrbzxhOyludWxsIT0obj1lLmNhbGwodCx0W29dLG8pKSYmKHI+biYmKHI9biksbj5pJiYoaT1uKSl9cmV0dXJuW3IsaV19LGNhLnN1bT1mdW5jdGlvbih0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoLG89LTE7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK288aTspYShyPSt0W29dKSYmKG4rPXIpO2Vsc2UgZm9yKDsrK288aTspYShyPStlLmNhbGwodCx0W29dLG8pKSYmKG4rPXIpO3JldHVybiBufSxjYS5tZWFuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj0wLGk9dC5sZW5ndGgscz0tMSxsPWk7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK3M8aTspYShyPW8odFtzXSkpP24rPXI6LS1sO2Vsc2UgZm9yKDsrK3M8aTspYShyPW8oZS5jYWxsKHQsdFtzXSxzKSkpP24rPXI6LS1sO3JldHVybiBsP24vbDp2b2lkIDB9LGNhLnF1YW50aWxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQubGVuZ3RoLTEpKmUrMSxuPU1hdGguZmxvb3IociksaT0rdFtuLTFdLG89ci1uO3JldHVybiBvP2krbyoodFtuXS1pKTppfSxjYS5tZWRpYW49ZnVuY3Rpb24odCxlKXt2YXIgcixuPVtdLHM9dC5sZW5ndGgsbD0tMTtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysrbDxzOylhKHI9byh0W2xdKSkmJm4ucHVzaChyKTtlbHNlIGZvcig7KytsPHM7KWEocj1vKGUuY2FsbCh0LHRbbF0sbCkpKSYmbi5wdXNoKHIpO3JldHVybiBuLmxlbmd0aD9jYS5xdWFudGlsZShuLnNvcnQoaSksLjUpOnZvaWQgMH0sY2EudmFyaWFuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9dC5sZW5ndGgscz0wLGw9MCx1PS0xLGM9MDtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysrdTxpOylhKHI9byh0W3VdKSkmJihuPXItcyxzKz1uLysrYyxsKz1uKihyLXMpKTtlbHNlIGZvcig7Kyt1PGk7KWEocj1vKGUuY2FsbCh0LHRbdV0sdSkpKSYmKG49ci1zLHMrPW4vKytjLGwrPW4qKHItcykpO3JldHVybiBjPjE/bC8oYy0xKTp2b2lkIDB9LGNhLmRldmlhdGlvbj1mdW5jdGlvbigpe3ZhciB0PWNhLnZhcmlhbmNlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdD9NYXRoLnNxcnQodCk6dH07dmFyIF9hPXMoaSk7Y2EuYmlzZWN0TGVmdD1fYS5sZWZ0LGNhLmJpc2VjdD1jYS5iaXNlY3RSaWdodD1fYS5yaWdodCxjYS5iaXNlY3Rvcj1mdW5jdGlvbih0KXtyZXR1cm4gcygxPT09dC5sZW5ndGg/ZnVuY3Rpb24oZSxyKXtyZXR1cm4gaSh0KGUpLHIpfTp0KX0sY2Euc2h1ZmZsZT1mdW5jdGlvbih0LGUscil7KG89YXJndW1lbnRzLmxlbmd0aCk8MyYmKHI9dC5sZW5ndGgsMj5vJiYoZT0wKSk7Zm9yKHZhciBuLGksbz1yLWU7bzspaT1NYXRoLnJhbmRvbSgpKm8tLXwwLG49dFtvK2VdLHRbbytlXT10W2krZV0sdFtpK2VdPW47cmV0dXJuIHR9LGNhLnBlcm11dGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS5sZW5ndGgsbj1uZXcgQXJyYXkocik7ci0tOyluW3JdPXRbZVtyXV07cmV0dXJuIG59LGNhLnBhaXJzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTAsbj10Lmxlbmd0aC0xLGk9dFswXSxvPW5ldyBBcnJheSgwPm4/MDpuKTtuPnI7KW9bcl09W2U9aSxpPXRbKytyXV07cmV0dXJuIG99LGNhLnRyYW5zcG9zZT1mdW5jdGlvbih0KXtpZighKGk9dC5sZW5ndGgpKXJldHVybltdO2Zvcih2YXIgZT0tMSxyPWNhLm1pbih0LGwpLG49bmV3IEFycmF5KHIpOysrZTxyOylmb3IodmFyIGksbz0tMSxhPW5bZV09bmV3IEFycmF5KGkpOysrbzxpOylhW29dPXRbb11bZV07cmV0dXJuIG59LGNhLnppcD1mdW5jdGlvbigpe3JldHVybiBjYS50cmFuc3Bvc2UoYXJndW1lbnRzKX0sY2Eua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2gocik7cmV0dXJuIGV9LGNhLnZhbHVlcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2godFtyXSk7cmV0dXJuIGV9LGNhLmVudHJpZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHtrZXk6cix2YWx1ZTp0W3JdfSk7cmV0dXJuIGV9LGNhLm1lcmdlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG4saT10Lmxlbmd0aCxvPS0xLGE9MDsrK288aTspYSs9dFtvXS5sZW5ndGg7Zm9yKHI9bmV3IEFycmF5KGEpOy0taT49MDspZm9yKG49dFtpXSxlPW4ubGVuZ3RoOy0tZT49MDspclstLWFdPW5bZV07cmV0dXJuIHJ9O3ZhciB3YT1NYXRoLmFicztjYS5yYW5nZT1mdW5jdGlvbih0LGUscil7aWYoYXJndW1lbnRzLmxlbmd0aDwzJiYocj0xLGFyZ3VtZW50cy5sZW5ndGg8MiYmKGU9dCx0PTApKSwoZS10KS9yPT09MS8wKXRocm93IG5ldyBFcnJvcigiaW5maW5pdGUgcmFuZ2UiKTt2YXIgbixpPVtdLG89dSh3YShyKSksYT0tMTtpZih0Kj1vLGUqPW8scio9bywwPnIpZm9yKDsobj10K3IqKythKT5lOylpLnB1c2gobi9vKTtlbHNlIGZvcig7KG49dCtyKisrYSk8ZTspaS5wdXNoKG4vbyk7cmV0dXJuIGl9LGNhLm1hcD1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBoO2lmKHQgaW5zdGFuY2VvZiBoKXQuZm9yRWFjaChmdW5jdGlvbih0LGUpe3Iuc2V0KHQsZSl9KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBuLGk9LTEsbz10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysraTxvOylyLnNldChpLHRbaV0pO2Vsc2UgZm9yKDsrK2k8bzspci5zZXQoZS5jYWxsKHQsbj10W2ldLGkpLG4pfWVsc2UgZm9yKHZhciBhIGluIHQpci5zZXQoYSx0W2FdKTtyZXR1cm4gcn07dmFyIE1hPSJfX3Byb3RvX18iLGthPSJceDAwIjtjKGgse2hhczpkLGdldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fW2YodCldfSxzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fW2YodCldPWV9LHJlbW92ZTptLGtleXM6Zyx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcy5fKXQucHVzaCh0aGlzLl9bZV0pO3JldHVybiB0fSxlbnRyaWVzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuXyl0LnB1c2goe2tleTpwKGUpLHZhbHVlOnRoaXMuX1tlXX0pO3JldHVybiB0fSxzaXplOnYsZW1wdHk6eSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLl8pdC5jYWxsKHRoaXMscChlKSx0aGlzLl9bZV0pfX0pLGNhLm5lc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsYSxzKXtpZihzPj1vLmxlbmd0aClyZXR1cm4gbj9uLmNhbGwoaSxhKTpyP2Euc29ydChyKTphO2Zvcih2YXIgbCx1LGMsZixwPS0xLGQ9YS5sZW5ndGgsbT1vW3MrK10sZz1uZXcgaDsrK3A8ZDspKGY9Zy5nZXQobD1tKHU9YVtwXSkpKT9mLnB1c2godSk6Zy5zZXQobCxbdV0pO3JldHVybiBlPyh1PWUoKSxjPWZ1bmN0aW9uKHIsbil7dS5zZXQocix0KGUsbixzKSl9KToodT17fSxjPWZ1bmN0aW9uKHIsbil7dVtyXT10KGUsbixzKX0pLGcuZm9yRWFjaChjKSx1fWZ1bmN0aW9uIGUodCxyKXtpZihyPj1vLmxlbmd0aClyZXR1cm4gdDt2YXIgbj1bXSxpPWFbcisrXTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQsaSl7bi5wdXNoKHtrZXk6dCx2YWx1ZXM6ZShpLHIpfSl9KSxpP24uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBpKHQua2V5LGUua2V5KX0pOm59dmFyIHIsbixpPXt9LG89W10sYT1bXTtyZXR1cm4gaS5tYXA9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdChyLGUsMCl9LGkuZW50cmllcz1mdW5jdGlvbihyKXtyZXR1cm4gZSh0KGNhLm1hcCxyLDApLDApfSxpLmtleT1mdW5jdGlvbih0KXtyZXR1cm4gby5wdXNoKHQpLGl9LGkuc29ydEtleXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFbby5sZW5ndGgtMV09dCxpfSxpLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHI9dCxpfSxpLnJvbGx1cD1mdW5jdGlvbih0KXtyZXR1cm4gbj10LGl9LGl9LGNhLnNldD1mdW5jdGlvbih0KXt2YXIgZT1uZXcgYjtpZih0KWZvcih2YXIgcj0wLG49dC5sZW5ndGg7bj5yOysrcillLmFkZCh0W3JdKTtyZXR1cm4gZX0sYyhiLHtoYXM6ZCxhZGQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX1tmKHQrPSIiKV09ITAsdH0scmVtb3ZlOm0sdmFsdWVzOmcsc2l6ZTp2LGVtcHR5OnksZm9yRWFjaDpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fKXQuY2FsbCh0aGlzLHAoZSkpfX0pLGNhLmJlaGF2aW9yPXt9LGNhLnJlYmluZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPTEsaT1hcmd1bWVudHMubGVuZ3RoOysrbjxpOyl0W3I9YXJndW1lbnRzW25dXT1fKHQsZSxlW3JdKTtyZXR1cm4gdH07dmFyIEFhPVsid2Via2l0IiwibXMiLCJtb3oiLCJNb3oiLCJvIiwiTyJdO2NhLmRpc3BhdGNoPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyBrLGU9LTEscj1hcmd1bWVudHMubGVuZ3RoOysrZTxyOyl0W2FyZ3VtZW50c1tlXV09QSh0KTtyZXR1cm4gdH0say5wcm90b3R5cGUub249ZnVuY3Rpb24odCxlKXt2YXIgcj10LmluZGV4T2YoIi4iKSxuPSIiO2lmKHI+PTAmJihuPXQuc2xpY2UocisxKSx0PXQuc2xpY2UoMCxyKSksdClyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP3RoaXNbdF0ub24obik6dGhpc1t0XS5vbihuLGUpO2lmKDI9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihudWxsPT1lKWZvcih0IGluIHRoaXMpdGhpcy5oYXNPd25Qcm9wZXJ0eSh0KSYmdGhpc1t0XS5vbihuLG51bGwpO3JldHVybiB0aGlzfX0sY2EuZXZlbnQ9bnVsbCxjYS5yZXF1b3RlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoVGEsIlxcJCYiKX07dmFyIFRhPS9bXFxcXlwkXCpcK1w/XHxcW1xdXChcKVwuXHtcfV0vZyxFYT17fS5fX3Byb3RvX18/ZnVuY3Rpb24odCxlKXt0Ll9fcHJvdG9fXz1lfTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiBlKXRbcl09ZVtyXX0sU2E9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yKHQpfSxMYT1mdW5jdGlvbih0LGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3JBbGwodCl9LHphPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5tYXRjaGVzfHx0W3codCwibWF0Y2hlc1NlbGVjdG9yIildO3JldHVybih6YT1mdW5jdGlvbih0LGUpe3JldHVybiByLmNhbGwodCxlKX0pKHQsZSl9OyJmdW5jdGlvbiI9PXR5cGVvZiBTaXp6bGUmJihTYT1mdW5jdGlvbih0LGUpe3JldHVybiBTaXp6bGUodCxlKVswXXx8bnVsbH0sTGE9U2l6emxlLHphPVNpenpsZS5tYXRjaGVzU2VsZWN0b3IpLGNhLnNlbGVjdGlvbj1mdW5jdGlvbigpe3JldHVybiBjYS5zZWxlY3QocGEuZG9jdW1lbnRFbGVtZW50KX07dmFyIElhPWNhLnNlbGVjdGlvbi5wcm90b3R5cGU9W107SWEuc2VsZWN0PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLG89W107dD16KHQpO2Zvcih2YXIgYT0tMSxzPXRoaXMubGVuZ3RoOysrYTxzOyl7by5wdXNoKGU9W10pLGUucGFyZW50Tm9kZT0obj10aGlzW2FdKS5wYXJlbnROb2RlO2Zvcih2YXIgbD0tMSx1PW4ubGVuZ3RoOysrbDx1OykoaT1uW2xdKT8oZS5wdXNoKHI9dC5jYWxsKGksaS5fX2RhdGFfXyxsLGEpKSxyJiYiX19kYXRhX18iaW4gaSYmKHIuX19kYXRhX189aS5fX2RhdGFfXykpOmUucHVzaChudWxsKX1yZXR1cm4gTChvKX0sSWEuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1bXTt0PUkodCk7Zm9yKHZhciBpPS0xLG89dGhpcy5sZW5ndGg7KytpPG87KWZvcih2YXIgYT10aGlzW2ldLHM9LTEsbD1hLmxlbmd0aDsrK3M8bDspKHI9YVtzXSkmJihuLnB1c2goZT1mYSh0LmNhbGwocixyLl9fZGF0YV9fLHMsaSkpKSxlLnBhcmVudE5vZGU9cik7cmV0dXJuIEwobil9O3ZhciBQYT0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsQ2E9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOlBhLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07Y2EubnM9e3ByZWZpeDpDYSxxdWFsaWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiOiIpLHI9dDtyZXR1cm4gZT49MCYmInhtbG5zIiE9PShyPXQuc2xpY2UoMCxlKSkmJih0PXQuc2xpY2UoZSsxKSksQ2EuaGFzT3duUHJvcGVydHkocik/e3NwYWNlOkNhW3JdLGxvY2FsOnR9OnR9fSxJYS5hdHRyPWZ1bmN0aW9uKHQsZSl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciByPXRoaXMubm9kZSgpO3JldHVybiB0PWNhLm5zLnF1YWxpZnkodCksdC5sb2NhbD9yLmdldEF0dHJpYnV0ZU5TKHQuc3BhY2UsdC5sb2NhbCk6ci5nZXRBdHRyaWJ1dGUodCl9Zm9yKGUgaW4gdCl0aGlzLmVhY2goUChlLHRbZV0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKFAodCxlKSl9LElhLmNsYXNzZWQ9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHI9dGhpcy5ub2RlKCksbj0odD1qKHQpKS5sZW5ndGgsaT0tMTtpZihlPXIuY2xhc3NMaXN0KXtmb3IoOysraTxuOylpZighZS5jb250YWlucyh0W2ldKSlyZXR1cm4hMX1lbHNlIGZvcihlPXIuZ2V0QXR0cmlidXRlKCJjbGFzcyIpOysraTxuOylpZighUih0W2ldKS50ZXN0KGUpKXJldHVybiExO3JldHVybiEwfWZvcihlIGluIHQpdGhpcy5lYWNoKEQoZSx0W2VdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChEKHQsZSkpfSxJYS5zdHlsZT1mdW5jdGlvbih0LGUscil7dmFyIGk9YXJndW1lbnRzLmxlbmd0aDtpZigzPmkpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Mj5pJiYoZT0iIik7Zm9yKHIgaW4gdCl0aGlzLmVhY2goRihyLHRbcl0sZSkpO3JldHVybiB0aGlzfWlmKDI+aSl7dmFyIG89dGhpcy5ub2RlKCk7cmV0dXJuIG4obykuZ2V0Q29tcHV0ZWRTdHlsZShvLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9cj0iIn1yZXR1cm4gdGhpcy5lYWNoKEYodCxlLHIpKX0sSWEucHJvcGVydHk9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdGhpcy5ub2RlKClbdF07Zm9yKGUgaW4gdCl0aGlzLmVhY2goTihlLHRbZV0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKE4odCxlKSl9LElhLnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCJmdW5jdGlvbiI9PXR5cGVvZiB0P2Z1bmN0aW9uKCl7dmFyIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1lPyIiOmV9Om51bGw9PXQ/ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PSIifTpmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH0pOnRoaXMubm9kZSgpLnRleHRDb250ZW50fSxJYS5odG1sPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX06bnVsbD09dD9mdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPSIifTpmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9KTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LElhLmFwcGVuZD1mdW5jdGlvbih0KXtyZXR1cm4gdD1CKHQpLHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5kQ2hpbGQodC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSl9LElhLmluc2VydD1mdW5jdGlvbih0LGUpe3JldHVybiB0PUIodCksZT16KGUpLHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pfSxJYS5yZW1vdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKFUpfSxJYS5kYXRhPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LHIpe3ZhciBuLGksbyxhPXQubGVuZ3RoLGM9ci5sZW5ndGgsZj1NYXRoLm1pbihhLGMpLHA9bmV3IEFycmF5KGMpLGQ9bmV3IEFycmF5KGMpLG09bmV3IEFycmF5KGEpO2lmKGUpe3ZhciBnLHY9bmV3IGgseT1uZXcgQXJyYXkoYSk7Zm9yKG49LTE7KytuPGE7KShpPXRbbl0pJiYodi5oYXMoZz1lLmNhbGwoaSxpLl9fZGF0YV9fLG4pKT9tW25dPWk6di5zZXQoZyxpKSx5W25dPWcpO2ZvcihuPS0xOysrbjxjOykoaT12LmdldChnPWUuY2FsbChyLG89cltuXSxuKSkpP2khPT0hMCYmKHBbbl09aSxpLl9fZGF0YV9fPW8pOmRbbl09VihvKSx2LnNldChnLCEwKTtmb3Iobj0tMTsrK248YTspbiBpbiB5JiZ2LmdldCh5W25dKSE9PSEwJiYobVtuXT10W25dKX1lbHNle2ZvcihuPS0xOysrbjxmOylpPXRbbl0sbz1yW25dLGk/KGkuX19kYXRhX189byxwW25dPWkpOmRbbl09VihvKTtmb3IoO2M+bjsrK24pZFtuXT1WKHJbbl0pO2Zvcig7YT5uOysrbiltW25dPXRbbl19ZC51cGRhdGU9cCxkLnBhcmVudE5vZGU9cC5wYXJlbnROb2RlPW0ucGFyZW50Tm9kZT10LnBhcmVudE5vZGUscy5wdXNoKGQpLGwucHVzaChwKSx1LnB1c2gobSl9dmFyIG4saSxvPS0xLGE9dGhpcy5sZW5ndGg7aWYoIWFyZ3VtZW50cy5sZW5ndGgpe2Zvcih0PW5ldyBBcnJheShhPShuPXRoaXNbMF0pLmxlbmd0aCk7KytvPGE7KShpPW5bb10pJiYodFtvXT1pLl9fZGF0YV9fKTtyZXR1cm4gdH12YXIgcz1YKFtdKSxsPUwoW10pLHU9TChbXSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpZm9yKDsrK288YTspcihuPXRoaXNbb10sdC5jYWxsKG4sbi5wYXJlbnROb2RlLl9fZGF0YV9fLG8pKTtlbHNlIGZvcig7KytvPGE7KXIobj10aGlzW29dLHQpO3JldHVybiBsLmVudGVyPWZ1bmN0aW9uKCl7cmV0dXJuIHN9LGwuZXhpdD1mdW5jdGlvbigpe3JldHVybiB1fSxsfSxJYS5kYXR1bT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iKX0sSWEuZmlsdGVyPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPVtdOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1xKHQpKTtmb3IodmFyIG89MCxhPXRoaXMubGVuZ3RoO2E+bztvKyspe2kucHVzaChlPVtdKSxlLnBhcmVudE5vZGU9KHI9dGhpc1tvXSkucGFyZW50Tm9kZTtmb3IodmFyIHM9MCxsPXIubGVuZ3RoO2w+cztzKyspKG49cltzXSkmJnQuY2FsbChuLG4uX19kYXRhX18scyxvKSYmZS5wdXNoKG4pfXJldHVybiBMKGkpfSxJYS5vcmRlcj1mdW5jdGlvbigpe2Zvcih2YXIgdD0tMSxlPXRoaXMubGVuZ3RoOysrdDxlOylmb3IodmFyIHIsbj10aGlzW3RdLGk9bi5sZW5ndGgtMSxvPW5baV07LS1pPj0wOykocj1uW2ldKSYmKG8mJm8hPT1yLm5leHRTaWJsaW5nJiZvLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHIsbyksbz1yKTsKcmV0dXJuIHRoaXN9LElhLnNvcnQ9ZnVuY3Rpb24odCl7dD1HLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmb3IodmFyIGU9LTEscj10aGlzLmxlbmd0aDsrK2U8cjspdGhpc1tlXS5zb3J0KHQpO3JldHVybiB0aGlzLm9yZGVyKCl9LElhLmVhY2g9ZnVuY3Rpb24odCl7cmV0dXJuIEgodGhpcyxmdW5jdGlvbihlLHIsbil7dC5jYWxsKGUsZS5fX2RhdGFfXyxyLG4pfSl9LElhLmNhbGw9ZnVuY3Rpb24odCl7dmFyIGU9ZmEoYXJndW1lbnRzKTtyZXR1cm4gdC5hcHBseShlWzBdPXRoaXMsZSksdGhpc30sSWEuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub2RlKCl9LElhLm5vZGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPXRoaXMubGVuZ3RoO2U+dDt0KyspZm9yKHZhciByPXRoaXNbdF0sbj0wLGk9ci5sZW5ndGg7aT5uO24rKyl7dmFyIG89cltuXTtpZihvKXJldHVybiBvfXJldHVybiBudWxsfSxJYS5zaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gSCh0aGlzLGZ1bmN0aW9uKCl7Kyt0fSksdH07dmFyIFJhPVtdO2NhLnNlbGVjdGlvbi5lbnRlcj1YLGNhLnNlbGVjdGlvbi5lbnRlci5wcm90b3R5cGU9UmEsUmEuYXBwZW5kPUlhLmFwcGVuZCxSYS5lbXB0eT1JYS5lbXB0eSxSYS5ub2RlPUlhLm5vZGUsUmEuY2FsbD1JYS5jYWxsLFJhLnNpemU9SWEuc2l6ZSxSYS5zZWxlY3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpLG8sYT1bXSxzPS0xLGw9dGhpcy5sZW5ndGg7KytzPGw7KXtuPShpPXRoaXNbc10pLnVwZGF0ZSxhLnB1c2goZT1bXSksZS5wYXJlbnROb2RlPWkucGFyZW50Tm9kZTtmb3IodmFyIHU9LTEsYz1pLmxlbmd0aDsrK3U8YzspKG89aVt1XSk/KGUucHVzaChuW3VdPXI9dC5jYWxsKGkucGFyZW50Tm9kZSxvLl9fZGF0YV9fLHUscykpLHIuX19kYXRhX189by5fX2RhdGFfXyk6ZS5wdXNoKG51bGwpfXJldHVybiBMKGEpfSxSYS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYoZT1ZKHRoaXMpKSxJYS5pbnNlcnQuY2FsbCh0aGlzLHQsZSl9LGNhLnNlbGVjdD1mdW5jdGlvbih0KXt2YXIgcjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/KHI9W1NhKHQscGEpXSxyLnBhcmVudE5vZGU9cGEuZG9jdW1lbnRFbGVtZW50KToocj1bdF0sci5wYXJlbnROb2RlPWUodCkpLEwoW3JdKX0sY2Euc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1mYShMYSh0LHBhKSksZS5wYXJlbnROb2RlPXBhLmRvY3VtZW50RWxlbWVudCk6KGU9ZmEodCksZS5wYXJlbnROb2RlPW51bGwpLEwoW2VdKX0sSWEub249ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7aWYoMz5uKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpezI+biYmKGU9ITEpO2ZvcihyIGluIHQpdGhpcy5lYWNoKFcocix0W3JdLGUpKTtyZXR1cm4gdGhpc31pZigyPm4pcmV0dXJuKG49dGhpcy5ub2RlKClbIl9fb24iK3RdKSYmbi5fO3I9ITF9cmV0dXJuIHRoaXMuZWFjaChXKHQsZSxyKSl9O3ZhciBqYT1jYS5tYXAoe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSk7cGEmJmphLmZvckVhY2goZnVuY3Rpb24odCl7Im9uIit0IGluIHBhJiZqYS5yZW1vdmUodCl9KTt2YXIgRGEsT2E9MDtjYS5tb3VzZT1mdW5jdGlvbih0KXtyZXR1cm4gSih0LEUoKSl9O3ZhciBGYT10aGlzLm5hdmlnYXRvciYmL1dlYktpdC8udGVzdCh0aGlzLm5hdmlnYXRvci51c2VyQWdlbnQpPy0xOjA7Y2EudG91Y2g9ZnVuY3Rpb24odCxlLHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9ZSxlPUUoKS5jaGFuZ2VkVG91Y2hlcyksZSlmb3IodmFyIG4saT0wLG89ZS5sZW5ndGg7bz5pOysraSlpZigobj1lW2ldKS5pZGVudGlmaWVyPT09cilyZXR1cm4gSih0LG4pfSxjYS5iZWhhdmlvci5kcmFnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3RoaXMub24oIm1vdXNlZG93bi5kcmFnIixvKS5vbigidG91Y2hzdGFydC5kcmFnIixhKX1mdW5jdGlvbiBlKHQsZSxuLG8sYSl7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcygpe3ZhciB0LHIsbj1lKGYsbSk7biYmKHQ9blswXS1iWzBdLHI9blsxXS1iWzFdLGR8PXR8cixiPW4scCh7dHlwZToiZHJhZyIseDpuWzBdK3VbMF0seTpuWzFdK3VbMV0sZHg6dCxkeTpyfSkpfWZ1bmN0aW9uIGwoKXtlKGYsbSkmJih2Lm9uKG8rZyxudWxsKS5vbihhK2csbnVsbCkseShkKSxwKHt0eXBlOiJkcmFnZW5kIn0pKX12YXIgdSxjPXRoaXMsaD1jYS5ldmVudC50YXJnZXQuY29ycmVzcG9uZGluZ0VsZW1lbnR8fGNhLmV2ZW50LnRhcmdldCxmPWMucGFyZW50Tm9kZSxwPXIub2YoYyxhcmd1bWVudHMpLGQ9MCxtPXQoKSxnPSIuZHJhZyIrKG51bGw9PW0/IiI6Ii0iK20pLHY9Y2Euc2VsZWN0KG4oaCkpLm9uKG8rZyxzKS5vbihhK2csbCkseT1LKGgpLGI9ZShmLG0pO2k/KHU9aS5hcHBseShjLGFyZ3VtZW50cyksdT1bdS54LWJbMF0sdS55LWJbMV1dKTp1PVswLDBdLHAoe3R5cGU6ImRyYWdzdGFydCJ9KX19dmFyIHI9Uyh0LCJkcmFnIiwiZHJhZ3N0YXJ0IiwiZHJhZ2VuZCIpLGk9bnVsbCxvPWUoTSxjYS5tb3VzZSxuLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiksYT1lKCQsY2EudG91Y2gseCwidG91Y2htb3ZlIiwidG91Y2hlbmQiKTtyZXR1cm4gdC5vcmlnaW49ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ZSx0KTppfSxjYS5yZWJpbmQodCxyLCJvbiIpfSxjYS50b3VjaGVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKGU9RSgpLnRvdWNoZXMpLGU/ZmEoZSkubWFwKGZ1bmN0aW9uKGUpe3ZhciByPUoodCxlKTtyZXR1cm4gci5pZGVudGlmaWVyPWUuaWRlbnRpZmllcixyfSk6W119O3ZhciBOYT0xZS02LEJhPU5hKk5hLFVhPU1hdGguUEksVmE9MipVYSxxYT1WYS1OYSxHYT1VYS8yLEhhPVVhLzE4MCxYYT0xODAvVWEsWWE9TWF0aC5TUVJUMixXYT0yLFphPTQ7Y2EuaW50ZXJwb2xhdGVab29tPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXRbMF0sbz10WzFdLGE9dFsyXSxzPWVbMF0sbD1lWzFdLHU9ZVsyXSxjPXMtaSxoPWwtbyxmPWMqYytoKmg7aWYoQmE+ZiluPU1hdGgubG9nKHUvYSkvWWEscj1mdW5jdGlvbih0KXtyZXR1cm5baSt0KmMsbyt0KmgsYSpNYXRoLmV4cChZYSp0Km4pXX07ZWxzZXt2YXIgcD1NYXRoLnNxcnQoZiksZD0odSp1LWEqYStaYSpmKS8oMiphKldhKnApLG09KHUqdS1hKmEtWmEqZikvKDIqdSpXYSpwKSxnPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksdj1NYXRoLmxvZyhNYXRoLnNxcnQobSptKzEpLW0pO249KHYtZykvWWEscj1mdW5jdGlvbih0KXt2YXIgZT10Km4scj1vdChnKSxzPWEvKFdhKnApKihyKmF0KFlhKmUrZyktaXQoZykpO3JldHVybltpK3MqYyxvK3MqaCxhKnIvb3QoWWEqZStnKV19fXJldHVybiByLmR1cmF0aW9uPTFlMypuLHJ9LGNhLmJlaGF2aW9yLnpvb209ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3Qub24oSSxoKS5vbihLYSsiLnpvb20iLHApLm9uKCJkYmxjbGljay56b29tIixkKS5vbihSLGYpfWZ1bmN0aW9uIGUodCl7cmV0dXJuWyh0WzBdLWsueCkvay5rLCh0WzFdLWsueSkvay5rXX1mdW5jdGlvbiByKHQpe3JldHVyblt0WzBdKmsuaytrLngsdFsxXSprLmsray55XX1mdW5jdGlvbiBpKHQpe2suaz1NYXRoLm1heChFWzBdLE1hdGgubWluKEVbMV0sdCkpfWZ1bmN0aW9uIG8odCxlKXtlPXIoZSksay54Kz10WzBdLWVbMF0say55Kz10WzFdLWVbMV19ZnVuY3Rpb24gYShlLHIsbixhKXtlLl9fY2hhcnRfXz17eDprLngseTprLnksazprLmt9LGkoTWF0aC5wb3coMixhKSksbyhnPXIsbiksZT1jYS5zZWxlY3QoZSksTD4wJiYoZT1lLnRyYW5zaXRpb24oKS5kdXJhdGlvbihMKSksZS5jYWxsKHQuZXZlbnQpfWZ1bmN0aW9uIHMoKXtfJiZfLmRvbWFpbih4LnJhbmdlKCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybih0LWsueCkvay5rfSkubWFwKHguaW52ZXJ0KSksTSYmTS5kb21haW4ody5yYW5nZSgpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4odC1rLnkpL2sua30pLm1hcCh3LmludmVydCkpfWZ1bmN0aW9uIGwodCl7eisrfHx0KHt0eXBlOiJ6b29tc3RhcnQifSl9ZnVuY3Rpb24gdSh0KXtzKCksdCh7dHlwZToiem9vbSIsc2NhbGU6ay5rLHRyYW5zbGF0ZTpbay54LGsueV19KX1mdW5jdGlvbiBjKHQpey0tenx8KHQoe3R5cGU6Inpvb21lbmQifSksZz1udWxsKX1mdW5jdGlvbiBoKCl7ZnVuY3Rpb24gdCgpe3M9MSxvKGNhLm1vdXNlKGkpLGYpLHUoYSl9ZnVuY3Rpb24gcigpe2gub24oUCxudWxsKS5vbihDLG51bGwpLHAocyksYyhhKX12YXIgaT10aGlzLGE9ai5vZihpLGFyZ3VtZW50cykscz0wLGg9Y2Euc2VsZWN0KG4oaSkpLm9uKFAsdCkub24oQyxyKSxmPWUoY2EubW91c2UoaSkpLHA9SyhpKTtHbC5jYWxsKGkpLGwoYSl9ZnVuY3Rpb24gZigpe2Z1bmN0aW9uIHQoKXt2YXIgdD1jYS50b3VjaGVzKGQpO3JldHVybiBwPWsuayx0LmZvckVhY2goZnVuY3Rpb24odCl7dC5pZGVudGlmaWVyIGluIGcmJihnW3QuaWRlbnRpZmllcl09ZSh0KSl9KSx0fWZ1bmN0aW9uIHIoKXt2YXIgZT1jYS5ldmVudC50YXJnZXQ7Y2Euc2VsZWN0KGUpLm9uKHgsbikub24oXyxzKSx3LnB1c2goZSk7Zm9yKHZhciByPWNhLmV2ZW50LmNoYW5nZWRUb3VjaGVzLGk9MCxvPXIubGVuZ3RoO28+aTsrK2kpZ1tyW2ldLmlkZW50aWZpZXJdPW51bGw7dmFyIGw9dCgpLHU9RGF0ZS5ub3coKTtpZigxPT09bC5sZW5ndGgpe2lmKDUwMD51LWIpe3ZhciBjPWxbMF07YShkLGMsZ1tjLmlkZW50aWZpZXJdLE1hdGguZmxvb3IoTWF0aC5sb2coay5rKS9NYXRoLkxOMikrMSksVCgpfWI9dX1lbHNlIGlmKGwubGVuZ3RoPjEpe3ZhciBjPWxbMF0saD1sWzFdLGY9Y1swXS1oWzBdLHA9Y1sxXS1oWzFdO3Y9ZipmK3AqcH19ZnVuY3Rpb24gbigpe3ZhciB0LGUscixuLGE9Y2EudG91Y2hlcyhkKTtHbC5jYWxsKGQpO2Zvcih2YXIgcz0wLGw9YS5sZW5ndGg7bD5zOysrcyxuPW51bGwpaWYocj1hW3NdLG49Z1tyLmlkZW50aWZpZXJdKXtpZihlKWJyZWFrO3Q9cixlPW59aWYobil7dmFyIGM9KGM9clswXS10WzBdKSpjKyhjPXJbMV0tdFsxXSkqYyxoPXYmJk1hdGguc3FydChjL3YpO3Q9Wyh0WzBdK3JbMF0pLzIsKHRbMV0rclsxXSkvMl0sZT1bKGVbMF0rblswXSkvMiwoZVsxXStuWzFdKS8yXSxpKGgqcCl9Yj1udWxsLG8odCxlKSx1KG0pfWZ1bmN0aW9uIHMoKXtpZihjYS5ldmVudC50b3VjaGVzLmxlbmd0aCl7Zm9yKHZhciBlPWNhLmV2ZW50LmNoYW5nZWRUb3VjaGVzLHI9MCxuPWUubGVuZ3RoO24+cjsrK3IpZGVsZXRlIGdbZVtyXS5pZGVudGlmaWVyXTtmb3IodmFyIGkgaW4gZylyZXR1cm4gdm9pZCB0KCl9Y2Euc2VsZWN0QWxsKHcpLm9uKHksbnVsbCksTS5vbihJLGgpLm9uKFIsZiksQSgpLGMobSl9dmFyIHAsZD10aGlzLG09ai5vZihkLGFyZ3VtZW50cyksZz17fSx2PTAseT0iLnpvb20tIitjYS5ldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyLHg9InRvdWNobW92ZSIreSxfPSJ0b3VjaGVuZCIreSx3PVtdLE09Y2Euc2VsZWN0KGQpLEE9SyhkKTtyKCksbChtKSxNLm9uKEksbnVsbCkub24oUixyKX1mdW5jdGlvbiBwKCl7dmFyIHQ9ai5vZih0aGlzLGFyZ3VtZW50cyk7eT9jbGVhclRpbWVvdXQoeSk6KEdsLmNhbGwodGhpcyksbT1lKGc9dnx8Y2EubW91c2UodGhpcykpLGwodCkpLHk9c2V0VGltZW91dChmdW5jdGlvbigpe3k9bnVsbCxjKHQpfSw1MCksVCgpLGkoTWF0aC5wb3coMiwuMDAyKlFhKCkpKmsuayksbyhnLG0pLHUodCl9ZnVuY3Rpb24gZCgpe3ZhciB0PWNhLm1vdXNlKHRoaXMpLHI9TWF0aC5sb2coay5rKS9NYXRoLkxOMjthKHRoaXMsdCxlKHQpLGNhLmV2ZW50LnNoaWZ0S2V5P01hdGguY2VpbChyKS0xOk1hdGguZmxvb3IocikrMSl9dmFyIG0sZyx2LHksYix4LF8sdyxNLGs9e3g6MCx5OjAsazoxfSxBPVs5NjAsNTAwXSxFPUphLEw9MjUwLHo9MCxJPSJtb3VzZWRvd24uem9vbSIsUD0ibW91c2Vtb3ZlLnpvb20iLEM9Im1vdXNldXAuem9vbSIsUj0idG91Y2hzdGFydC56b29tIixqPVModCwiem9vbXN0YXJ0Iiwiem9vbSIsInpvb21lbmQiKTtyZXR1cm4gS2F8fChLYT0ib253aGVlbCJpbiBwYT8oUWE9ZnVuY3Rpb24oKXtyZXR1cm4tY2EuZXZlbnQuZGVsdGFZKihjYS5ldmVudC5kZWx0YU1vZGU/MTIwOjEpfSwid2hlZWwiKToib25tb3VzZXdoZWVsImluIHBhPyhRYT1mdW5jdGlvbigpe3JldHVybiBjYS5ldmVudC53aGVlbERlbHRhfSwibW91c2V3aGVlbCIpOihRYT1mdW5jdGlvbigpe3JldHVybi1jYS5ldmVudC5kZXRhaWx9LCJNb3pNb3VzZVBpeGVsU2Nyb2xsIikpLHQuZXZlbnQ9ZnVuY3Rpb24odCl7dC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ai5vZih0aGlzLGFyZ3VtZW50cyksZT1rO1ZsP2NhLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZWFjaCgic3RhcnQuem9vbSIsZnVuY3Rpb24oKXtrPXRoaXMuX19jaGFydF9ffHx7eDowLHk6MCxrOjF9LGwodCl9KS50d2Vlbigiem9vbTp6b29tIixmdW5jdGlvbigpe3ZhciByPUFbMF0sbj1BWzFdLGk9Zz9nWzBdOnIvMixvPWc/Z1sxXTpuLzIsYT1jYS5pbnRlcnBvbGF0ZVpvb20oWyhpLWsueCkvay5rLChvLWsueSkvay5rLHIvay5rXSxbKGktZS54KS9lLmssKG8tZS55KS9lLmssci9lLmtdKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIG49YShlKSxzPXIvblsyXTt0aGlzLl9fY2hhcnRfXz1rPXt4OmktblswXSpzLHk6by1uWzFdKnMsazpzfSx1KHQpfX0pLmVhY2goImludGVycnVwdC56b29tIixmdW5jdGlvbigpe2ModCl9KS5lYWNoKCJlbmQuem9vbSIsZnVuY3Rpb24oKXtjKHQpfSk6KHRoaXMuX19jaGFydF9fPWssbCh0KSx1KHQpLGModCkpfSl9LHQudHJhbnNsYXRlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhrPXt4OitlWzBdLHk6K2VbMV0sazprLmt9LHMoKSx0KTpbay54LGsueV19LHQuc2NhbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9e3g6ay54LHk6ay55LGs6bnVsbH0saSgrZSkscygpLHQpOmsua30sdC5zY2FsZUV4dGVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT1udWxsPT1lP0phOlsrZVswXSwrZVsxXV0sdCk6RX0sdC5jZW50ZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9ZSYmWytlWzBdLCtlWzFdXSx0KTp2fSx0LnNpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9ZSYmWytlWzBdLCtlWzFdXSx0KTpBfSx0LmR1cmF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhMPStlLHQpOkx9LHQueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oXz1lLHg9ZS5jb3B5KCksaz17eDowLHk6MCxrOjF9LHQpOl99LHQueT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT1lLHc9ZS5jb3B5KCksaz17eDowLHk6MCxrOjF9LHQpOk19LGNhLnJlYmluZCh0LGosIm9uIil9O3ZhciBRYSxLYSxKYT1bMCwxLzBdO2NhLmNvbG9yPWx0LGx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpKyIifSxjYS5oc2w9dXQ7dmFyICRhPXV0LnByb3RvdHlwZT1uZXcgbHQ7JGEuYnJpZ2h0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpLG5ldyB1dCh0aGlzLmgsdGhpcy5zLHRoaXMubC90KX0sJGEuZGFya2VyPWZ1bmN0aW9uKHQpe3JldHVybiB0PU1hdGgucG93KC43LGFyZ3VtZW50cy5sZW5ndGg/dDoxKSxuZXcgdXQodGhpcy5oLHRoaXMucyx0KnRoaXMubCl9LCRhLnJnYj1mdW5jdGlvbigpe3JldHVybiBjdCh0aGlzLmgsdGhpcy5zLHRoaXMubCl9LGNhLmhjbD1odDt2YXIgdHM9aHQucHJvdG90eXBlPW5ldyBsdDt0cy5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGh0KHRoaXMuaCx0aGlzLmMsTWF0aC5taW4oMTAwLHRoaXMubCtlcyooYXJndW1lbnRzLmxlbmd0aD90OjEpKSl9LHRzLmRhcmtlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGh0KHRoaXMuaCx0aGlzLmMsTWF0aC5tYXgoMCx0aGlzLmwtZXMqKGFyZ3VtZW50cy5sZW5ndGg/dDoxKSkpfSx0cy5yZ2I9ZnVuY3Rpb24oKXtyZXR1cm4gZnQodGhpcy5oLHRoaXMuYyx0aGlzLmwpLnJnYigpfSxjYS5sYWI9cHQ7dmFyIGVzPTE4LHJzPS45NTA0Nyxucz0xLGlzPTEuMDg4ODMsb3M9cHQucHJvdG90eXBlPW5ldyBsdDtvcy5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHB0KE1hdGgubWluKDEwMCx0aGlzLmwrZXMqKGFyZ3VtZW50cy5sZW5ndGg/dDoxKSksdGhpcy5hLHRoaXMuYil9LG9zLmRhcmtlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHB0KE1hdGgubWF4KDAsdGhpcy5sLWVzKihhcmd1bWVudHMubGVuZ3RoP3Q6MSkpLHRoaXMuYSx0aGlzLmIpfSxvcy5yZ2I9ZnVuY3Rpb24oKXtyZXR1cm4gZHQodGhpcy5sLHRoaXMuYSx0aGlzLmIpfSxjYS5yZ2I9YnQ7dmFyIGFzPWJ0LnByb3RvdHlwZT1uZXcgbHQ7YXMuYnJpZ2h0ZXI9ZnVuY3Rpb24odCl7dD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSk7dmFyIGU9dGhpcy5yLHI9dGhpcy5nLG49dGhpcy5iLGk9MzA7cmV0dXJuIGV8fHJ8fG4/KGUmJmk+ZSYmKGU9aSksciYmaT5yJiYocj1pKSxuJiZpPm4mJihuPWkpLG5ldyBidChNYXRoLm1pbigyNTUsZS90KSxNYXRoLm1pbigyNTUsci90KSxNYXRoLm1pbigyNTUsbi90KSkpOm5ldyBidChpLGksaSl9LGFzLmRhcmtlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSksbmV3IGJ0KHQqdGhpcy5yLHQqdGhpcy5nLHQqdGhpcy5iKX0sYXMuaHNsPWZ1bmN0aW9uKCl7cmV0dXJuIGt0KHRoaXMucix0aGlzLmcsdGhpcy5iKX0sYXMudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIyIrd3QodGhpcy5yKSt3dCh0aGlzLmcpK3d0KHRoaXMuYil9O3ZhciBzcz1jYS5tYXAoe2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH0pO3NzLmZvckVhY2goZnVuY3Rpb24odCxlKXtzcy5zZXQodCx4dChlKSl9KSxjYS5mdW5jdG9yPVN0LGNhLnhocj1MdCh4KSxjYS5kc3Y9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHQscixvKXthcmd1bWVudHMubGVuZ3RoPDMmJihvPXIscj1udWxsKTt2YXIgYT16dCh0LGUsbnVsbD09cj9uOmkociksbyk7cmV0dXJuIGEucm93PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EucmVzcG9uc2UobnVsbD09KHI9dCk/bjppKHQpKTpyfSxhfWZ1bmN0aW9uIG4odCl7cmV0dXJuIHIucGFyc2UodC5yZXNwb25zZVRleHQpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiByLnBhcnNlKGUucmVzcG9uc2VUZXh0LHQpfX1mdW5jdGlvbiBvKGUpe3JldHVybiBlLm1hcChhKS5qb2luKHQpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHMudGVzdCh0KT8nIicrdC5yZXBsYWNlKC9cIi9nLCciIicpKyciJzp0fXZhciBzPW5ldyBSZWdFeHAoJ1siJyt0KyJcbl0iKSxsPXQuY2hhckNvZGVBdCgwKTtyZXR1cm4gci5wYXJzZT1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiByLnBhcnNlUm93cyh0LGZ1bmN0aW9uKHQscil7aWYobilyZXR1cm4gbih0LHItMSk7dmFyIGk9bmV3IEZ1bmN0aW9uKCJkIiwicmV0dXJuIHsiK3QubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpKyI6IGRbIitlKyJdIn0pLmpvaW4oIiwiKSsifSIpO249ZT9mdW5jdGlvbih0LHIpe3JldHVybiBlKGkodCkscil9Oml9KX0sci5wYXJzZVJvd3M9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKCl7aWYoYz49dSlyZXR1cm4gYTtpZihpKXJldHVybiBpPSExLG87dmFyIGU9YztpZigzND09PXQuY2hhckNvZGVBdChlKSl7Zm9yKHZhciByPWU7cisrPHU7KWlmKDM0PT09dC5jaGFyQ29kZUF0KHIpKXtpZigzNCE9PXQuY2hhckNvZGVBdChyKzEpKWJyZWFrOysrcn1jPXIrMjt2YXIgbj10LmNoYXJDb2RlQXQocisxKTtyZXR1cm4gMTM9PT1uPyhpPSEwLDEwPT09dC5jaGFyQ29kZUF0KHIrMikmJisrYyk6MTA9PT1uJiYoaT0hMCksdC5zbGljZShlKzEscikucmVwbGFjZSgvIiIvZywnIicpfWZvcig7dT5jOyl7dmFyIG49dC5jaGFyQ29kZUF0KGMrKykscz0xO2lmKDEwPT09bilpPSEwO2Vsc2UgaWYoMTM9PT1uKWk9ITAsMTA9PT10LmNoYXJDb2RlQXQoYykmJigrK2MsKytzKTtlbHNlIGlmKG4hPT1sKWNvbnRpbnVlO3JldHVybiB0LnNsaWNlKGUsYy1zKX1yZXR1cm4gdC5zbGljZShlKX1mb3IodmFyIG4saSxvPXt9LGE9e30scz1bXSx1PXQubGVuZ3RoLGM9MCxoPTA7KG49cigpKSE9PWE7KXtmb3IodmFyIGY9W107biE9PW8mJm4hPT1hOylmLnB1c2gobiksbj1yKCk7ZSYmbnVsbD09KGY9ZShmLGgrKykpfHxzLnB1c2goZil9cmV0dXJuIHN9LHIuZm9ybWF0PWZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZVswXSkpcmV0dXJuIHIuZm9ybWF0Um93cyhlKTt2YXIgbj1uZXcgYixpPVtdO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpbi5oYXMoZSl8fGkucHVzaChuLmFkZChlKSl9KSxbaS5tYXAoYSkuam9pbih0KV0uY29uY2F0KGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYShlW3RdKX0pLmpvaW4odCl9KSkuam9pbigiXG4iKX0sci5mb3JtYXRSb3dzPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChvKS5qb2luKCJcbiIpfSxyfSxjYS5jc3Y9Y2EuZHN2KCIsIiwidGV4dC9jc3YiKSxjYS50c3Y9Y2EuZHN2KCIJIiwidGV4dC90YWItc2VwYXJhdGVkLXZhbHVlcyIpO3ZhciBscyx1cyxjcyxocyxmcz10aGlzW3codGhpcywicmVxdWVzdEFuaW1hdGlvbkZyYW1lIildfHxmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQsMTcpfTtjYS50aW1lcj1mdW5jdGlvbigpe0N0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sY2EudGltZXIuZmx1c2g9ZnVuY3Rpb24oKXtqdCgpLER0KCl9LGNhLnJvdW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/TWF0aC5yb3VuZCh0KihlPU1hdGgucG93KDEwLGUpKSkvZTpNYXRoLnJvdW5kKHQpfTt2YXIgcHM9WyJ5IiwieiIsImEiLCJmIiwicCIsIm4iLCJceGI1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl0ubWFwKEZ0KTtjYS5mb3JtYXRQcmVmaXg9ZnVuY3Rpb24odCxlKXt2YXIgcj0wO3JldHVybih0PSt0KSYmKDA+dCYmKHQqPS0xKSxlJiYodD1jYS5yb3VuZCh0LE90KHQsZSkpKSxyPTErTWF0aC5mbG9vcigxZS0xMitNYXRoLmxvZyh0KS9NYXRoLkxOMTApLHI9TWF0aC5tYXgoLTI0LE1hdGgubWluKDI0LDMqTWF0aC5mbG9vcigoci0xKS8zKSkpKSxwc1s4K3IvM119O3ZhciBkcz0vKD86KFtee10pPyhbPD49Xl0pKT8oWytcLSBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC4tP1xkKyk/KFthLXolXSk/L2ksbXM9Y2EubWFwKHtiOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHQpfSxvOmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKDgpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiB0LnRvU3RyaW5nKDE2KX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gdC50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0sZzpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvUHJlY2lzaW9uKGUpfSxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9FeHBvbmVudGlhbChlKX0sZjpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRml4ZWQoZSl9LHI6ZnVuY3Rpb24odCxlKXtyZXR1cm4odD1jYS5yb3VuZCh0LE90KHQsZSkpKS50b0ZpeGVkKE1hdGgubWF4KDAsTWF0aC5taW4oMjAsT3QodCooMSsxZS0xNSksZSkpKSl9fSksZ3M9Y2EudGltZT17fSx2cz1EYXRlO1V0LnByb3RvdHlwZT17Z2V0RGF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDRGF0ZSgpfSxnZXREYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ0RheSgpfSxnZXRGdWxsWWVhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDRnVsbFllYXIoKX0sZ2V0SG91cnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ0hvdXJzKCl9LGdldE1pbGxpc2Vjb25kczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VVRDTWlsbGlzZWNvbmRzKCl9LGdldE1pbnV0ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ01pbnV0ZXMoKX0sZ2V0TW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ01vbnRoKCl9LGdldFNlY29uZHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fLmdldFVUQ1NlY29uZHMoKX0sZ2V0VGltZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl8uZ2V0VGltZSgpfSxnZXRUaW1lem9uZU9mZnNldDpmdW5jdGlvbigpe3JldHVybiAwfSx2YWx1ZU9mOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuXy52YWx1ZU9mKCl9LHNldERhdGU6ZnVuY3Rpb24oKXt5cy5zZXRVVENEYXRlLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXREYXk6ZnVuY3Rpb24oKXt5cy5zZXRVVENEYXkuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldEZ1bGxZZWFyOmZ1bmN0aW9uKCl7eXMuc2V0VVRDRnVsbFllYXIuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldEhvdXJzOmZ1bmN0aW9uKCl7eXMuc2V0VVRDSG91cnMuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldE1pbGxpc2Vjb25kczpmdW5jdGlvbigpe3lzLnNldFVUQ01pbGxpc2Vjb25kcy5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX0sc2V0TWludXRlczpmdW5jdGlvbigpe3lzLnNldFVUQ01pbnV0ZXMuYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldE1vbnRoOmZ1bmN0aW9uKCl7eXMuc2V0VVRDTW9udGguYXBwbHkodGhpcy5fLGFyZ3VtZW50cyl9LHNldFNlY29uZHM6ZnVuY3Rpb24oKXt5cy5zZXRVVENTZWNvbmRzLmFwcGx5KHRoaXMuXyxhcmd1bWVudHMpfSxzZXRUaW1lOmZ1bmN0aW9uKCl7eXMuc2V0VGltZS5hcHBseSh0aGlzLl8sYXJndW1lbnRzKX19O3ZhciB5cz1EYXRlLnByb3RvdHlwZTtncy55ZWFyPVZ0KGZ1bmN0aW9uKHQpe3JldHVybiB0PWdzLmRheSh0KSx0LnNldE1vbnRoKDAsMSksdH0sZnVuY3Rpb24odCxlKXt0LnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKStlKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RnVsbFllYXIoKX0pLGdzLnllYXJzPWdzLnllYXIucmFuZ2UsZ3MueWVhcnMudXRjPWdzLnllYXIudXRjLnJhbmdlLGdzLmRheT1WdChmdW5jdGlvbih0KXt2YXIgZT1uZXcgdnMoMmUzLDApO3JldHVybiBlLnNldEZ1bGxZZWFyKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCksdC5nZXREYXRlKCkpLGV9LGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpK2UpfSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCktMX0pLGdzLmRheXM9Z3MuZGF5LnJhbmdlLGdzLmRheXMudXRjPWdzLmRheS51dGMucmFuZ2UsZ3MuZGF5T2ZZZWFyPWZ1bmN0aW9uKHQpe3ZhciBlPWdzLnllYXIodCk7cmV0dXJuIE1hdGguZmxvb3IoKHQtZS02ZTQqKHQuZ2V0VGltZXpvbmVPZmZzZXQoKS1lLmdldFRpbWV6b25lT2Zmc2V0KCkpKS84NjRlNSl9LFsic3VuZGF5IiwibW9uZGF5IiwidHVlc2RheSIsIndlZG5lc2RheSIsInRodXJzZGF5IiwiZnJpZGF5Iiwic2F0dXJkYXkiXS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7ZT03LWU7dmFyIHI9Z3NbdF09VnQoZnVuY3Rpb24odCl7cmV0dXJuKHQ9Z3MuZGF5KHQpKS5zZXREYXRlKHQuZ2V0RGF0ZSgpLSh0LmdldERheSgpK2UpJTcpLHR9LGZ1bmN0aW9uKHQsZSl7dC5zZXREYXRlKHQuZ2V0RGF0ZSgpKzcqTWF0aC5mbG9vcihlKSl9LGZ1bmN0aW9uKHQpe3ZhciByPWdzLnllYXIodCkuZ2V0RGF5KCk7cmV0dXJuIE1hdGguZmxvb3IoKGdzLmRheU9mWWVhcih0KSsocitlKSU3KS83KS0ociE9PWUpfSk7Z3NbdCsicyJdPXIucmFuZ2UsZ3NbdCsicyJdLnV0Yz1yLnV0Yy5yYW5nZSxnc1t0KyJPZlllYXIiXT1mdW5jdGlvbih0KXt2YXIgcj1ncy55ZWFyKHQpLmdldERheSgpO3JldHVybiBNYXRoLmZsb29yKChncy5kYXlPZlllYXIodCkrKHIrZSklNykvNyl9fSksZ3Mud2Vlaz1ncy5zdW5kYXksZ3Mud2Vla3M9Z3Muc3VuZGF5LnJhbmdlLGdzLndlZWtzLnV0Yz1ncy5zdW5kYXkudXRjLnJhbmdlLGdzLndlZWtPZlllYXI9Z3Muc3VuZGF5T2ZZZWFyO3ZhciBicz17Ii0iOiIiLF86IiAiLDA6IjAifSx4cz0vXlxzKlxkKy8sX3M9L14lLztjYS5sb2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJue251bWJlckZvcm1hdDpOdCh0KSx0aW1lRm9ybWF0Okd0KHQpfX07dmFyIHdzPWNhLmxvY2FsZSh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sZGF0ZVRpbWU6IiVhICViICVlICVYICVZIixkYXRlOiIlbS8lZC8lWSIsdGltZToiJUg6JU06JVMiLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdfSk7Y2EuZm9ybWF0PXdzLm51bWJlckZvcm1hdCxjYS5nZW89e30saGUucHJvdG90eXBlPXtzOjAsdDowLGFkZDpmdW5jdGlvbih0KXtmZSh0LHRoaXMudCxNcyksZmUoTXMucyx0aGlzLnMsdGhpcyksdGhpcy5zP3RoaXMudCs9TXMudDp0aGlzLnM9TXMudH0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LHZhbHVlT2Y6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zfX07dmFyIE1zPW5ldyBoZTtjYS5nZW8uc3RyZWFtPWZ1bmN0aW9uKHQsZSl7dCYma3MuaGFzT3duUHJvcGVydHkodC50eXBlKT9rc1t0LnR5cGVdKHQsZSk6cGUodCxlKX07dmFyIGtzPXtGZWF0dXJlOmZ1bmN0aW9uKHQsZSl7cGUodC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5mZWF0dXJlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KXBlKHJbbl0uZ2VvbWV0cnksZSl9fSxBcz17U3BoZXJlOmZ1bmN0aW9uKHQsZSl7ZS5zcGhlcmUoKX0sUG9pbnQ6ZnVuY3Rpb24odCxlKXt0PXQuY29vcmRpbmF0ZXMsZS5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LE11bHRpUG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KXQ9cltuXSxlLnBvaW50KHRbMF0sdFsxXSx0WzJdKX0sTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2RlKHQuY29vcmRpbmF0ZXMsZSwwKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylkZShyW25dLGUsMCl9LFBvbHlnb246ZnVuY3Rpb24odCxlKXttZSh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KW1lKHJbbl0sZSl9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmdlb21ldHJpZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylwZShyW25dLGUpfX07Y2EuZ2VvLmFyZWE9ZnVuY3Rpb24odCl7cmV0dXJuIFRzPTAsY2EuZ2VvLnN0cmVhbSh0LFNzKSxUc307dmFyIFRzLEVzPW5ldyBoZSxTcz17c3BoZXJlOmZ1bmN0aW9uKCl7VHMrPTQqVWF9LHBvaW50Ok0sbGluZVN0YXJ0Ok0sbGluZUVuZDpNLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0VzLnJlc2V0KCksU3MubGluZVN0YXJ0PWdlfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9MipFcztUcys9MD50PzQqVWErdDp0LFNzLmxpbmVTdGFydD1Tcy5saW5lRW5kPVNzLnBvaW50PU19fTtjYS5nZW8uYm91bmRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe2IucHVzaCh4PVtjPXQsZj10XSksaD5lJiYoaD1lKSxlPnAmJihwPWUpfWZ1bmN0aW9uIGUoZSxyKXt2YXIgbj12ZShbZSpIYSxyKkhhXSk7aWYodil7dmFyIGk9YmUodixuKSxvPVtpWzFdLC1pWzBdLDBdLGE9YmUobyxpKTt3ZShhKSxhPU1lKGEpO3ZhciBsPWUtZCx1PWw+MD8xOi0xLG09YVswXSpYYSp1LGc9d2EobCk+MTgwO2lmKGdeKG0+dSpkJiZ1KmU+bSkpe3ZhciB5PWFbMV0qWGE7eT5wJiYocD15KX1lbHNlIGlmKG09KG0rMzYwKSUzNjAtMTgwLGdeKG0+dSpkJiZ1KmU+bSkpe3ZhciB5PS1hWzFdKlhhO2g+eSYmKGg9eSl9ZWxzZSBoPnImJihoPXIpLHI+cCYmKHA9cik7Zz9kPmU/cyhjLGUpPnMoYyxmKSYmKGY9ZSk6cyhlLGYpPnMoYyxmKSYmKGM9ZSk6Zj49Yz8oYz5lJiYoYz1lKSxlPmYmJihmPWUpKTplPmQ/cyhjLGUpPnMoYyxmKSYmKGY9ZSk6cyhlLGYpPnMoYyxmKSYmKGM9ZSl9ZWxzZSB0KGUscik7dj1uLGQ9ZX1mdW5jdGlvbiByKCl7Xy5wb2ludD1lfWZ1bmN0aW9uIG4oKXt4WzBdPWMseFsxXT1mLF8ucG9pbnQ9dCx2PW51bGx9ZnVuY3Rpb24gaSh0LHIpe2lmKHYpe3ZhciBuPXQtZDt5Kz13YShuKT4xODA/bisobj4wPzM2MDotMzYwKTpufWVsc2UgbT10LGc9cjtTcy5wb2ludCh0LHIpLGUodCxyKX1mdW5jdGlvbiBvKCl7U3MubGluZVN0YXJ0KCl9ZnVuY3Rpb24gYSgpe2kobSxnKSxTcy5saW5lRW5kKCksd2EoeSk+TmEmJihjPS0oZj0xODApKSx4WzBdPWMseFsxXT1mLHY9bnVsbH1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuKGUtPXQpPDA/ZSszNjA6ZX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiB1KHQsZSl7cmV0dXJuIGVbMF08PWVbMV0/ZVswXTw9dCYmdDw9ZVsxXTp0PGVbMF18fGVbMV08dH12YXIgYyxoLGYscCxkLG0sZyx2LHksYix4LF89e3BvaW50OnQsbGluZVN0YXJ0OnIsbGluZUVuZDpuLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe18ucG9pbnQ9aSxfLmxpbmVTdGFydD1vLF8ubGluZUVuZD1hLHk9MCxTcy5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe1NzLnBvbHlnb25FbmQoKSxfLnBvaW50PXQsXy5saW5lU3RhcnQ9cixfLmxpbmVFbmQ9biwwPkVzPyhjPS0oZj0xODApLGg9LShwPTkwKSk6eT5OYT9wPTkwOi1OYT55JiYoaD0tOTApLHhbMF09Yyx4WzFdPWZ9fTtyZXR1cm4gZnVuY3Rpb24odCl7cD1mPS0oYz1oPTEvMCksYj1bXSxjYS5nZW8uc3RyZWFtKHQsXyk7dmFyIGU9Yi5sZW5ndGg7aWYoZSl7Yi5zb3J0KGwpO2Zvcih2YXIgcixuPTEsaT1iWzBdLG89W2ldO2U+bjsrK24pcj1iW25dLHUoclswXSxpKXx8dShyWzFdLGkpPyhzKGlbMF0sclsxXSk+cyhpWzBdLGlbMV0pJiYoaVsxXT1yWzFdKSxzKHJbMF0saVsxXSk+cyhpWzBdLGlbMV0pJiYoaVswXT1yWzBdKSk6by5wdXNoKGk9cik7Zm9yKHZhciBhLHIsZD0tKDEvMCksZT1vLmxlbmd0aC0xLG49MCxpPW9bZV07ZT49bjtpPXIsKytuKXI9b1tuXSwoYT1zKGlbMV0sclswXSkpPmQmJihkPWEsYz1yWzBdLGY9aVsxXSl9cmV0dXJuIGI9eD1udWxsLGM9PT0xLzB8fGg9PT0xLzA/W1tOYU4sTmFOXSxbTmFOLE5hTl1dOltbYyxoXSxbZixwXV19fSgpLGNhLmdlby5jZW50cm9pZD1mdW5jdGlvbih0KXtMcz16cz1Jcz1Qcz1Dcz1Scz1qcz1Ecz1Pcz1Gcz1Ocz0wLGNhLmdlby5zdHJlYW0odCxCcyk7dmFyIGU9T3Mscj1GcyxuPU5zLGk9ZSplK3IqcituKm47cmV0dXJuIEJhPmkmJihlPVJzLHI9anMsbj1EcyxOYT56cyYmKGU9SXMscj1QcyxuPUNzKSxpPWUqZStyKnIrbipuLEJhPmkpP1tOYU4sTmFOXTpbTWF0aC5hdGFuMihyLGUpKlhhLG50KG4vTWF0aC5zcXJ0KGkpKSpYYV19O3ZhciBMcyx6cyxJcyxQcyxDcyxScyxqcyxEcyxPcyxGcyxOcyxCcz17c3BoZXJlOk0scG9pbnQ6QWUsbGluZVN0YXJ0OkVlLGxpbmVFbmQ6U2UscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7QnMubGluZVN0YXJ0PUxlfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7QnMubGluZVN0YXJ0PUVlfX0sVXM9amUoSWUsTmUsVWUsWy1VYSwtVWEvMl0pLFZzPTFlOTtjYS5nZW8uY2xpcEV4dGVudD1mdW5jdGlvbigpe3ZhciB0LGUscixuLGksbyxhPXtzdHJlYW06ZnVuY3Rpb24odCl7cmV0dXJuIGkmJihpLnZhbGlkPSExKSxpPW8odCksaS52YWxpZD0hMCxpfSxleHRlbnQ6ZnVuY3Rpb24ocyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89SGUodD0rc1swXVswXSxlPStzWzBdWzFdLHI9K3NbMV1bMF0sbj0rc1sxXVsxXSksaSYmKGkudmFsaWQ9ITEsaT1udWxsKSxhKTpbW3QsZV0sW3Isbl1dfX07cmV0dXJuIGEuZXh0ZW50KFtbMCwwXSxbOTYwLDUwMF1dKX0sKGNhLmdlby5jb25pY0VxdWFsQXJlYT1mdW5jdGlvbigpe3JldHVybiBYZShZZSl9KS5yYXc9WWUsY2EuZ2VvLmFsYmVycz1mdW5jdGlvbigpe3JldHVybiBjYS5nZW8uY29uaWNFcXVhbEFyZWEoKS5yb3RhdGUoWzk2LDBdKS5jZW50ZXIoWy0uNiwzOC43XSkucGFyYWxsZWxzKFsyOS41LDQ1LjVdKS5zY2FsZSgxMDcwKX0sY2EuZ2VvLmFsYmVyc1VzYT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIG89dFswXSxhPXRbMV07cmV0dXJuIGU9bnVsbCxyKG8sYSksZXx8KG4obyxhKSxlKXx8aShvLGEpLGV9dmFyIGUscixuLGksbz1jYS5nZW8uYWxiZXJzKCksYT1jYS5nZW8uY29uaWNFcXVhbEFyZWEoKS5yb3RhdGUoWzE1NCwwXSkuY2VudGVyKFstMiw1OC41XSkucGFyYWxsZWxzKFs1NSw2NV0pLHM9Y2EuZ2VvLmNvbmljRXF1YWxBcmVhKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLGw9e3BvaW50OmZ1bmN0aW9uKHQscil7ZT1bdCxyXX19O3JldHVybiB0LmludmVydD1mdW5jdGlvbih0KXt2YXIgZT1vLnNjYWxlKCkscj1vLnRyYW5zbGF0ZSgpLG49KHRbMF0tclswXSkvZSxpPSh0WzFdLXJbMV0pL2U7cmV0dXJuKGk+PS4xMiYmLjIzND5pJiZuPj0tLjQyNSYmLS4yMTQ+bj9hOmk+PS4xNjYmJi4yMzQ+aSYmbj49LS4yMTQmJi0uMTE1Pm4/czpvKS5pbnZlcnQodCl9LHQuc3RyZWFtPWZ1bmN0aW9uKHQpe3ZhciBlPW8uc3RyZWFtKHQpLHI9YS5zdHJlYW0odCksbj1zLnN0cmVhbSh0KTtyZXR1cm57cG9pbnQ6ZnVuY3Rpb24odCxpKXtlLnBvaW50KHQsaSksci5wb2ludCh0LGkpLG4ucG9pbnQodCxpKX0sc3BoZXJlOmZ1bmN0aW9uKCl7ZS5zcGhlcmUoKSxyLnNwaGVyZSgpLG4uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe2UubGluZVN0YXJ0KCksci5saW5lU3RhcnQoKSxuLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7ZS5saW5lRW5kKCksci5saW5lRW5kKCksbi5saW5lRW5kKCl9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2UucG9seWdvblN0YXJ0KCksci5wb2x5Z29uU3RhcnQoKSxuLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ZS5wb2x5Z29uRW5kKCksci5wb2x5Z29uRW5kKCksbi5wb2x5Z29uRW5kKCl9fX0sdC5wcmVjaXNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8ucHJlY2lzaW9uKGUpLGEucHJlY2lzaW9uKGUpLHMucHJlY2lzaW9uKGUpLHQpOm8ucHJlY2lzaW9uKCl9LHQuc2NhbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG8uc2NhbGUoZSksYS5zY2FsZSguMzUqZSkscy5zY2FsZShlKSx0LnRyYW5zbGF0ZShvLnRyYW5zbGF0ZSgpKSk6by5zY2FsZSgpfSx0LnRyYW5zbGF0ZT1mdW5jdGlvbihlKXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gby50cmFuc2xhdGUoKTt2YXIgdT1vLnNjYWxlKCksYz0rZVswXSxoPStlWzFdO3JldHVybiByPW8udHJhbnNsYXRlKGUpLmNsaXBFeHRlbnQoW1tjLS40NTUqdSxoLS4yMzgqdV0sW2MrLjQ1NSp1LGgrLjIzOCp1XV0pLnN0cmVhbShsKS5wb2ludCxuPWEudHJhbnNsYXRlKFtjLS4zMDcqdSxoKy4yMDEqdV0pLmNsaXBFeHRlbnQoW1tjLS40MjUqdStOYSxoKy4xMip1K05hXSxbYy0uMjE0KnUtTmEsaCsuMjM0KnUtTmFdXSkuc3RyZWFtKGwpLnBvaW50LGk9cy50cmFuc2xhdGUoW2MtLjIwNSp1LGgrLjIxMip1XSkuY2xpcEV4dGVudChbW2MtLjIxNCp1K05hLGgrLjE2Nip1K05hXSxbYy0uMTE1KnUtTmEsaCsuMjM0KnUtTmFdXSkuc3RyZWFtKGwpLnBvaW50LHR9LHQuc2NhbGUoMTA3MCl9O3ZhciBxcyxHcyxIcyxYcyxZcyxXcyxacz17cG9pbnQ6TSxsaW5lU3RhcnQ6TSxsaW5lRW5kOk0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7R3M9MCxacy5saW5lU3RhcnQ9V2V9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtacy5saW5lU3RhcnQ9WnMubGluZUVuZD1acy5wb2ludD1NLHFzKz13YShHcy8yKX19LFFzPXtwb2ludDpaZSxsaW5lU3RhcnQ6TSxsaW5lRW5kOk0scG9seWdvblN0YXJ0Ok0scG9seWdvbkVuZDpNfSxLcz17cG9pbnQ6SmUsbGluZVN0YXJ0OiRlLGxpbmVFbmQ6dHIscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7S3MubGluZVN0YXJ0PWVyfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7S3MucG9pbnQ9SmUsS3MubGluZVN0YXJ0PSRlLEtzLmxpbmVFbmQ9dHJ9fTtjYS5nZW8ucGF0aD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7cmV0dXJuIHQmJigiZnVuY3Rpb24iPT10eXBlb2YgcyYmby5wb2ludFJhZGl1cygrcy5hcHBseSh0aGlzLGFyZ3VtZW50cykpLGEmJmEudmFsaWR8fChhPWkobykpLGNhLmdlby5zdHJlYW0odCxhKSksby5yZXN1bHQoKX1mdW5jdGlvbiBlKCl7cmV0dXJuIGE9bnVsbCx0fXZhciByLG4saSxvLGEscz00LjU7cmV0dXJuIHQuYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4gcXM9MCxjYS5nZW8uc3RyZWFtKHQsaShacykpLHFzfSx0LmNlbnRyb2lkPWZ1bmN0aW9uKHQpe3JldHVybiBJcz1Qcz1Dcz1Scz1qcz1Ecz1Pcz1Gcz1Ocz0wLGNhLmdlby5zdHJlYW0odCxpKEtzKSksTnM/W09zL05zLEZzL05zXTpEcz9bUnMvRHMsanMvRHNdOkNzP1tJcy9DcyxQcy9Dc106W05hTixOYU5dfSx0LmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gWXM9V3M9LShIcz1Ycz0xLzApLGNhLmdlby5zdHJlYW0odCxpKFFzKSksW1tIcyxYc10sW1lzLFdzXV19LHQucHJvamVjdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0ocj10KT90LnN0cmVhbXx8aXIodCk6eCxlKCkpOnJ9LHQuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1udWxsPT0obj10KT9uZXcgUWU6bmV3IHJyKHQpLCJmdW5jdGlvbiIhPXR5cGVvZiBzJiZvLnBvaW50UmFkaXVzKHMpLGUoKSk6bn0sdC5wb2ludFJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOihvLnBvaW50UmFkaXVzKCtlKSwrZSksdCk6c30sdC5wcm9qZWN0aW9uKGNhLmdlby5hbGJlcnNVc2EoKSkuY29udGV4dChudWxsKX0sY2EuZ2VvLnRyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm57c3RyZWFtOmZ1bmN0aW9uKGUpe3ZhciByPW5ldyBvcihlKTtmb3IodmFyIG4gaW4gdClyW25dPXRbbl07cmV0dXJuIHJ9fX0sb3IucHJvdG90eXBlPXtwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuc3RyZWFtLnBvaW50KHQsZSl9LHNwaGVyZTpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVFbmQoKX0scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uRW5kKCl9fSxjYS5nZW8ucHJvamVjdGlvbj1zcixjYS5nZW8ucHJvamVjdGlvbk11dGF0b3I9bHIsKGNhLmdlby5lcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gc3IoY3IpfSkucmF3PWNyLmludmVydD1jcixjYS5nZW8ucm90YXRpb249ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZT10KGVbMF0qSGEsZVsxXSpIYSksZVswXSo9WGEsZVsxXSo9WGEsZX1yZXR1cm4gdD1mcih0WzBdJTM2MCpIYSx0WzFdKkhhLHQubGVuZ3RoPjI/dFsyXSpIYTowKSxlLmludmVydD1mdW5jdGlvbihlKXtyZXR1cm4gZT10LmludmVydChlWzBdKkhhLGVbMV0qSGEpLGVbMF0qPVhhLGVbMV0qPVhhLGV9LGV9LGhyLmludmVydD1jcixjYS5nZW8uY2lyY2xlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiBuP24uYXBwbHkodGhpcyxhcmd1bWVudHMpOm4sZT1mcigtdFswXSpIYSwtdFsxXSpIYSwwKS5pbnZlcnQsaT1bXTtyZXR1cm4gcihudWxsLG51bGwsMSx7cG9pbnQ6ZnVuY3Rpb24odCxyKXtpLnB1c2godD1lKHQscikpLHRbMF0qPVhhLHRbMV0qPVhhfX0pLHt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbaV19fXZhciBlLHIsbj1bMCwwXSxpPTY7cmV0dXJuIHQub3JpZ2luPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC5hbmdsZT1mdW5jdGlvbihuKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1ncigoZT0rbikqSGEsaSpIYSksdCk6ZX0sdC5wcmVjaXNpb249ZnVuY3Rpb24obil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9Z3IoZSpIYSwoaT0rbikqSGEpLHQpOml9LHQuYW5nbGUoOTApfSxjYS5nZW8uZGlzdGFuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcixuPShlWzBdLXRbMF0pKkhhLGk9dFsxXSpIYSxvPWVbMV0qSGEsYT1NYXRoLnNpbihuKSxzPU1hdGguY29zKG4pLGw9TWF0aC5zaW4oaSksdT1NYXRoLmNvcyhpKSxjPU1hdGguc2luKG8pLGg9TWF0aC5jb3Mobyk7cmV0dXJuIE1hdGguYXRhbjIoTWF0aC5zcXJ0KChyPWgqYSkqcisocj11KmMtbCpoKnMpKnIpLGwqYyt1Kmgqcyl9LGNhLmdlby5ncmF0aWN1bGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6ZSgpfX1mdW5jdGlvbiBlKCl7cmV0dXJuIGNhLnJhbmdlKE1hdGguY2VpbChvL2cpKmcsaSxnKS5tYXAoZikuY29uY2F0KGNhLnJhbmdlKE1hdGguY2VpbCh1L3YpKnYsbCx2KS5tYXAocCkpLmNvbmNhdChjYS5yYW5nZShNYXRoLmNlaWwobi9kKSpkLHIsZCkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB3YSh0JWcpPk5hfSkubWFwKGMpKS5jb25jYXQoY2EucmFuZ2UoTWF0aC5jZWlsKHMvbSkqbSxhLG0pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gd2EodCV2KT5OYX0pLm1hcChoKSl9dmFyIHIsbixpLG8sYSxzLGwsdSxjLGgsZixwLGQ9MTAsbT1kLGc9OTAsdj0zNjAseT0yLjU7cmV0dXJuIHQubGluZXM9ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH19KX0sdC5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltmKG8pLmNvbmNhdChwKGwpLnNsaWNlKDEpLGYoaSkucmV2ZXJzZSgpLnNsaWNlKDEpLHAodSkucmV2ZXJzZSgpLnNsaWNlKDEpKV19fSx0LmV4dGVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90Lm1ham9yRXh0ZW50KGUpLm1pbm9yRXh0ZW50KGUpOnQubWlub3JFeHRlbnQoKX0sdC5tYWpvckV4dGVudD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rZVswXVswXSxpPStlWzFdWzBdLHU9K2VbMF1bMV0sbD0rZVsxXVsxXSxvPmkmJihlPW8sbz1pLGk9ZSksdT5sJiYoZT11LHU9bCxsPWUpLHQucHJlY2lzaW9uKHkpKTpbW28sdV0sW2ksbF1dfSx0Lm1pbm9yRXh0ZW50PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStlWzBdWzBdLHI9K2VbMV1bMF0scz0rZVswXVsxXSxhPStlWzFdWzFdLG4+ciYmKGU9bixuPXIscj1lKSxzPmEmJihlPXMscz1hLGE9ZSksdC5wcmVjaXNpb24oeSkpOltbbixzXSxbcixhXV19LHQuc3RlcD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90Lm1ham9yU3RlcChlKS5taW5vclN0ZXAoZSk6dC5taW5vclN0ZXAoKX0sdC5tYWpvclN0ZXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9K2VbMF0sdj0rZVsxXSx0KTpbZyx2XX0sdC5taW5vclN0ZXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGQ9K2VbMF0sbT0rZVsxXSx0KTpbZCxtXX0sdC5wcmVjaXNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9K2UsYz15cihzLGEsOTApLGg9YnIobixyLHkpLGY9eXIodSxsLDkwKSxwPWJyKG8saSx5KSx0KTp5fSx0Lm1ham9yRXh0ZW50KFtbLTE4MCwtOTArTmFdLFsxODAsOTAtTmFdXSkubWlub3JFeHRlbnQoW1stMTgwLC04MC1OYV0sWzE4MCw4MCtOYV1dKX0sY2EuZ2VvLmdyZWF0QXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczpbZXx8bi5hcHBseSh0aGlzLGFyZ3VtZW50cykscnx8aS5hcHBseSh0aGlzLGFyZ3VtZW50cyldfX12YXIgZSxyLG49eHIsaT1fcjtyZXR1cm4gdC5kaXN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBjYS5nZW8uZGlzdGFuY2UoZXx8bi5hcHBseSh0aGlzLGFyZ3VtZW50cykscnx8aS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSx0LnNvdXJjZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1yLGU9ImZ1bmN0aW9uIj09dHlwZW9mIHI/bnVsbDpyLHQpOm59LHQudGFyZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWUscj0iZnVuY3Rpb24iPT10eXBlb2YgZT9udWxsOmUsdCk6aX0sdC5wcmVjaXNpb249ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90OjB9LHR9LGNhLmdlby5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB3cih0WzBdKkhhLHRbMV0qSGEsZVswXSpIYSxlWzFdKkhhKX0sY2EuZ2VvLmxlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gSnM9MCxjYS5nZW8uc3RyZWFtKHQsJHMpLEpzfTt2YXIgSnMsJHM9e3NwaGVyZTpNLHBvaW50Ok0sbGluZVN0YXJ0Ok1yLGxpbmVFbmQ6TSxwb2x5Z29uU3RhcnQ6TSxwb2x5Z29uRW5kOk19LHRsPWtyKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoMi8oMSt0KSl9LGZ1bmN0aW9uKHQpe3JldHVybiAyKk1hdGguYXNpbih0LzIpfSk7KGNhLmdlby5hemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gc3IodGwpfSkucmF3PXRsO3ZhciBlbD1rcihmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmFjb3ModCk7cmV0dXJuIGUmJmUvTWF0aC5zaW4oZSl9LHgpOyhjYS5nZW8uYXppbXV0aGFsRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gc3IoZWwpfSkucmF3PWVsLChjYS5nZW8uY29uaWNDb25mb3JtYWw9ZnVuY3Rpb24oKXtyZXR1cm4gWGUoQXIpfSkucmF3PUFyLChjYS5nZW8uY29uaWNFcXVpZGlzdGFudD1mdW5jdGlvbigpe3JldHVybiBYZShUcil9KS5yYXc9VHI7dmFyIHJsPWtyKGZ1bmN0aW9uKHQpe3JldHVybiAxL3R9LE1hdGguYXRhbik7KGNhLmdlby5nbm9tb25pYz1mdW5jdGlvbigpe3JldHVybiBzcihybCl9KS5yYXc9cmwsRXIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QsMipNYXRoLmF0YW4oTWF0aC5leHAoZSkpLUdhXX0sKGNhLmdlby5tZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiBTcihFcil9KS5yYXc9RXI7dmFyIG5sPWtyKGZ1bmN0aW9uKCl7cmV0dXJuIDF9LE1hdGguYXNpbik7KGNhLmdlby5vcnRob2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gc3IobmwpfSkucmF3PW5sO3ZhciBpbD1rcihmdW5jdGlvbih0KXtyZXR1cm4gMS8oMSt0KX0sZnVuY3Rpb24odCl7cmV0dXJuIDIqTWF0aC5hdGFuKHQpfSk7KGNhLmdlby5zdGVyZW9ncmFwaGljPWZ1bmN0aW9uKCl7cmV0dXJuIHNyKGlsKX0pLnJhdz1pbCxMci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bLWUsMipNYXRoLmF0YW4oTWF0aC5leHAodCkpLUdhXX0sKGNhLmdlby50cmFuc3ZlcnNlTWVyY2F0b3I9ZnVuY3Rpb24oKXt2YXIgdD1TcihMciksZT10LmNlbnRlcixyPXQucm90YXRlO3JldHVybiB0LmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD9lKFstdFsxXSx0WzBdXSk6KHQ9ZSgpLFt0WzFdLC10WzBdXSl9LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0P3IoW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKToodD1yKCksW3RbMF0sdFsxXSx0WzJdLTkwXSl9LHIoWzAsMCw5MF0pfSkucmF3PUxyLGNhLmdlb209e30sY2EuZ2VvbS5odWxsPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7aWYodC5sZW5ndGg8MylyZXR1cm5bXTt2YXIgZSxpPVN0KHIpLG89U3QobiksYT10Lmxlbmd0aCxzPVtdLGw9W107Zm9yKGU9MDthPmU7ZSsrKXMucHVzaChbK2kuY2FsbCh0aGlzLHRbZV0sZSksK28uY2FsbCh0aGlzLHRbZV0sZSksZV0pO2ZvcihzLnNvcnQoQ3IpLGU9MDthPmU7ZSsrKWwucHVzaChbc1tlXVswXSwtc1tlXVsxXV0pO3ZhciB1PVByKHMpLGM9UHIobCksaD1jWzBdPT09dVswXSxmPWNbYy5sZW5ndGgtMV09PT11W3UubGVuZ3RoLTFdLHA9W107Zm9yKGU9dS5sZW5ndGgtMTtlPj0wOy0tZSlwLnB1c2godFtzW3VbZV1dWzJdXSk7Zm9yKGU9K2g7ZTxjLmxlbmd0aC1mOysrZSlwLnB1c2godFtzW2NbZV1dWzJdXSk7cmV0dXJuIHB9dmFyIHI9enIsbj1JcjtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKHQpOihlLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxlKTpyfSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxlKTpufSxlKX0sY2EuZ2VvbS5wb2x5Z29uPWZ1bmN0aW9uKHQpe3JldHVybiBFYSh0LG9sKSx0fTt2YXIgb2w9Y2EuZ2VvbS5wb2x5Z29uLnByb3RvdHlwZT1bXTtvbC5hcmVhPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9LTEscj10aGlzLmxlbmd0aCxuPXRoaXNbci0xXSxpPTA7KytlPHI7KXQ9bixuPXRoaXNbZV0saSs9dFsxXSpuWzBdLXRbMF0qblsxXTtyZXR1cm4uNSppfSxvbC5jZW50cm9pZD1mdW5jdGlvbih0KXt2YXIgZSxyLG49LTEsaT10aGlzLmxlbmd0aCxvPTAsYT0wLHM9dGhpc1tpLTFdO2Zvcihhcmd1bWVudHMubGVuZ3RofHwodD0tMS8oNip0aGlzLmFyZWEoKSkpOysrbjxpOyllPXMscz10aGlzW25dLHI9ZVswXSpzWzFdLXNbMF0qZVsxXSxvKz0oZVswXStzWzBdKSpyLGErPShlWzFdK3NbMV0pKnI7cmV0dXJuW28qdCxhKnRdfSxvbC5jbGlwPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG4saSxvLGEscz1Ecih0KSxsPS0xLHU9dGhpcy5sZW5ndGgtRHIodGhpcyksYz10aGlzW3UtMV07KytsPHU7KXtmb3IoZT10LnNsaWNlKCksdC5sZW5ndGg9MCxpPXRoaXNbbF0sbz1lWyhuPWUubGVuZ3RoLXMpLTFdLHI9LTE7KytyPG47KWE9ZVtyXSxScihhLGMsaSk/KFJyKG8sYyxpKXx8dC5wdXNoKGpyKG8sYSxjLGkpKSx0LnB1c2goYSkpOlJyKG8sYyxpKSYmdC5wdXNoKGpyKG8sYSxjLGkpKSxvPWE7cyYmdC5wdXNoKHRbMF0pLGM9aX1yZXR1cm4gdH07dmFyIGFsLHNsLGxsLHVsLGNsLGhsPVtdLGZsPVtdO0dyLnByb3RvdHlwZS5wcmVwYXJlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9dGhpcy5lZGdlcyxyPWUubGVuZ3RoO3ItLTspdD1lW3JdLmVkZ2UsdC5iJiZ0LmF8fGUuc3BsaWNlKHIsMSk7cmV0dXJuIGUuc29ydChYciksZS5sZW5ndGh9LHJuLnByb3RvdHlwZT17c3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlLmw9PT10aGlzLnNpdGU/dGhpcy5lZGdlLmE6dGhpcy5lZGdlLmJ9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZ2UubD09PXRoaXMuc2l0ZT90aGlzLmVkZ2UuYjp0aGlzLmVkZ2UuYX19LG5uLnByb3RvdHlwZT17aW5zZXJ0OmZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpO2lmKHQpe2lmKGUuUD10LGUuTj10Lk4sdC5OJiYodC5OLlA9ZSksdC5OPWUsdC5SKXtmb3IodD10LlI7dC5MOyl0PXQuTDt0Lkw9ZX1lbHNlIHQuUj1lO3I9dH1lbHNlIHRoaXMuXz8odD1sbih0aGlzLl8pLGUuUD1udWxsLGUuTj10LHQuUD10Lkw9ZSxyPXQpOihlLlA9ZS5OPW51bGwsdGhpcy5fPWUscj1udWxsKTtmb3IoZS5MPWUuUj1udWxsLGUuVT1yLGUuQz0hMCx0PWU7ciYmci5DOyluPXIuVSxyPT09bi5MPyhpPW4uUixpJiZpLkM/KHIuQz1pLkM9ITEsbi5DPSEwLHQ9bik6KHQ9PT1yLlImJihhbih0aGlzLHIpLHQ9cixyPXQuVSksci5DPSExLG4uQz0hMCxzbih0aGlzLG4pKSk6KGk9bi5MLGkmJmkuQz8oci5DPWkuQz0hMSxuLkM9ITAsdD1uKToodD09PXIuTCYmKHNuKHRoaXMsciksdD1yLHI9dC5VKSxyLkM9ITEsbi5DPSEwLGFuKHRoaXMsbikpKSxyPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUscixuLGk9dC5VLG89dC5MLGE9dC5SO2lmKHI9bz9hP2xuKGEpOm86YSxpP2kuTD09PXQ/aS5MPXI6aS5SPXI6dGhpcy5fPXIsbyYmYT8obj1yLkMsci5DPXQuQyxyLkw9byxvLlU9cixyIT09YT8oaT1yLlUsci5VPXQuVSx0PXIuUixpLkw9dCxyLlI9YSxhLlU9cik6KHIuVT1pLGk9cix0PXIuUikpOihuPXQuQyx0PXIpLHQmJih0LlU9aSksIW4pe2lmKHQmJnQuQylyZXR1cm4gdm9pZCh0LkM9ITEpO2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PWkuTCl7aWYoZT1pLlIsZS5DJiYoZS5DPSExLGkuQz0hMCxhbih0aGlzLGkpLGU9aS5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLHNuKHRoaXMsZSksZT1pLlIpLGUuQz1pLkMsaS5DPWUuUi5DPSExLGFuKHRoaXMsaSksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoZT1pLkwsZS5DJiYoZS5DPSExLGkuQz0hMCxzbih0aGlzLGkpLGU9aS5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLGFuKHRoaXMsZSksZT1pLkwpLGUuQz1pLkMsaS5DPWUuTC5DPSExLHNuKHRoaXMsaSksdD10aGlzLl87YnJlYWt9ZS5DPSEwLHQ9aSxpPWkuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fSxjYS5nZW9tLnZvcm9ub2k9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLG49c1swXVswXSxpPXNbMF1bMV0sbz1zWzFdWzBdLGE9c1sxXVsxXTtyZXR1cm4gdW4ocih0KSxzKS5jZWxscy5mb3JFYWNoKGZ1bmN0aW9uKHIscyl7dmFyIGw9ci5lZGdlcyx1PXIuc2l0ZSxjPWVbc109bC5sZW5ndGg/bC5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC5zdGFydCgpO3JldHVybltlLngsZS55XTsKfSk6dS54Pj1uJiZ1Lng8PW8mJnUueT49aSYmdS55PD1hP1tbbixhXSxbbyxhXSxbbyxpXSxbbixpXV06W107Yy5wb2ludD10W3NdfSksZX1mdW5jdGlvbiByKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0LGUpe3JldHVybnt4Ok1hdGgucm91bmQobyh0LGUpL05hKSpOYSx5Ok1hdGgucm91bmQoYSh0LGUpL05hKSpOYSxpOmV9fSl9dmFyIG49enIsaT1JcixvPW4sYT1pLHM9cGw7cmV0dXJuIHQ/ZSh0KTooZS5saW5rcz1mdW5jdGlvbih0KXtyZXR1cm4gdW4ocih0KSkuZWRnZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LmwmJnQucn0pLm1hcChmdW5jdGlvbihlKXtyZXR1cm57c291cmNlOnRbZS5sLmldLHRhcmdldDp0W2Uuci5pXX19KX0sZS50cmlhbmdsZXM9ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHVuKHIodCkpLmNlbGxzLmZvckVhY2goZnVuY3Rpb24ocixuKXtmb3IodmFyIGksbyxhPXIuc2l0ZSxzPXIuZWRnZXMuc29ydChYciksbD0tMSx1PXMubGVuZ3RoLGM9c1t1LTFdLmVkZ2UsaD1jLmw9PT1hP2MucjpjLmw7KytsPHU7KWk9YyxvPWgsYz1zW2xdLmVkZ2UsaD1jLmw9PT1hP2MucjpjLmwsbjxvLmkmJm48aC5pJiZobihhLG8saCk8MCYmZS5wdXNoKFt0W25dLHRbby5pXSx0W2guaV1dKX0pLGV9LGUueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1TdChuPXQpLGUpOm59LGUueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT1TdChpPXQpLGUpOml9LGUuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1udWxsPT10P3BsOnQsZSk6cz09PXBsP251bGw6c30sZS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UuY2xpcEV4dGVudCh0JiZbWzAsMF0sdF0pOnM9PT1wbD9udWxsOnMmJnNbMV19LGUpfTt2YXIgcGw9W1stMWU2LC0xZTZdLFsxZTYsMWU2XV07Y2EuZ2VvbS5kZWxhdW5heT1mdW5jdGlvbih0KXtyZXR1cm4gY2EuZ2VvbS52b3Jvbm9pKCkudHJpYW5nbGVzKHQpfSxjYS5nZW9tLnF1YWR0cmVlPWZ1bmN0aW9uKHQsZSxyLG4saSl7ZnVuY3Rpb24gbyh0KXtmdW5jdGlvbiBvKHQsZSxyLG4saSxvLGEscyl7aWYoIWlzTmFOKHIpJiYhaXNOYU4obikpaWYodC5sZWFmKXt2YXIgbD10LngsYz10Lnk7aWYobnVsbCE9bClpZih3YShsLXIpK3dhKGMtbik8LjAxKXUodCxlLHIsbixpLG8sYSxzKTtlbHNle3ZhciBoPXQucG9pbnQ7dC54PXQueT10LnBvaW50PW51bGwsdSh0LGgsbCxjLGksbyxhLHMpLHUodCxlLHIsbixpLG8sYSxzKX1lbHNlIHQueD1yLHQueT1uLHQucG9pbnQ9ZX1lbHNlIHUodCxlLHIsbixpLG8sYSxzKX1mdW5jdGlvbiB1KHQsZSxyLG4saSxhLHMsbCl7dmFyIHU9LjUqKGkrcyksYz0uNSooYStsKSxoPXI+PXUsZj1uPj1jLHA9Zjw8MXxoO3QubGVhZj0hMSx0PXQubm9kZXNbcF18fCh0Lm5vZGVzW3BdPWRuKCkpLGg/aT11OnM9dSxmP2E9YzpsPWMsbyh0LGUscixuLGksYSxzLGwpfXZhciBjLGgsZixwLGQsbSxnLHYseSxiPVN0KHMpLHg9U3QobCk7aWYobnVsbCE9ZSltPWUsZz1yLHY9bix5PWk7ZWxzZSBpZih2PXk9LShtPWc9MS8wKSxoPVtdLGY9W10sZD10Lmxlbmd0aCxhKWZvcihwPTA7ZD5wOysrcCljPXRbcF0sYy54PG0mJihtPWMueCksYy55PGcmJihnPWMueSksYy54PnYmJih2PWMueCksYy55PnkmJih5PWMueSksaC5wdXNoKGMueCksZi5wdXNoKGMueSk7ZWxzZSBmb3IocD0wO2Q+cDsrK3Ape3ZhciBfPStiKGM9dFtwXSxwKSx3PSt4KGMscCk7bT5fJiYobT1fKSxnPncmJihnPXcpLF8+diYmKHY9Xyksdz55JiYoeT13KSxoLnB1c2goXyksZi5wdXNoKHcpfXZhciBNPXYtbSxrPXktZztNPms/eT1nK006dj1tK2s7dmFyIEE9ZG4oKTtpZihBLmFkZD1mdW5jdGlvbih0KXtvKEEsdCwrYih0LCsrcCksK3godCxwKSxtLGcsdix5KX0sQS52aXNpdD1mdW5jdGlvbih0KXttbih0LEEsbSxnLHYseSl9LEEuZmluZD1mdW5jdGlvbih0KXtyZXR1cm4gZ24oQSx0WzBdLHRbMV0sbSxnLHYseSl9LHA9LTEsbnVsbD09ZSl7Zm9yKDsrK3A8ZDspbyhBLHRbcF0saFtwXSxmW3BdLG0sZyx2LHkpOy0tcH1lbHNlIHQuZm9yRWFjaChBLmFkZCk7cmV0dXJuIGg9Zj10PWM9bnVsbCxBfXZhciBhLHM9enIsbD1JcjtyZXR1cm4oYT1hcmd1bWVudHMubGVuZ3RoKT8ocz1mbixsPXBuLDM9PT1hJiYoaT1yLG49ZSxyPWU9MCksbyh0KSk6KG8ueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LG8pOnN9LG8ueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD10LG8pOmx9LG8uZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2U9cj1uPWk9bnVsbDooZT0rdFswXVswXSxyPSt0WzBdWzFdLG49K3RbMV1bMF0saT0rdFsxXVsxXSksbyk6bnVsbD09ZT9udWxsOltbZSxyXSxbbixpXV19LG8uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD9lPXI9bj1pPW51bGw6KGU9cj0wLG49K3RbMF0saT0rdFsxXSksbyk6bnVsbD09ZT9udWxsOltuLWUsaS1yXX0sbyl9LGNhLmludGVycG9sYXRlUmdiPXZuLGNhLmludGVycG9sYXRlT2JqZWN0PXluLGNhLmludGVycG9sYXRlTnVtYmVyPWJuLGNhLmludGVycG9sYXRlU3RyaW5nPXhuO3ZhciBkbD0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csbWw9bmV3IFJlZ0V4cChkbC5zb3VyY2UsImciKTtjYS5pbnRlcnBvbGF0ZT1fbixjYS5pbnRlcnBvbGF0b3JzPVtmdW5jdGlvbih0LGUpe3ZhciByPXR5cGVvZiBlO3JldHVybigic3RyaW5nIj09PXI/c3MuaGFzKGUudG9Mb3dlckNhc2UoKSl8fC9eKCN8cmdiXCh8aHNsXCgpL2kudGVzdChlKT92bjp4bjplIGluc3RhbmNlb2YgbHQ/dm46QXJyYXkuaXNBcnJheShlKT93bjoib2JqZWN0Ij09PXImJmlzTmFOKGUpP3luOmJuKSh0LGUpfV0sY2EuaW50ZXJwb2xhdGVBcnJheT13bjt2YXIgZ2w9ZnVuY3Rpb24oKXtyZXR1cm4geH0sdmw9Y2EubWFwKHtsaW5lYXI6Z2wscG9seTpMbixxdWFkOmZ1bmN0aW9uKCl7cmV0dXJuIFRufSxjdWJpYzpmdW5jdGlvbigpe3JldHVybiBFbn0sc2luOmZ1bmN0aW9uKCl7cmV0dXJuIHpufSxleHA6ZnVuY3Rpb24oKXtyZXR1cm4gSW59LGNpcmNsZTpmdW5jdGlvbigpe3JldHVybiBQbn0sZWxhc3RpYzpDbixiYWNrOlJuLGJvdW5jZTpmdW5jdGlvbigpe3JldHVybiBqbn19KSx5bD1jYS5tYXAoeyJpbiI6eCxvdXQ6a24sImluLW91dCI6QW4sIm91dC1pbiI6ZnVuY3Rpb24odCl7cmV0dXJuIEFuKGtuKHQpKX19KTtjYS5lYXNlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLSIpLHI9ZT49MD90LnNsaWNlKDAsZSk6dCxuPWU+PTA/dC5zbGljZShlKzEpOiJpbiI7cmV0dXJuIHI9dmwuZ2V0KHIpfHxnbCxuPXlsLmdldChuKXx8eCxNbihuKHIuYXBwbHkobnVsbCxoYS5jYWxsKGFyZ3VtZW50cywxKSkpKX0sY2EuaW50ZXJwb2xhdGVIY2w9RG4sY2EuaW50ZXJwb2xhdGVIc2w9T24sY2EuaW50ZXJwb2xhdGVMYWI9Rm4sY2EuaW50ZXJwb2xhdGVSb3VuZD1ObixjYS50cmFuc2Zvcm09ZnVuY3Rpb24odCl7dmFyIGU9cGEuY3JlYXRlRWxlbWVudE5TKGNhLm5zLnByZWZpeC5zdmcsImciKTtyZXR1cm4oY2EudHJhbnNmb3JtPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQpe2Uuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpO3ZhciByPWUudHJhbnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKX1yZXR1cm4gbmV3IEJuKHI/ci5tYXRyaXg6YmwpfSkodCl9LEJuLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ0cmFuc2xhdGUoIit0aGlzLnRyYW5zbGF0ZSsiKXJvdGF0ZSgiK3RoaXMucm90YXRlKyIpc2tld1goIit0aGlzLnNrZXcrIilzY2FsZSgiK3RoaXMuc2NhbGUrIikifTt2YXIgYmw9e2E6MSxiOjAsYzowLGQ6MSxlOjAsZjowfTtjYS5pbnRlcnBvbGF0ZVRyYW5zZm9ybT1abixjYS5sYXlvdXQ9e30sY2EubGF5b3V0LmJ1bmRsZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0tMSxuPXQubGVuZ3RoOysrcjxuOyllLnB1c2goSm4odFtyXSkpO3JldHVybiBlfX0sY2EubGF5b3V0LmNob3JkPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0LHUsaCxmLHAsZD17fSxtPVtdLGc9Y2EucmFuZ2Uobyksdj1bXTtmb3Iocj1bXSxuPVtdLHQ9MCxmPS0xOysrZjxvOyl7Zm9yKHU9MCxwPS0xOysrcDxvOyl1Kz1pW2ZdW3BdO20ucHVzaCh1KSx2LnB1c2goY2EucmFuZ2UobykpLHQrPXV9Zm9yKGEmJmcuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBhKG1bdF0sbVtlXSl9KSxzJiZ2LmZvckVhY2goZnVuY3Rpb24odCxlKXt0LnNvcnQoZnVuY3Rpb24odCxyKXtyZXR1cm4gcyhpW2VdW3RdLGlbZV1bcl0pfSl9KSx0PShWYS1jKm8pL3QsdT0wLGY9LTE7KytmPG87KXtmb3IoaD11LHA9LTE7KytwPG87KXt2YXIgeT1nW2ZdLGI9dlt5XVtwXSx4PWlbeV1bYl0sXz11LHc9dSs9eCp0O2RbeSsiLSIrYl09e2luZGV4Onksc3ViaW5kZXg6YixzdGFydEFuZ2xlOl8sZW5kQW5nbGU6dyx2YWx1ZTp4fX1uW3ldPXtpbmRleDp5LHN0YXJ0QW5nbGU6aCxlbmRBbmdsZTp1LHZhbHVlOm1beV19LHUrPWN9Zm9yKGY9LTE7KytmPG87KWZvcihwPWYtMTsrK3A8bzspe3ZhciBNPWRbZisiLSIrcF0saz1kW3ArIi0iK2ZdOyhNLnZhbHVlfHxrLnZhbHVlKSYmci5wdXNoKE0udmFsdWU8ay52YWx1ZT97c291cmNlOmssdGFyZ2V0Ok19Ontzb3VyY2U6TSx0YXJnZXQ6a30pfWwmJmUoKX1mdW5jdGlvbiBlKCl7ci5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGwoKHQuc291cmNlLnZhbHVlK3QudGFyZ2V0LnZhbHVlKS8yLChlLnNvdXJjZS52YWx1ZStlLnRhcmdldC52YWx1ZSkvMil9KX12YXIgcixuLGksbyxhLHMsbCx1PXt9LGM9MDtyZXR1cm4gdS5tYXRyaXg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89KGk9dCkmJmkubGVuZ3RoLHI9bj1udWxsLHUpOml9LHUucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LHI9bj1udWxsLHUpOmN9LHUuc29ydEdyb3Vwcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LHI9bj1udWxsLHUpOmF9LHUuc29ydFN1Ymdyb3Vwcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LHI9bnVsbCx1KTpzfSx1LnNvcnRDaG9yZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dCxyJiZlKCksdSk6bH0sdS5jaG9yZHM9ZnVuY3Rpb24oKXtyZXR1cm4gcnx8dCgpLHJ9LHUuZ3JvdXBzPWZ1bmN0aW9uKCl7cmV0dXJuIG58fHQoKSxufSx1fSxjYS5sYXlvdXQuZm9yY2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiBmdW5jdGlvbihlLHIsbixpKXtpZihlLnBvaW50IT09dCl7dmFyIG89ZS5jeC10LngsYT1lLmN5LXQueSxzPWktcixsPW8qbythKmE7aWYobD5zKnMvdil7aWYobT5sKXt2YXIgdT1lLmNoYXJnZS9sO3QucHgtPW8qdSx0LnB5LT1hKnV9cmV0dXJuITB9aWYoZS5wb2ludCYmbCYmbT5sKXt2YXIgdT1lLnBvaW50Q2hhcmdlL2w7dC5weC09byp1LHQucHktPWEqdX19cmV0dXJuIWUuY2hhcmdlfX1mdW5jdGlvbiBlKHQpe3QucHg9Y2EuZXZlbnQueCx0LnB5PWNhLmV2ZW50LnksbC5yZXN1bWUoKX12YXIgcixuLGksbyxhLHMsbD17fSx1PWNhLmRpc3BhdGNoKCJzdGFydCIsInRpY2siLCJlbmQiKSxjPVsxLDFdLGg9LjksZj14bCxwPV9sLGQ9LTMwLG09d2wsZz0uMSx2PS42NCx5PVtdLGI9W107cmV0dXJuIGwudGljaz1mdW5jdGlvbigpe2lmKChpKj0uOTkpPC4wMDUpcmV0dXJuIHI9bnVsbCx1LmVuZCh7dHlwZToiZW5kIixhbHBoYTppPTB9KSwhMDt2YXIgZSxuLGwsZixwLG0sdix4LF8sdz15Lmxlbmd0aCxNPWIubGVuZ3RoO2ZvcihuPTA7TT5uOysrbilsPWJbbl0sZj1sLnNvdXJjZSxwPWwudGFyZ2V0LHg9cC54LWYueCxfPXAueS1mLnksKG09eCp4K18qXykmJihtPWkqYVtuXSooKG09TWF0aC5zcXJ0KG0pKS1vW25dKS9tLHgqPW0sXyo9bSxwLngtPXgqKHY9Zi53ZWlnaHQrcC53ZWlnaHQ/Zi53ZWlnaHQvKGYud2VpZ2h0K3Aud2VpZ2h0KTouNSkscC55LT1fKnYsZi54Kz14Kih2PTEtdiksZi55Kz1fKnYpO2lmKCh2PWkqZykmJih4PWNbMF0vMixfPWNbMV0vMixuPS0xLHYpKWZvcig7KytuPHc7KWw9eVtuXSxsLngrPSh4LWwueCkqdixsLnkrPShfLWwueSkqdjtpZihkKWZvcihvaShlPWNhLmdlb20ucXVhZHRyZWUoeSksaSxzKSxuPS0xOysrbjx3OykobD15W25dKS5maXhlZHx8ZS52aXNpdCh0KGwpKTtmb3Iobj0tMTsrK248dzspbD15W25dLGwuZml4ZWQ/KGwueD1sLnB4LGwueT1sLnB5KToobC54LT0obC5weC0obC5weD1sLngpKSpoLGwueS09KGwucHktKGwucHk9bC55KSkqaCk7dS50aWNrKHt0eXBlOiJ0aWNrIixhbHBoYTppfSl9LGwubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dCxsKTp5fSxsLmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPXQsbCk6Yn0sbC5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsbCk6Y30sbC5saW5rRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDordCxsKTpmfSxsLmRpc3RhbmNlPWwubGlua0Rpc3RhbmNlLGwubGlua1N0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6K3QsbCk6cH0sbC5mcmljdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaD0rdCxsKTpofSxsLmNoYXJnZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0iZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LGwpOmR9LGwuY2hhcmdlRGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09dCp0LGwpOk1hdGguc3FydChtKX0sbC5ncmF2aXR5PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhnPSt0LGwpOmd9LGwudGhldGE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHY9dCp0LGwpOk1hdGguc3FydCh2KX0sbC5hbHBoYT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rdCxpP3Q+MD9pPXQ6KHIuYz1udWxsLHIudD1OYU4scj1udWxsLHUuZW5kKHt0eXBlOiJlbmQiLGFscGhhOmk9MH0pKTp0PjAmJih1LnN0YXJ0KHt0eXBlOiJzdGFydCIsYWxwaGE6aT10fSkscj1DdChsLnRpY2spKSxsKTppfSxsLnN0YXJ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LG4pe2lmKCFyKXtmb3Iocj1uZXcgQXJyYXkoaSksbD0wO2k+bDsrK2wpcltsXT1bXTtmb3IobD0wO3U+bDsrK2wpe3ZhciBvPWJbbF07cltvLnNvdXJjZS5pbmRleF0ucHVzaChvLnRhcmdldCkscltvLnRhcmdldC5pbmRleF0ucHVzaChvLnNvdXJjZSl9fWZvcih2YXIgYSxzPXJbZV0sbD0tMSxjPXMubGVuZ3RoOysrbDxjOylpZighaXNOYU4oYT1zW2xdW3RdKSlyZXR1cm4gYTtyZXR1cm4gTWF0aC5yYW5kb20oKSpufXZhciBlLHIsbixpPXkubGVuZ3RoLHU9Yi5sZW5ndGgsaD1jWzBdLG09Y1sxXTtmb3IoZT0wO2k+ZTsrK2UpKG49eVtlXSkuaW5kZXg9ZSxuLndlaWdodD0wO2ZvcihlPTA7dT5lOysrZSluPWJbZV0sIm51bWJlciI9PXR5cGVvZiBuLnNvdXJjZSYmKG4uc291cmNlPXlbbi5zb3VyY2VdKSwibnVtYmVyIj09dHlwZW9mIG4udGFyZ2V0JiYobi50YXJnZXQ9eVtuLnRhcmdldF0pLCsrbi5zb3VyY2Uud2VpZ2h0LCsrbi50YXJnZXQud2VpZ2h0O2ZvcihlPTA7aT5lOysrZSluPXlbZV0saXNOYU4obi54KSYmKG4ueD10KCJ4IixoKSksaXNOYU4obi55KSYmKG4ueT10KCJ5IixtKSksaXNOYU4obi5weCkmJihuLnB4PW4ueCksaXNOYU4obi5weSkmJihuLnB5PW4ueSk7aWYobz1bXSwiZnVuY3Rpb24iPT10eXBlb2YgZilmb3IoZT0wO3U+ZTsrK2Upb1tlXT0rZi5jYWxsKHRoaXMsYltlXSxlKTtlbHNlIGZvcihlPTA7dT5lOysrZSlvW2VdPWY7aWYoYT1bXSwiZnVuY3Rpb24iPT10eXBlb2YgcClmb3IoZT0wO3U+ZTsrK2UpYVtlXT0rcC5jYWxsKHRoaXMsYltlXSxlKTtlbHNlIGZvcihlPTA7dT5lOysrZSlhW2VdPXA7aWYocz1bXSwiZnVuY3Rpb24iPT10eXBlb2YgZClmb3IoZT0wO2k+ZTsrK2Upc1tlXT0rZC5jYWxsKHRoaXMseVtlXSxlKTtlbHNlIGZvcihlPTA7aT5lOysrZSlzW2VdPWQ7cmV0dXJuIGwucmVzdW1lKCl9LGwucmVzdW1lPWZ1bmN0aW9uKCl7cmV0dXJuIGwuYWxwaGEoLjEpfSxsLnN0b3A9ZnVuY3Rpb24oKXtyZXR1cm4gbC5hbHBoYSgwKX0sbC5kcmFnPWZ1bmN0aW9uKCl7cmV0dXJuIG58fChuPWNhLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oeCkub24oImRyYWdzdGFydC5mb3JjZSIsZWkpLm9uKCJkcmFnLmZvcmNlIixlKS5vbigiZHJhZ2VuZC5mb3JjZSIscmkpKSxhcmd1bWVudHMubGVuZ3RoP3ZvaWQgdGhpcy5vbigibW91c2VvdmVyLmZvcmNlIixuaSkub24oIm1vdXNlb3V0LmZvcmNlIixpaSkuY2FsbChuKTpufSxjYS5yZWJpbmQobCx1LCJvbiIpfTt2YXIgeGw9MjAsX2w9MSx3bD0xLzA7Y2EubGF5b3V0LmhpZXJhcmNoeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoaSl7dmFyIG8sYT1baV0scz1bXTtmb3IoaS5kZXB0aD0wO251bGwhPShvPWEucG9wKCkpOylpZihzLnB1c2gobyksKHU9ci5jYWxsKHQsbyxvLmRlcHRoKSkmJihsPXUubGVuZ3RoKSl7Zm9yKHZhciBsLHUsYzstLWw+PTA7KWEucHVzaChjPXVbbF0pLGMucGFyZW50PW8sYy5kZXB0aD1vLmRlcHRoKzE7biYmKG8udmFsdWU9MCksby5jaGlsZHJlbj11fWVsc2UgbiYmKG8udmFsdWU9K24uY2FsbCh0LG8sby5kZXB0aCl8fDApLGRlbGV0ZSBvLmNoaWxkcmVuO3JldHVybiBsaShpLGZ1bmN0aW9uKHQpe3ZhciByLGk7ZSYmKHI9dC5jaGlsZHJlbikmJnIuc29ydChlKSxuJiYoaT10LnBhcmVudCkmJihpLnZhbHVlKz10LnZhbHVlKX0pLHN9dmFyIGU9aGkscj11aSxuPWNpO3JldHVybiB0LnNvcnQ9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9cix0KTplfSx0LmNoaWxkcmVuPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWUsdCk6cn0sdC52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLHQpOm59LHQucmV2YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gbiYmKHNpKGUsZnVuY3Rpb24odCl7dC5jaGlsZHJlbiYmKHQudmFsdWU9MCl9KSxsaShlLGZ1bmN0aW9uKGUpe3ZhciByO2UuY2hpbGRyZW58fChlLnZhbHVlPStuLmNhbGwodCxlLGUuZGVwdGgpfHwwKSwocj1lLnBhcmVudCkmJihyLnZhbHVlKz1lLnZhbHVlKX0pKSxlfSx0fSxjYS5sYXlvdXQucGFydGl0aW9uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgbz1lLmNoaWxkcmVuO2lmKGUueD1yLGUueT1lLmRlcHRoKmksZS5keD1uLGUuZHk9aSxvJiYoYT1vLmxlbmd0aCkpe3ZhciBhLHMsbCx1PS0xO2ZvcihuPWUudmFsdWU/bi9lLnZhbHVlOjA7Kyt1PGE7KXQocz1vW3VdLHIsbD1zLnZhbHVlKm4saSkscis9bH19ZnVuY3Rpb24gZSh0KXt2YXIgcj10LmNoaWxkcmVuLG49MDtpZihyJiYoaT1yLmxlbmd0aCkpZm9yKHZhciBpLG89LTE7KytvPGk7KW49TWF0aC5tYXgobixlKHJbb10pKTtyZXR1cm4gMStufWZ1bmN0aW9uIHIocixvKXt2YXIgYT1uLmNhbGwodGhpcyxyLG8pO3JldHVybiB0KGFbMF0sMCxpWzBdLGlbMV0vZShhWzBdKSksYX12YXIgbj1jYS5sYXlvdXQuaGllcmFyY2h5KCksaT1bMSwxXTtyZXR1cm4gci5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQscik6aX0sYWkocixuKX0sY2EubGF5b3V0LnBpZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoYSl7dmFyIHMsbD1hLmxlbmd0aCx1PWEubWFwKGZ1bmN0aW9uKHIsbil7cmV0dXJuK2UuY2FsbCh0LHIsbil9KSxjPSsoImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6biksaD0oImZ1bmN0aW9uIj09dHlwZW9mIGk/aS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6aSktYyxmPU1hdGgubWluKE1hdGguYWJzKGgpL2wsKygiZnVuY3Rpb24iPT10eXBlb2Ygbz9vLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpvKSkscD1mKigwPmg/LTE6MSksZD1jYS5zdW0odSksbT1kPyhoLWwqcCkvZDowLGc9Y2EucmFuZ2UobCksdj1bXTtyZXR1cm4gbnVsbCE9ciYmZy5zb3J0KHI9PT1NbD9mdW5jdGlvbih0LGUpe3JldHVybiB1W2VdLXVbdF19OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoYVt0XSxhW2VdKX0pLGcuZm9yRWFjaChmdW5jdGlvbih0KXt2W3RdPXtkYXRhOmFbdF0sdmFsdWU6cz11W3RdLHN0YXJ0QW5nbGU6YyxlbmRBbmdsZTpjKz1zKm0rcCxwYWRBbmdsZTpmfX0pLHZ9dmFyIGU9TnVtYmVyLHI9TWwsbj0wLGk9VmEsbz0wO3JldHVybiB0LnZhbHVlPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXIsdCk6ZX0sdC5zb3J0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWUsdCk6cn0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWUsdCk6bn0sdC5lbmRBbmdsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1lLHQpOml9LHQucGFkQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ZSx0KTpvfSx0fTt2YXIgTWw9e307Y2EubGF5b3V0LnN0YWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChzLGwpe2lmKCEoZj1zLmxlbmd0aCkpcmV0dXJuIHM7dmFyIHU9cy5tYXAoZnVuY3Rpb24ocixuKXtyZXR1cm4gZS5jYWxsKHQscixuKX0pLGM9dS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUscil7cmV0dXJuW28uY2FsbCh0LGUsciksYS5jYWxsKHQsZSxyKV19KX0pLGg9ci5jYWxsKHQsYyxsKTt1PWNhLnBlcm11dGUodSxoKSxjPWNhLnBlcm11dGUoYyxoKTt2YXIgZixwLGQsbSxnPW4uY2FsbCh0LGMsbCksdj11WzBdLmxlbmd0aDtmb3IoZD0wO3Y+ZDsrK2QpZm9yKGkuY2FsbCh0LHVbMF1bZF0sbT1nW2RdLGNbMF1bZF1bMV0pLHA9MTtmPnA7KytwKWkuY2FsbCh0LHVbcF1bZF0sbSs9Y1twLTFdW2RdWzFdLGNbcF1bZF1bMV0pO3JldHVybiBzfXZhciBlPXgscj1naSxuPXZpLGk9bWksbz1waSxhPWRpO3JldHVybiB0LnZhbHVlcz1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1yLHQpOmV9LHQub3JkZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTprbC5nZXQoZSl8fGdpLHQpOnJ9LHQub2Zmc2V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6QWwuZ2V0KGUpfHx2aSx0KTpufSx0Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ZSx0KTpvfSx0Lnk9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ZSx0KTphfSx0Lm91dD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1lLHQpOml9LHR9O3ZhciBrbD1jYS5tYXAoeyJpbnNpZGUtb3V0IjpmdW5jdGlvbih0KXt2YXIgZSxyLG49dC5sZW5ndGgsaT10Lm1hcCh5aSksbz10Lm1hcChiaSksYT1jYS5yYW5nZShuKS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGlbdF0taVtlXX0pLHM9MCxsPTAsdT1bXSxjPVtdO2ZvcihlPTA7bj5lOysrZSlyPWFbZV0sbD5zPyhzKz1vW3JdLHUucHVzaChyKSk6KGwrPW9bcl0sYy5wdXNoKHIpKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KHUpfSxyZXZlcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBjYS5yYW5nZSh0Lmxlbmd0aCkucmV2ZXJzZSgpfSwiZGVmYXVsdCI6Z2l9KSxBbD1jYS5tYXAoe3NpbGhvdWV0dGU6ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9dC5sZW5ndGgsbz10WzBdLmxlbmd0aCxhPVtdLHM9MCxsPVtdO2ZvcihyPTA7bz5yOysrcil7Zm9yKGU9MCxuPTA7aT5lO2UrKyluKz10W2VdW3JdWzFdO24+cyYmKHM9biksYS5wdXNoKG4pfWZvcihyPTA7bz5yOysrcilsW3JdPShzLWFbcl0pLzI7cmV0dXJuIGx9LHdpZ2dsZTpmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxvLGEscyxsLHUsYz10Lmxlbmd0aCxoPXRbMF0sZj1oLmxlbmd0aCxwPVtdO2ZvcihwWzBdPWw9dT0wLHI9MTtmPnI7KytyKXtmb3IoZT0wLGk9MDtjPmU7KytlKWkrPXRbZV1bcl1bMV07Zm9yKGU9MCxvPTAscz1oW3JdWzBdLWhbci0xXVswXTtjPmU7KytlKXtmb3Iobj0wLGE9KHRbZV1bcl1bMV0tdFtlXVtyLTFdWzFdKS8oMipzKTtlPm47KytuKWErPSh0W25dW3JdWzFdLXRbbl1bci0xXVsxXSkvcztvKz1hKnRbZV1bcl1bMV19cFtyXT1sLT1pP28vaSpzOjAsdT5sJiYodT1sKX1mb3Iocj0wO2Y+cjsrK3IpcFtyXS09dTtyZXR1cm4gcH0sZXhwYW5kOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPXQubGVuZ3RoLG89dFswXS5sZW5ndGgsYT0xL2kscz1bXTtmb3Iocj0wO28+cjsrK3Ipe2ZvcihlPTAsbj0wO2k+ZTtlKyspbis9dFtlXVtyXVsxXTtpZihuKWZvcihlPTA7aT5lO2UrKyl0W2VdW3JdWzFdLz1uO2Vsc2UgZm9yKGU9MDtpPmU7ZSsrKXRbZV1bcl1bMV09YX1mb3Iocj0wO28+cjsrK3Ipc1tyXT0wO3JldHVybiBzfSx6ZXJvOnZpfSk7Y2EubGF5b3V0Lmhpc3RvZ3JhbT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxvKXtmb3IodmFyIGEscyxsPVtdLHU9dC5tYXAocix0aGlzKSxjPW4uY2FsbCh0aGlzLHUsbyksaD1pLmNhbGwodGhpcyxjLHUsbyksbz0tMSxmPXUubGVuZ3RoLHA9aC5sZW5ndGgtMSxkPWU/MToxL2Y7KytvPHA7KWE9bFtvXT1bXSxhLmR4PWhbbysxXS0oYS54PWhbb10pLGEueT0wO2lmKHA+MClmb3Iobz0tMTsrK288Zjspcz11W29dLHM+PWNbMF0mJnM8PWNbMV0mJihhPWxbY2EuYmlzZWN0KGgscywxLHApLTFdLGEueSs9ZCxhLnB1c2godFtvXSkpO3JldHVybiBsfXZhciBlPSEwLHI9TnVtYmVyLG49TWksaT1faTtyZXR1cm4gdC52YWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1lLHQpOnJ9LHQucmFuZ2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49U3QoZSksdCk6bn0sdC5iaW5zPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJudW1iZXIiPT10eXBlb2YgZT9mdW5jdGlvbih0KXtyZXR1cm4gd2kodCxlKX06U3QoZSksdCk6aX0sdC5mcmVxdWVuY3k9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ISFyLHQpOmV9LHR9LGNhLmxheW91dC5wYWNrPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LG8pe3ZhciBhPXIuY2FsbCh0aGlzLHQsbykscz1hWzBdLGw9aVswXSx1PWlbMV0sYz1udWxsPT1lP01hdGguc3FydDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9O2lmKHMueD1zLnk9MCxsaShzLGZ1bmN0aW9uKHQpe3Qucj0rYyh0LnZhbHVlKX0pLGxpKHMsU2kpLG4pe3ZhciBoPW4qKGU/MTpNYXRoLm1heCgyKnMuci9sLDIqcy5yL3UpKS8yO2xpKHMsZnVuY3Rpb24odCl7dC5yKz1ofSksbGkocyxTaSksbGkocyxmdW5jdGlvbih0KXt0LnItPWh9KX1yZXR1cm4gSWkocyxsLzIsdS8yLGU/MToxL01hdGgubWF4KDIqcy5yL2wsMipzLnIvdSkpLGF9dmFyIGUscj1jYS5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChraSksbj0wLGk9WzEsMV07cmV0dXJuIHQuc2l6ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1lLHQpOml9LHQucmFkaXVzPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPW51bGw9PXJ8fCJmdW5jdGlvbiI9PXR5cGVvZiByP3I6K3IsdCk6ZX0sdC5wYWRkaW5nPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPStlLHQpOm59LGFpKHQscil9LGNhLmxheW91dC50cmVlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkpe3ZhciBjPWEuY2FsbCh0aGlzLHQsaSksaD1jWzBdLGY9ZShoKTtpZihsaShmLHIpLGYucGFyZW50Lm09LWYueixzaShmLG4pLHUpc2koaCxvKTtlbHNle3ZhciBwPWgsZD1oLG09aDtzaShoLGZ1bmN0aW9uKHQpe3QueDxwLngmJihwPXQpLHQueD5kLngmJihkPXQpLHQuZGVwdGg+bS5kZXB0aCYmKG09dCl9KTt2YXIgZz1zKHAsZCkvMi1wLngsdj1sWzBdLyhkLngrcyhkLHApLzIrZykseT1sWzFdLyhtLmRlcHRofHwxKTtzaShoLGZ1bmN0aW9uKHQpe3QueD0odC54K2cpKnYsdC55PXQuZGVwdGgqeX0pfXJldHVybiBjfWZ1bmN0aW9uIGUodCl7Zm9yKHZhciBlLHI9e0E6bnVsbCxjaGlsZHJlbjpbdF19LG49W3JdO251bGwhPShlPW4ucG9wKCkpOylmb3IodmFyIGksbz1lLmNoaWxkcmVuLGE9MCxzPW8ubGVuZ3RoO3M+YTsrK2Epbi5wdXNoKChvW2FdPWk9e186b1thXSxwYXJlbnQ6ZSxjaGlsZHJlbjooaT1vW2FdLmNoaWxkcmVuKSYmaS5zbGljZSgpfHxbXSxBOm51bGwsYTpudWxsLHo6MCxtOjAsYzowLHM6MCx0Om51bGwsaTphfSkuYT1pKTtyZXR1cm4gci5jaGlsZHJlblswXX1mdW5jdGlvbiByKHQpe3ZhciBlPXQuY2hpbGRyZW4scj10LnBhcmVudC5jaGlsZHJlbixuPXQuaT9yW3QuaS0xXTpudWxsO2lmKGUubGVuZ3RoKXtPaSh0KTt2YXIgbz0oZVswXS56K2VbZS5sZW5ndGgtMV0ueikvMjtuPyh0Lno9bi56K3ModC5fLG4uXyksdC5tPXQuei1vKTp0Lno9b31lbHNlIG4mJih0Lno9bi56K3ModC5fLG4uXykpO3QucGFyZW50LkE9aSh0LG4sdC5wYXJlbnQuQXx8clswXSl9ZnVuY3Rpb24gbih0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gaSh0LGUscil7aWYoZSl7Zm9yKHZhciBuLGk9dCxvPXQsYT1lLGw9aS5wYXJlbnQuY2hpbGRyZW5bMF0sdT1pLm0sYz1vLm0saD1hLm0sZj1sLm07YT1qaShhKSxpPVJpKGkpLGEmJmk7KWw9UmkobCksbz1qaShvKSxvLmE9dCxuPWEueitoLWkuei11K3MoYS5fLGkuXyksbj4wJiYoRGkoRmkoYSx0LHIpLHQsbiksdSs9bixjKz1uKSxoKz1hLm0sdSs9aS5tLGYrPWwubSxjKz1vLm07YSYmIWppKG8pJiYoby50PWEsby5tKz1oLWMpLGkmJiFSaShsKSYmKGwudD1pLGwubSs9dS1mLHI9dCl9cmV0dXJuIHJ9ZnVuY3Rpb24gbyh0KXt0LngqPWxbMF0sdC55PXQuZGVwdGgqbFsxXX12YXIgYT1jYS5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChudWxsKS52YWx1ZShudWxsKSxzPUNpLGw9WzEsMV0sdT1udWxsO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9ZSx0KTpzfSx0LnNpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9bnVsbD09KGw9ZSk/bzpudWxsLHQpOnU/bnVsbDpsfSx0Lm5vZGVTaXplPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PW51bGw9PShsPWUpP251bGw6byx0KTp1P2w6bnVsbH0sYWkodCxhKX0sY2EubGF5b3V0LmNsdXN0ZXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsbyl7dmFyIGEscz1lLmNhbGwodGhpcyx0LG8pLGw9c1swXSx1PTA7bGkobCxmdW5jdGlvbih0KXt2YXIgZT10LmNoaWxkcmVuO2UmJmUubGVuZ3RoPyh0Lng9QmkoZSksdC55PU5pKGUpKToodC54PWE/dSs9cih0LGEpOjAsdC55PTAsYT10KX0pO3ZhciBjPVVpKGwpLGg9VmkobCksZj1jLngtcihjLGgpLzIscD1oLngrcihoLGMpLzI7cmV0dXJuIGxpKGwsaT9mdW5jdGlvbih0KXt0Lng9KHQueC1sLngpKm5bMF0sdC55PShsLnktdC55KSpuWzFdfTpmdW5jdGlvbih0KXt0Lng9KHQueC1mKS8ocC1mKSpuWzBdLHQueT0oMS0obC55P3QueS9sLnk6MSkpKm5bMV19KSxzfXZhciBlPWNhLmxheW91dC5oaWVyYXJjaHkoKS5zb3J0KG51bGwpLnZhbHVlKG51bGwpLHI9Q2ksbj1bMSwxXSxpPSExO3JldHVybiB0LnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9ZSx0KTpyfSx0LnNpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09KG49ZSksdCk6aT9udWxsOm59LHQubm9kZVNpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbCE9KG49ZSksdCk6aT9uOm51bGx9LGFpKHQsZSl9LGNhLmxheW91dC50cmVlbWFwPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe2Zvcih2YXIgcixuLGk9LTEsbz10Lmxlbmd0aDsrK2k8bzspbj0ocj10W2ldKS52YWx1ZSooMD5lPzA6ZSksci5hcmVhPWlzTmFOKG4pfHwwPj1uPzA6bn1mdW5jdGlvbiBlKHIpe3ZhciBvPXIuY2hpbGRyZW47aWYobyYmby5sZW5ndGgpe3ZhciBhLHMsbCx1PWgociksYz1bXSxmPW8uc2xpY2UoKSxkPTEvMCxtPSJzbGljZSI9PT1wP3UuZHg6ImRpY2UiPT09cD91LmR5OiJzbGljZS1kaWNlIj09PXA/MSZyLmRlcHRoP3UuZHk6dS5keDpNYXRoLm1pbih1LmR4LHUuZHkpO2Zvcih0KGYsdS5keCp1LmR5L3IudmFsdWUpLGMuYXJlYT0wOyhsPWYubGVuZ3RoKT4wOyljLnB1c2goYT1mW2wtMV0pLGMuYXJlYSs9YS5hcmVhLCJzcXVhcmlmeSIhPT1wfHwocz1uKGMsbSkpPD1kPyhmLnBvcCgpLGQ9cyk6KGMuYXJlYS09Yy5wb3AoKS5hcmVhLGkoYyxtLHUsITEpLG09TWF0aC5taW4odS5keCx1LmR5KSxjLmxlbmd0aD1jLmFyZWE9MCxkPTEvMCk7Yy5sZW5ndGgmJihpKGMsbSx1LCEwKSxjLmxlbmd0aD1jLmFyZWE9MCksby5mb3JFYWNoKGUpfX1mdW5jdGlvbiByKGUpe3ZhciBuPWUuY2hpbGRyZW47aWYobiYmbi5sZW5ndGgpe3ZhciBvLGE9aChlKSxzPW4uc2xpY2UoKSxsPVtdO2Zvcih0KHMsYS5keCphLmR5L2UudmFsdWUpLGwuYXJlYT0wO289cy5wb3AoKTspbC5wdXNoKG8pLGwuYXJlYSs9by5hcmVhLG51bGwhPW8ueiYmKGkobCxvLno/YS5keDphLmR5LGEsIXMubGVuZ3RoKSxsLmxlbmd0aD1sLmFyZWE9MCk7bi5mb3JFYWNoKHIpfX1mdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByLG49dC5hcmVhLGk9MCxvPTEvMCxhPS0xLHM9dC5sZW5ndGg7KythPHM7KShyPXRbYV0uYXJlYSkmJihvPnImJihvPXIpLHI+aSYmKGk9cikpO3JldHVybiBuKj1uLGUqPWUsbj9NYXRoLm1heChlKmkqZC9uLG4vKGUqbypkKSk6MS8wfWZ1bmN0aW9uIGkodCxlLHIsbil7dmFyIGksbz0tMSxhPXQubGVuZ3RoLHM9ci54LHU9ci55LGM9ZT9sKHQuYXJlYS9lKTowO2lmKGU9PXIuZHgpe2Zvcigobnx8Yz5yLmR5KSYmKGM9ci5keSk7KytvPGE7KWk9dFtvXSxpLng9cyxpLnk9dSxpLmR5PWMscys9aS5keD1NYXRoLm1pbihyLngrci5keC1zLGM/bChpLmFyZWEvYyk6MCk7aS56PSEwLGkuZHgrPXIueCtyLmR4LXMsci55Kz1jLHIuZHktPWN9ZWxzZXtmb3IoKG58fGM+ci5keCkmJihjPXIuZHgpOysrbzxhOylpPXRbb10saS54PXMsaS55PXUsaS5keD1jLHUrPWkuZHk9TWF0aC5taW4oci55K3IuZHktdSxjP2woaS5hcmVhL2MpOjApO2kuej0hMSxpLmR5Kz1yLnkrci5keS11LHIueCs9YyxyLmR4LT1jfX1mdW5jdGlvbiBvKG4pe3ZhciBpPWF8fHMobiksbz1pWzBdO3JldHVybiBvLng9by55PTAsby52YWx1ZT8oby5keD11WzBdLG8uZHk9dVsxXSk6by5keD1vLmR5PTAsYSYmcy5yZXZhbHVlKG8pLHQoW29dLG8uZHgqby5keS9vLnZhbHVlKSwoYT9yOmUpKG8pLGYmJihhPWkpLGl9dmFyIGEscz1jYS5sYXlvdXQuaGllcmFyY2h5KCksbD1NYXRoLnJvdW5kLHU9WzEsMV0sYz1udWxsLGg9cWksZj0hMSxwPSJzcXVhcmlmeSIsZD0uNSooMStNYXRoLnNxcnQoNSkpO3JldHVybiBvLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxvKTp1fSxvLnBhZGRpbmc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgcj10LmNhbGwobyxlLGUuZGVwdGgpO3JldHVybiBudWxsPT1yP3FpKGUpOkdpKGUsIm51bWJlciI9PXR5cGVvZiByP1tyLHIscixyXTpyKX1mdW5jdGlvbiByKGUpe3JldHVybiBHaShlLHQpfWlmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBjO3ZhciBuO3JldHVybiBoPW51bGw9PShjPXQpP3FpOiJmdW5jdGlvbiI9PShuPXR5cGVvZiB0KT9lOiJudW1iZXIiPT09bj8odD1bdCx0LHQsdF0scik6cixvfSxvLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXQ/TWF0aC5yb3VuZDpOdW1iZXIsbyk6bCE9TnVtYmVyfSxvLnN0aWNreT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10LGE9bnVsbCxvKTpmfSxvLnJhdGlvPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPXQsbyk6ZH0sby5tb2RlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPXQrIiIsbyk6cH0sYWkobyxzKX0sY2EucmFuZG9tPXtub3JtYWw6ZnVuY3Rpb24odCxlKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiAyPnImJihlPTEpLDE+ciYmKHQ9MCksZnVuY3Rpb24oKXt2YXIgcixuLGk7ZG8gcj0yKk1hdGgucmFuZG9tKCktMSxuPTIqTWF0aC5yYW5kb20oKS0xLGk9cipyK24qbjt3aGlsZSghaXx8aT4xKTtyZXR1cm4gdCtlKnIqTWF0aC5zcXJ0KC0yKk1hdGgubG9nKGkpL2kpfX0sbG9nTm9ybWFsOmZ1bmN0aW9uKCl7dmFyIHQ9Y2EucmFuZG9tLm5vcm1hbC5hcHBseShjYSxhcmd1bWVudHMpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBNYXRoLmV4cCh0KCkpfX0sYmF0ZXM6ZnVuY3Rpb24odCl7dmFyIGU9Y2EucmFuZG9tLmlyd2luSGFsbCh0KTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSgpL3R9fSxpcndpbkhhbGw6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAscj0wO3Q+cjtyKyspZSs9TWF0aC5yYW5kb20oKTtyZXR1cm4gZX19fSxjYS5zY2FsZT17fTt2YXIgVGw9e2Zsb29yOngsY2VpbDp4fTtjYS5zY2FsZS5saW5lYXI9ZnVuY3Rpb24oKXtyZXR1cm4gS2koWzAsMV0sWzAsMV0sX24sITEpfTt2YXIgRWw9e3M6MSxnOjEscDoxLHI6MSxlOjF9O2NhLnNjYWxlLmxvZz1mdW5jdGlvbigpe3JldHVybiBvbyhjYS5zY2FsZS5saW5lYXIoKS5kb21haW4oWzAsMV0pLDEwLCEwLFsxLDEwXSl9O3ZhciBTbD1jYS5mb3JtYXQoIi4wZSIpLExsPXtmbG9vcjpmdW5jdGlvbih0KXtyZXR1cm4tTWF0aC5jZWlsKC10KX0sY2VpbDpmdW5jdGlvbih0KXtyZXR1cm4tTWF0aC5mbG9vcigtdCl9fTtjYS5zY2FsZS5wb3c9ZnVuY3Rpb24oKXtyZXR1cm4gYW8oY2Euc2NhbGUubGluZWFyKCksMSxbMCwxXSl9LGNhLnNjYWxlLnNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gY2Euc2NhbGUucG93KCkuZXhwb25lbnQoLjUpfSxjYS5zY2FsZS5vcmRpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIGxvKFtdLHt0OiJyYW5nZSIsYTpbW11dfSl9LGNhLnNjYWxlLmNhdGVnb3J5MTA9ZnVuY3Rpb24oKXtyZXR1cm4gY2Euc2NhbGUub3JkaW5hbCgpLnJhbmdlKHpsKX0sY2Euc2NhbGUuY2F0ZWdvcnkyMD1mdW5jdGlvbigpe3JldHVybiBjYS5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoSWwpfSxjYS5zY2FsZS5jYXRlZ29yeTIwYj1mdW5jdGlvbigpe3JldHVybiBjYS5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoUGwpfSxjYS5zY2FsZS5jYXRlZ29yeTIwYz1mdW5jdGlvbigpe3JldHVybiBjYS5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoQ2wpfTt2YXIgemw9WzIwNjIyNjAsMTY3NDQyMDYsMjkyNDU4OCwxNDAzNDcyOCw5NzI1ODg1LDkxOTcxMzEsMTQ5MDczMzAsODM1NTcxMSwxMjM2OTE4NiwxNTU2MTc1XS5tYXAoX3QpLElsPVsyMDYyMjYwLDExNDU0NDQwLDE2NzQ0MjA2LDE2NzU5NjcyLDI5MjQ1ODgsMTAwMTg2OTgsMTQwMzQ3MjgsMTY3NTA3NDIsOTcyNTg4NSwxMjk1NTg2MSw5MTk3MTMxLDEyODg1MTQwLDE0OTA3MzMwLDE2MjM0MTk0LDgzNTU3MTEsMTMwOTI4MDcsMTIzNjkxODYsMTQ0MDg1ODksMTU1NjE3NSwxMDQxMDcyNV0ubWFwKF90KSxQbD1bMzc1MDc3Nyw1Mzk1NjE5LDcwNDA3MTksMTAyNjQyODYsNjUxOTA5Nyw5MjE2NTk0LDExOTE1MTE1LDEzNTU2NjM2LDkyMDI5OTMsMTI0MjY4MDksMTUxODY1MTQsMTUxOTA5MzIsODY2NjE2OSwxMTM1NjQ5MCwxNDA0OTY0MywxNTE3NzM3Miw4MDc3NjgzLDEwODM0MzI0LDEzNTI4NTA5LDE0NTg5NjU0XS5tYXAoX3QpLENsPVszMjQ0NzMzLDcwNTcxMTAsMTA0MDY2MjUsMTMwMzI0MzEsMTUwOTUwNTMsMTY2MTY3NjQsMTY2MjUyNTksMTY2MzQwMTgsMzI1MzA3Niw3NjUyNDcwLDEwNjA3MDAzLDEzMTAxNTA0LDc2OTUyODEsMTAzOTQzMTIsMTIzNjkzNzIsMTQzNDI4OTEsNjUxMzUwNyw5ODY4OTUwLDEyNDM0ODc3LDE0Mjc3MDgxXS5tYXAoX3QpO2NhLnNjYWxlLnF1YW50aWxlPWZ1bmN0aW9uKCl7cmV0dXJuIHVvKFtdLFtdKX0sY2Euc2NhbGUucXVhbnRpemU9ZnVuY3Rpb24oKXtyZXR1cm4gY28oMCwxLFswLDFdKX0sY2Euc2NhbGUudGhyZXNob2xkPWZ1bmN0aW9uKCl7cmV0dXJuIGhvKFsuNV0sWzAsMV0pfSxjYS5zY2FsZS5pZGVudGl0eT1mdW5jdGlvbigpe3JldHVybiBmbyhbMCwxXSl9LGNhLnN2Zz17fSxjYS5zdmcuYXJjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PU1hdGgubWF4KDAsK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx1PU1hdGgubWF4KDAsK24uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxjPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLUdhLGg9cy5hcHBseSh0aGlzLGFyZ3VtZW50cyktR2EsZj1NYXRoLmFicyhoLWMpLHA9Yz5oPzA6MTtpZih0PnUmJihkPXUsdT10LHQ9ZCksZj49cWEpcmV0dXJuIGUodSxwKSsodD9lKHQsMS1wKToiIikrIloiO3ZhciBkLG0sZyx2LHksYix4LF8sdyxNLGssQSxUPTAsRT0wLFM9W107aWYoKHY9KCtsLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MCkvMikmJihnPW89PT1SbD9NYXRoLnNxcnQodCp0K3UqdSk6K28uYXBwbHkodGhpcyxhcmd1bWVudHMpLHB8fChFKj0tMSksdSYmKEU9bnQoZy91Kk1hdGguc2luKHYpKSksdCYmKFQ9bnQoZy90Kk1hdGguc2luKHYpKSkpLHUpe3k9dSpNYXRoLmNvcyhjK0UpLGI9dSpNYXRoLnNpbihjK0UpLHg9dSpNYXRoLmNvcyhoLUUpLF89dSpNYXRoLnNpbihoLUUpO3ZhciBMPU1hdGguYWJzKGgtYy0yKkUpPD1VYT8wOjE7aWYoRSYmeG8oeSxiLHgsXyk9PT1wXkwpe3ZhciB6PShjK2gpLzI7eT11Kk1hdGguY29zKHopLGI9dSpNYXRoLnNpbih6KSx4PV89bnVsbH19ZWxzZSB5PWI9MDtpZih0KXt3PXQqTWF0aC5jb3MoaC1UKSxNPXQqTWF0aC5zaW4oaC1UKSxrPXQqTWF0aC5jb3MoYytUKSxBPXQqTWF0aC5zaW4oYytUKTt2YXIgST1NYXRoLmFicyhjLWgrMipUKTw9VWE/MDoxO2lmKFQmJnhvKHcsTSxrLEEpPT09MS1wXkkpe3ZhciBQPShjK2gpLzI7dz10Kk1hdGguY29zKFApLE09dCpNYXRoLnNpbihQKSxrPUE9bnVsbH19ZWxzZSB3PU09MDtpZihmPk5hJiYoZD1NYXRoLm1pbihNYXRoLmFicyh1LXQpLzIsK2kuYXBwbHkodGhpcyxhcmd1bWVudHMpKSk+LjAwMSl7bT11PnRecD8wOjE7dmFyIEM9ZCxSPWQ7aWYoVWE+Zil7dmFyIGo9bnVsbD09az9bdyxNXTpudWxsPT14P1t5LGJdOmpyKFt5LGJdLFtrLEFdLFt4LF9dLFt3LE1dKSxEPXktalswXSxPPWItalsxXSxGPXgtalswXSxOPV8talsxXSxCPTEvTWF0aC5zaW4oTWF0aC5hY29zKChEKkYrTypOKS8oTWF0aC5zcXJ0KEQqRCtPKk8pKk1hdGguc3FydChGKkYrTipOKSkpLzIpLFU9TWF0aC5zcXJ0KGpbMF0qalswXStqWzFdKmpbMV0pO1I9TWF0aC5taW4oZCwodC1VKS8oQi0xKSksQz1NYXRoLm1pbihkLCh1LVUpLyhCKzEpKX1pZihudWxsIT14KXt2YXIgVj1fbyhudWxsPT1rP1t3LE1dOltrLEFdLFt5LGJdLHUsQyxwKSxxPV9vKFt4LF9dLFt3LE1dLHUsQyxwKTtkPT09Qz9TLnB1c2goIk0iLFZbMF0sIkEiLEMsIiwiLEMsIiAwIDAsIixtLCIgIixWWzFdLCJBIix1LCIsIix1LCIgMCAiLDEtcF54byhWWzFdWzBdLFZbMV1bMV0scVsxXVswXSxxWzFdWzFdKSwiLCIscCwiICIscVsxXSwiQSIsQywiLCIsQywiIDAgMCwiLG0sIiAiLHFbMF0pOlMucHVzaCgiTSIsVlswXSwiQSIsQywiLCIsQywiIDAgMSwiLG0sIiAiLHFbMF0pfWVsc2UgUy5wdXNoKCJNIix5LCIsIixiKTtpZihudWxsIT1rKXt2YXIgRz1fbyhbeSxiXSxbayxBXSx0LC1SLHApLEg9X28oW3csTV0sbnVsbD09eD9beSxiXTpbeCxfXSx0LC1SLHApO2Q9PT1SP1MucHVzaCgiTCIsSFswXSwiQSIsUiwiLCIsUiwiIDAgMCwiLG0sIiAiLEhbMV0sIkEiLHQsIiwiLHQsIiAwICIscF54byhIWzFdWzBdLEhbMV1bMV0sR1sxXVswXSxHWzFdWzFdKSwiLCIsMS1wLCIgIixHWzFdLCJBIixSLCIsIixSLCIgMCAwLCIsbSwiICIsR1swXSk6Uy5wdXNoKCJMIixIWzBdLCJBIixSLCIsIixSLCIgMCAwLCIsbSwiICIsR1swXSl9ZWxzZSBTLnB1c2goIkwiLHcsIiwiLE0pfWVsc2UgUy5wdXNoKCJNIix5LCIsIixiKSxudWxsIT14JiZTLnB1c2goIkEiLHUsIiwiLHUsIiAwICIsTCwiLCIscCwiICIseCwiLCIsXyksUy5wdXNoKCJMIix3LCIsIixNKSxudWxsIT1rJiZTLnB1c2goIkEiLHQsIiwiLHQsIiAwICIsSSwiLCIsMS1wLCIgIixrLCIsIixBKTtyZXR1cm4gUy5wdXNoKCJaIiksUy5qb2luKCIiKX1mdW5jdGlvbiBlKHQsZSl7cmV0dXJuIk0wLCIrdCsiQSIrdCsiLCIrdCsiIDAgMSwiK2UrIiAwLCIrLXQrIkEiK3QrIiwiK3QrIiAwIDEsIitlKyIgMCwiK3R9dmFyIHI9bW8sbj1nbyxpPXBvLG89UmwsYT12byxzPXlvLGw9Ym87cmV0dXJuIHQuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9U3QoZSksdCk6cn0sdC5vdXRlclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1TdChlKSx0KTpufSx0LmNvcm5lclJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1TdChlKSx0KTppfSx0LnBhZFJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1lPT1SbD9SbDpTdChlKSx0KTpvfSx0LnN0YXJ0QW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9U3QoZSksdCk6YX0sdC5lbmRBbmdsZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1TdChlKSx0KTpzfSx0LnBhZEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPVN0KGUpLHQpOmx9LHQuY2VudHJvaWQ9ZnVuY3Rpb24oKXt2YXIgdD0oK3IuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArbi5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzIsZT0oK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKyArcy5hcHBseSh0aGlzLGFyZ3VtZW50cykpLzItR2E7cmV0dXJuW01hdGguY29zKGUpKnQsTWF0aC5zaW4oZSkqdF19LHR9O3ZhciBSbD0iYXV0byI7Y2Euc3ZnLmxpbmU9ZnVuY3Rpb24oKXtyZXR1cm4gd28oeCl9O3ZhciBqbD1jYS5tYXAoe2xpbmVhcjpNbywibGluZWFyLWNsb3NlZCI6a28sc3RlcDpBbywic3RlcC1iZWZvcmUiOlRvLCJzdGVwLWFmdGVyIjpFbyxiYXNpczpDbywiYmFzaXMtb3BlbiI6Um8sImJhc2lzLWNsb3NlZCI6am8sYnVuZGxlOkRvLGNhcmRpbmFsOnpvLCJjYXJkaW5hbC1vcGVuIjpTbywiY2FyZGluYWwtY2xvc2VkIjpMbyxtb25vdG9uZTpWb30pO2psLmZvckVhY2goZnVuY3Rpb24odCxlKXtlLmtleT10LGUuY2xvc2VkPS8tY2xvc2VkJC8udGVzdCh0KX0pO3ZhciBEbD1bMCwyLzMsMS8zLDBdLE9sPVswLDEvMywyLzMsMF0sRmw9WzAsMS82LDIvMywxLzZdO2NhLnN2Zy5saW5lLnJhZGlhbD1mdW5jdGlvbigpe3ZhciB0PXdvKHFvKTtyZXR1cm4gdC5yYWRpdXM9dC54LGRlbGV0ZSB0LngsdC5hbmdsZT10LnksZGVsZXRlIHQueSx0fSxUby5yZXZlcnNlPUVvLEVvLnJldmVyc2U9VG8sY2Euc3ZnLmFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gR28oeCl9LGNhLnN2Zy5hcmVhLnJhZGlhbD1mdW5jdGlvbigpe3ZhciB0PUdvKHFvKTtyZXR1cm4gdC5yYWRpdXM9dC54LGRlbGV0ZSB0LngsdC5pbm5lclJhZGl1cz10LngwLGRlbGV0ZSB0LngwLHQub3V0ZXJSYWRpdXM9dC54MSxkZWxldGUgdC54MSx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHQuc3RhcnRBbmdsZT10LnkwLGRlbGV0ZSB0LnkwLHQuZW5kQW5nbGU9dC55MSxkZWxldGUgdC55MSx0fSxjYS5zdmcuY2hvcmQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQscyl7dmFyIGw9ZSh0aGlzLG8sdCxzKSx1PWUodGhpcyxhLHQscyk7cmV0dXJuIk0iK2wucDArbihsLnIsbC5wMSxsLmExLWwuYTApKyhyKGwsdSk/aShsLnIsbC5wMSxsLnIsbC5wMCk6aShsLnIsbC5wMSx1LnIsdS5wMCkrbih1LnIsdS5wMSx1LmExLXUuYTApK2kodS5yLHUucDEsbC5yLGwucDApKSsiWiJ9ZnVuY3Rpb24gZSh0LGUscixuKXt2YXIgaT1lLmNhbGwodCxyLG4pLG89cy5jYWxsKHQsaSxuKSxhPWwuY2FsbCh0LGksbiktR2EsYz11LmNhbGwodCxpLG4pLUdhO3JldHVybntyOm8sYTA6YSxhMTpjLHAwOltvKk1hdGguY29zKGEpLG8qTWF0aC5zaW4oYSldLHAxOltvKk1hdGguY29zKGMpLG8qTWF0aC5zaW4oYyldfX1mdW5jdGlvbiByKHQsZSl7cmV0dXJuIHQuYTA9PWUuYTAmJnQuYTE9PWUuYTF9ZnVuY3Rpb24gbih0LGUscil7cmV0dXJuIkEiK3QrIiwiK3QrIiAwICIrICsocj5VYSkrIiwxICIrZX1mdW5jdGlvbiBpKHQsZSxyLG4pe3JldHVybiJRIDAsMCAiK259dmFyIG89eHIsYT1fcixzPUhvLGw9dm8sdT15bztyZXR1cm4gdC5yYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9U3QoZSksdCk6c30sdC5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89U3QoZSksdCk6b30sdC50YXJnZXQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9U3QoZSksdCk6YX0sdC5zdGFydEFuZ2xlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPVN0KGUpLHQpOmx9LHQuZW5kQW5nbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9U3QoZSksdCk6dX0sdH0sY2Euc3ZnLmRpYWdvbmFsPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkpe3ZhciBvPWUuY2FsbCh0aGlzLHQsaSksYT1yLmNhbGwodGhpcyx0LGkpLHM9KG8ueSthLnkpLzIsbD1bbyx7eDpvLngseTpzfSx7eDphLngseTpzfSxhXTtyZXR1cm4gbD1sLm1hcChuKSwiTSIrbFswXSsiQyIrbFsxXSsiICIrbFsyXSsiICIrbFszXX12YXIgZT14cixyPV9yLG49WG87cmV0dXJuIHQuc291cmNlPWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPVN0KHIpLHQpOmV9LHQudGFyZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVN0KGUpLHQpOnJ9LHQucHJvamVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1lLHQpOm59LHR9LGNhLnN2Zy5kaWFnb25hbC5yYWRpYWw9ZnVuY3Rpb24oKXt2YXIgdD1jYS5zdmcuZGlhZ29uYWwoKSxlPVhvLHI9dC5wcm9qZWN0aW9uO3JldHVybiB0LnByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cihZbyhlPXQpKTplfSx0fSxjYS5zdmcuc3ltYm9sPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LG4pe3JldHVybihObC5nZXQoZS5jYWxsKHRoaXMsdCxuKSl8fFFvKShyLmNhbGwodGhpcyx0LG4pKX12YXIgZT1abyxyPVdvO3JldHVybiB0LnR5cGU9ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9U3QociksdCk6ZX0sdC5zaXplPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPVN0KGUpLHQpOnJ9LHR9O3ZhciBObD1jYS5tYXAoe2NpcmNsZTpRbyxjcm9zczpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC81KS8yO3JldHVybiJNIistMyplKyIsIistZSsiSCIrLWUrIlYiKy0zKmUrIkgiK2UrIlYiKy1lKyJIIiszKmUrIlYiK2UrIkgiK2UrIlYiKzMqZSsiSCIrLWUrIlYiK2UrIkgiKy0zKmUrIloifSxkaWFtb25kOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0LygyKlVsKSkscj1lKlVsO3JldHVybiJNMCwiKy1lKyJMIityKyIsMCAwLCIrZSsiICIrLXIrIiwwWiJ9LHNxdWFyZTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodCkvMjtyZXR1cm4iTSIrLWUrIiwiKy1lKyJMIitlKyIsIistZSsiICIrZSsiLCIrZSsiICIrLWUrIiwiK2UrIloifSwidHJpYW5nbGUtZG93biI6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zcXJ0KHQvQmwpLHI9ZSpCbC8yO3JldHVybiJNMCwiK3IrIkwiK2UrIiwiKy1yKyIgIistZSsiLCIrLXIrIloifSwidHJpYW5nbGUtdXAiOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0L0JsKSxyPWUqQmwvMjtyZXR1cm4iTTAsIistcisiTCIrZSsiLCIrcisiICIrLWUrIiwiK3IrIloifX0pO2NhLnN2Zy5zeW1ib2xUeXBlcz1ObC5rZXlzKCk7dmFyIEJsPU1hdGguc3FydCgzKSxVbD1NYXRoLnRhbigzMCpIYSk7SWEudHJhbnNpdGlvbj1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuPVZsfHwrK1hsLGk9ZWEodCksbz1bXSxhPXFsfHx7dGltZTpEYXRlLm5vdygpLGVhc2U6U24sZGVsYXk6MCxkdXJhdGlvbjoyNTB9LHM9LTEsbD10aGlzLmxlbmd0aDsrK3M8bDspe28ucHVzaChlPVtdKTtmb3IodmFyIHU9dGhpc1tzXSxjPS0xLGg9dS5sZW5ndGg7KytjPGg7KShyPXVbY10pJiZyYShyLGMsaSxuLGEpLGUucHVzaChyKX1yZXR1cm4gSm8obyxpLG4pfSxJYS5pbnRlcnJ1cHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWFjaChudWxsPT10P0dsOktvKGVhKHQpKSl9O3ZhciBWbCxxbCxHbD1LbyhlYSgpKSxIbD1bXSxYbD0wO0hsLmNhbGw9SWEuY2FsbCxIbC5lbXB0eT1JYS5lbXB0eSxIbC5ub2RlPUlhLm5vZGUsSGwuc2l6ZT1JYS5zaXplLGNhLnRyYW5zaXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmdC50cmFuc2l0aW9uP1ZsP3QudHJhbnNpdGlvbihlKTp0OmNhLnNlbGVjdGlvbigpLnRyYW5zaXRpb24odCl9LGNhLnRyYW5zaXRpb24ucHJvdG90eXBlPUhsLEhsLnNlbGVjdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4saT10aGlzLmlkLG89dGhpcy5uYW1lc3BhY2UsYT1bXTt0PXoodCk7Zm9yKHZhciBzPS0xLGw9dGhpcy5sZW5ndGg7KytzPGw7KXthLnB1c2goZT1bXSk7Zm9yKHZhciB1PXRoaXNbc10sYz0tMSxoPXUubGVuZ3RoOysrYzxoOykobj11W2NdKSYmKHI9dC5jYWxsKG4sbi5fX2RhdGFfXyxjLHMpKT8oIl9fZGF0YV9fImluIG4mJihyLl9fZGF0YV9fPW4uX19kYXRhX18pLHJhKHIsYyxvLGksbltvXVtpXSksZS5wdXNoKHIpKTplLnB1c2gobnVsbCl9cmV0dXJuIEpvKGEsbyxpKX0sSGwuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLG8sYT10aGlzLmlkLHM9dGhpcy5uYW1lc3BhY2UsbD1bXTt0PUkodCk7Zm9yKHZhciB1PS0xLGM9dGhpcy5sZW5ndGg7Kyt1PGM7KWZvcih2YXIgaD10aGlzW3VdLGY9LTEscD1oLmxlbmd0aDsrK2Y8cDspaWYobj1oW2ZdKXtvPW5bc11bYV0scj10LmNhbGwobixuLl9fZGF0YV9fLGYsdSksbC5wdXNoKGU9W10pO2Zvcih2YXIgZD0tMSxtPXIubGVuZ3RoOysrZDxtOykoaT1yW2RdKSYmcmEoaSxkLHMsYSxvKSxlLnB1c2goaSl9cmV0dXJuIEpvKGwscyxhKX0sSGwuZmlsdGVyPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPVtdOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1xKHQpKTtmb3IodmFyIG89MCxhPXRoaXMubGVuZ3RoO2E+bztvKyspe2kucHVzaChlPVtdKTtmb3IodmFyIHI9dGhpc1tvXSxzPTAsbD1yLmxlbmd0aDtsPnM7cysrKShuPXJbc10pJiZ0LmNhbGwobixuLl9fZGF0YV9fLHMsbykmJmUucHVzaChuKX1yZXR1cm4gSm8oaSx0aGlzLm5hbWVzcGFjZSx0aGlzLmlkKX0sSGwudHdlZW49ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmlkLG49dGhpcy5uYW1lc3BhY2U7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj90aGlzLm5vZGUoKVtuXVtyXS50d2Vlbi5nZXQodCk6SCh0aGlzLG51bGw9PWU/ZnVuY3Rpb24oZSl7ZVtuXVtyXS50d2Vlbi5yZW1vdmUodCl9OmZ1bmN0aW9uKGkpe2lbbl1bcl0udHdlZW4uc2V0KHQsZSl9KX0sSGwuYXR0cj1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIoKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShzKX1mdW5jdGlvbiBuKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhzLnNwYWNlLHMubG9jYWwpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIG51bGw9PXQ/cjoodCs9IiIsZnVuY3Rpb24oKXt2YXIgZSxyPXRoaXMuZ2V0QXR0cmlidXRlKHMpO3JldHVybiByIT09dCYmKGU9YShyLHQpLGZ1bmN0aW9uKHQpe3RoaXMuc2V0QXR0cmlidXRlKHMsZSh0KSl9KX0pfWZ1bmN0aW9uIG8odCl7cmV0dXJuIG51bGw9PXQ/bjoodCs9IiIsZnVuY3Rpb24oKXt2YXIgZSxyPXRoaXMuZ2V0QXR0cmlidXRlTlMocy5zcGFjZSxzLmxvY2FsKTtyZXR1cm4gciE9PXQmJihlPWEocix0KSxmdW5jdGlvbih0KXt0aGlzLnNldEF0dHJpYnV0ZU5TKHMuc3BhY2Uscy5sb2NhbCxlKHQpKX0pfSl9aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtmb3IoZSBpbiB0KXRoaXMuYXR0cihlLHRbZV0pO3JldHVybiB0aGlzfXZhciBhPSJ0cmFuc2Zvcm0iPT10P1puOl9uLHM9Y2EubnMucXVhbGlmeSh0KTtyZXR1cm4gJG8odGhpcywiYXR0ci4iK3QsZSxzLmxvY2FsP286aSl9LEhsLmF0dHJUd2Vlbj1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIodCxyKXt2YXIgbj1lLmNhbGwodGhpcyx0LHIsdGhpcy5nZXRBdHRyaWJ1dGUoaSkpO3JldHVybiBuJiZmdW5jdGlvbih0KXt0aGlzLnNldEF0dHJpYnV0ZShpLG4odCkpfX1mdW5jdGlvbiBuKHQscil7dmFyIG49ZS5jYWxsKHRoaXMsdCxyLHRoaXMuZ2V0QXR0cmlidXRlTlMoaS5zcGFjZSxpLmxvY2FsKSk7cmV0dXJuIG4mJmZ1bmN0aW9uKHQpe3RoaXMuc2V0QXR0cmlidXRlTlMoaS5zcGFjZSxpLmxvY2FsLG4odCkpfX12YXIgaT1jYS5ucy5xdWFsaWZ5KHQpO3JldHVybiB0aGlzLnR3ZWVuKCJhdHRyLiIrdCxpLmxvY2FsP246cil9LEhsLnN0eWxlPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBpKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX1mdW5jdGlvbiBvKGUpe3JldHVybiBudWxsPT1lP2k6KGUrPSIiLGZ1bmN0aW9uKCl7dmFyIGksbz1uKHRoaXMpLmdldENvbXB1dGVkU3R5bGUodGhpcyxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpO3JldHVybiBvIT09ZSYmKGk9X24obyxlKSxmdW5jdGlvbihlKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsaShlKSxyKX0pfSl9dmFyIGE9YXJndW1lbnRzLmxlbmd0aDtpZigzPmEpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Mj5hJiYoZT0iIik7Zm9yKHIgaW4gdCl0aGlzLnN0eWxlKHIsdFtyXSxlKTtyZXR1cm4gdGhpc31yPSIifXJldHVybiAkbyh0aGlzLCJzdHlsZS4iK3QsZSxvKX0sSGwuc3R5bGVUd2Vlbj1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gaShpLG8pe3ZhciBhPWUuY2FsbCh0aGlzLGksbyxuKHRoaXMpLmdldENvbXB1dGVkU3R5bGUodGhpcyxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpKTtyZXR1cm4gYSYmZnVuY3Rpb24oZSl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGEoZSkscil9fXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDMmJihyPSIiKSx0aGlzLnR3ZWVuKCJzdHlsZS4iK3QsaSl9LEhsLnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuICRvKHRoaXMsInRleHQiLHQsdGEpfSxIbC5yZW1vdmU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm5hbWVzcGFjZTtyZXR1cm4gdGhpcy5lYWNoKCJlbmQudHJhbnNpdGlvbiIsZnVuY3Rpb24oKXt2YXIgZTt0aGlzW3RdLmNvdW50PDImJihlPXRoaXMucGFyZW50Tm9kZSkmJmUucmVtb3ZlQ2hpbGQodGhpcyl9KX0sSGwuZWFzZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlkLHI9dGhpcy5uYW1lc3BhY2U7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MT90aGlzLm5vZGUoKVtyXVtlXS5lYXNlOigiZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9Y2EuZWFzZS5hcHBseShjYSxhcmd1bWVudHMpKSxIKHRoaXMsZnVuY3Rpb24obil7bltyXVtlXS5lYXNlPXR9KSl9LEhsLmRlbGF5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWQscj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3RoaXMubm9kZSgpW3JdW2VdLmRlbGF5OkgodGhpcywiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbihuLGksbyl7bltyXVtlXS5kZWxheT0rdC5jYWxsKG4sbi5fX2RhdGFfXyxpLG8pfToodD0rdCxmdW5jdGlvbihuKXtuW3JdW2VdLmRlbGF5PXR9KSl9LEhsLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWQscj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3RoaXMubm9kZSgpW3JdW2VdLmR1cmF0aW9uOkgodGhpcywiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbihuLGksbyl7bltyXVtlXS5kdXJhdGlvbj1NYXRoLm1heCgxLHQuY2FsbChuLG4uX19kYXRhX18saSxvKSl9Oih0PU1hdGgubWF4KDEsdCksZnVuY3Rpb24obil7bltyXVtlXS5kdXJhdGlvbj10fSkpfSxIbC5lYWNoPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5pZCxuPXRoaXMubmFtZXNwYWNlO2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil7dmFyIGk9cWwsbz1WbDt0cnl7Vmw9cixIKHRoaXMsZnVuY3Rpb24oZSxpLG8pe3FsPWVbbl1bcl0sdC5jYWxsKGUsZS5fX2RhdGFfXyxpLG8pfSl9ZmluYWxseXtxbD1pLFZsPW99fWVsc2UgSCh0aGlzLGZ1bmN0aW9uKGkpe3ZhciBvPWlbbl1bcl07KG8uZXZlbnR8fChvLmV2ZW50PWNhLmRpc3BhdGNoKCJzdGFydCIsImVuZCIsImludGVycnVwdCIpKSkub24odCxlKX0pO3JldHVybiB0aGlzfSxIbC50cmFuc2l0aW9uPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUscixuLGk9dGhpcy5pZCxvPSsrWGwsYT10aGlzLm5hbWVzcGFjZSxzPVtdLGw9MCx1PXRoaXMubGVuZ3RoO3U+bDtsKyspe3MucHVzaCh0PVtdKTtmb3IodmFyIGU9dGhpc1tsXSxjPTAsaD1lLmxlbmd0aDtoPmM7YysrKShyPWVbY10pJiYobj1yW2FdW2ldLHJhKHIsYyxhLG8se3RpbWU6bi50aW1lLGVhc2U6bi5lYXNlLGRlbGF5Om4uZGVsYXkrbi5kdXJhdGlvbixkdXJhdGlvbjpuLmR1cmF0aW9ufSkpLHQucHVzaChyKX1yZXR1cm4gSm8ocyxhLG8pfSxjYS5zdmcuYXhpcz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dC5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQsdT1jYS5zZWxlY3QodGhpcyksYz10aGlzLl9fY2hhcnRfX3x8cixoPXRoaXMuX19jaGFydF9fPXIuY29weSgpLGY9bnVsbD09bD9oLnRpY2tzP2gudGlja3MuYXBwbHkoaCxzKTpoLmRvbWFpbigpOmwscD1udWxsPT1lP2gudGlja0Zvcm1hdD9oLnRpY2tGb3JtYXQuYXBwbHkoaCxzKTp4OmUsZD11LnNlbGVjdEFsbCgiLnRpY2siKS5kYXRhKGYsaCksbT1kLmVudGVyKCkuaW5zZXJ0KCJnIiwiLmRvbWFpbiIpLmF0dHIoImNsYXNzIiwidGljayIpLnN0eWxlKCJvcGFjaXR5IixOYSksZz1jYS50cmFuc2l0aW9uKGQuZXhpdCgpKS5zdHlsZSgib3BhY2l0eSIsTmEpLnJlbW92ZSgpLHY9Y2EudHJhbnNpdGlvbihkLm9yZGVyKCkpLnN0eWxlKCJvcGFjaXR5IiwxKSx5PU1hdGgubWF4KGksMCkrYSxiPVhpKGgpLF89dS5zZWxlY3RBbGwoIi5kb21haW4iKS5kYXRhKFswXSksdz0oXy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiZG9tYWluIiksY2EudHJhbnNpdGlvbihfKSk7bS5hcHBlbmQoImxpbmUiKSxtLmFwcGVuZCgidGV4dCIpO3ZhciBNLGssQSxULEU9bS5zZWxlY3QoImxpbmUiKSxTPXYuc2VsZWN0KCJsaW5lIiksTD1kLnNlbGVjdCgidGV4dCIpLnRleHQocCksej1tLnNlbGVjdCgidGV4dCIpLEk9di5zZWxlY3QoInRleHQiKSxQPSJ0b3AiPT09bnx8ImxlZnQiPT09bj8tMToxO2lmKCJib3R0b20iPT09bnx8InRvcCI9PT1uPyh0PW5hLE09IngiLEE9InkiLGs9IngyIixUPSJ5MiIsTC5hdHRyKCJkeSIsMD5QPyIwZW0iOiIuNzFlbSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLHcuYXR0cigiZCIsIk0iK2JbMF0rIiwiK1AqbysiVjBIIitiWzFdKyJWIitQKm8pKToodD1pYSxNPSJ5IixBPSJ4IixrPSJ5MiIsVD0ieDIiLEwuYXR0cigiZHkiLCIuMzJlbSIpLnN0eWxlKCJ0ZXh0LWFuY2hvciIsMD5QPyJlbmQiOiJzdGFydCIpLHcuYXR0cigiZCIsIk0iK1AqbysiLCIrYlswXSsiSDBWIitiWzFdKyJIIitQKm8pKSwKRS5hdHRyKFQsUCppKSx6LmF0dHIoQSxQKnkpLFMuYXR0cihrLDApLmF0dHIoVCxQKmkpLEkuYXR0cihNLDApLmF0dHIoQSxQKnkpLGgucmFuZ2VCYW5kKXt2YXIgQz1oLFI9Qy5yYW5nZUJhbmQoKS8yO2M9aD1mdW5jdGlvbih0KXtyZXR1cm4gQyh0KStSfX1lbHNlIGMucmFuZ2VCYW5kP2M9aDpnLmNhbGwodCxoLGMpO20uY2FsbCh0LGMsaCksdi5jYWxsKHQsaCxoKX0pfXZhciBlLHI9Y2Euc2NhbGUubGluZWFyKCksbj1ZbCxpPTYsbz02LGE9MyxzPVsxMF0sbD1udWxsO3JldHVybiB0LnNjYWxlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWUsdCk6cn0sdC5vcmllbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ZSBpbiBXbD9lKyIiOllsLHQpOm59LHQudGlja3M9ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz1mYShhcmd1bWVudHMpLHQpOnN9LHQudGlja1ZhbHVlcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD1lLHQpOmx9LHQudGlja0Zvcm1hdD1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1yLHQpOmV9LHQudGlja1NpemU9ZnVuY3Rpb24oZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcj8oaT0rZSxvPSthcmd1bWVudHNbci0xXSx0KTppfSx0LmlubmVyVGlja1NpemU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9K2UsdCk6aX0sdC5vdXRlclRpY2tTaXplPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPStlLHQpOm99LHQudGlja1BhZGRpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9K2UsdCk6YX0sdC50aWNrU3ViZGl2aWRlPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmJnR9LHR9O3ZhciBZbD0iYm90dG9tIixXbD17dG9wOjEscmlnaHQ6MSxib3R0b206MSxsZWZ0OjF9O2NhLnN2Zy5icnVzaD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQobil7bi5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49Y2Euc2VsZWN0KHRoaXMpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLnN0eWxlKCItd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3IiLCJyZ2JhKDAsMCwwLDApIikub24oIm1vdXNlZG93bi5icnVzaCIsbykub24oInRvdWNoc3RhcnQuYnJ1c2giLG8pLGE9bi5zZWxlY3RBbGwoIi5iYWNrZ3JvdW5kIikuZGF0YShbMF0pO2EuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKCJjbGFzcyIsImJhY2tncm91bmQiKS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpLnN0eWxlKCJjdXJzb3IiLCJjcm9zc2hhaXIiKSxuLnNlbGVjdEFsbCgiLmV4dGVudCIpLmRhdGEoWzBdKS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiZXh0ZW50Iikuc3R5bGUoImN1cnNvciIsIm1vdmUiKTt2YXIgcz1uLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLmRhdGEobSx4KTtzLmV4aXQoKS5yZW1vdmUoKSxzLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiJyZXNpemUgIit0fSkuc3R5bGUoImN1cnNvciIsZnVuY3Rpb24odCl7cmV0dXJuIFpsW3RdfSkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsZnVuY3Rpb24odCl7cmV0dXJuL1tld10kLy50ZXN0KHQpPy0zOm51bGx9KS5hdHRyKCJ5IixmdW5jdGlvbih0KXtyZXR1cm4vXltuc10vLnRlc3QodCk/LTM6bnVsbH0pLmF0dHIoIndpZHRoIiw2KS5hdHRyKCJoZWlnaHQiLDYpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikscy5zdHlsZSgiZGlzcGxheSIsdC5lbXB0eSgpPyJub25lIjpudWxsKTt2YXIgbCxoPWNhLnRyYW5zaXRpb24obiksZj1jYS50cmFuc2l0aW9uKGEpO3UmJihsPVhpKHUpLGYuYXR0cigieCIsbFswXSkuYXR0cigid2lkdGgiLGxbMV0tbFswXSkscihoKSksYyYmKGw9WGkoYyksZi5hdHRyKCJ5IixsWzBdKS5hdHRyKCJoZWlnaHQiLGxbMV0tbFswXSksaShoKSksZShoKX0pfWZ1bmN0aW9uIGUodCl7dC5zZWxlY3RBbGwoIi5yZXNpemUiKS5hdHRyKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIitoWysvZSQvLnRlc3QodCldKyIsIitmWysvXnMvLnRlc3QodCldKyIpIn0pfWZ1bmN0aW9uIHIodCl7dC5zZWxlY3QoIi5leHRlbnQiKS5hdHRyKCJ4IixoWzBdKSx0LnNlbGVjdEFsbCgiLmV4dGVudCwubj5yZWN0LC5zPnJlY3QiKS5hdHRyKCJ3aWR0aCIsaFsxXS1oWzBdKX1mdW5jdGlvbiBpKHQpe3Quc2VsZWN0KCIuZXh0ZW50IikuYXR0cigieSIsZlswXSksdC5zZWxlY3RBbGwoIi5leHRlbnQsLmU+cmVjdCwudz5yZWN0IikuYXR0cigiaGVpZ2h0IixmWzFdLWZbMF0pfWZ1bmN0aW9uIG8oKXtmdW5jdGlvbiBvKCl7MzI9PWNhLmV2ZW50LmtleUNvZGUmJihMfHwoYj1udWxsLElbMF0tPWhbMV0sSVsxXS09ZlsxXSxMPTIpLFQoKSl9ZnVuY3Rpb24gbSgpezMyPT1jYS5ldmVudC5rZXlDb2RlJiYyPT1MJiYoSVswXSs9aFsxXSxJWzFdKz1mWzFdLEw9MCxUKCkpfWZ1bmN0aW9uIGcoKXt2YXIgdD1jYS5tb3VzZShfKSxuPSExO3gmJih0WzBdKz14WzBdLHRbMV0rPXhbMV0pLEx8fChjYS5ldmVudC5hbHRLZXk/KGJ8fChiPVsoaFswXStoWzFdKS8yLChmWzBdK2ZbMV0pLzJdKSxJWzBdPWhbKyh0WzBdPGJbMF0pXSxJWzFdPWZbKyh0WzFdPGJbMV0pXSk6Yj1udWxsKSxFJiZ2KHQsdSwwKSYmKHIoayksbj0hMCksUyYmdih0LGMsMSkmJihpKGspLG49ITApLG4mJihlKGspLE0oe3R5cGU6ImJydXNoIixtb2RlOkw/Im1vdmUiOiJyZXNpemUifSkpfWZ1bmN0aW9uIHYodCxlLHIpe3ZhciBuLGksbz1YaShlKSxsPW9bMF0sdT1vWzFdLGM9SVtyXSxtPXI/ZjpoLGc9bVsxXS1tWzBdO3JldHVybiBMJiYobC09Yyx1LT1nK2MpLG49KHI/ZDpwKT9NYXRoLm1heChsLE1hdGgubWluKHUsdFtyXSkpOnRbcl0sTD9pPShuKz1jKStnOihiJiYoYz1NYXRoLm1heChsLE1hdGgubWluKHUsMipiW3JdLW4pKSksbj5jPyhpPW4sbj1jKTppPWMpLG1bMF0hPW58fG1bMV0hPWk/KHI/cz1udWxsOmE9bnVsbCxtWzBdPW4sbVsxXT1pLCEwKTp2b2lkIDB9ZnVuY3Rpb24geSgpe2coKSxrLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLnN0eWxlKCJkaXNwbGF5Iix0LmVtcHR5KCk/Im5vbmUiOm51bGwpLGNhLnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLG51bGwpLFAub24oIm1vdXNlbW92ZS5icnVzaCIsbnVsbCkub24oIm1vdXNldXAuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaGVuZC5icnVzaCIsbnVsbCkub24oImtleWRvd24uYnJ1c2giLG51bGwpLm9uKCJrZXl1cC5icnVzaCIsbnVsbCkseigpLE0oe3R5cGU6ImJydXNoZW5kIn0pfXZhciBiLHgsXz10aGlzLHc9Y2Euc2VsZWN0KGNhLmV2ZW50LnRhcmdldCksTT1sLm9mKF8sYXJndW1lbnRzKSxrPWNhLnNlbGVjdChfKSxBPXcuZGF0dW0oKSxFPSEvXihufHMpJC8udGVzdChBKSYmdSxTPSEvXihlfHcpJC8udGVzdChBKSYmYyxMPXcuY2xhc3NlZCgiZXh0ZW50Iiksej1LKF8pLEk9Y2EubW91c2UoXyksUD1jYS5zZWxlY3QobihfKSkub24oImtleWRvd24uYnJ1c2giLG8pLm9uKCJrZXl1cC5icnVzaCIsbSk7aWYoY2EuZXZlbnQuY2hhbmdlZFRvdWNoZXM/UC5vbigidG91Y2htb3ZlLmJydXNoIixnKS5vbigidG91Y2hlbmQuYnJ1c2giLHkpOlAub24oIm1vdXNlbW92ZS5icnVzaCIsZykub24oIm1vdXNldXAuYnJ1c2giLHkpLGsuaW50ZXJydXB0KCkuc2VsZWN0QWxsKCIqIikuaW50ZXJydXB0KCksTClJWzBdPWhbMF0tSVswXSxJWzFdPWZbMF0tSVsxXTtlbHNlIGlmKEEpe3ZhciBDPSsvdyQvLnRlc3QoQSksUj0rL15uLy50ZXN0KEEpO3g9W2hbMS1DXS1JWzBdLGZbMS1SXS1JWzFdXSxJWzBdPWhbQ10sSVsxXT1mW1JdfWVsc2UgY2EuZXZlbnQuYWx0S2V5JiYoYj1JLnNsaWNlKCkpO2suc3R5bGUoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKSxjYS5zZWxlY3QoImJvZHkiKS5zdHlsZSgiY3Vyc29yIix3LnN0eWxlKCJjdXJzb3IiKSksTSh7dHlwZToiYnJ1c2hzdGFydCJ9KSxnKCl9dmFyIGEscyxsPVModCwiYnJ1c2hzdGFydCIsImJydXNoIiwiYnJ1c2hlbmQiKSx1PW51bGwsYz1udWxsLGg9WzAsMF0sZj1bMCwwXSxwPSEwLGQ9ITAsbT1RbFswXTtyZXR1cm4gdC5ldmVudD1mdW5jdGlvbih0KXt0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1sLm9mKHRoaXMsYXJndW1lbnRzKSxlPXt4OmgseTpmLGk6YSxqOnN9LHI9dGhpcy5fX2NoYXJ0X198fGU7dGhpcy5fX2NoYXJ0X189ZSxWbD9jYS5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmVhY2goInN0YXJ0LmJydXNoIixmdW5jdGlvbigpe2E9ci5pLHM9ci5qLGg9ci54LGY9ci55LHQoe3R5cGU6ImJydXNoc3RhcnQifSl9KS50d2VlbigiYnJ1c2g6YnJ1c2giLGZ1bmN0aW9uKCl7dmFyIHI9d24oaCxlLngpLG49d24oZixlLnkpO3JldHVybiBhPXM9bnVsbCxmdW5jdGlvbihpKXtoPWUueD1yKGkpLGY9ZS55PW4oaSksdCh7dHlwZToiYnJ1c2giLG1vZGU6InJlc2l6ZSJ9KX19KS5lYWNoKCJlbmQuYnJ1c2giLGZ1bmN0aW9uKCl7YT1lLmkscz1lLmosdCh7dHlwZToiYnJ1c2giLG1vZGU6InJlc2l6ZSJ9KSx0KHt0eXBlOiJicnVzaGVuZCJ9KX0pOih0KHt0eXBlOiJicnVzaHN0YXJ0In0pLHQoe3R5cGU6ImJydXNoIixtb2RlOiJyZXNpemUifSksdCh7dHlwZToiYnJ1c2hlbmQifSkpfSl9LHQueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT1lLG09UWxbIXU8PDF8IWNdLHQpOnV9LHQueT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz1lLG09UWxbIXU8PDF8IWNdLHQpOmN9LHQuY2xhbXA9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHUmJmM/KHA9ISFlWzBdLGQ9ISFlWzFdKTp1P3A9ISFlOmMmJihkPSEhZSksdCk6dSYmYz9bcCxkXTp1P3A6Yz9kOm51bGx9LHQuZXh0ZW50PWZ1bmN0aW9uKGUpe3ZhciByLG4saSxvLGw7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHUmJihyPWVbMF0sbj1lWzFdLGMmJihyPXJbMF0sbj1uWzBdKSxhPVtyLG5dLHUuaW52ZXJ0JiYocj11KHIpLG49dShuKSkscj5uJiYobD1yLHI9bixuPWwpLHI9PWhbMF0mJm49PWhbMV18fChoPVtyLG5dKSksYyYmKGk9ZVswXSxvPWVbMV0sdSYmKGk9aVsxXSxvPW9bMV0pLHM9W2ksb10sYy5pbnZlcnQmJihpPWMoaSksbz1jKG8pKSxpPm8mJihsPWksaT1vLG89bCksaT09ZlswXSYmbz09ZlsxXXx8KGY9W2ksb10pKSx0KToodSYmKGE/KHI9YVswXSxuPWFbMV0pOihyPWhbMF0sbj1oWzFdLHUuaW52ZXJ0JiYocj11LmludmVydChyKSxuPXUuaW52ZXJ0KG4pKSxyPm4mJihsPXIscj1uLG49bCkpKSxjJiYocz8oaT1zWzBdLG89c1sxXSk6KGk9ZlswXSxvPWZbMV0sYy5pbnZlcnQmJihpPWMuaW52ZXJ0KGkpLG89Yy5pbnZlcnQobykpLGk+byYmKGw9aSxpPW8sbz1sKSkpLHUmJmM/W1tyLGldLFtuLG9dXTp1P1tyLG5dOmMmJltpLG9dKX0sdC5jbGVhcj1mdW5jdGlvbigpe3JldHVybiB0LmVtcHR5KCl8fChoPVswLDBdLGY9WzAsMF0sYT1zPW51bGwpLHR9LHQuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hIXUmJmhbMF09PWhbMV18fCEhYyYmZlswXT09ZlsxXX0sY2EucmViaW5kKHQsbCwib24iKX07dmFyIFpsPXtuOiJucy1yZXNpemUiLGU6ImV3LXJlc2l6ZSIsczoibnMtcmVzaXplIix3OiJldy1yZXNpemUiLG53OiJud3NlLXJlc2l6ZSIsbmU6Im5lc3ctcmVzaXplIixzZToibndzZS1yZXNpemUiLHN3OiJuZXN3LXJlc2l6ZSJ9LFFsPVtbIm4iLCJlIiwicyIsInciLCJudyIsIm5lIiwic2UiLCJzdyJdLFsiZSIsInciXSxbIm4iLCJzIl0sW11dLEtsPWdzLmZvcm1hdD13cy50aW1lRm9ybWF0LEpsPUtsLnV0YywkbD1KbCgiJVktJW0tJWRUJUg6JU06JVMuJUxaIik7S2wuaXNvPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nJiYrbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP29hOiRsLG9hLnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihlKT9udWxsOmV9LG9hLnRvU3RyaW5nPSRsLnRvU3RyaW5nLGdzLnNlY29uZD1WdChmdW5jdGlvbih0KXtyZXR1cm4gbmV3IHZzKDFlMypNYXRoLmZsb29yKHQvMWUzKSl9LGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKHQuZ2V0VGltZSgpKzFlMypNYXRoLmZsb29yKGUpKX0sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0U2Vjb25kcygpfSksZ3Muc2Vjb25kcz1ncy5zZWNvbmQucmFuZ2UsZ3Muc2Vjb25kcy51dGM9Z3Muc2Vjb25kLnV0Yy5yYW5nZSxncy5taW51dGU9VnQoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB2cyg2ZTQqTWF0aC5mbG9vcih0LzZlNCkpfSxmdW5jdGlvbih0LGUpe3Quc2V0VGltZSh0LmdldFRpbWUoKSs2ZTQqTWF0aC5mbG9vcihlKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pLGdzLm1pbnV0ZXM9Z3MubWludXRlLnJhbmdlLGdzLm1pbnV0ZXMudXRjPWdzLm1pbnV0ZS51dGMucmFuZ2UsZ3MuaG91cj1WdChmdW5jdGlvbih0KXt2YXIgZT10LmdldFRpbWV6b25lT2Zmc2V0KCkvNjA7cmV0dXJuIG5ldyB2cygzNmU1KihNYXRoLmZsb29yKHQvMzZlNS1lKStlKSl9LGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKHQuZ2V0VGltZSgpKzM2ZTUqTWF0aC5mbG9vcihlKSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSxncy5ob3Vycz1ncy5ob3VyLnJhbmdlLGdzLmhvdXJzLnV0Yz1ncy5ob3VyLnV0Yy5yYW5nZSxncy5tb250aD1WdChmdW5jdGlvbih0KXtyZXR1cm4gdD1ncy5kYXkodCksdC5zZXREYXRlKDEpLHR9LGZ1bmN0aW9uKHQsZSl7dC5zZXRNb250aCh0LmdldE1vbnRoKCkrZSl9LGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCl9KSxncy5tb250aHM9Z3MubW9udGgucmFuZ2UsZ3MubW9udGhzLnV0Yz1ncy5tb250aC51dGMucmFuZ2U7dmFyIHR1PVsxZTMsNWUzLDE1ZTMsM2U0LDZlNCwzZTUsOWU1LDE4ZTUsMzZlNSwxMDhlNSwyMTZlNSw0MzJlNSw4NjRlNSwxNzI4ZTUsNjA0OGU1LDI1OTJlNiw3Nzc2ZTYsMzE1MzZlNl0sZXU9W1tncy5zZWNvbmQsMV0sW2dzLnNlY29uZCw1XSxbZ3Muc2Vjb25kLDE1XSxbZ3Muc2Vjb25kLDMwXSxbZ3MubWludXRlLDFdLFtncy5taW51dGUsNV0sW2dzLm1pbnV0ZSwxNV0sW2dzLm1pbnV0ZSwzMF0sW2dzLmhvdXIsMV0sW2dzLmhvdXIsM10sW2dzLmhvdXIsNl0sW2dzLmhvdXIsMTJdLFtncy5kYXksMV0sW2dzLmRheSwyXSxbZ3Mud2VlaywxXSxbZ3MubW9udGgsMV0sW2dzLm1vbnRoLDNdLFtncy55ZWFyLDFdXSxydT1LbC5tdWx0aShbWyIuJUwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbGxpc2Vjb25kcygpfV0sWyI6JVMiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFNlY29uZHMoKX1dLFsiJUk6JU0iLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX1dLFsiJUkgJXAiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9XSxbIiVhICVkIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXkoKSYmMSE9dC5nZXREYXRlKCl9XSxbIiViICVkIixmdW5jdGlvbih0KXtyZXR1cm4gMSE9dC5nZXREYXRlKCl9XSxbIiVCIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfV0sWyIlWSIsSWVdXSksbnU9e3JhbmdlOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gY2EucmFuZ2UoTWF0aC5jZWlsKHQvcikqciwrZSxyKS5tYXAoc2EpfSxmbG9vcjp4LGNlaWw6eH07ZXUueWVhcj1ncy55ZWFyLGdzLnNjYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGFhKGNhLnNjYWxlLmxpbmVhcigpLGV1LHJ1KX07dmFyIGl1PWV1Lm1hcChmdW5jdGlvbih0KXtyZXR1cm5bdFswXS51dGMsdFsxXV19KSxvdT1KbC5tdWx0aShbWyIuJUwiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbGxpc2Vjb25kcygpfV0sWyI6JVMiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX1dLFsiJUk6JU0iLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX1dLFsiJUkgJXAiLGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9XSxbIiVhICVkIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENEYXkoKSYmMSE9dC5nZXRVVENEYXRlKCl9XSxbIiViICVkIixmdW5jdGlvbih0KXtyZXR1cm4gMSE9dC5nZXRVVENEYXRlKCl9XSxbIiVCIixmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfV0sWyIlWSIsSWVdXSk7aXUueWVhcj1ncy55ZWFyLnV0Yyxncy5zY2FsZS51dGM9ZnVuY3Rpb24oKXtyZXR1cm4gYWEoY2Euc2NhbGUubGluZWFyKCksaXUsb3UpfSxjYS50ZXh0PUx0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlVGV4dH0pLGNhLmpzb249ZnVuY3Rpb24odCxlKXtyZXR1cm4genQodCwiYXBwbGljYXRpb24vanNvbiIsbGEsZSl9LGNhLmh0bWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4genQodCwidGV4dC9odG1sIix1YSxlKX0sY2EueG1sPUx0KGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlWE1MfSksImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuYW1kPyh0aGlzLmQzPWNhLHQoY2EpKToib2JqZWN0Ij09dHlwZW9mIHImJnIuZXhwb3J0cz9yLmV4cG9ydHM9Y2E6dGhpcy5kMz1jYX0oKX0se31dLDEyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy5wb2ludD10LHRoaXMuaW5kZXg9ZX1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPXQucG9pbnQsbj1lLnBvaW50LGk9ci5sZW5ndGgsbz0wO2k+bzsrK28pe3ZhciBhPW5bb10tcltvXTtpZihhKXJldHVybiBhfXJldHVybiAwfWZ1bmN0aW9uIG8odCxlLHIpe2lmKDE9PT10KXJldHVybiByP1tbLTEsMF1dOltdO3ZhciBuPWUubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW3RbMF0sZV19KTtuLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXS1lWzBdfSk7Zm9yKHZhciBpPW5ldyBBcnJheSh0LTEpLG89MTt0Pm87KytvKXt2YXIgYT1uW28tMV0scz1uW29dO2lbby0xXT1bYVsxXSxzWzFdXX1yZXR1cm4gciYmaS5wdXNoKFstMSxpWzBdWzFdXSxbaVt0LTFdWzFdLC0xXSksaX1mdW5jdGlvbiBhKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpcmV0dXJuW107dmFyIGE9dFswXS5sZW5ndGg7aWYoMT5hKXJldHVybltdO2lmKDE9PT1hKXJldHVybiBvKHIsdCxlKTtmb3IodmFyIHU9bmV3IEFycmF5KHIpLGM9MSxoPTA7cj5oOysraCl7Zm9yKHZhciBmPXRbaF0scD1uZXcgQXJyYXkoYSsxKSxkPTAsbT0wO2E+bTsrK20pe3ZhciBnPWZbbV07cFttXT1nLGQrPWcqZ31wW2FdPWQsdVtoXT1uZXcgbihwLGgpLGM9TWF0aC5tYXgoZCxjKX1sKHUsaSkscj11Lmxlbmd0aDtmb3IodmFyIHY9bmV3IEFycmF5KHIrYSsxKSx5PW5ldyBBcnJheShyK2ErMSksYj0oYSsxKSooYSsxKSpjLHg9bmV3IEFycmF5KGErMSksaD0wO2E+PWg7KytoKXhbaF09MDt4W2FdPWIsdlswXT14LnNsaWNlKCkseVswXT0tMTtmb3IodmFyIGg9MDthPj1oOysraCl7dmFyIHA9eC5zbGljZSgpO3BbaF09MSx2W2grMV09cCx5W2grMV09LTF9Zm9yKHZhciBoPTA7cj5oOysraCl7dmFyIF89dVtoXTt2W2grYSsxXT1fLnBvaW50LHlbaCthKzFdPV8uaW5kZXh9dmFyIHc9cyh2LCExKTtpZih3PWU/dy5maWx0ZXIoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO2E+PXI7KytyKXt2YXIgbj15W3Rbcl1dO2lmKDA+biYmKytlPj0yKXJldHVybiExO3Rbcl09bn1yZXR1cm4hMH0pOncuZmlsdGVyKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2E+PWU7KytlKXt2YXIgcj15W3RbZV1dO2lmKDA+cilyZXR1cm4hMTt0W2VdPXJ9cmV0dXJuITB9KSwxJmEpZm9yKHZhciBoPTA7aDx3Lmxlbmd0aDsrK2gpe3ZhciBfPXdbaF0scD1fWzBdO19bMF09X1sxXSxfWzFdPXB9cmV0dXJuIHd9dmFyIHM9dCgiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiKSxsPXQoInVuaXEiKTtlLmV4cG9ydHM9YX0seyJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCI6MjQ2LHVuaXE6NDgyfV0sMTI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBpPTB8dFtyXTtpZigwPj1pKXJldHVybltdO3ZhciBvLGE9bmV3IEFycmF5KGkpO2lmKHI9PT10Lmxlbmd0aC0xKWZvcihvPTA7aT5vOysrbylhW29dPWU7ZWxzZSBmb3Iobz0wO2k+bzsrK28pYVtvXT1uKHQsZSxyKzEpO3JldHVybiBhfWZ1bmN0aW9uIGkodCxlKXt2YXIgcixuO2ZvcihyPW5ldyBBcnJheSh0KSxuPTA7dD5uOysrbilyW25dPWU7cmV0dXJuIHJ9ZnVuY3Rpb24gbyh0LGUpe3N3aXRjaCgidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPTApLHR5cGVvZiB0KXtjYXNlIm51bWJlciI6aWYodD4wKXJldHVybiBpKDB8dCxlKTticmVhaztjYXNlIm9iamVjdCI6aWYoIm51bWJlciI9PXR5cGVvZiB0Lmxlbmd0aClyZXR1cm4gbih0LGUsMCl9cmV0dXJuW119ZS5leHBvcnRzPW99LHt9XSwxMjc6W2Z1bmN0aW9uKGUscixuKXsoZnVuY3Rpb24obixpKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdHx8Im9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBhKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHModCl7WD10fWZ1bmN0aW9uIGwodCl7UT10fWZ1bmN0aW9uIHUoKXtyZXR1cm4gZnVuY3Rpb24oKXtuLm5leHRUaWNrKGQpfX1mdW5jdGlvbiBjKCl7cmV0dXJuIGZ1bmN0aW9uKCl7SChkKX19ZnVuY3Rpb24gaCgpe3ZhciB0PTAsZT1uZXcgJChkKSxyPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIiKTtyZXR1cm4gZS5vYnNlcnZlKHIse2NoYXJhY3RlckRhdGE6ITB9KSxmdW5jdGlvbigpe3IuZGF0YT10PSsrdCUyfX1mdW5jdGlvbiBmKCl7dmFyIHQ9bmV3IE1lc3NhZ2VDaGFubmVsO3JldHVybiB0LnBvcnQxLm9ubWVzc2FnZT1kLGZ1bmN0aW9uKCl7dC5wb3J0Mi5wb3N0TWVzc2FnZSgwKX19ZnVuY3Rpb24gcCgpe3JldHVybiBmdW5jdGlvbigpe3NldFRpbWVvdXQoZCwxKX19ZnVuY3Rpb24gZCgpe2Zvcih2YXIgdD0wO1o+dDt0Kz0yKXt2YXIgZT1ydFt0XSxyPXJ0W3QrMV07ZShyKSxydFt0XT12b2lkIDAscnRbdCsxXT12b2lkIDB9Wj0wfWZ1bmN0aW9uIG0oKXt0cnl7dmFyIHQ9ZSxyPXQoInZlcnR4Iik7cmV0dXJuIEg9ci5ydW5Pbkxvb3B8fHIucnVuT25Db250ZXh0LGMoKX1jYXRjaChuKXtyZXR1cm4gcCgpfX1mdW5jdGlvbiBnKHQsZSl7dmFyIHI9dGhpcyxuPXIuX3N0YXRlO2lmKG49PT1hdCYmIXR8fG49PT1zdCYmIWUpcmV0dXJuIHRoaXM7dmFyIGk9bmV3IHRoaXMuY29uc3RydWN0b3IoeSksbz1yLl9yZXN1bHQ7aWYobil7dmFyIGE9YXJndW1lbnRzW24tMV07UShmdW5jdGlvbigpe1IobixpLGEsbyl9KX1lbHNlIHoocixpLHQsZSk7cmV0dXJuIGl9ZnVuY3Rpb24gdih0KXt2YXIgZT10aGlzO2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PWUpcmV0dXJuIHQ7dmFyIHI9bmV3IGUoeSk7cmV0dXJuIFQocix0KSxyfWZ1bmN0aW9uIHkoKXt9ZnVuY3Rpb24gYigpe3JldHVybiBuZXcgVHlwZUVycm9yKCJZb3UgY2Fubm90IHJlc29sdmUgYSBwcm9taXNlIHdpdGggaXRzZWxmIil9ZnVuY3Rpb24geCgpe3JldHVybiBuZXcgVHlwZUVycm9yKCJBIHByb21pc2VzIGNhbGxiYWNrIGNhbm5vdCByZXR1cm4gdGhhdCBzYW1lIHByb21pc2UuIil9ZnVuY3Rpb24gXyh0KXt0cnl7cmV0dXJuIHQudGhlbn1jYXRjaChlKXtyZXR1cm4gbHQuZXJyb3I9ZSxsdH19ZnVuY3Rpb24gdyh0LGUscixuKXt0cnl7dC5jYWxsKGUscixuKX1jYXRjaChpKXtyZXR1cm4gaX19ZnVuY3Rpb24gTSh0LGUscil7UShmdW5jdGlvbih0KXt2YXIgbj0hMSxpPXcocixlLGZ1bmN0aW9uKHIpe258fChuPSEwLGUhPT1yP1QodCxyKTpTKHQscikpfSxmdW5jdGlvbihlKXtufHwobj0hMCxMKHQsZSkpfSwiU2V0dGxlOiAiKyh0Ll9sYWJlbHx8IiB1bmtub3duIHByb21pc2UiKSk7IW4mJmkmJihuPSEwLEwodCxpKSl9LHQpfWZ1bmN0aW9uIGsodCxlKXtlLl9zdGF0ZT09PWF0P1ModCxlLl9yZXN1bHQpOmUuX3N0YXRlPT09c3Q/TCh0LGUuX3Jlc3VsdCk6eihlLHZvaWQgMCxmdW5jdGlvbihlKXtUKHQsZSl9LGZ1bmN0aW9uKGUpe0wodCxlKX0pfWZ1bmN0aW9uIEEodCxlLHIpe2UuY29uc3RydWN0b3I9PT10LmNvbnN0cnVjdG9yJiZyPT09bnQmJmNvbnN0cnVjdG9yLnJlc29sdmU9PT1pdD9rKHQsZSk6cj09PWx0P0wodCxsdC5lcnJvcik6dm9pZCAwPT09cj9TKHQsZSk6YShyKT9NKHQsZSxyKTpTKHQsZSl9ZnVuY3Rpb24gVCh0LGUpe3Q9PT1lP0wodCxiKCkpOm8oZSk/QSh0LGUsXyhlKSk6Uyh0LGUpfWZ1bmN0aW9uIEUodCl7dC5fb25lcnJvciYmdC5fb25lcnJvcih0Ll9yZXN1bHQpLEkodCl9ZnVuY3Rpb24gUyh0LGUpe3QuX3N0YXRlPT09b3QmJih0Ll9yZXN1bHQ9ZSx0Ll9zdGF0ZT1hdCwwIT09dC5fc3Vic2NyaWJlcnMubGVuZ3RoJiZRKEksdCkpfWZ1bmN0aW9uIEwodCxlKXt0Ll9zdGF0ZT09PW90JiYodC5fc3RhdGU9c3QsdC5fcmVzdWx0PWUsUShFLHQpKX1mdW5jdGlvbiB6KHQsZSxyLG4pe3ZhciBpPXQuX3N1YnNjcmliZXJzLG89aS5sZW5ndGg7dC5fb25lcnJvcj1udWxsLGlbb109ZSxpW28rYXRdPXIsaVtvK3N0XT1uLDA9PT1vJiZ0Ll9zdGF0ZSYmUShJLHQpfWZ1bmN0aW9uIEkodCl7dmFyIGU9dC5fc3Vic2NyaWJlcnMscj10Ll9zdGF0ZTtpZigwIT09ZS5sZW5ndGgpe2Zvcih2YXIgbixpLG89dC5fcmVzdWx0LGE9MDthPGUubGVuZ3RoO2ErPTMpbj1lW2FdLGk9ZVthK3JdLG4/UihyLG4saSxvKTppKG8pO3QuX3N1YnNjcmliZXJzLmxlbmd0aD0wfX1mdW5jdGlvbiBQKCl7dGhpcy5lcnJvcj1udWxsfWZ1bmN0aW9uIEModCxlKXt0cnl7cmV0dXJuIHQoZSl9Y2F0Y2gocil7cmV0dXJuIHV0LmVycm9yPXIsdXR9fWZ1bmN0aW9uIFIodCxlLHIsbil7dmFyIGksbyxzLGwsdT1hKHIpO2lmKHUpe2lmKGk9QyhyLG4pLGk9PT11dD8obD0hMCxvPWkuZXJyb3IsaT1udWxsKTpzPSEwLGU9PT1pKXJldHVybiB2b2lkIEwoZSx4KCkpfWVsc2UgaT1uLHM9ITA7ZS5fc3RhdGUhPT1vdHx8KHUmJnM/VChlLGkpOmw/TChlLG8pOnQ9PT1hdD9TKGUsaSk6dD09PXN0JiZMKGUsaSkpfWZ1bmN0aW9uIGoodCxlKXt0cnl7ZShmdW5jdGlvbihlKXtUKHQsZSl9LGZ1bmN0aW9uKGUpe0wodCxlKX0pfWNhdGNoKHIpe0wodCxyKX19ZnVuY3Rpb24gRCh0KXtyZXR1cm4gbmV3IG10KHRoaXMsdCkucHJvbWlzZX1mdW5jdGlvbiBPKHQpe2Z1bmN0aW9uIGUodCl7VChpLHQpfWZ1bmN0aW9uIHIodCl7TChpLHQpfXZhciBuPXRoaXMsaT1uZXcgbih5KTtpZighVyh0KSlyZXR1cm4gTChpLG5ldyBUeXBlRXJyb3IoIllvdSBtdXN0IHBhc3MgYW4gYXJyYXkgdG8gcmFjZS4iKSksaTtmb3IodmFyIG89dC5sZW5ndGgsYT0wO2kuX3N0YXRlPT09b3QmJm8+YTthKyspeihuLnJlc29sdmUodFthXSksdm9pZCAwLGUscik7cmV0dXJuIGl9ZnVuY3Rpb24gRih0KXt2YXIgZT10aGlzLHI9bmV3IGUoeSk7cmV0dXJuIEwocix0KSxyfWZ1bmN0aW9uIE4oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJZb3UgbXVzdCBwYXNzIGEgcmVzb2x2ZXIgZnVuY3Rpb24gYXMgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBwcm9taXNlIGNvbnN0cnVjdG9yIil9ZnVuY3Rpb24gQigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1Byb21pc2UnOiBQbGVhc2UgdXNlIHRoZSAnbmV3JyBvcGVyYXRvciwgdGhpcyBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpfWZ1bmN0aW9uIFUodCl7dGhpcy5faWQ9cHQrKyx0aGlzLl9zdGF0ZT12b2lkIDAsdGhpcy5fcmVzdWx0PXZvaWQgMCx0aGlzLl9zdWJzY3JpYmVycz1bXSx5IT09dCYmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZOKCksdGhpcyBpbnN0YW5jZW9mIFU/aih0aGlzLHQpOkIoKSl9ZnVuY3Rpb24gVih0LGUpe3RoaXMuX2luc3RhbmNlQ29uc3RydWN0b3I9dCx0aGlzLnByb21pc2U9bmV3IHQoeSksQXJyYXkuaXNBcnJheShlKT8odGhpcy5faW5wdXQ9ZSx0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9yZW1haW5pbmc9ZS5sZW5ndGgsdGhpcy5fcmVzdWx0PW5ldyBBcnJheSh0aGlzLmxlbmd0aCksMD09PXRoaXMubGVuZ3RoP1ModGhpcy5wcm9taXNlLHRoaXMuX3Jlc3VsdCk6KHRoaXMubGVuZ3RoPXRoaXMubGVuZ3RofHwwLHRoaXMuX2VudW1lcmF0ZSgpLDA9PT10aGlzLl9yZW1haW5pbmcmJlModGhpcy5wcm9taXNlLHRoaXMuX3Jlc3VsdCkpKTpMKHRoaXMucHJvbWlzZSx0aGlzLl92YWxpZGF0aW9uRXJyb3IoKSl9ZnVuY3Rpb24gcSgpe3ZhciB0O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaSl0PWk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYpdD1zZWxmO2Vsc2UgdHJ5e3Q9RnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaChlKXt0aHJvdyBuZXcgRXJyb3IoInBvbHlmaWxsIGZhaWxlZCBiZWNhdXNlIGdsb2JhbCBvYmplY3QgaXMgdW5hdmFpbGFibGUgaW4gdGhpcyBlbnZpcm9ubWVudCIpfXZhciByPXQuUHJvbWlzZTtyJiYiW29iamVjdCBQcm9taXNlXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoci5yZXNvbHZlKCkpJiYhci5jYXN0fHwodC5Qcm9taXNlPWR0KX12YXIgRztHPUFycmF5LmlzQXJyYXk/QXJyYXkuaXNBcnJheTpmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfTt2YXIgSCxYLFksVz1HLFo9MCxRPWZ1bmN0aW9uKHQsZSl7cnRbWl09dCxydFtaKzFdPWUsWis9MiwyPT09WiYmKFg/WChkKTpZKCkpfSxLPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp2b2lkIDAsSj1LfHx7fSwkPUouTXV0YXRpb25PYnNlcnZlcnx8Si5XZWJLaXRNdXRhdGlvbk9ic2VydmVyLHR0PSJ1bmRlZmluZWQiIT10eXBlb2YgbiYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChuKSxldD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIGltcG9ydFNjcmlwdHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgTWVzc2FnZUNoYW5uZWwscnQ9bmV3IEFycmF5KDFlMyk7WT10dD91KCk6JD9oKCk6ZXQ/ZigpOnZvaWQgMD09PUsmJiJmdW5jdGlvbiI9PXR5cGVvZiBlP20oKTpwKCk7dmFyIG50PWcsaXQ9dixvdD12b2lkIDAsYXQ9MSxzdD0yLGx0PW5ldyBQLHV0PW5ldyBQLGN0PUQsaHQ9TyxmdD1GLHB0PTAsZHQ9VTtVLmFsbD1jdCxVLnJhY2U9aHQsVS5yZXNvbHZlPWl0LFUucmVqZWN0PWZ0LFUuX3NldFNjaGVkdWxlcj1zLFUuX3NldEFzYXA9bCxVLl9hc2FwPVEsVS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlUsdGhlbjpudCwiY2F0Y2giOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4obnVsbCx0KX19O3ZhciBtdD1WO1YucHJvdG90eXBlLl92YWxpZGF0aW9uRXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEVycm9yKCJBcnJheSBNZXRob2RzIG11c3QgYmUgcHJvdmlkZWQgYW4gQXJyYXkiKX0sVi5wcm90b3R5cGUuX2VudW1lcmF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmxlbmd0aCxlPXRoaXMuX2lucHV0LHI9MDt0aGlzLl9zdGF0ZT09PW90JiZ0PnI7cisrKXRoaXMuX2VhY2hFbnRyeShlW3JdLHIpfSxWLnByb3RvdHlwZS5fZWFjaEVudHJ5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5faW5zdGFuY2VDb25zdHJ1Y3RvcixuPXIucmVzb2x2ZTtpZihuPT09aXQpe3ZhciBpPV8odCk7aWYoaT09PW50JiZ0Ll9zdGF0ZSE9PW90KXRoaXMuX3NldHRsZWRBdCh0Ll9zdGF0ZSxlLHQuX3Jlc3VsdCk7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2YgaSl0aGlzLl9yZW1haW5pbmctLSx0aGlzLl9yZXN1bHRbZV09dDtlbHNlIGlmKHI9PT1kdCl7dmFyIG89bmV3IHIoeSk7QShvLHQsaSksdGhpcy5fd2lsbFNldHRsZUF0KG8sZSl9ZWxzZSB0aGlzLl93aWxsU2V0dGxlQXQobmV3IHIoZnVuY3Rpb24oZSl7ZSh0KX0pLGUpfWVsc2UgdGhpcy5fd2lsbFNldHRsZUF0KG4odCksZSl9LFYucHJvdG90eXBlLl9zZXR0bGVkQXQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMucHJvbWlzZTtuLl9zdGF0ZT09PW90JiYodGhpcy5fcmVtYWluaW5nLS0sdD09PXN0P0wobixyKTp0aGlzLl9yZXN1bHRbZV09ciksMD09PXRoaXMuX3JlbWFpbmluZyYmUyhuLHRoaXMuX3Jlc3VsdCl9LFYucHJvdG90eXBlLl93aWxsU2V0dGxlQXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO3oodCx2b2lkIDAsZnVuY3Rpb24odCl7ci5fc2V0dGxlZEF0KGF0LGUsdCl9LGZ1bmN0aW9uKHQpe3IuX3NldHRsZWRBdChzdCxlLHQpfSl9O3ZhciBndD1xLHZ0PXtQcm9taXNlOmR0LHBvbHlmaWxsOmd0fTsiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hbWQ/dChmdW5jdGlvbigpe3JldHVybiB2dH0pOiJ1bmRlZmluZWQiIT10eXBlb2YgciYmci5leHBvcnRzP3IuZXhwb3J0cz12dDoidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMmJih0aGlzLkVTNlByb21pc2U9dnQpLGd0KCl9KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLGUoIl9wcm9jZXNzIiksInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHtfcHJvY2Vzczo1OX1dLDEyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLG49MDtyPm47bisrKWlmKGU9dC5jaGFyQ29kZUF0KG4pLCg5PmV8fGU+MTMpJiYzMiE9PWUmJjEzMyE9PWUmJjE2MCE9PWUmJjU3NjAhPT1lJiY2MTU4IT09ZSYmKDgxOTI+ZXx8ZT44MjA1KSYmODIzMiE9PWUmJjgyMzMhPT1lJiY4MjM5IT09ZSYmODI4NyE9PWUmJjgyODghPT1lJiYxMjI4OCE9PWUmJjY1Mjc5IT09ZSlyZXR1cm4hMTtyZXR1cm4hMH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7aWYoInN0cmluZyI9PT1lKXt2YXIgcj10O2lmKHQ9K3QsMD09PXQmJm4ocikpcmV0dXJuITF9ZWxzZSBpZigibnVtYmVyIiE9PWUpcmV0dXJuITE7cmV0dXJuIDE+dC10fX0se31dLDEyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSl7dGhpcy5nbD10LHRoaXMudHlwZT1lLHRoaXMuaGFuZGxlPXIsdGhpcy5sZW5ndGg9bix0aGlzLnVzYWdlPWl9ZnVuY3Rpb24gaSh0LGUscixuLGksbyl7dmFyIGE9aS5sZW5ndGgqaS5CWVRFU19QRVJfRUxFTUVOVDtpZigwPm8pcmV0dXJuIHQuYnVmZmVyRGF0YShlLGksbiksYTtpZihhK28+cil0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogSWYgcmVzaXppbmcgYnVmZmVyLCBtdXN0IG5vdCBzcGVjaWZ5IG9mZnNldCIpO3JldHVybiB0LmJ1ZmZlclN1YkRhdGEoZSxvLGkpLHJ9ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgcj1sLm1hbGxvYyh0Lmxlbmd0aCxlKSxuPXQubGVuZ3RoLGk9MDtuPmk7KytpKXJbaV09dFtpXTtyZXR1cm4gcn1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPTEsbj1lLmxlbmd0aC0xO24+PTA7LS1uKXtpZihlW25dIT09cilyZXR1cm4hMTtyKj10W25dfXJldHVybiEwfWZ1bmN0aW9uIHModCxlLHIsaSl7aWYocj1yfHx0LkFSUkFZX0JVRkZFUixpPWl8fHQuRFlOQU1JQ19EUkFXLHIhPT10LkFSUkFZX0JVRkZFUiYmciE9PXQuRUxFTUVOVF9BUlJBWV9CVUZGRVIpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IEludmFsaWQgdHlwZSBmb3Igd2ViZ2wgYnVmZmVyLCBtdXN0IGJlIGVpdGhlciBnbC5BUlJBWV9CVUZGRVIgb3IgZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIiKTtpZihpIT09dC5EWU5BTUlDX0RSQVcmJmkhPT10LlNUQVRJQ19EUkFXJiZpIT09dC5TVFJFQU1fRFJBVyl0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogSW52YWxpZCB1c2FnZSBmb3IgYnVmZmVyLCBtdXN0IGJlIGVpdGhlciBnbC5EWU5BTUlDX0RSQVcsIGdsLlNUQVRJQ19EUkFXIG9yIGdsLlNUUkVBTV9EUkFXIik7dmFyIG89dC5jcmVhdGVCdWZmZXIoKSxhPW5ldyBuKHQscixvLDAsaSk7cmV0dXJuIGEudXBkYXRlKGUpLGF9dmFyIGw9dCgidHlwZWRhcnJheS1wb29sIiksdT10KCJuZGFycmF5LW9wcyIpLGM9dCgibmRhcnJheSIpLGg9WyJ1aW50OCIsInVpbnQ4X2NsYW1wZWQiLCJ1aW50MTYiLCJ1aW50MzIiLCJpbnQ4IiwiaW50MTYiLCJpbnQzMiIsImZsb2F0MzIiXSxmPW4ucHJvdG90eXBlO2YuYmluZD1mdW5jdGlvbigpe3RoaXMuZ2wuYmluZEJ1ZmZlcih0aGlzLnR5cGUsdGhpcy5oYW5kbGUpfSxmLnVuYmluZD1mdW5jdGlvbigpe3RoaXMuZ2wuYmluZEJ1ZmZlcih0aGlzLnR5cGUsbnVsbCl9LGYuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZ2wuZGVsZXRlQnVmZmVyKHRoaXMuaGFuZGxlKX0sZi51cGRhdGU9ZnVuY3Rpb24odCxlKXtpZigibnVtYmVyIiE9dHlwZW9mIGUmJihlPS0xKSx0aGlzLmJpbmQoKSwib2JqZWN0Ij09dHlwZW9mIHQmJiJ1bmRlZmluZWQiIT10eXBlb2YgdC5zaGFwZSl7dmFyIHI9dC5kdHlwZTtpZihoLmluZGV4T2Yocik8MCYmKHI9ImZsb2F0MzIiKSx0aGlzLnR5cGU9PT10aGlzLmdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSKXt2YXIgbj1nbC5nZXRFeHRlbnNpb24oIk9FU19lbGVtZW50X2luZGV4X3VpbnQiKTtyPW4mJiJ1aW50MTYiIT09cj8idWludDMyIjoidWludDE2In1pZihyPT09dC5kdHlwZSYmYSh0LnNoYXBlLHQuc3RyaWRlKSkwPT09dC5vZmZzZXQmJnQuZGF0YS5sZW5ndGg9PT10LnNoYXBlWzBdP3RoaXMubGVuZ3RoPWkodGhpcy5nbCx0aGlzLnR5cGUsdGhpcy5sZW5ndGgsdGhpcy51c2FnZSx0LmRhdGEsZSk6dGhpcy5sZW5ndGg9aSh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQuZGF0YS5zdWJhcnJheSh0Lm9mZnNldCx0LnNoYXBlWzBdKSxlKTtlbHNle3ZhciBzPWwubWFsbG9jKHQuc2l6ZSxyKSxmPWMocyx0LnNoYXBlKTt1LmFzc2lnbihmLHQpLDA+ZT90aGlzLmxlbmd0aD1pKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UscyxlKTp0aGlzLmxlbmd0aD1pKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2Uscy5zdWJhcnJheSgwLHQuc2l6ZSksZSksbC5mcmVlKHMpfX1lbHNlIGlmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBwO3A9dGhpcy50eXBlPT09dGhpcy5nbC5FTEVNRU5UX0FSUkFZX0JVRkZFUj9vKHQsInVpbnQxNiIpOm8odCwiZmxvYXQzMiIpLDA+ZT90aGlzLmxlbmd0aD1pKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UscCxlKTp0aGlzLmxlbmd0aD1pKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UscC5zdWJhcnJheSgwLHQubGVuZ3RoKSxlKSxsLmZyZWUocCl9ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpdGhpcy5sZW5ndGg9aSh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQsZSk7ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIHQmJnZvaWQgMCE9PXQpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IEludmFsaWQgZGF0YSB0eXBlIik7aWYoZT49MCl0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogQ2Fubm90IHNwZWNpZnkgb2Zmc2V0IHdoZW4gcmVzaXppbmcgYnVmZmVyIik7dD0wfHQsMD49dCYmKHQ9MSksdGhpcy5nbC5idWZmZXJEYXRhKHRoaXMudHlwZSwwfHQsdGhpcy51c2FnZSksdGhpcy5sZW5ndGg9dH19LGUuZXhwb3J0cz1zfSx7bmRhcnJheTo0NTYsIm5kYXJyYXktb3BzIjo0NTUsInR5cGVkYXJyYXktcG9vbCI6NDgxfV0sMTMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMucGxvdD10LHRoaXMuc2hhZGVyPWUsdGhpcy5idWZmZXI9cix0aGlzLmJvdW5kcz1bMS8wLDEvMCwtKDEvMCksLSgxLzApXSx0aGlzLm51bVBvaW50cz0wLHRoaXMuY29sb3I9WzAsMCwwLDFdfWZ1bmN0aW9uIGkodCxlKXt2YXIgcj1vKHQuZ2wsbC52ZXJ0ZXgsbC5mcmFnbWVudCksaT1hKHQuZ2wpLHM9bmV3IG4odCxyLGkpO3JldHVybiBzLnVwZGF0ZShlKSx0LmFkZE9iamVjdChzKSxzfXZhciBvPXQoImdsLXNoYWRlciIpLGE9dCgiZ2wtYnVmZmVyIikscz10KCJ0eXBlZGFycmF5LXBvb2wiKSxsPXQoIi4vbGliL3NoYWRlcnMiKTtlLmV4cG9ydHM9aTt2YXIgdT1bWzEsMCwwLDEsMCwwXSxbMSwwLDAsLTEsMCwwXSxbLTEsMCwwLC0xLDAsMF0sWy0xLDAsMCwtMSwwLDBdLFstMSwwLDAsMSwwLDBdLFsxLDAsMCwxLDAsMF0sWzEsMCwtMSwwLDAsMV0sWzEsMCwtMSwwLDAsLTFdLFsxLDAsMSwwLDAsLTFdLFsxLDAsMSwwLDAsLTFdLFsxLDAsMSwwLDAsMV0sWzEsMCwtMSwwLDAsMV0sWy0xLDAsLTEsMCwwLDFdLFstMSwwLC0xLDAsMCwtMV0sWy0xLDAsMSwwLDAsLTFdLFstMSwwLDEsMCwwLC0xXSxbLTEsMCwxLDAsMCwxXSxbLTEsMCwtMSwwLDAsMV0sWzAsMSwxLDAsMCwwXSxbMCwxLC0xLDAsMCwwXSxbMCwtMSwtMSwwLDAsMF0sWzAsLTEsLTEsMCwwLDBdLFswLDEsMSwwLDAsMF0sWzAsLTEsMSwwLDAsMF0sWzAsMSwwLC0xLDEsMF0sWzAsMSwwLC0xLC0xLDBdLFswLDEsMCwxLC0xLDBdLFswLDEsMCwxLDEsMF0sWzAsMSwwLC0xLDEsMF0sWzAsMSwwLDEsLTEsMF0sWzAsLTEsMCwtMSwxLDBdLFswLC0xLDAsLTEsLTEsMF0sWzAsLTEsMCwxLC0xLDBdLFswLC0xLDAsMSwxLDBdLFswLC0xLDAsLTEsMSwwXSxbMCwtMSwwLDEsLTEsMF1dLGM9bi5wcm90b3R5cGU7Yy5kcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9WzEsMCwwLDAsMSwwLDAsMCwxXSxlPVsxLDFdO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXRoaXMucGxvdCxuPXRoaXMuc2hhZGVyLGk9dGhpcy5idWZmZXIsbz10aGlzLmJvdW5kcyxhPXRoaXMubnVtUG9pbnRzO2lmKGEpe3ZhciBzPXIuZ2wsbD1yLmRhdGFCb3gsYz1yLnZpZXdCb3gsaD1yLnBpeGVsUmF0aW8sZj1vWzJdLW9bMF0scD1vWzNdLW9bMV0sZD1sWzJdLWxbMF0sbT1sWzNdLWxbMV07dFswXT0yKmYvZCx0WzRdPTIqcC9tLHRbNl09Mioob1swXS1sWzBdKS9kLTEsdFs3XT0yKihvWzFdLWxbMV0pL20tMTt2YXIgZz1jWzJdLWNbMF0sdj1jWzNdLWNbMV07ZVswXT0yKmgvZyxlWzFdPTIqaC92LGkuYmluZCgpLG4uYmluZCgpLG4udW5pZm9ybXMudmlld1RyYW5zZm9ybT10LG4udW5pZm9ybXMucGl4ZWxTY2FsZT1lLG4udW5pZm9ybXMuY29sb3I9dGhpcy5jb2xvcixuLmF0dHJpYnV0ZXMucG9zaXRpb24ucG9pbnRlcihzLkZMT0FULCExLDE2LDApLG4uYXR0cmlidXRlcy5waXhlbE9mZnNldC5wb2ludGVyKHMuRkxPQVQsITEsMTYsOCkscy5kcmF3QXJyYXlzKHMuVFJJQU5HTEVTLDAsYSp1Lmxlbmd0aCl9fX0oKSxjLmRyYXdQaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxjLnBpY2s9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbH0sYy51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZSxyLG4saT10LnBvc2l0aW9uc3x8W10sbz10LmVycm9yc3x8W10sYT0xOyJsaW5lV2lkdGgiaW4gdCYmKGE9K3QubGluZVdpZHRoKTt2YXIgbD01OyJjYXBTaXplImluIHQmJihsPSt0LmNhcFNpemUpLHRoaXMuY29sb3I9KHQuY29sb3J8fFswLDAsMCwxXSkuc2xpY2UoKTt2YXIgYz10aGlzLmJvdW5kcz1bMS8wLDEvMCwtKDEvMCksLSgxLzApXSxoPXRoaXMubnVtUG9pbnRzPWkubGVuZ3RoPj4xO2ZvcihlPTA7aD5lOysrZSlyPWlbMiplXSxuPWlbMiplKzFdLGNbMF09TWF0aC5taW4ocixjWzBdKSxjWzFdPU1hdGgubWluKG4sY1sxXSksY1syXT1NYXRoLm1heChyLGNbMl0pLGNbM109TWF0aC5tYXgobixjWzNdKTtjWzJdPT09Y1swXSYmKGNbMl0rPTEpLGNbM109PT1jWzFdJiYoY1szXSs9MSk7dmFyIGY9MS8oY1syXS1jWzBdKSxwPTEvKGNbM10tY1sxXSksZD1jWzBdLG09Y1sxXSxnPXMubWFsbG9jRmxvYXQzMihoKnUubGVuZ3RoKjQpLHY9MDtmb3IoZT0wO2g+ZTsrK2Upe3I9aVsyKmVdLG49aVsyKmUrMV07Zm9yKHZhciB5PW9bNCplXSxiPW9bNCplKzFdLHg9b1s0KmUrMl0sXz1vWzQqZSszXSx3PTA7dzx1Lmxlbmd0aDsrK3cpe3ZhciBNPXVbd10saz1NWzBdLEE9TVsxXTswPms/ayo9eTprPjAmJihrKj1iKSwwPkE/QSo9eDpBPjAmJihBKj1fKSxnW3YrK109Ziooci1kK2spLGdbdisrXT1wKihuLW0rQSksZ1t2KytdPWEqTVsyXSsobCthKSpNWzRdLGdbdisrXT1hKk1bM10rKGwrYSkqTVs1XX19dGhpcy5idWZmZXIudXBkYXRlKGcpLHMuZnJlZShnKX0sYy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5wbG90LnJlbW92ZU9iamVjdCh0aGlzKSx0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5idWZmZXIuZGlzcG9zZSgpfX0seyIuL2xpYi9zaGFkZXJzIjoxMzEsImdsLWJ1ZmZlciI6MTI5LCJnbC1zaGFkZXIiOjIwOCwidHlwZWRhcnJheS1wb29sIjo0ODF9XSwxMzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e3ZlcnRleDoicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWMyIHBpeGVsT2Zmc2V0O1xuXG51bmlmb3JtIG1hdDMgdmlld1RyYW5zZm9ybTtcbnVuaWZvcm0gdmVjMiBwaXhlbFNjYWxlO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgc2NyUG9zaXRpb24gPSB2aWV3VHJhbnNmb3JtICogdmVjMyhwb3NpdGlvbiwgMSk7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChcbiAgICBzY3JQb3NpdGlvbi54eSArIHNjclBvc2l0aW9uLnogKiBwaXhlbFNjYWxlICogcGl4ZWxPZmZzZXQsXG4gICAgMCxcbiAgICBzY3JQb3NpdGlvbi56KTtcbn1cbiIsZnJhZ21lbnQ6InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICogY29sb3IuYSwgY29sb3IuYSk7XG59XG4ifX0se31dLDEzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLnNoYWRlcj1uLHRoaXMuYnVmZmVyPWUsdGhpcy52YW89cix0aGlzLnBpeGVsUmF0aW89MSx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLSgxLzApLC0oMS8wKSwtKDEvMCldXSx0aGlzLmNsaXBCb3VuZHM9W1stKDEvMCksLSgxLzApLC0oMS8wKV0sWzEvMCwxLzAsMS8wXV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmNhcFNpemU9WzEwLDEwLDEwXSx0aGlzLmxpbmVDb3VudD1bMCwwLDBdLHRoaXMubGluZU9mZnNldD1bMCwwLDBdLHRoaXMub3BhY2l0eT0xfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9MDszPnI7KytyKXRbMF1bcl09TWF0aC5taW4odFswXVtyXSxlW3JdKSx0WzFdW3JdPU1hdGgubWF4KHRbMV1bcl0sZVtyXSl9ZnVuY3Rpb24gbyh0LGUscixuKXtmb3IodmFyIGk9ZltuXSxvPTA7bzxpLmxlbmd0aDsrK28pe3ZhciBhPWlbb107dC5wdXNoKGVbMF0sZVsxXSxlWzJdLHJbMF0sclsxXSxyWzJdLHJbM10sYVswXSxhWzFdLGFbMl0pfXJldHVybiBpLmxlbmd0aH1mdW5jdGlvbiBhKHQpe3ZhciBlPXQuZ2wscj1zKGUpLGk9bChlLFt7YnVmZmVyOnIsdHlwZTplLkZMT0FULHNpemU6MyxvZmZzZXQ6MCxzdHJpZGU6NDB9LHtidWZmZXI6cix0eXBlOmUuRkxPQVQsc2l6ZTo0LG9mZnNldDoxMixzdHJpZGU6NDB9LHtidWZmZXI6cix0eXBlOmUuRkxPQVQsc2l6ZTozLG9mZnNldDoyOCxzdHJpZGU6NDB9XSksbz11KGUpO28uYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLG8uYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0xLG8uYXR0cmlidXRlcy5vZmZzZXQubG9jYXRpb249Mjt2YXIgYT1uZXcgbihlLHIsaSxvKTtyZXR1cm4gYS51cGRhdGUodCksYX1lLmV4cG9ydHM9YTt2YXIgcz10KCJnbC1idWZmZXIiKSxsPXQoImdsLXZhbyIpLHU9dCgiLi9zaGFkZXJzL2luZGV4IiksYz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0saD1uLnByb3RvdHlwZTtoLmlzT3BhcXVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BhY2l0eT49MX0saC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BhY2l0eTwxfSxoLmRyYXdUcmFuc3BhcmVudD1oLmRyYXc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nbCxyPXRoaXMuc2hhZGVyLnVuaWZvcm1zO3RoaXMuc2hhZGVyLmJpbmQoKTt2YXIgbj1yLnZpZXc9dC52aWV3fHxjLGk9ci5wcm9qZWN0aW9uPXQucHJvamVjdGlvbnx8YztyLm1vZGVsPXQubW9kZWx8fGMsci5jbGlwQm91bmRzPXRoaXMuY2xpcEJvdW5kcyxyLm9wYWNpdHk9dGhpcy5vcGFjaXR5O3ZhciBvPW5bMTJdLGE9blsxM10scz1uWzE0XSxsPW5bMTVdLHU9dGhpcy5waXhlbFJhdGlvKihpWzNdKm8raVs3XSphK2lbMTFdKnMraVsxNV0qbCkvZS5kcmF3aW5nQnVmZmVySGVpZ2h0O3RoaXMudmFvLmJpbmQoKTtmb3IodmFyIGg9MDszPmg7KytoKWUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoW2hdKSxyLmNhcFNpemU9dGhpcy5jYXBTaXplW2hdKnUsZS5kcmF3QXJyYXlzKGUuTElORVMsdGhpcy5saW5lT2Zmc2V0W2hdLHRoaXMubGluZUNvdW50W2hdKTt0aGlzLnZhby51bmJpbmQoKX07dmFyIGY9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9bmV3IEFycmF5KDMpLGU9MDszPmU7KytlKXtmb3IodmFyIHI9W10sbj0xOzI+PW47KytuKWZvcih2YXIgaT0tMTsxPj1pO2krPTIpe3ZhciBvPShuK2UpJTMsYT1bMCwwLDBdO2Fbb109aSxyLnB1c2goYSl9dFtlXT1yfXJldHVybiB0fSgpO2gudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sImxpbmVXaWR0aCJpbiB0JiYodGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGgsQXJyYXkuaXNBcnJheSh0aGlzLmxpbmVXaWR0aCl8fCh0aGlzLmxpbmVXaWR0aD1bdGhpcy5saW5lV2lkdGgsdGhpcy5saW5lV2lkdGgsdGhpcy5saW5lV2lkdGhdKSksImNhcFNpemUiaW4gdCYmKHRoaXMuY2FwU2l6ZT10LmNhcFNpemUsQXJyYXkuaXNBcnJheSh0aGlzLmNhcFNpemUpfHwodGhpcy5jYXBTaXplPVt0aGlzLmNhcFNpemUsdGhpcy5jYXBTaXplLHRoaXMuY2FwU2l6ZV0pKSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PXQub3BhY2l0eSk7dmFyIGU9dC5jb2xvcnx8W1swLDAsMF0sWzAsMCwwXSxbMCwwLDBdXSxyPXQucG9zaXRpb24sbj10LmVycm9yO2lmKEFycmF5LmlzQXJyYXkoZVswXSl8fChlPVtlLGUsZV0pLHImJm4pe3ZhciBhPVtdLHM9ci5sZW5ndGgsbD0wO3RoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstKDEvMCksLSgxLzApLC0oMS8wKV1dLHRoaXMubGluZUNvdW50PVswLDAsMF07Zm9yKHZhciB1PTA7Mz51OysrdSl7dGhpcy5saW5lT2Zmc2V0W3VdPWw7dDpmb3IodmFyIGM9MDtzPmM7KytjKXtmb3IodmFyIGg9cltjXSxmPTA7Mz5mOysrZilpZihpc05hTihoW2ZdKXx8IWlzRmluaXRlKGhbZl0pKWNvbnRpbnVlIHQ7dmFyIHA9bltjXSxkPWVbdV07aWYoQXJyYXkuaXNBcnJheShkWzBdKSYmKGQ9ZVtjXSksMz09PWQubGVuZ3RoJiYoZD1bZFswXSxkWzFdLGRbMl0sMV0pLCFpc05hTihwWzBdW3VdKSYmIWlzTmFOKHBbMV1bdV0pKXtpZihwWzBdW3VdPDApe3ZhciBtPWguc2xpY2UoKTttW3VdKz1wWzBdW3VdLGEucHVzaChoWzBdLGhbMV0saFsyXSxkWzBdLGRbMV0sZFsyXSxkWzNdLDAsMCwwLG1bMF0sbVsxXSxtWzJdLGRbMF0sZFsxXSxkWzJdLGRbM10sMCwwLDApLGkodGhpcy5ib3VuZHMsbSksbCs9MitvKGEsbSxkLHUpfWlmKHBbMV1bdV0+MCl7dmFyIG09aC5zbGljZSgpO21bdV0rPXBbMV1bdV0sYS5wdXNoKGhbMF0saFsxXSxoWzJdLGRbMF0sZFsxXSxkWzJdLGRbM10sMCwwLDAsbVswXSxtWzFdLG1bMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCksaSh0aGlzLmJvdW5kcyxtKSxsKz0yK28oYSxtLGQsdSl9fX10aGlzLmxpbmVDb3VudFt1XT1sLXRoaXMubGluZU9mZnNldFt1XX10aGlzLmJ1ZmZlci51cGRhdGUoYSl9fSxoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5idWZmZXIuZGlzcG9zZSgpLHRoaXMudmFvLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzL2luZGV4IjoxMzMsImdsLWJ1ZmZlciI6MTI5LCJnbC12YW8iOjIzN31dLDEzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1zaGFkZXIiKSxpPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uLCBvZmZzZXQ7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgY2FwU2l6ZTtcbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52YXJ5aW5nIHZlYzMgZnJhZ1Bvc2l0aW9uO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzQgd29ybGRQb3NpdGlvbiAgPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIHdvcmxkUG9zaXRpb24gICAgICAgPSAod29ybGRQb3NpdGlvbiAvIHdvcmxkUG9zaXRpb24udykgKyB2ZWM0KGNhcFNpemUgKiBvZmZzZXQsIDAuMCk7XG4gIGdsX1Bvc2l0aW9uICAgICAgICAgPSBwcm9qZWN0aW9uICogdmlldyAqIHdvcmxkUG9zaXRpb247XG4gIGZyYWdDb2xvciAgICAgICAgICAgPSBjb2xvcjtcbiAgZnJhZ1Bvc2l0aW9uICAgICAgICA9IHBvc2l0aW9uO1xufSIsbz0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG52YXJ5aW5nIHZlYzMgZnJhZ1Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4oZnJhZ1Bvc2l0aW9uLCBjbGlwQm91bmRzWzBdKSkgfHwgYW55KGdyZWF0ZXJUaGFuKGZyYWdQb3NpdGlvbiwgY2xpcEJvdW5kc1sxXSkpKSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuICBnbF9GcmFnQ29sb3IgPSBvcGFjaXR5ICogZnJhZ0NvbG9yO1xufSI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsaSxvLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJvZmZzZXQiLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifV0pfX0seyJnbC1zaGFkZXIiOjIwOH1dLDEzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQuZ2V0UGFyYW1ldGVyKHQuRlJBTUVCVUZGRVJfQklORElORykscj10LmdldFBhcmFtZXRlcih0LlJFTkRFUkJVRkZFUl9CSU5ESU5HKSxuPXQuZ2V0UGFyYW1ldGVyKHQuVEVYVFVSRV9CSU5ESU5HXzJEKTtyZXR1cm5bZSxyLG5dfWZ1bmN0aW9uIGkodCxlKXt0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLGVbMF0pLHQuYmluZFJlbmRlcmJ1ZmZlcih0LlJFTkRFUkJVRkZFUixlWzFdKSx0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCxlWzJdKX1mdW5jdGlvbiBvKHQsZSl7dmFyIHI9dC5nZXRQYXJhbWV0ZXIoZS5NQVhfQ09MT1JfQVRUQUNITUVOVFNfV0VCR0wpO3k9bmV3IEFycmF5KHIrMSk7Zm9yKHZhciBuPTA7cj49bjsrK24pe2Zvcih2YXIgaT1uZXcgQXJyYXkociksbz0wO24+bzsrK28paVtvXT10LkNPTE9SX0FUVEFDSE1FTlQwK287Zm9yKHZhciBvPW47cj5vOysrbylpW29dPXQuTk9ORTt5W25dPWl9fWZ1bmN0aW9uIGEodCl7c3dpdGNoKHQpe2Nhc2UgZDp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgdW5zdXBwb3J0ZWQiKTtjYXNlIG06dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGluY29tcGxldGUgYXR0YWNobWVudCIpO2Nhc2UgZzp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBkaW1lbnNpb25zIik7Y2FzZSB2OnRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIG1pc3NpbmcgYXR0YWNobWVudCIpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGZhaWxlZCBmb3IgdW5zcGVjaWZpZWQgcmVhc29uIil9fWZ1bmN0aW9uIHModCxlLHIsbixpLG8pe2lmKCFuKXJldHVybiBudWxsO3ZhciBhPXAodCxlLHIsaSxuKTtyZXR1cm4gYS5tYWdGaWx0ZXI9dC5ORUFSRVNULGEubWluRmlsdGVyPXQuTkVBUkVTVCxhLm1pcFNhbXBsZXM9MSxhLmJpbmQoKSx0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKHQuRlJBTUVCVUZGRVIsbyx0LlRFWFRVUkVfMkQsYS5oYW5kbGUsMCksYX1mdW5jdGlvbiBsKHQsZSxyLG4saSl7dmFyIG89dC5jcmVhdGVSZW5kZXJidWZmZXIoKTtyZXR1cm4gdC5iaW5kUmVuZGVyYnVmZmVyKHQuUkVOREVSQlVGRkVSLG8pLHQucmVuZGVyYnVmZmVyU3RvcmFnZSh0LlJFTkRFUkJVRkZFUixuLGUsciksdC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcih0LkZSQU1FQlVGRkVSLGksdC5SRU5ERVJCVUZGRVIsbyksb31mdW5jdGlvbiB1KHQpe3ZhciBlPW4odC5nbCkscj10LmdsLG89dC5oYW5kbGU9ci5jcmVhdGVGcmFtZWJ1ZmZlcigpLHU9dC5fc2hhcGVbMF0sYz10Ll9zaGFwZVsxXSxoPXQuY29sb3IubGVuZ3RoLGY9dC5fZXh0LHA9dC5fdXNlU3RlbmNpbCxkPXQuX3VzZURlcHRoLG09dC5fY29sb3JUeXBlO3IuYmluZEZyYW1lYnVmZmVyKHIuRlJBTUVCVUZGRVIsbyk7Zm9yKHZhciBnPTA7aD5nOysrZyl0LmNvbG9yW2ddPXMocix1LGMsbSxyLlJHQkEsci5DT0xPUl9BVFRBQ0hNRU5UMCtnKTswPT09aD8odC5fY29sb3JfcmI9bChyLHUsYyxyLlJHQkE0LHIuQ09MT1JfQVRUQUNITUVOVDApLGYmJmYuZHJhd0J1ZmZlcnNXRUJHTCh5WzBdKSk6aD4xJiZmLmRyYXdCdWZmZXJzV0VCR0woeVtoXSk7dmFyIHY9ci5nZXRFeHRlbnNpb24oIldFQkdMX2RlcHRoX3RleHR1cmUiKTt2P3A/dC5kZXB0aD1zKHIsdSxjLHYuVU5TSUdORURfSU5UXzI0XzhfV0VCR0wsci5ERVBUSF9TVEVOQ0lMLHIuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UKTpkJiYodC5kZXB0aD1zKHIsdSxjLHIuVU5TSUdORURfU0hPUlQsci5ERVBUSF9DT01QT05FTlQsci5ERVBUSF9BVFRBQ0hNRU5UKSk6ZCYmcD90Ll9kZXB0aF9yYj1sKHIsdSxjLHIuREVQVEhfU1RFTkNJTCxyLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCk6ZD90Ll9kZXB0aF9yYj1sKHIsdSxjLHIuREVQVEhfQ09NUE9ORU5UMTYsci5ERVBUSF9BVFRBQ0hNRU5UKTpwJiYodC5fZGVwdGhfcmI9bChyLHUsYyxyLlNURU5DSUxfSU5ERVgsci5TVEVOQ0lMX0FUVEFDSE1FTlQpKTt2YXIgYj1yLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoci5GUkFNRUJVRkZFUik7aWYoYiE9PXIuRlJBTUVCVUZGRVJfQ09NUExFVEUpe3QuX2Rlc3Ryb3llZD0hMCxyLmJpbmRGcmFtZWJ1ZmZlcihyLkZSQU1FQlVGRkVSLG51bGwpLHIuZGVsZXRlRnJhbWVidWZmZXIodC5oYW5kbGUpLHQuaGFuZGxlPW51bGwsdC5kZXB0aCYmKHQuZGVwdGguZGlzcG9zZSgpLHQuZGVwdGg9bnVsbCksdC5fZGVwdGhfcmImJihyLmRlbGV0ZVJlbmRlcmJ1ZmZlcih0Ll9kZXB0aF9yYiksdC5fZGVwdGhfcmI9bnVsbCk7Zm9yKHZhciBnPTA7Zzx0LmNvbG9yLmxlbmd0aDsrK2cpdC5jb2xvcltnXS5kaXNwb3NlKCksdC5jb2xvcltnXT1udWxsO3QuX2NvbG9yX3JiJiYoci5kZWxldGVSZW5kZXJidWZmZXIodC5fY29sb3JfcmIpLHQuX2NvbG9yX3JiPW51bGwpLGkocixlKSxhKGIpfWkocixlKX1mdW5jdGlvbiBjKHQsZSxyLG4saSxvLGEscyl7dGhpcy5nbD10LHRoaXMuX3NoYXBlPVswfGUsMHxyXSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZXh0PXMsdGhpcy5jb2xvcj1uZXcgQXJyYXkoaSk7Zm9yKHZhciBsPTA7aT5sOysrbCl0aGlzLmNvbG9yW2xdPW51bGw7dGhpcy5fY29sb3JfcmI9bnVsbCx0aGlzLmRlcHRoPW51bGwsdGhpcy5fZGVwdGhfcmI9bnVsbCx0aGlzLl9jb2xvclR5cGU9bix0aGlzLl91c2VEZXB0aD1vLHRoaXMuX3VzZVN0ZW5jaWw9YTt2YXIgYz10aGlzLGg9WzB8ZSwwfHJdO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGgsezA6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLl9zaGFwZVswXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLndpZHRoPXR9fSwxOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5fc2hhcGVbMV19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5oZWlnaHQ9dH19fSksdGhpcy5fc2hhcGVWZWN0b3I9aCx1KHRoaXMpfWZ1bmN0aW9uIGgodCxlLHIpe2lmKHQuX2Rlc3Ryb3llZCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ2FuJ3QgcmVzaXplIGRlc3Ryb3llZCBGQk8iKTtpZih0Ll9zaGFwZVswXSE9PWV8fHQuX3NoYXBlWzFdIT09cil7dmFyIG89dC5nbCxzPW8uZ2V0UGFyYW1ldGVyKG8uTUFYX1JFTkRFUkJVRkZFUl9TSVpFKTtpZigwPmV8fGU+c3x8MD5yfHxyPnMpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IENhbid0IHJlc2l6ZSBGQk8sIGludmFsaWQgZGltZW5zaW9ucyIpO3QuX3NoYXBlWzBdPWUsdC5fc2hhcGVbMV09cjtmb3IodmFyIGw9bihvKSx1PTA7dTx0LmNvbG9yLmxlbmd0aDsrK3UpdC5jb2xvclt1XS5zaGFwZT10Ll9zaGFwZTt0Ll9jb2xvcl9yYiYmKG8uYmluZFJlbmRlcmJ1ZmZlcihvLlJFTkRFUkJVRkZFUix0Ll9jb2xvcl9yYiksby5yZW5kZXJidWZmZXJTdG9yYWdlKG8uUkVOREVSQlVGRkVSLG8uUkdCQTQsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pKSx0LmRlcHRoJiYodC5kZXB0aC5zaGFwZT10Ll9zaGFwZSksdC5fZGVwdGhfcmImJihvLmJpbmRSZW5kZXJidWZmZXIoby5SRU5ERVJCVUZGRVIsdC5fZGVwdGhfcmIpLHQuX3VzZURlcHRoJiZ0Ll91c2VTdGVuY2lsP28ucmVuZGVyYnVmZmVyU3RvcmFnZShvLlJFTkRFUkJVRkZFUixvLkRFUFRIX1NURU5DSUwsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pOnQuX3VzZURlcHRoP28ucmVuZGVyYnVmZmVyU3RvcmFnZShvLlJFTkRFUkJVRkZFUixvLkRFUFRIX0NPTVBPTkVOVDE2LHQuX3NoYXBlWzBdLHQuX3NoYXBlWzFdKTp0Ll91c2VTdGVuY2lsJiZvLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uoby5SRU5ERVJCVUZGRVIsby5TVEVOQ0lMX0lOREVYLHQuX3NoYXBlWzBdLHQuX3NoYXBlWzFdKSksby5iaW5kRnJhbWVidWZmZXIoby5GUkFNRUJVRkZFUix0LmhhbmRsZSk7dmFyIGM9by5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKG8uRlJBTUVCVUZGRVIpO2MhPT1vLkZSQU1FQlVGRkVSX0NPTVBMRVRFJiYodC5kaXNwb3NlKCksaShvLGwpLGEoYykpLGkobyxsKX19ZnVuY3Rpb24gZih0LGUscixuKXtkfHwoZD10LkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVELG09dC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQsZz10LkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyx2PXQuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQpO3ZhciBpPXQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9kcmF3X2J1ZmZlcnMiKTtpZigheSYmaSYmbyh0LGkpLEFycmF5LmlzQXJyYXkoZSkmJihuPXIscj0wfGVbMV0sZT0wfGVbMF0pLCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogTWlzc2luZyBzaGFwZSBwYXJhbWV0ZXIiKTt2YXIgYT10LmdldFBhcmFtZXRlcih0Lk1BWF9SRU5ERVJCVUZGRVJfU0laRSk7aWYoMD5lfHxlPmF8fDA+cnx8cj5hKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBQYXJhbWV0ZXJzIGFyZSB0b28gbGFyZ2UgZm9yIEZCTyIpO249bnx8e307dmFyIHM9MTtpZigiY29sb3IiaW4gbil7aWYocz1NYXRoLm1heCgwfG4uY29sb3IsMCksMD5zKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBNdXN0IHNwZWNpZnkgYSBub25uZWdhdGl2ZSBudW1iZXIgb2YgY29sb3JzIik7aWYocz4xKXtpZighaSl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogTXVsdGlwbGUgZHJhdyBidWZmZXIgZXh0ZW5zaW9uIG5vdCBzdXBwb3J0ZWQiKTtpZihzPnQuZ2V0UGFyYW1ldGVyKGkuTUFYX0NPTE9SX0FUVEFDSE1FTlRTX1dFQkdMKSl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ29udGV4dCBkb2VzIG5vdCBzdXBwb3J0ICIrcysiIGRyYXcgYnVmZmVycyIpOwp9fXZhciBsPXQuVU5TSUdORURfQllURSx1PXQuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdCIpO2lmKG4uZmxvYXQmJnM+MCl7aWYoIXUpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IENvbnRleHQgZG9lcyBub3Qgc3VwcG9ydCBmbG9hdGluZyBwb2ludCB0ZXh0dXJlcyIpO2w9dC5GTE9BVH1lbHNlIG4ucHJlZmVyRmxvYXQmJnM+MCYmdSYmKGw9dC5GTE9BVCk7dmFyIGg9ITA7ImRlcHRoImluIG4mJihoPSEhbi5kZXB0aCk7dmFyIGY9ITE7cmV0dXJuInN0ZW5jaWwiaW4gbiYmKGY9ISFuLnN0ZW5jaWwpLG5ldyBjKHQsZSxyLGwscyxoLGYsaSl9dmFyIHA9dCgiZ2wtdGV4dHVyZTJkIik7ZS5leHBvcnRzPWY7dmFyIGQsbSxnLHYseT1udWxsLGI9Yy5wcm90b3R5cGU7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoYix7c2hhcGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXN0cm95ZWQ/WzAsMF06dGhpcy5fc2hhcGVWZWN0b3J9LHNldDpmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpfHwodD1bMHx0LDB8dF0pLDIhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogU2hhcGUgdmVjdG9yIG11c3QgYmUgbGVuZ3RoIDIiKTt2YXIgZT0wfHRbMF0scj0wfHRbMV07cmV0dXJuIGgodGhpcyxlLHIpLFtlLHJdfSxlbnVtZXJhYmxlOiExfSx3aWR0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZD8wOnRoaXMuX3NoYXBlWzBdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9MHx0LGgodGhpcyx0LHRoaXMuX3NoYXBlWzFdKSx0fSxlbnVtZXJhYmxlOiExfSxoZWlnaHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXN0cm95ZWQ/MDp0aGlzLl9zaGFwZVsxXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0PTB8dCxoKHRoaXMsdGhpcy5fc2hhcGVbMF0sdCksdH0sZW51bWVyYWJsZTohMX19KSxiLmJpbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fZGVzdHJveWVkKXt2YXIgdD10aGlzLmdsO3QuYmluZEZyYW1lYnVmZmVyKHQuRlJBTUVCVUZGRVIsdGhpcy5oYW5kbGUpLHQudmlld3BvcnQoMCwwLHRoaXMuX3NoYXBlWzBdLHRoaXMuX3NoYXBlWzFdKX19LGIuZGlzcG9zZT1mdW5jdGlvbigpe2lmKCF0aGlzLl9kZXN0cm95ZWQpe3RoaXMuX2Rlc3Ryb3llZD0hMDt2YXIgdD10aGlzLmdsO3QuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5oYW5kbGUpLHRoaXMuaGFuZGxlPW51bGwsdGhpcy5kZXB0aCYmKHRoaXMuZGVwdGguZGlzcG9zZSgpLHRoaXMuZGVwdGg9bnVsbCksdGhpcy5fZGVwdGhfcmImJih0LmRlbGV0ZVJlbmRlcmJ1ZmZlcih0aGlzLl9kZXB0aF9yYiksdGhpcy5fZGVwdGhfcmI9bnVsbCk7Zm9yKHZhciBlPTA7ZTx0aGlzLmNvbG9yLmxlbmd0aDsrK2UpdGhpcy5jb2xvcltlXS5kaXNwb3NlKCksdGhpcy5jb2xvcltlXT1udWxsO3RoaXMuX2NvbG9yX3JiJiYodC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5fY29sb3JfcmIpLHRoaXMuX2NvbG9yX3JiPW51bGwpfX19LHsiZ2wtdGV4dHVyZTJkIjoyMzN9XSwxMzU6W2Z1bmN0aW9uKHQsZSxyKXtyLmxpbmVWZXJ0ZXg9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgaW52ZXJzZV8xXzAoZmxvYXQgbSkge1xuICByZXR1cm4gMS4wIC8gbTtcbn1cblxubWF0MiBpbnZlcnNlXzFfMChtYXQyIG0pIHtcbiAgcmV0dXJuIG1hdDIobVsxXVsxXSwtbVswXVsxXSxcbiAgICAgICAgICAgICAtbVsxXVswXSwgbVswXVswXSkgLyAobVswXVswXSptWzFdWzFdIC0gbVswXVsxXSptWzFdWzBdKTtcbn1cblxubWF0MyBpbnZlcnNlXzFfMChtYXQzIG0pIHtcbiAgZmxvYXQgYTAwID0gbVswXVswXSwgYTAxID0gbVswXVsxXSwgYTAyID0gbVswXVsyXTtcbiAgZmxvYXQgYTEwID0gbVsxXVswXSwgYTExID0gbVsxXVsxXSwgYTEyID0gbVsxXVsyXTtcbiAgZmxvYXQgYTIwID0gbVsyXVswXSwgYTIxID0gbVsyXVsxXSwgYTIyID0gbVsyXVsyXTtcblxuICBmbG9hdCBiMDEgPSBhMjIgKiBhMTEgLSBhMTIgKiBhMjE7XG4gIGZsb2F0IGIxMSA9IC1hMjIgKiBhMTAgKyBhMTIgKiBhMjA7XG4gIGZsb2F0IGIyMSA9IGEyMSAqIGExMCAtIGExMSAqIGEyMDtcblxuICBmbG9hdCBkZXQgPSBhMDAgKiBiMDEgKyBhMDEgKiBiMTEgKyBhMDIgKiBiMjE7XG5cbiAgcmV0dXJuIG1hdDMoYjAxLCAoLWEyMiAqIGEwMSArIGEwMiAqIGEyMSksIChhMTIgKiBhMDEgLSBhMDIgKiBhMTEpLFxuICAgICAgICAgICAgICBiMTEsIChhMjIgKiBhMDAgLSBhMDIgKiBhMjApLCAoLWExMiAqIGEwMCArIGEwMiAqIGExMCksXG4gICAgICAgICAgICAgIGIyMSwgKC1hMjEgKiBhMDAgKyBhMDEgKiBhMjApLCAoYTExICogYTAwIC0gYTAxICogYTEwKSkgLyBkZXQ7XG59XG5cbm1hdDQgaW52ZXJzZV8xXzAobWF0NCBtKSB7XG4gIGZsb2F0XG4gICAgICBhMDAgPSBtWzBdWzBdLCBhMDEgPSBtWzBdWzFdLCBhMDIgPSBtWzBdWzJdLCBhMDMgPSBtWzBdWzNdLFxuICAgICAgYTEwID0gbVsxXVswXSwgYTExID0gbVsxXVsxXSwgYTEyID0gbVsxXVsyXSwgYTEzID0gbVsxXVszXSxcbiAgICAgIGEyMCA9IG1bMl1bMF0sIGEyMSA9IG1bMl1bMV0sIGEyMiA9IG1bMl1bMl0sIGEyMyA9IG1bMl1bM10sXG4gICAgICBhMzAgPSBtWzNdWzBdLCBhMzEgPSBtWzNdWzFdLCBhMzIgPSBtWzNdWzJdLCBhMzMgPSBtWzNdWzNdLFxuXG4gICAgICBiMDAgPSBhMDAgKiBhMTEgLSBhMDEgKiBhMTAsXG4gICAgICBiMDEgPSBhMDAgKiBhMTIgLSBhMDIgKiBhMTAsXG4gICAgICBiMDIgPSBhMDAgKiBhMTMgLSBhMDMgKiBhMTAsXG4gICAgICBiMDMgPSBhMDEgKiBhMTIgLSBhMDIgKiBhMTEsXG4gICAgICBiMDQgPSBhMDEgKiBhMTMgLSBhMDMgKiBhMTEsXG4gICAgICBiMDUgPSBhMDIgKiBhMTMgLSBhMDMgKiBhMTIsXG4gICAgICBiMDYgPSBhMjAgKiBhMzEgLSBhMjEgKiBhMzAsXG4gICAgICBiMDcgPSBhMjAgKiBhMzIgLSBhMjIgKiBhMzAsXG4gICAgICBiMDggPSBhMjAgKiBhMzMgLSBhMjMgKiBhMzAsXG4gICAgICBiMDkgPSBhMjEgKiBhMzIgLSBhMjIgKiBhMzEsXG4gICAgICBiMTAgPSBhMjEgKiBhMzMgLSBhMjMgKiBhMzEsXG4gICAgICBiMTEgPSBhMjIgKiBhMzMgLSBhMjMgKiBhMzIsXG5cbiAgICAgIGRldCA9IGIwMCAqIGIxMSAtIGIwMSAqIGIxMCArIGIwMiAqIGIwOSArIGIwMyAqIGIwOCAtIGIwNCAqIGIwNyArIGIwNSAqIGIwNjtcblxuICByZXR1cm4gbWF0NChcbiAgICAgIGExMSAqIGIxMSAtIGExMiAqIGIxMCArIGExMyAqIGIwOSxcbiAgICAgIGEwMiAqIGIxMCAtIGEwMSAqIGIxMSAtIGEwMyAqIGIwOSxcbiAgICAgIGEzMSAqIGIwNSAtIGEzMiAqIGIwNCArIGEzMyAqIGIwMyxcbiAgICAgIGEyMiAqIGIwNCAtIGEyMSAqIGIwNSAtIGEyMyAqIGIwMyxcbiAgICAgIGExMiAqIGIwOCAtIGExMCAqIGIxMSAtIGExMyAqIGIwNyxcbiAgICAgIGEwMCAqIGIxMSAtIGEwMiAqIGIwOCArIGEwMyAqIGIwNyxcbiAgICAgIGEzMiAqIGIwMiAtIGEzMCAqIGIwNSAtIGEzMyAqIGIwMSxcbiAgICAgIGEyMCAqIGIwNSAtIGEyMiAqIGIwMiArIGEyMyAqIGIwMSxcbiAgICAgIGExMCAqIGIxMCAtIGExMSAqIGIwOCArIGExMyAqIGIwNixcbiAgICAgIGEwMSAqIGIwOCAtIGEwMCAqIGIxMCAtIGEwMyAqIGIwNixcbiAgICAgIGEzMCAqIGIwNCAtIGEzMSAqIGIwMiArIGEzMyAqIGIwMCxcbiAgICAgIGEyMSAqIGIwMiAtIGEyMCAqIGIwNCAtIGEyMyAqIGIwMCxcbiAgICAgIGExMSAqIGIwNyAtIGExMCAqIGIwOSAtIGExMiAqIGIwNixcbiAgICAgIGEwMCAqIGIwOSAtIGEwMSAqIGIwNyArIGEwMiAqIGIwNixcbiAgICAgIGEzMSAqIGIwMSAtIGEzMCAqIGIwMyAtIGEzMiAqIGIwMCxcbiAgICAgIGEyMCAqIGIwMyAtIGEyMSAqIGIwMSArIGEyMiAqIGIwMCkgLyBkZXQ7XG59XG5cblxuXG5hdHRyaWJ1dGUgdmVjMiBhLCBkO1xuXG51bmlmb3JtIG1hdDMgbWF0cml4O1xudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xudW5pZm9ybSBmbG9hdCB3aWR0aDtcblxudmFyeWluZyB2ZWMyIGRpcmVjdGlvbjtcblxudm9pZCBtYWluKCkge1xuICB2ZWMyIGRpciA9IChtYXRyaXggKiB2ZWMzKGQsIDApKS54eTtcbiAgdmVjMyBiYXNlID0gbWF0cml4ICogdmVjMyhhLCAxKTtcbiAgdmVjMiBuID0gMC41ICogd2lkdGggKlxuICAgIG5vcm1hbGl6ZShzY3JlZW5TaGFwZS55eCAqIHZlYzIoZGlyLnksIC1kaXIueCkpIC8gc2NyZWVuU2hhcGUueHk7XG4gIHZlYzIgdGFuZ2VudCA9IG5vcm1hbGl6ZShzY3JlZW5TaGFwZS54eSAqIGRpcik7XG4gIGlmKGRpci54IDwgMC4wIHx8IChkaXIueCA9PSAwLjAgJiYgZGlyLnkgPCAwLjApKSB7XG4gICAgZGlyZWN0aW9uID0gLXRhbmdlbnQ7XG4gIH0gZWxzZSB7XG4gICAgZGlyZWN0aW9uID0gdGFuZ2VudDtcbiAgfVxuICBnbF9Qb3NpdGlvbiA9IHZlYzQoYmFzZS54eS9iYXNlLnogKyBuLCAwLCAxKTtcbn1cbiIsci5saW5lRnJhZ21lbnQ9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xudW5pZm9ybSBzYW1wbGVyMkQgZGFzaFBhdHRlcm47XG51bmlmb3JtIGZsb2F0IGRhc2hMZW5ndGg7XG5cbnZhcnlpbmcgdmVjMiBkaXJlY3Rpb247XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgdCA9IGZyYWN0KGRvdChkaXJlY3Rpb24sIGdsX0ZyYWdDb29yZC54eSkgLyBkYXNoTGVuZ3RoKTtcbiAgdmVjNCBwY29sb3IgPSBjb2xvciAqIHRleHR1cmUyRChkYXNoUGF0dGVybiwgdmVjMih0LCAwLjApKS5yO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBjb2xvci5yZ2IgKiBwY29sb3IuYSwgcGNvbG9yLmEpO1xufVxuIixyLm1pdHJlVmVydGV4PSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHA7XG5cbnVuaWZvcm0gbWF0MyAgbWF0cml4O1xudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xudW5pZm9ybSBmbG9hdCByYWRpdXM7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyBwcCA9IG1hdHJpeCAqIHZlYzMocCwgMSk7XG4gIGdsX1Bvc2l0aW9uICA9IHZlYzQocHAueHksIDAsIHBwLnopO1xuICBnbF9Qb2ludFNpemUgPSByYWRpdXM7XG59XG4iLHIubWl0cmVGcmFnbWVudD0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYobGVuZ3RoKGdsX1BvaW50Q29vcmQueHkgLSAwLjUpID4gMC4yNSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvci5yZ2IsIGNvbG9yLmEpO1xufVxuIixyLnBpY2tWZXJ0ZXg9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgYSwgZDtcbmF0dHJpYnV0ZSB2ZWM0IHBpY2swLCBwaWNrMTtcblxudW5pZm9ybSBtYXQzIG1hdHJpeDtcbnVuaWZvcm0gdmVjMiBzY3JlZW5TaGFwZTtcbnVuaWZvcm0gZmxvYXQgd2lkdGg7XG5cbnZhcnlpbmcgdmVjNCBwaWNrQSwgcGlja0I7XG5cbmZsb2F0IGludmVyc2VfMV8wKGZsb2F0IG0pIHtcbiAgcmV0dXJuIDEuMCAvIG07XG59XG5cbm1hdDIgaW52ZXJzZV8xXzAobWF0MiBtKSB7XG4gIHJldHVybiBtYXQyKG1bMV1bMV0sLW1bMF1bMV0sXG4gICAgICAgICAgICAgLW1bMV1bMF0sIG1bMF1bMF0pIC8gKG1bMF1bMF0qbVsxXVsxXSAtIG1bMF1bMV0qbVsxXVswXSk7XG59XG5cbm1hdDMgaW52ZXJzZV8xXzAobWF0MyBtKSB7XG4gIGZsb2F0IGEwMCA9IG1bMF1bMF0sIGEwMSA9IG1bMF1bMV0sIGEwMiA9IG1bMF1bMl07XG4gIGZsb2F0IGExMCA9IG1bMV1bMF0sIGExMSA9IG1bMV1bMV0sIGExMiA9IG1bMV1bMl07XG4gIGZsb2F0IGEyMCA9IG1bMl1bMF0sIGEyMSA9IG1bMl1bMV0sIGEyMiA9IG1bMl1bMl07XG5cbiAgZmxvYXQgYjAxID0gYTIyICogYTExIC0gYTEyICogYTIxO1xuICBmbG9hdCBiMTEgPSAtYTIyICogYTEwICsgYTEyICogYTIwO1xuICBmbG9hdCBiMjEgPSBhMjEgKiBhMTAgLSBhMTEgKiBhMjA7XG5cbiAgZmxvYXQgZGV0ID0gYTAwICogYjAxICsgYTAxICogYjExICsgYTAyICogYjIxO1xuXG4gIHJldHVybiBtYXQzKGIwMSwgKC1hMjIgKiBhMDEgKyBhMDIgKiBhMjEpLCAoYTEyICogYTAxIC0gYTAyICogYTExKSxcbiAgICAgICAgICAgICAgYjExLCAoYTIyICogYTAwIC0gYTAyICogYTIwKSwgKC1hMTIgKiBhMDAgKyBhMDIgKiBhMTApLFxuICAgICAgICAgICAgICBiMjEsICgtYTIxICogYTAwICsgYTAxICogYTIwKSwgKGExMSAqIGEwMCAtIGEwMSAqIGExMCkpIC8gZGV0O1xufVxuXG5tYXQ0IGludmVyc2VfMV8wKG1hdDQgbSkge1xuICBmbG9hdFxuICAgICAgYTAwID0gbVswXVswXSwgYTAxID0gbVswXVsxXSwgYTAyID0gbVswXVsyXSwgYTAzID0gbVswXVszXSxcbiAgICAgIGExMCA9IG1bMV1bMF0sIGExMSA9IG1bMV1bMV0sIGExMiA9IG1bMV1bMl0sIGExMyA9IG1bMV1bM10sXG4gICAgICBhMjAgPSBtWzJdWzBdLCBhMjEgPSBtWzJdWzFdLCBhMjIgPSBtWzJdWzJdLCBhMjMgPSBtWzJdWzNdLFxuICAgICAgYTMwID0gbVszXVswXSwgYTMxID0gbVszXVsxXSwgYTMyID0gbVszXVsyXSwgYTMzID0gbVszXVszXSxcblxuICAgICAgYjAwID0gYTAwICogYTExIC0gYTAxICogYTEwLFxuICAgICAgYjAxID0gYTAwICogYTEyIC0gYTAyICogYTEwLFxuICAgICAgYjAyID0gYTAwICogYTEzIC0gYTAzICogYTEwLFxuICAgICAgYjAzID0gYTAxICogYTEyIC0gYTAyICogYTExLFxuICAgICAgYjA0ID0gYTAxICogYTEzIC0gYTAzICogYTExLFxuICAgICAgYjA1ID0gYTAyICogYTEzIC0gYTAzICogYTEyLFxuICAgICAgYjA2ID0gYTIwICogYTMxIC0gYTIxICogYTMwLFxuICAgICAgYjA3ID0gYTIwICogYTMyIC0gYTIyICogYTMwLFxuICAgICAgYjA4ID0gYTIwICogYTMzIC0gYTIzICogYTMwLFxuICAgICAgYjA5ID0gYTIxICogYTMyIC0gYTIyICogYTMxLFxuICAgICAgYjEwID0gYTIxICogYTMzIC0gYTIzICogYTMxLFxuICAgICAgYjExID0gYTIyICogYTMzIC0gYTIzICogYTMyLFxuXG4gICAgICBkZXQgPSBiMDAgKiBiMTEgLSBiMDEgKiBiMTAgKyBiMDIgKiBiMDkgKyBiMDMgKiBiMDggLSBiMDQgKiBiMDcgKyBiMDUgKiBiMDY7XG5cbiAgcmV0dXJuIG1hdDQoXG4gICAgICBhMTEgKiBiMTEgLSBhMTIgKiBiMTAgKyBhMTMgKiBiMDksXG4gICAgICBhMDIgKiBiMTAgLSBhMDEgKiBiMTEgLSBhMDMgKiBiMDksXG4gICAgICBhMzEgKiBiMDUgLSBhMzIgKiBiMDQgKyBhMzMgKiBiMDMsXG4gICAgICBhMjIgKiBiMDQgLSBhMjEgKiBiMDUgLSBhMjMgKiBiMDMsXG4gICAgICBhMTIgKiBiMDggLSBhMTAgKiBiMTEgLSBhMTMgKiBiMDcsXG4gICAgICBhMDAgKiBiMTEgLSBhMDIgKiBiMDggKyBhMDMgKiBiMDcsXG4gICAgICBhMzIgKiBiMDIgLSBhMzAgKiBiMDUgLSBhMzMgKiBiMDEsXG4gICAgICBhMjAgKiBiMDUgLSBhMjIgKiBiMDIgKyBhMjMgKiBiMDEsXG4gICAgICBhMTAgKiBiMTAgLSBhMTEgKiBiMDggKyBhMTMgKiBiMDYsXG4gICAgICBhMDEgKiBiMDggLSBhMDAgKiBiMTAgLSBhMDMgKiBiMDYsXG4gICAgICBhMzAgKiBiMDQgLSBhMzEgKiBiMDIgKyBhMzMgKiBiMDAsXG4gICAgICBhMjEgKiBiMDIgLSBhMjAgKiBiMDQgLSBhMjMgKiBiMDAsXG4gICAgICBhMTEgKiBiMDcgLSBhMTAgKiBiMDkgLSBhMTIgKiBiMDYsXG4gICAgICBhMDAgKiBiMDkgLSBhMDEgKiBiMDcgKyBhMDIgKiBiMDYsXG4gICAgICBhMzEgKiBiMDEgLSBhMzAgKiBiMDMgLSBhMzIgKiBiMDAsXG4gICAgICBhMjAgKiBiMDMgLSBhMjEgKiBiMDEgKyBhMjIgKiBiMDApIC8gZGV0O1xufVxuXG5cblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGJhc2UgPSBtYXRyaXggKiB2ZWMzKGEsIDEpO1xuICB2ZWMyIG4gPSB3aWR0aCAqXG4gICAgbm9ybWFsaXplKHNjcmVlblNoYXBlLnl4ICogdmVjMihkLnksIC1kLngpKSAvIHNjcmVlblNoYXBlLnh5O1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQoYmFzZS54eS9iYXNlLnogKyBuLCAwLCAxKTtcbiAgcGlja0EgPSBwaWNrMDtcbiAgcGlja0IgPSBwaWNrMTtcbn1cbiIsci5waWNrRnJhZ21lbnQ9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IHBpY2tPZmZzZXQ7XG5cbnZhcnlpbmcgdmVjNCBwaWNrQSwgcGlja0I7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBmcmFnSWQgPSB2ZWM0KHBpY2tBLnh5eiwgMC4wKTtcbiAgaWYocGlja0IudyA+IHBpY2tBLncpIHtcbiAgICBmcmFnSWQueHl6ID0gcGlja0IueHl6O1xuICB9XG5cbiAgZnJhZ0lkICs9IHBpY2tPZmZzZXQ7XG5cbiAgZnJhZ0lkLnkgKz0gZmxvb3IoZnJhZ0lkLnggLyAyNTYuMCk7XG4gIGZyYWdJZC54IC09IGZsb29yKGZyYWdJZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZnJhZ0lkLnogKz0gZmxvb3IoZnJhZ0lkLnkgLyAyNTYuMCk7XG4gIGZyYWdJZC55IC09IGZsb29yKGZyYWdJZC55IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZnJhZ0lkLncgKz0gZmxvb3IoZnJhZ0lkLnogLyAyNTYuMCk7XG4gIGZyYWdJZC56IC09IGZsb29yKGZyYWdJZC56IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0lkIC8gMjU1LjA7XG59XG4iLHIuZmlsbFZlcnRleD0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBhLCBkO1xuXG51bmlmb3JtIG1hdDMgbWF0cml4O1xudW5pZm9ybSB2ZWMyIHByb2plY3RBeGlzO1xudW5pZm9ybSBmbG9hdCBwcm9qZWN0VmFsdWU7XG51bmlmb3JtIGZsb2F0IGRlcHRoO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgYmFzZSA9IG1hdHJpeCAqIHZlYzMoYSwgMSk7XG4gIHZlYzIgcCA9IGJhc2UueHkgLyBiYXNlLno7XG4gIGlmKGQueSA8IDAuMCB8fCAoZC55ID09IDAuMCAmJiBkLnggPCAwLjApKSB7XG4gICAgaWYoZG90KHAsIHByb2plY3RBeGlzKSA8IHByb2plY3RWYWx1ZSkge1xuICAgICAgcCA9IHAgKiAoMS4wIC0gYWJzKHByb2plY3RBeGlzKSkgKyBwcm9qZWN0QXhpcyAqIHByb2plY3RWYWx1ZTtcbiAgICB9XG4gIH1cbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHAsIGRlcHRoLCAxKTtcbn1cbiIsci5maWxsRnJhZ21lbnQ9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29sb3IucmdiICogY29sb3IuYSwgY29sb3IuYSk7XG59XG4ifSx7fV0sMTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpLG8sYSxzKXt0aGlzLnBsb3Q9dCx0aGlzLmRhc2hQYXR0ZXJuPWUsdGhpcy5saW5lQnVmZmVyPXIsdGhpcy5waWNrQnVmZmVyPW4sdGhpcy5saW5lU2hhZGVyPWksdGhpcy5taXRyZVNoYWRlcj1vLHRoaXMuZmlsbFNoYWRlcj1hLHRoaXMucGlja1NoYWRlcj1zLHRoaXMudXNpbmdEYXNoZXM9ITEsdGhpcy5ib3VuZHM9WzEvMCwxLzAsLSgxLzApLC0oMS8wKV0sdGhpcy53aWR0aD0xLHRoaXMuY29sb3I9WzAsMCwxLDFdLHRoaXMuZmlsbD1bITEsITEsITEsITFdLHRoaXMuZmlsbENvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZGF0YT1udWxsLHRoaXMubnVtUG9pbnRzPTAsdGhpcy52ZXJ0Q291bnQ9MCx0aGlzLnBpY2tPZmZzZXQ9MCx0aGlzLmxvZEJ1ZmZlcj1bXX1mdW5jdGlvbiBpKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgpfSl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPXQuZ2wsaT1zKHIpLG89cyhyKSx1PWwocixbMSwxXSksYz1hKHIsaC5saW5lVmVydGV4LGgubGluZUZyYWdtZW50KSxmPWEocixoLm1pdHJlVmVydGV4LGgubWl0cmVGcmFnbWVudCkscD1hKHIsaC5maWxsVmVydGV4LGguZmlsbEZyYWdtZW50KSxkPWEocixoLnBpY2tWZXJ0ZXgsaC5waWNrRnJhZ21lbnQpLG09bmV3IG4odCx1LGksbyxjLGYscCxkKTtyZXR1cm4gdC5hZGRPYmplY3QobSksbS51cGRhdGUoZSksbX1lLmV4cG9ydHM9bzt2YXIgYT10KCJnbC1zaGFkZXIiKSxzPXQoImdsLWJ1ZmZlciIpLGw9dCgiZ2wtdGV4dHVyZTJkIiksdT10KCJuZGFycmF5IiksYz10KCJ0eXBlZGFycmF5LXBvb2wiKSxoPXQoIi4vbGliL3NoYWRlcnMiKSxmPW4ucHJvdG90eXBlO2YuZHJhdz1mdW5jdGlvbigpe3ZhciB0PVsxLDAsMCwwLDEsMCwwLDAsMV0sZT1bMCwwXSxyPVsxLDBdLG49Wy0xLDBdLGk9WzAsMV0sbz1bMCwtMV07cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5wbG90LHM9dGhpcy5jb2xvcixsPXRoaXMud2lkdGgsdT0odGhpcy5udW1Qb2ludHMsdGhpcy5ib3VuZHMpLGM9dGhpcy52ZXJ0Q291bnQ7aWYoYyl7dmFyIGg9YS5nbCxmPWEudmlld0JveCxwPWEuZGF0YUJveCxkPWEucGl4ZWxSYXRpbyxtPXVbMl0tdVswXSxnPXVbM10tdVsxXSx2PXBbMl0tcFswXSx5PXBbM10tcFsxXSxiPWZbMl0tZlswXSx4PWZbM10tZlsxXTt0WzBdPTIqbS92LHRbNF09MipnL3ksdFs2XT0yKih1WzBdLXBbMF0pL3YtMSx0WzddPTIqKHVbMV0tcFsxXSkveS0xLGVbMF09YixlWzFdPXg7dmFyIF89dGhpcy5saW5lQnVmZmVyO18uYmluZCgpO3ZhciB3PXRoaXMuZmlsbDtpZih3WzBdfHx3WzFdfHx3WzJdfHx3WzNdKXt2YXIgTT10aGlzLmZpbGxTaGFkZXI7TS5iaW5kKCk7dmFyIGs9TS51bmlmb3JtcztrLm1hdHJpeD10LGsuZGVwdGg9YS5uZXh0RGVwdGhWYWx1ZSgpO3ZhciBBPU0uYXR0cmlidXRlcztBLmEucG9pbnRlcihoLkZMT0FULCExLDE2LDApLEEuZC5wb2ludGVyKGguRkxPQVQsITEsMTYsOCksaC5kZXB0aE1hc2soITApLGguZW5hYmxlKGguREVQVEhfVEVTVCk7dmFyIFQ9dGhpcy5maWxsQ29sb3I7d1swXSYmKGsuY29sb3I9VFswXSxrLnByb2plY3RBeGlzPW4say5wcm9qZWN0VmFsdWU9MSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMsMCxjKSksd1sxXSYmKGsuY29sb3I9VFsxXSxrLnByb2plY3RBeGlzPW8say5wcm9qZWN0VmFsdWU9MSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMsMCxjKSksd1syXSYmKGsuY29sb3I9VFsyXSxrLnByb2plY3RBeGlzPXIsay5wcm9qZWN0VmFsdWU9MSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMsMCxjKSksd1szXSYmKGsuY29sb3I9VFszXSxrLnByb2plY3RBeGlzPWksay5wcm9qZWN0VmFsdWU9MSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMsMCxjKSksaC5kZXB0aE1hc2soITEpLGguZGlzYWJsZShoLkRFUFRIX1RFU1QpfXZhciBFPXRoaXMubGluZVNoYWRlcjtFLmJpbmQoKTt2YXIgUz1FLnVuaWZvcm1zO1MubWF0cml4PXQsUy5jb2xvcj1zLFMud2lkdGg9bCpkLFMuc2NyZWVuU2hhcGU9ZSxTLmRhc2hQYXR0ZXJuPXRoaXMuZGFzaFBhdHRlcm4uYmluZCgpLFMuZGFzaExlbmd0aD10aGlzLmRhc2hMZW5ndGgqZDt2YXIgTD1FLmF0dHJpYnV0ZXM7aWYoTC5hLnBvaW50ZXIoaC5GTE9BVCwhMSwxNiwwKSxMLmQucG9pbnRlcihoLkZMT0FULCExLDE2LDgpLGguZHJhd0FycmF5cyhoLlRSSUFOR0xFUywwLGMpLGw+MiYmIXRoaXMudXNpbmdEYXNoZXMpe3ZhciB6PXRoaXMubWl0cmVTaGFkZXI7ei5iaW5kKCk7dmFyIEk9ei51bmlmb3JtcztJLm1hdHJpeD10LEkuY29sb3I9cyxJLnNjcmVlblNoYXBlPWUsSS5yYWRpdXM9bCpkLHouYXR0cmlidXRlcy5wLnBvaW50ZXIoaC5GTE9BVCwhMSw0OCwwKSxoLmRyYXdBcnJheXMoaC5QT0lOVFMsMCxjLzN8MCl9fX19KCksZi5kcmF3UGljaz1mdW5jdGlvbigpe3ZhciB0PVsxLDAsMCwwLDEsMCwwLDAsMV0sZT1bMCwwXSxyPVswLDAsMCwwXTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9dGhpcy5wbG90LG89dGhpcy5waWNrU2hhZGVyLGE9dGhpcy5saW5lQnVmZmVyLHM9dGhpcy5waWNrQnVmZmVyLGw9dGhpcy53aWR0aCx1PXRoaXMubnVtUG9pbnRzLGM9dGhpcy5ib3VuZHMsaD10aGlzLnZlcnRDb3VudCxmPWkuZ2wscD1pLnZpZXdCb3gsZD1pLmRhdGFCb3gsbT1pLnBpY2tQaXhlbFJhdGlvLGc9Y1syXS1jWzBdLHY9Y1szXS1jWzFdLHk9ZFsyXS1kWzBdLGI9ZFszXS1kWzFdLHg9cFsyXS1wWzBdLF89cFszXS1wWzFdO2lmKHRoaXMucGlja09mZnNldD1uLCFoKXJldHVybiBuK3U7dFswXT0yKmcveSx0WzRdPTIqdi9iLHRbNl09MiooY1swXS1kWzBdKS95LTEsdFs3XT0yKihjWzFdLWRbMV0pL2ItMSxlWzBdPXgsZVsxXT1fLHJbMF09MjU1Jm4sclsxXT1uPj4+OCYyNTUsclsyXT1uPj4+MTYmMjU1LHJbM109bj4+PjI0LG8uYmluZCgpO3ZhciB3PW8udW5pZm9ybXM7dy5tYXRyaXg9dCx3LndpZHRoPWwqbSx3LnBpY2tPZmZzZXQ9cix3LnNjcmVlblNoYXBlPWU7dmFyIE09by5hdHRyaWJ1dGVzO3JldHVybiBhLmJpbmQoKSxNLmEucG9pbnRlcihmLkZMT0FULCExLDE2LDApLE0uZC5wb2ludGVyKGYuRkxPQVQsITEsMTYsOCkscy5iaW5kKCksTS5waWNrMC5wb2ludGVyKGYuVU5TSUdORURfQllURSwhMSw4LDApLE0ucGljazEucG9pbnRlcihmLlVOU0lHTkVEX0JZVEUsITEsOCw0KSxmLmRyYXdBcnJheXMoZi5UUklBTkdMRVMsMCxoKSxuK3V9fSgpLGYucGljaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5waWNrT2Zmc2V0LGk9dGhpcy5udW1Qb2ludHM7aWYobj5yfHxyPj1uK2kpcmV0dXJuIG51bGw7dmFyIG89ci1uLGE9dGhpcy5kYXRhO3JldHVybntvYmplY3Q6dGhpcyxwb2ludElkOm8sZGF0YUNvb3JkOlthWzIqb10sYVsyKm8rMV1dfX0sZi51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLnBsb3QuZ2w7ISF0LmNvbm5lY3RHYXBzO3RoaXMuY29sb3I9KHQuY29sb3J8fFswLDAsMSwxXSkuc2xpY2UoKSx0aGlzLndpZHRoPSsodC53aWR0aHx8MSksdGhpcy5maWxsPSh0LmZpbGx8fFshMSwhMSwhMSwhMV0pLnNsaWNlKCksdGhpcy5maWxsQ29sb3I9aSh0LmZpbGxDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pO2Zvcih2YXIgcj10LmRhc2hlc3x8WzFdLG49MCxvPTA7bzxyLmxlbmd0aDsrK28pbis9cltvXTtmb3IodmFyIGE9Yy5tYWxsb2NVaW50OChuKSxzPTAsaD0yNTUsbz0wO288ci5sZW5ndGg7KytvKXtmb3IodmFyIGY9MDtmPHJbb107KytmKWFbcysrXT1oO2hePTI1NX10aGlzLmRhc2hQYXR0ZXJuLmRpc3Bvc2UoKSx0aGlzLnVzaW5nRGFzaGVzPXIubGVuZ3RoPjEsdGhpcy5kYXNoUGF0dGVybj1sKGUsdShhLFtuLDEsNF0sWzEsMCwwXSkpLHRoaXMuZGFzaFBhdHRlcm4ubWluRmlsdGVyPWUuTkVBUkVTVCx0aGlzLmRhc2hQYXR0ZXJuLm1hZ0ZpbHRlcj1lLk5FQVJFU1QsdGhpcy5kYXNoTGVuZ3RoPW4sYy5mcmVlKGEpO3ZhciBwPXQucG9zaXRpb25zO3RoaXMuZGF0YT1wO3ZhciBkPXRoaXMuYm91bmRzO2RbMF09ZFsxXT0xLzAsZFsyXT1kWzNdPS0oMS8wKTt2YXIgbT10aGlzLm51bVBvaW50cz1wLmxlbmd0aD4+PjE7aWYoMCE9PW0pe2Zvcih2YXIgbz0wO20+bzsrK28pe3ZhciBnPXBbMipvXSx2PXBbMipvKzFdO2lzTmFOKGcpfHxpc05hTih2KXx8KGRbMF09TWF0aC5taW4oZFswXSxnKSxkWzFdPU1hdGgubWluKGRbMV0sdiksZFsyXT1NYXRoLm1heChkWzJdLGcpLGRbM109TWF0aC5tYXgoZFszXSx2KSl9ZFswXT09PWRbMl0mJihkWzJdKz0xKSxkWzNdPT09ZFsxXSYmKGRbM10rPTEpO2Zvcih2YXIgeT1jLm1hbGxvY0Zsb2F0MzIoMjQqKG0tMSkpLGI9Yy5tYWxsb2NVaW50MzIoMTIqKG0tMSkpLHg9eS5sZW5ndGgsXz1iLmxlbmd0aCxzPW0sdz0wO3M+MTspe3ZhciBNPS0tcyxnPXBbMipzXSx2PXBbMipzKzFdLGs9TS0xLEE9cFsyKmtdLFQ9cFsyKmsrMV07aWYoIShpc05hTihnKXx8aXNOYU4odil8fGlzTmFOKEEpfHxpc05hTihUKSkpe3crPTEsZz0oZy1kWzBdKS8oZFsyXS1kWzBdKSx2PSh2LWRbMV0pLyhkWzNdLWRbMV0pLEE9KEEtZFswXSkvKGRbMl0tZFswXSksVD0oVC1kWzFdKS8oZFszXS1kWzFdKTt2YXIgRT1BLWcsUz1ULXYsTD1NfDE8PDI0LHo9TS0xLEk9TSxQPU0tMXwxPDwyNDt5Wy0teF09LVMseVstLXhdPS1FLHlbLS14XT12LHlbLS14XT1nLGJbLS1fXT1MLGJbLS1fXT16LHlbLS14XT1TLHlbLS14XT1FLHlbLS14XT1ULHlbLS14XT1BLGJbLS1fXT1JLGJbLS1fXT1QLHlbLS14XT0tUyx5Wy0teF09LUUseVstLXhdPVQseVstLXhdPUEsYlstLV9dPUksYlstLV9dPVAseVstLXhdPVMseVstLXhdPUUseVstLXhdPVQseVstLXhdPUEsYlstLV9dPUksYlstLV9dPVAseVstLXhdPS1TLHlbLS14XT0tRSx5Wy0teF09dix5Wy0teF09ZyxiWy0tX109TCxiWy0tX109eix5Wy0teF09Uyx5Wy0teF09RSx5Wy0teF09dix5Wy0teF09ZyxiWy0tX109TCxiWy0tX109en19dGhpcy52ZXJ0Q291bnQ9Nip3LHRoaXMubGluZUJ1ZmZlci51cGRhdGUoeS5zdWJhcnJheSh4KSksdGhpcy5waWNrQnVmZmVyLnVwZGF0ZShiLnN1YmFycmF5KF8pKSxjLmZyZWUoeSksYy5mcmVlKGIpfX0sZi5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5wbG90LnJlbW92ZU9iamVjdCh0aGlzKSx0aGlzLmxpbmVCdWZmZXIuZGlzcG9zZSgpLHRoaXMucGlja0J1ZmZlci5kaXNwb3NlKCksdGhpcy5saW5lU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLm1pdHJlU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLmZpbGxTaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy5kYXNoUGF0dGVybi5kaXNwb3NlKCl9fSx7Ii4vbGliL3NoYWRlcnMiOjEzNSwiZ2wtYnVmZmVyIjoxMjksImdsLXNoYWRlciI6MjA4LCJnbC10ZXh0dXJlMmQiOjIzMyxuZGFycmF5OjQ1NiwidHlwZWRhcnJheS1wb29sIjo0ODF9XSwxMzc6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbC1zaGFkZXIiKSxpPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uLCBuZXh0UG9zaXRpb247XG5hdHRyaWJ1dGUgZmxvYXQgYXJjTGVuZ3RoLCBsaW5lV2lkdGg7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcblxudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xudmFyeWluZyB2ZWMzIHdvcmxkUG9zaXRpb247XG52YXJ5aW5nIGZsb2F0IHBpeGVsQXJjTGVuZ3RoO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzQgcHJvamVjdGVkID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIHZlYzQgdGFuZ2VudENsaXAgPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChuZXh0UG9zaXRpb24gLSBwb3NpdGlvbiwgMC4wKTtcbiAgdmVjMiB0YW5nZW50ID0gbm9ybWFsaXplKHNjcmVlblNoYXBlICogdGFuZ2VudENsaXAueHkpO1xuICB2ZWMyIG9mZnNldCA9IDAuNSAqIHBpeGVsUmF0aW8gKiBsaW5lV2lkdGggKiB2ZWMyKHRhbmdlbnQueSwgLXRhbmdlbnQueCkgLyBzY3JlZW5TaGFwZTtcblxuICBnbF9Qb3NpdGlvbiA9IHZlYzQocHJvamVjdGVkLnh5ICsgcHJvamVjdGVkLncgKiBvZmZzZXQsIHByb2plY3RlZC56dyk7XG5cbiAgd29ybGRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuICBwaXhlbEFyY0xlbmd0aCA9IGFyY0xlbmd0aDtcbiAgZnJhZ0NvbG9yID0gY29sb3I7XG59XG4iLG89InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWMzICAgICAgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gc2FtcGxlcjJEIGRhc2hUZXh0dXJlO1xudW5pZm9ybSBmbG9hdCAgICAgZGFzaFNjYWxlO1xudW5pZm9ybSBmbG9hdCAgICAgb3BhY2l0eTtcblxudmFyeWluZyB2ZWMzICAgIHdvcmxkUG9zaXRpb247XG52YXJ5aW5nIGZsb2F0ICAgcGl4ZWxBcmNMZW5ndGg7XG52YXJ5aW5nIHZlYzQgICAgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmKGFueShsZXNzVGhhbih3b3JsZFBvc2l0aW9uLCBjbGlwQm91bmRzWzBdKSkgfHwgYW55KGdyZWF0ZXJUaGFuKHdvcmxkUG9zaXRpb24sIGNsaXBCb3VuZHNbMV0pKSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgZmxvYXQgZGFzaFdlaWdodCA9IHRleHR1cmUyRChkYXNoVGV4dHVyZSwgdmVjMihkYXNoU2NhbGUgKiBwaXhlbEFyY0xlbmd0aCwgMCkpLnI7XG4gIGlmKGRhc2hXZWlnaHQgPCAwLjUpIHtcbiAgICBkaXNjYXJkO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IGZyYWdDb2xvciAqIG9wYWNpdHk7XG59XG4iLGE9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuI2RlZmluZSBGTE9BVF9NQVggIDEuNzAxNDExODRlMzhcbiNkZWZpbmUgRkxPQVRfTUlOICAxLjE3NTQ5NDM1ZS0zOFxuXG5sb3dwIHZlYzQgZW5jb2RlX2Zsb2F0XzFfMChoaWdocCBmbG9hdCB2KSB7XG4gIGhpZ2hwIGZsb2F0IGF2ID0gYWJzKHYpO1xuXG4gIC8vSGFuZGxlIHNwZWNpYWwgY2FzZXNcbiAgaWYoYXYgPCBGTE9BVF9NSU4pIHtcbiAgICByZXR1cm4gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApO1xuICB9IGVsc2UgaWYodiA+IEZMT0FUX01BWCkge1xuICAgIHJldHVybiB2ZWM0KDEyNy4wLCAxMjguMCwgMC4wLCAwLjApIC8gMjU1LjA7XG4gIH0gZWxzZSBpZih2IDwgLUZMT0FUX01BWCkge1xuICAgIHJldHVybiB2ZWM0KDI1NS4wLCAxMjguMCwgMC4wLCAwLjApIC8gMjU1LjA7XG4gIH1cblxuICBoaWdocCB2ZWM0IGMgPSB2ZWM0KDAsMCwwLDApO1xuXG4gIC8vQ29tcHV0ZSBleHBvbmVudCBhbmQgbWFudGlzc2FcbiAgaGlnaHAgZmxvYXQgZSA9IGZsb29yKGxvZzIoYXYpKTtcbiAgaGlnaHAgZmxvYXQgbSA9IGF2ICogcG93KDIuMCwgLWUpIC0gMS4wO1xuICBcbiAgLy9VbnBhY2sgbWFudGlzc2FcbiAgY1sxXSA9IGZsb29yKDEyOC4wICogbSk7XG4gIG0gLT0gY1sxXSAvIDEyOC4wO1xuICBjWzJdID0gZmxvb3IoMzI3NjguMCAqIG0pO1xuICBtIC09IGNbMl0gLyAzMjc2OC4wO1xuICBjWzNdID0gZmxvb3IoODM4ODYwOC4wICogbSk7XG4gIFxuICAvL1VucGFjayBleHBvbmVudFxuICBoaWdocCBmbG9hdCBlYmlhcyA9IGUgKyAxMjcuMDtcbiAgY1swXSA9IGZsb29yKGViaWFzIC8gMi4wKTtcbiAgZWJpYXMgLT0gY1swXSAqIDIuMDtcbiAgY1sxXSArPSBmbG9vcihlYmlhcykgKiAxMjguMDsgXG5cbiAgLy9VbnBhY2sgc2lnbiBiaXRcbiAgY1swXSArPSAxMjguMCAqIHN0ZXAoMC4wLCAtdik7XG5cbiAgLy9TY2FsZSBiYWNrIHRvIHJhbmdlXG4gIHJldHVybiBjIC8gMjU1LjA7XG59XG5cblxuXG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xuXG52YXJ5aW5nIHZlYzMgd29ybGRQb3NpdGlvbjtcbnZhcnlpbmcgZmxvYXQgcGl4ZWxBcmNMZW5ndGg7XG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmKGFueShsZXNzVGhhbih3b3JsZFBvc2l0aW9uLCBjbGlwQm91bmRzWzBdKSkgfHwgYW55KGdyZWF0ZXJUaGFuKHdvcmxkUG9zaXRpb24sIGNsaXBCb3VuZHNbMV0pKSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChwaWNrSWQvMjU1LjAsIGVuY29kZV9mbG9hdF8xXzAocGl4ZWxBcmNMZW5ndGgpLnh5eik7XG59IixzPVt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToibmV4dFBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImFyY0xlbmd0aCIsdHlwZToiZmxvYXQifSx7bmFtZToibGluZVdpZHRoIix0eXBlOiJmbG9hdCJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9XTtyLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbih0LGksbyxudWxsLHMpfSxyLmNyZWF0ZVBpY2tTaGFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCxpLGEsbnVsbCxzKX19LHsiZ2wtc2hhZGVyIjoyMDh9XSwxMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj0wLG49MDszPm47KytuKXt2YXIgaT10W25dLWVbbl07cis9aSppfXJldHVybiBNYXRoLnNxcnQocil9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0scj0wOzM+cjsrK3IpZVswXVtyXT1NYXRoLm1heCh0WzBdW3JdLGVbMF1bcl0pLGVbMV1bcl09TWF0aC5taW4odFsxXVtyXSxlWzFdW3JdKTtyZXR1cm4gZX1mdW5jdGlvbiBvKHQsZSxyLG4pe3RoaXMuYXJjTGVuZ3RoPXQsdGhpcy5wb3NpdGlvbj1lLHRoaXMuaW5kZXg9cix0aGlzLmRhdGFDb29yZGluYXRlPW59ZnVuY3Rpb24gYSh0LGUscixuLGksbyl7dGhpcy5nbD10LHRoaXMuc2hhZGVyPWUsdGhpcy5waWNrU2hhZGVyPXIsdGhpcy5idWZmZXI9bix0aGlzLnZhbz1pLHRoaXMuY2xpcEJvdW5kcz1bWy0oMS8wKSwtKDEvMCksLSgxLzApXSxbMS8wLDEvMCwxLzBdXSx0aGlzLnBvaW50cz1bXSx0aGlzLmFyY0xlbmd0aD1bXSx0aGlzLnZlcnRleENvdW50PTAsdGhpcy5ib3VuZHM9W1swLDAsMF0sWzAsMCwwXV0sdGhpcy5waWNrSWQ9MCx0aGlzLmxpbmVXaWR0aD0xLHRoaXMudGV4dHVyZT1vLHRoaXMuZGFzaFNjYWxlPTEsdGhpcy5vcGFjaXR5PTEsdGhpcy5kaXJ0eT0hMCx0aGlzLnBpeGVsUmF0aW89MX1mdW5jdGlvbiBzKHQpe3ZhciBlPXQuZ2x8fHQuc2NlbmUmJnQuc2NlbmUuZ2wscj1tKGUpO3IuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHIuYXR0cmlidXRlcy5uZXh0UG9zaXRpb24ubG9jYXRpb249MSxyLmF0dHJpYnV0ZXMuYXJjTGVuZ3RoLmxvY2F0aW9uPTIsci5hdHRyaWJ1dGVzLmxpbmVXaWR0aC5sb2NhdGlvbj0zLHIuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj00O3ZhciBuPWcoZSk7bi5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsbi5hdHRyaWJ1dGVzLm5leHRQb3NpdGlvbi5sb2NhdGlvbj0xLG4uYXR0cmlidXRlcy5hcmNMZW5ndGgubG9jYXRpb249MixuLmF0dHJpYnV0ZXMubGluZVdpZHRoLmxvY2F0aW9uPTMsbi5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTQ7Zm9yKHZhciBpPWwoZSksbz11KGUsW3tidWZmZXI6aSxzaXplOjMsb2Zmc2V0OjAsc3RyaWRlOjQ4fSx7YnVmZmVyOmksc2l6ZTozLG9mZnNldDoxMixzdHJpZGU6NDh9LHtidWZmZXI6aSxzaXplOjEsb2Zmc2V0OjI0LHN0cmlkZTo0OH0se2J1ZmZlcjppLHNpemU6MSxvZmZzZXQ6Mjgsc3RyaWRlOjQ4fSx7YnVmZmVyOmksc2l6ZTo0LG9mZnNldDozMixzdHJpZGU6NDh9XSkscz1wKG5ldyBBcnJheSgxMDI0KSxbMjU2LDEsNF0pLGg9MDsxMDI0Pmg7KytoKXMuZGF0YVtoXT0yNTU7dmFyIGY9YyhlLHMpO2Yud3JhcD1lLlJFUEVBVDt2YXIgZD1uZXcgYShlLHIsbixpLG8sZik7cmV0dXJuIGQudXBkYXRlKHQpLGR9ZS5leHBvcnRzPXM7dmFyIGw9dCgiZ2wtYnVmZmVyIiksdT10KCJnbC12YW8iKSxjPXQoImdsLXRleHR1cmUyZCIpLGg9dCgiZ2xzbC1yZWFkLWZsb2F0IiksZj10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLHA9dCgibmRhcnJheSIpLGQ9dCgiLi9saWIvc2hhZGVycyIpLG09ZC5jcmVhdGVTaGFkZXIsZz1kLmNyZWF0ZVBpY2tTaGFkZXIsdj1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0seT1hLnByb3RvdHlwZTt5LmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5PDF9LHkuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5Pj0xfSx5LnBpY2tTbG90cz0xLHkuc2V0UGlja0Jhc2U9ZnVuY3Rpb24odCl7dGhpcy5waWNrSWQ9dH0seS5kcmF3VHJhbnNwYXJlbnQ9eS5kcmF3PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2wscj10aGlzLnNoYWRlcixuPXRoaXMudmFvO3IuYmluZCgpLHIudW5pZm9ybXM9e21vZGVsOnQubW9kZWx8fHYsdmlldzp0LnZpZXd8fHYscHJvamVjdGlvbjp0LnByb2plY3Rpb258fHYsY2xpcEJvdW5kczppKHRoaXMuY2xpcEJvdW5kcyksZGFzaFRleHR1cmU6dGhpcy50ZXh0dXJlLmJpbmQoKSxkYXNoU2NhbGU6dGhpcy5kYXNoU2NhbGUvdGhpcy5hcmNMZW5ndGhbdGhpcy5hcmNMZW5ndGgubGVuZ3RoLTFdLG9wYWNpdHk6dGhpcy5vcGFjaXR5LHNjcmVlblNoYXBlOltlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHRdLHBpeGVsUmF0aW86dGhpcy5waXhlbFJhdGlvfSxuLmJpbmQoKSxuLmRyYXcoZS5UUklBTkdMRV9TVFJJUCx0aGlzLnZlcnRleENvdW50KX0seS5kcmF3UGljaz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsLHI9dGhpcy5waWNrU2hhZGVyLG49dGhpcy52YW87ci5iaW5kKCksci51bmlmb3Jtcz17bW9kZWw6dC5tb2RlbHx8dix2aWV3OnQudmlld3x8dixwcm9qZWN0aW9uOnQucHJvamVjdGlvbnx8dixwaWNrSWQ6dGhpcy5waWNrSWQsY2xpcEJvdW5kczppKHRoaXMuY2xpcEJvdW5kcyksc2NyZWVuU2hhcGU6W2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF0scGl4ZWxSYXRpbzp0aGlzLnBpeGVsUmF0aW99LG4uYmluZCgpLG4uZHJhdyhlLlRSSUFOR0xFX1NUUklQLHRoaXMudmVydGV4Q291bnQpfSx5LnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZSxyO3RoaXMuZGlydHk9ITA7dmFyIGk9ISF0LmNvbm5lY3RHYXBzOyJkYXNoU2NhbGUiaW4gdCYmKHRoaXMuZGFzaFNjYWxlPXQuZGFzaFNjYWxlKSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PSt0Lm9wYWNpdHkpO3ZhciBvPXQucG9zaXRpb258fHQucG9zaXRpb25zO2lmKG8pe3ZhciBhPXQuY29sb3J8fHQuY29sb3JzfHxbMCwwLDAsMV0scz10LmxpbmVXaWR0aHx8MSxsPVtdLHU9W10sYz1bXSxoPTAsZD0wLG09W1sxLzAsMS8wLDEvMF0sWy0oMS8wKSwtKDEvMCksLSgxLzApXV0sZz0hMTt0OmZvcihlPTE7ZTxvLmxlbmd0aDsrK2Upe3ZhciB2PW9bZS0xXSx5PW9bZV07Zm9yKHUucHVzaChoKSxjLnB1c2godi5zbGljZSgpKSxyPTA7Mz5yOysrcil7aWYoaXNOYU4odltyXSl8fGlzTmFOKHlbcl0pfHwhaXNGaW5pdGUodltyXSl8fCFpc0Zpbml0ZSh5W3JdKSl7aWYoIWkmJmwubGVuZ3RoPjApe2Zvcih2YXIgYj0wOzI0PmI7KytiKWwucHVzaChsW2wubGVuZ3RoLTEyXSk7ZCs9MixnPSEwfWNvbnRpbnVlIHR9bVswXVtyXT1NYXRoLm1pbihtWzBdW3JdLHZbcl0seVtyXSksbVsxXVtyXT1NYXRoLm1heChtWzFdW3JdLHZbcl0seVtyXSl9dmFyIHgsXztBcnJheS5pc0FycmF5KGFbMF0pPyh4PWFbZS0xXSxfPWFbZV0pOng9Xz1hLDM9PT14Lmxlbmd0aCYmKHg9W3hbMF0seFsxXSx4WzJdLDFdKSwzPT09Xy5sZW5ndGgmJihfPVtfWzBdLF9bMV0sX1syXSwxXSk7dmFyIHc7dz1BcnJheS5pc0FycmF5KHMpP3NbZS0xXTpzO3ZhciBNPWg7aWYoaCs9bih2LHkpLGcpe2ZvcihyPTA7Mj5yOysrcilsLnB1c2godlswXSx2WzFdLHZbMl0seVswXSx5WzFdLHlbMl0sTSx3LHhbMF0seFsxXSx4WzJdLHhbM10pO2QrPTIsZz0hMX1sLnB1c2godlswXSx2WzFdLHZbMl0seVswXSx5WzFdLHlbMl0sTSx3LHhbMF0seFsxXSx4WzJdLHhbM10sdlswXSx2WzFdLHZbMl0seVswXSx5WzFdLHlbMl0sTSwtdyx4WzBdLHhbMV0seFsyXSx4WzNdLHlbMF0seVsxXSx5WzJdLHZbMF0sdlsxXSx2WzJdLGgsLXcsX1swXSxfWzFdLF9bMl0sX1szXSx5WzBdLHlbMV0seVsyXSx2WzBdLHZbMV0sdlsyXSxoLHcsX1swXSxfWzFdLF9bMl0sX1szXSksZCs9NH1pZih0aGlzLmJ1ZmZlci51cGRhdGUobCksdS5wdXNoKGgpLGMucHVzaChvW28ubGVuZ3RoLTFdLnNsaWNlKCkpLHRoaXMuYm91bmRzPW0sdGhpcy52ZXJ0ZXhDb3VudD1kLHRoaXMucG9pbnRzPWMsdGhpcy5hcmNMZW5ndGg9dSwiZGFzaGVzImluIHQpe3ZhciBrPXQuZGFzaGVzLEE9ay5zbGljZSgpO2ZvcihBLnVuc2hpZnQoMCksZT0xO2U8QS5sZW5ndGg7KytlKUFbZV09QVtlLTFdK0FbZV07dmFyIFQ9cChuZXcgQXJyYXkoMTAyNCksWzI1NiwxLDRdKTtmb3IoZT0wOzI1Nj5lOysrZSl7Zm9yKHI9MDs0PnI7KytyKVQuc2V0KGUsMCxyLDApOzEmZi5sZShBLEFbQS5sZW5ndGgtMV0qZS8yNTUpP1Quc2V0KGUsMCwwLDApOlQuc2V0KGUsMCwwLDI1NSl9dGhpcy50ZXh0dXJlLnNldFBpeGVscyhUKX19fSx5LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKX0seS5waWNrPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQuaWQhPT10aGlzLnBpY2tJZClyZXR1cm4gbnVsbDt2YXIgZT1oKHQudmFsdWVbMF0sdC52YWx1ZVsxXSx0LnZhbHVlWzJdLDApLHI9Zi5sZSh0aGlzLmFyY0xlbmd0aCxlKTtpZigwPnIpcmV0dXJuIG51bGw7aWYocj09PXRoaXMuYXJjTGVuZ3RoLmxlbmd0aC0xKXJldHVybiBuZXcgbyh0aGlzLmFyY0xlbmd0aFt0aGlzLmFyY0xlbmd0aC5sZW5ndGgtMV0sdGhpcy5wb2ludHNbdGhpcy5wb2ludHMubGVuZ3RoLTFdLnNsaWNlKCkscik7Zm9yKHZhciBuPXRoaXMucG9pbnRzW3JdLGk9dGhpcy5wb2ludHNbTWF0aC5taW4ocisxLHRoaXMucG9pbnRzLmxlbmd0aC0xKV0sYT0oZS10aGlzLmFyY0xlbmd0aFtyXSkvKHRoaXMuYXJjTGVuZ3RoW3IrMV0tdGhpcy5hcmNMZW5ndGhbcl0pLHM9MS1hLGw9WzAsMCwwXSx1PTA7Mz51OysrdSlsW3VdPXMqblt1XSthKmlbdV07dmFyIGM9TWF0aC5taW4oLjU+YT9yOnIrMSx0aGlzLnBvaW50cy5sZW5ndGgtMSk7cmV0dXJuIG5ldyBvKGUsbCxjLHRoaXMucG9pbnRzW2NdKX19LHsiLi9saWIvc2hhZGVycyI6MTM3LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTM5LCJnbC1idWZmZXIiOjEyOSwiZ2wtdGV4dHVyZTJkIjoyMzMsImdsLXZhbyI6MjM3LCJnbHNsLXJlYWQtZmxvYXQiOjE0MCxuZGFycmF5OjQ1Nn1dLDEzOTpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVsyMl1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjIyfV0sMTQwOltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscixuKXtyZXR1cm4gaVswXT1uLGlbMV09cixpWzJdPWUsaVszXT10LG9bMF19ZS5leHBvcnRzPW47dmFyIGk9bmV3IFVpbnQ4QXJyYXkoNCksbz1uZXcgRmxvYXQzMkFycmF5KGkuYnVmZmVyKX0se31dLDE0MTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9ZVs0XSxzPWVbNV0sbD1lWzZdLHU9ZVs3XSxjPWVbOF0saD1jKmEtcyp1LGY9LWMqbytzKmwscD11Km8tYSpsLGQ9cipoK24qZitpKnA7cmV0dXJuIGQ/KGQ9MS9kLHRbMF09aCpkLHRbMV09KC1jKm4raSp1KSpkLHRbMl09KHMqbi1pKmEpKmQsdFszXT1mKmQsdFs0XT0oYypyLWkqbCkqZCx0WzVdPSgtcypyK2kqbykqZCx0WzZdPXAqZCx0WzddPSgtdSpyK24qbCkqZCx0WzhdPShhKnItbipvKSpkLHQpOm51bGx9ZS5leHBvcnRzPW59LHt9XSwxNDI6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkoMTYpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZX1lLmV4cG9ydHM9bn0se31dLDE0MzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4oKXt2YXIgdD1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZS5leHBvcnRzPW59LHt9XSwxNDQ6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM10sbz10WzRdLGE9dFs1XSxzPXRbNl0sbD10WzddLHU9dFs4XSxjPXRbOV0saD10WzEwXSxmPXRbMTFdLHA9dFsxMl0sZD10WzEzXSxtPXRbMTRdLGc9dFsxNV0sdj1lKmEtcipvLHk9ZSpzLW4qbyxiPWUqbC1pKm8seD1yKnMtbiphLF89cipsLWkqYSx3PW4qbC1pKnMsTT11KmQtYypwLGs9dSptLWgqcCxBPXUqZy1mKnAsVD1jKm0taCpkLEU9YypnLWYqZCxTPWgqZy1mKm07cmV0dXJuIHYqUy15KkUrYipUK3gqQS1fKmsrdypNfWUuZXhwb3J0cz1ufSx7fV0sMTQ1OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPWVbM10sYT1yK3Iscz1uK24sbD1pK2ksdT1yKmEsYz1uKmEsaD1uKnMsZj1pKmEscD1pKnMsZD1pKmwsbT1vKmEsZz1vKnMsdj1vKmw7cmV0dXJuIHRbMF09MS1oLWQsdFsxXT1jK3YsdFsyXT1mLWcsdFszXT0wLHRbNF09Yy12LHRbNV09MS11LWQsdFs2XT1wK20sdFs3XT0wLHRbOF09ZitnLHRbOV09cC1tLHRbMTBdPTEtdS1oLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fWUuZXhwb3J0cz1ufSx7fV0sMTQ2OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPW4rbixsPWkraSx1PW8rbyxjPW4qcyxoPW4qbCxmPW4qdSxwPWkqbCxkPWkqdSxtPW8qdSxnPWEqcyx2PWEqbCx5PWEqdTtyZXR1cm4gdFswXT0xLShwK20pLHRbMV09aCt5LHRbMl09Zi12LHRbM109MCx0WzRdPWgteSx0WzVdPTEtKGMrbSksdFs2XT1kK2csdFs3XT0wLHRbOF09Zit2LHRbOV09ZC1nLHRbMTBdPTEtKGMrcCksdFsxMV09MCx0WzEyXT1yWzBdLHRbMTNdPXJbMV0sdFsxNF09clsyXSx0WzE1XT0xLHR9ZS5leHBvcnRzPW59LHt9XSwxNDc6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH1lLmV4cG9ydHM9bn0se31dLDE0ODpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9ZVs0XSxzPWVbNV0sbD1lWzZdLHU9ZVs3XSxjPWVbOF0saD1lWzldLGY9ZVsxMF0scD1lWzExXSxkPWVbMTJdLG09ZVsxM10sZz1lWzE0XSx2PWVbMTVdLHk9cipzLW4qYSxiPXIqbC1pKmEseD1yKnUtbyphLF89bipsLWkqcyx3PW4qdS1vKnMsTT1pKnUtbypsLGs9YyptLWgqZCxBPWMqZy1mKmQsVD1jKnYtcCpkLEU9aCpnLWYqbSxTPWgqdi1wKm0sTD1mKnYtcCpnLHo9eSpMLWIqUyt4KkUrXypULXcqQStNKms7cmV0dXJuIHo/KHo9MS96LHRbMF09KHMqTC1sKlMrdSpFKSp6LHRbMV09KGkqUy1uKkwtbypFKSp6LHRbMl09KG0qTS1nKncrdipfKSp6LHRbM109KGYqdy1oKk0tcCpfKSp6LHRbNF09KGwqVC1hKkwtdSpBKSp6LHRbNV09KHIqTC1pKlQrbypBKSp6LHRbNl09KGcqeC1kKk0tdipiKSp6LHRbN109KGMqTS1mKngrcCpiKSp6LHRbOF09KGEqUy1zKlQrdSprKSp6LHRbOV09KG4qVC1yKlMtbyprKSp6LHRbMTBdPShkKnctbSp4K3YqeSkqeix0WzExXT0oaCp4LWMqdy1wKnkpKnosdFsxMl09KHMqQS1hKkUtbCprKSp6LHRbMTNdPShyKkUtbipBK2kqaykqeix0WzE0XT0obSpiLWQqXy1nKnkpKnosdFsxNV09KGMqXy1oKmIrZip5KSp6LHQpOm51bGx9ZS5leHBvcnRzPW59LHt9XSwxNDk6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyLG4pe3ZhciBvLGEscyxsLHUsYyxoLGYscCxkLG09ZVswXSxnPWVbMV0sdj1lWzJdLHk9blswXSxiPW5bMV0seD1uWzJdLF89clswXSx3PXJbMV0sTT1yWzJdO3JldHVybiBNYXRoLmFicyhtLV8pPDFlLTYmJk1hdGguYWJzKGctdyk8MWUtNiYmTWF0aC5hYnModi1NKTwxZS02P2kodCk6KGg9bS1fLGY9Zy13LHA9di1NLGQ9MS9NYXRoLnNxcnQoaCpoK2YqZitwKnApLGgqPWQsZio9ZCxwKj1kLG89YipwLXgqZixhPXgqaC15KnAscz15KmYtYipoLGQ9TWF0aC5zcXJ0KG8qbythKmErcypzKSxkPyhkPTEvZCxvKj1kLGEqPWQscyo9ZCk6KG89MCxhPTAscz0wKSxsPWYqcy1wKmEsdT1wKm8taCpzLGM9aCphLWYqbyxkPU1hdGguc3FydChsKmwrdSp1K2MqYyksZD8oZD0xL2QsbCo9ZCx1Kj1kLGMqPWQpOihsPTAsdT0wLGM9MCksdFswXT1vLHRbMV09bCx0WzJdPWgsdFszXT0wLHRbNF09YSx0WzVdPXUsdFs2XT1mLHRbN109MCx0WzhdPXMsdFs5XT1jLHRbMTBdPXAsdFsxMV09MCx0WzEyXT0tKG8qbSthKmcrcyp2KSx0WzEzXT0tKGwqbSt1KmcrYyp2KSx0WzE0XT0tKGgqbStmKmcrcCp2KSx0WzE1XT0xLHQpfXZhciBpPXQoIi4vaWRlbnRpdHkiKTtlLmV4cG9ydHM9bn0seyIuL2lkZW50aXR5IjoxNDd9XSwxNTA6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1lWzNdLHM9ZVs0XSxsPWVbNV0sdT1lWzZdLGM9ZVs3XSxoPWVbOF0sZj1lWzldLHA9ZVsxMF0sZD1lWzExXSxtPWVbMTJdLGc9ZVsxM10sdj1lWzE0XSx5PWVbMTVdLGI9clswXSx4PXJbMV0sXz1yWzJdLHc9clszXTtyZXR1cm4gdFswXT1iKm4reCpzK18qaCt3Km0sdFsxXT1iKmkreCpsK18qZit3KmcsdFsyXT1iKm8reCp1K18qcCt3KnYsdFszXT1iKmEreCpjK18qZCt3KnksYj1yWzRdLHg9cls1XSxfPXJbNl0sdz1yWzddLHRbNF09YipuK3gqcytfKmgrdyptLHRbNV09YippK3gqbCtfKmYrdypnLHRbNl09YipvK3gqdStfKnArdyp2LHRbN109YiphK3gqYytfKmQrdyp5LGI9cls4XSx4PXJbOV0sXz1yWzEwXSx3PXJbMTFdLHRbOF09YipuK3gqcytfKmgrdyptLHRbOV09YippK3gqbCtfKmYrdypnLHRbMTBdPWIqbyt4KnUrXypwK3cqdix0WzExXT1iKmEreCpjK18qZCt3KnksYj1yWzEyXSx4PXJbMTNdLF89clsxNF0sdz1yWzE1XSx0WzEyXT1iKm4reCpzK18qaCt3Km0sdFsxM109YippK3gqbCtfKmYrdypnLHRbMTRdPWIqbyt4KnUrXypwK3cqdix0WzE1XT1iKmEreCpjK18qZCt3KnksdH1lLmV4cG9ydHM9bn0se31dLDE1MTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbixpKXt2YXIgbz0xL01hdGgudGFuKGUvMiksYT0xLyhuLWkpO3JldHVybiB0WzBdPW8vcix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1vLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0oaStuKSphLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT0yKmkqbiphLHRbMTVdPTAsdH1lLmV4cG9ydHM9bn0se31dLDE1MjpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIGksbyxhLHMsbCx1LGMsaCxmLHAsZCxtLGcsdix5LGIseCxfLHcsTSxrLEEsVCxFLFM9blswXSxMPW5bMV0sej1uWzJdLEk9TWF0aC5zcXJ0KFMqUytMKkwreip6KTtyZXR1cm4gTWF0aC5hYnMoSSk8MWUtNj9udWxsOihJPTEvSSxTKj1JLEwqPUkseio9SSxpPU1hdGguc2luKHIpLG89TWF0aC5jb3MociksYT0xLW8scz1lWzBdLGw9ZVsxXSx1PWVbMl0sYz1lWzNdLGg9ZVs0XSxmPWVbNV0scD1lWzZdLGQ9ZVs3XSxtPWVbOF0sZz1lWzldLHY9ZVsxMF0seT1lWzExXSxiPVMqUyphK28seD1MKlMqYSt6KmksXz16KlMqYS1MKmksdz1TKkwqYS16KmksTT1MKkwqYStvLGs9eipMKmErUyppLEE9Uyp6KmErTCppLFQ9TCp6KmEtUyppLEU9eip6KmErbyx0WzBdPXMqYitoKngrbSpfLHRbMV09bCpiK2YqeCtnKl8sdFsyXT11KmIrcCp4K3YqXyx0WzNdPWMqYitkKngreSpfLHRbNF09cyp3K2gqTSttKmssdFs1XT1sKncrZipNK2cqayx0WzZdPXUqdytwKk0rdiprLHRbN109Yyp3K2QqTSt5KmssdFs4XT1zKkEraCpUK20qRSx0WzldPWwqQStmKlQrZypFLHRbMTBdPXUqQStwKlQrdipFLHRbMTFdPWMqQStkKlQreSpFLGUhPT10JiYodFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHQpfWUuZXhwb3J0cz1ufSx7fV0sMTUzOltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49TWF0aC5zaW4ociksaT1NYXRoLmNvcyhyKSxvPWVbNF0sYT1lWzVdLHM9ZVs2XSxsPWVbN10sdT1lWzhdLGM9ZVs5XSxoPWVbMTBdLGY9ZVsxMV07cmV0dXJuIGUhPT10JiYodFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKSx0WzRdPW8qaSt1Km4sdFs1XT1hKmkrYypuLHRbNl09cyppK2gqbix0WzddPWwqaStmKm4sdFs4XT11KmktbypuLHRbOV09YyppLWEqbix0WzEwXT1oKmktcypuLHRbMTFdPWYqaS1sKm4sdH1lLmV4cG9ydHM9bn0se31dLDE1NDpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGk9TWF0aC5jb3Mociksbz1lWzBdLGE9ZVsxXSxzPWVbMl0sbD1lWzNdLHU9ZVs4XSxjPWVbOV0saD1lWzEwXSxmPWVbMTFdO3JldHVybiBlIT09dCYmKHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdFswXT1vKmktdSpuLHRbMV09YSppLWMqbix0WzJdPXMqaS1oKm4sdFszXT1sKmktZipuLHRbOF09bypuK3UqaSx0WzldPWEqbitjKmksdFsxMF09cypuK2gqaSx0WzExXT1sKm4rZippLHR9ZS5leHBvcnRzPW59LHt9XSwxNTU6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLG89ZVswXSxhPWVbMV0scz1lWzJdLGw9ZVszXSx1PWVbNF0sYz1lWzVdLGg9ZVs2XSxmPWVbN107cmV0dXJuIGUhPT10JiYodFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdFswXT1vKmkrdSpuLHRbMV09YSppK2Mqbix0WzJdPXMqaStoKm4sdFszXT1sKmkrZipuLHRbNF09dSppLW8qbix0WzVdPWMqaS1hKm4sdFs2XT1oKmktcypuLHRbN109ZippLWwqbix0fWUuZXhwb3J0cz1ufSx7fV0sMTU2OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49clswXSxpPXJbMV0sbz1yWzJdO3JldHVybiB0WzBdPWVbMF0qbix0WzFdPWVbMV0qbix0WzJdPWVbMl0qbix0WzNdPWVbM10qbix0WzRdPWVbNF0qaSx0WzVdPWVbNV0qaSx0WzZdPWVbNl0qaSx0WzddPWVbN10qaSx0WzhdPWVbOF0qbyx0WzldPWVbOV0qbyx0WzEwXT1lWzEwXSpvLHRbMTFdPWVbMTFdKm8sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0sdH1lLmV4cG9ydHM9bn0se31dLDE1NzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuLGksbyxhLHMsbCx1LGMsaCxmLHAsZCxtPXJbMF0sZz1yWzFdLHY9clsyXTtyZXR1cm4gZT09PXQ/KHRbMTJdPWVbMF0qbStlWzRdKmcrZVs4XSp2K2VbMTJdLHRbMTNdPWVbMV0qbStlWzVdKmcrZVs5XSp2K2VbMTNdLHRbMTRdPWVbMl0qbStlWzZdKmcrZVsxMF0qditlWzE0XSx0WzE1XT1lWzNdKm0rZVs3XSpnK2VbMTFdKnYrZVsxNV0pOihuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1lWzRdLGw9ZVs1XSx1PWVbNl0sYz1lWzddLGg9ZVs4XSxmPWVbOV0scD1lWzEwXSxkPWVbMTFdLHRbMF09bix0WzFdPWksdFsyXT1vLHRbM109YSx0WzRdPXMsdFs1XT1sLHRbNl09dSx0WzddPWMsdFs4XT1oLHRbOV09Zix0WzEwXT1wLHRbMTFdPWQsdFsxMl09biptK3MqZytoKnYrZVsxMl0sdFsxM109aSptK2wqZytmKnYrZVsxM10sdFsxNF09byptK3UqZytwKnYrZVsxNF0sdFsxNV09YSptK2MqZytkKnYrZVsxNV0pLHR9ZS5leHBvcnRzPW59LHt9XSwxNTg6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSl7aWYodD09PWUpe3ZhciByPWVbMV0sbj1lWzJdLGk9ZVszXSxvPWVbNl0sYT1lWzddLHM9ZVsxMV07dFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09cix0WzZdPWVbOV0sdFs3XT1lWzEzXSx0WzhdPW4sdFs5XT1vLHRbMTFdPWVbMTRdLHRbMTJdPWksdFsxM109YSx0WzE0XT1zfWVsc2UgdFswXT1lWzBdLHRbMV09ZVs0XSx0WzJdPWVbOF0sdFszXT1lWzEyXSx0WzRdPWVbMV0sdFs1XT1lWzVdLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09ZVsyXSx0WzldPWVbNl0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxNF0sdFsxMl09ZVszXSx0WzEzXT1lWzddLHRbMTRdPWVbMTFdLHRbMTVdPWVbMTVdO3JldHVybiB0fWUuZXhwb3J0cz1ufSx7fV0sMTU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9WzAsMCwwLDBdLG49MDs0Pm47KytuKWZvcih2YXIgaT0wOzQ+aTsrK2kpcltpXSs9dFs0Km4raV0qZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBpKHQsZSxyLGksbyl7Zm9yKHZhciBhPW4oaSxuKHIsbihlLFt0WzBdLHRbMV0sdFsyXSwxXSkpKSxzPTA7Mz5zOysrcylhW3NdLz1hWzNdO3JldHVyblsuNSpvWzBdKigxK2FbMF0pLC41Km9bMV0qKDEtYVsxXSldfWZ1bmN0aW9uIG8odCxlKXtpZigyPT09dC5sZW5ndGgpe2Zvcih2YXIgcj0wLG49MCxpPTA7Mj5pOysraSlyKz1NYXRoLnBvdyhlW2ldLXRbMF1baV0sMiksbis9TWF0aC5wb3coZVtpXS10WzFdW2ldLDIpO3JldHVybiByPU1hdGguc3FydChyKSxuPU1hdGguc3FydChuKSwxZS02PnIrbj9bMSwwXTpbbi8ocituKSxyLyhuK3IpXX1pZigzPT09dC5sZW5ndGgpe3ZhciBvPVswLDBdO3JldHVybiB1KHRbMF0sdFsxXSx0WzJdLGUsbyksbCh0LG8pfXJldHVybltdfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9WzAsMCwwXSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0sbz1lW25dLGE9MDszPmE7KythKXJbYV0rPW8qaVthXTtyZXR1cm4gcn1mdW5jdGlvbiBzKHQsZSxyLG4scyxsKXtpZigxPT09dC5sZW5ndGgpcmV0dXJuWzAsdFswXS5zbGljZSgpXTtmb3IodmFyIHU9bmV3IEFycmF5KHQubGVuZ3RoKSxjPTA7Yzx0Lmxlbmd0aDsrK2MpdVtjXT1pKHRbY10scixuLHMsbCk7Zm9yKHZhciBoPTAsZj0xLzAsYz0wO2M8dS5sZW5ndGg7KytjKXtmb3IodmFyIHA9MCxkPTA7Mj5kOysrZClwKz1NYXRoLnBvdyh1W2NdW2RdLWVbZF0sMik7Zj5wJiYoZj1wLGg9Yyl9Zm9yKHZhciBtPW8odSxlKSxnPTAsYz0wOzM+YzsrK2Mpe2lmKG1bY108LS4wMDF8fG1bY10+MS4wMDAxKXJldHVybiBudWxsO2crPW1bY119cmV0dXJuIE1hdGguYWJzKGctMSk+LjAwMT9udWxsOltoLGEodCxtKSxtXX12YXIgbD10KCJiYXJ5Y2VudHJpYyIpLHU9dCgicG9seXRvcGUtY2xvc2VzdC1wb2ludC9saWIvY2xvc2VzdF9wb2ludF8yZC5qcyIpO2UuZXhwb3J0cz1zfSx7YmFyeWNlbnRyaWM6MTYyLCJwb2x5dG9wZS1jbG9zZXN0LXBvaW50L2xpYi9jbG9zZXN0X3BvaW50XzJkLmpzIjoxNjR9XSwxNjA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbiwgbm9ybWFsO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB1djtcblxudW5pZm9ybSBtYXQ0IG1vZGVsXG4gICAgICAgICAgICwgdmlld1xuICAgICAgICAgICAsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgZXllUG9zaXRpb25cbiAgICAgICAgICAgLCBsaWdodFBvc2l0aW9uO1xuXG52YXJ5aW5nIHZlYzMgZl9ub3JtYWxcbiAgICAgICAgICAgLCBmX2xpZ2h0RGlyZWN0aW9uXG4gICAgICAgICAgICwgZl9leWVEaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2RhdGE7XG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzQgbV9wb3NpdGlvbiAgPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIHZlYzQgdF9wb3NpdGlvbiAgPSB2aWV3ICogbV9wb3NpdGlvbjtcbiAgZ2xfUG9zaXRpb24gICAgICA9IHByb2plY3Rpb24gKiB0X3Bvc2l0aW9uO1xuICBmX2NvbG9yICAgICAgICAgID0gY29sb3I7XG4gIGZfbm9ybWFsICAgICAgICAgPSBub3JtYWw7XG4gIGZfZGF0YSAgICAgICAgICAgPSBwb3NpdGlvbjtcbiAgZl9leWVEaXJlY3Rpb24gICA9IGV5ZVBvc2l0aW9uICAgLSBwb3NpdGlvbjtcbiAgZl9saWdodERpcmVjdGlvbiA9IGxpZ2h0UG9zaXRpb24gLSBwb3NpdGlvbjtcbiAgZl91diAgICAgICAgICAgICA9IHV2O1xufSIsaT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5mbG9hdCBiZWNrbWFubkRpc3RyaWJ1dGlvbl8yXzAoZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5cblxuZmxvYXQgY29va1RvcnJhbmNlU3BlY3VsYXJfMV8xKFxuICB2ZWMzIGxpZ2h0RGlyZWN0aW9uLFxuICB2ZWMzIHZpZXdEaXJlY3Rpb24sXG4gIHZlYzMgc3VyZmFjZU5vcm1hbCxcbiAgZmxvYXQgcm91Z2huZXNzLFxuICBmbG9hdCBmcmVzbmVsKSB7XG5cbiAgZmxvYXQgVmRvdE4gPSBtYXgoZG90KHZpZXdEaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWwpLCAwLjApO1xuICBmbG9hdCBMZG90TiA9IG1heChkb3QobGlnaHREaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWwpLCAwLjApO1xuXG4gIC8vSGFsZiBhbmdsZSB2ZWN0b3JcbiAgdmVjMyBIID0gbm9ybWFsaXplKGxpZ2h0RGlyZWN0aW9uICsgdmlld0RpcmVjdGlvbik7XG5cbiAgLy9HZW9tZXRyaWMgdGVybVxuICBmbG9hdCBOZG90SCA9IG1heChkb3Qoc3VyZmFjZU5vcm1hbCwgSCksIDAuMCk7XG4gIGZsb2F0IFZkb3RIID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBMZG90SCA9IG1heChkb3QobGlnaHREaXJlY3Rpb24sIEgpLCAwLjAwMDAwMSk7XG4gIGZsb2F0IEcxID0gKDIuMCAqIE5kb3RIICogVmRvdE4pIC8gVmRvdEg7XG4gIGZsb2F0IEcyID0gKDIuMCAqIE5kb3RIICogTGRvdE4pIC8gTGRvdEg7XG4gIGZsb2F0IEcgPSBtaW4oMS4wLCBtaW4oRzEsIEcyKSk7XG4gIFxuICAvL0Rpc3RyaWJ1dGlvbiB0ZXJtXG4gIGZsb2F0IEQgPSBiZWNrbWFubkRpc3RyaWJ1dGlvbl8yXzAoTmRvdEgsIHJvdWdobmVzcyk7XG5cbiAgLy9GcmVzbmVsIHRlcm1cbiAgZmxvYXQgRiA9IHBvdygxLjAgLSBWZG90TiwgZnJlc25lbCk7XG5cbiAgLy9NdWx0aXBseSB0ZXJtcyBhbmQgZG9uZVxuICByZXR1cm4gIEcgKiBGICogRCAvIG1heCgzLjE0MTU5MjY1ICogVmRvdE4sIDAuMDAwMDAxKTtcbn1cblxuXG5cbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3NcbiAgICAgICAgICAgICwgZnJlc25lbFxuICAgICAgICAgICAgLCBrYW1iaWVudFxuICAgICAgICAgICAgLCBrZGlmZnVzZVxuICAgICAgICAgICAgLCBrc3BlY3VsYXJcbiAgICAgICAgICAgICwgb3BhY2l0eTtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbFxuICAgICAgICAgICAsIGZfbGlnaHREaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2V5ZURpcmVjdGlvblxuICAgICAgICAgICAsIGZfZGF0YTtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYoYW55KGxlc3NUaGFuKGZfZGF0YSwgY2xpcEJvdW5kc1swXSkpIHx8IFxuICAgICBhbnkoZ3JlYXRlclRoYW4oZl9kYXRhLCBjbGlwQm91bmRzWzFdKSkpIHtcbiAgICBkaXNjYXJkO1xuICB9XG5cbiAgdmVjMyBOID0gbm9ybWFsaXplKGZfbm9ybWFsKTtcbiAgdmVjMyBMID0gbm9ybWFsaXplKGZfbGlnaHREaXJlY3Rpb24pO1xuICB2ZWMzIFYgPSBub3JtYWxpemUoZl9leWVEaXJlY3Rpb24pO1xuICBcbiAgaWYoIWdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBjb29rVG9ycmFuY2VTcGVjdWxhcl8xXzEoTCwgViwgTiwgcm91Z2huZXNzLCBmcmVzbmVsKTtcbiAgZmxvYXQgZGlmZnVzZSAgPSBtaW4oa2FtYmllbnQgKyBrZGlmZnVzZSAqIG1heChkb3QoTiwgTCksIDAuMCksIDEuMCk7XG5cbiAgdmVjNCBzdXJmYWNlQ29sb3IgPSBmX2NvbG9yICogdGV4dHVyZTJEKHRleHR1cmUsIGZfdXYpO1xuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbGl0Q29sb3IgKiBvcGFjaXR5O1xufSIsbz0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgdXY7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcblxudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzMgZl9kYXRhO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgZl9jb2xvciA9IGNvbG9yO1xuICBmX2RhdGEgID0gcG9zaXRpb247XG4gIGZfdXYgICAgPSB1djtcbn0iLGE9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMyBmX2RhdGE7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4oZl9kYXRhLCBjbGlwQm91bmRzWzBdKSkgfHwgXG4gICAgIGFueShncmVhdGVyVGhhbihmX2RhdGEsIGNsaXBCb3VuZHNbMV0pKSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cblxuICBnbF9GcmFnQ29sb3IgPSBmX2NvbG9yICogdGV4dHVyZTJEKHRleHR1cmUsIGZfdXYpICogb3BhY2l0eTtcbn0iLHM9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuYXR0cmlidXRlIGZsb2F0IHBvaW50U2l6ZTtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYoYW55KGxlc3NUaGFuKHBvc2l0aW9uLCBjbGlwQm91bmRzWzBdKSkgfHwgXG4gICAgIGFueShncmVhdGVyVGhhbihwb3NpdGlvbiwgY2xpcEJvdW5kc1sxXSkpKSB7XG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDApO1xuICB9IGVsc2Uge1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIH1cbiAgZ2xfUG9pbnRTaXplID0gcG9pbnRTaXplO1xuICBmX2NvbG9yID0gY29sb3I7XG4gIGZfdXYgPSB1djtcbn0iLGw9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICB2ZWMyIHBvaW50UiA9IGdsX1BvaW50Q29vcmQueHkgLSB2ZWMyKDAuNSwwLjUpO1xuICBpZihkb3QocG9pbnRSLCBwb2ludFIpID4gMC4yNSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgZ2xfRnJhZ0NvbG9yID0gZl9jb2xvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KSAqIG9wYWNpdHk7XG59Iix1PSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgaWQ7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICBmX2lkICAgICAgICA9IGlkO1xuICBmX3Bvc2l0aW9uICA9IHBvc2l0aW9uO1xufSIsYz0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzMgIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4oZl9wb3NpdGlvbiwgY2xpcEJvdW5kc1swXSkpIHx8IFxuICAgICBhbnkoZ3JlYXRlclRoYW4oZl9wb3NpdGlvbiwgY2xpcEJvdW5kc1sxXSkpKSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgZl9pZC54eXopO1xufSIsaD0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyAgcG9zaXRpb247XG5hdHRyaWJ1dGUgZmxvYXQgcG9pbnRTaXplO1xuYXR0cmlidXRlIHZlYzQgIGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4ocG9zaXRpb24sIGNsaXBCb3VuZHNbMF0pKSB8fCBcbiAgICAgYW55KGdyZWF0ZXJUaGFuKHBvc2l0aW9uLCBjbGlwQm91bmRzWzFdKSkpIHtcbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZ2xfUG9zaXRpb24gID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gICAgZ2xfUG9pbnRTaXplID0gcG9pbnRTaXplO1xuICB9XG4gIGZfaWQgICAgICAgICA9IGlkO1xuICBmX3Bvc2l0aW9uICAgPSBwb3NpdGlvbjtcbn0iLGY9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xufSIscD0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzMgY29udG91ckNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY29udG91ckNvbG9yLDEpO1xufVxuIjsKci5tZXNoU2hhZGVyPXt2ZXJ0ZXg6bixmcmFnbWVudDppLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJub3JtYWwiLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifV19LHIud2lyZVNoYWRlcj17dmVydGV4Om8sZnJhZ21lbnQ6YSxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifV19LHIucG9pbnRTaGFkZXI9e3ZlcnRleDpzLGZyYWdtZW50OmwsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImNvbG9yIix0eXBlOiJ2ZWM0In0se25hbWU6InV2Iix0eXBlOiJ2ZWMyIn0se25hbWU6InBvaW50U2l6ZSIsdHlwZToiZmxvYXQifV19LHIucGlja1NoYWRlcj17dmVydGV4OnUsZnJhZ21lbnQ6YyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifV19LHIucG9pbnRQaWNrU2hhZGVyPXt2ZXJ0ZXg6aCxmcmFnbWVudDpjLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJwb2ludFNpemUiLHR5cGU6ImZsb2F0In0se25hbWU6ImlkIix0eXBlOiJ2ZWM0In1dfSxyLmNvbnRvdXJTaGFkZXI9e3ZlcnRleDpmLGZyYWdtZW50OnAsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn1dfX0se31dLDE2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxvLGEscyxsLHUsYyxoLGYscCxkLG0sZyx2LHksYix4LF8sdyxNLGssQSxUKXt0aGlzLmdsPXQsdGhpcy5jZWxscz1bXSx0aGlzLnBvc2l0aW9ucz1bXSx0aGlzLmludGVuc2l0eT1bXSx0aGlzLnRleHR1cmU9ZSx0aGlzLmRpcnR5PSEwLHRoaXMudHJpU2hhZGVyPXIsdGhpcy5saW5lU2hhZGVyPW4sdGhpcy5wb2ludFNoYWRlcj1pLHRoaXMucGlja1NoYWRlcj1vLHRoaXMucG9pbnRQaWNrU2hhZGVyPWEsdGhpcy5jb250b3VyU2hhZGVyPXMsdGhpcy50cmlhbmdsZVBvc2l0aW9ucz1sLHRoaXMudHJpYW5nbGVDb2xvcnM9Yyx0aGlzLnRyaWFuZ2xlTm9ybWFscz1mLHRoaXMudHJpYW5nbGVVVnM9aCx0aGlzLnRyaWFuZ2xlSWRzPXUsdGhpcy50cmlhbmdsZVZBTz1wLHRoaXMudHJpYW5nbGVDb3VudD0wLHRoaXMubGluZVdpZHRoPTEsdGhpcy5lZGdlUG9zaXRpb25zPWQsdGhpcy5lZGdlQ29sb3JzPWcsdGhpcy5lZGdlVVZzPXYsdGhpcy5lZGdlSWRzPW0sdGhpcy5lZGdlVkFPPXksdGhpcy5lZGdlQ291bnQ9MCx0aGlzLnBvaW50UG9zaXRpb25zPWIsdGhpcy5wb2ludENvbG9ycz1fLHRoaXMucG9pbnRVVnM9dyx0aGlzLnBvaW50U2l6ZXM9TSx0aGlzLnBvaW50SWRzPXgsdGhpcy5wb2ludFZBTz1rLHRoaXMucG9pbnRDb3VudD0wLHRoaXMuY29udG91ckxpbmVXaWR0aD0xLHRoaXMuY29udG91clBvc2l0aW9ucz1BLHRoaXMuY29udG91clZBTz1ULHRoaXMuY29udG91ckNvdW50PTAsdGhpcy5jb250b3VyQ29sb3I9WzAsMCwwXSx0aGlzLmNvbnRvdXJFbmFibGU9ITAsdGhpcy5waWNrSWQ9MSx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLSgxLzApLC0oMS8wKSwtKDEvMCldXSx0aGlzLmNsaXBCb3VuZHM9W1stKDEvMCksLSgxLzApLC0oMS8wKV0sWzEvMCwxLzAsMS8wXV0sdGhpcy5saWdodFBvc2l0aW9uPVsxZTUsMWU1LDBdLHRoaXMuYW1iaWVudExpZ2h0PS44LHRoaXMuZGlmZnVzZUxpZ2h0PS44LHRoaXMuc3BlY3VsYXJMaWdodD0yLHRoaXMucm91Z2huZXNzPS41LHRoaXMuZnJlc25lbD0xLjUsdGhpcy5vcGFjaXR5PTEsdGhpcy5fbW9kZWw9aix0aGlzLl92aWV3PWosdGhpcy5fcHJvamVjdGlvbj1qLHRoaXMuX3Jlc29sdXRpb249WzEsMV19ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9ayh7Y29sb3JtYXA6dCxuc2hhZGVzOjI1Nixmb3JtYXQ6InJnYmEifSkscj1uZXcgVWludDhBcnJheSgxMDI0KSxuPTA7MjU2Pm47KytuKXtmb3IodmFyIGk9ZVtuXSxvPTA7Mz5vOysrbylyWzQqbitvXT1pW29dO3JbNCpuKzNdPTI1NSppWzNdfXJldHVybiBNKHIsWzI1NiwyNTYsNF0sWzQsMCwxXSl9ZnVuY3Rpb24gbyh0LGUscil7Zm9yKHZhciBuPW5ldyBBcnJheShlKSxpPTA7ZT5pOysraSluW2ldPTA7Zm9yKHZhciBvPXQubGVuZ3RoLGk9MDtvPmk7KytpKWZvcih2YXIgYT10W2ldLHM9MDtzPGEubGVuZ3RoOysrcyluW2Fbc11dPXJbaV07cmV0dXJuIG59ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO2U+bjsrK24pcltuXT10W25dWzJdO3JldHVybiByfWZ1bmN0aW9uIHModCl7dmFyIGU9Zyh0LEwpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MixlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MyxlLmF0dHJpYnV0ZXMubm9ybWFsLmxvY2F0aW9uPTQsZX1mdW5jdGlvbiBsKHQpe3ZhciBlPWcodCx6KTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZS5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTIsZS5hdHRyaWJ1dGVzLnV2LmxvY2F0aW9uPTMsZX1mdW5jdGlvbiB1KHQpe3ZhciBlPWcodCxJKTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZS5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTIsZS5hdHRyaWJ1dGVzLnV2LmxvY2F0aW9uPTMsZS5hdHRyaWJ1dGVzLnBvaW50U2l6ZS5sb2NhdGlvbj00LGV9ZnVuY3Rpb24gYyh0KXt2YXIgZT1nKHQsUCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5pZC5sb2NhdGlvbj0xLGV9ZnVuY3Rpb24gaCh0KXt2YXIgZT1nKHQsQyk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5pZC5sb2NhdGlvbj0xLGUuYXR0cmlidXRlcy5wb2ludFNpemUubG9jYXRpb249NCxlfWZ1bmN0aW9uIGYodCl7dmFyIGU9Zyh0LFIpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlfWZ1bmN0aW9uIHAodCl7dmFyIGU9dC5nbCxyPXMoZSksaT1sKGUpLG89dShlKSxhPWMoZSkscD1oKGUpLGQ9ZihlKSxtPWIoZSxNKG5ldyBVaW50OEFycmF5KFsyNTUsMjU1LDI1NSwyNTVdKSxbMSwxLDRdKSk7bS5nZW5lcmF0ZU1pcG1hcCgpLG0ubWluRmlsdGVyPWUuTElORUFSX01JUE1BUF9MSU5FQVIsbS5tYWdGaWx0ZXI9ZS5MSU5FQVI7dmFyIGc9dihlKSx4PXYoZSksXz12KGUpLHc9dihlKSxrPXYoZSksQT15KGUsW3tidWZmZXI6Zyx0eXBlOmUuRkxPQVQsc2l6ZTozfSx7YnVmZmVyOmssdHlwZTplLlVOU0lHTkVEX0JZVEUsc2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9LHtidWZmZXI6eCx0eXBlOmUuRkxPQVQsc2l6ZTo0fSx7YnVmZmVyOl8sdHlwZTplLkZMT0FULHNpemU6Mn0se2J1ZmZlcjp3LHR5cGU6ZS5GTE9BVCxzaXplOjN9XSksVD12KGUpLEU9dihlKSxTPXYoZSksTD12KGUpLHo9eShlLFt7YnVmZmVyOlQsdHlwZTplLkZMT0FULHNpemU6M30se2J1ZmZlcjpMLHR5cGU6ZS5VTlNJR05FRF9CWVRFLHNpemU6NCxub3JtYWxpemVkOiEwfSx7YnVmZmVyOkUsdHlwZTplLkZMT0FULHNpemU6NH0se2J1ZmZlcjpTLHR5cGU6ZS5GTE9BVCxzaXplOjJ9XSksST12KGUpLFA9dihlKSxDPXYoZSksUj12KGUpLGo9dihlKSxEPXkoZSxbe2J1ZmZlcjpJLHR5cGU6ZS5GTE9BVCxzaXplOjN9LHtidWZmZXI6aix0eXBlOmUuVU5TSUdORURfQllURSxzaXplOjQsbm9ybWFsaXplZDohMH0se2J1ZmZlcjpQLHR5cGU6ZS5GTE9BVCxzaXplOjR9LHtidWZmZXI6Qyx0eXBlOmUuRkxPQVQsc2l6ZToyfSx7YnVmZmVyOlIsdHlwZTplLkZMT0FULHNpemU6MX1dKSxPPXYoZSksRj15KGUsW3tidWZmZXI6Tyx0eXBlOmUuRkxPQVQsc2l6ZTozfV0pLE49bmV3IG4oZSxtLHIsaSxvLGEscCxkLGcsayx4LF8sdyxBLFQsTCxFLFMseixJLGosUCxDLFIsRCxPLEYpO3JldHVybiBOLnVwZGF0ZSh0KSxOfXZhciBkPTFlLTYsbT0xZS02LGc9dCgiZ2wtc2hhZGVyIiksdj10KCJnbC1idWZmZXIiKSx5PXQoImdsLXZhbyIpLGI9dCgiZ2wtdGV4dHVyZTJkIikseD10KCJub3JtYWxzIiksXz10KCJnbC1tYXQ0L211bHRpcGx5Iiksdz10KCJnbC1tYXQ0L2ludmVydCIpLE09dCgibmRhcnJheSIpLGs9dCgiY29sb3JtYXAiKSxBPXQoInNpbXBsaWNpYWwtY29tcGxleC1jb250b3VyIiksVD10KCJ0eXBlZGFycmF5LXBvb2wiKSxFPXQoIi4vbGliL3NoYWRlcnMiKSxTPXQoIi4vbGliL2Nsb3Nlc3QtcG9pbnQiKSxMPUUubWVzaFNoYWRlcix6PUUud2lyZVNoYWRlcixJPUUucG9pbnRTaGFkZXIsUD1FLnBpY2tTaGFkZXIsQz1FLnBvaW50UGlja1NoYWRlcixSPUUuY29udG91clNoYWRlcixqPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxEPW4ucHJvdG90eXBlO0QuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5Pj0xfSxELmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5PDF9LEQucGlja1Nsb3RzPTEsRC5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fSxELmhpZ2hsaWdodD1mdW5jdGlvbih0KXtpZighdHx8IXRoaXMuY29udG91ckVuYWJsZSlyZXR1cm4gdm9pZCh0aGlzLmNvbnRvdXJDb3VudD0wKTtmb3IodmFyIGU9QSh0aGlzLmNlbGxzLHRoaXMuaW50ZW5zaXR5LHQuaW50ZW5zaXR5KSxyPWUuY2VsbHMsbj1lLnZlcnRleElkcyxpPWUudmVydGV4V2VpZ2h0cyxvPXIubGVuZ3RoLGE9VC5tYWxsb2NGbG9hdDMyKDYqbykscz0wLGw9MDtvPmw7KytsKWZvcih2YXIgdT1yW2xdLGM9MDsyPmM7KytjKXt2YXIgaD11WzBdOzI9PT11Lmxlbmd0aCYmKGg9dVtjXSk7Zm9yKHZhciBmPW5baF1bMF0scD1uW2hdWzFdLGQ9aVtoXSxtPTEtZCxnPXRoaXMucG9zaXRpb25zW2ZdLHY9dGhpcy5wb3NpdGlvbnNbcF0seT0wOzM+eTsrK3kpYVtzKytdPWQqZ1t5XSttKnZbeV19dGhpcy5jb250b3VyQ291bnQ9cy8zfDAsdGhpcy5jb250b3VyUG9zaXRpb25zLnVwZGF0ZShhLnN1YmFycmF5KDAscykpLFQuZnJlZShhKX0sRC51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLmdsO3RoaXMuZGlydHk9ITAsImNvbnRvdXJFbmFibGUiaW4gdCYmKHRoaXMuY29udG91ckVuYWJsZT10LmNvbnRvdXJFbmFibGUpLCJjb250b3VyQ29sb3IiaW4gdCYmKHRoaXMuY29udG91ckNvbG9yPXQuY29udG91ckNvbG9yKSwibGluZVdpZHRoImluIHQmJih0aGlzLmxpbmVXaWR0aD10LmxpbmVXaWR0aCksImxpZ2h0UG9zaXRpb24iaW4gdCYmKHRoaXMubGlnaHRQb3NpdGlvbj10LmxpZ2h0UG9zaXRpb24pLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9dC5vcGFjaXR5KSwiYW1iaWVudCJpbiB0JiYodGhpcy5hbWJpZW50TGlnaHQ9dC5hbWJpZW50KSwiZGlmZnVzZSJpbiB0JiYodGhpcy5kaWZmdXNlTGlnaHQ9dC5kaWZmdXNlKSwic3BlY3VsYXIiaW4gdCYmKHRoaXMuc3BlY3VsYXJMaWdodD10LnNwZWN1bGFyKSwicm91Z2huZXNzImluIHQmJih0aGlzLnJvdWdobmVzcz10LnJvdWdobmVzcyksImZyZXNuZWwiaW4gdCYmKHRoaXMuZnJlc25lbD10LmZyZXNuZWwpLHQudGV4dHVyZT8odGhpcy50ZXh0dXJlLmRpc3Bvc2UoKSx0aGlzLnRleHR1cmU9YihlLHQudGV4dHVyZSkpOnQuY29sb3JtYXAmJih0aGlzLnRleHR1cmUuc2hhcGU9WzI1NiwyNTZdLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9ZS5MSU5FQVJfTUlQTUFQX0xJTkVBUix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUuTElORUFSLHRoaXMudGV4dHVyZS5zZXRQaXhlbHMoaSh0LmNvbG9ybWFwKSksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwKCkpO3ZhciByPXQuY2VsbHMsbj10LnBvc2l0aW9ucztpZihuJiZyKXt2YXIgcz1bXSxsPVtdLHU9W10sYz1bXSxoPVtdLGY9W10scD1bXSxnPVtdLHY9W10seT1bXSxfPVtdLHc9W10sTT1bXSxrPVtdO3RoaXMuY2VsbHM9cix0aGlzLnBvc2l0aW9ucz1uO3ZhciBBPXQudmVydGV4Tm9ybWFscyxUPXQuY2VsbE5vcm1hbHMsRT12b2lkIDA9PT10LnZlcnRleE5vcm1hbHNFcHNpbG9uP2Q6dC52ZXJ0ZXhOb3JtYWxzRXBzaWxvbixTPXZvaWQgMD09PXQuZmFjZU5vcm1hbHNFcHNpbG9uP206dC5mYWNlTm9ybWFsc0Vwc2lsb247dC51c2VGYWNldE5vcm1hbHMmJiFUJiYoVD14LmZhY2VOb3JtYWxzKHIsbixTKSksVHx8QXx8KEE9eC52ZXJ0ZXhOb3JtYWxzKHIsbixFKSk7dmFyIEw9dC52ZXJ0ZXhDb2xvcnMsej10LmNlbGxDb2xvcnMsST10Lm1lc2hDb2xvcnx8WzEsMSwxLDFdLFA9dC52ZXJ0ZXhVVnMsQz10LnZlcnRleEludGVuc2l0eSxSPXQuY2VsbFVWcyxqPXQuY2VsbEludGVuc2l0eSxEPTEvMCxPPS0oMS8wKTtpZighUCYmIVIpaWYoQylmb3IodmFyIEY9MDtGPEMubGVuZ3RoOysrRil7dmFyIE49Q1tGXTtEPU1hdGgubWluKEQsTiksTz1NYXRoLm1heChPLE4pfWVsc2UgaWYoailmb3IodmFyIEY9MDtGPGoubGVuZ3RoOysrRil7dmFyIE49altGXTtEPU1hdGgubWluKEQsTiksTz1NYXRoLm1heChPLE4pfWVsc2UgZm9yKHZhciBGPTA7RjxuLmxlbmd0aDsrK0Ype3ZhciBOPW5bRl1bMl07RD1NYXRoLm1pbihELE4pLE89TWF0aC5tYXgoTyxOKX1DP3RoaXMuaW50ZW5zaXR5PUM6aj90aGlzLmludGVuc2l0eT1vKHIsbi5sZW5ndGgsaik6dGhpcy5pbnRlbnNpdHk9YShuKTt2YXIgQj10LnBvaW50U2l6ZXMsVT10LnBvaW50U2l6ZXx8MTt0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLSgxLzApLC0oMS8wKSwtKDEvMCldXTtmb3IodmFyIEY9MDtGPG4ubGVuZ3RoOysrRilmb3IodmFyIFY9bltGXSxxPTA7Mz5xOysrcSkhaXNOYU4oVltxXSkmJmlzRmluaXRlKFZbcV0pJiYodGhpcy5ib3VuZHNbMF1bcV09TWF0aC5taW4odGhpcy5ib3VuZHNbMF1bcV0sVltxXSksdGhpcy5ib3VuZHNbMV1bcV09TWF0aC5tYXgodGhpcy5ib3VuZHNbMV1bcV0sVltxXSkpO3ZhciBHPTAsSD0wLFg9MDt0OmZvcih2YXIgRj0wO0Y8ci5sZW5ndGg7KytGKXt2YXIgWT1yW0ZdO3N3aXRjaChZLmxlbmd0aCl7Y2FzZSAxOmZvcih2YXIgVz1ZWzBdLFY9bltXXSxxPTA7Mz5xOysrcSlpZihpc05hTihWW3FdKXx8IWlzRmluaXRlKFZbcV0pKWNvbnRpbnVlIHQ7eS5wdXNoKFZbMF0sVlsxXSxWWzJdKTt2YXIgWjtaPUw/TFtXXTp6P3pbRl06SSwzPT09Wi5sZW5ndGg/Xy5wdXNoKFpbMF0sWlsxXSxaWzJdLDEpOl8ucHVzaChaWzBdLFpbMV0sWlsyXSxaWzNdKTt2YXIgUTtRPVA/UFtXXTpDP1soQ1tXXS1EKS8oTy1EKSwwXTpSP1JbRl06aj9bKGpbRl0tRCkvKE8tRCksMF06WyhWWzJdLUQpLyhPLUQpLDBdLHcucHVzaChRWzBdLFFbMV0pLEI/TS5wdXNoKEJbV10pOk0ucHVzaChVKSxrLnB1c2goRiksWCs9MTticmVhaztjYXNlIDI6Zm9yKHZhciBxPTA7Mj5xOysrcSlmb3IodmFyIFc9WVtxXSxWPW5bV10sSz0wOzM+SzsrK0spaWYoaXNOYU4oVltLXSl8fCFpc0Zpbml0ZShWW0tdKSljb250aW51ZSB0O2Zvcih2YXIgcT0wOzI+cTsrK3Epe3ZhciBXPVlbcV0sVj1uW1ddO2YucHVzaChWWzBdLFZbMV0sVlsyXSk7dmFyIFo7Wj1MP0xbV106ej96W0ZdOkksMz09PVoubGVuZ3RoP3AucHVzaChaWzBdLFpbMV0sWlsyXSwxKTpwLnB1c2goWlswXSxaWzFdLFpbMl0sWlszXSk7dmFyIFE7UT1QP1BbV106Qz9bKENbV10tRCkvKE8tRCksMF06Uj9SW0ZdOmo/WyhqW0ZdLUQpLyhPLUQpLDBdOlsoVlsyXS1EKS8oTy1EKSwwXSxnLnB1c2goUVswXSxRWzFdKSx2LnB1c2goRil9SCs9MTticmVhaztjYXNlIDM6Zm9yKHZhciBxPTA7Mz5xOysrcSlmb3IodmFyIFc9WVtxXSxWPW5bV10sSz0wOzM+SzsrK0spaWYoaXNOYU4oVltLXSl8fCFpc0Zpbml0ZShWW0tdKSljb250aW51ZSB0O2Zvcih2YXIgcT0wOzM+cTsrK3Epe3ZhciBXPVlbcV0sVj1uW1ddO3MucHVzaChWWzBdLFZbMV0sVlsyXSk7dmFyIFo7Wj1MP0xbV106ej96W0ZdOkksMz09PVoubGVuZ3RoP2wucHVzaChaWzBdLFpbMV0sWlsyXSwxKTpsLnB1c2goWlswXSxaWzFdLFpbMl0sWlszXSk7dmFyIFE7UT1QP1BbV106Qz9bKENbV10tRCkvKE8tRCksMF06Uj9SW0ZdOmo/WyhqW0ZdLUQpLyhPLUQpLDBdOlsoVlsyXS1EKS8oTy1EKSwwXSxjLnB1c2goUVswXSxRWzFdKTt2YXIgSjtKPUE/QVtXXTpUW0ZdLHUucHVzaChKWzBdLEpbMV0sSlsyXSksaC5wdXNoKEYpfUcrPTF9fXRoaXMucG9pbnRDb3VudD1YLHRoaXMuZWRnZUNvdW50PUgsdGhpcy50cmlhbmdsZUNvdW50PUcsdGhpcy5wb2ludFBvc2l0aW9ucy51cGRhdGUoeSksdGhpcy5wb2ludENvbG9ycy51cGRhdGUoXyksdGhpcy5wb2ludFVWcy51cGRhdGUodyksdGhpcy5wb2ludFNpemVzLnVwZGF0ZShNKSx0aGlzLnBvaW50SWRzLnVwZGF0ZShuZXcgVWludDMyQXJyYXkoaykpLHRoaXMuZWRnZVBvc2l0aW9ucy51cGRhdGUoZiksdGhpcy5lZGdlQ29sb3JzLnVwZGF0ZShwKSx0aGlzLmVkZ2VVVnMudXBkYXRlKGcpLHRoaXMuZWRnZUlkcy51cGRhdGUobmV3IFVpbnQzMkFycmF5KHYpKSx0aGlzLnRyaWFuZ2xlUG9zaXRpb25zLnVwZGF0ZShzKSx0aGlzLnRyaWFuZ2xlQ29sb3JzLnVwZGF0ZShsKSx0aGlzLnRyaWFuZ2xlVVZzLnVwZGF0ZShjKSx0aGlzLnRyaWFuZ2xlTm9ybWFscy51cGRhdGUodSksdGhpcy50cmlhbmdsZUlkcy51cGRhdGUobmV3IFVpbnQzMkFycmF5KGgpKX19LEQuZHJhd1RyYW5zcGFyZW50PUQuZHJhdz1mdW5jdGlvbih0KXt0PXR8fHt9O2Zvcih2YXIgZT10aGlzLmdsLHI9dC5tb2RlbHx8aixuPXQudmlld3x8aixpPXQucHJvamVjdGlvbnx8aixvPVtbLTFlNiwtMWU2LC0xZTZdLFsxZTYsMWU2LDFlNl1dLGE9MDszPmE7KythKW9bMF1bYV09TWF0aC5tYXgob1swXVthXSx0aGlzLmNsaXBCb3VuZHNbMF1bYV0pLG9bMV1bYV09TWF0aC5taW4ob1sxXVthXSx0aGlzLmNsaXBCb3VuZHNbMV1bYV0pO3ZhciBzPXttb2RlbDpyLHZpZXc6bixwcm9qZWN0aW9uOmksY2xpcEJvdW5kczpvLGthbWJpZW50OnRoaXMuYW1iaWVudExpZ2h0LGtkaWZmdXNlOnRoaXMuZGlmZnVzZUxpZ2h0LGtzcGVjdWxhcjp0aGlzLnNwZWN1bGFyTGlnaHQscm91Z2huZXNzOnRoaXMucm91Z2huZXNzLGZyZXNuZWw6dGhpcy5mcmVzbmVsLGV5ZVBvc2l0aW9uOlswLDAsMF0sbGlnaHRQb3NpdGlvbjpbMCwwLDBdLG9wYWNpdHk6dGhpcy5vcGFjaXR5LGNvbnRvdXJDb2xvcjp0aGlzLmNvbnRvdXJDb2xvcix0ZXh0dXJlOjB9O3RoaXMudGV4dHVyZS5iaW5kKDApO3ZhciBsPW5ldyBBcnJheSgxNik7XyhsLHMudmlldyxzLm1vZGVsKSxfKGwscy5wcm9qZWN0aW9uLGwpLHcobCxsKTtmb3IodmFyIGE9MDszPmE7KythKXMuZXllUG9zaXRpb25bYV09bFsxMithXS9sWzE1XTtmb3IodmFyIHU9bFsxNV0sYT0wOzM+YTsrK2EpdSs9dGhpcy5saWdodFBvc2l0aW9uW2FdKmxbNCphKzNdO2Zvcih2YXIgYT0wOzM+YTsrK2Epe2Zvcih2YXIgYz1sWzEyK2FdLGg9MDszPmg7KytoKWMrPWxbNCpoK2FdKnRoaXMubGlnaHRQb3NpdGlvbltoXTtzLmxpZ2h0UG9zaXRpb25bYV09Yy91fWlmKHRoaXMudHJpYW5nbGVDb3VudD4wKXt2YXIgZj10aGlzLnRyaVNoYWRlcjtmLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy50cmlhbmdsZVZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuVFJJQU5HTEVTLDAsMyp0aGlzLnRyaWFuZ2xlQ291bnQpLHRoaXMudHJpYW5nbGVWQU8udW5iaW5kKCl9aWYodGhpcy5lZGdlQ291bnQ+MCYmdGhpcy5saW5lV2lkdGg+MCl7dmFyIGY9dGhpcy5saW5lU2hhZGVyO2YuYmluZCgpLGYudW5pZm9ybXM9cyx0aGlzLmVkZ2VWQU8uYmluZCgpLGUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoKSxlLmRyYXdBcnJheXMoZS5MSU5FUywwLDIqdGhpcy5lZGdlQ291bnQpLHRoaXMuZWRnZVZBTy51bmJpbmQoKX1pZih0aGlzLnBvaW50Q291bnQ+MCl7dmFyIGY9dGhpcy5wb2ludFNoYWRlcjtmLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy5wb2ludFZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuUE9JTlRTLDAsdGhpcy5wb2ludENvdW50KSx0aGlzLnBvaW50VkFPLnVuYmluZCgpfWlmKHRoaXMuY29udG91ckVuYWJsZSYmdGhpcy5jb250b3VyQ291bnQ+MCYmdGhpcy5jb250b3VyTGluZVdpZHRoPjApe3ZhciBmPXRoaXMuY29udG91clNoYWRlcjtmLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy5jb250b3VyVkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5MSU5FUywwLHRoaXMuY29udG91ckNvdW50KSx0aGlzLmNvbnRvdXJWQU8udW5iaW5kKCl9fSxELmRyYXdQaWNrPWZ1bmN0aW9uKHQpe3Q9dHx8e307Zm9yKHZhciBlPXRoaXMuZ2wscj10Lm1vZGVsfHxqLG49dC52aWV3fHxqLGk9dC5wcm9qZWN0aW9ufHxqLG89W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0sYT0wOzM+YTsrK2Epb1swXVthXT1NYXRoLm1heChvWzBdW2FdLHRoaXMuY2xpcEJvdW5kc1swXVthXSksb1sxXVthXT1NYXRoLm1pbihvWzFdW2FdLHRoaXMuY2xpcEJvdW5kc1sxXVthXSk7dGhpcy5fbW9kZWw9W10uc2xpY2UuY2FsbChyKSx0aGlzLl92aWV3PVtdLnNsaWNlLmNhbGwobiksdGhpcy5fcHJvamVjdGlvbj1bXS5zbGljZS5jYWxsKGkpLHRoaXMuX3Jlc29sdXRpb249W2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF07dmFyIHM9e21vZGVsOnIsdmlldzpuLHByb2plY3Rpb246aSxjbGlwQm91bmRzOm8scGlja0lkOnRoaXMucGlja0lkLzI1NX0sbD10aGlzLnBpY2tTaGFkZXI7aWYobC5iaW5kKCksbC51bmlmb3Jtcz1zLHRoaXMudHJpYW5nbGVDb3VudD4wJiYodGhpcy50cmlhbmdsZVZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuVFJJQU5HTEVTLDAsMyp0aGlzLnRyaWFuZ2xlQ291bnQpLHRoaXMudHJpYW5nbGVWQU8udW5iaW5kKCkpLHRoaXMuZWRnZUNvdW50PjAmJih0aGlzLmVkZ2VWQU8uYmluZCgpLGUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoKSxlLmRyYXdBcnJheXMoZS5MSU5FUywwLDIqdGhpcy5lZGdlQ291bnQpLHRoaXMuZWRnZVZBTy51bmJpbmQoKSksdGhpcy5wb2ludENvdW50PjApe3ZhciBsPXRoaXMucG9pbnRQaWNrU2hhZGVyO2wuYmluZCgpLGwudW5pZm9ybXM9cyx0aGlzLnBvaW50VkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5QT0lOVFMsMCx0aGlzLnBvaW50Q291bnQpLHRoaXMucG9pbnRWQU8udW5iaW5kKCl9fSxELnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO2Zvcih2YXIgZT10LnZhbHVlWzBdKzI1Nip0LnZhbHVlWzFdKzY1NTM2KnQudmFsdWVbMl0scj10aGlzLmNlbGxzW2VdLG49dGhpcy5wb3NpdGlvbnMsaT1uZXcgQXJyYXkoci5sZW5ndGgpLG89MDtvPHIubGVuZ3RoOysrbylpW29dPW5bcltvXV07dmFyIGE9UyhpLFt0LmNvb3JkWzBdLHRoaXMuX3Jlc29sdXRpb25bMV0tdC5jb29yZFsxXV0sdGhpcy5fbW9kZWwsdGhpcy5fdmlldyx0aGlzLl9wcm9qZWN0aW9uLHRoaXMuX3Jlc29sdXRpb24pO2lmKCFhKXJldHVybiBudWxsO2Zvcih2YXIgcz1hWzJdLGw9MCxvPTA7bzxyLmxlbmd0aDsrK28pbCs9c1tvXSp0aGlzLmludGVuc2l0eVtyW29dXTtyZXR1cm57cG9zaXRpb246YVsxXSxpbmRleDpyW2FbMF1dLGNlbGw6cixjZWxsSWQ6ZSxpbnRlbnNpdHk6bCxkYXRhQ29vcmRpbmF0ZTp0aGlzLnBvc2l0aW9uc1tyW2FbMF1dXX19LEQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudGV4dHVyZS5kaXNwb3NlKCksdGhpcy50cmlTaGFkZXIuZGlzcG9zZSgpLHRoaXMubGluZVNoYWRlci5kaXNwb3NlKCksdGhpcy5wb2ludFNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBvaW50UGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVZBTy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVBvc2l0aW9ucy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZUNvbG9ycy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZVVWcy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZU5vcm1hbHMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVJZHMuZGlzcG9zZSgpLHRoaXMuZWRnZVZBTy5kaXNwb3NlKCksdGhpcy5lZGdlUG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLmVkZ2VDb2xvcnMuZGlzcG9zZSgpLHRoaXMuZWRnZVVWcy5kaXNwb3NlKCksdGhpcy5lZGdlSWRzLmRpc3Bvc2UoKSx0aGlzLnBvaW50VkFPLmRpc3Bvc2UoKSx0aGlzLnBvaW50UG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLnBvaW50Q29sb3JzLmRpc3Bvc2UoKSx0aGlzLnBvaW50VVZzLmRpc3Bvc2UoKSx0aGlzLnBvaW50U2l6ZXMuZGlzcG9zZSgpLHRoaXMucG9pbnRJZHMuZGlzcG9zZSgpLHRoaXMuY29udG91clZBTy5kaXNwb3NlKCksdGhpcy5jb250b3VyUG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLmNvbnRvdXJTaGFkZXIuZGlzcG9zZSgpfSxlLmV4cG9ydHM9cH0seyIuL2xpYi9jbG9zZXN0LXBvaW50IjoxNTksIi4vbGliL3NoYWRlcnMiOjE2MCxjb2xvcm1hcDoxMTEsImdsLWJ1ZmZlciI6MTI5LCJnbC1tYXQ0L2ludmVydCI6MTQ4LCJnbC1tYXQ0L211bHRpcGx5IjoxNTAsImdsLXNoYWRlciI6MjA4LCJnbC10ZXh0dXJlMmQiOjIzMywiZ2wtdmFvIjoyMzcsbmRhcnJheTo0NTYsbm9ybWFsczoxNjMsInNpbXBsaWNpYWwtY29tcGxleC1jb250b3VyIjoxNjUsInR5cGVkYXJyYXktcG9vbCI6NDgxfV0sMTYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7KytyKWUrPXRbcl07cmV0dXJuIGV9ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aCxpPW5ldyBBcnJheShyKzEpLGE9MDtyPmE7KythKXtmb3IodmFyIHM9bmV3IEFycmF5KHIrMSksbD0wO3I+PWw7KytsKXNbbF09dFtsXVthXTtpW2FdPXN9aVtyXT1uZXcgQXJyYXkocisxKTtmb3IodmFyIGE9MDtyPj1hOysrYSlpW3JdW2FdPTE7Zm9yKHZhciB1PW5ldyBBcnJheShyKzEpLGE9MDtyPmE7KythKXVbYV09ZVthXTt1W3JdPTE7dmFyIGM9byhpLHUpLGg9bihjW3IrMV0pOzA9PT1oJiYoaD0xKTtmb3IodmFyIGY9bmV3IEFycmF5KHIrMSksYT0wO3I+PWE7KythKWZbYV09bihjW2FdKS9oO3JldHVybiBmfWUuZXhwb3J0cz1pO3ZhciBvPXQoInJvYnVzdC1saW5lYXItc29sdmUiKX0seyJyb2J1c3QtbGluZWFyLXNvbHZlIjo0NTl9XSwxNjM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj0xZS02LGk9MWUtNjtyLnZlcnRleE5vcm1hbHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgaT1lLmxlbmd0aCxvPW5ldyBBcnJheShpKSxhPXZvaWQgMD09PXI/bjpyLHM9MDtpPnM7KytzKW9bc109WzAsMCwwXTtmb3IodmFyIHM9MDtzPHQubGVuZ3RoOysrcylmb3IodmFyIGw9dFtzXSx1PTAsYz1sW2wubGVuZ3RoLTFdLGg9bFswXSxmPTA7ZjxsLmxlbmd0aDsrK2Ype3U9YyxjPWgsaD1sWyhmKzEpJWwubGVuZ3RoXTtmb3IodmFyIHA9ZVt1XSxkPWVbY10sbT1lW2hdLGc9bmV3IEFycmF5KDMpLHY9MCx5PW5ldyBBcnJheSgzKSxiPTAseD0wOzM+eDsrK3gpZ1t4XT1wW3hdLWRbeF0sdis9Z1t4XSpnW3hdLHlbeF09bVt4XS1kW3hdLGIrPXlbeF0qeVt4XTtpZih2KmI+YSlmb3IodmFyIF89b1tjXSx3PTEvTWF0aC5zcXJ0KHYqYikseD0wOzM+eDsrK3gpe3ZhciBNPSh4KzEpJTMsaz0oeCsyKSUzO19beF0rPXcqKHlbTV0qZ1trXS15W2tdKmdbTV0pfX1mb3IodmFyIHM9MDtpPnM7KytzKXtmb3IodmFyIF89b1tzXSxBPTAseD0wOzM+eDsrK3gpQSs9X1t4XSpfW3hdO2lmKEE+YSlmb3IodmFyIHc9MS9NYXRoLnNxcnQoQSkseD0wOzM+eDsrK3gpX1t4XSo9dztlbHNlIGZvcih2YXIgeD0wOzM+eDsrK3gpX1t4XT0wfXJldHVybiBvfSxyLmZhY2VOb3JtYWxzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49dC5sZW5ndGgsbz1uZXcgQXJyYXkobiksYT12b2lkIDA9PT1yP2k6cixzPTA7bj5zOysrcyl7Zm9yKHZhciBsPXRbc10sdT1uZXcgQXJyYXkoMyksYz0wOzM+YzsrK2MpdVtjXT1lW2xbY11dO2Zvcih2YXIgaD1uZXcgQXJyYXkoMyksZj1uZXcgQXJyYXkoMyksYz0wOzM+YzsrK2MpaFtjXT11WzFdW2NdLXVbMF1bY10sZltjXT11WzJdW2NdLXVbMF1bY107Zm9yKHZhciBwPW5ldyBBcnJheSgzKSxkPTAsYz0wOzM+YzsrK2Mpe3ZhciBtPShjKzEpJTMsZz0oYysyKSUzO3BbY109aFttXSpmW2ddLWhbZ10qZlttXSxkKz1wW2NdKnBbY119ZD1kPmE/MS9NYXRoLnNxcnQoZCk6MDtmb3IodmFyIGM9MDszPmM7KytjKXBbY10qPWQ7b1tzXT1wfXJldHVybiBvfX0se31dLDE2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4scyl7aS5sZW5ndGg8bi5sZW5ndGgmJihpPW5ldyBGbG9hdDY0QXJyYXkobi5sZW5ndGgpLG89bmV3IEZsb2F0NjRBcnJheShuLmxlbmd0aCksYT1uZXcgRmxvYXQ2NEFycmF5KG4ubGVuZ3RoKSk7Zm9yKHZhciBsPTA7bDxuLmxlbmd0aDsrK2wpaVtsXT10W2xdLW5bbF0sb1tsXT1lW2xdLXRbbF0sYVtsXT1yW2xdLXRbbF07Zm9yKHZhciB1PTAsYz0wLGg9MCxmPTAscD0wLGQ9MCxsPTA7bDxuLmxlbmd0aDsrK2wpe3ZhciBtPW9bbF0sZz1hW2xdLHY9aVtsXTt1Kz1tKm0sYys9bSpnLGgrPWcqZyxmKz12Km0scCs9dipnLGQrPXYqdn12YXIgeSxiPU1hdGguYWJzKHUqaC1jKmMpLHg9YypwLWgqZixfPWMqZi11KnA7aWYoYj49eCtfKWlmKDA+eCkwPl8mJjA+Zj8oXz0wLC1mPj11Pyh4PTEseT11KzIqZitkKTooeD0tZi91LHk9Zip4K2QpKTooeD0wLHA+PTA/KF89MCx5PWQpOi1wPj1oPyhfPTEseT1oKzIqcCtkKTooXz0tcC9oLHk9cCpfK2QpKTtlbHNlIGlmKDA+XylfPTAsZj49MD8oeD0wLHk9ZCk6LWY+PXU/KHg9MSx5PXUrMipmK2QpOih4PS1mL3UseT1mKngrZCk7ZWxzZXt2YXIgdz0xL2I7eCo9dyxfKj13LHk9eCoodSp4K2MqXysyKmYpK18qKGMqeCtoKl8rMipwKStkfWVsc2V7dmFyIE0sayxBLFQ7MD54PyhNPWMrZixrPWgrcCxrPk0/KEE9ay1NLFQ9dS0yKmMraCxBPj1UPyh4PTEsXz0wLHk9dSsyKmYrZCk6KHg9QS9ULF89MS14LHk9eCoodSp4K2MqXysyKmYpK18qKGMqeCtoKl8rMipwKStkKSk6KHg9MCwwPj1rPyhfPTEseT1oKzIqcCtkKTpwPj0wPyhfPTAseT1kKTooXz0tcC9oLHk9cCpfK2QpKSk6MD5fPyhNPWMrcCxrPXUrZixrPk0/KEE9ay1NLFQ9dS0yKmMraCxBPj1UPyhfPTEseD0wLHk9aCsyKnArZCk6KF89QS9ULHg9MS1fLHk9eCoodSp4K2MqXysyKmYpK18qKGMqeCtoKl8rMipwKStkKSk6KF89MCwwPj1rPyh4PTEseT11KzIqZitkKTpmPj0wPyh4PTAseT1kKTooeD0tZi91LHk9Zip4K2QpKSk6KEE9aCtwLWMtZiwwPj1BPyh4PTAsXz0xLHk9aCsyKnArZCk6KFQ9dS0yKmMraCxBPj1UPyh4PTEsXz0wLHk9dSsyKmYrZCk6KHg9QS9ULF89MS14LHk9eCoodSp4K2MqXysyKmYpK18qKGMqeCtoKl8rMipwKStkKSkpfWZvcih2YXIgRT0xLXgtXyxsPTA7bDxuLmxlbmd0aDsrK2wpc1tsXT1FKnRbbF0reCplW2xdK18qcltsXTtyZXR1cm4gMD55PzA6eX12YXIgaT1uZXcgRmxvYXQ2NEFycmF5KDQpLG89bmV3IEZsb2F0NjRBcnJheSg0KSxhPW5ldyBGbG9hdDY0QXJyYXkoNCk7ZS5leHBvcnRzPW59LHt9XSwxNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj0wLG49MDtlPm47KytuKXI9MHxNYXRoLm1heChyLHRbbl0ubGVuZ3RoKTtyZXR1cm4gci0xfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1oLm1hbGxvY1VpbnQ4KHIpLGk9MDtyPmk7KytpKW5baV09dFtpXTxlfDA7cmV0dXJuIG59ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUqKGUrMSkvMipyfDAsaT1oLm1hbGxvY1VpbnQzMigyKm4pLG89MCxhPTA7cj5hOysrYSlmb3IodmFyIHM9dFthXSxlPXMubGVuZ3RoLGw9MDtlPmw7KytsKWZvcih2YXIgdT0wO2w+dTsrK3Upe3ZhciBwPXNbdV0sZD1zW2xdO2lbbysrXT0wfE1hdGgubWluKHAsZCksaVtvKytdPTB8TWF0aC5tYXgocCxkKX12YXIgbT1vLzJ8MDtmKGMoaSxbbSwyXSkpO2Zvcih2YXIgZz0yLGE9MjtvPmE7YSs9MilpW2EtMl09PT1pW2FdJiZpW2EtMV09PT1pW2ErMV18fChpW2crK109aVthXSxpW2crK109aVthKzFdKTtyZXR1cm4gYyhpLFtnLzJ8MCwyXSl9ZnVuY3Rpb24gYSh0LGUscixuKXtmb3IodmFyIGk9dC5kYXRhLG89dC5zaGFwZVswXSxhPWgubWFsbG9jRG91YmxlKG8pLHM9MCxsPTA7bz5sOysrbCl7dmFyIHU9aVsyKmxdLGY9aVsyKmwrMV07aWYoclt1XSE9PXJbZl0pe3ZhciBwPWVbdV0sZD1lW2ZdO2lbMipzXT11LGlbMipzKzFdPWYsYVtzKytdPShkLW4pLyhkLXApfX1yZXR1cm4gdC5zaGFwZVswXT1zLGMoYSxbc10pfWZ1bmN0aW9uIHModCxlKXt2YXIgcj1oLm1hbGxvY0ludDMyKDIqZSksbj10LnNoYXBlWzBdLGk9dC5kYXRhO3JbMF09MDtmb3IodmFyIG89MCxhPTA7bj5hOysrYSl7dmFyIHM9aVsyKmFdO2lmKHMhPT1vKXtmb3IoclsyKm8rMV09YTsrK288czspclsyKm9dPWEsclsyKm8rMV09YTtyWzIqb109YX19Zm9yKHJbMipvKzFdPW47KytvPGU7KXJbMipvXT1yWzIqbysxXT1uO3JldHVybiByfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlPTB8dC5zaGFwZVswXSxyPXQuZGF0YSxuPW5ldyBBcnJheShlKSxpPTA7ZT5pOysraSluW2ldPVtyWzIqaV0sclsyKmkrMV1dO3JldHVybiBufWZ1bmN0aW9uIHUodCxlLHIsdSl7cj1yfHwwLCJ1bmRlZmluZWQiPT10eXBlb2YgdSYmKHU9bih0KSk7dmFyIGM9dC5sZW5ndGg7aWYoMD09PWN8fDE+dSlyZXR1cm57Y2VsbHM6W10sdmVydGV4SWRzOltdLHZlcnRleFdlaWdodHM6W119O3ZhciBmPWkoZSwrciksZD1vKHQsdSksbT1hKGQsZSxmLCtyKSxnPXMoZCwwfGUubGVuZ3RoKSx2PXAodSkodCxkLmRhdGEsZyxmKSx5PWwoZCksYj1bXS5zbGljZS5jYWxsKG0uZGF0YSwwLG0uc2hhcGVbMF0pO3JldHVybiBoLmZyZWUoZiksaC5mcmVlKGQuZGF0YSksaC5mcmVlKG0uZGF0YSksaC5mcmVlKGcpLHtjZWxsczp2LHZlcnRleElkczp5LHZlcnRleFdlaWdodHM6Yn19ZS5leHBvcnRzPXU7dmFyIGM9dCgibmRhcnJheSIpLGg9dCgidHlwZWRhcnJheS1wb29sIiksZj10KCJuZGFycmF5LXNvcnQiKSxwPXQoIi4vbGliL2NvZGVnZW4iKX0seyIuL2xpYi9jb2RlZ2VuIjoxNjYsbmRhcnJheTo0NTYsIm5kYXJyYXktc29ydCI6MTY5LCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDE2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUodCl7aWYoISh0Lmxlbmd0aDw9MCkpe3UucHVzaCgiUi5wdXNoKCIpO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7KytlKXt2YXIgcj10W2VdO2U+MCYmdS5wdXNoKCIsIiksdS5wdXNoKCJbIik7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDsrK24pe3ZhciBpPXJbbl07bj4wJiZ1LnB1c2goIiwiKSx1LnB1c2goIkIoQyxFLGNbIixpWzBdLCJdLGNbIixpWzFdLCJdKSIpfXUucHVzaCgiXSIpfXUucHVzaCgiKTsiKX19dmFyIHI9MCxuPW5ldyBBcnJheSh0KzEpO25bMF09W1tdXTtmb3IodmFyIGk9MTt0Pj1pOysraSlmb3IodmFyIHM9bltpXT1hKGkpLGw9MDtsPHMubGVuZ3RoOysrbClyPU1hdGgubWF4KHIsc1tpXS5sZW5ndGgpO2Zvcih2YXIgdT1bImZ1bmN0aW9uIEIoQyxFLGksail7IiwidmFyIGE9TWF0aC5taW4oaSxqKXwwLGI9TWF0aC5tYXgoaSxqKXwwLGw9Q1syKmFdLGg9Q1syKmErMV07Iiwid2hpbGUobDxoKXsiLCJ2YXIgbT0obCtoKT4+MSx2PUVbMiptKzFdOyIsImlmKHY9PT1iKXtyZXR1cm4gbX0iLCJpZihiPHYpe2g9bX1lbHNle2w9bSsxfSIsIn0iLCJyZXR1cm4gbDsiLCJ9OyIsImZ1bmN0aW9uIGdldENvbnRvdXIiLHQsImQoRixFLEMsUyl7IiwidmFyIG49Ri5sZW5ndGgsUj1bXTsiLCJmb3IodmFyIGk9MDtpPG47KytpKXt2YXIgYz1GW2ldLGw9Yy5sZW5ndGg7Il0saT10KzE7aT4xOy0taSl7dCsxPmkmJnUucHVzaCgiZWxzZSAiKSx1LnB1c2goImlmKGw9PT0iLGksIil7Iik7Zm9yKHZhciBjPVtdLGw9MDtpPmw7KytsKWMucHVzaCgiKFNbY1siK2wrIl1dPDwiK2wrIikiKTt1LnB1c2goInZhciBNPSIsYy5qb2luKCIrIiksIjtpZihNPT09MHx8TT09PSIsKDE8PGkpLTEsIil7Y29udGludWV9c3dpdGNoKE0peyIpO2Zvcih2YXIgcz1uW2ktMV0sbD0wO2w8cy5sZW5ndGg7KytsKXUucHVzaCgiY2FzZSAiLGwsIjoiKSxlKHNbbF0pLHUucHVzaCgiYnJlYWs7Iik7dS5wdXNoKCJ9fSIpfXUucHVzaCgifXJldHVybiBSO307cmV0dXJuIGdldENvbnRvdXIiLHQsImQiKTt2YXIgaD1uZXcgRnVuY3Rpb24oInBvb2wiLHUuam9pbigiIikpO3JldHVybiBoKG8pfWZ1bmN0aW9uIGkodCl7dmFyIGU9c1t0XTtyZXR1cm4gZXx8KGU9c1t0XT1uKHQpKSxlfWUuZXhwb3J0cz1pO3ZhciBvPXQoInR5cGVkYXJyYXktcG9vbCIpLGE9dCgibWFyY2hpbmctc2ltcGxleC10YWJsZSIpLHM9e319LHsibWFyY2hpbmctc2ltcGxleC10YWJsZSI6MTY3LCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDE2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtmb3IodmFyIG49bmV3IEFycmF5KHQpLGk9MDt0Pmk7KytpKW5baV09MCxpPT09ZSYmKG5baV0rPS41KSxpPT09ciYmKG5baV0rPS41KTtyZXR1cm4gbn1mdW5jdGlvbiBpKHQsZSl7aWYoMD09PWV8fGU9PT0oMTw8dCsxKS0xKXJldHVybltdO2Zvcih2YXIgcj1bXSxpPVtdLG89MDt0Pj1vOysrbylpZihlJjE8PG8pe3IucHVzaChuKHQsby0xLG8tMSkpLGkucHVzaChudWxsKTtmb3IodmFyIHM9MDt0Pj1zOysrcyl+ZSYxPDxzJiYoci5wdXNoKG4odCxvLTEscy0xKSksaS5wdXNoKFtvLHNdKSl9dmFyIGw9YShyKSx1PVtdO3Q6Zm9yKHZhciBvPTA7bzxsLmxlbmd0aDsrK28pe2Zvcih2YXIgYz1sW29dLGg9W10scz0wO3M8Yy5sZW5ndGg7KytzKXtpZighaVtjW3NdXSljb250aW51ZSB0O2gucHVzaChpW2Nbc11dLnNsaWNlKCkpfXUucHVzaChoKX1yZXR1cm4gdX1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT0xPDx0KzEscj1uZXcgQXJyYXkoZSksbj0wO2U+bjsrK24pcltuXT1pKHQsbik7cmV0dXJuIHJ9ZS5leHBvcnRzPW87dmFyIGE9dCgiY29udmV4LWh1bGwiKX0seyJjb252ZXgtaHVsbCI6MTEzfV0sMTY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7c3dpdGNoKHQpe2Nhc2UidWludDgiOnJldHVybltsLm1hbGxvY1VpbnQ4LGwuZnJlZVVpbnQ4XTtjYXNlInVpbnQxNiI6cmV0dXJuW2wubWFsbG9jVWludDE2LGwuZnJlZVVpbnQxNl07Y2FzZSJ1aW50MzIiOnJldHVybltsLm1hbGxvY1VpbnQzMixsLmZyZWVVaW50MzJdO2Nhc2UiaW50OCI6cmV0dXJuW2wubWFsbG9jSW50OCxsLmZyZWVJbnQ4XTtjYXNlImludDE2IjpyZXR1cm5bbC5tYWxsb2NJbnQxNixsLmZyZWVJbnQxNl07Y2FzZSJpbnQzMiI6cmV0dXJuW2wubWFsbG9jSW50MzIsbC5mcmVlSW50MzJdO2Nhc2UiZmxvYXQzMiI6cmV0dXJuW2wubWFsbG9jRmxvYXQsbC5mcmVlRmxvYXRdO2Nhc2UiZmxvYXQ2NCI6cmV0dXJuW2wubWFsbG9jRG91YmxlLGwuZnJlZURvdWJsZV07ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9W10scj0wO3Q+cjsrK3IpZS5wdXNoKCJzIityKTtmb3IodmFyIHI9MDt0PnI7KytyKWUucHVzaCgibiIrcik7Zm9yKHZhciByPTE7dD5yOysrcillLnB1c2goImQiK3IpO2Zvcih2YXIgcj0xO3Q+cjsrK3IpZS5wdXNoKCJlIityKTtmb3IodmFyIHI9MTt0PnI7KytyKWUucHVzaCgiZiIrcik7cmV0dXJuIGV9ZnVuY3Rpb24gbyh0LGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuZ2V0KCIsdCwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl0iXS5qb2luKCIiKX1mdW5jdGlvbiBvKHQscil7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuc2V0KCIsdCwiLCIsciwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl09IixyXS5qb2luKCIiKX12YXIgYT1bIid1c2Ugc3RyaWN0JyJdLHM9WyJuZGFycmF5SW5zZXJ0aW9uU29ydCIsdC5qb2luKCJkIiksZV0uam9pbigiIiksbD1bImxlZnQiLCJyaWdodCIsImRhdGEiLCJvZmZzZXQiXS5jb25jYXQoaSh0Lmxlbmd0aCkpLHU9bihlKSxjPVsiaSxqLGNwdHIscHRyPWxlZnQqczArb2Zmc2V0Il07aWYodC5sZW5ndGg+MSl7Zm9yKHZhciBoPVtdLGY9MTtmPHQubGVuZ3RoOysrZiljLnB1c2goImkiK2YpLGgucHVzaCgibiIrZik7dT9jLnB1c2goInNjcmF0Y2g9bWFsbG9jKCIraC5qb2luKCIqIikrIikiKTpjLnB1c2goInNjcmF0Y2g9bmV3IEFycmF5KCIraC5qb2luKCIqIikrIikiKSxjLnB1c2goImRwdHIiLCJzcHRyIiwiYSIsImIiKX1lbHNlIGMucHVzaCgic2NyYXRjaCIpO2lmKGEucHVzaChbImZ1bmN0aW9uICIscywiKCIsbC5qb2luKCIsIiksIil7dmFyICIsYy5qb2luKCIsIildLmpvaW4oIiIpLCJmb3IoaT1sZWZ0KzE7aTw9cmlnaHQ7KytpKXsiLCJqPWk7cHRyKz1zMCIsImNwdHI9cHRyIiksdC5sZW5ndGg+MSl7YS5wdXNoKCJkcHRyPTA7c3B0cj1wdHIiKTtmb3IodmFyIGY9dC5sZW5ndGgtMTtmPj0wOy0tZil7dmFyIHA9dFtmXTswIT09cCYmYS5wdXNoKFsiZm9yKGkiLHAsIj0wO2kiLHAsIjxuIixwLCI7KytpIixwLCIpeyJdLmpvaW4oIiIpKX1hLnB1c2goInNjcmF0Y2hbZHB0cisrXT0iLHIoInNwdHIiKSk7Zm9yKHZhciBmPTA7Zjx0Lmxlbmd0aDsrK2Ype3ZhciBwPXRbZl07MCE9PXAmJmEucHVzaCgic3B0cis9ZCIrcCwifSIpfWEucHVzaCgiX19nOndoaWxlKGotLT5sZWZ0KXsiLCJkcHRyPTAiLCJzcHRyPWNwdHItczAiKTtmb3IodmFyIGY9MTtmPHQubGVuZ3RoOysrZikxPT09ZiYmYS5wdXNoKCJfX2w6IiksYS5wdXNoKFsiZm9yKGkiLGYsIj0wO2kiLGYsIjxuIixmLCI7KytpIixmLCIpeyJdLmpvaW4oIiIpKTthLnB1c2goWyJhPSIscigic3B0ciIpLCJcbmI9c2NyYXRjaFtkcHRyXVxuaWYoYTxiKXticmVhayBfX2d9XG5pZihhPmIpe2JyZWFrIF9fbH0iXS5qb2luKCIiKSk7Zm9yKHZhciBmPXQubGVuZ3RoLTE7Zj49MTstLWYpYS5wdXNoKCJzcHRyKz1lIitmLCJkcHRyKz1mIitmLCJ9Iik7YS5wdXNoKCJkcHRyPWNwdHI7c3B0cj1jcHRyLXMwIik7Zm9yKHZhciBmPXQubGVuZ3RoLTE7Zj49MDstLWYpe3ZhciBwPXRbZl07MCE9PXAmJmEucHVzaChbImZvcihpIixwLCI9MDtpIixwLCI8biIscCwiOysraSIscCwiKXsiXS5qb2luKCIiKSl9YS5wdXNoKG8oImRwdHIiLHIoInNwdHIiKSkpO2Zvcih2YXIgZj0wO2Y8dC5sZW5ndGg7KytmKXt2YXIgcD10W2ZdOzAhPT1wJiZhLnB1c2goWyJkcHRyKz1kIixwLCI7c3B0cis9ZCIscF0uam9pbigiIiksIn0iKX1hLnB1c2goImNwdHItPXMwXG59IiksYS5wdXNoKCJkcHRyPWNwdHI7c3B0cj0wIik7Zm9yKHZhciBmPXQubGVuZ3RoLTE7Zj49MDstLWYpe3ZhciBwPXRbZl07MCE9PXAmJmEucHVzaChbImZvcihpIixwLCI9MDtpIixwLCI8biIscCwiOysraSIscCwiKXsiXS5qb2luKCIiKSl9YS5wdXNoKG8oImRwdHIiLCJzY3JhdGNoW3NwdHIrK10iKSk7Zm9yKHZhciBmPTA7Zjx0Lmxlbmd0aDsrK2Ype3ZhciBwPXRbZl07MCE9PXAmJmEucHVzaCgiZHB0cis9ZCIrcCwifSIpfX1lbHNlIGEucHVzaCgic2NyYXRjaD0iK3IoInB0ciIpLCJ3aGlsZSgoai0tPmxlZnQpJiYoIityKCJjcHRyLXMwIikrIj5zY3JhdGNoKSl7IixvKCJjcHRyIixyKCJjcHRyLXMwIikpLCJjcHRyLT1zMCIsIn0iLG8oImNwdHIiLCJzY3JhdGNoIikpO2lmKGEucHVzaCgifSIpLHQubGVuZ3RoPjEmJnUmJmEucHVzaCgiZnJlZShzY3JhdGNoKSIpLGEucHVzaCgifSByZXR1cm4gIitzKSx1KXt2YXIgZD1uZXcgRnVuY3Rpb24oIm1hbGxvYyIsImZyZWUiLGEuam9pbigiXG4iKSk7cmV0dXJuIGQodVswXSx1WzFdKX12YXIgZD1uZXcgRnVuY3Rpb24oYS5qb2luKCJcbiIpKTtyZXR1cm4gZCgpfWZ1bmN0aW9uIGEodCxlLHIpe2Z1bmN0aW9uIG8odCl7cmV0dXJuWyIob2Zmc2V0KyIsdCwiKnMwKSJdLmpvaW4oIiIpfWZ1bmN0aW9uIGEodCl7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuZ2V0KCIsdCwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl0iXS5qb2luKCIiKX1mdW5jdGlvbiBzKHQscil7cmV0dXJuImdlbmVyaWMiPT09ZT9bImRhdGEuc2V0KCIsdCwiLCIsciwiKSJdLmpvaW4oIiIpOlsiZGF0YVsiLHQsIl09IixyXS5qb2luKCIiKX1mdW5jdGlvbiBsKGUscixuKXtpZigxPT09ZS5sZW5ndGgpXy5wdXNoKCJwdHIwPSIrbyhlWzBdKSk7ZWxzZSBmb3IodmFyIGk9MDtpPGUubGVuZ3RoOysraSlfLnB1c2goWyJiX3B0ciIsaSwiPXMwKiIsZVtpXV0uam9pbigiIikpO3ImJl8ucHVzaCgicGl2b3RfcHRyPTAiKSxfLnB1c2goInB0cl9zaGlmdD1vZmZzZXQiKTtmb3IodmFyIGk9dC5sZW5ndGgtMTtpPj0wOy0taSl7dmFyIGE9dFtpXTswIT09YSYmXy5wdXNoKFsiZm9yKGkiLGEsIj0wO2kiLGEsIjxuIixhLCI7KytpIixhLCIpeyJdLmpvaW4oIiIpKX1pZihlLmxlbmd0aD4xKWZvcih2YXIgaT0wO2k8ZS5sZW5ndGg7KytpKV8ucHVzaChbInB0ciIsaSwiPWJfcHRyIixpLCIrcHRyX3NoaWZ0Il0uam9pbigiIikpO18ucHVzaChuKSxyJiZfLnB1c2goIisrcGl2b3RfcHRyIik7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDsrK2kpe3ZhciBhPXRbaV07MCE9PWEmJihlLmxlbmd0aD4xP18ucHVzaCgicHRyX3NoaWZ0Kz1kIithKTpfLnB1c2goInB0cjArPWQiK2EpLF8ucHVzaCgifSIpKX19ZnVuY3Rpb24gYyhlLHIsbixpKXtpZigxPT09ci5sZW5ndGgpXy5wdXNoKCJwdHIwPSIrbyhyWzBdKSk7ZWxzZXtmb3IodmFyIGE9MDthPHIubGVuZ3RoOysrYSlfLnB1c2goWyJiX3B0ciIsYSwiPXMwKiIsclthXV0uam9pbigiIikpO18ucHVzaCgicHRyX3NoaWZ0PW9mZnNldCIpfW4mJl8ucHVzaCgicGl2b3RfcHRyPTAiKSxlJiZfLnB1c2goZSsiOiIpO2Zvcih2YXIgYT0xO2E8dC5sZW5ndGg7KythKV8ucHVzaChbImZvcihpIixhLCI9MDtpIixhLCI8biIsYSwiOysraSIsYSwiKXsiXS5qb2luKCIiKSk7aWYoci5sZW5ndGg+MSlmb3IodmFyIGE9MDthPHIubGVuZ3RoOysrYSlfLnB1c2goWyJwdHIiLGEsIj1iX3B0ciIsYSwiK3B0cl9zaGlmdCJdLmpvaW4oIiIpKTtfLnB1c2goaSk7Zm9yKHZhciBhPXQubGVuZ3RoLTE7YT49MTstLWEpbiYmXy5wdXNoKCJwaXZvdF9wdHIrPWYiK2EpLHIubGVuZ3RoPjE/Xy5wdXNoKCJwdHJfc2hpZnQrPWUiK2EpOl8ucHVzaCgicHRyMCs9ZSIrYSksXy5wdXNoKCJ9Iil9ZnVuY3Rpb24gaCgpe3QubGVuZ3RoPjEmJmsmJl8ucHVzaCgiZnJlZShwaXZvdDEpIiwiZnJlZShwaXZvdDIpIil9ZnVuY3Rpb24gZihlLHIpe3ZhciBuPSJlbCIrZSxpPSJlbCIrcjtpZih0Lmxlbmd0aD4xKXt2YXIgcz0iX19sIisgKytBO2MocyxbbixpXSwhMSxbImNvbXA9IixhKCJwdHIwIiksIi0iLGEoInB0cjEiKSwiXG4iLCJpZihjb21wPjApe3RtcDA9IixuLCI7IixuLCI9IixpLCI7IixpLCI9dG1wMDticmVhayAiLHMsIn1cbiIsImlmKGNvbXA8MCl7YnJlYWsgIixzLCJ9Il0uam9pbigiIikpfWVsc2UgXy5wdXNoKFsiaWYoIixhKG8obikpLCI+IixhKG8oaSkpLCIpe3RtcDA9IixuLCI7IixuLCI9IixpLCI7IixpLCI9dG1wMH0iXS5qb2luKCIiKSl9ZnVuY3Rpb24gcChlLHIpe3QubGVuZ3RoPjE/bChbZSxyXSwhMSxzKCJwdHIwIixhKCJwdHIxIikpKTpfLnB1c2gocyhvKGUpLGEobyhyKSkpKX1mdW5jdGlvbiBkKGUscixuKXtpZih0Lmxlbmd0aD4xKXt2YXIgaT0iX19sIisgKytBO2MoaSxbcl0sITAsW2UsIj0iLGEoInB0cjAiKSwiLXBpdm90IixuLCJbcGl2b3RfcHRyXVxuIiwiaWYoIixlLCIhPT0wKXticmVhayAiLGksIn0iXS5qb2luKCIiKSl9ZWxzZSBfLnB1c2goW2UsIj0iLGEobyhyKSksIi1waXZvdCIsbl0uam9pbigiIikpfWZ1bmN0aW9uIG0oZSxyKXt0Lmxlbmd0aD4xP2woW2Uscl0sITEsWyJ0bXA9IixhKCJwdHIwIiksIlxuIixzKCJwdHIwIixhKCJwdHIxIikpLCJcbiIscygicHRyMSIsInRtcCIpXS5qb2luKCIiKSk6Xy5wdXNoKFsicHRyMD0iLG8oZSksIlxuIiwicHRyMT0iLG8ociksIlxuIiwidG1wPSIsYSgicHRyMCIpLCJcbiIscygicHRyMCIsYSgicHRyMSIpKSwiXG4iLHMoInB0cjEiLCJ0bXAiKV0uam9pbigiIikpfWZ1bmN0aW9uIGcoZSxyLG4pe3QubGVuZ3RoPjE/KGwoW2UscixuXSwhMSxbInRtcD0iLGEoInB0cjAiKSwiXG4iLHMoInB0cjAiLGEoInB0cjEiKSksIlxuIixzKCJwdHIxIixhKCJwdHIyIikpLCJcbiIscygicHRyMiIsInRtcCIpXS5qb2luKCIiKSksXy5wdXNoKCIrKyIrciwiLS0iK24pKTpfLnB1c2goWyJwdHIwPSIsbyhlKSwiXG4iLCJwdHIxPSIsbyhyKSwiXG4iLCJwdHIyPSIsbyhuKSwiXG4iLCIrKyIsciwiXG4iLCItLSIsbiwiXG4iLCJ0bXA9IixhKCJwdHIwIiksIlxuIixzKCJwdHIwIixhKCJwdHIxIikpLCJcbiIscygicHRyMSIsYSgicHRyMiIpKSwiXG4iLHMoInB0cjIiLCJ0bXAiKV0uam9pbigiIikpfWZ1bmN0aW9uIHYodCxlKXttKHQsZSksXy5wdXNoKCItLSIrZSl9ZnVuY3Rpb24geShlLHIsbil7dC5sZW5ndGg+MT9sKFtlLHJdLCEwLFtzKCJwdHIwIixhKCJwdHIxIikpLCJcbiIscygicHRyMSIsWyJwaXZvdCIsbiwiW3Bpdm90X3B0cl0iXS5qb2luKCIiKSldLmpvaW4oIiIpKTpfLnB1c2gocyhvKGUpLGEobyhyKSkpLHMobyhyKSwicGl2b3QiK24pKX1mdW5jdGlvbiBiKGUscil7Xy5wdXNoKFsiaWYoKCIsciwiLSIsZSwiKTw9Iix1LCIpe1xuIiwiaW5zZXJ0aW9uU29ydCgiLGUsIiwiLHIsIixkYXRhLG9mZnNldCwiLGkodC5sZW5ndGgpLmpvaW4oIiwiKSwiKVxuIiwifWVsc2V7XG4iLHcsIigiLGUsIiwiLHIsIixkYXRhLG9mZnNldCwiLGkodC5sZW5ndGgpLmpvaW4oIiwiKSwiKVxuIiwifSJdLmpvaW4oIiIpKX1mdW5jdGlvbiB4KGUscixuKXt0Lmxlbmd0aD4xPyhfLnB1c2goWyJfX2wiLCsrQSwiOndoaWxlKHRydWUpeyJdLmpvaW4oIiIpKSxsKFtlXSwhMCxbImlmKCIsYSgicHRyMCIpLCIhPT1waXZvdCIsciwiW3Bpdm90X3B0cl0pe2JyZWFrIF9fbCIsQSwifSJdLmpvaW4oIiIpKSxfLnB1c2gobiwifSIpKTpfLnB1c2goWyJ3aGlsZSgiLGEobyhlKSksIj09PXBpdm90IixyLCIpeyIsbiwifSJdLmpvaW4oIiIpKX12YXIgXz1bIid1c2Ugc3RyaWN0JyJdLHc9WyJuZGFycmF5UXVpY2tTb3J0Iix0LmpvaW4oImQiKSxlXS5qb2luKCIiKSxNPVsibGVmdCIsInJpZ2h0IiwiZGF0YSIsIm9mZnNldCJdLmNvbmNhdChpKHQubGVuZ3RoKSksaz1uKGUpLEE9MDtfLnB1c2goWyJmdW5jdGlvbiAiLHcsIigiLE0uam9pbigiLCIpLCIpeyJdLmpvaW4oIiIpKTt2YXIgVD1bInNpeHRoPSgocmlnaHQtbGVmdCsxKS82KXwwIiwiaW5kZXgxPWxlZnQrc2l4dGgiLCJpbmRleDU9cmlnaHQtc2l4dGgiLCJpbmRleDM9KGxlZnQrcmlnaHQpPj4xIiwiaW5kZXgyPWluZGV4My1zaXh0aCIsImluZGV4ND1pbmRleDMrc2l4dGgiLCJlbDE9aW5kZXgxIiwiZWwyPWluZGV4MiIsImVsMz1pbmRleDMiLCJlbDQ9aW5kZXg0IiwiZWw1PWluZGV4NSIsImxlc3M9bGVmdCsxIiwiZ3JlYXQ9cmlnaHQtMSIsInBpdm90c19hcmVfZXF1YWw9dHJ1ZSIsInRtcCIsInRtcDAiLCJ4IiwieSIsInoiLCJrIiwicHRyMCIsInB0cjEiLCJwdHIyIiwiY29tcF9waXZvdDE9MCIsImNvbXBfcGl2b3QyPTAiLCJjb21wPTAiXTtpZih0Lmxlbmd0aD4xKXtmb3IodmFyIEU9W10sUz0xO1M8dC5sZW5ndGg7KytTKUUucHVzaCgibiIrUyksVC5wdXNoKCJpIitTKTtmb3IodmFyIFM9MDs4PlM7KytTKVQucHVzaCgiYl9wdHIiK1MpO1QucHVzaCgicHRyMyIsInB0cjQiLCJwdHI1IiwicHRyNiIsInB0cjciLCJwaXZvdF9wdHIiLCJwdHJfc2hpZnQiLCJlbGVtZW50U2l6ZT0iK0Uuam9pbigiKiIpKSxrP1QucHVzaCgicGl2b3QxPW1hbGxvYyhlbGVtZW50U2l6ZSkiLCJwaXZvdDI9bWFsbG9jKGVsZW1lbnRTaXplKSIpOlQucHVzaCgicGl2b3QxPW5ldyBBcnJheShlbGVtZW50U2l6ZSkscGl2b3QyPW5ldyBBcnJheShlbGVtZW50U2l6ZSkiKX1lbHNlIFQucHVzaCgicGl2b3QxIiwicGl2b3QyIik7aWYoXy5wdXNoKCJ2YXIgIitULmpvaW4oIiwiKSksZigxLDIpLGYoNCw1KSxmKDEsMyksZigyLDMpLGYoMSw0KSxmKDMsNCksZigyLDUpLGYoMiwzKSxmKDQsNSksdC5sZW5ndGg+MT9sKFsiZWwxIiwiZWwyIiwiZWwzIiwiZWw0IiwiZWw1IiwiaW5kZXgxIiwiaW5kZXgzIiwiaW5kZXg1Il0sITAsWyJwaXZvdDFbcGl2b3RfcHRyXT0iLGEoInB0cjEiKSwiXG4iLCJwaXZvdDJbcGl2b3RfcHRyXT0iLGEoInB0cjMiKSwiXG4iLCJwaXZvdHNfYXJlX2VxdWFsPXBpdm90c19hcmVfZXF1YWwmJihwaXZvdDFbcGl2b3RfcHRyXT09PXBpdm90MltwaXZvdF9wdHJdKVxuIiwieD0iLGEoInB0cjAiKSwiXG4iLCJ5PSIsYSgicHRyMiIpLCJcbiIsIno9IixhKCJwdHI0IiksIlxuIixzKCJwdHI1IiwieCIpLCJcbiIscygicHRyNiIsInkiKSwiXG4iLHMoInB0cjciLCJ6IildLmpvaW4oIiIpKTpfLnB1c2goWyJwaXZvdDE9IixhKG8oImVsMiIpKSwiXG4iLCJwaXZvdDI9IixhKG8oImVsNCIpKSwiXG4iLCJwaXZvdHNfYXJlX2VxdWFsPXBpdm90MT09PXBpdm90MlxuIiwieD0iLGEobygiZWwxIikpLCJcbiIsInk9IixhKG8oImVsMyIpKSwiXG4iLCJ6PSIsYShvKCJlbDUiKSksIlxuIixzKG8oImluZGV4MSIpLCJ4IiksIlxuIixzKG8oImluZGV4MyIpLCJ5IiksIlxuIixzKG8oImluZGV4NSIpLCJ6IildLmpvaW4oIiIpKSxwKCJpbmRleDIiLCJsZWZ0IikscCgiaW5kZXg0IiwicmlnaHQiKSxfLnB1c2goImlmKHBpdm90c19hcmVfZXF1YWwpeyIpLF8ucHVzaCgiZm9yKGs9bGVzcztrPD1ncmVhdDsrK2speyIpLGQoImNvbXAiLCJrIiwxKSxfLnB1c2goImlmKGNvbXA9PT0wKXtjb250aW51ZX0iKSxfLnB1c2goImlmKGNvbXA8MCl7IiksXy5wdXNoKCJpZihrIT09bGVzcyl7IiksbSgiayIsImxlc3MiKSxfLnB1c2goIn0iKSxfLnB1c2goIisrbGVzcyIpLF8ucHVzaCgifWVsc2V7IiksXy5wdXNoKCJ3aGlsZSh0cnVlKXsiKSxkKCJjb21wIiwiZ3JlYXQiLDEpLF8ucHVzaCgiaWYoY29tcD4wKXsiKSxfLnB1c2goImdyZWF0LS0iKSxfLnB1c2goIn1lbHNlIGlmKGNvbXA8MCl7IiksZygiayIsImxlc3MiLCJncmVhdCIpLF8ucHVzaCgiYnJlYWsiKSxfLnB1c2goIn1lbHNleyIpLHYoImsiLCJncmVhdCIpLF8ucHVzaCgiYnJlYWsiKSxfLnB1c2goIn0iKSxfLnB1c2goIn0iKSxfLnB1c2goIn0iKSxfLnB1c2goIn0iKSxfLnB1c2goIn1lbHNleyIpLF8ucHVzaCgiZm9yKGs9bGVzcztrPD1ncmVhdDsrK2speyIpLGQoImNvbXBfcGl2b3QxIiwiayIsMSksXy5wdXNoKCJpZihjb21wX3Bpdm90MTwwKXsiKSxfLnB1c2goImlmKGshPT1sZXNzKXsiKSxtKCJrIiwibGVzcyIpLF8ucHVzaCgifSIpLF8ucHVzaCgiKytsZXNzIiksXy5wdXNoKCJ9ZWxzZXsiKSxkKCJjb21wX3Bpdm90MiIsImsiLDIpLF8ucHVzaCgiaWYoY29tcF9waXZvdDI+MCl7IiksXy5wdXNoKCJ3aGlsZSh0cnVlKXsiKSxkKCJjb21wIiwiZ3JlYXQiLDIpLF8ucHVzaCgiaWYoY29tcD4wKXsiKSxfLnB1c2goImlmKC0tZ3JlYXQ8ayl7YnJlYWt9IiksXy5wdXNoKCJjb250aW51ZSIpLF8ucHVzaCgifWVsc2V7IiksZCgiY29tcCIsImdyZWF0IiwxKSxfLnB1c2goImlmKGNvbXA8MCl7IiksZygiayIsImxlc3MiLCJncmVhdCIpLF8ucHVzaCgifWVsc2V7IiksdigiayIsImdyZWF0IiksXy5wdXNoKCJ9IiksXy5wdXNoKCJicmVhayIpLF8ucHVzaCgifSIpLF8ucHVzaCgifSIpLF8ucHVzaCgifSIpLF8ucHVzaCgifSIpLF8ucHVzaCgifSIpLF8ucHVzaCgifSIpLHkoImxlZnQiLCIobGVzcy0xKSIsMSkseSgicmlnaHQiLCIoZ3JlYXQrMSkiLDIpLGIoImxlZnQiLCIobGVzcy0yKSIpLGIoIihncmVhdCsyKSIsInJpZ2h0IiksXy5wdXNoKCJpZihwaXZvdHNfYXJlX2VxdWFsKXsiKSxoKCksXy5wdXNoKCJyZXR1cm4iKSxfLnB1c2goIn0iKSxfLnB1c2goImlmKGxlc3M8aW5kZXgxJiZncmVhdD5pbmRleDUpeyIpLHgoImxlc3MiLDEsIisrbGVzcyIpLHgoImdyZWF0IiwyLCItLWdyZWF0IiksXy5wdXNoKCJmb3Ioaz1sZXNzO2s8PWdyZWF0Oysrayl7IiksZCgiY29tcF9waXZvdDEiLCJrIiwxKSxfLnB1c2goImlmKGNvbXBfcGl2b3QxPT09MCl7IiksXy5wdXNoKCJpZihrIT09bGVzcyl7IiksbSgiayIsImxlc3MiKSxfLnB1c2goIn0iKSxfLnB1c2goIisrbGVzcyIpLF8ucHVzaCgifWVsc2V7IiksZCgiY29tcF9waXZvdDIiLCJrIiwyKSxfLnB1c2goImlmKGNvbXBfcGl2b3QyPT09MCl7IiksXy5wdXNoKCJ3aGlsZSh0cnVlKXsiKSxkKCJjb21wIiwiZ3JlYXQiLDIpLF8ucHVzaCgiaWYoY29tcD09PTApeyIpLF8ucHVzaCgiaWYoLS1ncmVhdDxrKXticmVha30iKSxfLnB1c2goImNvbnRpbnVlIiksXy5wdXNoKCJ9ZWxzZXsiKSxkKCJjb21wIiwiZ3JlYXQiLDEpLF8ucHVzaCgiaWYoY29tcDwwKXsiKSxnKCJrIiwibGVzcyIsImdyZWF0IiksXy5wdXNoKCJ9ZWxzZXsiKSx2KCJrIiwiZ3JlYXQiKSxfLnB1c2goIn0iKSxfLnB1c2goImJyZWFrIiksXy5wdXNoKCJ9IiksXy5wdXNoKCJ9IiksXy5wdXNoKCJ9IiksXy5wdXNoKCJ9IiksXy5wdXNoKCJ9IiksXy5wdXNoKCJ9IiksaCgpLGIoImxlc3MiLCJncmVhdCIpLF8ucHVzaCgifXJldHVybiAiK3cpLHQubGVuZ3RoPjEmJmspe3ZhciBMPW5ldyBGdW5jdGlvbigiaW5zZXJ0aW9uU29ydCIsIm1hbGxvYyIsImZyZWUiLF8uam9pbigiXG4iKSk7cmV0dXJuIEwocixrWzBdLGtbMV0pfXZhciBMPW5ldyBGdW5jdGlvbigiaW5zZXJ0aW9uU29ydCIsXy5qb2luKCJcbiIpKTtyZXR1cm4gTChyKX1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9WyIndXNlIHN0cmljdCciXSxuPVsibmRhcnJheVNvcnRXcmFwcGVyIix0LmpvaW4oImQiKSxlXS5qb2luKCIiKSxzPVsiYXJyYXkiXTtyLnB1c2goWyJmdW5jdGlvbiAiLG4sIigiLHMuam9pbigiLCIpLCIpeyJdLmpvaW4oIiIpKTtmb3IodmFyIGw9WyJkYXRhPWFycmF5LmRhdGEsb2Zmc2V0PWFycmF5Lm9mZnNldHwwLHNoYXBlPWFycmF5LnNoYXBlLHN0cmlkZT1hcnJheS5zdHJpZGUiXSxjPTA7Yzx0Lmxlbmd0aDsrK2MpbC5wdXNoKFsicyIsYywiPXN0cmlkZVsiLGMsIl18MCxuIixjLCI9c2hhcGVbIixjLCJdfDAiXS5qb2luKCIiKSk7Zm9yKHZhciBoPW5ldyBBcnJheSh0Lmxlbmd0aCksZj1bXSxjPTA7Yzx0Lmxlbmd0aDsrK2Mpe3ZhciBwPXRbY107MCE9PXAmJigwPT09Zi5sZW5ndGg/aFtwXT0iMSI6aFtwXT1mLmpvaW4oIioiKSxmLnB1c2goIm4iK3ApKX1mb3IodmFyIGQ9LTEsbT0tMSxjPTA7Yzx0Lmxlbmd0aDsrK2Mpe3ZhciBnPXRbY107MCE9PWcmJihkPjA/bC5wdXNoKFsiZCIsZywiPXMiLGcsIi1kIixkLCIqbiIsZF0uam9pbigiIikpOmwucHVzaChbImQiLGcsIj1zIixnXS5qb2luKCIiKSksZD1nKTt2YXIgcD10Lmxlbmd0aC0xLWM7MCE9PXAmJihtPjA/bC5wdXNoKFsiZSIscCwiPXMiLHAsIi1lIixtLCIqbiIsbSwiLGYiLHAsIj0iLGhbcF0sIi1mIixtLCIqbiIsbV0uam9pbigiIikpOmwucHVzaChbImUiLHAsIj1zIixwLCIsZiIscCwiPSIsaFtwXV0uam9pbigiIikpLG09cCl9ci5wdXNoKCJ2YXIgIitsLmpvaW4oIiwiKSk7dmFyIHY9WyIwIiwibjAtMSIsImRhdGEiLCJvZmZzZXQiXS5jb25jYXQoaSh0Lmxlbmd0aCkpO3IucHVzaChbImlmKG4wPD0iLHUsIil7IiwiaW5zZXJ0aW9uU29ydCgiLHYuam9pbigiLCIpLCIpfWVsc2V7IiwicXVpY2tTb3J0KCIsdi5qb2luKCIsIiksIil9Il0uam9pbigiIikpLHIucHVzaCgifXJldHVybiAiK24pO3ZhciB5PW5ldyBGdW5jdGlvbigiaW5zZXJ0aW9uU29ydCIsInF1aWNrU29ydCIsci5qb2luKCJcbiIpKSxiPW8odCxlKSx4PWEodCxlLGIpO3JldHVybiB5KGIseCl9dmFyIGw9dCgidHlwZWRhcnJheS1wb29sIiksdT0zMjtlLmV4cG9ydHM9c30seyJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDE2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQub3JkZXIscj10LmR0eXBlLG49W2Uscl0sYT1uLmpvaW4oIjoiKSxzPW9bYV07cmV0dXJuIHN8fChvW2FdPXM9aShlLHIpKSxzKHQpLHR9dmFyIGk9dCgiLi9saWIvY29tcGlsZV9zb3J0LmpzIiksbz17fTtlLmV4cG9ydHM9bn0seyIuL2xpYi9jb21waWxlX3NvcnQuanMiOjE2OH1dLDE3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLnZibz1lLHRoaXMuc2hhZGVyPXJ9ZnVuY3Rpb24gaSh0KXt2YXIgZT10LmdsLHI9byhlLFswLDAsMCwxLDEsMCwxLDFdKSxpPWEoZSxzLmJveFZlcnQscy5saW5lRnJhZyk7cmV0dXJuIG5ldyBuKHQscixpKX1lLmV4cG9ydHM9aTt2YXIgbz10KCJnbC1idWZmZXIiKSxhPXQoImdsLXNoYWRlciIpLHM9dCgiLi9zaGFkZXJzIiksbD1uLnByb3RvdHlwZTtsLmJpbmQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnNoYWRlcjt0aGlzLnZiby5iaW5kKCksdGhpcy5zaGFkZXIuYmluZCgpLHQuYXR0cmlidXRlcy5jb29yZC5wb2ludGVyKCksdC51bmlmb3Jtcy5zY3JlZW5Cb3g9dGhpcy5wbG90LnNjcmVlbkJveH0sbC5kcmF3Qm94PWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF0sZT1bMCwwXTtyZXR1cm4gZnVuY3Rpb24ocixuLGksbyxhKXt2YXIgcz10aGlzLnBsb3QsbD10aGlzLnNoYWRlcix1PXMuZ2w7dFswXT1yLHRbMV09bixlWzBdPWksZVsxXT1vLGwudW5pZm9ybXMubG89dCxsLnVuaWZvcm1zLmhpPWUsbC51bmlmb3Jtcy5jb2xvcj1hLHUuZHJhd0FycmF5cyh1LlRSSUFOR0xFX1NUUklQLDAsNCl9fSgpLGwuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MTczLCJnbC1idWZmZXIiOjEyOSwiZ2wtc2hhZGVyIjoyMDh9XSwxNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLnBsb3Q9dCx0aGlzLnZibz1lLHRoaXMuc2hhZGVyPXIsdGhpcy50aWNrU2hhZGVyPW4sdGhpcy50aWNrcz1bW10sW11dfWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC1lfWZ1bmN0aW9uIG8odCl7dmFyIGU9dC5nbCxyPWEoZSksaT1zKGUsdS5ncmlkVmVydCx1LmdyaWRGcmFnKSxvPXMoZSx1LnRpY2tWZXJ0LHUuZ3JpZEZyYWcpLGw9bmV3IG4odCxyLGksbyk7cmV0dXJuIGx9ZS5leHBvcnRzPW87dmFyIGE9dCgiZ2wtYnVmZmVyIikscz10KCJnbC1zaGFkZXIiKSxsPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksdT10KCIuL3NoYWRlcnMiKSxjPW4ucHJvdG90eXBlO2MuZHJhdz1mdW5jdGlvbigpe3ZhciB0PVswLDBdLGU9WzAsMF0scj1bMCwwXTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49dGhpcy5wbG90LGk9dGhpcy52Ym8sbz10aGlzLnNoYWRlcixhPXRoaXMudGlja3Mscz1uLmdsLGw9bi5fdGlja0JvdW5kcyx1PW4uZGF0YUJveCxjPW4udmlld0JveCxoPW4uZ3JpZExpbmVXaWR0aCxmPW4uZ3JpZExpbmVDb2xvcixwPW4uZ3JpZExpbmVFbmFibGUsZD1uLnBpeGVsUmF0aW8sbT0wOzI+bTsrK20pe3ZhciBnPWxbbV0sdj1sW20rMl0seT12LWcsYj0uNSoodVttKzJdK3VbbV0pLHg9dVttKzJdLXVbbV07ZVttXT0yKnkveCx0W21dPTIqKGctYikveH1vLmJpbmQoKSxpLmJpbmQoKSxvLmF0dHJpYnV0ZXMuZGF0YUNvb3JkLnBvaW50ZXIoKSxvLnVuaWZvcm1zLmRhdGFTaGlmdD10LG8udW5pZm9ybXMuZGF0YVNjYWxlPWU7Zm9yKHZhciBfPTAsbT0wOzI+bTsrK20pe3JbMF09clsxXT0wLHJbbV09MSxvLnVuaWZvcm1zLmRhdGFBeGlzPXIsby51bmlmb3Jtcy5saW5lV2lkdGg9aFttXS8oY1ttKzJdLWNbbV0pKmQsby51bmlmb3Jtcy5jb2xvcj1mW21dO3ZhciB3PTYqYVttXS5sZW5ndGg7cFttXSYmdyYmcy5kcmF3QXJyYXlzKHMuVFJJQU5HTEVTLF8sdyksXys9d319fSgpLGMuZHJhd1RpY2tNYXJrcz1mdW5jdGlvbigpe3ZhciB0PVswLDBdLGU9WzAsMF0scj1bMSwwXSxuPVswLDFdLG89WzAsMF0sYT1bMCwwXTtyZXR1cm4gZnVuY3Rpb24oKXsKZm9yKHZhciBzPXRoaXMucGxvdCx1PXRoaXMudmJvLGM9dGhpcy50aWNrU2hhZGVyLGg9dGhpcy50aWNrcyxmPXMuZ2wscD1zLl90aWNrQm91bmRzLGQ9cy5kYXRhQm94LG09cy52aWV3Qm94LGc9cy5waXhlbFJhdGlvLHY9cy5zY3JlZW5Cb3gseT12WzJdLXZbMF0sYj12WzNdLXZbMV0seD1tWzJdLW1bMF0sXz1tWzNdLW1bMV0sdz0wOzI+dzsrK3cpe3ZhciBNPXBbd10saz1wW3crMl0sQT1rLU0sVD0uNSooZFt3KzJdK2Rbd10pLEU9ZFt3KzJdLWRbd107ZVt3XT0yKkEvRSx0W3ddPTIqKE0tVCkvRX1lWzBdKj14L3ksdFswXSo9eC95LGVbMV0qPV8vYix0WzFdKj1fL2IsYy5iaW5kKCksdS5iaW5kKCksYy5hdHRyaWJ1dGVzLmRhdGFDb29yZC5wb2ludGVyKCk7dmFyIFM9Yy51bmlmb3JtcztTLmRhdGFTaGlmdD10LFMuZGF0YVNjYWxlPWU7dmFyIEw9cy50aWNrTWFya0xlbmd0aCx6PXMudGlja01hcmtXaWR0aCxJPXMudGlja01hcmtDb2xvcixQPTAsQz02KmhbMF0ubGVuZ3RoLFI9TWF0aC5taW4obC5nZShoWzBdLChkWzBdLXBbMF0pLyhwWzJdLXBbMF0pLGkpLGhbMF0ubGVuZ3RoKSxqPU1hdGgubWluKGwuZ3QoaFswXSwoZFsyXS1wWzBdKS8ocFsyXS1wWzBdKSxpKSxoWzBdLmxlbmd0aCksRD1QKzYqUixPPTYqTWF0aC5tYXgoMCxqLVIpLEY9TWF0aC5taW4obC5nZShoWzFdLChkWzFdLXBbMV0pLyhwWzNdLXBbMV0pLGkpLGhbMV0ubGVuZ3RoKSxOPU1hdGgubWluKGwuZ3QoaFsxXSwoZFszXS1wWzFdKS8ocFszXS1wWzFdKSxpKSxoWzFdLmxlbmd0aCksQj1DKzYqRixVPTYqTWF0aC5tYXgoMCxOLUYpO29bMF09MioobVswXS1MWzFdKS95LTEsb1sxXT0obVszXSttWzFdKS9iLTEsYVswXT1MWzFdKmcveSxhWzFdPXpbMV0qZy9iLFUmJihTLmNvbG9yPUlbMV0sUy50aWNrU2NhbGU9YSxTLmRhdGFBeGlzPW4sUy5zY3JlZW5PZmZzZXQ9byxmLmRyYXdBcnJheXMoZi5UUklBTkdMRVMsQixVKSksb1swXT0obVsyXSttWzBdKS95LTEsb1sxXT0yKihtWzFdLUxbMF0pL2ItMSxhWzBdPXpbMF0qZy95LGFbMV09TFswXSpnL2IsTyYmKFMuY29sb3I9SVswXSxTLnRpY2tTY2FsZT1hLFMuZGF0YUF4aXM9cixTLnNjcmVlbk9mZnNldD1vLGYuZHJhd0FycmF5cyhmLlRSSUFOR0xFUyxELE8pKSxvWzBdPTIqKG1bMl0rTFszXSkveS0xLG9bMV09KG1bM10rbVsxXSkvYi0xLGFbMF09TFszXSpnL3ksYVsxXT16WzNdKmcvYixVJiYoUy5jb2xvcj1JWzNdLFMudGlja1NjYWxlPWEsUy5kYXRhQXhpcz1uLFMuc2NyZWVuT2Zmc2V0PW8sZi5kcmF3QXJyYXlzKGYuVFJJQU5HTEVTLEIsVSkpLG9bMF09KG1bMl0rbVswXSkveS0xLG9bMV09MioobVszXStMWzJdKS9iLTEsYVswXT16WzJdKmcveSxhWzFdPUxbMl0qZy9iLE8mJihTLmNvbG9yPUlbMl0sUy50aWNrU2NhbGU9YSxTLmRhdGFBeGlzPXIsUy5zY3JlZW5PZmZzZXQ9byxmLmRyYXdBcnJheXMoZi5UUklBTkdMRVMsRCxPKSl9fSgpLGMudXBkYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9WzEsMSwtMSwtMSwxLC0xXSxlPVsxLC0xLDEsMSwtMSwtMV07cmV0dXJuIGZ1bmN0aW9uKHIpe2Zvcih2YXIgbj1yLnRpY2tzLGk9ci5ib3VuZHMsbz1uZXcgRmxvYXQzMkFycmF5KDE4KihuWzBdLmxlbmd0aCtuWzFdLmxlbmd0aCkpLGE9KHRoaXMucGxvdC56ZXJvTGluZUVuYWJsZSwwKSxzPVtbXSxbXV0sbD0wOzI+bDsrK2wpZm9yKHZhciB1PXNbbF0sYz1uW2xdLGg9aVtsXSxmPWlbbCsyXSxwPTA7cDxjLmxlbmd0aDsrK3Ape3ZhciBkPShjW3BdLngtaCkvKGYtaCk7dS5wdXNoKGQpO2Zvcih2YXIgbT0wOzY+bTsrK20pb1thKytdPWQsb1thKytdPXRbbV0sb1thKytdPWVbbV19dGhpcy50aWNrcz1zLHRoaXMudmJvLnVwZGF0ZShvKX19KCksYy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52Ym8uZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnRpY2tTaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjE3MywiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjE3NSwiZ2wtYnVmZmVyIjoxMjksImdsLXNoYWRlciI6MjA4fV0sMTcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cn1mdW5jdGlvbiBpKHQpe3ZhciBlPXQuZ2wscj1vKGUsWy0xLC0xLC0xLDEsMSwtMSwxLDFdKSxpPWEoZSxzLmxpbmVWZXJ0LHMubGluZUZyYWcpLGw9bmV3IG4odCxyLGkpO3JldHVybiBsfWUuZXhwb3J0cz1pO3ZhciBvPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtc2hhZGVyIikscz10KCIuL3NoYWRlcnMiKSxsPW4ucHJvdG90eXBlO2wuYmluZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc2hhZGVyO3RoaXMudmJvLmJpbmQoKSx0aGlzLnNoYWRlci5iaW5kKCksdC5hdHRyaWJ1dGVzLmNvb3JkLnBvaW50ZXIoKSx0LnVuaWZvcm1zLnNjcmVlbkJveD10aGlzLnBsb3Quc2NyZWVuQm94fSxsLmRyYXdMaW5lPWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF0sZT1bMCwwXTtyZXR1cm4gZnVuY3Rpb24ocixuLGksbyxhLHMpe3ZhciBsPXRoaXMucGxvdCx1PXRoaXMuc2hhZGVyLGM9bC5nbDt0WzBdPXIsdFsxXT1uLGVbMF09aSxlWzFdPW8sdS51bmlmb3Jtcy5zdGFydD10LHUudW5pZm9ybXMuZW5kPWUsdS51bmlmb3Jtcy53aWR0aD1hKmwucGl4ZWxSYXRpbyx1LnVuaWZvcm1zLmNvbG9yPXMsYy5kcmF3QXJyYXlzKGMuVFJJQU5HTEVfU1RSSVAsMCw0KX19KCksbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52Ym8uZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjoxNzMsImdsLWJ1ZmZlciI6MTI5LCJnbC1zaGFkZXIiOjIwOH1dLDE3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj0icHJlY2lzaW9uIGxvd3AgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLnh5eiAqIGNvbG9yLncsIGNvbG9yLncpO1xufVxuIjtlLmV4cG9ydHM9e2xpbmVWZXJ0OiJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIGNvb3JkO1xuXG51bmlmb3JtIHZlYzQgc2NyZWVuQm94O1xudW5pZm9ybSB2ZWMyIHN0YXJ0LCBlbmQ7XG51bmlmb3JtIGZsb2F0IHdpZHRoO1xuXG52ZWMyIHBlcnAodmVjMiB2KSB7XG4gIHJldHVybiB2ZWMyKHYueSwgLXYueCk7XG59XG5cbnZlYzIgc2NyZWVuKHZlYzIgdikge1xuICByZXR1cm4gMi4wICogKHYgLSBzY3JlZW5Cb3gueHkpIC8gKHNjcmVlbkJveC56dyAtIHNjcmVlbkJveC54eSkgLSAxLjA7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBkZWx0YSA9IG5vcm1hbGl6ZShwZXJwKHN0YXJ0IC0gZW5kKSk7XG4gIHZlYzIgb2Zmc2V0ID0gbWl4KHN0YXJ0LCBlbmQsIDAuNSAqIChjb29yZC55KzEuMCkpO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQoc2NyZWVuKG9mZnNldCArIDAuNSAqIHdpZHRoICogZGVsdGEgKiBjb29yZC54KSwgMCwgMSk7XG59XG4iLGxpbmVGcmFnOm4sdGV4dFZlcnQ6IiNkZWZpbmUgR0xTTElGWSAxXG5hdHRyaWJ1dGUgdmVjMyB0ZXh0Q29vcmRpbmF0ZTtcblxudW5pZm9ybSB2ZWMyIGRhdGFTY2FsZSwgZGF0YVNoaWZ0LCBkYXRhQXhpcywgc2NyZWVuT2Zmc2V0LCB0ZXh0U2NhbGU7XG51bmlmb3JtIGZsb2F0IGFuZ2xlO1xuXG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IGRhdGFPZmZzZXQgID0gdGV4dENvb3JkaW5hdGUuejtcbiAgdmVjMiBnbHlwaE9mZnNldCAgPSB0ZXh0Q29vcmRpbmF0ZS54eTtcbiAgbWF0MiBnbHlwaE1hdHJpeCA9IG1hdDIoY29zKGFuZ2xlKSwgc2luKGFuZ2xlKSwgLXNpbihhbmdsZSksIGNvcyhhbmdsZSkpO1xuICB2ZWMyIHNjcmVlbkNvb3JkaW5hdGUgPSBkYXRhQXhpcyAqIChkYXRhU2NhbGUgKiBkYXRhT2Zmc2V0ICsgZGF0YVNoaWZ0KSArXG4gICAgZ2x5cGhNYXRyaXggKiBnbHlwaE9mZnNldCAqIHRleHRTY2FsZSArIHNjcmVlbk9mZnNldDtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHNjcmVlbkNvb3JkaW5hdGUsIDAsIDEpO1xufVxuIix0ZXh0RnJhZzpuLGdyaWRWZXJ0OiJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIGRhdGFDb29yZDtcblxudW5pZm9ybSB2ZWMyIGRhdGFBeGlzLCBkYXRhU2hpZnQsIGRhdGFTY2FsZTtcbnVuaWZvcm0gZmxvYXQgbGluZVdpZHRoO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzIgcG9zID0gZGF0YUF4aXMgKiAoZGF0YVNjYWxlICogZGF0YUNvb3JkLnggKyBkYXRhU2hpZnQpO1xuICBwb3MgKz0gMTAuMCAqIGRhdGFDb29yZC55ICogdmVjMihkYXRhQXhpcy55LCAtZGF0YUF4aXMueCkgKyBkYXRhQ29vcmQueiAqIGxpbmVXaWR0aDtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcywgMCwgMSk7XG59XG4iLGdyaWRGcmFnOm4sYm94VmVydDoicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBjb29yZDtcblxudW5pZm9ybSB2ZWM0IHNjcmVlbkJveDtcbnVuaWZvcm0gdmVjMiBsbywgaGk7XG5cbnZlYzIgc2NyZWVuKHZlYzIgdikge1xuICByZXR1cm4gMi4wICogKHYgLSBzY3JlZW5Cb3gueHkpIC8gKHNjcmVlbkJveC56dyAtIHNjcmVlbkJveC54eSkgLSAxLjA7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHNjcmVlbihtaXgobG8sIGhpLCBjb29yZCkpLCAwLCAxKTtcbn1cbiIsdGlja1ZlcnQ6InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgZGF0YUNvb3JkO1xuXG51bmlmb3JtIHZlYzIgZGF0YUF4aXMsIGRhdGFTaGlmdCwgZGF0YVNjYWxlLCBzY3JlZW5PZmZzZXQsIHRpY2tTY2FsZTtcblxudm9pZCBtYWluKCkge1xuICB2ZWMyIHBvcyA9IGRhdGFBeGlzICogKGRhdGFTY2FsZSAqIGRhdGFDb29yZC54ICsgZGF0YVNoaWZ0KTtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcyArIHRpY2tTY2FsZSpkYXRhQ29vcmQueXogKyBzY3JlZW5PZmZzZXQsIDAsIDEpO1xufVxuIn19LHt9XSwxNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dGhpcy5wbG90PXQsdGhpcy52Ym89ZSx0aGlzLnNoYWRlcj1yLHRoaXMudGlja09mZnNldD1bW10sW11dLHRoaXMudGlja1g9W1tdLFtdXSx0aGlzLmxhYmVsT2Zmc2V0PVswLDBdLHRoaXMubGFiZWxDb3VudD1bMCwwXX1mdW5jdGlvbiBpKHQpe3ZhciBlPXQuZ2wscj1vKGUpLGk9YShlLHUudGV4dFZlcnQsdS50ZXh0RnJhZykscz1uZXcgbih0LHIsaSk7cmV0dXJuIHN9ZS5leHBvcnRzPWk7dmFyIG89dCgiZ2wtYnVmZmVyIiksYT10KCJnbC1zaGFkZXIiKSxzPXQoInRleHQtY2FjaGUiKSxsPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksdT10KCIuL3NoYWRlcnMiKSxjPW4ucHJvdG90eXBlO2MuZHJhd1RpY2tzPWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF0sZT1bMCwwXSxyPVswLDBdO3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT10aGlzLnBsb3Qsbz10aGlzLnNoYWRlcixhPXRoaXMudGlja1hbbl0scz10aGlzLnRpY2tPZmZzZXRbbl0sdT1pLmdsLGM9aS52aWV3Qm94LGg9aS5kYXRhQm94LGY9aS5zY3JlZW5Cb3gscD1pLnBpeGVsUmF0aW8sZD1pLnRpY2tFbmFibGUsbT1pLnRpY2tQYWQsZz1pLnRpY2tDb2xvcix2PWkudGlja0FuZ2xlLHk9KGkudGlja01hcmtMZW5ndGgsaS5sYWJlbEVuYWJsZSksYj1pLmxhYmVsUGFkLHg9aS5sYWJlbENvbG9yLF89aS5sYWJlbEFuZ2xlLHc9dGhpcy5sYWJlbE9mZnNldFtuXSxNPXRoaXMubGFiZWxDb3VudFtuXSxrPWwubHQoYSxoW25dKSxBPWwubGUoYSxoW24rMl0pO3RbMF09dFsxXT0wLHRbbl09MSxlW25dPShjWzIrbl0rY1tuXSkvKGZbMituXS1mW25dKS0xO3ZhciBUPTIvZlsyKygxXm4pXS1mWzFebl07ZVsxXm5dPVQqY1sxXm5dLTEsZFtuXSYmKGVbMV5uXS09VCpwKm1bbl0sQT5rJiZzW0FdPnNba10mJihvLnVuaWZvcm1zLmRhdGFBeGlzPXQsby51bmlmb3Jtcy5zY3JlZW5PZmZzZXQ9ZSxvLnVuaWZvcm1zLmNvbG9yPWdbbl0sby51bmlmb3Jtcy5hbmdsZT12W25dLHUuZHJhd0FycmF5cyh1LlRSSUFOR0xFUyxzW2tdLHNbQV0tc1trXSkpKSx5W25dJiZNJiYoZVsxXm5dLT1UKnAqYltuXSxvLnVuaWZvcm1zLmRhdGFBeGlzPXIsby51bmlmb3Jtcy5zY3JlZW5PZmZzZXQ9ZSxvLnVuaWZvcm1zLmNvbG9yPXhbbl0sby51bmlmb3Jtcy5hbmdsZT1fW25dLHUuZHJhd0FycmF5cyh1LlRSSUFOR0xFUyx3LE0pKSxlWzFebl09VCpjWzIrKDFebildLTEsZFtuKzJdJiYoZVsxXm5dKz1UKnAqbVtuKzJdLEE+ayYmc1tBXT5zW2tdJiYoby51bmlmb3Jtcy5kYXRhQXhpcz10LG8udW5pZm9ybXMuc2NyZWVuT2Zmc2V0PWUsby51bmlmb3Jtcy5jb2xvcj1nW24rMl0sby51bmlmb3Jtcy5hbmdsZT12W24rMl0sdS5kcmF3QXJyYXlzKHUuVFJJQU5HTEVTLHNba10sc1tBXS1zW2tdKSkpLHlbbisyXSYmTSYmKGVbMV5uXSs9VCpwKmJbbisyXSxvLnVuaWZvcm1zLmRhdGFBeGlzPXIsby51bmlmb3Jtcy5zY3JlZW5PZmZzZXQ9ZSxvLnVuaWZvcm1zLmNvbG9yPXhbbisyXSxvLnVuaWZvcm1zLmFuZ2xlPV9bbisyXSx1LmRyYXdBcnJheXModS5UUklBTkdMRVMsdyxNKSl9fSgpLGMuZHJhd1RpdGxlPWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF0sZT1bMCwwXTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcj10aGlzLnBsb3Qsbj10aGlzLnNoYWRlcixpPXIuZ2wsbz1yLnNjcmVlbkJveCxhPXIudGl0bGVDZW50ZXIscz1yLnRpdGxlQW5nbGUsbD1yLnRpdGxlQ29sb3IsYT1yLnRpdGxlQ2VudGVyLHU9ci5waXhlbFJhdGlvO2lmKHRoaXMudGl0bGVDb3VudCl7Zm9yKHZhciBjPTA7Mj5jOysrYyllW2NdPTIqKGFbY10qdS1vW2NdKS8ob1syK2NdLW9bY10pLTE7bi5iaW5kKCksbi51bmlmb3Jtcy5kYXRhQXhpcz10LG4udW5pZm9ybXMuc2NyZWVuT2Zmc2V0PWUsbi51bmlmb3Jtcy5hbmdsZT1zLG4udW5pZm9ybXMuY29sb3I9bCxpLmRyYXdBcnJheXMoaS5UUklBTkdMRVMsdGhpcy50aXRsZU9mZnNldCx0aGlzLnRpdGxlQ291bnQpfX19KCksYy5iaW5kPWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF0sZT1bMCwwXSxyPVswLDBdO3JldHVybiBmdW5jdGlvbigpe3ZhciBuPXRoaXMucGxvdCxpPXRoaXMuc2hhZGVyLG89bi5fdGlja0JvdW5kcyxhPW4uZGF0YUJveCxzPW4uc2NyZWVuQm94LGw9bi52aWV3Qm94O2kuYmluZCgpO2Zvcih2YXIgdT0wOzI+dTsrK3Upe3ZhciBjPW9bdV0saD1vW3UrMl0sZj1oLWMscD0uNSooYVt1KzJdK2FbdV0pLGQ9YVt1KzJdLWFbdV0sbT1sW3VdLGc9bFt1KzJdLHY9Zy1tLHk9c1t1XSxiPXNbdSsyXSx4PWIteTtlW3VdPTIqZi9kKnYveCx0W3VdPTIqKGMtcCkvZCp2L3h9clsxXT0yKm4ucGl4ZWxSYXRpby8oc1szXS1zWzFdKSxyWzBdPXJbMV0qKHNbM10tc1sxXSkvKHNbMl0tc1swXSksaS51bmlmb3Jtcy5kYXRhU2NhbGU9ZSxpLnVuaWZvcm1zLmRhdGFTaGlmdD10LGkudW5pZm9ybXMudGV4dFNjYWxlPXIsdGhpcy52Ym8uYmluZCgpLGkuYXR0cmlidXRlcy50ZXh0Q29vcmRpbmF0ZS5wb2ludGVyKCl9fSgpLGMudXBkYXRlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPXQudGlja3Msbj10LmJvdW5kcyxpPTA7Mj5pOysraSl7Zm9yKHZhciBvPVtNYXRoLmZsb29yKGUubGVuZ3RoLzMpXSxhPVstKDEvMCldLGw9cltpXSx1PTA7dTxsLmxlbmd0aDsrK3Upe2Zvcih2YXIgYz1sW3VdLGg9Yy54LGY9Yy50ZXh0LHA9Yy5mb250fHwic2Fucy1zZXJpZiIsZD1jLmZvbnRTaXplfHwxMixtPXMocCxmKS5kYXRhLGc9MS8obltpKzJdLW5baV0pLHY9bltpXSx5PTA7eTxtLmxlbmd0aDt5Kz0yKWUucHVzaChtW3ldKmQsLW1beSsxXSpkLChoLXYpKmcpO28ucHVzaChNYXRoLmZsb29yKGUubGVuZ3RoLzMpKSxhLnB1c2goaCl9dGhpcy50aWNrT2Zmc2V0W2ldPW8sdGhpcy50aWNrWFtpXT1hfWZvcih2YXIgaT0wOzI+aTsrK2kpe3RoaXMubGFiZWxPZmZzZXRbaV09TWF0aC5mbG9vcihlLmxlbmd0aC8zKTtmb3IodmFyIG09cyh0LmxhYmVsRm9udFtpXSx0LmxhYmVsc1tpXSkuZGF0YSxkPXQubGFiZWxTaXplW2ldLHU9MDt1PG0ubGVuZ3RoO3UrPTIpZS5wdXNoKG1bdV0qZCwtbVt1KzFdKmQsMCk7dGhpcy5sYWJlbENvdW50W2ldPU1hdGguZmxvb3IoZS5sZW5ndGgvMyktdGhpcy5sYWJlbE9mZnNldFtpXX10aGlzLnRpdGxlT2Zmc2V0PU1hdGguZmxvb3IoZS5sZW5ndGgvMyk7Zm9yKHZhciBtPXModC50aXRsZUZvbnQsdC50aXRsZSkuZGF0YSxkPXQudGl0bGVTaXplLHU9MDt1PG0ubGVuZ3RoO3UrPTIpZS5wdXNoKG1bdV0qZCwtbVt1KzFdKmQsMCk7dGhpcy50aXRsZUNvdW50PU1hdGguZmxvb3IoZS5sZW5ndGgvMyktdGhpcy50aXRsZU9mZnNldCx0aGlzLnZiby51cGRhdGUoZSl9LGMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MTczLCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTc1LCJnbC1idWZmZXIiOjEyOSwiZ2wtc2hhZGVyIjoyMDgsInRleHQtY2FjaGUiOjQ3Nn1dLDE3NTpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVs3M11bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjczfV0sMTc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLmdsPXQsdGhpcy5waWNrQnVmZmVyPWUsdGhpcy5zY3JlZW5Cb3g9WzAsMCx0LmRyYXdpbmdCdWZmZXJXaWR0aCx0LmRyYXdpbmdCdWZmZXJIZWlnaHRdLHRoaXMudmlld0JveD1bMCwwLDAsMF0sdGhpcy5kYXRhQm94PVstMTAsLTEwLDEwLDEwXSx0aGlzLmdyaWRMaW5lRW5hYmxlPVshMCwhMF0sdGhpcy5ncmlkTGluZVdpZHRoPVsxLDFdLHRoaXMuZ3JpZExpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5waXhlbFJhdGlvPTEsdGhpcy50aWNrTWFya0xlbmd0aD1bMCwwLDAsMF0sdGhpcy50aWNrTWFya1dpZHRoPVswLDAsMCwwXSx0aGlzLnRpY2tNYXJrQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrUGFkPVsxNSwxNSwxNSwxNV0sdGhpcy50aWNrQW5nbGU9WzAsMCwwLDBdLHRoaXMudGlja0VuYWJsZT1bITAsITAsITAsITBdLHRoaXMudGlja0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGFiZWxQYWQ9WzE1LDE1LDE1LDE1XSx0aGlzLmxhYmVsQW5nbGU9WzAsTWF0aC5QSS8yLDAsMypNYXRoLlBJLzJdLHRoaXMubGFiZWxFbmFibGU9WyEwLCEwLCEwLCEwXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aXRsZUNlbnRlcj1bMCwwXSx0aGlzLnRpdGxlRW5hYmxlPSEwLHRoaXMudGl0bGVBbmdsZT0wLHRoaXMudGl0bGVDb2xvcj1bMCwwLDAsMV0sdGhpcy5ib3JkZXJDb2xvcj1bMCwwLDAsMF0sdGhpcy5iYWNrZ3JvdW5kQ29sb3I9WzAsMCwwLDBdLHRoaXMuemVyb0xpbmVFbmFibGU9WyEwLCEwXSx0aGlzLnplcm9MaW5lV2lkdGg9WzQsNF0sdGhpcy56ZXJvTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmJvcmRlckxpbmVFbmFibGU9WyEwLCEwLCEwLCEwXSx0aGlzLmJvcmRlckxpbmVXaWR0aD1bMiwyLDIsMl0sdGhpcy5ib3JkZXJMaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5ncmlkPW51bGwsdGhpcy50ZXh0PW51bGwsdGhpcy5saW5lPW51bGwsdGhpcy5ib3g9bnVsbCx0aGlzLm9iamVjdHM9W10sdGhpcy5vdmVybGF5cz1bXSx0aGlzLl90aWNrQm91bmRzPVsxLzAsMS8wLC0oMS8wKSwtKDEvMCldLHRoaXMuZGlydHk9ITEsdGhpcy5waWNrRGlydHk9ITEsdGhpcy5waWNrRGVsYXk9MTIwLHRoaXMucGlja1JhZGl1cz0xMCx0aGlzLl9waWNrVGltZW91dD1udWxsLHRoaXMuX2RyYXdQaWNrPXRoaXMuZHJhd1BpY2suYmluZCh0aGlzKSx0aGlzLl9kZXB0aENvdW50ZXI9MH1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT10LnNsaWNlKCkscj0wO3I8ZS5sZW5ndGg7KytyKWVbcl09ZVtyXS5zbGljZSgpO3JldHVybiBlfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdC54LWUueH1mdW5jdGlvbiBhKHQpe3ZhciBlPXQuZ2wscj1zKGUsW2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF0pLGk9bmV3IG4oZSxyKTtyZXR1cm4gaS5ncmlkPWwoaSksaS50ZXh0PXUoaSksaS5saW5lPWMoaSksaS5ib3g9aChpKSxpLnVwZGF0ZSh0KSxpfWUuZXhwb3J0cz1hO3ZhciBzPXQoImdsLXNlbGVjdC1zdGF0aWMiKSxsPXQoIi4vbGliL2dyaWQiKSx1PXQoIi4vbGliL3RleHQiKSxjPXQoIi4vbGliL2xpbmUiKSxoPXQoIi4vbGliL2JveCIpLGY9bi5wcm90b3R5cGU7Zi5zZXREaXJ0eT1mdW5jdGlvbigpe3RoaXMuZGlydHk9dGhpcy5waWNrRGlydHk9ITB9LGYuc2V0T3ZlcmxheURpcnR5PWZ1bmN0aW9uKCl7dGhpcy5kaXJ0eT0hMH0sZi5uZXh0RGVwdGhWYWx1ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXB0aENvdW50ZXIrKy82NTUzNn0sZi5kcmF3PWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbCxlPXRoaXMuc2NyZWVuQm94LHI9dGhpcy52aWV3Qm94LG49dGhpcy5kYXRhQm94LGk9dGhpcy5waXhlbFJhdGlvLG89dGhpcy5ncmlkLGE9dGhpcy5saW5lLHM9dGhpcy50ZXh0LGw9dGhpcy5vYmplY3RzO2lmKHRoaXMuX2RlcHRoQ291bnRlcj0wLHRoaXMucGlja0RpcnR5JiYodGhpcy5fcGlja1RpbWVvdXQmJmNsZWFyVGltZW91dCh0aGlzLl9waWNrVGltZW91dCksdGhpcy5waWNrRGlydHk9ITEsdGhpcy5fcGlja1RpbWVvdXQ9c2V0VGltZW91dCh0aGlzLl9kcmF3UGljayx0aGlzLnBpY2tEZWxheSkpLHRoaXMuZGlydHkpe3RoaXMuZGlydHk9ITEsdC5iaW5kRnJhbWVidWZmZXIodC5GUkFNRUJVRkZFUixudWxsKSx0LmVuYWJsZSh0LlNDSVNTT1JfVEVTVCksdC5kaXNhYmxlKHQuREVQVEhfVEVTVCksdC5kZXB0aEZ1bmModC5MRVNTKSx0LmRlcHRoTWFzayghMSksdC5lbmFibGUodC5CTEVORCksdC5ibGVuZEVxdWF0aW9uKHQuRlVOQ19BREQsdC5GVU5DX0FERCksdC5ibGVuZEZ1bmModC5PTkUsdC5PTkVfTUlOVVNfU1JDX0FMUEhBKSx0LnNjaXNzb3IoZVswXSxlWzFdLGVbMl0tZVswXSxlWzNdLWVbMV0pO3ZhciB1PXRoaXMuYm9yZGVyQ29sb3I7dC5jbGVhckNvbG9yKHVbMF0qdVszXSx1WzFdKnVbM10sdVsyXSp1WzNdLHVbM10pLHQuY2xlYXIodC5DT0xPUl9CVUZGRVJfQklUfHQuREVQVEhfQlVGRkVSX0JJVCksdC5zY2lzc29yKHJbMF0sclsxXSxyWzJdLXJbMF0sclszXS1yWzFdKSx0LnZpZXdwb3J0KHJbMF0sclsxXSxyWzJdLXJbMF0sclszXS1yWzFdKTt2YXIgYz10aGlzLmJhY2tncm91bmRDb2xvcjt0LmNsZWFyQ29sb3IoY1swXSpjWzNdLGNbMV0qY1szXSxjWzJdKmNbM10sY1szXSksdC5jbGVhcih0LkNPTE9SX0JVRkZFUl9CSVQpLG8uZHJhdygpO3ZhciBoPXRoaXMuemVyb0xpbmVFbmFibGUsZj10aGlzLnplcm9MaW5lQ29sb3IscD10aGlzLnplcm9MaW5lV2lkdGg7aWYoaFswXXx8aFsxXSl7YS5iaW5kKCk7Zm9yKHZhciBkPTA7Mj5kOysrZClpZihoW2RdJiZuW2RdPD0wJiZuW2QrMl0+PTApe3ZhciBtPWVbZF0tbltkXSooZVtkKzJdLWVbZF0pLyhuW2QrMl0tbltkXSk7MD09PWQ/YS5kcmF3TGluZShtLGVbMV0sbSxlWzNdLHBbZF0sZltkXSk6YS5kcmF3TGluZShlWzBdLG0sZVsyXSxtLHBbZF0sZltkXSl9fWZvcih2YXIgZD0wO2Q8bC5sZW5ndGg7KytkKWxbZF0uZHJhdygpO3Qudmlld3BvcnQoZVswXSxlWzFdLGVbMl0tZVswXSxlWzNdLWVbMV0pLHQuc2Npc3NvcihlWzBdLGVbMV0sZVsyXS1lWzBdLGVbM10tZVsxXSksdGhpcy5ncmlkLmRyYXdUaWNrTWFya3MoKSxhLmJpbmQoKTt2YXIgZz10aGlzLmJvcmRlckxpbmVFbmFibGUsdj10aGlzLmJvcmRlckxpbmVXaWR0aCx5PXRoaXMuYm9yZGVyTGluZUNvbG9yO2dbMV0mJmEuZHJhd0xpbmUoclswXSxyWzFdLS41KnZbMV0qaSxyWzBdLHJbM10rLjUqdlszXSppLHZbMV0seVsxXSksZ1swXSYmYS5kcmF3TGluZShyWzBdLS41KnZbMF0qaSxyWzFdLHJbMl0rLjUqdlsyXSppLHJbMV0sdlswXSx5WzBdKSxnWzNdJiZhLmRyYXdMaW5lKHJbMl0sclsxXS0uNSp2WzFdKmksclsyXSxyWzNdKy41KnZbM10qaSx2WzNdLHlbM10pLGdbMl0mJmEuZHJhd0xpbmUoclswXS0uNSp2WzBdKmksclszXSxyWzJdKy41KnZbMl0qaSxyWzNdLHZbMl0seVsyXSkscy5iaW5kKCk7Zm9yKHZhciBkPTA7Mj5kOysrZClzLmRyYXdUaWNrcyhkKTt0aGlzLnRpdGxlRW5hYmxlJiZzLmRyYXdUaXRsZSgpO2Zvcih2YXIgYj10aGlzLm92ZXJsYXlzLGQ9MDtkPGIubGVuZ3RoOysrZCliW2RdLmRyYXcoKTt0LmRpc2FibGUodC5TQ0lTU09SX1RFU1QpLHQuZGlzYWJsZSh0LkJMRU5EKSx0LmRlcHRoTWFzayghMCl9fX0oKSxmLmRyYXdQaWNrPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5waWNrQnVmZmVyO3RoaXMuZ2w7dGhpcy5fcGlja1RpbWVvdXQ9bnVsbCx0LmJlZ2luKCk7Zm9yKHZhciBlPTEscj10aGlzLm9iamVjdHMsbj0wO248ci5sZW5ndGg7KytuKWU9cltuXS5kcmF3UGljayhlKTt0LmVuZCgpfX0oKSxmLnBpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnBpeGVsUmF0aW8sbj10aGlzLnBpY2tQaXhlbFJhdGlvLGk9dGhpcy52aWV3Qm94LG89MHxNYXRoLnJvdW5kKCh0LWlbMF0vcikqbiksYT0wfE1hdGgucm91bmQoKGUtaVsxXS9yKSpuKSxzPXRoaXMucGlja0J1ZmZlci5xdWVyeShvLGEsdGhpcy5waWNrUmFkaXVzKTtpZighcylyZXR1cm4gbnVsbDtmb3IodmFyIGw9cy5pZCsocy52YWx1ZVswXTw8OCkrKHMudmFsdWVbMV08PDE2KSsocy52YWx1ZVsyXTw8MjQpLHU9dGhpcy5vYmplY3RzLGM9MDtjPHUubGVuZ3RoOysrYyl7dmFyIGg9dVtjXS5waWNrKG8sYSxsKTtpZihoKXJldHVybiBofXJldHVybiBudWxsfX0oKSxmLnNldFNjcmVlbkJveD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjcmVlbkJveCxyPXRoaXMucGl4ZWxSYXRpbztlWzBdPTB8TWF0aC5yb3VuZCh0WzBdKnIpLGVbMV09MHxNYXRoLnJvdW5kKHRbMV0qciksZVsyXT0wfE1hdGgucm91bmQodFsyXSpyKSxlWzNdPTB8TWF0aC5yb3VuZCh0WzNdKnIpLHRoaXMuc2V0RGlydHkoKX0sZi5zZXREYXRhQm94PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF0YUJveCxyPWVbMF0hPT10WzBdfHxlWzFdIT09dFsxXXx8ZVsyXSE9PXRbMl18fGVbM10hPT10WzNdO3ImJihlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sdGhpcy5zZXREaXJ0eSgpKX0sZi5zZXRWaWV3Qm94PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGl4ZWxSYXRpbyxyPXRoaXMudmlld0JveDtyWzBdPTB8TWF0aC5yb3VuZCh0WzBdKmUpLHJbMV09MHxNYXRoLnJvdW5kKHRbMV0qZSksclsyXT0wfE1hdGgucm91bmQodFsyXSplKSxyWzNdPTB8TWF0aC5yb3VuZCh0WzNdKmUpO3ZhciBuPXRoaXMucGlja1BpeGVsUmF0aW87dGhpcy5waWNrQnVmZmVyLnNoYXBlPVswfE1hdGgucm91bmQoKHRbMl0tdFswXSkqbiksMHxNYXRoLnJvdW5kKCh0WzNdLXRbMV0pKm4pXSx0aGlzLnNldERpcnR5KCl9LGYudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e307dmFyIGU9dGhpcy5nbDt0aGlzLnBpeGVsUmF0aW89dC5waXhlbFJhdGlvfHwxO3ZhciByPXRoaXMucGl4ZWxSYXRpbzt0aGlzLnBpY2tQaXhlbFJhdGlvPU1hdGgubWF4KHIsMSksdGhpcy5zZXRTY3JlZW5Cb3godC5zY3JlZW5Cb3h8fFswLDAsZS5kcmF3aW5nQnVmZmVyV2lkdGgvcixlLmRyYXdpbmdCdWZmZXJIZWlnaHQvcl0pO3RoaXMuc2NyZWVuQm94O3RoaXMuc2V0Vmlld0JveCh0LnZpZXdCb3h8fFsuMTI1Kih0aGlzLnNjcmVlbkJveFsyXS10aGlzLnNjcmVlbkJveFswXSkvciwuMTI1Kih0aGlzLnNjcmVlbkJveFszXS10aGlzLnNjcmVlbkJveFsxXSkvciwuODc1Kih0aGlzLnNjcmVlbkJveFsyXS10aGlzLnNjcmVlbkJveFswXSkvciwuODc1Kih0aGlzLnNjcmVlbkJveFszXS10aGlzLnNjcmVlbkJveFsxXSkvcl0pO3ZhciBuPXRoaXMudmlld0JveCxhPShuWzJdLW5bMF0pLyhuWzNdLW5bMV0pO3RoaXMuc2V0RGF0YUJveCh0LmRhdGFCb3h8fFstMTAsLTEwL2EsMTAsMTAvYV0pLHRoaXMuYm9yZGVyQ29sb3I9KHQuYm9yZGVyQ29sb3J8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLmJhY2tncm91bmRDb2xvcj0odC5iYWNrZ3JvdW5kQ29sb3J8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lRW5hYmxlPSh0LmdyaWRMaW5lRW5hYmxlfHxbITAsITBdKS5zbGljZSgpLHRoaXMuZ3JpZExpbmVXaWR0aD0odC5ncmlkTGluZVdpZHRofHxbMSwxXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lQ29sb3I9aSh0LmdyaWRMaW5lQ29sb3J8fFtbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdXSksdGhpcy56ZXJvTGluZUVuYWJsZT0odC56ZXJvTGluZUVuYWJsZXx8WyEwLCEwXSkuc2xpY2UoKSx0aGlzLnplcm9MaW5lV2lkdGg9KHQuemVyb0xpbmVXaWR0aHx8WzQsNF0pLnNsaWNlKCksdGhpcy56ZXJvTGluZUNvbG9yPWkodC56ZXJvTGluZUNvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGlja01hcmtMZW5ndGg9KHQudGlja01hcmtMZW5ndGh8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLnRpY2tNYXJrV2lkdGg9KHQudGlja01hcmtXaWR0aHx8WzAsMCwwLDBdKS5zbGljZSgpLHRoaXMudGlja01hcmtDb2xvcj1pKHQudGlja01hcmtDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGl0bGVDZW50ZXI9KHQudGl0bGVDZW50ZXJ8fFsuNSooblswXStuWzJdKS9yLChuWzNdKzEyMCkvcl0pLnNsaWNlKCksdGhpcy50aXRsZUVuYWJsZT0hKCJ0aXRsZUVuYWJsZSJpbiB0JiYhdC50aXRsZUVuYWJsZSksdGhpcy50aXRsZUFuZ2xlPXQudGl0bGVBbmdsZXx8MCx0aGlzLnRpdGxlQ29sb3I9KHQudGl0bGVDb2xvcnx8WzAsMCwwLDFdKS5zbGljZSgpLHRoaXMubGFiZWxQYWQ9KHQubGFiZWxQYWR8fFsxNSwxNSwxNSwxNV0pLnNsaWNlKCksdGhpcy5sYWJlbEFuZ2xlPSh0LmxhYmVsQW5nbGV8fFswLE1hdGguUEkvMiwwLDMqTWF0aC5QSS8yXSkuc2xpY2UoKSx0aGlzLmxhYmVsRW5hYmxlPSh0LmxhYmVsRW5hYmxlfHxbITAsITAsITAsITBdKS5zbGljZSgpLHRoaXMubGFiZWxDb2xvcj1pKHQubGFiZWxDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGlja1BhZD0odC50aWNrUGFkfHxbMTUsMTUsMTUsMTVdKS5zbGljZSgpLHRoaXMudGlja0FuZ2xlPSh0LnRpY2tBbmdsZXx8WzAsMCwwLDBdKS5zbGljZSgpLHRoaXMudGlja0VuYWJsZT0odC50aWNrRW5hYmxlfHxbITAsITAsITAsITBdKS5zbGljZSgpLHRoaXMudGlja0NvbG9yPWkodC50aWNrQ29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKSx0aGlzLmJvcmRlckxpbmVFbmFibGU9KHQuYm9yZGVyTGluZUVuYWJsZXx8WyEwLCEwLCEwLCEwXSkuc2xpY2UoKSx0aGlzLmJvcmRlckxpbmVXaWR0aD0odC5ib3JkZXJMaW5lV2lkdGh8fFsyLDIsMiwyXSkuc2xpY2UoKSx0aGlzLmJvcmRlckxpbmVDb2xvcj1pKHQuYm9yZGVyTGluZUNvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSk7dmFyIHM9dC50aWNrc3x8W1tdLFtdXSxsPXRoaXMuX3RpY2tCb3VuZHM7bFswXT1sWzFdPTEvMCxsWzJdPWxbM109LSgxLzApO2Zvcih2YXIgdT0wOzI+dTsrK3Upe3ZhciBjPXNbdV0uc2xpY2UoMCk7MCE9PWMubGVuZ3RoJiYoYy5zb3J0KG8pLGxbdV09TWF0aC5taW4obFt1XSxjWzBdLngpLGxbdSsyXT1NYXRoLm1heChsW3UrMl0sY1tjLmxlbmd0aC0xXS54KSl9dGhpcy5ncmlkLnVwZGF0ZSh7Ym91bmRzOmwsdGlja3M6c30pLHRoaXMudGV4dC51cGRhdGUoe2JvdW5kczpsLHRpY2tzOnMsbGFiZWxzOnQubGFiZWxzfHxbIngiLCJ5Il0sbGFiZWxTaXplOnQubGFiZWxTaXplfHxbMTIsMTJdLGxhYmVsRm9udDp0LmxhYmVsRm9udHx8WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiJdLHRpdGxlOnQudGl0bGV8fCIiLHRpdGxlU2l6ZTp0LnRpdGxlU2l6ZXx8MTgsdGl0bGVGb250OnQudGl0bGVGb250fHwic2Fucy1zZXJpZiJ9KSx0aGlzLnNldERpcnR5KCl9LGYuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuYm94LmRpc3Bvc2UoKSx0aGlzLmdyaWQuZGlzcG9zZSgpLHRoaXMudGV4dC5kaXNwb3NlKCksdGhpcy5saW5lLmRpc3Bvc2UoKTtmb3IodmFyIHQ9dGhpcy5vYmplY3RzLmxlbmd0aC0xO3Q+PTA7LS10KXRoaXMub2JqZWN0c1t0XS5kaXNwb3NlKCk7dGhpcy5vYmplY3RzLmxlbmd0aD0wO2Zvcih2YXIgdD10aGlzLm92ZXJsYXlzLmxlbmd0aC0xO3Q+PTA7LS10KXRoaXMub3ZlcmxheXNbdF0uZGlzcG9zZSgpO3RoaXMub3ZlcmxheXMubGVuZ3RoPTAsdGhpcy5nbD1udWxsfSxmLmFkZE9iamVjdD1mdW5jdGlvbih0KXt0aGlzLm9iamVjdHMuaW5kZXhPZih0KTwwJiYodGhpcy5vYmplY3RzLnB1c2godCksdGhpcy5zZXREaXJ0eSgpKX0sZi5yZW1vdmVPYmplY3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMub2JqZWN0cyxyPTA7cjxlLmxlbmd0aDsrK3IpaWYoZVtyXT09PXQpe2Uuc3BsaWNlKHIsMSksdGhpcy5zZXREaXJ0eSgpO2JyZWFrfX0sZi5hZGRPdmVybGF5PWZ1bmN0aW9uKHQpe3RoaXMub3ZlcmxheXMuaW5kZXhPZih0KTwwJiYodGhpcy5vdmVybGF5cy5wdXNoKHQpLHRoaXMuc2V0T3ZlcmxheURpcnR5KCkpfSxmLnJlbW92ZU92ZXJsYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMub3ZlcmxheXMscj0wO3I8ZS5sZW5ndGg7KytyKWlmKGVbcl09PT10KXtlLnNwbGljZShyLDEpLHRoaXMuc2V0T3ZlcmxheURpcnR5KCk7YnJlYWt9fX0seyIuL2xpYi9ib3giOjE3MCwiLi9saWIvZ3JpZCI6MTcxLCIuL2xpYi9saW5lIjoxNzIsIi4vbGliL3RleHQiOjE3NCwiZ2wtc2VsZWN0LXN0YXRpYyI6MjA3fV0sMTc3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzIgcG9zaXRpb247XG52YXJ5aW5nIHZlYzIgdXY7XG52b2lkIG1haW4oKSB7XG4gIHV2ID0gcG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMCwgMSk7XG59IixvPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gc2FtcGxlcjJEIGFjY3VtQnVmZmVyO1xudmFyeWluZyB2ZWMyIHV2O1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzQgYWNjdW0gPSB0ZXh0dXJlMkQoYWNjdW1CdWZmZXIsIDAuNSAqICh1diArIDEuMCkpO1xuICBnbF9GcmFnQ29sb3IgPSBtaW4odmVjNCgxLDEsMSwxKSwgYWNjdW0pO1xufSI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsaSxvLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMiJ9XSl9fSx7ImdsLXNoYWRlciI6MjA4fV0sMTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0PXR8fGRvY3VtZW50LmJvZHksZT1lfHx7fTt2YXIgcj1bLjAxLDEvMF07ImRpc3RhbmNlTGltaXRzImluIGUmJihyWzBdPWUuZGlzdGFuY2VMaW1pdHNbMF0sclsxXT1lLmRpc3RhbmNlTGltaXRzWzFdKSwiem9vbU1pbiJpbiBlJiYoclswXT1lLnpvb21NaW4pLCJ6b29tTWF4ImluIGUmJihyWzFdPWUuem9vbU1heCk7dmFyIG49byh7Y2VudGVyOmUuY2VudGVyfHxbMCwwLDBdLHVwOmUudXB8fFswLDEsMF0sZXllOmUuZXllfHxbMCwwLDEwXSxtb2RlOmUubW9kZXx8Im9yYml0IixkaXN0YW5jZUxpbWl0czpyfSksbD1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sdT0wLGM9dC5jbGllbnRXaWR0aCxoPXQuY2xpZW50SGVpZ2h0LGY9e3ZpZXc6bixlbGVtZW50OnQsZGVsYXk6ZS5kZWxheXx8MTYscm90YXRlU3BlZWQ6ZS5yb3RhdGVTcGVlZHx8MSx6b29tU3BlZWQ6ZS56b29tU3BlZWR8fDEsdHJhbnNsYXRlU3BlZWQ6ZS50cmFuc2xhdGVTcGVlZHx8MSxmbGlwWDohIWUuZmxpcFgsZmxpcFk6ISFlLmZsaXBZLG1vZGVzOm4ubW9kZXMsdGljazpmdW5jdGlvbigpe3ZhciBlPWkoKSxyPXRoaXMuZGVsYXk7bi5pZGxlKGUtciksbi5mbHVzaChlLSgxMDArMipyKSk7dmFyIG89ZS0yKnI7bi5yZWNhbGNNYXRyaXgobyk7Zm9yKHZhciBhPSEwLHM9bi5jb21wdXRlZE1hdHJpeCxmPTA7MTY+ZjsrK2YpYT1hJiZsW2ZdPT09c1tmXSxsW2ZdPXNbZl07dmFyIHA9dC5jbGllbnRXaWR0aD09PWMmJnQuY2xpZW50SGVpZ2h0PT09aDtyZXR1cm4gYz10LmNsaWVudFdpZHRoLGg9dC5jbGllbnRIZWlnaHQsYT8hcDoodT1NYXRoLmV4cChuLmNvbXB1dGVkUmFkaXVzWzBdKSwhMCl9LGxvb2tBdDpmdW5jdGlvbih0LGUscil7bi5sb29rQXQobi5sYXN0VCgpLHQsZSxyKX0scm90YXRlOmZ1bmN0aW9uKHQsZSxyKXtuLnJvdGF0ZShuLmxhc3RUKCksdCxlLHIpfSxwYW46ZnVuY3Rpb24odCxlLHIpe24ucGFuKG4ubGFzdFQoKSx0LGUscil9LHRyYW5zbGF0ZTpmdW5jdGlvbih0LGUscil7bi50cmFuc2xhdGUobi5sYXN0VCgpLHQsZSxyKX19O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGYse21hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY29tcHV0ZWRNYXRyaXh9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbi5zZXRNYXRyaXgobi5sYXN0VCgpLHQpLG4uY29tcHV0ZWRNYXRyaXh9LGVudW1lcmFibGU6ITB9LG1vZGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBuLmdldE1vZGUoKX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBuLnNldE1vZGUodCksbi5nZXRNb2RlKCl9LGVudW1lcmFibGU6ITB9LGNlbnRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY29tcHV0ZWRDZW50ZXJ9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbi5sb29rQXQobi5sYXN0VCgpLHQpLG4uY29tcHV0ZWRDZW50ZXJ9LGVudW1lcmFibGU6ITB9LGV5ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY29tcHV0ZWRFeWV9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbi5sb29rQXQobi5sYXN0VCgpLG51bGwsdCksbi5jb21wdXRlZEV5ZX0sZW51bWVyYWJsZTohMH0sdXA6e2dldDpmdW5jdGlvbigpe3JldHVybiBuLmNvbXB1dGVkVXB9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbi5sb29rQXQobi5sYXN0VCgpLG51bGwsbnVsbCx0KSxuLmNvbXB1dGVkVXB9LGVudW1lcmFibGU6ITB9LGRpc3RhbmNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBuLnNldERpc3RhbmNlKG4ubGFzdFQoKSx0KSx0fSxlbnVtZXJhYmxlOiEwfSxkaXN0YW5jZUxpbWl0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uZ2V0RGlzdGFuY2VMaW1pdHMocil9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbi5zZXREaXN0YW5jZUxpbWl0cyh0KSx0fSxlbnVtZXJhYmxlOiEwfX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCksITF9KTt2YXIgcD0wLGQ9MDtyZXR1cm4gYSh0LGZ1bmN0aW9uKGUscixvLGEpe3ZhciBzPTEvdC5jbGllbnRIZWlnaHQsbD1zKihyLXApLGM9cyooby1kKSxoPWYuZmxpcFg/MTotMSxtPWYuZmxpcFk/MTotMSxnPU1hdGguUEkqZi5yb3RhdGVTcGVlZCx2PWkoKTtpZigxJmUpYS5zaGlmdD9uLnJvdGF0ZSh2LDAsMCwtbCpnKTpuLnJvdGF0ZSh2LGgqZypsLC1tKmcqYywwKTtlbHNlIGlmKDImZSluLnBhbih2LC1mLnRyYW5zbGF0ZVNwZWVkKmwqdSxmLnRyYW5zbGF0ZVNwZWVkKmMqdSwwKTtlbHNlIGlmKDQmZSl7dmFyIHk9Zi56b29tU3BlZWQqYy93aW5kb3cuaW5uZXJIZWlnaHQqKHYtbi5sYXN0VCgpKSo1MDtuLnBhbih2LDAsMCx1KihNYXRoLmV4cCh5KS0xKSl9cD1yLGQ9b30pLHModCxmdW5jdGlvbih0LGUscil7dmFyIG89Zi5mbGlwWD8xOi0xLGE9Zi5mbGlwWT8xOi0xLHM9aSgpO2lmKE1hdGguYWJzKHQpPk1hdGguYWJzKGUpKW4ucm90YXRlKHMsMCwwLC10Km8qTWF0aC5QSSpmLnJvdGF0ZVNwZWVkL3dpbmRvdy5pbm5lcldpZHRoKTtlbHNle3ZhciBsPWYuem9vbVNwZWVkKmEqZS93aW5kb3cuaW5uZXJIZWlnaHQqKHMtbi5sYXN0VCgpKS8xMDA7bi5wYW4ocywwLDAsdSooTWF0aC5leHAobCktMSkpfX0sITApLGZ9ZS5leHBvcnRzPW47dmFyIGk9dCgicmlnaHQtbm93Iiksbz10KCIzZC12aWV3IiksYT10KCJtb3VzZS1jaGFuZ2UiKSxzPXQoIm1vdXNlLXdoZWVsIil9LHsiM2QtdmlldyI6NDAsIm1vdXNlLWNoYW5nZSI6NDQ0LCJtb3VzZS13aGVlbCI6NDQ4LCJyaWdodC1ub3ciOjQ1OH1dLDE3OTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB0KGUpe2UucGVybWl0SG9zdE9iamVjdHNfX18mJmUucGVybWl0SG9zdE9iamVjdHNfX18odCl9ZnVuY3Rpb24gcih0KXtyZXR1cm4hKHQuc3Vic3RyKDAscC5sZW5ndGgpPT1wJiYiX19fIj09PXQuc3Vic3RyKHQubGVuZ3RoLTMpKX1mdW5jdGlvbiBuKHQpe2lmKHQhPT1PYmplY3QodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm90IGFuIG9iamVjdDogIit0KTt2YXIgZT10W2RdO2lmKGUmJmUua2V5PT09dClyZXR1cm4gZTtpZihmKHQpKXtlPXtrZXk6dH07dHJ5e3JldHVybiBoKHQsZCx7dmFsdWU6ZSx3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMX0pLGV9Y2F0Y2gocil7cmV0dXJufX19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5wcm90b3R5cGU9bnVsbCxPYmplY3QuZnJlZXplKHQpfWZ1bmN0aW9uIG8oKXt5fHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGV8fCh5PSEwLGNvbnNvbGUud2FybigiV2Vha01hcCBzaG91bGQgYmUgaW52b2tlZCBhcyBuZXcgV2Vha01hcCgpLCBub3QgV2Vha01hcCgpLiBUaGlzIHdpbGwgYmUgYW4gZXJyb3IgaW4gdGhlIGZ1dHVyZS4iKSl9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBzZXN8fCFzZXMub2t8fHNlcy5vaygpKXsidW5kZWZpbmVkIiE9dHlwZW9mIHNlcyYmKHNlcy53ZWFrTWFwUGVybWl0SG9zdE9iamVjdHM9dCk7dmFyIGE9ITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXApe3ZhciBzPVdlYWtNYXA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJi9GaXJlZm94Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKTtlbHNle3ZhciBsPW5ldyBzLHU9T2JqZWN0LmZyZWV6ZSh7fSk7aWYobC5zZXQodSwxKSwxPT09bC5nZXQodSkpcmV0dXJuIHZvaWQoZS5leHBvcnRzPVdlYWtNYXApO2E9ITB9fXZhciBjPShPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKSxoPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmPU9iamVjdC5pc0V4dGVuc2libGUscD0id2Vha21hcDoiLGQ9cCsiaWRlbnQ6IitNYXRoLnJhbmRvbSgpKyJfX18iO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvJiYiZnVuY3Rpb24iPT10eXBlb2YgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheSl7dmFyIG09bmV3IEFycmF5QnVmZmVyKDI1KSxnPW5ldyBVaW50OEFycmF5KG0pO2NyeXB0by5nZXRSYW5kb21WYWx1ZXMoZyksZD1wKyJyYW5kOiIrQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGcsZnVuY3Rpb24odCl7cmV0dXJuKHQlMzYpLnRvU3RyaW5nKDM2KX0pLmpvaW4oIiIpKyJfX18ifWlmKGgoT2JqZWN0LCJnZXRPd25Qcm9wZXJ0eU5hbWVzIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCkuZmlsdGVyKHIpfX0pLCJnZXRQcm9wZXJ0eU5hbWVzImluIE9iamVjdCl7dmFyIHY9T2JqZWN0LmdldFByb3BlcnR5TmFtZXM7aChPYmplY3QsImdldFByb3BlcnR5TmFtZXMiLHt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdih0KS5maWx0ZXIocil9fSl9IWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmZyZWV6ZTtoKE9iamVjdCwiZnJlZXplIix7dmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIG4oZSksdChlKX19KTt2YXIgZT1PYmplY3Quc2VhbDtoKE9iamVjdCwic2VhbCIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBuKHQpLGUodCl9fSk7dmFyIHI9T2JqZWN0LnByZXZlbnRFeHRlbnNpb25zO2goT2JqZWN0LCJwcmV2ZW50RXh0ZW5zaW9ucyIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBuKHQpLHIodCl9fSl9KCk7dmFyIHk9ITEsYj0wLHg9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dmFyIHIsaT1uKHQpO3JldHVybiBpP3UgaW4gaT9pW3VdOmU6KHI9cy5pbmRleE9mKHQpLHI+PTA/bFtyXTplKX1mdW5jdGlvbiBlKHQpe3ZhciBlPW4odCk7cmV0dXJuIGU/dSBpbiBlOnMuaW5kZXhPZih0KT49MH1mdW5jdGlvbiByKHQsZSl7dmFyIHIsaT1uKHQpO3JldHVybiBpP2lbdV09ZToocj1zLmluZGV4T2YodCkscj49MD9sW3JdPWU6KHI9cy5sZW5ndGgsbFtyXT1lLHNbcl09dCkpLHRoaXN9ZnVuY3Rpb24gYSh0KXt2YXIgZSxyLGk9bih0KTtyZXR1cm4gaT91IGluIGkmJmRlbGV0ZSBpW3VdOihlPXMuaW5kZXhPZih0KSwwPmU/ITE6KHI9cy5sZW5ndGgtMSxzW2VdPXZvaWQgMCxsW2VdPWxbcl0sc1tlXT1zW3JdLHMubGVuZ3RoPXIsbC5sZW5ndGg9ciwhMCkpfXRoaXMgaW5zdGFuY2VvZiB4fHxvKCk7dmFyIHM9W10sbD1bXSx1PWIrKztyZXR1cm4gT2JqZWN0LmNyZWF0ZSh4LnByb3RvdHlwZSx7Z2V0X19fOnt2YWx1ZTppKHQpfSxoYXNfX186e3ZhbHVlOmkoZSl9LHNldF9fXzp7dmFsdWU6aShyKX0sZGVsZXRlX19fOnt2YWx1ZTppKGEpfX0pfTt4LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKE9iamVjdC5wcm90b3R5cGUse2dldDp7dmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5nZXRfX18odCxlKX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxoYXM6e3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhhc19fXyh0KX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxzZXQ6e3ZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2V0X19fKHQsZSl9LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0sImRlbGV0ZSI6e3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRlbGV0ZV9fXyh0KX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBzPyFmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIGM/dS5oYXModCk/dS5nZXQodCk6Yy5nZXRfX18odCxlKTp1LmdldCh0LGUpfWZ1bmN0aW9uIHIodCl7cmV0dXJuIHUuaGFzKHQpfHwoYz9jLmhhc19fXyh0KTohMSl9ZnVuY3Rpb24gbih0KXt2YXIgZT0hIXUuZGVsZXRlKHQpO3JldHVybiBjP2MuZGVsZXRlX19fKHQpfHxlOmV9dGhpcyBpbnN0YW5jZW9mIHh8fG8oKTt2YXIgbCx1PW5ldyBzLGM9dm9pZCAwLGg9ITE7cmV0dXJuIGw9YT9mdW5jdGlvbih0LGUpe3JldHVybiB1LnNldCh0LGUpLHUuaGFzKHQpfHwoY3x8KGM9bmV3IHgpLGMuc2V0KHQsZSkpLHRoaXN9OmZ1bmN0aW9uKHQsZSl7aWYoaCl0cnl7dS5zZXQodCxlKX1jYXRjaChyKXtjfHwoYz1uZXcgeCksYy5zZXRfX18odCxlKX1lbHNlIHUuc2V0KHQsZSk7cmV0dXJuIHRoaXN9LE9iamVjdC5jcmVhdGUoeC5wcm90b3R5cGUse2dldF9fXzp7dmFsdWU6aShlKX0saGFzX19fOnt2YWx1ZTppKHIpfSxzZXRfX186e3ZhbHVlOmkobCl9LGRlbGV0ZV9fXzp7dmFsdWU6aShuKX0scGVybWl0SG9zdE9iamVjdHNfX186e3ZhbHVlOmkoZnVuY3Rpb24oZSl7aWYoZSE9PXQpdGhyb3cgbmV3IEVycm9yKCJib2d1cyBjYWxsIHRvIHBlcm1pdEhvc3RPYmplY3RzX19fIik7aD0hMH0pfX0pfWEmJiJ1bmRlZmluZWQiIT10eXBlb2YgUHJveHkmJihQcm94eT12b2lkIDApLHIucHJvdG90eXBlPXgucHJvdG90eXBlLGUuZXhwb3J0cz1yLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXZWFrTWFwLnByb3RvdHlwZSwiY29uc3RydWN0b3IiLHt2YWx1ZTpXZWFrTWFwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9KCk6KCJ1bmRlZmluZWQiIT10eXBlb2YgUHJveHkmJihQcm94eT12b2lkIDApLGUuZXhwb3J0cz14KX19KCl9LHt9XSwxODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1zLmdldCh0KTtpZighZXx8IXQuaXNCdWZmZXIoZS5fdHJpYW5nbGVCdWZmZXIuYnVmZmVyKSl7dmFyIHI9byh0LG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC0xLDQsNCwtMV0pKTtlPWEodCxbe2J1ZmZlcjpyLHR5cGU6dC5GTE9BVCxzaXplOjJ9XSksZS5fdHJpYW5nbGVCdWZmZXI9cixzLnNldCh0LGUpfWUuYmluZCgpLHQuZHJhd0FycmF5cyh0LlRSSUFOR0xFUywwLDMpLGUudW5iaW5kKCl9dmFyIGk9InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3QoIndlYWstbWFwIik6V2Vha01hcCxvPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIikscz1uZXcgaTtlLmV4cG9ydHM9bn0seyJnbC1idWZmZXIiOjEyOSwiZ2wtdmFvIjoyMzcsIndlYWstbWFwIjoxNzl9XSwxODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0fWZ1bmN0aW9uIGkodCl7dGhpcy5nbD10LHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuYm91bmRzPVtbLTEwLC0xMCwtMTBdLFsxMCwxMCwxMF1dLHRoaXMudGlja3M9W1tdLFtdLFtdXSx0aGlzLmF1dG9UaWNrcz0hMCx0aGlzLnRpY2tTcGFjaW5nPVsxLDEsMV0sdGhpcy50aWNrRW5hYmxlPVshMCwhMCwhMF0sdGhpcy50aWNrRm9udD1bInNhbnMtc2VyaWYiLCJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiJdLHRoaXMudGlja1NpemU9WzEyLDEyLDEyXSx0aGlzLnRpY2tBbmdsZT1bMCwwLDBdLHRoaXMudGlja0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrUGFkPVsxMCwxMCwxMF0sdGhpcy5sYXN0Q3ViZVByb3BzPXtjdWJlRWRnZXM6WzAsMCwwXSxheGlzOlswLDAsMF19LHRoaXMubGFiZWxzPVsieCIsInkiLCJ6Il0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITBdLHRoaXMubGFiZWxGb250PSJzYW5zLXNlcmlmIix0aGlzLmxhYmVsU2l6ZT1bMjAsMjAsMjBdLHRoaXMubGFiZWxBbmdsZT1bMCwwLDBdLHRoaXMubGFiZWxDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGFiZWxQYWQ9WzEwLDEwLDEwXSx0aGlzLmxpbmVFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVNaXJyb3I9WyExLCExLCExXSx0aGlzLmxpbmVXaWR0aD1bMSwxLDFdLHRoaXMubGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5saW5lVGlja0VuYWJsZT1bITAsITAsITBdLHRoaXMubGluZVRpY2tNaXJyb3I9WyExLCExLCExXSx0aGlzLmxpbmVUaWNrTGVuZ3RoPVswLDAsMF0sdGhpcy5saW5lVGlja1dpZHRoPVsxLDEsMV0sdGhpcy5saW5lVGlja0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5ncmlkRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5ncmlkV2lkdGg9WzEsMSwxXSx0aGlzLmdyaWRDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuemVyb0VuYWJsZT1bITAsITAsITBdLHRoaXMuemVyb0xpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuemVyb0xpbmVXaWR0aD1bMiwyLDJdLHRoaXMuYmFja2dyb3VuZEVuYWJsZT1bITEsITEsITFdLHRoaXMuYmFja2dyb3VuZENvbG9yPVtbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV0sWy44LC44LC44LC41XV0sdGhpcy5fZmlyc3RJbml0PSEwLHRoaXMuX3RleHQ9bnVsbCx0aGlzLl9saW5lcz1udWxsLHRoaXMuX2JhY2tncm91bmQ9Yyh0KX1mdW5jdGlvbiBvKCl7dGhpcy5wcmltYWxPZmZzZXQ9WzAsMCwwXSx0aGlzLnByaW1hbE1pbm9yPVswLDAsMF0sdGhpcy5taXJyb3JPZmZzZXQ9WzAsMCwwXSx0aGlzLm1pcnJvck1pbm9yPVswLDAsMF19ZnVuY3Rpb24gYSh0LGUscixuLGkpe2Zvcih2YXIgbz10LnByaW1hbE9mZnNldCxhPXQucHJpbWFsTWlub3Iscz10Lm1pcnJvck9mZnNldCxsPXQubWlycm9yTWlub3IsdT1uW2VdLGM9MDszPmM7KytjKWlmKGUhPT1jKXt2YXIgaD1vLGY9cyxwPWEsZD1sO3UmMTw8YyYmKGg9cyxmPW8scD1sLGQ9YSksaFtjXT1yWzBdW2NdLGZbY109clsxXVtjXSxpW2NdPjA/KHBbY109LTEsZFtjXT0wKToocFtjXT0wLGRbY109MSl9fWZ1bmN0aW9uIHModCxlKXt2YXIgcj1uZXcgaSh0KTtyZXR1cm4gci51cGRhdGUoZSkscn1lLmV4cG9ydHM9czt2YXIgbD10KCIuL2xpYi90ZXh0LmpzIiksdT10KCIuL2xpYi9saW5lcy5qcyIpLGM9dCgiLi9saWIvYmFja2dyb3VuZC5qcyIpLGg9dCgiLi9saWIvY3ViZS5qcyIpLGY9dCgiLi9saWIvdGlja3MuanMiKSxwPW5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdKSxkPWkucHJvdG90eXBlO2QudXBkYXRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pe2lmKG4gaW4gdCl7dmFyIGksbz10W25dLGE9dGhpc1tuXTsoZT9BcnJheS5pc0FycmF5KG8pJiZBcnJheS5pc0FycmF5KG9bMF0pOkFycmF5LmlzQXJyYXkobykpP3RoaXNbbl09aT1bcihvWzBdKSxyKG9bMV0pLHIob1syXSldOnRoaXNbbl09aT1bcihvKSxyKG8pLHIobyldO2Zvcih2YXIgcz0wOzM+czsrK3MpaWYoaVtzXSE9PWFbc10pcmV0dXJuITB9cmV0dXJuITF9dD10fHx7fTt2YXIgcixuPWUuYmluZCh0aGlzLCExLE51bWJlciksaT1lLmJpbmQodGhpcywhMSxCb29sZWFuKSxvPWUuYmluZCh0aGlzLCExLFN0cmluZyksYT1lLmJpbmQodGhpcywhMCxmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXtpZigzPT09dC5sZW5ndGgpcmV0dXJuWyt0WzBdLCt0WzFdLCt0WzJdLDFdO2lmKDQ9PT10Lmxlbmd0aClyZXR1cm5bK3RbMF0sK3RbMV0sK3RbMl0sK3RbM11dfXJldHVyblswLDAsMCwxXX0pLHM9ITEsYz0hMTtpZigiYm91bmRzImluIHQpZm9yKHZhciBoPXQuYm91bmRzLHA9MDsyPnA7KytwKWZvcih2YXIgZD0wOzM+ZDsrK2QpaFtwXVtkXSE9PXRoaXMuYm91bmRzW3BdW2RdJiYoYz0hMCksdGhpcy5ib3VuZHNbcF1bZF09aFtwXVtkXTtpZigidGlja3MiaW4gdCl7cj10LnRpY2tzLHM9ITAsdGhpcy5hdXRvVGlja3M9ITE7Zm9yKHZhciBwPTA7Mz5wOysrcCl0aGlzLnRpY2tTcGFjaW5nW3BdPTB9ZWxzZSBuKCJ0aWNrU3BhY2luZyIpJiYodGhpcy5hdXRvVGlja3M9ITAsYz0hMCk7aWYodGhpcy5fZmlyc3RJbml0JiYoInRpY2tzImluIHR8fCJ0aWNrU3BhY2luZyJpbiB0fHwodGhpcy5hdXRvVGlja3M9ITApLGM9ITAscz0hMCx0aGlzLl9maXJzdEluaXQ9ITEpLGMmJnRoaXMuYXV0b1RpY2tzJiYocj1mLmNyZWF0ZSh0aGlzLmJvdW5kcyx0aGlzLnRpY2tTcGFjaW5nKSxzPSEwKSxzKXtmb3IodmFyIHA9MDszPnA7KytwKXJbcF0uc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LngtZS54fSk7Zi5lcXVhbChyLHRoaXMudGlja3MpP3M9ITE6dGhpcy50aWNrcz1yfWkoInRpY2tFbmFibGUiKSxvKCJ0aWNrRm9udCIpJiYocz0hMCksbigidGlja1NpemUiKSxuKCJ0aWNrQW5nbGUiKSxuKCJ0aWNrUGFkIiksYSgidGlja0NvbG9yIik7dmFyIG09bygibGFiZWxzIik7bygibGFiZWxGb250IikmJihtPSEwKSxpKCJsYWJlbEVuYWJsZSIpLG4oImxhYmVsU2l6ZSIpLG4oImxhYmVsUGFkIiksYSgibGFiZWxDb2xvciIpLGkoImxpbmVFbmFibGUiKSxpKCJsaW5lTWlycm9yIiksbigibGluZVdpZHRoIiksYSgibGluZUNvbG9yIiksaSgibGluZVRpY2tFbmFibGUiKSxpKCJsaW5lVGlja01pcnJvciIpLG4oImxpbmVUaWNrTGVuZ3RoIiksbigibGluZVRpY2tXaWR0aCIpLGEoImxpbmVUaWNrQ29sb3IiKSxpKCJncmlkRW5hYmxlIiksbigiZ3JpZFdpZHRoIiksYSgiZ3JpZENvbG9yIiksaSgiemVyb0VuYWJsZSIpLGEoInplcm9MaW5lQ29sb3IiKSxuKCJ6ZXJvTGluZVdpZHRoIiksaSgiYmFja2dyb3VuZEVuYWJsZSIpLGEoImJhY2tncm91bmRDb2xvciIpLHRoaXMuX3RleHQ/dGhpcy5fdGV4dCYmKG18fHMpJiZ0aGlzLl90ZXh0LnVwZGF0ZSh0aGlzLmJvdW5kcyx0aGlzLmxhYmVscyx0aGlzLmxhYmVsRm9udCx0aGlzLnRpY2tzLHRoaXMudGlja0ZvbnQpOnRoaXMuX3RleHQ9bCh0aGlzLmdsLHRoaXMuYm91bmRzLHRoaXMubGFiZWxzLHRoaXMubGFiZWxGb250LHRoaXMudGlja3MsdGhpcy50aWNrRm9udCksdGhpcy5fbGluZXMmJnMmJih0aGlzLl9saW5lcy5kaXNwb3NlKCksdGhpcy5fbGluZXM9bnVsbCksdGhpcy5fbGluZXN8fCh0aGlzLl9saW5lcz11KHRoaXMuZ2wsdGhpcy5ib3VuZHMsdGhpcy50aWNrcykpfTt2YXIgbT1bbmV3IG8sbmV3IG8sbmV3IG9dLGc9WzAsMCwwXSx2PXttb2RlbDpwLHZpZXc6cCxwcm9qZWN0aW9uOnB9O2QuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGQuZHJhd1RyYW5zcGFyZW50PWZ1bmN0aW9uKHQpe307dmFyIHk9WzAsMCwwXSxiPVswLDAsMF0seD1bMCwwLDBdO2QuZHJhdz1mdW5jdGlvbih0KXt0PXR8fHY7Zm9yKHZhciBlPXRoaXMuZ2wscj10Lm1vZGVsfHxwLGk9dC52aWV3fHxwLG89dC5wcm9qZWN0aW9ufHxwLHM9dGhpcy5ib3VuZHMsbD1oKHIsaSxvLHMpLHU9bC5jdWJlRWRnZXMsYz1sLmF4aXMsZj1pWzEyXSxkPWlbMTNdLF89aVsxNF0sdz1pWzE1XSxNPXRoaXMucGl4ZWxSYXRpbyoob1szXSpmK29bN10qZCtvWzExXSpfK29bMTVdKncpL2UuZHJhd2luZ0J1ZmZlckhlaWdodCxrPTA7Mz5rOysrayl0aGlzLmxhc3RDdWJlUHJvcHMuY3ViZUVkZ2VzW2tdPXVba10sdGhpcy5sYXN0Q3ViZVByb3BzLmF4aXNba109Y1trXTtmb3IodmFyIEE9bSxrPTA7Mz5rOysraylhKG1ba10sayx0aGlzLmJvdW5kcyx1LGMpO2Zvcih2YXIgZT10aGlzLmdsLFQ9ZyxrPTA7Mz5rOysrayl0aGlzLmJhY2tncm91bmRFbmFibGVba10/VFtrXT1jW2tdOlRba109MDt0aGlzLl9iYWNrZ3JvdW5kLmRyYXcocixpLG8scyxULHRoaXMuYmFja2dyb3VuZENvbG9yKSx0aGlzLl9saW5lcy5iaW5kKHIsaSxvLHRoaXMpO2Zvcih2YXIgaz0wOzM+azsrK2spe3ZhciBFPVswLDAsMF07Y1trXT4wP0Vba109c1sxXVtrXTpFW2tdPXNbMF1ba107Zm9yKHZhciBTPTA7Mj5TOysrUyl7dmFyIEw9KGsrMStTKSUzLHo9KGsrMSsoMV5TKSklMzt0aGlzLmdyaWRFbmFibGVbTF0mJnRoaXMuX2xpbmVzLmRyYXdHcmlkKEwseix0aGlzLmJvdW5kcyxFLHRoaXMuZ3JpZENvbG9yW0xdLHRoaXMuZ3JpZFdpZHRoW0xdKnRoaXMucGl4ZWxSYXRpbyl9Zm9yKHZhciBTPTA7Mj5TOysrUyl7dmFyIEw9KGsrMStTKSUzLHo9KGsrMSsoMV5TKSklMzt0aGlzLnplcm9FbmFibGVbel0mJnNbMF1bel08PTAmJnNbMV1bel0+PTAmJnRoaXMuX2xpbmVzLmRyYXdaZXJvKEwseix0aGlzLmJvdW5kcyxFLHRoaXMuemVyb0xpbmVDb2xvclt6XSx0aGlzLnplcm9MaW5lV2lkdGhbel0qdGhpcy5waXhlbFJhdGlvKX19Zm9yKHZhciBrPTA7Mz5rOysrayl7dGhpcy5saW5lRW5hYmxlW2tdJiZ0aGlzLl9saW5lcy5kcmF3QXhpc0xpbmUoayx0aGlzLmJvdW5kcyxBW2tdLnByaW1hbE9mZnNldCx0aGlzLmxpbmVDb2xvcltrXSx0aGlzLmxpbmVXaWR0aFtrXSp0aGlzLnBpeGVsUmF0aW8pLHRoaXMubGluZU1pcnJvcltrXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNMaW5lKGssdGhpcy5ib3VuZHMsQVtrXS5taXJyb3JPZmZzZXQsdGhpcy5saW5lQ29sb3Jba10sdGhpcy5saW5lV2lkdGhba10qdGhpcy5waXhlbFJhdGlvKTtmb3IodmFyIEk9bih5LEFba10ucHJpbWFsTWlub3IpLFA9bihiLEFba10ubWlycm9yTWlub3IpLEM9dGhpcy5saW5lVGlja0xlbmd0aCxTPTA7Mz5TOysrUyl7dmFyIFI9TS9yWzUqU107SVtTXSo9Q1tTXSpSLFBbU10qPUNbU10qUn10aGlzLmxpbmVUaWNrRW5hYmxlW2tdJiZ0aGlzLl9saW5lcy5kcmF3QXhpc1RpY2tzKGssQVtrXS5wcmltYWxPZmZzZXQsSSx0aGlzLmxpbmVUaWNrQ29sb3Jba10sdGhpcy5saW5lVGlja1dpZHRoW2tdKnRoaXMucGl4ZWxSYXRpbyksdGhpcy5saW5lVGlja01pcnJvcltrXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNUaWNrcyhrLEFba10ubWlycm9yT2Zmc2V0LFAsdGhpcy5saW5lVGlja0NvbG9yW2tdLHRoaXMubGluZVRpY2tXaWR0aFtrXSp0aGlzLnBpeGVsUmF0aW8pfXRoaXMuX3RleHQuYmluZChyLGksbyx0aGlzLnBpeGVsUmF0aW8pO2Zvcih2YXIgaz0wOzM+azsrK2spe2Zvcih2YXIgaj1BW2tdLnByaW1hbE1pbm9yLEQ9bih4LEFba10ucHJpbWFsT2Zmc2V0KSxTPTA7Mz5TOysrUyl0aGlzLmxpbmVUaWNrRW5hYmxlW2tdJiYoRFtTXSs9TSpqW1NdKk1hdGgubWF4KHRoaXMubGluZVRpY2tMZW5ndGhbU10sMCkvcls1KlNdKTtpZih0aGlzLnRpY2tFbmFibGVba10pe2Zvcih2YXIgUz0wOzM+UzsrK1MpRFtTXSs9TSpqW1NdKnRoaXMudGlja1BhZFtTXS9yWzUqU107dGhpcy5fdGV4dC5kcmF3VGlja3Moayx0aGlzLnRpY2tTaXplW2tdLHRoaXMudGlja0FuZ2xlW2tdLEQsdGhpcy50aWNrQ29sb3Jba10pfWlmKHRoaXMubGFiZWxFbmFibGVba10pe2Zvcih2YXIgUz0wOzM+UzsrK1MpRFtTXSs9TSpqW1NdKnRoaXMubGFiZWxQYWRbU10vcls1KlNdO0Rba10rPS41KihzWzBdW2tdK3NbMV1ba10pLHRoaXMuX3RleHQuZHJhd0xhYmVsKGssdGhpcy5sYWJlbFNpemVba10sdGhpcy5sYWJlbEFuZ2xlW2tdLEQsdGhpcy5sYWJlbENvbG9yW2tdKX19fSxkLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl90ZXh0LmRpc3Bvc2UoKSx0aGlzLl9saW5lcy5kaXNwb3NlKCksdGhpcy5fYmFja2dyb3VuZC5kaXNwb3NlKCksdGhpcy5fbGluZXM9bnVsbCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fYmFja2dyb3VuZD1udWxsLHRoaXMuZ2w9bnVsbH19LHsiLi9saWIvYmFja2dyb3VuZC5qcyI6MTgyLCIuL2xpYi9jdWJlLmpzIjoxODMsIi4vbGliL2xpbmVzLmpzIjoxODQsIi4vbGliL3RleHQuanMiOjE4NiwiLi9saWIvdGlja3MuanMiOjE4N31dLDE4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLmJ1ZmZlcj1lLHRoaXMudmFvPXIsdGhpcy5zaGFkZXI9bn1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT1bXSxyPVtdLGk9MCxsPTA7Mz5sOysrbClmb3IodmFyIHU9KGwrMSklMyxjPShsKzIpJTMsaD1bMCwwLDBdLGY9WzAsMCwwXSxwPS0xOzE+PXA7cCs9Mil7ci5wdXNoKGksaSsyLGkrMSxpKzEsaSsyLGkrMyksaFtsXT1wLGZbbF09cDtmb3IodmFyIGQ9LTE7MT49ZDtkKz0yKXtoW3VdPWQ7Zm9yKHZhciBtPS0xOzE+PW07bSs9MiloW2NdPW0sZS5wdXNoKGhbMF0saFsxXSxoWzJdLGZbMF0sZlsxXSxmWzJdKSxpKz0xfXZhciBnPXU7dT1jLGM9Z312YXIgdj1vKHQsbmV3IEZsb2F0MzJBcnJheShlKSkseT1vKHQsbmV3IFVpbnQxNkFycmF5KHIpLHQuRUxFTUVOVF9BUlJBWV9CVUZGRVIpLGI9YSh0LFt7YnVmZmVyOnYsdHlwZTp0LkZMT0FULHNpemU6MyxvZmZzZXQ6MCxzdHJpZGU6MjR9LHtidWZmZXI6dix0eXBlOnQuRkxPQVQsc2l6ZTozLG9mZnNldDoxMixzdHJpZGU6MjR9XSx5KSx4PXModCk7cmV0dXJuIHguYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHguYXR0cmlidXRlcy5ub3JtYWwubG9jYXRpb249MSxuZXcgbih0LHYsYix4KX1lLmV4cG9ydHM9aTt2YXIgbz10KCJnbC1idWZmZXIiKSxhPXQoImdsLXZhbyIpLHM9dCgiLi9zaGFkZXJzIikuYmcsbD1uLnByb3RvdHlwZTtsLmRyYXc9ZnVuY3Rpb24odCxlLHIsbixpLG8pe2Zvcih2YXIgYT0hMSxzPTA7Mz5zOysrcylhPWF8fGlbc107aWYoYSl7dmFyIGw9dGhpcy5nbDtsLmVuYWJsZShsLlBPTFlHT05fT0ZGU0VUX0ZJTEwpLGwucG9seWdvbk9mZnNldCgxLDIpLAp0aGlzLnNoYWRlci5iaW5kKCksdGhpcy5zaGFkZXIudW5pZm9ybXM9e21vZGVsOnQsdmlldzplLHByb2plY3Rpb246cixib3VuZHM6bixlbmFibGU6aSxjb2xvcnM6b30sdGhpcy52YW8uYmluZCgpLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsMzYpLGwuZGlzYWJsZShsLlBPTFlHT05fT0ZGU0VUX0ZJTEwpfX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MTg1LCJnbC1idWZmZXIiOjEyOSwiZ2wtdmFvIjoyMzd9XSwxODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7Zm9yKHZhciBuPTA7ND5uOysrbil7dFtuXT1yWzEyK25dO2Zvcih2YXIgaT0wOzM+aTsrK2kpdFtuXSs9ZVtpXSpyWzQqaStuXX19ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9MDtlPG0ubGVuZ3RoOysrZSlpZih0PWwucG9zaXRpdmUodCxtW2VdKSx0Lmxlbmd0aDwzKXJldHVybiAwO2Zvcih2YXIgcj10WzBdLG49clswXS9yWzNdLGk9clsxXS9yWzNdLG89MCxlPTE7ZSsxPHQubGVuZ3RoOysrZSl7dmFyIGE9dFtlXSxzPXRbZSsxXSx1PWFbMF0vYVszXSxjPWFbMV0vYVszXSxoPXNbMF0vc1szXSxmPXNbMV0vc1szXSxwPXUtbixkPWMtaSxnPWgtbix2PWYtaTtvKz1NYXRoLmFicyhwKnYtZCpnKX1yZXR1cm4gb31mdW5jdGlvbiBvKHQsZSxyLG8pe3MoYyxlLHQpLHMoYyxyLGMpO2Zvcih2YXIgbD0wLG09MDsyPm07KyttKXtwWzJdPW9bbV1bMl07Zm9yKHZhciBiPTA7Mj5iOysrYil7cFsxXT1vW2JdWzFdO2Zvcih2YXIgeD0wOzI+eDsrK3gpcFswXT1vW3hdWzBdLG4oaFtsXSxwLGMpLGwrPTF9fWZvcih2YXIgXz0tMSxtPTA7OD5tOysrbSl7Zm9yKHZhciB3PWhbbV1bM10sTT0wOzM+TTsrK00pZlttXVtNXT1oW21dW01dL3c7MD53JiYoMD5fP189bTpmW21dWzJdPGZbX11bMl0mJihfPW0pKX1pZigwPl8pe189MDtmb3IodmFyIGs9MDszPms7KytrKXtmb3IodmFyIEE9KGsrMiklMyxUPShrKzEpJTMsRT0tMSxTPS0xLEw9MDsyPkw7KytMKXt2YXIgej1MPDxrLEk9eisoTDw8QSkrKDEtTDw8VCksUD16KygxLUw8PEEpKyhMPDxUKTt1KGZbel0sZltJXSxmW1BdLGQpPDB8fChMP0U9MTpTPTEpfWlmKDA+RXx8MD5TKVM+RSYmKF98PTE8PGspO2Vsc2V7Zm9yKHZhciBMPTA7Mj5MOysrTCl7dmFyIHo9TDw8ayxJPXorKEw8PEEpKygxLUw8PFQpLFA9eisoMS1MPDxBKSsoTDw8VCksQz1pKFtoW3pdLGhbSV0saFtQXSxoW3orKDE8PEEpKygxPDxUKV1dKTtMP0U9QzpTPUN9Uz5FJiYoX3w9MTw8ayl9fX1mb3IodmFyIFI9N15fLGo9LTEsbT0wOzg+bTsrK20pbSE9PV8mJm0hPT1SJiYoMD5qP2o9bTpmW2pdWzFdPmZbbV1bMV0mJihqPW0pKTtmb3IodmFyIEQ9LTEsbT0wOzM+bTsrK20pe3ZhciBPPWpeMTw8bTtpZihPIT09XyYmTyE9PVIpezA+RCYmKEQ9Tyk7dmFyIFQ9ZltPXTtUWzBdPGZbRF1bMF0mJihEPU8pfX1mb3IodmFyIEY9LTEsbT0wOzM+bTsrK20pe3ZhciBPPWpeMTw8bTtpZihPIT09XyYmTyE9PVImJk8hPT1EKXswPkYmJihGPU8pO3ZhciBUPWZbT107VFswXT5mW0ZdWzBdJiYoRj1PKX19dmFyIE49ZztOWzBdPU5bMV09TlsyXT0wLE5bYS5sb2cyKEReaildPWomRCxOW2EubG9nMihqXkYpXT1qJkY7dmFyIEI9N15GO0I9PT1ffHxCPT09Uj8oQj03XkQsTlthLmxvZzIoRl5CKV09QiZGKTpOW2EubG9nMihEXkIpXT1CJkQ7Zm9yKHZhciBVPXYsVj1fLGs9MDszPms7KytrKVYmMTw8az9VW2tdPS0xOlVba109MTtyZXR1cm4geX1lLmV4cG9ydHM9bzt2YXIgYT10KCJiaXQtdHdpZGRsZSIpLHM9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGw9KHQoImdsLW1hdDQvaW52ZXJ0IiksdCgic3BsaXQtcG9seWdvbiIpKSx1PXQoInJvYnVzdC1vcmllbnRhdGlvbiIpLGM9bmV3IEFycmF5KDE2KSxoPShuZXcgQXJyYXkoMTYpLG5ldyBBcnJheSg4KSksZj1uZXcgQXJyYXkoOCkscD1uZXcgQXJyYXkoMyksZD1bMCwwLDBdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wOzg+dDsrK3QpaFt0XT1bMSwxLDEsMV0sZlt0XT1bMSwxLDFdfSgpO3ZhciBtPVtbMCwwLDEsMCwwXSxbMCwwLC0xLDEsMF0sWzAsLTEsMCwxLDBdLFswLDEsMCwxLDBdLFstMSwwLDAsMSwwXSxbMSwwLDAsMSwwXV0sZz1bMSwxLDFdLHY9WzAsMCwwXSx5PXtjdWJlRWRnZXM6ZyxheGlzOnZ9fSx7ImJpdC10d2lkZGxlIjo1MSwiZ2wtbWF0NC9pbnZlcnQiOjE0OCwiZ2wtbWF0NC9tdWx0aXBseSI6MTUwLCJyb2J1c3Qtb3JpZW50YXRpb24iOjQ2Miwic3BsaXQtcG9seWdvbiI6MTg5fV0sMTg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHRbMF09dFsxXT10WzJdPTAsdH1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9ZnVuY3Rpb24gbyh0LGUscixuLGksbyxhLHMpe3RoaXMuZ2w9dCx0aGlzLnZlcnRCdWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW4sdGhpcy50aWNrQ291bnQ9aSx0aGlzLnRpY2tPZmZzZXQ9byx0aGlzLmdyaWRDb3VudD1hLHRoaXMuZ3JpZE9mZnNldD1zfWZ1bmN0aW9uIGEodCxlLHIpe3ZhciBuPVtdLGk9WzAsMCwwXSxhPVswLDAsMF0sYz1bMCwwLDBdLGg9WzAsMCwwXTtuLnB1c2goMCwwLDEsMCwxLDEsMCwwLC0xLDAsMCwtMSwwLDEsMSwwLDEsLTEpO2Zvcih2YXIgZj0wOzM+ZjsrK2Ype2Zvcih2YXIgcD1uLmxlbmd0aC8zfDAsZD0wO2Q8cltmXS5sZW5ndGg7KytkKXt2YXIgbT0rcltmXVtkXS54O24ucHVzaChtLDAsMSxtLDEsMSxtLDAsLTEsbSwwLC0xLG0sMSwxLG0sMSwtMSl9dmFyIGc9bi5sZW5ndGgvM3wwO2lbZl09cCxhW2ZdPWctcDtmb3IodmFyIHA9bi5sZW5ndGgvM3wwLHY9MDt2PHJbZl0ubGVuZ3RoOysrdil7dmFyIG09K3JbZl1bdl0ueDtuLnB1c2gobSwwLDEsbSwxLDEsbSwwLC0xLG0sMCwtMSxtLDEsMSxtLDEsLTEpfXZhciBnPW4ubGVuZ3RoLzN8MDtjW2ZdPXAsaFtmXT1nLXB9dmFyIHk9cyh0LG5ldyBGbG9hdDMyQXJyYXkobikpLGI9bCh0LFt7YnVmZmVyOnksdHlwZTp0LkZMT0FULHNpemU6MyxzdHJpZGU6MCxvZmZzZXQ6MH1dKSx4PXUodCk7cmV0dXJuIHguYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLG5ldyBvKHQseSxiLHgsYSxpLGgsYyl9ZS5leHBvcnRzPWE7dmFyIHM9dCgiZ2wtYnVmZmVyIiksbD10KCJnbC12YW8iKSx1PXQoIi4vc2hhZGVycyIpLmxpbmUsYz1bMCwwLDBdLGg9WzAsMCwwXSxmPVswLDAsMF0scD1bMCwwLDBdLGQ9WzEsMV0sbT1vLnByb3RvdHlwZTttLmJpbmQ9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc2hhZGVyLmJpbmQoKSx0aGlzLnNoYWRlci51bmlmb3Jtcy5tb2RlbD10LHRoaXMuc2hhZGVyLnVuaWZvcm1zLnZpZXc9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5wcm9qZWN0aW9uPXIsZFswXT10aGlzLmdsLmRyYXdpbmdCdWZmZXJXaWR0aCxkWzFdPXRoaXMuZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5TaGFwZT1kLHRoaXMudmFvLmJpbmQoKX0sbS5kcmF3QXhpc0xpbmU9ZnVuY3Rpb24odCxlLHIsbyxhKXt2YXIgcz1uKGgpO3RoaXMuc2hhZGVyLnVuaWZvcm1zLm1ham9yQXhpcz1oLHNbdF09ZVsxXVt0XS1lWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1pbm9yQXhpcz1zO3ZhciBsPWkocCxyKTtsW3RdKz1lWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1sLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmxpbmVXaWR0aD1hLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPW87dmFyIHU9bihmKTt1Wyh0KzIpJTNdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz11LHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsNik7dmFyIHU9bihmKTt1Wyh0KzEpJTNdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz11LHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsNil9LG0uZHJhd0F4aXNUaWNrcz1mdW5jdGlvbih0LGUscixpLG8pe2lmKHRoaXMudGlja0NvdW50W3RdKXt2YXIgYT1uKGMpO2FbdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5tYWpvckF4aXM9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5taW5vckF4aXM9cix0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1pLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmxpbmVXaWR0aD1vO3ZhciBzPW4oZik7c1t0XT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9cyx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMudGlja0NvdW50W3RdLHRoaXMudGlja09mZnNldFt0XSl9fSxtLmRyYXdHcmlkPWZ1bmN0aW9uKHQsZSxyLG8sYSxzKXtpZih0aGlzLmdyaWRDb3VudFt0XSl7dmFyIGw9bihoKTtsW2VdPXJbMV1bZV0tclswXVtlXSx0aGlzLnNoYWRlci51bmlmb3Jtcy5taW5vckF4aXM9bDt2YXIgdT1pKHAsbyk7dVtlXSs9clswXVtlXSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9dTt2YXIgZD1uKGMpO2RbdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5tYWpvckF4aXM9ZDt2YXIgbT1uKGYpO21bdF09MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5BeGlzPW0sdGhpcy5zaGFkZXIudW5pZm9ybXMubGluZVdpZHRoPXMsdGhpcy5zaGFkZXIudW5pZm9ybXMuY29sb3I9YSx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMuZ3JpZENvdW50W3RdLHRoaXMuZ3JpZE9mZnNldFt0XSl9fSxtLmRyYXdaZXJvPWZ1bmN0aW9uKHQsZSxyLG8sYSxzKXt2YXIgbD1uKGgpO3RoaXMuc2hhZGVyLnVuaWZvcm1zLm1ham9yQXhpcz1sLGxbdF09clsxXVt0XS1yWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1pbm9yQXhpcz1sO3ZhciB1PWkocCxvKTt1W3RdKz1yWzBdW3RdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD11O3ZhciBjPW4oZik7Y1tlXT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9Yyx0aGlzLnNoYWRlci51bmlmb3Jtcy5saW5lV2lkdGg9cyx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1hLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsNil9LG0uZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLnZlcnRCdWZmZXIuZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjoxODUsImdsLWJ1ZmZlciI6MTI5LCJnbC12YW8iOjIzN31dLDE4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1zaGFkZXIiKSxpPSIjZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBvZmZzZXQsIG1ham9yQXhpcywgbWlub3JBeGlzLCBzY3JlZW5BeGlzO1xudW5pZm9ybSBmbG9hdCBsaW5lV2lkdGg7XG51bmlmb3JtIHZlYzIgc2NyZWVuU2hhcGU7XG5cbnZlYzMgcHJvamVjdCh2ZWMzIHApIHtcbiAgdmVjNCBwcCA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHAsIDEuMCk7XG4gIHJldHVybiBwcC54eXogLyBtYXgocHAudywgMC4wMDAxKTtcbn1cblxudm9pZCBtYWluKCkge1xuICB2ZWMzIG1ham9yID0gcG9zaXRpb24ueCAqIG1ham9yQXhpcztcbiAgdmVjMyBtaW5vciA9IHBvc2l0aW9uLnkgKiBtaW5vckF4aXM7XG5cbiAgdmVjMyB2UG9zaXRpb24gPSBtYWpvciArIG1pbm9yICsgb2Zmc2V0O1xuICB2ZWMzIHBQb3NpdGlvbiA9IHByb2plY3QodlBvc2l0aW9uKTtcbiAgdmVjMyBvZmZzZXQgPSBwcm9qZWN0KHZQb3NpdGlvbiArIHNjcmVlbkF4aXMgKiBwb3NpdGlvbi56KTtcblxuICB2ZWMyIHNjcmVlbiA9IG5vcm1hbGl6ZSgob2Zmc2V0IC0gcFBvc2l0aW9uKS54eSAqIHNjcmVlblNoYXBlKSAvIHNjcmVlblNoYXBlO1xuXG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwUG9zaXRpb24gKyB2ZWMzKDAuNSAqIHNjcmVlbiAqIGxpbmVXaWR0aCwgMCksIDEuMCk7XG59XG4iLG89InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcbnVuaWZvcm0gdmVjNCBjb2xvcjtcbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7XG59IjtyLmxpbmU9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCxpLG8sbnVsbCxbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn1dKX07dmFyIGE9IiNkZWZpbmUgR0xTTElGWSAxXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIG9mZnNldCwgYXhpcztcbnVuaWZvcm0gZmxvYXQgc2NhbGUsIGFuZ2xlLCBwaXhlbFNjYWxlO1xudW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG5cbnZvaWQgbWFpbigpIHsgIFxuICAvL0NvbXB1dGUgcGxhbmUgb2Zmc2V0XG4gIHZlYzIgcGxhbmVDb29yZCA9IHBvc2l0aW9uLnh5ICogcGl4ZWxTY2FsZTtcbiAgbWF0MiBwbGFuZVhmb3JtID0gc2NhbGUgKiBtYXQyKGNvcyhhbmdsZSksIHNpbihhbmdsZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1zaW4oYW5nbGUpLCBjb3MoYW5nbGUpKTtcbiAgdmVjMiB2aWV3T2Zmc2V0ID0gMi4wICogcGxhbmVYZm9ybSAqIHBsYW5lQ29vcmQgLyByZXNvbHV0aW9uO1xuXG4gIC8vQ29tcHV0ZSB3b3JsZCBvZmZzZXRcbiAgZmxvYXQgYXhpc0Rpc3RhbmNlID0gcG9zaXRpb24uejtcbiAgdmVjMyBkYXRhUG9zaXRpb24gPSBheGlzRGlzdGFuY2UgKiBheGlzICsgb2Zmc2V0O1xuICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQoZGF0YVBvc2l0aW9uLCAxKTtcbiAgXG4gIC8vQ29tcHV0ZSBjbGlwIHBvc2l0aW9uXG4gIHZlYzQgdmlld1Bvc2l0aW9uID0gdmlldyAqIHdvcmxkUG9zaXRpb247XG4gIHZlYzQgY2xpcFBvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXdQb3NpdGlvbjtcbiAgY2xpcFBvc2l0aW9uIC89IGNsaXBQb3NpdGlvbi53O1xuXG4gIC8vQXBwbHkgdGV4dCBvZmZzZXQgaW4gY2xpcCBjb29yZGluYXRlc1xuICBjbGlwUG9zaXRpb24gKz0gdmVjNCh2aWV3T2Zmc2V0LCAwLCAwKTtcblxuICAvL0RvbmVcbiAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG59IixzPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG51bmlmb3JtIHZlYzQgY29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufSI7ci50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsYSxzLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9XSl9O3ZhciBsPSIjZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjMyBub3JtYWw7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBlbmFibGU7XG51bmlmb3JtIHZlYzMgYm91bmRzWzJdO1xuXG52YXJ5aW5nIHZlYzMgY29sb3JDaGFubmVsO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmKGRvdChub3JtYWwsIGVuYWJsZSkgPiAwLjApIHtcbiAgICB2ZWMzIG5Qb3NpdGlvbiA9IG1peChib3VuZHNbMF0sIGJvdW5kc1sxXSwgMC41ICogKHBvc2l0aW9uICsgMS4wKSk7XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChuUG9zaXRpb24sIDEuMCk7XG4gIH0gZWxzZSB7XG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDApO1xuICB9XG4gIGNvbG9yQ2hhbm5lbCA9IGFicyhub3JtYWwpO1xufSIsdT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3JzWzNdO1xuXG52YXJ5aW5nIHZlYzMgY29sb3JDaGFubmVsO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yQ2hhbm5lbC54ICogY29sb3JzWzBdICsgXG4gICAgICAgICAgICAgICAgIGNvbG9yQ2hhbm5lbC55ICogY29sb3JzWzFdICtcbiAgICAgICAgICAgICAgICAgY29sb3JDaGFubmVsLnogKiBjb2xvcnNbMl07XG59IjtyLmJnPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsbCx1LG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJub3JtYWwiLHR5cGU6InZlYzMifV0pfX0seyJnbC1zaGFkZXIiOjIwOH1dLDE4NjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLmdsPXQsdGhpcy5zaGFkZXI9ZSx0aGlzLmJ1ZmZlcj1yLHRoaXMudmFvPW4sdGhpcy50aWNrT2Zmc2V0PXRoaXMudGlja0NvdW50PXRoaXMubGFiZWxPZmZzZXQ9dGhpcy5sYWJlbENvdW50PW51bGx9ZnVuY3Rpb24gaSh0LGUpe3RyeXtyZXR1cm4gbCh0LGUpfWNhdGNoKHIpe3JldHVybiBjb25zb2xlLndhcm4oImVycm9yIHZlY3Rvcml6aW5nIHRleHQ6IixyKSx7Y2VsbHM6W10scG9zaXRpb25zOltdfX19ZnVuY3Rpb24gbyh0LGUscixpLG8sbCl7dmFyIGM9YSh0KSxoPXModCxbe2J1ZmZlcjpjLHNpemU6M31dKSxmPXUodCk7Zi5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTA7dmFyIHA9bmV3IG4odCxmLGMsaCk7cmV0dXJuIHAudXBkYXRlKGUscixpLG8sbCkscH1lLmV4cG9ydHM9bzt2YXIgYT10KCJnbC1idWZmZXIiKSxzPXQoImdsLXZhbyIpLGw9dCgidmVjdG9yaXplLXRleHQiKSx1PXQoIi4vc2hhZGVycyIpLnRleHQsYz13aW5kb3d8fHIuZ2xvYmFsfHx7fSxoPWMuX19URVhUX0NBQ0hFfHx7fTtjLl9fVEVYVF9DQUNIRT17fTt2YXIgZj0zLHA9bi5wcm90b3R5cGUsZD1bMCwwXTtwLmJpbmQ9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy52YW8uYmluZCgpLHRoaXMuc2hhZGVyLmJpbmQoKTt2YXIgaT10aGlzLnNoYWRlci51bmlmb3JtcztpLm1vZGVsPXQsaS52aWV3PWUsaS5wcm9qZWN0aW9uPXIsaS5waXhlbFNjYWxlPW4sZFswXT10aGlzLmdsLmRyYXdpbmdCdWZmZXJXaWR0aCxkWzFdPXRoaXMuZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCx0aGlzLnNoYWRlci51bmlmb3Jtcy5yZXNvbHV0aW9uPWR9LHAudXBkYXRlPWZ1bmN0aW9uKHQsZSxyLG4sbyl7ZnVuY3Rpb24gYSh0LGUscixuKXt2YXIgbz1oW3JdO298fChvPWhbcl09e30pO3ZhciBhPW9bZV07YXx8KGE9b1tlXT1pKGUse3RyaWFuZ2xlczohMCxmb250OnIsdGV4dEFsaWduOiJjZW50ZXIiLHRleHRCYXNlbGluZToibWlkZGxlIn0pKTtmb3IodmFyIGw9KG58fDEyKS8xMix1PWEucG9zaXRpb25zLGM9YS5jZWxscyxmPTAscD1jLmxlbmd0aDtwPmY7KytmKWZvcih2YXIgZD1jW2ZdLG09MjttPj0wOy0tbSl7dmFyIGc9dVtkW21dXTtzLnB1c2gobCpnWzBdLC1sKmdbMV0sdCl9fWZvcih2YXIgcz0odGhpcy5nbCxbXSksbD1bMCwwLDBdLHU9WzAsMCwwXSxjPVswLDAsMF0scD1bMCwwLDBdLGQ9MDszPmQ7KytkKXtjW2RdPXMubGVuZ3RoL2Z8MCxhKC41Kih0WzBdW2RdK3RbMV1bZF0pLGVbZF0scikscFtkXT0ocy5sZW5ndGgvZnwwKS1jW2RdLGxbZF09cy5sZW5ndGgvZnwwO2Zvcih2YXIgbT0wO208bltkXS5sZW5ndGg7KyttKW5bZF1bbV0udGV4dCYmYShuW2RdW21dLngsbltkXVttXS50ZXh0LG5bZF1bbV0uZm9udHx8byxuW2RdW21dLmZvbnRTaXplfHwxMik7dVtkXT0ocy5sZW5ndGgvZnwwKS1sW2RdfXRoaXMuYnVmZmVyLnVwZGF0ZShzKSx0aGlzLnRpY2tPZmZzZXQ9bCx0aGlzLnRpY2tDb3VudD11LHRoaXMubGFiZWxPZmZzZXQ9Yyx0aGlzLmxhYmVsQ291bnQ9cH07dmFyIG09WzAsMCwwXTtwLmRyYXdUaWNrcz1mdW5jdGlvbih0LGUscixuLGkpe2lmKHRoaXMudGlja0NvdW50W3RdKXt2YXIgbz1tO29bMF09b1sxXT1vWzJdPTAsb1t0XT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmF4aXM9byx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1pLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFuZ2xlPXIsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NhbGU9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9bix0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMudGlja0NvdW50W3RdLHRoaXMudGlja09mZnNldFt0XSl9fTt2YXIgZz1bMCwwLDBdO3AuZHJhd0xhYmVsPWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy5sYWJlbENvdW50W3RdJiYodGhpcy5zaGFkZXIudW5pZm9ybXMuYXhpcz1nLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPWksdGhpcy5zaGFkZXIudW5pZm9ybXMuYW5nbGU9cix0aGlzLnNoYWRlci51bmlmb3Jtcy5zY2FsZT1lLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1uLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsdGhpcy5sYWJlbENvdW50W3RdLHRoaXMubGFiZWxPZmZzZXRbdF0pKX0scC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zaGFkZXIuZGlzcG9zZSgpLHRoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLmJ1ZmZlci5kaXNwb3NlKCl9fSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7Ii4vc2hhZGVycyI6MTg1LF9wcm9jZXNzOjU5LCJnbC1idWZmZXIiOjEyOSwiZ2wtdmFvIjoyMzcsInZlY3Rvcml6ZS10ZXh0Ijo0ODN9XSwxODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPXQrIiIsbj1yLmluZGV4T2YoIi4iKSxpPTA7bj49MCYmKGk9ci5sZW5ndGgtbi0xKTt2YXIgbz1NYXRoLnBvdygxMCxpKSxhPU1hdGgucm91bmQodCplKm8pLHM9YSsiIjtpZihzLmluZGV4T2YoImUiKT49MClyZXR1cm4gczt2YXIgbD1hL28sdT1hJW87MD5hPyhsPTB8LU1hdGguY2VpbChsKSx1PTB8LXUpOihsPTB8TWF0aC5mbG9vcihsKSx1PTB8dSk7dmFyIGM9IiIrbDtpZigwPmEmJihjPSItIitjKSxpKXtmb3IodmFyIGg9IiIrdTtoLmxlbmd0aDxpOyloPSIwIitoO3JldHVybiBjKyIuIitofXJldHVybiBjfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9W10saT0wOzM+aTsrK2kpe2Zvcih2YXIgbz1bXSxhPSguNSoodFswXVtpXSt0WzFdW2ldKSwwKTthKmVbaV08PXRbMV1baV07KythKW8ucHVzaCh7eDphKmVbaV0sdGV4dDpuKGVbaV0sYSl9KTtmb3IodmFyIGE9LTE7YSplW2ldPj10WzBdW2ldOy0tYSlvLnB1c2goe3g6YSplW2ldLHRleHQ6bihlW2ldLGEpfSk7ci5wdXNoKG8pfXJldHVybiByfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9MDszPnI7KytyKXtpZih0W3JdLmxlbmd0aCE9PWVbcl0ubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248dFtyXS5sZW5ndGg7KytuKXt2YXIgaT10W3JdW25dLG89ZVtyXVtuXTtpZihpLnghPT1vLnh8fGkudGV4dCE9PW8udGV4dClyZXR1cm4hMX19cmV0dXJuITB9ci5jcmVhdGU9aSxyLmVxdWFsPW99LHt9XSwxODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49ZXx8MCxpPXJ8fDE7cmV0dXJuW1t0WzEyXSt0WzBdLHRbMTNdK3RbMV0sdFsxNF0rdFsyXSx0WzE1XSt0WzNdXSxbdFsxMl0tdFswXSx0WzEzXS10WzFdLHRbMTRdLXRbMl0sdFsxNV0tdFszXV0sW3RbMTJdK3RbNF0sdFsxM10rdFs1XSx0WzE0XSt0WzZdLHRbMTVdK3RbN11dLFt0WzEyXS10WzRdLHRbMTNdLXRbNV0sdFsxNF0tdFs2XSx0WzE1XS10WzddXSxbbip0WzEyXSt0WzhdLG4qdFsxM10rdFs5XSxuKnRbMTRdK3RbMTBdLG4qdFsxNV0rdFsxMV1dLFtpKnRbMTJdLXRbOF0saSp0WzEzXS10WzldLGkqdFsxNF0tdFsxMF0saSp0WzE1XS10WzExXV1dfWUuZXhwb3J0cz1ufSx7fV0sMTg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj11KGwodCxlKSxbZVtlLmxlbmd0aC0xXV0pO3JldHVybiByW3IubGVuZ3RoLTFdfWZ1bmN0aW9uIGkodCxlLHIsbil7dmFyIGk9bi1lLG89LWUvaTswPm8/bz0wOm8+MSYmKG89MSk7Zm9yKHZhciBhPTEtbyxzPXQubGVuZ3RoLGw9bmV3IEFycmF5KHMpLHU9MDtzPnU7Kyt1KWxbdV09byp0W3VdK2Eqclt1XTtyZXR1cm4gbH1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPVtdLG89W10sYT1uKHRbdC5sZW5ndGgtMV0sZSkscz10W3QubGVuZ3RoLTFdLGw9dFswXSx1PTA7dTx0Lmxlbmd0aDsrK3Uscz1sKXtsPXRbdV07dmFyIGM9bihsLGUpO2lmKDA+YSYmYz4wfHxhPjAmJjA+Yyl7dmFyIGg9aShzLGMsbCxhKTtyLnB1c2goaCksby5wdXNoKGguc2xpY2UoKSl9MD5jP28ucHVzaChsLnNsaWNlKCkpOmM+MD9yLnB1c2gobC5zbGljZSgpKTooci5wdXNoKGwuc2xpY2UoKSksby5wdXNoKGwuc2xpY2UoKSkpLGE9Y31yZXR1cm57cG9zaXRpdmU6cixuZWdhdGl2ZTpvfX1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPVtdLG89bih0W3QubGVuZ3RoLTFdLGUpLGE9dFt0Lmxlbmd0aC0xXSxzPXRbMF0sbD0wO2w8dC5sZW5ndGg7KytsLGE9cyl7cz10W2xdO3ZhciB1PW4ocyxlKTsoMD5vJiZ1PjB8fG8+MCYmMD51KSYmci5wdXNoKGkoYSx1LHMsbykpLHU+PTAmJnIucHVzaChzLnNsaWNlKCkpLG89dX1yZXR1cm4gcn1mdW5jdGlvbiBzKHQsZSl7Zm9yKHZhciByPVtdLG89bih0W3QubGVuZ3RoLTFdLGUpLGE9dFt0Lmxlbmd0aC0xXSxzPXRbMF0sbD0wO2w8dC5sZW5ndGg7KytsLGE9cyl7cz10W2xdO3ZhciB1PW4ocyxlKTsoMD5vJiZ1PjB8fG8+MCYmMD51KSYmci5wdXNoKGkoYSx1LHMsbykpLDA+PXUmJnIucHVzaChzLnNsaWNlKCkpLG89dX1yZXR1cm4gcn12YXIgbD10KCJyb2J1c3QtZG90LXByb2R1Y3QiKSx1PXQoInJvYnVzdC1zdW0iKTtlLmV4cG9ydHM9byxlLmV4cG9ydHMucG9zaXRpdmU9YSxlLmV4cG9ydHMubmVnYXRpdmU9c30seyJyb2J1c3QtZG90LXByb2R1Y3QiOjE5MCwicm9idXN0LXN1bSI6NDY1fV0sMTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9aSh0WzBdLGVbMF0pLG49MTtuPHQubGVuZ3RoOysrbilyPW8ocixpKHRbbl0sZVtuXSkpO3JldHVybiByfXZhciBpPXQoInR3by1wcm9kdWN0Iiksbz10KCJyb2J1c3Qtc3VtIik7ZS5leHBvcnRzPW59LHsicm9idXN0LXN1bSI6NDY1LCJ0d28tcHJvZHVjdCI6NDc5fV0sMTkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMubG89dCx0aGlzLmhpPWUsdGhpcy5waXhlbHNQZXJEYXRhVW5pdD1yfWZ1bmN0aW9uIGkodCxlLHIsbixpKXtmb3IodmFyIG89MDszPm87KytvKXtmb3IodmFyIGE9ZCxzPW0sbD0wOzM+bDsrK2wpc1tsXT1hW2xdPXJbbF07c1szXT1hWzNdPTEsc1tvXSs9MSxoKHMscyxlKSxzWzNdPDAmJih0W29dPTEvMCksYVtvXS09MSxoKGEsYSxlKSxhWzNdPDAmJih0W29dPTEvMCk7dmFyIHU9KGFbMF0vYVszXS1zWzBdL3NbM10pKm4sYz0oYVsxXS9hWzNdLXNbMV0vc1szXSkqaTt0W29dPS4yNSpNYXRoLnNxcnQodSp1K2MqYyl9cmV0dXJuIHR9ZnVuY3Rpb24gbyh0LGUscixuLG8pe3ZhciBoPWUubW9kZWx8fGYsZD1lLnZpZXd8fGYsbT1lLnByb2plY3Rpb258fGYseT10LmJvdW5kcyxvPW98fGwoaCxkLG0seSksYj1vLmF4aXM7by5lZGdlczt1KHAsZCxoKSx1KHAsbSxwKTtmb3IodmFyIHg9ZyxfPTA7Mz5fOysrXyl4W19dLmxvPTEvMCx4W19dLmhpPS0oMS8wKSx4W19dLnBpeGVsc1BlckRhdGFVbml0PTEvMDt2YXIgdz1hKGMocCxwKSk7YyhwLHApO2Zvcih2YXIgTT0wOzM+TTsrK00pe3ZhciBrPShNKzEpJTMsQT0oTSsyKSUzLFQ9djt0OmZvcih2YXIgXz0wOzI+XzsrK18pe3ZhciBFPVtdO2lmKGJbTV08MCE9ISFfKXtUW01dPXlbX11bTV07Zm9yKHZhciBTPTA7Mj5TOysrUyl7VFtrXT15W1NeX11ba107Zm9yKHZhciBMPTA7Mj5MOysrTClUW0FdPXlbTF5TXl9dW0FdLEUucHVzaChULnNsaWNlKCkpfWZvcih2YXIgUz0wO1M8dy5sZW5ndGg7KytTKXtpZigwPT09RS5sZW5ndGgpY29udGludWUgdDtFPXMucG9zaXRpdmUoRSx3W1NdKX1mb3IodmFyIFM9MDtTPEUubGVuZ3RoOysrUylmb3IodmFyIEE9RVtTXSx6PWkodixwLEEscixuKSxMPTA7Mz5MOysrTCl4W0xdLmxvPU1hdGgubWluKHhbTF0ubG8sQVtMXSkseFtMXS5oaT1NYXRoLm1heCh4W0xdLmhpLEFbTF0pLEwhPT1NJiYoeFtMXS5waXhlbHNQZXJEYXRhVW5pdD1NYXRoLm1pbih4W0xdLnBpeGVsc1BlckRhdGFVbml0LE1hdGguYWJzKHpbTF0pKSl9fX1yZXR1cm4geH1lLmV4cG9ydHM9bzt2YXIgYT10KCJleHRyYWN0LWZydXN0dW0tcGxhbmVzIikscz10KCJzcGxpdC1wb2x5Z29uIiksbD10KCIuL2xpYi9jdWJlLmpzIiksdT10KCJnbC1tYXQ0L211bHRpcGx5IiksYz10KCJnbC1tYXQ0L3RyYW5zcG9zZSIpLGg9dCgiZ2wtdmVjNC90cmFuc2Zvcm1NYXQ0IiksZj1uZXcgRmxvYXQzMkFycmF5KFsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSkscD1uZXcgRmxvYXQzMkFycmF5KDE2KSxkPVswLDAsMCwxXSxtPVswLDAsMCwxXSxnPVtuZXcgbigxLzAsLSgxLzApLDEvMCksbmV3IG4oMS8wLC0oMS8wKSwxLzApLG5ldyBuKDEvMCwtKDEvMCksMS8wKV0sdj1bMCwwLDBdfSx7Ii4vbGliL2N1YmUuanMiOjE4MywiZXh0cmFjdC1mcnVzdHVtLXBsYW5lcyI6MTg4LCJnbC1tYXQ0L211bHRpcGx5IjoxNTAsImdsLW1hdDQvdHJhbnNwb3NlIjoxNTgsImdsLXZlYzQvdHJhbnNmb3JtTWF0NCI6MjM4LCJzcGxpdC1wb2x5Z29uIjoxODl9XSwxOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbiwgY29sb3I7XG5hdHRyaWJ1dGUgZmxvYXQgd2VpZ2h0O1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY29vcmRpbmF0ZXNbM107XG51bmlmb3JtIHZlYzQgY29sb3JzWzNdO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xudW5pZm9ybSBmbG9hdCBsaW5lV2lkdGg7XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyB2ZXJ0ZXhQb3NpdGlvbiA9IG1peChjb29yZGluYXRlc1swXSxcbiAgICBtaXgoY29vcmRpbmF0ZXNbMl0sIGNvb3JkaW5hdGVzWzFdLCAwLjUgKiAocG9zaXRpb24gKyAxLjApKSwgYWJzKHBvc2l0aW9uKSk7XG5cbiAgdmVjNCBjbGlwUG9zID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQodmVydGV4UG9zaXRpb24sIDEuMCk7XG4gIHZlYzIgY2xpcE9mZnNldCA9IChwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChjb2xvciwgMC4wKSkueHk7XG4gIHZlYzIgZGVsdGEgPSB3ZWlnaHQgKiBjbGlwT2Zmc2V0ICogc2NyZWVuU2hhcGU7XG4gIHZlYzIgbGluZU9mZnNldCA9IG5vcm1hbGl6ZSh2ZWMyKGRlbHRhLnksIC1kZWx0YS54KSkgLyBzY3JlZW5TaGFwZTtcblxuICBnbF9Qb3NpdGlvbiAgID0gdmVjNChjbGlwUG9zLnh5ICsgY2xpcFBvcy53ICogMC41ICogbGluZVdpZHRoICogbGluZU9mZnNldCwgY2xpcFBvcy56LCBjbGlwUG9zLncpO1xuICBmcmFnQ29sb3IgICAgID0gY29sb3IueCAqIGNvbG9yc1swXSArIGNvbG9yLnkgKiBjb2xvcnNbMV0gKyBjb2xvci56ICogY29sb3JzWzJdO1xufVxuIixvPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xufSI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsaSxvLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjMyJ9LHtuYW1lOiJ3ZWlnaHQiLHR5cGU6ImZsb2F0In1dKX19LHsiZ2wtc2hhZGVyIjoyMDh9XSwxOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLmdsPXQsdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW4sdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5ib3VuZHM9W1stMWUzLC0xZTMsLTFlM10sWzFlMywxZTMsMWUzXV0sdGhpcy5wb3NpdGlvbj1bMCwwLDBdLHRoaXMubGluZVdpZHRoPVsyLDIsMl0sdGhpcy5jb2xvcnM9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmVuYWJsZWQ9WyEwLCEwLCEwXSx0aGlzLmRyYXdTaWRlcz1bITAsITAsITBdLHRoaXMuYXhlcz1udWxsfWZ1bmN0aW9uIGkodCxlKXtmdW5jdGlvbiByKHQsZSxyLG4sbyxhKXt2YXIgcz1bdCxlLHIsMCwwLDAsMV07c1tuKzNdPTEsc1tuXT1vLGkucHVzaC5hcHBseShpLHMpLHNbNl09LTEsaS5wdXNoLmFwcGx5KGkscyksc1tuXT1hLGkucHVzaC5hcHBseShpLHMpLGkucHVzaC5hcHBseShpLHMpLHNbNl09MSxpLnB1c2guYXBwbHkoaSxzKSxzW25dPW8saS5wdXNoLmFwcGx5KGkscyl9dmFyIGk9W107cigwLDAsMCwwLDAsMSkscigwLDAsMCwxLDAsMSkscigwLDAsMCwyLDAsMSkscigxLDAsMCwxLC0xLDEpLHIoMSwwLDAsMiwtMSwxKSxyKDAsMSwwLDAsLTEsMSkscigwLDEsMCwyLC0xLDEpLHIoMCwwLDEsMCwtMSwxKSxyKDAsMCwxLDEsLTEsMSk7dmFyIGw9byh0LGkpLHU9YSh0LFt7dHlwZTp0LkZMT0FULGJ1ZmZlcjpsLHNpemU6MyxvZmZzZXQ6MCxzdHJpZGU6Mjh9LHt0eXBlOnQuRkxPQVQsYnVmZmVyOmwsc2l6ZTozLG9mZnNldDoxMixzdHJpZGU6Mjh9LHt0eXBlOnQuRkxPQVQsYnVmZmVyOmwsc2l6ZToxLG9mZnNldDoyNCxzdHJpZGU6Mjh9XSksYz1zKHQpO2MuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGMuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0xLGMuYXR0cmlidXRlcy53ZWlnaHQubG9jYXRpb249Mjt2YXIgaD1uZXcgbih0LGwsdSxjKTtyZXR1cm4gaC51cGRhdGUoZSksaH12YXIgbz10KCJnbC1idWZmZXIiKSxhPXQoImdsLXZhbyIpLHM9dCgiLi9zaGFkZXJzL2luZGV4Iik7ZS5leHBvcnRzPWk7dmFyIGw9WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdLHU9bi5wcm90b3R5cGUsYz1bMCwwLDBdLGg9WzAsMCwwXSxmPVswLDBdO3UuaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe3JldHVybiExfSx1LmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXt9LHUuZHJhdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsLHI9dGhpcy52YW8sbj10aGlzLnNoYWRlcjtyLmJpbmQoKSxuLmJpbmQoKTt2YXIgaSxvPXQubW9kZWx8fGwsYT10LnZpZXd8fGwscz10LnByb2plY3Rpb258fGw7dGhpcy5heGVzJiYoaT10aGlzLmF4ZXMubGFzdEN1YmVQcm9wcy5heGlzKTtmb3IodmFyIHU9YyxwPWgsZD0wOzM+ZDsrK2QpaSYmaVtkXTwwPyh1W2RdPXRoaXMuYm91bmRzWzBdW2RdLHBbZF09dGhpcy5ib3VuZHNbMV1bZF0pOih1W2RdPXRoaXMuYm91bmRzWzFdW2RdLHBbZF09dGhpcy5ib3VuZHNbMF1bZF0pO2ZbMF09ZS5kcmF3aW5nQnVmZmVyV2lkdGgsZlsxXT1lLmRyYXdpbmdCdWZmZXJIZWlnaHQsbi51bmlmb3Jtcy5tb2RlbD1vLG4udW5pZm9ybXMudmlldz1hLG4udW5pZm9ybXMucHJvamVjdGlvbj1zLG4udW5pZm9ybXMuY29vcmRpbmF0ZXM9W3RoaXMucG9zaXRpb24sdSxwXSxuLnVuaWZvcm1zLmNvbG9ycz10aGlzLmNvbG9ycyxuLnVuaWZvcm1zLnNjcmVlblNoYXBlPWY7Zm9yKHZhciBkPTA7Mz5kOysrZCluLnVuaWZvcm1zLmxpbmVXaWR0aD10aGlzLmxpbmVXaWR0aFtkXSp0aGlzLnBpeGVsUmF0aW8sdGhpcy5lbmFibGVkW2RdJiYoci5kcmF3KGUuVFJJQU5HTEVTLDYsNipkKSx0aGlzLmRyYXdTaWRlc1tkXSYmci5kcmF3KGUuVFJJQU5HTEVTLDEyLDE4KzEyKmQpKTtyLnVuYmluZCgpfSx1LnVwZGF0ZT1mdW5jdGlvbih0KXt0JiYoImJvdW5kcyJpbiB0JiYodGhpcy5ib3VuZHM9dC5ib3VuZHMpLCJwb3NpdGlvbiJpbiB0JiYodGhpcy5wb3NpdGlvbj10LnBvc2l0aW9uKSwibGluZVdpZHRoImluIHQmJih0aGlzLmxpbmVXaWR0aD10LmxpbmVXaWR0aCksImNvbG9ycyJpbiB0JiYodGhpcy5jb2xvcnM9dC5jb2xvcnMpLCJlbmFibGVkImluIHQmJih0aGlzLmVuYWJsZWQ9dC5lbmFibGVkKSwiZHJhd1NpZGVzImluIHQmJih0aGlzLmRyYXdTaWRlcz10LmRyYXdTaWRlcykpfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZhby5kaXNwb3NlKCksdGhpcy5idWZmZXIuZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzL2luZGV4IjoxOTIsImdsLWJ1ZmZlciI6MTI5LCJnbC12YW8iOjIzN31dLDE5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dGhpcy5tb3VzZT1bLTEsLTFdLHRoaXMuc2NyZWVuPW51bGwsdGhpcy5kaXN0YW5jZT0xLzAsdGhpcy5pbmRleD1udWxsLHRoaXMuZGF0YUNvb3JkaW5hdGU9bnVsbCx0aGlzLmRhdGFQb3NpdGlvbj1udWxsLHRoaXMub2JqZWN0PW51bGwsdGhpcy5kYXRhPW51bGx9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPW51bGw7dHJ5e3I9dC5nZXRDb250ZXh0KCJ3ZWJnbCIsZSkscnx8KHI9dC5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLGUpKX1jYXRjaChuKXtyZXR1cm4gbnVsbH1yZXR1cm4gcn1mdW5jdGlvbiBvKHQpe3ZhciBlPU1hdGgucm91bmQoTWF0aC5sb2coTWF0aC5hYnModCkpL01hdGgubG9nKDEwKSk7aWYoMD5lKXt2YXIgcj1NYXRoLnJvdW5kKE1hdGgucG93KDEwLC1lKSk7cmV0dXJuIE1hdGguY2VpbCh0KnIpL3J9aWYoZT4wKXt2YXIgcj1NYXRoLnJvdW5kKE1hdGgucG93KDEwLGUpKTtyZXR1cm4gTWF0aC5jZWlsKHQvcikqcn1yZXR1cm4gTWF0aC5jZWlsKHQpfWZ1bmN0aW9uIGEodCl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdD90OiEwfWZ1bmN0aW9uIHModCl7ZnVuY3Rpb24gZSgpe2lmKCFfJiZHLmF1dG9SZXNpemUpe3ZhciB0PXcucGFyZW50Tm9kZSxlPTEscj0xO3QmJnQhPT1kb2N1bWVudC5ib2R5PyhlPXQuY2xpZW50V2lkdGgscj10LmNsaWVudEhlaWdodCk6KGU9d2luZG93LmlubmVyV2lkdGgscj13aW5kb3cuaW5uZXJIZWlnaHQpO3ZhciBuPTB8TWF0aC5jZWlsKGUqRy5waXhlbFJhdGlvKSxpPTB8TWF0aC5jZWlsKHIqRy5waXhlbFJhdGlvKTtpZihuIT09dy53aWR0aHx8aSE9PXcuaGVpZ2h0KXt3LndpZHRoPW4sdy5oZWlnaHQ9aTt2YXIgbz13LnN0eWxlO28ucG9zaXRpb249by5wb3NpdGlvbnx8ImFic29sdXRlIixvLmxlZnQ9IjBweCIsby50b3A9IjBweCIsby53aWR0aD1lKyJweCIsby5oZWlnaHQ9cisicHgiLEY9ITB9fX1mdW5jdGlvbiByKCl7Zm9yKHZhciB0PVIubGVuZ3RoLGU9Ty5sZW5ndGgscj0wO2U+cjsrK3IpRFtyXT0wO3Q6Zm9yKHZhciByPTA7dD5yOysrcil7dmFyIG49UltyXSxpPW4ucGlja1Nsb3RzO2lmKGkpe2Zvcih2YXIgbz0wO2U+bzsrK28paWYoRFtvXStpPDI1NSl7altyXT1vLG4uc2V0UGlja0Jhc2UoRFtvXSsxKSxEW29dKz1pO2NvbnRpbnVlIHR9dmFyIGE9ZihrLHEpO2pbcl09ZSxPLnB1c2goYSksRC5wdXNoKGkpLG4uc2V0UGlja0Jhc2UoMSksZSs9MX1lbHNlIGpbcl09LTF9Zm9yKDtlPjAmJjA9PT1EW2UtMV07KUQucG9wKCksTy5wb3AoKS5kaXNwb3NlKCl9ZnVuY3Rpb24gcygpe3JldHVybiBHLmNvbnRleHRMb3N0PyEwOnZvaWQoay5pc0NvbnRleHRMb3N0KCkmJihHLmNvbnRleHRMb3N0PSEwLEcubW91c2VMaXN0ZW5lci5lbmFibGVkPSExLEcuc2VsZWN0aW9uLm9iamVjdD1udWxsLEcub25jb250ZXh0bG9zcyYmRy5vbmNvbnRleHRsb3NzKCkpKX1mdW5jdGlvbiB5KCl7aWYoIXMoKSl7ay5jb2xvck1hc2soITAsITAsITAsITApLGsuZGVwdGhNYXNrKCEwKSxrLmRpc2FibGUoay5CTEVORCksay5lbmFibGUoay5ERVBUSF9URVNUKTtmb3IodmFyIHQ9Ui5sZW5ndGgsZT1PLmxlbmd0aCxyPTA7ZT5yOysrcil7dmFyIG49T1tyXTtuLnNoYXBlPUgsbi5iZWdpbigpO2Zvcih2YXIgaT0wO3Q+aTsrK2kpaWYoaltpXT09PXIpe3ZhciBvPVJbaV07by5kcmF3UGljayYmKG8ucGl4ZWxSYXRpbz0xLG8uZHJhd1BpY2soVikpfW4uZW5kKCl9fX1mdW5jdGlvbiBiKCl7aWYoIXMoKSl7ZSgpO3ZhciB0PUcuY2FtZXJhLnRpY2soKTtWLnZpZXc9Ry5jYW1lcmEubWF0cml4LEY9Rnx8dCxOPU58fHQsSS5waXhlbFJhdGlvPUcucGl4ZWxSYXRpbyxDLnBpeGVsUmF0aW89Ry5waXhlbFJhdGlvO3ZhciByPVIubGVuZ3RoLG49V1swXSxpPVdbMV07blswXT1uWzFdPW5bMl09MS8wLGlbMF09aVsxXT1pWzJdPS0oMS8wKTtmb3IodmFyIGE9MDtyPmE7KythKXt2YXIgbD1SW2FdO2wucGl4ZWxSYXRpbz1HLnBpeGVsUmF0aW8sbC5heGVzPUcuYXhlcyxGPUZ8fCEhbC5kaXJ0eSxOPU58fCEhbC5kaXJ0eTt2YXIgdT1sLmJvdW5kcztpZih1KWZvcih2YXIgaD11WzBdLGY9dVsxXSxwPTA7Mz5wOysrcCluW3BdPU1hdGgubWluKG5bcF0saFtwXSksaVtwXT1NYXRoLm1heChpW3BdLGZbcF0pfXZhciBtPUcuYm91bmRzO2lmKEcuYXV0b0JvdW5kcylmb3IodmFyIHA9MDszPnA7KytwKXtpZihpW3BdPG5bcF0pbltwXT0tMSxpW3BdPTE7ZWxzZXtuW3BdPT09aVtwXSYmKG5bcF0tPTEsaVtwXSs9MSk7dmFyIHY9LjA1KihpW3BdLW5bcF0pO25bcF09bltwXS12LGlbcF09aVtwXSt2fW1bMF1bcF09bltwXSxtWzFdW3BdPWlbcF19Zm9yKHZhciBiPSExLHA9MDszPnA7KytwKWI9Ynx8WlswXVtwXSE9PW1bMF1bcF18fFpbMV1bcF0hPT1tWzFdW3BdLFpbMF1bcF09bVswXVtwXSxaWzFdW3BdPW1bMV1bcF07aWYoYil7Zm9yKHZhciB4PVswLDAsMF0sYT0wOzM+YTsrK2EpeFthXT1vKChtWzFdW2FdLW1bMF1bYV0pLzEwKTtJLmF1dG9UaWNrcz9JLnVwZGF0ZSh7Ym91bmRzOm0sdGlja1NwYWNpbmc6eH0pOkkudXBkYXRlKHtib3VuZHM6bX0pfU49Tnx8YixGPUZ8fGI7dmFyIF89ay5kcmF3aW5nQnVmZmVyV2lkdGgsdz1rLmRyYXdpbmdCdWZmZXJIZWlnaHQ7cVswXT1fLHFbMV09dyxIWzBdPTB8TWF0aC5tYXgoXy9HLnBpeGVsUmF0aW8sMSksSFsxXT0wfE1hdGgubWF4KHcvRy5waXhlbFJhdGlvLDEpLGcoQixHLmZvdnksXy93LEcuek5lYXIsRy56RmFyKTtmb3IodmFyIGE9MDsxNj5hOysrYSlVW2FdPTA7VVsxNV09MTtmb3IodmFyIE09MCxhPTA7Mz5hOysrYSlNPU1hdGgubWF4KE0sbVsxXVthXS1tWzBdW2FdKTtmb3IodmFyIGE9MDszPmE7KythKUcuYXV0b1NjYWxlP1VbNSphXT1HLmFzcGVjdFthXS8obVsxXVthXS1tWzBdW2FdKTpVWzUqYV09MS9NLEcuYXV0b0NlbnRlciYmKFVbMTIrYV09LjUqLVVbNSphXSoobVswXVthXSttWzFdW2FdKSk7Zm9yKHZhciBhPTA7cj5hOysrYSl7dmFyIGw9UlthXTtsLmF4ZXNCb3VuZHM9bSxHLmNsaXBUb0JvdW5kcyYmKGwuY2xpcEJvdW5kcz1tKX1pZihULm9iamVjdCYmKEcuc25hcFRvRGF0YT9DLnBvc2l0aW9uPVQuZGF0YUNvb3JkaW5hdGU6Qy5wb3NpdGlvbj1ULmRhdGFQb3NpdGlvbixDLmJvdW5kcz1tKSxOJiYoTj0hMSx5KCkpLEYpe0cuYXhlc1BpeGVscz1jKEcuYXhlcyxWLF8sdyksRy5vbnJlbmRlciYmRy5vbnJlbmRlcigpLGsuYmluZEZyYW1lYnVmZmVyKGsuRlJBTUVCVUZGRVIsbnVsbCksay52aWV3cG9ydCgwLDAsXyx3KTt2YXIgQT1HLmNsZWFyQ29sb3I7ay5jbGVhckNvbG9yKEFbMF0sQVsxXSxBWzJdLEFbM10pLGsuY2xlYXIoay5DT0xPUl9CVUZGRVJfQklUfGsuREVQVEhfQlVGRkVSX0JJVCksay5kZXB0aE1hc2soITApLGsuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxrLmVuYWJsZShrLkRFUFRIX1RFU1QpLGsuZGVwdGhGdW5jKGsuTEVRVUFMKSxrLmRpc2FibGUoay5CTEVORCksay5kaXNhYmxlKGsuQ1VMTF9GQUNFKTt2YXIgTD0hMTtJLmVuYWJsZSYmKEw9THx8SS5pc1RyYW5zcGFyZW50KCksSS5kcmF3KFYpKSxDLmF4ZXM9SSxULm9iamVjdCYmQy5kcmF3KFYpLGsuZGlzYWJsZShrLkNVTExfRkFDRSk7Zm9yKHZhciBhPTA7cj5hOysrYSl7dmFyIGw9UlthXTtsLmF4ZXM9SSxsLnBpeGVsUmF0aW89Ry5waXhlbFJhdGlvLGwuaXNPcGFxdWUmJmwuaXNPcGFxdWUoKSYmbC5kcmF3KFYpLGwuaXNUcmFuc3BhcmVudCYmbC5pc1RyYW5zcGFyZW50KCkmJihMPSEwKX1pZihMKXtFLnNoYXBlPXEsRS5iaW5kKCksay5jbGVhcihrLkRFUFRIX0JVRkZFUl9CSVQpLGsuY29sb3JNYXNrKCExLCExLCExLCExKSxrLmRlcHRoTWFzayghMCksay5kZXB0aEZ1bmMoay5MRVNTKSxJLmVuYWJsZSYmSS5pc1RyYW5zcGFyZW50KCkmJkkuZHJhd1RyYW5zcGFyZW50KFYpO2Zvcih2YXIgYT0wO3I+YTsrK2Epe3ZhciBsPVJbYV07bC5pc09wYXF1ZSYmbC5pc09wYXF1ZSgpJiZsLmRyYXcoVil9ay5lbmFibGUoay5CTEVORCksay5ibGVuZEVxdWF0aW9uKGsuRlVOQ19BREQpLGsuYmxlbmRGdW5jKGsuT05FLGsuT05FX01JTlVTX1NSQ19BTFBIQSksay5jb2xvck1hc2soITAsITAsITAsITApLGsuZGVwdGhNYXNrKCExKSxrLmNsZWFyQ29sb3IoMCwwLDAsMCksay5jbGVhcihrLkNPTE9SX0JVRkZFUl9CSVQpLEkuaXNUcmFuc3BhcmVudCgpJiZJLmRyYXdUcmFuc3BhcmVudChWKTtmb3IodmFyIGE9MDtyPmE7KythKXt2YXIgbD1SW2FdO2wuaXNUcmFuc3BhcmVudCYmbC5pc1RyYW5zcGFyZW50KCkmJmwuZHJhd1RyYW5zcGFyZW50KFYpfWsuYmluZEZyYW1lYnVmZmVyKGsuRlJBTUVCVUZGRVIsbnVsbCksay5ibGVuZEZ1bmMoay5PTkUsay5PTkVfTUlOVVNfU1JDX0FMUEhBKSxrLmRpc2FibGUoay5ERVBUSF9URVNUKSxTLmJpbmQoKSxFLmNvbG9yWzBdLmJpbmQoMCksUy51bmlmb3Jtcy5hY2N1bUJ1ZmZlcj0wLGQoayksay5kaXNhYmxlKGsuQkxFTkQpfUY9ITE7Zm9yKHZhciBhPTA7cj5hOysrYSlSW2FdLmRpcnR5PSExfX19ZnVuY3Rpb24geCgpe198fEcuY29udGV4dExvc3R8fChyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoeCksYigpKX10PXR8fHt9O3ZhciBfPSExLHc9KHQucGl4ZWxSYXRpb3x8cGFyc2VGbG9hdCh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyksdC5jYW52YXMpO2lmKCF3KWlmKHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdC5jb250YWluZXIpe3ZhciBNPXQuY29udGFpbmVyO00uYXBwZW5kQ2hpbGQodyl9ZWxzZSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHcpO3ZhciBrPXQuZ2w7aWYoa3x8KGs9aSh3LHQuZ2xPcHRpb25zfHx7cHJlbXVsdGlwbGllZEFscGhhOiEwLGFudGlhbGlhczohMH0pKSwhayl0aHJvdyBuZXcgRXJyb3IoIndlYmdsIG5vdCBzdXBwb3J0ZWQiKTt2YXIgQT10LmJvdW5kc3x8W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sVD1uZXcgbixFPXAoayxbay5kcmF3aW5nQnVmZmVyV2lkdGgsay5kcmF3aW5nQnVmZmVySGVpZ2h0XSx7cHJlZmVyRmxvYXQ6ITB9KSxTPXYoayksTD10LmNhbWVyYXx8e2V5ZTpbMiwwLDBdLGNlbnRlcjpbMCwwLDBdLHVwOlswLDEsMF0sem9vbU1pbjouMSx6b29tTWF4OjEwMCxtb2RlOiJ0dXJudGFibGUifSx6PXQuYXhlc3x8e30sST11KGsseik7SS5lbmFibGU9IXouZGlzYWJsZTt2YXIgUD10LnNwaWtlc3x8e30sQz1oKGssUCksUj1bXSxqPVtdLEQ9W10sTz1bXSxGPSEwLE49ITAsQj1uZXcgQXJyYXkoMTYpLFU9bmV3IEFycmF5KDE2KSxWPXt2aWV3Om51bGwscHJvamVjdGlvbjpCLG1vZGVsOlV9LE49ITAscT1bay5kcmF3aW5nQnVmZmVyV2lkdGgsay5kcmF3aW5nQnVmZmVySGVpZ2h0XSxHPXtnbDprLGNvbnRleHRMb3N0OiExLHBpeGVsUmF0aW86dC5waXhlbFJhdGlvfHxwYXJzZUZsb2F0KHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKSxjYW52YXM6dyxzZWxlY3Rpb246VCxjYW1lcmE6bCh3LEwpLGF4ZXM6SSxheGVzUGl4ZWxzOm51bGwsc3Bpa2VzOkMsYm91bmRzOkEsb2JqZWN0czpSLHNoYXBlOnEsYXNwZWN0OnQuYXNwZWN0UmF0aW98fFsxLDEsMV0scGlja1JhZGl1czp0LnBpY2tSYWRpdXN8fDEwLHpOZWFyOnQuek5lYXJ8fC4wMSx6RmFyOnQuekZhcnx8MWUzLGZvdnk6dC5mb3Z5fHxNYXRoLlBJLzQsY2xlYXJDb2xvcjp0LmNsZWFyQ29sb3J8fFswLDAsMCwwXSxhdXRvUmVzaXplOmEodC5hdXRvUmVzaXplKSxhdXRvQm91bmRzOmEodC5hdXRvQm91bmRzKSxhdXRvU2NhbGU6ISF0LmF1dG9TY2FsZSxhdXRvQ2VudGVyOmEodC5hdXRvQ2VudGVyKSxjbGlwVG9Cb3VuZHM6YSh0LmNsaXBUb0JvdW5kcyksc25hcFRvRGF0YTohIXQuc25hcFRvRGF0YSxvbnNlbGVjdDp0Lm9uc2VsZWN0fHxudWxsLG9ucmVuZGVyOnQub25yZW5kZXJ8fG51bGwsb25jbGljazp0Lm9uY2xpY2t8fG51bGwsY2FtZXJhUGFyYW1zOlYsb25jb250ZXh0bG9zczpudWxsLG1vdXNlTGlzdGVuZXI6bnVsbH0sSD1bay5kcmF3aW5nQnVmZmVyV2lkdGgvRy5waXhlbFJhdGlvfDAsay5kcmF3aW5nQnVmZmVySGVpZ2h0L0cucGl4ZWxSYXRpb3wwXTtHLmF1dG9SZXNpemUmJmUoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixlKSxHLnVwZGF0ZT1mdW5jdGlvbih0KXtffHwodD10fHx7fSxGPSEwLE49ITApfSxHLmFkZD1mdW5jdGlvbih0KXtffHwodC5heGVzPUksUi5wdXNoKHQpLGoucHVzaCgtMSksRj0hMCxOPSEwLHIoKSl9LEcucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKCFfKXt2YXIgZT1SLmluZGV4T2YodCk7MD5lfHwoUi5zcGxpY2UoZSwxKSxqLnBvcCgpLEY9ITAsTj0hMCxyKCkpfX0sRy5kaXNwb3NlPWZ1bmN0aW9uKCl7aWYoIV8mJihfPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLGUpLHcucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIscyksRy5tb3VzZUxpc3RlbmVyLmVuYWJsZWQ9ITEsIUcuY29udGV4dExvc3QpKXtJLmRpc3Bvc2UoKSxDLmRpc3Bvc2UoKTtmb3IodmFyIHQ9MDt0PFIubGVuZ3RoOysrdClSW3RdLmRpc3Bvc2UoKTtFLmRpc3Bvc2UoKTtmb3IodmFyIHQ9MDt0PE8ubGVuZ3RoOysrdClPW3RdLmRpc3Bvc2UoKTtTLmRpc3Bvc2UoKSxrPW51bGwsST1udWxsLEM9bnVsbCxSPVtdfX07dmFyIFg9ITEsWT0wO0cubW91c2VMaXN0ZW5lcj1tKHcsZnVuY3Rpb24odCxlLHIpe2lmKCFfKXt2YXIgbj1PLmxlbmd0aCxpPVIubGVuZ3RoLG89VC5vYmplY3Q7VC5kaXN0YW5jZT0xLzAsVC5tb3VzZVswXT1lLFQubW91c2VbMV09cixULm9iamVjdD1udWxsLFQuc2NyZWVuPW51bGwsVC5kYXRhQ29vcmRpbmF0ZT1ULmRhdGFQb3NpdGlvbj1udWxsO3ZhciBhPSExO2lmKHQmJlkpWD0hMDtlbHNle1gmJihOPSEwKSxYPSExO2Zvcih2YXIgcz0wO24+czsrK3Mpe3ZhciBsPU9bc10ucXVlcnkoZSxIWzFdLXItMSxHLnBpY2tSYWRpdXMpO2lmKGwpe2lmKGwuZGlzdGFuY2U+VC5kaXN0YW5jZSljb250aW51ZTtmb3IodmFyIHU9MDtpPnU7Kyt1KXt2YXIgYz1SW3VdO2lmKGpbdV09PT1zKXt2YXIgaD1jLnBpY2sobCk7aCYmKFQuYnV0dG9ucz10LFQuc2NyZWVuPWwuY29vcmQsVC5kaXN0YW5jZT1sLmRpc3RhbmNlLFQub2JqZWN0PWMsVC5pbmRleD1oLmRpc3RhbmNlLFQuZGF0YVBvc2l0aW9uPWgucG9zaXRpb24sVC5kYXRhQ29vcmRpbmF0ZT1oLmRhdGFDb29yZGluYXRlLFQuZGF0YT1oLGE9ITApfX19fX1vJiZvIT09VC5vYmplY3QmJihvLmhpZ2hsaWdodCYmby5oaWdobGlnaHQobnVsbCksRj0hMCksVC5vYmplY3QmJihULm9iamVjdC5oaWdobGlnaHQmJlQub2JqZWN0LmhpZ2hsaWdodChULmRhdGEpLEY9ITApLGE9YXx8VC5vYmplY3QhPT1vLGEmJkcub25zZWxlY3QmJkcub25zZWxlY3QoVCksMSZ0JiYhKDEmWSkmJkcub25jbGljayYmRy5vbmNsaWNrKFQpLFk9dH19KSx3LmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLHMpO3ZhciBXPVtbMS8wLDEvMCwxLzBdLFstKDEvMCksLSgxLzApLC0oMS8wKV1dLFo9W1dbMF0uc2xpY2UoKSxXWzFdLnNsaWNlKCldO3JldHVybiB4KCksRy5yZWRyYXc9ZnVuY3Rpb24oKXtffHwoRj0hMCxiKCkpfSxHfWUuZXhwb3J0cz1zO3ZhciBsPXQoIjNkLXZpZXctY29udHJvbHMiKSx1PXQoImdsLWF4ZXMzZCIpLGM9dCgiZ2wtYXhlczNkL3Byb3BlcnRpZXMiKSxoPXQoImdsLXNwaWtlczNkIiksZj10KCJnbC1zZWxlY3Qtc3RhdGljIikscD10KCJnbC1mYm8iKSxkPXQoImEtYmlnLXRyaWFuZ2xlIiksbT10KCJtb3VzZS1jaGFuZ2UiKSxnPXQoImdsLW1hdDQvcGVyc3BlY3RpdmUiKSx2PXQoIi4vbGliL3NoYWRlciIpfSx7Ii4vbGliL3NoYWRlciI6MTc3LCIzZC12aWV3LWNvbnRyb2xzIjoxNzgsImEtYmlnLXRyaWFuZ2xlIjoxODAsImdsLWF4ZXMzZCI6MTgxLCJnbC1heGVzM2QvcHJvcGVydGllcyI6MTkxLCJnbC1mYm8iOjEzNCwiZ2wtbWF0NC9wZXJzcGVjdGl2ZSI6MTUxLCJnbC1zZWxlY3Qtc3RhdGljIjoyMDcsImdsLXNwaWtlczNkIjoxOTMsIm1vdXNlLWNoYW5nZSI6NDQ0fV0sMTk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17dmVydGV4OiJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzIgb2Zmc2V0O1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5cbnVuaWZvcm0gbWF0MyB2aWV3VHJhbnNmb3JtO1xudW5pZm9ybSB2ZWMyIHBpeGVsU2NhbGU7XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbnZlYzQgY29tcHV0ZVBvc2l0aW9uXzFfMCh2ZWMyIHBvc2l0aW9uLCB2ZWMyIG9mZnNldCwgbWF0MyB2aWV3LCB2ZWMyIHNjYWxlKSB7XG4gIHZlYzMgeHBvc2l0aW9uID0gdmlldyAqIHZlYzMocG9zaXRpb24sIDEuMCk7XG4gIHJldHVybiB2ZWM0KFxuICAgIHhwb3NpdGlvbi54eSArIHNjYWxlICogb2Zmc2V0ICogeHBvc2l0aW9uLnosXG4gICAgMCxcbiAgICB4cG9zaXRpb24ueik7XG59XG5cblxuXG5cbnZvaWQgbWFpbigpIHtcbiAgZnJhZ0NvbG9yID0gY29sb3I7XG5cbiAgZ2xfUG9zaXRpb24gPSBjb21wdXRlUG9zaXRpb25fMV8wKFxuICAgIHBvc2l0aW9uLFxuICAgIG9mZnNldCxcbiAgICB2aWV3VHJhbnNmb3JtLFxuICAgIHBpeGVsU2NhbGUpO1xufVxuIixmcmFnbWVudDoicHJlY2lzaW9uIGxvd3AgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChmcmFnQ29sb3IucmdiICogZnJhZ0NvbG9yLmEsIGZyYWdDb2xvci5hKTtcbn1cbiIscGlja1ZlcnRleDoicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWMyIG9mZnNldDtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIG1hdDMgdmlld1RyYW5zZm9ybTtcbnVuaWZvcm0gdmVjMiBwaXhlbFNjYWxlO1xudW5pZm9ybSB2ZWM0IHBpY2tPZmZzZXQ7XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbnZlYzQgY29tcHV0ZVBvc2l0aW9uXzFfMCh2ZWMyIHBvc2l0aW9uLCB2ZWMyIG9mZnNldCwgbWF0MyB2aWV3LCB2ZWMyIHNjYWxlKSB7XG4gIHZlYzMgeHBvc2l0aW9uID0gdmlldyAqIHZlYzMocG9zaXRpb24sIDEuMCk7XG4gIHJldHVybiB2ZWM0KFxuICAgIHhwb3NpdGlvbi54eSArIHNjYWxlICogb2Zmc2V0ICogeHBvc2l0aW9uLnosXG4gICAgMCxcbiAgICB4cG9zaXRpb24ueik7XG59XG5cblxuXG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBmcmFnSWQgPSBpZCArIHBpY2tPZmZzZXQ7XG5cbiAgZnJhZ0lkLnkgKz0gZmxvb3IoZnJhZ0lkLnggLyAyNTYuMCk7XG4gIGZyYWdJZC54IC09IGZsb29yKGZyYWdJZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZnJhZ0lkLnogKz0gZmxvb3IoZnJhZ0lkLnkgLyAyNTYuMCk7XG4gIGZyYWdJZC55IC09IGZsb29yKGZyYWdJZC55IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZnJhZ0lkLncgKz0gZmxvb3IoZnJhZ0lkLnogLyAyNTYuMCk7XG4gIGZyYWdJZC56IC09IGZsb29yKGZyYWdJZC56IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZnJhZ0NvbG9yID0gZnJhZ0lkIC8gMjU1LjA7XG5cbiAgZ2xfUG9zaXRpb24gPSBjb21wdXRlUG9zaXRpb25fMV8wKFxuICAgIHBvc2l0aW9uLFxuICAgIG9mZnNldCxcbiAgICB2aWV3VHJhbnNmb3JtLFxuICAgIHBpeGVsU2NhbGUpO1xufVxuIixwaWNrRnJhZ21lbnQ6InByZWNpc2lvbiBsb3dwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGZyYWdDb2xvcjtcbn1cbiJ9fSx7fV0sMTk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7aWYodCBpbiBmKXJldHVybiBmW3RdO3ZhciBlPWModCx7cG9seWdvbnM6ITAsZm9udDoic2Fucy1zZXJpZiIsdGV4dEFsaWduOiJsZWZ0Iix0ZXh0QmFzZWxpbmU6ImFscGhhYmV0aWMifSkscj1bXSxuPVtdO2UuZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDsrK2Upe3ZhciBpPXRbKGUrdC5sZW5ndGgtMSkldC5sZW5ndGhdLG89dFtlXSxhPXRbKGUrMSkldC5sZW5ndGhdLHM9dFsoZSsyKSV0Lmxlbmd0aF0sbD1vWzBdLWlbMF0sdT1vWzFdLWlbMV0sYz1NYXRoLnNxcnQobCpsK3UqdSk7bC89Yyx1Lz1jLHIucHVzaChpWzBdLGlbMV0rMS40KSxuLnB1c2godSwtbCksci5wdXNoKGlbMF0saVsxXSsxLjQpLG4ucHVzaCgtdSxsKSxyLnB1c2gob1swXSxvWzFdKzEuNCksbi5wdXNoKC11LGwpLHIucHVzaChvWzBdLG9bMV0rMS40KSxuLnB1c2goLXUsbCksci5wdXNoKGlbMF0saVsxXSsxLjQpLG4ucHVzaCh1LC1sKSxyLnB1c2gob1swXSxvWzFdKzEuNCksbi5wdXNoKHUsLWwpO3ZhciBoPXNbMF0tYVswXSxmPXNbMV0tYVsxXSxwPU1hdGguc3FydChoKmgrZipmKTtoLz1wLGYvPXAsci5wdXNoKG9bMF0sb1sxXSsxLjQpLG4ucHVzaCh1LC1sKSxyLnB1c2gob1swXSxvWzFdKzEuNCksbi5wdXNoKC11LGwpLHIucHVzaChhWzBdLGFbMV0rMS40KSxuLnB1c2goLWYsaCksci5wdXNoKGFbMF0sYVsxXSsxLjQpLG4ucHVzaCgtZixoKSxyLnB1c2gob1swXSxvWzFdKzEuNCksbi5wdXNoKGYsLWgpLHIucHVzaChhWzBdLGFbMV0rMS40KSxuLnB1c2goZiwtaCl9fSl9KTtmb3IodmFyIGk9WzEvMCwxLzAsLSgxLzApLC0oMS8wKV0sbz0wO288ci5sZW5ndGg7bys9Milmb3IodmFyIGE9MDsyPmE7KythKWlbYV09TWF0aC5taW4oaVthXSxyW28rYV0pLGlbMithXT1NYXRoLm1heChpWzIrYV0scltvK2FdKTtyZXR1cm4gZlt0XT17Y29vcmRzOnIsbm9ybWFsczpuLGJvdW5kczppfX1mdW5jdGlvbiBpKHQsZSxyLG4saSxvLGEpe3RoaXMucGxvdD10LHRoaXMuc2hhZGVyPWUsdGhpcy5waWNrU2hhZGVyPXIsdGhpcy5wb3NpdGlvbkJ1ZmZlcj1uLHRoaXMub2Zmc2V0QnVmZmVyPWksdGhpcy5jb2xvckJ1ZmZlcj1vLHRoaXMuaWRCdWZmZXI9YSx0aGlzLmJvdW5kcz1bMS8wLDEvMCwtKDEvMCksLSgxLzApXSx0aGlzLm51bVBvaW50cz0wLHRoaXMubnVtVmVydGljZXM9MCx0aGlzLnBpY2tPZmZzZXQ9MCx0aGlzLnBvaW50cz1udWxsfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj10LmdsLG49YShyLGgudmVydGV4LGguZnJhZ21lbnQpLG89YShyLGgucGlja1ZlcnRleCxoLnBpY2tGcmFnbWVudCksbD1zKHIpLHU9cyhyKSxjPXMociksZj1zKHIpLHA9bmV3IGkodCxuLG8sbCx1LGMsZik7cmV0dXJuIHAudXBkYXRlKGUpLHQuYWRkT2JqZWN0KHApLHB9ZS5leHBvcnRzPW87dmFyIGE9dCgiZ2wtc2hhZGVyIikscz10KCJnbC1idWZmZXIiKSxsPXQoInRleHQtY2FjaGUiKSx1PXQoInR5cGVkYXJyYXktcG9vbCIpLGM9dCgidmVjdG9yaXplLXRleHQiKSxoPXQoIi4vbGliL3NoYWRlcnMiKSxmPXt9LHA9aS5wcm90b3R5cGU7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXRoaXMucGxvdCxuPXRoaXMuYm91bmRzLGk9dC52aWV3Qm94LG89dC5kYXRhQm94LGE9dC5waXhlbFJhdGlvLHM9blsyXS1uWzBdLGw9blszXS1uWzFdLHU9b1syXS1vWzBdLGM9b1szXS1vWzFdO2VbMF09MipzL3UsZVs0XT0yKmwvYyxlWzZdPTIqKG5bMF0tb1swXSkvdS0xLGVbN109MiooblsxXS1vWzFdKS9jLTE7dmFyIGg9aVsyXS1pWzBdLGY9aVszXS1pWzFdO3JbMF09MiphL2gsclsxXT0yKmEvZn12YXIgZT1bMSwwLDAsMCwxLDAsMCwwLDFdLHI9WzEsMV07cC5kcmF3PWZ1bmN0aW9uKCl7dmFyIG49dGhpcy5wbG90LGk9dGhpcy5zaGFkZXIsbz10aGlzLm51bVZlcnRpY2VzO2lmKG8pe3ZhciBhPW4uZ2w7dC5jYWxsKHRoaXMpLGkuYmluZCgpLGkudW5pZm9ybXMucGl4ZWxTY2FsZT1yLGkudW5pZm9ybXMudmlld1RyYW5zZm9ybT1lLHRoaXMucG9zaXRpb25CdWZmZXIuYmluZCgpLGkuYXR0cmlidXRlcy5wb3NpdGlvbi5wb2ludGVyKCksdGhpcy5vZmZzZXRCdWZmZXIuYmluZCgpLGkuYXR0cmlidXRlcy5vZmZzZXQucG9pbnRlcigpLHRoaXMuY29sb3JCdWZmZXIuYmluZCgpLGkuYXR0cmlidXRlcy5jb2xvci5wb2ludGVyKGEuVU5TSUdORURfQllURSwhMCksYS5kcmF3QXJyYXlzKGEuVFJJQU5HTEVTLDAsbyl9fTt2YXIgbj1bMCwwLDAsMF07cC5kcmF3UGljaz1mdW5jdGlvbihpKXt2YXIgbz10aGlzLnBsb3QsYT10aGlzLnBpY2tTaGFkZXIscz10aGlzLm51bVZlcnRpY2VzLGw9by5nbDtpZih0aGlzLnBpY2tPZmZzZXQ9aSwhcylyZXR1cm4gaTtmb3IodmFyIHU9MDs0PnU7Kyt1KW5bdV09aT4+OCp1JjI1NTtyZXR1cm4gdC5jYWxsKHRoaXMpLGEuYmluZCgpLGEudW5pZm9ybXMucGl4ZWxTY2FsZT1yLGEudW5pZm9ybXMudmlld1RyYW5zZm9ybT1lLGEudW5pZm9ybXMucGlja09mZnNldD1uLHRoaXMucG9zaXRpb25CdWZmZXIuYmluZCgpLGEuYXR0cmlidXRlcy5wb3NpdGlvbi5wb2ludGVyKCksdGhpcy5vZmZzZXRCdWZmZXIuYmluZCgpLGEuYXR0cmlidXRlcy5vZmZzZXQucG9pbnRlcigpLHRoaXMuaWRCdWZmZXIuYmluZCgpLGEuYXR0cmlidXRlcy5pZC5wb2ludGVyKGwuVU5TSUdORURfQllURSwhMSksbC5kcmF3QXJyYXlzKGwuVFJJQU5HTEVTLDAscyksaSt0aGlzLm51bVBvaW50c319KCkscC5waWNrPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnBpY2tPZmZzZXQsaT10aGlzLm51bVBvaW50cztpZihuPnJ8fHI+PW4raSlyZXR1cm4gbnVsbDt2YXIgbz1yLW4sYT10aGlzLnBvaW50cztyZXR1cm57b2JqZWN0OnRoaXMscG9pbnRJZDpvLGRhdGFDb29yZDpbYVsyKm9dLGFbMipvKzFdXX19LHAudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e307dmFyIGU9dC5wb3NpdGlvbnN8fFtdLHI9dC5jb2xvcnN8fFtdLGk9dC5nbHlwaHN8fFtdLG89dC5zaXplc3x8W10sYT10LmJvcmRlcldpZHRoc3x8W10scz10LmJvcmRlckNvbG9yc3x8W107dGhpcy5wb2ludHM9ZTtmb3IodmFyIGM9dGhpcy5ib3VuZHM9WzEvMCwxLzAsLSgxLzApLC0oMS8wKV0saD0wLGY9MDtmPGkubGVuZ3RoOysrZil7aCs9bCgic2Fucy1zZXJpZiIsaVtmXSkuZGF0YS5sZW5ndGgrbihpW2ZdKS5jb29yZHMubGVuZ3RoPj4xO2Zvcih2YXIgcD0wOzI+cDsrK3ApY1twXT1NYXRoLm1pbihjW3BdLGVbMipmK3BdKSxjWzIrcF09TWF0aC5tYXgoY1syK3BdLGVbMipmK3BdKX1jWzBdPT09Y1syXSYmKGNbMl0rPTEpLGNbM109PT1jWzFdJiYoY1szXSs9MSk7Zm9yKHZhciBkPTEvKGNbMl0tY1swXSksbT0xLyhjWzNdLWNbMV0pLGc9Y1swXSx2PWNbMV0seT11Lm1hbGxvY0Zsb2F0MzIoMipoKSxiPXUubWFsbG9jRmxvYXQzMigyKmgpLHg9dS5tYWxsb2NVaW50OCg0KmgpLF89dS5tYWxsb2NVaW50MzIoaCksdz0wLGY9MDtmPGkubGVuZ3RoOysrZil7Zm9yKHZhciBNPWwoInNhbnMtc2VyaWYiLGlbZl0pLGs9bihpW2ZdKSxBPWQqKGVbMipmXS1nKSxUPW0qKGVbMipmKzFdLXYpLEU9b1tmXSxTPTI1NSpyWzQqZl0sTD0yNTUqcls0KmYrMV0sej0yNTUqcls0KmYrMl0sST0yNTUqcls0KmYrM10sUD0uNSooay5ib3VuZHNbMF0ray5ib3VuZHNbMl0pLEM9LjUqKGsuYm91bmRzWzFdK2suYm91bmRzWzNdKSxwPTA7cDxNLmRhdGEubGVuZ3RoO3ArPTIpeVsyKnddPUEseVsyKncrMV09VCxiWzIqd109LUUqKE0uZGF0YVtwXS1QKSxiWzIqdysxXT0tRSooTS5kYXRhW3ArMV0tQykseFs0KnddPVMseFs0KncrMV09TCx4WzQqdysyXT16LHhbNCp3KzNdPUksX1t3XT1mLHcrPTE7dmFyIFI9YVtmXTtTPTI1NSpzWzQqZl0sTD0yNTUqc1s0KmYrMV0sej0yNTUqc1s0KmYrMl0sST0yNTUqc1s0KmYrM107CmZvcih2YXIgcD0wO3A8ay5jb29yZHMubGVuZ3RoO3ArPTIpeVsyKnddPUEseVsyKncrMV09VCxiWzIqd109LShFKihrLmNvb3Jkc1twXS1QKStSKmsubm9ybWFsc1twXSksYlsyKncrMV09LShFKihrLmNvb3Jkc1twKzFdLUMpK1Iqay5ub3JtYWxzW3ArMV0pLHhbNCp3XT1TLHhbNCp3KzFdPUwseFs0KncrMl09eix4WzQqdyszXT1JLF9bd109Zix3Kz0xfXRoaXMubnVtUG9pbnRzPWkubGVuZ3RoLHRoaXMubnVtVmVydGljZXM9aCx0aGlzLnBvc2l0aW9uQnVmZmVyLnVwZGF0ZSh5KSx0aGlzLm9mZnNldEJ1ZmZlci51cGRhdGUoYiksdGhpcy5jb2xvckJ1ZmZlci51cGRhdGUoeCksdGhpcy5pZEJ1ZmZlci51cGRhdGUoXyksdS5mcmVlKHkpLHUuZnJlZShiKSx1LmZyZWUoeCksdS5mcmVlKF8pfSxwLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBvc2l0aW9uQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLm9mZnNldEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5jb2xvckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5pZEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5wbG90LnJlbW92ZU9iamVjdCh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MTk1LCJnbC1idWZmZXIiOjEyOSwiZ2wtc2hhZGVyIjoyMDgsInRleHQtY2FjaGUiOjQ3NiwidHlwZWRhcnJheS1wb29sIjo0ODEsInZlY3Rvcml6ZS10ZXh0Ijo0ODN9XSwxOTc6W2Z1bmN0aW9uKHQsZSxyKXtyLnBvaW50VmVydGV4PSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIGZsb2F0IHdlaWdodDtcblxudW5pZm9ybSBtYXQzIG1hdHJpeDtcbnVuaWZvcm0gZmxvYXQgcG9pbnRTaXplLCB1c2VXZWlnaHQ7XG5cbnZhcnlpbmcgZmxvYXQgZnJhZ1dlaWdodDtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGhnUG9zaXRpb24gPSBtYXRyaXggKiB2ZWMzKHBvc2l0aW9uLCAxKTtcbiAgZ2xfUG9zaXRpb24gID0gdmVjNChoZ1Bvc2l0aW9uLnh5LCAwLCBoZ1Bvc2l0aW9uLnopO1xuICBnbF9Qb2ludFNpemUgPSBwb2ludFNpemU7XG4gIGZyYWdXZWlnaHQgPSBtaXgoMS4wLCB3ZWlnaHQsIHVzZVdlaWdodCk7XG59XG4iLHIucG9pbnRGcmFnbWVudD0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3IsIGJvcmRlckNvbG9yO1xudW5pZm9ybSBmbG9hdCBjZW50ZXJGcmFjdGlvbjtcblxudmFyeWluZyBmbG9hdCBmcmFnV2VpZ2h0O1xuXG5mbG9hdCBzbW9vdGhTdGVwKGZsb2F0IHgsIGZsb2F0IHkpIHtcbiAgcmV0dXJuIDEuMCAvICgxLjAgKyBleHAoNTAuMCooeCAtIHkpKSk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgcmFkaXVzID0gbGVuZ3RoKDIuMCpnbF9Qb2ludENvb3JkLnh5LTEuMCk7XG4gIGlmKHJhZGl1cyA+IDEuMCkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgdmVjNCBiYXNlQ29sb3IgPSBtaXgoYm9yZGVyQ29sb3IsIGNvbG9yLCBzbW9vdGhTdGVwKHJhZGl1cywgY2VudGVyRnJhY3Rpb24pKTtcbiAgZmxvYXQgYWxwaGEgPSAxLjAgLSBwb3coMS4wIC0gYmFzZUNvbG9yLmEsIGZyYWdXZWlnaHQpO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGJhc2VDb2xvci5yZ2IgKiBhbHBoYSwgYWxwaGEpO1xufVxuIixyLnBpY2tWZXJ0ZXg9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBwaWNrSWQ7XG5cbnVuaWZvcm0gbWF0MyBtYXRyaXg7XG51bmlmb3JtIGZsb2F0IHBvaW50U2l6ZTtcbnVuaWZvcm0gdmVjNCBwaWNrT2Zmc2V0O1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0lkO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgaGdQb3NpdGlvbiA9IG1hdHJpeCAqIHZlYzMocG9zaXRpb24sIDEpO1xuICBnbF9Qb3NpdGlvbiAgPSB2ZWM0KGhnUG9zaXRpb24ueHksIDAsIGhnUG9zaXRpb24ueik7XG4gIGdsX1BvaW50U2l6ZSA9IHBvaW50U2l6ZTtcblxuICB2ZWM0IGlkID0gcGlja0lkICsgcGlja09mZnNldDtcbiAgaWQueSArPSBmbG9vcihpZC54IC8gMjU2LjApO1xuICBpZC54IC09IGZsb29yKGlkLnggLyAyNTYuMCkgKiAyNTYuMDtcblxuICBpZC56ICs9IGZsb29yKGlkLnkgLyAyNTYuMCk7XG4gIGlkLnkgLT0gZmxvb3IoaWQueSAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGlkLncgKz0gZmxvb3IoaWQueiAvIDI1Ni4wKTtcbiAgaWQueiAtPSBmbG9vcihpZC56IC8gMjU2LjApICogMjU2LjA7XG5cbiAgZnJhZ0lkID0gaWQ7XG59XG4iLHIucGlja0ZyYWdtZW50PSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgZmxvYXQgcmFkaXVzID0gbGVuZ3RoKDIuMCpnbF9Qb2ludENvb3JkLnh5LTEuMCk7XG4gIGlmKHJhZGl1cyA+IDEuMCkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0lkIC8gMjU1LjA7XG59XG4ifSx7fV0sMTk4OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzczXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6NzN9XSwxOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLG8pezQqZj49bz9pKDAsby0xLHQsZSxyLG4pOmgoMCxvLTEsdCxlLHIsbil9ZnVuY3Rpb24gaSh0LGUscixuLGksbyl7Zm9yKHZhciBhPXQrMTtlPj1hOysrYSl7Zm9yKHZhciBzPXJbYV0sbD1uWzIqYV0sdT1uWzIqYSsxXSxjPWlbYV0saD1vW2FdLGY9YTtmPnQ7KXt2YXIgcD1yW2YtMV0sZD1uWzIqKGYtMSldO2lmKChwLXN8fGwtZCk+PTApYnJlYWs7cltmXT1wLG5bMipmXT1kLG5bMipmKzFdPW5bMipmLTFdLGlbZl09aVtmLTFdLG9bZl09b1tmLTFdLGYtPTF9cltmXT1zLG5bMipmXT1sLG5bMipmKzFdPXUsaVtmXT1jLG9bZl09aH19ZnVuY3Rpb24gbyh0LGUscixuLGksbyl7dmFyIGE9clt0XSxzPW5bMip0XSxsPW5bMip0KzFdLHU9aVt0XSxjPW9bdF07clt0XT1yW2VdLG5bMip0XT1uWzIqZV0sblsyKnQrMV09blsyKmUrMV0saVt0XT1pW2VdLG9bdF09b1tlXSxyW2VdPWEsblsyKmVdPXMsblsyKmUrMV09bCxpW2VdPXUsb1tlXT1jfWZ1bmN0aW9uIGEodCxlLHIsbixpLG8pe3JbdF09cltlXSxuWzIqdF09blsyKmVdLG5bMip0KzFdPW5bMiplKzFdLGlbdF09aVtlXSxvW3RdPW9bZV19ZnVuY3Rpb24gcyh0LGUscixuLGksbyxhKXt2YXIgcz1uW3RdLGw9aVsyKnRdLHU9aVsyKnQrMV0sYz1vW3RdLGg9YVt0XTtuW3RdPW5bZV0saVsyKnRdPWlbMiplXSxpWzIqdCsxXT1pWzIqZSsxXSxvW3RdPW9bZV0sYVt0XT1hW2VdLG5bZV09bltyXSxpWzIqZV09aVsyKnJdLGlbMiplKzFdPWlbMipyKzFdLG9bZV09b1tyXSxhW2VdPWFbcl0sbltyXT1zLGlbMipyXT1sLGlbMipyKzFdPXUsb1tyXT1jLGFbcl09aH1mdW5jdGlvbiBsKHQsZSxyLG4saSxvLGEscyxsLHUsYyl7c1t0XT1zW2VdLGxbMip0XT1sWzIqZV0sbFsyKnQrMV09bFsyKmUrMV0sdVt0XT11W2VdLGNbdF09Y1tlXSxzW2VdPXIsbFsyKmVdPW4sbFsyKmUrMV09aSx1W2VdPW8sY1tlXT1hfWZ1bmN0aW9uIHUodCxlLHIsbixpKXtyZXR1cm4oclt0XS1yW2VdfHxuWzIqZV0tblsyKnRdfHxpW3RdLWlbZV0pPDB9ZnVuY3Rpb24gYyh0LGUscixuLGksbyxhLHMpe3JldHVybihlLW9bdF18fGFbMip0XS1yfHxpLXNbdF0pPDB9ZnVuY3Rpb24gaCh0LGUscixuLHAsZCl7dmFyIG09KGUtdCsxKS82fDAsZz10K20sdj1lLW0seT10K2U+PjEsYj15LW0seD15K20sXz1nLHc9YixNPXksaz14LEE9dixUPXQrMSxFPWUtMSxTPTA7dShfLHcscixuLHAsZCkmJihTPV8sXz13LHc9UyksdShrLEEscixuLHAsZCkmJihTPWssaz1BLEE9UyksdShfLE0scixuLHAsZCkmJihTPV8sXz1NLE09UyksdSh3LE0scixuLHAsZCkmJihTPXcsdz1NLE09UyksdShfLGsscixuLHAsZCkmJihTPV8sXz1rLGs9UyksdShNLGsscixuLHAsZCkmJihTPU0sTT1rLGs9UyksdSh3LEEscixuLHAsZCkmJihTPXcsdz1BLEE9UyksdSh3LE0scixuLHAsZCkmJihTPXcsdz1NLE09UyksdShrLEEscixuLHAsZCkmJihTPWssaz1BLEE9Uyk7dmFyIEw9clt3XSx6PW5bMip3XSxJPW5bMip3KzFdLFA9cFt3XSxDPWRbd10sUj1yW2tdLGo9blsyKmtdLEQ9blsyKmsrMV0sTz1wW2tdLEY9ZFtrXSxOPV8sQj1NLFU9QSxWPWcscT15LEc9dixIPXJbTl0sWD1yW0JdLFk9cltVXTtyW1ZdPUgscltxXT1YLHJbR109WTtmb3IodmFyIFc9MDsyPlc7KytXKXt2YXIgWj1uWzIqTitXXSxRPW5bMipCK1ddLEs9blsyKlUrV107blsyKlYrV109WixuWzIqcStXXT1RLG5bMipHK1ddPUt9dmFyIEo9cFtOXSwkPXBbQl0sdHQ9cFtVXTtwW1ZdPUoscFtxXT0kLHBbR109dHQ7dmFyIGV0PWRbTl0scnQ9ZFtCXSxudD1kW1VdO2RbVl09ZXQsZFtxXT1ydCxkW0ddPW50LGEoYix0LHIsbixwLGQpLGEoeCxlLHIsbixwLGQpO2Zvcih2YXIgaXQ9VDtFPj1pdDsrK2l0KWlmKGMoaXQsTCx6LEksUCxyLG4scCkpaXQhPT1UJiZvKGl0LFQscixuLHAsZCksKytUO2Vsc2UgaWYoIWMoaXQsUixqLEQsTyxyLG4scCkpZm9yKDs7KXtpZihjKEUsUixqLEQsTyxyLG4scCkpe2MoRSxMLHosSSxQLHIsbixwKT8ocyhpdCxULEUscixuLHAsZCksKytULC0tRSk6KG8oaXQsRSxyLG4scCxkKSwtLUUpO2JyZWFrfWlmKC0tRTxpdClicmVha31sKHQsVC0xLEwseixJLFAsQyxyLG4scCxkKSxsKGUsRSsxLFIsaixELE8sRixyLG4scCxkKSxmPj1ULTItdD9pKHQsVC0yLHIsbixwLGQpOmgodCxULTIscixuLHAsZCksZj49ZS0oRSsyKT9pKEUrMixlLHIsbixwLGQpOmgoRSsyLGUscixuLHAsZCksZj49RS1UP2koVCxFLHIsbixwLGQpOmgoVCxFLHIsbixwLGQpfWUuZXhwb3J0cz1uO3ZhciBmPTMyfSx7fV0sMjAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpLG8sYSxzKXtmb3IodmFyIGw9cix1PXI7bj51OysrdSl7dmFyIGM9dFsyKnVdLGg9dFsyKnUrMV0sZj1lW3VdO2M+PWkmJmE+PWMmJmg+PW8mJnM+PWgmJih1PT09bD9sKz0xOih0WzIqdV09dFsyKmxdLHRbMip1KzFdPXRbMipsKzFdLGVbdV09ZVtsXSx0WzIqbF09Yyx0WzIqbCsxXT1oLGVbbF09ZixsKz0xKSl9cmV0dXJuIGx9ZnVuY3Rpb24gaSh0LGUscil7dGhpcy5waXhlbFNpemU9dCx0aGlzLm9mZnNldD1lLHRoaXMuY291bnQ9cn1mdW5jdGlvbiBvKHQsZSxyLG8pe2Z1bmN0aW9uIGwoaSxvLGEscyx1LGMpe3ZhciBoPS41KmEsZj1zKzEscD11LXM7cltfXT1wLHhbXysrXT1jO2Zvcih2YXIgZD0wOzI+ZDsrK2QpZm9yKHZhciBtPTA7Mj5tOysrbSl7dmFyIGc9aStkKmgsdj1vK20qaCx5PW4odCxlLGYsdSxnLHYsZytoLHYraCk7aWYoeSE9PWYpe2lmKHktZj49TWF0aC5tYXgoLjkqcCwzMikpe3ZhciBiPXUrcz4+PjE7bChnLHYsaCxmLGIsYysxKSxmPWJ9bChnLHYsaCxmLHksYysxKSxmPXl9fX12YXIgdT10Lmxlbmd0aD4+PjE7aWYoMT51KXJldHVybltdO2Zvcih2YXIgYz0xLzAsaD0xLzAsZj0tKDEvMCkscD0tKDEvMCksZD0wO3U+ZDsrK2Qpe3ZhciBtPXRbMipkXSxnPXRbMipkKzFdO2M9TWF0aC5taW4oYyxtKSxmPU1hdGgubWF4KGYsbSksaD1NYXRoLm1pbihoLGcpLHA9TWF0aC5tYXgocCxnKSxlW2RdPWR9Yz09PWYmJihmKz0xK01hdGguYWJzKGYpKSxoPT09cCYmKHArPTErTWF0aC5hYnMoZikpO3ZhciB2PTEvKGYtYykseT0xLyhwLWgpLGI9TWF0aC5tYXgoZi1jLHAtaCk7bz1vfHxbMCwwLDAsMF0sb1swXT1jLG9bMV09aCxvWzJdPWYsb1szXT1wO3ZhciB4PWEubWFsbG9jSW50MzIodSksXz0wO2woYyxoLGIsMCx1LDApLHMoeCx0LGUscix1KTtmb3IodmFyIHc9W10sTT0wLGs9dSxfPXUtMTtfPj0wOy0tXyl7dFsyKl9dPSh0WzIqX10tYykqdix0WzIqXysxXT0odFsyKl8rMV0taCkqeTt2YXIgQT14W19dO0EhPT1NJiYody5wdXNoKG5ldyBpKGIqTWF0aC5wb3coLjUsQSksXysxLGstKF8rMSkpKSxrPV8rMSxNPUEpfXJldHVybiB3LnB1c2gobmV3IGkoYipNYXRoLnBvdyguNSxBKzEpLDAsaykpLGEuZnJlZSh4KSx3fXZhciBhPXQoInR5cGVkYXJyYXktcG9vbCIpLHM9dCgiLi9saWIvc29ydCIpO2UuZXhwb3J0cz1vfSx7Ii4vbGliL3NvcnQiOjE5OSwidHlwZWRhcnJheS1wb29sIjo0ODF9XSwyMDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyl7dGhpcy5wbG90PXQsdGhpcy5vZmZzZXRCdWZmZXI9ZSx0aGlzLnBpY2tCdWZmZXI9cix0aGlzLndlaWdodEJ1ZmZlcj1uLHRoaXMuc2hhZGVyPWksdGhpcy5waWNrU2hhZGVyPW8sdGhpcy5zY2FsZXM9W10sdGhpcy5zaXplPTEyLHRoaXMuYm9yZGVyU2l6ZT0xLHRoaXMucG9pbnRDb3VudD0wLHRoaXMuY29sb3I9WzEsMCwwLDFdLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDFdLHRoaXMuYm91bmRzPVsxLzAsMS8wLC0oMS8wKSwtKDEvMCldLHRoaXMucGlja09mZnNldD0wLHRoaXMucG9pbnRzPW51bGwsdGhpcy54Q29vcmRzPW51bGx9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPXQuZ2wsaT1hKHIpLHM9YShyKSxsPWEociksdT1vKHIsYy5wb2ludFZlcnRleCxjLnBvaW50RnJhZ21lbnQpLGg9byhyLGMucGlja1ZlcnRleCxjLnBpY2tGcmFnbWVudCksZj1uZXcgbih0LGkscyxsLHUsaCk7cmV0dXJuIGYudXBkYXRlKGUpLHQuYWRkT2JqZWN0KGYpLGZ9dmFyIG89dCgiZ2wtc2hhZGVyIiksYT10KCJnbC1idWZmZXIiKSxzPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksbD10KCJzbmFwLXBvaW50cy0yZCIpLHU9dCgidHlwZWRhcnJheS1wb29sIiksYz10KCIuL2xpYi9zaGFkZXIiKTtlLmV4cG9ydHM9aTt2YXIgaD1uLnByb3RvdHlwZTtoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLm9mZnNldEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5waWNrQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnhDb29yZHMmJnUuZnJlZSh0aGlzLnhDb29yZHMpLHRoaXMucGxvdC5yZW1vdmVPYmplY3QodGhpcyl9LGgudXBkYXRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXtyZXR1cm4gZSBpbiB0P3RbZV06cn10PXR8fHt9LHRoaXMuc2l6ZT1lKCJzaXplIiwxMiksdGhpcy5jb2xvcj1lKCJjb2xvciIsWzEsMCwwLDFdKS5zbGljZSgpLHRoaXMuYm9yZGVyU2l6ZT1lKCJib3JkZXJTaXplIiwxKSx0aGlzLmJvcmRlckNvbG9yPWUoImJvcmRlckNvbG9yIixbMCwwLDAsMV0pLnNsaWNlKCksdGhpcy54Q29vcmRzJiZ1LmZyZWUodGhpcy54Q29vcmRzKTt2YXIgcj10LnBvc2l0aW9ucyxuPXUubWFsbG9jRmxvYXQzMihyLmxlbmd0aCksaT11Lm1hbGxvY0ludDMyKHIubGVuZ3RoPj4+MSk7bi5zZXQocik7dmFyIG89dS5tYWxsb2NGbG9hdDMyKHIubGVuZ3RoKTt0aGlzLnBvaW50cz1yLHRoaXMuc2NhbGVzPWwobixpLG8sdGhpcy5ib3VuZHMpLHRoaXMub2Zmc2V0QnVmZmVyLnVwZGF0ZShuKSx0aGlzLnBpY2tCdWZmZXIudXBkYXRlKGkpLHRoaXMud2VpZ2h0QnVmZmVyLnVwZGF0ZShvKTtmb3IodmFyIGE9dS5tYWxsb2NGbG9hdDMyKHIubGVuZ3RoPj4+MSkscz0wLGM9MDtzPHIubGVuZ3RoO3MrPTIsKytjKWFbY109bltzXTt1LmZyZWUoaSksdS5mcmVlKG4pLHUuZnJlZShvKSx0aGlzLnhDb29yZHM9YSx0aGlzLnBvaW50Q291bnQ9ci5sZW5ndGg+Pj4xLHRoaXMucGlja09mZnNldD0wfSxoLmRyYXdQaWNrPWZ1bmN0aW9uKCl7dmFyIHQ9WzEsMCwwLDAsMSwwLDAsMCwxXSxlPVswLDAsMCwwXTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49dGhpcy5wbG90LGk9dGhpcy5waWNrU2hhZGVyLG89dGhpcy5zY2FsZXMsYT10aGlzLm9mZnNldEJ1ZmZlcixsPXRoaXMucGlja0J1ZmZlcix1PXRoaXMuYm91bmRzLGM9dGhpcy5zaXplLGg9dGhpcy5ib3JkZXJTaXplLGY9bi5nbCxwPW4ucGlja1BpeGVsUmF0aW8sZD1uLnZpZXdCb3gsbT1uLmRhdGFCb3g7aWYoMD09PXRoaXMucG9pbnRDb3VudClyZXR1cm4gcjt2YXIgZz11WzJdLXVbMF0sdj11WzNdLXVbMV0seT1tWzJdLW1bMF0sYj1tWzNdLW1bMV0seD0oZFsyXS1kWzBdKSpwL24ucGl4ZWxSYXRpbyxfPShkWzNdLWRbMV0pKnAvbi5waXhlbFJhdGlvLHc9TWF0aC5taW4oeS94LGIvXyk7dFswXT0yKmcveSx0WzRdPTIqdi9iLHRbNl09MioodVswXS1tWzBdKS95LTEsdFs3XT0yKih1WzFdLW1bMV0pL2ItMSx0aGlzLnBpY2tPZmZzZXQ9cixlWzBdPTI1NSZyLGVbMV09cj4+OCYyNTUsZVsyXT1yPj4xNiYyNTUsZVszXT1yPj4yNCYyNTUsaS5iaW5kKCksaS51bmlmb3Jtcy5tYXRyaXg9dCxpLnVuaWZvcm1zLmNvbG9yPXRoaXMuY29sb3IsaS51bmlmb3Jtcy5ib3JkZXJDb2xvcj10aGlzLmJvcmRlckNvbG9yLGkudW5pZm9ybXMucG9pbnRTaXplPXAqKGMraCksaS51bmlmb3Jtcy5waWNrT2Zmc2V0PWUsMD09PXRoaXMuYm9yZGVyU2l6ZT9pLnVuaWZvcm1zLmNlbnRlckZyYWN0aW9uPTI6aS51bmlmb3Jtcy5jZW50ZXJGcmFjdGlvbj1jLyhjK2grMS4yNSksYS5iaW5kKCksaS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnBvaW50ZXIoKSxsLmJpbmQoKSxpLmF0dHJpYnV0ZXMucGlja0lkLnBvaW50ZXIoZi5VTlNJR05FRF9CWVRFKTtmb3IodmFyIE09dGhpcy54Q29vcmRzLGs9KG1bMF0tdVswXS13KmMqcCkvZyxBPShtWzJdLXVbMF0rdypjKnApL2csVD1vLmxlbmd0aC0xO1Q+PTA7LS1UKXt2YXIgRT1vW1RdO2lmKCEoRS5waXhlbFNpemU8dyYmVD4xKSl7dmFyIFM9RS5vZmZzZXQsTD1FLmNvdW50K1Msej1zLmdlKE0sayxTLEwtMSksST1zLmx0KE0sQSx6LEwtMSkrMTtJPnomJmYuZHJhd0FycmF5cyhmLlBPSU5UUyx6LEkteil9fXJldHVybiByK3RoaXMucG9pbnRDb3VudH19KCksaC5kcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9WzEsMCwwLDAsMSwwLDAsMCwxXTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBsb3Qscj10aGlzLnNoYWRlcixuPXRoaXMuc2NhbGVzLGk9dGhpcy5vZmZzZXRCdWZmZXIsbz10aGlzLmJvdW5kcyxhPXRoaXMuc2l6ZSxsPXRoaXMuYm9yZGVyU2l6ZSx1PWUuZ2wsYz1lLnBpeGVsUmF0aW8saD1lLnZpZXdCb3gsZj1lLmRhdGFCb3g7aWYoMCE9PXRoaXMucG9pbnRDb3VudCl7dmFyIHA9b1syXS1vWzBdLGQ9b1szXS1vWzFdLG09ZlsyXS1mWzBdLGc9ZlszXS1mWzFdLHY9aFsyXS1oWzBdLHk9aFszXS1oWzFdLGI9TWF0aC5taW4obS92LGcveSk7dFswXT0yKnAvbSx0WzRdPTIqZC9nLHRbNl09Mioob1swXS1mWzBdKS9tLTEsdFs3XT0yKihvWzFdLWZbMV0pL2ctMSxyLmJpbmQoKSxyLnVuaWZvcm1zLm1hdHJpeD10LHIudW5pZm9ybXMuY29sb3I9dGhpcy5jb2xvcixyLnVuaWZvcm1zLmJvcmRlckNvbG9yPXRoaXMuYm9yZGVyQ29sb3Isci51bmlmb3Jtcy5wb2ludFNpemU9YyooYStsKSxyLnVuaWZvcm1zLnVzZVdlaWdodD0xLDA9PT10aGlzLmJvcmRlclNpemU/ci51bmlmb3Jtcy5jZW50ZXJGcmFjdGlvbj0yOnIudW5pZm9ybXMuY2VudGVyRnJhY3Rpb249YS8oYStsKzEuMjUpLGkuYmluZCgpLHIuYXR0cmlidXRlcy5wb3NpdGlvbi5wb2ludGVyKCksdGhpcy53ZWlnaHRCdWZmZXIuYmluZCgpLHIuYXR0cmlidXRlcy53ZWlnaHQucG9pbnRlcigpO2Zvcih2YXIgeD10aGlzLnhDb29yZHMsXz0oZlswXS1vWzBdLWIqYSpjKS9wLHc9KGZbMl0tb1swXStiKmEqYykvcCxNPSEwLGs9bi5sZW5ndGgtMTtrPj0wOy0tayl7dmFyIEE9bltrXTtpZighKEEucGl4ZWxTaXplPGImJms+MSkpe3ZhciBUPUEub2Zmc2V0LEU9QS5jb3VudCtULFM9cy5nZSh4LF8sVCxFLTEpLEw9cy5sdCh4LHcsUyxFLTEpKzE7TD5TJiZ1LmRyYXdBcnJheXModS5QT0lOVFMsUyxMLVMpLE0mJihNPSExLHIudW5pZm9ybXMudXNlV2VpZ2h0PTApfX19fX0oKSxoLnBpY2s9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMucGlja09mZnNldCxpPXRoaXMucG9pbnRDb3VudDtpZihuPnJ8fHI+PW4raSlyZXR1cm4gbnVsbDt2YXIgbz1yLW4sYT10aGlzLnBvaW50cztyZXR1cm57b2JqZWN0OnRoaXMscG9pbnRJZDpvLGRhdGFDb29yZDpbYVsyKm9dLGFbMipvKzFdXX19fSx7Ii4vbGliL3NoYWRlciI6MTk3LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTk4LCJnbC1idWZmZXIiOjEyOSwiZ2wtc2hhZGVyIjoyMDgsInNuYXAtcG9pbnRzLTJkIjoyMDAsInR5cGVkYXJyYXktcG9vbCI6NDgxfV0sMjAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1vW2VdO2lmKHJ8fChyPW9bZV09e30pLHQgaW4gcilyZXR1cm4gclt0XTtmb3IodmFyIG49aSh0LHt0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLGxpbmVIZWlnaHQ6MSxmb250OmV9KSxhPWkodCx7dHJpYW5nbGVzOiEwLHRleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSIsbGluZUhlaWdodDoxLGZvbnQ6ZX0pLHM9W1sxLzAsMS8wXSxbLSgxLzApLC0oMS8wKV1dLGw9MDtsPG4ucG9zaXRpb25zLmxlbmd0aDsrK2wpZm9yKHZhciB1PW4ucG9zaXRpb25zW2xdLGM9MDsyPmM7KytjKXNbMF1bY109TWF0aC5taW4oc1swXVtjXSx1W2NdKSxzWzFdW2NdPU1hdGgubWF4KHNbMV1bY10sdVtjXSk7cmV0dXJuIHJbdF09W2EsbixzXX12YXIgaT10KCJ2ZWN0b3JpemUtdGV4dCIpO2UuZXhwb3J0cz1uO3ZhciBvPXt9fSx7InZlY3Rvcml6ZS10ZXh0Ijo0ODN9XSwyMDM6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9aSh0LGUpLG49ci5hdHRyaWJ1dGVzO3JldHVybiBuLnBvc2l0aW9uLmxvY2F0aW9uPTAsbi5jb2xvci5sb2NhdGlvbj0xLG4uZ2x5cGgubG9jYXRpb249MixuLmlkLmxvY2F0aW9uPTMscn12YXIgaT10KCJnbC1zaGFkZXIiKSxvPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiBnbHlwaDtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG5cbnVuaWZvcm0gdmVjNCBoaWdobGlnaHRJZDtcbnVuaWZvcm0gZmxvYXQgaGlnaGxpZ2h0U2NhbGU7XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWM0IGludGVycENvbG9yO1xudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4ocG9zaXRpb24sIGNsaXBCb3VuZHNbMF0pKSAgIHx8IFxuICAgICBhbnkoZ3JlYXRlclRoYW4ocG9zaXRpb24sIGNsaXBCb3VuZHNbMV0pKSApIHtcbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvYXQgc2NhbGUgPSAxLjA7XG4gICAgaWYoZGlzdGFuY2UoaGlnaGxpZ2h0SWQsIGlkKSA8IDAuMDAwMSkge1xuICAgICAgc2NhbGUgPSBoaWdobGlnaHRTY2FsZTtcbiAgICB9XG5cbiAgICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEpO1xuICAgIHZlYzQgdmlld1Bvc2l0aW9uID0gdmlldyAqIHdvcmxkUG9zaXRpb247XG4gICAgdmlld1Bvc2l0aW9uID0gdmlld1Bvc2l0aW9uIC8gdmlld1Bvc2l0aW9uLnc7XG4gICAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogKHZpZXdQb3NpdGlvbiArIHNjYWxlICogdmVjNChnbHlwaC54LCAtZ2x5cGgueSwgMCwgMCkpO1xuICAgIFxuICAgIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uO1xuICAgIGludGVycENvbG9yID0gY29sb3I7XG4gICAgcGlja0lkID0gaWQ7XG4gICAgZGF0YUNvb3JkaW5hdGUgPSBwb3NpdGlvbjtcbiAgfVxufSIsYT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgZ2x5cGg7XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNpemU7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgaGlnaGxpZ2h0U2NhbGUsIHBpeGVsUmF0aW87XG51bmlmb3JtIHZlYzQgaGlnaGxpZ2h0SWQ7XG5cbnZhcnlpbmcgdmVjNCBpbnRlcnBDb2xvcjtcbnZhcnlpbmcgdmVjNCBwaWNrSWQ7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYoYW55KGxlc3NUaGFuKHBvc2l0aW9uLCBjbGlwQm91bmRzWzBdKSkgfHwgYW55KGdyZWF0ZXJUaGFuKHBvc2l0aW9uLCBjbGlwQm91bmRzWzFdKSkpIHtcbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvYXQgc2NhbGUgPSBwaXhlbFJhdGlvO1xuICAgIGlmKGRpc3RhbmNlKGhpZ2hsaWdodElkLmJnciwgaWQuYmdyKSA8IDAuMDAxKSB7XG4gICAgICBzY2FsZSAqPSBoaWdobGlnaHRTY2FsZTtcbiAgICB9XG5cbiAgICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gICAgdmVjNCB2aWV3UG9zaXRpb24gPSB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3UG9zaXRpb247XG4gICAgY2xpcFBvc2l0aW9uIC89IGNsaXBQb3NpdGlvbi53O1xuICAgIFxuICAgIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uICsgdmVjNChzY3JlZW5TaXplICogc2NhbGUgKiB2ZWMyKGdseXBoLngsIC1nbHlwaC55KSwgMC4wLCAwLjApO1xuICAgIGludGVycENvbG9yID0gY29sb3I7XG4gICAgcGlja0lkID0gaWQ7XG4gICAgZGF0YUNvb3JkaW5hdGUgPSBwb3NpdGlvbjtcbiAgfVxufSIscz0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgZ2x5cGg7XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBmbG9hdCBoaWdobGlnaHRTY2FsZTtcbnVuaWZvcm0gdmVjNCBoaWdobGlnaHRJZDtcbnVuaWZvcm0gdmVjMyBheGVzWzJdO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNpemU7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgc2NhbGUsIHBpeGVsUmF0aW87XG5cbnZhcnlpbmcgdmVjNCBpbnRlcnBDb2xvcjtcbnZhcnlpbmcgdmVjNCBwaWNrSWQ7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYoYW55KGxlc3NUaGFuKHBvc2l0aW9uLCBjbGlwQm91bmRzWzBdKSkgICB8fFxuICAgICBhbnkoZ3JlYXRlclRoYW4ocG9zaXRpb24sIGNsaXBCb3VuZHNbMV0pKSApIHtcbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH0gZWxzZSB7XG4gICAgZmxvYXQgbHNjYWxlID0gcGl4ZWxSYXRpbyAqIHNjYWxlO1xuICAgIGlmKGRpc3RhbmNlKGhpZ2hsaWdodElkLCBpZCkgPCAwLjAwMDEpIHtcbiAgICAgIGxzY2FsZSAqPSBoaWdobGlnaHRTY2FsZTtcbiAgICB9XG5cbiAgICB2ZWM0IGNsaXBDZW50ZXIgICA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxKTtcbiAgICB2ZWMzIGRhdGFQb3NpdGlvbiA9IHBvc2l0aW9uICsgMC41KmxzY2FsZSooYXhlc1swXSAqIGdseXBoLnggKyBheGVzWzFdICogZ2x5cGgueSkgKiBjbGlwQ2VudGVyLncgKiBzY3JlZW5TaXplLnk7XG4gICAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChkYXRhUG9zaXRpb24sIDEpO1xuXG4gICAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG4gICAgaW50ZXJwQ29sb3IgPSBjb2xvcjtcbiAgICBwaWNrSWQgPSBpZDtcbiAgICBkYXRhQ29vcmRpbmF0ZSA9IGRhdGFQb3NpdGlvbjtcbiAgfVxufVxuIixsPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjMyBmcmFnQ2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGludGVycENvbG9yO1xudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4oZGF0YUNvb3JkaW5hdGUsIGZyYWdDbGlwQm91bmRzWzBdKSkgICB8fFxuICAgICBhbnkoZ3JlYXRlclRoYW4oZGF0YUNvb3JkaW5hdGUsIGZyYWdDbGlwQm91bmRzWzFdKSkgKSB7XG4gICAgZGlzY2FyZDtcbiAgfSBlbHNlIHtcbiAgICBnbF9GcmFnQ29sb3IgPSBpbnRlcnBDb2xvciAqIG9wYWNpdHk7XG4gIH1cbn1cbiIsdT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzMgZnJhZ0NsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tHcm91cDtcblxudmFyeWluZyB2ZWM0IHBpY2tJZDtcbnZhcnlpbmcgdmVjMyBkYXRhQ29vcmRpbmF0ZTtcblxudm9pZCBtYWluKCkge1xuICBpZihhbnkobGVzc1RoYW4oZGF0YUNvb3JkaW5hdGUsIGZyYWdDbGlwQm91bmRzWzBdKSkgICB8fCBcbiAgICAgYW55KGdyZWF0ZXJUaGFuKGRhdGFDb29yZGluYXRlLCBmcmFnQ2xpcEJvdW5kc1sxXSkpICkge1xuICAgIGRpc2NhcmQ7XG4gIH0gZWxzZSB7XG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChwaWNrR3JvdXAsIHBpY2tJZC5iZ3IpO1xuICB9XG59IixjPVt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToiZ2x5cGgiLHR5cGU6InZlYzIifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifV0saD17dmVydGV4Om8sZnJhZ21lbnQ6bCxhdHRyaWJ1dGVzOmN9LGY9e3ZlcnRleDphLGZyYWdtZW50OmwsYXR0cmlidXRlczpjfSxwPXt2ZXJ0ZXg6cyxmcmFnbWVudDpsLGF0dHJpYnV0ZXM6Y30sZD17dmVydGV4Om8sZnJhZ21lbnQ6dSxhdHRyaWJ1dGVzOmN9LG09e3ZlcnRleDphLGZyYWdtZW50OnUsYXR0cmlidXRlczpjfSxnPXt2ZXJ0ZXg6cyxmcmFnbWVudDp1LGF0dHJpYnV0ZXM6Y307ci5jcmVhdGVQZXJzcGVjdGl2ZT1mdW5jdGlvbih0KXtyZXR1cm4gbih0LGgpfSxyLmNyZWF0ZU9ydGhvPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsZil9LHIuY3JlYXRlUHJvamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gbih0LHApfSxyLmNyZWF0ZVBpY2tQZXJzcGVjdGl2ZT1mdW5jdGlvbih0KXtyZXR1cm4gbih0LGQpfSxyLmNyZWF0ZVBpY2tPcnRobz1mdW5jdGlvbih0KXtyZXR1cm4gbih0LG0pfSxyLmNyZWF0ZVBpY2tQcm9qZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsZyl9fSx7ImdsLXNoYWRlciI6MjA4fV0sMjA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj10WzBdLG49dFsxXSxpPXRbMl0sbz10WzNdO3JldHVybiB0WzBdPWVbMF0qcitlWzRdKm4rZVs4XSppK2VbMTJdKm8sdFsxXT1lWzFdKnIrZVs1XSpuK2VbOV0qaStlWzEzXSpvLHRbMl09ZVsyXSpyK2VbNl0qbitlWzEwXSppK2VbMTRdKm8sdFszXT1lWzNdKnIrZVs3XSpuK2VbMTFdKmkrZVsxNV0qbyx0fWZ1bmN0aW9uIGkodCxlLHIsaSl7cmV0dXJuIG4oaSxpLHIpLG4oaSxpLGUpLG4oaSxpLHQpfWZ1bmN0aW9uIG8odCxlKXt0aGlzLmluZGV4PXQsdGhpcy5kYXRhQ29vcmRpbmF0ZT10aGlzLnBvc2l0aW9uPWV9ZnVuY3Rpb24gYSh0LGUscixuLGksYSxzLGwsdSxjLGgsZil7dGhpcy5nbD10LHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuc2hhZGVyPWUsdGhpcy5vcnRob1NoYWRlcj1yLHRoaXMucHJvamVjdFNoYWRlcj1uLHRoaXMucG9pbnRCdWZmZXI9aSx0aGlzLmNvbG9yQnVmZmVyPWEsdGhpcy5nbHlwaEJ1ZmZlcj1zLHRoaXMuaWRCdWZmZXI9bCx0aGlzLnZhbz11LHRoaXMudmVydGV4Q291bnQ9MCx0aGlzLmxpbmVWZXJ0ZXhDb3VudD0wLHRoaXMub3BhY2l0eT0xLHRoaXMubGluZVdpZHRoPTAsdGhpcy5wcm9qZWN0U2NhbGU9WzIvMywyLzMsMi8zXSx0aGlzLnByb2plY3RPcGFjaXR5PVsxLDEsMV0sdGhpcy5waWNrSWQ9MCx0aGlzLnBpY2tQZXJzcGVjdGl2ZVNoYWRlcj1jLHRoaXMucGlja09ydGhvU2hhZGVyPWgsdGhpcy5waWNrUHJvamVjdFNoYWRlcj1mLHRoaXMucG9pbnRzPVtdLHRoaXMuX3NlbGVjdFJlc3VsdD1uZXcgbygwLFswLDAsMF0pLHRoaXMudXNlT3J0aG89ITAsdGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0oMS8wKSwtKDEvMCksLSgxLzApXV0sdGhpcy5heGVzUHJvamVjdD1bITAsITAsITBdLHRoaXMuYXhlc0JvdW5kcz1bWy0oMS8wKSwtKDEvMCksLSgxLzApXSxbMS8wLDEvMCwxLzBdXSx0aGlzLmhpZ2hsaWdodElkPVsxLDEsMSwxXSx0aGlzLmhpZ2hsaWdodFNjYWxlPTIsdGhpcy5jbGlwQm91bmRzPVtbLSgxLzApLC0oMS8wKSwtKDEvMCldLFsxLzAsMS8wLDEvMF1dLHRoaXMuZGlydHk9ITB9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdFswXT10WzFdPXRbMl09MCx0fWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT0xLHR9ZnVuY3Rpb24gdSh0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFtyXT1uLHR9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGU9TCxyPTA7Mj5yOysrcilmb3IodmFyIG49MDszPm47KytuKWVbcl1bbl09TWF0aC5tYXgoTWF0aC5taW4odFtyXVtuXSwxZTgpLC0xZTgpO3JldHVybiBlfWZ1bmN0aW9uIGgodCxlLHIsbixvKXt2YXIgYSxoPWUuYXhlc1Byb2plY3QsZj1lLmdsLHA9dC51bmlmb3JtcyxkPXIubW9kZWx8fHgsbT1yLnZpZXd8fHgsZz1yLnByb2plY3Rpb258fHgseT1lLmF4ZXNCb3VuZHMsYj1jKGUuY2xpcEJvdW5kcyk7YT1lLmF4ZXM/ZS5heGVzLmxhc3RDdWJlUHJvcHMuYXhpczpbMSwxLDFdLHdbMF09Mi9mLmRyYXdpbmdCdWZmZXJXaWR0aCx3WzFdPTIvZi5kcmF3aW5nQnVmZmVySGVpZ2h0LHQuYmluZCgpLHAudmlldz1tLHAucHJvamVjdGlvbj1nLHAuc2NyZWVuU2l6ZT13LHAuaGlnaGxpZ2h0SWQ9ZS5oaWdobGlnaHRJZCxwLmhpZ2hsaWdodFNjYWxlPWUuaGlnaGxpZ2h0U2NhbGUscC5jbGlwQm91bmRzPWIscC5waWNrR3JvdXA9ZS5waWNrSWQvMjU1LHAucGl4ZWxSYXRpbz1lLnBpeGVsUmF0aW87Zm9yKHZhciBfPTA7Mz5fOysrXylpZihoW19dJiZlLnByb2plY3RPcGFjaXR5W19dPDE9PT1uKXtwLnNjYWxlPWUucHJvamVjdFNjYWxlW19dLHAub3BhY2l0eT1lLnByb2plY3RPcGFjaXR5W19dO2Zvcih2YXIgTD1FLHo9MDsxNj56OysreilMW3pdPTA7Zm9yKHZhciB6PTA7ND56OysreilMWzUqel09MTtMWzUqX109MCxhW19dPDA/TFsxMitfXT15WzBdW19dOkxbMTIrX109eVsxXVtfXSx2KEwsZCxMKSxwLm1vZGVsPUw7dmFyIEk9KF8rMSklMyxQPShfKzIpJTMsQz1zKE0pLFI9cyhrKTtDW0ldPTEsUltQXT0xO3ZhciBqPWkoZyxtLGQsbChBLEMpKSxEPWkoZyxtLGQsbChULFIpKTtpZihNYXRoLmFicyhqWzFdKT5NYXRoLmFicyhEWzFdKSl7dmFyIE89ajtqPUQsRD1PLE89QyxDPVIsUj1PO3ZhciBGPUk7ST1QLFA9Rn1qWzBdPDAmJihDW0ldPS0xKSxEWzFdPjAmJihSW1BdPS0xKTtmb3IodmFyIE49MCxCPTAsej0wOzQ+ejsrK3opTis9TWF0aC5wb3coZFs0Kkkrel0sMiksQis9TWF0aC5wb3coZFs0KlArel0sMik7Q1tJXS89TWF0aC5zcXJ0KE4pLFJbUF0vPU1hdGguc3FydChCKSxwLmF4ZXNbMF09QyxwLmF4ZXNbMV09UixwLmZyYWdDbGlwQm91bmRzWzBdPXUoUyxiWzBdLF8sLTFlOCkscC5mcmFnQ2xpcEJvdW5kc1sxXT11KFMsYlsxXSxfLDFlOCksZS52YW8uZHJhdyhmLlRSSUFOR0xFUyxlLnZlcnRleENvdW50KSxlLmxpbmVXaWR0aD4wJiYoZi5saW5lV2lkdGgoZS5saW5lV2lkdGgpLGUudmFvLmRyYXcoZi5MSU5FUyxlLmxpbmVWZXJ0ZXhDb3VudCxlLnZlcnRleENvdW50KSl9fWZ1bmN0aW9uIGYodCxlLHIsbixpLG8pe3ZhciBhPXIuZ2w7aWYoci52YW8uYmluZCgpLGk9PT1yLm9wYWNpdHk8MXx8byl7dC5iaW5kKCk7dmFyIHM9dC51bmlmb3JtcztzLm1vZGVsPW4ubW9kZWx8fHgscy52aWV3PW4udmlld3x8eCxzLnByb2plY3Rpb249bi5wcm9qZWN0aW9ufHx4LHdbMF09Mi9hLmRyYXdpbmdCdWZmZXJXaWR0aCx3WzFdPTIvYS5kcmF3aW5nQnVmZmVySGVpZ2h0LHMuc2NyZWVuU2l6ZT13LHMuaGlnaGxpZ2h0SWQ9ci5oaWdobGlnaHRJZCxzLmhpZ2hsaWdodFNjYWxlPXIuaGlnaGxpZ2h0U2NhbGUscy5mcmFnQ2xpcEJvdW5kcz1QLHMuY2xpcEJvdW5kcz1yLmF4ZXMuYm91bmRzLHMub3BhY2l0eT1yLm9wYWNpdHkscy5waWNrR3JvdXA9ci5waWNrSWQvMjU1LHMucGl4ZWxSYXRpbz1yLnBpeGVsUmF0aW8sci52YW8uZHJhdyhhLlRSSUFOR0xFUyxyLnZlcnRleENvdW50KSxyLmxpbmVXaWR0aD4wJiYoYS5saW5lV2lkdGgoci5saW5lV2lkdGgpLHIudmFvLmRyYXcoYS5MSU5FUyxyLmxpbmVWZXJ0ZXhDb3VudCxyLnZlcnRleENvdW50KSl9aChlLHIsbixpLG8pLHIudmFvLnVuYmluZCgpfWZ1bmN0aW9uIHAodCl7dmFyIGU9dC5nbCxyPXkuY3JlYXRlUGVyc3BlY3RpdmUoZSksbj15LmNyZWF0ZU9ydGhvKGUpLGk9eS5jcmVhdGVQcm9qZWN0KGUpLG89eS5jcmVhdGVQaWNrUGVyc3BlY3RpdmUoZSkscz15LmNyZWF0ZVBpY2tPcnRobyhlKSxsPXkuY3JlYXRlUGlja1Byb2plY3QoZSksdT1kKGUpLGM9ZChlKSxoPWQoZSksZj1kKGUpLHA9bShlLFt7YnVmZmVyOnUsc2l6ZTozLHR5cGU6ZS5GTE9BVH0se2J1ZmZlcjpjLHNpemU6NCx0eXBlOmUuRkxPQVR9LHtidWZmZXI6aCxzaXplOjIsdHlwZTplLkZMT0FUfSx7YnVmZmVyOmYsc2l6ZTo0LHR5cGU6ZS5VTlNJR05FRF9CWVRFLG5vcm1hbGl6ZWQ6ITB9XSksZz1uZXcgYShlLHIsbixpLHUsYyxoLGYscCxvLHMsbCk7cmV0dXJuIGcudXBkYXRlKHQpLGd9dmFyIGQ9dCgiZ2wtYnVmZmVyIiksbT10KCJnbC12YW8iKSxnPXQoInR5cGVkYXJyYXktcG9vbCIpLHY9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLHk9dCgiLi9saWIvc2hhZGVycyIpLGI9dCgiLi9saWIvZ2x5cGhzIikseD1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07ZS5leHBvcnRzPXA7dmFyIF89YS5wcm90b3R5cGU7Xy5waWNrU2xvdHM9MSxfLnNldFBpY2tCYXNlPWZ1bmN0aW9uKHQpe3RoaXMucGlja0lkPXR9LF8uaXNUcmFuc3BhcmVudD1mdW5jdGlvbigpe2lmKHRoaXMub3BhY2l0eTwxKXJldHVybiEwO2Zvcih2YXIgdD0wOzM+dDsrK3QpaWYodGhpcy5heGVzUHJvamVjdFt0XSYmdGhpcy5wcm9qZWN0T3BhY2l0eVt0XTwxKXJldHVybiEwO3JldHVybiExfSxfLmlzT3BhcXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5vcGFjaXR5Pj0xKXJldHVybiEwO2Zvcih2YXIgdD0wOzM+dDsrK3QpaWYodGhpcy5heGVzUHJvamVjdFt0XSYmdGhpcy5wcm9qZWN0T3BhY2l0eVt0XT49MSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIHc9WzAsMF0sTT1bMCwwLDBdLGs9WzAsMCwwXSxBPVswLDAsMCwxXSxUPVswLDAsMCwxXSxFPXguc2xpY2UoKSxTPVswLDAsMF0sTD1bWzAsMCwwXSxbMCwwLDBdXSx6PVstMWU4LC0xZTgsLTFlOF0sST1bMWU4LDFlOCwxZThdLFA9W3osSV07Xy5kcmF3PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudXNlT3J0aG8/dGhpcy5vcnRob1NoYWRlcjp0aGlzLnNoYWRlcjtmKGUsdGhpcy5wcm9qZWN0U2hhZGVyLHRoaXMsdCwhMSwhMSl9LF8uZHJhd1RyYW5zcGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudXNlT3J0aG8/dGhpcy5vcnRob1NoYWRlcjp0aGlzLnNoYWRlcjtmKGUsdGhpcy5wcm9qZWN0U2hhZGVyLHRoaXMsdCwhMCwhMSl9LF8uZHJhd1BpY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy51c2VPcnRobz90aGlzLnBpY2tPcnRob1NoYWRlcjp0aGlzLnBpY2tQZXJzcGVjdGl2ZVNoYWRlcjtmKGUsdGhpcy5waWNrUHJvamVjdFNoYWRlcix0aGlzLHQsITEsITApfSxfLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPXQudmFsdWVbMl0rKHQudmFsdWVbMV08PDgpKyh0LnZhbHVlWzBdPDwxNik7aWYoZT49dGhpcy5wb2ludENvdW50fHwwPmUpcmV0dXJuIG51bGw7dmFyIHI9dGhpcy5wb2ludHNbZV0sbj10aGlzLl9zZWxlY3RSZXN1bHQ7bi5pbmRleD1lO2Zvcih2YXIgaT0wOzM+aTsrK2kpbi5wb3NpdGlvbltpXT1uLmRhdGFDb29yZGluYXRlW2ldPXJbaV07cmV0dXJuIG59LF8uaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXQuaW5kZXgscj0yNTUmZSxuPWU+PjgmMjU1LGk9ZT4+MTYmMjU1O3RoaXMuaGlnaGxpZ2h0SWQ9W3IvMjU1LG4vMjU1LGkvMjU1LDBdfWVsc2UgdGhpcy5oaWdobGlnaHRJZD1bMSwxLDEsMV19LF8udXBkYXRlPWZ1bmN0aW9uKHQpe2lmKHQ9dHx8e30sInBlcnNwZWN0aXZlImluIHQmJih0aGlzLnVzZU9ydGhvPSF0LnBlcnNwZWN0aXZlKSwib3J0aG9ncmFwaGljImluIHQmJih0aGlzLnVzZU9ydGhvPSEhdC5vcnRob2dyYXBoaWMpLCJsaW5lV2lkdGgiaW4gdCYmKHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRoKSwicHJvamVjdCJpbiB0KWlmKEFycmF5LmlzQXJyYXkodC5wcm9qZWN0KSl0aGlzLmF4ZXNQcm9qZWN0PXQucHJvamVjdDtlbHNle3ZhciBlPSEhdC5wcm9qZWN0O3RoaXMuYXhlc1Byb2plY3Q9W2UsZSxlXX1pZigicHJvamVjdFNjYWxlImluIHQpaWYoQXJyYXkuaXNBcnJheSh0LnByb2plY3RTY2FsZSkpdGhpcy5wcm9qZWN0U2NhbGU9dC5wcm9qZWN0U2NhbGUuc2xpY2UoKTtlbHNle3ZhciByPSt0LnByb2plY3RTY2FsZTt0aGlzLnByb2plY3RTY2FsZT1bcixyLHJdfWlmKCJwcm9qZWN0T3BhY2l0eSJpbiB0KWlmKEFycmF5LmlzQXJyYXkodC5wcm9qZWN0T3BhY2l0eSkpdGhpcy5wcm9qZWN0T3BhY2l0eT10LnByb2plY3RPcGFjaXR5LnNsaWNlKCk7ZWxzZXt2YXIgcj0rdC5wcm9qZWN0T3BhY2l0eTt0aGlzLnByb2plY3RPcGFjaXR5PVtyLHIscl19Im9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT10Lm9wYWNpdHkpLHRoaXMuZGlydHk9ITA7dmFyIG49dC5wb3NpdGlvbjtpZihuKXt2YXIgaT10LmZvbnR8fCJub3JtYWwiLG89dC5hbGlnbm1lbnR8fFswLDBdLGE9WzEvMCwxLzAsMS8wXSxzPVstKDEvMCksLSgxLzApLC0oMS8wKV0sbD10LmdseXBoLHU9dC5jb2xvcixjPXQuc2l6ZSxoPXQuYW5nbGUsZj10LmxpbmVDb2xvcixwPTAsZD0wLG09MCx2PW4ubGVuZ3RoO3Q6Zm9yKHZhciB5PTA7dj55OysreSl7Zm9yKHZhciB4PW5beV0sXz0wOzM+XzsrK18paWYoaXNOYU4oeFtfXSl8fCFpc0Zpbml0ZSh4W19dKSljb250aW51ZSB0O3ZhciB3O3c9QXJyYXkuaXNBcnJheShsKT9iKGxbeV0saSk6bD9iKGwsaSk6YigiXHUyNWNmIixpKTt2YXIgTT13WzBdLGs9d1sxXSxBPXdbMl07ZCs9MypNLmNlbGxzLmxlbmd0aCxtKz0yKmsuZWRnZXMubGVuZ3RofXZhciBUPWQrbSxFPWcubWFsbG9jRmxvYXQoMypUKSxTPWcubWFsbG9jRmxvYXQoNCpUKSxMPWcubWFsbG9jRmxvYXQoMipUKSx6PWcubWFsbG9jVWludDMyKFQpLEk9WzAsb1sxXV0sUD0wLEM9ZCxSPVswLDAsMCwxXSxqPVswLDAsMCwxXSxEPUFycmF5LmlzQXJyYXkodSkmJkFycmF5LmlzQXJyYXkodVswXSksTz1BcnJheS5pc0FycmF5KGYpJiZBcnJheS5pc0FycmF5KGZbMF0pO3Q6Zm9yKHZhciB5PTA7dj55OysreSl7Zm9yKHZhciB4PW5beV0sXz0wOzM+XzsrK18pe2lmKGlzTmFOKHhbX10pfHwhaXNGaW5pdGUoeFtfXSkpe3ArPTE7Y29udGludWUgdH1zW19dPU1hdGgubWF4KHNbX10seFtfXSksYVtfXT1NYXRoLm1pbihhW19dLHhbX10pfXZhciB3O3c9QXJyYXkuaXNBcnJheShsKT9iKGxbeV0saSk6bD9iKGwsaSk6YigiXHUyNWNmIixpKTt2YXIgTT13WzBdLGs9d1sxXSxBPXdbMl07aWYoQXJyYXkuaXNBcnJheSh1KSl7dmFyIEY7aWYoRj1EP3VbeV06dSwzPT09Ri5sZW5ndGgpe2Zvcih2YXIgXz0wOzM+XzsrK18pUltfXT1GW19dO1JbM109MX1lbHNlIGlmKDQ9PT1GLmxlbmd0aClmb3IodmFyIF89MDs0Pl87KytfKVJbX109RltfXX1lbHNlIFJbMF09UlsxXT1SWzJdPTAsUlszXT0xO2lmKEFycmF5LmlzQXJyYXkoZikpe3ZhciBGO2lmKEY9Tz9mW3ldOmYsMz09PUYubGVuZ3RoKXtmb3IodmFyIF89MDszPl87KytfKWpbX109RltfXTtqW19dPTF9ZWxzZSBpZig0PT09Ri5sZW5ndGgpZm9yKHZhciBfPTA7ND5fOysrXylqW19dPUZbX119ZWxzZSBqWzBdPWpbMV09alsyXT0wLGpbM109MTt2YXIgTj0uNTtBcnJheS5pc0FycmF5KGMpP049K2NbeV06Yz9OPStjOnRoaXMudXNlT3J0aG8mJihOPTEyKTt2YXIgQj0wO0FycmF5LmlzQXJyYXkoaCk/Qj0raFt5XTpoJiYoQj0raCk7Zm9yKHZhciBVPU1hdGguY29zKEIpLFY9TWF0aC5zaW4oQikseD1uW3ldLF89MDszPl87KytfKXNbX109TWF0aC5tYXgoc1tfXSx4W19dKSxhW19dPU1hdGgubWluKGFbX10seFtfXSk7b1swXTwwP0lbMF09b1swXSooMStBWzFdWzBdKTpvWzBdPjAmJihJWzBdPS1vWzBdKigxK0FbMF1bMF0pKTtmb3IodmFyIHE9TS5jZWxscyxHPU0ucG9zaXRpb25zLF89MDtfPHEubGVuZ3RoOysrXylmb3IodmFyIEg9cVtfXSxYPTA7Mz5YOysrWCl7Zm9yKHZhciBZPTA7Mz5ZOysrWSlFWzMqUCtZXT14W1ldO2Zvcih2YXIgWT0wOzQ+WTsrK1kpU1s0KlArWV09UltZXTt6W1BdPXA7dmFyIFc9R1tIW1hdXTtMWzIqUF09TiooVSpXWzBdLVYqV1sxXStJWzBdKSxMWzIqUCsxXT1OKihWKldbMF0rVSpXWzFdK0lbMV0pLFArPTF9Zm9yKHZhciBxPWsuZWRnZXMsRz1rLnBvc2l0aW9ucyxfPTA7XzxxLmxlbmd0aDsrK18pZm9yKHZhciBIPXFbX10sWD0wOzI+WDsrK1gpe2Zvcih2YXIgWT0wOzM+WTsrK1kpRVszKkMrWV09eFtZXTtmb3IodmFyIFk9MDs0Plk7KytZKVNbNCpDK1ldPWpbWV07eltDXT1wO3ZhciBXPUdbSFtYXV07TFsyKkNdPU4qKFUqV1swXS1WKldbMV0rSVswXSksTFsyKkMrMV09TiooVipXWzBdK1UqV1sxXStJWzFdKSxDKz0xfXArPTF9dGhpcy52ZXJ0ZXhDb3VudD1kLHRoaXMubGluZVZlcnRleENvdW50PW0sdGhpcy5wb2ludEJ1ZmZlci51cGRhdGUoRSksdGhpcy5jb2xvckJ1ZmZlci51cGRhdGUoUyksdGhpcy5nbHlwaEJ1ZmZlci51cGRhdGUoTCksdGhpcy5pZEJ1ZmZlci51cGRhdGUobmV3IFVpbnQzMkFycmF5KHopKSxnLmZyZWUoRSksZy5mcmVlKFMpLGcuZnJlZShMKSxnLmZyZWUoeiksdGhpcy5ib3VuZHM9W2Esc10sdGhpcy5wb2ludHM9bix0aGlzLnBvaW50Q291bnQ9bi5sZW5ndGh9fSxfLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5vcnRob1NoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrUGVyc3BlY3RpdmVTaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja09ydGhvU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnZhby5kaXNwb3NlKCksdGhpcy5wb2ludEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5jb2xvckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5nbHlwaEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5pZEJ1ZmZlci5kaXNwb3NlKCl9fSx7Ii4vbGliL2dseXBocyI6MjAyLCIuL2xpYi9zaGFkZXJzIjoyMDMsImdsLWJ1ZmZlciI6MTI5LCJnbC1tYXQ0L211bHRpcGx5IjoxNTAsImdsLXZhbyI6MjM3LCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDIwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmJveFZlcnRleD0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiB2ZXJ0ZXg7XG5cbnVuaWZvcm0gdmVjMiBjb3JuZXJBLCBjb3JuZXJCO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChtaXgoY29ybmVyQSwgY29ybmVyQiwgdmVydGV4KSwgMCwgMSk7XG59XG4iLHIuYm94RnJhZ21lbnQ9InByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufVxuIn0se31dLDIwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLmJveEJ1ZmZlcj1lLHRoaXMuYm94U2hhZGVyPXIsdGhpcy5lbmFibGVkPSEwLHRoaXMuc2VsZWN0Qm94PVsxLzAsMS8wLC0oMS8wKSwtKDEvMCldLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDFdLHRoaXMuaW5uZXJGaWxsPSExLHRoaXMuaW5uZXJDb2xvcj1bMCwwLDAsLjI1XSx0aGlzLm91dGVyRmlsbD0hMCx0aGlzLm91dGVyQ29sb3I9WzAsMCwwLC41XSx0aGlzLmJvcmRlcldpZHRoPTEwfWZ1bmN0aW9uIGkodCxlKXt2YXIgcj10LmdsLGk9YShyLFswLDAsMCwxLDEsMCwxLDFdKSxsPW8ocixzLmJveFZlcnRleCxzLmJveEZyYWdtZW50KSx1PW5ldyBuKHQsaSxsKTtyZXR1cm4gdS51cGRhdGUoZSksdC5hZGRPdmVybGF5KHUpLHV9dmFyIG89dCgiZ2wtc2hhZGVyIiksYT10KCJnbC1idWZmZXIiKSxzPXQoIi4vbGliL3NoYWRlcnMiKTtlLmV4cG9ydHM9aTt2YXIgbD1uLnByb3RvdHlwZTtsLmRyYXc9ZnVuY3Rpb24oKXtpZih0aGlzLmVuYWJsZWQpe3ZhciB0PXRoaXMucGxvdCxlPXRoaXMuc2VsZWN0Qm94LHI9dGhpcy5ib3JkZXJXaWR0aCxuPSh0aGlzLmlubmVyRmlsbCx0aGlzLmlubmVyQ29sb3IpLGk9KHRoaXMub3V0ZXJGaWxsLHRoaXMub3V0ZXJDb2xvciksbz10aGlzLmJvcmRlckNvbG9yLGE9dC5ib3gscz10LnNjcmVlbkJveCxsPXQuZGF0YUJveCx1PXQudmlld0JveCxjPXQucGl4ZWxSYXRpbyxoPShlWzBdLWxbMF0pKih1WzJdLXVbMF0pLyhsWzJdLWxbMF0pK3VbMF0sZj0oZVsxXS1sWzFdKSoodVszXS11WzFdKS8obFszXS1sWzFdKSt1WzFdLHA9KGVbMl0tbFswXSkqKHVbMl0tdVswXSkvKGxbMl0tbFswXSkrdVswXSxkPShlWzNdLWxbMV0pKih1WzNdLXVbMV0pLyhsWzNdLWxbMV0pK3VbMV07aWYoaD1NYXRoLm1heChoLHVbMF0pLGY9TWF0aC5tYXgoZix1WzFdKSxwPU1hdGgubWluKHAsdVsyXSksZD1NYXRoLm1pbihkLHVbM10pLCEoaD5wfHxmPmQpKXthLmJpbmQoKTt2YXIgbT1zWzJdLXNbMF0sZz1zWzNdLXNbMV07aWYodGhpcy5vdXRlckZpbGwmJihhLmRyYXdCb3goMCwwLG0sZixpKSxhLmRyYXdCb3goMCxmLGgsZCxpKSxhLmRyYXdCb3goMCxkLG0sZyxpKSxhLmRyYXdCb3gocCxmLG0sZCxpKSksdGhpcy5pbm5lckZpbGwmJmEuZHJhd0JveChoLGYscCxkLG4pLHI+MCl7dmFyIHY9cipjO2EuZHJhd0JveChoLXYsZi12LHArdixmK3YsbyksYS5kcmF3Qm94KGgtdixkLXYscCt2LGQrdixvKSxhLmRyYXdCb3goaC12LGYtdixoK3YsZCt2LG8pLGEuZHJhd0JveChwLXYsZi12LHArdixkK3Ysbyl9fX19LGwudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sdGhpcy5pbm5lckZpbGw9ISF0LmlubmVyRmlsbCx0aGlzLm91dGVyRmlsbD0hIXQub3V0ZXJGaWxsLHRoaXMuaW5uZXJDb2xvcj0odC5pbm5lckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMub3V0ZXJDb2xvcj0odC5vdXRlckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMuYm9yZGVyQ29sb3I9KHQuYm9yZGVyQ29sb3J8fFswLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmJvcmRlcldpZHRoPXQuYm9yZGVyV2lkdGh8fDAsdGhpcy5zZWxlY3RCb3g9KHQuc2VsZWN0Qm94fHx0aGlzLnNlbGVjdEJveCkuc2xpY2UoKX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ib3hCdWZmZXIuZGlzcG9zZSgpLHRoaXMuYm94U2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBsb3QucmVtb3ZlT3ZlcmxheSh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MjA1LCJnbC1idWZmZXIiOjEyOSwiZ2wtc2hhZGVyIjoyMDh9XSwyMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe3RoaXMuY29vcmQ9W3QsZV0sdGhpcy5pZD1yLHRoaXMudmFsdWU9bix0aGlzLmRpc3RhbmNlPWl9ZnVuY3Rpb24gaSh0LGUscil7dGhpcy5nbD10LHRoaXMuZmJvPWUsdGhpcy5idWZmZXI9cix0aGlzLl9yZWFkVGltZW91dD1udWxsO3ZhciBuPXRoaXM7dGhpcy5fcmVhZENhbGxiYWNrPWZ1bmN0aW9uKCl7bi5nbCYmKGUuYmluZCgpLHQucmVhZFBpeGVscygwLDAsZS5zaGFwZVswXSxlLnNoYXBlWzFdLHQuUkdCQSx0LlVOU0lHTkVEX0JZVEUsbi5idWZmZXIpLG4uX3JlYWRUaW1lb3V0PW51bGwpfX1mdW5jdGlvbiBvKHQsZSl7dmFyIHI9YSh0LGUpLG49cy5tYWxsb2NVaW50OChlWzBdKmVbMV0qNCk7cmV0dXJuIG5ldyBpKHQscixuKX1lLmV4cG9ydHM9bzt2YXIgYT10KCJnbC1mYm8iKSxzPXQoInR5cGVkYXJyYXktcG9vbCIpLGw9dCgibmRhcnJheSIpLHU9dCgiYml0LXR3aWRkbGUiKS5uZXh0UG93MixjPXQoImN3aXNlL2xpYi93cmFwcGVyIikoe2FyZ3M6WyJhcnJheSIse29mZnNldDpbMCwwLDFdLGFycmF5OjB9LHtvZmZzZXQ6WzAsMCwyXSxhcnJheTowfSx7b2Zmc2V0OlswLDAsM10sYXJyYXk6MH0sInNjYWxhciIsInNjYWxhciIsImluZGV4Il0scHJlOntib2R5OiJ7dGhpc19jbG9zZXN0RDI9MWU4LHRoaXNfY2xvc2VzdFg9LTEsdGhpc19jbG9zZXN0WT0tMX0iLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX2Nsb3Nlc3REMiIsInRoaXNfY2xvc2VzdFgiLCJ0aGlzX2Nsb3Nlc3RZIl0sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7aWYoMjU1Pl9pbmxpbmVfNDZfYXJnMF98fDI1NT5faW5saW5lXzQ2X2FyZzFffHwyNTU+X2lubGluZV80Nl9hcmcyX3x8MjU1Pl9pbmxpbmVfNDZfYXJnM18pe3ZhciBfaW5saW5lXzQ2X2w9X2lubGluZV80Nl9hcmc0Xy1faW5saW5lXzQ2X2FyZzZfWzBdLF9pbmxpbmVfNDZfYT1faW5saW5lXzQ2X2FyZzVfLV9pbmxpbmVfNDZfYXJnNl9bMV0sX2lubGluZV80Nl9mPV9pbmxpbmVfNDZfbCpfaW5saW5lXzQ2X2wrX2lubGluZV80Nl9hKl9pbmxpbmVfNDZfYTtfaW5saW5lXzQ2X2Y8dGhpc19jbG9zZXN0RDImJih0aGlzX2Nsb3Nlc3REMj1faW5saW5lXzQ2X2YsdGhpc19jbG9zZXN0WD1faW5saW5lXzQ2X2FyZzZfWzBdLHRoaXNfY2xvc2VzdFk9X2lubGluZV80Nl9hcmc2X1sxXSl9fSIsYXJnczpbe25hbWU6Il9pbmxpbmVfNDZfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNDZfYXJnMV8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNDZfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNDZfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNDZfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNDZfYXJnNV8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfNDZfYXJnNl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6NH1dLHRoaXNWYXJzOlsidGhpc19jbG9zZXN0RDIiLCJ0aGlzX2Nsb3Nlc3RYIiwidGhpc19jbG9zZXN0WSJdLGxvY2FsVmFyczpbIl9pbmxpbmVfNDZfYSIsIl9pbmxpbmVfNDZfZiIsIl9pbmxpbmVfNDZfbCJdfSxwb3N0Ontib2R5OiJ7cmV0dXJuW3RoaXNfY2xvc2VzdFgsdGhpc19jbG9zZXN0WSx0aGlzX2Nsb3Nlc3REMl19IixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19jbG9zZXN0RDIiLCJ0aGlzX2Nsb3Nlc3RYIiwidGhpc19jbG9zZXN0WSJdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6ImN3aXNlIixibG9ja1NpemU6NjR9KSxoPWkucHJvdG90eXBlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJzaGFwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdsP3RoaXMuZmJvLnNoYXBlLnNsaWNlKCk6WzAsMF19LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLmdsKXt0aGlzLmZiby5zaGFwZT10O3ZhciBlPXRoaXMuZmJvLnNoYXBlWzBdLHI9dGhpcy5mYm8uc2hhcGVbMV07aWYociplKjQ+dGhpcy5idWZmZXIubGVuZ3RoKXtzLmZyZWUodGhpcy5idWZmZXIpO2Zvcih2YXIgbj10aGlzLmJ1ZmZlcj1zLm1hbGxvY1VpbnQ4KHUociplKjQpKSxpPTA7ciplKjQ+aTsrK2kpbltpXT0yNTV9cmV0dXJuIHR9fX0pLGguYmVnaW49ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3RoaXMuc2hhcGU7dCYmKHRoaXMuZmJvLmJpbmQoKSx0LmNsZWFyQ29sb3IoMSwxLDEsMSksdC5jbGVhcih0LkNPTE9SX0JVRkZFUl9CSVR8dC5ERVBUSF9CVUZGRVJfQklUKSl9LGguZW5kPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbDt0JiYodC5iaW5kRnJhbWVidWZmZXIodC5GUkFNRUJVRkZFUixudWxsKSx0aGlzLl9yZWFkVGltZW91dHx8Y2xlYXJUaW1lb3V0KHRoaXMuX3JlYWRUaW1lb3V0KSx0aGlzLl9yZWFkVGltZW91dD1zZXRUaW1lb3V0KHRoaXMuX3JlYWRDYWxsYmFjaywxKSl9LGgucXVlcnk9ZnVuY3Rpb24odCxlLHIpe2lmKCF0aGlzLmdsKXJldHVybiBudWxsO3ZhciBpPXRoaXMuZmJvLnNoYXBlLnNsaWNlKCk7dD0wfHQsZT0wfGUsIm51bWJlciIhPXR5cGVvZiByJiYocj0xKTt2YXIgbz0wfE1hdGgubWluKE1hdGgubWF4KHQtciwwKSxpWzBdKSxhPTB8TWF0aC5taW4oTWF0aC5tYXgodCtyLDApLGlbMF0pLHM9MHxNYXRoLm1pbihNYXRoLm1heChlLXIsMCksaVsxXSksdT0wfE1hdGgubWluKE1hdGgubWF4KGUrciwwKSxpWzFdKTtpZihvPj1hfHxzPj11KXJldHVybiBudWxsO3ZhciBoPVthLW8sdS1zXSxmPWwodGhpcy5idWZmZXIsW2hbMF0saFsxXSw0XSxbNCw0KmlbMF0sMV0sNCoobytpWzBdKnMpKSxwPWMoZi5oaShoWzBdLGhbMV0sMSkscixyKSxkPXBbMF0sbT1wWzFdO2lmKDA+ZHx8TWF0aC5wb3codGhpcy5yYWRpdXMsMik8cFsyXSlyZXR1cm4gbnVsbDt2YXIgZz1mLmdldChkLG0sMCksdj1mLmdldChkLG0sMSkseT1mLmdldChkLG0sMiksYj1mLmdldChkLG0sMyk7cmV0dXJuIG5ldyBuKGQrb3wwLG0rc3wwLGcsW3YseSxiXSxNYXRoLnNxcnQocFsyXSkpfSxoLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmdsJiYodGhpcy5mYm8uZGlzcG9zZSgpLHMuZnJlZSh0aGlzLmJ1ZmZlciksdGhpcy5nbD1udWxsLHRoaXMuX3JlYWRUaW1lb3V0JiZjbGVhclRpbWVvdXQodGhpcy5fcmVhZFRpbWVvdXQpKX19LHsiYml0LXR3aWRkbGUiOjUxLCJjd2lzZS9saWIvd3JhcHBlciI6MTIzLCJnbC1mYm8iOjEzNCxuZGFycmF5OjQ1NiwidHlwZWRhcnJheS1wb29sIjo0ODF9XSwyMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLmdsPXQsdGhpcy5fdnJlZj10aGlzLl9mcmVmPXRoaXMuX3JlbGluaz10aGlzLnZlcnRTaGFkZXI9dGhpcy5mcmFnU2hhZGVyPXRoaXMucHJvZ3JhbT10aGlzLmF0dHJpYnV0ZXM9dGhpcy51bmlmb3Jtcz10aGlzLnR5cGVzPW51bGx9ZnVuY3Rpb24gaSh0LGUpe3JldHVybiB0Lm5hbWU8ZS5uYW1lPy0xOjF9ZnVuY3Rpb24gbyh0LGUscixpLG8pe3ZhciBhPW5ldyBuKHQpO3JldHVybiBhLnVwZGF0ZShlLHIsaSxvKSxhfXZhciBhPXQoIi4vbGliL2NyZWF0ZS11bmlmb3JtcyIpLHM9dCgiLi9saWIvY3JlYXRlLWF0dHJpYnV0ZXMiKSxsPXQoIi4vbGliL3JlZmxlY3QiKSx1PXQoIi4vbGliL3NoYWRlci1jYWNoZSIpLGM9dCgiLi9saWIvcnVudGltZS1yZWZsZWN0IiksaD10KCIuL2xpYi9HTEVycm9yIiksZj1uLnByb3RvdHlwZTtmLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLnByb2dyYW18fHRoaXMuX3JlbGluaygpLHRoaXMuZ2wudXNlUHJvZ3JhbSh0aGlzLnByb2dyYW0pfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9mcmVmJiZ0aGlzLl9mcmVmLmRpc3Bvc2UoKSx0aGlzLl92cmVmJiZ0aGlzLl92cmVmLmRpc3Bvc2UoKSx0aGlzLmF0dHJpYnV0ZXM9dGhpcy50eXBlcz10aGlzLnZlcnRTaGFkZXI9dGhpcy5mcmFnU2hhZGVyPXRoaXMucHJvZ3JhbT10aGlzLl9yZWxpbms9dGhpcy5fZnJlZj10aGlzLl92cmVmPW51bGx9LGYudXBkYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe2Z1bmN0aW9uIG8oKXtwLnByb2dyYW09dS5wcm9ncmFtKGQscC5fdnJlZixwLl9mcmVmLHgsXyk7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDsrK3QpU1t0XT1kLmdldFVuaWZvcm1Mb2NhdGlvbihwLnByb2dyYW0sclt0XS5uYW1lKX1pZighZXx8MT09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBmPXQ7dD1mLnZlcnRleCxlPWYuZnJhZ21lbnQscj1mLnVuaWZvcm1zLG49Zi5hdHRyaWJ1dGVzfXZhciBwPXRoaXMsZD1wLmdsLG09cC5fdnJlZjtwLl92cmVmPXUuc2hhZGVyKGQsZC5WRVJURVhfU0hBREVSLHQpLG0mJm0uZGlzcG9zZSgpLHAudmVydFNoYWRlcj1wLl92cmVmLnNoYWRlcjt2YXIgZz10aGlzLl9mcmVmO2lmKHAuX2ZyZWY9dS5zaGFkZXIoZCxkLkZSQUdNRU5UX1NIQURFUixlKSxnJiZnLmRpc3Bvc2UoKSxwLmZyYWdTaGFkZXI9cC5fZnJlZi5zaGFkZXIsIXJ8fCFuKXt2YXIgdj1kLmNyZWF0ZVByb2dyYW0oKTtpZihkLmF0dGFjaFNoYWRlcih2LHAuZnJhZ1NoYWRlciksZC5hdHRhY2hTaGFkZXIodixwLnZlcnRTaGFkZXIpLGQubGlua1Byb2dyYW0odiksIWQuZ2V0UHJvZ3JhbVBhcmFtZXRlcih2LGQuTElOS19TVEFUVVMpKXt2YXIgeT1kLmdldFByb2dyYW1JbmZvTG9nKHYpO3Rocm93IG5ldyBoKHksIkVycm9yIGxpbmtpbmcgcHJvZ3JhbToiK3kpfXI9cnx8Yy51bmlmb3JtcyhkLHYpLG49bnx8Yy5hdHRyaWJ1dGVzKGQsdiksZC5kZWxldGVQcm9ncmFtKHYpfW49bi5zbGljZSgpLG4uc29ydChpKTtmb3IodmFyIGI9W10seD1bXSxfPVtdLHc9MDt3PG4ubGVuZ3RoOysrdyl7dmFyIE09blt3XTtpZihNLnR5cGUuaW5kZXhPZigibWF0Iik+PTApe2Zvcih2YXIgaz0wfE0udHlwZS5jaGFyQXQoTS50eXBlLmxlbmd0aC0xKSxBPW5ldyBBcnJheShrKSxUPTA7az5UOysrVClBW1RdPV8ubGVuZ3RoLHgucHVzaChNLm5hbWUrIlsiK1QrIl0iKSwibnVtYmVyIj09dHlwZW9mIE0ubG9jYXRpb24/Xy5wdXNoKE0ubG9jYXRpb24rVCk6QXJyYXkuaXNBcnJheShNLmxvY2F0aW9uKSYmTS5sb2NhdGlvbi5sZW5ndGg9PT1rJiYibnVtYmVyIj09dHlwZW9mIE0ubG9jYXRpb25bVF0/Xy5wdXNoKDB8TS5sb2NhdGlvbltUXSk6Xy5wdXNoKC0xKTtiLnB1c2goe25hbWU6TS5uYW1lLHR5cGU6TS50eXBlLGxvY2F0aW9uczpBfSl9ZWxzZSBiLnB1c2goe25hbWU6TS5uYW1lLHR5cGU6TS50eXBlLGxvY2F0aW9uczpbXy5sZW5ndGhdfSkseC5wdXNoKE0ubmFtZSksIm51bWJlciI9PXR5cGVvZiBNLmxvY2F0aW9uP18ucHVzaCgwfE0ubG9jYXRpb24pOl8ucHVzaCgtMSl9Zm9yKHZhciBFPTAsdz0wO3c8Xy5sZW5ndGg7Kyt3KWlmKF9bd108MCl7Zm9yKDtfLmluZGV4T2YoRSk+PTA7KUUrPTE7X1t3XT1FfXZhciBTPW5ldyBBcnJheShyLmxlbmd0aCk7bygpLHAuX3JlbGluaz1vLHAudHlwZXM9e3VuaWZvcm1zOmwociksYXR0cmlidXRlczpsKG4pfSxwLmF0dHJpYnV0ZXM9cyhkLHAsYixfKSxPYmplY3QuZGVmaW5lUHJvcGVydHkocCwidW5pZm9ybXMiLGEoZCxwLHIsUykpfSxlLmV4cG9ydHM9b30seyIuL2xpYi9HTEVycm9yIjoyMDksIi4vbGliL2NyZWF0ZS1hdHRyaWJ1dGVzIjoyMTAsIi4vbGliL2NyZWF0ZS11bmlmb3JtcyI6MjExLCIuL2xpYi9yZWZsZWN0IjoyMTIsIi4vbGliL3J1bnRpbWUtcmVmbGVjdCI6MjEzLCIuL2xpYi9zaGFkZXItY2FjaGUiOjIxNH1dLDIwOTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuc2hvcnRNZXNzYWdlPWV8fCIiLHRoaXMubG9uZ01lc3NhZ2U9cnx8IiIsdGhpcy5yYXdFcnJvcj10fHwiIix0aGlzLm1lc3NhZ2U9ImdsLXNoYWRlcjogIisoZXx8dHx8IiIpKyhyPyJcbiIrcjoiIiksdGhpcy5zdGFjaz0obmV3IEVycm9yKS5zdGFja31uLnByb3RvdHlwZT1uZXcgRXJyb3Isbi5wcm90b3R5cGUubmFtZT0iR0xFcnJvciIsbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixlLmV4cG9ydHM9bn0se31dLDIxMDpbZnVuY3Rpb24odCxlLHIpewoidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyl7dGhpcy5fZ2w9dCx0aGlzLl93cmFwcGVyPWUsdGhpcy5faW5kZXg9cix0aGlzLl9sb2NhdGlvbnM9bix0aGlzLl9kaW1lbnNpb249aSx0aGlzLl9jb25zdEZ1bmM9b31mdW5jdGlvbiBpKHQsZSxyLGksbyxhLHMpe2Zvcih2YXIgbD1bImdsIiwidiJdLHU9W10sYz0wO28+YzsrK2MpbC5wdXNoKCJ4IitjKSx1LnB1c2goIngiK2MpO2wucHVzaCgiaWYoeDAubGVuZ3RoPT09dm9pZCAwKXtyZXR1cm4gZ2wudmVydGV4QXR0cmliIitvKyJmKHYsIit1LmpvaW4oKSsiKX1lbHNle3JldHVybiBnbC52ZXJ0ZXhBdHRyaWIiK28rImZ2KHYseDApfSIpO3ZhciBoPUZ1bmN0aW9uLmFwcGx5KG51bGwsbCksZj1uZXcgbih0LGUscixpLG8saCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEscyx7c2V0OmZ1bmN0aW9uKGUpe3JldHVybiB0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpW3JdKSxoKHQsaVtyXSxlKSxlfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sZW51bWVyYWJsZTohMH0pfWZ1bmN0aW9uIG8odCxlLHIsbixvLGEscyl7Zm9yKHZhciBsPW5ldyBBcnJheShvKSx1PW5ldyBBcnJheShvKSxjPTA7bz5jOysrYylpKHQsZSxyW2NdLG4sbyxsLGMpLHVbY109bFtjXTtPYmplY3QuZGVmaW5lUHJvcGVydHkobCwibG9jYXRpb24iLHtzZXQ6ZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIGU9MDtvPmU7KytlKXVbZV0ubG9jYXRpb249dFtlXTtlbHNlIGZvcih2YXIgZT0wO28+ZTsrK2UpdVtlXS5sb2NhdGlvbj10K2U7cmV0dXJuIHR9LGdldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkobyksZT0wO28+ZTsrK2UpdFtlXT1uW3JbZV1dO3JldHVybiB0fSxlbnVtZXJhYmxlOiEwfSksbC5wb2ludGVyPWZ1bmN0aW9uKGUsaSxhLHMpe2U9ZXx8dC5GTE9BVCxpPSEhaSxhPWF8fG8qbyxzPXN8fDA7Zm9yKHZhciBsPTA7bz5sOysrbCl7dmFyIHU9bltyW2xdXTt0LnZlcnRleEF0dHJpYlBvaW50ZXIodSxvLGUsaSxhLHMrbCpvKSx0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHUpfX07dmFyIGg9bmV3IEFycmF5KG8pLGY9dFsidmVydGV4QXR0cmliIitvKyJmdiJdO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHMse3NldDpmdW5jdGlvbihlKXtmb3IodmFyIGk9MDtvPmk7KytpKXt2YXIgYT1uW3JbaV1dO2lmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGEpLEFycmF5LmlzQXJyYXkoZVswXSkpZi5jYWxsKHQsYSxlW2ldKTtlbHNle2Zvcih2YXIgcz0wO28+czsrK3MpaFtzXT1lW28qaStzXTtmLmNhbGwodCxhLGgpfX1yZXR1cm4gZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGVudW1lcmFibGU6ITB9KX1mdW5jdGlvbiBhKHQsZSxyLG4pe2Zvcih2YXIgYT17fSxsPTAsdT1yLmxlbmd0aDt1Pmw7KytsKXt2YXIgYz1yW2xdLGg9Yy5uYW1lLGY9Yy50eXBlLHA9Yy5sb2NhdGlvbnM7c3dpdGNoKGYpe2Nhc2UiYm9vbCI6Y2FzZSJpbnQiOmNhc2UiZmxvYXQiOmkodCxlLHBbMF0sbiwxLGEsaCk7YnJlYWs7ZGVmYXVsdDppZihmLmluZGV4T2YoInZlYyIpPj0wKXt2YXIgZD1mLmNoYXJDb2RlQXQoZi5sZW5ndGgtMSktNDg7aWYoMj5kfHxkPjQpdGhyb3cgbmV3IHMoIiIsIkludmFsaWQgZGF0YSB0eXBlIGZvciBhdHRyaWJ1dGUgIitoKyI6ICIrZik7aSh0LGUscFswXSxuLGQsYSxoKX1lbHNle2lmKCEoZi5pbmRleE9mKCJtYXQiKT49MCkpdGhyb3cgbmV3IHMoIiIsIlVua25vd24gZGF0YSB0eXBlIGZvciBhdHRyaWJ1dGUgIitoKyI6ICIrZik7dmFyIGQ9Zi5jaGFyQ29kZUF0KGYubGVuZ3RoLTEpLTQ4O2lmKDI+ZHx8ZD40KXRocm93IG5ldyBzKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIraCsiOiAiK2YpO28odCxlLHAsbixkLGEsaCl9fX1yZXR1cm4gYX1lLmV4cG9ydHM9YTt2YXIgcz10KCIuL0dMRXJyb3IiKSxsPW4ucHJvdG90eXBlO2wucG9pbnRlcj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLG89aS5fZ2wsYT1pLl9sb2NhdGlvbnNbaS5faW5kZXhdO28udmVydGV4QXR0cmliUG9pbnRlcihhLGkuX2RpbWVuc2lvbix0fHxvLkZMT0FULCEhZSxyfHwwLG58fDApLG8uZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYSl9LGwuc2V0PWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9jb25zdEZ1bmModGhpcy5fbG9jYXRpb25zW3RoaXMuX2luZGV4XSx0LGUscixuKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImxvY2F0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdCE9PXRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF0mJih0aGlzLl9sb2NhdGlvbnNbdGhpcy5faW5kZXhdPTB8dCx0aGlzLl93cmFwcGVyLnByb2dyYW09bnVsbCksMHx0fX0pfSx7Ii4vR0xFcnJvciI6MjA5fV0sMjExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9bmV3IEZ1bmN0aW9uKCJ5IiwicmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHl9Iik7cmV0dXJuIGUodCl9ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodCksbj0wO3Q+bjsrK24pcltuXT1lO3JldHVybiByfWZ1bmN0aW9uIG8odCxlLHIsbyl7ZnVuY3Rpb24gbChyKXt2YXIgbj1uZXcgRnVuY3Rpb24oImdsIiwid3JhcHBlciIsImxvY2F0aW9ucyIsInJldHVybiBmdW5jdGlvbigpe3JldHVybiBnbC5nZXRVbmlmb3JtKHdyYXBwZXIucHJvZ3JhbSxsb2NhdGlvbnNbIityKyJdKX0iKTtyZXR1cm4gbih0LGUsbyl9ZnVuY3Rpb24gdSh0LGUscil7c3dpdGNoKHIpe2Nhc2UiYm9vbCI6Y2FzZSJpbnQiOmNhc2Uic2FtcGxlcjJEIjpjYXNlInNhbXBsZXJDdWJlIjpyZXR1cm4iZ2wudW5pZm9ybTFpKGxvY2F0aW9uc1siK2UrIl0sb2JqIit0KyIpIjtjYXNlImZsb2F0IjpyZXR1cm4iZ2wudW5pZm9ybTFmKGxvY2F0aW9uc1siK2UrIl0sb2JqIit0KyIpIjtkZWZhdWx0OnZhciBuPXIuaW5kZXhPZigidmVjIik7aWYoIShuPj0wJiYxPj1uJiZyLmxlbmd0aD09PTQrbikpe2lmKDA9PT1yLmluZGV4T2YoIm1hdCIpJiY0PT09ci5sZW5ndGgpe3ZhciBpPXIuY2hhckNvZGVBdChyLmxlbmd0aC0xKS00ODtpZigyPml8fGk+NCl0aHJvdyBuZXcgcygiIiwiSW52YWxpZCB1bmlmb3JtIGRpbWVuc2lvbiB0eXBlIGZvciBtYXRyaXggIituYW1lKyI6ICIrcik7cmV0dXJuImdsLnVuaWZvcm1NYXRyaXgiK2krImZ2KGxvY2F0aW9uc1siK2UrIl0sZmFsc2Usb2JqIit0KyIpIn10aHJvdyBuZXcgcygiIiwiVW5rbm93biB1bmlmb3JtIGRhdGEgdHlwZSBmb3IgIituYW1lKyI6ICIrcil9dmFyIGk9ci5jaGFyQ29kZUF0KHIubGVuZ3RoLTEpLTQ4O2lmKDI+aXx8aT40KXRocm93IG5ldyBzKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSIpO3N3aXRjaChyLmNoYXJBdCgwKSl7Y2FzZSJiIjpjYXNlImkiOnJldHVybiJnbC51bmlmb3JtIitpKyJpdihsb2NhdGlvbnNbIitlKyJdLG9iaiIrdCsiKSI7Y2FzZSJ2IjpyZXR1cm4iZ2wudW5pZm9ybSIraSsiZnYobG9jYXRpb25zWyIrZSsiXSxvYmoiK3QrIikiO2RlZmF1bHQ6dGhyb3cgbmV3IHMoIiIsIlVucmVjb2duaXplZCBkYXRhIHR5cGUgZm9yIHZlY3RvciAiK25hbWUrIjogIityKX19fWZ1bmN0aW9uIGModCxlKXtpZigib2JqZWN0IiE9dHlwZW9mIGUpcmV0dXJuW1t0LGVdXTt2YXIgcj1bXTtmb3IodmFyIG4gaW4gZSl7dmFyIGk9ZVtuXSxvPXQ7bys9cGFyc2VJbnQobikrIiI9PT1uPyJbIituKyJdIjoiLiIrbiwib2JqZWN0Ij09dHlwZW9mIGk/ci5wdXNoLmFwcGx5KHIsYyhvLGkpKTpyLnB1c2goW28saV0pfXJldHVybiByfWZ1bmN0aW9uIGgoZSl7Zm9yKHZhciBuPVsicmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVByb3BlcnR5KG9iail7Il0saT1jKCIiLGUpLGE9MDthPGkubGVuZ3RoOysrYSl7dmFyIHM9aVthXSxsPXNbMF0saD1zWzFdO29baF0mJm4ucHVzaCh1KGwsaCxyW2hdLnR5cGUpKX1uLnB1c2goInJldHVybiBvYmp9Iik7dmFyIGY9bmV3IEZ1bmN0aW9uKCJnbCIsImxvY2F0aW9ucyIsbi5qb2luKCJcbiIpKTtyZXR1cm4gZih0LG8pfWZ1bmN0aW9uIGYodCl7c3dpdGNoKHQpe2Nhc2UiYm9vbCI6cmV0dXJuITE7Y2FzZSJpbnQiOmNhc2Uic2FtcGxlcjJEIjpjYXNlInNhbXBsZXJDdWJlIjpyZXR1cm4gMDtjYXNlImZsb2F0IjpyZXR1cm4gMDtkZWZhdWx0OnZhciBlPXQuaW5kZXhPZigidmVjIik7aWYoZT49MCYmMT49ZSYmdC5sZW5ndGg9PT00K2Upe3ZhciByPXQuY2hhckNvZGVBdCh0Lmxlbmd0aC0xKS00ODtpZigyPnJ8fHI+NCl0aHJvdyBuZXcgcygiIiwiSW52YWxpZCBkYXRhIHR5cGUiKTtyZXR1cm4iYiI9PT10LmNoYXJBdCgwKT9pKHIsITEpOmkociwwKX1pZigwPT09dC5pbmRleE9mKCJtYXQiKSYmND09PXQubGVuZ3RoKXt2YXIgcj10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSktNDg7aWYoMj5yfHxyPjQpdGhyb3cgbmV3IHMoIiIsIkludmFsaWQgdW5pZm9ybSBkaW1lbnNpb24gdHlwZSBmb3IgbWF0cml4ICIrbmFtZSsiOiAiK3QpO3JldHVybiBpKHIqciwwKX10aHJvdyBuZXcgcygiIiwiVW5rbm93biB1bmlmb3JtIGRhdGEgdHlwZSBmb3IgIituYW1lKyI6ICIrdCl9fWZ1bmN0aW9uIHAodCxlLGkpe2lmKCJvYmplY3QiPT10eXBlb2YgaSl7dmFyIGE9ZChpKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtnZXQ6bihhKSxzZXQ6aChpKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pfWVsc2Ugb1tpXT9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHtnZXQ6bChpKSxzZXQ6aChpKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMX0pOnRbZV09ZihyW2ldLnR5cGUpfWZ1bmN0aW9uIGQodCl7dmFyIGU7aWYoQXJyYXkuaXNBcnJheSh0KSl7ZT1uZXcgQXJyYXkodC5sZW5ndGgpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKXAoZSxyLHRbcl0pfWVsc2V7ZT17fTtmb3IodmFyIG4gaW4gdClwKGUsbix0W25dKX1yZXR1cm4gZX12YXIgbT1hKHIsITApO3JldHVybntnZXQ6bihkKG0pKSxzZXQ6aChtKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19dmFyIGE9dCgiLi9yZWZsZWN0Iikscz10KCIuL0dMRXJyb3IiKTtlLmV4cG9ydHM9b30seyIuL0dMRXJyb3IiOjIwOSwiLi9yZWZsZWN0IjoyMTJ9XSwyMTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0ubmFtZSxvPWkuc3BsaXQoIi4iKSxhPXIscz0wO3M8by5sZW5ndGg7KytzKXt2YXIgbD1vW3NdLnNwbGl0KCJbIik7aWYobC5sZW5ndGg+MSl7bFswXWluIGF8fChhW2xbMF1dPVtdKSxhPWFbbFswXV07Zm9yKHZhciB1PTE7dTxsLmxlbmd0aDsrK3Upe3ZhciBjPXBhcnNlSW50KGxbdV0pO3U8bC5sZW5ndGgtMXx8czxvLmxlbmd0aC0xPyhjIGluIGF8fCh1PGwubGVuZ3RoLTE/YVtjXT1bXTphW2NdPXt9KSxhPWFbY10pOmU/YVtjXT1uOmFbY109dFtuXS50eXBlfX1lbHNlIHM8by5sZW5ndGgtMT8obFswXWluIGF8fChhW2xbMF1dPXt9KSxhPWFbbFswXV0pOmU/YVtsWzBdXT1uOmFbbFswXV09dFtuXS50eXBlfXJldHVybiByfWUuZXhwb3J0cz1ufSx7fV0sMjEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZighcyl7dmFyIHI9T2JqZWN0LmtleXMoYSk7cz17fTtmb3IodmFyIG49MDtuPHIubGVuZ3RoOysrbil7dmFyIGk9cltuXTtzW3RbaV1dPWFbaV19fXJldHVybiBzW2VdfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsdC5BQ1RJVkVfVU5JRk9STVMpLGk9W10sbz0wO3I+bzsrK28pe3ZhciBhPXQuZ2V0QWN0aXZlVW5pZm9ybShlLG8pO2lmKGEpe3ZhciBzPW4odCxhLnR5cGUpO2lmKGEuc2l6ZT4xKWZvcih2YXIgbD0wO2w8YS5zaXplOysrbClpLnB1c2goe25hbWU6YS5uYW1lLnJlcGxhY2UoIlswXSIsIlsiK2wrIl0iKSx0eXBlOnN9KTtlbHNlIGkucHVzaCh7bmFtZTphLm5hbWUsdHlwZTpzfSl9fXJldHVybiBpfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKGUsdC5BQ1RJVkVfQVRUUklCVVRFUyksaT1bXSxvPTA7cj5vOysrbyl7dmFyIGE9dC5nZXRBY3RpdmVBdHRyaWIoZSxvKTthJiZpLnB1c2goe25hbWU6YS5uYW1lLHR5cGU6bih0LGEudHlwZSl9KX1yZXR1cm4gaX1yLnVuaWZvcm1zPWksci5hdHRyaWJ1dGVzPW87dmFyIGE9e0ZMT0FUOiJmbG9hdCIsRkxPQVRfVkVDMjoidmVjMiIsRkxPQVRfVkVDMzoidmVjMyIsRkxPQVRfVkVDNDoidmVjNCIsSU5UOiJpbnQiLElOVF9WRUMyOiJpdmVjMiIsSU5UX1ZFQzM6Iml2ZWMzIixJTlRfVkVDNDoiaXZlYzQiLEJPT0w6ImJvb2wiLEJPT0xfVkVDMjoiYnZlYzIiLEJPT0xfVkVDMzoiYnZlYzMiLEJPT0xfVkVDNDoiYnZlYzQiLEZMT0FUX01BVDI6Im1hdDIiLEZMT0FUX01BVDM6Im1hdDMiLEZMT0FUX01BVDQ6Im1hdDQiLFNBTVBMRVJfMkQ6InNhbXBsZXIyRCIsU0FNUExFUl9DVUJFOiJzYW1wbGVyQ3ViZSJ9LHM9bnVsbH0se31dLDIxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxvLGEpe3RoaXMuaWQ9dCx0aGlzLnNyYz1lLHRoaXMudHlwZT1yLHRoaXMuc2hhZGVyPW4sdGhpcy5jb3VudD1vLHRoaXMucHJvZ3JhbXM9W10sdGhpcy5jYWNoZT1hfWZ1bmN0aW9uIGkodCl7dGhpcy5nbD10LHRoaXMuc2hhZGVycz1be30se31dLHRoaXMucHJvZ3JhbXM9e319ZnVuY3Rpb24gbyh0LGUscil7dmFyIG49dC5jcmVhdGVTaGFkZXIoZSk7aWYodC5zaGFkZXJTb3VyY2UobixyKSx0LmNvbXBpbGVTaGFkZXIobiksIXQuZ2V0U2hhZGVyUGFyYW1ldGVyKG4sdC5DT01QSUxFX1NUQVRVUykpe3ZhciBpPXQuZ2V0U2hhZGVySW5mb0xvZyhuKTt0cnl7dmFyIG89aChpLHIsZSl9Y2F0Y2goYSl7dGhyb3cgY29uc29sZS53YXJuKCJGYWlsZWQgdG8gZm9ybWF0IGNvbXBpbGVyIGVycm9yOiAiK2EpLG5ldyBjKGksIkVycm9yIGNvbXBpbGluZyBzaGFkZXI6XG4iK2kpfXRocm93IG5ldyBjKGksby5zaG9ydCxvLmxvbmcpfXJldHVybiBufWZ1bmN0aW9uIGEodCxlLHIsbixpKXt2YXIgbz10LmNyZWF0ZVByb2dyYW0oKTt0LmF0dGFjaFNoYWRlcihvLGUpLHQuYXR0YWNoU2hhZGVyKG8scik7Zm9yKHZhciBhPTA7YTxuLmxlbmd0aDsrK2EpdC5iaW5kQXR0cmliTG9jYXRpb24obyxpW2FdLG5bYV0pO2lmKHQubGlua1Byb2dyYW0obyksIXQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihvLHQuTElOS19TVEFUVVMpKXt2YXIgcz10LmdldFByb2dyYW1JbmZvTG9nKG8pO3Rocm93IG5ldyBjKHMsIkVycm9yIGxpbmtpbmcgcHJvZ3JhbTogIitzKX1yZXR1cm4gb31mdW5jdGlvbiBzKHQpe3ZhciBlPXAuZ2V0KHQpO3JldHVybiBlfHwoZT1uZXcgaSh0KSxwLnNldCh0LGUpKSxlfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybiBzKHQpLmdldFNoYWRlclJlZmVyZW5jZShlLHIpfWZ1bmN0aW9uIHUodCxlLHIsbixpKXtyZXR1cm4gcyh0KS5nZXRQcm9ncmFtKGUscixuLGkpfXIuc2hhZGVyPWwsci5wcm9ncmFtPXU7dmFyIGM9dCgiLi9HTEVycm9yIiksaD10KCJnbC1mb3JtYXQtY29tcGlsZXItZXJyb3IiKSxmPSJ1bmRlZmluZWQiPT10eXBlb2YgV2Vha01hcD90KCJ3ZWFrbWFwLXNoaW0iKTpXZWFrTWFwLHA9bmV3IGYsZD0wO24ucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXtpZigwPT09LS10aGlzLmNvdW50KXtmb3IodmFyIHQ9dGhpcy5jYWNoZSxlPXQuZ2wscj10aGlzLnByb2dyYW1zLG49MCxpPXIubGVuZ3RoO2k+bjsrK24pe3ZhciBvPXQucHJvZ3JhbXNbcltuXV07byYmKGRlbGV0ZSB0LnByb2dyYW1zW25dLGUuZGVsZXRlUHJvZ3JhbShvKSl9ZS5kZWxldGVTaGFkZXIodGhpcy5zaGFkZXIpLGRlbGV0ZSB0LnNoYWRlcnNbdGhpcy50eXBlPT09ZS5GUkFHTUVOVF9TSEFERVJ8MF1bdGhpcy5zcmNdfX07dmFyIG09aS5wcm90b3R5cGU7bS5nZXRTaGFkZXJSZWZlcmVuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdsLGk9dGhpcy5zaGFkZXJzW3Q9PT1yLkZSQUdNRU5UX1NIQURFUnwwXSxhPWlbZV07aWYoYSYmci5pc1NoYWRlcihhLnNoYWRlcikpYS5jb3VudCs9MTtlbHNle3ZhciBzPW8ocix0LGUpO2E9aVtlXT1uZXcgbihkKyssZSx0LHMsW10sMSx0aGlzKX1yZXR1cm4gYX0sbS5nZXRQcm9ncmFtPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPVt0LmlkLGUuaWQsci5qb2luKCI6Iiksbi5qb2luKCI6IildLmpvaW4oIkAiKSxvPXRoaXMucHJvZ3JhbXNbaV07cmV0dXJuIG8mJnRoaXMuZ2wuaXNQcm9ncmFtKG8pfHwodGhpcy5wcm9ncmFtc1tpXT1vPWEodGhpcy5nbCx0LnNoYWRlcixlLnNoYWRlcixyLG4pLHQucHJvZ3JhbXMucHVzaChpKSxlLnByb2dyYW1zLnB1c2goaSkpLG99fSx7Ii4vR0xFcnJvciI6MjA5LCJnbC1mb3JtYXQtY29tcGlsZXItZXJyb3IiOjIxNSwid2Vha21hcC1zaGltIjoyMjV9XSwyMTU6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49YShlKXx8Im9mIHVua25vd24gbmFtZSAoc2VlIG5wbSBnbHNsLXNoYWRlci1uYW1lKSIsbD0idW5rbm93biB0eXBlIjt2b2lkIDAhPT1yJiYobD1yPT09by5GUkFHTUVOVF9TSEFERVI/ImZyYWdtZW50IjoidmVydGV4Iik7Zm9yKHZhciB1PWkoIkVycm9yIGNvbXBpbGluZyAlcyBzaGFkZXIgJXM6XG4iLGwsbiksYz1pKCIlcyVzIix1LHQpLGg9dC5zcGxpdCgiXG4iKSxmPXt9LHA9MDtwPGgubGVuZ3RoO3ArKyl7dmFyIGQ9aFtwXTtpZigiIiE9PWQpe3ZhciBtPXBhcnNlSW50KGQuc3BsaXQoIjoiKVsyXSk7aWYoaXNOYU4obSkpdGhyb3cgbmV3IEVycm9yKGkoIkNvdWxkIG5vdCBwYXJzZSBlcnJvcjogJXMiLGQpKTtmW21dPWR9fWZvcih2YXIgZz1zKGUpLnNwbGl0KCJcbiIpLHA9MDtwPGcubGVuZ3RoO3ArKylpZihmW3ArM118fGZbcCsyXXx8ZltwKzFdKXt2YXIgdj1nW3BdO2lmKHUrPXYrIlxuIixmW3ArMV0pe3ZhciB5PWZbcCsxXTt5PXkuc3Vic3RyKHkuc3BsaXQoIjoiLDMpLmpvaW4oIjoiKS5sZW5ndGgrMSkudHJpbSgpLHUrPWkoIl5eXiAlc1xuXG4iLHkpfX1yZXR1cm57ImxvbmciOnUudHJpbSgpLCJzaG9ydCI6Yy50cmltKCl9fXZhciBpPXQoInNwcmludGYtanMiKS5zcHJpbnRmLG89dCgiZ2wtY29uc3RhbnRzL2xvb2t1cCIpLGE9dCgiZ2xzbC1zaGFkZXItbmFtZSIpLHM9dCgiYWRkLWxpbmUtbnVtYmVycyIpO2UuZXhwb3J0cz1ufSx7ImFkZC1saW5lLW51bWJlcnMiOjIxNiwiZ2wtY29uc3RhbnRzL2xvb2t1cCI6MjE5LCJnbHNsLXNoYWRlci1uYW1lIjoyMjAsInNwcmludGYtanMiOjIyMn1dLDIxNjpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe2U9Im51bWJlciI9PXR5cGVvZiBlP2U6MSxyPXJ8fCI6ICI7dmFyIG49dC5zcGxpdCgvXHI/XG4vKSxvPVN0cmluZyhuLmxlbmd0aCtlLTEpLmxlbmd0aDtyZXR1cm4gbi5tYXAoZnVuY3Rpb24odCxuKXt2YXIgYT1uK2Uscz1TdHJpbmcoYSkubGVuZ3RoLGw9aShhLG8tcyk7cmV0dXJuIGwrcit0fSkuam9pbigiXG4iKX12YXIgaT10KCJwYWQtbGVmdCIpO2UuZXhwb3J0cz1ufSx7InBhZC1sZWZ0IjoyMTd9XSwyMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicmVwZWF0LXN0cmluZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHI9InVuZGVmaW5lZCIhPXR5cGVvZiByP3IrIiI6IiAiLG4ocixlKSt0fX0seyJyZXBlYXQtc3RyaW5nIjo0NTd9XSwyMTg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ezA6Ik5PTkUiLDE6Ik9ORSIsMjoiTElORV9MT09QIiwzOiJMSU5FX1NUUklQIiw0OiJUUklBTkdMRVMiLDU6IlRSSUFOR0xFX1NUUklQIiw2OiJUUklBTkdMRV9GQU4iLDI1NjoiREVQVEhfQlVGRkVSX0JJVCIsNTEyOiJORVZFUiIsNTEzOiJMRVNTIiw1MTQ6IkVRVUFMIiw1MTU6IkxFUVVBTCIsNTE2OiJHUkVBVEVSIiw1MTc6Ik5PVEVRVUFMIiw1MTg6IkdFUVVBTCIsNTE5OiJBTFdBWVMiLDc2ODoiU1JDX0NPTE9SIiw3Njk6Ik9ORV9NSU5VU19TUkNfQ09MT1IiLDc3MDoiU1JDX0FMUEhBIiw3NzE6Ik9ORV9NSU5VU19TUkNfQUxQSEEiLDc3MjoiRFNUX0FMUEhBIiw3NzM6Ik9ORV9NSU5VU19EU1RfQUxQSEEiLDc3NDoiRFNUX0NPTE9SIiw3NzU6Ik9ORV9NSU5VU19EU1RfQ09MT1IiLDc3NjoiU1JDX0FMUEhBX1NBVFVSQVRFIiwxMDI0OiJTVEVOQ0lMX0JVRkZFUl9CSVQiLDEwMjg6IkZST05UIiwxMDI5OiJCQUNLIiwxMDMyOiJGUk9OVF9BTkRfQkFDSyIsMTI4MDoiSU5WQUxJRF9FTlVNIiwxMjgxOiJJTlZBTElEX1ZBTFVFIiwxMjgyOiJJTlZBTElEX09QRVJBVElPTiIsMTI4NToiT1VUX09GX01FTU9SWSIsMTI4NjoiSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iLDIzMDQ6IkNXIiwyMzA1OiJDQ1ciLDI4NDk6IkxJTkVfV0lEVEgiLDI4ODQ6IkNVTExfRkFDRSIsMjg4NToiQ1VMTF9GQUNFX01PREUiLDI4ODY6IkZST05UX0ZBQ0UiLDI5Mjg6IkRFUFRIX1JBTkdFIiwyOTI5OiJERVBUSF9URVNUIiwyOTMwOiJERVBUSF9XUklURU1BU0siLDI5MzE6IkRFUFRIX0NMRUFSX1ZBTFVFIiwyOTMyOiJERVBUSF9GVU5DIiwyOTYwOiJTVEVOQ0lMX1RFU1QiLDI5NjE6IlNURU5DSUxfQ0xFQVJfVkFMVUUiLDI5NjI6IlNURU5DSUxfRlVOQyIsMjk2MzoiU1RFTkNJTF9WQUxVRV9NQVNLIiwyOTY0OiJTVEVOQ0lMX0ZBSUwiLDI5NjU6IlNURU5DSUxfUEFTU19ERVBUSF9GQUlMIiwyOTY2OiJTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyIsMjk2NzoiU1RFTkNJTF9SRUYiLDI5Njg6IlNURU5DSUxfV1JJVEVNQVNLIiwyOTc4OiJWSUVXUE9SVCIsMzAyNDoiRElUSEVSIiwzMDQyOiJCTEVORCIsMzA4ODoiU0NJU1NPUl9CT1giLDMwODk6IlNDSVNTT1JfVEVTVCIsMzEwNjoiQ09MT1JfQ0xFQVJfVkFMVUUiLDMxMDc6IkNPTE9SX1dSSVRFTUFTSyIsMzMxNzoiVU5QQUNLX0FMSUdOTUVOVCIsMzMzMzoiUEFDS19BTElHTk1FTlQiLDMzNzk6Ik1BWF9URVhUVVJFX1NJWkUiLDMzODY6Ik1BWF9WSUVXUE9SVF9ESU1TIiwzNDA4OiJTVUJQSVhFTF9CSVRTIiwzNDEwOiJSRURfQklUUyIsMzQxMToiR1JFRU5fQklUUyIsMzQxMjoiQkxVRV9CSVRTIiwzNDEzOiJBTFBIQV9CSVRTIiwzNDE0OiJERVBUSF9CSVRTIiwzNDE1OiJTVEVOQ0lMX0JJVFMiLDM1NTM6IlRFWFRVUkVfMkQiLDQzNTI6IkRPTlRfQ0FSRSIsNDM1MzoiRkFTVEVTVCIsNDM1NDoiTklDRVNUIiw1MTIwOiJCWVRFIiw1MTIxOiJVTlNJR05FRF9CWVRFIiw1MTIyOiJTSE9SVCIsNTEyMzoiVU5TSUdORURfU0hPUlQiLDUxMjQ6IklOVCIsNTEyNToiVU5TSUdORURfSU5UIiw1MTI2OiJGTE9BVCIsNTM4NjoiSU5WRVJUIiw1ODkwOiJURVhUVVJFIiw2NDAxOiJTVEVOQ0lMX0lOREVYIiw2NDAyOiJERVBUSF9DT01QT05FTlQiLDY0MDY6IkFMUEhBIiw2NDA3OiJSR0IiLDY0MDg6IlJHQkEiLDY0MDk6IkxVTUlOQU5DRSIsNjQxMDoiTFVNSU5BTkNFX0FMUEhBIiw3NjgwOiJLRUVQIiw3NjgxOiJSRVBMQUNFIiw3NjgyOiJJTkNSIiw3NjgzOiJERUNSIiw3OTM2OiJWRU5ET1IiLDc5Mzc6IlJFTkRFUkVSIiw3OTM4OiJWRVJTSU9OIiw5NzI4OiJORUFSRVNUIiw5NzI5OiJMSU5FQVIiLDk5ODQ6Ik5FQVJFU1RfTUlQTUFQX05FQVJFU1QiLDk5ODU6IkxJTkVBUl9NSVBNQVBfTkVBUkVTVCIsOTk4NjoiTkVBUkVTVF9NSVBNQVBfTElORUFSIiw5OTg3OiJMSU5FQVJfTUlQTUFQX0xJTkVBUiIsMTAyNDA6IlRFWFRVUkVfTUFHX0ZJTFRFUiIsMTAyNDE6IlRFWFRVUkVfTUlOX0ZJTFRFUiIsMTAyNDI6IlRFWFRVUkVfV1JBUF9TIiwxMDI0MzoiVEVYVFVSRV9XUkFQX1QiLDEwNDk3OiJSRVBFQVQiLDEwNzUyOiJQT0xZR09OX09GRlNFVF9VTklUUyIsMTYzODQ6IkNPTE9SX0JVRkZFUl9CSVQiLDMyNzY5OiJDT05TVEFOVF9DT0xPUiIsMzI3NzA6Ik9ORV9NSU5VU19DT05TVEFOVF9DT0xPUiIsMzI3NzE6IkNPTlNUQU5UX0FMUEhBIiwzMjc3MjoiT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBIiwzMjc3MzoiQkxFTkRfQ09MT1IiLDMyNzc0OiJGVU5DX0FERCIsMzI3Nzc6IkJMRU5EX0VRVUFUSU9OX1JHQiIsMzI3Nzg6IkZVTkNfU1VCVFJBQ1QiLDMyNzc5OiJGVU5DX1JFVkVSU0VfU1VCVFJBQ1QiLDMyODE5OiJVTlNJR05FRF9TSE9SVF80XzRfNF80IiwzMjgyMDoiVU5TSUdORURfU0hPUlRfNV81XzVfMSIsMzI4MjM6IlBPTFlHT05fT0ZGU0VUX0ZJTEwiLDMyODI0OiJQT0xZR09OX09GRlNFVF9GQUNUT1IiLDMyODU0OiJSR0JBNCIsMzI4NTU6IlJHQjVfQTEiLDMyODczOiJURVhUVVJFX0JJTkRJTkdfMkQiLDMyOTI2OiJTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0UiLDMyOTI4OiJTQU1QTEVfQ09WRVJBR0UiLDMyOTM2OiJTQU1QTEVfQlVGRkVSUyIsMzI5Mzc6IlNBTVBMRVMiLDMyOTM4OiJTQU1QTEVfQ09WRVJBR0VfVkFMVUUiLDMyOTM5OiJTQU1QTEVfQ09WRVJBR0VfSU5WRVJUIiwzMjk2ODoiQkxFTkRfRFNUX1JHQiIsMzI5Njk6IkJMRU5EX1NSQ19SR0IiLDMyOTcwOiJCTEVORF9EU1RfQUxQSEEiLDMyOTcxOiJCTEVORF9TUkNfQUxQSEEiLDMzMDcxOiJDTEFNUF9UT19FREdFIiwzMzE3MDoiR0VORVJBVEVfTUlQTUFQX0hJTlQiLDMzMTg5OiJERVBUSF9DT01QT05FTlQxNiIsMzMzMDY6IkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCIsMzM2MzU6IlVOU0lHTkVEX1NIT1JUXzVfNl81IiwzMzY0ODoiTUlSUk9SRURfUkVQRUFUIiwzMzkwMToiQUxJQVNFRF9QT0lOVF9TSVpFX1JBTkdFIiwzMzkwMjoiQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFIiwzMzk4NDoiVEVYVFVSRTAiLDMzOTg1OiJURVhUVVJFMSIsMzM5ODY6IlRFWFRVUkUyIiwzMzk4NzoiVEVYVFVSRTMiLDMzOTg4OiJURVhUVVJFNCIsMzM5ODk6IlRFWFRVUkU1IiwzMzk5MDoiVEVYVFVSRTYiLDMzOTkxOiJURVhUVVJFNyIsMzM5OTI6IlRFWFRVUkU4IiwzMzk5MzoiVEVYVFVSRTkiLDMzOTk0OiJURVhUVVJFMTAiLDMzOTk1OiJURVhUVVJFMTEiLDMzOTk2OiJURVhUVVJFMTIiLDMzOTk3OiJURVhUVVJFMTMiLDMzOTk4OiJURVhUVVJFMTQiLDMzOTk5OiJURVhUVVJFMTUiLDM0ZTM6IlRFWFRVUkUxNiIsMzQwMDE6IlRFWFRVUkUxNyIsMzQwMDI6IlRFWFRVUkUxOCIsMzQwMDM6IlRFWFRVUkUxOSIsMzQwMDQ6IlRFWFRVUkUyMCIsMzQwMDU6IlRFWFRVUkUyMSIsMzQwMDY6IlRFWFRVUkUyMiIsMzQwMDc6IlRFWFRVUkUyMyIsMzQwMDg6IlRFWFRVUkUyNCIsMzQwMDk6IlRFWFRVUkUyNSIsMzQwMTA6IlRFWFRVUkUyNiIsMzQwMTE6IlRFWFRVUkUyNyIsMzQwMTI6IlRFWFRVUkUyOCIsMzQwMTM6IlRFWFRVUkUyOSIsMzQwMTQ6IlRFWFRVUkUzMCIsMzQwMTU6IlRFWFRVUkUzMSIsMzQwMTY6IkFDVElWRV9URVhUVVJFIiwzNDAyNDoiTUFYX1JFTkRFUkJVRkZFUl9TSVpFIiwzNDA0MToiREVQVEhfU1RFTkNJTCIsMzQwNTU6IklOQ1JfV1JBUCIsMzQwNTY6IkRFQ1JfV1JBUCIsMzQwNjc6IlRFWFRVUkVfQ1VCRV9NQVAiLDM0MDY4OiJURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAiLDM0MDY5OiJURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1giLDM0MDcwOiJURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1giLDM0MDcxOiJURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1kiLDM0MDcyOiJURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kiLDM0MDczOiJURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1oiLDM0MDc0OiJURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1oiLDM0MDc2OiJNQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFIiwzNDMzODoiVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEIiwzNDMzOToiVkVSVEVYX0FUVFJJQl9BUlJBWV9TSVpFIiwzNDM0MDoiVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUiLDM0MzQxOiJWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUiLDM0MzQyOiJDVVJSRU5UX1ZFUlRFWF9BVFRSSUIiLDM0MzczOiJWRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIiLDM0NDY2OiJOVU1fQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMiLDM0NDY3OiJDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyIsMzQ2NjA6IkJVRkZFUl9TSVpFIiwzNDY2MToiQlVGRkVSX1VTQUdFIiwzNDgxNjoiU1RFTkNJTF9CQUNLX0ZVTkMiLDM0ODE3OiJTVEVOQ0lMX0JBQ0tfRkFJTCIsMzQ4MTg6IlNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwiLDM0ODE5OiJTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9QQVNTIiwzNDg3NzoiQkxFTkRfRVFVQVRJT05fQUxQSEEiLDM0OTIxOiJNQVhfVkVSVEVYX0FUVFJJQlMiLDM0OTIyOiJWRVJURVhfQVRUUklCX0FSUkFZX05PUk1BTElaRUQiLDM0OTMwOiJNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyIsMzQ5NjI6IkFSUkFZX0JVRkZFUiIsMzQ5NjM6IkVMRU1FTlRfQVJSQVlfQlVGRkVSIiwzNDk2NDoiQVJSQVlfQlVGRkVSX0JJTkRJTkciLDM0OTY1OiJFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HIiwzNDk3NToiVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORyIsMzUwNDA6IlNUUkVBTV9EUkFXIiwzNTA0NDoiU1RBVElDX0RSQVciLDM1MDQ4OiJEWU5BTUlDX0RSQVciLDM1NjMyOiJGUkFHTUVOVF9TSEFERVIiLDM1NjMzOiJWRVJURVhfU0hBREVSIiwzNTY2MDoiTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTIiwzNTY2MToiTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMiLDM1NjYzOiJTSEFERVJfVFlQRSIsMzU2NjQ6IkZMT0FUX1ZFQzIiLDM1NjY1OiJGTE9BVF9WRUMzIiwzNTY2NjoiRkxPQVRfVkVDNCIsMzU2Njc6IklOVF9WRUMyIiwzNTY2ODoiSU5UX1ZFQzMiLDM1NjY5OiJJTlRfVkVDNCIsMzU2NzA6IkJPT0wiLDM1NjcxOiJCT09MX1ZFQzIiLDM1NjcyOiJCT09MX1ZFQzMiLDM1NjczOiJCT09MX1ZFQzQiLDM1Njc0OiJGTE9BVF9NQVQyIiwzNTY3NToiRkxPQVRfTUFUMyIsMzU2NzY6IkZMT0FUX01BVDQiLDM1Njc4OiJTQU1QTEVSXzJEIiwzNTY4MDoiU0FNUExFUl9DVUJFIiwzNTcxMjoiREVMRVRFX1NUQVRVUyIsMzU3MTM6IkNPTVBJTEVfU1RBVFVTIiwzNTcxNDoiTElOS19TVEFUVVMiLDM1NzE1OiJWQUxJREFURV9TVEFUVVMiLDM1NzE2OiJJTkZPX0xPR19MRU5HVEgiLDM1NzE3OiJBVFRBQ0hFRF9TSEFERVJTIiwzNTcxODoiQUNUSVZFX1VOSUZPUk1TIiwzNTcxOToiQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCIsMzU3MjA6IlNIQURFUl9TT1VSQ0VfTEVOR1RIIiwzNTcyMToiQUNUSVZFX0FUVFJJQlVURVMiLDM1NzIyOiJBQ1RJVkVfQVRUUklCVVRFX01BWF9MRU5HVEgiLDM1NzI0OiJTSEFESU5HX0xBTkdVQUdFX1ZFUlNJT04iLDM1NzI1OiJDVVJSRU5UX1BST0dSQU0iLDM2MDAzOiJTVEVOQ0lMX0JBQ0tfUkVGIiwzNjAwNDoiU1RFTkNJTF9CQUNLX1ZBTFVFX01BU0siLDM2MDA1OiJTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLIiwzNjAwNjoiRlJBTUVCVUZGRVJfQklORElORyIsMzYwMDc6IlJFTkRFUkJVRkZFUl9CSU5ESU5HIiwzNjA0ODoiRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRSIsMzYwNDk6IkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUUiLDM2MDUwOiJGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUwiLDM2MDUxOiJGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRSIsMzYwNTM6IkZSQU1FQlVGRkVSX0NPTVBMRVRFIiwzNjA1NDoiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIiwzNjA1NToiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQiLDM2MDU3OiJGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMiLDM2MDYxOiJGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCIsMzYwNjQ6IkNPTE9SX0FUVEFDSE1FTlQwIiwzNjA5NjoiREVQVEhfQVRUQUNITUVOVCIsMzYxMjg6IlNURU5DSUxfQVRUQUNITUVOVCIsMzYxNjA6IkZSQU1FQlVGRkVSIiwzNjE2MToiUkVOREVSQlVGRkVSIiwzNjE2MjoiUkVOREVSQlVGRkVSX1dJRFRIIiwzNjE2MzoiUkVOREVSQlVGRkVSX0hFSUdIVCIsMzYxNjQ6IlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQiLDM2MTY4OiJTVEVOQ0lMX0lOREVYOCIsMzYxNzY6IlJFTkRFUkJVRkZFUl9SRURfU0laRSIsMzYxNzc6IlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFIiwzNjE3ODoiUkVOREVSQlVGRkVSX0JMVUVfU0laRSIsMzYxNzk6IlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFIiwzNjE4MDoiUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUiLDM2MTgxOiJSRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFIiwzNjE5NDoiUkdCNTY1IiwzNjMzNjoiTE9XX0ZMT0FUIiwzNjMzNzoiTUVESVVNX0ZMT0FUIiwzNjMzODoiSElHSF9GTE9BVCIsMzYzMzk6IkxPV19JTlQiLDM2MzQwOiJNRURJVU1fSU5UIiwzNjM0MToiSElHSF9JTlQiLDM2MzQ2OiJTSEFERVJfQ09NUElMRVIiLDM2MzQ3OiJNQVhfVkVSVEVYX1VOSUZPUk1fVkVDVE9SUyIsMzYzNDg6Ik1BWF9WQVJZSU5HX1ZFQ1RPUlMiLDM2MzQ5OiJNQVhfRlJBR01FTlRfVU5JRk9STV9WRUNUT1JTIiwzNzQ0MDoiVU5QQUNLX0ZMSVBfWV9XRUJHTCIsMzc0NDE6IlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCIsMzc0NDI6IkNPTlRFWFRfTE9TVF9XRUJHTCIsMzc0NDM6IlVOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0wiLDM3NDQ0OiJCUk9XU0VSX0RFRkFVTFRfV0VCR0wifX0se31dLDIxOTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vMS4wL251bWJlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19fSx7Ii4vMS4wL251bWJlcnMiOjIxOH1dLDIyMDpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPUFycmF5LmlzQXJyYXkodCk/dDppKHQpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtpZigicHJlcHJvY2Vzc29yIj09PW4udHlwZSl7dmFyIGE9bi5kYXRhLm1hdGNoKC9cI2RlZmluZVxzK1NIQURFUl9OQU1FKF9CNjQpP1xzKyguKykkLyk7aWYoYSYmYVsyXSl7dmFyIHM9YVsxXSxsPWFbMl07cmV0dXJuKHM/byhsKTpsKS50cmltKCl9fX19dmFyIGk9dCgiZ2xzbC10b2tlbml6ZXIiKSxvPXQoImF0b2ItbGl0ZSIpO2UuZXhwb3J0cz1ufSx7ImF0b2ItbGl0ZSI6MjIxLCJnbHNsLXRva2VuaXplciI6MjQ1fV0sMjIxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBhdG9iKHQpfX0se31dLDIyMjpbZnVuY3Rpb24oZSxyLG4peyFmdW5jdGlvbihlKXtmdW5jdGlvbiByKCl7dmFyIHQ9YXJndW1lbnRzWzBdLGU9ci5jYWNoZTtyZXR1cm4gZVt0XSYmZS5oYXNPd25Qcm9wZXJ0eSh0KXx8KGVbdF09ci5wYXJzZSh0KSksci5mb3JtYXQuY2FsbChudWxsLGVbdF0sYXJndW1lbnRzKX1mdW5jdGlvbiBpKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkuc2xpY2UoOCwtMSkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIEFycmF5KGUrMSkuam9pbih0KX12YXIgYT17bm90X3N0cmluZzovW15zXS8sbnVtYmVyOi9bZGllZmddLyxqc29uOi9bal0vLG5vdF9qc29uOi9bXmpdLyx0ZXh0Oi9eW15ceDI1XSsvLG1vZHVsbzovXlx4MjV7Mn0vLHBsYWNlaG9sZGVyOi9eXHgyNSg/OihbMS05XVxkKilcJHxcKChbXlwpXSspXCkpPyhcKyk/KDB8J1teJF0pPygtKT8oXGQrKT8oPzpcLihcZCspKT8oW2ItZ2lqb3N1eFhdKS8sa2V5Oi9eKFthLXpfXVthLXpfXGRdKikvaSxrZXlfYWNjZXNzOi9eXC4oW2Etel9dW2Etel9cZF0qKS9pLGluZGV4X2FjY2VzczovXlxbKFxkKylcXS8sc2lnbjovXltcK1wtXS99O3IuZm9ybWF0PWZ1bmN0aW9uKHQsZSl7dmFyIG4scyxsLHUsYyxoLGYscD0xLGQ9dC5sZW5ndGgsbT0iIixnPVtdLHY9ITAseT0iIjtmb3Iocz0wO2Q+cztzKyspaWYobT1pKHRbc10pLCJzdHJpbmciPT09bSlnW2cubGVuZ3RoXT10W3NdO2Vsc2UgaWYoImFycmF5Ij09PW0pe2lmKHU9dFtzXSx1WzJdKWZvcihuPWVbcF0sbD0wO2w8dVsyXS5sZW5ndGg7bCsrKXtpZighbi5oYXNPd25Qcm9wZXJ0eSh1WzJdW2xdKSl0aHJvdyBuZXcgRXJyb3IocigiW3NwcmludGZdIHByb3BlcnR5ICclcycgZG9lcyBub3QgZXhpc3QiLHVbMl1bbF0pKTtuPW5bdVsyXVtsXV19ZWxzZSBuPXVbMV0/ZVt1WzFdXTplW3ArK107aWYoImZ1bmN0aW9uIj09aShuKSYmKG49bigpKSxhLm5vdF9zdHJpbmcudGVzdCh1WzhdKSYmYS5ub3RfanNvbi50ZXN0KHVbOF0pJiYibnVtYmVyIiE9aShuKSYmaXNOYU4obikpdGhyb3cgbmV3IFR5cGVFcnJvcihyKCJbc3ByaW50Zl0gZXhwZWN0aW5nIG51bWJlciBidXQgZm91bmQgJXMiLGkobikpKTtzd2l0Y2goYS5udW1iZXIudGVzdCh1WzhdKSYmKHY9bj49MCksdVs4XSl7Y2FzZSJiIjpuPW4udG9TdHJpbmcoMik7YnJlYWs7Y2FzZSJjIjpuPVN0cmluZy5mcm9tQ2hhckNvZGUobik7YnJlYWs7Y2FzZSJkIjpjYXNlImkiOm49cGFyc2VJbnQobiwxMCk7YnJlYWs7Y2FzZSJqIjpuPUpTT04uc3RyaW5naWZ5KG4sbnVsbCx1WzZdP3BhcnNlSW50KHVbNl0pOjApO2JyZWFrO2Nhc2UiZSI6bj11WzddP24udG9FeHBvbmVudGlhbCh1WzddKTpuLnRvRXhwb25lbnRpYWwoKTticmVhaztjYXNlImYiOm49dVs3XT9wYXJzZUZsb2F0KG4pLnRvRml4ZWQodVs3XSk6cGFyc2VGbG9hdChuKTticmVhaztjYXNlImciOm49dVs3XT9wYXJzZUZsb2F0KG4pLnRvUHJlY2lzaW9uKHVbN10pOnBhcnNlRmxvYXQobik7YnJlYWs7Y2FzZSJvIjpuPW4udG9TdHJpbmcoOCk7YnJlYWs7Y2FzZSJzIjpuPShuPVN0cmluZyhuKSkmJnVbN10/bi5zdWJzdHJpbmcoMCx1WzddKTpuO2JyZWFrO2Nhc2UidSI6bj4+Pj0wO2JyZWFrO2Nhc2UieCI6bj1uLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOm49bi50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX1hLmpzb24udGVzdCh1WzhdKT9nW2cubGVuZ3RoXT1uOighYS5udW1iZXIudGVzdCh1WzhdKXx8diYmIXVbM10/eT0iIjooeT12PyIrIjoiLSIsbj1uLnRvU3RyaW5nKCkucmVwbGFjZShhLnNpZ24sIiIpKSxoPXVbNF0/IjAiPT09dVs0XT8iMCI6dVs0XS5jaGFyQXQoMSk6IiAiLGY9dVs2XS0oeStuKS5sZW5ndGgsYz11WzZdJiZmPjA/byhoLGYpOiIiLGdbZy5sZW5ndGhdPXVbNV0/eStuK2M6IjAiPT09aD95K2MrbjpjK3krbil9cmV0dXJuIGcuam9pbigiIil9LHIuY2FjaGU9e30sci5wYXJzZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dCxyPVtdLG49W10saT0wO2U7KXtpZihudWxsIT09KHI9YS50ZXh0LmV4ZWMoZSkpKW5bbi5sZW5ndGhdPXJbMF07ZWxzZSBpZihudWxsIT09KHI9YS5tb2R1bG8uZXhlYyhlKSkpbltuLmxlbmd0aF09IiUiO2Vsc2V7aWYobnVsbD09PShyPWEucGxhY2Vob2xkZXIuZXhlYyhlKSkpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJbc3ByaW50Zl0gdW5leHBlY3RlZCBwbGFjZWhvbGRlciIpO2lmKHJbMl0pe2l8PTE7dmFyIG89W10scz1yWzJdLGw9W107aWYobnVsbD09PShsPWEua2V5LmV4ZWMocykpKXRocm93IG5ldyBTeW50YXhFcnJvcigiW3NwcmludGZdIGZhaWxlZCB0byBwYXJzZSBuYW1lZCBhcmd1bWVudCBrZXkiKTtmb3Iob1tvLmxlbmd0aF09bFsxXTsiIiE9PShzPXMuc3Vic3RyaW5nKGxbMF0ubGVuZ3RoKSk7KWlmKG51bGwhPT0obD1hLmtleV9hY2Nlc3MuZXhlYyhzKSkpb1tvLmxlbmd0aF09bFsxXTtlbHNle2lmKG51bGw9PT0obD1hLmluZGV4X2FjY2Vzcy5leGVjKHMpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5Iik7b1tvLmxlbmd0aF09bFsxXX1yWzJdPW99ZWxzZSBpfD0yO2lmKDM9PT1pKXRocm93IG5ldyBFcnJvcigiW3NwcmludGZdIG1peGluZyBwb3NpdGlvbmFsIGFuZCBuYW1lZCBwbGFjZWhvbGRlcnMgaXMgbm90ICh5ZXQpIHN1cHBvcnRlZCIpO25bbi5sZW5ndGhdPXJ9ZT1lLnN1YnN0cmluZyhyWzBdLmxlbmd0aCl9cmV0dXJuIG59O3ZhciBzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj0oZXx8W10pLnNsaWNlKDApLG4uc3BsaWNlKDAsMCx0KSxyLmFwcGx5KG51bGwsbil9OyJ1bmRlZmluZWQiIT10eXBlb2Ygbj8obi5zcHJpbnRmPXIsbi52c3ByaW50Zj1zKTooZS5zcHJpbnRmPXIsZS52c3ByaW50Zj1zLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmFtZCYmdChmdW5jdGlvbigpe3JldHVybntzcHJpbnRmOnIsdnNwcmludGY6c319KSl9KCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P3RoaXM6d2luZG93KX0se31dLDIyMzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4oKXt2YXIgdD17fTtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWUpJiYiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoIldlYWttYXAtc2hpbTogS2V5IG11c3QgYmUgb2JqZWN0Iik7dmFyIHI9ZS52YWx1ZU9mKHQpO3JldHVybiByJiZyLmlkZW50aXR5PT09dD9yOmkoZSx0KX19dmFyIGk9dCgiLi9oaWRkZW4tc3RvcmUuanMiKTtlLmV4cG9ydHM9bn0seyIuL2hpZGRlbi1zdG9yZS5qcyI6MjI0fV0sMjI0OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUpe3ZhciByPXtpZGVudGl0eTplfSxuPXQudmFsdWVPZjtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInZhbHVlT2YiLHt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdCE9PWU/bi5hcHBseSh0aGlzLGFyZ3VtZW50cyk6cn0sd3JpdGFibGU6ITB9KSxyfWUuZXhwb3J0cz1ufSx7fV0sMjI1OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbigpe3ZhciB0PWkoKTtyZXR1cm57Z2V0OmZ1bmN0aW9uKGUscil7dmFyIG49dChlKTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKT9uLnZhbHVlOnJ9LHNldDpmdW5jdGlvbihlLHIpe3QoZSkudmFsdWU9cn0saGFzOmZ1bmN0aW9uKGUpe3JldHVybiJ2YWx1ZSJpbiB0KGUpfSwiZGVsZXRlIjpmdW5jdGlvbihlKXtyZXR1cm4gZGVsZXRlIHQoZSkudmFsdWV9fX12YXIgaT10KCIuL2NyZWF0ZS1zdG9yZS5qcyIpO2UuZXhwb3J0cz1ufSx7Ii4vY3JlYXRlLXN0b3JlLmpzIjoyMjN9XSwyMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLnBsb3Q9dCx0aGlzLmVuYWJsZT1bITAsITAsITEsITFdLHRoaXMud2lkdGg9WzEsMSwxLDFdLHRoaXMuY29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5jZW50ZXI9WzEvMCwxLzBdfWZ1bmN0aW9uIGkodCxlKXt2YXIgcj1uZXcgbih0KTtyZXR1cm4gci51cGRhdGUoZSksdC5hZGRPdmVybGF5KHIpLHJ9ZS5leHBvcnRzPWk7dmFyIG89bi5wcm90b3R5cGU7by51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fSx0aGlzLmVuYWJsZT0odC5lbmFibGV8fFshMCwhMCwhMSwhMV0pLnNsaWNlKCksdGhpcy53aWR0aD0odC53aWR0aHx8WzEsMSwxLDFdKS5zbGljZSgpLHRoaXMuY29sb3I9KHQuY29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoKX0pLHRoaXMuY2VudGVyPSh0LmNlbnRlcnx8WzEvMCwxLzBdKS5zbGljZSgpLHRoaXMucGxvdC5zZXRPdmVybGF5RGlydHkoKX0sby5kcmF3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbmFibGUsZT10aGlzLndpZHRoLHI9dGhpcy5jb2xvcixuPXRoaXMuY2VudGVyLGk9dGhpcy5wbG90LG89aS5saW5lLGE9aS5kYXRhQm94LHM9aS52aWV3Qm94O2lmKG8uYmluZCgpLGFbMF08PW5bMF0mJm5bMF08PWFbMl0mJmFbMV08PW5bMV0mJm5bMV08PWFbM10pe3ZhciBsPXNbMF0rKG5bMF0tYVswXSkvKGFbMl0tYVswXSkqKHNbMl0tc1swXSksdT1zWzFdKyhuWzFdLWFbMV0pLyhhWzNdLWFbMV0pKihzWzNdLXNbMV0pO3RbMF0mJm8uZHJhd0xpbmUobCx1LHNbMF0sdSxlWzBdLHJbMF0pLHRbMV0mJm8uZHJhd0xpbmUobCx1LGwsc1sxXSxlWzFdLHJbMV0pLHRbMl0mJm8uZHJhd0xpbmUobCx1LHNbMl0sdSxlWzJdLHJbMl0pLHRbM10mJm8uZHJhd0xpbmUobCx1LGwsc1szXSxlWzNdLHJbM10pfX0sby5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5wbG90LnJlbW92ZU92ZXJsYXkodGhpcyl9fSx7fV0sMjI3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjNCB1djtcbmF0dHJpYnV0ZSB2ZWMzIGY7XG5hdHRyaWJ1dGUgdmVjMyBub3JtYWw7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbiwgaW52ZXJzZU1vZGVsO1xudW5pZm9ybSB2ZWMzIGxpZ2h0UG9zaXRpb24sIGV5ZVBvc2l0aW9uO1xuXG52YXJ5aW5nIGZsb2F0IHZhbHVlLCBraWxsO1xudmFyeWluZyB2ZWMzIHdvcmxkQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMiBwbGFuZUNvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzMgbGlnaHREaXJlY3Rpb24sIGV5ZURpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbDtcblxudm9pZCBtYWluKCkge1xuICB3b3JsZENvb3JkaW5hdGUgPSB2ZWMzKHV2Lnp3LCBmLngpO1xuICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQod29ybGRDb29yZGluYXRlLCAxLjApO1xuICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG4gIGtpbGwgPSBmLnk7XG4gIHZhbHVlID0gZi56O1xuICBwbGFuZUNvb3JkaW5hdGUgPSB1di54eTtcblxuICAvL0xpZ2h0aW5nIGdlb21ldHJ5IHBhcmFtZXRlcnNcbiAgdmVjNCBjYW1lcmFDb29yZGluYXRlID0gdmlldyAqIHdvcmxkUG9zaXRpb247XG4gIGNhbWVyYUNvb3JkaW5hdGUueHl6IC89IGNhbWVyYUNvb3JkaW5hdGUudztcbiAgbGlnaHREaXJlY3Rpb24gPSBsaWdodFBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGV5ZURpcmVjdGlvbiAgID0gZXllUG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgc3VyZmFjZU5vcm1hbCAgPSBub3JtYWxpemUoKHZlYzQobm9ybWFsLDApICogaW52ZXJzZU1vZGVsKS54eXopO1xufVxuIixvPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmZsb2F0IGJlY2ttYW5uRGlzdHJpYnV0aW9uXzJfMChmbG9hdCB4LCBmbG9hdCByb3VnaG5lc3MpIHtcbiAgZmxvYXQgTmRvdEggPSBtYXgoeCwgMC4wMDAxKTtcbiAgZmxvYXQgY29zMkFscGhhID0gTmRvdEggKiBOZG90SDtcbiAgZmxvYXQgdGFuMkFscGhhID0gKGNvczJBbHBoYSAtIDEuMCkgLyBjb3MyQWxwaGE7XG4gIGZsb2F0IHJvdWdobmVzczIgPSByb3VnaG5lc3MgKiByb3VnaG5lc3M7XG4gIGZsb2F0IGRlbm9tID0gMy4xNDE1OTI2NTM1ODk3OTMgKiByb3VnaG5lc3MyICogY29zMkFscGhhICogY29zMkFscGhhO1xuICByZXR1cm4gZXhwKHRhbjJBbHBoYSAvIHJvdWdobmVzczIpIC8gZGVub207XG59XG5cblxuXG5mbG9hdCBiZWNrbWFublNwZWN1bGFyXzFfMShcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcbiAgdmVjMyB2aWV3RGlyZWN0aW9uLFxuICB2ZWMzIHN1cmZhY2VOb3JtYWwsXG4gIGZsb2F0IHJvdWdobmVzcykge1xuICByZXR1cm4gYmVja21hbm5EaXN0cmlidXRpb25fMl8wKGRvdChzdXJmYWNlTm9ybWFsLCBub3JtYWxpemUobGlnaHREaXJlY3Rpb24gKyB2aWV3RGlyZWN0aW9uKSksIHJvdWdobmVzcyk7XG59XG5cblxuXG51bmlmb3JtIHZlYzMgbG93ZXJCb3VuZCwgdXBwZXJCb3VuZDtcbnVuaWZvcm0gZmxvYXQgY29udG91clRpbnQ7XG51bmlmb3JtIHZlYzQgY29udG91ckNvbG9yO1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzLCBmcmVzbmVsLCBrYW1iaWVudCwga2RpZmZ1c2UsIGtzcGVjdWxhciwgb3BhY2l0eTtcblxudmFyeWluZyBmbG9hdCB2YWx1ZSwga2lsbDtcbnZhcnlpbmcgdmVjMyB3b3JsZENvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzMgbGlnaHREaXJlY3Rpb24sIGV5ZURpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbDtcblxudm9pZCBtYWluKCkge1xuICBpZihraWxsID4gMC4wIHx8XG4gICAgYW55KGxlc3NUaGFuKHdvcmxkQ29vcmRpbmF0ZSwgY2xpcEJvdW5kc1swXSkpIHx8IGFueShncmVhdGVyVGhhbih3b3JsZENvb3JkaW5hdGUsIGNsaXBCb3VuZHNbMV0pKSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cblxuICB2ZWMzIE4gPSBub3JtYWxpemUoc3VyZmFjZU5vcm1hbCk7XG4gIHZlYzMgViA9IG5vcm1hbGl6ZShleWVEaXJlY3Rpb24pO1xuICB2ZWMzIEwgPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBiZWNrbWFublNwZWN1bGFyXzFfMShMLCBWLCBOLCByb3VnaG5lc3MpO1xuICBmbG9hdCBkaWZmdXNlICA9IG1pbihrYW1iaWVudCArIGtkaWZmdXNlICogbWF4KGRvdChOLCBMKSwgMC4wKSwgMS4wKTtcblxuICB2ZWM0IHN1cmZhY2VDb2xvciA9IHRleHR1cmUyRChjb2xvcm1hcCwgdmVjMih2YWx1ZSwgdmFsdWUpKTtcbiAgdmVjNCBsaXRDb2xvciA9IHN1cmZhY2VDb2xvci5hICogdmVjNChkaWZmdXNlICogc3VyZmFjZUNvbG9yLnJnYiArIGtzcGVjdWxhciAqIHZlYzMoMSwxLDEpICogc3BlY3VsYXIsICAxLjApO1xuXG4gIGdsX0ZyYWdDb2xvciA9IG1peChsaXRDb2xvciwgY29udG91ckNvbG9yLCBjb250b3VyVGludCkgKiBvcGFjaXR5O1xufVxuIixhPSJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWM0IHV2O1xuYXR0cmlidXRlIGZsb2F0IGY7XG5cbnVuaWZvcm0gbWF0MyBwZXJtdXRhdGlvbjtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgaGVpZ2h0LCB6T2Zmc2V0O1xuXG52YXJ5aW5nIGZsb2F0IHZhbHVlLCBraWxsO1xudmFyeWluZyB2ZWMzIHdvcmxkQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMiBwbGFuZUNvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzMgbGlnaHREaXJlY3Rpb24sIGV5ZURpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbDtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGRhdGFDb29yZGluYXRlID0gcGVybXV0YXRpb24gKiB2ZWMzKHV2Lnh5LCBoZWlnaHQpO1xuICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQoZGF0YUNvb3JkaW5hdGUsIDEuMCk7XG5cbiAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIHdvcmxkUG9zaXRpb247XG4gIGNsaXBQb3NpdGlvbi56ID0gY2xpcFBvc2l0aW9uLnogKyB6T2Zmc2V0O1xuXG4gIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uO1xuICB2YWx1ZSA9IGY7XG4gIGtpbGwgPSAtMS4wO1xuICB3b3JsZENvb3JkaW5hdGUgPSBkYXRhQ29vcmRpbmF0ZTtcbiAgcGxhbmVDb29yZGluYXRlID0gdXYuenc7XG5cbiAgLy9Eb24ndCBkbyBsaWdodGluZyBmb3IgY29udG91cnNcbiAgc3VyZmFjZU5vcm1hbCAgID0gdmVjMygxLDAsMCk7XG4gIGV5ZURpcmVjdGlvbiAgICA9IHZlYzMoMCwxLDApO1xuICBsaWdodERpcmVjdGlvbiAgPSB2ZWMzKDAsMCwxKTtcbn1cbiIscz0icHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzIgc2hhcGU7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcGlja0lkO1xuXG52YXJ5aW5nIGZsb2F0IHZhbHVlLCBraWxsO1xudmFyeWluZyB2ZWMzIHdvcmxkQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMiBwbGFuZUNvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzMgc3VyZmFjZU5vcm1hbDtcblxudmVjMiBzcGxpdEZsb2F0KGZsb2F0IHYpIHtcbiAgZmxvYXQgdmggPSAyNTUuMCAqIHY7XG4gIGZsb2F0IHVwcGVyID0gZmxvb3IodmgpO1xuICBmbG9hdCBsb3dlciA9IGZyYWN0KHZoKTtcbiAgcmV0dXJuIHZlYzIodXBwZXIgLyAyNTUuMCwgZmxvb3IobG93ZXIgKiAxNi4wKSAvIDE2LjApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIGlmKGtpbGwgPiAwLjAgfHxcbiAgICBhbnkobGVzc1RoYW4od29ybGRDb29yZGluYXRlLCBjbGlwQm91bmRzWzBdKSkgfHwgYW55KGdyZWF0ZXJUaGFuKHdvcmxkQ29vcmRpbmF0ZSwgY2xpcEJvdW5kc1sxXSkpKSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuICB2ZWMyIHV4ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueCAvIHNoYXBlLngpO1xuICB2ZWMyIHV5ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueSAvIHNoYXBlLnkpO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgdXgueCwgdXkueCwgdXgueSArICh1eS55LzE2LjApKTtcbn1cbiI7ci5jcmVhdGVTaGFkZXI9ZnVuY3Rpb24odCl7dmFyIGU9bih0LGksbyxudWxsLFt7bmFtZToidXYiLHR5cGU6InZlYzQifSx7bmFtZToiZiIsdHlwZToidmVjMyJ9LHtuYW1lOiJub3JtYWwiLHR5cGU6InZlYzMifV0pO3JldHVybiBlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuZi5sb2NhdGlvbj0xLGUuYXR0cmlidXRlcy5ub3JtYWwubG9jYXRpb249MixlfSxyLmNyZWF0ZVBpY2tTaGFkZXI9ZnVuY3Rpb24odCl7dmFyIGU9bih0LGkscyxudWxsLFt7bmFtZToidXYiLHR5cGU6InZlYzQifSx7bmFtZToiZiIsdHlwZToidmVjMyJ9LHtuYW1lOiJub3JtYWwiLHR5cGU6InZlYzMifV0pO3JldHVybiBlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuZi5sb2NhdGlvbj0xLGUuYXR0cmlidXRlcy5ub3JtYWwubG9jYXRpb249MixlfSxyLmNyZWF0ZUNvbnRvdXJTaGFkZXI9ZnVuY3Rpb24odCl7dmFyIGU9bih0LGEsbyxudWxsLFt7bmFtZToidXYiLHR5cGU6InZlYzQifSx7bmFtZToiZiIsdHlwZToiZmxvYXQifV0pO3JldHVybiBlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuZi5sb2NhdGlvbj0xLGV9LHIuY3JlYXRlUGlja0NvbnRvdXJTaGFkZXI9ZnVuY3Rpb24odCl7dmFyIGU9bih0LGEscyxudWxsLFt7bmFtZToidXYiLHR5cGU6InZlYzQifSx7bmFtZToiZiIsdHlwZToiZmxvYXQifV0pO3JldHVybiBlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuZi5sb2NhdGlvbj0xLGV9fSx7ImdsLXNoYWRlciI6MjA4fV0sMjI4OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzIyXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MjJ9XSwyMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtpZih0IGluIGwpcmV0dXJuIGxbdF07Zm9yKHZhciBlPVtdLHI9MDt0PnI7KytyKWUucHVzaCgib3V0IixyLCJzPTAuNSooaW5wIixyLCJsLWlucCIsciwicik7Iik7Zm9yKHZhciBuPVsiYXJyYXkiXSxpPVsianVuayJdLHI9MDt0PnI7KytyKXtuLnB1c2goImFycmF5IiksaS5wdXNoKCJvdXQiK3IrInMiKTt2YXIgbz1hKHQpO29bcl09LTEsbi5wdXNoKHthcnJheTowLG9mZnNldDpvLnNsaWNlKCl9KSxvW3JdPTEsbi5wdXNoKHthcnJheTowLG9mZnNldDpvLnNsaWNlKCl9KSxpLnB1c2goImlucCIrcisibCIsImlucCIrcisiciIpfXJldHVybiBsW3RdPXMoe2FyZ3M6bixwcmU6Yyxwb3N0OmMsYm9keTp7Ym9keTplLmpvaW4oIiIpLGFyZ3M6aS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue25hbWU6dCxsdmFsdWU6MD09PXQuaW5kZXhPZigib3V0IikscnZhbHVlOjA9PT10LmluZGV4T2YoImlucCIpLGNvdW50OiJqdW5rIiE9PXR8MH19KSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGZ1bmNOYW1lOiJmZFRlbXBsYXRlIit0fSl9ZnVuY3Rpb24gaSh0KXtmdW5jdGlvbiBlKGUpe2Zvcih2YXIgcj1vLWUubGVuZ3RoLG49W10saT1bXSxzPVtdLGw9MDtvPmw7KytsKWUuaW5kZXhPZihsKzEpPj0wP3MucHVzaCgiMCIpOmUuaW5kZXhPZigtKGwrMSkpPj0wP3MucHVzaCgic1siK2wrIl0tMSIpOihzLnB1c2goIi0xIiksbi5wdXNoKCIxIiksaS5wdXNoKCJzWyIrbCsiXS0yIikpO3ZhciB1PSIubG8oIituLmpvaW4oKSsiKS5oaSgiK2kuam9pbigpKyIpIjtpZigwPT09bi5sZW5ndGgmJih1PSIiKSxyPjApe2EucHVzaCgiaWYoMSIpO2Zvcih2YXIgbD0wO28+bDsrK2wpZS5pbmRleE9mKGwrMSk+PTB8fGUuaW5kZXhPZigtKGwrMSkpPj0wfHxhLnB1c2goIiYmc1siLGwsIl0+MiIpO2EucHVzaCgiKXtncmFkIixyLCIoc3JjLnBpY2soIixzLmpvaW4oKSwiKSIsdSk7Zm9yKHZhciBsPTA7bz5sOysrbCllLmluZGV4T2YobCsxKT49MHx8ZS5pbmRleE9mKC0obCsxKSk+PTB8fGEucHVzaCgiLGRzdC5waWNrKCIscy5qb2luKCksIiwiLGwsIikiLHUpO2EucHVzaCgiKTsiKX1mb3IodmFyIGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIGM9TWF0aC5hYnMoZVtsXSktMSxoPSJkc3QucGljaygiK3Muam9pbigpKyIsIitjKyIpIit1O3N3aXRjaCh0W2NdKXtjYXNlImNsYW1wIjp2YXIgZj1zLnNsaWNlKCkscD1zLnNsaWNlKCk7ZVtsXTwwP2ZbY109InNbIitjKyJdLTIiOnBbY109IjEiLDA9PT1yP2EucHVzaCgiaWYoc1siLGMsIl0+MSl7ZHN0LnNldCgiLHMuam9pbigpLCIsIixjLCIsMC41KihzcmMuZ2V0KCIsZi5qb2luKCksIiktc3JjLmdldCgiLHAuam9pbigpLCIpKSl9ZWxzZXtkc3Quc2V0KCIscy5qb2luKCksIiwiLGMsIiwwKX07Iik6YS5wdXNoKCJpZihzWyIsYywiXT4xKXtkaWZmKCIsaCwiLHNyYy5waWNrKCIsZi5qb2luKCksIikiLHUsIixzcmMucGljaygiLHAuam9pbigpLCIpIix1LCIpO31lbHNle3plcm8oIixoLCIpO307Iik7YnJlYWs7Y2FzZSJtaXJyb3IiOjA9PT1yP2EucHVzaCgiZHN0LnNldCgiLHMuam9pbigpLCIsIixjLCIsMCk7Iik6YS5wdXNoKCJ6ZXJvKCIsaCwiKTsiKTticmVhaztjYXNlIndyYXAiOnZhciBkPXMuc2xpY2UoKSxtPXMuc2xpY2UoKTtlW2xdPDA/KGRbY109InNbIitjKyJdLTIiLG1bY109IjAiKTooZFtjXT0ic1siK2MrIl0tMSIsbVtjXT0iMSIpLDA9PT1yP2EucHVzaCgiaWYoc1siLGMsIl0+Mil7ZHN0LnNldCgiLHMuam9pbigpLCIsIixjLCIsMC41KihzcmMuZ2V0KCIsZC5qb2luKCksIiktc3JjLmdldCgiLG0uam9pbigpLCIpKSl9ZWxzZXtkc3Quc2V0KCIscy5qb2luKCksIiwiLGMsIiwwKX07Iik6YS5wdXNoKCJpZihzWyIsYywiXT4yKXtkaWZmKCIsaCwiLHNyYy5waWNrKCIsZC5qb2luKCksIikiLHUsIixzcmMucGljaygiLG0uam9pbigpLCIpIix1LCIpO31lbHNle3plcm8oIixoLCIpO307Iik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZ3JhZGllbnQ6IEludmFsaWQgYm91bmRhcnkgY29uZGl0aW9uIil9fXI+MCYmYS5wdXNoKCJ9OyIpfXZhciByPXQuam9pbigpLGk9dVtyXTtpZihpKXJldHVybiBpO2Zvcih2YXIgbz10Lmxlbmd0aCxhPVsiZnVuY3Rpb24gZ3JhZGllbnQoZHN0LHNyYyl7dmFyIHM9c3JjLnNoYXBlLnNsaWNlKCk7Il0scz0wOzE8PG8+czsrK3Mpe2Zvcih2YXIgYz1bXSxwPTA7bz5wOysrcClzJjE8PHAmJmMucHVzaChwKzEpO2Zvcih2YXIgZD0wO2Q8MTw8Yy5sZW5ndGg7KytkKXtmb3IodmFyIG09Yy5zbGljZSgpLHA9MDtwPGMubGVuZ3RoOysrcClkJjE8PHAmJihtW3BdPS1tW3BdKTtlKG0pfX1hLnB1c2goInJldHVybiBkc3Q7fTtyZXR1cm4gZ3JhZGllbnQiKTtmb3IodmFyIGc9WyJkaWZmIiwiemVybyJdLHY9W2gsZl0scz0xO28+PXM7KytzKWcucHVzaCgiZ3JhZCIrcyksdi5wdXNoKG4ocykpO2cucHVzaChhLmpvaW4oIiIpKTt2YXIgeT1GdW5jdGlvbi5hcHBseSh2b2lkIDAsZyksaT15LmFwcGx5KHZvaWQgMCx2KTtyZXR1cm4gbFtyXT1pLGl9ZnVuY3Rpb24gbyh0LGUscil7aWYoQXJyYXkuaXNBcnJheShyKSl7aWYoci5sZW5ndGghPT1lLmRpbWVuc2lvbil0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZ3JhZGllbnQ6IGludmFsaWQgYm91bmRhcnkgY29uZGl0aW9ucyIpfWVsc2Ugcj0ic3RyaW5nIj09dHlwZW9mIHI/YShlLmRpbWVuc2lvbixyKTphKGUuZGltZW5zaW9uLCJjbGFtcCIpO2lmKHQuZGltZW5zaW9uIT09ZS5kaW1lbnNpb24rMSl0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZ3JhZGllbnQ6IG91dHB1dCBkaW1lbnNpb24gbXVzdCBiZSArMSBpbnB1dCBkaW1lbnNpb24iKTtpZih0LnNoYXBlW2UuZGltZW5zaW9uXSE9PWUuZGltZW5zaW9uKXRocm93IG5ldyBFcnJvcigibmRhcnJheS1ncmFkaWVudDogb3V0cHV0IHNoYXBlIG11c3QgbWF0Y2ggaW5wdXQgc2hhcGUiKTtmb3IodmFyIG49MDtuPGUuZGltZW5zaW9uOysrbilpZih0LnNoYXBlW25dIT09ZS5zaGFwZVtuXSl0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZ3JhZGllbnQ6IHNoYXBlIG1pc21hdGNoIik7aWYoMD09PWUuc2l6ZSlyZXR1cm4gdDtpZihlLmRpbWVuc2lvbjw9MClyZXR1cm4gdC5zZXQoMCksdDt2YXIgbz1pKHIpO3JldHVybiBvKHQsZSl9ZS5leHBvcnRzPW87dmFyIGE9dCgiZHVwIikscz10KCJjd2lzZS1jb21waWxlciIpLGw9e30sdT17fSxjPXtib2R5OiIiLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxoPXMoe2FyZ3M6WyJhcnJheSIsImFycmF5IiwiYXJyYXkiXSxwcmU6Yyxwb3N0OmMsYm9keTp7YXJnczpbe25hbWU6Im91dCIsbHZhbHVlOiEwLHJ2YWx1ZTohMSxjb3VudDoxfSx7bmFtZToibGVmdCIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToicmlnaHQiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLGJvZHk6Im91dD0wLjUqKGxlZnQtcmlnaHQpIix0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LGZ1bmNOYW1lOiJjZGlmZiJ9KSxmPXMoe2FyZ3M6WyJhcnJheSJdLHByZTpjLHBvc3Q6Yyxib2R5OnthcmdzOlt7bmFtZToib3V0IixsdmFsdWU6ITAscnZhbHVlOiExLGNvdW50OjF9XSxib2R5OiJvdXQ9MCIsdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxmdW5jTmFtZToiemVybyJ9KX0seyJjd2lzZS1jb21waWxlciI6MTIwLGR1cDoxMjZ9XSwyMzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibmRhcnJheSIpLGk9dCgiLi9kb0NvbnZlcnQuanMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbz10LGE9MTtvIGluc3RhbmNlb2YgQXJyYXk7KXIucHVzaChvLmxlbmd0aCksYSo9by5sZW5ndGgsbz1vWzBdO3JldHVybiAwPT09ci5sZW5ndGg/bigpOihlfHwoZT1uKG5ldyBGbG9hdDY0QXJyYXkoYSkscikpLGkoZSx0KSxlKX19LHsiLi9kb0NvbnZlcnQuanMiOjIzMSxuZGFycmF5OjQ1Nn1dLDIzMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCJjd2lzZS1jb21waWxlciIpKHthcmdzOlsiYXJyYXkiLCJzY2FsYXIiLCJpbmRleCJdLHByZTp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7XG52YXIgX2lubGluZV8xX3Y9X2lubGluZV8xX2FyZzFfLF9pbmxpbmVfMV9pXG5mb3IoX2lubGluZV8xX2k9MDtfaW5saW5lXzFfaTxfaW5saW5lXzFfYXJnMl8ubGVuZ3RoLTE7KytfaW5saW5lXzFfaSkge1xuX2lubGluZV8xX3Y9X2lubGluZV8xX3ZbX2lubGluZV8xX2FyZzJfW19pbmxpbmVfMV9pXV1cbn1cbl9pbmxpbmVfMV9hcmcwXz1faW5saW5lXzFfdltfaW5saW5lXzFfYXJnMl9bX2lubGluZV8xX2FyZzJfLmxlbmd0aC0xXV1cbn0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMCxydmFsdWU6ITEsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMV9hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjR9XSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6WyJfaW5saW5lXzFfaSIsIl9pbmxpbmVfMV92Il19LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZnVuY05hbWU6ImNvbnZlcnQiLGJsb2NrU2l6ZTo2NH0pfSx7ImN3aXNlLWNvbXBpbGVyIjoxMjAKfV0sMjMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpKXt0aGlzLnBvc2l0aW9uPXQsdGhpcy5pbmRleD1lLHRoaXMudXY9cix0aGlzLmxldmVsPW4sdGhpcy5kYXRhQ29vcmRpbmF0ZT1pfWZ1bmN0aW9uIGkodCl7dmFyIGU9eChbeSh7Y29sb3JtYXA6dCxuc2hhZGVzOkQsZm9ybWF0OiJyZ2JhIn0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm5bdFswXSx0WzFdLHRbMl0sMjU1KnRbM11dfSldKTtyZXR1cm4gYi5kaXZzZXEoZSwyNTUpLGV9ZnVuY3Rpb24gbyh0LGUscixpLG8sYSxzLGwsdSxjLGgsZixwLGQpe3RoaXMuZ2w9dCx0aGlzLnNoYXBlPWUsdGhpcy5ib3VuZHM9cix0aGlzLmludGVuc2l0eUJvdW5kcz1bXSx0aGlzLl9zaGFkZXI9aSx0aGlzLl9waWNrU2hhZGVyPW8sdGhpcy5fY29vcmRpbmF0ZUJ1ZmZlcj1hLHRoaXMuX3Zhbz1zLHRoaXMuX2NvbG9yTWFwPWwsdGhpcy5fY29udG91clNoYWRlcj11LHRoaXMuX2NvbnRvdXJQaWNrU2hhZGVyPWMsdGhpcy5fY29udG91ckJ1ZmZlcj1oLHRoaXMuX2NvbnRvdXJWQU89Zix0aGlzLl9jb250b3VyT2Zmc2V0cz1bW10sW10sW11dLHRoaXMuX2NvbnRvdXJDb3VudHM9W1tdLFtdLFtdXSx0aGlzLl92ZXJ0ZXhDb3VudD0wLHRoaXMuX3BpY2tSZXN1bHQ9bmV3IG4oWzAsMCwwXSxbMCwwXSxbMCwwXSxbMCwwLDBdLFswLDAsMF0pLHRoaXMuX2R5bmFtaWNCdWZmZXI9cCx0aGlzLl9keW5hbWljVkFPPWQsdGhpcy5fZHluYW1pY09mZnNldHM9WzAsMCwwXSx0aGlzLl9keW5hbWljQ291bnRzPVswLDAsMF0sdGhpcy5jb250b3VyV2lkdGg9WzEsMSwxXSx0aGlzLmNvbnRvdXJMZXZlbHM9W1sxXSxbMV0sWzFdXSx0aGlzLmNvbnRvdXJUaW50PVswLDAsMF0sdGhpcy5jb250b3VyQ29sb3I9W1suNSwuNSwuNSwxXSxbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdXSx0aGlzLnNob3dDb250b3VyPSEwLHRoaXMuc2hvd1N1cmZhY2U9ITAsdGhpcy5lbmFibGVIaWdobGlnaHQ9WyEwLCEwLCEwXSx0aGlzLmhpZ2hsaWdodENvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5oaWdobGlnaHRUaW50PVsxLDEsMV0sdGhpcy5oaWdobGlnaHRMZXZlbD1bLTEsLTEsLTFdLHRoaXMuZW5hYmxlRHluYW1pYz1bITAsITAsITBdLHRoaXMuZHluYW1pY0xldmVsPVtOYU4sTmFOLE5hTl0sdGhpcy5keW5hbWljQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmR5bmFtaWNUaW50PVsxLDEsMV0sdGhpcy5keW5hbWljV2lkdGg9WzEsMSwxXSx0aGlzLmF4ZXNCb3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0oMS8wKSwtKDEvMCksLSgxLzApXV0sdGhpcy5zdXJmYWNlUHJvamVjdD1bITEsITEsITFdLHRoaXMuY29udG91clByb2plY3Q9W1shMSwhMSwhMV0sWyExLCExLCExXSxbITEsITEsITFdXSx0aGlzLmNvbG9yQm91bmRzPVshMSwhMV0sdGhpcy5fZmllbGQ9W18odi5tYWxsb2NGbG9hdCgxMDI0KSxbMCwwXSksXyh2Lm1hbGxvY0Zsb2F0KDEwMjQpLFswLDBdKSxfKHYubWFsbG9jRmxvYXQoMTAyNCksWzAsMF0pXSx0aGlzLnBpY2tJZD0xLHRoaXMuY2xpcEJvdW5kcz1bWy0oMS8wKSwtKDEvMCksLSgxLzApXSxbMS8wLDEvMCwxLzBdXSx0aGlzLnNuYXBUb0RhdGE9ITEsdGhpcy5vcGFjaXR5PTEsdGhpcy5saWdodFBvc2l0aW9uPVsxMCwxZTQsMF0sdGhpcy5hbWJpZW50TGlnaHQ9LjgsdGhpcy5kaWZmdXNlTGlnaHQ9LjgsdGhpcy5zcGVjdWxhckxpZ2h0PTIsdGhpcy5yb3VnaG5lc3M9LjUsdGhpcy5mcmVzbmVsPTEuNSx0aGlzLmRpcnR5PSEwfWZ1bmN0aW9uIGEodCxlKXt2YXIgcixuLGksbz1lLmF4ZXMmJmUuYXhlcy5sYXN0Q3ViZVByb3BzLmF4aXN8fEYsYT1lLnNob3dTdXJmYWNlLHM9ZS5zaG93Q29udG91cjtmb3Iocj0wOzM+cjsrK3IpZm9yKGE9YXx8ZS5zdXJmYWNlUHJvamVjdFtyXSxuPTA7Mz5uOysrbilzPXN8fGUuY29udG91clByb2plY3Rbcl1bbl07Zm9yKHI9MDszPnI7KytyKXt2YXIgbD1OLnByb2plY3Rpb25zW3JdO2ZvcihuPTA7MTY+bjsrK24pbFtuXT0wO2ZvcihuPTA7ND5uOysrbilsWzUqbl09MTtsWzUqcl09MCxsWzEyK3JdPWUuYXhlc0JvdW5kc1srKG9bcl0+MCldW3JdLE0obCx0Lm1vZGVsLGwpO3ZhciB1PU4uY2xpcEJvdW5kc1tyXTtmb3IoaT0wOzI+aTsrK2kpZm9yKG49MDszPm47KytuKXVbaV1bbl09dC5jbGlwQm91bmRzW2ldW25dO3VbMF1bcl09LTFlOCx1WzFdW3JdPTFlOH1yZXR1cm4gTi5zaG93U3VyZmFjZT1hLE4uc2hvd0NvbnRvdXI9cyxOfWZ1bmN0aW9uIHModCxlKXt0PXR8fHt9O3ZhciByPXRoaXMuZ2w7ci5kaXNhYmxlKHIuQ1VMTF9GQUNFKSx0aGlzLl9jb2xvck1hcC5iaW5kKDApO3ZhciBuPUI7bi5tb2RlbD10Lm1vZGVsfHxDLG4udmlldz10LnZpZXd8fEMsbi5wcm9qZWN0aW9uPXQucHJvamVjdGlvbnx8QyxuLmxvd2VyQm91bmQ9W3RoaXMuYm91bmRzWzBdWzBdLHRoaXMuYm91bmRzWzBdWzFdLHRoaXMuY29sb3JCb3VuZHNbMF18fHRoaXMuYm91bmRzWzBdWzJdXSxuLnVwcGVyQm91bmQ9W3RoaXMuYm91bmRzWzFdWzBdLHRoaXMuYm91bmRzWzFdWzFdLHRoaXMuY29sb3JCb3VuZHNbMV18fHRoaXMuYm91bmRzWzFdWzJdXSxuLmNvbnRvdXJDb2xvcj10aGlzLmNvbnRvdXJDb2xvclswXSxuLmludmVyc2VNb2RlbD1rKG4uaW52ZXJzZU1vZGVsLG4ubW9kZWwpO2Zvcih2YXIgaT0wOzI+aTsrK2kpZm9yKHZhciBvPW4uY2xpcEJvdW5kc1tpXSxzPTA7Mz5zOysrcylvW3NdPU1hdGgubWluKE1hdGgubWF4KHRoaXMuY2xpcEJvdW5kc1tpXVtzXSwtMWU4KSwxZTgpO24ua2FtYmllbnQ9dGhpcy5hbWJpZW50TGlnaHQsbi5rZGlmZnVzZT10aGlzLmRpZmZ1c2VMaWdodCxuLmtzcGVjdWxhcj10aGlzLnNwZWN1bGFyTGlnaHQsbi5yb3VnaG5lc3M9dGhpcy5yb3VnaG5lc3Msbi5mcmVzbmVsPXRoaXMuZnJlc25lbCxuLm9wYWNpdHk9dGhpcy5vcGFjaXR5LG4uaGVpZ2h0PTAsbi5wZXJtdXRhdGlvbj1WO3ZhciBsPVU7Zm9yKE0obCxuLnZpZXcsbi5tb2RlbCksTShsLG4ucHJvamVjdGlvbixsKSxrKGwsbCksaT0wOzM+aTsrK2kpbi5leWVQb3NpdGlvbltpXT1sWzEyK2ldL2xbMTVdO3ZhciB1PWxbMTVdO2ZvcihpPTA7Mz5pOysraSl1Kz10aGlzLmxpZ2h0UG9zaXRpb25baV0qbFs0KmkrM107Zm9yKGk9MDszPmk7KytpKXt2YXIgYz1sWzEyK2ldO2ZvcihzPTA7Mz5zOysrcyljKz1sWzQqcytpXSp0aGlzLmxpZ2h0UG9zaXRpb25bc107bi5saWdodFBvc2l0aW9uW2ldPWMvdX12YXIgaD1hKG4sdGhpcyk7aWYoaC5zaG93U3VyZmFjZSYmZT09PXRoaXMub3BhY2l0eTwxKXtmb3IodGhpcy5fc2hhZGVyLmJpbmQoKSx0aGlzLl9zaGFkZXIudW5pZm9ybXM9bix0aGlzLl92YW8uYmluZCgpLHRoaXMuc2hvd1N1cmZhY2UmJnRoaXMuX3ZlcnRleENvdW50JiZ0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCksaT0wOzM+aTsrK2kpdGhpcy5zdXJmYWNlUHJvamVjdFtpXSYmdGhpcy52ZXJ0ZXhDb3VudCYmKHRoaXMuX3NoYWRlci51bmlmb3Jtcy5tb2RlbD1oLnByb2plY3Rpb25zW2ldLHRoaXMuX3NoYWRlci51bmlmb3Jtcy5jbGlwQm91bmRzPWguY2xpcEJvdW5kc1tpXSx0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCkpO3RoaXMuX3Zhby51bmJpbmQoKX1pZihoLnNob3dDb250b3VyJiYhZSl7dmFyIGY9dGhpcy5fY29udG91clNoYWRlcjtuLmthbWJpZW50PTEsbi5rZGlmZnVzZT0wLG4ua3NwZWN1bGFyPTAsbi5vcGFjaXR5PTEsZi5iaW5kKCksZi51bmlmb3Jtcz1uO3ZhciBwPXRoaXMuX2NvbnRvdXJWQU87Zm9yKHAuYmluZCgpLGk9MDszPmk7KytpKWZvcihmLnVuaWZvcm1zLnBlcm11dGF0aW9uPWpbaV0sci5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbaV0pLHM9MDtzPHRoaXMuY29udG91ckxldmVsc1tpXS5sZW5ndGg7KytzKXRoaXMuX2NvbnRvdXJDb3VudHNbaV1bc10mJihzPT09dGhpcy5oaWdobGlnaHRMZXZlbFtpXT8oZi51bmlmb3Jtcy5jb250b3VyQ29sb3I9dGhpcy5oaWdobGlnaHRDb2xvcltpXSxmLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuaGlnaGxpZ2h0VGludFtpXSk6MCE9PXMmJnMtMSE9PXRoaXMuaGlnaGxpZ2h0TGV2ZWxbaV18fChmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmNvbnRvdXJDb2xvcltpXSxmLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuY29udG91clRpbnRbaV0pLGYudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tpXVtzXSxwLmRyYXcoci5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW2ldW3NdLHRoaXMuX2NvbnRvdXJPZmZzZXRzW2ldW3NdKSk7Zm9yKGk9MDszPmk7KytpKWZvcihmLnVuaWZvcm1zLm1vZGVsPWgucHJvamVjdGlvbnNbaV0sZi51bmlmb3Jtcy5jbGlwQm91bmRzPWguY2xpcEJvdW5kc1tpXSxzPTA7Mz5zOysrcylpZih0aGlzLmNvbnRvdXJQcm9qZWN0W2ldW3NdKXtmLnVuaWZvcm1zLnBlcm11dGF0aW9uPWpbc10sci5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbc10pO2Zvcih2YXIgZD0wO2Q8dGhpcy5jb250b3VyTGV2ZWxzW3NdLmxlbmd0aDsrK2QpZD09PXRoaXMuaGlnaGxpZ2h0TGV2ZWxbc10/KGYudW5pZm9ybXMuY29udG91ckNvbG9yPXRoaXMuaGlnaGxpZ2h0Q29sb3Jbc10sZi51bmlmb3Jtcy5jb250b3VyVGludD10aGlzLmhpZ2hsaWdodFRpbnRbc10pOjAhPT1kJiZkLTEhPT10aGlzLmhpZ2hsaWdodExldmVsW3NdfHwoZi51bmlmb3Jtcy5jb250b3VyQ29sb3I9dGhpcy5jb250b3VyQ29sb3Jbc10sZi51bmlmb3Jtcy5jb250b3VyVGludD10aGlzLmNvbnRvdXJUaW50W3NdKSxmLnVuaWZvcm1zLmhlaWdodD10aGlzLmNvbnRvdXJMZXZlbHNbc11bZF0scC5kcmF3KHIuTElORVMsdGhpcy5fY29udG91ckNvdW50c1tzXVtkXSx0aGlzLl9jb250b3VyT2Zmc2V0c1tzXVtkXSl9Zm9yKHA9dGhpcy5fZHluYW1pY1ZBTyxwLmJpbmQoKSxpPTA7Mz5pOysraSlpZigwIT09dGhpcy5fZHluYW1pY0NvdW50c1tpXSlmb3IoZi51bmlmb3Jtcy5tb2RlbD1uLm1vZGVsLGYudW5pZm9ybXMuY2xpcEJvdW5kcz1uLmNsaXBCb3VuZHMsZi51bmlmb3Jtcy5wZXJtdXRhdGlvbj1qW2ldLHIubGluZVdpZHRoKHRoaXMuZHluYW1pY1dpZHRoW2ldKSxmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmR5bmFtaWNDb2xvcltpXSxmLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuZHluYW1pY1RpbnRbaV0sZi51bmlmb3Jtcy5oZWlnaHQ9dGhpcy5keW5hbWljTGV2ZWxbaV0scC5kcmF3KHIuTElORVMsdGhpcy5fZHluYW1pY0NvdW50c1tpXSx0aGlzLl9keW5hbWljT2Zmc2V0c1tpXSkscz0wOzM+czsrK3MpdGhpcy5jb250b3VyUHJvamVjdFtzXVtpXSYmKGYudW5pZm9ybXMubW9kZWw9aC5wcm9qZWN0aW9uc1tzXSxmLnVuaWZvcm1zLmNsaXBCb3VuZHM9aC5jbGlwQm91bmRzW3NdLHAuZHJhdyhyLkxJTkVTLHRoaXMuX2R5bmFtaWNDb3VudHNbaV0sdGhpcy5fZHluYW1pY09mZnNldHNbaV0pKTtwLnVuYmluZCgpfX1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9ZS5zaGFwZS5zbGljZSgpLG49dC5zaGFwZS5zbGljZSgpO2IuYXNzaWduKHQubG8oMSwxKS5oaShyWzBdLHJbMV0pLGUpLGIuYXNzaWduKHQubG8oMSkuaGkoclswXSwxKSxlLmhpKHJbMF0sMSkpLGIuYXNzaWduKHQubG8oMSxuWzFdLTEpLmhpKHJbMF0sMSksZS5sbygwLHJbMV0tMSkuaGkoclswXSwxKSksYi5hc3NpZ24odC5sbygwLDEpLmhpKDEsclsxXSksZS5oaSgxKSksYi5hc3NpZ24odC5sbyhuWzBdLTEsMSkuaGkoMSxyWzFdKSxlLmxvKHJbMF0tMSkpLHQuc2V0KDAsMCxlLmdldCgwLDApKSx0LnNldCgwLG5bMV0tMSxlLmdldCgwLHJbMV0tMSkpLHQuc2V0KG5bMF0tMSwwLGUuZ2V0KHJbMF0tMSwwKSksdC5zZXQoblswXS0xLG5bMV0tMSxlLmdldChyWzBdLTEsclsxXS0xKSl9ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP1tlKHRbMF0pLGUodFsxXSksZSh0WzJdKV06W2UodCksZSh0KSxlKHQpXX1mdW5jdGlvbiBjKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpPzM9PT10Lmxlbmd0aD9bdFswXSx0WzFdLHRbMl0sMV06W3RbMF0sdFsxXSx0WzJdLHRbM11dOlswLDAsMCwxXX1mdW5jdGlvbiBoKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuW2ModFswXSksYyh0WzFdKSxjKHRbMl0pXTt2YXIgZT1jKHQpO3JldHVybltlLnNsaWNlKCksZS5zbGljZSgpLGUuc2xpY2UoKV19fWZ1bmN0aW9uIGYodCl7dmFyIGU9dC5nbCxyPVMoZSksbj16KGUpLGk9TChlKSxhPUkoZSkscz1kKGUpLGw9bShlLFt7YnVmZmVyOnMsc2l6ZTo0LHN0cmlkZTpQLG9mZnNldDowfSx7YnVmZmVyOnMsc2l6ZTozLHN0cmlkZTpQLG9mZnNldDoxNn0se2J1ZmZlcjpzLHNpemU6MyxzdHJpZGU6UCxvZmZzZXQ6Mjh9XSksdT1kKGUpLGM9bShlLFt7YnVmZmVyOnUsc2l6ZTo0LHN0cmlkZToyMCxvZmZzZXQ6MH0se2J1ZmZlcjp1LHNpemU6MSxzdHJpZGU6MjAsb2Zmc2V0OjE2fV0pLGg9ZChlKSxmPW0oZSxbe2J1ZmZlcjpoLHNpemU6Mix0eXBlOmUuRkxPQVR9XSkscD1nKGUsMSxELGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUpO3AubWluRmlsdGVyPWUuTElORUFSLHAubWFnRmlsdGVyPWUuTElORUFSO3ZhciB2PW5ldyBvKGUsWzAsMF0sW1swLDAsMF0sWzAsMCwwXV0scixuLHMsbCxwLGksYSx1LGMsaCxmKSx5PXtsZXZlbHM6W1tdLFtdLFtdXX07Zm9yKHZhciBiIGluIHQpeVtiXT10W2JdO3JldHVybiB5LmNvbG9ybWFwPXkuY29sb3JtYXB8fCJqZXQiLHYudXBkYXRlKHkpLHZ9ZS5leHBvcnRzPWY7dmFyIHA9dCgiYml0LXR3aWRkbGUiKSxkPXQoImdsLWJ1ZmZlciIpLG09dCgiZ2wtdmFvIiksZz10KCJnbC10ZXh0dXJlMmQiKSx2PXQoInR5cGVkYXJyYXktcG9vbCIpLHk9dCgiY29sb3JtYXAiKSxiPXQoIm5kYXJyYXktb3BzIikseD10KCJuZGFycmF5LXBhY2siKSxfPXQoIm5kYXJyYXkiKSx3PXQoInN1cmZhY2UtbmV0cyIpLE09dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGs9dCgiZ2wtbWF0NC9pbnZlcnQiKSxBPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksVD10KCJuZGFycmF5LWdyYWRpZW50IiksRT10KCIuL2xpYi9zaGFkZXJzIiksUz1FLmNyZWF0ZVNoYWRlcixMPUUuY3JlYXRlQ29udG91clNoYWRlcix6PUUuY3JlYXRlUGlja1NoYWRlcixJPUUuY3JlYXRlUGlja0NvbnRvdXJTaGFkZXIsUD00MCxDPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSxSPVtbMCwwXSxbMCwxXSxbMSwwXSxbMSwxXSxbMSwwXSxbMCwxXV0saj1bWzAsMCwwLDAsMCwwLDAsMCwwXSxbMCwwLDAsMCwwLDAsMCwwLDBdLFswLDAsMCwwLDAsMCwwLDAsMF1dOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wOzM+dDsrK3Qpe3ZhciBlPWpbdF0scj0odCsxKSUzLG49KHQrMiklMztlW3IrMF09MSxlW24rM109MSxlW3QrNl09MX19KCk7dmFyIEQ9MjY1LE89by5wcm90b3R5cGU7Ty5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BhY2l0eTwxfSxPLmlzT3BhcXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5vcGFjaXR5Pj0xKXJldHVybiEwO2Zvcih2YXIgdD0wOzM+dDsrK3QpaWYodGhpcy5fY29udG91ckNvdW50c1t0XS5sZW5ndGg+MHx8dGhpcy5fZHluYW1pY0NvdW50c1t0XT4wKXJldHVybiEwO3JldHVybiExfSxPLnBpY2tTbG90cz0xLE8uc2V0UGlja0Jhc2U9ZnVuY3Rpb24odCl7dGhpcy5waWNrSWQ9dH07dmFyIEY9WzAsMCwwXSxOPXtzaG93U3VyZmFjZTohMSxzaG93Q29udG91cjohMSxwcm9qZWN0aW9uczpbQy5zbGljZSgpLEMuc2xpY2UoKSxDLnNsaWNlKCldLGNsaXBCb3VuZHM6W1tbMCwwLDBdLFswLDAsMF1dLFtbMCwwLDBdLFswLDAsMF1dLFtbMCwwLDBdLFswLDAsMF1dXX0sQj17bW9kZWw6Qyx2aWV3OkMscHJvamVjdGlvbjpDLGludmVyc2VNb2RlbDpDLnNsaWNlKCksbG93ZXJCb3VuZDpbMCwwLDBdLHVwcGVyQm91bmQ6WzAsMCwwXSxjb2xvck1hcDowLGNsaXBCb3VuZHM6W1swLDAsMF0sWzAsMCwwXV0saGVpZ2h0OjAsY29udG91clRpbnQ6MCxjb250b3VyQ29sb3I6WzAsMCwwLDFdLHBlcm11dGF0aW9uOlsxLDAsMCwwLDEsMCwwLDAsMV0sek9mZnNldDotMWUtNCxrYW1iaWVudDoxLGtkaWZmdXNlOjEsa3NwZWN1bGFyOjEsbGlnaHRQb3NpdGlvbjpbMWUzLDFlMywxZTNdLGV5ZVBvc2l0aW9uOlswLDAsMF0scm91Z2huZXNzOjEsZnJlc25lbDoxLG9wYWNpdHk6MX0sVT1DLnNsaWNlKCksVj1bMSwwLDAsMCwxLDAsMCwwLDFdO08uZHJhdz1mdW5jdGlvbih0KXtyZXR1cm4gcy5jYWxsKHRoaXMsdCwhMSl9LE8uZHJhd1RyYW5zcGFyZW50PWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhbGwodGhpcyx0LCEwKX07dmFyIHE9e21vZGVsOkMsdmlldzpDLHByb2plY3Rpb246QyxpbnZlcnNlTW9kZWw6QyxjbGlwQm91bmRzOltbMCwwLDBdLFswLDAsMF1dLGhlaWdodDowLHNoYXBlOlswLDBdLHBpY2tJZDowLGxvd2VyQm91bmQ6WzAsMCwwXSx1cHBlckJvdW5kOlswLDAsMF0sek9mZnNldDowLHBlcm11dGF0aW9uOlsxLDAsMCwwLDEsMCwwLDAsMV0sbGlnaHRQb3NpdGlvbjpbMCwwLDBdLGV5ZVBvc2l0aW9uOlswLDAsMF19O08uZHJhd1BpY2s9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLmdsO2UuZGlzYWJsZShlLkNVTExfRkFDRSk7dmFyIHI9cTtyLm1vZGVsPXQubW9kZWx8fEMsci52aWV3PXQudmlld3x8QyxyLnByb2plY3Rpb249dC5wcm9qZWN0aW9ufHxDLHIuc2hhcGU9dGhpcy5fZmllbGRbMl0uc2hhcGUsci5waWNrSWQ9dGhpcy5waWNrSWQvMjU1LHIubG93ZXJCb3VuZD10aGlzLmJvdW5kc1swXSxyLnVwcGVyQm91bmQ9dGhpcy5ib3VuZHNbMV0sci5wZXJtdXRhdGlvbj1WO2Zvcih2YXIgbj0wOzI+bjsrK24pZm9yKHZhciBpPXIuY2xpcEJvdW5kc1tuXSxvPTA7Mz5vOysrbylpW29dPU1hdGgubWluKE1hdGgubWF4KHRoaXMuY2xpcEJvdW5kc1tuXVtvXSwtMWU4KSwxZTgpO3ZhciBzPWEocix0aGlzKTtpZihzLnNob3dTdXJmYWNlKXtmb3IodGhpcy5fcGlja1NoYWRlci5iaW5kKCksdGhpcy5fcGlja1NoYWRlci51bmlmb3Jtcz1yLHRoaXMuX3Zhby5iaW5kKCksdGhpcy5fdmFvLmRyYXcoZS5UUklBTkdMRVMsdGhpcy5fdmVydGV4Q291bnQpLG49MDszPm47KytuKXRoaXMuc3VyZmFjZVByb2plY3Rbbl0mJih0aGlzLl9waWNrU2hhZGVyLnVuaWZvcm1zLm1vZGVsPXMucHJvamVjdGlvbnNbbl0sdGhpcy5fcGlja1NoYWRlci51bmlmb3Jtcy5jbGlwQm91bmRzPXMuY2xpcEJvdW5kc1tuXSx0aGlzLl92YW8uZHJhdyhlLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCkpO3RoaXMuX3Zhby51bmJpbmQoKX1pZihzLnNob3dDb250b3VyKXt2YXIgbD10aGlzLl9jb250b3VyUGlja1NoYWRlcjtsLmJpbmQoKSxsLnVuaWZvcm1zPXI7dmFyIHU9dGhpcy5fY29udG91clZBTztmb3IodS5iaW5kKCksbz0wOzM+bzsrK28pZm9yKGUubGluZVdpZHRoKHRoaXMuY29udG91cldpZHRoW29dKSxsLnVuaWZvcm1zLnBlcm11dGF0aW9uPWpbb10sbj0wO248dGhpcy5jb250b3VyTGV2ZWxzW29dLmxlbmd0aDsrK24pdGhpcy5fY29udG91ckNvdW50c1tvXVtuXSYmKGwudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tvXVtuXSx1LmRyYXcoZS5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW29dW25dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW29dW25dKSk7Zm9yKG49MDszPm47KytuKWZvcihsLnVuaWZvcm1zLm1vZGVsPXMucHJvamVjdGlvbnNbbl0sbC51bmlmb3Jtcy5jbGlwQm91bmRzPXMuY2xpcEJvdW5kc1tuXSxvPTA7Mz5vOysrbylpZih0aGlzLmNvbnRvdXJQcm9qZWN0W25dW29dKXtsLnVuaWZvcm1zLnBlcm11dGF0aW9uPWpbb10sZS5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbb10pO2Zvcih2YXIgYz0wO2M8dGhpcy5jb250b3VyTGV2ZWxzW29dLmxlbmd0aDsrK2MpdGhpcy5fY29udG91ckNvdW50c1tvXVtjXSYmKGwudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tvXVtjXSx1LmRyYXcoZS5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW29dW2NdLHRoaXMuX2NvbnRvdXJPZmZzZXRzW29dW2NdKSl9dS51bmJpbmQoKX19LE8ucGljaz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gbnVsbDtpZih0LmlkIT09dGhpcy5waWNrSWQpcmV0dXJuIG51bGw7dmFyIGU9dGhpcy5fZmllbGRbMl0uc2hhcGUscj10aGlzLl9waWNrUmVzdWx0LG49ZVswXSoodC52YWx1ZVswXSsodC52YWx1ZVsyXT4+NCkvMTYpLzI1NSxpPU1hdGguZmxvb3Iobiksbz1uLWksYT1lWzFdKih0LnZhbHVlWzFdKygxNSZ0LnZhbHVlWzJdKS8xNikvMjU1LHM9TWF0aC5mbG9vcihhKSxsPWEtcztpKz0xLHMrPTE7dmFyIHU9ci5wb3NpdGlvbjt1WzBdPXVbMV09dVsyXT0wO2Zvcih2YXIgYz0wOzI+YzsrK2MpZm9yKHZhciBoPWM/bzoxLW8sZj0wOzI+ZjsrK2YpZm9yKHZhciBwPWY/bDoxLWwsZD1pK2MsbT1zK2YsZz1oKnAsdj0wOzM+djsrK3YpdVt2XSs9dGhpcy5fZmllbGRbdl0uZ2V0KGQsbSkqZztmb3IodmFyIHk9dGhpcy5fcGlja1Jlc3VsdC5sZXZlbCxiPTA7Mz5iOysrYilpZih5W2JdPUEubGUodGhpcy5jb250b3VyTGV2ZWxzW2JdLHVbYl0pLHlbYl08MCl0aGlzLmNvbnRvdXJMZXZlbHNbYl0ubGVuZ3RoPjAmJih5W2JdPTApO2Vsc2UgaWYoeVtiXTx0aGlzLmNvbnRvdXJMZXZlbHNbYl0ubGVuZ3RoLTEpe3ZhciB4PXRoaXMuY29udG91ckxldmVsc1tiXVt5W2JdXSxfPXRoaXMuY29udG91ckxldmVsc1tiXVt5W2JdKzFdO01hdGguYWJzKHgtdVtiXSk+TWF0aC5hYnMoXy11W2JdKSYmKHlbYl0rPTEpfWZvcihyLmluZGV4WzBdPS41Pm8/aTppKzEsci5pbmRleFsxXT0uNT5sP3M6cysxLHIudXZbMF09bi9lWzBdLHIudXZbMV09YS9lWzFdLHY9MDszPnY7Kyt2KXIuZGF0YUNvb3JkaW5hdGVbdl09dGhpcy5fZmllbGRbdl0uZ2V0KHIuaW5kZXhbMF0sci5pbmRleFsxXSk7cmV0dXJuIHJ9LE8udXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sdGhpcy5kaXJ0eT0hMCwiY29udG91cldpZHRoImluIHQmJih0aGlzLmNvbnRvdXJXaWR0aD11KHQuY29udG91cldpZHRoLE51bWJlcikpLCJzaG93Q29udG91ciJpbiB0JiYodGhpcy5zaG93Q29udG91cj11KHQuc2hvd0NvbnRvdXIsQm9vbGVhbikpLCJzaG93U3VyZmFjZSJpbiB0JiYodGhpcy5zaG93U3VyZmFjZT0hIXQuc2hvd1N1cmZhY2UpLCJjb250b3VyVGludCJpbiB0JiYodGhpcy5jb250b3VyVGludD11KHQuY29udG91clRpbnQsQm9vbGVhbikpLCJjb250b3VyQ29sb3IiaW4gdCYmKHRoaXMuY29udG91ckNvbG9yPWgodC5jb250b3VyQ29sb3IpKSwiY29udG91clByb2plY3QiaW4gdCYmKHRoaXMuY29udG91clByb2plY3Q9dSh0LmNvbnRvdXJQcm9qZWN0LGZ1bmN0aW9uKHQpe3JldHVybiB1KHQsQm9vbGVhbil9KSksInN1cmZhY2VQcm9qZWN0ImluIHQmJih0aGlzLnN1cmZhY2VQcm9qZWN0PXQuc3VyZmFjZVByb2plY3QpLCJkeW5hbWljQ29sb3IiaW4gdCYmKHRoaXMuZHluYW1pY0NvbG9yPWgodC5keW5hbWljQ29sb3IpKSwiZHluYW1pY1RpbnQiaW4gdCYmKHRoaXMuZHluYW1pY1RpbnQ9dSh0LmR5bmFtaWNUaW50LE51bWJlcikpLCJkeW5hbWljV2lkdGgiaW4gdCYmKHRoaXMuZHluYW1pY1dpZHRoPXUodC5keW5hbWljV2lkdGgsTnVtYmVyKSksIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT10Lm9wYWNpdHkpLCJjb2xvckJvdW5kcyJpbiB0JiYodGhpcy5jb2xvckJvdW5kcz10LmNvbG9yQm91bmRzKTt2YXIgZT10LmZpZWxkfHx0LmNvb3JkcyYmdC5jb29yZHNbMl18fG51bGwscj0hMTtpZihlfHwoZT10aGlzLl9maWVsZFsyXS5zaGFwZVswXXx8dGhpcy5fZmllbGRbMl0uc2hhcGVbMl0/dGhpcy5fZmllbGRbMl0ubG8oMSwxKS5oaSh0aGlzLl9maWVsZFsyXS5zaGFwZVswXS0yLHRoaXMuX2ZpZWxkWzJdLnNoYXBlWzFdLTIpOnRoaXMuX2ZpZWxkWzJdLmhpKDAsMCkpLCJmaWVsZCJpbiB0fHwiY29vcmRzImluIHQpe3ZhciBuPShlLnNoYXBlWzBdKzIpKihlLnNoYXBlWzFdKzIpO24+dGhpcy5fZmllbGRbMl0uZGF0YS5sZW5ndGgmJih2LmZyZWVGbG9hdCh0aGlzLl9maWVsZFsyXS5kYXRhKSx0aGlzLl9maWVsZFsyXS5kYXRhPXYubWFsbG9jRmxvYXQocC5uZXh0UG93MihuKSkpLHRoaXMuX2ZpZWxkWzJdPV8odGhpcy5fZmllbGRbMl0uZGF0YSxbZS5zaGFwZVswXSsyLGUuc2hhcGVbMV0rMl0pLGwodGhpcy5fZmllbGRbMl0sZSksdGhpcy5zaGFwZT1lLnNoYXBlLnNsaWNlKCk7Zm9yKHZhciBvPXRoaXMuc2hhcGUsYT0wOzI+YTsrK2EpdGhpcy5fZmllbGRbMl0uc2l6ZT50aGlzLl9maWVsZFthXS5kYXRhLmxlbmd0aCYmKHYuZnJlZUZsb2F0KHRoaXMuX2ZpZWxkW2FdLmRhdGEpLHRoaXMuX2ZpZWxkW2FdLmRhdGE9di5tYWxsb2NGbG9hdCh0aGlzLl9maWVsZFsyXS5zaXplKSksdGhpcy5fZmllbGRbYV09Xyh0aGlzLl9maWVsZFthXS5kYXRhLFtvWzBdKzIsb1sxXSsyXSk7aWYodC5jb29yZHMpe3ZhciBzPXQuY29vcmRzO2lmKCFBcnJheS5pc0FycmF5KHMpfHwzIT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIGNvb3JkaW5hdGVzIGZvciB4L3kiKTtmb3IoYT0wOzI+YTsrK2Epe3ZhciBjPXNbYV07Zm9yKHk9MDsyPnk7Kyt5KWlmKGMuc2hhcGVbeV0hPT1vW3ldKXRocm93IG5ldyBFcnJvcigiZ2wtc3VyZmFjZTogY29vcmRzIGhhdmUgaW5jb3JyZWN0IHNoYXBlIik7bCh0aGlzLl9maWVsZFthXSxjKX19ZWxzZSBpZih0LnRpY2tzKXt2YXIgZj10LnRpY2tzO2lmKCFBcnJheS5pc0FycmF5KGYpfHwyIT09Zi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIHRpY2tzIik7Zm9yKGE9MDsyPmE7KythKXt2YXIgZD1mW2FdO2lmKChBcnJheS5pc0FycmF5KGQpfHxkLmxlbmd0aCkmJihkPV8oZCkpLGQuc2hhcGVbMF0hPT1vW2FdKXRocm93IG5ldyBFcnJvcigiZ2wtc3VyZmFjZTogaW52YWxpZCB0aWNrIGxlbmd0aCIpO3ZhciBtPV8oZC5kYXRhLG8pO20uc3RyaWRlW2FdPWQuc3RyaWRlWzBdLG0uc3RyaWRlWzFeYV09MCxsKHRoaXMuX2ZpZWxkW2FdLG0pfX1lbHNle2ZvcihhPTA7Mj5hOysrYSl7dmFyIGc9WzAsMF07Z1thXT0xLHRoaXMuX2ZpZWxkW2FdPV8odGhpcy5fZmllbGRbYV0uZGF0YSxbb1swXSsyLG9bMV0rMl0sZywwKX10aGlzLl9maWVsZFswXS5zZXQoMCwwLDApO2Zvcih2YXIgeT0wO3k8b1swXTsrK3kpdGhpcy5fZmllbGRbMF0uc2V0KHkrMSwwLHkpO2Zvcih0aGlzLl9maWVsZFswXS5zZXQob1swXSsxLDAsb1swXS0xKSx0aGlzLl9maWVsZFsxXS5zZXQoMCwwLDApLHk9MDt5PG9bMV07Kyt5KXRoaXMuX2ZpZWxkWzFdLnNldCgwLHkrMSx5KTt0aGlzLl9maWVsZFsxXS5zZXQoMCxvWzFdKzEsb1sxXS0xKX12YXIgYj10aGlzLl9maWVsZCx4PV8odi5tYWxsb2NGbG9hdCgzKmJbMl0uc2l6ZSoyKSxbMyxvWzBdKzIsb1sxXSsyLDJdKTtmb3IoYT0wOzM+YTsrK2EpVCh4LnBpY2soYSksYlthXSwibWlycm9yIik7dmFyIE09Xyh2Lm1hbGxvY0Zsb2F0KDMqYlsyXS5zaXplKSxbb1swXSsyLG9bMV0rMiwzXSk7Zm9yKGE9MDthPG9bMF0rMjsrK2EpZm9yKHk9MDt5PG9bMV0rMjsrK3kpe3ZhciBrPXguZ2V0KDAsYSx5LDApLEE9eC5nZXQoMCxhLHksMSksRT14LmdldCgxLGEseSwwKSxTPXguZ2V0KDEsYSx5LDEpLEw9eC5nZXQoMixhLHksMCksej14LmdldCgyLGEseSwxKSxJPUUqei1TKkwsUD1MKkEteiprLEM9aypTLUEqRSxqPU1hdGguc3FydChJKkkrUCpQK0MqQyk7MWUtOD5qPyhqPU1hdGgubWF4KE1hdGguYWJzKEkpLE1hdGguYWJzKFApLE1hdGguYWJzKEMpKSwxZS04Pmo/KEM9MSxQPUk9MCxqPTEpOmo9MS9qKTpqPTEvTWF0aC5zcXJ0KGopLE0uc2V0KGEseSwwLEkqaiksTS5zZXQoYSx5LDEsUCpqKSxNLnNldChhLHksMixDKmopfXYuZnJlZSh4LmRhdGEpO3ZhciBEPVsxLzAsMS8wLDEvMF0sTz1bLSgxLzApLC0oMS8wKSwtKDEvMCldLEY9MS8wLE49LSgxLzApLEI9KG9bMF0tMSkqKG9bMV0tMSkqNixVPXYubWFsbG9jRmxvYXQocC5uZXh0UG93MigxMCpCKSksVj0wLHE9MDtmb3IoYT0wO2E8b1swXS0xOysrYSl0OmZvcih5PTA7eTxvWzFdLTE7Kyt5KXtmb3IodmFyIEc9MDsyPkc7KytHKWZvcih2YXIgSD0wOzI+SDsrK0gpZm9yKHZhciBYPTA7Mz5YOysrWCl7dmFyIFk9dGhpcy5fZmllbGRbWF0uZ2V0KDErYStHLDEreStIKTtpZihpc05hTihZKXx8IWlzRmluaXRlKFkpKWNvbnRpbnVlIHR9Zm9yKFg9MDs2Plg7KytYKXt2YXIgVz1hK1JbWF1bMF0sWj15K1JbWF1bMV0sUT10aGlzLl9maWVsZFswXS5nZXQoVysxLForMSksSz10aGlzLl9maWVsZFsxXS5nZXQoVysxLForMSk7WT10aGlzLl9maWVsZFsyXS5nZXQoVysxLForMSk7dmFyIEo9WTtJPU0uZ2V0KFcrMSxaKzEsMCksUD1NLmdldChXKzEsWisxLDEpLEM9TS5nZXQoVysxLForMSwyKSx0LmludGVuc2l0eSYmKEo9dC5pbnRlbnNpdHkuZ2V0KFcsWikpLFVbVisrXT1XLFVbVisrXT1aLFVbVisrXT1RLFVbVisrXT1LLFVbVisrXT1ZLFVbVisrXT0wLFVbVisrXT1KLFVbVisrXT1JLFVbVisrXT1QLFVbVisrXT1DLERbMF09TWF0aC5taW4oRFswXSxRKSxEWzFdPU1hdGgubWluKERbMV0sSyksRFsyXT1NYXRoLm1pbihEWzJdLFkpLEY9TWF0aC5taW4oRixKKSxPWzBdPU1hdGgubWF4KE9bMF0sUSksT1sxXT1NYXRoLm1heChPWzFdLEspLE9bMl09TWF0aC5tYXgoT1syXSxZKSxOPU1hdGgubWF4KE4sSikscSs9MX19Zm9yKHQuaW50ZW5zaXR5Qm91bmRzJiYoRj0rdC5pbnRlbnNpdHlCb3VuZHNbMF0sTj0rdC5pbnRlbnNpdHlCb3VuZHNbMV0pLGE9NjtWPmE7YSs9MTApVVthXT0oVVthXS1GKS8oTi1GKTt0aGlzLl92ZXJ0ZXhDb3VudD1xLHRoaXMuX2Nvb3JkaW5hdGVCdWZmZXIudXBkYXRlKFUuc3ViYXJyYXkoMCxWKSksdi5mcmVlRmxvYXQoVSksdi5mcmVlKE0uZGF0YSksdGhpcy5ib3VuZHM9W0QsT10sdGhpcy5pbnRlbnNpdHk9dC5pbnRlbnNpdHl8fHRoaXMuX2ZpZWxkWzJdLHRoaXMuaW50ZW5zaXR5Qm91bmRzWzBdPT09RiYmdGhpcy5pbnRlbnNpdHlCb3VuZHNbMV09PT1OfHwocj0hMCksdGhpcy5pbnRlbnNpdHlCb3VuZHM9W0YsTl19aWYoImxldmVscyJpbiB0KXt2YXIgJD10LmxldmVscztmb3IoJD1BcnJheS5pc0FycmF5KCRbMF0pPyQuc2xpY2UoKTpbW10sW10sJF0sYT0wOzM+YTsrK2EpJFthXT0kW2FdLnNsaWNlKCksJC5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pO3Q6Zm9yKGE9MDszPmE7KythKXtpZigkW2FdLmxlbmd0aCE9PXRoaXMuY29udG91ckxldmVsc1thXS5sZW5ndGgpe3I9ITA7YnJlYWt9Zm9yKHk9MDt5PCRbYV0ubGVuZ3RoOysreSlpZigkW2FdW3ldIT09dGhpcy5jb250b3VyTGV2ZWxzW2FdW3ldKXtyPSEwO2JyZWFrIHR9fXRoaXMuY29udG91ckxldmVscz0kfWlmKHIpe2I9dGhpcy5fZmllbGQsbz10aGlzLnNoYXBlO2Zvcih2YXIgdHQ9W10sZXQ9MDszPmV0OysrZXQpeyQ9dGhpcy5jb250b3VyTGV2ZWxzW2V0XTt2YXIgcnQ9W10sbnQ9W10saXQ9WzAsMCwwXTtmb3IoYT0wO2E8JC5sZW5ndGg7KythKXt2YXIgb3Q9dyh0aGlzLl9maWVsZFtldF0sJFthXSk7cnQucHVzaCh0dC5sZW5ndGgvNXwwKSxxPTA7dDpmb3IoeT0wO3k8b3QuY2VsbHMubGVuZ3RoOysreSl7dmFyIGF0PW90LmNlbGxzW3ldO2ZvcihYPTA7Mj5YOysrWCl7dmFyIHN0PW90LnBvc2l0aW9uc1thdFtYXV0sbHQ9c3RbMF0sdXQ9MHxNYXRoLmZsb29yKGx0KSxjdD1sdC11dCxodD1zdFsxXSxmdD0wfE1hdGguZmxvb3IoaHQpLHB0PWh0LWZ0LGR0PSExO2U6Zm9yKHZhciBtdD0wOzM+bXQ7KyttdCl7aXRbbXRdPTA7dmFyIGd0PShldCttdCsxKSUzO2ZvcihHPTA7Mj5HOysrRyl7dmFyIHZ0PUc/Y3Q6MS1jdDtmb3IoVz0wfE1hdGgubWluKE1hdGgubWF4KHV0K0csMCksb1swXSksSD0wOzI+SDsrK0gpe3ZhciB5dD1IP3B0OjEtcHQ7aWYoWj0wfE1hdGgubWluKE1hdGgubWF4KGZ0K0gsMCksb1sxXSksWT0yPm10P3RoaXMuX2ZpZWxkW2d0XS5nZXQoVyxaKToodGhpcy5pbnRlbnNpdHkuZ2V0KFcsWiktdGhpcy5pbnRlbnNpdHlCb3VuZHNbMF0pLyh0aGlzLmludGVuc2l0eUJvdW5kc1sxXS10aGlzLmludGVuc2l0eUJvdW5kc1swXSksIWlzRmluaXRlKFkpfHxpc05hTihZKSl7ZHQ9ITA7YnJlYWsgZX12YXIgYnQ9dnQqeXQ7aXRbbXRdKz1idCpZfX19aWYoZHQpe2lmKFg+MCl7Zm9yKHZhciB4dD0wOzU+eHQ7Kyt4dCl0dC5wb3AoKTtxLT0xfWNvbnRpbnVlIHR9dHQucHVzaChpdFswXSxpdFsxXSxzdFswXSxzdFsxXSxpdFsyXSkscSs9MX19bnQucHVzaChxKX10aGlzLl9jb250b3VyT2Zmc2V0c1tldF09cnQsdGhpcy5fY29udG91ckNvdW50c1tldF09bnR9dmFyIF90PXYubWFsbG9jRmxvYXQodHQubGVuZ3RoKTtmb3IoYT0wO2E8dHQubGVuZ3RoOysrYSlfdFthXT10dFthXTt0aGlzLl9jb250b3VyQnVmZmVyLnVwZGF0ZShfdCksdi5mcmVlRmxvYXQoX3QpfXQuY29sb3JtYXAmJnRoaXMuX2NvbG9yTWFwLnNldFBpeGVscyhpKHQuY29sb3JtYXApKX0sTy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLl92YW8uZGlzcG9zZSgpLHRoaXMuX2Nvb3JkaW5hdGVCdWZmZXIuZGlzcG9zZSgpLHRoaXMuX2NvbG9yTWFwLmRpc3Bvc2UoKSx0aGlzLl9jb250b3VyQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLl9jb250b3VyVkFPLmRpc3Bvc2UoKSx0aGlzLl9jb250b3VyU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLl9jb250b3VyUGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy5fZHluYW1pY0J1ZmZlci5kaXNwb3NlKCksdGhpcy5fZHluYW1pY1ZBTy5kaXNwb3NlKCk7Zm9yKHZhciB0PTA7Mz50OysrdCl2LmZyZWVGbG9hdCh0aGlzLl9maWVsZFt0XS5kYXRhKX0sTy5oaWdobGlnaHQ9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIHRoaXMuX2R5bmFtaWNDb3VudHM9WzAsMCwwXSx0aGlzLmR5YW5hbWljTGV2ZWw9W05hTixOYU4sTmFOXSx2b2lkKHRoaXMuaGlnaGxpZ2h0TGV2ZWw9Wy0xLC0xLC0xXSk7Zm9yKHZhciBlPTA7Mz5lOysrZSl0aGlzLmVuYWJsZUhpZ2hsaWdodFtlXT90aGlzLmhpZ2hsaWdodExldmVsW2VdPXQubGV2ZWxbZV06dGhpcy5oaWdobGlnaHRMZXZlbFtlXT0tMTt2YXIgcjtpZihyPXRoaXMuc25hcFRvRGF0YT90LmRhdGFDb29yZGluYXRlOnQucG9zaXRpb24sdGhpcy5lbmFibGVEeW5hbWljWzBdJiZyWzBdIT09dGhpcy5keW5hbWljTGV2ZWxbMF18fHRoaXMuZW5hYmxlRHluYW1pY1sxXSYmclsxXSE9PXRoaXMuZHluYW1pY0xldmVsWzFdfHx0aGlzLmVuYWJsZUR5bmFtaWNbMl0mJnJbMl0hPT10aGlzLmR5bmFtaWNMZXZlbFsyXSl7Zm9yKHZhciBuPTAsaT10aGlzLnNoYXBlLG89di5tYWxsb2NGbG9hdCgxMippWzBdKmlbMV0pLGE9MDszPmE7KythKWlmKHRoaXMuZW5hYmxlRHluYW1pY1thXSl7dGhpcy5keW5hbWljTGV2ZWxbYV09clthXTt2YXIgcz0oYSsxKSUzLGw9KGErMiklMyx1PXRoaXMuX2ZpZWxkW2FdLGM9dGhpcy5fZmllbGRbc10saD10aGlzLl9maWVsZFtsXSxmPSh0aGlzLmludGVuc2l0eSx3KHUsclthXSkpLHA9Zi5jZWxscyxkPWYucG9zaXRpb25zO2Zvcih0aGlzLl9keW5hbWljT2Zmc2V0c1thXT1uLGU9MDtlPHAubGVuZ3RoOysrZSlmb3IodmFyIG09cFtlXSxnPTA7Mj5nOysrZyl7dmFyIHk9ZFttW2ddXSxiPSt5WzBdLHg9MHxiLF89MHxNYXRoLm1pbih4KzEsaVswXSksTT1iLXgsaz0xLU0sQT0reVsxXSxUPTB8QSxFPTB8TWF0aC5taW4oVCsxLGlbMV0pLFM9QS1ULEw9MS1TLHo9aypMLEk9aypTLFA9TSpMLEM9TSpTLFI9eipjLmdldCh4LFQpK0kqYy5nZXQoeCxFKStQKmMuZ2V0KF8sVCkrQypjLmdldChfLEUpLGo9eipoLmdldCh4LFQpK0kqaC5nZXQoeCxFKStQKmguZ2V0KF8sVCkrQypoLmdldChfLEUpO2lmKGlzTmFOKFIpfHxpc05hTihqKSl7ZyYmKG4tPTEpO2JyZWFrfW9bMipuKzBdPVIsb1syKm4rMV09aixuKz0xfXRoaXMuX2R5bmFtaWNDb3VudHNbYV09bi10aGlzLl9keW5hbWljT2Zmc2V0c1thXX1lbHNlIHRoaXMuZHluYW1pY0xldmVsW2FdPU5hTix0aGlzLl9keW5hbWljQ291bnRzW2FdPTA7dGhpcy5fZHluYW1pY0J1ZmZlci51cGRhdGUoby5zdWJhcnJheSgwLDIqbikpLHYuZnJlZUZsb2F0KG8pfX19LHsiLi9saWIvc2hhZGVycyI6MjI3LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MjI4LCJiaXQtdHdpZGRsZSI6NTEsY29sb3JtYXA6MTExLCJnbC1idWZmZXIiOjEyOSwiZ2wtbWF0NC9pbnZlcnQiOjE0OCwiZ2wtbWF0NC9tdWx0aXBseSI6MTUwLCJnbC10ZXh0dXJlMmQiOjIzMywiZ2wtdmFvIjoyMzcsbmRhcnJheTo0NTYsIm5kYXJyYXktZ3JhZGllbnQiOjIyOSwibmRhcnJheS1vcHMiOjQ1NSwibmRhcnJheS1wYWNrIjoyMzAsInN1cmZhY2UtbmV0cyI6NDc1LCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDIzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2c9W3QuTElORUFSLHQuTkVBUkVTVF9NSVBNQVBfTElORUFSLHQuTElORUFSX01JUE1BUF9ORUFSRVNULHQuTElORUFSX01JUE1BUF9ORUFSRVNUXSx2PVt0Lk5FQVJFU1QsdC5MSU5FQVIsdC5ORUFSRVNUX01JUE1BUF9ORUFSRVNULHQuTkVBUkVTVF9NSVBNQVBfTElORUFSLHQuTElORUFSX01JUE1BUF9ORUFSRVNULHQuTElORUFSX01JUE1BUF9MSU5FQVJdLHk9W3QuUkVQRUFULHQuQ0xBTVBfVE9fRURHRSx0Lk1JUlJPUkVEX1JFUEVBVF19ZnVuY3Rpb24gaSh0LGUscil7dmFyIG49dC5nbCxpPW4uZ2V0UGFyYW1ldGVyKG4uTUFYX1RFWFRVUkVfU0laRSk7aWYoMD5lfHxlPml8fDA+cnx8cj5pKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHRleHR1cmUgc2l6ZSIpO3JldHVybiB0Ll9zaGFwZT1bZSxyXSx0LmJpbmQoKSxuLnRleEltYWdlMkQobi5URVhUVVJFXzJELDAsdC5mb3JtYXQsZSxyLDAsdC5mb3JtYXQsdC50eXBlLG51bGwpLHQuX21pcExldmVscz1bMF0sdH1mdW5jdGlvbiBvKHQsZSxyLG4saSxvKXt0aGlzLmdsPXQsdGhpcy5oYW5kbGU9ZSx0aGlzLmZvcm1hdD1pLHRoaXMudHlwZT1vLHRoaXMuX3NoYXBlPVtyLG5dLHRoaXMuX21pcExldmVscz1bMF0sdGhpcy5fbWFnRmlsdGVyPXQuTkVBUkVTVCx0aGlzLl9taW5GaWx0ZXI9dC5ORUFSRVNULHRoaXMuX3dyYXBTPXQuQ0xBTVBfVE9fRURHRSx0aGlzLl93cmFwVD10LkNMQU1QX1RPX0VER0UsdGhpcy5fYW5pc29TYW1wbGVzPTE7dmFyIGE9dGhpcyxzPVt0aGlzLl93cmFwUyx0aGlzLl93cmFwVF07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocyxbe2dldDpmdW5jdGlvbigpe3JldHVybiBhLl93cmFwU30sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBhLndyYXBTPXR9fSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuX3dyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEud3JhcFQ9dH19XSksdGhpcy5fd3JhcFZlY3Rvcj1zO3ZhciBsPVt0aGlzLl9zaGFwZVswXSx0aGlzLl9zaGFwZVsxXV07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobCxbe2dldDpmdW5jdGlvbigpe3JldHVybiBhLl9zaGFwZVswXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBhLndpZHRoPXR9fSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuX3NoYXBlWzFdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGEuaGVpZ2h0PXR9fV0pLHRoaXMuX3NoYXBlVmVjdG9yPWx9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiAzPT09dC5sZW5ndGg/MT09PWVbMl0mJmVbMV09PT10WzBdKnRbMl0mJmVbMF09PT10WzJdOjE9PT1lWzBdJiZlWzFdPT09dFswXX1mdW5jdGlvbiBzKHQsZSxyLG4saSxvLHMsbCl7dmFyIHU9bC5kdHlwZSxjPWwuc2hhcGUuc2xpY2UoKTtpZihjLmxlbmd0aDwyfHxjLmxlbmd0aD4zKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIG5kYXJyYXksIG11c3QgYmUgMmQgb3IgM2QiKTt2YXIgaD0wLGY9MCxnPWEoYyxsLnN0cmlkZS5zbGljZSgpKTsiZmxvYXQzMiI9PT11P2g9dC5GTE9BVDoiZmxvYXQ2NCI9PT11PyhoPXQuRkxPQVQsZz0hMSx1PSJmbG9hdDMyIik6InVpbnQ4Ij09PXU/aD10LlVOU0lHTkVEX0JZVEU6KGg9dC5VTlNJR05FRF9CWVRFLGc9ITEsdT0idWludDgiKTt2YXIgdj0xO2lmKDI9PT1jLmxlbmd0aClmPXQuTFVNSU5BTkNFLGM9W2NbMF0sY1sxXSwxXSxsPXAobC5kYXRhLGMsW2wuc3RyaWRlWzBdLGwuc3RyaWRlWzFdLDFdLGwub2Zmc2V0KTtlbHNle2lmKDMhPT1jLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgdGV4dHVyZSIpO2lmKDE9PT1jWzJdKWY9dC5BTFBIQTtlbHNlIGlmKDI9PT1jWzJdKWY9dC5MVU1JTkFOQ0VfQUxQSEE7ZWxzZSBpZigzPT09Y1syXSlmPXQuUkdCO2Vsc2V7aWYoNCE9PWNbMl0pdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgc2hhcGUgZm9yIHBpeGVsIGNvb3JkcyIpO2Y9dC5SR0JBfXY9Y1syXX1pZihmIT09dC5MVU1JTkFOQ0UmJmYhPT10LkFMUEhBfHxpIT09dC5MVU1JTkFOQ0UmJmkhPT10LkFMUEhBfHwoZj1pKSxmIT09aSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW5jb21wYXRpYmxlIHRleHR1cmUgZm9ybWF0IGZvciBzZXRQaXhlbHMiKTt2YXIgeT1sLnNpemUseD1zLmluZGV4T2Yobik8MDtpZih4JiZzLnB1c2gobiksaD09PW8mJmcpMD09PWwub2Zmc2V0JiZsLmRhdGEubGVuZ3RoPT09eT94P3QudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsbixpLGNbMF0sY1sxXSwwLGksbyxsLmRhdGEpOnQudGV4U3ViSW1hZ2UyRCh0LlRFWFRVUkVfMkQsbixlLHIsY1swXSxjWzFdLGksbyxsLmRhdGEpOng/dC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCxuLGksY1swXSxjWzFdLDAsaSxvLGwuZGF0YS5zdWJhcnJheShsLm9mZnNldCxsLm9mZnNldCt5KSk6dC50ZXhTdWJJbWFnZTJEKHQuVEVYVFVSRV8yRCxuLGUscixjWzBdLGNbMV0saSxvLGwuZGF0YS5zdWJhcnJheShsLm9mZnNldCxsLm9mZnNldCt5KSk7ZWxzZXt2YXIgXztfPW89PT10LkZMT0FUP20ubWFsbG9jRmxvYXQzMih5KTptLm1hbGxvY1VpbnQ4KHkpO3ZhciB3PXAoXyxjLFtjWzJdLGNbMl0qY1swXSwxXSk7aD09PXQuRkxPQVQmJm89PT10LlVOU0lHTkVEX0JZVEU/Yih3LGwpOmQuYXNzaWduKHcsbCkseD90LnRleEltYWdlMkQodC5URVhUVVJFXzJELG4saSxjWzBdLGNbMV0sMCxpLG8sXy5zdWJhcnJheSgwLHkpKTp0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELG4sZSxyLGNbMF0sY1sxXSxpLG8sXy5zdWJhcnJheSgwLHkpKSxvPT09dC5GTE9BVD9tLmZyZWVGbG9hdDMyKF8pOm0uZnJlZVVpbnQ4KF8pfX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQuY3JlYXRlVGV4dHVyZSgpO3JldHVybiB0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCxlKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NSU5fRklMVEVSLHQuTkVBUkVTVCksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUFHX0ZJTFRFUix0Lk5FQVJFU1QpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfUyx0LkNMQU1QX1RPX0VER0UpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfVCx0LkNMQU1QX1RPX0VER0UpLGV9ZnVuY3Rpb24gdSh0LGUscixuLGkpe3ZhciBhPXQuZ2V0UGFyYW1ldGVyKHQuTUFYX1RFWFRVUkVfU0laRSk7aWYoMD5lfHxlPmF8fDA+cnx8cj5hKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHRleHR1cmUgc2hhcGUiKTtpZihpPT09dC5GTE9BVCYmIXQuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdCIpKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBGbG9hdGluZyBwb2ludCB0ZXh0dXJlcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0iKTt2YXIgcz1sKHQpO3JldHVybiB0LnRleEltYWdlMkQodC5URVhUVVJFXzJELDAsbixlLHIsMCxuLGksbnVsbCksbmV3IG8odCxzLGUscixuLGkpfWZ1bmN0aW9uIGModCxlLHIsbil7dmFyIGk9bCh0KTtyZXR1cm4gdC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLHIscixuLGUpLG5ldyBvKHQsaSwwfGUud2lkdGgsMHxlLmhlaWdodCxyLG4pfWZ1bmN0aW9uIGgodCxlKXt2YXIgcj1lLmR0eXBlLG49ZS5zaGFwZS5zbGljZSgpLGk9dC5nZXRQYXJhbWV0ZXIodC5NQVhfVEVYVFVSRV9TSVpFKTtpZihuWzBdPDB8fG5bMF0+aXx8blsxXTwwfHxuWzFdPmkpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgdGV4dHVyZSBzaXplIik7dmFyIHM9YShuLGUuc3RyaWRlLnNsaWNlKCkpLHU9MDsiZmxvYXQzMiI9PT1yP3U9dC5GTE9BVDoiZmxvYXQ2NCI9PT1yPyh1PXQuRkxPQVQscz0hMSxyPSJmbG9hdDMyIik6InVpbnQ4Ij09PXI/dT10LlVOU0lHTkVEX0JZVEU6KHU9dC5VTlNJR05FRF9CWVRFLHM9ITEscj0idWludDgiKTt2YXIgYz0wO2lmKDI9PT1uLmxlbmd0aCljPXQuTFVNSU5BTkNFLG49W25bMF0sblsxXSwxXSxlPXAoZS5kYXRhLG4sW2Uuc3RyaWRlWzBdLGUuc3RyaWRlWzFdLDFdLGUub2Zmc2V0KTtlbHNle2lmKDMhPT1uLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgdGV4dHVyZSIpO2lmKDE9PT1uWzJdKWM9dC5BTFBIQTtlbHNlIGlmKDI9PT1uWzJdKWM9dC5MVU1JTkFOQ0VfQUxQSEE7ZWxzZSBpZigzPT09blsyXSljPXQuUkdCO2Vsc2V7aWYoNCE9PW5bMl0pdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgc2hhcGUgZm9yIHBpeGVsIGNvb3JkcyIpO2M9dC5SR0JBfX11IT09dC5GTE9BVHx8dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0Iil8fCh1PXQuVU5TSUdORURfQllURSxzPSExKTt2YXIgaCxmLGc9ZS5zaXplO2lmKHMpaD0wPT09ZS5vZmZzZXQmJmUuZGF0YS5sZW5ndGg9PT1nP2UuZGF0YTplLmRhdGEuc3ViYXJyYXkoZS5vZmZzZXQsZS5vZmZzZXQrZyk7ZWxzZXt2YXIgdj1bblsyXSxuWzJdKm5bMF0sMV07Zj1tLm1hbGxvYyhnLHIpO3ZhciB5PXAoZixuLHYsMCk7ImZsb2F0MzIiIT09ciYmImZsb2F0NjQiIT09cnx8dSE9PXQuVU5TSUdORURfQllURT9kLmFzc2lnbih5LGUpOmIoeSxlKSxoPWYuc3ViYXJyYXkoMCxnKX12YXIgeD1sKHQpO3JldHVybiB0LnRleEltYWdlMkQodC5URVhUVVJFXzJELDAsYyxuWzBdLG5bMV0sMCxjLHUsaCksc3x8bS5mcmVlKGYpLG5ldyBvKHQseCxuWzBdLG5bMV0sYyx1KX1mdW5jdGlvbiBmKHQpe2lmKGFyZ3VtZW50cy5sZW5ndGg8PTEpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IE1pc3NpbmcgYXJndW1lbnRzIGZvciB0ZXh0dXJlMmQgY29uc3RydWN0b3IiKTtpZihnfHxuKHQpLCJudW1iZXIiPT10eXBlb2YgYXJndW1lbnRzWzFdKXJldHVybiB1KHQsYXJndW1lbnRzWzFdLGFyZ3VtZW50c1syXSxhcmd1bWVudHNbM118fHQuUkdCQSxhcmd1bWVudHNbNF18fHQuVU5TSUdORURfQllURSk7aWYoQXJyYXkuaXNBcnJheShhcmd1bWVudHNbMV0pKXJldHVybiB1KHQsMHxhcmd1bWVudHNbMV1bMF0sMHxhcmd1bWVudHNbMV1bMV0sYXJndW1lbnRzWzJdfHx0LlJHQkEsYXJndW1lbnRzWzNdfHx0LlVOU0lHTkVEX0JZVEUpO2lmKCJvYmplY3QiPT10eXBlb2YgYXJndW1lbnRzWzFdKXt2YXIgZT1hcmd1bWVudHNbMV07aWYoZSBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHxlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8ZSBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnR8fGUgaW5zdGFuY2VvZiBJbWFnZURhdGEpcmV0dXJuIGModCxlLGFyZ3VtZW50c1syXXx8dC5SR0JBLGFyZ3VtZW50c1szXXx8dC5VTlNJR05FRF9CWVRFKTtpZihlLnNoYXBlJiZlLmRhdGEmJmUuc3RyaWRlKXJldHVybiBoKHQsZSl9dGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgYXJndW1lbnRzIGZvciB0ZXh0dXJlMmQgY29uc3RydWN0b3IiKX12YXIgcD10KCJuZGFycmF5IiksZD10KCJuZGFycmF5LW9wcyIpLG09dCgidHlwZWRhcnJheS1wb29sIik7ZS5leHBvcnRzPWY7dmFyIGc9bnVsbCx2PW51bGwseT1udWxsLGI9ZnVuY3Rpb24odCxlKXtkLm11bHModCxlLDI1NSl9LHg9by5wcm90b3R5cGU7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeCx7bWluRmlsdGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5iaW5kKCk7dmFyIGU9dGhpcy5nbDtpZih0aGlzLnR5cGU9PT1lLkZMT0FUJiZnLmluZGV4T2YodCk+PTAmJihlLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIil8fCh0PWUuTkVBUkVTVCkpLHYuaW5kZXhPZih0KTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIGZpbHRlciBtb2RlICIrdCk7cmV0dXJuIGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX01JTl9GSUxURVIsdCksdGhpcy5fbWluRmlsdGVyPXR9fSxtYWdGaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYWdGaWx0ZXJ9LHNldDpmdW5jdGlvbih0KXt0aGlzLmJpbmQoKTt2YXIgZT10aGlzLmdsO2lmKHRoaXMudHlwZT09PWUuRkxPQVQmJmcuaW5kZXhPZih0KT49MCYmKGUuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKXx8KHQ9ZS5ORUFSRVNUKSksdi5pbmRleE9mKHQpPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gZmlsdGVyIG1vZGUgIit0KTtyZXR1cm4gZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUFHX0ZJTFRFUix0KSx0aGlzLl9tYWdGaWx0ZXI9dH19LG1pcFNhbXBsZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmlzb1NhbXBsZXN9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9hbmlzb1NhbXBsZXM7aWYodGhpcy5fYW5pc29TYW1wbGVzPTB8TWF0aC5tYXgodCwxKSxlIT09dGhpcy5fYW5pc29TYW1wbGVzKXt2YXIgcj1nbC5nZXRFeHRlbnNpb24oIkVYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpO3ImJnRoaXMuZ2wudGV4UGFyYW1ldGVyZih0aGlzLmdsLlRFWFRVUkVfMkQsci5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCx0aGlzLl9hbmlzb1NhbXBsZXMpfXJldHVybiB0aGlzLl9hbmlzb1NhbXBsZXN9fSx3cmFwUzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyYXBTfSxzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5iaW5kKCkseS5pbmRleE9mKHQpPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gd3JhcCBtb2RlICIrdCk7cmV0dXJuIHRoaXMuZ2wudGV4UGFyYW1ldGVyaSh0aGlzLmdsLlRFWFRVUkVfMkQsdGhpcy5nbC5URVhUVVJFX1dSQVBfUyx0KSx0aGlzLl93cmFwUz10fX0sd3JhcFQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwVH0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuYmluZCgpLHkuaW5kZXhPZih0KTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIHdyYXAgbW9kZSAiK3QpO3JldHVybiB0aGlzLmdsLnRleFBhcmFtZXRlcmkodGhpcy5nbC5URVhUVVJFXzJELHRoaXMuZ2wuVEVYVFVSRV9XUkFQX1QsdCksdGhpcy5fd3JhcFQ9dH19LHdyYXA6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cmFwVmVjdG9yfSxzZXQ6ZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KXx8KHQ9W3QsdF0pLDIhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogTXVzdCBzcGVjaWZ5IHdyYXAgbW9kZSBmb3Igcm93cyBhbmQgY29sdW1ucyIpO2Zvcih2YXIgZT0wOzI+ZTsrK2UpaWYoeS5pbmRleE9mKHRbZV0pPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gd3JhcCBtb2RlICIrdCk7dGhpcy5fd3JhcFM9dFswXSx0aGlzLl93cmFwVD10WzFdO3ZhciByPXRoaXMuZ2w7cmV0dXJuIHRoaXMuYmluZCgpLHIudGV4UGFyYW1ldGVyaShyLlRFWFRVUkVfMkQsci5URVhUVVJFX1dSQVBfUyx0aGlzLl93cmFwUyksci50ZXhQYXJhbWV0ZXJpKHIuVEVYVFVSRV8yRCxyLlRFWFRVUkVfV1JBUF9ULHRoaXMuX3dyYXBUKSx0fX0sc2hhcGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaGFwZVZlY3Rvcn0sc2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKDIhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCB0ZXh0dXJlIHNoYXBlIil9ZWxzZSB0PVswfHQsMHx0XTtyZXR1cm4gaSh0aGlzLDB8dFswXSwwfHRbMV0pLFswfHRbMF0sMHx0WzFdXX19LHdpZHRoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2hhcGVbMF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdD0wfHQsaSh0aGlzLHQsdGhpcy5fc2hhcGVbMV0pLHR9fSxoZWlnaHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaGFwZVsxXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0PTB8dCxpKHRoaXMsdGhpcy5fc2hhcGVbMF0sdCksdH19fSkseC5iaW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2w7cmV0dXJuIHZvaWQgMCE9PXQmJmUuYWN0aXZlVGV4dHVyZShlLlRFWFRVUkUwKygwfHQpKSxlLmJpbmRUZXh0dXJlKGUuVEVYVFVSRV8yRCx0aGlzLmhhbmRsZSksdm9pZCAwIT09dD8wfHQ6ZS5nZXRQYXJhbWV0ZXIoZS5BQ1RJVkVfVEVYVFVSRSktZS5URVhUVVJFMH0seC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nbC5kZWxldGVUZXh0dXJlKHRoaXMuaGFuZGxlKX0seC5nZW5lcmF0ZU1pcG1hcD1mdW5jdGlvbigpe3RoaXMuYmluZCgpLHRoaXMuZ2wuZ2VuZXJhdGVNaXBtYXAodGhpcy5nbC5URVhUVVJFXzJEKTtmb3IodmFyIHQ9TWF0aC5taW4odGhpcy5fc2hhcGVbMF0sdGhpcy5fc2hhcGVbMV0pLGU9MDt0PjA7KytlLHQ+Pj49MSl0aGlzLl9taXBMZXZlbHMuaW5kZXhPZihlKTwwJiZ0aGlzLl9taXBMZXZlbHMucHVzaChlKX0seC5zZXRQaXhlbHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5nbDtpZih0aGlzLmJpbmQoKSxBcnJheS5pc0FycmF5KGUpPyhuPXIscj0wfGVbMV0sZT0wfGVbMF0pOihlPWV8fDAscj1yfHwwKSxuPW58fDAsdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fHx0IGluc3RhbmNlb2YgSW1hZ2VEYXRhfHx0IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudHx8dCBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnQpe3ZhciBvPXRoaXMuX21pcExldmVscy5pbmRleE9mKG4pPDA7bz8oaS50ZXhJbWFnZTJEKGkuVEVYVFVSRV8yRCwwLHRoaXMuZm9ybWF0LHRoaXMuZm9ybWF0LHRoaXMudHlwZSx0KSx0aGlzLl9taXBMZXZlbHMucHVzaChuKSk6aS50ZXhTdWJJbWFnZTJEKGkuVEVYVFVSRV8yRCxuLGUscix0aGlzLmZvcm1hdCx0aGlzLnR5cGUsdCl9ZWxzZXtpZighKHQuc2hhcGUmJnQuc3RyaWRlJiZ0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbnN1cHBvcnRlZCBkYXRhIHR5cGUiKTtpZih0LnNoYXBlLmxlbmd0aDwyfHxlK3Quc2hhcGVbMV0+dGhpcy5fc2hhcGVbMV0+Pj5ufHxyK3Quc2hhcGVbMF0+dGhpcy5fc2hhcGVbMF0+Pj5ufHwwPmV8fDA+cil0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVGV4dHVyZSBkaW1lbnNpb25zIGFyZSBvdXQgb2YgYm91bmRzIik7cyhpLGUscixuLHRoaXMuZm9ybWF0LHRoaXMudHlwZSx0aGlzLl9taXBMZXZlbHMsdCl9fX0se25kYXJyYXk6NDU2LCJuZGFycmF5LW9wcyI6NDU1LCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDIzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtlP2UuYmluZCgpOnQuYmluZEJ1ZmZlcih0LkVMRU1FTlRfQVJSQVlfQlVGRkVSLG51bGwpO3ZhciBuPTB8dC5nZXRQYXJhbWV0ZXIodC5NQVhfVkVSVEVYX0FUVFJJQlMpO2lmKHIpe2lmKHIubGVuZ3RoPm4pdGhyb3cgbmV3IEVycm9yKCJnbC12YW86IFRvbyBtYW55IHZlcnRleCBhdHRyaWJ1dGVzIik7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDsrK2kpe3ZhciBvPXJbaV07aWYoby5idWZmZXIpe3ZhciBhPW8uYnVmZmVyLHM9by5zaXplfHw0LGw9by50eXBlfHx0LkZMT0FULHU9ISFvLm5vcm1hbGl6ZWQsYz1vLnN0cmlkZXx8MCxoPW8ub2Zmc2V0fHwwO2EuYmluZCgpLHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkscyxsLHUsYyxoKX1lbHNle2lmKCJudW1iZXIiPT10eXBlb2Ygbyl0LnZlcnRleEF0dHJpYjFmKGksbyk7ZWxzZSBpZigxPT09by5sZW5ndGgpdC52ZXJ0ZXhBdHRyaWIxZihpLG9bMF0pO2Vsc2UgaWYoMj09PW8ubGVuZ3RoKXQudmVydGV4QXR0cmliMmYoaSxvWzBdLG9bMV0pO2Vsc2UgaWYoMz09PW8ubGVuZ3RoKXQudmVydGV4QXR0cmliM2YoaSxvWzBdLG9bMV0sb1syXSk7ZWxzZXtpZig0IT09by5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC12YW86IEludmFsaWQgdmVydGV4IGF0dHJpYnV0ZSIpO3QudmVydGV4QXR0cmliNGYoaSxvWzBdLG9bMV0sb1syXSxvWzNdKX10LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpKX19Zm9yKDtuPmk7KytpKXQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpfWVsc2V7dC5iaW5kQnVmZmVyKHQuQVJSQVlfQlVGRkVSLG51bGwpO2Zvcih2YXIgaT0wO24+aTsrK2kpdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoaSl9fWUuZXhwb3J0cz1ufSx7fV0sMjM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5nbD10LHRoaXMuX2VsZW1lbnRzPW51bGwsdGhpcy5fYXR0cmlidXRlcz1udWxsLHRoaXMuX2VsZW1lbnRzVHlwZT10LlVOU0lHTkVEX1NIT1JUfWZ1bmN0aW9uIGkodCl7cmV0dXJuIG5ldyBuKHQpfXZhciBvPXQoIi4vZG8tYmluZC5qcyIpO24ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXtvKHRoaXMuZ2wsdGhpcy5fZWxlbWVudHMsdGhpcy5fYXR0cmlidXRlcyl9LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5fZWxlbWVudHM9ZSx0aGlzLl9hdHRyaWJ1dGVzPXQsdGhpcy5fZWxlbWVudHNUeXBlPXJ8fHRoaXMuZ2wuVU5TSUdORURfU0hPUlR9LG4ucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9LG4ucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbigpe30sbi5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUscil7cj1yfHwwO3ZhciBuPXRoaXMuZ2w7dGhpcy5fZWxlbWVudHM/bi5kcmF3RWxlbWVudHModCxlLHRoaXMuX2VsZW1lbnRzVHlwZSxyKTpuLmRyYXdBcnJheXModCxyLGUpfSxlLmV4cG9ydHM9aX0seyIuL2RvLWJpbmQuanMiOjIzNH1dLDIzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxvKXt0aGlzLmxvY2F0aW9uPXQsdGhpcy5kaW1lbnNpb249ZSx0aGlzLmE9cix0aGlzLmI9bix0aGlzLmM9aSx0aGlzLmQ9b31mdW5jdGlvbiBpKHQsZSxyKXt0aGlzLmdsPXQsdGhpcy5fZXh0PWUsdGhpcy5oYW5kbGU9cix0aGlzLl9hdHRyaWJzPVtdLHRoaXMuX3VzZUVsZW1lbnRzPSExLHRoaXMuX2VsZW1lbnRzVHlwZT10LlVOU0lHTkVEX1NIT1JUfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gbmV3IGkodCxlLGUuY3JlYXRlVmVydGV4QXJyYXlPRVMoKSl9dmFyIGE9dCgiLi9kby1iaW5kLmpzIik7bi5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5kaW1lbnNpb24pe2Nhc2UgMTp0LnZlcnRleEF0dHJpYjFmKHRoaXMubG9jYXRpb24sdGhpcy5hKTticmVhaztjYXNlIDI6dC52ZXJ0ZXhBdHRyaWIyZih0aGlzLmxvY2F0aW9uLHRoaXMuYSx0aGlzLmIpO2JyZWFrO2Nhc2UgMzp0LnZlcnRleEF0dHJpYjNmKHRoaXMubG9jYXRpb24sdGhpcy5hLHRoaXMuYix0aGlzLmMpO2JyZWFrO2Nhc2UgNDp0LnZlcnRleEF0dHJpYjRmKHRoaXMubG9jYXRpb24sdGhpcy5hLHRoaXMuYix0aGlzLmMsdGhpcy5kKX19LGkucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLl9leHQuYmluZFZlcnRleEFycmF5T0VTKHRoaXMuaGFuZGxlKTtmb3IodmFyIHQ9MDt0PHRoaXMuX2F0dHJpYnMubGVuZ3RoOysrdCl0aGlzLl9hdHRyaWJzW3RdLmJpbmQodGhpcy5nbCl9LGkucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbigpe3RoaXMuX2V4dC5iaW5kVmVydGV4QXJyYXlPRVMobnVsbCl9LGkucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl9leHQuZGVsZXRlVmVydGV4QXJyYXlPRVModGhpcy5oYW5kbGUpfSxpLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuYmluZCgpLGEodGhpcy5nbCxlLHQpLHRoaXMudW5iaW5kKCksdGhpcy5fYXR0cmlicy5sZW5ndGg9MCx0KWZvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbz10W2ldOyJudW1iZXIiPT10eXBlb2Ygbz90aGlzLl9hdHRyaWJzLnB1c2gobmV3IG4oaSwxLG8pKTpBcnJheS5pc0FycmF5KG8pJiZ0aGlzLl9hdHRyaWJzLnB1c2gobmV3IG4oaSxvLmxlbmd0aCxvWzBdLG9bMV0sb1syXSxvWzNdKSl9dGhpcy5fdXNlRWxlbWVudHM9ISFlLHRoaXMuX2VsZW1lbnRzVHlwZT1yfHx0aGlzLmdsLlVOU0lHTkVEX1NIT1JUfSxpLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fDA7dmFyIG49dGhpcy5nbDt0aGlzLl91c2VFbGVtZW50cz9uLmRyYXdFbGVtZW50cyh0LGUsdGhpcy5fZWxlbWVudHNUeXBlLHIpOm4uZHJhd0FycmF5cyh0LHIsZSl9LGUuZXhwb3J0cz1vfSx7Ii4vZG8tYmluZC5qcyI6MjM0fV0sMjM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIGEscz10LmdldEV4dGVuc2lvbigiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTtyZXR1cm4gYT1zP2kodCxzKTpvKHQpLGEudXBkYXRlKGUscixuKSxhfXZhciBpPXQoIi4vbGliL3Zhby1uYXRpdmUuanMiKSxvPXQoIi4vbGliL3Zhby1lbXVsYXRlZC5qcyIpO2UuZXhwb3J0cz1ufSx7Ii4vbGliL3Zhby1lbXVsYXRlZC5qcyI6MjM1LCIuL2xpYi92YW8tbmF0aXZlLmpzIjoyMzZ9XSwyMzg6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1lWzNdO3JldHVybiB0WzBdPXJbMF0qbityWzRdKmkrcls4XSpvK3JbMTJdKmEsdFsxXT1yWzFdKm4rcls1XSppK3JbOV0qbytyWzEzXSphLHRbMl09clsyXSpuK3JbNl0qaStyWzEwXSpvK3JbMTRdKmEsdFszXT1yWzNdKm4rcls3XSppK3JbMTFdKm8rclsxNV0qYSx0fWUuZXhwb3J0cz1ufSx7fV0sMjM5OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBlKHQpe3QubGVuZ3RoJiZWLnB1c2goe3R5cGU6TVtCXSxkYXRhOnQscG9zaXRpb246SCxsaW5lOnEsY29sdW1uOkd9KX1mdW5jdGlvbiByKHQpe0Y9MCxXKz10LE89Vy5sZW5ndGg7Zm9yKHZhciBlO2o9V1tGXSxPPkY7KXtzd2l0Y2goZT1GLEIpe2Nhc2UgaDpGPVMoKTticmVhaztjYXNlIGY6Rj1FKCk7YnJlYWs7Y2FzZSBwOkY9VCgpO2JyZWFrO2Nhc2UgZDpGPUwoKTticmVhaztjYXNlIG06Rj1QKCk7YnJlYWs7Y2FzZSB3OkY9SSgpO2JyZWFrO2Nhc2UgZzpGPUMoKTticmVhaztjYXNlIGM6Rj1SKCk7YnJlYWs7Y2FzZSB4OkY9QSgpO2JyZWFrO2Nhc2UgdTpGPWsoKX1pZihlIT09Rilzd2l0Y2goV1tlXSl7Y2FzZSJcbiI6Rz0wLCsrcTticmVhaztkZWZhdWx0OisrR319cmV0dXJuIE4rPUYsVz1XLnNsaWNlKEYpLFZ9ZnVuY3Rpb24gbih0KXtyZXR1cm4gVS5sZW5ndGgmJmUoVS5qb2luKCIiKSksQj1fLGUoIihlb2YpIiksVn1mdW5jdGlvbiBrKCl7cmV0dXJuIFU9VS5sZW5ndGg/W106VSwiLyI9PT1EJiYiKiI9PT1qPyhIPU4rRi0xLEI9aCxEPWosRisxKToiLyI9PT1EJiYiLyI9PT1qPyhIPU4rRi0xLEI9ZixEPWosRisxKToiIyI9PT1qPyhCPXAsSD1OK0YsRik6L1xzLy50ZXN0KGopPyhCPXgsSD1OK0YsRik6KFg9L1xkLy50ZXN0KGopLFk9L1teXHdfXS8udGVzdChqKSxIPU4rRixCPVg/bTpZP2Q6YyxGKX1mdW5jdGlvbiBBKCl7cmV0dXJuL1teXHNdL2cudGVzdChqKT8oZShVLmpvaW4oIiIpKSwKQj11LEYpOihVLnB1c2goaiksRD1qLEYrMSl9ZnVuY3Rpb24gVCgpe3JldHVybiJcbiI9PT1qJiYiXFwiIT09RD8oZShVLmpvaW4oIiIpKSxCPXUsRik6KFUucHVzaChqKSxEPWosRisxKX1mdW5jdGlvbiBFKCl7cmV0dXJuIFQoKX1mdW5jdGlvbiBTKCl7cmV0dXJuIi8iPT09aiYmIioiPT09RD8oVS5wdXNoKGopLGUoVS5qb2luKCIiKSksQj11LEYrMSk6KFUucHVzaChqKSxEPWosRisxKX1mdW5jdGlvbiBMKCl7aWYoIi4iPT09RCYmL1xkLy50ZXN0KGopKXJldHVybiBCPWcsRjtpZigiLyI9PT1EJiYiKiI9PT1qKXJldHVybiBCPWgsRjtpZigiLyI9PT1EJiYiLyI9PT1qKXJldHVybiBCPWYsRjtpZigiLiI9PT1qJiZVLmxlbmd0aCl7Zm9yKDt6KFUpOyk7cmV0dXJuIEI9ZyxGfWlmKCI7Ij09PWp8fCIpIj09PWp8fCIoIj09PWope2lmKFUubGVuZ3RoKWZvcig7eihVKTspO3JldHVybiBlKGopLEI9dSxGKzF9dmFyIHQ9Mj09PVUubGVuZ3RoJiYiPSIhPT1qO2lmKC9bXHdfXGRcc10vLnRlc3Qoail8fHQpe2Zvcig7eihVKTspO3JldHVybiBCPXUsRn1yZXR1cm4gVS5wdXNoKGopLEQ9aixGKzF9ZnVuY3Rpb24geih0KXtmb3IodmFyIHIsbixpPTA7Oyl7aWYocj1vLmluZGV4T2YodC5zbGljZSgwLHQubGVuZ3RoK2kpLmpvaW4oIiIpKSxuPW9bcl0sLTE9PT1yKXtpZihpLS0rdC5sZW5ndGg+MCljb250aW51ZTtuPXQuc2xpY2UoMCwxKS5qb2luKCIiKX1yZXR1cm4gZShuKSxIKz1uLmxlbmd0aCxVPVUuc2xpY2Uobi5sZW5ndGgpLFUubGVuZ3RofX1mdW5jdGlvbiBJKCl7cmV0dXJuL1teYS1mQS1GMC05XS8udGVzdChqKT8oZShVLmpvaW4oIiIpKSxCPXUsRik6KFUucHVzaChqKSxEPWosRisxKX1mdW5jdGlvbiBQKCl7cmV0dXJuIi4iPT09aj8oVS5wdXNoKGopLEI9ZyxEPWosRisxKTovW2VFXS8udGVzdChqKT8oVS5wdXNoKGopLEI9ZyxEPWosRisxKToieCI9PT1qJiYxPT09VS5sZW5ndGgmJiIwIj09PVVbMF0/KEI9dyxVLnB1c2goaiksRD1qLEYrMSk6L1teXGRdLy50ZXN0KGopPyhlKFUuam9pbigiIikpLEI9dSxGKTooVS5wdXNoKGopLEQ9aixGKzEpfWZ1bmN0aW9uIEMoKXtyZXR1cm4iZiI9PT1qJiYoVS5wdXNoKGopLEQ9aixGKz0xKSwvW2VFXS8udGVzdChqKT8oVS5wdXNoKGopLEQ9aixGKzEpOiItIj09PWomJi9bZUVdLy50ZXN0KEQpPyhVLnB1c2goaiksRD1qLEYrMSk6L1teXGRdLy50ZXN0KGopPyhlKFUuam9pbigiIikpLEI9dSxGKTooVS5wdXNoKGopLEQ9aixGKzEpfWZ1bmN0aW9uIFIoKXtpZigvW15cZFx3X10vLnRlc3Qoaikpe3ZhciB0PVUuam9pbigiIik7cmV0dXJuIEI9US5pbmRleE9mKHQpPi0xP2I6Wi5pbmRleE9mKHQpPi0xP3k6dixlKFUuam9pbigiIikpLEI9dSxGfXJldHVybiBVLnB1c2goaiksRD1qLEYrMX12YXIgaixELE8sRj0wLE49MCxCPXUsVT1bXSxWPVtdLHE9MSxHPTAsSD0wLFg9ITEsWT0hMSxXPSIiO3Q9dHx8e307dmFyIFo9YSxRPWk7cmV0dXJuIjMwMCBlcyI9PT10LnZlcnNpb24mJihaPWwsUT1zKSxmdW5jdGlvbih0KXtyZXR1cm4gVj1bXSxudWxsIT09dD9yKHQpOm4oKX19ZS5leHBvcnRzPW47dmFyIGk9dCgiLi9saWIvbGl0ZXJhbHMiKSxvPXQoIi4vbGliL29wZXJhdG9ycyIpLGE9dCgiLi9saWIvYnVpbHRpbnMiKSxzPXQoIi4vbGliL2xpdGVyYWxzLTMwMGVzIiksbD10KCIuL2xpYi9idWlsdGlucy0zMDBlcyIpLHU9OTk5LGM9OTk5OSxoPTAsZj0xLHA9MixkPTMsbT00LGc9NSx2PTYseT03LGI9OCx4PTksXz0xMCx3PTExLE09WyJibG9jay1jb21tZW50IiwibGluZS1jb21tZW50IiwicHJlcHJvY2Vzc29yIiwib3BlcmF0b3IiLCJpbnRlZ2VyIiwiZmxvYXQiLCJpZGVudCIsImJ1aWx0aW4iLCJrZXl3b3JkIiwid2hpdGVzcGFjZSIsImVvZiIsImludGVnZXIiXX0seyIuL2xpYi9idWlsdGlucyI6MjQxLCIuL2xpYi9idWlsdGlucy0zMDBlcyI6MjQwLCIuL2xpYi9saXRlcmFscyI6MjQzLCIuL2xpYi9saXRlcmFscy0zMDBlcyI6MjQyLCIuL2xpYi9vcGVyYXRvcnMiOjI0NH1dLDI0MDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vYnVpbHRpbnMiKTtuPW4uc2xpY2UoKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIS9eKGdsXF98dGV4dHVyZSkvLnRlc3QodCl9KSxlLmV4cG9ydHM9bi5jb25jYXQoWyJnbF9WZXJ0ZXhJRCIsImdsX0luc3RhbmNlSUQiLCJnbF9Qb3NpdGlvbiIsImdsX1BvaW50U2l6ZSIsImdsX0ZyYWdDb29yZCIsImdsX0Zyb250RmFjaW5nIiwiZ2xfRnJhZ0RlcHRoIiwiZ2xfUG9pbnRDb29yZCIsImdsX01heFZlcnRleEF0dHJpYnMiLCJnbF9NYXhWZXJ0ZXhVbmlmb3JtVmVjdG9ycyIsImdsX01heFZlcnRleE91dHB1dFZlY3RvcnMiLCJnbF9NYXhGcmFnbWVudElucHV0VmVjdG9ycyIsImdsX01heFZlcnRleFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4RnJhZ21lbnRVbmlmb3JtVmVjdG9ycyIsImdsX01heERyYXdCdWZmZXJzIiwiZ2xfTWluUHJvZ3JhbVRleGVsT2Zmc2V0IiwiZ2xfTWF4UHJvZ3JhbVRleGVsT2Zmc2V0IiwiZ2xfRGVwdGhSYW5nZVBhcmFtZXRlcnMiLCJnbF9EZXB0aFJhbmdlIiwidHJ1bmMiLCJyb3VuZCIsInJvdW5kRXZlbiIsImlzbmFuIiwiaXNpbmYiLCJmbG9hdEJpdHNUb0ludCIsImZsb2F0Qml0c1RvVWludCIsImludEJpdHNUb0Zsb2F0IiwidWludEJpdHNUb0Zsb2F0IiwicGFja1Nub3JtMngxNiIsInVucGFja1Nub3JtMngxNiIsInBhY2tVbm9ybTJ4MTYiLCJ1bnBhY2tVbm9ybTJ4MTYiLCJwYWNrSGFsZjJ4MTYiLCJ1bnBhY2tIYWxmMngxNiIsIm91dGVyUHJvZHVjdCIsInRyYW5zcG9zZSIsImRldGVybWluYW50IiwiaW52ZXJzZSIsInRleHR1cmUiLCJ0ZXh0dXJlU2l6ZSIsInRleHR1cmVQcm9qIiwidGV4dHVyZUxvZCIsInRleHR1cmVPZmZzZXQiLCJ0ZXhlbEZldGNoIiwidGV4ZWxGZXRjaE9mZnNldCIsInRleHR1cmVQcm9qT2Zmc2V0IiwidGV4dHVyZUxvZE9mZnNldCIsInRleHR1cmVQcm9qTG9kIiwidGV4dHVyZVByb2pMb2RPZmZzZXQiLCJ0ZXh0dXJlR3JhZCIsInRleHR1cmVHcmFkT2Zmc2V0IiwidGV4dHVyZVByb2pHcmFkIiwidGV4dHVyZVByb2pHcmFkT2Zmc2V0Il0pfSx7Ii4vYnVpbHRpbnMiOjI0MX1dLDI0MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bImFicyIsImFjb3MiLCJhbGwiLCJhbnkiLCJhc2luIiwiYXRhbiIsImNlaWwiLCJjbGFtcCIsImNvcyIsImNyb3NzIiwiZEZkeCIsImRGZHkiLCJkZWdyZWVzIiwiZGlzdGFuY2UiLCJkb3QiLCJlcXVhbCIsImV4cCIsImV4cDIiLCJmYWNlZm9yd2FyZCIsImZsb29yIiwiZnJhY3QiLCJnbF9CYWNrQ29sb3IiLCJnbF9CYWNrTGlnaHRNb2RlbFByb2R1Y3QiLCJnbF9CYWNrTGlnaHRQcm9kdWN0IiwiZ2xfQmFja01hdGVyaWFsIiwiZ2xfQmFja1NlY29uZGFyeUNvbG9yIiwiZ2xfQ2xpcFBsYW5lIiwiZ2xfQ2xpcFZlcnRleCIsImdsX0NvbG9yIiwiZ2xfRGVwdGhSYW5nZSIsImdsX0RlcHRoUmFuZ2VQYXJhbWV0ZXJzIiwiZ2xfRXllUGxhbmVRIiwiZ2xfRXllUGxhbmVSIiwiZ2xfRXllUGxhbmVTIiwiZ2xfRXllUGxhbmVUIiwiZ2xfRm9nIiwiZ2xfRm9nQ29vcmQiLCJnbF9Gb2dGcmFnQ29vcmQiLCJnbF9Gb2dQYXJhbWV0ZXJzIiwiZ2xfRnJhZ0NvbG9yIiwiZ2xfRnJhZ0Nvb3JkIiwiZ2xfRnJhZ0RhdGEiLCJnbF9GcmFnRGVwdGgiLCJnbF9GcmFnRGVwdGhFWFQiLCJnbF9Gcm9udENvbG9yIiwiZ2xfRnJvbnRGYWNpbmciLCJnbF9Gcm9udExpZ2h0TW9kZWxQcm9kdWN0IiwiZ2xfRnJvbnRMaWdodFByb2R1Y3QiLCJnbF9Gcm9udE1hdGVyaWFsIiwiZ2xfRnJvbnRTZWNvbmRhcnlDb2xvciIsImdsX0xpZ2h0TW9kZWwiLCJnbF9MaWdodE1vZGVsUGFyYW1ldGVycyIsImdsX0xpZ2h0TW9kZWxQcm9kdWN0cyIsImdsX0xpZ2h0UHJvZHVjdHMiLCJnbF9MaWdodFNvdXJjZSIsImdsX0xpZ2h0U291cmNlUGFyYW1ldGVycyIsImdsX01hdGVyaWFsUGFyYW1ldGVycyIsImdsX01heENsaXBQbGFuZXMiLCJnbF9NYXhDb21iaW5lZFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4RHJhd0J1ZmZlcnMiLCJnbF9NYXhGcmFnbWVudFVuaWZvcm1Db21wb25lbnRzIiwiZ2xfTWF4TGlnaHRzIiwiZ2xfTWF4VGV4dHVyZUNvb3JkcyIsImdsX01heFRleHR1cmVJbWFnZVVuaXRzIiwiZ2xfTWF4VGV4dHVyZVVuaXRzIiwiZ2xfTWF4VmFyeWluZ0Zsb2F0cyIsImdsX01heFZlcnRleEF0dHJpYnMiLCJnbF9NYXhWZXJ0ZXhUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heFZlcnRleFVuaWZvcm1Db21wb25lbnRzIiwiZ2xfTW9kZWxWaWV3TWF0cml4IiwiZ2xfTW9kZWxWaWV3TWF0cml4SW52ZXJzZSIsImdsX01vZGVsVmlld01hdHJpeEludmVyc2VUcmFuc3Bvc2UiLCJnbF9Nb2RlbFZpZXdNYXRyaXhUcmFuc3Bvc2UiLCJnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4IiwiZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2UiLCJnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSIsImdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UiLCJnbF9NdWx0aVRleENvb3JkMCIsImdsX011bHRpVGV4Q29vcmQxIiwiZ2xfTXVsdGlUZXhDb29yZDIiLCJnbF9NdWx0aVRleENvb3JkMyIsImdsX011bHRpVGV4Q29vcmQ0IiwiZ2xfTXVsdGlUZXhDb29yZDUiLCJnbF9NdWx0aVRleENvb3JkNiIsImdsX011bHRpVGV4Q29vcmQ3IiwiZ2xfTm9ybWFsIiwiZ2xfTm9ybWFsTWF0cml4IiwiZ2xfTm9ybWFsU2NhbGUiLCJnbF9PYmplY3RQbGFuZVEiLCJnbF9PYmplY3RQbGFuZVIiLCJnbF9PYmplY3RQbGFuZVMiLCJnbF9PYmplY3RQbGFuZVQiLCJnbF9Qb2ludCIsImdsX1BvaW50Q29vcmQiLCJnbF9Qb2ludFBhcmFtZXRlcnMiLCJnbF9Qb2ludFNpemUiLCJnbF9Qb3NpdGlvbiIsImdsX1Byb2plY3Rpb25NYXRyaXgiLCJnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZSIsImdsX1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlVHJhbnNwb3NlIiwiZ2xfUHJvamVjdGlvbk1hdHJpeFRyYW5zcG9zZSIsImdsX1NlY29uZGFyeUNvbG9yIiwiZ2xfVGV4Q29vcmQiLCJnbF9UZXh0dXJlRW52Q29sb3IiLCJnbF9UZXh0dXJlTWF0cml4IiwiZ2xfVGV4dHVyZU1hdHJpeEludmVyc2UiLCJnbF9UZXh0dXJlTWF0cml4SW52ZXJzZVRyYW5zcG9zZSIsImdsX1RleHR1cmVNYXRyaXhUcmFuc3Bvc2UiLCJnbF9WZXJ0ZXgiLCJncmVhdGVyVGhhbiIsImdyZWF0ZXJUaGFuRXF1YWwiLCJpbnZlcnNlc3FydCIsImxlbmd0aCIsImxlc3NUaGFuIiwibGVzc1RoYW5FcXVhbCIsImxvZyIsImxvZzIiLCJtYXRyaXhDb21wTXVsdCIsIm1heCIsIm1pbiIsIm1peCIsIm1vZCIsIm5vcm1hbGl6ZSIsIm5vdCIsIm5vdEVxdWFsIiwicG93IiwicmFkaWFucyIsInJlZmxlY3QiLCJyZWZyYWN0Iiwic2lnbiIsInNpbiIsInNtb290aHN0ZXAiLCJzcXJ0Iiwic3RlcCIsInRhbiIsInRleHR1cmUyRCIsInRleHR1cmUyRExvZCIsInRleHR1cmUyRFByb2oiLCJ0ZXh0dXJlMkRQcm9qTG9kIiwidGV4dHVyZUN1YmUiLCJ0ZXh0dXJlQ3ViZUxvZCIsInRleHR1cmUyRExvZEVYVCIsInRleHR1cmUyRFByb2pMb2RFWFQiLCJ0ZXh0dXJlQ3ViZUxvZEVYVCIsInRleHR1cmUyREdyYWRFWFQiLCJ0ZXh0dXJlMkRQcm9qR3JhZEVYVCIsInRleHR1cmVDdWJlR3JhZEVYVCJdfSx7fV0sMjQyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9saXRlcmFscyIpO2UuZXhwb3J0cz1uLnNsaWNlKCkuY29uY2F0KFsibGF5b3V0IiwiY2VudHJvaWQiLCJzbW9vdGgiLCJjYXNlIiwibWF0MngyIiwibWF0MngzIiwibWF0Mng0IiwibWF0M3gyIiwibWF0M3gzIiwibWF0M3g0IiwibWF0NHgyIiwibWF0NHgzIiwibWF0NHg0IiwidWludCIsInV2ZWMyIiwidXZlYzMiLCJ1dmVjNCIsInNhbXBsZXJDdWJlU2hhZG93Iiwic2FtcGxlcjJEQXJyYXkiLCJzYW1wbGVyMkRBcnJheVNoYWRvdyIsImlzYW1wbGVyMkQiLCJpc2FtcGxlcjNEIiwiaXNhbXBsZXJDdWJlIiwiaXNhbXBsZXIyREFycmF5IiwidXNhbXBsZXIyRCIsInVzYW1wbGVyM0QiLCJ1c2FtcGxlckN1YmUiLCJ1c2FtcGxlcjJEQXJyYXkiLCJjb2hlcmVudCIsInJlc3RyaWN0IiwicmVhZG9ubHkiLCJ3cml0ZW9ubHkiLCJyZXNvdXJjZSIsImF0b21pY191aW50Iiwibm9wZXJzcGVjdGl2ZSIsInBhdGNoIiwic2FtcGxlIiwic3Vicm91dGluZSIsImNvbW1vbiIsInBhcnRpdGlvbiIsImFjdGl2ZSIsImZpbHRlciIsImltYWdlMUQiLCJpbWFnZTJEIiwiaW1hZ2UzRCIsImltYWdlQ3ViZSIsImlpbWFnZTFEIiwiaWltYWdlMkQiLCJpaW1hZ2UzRCIsImlpbWFnZUN1YmUiLCJ1aW1hZ2UxRCIsInVpbWFnZTJEIiwidWltYWdlM0QiLCJ1aW1hZ2VDdWJlIiwiaW1hZ2UxREFycmF5IiwiaW1hZ2UyREFycmF5IiwiaWltYWdlMURBcnJheSIsImlpbWFnZTJEQXJyYXkiLCJ1aW1hZ2UxREFycmF5IiwidWltYWdlMkRBcnJheSIsImltYWdlMURTaGFkb3ciLCJpbWFnZTJEU2hhZG93IiwiaW1hZ2UxREFycmF5U2hhZG93IiwiaW1hZ2UyREFycmF5U2hhZG93IiwiaW1hZ2VCdWZmZXIiLCJpaW1hZ2VCdWZmZXIiLCJ1aW1hZ2VCdWZmZXIiLCJzYW1wbGVyMURBcnJheSIsInNhbXBsZXIxREFycmF5U2hhZG93IiwiaXNhbXBsZXIxRCIsImlzYW1wbGVyMURBcnJheSIsInVzYW1wbGVyMUQiLCJ1c2FtcGxlcjFEQXJyYXkiLCJpc2FtcGxlcjJEUmVjdCIsInVzYW1wbGVyMkRSZWN0Iiwic2FtcGxlckJ1ZmZlciIsImlzYW1wbGVyQnVmZmVyIiwidXNhbXBsZXJCdWZmZXIiLCJzYW1wbGVyMkRNUyIsImlzYW1wbGVyMkRNUyIsInVzYW1wbGVyMkRNUyIsInNhbXBsZXIyRE1TQXJyYXkiLCJpc2FtcGxlcjJETVNBcnJheSIsInVzYW1wbGVyMkRNU0FycmF5Il0pfSx7Ii4vbGl0ZXJhbHMiOjI0M31dLDI0MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bInByZWNpc2lvbiIsImhpZ2hwIiwibWVkaXVtcCIsImxvd3AiLCJhdHRyaWJ1dGUiLCJjb25zdCIsInVuaWZvcm0iLCJ2YXJ5aW5nIiwiYnJlYWsiLCJjb250aW51ZSIsImRvIiwiZm9yIiwid2hpbGUiLCJpZiIsImVsc2UiLCJpbiIsIm91dCIsImlub3V0IiwiZmxvYXQiLCJpbnQiLCJ2b2lkIiwiYm9vbCIsInRydWUiLCJmYWxzZSIsImRpc2NhcmQiLCJyZXR1cm4iLCJtYXQyIiwibWF0MyIsIm1hdDQiLCJ2ZWMyIiwidmVjMyIsInZlYzQiLCJpdmVjMiIsIml2ZWMzIiwiaXZlYzQiLCJidmVjMiIsImJ2ZWMzIiwiYnZlYzQiLCJzYW1wbGVyMUQiLCJzYW1wbGVyMkQiLCJzYW1wbGVyM0QiLCJzYW1wbGVyQ3ViZSIsInNhbXBsZXIxRFNoYWRvdyIsInNhbXBsZXIyRFNoYWRvdyIsInN0cnVjdCIsImFzbSIsImNsYXNzIiwidW5pb24iLCJlbnVtIiwidHlwZWRlZiIsInRlbXBsYXRlIiwidGhpcyIsInBhY2tlZCIsImdvdG8iLCJzd2l0Y2giLCJkZWZhdWx0IiwiaW5saW5lIiwibm9pbmxpbmUiLCJ2b2xhdGlsZSIsInB1YmxpYyIsInN0YXRpYyIsImV4dGVybiIsImV4dGVybmFsIiwiaW50ZXJmYWNlIiwibG9uZyIsInNob3J0IiwiZG91YmxlIiwiaGFsZiIsImZpeGVkIiwidW5zaWduZWQiLCJpbnB1dCIsIm91dHB1dCIsImh2ZWMyIiwiaHZlYzMiLCJodmVjNCIsImR2ZWMyIiwiZHZlYzMiLCJkdmVjNCIsImZ2ZWMyIiwiZnZlYzMiLCJmdmVjNCIsInNhbXBsZXIyRFJlY3QiLCJzYW1wbGVyM0RSZWN0Iiwic2FtcGxlcjJEUmVjdFNoYWRvdyIsInNpemVvZiIsImNhc3QiLCJuYW1lc3BhY2UiLCJ1c2luZyJdfSx7fV0sMjQ0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPVsiPDw9IiwiPj49IiwiKysiLCItLSIsIjw8IiwiPj4iLCI8PSIsIj49IiwiPT0iLCIhPSIsIiYmIiwifHwiLCIrPSIsIi09IiwiKj0iLCIvPSIsIiU9IiwiJj0iLCJeXiIsIl49IiwifD0iLCIoIiwiKSIsIlsiLCJdIiwiLiIsIiEiLCJ+IiwiKiIsIi8iLCIlIiwiKyIsIi0iLCI8IiwiPiIsIiYiLCJeIiwifCIsIj8iLCI6IiwiPSIsIiwiLCI7IiwieyIsIn0iXX0se31dLDI0NTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1pKGUpLG49W107cmV0dXJuIG49bi5jb25jYXQocih0KSksbj1uLmNvbmNhdChyKG51bGwpKX12YXIgaT10KCIuL2luZGV4Iik7ZS5leHBvcnRzPW59LHsiLi9pbmRleCI6MjM5fV0sMjQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMudmVydGljZXM9dCx0aGlzLmFkamFjZW50PWUsdGhpcy5ib3VuZGFyeT1yLHRoaXMubGFzdFZpc2l0ZWQ9LTF9ZnVuY3Rpb24gaSh0LGUscil7dGhpcy52ZXJ0aWNlcz10LHRoaXMuY2VsbD1lLHRoaXMuaW5kZXg9cn1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIGModC52ZXJ0aWNlcyxlLnZlcnRpY2VzKX1mdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT1bImZ1bmN0aW9uIG9yaWVudCgpe3ZhciB0dXBsZT10aGlzLnR1cGxlO3JldHVybiB0ZXN0KCJdLHI9MDt0Pj1yOysrcilyPjAmJmUucHVzaCgiLCIpLGUucHVzaCgidHVwbGVbIixyLCJdIik7ZS5wdXNoKCIpfXJldHVybiBvcmllbnQiKTt2YXIgbj1uZXcgRnVuY3Rpb24oInRlc3QiLGUuam9pbigiIikpLGk9dVt0KzFdO3JldHVybiBpfHwoaT11KSxuKGkpfWZ1bmN0aW9uIHModCxlLHIpe3RoaXMuZGltZW5zaW9uPXQsdGhpcy52ZXJ0aWNlcz1lLHRoaXMuc2ltcGxpY2VzPXIsdGhpcy5pbnRlcmlvcj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5ib3VuZGFyeX0pLHRoaXMudHVwbGU9bmV3IEFycmF5KHQrMSk7Zm9yKHZhciBuPTA7dD49bjsrK24pdGhpcy50dXBsZVtuXT10aGlzLnZlcnRpY2VzW25dO3ZhciBpPWhbdF07aXx8KGk9aFt0XT1hKHQpKSx0aGlzLm9yaWVudD1pfWZ1bmN0aW9uIGwodCxlKXt2YXIgcj10Lmxlbmd0aDtpZigwPT09cil0aHJvdyBuZXcgRXJyb3IoIk11c3QgaGF2ZSBhdCBsZWFzdCBkKzEgcG9pbnRzIik7dmFyIGk9dFswXS5sZW5ndGg7aWYoaT49cil0aHJvdyBuZXcgRXJyb3IoIk11c3QgaW5wdXQgYXQgbGVhc3QgZCsxIHBvaW50cyIpO3ZhciBvPXQuc2xpY2UoMCxpKzEpLGE9dS5hcHBseSh2b2lkIDAsbyk7aWYoMD09PWEpdGhyb3cgbmV3IEVycm9yKCJJbnB1dCBub3QgaW4gZ2VuZXJhbCBwb3NpdGlvbiIpO2Zvcih2YXIgbD1uZXcgQXJyYXkoaSsxKSxjPTA7aT49YzsrK2MpbFtjXT1jOzA+YSYmKGxbMF09MSxsWzFdPTApO2Zvcih2YXIgaD1uZXcgbihsLG5ldyBBcnJheShpKzEpLCExKSxmPWguYWRqYWNlbnQscD1uZXcgQXJyYXkoaSsyKSxjPTA7aT49YzsrK2Mpe2Zvcih2YXIgZD1sLnNsaWNlKCksbT0wO2k+PW07KyttKW09PT1jJiYoZFttXT0tMSk7dmFyIGc9ZFswXTtkWzBdPWRbMV0sZFsxXT1nO3ZhciB2PW5ldyBuKGQsbmV3IEFycmF5KGkrMSksITApO2ZbY109dixwW2NdPXZ9cFtpKzFdPWg7Zm9yKHZhciBjPTA7aT49YzsrK2MpZm9yKHZhciBkPWZbY10udmVydGljZXMseT1mW2NdLmFkamFjZW50LG09MDtpPj1tOysrbSl7dmFyIGI9ZFttXTtpZigwPmIpeVttXT1oO2Vsc2UgZm9yKHZhciB4PTA7aT49eDsrK3gpZlt4XS52ZXJ0aWNlcy5pbmRleE9mKGIpPDAmJih5W21dPWZbeF0pfWZvcih2YXIgXz1uZXcgcyhpLG8scCksdz0hIWUsYz1pKzE7cj5jOysrYylfLmluc2VydCh0W2NdLHcpO3JldHVybiBfLmJvdW5kYXJ5KCl9ZS5leHBvcnRzPWw7dmFyIHU9dCgicm9idXN0LW9yaWVudGF0aW9uIiksYz10KCJzaW1wbGljaWFsLWNvbXBsZXgiKS5jb21wYXJlQ2VsbHM7bi5wcm90b3R5cGUuZmxpcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMudmVydGljZXNbMF07dGhpcy52ZXJ0aWNlc1swXT10aGlzLnZlcnRpY2VzWzFdLHRoaXMudmVydGljZXNbMV09dDt2YXIgZT10aGlzLmFkamFjZW50WzBdO3RoaXMuYWRqYWNlbnRbMF09dGhpcy5hZGphY2VudFsxXSx0aGlzLmFkamFjZW50WzFdPWV9O3ZhciBoPVtdLGY9cy5wcm90b3R5cGU7Zi5oYW5kbGVCb3VuZGFyeURlZ2VuZXJhY3k9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmRpbWVuc2lvbixuPXRoaXMudmVydGljZXMubGVuZ3RoLTEsaT10aGlzLnR1cGxlLG89dGhpcy52ZXJ0aWNlcyxhPVt0XTtmb3IodC5sYXN0VmlzaXRlZD0tbjthLmxlbmd0aD4wOyl7dD1hLnBvcCgpO2Zvcih2YXIgcz0odC52ZXJ0aWNlcyx0LmFkamFjZW50KSxsPTA7cj49bDsrK2wpe3ZhciB1PXNbbF07aWYodS5ib3VuZGFyeSYmISh1Lmxhc3RWaXNpdGVkPD0tbikpe2Zvcih2YXIgYz11LnZlcnRpY2VzLGg9MDtyPj1oOysraCl7dmFyIGY9Y1toXTswPmY/aVtoXT1lOmlbaF09b1tmXX12YXIgcD10aGlzLm9yaWVudCgpO2lmKHA+MClyZXR1cm4gdTt1Lmxhc3RWaXNpdGVkPS1uLDA9PT1wJiZhLnB1c2godSl9fX1yZXR1cm4gbnVsbH0sZi53YWxrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy52ZXJ0aWNlcy5sZW5ndGgtMSxuPXRoaXMuZGltZW5zaW9uLGk9dGhpcy52ZXJ0aWNlcyxvPXRoaXMudHVwbGUsYT1lP3RoaXMuaW50ZXJpb3IubGVuZ3RoKk1hdGgucmFuZG9tKCl8MDp0aGlzLmludGVyaW9yLmxlbmd0aC0xLHM9dGhpcy5pbnRlcmlvclthXTt0OmZvcig7IXMuYm91bmRhcnk7KXtmb3IodmFyIGw9cy52ZXJ0aWNlcyx1PXMuYWRqYWNlbnQsYz0wO24+PWM7KytjKW9bY109aVtsW2NdXTtzLmxhc3RWaXNpdGVkPXI7Zm9yKHZhciBjPTA7bj49YzsrK2Mpe3ZhciBoPXVbY107aWYoIShoLmxhc3RWaXNpdGVkPj1yKSl7dmFyIGY9b1tjXTtvW2NdPXQ7dmFyIHA9dGhpcy5vcmllbnQoKTtpZihvW2NdPWYsMD5wKXtzPWg7Y29udGludWUgdH1oLmJvdW5kYXJ5P2gubGFzdFZpc2l0ZWQ9LXI6aC5sYXN0VmlzaXRlZD1yfX1yZXR1cm59cmV0dXJuIHN9LGYuYWRkUGVha3M9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzLmxlbmd0aC0xLGE9dGhpcy5kaW1lbnNpb24scz10aGlzLnZlcnRpY2VzLGw9dGhpcy50dXBsZSx1PXRoaXMuaW50ZXJpb3IsYz10aGlzLnNpbXBsaWNlcyxoPVtlXTtlLmxhc3RWaXNpdGVkPXIsZS52ZXJ0aWNlc1tlLnZlcnRpY2VzLmluZGV4T2YoLTEpXT1yLGUuYm91bmRhcnk9ITEsdS5wdXNoKGUpO2Zvcih2YXIgZj1bXTtoLmxlbmd0aD4wOyl7dmFyIGU9aC5wb3AoKSxwPWUudmVydGljZXMsZD1lLmFkamFjZW50LG09cC5pbmRleE9mKHIpO2lmKCEoMD5tKSlmb3IodmFyIGc9MDthPj1nOysrZylpZihnIT09bSl7dmFyIHY9ZFtnXTtpZih2LmJvdW5kYXJ5JiYhKHYubGFzdFZpc2l0ZWQ+PXIpKXt2YXIgeT12LnZlcnRpY2VzO2lmKHYubGFzdFZpc2l0ZWQhPT0tcil7Zm9yKHZhciBiPTAseD0wO2E+PXg7Kyt4KXlbeF08MD8oYj14LGxbeF09dCk6bFt4XT1zW3lbeF1dO3ZhciBfPXRoaXMub3JpZW50KCk7aWYoXz4wKXt5W2JdPXIsdi5ib3VuZGFyeT0hMSx1LnB1c2godiksaC5wdXNoKHYpLHYubGFzdFZpc2l0ZWQ9cjtjb250aW51ZX12Lmxhc3RWaXNpdGVkPS1yfXZhciB3PXYuYWRqYWNlbnQsTT1wLnNsaWNlKCksaz1kLnNsaWNlKCksQT1uZXcgbihNLGssITApO2MucHVzaChBKTt2YXIgVD13LmluZGV4T2YoZSk7aWYoISgwPlQpKXt3W1RdPUEsa1ttXT12LE1bZ109LTEsa1tnXT1lLGRbZ109QSxBLmZsaXAoKTtmb3IodmFyIHg9MDthPj14OysreCl7dmFyIEU9TVt4XTtpZighKDA+RXx8RT09PXIpKXtmb3IodmFyIFM9bmV3IEFycmF5KGEtMSksTD0wLHo9MDthPj16Oysreil7dmFyIEk9TVt6XTswPkl8fHo9PT14fHwoU1tMKytdPUkpfWYucHVzaChuZXcgaShTLEEseCkpfX19fX19Zi5zb3J0KG8pO2Zvcih2YXIgZz0wO2crMTxmLmxlbmd0aDtnKz0yKXt2YXIgUD1mW2ddLEM9ZltnKzFdLFI9UC5pbmRleCxqPUMuaW5kZXg7MD5SfHwwPmp8fChQLmNlbGwuYWRqYWNlbnRbUC5pbmRleF09Qy5jZWxsLEMuY2VsbC5hZGphY2VudFtDLmluZGV4XT1QLmNlbGwpfX0sZi5pbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzO3IucHVzaCh0KTt2YXIgbj10aGlzLndhbGsodCxlKTtpZihuKXtmb3IodmFyIGk9dGhpcy5kaW1lbnNpb24sbz10aGlzLnR1cGxlLGE9MDtpPj1hOysrYSl7dmFyIHM9bi52ZXJ0aWNlc1thXTswPnM/b1thXT10Om9bYV09cltzXX12YXIgbD10aGlzLm9yaWVudChvKTswPmx8fCgwIT09bHx8KG49dGhpcy5oYW5kbGVCb3VuZGFyeURlZ2VuZXJhY3kobix0KSkpJiZ0aGlzLmFkZFBlYWtzKHQsbil9fSxmLmJvdW5kYXJ5PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuZGltZW5zaW9uLGU9W10scj10aGlzLnNpbXBsaWNlcyxuPXIubGVuZ3RoLGk9MDtuPmk7KytpKXt2YXIgbz1yW2ldO2lmKG8uYm91bmRhcnkpe2Zvcih2YXIgYT1uZXcgQXJyYXkodCkscz1vLnZlcnRpY2VzLGw9MCx1PTAsYz0wO3Q+PWM7KytjKXNbY10+PTA/YVtsKytdPXNbY106dT0xJmM7aWYodT09PSgxJnQpKXt2YXIgaD1hWzBdO2FbMF09YVsxXSxhWzFdPWh9ZS5wdXNoKGEpfX1yZXR1cm4gZX19LHsicm9idXN0LW9yaWVudGF0aW9uIjo0NjIsInNpbXBsaWNpYWwtY29tcGxleCI6MjQ5fV0sMjQ3OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzUxXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6NTF9XSwyNDg6W2Z1bmN0aW9uKHQsZSxyKXthcmd1bWVudHNbNF1bMTA4XVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MTA4fV0sMjQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiOyJ1c2UgcmVzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPTAscj1NYXRoLm1heCxuPTAsaT10Lmxlbmd0aDtpPm47KytuKWU9cihlLHRbbl0ubGVuZ3RoKTtyZXR1cm4gZS0xfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPS0xLHI9TWF0aC5tYXgsbj0wLGk9dC5sZW5ndGg7aT5uOysrbilmb3IodmFyIG89dFtuXSxhPTAscz1vLmxlbmd0aDtzPmE7KythKWU9cihlLG9bYV0pO3JldHVybiBlKzF9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTAsbj10Lmxlbmd0aDtuPnI7KytyKWVbcl09dFtyXS5zbGljZSgwKTtyZXR1cm4gZX1mdW5jdGlvbiBhKHQsZSl7dmFyIHI9dC5sZW5ndGgsbj10Lmxlbmd0aC1lLmxlbmd0aCxpPU1hdGgubWluO2lmKG4pcmV0dXJuIG47c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gMDtjYXNlIDE6cmV0dXJuIHRbMF0tZVswXTtjYXNlIDI6dmFyIG89dFswXSt0WzFdLWVbMF0tZVsxXTtyZXR1cm4gbz9vOmkodFswXSx0WzFdKS1pKGVbMF0sZVsxXSk7Y2FzZSAzOnZhciBhPXRbMF0rdFsxXSxzPWVbMF0rZVsxXTtpZihvPWErdFsyXS0ocytlWzJdKSlyZXR1cm4gbzt2YXIgbD1pKHRbMF0sdFsxXSksdT1pKGVbMF0sZVsxXSksbz1pKGwsdFsyXSktaSh1LGVbMl0pO3JldHVybiBvP286aShsK3RbMl0sYSktaSh1K2VbMl0scyk7ZGVmYXVsdDp2YXIgYz10LnNsaWNlKDApO2Muc29ydCgpO3ZhciBoPWUuc2xpY2UoMCk7aC5zb3J0KCk7Zm9yKHZhciBmPTA7cj5mOysrZilpZihuPWNbZl0taFtmXSlyZXR1cm4gbjtyZXR1cm4gMH19ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBhKHRbMF0sZVswXSl9ZnVuY3Rpb24gbCh0LGUpe2lmKGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPTA7cj5pOysraSluW2ldPVt0W2ldLGVbaV1dO24uc29ydChzKTtmb3IodmFyIGk9MDtyPmk7KytpKXRbaV09bltpXVswXSxlW2ldPW5baV1bMV07cmV0dXJuIHR9cmV0dXJuIHQuc29ydChhKSx0fWZ1bmN0aW9uIHUodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybltdO2Zvcih2YXIgZT0xLHI9dC5sZW5ndGgsbj0xO3I+bjsrK24pe3ZhciBpPXRbbl07aWYoYShpLHRbbi0xXSkpe2lmKG49PT1lKXtlKys7Y29udGludWV9dFtlKytdPWl9fXJldHVybiB0Lmxlbmd0aD1lLHR9ZnVuY3Rpb24gYyh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGgtMSxpPS0xO24+PXI7KXt2YXIgbz1yK24+PjEscz1hKHRbb10sZSk7MD49cz8oMD09PXMmJihpPW8pLHI9bysxKTpzPjAmJihuPW8tMSl9cmV0dXJuIGl9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgpLG49MCxpPXIubGVuZ3RoO2k+bjsrK24pcltuXT1bXTtmb3IodmFyIG89W10sbj0wLHM9ZS5sZW5ndGg7cz5uOysrbilmb3IodmFyIGw9ZVtuXSx1PWwubGVuZ3RoLGg9MSxmPTE8PHU7Zj5oOysraCl7by5sZW5ndGg9Yi5wb3BDb3VudChoKTtmb3IodmFyIHA9MCxkPTA7dT5kOysrZCloJjE8PGQmJihvW3ArK109bFtkXSk7dmFyIG09Yyh0LG8pO2lmKCEoMD5tKSlmb3IoOzspaWYoclttKytdLnB1c2gobiksbT49dC5sZW5ndGh8fDAhPT1hKHRbbV0sbykpYnJlYWt9cmV0dXJuIHJ9ZnVuY3Rpb24gZih0LGUpe2lmKCFlKXJldHVybiBoKHUoZCh0LDApKSx0LDApO2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO2U+bjsrK24pcltuXT1bXTtmb3IodmFyIG49MCxpPXQubGVuZ3RoO2k+bjsrK24pZm9yKHZhciBvPXRbbl0sYT0wLHM9by5sZW5ndGg7cz5hOysrYSlyW29bYV1dLnB1c2gobik7cmV0dXJuIHJ9ZnVuY3Rpb24gcCh0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7bj5yOysrcilmb3IodmFyIGk9dFtyXSxvPTB8aS5sZW5ndGgsYT0xLHM9MTw8bztzPmE7KythKXtmb3IodmFyIHU9W10sYz0wO28+YzsrK2MpYT4+PmMmMSYmdS5wdXNoKGlbY10pO2UucHVzaCh1KX1yZXR1cm4gbChlKX1mdW5jdGlvbiBkKHQsZSl7aWYoMD5lKXJldHVybltdO2Zvcih2YXIgcj1bXSxuPSgxPDxlKzEpLTEsaT0wO2k8dC5sZW5ndGg7KytpKWZvcih2YXIgbz10W2ldLGE9bjthPDE8PG8ubGVuZ3RoO2E9Yi5uZXh0Q29tYmluYXRpb24oYSkpe2Zvcih2YXIgcz1uZXcgQXJyYXkoZSsxKSx1PTAsYz0wO2M8by5sZW5ndGg7KytjKWEmMTw8YyYmKHNbdSsrXT1vW2NdKTtyLnB1c2gocyl9cmV0dXJuIGwocil9ZnVuY3Rpb24gbSh0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7bj5yOysrcilmb3IodmFyIGk9dFtyXSxvPTAsYT1pLmxlbmd0aDthPm87KytvKXtmb3IodmFyIHM9bmV3IEFycmF5KGkubGVuZ3RoLTEpLHU9MCxjPTA7YT51OysrdSl1IT09byYmKHNbYysrXT1pW3VdKTtlLnB1c2gocyl9cmV0dXJuIGwoZSl9ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgcj1uZXcgeChlKSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0sbz0wO288aS5sZW5ndGg7KytvKWZvcih2YXIgYT1vKzE7YTxpLmxlbmd0aDsrK2Epci5saW5rKGlbb10saVthXSk7Zm9yKHZhciBzPVtdLGw9ci5yYW5rcyxuPTA7bjxsLmxlbmd0aDsrK24pbFtuXT0tMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoOysrbil7dmFyIHU9ci5maW5kKHRbbl1bMF0pO2xbdV08MD8obFt1XT1zLmxlbmd0aCxzLnB1c2goW3Rbbl0uc2xpY2UoMCldKSk6c1tsW3VdXS5wdXNoKHRbbl0uc2xpY2UoMCkpfXJldHVybiBzfWZ1bmN0aW9uIHYodCl7Zm9yKHZhciBlPXUobChkKHQsMCkpKSxyPW5ldyB4KGUubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0sbz0wO288aS5sZW5ndGg7KytvKWZvcih2YXIgYT1jKGUsW2lbb11dKSxzPW8rMTtzPGkubGVuZ3RoOysrcylyLmxpbmsoYSxjKGUsW2lbc11dKSk7Zm9yKHZhciBoPVtdLGY9ci5yYW5rcyxuPTA7bjxmLmxlbmd0aDsrK24pZltuXT0tMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoOysrbil7dmFyIHA9ci5maW5kKGMoZSxbdFtuXVswXV0pKTtmW3BdPDA/KGZbcF09aC5sZW5ndGgsaC5wdXNoKFt0W25dLnNsaWNlKDApXSkpOmhbZltwXV0ucHVzaCh0W25dLnNsaWNlKDApKX1yZXR1cm4gaH1mdW5jdGlvbiB5KHQsZSl7cmV0dXJuIGU/Zyh0LGUpOnYodCl9dmFyIGI9dCgiYml0LXR3aWRkbGUiKSx4PXQoInVuaW9uLWZpbmQiKTtyLmRpbWVuc2lvbj1uLHIuY291bnRWZXJ0aWNlcz1pLHIuY2xvbmVDZWxscz1vLHIuY29tcGFyZUNlbGxzPWEsci5ub3JtYWxpemU9bCxyLnVuaXF1ZT11LHIuZmluZENlbGw9YyxyLmluY2lkZW5jZT1oLHIuZHVhbD1mLHIuZXhwbG9kZT1wLHIuc2tlbGV0b249ZCxyLmJvdW5kYXJ5PW0sci5jb25uZWN0ZWRDb21wb25lbnRzPXl9LHsiYml0LXR3aWRkbGUiOjI0NywidW5pb24tZmluZCI6MjQ4fV0sMjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7dD5yOysrcillW3JdPXI7cmV0dXJuIGV9ZS5leHBvcnRzPW59LHt9XSwyNTE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIShudWxsPT10fHwhKHQuX2lzQnVmZmVyfHx0LmNvbnN0cnVjdG9yJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmdC5jb25zdHJ1Y3Rvci5pc0J1ZmZlcih0KSkpfX0se31dLDI1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQubGF5b3V0VmVydGV4QXJyYXlUeXBlO3RoaXMubGF5b3V0VmVydGV4QXJyYXk9bmV3IGU7dmFyIHI9dC5lbGVtZW50QXJyYXlUeXBlO3ImJih0aGlzLmVsZW1lbnRBcnJheT1uZXcgcik7dmFyIG49dC5lbGVtZW50QXJyYXlUeXBlMjtuJiYodGhpcy5lbGVtZW50QXJyYXkyPW5ldyBuKSx0aGlzLnBhaW50VmVydGV4QXJyYXlzPWkubWFwT2JqZWN0KHQucGFpbnRWZXJ0ZXhBcnJheVR5cGVzLGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdH0pfXZhciBpPXQoIi4uL3V0aWwvdXRpbCIpO2UuZXhwb3J0cz1uLG4uTUFYX1ZFUlRFWF9BUlJBWV9MRU5HVEg9TWF0aC5wb3coMiwxNiktMSxuLnByb3RvdHlwZS5oYXNDYXBhY2l0eUZvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgrdDw9bi5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSH0sbi5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LG4ucHJvdG90eXBlLnRyaW09ZnVuY3Rpb24oKXt0aGlzLmxheW91dFZlcnRleEFycmF5LnRyaW0oKSx0aGlzLmVsZW1lbnRBcnJheSYmdGhpcy5lbGVtZW50QXJyYXkudHJpbSgpLHRoaXMuZWxlbWVudEFycmF5MiYmdGhpcy5lbGVtZW50QXJyYXkyLnRyaW0oKTtmb3IodmFyIHQgaW4gdGhpcy5wYWludFZlcnRleEFycmF5cyl0aGlzLnBhaW50VmVydGV4QXJyYXlzW3RdLnRyaW0oKX0sbi5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue2xheW91dFZlcnRleEFycmF5OnRoaXMubGF5b3V0VmVydGV4QXJyYXkuc2VyaWFsaXplKCksZWxlbWVudEFycmF5OnRoaXMuZWxlbWVudEFycmF5JiZ0aGlzLmVsZW1lbnRBcnJheS5zZXJpYWxpemUoKSxlbGVtZW50QXJyYXkyOnRoaXMuZWxlbWVudEFycmF5MiYmdGhpcy5lbGVtZW50QXJyYXkyLnNlcmlhbGl6ZSgpLHBhaW50VmVydGV4QXJyYXlzOmkubWFwT2JqZWN0KHRoaXMucGFpbnRWZXJ0ZXhBcnJheXMsZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VyaWFsaXplKCl9KX19LG4ucHJvdG90eXBlLmdldFRyYW5zZmVyYWJsZXM9ZnVuY3Rpb24odCl7dC5wdXNoKHRoaXMubGF5b3V0VmVydGV4QXJyYXkuYXJyYXlCdWZmZXIpLHRoaXMuZWxlbWVudEFycmF5JiZ0LnB1c2godGhpcy5lbGVtZW50QXJyYXkuYXJyYXlCdWZmZXIpLHRoaXMuZWxlbWVudEFycmF5MiYmdC5wdXNoKHRoaXMuZWxlbWVudEFycmF5Mi5hcnJheUJ1ZmZlcik7Zm9yKHZhciBlIGluIHRoaXMucGFpbnRWZXJ0ZXhBcnJheXMpdC5wdXNoKHRoaXMucGFpbnRWZXJ0ZXhBcnJheXNbZV0uYXJyYXlCdWZmZXIpfX0seyIuLi91dGlsL3V0aWwiOjM2Nn1dLDI1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2lmKHRoaXMuem9vbT10Lnpvb20sdGhpcy5vdmVyc2NhbGluZz10Lm92ZXJzY2FsaW5nLHRoaXMubGF5ZXI9dC5sYXllcix0aGlzLmNoaWxkTGF5ZXJzPXQuY2hpbGRMYXllcnMsdGhpcy50eXBlPXRoaXMubGF5ZXIudHlwZSx0aGlzLmZlYXR1cmVzPVtdLHRoaXMuaWQ9dGhpcy5sYXllci5pZCx0aGlzLmluZGV4PXQuaW5kZXgsdGhpcy5zb3VyY2VMYXllcj10aGlzLmxheWVyLnNvdXJjZUxheWVyLHRoaXMuc291cmNlTGF5ZXJJbmRleD10LnNvdXJjZUxheWVySW5kZXgsdGhpcy5taW5ab29tPXRoaXMubGF5ZXIubWluem9vbSx0aGlzLm1heFpvb209dGhpcy5sYXllci5tYXh6b29tLHRoaXMucGFpbnRBdHRyaWJ1dGVzPWkodGhpcyksdC5hcnJheXMpe3ZhciBlPXRoaXMucHJvZ3JhbUludGVyZmFjZXM7dGhpcy5idWZmZXJHcm91cHM9Yy5tYXBPYmplY3QodC5hcnJheXMsZnVuY3Rpb24ocixuKXt2YXIgaT1lW25dLG89dC5wYWludFZlcnRleEFycmF5VHlwZXNbbl07cmV0dXJuIHIubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdSh0LHtsYXlvdXRWZXJ0ZXhBcnJheVR5cGU6aS5sYXlvdXRWZXJ0ZXhBcnJheVR5cGUuc2VyaWFsaXplKCksZWxlbWVudEFycmF5VHlwZTppLmVsZW1lbnRBcnJheVR5cGUmJmkuZWxlbWVudEFycmF5VHlwZS5zZXJpYWxpemUoKSxlbGVtZW50QXJyYXlUeXBlMjppLmVsZW1lbnRBcnJheVR5cGUyJiZpLmVsZW1lbnRBcnJheVR5cGUyLnNlcmlhbGl6ZSgpLHBhaW50VmVydGV4QXJyYXlUeXBlczpvfSl9KX0pfX1mdW5jdGlvbiBpKHQpe3ZhciBlPXt9O2Zvcih2YXIgciBpbiB0LnByb2dyYW1JbnRlcmZhY2VzKXtmb3IodmFyIG49ZVtyXT17fSxpPTA7aTx0LmNoaWxkTGF5ZXJzLmxlbmd0aDtpKyspe3ZhciBzPXQuY2hpbGRMYXllcnNbaV07bltzLmlkXT17YXR0cmlidXRlczpbXSx1bmlmb3JtczpbXSxkZWZpbmVzOltdLHZlcnRleFByYWdtYXM6e2RlZmluZTp7fSxpbml0aWFsaXplOnt9fSxmcmFnbWVudFByYWdtYXM6e2RlZmluZTp7fSxpbml0aWFsaXplOnt9fX19dmFyIGw9dC5wcm9ncmFtSW50ZXJmYWNlc1tyXTtpZihsLnBhaW50QXR0cmlidXRlcylmb3IodmFyIHU9IntwcmVjaXNpb259IixoPSJ7dHlwZX0iLGY9MDtmPGwucGFpbnRBdHRyaWJ1dGVzLmxlbmd0aDtmKyspe3ZhciBwPWwucGFpbnRBdHRyaWJ1dGVzW2ZdO3AubXVsdGlwbGllcj1wLm11bHRpcGxpZXJ8fDE7Zm9yKHZhciBkPTA7ZDx0LmNoaWxkTGF5ZXJzLmxlbmd0aDtkKyspe3ZhciBtLGc9dC5jaGlsZExheWVyc1tkXSx2PW5bZy5pZF0seT1wLm5hbWUsYj1wLm5hbWUuc2xpY2UoMik7aWYodi5mcmFnbWVudFByYWdtYXMuaW5pdGlhbGl6ZVtiXT0iIixnLmlzUGFpbnRWYWx1ZUZlYXR1cmVDb25zdGFudChwLnBhaW50UHJvcGVydHkpKXYudW5pZm9ybXMucHVzaChwKSx2LmZyYWdtZW50UHJhZ21hcy5kZWZpbmVbYl09di52ZXJ0ZXhQcmFnbWFzLmRlZmluZVtiXT1bInVuaWZvcm0iLHUsaCx5XS5qb2luKCIgIikrIjsiLHYuZnJhZ21lbnRQcmFnbWFzLmluaXRpYWxpemVbYl09di52ZXJ0ZXhQcmFnbWFzLmluaXRpYWxpemVbYl09W3UsaCxiLCI9Iix5XS5qb2luKCIgIikrIjtcbiI7ZWxzZSBpZihnLmlzUGFpbnRWYWx1ZVpvb21Db25zdGFudChwLnBhaW50UHJvcGVydHkpKXt2LmF0dHJpYnV0ZXMucHVzaChjLmV4dGVuZCh7fSxwLHtuYW1lOnl9KSksbT1bInZhcnlpbmciLHUsaCxiXS5qb2luKCIgIikrIjtcbiI7dmFyIHg9W3YuZnJhZ21lbnRQcmFnbWFzLmRlZmluZVtiXSwiYXR0cmlidXRlIix1LGgseV0uam9pbigiICIpKyI7XG4iO3YuZnJhZ21lbnRQcmFnbWFzLmRlZmluZVtiXT1tLHYudmVydGV4UHJhZ21hcy5kZWZpbmVbYl09bSt4LHYudmVydGV4UHJhZ21hcy5pbml0aWFsaXplW2JdPVtiLCI9Iix5LCIvIixwLm11bHRpcGxpZXIudG9GaXhlZCgxKV0uam9pbigiICIpKyI7XG4ifWVsc2V7Zm9yKHZhciBfPSJ1XyIreS5zbGljZSgyKSsiX3QiLHc9Zy5nZXRQYWludFZhbHVlU3RvcFpvb21MZXZlbHMocC5wYWludFByb3BlcnR5KSxNPTA7TTx3Lmxlbmd0aCYmd1tNXTx0Lnpvb207KU0rKztmb3IodmFyIGs9TWF0aC5tYXgoMCxNYXRoLm1pbih3Lmxlbmd0aC00LE0tMikpLEE9W10sVD0wOzQ+VDtUKyspQS5wdXNoKHdbTWF0aC5taW4oaytULHcubGVuZ3RoLTEpXSk7bT1bInZhcnlpbmciLHUsaCxiXS5qb2luKCIgIikrIjtcbiIsdi52ZXJ0ZXhQcmFnbWFzLmRlZmluZVtiXT1tK1sidW5pZm9ybSIsImxvd3AiLCJmbG9hdCIsX10uam9pbigiICIpKyI7XG4iLHYuZnJhZ21lbnRQcmFnbWFzLmRlZmluZVtiXT1tLHYudW5pZm9ybXMucHVzaChjLmV4dGVuZCh7fSxwLHtuYW1lOl8sZ2V0VmFsdWU6YShwLGspLGNvbXBvbmVudHM6MX0pKTt2YXIgRT1wLmNvbXBvbmVudHM7aWYoMT09PUUpdi5hdHRyaWJ1dGVzLnB1c2goYy5leHRlbmQoe30scCx7Z2V0VmFsdWU6byhwLEEpLGlzRnVuY3Rpb246ITAsY29tcG9uZW50czo0KkV9KSksdi52ZXJ0ZXhQcmFnbWFzLmRlZmluZVtiXSs9WyJhdHRyaWJ1dGUiLHUsInZlYzQiLHldLmpvaW4oIiAiKSsiO1xuIix2LnZlcnRleFByYWdtYXMuaW5pdGlhbGl6ZVtiXT1bYiwiPSIsImV2YWx1YXRlX3pvb21fZnVuY3Rpb25fMSgiK3krIiwgIitfKyIpIiwiLyIscC5tdWx0aXBsaWVyLnRvRml4ZWQoMSldLmpvaW4oIiAiKSsiO1xuIjtlbHNle2Zvcih2YXIgUz1bXSxMPTA7ND5MO0wrKylTLnB1c2goeStMKSx2LmF0dHJpYnV0ZXMucHVzaChjLmV4dGVuZCh7fSxwLHtnZXRWYWx1ZTpvKHAsW0FbTF1dKSxpc0Z1bmN0aW9uOiEwLG5hbWU6eStMfSkpLHYudmVydGV4UHJhZ21hcy5kZWZpbmVbYl0rPVsiYXR0cmlidXRlIix1LGgseStMXS5qb2luKCIgIikrIjtcbiI7di52ZXJ0ZXhQcmFnbWFzLmluaXRpYWxpemVbYl09W2IsIiA9ICIsImV2YWx1YXRlX3pvb21fZnVuY3Rpb25fNCgiK1Muam9pbigiLCAiKSsiLCAiK18rIikiLCIvIixwLm11bHRpcGxpZXIudG9GaXhlZCgxKV0uam9pbigiICIpKyI7XG4ifX19fX1yZXR1cm4gZX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbixpKXtpZigxPT09ZS5sZW5ndGgpcmV0dXJuIHQuZ2V0VmFsdWUocixjLmV4dGVuZCh7fSxuLHt6b29tOmVbMF19KSxpKTtmb3IodmFyIG89W10sYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgcz1lW2FdO28ucHVzaCh0LmdldFZhbHVlKHIsYy5leHRlbmQoe30sbix7em9vbTpzfSksaSlbMF0pfXJldHVybiBvfX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9ci5nZXRQYWludEludGVycG9sYXRpb25UKHQucGFpbnRQcm9wZXJ0eSxuLnpvb20pO3JldHVybltNYXRoLm1heCgwLE1hdGgubWluKDQsaS1lKSldfX12YXIgcz10KCJmZWF0dXJlLWZpbHRlciIpLGw9dCgiLi9hcnJheV9ncm91cCIpLHU9dCgiLi9idWZmZXJfZ3JvdXAiKSxjPXQoIi4uL3V0aWwvdXRpbCIpLGg9dCgiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiKTtlLmV4cG9ydHM9bixuLmNyZWF0ZT1mdW5jdGlvbihlKXt2YXIgcj17ZmlsbDp0KCIuL2J1Y2tldC9maWxsX2J1Y2tldCIpLGxpbmU6dCgiLi9idWNrZXQvbGluZV9idWNrZXQiKSxjaXJjbGU6dCgiLi9idWNrZXQvY2lyY2xlX2J1Y2tldCIpLHN5bWJvbDp0KCIuL2J1Y2tldC9zeW1ib2xfYnVja2V0Iil9O3JldHVybiBuZXcgcltlLmxheWVyLnR5cGVdKGUpfSxuLkVYVEVOVD04MTkyLG4ucHJvdG90eXBlLnBvcHVsYXRlQXJyYXlzPWZ1bmN0aW9uKCl7dGhpcy5jcmVhdGVBcnJheXMoKSx0aGlzLnJlY2FsY3VsYXRlU3R5bGVMYXllcnMoKTtmb3IodmFyIHQ9MDt0PHRoaXMuZmVhdHVyZXMubGVuZ3RoO3QrKyl0aGlzLmFkZEZlYXR1cmUodGhpcy5mZWF0dXJlc1t0XSk7dGhpcy50cmltQXJyYXlzKCl9LG4ucHJvdG90eXBlLnByZXBhcmVBcnJheUdyb3VwPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5hcnJheUdyb3Vwc1t0XSxuPXIubGVuZ3RoJiZyW3IubGVuZ3RoLTFdO3JldHVybiBuJiZuLmhhc0NhcGFjaXR5Rm9yKGUpfHwobj1uZXcgbCh7bGF5b3V0VmVydGV4QXJyYXlUeXBlOnRoaXMucHJvZ3JhbUludGVyZmFjZXNbdF0ubGF5b3V0VmVydGV4QXJyYXlUeXBlLGVsZW1lbnRBcnJheVR5cGU6dGhpcy5wcm9ncmFtSW50ZXJmYWNlc1t0XS5lbGVtZW50QXJyYXlUeXBlLGVsZW1lbnRBcnJheVR5cGUyOnRoaXMucHJvZ3JhbUludGVyZmFjZXNbdF0uZWxlbWVudEFycmF5VHlwZTIscGFpbnRWZXJ0ZXhBcnJheVR5cGVzOnRoaXMucGFpbnRWZXJ0ZXhBcnJheVR5cGVzW3RdfSksbi5pbmRleD1yLmxlbmd0aCxyLnB1c2gobikpLG59LG4ucHJvdG90eXBlLmNyZWF0ZUFycmF5cz1mdW5jdGlvbigpe3RoaXMuYXJyYXlHcm91cHM9e30sdGhpcy5wYWludFZlcnRleEFycmF5VHlwZXM9e307Zm9yKHZhciB0IGluIHRoaXMucHJvZ3JhbUludGVyZmFjZXMpe3RoaXMuYXJyYXlHcm91cHNbdF09W107dmFyIGU9dGhpcy5wYWludFZlcnRleEFycmF5VHlwZXNbdF09e30scj10aGlzLnBhaW50QXR0cmlidXRlc1t0XTtmb3IodmFyIGkgaW4gcillW2ldPW5ldyBuLlZlcnRleEFycmF5VHlwZShyW2ldLmF0dHJpYnV0ZXMpfX0sbi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5idWZmZXJHcm91cHMpZm9yKHZhciByPXRoaXMuYnVmZmVyR3JvdXBzW2VdLG49MDtuPHIubGVuZ3RoO24rKylyW25dLmRlc3Ryb3kodCl9LG4ucHJvdG90eXBlLnRyaW1BcnJheXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5hcnJheUdyb3Vwcylmb3IodmFyIGU9dGhpcy5hcnJheUdyb3Vwc1t0XSxyPTA7cjxlLmxlbmd0aDtyKyspZVtyXS50cmltKCl9LG4ucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5hcnJheUdyb3Vwcylmb3IodmFyIGU9dGhpcy5hcnJheUdyb3Vwc1t0XSxyPTA7cjxlLmxlbmd0aDtyKyspaWYoIWVbcl0uaXNFbXB0eSgpKXJldHVybiExO3JldHVybiEwfSxuLnByb3RvdHlwZS5nZXRUcmFuc2ZlcmFibGVzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLmFycmF5R3JvdXBzKWZvcih2YXIgcj10aGlzLmFycmF5R3JvdXBzW2VdLG49MDtuPHIubGVuZ3RoO24rKylyW25dLmdldFRyYW5zZmVyYWJsZXModCl9LG4ucHJvdG90eXBlLnNldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBvPXRoaXMucGFpbnRBdHRyaWJ1dGVzW2VdW24uaWRdLnVuaWZvcm1zLGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIHM9b1thXSxsPXJbcy5uYW1lXTt0WyJ1bmlmb3JtIitzLmNvbXBvbmVudHMrImZ2Il0obCxzLmdldFZhbHVlKG4saSkpfX0sbi5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue2xheWVySWQ6dGhpcy5sYXllci5pZCx6b29tOnRoaXMuem9vbSxhcnJheXM6Yy5tYXBPYmplY3QodGhpcy5hcnJheUdyb3VwcyxmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VyaWFsaXplKCl9KX0pLHBhaW50VmVydGV4QXJyYXlUeXBlczpjLm1hcE9iamVjdCh0aGlzLnBhaW50VmVydGV4QXJyYXlUeXBlcyxmdW5jdGlvbih0KXtyZXR1cm4gYy5tYXBPYmplY3QodCxmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXJpYWxpemUoKX0pfSksY2hpbGRMYXllcklkczp0aGlzLmNoaWxkTGF5ZXJzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pfX0sbi5wcm90b3R5cGUuY3JlYXRlRmlsdGVyPWZ1bmN0aW9uKCl7dGhpcy5maWx0ZXJ8fCh0aGlzLmZpbHRlcj1zKHRoaXMubGF5ZXIuZmlsdGVyKSl9O3ZhciBmPXtsYXN0SW50ZWdlclpvb206MS8wLGxhc3RJbnRlZ2VyWm9vbVRpbWU6MCxsYXN0Wm9vbTowfTtuLnByb3RvdHlwZS5yZWNhbGN1bGF0ZVN0eWxlTGF5ZXJzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDx0aGlzLmNoaWxkTGF5ZXJzLmxlbmd0aDt0KyspdGhpcy5jaGlsZExheWVyc1t0XS5yZWNhbGN1bGF0ZSh0aGlzLnpvb20sZil9LG4ucHJvdG90eXBlLnBvcHVsYXRlUGFpbnRBcnJheXM9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIG89MDtvPHRoaXMuY2hpbGRMYXllcnMubGVuZ3RoO28rKylmb3IodmFyIGE9dGhpcy5jaGlsZExheWVyc1tvXSxzPXRoaXMuYXJyYXlHcm91cHNbdF0sbD1uLmluZGV4O2w8cy5sZW5ndGg7bCsrKXt2YXIgdT1zW2xdLGM9dS5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsaD11LnBhaW50VmVydGV4QXJyYXlzW2EuaWRdO2gucmVzaXplKGMpO2Zvcih2YXIgZj10aGlzLnBhaW50QXR0cmlidXRlc1t0XVthLmlkXS5hdHRyaWJ1dGVzLHA9MDtwPGYubGVuZ3RoO3ArKylmb3IodmFyIGQ9ZltwXSxtPWQuZ2V0VmFsdWUoYSxlLHIpLGc9ZC5tdWx0aXBsaWVyfHwxLHY9ZC5jb21wb25lbnRzfHwxLHk9bD09PW4uaW5kZXg/aTowLGI9eTtjPmI7YisrKWZvcih2YXIgeD1oLmdldChiKSxfPTA7dj5fO18rKyl7dmFyIHc9dj4xP2QubmFtZStfOmQubmFtZTt4W3ddPW1bX10qZ319fSxuLlZlcnRleEFycmF5VHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGgoe21lbWJlcnM6dCxhbGlnbm1lbnQ6NH0pfSxuLkVsZW1lbnRBcnJheVR5cGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBoKHttZW1iZXJzOlt7dHlwZToiVWludDE2IixuYW1lOiJ2ZXJ0aWNlcyIsY29tcG9uZW50czp0fHwzfV19KX19LHsiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiOjM2NCwiLi4vdXRpbC91dGlsIjozNjYsIi4vYXJyYXlfZ3JvdXAiOjI1MiwiLi9idWNrZXQvY2lyY2xlX2J1Y2tldCI6MjU0LCIuL2J1Y2tldC9maWxsX2J1Y2tldCI6MjU1LCIuL2J1Y2tldC9saW5lX2J1Y2tldCI6MjU2LCIuL2J1Y2tldC9zeW1ib2xfYnVja2V0IjoyNTcsIi4vYnVmZmVyX2dyb3VwIjoyNTksImZlYXR1cmUtZmlsdGVyIjozNzB9XSwyNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbigpe2kuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBpPXQoIi4uL2J1Y2tldCIpLG89dCgiLi4vLi4vdXRpbC91dGlsIiksYT10KCIuLi9sb2FkX2dlb21ldHJ5Iikscz1pLkVYVEVOVDtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT1vLmluaGVyaXQoaSx7fSksbi5wcm90b3R5cGUuYWRkQ2lyY2xlVmVydGV4PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHQuZW1wbGFjZUJhY2soMiplKyhuKzEpLzIsMipyKyhpKzEpLzIpfSxuLnByb3RvdHlwZS5wcm9ncmFtSW50ZXJmYWNlcz17Y2lyY2xlOntsYXlvdXRWZXJ0ZXhBcnJheVR5cGU6bmV3IGkuVmVydGV4QXJyYXlUeXBlKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSksZWxlbWVudEFycmF5VHlwZTpuZXcgaS5FbGVtZW50QXJyYXlUeXBlLHBhaW50QXR0cmlidXRlczpbe25hbWU6ImFfY29sb3IiLGNvbXBvbmVudHM6NCx0eXBlOiJVaW50OCIsZ2V0VmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LmdldFBhaW50VmFsdWUoImNpcmNsZS1jb2xvciIsZSxyKX0sbXVsdGlwbGllcjoyNTUscGFpbnRQcm9wZXJ0eToiY2lyY2xlLWNvbG9yIn0se25hbWU6ImFfcmFkaXVzIixjb21wb25lbnRzOjEsdHlwZToiVWludDE2Iixpc0xheWVyQ29uc3RhbnQ6ITEsZ2V0VmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVyblt0LmdldFBhaW50VmFsdWUoImNpcmNsZS1yYWRpdXMiLGUscildfSxtdWx0aXBsaWVyOjEwLHBhaW50UHJvcGVydHk6ImNpcmNsZS1yYWRpdXMifSx7bmFtZToiYV9ibHVyIixjb21wb25lbnRzOjEsdHlwZToiVWludDE2Iixpc0xheWVyQ29uc3RhbnQ6ITEsZ2V0VmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVyblt0LmdldFBhaW50VmFsdWUoImNpcmNsZS1ibHVyIixlLHIpXX0sbXVsdGlwbGllcjoxMCxwYWludFByb3BlcnR5OiJjaXJjbGUtYmx1ciJ9LHtuYW1lOiJhX29wYWNpdHkiLGNvbXBvbmVudHM6MSx0eXBlOiJVaW50MTYiLGlzTGF5ZXJDb25zdGFudDohMSxnZXRWYWx1ZTpmdW5jdGlvbih0LGUscil7cmV0dXJuW3QuZ2V0UGFpbnRWYWx1ZSgiY2lyY2xlLW9wYWNpdHkiLGUscildfSxtdWx0aXBsaWVyOjI1NSxwYWludFByb3BlcnR5OiJjaXJjbGUtb3BhY2l0eSJ9XX19LG4ucHJvdG90eXBlLmFkZEZlYXR1cmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt6b29tOnRoaXMuem9vbX0scj1hKHQpLG49dGhpcy5wcmVwYXJlQXJyYXlHcm91cCgiY2lyY2xlIiwwKSxpPW4ubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLG89MDtvPHIubGVuZ3RoO28rKylmb3IodmFyIGw9MDtsPHJbb10ubGVuZ3RoO2wrKyl7dmFyIHU9cltvXVtsXS54LGM9cltvXVtsXS55O2lmKCEoMD51fHx1Pj1zfHwwPmN8fGM+PXMpKXt2YXIgaD10aGlzLnByZXBhcmVBcnJheUdyb3VwKCJjaXJjbGUiLDQpLGY9aC5sYXlvdXRWZXJ0ZXhBcnJheSxwPXRoaXMuYWRkQ2lyY2xlVmVydGV4KGYsdSxjLC0xLC0xKTt0aGlzLmFkZENpcmNsZVZlcnRleChmLHUsYywxLC0xKSx0aGlzLmFkZENpcmNsZVZlcnRleChmLHUsYywxLDEpLHRoaXMuYWRkQ2lyY2xlVmVydGV4KGYsdSxjLC0xLDEpLGguZWxlbWVudEFycmF5LmVtcGxhY2VCYWNrKHAscCsxLHArMiksaC5lbGVtZW50QXJyYXkuZW1wbGFjZUJhY2socCxwKzMscCsyKX19dGhpcy5wb3B1bGF0ZVBhaW50QXJyYXlzKCJjaXJjbGUiLGUsdC5wcm9wZXJ0aWVzLG4saSl9fSx7Ii4uLy4uL3V0aWwvdXRpbCI6MzY2LCIuLi9idWNrZXQiOjI1MywiLi4vbG9hZF9nZW9tZXRyeSI6MjYxfV0sMjU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgaT10KCIuLi9idWNrZXQiKSxvPXQoIi4uLy4uL3V0aWwvdXRpbCIpLGE9dCgiLi4vbG9hZF9nZW9tZXRyeSIpLHM9dCgiZWFyY3V0IiksbD10KCIuLi8uLi91dGlsL2NsYXNzaWZ5X3JpbmdzIiksdT01MDA7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9by5pbmhlcml0KGkse30pLG4ucHJvdG90eXBlLnByb2dyYW1JbnRlcmZhY2VzPXtmaWxsOntsYXlvdXRWZXJ0ZXhBcnJheVR5cGU6bmV3IGkuVmVydGV4QXJyYXlUeXBlKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSksZWxlbWVudEFycmF5VHlwZTpuZXcgaS5FbGVtZW50QXJyYXlUeXBlKDEpLGVsZW1lbnRBcnJheVR5cGUyOm5ldyBpLkVsZW1lbnRBcnJheVR5cGUoMikscGFpbnRBdHRyaWJ1dGVzOlt7bmFtZToiYV9jb2xvciIsY29tcG9uZW50czo0LHR5cGU6IlVpbnQ4IixnZXRWYWx1ZTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHQuZ2V0UGFpbnRWYWx1ZSgiZmlsbC1jb2xvciIsZSxyKX0sbXVsdGlwbGllcjoyNTUscGFpbnRQcm9wZXJ0eToiZmlsbC1jb2xvciJ9LHtuYW1lOiJhX291dGxpbmVfY29sb3IiLGNvbXBvbmVudHM6NCx0eXBlOiJVaW50OCIsZ2V0VmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LmdldFBhaW50VmFsdWUoImZpbGwtb3V0bGluZS1jb2xvciIsZSxyKX0sbXVsdGlwbGllcjoyNTUscGFpbnRQcm9wZXJ0eToiZmlsbC1vdXRsaW5lLWNvbG9yIn0se25hbWU6ImFfb3BhY2l0eSIsY29tcG9uZW50czoxLHR5cGU6IlVpbnQ4IixnZXRWYWx1ZTpmdW5jdGlvbih0LGUscil7cmV0dXJuW3QuZ2V0UGFpbnRWYWx1ZSgiZmlsbC1vcGFjaXR5IixlLHIpXX0sbXVsdGlwbGllcjoyNTUscGFpbnRQcm9wZXJ0eToiZmlsbC1vcGFjaXR5In1dfX0sbi5wcm90b3R5cGUuYWRkRmVhdHVyZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9YSh0KSxyPWwoZSx1KSxuPXRoaXMucHJlcGFyZUFycmF5R3JvdXAoImZpbGwiLDApLGk9bi5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsbz0wO288ci5sZW5ndGg7bysrKXRoaXMuYWRkUG9seWdvbihyW29dKTt0aGlzLnBvcHVsYXRlUGFpbnRBcnJheXMoImZpbGwiLHt6b29tOnRoaXMuem9vbX0sdC5wcm9wZXJ0aWVzLG4saSl9LG4ucHJvdG90eXBlLmFkZFBvbHlnb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKWUrPXRbcl0ubGVuZ3RoO2Zvcih2YXIgbj10aGlzLnByZXBhcmVBcnJheUdyb3VwKCJmaWxsIixlKSxpPVtdLG89W10sYT1uLmxheW91dFZlcnRleEFycmF5Lmxlbmd0aCxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciB1PXRbbF07bD4wJiZvLnB1c2goaS5sZW5ndGgvMik7Zm9yKHZhciBjPTA7Yzx1Lmxlbmd0aDtjKyspe3ZhciBoPXVbY10sZj1uLmxheW91dFZlcnRleEFycmF5LmVtcGxhY2VCYWNrKGgueCxoLnkpO2M+PTEmJm4uZWxlbWVudEFycmF5Mi5lbXBsYWNlQmFjayhmLTEsZiksaS5wdXNoKGgueCksaS5wdXNoKGgueSl9fWZvcih2YXIgcD1zKGksbyksZD0wO2Q8cC5sZW5ndGg7ZCsrKW4uZWxlbWVudEFycmF5LmVtcGxhY2VCYWNrKHBbZF0rYSl9fSx7Ii4uLy4uL3V0aWwvY2xhc3NpZnlfcmluZ3MiOjM1NCwiLi4vLi4vdXRpbC91dGlsIjozNjYsIi4uL2J1Y2tldCI6MjUzLCIuLi9sb2FkX2dlb21ldHJ5IjoyNjEsZWFyY3V0OjM2OX1dLDI1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7aS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGk9dCgiLi4vYnVja2V0Iiksbz10KCIuLi8uLi91dGlsL3V0aWwiKSxhPXQoIi4uL2xvYWRfZ2VvbWV0cnkiKSxzPWkuRVhURU5ULGw9NjMsdT1NYXRoLmNvcygzNy41KihNYXRoLlBJLzE4MCkpLGM9MTUsaD0xNSxmPS41LHA9TWF0aC5wb3coMixoLTEpL2Y7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9by5pbmhlcml0KGkse30pLG4ucHJvdG90eXBlLmFkZExpbmVWZXJ0ZXg9ZnVuY3Rpb24odCxlLHIsbixpLG8sYSl7cmV0dXJuIHQuZW1wbGFjZUJhY2soZS54PDwxfG4sZS55PDwxfGksTWF0aC5yb3VuZChsKnIueCkrMTI4LE1hdGgucm91bmQobCpyLnkpKzEyOCwoMD09PW8/MDowPm8/LTE6MSkrMXwoYSpmJjYzKTw8MixhKmY+PjYpfSxuLnByb3RvdHlwZS5wcm9ncmFtSW50ZXJmYWNlcz17bGluZTp7bGF5b3V0VmVydGV4QXJyYXlUeXBlOm5ldyBpLlZlcnRleEFycmF5VHlwZShbe25hbWU6ImFfcG9zIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9kYXRhIixjb21wb25lbnRzOjQsdHlwZToiVWludDgifV0pLGVsZW1lbnRBcnJheVR5cGU6bmV3IGkuRWxlbWVudEFycmF5VHlwZX19LG4ucHJvdG90eXBlLmFkZEZlYXR1cmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWEodCxoKSxyPTA7cjxlLmxlbmd0aDtyKyspdGhpcy5hZGRMaW5lKGVbcl0sdGhpcy5sYXllci5sYXlvdXRbImxpbmUtam9pbiJdLHRoaXMubGF5ZXIubGF5b3V0WyJsaW5lLWNhcCJdLHRoaXMubGF5ZXIubGF5b3V0WyJsaW5lLW1pdGVyLWxpbWl0Il0sdGhpcy5sYXllci5sYXlvdXRbImxpbmUtcm91bmQtbGltaXQiXSl9LG4ucHJvdG90eXBlLmFkZExpbmU9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIG89dC5sZW5ndGg7bz4yJiZ0W28tMV0uZXF1YWxzKHRbby0yXSk7KW8tLTtpZighKHQubGVuZ3RoPDIpKXsiYmV2ZWwiPT09ZSYmKG49MS4wNSk7dmFyIGE9Yyoocy8oNTEyKnRoaXMub3ZlcnNjYWxpbmcpKSxsPXRbMF0saD10W28tMV0sZj1sLmVxdWFscyhoKTtpZih0aGlzLnByZXBhcmVBcnJheUdyb3VwKCJsaW5lIiwxMCpvKSwyIT09b3x8IWYpe3RoaXMuZGlzdGFuY2U9MDt2YXIgcCxkLG0sZyx2LHksYix4PXIsXz1mPyJidXR0IjpyLHc9ITA7dGhpcy5lMT10aGlzLmUyPXRoaXMuZTM9LTEsZiYmKHA9dFtvLTJdLHY9bC5zdWIocCkuX3VuaXQoKS5fcGVycCgpKTtmb3IodmFyIE09MDtvPk07TSsrKWlmKG09ZiYmTT09PW8tMT90WzFdOnRbTSsxXSwhbXx8IXRbTV0uZXF1YWxzKG0pKXt2JiYoZz12KSxwJiYoZD1wKSxwPXRbTV0sdj1tP20uc3ViKHApLl91bml0KCkuX3BlcnAoKTpnLGc9Z3x8djt2YXIgaz1nLmFkZCh2KS5fdW5pdCgpLEE9ay54KnYueCtrLnkqdi55LFQ9MS9BLEU9dT5BJiZkJiZtO2lmKEUmJk0+MCl7dmFyIFM9cC5kaXN0KGQpO2lmKFM+MiphKXt2YXIgTD1wLnN1YihwLnN1YihkKS5fbXVsdChhL1MpLl9yb3VuZCgpKTt0aGlzLmRpc3RhbmNlKz1MLmRpc3QoZCksdGhpcy5hZGRDdXJyZW50VmVydGV4KEwsdGhpcy5kaXN0YW5jZSxnLm11bHQoMSksMCwwLCExKSxkPUx9fXZhciB6PWQmJm0sST16P2U6bT94Ol87aWYoeiYmInJvdW5kIj09PUkmJihpPlQ/ST0ibWl0ZXIiOjI+PVQmJihJPSJmYWtlcm91bmQiKSksIm1pdGVyIj09PUkmJlQ+biYmKEk9ImJldmVsIiksImJldmVsIj09PUkmJihUPjImJihJPSJmbGlwYmV2ZWwiKSxuPlQmJihJPSJtaXRlciIpKSxkJiYodGhpcy5kaXN0YW5jZSs9cC5kaXN0KGQpKSwibWl0ZXIiPT09SSlrLl9tdWx0KFQpLHRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsaywwLDAsITEpO2Vsc2UgaWYoImZsaXBiZXZlbCI9PT1JKXtpZihUPjEwMClrPXYuY2xvbmUoKTtlbHNle3ZhciBQPWcueCp2LnktZy55KnYueD4wPy0xOjEsQz1UKmcuYWRkKHYpLm1hZygpL2cuc3ViKHYpLm1hZygpO2suX3BlcnAoKS5fbXVsdChDKlApfXRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsaywwLDAsITEpLHRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2Usay5tdWx0KC0xKSwwLDAsITEpfWVsc2UgaWYoImJldmVsIj09PUl8fCJmYWtlcm91bmQiPT09SSl7dmFyIFI9Zy54KnYueS1nLnkqdi54PjAsaj0tTWF0aC5zcXJ0KFQqVC0xKTtpZihSPyhiPTAseT1qKTooeT0wLGI9aiksd3x8dGhpcy5hZGRDdXJyZW50VmVydGV4KHAsdGhpcy5kaXN0YW5jZSxnLHksYiwhMSksImZha2Vyb3VuZCI9PT1JKXtmb3IodmFyIEQsTz1NYXRoLmZsb29yKDgqKC41LShBLS41KSkpLEY9MDtPPkY7RisrKUQ9di5tdWx0KChGKzEpLyhPKzEpKS5fYWRkKGcpLl91bml0KCksdGhpcy5hZGRQaWVTbGljZVZlcnRleChwLHRoaXMuZGlzdGFuY2UsRCxSKTt0aGlzLmFkZFBpZVNsaWNlVmVydGV4KHAsdGhpcy5kaXN0YW5jZSxrLFIpO2Zvcih2YXIgTj1PLTE7Tj49MDtOLS0pRD1nLm11bHQoKE4rMSkvKE8rMSkpLl9hZGQodikuX3VuaXQoKSx0aGlzLmFkZFBpZVNsaWNlVmVydGV4KHAsdGhpcy5kaXN0YW5jZSxELFIpfW0mJnRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsdiwteSwtYiwhMSl9ZWxzZSJidXR0Ij09PUk/KHd8fHRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsZywwLDAsITEpLG0mJnRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsdiwwLDAsITEpKToic3F1YXJlIj09PUk/KHd8fCh0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgocCx0aGlzLmRpc3RhbmNlLGcsMSwxLCExKSx0aGlzLmUxPXRoaXMuZTI9LTEpLG0mJnRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsdiwtMSwtMSwhMSkpOiJyb3VuZCI9PT1JJiYod3x8KHRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsZywwLDAsITEpLHRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsZywxLDEsITApLHRoaXMuZTE9dGhpcy5lMj0tMSksbSYmKHRoaXMuYWRkQ3VycmVudFZlcnRleChwLHRoaXMuZGlzdGFuY2UsdiwtMSwtMSwhMCksdGhpcy5hZGRDdXJyZW50VmVydGV4KHAsdGhpcy5kaXN0YW5jZSx2LDAsMCwhMSkpKTtpZihFJiZvLTE+TSl7dmFyIEI9cC5kaXN0KG0pO2lmKEI+MiphKXt2YXIgVT1wLmFkZChtLnN1YihwKS5fbXVsdChhL0IpLl9yb3VuZCgpKTt0aGlzLmRpc3RhbmNlKz1VLmRpc3QocCksdGhpcy5hZGRDdXJyZW50VmVydGV4KFUsdGhpcy5kaXN0YW5jZSx2Lm11bHQoMSksMCwwLCExKSxwPVV9fXc9ITF9fX19LG4ucHJvdG90eXBlLmFkZEN1cnJlbnRWZXJ0ZXg9ZnVuY3Rpb24odCxlLHIsbixpLG8pe3ZhciBhLHM9bz8xOjAsbD10aGlzLmFycmF5R3JvdXBzLmxpbmVbdGhpcy5hcnJheUdyb3Vwcy5saW5lLmxlbmd0aC0xXSx1PWwubGF5b3V0VmVydGV4QXJyYXksYz1sLmVsZW1lbnRBcnJheTthPXIuY2xvbmUoKSxuJiZhLl9zdWIoci5wZXJwKCkuX211bHQobikpLHRoaXMuZTM9dGhpcy5hZGRMaW5lVmVydGV4KHUsdCxhLHMsMCxuLGUpLHRoaXMuZTE+PTAmJnRoaXMuZTI+PTAmJmMuZW1wbGFjZUJhY2sodGhpcy5lMSx0aGlzLmUyLHRoaXMuZTMpLHRoaXMuZTE9dGhpcy5lMix0aGlzLmUyPXRoaXMuZTMsYT1yLm11bHQoLTEpLGkmJmEuX3N1YihyLnBlcnAoKS5fbXVsdChpKSksdGhpcy5lMz10aGlzLmFkZExpbmVWZXJ0ZXgodSx0LGEscywxLC1pLGUpLHRoaXMuZTE+PTAmJnRoaXMuZTI+PTAmJmMuZW1wbGFjZUJhY2sodGhpcy5lMSx0aGlzLmUyLHRoaXMuZTMpLHRoaXMuZTE9dGhpcy5lMix0aGlzLmUyPXRoaXMuZTMsZT5wLzImJih0aGlzLmRpc3RhbmNlPTAsdGhpcy5hZGRDdXJyZW50VmVydGV4KHQsdGhpcy5kaXN0YW5jZSxyLG4saSxvKSl9LG4ucHJvdG90eXBlLmFkZFBpZVNsaWNlVmVydGV4PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4/MTowO3I9ci5tdWx0KG4/LTE6MSk7dmFyIG89dGhpcy5hcnJheUdyb3Vwcy5saW5lW3RoaXMuYXJyYXlHcm91cHMubGluZS5sZW5ndGgtMV0sYT1vLmxheW91dFZlcnRleEFycmF5LHM9by5lbGVtZW50QXJyYXk7CnRoaXMuZTM9dGhpcy5hZGRMaW5lVmVydGV4KGEsdCxyLDAsaSwwLGUpLHRoaXMuZTE+PTAmJnRoaXMuZTI+PTAmJnMuZW1wbGFjZUJhY2sodGhpcy5lMSx0aGlzLmUyLHRoaXMuZTMpLG4/dGhpcy5lMj10aGlzLmUzOnRoaXMuZTE9dGhpcy5lM319LHsiLi4vLi4vdXRpbC91dGlsIjozNjYsIi4uL2J1Y2tldCI6MjUzLCIuLi9sb2FkX2dlb21ldHJ5IjoyNjF9XSwyNTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXthLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnNob3dDb2xsaXNpb25Cb3hlcz10LnNob3dDb2xsaXNpb25Cb3hlcyx0aGlzLm92ZXJzY2FsaW5nPXQub3ZlcnNjYWxpbmcsdGhpcy5jb2xsaXNpb25Cb3hBcnJheT10LmNvbGxpc2lvbkJveEFycmF5LHRoaXMuc3ltYm9sUXVhZHNBcnJheT10LnN5bWJvbFF1YWRzQXJyYXksdGhpcy5zeW1ib2xJbnN0YW5jZXNBcnJheT10LnN5bWJvbEluc3RhbmNlc0FycmF5LHRoaXMuc2RmSWNvbnM9dC5zZGZJY29ucyx0aGlzLmljb25zTmVlZExpbmVhcj10Lmljb25zTmVlZExpbmVhcix0aGlzLmFkanVzdGVkVGV4dFNpemU9dC5hZGp1c3RlZFRleHRTaXplLHRoaXMuYWRqdXN0ZWRJY29uU2l6ZT10LmFkanVzdGVkSWNvblNpemUsdGhpcy5mb250c3RhY2s9dC5mb250c3RhY2t9ZnVuY3Rpb24gaSh0LGUscixuLGksbyxhLHMsbCx1LGMpe3JldHVybiB0LmVtcGxhY2VCYWNrKGUscixNYXRoLnJvdW5kKDY0Km4pLE1hdGgucm91bmQoNjQqaSksby80LGEvNCwxMCoodXx8MCksYywxMCooc3x8MCksMTAqTWF0aC5taW4obHx8MjUsMjUpKX12YXIgbz10KCJwb2ludC1nZW9tZXRyeSIpLGE9dCgiLi4vYnVja2V0Iikscz10KCIuLi8uLi9zeW1ib2wvYW5jaG9yIiksbD10KCIuLi8uLi9zeW1ib2wvZ2V0X2FuY2hvcnMiKSx1PXQoIi4uLy4uL3V0aWwvdG9rZW4iKSxjPXQoIi4uLy4uL3N5bWJvbC9xdWFkcyIpLGg9dCgiLi4vLi4vc3ltYm9sL3NoYXBpbmciKSxmPXQoIi4uLy4uL3N5bWJvbC9yZXNvbHZlX3RleHQiKSxwPXQoIi4uLy4uL3N5bWJvbC9tZXJnZWxpbmVzIiksZD10KCIuLi8uLi9zeW1ib2wvY2xpcF9saW5lIiksbT10KCIuLi8uLi91dGlsL3V0aWwiKSxnPXQoIi4uL2xvYWRfZ2VvbWV0cnkiKSx2PXQoIi4uLy4uL3N5bWJvbC9jb2xsaXNpb25fZmVhdHVyZSIpLHk9aC5zaGFwZVRleHQsYj1oLnNoYXBlSWNvbix4PWMuZ2V0R2x5cGhRdWFkcyxfPWMuZ2V0SWNvblF1YWRzLHc9YS5FWFRFTlQ7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9bS5pbmhlcml0KGEse30pLG4ucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PWEucHJvdG90eXBlLnNlcmlhbGl6ZS5hcHBseSh0aGlzKTtyZXR1cm4gdC5zZGZJY29ucz10aGlzLnNkZkljb25zLHQuaWNvbnNOZWVkTGluZWFyPXRoaXMuaWNvbnNOZWVkTGluZWFyLHQuYWRqdXN0ZWRUZXh0U2l6ZT10aGlzLmFkanVzdGVkVGV4dFNpemUsdC5hZGp1c3RlZEljb25TaXplPXRoaXMuYWRqdXN0ZWRJY29uU2l6ZSx0LmZvbnRzdGFjaz10aGlzLmZvbnRzdGFjayx0fTt2YXIgTT1uZXcgYS5WZXJ0ZXhBcnJheVR5cGUoW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In0se25hbWU6ImFfb2Zmc2V0Iixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV90ZXh0dXJlX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IlVpbnQxNiJ9LHtuYW1lOiJhX2RhdGEiLGNvbXBvbmVudHM6NCx0eXBlOiJVaW50OCJ9XSksaz1uZXcgYS5FbGVtZW50QXJyYXlUeXBlO24ucHJvdG90eXBlLmFkZENvbGxpc2lvbkJveFZlcnRleD1mdW5jdGlvbih0LGUscixuLGkpe3JldHVybiB0LmVtcGxhY2VCYWNrKGUueCxlLnksTWF0aC5yb3VuZChyLngpLE1hdGgucm91bmQoci55KSwxMCpuLDEwKmkpfSxuLnByb3RvdHlwZS5wcm9ncmFtSW50ZXJmYWNlcz17Z2x5cGg6e2xheW91dFZlcnRleEFycmF5VHlwZTpNLGVsZW1lbnRBcnJheVR5cGU6a30saWNvbjp7bGF5b3V0VmVydGV4QXJyYXlUeXBlOk0sZWxlbWVudEFycmF5VHlwZTprfSxjb2xsaXNpb25Cb3g6e2xheW91dFZlcnRleEFycmF5VHlwZTpuZXcgYS5WZXJ0ZXhBcnJheVR5cGUoW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In0se25hbWU6ImFfZXh0cnVkZSIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In0se25hbWU6ImFfZGF0YSIsY29tcG9uZW50czoyLHR5cGU6IlVpbnQ4In1dKX19LG4ucHJvdG90eXBlLnBvcHVsYXRlQXJyYXlzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj17bGFzdEludGVnZXJab29tOjEvMCxsYXN0SW50ZWdlclpvb21UaW1lOjAsbGFzdFpvb206MH07dGhpcy5hZGp1c3RlZFRleHRNYXhTaXplPXRoaXMubGF5ZXIuZ2V0TGF5b3V0VmFsdWUoInRleHQtc2l6ZSIse3pvb206MTgsem9vbUhpc3Rvcnk6bn0pLHRoaXMuYWRqdXN0ZWRUZXh0U2l6ZT10aGlzLmxheWVyLmdldExheW91dFZhbHVlKCJ0ZXh0LXNpemUiLHt6b29tOnRoaXMuem9vbSsxLHpvb21IaXN0b3J5Om59KSx0aGlzLmFkanVzdGVkSWNvbk1heFNpemU9dGhpcy5sYXllci5nZXRMYXlvdXRWYWx1ZSgiaWNvbi1zaXplIix7em9vbToxOCx6b29tSGlzdG9yeTpufSksdGhpcy5hZGp1c3RlZEljb25TaXplPXRoaXMubGF5ZXIuZ2V0TGF5b3V0VmFsdWUoImljb24tc2l6ZSIse3pvb206dGhpcy56b29tKzEsem9vbUhpc3Rvcnk6bn0pO3ZhciBpPTUxMip0aGlzLm92ZXJzY2FsaW5nO3RoaXMudGlsZVBpeGVsUmF0aW89dy9pLHRoaXMuY29tcGFyZVRleHQ9e30sdGhpcy5pY29uc05lZWRMaW5lYXI9ITEsdGhpcy5zeW1ib2xJbnN0YW5jZXNTdGFydEluZGV4PXRoaXMuc3ltYm9sSW5zdGFuY2VzQXJyYXkubGVuZ3RoO3ZhciBvPXRoaXMubGF5ZXIubGF5b3V0LGE9dGhpcy5mZWF0dXJlcyxzPXRoaXMudGV4dEZlYXR1cmVzLGw9LjUsYz0uNTtzd2l0Y2gob1sidGV4dC1hbmNob3IiXSl7Y2FzZSJyaWdodCI6Y2FzZSJ0b3AtcmlnaHQiOmNhc2UiYm90dG9tLXJpZ2h0IjpsPTE7YnJlYWs7Y2FzZSJsZWZ0IjpjYXNlInRvcC1sZWZ0IjpjYXNlImJvdHRvbS1sZWZ0IjpsPTB9c3dpdGNoKG9bInRleHQtYW5jaG9yIl0pe2Nhc2UiYm90dG9tIjpjYXNlImJvdHRvbS1yaWdodCI6Y2FzZSJib3R0b20tbGVmdCI6Yz0xO2JyZWFrO2Nhc2UidG9wIjpjYXNlInRvcC1yaWdodCI6Y2FzZSJ0b3AtbGVmdCI6Yz0wfWZvcih2YXIgaD0icmlnaHQiPT09b1sidGV4dC1qdXN0aWZ5Il0/MToibGVmdCI9PT1vWyJ0ZXh0LWp1c3RpZnkiXT8wOi41LGY9MjQsZD1vWyJ0ZXh0LWxpbmUtaGVpZ2h0Il0qZix2PSJsaW5lIiE9PW9bInN5bWJvbC1wbGFjZW1lbnQiXT9vWyJ0ZXh0LW1heC13aWR0aCJdKmY6MCx4PW9bInRleHQtbGV0dGVyLXNwYWNpbmciXSpmLF89W29bInRleHQtb2Zmc2V0Il1bMF0qZixvWyJ0ZXh0LW9mZnNldCJdWzFdKmZdLE09dGhpcy5mb250c3RhY2s9b1sidGV4dC1mb250Il0uam9pbigiLCIpLGs9W10sQT0wO0E8YS5sZW5ndGg7QSsrKWsucHVzaChnKGFbQV0pKTtpZigibGluZSI9PT1vWyJzeW1ib2wtcGxhY2VtZW50Il0pe3ZhciBUPXAoYSxzLGspO2s9VC5nZW9tZXRyaWVzLGE9VC5mZWF0dXJlcyxzPVQudGV4dEZlYXR1cmVzfWZvcih2YXIgRSxTLEw9MDtMPGEubGVuZ3RoO0wrKylpZihrW0xdKXtpZihFPXNbTF0/eShzW0xdLGVbTV0sdixkLGwsYyxoLHgsXyk6bnVsbCxvWyJpY29uLWltYWdlIl0pe3ZhciB6PXUoYVtMXS5wcm9wZXJ0aWVzLG9bImljb24taW1hZ2UiXSksST1yW3pdO1M9YihJLG8pLEkmJih2b2lkIDA9PT10aGlzLnNkZkljb25zP3RoaXMuc2RmSWNvbnM9SS5zZGY6dGhpcy5zZGZJY29ucyE9PUkuc2RmJiZtLndhcm5PbmNlKCJTdHlsZSBzaGVldCB3YXJuaW5nOiBDYW5ub3QgbWl4IFNERiBhbmQgbm9uLVNERiBpY29ucyBpbiBvbmUgYnVmZmVyIiksMSE9PUkucGl4ZWxSYXRpbz90aGlzLmljb25zTmVlZExpbmVhcj0hMDowPT09b1siaWNvbi1yb3RhdGUiXSYmdGhpcy5sYXllci5pc0xheW91dFZhbHVlRmVhdHVyZUNvbnN0YW50KCJpY29uLXJvdGF0ZSIpfHwodGhpcy5pY29uc05lZWRMaW5lYXI9ITApKX1lbHNlIFM9bnVsbDsoRXx8UykmJnRoaXMuYWRkRmVhdHVyZShrW0xdLEUsUyxhW0xdKX10aGlzLnN5bWJvbEluc3RhbmNlc0VuZEluZGV4PXRoaXMuc3ltYm9sSW5zdGFuY2VzQXJyYXkubGVuZ3RoLHRoaXMucGxhY2VGZWF0dXJlcyh0LHRoaXMuc2hvd0NvbGxpc2lvbkJveGVzKSx0aGlzLnRyaW1BcnJheXMoKX0sbi5wcm90b3R5cGUuYWRkRmVhdHVyZT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxheWVyLmxheW91dCxvPTI0LGE9dGhpcy5hZGp1c3RlZFRleHRTaXplL28sdT12b2lkIDAhPT10aGlzLmFkanVzdGVkVGV4dE1heFNpemU/dGhpcy5hZGp1c3RlZFRleHRNYXhTaXplOnRoaXMuYWRqdXN0ZWRUZXh0U2l6ZSxjPXRoaXMudGlsZVBpeGVsUmF0aW8qYSxoPXRoaXMudGlsZVBpeGVsUmF0aW8qdS9vLGY9dGhpcy50aWxlUGl4ZWxSYXRpbyp0aGlzLmFkanVzdGVkSWNvblNpemUscD10aGlzLnRpbGVQaXhlbFJhdGlvKmlbInN5bWJvbC1zcGFjaW5nIl0sbT1pWyJzeW1ib2wtYXZvaWQtZWRnZXMiXSxnPWlbInRleHQtcGFkZGluZyJdKnRoaXMudGlsZVBpeGVsUmF0aW8sdj1pWyJpY29uLXBhZGRpbmciXSp0aGlzLnRpbGVQaXhlbFJhdGlvLHk9aVsidGV4dC1tYXgtYW5nbGUiXS8xODAqTWF0aC5QSSxiPSJtYXAiPT09aVsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiXSYmImxpbmUiPT09aVsic3ltYm9sLXBsYWNlbWVudCJdLHg9Im1hcCI9PT1pWyJpY29uLXJvdGF0aW9uLWFsaWdubWVudCJdJiYibGluZSI9PT1pWyJzeW1ib2wtcGxhY2VtZW50Il0sXz1pWyJ0ZXh0LWFsbG93LW92ZXJsYXAiXXx8aVsiaWNvbi1hbGxvdy1vdmVybGFwIl18fGlbInRleHQtaWdub3JlLXBsYWNlbWVudCJdfHxpWyJpY29uLWlnbm9yZS1wbGFjZW1lbnQiXSxNPSJsaW5lIj09PWlbInN5bWJvbC1wbGFjZW1lbnQiXSxrPXAvMjtNJiYodD1kKHQsMCwwLHcsdykpO2Zvcih2YXIgQT0wO0E8dC5sZW5ndGg7QSsrKXt2YXIgVCxFPXRbQV07VD1NP2woRSxwLHksZSxyLG8saCx0aGlzLm92ZXJzY2FsaW5nLHcpOltuZXcgcyhFWzBdLngsRVswXS55LDApXTtmb3IodmFyIFM9MCxMPVQubGVuZ3RoO0w+UztTKyspe3ZhciB6PVRbU107aWYoIShlJiZNJiZ0aGlzLmFuY2hvcklzVG9vQ2xvc2UoZS50ZXh0LGsseikpKXt2YXIgST0hKHoueDwwfHx6Lng+d3x8ei55PDB8fHoueT53KTtpZighbXx8SSl7dmFyIFA9SXx8Xzt0aGlzLmFkZFN5bWJvbEluc3RhbmNlKHosRSxlLHIsdGhpcy5sYXllcixQLHRoaXMuc3ltYm9sSW5zdGFuY2VzQXJyYXkubGVuZ3RoLHRoaXMuY29sbGlzaW9uQm94QXJyYXksbi5pbmRleCx0aGlzLnNvdXJjZUxheWVySW5kZXgsdGhpcy5pbmRleCxjLGcsYixmLHYseCx7em9vbTp0aGlzLnpvb219LG4ucHJvcGVydGllcyl9fX19fSxuLnByb3RvdHlwZS5hbmNob3JJc1Rvb0Nsb3NlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmNvbXBhcmVUZXh0O2lmKHQgaW4gbil7Zm9yKHZhciBpPW5bdF0sbz1pLmxlbmd0aC0xO28+PTA7by0tKWlmKHIuZGlzdChpW29dKTxlKXJldHVybiEwfWVsc2Ugblt0XT1bXTtyZXR1cm4gblt0XS5wdXNoKHIpLCExfSxuLnByb3RvdHlwZS5wbGFjZUZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7dGhpcy5yZWNhbGN1bGF0ZVN0eWxlTGF5ZXJzKCksdGhpcy5jcmVhdGVBcnJheXMoKTt2YXIgcj10aGlzLmxheWVyLmxheW91dCxuPXQubWF4U2NhbGUsaT0ibWFwIj09PXJbInRleHQtcm90YXRpb24tYWxpZ25tZW50Il0mJiJsaW5lIj09PXJbInN5bWJvbC1wbGFjZW1lbnQiXSxvPSJtYXAiPT09clsiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiXSYmImxpbmUiPT09clsic3ltYm9sLXBsYWNlbWVudCJdLGE9clsidGV4dC1hbGxvdy1vdmVybGFwIl18fHJbImljb24tYWxsb3ctb3ZlcmxhcCJdfHxyWyJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiXXx8clsiaWNvbi1pZ25vcmUtcGxhY2VtZW50Il07aWYoYSl7dmFyIHM9dGhpcy5zeW1ib2xJbnN0YW5jZXNBcnJheS50b0FycmF5KHRoaXMuc3ltYm9sSW5zdGFuY2VzU3RhcnRJbmRleCx0aGlzLnN5bWJvbEluc3RhbmNlc0VuZEluZGV4KSxsPXQuYW5nbGUsdT1NYXRoLnNpbihsKSxjPU1hdGguY29zKGwpO3RoaXMuc29ydGVkU3ltYm9sSW5zdGFuY2VzPXMuc29ydChmdW5jdGlvbih0LGUpe3ZhciByPXUqdC5hbmNob3JQb2ludFgrYyp0LmFuY2hvclBvaW50WXwwLG49dSplLmFuY2hvclBvaW50WCtjKmUuYW5jaG9yUG9pbnRZfDA7cmV0dXJuIHItbnx8ZS5pbmRleC10LmluZGV4fSl9Zm9yKHZhciBoPXRoaXMuc3ltYm9sSW5zdGFuY2VzU3RhcnRJbmRleDtoPHRoaXMuc3ltYm9sSW5zdGFuY2VzRW5kSW5kZXg7aCsrKXt2YXIgZj10aGlzLnNvcnRlZFN5bWJvbEluc3RhbmNlcz90aGlzLnNvcnRlZFN5bWJvbEluc3RhbmNlc1toLXRoaXMuc3ltYm9sSW5zdGFuY2VzU3RhcnRJbmRleF06dGhpcy5zeW1ib2xJbnN0YW5jZXNBcnJheS5nZXQoaCkscD17Ym94U3RhcnRJbmRleDpmLnRleHRCb3hTdGFydEluZGV4LGJveEVuZEluZGV4OmYudGV4dEJveEVuZEluZGV4fSxkPXtib3hTdGFydEluZGV4OmYuaWNvbkJveFN0YXJ0SW5kZXgsYm94RW5kSW5kZXg6Zi5pY29uQm94RW5kSW5kZXh9LG09IShmLnRleHRCb3hTdGFydEluZGV4PT09Zi50ZXh0Qm94RW5kSW5kZXgpLGc9IShmLmljb25Cb3hTdGFydEluZGV4PT09Zi5pY29uQm94RW5kSW5kZXgpLHY9clsidGV4dC1vcHRpb25hbCJdfHwhbSx5PXJbImljb24tb3B0aW9uYWwiXXx8IWcsYj1tP3QucGxhY2VDb2xsaXNpb25GZWF0dXJlKHAsclsidGV4dC1hbGxvdy1vdmVybGFwIl0sclsic3ltYm9sLWF2b2lkLWVkZ2VzIl0pOnQubWluU2NhbGUseD1nP3QucGxhY2VDb2xsaXNpb25GZWF0dXJlKGQsclsiaWNvbi1hbGxvdy1vdmVybGFwIl0sclsic3ltYm9sLWF2b2lkLWVkZ2VzIl0pOnQubWluU2NhbGU7dnx8eT8heSYmYj9iPU1hdGgubWF4KHgsYik6IXYmJngmJih4PU1hdGgubWF4KHgsYikpOng9Yj1NYXRoLm1heCh4LGIpLG0mJih0Lmluc2VydENvbGxpc2lvbkZlYXR1cmUocCxiLHJbInRleHQtaWdub3JlLXBsYWNlbWVudCJdKSxuPj1iJiZ0aGlzLmFkZFN5bWJvbHMoImdseXBoIixmLmdseXBoUXVhZFN0YXJ0SW5kZXgsZi5nbHlwaFF1YWRFbmRJbmRleCxiLHJbInRleHQta2VlcC11cHJpZ2h0Il0saSx0LmFuZ2xlKSksZyYmKHQuaW5zZXJ0Q29sbGlzaW9uRmVhdHVyZShkLHgsclsiaWNvbi1pZ25vcmUtcGxhY2VtZW50Il0pLG4+PXgmJnRoaXMuYWRkU3ltYm9scygiaWNvbiIsZi5pY29uUXVhZFN0YXJ0SW5kZXgsZi5pY29uUXVhZEVuZEluZGV4LHgsclsiaWNvbi1rZWVwLXVwcmlnaHQiXSxvLHQuYW5nbGUpKX1lJiZ0aGlzLmFkZFRvRGVidWdCdWZmZXJzKHQpfSxuLnByb3RvdHlwZS5hZGRTeW1ib2xzPWZ1bmN0aW9uKHQsZSxyLG4sbyxhLHMpe2Zvcih2YXIgbD10aGlzLnByZXBhcmVBcnJheUdyb3VwKHQsNCooci1lKSksdT1sLmVsZW1lbnRBcnJheSxjPWwubGF5b3V0VmVydGV4QXJyYXksaD10aGlzLnpvb20sZj1NYXRoLm1heChNYXRoLmxvZyhuKS9NYXRoLkxOMitoLDApLHA9ZTtyPnA7cCsrKXt2YXIgZD10aGlzLnN5bWJvbFF1YWRzQXJyYXkuZ2V0KHApLlN5bWJvbFF1YWQsbT0oZC5hbmNob3JBbmdsZStzK01hdGguUEkpJSgyKk1hdGguUEkpO2lmKCEobyYmYSYmKG08PU1hdGguUEkvMnx8bT4zKk1hdGguUEkvMikpKXt2YXIgZz1kLnRsLHY9ZC50cix5PWQuYmwsYj1kLmJyLHg9ZC50ZXgsXz1kLmFuY2hvclBvaW50LHc9TWF0aC5tYXgoaCtNYXRoLmxvZyhkLm1pblNjYWxlKS9NYXRoLkxOMixmKSxNPU1hdGgubWluKGgrTWF0aC5sb2coZC5tYXhTY2FsZSkvTWF0aC5MTjIsMjUpO2lmKCEodz49TSkpe3c9PT1mJiYodz0wKTt2YXIgaz1NYXRoLnJvdW5kKGQuZ2x5cGhBbmdsZS8oMipNYXRoLlBJKSoyNTYpLEE9aShjLF8ueCxfLnksZy54LGcueSx4LngseC55LHcsTSxmLGspO2koYyxfLngsXy55LHYueCx2LnkseC54K3gudyx4LnksdyxNLGYsayksaShjLF8ueCxfLnkseS54LHkueSx4LngseC55K3guaCx3LE0sZixrKSxpKGMsXy54LF8ueSxiLngsYi55LHgueCt4LncseC55K3guaCx3LE0sZixrKSx1LmVtcGxhY2VCYWNrKEEsQSsxLEErMiksdS5lbXBsYWNlQmFjayhBKzEsQSsyLEErMyl9fX19LG4ucHJvdG90eXBlLnVwZGF0ZUljb25zPWZ1bmN0aW9uKHQpe3RoaXMucmVjYWxjdWxhdGVTdHlsZUxheWVycygpO3ZhciBlPXRoaXMubGF5ZXIubGF5b3V0WyJpY29uLWltYWdlIl07aWYoZSlmb3IodmFyIHI9MDtyPHRoaXMuZmVhdHVyZXMubGVuZ3RoO3IrKyl7dmFyIG49dSh0aGlzLmZlYXR1cmVzW3JdLnByb3BlcnRpZXMsZSk7biYmKHRbbl09ITApfX0sbi5wcm90b3R5cGUudXBkYXRlRm9udD1mdW5jdGlvbih0KXt0aGlzLnJlY2FsY3VsYXRlU3R5bGVMYXllcnMoKTt2YXIgZT10aGlzLmxheWVyLmxheW91dFsidGV4dC1mb250Il0scj10W2VdPXRbZV18fHt9O3RoaXMudGV4dEZlYXR1cmVzPWYodGhpcy5mZWF0dXJlcyx0aGlzLmxheWVyLmxheW91dCxyKX0sbi5wcm90b3R5cGUuYWRkVG9EZWJ1Z0J1ZmZlcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMucHJlcGFyZUFycmF5R3JvdXAoImNvbGxpc2lvbkJveCIsMCkscj1lLmxheW91dFZlcnRleEFycmF5LG49LXQuYW5nbGUsaT10LnlTdHJldGNoLGE9dGhpcy5zeW1ib2xJbnN0YW5jZXNTdGFydEluZGV4O2E8dGhpcy5zeW1ib2xJbnN0YW5jZXNFbmRJbmRleDthKyspe3ZhciBzPXRoaXMuc3ltYm9sSW5zdGFuY2VzQXJyYXkuZ2V0KGEpO3MudGV4dENvbGxpc2lvbkZlYXR1cmU9e2JveFN0YXJ0SW5kZXg6cy50ZXh0Qm94U3RhcnRJbmRleCxib3hFbmRJbmRleDpzLnRleHRCb3hFbmRJbmRleH0scy5pY29uQ29sbGlzaW9uRmVhdHVyZT17Ym94U3RhcnRJbmRleDpzLmljb25Cb3hTdGFydEluZGV4LGJveEVuZEluZGV4OnMuaWNvbkJveEVuZEluZGV4fTtmb3IodmFyIGw9MDsyPmw7bCsrKXt2YXIgdT1zWzA9PT1sPyJ0ZXh0Q29sbGlzaW9uRmVhdHVyZSI6Imljb25Db2xsaXNpb25GZWF0dXJlIl07aWYodSlmb3IodmFyIGM9dS5ib3hTdGFydEluZGV4O2M8dS5ib3hFbmRJbmRleDtjKyspe3ZhciBoPXRoaXMuY29sbGlzaW9uQm94QXJyYXkuZ2V0KGMpLGY9aC5hbmNob3JQb2ludCxwPW5ldyBvKGgueDEsaC55MSppKS5fcm90YXRlKG4pLGQ9bmV3IG8oaC54MixoLnkxKmkpLl9yb3RhdGUobiksbT1uZXcgbyhoLngxLGgueTIqaSkuX3JvdGF0ZShuKSxnPW5ldyBvKGgueDIsaC55MippKS5fcm90YXRlKG4pLHY9TWF0aC5tYXgoMCxNYXRoLm1pbigyNSx0aGlzLnpvb20rTWF0aC5sb2coaC5tYXhTY2FsZSkvTWF0aC5MTjIpKSx5PU1hdGgubWF4KDAsTWF0aC5taW4oMjUsdGhpcy56b29tK01hdGgubG9nKGgucGxhY2VtZW50U2NhbGUpL01hdGguTE4yKSk7dGhpcy5hZGRDb2xsaXNpb25Cb3hWZXJ0ZXgocixmLHAsdix5KSx0aGlzLmFkZENvbGxpc2lvbkJveFZlcnRleChyLGYsZCx2LHkpLHRoaXMuYWRkQ29sbGlzaW9uQm94VmVydGV4KHIsZixkLHYseSksdGhpcy5hZGRDb2xsaXNpb25Cb3hWZXJ0ZXgocixmLGcsdix5KSx0aGlzLmFkZENvbGxpc2lvbkJveFZlcnRleChyLGYsZyx2LHkpLHRoaXMuYWRkQ29sbGlzaW9uQm94VmVydGV4KHIsZixtLHYseSksdGhpcy5hZGRDb2xsaXNpb25Cb3hWZXJ0ZXgocixmLG0sdix5KSx0aGlzLmFkZENvbGxpc2lvbkJveFZlcnRleChyLGYscCx2LHkpfX19fSxuLnByb3RvdHlwZS5hZGRTeW1ib2xJbnN0YW5jZT1mdW5jdGlvbih0LGUscixuLGksbyxhLHMsbCx1LGMsaCxmLHAsZCxtLGcseSxiKXt2YXIgdyxNLGssQSxULEUsUyxMO2lmKHImJihTPW8/eCh0LHIsaCxlLGkscCk6W10sVD1uZXcgdihzLGUsdCxsLHUsYyxyLGgsZixwLCExKSksdz10aGlzLnN5bWJvbFF1YWRzQXJyYXkubGVuZ3RoLFMmJlMubGVuZ3RoKWZvcih2YXIgej0wO3o8Uy5sZW5ndGg7eisrKXRoaXMuYWRkU3ltYm9sUXVhZChTW3pdKTtNPXRoaXMuc3ltYm9sUXVhZHNBcnJheS5sZW5ndGg7dmFyIEk9VD9ULmJveFN0YXJ0SW5kZXg6dGhpcy5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgsUD1UP1QuYm94RW5kSW5kZXg6dGhpcy5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGg7biYmKEw9bz9fKHQsbixkLGUsaSxnLHIseSxiKTpbXSxFPW5ldyB2KHMsZSx0LGwsdSxjLG4sZCxtLGcsITApKSxrPXRoaXMuc3ltYm9sUXVhZHNBcnJheS5sZW5ndGgsTCYmMT09PUwubGVuZ3RoJiZ0aGlzLmFkZFN5bWJvbFF1YWQoTFswXSksQT10aGlzLnN5bWJvbFF1YWRzQXJyYXkubGVuZ3RoO3ZhciBDPUU/RS5ib3hTdGFydEluZGV4OnRoaXMuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoLFI9RT9FLmJveEVuZEluZGV4OnRoaXMuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoO3JldHVybiB0aGlzLnN5bWJvbEluc3RhbmNlc0FycmF5LmVtcGxhY2VCYWNrKEksUCxDLFIsdyxNLGssQSx0LngsdC55LGEpfSxuLnByb3RvdHlwZS5hZGRTeW1ib2xRdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN5bWJvbFF1YWRzQXJyYXkuZW1wbGFjZUJhY2sodC5hbmNob3JQb2ludC54LHQuYW5jaG9yUG9pbnQueSx0LnRsLngsdC50bC55LHQudHIueCx0LnRyLnksdC5ibC54LHQuYmwueSx0LmJyLngsdC5ici55LHQudGV4LmgsdC50ZXgudyx0LnRleC54LHQudGV4LnksdC5hbmNob3JBbmdsZSx0LmdseXBoQW5nbGUsdC5tYXhTY2FsZSx0Lm1pblNjYWxlKX19LHsiLi4vLi4vc3ltYm9sL2FuY2hvciI6MzE1LCIuLi8uLi9zeW1ib2wvY2xpcF9saW5lIjozMTcsIi4uLy4uL3N5bWJvbC9jb2xsaXNpb25fZmVhdHVyZSI6MzE5LCIuLi8uLi9zeW1ib2wvZ2V0X2FuY2hvcnMiOjMyMSwiLi4vLi4vc3ltYm9sL21lcmdlbGluZXMiOjMyNCwiLi4vLi4vc3ltYm9sL3F1YWRzIjozMjUsIi4uLy4uL3N5bWJvbC9yZXNvbHZlX3RleHQiOjMyNiwiLi4vLi4vc3ltYm9sL3NoYXBpbmciOjMyNywiLi4vLi4vdXRpbC90b2tlbiI6MzY1LCIuLi8uLi91dGlsL3V0aWwiOjM2NiwiLi4vYnVja2V0IjoyNTMsIi4uL2xvYWRfZ2VvbWV0cnkiOjI2MSwicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDI1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt0aGlzLmFycmF5QnVmZmVyPXQuYXJyYXlCdWZmZXIsdGhpcy5sZW5ndGg9dC5sZW5ndGgsdGhpcy5hdHRyaWJ1dGVzPWUubWVtYmVycyx0aGlzLml0ZW1TaXplPWUuYnl0ZXNQZXJFbGVtZW50LHRoaXMudHlwZT1yLHRoaXMuYXJyYXlUeXBlPWV9ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0KXt2YXIgZT10W3RoaXMudHlwZV07dGhpcy5idWZmZXI/dC5iaW5kQnVmZmVyKGUsdGhpcy5idWZmZXIpOih0aGlzLmJ1ZmZlcj10LmNyZWF0ZUJ1ZmZlcigpLHQuYmluZEJ1ZmZlcihlLHRoaXMuYnVmZmVyKSx0LmJ1ZmZlckRhdGEoZSx0aGlzLmFycmF5QnVmZmVyLHQuU1RBVElDX0RSQVcpLHRoaXMuYXJyYXlCdWZmZXI9bnVsbCl9O3ZhciBpPXtJbnQ4OiJCWVRFIixVaW50ODoiVU5TSUdORURfQllURSIsSW50MTY6IlNIT1JUIixVaW50MTY6IlVOU0lHTkVEX1NIT1JUIn07bi5wcm90b3R5cGUuc2V0VmVydGV4QXR0cmliUG9pbnRlcnM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPHRoaXMuYXR0cmlidXRlcy5sZW5ndGg7cisrKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXNbcl0sbz1lW24ubmFtZV07dm9pZCAwIT09byYmdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKG8sbi5jb21wb25lbnRzLHRbaVtuLnR5cGVdXSwhMSx0aGlzLmFycmF5VHlwZS5ieXRlc1BlckVsZW1lbnQsbi5vZmZzZXQpfX0sbi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbih0KXt0aGlzLmJ1ZmZlciYmdC5kZWxldGVCdWZmZXIodGhpcy5idWZmZXIpfSxuLkJ1ZmZlclR5cGU9e1ZFUlRFWDoiQVJSQVlfQlVGRkVSIixFTEVNRU5UOiJFTEVNRU5UX0FSUkFZX0JVRkZFUiJ9fSx7fV0sMjU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj1uZXcgbyh0LmxheW91dFZlcnRleEFycmF5LGUubGF5b3V0VmVydGV4QXJyYXlUeXBlLG8uQnVmZmVyVHlwZS5WRVJURVgpLHQuZWxlbWVudEFycmF5JiYodGhpcy5lbGVtZW50QnVmZmVyPW5ldyBvKHQuZWxlbWVudEFycmF5LGUuZWxlbWVudEFycmF5VHlwZSxvLkJ1ZmZlclR5cGUuRUxFTUVOVCkpO3ZhciByLG49dGhpcy52YW9zPXt9O3QuZWxlbWVudEFycmF5MiYmKHRoaXMuZWxlbWVudEJ1ZmZlcjI9bmV3IG8odC5lbGVtZW50QXJyYXkyLGUuZWxlbWVudEFycmF5VHlwZTIsby5CdWZmZXJUeXBlLkVMRU1FTlQpLHI9dGhpcy5zZWNvbmRWYW9zPXt9KSx0aGlzLnBhaW50VmVydGV4QnVmZmVycz1pLm1hcE9iamVjdCh0LnBhaW50VmVydGV4QXJyYXlzLGZ1bmN0aW9uKGkscyl7cmV0dXJuIG5bc109bmV3IGEsdC5lbGVtZW50QXJyYXkyJiYocltzXT1uZXcgYSksbmV3IG8oaSxlLnBhaW50VmVydGV4QXJyYXlUeXBlc1tzXSxvLkJ1ZmZlclR5cGUuVkVSVEVYKX0pfXZhciBpPXQoIi4uL3V0aWwvdXRpbCIpLG89dCgiLi9idWZmZXIiKSxhPXQoIi4uL3JlbmRlci92ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbih0KXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KHQpLHRoaXMuZWxlbWVudEJ1ZmZlciYmdGhpcy5lbGVtZW50QnVmZmVyLmRlc3Ryb3kodCksdGhpcy5lbGVtZW50QnVmZmVyMiYmdGhpcy5lbGVtZW50QnVmZmVyMi5kZXN0cm95KHQpO2Zvcih2YXIgZSBpbiB0aGlzLnBhaW50VmVydGV4QnVmZmVycyl0aGlzLnBhaW50VmVydGV4QnVmZmVyc1tlXS5kZXN0cm95KHQpO2Zvcih2YXIgciBpbiB0aGlzLnZhb3MpdGhpcy52YW9zW3JdLmRlc3Ryb3kodCk7Zm9yKHZhciBuIGluIHRoaXMuc2Vjb25kVmFvcyl0aGlzLnNlY29uZFZhb3Nbbl0uZGVzdHJveSh0KX19LHsiLi4vcmVuZGVyL3ZlcnRleF9hcnJheV9vYmplY3QiOjI4MSwiLi4vdXRpbC91dGlsIjozNjYsIi4vYnVmZmVyIjoyNTh9XSwyNjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7aWYodC5ncmlkKXt2YXIgbj10LGk9ZTt0PW4uY29vcmQsZT1uLm92ZXJzY2FsaW5nLHRoaXMuZ3JpZD1uZXcgZChuLmdyaWQpLHRoaXMuZmVhdHVyZUluZGV4QXJyYXk9bmV3IGsobi5mZWF0dXJlSW5kZXhBcnJheSksdGhpcy5yYXdUaWxlRGF0YT1pLHRoaXMuYnVja2V0TGF5ZXJJRHM9bi5idWNrZXRMYXllcklEc31lbHNlIHRoaXMuZ3JpZD1uZXcgZChoLDE2LDApLHRoaXMuZmVhdHVyZUluZGV4QXJyYXk9bmV3IGs7dGhpcy5jb29yZD10LHRoaXMub3ZlcnNjYWxpbmc9ZSx0aGlzLng9dC54LHRoaXMueT10LnksdGhpcy56PXQuei1NYXRoLmxvZyhlKS9NYXRoLkxOMix0aGlzLnNldENvbGxpc2lvblRpbGUocil9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gTWF0aC5zcXJ0KHRbMF0qdFswXSt0WzFdKnRbMV0pfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZS10fWZ1bmN0aW9uIGEodCl7cmV0dXJuIHRbImxpbmUtZ2FwLXdpZHRoIl0+MD90WyJsaW5lLWdhcC13aWR0aCJdKzIqdFsibGluZS13aWR0aCJdOnRbImxpbmUtd2lkdGgiXX1mdW5jdGlvbiBzKHQsZSxyLG4saSl7aWYoIWVbMF0mJiFlWzFdKXJldHVybiB0O2U9dS5jb252ZXJ0KGUpLCJ2aWV3cG9ydCI9PT1yJiZlLl9yb3RhdGUoLW4pO2Zvcih2YXIgbz1bXSxhPTA7YTx0Lmxlbmd0aDthKyspe2Zvcih2YXIgcz10W2FdLGw9W10sYz0wO2M8cy5sZW5ndGg7YysrKWwucHVzaChzW2NdLnN1YihlLl9tdWx0KGkpKSk7by5wdXNoKGwpfXJldHVybiBvfWZ1bmN0aW9uIGwodCxlKXtmb3IodmFyIHI9W10sbj1uZXcgdSgwLDApLGk9MDtpPHQubGVuZ3RoO2krKyl7Zm9yKHZhciBvPXRbaV0sYT1bXSxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bcy0xXSxjPW9bc10saD1vW3MrMV0sZj0wPT09cz9uOmMuc3ViKGwpLl91bml0KCkuX3BlcnAoKSxwPXM9PT1vLmxlbmd0aC0xP246aC5zdWIoYykuX3VuaXQoKS5fcGVycCgpLGQ9Zi5fYWRkKHApLl91bml0KCksbT1kLngqcC54K2QueSpwLnk7ZC5fbXVsdCgxL20pLGEucHVzaChkLl9tdWx0KGUpLl9hZGQoYykpfXIucHVzaChhKX1yZXR1cm4gcn12YXIgdT10KCJwb2ludC1nZW9tZXRyeSIpLGM9dCgiLi9sb2FkX2dlb21ldHJ5IiksaD10KCIuL2J1Y2tldCIpLkVYVEVOVCxmPXQoImZlYXR1cmUtZmlsdGVyIikscD10KCIuLi91dGlsL3N0cnVjdF9hcnJheSIpLGQ9dCgiZ3JpZC1pbmRleCIpLG09dCgiLi4vdXRpbC9kaWN0aW9uYXJ5X2NvZGVyIiksZz10KCJ2ZWN0b3ItdGlsZSIpLHY9dCgicGJmIikseT10KCIuLi91dGlsL3ZlY3RvcnRpbGVfdG9fZ2VvanNvbiIpLGI9dCgiLi4vdXRpbC91dGlsIikuYXJyYXlzSW50ZXJzZWN0LHg9dCgiLi4vdXRpbC9pbnRlcnNlY3Rpb25fdGVzdHMiKSxfPXgubXVsdGlQb2x5Z29uSW50ZXJzZWN0c0J1ZmZlcmVkTXVsdGlQb2ludCx3PXgubXVsdGlQb2x5Z29uSW50ZXJzZWN0c011bHRpUG9seWdvbixNPXgubXVsdGlQb2x5Z29uSW50ZXJzZWN0c0J1ZmZlcmVkTXVsdGlMaW5lLGs9bmV3IHAoe21lbWJlcnM6W3t0eXBlOiJVaW50MzIiLG5hbWU6ImZlYXR1cmVJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InNvdXJjZUxheWVySW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJidWNrZXRJbmRleCJ9XX0pO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmZlYXR1cmVJbmRleEFycmF5Lmxlbmd0aDt0aGlzLmZlYXR1cmVJbmRleEFycmF5LmVtcGxhY2VCYWNrKGUscixuKTtmb3IodmFyIG89Yyh0KSxhPTA7YTxvLmxlbmd0aDthKyspe2Zvcih2YXIgcz1vW2FdLGw9WzEvMCwxLzAsLSgxLzApLC0oMS8wKV0sdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgaD1zW3VdO2xbMF09TWF0aC5taW4obFswXSxoLngpLGxbMV09TWF0aC5taW4obFsxXSxoLnkpLGxbMl09TWF0aC5tYXgobFsyXSxoLngpLGxbM109TWF0aC5tYXgobFszXSxoLnkpfXRoaXMuZ3JpZC5pbnNlcnQoaSxsWzBdLGxbMV0sbFsyXSxsWzNdKX19LG4ucHJvdG90eXBlLnNldENvbGxpc2lvblRpbGU9ZnVuY3Rpb24odCl7dGhpcy5jb2xsaXNpb25UaWxlPXR9LG4ucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PXtjb29yZDp0aGlzLmNvb3JkLG92ZXJzY2FsaW5nOnRoaXMub3ZlcnNjYWxpbmcsZ3JpZDp0aGlzLmdyaWQudG9BcnJheUJ1ZmZlcigpLGZlYXR1cmVJbmRleEFycmF5OnRoaXMuZmVhdHVyZUluZGV4QXJyYXkuc2VyaWFsaXplKCksYnVja2V0TGF5ZXJJRHM6dGhpcy5idWNrZXRMYXllcklEc307cmV0dXJue2RhdGE6dCx0cmFuc2ZlcmFibGVzOlt0LmdyaWQsdC5mZWF0dXJlSW5kZXhBcnJheS5hcnJheUJ1ZmZlcl19fSxuLnByb3RvdHlwZS5xdWVyeT1mdW5jdGlvbih0LGUpe3RoaXMudnRMYXllcnN8fCh0aGlzLnZ0TGF5ZXJzPW5ldyBnLlZlY3RvclRpbGUobmV3IHYobmV3IFVpbnQ4QXJyYXkodGhpcy5yYXdUaWxlRGF0YSkpKS5sYXllcnMsdGhpcy5zb3VyY2VMYXllckNvZGVyPW5ldyBtKHRoaXMudnRMYXllcnM/T2JqZWN0LmtleXModGhpcy52dExheWVycykuc29ydCgpOlsiX2dlb2pzb25UaWxlTGF5ZXIiXSkpO3ZhciByPXt9LG49dC5wYXJhbXN8fHt9LHM9aC90LnRpbGVTaXplL3Quc2NhbGUsbD1mKG4uZmlsdGVyKSxjPTA7Zm9yKHZhciBwIGluIGUpe3ZhciBkPWVbcF0seT1kLnBhaW50LGI9MDsibGluZSI9PT1kLnR5cGU/Yj1hKHkpLzIrTWF0aC5hYnMoeVsibGluZS1vZmZzZXQiXSkraSh5WyJsaW5lLXRyYW5zbGF0ZSJdKToiZmlsbCI9PT1kLnR5cGU/Yj1pKHlbImZpbGwtdHJhbnNsYXRlIl0pOiJjaXJjbGUiPT09ZC50eXBlJiYoYj15WyJjaXJjbGUtcmFkaXVzIl0raSh5WyJjaXJjbGUtdHJhbnNsYXRlIl0pKSxjPU1hdGgubWF4KGMsYipzKX1mb3IodmFyIHg9dC5xdWVyeUdlb21ldHJ5Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB1KHQueCx0LnkpfSl9KSxfPTEvMCx3PTEvMCxNPS0oMS8wKSxrPS0oMS8wKSxBPTA7QTx4Lmxlbmd0aDtBKyspZm9yKHZhciBUPXhbQV0sRT0wO0U8VC5sZW5ndGg7RSsrKXt2YXIgUz1UW0VdO189TWF0aC5taW4oXyxTLngpLHc9TWF0aC5taW4odyxTLnkpLE09TWF0aC5tYXgoTSxTLngpLGs9TWF0aC5tYXgoayxTLnkpfXZhciBMPXRoaXMuZ3JpZC5xdWVyeShfLWMsdy1jLE0rYyxrK2MpO0wuc29ydChvKSx0aGlzLmZpbHRlck1hdGNoaW5nKHIsTCx0aGlzLmZlYXR1cmVJbmRleEFycmF5LHgsbCxuLmxheWVycyxlLHQuYmVhcmluZyxzKTt2YXIgej10aGlzLmNvbGxpc2lvblRpbGUucXVlcnlSZW5kZXJlZFN5bWJvbHMoXyx3LE0sayx0LnNjYWxlKTtyZXR1cm4gei5zb3J0KCksdGhpcy5maWx0ZXJNYXRjaGluZyhyLHosdGhpcy5jb2xsaXNpb25UaWxlLmNvbGxpc2lvbkJveEFycmF5LHgsbCxuLmxheWVycyxlLHQuYmVhcmluZyxzKSxyfSxuLnByb3RvdHlwZS5maWx0ZXJNYXRjaGluZz1mdW5jdGlvbih0LGUscixuLGksbyx1LGgsZil7Zm9yKHZhciBwLGQ9MDtkPGUubGVuZ3RoO2QrKyl7dmFyIG09ZVtkXTtpZihtIT09cCl7cD1tO3ZhciBnPXIuZ2V0KG0pLHY9dGhpcy5idWNrZXRMYXllcklEc1tnLmJ1Y2tldEluZGV4XTtpZighb3x8YihvLHYpKXt2YXIgeD10aGlzLnNvdXJjZUxheWVyQ29kZXIuZGVjb2RlKGcuc291cmNlTGF5ZXJJbmRleCksaz10aGlzLnZ0TGF5ZXJzW3hdLEE9ay5mZWF0dXJlKGcuZmVhdHVyZUluZGV4KTtpZihpKEEpKWZvcih2YXIgVD1udWxsLEU9MDtFPHYubGVuZ3RoO0UrKyl7dmFyIFM9dltFXTtpZighKG8mJm8uaW5kZXhPZihTKTwwKSl7dmFyIEw9dVtTXTtpZihMKXt2YXIgejtpZigic3ltYm9sIiE9PUwudHlwZSl7VHx8KFQ9YyhBKSk7dmFyIEk9TC5wYWludDtpZigibGluZSI9PT1MLnR5cGUpe3o9cyhuLElbImxpbmUtdHJhbnNsYXRlIl0sSVsibGluZS10cmFuc2xhdGUtYW5jaG9yIl0saCxmKTt2YXIgUD1hKEkpLzIqZjtpZihJWyJsaW5lLW9mZnNldCJdJiYoVD1sKFQsSVsibGluZS1vZmZzZXQiXSpmKSksIU0oeixULFApKWNvbnRpbnVlfWVsc2UgaWYoImZpbGwiPT09TC50eXBlKXtpZih6PXMobixJWyJmaWxsLXRyYW5zbGF0ZSJdLElbImZpbGwtdHJhbnNsYXRlLWFuY2hvciJdLGgsZiksIXcoeixUKSljb250aW51ZX1lbHNlIGlmKCJjaXJjbGUiPT09TC50eXBlKXt6PXMobixJWyJjaXJjbGUtdHJhbnNsYXRlIl0sSVsiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiXSxoLGYpO3ZhciBDPUlbImNpcmNsZS1yYWRpdXMiXSpmO2lmKCFfKHosVCxDKSljb250aW51ZX19dmFyIFI9bmV3IHkoQSx0aGlzLnosdGhpcy54LHRoaXMueSk7Ui5sYXllcj1MLnNlcmlhbGl6ZSh7aW5jbHVkZVJlZlByb3BlcnRpZXM6ITB9KTt2YXIgaj10W1NdO3ZvaWQgMD09PWomJihqPXRbU109W10pLGoucHVzaChSKX19fX19fX19LHsiLi4vdXRpbC9kaWN0aW9uYXJ5X2NvZGVyIjozNTYsIi4uL3V0aWwvaW50ZXJzZWN0aW9uX3Rlc3RzIjozNjEsIi4uL3V0aWwvc3RydWN0X2FycmF5IjozNjQsIi4uL3V0aWwvdXRpbCI6MzY2LCIuLi91dGlsL3ZlY3RvcnRpbGVfdG9fZ2VvanNvbiI6MzY3LCIuL2J1Y2tldCI6MjUzLCIuL2xvYWRfZ2VvbWV0cnkiOjI2MSwiZmVhdHVyZS1maWx0ZXIiOjM3MCwiZ3JpZC1pbmRleCI6MzkyLHBiZjo0MjIsInBvaW50LWdlb21ldHJ5Ijo0MjQsInZlY3Rvci10aWxlIjo0MzR9XSwyNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm57bWluOi0xKk1hdGgucG93KDIsdC0xKSxtYXg6TWF0aC5wb3coMix0LTEpLTF9fXZhciBpPXQoIi4uL3V0aWwvdXRpbCIpLG89dCgiLi9idWNrZXQiKS5FWFRFTlQsYT17MTU6bigxNSksMTY6bigxNil9O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1hW2V8fDE2XSxuPW8vdC5leHRlbnQscz10LmxvYWRHZW9tZXRyeSgpLGw9MDtsPHMubGVuZ3RoO2wrKylmb3IodmFyIHU9c1tsXSxjPTA7Yzx1Lmxlbmd0aDtjKyspe3ZhciBoPXVbY107aC54PU1hdGgucm91bmQoaC54Km4pLGgueT1NYXRoLnJvdW5kKGgueSpuKSwoaC54PHIubWlufHxoLng+ci5tYXh8fGgueTxyLm1pbnx8aC55PnIubWF4KSYmaS53YXJuT25jZSgiR2VvbWV0cnkgZXhjZWVkcyBhbGxvd2VkIGV4dGVudCwgcmVkdWNlIHlvdXIgdmVjdG9yIHRpbGUgYnVmZmVyIHNpemUiKX1yZXR1cm4gc319LHsiLi4vdXRpbC91dGlsIjozNjYsIi4vYnVja2V0IjoyNTN9XSwyNjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dGhpcy5jb2x1bW49dCx0aGlzLnJvdz1lLHRoaXMuem9vbT1yfWUuZXhwb3J0cz1uLG4ucHJvdG90eXBlPXtjbG9uZTpmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzLmNvbHVtbix0aGlzLnJvdyx0aGlzLnpvb20pfSx6b29tVG86ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fem9vbVRvKHQpfSxzdWI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fc3ViKHQpfSxfem9vbVRvOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgucG93KDIsdC10aGlzLnpvb20pO3JldHVybiB0aGlzLmNvbHVtbio9ZSx0aGlzLnJvdyo9ZSx0aGlzLnpvb209dCx0aGlzfSxfc3ViOmZ1bmN0aW9uKHQpe3JldHVybiB0PXQuem9vbVRvKHRoaXMuem9vbSksdGhpcy5jb2x1bW4tPXQuY29sdW1uLHRoaXMucm93LT10LnJvdyx0aGlzfX19LHt9XSwyNjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2lmKGlzTmFOKHQpfHxpc05hTihlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgTG5nTGF0IG9iamVjdDogKCIrdCsiLCAiK2UrIikiKTtpZih0aGlzLmxuZz0rdCx0aGlzLmxhdD0rZSx0aGlzLmxhdD45MHx8dGhpcy5sYXQ8LTkwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBMbmdMYXQgbGF0aXR1ZGUgdmFsdWU6IG11c3QgYmUgYmV0d2VlbiAtOTAgYW5kIDkwIil9ZS5leHBvcnRzPW47dmFyIGk9dCgiLi4vdXRpbC91dGlsIikud3JhcDtuLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKGkodGhpcy5sbmcsLTE4MCwxODApLHRoaXMubGF0KX0sbi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVyblt0aGlzLmxuZyx0aGlzLmxhdF19LG4ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkxuZ0xhdCgiK3RoaXMubG5nKyIsICIrdGhpcy5sYXQrIikifSxuLmNvbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBuP3Q6QXJyYXkuaXNBcnJheSh0KT9uZXcgbih0WzBdLHRbMV0pOnR9fSx7Ii4uL3V0aWwvdXRpbCI6MzY2fV0sMjY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0JiYoZT90aGlzLmV4dGVuZCh0KS5leHRlbmQoZSk6ND09PXQubGVuZ3RoP3RoaXMuZXh0ZW5kKFt0WzBdLHRbMV1dKS5leHRlbmQoW3RbMl0sdFszXV0pOnRoaXMuZXh0ZW5kKHRbMF0pLmV4dGVuZCh0WzFdKSl9ZS5leHBvcnRzPW47dmFyIGk9dCgiLi9sbmdfbGF0Iik7bi5wcm90b3R5cGU9e2V4dGVuZDpmdW5jdGlvbih0KXt2YXIgZSxyLG89dGhpcy5fc3csYT10aGlzLl9uZTtpZih0IGluc3RhbmNlb2YgaSllPXQscj10O2Vsc2V7aWYoISh0IGluc3RhbmNlb2YgbikpcmV0dXJuIHQ/dGhpcy5leHRlbmQoaS5jb252ZXJ0KHQpfHxuLmNvbnZlcnQodCkpOnRoaXM7aWYoZT10Ll9zdyxyPXQuX25lLCFlfHwhcilyZXR1cm4gdGhpc31yZXR1cm4gb3x8YT8oby5sbmc9TWF0aC5taW4oZS5sbmcsby5sbmcpLG8ubGF0PU1hdGgubWluKGUubGF0LG8ubGF0KSxhLmxuZz1NYXRoLm1heChyLmxuZyxhLmxuZyksYS5sYXQ9TWF0aC5tYXgoci5sYXQsYS5sYXQpKToodGhpcy5fc3c9bmV3IGkoZS5sbmcsZS5sYXQpLHRoaXMuX25lPW5ldyBpKHIubG5nLHIubGF0KSksdGhpc30sZ2V0Q2VudGVyOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKCh0aGlzLl9zdy5sbmcrdGhpcy5fbmUubG5nKS8yLCh0aGlzLl9zdy5sYXQrdGhpcy5fbmUubGF0KS8yKX0sZ2V0U291dGhXZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N3fSxnZXROb3J0aEVhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbmV9LGdldE5vcnRoV2VzdDpmdW5jdGlvbigpe3JldHVybiBuZXcgaSh0aGlzLmdldFdlc3QoKSx0aGlzLmdldE5vcnRoKCkpfSxnZXRTb3V0aEVhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGkodGhpcy5nZXRFYXN0KCksdGhpcy5nZXRTb3V0aCgpKX0sZ2V0V2VzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sbmd9LGdldFNvdXRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N3LmxhdH0sZ2V0RWFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9uZS5sbmd9LGdldE5vcnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxhdH0sdG9BcnJheTpmdW5jdGlvbigpe3JldHVyblt0aGlzLl9zdy50b0FycmF5KCksdGhpcy5fbmUudG9BcnJheSgpXX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4iTG5nTGF0Qm91bmRzKCIrdGhpcy5fc3cudG9TdHJpbmcoKSsiLCAiK3RoaXMuX25lLnRvU3RyaW5nKCkrIikifX0sbi5jb252ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiF0fHx0IGluc3RhbmNlb2Ygbj90Om5ldyBuKHQpfX0seyIuL2xuZ19sYXQiOjI2M31dLDI2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy50aWxlU2l6ZT01MTIsdGhpcy5fbWluWm9vbT10fHwwLHRoaXMuX21heFpvb209ZXx8MjIsdGhpcy5sYXRSYW5nZT1bLTg1LjA1MTEzLDg1LjA1MTEzXSx0aGlzLndpZHRoPTAsdGhpcy5oZWlnaHQ9MCx0aGlzLl9jZW50ZXI9bmV3IGkoMCwwKSx0aGlzLnpvb209MCx0aGlzLmFuZ2xlPTAsdGhpcy5fYWx0aXR1ZGU9MS41LHRoaXMuX3BpdGNoPTAsdGhpcy5fdW5tb2RpZmllZD0hMH12YXIgaT10KCIuL2xuZ19sYXQiKSxvPXQoInBvaW50LWdlb21ldHJ5IiksYT10KCIuL2Nvb3JkaW5hdGUiKSxzPXQoIi4uL3V0aWwvdXRpbCIpLndyYXAsbD10KCIuLi91dGlsL2ludGVycG9sYXRlIiksdT10KCIuLi9zb3VyY2UvdGlsZV9jb29yZCIpLGM9dCgiLi4vZGF0YS9idWNrZXQiKS5FWFRFTlQsaD10KCJnbC1tYXRyaXgiKSxmPWgudmVjNCxwPWgubWF0NCxkPWgubWF0MjtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT17Z2V0IG1pblpvb20oKXtyZXR1cm4gdGhpcy5fbWluWm9vbX0sc2V0IG1pblpvb20odCl7dGhpcy5fbWluWm9vbSE9PXQmJih0aGlzLl9taW5ab29tPXQsdGhpcy56b29tPU1hdGgubWF4KHRoaXMuem9vbSx0KSl9LGdldCBtYXhab29tKCl7cmV0dXJuIHRoaXMuX21heFpvb219LHNldCBtYXhab29tKHQpe3RoaXMuX21heFpvb20hPT10JiYodGhpcy5fbWF4Wm9vbT10LHRoaXMuem9vbT1NYXRoLm1pbih0aGlzLnpvb20sdCkpfSxnZXQgd29ybGRTaXplKCl7cmV0dXJuIHRoaXMudGlsZVNpemUqdGhpcy5zY2FsZX0sZ2V0IGNlbnRlclBvaW50KCl7cmV0dXJuIHRoaXMuc2l6ZS5fZGl2KDIpfSxnZXQgc2l6ZSgpe3JldHVybiBuZXcgbyh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX0sZ2V0IGJlYXJpbmcoKXtyZXR1cm4tdGhpcy5hbmdsZS9NYXRoLlBJKjE4MH0sc2V0IGJlYXJpbmcodCl7dmFyIGU9LXModCwtMTgwLDE4MCkqTWF0aC5QSS8xODA7dGhpcy5hbmdsZSE9PWUmJih0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuYW5nbGU9ZSx0aGlzLl9jYWxjTWF0cmljZXMoKSx0aGlzLnJvdGF0aW9uTWF0cml4PWQuY3JlYXRlKCksZC5yb3RhdGUodGhpcy5yb3RhdGlvbk1hdHJpeCx0aGlzLnJvdGF0aW9uTWF0cml4LHRoaXMuYW5nbGUpKX0sZ2V0IHBpdGNoKCl7cmV0dXJuIHRoaXMuX3BpdGNoL01hdGguUEkqMTgwfSxzZXQgcGl0Y2godCl7dmFyIGU9TWF0aC5taW4oNjAsdCkvMTgwKk1hdGguUEk7dGhpcy5fcGl0Y2ghPT1lJiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl9waXRjaD1lLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sZ2V0IGFsdGl0dWRlKCl7cmV0dXJuIHRoaXMuX2FsdGl0dWRlfSxzZXQgYWx0aXR1ZGUodCl7dmFyIGU9TWF0aC5tYXgoLjc1LHQpO3RoaXMuX2FsdGl0dWRlIT09ZSYmKHRoaXMuX3VubW9kaWZpZWQ9ITEsdGhpcy5fYWx0aXR1ZGU9ZSx0aGlzLl9jYWxjTWF0cmljZXMoKSl9LGdldCB6b29tKCl7cmV0dXJuIHRoaXMuX3pvb219LHNldCB6b29tKHQpe3ZhciBlPU1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW5ab29tKSx0aGlzLm1heFpvb20pO3RoaXMuX3pvb20hPT1lJiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl96b29tPWUsdGhpcy5zY2FsZT10aGlzLnpvb21TY2FsZShlKSx0aGlzLnRpbGVab29tPU1hdGguZmxvb3IoZSksdGhpcy56b29tRnJhY3Rpb249ZS10aGlzLnRpbGVab29tLHRoaXMuX2NhbGNNYXRyaWNlcygpLHRoaXMuX2NvbnN0cmFpbigpKX0sZ2V0IGNlbnRlcigpe3JldHVybiB0aGlzLl9jZW50ZXJ9LHNldCBjZW50ZXIodCl7dC5sYXQ9PT10aGlzLl9jZW50ZXIubGF0JiZ0LmxuZz09PXRoaXMuX2NlbnRlci5sbmd8fCh0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2NlbnRlcj10LHRoaXMuX2NhbGNNYXRyaWNlcygpLHRoaXMuX2NvbnN0cmFpbigpKX0sY292ZXJpbmdab29tTGV2ZWw6ZnVuY3Rpb24odCl7cmV0dXJuKHQucm91bmRab29tP01hdGgucm91bmQ6TWF0aC5mbG9vcikodGhpcy56b29tK3RoaXMuc2NhbGVab29tKHRoaXMudGlsZVNpemUvdC50aWxlU2l6ZSkpfSxjb3ZlcmluZ1RpbGVzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY292ZXJpbmdab29tTGV2ZWwodCkscj1lO2lmKGU8dC5taW56b29tKXJldHVybltdO2U+dC5tYXh6b29tJiYoZT10Lm1heHpvb20pO3ZhciBuPXRoaXMsaT1uLmxvY2F0aW9uQ29vcmRpbmF0ZShuLmNlbnRlcikuX3pvb21UbyhlKSxhPW5ldyBvKGkuY29sdW1uLS41LGkucm93LS41KTtyZXR1cm4gdS5jb3ZlcihlLFtuLnBvaW50Q29vcmRpbmF0ZShuZXcgbygwLDApKS5fem9vbVRvKGUpLG4ucG9pbnRDb29yZGluYXRlKG5ldyBvKG4ud2lkdGgsMCkpLl96b29tVG8oZSksbi5wb2ludENvb3JkaW5hdGUobmV3IG8obi53aWR0aCxuLmhlaWdodCkpLl96b29tVG8oZSksbi5wb2ludENvb3JkaW5hdGUobmV3IG8oMCxuLmhlaWdodCkpLl96b29tVG8oZSldLHQucmVwYXJzZU92ZXJzY2FsZWQ/cjplKS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEuZGlzdCh0KS1hLmRpc3QoZSl9KX0scmVzaXplOmZ1bmN0aW9uKHQsZSl7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5waXhlbHNUb0dMVW5pdHM9WzIvdCwtMi9lXSx0aGlzLl9jYWxjTWF0cmljZXMoKSx0aGlzLl9jb25zdHJhaW4oKX0sZ2V0IHVubW9kaWZpZWQoKXtyZXR1cm4gdGhpcy5fdW5tb2RpZmllZH0sem9vbVNjYWxlOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdygyLHQpfSxzY2FsZVpvb206ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubG9nKHQpL01hdGguTE4yfSxwcm9qZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBvKHRoaXMubG5nWCh0LmxuZyxlKSx0aGlzLmxhdFkodC5sYXQsZSkpfSx1bnByb2plY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGkodGhpcy54TG5nKHQueCxlKSx0aGlzLnlMYXQodC55LGUpKX0sZ2V0IHgoKXtyZXR1cm4gdGhpcy5sbmdYKHRoaXMuY2VudGVyLmxuZyl9LGdldCB5KCl7cmV0dXJuIHRoaXMubGF0WSh0aGlzLmNlbnRlci5sYXQpfSxnZXQgcG9pbnQoKXtyZXR1cm4gbmV3IG8odGhpcy54LHRoaXMueSl9LGxuZ1g6ZnVuY3Rpb24odCxlKXtyZXR1cm4oMTgwK3QpKihlfHx0aGlzLndvcmxkU2l6ZSkvMzYwfSxsYXRZOmZ1bmN0aW9uKHQsZSl7dmFyIHI9MTgwL01hdGguUEkqTWF0aC5sb2coTWF0aC50YW4oTWF0aC5QSS80K3QqTWF0aC5QSS8zNjApKTtyZXR1cm4oMTgwLXIpKihlfHx0aGlzLndvcmxkU2l6ZSkvMzYwfSx4TG5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDM2MCp0LyhlfHx0aGlzLndvcmxkU2l6ZSktMTgwfSx5TGF0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9MTgwLTM2MCp0LyhlfHx0aGlzLndvcmxkU2l6ZSk7cmV0dXJuIDM2MC9NYXRoLlBJKk1hdGguYXRhbihNYXRoLmV4cChyKk1hdGguUEkvMTgwKSktOTB9LHBhbkJ5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY2VudGVyUG9pbnQuX2FkZCh0KTt0aGlzLmNlbnRlcj10aGlzLnBvaW50TG9jYXRpb24oZSl9LHNldExvY2F0aW9uQXRQb2ludDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubG9jYXRpb25Db29yZGluYXRlKHQpLG49dGhpcy5wb2ludENvb3JkaW5hdGUoZSksaT10aGlzLnBvaW50Q29vcmRpbmF0ZSh0aGlzLmNlbnRlclBvaW50KSxvPW4uX3N1YihyKTt0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuY2VudGVyPXRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKGkuX3N1YihvKSl9LGxvY2F0aW9uUG9pbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZVBvaW50KHRoaXMubG9jYXRpb25Db29yZGluYXRlKHQpKX0scG9pbnRMb2NhdGlvbjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb29yZGluYXRlTG9jYXRpb24odGhpcy5wb2ludENvb3JkaW5hdGUodCkpfSxsb2NhdGlvbkNvb3JkaW5hdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy56b29tU2NhbGUodGhpcy50aWxlWm9vbSkvdGhpcy53b3JsZFNpemUscj1pLmNvbnZlcnQodCk7cmV0dXJuIG5ldyBhKHRoaXMubG5nWChyLmxuZykqZSx0aGlzLmxhdFkoci5sYXQpKmUsdGhpcy50aWxlWm9vbSl9LGNvb3JkaW5hdGVMb2NhdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLnpvb21TY2FsZSh0Lnpvb20pO3JldHVybiBuZXcgaSh0aGlzLnhMbmcodC5jb2x1bW4sZSksdGhpcy55TGF0KHQucm93LGUpKX0scG9pbnRDb29yZGluYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPTAscj1bdC54LHQueSwwLDFdLG49W3QueCx0LnksMSwxXTtmLnRyYW5zZm9ybU1hdDQocixyLHRoaXMucGl4ZWxNYXRyaXhJbnZlcnNlKSxmLnRyYW5zZm9ybU1hdDQobixuLHRoaXMucGl4ZWxNYXRyaXhJbnZlcnNlKTt2YXIgaT1yWzNdLG89blszXSxzPXJbMF0vaSx1PW5bMF0vbyxjPXJbMV0vaSxoPW5bMV0vbyxwPXJbMl0vaSxkPW5bMl0vbyxtPXA9PT1kPzA6KGUtcCkvKGQtcCksZz10aGlzLndvcmxkU2l6ZS90aGlzLnpvb21TY2FsZSh0aGlzLnRpbGVab29tKTtyZXR1cm4gbmV3IGEobChzLHUsbSkvZyxsKGMsaCxtKS9nLHRoaXMudGlsZVpvb20pfSxjb29yZGluYXRlUG9pbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53b3JsZFNpemUvdGhpcy56b29tU2NhbGUodC56b29tKSxyPVt0LmNvbHVtbiplLHQucm93KmUsMCwxXTtyZXR1cm4gZi50cmFuc2Zvcm1NYXQ0KHIscix0aGlzLnBpeGVsTWF0cml4KSxuZXcgbyhyWzBdL3JbM10sclsxXS9yWzNdKX0sY2FsY3VsYXRlUG9zTWF0cml4OmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9MS8wKSx0IGluc3RhbmNlb2YgdSYmKHQ9dC50b0Nvb3JkaW5hdGUoZSkpO3ZhciByPU1hdGgubWluKHQuem9vbSxlKSxuPXRoaXMud29ybGRTaXplL01hdGgucG93KDIsciksaT1uZXcgRmxvYXQ2NEFycmF5KDE2KTtyZXR1cm4gcC5pZGVudGl0eShpKSxwLnRyYW5zbGF0ZShpLGksW3QuY29sdW1uKm4sdC5yb3cqbiwwXSkscC5zY2FsZShpLGksW24vYyxuL2MsMV0pLHAubXVsdGlwbHkoaSx0aGlzLnByb2pNYXRyaXgsaSksbmV3IEZsb2F0MzJBcnJheShpKX0sX2NvbnN0cmFpbjpmdW5jdGlvbigpe2lmKHRoaXMuY2VudGVyJiZ0aGlzLndpZHRoJiZ0aGlzLmhlaWdodCYmIXRoaXMuX2NvbnN0cmFpbmluZyl7dGhpcy5fY29uc3RyYWluaW5nPSEwO3ZhciB0LGUscixuLGksYSxzLGwsdT10aGlzLnNpemUsYz10aGlzLl91bm1vZGlmaWVkO3RoaXMubGF0UmFuZ2UmJih0PXRoaXMubGF0WSh0aGlzLmxhdFJhbmdlWzFdKSxlPXRoaXMubGF0WSh0aGlzLmxhdFJhbmdlWzBdKSxpPWUtdDx1Lnk/dS55LyhlLXQpOjApLHRoaXMubG5nUmFuZ2UmJihyPXRoaXMubG5nWCh0aGlzLmxuZ1JhbmdlWzBdKSxuPXRoaXMubG5nWCh0aGlzLmxuZ1JhbmdlWzFdKSxhPW4tcjx1Lng/dS54LyhuLXIpOjApO3ZhciBoPU1hdGgubWF4KGF8fDAsaXx8MCk7aWYoaClyZXR1cm4gdGhpcy5jZW50ZXI9dGhpcy51bnByb2plY3QobmV3IG8oYT8obityKS8yOnRoaXMueCxpPyhlK3QpLzI6dGhpcy55KSksdGhpcy56b29tKz10aGlzLnNjYWxlWm9vbShoKSx0aGlzLl91bm1vZGlmaWVkPWMsdm9pZCh0aGlzLl9jb25zdHJhaW5pbmc9ITEpO2lmKHRoaXMubGF0UmFuZ2Upe3ZhciBmPXRoaXMueSxwPXUueS8yO3Q+Zi1wJiYobD10K3ApLGYrcD5lJiYobD1lLXApfWlmKHRoaXMubG5nUmFuZ2Upe3ZhciBkPXRoaXMueCxtPXUueC8yO3I+ZC1tJiYocz1yK20pLGQrbT5uJiYocz1uLW0pfXZvaWQgMD09PXMmJnZvaWQgMD09PWx8fCh0aGlzLmNlbnRlcj10aGlzLnVucHJvamVjdChuZXcgbyh2b2lkIDAhPT1zP3M6dGhpcy54LHZvaWQgMCE9PWw/bDp0aGlzLnkpKSksdGhpcy5fdW5tb2RpZmllZD1jLHRoaXMuX2NvbnN0cmFpbmluZz0hMX19LF9jYWxjTWF0cmljZXM6ZnVuY3Rpb24oKXtpZih0aGlzLmhlaWdodCl7dmFyIHQ9TWF0aC5hdGFuKC41L3RoaXMuYWx0aXR1ZGUpLGU9TWF0aC5zaW4odCkqdGhpcy5hbHRpdHVkZS9NYXRoLnNpbihNYXRoLlBJLzItdGhpcy5fcGl0Y2gtdCkscj1NYXRoLmNvcyhNYXRoLlBJLzItdGhpcy5fcGl0Y2gpKmUrdGhpcy5hbHRpdHVkZSxuPW5ldyBGbG9hdDY0QXJyYXkoMTYpO2lmKHAucGVyc3BlY3RpdmUobiwyKk1hdGguYXRhbih0aGlzLmhlaWdodC8yL3RoaXMuYWx0aXR1ZGUpLHRoaXMud2lkdGgvdGhpcy5oZWlnaHQsLjEscikscC50cmFuc2xhdGUobixuLFswLDAsLXRoaXMuYWx0aXR1ZGVdKSxwLnNjYWxlKG4sbixbMSwtMSwxL3RoaXMuaGVpZ2h0XSkscC5yb3RhdGVYKG4sbix0aGlzLl9waXRjaCkscC5yb3RhdGVaKG4sbix0aGlzLmFuZ2xlKSxwLnRyYW5zbGF0ZShuLG4sWy10aGlzLngsLXRoaXMueSwwXSksdGhpcy5wcm9qTWF0cml4PW4sbj1wLmNyZWF0ZSgpLHAuc2NhbGUobixuLFt0aGlzLndpZHRoLzIsLXRoaXMuaGVpZ2h0LzIsMV0pLHAudHJhbnNsYXRlKG4sbixbMSwtMSwwXSksdGhpcy5waXhlbE1hdHJpeD1wLm11bHRpcGx5KG5ldyBGbG9hdDY0QXJyYXkoMTYpLG4sdGhpcy5wcm9qTWF0cml4KSxuPXAuaW52ZXJ0KG5ldyBGbG9hdDY0QXJyYXkoMTYpLHRoaXMucGl4ZWxNYXRyaXgpLCFuKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGludmVydCBtYXRyaXgiKTt0aGlzLnBpeGVsTWF0cml4SW52ZXJzZT1ufX19fSx7Ii4uL2RhdGEvYnVja2V0IjoyNTMsIi4uL3NvdXJjZS90aWxlX2Nvb3JkIjoyOTMsIi4uL3V0aWwvaW50ZXJwb2xhdGUiOjM2MCwiLi4vdXRpbC91dGlsIjozNjYsIi4vY29vcmRpbmF0ZSI6MjYyLCIuL2xuZ19sYXQiOjI2MywiZ2wtbWF0cml4IjozODIsInBvaW50LWdlb21ldHJ5Ijo0MjR9XSwyNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49eyIgIjpbMTYsW11dLCIhIjpbMTAsWzUsMjEsNSw3LC0xLC0xLDUsMiw0LDEsNSwwLDYsMSw1LDJdXSwnIic6WzE2LFs0LDIxLDQsMTQsLTEsLTEsMTIsMjEsMTIsMTRdXSwiIyI6WzIxLFsxMSwyNSw0LC03LC0xLC0xLDE3LDI1LDEwLC03LC0xLC0xLDQsMTIsMTgsMTIsLTEsLTEsMyw2LDE3LDZdXSwkOlsyMCxbOCwyNSw4LC00LC0xLC0xLDEyLDI1LDEyLC00LC0xLC0xLDE3LDE4LDE1LDIwLDEyLDIxLDgsMjEsNSwyMCwzLDE4LDMsMTYsNCwxNCw1LDEzLDcsMTIsMTMsMTAsMTUsOSwxNiw4LDE3LDYsMTcsMywxNSwxLDEyLDAsOCwwLDUsMSwzLDNdXSwiJSI6WzI0LFsyMSwyMSwzLDAsLTEsLTEsOCwyMSwxMCwxOSwxMCwxNyw5LDE1LDcsMTQsNSwxNCwzLDE2LDMsMTgsNCwyMCw2LDIxLDgsMjEsMTAsMjAsMTMsMTksMTYsMTksMTksMjAsMjEsMjEsLTEsLTEsMTcsNywxNSw2LDE0LDQsMTQsMiwxNiwwLDE4LDAsMjAsMSwyMSwzLDIxLDUsMTksNywxNyw3XV0sIiYiOlsyNixbMjMsMTIsMjMsMTMsMjIsMTQsMjEsMTQsMjAsMTMsMTksMTEsMTcsNiwxNSwzLDEzLDEsMTEsMCw3LDAsNSwxLDQsMiwzLDQsMyw2LDQsOCw1LDksMTIsMTMsMTMsMTQsMTQsMTYsMTQsMTgsMTMsMjAsMTEsMjEsOSwyMCw4LDE4LDgsMTYsOSwxMywxMSwxMCwxNiwzLDE4LDEsMjAsMCwyMiwwLDIzLDEsMjMsMl1dLCInIjpbMTAsWzUsMTksNCwyMCw1LDIxLDYsMjAsNiwxOCw1LDE2LDQsMTVdXSwiKCI6WzE0LFsxMSwyNSw5LDIzLDcsMjAsNSwxNiw0LDExLDQsNyw1LDIsNywtMiw5LC01LDExLC03XV0sIikiOlsxNCxbMywyNSw1LDIzLDcsMjAsOSwxNiwxMCwxMSwxMCw3LDksMiw3LC0yLDUsLTUsMywtN11dLCIqIjpbMTYsWzgsMjEsOCw5LC0xLC0xLDMsMTgsMTMsMTIsLTEsLTEsMTMsMTgsMywxMl1dLCIrIjpbMjYsWzEzLDE4LDEzLDAsLTEsLTEsNCw5LDIyLDldXSwiLCI6WzEwLFs2LDEsNSwwLDQsMSw1LDIsNiwxLDYsLTEsNSwtMyw0LC00XV0sIi0iOlsyNixbNCw5LDIyLDldXSwiLiI6WzEwLFs1LDIsNCwxLDUsMCw2LDEsNSwyXV0sIi8iOlsyMixbMjAsMjUsMiwtN11dLDA6WzIwLFs5LDIxLDYsMjAsNCwxNywzLDEyLDMsOSw0LDQsNiwxLDksMCwxMSwwLDE0LDEsMTYsNCwxNyw5LDE3LDEyLDE2LDE3LDE0LDIwLDExLDIxLDksMjFdXSwxOlsyMCxbNiwxNyw4LDE4LDExLDIxLDExLDBdXSwyOlsyMCxbNCwxNiw0LDE3LDUsMTksNiwyMCw4LDIxLDEyLDIxLDE0LDIwLDE1LDE5LDE2LDE3LDE2LDE1LDE1LDEzLDEzLDEwLDMsMCwxNywwXV0sMzpbMjAsWzUsMjEsMTYsMjEsMTAsMTMsMTMsMTMsMTUsMTIsMTYsMTEsMTcsOCwxNyw2LDE2LDMsMTQsMSwxMSwwLDgsMCw1LDEsNCwyLDMsNF1dLDQ6WzIwLFsxMywyMSwzLDcsMTgsNywtMSwtMSwxMywyMSwxMywwXV0sNTpbMjAsWzE1LDIxLDUsMjEsNCwxMiw1LDEzLDgsMTQsMTEsMTQsMTQsMTMsMTYsMTEsMTcsOCwxNyw2LDE2LDMsMTQsMSwxMSwwLDgsMCw1LDEsNCwyLDMsNF1dLDY6WzIwLFsxNiwxOCwxNSwyMCwxMiwyMSwxMCwyMSw3LDIwLDUsMTcsNCwxMiw0LDcsNSwzLDcsMSwxMCwwLDExLDAsMTQsMSwxNiwzLDE3LDYsMTcsNywxNiwxMCwxNCwxMiwxMSwxMywxMCwxMyw3LDEyLDUsMTAsNCw3XV0sNzpbMjAsWzE3LDIxLDcsMCwtMSwtMSwzLDIxLDE3LDIxXV0sODpbMjAsWzgsMjEsNSwyMCw0LDE4LDQsMTYsNSwxNCw3LDEzLDExLDEyLDE0LDExLDE2LDksMTcsNywxNyw0LDE2LDIsMTUsMSwxMiwwLDgsMCw1LDEsNCwyLDMsNCwzLDcsNCw5LDYsMTEsOSwxMiwxMywxMywxNSwxNCwxNiwxNiwxNiwxOCwxNSwyMCwxMiwyMSw4LDIxXV0sOTpbMjAsWzE2LDE0LDE1LDExLDEzLDksMTAsOCw5LDgsNiw5LDQsMTEsMywxNCwzLDE1LDQsMTgsNiwyMCw5LDIxLDEwLDIxLDEzLDIwLDE1LDE4LDE2LDE0LDE2LDksMTUsNCwxMywxLDEwLDAsOCwwLDUsMSw0LDNdXSwiOiI6WzEwLFs1LDE0LDQsMTMsNSwxMiw2LDEzLDUsMTQsLTEsLTEsNSwyLDQsMSw1LDAsNiwxLDUsMl1dLCI7IjpbMTAsWzUsMTQsNCwxMyw1LDEyLDYsMTMsNSwxNCwtMSwtMSw2LDEsNSwwLDQsMSw1LDIsNiwxLDYsLTEsNSwtMyw0LC00XV0sIjwiOlsyNCxbMjAsMTgsNCw5LDIwLDBdXSwiPSI6WzI2LFs0LDEyLDIyLDEyLC0xLC0xLDQsNiwyMiw2XV0sIj4iOlsyNCxbNCwxOCwyMCw5LDQsMF1dLCI/IjpbMTgsWzMsMTYsMywxNyw0LDE5LDUsMjAsNywyMSwxMSwyMSwxMywyMCwxNCwxOSwxNSwxNywxNSwxNSwxNCwxMywxMywxMiw5LDEwLDksNywtMSwtMSw5LDIsOCwxLDksMCwxMCwxLDksMl1dLCJAIjpbMjcsWzE4LDEzLDE3LDE1LDE1LDE2LDEyLDE2LDEwLDE1LDksMTQsOCwxMSw4LDgsOSw2LDExLDUsMTQsNSwxNiw2LDE3LDgsLTEsLTEsMTIsMTYsMTAsMTQsOSwxMSw5LDgsMTAsNiwxMSw1LC0xLC0xLDE4LDE2LDE3LDgsMTcsNiwxOSw1LDIxLDUsMjMsNywyNCwxMCwyNCwxMiwyMywxNSwyMiwxNywyMCwxOSwxOCwyMCwxNSwyMSwxMiwyMSw5LDIwLDcsMTksNSwxNyw0LDE1LDMsMTIsMyw5LDQsNiw1LDQsNywyLDksMSwxMiwwLDE1LDAsMTgsMSwyMCwyLDIxLDMsLTEsLTEsMTksMTYsMTgsOCwxOCw2LDE5LDVdXSxBOlsxOCxbOSwyMSwxLDAsLTEsLTEsOSwyMSwxNywwLC0xLC0xLDQsNywxNCw3XV0sQjpbMjEsWzQsMjEsNCwwLC0xLC0xLDQsMjEsMTMsMjEsMTYsMjAsMTcsMTksMTgsMTcsMTgsMTUsMTcsMTMsMTYsMTIsMTMsMTEsLTEsLTEsNCwxMSwxMywxMSwxNiwxMCwxNyw5LDE4LDcsMTgsNCwxNywyLDE2LDEsMTMsMCw0LDBdXSxDOlsyMSxbMTgsMTYsMTcsMTgsMTUsMjAsMTMsMjEsOSwyMSw3LDIwLDUsMTgsNCwxNiwzLDEzLDMsOCw0LDUsNSwzLDcsMSw5LDAsMTMsMCwxNSwxLDE3LDMsMTgsNV1dLEQ6WzIxLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDExLDIxLDE0LDIwLDE2LDE4LDE3LDE2LDE4LDEzLDE4LDgsMTcsNSwxNiwzLDE0LDEsMTEsMCw0LDBdXSxFOlsxOSxbNCwyMSw0LDAsLTEsLTEsNCwyMSwxNywyMSwtMSwtMSw0LDExLDEyLDExLC0xLC0xLDQsMCwxNywwXV0sRjpbMTgsWzQsMjEsNCwwLC0xLC0xLDQsMjEsMTcsMjEsLTEsLTEsNCwxMSwxMiwxMV1dLEc6WzIxLFsxOCwxNiwxNywxOCwxNSwyMCwxMywyMSw5LDIxLDcsMjAsNSwxOCw0LDE2LDMsMTMsMyw4LDQsNSw1LDMsNywxLDksMCwxMywwLDE1LDEsMTcsMywxOCw1LDE4LDgsLTEsLTEsMTMsOCwxOCw4XV0sSDpbMjIsWzQsMjEsNCwwLC0xLC0xLDE4LDIxLDE4LDAsLTEsLTEsNCwxMSwxOCwxMV1dLEk6WzgsWzQsMjEsNCwwXV0sSjpbMTYsWzEyLDIxLDEyLDUsMTEsMiwxMCwxLDgsMCw2LDAsNCwxLDMsMiwyLDUsMiw3XV0sSzpbMjEsWzQsMjEsNCwwLC0xLC0xLDE4LDIxLDQsNywtMSwtMSw5LDEyLDE4LDBdXSxMOlsxNyxbNCwyMSw0LDAsLTEsLTEsNCwwLDE2LDBdXSxNOlsyNCxbNCwyMSw0LDAsLTEsLTEsNCwyMSwxMiwwLC0xLC0xLDIwLDIxLDEyLDAsLTEsLTEsMjAsMjEsMjAsMF1dLE46WzIyLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDE4LDAsLTEsLTEsMTgsMjEsMTgsMF1dLE86WzIyLFs5LDIxLDcsMjAsNSwxOCw0LDE2LDMsMTMsMyw4LDQsNSw1LDMsNywxLDksMCwxMywwLDE1LDEsMTcsMywxOCw1LDE5LDgsMTksMTMsMTgsMTYsMTcsMTgsMTUsMjAsMTMsMjEsOSwyMV1dLFA6WzIxLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDEzLDIxLDE2LDIwLDE3LDE5LDE4LDE3LDE4LDE0LDE3LDEyLDE2LDExLDEzLDEwLDQsMTBdXSxROlsyMixbOSwyMSw3LDIwLDUsMTgsNCwxNiwzLDEzLDMsOCw0LDUsNSwzLDcsMSw5LDAsMTMsMCwxNSwxLDE3LDMsMTgsNSwxOSw4LDE5LDEzLDE4LDE2LDE3LDE4LDE1LDIwLDEzLDIxLDksMjEsLTEsLTEsMTIsNCwxOCwtMl1dLFI6WzIxLFs0LDIxLDQsMCwtMSwtMSw0LDIxLDEzLDIxLDE2LDIwLDE3LDE5LDE4LDE3LDE4LDE1LDE3LDEzLDE2LDEyLDEzLDExLDQsMTEsLTEsLTEsMTEsMTEsMTgsMF1dLFM6WzIwLFsxNywxOCwxNSwyMCwxMiwyMSw4LDIxLDUsMjAsMywxOCwzLDE2LDQsMTQsNSwxMyw3LDEyLDEzLDEwLDE1LDksMTYsOCwxNyw2LDE3LDMsMTUsMSwxMiwwLDgsMCw1LDEsMywzXV0sVDpbMTYsWzgsMjEsOCwwLC0xLC0xLDEsMjEsMTUsMjFdXSxVOlsyMixbNCwyMSw0LDYsNSwzLDcsMSwxMCwwLDEyLDAsMTUsMSwxNywzLDE4LDYsMTgsMjFdXSxWOlsxOCxbMSwyMSw5LDAsLTEsLTEsMTcsMjEsOSwwXV0sVzpbMjQsWzIsMjEsNywwLC0xLC0xLDEyLDIxLDcsMCwtMSwtMSwxMiwyMSwxNywwLC0xLC0xLDIyLDIxLDE3LDBdXSxYOlsyMCxbMywyMSwxNywwLC0xLC0xLDE3LDIxLDMsMF1dLFk6WzE4LFsxLDIxLDksMTEsOSwwLC0xLC0xLDE3LDIxLDksMTFdXSxaOlsyMCxbMTcsMjEsMywwLC0xLC0xLDMsMjEsMTcsMjEsLTEsLTEsMywwLDE3LDBdXSwiWyI6WzE0LFs0LDI1LDQsLTcsLTEsLTEsNSwyNSw1LC03LC0xLC0xLDQsMjUsMTEsMjUsLTEsLTEsNCwtNywxMSwtN11dLCJcXCI6WzE0LFswLDIxLDE0LC0zXV0sIl0iOlsxNCxbOSwyNSw5LC03LC0xLC0xLDEwLDI1LDEwLC03LC0xLC0xLDMsMjUsMTAsMjUsLTEsLTEsMywtNywxMCwtN11dLCJeIjpbMTYsWzYsMTUsOCwxOCwxMCwxNSwtMSwtMSwzLDEyLDgsMTcsMTMsMTIsLTEsLTEsOCwxNyw4LDBdXSxfOlsxNixbMCwtMiwxNiwtMl1dLAoiYCI6WzEwLFs2LDIxLDUsMjAsNCwxOCw0LDE2LDUsMTUsNiwxNiw1LDE3XV0sYTpbMTksWzE1LDE0LDE1LDAsLTEsLTEsMTUsMTEsMTMsMTMsMTEsMTQsOCwxNCw2LDEzLDQsMTEsMyw4LDMsNiw0LDMsNiwxLDgsMCwxMSwwLDEzLDEsMTUsM11dLGI6WzE5LFs0LDIxLDQsMCwtMSwtMSw0LDExLDYsMTMsOCwxNCwxMSwxNCwxMywxMywxNSwxMSwxNiw4LDE2LDYsMTUsMywxMywxLDExLDAsOCwwLDYsMSw0LDNdXSxjOlsxOCxbMTUsMTEsMTMsMTMsMTEsMTQsOCwxNCw2LDEzLDQsMTEsMyw4LDMsNiw0LDMsNiwxLDgsMCwxMSwwLDEzLDEsMTUsM11dLGQ6WzE5LFsxNSwyMSwxNSwwLC0xLC0xLDE1LDExLDEzLDEzLDExLDE0LDgsMTQsNiwxMyw0LDExLDMsOCwzLDYsNCwzLDYsMSw4LDAsMTEsMCwxMywxLDE1LDNdXSxlOlsxOCxbMyw4LDE1LDgsMTUsMTAsMTQsMTIsMTMsMTMsMTEsMTQsOCwxNCw2LDEzLDQsMTEsMyw4LDMsNiw0LDMsNiwxLDgsMCwxMSwwLDEzLDEsMTUsM11dLGY6WzEyLFsxMCwyMSw4LDIxLDYsMjAsNSwxNyw1LDAsLTEsLTEsMiwxNCw5LDE0XV0sZzpbMTksWzE1LDE0LDE1LC0yLDE0LC01LDEzLC02LDExLC03LDgsLTcsNiwtNiwtMSwtMSwxNSwxMSwxMywxMywxMSwxNCw4LDE0LDYsMTMsNCwxMSwzLDgsMyw2LDQsMyw2LDEsOCwwLDExLDAsMTMsMSwxNSwzXV0saDpbMTksWzQsMjEsNCwwLC0xLC0xLDQsMTAsNywxMyw5LDE0LDEyLDE0LDE0LDEzLDE1LDEwLDE1LDBdXSxpOls4LFszLDIxLDQsMjAsNSwyMSw0LDIyLDMsMjEsLTEsLTEsNCwxNCw0LDBdXSxqOlsxMCxbNSwyMSw2LDIwLDcsMjEsNiwyMiw1LDIxLC0xLC0xLDYsMTQsNiwtMyw1LC02LDMsLTcsMSwtN11dLGs6WzE3LFs0LDIxLDQsMCwtMSwtMSwxNCwxNCw0LDQsLTEsLTEsOCw4LDE1LDBdXSxsOls4LFs0LDIxLDQsMF1dLG06WzMwLFs0LDE0LDQsMCwtMSwtMSw0LDEwLDcsMTMsOSwxNCwxMiwxNCwxNCwxMywxNSwxMCwxNSwwLC0xLC0xLDE1LDEwLDE4LDEzLDIwLDE0LDIzLDE0LDI1LDEzLDI2LDEwLDI2LDBdXSxuOlsxOSxbNCwxNCw0LDAsLTEsLTEsNCwxMCw3LDEzLDksMTQsMTIsMTQsMTQsMTMsMTUsMTAsMTUsMF1dLG86WzE5LFs4LDE0LDYsMTMsNCwxMSwzLDgsMyw2LDQsMyw2LDEsOCwwLDExLDAsMTMsMSwxNSwzLDE2LDYsMTYsOCwxNSwxMSwxMywxMywxMSwxNCw4LDE0XV0scDpbMTksWzQsMTQsNCwtNywtMSwtMSw0LDExLDYsMTMsOCwxNCwxMSwxNCwxMywxMywxNSwxMSwxNiw4LDE2LDYsMTUsMywxMywxLDExLDAsOCwwLDYsMSw0LDNdXSxxOlsxOSxbMTUsMTQsMTUsLTcsLTEsLTEsMTUsMTEsMTMsMTMsMTEsMTQsOCwxNCw2LDEzLDQsMTEsMyw4LDMsNiw0LDMsNiwxLDgsMCwxMSwwLDEzLDEsMTUsM11dLHI6WzEzLFs0LDE0LDQsMCwtMSwtMSw0LDgsNSwxMSw3LDEzLDksMTQsMTIsMTRdXSxzOlsxNyxbMTQsMTEsMTMsMTMsMTAsMTQsNywxNCw0LDEzLDMsMTEsNCw5LDYsOCwxMSw3LDEzLDYsMTQsNCwxNCwzLDEzLDEsMTAsMCw3LDAsNCwxLDMsM11dLHQ6WzEyLFs1LDIxLDUsNCw2LDEsOCwwLDEwLDAsLTEsLTEsMiwxNCw5LDE0XV0sdTpbMTksWzQsMTQsNCw0LDUsMSw3LDAsMTAsMCwxMiwxLDE1LDQsLTEsLTEsMTUsMTQsMTUsMF1dLHY6WzE2LFsyLDE0LDgsMCwtMSwtMSwxNCwxNCw4LDBdXSx3OlsyMixbMywxNCw3LDAsLTEsLTEsMTEsMTQsNywwLC0xLC0xLDExLDE0LDE1LDAsLTEsLTEsMTksMTQsMTUsMF1dLHg6WzE3LFszLDE0LDE0LDAsLTEsLTEsMTQsMTQsMywwXV0seTpbMTYsWzIsMTQsOCwwLC0xLC0xLDE0LDE0LDgsMCw2LC00LDQsLTYsMiwtNywxLC03XV0sejpbMTcsWzE0LDE0LDMsMCwtMSwtMSwzLDE0LDE0LDE0LC0xLC0xLDMsMCwxNCwwXV0sInsiOlsxNCxbOSwyNSw3LDI0LDYsMjMsNSwyMSw1LDE5LDYsMTcsNywxNiw4LDE0LDgsMTIsNiwxMCwtMSwtMSw3LDI0LDYsMjIsNiwyMCw3LDE4LDgsMTcsOSwxNSw5LDEzLDgsMTEsNCw5LDgsNyw5LDUsOSwzLDgsMSw3LDAsNiwtMiw2LC00LDcsLTYsLTEsLTEsNiw4LDgsNiw4LDQsNywyLDYsMSw1LC0xLDUsLTMsNiwtNSw3LC02LDksLTddXSwifCI6WzgsWzQsMjUsNCwtN11dLCJ9IjpbMTQsWzUsMjUsNywyNCw4LDIzLDksMjEsOSwxOSw4LDE3LDcsMTYsNiwxNCw2LDEyLDgsMTAsLTEsLTEsNywyNCw4LDIyLDgsMjAsNywxOCw2LDE3LDUsMTUsNSwxMyw2LDExLDEwLDksNiw3LDUsNSw1LDMsNiwxLDcsMCw4LC0yLDgsLTQsNywtNiwtMSwtMSw4LDgsNiw2LDYsNCw3LDIsOCwxLDksLTEsOSwtMyw4LC01LDcsLTYsNSwtN11dLCJ+IjpbMjQsWzMsNiwzLDgsNCwxMSw2LDEyLDgsMTIsMTAsMTEsMTQsOCwxNiw3LDE4LDcsMjAsOCwyMSwxMCwtMSwtMSwzLDgsNCwxMCw2LDExLDgsMTEsMTAsMTAsMTQsNywxNiw2LDE4LDYsMjAsNywyMSwxMCwyMSwxMl1dfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7aT1pfHwxO3ZhciBvLGEscyxsLHUsYyxoLGYscD1bXTtmb3Iobz0wLGE9dC5sZW5ndGg7YT5vO28rKylpZih1PW5bdFtvXV0pe2ZvcihmPW51bGwscz0wLGw9dVsxXS5sZW5ndGg7bD5zO3MrPTIpLTE9PT11WzFdW3NdJiYtMT09PXVbMV1bcysxXT9mPW51bGw6KGM9ZSt1WzFdW3NdKmksaD1yLXVbMV1bcysxXSppLGYmJnAucHVzaChmLngsZi55LGMsaCksZj17eDpjLHk6aH0pO2UrPXVbMF0qaX1yZXR1cm4gcH19LHt9XSwyNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49ZS5leHBvcnRzPXt9O24udmVyc2lvbj10KCIuLi9wYWNrYWdlLmpzb24iKS52ZXJzaW9uLG4uTWFwPXQoIi4vdWkvbWFwIiksbi5Db250cm9sPXQoIi4vdWkvY29udHJvbC9jb250cm9sIiksbi5OYXZpZ2F0aW9uPXQoIi4vdWkvY29udHJvbC9uYXZpZ2F0aW9uIiksbi5HZW9sb2NhdGU9dCgiLi91aS9jb250cm9sL2dlb2xvY2F0ZSIpLG4uQXR0cmlidXRpb249dCgiLi91aS9jb250cm9sL2F0dHJpYnV0aW9uIiksbi5Qb3B1cD10KCIuL3VpL3BvcHVwIiksbi5NYXJrZXI9dCgiLi91aS9tYXJrZXIiKSxuLlN0eWxlPXQoIi4vc3R5bGUvc3R5bGUiKSxuLkxuZ0xhdD10KCIuL2dlby9sbmdfbGF0Iiksbi5MbmdMYXRCb3VuZHM9dCgiLi9nZW8vbG5nX2xhdF9ib3VuZHMiKSxuLlBvaW50PXQoInBvaW50LWdlb21ldHJ5Iiksbi5FdmVudGVkPXQoIi4vdXRpbC9ldmVudGVkIiksbi51dGlsPXQoIi4vdXRpbC91dGlsIiksbi5zdXBwb3J0ZWQ9dCgiLi91dGlsL2Jyb3dzZXIiKS5zdXBwb3J0ZWQ7dmFyIGk9dCgiLi91dGlsL2FqYXgiKTtuLnV0aWwuZ2V0SlNPTj1pLmdldEpTT04sbi51dGlsLmdldEFycmF5QnVmZmVyPWkuZ2V0QXJyYXlCdWZmZXI7dmFyIG89dCgiLi91dGlsL2NvbmZpZyIpO24uY29uZmlnPW8sT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImFjY2Vzc1Rva2VuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uQUNDRVNTX1RPS0VOfSxzZXQ6ZnVuY3Rpb24odCl7by5BQ0NFU1NfVE9LRU49dH19KX0seyIuLi9wYWNrYWdlLmpzb24iOjQ0MywiLi9nZW8vbG5nX2xhdCI6MjYzLCIuL2dlby9sbmdfbGF0X2JvdW5kcyI6MjY0LCIuL3N0eWxlL3N0eWxlIjozMDIsIi4vdWkvY29udHJvbC9hdHRyaWJ1dGlvbiI6MzMzLCIuL3VpL2NvbnRyb2wvY29udHJvbCI6MzM0LCIuL3VpL2NvbnRyb2wvZ2VvbG9jYXRlIjozMzUsIi4vdWkvY29udHJvbC9uYXZpZ2F0aW9uIjozMzYsIi4vdWkvbWFwIjozNDUsIi4vdWkvbWFya2VyIjozNDYsIi4vdWkvcG9wdXAiOjM0NywiLi91dGlsL2FqYXgiOjM0OSwiLi91dGlsL2Jyb3dzZXIiOjM1MCwiLi91dGlsL2NvbmZpZyI6MzU1LCIuL3V0aWwvZXZlbnRlZCI6MzU4LCIuL3V0aWwvdXRpbCI6MzY2LCJwb2ludC1nZW9tZXRyeSI6NDI0fV0sMjY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9e2RlZmluZTp7fSxpbml0aWFsaXplOnt9fSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl0saT0ie3ByZWNpc2lvbn0gIisoMT09PW4uY29tcG9uZW50cz8iZmxvYXQiOiJ2ZWMiK24uY29tcG9uZW50cyk7ZS5kZWZpbmVbbi5uYW1lLnNsaWNlKDIpXT0idW5pZm9ybSAiK2krIiAiK24ubmFtZSsiO1xuIixlLmluaXRpYWxpemVbbi5uYW1lLnNsaWNlKDIpXT1pKyIgIituLm5hbWUuc2xpY2UoMikrIiA9ICIrbi5uYW1lKyI7XG4ifXJldHVybiBlfX0se31dLDI2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbixzPXQuZ2wsbD10LnRyYW5zZm9ybSx1PXIucGFpbnRbImJhY2tncm91bmQtY29sb3IiXSxjPXIucGFpbnRbImJhY2tncm91bmQtcGF0dGVybiJdLGg9ci5wYWludFsiYmFja2dyb3VuZC1vcGFjaXR5Il0sZj1jP3Quc3ByaXRlQXRsYXMuZ2V0UG9zaXRpb24oYy5mcm9tLCEwKTpudWxsLHA9Yz90LnNwcml0ZUF0bGFzLmdldFBvc2l0aW9uKGMudG8sITApOm51bGw7aWYodC5zZXREZXB0aFN1YmxheWVyKDApLGYmJnApe2lmKHQuaXNPcGFxdWVQYXNzKXJldHVybjtuPXQudXNlUHJvZ3JhbSgicGF0dGVybiIpLHMudW5pZm9ybTFpKG4udV9pbWFnZSwwKSxzLnVuaWZvcm0yZnYobi51X3BhdHRlcm5fdGxfYSxmLnRsKSxzLnVuaWZvcm0yZnYobi51X3BhdHRlcm5fYnJfYSxmLmJyKSxzLnVuaWZvcm0yZnYobi51X3BhdHRlcm5fdGxfYixwLnRsKSxzLnVuaWZvcm0yZnYobi51X3BhdHRlcm5fYnJfYixwLmJyKSxzLnVuaWZvcm0xZihuLnVfb3BhY2l0eSxoKSxzLnVuaWZvcm0xZihuLnVfbWl4LGMudCkscy51bmlmb3JtMmZ2KG4udV9wYXR0ZXJuX3NpemVfYSxmLnNpemUpLHMudW5pZm9ybTJmdihuLnVfcGF0dGVybl9zaXplX2IscC5zaXplKSxzLnVuaWZvcm0xZihuLnVfc2NhbGVfYSxjLmZyb21TY2FsZSkscy51bmlmb3JtMWYobi51X3NjYWxlX2IsYy50b1NjYWxlKSxzLmFjdGl2ZVRleHR1cmUocy5URVhUVVJFMCksdC5zcHJpdGVBdGxhcy5iaW5kKHMsITApLHQudGlsZUV4dGVudFBhdHRlcm5WQU8uYmluZChzLG4sdC50aWxlRXh0ZW50QnVmZmVyKX1lbHNle2lmKHQuaXNPcGFxdWVQYXNzIT09KDE9PT11WzNdKSlyZXR1cm47dmFyIGQ9byhbe25hbWU6InVfY29sb3IiLGNvbXBvbmVudHM6NH0se25hbWU6InVfb3BhY2l0eSIsY29tcG9uZW50czoxfV0pO249dC51c2VQcm9ncmFtKCJmaWxsIixbXSxkLGQpLHMudW5pZm9ybTRmdihuLnVfY29sb3IsdSkscy51bmlmb3JtMWYobi51X29wYWNpdHksaCksdC50aWxlRXh0ZW50VkFPLmJpbmQocyxuLHQudGlsZUV4dGVudEJ1ZmZlcil9cy5kaXNhYmxlKHMuU1RFTkNJTF9URVNUKTtmb3IodmFyIG09bC5jb3ZlcmluZ1RpbGVzKHt0aWxlU2l6ZTphfSksZz0wO2c8bS5sZW5ndGg7ZysrKXt2YXIgdj1tW2ddO2lmKGYmJnApe3ZhciB5PXtjb29yZDp2LHRpbGVTaXplOmF9O3MudW5pZm9ybTFmKG4udV90aWxlX3VuaXRzX3RvX3BpeGVscywxL2koeSwxLHQudHJhbnNmb3JtLnRpbGVab29tKSk7dmFyIGI9eS50aWxlU2l6ZSpNYXRoLnBvdygyLHQudHJhbnNmb3JtLnRpbGVab29tLXkuY29vcmQueikseD1iKih5LmNvb3JkLngrdi53Kk1hdGgucG93KDIseS5jb29yZC56KSksXz1iKnkuY29vcmQueTtzLnVuaWZvcm0yZihuLnVfcGl4ZWxfY29vcmRfdXBwZXIseD4+MTYsXz4+MTYpLHMudW5pZm9ybTJmKG4udV9waXhlbF9jb29yZF9sb3dlciw2NTUzNSZ4LDY1NTM1Jl8pfXMudW5pZm9ybU1hdHJpeDRmdihuLnVfbWF0cml4LCExLHQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeCh2KSkscy5kcmF3QXJyYXlzKHMuVFJJQU5HTEVfU1RSSVAsMCx0LnRpbGVFeHRlbnRCdWZmZXIubGVuZ3RoKX1zLnN0ZW5jaWxNYXNrKDApLHMuc3RlbmNpbEZ1bmMocy5FUVVBTCwxMjgsMTI4KX12YXIgaT10KCIuLi9zb3VyY2UvcGl4ZWxzX3RvX3RpbGVfdW5pdHMiKSxvPXQoIi4vY3JlYXRlX3VuaWZvcm1fcHJhZ21hcyIpLGE9NTEyO2UuZXhwb3J0cz1ufSx7Ii4uL3NvdXJjZS9waXhlbHNfdG9fdGlsZV91bml0cyI6Mjg3LCIuL2NyZWF0ZV91bmlmb3JtX3ByYWdtYXMiOjI2OH1dLDI3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe2lmKCF0LmlzT3BhcXVlUGFzcyl7dmFyIG89dC5nbDt0LnNldERlcHRoU3VibGF5ZXIoMCksdC5kZXB0aE1hc2soITEpLG8uZGlzYWJsZShvLlNURU5DSUxfVEVTVCk7Zm9yKHZhciBhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBzPW5bYV0sbD1lLmdldFRpbGUocyksdT1sLmdldEJ1Y2tldChyKTtpZih1KXt2YXIgYz11LmJ1ZmZlckdyb3Vwcy5jaXJjbGU7aWYoYyl7dmFyIGg9dS5wYWludEF0dHJpYnV0ZXMuY2lyY2xlW3IuaWRdLGY9dC51c2VQcm9ncmFtKCJjaXJjbGUiLGguZGVmaW5lcyxoLnZlcnRleFByYWdtYXMsaC5mcmFnbWVudFByYWdtYXMpOyJtYXAiPT09ci5wYWludFsiY2lyY2xlLXBpdGNoLXNjYWxlIl0/KG8udW5pZm9ybTFpKGYudV9zY2FsZV93aXRoX21hcCwhMCksby51bmlmb3JtMmYoZi51X2V4dHJ1ZGVfc2NhbGUsdC50cmFuc2Zvcm0ucGl4ZWxzVG9HTFVuaXRzWzBdKnQudHJhbnNmb3JtLmFsdGl0dWRlLHQudHJhbnNmb3JtLnBpeGVsc1RvR0xVbml0c1sxXSp0LnRyYW5zZm9ybS5hbHRpdHVkZSkpOihvLnVuaWZvcm0xaShmLnVfc2NhbGVfd2l0aF9tYXAsITEpLG8udW5pZm9ybTJmdihmLnVfZXh0cnVkZV9zY2FsZSx0LnRyYW5zZm9ybS5waXhlbHNUb0dMVW5pdHMpKSxvLnVuaWZvcm0xZihmLnVfZGV2aWNlcGl4ZWxyYXRpbyxpLmRldmljZVBpeGVsUmF0aW8pLG8udW5pZm9ybU1hdHJpeDRmdihmLnVfbWF0cml4LCExLHQudHJhbnNsYXRlUG9zTWF0cml4KHMucG9zTWF0cml4LGwsci5wYWludFsiY2lyY2xlLXRyYW5zbGF0ZSJdLHIucGFpbnRbImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIl0pKSx1LnNldFVuaWZvcm1zKG8sImNpcmNsZSIsZixyLHt6b29tOnQudHJhbnNmb3JtLnpvb219KTtmb3IodmFyIHA9MDtwPGMubGVuZ3RoO3ArKyl7dmFyIGQ9Y1twXTtkLnZhb3Nbci5pZF0uYmluZChvLGYsZC5sYXlvdXRWZXJ0ZXhCdWZmZXIsZC5lbGVtZW50QnVmZmVyLGQucGFpbnRWZXJ0ZXhCdWZmZXJzW3IuaWRdKSxvLmRyYXdFbGVtZW50cyhvLlRSSUFOR0xFUywzKmQuZWxlbWVudEJ1ZmZlci5sZW5ndGgsby5VTlNJR05FRF9TSE9SVCwwKX19fX19fXZhciBpPXQoIi4uL3V0aWwvYnJvd3NlciIpO2UuZXhwb3J0cz1ufSx7Ii4uL3V0aWwvYnJvd3NlciI6MzUwfV0sMjcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIGk9dC5nbDtpLmVuYWJsZShpLlNURU5DSUxfVEVTVCk7Zm9yKHZhciBvPXQudXNlUHJvZ3JhbSgiY29sbGlzaW9uYm94IiksYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgcz1uW2FdLGw9ZS5nZXRUaWxlKHMpLHU9bC5nZXRCdWNrZXQocik7aWYodSl7dmFyIGM9dS5idWZmZXJHcm91cHMuY29sbGlzaW9uQm94O2lmKGMmJmMubGVuZ3RoKXt2YXIgaD1jWzBdOzAhPT1oLmxheW91dFZlcnRleEJ1ZmZlci5sZW5ndGgmJihpLnVuaWZvcm1NYXRyaXg0ZnYoby51X21hdHJpeCwhMSxzLnBvc01hdHJpeCksdC5lbmFibGVUaWxlQ2xpcHBpbmdNYXNrKHMpLHQubGluZVdpZHRoKDEpLGkudW5pZm9ybTFmKG8udV9zY2FsZSxNYXRoLnBvdygyLHQudHJhbnNmb3JtLnpvb20tbC5jb29yZC56KSksaS51bmlmb3JtMWYoby51X3pvb20sMTAqdC50cmFuc2Zvcm0uem9vbSksaS51bmlmb3JtMWYoby51X21heHpvb20sMTAqKGwuY29vcmQueisxKSksaC52YW9zW3IuaWRdLmJpbmQoaSxvLGgubGF5b3V0VmVydGV4QnVmZmVyKSxpLmRyYXdBcnJheXMoaS5MSU5FUywwLGgubGF5b3V0VmVydGV4QnVmZmVyLmxlbmd0aCkpfX19fWUuZXhwb3J0cz1ufSx7fV0sMjcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe2lmKCF0LmlzT3BhcXVlUGFzcyYmdC5vcHRpb25zLmRlYnVnKWZvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKWkodCxlLHJbbl0pfWZ1bmN0aW9uIGkodCxlLHIpe3ZhciBuPXQuZ2w7bi5kaXNhYmxlKG4uU1RFTkNJTF9URVNUKSx0LmxpbmVXaWR0aCgxKmEuZGV2aWNlUGl4ZWxSYXRpbyk7dmFyIGk9ci5wb3NNYXRyaXgsaD10LnVzZVByb2dyYW0oImRlYnVnIik7bi51bmlmb3JtTWF0cml4NGZ2KGgudV9tYXRyaXgsITEsaSksbi51bmlmb3JtNGYoaC51X2NvbG9yLDEsMCwwLDEpLHQuZGVidWdWQU8uYmluZChuLGgsdC5kZWJ1Z0J1ZmZlciksbi5kcmF3QXJyYXlzKG4uTElORV9TVFJJUCwwLHQuZGVidWdCdWZmZXIubGVuZ3RoKTtmb3IodmFyIGY9byhyLnRvU3RyaW5nKCksNTAsMjAwLDUpLHA9bmV3IHQuUG9zQXJyYXksZD0wO2Q8Zi5sZW5ndGg7ZCs9MilwLmVtcGxhY2VCYWNrKGZbZF0sZltkKzFdKTt2YXIgbT1uZXcgdShwLnNlcmlhbGl6ZSgpLHQuUG9zQXJyYXkuc2VyaWFsaXplKCksdS5CdWZmZXJUeXBlLlZFUlRFWCksZz1uZXcgYztnLmJpbmQobixoLG0pLG4udW5pZm9ybTRmKGgudV9jb2xvciwxLDEsMSwxKTtmb3IodmFyIHY9ZS5nZXRUaWxlKHIpLnRpbGVTaXplLHk9bC8oTWF0aC5wb3coMix0LnRyYW5zZm9ybS56b29tLXIueikqdiksYj1bWy0xLC0xXSxbLTEsMV0sWzEsLTFdLFsxLDFdXSx4PTA7eDxiLmxlbmd0aDt4Kyspe3ZhciBfPWJbeF07bi51bmlmb3JtTWF0cml4NGZ2KGgudV9tYXRyaXgsITEscy50cmFuc2xhdGUoW10saSxbeSpfWzBdLHkqX1sxXSwwXSkpLG4uZHJhd0FycmF5cyhuLkxJTkVTLDAsbS5sZW5ndGgpfW4udW5pZm9ybTRmKGgudV9jb2xvciwwLDAsMCwxKSxuLnVuaWZvcm1NYXRyaXg0ZnYoaC51X21hdHJpeCwhMSxpKSxuLmRyYXdBcnJheXMobi5MSU5FUywwLG0ubGVuZ3RoKX12YXIgbz10KCIuLi9saWIvZGVidWd0ZXh0IiksYT10KCIuLi91dGlsL2Jyb3dzZXIiKSxzPXQoImdsLW1hdHJpeCIpLm1hdDQsbD10KCIuLi9kYXRhL2J1Y2tldCIpLkVYVEVOVCx1PXQoIi4uL2RhdGEvYnVmZmVyIiksYz10KCIuL3ZlcnRleF9hcnJheV9vYmplY3QiKTtlLmV4cG9ydHM9bn0seyIuLi9kYXRhL2J1Y2tldCI6MjUzLCIuLi9kYXRhL2J1ZmZlciI6MjU4LCIuLi9saWIvZGVidWd0ZXh0IjoyNjYsIi4uL3V0aWwvYnJvd3NlciI6MzUwLCIuL3ZlcnRleF9hcnJheV9vYmplY3QiOjI4MSwiZ2wtbWF0cml4IjozODJ9XSwyNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt2YXIgYT10LmdsO2EuZW5hYmxlKGEuU1RFTkNJTF9URVNUKTt2YXIgcztpZihzPXIucGFpbnRbImZpbGwtcGF0dGVybiJdPyExOnIuaXNQYWludFZhbHVlRmVhdHVyZUNvbnN0YW50KCJmaWxsLWNvbG9yIikmJnIuaXNQYWludFZhbHVlRmVhdHVyZUNvbnN0YW50KCJmaWxsLW9wYWNpdHkiKSYmMT09PXIucGFpbnRbImZpbGwtY29sb3IiXVszXSYmMT09PXIucGFpbnRbImZpbGwtb3BhY2l0eSJdLHQuaXNPcGFxdWVQYXNzPT09cyl7dC5zZXREZXB0aFN1YmxheWVyKDEpO2Zvcih2YXIgbD0wO2w8bi5sZW5ndGg7bCsrKWkodCxlLHIsbltsXSl9aWYoIXQuaXNPcGFxdWVQYXNzJiZyLnBhaW50WyJmaWxsLWFudGlhbGlhcyJdKXt0LmxpbmVXaWR0aCgyKSx0LmRlcHRoTWFzayghMSk7dmFyIHU9ci5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKTsodXx8IXIucGFpbnRbImZpbGwtcGF0dGVybiJdKSYmdT90LnNldERlcHRoU3VibGF5ZXIoMik6dC5zZXREZXB0aFN1YmxheWVyKDApO2Zvcih2YXIgYz0wO2M8bi5sZW5ndGg7YysrKW8odCxlLHIsbltjXSl9fWZ1bmN0aW9uIGkodCxlLHIsbil7dmFyIGk9ZS5nZXRUaWxlKG4pLG89aS5nZXRCdWNrZXQocik7aWYobyl7dmFyIHM9by5idWZmZXJHcm91cHMuZmlsbDtpZihzKXt2YXIgbCx1PXQuZ2wsYz1yLnBhaW50WyJmaWxsLXBhdHRlcm4iXTtpZihjKWw9dC51c2VQcm9ncmFtKCJwYXR0ZXJuIiksYShjLHIucGFpbnRbImZpbGwtb3BhY2l0eSJdLGksbix0LGwpLHUuYWN0aXZlVGV4dHVyZSh1LlRFWFRVUkUwKSx0LnNwcml0ZUF0bGFzLmJpbmQodSwhMCk7ZWxzZXt2YXIgaD1vLnBhaW50QXR0cmlidXRlcy5maWxsW3IuaWRdO2w9dC51c2VQcm9ncmFtKCJmaWxsIixoLmRlZmluZXMsaC52ZXJ0ZXhQcmFnbWFzLGguZnJhZ21lbnRQcmFnbWFzKSxvLnNldFVuaWZvcm1zKHUsImZpbGwiLGwscix7em9vbTp0LnRyYW5zZm9ybS56b29tfSl9dS51bmlmb3JtTWF0cml4NGZ2KGwudV9tYXRyaXgsITEsdC50cmFuc2xhdGVQb3NNYXRyaXgobi5wb3NNYXRyaXgsaSxyLnBhaW50WyJmaWxsLXRyYW5zbGF0ZSJdLHIucGFpbnRbImZpbGwtdHJhbnNsYXRlLWFuY2hvciJdKSksdC5lbmFibGVUaWxlQ2xpcHBpbmdNYXNrKG4pO2Zvcih2YXIgZj0wO2Y8cy5sZW5ndGg7ZisrKXt2YXIgcD1zW2ZdO3AudmFvc1tyLmlkXS5iaW5kKHUsbCxwLmxheW91dFZlcnRleEJ1ZmZlcixwLmVsZW1lbnRCdWZmZXIscC5wYWludFZlcnRleEJ1ZmZlcnNbci5pZF0pLHUuZHJhd0VsZW1lbnRzKHUuVFJJQU5HTEVTLHAuZWxlbWVudEJ1ZmZlci5sZW5ndGgsdS5VTlNJR05FRF9TSE9SVCwwKX19fX1mdW5jdGlvbiBvKHQsZSxyLG4pe3ZhciBpPWUuZ2V0VGlsZShuKSxvPWkuZ2V0QnVja2V0KHIpO2lmKG8pe3ZhciBzLGw9dC5nbCx1PW8uYnVmZmVyR3JvdXBzLmZpbGwsYz1yLnBhaW50WyJmaWxsLXBhdHRlcm4iXSxoPXIucGFpbnRbImZpbGwtb3BhY2l0eSJdLGY9ci5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKTtpZihjJiYhZilzPXQudXNlUHJvZ3JhbSgib3V0bGluZXBhdHRlcm4iKSxsLnVuaWZvcm0yZihzLnVfd29ybGQsbC5kcmF3aW5nQnVmZmVyV2lkdGgsbC5kcmF3aW5nQnVmZmVySGVpZ2h0KTtlbHNle3ZhciBwPW8ucGFpbnRBdHRyaWJ1dGVzLmZpbGxbci5pZF07cz10LnVzZVByb2dyYW0oIm91dGxpbmUiLHAuZGVmaW5lcyxwLnZlcnRleFByYWdtYXMscC5mcmFnbWVudFByYWdtYXMpLGwudW5pZm9ybTJmKHMudV93b3JsZCxsLmRyYXdpbmdCdWZmZXJXaWR0aCxsLmRyYXdpbmdCdWZmZXJIZWlnaHQpLGwudW5pZm9ybTFmKHMudV9vcGFjaXR5LGgpLG8uc2V0VW5pZm9ybXMobCwiZmlsbCIscyxyLHt6b29tOnQudHJhbnNmb3JtLnpvb219KX1sLnVuaWZvcm1NYXRyaXg0ZnYocy51X21hdHJpeCwhMSx0LnRyYW5zbGF0ZVBvc01hdHJpeChuLnBvc01hdHJpeCxpLHIucGFpbnRbImZpbGwtdHJhbnNsYXRlIl0sci5wYWludFsiZmlsbC10cmFuc2xhdGUtYW5jaG9yIl0pKSxjJiZhKGMsaCxpLG4sdCxzKSx0LmVuYWJsZVRpbGVDbGlwcGluZ01hc2sobik7Zm9yKHZhciBkPTA7ZDx1Lmxlbmd0aDtkKyspe3ZhciBtPXVbZF07bS5zZWNvbmRWYW9zW3IuaWRdLmJpbmQobCxzLG0ubGF5b3V0VmVydGV4QnVmZmVyLG0uZWxlbWVudEJ1ZmZlcjIsbS5wYWludFZlcnRleEJ1ZmZlcnNbci5pZF0pLGwuZHJhd0VsZW1lbnRzKGwuTElORVMsMiptLmVsZW1lbnRCdWZmZXIyLmxlbmd0aCxsLlVOU0lHTkVEX1NIT1JULDApfX19ZnVuY3Rpb24gYSh0LGUscixuLGksbyl7dmFyIGE9aS5nbCxsPWkuc3ByaXRlQXRsYXMuZ2V0UG9zaXRpb24odC5mcm9tLCEwKSx1PWkuc3ByaXRlQXRsYXMuZ2V0UG9zaXRpb24odC50bywhMCk7aWYobCYmdSl7YS51bmlmb3JtMWkoby51X2ltYWdlLDApLGEudW5pZm9ybTJmdihvLnVfcGF0dGVybl90bF9hLGwudGwpLGEudW5pZm9ybTJmdihvLnVfcGF0dGVybl9icl9hLGwuYnIpLGEudW5pZm9ybTJmdihvLnVfcGF0dGVybl90bF9iLHUudGwpLGEudW5pZm9ybTJmdihvLnVfcGF0dGVybl9icl9iLHUuYnIpLGEudW5pZm9ybTFmKG8udV9vcGFjaXR5LGUpLGEudW5pZm9ybTFmKG8udV9taXgsdC50KSxhLnVuaWZvcm0xZihvLnVfdGlsZV91bml0c190b19waXhlbHMsMS9zKHIsMSxpLnRyYW5zZm9ybS50aWxlWm9vbSkpLGEudW5pZm9ybTJmdihvLnVfcGF0dGVybl9zaXplX2EsbC5zaXplKSxhLnVuaWZvcm0yZnYoby51X3BhdHRlcm5fc2l6ZV9iLHUuc2l6ZSksYS51bmlmb3JtMWYoby51X3NjYWxlX2EsdC5mcm9tU2NhbGUpLGEudW5pZm9ybTFmKG8udV9zY2FsZV9iLHQudG9TY2FsZSk7dmFyIGM9ci50aWxlU2l6ZSpNYXRoLnBvdygyLGkudHJhbnNmb3JtLnRpbGVab29tLXIuY29vcmQueiksaD1jKihyLmNvb3JkLngrbi53Kk1hdGgucG93KDIsci5jb29yZC56KSksZj1jKnIuY29vcmQueTthLnVuaWZvcm0yZihvLnVfcGl4ZWxfY29vcmRfdXBwZXIsaD4+MTYsZj4+MTYpLGEudW5pZm9ybTJmKG8udV9waXhlbF9jb29yZF9sb3dlciw2NTUzNSZoLDY1NTM1JmYpLGEuYWN0aXZlVGV4dHVyZShhLlRFWFRVUkUwKSxpLnNwcml0ZUF0bGFzLmJpbmQoYSwhMCl9fXZhciBzPXQoIi4uL3NvdXJjZS9waXhlbHNfdG9fdGlsZV91bml0cyIpO2UuZXhwb3J0cz1ufSx7Ii4uL3NvdXJjZS9waXhlbHNfdG9fdGlsZV91bml0cyI6Mjg3fV0sMjc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWwvYnJvd3NlciIpLGk9dCgiZ2wtbWF0cml4IikubWF0MixvPXQoIi4uL3NvdXJjZS9waXhlbHNfdG9fdGlsZV91bml0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXtpZighdC5pc09wYXF1ZVBhc3Mpe3Quc2V0RGVwdGhTdWJsYXllcigwKSx0LmRlcHRoTWFzayghMSk7dmFyIHM9dC5nbDtpZihzLmVuYWJsZShzLlNURU5DSUxfVEVTVCksIShyLnBhaW50WyJsaW5lLXdpZHRoIl08PTApKXt2YXIgbD0xL24uZGV2aWNlUGl4ZWxSYXRpbyx1PXIucGFpbnRbImxpbmUtYmx1ciJdK2wsYz1yLnBhaW50WyJsaW5lLWNvbG9yIl0saD10LnRyYW5zZm9ybSxmPWkuY3JlYXRlKCk7aS5zY2FsZShmLGYsWzEsTWF0aC5jb3MoaC5fcGl0Y2gpXSksaS5yb3RhdGUoZixmLHQudHJhbnNmb3JtLmFuZ2xlKTt2YXIgcCxkLG0sZyx2LHk9TWF0aC5zcXJ0KGguaGVpZ2h0KmguaGVpZ2h0LzQqKDEraC5hbHRpdHVkZSpoLmFsdGl0dWRlKSksYj1oLmhlaWdodC8yKk1hdGgudGFuKGguX3BpdGNoKSx4PSh5K2IpL3ktMSxfPXIucGFpbnRbImxpbmUtZGFzaGFycmF5Il0sdz1yLnBhaW50WyJsaW5lLXBhdHRlcm4iXTtpZihfKXA9dC51c2VQcm9ncmFtKCJsaW5lc2RmcGF0dGVybiIpLHMudW5pZm9ybTFmKHAudV9saW5ld2lkdGgsci5wYWludFsibGluZS13aWR0aCJdLzIpLHMudW5pZm9ybTFmKHAudV9nYXB3aWR0aCxyLnBhaW50WyJsaW5lLWdhcC13aWR0aCJdLzIpLHMudW5pZm9ybTFmKHAudV9hbnRpYWxpYXNpbmcsbC8yKSxzLnVuaWZvcm0xZihwLnVfYmx1cix1KSxzLnVuaWZvcm00ZnYocC51X2NvbG9yLGMpLHMudW5pZm9ybTFmKHAudV9vcGFjaXR5LHIucGFpbnRbImxpbmUtb3BhY2l0eSJdKSxkPXQubGluZUF0bGFzLmdldERhc2goXy5mcm9tLCJyb3VuZCI9PT1yLmxheW91dFsibGluZS1jYXAiXSksbT10LmxpbmVBdGxhcy5nZXREYXNoKF8udG8sInJvdW5kIj09PXIubGF5b3V0WyJsaW5lLWNhcCJdKSxzLnVuaWZvcm0xaShwLnVfaW1hZ2UsMCkscy5hY3RpdmVUZXh0dXJlKHMuVEVYVFVSRTApLHQubGluZUF0bGFzLmJpbmQocykscy51bmlmb3JtMWYocC51X3RleF95X2EsZC55KSxzLnVuaWZvcm0xZihwLnVfdGV4X3lfYixtLnkpLHMudW5pZm9ybTFmKHAudV9taXgsXy50KSxzLnVuaWZvcm0xZihwLnVfZXh0cmEseCkscy51bmlmb3JtMWYocC51X29mZnNldCwtci5wYWludFsibGluZS1vZmZzZXQiXSkscy51bmlmb3JtTWF0cml4MmZ2KHAudV9hbnRpYWxpYXNpbmdtYXRyaXgsITEsZik7ZWxzZSBpZih3KXtpZihnPXQuc3ByaXRlQXRsYXMuZ2V0UG9zaXRpb24ody5mcm9tLCEwKSx2PXQuc3ByaXRlQXRsYXMuZ2V0UG9zaXRpb24ody50bywhMCksIWd8fCF2KXJldHVybjtwPXQudXNlUHJvZ3JhbSgibGluZXBhdHRlcm4iKSxzLnVuaWZvcm0xaShwLnVfaW1hZ2UsMCkscy5hY3RpdmVUZXh0dXJlKHMuVEVYVFVSRTApLHQuc3ByaXRlQXRsYXMuYmluZChzLCEwKSxzLnVuaWZvcm0xZihwLnVfbGluZXdpZHRoLHIucGFpbnRbImxpbmUtd2lkdGgiXS8yKSxzLnVuaWZvcm0xZihwLnVfZ2Fwd2lkdGgsci5wYWludFsibGluZS1nYXAtd2lkdGgiXS8yKSxzLnVuaWZvcm0xZihwLnVfYW50aWFsaWFzaW5nLGwvMikscy51bmlmb3JtMWYocC51X2JsdXIsdSkscy51bmlmb3JtMmZ2KHAudV9wYXR0ZXJuX3RsX2EsZy50bCkscy51bmlmb3JtMmZ2KHAudV9wYXR0ZXJuX2JyX2EsZy5icikscy51bmlmb3JtMmZ2KHAudV9wYXR0ZXJuX3RsX2Isdi50bCkscy51bmlmb3JtMmZ2KHAudV9wYXR0ZXJuX2JyX2Isdi5icikscy51bmlmb3JtMWYocC51X2ZhZGUsdy50KSxzLnVuaWZvcm0xZihwLnVfb3BhY2l0eSxyLnBhaW50WyJsaW5lLW9wYWNpdHkiXSkscy51bmlmb3JtMWYocC51X2V4dHJhLHgpLHMudW5pZm9ybTFmKHAudV9vZmZzZXQsLXIucGFpbnRbImxpbmUtb2Zmc2V0Il0pLHMudW5pZm9ybU1hdHJpeDJmdihwLnVfYW50aWFsaWFzaW5nbWF0cml4LCExLGYpfWVsc2UgcD10LnVzZVByb2dyYW0oImxpbmUiKSxzLnVuaWZvcm0xZihwLnVfbGluZXdpZHRoLHIucGFpbnRbImxpbmUtd2lkdGgiXS8yKSxzLnVuaWZvcm0xZihwLnVfZ2Fwd2lkdGgsci5wYWludFsibGluZS1nYXAtd2lkdGgiXS8yKSxzLnVuaWZvcm0xZihwLnVfYW50aWFsaWFzaW5nLGwvMikscy51bmlmb3JtMWYocC51X2JsdXIsdSkscy51bmlmb3JtMWYocC51X2V4dHJhLHgpLHMudW5pZm9ybTFmKHAudV9vZmZzZXQsLXIucGFpbnRbImxpbmUtb2Zmc2V0Il0pLHMudW5pZm9ybU1hdHJpeDJmdihwLnVfYW50aWFsaWFzaW5nbWF0cml4LCExLGYpLHMudW5pZm9ybTRmdihwLnVfY29sb3IsYykscy51bmlmb3JtMWYocC51X29wYWNpdHksci5wYWludFsibGluZS1vcGFjaXR5Il0pO2Zvcih2YXIgTT0wO008YS5sZW5ndGg7TSsrKXt2YXIgaz1hW01dLEE9ZS5nZXRUaWxlKGspLFQ9QS5nZXRCdWNrZXQocik7aWYoVCl7dmFyIEU9VC5idWZmZXJHcm91cHMubGluZTtpZihFKXt0LmVuYWJsZVRpbGVDbGlwcGluZ01hc2soayk7dmFyIFM9dC50cmFuc2xhdGVQb3NNYXRyaXgoay5wb3NNYXRyaXgsQSxyLnBhaW50WyJsaW5lLXRyYW5zbGF0ZSJdLHIucGFpbnRbImxpbmUtdHJhbnNsYXRlLWFuY2hvciJdKTtzLnVuaWZvcm1NYXRyaXg0ZnYocC51X21hdHJpeCwhMSxTKTt2YXIgTD0xL28oQSwxLHQudHJhbnNmb3JtLnpvb20pO2lmKF8pe3ZhciB6PWQud2lkdGgqXy5mcm9tU2NhbGUsST1tLndpZHRoKl8udG9TY2FsZSxQPVsxL28oQSx6LHQudHJhbnNmb3JtLnRpbGVab29tKSwtZC5oZWlnaHQvMl0sQz1bMS9vKEEsSSx0LnRyYW5zZm9ybS50aWxlWm9vbSksLW0uaGVpZ2h0LzJdLFI9dC5saW5lQXRsYXMud2lkdGgvKDI1NipNYXRoLm1pbih6LEkpKm4uZGV2aWNlUGl4ZWxSYXRpbykvMjtzLnVuaWZvcm0xZihwLnVfcmF0aW8sTCkscy51bmlmb3JtMmZ2KHAudV9wYXR0ZXJuc2NhbGVfYSxQKSxzLnVuaWZvcm0yZnYocC51X3BhdHRlcm5zY2FsZV9iLEMpLHMudW5pZm9ybTFmKHAudV9zZGZnYW1tYSxSKX1lbHNlIHc/KHMudW5pZm9ybTFmKHAudV9yYXRpbyxMKSxzLnVuaWZvcm0yZnYocC51X3BhdHRlcm5fc2l6ZV9hLFtvKEEsZy5zaXplWzBdKncuZnJvbVNjYWxlLHQudHJhbnNmb3JtLnRpbGVab29tKSx2LnNpemVbMV1dKSxzLnVuaWZvcm0yZnYocC51X3BhdHRlcm5fc2l6ZV9iLFtvKEEsdi5zaXplWzBdKncudG9TY2FsZSx0LnRyYW5zZm9ybS50aWxlWm9vbSksdi5zaXplWzFdXSkpOnMudW5pZm9ybTFmKHAudV9yYXRpbyxMKTtmb3IodmFyIGo9MDtqPEUubGVuZ3RoO2orKyl7dmFyIEQ9RVtqXTtELnZhb3Nbci5pZF0uYmluZChzLHAsRC5sYXlvdXRWZXJ0ZXhCdWZmZXIsRC5lbGVtZW50QnVmZmVyKSxzLmRyYXdFbGVtZW50cyhzLlRSSUFOR0xFUywzKkQuZWxlbWVudEJ1ZmZlci5sZW5ndGgscy5VTlNJR05FRF9TSE9SVCwwKX19fX19fX19LHsiLi4vc291cmNlL3BpeGVsc190b190aWxlX3VuaXRzIjoyODcsIi4uL3V0aWwvYnJvd3NlciI6MzUwLCJnbC1tYXRyaXgiOjM4Mn1dLDI3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe2lmKCF0LmlzT3BhcXVlUGFzcyl7dmFyIG89dC5nbDtvLmVuYWJsZShvLkRFUFRIX1RFU1QpLHQuZGVwdGhNYXNrKCEwKSxvLmRlcHRoRnVuYyhvLkxFU1MpO2Zvcih2YXIgYT1uLmxlbmd0aCYmblswXS56LHM9MDtzPG4ubGVuZ3RoO3MrKyl7dmFyIGw9bltzXTt0LnNldERlcHRoU3VibGF5ZXIobC56LWEpLGkodCxlLHIsbCl9by5kZXB0aEZ1bmMoby5MRVFVQUwpfX1mdW5jdGlvbiBpKHQsZSxyLG4pe3ZhciBpPXQuZ2w7aS5kaXNhYmxlKGkuU1RFTkNJTF9URVNUKTt2YXIgdT1lLmdldFRpbGUobiksYz10LnRyYW5zZm9ybS5jYWxjdWxhdGVQb3NNYXRyaXgobixlLm1heHpvb20pLGg9dC51c2VQcm9ncmFtKCJyYXN0ZXIiKTtpLnVuaWZvcm1NYXRyaXg0ZnYoaC51X21hdHJpeCwhMSxjKSxpLnVuaWZvcm0xZihoLnVfYnJpZ2h0bmVzc19sb3csci5wYWludFsicmFzdGVyLWJyaWdodG5lc3MtbWluIl0pLGkudW5pZm9ybTFmKGgudV9icmlnaHRuZXNzX2hpZ2gsci5wYWludFsicmFzdGVyLWJyaWdodG5lc3MtbWF4Il0pLGkudW5pZm9ybTFmKGgudV9zYXR1cmF0aW9uX2ZhY3RvcixzKHIucGFpbnRbInJhc3Rlci1zYXR1cmF0aW9uIl0pKSxpLnVuaWZvcm0xZihoLnVfY29udHJhc3RfZmFjdG9yLGEoci5wYWludFsicmFzdGVyLWNvbnRyYXN0Il0pKSxpLnVuaWZvcm0zZnYoaC51X3NwaW5fd2VpZ2h0cyxvKHIucGFpbnRbInJhc3Rlci1odWUtcm90YXRlIl0pKTt2YXIgZixwLGQ9dS5zb3VyY2UmJnUuc291cmNlLmZpbmRMb2FkZWRQYXJlbnQobiwwLHt9KSxtPWwodSxkLHIsdC50cmFuc2Zvcm0pO2kuYWN0aXZlVGV4dHVyZShpLlRFWFRVUkUwKSxpLmJpbmRUZXh0dXJlKGkuVEVYVFVSRV8yRCx1LnRleHR1cmUpLGkuYWN0aXZlVGV4dHVyZShpLlRFWFRVUkUxKSxkPyhpLmJpbmRUZXh0dXJlKGkuVEVYVFVSRV8yRCxkLnRleHR1cmUpLGY9TWF0aC5wb3coMixkLmNvb3JkLnotdS5jb29yZC56KSxwPVt1LmNvb3JkLngqZiUxLHUuY29vcmQueSpmJTFdKTooaS5iaW5kVGV4dHVyZShpLlRFWFRVUkVfMkQsdS50ZXh0dXJlKSxtWzFdPTApLGkudW5pZm9ybTJmdihoLnVfdGxfcGFyZW50LHB8fFswLDBdKSxpLnVuaWZvcm0xZihoLnVfc2NhbGVfcGFyZW50LGZ8fDEpLGkudW5pZm9ybTFmKGgudV9idWZmZXJfc2NhbGUsMSksaS51bmlmb3JtMWYoaC51X29wYWNpdHkwLG1bMF0pLGkudW5pZm9ybTFmKGgudV9vcGFjaXR5MSxtWzFdKSxpLnVuaWZvcm0xaShoLnVfaW1hZ2UwLDApLGkudW5pZm9ybTFpKGgudV9pbWFnZTEsMSk7dmFyIGc9dS5ib3VuZHNCdWZmZXJ8fHQucmFzdGVyQm91bmRzQnVmZmVyLHY9dS5ib3VuZHNWQU98fHQucmFzdGVyQm91bmRzVkFPO3YuYmluZChpLGgsZyksaS5kcmF3QXJyYXlzKGkuVFJJQU5HTEVfU1RSSVAsMCxnLmxlbmd0aCl9ZnVuY3Rpb24gbyh0KXt0Kj1NYXRoLlBJLzE4MDt2YXIgZT1NYXRoLnNpbih0KSxyPU1hdGguY29zKHQpO3JldHVyblsoMipyKzEpLzMsKC1NYXRoLnNxcnQoMykqZS1yKzEpLzMsKE1hdGguc3FydCgzKSplLXIrMSkvM119ZnVuY3Rpb24gYSh0KXtyZXR1cm4gdD4wPzEvKDEtdCk6MSt0fWZ1bmN0aW9uIHModCl7cmV0dXJuIHQ+MD8xLTEvKDEuMDAxLXQpOi10fWZ1bmN0aW9uIGwodCxlLHIsbil7dmFyIGk9WzEsMF0sbz1yLnBhaW50WyJyYXN0ZXItZmFkZS1kdXJhdGlvbiJdO2lmKHQuc291cmNlJiZvPjApe3ZhciBhPShuZXcgRGF0ZSkuZ2V0VGltZSgpLHM9KGEtdC50aW1lQWRkZWQpL28sbD1lPyhhLWUudGltZUFkZGVkKS9vOi0xLGM9bi5jb3ZlcmluZ1pvb21MZXZlbCh0LnNvdXJjZSksaD1lP01hdGguYWJzKGUuY29vcmQuei1jKT5NYXRoLmFicyh0LmNvb3JkLnotYyk6ITE7IWV8fGg/KGlbMF09dS5jbGFtcChzLDAsMSksaVsxXT0xLWlbMF0pOihpWzBdPXUuY2xhbXAoMS1sLDAsMSksaVsxXT0xLWlbMF0pfXZhciBmPXIucGFpbnRbInJhc3Rlci1vcGFjaXR5Il07cmV0dXJuIGlbMF0qPWYsaVsxXSo9ZixpfXZhciB1PXQoIi4uL3V0aWwvdXRpbCIpLGM9dCgiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiKTtlLmV4cG9ydHM9bixuLlJhc3RlckJvdW5kc0FycmF5PW5ldyBjKHttZW1iZXJzOlt7bmFtZToiYV9wb3MiLHR5cGU6IkludDE2Iixjb21wb25lbnRzOjJ9LHtuYW1lOiJhX3RleHR1cmVfcG9zIix0eXBlOiJJbnQxNiIsY29tcG9uZW50czoyfV19KX0seyIuLi91dGlsL3N0cnVjdF9hcnJheSI6MzY0LCIuLi91dGlsL3V0aWwiOjM2Nn1dLDI3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe2lmKCF0LmlzT3BhcXVlUGFzcyl7dmFyIG89IShyLmxheW91dFsidGV4dC1hbGxvdy1vdmVybGFwIl18fHIubGF5b3V0WyJpY29uLWFsbG93LW92ZXJsYXAiXXx8ci5sYXlvdXRbInRleHQtaWdub3JlLXBsYWNlbWVudCJdfHxyLmxheW91dFsiaWNvbi1pZ25vcmUtcGxhY2VtZW50Il0pLGE9dC5nbDtvP2EuZGlzYWJsZShhLlNURU5DSUxfVEVTVCk6YS5lbmFibGUoYS5TVEVOQ0lMX1RFU1QpLHQuc2V0RGVwdGhTdWJsYXllcigwKSx0LmRlcHRoTWFzayghMSksYS5kaXNhYmxlKGEuREVQVEhfVEVTVCksaSh0LGUscixuLCExLHIucGFpbnRbImljb24tdHJhbnNsYXRlIl0sci5wYWludFsiaWNvbi10cmFuc2xhdGUtYW5jaG9yIl0sci5sYXlvdXRbImljb24tcm90YXRpb24tYWxpZ25tZW50Il0sci5sYXlvdXRbImljb24tcm90YXRpb24tYWxpZ25tZW50Il0sci5sYXlvdXRbImljb24tc2l6ZSJdLHIucGFpbnRbImljb24taGFsby13aWR0aCJdLHIucGFpbnRbImljb24taGFsby1jb2xvciJdLHIucGFpbnRbImljb24taGFsby1ibHVyIl0sci5wYWludFsiaWNvbi1vcGFjaXR5Il0sci5wYWludFsiaWNvbi1jb2xvciJdKSxpKHQsZSxyLG4sITAsci5wYWludFsidGV4dC10cmFuc2xhdGUiXSxyLnBhaW50WyJ0ZXh0LXRyYW5zbGF0ZS1hbmNob3IiXSxyLmxheW91dFsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiXSxyLmxheW91dFsidGV4dC1waXRjaC1hbGlnbm1lbnQiXSxyLmxheW91dFsidGV4dC1zaXplIl0sci5wYWludFsidGV4dC1oYWxvLXdpZHRoIl0sci5wYWludFsidGV4dC1oYWxvLWNvbG9yIl0sci5wYWludFsidGV4dC1oYWxvLWJsdXIiXSxyLnBhaW50WyJ0ZXh0LW9wYWNpdHkiXSxyLnBhaW50WyJ0ZXh0LWNvbG9yIl0pLGEuZW5hYmxlKGEuREVQVEhfVEVTVCksZS5tYXAuc2hvd0NvbGxpc2lvbkJveGVzJiZzKHQsZSxyLG4pfX1mdW5jdGlvbiBpKHQsZSxyLG4saSxhLHMsbCx1LGMsaCxmLHAsZCxtKXtmb3IodmFyIGc9MDtnPG4ubGVuZ3RoO2crKyl7dmFyIHY9ZS5nZXRUaWxlKG5bZ10pLHk9di5nZXRCdWNrZXQocik7aWYoeSl7dmFyIGI9eS5idWZmZXJHcm91cHMseD1pP2IuZ2x5cGg6Yi5pY29uO3gubGVuZ3RoJiYodC5lbmFibGVUaWxlQ2xpcHBpbmdNYXNrKG5bZ10pLG8odCxyLG5bZ10ucG9zTWF0cml4LHYseSx4LGksaXx8eS5zZGZJY29ucywhaSYmeS5pY29uc05lZWRMaW5lYXIsaT95LmFkanVzdGVkVGV4dFNpemU6eS5hZGp1c3RlZEljb25TaXplLHkuZm9udHN0YWNrLGEscyxsLHUsYyxoLGYscCxkLG0pKX19fWZ1bmN0aW9uIG8odCxlLHIsbixpLG8scyx1LGMsaCxmLHAsZCxtLGcsdix5LGIseCxfLHcpe3ZhciBNLGssQSxUPXQuZ2wsRT10LnRyYW5zZm9ybSxTPSJtYXAiPT09bSxMPSJtYXAiPT09Zyx6PXM/MjQ6MSxJPXYvejtpZihMPyhrPWwobiwxLHQudHJhbnNmb3JtLnpvb20pKkksQT0xL01hdGguY29zKEUuX3BpdGNoKSxNPVtrLGtdKTooaz10LnRyYW5zZm9ybS5hbHRpdHVkZSpJLEE9MSxNPVtFLnBpeGVsc1RvR0xVbml0c1swXSprLEUucGl4ZWxzVG9HTFVuaXRzWzFdKmtdKSxzfHx0LnN0eWxlLnNwcml0ZS5sb2FkZWQoKSl7dmFyIFA9dC51c2VQcm9ncmFtKHU/InNkZiI6Imljb24iKTtpZihULnVuaWZvcm1NYXRyaXg0ZnYoUC51X21hdHJpeCwhMSx0LnRyYW5zbGF0ZVBvc01hdHJpeChyLG4scCxkKSksVC51bmlmb3JtMWkoUC51X3JvdGF0ZV93aXRoX21hcCxTKSxULnVuaWZvcm0xaShQLnVfcGl0Y2hfd2l0aF9tYXAsTCksVC51bmlmb3JtMmZ2KFAudV9leHRydWRlX3NjYWxlLE0pLFQuYWN0aXZlVGV4dHVyZShULlRFWFRVUkUwKSxULnVuaWZvcm0xaShQLnVfdGV4dHVyZSwwKSxzKXt2YXIgQz1mJiZ0LmdseXBoU291cmNlLmdldEdseXBoQXRsYXMoZik7aWYoIUMpcmV0dXJuO0MudXBkYXRlVGV4dHVyZShUKSxULnVuaWZvcm0yZihQLnVfdGV4c2l6ZSxDLndpZHRoLzQsQy5oZWlnaHQvNCl9ZWxzZXt2YXIgUj10Lm9wdGlvbnMucm90YXRpbmd8fHQub3B0aW9ucy56b29taW5nLGo9MSE9PUl8fGEuZGV2aWNlUGl4ZWxSYXRpbyE9PXQuc3ByaXRlQXRsYXMucGl4ZWxSYXRpb3x8YyxEPUx8fHQudHJhbnNmb3JtLnBpdGNoO3Quc3ByaXRlQXRsYXMuYmluZChULHV8fFJ8fGp8fEQpLFQudW5pZm9ybTJmKFAudV90ZXhzaXplLHQuc3ByaXRlQXRsYXMud2lkdGgvNCx0LnNwcml0ZUF0bGFzLmhlaWdodC80KX12YXIgTz1NYXRoLmxvZyh2L2gpL01hdGguTE4yfHwwO1QudW5pZm9ybTFmKFAudV96b29tLDEwKih0LnRyYW5zZm9ybS56b29tLU8pKSxULmFjdGl2ZVRleHR1cmUoVC5URVhUVVJFMSksdC5mcmFtZUhpc3RvcnkuYmluZChUKSxULnVuaWZvcm0xaShQLnVfZmFkZXRleHR1cmUsMSk7dmFyIEY7aWYodSl7dmFyIE49OCxCPTEuMTksVT02LFY9LjEwNSp6L3YvYS5kZXZpY2VQaXhlbFJhdGlvO2lmKHkpe1QudW5pZm9ybTFmKFAudV9nYW1tYSwoeCpCL0kvTitWKSpBKSxULnVuaWZvcm00ZnYoUC51X2NvbG9yLGIpLFQudW5pZm9ybTFmKFAudV9vcGFjaXR5LF8pLFQudW5pZm9ybTFmKFAudV9idWZmZXIsKFUteS9JKS9OKTtmb3IodmFyIHE9MDtxPG8ubGVuZ3RoO3ErKylGPW9bcV0sRi52YW9zW2UuaWRdLmJpbmQoVCxQLEYubGF5b3V0VmVydGV4QnVmZmVyLEYuZWxlbWVudEJ1ZmZlciksVC5kcmF3RWxlbWVudHMoVC5UUklBTkdMRVMsMypGLmVsZW1lbnRCdWZmZXIubGVuZ3RoLFQuVU5TSUdORURfU0hPUlQsMCl9VC51bmlmb3JtMWYoUC51X2dhbW1hLFYqQSksVC51bmlmb3JtNGZ2KFAudV9jb2xvcix3KSxULnVuaWZvcm0xZihQLnVfb3BhY2l0eSxfKSxULnVuaWZvcm0xZihQLnVfYnVmZmVyLC43NSksVC51bmlmb3JtMWYoUC51X3BpdGNoLEUucGl0Y2gvMzYwKjIqTWF0aC5QSSksVC51bmlmb3JtMWYoUC51X2JlYXJpbmcsRS5iZWFyaW5nLzM2MCoyKk1hdGguUEkpLFQudW5pZm9ybTFmKFAudV9hc3BlY3RfcmF0aW8sRS53aWR0aC9FLmhlaWdodCk7Zm9yKHZhciBHPTA7RzxvLmxlbmd0aDtHKyspRj1vW0ddLEYudmFvc1tlLmlkXS5iaW5kKFQsUCxGLmxheW91dFZlcnRleEJ1ZmZlcixGLmVsZW1lbnRCdWZmZXIpLFQuZHJhd0VsZW1lbnRzKFQuVFJJQU5HTEVTLDMqRi5lbGVtZW50QnVmZmVyLmxlbmd0aCxULlVOU0lHTkVEX1NIT1JULDApfWVsc2V7VC51bmlmb3JtMWYoUC51X29wYWNpdHksXyk7Zm9yKHZhciBIPTA7SDxvLmxlbmd0aDtIKyspRj1vW0hdLEYudmFvc1tlLmlkXS5iaW5kKFQsUCxGLmxheW91dFZlcnRleEJ1ZmZlcixGLmVsZW1lbnRCdWZmZXIpLFQuZHJhd0VsZW1lbnRzKFQuVFJJQU5HTEVTLDMqRi5lbGVtZW50QnVmZmVyLmxlbmd0aCxULlVOU0lHTkVEX1NIT1JULDApfX19dmFyIGE9dCgiLi4vdXRpbC9icm93c2VyIikscz10KCIuL2RyYXdfY29sbGlzaW9uX2RlYnVnIiksbD10KCIuLi9zb3VyY2UvcGl4ZWxzX3RvX3RpbGVfdW5pdHMiKTtlLmV4cG9ydHM9bn0seyIuLi9zb3VyY2UvcGl4ZWxzX3RvX3RpbGVfdW5pdHMiOjI4NywiLi4vdXRpbC9icm93c2VyIjozNTAsIi4vZHJhd19jb2xsaXNpb25fZGVidWciOjI3MX1dLDI3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dGhpcy5jaGFuZ2VUaW1lcz1uZXcgRmxvYXQ2NEFycmF5KDI1NiksdGhpcy5jaGFuZ2VPcGFjaXRpZXM9bmV3IFVpbnQ4QXJyYXkoMjU2KSx0aGlzLm9wYWNpdGllcz1uZXcgVWludDhDbGFtcGVkQXJyYXkoMjU2KSx0aGlzLmFycmF5PW5ldyBVaW50OEFycmF5KHRoaXMub3BhY2l0aWVzLmJ1ZmZlciksdGhpcy5mYWRlRHVyYXRpb249MzAwLHRoaXMucHJldmlvdXNab29tPTAsdGhpcy5maXJzdEZyYW1lPSEwfWUuZXhwb3J0cz1uLG4ucHJvdG90eXBlLnJlY29yZD1mdW5jdGlvbih0KXt2YXIgZT1EYXRlLm5vdygpO3RoaXMuZmlyc3RGcmFtZSYmKGU9MCx0aGlzLmZpcnN0RnJhbWU9ITEpLHQ9TWF0aC5mbG9vcigxMCp0KTt2YXIgcjtpZih0PHRoaXMucHJldmlvdXNab29tKWZvcihyPXQrMTtyPD10aGlzLnByZXZpb3VzWm9vbTtyKyspdGhpcy5jaGFuZ2VUaW1lc1tyXT1lLHRoaXMuY2hhbmdlT3BhY2l0aWVzW3JdPXRoaXMub3BhY2l0aWVzW3JdO2Vsc2UgZm9yKHI9dDtyPnRoaXMucHJldmlvdXNab29tO3ItLSl0aGlzLmNoYW5nZVRpbWVzW3JdPWUsdGhpcy5jaGFuZ2VPcGFjaXRpZXNbcl09dGhpcy5vcGFjaXRpZXNbcl07Zm9yKHI9MDsyNTY+cjtyKyspe3ZhciBuPWUtdGhpcy5jaGFuZ2VUaW1lc1tyXSxpPW4vdGhpcy5mYWRlRHVyYXRpb24qMjU1O3Q+PXI/dGhpcy5vcGFjaXRpZXNbcl09dGhpcy5jaGFuZ2VPcGFjaXRpZXNbcl0raTp0aGlzLm9wYWNpdGllc1tyXT10aGlzLmNoYW5nZU9wYWNpdGllc1tyXS1pfXRoaXMuY2hhbmdlZD0hMCx0aGlzLnByZXZpb3VzWm9vbT10fSxuLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKHQpe3RoaXMudGV4dHVyZT8odC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSx0aGlzLmNoYW5nZWQmJih0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELDAsMCwwLDI1NiwxLHQuQUxQSEEsdC5VTlNJR05FRF9CWVRFLHRoaXMuYXJyYXkpLHRoaXMuY2hhbmdlZD0hMSkpOih0aGlzLnRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9XUkFQX1MsdC5DTEFNUF9UT19FREdFKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9XUkFQX1QsdC5DTEFNUF9UT19FREdFKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NSU5fRklMVEVSLHQuTkVBUkVTVCksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUFHX0ZJTFRFUix0Lk5FQVJFU1QpLHQudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsMCx0LkFMUEhBLDI1NiwxLDAsdC5BTFBIQSx0LlVOU0lHTkVEX0JZVEUsdGhpcy5hcnJheSkpfX0se31dLDI3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5uZXh0Um93PTAsdGhpcy5ieXRlcz00LHRoaXMuZGF0YT1uZXcgVWludDhBcnJheSh0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KnRoaXMuYnl0ZXMpLHRoaXMucG9zaXRpb25zPXt9fXZhciBpPXQoIi4uL3V0aWwvdXRpbCIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlLnNldFNwcml0ZT1mdW5jdGlvbih0KXt0aGlzLnNwcml0ZT10fSxuLnByb3RvdHlwZS5nZXREYXNoPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5qb2luKCIsIikrZTtyZXR1cm4gdGhpcy5wb3NpdGlvbnNbcl18fCh0aGlzLnBvc2l0aW9uc1tyXT10aGlzLmFkZERhc2godCxlKSksdGhpcy5wb3NpdGlvbnNbcl19LG4ucHJvdG90eXBlLmFkZERhc2g9ZnVuY3Rpb24odCxlKXt2YXIgcj1lPzc6MCxuPTIqcisxLG89MTI4O2lmKHRoaXMubmV4dFJvdytuPnRoaXMuaGVpZ2h0KXJldHVybiBpLndhcm5PbmNlKCJMaW5lQXRsYXMgb3V0IG9mIHNwYWNlIiksbnVsbDtmb3IodmFyIGE9MCxzPTA7czx0Lmxlbmd0aDtzKyspYSs9dFtzXTtmb3IodmFyIGw9dGhpcy53aWR0aC9hLHU9bC8yLGM9dC5sZW5ndGglMj09PTEsaD0tcjtyPj1oO2grKylmb3IodmFyIGY9dGhpcy5uZXh0Um93K3IraCxwPXRoaXMud2lkdGgqZixkPWM/LXRbdC5sZW5ndGgtMV06MCxtPXRbMF0sZz0xLHY9MDt2PHRoaXMud2lkdGg7disrKXtmb3IoO3YvbD5tOylkPW0sbSs9dFtnXSxjJiZnPT09dC5sZW5ndGgtMSYmKG0rPXRbMF0pLGcrKzt2YXIgeSxiPU1hdGguYWJzKHYtZCpsKSx4PU1hdGguYWJzKHYtbSpsKSxfPU1hdGgubWluKGIseCksdz1nJTI9PT0xO2lmKGUpe3ZhciBNPXI/aC9yKih1KzEpOjA7aWYodyl7dmFyIGs9dS1NYXRoLmFicyhNKTt5PU1hdGguc3FydChfKl8rayprKX1lbHNlIHk9dS1NYXRoLnNxcnQoXypfK00qTSl9ZWxzZSB5PSh3PzE6LTEpKl87dGhpcy5kYXRhWzMrNCoocCt2KV09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUseStvKSl9dmFyIEE9e3k6KHRoaXMubmV4dFJvdytyKy41KS90aGlzLmhlaWdodCxoZWlnaHQ6MipyL3RoaXMuaGVpZ2h0LHdpZHRoOmF9O3JldHVybiB0aGlzLm5leHRSb3crPW4sdGhpcy5kaXJ0eT0hMCxBfSxuLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKHQpe3RoaXMudGV4dHVyZT8odC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSx0aGlzLmRpcnR5JiYodGhpcy5kaXJ0eT0hMSx0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELDAsMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsdC5SR0JBLHQuVU5TSUdORURfQllURSx0aGlzLmRhdGEpKSk6KHRoaXMudGV4dHVyZT10LmNyZWF0ZVRleHR1cmUoKSx0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCx0aGlzLnRleHR1cmUpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfUyx0LlJFUEVBVCksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfV1JBUF9ULHQuUkVQRUFUKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NSU5fRklMVEVSLHQuTElORUFSKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NQUdfRklMVEVSLHQuTElORUFSKSx0LnRleEltYWdlMkQodC5URVhUVVJFXzJELDAsdC5SR0JBLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsMCx0LlJHQkEsdC5VTlNJR05FRF9CWVRFLHRoaXMuZGF0YSkpfX0seyIuLi91dGlsL3V0aWwiOjM2Nn1dLDI3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy5nbD10LHRoaXMudHJhbnNmb3JtPWUsdGhpcy5yZXVzYWJsZVRleHR1cmVzPXt9LHRoaXMucHJlRmJvcz17fSx0aGlzLmZyYW1lSGlzdG9yeT1uZXcgYSx0aGlzLnNldHVwKCksdGhpcy5udW1TdWJsYXllcnM9cy5tYXhVbmRlcnpvb21pbmcrcy5tYXhPdmVyem9vbWluZysxLHRoaXMuZGVwdGhFcHNpbG9uPTEvTWF0aC5wb3coMiwxNiksdGhpcy5saW5lV2lkdGhSYW5nZT10LmdldFBhcmFtZXRlcih0LkFMSUFTRURfTElORV9XSURUSF9SQU5HRSl9dmFyIGk9dCgiLi4vdXRpbC9icm93c2VyIiksbz10KCJnbC1tYXRyaXgiKS5tYXQ0LGE9dCgiLi9mcmFtZV9oaXN0b3J5Iikscz10KCIuLi9zb3VyY2Uvc291cmNlX2NhY2hlIiksbD10KCIuLi9kYXRhL2J1Y2tldCIpLkVYVEVOVCx1PXQoIi4uL3NvdXJjZS9waXhlbHNfdG9fdGlsZV91bml0cyIpLGM9dCgiLi4vdXRpbC91dGlsIiksaD10KCIuLi91dGlsL3N0cnVjdF9hcnJheSIpLGY9dCgiLi4vZGF0YS9idWZmZXIiKSxwPXQoIi4vdmVydGV4X2FycmF5X29iamVjdCIpLGQ9dCgiLi9kcmF3X3Jhc3RlciIpLlJhc3RlckJvdW5kc0FycmF5LG09dCgiLi9jcmVhdGVfdW5pZm9ybV9wcmFnbWFzIik7ZS5leHBvcnRzPW4sYy5leHRlbmQobi5wcm90b3R5cGUsdCgiLi9wYWludGVyL3VzZV9wcm9ncmFtIikpLG4ucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZ2w7dGhpcy53aWR0aD10KmkuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLmhlaWdodD1lKmkuZGV2aWNlUGl4ZWxSYXRpbyxyLnZpZXdwb3J0KDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX0sbi5wcm90b3R5cGUuc2V0dXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3QudmVyYm9zZT0hMCx0LmVuYWJsZSh0LkJMRU5EKSx0LmJsZW5kRnVuYyh0Lk9ORSx0Lk9ORV9NSU5VU19TUkNfQUxQSEEpLHQuZW5hYmxlKHQuU1RFTkNJTF9URVNUKSx0LmVuYWJsZSh0LkRFUFRIX1RFU1QpLHQuZGVwdGhGdW5jKHQuTEVRVUFMKSx0aGlzLl9kZXB0aE1hc2s9ITEsdC5kZXB0aE1hc2soITEpO3ZhciBlPXRoaXMuUG9zQXJyYXk9bmV3IGgoe21lbWJlcnM6W3tuYW1lOiJhX3BvcyIsdHlwZToiSW50MTYiLGNvbXBvbmVudHM6Mn1dfSkscj1uZXcgZTtyLmVtcGxhY2VCYWNrKDAsMCksci5lbXBsYWNlQmFjayhsLDApLHIuZW1wbGFjZUJhY2soMCxsKSxyLmVtcGxhY2VCYWNrKGwsbCksdGhpcy50aWxlRXh0ZW50QnVmZmVyPW5ldyBmKHIuc2VyaWFsaXplKCksZS5zZXJpYWxpemUoKSxmLkJ1ZmZlclR5cGUuVkVSVEVYKSx0aGlzLnRpbGVFeHRlbnRWQU89bmV3IHAsdGhpcy50aWxlRXh0ZW50UGF0dGVyblZBTz1uZXcgcDt2YXIgbj1uZXcgZTtuLmVtcGxhY2VCYWNrKDAsMCksbi5lbXBsYWNlQmFjayhsLDApLG4uZW1wbGFjZUJhY2sobCxsKSxuLmVtcGxhY2VCYWNrKDAsbCksbi5lbXBsYWNlQmFjaygwLDApLHRoaXMuZGVidWdCdWZmZXI9bmV3IGYobi5zZXJpYWxpemUoKSxlLnNlcmlhbGl6ZSgpLGYuQnVmZmVyVHlwZS5WRVJURVgpLHRoaXMuZGVidWdWQU89bmV3IHA7dmFyIGk9bmV3IGQ7aS5lbXBsYWNlQmFjaygwLDAsMCwwKSxpLmVtcGxhY2VCYWNrKGwsMCwzMjc2NywwKSxpLmVtcGxhY2VCYWNrKDAsbCwwLDMyNzY3KSxpLmVtcGxhY2VCYWNrKGwsbCwzMjc2NywzMjc2NyksdGhpcy5yYXN0ZXJCb3VuZHNCdWZmZXI9bmV3IGYoaS5zZXJpYWxpemUoKSxkLnNlcmlhbGl6ZSgpLGYuQnVmZmVyVHlwZS5WRVJURVgpLHRoaXMucmFzdGVyQm91bmRzVkFPPW5ldyBwfSxuLnByb3RvdHlwZS5jbGVhckNvbG9yPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbDt0LmNsZWFyQ29sb3IoMCwwLDAsMCksdC5jbGVhcih0LkNPTE9SX0JVRkZFUl9CSVQpfSxuLnByb3RvdHlwZS5jbGVhclN0ZW5jaWw9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3QuY2xlYXJTdGVuY2lsKDApLHQuc3RlbmNpbE1hc2soMjU1KSx0LmNsZWFyKHQuU1RFTkNJTF9CVUZGRVJfQklUKX0sbi5wcm90b3R5cGUuY2xlYXJEZXB0aD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2w7dC5jbGVhckRlcHRoKDEpLHRoaXMuZGVwdGhNYXNrKCEwKSx0LmNsZWFyKHQuREVQVEhfQlVGRkVSX0JJVCl9LG4ucHJvdG90eXBlLl9yZW5kZXJUaWxlQ2xpcHBpbmdNYXNrcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsO2UuY29sb3JNYXNrKCExLCExLCExLCExKSx0aGlzLmRlcHRoTWFzayghMSksZS5kaXNhYmxlKGUuREVQVEhfVEVTVCksZS5lbmFibGUoZS5TVEVOQ0lMX1RFU1QpLGUuc3RlbmNpbE1hc2soMjQ4KSxlLnN0ZW5jaWxPcChlLktFRVAsZS5LRUVQLGUuUkVQTEFDRSk7dmFyIHI9MTt0aGlzLl90aWxlQ2xpcHBpbmdNYXNrSURzPXt9O2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLG89dGhpcy5fdGlsZUNsaXBwaW5nTWFza0lEc1tpLmlkXT1yKys8PDM7ZS5zdGVuY2lsRnVuYyhlLkFMV0FZUyxvLDI0OCk7dmFyIGE9bShbe25hbWU6InVfY29sb3IiLGNvbXBvbmVudHM6NH0se25hbWU6InVfb3BhY2l0eSIsY29tcG9uZW50czoxfV0pLHM9dGhpcy51c2VQcm9ncmFtKCJmaWxsIixbXSxhLGEpO2UudW5pZm9ybU1hdHJpeDRmdihzLnVfbWF0cml4LCExLGkucG9zTWF0cml4KSx0aGlzLnRpbGVFeHRlbnRWQU8uYmluZChlLHMsdGhpcy50aWxlRXh0ZW50QnVmZmVyKSxlLmRyYXdBcnJheXMoZS5UUklBTkdMRV9TVFJJUCwwLHRoaXMudGlsZUV4dGVudEJ1ZmZlci5sZW5ndGgpfWUuc3RlbmNpbE1hc2soMCksZS5jb2xvck1hc2soITAsITAsITAsITApLHRoaXMuZGVwdGhNYXNrKCEwKSxlLmVuYWJsZShlLkRFUFRIX1RFU1QpfSxuLnByb3RvdHlwZS5lbmFibGVUaWxlQ2xpcHBpbmdNYXNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2w7ZS5zdGVuY2lsRnVuYyhlLkVRVUFMLHRoaXMuX3RpbGVDbGlwcGluZ01hc2tJRHNbdC5pZF0sMjQ4KX0sbi5wcm90b3R5cGUucHJlcGFyZUJ1ZmZlcnM9ZnVuY3Rpb24oKXt9LG4ucHJvdG90eXBlLmJpbmREZWZhdWx0RnJhbWVidWZmZXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3QuYmluZEZyYW1lYnVmZmVyKHQuRlJBTUVCVUZGRVIsbnVsbCl9O3ZhciBnPXtzeW1ib2w6dCgiLi9kcmF3X3N5bWJvbCIpLGNpcmNsZTp0KCIuL2RyYXdfY2lyY2xlIiksbGluZTp0KCIuL2RyYXdfbGluZSIpLGZpbGw6dCgiLi9kcmF3X2ZpbGwiKSxyYXN0ZXI6dCgiLi9kcmF3X3Jhc3RlciIpLGJhY2tncm91bmQ6dCgiLi9kcmF3X2JhY2tncm91bmQiKSxkZWJ1Zzp0KCIuL2RyYXdfZGVidWciKX07bi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdHlsZT10LHRoaXMub3B0aW9ucz1lLHRoaXMubGluZUF0bGFzPXQubGluZUF0bGFzLHRoaXMuc3ByaXRlQXRsYXM9dC5zcHJpdGVBdGxhcyx0aGlzLnNwcml0ZUF0bGFzLnNldFNwcml0ZSh0LnNwcml0ZSksdGhpcy5nbHlwaFNvdXJjZT10LmdseXBoU291cmNlLHRoaXMuZnJhbWVIaXN0b3J5LnJlY29yZCh0aGlzLnRyYW5zZm9ybS56b29tKSx0aGlzLnByZXBhcmVCdWZmZXJzKCksdGhpcy5jbGVhckNvbG9yKCksdGhpcy5jbGVhckRlcHRoKCksdGhpcy5zaG93T3ZlcmRyYXdJbnNwZWN0b3IoZS5zaG93T3ZlcmRyYXdJbnNwZWN0b3IpLHRoaXMuZGVwdGhSYW5nZT0odC5fb3JkZXIubGVuZ3RoKzIpKnRoaXMubnVtU3VibGF5ZXJzKnRoaXMuZGVwdGhFcHNpbG9uLHRoaXMucmVuZGVyUGFzcyh7aXNPcGFxdWVQYXNzOiEwfSksdGhpcy5yZW5kZXJQYXNzKHtpc09wYXF1ZVBhc3M6ITF9KX0sbi5wcm90b3R5cGUucmVuZGVyUGFzcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN0eWxlLl9ncm91cHMscj10LmlzT3BhcXVlUGFzczt0aGlzLmN1cnJlbnRMYXllcj1yP3RoaXMuc3R5bGUuX29yZGVyLmxlbmd0aDotMTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGksbz1lW3I/ZS5sZW5ndGgtMS1uOm5dLGE9dGhpcy5zdHlsZS5zb3VyY2VzW28uc291cmNlXSxzPVtdO2lmKGEpe2ZvcihzPWEuZ2V0VmlzaWJsZUNvb3JkaW5hdGVzKCksaT0wO2k8cy5sZW5ndGg7aSsrKXNbaV0ucG9zTWF0cml4PXRoaXMudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeChzW2ldLGEubWF4em9vbSk7dGhpcy5jbGVhclN0ZW5jaWwoKSxhLnByZXBhcmUmJmEucHJlcGFyZSgpLGEuaXNUaWxlQ2xpcHBlZCYmdGhpcy5fcmVuZGVyVGlsZUNsaXBwaW5nTWFza3Mocyl9Zm9yKHI/KHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcnx8dGhpcy5nbC5kaXNhYmxlKHRoaXMuZ2wuQkxFTkQpLHRoaXMuaXNPcGFxdWVQYXNzPSEwKToodGhpcy5nbC5lbmFibGUodGhpcy5nbC5CTEVORCksdGhpcy5pc09wYXF1ZVBhc3M9ITEscy5yZXZlcnNlKCkpLGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIGw9b1tyP28ubGVuZ3RoLTEtaTppXTt0aGlzLmN1cnJlbnRMYXllcis9cj8tMToxLHRoaXMucmVuZGVyTGF5ZXIodGhpcyxhLGwscyl9YSYmZy5kZWJ1Zyh0aGlzLGEscyl9fSxuLnByb3RvdHlwZS5kZXB0aE1hc2s9ZnVuY3Rpb24odCl7dCE9PXRoaXMuX2RlcHRoTWFzayYmKHRoaXMuX2RlcHRoTWFzaz10LHRoaXMuZ2wuZGVwdGhNYXNrKHQpKX0sbi5wcm90b3R5cGUucmVuZGVyTGF5ZXI9ZnVuY3Rpb24odCxlLHIsbil7ci5pc0hpZGRlbih0aGlzLnRyYW5zZm9ybS56b29tKXx8KCJiYWNrZ3JvdW5kIj09PXIudHlwZXx8bi5sZW5ndGgpJiYodGhpcy5pZD1yLmlkLGdbci50eXBlXSh0LGUscixuKSl9LG4ucHJvdG90eXBlLnNldERlcHRoU3VibGF5ZXI9ZnVuY3Rpb24odCl7dmFyIGU9MS0oKDErdGhpcy5jdXJyZW50TGF5ZXIpKnRoaXMubnVtU3VibGF5ZXJzK3QpKnRoaXMuZGVwdGhFcHNpbG9uLHI9ZS0xK3RoaXMuZGVwdGhSYW5nZTt0aGlzLmdsLmRlcHRoUmFuZ2UocixlKX0sbi5wcm90b3R5cGUudHJhbnNsYXRlUG9zTWF0cml4PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKCFyWzBdJiYhclsxXSlyZXR1cm4gdDtpZigidmlld3BvcnQiPT09bil7dmFyIGk9TWF0aC5zaW4oLXRoaXMudHJhbnNmb3JtLmFuZ2xlKSxhPU1hdGguY29zKC10aGlzLnRyYW5zZm9ybS5hbmdsZSk7cj1bclswXSphLXJbMV0qaSxyWzBdKmkrclsxXSphXX12YXIgcz1bdShlLHJbMF0sdGhpcy50cmFuc2Zvcm0uem9vbSksdShlLHJbMV0sdGhpcy50cmFuc2Zvcm0uem9vbSksMF0sbD1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gby50cmFuc2xhdGUobCx0LHMpLGx9LG4ucHJvdG90eXBlLnNhdmVUZXh0dXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmV1c2FibGVUZXh0dXJlc1t0LnNpemVdO2U/ZS5wdXNoKHQpOnRoaXMucmV1c2FibGVUZXh0dXJlc1t0LnNpemVdPVt0XX0sbi5wcm90b3R5cGUuZ2V0VGV4dHVyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnJldXNhYmxlVGV4dHVyZXNbdF07cmV0dXJuIGUmJmUubGVuZ3RoPjA/ZS5wb3AoKTpudWxsfSxuLnByb3RvdHlwZS5saW5lV2lkdGg9ZnVuY3Rpb24odCl7dGhpcy5nbC5saW5lV2lkdGgoYy5jbGFtcCh0LHRoaXMubGluZVdpZHRoUmFuZ2VbMF0sdGhpcy5saW5lV2lkdGhSYW5nZVsxXSkpfSxuLnByb3RvdHlwZS5zaG93T3ZlcmRyYXdJbnNwZWN0b3I9ZnVuY3Rpb24odCl7aWYodHx8dGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yKXt0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3I9dDt2YXIgZT10aGlzLmdsO2lmKHQpe2UuYmxlbmRGdW5jKGUuQ09OU1RBTlRfQ09MT1IsZS5PTkUpO3ZhciByPTgsbj0xL3I7ZS5ibGVuZENvbG9yKG4sbixuLDApLGUuY2xlYXJDb2xvcigwLDAsMCwxKSxlLmNsZWFyKGUuQ09MT1JfQlVGRkVSX0JJVCl9ZWxzZSBlLmJsZW5kRnVuYyhlLk9ORSxlLk9ORV9NSU5VU19TUkNfQUxQSEEpfX19LHsiLi4vZGF0YS9idWNrZXQiOjI1MywiLi4vZGF0YS9idWZmZXIiOjI1OCwiLi4vc291cmNlL3BpeGVsc190b190aWxlX3VuaXRzIjoyODcsIi4uL3NvdXJjZS9zb3VyY2VfY2FjaGUiOjI5MSwiLi4vdXRpbC9icm93c2VyIjozNTAsIi4uL3V0aWwvc3RydWN0X2FycmF5IjozNjQsIi4uL3V0aWwvdXRpbCI6MzY2LCIuL2NyZWF0ZV91bmlmb3JtX3ByYWdtYXMiOjI2OCwiLi9kcmF3X2JhY2tncm91bmQiOjI2OSwiLi9kcmF3X2NpcmNsZSI6MjcwLCIuL2RyYXdfZGVidWciOjI3MiwiLi9kcmF3X2ZpbGwiOjI3MywiLi9kcmF3X2xpbmUiOjI3NCwiLi9kcmF3X3Jhc3RlciI6Mjc1LCIuL2RyYXdfc3ltYm9sIjoyNzYsIi4vZnJhbWVfaGlzdG9yeSI6Mjc3LCIuL3BhaW50ZXIvdXNlX3Byb2dyYW0iOjI4MCwiLi92ZXJ0ZXhfYXJyYXlfb2JqZWN0IjoyODEsImdsLW1hdHJpeCI6MzgyfV0sMjgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gdC5yZXBsYWNlKC8jcHJhZ21hIG1hcGJveDogKFtcd10rKSAoW1x3XSspIChbXHddKykgKFtcd10rKS9nLGZ1bmN0aW9uKHQscixuLGksbyl7cmV0dXJuIGVbcl1bb10ucmVwbGFjZSgve3R5cGV9L2csaSkucmVwbGFjZSgve3ByZWNpc2lvbn0vZyxuKX0pfXZhciBpPXQoIi4uLy4uL3V0aWwvdXRpbCIpLG89dCgibWFwYm94LWdsLXNoYWRlcnMiKSxhPW8udXRpbDtlLmV4cG9ydHMuX2NyZWF0ZVByb2dyYW09ZnVuY3Rpb24odCxlLHIscyl7Zm9yKHZhciBsPXRoaXMuZ2wsdT1sLmNyZWF0ZVByb2dyYW0oKSxjPW9bdF0saD0iI2RlZmluZSBNQVBCT1hfR0xfSlM7XG4iLGY9MDtmPGUubGVuZ3RoO2YrKyloKz0iI2RlZmluZSAiK2VbZl0rIjtcbiI7dmFyIHA9bC5jcmVhdGVTaGFkZXIobC5GUkFHTUVOVF9TSEFERVIpO2wuc2hhZGVyU291cmNlKHAsbihoK2MuZnJhZ21lbnRTb3VyY2UscykpLGwuY29tcGlsZVNoYWRlcihwKSxsLmF0dGFjaFNoYWRlcih1LHApO3ZhciBkPWwuY3JlYXRlU2hhZGVyKGwuVkVSVEVYX1NIQURFUik7bC5zaGFkZXJTb3VyY2UoZCxuKGgrYStjLnZlcnRleFNvdXJjZSxyKSksbC5jb21waWxlU2hhZGVyKGQpLGwuYXR0YWNoU2hhZGVyKHUsZCksbC5saW5rUHJvZ3JhbSh1KTtmb3IodmFyIG09e30sZz1sLmdldFByb2dyYW1QYXJhbWV0ZXIodSxsLkFDVElWRV9BVFRSSUJVVEVTKSx2PTA7Zz52O3YrKyl7dmFyIHk9bC5nZXRBY3RpdmVBdHRyaWIodSx2KTttW3kubmFtZV09bC5nZXRBdHRyaWJMb2NhdGlvbih1LHkubmFtZSl9Zm9yKHZhciBiPXt9LHg9bC5nZXRQcm9ncmFtUGFyYW1ldGVyKHUsbC5BQ1RJVkVfVU5JRk9STVMpLF89MDt4Pl87XysrKXsKdmFyIHc9bC5nZXRBY3RpdmVVbmlmb3JtKHUsXyk7Ylt3Lm5hbWVdPWwuZ2V0VW5pZm9ybUxvY2F0aW9uKHUsdy5uYW1lKX1yZXR1cm4gaS5leHRlbmQoe3Byb2dyYW06dSxkZWZpbml0aW9uOmMsYXR0cmlidXRlczptLG51bUF0dHJpYnV0ZXM6Z30sbSxiKX0sZS5leHBvcnRzLl9jcmVhdGVQcm9ncmFtQ2FjaGVkPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuY2FjaGU9dGhpcy5jYWNoZXx8e307dmFyIGk9SlNPTi5zdHJpbmdpZnkoe25hbWU6dCxkZWZpbmVzOmUsdmVydGV4UHJhZ21hczpyLGZyYWdtZW50UHJhZ21hczpufSk7cmV0dXJuIHRoaXMuY2FjaGVbaV18fCh0aGlzLmNhY2hlW2ldPXRoaXMuX2NyZWF0ZVByb2dyYW0odCxlLHIsbikpLHRoaXMuY2FjaGVbaV19LGUuZXhwb3J0cy51c2VQcm9ncmFtPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRoaXMuZ2w7ZT1lfHxbXSx0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3ImJihlPWUuY29uY2F0KCJPVkVSRFJBV19JTlNQRUNUT1IiKSk7dmFyIG89dGhpcy5fY3JlYXRlUHJvZ3JhbUNhY2hlZCh0LGUscixuKSxhPXRoaXMuY3VycmVudFByb2dyYW07cmV0dXJuIGEhPT1vJiYoaS51c2VQcm9ncmFtKG8ucHJvZ3JhbSksdGhpcy5jdXJyZW50UHJvZ3JhbT1vKSxvfX0seyIuLi8uLi91dGlsL3V0aWwiOjM2NiwibWFwYm94LWdsLXNoYWRlcnMiOjM5NH1dLDI4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dGhpcy5ib3VuZFByb2dyYW09bnVsbCx0aGlzLmJvdW5kVmVydGV4QnVmZmVyPW51bGwsdGhpcy5ib3VuZFZlcnRleEJ1ZmZlcjI9bnVsbCx0aGlzLmJvdW5kRWxlbWVudEJ1ZmZlcj1udWxsLHRoaXMudmFvPW51bGx9ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0LGUscixuLGkpe3ZvaWQgMD09PXQuZXh0VmVydGV4QXJyYXlPYmplY3QmJih0LmV4dFZlcnRleEFycmF5T2JqZWN0PXQuZ2V0RXh0ZW5zaW9uKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpKTt2YXIgbz0hdGhpcy52YW98fHRoaXMuYm91bmRQcm9ncmFtIT09ZXx8dGhpcy5ib3VuZFZlcnRleEJ1ZmZlciE9PXJ8fHRoaXMuYm91bmRWZXJ0ZXhCdWZmZXIyIT09aXx8dGhpcy5ib3VuZEVsZW1lbnRCdWZmZXIhPT1uOyF0LmV4dFZlcnRleEFycmF5T2JqZWN0fHxvP3RoaXMuZnJlc2hCaW5kKHQsZSxyLG4saSk6dC5leHRWZXJ0ZXhBcnJheU9iamVjdC5iaW5kVmVydGV4QXJyYXlPRVModGhpcy52YW8pfSxuLnByb3RvdHlwZS5mcmVzaEJpbmQ9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbyxhPWUubnVtQXR0cmlidXRlcztpZih0LmV4dFZlcnRleEFycmF5T2JqZWN0KXRoaXMudmFvJiZ0aGlzLmRlc3Ryb3kodCksdGhpcy52YW89dC5leHRWZXJ0ZXhBcnJheU9iamVjdC5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpLHQuZXh0VmVydGV4QXJyYXlPYmplY3QuYmluZFZlcnRleEFycmF5T0VTKHRoaXMudmFvKSxvPTAsdGhpcy5ib3VuZFByb2dyYW09ZSx0aGlzLmJvdW5kVmVydGV4QnVmZmVyPXIsdGhpcy5ib3VuZFZlcnRleEJ1ZmZlcjI9aSx0aGlzLmJvdW5kRWxlbWVudEJ1ZmZlcj1uO2Vsc2V7bz10LmN1cnJlbnROdW1BdHRyaWJ1dGVzfHwwO2Zvcih2YXIgcz1hO28+cztzKyspdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkocyl9Zm9yKHZhciBsPW87YT5sO2wrKyl0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGwpO3IuYmluZCh0KSxyLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHQsZSksaSYmKGkuYmluZCh0KSxpLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHQsZSkpLG4mJm4uYmluZCh0KSx0LmN1cnJlbnROdW1BdHRyaWJ1dGVzPWF9LG4ucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbih0KXt2YXIgZT10LmV4dFZlcnRleEFycmF5T2JqZWN0O2UmJmUuYmluZFZlcnRleEFycmF5T0VTKG51bGwpfSxuLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKHQpe3ZhciBlPXQuZXh0VmVydGV4QXJyYXlPYmplY3Q7ZSYmdGhpcy52YW8mJihlLmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMudmFvKSx0aGlzLnZhbz1udWxsKX19LHt9XSwyODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7ZT1lfHx7fSx0aGlzLmlkPXQsdGhpcy5kaXNwYXRjaGVyPXIsdGhpcy5fZGF0YT1lLmRhdGEsdm9pZCAwIT09ZS5tYXh6b29tJiYodGhpcy5tYXh6b29tPWUubWF4em9vbSksZS50eXBlJiYodGhpcy50eXBlPWUudHlwZSk7dmFyIG49cy90aGlzLnRpbGVTaXplO3RoaXMud29ya2VyT3B0aW9ucz1vLmV4dGVuZCh7c291cmNlOnRoaXMuaWQsY2x1c3RlcjplLmNsdXN0ZXJ8fCExLGdlb2pzb25WdE9wdGlvbnM6e2J1ZmZlcjoodm9pZCAwIT09ZS5idWZmZXI/ZS5idWZmZXI6MTI4KSpuLHRvbGVyYW5jZToodm9pZCAwIT09ZS50b2xlcmFuY2U/ZS50b2xlcmFuY2U6LjM3NSkqbixleHRlbnQ6cyxtYXhab29tOnRoaXMubWF4em9vbX0sc3VwZXJjbHVzdGVyT3B0aW9uczp7bWF4Wm9vbTpNYXRoLm1pbihlLmNsdXN0ZXJNYXhab29tLHRoaXMubWF4em9vbS0xKXx8dGhpcy5tYXh6b29tLTEsZXh0ZW50OnMscmFkaXVzOihlLmNsdXN0ZXJSYWRpdXN8fDUwKSpuLGxvZzohMX19LGUud29ya2VyT3B0aW9ucyksdGhpcy5fdXBkYXRlV29ya2VyRGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdD92b2lkIHRoaXMuZmlyZSgiZXJyb3IiLHtlcnJvcjp0fSk6dm9pZCB0aGlzLmZpcmUoImxvYWQiKX0uYmluZCh0aGlzKSl9dmFyIGk9dCgiLi4vdXRpbC9ldmVudGVkIiksbz10KCIuLi91dGlsL3V0aWwiKSxhPXQoInJlc29sdmUtdXJsIikscz10KCIuLi9kYXRhL2J1Y2tldCIpLkVYVEVOVDtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT1vLmluaGVyaXQoaSx7dHlwZToiZ2VvanNvbiIsbWluem9vbTowLG1heHpvb206MTgsdGlsZVNpemU6NTEyLGlzVGlsZUNsaXBwZWQ6ITAscmVwYXJzZU92ZXJzY2FsZWQ6ITAsb25BZGQ6ZnVuY3Rpb24odCl7dGhpcy5tYXA9dH0sc2V0RGF0YTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZGF0YT10LHRoaXMuX3VwZGF0ZVdvcmtlckRhdGEoZnVuY3Rpb24odCl7cmV0dXJuIHQ/dGhpcy5maXJlKCJlcnJvciIse2Vycm9yOnR9KTp2b2lkIHRoaXMuZmlyZSgiY2hhbmdlIil9LmJpbmQodGhpcykpLHRoaXN9LF91cGRhdGVXb3JrZXJEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPW8uZXh0ZW5kKHt9LHRoaXMud29ya2VyT3B0aW9ucykscj10aGlzLl9kYXRhOyJzdHJpbmciPT10eXBlb2Ygcj9lLnVybD0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz9hKHdpbmRvdy5sb2NhdGlvbi5ocmVmLHIpOnI6ZS5kYXRhPUpTT04uc3RyaW5naWZ5KHIpLHRoaXMud29ya2VySUQ9dGhpcy5kaXNwYXRjaGVyLnNlbmQodGhpcy50eXBlKyIubG9hZERhdGEiLGUsZnVuY3Rpb24oZSl7dGhpcy5fbG9hZGVkPSEwLHQoZSl9LmJpbmQodGhpcykpfSxsb2FkVGlsZTpmdW5jdGlvbih0LGUpe3ZhciByPXQuY29vcmQuej50aGlzLm1heHpvb20/TWF0aC5wb3coMix0LmNvb3JkLnotdGhpcy5tYXh6b29tKToxLG49e3R5cGU6dGhpcy50eXBlLHVpZDp0LnVpZCxjb29yZDp0LmNvb3JkLHpvb206dC5jb29yZC56LG1heFpvb206dGhpcy5tYXh6b29tLHRpbGVTaXplOnRoaXMudGlsZVNpemUsc291cmNlOnRoaXMuaWQsb3ZlcnNjYWxpbmc6cixhbmdsZTp0aGlzLm1hcC50cmFuc2Zvcm0uYW5nbGUscGl0Y2g6dGhpcy5tYXAudHJhbnNmb3JtLnBpdGNoLHNob3dDb2xsaXNpb25Cb3hlczp0aGlzLm1hcC5zaG93Q29sbGlzaW9uQm94ZXN9O3Qud29ya2VySUQ9dGhpcy5kaXNwYXRjaGVyLnNlbmQoImxvYWQgdGlsZSIsbixmdW5jdGlvbihyLG4pe3JldHVybiB0LnVubG9hZFZlY3RvckRhdGEodGhpcy5tYXAucGFpbnRlciksdC5hYm9ydGVkP3ZvaWQgMDpyP2Uocik6KHQubG9hZFZlY3RvckRhdGEobix0aGlzLm1hcC5zdHlsZSksdC5yZWRvV2hlbkRvbmUmJih0LnJlZG9XaGVuRG9uZT0hMSx0LnJlZG9QbGFjZW1lbnQodGhpcykpLGUobnVsbCkpfS5iaW5kKHRoaXMpLHRoaXMud29ya2VySUQpfSxhYm9ydFRpbGU6ZnVuY3Rpb24odCl7dC5hYm9ydGVkPSEwfSx1bmxvYWRUaWxlOmZ1bmN0aW9uKHQpe3QudW5sb2FkVmVjdG9yRGF0YSh0aGlzLm1hcC5wYWludGVyKSx0aGlzLmRpc3BhdGNoZXIuc2VuZCgicmVtb3ZlIHRpbGUiLHt1aWQ6dC51aWQsc291cmNlOnRoaXMuaWR9LGZ1bmN0aW9uKCl7fSx0LndvcmtlcklEKX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6dGhpcy50eXBlLGRhdGE6dGhpcy5fZGF0YX19fSl9LHsiLi4vZGF0YS9idWNrZXQiOjI1MywiLi4vdXRpbC9ldmVudGVkIjozNTgsIi4uL3V0aWwvdXRpbCI6MzY2LCJyZXNvbHZlLXVybCI6NDI2fV0sMjgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ImJih0aGlzLmxvYWRHZW9KU09OPXIpLGguY2FsbCh0aGlzLHQsZSl9dmFyIGk9dCgiLi4vdXRpbC91dGlsIiksbz10KCIuLi91dGlsL2FqYXgiKSxhPXQoImdlb2pzb24tcmV3aW5kIikscz10KCIuL2dlb2pzb25fd3JhcHBlciIpLGw9dCgidnQtcGJmIiksdT10KCJzdXBlcmNsdXN0ZXIiKSxjPXQoImdlb2pzb24tdnQiKSxoPXQoIi4vdmVjdG9yX3RpbGVfd29ya2VyX3NvdXJjZSIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPWkuaW5oZXJpdChoLHtfZ2VvSlNPTkluZGV4ZXM6e30sbG9hZFZlY3RvckRhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj10LnNvdXJjZSxuPXQuY29vcmQ7aWYoIXRoaXMuX2dlb0pTT05JbmRleGVzW3JdKXJldHVybiBlKG51bGwsbnVsbCk7dmFyIGk9dGhpcy5fZ2VvSlNPTkluZGV4ZXNbcl0uZ2V0VGlsZShNYXRoLm1pbihuLnosdC5tYXhab29tKSxuLngsbi55KTtpZighaSlyZXR1cm4gZShudWxsLG51bGwpO3ZhciBvPW5ldyBzKGkuZmVhdHVyZXMpO28ubmFtZT0iX2dlb2pzb25UaWxlTGF5ZXIiO3ZhciBhPWwoe2xheWVyczp7X2dlb2pzb25UaWxlTGF5ZXI6b319KTswPT09YS5ieXRlT2Zmc2V0JiZhLmJ5dGVMZW5ndGg9PT1hLmJ1ZmZlci5ieXRlTGVuZ3RofHwoYT1uZXcgVWludDhBcnJheShhKSksZShudWxsLHt0aWxlOm8scmF3VGlsZURhdGE6YS5idWZmZXJ9KX0sbG9hZERhdGE6ZnVuY3Rpb24odCxlKXt2YXIgcj1mdW5jdGlvbihyLG4pe3JldHVybiByP2Uocik6Im9iamVjdCIhPXR5cGVvZiBuP2UobmV3IEVycm9yKCJJbnB1dCBkYXRhIGlzIG5vdCBhIHZhbGlkIEdlb0pTT04gb2JqZWN0LiIpKTooYShuLCEwKSx2b2lkIHRoaXMuX2luZGV4RGF0YShuLHQsZnVuY3Rpb24ocixuKXtyZXR1cm4gcj9lKHIpOih0aGlzLl9nZW9KU09OSW5kZXhlc1t0LnNvdXJjZV09bix2b2lkIGUobnVsbCkpfS5iaW5kKHRoaXMpKSl9LmJpbmQodGhpcyk7dGhpcy5sb2FkR2VvSlNPTih0LHIpfSxsb2FkR2VvSlNPTjpmdW5jdGlvbih0LGUpe2lmKHQudXJsKW8uZ2V0SlNPTih0LnVybCxlKTtlbHNle2lmKCJzdHJpbmciIT10eXBlb2YgdC5kYXRhKXJldHVybiBlKG5ldyBFcnJvcigiSW5wdXQgZGF0YSBpcyBub3QgYSB2YWxpZCBHZW9KU09OIG9iamVjdC4iKSk7dHJ5e3JldHVybiBlKG51bGwsSlNPTi5wYXJzZSh0LmRhdGEpKX1jYXRjaChyKXtyZXR1cm4gZShuZXcgRXJyb3IoIklucHV0IGRhdGEgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIikpfX19LF9pbmRleERhdGE6ZnVuY3Rpb24odCxlLHIpe3RyeXtlLmNsdXN0ZXI/cihudWxsLHUoZS5zdXBlcmNsdXN0ZXJPcHRpb25zKS5sb2FkKHQuZmVhdHVyZXMpKTpyKG51bGwsYyh0LGUuZ2VvanNvblZ0T3B0aW9ucykpfWNhdGNoKG4pe3JldHVybiByKG4pfX19KX0seyIuLi91dGlsL2FqYXgiOjM0OSwiLi4vdXRpbC91dGlsIjozNjYsIi4vZ2VvanNvbl93cmFwcGVyIjoyODQsIi4vdmVjdG9yX3RpbGVfd29ya2VyX3NvdXJjZSI6Mjk1LCJnZW9qc29uLXJld2luZCI6MzcxLCJnZW9qc29uLXZ0IjozNzcsc3VwZXJjbHVzdGVyOjQyOCwidnQtcGJmIjo0Mzh9XSwyODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLmZlYXR1cmVzPXQsdGhpcy5sZW5ndGg9dC5sZW5ndGgsdGhpcy5leHRlbnQ9c31mdW5jdGlvbiBpKHQpe2lmKHRoaXMudHlwZT10LnR5cGUsMT09PXQudHlwZSl7dGhpcy5yYXdHZW9tZXRyeT1bXTtmb3IodmFyIGU9MDtlPHQuZ2VvbWV0cnkubGVuZ3RoO2UrKyl0aGlzLnJhd0dlb21ldHJ5LnB1c2goW3QuZ2VvbWV0cnlbZV1dKX1lbHNlIHRoaXMucmF3R2VvbWV0cnk9dC5nZW9tZXRyeTt0aGlzLnByb3BlcnRpZXM9dC50YWdzLHRoaXMuZXh0ZW50PXN9dmFyIG89dCgicG9pbnQtZ2VvbWV0cnkiKSxhPXQoInZlY3Rvci10aWxlIikuVmVjdG9yVGlsZUZlYXR1cmUscz10KCIuLi9kYXRhL2J1Y2tldCIpLkVYVEVOVDtlLmV4cG9ydHM9bixuLnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaSh0aGlzLmZlYXR1cmVzW3RdKX0saS5wcm90b3R5cGUubG9hZEdlb21ldHJ5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yYXdHZW9tZXRyeTt0aGlzLmdlb21ldHJ5PVtdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXtmb3IodmFyIHI9dFtlXSxuPVtdLGk9MDtpPHIubGVuZ3RoO2krKyluLnB1c2gobmV3IG8ocltpXVswXSxyW2ldWzFdKSk7dGhpcy5nZW9tZXRyeS5wdXNoKG4pfXJldHVybiB0aGlzLmdlb21ldHJ5fSxpLnByb3RvdHlwZS5iYm94PWZ1bmN0aW9uKCl7dGhpcy5nZW9tZXRyeXx8dGhpcy5sb2FkR2VvbWV0cnkoKTtmb3IodmFyIHQ9dGhpcy5nZW9tZXRyeSxlPTEvMCxyPS0oMS8wKSxuPTEvMCxpPS0oMS8wKSxvPTA7bzx0Lmxlbmd0aDtvKyspZm9yKHZhciBhPXRbb10scz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdO2U9TWF0aC5taW4oZSxsLngpLHI9TWF0aC5tYXgocixsLngpLG49TWF0aC5taW4obixsLnkpLGk9TWF0aC5tYXgoaSxsLnkpfXJldHVybltlLG4scixpXX0saS5wcm90b3R5cGUudG9HZW9KU09OPWEucHJvdG90eXBlLnRvR2VvSlNPTn0seyIuLi9kYXRhL2J1Y2tldCI6MjUzLCJwb2ludC1nZW9tZXRyeSI6NDI0LCJ2ZWN0b3ItdGlsZSI6NDM0fV0sMjg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuaWQ9dCx0aGlzLmRpc3BhdGNoZXI9cix0aGlzLnVybD1lLnVybCx0aGlzLmNvb3JkaW5hdGVzPWUuY29vcmRpbmF0ZXMsdS5nZXRJbWFnZShlLnVybCxmdW5jdGlvbih0LHIpe3JldHVybiB0P3RoaXMuZmlyZSgiZXJyb3IiLHtlcnJvcjp0fSk6KHRoaXMuaW1hZ2U9cix0aGlzLmltYWdlLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dGhpcy5tYXAuX3JlcmVuZGVyKCl9LmJpbmQodGhpcykpLHRoaXMuX2xvYWRlZD0hMCx0aGlzLmZpcmUoImxvYWQiKSx2b2lkKHRoaXMubWFwJiZ0aGlzLnNldENvb3JkaW5hdGVzKGUuY29vcmRpbmF0ZXMpKSl9LmJpbmQodGhpcykpfXZhciBpPXQoIi4uL3V0aWwvdXRpbCIpLG89dCgiLi90aWxlX2Nvb3JkIiksYT10KCIuLi9nZW8vbG5nX2xhdCIpLHM9dCgicG9pbnQtZ2VvbWV0cnkiKSxsPXQoIi4uL3V0aWwvZXZlbnRlZCIpLHU9dCgiLi4vdXRpbC9hamF4IiksYz10KCIuLi9kYXRhL2J1Y2tldCIpLkVYVEVOVCxoPXQoIi4uL3JlbmRlci9kcmF3X3Jhc3RlciIpLlJhc3RlckJvdW5kc0FycmF5LGY9dCgiLi4vZGF0YS9idWZmZXIiKSxwPXQoIi4uL3JlbmRlci92ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9aS5pbmhlcml0KGwse21pbnpvb206MCxtYXh6b29tOjIyLHRpbGVTaXplOjUxMixvbkFkZDpmdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMuaW1hZ2UmJnRoaXMuc2V0Q29vcmRpbmF0ZXModGhpcy5jb29yZGluYXRlcyl9LHNldENvb3JkaW5hdGVzOmZ1bmN0aW9uKHQpe3RoaXMuY29vcmRpbmF0ZXM9dDt2YXIgZT10aGlzLm1hcCxyPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBlLnRyYW5zZm9ybS5sb2NhdGlvbkNvb3JkaW5hdGUoYS5jb252ZXJ0KHQpKS56b29tVG8oMCl9KSxuPXRoaXMuY2VudGVyQ29vcmQ9aS5nZXRDb29yZGluYXRlc0NlbnRlcihyKTtyZXR1cm4gbi5jb2x1bW49TWF0aC5yb3VuZChuLmNvbHVtbiksbi5yb3c9TWF0aC5yb3VuZChuLnJvdyksdGhpcy5taW56b29tPXRoaXMubWF4em9vbT1uLnpvb20sdGhpcy5fY29vcmQ9bmV3IG8obi56b29tLG4uY29sdW1uLG4ucm93KSx0aGlzLl90aWxlQ29vcmRzPXIubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPXQuem9vbVRvKG4uem9vbSk7cmV0dXJuIG5ldyBzKE1hdGgucm91bmQoKGUuY29sdW1uLW4uY29sdW1uKSpjKSxNYXRoLnJvdW5kKChlLnJvdy1uLnJvdykqYykpfSksdGhpcy5maXJlKCJjaGFuZ2UiKSx0aGlzfSxfc2V0VGlsZTpmdW5jdGlvbih0KXt0aGlzLl9wcmVwYXJlZD0hMSx0aGlzLnRpbGU9dDt2YXIgZT0zMjc2NyxyPW5ldyBoO3IuZW1wbGFjZUJhY2sodGhpcy5fdGlsZUNvb3Jkc1swXS54LHRoaXMuX3RpbGVDb29yZHNbMF0ueSwwLDApLHIuZW1wbGFjZUJhY2sodGhpcy5fdGlsZUNvb3Jkc1sxXS54LHRoaXMuX3RpbGVDb29yZHNbMV0ueSxlLDApLHIuZW1wbGFjZUJhY2sodGhpcy5fdGlsZUNvb3Jkc1szXS54LHRoaXMuX3RpbGVDb29yZHNbM10ueSwwLGUpLHIuZW1wbGFjZUJhY2sodGhpcy5fdGlsZUNvb3Jkc1syXS54LHRoaXMuX3RpbGVDb29yZHNbMl0ueSxlLGUpLHRoaXMudGlsZS5idWNrZXRzPXt9LHRoaXMudGlsZS5ib3VuZHNCdWZmZXI9bmV3IGYoci5zZXJpYWxpemUoKSxoLnNlcmlhbGl6ZSgpLGYuQnVmZmVyVHlwZS5WRVJURVgpLHRoaXMudGlsZS5ib3VuZHNWQU89bmV3IHAsdGhpcy50aWxlLnN0YXRlPSJsb2FkZWQifSxwcmVwYXJlOmZ1bmN0aW9uKCl7aWYodGhpcy5fbG9hZGVkJiZ0aGlzLmltYWdlJiZ0aGlzLmltYWdlLmNvbXBsZXRlJiZ0aGlzLnRpbGUpe3ZhciB0PXRoaXMubWFwLnBhaW50ZXIsZT10LmdsO3RoaXMuX3ByZXBhcmVkPyhlLmJpbmRUZXh0dXJlKGUuVEVYVFVSRV8yRCx0aGlzLnRpbGUudGV4dHVyZSksZS50ZXhTdWJJbWFnZTJEKGUuVEVYVFVSRV8yRCwwLDAsMCxlLlJHQkEsZS5VTlNJR05FRF9CWVRFLHRoaXMuaW1hZ2UpKToodGhpcy50aWxlLnRleHR1cmU9ZS5jcmVhdGVUZXh0dXJlKCksZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy50aWxlLnRleHR1cmUpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX1dSQVBfUyxlLkNMQU1QX1RPX0VER0UpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX1dSQVBfVCxlLkNMQU1QX1RPX0VER0UpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX01JTl9GSUxURVIsZS5MSU5FQVIpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX01BR19GSUxURVIsZS5MSU5FQVIpLGUudGV4SW1hZ2UyRChlLlRFWFRVUkVfMkQsMCxlLlJHQkEsZS5SR0JBLGUuVU5TSUdORURfQllURSx0aGlzLmltYWdlKSl9fSxsb2FkVGlsZTpmdW5jdGlvbih0LGUpe3RoaXMuX2Nvb3JkJiZ0aGlzLl9jb29yZC50b1N0cmluZygpPT09dC5jb29yZC50b1N0cmluZygpPyh0aGlzLl9zZXRUaWxlKHQpLGUobnVsbCkpOih0LnN0YXRlPSJlcnJvcmVkIixlKG51bGwpKX0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6ImltYWdlIix1cmxzOnRoaXMudXJsLGNvb3JkaW5hdGVzOnRoaXMuY29vcmRpbmF0ZXN9fX0pfSx7Ii4uL2RhdGEvYnVja2V0IjoyNTMsIi4uL2RhdGEvYnVmZmVyIjoyNTgsIi4uL2dlby9sbmdfbGF0IjoyNjMsIi4uL3JlbmRlci9kcmF3X3Jhc3RlciI6Mjc1LCIuLi9yZW5kZXIvdmVydGV4X2FycmF5X29iamVjdCI6MjgxLCIuLi91dGlsL2FqYXgiOjM0OSwiLi4vdXRpbC9ldmVudGVkIjozNTgsIi4uL3V0aWwvdXRpbCI6MzY2LCIuL3RpbGVfY29vcmQiOjI5MywicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDI4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi91dGlsL3V0aWwiKSxpPXQoIi4uL3V0aWwvYWpheCIpLG89dCgiLi4vdXRpbC9icm93c2VyIiksYT10KCIuLi91dGlsL21hcGJveCIpLm5vcm1hbGl6ZVNvdXJjZVVSTDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1mdW5jdGlvbih0LHIpe2lmKHQpcmV0dXJuIGUodCk7dmFyIGk9bi5waWNrKHIsWyJ0aWxlcyIsIm1pbnpvb20iLCJtYXh6b29tIiwiYXR0cmlidXRpb24iXSk7ci52ZWN0b3JfbGF5ZXJzJiYoaS52ZWN0b3JMYXllcnM9ci52ZWN0b3JfbGF5ZXJzLGkudmVjdG9yTGF5ZXJJZHM9aS52ZWN0b3JMYXllcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLGUobnVsbCxpKX07dC51cmw/aS5nZXRKU09OKGEodC51cmwpLHIpOm8uZnJhbWUoci5iaW5kKG51bGwsbnVsbCx0KSl9fSx7Ii4uL3V0aWwvYWpheCI6MzQ5LCIuLi91dGlsL2Jyb3dzZXIiOjM1MCwiLi4vdXRpbC9tYXBib3giOjM2MywiLi4vdXRpbC91dGlsIjozNjZ9XSwyODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZGF0YS9idWNrZXQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlKihuLkVYVEVOVC8odC50aWxlU2l6ZSpNYXRoLnBvdygyLHItdC5jb29yZC56KSkpfX0seyIuLi9kYXRhL2J1Y2tldCI6MjUzfV0sMjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj10LmNvb3JkLG49ZS5jb29yZDtyZXR1cm4gci56LW4uenx8ci55LW4ueXx8ci53LW4ud3x8ci54LW4ueH1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT10WzBdfHx7fSxyPTE7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07Zm9yKHZhciBpIGluIG4pe3ZhciBvPW5baV0sYT1lW2ldO2lmKHZvaWQgMD09PWEpYT1lW2ldPW87ZWxzZSBmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKylhLnB1c2gob1tzXSl9fXJldHVybiBlfXZhciBvPXQoIi4vdGlsZV9jb29yZCIpO3IucmVuZGVyZWQ9ZnVuY3Rpb24odCxlLHIsbyxhLHMpe3ZhciBsPXQudGlsZXNJbihyKTtsLnNvcnQobik7Zm9yKHZhciB1PVtdLGM9MDtjPGwubGVuZ3RoO2MrKyl7dmFyIGg9bFtjXTtoLnRpbGUuZmVhdHVyZUluZGV4JiZ1LnB1c2goaC50aWxlLmZlYXR1cmVJbmRleC5xdWVyeSh7cXVlcnlHZW9tZXRyeTpoLnF1ZXJ5R2VvbWV0cnksc2NhbGU6aC5zY2FsZSx0aWxlU2l6ZTpoLnRpbGUudGlsZVNpemUsYmVhcmluZzpzLHBhcmFtczpvfSxlKSl9cmV0dXJuIGkodSl9LHIuc291cmNlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQucmVuZGVyZWRJRHMoKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0VGlsZUJ5SUQoZSl9KSxuPVtdLGk9e30sYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgcz1yW2FdLGw9bmV3IG8oTWF0aC5taW4ocy5zb3VyY2VNYXhab29tLHMuY29vcmQueikscy5jb29yZC54LHMuY29vcmQueSwwKS5pZDtpW2xdfHwoaVtsXT0hMCxzLnF1ZXJ5U291cmNlRmVhdHVyZXMobixlKSl9cmV0dXJuIG59fSx7Ii4vdGlsZV9jb29yZCI6MjkzfV0sMjg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuaWQ9dCx0aGlzLmRpc3BhdGNoZXI9cixpLmV4dGVuZCh0aGlzLGkucGljayhlLFsidXJsIiwic2NoZW1lIiwidGlsZVNpemUiXSkpLHMoZSxmdW5jdGlvbih0LGUpe3JldHVybiB0P3RoaXMuZmlyZSgiZXJyb3IiLHQpOihpLmV4dGVuZCh0aGlzLGUpLHZvaWQgdGhpcy5maXJlKCJsb2FkIikpfS5iaW5kKHRoaXMpKX12YXIgaT10KCIuLi91dGlsL3V0aWwiKSxvPXQoIi4uL3V0aWwvYWpheCIpLGE9dCgiLi4vdXRpbC9ldmVudGVkIikscz10KCIuL2xvYWRfdGlsZWpzb24iKSxsPXQoIi4uL3V0aWwvbWFwYm94Iikubm9ybWFsaXplVGlsZVVSTDtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT1pLmluaGVyaXQoYSx7bWluem9vbTowLG1heHpvb206MjIscm91bmRab29tOiEwLHNjaGVtZToieHl6Iix0aWxlU2l6ZTo1MTIsX2xvYWRlZDohMSxvbkFkZDpmdW5jdGlvbih0KXt0aGlzLm1hcD10fSxzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToicmFzdGVyIix1cmw6dGhpcy51cmwsdGlsZVNpemU6dGhpcy50aWxlU2l6ZX19LGxvYWRUaWxlOmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLG4pe2lmKGRlbGV0ZSB0LnJlcXVlc3QsIXQuYWJvcnRlZCl7aWYocilyZXR1cm4gZShyKTt2YXIgaT10aGlzLm1hcC5wYWludGVyLmdsO3QudGV4dHVyZT10aGlzLm1hcC5wYWludGVyLmdldFRleHR1cmUobi53aWR0aCksdC50ZXh0dXJlPyhpLmJpbmRUZXh0dXJlKGkuVEVYVFVSRV8yRCx0LnRleHR1cmUpLGkudGV4U3ViSW1hZ2UyRChpLlRFWFRVUkVfMkQsMCwwLDAsaS5SR0JBLGkuVU5TSUdORURfQllURSxuKSk6KHQudGV4dHVyZT1pLmNyZWF0ZVRleHR1cmUoKSxpLmJpbmRUZXh0dXJlKGkuVEVYVFVSRV8yRCx0LnRleHR1cmUpLGkudGV4UGFyYW1ldGVyaShpLlRFWFRVUkVfMkQsaS5URVhUVVJFX01JTl9GSUxURVIsaS5MSU5FQVJfTUlQTUFQX05FQVJFU1QpLGkudGV4UGFyYW1ldGVyaShpLlRFWFRVUkVfMkQsaS5URVhUVVJFX01BR19GSUxURVIsaS5MSU5FQVIpLGkudGV4UGFyYW1ldGVyaShpLlRFWFRVUkVfMkQsaS5URVhUVVJFX1dSQVBfUyxpLkNMQU1QX1RPX0VER0UpLGkudGV4UGFyYW1ldGVyaShpLlRFWFRVUkVfMkQsaS5URVhUVVJFX1dSQVBfVCxpLkNMQU1QX1RPX0VER0UpLGkucGl4ZWxTdG9yZWkoaS5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsITApLGkudGV4SW1hZ2UyRChpLlRFWFRVUkVfMkQsMCxpLlJHQkEsaS5SR0JBLGkuVU5TSUdORURfQllURSxuKSx0LnRleHR1cmUuc2l6ZT1uLndpZHRoKSxpLmdlbmVyYXRlTWlwbWFwKGkuVEVYVFVSRV8yRCksdGhpcy5tYXAuYW5pbWF0aW9uTG9vcC5zZXQodGhpcy5tYXAuc3R5bGUucmFzdGVyRmFkZUR1cmF0aW9uKSx0LnN0YXRlPSJsb2FkZWQiLGUobnVsbCl9fXZhciBuPWwodC5jb29yZC51cmwodGhpcy50aWxlcyxudWxsLHRoaXMuc2NoZW1lKSx0aGlzLnVybCx0aGlzLnRpbGVTaXplKTt0LnJlcXVlc3Q9by5nZXRJbWFnZShuLHIuYmluZCh0aGlzKSl9LGFib3J0VGlsZTpmdW5jdGlvbih0KXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuYWJvcnQoKSxkZWxldGUgdC5yZXF1ZXN0KX0sdW5sb2FkVGlsZTpmdW5jdGlvbih0KXt0LnRleHR1cmUmJnRoaXMubWFwLnBhaW50ZXIuc2F2ZVRleHR1cmUodC50ZXh0dXJlKX19KX0seyIuLi91dGlsL2FqYXgiOjM0OSwiLi4vdXRpbC9ldmVudGVkIjozNTgsIi4uL3V0aWwvbWFwYm94IjozNjMsIi4uL3V0aWwvdXRpbCI6MzY2LCIuL2xvYWRfdGlsZWpzb24iOjI4Nn1dLDI5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi91dGlsL3V0aWwiKSxpPXt2ZWN0b3I6dCgiLi4vc291cmNlL3ZlY3Rvcl90aWxlX3NvdXJjZSIpLHJhc3Rlcjp0KCIuLi9zb3VyY2UvcmFzdGVyX3RpbGVfc291cmNlIiksZ2VvanNvbjp0KCIuLi9zb3VyY2UvZ2VvanNvbl9zb3VyY2UiKSx2aWRlbzp0KCIuLi9zb3VyY2UvdmlkZW9fc291cmNlIiksaW1hZ2U6dCgiLi4vc291cmNlL2ltYWdlX3NvdXJjZSIpfTtyLmNyZWF0ZT1mdW5jdGlvbih0LGUscil7aWYoZT1uZXcgaVtlLnR5cGVdKHQsZSxyKSxlLmlkIT09dCl0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIFNvdXJjZSBpZCB0byBiZSAiK3QrIiBpbnN0ZWFkIG9mICIrZS5pZCk7cmV0dXJuIG4uYmluZEFsbChbImxvYWQiLCJhYm9ydCIsInVubG9hZCIsInNlcmlhbGl6ZSIsInByZXBhcmUiXSxlKSxlfSxyLmdldFR5cGU9ZnVuY3Rpb24odCl7cmV0dXJuIGlbdF19LHIuc2V0VHlwZT1mdW5jdGlvbih0LGUpe2lbdF09ZX19LHsiLi4vc291cmNlL2dlb2pzb25fc291cmNlIjoyODIsIi4uL3NvdXJjZS9pbWFnZV9zb3VyY2UiOjI4NSwiLi4vc291cmNlL3Jhc3Rlcl90aWxlX3NvdXJjZSI6Mjg5LCIuLi9zb3VyY2UvdmVjdG9yX3RpbGVfc291cmNlIjoyOTQsIi4uL3NvdXJjZS92aWRlb19zb3VyY2UiOjI5NiwiLi4vdXRpbC91dGlsIjozNjZ9XSwyOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dGhpcy5pZD10LHRoaXMuZGlzcGF0Y2hlcj1yO3ZhciBuPXRoaXMuX3NvdXJjZT1hLmNyZWF0ZSh0LGUscikub24oImxvYWQiLGZ1bmN0aW9uKCl7dGhpcy5tYXAmJnRoaXMuX3NvdXJjZS5vbkFkZCYmdGhpcy5fc291cmNlLm9uQWRkKHRoaXMubWFwKSx0aGlzLl9zb3VyY2VMb2FkZWQ9ITAsdGhpcy50aWxlU2l6ZT1uLnRpbGVTaXplLHRoaXMubWluem9vbT1uLm1pbnpvb20sdGhpcy5tYXh6b29tPW4ubWF4em9vbSx0aGlzLnJvdW5kWm9vbT1uLnJvdW5kWm9vbSx0aGlzLnJlcGFyc2VPdmVyc2NhbGVkPW4ucmVwYXJzZU92ZXJzY2FsZWQsdGhpcy5pc1RpbGVDbGlwcGVkPW4uaXNUaWxlQ2xpcHBlZCx0aGlzLmF0dHJpYnV0aW9uPW4uYXR0cmlidXRpb24sdGhpcy52ZWN0b3JMYXllcklkcz1uLnZlY3RvckxheWVySWRzLHRoaXMuZmlyZSgibG9hZCIpfS5iaW5kKHRoaXMpKS5vbigiZXJyb3IiLGZ1bmN0aW9uKHQpe3RoaXMuX3NvdXJjZUVycm9yZWQ9ITAsdGhpcy5maXJlKCJlcnJvciIsdCl9LmJpbmQodGhpcykpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dGhpcy5yZWxvYWQoKSx0aGlzLnRyYW5zZm9ybSYmdGhpcy51cGRhdGUodGhpcy50cmFuc2Zvcm0sdGhpcy5tYXAmJnRoaXMubWFwLnN0eWxlLnJhc3RlckZhZGVEdXJhdGlvbiksdGhpcy5maXJlKCJjaGFuZ2UiKX0uYmluZCh0aGlzKSk7dGhpcy5fdGlsZXM9e30sdGhpcy5fY2FjaGU9bmV3IGMoMCx0aGlzLnVubG9hZFRpbGUuYmluZCh0aGlzKSksdGhpcy5faXNJZFJlbmRlcmFibGU9dGhpcy5faXNJZFJlbmRlcmFibGUuYmluZCh0aGlzKX1mdW5jdGlvbiBpKHQsZSxyKXt2YXIgbj1yLnpvb21UbyhNYXRoLm1pbih0LnosZSkpO3JldHVybnt4OihuLmNvbHVtbi0odC54K3QudypNYXRoLnBvdygyLHQueikpKSpwLHk6KG4ucm93LXQueSkqcH19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiB0JTMyLWUlMzJ9dmFyIGE9dCgiLi9zb3VyY2UiKSxzPXQoIi4vdGlsZSIpLGw9dCgiLi4vdXRpbC9ldmVudGVkIiksdT10KCIuL3RpbGVfY29vcmQiKSxjPXQoIi4uL3V0aWwvbHJ1X2NhY2hlIiksaD10KCIuLi9nZW8vY29vcmRpbmF0ZSIpLGY9dCgiLi4vdXRpbC91dGlsIikscD10KCIuLi9kYXRhL2J1Y2tldCIpLkVYVEVOVDtlLmV4cG9ydHM9bixuLm1heE92ZXJ6b29taW5nPTEwLG4ubWF4VW5kZXJ6b29taW5nPTMsbi5wcm90b3R5cGU9Zi5pbmhlcml0KGwse29uQWRkOmZ1bmN0aW9uKHQpe3RoaXMubWFwPXQsdGhpcy5fc291cmNlJiZ0aGlzLl9zb3VyY2Uub25BZGQmJnRoaXMuX3NvdXJjZS5vbkFkZCh0KX0sbG9hZGVkOmZ1bmN0aW9uKCl7aWYodGhpcy5fc291cmNlRXJyb3JlZClyZXR1cm4hMDtpZighdGhpcy5fc291cmNlTG9hZGVkKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLl90aWxlcyl7dmFyIGU9dGhpcy5fdGlsZXNbdF07aWYoImxvYWRlZCIhPT1lLnN0YXRlJiYiZXJyb3JlZCIhPT1lLnN0YXRlKXJldHVybiExfXJldHVybiEwfSxnZXRTb3VyY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc291cmNlfSxsb2FkVGlsZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9zb3VyY2UubG9hZFRpbGUodCxlKX0sdW5sb2FkVGlsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc291cmNlLnVubG9hZFRpbGU/dGhpcy5fc291cmNlLnVubG9hZFRpbGUodCk6dm9pZCAwfSxhYm9ydFRpbGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5hYm9ydFRpbGU/dGhpcy5fc291cmNlLmFib3J0VGlsZSh0KTp2b2lkIDB9LHNlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zb3VyY2Uuc2VyaWFsaXplKCl9LHByZXBhcmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc291cmNlTG9hZGVkJiZ0aGlzLl9zb3VyY2UucHJlcGFyZT90aGlzLl9zb3VyY2UucHJlcGFyZSgpOnZvaWQgMH0sZ2V0SWRzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX3RpbGVzKS5tYXAoTnVtYmVyKS5zb3J0KG8pfSxnZXRSZW5kZXJhYmxlSWRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0SWRzKCkuZmlsdGVyKHRoaXMuX2lzSWRSZW5kZXJhYmxlKX0sX2lzSWRSZW5kZXJhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl90aWxlc1t0XS5pc1JlbmRlcmFibGUoKSYmIXRoaXMuX2NvdmVyZWRUaWxlc1t0XX0scmVsb2FkOmZ1bmN0aW9uKCl7dGhpcy5fY2FjaGUucmVzZXQoKTtmb3IodmFyIHQgaW4gdGhpcy5fdGlsZXMpe3ZhciBlPXRoaXMuX3RpbGVzW3RdOyJsb2FkaW5nIiE9PWUuc3RhdGUmJihlLnN0YXRlPSJyZWxvYWRpbmciKSx0aGlzLmxvYWRUaWxlKHRoaXMuX3RpbGVzW3RdLHRoaXMuX3RpbGVMb2FkZWQuYmluZCh0aGlzLHRoaXMuX3RpbGVzW3RdKSl9fSxfdGlsZUxvYWRlZDpmdW5jdGlvbih0LGUpe3JldHVybiBlPyh0LnN0YXRlPSJlcnJvcmVkIix0aGlzLmZpcmUoInRpbGUuZXJyb3IiLHt0aWxlOnQsZXJyb3I6ZX0pLHZvaWQgdGhpcy5fc291cmNlLmZpcmUoInRpbGUuZXJyb3IiLHt0aWxlOnQsZXJyb3I6ZX0pKToodC5zb3VyY2U9dGhpcyx0LnRpbWVBZGRlZD0obmV3IERhdGUpLmdldFRpbWUoKSx0aGlzLmZpcmUoInRpbGUubG9hZCIse3RpbGU6dH0pLHZvaWQgdGhpcy5fc291cmNlLmZpcmUoInRpbGUubG9hZCIse3RpbGU6dH0pKX0sZ2V0VGlsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5nZXRUaWxlQnlJRCh0LmlkKX0sZ2V0VGlsZUJ5SUQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3RpbGVzW3RdfSxnZXRab29tOmZ1bmN0aW9uKHQpe3JldHVybiB0Lnpvb20rdC5zY2FsZVpvb20odC50aWxlU2l6ZS90aGlzLnRpbGVTaXplKX0sZmluZExvYWRlZENoaWxkcmVuOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0hMTtmb3IodmFyIGkgaW4gdGhpcy5fdGlsZXMpe3ZhciBvPXRoaXMuX3RpbGVzW2ldO2lmKCEocltpXXx8IW8uaXNSZW5kZXJhYmxlKCl8fG8uY29vcmQuejw9dC56fHxvLmNvb3JkLno+ZSkpe3ZhciBhPU1hdGgucG93KDIsTWF0aC5taW4oby5jb29yZC56LHRoaXMubWF4em9vbSktTWF0aC5taW4odC56LHRoaXMubWF4em9vbSkpO2lmKE1hdGguZmxvb3Ioby5jb29yZC54L2EpPT09dC54JiZNYXRoLmZsb29yKG8uY29vcmQueS9hKT09PXQueSlmb3IocltpXT0hMCxuPSEwO28mJm8uY29vcmQuei0xPnQuejspe3ZhciBzPW8uY29vcmQucGFyZW50KHRoaXMubWF4em9vbSkuaWQ7bz10aGlzLl90aWxlc1tzXSxvJiZvLmlzUmVuZGVyYWJsZSgpJiYoZGVsZXRlIHJbaV0scltzXT0hMCl9fX1yZXR1cm4gbn0sZmluZExvYWRlZFBhcmVudDpmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXQuei0xO24+PWU7bi0tKXt0PXQucGFyZW50KHRoaXMubWF4em9vbSk7dmFyIGk9dGhpcy5fdGlsZXNbdC5pZF07aWYoaSYmaS5pc1JlbmRlcmFibGUoKSlyZXR1cm4gclt0LmlkXT0hMCxpO2lmKHRoaXMuX2NhY2hlLmhhcyh0LmlkKSlyZXR1cm4gdGhpcy5hZGRUaWxlKHQpLHJbdC5pZF09ITAsdGhpcy5fdGlsZXNbdC5pZF19fSx1cGRhdGVDYWNoZVNpemU6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5jZWlsKHQud2lkdGgvdC50aWxlU2l6ZSkrMSxyPU1hdGguY2VpbCh0LmhlaWdodC90LnRpbGVTaXplKSsxLG49ZSpyLGk9NTt0aGlzLl9jYWNoZS5zZXRNYXhTaXplKE1hdGguZmxvb3IobippKSl9LHVwZGF0ZTpmdW5jdGlvbih0LGUpe2lmKHRoaXMuX3NvdXJjZUxvYWRlZCl7dmFyIHIsaSxvO3RoaXMudXBkYXRlQ2FjaGVTaXplKHQpO3ZhciBhPSh0aGlzLnJvdW5kWm9vbT9NYXRoLnJvdW5kOk1hdGguZmxvb3IpKHRoaXMuZ2V0Wm9vbSh0KSkscz1NYXRoLm1heChhLW4ubWF4T3Zlcnpvb21pbmcsdGhpcy5taW56b29tKSxsPU1hdGgubWF4KGErbi5tYXhVbmRlcnpvb21pbmcsdGhpcy5taW56b29tKSxjPXt9LGg9KG5ldyBEYXRlKS5nZXRUaW1lKCk7dGhpcy5fY292ZXJlZFRpbGVzPXt9O3ZhciBwPXRoaXMudXNlZD90LmNvdmVyaW5nVGlsZXModGhpcy5fc291cmNlKTpbXTtmb3Iocj0wO3I8cC5sZW5ndGg7cisrKWk9cFtyXSxvPXRoaXMuYWRkVGlsZShpKSxjW2kuaWRdPSEwLG8uaXNSZW5kZXJhYmxlKCl8fHRoaXMuZmluZExvYWRlZENoaWxkcmVuKGksbCxjKXx8dGhpcy5maW5kTG9hZGVkUGFyZW50KGkscyxjKTtmb3IodmFyIGQ9e30sbT1PYmplY3Qua2V5cyhjKSxnPTA7ZzxtLmxlbmd0aDtnKyspe3ZhciB2PW1bZ107aT11LmZyb21JRCh2KSxvPXRoaXMuX3RpbGVzW3ZdLG8mJm8udGltZUFkZGVkPmgtKGV8fDApJiYodGhpcy5maW5kTG9hZGVkQ2hpbGRyZW4oaSxsLGMpJiYoY1t2XT0hMCksdGhpcy5maW5kTG9hZGVkUGFyZW50KGkscyxkKSl9dmFyIHk7Zm9yKHkgaW4gZCljW3ldfHwodGhpcy5fY292ZXJlZFRpbGVzW3ldPSEwKTtmb3IoeSBpbiBkKWNbeV09ITA7dmFyIGI9Zi5rZXlzRGlmZmVyZW5jZSh0aGlzLl90aWxlcyxjKTtmb3Iocj0wO3I8Yi5sZW5ndGg7cisrKXRoaXMucmVtb3ZlVGlsZSgrYltyXSk7dGhpcy50cmFuc2Zvcm09dH19LGFkZFRpbGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZXNbdC5pZF07aWYoZSlyZXR1cm4gZTt2YXIgcj10LndyYXBwZWQoKTtpZihlPXRoaXMuX3RpbGVzW3IuaWRdLGV8fChlPXRoaXMuX2NhY2hlLmdldChyLmlkKSxlJiZ0aGlzLl9yZWRvUGxhY2VtZW50JiZ0aGlzLl9yZWRvUGxhY2VtZW50KGUpKSwhZSl7dmFyIG49dC56LGk9bj50aGlzLm1heHpvb20/TWF0aC5wb3coMixuLXRoaXMubWF4em9vbSk6MTtlPW5ldyBzKHIsdGhpcy50aWxlU2l6ZSppLHRoaXMubWF4em9vbSksdGhpcy5sb2FkVGlsZShlLHRoaXMuX3RpbGVMb2FkZWQuYmluZCh0aGlzLGUpKX1yZXR1cm4gZS51c2VzKyssdGhpcy5fdGlsZXNbdC5pZF09ZSx0aGlzLmZpcmUoInRpbGUuYWRkIix7dGlsZTplfSksdGhpcy5fc291cmNlLmZpcmUoInRpbGUuYWRkIix7dGlsZTplfSksZX0scmVtb3ZlVGlsZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aWxlc1t0XTtlJiYoZS51c2VzLS0sZGVsZXRlIHRoaXMuX3RpbGVzW3RdLHRoaXMuZmlyZSgidGlsZS5yZW1vdmUiLHt0aWxlOmV9KSx0aGlzLl9zb3VyY2UuZmlyZSgidGlsZS5yZW1vdmUiLHt0aWxlOmV9KSxlLnVzZXM+MHx8KGUuaXNSZW5kZXJhYmxlKCk/dGhpcy5fY2FjaGUuYWRkKGUuY29vcmQud3JhcHBlZCgpLmlkLGUpOihlLmFib3J0ZWQ9ITAsdGhpcy5hYm9ydFRpbGUoZSksdGhpcy51bmxvYWRUaWxlKGUpKSkpfSxjbGVhclRpbGVzOmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX3RpbGVzKXRoaXMucmVtb3ZlVGlsZSh0KTt0aGlzLl9jYWNoZS5yZXNldCgpfSx0aWxlc0luOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT17fSxyPXRoaXMuZ2V0SWRzKCksbj0xLzAsbz0xLzAsYT0tKDEvMCkscz0tKDEvMCksbD10WzBdLnpvb20sYz0wO2M8dC5sZW5ndGg7YysrKXt2YXIgZj10W2NdO249TWF0aC5taW4obixmLmNvbHVtbiksbz1NYXRoLm1pbihvLGYucm93KSxhPU1hdGgubWF4KGEsZi5jb2x1bW4pLHM9TWF0aC5tYXgocyxmLnJvdyl9Zm9yKHZhciBkPTA7ZDxyLmxlbmd0aDtkKyspe3ZhciBtPXRoaXMuX3RpbGVzW3JbZF1dLGc9dS5mcm9tSUQocltkXSksdj1baShnLG0uc291cmNlTWF4Wm9vbSxuZXcgaChuLG8sbCkpLGkoZyxtLnNvdXJjZU1heFpvb20sbmV3IGgoYSxzLGwpKV07aWYodlswXS54PHAmJnZbMF0ueTxwJiZ2WzFdLng+PTAmJnZbMV0ueT49MCl7Zm9yKHZhciB5PVtdLGI9MDtiPHQubGVuZ3RoO2IrKyl5LnB1c2goaShnLG0uc291cmNlTWF4Wm9vbSx0W2JdKSk7dmFyIHg9ZVttLmNvb3JkLmlkXTt2b2lkIDA9PT14JiYoeD1lW20uY29vcmQuaWRdPXt0aWxlOm0sY29vcmQ6ZyxxdWVyeUdlb21ldHJ5OltdLHNjYWxlOk1hdGgucG93KDIsdGhpcy50cmFuc2Zvcm0uem9vbS1tLmNvb3JkLnopfSkseC5xdWVyeUdlb21ldHJ5LnB1c2goeSl9fXZhciBfPVtdO2Zvcih2YXIgdyBpbiBlKV8ucHVzaChlW3ddKTtyZXR1cm4gX30scmVkb1BsYWNlbWVudDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmdldElkcygpLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIHI9dGhpcy5nZXRUaWxlQnlJRCh0W2VdKTtyLnJlZG9QbGFjZW1lbnQodGhpcyl9fSxnZXRWaXNpYmxlQ29vcmRpbmF0ZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJhYmxlSWRzKCkubWFwKHUuZnJvbUlEKX19KX0seyIuLi9kYXRhL2J1Y2tldCI6MjUzLCIuLi9nZW8vY29vcmRpbmF0ZSI6MjYyLCIuLi91dGlsL2V2ZW50ZWQiOjM1OCwiLi4vdXRpbC9scnVfY2FjaGUiOjM2MiwiLi4vdXRpbC91dGlsIjozNjYsIi4vc291cmNlIjoyOTAsIi4vdGlsZSI6MjkyLCIuL3RpbGVfY29vcmQiOjI5M31dLDI5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt0aGlzLmNvb3JkPXQsdGhpcy51aWQ9by51bmlxdWVJZCgpLHRoaXMudXNlcz0wLHRoaXMudGlsZVNpemU9ZSx0aGlzLnNvdXJjZU1heFpvb209cix0aGlzLmJ1Y2tldHM9e30sdGhpcy5zdGF0ZT0ibG9hZGluZyJ9ZnVuY3Rpb24gaSh0LGUpe2lmKGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPWUuZ2V0TGF5ZXIodFtuXS5sYXllcklkKTtpZihpKXt2YXIgcz1hLmNyZWF0ZShvLmV4dGVuZCh7bGF5ZXI6aSxjaGlsZExheWVyczp0W25dLmNoaWxkTGF5ZXJJZHMubWFwKGUuZ2V0TGF5ZXIuYmluZChlKSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0fSl9LHRbbl0pKTtyW3MuaWRdPXN9fXJldHVybiByfX12YXIgbz10KCIuLi91dGlsL3V0aWwiKSxhPXQoIi4uL2RhdGEvYnVja2V0Iikscz10KCIuLi9kYXRhL2ZlYXR1cmVfaW5kZXgiKSxsPXQoInZlY3Rvci10aWxlIiksdT10KCJwYmYiKSxjPXQoIi4uL3V0aWwvdmVjdG9ydGlsZV90b19nZW9qc29uIiksaD10KCJmZWF0dXJlLWZpbHRlciIpLGY9dCgiLi4vc3ltYm9sL2NvbGxpc2lvbl90aWxlIikscD10KCIuLi9zeW1ib2wvY29sbGlzaW9uX2JveCIpLGQ9dCgiLi4vc3ltYm9sL3N5bWJvbF9pbnN0YW5jZXMiKSxtPXQoIi4uL3N5bWJvbC9zeW1ib2xfcXVhZHMiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT17bG9hZFZlY3RvckRhdGE6ZnVuY3Rpb24odCxlKXt0aGlzLnN0YXRlPSJsb2FkZWQiLHQmJih0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyBwKHQuY29sbGlzaW9uQm94QXJyYXkpLHRoaXMuY29sbGlzaW9uVGlsZT1uZXcgZih0LmNvbGxpc2lvblRpbGUsdGhpcy5jb2xsaXNpb25Cb3hBcnJheSksdGhpcy5zeW1ib2xJbnN0YW5jZXNBcnJheT1uZXcgZCh0LnN5bWJvbEluc3RhbmNlc0FycmF5KSx0aGlzLnN5bWJvbFF1YWRzQXJyYXk9bmV3IG0odC5zeW1ib2xRdWFkc0FycmF5KSx0aGlzLmZlYXR1cmVJbmRleD1uZXcgcyh0LmZlYXR1cmVJbmRleCx0LnJhd1RpbGVEYXRhLHRoaXMuY29sbGlzaW9uVGlsZSksdGhpcy5yYXdUaWxlRGF0YT10LnJhd1RpbGVEYXRhLHRoaXMuYnVja2V0cz1pKHQuYnVja2V0cyxlKSl9LHJlbG9hZFN5bWJvbERhdGE6ZnVuY3Rpb24odCxlLHIpe2lmKCJ1bmxvYWRlZCIhPT10aGlzLnN0YXRlKXt0aGlzLmNvbGxpc2lvblRpbGU9bmV3IGYodC5jb2xsaXNpb25UaWxlLHRoaXMuY29sbGlzaW9uQm94QXJyYXkpLHRoaXMuZmVhdHVyZUluZGV4LnNldENvbGxpc2lvblRpbGUodGhpcy5jb2xsaXNpb25UaWxlKTtmb3IodmFyIG4gaW4gdGhpcy5idWNrZXRzKXt2YXIgYT10aGlzLmJ1Y2tldHNbbl07InN5bWJvbCI9PT1hLnR5cGUmJihhLmRlc3Ryb3koZS5nbCksZGVsZXRlIHRoaXMuYnVja2V0c1tuXSl9by5leHRlbmQodGhpcy5idWNrZXRzLGkodC5idWNrZXRzLHIpKX19LHVubG9hZFZlY3RvckRhdGE6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuYnVja2V0cyl7dmFyIHI9dGhpcy5idWNrZXRzW2VdO3IuZGVzdHJveSh0LmdsKX10aGlzLmNvbGxpc2lvbkJveEFycmF5PW51bGwsdGhpcy5zeW1ib2xRdWFkc0FycmF5PW51bGwsdGhpcy5zeW1ib2xJbnN0YW5jZXNBcnJheT1udWxsLHRoaXMuY29sbGlzaW9uVGlsZT1udWxsLHRoaXMuZmVhdHVyZUluZGV4PW51bGwsdGhpcy5yYXdUaWxlRGF0YT1udWxsLHRoaXMuYnVja2V0cz1udWxsLHRoaXMuc3RhdGU9InVubG9hZGVkIn0scmVkb1BsYWNlbWVudDpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dGhpcy5yZWxvYWRTeW1ib2xEYXRhKHIsdC5tYXAucGFpbnRlcix0Lm1hcC5zdHlsZSksdC5maXJlKCJ0aWxlLmxvYWQiLHt0aWxlOnRoaXN9KSx0aGlzLnN0YXRlPSJsb2FkZWQiLHRoaXMucmVkb1doZW5Eb25lJiYodGhpcy5yZWRvUGxhY2VtZW50KHQpLHRoaXMucmVkb1doZW5Eb25lPSExKX1yZXR1cm4ibG9hZGVkIiE9PXRoaXMuc3RhdGV8fCJyZWxvYWRpbmciPT09dGhpcy5zdGF0ZT92b2lkKHRoaXMucmVkb1doZW5Eb25lPSEwKToodGhpcy5zdGF0ZT0icmVsb2FkaW5nIix2b2lkIHQuZGlzcGF0Y2hlci5zZW5kKCJyZWRvIHBsYWNlbWVudCIse3VpZDp0aGlzLnVpZCxzb3VyY2U6dC5pZCxhbmdsZTp0Lm1hcC50cmFuc2Zvcm0uYW5nbGUscGl0Y2g6dC5tYXAudHJhbnNmb3JtLnBpdGNoLHNob3dDb2xsaXNpb25Cb3hlczp0Lm1hcC5zaG93Q29sbGlzaW9uQm94ZXN9LGUuYmluZCh0aGlzKSx0aGlzLndvcmtlcklEKSl9LGdldEJ1Y2tldDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5idWNrZXRzJiZ0aGlzLmJ1Y2tldHNbdC5yZWZ8fHQuaWRdfSxxdWVyeVNvdXJjZUZlYXR1cmVzOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5yYXdUaWxlRGF0YSl7dGhpcy52dExheWVyc3x8KHRoaXMudnRMYXllcnM9bmV3IGwuVmVjdG9yVGlsZShuZXcgdShuZXcgVWludDhBcnJheSh0aGlzLnJhd1RpbGVEYXRhKSkpLmxheWVycyk7dmFyIHI9dGhpcy52dExheWVycy5fZ2VvanNvblRpbGVMYXllcnx8dGhpcy52dExheWVyc1tlLnNvdXJjZUxheWVyXTtpZihyKWZvcih2YXIgbj1oKGUuZmlsdGVyKSxpPXt6OnRoaXMuY29vcmQueix4OnRoaXMuY29vcmQueCx5OnRoaXMuY29vcmQueX0sbz0wO288ci5sZW5ndGg7bysrKXt2YXIgYT1yLmZlYXR1cmUobyk7aWYobihhKSl7dmFyIHM9bmV3IGMoYSx0aGlzLmNvb3JkLnosdGhpcy5jb29yZC54LHRoaXMuY29vcmQueSk7cy50aWxlPWksdC5wdXNoKHMpfX19fSxpc1JlbmRlcmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4ibG9hZGVkIj09PXRoaXMuc3RhdGV8fCJyZWxvYWRpbmciPT09dGhpcy5zdGF0ZX19fSx7Ii4uL2RhdGEvYnVja2V0IjoyNTMsIi4uL2RhdGEvZmVhdHVyZV9pbmRleCI6MjYwLCIuLi9zeW1ib2wvY29sbGlzaW9uX2JveCI6MzE4LCIuLi9zeW1ib2wvY29sbGlzaW9uX3RpbGUiOjMyMCwiLi4vc3ltYm9sL3N5bWJvbF9pbnN0YW5jZXMiOjMyOSwiLi4vc3ltYm9sL3N5bWJvbF9xdWFkcyI6MzMwLCIuLi91dGlsL3V0aWwiOjM2NiwiLi4vdXRpbC92ZWN0b3J0aWxlX3RvX2dlb2pzb24iOjM2NywiZmVhdHVyZS1maWx0ZXIiOjM3MCxwYmY6NDIyLCJ2ZWN0b3ItdGlsZSI6NDM0fV0sMjkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbil7aXNOYU4obikmJihuPTApLHRoaXMuej0rdCx0aGlzLng9K2UsdGhpcy55PStyLHRoaXMudz0rbixuKj0yLDA+biYmKG49LTEqbi0xKTt2YXIgaT0xPDx0aGlzLno7dGhpcy5pZD0zMiooaSppKm4raSp0aGlzLnkrdGhpcy54KSt0aGlzLnosdGhpcy5wb3NNYXRyaXg9bnVsbH1mdW5jdGlvbiBpKHQsZSxyKXtmb3IodmFyIG4saT0iIixvPXQ7bz4wO28tLSluPTE8PG8tMSxpKz0oZSZuPzE6MCkrKHImbj8yOjApO3JldHVybiBpfWZ1bmN0aW9uIG8odCxlKXtpZih0LnJvdz5lLnJvdyl7dmFyIHI9dDt0PWUsZT1yfXJldHVybnt4MDp0LmNvbHVtbix5MDp0LnJvdyx4MTplLmNvbHVtbix5MTplLnJvdyxkeDplLmNvbHVtbi10LmNvbHVtbixkeTplLnJvdy10LnJvd319ZnVuY3Rpb24gYSh0LGUscixuLGkpe3ZhciBvPU1hdGgubWF4KHIsTWF0aC5mbG9vcihlLnkwKSksYT1NYXRoLm1pbihuLE1hdGguY2VpbChlLnkxKSk7aWYodC54MD09PWUueDAmJnQueTA9PT1lLnkwP3QueDArZS5keS90LmR5KnQuZHg8ZS54MTp0LngxLWUuZHkvdC5keSp0LmR4PGUueDApe3ZhciBzPXQ7dD1lLGU9c31mb3IodmFyIGw9dC5keC90LmR5LHU9ZS5keC9lLmR5LGM9dC5keD4wLGg9ZS5keDwwLGY9bzthPmY7ZisrKXt2YXIgcD1sKk1hdGgubWF4KDAsTWF0aC5taW4odC5keSxmK2MtdC55MCkpK3QueDAsZD11Kk1hdGgubWF4KDAsTWF0aC5taW4oZS5keSxmK2gtZS55MCkpK2UueDA7aShNYXRoLmZsb29yKGQpLE1hdGguY2VpbChwKSxmKX19ZnVuY3Rpb24gcyh0LGUscixuLGkscyl7dmFyIGwsdT1vKHQsZSksYz1vKGUsciksaD1vKHIsdCk7dS5keT5jLmR5JiYobD11LHU9YyxjPWwpLHUuZHk+aC5keSYmKGw9dSx1PWgsaD1sKSxjLmR5PmguZHkmJihsPWMsYz1oLGg9bCksdS5keSYmYShoLHUsbixpLHMpLGMuZHkmJmEoaCxjLG4saSxzKX12YXIgbD10KCJ3aG9vdHMtanMiKSx1PXQoIi4uL2dlby9jb29yZGluYXRlIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy56KyIvIit0aGlzLngrIi8iK3RoaXMueX0sbi5wcm90b3R5cGUudG9Db29yZGluYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWluKHRoaXMueix0KSxyPU1hdGgucG93KDIsZSksbj10aGlzLnksaT10aGlzLngrcip0aGlzLnc7cmV0dXJuIG5ldyB1KGksbixlKX0sbi5mcm9tSUQ9ZnVuY3Rpb24odCl7dmFyIGU9dCUzMixyPTE8PGUsaT0odC1lKS8zMixvPWklcixhPShpLW8pL3IlcixzPU1hdGguZmxvb3IoaS8ocipyKSk7cmV0dXJuIHMlMiE9PTAmJihzPS0xKnMtMSkscy89MixuZXcgbihlLG8sYSxzKX0sbi5wcm90b3R5cGUudXJsPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1sLmdldFRpbGVCQm94KHRoaXMueCx0aGlzLnksdGhpcy56KSxvPWkodGhpcy56LHRoaXMueCx0aGlzLnkpO3JldHVybiB0Wyh0aGlzLngrdGhpcy55KSV0Lmxlbmd0aF0ucmVwbGFjZSgie3ByZWZpeH0iLCh0aGlzLnglMTYpLnRvU3RyaW5nKDE2KSsodGhpcy55JTE2KS50b1N0cmluZygxNikpLnJlcGxhY2UoInt6fSIsTWF0aC5taW4odGhpcy56LGV8fHRoaXMueikpLnJlcGxhY2UoInt4fSIsdGhpcy54KS5yZXBsYWNlKCJ7eX0iLCJ0bXMiPT09cj9NYXRoLnBvdygyLHRoaXMueiktdGhpcy55LTE6dGhpcy55KS5yZXBsYWNlKCJ7cXVhZGtleX0iLG8pLnJlcGxhY2UoIntiYm94LWVwc2ctMzg1N30iLG4pfSxuLnByb3RvdHlwZS5wYXJlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLno/bnVsbDp0aGlzLno+dD9uZXcgbih0aGlzLnotMSx0aGlzLngsdGhpcy55LHRoaXMudyk6bmV3IG4odGhpcy56LTEsTWF0aC5mbG9vcih0aGlzLngvMiksTWF0aC5mbG9vcih0aGlzLnkvMiksdGhpcy53KX0sbi5wcm90b3R5cGUud3JhcHBlZD1mdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzLnosdGhpcy54LHRoaXMueSwwKX0sbi5wcm90b3R5cGUuY2hpbGRyZW49ZnVuY3Rpb24odCl7aWYodGhpcy56Pj10KXJldHVybltuZXcgbih0aGlzLnorMSx0aGlzLngsdGhpcy55LHRoaXMudyldO3ZhciBlPXRoaXMueisxLHI9Mip0aGlzLngsaT0yKnRoaXMueTtyZXR1cm5bbmV3IG4oZSxyLGksdGhpcy53KSxuZXcgbihlLHIrMSxpLHRoaXMudyksbmV3IG4oZSxyLGkrMSx0aGlzLncpLG5ldyBuKGUscisxLGkrMSx0aGlzLncpXX0sbi5jb3Zlcj1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gaSh0LGUsaSl7dmFyIHMsbCx1O2lmKGk+PTAmJm8+PWkpZm9yKHM9dDtlPnM7cysrKWw9KHMlbytvKSVvLHU9bmV3IG4ocixsLGksTWF0aC5mbG9vcihzL28pKSxhW3UuaWRdPXV9dmFyIG89MTw8dCxhPXt9O3JldHVybiBzKGVbMF0sZVsxXSxlWzJdLDAsbyxpKSxzKGVbMl0sZVszXSxlWzBdLDAsbyxpKSxPYmplY3Qua2V5cyhhKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGFbdF19KX19LHsiLi4vZ2VvL2Nvb3JkaW5hdGUiOjI2Miwid2hvb3RzLWpzIjo0NDJ9XSwyOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7aWYodGhpcy5pZD10LHRoaXMuZGlzcGF0Y2hlcj1yLG8uZXh0ZW5kKHRoaXMsby5waWNrKGUsWyJ1cmwiLCJzY2hlbWUiLCJ0aWxlU2l6ZSJdKSksdGhpcy5fb3B0aW9ucz1vLmV4dGVuZCh7dHlwZToidmVjdG9yIn0sZSksNTEyIT09dGhpcy50aWxlU2l6ZSl0aHJvdyBuZXcgRXJyb3IoInZlY3RvciB0aWxlIHNvdXJjZXMgbXVzdCBoYXZlIGEgdGlsZVNpemUgb2YgNTEyIik7YShlLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/dm9pZCB0aGlzLmZpcmUoImVycm9yIix0KTooby5leHRlbmQodGhpcyxlKSx2b2lkIHRoaXMuZmlyZSgibG9hZCIpKX0uYmluZCh0aGlzKSl9dmFyIGk9dCgiLi4vdXRpbC9ldmVudGVkIiksbz10KCIuLi91dGlsL3V0aWwiKSxhPXQoIi4vbG9hZF90aWxlanNvbiIpLHM9dCgiLi4vdXRpbC9tYXBib3giKS5ub3JtYWxpemVUaWxlVVJMO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPW8uaW5oZXJpdChpLHttaW56b29tOjAsbWF4em9vbToyMixzY2hlbWU6Inh5eiIsdGlsZVNpemU6NTEyLHJlcGFyc2VPdmVyc2NhbGVkOiEwLGlzVGlsZUNsaXBwZWQ6ITAsb25BZGQ6ZnVuY3Rpb24odCl7dGhpcy5tYXA9dH0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8uZXh0ZW5kKHt9LHRoaXMuX29wdGlvbnMpfSxsb2FkVGlsZTpmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixuKXtpZighdC5hYm9ydGVkKXtpZihyKXJldHVybiBlKHIpO3QubG9hZFZlY3RvckRhdGEobix0aGlzLm1hcC5zdHlsZSksdC5yZWRvV2hlbkRvbmUmJih0LnJlZG9XaGVuRG9uZT0hMSx0LnJlZG9QbGFjZW1lbnQodGhpcykpLGUobnVsbCksdC5yZWxvYWRDYWxsYmFjayYmKHRoaXMubG9hZFRpbGUodCx0LnJlbG9hZENhbGxiYWNrKSx0LnJlbG9hZENhbGxiYWNrPW51bGwpfX12YXIgbj10LmNvb3JkLno+dGhpcy5tYXh6b29tP01hdGgucG93KDIsdC5jb29yZC56LXRoaXMubWF4em9vbSk6MSxpPXt1cmw6cyh0LmNvb3JkLnVybCh0aGlzLnRpbGVzLHRoaXMubWF4em9vbSx0aGlzLnNjaGVtZSksdGhpcy51cmwpLHVpZDp0LnVpZCxjb29yZDp0LmNvb3JkLHpvb206dC5jb29yZC56LHRpbGVTaXplOnRoaXMudGlsZVNpemUqbixzb3VyY2U6dGhpcy5pZCxvdmVyc2NhbGluZzpuLGFuZ2xlOnRoaXMubWFwLnRyYW5zZm9ybS5hbmdsZSxwaXRjaDp0aGlzLm1hcC50cmFuc2Zvcm0ucGl0Y2gsc2hvd0NvbGxpc2lvbkJveGVzOnRoaXMubWFwLnNob3dDb2xsaXNpb25Cb3hlc307dC53b3JrZXJJRD8ibG9hZGluZyI9PT10LnN0YXRlP3QucmVsb2FkQ2FsbGJhY2s9ZTooaS5yYXdUaWxlRGF0YT10LnJhd1RpbGVEYXRhLHRoaXMuZGlzcGF0Y2hlci5zZW5kKCJyZWxvYWQgdGlsZSIsaSxyLmJpbmQodGhpcyksdC53b3JrZXJJRCkpOnQud29ya2VySUQ9dGhpcy5kaXNwYXRjaGVyLnNlbmQoImxvYWQgdGlsZSIsaSxyLmJpbmQodGhpcykpfSxhYm9ydFRpbGU6ZnVuY3Rpb24odCl7dGhpcy5kaXNwYXRjaGVyLnNlbmQoImFib3J0IHRpbGUiLHt1aWQ6dC51aWQsc291cmNlOnRoaXMuaWR9LG51bGwsdC53b3JrZXJJRCl9LHVubG9hZFRpbGU6ZnVuY3Rpb24odCl7dC51bmxvYWRWZWN0b3JEYXRhKHRoaXMubWFwLnBhaW50ZXIpLHRoaXMuZGlzcGF0Y2hlci5zZW5kKCJyZW1vdmUgdGlsZSIse3VpZDp0LnVpZCxzb3VyY2U6dGhpcy5pZH0sbnVsbCx0LndvcmtlcklEKX19KX0seyIuLi91dGlsL2V2ZW50ZWQiOjM1OCwiLi4vdXRpbC9tYXBib3giOjM2MywiLi4vdXRpbC91dGlsIjozNjYsIi4vbG9hZF90aWxlanNvbiI6Mjg2fV0sMjk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuYWN0b3I9dCx0aGlzLnN0eWxlTGF5ZXJzPWUsciYmKHRoaXMubG9hZFZlY3RvckRhdGE9ciksdGhpcy5sb2FkaW5nPXt9LHRoaXMubG9hZGVkPXt9fXZhciBpPXQoIi4uL3V0aWwvYWpheCIpLG89dCgidmVjdG9yLXRpbGUiKSxhPXQoInBiZiIpLHM9dCgiLi93b3JrZXJfdGlsZSIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPXtsb2FkVGlsZTpmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIodCxyKXtyZXR1cm4gZGVsZXRlIHRoaXMubG9hZGluZ1tuXVtpXSx0P2UodCk6cj8oby5kYXRhPXIudGlsZSxvLnBhcnNlKG8uZGF0YSx0aGlzLnN0eWxlTGF5ZXJzLmdldExheWVyRmFtaWxpZXMoKSx0aGlzLmFjdG9yLHIucmF3VGlsZURhdGEsZSksdGhpcy5sb2FkZWRbbl09dGhpcy5sb2FkZWRbbl18fHt9LHZvaWQodGhpcy5sb2FkZWRbbl1baV09bykpOmUobnVsbCxudWxsKX12YXIgbj10LnNvdXJjZSxpPXQudWlkO3RoaXMubG9hZGluZ1tuXXx8KHRoaXMubG9hZGluZ1tuXT17fSk7dmFyIG89dGhpcy5sb2FkaW5nW25dW2ldPW5ldyBzKHQpO28uYWJvcnQ9dGhpcy5sb2FkVmVjdG9yRGF0YSh0LHIuYmluZCh0aGlzKSl9LHJlbG9hZFRpbGU6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxvYWRlZFt0LnNvdXJjZV0sbj10LnVpZDtpZihyJiZyW25dKXt2YXIgaT1yW25dO2kucGFyc2UoaS5kYXRhLHRoaXMuc3R5bGVMYXllcnMuZ2V0TGF5ZXJGYW1pbGllcygpLHRoaXMuYWN0b3IsdC5yYXdUaWxlRGF0YSxlKX19LGFib3J0VGlsZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmxvYWRpbmdbdC5zb3VyY2VdLHI9dC51aWQ7ZSYmZVtyXSYmZVtyXS5hYm9ydCYmKGVbcl0uYWJvcnQoKSxkZWxldGUgZVtyXSl9LHJlbW92ZVRpbGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sb2FkZWRbdC5zb3VyY2VdLHI9dC51aWQ7ZSYmZVtyXSYmZGVsZXRlIGVbcl19LGxvYWRWZWN0b3JEYXRhOmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LHIpe2lmKHQpcmV0dXJuIGUodCk7dmFyIG49bmV3IG8uVmVjdG9yVGlsZShuZXcgYShuZXcgVWludDhBcnJheShyKSkpO2UodCx7dGlsZTpuLHJhd1RpbGVEYXRhOnJ9KX12YXIgbj1pLmdldEFycmF5QnVmZmVyKHQudXJsLHIuYmluZCh0aGlzKSk7cmV0dXJuIGZ1bmN0aW9uKCl7bi5hYm9ydCgpfX0scmVkb1BsYWNlbWVudDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubG9hZGVkW3Quc291cmNlXSxuPXRoaXMubG9hZGluZ1t0LnNvdXJjZV0saT10LnVpZDtpZihyJiZyW2ldKXt2YXIgbz1yW2ldLGE9by5yZWRvUGxhY2VtZW50KHQuYW5nbGUsdC5waXRjaCx0LnNob3dDb2xsaXNpb25Cb3hlcyk7YS5yZXN1bHQmJmUobnVsbCxhLnJlc3VsdCxhLnRyYW5zZmVyYWJsZXMpfWVsc2UgbiYmbltpXSYmKG5baV0uYW5nbGU9dC5hbmdsZSl9fX0seyIuLi91dGlsL2FqYXgiOjM0OSwiLi93b3JrZXJfdGlsZSI6Mjk4LHBiZjo0MjIsInZlY3Rvci10aWxlIjo0MzR9XSwyOTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMuaWQ9dCx0aGlzLnVybHM9ZS51cmxzLHRoaXMuY29vcmRpbmF0ZXM9ZS5jb29yZGluYXRlcyx1LmdldFZpZGVvKGUudXJscyxmdW5jdGlvbih0LHIpe2lmKHQpcmV0dXJuIHRoaXMuZmlyZSgiZXJyb3IiLHtlcnJvcjp0fSk7dGhpcy52aWRlbz1yLHRoaXMudmlkZW8ubG9vcD0hMDt2YXIgbjt0aGlzLnZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoInBsYXlpbmciLGZ1bmN0aW9uKCl7bj10aGlzLm1hcC5zdHlsZS5hbmltYXRpb25Mb29wLnNldCgxLzApLHRoaXMubWFwLl9yZXJlbmRlcigpfS5iaW5kKHRoaXMpKSx0aGlzLnZpZGVvLmFkZEV2ZW50TGlzdGVuZXIoInBhdXNlIixmdW5jdGlvbigpe3RoaXMubWFwLnN0eWxlLmFuaW1hdGlvbkxvb3AuY2FuY2VsKG4pfS5iaW5kKHRoaXMpKSx0aGlzLm1hcCYmKHRoaXMudmlkZW8ucGxheSgpLHRoaXMuc2V0Q29vcmRpbmF0ZXMoZS5jb29yZGluYXRlcykpLHRoaXMuZmlyZSgibG9hZCIpfS5iaW5kKHRoaXMpKX12YXIgaT10KCIuLi91dGlsL3V0aWwiKSxvPXQoIi4vdGlsZV9jb29yZCIpLGE9dCgiLi4vZ2VvL2xuZ19sYXQiKSxzPXQoInBvaW50LWdlb21ldHJ5IiksbD10KCIuLi91dGlsL2V2ZW50ZWQiKSx1PXQoIi4uL3V0aWwvYWpheCIpLGM9dCgiLi4vZGF0YS9idWNrZXQiKS5FWFRFTlQsaD10KCIuLi9yZW5kZXIvZHJhd19yYXN0ZXIiKS5SYXN0ZXJCb3VuZHNBcnJheSxmPXQoIi4uL2RhdGEvYnVmZmVyIikscD10KCIuLi9yZW5kZXIvdmVydGV4X2FycmF5X29iamVjdCIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPWkuaW5oZXJpdChsLHttaW56b29tOjAsbWF4em9vbToyMix0aWxlU2l6ZTo1MTIscm91bmRab29tOiEwLGdldFZpZGVvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlkZW99LG9uQWRkOmZ1bmN0aW9uKHQpe3RoaXMubWFwfHwodGhpcy5tYXA9dCx0aGlzLnZpZGVvJiYodGhpcy52aWRlby5wbGF5KCksdGhpcy5zZXRDb29yZGluYXRlcyh0aGlzLmNvb3JkaW5hdGVzKSkpfSxzZXRDb29yZGluYXRlczpmdW5jdGlvbih0KXt0aGlzLmNvb3JkaW5hdGVzPXQ7dmFyIGU9dGhpcy5tYXAscj10Lm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZS50cmFuc2Zvcm0ubG9jYXRpb25Db29yZGluYXRlKGEuY29udmVydCh0KSkuem9vbVRvKDApfSksbj10aGlzLmNlbnRlckNvb3JkPWkuZ2V0Q29vcmRpbmF0ZXNDZW50ZXIocik7cmV0dXJuIG4uY29sdW1uPU1hdGgucm91bmQobi5jb2x1bW4pLG4ucm93PU1hdGgucm91bmQobi5yb3cpLHRoaXMubWluem9vbT10aGlzLm1heHpvb209bi56b29tLHRoaXMuX2Nvb3JkPW5ldyBvKG4uem9vbSxuLmNvbHVtbixuLnJvdyksdGhpcy5fdGlsZUNvb3Jkcz1yLm1hcChmdW5jdGlvbih0KXt2YXIgZT10Lnpvb21UbyhuLnpvb20pO3JldHVybiBuZXcgcyhNYXRoLnJvdW5kKChlLmNvbHVtbi1uLmNvbHVtbikqYyksTWF0aC5yb3VuZCgoZS5yb3ctbi5yb3cpKmMpKX0pLHRoaXMuZmlyZSgiY2hhbmdlIiksdGhpc30sX3NldFRpbGU6ZnVuY3Rpb24odCl7dGhpcy5fcHJlcGFyZWQ9ITEsdGhpcy50aWxlPXQ7dmFyIGU9MzI3Njcscj1uZXcgaDtyLmVtcGxhY2VCYWNrKHRoaXMuX3RpbGVDb29yZHNbMF0ueCx0aGlzLl90aWxlQ29vcmRzWzBdLnksMCwwKSxyLmVtcGxhY2VCYWNrKHRoaXMuX3RpbGVDb29yZHNbMV0ueCx0aGlzLl90aWxlQ29vcmRzWzFdLnksZSwwKSxyLmVtcGxhY2VCYWNrKHRoaXMuX3RpbGVDb29yZHNbM10ueCx0aGlzLl90aWxlQ29vcmRzWzNdLnksMCxlKSxyLmVtcGxhY2VCYWNrKHRoaXMuX3RpbGVDb29yZHNbMl0ueCx0aGlzLl90aWxlQ29vcmRzWzJdLnksZSxlKSx0aGlzLnRpbGUuYnVja2V0cz17fSx0aGlzLnRpbGUuYm91bmRzQnVmZmVyPW5ldyBmKHIuc2VyaWFsaXplKCksaC5zZXJpYWxpemUoKSxmLkJ1ZmZlclR5cGUuVkVSVEVYKSx0aGlzLnRpbGUuYm91bmRzVkFPPW5ldyBwLHRoaXMudGlsZS5zdGF0ZT0ibG9hZGVkIn0scHJlcGFyZTpmdW5jdGlvbigpe2lmKCEodGhpcy52aWRlby5yZWFkeVN0YXRlPDIpJiZ0aGlzLnRpbGUpe3ZhciB0PXRoaXMubWFwLnBhaW50ZXIuZ2w7dGhpcy5fcHJlcGFyZWQ/KHQuYmluZFRleHR1cmUodC5URVhUVVJFXzJELHRoaXMudGlsZS50ZXh0dXJlKSx0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELDAsMCwwLHQuUkdCQSx0LlVOU0lHTkVEX0JZVEUsdGhpcy52aWRlbykpOih0aGlzLl9wcmVwYXJlZD0hMCx0aGlzLnRpbGUudGV4dHVyZT10LmNyZWF0ZVRleHR1cmUoKSx0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCx0aGlzLnRpbGUudGV4dHVyZSksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfV1JBUF9TLHQuQ0xBTVBfVE9fRURHRSksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfV1JBUF9ULHQuQ0xBTVBfVE9fRURHRSksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUlOX0ZJTFRFUix0LkxJTkVBUiksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUFHX0ZJTFRFUix0LkxJTkVBUiksdC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLHQuUkdCQSx0LlJHQkEsdC5VTlNJR05FRF9CWVRFLHRoaXMudmlkZW8pKSx0aGlzLl9jdXJyZW50VGltZT10aGlzLnZpZGVvLmN1cnJlbnRUaW1lfX0sbG9hZFRpbGU6ZnVuY3Rpb24odCxlKXt0aGlzLl9jb29yZCYmdGhpcy5fY29vcmQudG9TdHJpbmcoKT09PXQuY29vcmQudG9TdHJpbmcoKT8odGhpcy5fc2V0VGlsZSh0KSxlKG51bGwpKToodC5zdGF0ZT0iZXJyb3JlZCIsZShudWxsKSk7Cn0sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InZpZGVvIix1cmxzOnRoaXMudXJscyxjb29yZGluYXRlczp0aGlzLmNvb3JkaW5hdGVzfX19KX0seyIuLi9kYXRhL2J1Y2tldCI6MjUzLCIuLi9kYXRhL2J1ZmZlciI6MjU4LCIuLi9nZW8vbG5nX2xhdCI6MjYzLCIuLi9yZW5kZXIvZHJhd19yYXN0ZXIiOjI3NSwiLi4vcmVuZGVyL3ZlcnRleF9hcnJheV9vYmplY3QiOjI4MSwiLi4vdXRpbC9hamF4IjozNDksIi4uL3V0aWwvZXZlbnRlZCI6MzU4LCIuLi91dGlsL3V0aWwiOjM2NiwiLi90aWxlX2Nvb3JkIjoyOTMsInBvaW50LWdlb21ldHJ5Ijo0MjR9XSwyOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLnNlbGY9dCx0aGlzLmFjdG9yPW5ldyBvKHQsdGhpcyk7dmFyIGU9e2dldExheWVyczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheWVyc30uYmluZCh0aGlzKSxnZXRMYXllckZhbWlsaWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5ZXJGYW1pbGllc30uYmluZCh0aGlzKX07dGhpcy53b3JrZXJTb3VyY2VzPXt2ZWN0b3I6bmV3IGwodGhpcy5hY3RvcixlKSxnZW9qc29uOm5ldyB1KHRoaXMuYWN0b3IsZSl9LHRoaXMuc2VsZi5yZWdpc3RlcldvcmtlclNvdXJjZT1mdW5jdGlvbih0LHIpe2lmKHRoaXMud29ya2VyU291cmNlc1t0XSl0aHJvdyBuZXcgRXJyb3IoJ1dvcmtlciBzb3VyY2Ugd2l0aCBuYW1lICInK3QrJyIgYWxyZWFkeSByZWdpc3RlcmVkLicpO3RoaXMud29ya2VyU291cmNlc1t0XT1uZXcgcih0aGlzLmFjdG9yLGUpfS5iaW5kKHRoaXMpfWZ1bmN0aW9uIGkodCl7dmFyIGU9e307Zm9yKHZhciByIGluIHQpe3ZhciBuPXRbcl0saT1uLnJlZnx8bi5pZCxvPXRbaV07by5sYXlvdXQmJiJub25lIj09PW8ubGF5b3V0LnZpc2liaWxpdHl8fChlW2ldPWVbaV18fFtdLHI9PT1pP2VbaV0udW5zaGlmdChuKTplW2ldLnB1c2gobikpfXJldHVybiBlfXZhciBvPXQoIi4uL3V0aWwvYWN0b3IiKSxhPXQoIi4uL3N0eWxlL3N0eWxlX2xheWVyIikscz10KCIuLi91dGlsL3V0aWwiKSxsPXQoIi4vdmVjdG9yX3RpbGVfd29ya2VyX3NvdXJjZSIpLHU9dCgiLi9nZW9qc29uX3dvcmtlcl9zb3VyY2UiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuKHQpfSxzLmV4dGVuZChuLnByb3RvdHlwZSx7InNldCBsYXllcnMiOmZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dmFyIGU9YS5jcmVhdGUodCx0LnJlZiYmci5sYXllcnNbdC5yZWZdKTtlLnVwZGF0ZVBhaW50VHJhbnNpdGlvbnMoe30se3RyYW5zaXRpb246ITF9KSxyLmxheWVyc1tlLmlkXT1lfXRoaXMubGF5ZXJzPXt9O2Zvcih2YXIgcj10aGlzLG49W10sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dOyJmaWxsIiE9PXMudHlwZSYmImxpbmUiIT09cy50eXBlJiYiY2lyY2xlIiE9PXMudHlwZSYmInN5bWJvbCIhPT1zLnR5cGV8fChzLnJlZj9uLnB1c2gobyk6ZShzKSl9Zm9yKHZhciBsPTA7bDxuLmxlbmd0aDtsKyspZSh0W25bbF1dKTt0aGlzLmxheWVyRmFtaWxpZXM9aSh0aGlzLmxheWVycyl9LCJ1cGRhdGUgbGF5ZXJzIjpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPW8ubGF5ZXJzW3QucmVmXTtvLmxheWVyc1t0LmlkXT9vLmxheWVyc1t0LmlkXS5zZXQodCxlKTpvLmxheWVyc1t0LmlkXT1hLmNyZWF0ZSh0LGUpLG8ubGF5ZXJzW3QuaWRdLnVwZGF0ZVBhaW50VHJhbnNpdGlvbnMoe30se3RyYW5zaXRpb246ITF9KX12YXIgcixuLG89dGhpcztmb3IociBpbiB0KW49dFtyXSxuLnJlZiYmZShuKTtmb3IociBpbiB0KW49dFtyXSxuLnJlZnx8ZShuKTt0aGlzLmxheWVyRmFtaWxpZXM9aSh0aGlzLmxheWVycyl9LCJsb2FkIHRpbGUiOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC50eXBlfHwidmVjdG9yIjt0aGlzLndvcmtlclNvdXJjZXNbcl0ubG9hZFRpbGUodCxlKX0sInJlbG9hZCB0aWxlIjpmdW5jdGlvbih0LGUpe3ZhciByPXQudHlwZXx8InZlY3RvciI7dGhpcy53b3JrZXJTb3VyY2VzW3JdLnJlbG9hZFRpbGUodCxlKX0sImFib3J0IHRpbGUiOmZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZXx8InZlY3RvciI7dGhpcy53b3JrZXJTb3VyY2VzW2VdLmFib3J0VGlsZSh0KX0sInJlbW92ZSB0aWxlIjpmdW5jdGlvbih0KXt2YXIgZT10LnR5cGV8fCJ2ZWN0b3IiO3RoaXMud29ya2VyU291cmNlc1tlXS5yZW1vdmVUaWxlKHQpfSwicmVkbyBwbGFjZW1lbnQiOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC50eXBlfHwidmVjdG9yIjt0aGlzLndvcmtlclNvdXJjZXNbcl0ucmVkb1BsYWNlbWVudCh0LGUpfSwibG9hZCB3b3JrZXIgc291cmNlIjpmdW5jdGlvbih0LGUpe3RyeXt0aGlzLnNlbGYuaW1wb3J0U2NyaXB0cyh0LnVybCksZSgpfWNhdGNoKHIpe2Uocil9fX0pfSx7Ii4uL3N0eWxlL3N0eWxlX2xheWVyIjozMDUsIi4uL3V0aWwvYWN0b3IiOjM0OCwiLi4vdXRpbC91dGlsIjozNjYsIi4vZ2VvanNvbl93b3JrZXJfc291cmNlIjoyODMsIi4vdmVjdG9yX3RpbGVfd29ya2VyX3NvdXJjZSI6Mjk1fV0sMjk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5jb29yZD10LmNvb3JkLHRoaXMudWlkPXQudWlkLHRoaXMuem9vbT10Lnpvb20sdGhpcy50aWxlU2l6ZT10LnRpbGVTaXplLHRoaXMuc291cmNlPXQuc291cmNlLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmFuZ2xlPXQuYW5nbGUsdGhpcy5waXRjaD10LnBpdGNoLHRoaXMuc2hvd0NvbGxpc2lvbkJveGVzPXQuc2hvd0NvbGxpc2lvbkJveGVzfWZ1bmN0aW9uIGkodCl7cmV0dXJuIXQuaXNFbXB0eSgpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIHQuc2VyaWFsaXplKCl9ZnVuY3Rpb24gYSh0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCl0W3JdLmdldFRyYW5zZmVyYWJsZXMoZSk7cmV0dXJuIGV9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC5pZH12YXIgbD10KCIuLi9kYXRhL2ZlYXR1cmVfaW5kZXgiKSx1PXQoIi4uL3N5bWJvbC9jb2xsaXNpb25fdGlsZSIpLGM9dCgiLi4vZGF0YS9idWNrZXQiKSxoPXQoIi4uL3N5bWJvbC9jb2xsaXNpb25fYm94IiksZj10KCIuLi91dGlsL2RpY3Rpb25hcnlfY29kZXIiKSxwPXQoIi4uL3V0aWwvdXRpbCIpLGQ9dCgiLi4vc3ltYm9sL3N5bWJvbF9pbnN0YW5jZXMiKSxtPXQoIi4uL3N5bWJvbC9zeW1ib2xfcXVhZHMiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0LGUscixuLGcpe2Z1bmN0aW9uIHYodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dC5mZWF0dXJlKHIpO24uaW5kZXg9cjtmb3IodmFyIGkgaW4gZSllW2ldLmZpbHRlcihuKSYmZVtpXS5mZWF0dXJlcy5wdXNoKG4pfX1mdW5jdGlvbiB5KHQpe2lmKHQpcmV0dXJuIGcodCk7aWYoTisrLDI9PT1OKXtmb3IodmFyIGU9Ui5sZW5ndGgtMTtlPj0wO2UtLSliKFMsUltlXSk7eCgpfX1mdW5jdGlvbiBiKHQsZSl7aWYoZS5wb3B1bGF0ZUFycmF5cyhBLEYsTyksInN5bWJvbCIhPT1lLnR5cGUpZm9yKHZhciByPTA7cjxlLmZlYXR1cmVzLmxlbmd0aDtyKyspe3ZhciBuPWUuZmVhdHVyZXNbcl07VC5pbnNlcnQobixuLmluZGV4LGUuc291cmNlTGF5ZXJJbmRleCxlLmluZGV4KX1lLmZlYXR1cmVzPW51bGx9ZnVuY3Rpb24geCgpe1Muc3RhdHVzPSJkb25lIixTLnJlZG9QbGFjZW1lbnRBZnRlckRvbmUmJihTLnJlZG9QbGFjZW1lbnQoUy5hbmdsZSxTLnBpdGNoLG51bGwpLFMucmVkb1BsYWNlbWVudEFmdGVyRG9uZT0hMSk7dmFyIHQ9VC5zZXJpYWxpemUoKSxlPUEuc2VyaWFsaXplKCkscj1TLmNvbGxpc2lvbkJveEFycmF5LnNlcmlhbGl6ZSgpLHM9Uy5zeW1ib2xJbnN0YW5jZXNBcnJheS5zZXJpYWxpemUoKSxsPVMuc3ltYm9sUXVhZHNBcnJheS5zZXJpYWxpemUoKSx1PVtuXS5jb25jYXQodC50cmFuc2ZlcmFibGVzKS5jb25jYXQoZS50cmFuc2ZlcmFibGVzKSxjPUMuZmlsdGVyKGkpO2cobnVsbCx7YnVja2V0czpjLm1hcChvKSxmZWF0dXJlSW5kZXg6dC5kYXRhLGNvbGxpc2lvblRpbGU6ZS5kYXRhLGNvbGxpc2lvbkJveEFycmF5OnIsc3ltYm9sSW5zdGFuY2VzQXJyYXk6cyxzeW1ib2xRdWFkc0FycmF5OmwscmF3VGlsZURhdGE6bn0sYShjKS5jb25jYXQodSkpfXRoaXMuc3RhdHVzPSJwYXJzaW5nIix0aGlzLmRhdGE9dCx0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyBoLHRoaXMuc3ltYm9sSW5zdGFuY2VzQXJyYXk9bmV3IGQsdGhpcy5zeW1ib2xRdWFkc0FycmF5PW5ldyBtO3ZhciBfLHcsTSxrLEE9bmV3IHUodGhpcy5hbmdsZSx0aGlzLnBpdGNoLHRoaXMuY29sbGlzaW9uQm94QXJyYXkpLFQ9bmV3IGwodGhpcy5jb29yZCx0aGlzLm92ZXJzY2FsaW5nLEEsdC5sYXllcnMpLEU9bmV3IGYodC5sYXllcnM/T2JqZWN0LmtleXModC5sYXllcnMpLnNvcnQoKTpbIl9nZW9qc29uVGlsZUxheWVyIl0pLFM9dGhpcyxMPXt9LHo9e30sST0wO2Zvcih2YXIgUCBpbiBlKXc9ZVtQXVswXSx3LnNvdXJjZT09PXRoaXMuc291cmNlJiYody5yZWZ8fHcubWluem9vbSYmdGhpcy56b29tPHcubWluem9vbXx8dy5tYXh6b29tJiZ0aGlzLnpvb20+PXcubWF4em9vbXx8dy5sYXlvdXQmJiJub25lIj09PXcubGF5b3V0LnZpc2liaWxpdHl8fHQubGF5ZXJzJiYhdC5sYXllcnNbdy5zb3VyY2VMYXllcl18fChrPWMuY3JlYXRlKHtsYXllcjp3LGluZGV4OkkrKyxjaGlsZExheWVyczplW1BdLHpvb206dGhpcy56b29tLG92ZXJzY2FsaW5nOnRoaXMub3ZlcnNjYWxpbmcsc2hvd0NvbGxpc2lvbkJveGVzOnRoaXMuc2hvd0NvbGxpc2lvbkJveGVzLGNvbGxpc2lvbkJveEFycmF5OnRoaXMuY29sbGlzaW9uQm94QXJyYXksc3ltYm9sUXVhZHNBcnJheTp0aGlzLnN5bWJvbFF1YWRzQXJyYXksc3ltYm9sSW5zdGFuY2VzQXJyYXk6dGhpcy5zeW1ib2xJbnN0YW5jZXNBcnJheSxzb3VyY2VMYXllckluZGV4OkUuZW5jb2RlKHcuc291cmNlTGF5ZXJ8fCJfZ2VvanNvblRpbGVMYXllciIpfSksay5jcmVhdGVGaWx0ZXIoKSxMW3cuaWRdPWssdC5sYXllcnMmJihNPXcuc291cmNlTGF5ZXIseltNXT16W01dfHx7fSx6W01dW3cuaWRdPWspKSk7aWYodC5sYXllcnMpZm9yKE0gaW4geikxPT09dy52ZXJzaW9uJiZwLndhcm5PbmNlKCdWZWN0b3IgdGlsZSBzb3VyY2UgIicrdGhpcy5zb3VyY2UrJyIgbGF5ZXIgIicrTSsnIiBkb2VzIG5vdCB1c2UgdmVjdG9yIHRpbGUgc3BlYyB2MiBhbmQgdGhlcmVmb3JlIG1heSBoYXZlIHNvbWUgcmVuZGVyaW5nIGVycm9ycy4nKSx3PXQubGF5ZXJzW01dLHcmJnYodyx6W01dKTtlbHNlIHYodCxMKTt2YXIgQz1bXSxSPXRoaXMuc3ltYm9sQnVja2V0cz1bXSxqPVtdO1QuYnVja2V0TGF5ZXJJRHM9e307Zm9yKHZhciBEIGluIEwpaz1MW0RdLDAhPT1rLmZlYXR1cmVzLmxlbmd0aCYmKFQuYnVja2V0TGF5ZXJJRHNbay5pbmRleF09ay5jaGlsZExheWVycy5tYXAocyksQy5wdXNoKGspLCJzeW1ib2wiPT09ay50eXBlP1IucHVzaChrKTpqLnB1c2goaykpO3ZhciBPPXt9LEY9e30sTj0wO2lmKFIubGVuZ3RoPjApe2ZvcihfPVIubGVuZ3RoLTE7Xz49MDtfLS0pUltfXS51cGRhdGVJY29ucyhPKSxSW19dLnVwZGF0ZUZvbnQoRik7Zm9yKHZhciBCIGluIEYpRltCXT1PYmplY3Qua2V5cyhGW0JdKS5tYXAoTnVtYmVyKTtPPU9iamVjdC5rZXlzKE8pLHIuc2VuZCgiZ2V0IGdseXBocyIse3VpZDp0aGlzLnVpZCxzdGFja3M6Rn0sZnVuY3Rpb24odCxlKXtGPWUseSh0KX0pLE8ubGVuZ3RoP3Iuc2VuZCgiZ2V0IGljb25zIix7aWNvbnM6T30sZnVuY3Rpb24odCxlKXtPPWUseSh0KX0pOnkoKX1mb3IoXz1qLmxlbmd0aC0xO18+PTA7Xy0tKWIodGhpcyxqW19dKTtyZXR1cm4gMD09PVIubGVuZ3RoP3goKTp2b2lkIDB9LG4ucHJvdG90eXBlLnJlZG9QbGFjZW1lbnQ9ZnVuY3Rpb24odCxlLHIpe2lmKCJkb25lIiE9PXRoaXMuc3RhdHVzKXJldHVybiB0aGlzLnJlZG9QbGFjZW1lbnRBZnRlckRvbmU9ITAsdGhpcy5hbmdsZT10LHt9O2Zvcih2YXIgbj1uZXcgdSh0LGUsdGhpcy5jb2xsaXNpb25Cb3hBcnJheSkscz10aGlzLnN5bWJvbEJ1Y2tldHMsbD1zLmxlbmd0aC0xO2w+PTA7bC0tKXNbbF0ucGxhY2VGZWF0dXJlcyhuLHIpO3ZhciBjPW4uc2VyaWFsaXplKCksaD1zLmZpbHRlcihpKTtyZXR1cm57cmVzdWx0OntidWNrZXRzOmgubWFwKG8pLGNvbGxpc2lvblRpbGU6Yy5kYXRhfSx0cmFuc2ZlcmFibGVzOmEoaCkuY29uY2F0KGMudHJhbnNmZXJhYmxlcyl9fX0seyIuLi9kYXRhL2J1Y2tldCI6MjUzLCIuLi9kYXRhL2ZlYXR1cmVfaW5kZXgiOjI2MCwiLi4vc3ltYm9sL2NvbGxpc2lvbl9ib3giOjMxOCwiLi4vc3ltYm9sL2NvbGxpc2lvbl90aWxlIjozMjAsIi4uL3N5bWJvbC9zeW1ib2xfaW5zdGFuY2VzIjozMjksIi4uL3N5bWJvbC9zeW1ib2xfcXVhZHMiOjMzMCwiLi4vdXRpbC9kaWN0aW9uYXJ5X2NvZGVyIjozNTYsIi4uL3V0aWwvdXRpbCI6MzY2fV0sMjk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt0aGlzLm49MCx0aGlzLnRpbWVzPVtdfWUuZXhwb3J0cz1uLG4ucHJvdG90eXBlLnN0b3BwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aW1lcz10aGlzLnRpbWVzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC50aW1lPj0obmV3IERhdGUpLmdldFRpbWUoKX0pLCF0aGlzLnRpbWVzLmxlbmd0aH0sbi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRpbWVzLnB1c2goe2lkOnRoaXMubix0aW1lOnQrKG5ldyBEYXRlKS5nZXRUaW1lKCl9KSx0aGlzLm4rK30sbi5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKHQpe3RoaXMudGltZXM9dGhpcy50aW1lcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQhPT10fSl9fSx7fV0sMzAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5iYXNlPXQsdGhpcy5yZXRpbmE9cy5kZXZpY2VQaXhlbFJhdGlvPjE7dmFyIGU9dGhpcy5yZXRpbmE/IkAyeCI6IiI7YS5nZXRKU09OKGwodCxlLCIuanNvbiIpLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ/dm9pZCB0aGlzLmZpcmUoImVycm9yIix7ZXJyb3I6dH0pOih0aGlzLmRhdGE9ZSx2b2lkKHRoaXMuaW1nJiZ0aGlzLmZpcmUoImxvYWQiKSkpfS5iaW5kKHRoaXMpKSxhLmdldEltYWdlKGwodCxlLCIucG5nIiksZnVuY3Rpb24odCxlKXtpZih0KXJldHVybiB2b2lkIHRoaXMuZmlyZSgiZXJyb3IiLHtlcnJvcjp0fSk7Zm9yKHZhciByPWUuZ2V0RGF0YSgpLG49ZS5kYXRhPW5ldyBVaW50OEFycmF5KHIubGVuZ3RoKSxpPTA7aTxyLmxlbmd0aDtpKz00KXt2YXIgbz1yW2krM10vMjU1O25baSswXT1yW2krMF0qbyxuW2krMV09cltpKzFdKm8sbltpKzJdPXJbaSsyXSpvLG5baSszXT1yW2krM119dGhpcy5pbWc9ZSx0aGlzLmRhdGEmJnRoaXMuZmlyZSgibG9hZCIpfS5iaW5kKHRoaXMpKX1mdW5jdGlvbiBpKCl7fXZhciBvPXQoIi4uL3V0aWwvZXZlbnRlZCIpLGE9dCgiLi4vdXRpbC9hamF4Iikscz10KCIuLi91dGlsL2Jyb3dzZXIiKSxsPXQoIi4uL3V0aWwvbWFwYm94Iikubm9ybWFsaXplU3ByaXRlVVJMO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobyksbi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmFzZX0sbi5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuISghdGhpcy5kYXRhfHwhdGhpcy5pbWcpfSxuLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXtpZihzLmRldmljZVBpeGVsUmF0aW8+MSE9PXRoaXMucmV0aW5hKXt2YXIgdD1uZXcgbih0aGlzLmJhc2UpO3Qub24oImxvYWQiLGZ1bmN0aW9uKCl7dGhpcy5pbWc9dC5pbWcsdGhpcy5kYXRhPXQuZGF0YSx0aGlzLnJldGluYT10LnJldGluYX0uYmluZCh0aGlzKSl9fSxpLnByb3RvdHlwZT17eDowLHk6MCx3aWR0aDowLGhlaWdodDowLHBpeGVsUmF0aW86MSxzZGY6ITF9LG4ucHJvdG90eXBlLmdldFNwcml0ZVBvc2l0aW9uPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLmxvYWRlZCgpKXJldHVybiBuZXcgaTt2YXIgZT10aGlzLmRhdGEmJnRoaXMuZGF0YVt0XTtyZXR1cm4gZSYmdGhpcy5pbWc/ZTpuZXcgaX19LHsiLi4vdXRpbC9hamF4IjozNDksIi4uL3V0aWwvYnJvd3NlciI6MzUwLCIuLi91dGlsL2V2ZW50ZWQiOjM1OCwiLi4vdXRpbC9tYXBib3giOjM2M31dLDMwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjc3Njb2xvcnBhcnNlciIpLnBhcnNlQ1NTQ29sb3IsaT10KCIuLi91dGlsL3V0aWwiKSxvPXQoIi4vc3R5bGVfZnVuY3Rpb24iKSxhPXt9O2UuZXhwb3J0cz1mdW5jdGlvbiBzKHQpe2lmKG8uaXNGdW5jdGlvbkRlZmluaXRpb24odCkpcmV0dXJuIGkuZXh0ZW5kKHt9LHQse3N0b3BzOnQuc3RvcHMubWFwKGZ1bmN0aW9uKHQpe3JldHVyblt0WzBdLHModFsxXSldfSl9KTtpZigic3RyaW5nIj09dHlwZW9mIHQpe2lmKCFhW3RdKXt2YXIgZT1uKHQpO2lmKCFlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2xvciAiK3QpO2FbdF09W2VbMF0vMjU1KmVbM10sZVsxXS8yNTUqZVszXSxlWzJdLzI1NSplWzNdLGVbM11dfXJldHVybiBhW3RdfXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2xvciAiK3QpfX0seyIuLi91dGlsL3V0aWwiOjM2NiwiLi9zdHlsZV9mdW5jdGlvbiI6MzA0LGNzc2NvbG9ycGFyc2VyOjM2OH1dLDMwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt0aGlzLmFuaW1hdGlvbkxvb3A9ZXx8bmV3IG0sdGhpcy5kaXNwYXRjaGVyPW5ldyBkKHJ8fDEsdGhpcyksdGhpcy5zcHJpdGVBdGxhcz1uZXcgbCgxMDI0LDEwMjQpLHRoaXMubGluZUF0bGFzPW5ldyB1KDI1Niw1MTIpLHRoaXMuX2xheWVycz17fSx0aGlzLl9vcmRlcj1bXSx0aGlzLl9ncm91cHM9W10sdGhpcy5zb3VyY2VzPXt9LHRoaXMuem9vbUhpc3Rvcnk9e30sYy5iaW5kQWxsKFsiX2ZvcndhcmRTb3VyY2VFdmVudCIsIl9mb3J3YXJkVGlsZUV2ZW50IiwiX2ZvcndhcmRMYXllckV2ZW50IiwiX3JlZG9QbGFjZW1lbnQiXSx0aGlzKSx0aGlzLl9yZXNldFVwZGF0ZXMoKTt2YXIgbj1mdW5jdGlvbih0LGUpe2lmKHQpcmV0dXJuIHZvaWQgdGhpcy5maXJlKCJlcnJvciIse2Vycm9yOnR9KTtpZighZy5lbWl0RXJyb3JzKHRoaXMsZyhlKSkpe3RoaXMuX2xvYWRlZD0hMCx0aGlzLnN0eWxlc2hlZXQ9ZSx0aGlzLnVwZGF0ZUNsYXNzZXMoKTt2YXIgcj1lLnNvdXJjZXM7Zm9yKHZhciBuIGluIHIpdGhpcy5hZGRTb3VyY2UobixyW25dKTtlLnNwcml0ZSYmKHRoaXMuc3ByaXRlPW5ldyBhKGUuc3ByaXRlKSx0aGlzLnNwcml0ZS5vbigibG9hZCIsdGhpcy5maXJlLmJpbmQodGhpcywiY2hhbmdlIikpKSx0aGlzLmdseXBoU291cmNlPW5ldyBzKGUuZ2x5cGhzKSx0aGlzLl9yZXNvbHZlKCksdGhpcy5maXJlKCJsb2FkIil9fS5iaW5kKHRoaXMpOyJzdHJpbmciPT10eXBlb2YgdD9oLmdldEpTT04oZih0KSxuKTpwLmZyYW1lKG4uYmluZCh0aGlzLG51bGwsdCkpLHRoaXMub24oInNvdXJjZS5sb2FkIixmdW5jdGlvbih0KXt2YXIgZT10LnNvdXJjZTtpZihlJiZlLnZlY3RvckxheWVySWRzKWZvcih2YXIgciBpbiB0aGlzLl9sYXllcnMpe3ZhciBuPXRoaXMuX2xheWVyc1tyXTtuLnNvdXJjZT09PWUuaWQmJnRoaXMuX3ZhbGlkYXRlTGF5ZXIobil9fSl9dmFyIGk9dCgiLi4vdXRpbC9ldmVudGVkIiksbz10KCIuL3N0eWxlX2xheWVyIiksYT10KCIuL2ltYWdlX3Nwcml0ZSIpLHM9dCgiLi4vc3ltYm9sL2dseXBoX3NvdXJjZSIpLGw9dCgiLi4vc3ltYm9sL3Nwcml0ZV9hdGxhcyIpLHU9dCgiLi4vcmVuZGVyL2xpbmVfYXRsYXMiKSxjPXQoIi4uL3V0aWwvdXRpbCIpLGg9dCgiLi4vdXRpbC9hamF4IiksZj10KCIuLi91dGlsL21hcGJveCIpLm5vcm1hbGl6ZVN0eWxlVVJMLHA9dCgiLi4vdXRpbC9icm93c2VyIiksZD10KCIuLi91dGlsL2Rpc3BhdGNoZXIiKSxtPXQoIi4vYW5pbWF0aW9uX2xvb3AiKSxnPXQoIi4vdmFsaWRhdGVfc3R5bGUiKSx2PXQoIi4uL3NvdXJjZS9zb3VyY2UiKSx5PXQoIi4uL3NvdXJjZS9xdWVyeV9mZWF0dXJlcyIpLGI9dCgiLi4vc291cmNlL3NvdXJjZV9jYWNoZSIpLHg9dCgiLi9zdHlsZV9zcGVjIiksXz10KCIuL3N0eWxlX2Z1bmN0aW9uIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9Yy5pbmhlcml0KGkse19sb2FkZWQ6ITEsX3ZhbGlkYXRlTGF5ZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zb3VyY2VzW3Quc291cmNlXTt0LnNvdXJjZUxheWVyJiZlJiZlLnZlY3RvckxheWVySWRzJiYtMT09PWUudmVjdG9yTGF5ZXJJZHMuaW5kZXhPZih0LnNvdXJjZUxheWVyKSYmdGhpcy5maXJlKCJlcnJvciIse2Vycm9yOm5ldyBFcnJvcignU291cmNlIGxheWVyICInK3Quc291cmNlTGF5ZXIrJyIgZG9lcyBub3QgZXhpc3Qgb24gc291cmNlICInK2UuaWQrJyIgYXMgc3BlY2lmaWVkIGJ5IHN0eWxlIGxheWVyICInK3QuaWQrJyInKX0pfSxsb2FkZWQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fbG9hZGVkKXJldHVybiExO2lmKE9iamVjdC5rZXlzKHRoaXMuX3VwZGF0ZXMuc291cmNlcykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZXMpaWYoIXRoaXMuc291cmNlc1t0XS5sb2FkZWQoKSlyZXR1cm4hMTtyZXR1cm4hdGhpcy5zcHJpdGV8fHRoaXMuc3ByaXRlLmxvYWRlZCgpfSxfcmVzb2x2ZTpmdW5jdGlvbigpe3ZhciB0LGU7dGhpcy5fbGF5ZXJzPXt9LHRoaXMuX29yZGVyPXRoaXMuc3R5bGVzaGVldC5sYXllcnMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSk7Zm9yKHZhciByPTA7cjx0aGlzLnN0eWxlc2hlZXQubGF5ZXJzLmxlbmd0aDtyKyspZT10aGlzLnN0eWxlc2hlZXQubGF5ZXJzW3JdLGUucmVmfHwodD1vLmNyZWF0ZShlKSx0aGlzLl9sYXllcnNbdC5pZF09dCx0Lm9uKCJlcnJvciIsdGhpcy5fZm9yd2FyZExheWVyRXZlbnQpKTtmb3IodmFyIG49MDtuPHRoaXMuc3R5bGVzaGVldC5sYXllcnMubGVuZ3RoO24rKylpZihlPXRoaXMuc3R5bGVzaGVldC5sYXllcnNbbl0sZS5yZWYpe3ZhciBpPXRoaXMuZ2V0TGF5ZXIoZS5yZWYpO3Q9by5jcmVhdGUoZSxpKSx0aGlzLl9sYXllcnNbdC5pZF09dCx0Lm9uKCJlcnJvciIsdGhpcy5fZm9yd2FyZExheWVyRXZlbnQpfXRoaXMuX2dyb3VwTGF5ZXJzKCksdGhpcy5fdXBkYXRlV29ya2VyTGF5ZXJzKCl9LF9ncm91cExheWVyczpmdW5jdGlvbigpe3ZhciB0O3RoaXMuX2dyb3Vwcz1bXTtmb3IodmFyIGU9MDtlPHRoaXMuX29yZGVyLmxlbmd0aDsrK2Upe3ZhciByPXRoaXMuX2xheWVyc1t0aGlzLl9vcmRlcltlXV07dCYmci5zb3VyY2U9PT10LnNvdXJjZXx8KHQ9W10sdC5zb3VyY2U9ci5zb3VyY2UsdGhpcy5fZ3JvdXBzLnB1c2godCkpLHQucHVzaChyKX19LF91cGRhdGVXb3JrZXJMYXllcnM6ZnVuY3Rpb24odCl7dGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCh0PyJ1cGRhdGUgbGF5ZXJzIjoic2V0IGxheWVycyIsdGhpcy5fc2VyaWFsaXplTGF5ZXJzKHQpKX0sX3NlcmlhbGl6ZUxheWVyczpmdW5jdGlvbih0KXt0PXR8fHRoaXMuX29yZGVyO2Zvcih2YXIgZT1bXSxyPXtpbmNsdWRlUmVmUHJvcGVydGllczohMH0sbj0wO248dC5sZW5ndGg7bisrKWUucHVzaCh0aGlzLl9sYXllcnNbdFtuXV0uc2VyaWFsaXplKHIpKTtyZXR1cm4gZX0sX2FwcGx5Q2xhc3NlczpmdW5jdGlvbih0LGUpe2lmKHRoaXMuX2xvYWRlZCl7dD10fHxbXSxlPWV8fHt0cmFuc2l0aW9uOiEwfTt2YXIgcj10aGlzLnN0eWxlc2hlZXQudHJhbnNpdGlvbnx8e30sbj10aGlzLl91cGRhdGVzLmFsbFBhaW50UHJvcHM/dGhpcy5fbGF5ZXJzOnRoaXMuX3VwZGF0ZXMucGFpbnRQcm9wcztmb3IodmFyIGkgaW4gbil7dmFyIG89dGhpcy5fbGF5ZXJzW2ldLGE9dGhpcy5fdXBkYXRlcy5wYWludFByb3BzW2ldO2lmKHRoaXMuX3VwZGF0ZXMuYWxsUGFpbnRQcm9wc3x8YS5hbGwpby51cGRhdGVQYWludFRyYW5zaXRpb25zKHQsZSxyLHRoaXMuYW5pbWF0aW9uTG9vcCk7ZWxzZSBmb3IodmFyIHMgaW4gYSl0aGlzLl9sYXllcnNbaV0udXBkYXRlUGFpbnRUcmFuc2l0aW9uKHMsdCxlLHIsdGhpcy5hbmltYXRpb25Mb29wKX19fSxfcmVjYWxjdWxhdGU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuc291cmNlcyl0aGlzLnNvdXJjZXNbZV0udXNlZD0hMTt0aGlzLl91cGRhdGVab29tSGlzdG9yeSh0KSx0aGlzLnJhc3RlckZhZGVEdXJhdGlvbj0zMDA7Zm9yKHZhciByIGluIHRoaXMuX2xheWVycyl7dmFyIG49dGhpcy5fbGF5ZXJzW3JdO24ucmVjYWxjdWxhdGUodCx0aGlzLnpvb21IaXN0b3J5KSwhbi5pc0hpZGRlbih0KSYmbi5zb3VyY2UmJih0aGlzLnNvdXJjZXNbbi5zb3VyY2VdLnVzZWQ9ITApfXZhciBpPTMwMDtNYXRoLmZsb29yKHRoaXMueikhPT1NYXRoLmZsb29yKHQpJiZ0aGlzLmFuaW1hdGlvbkxvb3Auc2V0KGkpLHRoaXMuej10LHRoaXMuZmlyZSgiem9vbSIpfSxfdXBkYXRlWm9vbUhpc3Rvcnk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy56b29tSGlzdG9yeTt2b2lkIDA9PT1lLmxhc3RJbnRlZ2VyWm9vbSYmKGUubGFzdEludGVnZXJab29tPU1hdGguZmxvb3IodCksZS5sYXN0SW50ZWdlclpvb21UaW1lPTAsZS5sYXN0Wm9vbT10KSxNYXRoLmZsb29yKGUubGFzdFpvb20pPE1hdGguZmxvb3IodCk/KGUubGFzdEludGVnZXJab29tPU1hdGguZmxvb3IodCksZS5sYXN0SW50ZWdlclpvb21UaW1lPURhdGUubm93KCkpOk1hdGguZmxvb3IoZS5sYXN0Wm9vbSk+TWF0aC5mbG9vcih0KSYmKGUubGFzdEludGVnZXJab29tPU1hdGguZmxvb3IodCsxKSxlLmxhc3RJbnRlZ2VyWm9vbVRpbWU9RGF0ZS5ub3coKSksZS5sYXN0Wm9vbT10fSxfY2hlY2tMb2FkZWQ6ZnVuY3Rpb24oKXtpZighdGhpcy5fbG9hZGVkKXRocm93IG5ldyBFcnJvcigiU3R5bGUgaXMgbm90IGRvbmUgbG9hZGluZyIpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy5fdXBkYXRlcy5jaGFuZ2VkKXJldHVybiB0aGlzO2lmKHRoaXMuX3VwZGF0ZXMuYWxsTGF5ZXJzKXRoaXMuX2dyb3VwTGF5ZXJzKCksdGhpcy5fdXBkYXRlV29ya2VyTGF5ZXJzKCk7ZWxzZXt2YXIgcj1PYmplY3Qua2V5cyh0aGlzLl91cGRhdGVzLmxheWVycyk7ci5sZW5ndGgmJnRoaXMuX3VwZGF0ZVdvcmtlckxheWVycyhyKX12YXIgbixpPU9iamVjdC5rZXlzKHRoaXMuX3VwZGF0ZXMuc291cmNlcyk7Zm9yKG49MDtuPGkubGVuZ3RoO24rKyl0aGlzLl9yZWxvYWRTb3VyY2UoaVtuXSk7Zm9yKG49MDtuPHRoaXMuX3VwZGF0ZXMuZXZlbnRzLmxlbmd0aDtuKyspe3ZhciBvPXRoaXMuX3VwZGF0ZXMuZXZlbnRzW25dO3RoaXMuZmlyZShvWzBdLG9bMV0pfXJldHVybiB0aGlzLl9hcHBseUNsYXNzZXModCxlKSx0aGlzLl91cGRhdGVzLmNoYW5nZWQmJnRoaXMuZmlyZSgiY2hhbmdlIiksdGhpcy5fcmVzZXRVcGRhdGVzKCksdGhpc30sX3Jlc2V0VXBkYXRlczpmdW5jdGlvbigpe3RoaXMuX3VwZGF0ZXM9e2V2ZW50czpbXSxsYXllcnM6e30sc291cmNlczp7fSxwYWludFByb3BzOnt9fX0sYWRkU291cmNlOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5fY2hlY2tMb2FkZWQoKSx2b2lkIDAhPT10aGlzLnNvdXJjZXNbdF0pdGhyb3cgbmV3IEVycm9yKCJUaGVyZSBpcyBhbHJlYWR5IGEgc291cmNlIHdpdGggdGhpcyBJRCIpO2lmKCFlLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJUaGUgdHlwZSBwcm9wZXJ0eSBtdXN0IGJlIGRlZmluZWQsIGJ1dCB0aGUgb25seSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2VyZSBnaXZlbjogIitPYmplY3Qua2V5cyhlKSsiLiIpO3ZhciByPVsidmVjdG9yIiwicmFzdGVyIiwiZ2VvanNvbiIsInZpZGVvIiwiaW1hZ2UiXSxuPXIuaW5kZXhPZihlLnR5cGUpPj0wO3JldHVybiBuJiZ0aGlzLl9oYW5kbGVFcnJvcnMoZy5zb3VyY2UsInNvdXJjZXMuIit0LGUpP3RoaXM6KGU9bmV3IGIodCxlLHRoaXMuZGlzcGF0Y2hlciksdGhpcy5zb3VyY2VzW3RdPWUsZS5zdHlsZT10aGlzLGUub24oImxvYWQiLHRoaXMuX2ZvcndhcmRTb3VyY2VFdmVudCkub24oImVycm9yIix0aGlzLl9mb3J3YXJkU291cmNlRXZlbnQpLm9uKCJjaGFuZ2UiLHRoaXMuX2ZvcndhcmRTb3VyY2VFdmVudCkub24oInRpbGUuYWRkIix0aGlzLl9mb3J3YXJkVGlsZUV2ZW50KS5vbigidGlsZS5sb2FkIix0aGlzLl9mb3J3YXJkVGlsZUV2ZW50KS5vbigidGlsZS5lcnJvciIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCkub24oInRpbGUucmVtb3ZlIix0aGlzLl9mb3J3YXJkVGlsZUV2ZW50KS5vbigidGlsZS5zdGF0cyIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCksdGhpcy5fdXBkYXRlcy5ldmVudHMucHVzaChbInNvdXJjZS5hZGQiLHtzb3VyY2U6ZX1dKSx0aGlzLl91cGRhdGVzLmNoYW5nZWQ9ITAsdGhpcyl9LHJlbW92ZVNvdXJjZTpmdW5jdGlvbih0KXtpZih0aGlzLl9jaGVja0xvYWRlZCgpLHZvaWQgMD09PXRoaXMuc291cmNlc1t0XSl0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHNvdXJjZSB3aXRoIHRoaXMgSUQiKTt2YXIgZT10aGlzLnNvdXJjZXNbdF07cmV0dXJuIGRlbGV0ZSB0aGlzLnNvdXJjZXNbdF0sZGVsZXRlIHRoaXMuX3VwZGF0ZXMuc291cmNlc1t0XSxlLm9mZigibG9hZCIsdGhpcy5fZm9yd2FyZFNvdXJjZUV2ZW50KS5vZmYoImVycm9yIix0aGlzLl9mb3J3YXJkU291cmNlRXZlbnQpLm9mZigiY2hhbmdlIix0aGlzLl9mb3J3YXJkU291cmNlRXZlbnQpLm9mZigidGlsZS5hZGQiLHRoaXMuX2ZvcndhcmRUaWxlRXZlbnQpLm9mZigidGlsZS5sb2FkIix0aGlzLl9mb3J3YXJkVGlsZUV2ZW50KS5vZmYoInRpbGUuZXJyb3IiLHRoaXMuX2ZvcndhcmRUaWxlRXZlbnQpLm9mZigidGlsZS5yZW1vdmUiLHRoaXMuX2ZvcndhcmRUaWxlRXZlbnQpLm9mZigidGlsZS5zdGF0cyIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCksdGhpcy5fdXBkYXRlcy5ldmVudHMucHVzaChbInNvdXJjZS5yZW1vdmUiLHtzb3VyY2U6ZX1dKSx0aGlzLl91cGRhdGVzLmNoYW5nZWQ9ITAsdGhpc30sZ2V0U291cmNlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNvdXJjZXNbdF0mJnRoaXMuc291cmNlc1t0XS5nZXRTb3VyY2UoKX0sYWRkTGF5ZXI6ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9jaGVja0xvYWRlZCgpLCEodCBpbnN0YW5jZW9mIG8pKXtpZih0aGlzLl9oYW5kbGVFcnJvcnMoZy5sYXllciwibGF5ZXJzLiIrdC5pZCx0LCExLHthcnJheUluZGV4Oi0xfSkpcmV0dXJuIHRoaXM7dmFyIHI9dC5yZWYmJnRoaXMuZ2V0TGF5ZXIodC5yZWYpO3Q9by5jcmVhdGUodCxyKX1yZXR1cm4gdGhpcy5fdmFsaWRhdGVMYXllcih0KSx0Lm9uKCJlcnJvciIsdGhpcy5fZm9yd2FyZExheWVyRXZlbnQpLHRoaXMuX2xheWVyc1t0LmlkXT10LHRoaXMuX29yZGVyLnNwbGljZShlP3RoaXMuX29yZGVyLmluZGV4T2YoZSk6MS8wLDAsdC5pZCksdGhpcy5fdXBkYXRlcy5hbGxMYXllcnM9ITAsdC5zb3VyY2UmJih0aGlzLl91cGRhdGVzLnNvdXJjZXNbdC5zb3VyY2VdPSEwKSx0aGlzLl91cGRhdGVzLmV2ZW50cy5wdXNoKFsibGF5ZXIuYWRkIix7bGF5ZXI6dH1dKSx0aGlzLnVwZGF0ZUNsYXNzZXModC5pZCl9LHJlbW92ZUxheWVyOmZ1bmN0aW9uKHQpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIGU9dGhpcy5fbGF5ZXJzW3RdO2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IEVycm9yKCJUaGVyZSBpcyBubyBsYXllciB3aXRoIHRoaXMgSUQiKTtmb3IodmFyIHIgaW4gdGhpcy5fbGF5ZXJzKXRoaXMuX2xheWVyc1tyXS5yZWY9PT10JiZ0aGlzLnJlbW92ZUxheWVyKHIpO3JldHVybiBlLm9mZigiZXJyb3IiLHRoaXMuX2ZvcndhcmRMYXllckV2ZW50KSxkZWxldGUgdGhpcy5fbGF5ZXJzW3RdLGRlbGV0ZSB0aGlzLl91cGRhdGVzLmxheWVyc1t0XSxkZWxldGUgdGhpcy5fdXBkYXRlcy5wYWludFByb3BzW3RdLHRoaXMuX29yZGVyLnNwbGljZSh0aGlzLl9vcmRlci5pbmRleE9mKHQpLDEpLHRoaXMuX3VwZGF0ZXMuYWxsTGF5ZXJzPSEwLHRoaXMuX3VwZGF0ZXMuZXZlbnRzLnB1c2goWyJsYXllci5yZW1vdmUiLHtsYXllcjplfV0pLHRoaXMuX3VwZGF0ZXMuY2hhbmdlZD0hMCx0aGlzfSxnZXRMYXllcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGF5ZXJzW3RdfSxnZXRSZWZlcmVudExheWVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0TGF5ZXIodCk7cmV0dXJuIGUucmVmJiYoZT10aGlzLmdldExheWVyKGUucmVmKSksZX0sc2V0TGF5ZXJab29tUmFuZ2U6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIG49dGhpcy5nZXRSZWZlcmVudExheWVyKHQpO3JldHVybiBuLm1pbnpvb209PT1lJiZuLm1heHpvb209PT1yP3RoaXM6KG51bGwhPWUmJihuLm1pbnpvb209ZSksbnVsbCE9ciYmKG4ubWF4em9vbT1yKSx0aGlzLl91cGRhdGVMYXllcihuKSl9LHNldEZpbHRlcjpmdW5jdGlvbih0LGUpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIHI9dGhpcy5nZXRSZWZlcmVudExheWVyKHQpO3JldHVybiBudWxsIT09ZSYmdGhpcy5faGFuZGxlRXJyb3JzKGcuZmlsdGVyLCJsYXllcnMuIityLmlkKyIuZmlsdGVyIixlKT90aGlzOmMuZGVlcEVxdWFsKHIuZmlsdGVyLGUpP3RoaXM6KHIuZmlsdGVyPWMuY2xvbmUoZSksdGhpcy5fdXBkYXRlTGF5ZXIocikpfSxnZXRGaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZ2V0UmVmZXJlbnRMYXllcih0KS5maWx0ZXJ9LHNldExheW91dFByb3BlcnR5OmZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBuPXRoaXMuZ2V0UmVmZXJlbnRMYXllcih0KTtyZXR1cm4gYy5kZWVwRXF1YWwobi5nZXRMYXlvdXRQcm9wZXJ0eShlKSxyKT90aGlzOihuLnNldExheW91dFByb3BlcnR5KGUsciksdGhpcy5fdXBkYXRlTGF5ZXIobikpfSxnZXRMYXlvdXRQcm9wZXJ0eTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmdldFJlZmVyZW50TGF5ZXIodCkuZ2V0TGF5b3V0UHJvcGVydHkoZSl9LHNldFBhaW50UHJvcGVydHk6ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgaT10aGlzLmdldExheWVyKHQpO2lmKGMuZGVlcEVxdWFsKGkuZ2V0UGFpbnRQcm9wZXJ0eShlLG4pLHIpKXJldHVybiB0aGlzO3ZhciBvPWkuaXNQYWludFZhbHVlRmVhdHVyZUNvbnN0YW50KGUpO2kuc2V0UGFpbnRQcm9wZXJ0eShlLHIsbik7dmFyIGE9IShyJiZfLmlzRnVuY3Rpb25EZWZpbml0aW9uKHIpJiYiJHpvb20iIT09ci5wcm9wZXJ0eSYmdm9pZCAwIT09ci5wcm9wZXJ0eSk7cmV0dXJuIGEmJm98fCh0aGlzLl91cGRhdGVzLmxheWVyc1t0XT0hMCxpLnNvdXJjZSYmKHRoaXMuX3VwZGF0ZXMuc291cmNlc1tpLnNvdXJjZV09ITApKSx0aGlzLnVwZGF0ZUNsYXNzZXModCxlKX0sZ2V0UGFpbnRQcm9wZXJ0eTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuZ2V0TGF5ZXIodCkuZ2V0UGFpbnRQcm9wZXJ0eShlLHIpfSx1cGRhdGVDbGFzc2VzOmZ1bmN0aW9uKHQsZSl7aWYodGhpcy5fdXBkYXRlcy5jaGFuZ2VkPSEwLHQpe3ZhciByPXRoaXMuX3VwZGF0ZXMucGFpbnRQcm9wcztyW3RdfHwoclt0XT17fSksclt0XVtlfHwiYWxsIl09ITB9ZWxzZSB0aGlzLl91cGRhdGVzLmFsbFBhaW50UHJvcHM9ITA7cmV0dXJuIHRoaXN9LHNlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBjLmZpbHRlck9iamVjdCh7dmVyc2lvbjp0aGlzLnN0eWxlc2hlZXQudmVyc2lvbixuYW1lOnRoaXMuc3R5bGVzaGVldC5uYW1lLG1ldGFkYXRhOnRoaXMuc3R5bGVzaGVldC5tZXRhZGF0YSxjZW50ZXI6dGhpcy5zdHlsZXNoZWV0LmNlbnRlcix6b29tOnRoaXMuc3R5bGVzaGVldC56b29tLGJlYXJpbmc6dGhpcy5zdHlsZXNoZWV0LmJlYXJpbmcscGl0Y2g6dGhpcy5zdHlsZXNoZWV0LnBpdGNoLHNwcml0ZTp0aGlzLnN0eWxlc2hlZXQuc3ByaXRlLGdseXBoczp0aGlzLnN0eWxlc2hlZXQuZ2x5cGhzLHRyYW5zaXRpb246dGhpcy5zdHlsZXNoZWV0LnRyYW5zaXRpb24sc291cmNlczpjLm1hcE9iamVjdCh0aGlzLnNvdXJjZXMsZnVuY3Rpb24odCl7cmV0dXJuIHQuc2VyaWFsaXplKCl9KSxsYXllcnM6dGhpcy5fb3JkZXIubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9sYXllcnNbdF0uc2VyaWFsaXplKCl9LHRoaXMpfSxmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dH0pfSxfdXBkYXRlTGF5ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VwZGF0ZXMubGF5ZXJzW3QuaWRdPSEwLHQuc291cmNlJiYodGhpcy5fdXBkYXRlcy5zb3VyY2VzW3Quc291cmNlXT0hMCksdGhpcy5fdXBkYXRlcy5jaGFuZ2VkPSEwLHRoaXN9LF9mbGF0dGVuUmVuZGVyZWRGZWF0dXJlczpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj10aGlzLl9vcmRlci5sZW5ndGgtMTtyPj0wO3ItLSlmb3IodmFyIG49dGhpcy5fb3JkZXJbcl0saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldW25dO2lmKG8pZm9yKHZhciBhPTA7YTxvLmxlbmd0aDthKyspZS5wdXNoKG9bYV0pfXJldHVybiBlfSxxdWVyeVJlbmRlcmVkRmVhdHVyZXM6ZnVuY3Rpb24odCxlLHIsbil7ZSYmZS5maWx0ZXImJnRoaXMuX2hhbmRsZUVycm9ycyhnLmZpbHRlciwicXVlcnlSZW5kZXJlZEZlYXR1cmVzLmZpbHRlciIsZS5maWx0ZXIsITApO3ZhciBpPXt9O2lmKGUmJmUubGF5ZXJzKWZvcih2YXIgbz0wO288ZS5sYXllcnMubGVuZ3RoO28rKyl7dmFyIGE9ZS5sYXllcnNbb107aVt0aGlzLl9sYXllcnNbYV0uc291cmNlXT0hMH12YXIgcz1bXTtmb3IodmFyIGwgaW4gdGhpcy5zb3VyY2VzKWlmKCFlLmxheWVyc3x8aVtsXSl7dmFyIHU9dGhpcy5zb3VyY2VzW2xdLGM9eS5yZW5kZXJlZCh1LHRoaXMuX2xheWVycyx0LGUscixuKTtzLnB1c2goYyl9cmV0dXJuIHRoaXMuX2ZsYXR0ZW5SZW5kZXJlZEZlYXR1cmVzKHMpfSxxdWVyeVNvdXJjZUZlYXR1cmVzOmZ1bmN0aW9uKHQsZSl7ZSYmZS5maWx0ZXImJnRoaXMuX2hhbmRsZUVycm9ycyhnLmZpbHRlciwicXVlcnlTb3VyY2VGZWF0dXJlcy5maWx0ZXIiLGUuZmlsdGVyLCEwKTt2YXIgcj10aGlzLnNvdXJjZXNbdF07cmV0dXJuIHI/eS5zb3VyY2UocixlKTpbXX0sYWRkU291cmNlVHlwZTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHYuZ2V0VHlwZSh0KT9yKG5ldyBFcnJvcignQSBzb3VyY2UgdHlwZSBjYWxsZWQgIicrdCsnIiBhbHJlYWR5IGV4aXN0cy4nKSk6KHYuc2V0VHlwZSh0LGUpLGUud29ya2VyU291cmNlVVJMP3ZvaWQgdGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCgibG9hZCB3b3JrZXIgc291cmNlIix7bmFtZTp0LHVybDplLndvcmtlclNvdXJjZVVSTH0scik6cihudWxsLG51bGwpKX0sX2hhbmRsZUVycm9yczpmdW5jdGlvbih0LGUscixuLGkpe3ZhciBvPW4/Zy50aHJvd0Vycm9yczpnLmVtaXRFcnJvcnMsYT10LmNhbGwoZyxjLmV4dGVuZCh7a2V5OmUsc3R5bGU6dGhpcy5zZXJpYWxpemUoKSx2YWx1ZTpyLHN0eWxlU3BlYzp4fSxpKSk7cmV0dXJuIG8uY2FsbChnLHRoaXMsYSl9LF9yZW1vdmU6ZnVuY3Rpb24oKXt0aGlzLmRpc3BhdGNoZXIucmVtb3ZlKCl9LF9yZWxvYWRTb3VyY2U6ZnVuY3Rpb24odCl7dGhpcy5zb3VyY2VzW3RdLnJlbG9hZCgpfSxfdXBkYXRlU291cmNlczpmdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5zb3VyY2VzKXRoaXMuc291cmNlc1tlXS51cGRhdGUodCl9LF9yZWRvUGxhY2VtZW50OmZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuc291cmNlcyl0aGlzLnNvdXJjZXNbdF0ucmVkb1BsYWNlbWVudCYmdGhpcy5zb3VyY2VzW3RdLnJlZG9QbGFjZW1lbnQoKX0sX2ZvcndhcmRTb3VyY2VFdmVudDpmdW5jdGlvbih0KXt0aGlzLmZpcmUoInNvdXJjZS4iK3QudHlwZSxjLmV4dGVuZCh7c291cmNlOnQudGFyZ2V0LmdldFNvdXJjZSgpfSx0KSl9LF9mb3J3YXJkVGlsZUV2ZW50OmZ1bmN0aW9uKHQpe3RoaXMuZmlyZSh0LnR5cGUsYy5leHRlbmQoe3NvdXJjZTp0LnRhcmdldH0sdCkpfSxfZm9yd2FyZExheWVyRXZlbnQ6ZnVuY3Rpb24odCl7dGhpcy5maXJlKCJsYXllci4iK3QudHlwZSxjLmV4dGVuZCh7bGF5ZXI6e2lkOnQudGFyZ2V0LmlkfX0sdCkpfSwiZ2V0IHNwcml0ZSBqc29uIjpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc3ByaXRlO3IubG9hZGVkKCk/ZShudWxsLHtzcHJpdGU6ci5kYXRhLHJldGluYTpyLnJldGluYX0pOnIub24oImxvYWQiLGZ1bmN0aW9uKCl7ZShudWxsLHtzcHJpdGU6ci5kYXRhLHJldGluYTpyLnJldGluYX0pfSl9LCJnZXQgaWNvbnMiOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5zcHJpdGUsbj10aGlzLnNwcml0ZUF0bGFzO3IubG9hZGVkKCk/KG4uc2V0U3ByaXRlKHIpLG4uYWRkSWNvbnModC5pY29ucyxlKSk6ci5vbigibG9hZCIsZnVuY3Rpb24oKXtuLnNldFNwcml0ZShyKSxuLmFkZEljb25zKHQuaWNvbnMsZSl9KX0sImdldCBnbHlwaHMiOmZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LHIsbil7dCYmY29uc29sZS5lcnJvcih0KSxvW25dPXIsaS0tLDA9PT1pJiZlKG51bGwsbyl9dmFyIG49dC5zdGFja3MsaT1PYmplY3Qua2V5cyhuKS5sZW5ndGgsbz17fTtmb3IodmFyIGEgaW4gbil0aGlzLmdseXBoU291cmNlLmdldFNpbXBsZUdseXBocyhhLG5bYV0sdC51aWQscil9fSl9LHsiLi4vcmVuZGVyL2xpbmVfYXRsYXMiOjI3OCwiLi4vc291cmNlL3F1ZXJ5X2ZlYXR1cmVzIjoyODgsIi4uL3NvdXJjZS9zb3VyY2UiOjI5MCwiLi4vc291cmNlL3NvdXJjZV9jYWNoZSI6MjkxLCIuLi9zeW1ib2wvZ2x5cGhfc291cmNlIjozMjMsIi4uL3N5bWJvbC9zcHJpdGVfYXRsYXMiOjMyOCwiLi4vdXRpbC9hamF4IjozNDksIi4uL3V0aWwvYnJvd3NlciI6MzUwLCIuLi91dGlsL2Rpc3BhdGNoZXIiOjM1NywiLi4vdXRpbC9ldmVudGVkIjozNTgsIi4uL3V0aWwvbWFwYm94IjozNjMsIi4uL3V0aWwvdXRpbCI6MzY2LCIuL2FuaW1hdGlvbl9sb29wIjoyOTksIi4vaW1hZ2Vfc3ByaXRlIjozMDAsIi4vc3R5bGVfZnVuY3Rpb24iOjMwNCwiLi9zdHlsZV9sYXllciI6MzA1LCIuL3N0eWxlX3NwZWMiOjMxMiwiLi92YWxpZGF0ZV9zdHlsZSI6MzE0fV0sMzAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLnZhbHVlPXMuY2xvbmUoZSksdGhpcy5pc0Z1bmN0aW9uPW8uaXNGdW5jdGlvbkRlZmluaXRpb24oZSksdGhpcy5qc29uPUpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpO3ZhciByPSJjb2xvciI9PT10LnR5cGUmJnRoaXMudmFsdWU/YSh0aGlzLnZhbHVlKTplO2lmKHRoaXMuY2FsY3VsYXRlPW9bdC5mdW5jdGlvbnx8InBpZWNld2lzZS1jb25zdGFudCJdKHIpLHRoaXMuaXNGZWF0dXJlQ29uc3RhbnQ9dGhpcy5jYWxjdWxhdGUuaXNGZWF0dXJlQ29uc3RhbnQsdGhpcy5pc1pvb21Db25zdGFudD10aGlzLmNhbGN1bGF0ZS5pc1pvb21Db25zdGFudCwicGllY2V3aXNlLWNvbnN0YW50Ij09PXQuZnVuY3Rpb24mJnQudHJhbnNpdGlvbiYmKHRoaXMuY2FsY3VsYXRlPWkodGhpcy5jYWxjdWxhdGUpKSwhdGhpcy5pc0ZlYXR1cmVDb25zdGFudCYmIXRoaXMuaXNab29tQ29uc3RhbnQpe3RoaXMuc3RvcFpvb21MZXZlbHM9W107Zm9yKHZhciBuPVtdLGw9dGhpcy52YWx1ZS5zdG9wcyx1PTA7dTx0aGlzLnZhbHVlLnN0b3BzLmxlbmd0aDt1Kyspe3ZhciBjPWxbdV1bMF0uem9vbTt0aGlzLnN0b3Bab29tTGV2ZWxzLmluZGV4T2YoYyk8MCYmKHRoaXMuc3RvcFpvb21MZXZlbHMucHVzaChjKSxuLnB1c2goW2Msbi5sZW5ndGhdKSl9dGhpcy5jYWxjdWxhdGVJbnRlcnBvbGF0aW9uVD1vLmludGVycG9sYXRlZCh7c3RvcHM6bixiYXNlOmUuYmFzZX0pfX1mdW5jdGlvbiBpKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBuLGksbyxhPWUuem9vbSxzPWUuem9vbUhpc3RvcnksbD1lLmR1cmF0aW9uLHU9YSUxLGM9TWF0aC5taW4oKERhdGUubm93KCktcy5sYXN0SW50ZWdlclpvb21UaW1lKS9sLDEpLGg9MSxmPTE7cmV0dXJuIGE+cy5sYXN0SW50ZWdlclpvb20/KG49dSsoMS11KSpjLGgqPTIsaT10KHt6b29tOmEtMX0sciksbz10KHt6b29tOmF9LHIpKToobj0xLSgxLWMpKnUsbz10KHt6b29tOmF9LHIpLGk9dCh7em9vbTphKzF9LHIpLGgvPTIpLHZvaWQgMD09PWl8fHZvaWQgMD09PW8/dm9pZCAwOntmcm9tOmksZnJvbVNjYWxlOmgsdG86byx0b1NjYWxlOmYsdDpufX19dmFyIG89dCgiLi9zdHlsZV9mdW5jdGlvbiIpLGE9dCgiLi9wYXJzZV9jb2xvciIpLHM9dCgiLi4vdXRpbC91dGlsIik7ZS5leHBvcnRzPW59LHsiLi4vdXRpbC91dGlsIjozNjYsIi4vcGFyc2VfY29sb3IiOjMwMSwiLi9zdHlsZV9mdW5jdGlvbiI6MzA0fV0sMzA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm1hcGJveC1nbC1mdW5jdGlvbiIpO3IuaW50ZXJwb2xhdGVkPWZ1bmN0aW9uKHQpe3ZhciBlPW4uaW50ZXJwb2xhdGVkKHQpLHI9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZSh0JiZ0Lnpvb20scnx8e30pfTtyZXR1cm4gci5pc0ZlYXR1cmVDb25zdGFudD1lLmlzRmVhdHVyZUNvbnN0YW50LHIuaXNab29tQ29uc3RhbnQ9ZS5pc1pvb21Db25zdGFudCxyfSxyWyJwaWVjZXdpc2UtY29uc3RhbnQiXT1mdW5jdGlvbih0KXt2YXIgZT1uWyJwaWVjZXdpc2UtY29uc3RhbnQiXSh0KSxyPWZ1bmN0aW9uKHQscil7cmV0dXJuIGUodCYmdC56b29tLHJ8fHt9KX07cmV0dXJuIHIuaXNGZWF0dXJlQ29uc3RhbnQ9ZS5pc0ZlYXR1cmVDb25zdGFudCxyLmlzWm9vbUNvbnN0YW50PWUuaXNab29tQ29uc3RhbnQscn0sci5pc0Z1bmN0aW9uRGVmaW5pdGlvbj1uLmlzRnVuY3Rpb25EZWZpbml0aW9ufSx7Im1hcGJveC1nbC1mdW5jdGlvbiI6MzkzfV0sMzA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLnNldCh0LGUpfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQudmFsdWV9dmFyIG89dCgiLi4vdXRpbC91dGlsIiksYT10KCIuL3N0eWxlX3RyYW5zaXRpb24iKSxzPXQoIi4vc3R5bGVfZGVjbGFyYXRpb24iKSxsPXQoIi4vc3R5bGVfc3BlYyIpLHU9dCgiLi92YWxpZGF0ZV9zdHlsZSIpLGM9dCgiLi9wYXJzZV9jb2xvciIpLGg9dCgiLi4vdXRpbC9ldmVudGVkIik7ZS5leHBvcnRzPW47dmFyIGY9Ii10cmFuc2l0aW9uIjtuLmNyZWF0ZT1mdW5jdGlvbihlLHIpe3ZhciBuPXtiYWNrZ3JvdW5kOnQoIi4vc3R5bGVfbGF5ZXIvYmFja2dyb3VuZF9zdHlsZV9sYXllciIpLGNpcmNsZTp0KCIuL3N0eWxlX2xheWVyL2NpcmNsZV9zdHlsZV9sYXllciIpLGZpbGw6dCgiLi9zdHlsZV9sYXllci9maWxsX3N0eWxlX2xheWVyIiksbGluZTp0KCIuL3N0eWxlX2xheWVyL2xpbmVfc3R5bGVfbGF5ZXIiKSxyYXN0ZXI6dCgiLi9zdHlsZV9sYXllci9yYXN0ZXJfc3R5bGVfbGF5ZXIiKSxzeW1ib2w6dCgiLi9zdHlsZV9sYXllci9zeW1ib2xfc3R5bGVfbGF5ZXIiKX07cmV0dXJuIG5ldyBuWyhyfHxlKS50eXBlXShlLHIpfSxuLnByb3RvdHlwZT1vLmluaGVyaXQoaCx7c2V0OmZ1bmN0aW9uKHQsZSl7dGhpcy5pZD10LmlkLHRoaXMucmVmPXQucmVmLHRoaXMubWV0YWRhdGE9dC5tZXRhZGF0YSx0aGlzLnR5cGU9KGV8fHQpLnR5cGUsdGhpcy5zb3VyY2U9KGV8fHQpLnNvdXJjZSx0aGlzLnNvdXJjZUxheWVyPShlfHx0KVsic291cmNlLWxheWVyIl0sdGhpcy5taW56b29tPShlfHx0KS5taW56b29tLHRoaXMubWF4em9vbT0oZXx8dCkubWF4em9vbSx0aGlzLmZpbHRlcj0oZXx8dCkuZmlsdGVyLHRoaXMucGFpbnQ9e30sdGhpcy5sYXlvdXQ9e30sdGhpcy5fcGFpbnRTcGVjaWZpY2F0aW9ucz1sWyJwYWludF8iK3RoaXMudHlwZV0sdGhpcy5fbGF5b3V0U3BlY2lmaWNhdGlvbnM9bFsibGF5b3V0XyIrdGhpcy50eXBlXSx0aGlzLl9wYWludFRyYW5zaXRpb25zPXt9LHRoaXMuX3BhaW50VHJhbnNpdGlvbk9wdGlvbnM9e30sdGhpcy5fcGFpbnREZWNsYXJhdGlvbnM9e30sdGhpcy5fbGF5b3V0RGVjbGFyYXRpb25zPXt9LHRoaXMuX2xheW91dEZ1bmN0aW9ucz17fTt2YXIgcixuO2Zvcih2YXIgaSBpbiB0KXt2YXIgbz1pLm1hdGNoKC9ecGFpbnQoPzpcLiguKikpPyQvKTtpZihvKXt2YXIgYT1vWzFdfHwiIjtmb3IociBpbiB0W2ldKXRoaXMuc2V0UGFpbnRQcm9wZXJ0eShyLHRbaV1bcl0sYSl9fWlmKHRoaXMucmVmKXRoaXMuX2xheW91dERlY2xhcmF0aW9ucz1lLl9sYXlvdXREZWNsYXJhdGlvbnM7ZWxzZSBmb3IobiBpbiB0LmxheW91dCl0aGlzLnNldExheW91dFByb3BlcnR5KG4sdC5sYXlvdXRbbl0pO2ZvcihyIGluIHRoaXMuX3BhaW50U3BlY2lmaWNhdGlvbnMpdGhpcy5wYWludFtyXT10aGlzLmdldFBhaW50VmFsdWUocik7Zm9yKG4gaW4gdGhpcy5fbGF5b3V0U3BlY2lmaWNhdGlvbnMpdGhpcy5fdXBkYXRlTGF5b3V0VmFsdWUobil9LHNldExheW91dFByb3BlcnR5OmZ1bmN0aW9uKHQsZSl7aWYobnVsbD09ZSlkZWxldGUgdGhpcy5fbGF5b3V0RGVjbGFyYXRpb25zW3RdO2Vsc2V7dmFyIHI9ImxheWVycy4iK3RoaXMuaWQrIi5sYXlvdXQuIit0O2lmKHRoaXMuX2hhbmRsZUVycm9ycyh1LmxheW91dFByb3BlcnR5LHIsdCxlKSlyZXR1cm47dGhpcy5fbGF5b3V0RGVjbGFyYXRpb25zW3RdPW5ldyBzKHRoaXMuX2xheW91dFNwZWNpZmljYXRpb25zW3RdLGUpfXRoaXMuX3VwZGF0ZUxheW91dFZhbHVlKHQpfSxnZXRMYXlvdXRQcm9wZXJ0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGF5b3V0RGVjbGFyYXRpb25zW3RdJiZ0aGlzLl9sYXlvdXREZWNsYXJhdGlvbnNbdF0udmFsdWV9LGdldExheW91dFZhbHVlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl9sYXlvdXRTcGVjaWZpY2F0aW9uc1t0XSxpPXRoaXMuX2xheW91dERlY2xhcmF0aW9uc1t0XTtyZXR1cm4gaT9pLmNhbGN1bGF0ZShlLHIpOm4uZGVmYXVsdH0sc2V0UGFpbnRQcm9wZXJ0eTpmdW5jdGlvbih0LGUscil7dmFyIG49ImxheWVycy4iK3RoaXMuaWQrKHI/J1sicGFpbnQuJytyKyciXS4nOiIucGFpbnQuIikrdDtpZihvLmVuZHNXaXRoKHQsZikpaWYodGhpcy5fcGFpbnRUcmFuc2l0aW9uT3B0aW9uc1tyfHwiIl18fCh0aGlzLl9wYWludFRyYW5zaXRpb25PcHRpb25zW3J8fCIiXT17fSksbnVsbD09PWV8fHZvaWQgMD09PWUpZGVsZXRlIHRoaXMuX3BhaW50VHJhbnNpdGlvbk9wdGlvbnNbcnx8IiJdW3RdO2Vsc2V7aWYodGhpcy5faGFuZGxlRXJyb3JzKHUucGFpbnRQcm9wZXJ0eSxuLHQsZSkpcmV0dXJuO3RoaXMuX3BhaW50VHJhbnNpdGlvbk9wdGlvbnNbcnx8IiJdW3RdPWV9ZWxzZSBpZih0aGlzLl9wYWludERlY2xhcmF0aW9uc1tyfHwiIl18fCh0aGlzLl9wYWludERlY2xhcmF0aW9uc1tyfHwiIl09e30pLG51bGw9PT1lfHx2b2lkIDA9PT1lKWRlbGV0ZSB0aGlzLl9wYWludERlY2xhcmF0aW9uc1tyfHwiIl1bdF07ZWxzZXtpZih0aGlzLl9oYW5kbGVFcnJvcnModS5wYWludFByb3BlcnR5LG4sdCxlKSlyZXR1cm47dGhpcy5fcGFpbnREZWNsYXJhdGlvbnNbcnx8IiJdW3RdPW5ldyBzKHRoaXMuX3BhaW50U3BlY2lmaWNhdGlvbnNbdF0sZSl9fSxnZXRQYWludFByb3BlcnR5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9ZXx8IiIsby5lbmRzV2l0aCh0LGYpP3RoaXMuX3BhaW50VHJhbnNpdGlvbk9wdGlvbnNbZV0mJnRoaXMuX3BhaW50VHJhbnNpdGlvbk9wdGlvbnNbZV1bdF06dGhpcy5fcGFpbnREZWNsYXJhdGlvbnNbZV0mJnRoaXMuX3BhaW50RGVjbGFyYXRpb25zW2VdW3RdJiZ0aGlzLl9wYWludERlY2xhcmF0aW9uc1tlXVt0XS52YWx1ZX0sZ2V0UGFpbnRWYWx1ZTpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fcGFpbnRTcGVjaWZpY2F0aW9uc1t0XSxpPXRoaXMuX3BhaW50VHJhbnNpdGlvbnNbdF07cmV0dXJuIGk/aS5jYWxjdWxhdGUoZSxyKToiY29sb3IiPT09bi50eXBlJiZuLmRlZmF1bHQ/YyhuLmRlZmF1bHQpOm4uZGVmYXVsdH0sZ2V0UGFpbnRWYWx1ZVN0b3Bab29tTGV2ZWxzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3BhaW50VHJhbnNpdGlvbnNbdF07cmV0dXJuIGU/ZS5kZWNsYXJhdGlvbi5zdG9wWm9vbUxldmVsczpbXX0sZ2V0UGFpbnRJbnRlcnBvbGF0aW9uVDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3BhaW50VHJhbnNpdGlvbnNbdF07cmV0dXJuIHIuZGVjbGFyYXRpb24uY2FsY3VsYXRlSW50ZXJwb2xhdGlvblQoe3pvb206ZX0pfSxpc1BhaW50VmFsdWVGZWF0dXJlQ29uc3RhbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcGFpbnRUcmFuc2l0aW9uc1t0XTtyZXR1cm4gZT9lLmRlY2xhcmF0aW9uLmlzRmVhdHVyZUNvbnN0YW50OiEwfSxpc0xheW91dFZhbHVlRmVhdHVyZUNvbnN0YW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xheW91dERlY2xhcmF0aW9uc1t0XTtyZXR1cm4gZT9lLmlzRmVhdHVyZUNvbnN0YW50OiEwfSxpc1BhaW50VmFsdWVab29tQ29uc3RhbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcGFpbnRUcmFuc2l0aW9uc1t0XTtyZXR1cm4gZT9lLmRlY2xhcmF0aW9uLmlzWm9vbUNvbnN0YW50OiEwfSxpc0hpZGRlbjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5taW56b29tJiZ0PHRoaXMubWluem9vbT8hMDp0aGlzLm1heHpvb20mJnQ+PXRoaXMubWF4em9vbT8hMDoibm9uZSI9PT10aGlzLmxheW91dC52aXNpYmlsaXR5PyEwOjA9PT10aGlzLnBhaW50W3RoaXMudHlwZSsiLW9wYWNpdHkiXX0sdXBkYXRlUGFpbnRUcmFuc2l0aW9uczpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9by5leHRlbmQoe30sdGhpcy5fcGFpbnREZWNsYXJhdGlvbnNbIiJdKSxhPTA7YTx0Lmxlbmd0aDthKyspby5leHRlbmQoaSx0aGlzLl9wYWludERlY2xhcmF0aW9uc1t0W2FdXSk7dmFyIHM7Zm9yKHMgaW4gaSl0aGlzLl9hcHBseVBhaW50RGVjbGFyYXRpb24ocyxpW3NdLGUscixuKTtmb3IocyBpbiB0aGlzLl9wYWludFRyYW5zaXRpb25zKXMgaW4gaXx8dGhpcy5fYXBwbHlQYWludERlY2xhcmF0aW9uKHMsbnVsbCxlLHIsbil9LHVwZGF0ZVBhaW50VHJhbnNpdGlvbjpmdW5jdGlvbih0LGUscixuLGkpe2Zvcih2YXIgbz10aGlzLl9wYWludERlY2xhcmF0aW9uc1siIl1bdF0sYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgcz10aGlzLl9wYWludERlY2xhcmF0aW9uc1tlW2FdXTtzJiZzW3RdJiYobz1zW3RdKX10aGlzLl9hcHBseVBhaW50RGVjbGFyYXRpb24odCxvLHIsbixpKX0scmVjYWxjdWxhdGU6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdGhpcy5fcGFpbnRUcmFuc2l0aW9ucyl0aGlzLnBhaW50W3JdPXRoaXMuZ2V0UGFpbnRWYWx1ZShyLHt6b29tOnQsem9vbUhpc3Rvcnk6ZX0pO2Zvcih2YXIgbiBpbiB0aGlzLl9sYXlvdXRGdW5jdGlvbnMpdGhpcy5sYXlvdXRbbl09dGhpcy5nZXRMYXlvdXRWYWx1ZShuLHt6b29tOnQsem9vbUhpc3Rvcnk6ZX0pfSxzZXJpYWxpemU6ZnVuY3Rpb24odCl7dmFyIGU9e2lkOnRoaXMuaWQscmVmOnRoaXMucmVmLG1ldGFkYXRhOnRoaXMubWV0YWRhdGEsbWluem9vbTp0aGlzLm1pbnpvb20sbWF4em9vbTp0aGlzLm1heHpvb219O2Zvcih2YXIgciBpbiB0aGlzLl9wYWludERlY2xhcmF0aW9ucyl7dmFyIG49IiI9PT1yPyJwYWludCI6InBhaW50LiIrcjtlW25dPW8ubWFwT2JqZWN0KHRoaXMuX3BhaW50RGVjbGFyYXRpb25zW3JdLGkpfXJldHVybighdGhpcy5yZWZ8fHQmJnQuaW5jbHVkZVJlZlByb3BlcnRpZXMpJiZvLmV4dGVuZChlLHt0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5zb3VyY2UsInNvdXJjZS1sYXllciI6dGhpcy5zb3VyY2VMYXllcixmaWx0ZXI6dGhpcy5maWx0ZXIsbGF5b3V0Om8ubWFwT2JqZWN0KHRoaXMuX2xheW91dERlY2xhcmF0aW9ucyxpKX0pLG8uZmlsdGVyT2JqZWN0KGUsZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwIT09dCYmISgibGF5b3V0Ij09PWUmJiFPYmplY3Qua2V5cyh0KS5sZW5ndGgpfSl9LF9hcHBseVBhaW50RGVjbGFyYXRpb246ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbD1yLnRyYW5zaXRpb24/dGhpcy5fcGFpbnRUcmFuc2l0aW9uc1t0XTp2b2lkIDAsdT10aGlzLl9wYWludFNwZWNpZmljYXRpb25zW3RdO2lmKG51bGwhPT1lJiZ2b2lkIDAhPT1lfHwoZT1uZXcgcyh1LHUuZGVmYXVsdCkpLCFsfHxsLmRlY2xhcmF0aW9uLmpzb24hPT1lLmpzb24pe3ZhciBjPW8uZXh0ZW5kKHtkdXJhdGlvbjozMDAsZGVsYXk6MH0sbix0aGlzLmdldFBhaW50UHJvcGVydHkodCtmKSksaD10aGlzLl9wYWludFRyYW5zaXRpb25zW3RdPW5ldyBhKHUsZSxsLGMpO2guaW5zdGFudCgpfHwoaC5sb29wSUQ9aS5zZXQoaC5lbmRUaW1lLURhdGUubm93KCkpKSxsJiZpLmNhbmNlbChsLmxvb3BJRCl9fSxfdXBkYXRlTGF5b3V0VmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbGF5b3V0RGVjbGFyYXRpb25zW3RdO2UmJmUuaXNGdW5jdGlvbj90aGlzLl9sYXlvdXRGdW5jdGlvbnNbdF09ITA6KGRlbGV0ZSB0aGlzLl9sYXlvdXRGdW5jdGlvbnNbdF0sdGhpcy5sYXlvdXRbdF09dGhpcy5nZXRMYXlvdXRWYWx1ZSh0KSl9LF9oYW5kbGVFcnJvcnM6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHUuZW1pdEVycm9ycyh0aGlzLHQuY2FsbCh1LHtrZXk6ZSxsYXllclR5cGU6dGhpcy50eXBlLG9iamVjdEtleTpyLHZhbHVlOm4sc3R5bGVTcGVjOmwsc3R5bGU6e2dseXBoczohMCxzcHJpdGU6ITB9fSkpfX0pfSx7Ii4uL3V0aWwvZXZlbnRlZCI6MzU4LCIuLi91dGlsL3V0aWwiOjM2NiwiLi9wYXJzZV9jb2xvciI6MzAxLCIuL3N0eWxlX2RlY2xhcmF0aW9uIjozMDMsIi4vc3R5bGVfbGF5ZXIvYmFja2dyb3VuZF9zdHlsZV9sYXllciI6MzA2LCIuL3N0eWxlX2xheWVyL2NpcmNsZV9zdHlsZV9sYXllciI6MzA3LCIuL3N0eWxlX2xheWVyL2ZpbGxfc3R5bGVfbGF5ZXIiOjMwOCwiLi9zdHlsZV9sYXllci9saW5lX3N0eWxlX2xheWVyIjozMDksIi4vc3R5bGVfbGF5ZXIvcmFzdGVyX3N0eWxlX2xheWVyIjozMTAsIi4vc3R5bGVfbGF5ZXIvc3ltYm9sX3N0eWxlX2xheWVyIjozMTEsIi4vc3R5bGVfc3BlYyI6MzEyLCIuL3N0eWxlX3RyYW5zaXRpb24iOjMxMywiLi92YWxpZGF0ZV9zdHlsZSI6MzE0fV0sMzA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgaT10KCIuLi8uLi91dGlsL3V0aWwiKSxvPXQoIi4uL3N0eWxlX2xheWVyIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9aS5pbmhlcml0KG8se30pfSx7Ii4uLy4uL3V0aWwvdXRpbCI6MzY2LCIuLi9zdHlsZV9sYXllciI6MzA1fV0sMzA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgaT10KCIuLi8uLi91dGlsL3V0aWwiKSxvPXQoIi4uL3N0eWxlX2xheWVyIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9aS5pbmhlcml0KG8se30pfSx7Ii4uLy4uL3V0aWwvdXRpbCI6MzY2LCIuLi9zdHlsZV9sYXllciI6MzA1fV0sMzA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgaT10KCIuLi8uLi91dGlsL3V0aWwiKSxvPXQoIi4uL3N0eWxlX2xheWVyIik7bi5wcm90b3R5cGU9aS5pbmhlcml0KG8se2dldFBhaW50VmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiJmaWxsLW91dGxpbmUtY29sb3IiPT09dCYmdm9pZCAwPT09dGhpcy5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT9vLnByb3RvdHlwZS5nZXRQYWludFZhbHVlLmNhbGwodGhpcywiZmlsbC1jb2xvciIsZSxyKTpvLnByb3RvdHlwZS5nZXRQYWludFZhbHVlLmNhbGwodGhpcyx0LGUscil9LGdldFBhaW50VmFsdWVTdG9wWm9vbUxldmVsczpmdW5jdGlvbih0KXtyZXR1cm4iZmlsbC1vdXRsaW5lLWNvbG9yIj09PXQmJnZvaWQgMD09PXRoaXMuZ2V0UGFpbnRQcm9wZXJ0eSgiZmlsbC1vdXRsaW5lLWNvbG9yIik/by5wcm90b3R5cGUuZ2V0UGFpbnRWYWx1ZVN0b3Bab29tTGV2ZWxzLmNhbGwodGhpcywiZmlsbC1jb2xvciIpOm8ucHJvdG90eXBlLmdldFBhaW50VmFsdWVTdG9wWm9vbUxldmVscy5jYWxsKHRoaXMsYXJndW1lbnRzKX0sZ2V0UGFpbnRJbnRlcnBvbGF0aW9uVDpmdW5jdGlvbih0LGUpe3JldHVybiJmaWxsLW91dGxpbmUtY29sb3IiPT09dCYmdm9pZCAwPT09dGhpcy5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT9vLnByb3RvdHlwZS5nZXRQYWludEludGVycG9sYXRpb25ULmNhbGwodGhpcywiZmlsbC1jb2xvciIsZSk6by5wcm90b3R5cGUuZ2V0UGFpbnRJbnRlcnBvbGF0aW9uVC5jYWxsKHRoaXMsdCxlKX0saXNQYWludFZhbHVlRmVhdHVyZUNvbnN0YW50OmZ1bmN0aW9uKHQpe3JldHVybiJmaWxsLW91dGxpbmUtY29sb3IiPT09dCYmdm9pZCAwPT09dGhpcy5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT9vLnByb3RvdHlwZS5pc1BhaW50VmFsdWVGZWF0dXJlQ29uc3RhbnQuY2FsbCh0aGlzLCJmaWxsLWNvbG9yIik6by5wcm90b3R5cGUuaXNQYWludFZhbHVlRmVhdHVyZUNvbnN0YW50LmNhbGwodGhpcyx0KX0saXNQYWludFZhbHVlWm9vbUNvbnN0YW50OmZ1bmN0aW9uKHQpe3JldHVybiJmaWxsLW91dGxpbmUtY29sb3IiPT09dCYmdm9pZCAwPT09dGhpcy5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT9vLnByb3RvdHlwZS5pc1BhaW50VmFsdWVab29tQ29uc3RhbnQuY2FsbCh0aGlzLCJmaWxsLWNvbG9yIik6by5wcm90b3R5cGUuaXNQYWludFZhbHVlWm9vbUNvbnN0YW50LmNhbGwodGhpcyx0KX19KSxlLmV4cG9ydHM9bn0seyIuLi8uLi91dGlsL3V0aWwiOjM2NiwiLi4vc3R5bGVfbGF5ZXIiOjMwNX1dLDMwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7by5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGk9dCgiLi4vLi4vdXRpbC91dGlsIiksbz10KCIuLi9zdHlsZV9sYXllciIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPWkuaW5oZXJpdChvLHtnZXRQYWludFZhbHVlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1vLnByb3RvdHlwZS5nZXRQYWludFZhbHVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihuJiYibGluZS1kYXNoYXJyYXkiPT09dCl7dmFyIGk9TWF0aC5mbG9vcihlLnpvb20pO3RoaXMuX2Zsb29yZWRab29tIT09aSYmKHRoaXMuX2Zsb29yZWRab29tPWksdGhpcy5fZmxvb3JlZExpbmVXaWR0aD10aGlzLmdldFBhaW50VmFsdWUoImxpbmUtd2lkdGgiLGUscikpLG4uZnJvbVNjYWxlKj10aGlzLl9mbG9vcmVkTGluZVdpZHRoLG4udG9TY2FsZSo9dGhpcy5fZmxvb3JlZExpbmVXaWR0aH1yZXR1cm4gbn19KX0seyIuLi8uLi91dGlsL3V0aWwiOjM2NiwiLi4vc3R5bGVfbGF5ZXIiOjMwNX1dLDMxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7by5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGk9dCgiLi4vLi4vdXRpbC91dGlsIiksbz10KCIuLi9zdHlsZV9sYXllciIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPWkuaW5oZXJpdChvLHt9KX0seyIuLi8uLi91dGlsL3V0aWwiOjM2NiwiLi4vc3R5bGVfbGF5ZXIiOjMwNX1dLDMxMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7by5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIGk9dCgiLi4vLi4vdXRpbC91dGlsIiksbz10KCIuLi9zdHlsZV9sYXllciIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlPWkuaW5oZXJpdChvLHtpc0hpZGRlbjpmdW5jdGlvbigpe2lmKG8ucHJvdG90eXBlLmlzSGlkZGVuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSlyZXR1cm4hMDt2YXIgdD0wPT09dGhpcy5wYWludFsidGV4dC1vcGFjaXR5Il18fCF0aGlzLmxheW91dFsidGV4dC1maWVsZCJdLGU9MD09PXRoaXMucGFpbnRbImljb24tb3BhY2l0eSJdfHwhdGhpcy5sYXlvdXRbImljb24taW1hZ2UiXTtyZXR1cm4hKCF0fHwhZSl9LGdldExheW91dFZhbHVlOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4oInRleHQtcm90YXRpb24tYWxpZ25tZW50IiE9PXR8fCJsaW5lIiE9PXRoaXMuZ2V0TGF5b3V0VmFsdWUoInN5bWJvbC1wbGFjZW1lbnQiLGUscil8fHRoaXMuZ2V0TGF5b3V0UHJvcGVydHkoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikpJiYoImljb24tcm90YXRpb24tYWxpZ25tZW50IiE9PXR8fCJsaW5lIiE9PXRoaXMuZ2V0TGF5b3V0VmFsdWUoInN5bWJvbC1wbGFjZW1lbnQiLGUscil8fHRoaXMuZ2V0TGF5b3V0UHJvcGVydHkoImljb24tcm90YXRpb24tYWxpZ25tZW50IikpPyJ0ZXh0LXBpdGNoLWFsaWdubWVudCIhPT10fHx0aGlzLmdldExheW91dFByb3BlcnR5KCJ0ZXh0LXBpdGNoLWFsaWdubWVudCIpP28ucHJvdG90eXBlLmdldExheW91dFZhbHVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmdldExheW91dFZhbHVlKCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpOiJtYXAiOwp9fSl9LHsiLi4vLi4vdXRpbC91dGlsIjozNjYsIi4uL3N0eWxlX2xheWVyIjozMDV9XSwzMTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIm1hcGJveC1nbC1zdHlsZS1zcGVjL3JlZmVyZW5jZS9sYXRlc3QiKX0seyJtYXBib3gtZ2wtc3R5bGUtc3BlYy9yZWZlcmVuY2UvbGF0ZXN0Ijo0MTZ9XSwzMTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLmRlY2xhcmF0aW9uPWUsdGhpcy5zdGFydFRpbWU9dGhpcy5lbmRUaW1lPShuZXcgRGF0ZSkuZ2V0VGltZSgpLCJwaWVjZXdpc2UtY29uc3RhbnQiPT09dC5mdW5jdGlvbiYmdC50cmFuc2l0aW9uP3RoaXMuaW50ZXJwPWk6dGhpcy5pbnRlcnA9YVt0LnR5cGVdLHRoaXMub2xkVHJhbnNpdGlvbj1yLHRoaXMuZHVyYXRpb249bi5kdXJhdGlvbnx8MCx0aGlzLmRlbGF5PW4uZGVsYXl8fDAsdGhpcy5pbnN0YW50KCl8fCh0aGlzLmVuZFRpbWU9dGhpcy5zdGFydFRpbWUrdGhpcy5kdXJhdGlvbit0aGlzLmRlbGF5LHRoaXMuZWFzZT1vLmVhc2VDdWJpY0luT3V0KSxyJiZyLmVuZFRpbWU8PXRoaXMuc3RhcnRUaW1lJiZkZWxldGUgci5vbGRUcmFuc2l0aW9ufWZ1bmN0aW9uIGkodCxlLHIpe3JldHVybiB2b2lkIDA9PT0odCYmdC50byl8fHZvaWQgMD09PShlJiZlLnRvKT92b2lkIDA6e2Zyb206dC50byxmcm9tU2NhbGU6dC50b1NjYWxlLHRvOmUudG8sdG9TY2FsZTplLnRvU2NhbGUsdDpyfX12YXIgbz10KCIuLi91dGlsL3V0aWwiKSxhPXQoIi4uL3V0aWwvaW50ZXJwb2xhdGUiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZS5pbnN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMub2xkVHJhbnNpdGlvbnx8IXRoaXMuaW50ZXJwfHwwPT09dGhpcy5kdXJhdGlvbiYmMD09PXRoaXMuZGVsYXl9LG4ucHJvdG90eXBlLmNhbGN1bGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZGVjbGFyYXRpb24uY2FsY3VsYXRlKG8uZXh0ZW5kKHt9LHQse2R1cmF0aW9uOnRoaXMuZHVyYXRpb259KSxlKTtpZih0aGlzLmluc3RhbnQoKSlyZXR1cm4gcjt2YXIgbj10LnRpbWV8fERhdGUubm93KCk7aWYobjx0aGlzLmVuZFRpbWUpe3ZhciBpPXRoaXMub2xkVHJhbnNpdGlvbi5jYWxjdWxhdGUoby5leHRlbmQoe30sdCx7dGltZTp0aGlzLnN0YXJ0VGltZX0pLGUpLGE9dGhpcy5lYXNlKChuLXRoaXMuc3RhcnRUaW1lLXRoaXMuZGVsYXkpL3RoaXMuZHVyYXRpb24pO3I9dGhpcy5pbnRlcnAoaSxyLGEpfXJldHVybiByfX0seyIuLi91dGlsL2ludGVycG9sYXRlIjozNjAsIi4uL3V0aWwvdXRpbCI6MzY2fV0sMzE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCJtYXBib3gtZ2wtc3R5bGUtc3BlYy9saWIvdmFsaWRhdGVfc3R5bGUubWluIiksZS5leHBvcnRzLmVtaXRFcnJvcnM9ZnVuY3Rpb24odCxlKXtpZihlJiZlLmxlbmd0aCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdC5maXJlKCJlcnJvciIse2Vycm9yOm5ldyBFcnJvcihlW3JdLm1lc3NhZ2UpfSk7cmV0dXJuITB9cmV0dXJuITF9LGUuZXhwb3J0cy50aHJvd0Vycm9ycz1mdW5jdGlvbih0LGUpe2lmKGUpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspdGhyb3cgbmV3IEVycm9yKGVbcl0ubWVzc2FnZSl9fSx7Im1hcGJveC1nbC1zdHlsZS1zcGVjL2xpYi92YWxpZGF0ZV9zdHlsZS5taW4iOjQxNX1dLDMxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe3RoaXMueD10LHRoaXMueT1lLHRoaXMuYW5nbGU9cix2b2lkIDAhPT1uJiYodGhpcy5zZWdtZW50PW4pfXZhciBpPXQoInBvaW50LWdlb21ldHJ5Iik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShpLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcy54LHRoaXMueSx0aGlzLmFuZ2xlLHRoaXMuc2VnbWVudCl9fSx7InBvaW50LWdlb21ldHJ5Ijo0MjR9XSwzMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe2lmKHZvaWQgMD09PWUuc2VnbWVudClyZXR1cm4hMDtmb3IodmFyIG89ZSxhPWUuc2VnbWVudCsxLHM9MDtzPi1yLzI7KXtpZihhLS0sMD5hKXJldHVybiExO3MtPXRbYV0uZGlzdChvKSxvPXRbYV19cys9dFthXS5kaXN0KHRbYSsxXSksYSsrO2Zvcih2YXIgbD1bXSx1PTA7ci8yPnM7KXt2YXIgYz10W2EtMV0saD10W2FdLGY9dFthKzFdO2lmKCFmKXJldHVybiExO3ZhciBwPWMuYW5nbGVUbyhoKS1oLmFuZ2xlVG8oZik7Zm9yKHA9TWF0aC5hYnMoKHArMypNYXRoLlBJKSUoMipNYXRoLlBJKS1NYXRoLlBJKSxsLnB1c2goe2Rpc3RhbmNlOnMsYW5nbGVEZWx0YTpwfSksdSs9cDtzLWxbMF0uZGlzdGFuY2U+bjspdS09bC5zaGlmdCgpLmFuZ2xlRGVsdGE7aWYodT5pKXJldHVybiExO2ErKyxzKz1oLmRpc3QoZil9cmV0dXJuITB9ZS5leHBvcnRzPW59LHt9XSwzMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLG8pe2Zvcih2YXIgYT1bXSxzPTA7czx0Lmxlbmd0aDtzKyspZm9yKHZhciBsLHU9dFtzXSxjPTA7Yzx1Lmxlbmd0aC0xO2MrKyl7dmFyIGg9dVtjXSxmPXVbYysxXTtoLng8ZSYmZi54PGV8fChoLng8ZT9oPW5ldyBpKGUsaC55KyhmLnktaC55KSooKGUtaC54KS8oZi54LWgueCkpKS5fcm91bmQoKTpmLng8ZSYmKGY9bmV3IGkoZSxoLnkrKGYueS1oLnkpKigoZS1oLngpLyhmLngtaC54KSkpLl9yb3VuZCgpKSxoLnk8ciYmZi55PHJ8fChoLnk8cj9oPW5ldyBpKGgueCsoZi54LWgueCkqKChyLWgueSkvKGYueS1oLnkpKSxyKS5fcm91bmQoKTpmLnk8ciYmKGY9bmV3IGkoaC54KyhmLngtaC54KSooKHItaC55KS8oZi55LWgueSkpLHIpLl9yb3VuZCgpKSxoLng+PW4mJmYueD49bnx8KGgueD49bj9oPW5ldyBpKG4saC55KyhmLnktaC55KSooKG4taC54KS8oZi54LWgueCkpKS5fcm91bmQoKTpmLng+PW4mJihmPW5ldyBpKG4saC55KyhmLnktaC55KSooKG4taC54KS8oZi54LWgueCkpKS5fcm91bmQoKSksaC55Pj1vJiZmLnk+PW98fChoLnk+PW8/aD1uZXcgaShoLngrKGYueC1oLngpKigoby1oLnkpLyhmLnktaC55KSksbykuX3JvdW5kKCk6Zi55Pj1vJiYoZj1uZXcgaShoLngrKGYueC1oLngpKigoby1oLnkpLyhmLnktaC55KSksbykuX3JvdW5kKCkpLGwmJmguZXF1YWxzKGxbbC5sZW5ndGgtMV0pfHwobD1baF0sYS5wdXNoKGwpKSxsLnB1c2goZikpKSkpfXJldHVybiBhfXZhciBpPXQoInBvaW50LWdlb21ldHJ5Iik7ZS5leHBvcnRzPW59LHsicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDMxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi91dGlsL3N0cnVjdF9hcnJheSIpLGk9dCgiLi4vdXRpbC91dGlsIiksbz10KCJwb2ludC1nZW9tZXRyeSIpLGE9ZS5leHBvcnRzPW5ldyBuKHttZW1iZXJzOlt7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclBvaW50WCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToiYW5jaG9yUG9pbnRZIn0se3R5cGU6IkludDE2IixuYW1lOiJ4MSJ9LHt0eXBlOiJJbnQxNiIsbmFtZToieTEifSx7dHlwZToiSW50MTYiLG5hbWU6IngyIn0se3R5cGU6IkludDE2IixuYW1lOiJ5MiJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJtYXhTY2FsZSJ9LHt0eXBlOiJVaW50MzIiLG5hbWU6ImZlYXR1cmVJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InNvdXJjZUxheWVySW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJidWNrZXRJbmRleCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToiYmJveDAifSx7dHlwZToiSW50MTYiLG5hbWU6ImJib3gxIn0se3R5cGU6IkludDE2IixuYW1lOiJiYm94MiJ9LHt0eXBlOiJJbnQxNiIsbmFtZToiYmJveDMifSx7dHlwZToiRmxvYXQzMiIsbmFtZToicGxhY2VtZW50U2NhbGUifV19KTtpLmV4dGVuZEFsbChhLnByb3RvdHlwZS5TdHJ1Y3RUeXBlLnByb3RvdHlwZSx7Z2V0IGFuY2hvclBvaW50KCl7cmV0dXJuIG5ldyBvKHRoaXMuYW5jaG9yUG9pbnRYLHRoaXMuYW5jaG9yUG9pbnRZKX19KX0seyIuLi91dGlsL3N0cnVjdF9hcnJheSI6MzY0LCIuLi91dGlsL3V0aWwiOjM2NiwicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDMxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSxvLGEscyxsLHUsYyl7dmFyIGg9YS50b3Aqcy1sLGY9YS5ib3R0b20qcytsLHA9YS5sZWZ0KnMtbCxkPWEucmlnaHQqcytsO2lmKHRoaXMuYm94U3RhcnRJbmRleD10Lmxlbmd0aCx1KXt2YXIgbT1mLWgsZz1kLXA7aWYobT4wKWlmKG09TWF0aC5tYXgoMTAqcyxtKSxjKXt2YXIgdj1lW3Iuc2VnbWVudCsxXS5zdWIoZVtyLnNlZ21lbnRdKS5fdW5pdCgpLl9tdWx0KGcpLHk9W3Iuc3ViKHYpLHIuYWRkKHYpXTt0aGlzLl9hZGRMaW5lQ29sbGlzaW9uQm94ZXModCx5LHIsMCxnLG0sbixpLG8pfWVsc2UgdGhpcy5fYWRkTGluZUNvbGxpc2lvbkJveGVzKHQsZSxyLHIuc2VnbWVudCxnLG0sbixpLG8pfWVsc2UgdC5lbXBsYWNlQmFjayhyLngsci55LHAsaCxkLGYsMS8wLG4saSxvLDAsMCwwLDAsMCk7dGhpcy5ib3hFbmRJbmRleD10Lmxlbmd0aH1lLmV4cG9ydHM9bixuLnByb3RvdHlwZS5fYWRkTGluZUNvbGxpc2lvbkJveGVzPWZ1bmN0aW9uKHQsZSxyLG4saSxvLGEscyxsKXt2YXIgdT1vLzIsYz1NYXRoLmZsb29yKGkvdSksaD0tby8yLGY9dGhpcy5ib3hlcyxwPXIsZD1uKzEsbT1oO2Rve2lmKGQtLSwwPmQpcmV0dXJuIGY7bS09ZVtkXS5kaXN0KHApLHA9ZVtkXX13aGlsZShtPi1pLzIpO2Zvcih2YXIgZz1lW2RdLmRpc3QoZVtkKzFdKSx2PTA7Yz52O3YrKyl7Zm9yKHZhciB5PS1pLzIrdip1O3k+bStnOyl7aWYobSs9ZyxkKyssZCsxPj1lLmxlbmd0aClyZXR1cm4gZjtnPWVbZF0uZGlzdChlW2QrMV0pfXZhciBiPXktbSx4PWVbZF0sXz1lW2QrMV0sdz1fLnN1Yih4KS5fdW5pdCgpLl9tdWx0KGIpLl9hZGQoeCkuX3JvdW5kKCksTT1NYXRoLm1heChNYXRoLmFicyh5LWgpLXUvMiwwKSxrPWkvMi9NO3QuZW1wbGFjZUJhY2sody54LHcueSwtby8yLC1vLzIsby8yLG8vMixrLGEscyxsLDAsMCwwLDAsMCl9cmV0dXJuIGZ9fSx7fV0sMzIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe2lmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIG49dDtyPWUsdD1uLmFuZ2xlLGU9bi5waXRjaCx0aGlzLmdyaWQ9bmV3IGEobi5ncmlkKSx0aGlzLmlnbm9yZWRHcmlkPW5ldyBhKG4uaWdub3JlZEdyaWQpfWVsc2UgdGhpcy5ncmlkPW5ldyBhKG8sMTIsNiksdGhpcy5pZ25vcmVkR3JpZD1uZXcgYShvLDEyLDApO3RoaXMuYW5nbGU9dCx0aGlzLnBpdGNoPWU7dmFyIGk9TWF0aC5zaW4odCkscz1NYXRoLmNvcyh0KTtpZih0aGlzLnJvdGF0aW9uTWF0cml4PVtzLC1pLGksc10sdGhpcy5yZXZlcnNlUm90YXRpb25NYXRyaXg9W3MsaSwtaSxzXSx0aGlzLnlTdHJldGNoPTEvTWF0aC5jb3MoZS8xODAqTWF0aC5QSSksdGhpcy55U3RyZXRjaD1NYXRoLnBvdyh0aGlzLnlTdHJldGNoLDEuMyksdGhpcy5jb2xsaXNpb25Cb3hBcnJheT1yLDA9PT1yLmxlbmd0aCl7ci5lbXBsYWNlQmFjaygpO3ZhciBsPTMyNzY3O3IuZW1wbGFjZUJhY2soMCwwLDAsLWwsMCxsLGwsMCwwLDAsMCwwLDAsMCwwLDApLHIuZW1wbGFjZUJhY2sobywwLDAsLWwsMCxsLGwsMCwwLDAsMCwwLDAsMCwwLDApLHIuZW1wbGFjZUJhY2soMCwwLC1sLDAsbCwwLGwsMCwwLDAsMCwwLDAsMCwwLDApLHIuZW1wbGFjZUJhY2soMCxvLC1sLDAsbCwwLGwsMCwwLDAsMCwwLDAsMCwwLDApfXRoaXMudGVtcENvbGxpc2lvbkJveD1yLmdldCgwKSx0aGlzLmVkZ2VzPVtyLmdldCgxKSxyLmdldCgyKSxyLmdldCgzKSxyLmdldCg0KV19dmFyIGk9dCgicG9pbnQtZ2VvbWV0cnkiKSxvPXQoIi4uL2RhdGEvYnVja2V0IikuRVhURU5ULGE9dCgiZ3JpZC1pbmRleCIpO2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PXthbmdsZTp0aGlzLmFuZ2xlLHBpdGNoOnRoaXMucGl0Y2gsZ3JpZDp0aGlzLmdyaWQudG9BcnJheUJ1ZmZlcigpLGlnbm9yZWRHcmlkOnRoaXMuaWdub3JlZEdyaWQudG9BcnJheUJ1ZmZlcigpfTtyZXR1cm57ZGF0YTp0LHRyYW5zZmVyYWJsZXM6W3QuZ3JpZCx0Lmlnbm9yZWRHcmlkXX19LG4ucHJvdG90eXBlLm1pblNjYWxlPS4yNSxuLnByb3RvdHlwZS5tYXhTY2FsZT0yLG4ucHJvdG90eXBlLnBsYWNlQ29sbGlzaW9uRmVhdHVyZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXRoaXMuY29sbGlzaW9uQm94QXJyYXksbz10aGlzLm1pblNjYWxlLGE9dGhpcy5yb3RhdGlvbk1hdHJpeCxzPXRoaXMueVN0cmV0Y2gsbD10LmJveFN0YXJ0SW5kZXg7bDx0LmJveEVuZEluZGV4O2wrKyl7dmFyIHU9bi5nZXQobCksYz11LmFuY2hvclBvaW50Ll9tYXRNdWx0KGEpLGg9Yy54LGY9Yy55LHA9aCt1LngxLGQ9Zit1LnkxKnMsbT1oK3UueDIsZz1mK3UueTIqcztpZih1LmJib3gwPXAsdS5iYm94MT1kLHUuYmJveDI9bSx1LmJib3gzPWcsIWUpZm9yKHZhciB2PXRoaXMuZ3JpZC5xdWVyeShwLGQsbSxnKSx5PTA7eTx2Lmxlbmd0aDt5Kyspe3ZhciBiPW4uZ2V0KHZbeV0pLHg9Yi5hbmNob3JQb2ludC5fbWF0TXVsdChhKTtpZihvPXRoaXMuZ2V0UGxhY2VtZW50U2NhbGUobyxjLHUseCxiKSxvPj10aGlzLm1heFNjYWxlKXJldHVybiBvfWlmKHIpe3ZhciBfO2lmKHRoaXMuYW5nbGUpe3ZhciB3PXRoaXMucmV2ZXJzZVJvdGF0aW9uTWF0cml4LE09bmV3IGkodS54MSx1LnkxKS5tYXRNdWx0KHcpLGs9bmV3IGkodS54Mix1LnkxKS5tYXRNdWx0KHcpLEE9bmV3IGkodS54MSx1LnkyKS5tYXRNdWx0KHcpLFQ9bmV3IGkodS54Mix1LnkyKS5tYXRNdWx0KHcpO189dGhpcy50ZW1wQ29sbGlzaW9uQm94LF8uYW5jaG9yUG9pbnRYPXUuYW5jaG9yUG9pbnQueCxfLmFuY2hvclBvaW50WT11LmFuY2hvclBvaW50LnksXy54MT1NYXRoLm1pbihNLngsay54LEEueCxULngpLF8ueTE9TWF0aC5taW4oTS55LGsueCxBLngsVC54KSxfLngyPU1hdGgubWF4KE0ueCxrLngsQS54LFQueCksXy55Mj1NYXRoLm1heChNLnksay54LEEueCxULngpLF8ubWF4U2NhbGU9dS5tYXhTY2FsZX1lbHNlIF89dTtmb3IodmFyIEU9MDtFPHRoaXMuZWRnZXMubGVuZ3RoO0UrKyl7dmFyIFM9dGhpcy5lZGdlc1tFXTtpZihvPXRoaXMuZ2V0UGxhY2VtZW50U2NhbGUobyx1LmFuY2hvclBvaW50LF8sUy5hbmNob3JQb2ludCxTKSxvPj10aGlzLm1heFNjYWxlKXJldHVybiBvfX19cmV0dXJuIG99LG4ucHJvdG90eXBlLnF1ZXJ5UmVuZGVyZWRTeW1ib2xzPWZ1bmN0aW9uKHQsZSxyLG4sbyl7dmFyIGE9e30scz1bXSxsPXRoaXMuY29sbGlzaW9uQm94QXJyYXksdT10aGlzLnJvdGF0aW9uTWF0cml4LGM9bmV3IGkodCxlKS5fbWF0TXVsdCh1KSxoPXRoaXMudGVtcENvbGxpc2lvbkJveDtoLmFuY2hvclg9Yy54LGguYW5jaG9yWT1jLnksaC54MT0wLGgueTE9MCxoLngyPXItdCxoLnkyPW4tZSxoLm1heFNjYWxlPW8sbz1oLm1heFNjYWxlO2Zvcih2YXIgZj1bYy54K2gueDEvbyxjLnkraC55MS9vKnRoaXMueVN0cmV0Y2gsYy54K2gueDIvbyxjLnkraC55Mi9vKnRoaXMueVN0cmV0Y2hdLHA9dGhpcy5ncmlkLnF1ZXJ5KGZbMF0sZlsxXSxmWzJdLGZbM10pLGQ9dGhpcy5pZ25vcmVkR3JpZC5xdWVyeShmWzBdLGZbMV0sZlsyXSxmWzNdKSxtPTA7bTxkLmxlbmd0aDttKyspcC5wdXNoKGRbbV0pO2Zvcih2YXIgZz0wO2c8cC5sZW5ndGg7ZysrKXt2YXIgdj1sLmdldChwW2ddKSx5PXYuc291cmNlTGF5ZXJJbmRleCxiPXYuZmVhdHVyZUluZGV4O2lmKHZvaWQgMD09PWFbeV0mJihhW3ldPXt9KSwhYVt5XVtiXSl7dmFyIHg9di5hbmNob3JQb2ludC5tYXRNdWx0KHUpLF89dGhpcy5nZXRQbGFjZW1lbnRTY2FsZSh0aGlzLm1pblNjYWxlLGMsaCx4LHYpO18+PW8mJihhW3ldW2JdPSEwLHMucHVzaChwW2ddKSl9fXJldHVybiBzfSxuLnByb3RvdHlwZS5nZXRQbGFjZW1lbnRTY2FsZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBvPWUueC1uLngsYT1lLnktbi55LHM9KGkueDEtci54MikvbyxsPShpLngyLXIueDEpL28sdT0oaS55MS1yLnkyKSp0aGlzLnlTdHJldGNoL2EsYz0oaS55Mi1yLnkxKSp0aGlzLnlTdHJldGNoL2E7KGlzTmFOKHMpfHxpc05hTihsKSkmJihzPWw9MSksKGlzTmFOKHUpfHxpc05hTihjKSkmJih1PWM9MSk7dmFyIGg9TWF0aC5taW4oTWF0aC5tYXgocyxsKSxNYXRoLm1heCh1LGMpKSxmPWkubWF4U2NhbGUscD1yLm1heFNjYWxlO3JldHVybiBoPmYmJihoPWYpLGg+cCYmKGg9cCksaD50JiZoPj1pLnBsYWNlbWVudFNjYWxlJiYodD1oKSx0fSxuLnByb3RvdHlwZS5pbnNlcnRDb2xsaXNpb25GZWF0dXJlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49cj90aGlzLmlnbm9yZWRHcmlkOnRoaXMuZ3JpZCxpPXRoaXMuY29sbGlzaW9uQm94QXJyYXksbz10LmJveFN0YXJ0SW5kZXg7bzx0LmJveEVuZEluZGV4O28rKyl7dmFyIGE9aS5nZXQobyk7YS5wbGFjZW1lbnRTY2FsZT1lLGU8dGhpcy5tYXhTY2FsZSYmbi5pbnNlcnQobyxhLmJib3gwLGEuYmJveDEsYS5iYm94MixhLmJib3gzKX19fSx7Ii4uL2RhdGEvYnVja2V0IjoyNTMsImdyaWQtaW5kZXgiOjM5MiwicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDMyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4sbyxhLHMsbCx1KXt2YXIgYz1uPy42KmEqczowLGg9TWF0aC5tYXgobj9uLnJpZ2h0LW4ubGVmdDowLG8/by5yaWdodC1vLmxlZnQ6MCksZj0wPT09dFswXS54fHx0WzBdLng9PT11fHwwPT09dFswXS55fHx0WzBdLnk9PT11O2UvND5lLWgqcyYmKGU9aCpzK2UvNCk7dmFyIHA9MiphLGQ9Zj9lLzIqbCVlOihoLzIrcCkqcypsJWU7cmV0dXJuIGkodCxkLGUsYyxyLGgqcyxmLCExLHUpfWZ1bmN0aW9uIGkodCxlLHIsbixsLHUsYyxoLGYpe2Zvcih2YXIgcD11LzIsZD0wLG09MDttPHQubGVuZ3RoLTE7bSsrKWQrPXRbbV0uZGlzdCh0W20rMV0pO2Zvcih2YXIgZz0wLHY9ZS1yLHk9W10sYj0wO2I8dC5sZW5ndGgtMTtiKyspe2Zvcih2YXIgeD10W2JdLF89dFtiKzFdLHc9eC5kaXN0KF8pLE09Xy5hbmdsZVRvKHgpO2crdz52K3I7KXt2Kz1yO3ZhciBrPSh2LWcpL3csQT1vKHgueCxfLngsayksVD1vKHgueSxfLnksayk7aWYoQT49MCYmZj5BJiZUPj0wJiZmPlQmJnYtcD49MCYmZD49ditwKXt2YXIgRT1uZXcgYShBLFQsTSxiKS5fcm91bmQoKTtuJiYhcyh0LEUsdSxuLGwpfHx5LnB1c2goRSl9fWcrPXd9cmV0dXJuIGh8fHkubGVuZ3RofHxjfHwoeT1pKHQsZy8yLHIsbixsLHUsYywhMCxmKSkseX12YXIgbz10KCIuLi91dGlsL2ludGVycG9sYXRlIiksYT10KCIuLi9zeW1ib2wvYW5jaG9yIikscz10KCIuL2NoZWNrX21heF9hbmdsZSIpO2UuZXhwb3J0cz1ufSx7Ii4uL3N5bWJvbC9hbmNob3IiOjMxNSwiLi4vdXRpbC9pbnRlcnBvbGF0ZSI6MzYwLCIuL2NoZWNrX21heF9hbmdsZSI6MzE2fV0sMzIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt0aGlzLndpZHRoPXMsdGhpcy5oZWlnaHQ9cyx0aGlzLmJpbj1uZXcgaSh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSx0aGlzLmluZGV4PXt9LHRoaXMuaWRzPXt9LHRoaXMuZGF0YT1uZXcgVWludDhBcnJheSh0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KX12YXIgaT10KCJzaGVsZi1wYWNrIiksbz10KCIuLi91dGlsL3V0aWwiKSxhPTQscz0xMjgsbD0yMDQ4O2UuZXhwb3J0cz1uLG4ucHJvdG90eXBlLmdldEdseXBocz1mdW5jdGlvbigpe3ZhciB0LGUscixuPXt9O2Zvcih2YXIgaSBpbiB0aGlzLmlkcyl0PWkuc3BsaXQoIiMiKSxlPXRbMF0scj10WzFdLG5bZV18fChuW2VdPVtdKSxuW2VdLnB1c2gocik7cmV0dXJuIG59LG4ucHJvdG90eXBlLmdldFJlY3RzPWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG49e307Zm9yKHZhciBpIGluIHRoaXMuaWRzKXQ9aS5zcGxpdCgiIyIpLGU9dFswXSxyPXRbMV0sbltlXXx8KG5bZV09e30pLG5bZV1bcl09dGhpcy5pbmRleFtpXTtyZXR1cm4gbn0sbi5wcm90b3R5cGUuYWRkR2x5cGg9ZnVuY3Rpb24odCxlLHIsbil7aWYoIXIpcmV0dXJuIG51bGw7dmFyIGk9ZSsiIyIrci5pZDtpZih0aGlzLmluZGV4W2ldKXJldHVybiB0aGlzLmlkc1tpXS5pbmRleE9mKHQpPDAmJnRoaXMuaWRzW2ldLnB1c2godCksdGhpcy5pbmRleFtpXTtpZighci5iaXRtYXApcmV0dXJuIG51bGw7dmFyIGE9ci53aWR0aCsyKm4scz1yLmhlaWdodCsyKm4sbD0xLHU9YSsyKmwsYz1zKzIqbDt1Kz00LXUlNCxjKz00LWMlNDt2YXIgaD10aGlzLmJpbi5wYWNrT25lKHUsYyk7aWYoaHx8KHRoaXMucmVzaXplKCksaD10aGlzLmJpbi5wYWNrT25lKHUsYykpLCFoKXJldHVybiBvLndhcm5PbmNlKCJnbHlwaCBiaXRtYXAgb3ZlcmZsb3ciKSxudWxsO3RoaXMuaW5kZXhbaV09aCx0aGlzLmlkc1tpXT1bdF07Zm9yKHZhciBmPXRoaXMuZGF0YSxwPXIuYml0bWFwLGQ9MDtzPmQ7ZCsrKWZvcih2YXIgbT10aGlzLndpZHRoKihoLnkrZCtsKStoLngrbCxnPWEqZCx2PTA7YT52O3YrKylmW20rdl09cFtnK3ZdO3JldHVybiB0aGlzLmRpcnR5PSEwLGh9LG4ucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMud2lkdGgsZT10aGlzLmhlaWdodDtpZighKHQ+PWx8fGU+PWwpKXt0aGlzLnRleHR1cmUmJih0aGlzLmdsJiZ0aGlzLmdsLmRlbGV0ZVRleHR1cmUodGhpcy50ZXh0dXJlKSx0aGlzLnRleHR1cmU9bnVsbCksdGhpcy53aWR0aCo9YSx0aGlzLmhlaWdodCo9YSx0aGlzLmJpbi5yZXNpemUodGhpcy53aWR0aCx0aGlzLmhlaWdodCk7Zm9yKHZhciByPW5ldyBBcnJheUJ1ZmZlcih0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KSxuPTA7ZT5uO24rKyl7dmFyIGk9bmV3IFVpbnQ4QXJyYXkodGhpcy5kYXRhLmJ1ZmZlcixlKm4sdCksbz1uZXcgVWludDhBcnJheShyLGUqbiphLHQpO28uc2V0KGkpfXRoaXMuZGF0YT1uZXcgVWludDhBcnJheShyKX19LG4ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24odCl7dGhpcy5nbD10LHRoaXMudGV4dHVyZT90LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCx0aGlzLnRleHR1cmUpOih0aGlzLnRleHR1cmU9dC5jcmVhdGVUZXh0dXJlKCksdC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NQUdfRklMVEVSLHQuTElORUFSKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NSU5fRklMVEVSLHQuTElORUFSKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9XUkFQX1MsdC5DTEFNUF9UT19FREdFKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9XUkFQX1QsdC5DTEFNUF9UT19FREdFKSx0LnRleEltYWdlMkQodC5URVhUVVJFXzJELDAsdC5BTFBIQSx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LDAsdC5BTFBIQSx0LlVOU0lHTkVEX0JZVEUsbnVsbCkpfSxuLnByb3RvdHlwZS51cGRhdGVUZXh0dXJlPWZ1bmN0aW9uKHQpe3RoaXMuYmluZCh0KSx0aGlzLmRpcnR5JiYodC50ZXhTdWJJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLDAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0LHQuQUxQSEEsdC5VTlNJR05FRF9CWVRFLHRoaXMuZGF0YSksdGhpcy5kaXJ0eT0hMSl9fSx7Ii4uL3V0aWwvdXRpbCI6MzY2LCJzaGVsZi1wYWNrIjo0Mjd9XSwzMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLnVybD10JiZhKHQpLHRoaXMuYXRsYXNlcz17fSx0aGlzLnN0YWNrcz17fSx0aGlzLmxvYWRpbmc9e319ZnVuY3Rpb24gaSh0LGUscil7dmFyIG49MTt0aGlzLmFkdmFuY2U9dC5hZHZhbmNlLHRoaXMubGVmdD10LmxlZnQtci1uLHRoaXMudG9wPXQudG9wK3Irbix0aGlzLnJlY3Q9ZX1mdW5jdGlvbiBvKHQsZSxyLG4pe3JldHVybiBuPW58fCJhYmMiLHIucmVwbGFjZSgie3N9IixuW3QubGVuZ3RoJW4ubGVuZ3RoXSkucmVwbGFjZSgie2ZvbnRzdGFja30iLHQpLnJlcGxhY2UoIntyYW5nZX0iLGUpfXZhciBhPXQoIi4uL3V0aWwvbWFwYm94Iikubm9ybWFsaXplR2x5cGhzVVJMLHM9dCgiLi4vdXRpbC9hamF4IikuZ2V0QXJyYXlCdWZmZXIsbD10KCIuLi91dGlsL2dseXBocyIpLHU9dCgiLi4vc3ltYm9sL2dseXBoX2F0bGFzIiksYz10KCJwYmYiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZS5nZXRTaW1wbGVHbHlwaHM9ZnVuY3Rpb24odCxlLHIsbil7dm9pZCAwPT09dGhpcy5zdGFja3NbdF0mJih0aGlzLnN0YWNrc1t0XT17fSksdm9pZCAwPT09dGhpcy5hdGxhc2VzW3RdJiYodGhpcy5hdGxhc2VzW3RdPW5ldyB1KTtmb3IodmFyIG8sYT17fSxzPXRoaXMuc3RhY2tzW3RdLGw9dGhpcy5hdGxhc2VzW3RdLGM9MyxoPXt9LGY9MCxwPTA7cDxlLmxlbmd0aDtwKyspe3ZhciBkPWVbcF07aWYobz1NYXRoLmZsb29yKGQvMjU2KSxzW29dKXt2YXIgbT1zW29dLmdseXBoc1tkXSxnPWwuYWRkR2x5cGgocix0LG0sYyk7bSYmKGFbZF09bmV3IGkobSxnLGMpKX1lbHNlIHZvaWQgMD09PWhbb10mJihoW29dPVtdLGYrKyksaFtvXS5wdXNoKGQpfWZ8fG4odm9pZCAwLGEsdCk7dmFyIHY9ZnVuY3Rpb24oZSxvLHMpe2lmKCFlKWZvcih2YXIgdT10aGlzLnN0YWNrc1t0XVtvXT1zLnN0YWNrc1swXSxwPTA7cDxoW29dLmxlbmd0aDtwKyspe3ZhciBkPWhbb11bcF0sbT11LmdseXBoc1tkXSxnPWwuYWRkR2x5cGgocix0LG0sYyk7bSYmKGFbZF09bmV3IGkobSxnLGMpKX1mLS0sZnx8bih2b2lkIDAsYSx0KX0uYmluZCh0aGlzKTtmb3IodmFyIHkgaW4gaCl0aGlzLmxvYWRSYW5nZSh0LHksdil9LG4ucHJvdG90eXBlLmxvYWRSYW5nZT1mdW5jdGlvbih0LGUscil7aWYoMjU2KmU+NjU1MzUpcmV0dXJuIHIoImdseXBocyA+IDY1NTM1IG5vdCBzdXBwb3J0ZWQiKTt2b2lkIDA9PT10aGlzLmxvYWRpbmdbdF0mJih0aGlzLmxvYWRpbmdbdF09e30pO3ZhciBuPXRoaXMubG9hZGluZ1t0XTtpZihuW2VdKW5bZV0ucHVzaChyKTtlbHNle25bZV09W3JdO3ZhciBpPTI1NiplKyItIisoMjU2KmUrMjU1KSxhPW8odCxpLHRoaXMudXJsKTtzKGEsZnVuY3Rpb24odCxyKXtmb3IodmFyIGk9IXQmJm5ldyBsKG5ldyBjKG5ldyBVaW50OEFycmF5KHIpKSksbz0wO288bltlXS5sZW5ndGg7bysrKW5bZV1bb10odCxlLGkpO2RlbGV0ZSBuW2VdfSl9fSxuLnByb3RvdHlwZS5nZXRHbHlwaEF0bGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmF0bGFzZXNbdF19fSx7Ii4uL3N5bWJvbC9nbHlwaF9hdGxhcyI6MzIyLCIuLi91dGlsL2FqYXgiOjM0OSwiLi4vdXRpbC9nbHlwaHMiOjM1OSwiLi4vdXRpbC9tYXBib3giOjM2MyxwYmY6NDIyfV0sMzI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbihuKXtjLnB1c2godFtuXSksaC5wdXNoKHJbbl0pLGYucHVzaChlW25dKSxwKyt9ZnVuY3Rpb24gaSh0LGUscil7dmFyIG49dVt0XTtyZXR1cm4gZGVsZXRlIHVbdF0sdVtlXT1uLGhbbl1bMF0ucG9wKCksaFtuXVswXT1oW25dWzBdLmNvbmNhdChyWzBdKSxufWZ1bmN0aW9uIG8odCxlLHIpe3ZhciBuPWxbZV07cmV0dXJuIGRlbGV0ZSBsW2VdLGxbdF09bixoW25dWzBdLnNoaWZ0KCksaFtuXVswXT1yWzBdLmNvbmNhdChoW25dWzBdKSxufWZ1bmN0aW9uIGEodCxlLHIpe3ZhciBuPXI/ZVswXVtlWzBdLmxlbmd0aC0xXTplWzBdWzBdO3JldHVybiB0KyI6IituLngrIjoiK24ueX12YXIgcyxsPXt9LHU9e30sYz1bXSxoPVtdLGY9W10scD0wO2ZvcihzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBkPXJbc10sbT1lW3NdO2lmKG0pe3ZhciBnPWEobSxkKSx2PWEobSxkLCEwKTtpZihnIGluIHUmJnYgaW4gbCYmdVtnXSE9PWxbdl0pe3ZhciB5PW8oZyx2LGQpLGI9aShnLHYsaFt5XSk7ZGVsZXRlIGxbZ10sZGVsZXRlIHVbdl0sdVthKG0saFtiXSwhMCldPWIsaFt5XT1udWxsfWVsc2UgZyBpbiB1P2koZyx2LGQpOnYgaW4gbD9vKGcsdixkKToobihzKSxsW2ddPXAtMSx1W3ZdPXAtMSl9ZWxzZSBuKHMpfXJldHVybntmZWF0dXJlczpjLHRleHRGZWF0dXJlczpmLGdlb21ldHJpZXM6aH19fSx7fV0sMzI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixpLG8sYSxzLGwsdSl7dGhpcy5hbmNob3JQb2ludD10LHRoaXMudGw9ZSx0aGlzLnRyPXIsdGhpcy5ibD1uLHRoaXMuYnI9aSx0aGlzLnRleD1vLHRoaXMuYW5jaG9yQW5nbGU9YSx0aGlzLmdseXBoQW5nbGU9cyx0aGlzLm1pblNjYWxlPWwsdGhpcy5tYXhTY2FsZT11fWZ1bmN0aW9uIGkodCxlLHIsaSxvLGEsdSxjLGgpe3ZhciBmLHAsZCxtLGc9ZS5pbWFnZS5yZWN0LHY9by5sYXlvdXQseT0xLGI9ZS5sZWZ0LXkseD1iK2cudy9lLmltYWdlLnBpeGVsUmF0aW8sXz1lLnRvcC15LHc9XytnLmgvZS5pbWFnZS5waXhlbFJhdGlvO2lmKCJub25lIiE9PXZbImljb24tdGV4dC1maXQiXSYmdSl7dmFyIE09eC1iLGs9dy1fLEE9dlsidGV4dC1zaXplIl0vMjQsVD11LmxlZnQqQSxFPXUucmlnaHQqQSxTPXUudG9wKkEsTD11LmJvdHRvbSpBLHo9RS1ULEk9TC1TLFA9dlsiaWNvbi10ZXh0LWZpdC1wYWRkaW5nIl1bMF0sQz12WyJpY29uLXRleHQtZml0LXBhZGRpbmciXVsxXSxSPXZbImljb24tdGV4dC1maXQtcGFkZGluZyJdWzJdLGo9dlsiaWNvbi10ZXh0LWZpdC1wYWRkaW5nIl1bM10sRD0id2lkdGgiPT09dlsiaWNvbi10ZXh0LWZpdCJdPy41KihJLWspOjAsTz0iaGVpZ2h0Ij09PXZbImljb24tdGV4dC1maXQiXT8uNSooei1NKTowLEY9IndpZHRoIj09PXZbImljb24tdGV4dC1maXQiXXx8ImJvdGgiPT09dlsiaWNvbi10ZXh0LWZpdCJdP3o6TSxOPSJoZWlnaHQiPT09dlsiaWNvbi10ZXh0LWZpdCJdfHwiYm90aCI9PT12WyJpY29uLXRleHQtZml0Il0/STprO2Y9bmV3IHMoVCtPLWosUytELVApLHA9bmV3IHMoVCtPK0MrRixTK0QtUCksZD1uZXcgcyhUK08rQytGLFMrRCtSK04pLG09bmV3IHMoVCtPLWosUytEK1IrTil9ZWxzZSBmPW5ldyBzKGIsXykscD1uZXcgcyh4LF8pLGQ9bmV3IHMoeCx3KSxtPW5ldyBzKGIsdyk7dmFyIEI9by5nZXRMYXlvdXRWYWx1ZSgiaWNvbi1yb3RhdGUiLGMsaCkqTWF0aC5QSS8xODA7aWYoYSl7dmFyIFU9aVt0LnNlZ21lbnRdO2lmKHQueT09PVUueSYmdC54PT09VS54JiZ0LnNlZ21lbnQrMTxpLmxlbmd0aCl7dmFyIFY9aVt0LnNlZ21lbnQrMV07Qis9TWF0aC5hdGFuMih0LnktVi55LHQueC1WLngpK01hdGguUEl9ZWxzZSBCKz1NYXRoLmF0YW4yKHQueS1VLnksdC54LVUueCl9aWYoQil7dmFyIHE9TWF0aC5zaW4oQiksRz1NYXRoLmNvcyhCKSxIPVtHLC1xLHEsR107Zj1mLm1hdE11bHQoSCkscD1wLm1hdE11bHQoSCksbT1tLm1hdE11bHQoSCksZD1kLm1hdE11bHQoSCl9cmV0dXJuW25ldyBuKG5ldyBzKHQueCx0LnkpLGYscCxtLGQsZS5pbWFnZS5yZWN0LDAsMCxsLDEvMCldfWZ1bmN0aW9uIG8odCxlLHIsaSxvLHUpe2Zvcih2YXIgYz1vLmxheW91dFsidGV4dC1yb3RhdGUiXSpNYXRoLlBJLzE4MCxoPW8ubGF5b3V0WyJ0ZXh0LWtlZXAtdXByaWdodCJdLGY9ZS5wb3NpdGlvbmVkR2x5cGhzLHA9W10sZD0wO2Q8Zi5sZW5ndGg7ZCsrKXt2YXIgbT1mW2RdLGc9bS5nbHlwaCx2PWcucmVjdDtpZih2KXt2YXIgeSxiPShtLngrZy5hZHZhbmNlLzIpKnIseD1sO3U/KHk9W10seD1hKHksdCxiLGksdC5zZWdtZW50LCEwKSxoJiYoeD1NYXRoLm1pbih4LGEoeSx0LGIsaSx0LnNlZ21lbnQsITEpKSkpOnk9W3thbmNob3JQb2ludDpuZXcgcyh0LngsdC55KSxvZmZzZXQ6MCxhbmdsZTowLG1heFNjYWxlOjEvMCxtaW5TY2FsZTpsfV07Zm9yKHZhciBfPW0ueCtnLmxlZnQsdz1tLnktZy50b3AsTT1fK3YudyxrPXcrdi5oLEE9bmV3IHMoXyx3KSxUPW5ldyBzKE0sdyksRT1uZXcgcyhfLGspLFM9bmV3IHMoTSxrKSxMPTA7TDx5Lmxlbmd0aDtMKyspe3ZhciB6PXlbTF0sST1BLFA9VCxDPUUsUj1TO2lmKGMpe3ZhciBqPU1hdGguc2luKGMpLEQ9TWF0aC5jb3MoYyksTz1bRCwtaixqLERdO0k9SS5tYXRNdWx0KE8pLFA9UC5tYXRNdWx0KE8pLEM9Qy5tYXRNdWx0KE8pLFI9Ui5tYXRNdWx0KE8pfXZhciBGPU1hdGgubWF4KHoubWluU2NhbGUseCksTj0odC5hbmdsZSt6Lm9mZnNldCsyKk1hdGguUEkpJSgyKk1hdGguUEkpLEI9KHouYW5nbGUrei5vZmZzZXQrMipNYXRoLlBJKSUoMipNYXRoLlBJKTtwLnB1c2gobmV3IG4oei5hbmNob3JQb2ludCxJLFAsQyxSLHYsTixCLEYsei5tYXhTY2FsZSkpfX19cmV0dXJuIHB9ZnVuY3Rpb24gYSh0LGUscixuLGksbyl7dmFyIGE9IW87MD5yJiYobz0hbyksbyYmaSsrO3ZhciB1PW5ldyBzKGUueCxlLnkpLGM9bltpXSxoPTEvMDtyPU1hdGguYWJzKHIpO2Zvcih2YXIgZj1sOzspe3ZhciBwPXUuZGlzdChjKSxkPXIvcCxtPU1hdGguYXRhbjIoYy55LXUueSxjLngtdS54KTtpZihvfHwobSs9TWF0aC5QSSksdC5wdXNoKHthbmNob3JQb2ludDp1LG9mZnNldDphP01hdGguUEk6MCxtaW5TY2FsZTpkLG1heFNjYWxlOmgsYW5nbGU6KG0rMipNYXRoLlBJKSUoMipNYXRoLlBJKX0pLGY+PWQpYnJlYWs7Zm9yKHU9Yzt1LmVxdWFscyhjKTspaWYoaSs9bz8xOi0xLGM9bltpXSwhYylyZXR1cm4gZDt2YXIgZz1jLnN1Yih1KS5fdW5pdCgpO3U9dS5zdWIoZy5fbXVsdChwKSksaD1kfXJldHVybiBmfXZhciBzPXQoInBvaW50LWdlb21ldHJ5Iik7ZS5leHBvcnRzPXtnZXRJY29uUXVhZHM6aSxnZXRHbHlwaFF1YWRzOm8sU3ltYm9sUXVhZDpufTt2YXIgbD0uNX0seyJwb2ludC1nZW9tZXRyeSI6NDI0fV0sMzI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe2Zvcih2YXIgbj1bXSxvPTAsYT10Lmxlbmd0aDthPm87bysrKXt2YXIgcz1pKHRbb10ucHJvcGVydGllcyxlWyJ0ZXh0LWZpZWxkIl0pO2lmKHMpe3M9cy50b1N0cmluZygpO3ZhciBsPWVbInRleHQtdHJhbnNmb3JtIl07InVwcGVyY2FzZSI9PT1sP3M9cy50b0xvY2FsZVVwcGVyQ2FzZSgpOiJsb3dlcmNhc2UiPT09bCYmKHM9cy50b0xvY2FsZUxvd2VyQ2FzZSgpKTtmb3IodmFyIHU9MDt1PHMubGVuZ3RoO3UrKylyW3MuY2hhckNvZGVBdCh1KV09ITA7bltvXT1zfWVsc2UgbltvXT1udWxsfXJldHVybiBufXZhciBpPXQoIi4uL3V0aWwvdG9rZW4iKTtlLmV4cG9ydHM9bn0seyIuLi91dGlsL3Rva2VuIjozNjV9XSwzMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLmNvZGVQb2ludD10LHRoaXMueD1lLHRoaXMueT1yLHRoaXMuZ2x5cGg9bn1mdW5jdGlvbiBpKHQsZSxyLG4saSxvKXt0aGlzLnBvc2l0aW9uZWRHbHlwaHM9dCx0aGlzLnRleHQ9ZSx0aGlzLnRvcD1yLHRoaXMuYm90dG9tPW4sdGhpcy5sZWZ0PWksdGhpcy5yaWdodD1vfWZ1bmN0aW9uIG8odCxlLHIsbyxzLGwsdSxjLGgpe2Zvcih2YXIgZj1bXSxwPW5ldyBpKGYsdCxoWzFdLGhbMV0saFswXSxoWzBdKSxkPS0xNyxtPTAsZz1kLHY9MDt2PHQubGVuZ3RoO3YrKyl7dmFyIHk9dC5jaGFyQ29kZUF0KHYpLGI9ZVt5XTtiJiYoZi5wdXNoKG5ldyBuKHksbSxnLGIpKSxtKz1iLmFkdmFuY2UrYyl9cmV0dXJuIGYubGVuZ3RoPyhhKHAsZSxvLHIscyxsLHUsaCkscCk6ITF9ZnVuY3Rpb24gYSh0LGUscixuLGksbyxhLHUpe3ZhciBjPW51bGwscD0wLGQ9MCxtPTAsZz0wLHY9dC5wb3NpdGlvbmVkR2x5cGhzO2lmKG4pZm9yKHZhciB5PTA7eTx2Lmxlbmd0aDt5Kyspe3ZhciBiPXZbeV07aWYoYi54LT1wLGIueSs9ciptLGIueD5uJiZudWxsIT09Yyl7dmFyIHg9dltjKzFdLng7Zz1NYXRoLm1heCh4LGcpO2Zvcih2YXIgXz1jKzE7eT49XztfKyspdltfXS55Kz1yLHZbX10ueC09eDtpZihhKXt2YXIgdz1jO2hbdltjXS5jb2RlUG9pbnRdJiZ3LS0scyh2LGUsZCx3LGEpfWQ9YysxLGM9bnVsbCxwKz14LG0rK31mW2IuY29kZVBvaW50XSYmKGM9eSl9dmFyIE09dlt2Lmxlbmd0aC0xXSxrPU0ueCtlW00uY29kZVBvaW50XS5hZHZhbmNlO2c9TWF0aC5tYXgoZyxrKTt2YXIgQT0obSsxKSpyO3ModixlLGQsdi5sZW5ndGgtMSxhKSxsKHYsYSxpLG8sZyxyLG0sdSksdC50b3ArPS1vKkEsdC5ib3R0b209dC50b3ArQSx0LmxlZnQrPS1pKmcsdC5yaWdodD10LmxlZnQrZ31mdW5jdGlvbiBzKHQsZSxyLG4saSl7Zm9yKHZhciBvPWVbdFtuXS5jb2RlUG9pbnRdLmFkdmFuY2UsYT0odFtuXS54K28pKmkscz1yO24+PXM7cysrKXRbc10ueC09YX1mdW5jdGlvbiBsKHQsZSxyLG4saSxvLGEscyl7Zm9yKHZhciBsPShlLXIpKmkrc1swXSx1PSgtbiooYSsxKSsuNSkqbytzWzFdLGM9MDtjPHQubGVuZ3RoO2MrKyl0W2NdLngrPWwsdFtjXS55Kz11fWZ1bmN0aW9uIHUodCxlKXtpZighdHx8IXQucmVjdClyZXR1cm4gbnVsbDt2YXIgcj1lWyJpY29uLW9mZnNldCJdWzBdLG49ZVsiaWNvbi1vZmZzZXQiXVsxXSxpPXItdC53aWR0aC8yLG89aSt0LndpZHRoLGE9bi10LmhlaWdodC8yLHM9YSt0LmhlaWdodDtyZXR1cm4gbmV3IGModCxhLHMsaSxvKX1mdW5jdGlvbiBjKHQsZSxyLG4saSl7dGhpcy5pbWFnZT10LHRoaXMudG9wPWUsdGhpcy5ib3R0b209cix0aGlzLmxlZnQ9bix0aGlzLnJpZ2h0PWl9ZS5leHBvcnRzPXtzaGFwZVRleHQ6byxzaGFwZUljb246dX07dmFyIGg9ezMyOiEwLDgyMDM6ITB9LGY9ezMyOiEwLDM4OiEwLDQzOiEwLDQ1OiEwLDQ3OiEwLDE3MzohMCwxODM6ITAsODIwMzohMCw4MjA4OiEwLDgyMTE6ITB9fSx7fV0sMzI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLndpZHRoPXQsdGhpcy5oZWlnaHQ9ZSx0aGlzLmJpbj1uZXcgYSh0LGUpLHRoaXMuaW1hZ2VzPXt9LHRoaXMuZGF0YT0hMSx0aGlzLnRleHR1cmU9MCx0aGlzLmZpbHRlcj0wLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuZGlydHk9ITB9ZnVuY3Rpb24gaSh0LGUscixuLGksbyxhLHMsbCx1LGMpe3ZhciBoLGYscD1uKmUrcixkPXMqbythO2lmKGMpZm9yKGQtPW8sZj0tMTt1Pj1mO2YrKyxwPSgoZit1KSV1K24pKmUrcixkKz1vKWZvcihoPS0xO2w+PWg7aCsrKWlbZCtoXT10W3ArKGgrbCklbF07ZWxzZSBmb3IoZj0wO3U+ZjtmKysscCs9ZSxkKz1vKWZvcihoPTA7bD5oO2grKylpW2QraF09dFtwK2hdfWZ1bmN0aW9uIG8odCxlLHIsbixpKXt0aGlzLnJlY3Q9dCx0aGlzLndpZHRoPWUsdGhpcy5oZWlnaHQ9cix0aGlzLnNkZj1uLHRoaXMucGl4ZWxSYXRpbz1pfXZhciBhPXQoInNoZWxmLXBhY2siKSxzPXQoIi4uL3V0aWwvYnJvd3NlciIpLGw9dCgiLi4vdXRpbC91dGlsIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUuYWxsb2NhdGVJbWFnZT1mdW5jdGlvbih0LGUpe3QvPXRoaXMucGl4ZWxSYXRpbyxlLz10aGlzLnBpeGVsUmF0aW87dmFyIHI9MixuPXQrcisoNC0odCtyKSU0KSxpPWUrcisoNC0oZStyKSU0KSxvPXRoaXMuYmluLnBhY2tPbmUobixpKTtyZXR1cm4gbz9vOihsLndhcm5PbmNlKCJTcHJpdGVBdGxhcyBvdXQgb2Ygc3BhY2UuIiksbnVsbCl9LG4ucHJvdG90eXBlLmdldEltYWdlPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5pbWFnZXNbdF0pcmV0dXJuIHRoaXMuaW1hZ2VzW3RdO2lmKCF0aGlzLnNwcml0ZSlyZXR1cm4gbnVsbDt2YXIgcj10aGlzLnNwcml0ZS5nZXRTcHJpdGVQb3NpdGlvbih0KTtpZighci53aWR0aHx8IXIuaGVpZ2h0KXJldHVybiBudWxsO3ZhciBuPXRoaXMuYWxsb2NhdGVJbWFnZShyLndpZHRoLHIuaGVpZ2h0KTtpZighbilyZXR1cm4gbnVsbDt2YXIgaT1uZXcgbyhuLHIud2lkdGgvci5waXhlbFJhdGlvLHIuaGVpZ2h0L3IucGl4ZWxSYXRpbyxyLnNkZixyLnBpeGVsUmF0aW8vdGhpcy5waXhlbFJhdGlvKTtyZXR1cm4gdGhpcy5pbWFnZXNbdF09aSx0aGlzLmNvcHkobixyLGUpLGl9LG4ucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5nZXRJbWFnZSh0LGUpLG49ciYmci5yZWN0O2lmKCFuKXJldHVybiBudWxsO3ZhciBpPXIud2lkdGgqci5waXhlbFJhdGlvLG89ci5oZWlnaHQqci5waXhlbFJhdGlvLGE9MTtyZXR1cm57c2l6ZTpbci53aWR0aCxyLmhlaWdodF0sdGw6WyhuLngrYSkvdGhpcy53aWR0aCwobi55K2EpL3RoaXMuaGVpZ2h0XSxicjpbKG4ueCthK2kpL3RoaXMud2lkdGgsKG4ueSthK28pL3RoaXMuaGVpZ2h0XX19LG4ucHJvdG90eXBlLmFsbG9jYXRlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuZGF0YSl7dmFyIHQ9TWF0aC5mbG9vcih0aGlzLndpZHRoKnRoaXMucGl4ZWxSYXRpbyksZT1NYXRoLmZsb29yKHRoaXMuaGVpZ2h0KnRoaXMucGl4ZWxSYXRpbyk7dGhpcy5kYXRhPW5ldyBVaW50MzJBcnJheSh0KmUpO2Zvcih2YXIgcj0wO3I8dGhpcy5kYXRhLmxlbmd0aDtyKyspdGhpcy5kYXRhW3JdPTB9fSxuLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLnNwcml0ZS5pbWcuZGF0YSl7dmFyIG49bmV3IFVpbnQzMkFycmF5KHRoaXMuc3ByaXRlLmltZy5kYXRhLmJ1ZmZlcik7dGhpcy5hbGxvY2F0ZSgpO3ZhciBvPXRoaXMuZGF0YSxhPTE7aShuLHRoaXMuc3ByaXRlLmltZy53aWR0aCxlLngsZS55LG8sdGhpcy53aWR0aCp0aGlzLnBpeGVsUmF0aW8sKHQueCthKSp0aGlzLnBpeGVsUmF0aW8sKHQueSthKSp0aGlzLnBpeGVsUmF0aW8sZS53aWR0aCxlLmhlaWdodCxyKSx0aGlzLmRpcnR5PSEwfX0sbi5wcm90b3R5cGUuc2V0U3ByaXRlPWZ1bmN0aW9uKHQpe3QmJih0aGlzLnBpeGVsUmF0aW89cy5kZXZpY2VQaXhlbFJhdGlvPjE/MjoxLHRoaXMuY2FudmFzJiYodGhpcy5jYW52YXMud2lkdGg9dGhpcy53aWR0aCp0aGlzLnBpeGVsUmF0aW8sdGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuaGVpZ2h0KnRoaXMucGl4ZWxSYXRpbykpLHRoaXMuc3ByaXRlPXR9LG4ucHJvdG90eXBlLmFkZEljb25zPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspdGhpcy5nZXRJbWFnZSh0W3JdKTtlKG51bGwsdGhpcy5pbWFnZXMpfSxuLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ITE7dGhpcy50ZXh0dXJlP3QuYmluZFRleHR1cmUodC5URVhUVVJFXzJELHRoaXMudGV4dHVyZSk6KHRoaXMudGV4dHVyZT10LmNyZWF0ZVRleHR1cmUoKSx0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCx0aGlzLnRleHR1cmUpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfUyx0LkNMQU1QX1RPX0VER0UpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX1dSQVBfVCx0LkNMQU1QX1RPX0VER0UpLHI9ITApO3ZhciBuPWU/dC5MSU5FQVI6dC5ORUFSRVNUO24hPT10aGlzLmZpbHRlciYmKHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX01JTl9GSUxURVIsbiksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfTUFHX0ZJTFRFUixuKSx0aGlzLmZpbHRlcj1uKSx0aGlzLmRpcnR5JiYodGhpcy5hbGxvY2F0ZSgpLHI/dC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLHQuUkdCQSx0aGlzLndpZHRoKnRoaXMucGl4ZWxSYXRpbyx0aGlzLmhlaWdodCp0aGlzLnBpeGVsUmF0aW8sMCx0LlJHQkEsdC5VTlNJR05FRF9CWVRFLG5ldyBVaW50OEFycmF5KHRoaXMuZGF0YS5idWZmZXIpKTp0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELDAsMCwwLHRoaXMud2lkdGgqdGhpcy5waXhlbFJhdGlvLHRoaXMuaGVpZ2h0KnRoaXMucGl4ZWxSYXRpbyx0LlJHQkEsdC5VTlNJR05FRF9CWVRFLG5ldyBVaW50OEFycmF5KHRoaXMuZGF0YS5idWZmZXIpKSx0aGlzLmRpcnR5PSExKX19LHsiLi4vdXRpbC9icm93c2VyIjozNTAsIi4uL3V0aWwvdXRpbCI6MzY2LCJzaGVsZi1wYWNrIjo0Mjd9XSwzMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiKSxpPXQoIi4uL3V0aWwvdXRpbCIpLG89dCgicG9pbnQtZ2VvbWV0cnkiKSxhPWUuZXhwb3J0cz1uZXcgbih7bWVtYmVyczpbe3R5cGU6IlVpbnQxNiIsbmFtZToidGV4dEJveFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ0ZXh0Qm94RW5kSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJpY29uQm94U3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imljb25Cb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6ImdseXBoUXVhZFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJnbHlwaFF1YWRFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imljb25RdWFkU3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imljb25RdWFkRW5kSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclBvaW50WCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToiYW5jaG9yUG9pbnRZIn0se3R5cGU6IkludDgiLG5hbWU6ImluZGV4In1dfSk7aS5leHRlbmRBbGwoYS5wcm90b3R5cGUuU3RydWN0VHlwZS5wcm90b3R5cGUse2dldCBhbmNob3JQb2ludCgpe3JldHVybiBuZXcgbyh0aGlzLmFuY2hvclBvaW50WCx0aGlzLmFuY2hvclBvaW50WSl9fSl9LHsiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiOjM2NCwiLi4vdXRpbC91dGlsIjozNjYsInBvaW50LWdlb21ldHJ5Ijo0MjR9XSwzMzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiKSxpPXQoIi4uL3V0aWwvdXRpbCIpLG89dCgicG9pbnQtZ2VvbWV0cnkiKSxhPXQoIi4vcXVhZHMiKS5TeW1ib2xRdWFkLHM9ZS5leHBvcnRzPW5ldyBuKHttZW1iZXJzOlt7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclBvaW50WCJ9LHt0eXBlOiJJbnQxNiIsbmFtZToiYW5jaG9yUG9pbnRZIn0se3R5cGU6IkZsb2F0MzIiLG5hbWU6InRsWCJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJ0bFkifSx7dHlwZToiRmxvYXQzMiIsbmFtZToidHJYIn0se3R5cGU6IkZsb2F0MzIiLG5hbWU6InRyWSJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJibFgifSx7dHlwZToiRmxvYXQzMiIsbmFtZToiYmxZIn0se3R5cGU6IkZsb2F0MzIiLG5hbWU6ImJyWCJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJiclkifSx7dHlwZToiSW50MTYiLG5hbWU6InRleEgifSx7dHlwZToiSW50MTYiLG5hbWU6InRleFcifSx7dHlwZToiSW50MTYiLG5hbWU6InRleFgifSx7dHlwZToiSW50MTYiLG5hbWU6InRleFkifSx7dHlwZToiRmxvYXQzMiIsbmFtZToiYW5jaG9yQW5nbGUifSx7dHlwZToiRmxvYXQzMiIsbmFtZToiZ2x5cGhBbmdsZSJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJtYXhTY2FsZSJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJtaW5TY2FsZSJ9XX0pO2kuZXh0ZW5kQWxsKHMucHJvdG90eXBlLlN0cnVjdFR5cGUucHJvdG90eXBlLHtnZXQgYW5jaG9yUG9pbnQoKXtyZXR1cm4gbmV3IG8odGhpcy5hbmNob3JQb2ludFgsdGhpcy5hbmNob3JQb2ludFkpfSxnZXQgU3ltYm9sUXVhZCgpe3JldHVybiBuZXcgYSh0aGlzLmFuY2hvclBvaW50LG5ldyBvKHRoaXMudGxYLHRoaXMudGxZKSxuZXcgbyh0aGlzLnRyWCx0aGlzLnRyWSksbmV3IG8odGhpcy5ibFgsdGhpcy5ibFkpLG5ldyBvKHRoaXMuYnJYLHRoaXMuYnJZKSx7eDp0aGlzLnRleFgseTp0aGlzLnRleFksaDp0aGlzLnRleEgsdzp0aGlzLnRleFcsaGVpZ2h0OnRoaXMudGV4SCx3aWR0aDp0aGlzLnRleFd9LHRoaXMuYW5jaG9yQW5nbGUsdGhpcy5nbHlwaEFuZ2xlLHRoaXMubWluU2NhbGUsdGhpcy5tYXhTY2FsZSl9fSl9LHsiLi4vdXRpbC9zdHJ1Y3RfYXJyYXkiOjM2NCwiLi4vdXRpbC91dGlsIjozNjYsIi4vcXVhZHMiOjMyNSwicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDMzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi91dGlsL2RvbSIpLGk9dCgicG9pbnQtZ2VvbWV0cnkiKSxvPXtzY3JvbGxab29tOnQoIi4vaGFuZGxlci9zY3JvbGxfem9vbSIpLGJveFpvb206dCgiLi9oYW5kbGVyL2JveF96b29tIiksZHJhZ1JvdGF0ZTp0KCIuL2hhbmRsZXIvZHJhZ19yb3RhdGUiKSxkcmFnUGFuOnQoIi4vaGFuZGxlci9kcmFnX3BhbiIpLGtleWJvYXJkOnQoIi4vaGFuZGxlci9rZXlib2FyZCIpLGRvdWJsZUNsaWNrWm9vbTp0KCIuL2hhbmRsZXIvZGJsY2xpY2tfem9vbSIpLHRvdWNoWm9vbVJvdGF0ZTp0KCIuL2hhbmRsZXIvdG91Y2hfem9vbV9yb3RhdGUiKX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0KXt2KCJtb3VzZW91dCIsdCl9ZnVuY3Rpb24gYShlKXt0LnN0b3AoKSxfPW4ubW91c2VQb3MoYixlKSx2KCJtb3VzZWRvd24iLGUpfWZ1bmN0aW9uIHMoZSl7dmFyIHI9dC5kcmFnUm90YXRlJiZ0LmRyYWdSb3RhdGUuaXNBY3RpdmUoKTt4JiYhciYmdigiY29udGV4dG1lbnUiLHgpLHg9bnVsbCx2KCJtb3VzZXVwIixlKX1mdW5jdGlvbiBsKGUpe2lmKCEodC5kcmFnUGFuJiZ0LmRyYWdQYW4uaXNBY3RpdmUoKXx8dC5kcmFnUm90YXRlJiZ0LmRyYWdSb3RhdGUuaXNBY3RpdmUoKSkpe2Zvcih2YXIgcj1lLnRvRWxlbWVudHx8ZS50YXJnZXQ7ciYmciE9PWI7KXI9ci5wYXJlbnROb2RlO3I9PT1iJiZ2KCJtb3VzZW1vdmUiLGUpfX1mdW5jdGlvbiB1KGUpe3Quc3RvcCgpLHkoInRvdWNoc3RhcnQiLGUpLCFlLnRvdWNoZXN8fGUudG91Y2hlcy5sZW5ndGg+MXx8KHc/KGNsZWFyVGltZW91dCh3KSx3PW51bGwsdigiZGJsY2xpY2siLGUpKTp3PXNldFRpbWVvdXQocCwzMDApKX1mdW5jdGlvbiBjKHQpe3koInRvdWNobW92ZSIsdCl9ZnVuY3Rpb24gaCh0KXt5KCJ0b3VjaGVuZCIsdCl9ZnVuY3Rpb24gZih0KXt5KCJ0b3VjaGNhbmNlbCIsdCl9ZnVuY3Rpb24gcCgpe3c9bnVsbH1mdW5jdGlvbiBkKHQpe3ZhciBlPW4ubW91c2VQb3MoYix0KTtlLmVxdWFscyhfKSYmdigiY2xpY2siLHQpfWZ1bmN0aW9uIG0odCl7digiZGJsY2xpY2siLHQpLHQucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBnKHQpe3g9dCx0LnByZXZlbnREZWZhdWx0KCl9ZnVuY3Rpb24gdihlLHIpe3ZhciBpPW4ubW91c2VQb3MoYixyKTtyZXR1cm4gdC5maXJlKGUse2xuZ0xhdDp0LnVucHJvamVjdChpKSxwb2ludDppLG9yaWdpbmFsRXZlbnQ6cn0pfWZ1bmN0aW9uIHkoZSxyKXt2YXIgbz1uLnRvdWNoUG9zKGIsciksYT1vLnJlZHVjZShmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdC5hZGQoZS5kaXYobi5sZW5ndGgpKX0sbmV3IGkoMCwwKSk7cmV0dXJuIHQuZmlyZShlLHtsbmdMYXQ6dC51bnByb2plY3QoYSkscG9pbnQ6YSxsbmdMYXRzOm8ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LnVucHJvamVjdChlKX0sdGhpcykscG9pbnRzOm8sb3JpZ2luYWxFdmVudDpyfSl9dmFyIGI9dC5nZXRDYW52YXNDb250YWluZXIoKSx4PW51bGwsXz1udWxsLHc9bnVsbDtmb3IodmFyIE0gaW4gbyl0W01dPW5ldyBvW01dKHQsZSksZS5pbnRlcmFjdGl2ZSYmZVtNXSYmdFtNXS5lbmFibGUoKTtiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixyLCExKSxiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsYSwhMSksYi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixzLCExKSxiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsbCwhMSksYi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iix1LCExKSxiLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixoLCExKSxiLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsYywhMSksYi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZiwhMSksYi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZCwhMSksYi5hZGRFdmVudExpc3RlbmVyKCJkYmxjbGljayIsbSwhMSksYi5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZywhMSl9fSx7Ii4uL3V0aWwvZG9tIjozNTIsIi4vaGFuZGxlci9ib3hfem9vbSI6MzM3LCIuL2hhbmRsZXIvZGJsY2xpY2tfem9vbSI6MzM4LCIuL2hhbmRsZXIvZHJhZ19wYW4iOjMzOSwiLi9oYW5kbGVyL2RyYWdfcm90YXRlIjozNDAsIi4vaGFuZGxlci9rZXlib2FyZCI6MzQxLCIuL2hhbmRsZXIvc2Nyb2xsX3pvb20iOjM0MiwiLi9oYW5kbGVyL3RvdWNoX3pvb21fcm90YXRlIjozNDMsInBvaW50LWdlb21ldHJ5Ijo0MjR9XSwzMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbC91dGlsIiksaT10KCIuLi91dGlsL2ludGVycG9sYXRlIiksbz10KCIuLi91dGlsL2Jyb3dzZXIiKSxhPXQoIi4uL2dlby9sbmdfbGF0Iikscz10KCIuLi9nZW8vbG5nX2xhdF9ib3VuZHMiKSxsPXQoInBvaW50LWdlb21ldHJ5IiksdT1lLmV4cG9ydHM9ZnVuY3Rpb24oKXt9O24uZXh0ZW5kKHUucHJvdG90eXBlLHtnZXRDZW50ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0uY2VudGVyfSxzZXRDZW50ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5qdW1wVG8oe2NlbnRlcjp0fSxlKSx0aGlzfSxwYW5CeTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMucGFuVG8odGhpcy50cmFuc2Zvcm0uY2VudGVyLG4uZXh0ZW5kKHtvZmZzZXQ6bC5jb252ZXJ0KHQpLm11bHQoLTEpfSxlKSxyKSx0aGlzfSxwYW5UbzpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuZWFzZVRvKG4uZXh0ZW5kKHtjZW50ZXI6dH0sZSkscil9LGdldFpvb206ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0uem9vbX0sc2V0Wm9vbTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7em9vbTp0fSxlKSx0aGlzfSx6b29tVG86ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLmVhc2VUbyhuLmV4dGVuZCh7em9vbTp0fSxlKSxyKX0sem9vbUluOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuem9vbVRvKHRoaXMuZ2V0Wm9vbSgpKzEsdCxlKSx0aGlzfSx6b29tT3V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuem9vbVRvKHRoaXMuZ2V0Wm9vbSgpLTEsdCxlKSx0aGlzfSxnZXRCZWFyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLmJlYXJpbmd9LHNldEJlYXJpbmc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5qdW1wVG8oe2JlYXJpbmc6dH0sZSksdGhpc30scm90YXRlVG86ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLmVhc2VUbyhuLmV4dGVuZCh7YmVhcmluZzp0fSxlKSxyKX0scmVzZXROb3J0aDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnJvdGF0ZVRvKDAsbi5leHRlbmQoe2R1cmF0aW9uOjFlM30sdCksZSksdGhpc30sc25hcFRvTm9ydGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModGhpcy5nZXRCZWFyaW5nKCkpPHRoaXMuX2JlYXJpbmdTbmFwP3RoaXMucmVzZXROb3J0aCh0LGUpOnRoaXN9LGdldFBpdGNoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnBpdGNofSxzZXRQaXRjaDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7cGl0Y2g6dH0sZSksdGhpc30sZml0Qm91bmRzOmZ1bmN0aW9uKHQsZSxyKXtlPW4uZXh0ZW5kKHtwYWRkaW5nOjAsb2Zmc2V0OlswLDBdLG1heFpvb206MS8wfSxlKSx0PXMuY29udmVydCh0KTt2YXIgaT1sLmNvbnZlcnQoZS5vZmZzZXQpLG89dGhpcy50cmFuc2Zvcm0sYT1vLnByb2plY3QodC5nZXROb3J0aFdlc3QoKSksdT1vLnByb2plY3QodC5nZXRTb3V0aEVhc3QoKSksYz11LnN1YihhKSxoPShvLndpZHRoLTIqZS5wYWRkaW5nLTIqTWF0aC5hYnMoaS54KSkvYy54LGY9KG8uaGVpZ2h0LTIqZS5wYWRkaW5nLTIqTWF0aC5hYnMoaS55KSkvYy55O3JldHVybiBlLmNlbnRlcj1vLnVucHJvamVjdChhLmFkZCh1KS5kaXYoMikpLGUuem9vbT1NYXRoLm1pbihvLnNjYWxlWm9vbShvLnNjYWxlKk1hdGgubWluKGgsZikpLGUubWF4Wm9vbSksZS5iZWFyaW5nPTAsZS5saW5lYXI/dGhpcy5lYXNlVG8oZSxyKTp0aGlzLmZseVRvKGUscil9LGp1bXBUbzpmdW5jdGlvbih0LGUpe3RoaXMuc3RvcCgpO3ZhciByPXRoaXMudHJhbnNmb3JtLG49ITEsaT0hMSxvPSExO3JldHVybiJ6b29tImluIHQmJnIuem9vbSE9PSt0Lnpvb20mJihuPSEwLHIuem9vbT0rdC56b29tKSwiY2VudGVyImluIHQmJihyLmNlbnRlcj1hLmNvbnZlcnQodC5jZW50ZXIpKSwiYmVhcmluZyJpbiB0JiZyLmJlYXJpbmchPT0rdC5iZWFyaW5nJiYoaT0hMCxyLmJlYXJpbmc9K3QuYmVhcmluZyksInBpdGNoImluIHQmJnIucGl0Y2ghPT0rdC5waXRjaCYmKG89ITAsci5waXRjaD0rdC5waXRjaCksdGhpcy5maXJlKCJtb3Zlc3RhcnQiLGUpLmZpcmUoIm1vdmUiLGUpLG4mJnRoaXMuZmlyZSgiem9vbXN0YXJ0IixlKS5maXJlKCJ6b29tIixlKS5maXJlKCJ6b29tZW5kIixlKSxpJiZ0aGlzLmZpcmUoInJvdGF0ZSIsZSksbyYmdGhpcy5maXJlKCJwaXRjaCIsZSksdGhpcy5maXJlKCJtb3ZlZW5kIixlKX0sZWFzZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5zdG9wKCksdD1uLmV4dGVuZCh7b2Zmc2V0OlswLDBdLGR1cmF0aW9uOjUwMCxlYXNpbmc6bi5lYXNlfSx0KTt2YXIgcixvLHM9dGhpcy50cmFuc2Zvcm0sdT1sLmNvbnZlcnQodC5vZmZzZXQpLGM9dGhpcy5nZXRab29tKCksaD10aGlzLmdldEJlYXJpbmcoKSxmPXRoaXMuZ2V0UGl0Y2goKSxwPSJ6b29tImluIHQ/K3Quem9vbTpjLGQ9ImJlYXJpbmciaW4gdD90aGlzLl9ub3JtYWxpemVCZWFyaW5nKHQuYmVhcmluZyxoKTpoLG09InBpdGNoImluIHQ/K3QucGl0Y2g6ZjsiY2VudGVyImluIHQ/KHI9YS5jb252ZXJ0KHQuY2VudGVyKSxvPXMuY2VudGVyUG9pbnQuYWRkKHUpKToiYXJvdW5kImluIHQ/KHI9YS5jb252ZXJ0KHQuYXJvdW5kKSxvPXMubG9jYXRpb25Qb2ludChyKSk6KG89cy5jZW50ZXJQb2ludC5hZGQodSkscj1zLnBvaW50TG9jYXRpb24obykpO3ZhciBnPXMubG9jYXRpb25Qb2ludChyKTtyZXR1cm4gdC5hbmltYXRlPT09ITEmJih0LmR1cmF0aW9uPTApLHRoaXMuem9vbWluZz1wIT09Yyx0aGlzLnJvdGF0aW5nPWghPT1kLHRoaXMucGl0Y2hpbmc9bSE9PWYsdC5ub01vdmVTdGFydHx8dGhpcy5maXJlKCJtb3Zlc3RhcnQiLGUpLHRoaXMuem9vbWluZyYmdGhpcy5maXJlKCJ6b29tc3RhcnQiLGUpLGNsZWFyVGltZW91dCh0aGlzLl9vbkVhc2VFbmQpLHRoaXMuX2Vhc2UoZnVuY3Rpb24odCl7dGhpcy56b29taW5nJiYocy56b29tPWkoYyxwLHQpKSx0aGlzLnJvdGF0aW5nJiYocy5iZWFyaW5nPWkoaCxkLHQpKSx0aGlzLnBpdGNoaW5nJiYocy5waXRjaD1pKGYsbSx0KSkscy5zZXRMb2NhdGlvbkF0UG9pbnQocixnLmFkZChvLnN1YihnKS5fbXVsdCh0KSkpLHRoaXMuZmlyZSgibW92ZSIsZSksdGhpcy56b29taW5nJiZ0aGlzLmZpcmUoInpvb20iLGUpLHRoaXMucm90YXRpbmcmJnRoaXMuZmlyZSgicm90YXRlIixlKSx0aGlzLnBpdGNoaW5nJiZ0aGlzLmZpcmUoInBpdGNoIixlKX0sZnVuY3Rpb24oKXt0LmRlbGF5RW5kRXZlbnRzP3RoaXMuX29uRWFzZUVuZD1zZXRUaW1lb3V0KHRoaXMuX2Vhc2VUb0VuZC5iaW5kKHRoaXMsZSksdC5kZWxheUVuZEV2ZW50cyk6dGhpcy5fZWFzZVRvRW5kKGUpfS5iaW5kKHRoaXMpLHQpLHRoaXN9LF9lYXNlVG9FbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy56b29taW5nO3RoaXMuem9vbWluZz0hMSx0aGlzLnJvdGF0aW5nPSExLHRoaXMucGl0Y2hpbmc9ITEsZSYmdGhpcy5maXJlKCJ6b29tZW5kIix0KSx0aGlzLmZpcmUoIm1vdmVlbmQiLHQpfSxmbHlUbzpmdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIodCl7dmFyIGU9KEEqQS1rKmsrKHQ/LTE6MSkqTCpMKlQqVCkvKDIqKHQ/QTprKSpMKlQpO3JldHVybiBNYXRoLmxvZyhNYXRoLnNxcnQoZSplKzEpLWUpfWZ1bmN0aW9uIG8odCl7cmV0dXJuKE1hdGguZXhwKHQpLU1hdGguZXhwKC10KSkvMn1mdW5jdGlvbiBzKHQpe3JldHVybihNYXRoLmV4cCh0KStNYXRoLmV4cCgtdCkpLzJ9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gbyh0KS9zKHQpfXRoaXMuc3RvcCgpLHQ9bi5leHRlbmQoe29mZnNldDpbMCwwXSxzcGVlZDoxLjIsY3VydmU6MS40MixlYXNpbmc6bi5lYXNlfSx0KTt2YXIgYz10aGlzLnRyYW5zZm9ybSxoPWwuY29udmVydCh0Lm9mZnNldCksZj10aGlzLmdldFpvb20oKSxwPXRoaXMuZ2V0QmVhcmluZygpLGQ9dGhpcy5nZXRQaXRjaCgpLG09ImNlbnRlciJpbiB0P2EuY29udmVydCh0LmNlbnRlcik6dGhpcy5nZXRDZW50ZXIoKSxnPSJ6b29tImluIHQ/K3Quem9vbTpmLHY9ImJlYXJpbmciaW4gdD90aGlzLl9ub3JtYWxpemVCZWFyaW5nKHQuYmVhcmluZyxwKTpwLHk9InBpdGNoImluIHQ/K3QucGl0Y2g6ZDtNYXRoLmFicyhjLmNlbnRlci5sbmcpK01hdGguYWJzKG0ubG5nKT4xODAmJihjLmNlbnRlci5sbmc+MCYmbS5sbmc8MD9tLmxuZys9MzYwOmMuY2VudGVyLmxuZzwwJiZtLmxuZz4wJiYobS5sbmctPTM2MCkpO3ZhciBiPWMuem9vbVNjYWxlKGctZikseD1jLnBvaW50LF89ImNlbnRlciJpbiB0P2MucHJvamVjdChtKS5zdWIoaC5kaXYoYikpOngsdz1jLndvcmxkU2l6ZSxNPXQuY3VydmUsaz1NYXRoLm1heChjLndpZHRoLGMuaGVpZ2h0KSxBPWsvYixUPV8uc3ViKHgpLm1hZygpO2lmKCJtaW5ab29tImluIHQpe3ZhciBFPW4uY2xhbXAoTWF0aC5taW4odC5taW5ab29tLGYsZyksYy5taW5ab29tLGMubWF4Wm9vbSksUz1rL2Muem9vbVNjYWxlKEUtZik7TT1NYXRoLnNxcnQoUy9UKjIpfXZhciBMPU0qTSx6PXIoMCksST1mdW5jdGlvbih0KXtyZXR1cm4gcyh6KS9zKHorTSp0KX0sUD1mdW5jdGlvbih0KXtyZXR1cm4gayooKHMoeikqdSh6K00qdCktbyh6KSkvTCkvVH0sQz0ocigxKS16KS9NO2lmKE1hdGguYWJzKFQpPDFlLTYpe2lmKE1hdGguYWJzKGstQSk8MWUtNilyZXR1cm4gdGhpcy5lYXNlVG8odCk7dmFyIFI9az5BPy0xOjE7Qz1NYXRoLmFicyhNYXRoLmxvZyhBL2spKS9NLFA9ZnVuY3Rpb24oKXtyZXR1cm4gMH0sST1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5leHAoUipNKnQpfX1pZigiZHVyYXRpb24iaW4gdCl0LmR1cmF0aW9uPSt0LmR1cmF0aW9uO2Vsc2V7dmFyIGo9InNjcmVlblNwZWVkImluIHQ/K3Quc2NyZWVuU3BlZWQvTTordC5zcGVlZDt0LmR1cmF0aW9uPTFlMypDL2p9cmV0dXJuIHRoaXMuem9vbWluZz0hMCxwIT09diYmKHRoaXMucm90YXRpbmc9ITApLGQhPT15JiYodGhpcy5waXRjaGluZz0hMCksdGhpcy5maXJlKCJtb3Zlc3RhcnQiLGUpLHRoaXMuZmlyZSgiem9vbXN0YXJ0IixlKSx0aGlzLl9lYXNlKGZ1bmN0aW9uKHQpe3ZhciByPXQqQyxuPVAocik7Yy56b29tPWYrYy5zY2FsZVpvb20oMS9JKHIpKSxjLmNlbnRlcj1jLnVucHJvamVjdCh4LmFkZChfLnN1Yih4KS5tdWx0KG4pKSx3KSx0aGlzLnJvdGF0aW5nJiYoYy5iZWFyaW5nPWkocCx2LHQpKSx0aGlzLnBpdGNoaW5nJiYoYy5waXRjaD1pKGQseSx0KSksdGhpcy5maXJlKCJtb3ZlIixlKSx0aGlzLmZpcmUoInpvb20iLGUpLHRoaXMucm90YXRpbmcmJnRoaXMuZmlyZSgicm90YXRlIixlKSx0aGlzLnBpdGNoaW5nJiZ0aGlzLmZpcmUoInBpdGNoIixlKX0sZnVuY3Rpb24oKXt0aGlzLnpvb21pbmc9ITEsdGhpcy5yb3RhdGluZz0hMSx0aGlzLnBpdGNoaW5nPSExLHRoaXMuZmlyZSgiem9vbWVuZCIsZSksdGhpcy5maXJlKCJtb3ZlZW5kIixlKX0sdCksdGhpc30saXNFYXNpbmc6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2Fib3J0Rm59LHN0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWJvcnRGbiYmKHRoaXMuX2Fib3J0Rm4oKSx0aGlzLl9maW5pc2hFYXNlKCkpLHRoaXN9LF9lYXNlOmZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9maW5pc2hGbj1lLHRoaXMuX2Fib3J0Rm49by50aW1lZChmdW5jdGlvbihlKXt0LmNhbGwodGhpcyxyLmVhc2luZyhlKSksMT09PWUmJnRoaXMuX2ZpbmlzaEVhc2UoKX0sci5hbmltYXRlPT09ITE/MDpyLmR1cmF0aW9uLHRoaXMpfSxfZmluaXNoRWFzZTpmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLl9hYm9ydEZuO3ZhciB0PXRoaXMuX2ZpbmlzaEZuO2RlbGV0ZSB0aGlzLl9maW5pc2hGbix0LmNhbGwodGhpcyl9LF9ub3JtYWxpemVCZWFyaW5nOmZ1bmN0aW9uKHQsZSl7dD1uLndyYXAodCwtMTgwLDE4MCk7dmFyIHI9TWF0aC5hYnModC1lKTtyZXR1cm4gTWF0aC5hYnModC0zNjAtZSk8ciYmKHQtPTM2MCksTWF0aC5hYnModCszNjAtZSk8ciYmKHQrPTM2MCksdH0sX3VwZGF0ZUVhc2luZzpmdW5jdGlvbih0LGUscil7dmFyIGk7CmlmKHRoaXMuZWFzZSl7dmFyIG89dGhpcy5lYXNlLGE9KERhdGUubm93KCktby5zdGFydCkvby5kdXJhdGlvbixzPW8uZWFzaW5nKGErLjAxKS1vLmVhc2luZyhhKSxsPS4yNy9NYXRoLnNxcnQocypzKzFlLTQpKi4wMSx1PU1hdGguc3FydCguMDcyOS1sKmwpO2k9bi5iZXppZXIobCx1LC4yNSwxKX1lbHNlIGk9cj9uLmJlemllci5hcHBseShuLHIpOm4uZWFzZTtyZXR1cm4gdGhpcy5lYXNlPXtzdGFydDoobmV3IERhdGUpLmdldFRpbWUoKSx0bzpNYXRoLnBvdygyLGUpLGR1cmF0aW9uOnQsZWFzaW5nOml9LGl9fSl9LHsiLi4vZ2VvL2xuZ19sYXQiOjI2MywiLi4vZ2VvL2xuZ19sYXRfYm91bmRzIjoyNjQsIi4uL3V0aWwvYnJvd3NlciI6MzUwLCIuLi91dGlsL2ludGVycG9sYXRlIjozNjAsIi4uL3V0aWwvdXRpbCI6MzY2LCJwb2ludC1nZW9tZXRyeSI6NDI0fV0sMzMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7YS5zZXRPcHRpb25zKHRoaXMsdCl9dmFyIGk9dCgiLi9jb250cm9sIiksbz10KCIuLi8uLi91dGlsL2RvbSIpLGE9dCgiLi4vLi4vdXRpbC91dGlsIik7ZS5leHBvcnRzPW4sbi5jcmVhdGVBdHRyaWJ1dGlvblN0cmluZz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCl7dmFyIG49dFtyXTtuLmF0dHJpYnV0aW9uJiZlLmluZGV4T2Yobi5hdHRyaWJ1dGlvbik8MCYmZS5wdXNoKG4uYXR0cmlidXRpb24pfXJldHVybiBlLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9KSxlPWUuZmlsdGVyKGZ1bmN0aW9uKHQscil7Zm9yKHZhciBuPXIrMTtuPGUubGVuZ3RoO24rKylpZihlW25dLmluZGV4T2YodCk+PTApcmV0dXJuITE7cmV0dXJuITB9KSxlLmpvaW4oIiB8ICIpfSxuLnByb3RvdHlwZT1hLmluaGVyaXQoaSx7b3B0aW9uczp7cG9zaXRpb246ImJvdHRvbS1yaWdodCJ9LG9uQWRkOmZ1bmN0aW9uKHQpe3ZhciBlPSJtYXBib3hnbC1jdHJsLWF0dHJpYiIscj10aGlzLl9jb250YWluZXI9by5jcmVhdGUoImRpdiIsZSx0LmdldENvbnRhaW5lcigpKTtyZXR1cm4gdGhpcy5fdXBkYXRlKCksdC5vbigic291cmNlLmxvYWQiLHRoaXMuX3VwZGF0ZS5iaW5kKHRoaXMpKSx0Lm9uKCJzb3VyY2UuY2hhbmdlIix0aGlzLl91cGRhdGUuYmluZCh0aGlzKSksdC5vbigic291cmNlLnJlbW92ZSIsdGhpcy5fdXBkYXRlLmJpbmQodGhpcykpLHQub24oIm1vdmVlbmQiLHRoaXMuX3VwZGF0ZUVkaXRMaW5rLmJpbmQodGhpcykpLHJ9LF91cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9tYXAuc3R5bGUmJih0aGlzLl9jb250YWluZXIuaW5uZXJIVE1MPW4uY3JlYXRlQXR0cmlidXRpb25TdHJpbmcodGhpcy5fbWFwLnN0eWxlLnNvdXJjZXMpKSx0aGlzLl9lZGl0TGluaz10aGlzLl9jb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibWFwYm94LWltcHJvdmUtbWFwIilbMF0sdGhpcy5fdXBkYXRlRWRpdExpbmsoKX0sX3VwZGF0ZUVkaXRMaW5rOmZ1bmN0aW9uKCl7aWYodGhpcy5fZWRpdExpbmspe3ZhciB0PXRoaXMuX21hcC5nZXRDZW50ZXIoKTt0aGlzLl9lZGl0TGluay5ocmVmPSJodHRwczovL3d3dy5tYXBib3guY29tL21hcC1mZWVkYmFjay8jLyIrdC5sbmcrIi8iK3QubGF0KyIvIitNYXRoLnJvdW5kKHRoaXMuX21hcC5nZXRab29tKCkrMSl9fX0pfSx7Ii4uLy4uL3V0aWwvZG9tIjozNTIsIi4uLy4uL3V0aWwvdXRpbCI6MzY2LCIuL2NvbnRyb2wiOjMzNH1dLDMzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7fXZhciBpPXQoIi4uLy4uL3V0aWwvdXRpbCIpLG89dCgiLi4vLi4vdXRpbC9ldmVudGVkIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9e2FkZFRvOmZ1bmN0aW9uKHQpe3RoaXMuX21hcD10O3ZhciBlPXRoaXMuX2NvbnRhaW5lcj10aGlzLm9uQWRkKHQpO2lmKHRoaXMub3B0aW9ucyYmdGhpcy5vcHRpb25zLnBvc2l0aW9uKXt2YXIgcj10aGlzLm9wdGlvbnMucG9zaXRpb24sbj10Ll9jb250cm9sQ29ybmVyc1tyXTtlLmNsYXNzTmFtZSs9IiBtYXBib3hnbC1jdHJsIiwtMSE9PXIuaW5kZXhPZigiYm90dG9tIik/bi5pbnNlcnRCZWZvcmUoZSxuLmZpcnN0Q2hpbGQpOm4uYXBwZW5kQ2hpbGQoZSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9jb250YWluZXIpLHRoaXMub25SZW1vdmUmJnRoaXMub25SZW1vdmUodGhpcy5fbWFwKSx0aGlzLl9tYXA9bnVsbCx0aGlzfX0saS5leHRlbmQobi5wcm90b3R5cGUsbyl9LHsiLi4vLi4vdXRpbC9ldmVudGVkIjozNTgsIi4uLy4uL3V0aWwvdXRpbCI6MzY2fV0sMzM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cy5zZXRPcHRpb25zKHRoaXMsdCl9dmFyIGk9dCgiLi9jb250cm9sIiksbz10KCIuLi8uLi91dGlsL2Jyb3dzZXIiKSxhPXQoIi4uLy4uL3V0aWwvZG9tIikscz10KCIuLi8uLi91dGlsL3V0aWwiKTtlLmV4cG9ydHM9bjt2YXIgbD17ZW5hYmxlSGlnaEFjY3VyYWN5OiExLHRpbWVvdXQ6NmUzfTtuLnByb3RvdHlwZT1zLmluaGVyaXQoaSx7b3B0aW9uczp7cG9zaXRpb246InRvcC1yaWdodCJ9LG9uQWRkOmZ1bmN0aW9uKHQpe3ZhciBlPSJtYXBib3hnbC1jdHJsIixyPXRoaXMuX2NvbnRhaW5lcj1hLmNyZWF0ZSgiZGl2IixlKyItZ3JvdXAiLHQuZ2V0Q29udGFpbmVyKCkpO3JldHVybiBvLnN1cHBvcnRzR2VvbG9jYXRpb24/KHRoaXMuX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsdGhpcy5fb25Db250ZXh0TWVudS5iaW5kKHRoaXMpKSx0aGlzLl9nZW9sb2NhdGVCdXR0b249YS5jcmVhdGUoImJ1dHRvbiIsZSsiLWljb24gIitlKyItZ2VvbG9jYXRlIix0aGlzLl9jb250YWluZXIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi50eXBlPSJidXR0b24iLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbGlja0dlb2xvY2F0ZS5iaW5kKHRoaXMpKSxyKTpyfSxfb25Db250ZXh0TWVudTpmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCl9LF9vbkNsaWNrR2VvbG9jYXRlOmZ1bmN0aW9uKCl7bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbih0aGlzLl9zdWNjZXNzLmJpbmQodGhpcyksdGhpcy5fZXJyb3IuYmluZCh0aGlzKSxsKSx0aGlzLl90aW1lb3V0SWQ9c2V0VGltZW91dCh0aGlzLl9maW5pc2guYmluZCh0aGlzKSwxZTQpfSxfc3VjY2VzczpmdW5jdGlvbih0KXt0aGlzLl9tYXAuanVtcFRvKHtjZW50ZXI6W3QuY29vcmRzLmxvbmdpdHVkZSx0LmNvb3Jkcy5sYXRpdHVkZV0sem9vbToxNyxiZWFyaW5nOjAscGl0Y2g6MH0pLHRoaXMuZmlyZSgiZ2VvbG9jYXRlIix0KSx0aGlzLl9maW5pc2goKX0sX2Vycm9yOmZ1bmN0aW9uKHQpe3RoaXMuZmlyZSgiZXJyb3IiLHQpLHRoaXMuX2ZpbmlzaCgpfSxfZmluaXNoOmZ1bmN0aW9uKCl7dGhpcy5fdGltZW91dElkJiZjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dElkKSx0aGlzLl90aW1lb3V0SWQ9dm9pZCAwfX0pfSx7Ii4uLy4uL3V0aWwvYnJvd3NlciI6MzUwLCIuLi8uLi91dGlsL2RvbSI6MzUyLCIuLi8uLi91dGlsL3V0aWwiOjM2NiwiLi9jb250cm9sIjozMzR9XSwzMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtzLnNldE9wdGlvbnModGhpcyx0KX1mdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgTW91c2VFdmVudCh0LnR5cGUse2J1dHRvbjoyLGJ1dHRvbnM6MixidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsZGV0YWlsOnQuZGV0YWlsLHZpZXc6dC52aWV3LHNjcmVlblg6dC5zY3JlZW5YLHNjcmVlblk6dC5zY3JlZW5ZLGNsaWVudFg6dC5jbGllbnRYLGNsaWVudFk6dC5jbGllbnRZLG1vdmVtZW50WDp0Lm1vdmVtZW50WCxtb3ZlbWVudFk6dC5tb3ZlbWVudFksY3RybEtleTp0LmN0cmxLZXksc2hpZnRLZXk6dC5zaGlmdEtleSxhbHRLZXk6dC5hbHRLZXksbWV0YUtleTp0Lm1ldGFLZXl9KX12YXIgbz10KCIuL2NvbnRyb2wiKSxhPXQoIi4uLy4uL3V0aWwvZG9tIikscz10KCIuLi8uLi91dGlsL3V0aWwiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT1zLmluaGVyaXQobyx7b3B0aW9uczp7cG9zaXRpb246InRvcC1yaWdodCJ9LG9uQWRkOmZ1bmN0aW9uKHQpe3ZhciBlPSJtYXBib3hnbC1jdHJsIixyPXRoaXMuX2NvbnRhaW5lcj1hLmNyZWF0ZSgiZGl2IixlKyItZ3JvdXAiLHQuZ2V0Q29udGFpbmVyKCkpO3JldHVybiB0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLHRoaXMuX29uQ29udGV4dE1lbnUuYmluZCh0aGlzKSksdGhpcy5fem9vbUluQnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbihlKyItaWNvbiAiK2UrIi16b29tLWluIix0Lnpvb21Jbi5iaW5kKHQpKSx0aGlzLl96b29tT3V0QnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbihlKyItaWNvbiAiK2UrIi16b29tLW91dCIsdC56b29tT3V0LmJpbmQodCkpLHRoaXMuX2NvbXBhc3M9dGhpcy5fY3JlYXRlQnV0dG9uKGUrIi1pY29uICIrZSsiLWNvbXBhc3MiLHQucmVzZXROb3J0aC5iaW5kKHQpKSx0aGlzLl9jb21wYXNzQXJyb3c9YS5jcmVhdGUoImRpdiIsImFycm93Iix0aGlzLl9jb21wYXNzKSx0aGlzLl9jb21wYXNzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Db21wYXNzRG93bi5iaW5kKHRoaXMpKSx0aGlzLl9vbkNvbXBhc3NNb3ZlPXRoaXMuX29uQ29tcGFzc01vdmUuYmluZCh0aGlzKSx0aGlzLl9vbkNvbXBhc3NVcD10aGlzLl9vbkNvbXBhc3NVcC5iaW5kKHRoaXMpLHQub24oInJvdGF0ZSIsdGhpcy5fcm90YXRlQ29tcGFzc0Fycm93LmJpbmQodGhpcykpLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdygpLHRoaXMuX2VsPXQuZ2V0Q2FudmFzQ29udGFpbmVyKCkscn0sX29uQ29udGV4dE1lbnU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpfSxfb25Db21wYXNzRG93bjpmdW5jdGlvbih0KXswPT09dC5idXR0b24mJihhLmRpc2FibGVEcmFnKCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9vbkNvbXBhc3NNb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vbkNvbXBhc3NVcCksdGhpcy5fZWwuZGlzcGF0Y2hFdmVudChpKHQpKSx0LnN0b3BQcm9wYWdhdGlvbigpKX0sX29uQ29tcGFzc01vdmU6ZnVuY3Rpb24odCl7MD09PXQuYnV0dG9uJiYodGhpcy5fZWwuZGlzcGF0Y2hFdmVudChpKHQpKSx0LnN0b3BQcm9wYWdhdGlvbigpKX0sX29uQ29tcGFzc1VwOmZ1bmN0aW9uKHQpezA9PT10LmJ1dHRvbiYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fb25Db21wYXNzTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fb25Db21wYXNzVXApLGEuZW5hYmxlRHJhZygpLHRoaXMuX2VsLmRpc3BhdGNoRXZlbnQoaSh0KSksdC5zdG9wUHJvcGFnYXRpb24oKSl9LF9jcmVhdGVCdXR0b246ZnVuY3Rpb24odCxlKXt2YXIgcj1hLmNyZWF0ZSgiYnV0dG9uIix0LHRoaXMuX2NvbnRhaW5lcik7cmV0dXJuIHIudHlwZT0iYnV0dG9uIixyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2UoKX0pLHJ9LF9yb3RhdGVDb21wYXNzQXJyb3c6ZnVuY3Rpb24oKXt2YXIgdD0icm90YXRlKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5hbmdsZSooMTgwL01hdGguUEkpKyJkZWcpIjt0aGlzLl9jb21wYXNzQXJyb3cuc3R5bGUudHJhbnNmb3JtPXR9fSl9LHsiLi4vLi4vdXRpbC9kb20iOjM1MiwiLi4vLi4vdXRpbC91dGlsIjozNjYsIi4vY29udHJvbCI6MzM0fV0sMzM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5fbWFwPXQsdGhpcy5fZWw9dC5nZXRDYW52YXNDb250YWluZXIoKSx0aGlzLl9jb250YWluZXI9dC5nZXRDb250YWluZXIoKSxhLmJpbmRIYW5kbGVycyh0aGlzKX12YXIgaT10KCIuLi8uLi91dGlsL2RvbSIpLG89dCgiLi4vLi4vZ2VvL2xuZ19sYXRfYm91bmRzIiksYT10KCIuLi8uLi91dGlsL3V0aWwiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZT17X2VuYWJsZWQ6ITEsX2FjdGl2ZTohMSxpc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0saXNBY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRG93biwhMSksdGhpcy5fZW5hYmxlZD0hMCl9LGRpc2FibGU6ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpJiYodGhpcy5fZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRG93biksdGhpcy5fZW5hYmxlZD0hMSl9LF9vbk1vdXNlRG93bjpmdW5jdGlvbih0KXt0LnNoaWZ0S2V5JiYwPT09dC5idXR0b24mJihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlLCExKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleURvd24sITEpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX29uTW91c2VVcCwhMSksaS5kaXNhYmxlRHJhZygpLHRoaXMuX3N0YXJ0UG9zPWkubW91c2VQb3ModGhpcy5fZWwsdCksdGhpcy5fYWN0aXZlPSEwKX0sX29uTW91c2VNb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3N0YXJ0UG9zLHI9aS5tb3VzZVBvcyh0aGlzLl9lbCx0KTt0aGlzLl9ib3h8fCh0aGlzLl9ib3g9aS5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWJveHpvb20iLHRoaXMuX2NvbnRhaW5lciksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWNyb3NzaGFpciIpLHRoaXMuX2ZpcmVFdmVudCgiYm94em9vbXN0YXJ0Iix0KSk7dmFyIG49TWF0aC5taW4oZS54LHIueCksbz1NYXRoLm1heChlLngsci54KSxhPU1hdGgubWluKGUueSxyLnkpLHM9TWF0aC5tYXgoZS55LHIueSk7aS5zZXRUcmFuc2Zvcm0odGhpcy5fYm94LCJ0cmFuc2xhdGUoIituKyJweCwiK2ErInB4KSIpLHRoaXMuX2JveC5zdHlsZS53aWR0aD1vLW4rInB4Iix0aGlzLl9ib3guc3R5bGUuaGVpZ2h0PXMtYSsicHgifSxfb25Nb3VzZVVwOmZ1bmN0aW9uKHQpe2lmKDA9PT10LmJ1dHRvbil7dmFyIGU9dGhpcy5fc3RhcnRQb3Mscj1pLm1vdXNlUG9zKHRoaXMuX2VsLHQpLG49bmV3IG8odGhpcy5fbWFwLnVucHJvamVjdChlKSx0aGlzLl9tYXAudW5wcm9qZWN0KHIpKTt0aGlzLl9maW5pc2goKSxlLng9PT1yLngmJmUueT09PXIueT90aGlzLl9maXJlRXZlbnQoImJveHpvb21jYW5jZWwiLHQpOnRoaXMuX21hcC5maXRCb3VuZHMobix7bGluZWFyOiEwfSkuZmlyZSgiYm94em9vbWVuZCIse29yaWdpbmFsRXZlbnQ6dCxib3hab29tQm91bmRzOm59KX19LF9vbktleURvd246ZnVuY3Rpb24odCl7Mjc9PT10LmtleUNvZGUmJih0aGlzLl9maW5pc2goKSx0aGlzLl9maXJlRXZlbnQoImJveHpvb21jYW5jZWwiLHQpKX0sX2ZpbmlzaDpmdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlLCExKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleURvd24sITEpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX29uTW91c2VVcCwhMSksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWNyb3NzaGFpciIpLHRoaXMuX2JveCYmKHRoaXMuX2JveC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX2JveCksdGhpcy5fYm94PW51bGwpLGkuZW5hYmxlRHJhZygpfSxfZmlyZUV2ZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX21hcC5maXJlKHQse29yaWdpbmFsRXZlbnQ6ZX0pfX19LHsiLi4vLi4vZ2VvL2xuZ19sYXRfYm91bmRzIjoyNjQsIi4uLy4uL3V0aWwvZG9tIjozNTIsIi4uLy4uL3V0aWwvdXRpbCI6MzY2fV0sMzM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5fbWFwPXQsdGhpcy5fb25EYmxDbGljaz10aGlzLl9vbkRibENsaWNrLmJpbmQodGhpcyl9ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9e19lbmFibGVkOiExLGlzRW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmFibGVkfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fbWFwLm9uKCJkYmxjbGljayIsdGhpcy5fb25EYmxDbGljayksdGhpcy5fZW5hYmxlZD0hMCl9LGRpc2FibGU6ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpJiYodGhpcy5fbWFwLm9mZigiZGJsY2xpY2siLHRoaXMuX29uRGJsQ2xpY2spLHRoaXMuX2VuYWJsZWQ9ITEpfSxfb25EYmxDbGljazpmdW5jdGlvbih0KXt0aGlzLl9tYXAuem9vbVRvKHRoaXMuX21hcC5nZXRab29tKCkrKHQub3JpZ2luYWxFdmVudC5zaGlmdEtleT8tMToxKSx7YXJvdW5kOnQubG5nTGF0fSx0KX19fSx7fV0sMzM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5fbWFwPXQsdGhpcy5fZWw9dC5nZXRDYW52YXNDb250YWluZXIoKSxvLmJpbmRIYW5kbGVycyh0aGlzKX12YXIgaT10KCIuLi8uLi91dGlsL2RvbSIpLG89dCgiLi4vLi4vdXRpbC91dGlsIik7ZS5leHBvcnRzPW47dmFyIGE9LjMscz1vLmJlemllcigwLDAsYSwxKSxsPTE0MDAsdT0yNTAwO24ucHJvdG90eXBlPXtfZW5hYmxlZDohMSxfYWN0aXZlOiExLGlzRW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmFibGVkfSxpc0FjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9LGVuYWJsZTpmdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCl8fCh0aGlzLl9lbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX29uRG93biksdGhpcy5fZWwuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Eb3duKSx0aGlzLl9lbmFibGVkPSEwKX0sZGlzYWJsZTpmdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCkmJih0aGlzLl9lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHRoaXMuX29uRG93biksdGhpcy5fZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdGhpcy5fb25Eb3duKSx0aGlzLl9lbmFibGVkPSExKX0sX29uRG93bjpmdW5jdGlvbih0KXt0aGlzLl9pZ25vcmVFdmVudCh0KXx8dGhpcy5pc0FjdGl2ZSgpfHwodC50b3VjaGVzPyhkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX29uTW92ZSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX29uVG91Y2hFbmQpKTooZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHRoaXMuX29uTW91c2VVcCkpLHRoaXMuX2FjdGl2ZT0hMSx0aGlzLl9zdGFydFBvcz10aGlzLl9wb3M9aS5tb3VzZVBvcyh0aGlzLl9lbCx0KSx0aGlzLl9pbmVydGlhPVtbRGF0ZS5ub3coKSx0aGlzLl9wb3NdXSl9LF9vbk1vdmU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuX2lnbm9yZUV2ZW50KHQpKXt0aGlzLmlzQWN0aXZlKCl8fCh0aGlzLl9hY3RpdmU9ITAsdGhpcy5fZmlyZUV2ZW50KCJkcmFnc3RhcnQiLHQpLHRoaXMuX2ZpcmVFdmVudCgibW92ZXN0YXJ0Iix0KSk7dmFyIGU9aS5tb3VzZVBvcyh0aGlzLl9lbCx0KSxyPXRoaXMuX21hcDtyLnN0b3AoKSx0aGlzLl9kcmFpbkluZXJ0aWFCdWZmZXIoKSx0aGlzLl9pbmVydGlhLnB1c2goW0RhdGUubm93KCksZV0pLHIudHJhbnNmb3JtLnNldExvY2F0aW9uQXRQb2ludChyLnRyYW5zZm9ybS5wb2ludExvY2F0aW9uKHRoaXMuX3BvcyksZSksdGhpcy5fZmlyZUV2ZW50KCJkcmFnIix0KSx0aGlzLl9maXJlRXZlbnQoIm1vdmUiLHQpLHRoaXMuX3Bvcz1lLHQucHJldmVudERlZmF1bHQoKX19LF9vblVwOmZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNBY3RpdmUoKSl7dGhpcy5fYWN0aXZlPSExLHRoaXMuX2ZpcmVFdmVudCgiZHJhZ2VuZCIsdCksdGhpcy5fZHJhaW5JbmVydGlhQnVmZmVyKCk7dmFyIGU9ZnVuY3Rpb24oKXt0aGlzLl9maXJlRXZlbnQoIm1vdmVlbmQiLHQpfS5iaW5kKHRoaXMpLHI9dGhpcy5faW5lcnRpYTtpZihyLmxlbmd0aDwyKXJldHVybiB2b2lkIGUoKTt2YXIgbj1yW3IubGVuZ3RoLTFdLGk9clswXSxvPW5bMV0uc3ViKGlbMV0pLGM9KG5bMF0taVswXSkvMWUzO2lmKDA9PT1jfHxuWzFdLmVxdWFscyhpWzFdKSlyZXR1cm4gdm9pZCBlKCk7dmFyIGg9by5tdWx0KGEvYyksZj1oLm1hZygpO2Y+bCYmKGY9bCxoLl91bml0KCkuX211bHQoZikpO3ZhciBwPWYvKHUqYSksZD1oLm11bHQoLXAvMik7dGhpcy5fbWFwLnBhbkJ5KGQse2R1cmF0aW9uOjFlMypwLGVhc2luZzpzLG5vTW92ZVN0YXJ0OiEwfSx7b3JpZ2luYWxFdmVudDp0fSl9fSxfb25Nb3VzZVVwOmZ1bmN0aW9uKHQpe3RoaXMuX2lnbm9yZUV2ZW50KHQpfHwodGhpcy5fb25VcCh0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fb25Nb3VzZVVwKSl9LF9vblRvdWNoRW5kOmZ1bmN0aW9uKHQpe3RoaXMuX2lnbm9yZUV2ZW50KHQpfHwodGhpcy5fb25VcCh0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX29uTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX29uVG91Y2hFbmQpKX0sX2ZpcmVFdmVudDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9tYXAuZmlyZSh0LHtvcmlnaW5hbEV2ZW50OmV9KX0sX2lnbm9yZUV2ZW50OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX21hcDtpZihlLmJveFpvb20mJmUuYm94Wm9vbS5pc0FjdGl2ZSgpKXJldHVybiEwO2lmKGUuZHJhZ1JvdGF0ZSYmZS5kcmFnUm90YXRlLmlzQWN0aXZlKCkpcmV0dXJuITA7aWYodC50b3VjaGVzKXJldHVybiB0LnRvdWNoZXMubGVuZ3RoPjE7aWYodC5jdHJsS2V5KXJldHVybiEwO3ZhciByPTEsbj0wO3JldHVybiJtb3VzZW1vdmUiPT09dC50eXBlP3QuYnV0dG9ucyYwPT09cjp0LmJ1dHRvbiE9PW59LF9kcmFpbkluZXJ0aWFCdWZmZXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5faW5lcnRpYSxlPURhdGUubm93KCkscj0xNjA7dC5sZW5ndGg+MCYmZS10WzBdWzBdPnI7KXQuc2hpZnQoKX19fSx7Ii4uLy4uL3V0aWwvZG9tIjozNTIsIi4uLy4uL3V0aWwvdXRpbCI6MzY2fV0sMzQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLl9tYXA9dCx0aGlzLl9lbD10LmdldENhbnZhc0NvbnRhaW5lcigpLHRoaXMuX2JlYXJpbmdTbmFwPWUuYmVhcmluZ1NuYXAsYS5iaW5kSGFuZGxlcnModGhpcyl9dmFyIGk9dCgiLi4vLi4vdXRpbC9kb20iKSxvPXQoInBvaW50LWdlb21ldHJ5IiksYT10KCIuLi8uLi91dGlsL3V0aWwiKTtlLmV4cG9ydHM9bjt2YXIgcz0uMjUsbD1hLmJlemllcigwLDAscywxKSx1PTE4MCxjPTcyMDtuLnByb3RvdHlwZT17X2VuYWJsZWQ6ITEsX2FjdGl2ZTohMSxpc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0saXNBY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZWwuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIix0aGlzLl9vbkRvd24pLHRoaXMuX2VuYWJsZWQ9ITApfSxkaXNhYmxlOmZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VsLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsdGhpcy5fb25Eb3duKSx0aGlzLl9lbmFibGVkPSExKX0sX29uRG93bjpmdW5jdGlvbih0KXtpZighdGhpcy5faWdub3JlRXZlbnQodCkmJiF0aGlzLmlzQWN0aXZlKCkpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3ZlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix0aGlzLl9vblVwKSx0aGlzLl9hY3RpdmU9ITEsdGhpcy5faW5lcnRpYT1bW0RhdGUubm93KCksdGhpcy5fbWFwLmdldEJlYXJpbmcoKV1dLHRoaXMuX3N0YXJ0UG9zPXRoaXMuX3Bvcz1pLm1vdXNlUG9zKHRoaXMuX2VsLHQpLHRoaXMuX2NlbnRlcj10aGlzLl9tYXAudHJhbnNmb3JtLmNlbnRlclBvaW50O3ZhciBlPXRoaXMuX3N0YXJ0UG9zLnN1Yih0aGlzLl9jZW50ZXIpLHI9ZS5tYWcoKTsyMDA+ciYmKHRoaXMuX2NlbnRlcj10aGlzLl9zdGFydFBvcy5hZGQobmV3IG8oLTIwMCwwKS5fcm90YXRlKGUuYW5nbGUoKSkpKSx0LnByZXZlbnREZWZhdWx0KCl9fSxfb25Nb3ZlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLl9pZ25vcmVFdmVudCh0KSl7dGhpcy5pc0FjdGl2ZSgpfHwodGhpcy5fYWN0aXZlPSEwLHRoaXMuX2ZpcmVFdmVudCgicm90YXRlc3RhcnQiLHQpLHRoaXMuX2ZpcmVFdmVudCgibW92ZXN0YXJ0Iix0KSk7dmFyIGU9dGhpcy5fbWFwO2Uuc3RvcCgpO3ZhciByPXRoaXMuX3BvcyxuPWkubW91c2VQb3ModGhpcy5fZWwsdCksbz10aGlzLl9jZW50ZXIsYT1yLnN1YihvKS5hbmdsZVdpdGgobi5zdWIobykpL01hdGguUEkqMTgwLHM9ZS5nZXRCZWFyaW5nKCktYSxsPXRoaXMuX2luZXJ0aWEsdT1sW2wubGVuZ3RoLTFdO3RoaXMuX2RyYWluSW5lcnRpYUJ1ZmZlcigpLGwucHVzaChbRGF0ZS5ub3coKSxlLl9ub3JtYWxpemVCZWFyaW5nKHMsdVsxXSldKSxlLnRyYW5zZm9ybS5iZWFyaW5nPXMsdGhpcy5fZmlyZUV2ZW50KCJyb3RhdGUiLHQpLHRoaXMuX2ZpcmVFdmVudCgibW92ZSIsdCksdGhpcy5fcG9zPW59fSxfb25VcDpmdW5jdGlvbih0KXtpZighdGhpcy5faWdub3JlRXZlbnQodCkmJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHRoaXMuX29uTW92ZSksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdGhpcy5fb25VcCksdGhpcy5pc0FjdGl2ZSgpKSl7dGhpcy5fYWN0aXZlPSExLHRoaXMuX2ZpcmVFdmVudCgicm90YXRlZW5kIix0KSx0aGlzLl9kcmFpbkluZXJ0aWFCdWZmZXIoKTt2YXIgZT10aGlzLl9tYXAscj1lLmdldEJlYXJpbmcoKSxuPXRoaXMuX2luZXJ0aWEsaT1mdW5jdGlvbigpe01hdGguYWJzKHIpPHRoaXMuX2JlYXJpbmdTbmFwP2UucmVzZXROb3J0aCh7bm9Nb3ZlU3RhcnQ6ITB9LHtvcmlnaW5hbEV2ZW50OnR9KTp0aGlzLl9maXJlRXZlbnQoIm1vdmVlbmQiLHQpfS5iaW5kKHRoaXMpO2lmKG4ubGVuZ3RoPDIpcmV0dXJuIHZvaWQgaSgpO3ZhciBvPW5bMF0sYT1uW24ubGVuZ3RoLTFdLGg9bltuLmxlbmd0aC0yXSxmPWUuX25vcm1hbGl6ZUJlYXJpbmcocixoWzFdKSxwPWFbMV0tb1sxXSxkPTA+cD8tMToxLG09KGFbMF0tb1swXSkvMWUzO2lmKDA9PT1wfHwwPT09bSlyZXR1cm4gdm9pZCBpKCk7dmFyIGc9TWF0aC5hYnMocCoocy9tKSk7Zz51JiYoZz11KTt2YXIgdj1nLyhjKnMpLHk9ZCpnKih2LzIpO2YrPXksTWF0aC5hYnMoZS5fbm9ybWFsaXplQmVhcmluZyhmLDApKTx0aGlzLl9iZWFyaW5nU25hcCYmKGY9ZS5fbm9ybWFsaXplQmVhcmluZygwLGYpKSxlLnJvdGF0ZVRvKGYse2R1cmF0aW9uOjFlMyp2LGVhc2luZzpsLG5vTW92ZVN0YXJ0OiEwfSx7b3JpZ2luYWxFdmVudDp0fSl9fSxfZmlyZUV2ZW50OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX21hcC5maXJlKHQse29yaWdpbmFsRXZlbnQ6ZX0pfSxfaWdub3JlRXZlbnQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwO2lmKGUuYm94Wm9vbSYmZS5ib3hab29tLmlzQWN0aXZlKCkpcmV0dXJuITA7aWYoZS5kcmFnUGFuJiZlLmRyYWdQYW4uaXNBY3RpdmUoKSlyZXR1cm4hMDtpZih0LnRvdWNoZXMpcmV0dXJuIHQudG91Y2hlcy5sZW5ndGg+MTt2YXIgcj10LmN0cmxLZXk/MToyLG49dC5jdHJsS2V5PzA6MjtyZXR1cm4ibW91c2Vtb3ZlIj09PXQudHlwZT90LmJ1dHRvbnMmMD09PXI6dC5idXR0b24hPT1ufSxfZHJhaW5JbmVydGlhQnVmZmVyOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2luZXJ0aWEsZT1EYXRlLm5vdygpLHI9MTYwO3QubGVuZ3RoPjAmJmUtdFswXVswXT5yOyl0LnNoaWZ0KCl9fX0seyIuLi8uLi91dGlsL2RvbSI6MzUyLCIuLi8uLi91dGlsL3V0aWwiOjM2NiwicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDM0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMuX21hcD10LHRoaXMuX2VsPXQuZ2V0Q2FudmFzQ29udGFpbmVyKCksdGhpcy5fb25LZXlEb3duPXRoaXMuX29uS2V5RG93bi5iaW5kKHRoaXMpfWUuZXhwb3J0cz1uO3ZhciBpPTgwLG89MixhPTU7bi5wcm90b3R5cGU9e19lbmFibGVkOiExLGlzRW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmFibGVkfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZWwuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdGhpcy5fb25LZXlEb3duLCExKSx0aGlzLl9lbmFibGVkPSEwKX0sZGlzYWJsZTpmdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCkmJih0aGlzLl9lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0aGlzLl9vbktleURvd24pLHRoaXMuX2VuYWJsZWQ9ITEpfSxfb25LZXlEb3duOmZ1bmN0aW9uKHQpe2lmKCEodC5hbHRLZXl8fHQuY3RybEtleXx8dC5tZXRhS2V5KSl7dmFyIGU9dGhpcy5fbWFwLHI9e29yaWdpbmFsRXZlbnQ6dH07aWYoIWUuaXNFYXNpbmcoKSlzd2l0Y2godC5rZXlDb2RlKXtjYXNlIDYxOmNhc2UgMTA3OmNhc2UgMTcxOmNhc2UgMTg3OmUuem9vbVRvKE1hdGgucm91bmQoZS5nZXRab29tKCkpKyh0LnNoaWZ0S2V5PzI6MSkscik7YnJlYWs7Y2FzZSAxODk6Y2FzZSAxMDk6Y2FzZSAxNzM6ZS56b29tVG8oTWF0aC5yb3VuZChlLmdldFpvb20oKSktKHQuc2hpZnRLZXk/MjoxKSxyKTticmVhaztjYXNlIDM3OnQuc2hpZnRLZXk/ZS5lYXNlVG8oe2JlYXJpbmc6ZS5nZXRCZWFyaW5nKCktb30scik6KHQucHJldmVudERlZmF1bHQoKSxlLnBhbkJ5KFstaSwwXSxyKSk7YnJlYWs7Y2FzZSAzOTp0LnNoaWZ0S2V5P2UuZWFzZVRvKHtiZWFyaW5nOmUuZ2V0QmVhcmluZygpK299LHIpOih0LnByZXZlbnREZWZhdWx0KCksZS5wYW5CeShbaSwwXSxyKSk7YnJlYWs7Y2FzZSAzODp0LnNoaWZ0S2V5P2UuZWFzZVRvKHtwaXRjaDplLmdldFBpdGNoKCkrYX0scik6KHQucHJldmVudERlZmF1bHQoKSxlLnBhbkJ5KFswLC1pXSxyKSk7YnJlYWs7Y2FzZSA0MDp0LnNoaWZ0S2V5P2UuZWFzZVRvKHtwaXRjaDpNYXRoLm1heChlLmdldFBpdGNoKCktYSwwKX0scik6KHQucHJldmVudERlZmF1bHQoKSxlLnBhbkJ5KFswLGldLHIpKX19fX19LHt9XSwzNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt0aGlzLl9tYXA9dCx0aGlzLl9lbD10LmdldENhbnZhc0NvbnRhaW5lcigpLGEuYmluZEhhbmRsZXJzKHRoaXMpfXZhciBpPXQoIi4uLy4uL3V0aWwvZG9tIiksbz10KCIuLi8uLi91dGlsL2Jyb3dzZXIiKSxhPXQoIi4uLy4uL3V0aWwvdXRpbCIpO2UuZXhwb3J0cz1uO3ZhciBzPSJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yP25hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKToiIixsPS0xIT09cy5pbmRleE9mKCJmaXJlZm94IiksdT0tMSE9PXMuaW5kZXhPZigic2FmYXJpIikmJi0xPT09cy5pbmRleE9mKCJjaHJvbSIpO24ucHJvdG90eXBlPXtfZW5hYmxlZDohMSxpc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKXx8KHRoaXMuX2VsLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLl9vbldoZWVsLCExKSx0aGlzLl9lbC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdoZWVsIix0aGlzLl9vbldoZWVsLCExKSx0aGlzLl9lbmFibGVkPSEwKX0sZGlzYWJsZTpmdW5jdGlvbigpe3RoaXMuaXNFbmFibGVkKCkmJih0aGlzLl9lbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdGhpcy5fb25XaGVlbCksdGhpcy5fZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsdGhpcy5fb25XaGVlbCksdGhpcy5fZW5hYmxlZD0hMSl9LF9vbldoZWVsOmZ1bmN0aW9uKHQpe3ZhciBlOyJ3aGVlbCI9PT10LnR5cGU/KGU9dC5kZWx0YVksbCYmdC5kZWx0YU1vZGU9PT13aW5kb3cuV2hlZWxFdmVudC5ET01fREVMVEFfUElYRUwmJihlLz1vLmRldmljZVBpeGVsUmF0aW8pLHQuZGVsdGFNb2RlPT09d2luZG93LldoZWVsRXZlbnQuRE9NX0RFTFRBX0xJTkUmJihlKj00MCkpOiJtb3VzZXdoZWVsIj09PXQudHlwZSYmKGU9LXQud2hlZWxEZWx0YVksdSYmKGUvPTMpKTt2YXIgcj1vLm5vdygpLG49ci0odGhpcy5fdGltZXx8MCk7dGhpcy5fcG9zPWkubW91c2VQb3ModGhpcy5fZWwsdCksdGhpcy5fdGltZT1yLDAhPT1lJiZlJTQuMDAwMjQ0MTQwNjI1PT09MD8odGhpcy5fdHlwZT0id2hlZWwiLGU9TWF0aC5mbG9vcihlLzQpKTowIT09ZSYmTWF0aC5hYnMoZSk8ND90aGlzLl90eXBlPSJ0cmFja3BhZCI6bj40MDA/KHRoaXMuX3R5cGU9bnVsbCx0aGlzLl9sYXN0VmFsdWU9ZSx0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQodGhpcy5fb25UaW1lb3V0LDQwKSk6dGhpcy5fdHlwZXx8KHRoaXMuX3R5cGU9TWF0aC5hYnMobiplKTwyMDA/InRyYWNrcGFkIjoid2hlZWwiLHRoaXMuX3RpbWVvdXQmJihjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCksdGhpcy5fdGltZW91dD1udWxsLGUrPXRoaXMuX2xhc3RWYWx1ZSkpLHQuc2hpZnRLZXkmJmUmJihlLz00KSx0aGlzLl90eXBlJiZ0aGlzLl96b29tKC1lLHQpLHQucHJldmVudERlZmF1bHQoKX0sX29uVGltZW91dDpmdW5jdGlvbigpe3RoaXMuX3R5cGU9IndoZWVsIix0aGlzLl96b29tKC10aGlzLl9sYXN0VmFsdWUpfSxfem9vbTpmdW5jdGlvbih0LGUpe2lmKDAhPT10KXt2YXIgcj10aGlzLl9tYXAsbj0yLygxK01hdGguZXhwKC1NYXRoLmFicyh0LzEwMCkpKTswPnQmJjAhPT1uJiYobj0xL24pO3ZhciBpPXIuZWFzZT9yLmVhc2UudG86ci50cmFuc2Zvcm0uc2NhbGUsbz1yLnRyYW5zZm9ybS5zY2FsZVpvb20oaSpuKTtyLnpvb21UbyhvLHtkdXJhdGlvbjowLGFyb3VuZDpyLnVucHJvamVjdCh0aGlzLl9wb3MpLGRlbGF5RW5kRXZlbnRzOjIwMH0se29yaWdpbmFsRXZlbnQ6ZX0pfX19fSx7Ii4uLy4uL3V0aWwvYnJvd3NlciI6MzUwLCIuLi8uLi91dGlsL2RvbSI6MzUyLCIuLi8uLi91dGlsL3V0aWwiOjM2Nn1dLDM0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMuX21hcD10LHRoaXMuX2VsPXQuZ2V0Q2FudmFzQ29udGFpbmVyKCksby5iaW5kSGFuZGxlcnModGhpcyl9dmFyIGk9dCgiLi4vLi4vdXRpbC9kb20iKSxvPXQoIi4uLy4uL3V0aWwvdXRpbCIpO2UuZXhwb3J0cz1uO3ZhciBhPS4xNSxzPW8uYmV6aWVyKDAsMCxhLDEpLGw9MTIsdT0yLjUsYz0uMTUsaD00O24ucHJvdG90eXBlPXtfZW5hYmxlZDohMSxpc0VuYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKXx8KHRoaXMuX2VsLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uU3RhcnQsITEpLHRoaXMuX2VuYWJsZWQ9ITApfSxkaXNhYmxlOmZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHRoaXMuX29uU3RhcnQpLHRoaXMuX2VuYWJsZWQ9ITEpfSxkaXNhYmxlUm90YXRpb246ZnVuY3Rpb24oKXt0aGlzLl9yb3RhdGlvbkRpc2FibGVkPSEwfSxlbmFibGVSb3RhdGlvbjpmdW5jdGlvbigpe3RoaXMuX3JvdGF0aW9uRGlzYWJsZWQ9ITF9LF9vblN0YXJ0OmZ1bmN0aW9uKHQpe2lmKDI9PT10LnRvdWNoZXMubGVuZ3RoKXt2YXIgZT1pLm1vdXNlUG9zKHRoaXMuX2VsLHQudG91Y2hlc1swXSkscj1pLm1vdXNlUG9zKHRoaXMuX2VsLHQudG91Y2hlc1sxXSk7dGhpcy5fc3RhcnRWZWM9ZS5zdWIociksdGhpcy5fc3RhcnRTY2FsZT10aGlzLl9tYXAudHJhbnNmb3JtLnNjYWxlLHRoaXMuX3N0YXJ0QmVhcmluZz10aGlzLl9tYXAudHJhbnNmb3JtLmJlYXJpbmcsdGhpcy5fZ2VzdHVyZUludGVudD12b2lkIDAsdGhpcy5faW5lcnRpYT1bXSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHRoaXMuX29uTW92ZSwhMSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHRoaXMuX29uRW5kLCExKX19LF9vbk1vdmU6ZnVuY3Rpb24odCl7aWYoMj09PXQudG91Y2hlcy5sZW5ndGgpe3ZhciBlPWkubW91c2VQb3ModGhpcy5fZWwsdC50b3VjaGVzWzBdKSxyPWkubW91c2VQb3ModGhpcy5fZWwsdC50b3VjaGVzWzFdKSxuPWUuYWRkKHIpLmRpdigyKSxvPWUuc3ViKHIpLGE9by5tYWcoKS90aGlzLl9zdGFydFZlYy5tYWcoKSxzPXRoaXMuX3JvdGF0aW9uRGlzYWJsZWQ/MDoxODAqby5hbmdsZVdpdGgodGhpcy5fc3RhcnRWZWMpL01hdGguUEksbD10aGlzLl9tYXA7aWYodGhpcy5fZ2VzdHVyZUludGVudCl7dmFyIHU9e2R1cmF0aW9uOjAsYXJvdW5kOmwudW5wcm9qZWN0KG4pfTsicm90YXRlIj09PXRoaXMuX2dlc3R1cmVJbnRlbnQmJih1LmJlYXJpbmc9dGhpcy5fc3RhcnRCZWFyaW5nK3MpLCJ6b29tIiE9PXRoaXMuX2dlc3R1cmVJbnRlbnQmJiJyb3RhdGUiIT09dGhpcy5fZ2VzdHVyZUludGVudHx8KHUuem9vbT1sLnRyYW5zZm9ybS5zY2FsZVpvb20odGhpcy5fc3RhcnRTY2FsZSphKSksbC5zdG9wKCksdGhpcy5fZHJhaW5JbmVydGlhQnVmZmVyKCksdGhpcy5faW5lcnRpYS5wdXNoKFtEYXRlLm5vdygpLGEsbl0pLGwuZWFzZVRvKHUse29yaWdpbmFsRXZlbnQ6dH0pfWVsc2V7dmFyIGY9TWF0aC5hYnMoMS1hKT5jLHA9TWF0aC5hYnMocyk+aDtwP3RoaXMuX2dlc3R1cmVJbnRlbnQ9InJvdGF0ZSI6ZiYmKHRoaXMuX2dlc3R1cmVJbnRlbnQ9Inpvb20iKSx0aGlzLl9nZXN0dXJlSW50ZW50JiYodGhpcy5fc3RhcnRWZWM9byx0aGlzLl9zdGFydFNjYWxlPWwudHJhbnNmb3JtLnNjYWxlLHRoaXMuX3N0YXJ0QmVhcmluZz1sLnRyYW5zZm9ybS5iZWFyaW5nKX10LnByZXZlbnREZWZhdWx0KCl9fSxfb25FbmQ6ZnVuY3Rpb24odCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix0aGlzLl9vbk1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIix0aGlzLl9vbkVuZCksdGhpcy5fZHJhaW5JbmVydGlhQnVmZmVyKCk7dmFyIGU9dGhpcy5faW5lcnRpYSxyPXRoaXMuX21hcDtpZihlLmxlbmd0aDwyKXJldHVybiB2b2lkIHIuc25hcFRvTm9ydGgoe30se29yaWdpbmFsRXZlbnQ6dH0pO3ZhciBuPWVbZS5sZW5ndGgtMV0saT1lWzBdLG89ci50cmFuc2Zvcm0uc2NhbGVab29tKHRoaXMuX3N0YXJ0U2NhbGUqblsxXSksYz1yLnRyYW5zZm9ybS5zY2FsZVpvb20odGhpcy5fc3RhcnRTY2FsZSppWzFdKSxoPW8tYyxmPShuWzBdLWlbMF0pLzFlMyxwPW5bMl07aWYoMD09PWZ8fG89PT1jKXJldHVybiB2b2lkIHIuc25hcFRvTm9ydGgoe30se29yaWdpbmFsRXZlbnQ6dH0pO3ZhciBkPWgqYS9mO01hdGguYWJzKGQpPnUmJihkPWQ+MD91Oi11KTt2YXIgbT0xZTMqTWF0aC5hYnMoZC8obCphKSksZz1vK2QqbS8yZTM7MD5nJiYoZz0wKSxyLmVhc2VUbyh7em9vbTpnLGR1cmF0aW9uOm0sZWFzaW5nOnMsYXJvdW5kOnIudW5wcm9qZWN0KHApfSx7b3JpZ2luYWxFdmVudDp0fSl9LF9kcmFpbkluZXJ0aWFCdWZmZXI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5faW5lcnRpYSxlPURhdGUubm93KCkscj0xNjA7dC5sZW5ndGg+MiYmZS10WzBdWzBdPnI7KXQuc2hpZnQoKX19fSx7Ii4uLy4uL3V0aWwvZG9tIjozNTIsIi4uLy4uL3V0aWwvdXRpbCI6MzY2fV0sMzQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtpLmJpbmRBbGwoWyJfb25IYXNoQ2hhbmdlIiwiX3VwZGF0ZUhhc2giXSx0aGlzKX1lLmV4cG9ydHM9bjt2YXIgaT10KCIuLi91dGlsL3V0aWwiKTtuLnByb3RvdHlwZT17YWRkVG86ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21hcD10LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIix0aGlzLl9vbkhhc2hDaGFuZ2UsITEpLHRoaXMuX21hcC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlSGFzaCksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJoYXNoY2hhbmdlIix0aGlzLl9vbkhhc2hDaGFuZ2UsITEpLHRoaXMuX21hcC5vZmYoIm1vdmVlbmQiLHRoaXMuX3VwZGF0ZUhhc2gpLGRlbGV0ZSB0aGlzLl9tYXAsdGhpc30sX29uSGFzaENoYW5nZTpmdW5jdGlvbigpe3ZhciB0PWxvY2F0aW9uLmhhc2gucmVwbGFjZSgiIyIsIiIpLnNwbGl0KCIvIik7cmV0dXJuIHQubGVuZ3RoPj0zPyh0aGlzLl9tYXAuanVtcFRvKHtjZW50ZXI6Wyt0WzJdLCt0WzFdXSx6b29tOit0WzBdLGJlYXJpbmc6Kyh0WzNdfHwwKX0pLCEwKTohMX0sX3VwZGF0ZUhhc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuZ2V0Q2VudGVyKCksZT10aGlzLl9tYXAuZ2V0Wm9vbSgpLHI9dGhpcy5fbWFwLmdldEJlYXJpbmcoKSxuPU1hdGgubWF4KDAsTWF0aC5jZWlsKE1hdGgubG9nKGUpL01hdGguTE4yKSksaT0iIyIrTWF0aC5yb3VuZCgxMDAqZSkvMTAwKyIvIit0LmxhdC50b0ZpeGVkKG4pKyIvIit0LmxuZy50b0ZpeGVkKG4pKyhyPyIvIitNYXRoLnJvdW5kKDEwKnIpLzEwOiIiKTt3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoIiIsIiIsaSl9fX0seyIuLi91dGlsL3V0aWwiOjM2Nn1dLDM0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpfXZhciBpPXQoIi4uL3V0aWwvY2FudmFzIiksbz10KCIuLi91dGlsL3V0aWwiKSxhPXQoIi4uL3V0aWwvYnJvd3NlciIpLHM9dCgiLi4vdXRpbC9icm93c2VyIikud2luZG93LGw9dCgiLi4vdXRpbC9ldmVudGVkIiksdT10KCIuLi91dGlsL2RvbSIpLGM9dCgiLi4vc3R5bGUvc3R5bGUiKSxoPXQoIi4uL3N0eWxlL2FuaW1hdGlvbl9sb29wIiksZj10KCIuLi9yZW5kZXIvcGFpbnRlciIpLHA9dCgiLi4vZ2VvL3RyYW5zZm9ybSIpLGQ9dCgiLi9oYXNoIiksbT10KCIuL2JpbmRfaGFuZGxlcnMiKSxnPXQoIi4vY2FtZXJhIiksdj10KCIuLi9nZW8vbG5nX2xhdCIpLHk9dCgiLi4vZ2VvL2xuZ19sYXRfYm91bmRzIiksYj10KCJwb2ludC1nZW9tZXRyeSIpLHg9dCgiLi9jb250cm9sL2F0dHJpYnV0aW9uIiksXz0wLHc9MjAsTT17Y2VudGVyOlswLDBdLHpvb206MCxiZWFyaW5nOjAscGl0Y2g6MCxtaW5ab29tOl8sbWF4Wm9vbTp3LGludGVyYWN0aXZlOiEwLHNjcm9sbFpvb206ITAsYm94Wm9vbTohMCxkcmFnUm90YXRlOiEwLGRyYWdQYW46ITAsa2V5Ym9hcmQ6ITAsZG91YmxlQ2xpY2tab29tOiEwLHRvdWNoWm9vbVJvdGF0ZTohMCxiZWFyaW5nU25hcDo3LGhhc2g6ITEsYXR0cmlidXRpb25Db250cm9sOiEwLGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQ6ITEscHJlc2VydmVEcmF3aW5nQnVmZmVyOiExLHRyYWNrUmVzaXplOiEwLHdvcmtlckNvdW50Ok1hdGgubWF4KGEuaGFyZHdhcmVDb25jdXJyZW5jeS0xLDEpfSxrPWUuZXhwb3J0cz1mdW5jdGlvbih0KXtpZih0PW8uZXh0ZW5kKHt9LE0sdCksdC53b3JrZXJDb3VudDwxKXRocm93IG5ldyBFcnJvcigid29ya2VyQ291bnQgbXVzdCBhbiBpbnRlZ2VyIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiIpO3RoaXMuX2ludGVyYWN0aXZlPXQuaW50ZXJhY3RpdmUsdGhpcy5fZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdD10LmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQsdGhpcy5fcHJlc2VydmVEcmF3aW5nQnVmZmVyPXQucHJlc2VydmVEcmF3aW5nQnVmZmVyLHRoaXMuX3RyYWNrUmVzaXplPXQudHJhY2tSZXNpemUsdGhpcy5fd29ya2VyQ291bnQ9dC53b3JrZXJDb3VudCx0aGlzLl9iZWFyaW5nU25hcD10LmJlYXJpbmdTbmFwLCJzdHJpbmciPT10eXBlb2YgdC5jb250YWluZXI/dGhpcy5fY29udGFpbmVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQuY29udGFpbmVyKTp0aGlzLl9jb250YWluZXI9dC5jb250YWluZXIsdGhpcy5hbmltYXRpb25Mb29wPW5ldyBoLHRoaXMudHJhbnNmb3JtPW5ldyBwKHQubWluWm9vbSx0Lm1heFpvb20pLHQubWF4Qm91bmRzJiZ0aGlzLnNldE1heEJvdW5kcyh0Lm1heEJvdW5kcyksby5iaW5kQWxsKFsiX2ZvcndhcmRTdHlsZUV2ZW50IiwiX2ZvcndhcmRTb3VyY2VFdmVudCIsIl9mb3J3YXJkTGF5ZXJFdmVudCIsIl9mb3J3YXJkVGlsZUV2ZW50IiwiX29uU3R5bGVMb2FkIiwiX29uU3R5bGVDaGFuZ2UiLCJfb25Tb3VyY2VBZGQiLCJfb25Tb3VyY2VSZW1vdmUiLCJfb25Tb3VyY2VVcGRhdGUiLCJfb25XaW5kb3dPbmxpbmUiLCJfb25XaW5kb3dSZXNpemUiLCJfdXBkYXRlIiwiX3JlbmRlciJdLHRoaXMpLHRoaXMuX3NldHVwQ29udGFpbmVyKCksdGhpcy5fc2V0dXBQYWludGVyKCksdGhpcy5vbigibW92ZSIsdGhpcy5fdXBkYXRlLmJpbmQodGhpcywhMSkpLHRoaXMub24oInpvb20iLHRoaXMuX3VwZGF0ZS5iaW5kKHRoaXMsITApKSx0aGlzLm9uKCJtb3ZlZW5kIixmdW5jdGlvbigpe3RoaXMuYW5pbWF0aW9uTG9vcC5zZXQoMzAwKSx0aGlzLl9yZXJlbmRlcigpfS5iaW5kKHRoaXMpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHMmJihzLmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5fb25XaW5kb3dPbmxpbmUsITEpLHMuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9vbldpbmRvd1Jlc2l6ZSwhMSkpLG0odGhpcyx0KSx0aGlzLl9oYXNoPXQuaGFzaCYmKG5ldyBkKS5hZGRUbyh0aGlzKSx0aGlzLl9oYXNoJiZ0aGlzLl9oYXNoLl9vbkhhc2hDaGFuZ2UoKXx8dGhpcy5qdW1wVG8oe2NlbnRlcjp0LmNlbnRlcix6b29tOnQuem9vbSxiZWFyaW5nOnQuYmVhcmluZyxwaXRjaDp0LnBpdGNofSksdGhpcy5zdGFja3M9e30sdGhpcy5fY2xhc3Nlcz1bXSx0aGlzLnJlc2l6ZSgpLHQuY2xhc3NlcyYmdGhpcy5zZXRDbGFzc2VzKHQuY2xhc3NlcyksdC5zdHlsZSYmdGhpcy5zZXRTdHlsZSh0LnN0eWxlKSx0LmF0dHJpYnV0aW9uQ29udHJvbCYmdGhpcy5hZGRDb250cm9sKG5ldyB4KHQuYXR0cmlidXRpb25Db250cm9sKSk7dmFyIGU9dGhpcy5maXJlLmJpbmQodGhpcywiZXJyb3IiKTt0aGlzLm9uKCJzdHlsZS5lcnJvciIsZSksdGhpcy5vbigic291cmNlLmVycm9yIixlKSx0aGlzLm9uKCJ0aWxlLmVycm9yIixlKSx0aGlzLm9uKCJsYXllci5lcnJvciIsZSl9O28uZXh0ZW5kKGsucHJvdG90eXBlLGwpLG8uZXh0ZW5kKGsucHJvdG90eXBlLGcucHJvdG90eXBlKSxvLmV4dGVuZChrLnByb3RvdHlwZSx7YWRkQ29udHJvbDpmdW5jdGlvbih0KXtyZXR1cm4gdC5hZGRUbyh0aGlzKSx0aGlzfSxhZGRDbGFzczpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9jbGFzc2VzLmluZGV4T2YodCk+PTB8fCIiPT09dD90aGlzOih0aGlzLl9jbGFzc2VzLnB1c2godCksdGhpcy5fY2xhc3NPcHRpb25zPWUsdGhpcy5zdHlsZSYmdGhpcy5zdHlsZS51cGRhdGVDbGFzc2VzKCksdGhpcy5fdXBkYXRlKCEwKSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fY2xhc3Nlcy5pbmRleE9mKHQpO3JldHVybiAwPnJ8fCIiPT09dD90aGlzOih0aGlzLl9jbGFzc2VzLnNwbGljZShyLDEpLHRoaXMuX2NsYXNzT3B0aW9ucz1lLHRoaXMuc3R5bGUmJnRoaXMuc3R5bGUudXBkYXRlQ2xhc3NlcygpLHRoaXMuX3VwZGF0ZSghMCkpfSxzZXRDbGFzc2VzOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXt9LG49MDtuPHQubGVuZ3RoO24rKykiIiE9PXRbbl0mJihyW3Rbbl1dPSEwKTtyZXR1cm4gdGhpcy5fY2xhc3Nlcz1PYmplY3Qua2V5cyhyKSx0aGlzLl9jbGFzc09wdGlvbnM9ZSx0aGlzLnN0eWxlJiZ0aGlzLnN0eWxlLnVwZGF0ZUNsYXNzZXMoKSx0aGlzLl91cGRhdGUoITApfSxoYXNDbGFzczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fY2xhc3Nlcy5pbmRleE9mKHQpPj0wfSxnZXRDbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NsYXNzZXN9LHJlc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTAsZT0wO3JldHVybiB0aGlzLl9jb250YWluZXImJih0PXRoaXMuX2NvbnRhaW5lci5vZmZzZXRXaWR0aHx8NDAwLGU9dGhpcy5fY29udGFpbmVyLm9mZnNldEhlaWdodHx8MzAwKSx0aGlzLl9jYW52YXMucmVzaXplKHQsZSksdGhpcy50cmFuc2Zvcm0ucmVzaXplKHQsZSksdGhpcy5wYWludGVyLnJlc2l6ZSh0LGUpLHRoaXMuZmlyZSgibW92ZXN0YXJ0IikuZmlyZSgibW92ZSIpLmZpcmUoInJlc2l6ZSIpLmZpcmUoIm1vdmVlbmQiKX0sZ2V0Qm91bmRzOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IHkodGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbihuZXcgYigwLDApKSx0aGlzLnRyYW5zZm9ybS5wb2ludExvY2F0aW9uKHRoaXMudHJhbnNmb3JtLnNpemUpKTtyZXR1cm4odGhpcy50cmFuc2Zvcm0uYW5nbGV8fHRoaXMudHJhbnNmb3JtLnBpdGNoKSYmKHQuZXh0ZW5kKHRoaXMudHJhbnNmb3JtLnBvaW50TG9jYXRpb24obmV3IGIodGhpcy50cmFuc2Zvcm0uc2l6ZS54LDApKSksdC5leHRlbmQodGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbihuZXcgYigwLHRoaXMudHJhbnNmb3JtLnNpemUueSkpKSksdH0sc2V0TWF4Qm91bmRzOmZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXkuY29udmVydCh0KTt0aGlzLnRyYW5zZm9ybS5sbmdSYW5nZT1bZS5nZXRXZXN0KCksZS5nZXRFYXN0KCldLHRoaXMudHJhbnNmb3JtLmxhdFJhbmdlPVtlLmdldFNvdXRoKCksZS5nZXROb3J0aCgpXSx0aGlzLnRyYW5zZm9ybS5fY29uc3RyYWluKCksdGhpcy5fdXBkYXRlKCl9ZWxzZSBudWxsIT09dCYmdm9pZCAwIT09dHx8KHRoaXMudHJhbnNmb3JtLmxuZ1JhbmdlPVtdLHRoaXMudHJhbnNmb3JtLmxhdFJhbmdlPVtdLHRoaXMuX3VwZGF0ZSgpKTtyZXR1cm4gdGhpc30sc2V0TWluWm9vbTpmdW5jdGlvbih0KXtpZih0PW51bGw9PT10fHx2b2lkIDA9PT10P186dCx0Pj1fJiZ0PD10aGlzLnRyYW5zZm9ybS5tYXhab29tKXJldHVybiB0aGlzLnRyYW5zZm9ybS5taW5ab29tPXQsdGhpcy5fdXBkYXRlKCksdGhpcy5nZXRab29tKCk8dCYmdGhpcy5zZXRab29tKHQpLHRoaXM7dGhyb3cgbmV3IEVycm9yKCJtaW5ab29tIG11c3QgYmUgYmV0d2VlbiAiK18rIiBhbmQgdGhlIGN1cnJlbnQgbWF4Wm9vbSwgaW5jbHVzaXZlIil9LHNldE1heFpvb206ZnVuY3Rpb24odCl7aWYodD1udWxsPT09dHx8dm9pZCAwPT09dD93OnQsdD49dGhpcy50cmFuc2Zvcm0ubWluWm9vbSYmdz49dClyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4Wm9vbT10LHRoaXMuX3VwZGF0ZSgpLHRoaXMuZ2V0Wm9vbSgpPnQmJnRoaXMuc2V0Wm9vbSh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWF4Wm9vbSBtdXN0IGJlIGJldHdlZW4gdGhlIGN1cnJlbnQgbWluWm9vbSBhbmQgIit3KyIsIGluY2x1c2l2ZSIpfSxwcm9qZWN0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5sb2NhdGlvblBvaW50KHYuY29udmVydCh0KSl9LHVucHJvamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbihiLmNvbnZlcnQodCkpfSxxdWVyeVJlbmRlcmVkRmVhdHVyZXM6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVybiB0IGluc3RhbmNlb2YgYnx8QXJyYXkuaXNBcnJheSh0KX12YXIgZSxyPXt9O3JldHVybiAyPT09YXJndW1lbnRzLmxlbmd0aD8oZT1hcmd1bWVudHNbMF0scj1hcmd1bWVudHNbMV0pOjE9PT1hcmd1bWVudHMubGVuZ3RoJiZ0KGFyZ3VtZW50c1swXSk/ZT1hcmd1bWVudHNbMF06MT09PWFyZ3VtZW50cy5sZW5ndGgmJihyPWFyZ3VtZW50c1swXSksdGhpcy5zdHlsZS5xdWVyeVJlbmRlcmVkRmVhdHVyZXModGhpcy5fbWFrZVF1ZXJ5R2VvbWV0cnkoZSkscix0aGlzLnRyYW5zZm9ybS56b29tLHRoaXMudHJhbnNmb3JtLmFuZ2xlKX0sX21ha2VRdWVyeUdlb21ldHJ5OmZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PVtiLmNvbnZlcnQoWzAsMF0pLGIuY29udmVydChbdGhpcy50cmFuc2Zvcm0ud2lkdGgsdGhpcy50cmFuc2Zvcm0uaGVpZ2h0XSldKTt2YXIgZSxyPXQgaW5zdGFuY2VvZiBifHwibnVtYmVyIj09dHlwZW9mIHRbMF07aWYocil7dmFyIG49Yi5jb252ZXJ0KHQpO2U9W25dfWVsc2V7dmFyIGk9W2IuY29udmVydCh0WzBdKSxiLmNvbnZlcnQodFsxXSldO2U9W2lbMF0sbmV3IGIoaVsxXS54LGlbMF0ueSksaVsxXSxuZXcgYihpWzBdLngsaVsxXS55KSxpWzBdXX1yZXR1cm4gZT1lLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucG9pbnRDb29yZGluYXRlKHQpfS5iaW5kKHRoaXMpKX0scXVlcnlTb3VyY2VGZWF0dXJlczpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLnF1ZXJ5U291cmNlRmVhdHVyZXModCxlKX0sc2V0U3R5bGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUmJih0aGlzLnN0eWxlLm9mZigibG9hZCIsdGhpcy5fb25TdHlsZUxvYWQpLm9mZigiZXJyb3IiLHRoaXMuX2ZvcndhcmRTdHlsZUV2ZW50KS5vZmYoImNoYW5nZSIsdGhpcy5fb25TdHlsZUNoYW5nZSkub2ZmKCJzb3VyY2UuYWRkIix0aGlzLl9vblNvdXJjZUFkZCkub2ZmKCJzb3VyY2UucmVtb3ZlIix0aGlzLl9vblNvdXJjZVJlbW92ZSkub2ZmKCJzb3VyY2UubG9hZCIsdGhpcy5fb25Tb3VyY2VVcGRhdGUpLm9mZigic291cmNlLmVycm9yIix0aGlzLl9mb3J3YXJkU291cmNlRXZlbnQpLm9mZigic291cmNlLmNoYW5nZSIsdGhpcy5fb25Tb3VyY2VVcGRhdGUpLm9mZigibGF5ZXIuYWRkIix0aGlzLl9mb3J3YXJkTGF5ZXJFdmVudCkub2ZmKCJsYXllci5yZW1vdmUiLHRoaXMuX2ZvcndhcmRMYXllckV2ZW50KS5vZmYoImxheWVyLmVycm9yIix0aGlzLl9mb3J3YXJkTGF5ZXJFdmVudCkub2ZmKCJ0aWxlLmFkZCIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCkub2ZmKCJ0aWxlLnJlbW92ZSIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCkub2ZmKCJ0aWxlLmxvYWQiLHRoaXMuX3VwZGF0ZSkub2ZmKCJ0aWxlLmVycm9yIix0aGlzLl9mb3J3YXJkVGlsZUV2ZW50KS5vZmYoInRpbGUuc3RhdHMiLHRoaXMuX2ZvcndhcmRUaWxlRXZlbnQpLl9yZW1vdmUoKSx0aGlzLm9mZigicm90YXRlIix0aGlzLnN0eWxlLl9yZWRvUGxhY2VtZW50KSx0aGlzLm9mZigicGl0Y2giLHRoaXMuc3R5bGUuX3JlZG9QbGFjZW1lbnQpKSx0Pyh0IGluc3RhbmNlb2YgYz90aGlzLnN0eWxlPXQ6dGhpcy5zdHlsZT1uZXcgYyh0LHRoaXMuYW5pbWF0aW9uTG9vcCx0aGlzLl93b3JrZXJDb3VudCksdGhpcy5zdHlsZS5vbigibG9hZCIsdGhpcy5fb25TdHlsZUxvYWQpLm9uKCJlcnJvciIsdGhpcy5fZm9yd2FyZFN0eWxlRXZlbnQpLm9uKCJjaGFuZ2UiLHRoaXMuX29uU3R5bGVDaGFuZ2UpLm9uKCJzb3VyY2UuYWRkIix0aGlzLl9vblNvdXJjZUFkZCkub24oInNvdXJjZS5yZW1vdmUiLHRoaXMuX29uU291cmNlUmVtb3ZlKS5vbigic291cmNlLmxvYWQiLHRoaXMuX29uU291cmNlVXBkYXRlKS5vbigic291cmNlLmVycm9yIix0aGlzLl9mb3J3YXJkU291cmNlRXZlbnQpLm9uKCJzb3VyY2UuY2hhbmdlIix0aGlzLl9vblNvdXJjZVVwZGF0ZSkub24oImxheWVyLmFkZCIsdGhpcy5fZm9yd2FyZExheWVyRXZlbnQpLm9uKCJsYXllci5yZW1vdmUiLHRoaXMuX2ZvcndhcmRMYXllckV2ZW50KS5vbigibGF5ZXIuZXJyb3IiLHRoaXMuX2ZvcndhcmRMYXllckV2ZW50KS5vbigidGlsZS5hZGQiLHRoaXMuX2ZvcndhcmRUaWxlRXZlbnQpLm9uKCJ0aWxlLnJlbW92ZSIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCkub24oInRpbGUubG9hZCIsdGhpcy5fdXBkYXRlKS5vbigidGlsZS5lcnJvciIsdGhpcy5fZm9yd2FyZFRpbGVFdmVudCkub24oInRpbGUuc3RhdHMiLHRoaXMuX2ZvcndhcmRUaWxlRXZlbnQpLHRoaXMub24oInJvdGF0ZSIsdGhpcy5zdHlsZS5fcmVkb1BsYWNlbWVudCksdGhpcy5vbigicGl0Y2giLHRoaXMuc3R5bGUuX3JlZG9QbGFjZW1lbnQpLHRoaXMpOih0aGlzLnN0eWxlPW51bGwsdGhpcyl9LGdldFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3R5bGU/dGhpcy5zdHlsZS5zZXJpYWxpemUoKTp2b2lkIDB9LGFkZFNvdXJjZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLmFkZFNvdXJjZSh0LGUpLHRoaXMuX3VwZGF0ZSghMCksdGhpc30sYWRkU291cmNlVHlwZTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuc3R5bGUuYWRkU291cmNlVHlwZSh0LGUscil9LHJlbW92ZVNvdXJjZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdHlsZS5yZW1vdmVTb3VyY2UodCksdGhpcy5fdXBkYXRlKCEwKSx0aGlzfSxnZXRTb3VyY2U6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0U291cmNlKHQpfSxhZGRMYXllcjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLmFkZExheWVyKHQsZSksdGhpcy5fdXBkYXRlKCEwKSx0aGlzfSxyZW1vdmVMYXllcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdHlsZS5yZW1vdmVMYXllcih0KSx0aGlzLl91cGRhdGUoITApLHRoaXN9LGdldExheWVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldExheWVyKHQpfSxzZXRGaWx0ZXI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5zZXRGaWx0ZXIodCxlKSx0aGlzLl91cGRhdGUoITApLHRoaXN9LHNldExheWVyWm9vbVJhbmdlOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5zdHlsZS5zZXRMYXllclpvb21SYW5nZSh0LGUsciksdGhpcy5fdXBkYXRlKCEwKSx0aGlzfSxnZXRGaWx0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0RmlsdGVyKHQpfSxzZXRQYWludFByb3BlcnR5OmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLnN0eWxlLnNldFBhaW50UHJvcGVydHkodCxlLHIsbiksdGhpcy5fdXBkYXRlKCEwKSx0aGlzfSxnZXRQYWludFByb3BlcnR5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5zdHlsZS5nZXRQYWludFByb3BlcnR5KHQsZSxyKX0sc2V0TGF5b3V0UHJvcGVydHk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLnN0eWxlLnNldExheW91dFByb3BlcnR5KHQsZSxyKSx0aGlzLl91cGRhdGUoITApLHRoaXN9LGdldExheW91dFByb3BlcnR5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0TGF5b3V0UHJvcGVydHkodCxlKX0sZ2V0Q29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NvbnRhaW5lcn0sZ2V0Q2FudmFzQ29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbnZhc0NvbnRhaW5lcn0sZ2V0Q2FudmFzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbnZhcy5nZXRFbGVtZW50KCl9LF9zZXR1cENvbnRhaW5lcjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lcjt0LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLW1hcCIpO3ZhciBlPXRoaXMuX2NhbnZhc0NvbnRhaW5lcj11LmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY2FudmFzLWNvbnRhaW5lciIsdCk7dGhpcy5faW50ZXJhY3RpdmUmJmUuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtaW50ZXJhY3RpdmUiKSx0aGlzLl9jYW52YXM9bmV3IGkodGhpcyxlKTt2YXIgcj10aGlzLl9jb250cm9sQ29udGFpbmVyPXUuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jb250cm9sLWNvbnRhaW5lciIsdCksbj10aGlzLl9jb250cm9sQ29ybmVycz17fTtbInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwiYm90dG9tLWxlZnQiLCJib3R0b20tcmlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe25bdF09dS5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwtIit0LHIpfSl9LF9zZXR1cFBhaW50ZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9jYW52YXMuZ2V0V2ViR0xDb250ZXh0KHtmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0OnRoaXMuX2ZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQscHJlc2VydmVEcmF3aW5nQnVmZmVyOnRoaXMuX3ByZXNlcnZlRHJhd2luZ0J1ZmZlcn0pO3JldHVybiB0P3ZvaWQodGhpcy5wYWludGVyPW5ldyBmKHQsdGhpcy50cmFuc2Zvcm0pKTp2b2lkIHRoaXMuZmlyZSgiZXJyb3IiLHtlcnJvcjpuZXcgRXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIFdlYkdMIil9KX0sX2NvbnRleHRMb3N0OmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0aGlzLl9mcmFtZUlkJiZhLmNhbmNlbEZyYW1lKHRoaXMuX2ZyYW1lSWQpLHRoaXMuZmlyZSgid2ViZ2xjb250ZXh0bG9zdCIse29yaWdpbmFsRXZlbnQ6dH0pfSxfY29udGV4dFJlc3RvcmVkOmZ1bmN0aW9uKHQpe3RoaXMuX3NldHVwUGFpbnRlcigpLHRoaXMucmVzaXplKCksdGhpcy5fdXBkYXRlKCksdGhpcy5maXJlKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIse29yaWdpbmFsRXZlbnQ6dH0pfSxsb2FkZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3R5bGVEaXJ0eXx8dGhpcy5fc291cmNlc0RpcnR5PyExOiEoIXRoaXMuc3R5bGV8fCF0aGlzLnN0eWxlLmxvYWRlZCgpKX0sX3VwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdHlsZT8odGhpcy5fc3R5bGVEaXJ0eT10aGlzLl9zdHlsZURpcnR5fHx0LHRoaXMuX3NvdXJjZXNEaXJ0eT0hMCx0aGlzLl9yZXJlbmRlcigpLHRoaXMpOnRoaXN9LF9yZW5kZXI6ZnVuY3Rpb24oKXt0cnl7dGhpcy5zdHlsZSYmdGhpcy5fc3R5bGVEaXJ0eSYmKHRoaXMuX3N0eWxlRGlydHk9ITEsdGhpcy5zdHlsZS51cGRhdGUodGhpcy5fY2xhc3Nlcyx0aGlzLl9jbGFzc09wdGlvbnMpLHRoaXMuX2NsYXNzT3B0aW9ucz1udWxsLHRoaXMuc3R5bGUuX3JlY2FsY3VsYXRlKHRoaXMudHJhbnNmb3JtLnpvb20pKSx0aGlzLnN0eWxlJiZ0aGlzLl9zb3VyY2VzRGlydHkmJih0aGlzLl9zb3VyY2VzRGlydHk9ITEsdGhpcy5zdHlsZS5fdXBkYXRlU291cmNlcyh0aGlzLnRyYW5zZm9ybSkpLHRoaXMucGFpbnRlci5yZW5kZXIodGhpcy5zdHlsZSx7ZGVidWc6dGhpcy5zaG93VGlsZUJvdW5kYXJpZXMsc2hvd092ZXJkcmF3SW5zcGVjdG9yOnRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcix2ZXJ0aWNlczp0aGlzLnZlcnRpY2VzLHJvdGF0aW5nOnRoaXMucm90YXRpbmcsem9vbWluZzp0aGlzLnpvb21pbmd9KSx0aGlzLmZpcmUoInJlbmRlciIpLHRoaXMubG9hZGVkKCkmJiF0aGlzLl9sb2FkZWQmJih0aGlzLl9sb2FkZWQ9ITAsdGhpcy5maXJlKCJsb2FkIikpLHRoaXMuX2ZyYW1lSWQ9bnVsbCx0aGlzLmFuaW1hdGlvbkxvb3Auc3RvcHBlZCgpfHwodGhpcy5fc3R5bGVEaXJ0eT0hMCksKHRoaXMuX3NvdXJjZXNEaXJ0eXx8dGhpcy5fcmVwYWludHx8IXRoaXMuYW5pbWF0aW9uTG9vcC5zdG9wcGVkKCkpJiZ0aGlzLl9yZXJlbmRlcigpfWNhdGNoKHQpe3RoaXMuZmlyZSgiZXJyb3IiLHtlcnJvcjp0fSl9cmV0dXJuIHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3RoaXMuX2hhc2gmJnRoaXMuX2hhc2gucmVtb3ZlKCksYS5jYW5jZWxGcmFtZSh0aGlzLl9mcmFtZUlkKSx0aGlzLnNldFN0eWxlKG51bGwpLCJ1bmRlZmluZWQiIT10eXBlb2YgcyYmcy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHRoaXMuX29uV2luZG93UmVzaXplLCExKTt2YXIgdD10aGlzLnBhaW50ZXIuZ2wuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9sb3NlX2NvbnRleHQiKTt0JiZ0Lmxvc2VDb250ZXh0KCksbih0aGlzLl9jYW52YXNDb250YWluZXIpLG4odGhpcy5fY29udHJvbENvbnRhaW5lciksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLW1hcCIpfSxfcmVyZW5kZXI6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlJiYhdGhpcy5fZnJhbWVJZCYmKHRoaXMuX2ZyYW1lSWQ9YS5mcmFtZSh0aGlzLl9yZW5kZXIpKTsKfSxfZm9yd2FyZFN0eWxlRXZlbnQ6ZnVuY3Rpb24odCl7dGhpcy5maXJlKCJzdHlsZS4iK3QudHlwZSxvLmV4dGVuZCh7c3R5bGU6dC50YXJnZXR9LHQpKX0sX2ZvcndhcmRTb3VyY2VFdmVudDpmdW5jdGlvbih0KXt0aGlzLmZpcmUodC50eXBlLG8uZXh0ZW5kKHtzdHlsZTp0LnRhcmdldH0sdCkpfSxfZm9yd2FyZExheWVyRXZlbnQ6ZnVuY3Rpb24odCl7dGhpcy5maXJlKHQudHlwZSxvLmV4dGVuZCh7c3R5bGU6dC50YXJnZXR9LHQpKX0sX2ZvcndhcmRUaWxlRXZlbnQ6ZnVuY3Rpb24odCl7dGhpcy5maXJlKHQudHlwZSxvLmV4dGVuZCh7c3R5bGU6dC50YXJnZXR9LHQpKX0sX29uU3R5bGVMb2FkOmZ1bmN0aW9uKHQpe3RoaXMudHJhbnNmb3JtLnVubW9kaWZpZWQmJnRoaXMuanVtcFRvKHRoaXMuc3R5bGUuc3R5bGVzaGVldCksdGhpcy5zdHlsZS51cGRhdGUodGhpcy5fY2xhc3Nlcyx7dHJhbnNpdGlvbjohMX0pLHRoaXMuX2ZvcndhcmRTdHlsZUV2ZW50KHQpfSxfb25TdHlsZUNoYW5nZTpmdW5jdGlvbih0KXt0aGlzLl91cGRhdGUoITApLHRoaXMuX2ZvcndhcmRTdHlsZUV2ZW50KHQpfSxfb25Tb3VyY2VBZGQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5zb3VyY2U7ZS5vbkFkZCYmZS5vbkFkZCh0aGlzKSx0aGlzLl9mb3J3YXJkU291cmNlRXZlbnQodCl9LF9vblNvdXJjZVJlbW92ZTpmdW5jdGlvbih0KXt2YXIgZT10LnNvdXJjZTtlLm9uUmVtb3ZlJiZlLm9uUmVtb3ZlKHRoaXMpLHRoaXMuX2ZvcndhcmRTb3VyY2VFdmVudCh0KX0sX29uU291cmNlVXBkYXRlOmZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZSgpLHRoaXMuX2ZvcndhcmRTb3VyY2VFdmVudCh0KX0sX29uV2luZG93T25saW5lOmZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlKCl9LF9vbldpbmRvd1Jlc2l6ZTpmdW5jdGlvbigpe3RoaXMuX3RyYWNrUmVzaXplJiZ0aGlzLnN0b3AoKS5yZXNpemUoKS5fdXBkYXRlKCl9fSksby5leHRlbmRBbGwoay5wcm90b3R5cGUse19zaG93VGlsZUJvdW5kYXJpZXM6ITEsZ2V0IHNob3dUaWxlQm91bmRhcmllcygpe3JldHVybiB0aGlzLl9zaG93VGlsZUJvdW5kYXJpZXN9LHNldCBzaG93VGlsZUJvdW5kYXJpZXModCl7dGhpcy5fc2hvd1RpbGVCb3VuZGFyaWVzIT09dCYmKHRoaXMuX3Nob3dUaWxlQm91bmRhcmllcz10LHRoaXMuX3VwZGF0ZSgpKX0sX3Nob3dDb2xsaXNpb25Cb3hlczohMSxnZXQgc2hvd0NvbGxpc2lvbkJveGVzKCl7cmV0dXJuIHRoaXMuX3Nob3dDb2xsaXNpb25Cb3hlc30sc2V0IHNob3dDb2xsaXNpb25Cb3hlcyh0KXt0aGlzLl9zaG93Q29sbGlzaW9uQm94ZXMhPT10JiYodGhpcy5fc2hvd0NvbGxpc2lvbkJveGVzPXQsdGhpcy5zdHlsZS5fcmVkb1BsYWNlbWVudCgpKX0sX3Nob3dPdmVyZHJhd0luc3BlY3RvcjohMSxnZXQgc2hvd092ZXJkcmF3SW5zcGVjdG9yKCl7cmV0dXJuIHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcn0sc2V0IHNob3dPdmVyZHJhd0luc3BlY3Rvcih0KXt0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3IhPT10JiYodGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yPXQsdGhpcy5fdXBkYXRlKCkpfSxfcmVwYWludDohMSxnZXQgcmVwYWludCgpe3JldHVybiB0aGlzLl9yZXBhaW50fSxzZXQgcmVwYWludCh0KXt0aGlzLl9yZXBhaW50PXQsdGhpcy5fdXBkYXRlKCl9LF92ZXJ0aWNlczohMSxnZXQgdmVydGljZXMoKXtyZXR1cm4gdGhpcy5fdmVydGljZXN9LHNldCB2ZXJ0aWNlcyh0KXt0aGlzLl92ZXJ0aWNlcz10LHRoaXMuX3VwZGF0ZSgpfX0pfSx7Ii4uL2dlby9sbmdfbGF0IjoyNjMsIi4uL2dlby9sbmdfbGF0X2JvdW5kcyI6MjY0LCIuLi9nZW8vdHJhbnNmb3JtIjoyNjUsIi4uL3JlbmRlci9wYWludGVyIjoyNzksIi4uL3N0eWxlL2FuaW1hdGlvbl9sb29wIjoyOTksIi4uL3N0eWxlL3N0eWxlIjozMDIsIi4uL3V0aWwvYnJvd3NlciI6MzUwLCIuLi91dGlsL2NhbnZhcyI6MzUxLCIuLi91dGlsL2RvbSI6MzUyLCIuLi91dGlsL2V2ZW50ZWQiOjM1OCwiLi4vdXRpbC91dGlsIjozNjYsIi4vYmluZF9oYW5kbGVycyI6MzMxLCIuL2NhbWVyYSI6MzMyLCIuL2NvbnRyb2wvYXR0cmlidXRpb24iOjMzMywiLi9oYXNoIjozNDQsInBvaW50LWdlb21ldHJ5Ijo0MjR9XSwzNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3R8fCh0PWkuY3JlYXRlKCJkaXYiKSksdC5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1tYXJrZXIiKSx0aGlzLl9lbD10LHRoaXMuX29mZnNldD1hLmNvbnZlcnQoZSYmZS5vZmZzZXR8fFswLDBdKSx0aGlzLl91cGRhdGU9dGhpcy5fdXBkYXRlLmJpbmQodGhpcyl9ZS5leHBvcnRzPW47dmFyIGk9dCgiLi4vdXRpbC9kb20iKSxvPXQoIi4uL2dlby9sbmdfbGF0IiksYT10KCJwb2ludC1nZW9tZXRyeSIpO24ucHJvdG90eXBlPXthZGRUbzpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZW1vdmUoKSx0aGlzLl9tYXA9dCx0LmdldENhbnZhc0NvbnRhaW5lcigpLmFwcGVuZENoaWxkKHRoaXMuX2VsKSx0Lm9uKCJtb3ZlIix0aGlzLl91cGRhdGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3RoaXMuX21hcCYmKHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwPW51bGwpO3ZhciB0PXRoaXMuX2VsLnBhcmVudE5vZGU7cmV0dXJuIHQmJnQucmVtb3ZlQ2hpbGQodGhpcy5fZWwpLHRoaXN9LGdldExuZ0xhdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sbmdMYXR9LHNldExuZ0xhdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbG5nTGF0PW8uY29udmVydCh0KSx0aGlzLl91cGRhdGUoKSx0aGlzfSxnZXRFbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsfSxfdXBkYXRlOmZ1bmN0aW9uKCl7aWYodGhpcy5fbWFwKXt2YXIgdD10aGlzLl9tYXAucHJvamVjdCh0aGlzLl9sbmdMYXQpLl9hZGQodGhpcy5fb2Zmc2V0KTtpLnNldFRyYW5zZm9ybSh0aGlzLl9lbCwidHJhbnNsYXRlKCIrdC54KyJweCwiK3QueSsicHgpIil9fX19LHsiLi4vZ2VvL2xuZ19sYXQiOjI2MywiLi4vdXRpbC9kb20iOjM1MiwicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDM0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2kuc2V0T3B0aW9ucyh0aGlzLHQpLGkuYmluZEFsbChbIl91cGRhdGUiLCJfb25DbGlja0Nsb3NlIl0sdGhpcyl9ZS5leHBvcnRzPW47dmFyIGk9dCgiLi4vdXRpbC91dGlsIiksbz10KCIuLi91dGlsL2V2ZW50ZWQiKSxhPXQoIi4uL3V0aWwvZG9tIikscz10KCIuLi9nZW8vbG5nX2xhdCIpO24ucHJvdG90eXBlPWkuaW5oZXJpdChvLHtvcHRpb25zOntjbG9zZUJ1dHRvbjohMCxjbG9zZU9uQ2xpY2s6ITB9LGFkZFRvOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLl9tYXAub24oIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5vcHRpb25zLmNsb3NlT25DbGljayYmdGhpcy5fbWFwLm9uKCJjbGljayIsdGhpcy5fb25DbGlja0Nsb3NlKSx0aGlzLl91cGRhdGUoKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGVudCYmdGhpcy5fY29udGVudC5wYXJlbnROb2RlJiZ0aGlzLl9jb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udGVudCksdGhpcy5fY29udGFpbmVyJiYodGhpcy5fY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udGFpbmVyKSxkZWxldGUgdGhpcy5fY29udGFpbmVyKSx0aGlzLl9tYXAmJih0aGlzLl9tYXAub2ZmKCJtb3ZlIix0aGlzLl91cGRhdGUpLHRoaXMuX21hcC5vZmYoImNsaWNrIix0aGlzLl9vbkNsaWNrQ2xvc2UpLGRlbGV0ZSB0aGlzLl9tYXApLHRoaXMuZmlyZSgiY2xvc2UiKSx0aGlzfSxnZXRMbmdMYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbG5nTGF0fSxzZXRMbmdMYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xuZ0xhdD1zLmNvbnZlcnQodCksdGhpcy5fdXBkYXRlKCksdGhpc30sc2V0VGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zZXRET01Db250ZW50KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpKX0sc2V0SFRNTDpmdW5jdGlvbih0KXt2YXIgZSxyPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTtmb3Iobi5pbm5lckhUTUw9dDs7KXtpZihlPW4uZmlyc3RDaGlsZCwhZSlicmVhaztyLmFwcGVuZENoaWxkKGUpfXJldHVybiB0aGlzLnNldERPTUNvbnRlbnQocil9LHNldERPTUNvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUNvbnRlbnQoKSx0aGlzLl9jb250ZW50LmFwcGVuZENoaWxkKHQpLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LF9jcmVhdGVDb250ZW50OmZ1bmN0aW9uKCl7dGhpcy5fY29udGVudCYmdGhpcy5fY29udGVudC5wYXJlbnROb2RlJiZ0aGlzLl9jb250ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5fY29udGVudCksdGhpcy5fY29udGVudD1hLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtcG9wdXAtY29udGVudCIsdGhpcy5fY29udGFpbmVyKSx0aGlzLm9wdGlvbnMuY2xvc2VCdXR0b24mJih0aGlzLl9jbG9zZUJ1dHRvbj1hLmNyZWF0ZSgiYnV0dG9uIiwibWFwYm94Z2wtcG9wdXAtY2xvc2UtYnV0dG9uIix0aGlzLl9jb250ZW50KSx0aGlzLl9jbG9zZUJ1dHRvbi50eXBlPSJidXR0b24iLHRoaXMuX2Nsb3NlQnV0dG9uLmlubmVySFRNTD0iJiMyMTU7Iix0aGlzLl9jbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbGlja0Nsb3NlKSl9LF91cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLl9tYXAmJnRoaXMuX2xuZ0xhdCYmdGhpcy5fY29udGVudCl7dGhpcy5fY29udGFpbmVyfHwodGhpcy5fY29udGFpbmVyPWEuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1wb3B1cCIsdGhpcy5fbWFwLmdldENvbnRhaW5lcigpKSx0aGlzLl90aXA9YS5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXBvcHVwLXRpcCIsdGhpcy5fY29udGFpbmVyKSx0aGlzLl9jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fY29udGVudCkpO3ZhciB0PXRoaXMuX21hcC5wcm9qZWN0KHRoaXMuX2xuZ0xhdCkucm91bmQoKSxlPXRoaXMub3B0aW9ucy5hbmNob3I7aWYoIWUpe3ZhciByPXRoaXMuX2NvbnRhaW5lci5vZmZzZXRXaWR0aCxuPXRoaXMuX2NvbnRhaW5lci5vZmZzZXRIZWlnaHQ7ZT10Lnk8bj9bInRvcCJdOnQueT50aGlzLl9tYXAudHJhbnNmb3JtLmhlaWdodC1uP1siYm90dG9tIl06W10sdC54PHIvMj9lLnB1c2goImxlZnQiKTp0Lng+dGhpcy5fbWFwLnRyYW5zZm9ybS53aWR0aC1yLzImJmUucHVzaCgicmlnaHQiKSxlPTA9PT1lLmxlbmd0aD8iYm90dG9tIjplLmpvaW4oIi0iKX12YXIgaT17dG9wOiJ0cmFuc2xhdGUoLTUwJSwwKSIsInRvcC1sZWZ0IjoidHJhbnNsYXRlKDAsMCkiLCJ0b3AtcmlnaHQiOiJ0cmFuc2xhdGUoLTEwMCUsMCkiLGJvdHRvbToidHJhbnNsYXRlKC01MCUsLTEwMCUpIiwiYm90dG9tLWxlZnQiOiJ0cmFuc2xhdGUoMCwtMTAwJSkiLCJib3R0b20tcmlnaHQiOiJ0cmFuc2xhdGUoLTEwMCUsLTEwMCUpIixsZWZ0OiJ0cmFuc2xhdGUoMCwtNTAlKSIscmlnaHQ6InRyYW5zbGF0ZSgtMTAwJSwtNTAlKSJ9LG89dGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdDtmb3IodmFyIHMgaW4gaSlvLnJlbW92ZSgibWFwYm94Z2wtcG9wdXAtYW5jaG9yLSIrcyk7by5hZGQoIm1hcGJveGdsLXBvcHVwLWFuY2hvci0iK2UpLGEuc2V0VHJhbnNmb3JtKHRoaXMuX2NvbnRhaW5lcixpW2VdKyIgdHJhbnNsYXRlKCIrdC54KyJweCwiK3QueSsicHgpIil9fSxfb25DbGlja0Nsb3NlOmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmUoKX19KX0seyIuLi9nZW8vbG5nX2xhdCI6MjYzLCIuLi91dGlsL2RvbSI6MzUyLCIuLi91dGlsL2V2ZW50ZWQiOjM1OCwiLi4vdXRpbC91dGlsIjozNjZ9XSwzNDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMudGFyZ2V0PXQsdGhpcy5wYXJlbnQ9ZSx0aGlzLmNhbGxiYWNrcz17fSx0aGlzLmNhbGxiYWNrSUQ9MCx0aGlzLnJlY2VpdmU9dGhpcy5yZWNlaXZlLmJpbmQodGhpcyksdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy5yZWNlaXZlLCExKX1lLmV4cG9ydHM9bixuLnByb3RvdHlwZS5yZWNlaXZlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCxlLHIpe3RoaXMucG9zdE1lc3NhZ2Uoe3R5cGU6IjxyZXNwb25zZT4iLGlkOlN0cmluZyhpKSxlcnJvcjp0P1N0cmluZyh0KTpudWxsLGRhdGE6ZX0scil9dmFyIHIsbj10LmRhdGEsaT1uLmlkO2lmKCI8cmVzcG9uc2U+Ij09PW4udHlwZSlyPXRoaXMuY2FsbGJhY2tzW24uaWRdLGRlbGV0ZSB0aGlzLmNhbGxiYWNrc1tuLmlkXSxyJiZyKG4uZXJyb3J8fG51bGwsbi5kYXRhKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2Ygbi5pZCYmdGhpcy5wYXJlbnRbbi50eXBlXSl0aGlzLnBhcmVudFtuLnR5cGVdKG4uZGF0YSxlLmJpbmQodGhpcykpO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuLmlkJiZ0aGlzLnBhcmVudC53b3JrZXJTb3VyY2VzKXt2YXIgbz1uLnR5cGUuc3BsaXQoIi4iKTt0aGlzLnBhcmVudC53b3JrZXJTb3VyY2VzW29bMF1dW29bMV1dKG4uZGF0YSxlLmJpbmQodGhpcykpfWVsc2UgdGhpcy5wYXJlbnRbbi50eXBlXShuLmRhdGEpfSxuLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW51bGw7ciYmKHRoaXMuY2FsbGJhY2tzW2k9dGhpcy5jYWxsYmFja0lEKytdPXIpLHRoaXMucG9zdE1lc3NhZ2Uoe3R5cGU6dCxpZDpTdHJpbmcoaSksZGF0YTplfSxuKX0sbi5wcm90b3R5cGUucG9zdE1lc3NhZ2U9ZnVuY3Rpb24odCxlKXt0aGlzLnRhcmdldC5wb3N0TWVzc2FnZSh0LGUpfX0se31dLDM0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyZXR1cm4gZS5ocmVmPXQsZS5wcm90b2NvbD09PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sJiZlLmhvc3Q9PT1kb2N1bWVudC5sb2NhdGlvbi5ob3N0fXIuZ2V0SlNPTj1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gci5vcGVuKCJHRVQiLHQsITApLHIuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiIpLHIub25lcnJvcj1mdW5jdGlvbih0KXtlKHQpfSxyLm9ubG9hZD1mdW5jdGlvbigpe2lmKHIuc3RhdHVzPj0yMDAmJnIuc3RhdHVzPDMwMCYmci5yZXNwb25zZSl7dmFyIHQ7dHJ5e3Q9SlNPTi5wYXJzZShyLnJlc3BvbnNlKX1jYXRjaChuKXtyZXR1cm4gZShuKX1lKG51bGwsdCl9ZWxzZSBlKG5ldyBFcnJvcihyLnN0YXR1c1RleHQpKX0sci5zZW5kKCkscn0sci5nZXRBcnJheUJ1ZmZlcj1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gci5vcGVuKCJHRVQiLHQsITApLHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIsci5vbmVycm9yPWZ1bmN0aW9uKHQpe2UodCl9LHIub25sb2FkPWZ1bmN0aW9uKCl7ci5zdGF0dXM+PTIwMCYmci5zdGF0dXM8MzAwJiZyLnJlc3BvbnNlP2UobnVsbCxyLnJlc3BvbnNlKTplKG5ldyBFcnJvcihyLnN0YXR1c1RleHQpKX0sci5zZW5kKCkscn0sci5nZXRJbWFnZT1mdW5jdGlvbih0LGUpe3JldHVybiByLmdldEFycmF5QnVmZmVyKHQsZnVuY3Rpb24odCxyKXtpZih0KXJldHVybiBlKHQpO3ZhciBuPW5ldyBJbWFnZTtuLm9ubG9hZD1mdW5jdGlvbigpe2UobnVsbCxuKSwod2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCkucmV2b2tlT2JqZWN0VVJMKG4uc3JjKX07dmFyIGk9bmV3IEJsb2IoW25ldyBVaW50OEFycmF5KHIpXSx7dHlwZToiaW1hZ2UvcG5nIn0pO3JldHVybiBuLnNyYz0od2luZG93LlVSTHx8d2luZG93LndlYmtpdFVSTCkuY3JlYXRlT2JqZWN0VVJMKGkpLG4uZ2V0RGF0YT1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGU9dC5nZXRDb250ZXh0KCIyZCIpO3JldHVybiB0LndpZHRoPW4ud2lkdGgsdC5oZWlnaHQ9bi5oZWlnaHQsZS5kcmF3SW1hZ2UobiwwLDApLGUuZ2V0SW1hZ2VEYXRhKDAsMCxuLndpZHRoLG4uaGVpZ2h0KS5kYXRhfSxufSl9LHIuZ2V0VmlkZW89ZnVuY3Rpb24odCxlKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpO3Iub25sb2Fkc3RhcnQ9ZnVuY3Rpb24oKXtlKG51bGwscil9O2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzb3VyY2UiKTtuKHRbaV0pfHwoci5jcm9zc09yaWdpbj0iQW5vbnltb3VzIiksby5zcmM9dFtpXSxyLmFwcGVuZENoaWxkKG8pfXJldHVybiByLmdldERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gcn0scn19LHt9XSwzNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci53aW5kb3c9d2luZG93LGUuZXhwb3J0cy5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2Uubm93P3dpbmRvdy5wZXJmb3JtYW5jZS5ub3cuYmluZCh3aW5kb3cucGVyZm9ybWFuY2UpOkRhdGUubm93LmJpbmQoRGF0ZSl9KCk7dmFyIG49d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lO3IuZnJhbWU9ZnVuY3Rpb24odCl7cmV0dXJuIG4odCl9O3ZhciBpPXdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZXx8d2luZG93Lm1vekNhbmNlbEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHdpbmRvdy5tc0NhbmNlbEFuaW1hdGlvbkZyYW1lO3IuY2FuY2VsRnJhbWU9ZnVuY3Rpb24odCl7aSh0KX0sci50aW1lZD1mdW5jdGlvbih0LG4saSl7ZnVuY3Rpb24gbyhsKXthfHwobD1lLmV4cG9ydHMubm93KCksbD49cytuP3QuY2FsbChpLDEpOih0LmNhbGwoaSwobC1zKS9uKSxyLmZyYW1lKG8pKSl9aWYoIW4pcmV0dXJuIHQuY2FsbChpLDEpLG51bGw7dmFyIGE9ITEscz1lLmV4cG9ydHMubm93KCk7cmV0dXJuIHIuZnJhbWUobyksZnVuY3Rpb24oKXthPSEwfX0sci5zdXBwb3J0ZWQ9dCgibWFwYm94LWdsLXN1cHBvcnRlZCIpLHIuaGFyZHdhcmVDb25jdXJyZW5jeT1uYXZpZ2F0b3IuaGFyZHdhcmVDb25jdXJyZW5jeXx8NCxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGV2aWNlUGl4ZWxSYXRpbyIse2dldDpmdW5jdGlvbigpe3JldHVybiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb319KSxyLnN1cHBvcnRzV2VicD0hMTt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKTtvLm9ubG9hZD1mdW5jdGlvbigpe3Iuc3VwcG9ydHNXZWJwPSEwfSxvLnNyYz0iZGF0YTppbWFnZS93ZWJwO2Jhc2U2NCxVa2xHUmg0QUFBQlhSVUpRVmxBNFRCRUFBQUF2QVFBQUFBZlEvLzczdi8rQmlPaC9BQUE9IixyLnN1cHBvcnRzR2VvbG9jYXRpb249ISFuYXZpZ2F0b3IuZ2VvbG9jYXRpb259LHsibWFwYm94LWdsLXN1cHBvcnRlZCI6NDIwfV0sMzUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0JiZlJiYodGhpcy5jYW52YXMuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmNhbnZhcy5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jYW52YXMiKSx0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0Iix0Ll9jb250ZXh0TG9zdC5iaW5kKHQpLCExKSx0aGlzLmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsdC5fY29udGV4dFJlc3RvcmVkLmJpbmQodCksITEpLHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLDApLGUuYXBwZW5kQ2hpbGQodGhpcy5jYW52YXMpKX12YXIgaT10KCIuLi91dGlsIiksbz10KCJtYXBib3gtZ2wtc3VwcG9ydGVkIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQsZSl7dmFyIHI9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7dGhpcy5jYW52YXMud2lkdGg9cip0LHRoaXMuY2FudmFzLmhlaWdodD1yKmUsdGhpcy5jYW52YXMuc3R5bGUud2lkdGg9dCsicHgiLHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodD1lKyJweCJ9LG4ucHJvdG90eXBlLmdldFdlYkdMQ29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gdD1pLmV4dGVuZCh7fSx0LG8ud2ViR0xDb250ZXh0QXR0cmlidXRlcyksdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgid2ViZ2wiLHQpfHx0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLHQpfSxuLnByb3RvdHlwZS5nZXRFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FudmFzfX0seyIuLi91dGlsIjozNjYsIm1hcGJveC1nbC1zdXBwb3J0ZWQiOjQyMH1dLDM1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKHRbZV1pbiBzKXJldHVybiB0W2VdfWZ1bmN0aW9uIGkodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixpLCEwKX12YXIgbz10KCJwb2ludC1nZW9tZXRyeSIpO3IuY3JlYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO3JldHVybiBlJiYobi5jbGFzc05hbWU9ZSksciYmci5hcHBlbmRDaGlsZChuKSxufTt2YXIgYSxzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSxsPW4oWyJ1c2VyU2VsZWN0IiwiTW96VXNlclNlbGVjdCIsIldlYmtpdFVzZXJTZWxlY3QiLCJtc1VzZXJTZWxlY3QiXSk7ci5kaXNhYmxlRHJhZz1mdW5jdGlvbigpe2wmJihhPXNbbF0sc1tsXT0ibm9uZSIpfSxyLmVuYWJsZURyYWc9ZnVuY3Rpb24oKXtsJiYoc1tsXT1hKX07dmFyIHU9bihbInRyYW5zZm9ybSIsIldlYmtpdFRyYW5zZm9ybSJdKTtyLnNldFRyYW5zZm9ybT1mdW5jdGlvbih0LGUpe3Quc3R5bGVbdV09ZX0sci5zdXBwcmVzc0NsaWNrPWZ1bmN0aW9uKCl7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixpLCEwKSx3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsaSwhMCl9LDApfSxyLm1vdXNlUG9zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gZT1lLnRvdWNoZXM/ZS50b3VjaGVzWzBdOmUsbmV3IG8oZS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS5jbGllbnRZLXIudG9wLXQuY2xpZW50VG9wKX0sci50b3VjaFBvcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG49W10saT0wO2k8ZS50b3VjaGVzLmxlbmd0aDtpKyspbi5wdXNoKG5ldyBvKGUudG91Y2hlc1tpXS5jbGllbnRYLXIubGVmdC10LmNsaWVudExlZnQsZS50b3VjaGVzW2ldLmNsaWVudFktci50b3AtdC5jbGllbnRUb3ApKTtyZXR1cm4gbn19LHsicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDM1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ3ZWJ3b3JraWZ5Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHQoIi4uLy4uL3NvdXJjZS93b3JrZXIiKSl9fSx7Ii4uLy4uL3NvdXJjZS93b3JrZXIiOjI5Nyx3ZWJ3b3JraWZ5OjQ0MX1dLDM1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGUuYXJlYS10LmFyZWF9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscixuPTAsaT0wLG89dC5sZW5ndGgsYT1vLTE7bz5pO2E9aSsrKWU9dFtpXSxyPXRbYV0sbis9KHIueC1lLngpKihlLnkrci55KTtyZXR1cm4gbn12YXIgbz10KCJxdWlja3NlbGVjdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKDE+PXIpcmV0dXJuW3RdO2Zvcih2YXIgYSxzLGw9W10sdT0wO3I+dTt1Kyspe3ZhciBjPWkodFt1XSk7MCE9PWMmJih0W3VdLmFyZWE9TWF0aC5hYnMoYyksdm9pZCAwPT09cyYmKHM9MD5jKSxzPT09MD5jPyhhJiZsLnB1c2goYSksYT1bdFt1XV0pOmEucHVzaCh0W3VdKSl9aWYoYSYmbC5wdXNoKGEpLGU+MSlmb3IodmFyIGg9MDtoPGwubGVuZ3RoO2grKylsW2hdLmxlbmd0aDw9ZXx8KG8obFtoXSxlLDEsbFtoXS5sZW5ndGgtMSxuKSxsW2hdPWxbaF0uc2xpY2UoMCxlKSk7cmV0dXJuIGx9fSx7cXVpY2tzZWxlY3Q6NDI1fV0sMzU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17QVBJX1VSTDoiaHR0cHM6Ly9hcGkubWFwYm94LmNvbSIsUkVRVUlSRV9BQ0NFU1NfVE9LRU46ITB9fSx7fV0sMzU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5fc3RyaW5nVG9OdW1iZXI9e30sdGhpcy5fbnVtYmVyVG9TdHJpbmc9W107Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRbZV07dGhpcy5fc3RyaW5nVG9OdW1iZXJbcl09ZSx0aGlzLl9udW1iZXJUb1N0cmluZ1tlXT1yfX1lLmV4cG9ydHM9bixuLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3N0cmluZ1RvTnVtYmVyW3RdfSxuLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX251bWJlclRvU3RyaW5nW3RdfX0se31dLDM1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy5hY3RvcnM9W10sdGhpcy5jdXJyZW50QWN0b3I9MDtmb3IodmFyIHI9MDt0PnI7cisrKXt2YXIgbj1uZXcgYSxpPW5ldyBvKG4sZSk7aS5uYW1lPSJXb3JrZXIgIityLHRoaXMuYWN0b3JzLnB1c2goaSl9fXZhciBpPXQoIi4vdXRpbCIpLG89dCgiLi9hY3RvciIpLGE9dCgiLi93ZWJfd29ya2VyIik7ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9e2Jyb2FkY2FzdDpmdW5jdGlvbih0LGUscil7cj1yfHxmdW5jdGlvbigpe30saS5hc3luY0FsbCh0aGlzLmFjdG9ycyxmdW5jdGlvbihyLG4pe3Iuc2VuZCh0LGUsbil9LHIpfSxzZW5kOmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuKCJudW1iZXIiIT10eXBlb2Ygbnx8aXNOYU4obikpJiYobj10aGlzLmN1cnJlbnRBY3Rvcj0odGhpcy5jdXJyZW50QWN0b3IrMSkldGhpcy5hY3RvcnMubGVuZ3RoKSx0aGlzLmFjdG9yc1tuXS5zZW5kKHQsZSxyLGkpLG59LHJlbW92ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8dGhpcy5hY3RvcnMubGVuZ3RoO3QrKyl0aGlzLmFjdG9yc1t0XS50YXJnZXQudGVybWluYXRlKCk7dGhpcy5hY3RvcnM9W119fX0seyIuL2FjdG9yIjozNDgsIi4vdXRpbCI6MzY2LCIuL3dlYl93b3JrZXIiOjM1M31dLDM1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3V0aWwiKSxpPXtvbjpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9ldmVudHM9dGhpcy5fZXZlbnRzfHx7fSx0aGlzLl9ldmVudHNbdF09dGhpcy5fZXZlbnRzW3RdfHxbXSx0aGlzLl9ldmVudHNbdF0ucHVzaChlKSx0aGlzfSxvZmY6ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm4gZGVsZXRlIHRoaXMuX2V2ZW50cyx0aGlzO2lmKCF0aGlzLmxpc3RlbnModCkpcmV0dXJuIHRoaXM7aWYoZSl7dmFyIHI9dGhpcy5fZXZlbnRzW3RdLmluZGV4T2YoZSk7cj49MCYmdGhpcy5fZXZlbnRzW3RdLnNwbGljZShyLDEpLHRoaXMuX2V2ZW50c1t0XS5sZW5ndGh8fGRlbGV0ZSB0aGlzLl9ldmVudHNbdF19ZWxzZSBkZWxldGUgdGhpcy5fZXZlbnRzW3RdO3JldHVybiB0aGlzfSxvbmNlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZnVuY3Rpb24obil7dGhpcy5vZmYodCxyKSxlLmNhbGwodGhpcyxuKX0uYmluZCh0aGlzKTtyZXR1cm4gdGhpcy5vbih0LHIpLHRoaXN9LGZpcmU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy5saXN0ZW5zKHQpKXJldHVybiBuLmVuZHNXaXRoKHQsImVycm9yIikmJmNvbnNvbGUuZXJyb3IoZSYmZS5lcnJvcnx8ZXx8IkVtcHR5IGVycm9yIGV2ZW50IiksdGhpcztlPW4uZXh0ZW5kKHt9LGUpLG4uZXh0ZW5kKGUse3R5cGU6dCx0YXJnZXQ6dGhpc30pO2Zvcih2YXIgcj10aGlzLl9ldmVudHNbdF0uc2xpY2UoKSxpPTA7aTxyLmxlbmd0aDtpKyspcltpXS5jYWxsKHRoaXMsZSk7cmV0dXJuIHRoaXN9LGxpc3RlbnM6ZnVuY3Rpb24odCl7cmV0dXJuISghdGhpcy5fZXZlbnRzfHwhdGhpcy5fZXZlbnRzW3RdKX19O2UuZXhwb3J0cz1pfSx7Ii4vdXRpbCI6MzY2fV0sMzU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLnN0YWNrcz10LnJlYWRGaWVsZHMoaSxbXSxlKX1mdW5jdGlvbiBpKHQsZSxyKXtpZigxPT09dCl7dmFyIG49ci5yZWFkTWVzc2FnZShvLHtnbHlwaHM6e319KTtlLnB1c2gobil9fWZ1bmN0aW9uIG8odCxlLHIpe2lmKDE9PT10KWUubmFtZT1yLnJlYWRTdHJpbmcoKTtlbHNlIGlmKDI9PT10KWUucmFuZ2U9ci5yZWFkU3RyaW5nKCk7ZWxzZSBpZigzPT09dCl7dmFyIG49ci5yZWFkTWVzc2FnZShhLHt9KTtlLmdseXBoc1tuLmlkXT1ufX1mdW5jdGlvbiBhKHQsZSxyKXsxPT09dD9lLmlkPXIucmVhZFZhcmludCgpOjI9PT10P2UuYml0bWFwPXIucmVhZEJ5dGVzKCk6Mz09PXQ/ZS53aWR0aD1yLnJlYWRWYXJpbnQoKTo0PT09dD9lLmhlaWdodD1yLnJlYWRWYXJpbnQoKTo1PT09dD9lLmxlZnQ9ci5yZWFkU1ZhcmludCgpOjY9PT10P2UudG9wPXIucmVhZFNWYXJpbnQoKTo3PT09dCYmKGUuYWR2YW5jZT1yLnJlYWRWYXJpbnQoKSl9ZS5leHBvcnRzPW59LHt9XSwzNjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7cmV0dXJuIHQqKDEtcikrZSpyfWUuZXhwb3J0cz1uLG4ubnVtYmVyPW4sbi52ZWMyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bbih0WzBdLGVbMF0sciksbih0WzFdLGVbMV0scildfSxuLmNvbG9yPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bbih0WzBdLGVbMF0sciksbih0WzFdLGVbMV0sciksbih0WzJdLGVbMl0sciksbih0WzNdLGVbM10scildfSxuLmFycmF5PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC5tYXAoZnVuY3Rpb24odCxpKXtyZXR1cm4gbih0LGVbaV0scil9KX19LHt9XSwzNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspZm9yKHZhciBpPXRbbl0sbz0wO288ZS5sZW5ndGg7bysrKWZvcih2YXIgYT1lW29dLHM9MDtzPGEubGVuZ3RoO3MrKyl7dmFyIGw9YVtzXTtpZihwKGksbCkpcmV0dXJuITA7aWYoYyhsLGkscikpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gaSh0LGUpe2lmKDE9PT10Lmxlbmd0aCYmMT09PXRbMF0ubGVuZ3RoKXJldHVybiBmKGUsdFswXVswXSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBuPWVbcl0saT0wO2k8bi5sZW5ndGg7aSsrKWlmKGYodCxuW2ldKSlyZXR1cm4hMDtmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7Zm9yKHZhciBhPXRbb10sbD0wO2w8YS5sZW5ndGg7bCsrKWlmKGYoZSxhW2xdKSlyZXR1cm4hMDtmb3IodmFyIHU9MDt1PGUubGVuZ3RoO3UrKylpZihzKGEsZVt1XSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gbyh0LGUscil7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspZm9yKHZhciBpPWVbbl0sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dO2lmKHMubGVuZ3RoPj0zKWZvcih2YXIgbD0wO2w8aS5sZW5ndGg7bCsrKWlmKHAocyxpW2xdKSlyZXR1cm4hMDtpZihhKHMsaSxyKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBhKHQsZSxyKXtpZih0Lmxlbmd0aD4xKXtpZihzKHQsZSkpcmV0dXJuITA7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoYyhlW25dLHQscikpcmV0dXJuITB9Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspaWYoYyh0W2ldLGUscikpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gcyh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGgtMTtyKyspZm9yKHZhciBuPXRbcl0saT10W3IrMV0sbz0wO288ZS5sZW5ndGgtMTtvKyspe3ZhciBhPWVbb10scz1lW28rMV07aWYodShuLGksYSxzKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4oci55LXQueSkqKGUueC10LngpPihlLnktdC55KSooci54LXQueCl9ZnVuY3Rpb24gdSh0LGUscixuKXtyZXR1cm4gbCh0LHIsbikhPT1sKGUscixuKSYmbCh0LGUscikhPT1sKHQsZSxuKX1mdW5jdGlvbiBjKHQsZSxyKXt2YXIgbj1yKnI7aWYoMT09PWUubGVuZ3RoKXJldHVybiB0LmRpc3RTcXIoZVswXSk8bjtmb3IodmFyIGk9MTtpPGUubGVuZ3RoO2krKyl7dmFyIG89ZVtpLTFdLGE9ZVtpXTtpZihoKHQsbyxhKTxuKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGgodCxlLHIpe3ZhciBuPWUuZGlzdFNxcihyKTtpZigwPT09bilyZXR1cm4gdC5kaXN0U3FyKGUpO3ZhciBpPSgodC54LWUueCkqKHIueC1lLngpKyh0LnktZS55KSooci55LWUueSkpL247cmV0dXJuIDA+aT90LmRpc3RTcXIoZSk6aT4xP3QuZGlzdFNxcihyKTp0LmRpc3RTcXIoci5zdWIoZSkuX211bHQoaSkuX2FkZChlKSl9ZnVuY3Rpb24gZih0LGUpe2Zvcih2YXIgcixuLGksbz0hMSxhPTA7YTx0Lmxlbmd0aDthKyspe3I9dFthXTtmb3IodmFyIHM9MCxsPXIubGVuZ3RoLTE7czxyLmxlbmd0aDtsPXMrKyluPXJbc10saT1yW2xdLG4ueT5lLnkhPWkueT5lLnkmJmUueDwoaS54LW4ueCkqKGUueS1uLnkpLyhpLnktbi55KStuLngmJihvPSFvKX1yZXR1cm4gb31mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPSExLG49MCxpPXQubGVuZ3RoLTE7bjx0Lmxlbmd0aDtpPW4rKyl7dmFyIG89dFtuXSxhPXRbaV07by55PmUueSE9YS55PmUueSYmZS54PChhLngtby54KSooZS55LW8ueSkvKGEueS1vLnkpK28ueCYmKHI9IXIpfXJldHVybiByfWUuZXhwb3J0cz17bXVsdGlQb2x5Z29uSW50ZXJzZWN0c0J1ZmZlcmVkTXVsdGlQb2ludDpuLG11bHRpUG9seWdvbkludGVyc2VjdHNNdWx0aVBvbHlnb246aSxtdWx0aVBvbHlnb25JbnRlcnNlY3RzQnVmZmVyZWRNdWx0aUxpbmU6b319LHt9XSwzNjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMubWF4PXQsdGhpcy5vblJlbW92ZT1lLHRoaXMucmVzZXQoKX1lLmV4cG9ydHM9bixuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLmRhdGEpdGhpcy5vblJlbW92ZSh0aGlzLmRhdGFbdF0pO3JldHVybiB0aGlzLmRhdGE9e30sdGhpcy5vcmRlcj1bXSx0aGlzfSxuLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmhhcyh0KSl0aGlzLm9yZGVyLnNwbGljZSh0aGlzLm9yZGVyLmluZGV4T2YodCksMSksdGhpcy5kYXRhW3RdPWUsdGhpcy5vcmRlci5wdXNoKHQpO2Vsc2UgaWYodGhpcy5kYXRhW3RdPWUsdGhpcy5vcmRlci5wdXNoKHQpLHRoaXMub3JkZXIubGVuZ3RoPnRoaXMubWF4KXt2YXIgcj10aGlzLmdldCh0aGlzLm9yZGVyWzBdKTtyJiZ0aGlzLm9uUmVtb3ZlKHIpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gdGhpcy5kYXRhfSxuLnByb3RvdHlwZS5rZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3JkZXJ9LG4ucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZighdGhpcy5oYXModCkpcmV0dXJuIG51bGw7dmFyIGU9dGhpcy5kYXRhW3RdO3JldHVybiBkZWxldGUgdGhpcy5kYXRhW3RdLHRoaXMub3JkZXIuc3BsaWNlKHRoaXMub3JkZXIuaW5kZXhPZih0KSwxKSxlfSxuLnByb3RvdHlwZS5zZXRNYXhTaXplPWZ1bmN0aW9uKHQpe2Zvcih0aGlzLm1heD10O3RoaXMub3JkZXIubGVuZ3RoPnRoaXMubWF4Oyl7dmFyIGU9dGhpcy5nZXQodGhpcy5vcmRlclswXSk7ZSYmdGhpcy5vblJlbW92ZShlKX1yZXR1cm4gdGhpc319LHt9XSwzNjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7aWYocj1yfHxhLkFDQ0VTU19UT0tFTiwhciYmYS5SRVFVSVJFX0FDQ0VTU19UT0tFTil0aHJvdyBuZXcgRXJyb3IoIkFuIEFQSSBhY2Nlc3MgdG9rZW4gaXMgcmVxdWlyZWQgdG8gdXNlIE1hcGJveCBHTC4gU2VlIGh0dHBzOi8vd3d3Lm1hcGJveC5jb20vZGV2ZWxvcGVycy9hcGkvI2FjY2Vzcy10b2tlbnMiKTtpZih0PXQucmVwbGFjZSgvXm1hcGJveDpcL1wvLyxhLkFQSV9VUkwrZSksdCs9LTEhPT10LmluZGV4T2YoIj8iKT8iJmFjY2Vzc190b2tlbj0iOiI/YWNjZXNzX3Rva2VuPSIsYS5SRVFVSVJFX0FDQ0VTU19UT0tFTil7aWYoInMiPT09clswXSl0aHJvdyBuZXcgRXJyb3IoIlVzZSBhIHB1YmxpYyBhY2Nlc3MgdG9rZW4gKHBrLiopIHdpdGggTWFwYm94IEdMIEpTLCBub3QgYSBzZWNyZXQgYWNjZXNzIHRva2VuIChzay4qKS4gU2VlIGh0dHBzOi8vd3d3Lm1hcGJveC5jb20vZGV2ZWxvcGVycy9hcGkvI2FjY2Vzcy10b2tlbnMiKTt0Kz1yfXJldHVybiB0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQ/Ij8iK3Q6IiJ9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdC5hY2Nlc3NfdG9rZW4mJiJ0ay4iPT09dC5hY2Nlc3NfdG9rZW4uc2xpY2UoMCwzKT91LmV4dGVuZCh7fSx0LHthY2Nlc3NfdG9rZW46YS5BQ0NFU1NfVE9LRU59KTp0fXZhciBhPXQoIi4vY29uZmlnIikscz10KCIuL2Jyb3dzZXIiKSxsPXQoInVybCIpLHU9dCgiLi91dGlsIik7ZS5leHBvcnRzLm5vcm1hbGl6ZVN0eWxlVVJMPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bC5wYXJzZSh0KTtyZXR1cm4ibWFwYm94OiIhPT1yLnByb3RvY29sP3Q6bigibWFwYm94Oi8iK3IucGF0aG5hbWUraShyLnF1ZXJ5KSwiL3N0eWxlcy92MS8iLGUpfSxlLmV4cG9ydHMubm9ybWFsaXplU291cmNlVVJMPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bC5wYXJzZSh0KTtyZXR1cm4ibWFwYm94OiIhPT1yLnByb3RvY29sP3Q6bih0KyIuanNvbiIsIi92NC8iLGUpKyImc2VjdXJlIn0sZS5leHBvcnRzLm5vcm1hbGl6ZUdseXBoc1VSTD1mdW5jdGlvbih0LGUpe3ZhciByPWwucGFyc2UodCk7aWYoIm1hcGJveDoiIT09ci5wcm90b2NvbClyZXR1cm4gdDt2YXIgbz1yLnBhdGhuYW1lLnNwbGl0KCIvIilbMV07cmV0dXJuIG4oIm1hcGJveDovLyIrbysiL3tmb250c3RhY2t9L3tyYW5nZX0ucGJmIitpKHIucXVlcnkpLCIvZm9udHMvdjEvIixlKX0sZS5leHBvcnRzLm5vcm1hbGl6ZVNwcml0ZVVSTD1mdW5jdGlvbih0LGUscixvKXt2YXIgYT1sLnBhcnNlKHQpO3JldHVybiJtYXBib3g6IiE9PWEucHJvdG9jb2w/KGEucGF0aG5hbWUrPWUrcixsLmZvcm1hdChhKSk6bigibWFwYm94Oi8iK2EucGF0aG5hbWUrIi9zcHJpdGUiK2UrcitpKGEucXVlcnkpLCIvc3R5bGVzL3YxLyIsbyl9LGUuZXhwb3J0cy5ub3JtYWxpemVUaWxlVVJMPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1sLnBhcnNlKHQsITApO2lmKCFlKXJldHVybiB0O3ZhciBpPWwucGFyc2UoZSk7aWYoIm1hcGJveDoiIT09aS5wcm90b2NvbClyZXR1cm4gdDt2YXIgYT1zLnN1cHBvcnRzV2VicD8iLndlYnAiOiIkMSIsdT1zLmRldmljZVBpeGVsUmF0aW8+PTJ8fDUxMj09PXI/IkAyeCI6IiI7cmV0dXJuIGwuZm9ybWF0KHtwcm90b2NvbDpuLnByb3RvY29sLGhvc3RuYW1lOm4uaG9zdG5hbWUscGF0aG5hbWU6bi5wYXRobmFtZS5yZXBsYWNlKC8oXC4oPzpwbmd8anBnKVxkKikvLHUrYSkscXVlcnk6byhuLnF1ZXJ5KX0pfX0seyIuL2Jyb3dzZXIiOjM1MCwiLi9jb25maWciOjM1NSwiLi91dGlsIjozNjYsdXJsOjY0fV0sMzY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7ZnVuY3Rpb24gZSgpe2YuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHIoKXtwLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLm1lbWJlcnM9ZS5wcm90b3R5cGUubWVtYmVyc312YXIgbj1KU09OLnN0cmluZ2lmeSh0KTtpZihtW25dKXJldHVybiBtW25dO3ZvaWQgMD09PXQuYWxpZ25tZW50JiYodC5hbGlnbm1lbnQ9MSksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShmLnByb3RvdHlwZSk7dmFyIHM9MCx1PTAsZD1bIlVpbnQ4Il07cmV0dXJuIGUucHJvdG90eXBlLm1lbWJlcnM9dC5tZW1iZXJzLm1hcChmdW5jdGlvbihyKXtyPXtuYW1lOnIubmFtZSx0eXBlOnIudHlwZSxjb21wb25lbnRzOnIuY29tcG9uZW50c3x8MX0sZC5pbmRleE9mKHIudHlwZSk8MCYmZC5wdXNoKHIudHlwZSk7dmFyIG49YShyLnR5cGUpO3U9TWF0aC5tYXgodSxuKSxyLm9mZnNldD1zPW8ocyxNYXRoLm1heCh0LmFsaWdubWVudCxuKSk7Zm9yKHZhciBpPTA7aTxyLmNvbXBvbmVudHM7aSsrKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSxyLm5hbWUrKDE9PT1yLmNvbXBvbmVudHM/IiI6aSkse2dldDpjKHIsaSksc2V0OmgocixpKX0pO3JldHVybiBzKz1uKnIuY29tcG9uZW50cyxyfSksZS5wcm90b3R5cGUuYWxpZ25tZW50PXQuYWxpZ25tZW50LGUucHJvdG90eXBlLnNpemU9byhzLE1hdGgubWF4KHUsdC5hbGlnbm1lbnQpKSxyLnNlcmlhbGl6ZT1pLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUocC5wcm90b3R5cGUpLHIucHJvdG90eXBlLlN0cnVjdFR5cGU9ZSxyLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9ZS5wcm90b3R5cGUuc2l6ZSxyLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1sKGUucHJvdG90eXBlLm1lbWJlcnMsZS5wcm90b3R5cGUuc2l6ZSksci5wcm90b3R5cGUuX3VzZWRUeXBlcz1kLG1bbl09cixyfWZ1bmN0aW9uIGkoKXtyZXR1cm57bWVtYmVyczp0aGlzLnByb3RvdHlwZS5TdHJ1Y3RUeXBlLnByb3RvdHlwZS5tZW1iZXJzLGFsaWdubWVudDp0aGlzLnByb3RvdHlwZS5TdHJ1Y3RUeXBlLnByb3RvdHlwZS5hbGlnbm1lbnQsYnl0ZXNQZXJFbGVtZW50OnRoaXMucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudH19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBNYXRoLmNlaWwodC9lKSplfWZ1bmN0aW9uIGEodCl7cmV0dXJuIGRbdF0uQllURVNfUEVSX0VMRU1FTlR9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGwodCxlKXtmb3IodmFyIHI9W10sbj1bXSxpPSJ2YXIgaSA9IHRoaXMubGVuZ3RoO1xudGhpcy5yZXNpemUodGhpcy5sZW5ndGggKyAxKTtcbiIsbz0wO288dC5sZW5ndGg7bysrKXt2YXIgbD10W29dLHU9YShsLnR5cGUpO3IuaW5kZXhPZih1KTwwJiYoci5wdXNoKHUpLGkrPSJ2YXIgbyIrdS50b0ZpeGVkKDApKyIgPSBpICogIisoZS91KS50b0ZpeGVkKDApKyI7XG4iKTtmb3IodmFyIGM9MDtjPGwuY29tcG9uZW50cztjKyspe3ZhciBoPSJ2IituLmxlbmd0aCxmPSJvIit1LnRvRml4ZWQoMCkrIiArICIrKGwub2Zmc2V0L3UrYykudG9GaXhlZCgwKTtpKz0idGhpcy4iK3MobC50eXBlKSsiWyIrZisiXSA9ICIraCsiO1xuIixuLnB1c2goaCl9fXJldHVybiBpKz0icmV0dXJuIGk7IixuZXcgRnVuY3Rpb24obixpKX1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9InRoaXMuX3BvcyIrYSh0LnR5cGUpLnRvRml4ZWQoMCksbj0odC5vZmZzZXQvYSh0LnR5cGUpK2UpLnRvRml4ZWQoMCksaT1yKyIgKyAiK247cmV0dXJuInRoaXMuX3N0cnVjdEFycmF5LiIrcyh0LnR5cGUpKyJbIitpKyJdIn1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIG5ldyBGdW5jdGlvbihbXSwicmV0dXJuICIrdSh0LGUpKyI7Iil9ZnVuY3Rpb24gaCh0LGUpe3JldHVybiBuZXcgRnVuY3Rpb24oWyJ4Il0sdSh0LGUpKyIgPSB4OyIpfWZ1bmN0aW9uIGYodCxlKXt0aGlzLl9zdHJ1Y3RBcnJheT10LHRoaXMuX3BvczE9ZSp0aGlzLnNpemUsdGhpcy5fcG9zMj10aGlzLl9wb3MxLzIsdGhpcy5fcG9zND10aGlzLl9wb3MxLzQsdGhpcy5fcG9zOD10aGlzLl9wb3MxLzh9ZnVuY3Rpb24gcCh0KXt2b2lkIDAhPT10Pyh0aGlzLmFycmF5QnVmZmVyPXQuYXJyYXlCdWZmZXIsdGhpcy5sZW5ndGg9dC5sZW5ndGgsdGhpcy5jYXBhY2l0eT10aGlzLmFycmF5QnVmZmVyLmJ5dGVMZW5ndGgvdGhpcy5ieXRlc1BlckVsZW1lbnQsdGhpcy5fcmVmcmVzaFZpZXdzKCkpOih0aGlzLmNhcGFjaXR5PS0xLHRoaXMucmVzaXplKDApKX1lLmV4cG9ydHM9bjt2YXIgZD17SW50ODpJbnQ4QXJyYXksVWludDg6VWludDhBcnJheSxVaW50OENsYW1wZWQ6VWludDhDbGFtcGVkQXJyYXksSW50MTY6SW50MTZBcnJheSxVaW50MTY6VWludDE2QXJyYXksSW50MzI6SW50MzJBcnJheSxVaW50MzI6VWludDMyQXJyYXksRmxvYXQzMjpGbG9hdDMyQXJyYXksRmxvYXQ2NDpGbG9hdDY0QXJyYXl9LG09e307cC5wcm90b3R5cGUuREVGQVVMVF9DQVBBQ0lUWT0xMjgscC5wcm90b3R5cGUuUkVTSVpFX01VTFRJUExJRVI9NSxwLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmltKCkse2xlbmd0aDp0aGlzLmxlbmd0aCxhcnJheUJ1ZmZlcjp0aGlzLmFycmF5QnVmZmVyfX0scC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdGhpcy5TdHJ1Y3RUeXBlKHRoaXMsdCl9LHAucHJvdG90eXBlLnRyaW09ZnVuY3Rpb24oKXt0aGlzLmxlbmd0aCE9PXRoaXMuY2FwYWNpdHkmJih0aGlzLmNhcGFjaXR5PXRoaXMubGVuZ3RoLHRoaXMuYXJyYXlCdWZmZXI9dGhpcy5hcnJheUJ1ZmZlci5zbGljZSgwLHRoaXMubGVuZ3RoKnRoaXMuYnl0ZXNQZXJFbGVtZW50KSx0aGlzLl9yZWZyZXNoVmlld3MoKSl9LHAucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXtpZih0aGlzLmxlbmd0aD10LHQ+dGhpcy5jYXBhY2l0eSl7dGhpcy5jYXBhY2l0eT1NYXRoLm1heCh0LE1hdGguZmxvb3IodGhpcy5jYXBhY2l0eSp0aGlzLlJFU0laRV9NVUxUSVBMSUVSKSx0aGlzLkRFRkFVTFRfQ0FQQUNJVFkpLHRoaXMuYXJyYXlCdWZmZXI9bmV3IEFycmF5QnVmZmVyKHRoaXMuY2FwYWNpdHkqdGhpcy5ieXRlc1BlckVsZW1lbnQpO3ZhciBlPXRoaXMudWludDg7dGhpcy5fcmVmcmVzaFZpZXdzKCksZSYmdGhpcy51aW50OC5zZXQoZSl9fSxwLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDx0aGlzLl91c2VkVHlwZXMubGVuZ3RoO3QrKyl7dmFyIGU9dGhpcy5fdXNlZFR5cGVzW3RdO3RoaXNbcyhlKV09bmV3IGRbZV0odGhpcy5hcnJheUJ1ZmZlcil9fSxwLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dDtlPm47bisrKXt2YXIgaT10aGlzLmdldChuKTtyLnB1c2goaSl9cmV0dXJuIHJ9fSx7fV0sMzY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gZS5yZXBsYWNlKC97KFtee31dKyl9L2csZnVuY3Rpb24oZSxyKXtyZXR1cm4gciBpbiB0P3Rbcl06IiJ9KX1lLmV4cG9ydHM9bn0se31dLDM2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ1bml0YmV6aWVyIiksaT10KCIuLi9nZW8vY29vcmRpbmF0ZSIpO3IuZWFzZUN1YmljSW5PdXQ9ZnVuY3Rpb24odCl7aWYoMD49dClyZXR1cm4gMDtpZih0Pj0xKXJldHVybiAxO3ZhciBlPXQqdCxyPWUqdDtyZXR1cm4gNCooLjU+dD9yOjMqKHQtZSkrci0uNzUpfSxyLmJlemllcj1mdW5jdGlvbih0LGUscixpKXt2YXIgbz1uZXcgbih0LGUscixpKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG8uc29sdmUodCl9fSxyLmVhc2U9ci5iZXppZXIoLjI1LC4xLC4yNSwxKSxyLmNsYW1wPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gTWF0aC5taW4ocixNYXRoLm1heChlLHQpKX0sci53cmFwPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yLWUsaT0oKHQtZSklbituKSVuK2U7cmV0dXJuIGk9PT1lP3I6aX0sci5jb2FsZXNjZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBlPWFyZ3VtZW50c1t0XTtpZihudWxsIT09ZSYmdm9pZCAwIT09ZSlyZXR1cm4gZX19LHIuYXN5bmNBbGw9ZnVuY3Rpb24odCxlLHIpe2lmKCF0Lmxlbmd0aClyZXR1cm4gcihudWxsLFtdKTt2YXIgbj10Lmxlbmd0aCxpPW5ldyBBcnJheSh0Lmxlbmd0aCksbz1udWxsO3QuZm9yRWFjaChmdW5jdGlvbih0LGEpe2UodCxmdW5jdGlvbih0LGUpe3QmJihvPXQpLGlbYV09ZSwwPT09LS1uJiZyKG8saSl9KX0pfSxyLmtleXNEaWZmZXJlbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107Zm9yKHZhciBuIGluIHQpbiBpbiBlfHxyLnB1c2gobik7cmV0dXJuIHJ9LHIuZXh0ZW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspe3ZhciByPWFyZ3VtZW50c1tlXTtmb3IodmFyIG4gaW4gcil0W25dPXJbbl19cmV0dXJuIHR9LHIuZXh0ZW5kQWxsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGUpT2JqZWN0LmRlZmluZVByb3BlcnR5KHQscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikpO3JldHVybiB0fSxyLmluaGVyaXQ9ZnVuY3Rpb24odCxlKXt2YXIgbj0iZnVuY3Rpb24iPT10eXBlb2YgdD90LnByb3RvdHlwZTp0LGk9T2JqZWN0LmNyZWF0ZShuKTtyZXR1cm4gci5leHRlbmRBbGwoaSxlKSxpfSxyLnBpY2s9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kgaW4gdCYmKHJbaV09dFtpXSl9cmV0dXJuIHJ9O3ZhciBvPTE7ci51bmlxdWVJZD1mdW5jdGlvbigpe3JldHVybiBvKyt9LHIuZGVib3VuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcixuO3JldHVybiBmdW5jdGlvbigpe249YXJndW1lbnRzLGNsZWFyVGltZW91dChyKSxyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmFwcGx5KG51bGwsbil9LGUpfX0sci5iaW5kQWxsPWZ1bmN0aW9uKHQsZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2VbdF0mJihlW3RdPWVbdF0uYmluZChlKSl9KX0sci5iaW5kSGFuZGxlcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpImZ1bmN0aW9uIj09dHlwZW9mIHRbZV0mJjA9PT1lLmluZGV4T2YoIl9vbiIpJiYodFtlXT10W2VdLmJpbmQodCkpfSxyLnNldE9wdGlvbnM9ZnVuY3Rpb24odCxlKXt0Lmhhc093blByb3BlcnR5KCJvcHRpb25zIil8fCh0Lm9wdGlvbnM9dC5vcHRpb25zP09iamVjdC5jcmVhdGUodC5vcHRpb25zKTp7fSk7Zm9yKHZhciByIGluIGUpdC5vcHRpb25zW3JdPWVbcl07cmV0dXJuIHQub3B0aW9uc30sci5nZXRDb29yZGluYXRlc0NlbnRlcj1mdW5jdGlvbih0KXtmb3IodmFyIGU9MS8wLHI9MS8wLG49LSgxLzApLG89LSgxLzApLGE9MDthPHQubGVuZ3RoO2ErKyllPU1hdGgubWluKGUsdFthXS5jb2x1bW4pLHI9TWF0aC5taW4ocix0W2FdLnJvdyksbj1NYXRoLm1heChuLHRbYV0uY29sdW1uKSxvPU1hdGgubWF4KG8sdFthXS5yb3cpO3ZhciBzPW4tZSxsPW8tcix1PU1hdGgubWF4KHMsbCk7cmV0dXJuIG5ldyBpKChlK24pLzIsKHIrbykvMiwwKS56b29tVG8oTWF0aC5mbG9vcigtTWF0aC5sb2codSkvTWF0aC5MTjIpKX0sci5lbmRzV2l0aD1mdW5jdGlvbih0LGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUsdC5sZW5ndGgtZS5sZW5ndGgpfSxyLnN0YXJ0c1dpdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PXQuaW5kZXhPZihlKX0sci5tYXBPYmplY3Q9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt9O2Zvcih2YXIgaSBpbiB0KW5baV09ZS5jYWxsKHJ8fHRoaXMsdFtpXSxpLHQpO3JldHVybiBufSxyLmZpbHRlck9iamVjdD1mdW5jdGlvbih0LGUscil7dmFyIG49e307Zm9yKHZhciBpIGluIHQpZS5jYWxsKHJ8fHRoaXMsdFtpXSxpLHQpJiYobltpXT10W2ldKTtyZXR1cm4gbn0sci5kZWVwRXF1YWw9ZnVuY3Rpb24gcyh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpe2lmKCFBcnJheS5pc0FycmF5KGUpfHx0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKCFzKHRbcl0sZVtyXSkpcmV0dXJuITE7cmV0dXJuITB9aWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmbnVsbCE9PWUpe2lmKCJvYmplY3QiIT10eXBlb2YgZSlyZXR1cm4hMTt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aCE9PU9iamVjdC5rZXlzKGUpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGkgaW4gdClpZighcyh0W2ldLGVbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiB0PT09ZX0sci5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lm1hcChyLmNsb25lKToib2JqZWN0Ij09dHlwZW9mIHQ/ci5tYXBPYmplY3QodCxyLmNsb25lKTp0fSxyLmFycmF5c0ludGVyc2VjdD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGUuaW5kZXhPZih0W3JdKT49MClyZXR1cm4hMDtyZXR1cm4hMX07dmFyIGE9e307ci53YXJuT25jZT1mdW5jdGlvbih0KXthW3RdfHwoInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4odCksYVt0XT0hMCl9fSx7Ii4uL2dlby9jb29yZGluYXRlIjoyNjIsdW5pdGJlemllcjo0MzN9XSwzNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZT10LHQuX3o9ZSx0Ll94PXIsdC5feT1uLHRoaXMucHJvcGVydGllcz10LnByb3BlcnRpZXMsbnVsbCE9dC5pZCYmKHRoaXMuaWQ9dC5pZCl9ZS5leHBvcnRzPW4sbi5wcm90b3R5cGU9e3R5cGU6IkZlYXR1cmUiLGdldCBnZW9tZXRyeSgpe3JldHVybiB2b2lkIDA9PT10aGlzLl9nZW9tZXRyeSYmKHRoaXMuX2dlb21ldHJ5PXRoaXMuX3ZlY3RvclRpbGVGZWF0dXJlLnRvR2VvSlNPTih0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feCx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feSx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feikuZ2VvbWV0cnkpLHRoaXMuX2dlb21ldHJ5fSxzZXQgZ2VvbWV0cnkodCl7dGhpcy5fZ2VvbWV0cnk9dH0sdG9KU09OOmZ1bmN0aW9uKCl7dmFyIHQ9e307Zm9yKHZhciBlIGluIHRoaXMpIl9nZW9tZXRyeSIhPT1lJiYiX3ZlY3RvclRpbGVGZWF0dXJlIiE9PWUmJiJ0b0pTT04iIT09ZSYmKHRbZV09dGhpc1tlXSk7cmV0dXJuIHR9fX0se31dLDM2ODpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQ9TWF0aC5yb3VuZCh0KSwwPnQ/MDp0PjI1NT8yNTU6dH1mdW5jdGlvbiBpKHQpe3JldHVybiAwPnQ/MDp0PjE/MTp0fWZ1bmN0aW9uIG8odCl7cmV0dXJuIG4oIiUiPT09dFt0Lmxlbmd0aC0xXT9wYXJzZUZsb2F0KHQpLzEwMCoyNTU6cGFyc2VJbnQodCkpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIGkoIiUiPT09dFt0Lmxlbmd0aC0xXT9wYXJzZUZsb2F0KHQpLzEwMDpwYXJzZUZsb2F0KHQpKX1mdW5jdGlvbiBzKHQsZSxyKXtyZXR1cm4gMD5yP3IrPTE6cj4xJiYoci09MSksMT42KnI/dCsoZS10KSpyKjY6MT4yKnI/ZToyPjMqcj90KyhlLXQpKigyLzMtcikqNjp0fWZ1bmN0aW9uIGwodCl7dmFyIGU9dC5yZXBsYWNlKC8gL2csIiIpLnRvTG93ZXJDYXNlKCk7aWYoZSBpbiB1KXJldHVybiB1W2VdLnNsaWNlKCk7aWYoIiMiPT09ZVswXSl7aWYoND09PWUubGVuZ3RoKXt2YXIgcj1wYXJzZUludChlLnN1YnN0cigxKSwxNik7cmV0dXJuIHI+PTAmJjQwOTU+PXI/WygzODQwJnIpPj40fCgzODQwJnIpPj44LDI0MCZyfCgyNDAmcik+PjQsMTUmcnwoMTUmcik8PDQsMV06bnVsbH1pZig3PT09ZS5sZW5ndGgpe3ZhciByPXBhcnNlSW50KGUuc3Vic3RyKDEpLDE2KTtyZXR1cm4gcj49MCYmMTY3NzcyMTU+PXI/WygxNjcxMTY4MCZyKT4+MTYsKDY1MjgwJnIpPj44LDI1NSZyLDFdOm51bGx9cmV0dXJuIG51bGx9dmFyIGk9ZS5pbmRleE9mKCIoIiksbD1lLmluZGV4T2YoIikiKTtpZigtMSE9PWkmJmwrMT09PWUubGVuZ3RoKXt2YXIgYz1lLnN1YnN0cigwLGkpLGg9ZS5zdWJzdHIoaSsxLGwtKGkrMSkpLnNwbGl0KCIsIiksZj0xO3N3aXRjaChjKXtjYXNlInJnYmEiOmlmKDQhPT1oLmxlbmd0aClyZXR1cm4gbnVsbDtmPWEoaC5wb3AoKSk7Y2FzZSJyZ2IiOnJldHVybiAzIT09aC5sZW5ndGg/bnVsbDpbbyhoWzBdKSxvKGhbMV0pLG8oaFsyXSksZl07Y2FzZSJoc2xhIjppZig0IT09aC5sZW5ndGgpcmV0dXJuIG51bGw7Zj1hKGgucG9wKCkpO2Nhc2UiaHNsIjppZigzIT09aC5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHA9KHBhcnNlRmxvYXQoaFswXSklMzYwKzM2MCklMzYwLzM2MCxkPWEoaFsxXSksbT1hKGhbMl0pLGc9LjU+PW0/bSooZCsxKTptK2QtbSpkLHY9MiptLWc7cmV0dXJuW24oMjU1KnModixnLHArMS8zKSksbigyNTUqcyh2LGcscCkpLG4oMjU1KnModixnLHAtMS8zKSksZl07ZGVmYXVsdDpyZXR1cm4gbnVsbH19cmV0dXJuIG51bGx9dmFyIHU9e3RyYW5zcGFyZW50OlswLDAsMCwwXSxhbGljZWJsdWU6WzI0MCwyNDgsMjU1LDFdLGFudGlxdWV3aGl0ZTpbMjUwLDIzNSwyMTUsMV0sYXF1YTpbMCwyNTUsMjU1LDFdLGFxdWFtYXJpbmU6WzEyNywyNTUsMjEyLDFdLGF6dXJlOlsyNDAsMjU1LDI1NSwxXSxiZWlnZTpbMjQ1LDI0NSwyMjAsMV0sYmlzcXVlOlsyNTUsMjI4LDE5NiwxXSxibGFjazpbMCwwLDAsMV0sYmxhbmNoZWRhbG1vbmQ6WzI1NSwyMzUsMjA1LDFdLGJsdWU6WzAsMCwyNTUsMV0sYmx1ZXZpb2xldDpbMTM4LDQzLDIyNiwxXSxicm93bjpbMTY1LDQyLDQyLDFdLGJ1cmx5d29vZDpbMjIyLDE4NCwxMzUsMV0sY2FkZXRibHVlOls5NSwxNTgsMTYwLDFdLGNoYXJ0cmV1c2U6WzEyNywyNTUsMCwxXSxjaG9jb2xhdGU6WzIxMCwxMDUsMzAsMV0sY29yYWw6WzI1NSwxMjcsODAsMV0sY29ybmZsb3dlcmJsdWU6WzEwMCwxNDksMjM3LDFdLGNvcm5zaWxrOlsyNTUsMjQ4LDIyMCwxXSxjcmltc29uOlsyMjAsMjAsNjAsMV0sY3lhbjpbMCwyNTUsMjU1LDFdLGRhcmtibHVlOlswLDAsMTM5LDFdLGRhcmtjeWFuOlswLDEzOSwxMzksMV0sZGFya2dvbGRlbnJvZDpbMTg0LDEzNCwxMSwxXSxkYXJrZ3JheTpbMTY5LDE2OSwxNjksMV0sZGFya2dyZWVuOlswLDEwMCwwLDFdLGRhcmtncmV5OlsxNjksMTY5LDE2OSwxXSxkYXJra2hha2k6WzE4OSwxODMsMTA3LDFdLGRhcmttYWdlbnRhOlsxMzksMCwxMzksMV0sZGFya29saXZlZ3JlZW46Wzg1LDEwNyw0NywxXSxkYXJrb3JhbmdlOlsyNTUsMTQwLDAsMV0sZGFya29yY2hpZDpbMTUzLDUwLDIwNCwxXSxkYXJrcmVkOlsxMzksMCwwLDFdLGRhcmtzYWxtb246WzIzMywxNTAsMTIyLDFdLGRhcmtzZWFncmVlbjpbMTQzLDE4OCwxNDMsMV0sZGFya3NsYXRlYmx1ZTpbNzIsNjEsMTM5LDFdLGRhcmtzbGF0ZWdyYXk6WzQ3LDc5LDc5LDFdLGRhcmtzbGF0ZWdyZXk6WzQ3LDc5LDc5LDFdLGRhcmt0dXJxdW9pc2U6WzAsMjA2LDIwOSwxXSxkYXJrdmlvbGV0OlsxNDgsMCwyMTEsMV0sZGVlcHBpbms6WzI1NSwyMCwxNDcsMV0sZGVlcHNreWJsdWU6WzAsMTkxLDI1NSwxXSxkaW1ncmF5OlsxMDUsMTA1LDEwNSwxXSxkaW1ncmV5OlsxMDUsMTA1LDEwNSwxXSxkb2RnZXJibHVlOlszMCwxNDQsMjU1LDFdLGZpcmVicmljazpbMTc4LDM0LDM0LDFdLGZsb3JhbHdoaXRlOlsyNTUsMjUwLDI0MCwxXSxmb3Jlc3RncmVlbjpbMzQsMTM5LDM0LDFdLGZ1Y2hzaWE6WzI1NSwwLDI1NSwxXSxnYWluc2Jvcm86WzIyMCwyMjAsMjIwLDFdLGdob3N0d2hpdGU6WzI0OCwyNDgsMjU1LDFdLGdvbGQ6WzI1NSwyMTUsMCwxXSxnb2xkZW5yb2Q6WzIxOCwxNjUsMzIsMV0sZ3JheTpbMTI4LDEyOCwxMjgsMV0sZ3JlZW46WzAsMTI4LDAsMV0sZ3JlZW55ZWxsb3c6WzE3MywyNTUsNDcsMV0sZ3JleTpbMTI4LDEyOCwxMjgsMV0saG9uZXlkZXc6WzI0MCwyNTUsMjQwLDFdLGhvdHBpbms6WzI1NSwxMDUsMTgwLDFdLGluZGlhbnJlZDpbMjA1LDkyLDkyLDFdLGluZGlnbzpbNzUsMCwxMzAsMV0saXZvcnk6WzI1NSwyNTUsMjQwLDFdLGtoYWtpOlsyNDAsMjMwLDE0MCwxXSxsYXZlbmRlcjpbMjMwLDIzMCwyNTAsMV0sbGF2ZW5kZXJibHVzaDpbMjU1LDI0MCwyNDUsMV0sbGF3bmdyZWVuOlsxMjQsMjUyLDAsMV0sbGVtb25jaGlmZm9uOlsyNTUsMjUwLDIwNSwxXSxsaWdodGJsdWU6WzE3MywyMTYsMjMwLDFdLGxpZ2h0Y29yYWw6WzI0MCwxMjgsMTI4LDFdLGxpZ2h0Y3lhbjpbMjI0LDI1NSwyNTUsMV0sbGlnaHRnb2xkZW5yb2R5ZWxsb3c6WzI1MCwyNTAsMjEwLDFdLGxpZ2h0Z3JheTpbMjExLDIxMSwyMTEsMV0sbGlnaHRncmVlbjpbMTQ0LDIzOCwxNDQsMV0sbGlnaHRncmV5OlsyMTEsMjExLDIxMSwxXSxsaWdodHBpbms6WzI1NSwxODIsMTkzLDFdLGxpZ2h0c2FsbW9uOlsyNTUsMTYwLDEyMiwxXSxsaWdodHNlYWdyZWVuOlszMiwxNzgsMTcwLDFdLGxpZ2h0c2t5Ymx1ZTpbMTM1LDIwNiwyNTAsMV0sbGlnaHRzbGF0ZWdyYXk6WzExOSwxMzYsMTUzLDFdLGxpZ2h0c2xhdGVncmV5OlsxMTksMTM2LDE1MywxXSxsaWdodHN0ZWVsYmx1ZTpbMTc2LDE5NiwyMjIsMV0sbGlnaHR5ZWxsb3c6WzI1NSwyNTUsMjI0LDFdLGxpbWU6WzAsMjU1LDAsMV0sbGltZWdyZWVuOls1MCwyMDUsNTAsMV0sbGluZW46WzI1MCwyNDAsMjMwLDFdLG1hZ2VudGE6WzI1NSwwLDI1NSwxXSxtYXJvb246WzEyOCwwLDAsMV0sbWVkaXVtYXF1YW1hcmluZTpbMTAyLDIwNSwxNzAsMV0sbWVkaXVtYmx1ZTpbMCwwLDIwNSwxXSxtZWRpdW1vcmNoaWQ6WzE4Niw4NSwyMTEsMV0sbWVkaXVtcHVycGxlOlsxNDcsMTEyLDIxOSwxXSxtZWRpdW1zZWFncmVlbjpbNjAsMTc5LDExMywxXSxtZWRpdW1zbGF0ZWJsdWU6WzEyMywxMDQsMjM4LDFdLG1lZGl1bXNwcmluZ2dyZWVuOlswLDI1MCwxNTQsMV0sbWVkaXVtdHVycXVvaXNlOls3MiwyMDksMjA0LDFdLG1lZGl1bXZpb2xldHJlZDpbMTk5LDIxLDEzMywxXSxtaWRuaWdodGJsdWU6WzI1LDI1LDExMiwxXSxtaW50Y3JlYW06WzI0NSwyNTUsMjUwLDFdLG1pc3R5cm9zZTpbMjU1LDIyOCwyMjUsMV0sbW9jY2FzaW46WzI1NSwyMjgsMTgxLDFdLG5hdmFqb3doaXRlOlsyNTUsMjIyLDE3MywxXSxuYXZ5OlswLDAsMTI4LDFdLG9sZGxhY2U6WzI1MywyNDUsMjMwLDFdLG9saXZlOlsxMjgsMTI4LDAsMV0sb2xpdmVkcmFiOlsxMDcsMTQyLDM1LDFdLG9yYW5nZTpbMjU1LDE2NSwwLDFdLG9yYW5nZXJlZDpbMjU1LDY5LDAsMV0sb3JjaGlkOlsyMTgsMTEyLDIxNCwxXSxwYWxlZ29sZGVucm9kOlsyMzgsMjMyLDE3MCwxXSxwYWxlZ3JlZW46WzE1MiwyNTEsMTUyLDFdLHBhbGV0dXJxdW9pc2U6WzE3NSwyMzgsMjM4LDFdLHBhbGV2aW9sZXRyZWQ6WzIxOSwxMTIsMTQ3LDFdLHBhcGF5YXdoaXA6WzI1NSwyMzksMjEzLDFdLHBlYWNocHVmZjpbMjU1LDIxOCwxODUsMV0scGVydTpbMjA1LDEzMyw2MywxXSxwaW5rOlsyNTUsMTkyLDIwMywxXSxwbHVtOlsyMjEsMTYwLDIyMSwxXSxwb3dkZXJibHVlOlsxNzYsMjI0LDIzMCwxXSxwdXJwbGU6WzEyOCwwLDEyOCwxXSxyZWQ6WzI1NSwwLDAsMV0scm9zeWJyb3duOlsxODgsMTQzLDE0MywxXSxyb3lhbGJsdWU6WzY1LDEwNSwyMjUsMV0sc2FkZGxlYnJvd246WzEzOSw2OSwxOSwxXSxzYWxtb246WzI1MCwxMjgsMTE0LDFdLHNhbmR5YnJvd246WzI0NCwxNjQsOTYsMV0sc2VhZ3JlZW46WzQ2LDEzOSw4NywxXSxzZWFzaGVsbDpbMjU1LDI0NSwyMzgsMV0sc2llbm5hOlsxNjAsODIsNDUsMV0sc2lsdmVyOlsxOTIsMTkyLDE5MiwxXSxza3libHVlOlsxMzUsMjA2LDIzNSwxXSxzbGF0ZWJsdWU6WzEwNiw5MCwyMDUsMV0sc2xhdGVncmF5OlsxMTIsMTI4LDE0NCwxXSxzbGF0ZWdyZXk6WzExMiwxMjgsMTQ0LDFdLHNub3c6WzI1NSwyNTAsMjUwLDFdLHNwcmluZ2dyZWVuOlswLDI1NSwxMjcsMV0sc3RlZWxibHVlOls3MCwxMzAsMTgwLDFdLHRhbjpbMjEwLDE4MCwxNDAsMV0sdGVhbDpbMCwxMjgsMTI4LDFdLHRoaXN0bGU6WzIxNiwxOTEsMjE2LDFdLHRvbWF0bzpbMjU1LDk5LDcxLDFdLHR1cnF1b2lzZTpbNjQsMjI0LDIwOCwxXSx2aW9sZXQ6WzIzOCwxMzAsMjM4LDFdLHdoZWF0OlsyNDUsMjIyLDE3OSwxXSx3aGl0ZTpbMjU1LDI1NSwyNTUsMV0sd2hpdGVzbW9rZTpbMjQ1LDI0NSwyNDUsMV0seWVsbG93OlsyNTUsMjU1LDAsMV0seWVsbG93Z3JlZW46WzE1NCwyMDUsNTAsMV19O3RyeXtyLnBhcnNlQ1NTQ29sb3I9bH1jYXRjaChjKXt9fSx7fV0sMzY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiOwpmdW5jdGlvbiBuKHQsZSxyKXtyPXJ8fDI7dmFyIG49ZSYmZS5sZW5ndGgsbz1uP2VbMF0qcjp0Lmxlbmd0aCxzPWkodCwwLG8sciwhMCksbD1bXTtpZighcylyZXR1cm4gbDt2YXIgdSxjLGYscCxkLG0sZztpZihuJiYocz1oKHQsZSxzLHIpKSx0Lmxlbmd0aD44MCpyKXt1PWY9dFswXSxjPXA9dFsxXTtmb3IodmFyIHY9cjtvPnY7dis9cilkPXRbdl0sbT10W3YrMV0sdT5kJiYodT1kKSxjPm0mJihjPW0pLGQ+ZiYmKGY9ZCksbT5wJiYocD1tKTtnPU1hdGgubWF4KGYtdSxwLWMpfXJldHVybiBhKHMsbCxyLHUsYyxnKSxsfWZ1bmN0aW9uIGkodCxlLHIsbixpKXt2YXIgbyxhO2lmKGk9PT1JKHQsZSxyLG4pPjApZm9yKG89ZTtyPm87bys9bilhPVMobyx0W29dLHRbbysxXSxhKTtlbHNlIGZvcihvPXItbjtvPj1lO28tPW4pYT1TKG8sdFtvXSx0W28rMV0sYSk7cmV0dXJuIGEmJncoYSxhLm5leHQpJiYoTChhKSxhPWEubmV4dCksYX1mdW5jdGlvbiBvKHQsZSl7aWYoIXQpcmV0dXJuIHQ7ZXx8KGU9dCk7dmFyIHIsbj10O2RvIGlmKHI9ITEsbi5zdGVpbmVyfHwhdyhuLG4ubmV4dCkmJjAhPT1fKG4ucHJldixuLG4ubmV4dCkpbj1uLm5leHQ7ZWxzZXtpZihMKG4pLG49ZT1uLnByZXYsbj09PW4ubmV4dClyZXR1cm4gbnVsbDtyPSEwfXdoaWxlKHJ8fG4hPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBhKHQsZSxyLG4saSxoLGYpe2lmKHQpeyFmJiZoJiZtKHQsbixpLGgpO2Zvcih2YXIgcCxkLGc9dDt0LnByZXYhPT10Lm5leHQ7KWlmKHA9dC5wcmV2LGQ9dC5uZXh0LGg/bCh0LG4saSxoKTpzKHQpKWUucHVzaChwLmkvciksZS5wdXNoKHQuaS9yKSxlLnB1c2goZC5pL3IpLEwodCksdD1kLm5leHQsZz1kLm5leHQ7ZWxzZSBpZih0PWQsdD09PWcpe2Y/MT09PWY/KHQ9dSh0LGUsciksYSh0LGUscixuLGksaCwyKSk6Mj09PWYmJmModCxlLHIsbixpLGgpOmEobyh0KSxlLHIsbixpLGgsMSk7YnJlYWt9fX1mdW5jdGlvbiBzKHQpe3ZhciBlPXQucHJldixyPXQsbj10Lm5leHQ7aWYoXyhlLHIsbik+PTApcmV0dXJuITE7Zm9yKHZhciBpPXQubmV4dC5uZXh0O2khPT10LnByZXY7KXtpZihiKGUueCxlLnksci54LHIueSxuLngsbi55LGkueCxpLnkpJiZfKGkucHJldixpLGkubmV4dCk+PTApcmV0dXJuITE7aT1pLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgaT10LnByZXYsbz10LGE9dC5uZXh0O2lmKF8oaSxvLGEpPj0wKXJldHVybiExO2Zvcih2YXIgcz1pLng8by54P2kueDxhLng/aS54OmEueDpvLng8YS54P28ueDphLngsbD1pLnk8by55P2kueTxhLnk/aS55OmEueTpvLnk8YS55P28ueTphLnksdT1pLng+by54P2kueD5hLng/aS54OmEueDpvLng+YS54P28ueDphLngsYz1pLnk+by55P2kueT5hLnk/aS55OmEueTpvLnk+YS55P28ueTphLnksaD12KHMsbCxlLHIsbiksZj12KHUsYyxlLHIsbikscD10Lm5leHRaO3AmJnAuejw9Zjspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJmIoaS54LGkueSxvLngsby55LGEueCxhLnkscC54LHAueSkmJl8ocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtwPXAubmV4dFp9Zm9yKHA9dC5wcmV2WjtwJiZwLno+PWg7KXtpZihwIT09dC5wcmV2JiZwIT09dC5uZXh0JiZiKGkueCxpLnksby54LG8ueSxhLngsYS55LHAueCxwLnkpJiZfKHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7cD1wLnByZXZafXJldHVybiEwfWZ1bmN0aW9uIHUodCxlLHIpe3ZhciBuPXQ7ZG97dmFyIGk9bi5wcmV2LG89bi5uZXh0Lm5leHQ7IXcoaSxvKSYmTShpLG4sbi5uZXh0LG8pJiZBKGksbykmJkEobyxpKSYmKGUucHVzaChpLmkvciksZS5wdXNoKG4uaS9yKSxlLnB1c2goby5pL3IpLEwobiksTChuLm5leHQpLG49dD1vKSxuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuIG59ZnVuY3Rpb24gYyh0LGUscixuLGkscyl7dmFyIGw9dDtkb3tmb3IodmFyIHU9bC5uZXh0Lm5leHQ7dSE9PWwucHJldjspe2lmKGwuaSE9PXUuaSYmeChsLHUpKXt2YXIgYz1FKGwsdSk7cmV0dXJuIGw9byhsLGwubmV4dCksYz1vKGMsYy5uZXh0KSxhKGwsZSxyLG4saSxzKSx2b2lkIGEoYyxlLHIsbixpLHMpfXU9dS5uZXh0fWw9bC5uZXh0fXdoaWxlKGwhPT10KX1mdW5jdGlvbiBoKHQsZSxyLG4pe3ZhciBhLHMsbCx1LGMsaD1bXTtmb3IoYT0wLHM9ZS5sZW5ndGg7cz5hO2ErKylsPWVbYV0qbix1PXMtMT5hP2VbYSsxXSpuOnQubGVuZ3RoLGM9aSh0LGwsdSxuLCExKSxjPT09Yy5uZXh0JiYoYy5zdGVpbmVyPSEwKSxoLnB1c2goeShjKSk7Zm9yKGguc29ydChmKSxhPTA7YTxoLmxlbmd0aDthKyspcChoW2FdLHIpLHI9byhyLHIubmV4dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0LngtZS54fWZ1bmN0aW9uIHAodCxlKXtpZihlPWQodCxlKSl7dmFyIHI9RShlLHQpO28ocixyLm5leHQpfX1mdW5jdGlvbiBkKHQsZSl7dmFyIHIsbj1lLGk9dC54LG89dC55LGE9LSgxLzApO2Rve2lmKG88PW4ueSYmbz49bi5uZXh0Lnkpe3ZhciBzPW4ueCsoby1uLnkpKihuLm5leHQueC1uLngpLyhuLm5leHQueS1uLnkpO2lmKGk+PXMmJnM+YSl7aWYoYT1zLHM9PT1pKXtpZihvPT09bi55KXJldHVybiBuO2lmKG89PT1uLm5leHQueSlyZXR1cm4gbi5uZXh0fXI9bi54PG4ubmV4dC54P246bi5uZXh0fX1uPW4ubmV4dH13aGlsZShuIT09ZSk7aWYoIXIpcmV0dXJuIG51bGw7aWYoaT09PWEpcmV0dXJuIHIucHJldjt2YXIgbCx1PXIsYz1yLngsaD1yLnksZj0xLzA7Zm9yKG49ci5uZXh0O24hPT11OylpPj1uLngmJm4ueD49YyYmYihoPm8/aTphLG8sYyxoLGg+bz9hOmksbyxuLngsbi55KSYmKGw9TWF0aC5hYnMoby1uLnkpLyhpLW4ueCksKGY+bHx8bD09PWYmJm4ueD5yLngpJiZBKG4sdCkmJihyPW4sZj1sKSksbj1uLm5leHQ7cmV0dXJuIHJ9ZnVuY3Rpb24gbSh0LGUscixuKXt2YXIgaT10O2RvIG51bGw9PT1pLnomJihpLno9dihpLngsaS55LGUscixuKSksaS5wcmV2Wj1pLnByZXYsaS5uZXh0Wj1pLm5leHQsaT1pLm5leHQ7d2hpbGUoaSE9PXQpO2kucHJldloubmV4dFo9bnVsbCxpLnByZXZaPW51bGwsZyhpKX1mdW5jdGlvbiBnKHQpe3ZhciBlLHIsbixpLG8sYSxzLGwsdT0xO2Rve2ZvcihyPXQsdD1udWxsLG89bnVsbCxhPTA7cjspe2ZvcihhKyssbj1yLHM9MCxlPTA7dT5lJiYocysrLG49bi5uZXh0WixuKTtlKyspO2ZvcihsPXU7cz4wfHxsPjAmJm47KTA9PT1zPyhpPW4sbj1uLm5leHRaLGwtLSk6MCE9PWwmJm4/ci56PD1uLno/KGk9cixyPXIubmV4dFoscy0tKTooaT1uLG49bi5uZXh0WixsLS0pOihpPXIscj1yLm5leHRaLHMtLSksbz9vLm5leHRaPWk6dD1pLGkucHJldlo9byxvPWk7cj1ufW8ubmV4dFo9bnVsbCx1Kj0yfXdoaWxlKGE+MSk7cmV0dXJuIHR9ZnVuY3Rpb24gdih0LGUscixuLGkpe3JldHVybiB0PTMyNzY3Kih0LXIpL2ksZT0zMjc2NyooZS1uKS9pLHQ9MTY3MTE5MzUmKHR8dDw8OCksdD0yNTI2NDUxMzUmKHR8dDw8NCksdD04NTg5OTM0NTkmKHR8dDw8MiksdD0xNDMxNjU1NzY1Jih0fHQ8PDEpLGU9MTY3MTE5MzUmKGV8ZTw8OCksZT0yNTI2NDUxMzUmKGV8ZTw8NCksZT04NTg5OTM0NTkmKGV8ZTw8MiksZT0xNDMxNjU1NzY1JihlfGU8PDEpLHR8ZTw8MX1mdW5jdGlvbiB5KHQpe3ZhciBlPXQscj10O2RvIGUueDxyLngmJihyPWUpLGU9ZS5uZXh0O3doaWxlKGUhPT10KTtyZXR1cm4gcn1mdW5jdGlvbiBiKHQsZSxyLG4saSxvLGEscyl7cmV0dXJuKGktYSkqKGUtcyktKHQtYSkqKG8tcyk+PTAmJih0LWEpKihuLXMpLShyLWEpKihlLXMpPj0wJiYoci1hKSooby1zKS0oaS1hKSoobi1zKT49MH1mdW5jdGlvbiB4KHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIWsodCxlKSYmQSh0LGUpJiZBKGUsdCkmJlQodCxlKX1mdW5jdGlvbiBfKHQsZSxyKXtyZXR1cm4oZS55LXQueSkqKHIueC1lLngpLShlLngtdC54KSooci55LWUueSl9ZnVuY3Rpb24gdyh0LGUpe3JldHVybiB0Lng9PT1lLngmJnQueT09PWUueX1mdW5jdGlvbiBNKHQsZSxyLG4pe3JldHVybiB3KHQsZSkmJncocixuKXx8dyh0LG4pJiZ3KHIsZSk/ITA6Xyh0LGUscik+MCE9Xyh0LGUsbik+MCYmXyhyLG4sdCk+MCE9XyhyLG4sZSk+MH1mdW5jdGlvbiBrKHQsZSl7dmFyIHI9dDtkb3tpZihyLmkhPT10LmkmJnIubmV4dC5pIT09dC5pJiZyLmkhPT1lLmkmJnIubmV4dC5pIT09ZS5pJiZNKHIsci5uZXh0LHQsZSkpcmV0dXJuITA7cj1yLm5leHR9d2hpbGUociE9PXQpO3JldHVybiExfWZ1bmN0aW9uIEEodCxlKXtyZXR1cm4gXyh0LnByZXYsdCx0Lm5leHQpPDA/Xyh0LGUsdC5uZXh0KT49MCYmXyh0LHQucHJldixlKT49MDpfKHQsZSx0LnByZXYpPDB8fF8odCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBUKHQsZSl7dmFyIHI9dCxuPSExLGk9KHQueCtlLngpLzIsbz0odC55K2UueSkvMjtkbyByLnk+byE9ci5uZXh0Lnk+byYmaTwoci5uZXh0Lngtci54KSooby1yLnkpLyhyLm5leHQueS1yLnkpK3IueCYmKG49IW4pLHI9ci5uZXh0O3doaWxlKHIhPT10KTtyZXR1cm4gbn1mdW5jdGlvbiBFKHQsZSl7dmFyIHI9bmV3IHoodC5pLHQueCx0LnkpLG49bmV3IHooZS5pLGUueCxlLnkpLGk9dC5uZXh0LG89ZS5wcmV2O3JldHVybiB0Lm5leHQ9ZSxlLnByZXY9dCxyLm5leHQ9aSxpLnByZXY9cixuLm5leHQ9cixyLnByZXY9bixvLm5leHQ9bixuLnByZXY9byxufWZ1bmN0aW9uIFModCxlLHIsbil7dmFyIGk9bmV3IHoodCxlLHIpO3JldHVybiBuPyhpLm5leHQ9bi5uZXh0LGkucHJldj1uLG4ubmV4dC5wcmV2PWksbi5uZXh0PWkpOihpLnByZXY9aSxpLm5leHQ9aSksaX1mdW5jdGlvbiBMKHQpe3QubmV4dC5wcmV2PXQucHJldix0LnByZXYubmV4dD10Lm5leHQsdC5wcmV2WiYmKHQucHJldloubmV4dFo9dC5uZXh0WiksdC5uZXh0WiYmKHQubmV4dFoucHJldlo9dC5wcmV2Wil9ZnVuY3Rpb24geih0LGUscil7dGhpcy5pPXQsdGhpcy54PWUsdGhpcy55PXIsdGhpcy5wcmV2PW51bGwsdGhpcy5uZXh0PW51bGwsdGhpcy56PW51bGwsdGhpcy5wcmV2Wj1udWxsLHRoaXMubmV4dFo9bnVsbCx0aGlzLnN0ZWluZXI9ITF9ZnVuY3Rpb24gSSh0LGUscixuKXtmb3IodmFyIGk9MCxvPWUsYT1yLW47cj5vO28rPW4paSs9KHRbYV0tdFtvXSkqKHRbbysxXSt0W2ErMV0pLGE9bztyZXR1cm4gaX1lLmV4cG9ydHM9bixuLmRldmlhdGlvbj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1lJiZlLmxlbmd0aCxvPWk/ZVswXSpyOnQubGVuZ3RoLGE9TWF0aC5hYnMoSSh0LDAsbyxyKSk7aWYoaSlmb3IodmFyIHM9MCxsPWUubGVuZ3RoO2w+cztzKyspe3ZhciB1PWVbc10qcixjPWwtMT5zP2VbcysxXSpyOnQubGVuZ3RoO2EtPU1hdGguYWJzKEkodCx1LGMscikpfXZhciBoPTA7Zm9yKHM9MDtzPG4ubGVuZ3RoO3MrPTMpe3ZhciBmPW5bc10qcixwPW5bcysxXSpyLGQ9bltzKzJdKnI7aCs9TWF0aC5hYnMoKHRbZl0tdFtkXSkqKHRbcCsxXS10W2YrMV0pLSh0W2ZdLXRbcF0pKih0W2QrMV0tdFtmKzFdKSl9cmV0dXJuIDA9PT1hJiYwPT09aD8wOk1hdGguYWJzKChoLWEpL2EpfSxuLmZsYXR0ZW49ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRbMF1bMF0ubGVuZ3RoLHI9e3ZlcnRpY2VzOltdLGhvbGVzOltdLGRpbWVuc2lvbnM6ZX0sbj0wLGk9MDtpPHQubGVuZ3RoO2krKyl7Zm9yKHZhciBvPTA7bzx0W2ldLmxlbmd0aDtvKyspZm9yKHZhciBhPTA7ZT5hO2ErKylyLnZlcnRpY2VzLnB1c2godFtpXVtvXVthXSk7aT4wJiYobis9dFtpLTFdLmxlbmd0aCxyLmhvbGVzLnB1c2gobikpfXJldHVybiByfX0se31dLDM3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiBuZXcgRnVuY3Rpb24oImYiLCJ2YXIgcCA9IChmICYmIGYucHJvcGVydGllcyB8fCB7fSk7IHJldHVybiAiK2kodCkpfWZ1bmN0aW9uIGkodCl7aWYoIXQpcmV0dXJuInRydWUiO3ZhciBlPXRbMF07aWYodC5sZW5ndGg8PTEpcmV0dXJuImFueSI9PT1lPyJmYWxzZSI6InRydWUiO3ZhciByPSI9PSI9PT1lP2EodFsxXSx0WzJdLCI9PT0iLCExKToiIT0iPT09ZT9hKHRbMV0sdFsyXSwiIT09IiwhMSk6IjwiPT09ZXx8Ij4iPT09ZXx8Ijw9Ij09PWV8fCI+PSI9PT1lP2EodFsxXSx0WzJdLGUsITApOiJhbnkiPT09ZT9zKHQuc2xpY2UoMSksInx8Iik6ImFsbCI9PT1lP3ModC5zbGljZSgxKSwiJiYiKToibm9uZSI9PT1lP2Mocyh0LnNsaWNlKDEpLCJ8fCIpKToiaW4iPT09ZT9sKHRbMV0sdC5zbGljZSgyKSk6IiFpbiI9PT1lP2MobCh0WzFdLHQuc2xpY2UoMikpKToiaGFzIj09PWU/dSh0WzFdKToiIWhhcyI9PT1lP2ModShbdFsxXV0pKToidHJ1ZSI7cmV0dXJuIigiK3IrIikifWZ1bmN0aW9uIG8odCl7cmV0dXJuIiR0eXBlIj09PXQ/ImYudHlwZSI6IiRpZCI9PT10PyJmLmlkIjoicFsiK0pTT04uc3RyaW5naWZ5KHQpKyJdIn1mdW5jdGlvbiBhKHQsZSxyLG4pe3ZhciBpPW8odCksYT0iJHR5cGUiPT09dD9mLmluZGV4T2YoZSk6SlNPTi5zdHJpbmdpZnkoZSk7cmV0dXJuKG4/InR5cGVvZiAiK2krIj09PSB0eXBlb2YgIithKyImJiI6IiIpK2krcithfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gdC5tYXAoaSkuam9pbihlKX1mdW5jdGlvbiBsKHQsZSl7IiR0eXBlIj09PXQmJihlPWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBmLmluZGV4T2YodCl9KSk7dmFyIHI9SlNPTi5zdHJpbmdpZnkoZS5zb3J0KGgpKSxuPW8odCk7cmV0dXJuIGUubGVuZ3RoPD0yMDA/cisiLmluZGV4T2YoIituKyIpICE9PSAtMSI6ImZ1bmN0aW9uKHYsIGEsIGksIGopIHt3aGlsZSAoaSA8PSBqKSB7IHZhciBtID0gKGkgKyBqKSA+PiAxOyAgICBpZiAoYVttXSA9PT0gdikgcmV0dXJuIHRydWU7IGlmIChhW21dID4gdikgaiA9IG0gLSAxOyBlbHNlIGkgPSBtICsgMTt9cmV0dXJuIGZhbHNlOyB9KCIrbisiLCAiK3IrIiwwLCIrKGUubGVuZ3RoLTEpKyIpIn1mdW5jdGlvbiB1KHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KSsiIGluIHAifWZ1bmN0aW9uIGModCl7cmV0dXJuIiEoIit0KyIpIn1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIGU+dD8tMTp0PmU/MTowfWUuZXhwb3J0cz1uO3ZhciBmPVsiVW5rbm93biIsIlBvaW50IiwiTGluZVN0cmluZyIsIlBvbHlnb24iXX0se31dLDM3MTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXtzd2l0Y2godCYmdC50eXBlfHxudWxsKXtjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjpyZXR1cm4gdC5mZWF0dXJlcz10LmZlYXR1cmVzLm1hcChpKG4sZSkpLHQ7Y2FzZSJGZWF0dXJlIjpyZXR1cm4gdC5nZW9tZXRyeT1uKHQuZ2VvbWV0cnksZSksdDtjYXNlIlBvbHlnb24iOmNhc2UiTXVsdGlQb2x5Z29uIjpyZXR1cm4gbyh0LGUpO2RlZmF1bHQ6cmV0dXJuIHR9fWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQocixlKX19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiJQb2x5Z29uIj09PXQudHlwZT90LmNvb3JkaW5hdGVzPWEodC5jb29yZGluYXRlcyxlKToiTXVsdGlQb2x5Z29uIj09PXQudHlwZSYmKHQuY29vcmRpbmF0ZXM9dC5jb29yZGluYXRlcy5tYXAoaShhLGUpKSksdH1mdW5jdGlvbiBhKHQsZSl7ZT0hIWUsdFswXT1zKHRbMF0sIWUpO2Zvcih2YXIgcj0xO3I8dC5sZW5ndGg7cisrKXRbcl09cyh0W3JdLGUpO3JldHVybiB0fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gbCh0KT09PWU/dDp0LnJldmVyc2UoKX1mdW5jdGlvbiBsKHQpe3JldHVybiB1LnJpbmcodCk+PTB9dmFyIHU9dCgiZ2VvanNvbi1hcmVhIik7ZS5leHBvcnRzPW59LHsiZ2VvanNvbi1hcmVhIjozNzJ9XSwzNzI6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe2lmKCJQb2x5Z29uIj09PXQudHlwZSlyZXR1cm4gaSh0LmNvb3JkaW5hdGVzKTtpZigiTXVsdGlQb2x5Z29uIj09PXQudHlwZSl7Zm9yKHZhciBlPTAscj0wO3I8dC5jb29yZGluYXRlcy5sZW5ndGg7cisrKWUrPWkodC5jb29yZGluYXRlc1tyXSk7cmV0dXJuIGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaSh0KXt2YXIgZT0wO2lmKHQmJnQubGVuZ3RoPjApe2UrPU1hdGguYWJzKG8odFswXSkpO2Zvcih2YXIgcj0xO3I8dC5sZW5ndGg7cisrKWUtPU1hdGguYWJzKG8odFtyXSkpfXJldHVybiBlfWZ1bmN0aW9uIG8odCl7dmFyIGU9MDtpZih0Lmxlbmd0aD4yKXtmb3IodmFyIHIsbixpPTA7aTx0Lmxlbmd0aC0xO2krKylyPXRbaV0sbj10W2krMV0sZSs9YShuWzBdLXJbMF0pKigyK01hdGguc2luKGEoclsxXSkpK01hdGguc2luKGEoblsxXSkpKTtlPWUqcy5SQURJVVMqcy5SQURJVVMvMn1yZXR1cm4gZX1mdW5jdGlvbiBhKHQpe3JldHVybiB0Kk1hdGguUEkvMTgwfXZhciBzPXQoIndnczg0Iik7ZS5leHBvcnRzLmdlb21ldHJ5PW4sZS5leHBvcnRzLnJpbmc9b30se3dnczg0OjM3M31dLDM3MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cy5SQURJVVM9NjM3ODEzNyxlLmV4cG9ydHMuRkxBVFRFTklORz0xLzI5OC4yNTcyMjM1NjMsZS5leHBvcnRzLlBPTEFSX1JBRElVUz02MzU2NzUyLjMxNDJ9LHt9XSwzNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGEsbCx1LGMpe2lmKHIvPWUsbi89ZSx1Pj1yJiZuPj1jKXJldHVybiB0O2lmKHU+bnx8cj5jKXJldHVybiBudWxsO2Zvcih2YXIgaD1bXSxmPTA7Zjx0Lmxlbmd0aDtmKyspe3ZhciBwLGQsbT10W2ZdLGc9bS5nZW9tZXRyeSx2PW0udHlwZTtpZihwPW0ubWluW2FdLGQ9bS5tYXhbYV0scD49ciYmbj49ZCloLnB1c2gobSk7ZWxzZSBpZighKHA+bnx8cj5kKSl7dmFyIHk9MT09PXY/aShnLHIsbixhKTpvKGcscixuLGEsbCwzPT09dik7eS5sZW5ndGgmJmgucHVzaChzKG0udGFncyx2LHksbS5pZCkpfX1yZXR1cm4gaC5sZW5ndGg/aDpudWxsfWZ1bmN0aW9uIGkodCxlLHIsbil7Zm9yKHZhciBpPVtdLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGE9dFtvXSxzPWFbbl07cz49ZSYmcj49cyYmaS5wdXNoKGEpfXJldHVybiBpfWZ1bmN0aW9uIG8odCxlLHIsbixpLG8pe2Zvcih2YXIgcz1bXSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciB1LGMsaCxmPTAscD0wLGQ9bnVsbCxtPXRbbF0sZz1tLmFyZWEsdj1tLmRpc3QseT1tLm91dGVyLGI9bS5sZW5ndGgseD1bXTtmb3IoYz0wO2ItMT5jO2MrKyl1PWR8fG1bY10sZD1tW2MrMV0sZj1wfHx1W25dLHA9ZFtuXSxlPmY/cD5yPyh4LnB1c2goaSh1LGQsZSksaSh1LGQscikpLG98fCh4PWEocyx4LGcsdix5KSkpOnA+PWUmJngucHVzaChpKHUsZCxlKSk6Zj5yP2U+cD8oeC5wdXNoKGkodSxkLHIpLGkodSxkLGUpKSxvfHwoeD1hKHMseCxnLHYseSkpKTpyPj1wJiZ4LnB1c2goaSh1LGQscikpOih4LnB1c2godSksZT5wPyh4LnB1c2goaSh1LGQsZSkpLG98fCh4PWEocyx4LGcsdix5KSkpOnA+ciYmKHgucHVzaChpKHUsZCxyKSksb3x8KHg9YShzLHgsZyx2LHkpKSkpO3U9bVtiLTFdLGY9dVtuXSxmPj1lJiZyPj1mJiZ4LnB1c2godSksaD14W3gubGVuZ3RoLTFdLG8mJmgmJih4WzBdWzBdIT09aFswXXx8eFswXVsxXSE9PWhbMV0pJiZ4LnB1c2goeFswXSksYShzLHgsZyx2LHkpfXJldHVybiBzfWZ1bmN0aW9uIGEodCxlLHIsbixpKXtyZXR1cm4gZS5sZW5ndGgmJihlLmFyZWE9cixlLmRpc3Q9bix2b2lkIDAhPT1pJiYoZS5vdXRlcj1pKSx0LnB1c2goZSkpLFtdfWUuZXhwb3J0cz1uO3ZhciBzPXQoIi4vZmVhdHVyZSIpfSx7Ii4vZmVhdHVyZSI6Mzc2fV0sMzc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1bXTtpZigiRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlKWZvcih2YXIgbj0wO248dC5mZWF0dXJlcy5sZW5ndGg7bisrKWkocix0LmZlYXR1cmVzW25dLGUpO2Vsc2UiRmVhdHVyZSI9PT10LnR5cGU/aShyLHQsZSk6aShyLHtnZW9tZXRyeTp0fSxlKTtyZXR1cm4gcn1mdW5jdGlvbiBpKHQsZSxyKXtpZihudWxsIT09ZS5nZW9tZXRyeSl7dmFyIG4scyxsLGMsaD1lLmdlb21ldHJ5LGY9aC50eXBlLHA9aC5jb29yZGluYXRlcyxkPWUucHJvcGVydGllcyxtPWUuaWQ7aWYoIlBvaW50Ij09PWYpdC5wdXNoKHUoZCwxLFthKHApXSxtKSk7ZWxzZSBpZigiTXVsdGlQb2ludCI9PT1mKXQucHVzaCh1KGQsMSxvKHApLG0pKTtlbHNlIGlmKCJMaW5lU3RyaW5nIj09PWYpdC5wdXNoKHUoZCwyLFtvKHAscildLG0pKTtlbHNlIGlmKCJNdWx0aUxpbmVTdHJpbmciPT09Znx8IlBvbHlnb24iPT09Zil7Zm9yKGw9W10sbj0wO248cC5sZW5ndGg7bisrKWM9byhwW25dLHIpLCJQb2x5Z29uIj09PWYmJihjLm91dGVyPTA9PT1uKSxsLnB1c2goYyk7dC5wdXNoKHUoZCwiUG9seWdvbiI9PT1mPzM6MixsLG0pKX1lbHNlIGlmKCJNdWx0aVBvbHlnb24iPT09Zil7Zm9yKGw9W10sbj0wO248cC5sZW5ndGg7bisrKWZvcihzPTA7czxwW25dLmxlbmd0aDtzKyspYz1vKHBbbl1bc10sciksYy5vdXRlcj0wPT09cyxsLnB1c2goYyk7dC5wdXNoKHUoZCwzLGwsbSkpfWVsc2V7aWYoIkdlb21ldHJ5Q29sbGVjdGlvbiIhPT1mKXRocm93IG5ldyBFcnJvcigiSW5wdXQgZGF0YSBpcyBub3QgYSB2YWxpZCBHZW9KU09OIG9iamVjdC4iKTtmb3Iobj0wO248aC5nZW9tZXRyaWVzLmxlbmd0aDtuKyspaSh0LHtnZW9tZXRyeTpoLmdlb21ldHJpZXNbbl0scHJvcGVydGllczpkfSxyKX19fWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9W10sbj0wO248dC5sZW5ndGg7bisrKXIucHVzaChhKHRbbl0pKTtyZXR1cm4gZSYmKGwocixlKSxzKHIpKSxyfWZ1bmN0aW9uIGEodCl7dmFyIGU9TWF0aC5zaW4odFsxXSpNYXRoLlBJLzE4MCkscj10WzBdLzM2MCsuNSxuPS41LS4yNSpNYXRoLmxvZygoMStlKS8oMS1lKSkvTWF0aC5QSTtyZXR1cm4gbj0wPm4/MDpuPjE/MTpuLFtyLG4sMF19ZnVuY3Rpb24gcyh0KXtmb3IodmFyIGUscixuPTAsaT0wLG89MDtvPHQubGVuZ3RoLTE7bysrKWU9cnx8dFtvXSxyPXRbbysxXSxuKz1lWzBdKnJbMV0tclswXSplWzFdLGkrPU1hdGguYWJzKHJbMF0tZVswXSkrTWF0aC5hYnMoclsxXS1lWzFdKTt0LmFyZWE9TWF0aC5hYnMobi8yKSx0LmRpc3Q9aX1lLmV4cG9ydHM9bjt2YXIgbD10KCIuL3NpbXBsaWZ5IiksdT10KCIuL2ZlYXR1cmUiKX0seyIuL2ZlYXR1cmUiOjM3NiwiLi9zaW1wbGlmeSI6Mzc4fV0sMzc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIG89e2lkOm58fG51bGwsdHlwZTplLGdlb21ldHJ5OnIsdGFnczp0fHxudWxsLG1pbjpbMS8wLDEvMF0sbWF4OlstKDEvMCksLSgxLzApXX07cmV0dXJuIGkobyksb31mdW5jdGlvbiBpKHQpe3ZhciBlPXQuZ2VvbWV0cnkscj10Lm1pbixuPXQubWF4O2lmKDE9PT10LnR5cGUpbyhyLG4sZSk7ZWxzZSBmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKylvKHIsbixlW2ldKTtyZXR1cm4gdH1mdW5jdGlvbiBvKHQsZSxyKXtmb3IodmFyIG4saT0wO2k8ci5sZW5ndGg7aSsrKW49cltpXSx0WzBdPU1hdGgubWluKG5bMF0sdFswXSksZVswXT1NYXRoLm1heChuWzBdLGVbMF0pLHRbMV09TWF0aC5taW4oblsxXSx0WzFdKSxlWzFdPU1hdGgubWF4KG5bMV0sZVsxXSl9ZS5leHBvcnRzPW59LHt9XSwzNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBuZXcgaSh0LGUpfWZ1bmN0aW9uIGkodCxlKXtlPXRoaXMub3B0aW9ucz1sKE9iamVjdC5jcmVhdGUodGhpcy5vcHRpb25zKSxlKTt2YXIgcj1lLmRlYnVnO3ImJmNvbnNvbGUudGltZSgicHJlcHJvY2VzcyBkYXRhIik7dmFyIG49MTw8ZS5tYXhab29tLGk9Yyh0LGUudG9sZXJhbmNlLyhuKmUuZXh0ZW50KSk7dGhpcy50aWxlcz17fSx0aGlzLnRpbGVDb29yZHM9W10sciYmKGNvbnNvbGUudGltZUVuZCgicHJlcHJvY2VzcyBkYXRhIiksY29uc29sZS5sb2coImluZGV4OiBtYXhab29tOiAlZCwgbWF4UG9pbnRzOiAlZCIsZS5pbmRleE1heFpvb20sZS5pbmRleE1heFBvaW50cyksY29uc29sZS50aW1lKCJnZW5lcmF0ZSB0aWxlcyIpLHRoaXMuc3RhdHM9e30sdGhpcy50b3RhbD0wKSxpPXAoaSxlLmJ1ZmZlci9lLmV4dGVudCxhKSxpLmxlbmd0aCYmdGhpcy5zcGxpdFRpbGUoaSwwLDAsMCksciYmKGkubGVuZ3RoJiZjb25zb2xlLmxvZygiZmVhdHVyZXM6ICVkLCBwb2ludHM6ICVkIix0aGlzLnRpbGVzWzBdLm51bUZlYXR1cmVzLHRoaXMudGlsZXNbMF0ubnVtUG9pbnRzKSxjb25zb2xlLnRpbWVFbmQoImdlbmVyYXRlIHRpbGVzIiksY29uc29sZS5sb2coInRpbGVzIGdlbmVyYXRlZDoiLHRoaXMudG90YWwsSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0cykpKX1mdW5jdGlvbiBvKHQsZSxyKXtyZXR1cm4gMzIqKCgxPDx0KSpyK2UpK3R9ZnVuY3Rpb24gYSh0LGUscil7cmV0dXJuW3IsKHItdFswXSkqKGVbMV0tdFsxXSkvKGVbMF0tdFswXSkrdFsxXSwxXX1mdW5jdGlvbiBzKHQsZSxyKXtyZXR1cm5bKHItdFsxXSkqKGVbMF0tdFswXSkvKGVbMV0tdFsxXSkrdFswXSxyLDFdfWZ1bmN0aW9uIGwodCxlKXtmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl07cmV0dXJuIHR9ZnVuY3Rpb24gdSh0LGUscil7dmFyIG49dC5zb3VyY2U7aWYoMSE9PW4ubGVuZ3RoKXJldHVybiExO3ZhciBpPW5bMF07aWYoMyE9PWkudHlwZXx8aS5nZW9tZXRyeS5sZW5ndGg+MSlyZXR1cm4hMTt2YXIgbz1pLmdlb21ldHJ5WzBdLmxlbmd0aDtpZig1IT09bylyZXR1cm4hMTtmb3IodmFyIGE9MDtvPmE7YSsrKXt2YXIgcz1oLnBvaW50KGkuZ2VvbWV0cnlbMF1bYV0sZSx0LnoyLHQueCx0LnkpO2lmKHNbMF0hPT0tciYmc1swXSE9PWUrcnx8c1sxXSE9PS1yJiZzWzFdIT09ZStyKXJldHVybiExfXJldHVybiEwfWUuZXhwb3J0cz1uO3ZhciBjPXQoIi4vY29udmVydCIpLGg9dCgiLi90cmFuc2Zvcm0iKSxmPXQoIi4vY2xpcCIpLHA9dCgiLi93cmFwIiksZD10KCIuL3RpbGUiKTtpLnByb3RvdHlwZS5vcHRpb25zPXttYXhab29tOjE0LGluZGV4TWF4Wm9vbTo1LGluZGV4TWF4UG9pbnRzOjFlNSxzb2xpZENoaWxkcmVuOiExLHRvbGVyYW5jZTozLGV4dGVudDo0MDk2LGJ1ZmZlcjo2NCxkZWJ1ZzowfSxpLnByb3RvdHlwZS5zcGxpdFRpbGU9ZnVuY3Rpb24odCxlLHIsbixpLGwsYyl7Zm9yKHZhciBoPVt0LGUscixuXSxwPXRoaXMub3B0aW9ucyxtPXAuZGVidWcsZz1udWxsO2gubGVuZ3RoOyl7bj1oLnBvcCgpLHI9aC5wb3AoKSxlPWgucG9wKCksdD1oLnBvcCgpO3ZhciB2PTE8PGUseT1vKGUscixuKSxiPXRoaXMudGlsZXNbeV0seD1lPT09cC5tYXhab29tPzA6cC50b2xlcmFuY2UvKHYqcC5leHRlbnQpO2lmKCFiJiYobT4xJiZjb25zb2xlLnRpbWUoImNyZWF0aW9uIiksYj10aGlzLnRpbGVzW3ldPWQodCx2LHIsbix4LGU9PT1wLm1heFpvb20pLHRoaXMudGlsZUNvb3Jkcy5wdXNoKHt6OmUseDpyLHk6bn0pLG0pKXttPjEmJihjb25zb2xlLmxvZygidGlsZSB6JWQtJWQtJWQgKGZlYXR1cmVzOiAlZCwgcG9pbnRzOiAlZCwgc2ltcGxpZmllZDogJWQpIixlLHIsbixiLm51bUZlYXR1cmVzLGIubnVtUG9pbnRzLGIubnVtU2ltcGxpZmllZCksY29uc29sZS50aW1lRW5kKCJjcmVhdGlvbiIpKTt2YXIgXz0ieiIrZTt0aGlzLnN0YXRzW19dPSh0aGlzLnN0YXRzW19dfHwwKSsxLHRoaXMudG90YWwrK31pZihiLnNvdXJjZT10LGkpe2lmKGU9PT1wLm1heFpvb218fGU9PT1pKWNvbnRpbnVlO3ZhciB3PTE8PGktZTtpZihyIT09TWF0aC5mbG9vcihsL3cpfHxuIT09TWF0aC5mbG9vcihjL3cpKWNvbnRpbnVlfWVsc2UgaWYoZT09PXAuaW5kZXhNYXhab29tfHxiLm51bVBvaW50czw9cC5pbmRleE1heFBvaW50cyljb250aW51ZTtpZihwLnNvbGlkQ2hpbGRyZW58fCF1KGIscC5leHRlbnQscC5idWZmZXIpKXtiLnNvdXJjZT1udWxsLG0+MSYmY29uc29sZS50aW1lKCJjbGlwcGluZyIpO3ZhciBNLGssQSxULEUsUyxMPS41KnAuYnVmZmVyL3AuZXh0ZW50LHo9LjUtTCxJPS41K0wsUD0xK0w7TT1rPUE9VD1udWxsLEU9Zih0LHYsci1MLHIrSSwwLGEsYi5taW5bMF0sYi5tYXhbMF0pLFM9Zih0LHYscit6LHIrUCwwLGEsYi5taW5bMF0sYi5tYXhbMF0pLEUmJihNPWYoRSx2LG4tTCxuK0ksMSxzLGIubWluWzFdLGIubWF4WzFdKSxrPWYoRSx2LG4reixuK1AsMSxzLGIubWluWzFdLGIubWF4WzFdKSksUyYmKEE9ZihTLHYsbi1MLG4rSSwxLHMsYi5taW5bMV0sYi5tYXhbMV0pLFQ9ZihTLHYsbit6LG4rUCwxLHMsYi5taW5bMV0sYi5tYXhbMV0pKSxtPjEmJmNvbnNvbGUudGltZUVuZCgiY2xpcHBpbmciKSx0Lmxlbmd0aCYmKGgucHVzaChNfHxbXSxlKzEsMipyLDIqbiksaC5wdXNoKGt8fFtdLGUrMSwyKnIsMipuKzEpLGgucHVzaChBfHxbXSxlKzEsMipyKzEsMipuKSxoLnB1c2goVHx8W10sZSsxLDIqcisxLDIqbisxKSl9ZWxzZSBpJiYoZz1lKX1yZXR1cm4gZ30saS5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5vcHRpb25zLGk9bi5leHRlbnQsYT1uLmRlYnVnLHM9MTw8dDtlPShlJXMrcyklczt2YXIgbD1vKHQsZSxyKTtpZih0aGlzLnRpbGVzW2xdKXJldHVybiBoLnRpbGUodGhpcy50aWxlc1tsXSxpKTthPjEmJmNvbnNvbGUubG9nKCJkcmlsbGluZyBkb3duIHRvIHolZC0lZC0lZCIsdCxlLHIpO2Zvcih2YXIgYyxmPXQscD1lLGQ9cjshYyYmZj4wOylmLS0scD1NYXRoLmZsb29yKHAvMiksZD1NYXRoLmZsb29yKGQvMiksYz10aGlzLnRpbGVzW28oZixwLGQpXTtpZighY3x8IWMuc291cmNlKXJldHVybiBudWxsO2lmKGE+MSYmY29uc29sZS5sb2coImZvdW5kIHBhcmVudCB0aWxlIHolZC0lZC0lZCIsZixwLGQpLHUoYyxpLG4uYnVmZmVyKSlyZXR1cm4gaC50aWxlKGMsaSk7YT4xJiZjb25zb2xlLnRpbWUoImRyaWxsaW5nIGRvd24iKTt2YXIgbT10aGlzLnNwbGl0VGlsZShjLnNvdXJjZSxmLHAsZCx0LGUscik7aWYoYT4xJiZjb25zb2xlLnRpbWVFbmQoImRyaWxsaW5nIGRvd24iKSxudWxsIT09bSl7dmFyIGc9MTw8dC1tO2w9byhtLE1hdGguZmxvb3IoZS9nKSxNYXRoLmZsb29yKHIvZykpfXJldHVybiB0aGlzLnRpbGVzW2xdP2gudGlsZSh0aGlzLnRpbGVzW2xdLGkpOm51bGx9fSx7Ii4vY2xpcCI6Mzc0LCIuL2NvbnZlcnQiOjM3NSwiLi90aWxlIjozNzksIi4vdHJhbnNmb3JtIjozODAsIi4vd3JhcCI6MzgxfV0sMzc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcixuLG8sYSxzPWUqZSxsPXQubGVuZ3RoLHU9MCxjPWwtMSxoPVtdO2Zvcih0W3VdWzJdPTEsdFtjXVsyXT0xO2M7KXtmb3Iobj0wLHI9dSsxO2M+cjtyKyspbz1pKHRbcl0sdFt1XSx0W2NdKSxvPm4mJihhPXIsbj1vKTtuPnM/KHRbYV1bMl09bixoLnB1c2godSksaC5wdXNoKGEpLHU9YSk6KGM9aC5wb3AoKSx1PWgucG9wKCkpfX1mdW5jdGlvbiBpKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPXJbMF0sYT1yWzFdLHM9dFswXSxsPXRbMV0sdT1vLW4sYz1hLWk7aWYoMCE9PXV8fDAhPT1jKXt2YXIgaD0oKHMtbikqdSsobC1pKSpjKS8odSp1K2MqYyk7aD4xPyhuPW8saT1hKTpoPjAmJihuKz11KmgsaSs9YypoKX1yZXR1cm4gdT1zLW4sYz1sLWksdSp1K2MqY31lLmV4cG9ydHM9bn0se31dLDM3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4sbyxhKXtmb3IodmFyIHM9e2ZlYXR1cmVzOltdLG51bVBvaW50czowLG51bVNpbXBsaWZpZWQ6MCxudW1GZWF0dXJlczowLHNvdXJjZTpudWxsLHg6cix5Om4sejI6ZSx0cmFuc2Zvcm1lZDohMSxtaW46WzIsMV0sbWF4OlstMSwwXX0sbD0wO2w8dC5sZW5ndGg7bCsrKXtzLm51bUZlYXR1cmVzKyssaShzLHRbbF0sbyxhKTt2YXIgdT10W2xdLm1pbixjPXRbbF0ubWF4O3VbMF08cy5taW5bMF0mJihzLm1pblswXT11WzBdKSx1WzFdPHMubWluWzFdJiYocy5taW5bMV09dVsxXSksY1swXT5zLm1heFswXSYmKHMubWF4WzBdPWNbMF0pLGNbMV0+cy5tYXhbMV0mJihzLm1heFsxXT1jWzFdKX1yZXR1cm4gc31mdW5jdGlvbiBpKHQsZSxyLG4pe3ZhciBpLGEscyxsLHU9ZS5nZW9tZXRyeSxjPWUudHlwZSxoPVtdLGY9cipyO2lmKDE9PT1jKWZvcihpPTA7aTx1Lmxlbmd0aDtpKyspaC5wdXNoKHVbaV0pLHQubnVtUG9pbnRzKyssdC5udW1TaW1wbGlmaWVkKys7ZWxzZSBmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKWlmKHM9dVtpXSxufHwhKDI9PT1jJiZzLmRpc3Q8cnx8Mz09PWMmJnMuYXJlYTxmKSl7dmFyIHA9W107Zm9yKGE9MDthPHMubGVuZ3RoO2ErKylsPXNbYV0sKG58fGxbMl0+ZikmJihwLnB1c2gobCksdC5udW1TaW1wbGlmaWVkKyspLHQubnVtUG9pbnRzKys7Mz09PWMmJm8ocCxzLm91dGVyKSxoLnB1c2gocCl9ZWxzZSB0Lm51bVBvaW50cys9cy5sZW5ndGg7aWYoaC5sZW5ndGgpe3ZhciBkPXtnZW9tZXRyeTpoLHR5cGU6Yyx0YWdzOmUudGFnc3x8bnVsbH07bnVsbCE9PWUuaWQmJihkLmlkPWUuaWQpLHQuZmVhdHVyZXMucHVzaChkKX19ZnVuY3Rpb24gbyh0LGUpe3ZhciByPWEodCk7MD5yPT09ZSYmdC5yZXZlcnNlKCl9ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGUscixuPTAsaT0wLG89dC5sZW5ndGgsYT1vLTE7bz5pO2E9aSsrKWU9dFtpXSxyPXRbYV0sbis9KHJbMF0tZVswXSkqKGVbMV0rclsxXSk7cmV0dXJuIG59ZS5leHBvcnRzPW59LHt9XSwzODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2lmKHQudHJhbnNmb3JtZWQpcmV0dXJuIHQ7dmFyIHIsbixvLGE9dC56MixzPXQueCxsPXQueTtmb3Iocj0wO3I8dC5mZWF0dXJlcy5sZW5ndGg7cisrKXt2YXIgdT10LmZlYXR1cmVzW3JdLGM9dS5nZW9tZXRyeSxoPXUudHlwZTtpZigxPT09aClmb3Iobj0wO248Yy5sZW5ndGg7bisrKWNbbl09aShjW25dLGUsYSxzLGwpO2Vsc2UgZm9yKG49MDtuPGMubGVuZ3RoO24rKyl7dmFyIGY9Y1tuXTtmb3Iobz0wO288Zi5sZW5ndGg7bysrKWZbb109aShmW29dLGUsYSxzLGwpfX1yZXR1cm4gdC50cmFuc2Zvcm1lZD0hMCx0fWZ1bmN0aW9uIGkodCxlLHIsbixpKXt2YXIgbz1NYXRoLnJvdW5kKGUqKHRbMF0qci1uKSksYT1NYXRoLnJvdW5kKGUqKHRbMV0qci1pKSk7cmV0dXJuW28sYV19ci50aWxlPW4sci5wb2ludD1pfSx7fV0sMzgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPXQsbz1hKHQsMSwtMS1lLGUsMCxyLC0xLDIpLHM9YSh0LDEsMS1lLDIrZSwwLHIsLTEsMik7cmV0dXJuKG98fHMpJiYobj1hKHQsMSwtZSwxK2UsMCxyLC0xLDIpfHxbXSxvJiYobj1pKG8sMSkuY29uY2F0KG4pKSxzJiYobj1uLmNvbmNhdChpKHMsLTEpKSkpLG59ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpLGE9dFtuXSxsPWEudHlwZTtpZigxPT09bClpPW8oYS5nZW9tZXRyeSxlKTtlbHNle2k9W107Zm9yKHZhciB1PTA7dTxhLmdlb21ldHJ5Lmxlbmd0aDt1KyspaS5wdXNoKG8oYS5nZW9tZXRyeVt1XSxlKSl9ci5wdXNoKHMoYS50YWdzLGwsaSxhLmlkKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPVtdO3IuYXJlYT10LmFyZWEsci5kaXN0PXQuZGlzdDtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylyLnB1c2goW3Rbbl1bMF0rZSx0W25dWzFdLHRbbl1bMl1dKTtyZXR1cm4gcn12YXIgYT10KCIuL2NsaXAiKSxzPXQoIi4vZmVhdHVyZSIpO2UuZXhwb3J0cz1ufSx7Ii4vY2xpcCI6Mzc0LCIuL2ZlYXR1cmUiOjM3Nn1dLDM4MjpbZnVuY3Rpb24odCxlLHIpe3IuZ2xNYXRyaXg9dCgiLi9nbC1tYXRyaXgvY29tbW9uLmpzIiksci5tYXQyPXQoIi4vZ2wtbWF0cml4L21hdDIuanMiKSxyLm1hdDJkPXQoIi4vZ2wtbWF0cml4L21hdDJkLmpzIiksci5tYXQzPXQoIi4vZ2wtbWF0cml4L21hdDMuanMiKSxyLm1hdDQ9dCgiLi9nbC1tYXRyaXgvbWF0NC5qcyIpLHIucXVhdD10KCIuL2dsLW1hdHJpeC9xdWF0LmpzIiksci52ZWMyPXQoIi4vZ2wtbWF0cml4L3ZlYzIuanMiKSxyLnZlYzM9dCgiLi9nbC1tYXRyaXgvdmVjMy5qcyIpLHIudmVjND10KCIuL2dsLW1hdHJpeC92ZWM0LmpzIil9LHsiLi9nbC1tYXRyaXgvY29tbW9uLmpzIjozODMsIi4vZ2wtbWF0cml4L21hdDIuanMiOjM4NCwiLi9nbC1tYXRyaXgvbWF0MmQuanMiOjM4NSwiLi9nbC1tYXRyaXgvbWF0My5qcyI6Mzg2LCIuL2dsLW1hdHJpeC9tYXQ0LmpzIjozODcsIi4vZ2wtbWF0cml4L3F1YXQuanMiOjM4OCwiLi9nbC1tYXRyaXgvdmVjMi5qcyI6Mzg5LCIuL2dsLW1hdHJpeC92ZWMzLmpzIjozOTAsIi4vZ2wtbWF0cml4L3ZlYzQuanMiOjM5MX1dLDM4MzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt9O24uRVBTSUxPTj0xZS02LG4uQVJSQVlfVFlQRT0idW5kZWZpbmVkIiE9dHlwZW9mIEZsb2F0MzJBcnJheT9GbG9hdDMyQXJyYXk6QXJyYXksbi5SQU5ET009TWF0aC5yYW5kb20sbi5FTkFCTEVfU0lNRD0hMSxuLlNJTURfQVZBSUxBQkxFPW4uQVJSQVlfVFlQRT09PUZsb2F0MzJBcnJheSYmIlNJTUQiaW4gdGhpcyxuLlVTRV9TSU1EPW4uRU5BQkxFX1NJTUQmJm4uU0lNRF9BVkFJTEFCTEUsbi5zZXRNYXRyaXhBcnJheVR5cGU9ZnVuY3Rpb24odCl7bi5BUlJBWV9UWVBFPXR9O3ZhciBpPU1hdGguUEkvMTgwO24udG9SYWRpYW49ZnVuY3Rpb24odCl7cmV0dXJuIHQqaX0sbi5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModC1lKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnModCksTWF0aC5hYnMoZSkpfSxlLmV4cG9ydHM9bn0se31dLDM4NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vY29tbW9uLmpzIiksaT17fTtpLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBuLkFSUkFZX1RZUEUoNCk7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxpLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBuLkFSUkFZX1RZUEUoNCk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlfSxpLmNvcHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHR9LGkuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxpLmZyb21WYWx1ZXM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89bmV3IG4uQVJSQVlfVFlQRSg0KTtyZXR1cm4gb1swXT10LG9bMV09ZSxvWzJdPXIsb1szXT1pLG99LGkuc2V0PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdFsyXT1uLHRbM109aSx0fSxpLnRyYW5zcG9zZT1mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXt2YXIgcj1lWzFdO3RbMV09ZVsyXSx0WzJdPXJ9ZWxzZSB0WzBdPWVbMF0sdFsxXT1lWzJdLHRbMl09ZVsxXSx0WzNdPWVbM107cmV0dXJuIHR9LGkuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLG89ZVszXSxhPXIqby1pKm47cmV0dXJuIGE/KGE9MS9hLHRbMF09byphLHRbMV09LW4qYSx0WzJdPS1pKmEsdFszXT1yKmEsdCk6bnVsbH0saS5hZGpvaW50PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gdFswXT1lWzNdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPXIsdH0saS5kZXRlcm1pbmFudD1mdW5jdGlvbih0KXtyZXR1cm4gdFswXSp0WzNdLXRbMl0qdFsxXX0saS5tdWx0aXBseT1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPXJbMF0sbD1yWzFdLHU9clsyXSxjPXJbM107cmV0dXJuIHRbMF09bipzK28qbCx0WzFdPWkqcythKmwsdFsyXT1uKnUrbypjLHRbM109aSp1K2EqYyx0fSxpLm11bD1pLm11bHRpcGx5LGkucm90YXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1lWzNdLHM9TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1uKmwrbypzLHRbMV09aSpsK2Eqcyx0WzJdPW4qLXMrbypsLHRbM109aSotcythKmwsdH0saS5zY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPXJbMF0sbD1yWzFdO3JldHVybiB0WzBdPW4qcyx0WzFdPWkqcyx0WzJdPW8qbCx0WzNdPWEqbCx0fSxpLmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc2luKGUpLG49TWF0aC5jb3MoZSk7cmV0dXJuIHRbMF09bix0WzFdPXIsdFsyXT0tcix0WzNdPW4sdH0saS5mcm9tU2NhbGluZz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT0wLHRbMl09MCx0WzNdPWVbMV0sdH0saS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuIm1hdDIoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIpIn0saS5mcm9iPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codFswXSwyKStNYXRoLnBvdyh0WzFdLDIpK01hdGgucG93KHRbMl0sMikrTWF0aC5wb3codFszXSwyKSl9LGkuTERVPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzJdPW5bMl0vblswXSxyWzBdPW5bMF0sclsxXT1uWzFdLHJbM109blszXS10WzJdKnJbMV0sW3QsZSxyXX0saS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0rclswXSx0WzFdPWVbMV0rclsxXSx0WzJdPWVbMl0rclsyXSx0WzNdPWVbM10rclszXSx0fSxpLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdFsyXT1lWzJdLXJbMl0sdFszXT1lWzNdLXJbM10sdH0saS5zdWI9aS5zdWJ0cmFjdCxpLmV4YWN0RXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbM109PT1lWzNdfSxpLmVxdWFscz1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0saT10WzFdLG89dFsyXSxhPXRbM10scz1lWzBdLGw9ZVsxXSx1PWVbMl0sYz1lWzNdO3JldHVybiBNYXRoLmFicyhyLXMpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhyKSxNYXRoLmFicyhzKSkmJk1hdGguYWJzKGktbCk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGkpLE1hdGguYWJzKGwpKSYmTWF0aC5hYnMoby11KTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobyksTWF0aC5hYnModSkpJiZNYXRoLmFicyhhLWMpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhhKSxNYXRoLmFicyhjKSl9LGkubXVsdGlwbHlTY2FsYXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0WzNdPWVbM10qcix0fSxpLm11bHRpcGx5U2NhbGFyQW5kQWRkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0rclswXSpuLHRbMV09ZVsxXStyWzFdKm4sdFsyXT1lWzJdK3JbMl0qbix0WzNdPWVbM10rclszXSpuLHR9LGUuZXhwb3J0cz1pfSx7Ii4vY29tbW9uLmpzIjozODN9XSwzODU6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2NvbW1vbi5qcyIpLGk9e307aS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbi5BUlJBWV9UWVBFKDYpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTEsdFs0XT0wLHRbNV09MCx0fSxpLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBuLkFSUkFZX1RZUEUoNik7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGV9LGkuY29weT1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFs0XT1lWzRdLHRbNV09ZVs1XSx0fSxpLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTEsdFs0XT0wLHRbNV09MCx0fSxpLmZyb21WYWx1ZXM9ZnVuY3Rpb24odCxlLHIsaSxvLGEpe3ZhciBzPW5ldyBuLkFSUkFZX1RZUEUoNik7cmV0dXJuIHNbMF09dCxzWzFdPWUsc1syXT1yLHNbM109aSxzWzRdPW8sc1s1XT1hLHN9LGkuc2V0PWZ1bmN0aW9uKHQsZSxyLG4saSxvLGEpe3JldHVybiB0WzBdPWUsdFsxXT1yLHRbMl09bix0WzNdPWksdFs0XT1vLHRbNV09YSx0fSxpLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPWVbM10sYT1lWzRdLHM9ZVs1XSxsPXIqby1uKmk7cmV0dXJuIGw/KGw9MS9sLHRbMF09bypsLHRbMV09LW4qbCx0WzJdPS1pKmwsdFszXT1yKmwsdFs0XT0oaSpzLW8qYSkqbCx0WzVdPShuKmEtcipzKSpsLHQpOm51bGx9LGkuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0qdFszXS10WzFdKnRbMl19LGkubXVsdGlwbHk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1lWzRdLGw9ZVs1XSx1PXJbMF0sYz1yWzFdLGg9clsyXSxmPXJbM10scD1yWzRdLGQ9cls1XTtyZXR1cm4gdFswXT1uKnUrbypjLHRbMV09aSp1K2EqYyx0WzJdPW4qaCtvKmYsdFszXT1pKmgrYSpmLHRbNF09bipwK28qZCtzLHRbNV09aSpwK2EqZCtsLHR9LGkubXVsPWkubXVsdGlwbHksaS5yb3RhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1lWzRdLGw9ZVs1XSx1PU1hdGguc2luKHIpLGM9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09bipjK28qdSx0WzFdPWkqYythKnUsdFsyXT1uKi11K28qYyx0WzNdPWkqLXUrYSpjLHRbNF09cyx0WzVdPWwsdH0saS5zY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPWVbNF0sbD1lWzVdLHU9clswXSxjPXJbMV07cmV0dXJuIHRbMF09bip1LHRbMV09aSp1LHRbMl09bypjLHRbM109YSpjLHRbNF09cyx0WzVdPWwsdH0saS50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1lWzRdLGw9ZVs1XSx1PXJbMF0sYz1yWzFdO3JldHVybiB0WzBdPW4sdFsxXT1pLHRbMl09byx0WzNdPWEsdFs0XT1uKnUrbypjK3MsdFs1XT1pKnUrYSpjK2wsdH0saS5mcm9tUm90YXRpb249ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNpbihlKSxuPU1hdGguY29zKGUpO3JldHVybiB0WzBdPW4sdFsxXT1yLHRbMl09LXIsdFszXT1uLHRbNF09MCx0WzVdPTAsdH0saS5mcm9tU2NhbGluZz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT0wLHRbMl09MCx0WzNdPWVbMV0sdFs0XT0wLHRbNV09MCx0fSxpLmZyb21UcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTEsdFs0XT1lWzBdLHRbNV09ZVsxXSx0fSxpLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4ibWF0MmQoIit0WzBdKyIsICIrdFsxXSsiLCAiK3RbMl0rIiwgIit0WzNdKyIsICIrdFs0XSsiLCAiK3RbNV0rIikifSxpLmZyb2I9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydChNYXRoLnBvdyh0WzBdLDIpK01hdGgucG93KHRbMV0sMikrTWF0aC5wb3codFsyXSwyKStNYXRoLnBvdyh0WzNdLDIpK01hdGgucG93KHRbNF0sMikrTWF0aC5wb3codFs1XSwyKSsxKX0saS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0rclswXSx0WzFdPWVbMV0rclsxXSx0WzJdPWVbMl0rclsyXSx0WzNdPWVbM10rclszXSx0WzRdPWVbNF0rcls0XSx0WzVdPWVbNV0rcls1XSx0fSxpLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdFsyXT1lWzJdLXJbMl0sdFszXT1lWzNdLXJbM10sdFs0XT1lWzRdLXJbNF0sdFs1XT1lWzVdLXJbNV0sdH0saS5zdWI9aS5zdWJ0cmFjdCxpLm11bHRpcGx5U2NhbGFyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdKnIsdFsxXT1lWzFdKnIsdFsyXT1lWzJdKnIsdFszXT1lWzNdKnIsdFs0XT1lWzRdKnIsdFs1XT1lWzVdKnIsdH0saS5tdWx0aXBseVNjYWxhckFuZEFkZD1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdFswXT1lWzBdK3JbMF0qbix0WzFdPWVbMV0rclsxXSpuLHRbMl09ZVsyXStyWzJdKm4sdFszXT1lWzNdK3JbM10qbix0WzRdPWVbNF0rcls0XSpuLHRbNV09ZVs1XStyWzVdKm4sdH0saS5leGFjdEVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPT09ZVswXSYmdFsxXT09PWVbMV0mJnRbMl09PT1lWzJdJiZ0WzNdPT09ZVszXSYmdFs0XT09PWVbNF0mJnRbNV09PT1lWzVdfSxpLmVxdWFscz1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0saT10WzFdLG89dFsyXSxhPXRbM10scz10WzRdLGw9dFs1XSx1PWVbMF0sYz1lWzFdLGg9ZVsyXSxmPWVbM10scD1lWzRdLGQ9ZVs1XTtyZXR1cm4gTWF0aC5hYnMoci11KTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMociksTWF0aC5hYnModSkpJiZNYXRoLmFicyhpLWMpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhpKSxNYXRoLmFicyhjKSkmJk1hdGguYWJzKG8taCk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKG8pLE1hdGguYWJzKGgpKSYmTWF0aC5hYnMoYS1mKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoYSksTWF0aC5hYnMoZikpJiZNYXRoLmFicyhzLXApPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhzKSxNYXRoLmFicyhwKSkmJk1hdGguYWJzKGwtZCk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGwpLE1hdGguYWJzKGQpKX0sZS5leHBvcnRzPWl9LHsiLi9jb21tb24uanMiOjM4M31dLDM4NjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vY29tbW9uLmpzIiksaT17fTtpLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBuLkFSUkFZX1RZUEUoOSk7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGkuZnJvbU1hdDQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzRdLHRbNF09ZVs1XSx0WzVdPWVbNl0sdFs2XT1lWzhdLHRbN109ZVs5XSx0WzhdPWVbMTBdLHR9LGkuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IG4uQVJSQVlfVFlQRSg5KTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZX0saS5jb3B5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHR9LGkuZnJvbVZhbHVlcz1mdW5jdGlvbih0LGUscixpLG8sYSxzLGwsdSl7dmFyIGM9bmV3IG4uQVJSQVlfVFlQRSg5KTtyZXR1cm4gY1swXT10LGNbMV09ZSxjWzJdPXIsY1szXT1pLGNbNF09byxjWzVdPWEsY1s2XT1zLGNbN109bCxjWzhdPXUsY30saS5zZXQ9ZnVuY3Rpb24odCxlLHIsbixpLG8sYSxzLGwsdSl7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdFsyXT1uLHRbM109aSx0WzRdPW8sdFs1XT1hLHRbNl09cyx0WzddPWwsdFs4XT11LHR9LGkuaWRlbnRpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGkudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpe3ZhciByPWVbMV0sbj1lWzJdLGk9ZVs1XTt0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109cix0WzVdPWVbN10sdFs2XT1uLHRbN109aX1lbHNlIHRbMF09ZVswXSx0WzFdPWVbM10sdFsyXT1lWzZdLHRbM109ZVsxXSx0WzRdPWVbNF0sdFs1XT1lWzddLHRbNl09ZVsyXSx0WzddPWVbNV0sdFs4XT1lWzhdO3JldHVybiB0fSxpLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPWVbM10sYT1lWzRdLHM9ZVs1XSxsPWVbNl0sdT1lWzddLGM9ZVs4XSxoPWMqYS1zKnUsZj0tYypvK3MqbCxwPXUqby1hKmwsZD1yKmgrbipmK2kqcDtyZXR1cm4gZD8oZD0xL2QsdFswXT1oKmQsdFsxXT0oLWMqbitpKnUpKmQsdFsyXT0ocypuLWkqYSkqZCx0WzNdPWYqZCx0WzRdPShjKnItaSpsKSpkLHRbNV09KC1zKnIraSpvKSpkLHRbNl09cCpkLHRbN109KC11KnIrbipsKSpkLHRbOF09KGEqci1uKm8pKmQsdCk6bnVsbH0saS5hZGpvaW50PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLG89ZVszXSxhPWVbNF0scz1lWzVdLGw9ZVs2XSx1PWVbN10sYz1lWzhdO3JldHVybiB0WzBdPWEqYy1zKnUsdFsxXT1pKnUtbipjLHRbMl09bipzLWkqYSx0WzNdPXMqbC1vKmMsdFs0XT1yKmMtaSpsLHRbNV09aSpvLXIqcyx0WzZdPW8qdS1hKmwsdFs3XT1uKmwtcip1LHRbOF09ciphLW4qbyx0fSxpLmRldGVybWluYW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM10sbz10WzRdLGE9dFs1XSxzPXRbNl0sbD10WzddLHU9dFs4XTtyZXR1cm4gZSoodSpvLWEqbCkrciooLXUqaSthKnMpK24qKGwqaS1vKnMpfSxpLm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1lWzNdLHM9ZVs0XSxsPWVbNV0sdT1lWzZdLGM9ZVs3XSxoPWVbOF0sZj1yWzBdLHA9clsxXSxkPXJbMl0sbT1yWzNdLGc9cls0XSx2PXJbNV0seT1yWzZdLGI9cls3XSx4PXJbOF07cmV0dXJuIHRbMF09ZipuK3AqYStkKnUsdFsxXT1mKmkrcCpzK2QqYyx0WzJdPWYqbytwKmwrZCpoLHRbM109bSpuK2cqYSt2KnUsdFs0XT1tKmkrZypzK3YqYyx0WzVdPW0qbytnKmwrdipoLHRbNl09eSpuK2IqYSt4KnUsdFs3XT15KmkrYipzK3gqYyx0WzhdPXkqbytiKmwreCpoLHR9LGkubXVsPWkubXVsdGlwbHksaS50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1lWzRdLGw9ZVs1XSx1PWVbNl0sYz1lWzddLGg9ZVs4XSxmPXJbMF0scD1yWzFdO3JldHVybiB0WzBdPW4sdFsxXT1pLHRbMl09byx0WzNdPWEsdFs0XT1zLHRbNV09bCx0WzZdPWYqbitwKmErdSx0WzddPWYqaStwKnMrYyx0WzhdPWYqbytwKmwraCx0fSxpLnJvdGF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPWVbNF0sbD1lWzVdLHU9ZVs2XSxjPWVbN10saD1lWzhdLGY9TWF0aC5zaW4ocikscD1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1wKm4rZiphLHRbMV09cCppK2Yqcyx0WzJdPXAqbytmKmwsdFszXT1wKmEtZipuLHRbNF09cCpzLWYqaSx0WzVdPXAqbC1mKm8sdFs2XT11LHRbN109Yyx0WzhdPWgsdH0saS5zY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49clswXSxpPXJbMV07cmV0dXJuIHRbMF09biplWzBdLHRbMV09biplWzFdLHRbMl09biplWzJdLHRbM109aSplWzNdLHRbNF09aSplWzRdLHRbNV09aSplWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHR9LGkuZnJvbVRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09MSx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTEsdFs1XT0wLHRbNl09ZVswXSx0WzddPWVbMV0sdFs4XT0xLHR9LGkuZnJvbVJvdGF0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zaW4oZSksbj1NYXRoLmNvcyhlKTtyZXR1cm4gdFswXT1uLHRbMV09cix0WzJdPTAsdFszXT0tcix0WzRdPW4sdFs1XT0wLHRbNl09MCx0WzddPTAsdFs4XT0xLHR9LGkuZnJvbVNjYWxpbmc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09ZVsxXSx0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPTEsdH0saS5mcm9tTWF0MmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPTAsdFszXT1lWzJdLHRbNF09ZVszXSx0WzVdPTAsdFs2XT1lWzRdLHRbN109ZVs1XSx0WzhdPTEsdH0saS5mcm9tUXVhdD1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPWVbM10sYT1yK3Iscz1uK24sbD1pK2ksdT1yKmEsYz1uKmEsaD1uKnMsZj1pKmEscD1pKnMsZD1pKmwsbT1vKmEsZz1vKnMsdj1vKmw7cmV0dXJuIHRbMF09MS1oLWQsdFszXT1jLXYsdFs2XT1mK2csdFsxXT1jK3YsdFs0XT0xLXUtZCx0WzddPXAtbSx0WzJdPWYtZyx0WzVdPXArbSx0WzhdPTEtdS1oLHR9LGkubm9ybWFsRnJvbU1hdDQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9ZVs0XSxzPWVbNV0sbD1lWzZdLHU9ZVs3XSxjPWVbOF0saD1lWzldLGY9ZVsxMF0scD1lWzExXSxkPWVbMTJdLG09ZVsxM10sZz1lWzE0XSx2PWVbMTVdLHk9cipzLW4qYSxiPXIqbC1pKmEseD1yKnUtbyphLF89bipsLWkqcyx3PW4qdS1vKnMsTT1pKnUtbypsLGs9YyptLWgqZCxBPWMqZy1mKmQsVD1jKnYtcCpkLEU9aCpnLWYqbSxTPWgqdi1wKm0sTD1mKnYtcCpnLHo9eSpMLWIqUyt4KkUrXypULXcqQStNKms7cmV0dXJuIHo/KHo9MS96LHRbMF09KHMqTC1sKlMrdSpFKSp6LHRbMV09KGwqVC1hKkwtdSpBKSp6LHRbMl09KGEqUy1zKlQrdSprKSp6LHRbM109KGkqUy1uKkwtbypFKSp6LHRbNF09KHIqTC1pKlQrbypBKSp6LHRbNV09KG4qVC1yKlMtbyprKSp6LHRbNl09KG0qTS1nKncrdipfKSp6LHRbN109KGcqeC1kKk0tdipiKSp6LHRbOF09KGQqdy1tKngrdip5KSp6LHQpOm51bGx9LGkuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJtYXQzKCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIsICIrdFszXSsiLCAiK3RbNF0rIiwgIit0WzVdKyIsICIrdFs2XSsiLCAiK3RbN10rIiwgIit0WzhdKyIpIn0saS5mcm9iPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codFswXSwyKStNYXRoLnBvdyh0WzFdLDIpK01hdGgucG93KHRbMl0sMikrTWF0aC5wb3codFszXSwyKStNYXRoLnBvdyh0WzRdLDIpK01hdGgucG93KHRbNV0sMikrTWF0aC5wb3codFs2XSwyKStNYXRoLnBvdyh0WzddLDIpK01hdGgucG93KHRbOF0sMikpfSxpLmFkZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHRbM109ZVszXStyWzNdLHRbNF09ZVs0XStyWzRdLHRbNV09ZVs1XStyWzVdLHRbNl09ZVs2XStyWzZdLHRbN109ZVs3XStyWzddLHRbOF09ZVs4XStyWzhdLHR9LGkuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0tclswXSx0WzFdPWVbMV0tclsxXSx0WzJdPWVbMl0tclsyXSx0WzNdPWVbM10tclszXSx0WzRdPWVbNF0tcls0XSx0WzVdPWVbNV0tcls1XSx0WzZdPWVbNl0tcls2XSx0WzddPWVbN10tcls3XSx0WzhdPWVbOF0tcls4XSx0fSxpLnN1Yj1pLnN1YnRyYWN0LGkubXVsdGlwbHlTY2FsYXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0WzNdPWVbM10qcix0WzRdPWVbNF0qcix0WzVdPWVbNV0qcix0WzZdPWVbNl0qcix0WzddPWVbN10qcix0WzhdPWVbOF0qcix0fSxpLm11bHRpcGx5U2NhbGFyQW5kQWRkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0rclswXSpuLHRbMV09ZVsxXStyWzFdKm4sdFsyXT1lWzJdK3JbMl0qbix0WzNdPWVbM10rclszXSpuLHRbNF09ZVs0XStyWzRdKm4sdFs1XT1lWzVdK3JbNV0qbix0WzZdPWVbNl0rcls2XSpuLHRbN109ZVs3XStyWzddKm4sdFs4XT1lWzhdK3JbOF0qbix0fSxpLmV4YWN0RXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbM109PT1lWzNdJiZ0WzRdPT09ZVs0XSYmdFs1XT09PWVbNV0mJnRbNl09PT1lWzZdJiZ0WzddPT09ZVs3XSYmdFs4XT09PWVbOF19LGkuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxpPXRbMV0sbz10WzJdLGE9dFszXSxzPXRbNF0sbD10WzVdLHU9dFs2XSxjPXRbN10saD10WzhdLGY9ZVswXSxwPWVbMV0sZD1lWzJdLG09ZVszXSxnPWVbNF0sdj1lWzVdLHk9dFs2XSxiPWVbN10seD1lWzhdO3JldHVybiBNYXRoLmFicyhyLWYpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhyKSxNYXRoLmFicyhmKSkmJk1hdGguYWJzKGktcCk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGkpLE1hdGguYWJzKHApKSYmTWF0aC5hYnMoby1kKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobyksTWF0aC5hYnMoZCkpJiZNYXRoLmFicyhhLW0pPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhhKSxNYXRoLmFicyhtKSkmJk1hdGguYWJzKHMtZyk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHMpLE1hdGguYWJzKGcpKSYmTWF0aC5hYnMobC12KTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobCksTWF0aC5hYnModikpJiZNYXRoLmFicyh1LXkpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyh1KSxNYXRoLmFicyh5KSkmJk1hdGguYWJzKGMtYik8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGMpLE1hdGguYWJzKGIpKSYmTWF0aC5hYnMoaC14KTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoaCksTWF0aC5hYnMoeCkpfSxlLmV4cG9ydHM9aX0seyIuL2NvbW1vbi5qcyI6MzgzfV0sMzg3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9jb21tb24uanMiKSxpPXtzY2FsYXI6e30sU0lNRDp7fX07aS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbi5BUlJBWV9UWVBFKDE2KTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGkuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IG4uQVJSQVlfVFlQRSgxNik7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFszXSxlWzRdPXRbNF0sZVs1XT10WzVdLGVbNl09dFs2XSxlWzddPXRbN10sZVs4XT10WzhdLGVbOV09dFs5XSxlWzEwXT10WzEwXSxlWzExXT10WzExXSxlWzEyXT10WzEyXSxlWzEzXT10WzEzXSxlWzE0XT10WzE0XSxlWzE1XT10WzE1XSxlfSxpLmNvcHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbNF09ZVs0XSx0WzVdPWVbNV0sdFs2XT1lWzZdLHRbN109ZVs3XSx0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdLHR9LGkuZnJvbVZhbHVlcz1mdW5jdGlvbih0LGUscixpLG8sYSxzLGwsdSxjLGgsZixwLGQsbSxnKXt2YXIgdj1uZXcgbi5BUlJBWV9UWVBFKDE2KTtyZXR1cm4gdlswXT10LHZbMV09ZSx2WzJdPXIsdlszXT1pLHZbNF09byx2WzVdPWEsdls2XT1zLHZbN109bCx2WzhdPXUsdls5XT1jLHZbMTBdPWgsdlsxMV09Zix2WzEyXT1wLHZbMTNdPWQsdlsxNF09bSx2WzE1XT1nLHZ9LGkuc2V0PWZ1bmN0aW9uKHQsZSxyLG4saSxvLGEscyxsLHUsYyxoLGYscCxkLG0sZyl7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdFsyXT1uLHRbM109aSx0WzRdPW8sdFs1XT1hLHRbNl09cyx0WzddPWwsdFs4XT11LHRbOV09Yyx0WzEwXT1oLHRbMTFdPWYsdFsxMl09cCx0WzEzXT1kLHRbMTRdPW0sdFsxNV09Zyx0fSxpLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0saS5zY2FsYXIudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpe3ZhciByPWVbMV0sbj1lWzJdLGk9ZVszXSxvPWVbNl0sYT1lWzddLHM9ZVsxMV07dFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09cix0WzZdPWVbOV0sdFs3XT1lWzEzXSx0WzhdPW4sdFs5XT1vLHRbMTFdPWVbMTRdLHRbMTJdPWksdFsxM109YSx0WzE0XT1zfWVsc2UgdFswXT1lWzBdLHRbMV09ZVs0XSx0WzJdPWVbOF0sdFszXT1lWzEyXSx0WzRdPWVbMV0sdFs1XT1lWzVdLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09ZVsyXSx0WzldPWVbNl0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxNF0sdFsxMl09ZVszXSx0WzEzXT1lWzddLHRbMTRdPWVbMTFdLHRbMTVdPWVbMTVdO3JldHVybiB0fSxpLlNJTUQudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLG8sYSxzLGwsdSxjLGg7CnJldHVybiByPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwwKSxuPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw0KSxpPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw4KSxvPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwxMiksYT1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKHIsbiwwLDEsNCw1KSxzPVNJTUQuRmxvYXQzMng0LnNodWZmbGUoaSxvLDAsMSw0LDUpLGw9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShhLHMsMCwyLDQsNiksdT1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKGEscywxLDMsNSw3KSxTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDAsbCksU0lNRC5GbG9hdDMyeDQuc3RvcmUodCw0LHUpLGE9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShyLG4sMiwzLDYsNykscz1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKGksbywyLDMsNiw3KSxjPVNJTUQuRmxvYXQzMng0LnNodWZmbGUoYSxzLDAsMiw0LDYpLGg9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShhLHMsMSwzLDUsNyksU0lNRC5GbG9hdDMyeDQuc3RvcmUodCw4LGMpLFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsMTIsaCksdH0saS50cmFuc3Bvc2U9bi5VU0VfU0lNRD9pLlNJTUQudHJhbnNwb3NlOmkuc2NhbGFyLnRyYW5zcG9zZSxpLnNjYWxhci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9ZVs0XSxzPWVbNV0sbD1lWzZdLHU9ZVs3XSxjPWVbOF0saD1lWzldLGY9ZVsxMF0scD1lWzExXSxkPWVbMTJdLG09ZVsxM10sZz1lWzE0XSx2PWVbMTVdLHk9cipzLW4qYSxiPXIqbC1pKmEseD1yKnUtbyphLF89bipsLWkqcyx3PW4qdS1vKnMsTT1pKnUtbypsLGs9YyptLWgqZCxBPWMqZy1mKmQsVD1jKnYtcCpkLEU9aCpnLWYqbSxTPWgqdi1wKm0sTD1mKnYtcCpnLHo9eSpMLWIqUyt4KkUrXypULXcqQStNKms7cmV0dXJuIHo/KHo9MS96LHRbMF09KHMqTC1sKlMrdSpFKSp6LHRbMV09KGkqUy1uKkwtbypFKSp6LHRbMl09KG0qTS1nKncrdipfKSp6LHRbM109KGYqdy1oKk0tcCpfKSp6LHRbNF09KGwqVC1hKkwtdSpBKSp6LHRbNV09KHIqTC1pKlQrbypBKSp6LHRbNl09KGcqeC1kKk0tdipiKSp6LHRbN109KGMqTS1mKngrcCpiKSp6LHRbOF09KGEqUy1zKlQrdSprKSp6LHRbOV09KG4qVC1yKlMtbyprKSp6LHRbMTBdPShkKnctbSp4K3YqeSkqeix0WzExXT0oaCp4LWMqdy1wKnkpKnosdFsxMl09KHMqQS1hKkUtbCprKSp6LHRbMTNdPShyKkUtbipBK2kqaykqeix0WzE0XT0obSpiLWQqXy1nKnkpKnosdFsxNV09KGMqXy1oKmIrZip5KSp6LHQpOm51bGx9LGkuU0lNRC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksbyxhLHMsbCx1LGMsaCxmPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwwKSxwPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw0KSxkPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw4KSxtPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwxMik7cmV0dXJuIGE9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShmLHAsMCwxLDQsNSksbj1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKGQsbSwwLDEsNCw1KSxyPVNJTUQuRmxvYXQzMng0LnNodWZmbGUoYSxuLDAsMiw0LDYpLG49U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShuLGEsMSwzLDUsNyksYT1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKGYscCwyLDMsNiw3KSxvPVNJTUQuRmxvYXQzMng0LnNodWZmbGUoZCxtLDIsMyw2LDcpLGk9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShhLG8sMCwyLDQsNiksbz1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKG8sYSwxLDMsNSw3KSxhPVNJTUQuRmxvYXQzMng0Lm11bChpLG8pLGE9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShhLDEsMCwzLDIpLHM9U0lNRC5GbG9hdDMyeDQubXVsKG4sYSksbD1TSU1ELkZsb2F0MzJ4NC5tdWwocixhKSxhPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYSwyLDMsMCwxKSxzPVNJTUQuRmxvYXQzMng0LnN1YihTSU1ELkZsb2F0MzJ4NC5tdWwobixhKSxzKSxsPVNJTUQuRmxvYXQzMng0LnN1YihTSU1ELkZsb2F0MzJ4NC5tdWwocixhKSxsKSxsPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUobCwyLDMsMCwxKSxhPVNJTUQuRmxvYXQzMng0Lm11bChuLGkpLGE9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShhLDEsMCwzLDIpLHM9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChvLGEpLHMpLGM9U0lNRC5GbG9hdDMyeDQubXVsKHIsYSksYT1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGEsMiwzLDAsMSkscz1TSU1ELkZsb2F0MzJ4NC5zdWIocyxTSU1ELkZsb2F0MzJ4NC5tdWwobyxhKSksYz1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKHIsYSksYyksYz1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGMsMiwzLDAsMSksYT1TSU1ELkZsb2F0MzJ4NC5tdWwoU0lNRC5GbG9hdDMyeDQuc3dpenpsZShuLDIsMywwLDEpLG8pLGE9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShhLDEsMCwzLDIpLGk9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShpLDIsMywwLDEpLHM9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChpLGEpLHMpLHU9U0lNRC5GbG9hdDMyeDQubXVsKHIsYSksYT1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGEsMiwzLDAsMSkscz1TSU1ELkZsb2F0MzJ4NC5zdWIocyxTSU1ELkZsb2F0MzJ4NC5tdWwoaSxhKSksdT1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKHIsYSksdSksdT1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKHUsMiwzLDAsMSksYT1TSU1ELkZsb2F0MzJ4NC5tdWwocixuKSxhPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYSwxLDAsMywyKSx1PVNJTUQuRmxvYXQzMng0LmFkZChTSU1ELkZsb2F0MzJ4NC5tdWwobyxhKSx1KSxjPVNJTUQuRmxvYXQzMng0LnN1YihTSU1ELkZsb2F0MzJ4NC5tdWwoaSxhKSxjKSxhPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYSwyLDMsMCwxKSx1PVNJTUQuRmxvYXQzMng0LnN1YihTSU1ELkZsb2F0MzJ4NC5tdWwobyxhKSx1KSxjPVNJTUQuRmxvYXQzMng0LnN1YihjLFNJTUQuRmxvYXQzMng0Lm11bChpLGEpKSxhPVNJTUQuRmxvYXQzMng0Lm11bChyLG8pLGE9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShhLDEsMCwzLDIpLGw9U0lNRC5GbG9hdDMyeDQuc3ViKGwsU0lNRC5GbG9hdDMyeDQubXVsKGksYSkpLHU9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChuLGEpLHUpLGE9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShhLDIsMywwLDEpLGw9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChpLGEpLGwpLHU9U0lNRC5GbG9hdDMyeDQuc3ViKHUsU0lNRC5GbG9hdDMyeDQubXVsKG4sYSkpLGE9U0lNRC5GbG9hdDMyeDQubXVsKHIsaSksYT1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGEsMSwwLDMsMiksbD1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKG8sYSksbCksYz1TSU1ELkZsb2F0MzJ4NC5zdWIoYyxTSU1ELkZsb2F0MzJ4NC5tdWwobixhKSksYT1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGEsMiwzLDAsMSksbD1TSU1ELkZsb2F0MzJ4NC5zdWIobCxTSU1ELkZsb2F0MzJ4NC5tdWwobyxhKSksYz1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKG4sYSksYyksaD1TSU1ELkZsb2F0MzJ4NC5tdWwocixzKSxoPVNJTUQuRmxvYXQzMng0LmFkZChTSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGgsMiwzLDAsMSksaCksaD1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQuc3dpenpsZShoLDEsMCwzLDIpLGgpLGE9U0lNRC5GbG9hdDMyeDQucmVjaXByb2NhbEFwcHJveGltYXRpb24oaCksaD1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQuYWRkKGEsYSksU0lNRC5GbG9hdDMyeDQubXVsKGgsU0lNRC5GbG9hdDMyeDQubXVsKGEsYSkpKSwoaD1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGgsMCwwLDAsMCkpPyhTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDAsU0lNRC5GbG9hdDMyeDQubXVsKGgscykpLFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsNCxTSU1ELkZsb2F0MzJ4NC5tdWwoaCxsKSksU0lNRC5GbG9hdDMyeDQuc3RvcmUodCw4LFNJTUQuRmxvYXQzMng0Lm11bChoLHUpKSxTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDEyLFNJTUQuRmxvYXQzMng0Lm11bChoLGMpKSx0KTpudWxsfSxpLmludmVydD1uLlVTRV9TSU1EP2kuU0lNRC5pbnZlcnQ6aS5zY2FsYXIuaW52ZXJ0LGkuc2NhbGFyLmFkam9pbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9ZVs0XSxzPWVbNV0sbD1lWzZdLHU9ZVs3XSxjPWVbOF0saD1lWzldLGY9ZVsxMF0scD1lWzExXSxkPWVbMTJdLG09ZVsxM10sZz1lWzE0XSx2PWVbMTVdO3JldHVybiB0WzBdPXMqKGYqdi1wKmcpLWgqKGwqdi11KmcpK20qKGwqcC11KmYpLHRbMV09LShuKihmKnYtcCpnKS1oKihpKnYtbypnKSttKihpKnAtbypmKSksdFsyXT1uKihsKnYtdSpnKS1zKihpKnYtbypnKSttKihpKnUtbypsKSx0WzNdPS0obioobCpwLXUqZiktcyooaSpwLW8qZikraCooaSp1LW8qbCkpLHRbNF09LShhKihmKnYtcCpnKS1jKihsKnYtdSpnKStkKihsKnAtdSpmKSksdFs1XT1yKihmKnYtcCpnKS1jKihpKnYtbypnKStkKihpKnAtbypmKSx0WzZdPS0ocioobCp2LXUqZyktYSooaSp2LW8qZykrZCooaSp1LW8qbCkpLHRbN109cioobCpwLXUqZiktYSooaSpwLW8qZikrYyooaSp1LW8qbCksdFs4XT1hKihoKnYtcCptKS1jKihzKnYtdSptKStkKihzKnAtdSpoKSx0WzldPS0ociooaCp2LXAqbSktYyoobip2LW8qbSkrZCoobipwLW8qaCkpLHRbMTBdPXIqKHMqdi11Km0pLWEqKG4qdi1vKm0pK2QqKG4qdS1vKnMpLHRbMTFdPS0ocioocypwLXUqaCktYSoobipwLW8qaCkrYyoobip1LW8qcykpLHRbMTJdPS0oYSooaCpnLWYqbSktYyoocypnLWwqbSkrZCoocypmLWwqaCkpLHRbMTNdPXIqKGgqZy1mKm0pLWMqKG4qZy1pKm0pK2QqKG4qZi1pKmgpLHRbMTRdPS0ocioocypnLWwqbSktYSoobipnLWkqbSkrZCoobipsLWkqcykpLHRbMTVdPXIqKHMqZi1sKmgpLWEqKG4qZi1pKmgpK2MqKG4qbC1pKnMpLHR9LGkuU0lNRC5hZGpvaW50PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLG8sYSxzLGwsdSxjLGgsZixwLGQscj1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsMCksbj1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsNCksaT1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsOCksbz1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsMTIpO3JldHVybiBjPVNJTUQuRmxvYXQzMng0LnNodWZmbGUocixuLDAsMSw0LDUpLHM9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShpLG8sMCwxLDQsNSksYT1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKGMscywwLDIsNCw2KSxzPVNJTUQuRmxvYXQzMng0LnNodWZmbGUocyxjLDEsMyw1LDcpLGM9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZShyLG4sMiwzLDYsNyksdT1TSU1ELkZsb2F0MzJ4NC5zaHVmZmxlKGksbywyLDMsNiw3KSxsPVNJTUQuRmxvYXQzMng0LnNodWZmbGUoYyx1LDAsMiw0LDYpLHU9U0lNRC5GbG9hdDMyeDQuc2h1ZmZsZSh1LGMsMSwzLDUsNyksYz1TSU1ELkZsb2F0MzJ4NC5tdWwobCx1KSxjPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYywxLDAsMywyKSxoPVNJTUQuRmxvYXQzMng0Lm11bChzLGMpLGY9U0lNRC5GbG9hdDMyeDQubXVsKGEsYyksYz1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGMsMiwzLDAsMSksaD1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKHMsYyksaCksZj1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKGEsYyksZiksZj1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGYsMiwzLDAsMSksYz1TSU1ELkZsb2F0MzJ4NC5tdWwocyxsKSxjPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYywxLDAsMywyKSxoPVNJTUQuRmxvYXQzMng0LmFkZChTSU1ELkZsb2F0MzJ4NC5tdWwodSxjKSxoKSxkPVNJTUQuRmxvYXQzMng0Lm11bChhLGMpLGM9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShjLDIsMywwLDEpLGg9U0lNRC5GbG9hdDMyeDQuc3ViKGgsU0lNRC5GbG9hdDMyeDQubXVsKHUsYykpLGQ9U0lNRC5GbG9hdDMyeDQuc3ViKFNJTUQuRmxvYXQzMng0Lm11bChhLGMpLGQpLGQ9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShkLDIsMywwLDEpLGM9U0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUocywyLDMsMCwxKSx1KSxjPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYywxLDAsMywyKSxsPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUobCwyLDMsMCwxKSxoPVNJTUQuRmxvYXQzMng0LmFkZChTSU1ELkZsb2F0MzJ4NC5tdWwobCxjKSxoKSxwPVNJTUQuRmxvYXQzMng0Lm11bChhLGMpLGM9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShjLDIsMywwLDEpLGg9U0lNRC5GbG9hdDMyeDQuc3ViKGgsU0lNRC5GbG9hdDMyeDQubXVsKGwsYykpLHA9U0lNRC5GbG9hdDMyeDQuc3ViKFNJTUQuRmxvYXQzMng0Lm11bChhLGMpLHApLHA9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShwLDIsMywwLDEpLGM9U0lNRC5GbG9hdDMyeDQubXVsKGEscyksYz1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGMsMSwwLDMsMikscD1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKHUsYykscCksZD1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKGwsYyksZCksYz1TSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGMsMiwzLDAsMSkscD1TSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKHUsYykscCksZD1TSU1ELkZsb2F0MzJ4NC5zdWIoZCxTSU1ELkZsb2F0MzJ4NC5tdWwobCxjKSksYz1TSU1ELkZsb2F0MzJ4NC5tdWwoYSx1KSxjPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYywxLDAsMywyKSxmPVNJTUQuRmxvYXQzMng0LnN1YihmLFNJTUQuRmxvYXQzMng0Lm11bChsLGMpKSxwPVNJTUQuRmxvYXQzMng0LmFkZChTSU1ELkZsb2F0MzJ4NC5tdWwocyxjKSxwKSxjPVNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYywyLDMsMCwxKSxmPVNJTUQuRmxvYXQzMng0LmFkZChTSU1ELkZsb2F0MzJ4NC5tdWwobCxjKSxmKSxwPVNJTUQuRmxvYXQzMng0LnN1YihwLFNJTUQuRmxvYXQzMng0Lm11bChzLGMpKSxjPVNJTUQuRmxvYXQzMng0Lm11bChhLGwpLGM9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShjLDEsMCwzLDIpLGY9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bCh1LGMpLGYpLGQ9U0lNRC5GbG9hdDMyeDQuc3ViKGQsU0lNRC5GbG9hdDMyeDQubXVsKHMsYykpLGM9U0lNRC5GbG9hdDMyeDQuc3dpenpsZShjLDIsMywwLDEpLGY9U0lNRC5GbG9hdDMyeDQuc3ViKGYsU0lNRC5GbG9hdDMyeDQubXVsKHUsYykpLGQ9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChzLGMpLGQpLFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsMCxoKSxTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDQsZiksU0lNRC5GbG9hdDMyeDQuc3RvcmUodCw4LHApLFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsMTIsZCksdH0saS5hZGpvaW50PW4uVVNFX1NJTUQ/aS5TSU1ELmFkam9pbnQ6aS5zY2FsYXIuYWRqb2ludCxpLmRldGVybWluYW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM10sbz10WzRdLGE9dFs1XSxzPXRbNl0sbD10WzddLHU9dFs4XSxjPXRbOV0saD10WzEwXSxmPXRbMTFdLHA9dFsxMl0sZD10WzEzXSxtPXRbMTRdLGc9dFsxNV0sdj1lKmEtcipvLHk9ZSpzLW4qbyxiPWUqbC1pKm8seD1yKnMtbiphLF89cipsLWkqYSx3PW4qbC1pKnMsTT11KmQtYypwLGs9dSptLWgqcCxBPXUqZy1mKnAsVD1jKm0taCpkLEU9YypnLWYqZCxTPWgqZy1mKm07cmV0dXJuIHYqUy15KkUrYipUK3gqQS1fKmsrdypNfSxpLlNJTUQubXVsdGlwbHk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwwKSxpPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw0KSxvPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw4KSxhPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwxMikscz1TSU1ELkZsb2F0MzJ4NC5sb2FkKHIsMCksbD1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUocywwLDAsMCwwKSxuKSxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUocywxLDEsMSwxKSxpKSxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUocywyLDIsMiwyKSxvKSxTSU1ELkZsb2F0MzJ4NC5tdWwoU0lNRC5GbG9hdDMyeDQuc3dpenpsZShzLDMsMywzLDMpLGEpKSkpO1NJTUQuRmxvYXQzMng0LnN0b3JlKHQsMCxsKTt2YXIgdT1TSU1ELkZsb2F0MzJ4NC5sb2FkKHIsNCksYz1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUodSwwLDAsMCwwKSxuKSxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUodSwxLDEsMSwxKSxpKSxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUodSwyLDIsMiwyKSxvKSxTSU1ELkZsb2F0MzJ4NC5tdWwoU0lNRC5GbG9hdDMyeDQuc3dpenpsZSh1LDMsMywzLDMpLGEpKSkpO1NJTUQuRmxvYXQzMng0LnN0b3JlKHQsNCxjKTt2YXIgaD1TSU1ELkZsb2F0MzJ4NC5sb2FkKHIsOCksZj1TSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUoaCwwLDAsMCwwKSxuKSxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUoaCwxLDEsMSwxKSxpKSxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUoaCwyLDIsMiwyKSxvKSxTSU1ELkZsb2F0MzJ4NC5tdWwoU0lNRC5GbG9hdDMyeDQuc3dpenpsZShoLDMsMywzLDMpLGEpKSkpO1NJTUQuRmxvYXQzMng0LnN0b3JlKHQsOCxmKTt2YXIgcD1TSU1ELkZsb2F0MzJ4NC5sb2FkKHIsMTIpLGQ9U0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChTSU1ELkZsb2F0MzJ4NC5zd2l6emxlKHAsMCwwLDAsMCksbiksU0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChTSU1ELkZsb2F0MzJ4NC5zd2l6emxlKHAsMSwxLDEsMSksaSksU0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChTSU1ELkZsb2F0MzJ4NC5zd2l6emxlKHAsMiwyLDIsMiksbyksU0lNRC5GbG9hdDMyeDQubXVsKFNJTUQuRmxvYXQzMng0LnN3aXp6bGUocCwzLDMsMywzKSxhKSkpKTtyZXR1cm4gU0lNRC5GbG9hdDMyeDQuc3RvcmUodCwxMixkKSx0fSxpLnNjYWxhci5tdWx0aXBseT1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPWVbNF0sbD1lWzVdLHU9ZVs2XSxjPWVbN10saD1lWzhdLGY9ZVs5XSxwPWVbMTBdLGQ9ZVsxMV0sbT1lWzEyXSxnPWVbMTNdLHY9ZVsxNF0seT1lWzE1XSxiPXJbMF0seD1yWzFdLF89clsyXSx3PXJbM107cmV0dXJuIHRbMF09YipuK3gqcytfKmgrdyptLHRbMV09YippK3gqbCtfKmYrdypnLHRbMl09YipvK3gqdStfKnArdyp2LHRbM109YiphK3gqYytfKmQrdyp5LGI9cls0XSx4PXJbNV0sXz1yWzZdLHc9cls3XSx0WzRdPWIqbit4KnMrXypoK3cqbSx0WzVdPWIqaSt4KmwrXypmK3cqZyx0WzZdPWIqbyt4KnUrXypwK3cqdix0WzddPWIqYSt4KmMrXypkK3cqeSxiPXJbOF0seD1yWzldLF89clsxMF0sdz1yWzExXSx0WzhdPWIqbit4KnMrXypoK3cqbSx0WzldPWIqaSt4KmwrXypmK3cqZyx0WzEwXT1iKm8reCp1K18qcCt3KnYsdFsxMV09YiphK3gqYytfKmQrdyp5LGI9clsxMl0seD1yWzEzXSxfPXJbMTRdLHc9clsxNV0sdFsxMl09YipuK3gqcytfKmgrdyptLHRbMTNdPWIqaSt4KmwrXypmK3cqZyx0WzE0XT1iKm8reCp1K18qcCt3KnYsdFsxNV09YiphK3gqYytfKmQrdyp5LHR9LGkubXVsdGlwbHk9bi5VU0VfU0lNRD9pLlNJTUQubXVsdGlwbHk6aS5zY2FsYXIubXVsdGlwbHksaS5tdWw9aS5tdWx0aXBseSxpLnNjYWxhci50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbyxhLHMsbCx1LGMsaCxmLHAsZCxtPXJbMF0sZz1yWzFdLHY9clsyXTtyZXR1cm4gZT09PXQ/KHRbMTJdPWVbMF0qbStlWzRdKmcrZVs4XSp2K2VbMTJdLHRbMTNdPWVbMV0qbStlWzVdKmcrZVs5XSp2K2VbMTNdLHRbMTRdPWVbMl0qbStlWzZdKmcrZVsxMF0qditlWzE0XSx0WzE1XT1lWzNdKm0rZVs3XSpnK2VbMTFdKnYrZVsxNV0pOihuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1lWzRdLGw9ZVs1XSx1PWVbNl0sYz1lWzddLGg9ZVs4XSxmPWVbOV0scD1lWzEwXSxkPWVbMTFdLHRbMF09bix0WzFdPWksdFsyXT1vLHRbM109YSx0WzRdPXMsdFs1XT1sLHRbNl09dSx0WzddPWMsdFs4XT1oLHRbOV09Zix0WzEwXT1wLHRbMTFdPWQsdFsxMl09biptK3MqZytoKnYrZVsxMl0sdFsxM109aSptK2wqZytmKnYrZVsxM10sdFsxNF09byptK3UqZytwKnYrZVsxNF0sdFsxNV09YSptK2MqZytkKnYrZVsxNV0pLHR9LGkuU0lNRC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwwKSxpPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw0KSxvPVNJTUQuRmxvYXQzMng0LmxvYWQoZSw4KSxhPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwxMikscz1TSU1ELkZsb2F0MzJ4NChyWzBdLHJbMV0sclsyXSwwKTtlIT09dCYmKHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSksbj1TSU1ELkZsb2F0MzJ4NC5tdWwobixTSU1ELkZsb2F0MzJ4NC5zd2l6emxlKHMsMCwwLDAsMCkpLGk9U0lNRC5GbG9hdDMyeDQubXVsKGksU0lNRC5GbG9hdDMyeDQuc3dpenpsZShzLDEsMSwxLDEpKSxvPVNJTUQuRmxvYXQzMng0Lm11bChvLFNJTUQuRmxvYXQzMng0LnN3aXp6bGUocywyLDIsMiwyKSk7dmFyIGw9U0lNRC5GbG9hdDMyeDQuYWRkKG4sU0lNRC5GbG9hdDMyeDQuYWRkKGksU0lNRC5GbG9hdDMyeDQuYWRkKG8sYSkpKTtyZXR1cm4gU0lNRC5GbG9hdDMyeDQuc3RvcmUodCwxMixsKSx0fSxpLnRyYW5zbGF0ZT1uLlVTRV9TSU1EP2kuU0lNRC50cmFuc2xhdGU6aS5zY2FsYXIudHJhbnNsYXRlLGkuc2NhbGFyLnNjYWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yWzBdLGk9clsxXSxvPXJbMl07cmV0dXJuIHRbMF09ZVswXSpuLHRbMV09ZVsxXSpuLHRbMl09ZVsyXSpuLHRbM109ZVszXSpuLHRbNF09ZVs0XSppLHRbNV09ZVs1XSppLHRbNl09ZVs2XSppLHRbN109ZVs3XSppLHRbOF09ZVs4XSpvLHRbOV09ZVs5XSpvLHRbMTBdPWVbMTBdKm8sdFsxMV09ZVsxMV0qbyx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0fSxpLlNJTUQuc2NhbGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbyxhPVNJTUQuRmxvYXQzMng0KHJbMF0sclsxXSxyWzJdLDApO3JldHVybiBuPVNJTUQuRmxvYXQzMng0LmxvYWQoZSwwKSxTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDAsU0lNRC5GbG9hdDMyeDQubXVsKG4sU0lNRC5GbG9hdDMyeDQuc3dpenpsZShhLDAsMCwwLDApKSksaT1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsNCksU0lNRC5GbG9hdDMyeDQuc3RvcmUodCw0LFNJTUQuRmxvYXQzMng0Lm11bChpLFNJTUQuRmxvYXQzMng0LnN3aXp6bGUoYSwxLDEsMSwxKSkpLG89U0lNRC5GbG9hdDMyeDQubG9hZChlLDgpLFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsOCxTSU1ELkZsb2F0MzJ4NC5tdWwobyxTSU1ELkZsb2F0MzJ4NC5zd2l6emxlKGEsMiwyLDIsMikpKSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0fSxpLnNjYWxlPW4uVVNFX1NJTUQ/aS5TSU1ELnNjYWxlOmkuc2NhbGFyLnNjYWxlLGkucm90YXRlPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvLGEscyxsLHUsYyxoLGYscCxkLG0sZyx2LHksYix4LF8sdyxNLGssQSxULEUsUyxMPWlbMF0sej1pWzFdLEk9aVsyXSxQPU1hdGguc3FydChMKkwreip6K0kqSSk7cmV0dXJuIE1hdGguYWJzKFApPG4uRVBTSUxPTj9udWxsOihQPTEvUCxMKj1QLHoqPVAsSSo9UCxvPU1hdGguc2luKHIpLGE9TWF0aC5jb3Mocikscz0xLWEsbD1lWzBdLHU9ZVsxXSxjPWVbMl0saD1lWzNdLGY9ZVs0XSxwPWVbNV0sZD1lWzZdLG09ZVs3XSxnPWVbOF0sdj1lWzldLHk9ZVsxMF0sYj1lWzExXSx4PUwqTCpzK2EsXz16KkwqcytJKm8sdz1JKkwqcy16Km8sTT1MKnoqcy1JKm8saz16KnoqcythLEE9SSp6KnMrTCpvLFQ9TCpJKnMreipvLEU9eipJKnMtTCpvLFM9SSpJKnMrYSx0WzBdPWwqeCtmKl8rZyp3LHRbMV09dSp4K3AqXyt2KncsdFsyXT1jKngrZCpfK3kqdyx0WzNdPWgqeCttKl8rYip3LHRbNF09bCpNK2YqaytnKkEsdFs1XT11Kk0rcCprK3YqQSx0WzZdPWMqTStkKmsreSpBLHRbN109aCpNK20qaytiKkEsdFs4XT1sKlQrZipFK2cqUyx0WzldPXUqVCtwKkUrdipTLHRbMTBdPWMqVCtkKkUreSpTLHRbMTFdPWgqVCttKkUrYipTLGUhPT10JiYodFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHQpfSxpLnNjYWxhci5yb3RhdGVYPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLG89ZVs0XSxhPWVbNV0scz1lWzZdLGw9ZVs3XSx1PWVbOF0sYz1lWzldLGg9ZVsxMF0sZj1lWzExXTtyZXR1cm4gZSE9PXQmJih0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHRbNF09byppK3Uqbix0WzVdPWEqaStjKm4sdFs2XT1zKmkraCpuLHRbN109bCppK2Yqbix0WzhdPXUqaS1vKm4sdFs5XT1jKmktYSpuLHRbMTBdPWgqaS1zKm4sdFsxMV09ZippLWwqbix0fSxpLlNJTUQucm90YXRlWD1mdW5jdGlvbih0LGUscil7dmFyIG49U0lNRC5GbG9hdDMyeDQuc3BsYXQoTWF0aC5zaW4ocikpLGk9U0lNRC5GbG9hdDMyeDQuc3BsYXQoTWF0aC5jb3MocikpO2UhPT10JiYodFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTt2YXIgbz1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsNCksYT1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsOCk7cmV0dXJuIFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsNCxTSU1ELkZsb2F0MzJ4NC5hZGQoU0lNRC5GbG9hdDMyeDQubXVsKG8saSksU0lNRC5GbG9hdDMyeDQubXVsKGEsbikpKSxTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDgsU0lNRC5GbG9hdDMyeDQuc3ViKFNJTUQuRmxvYXQzMng0Lm11bChhLGkpLFNJTUQuRmxvYXQzMng0Lm11bChvLG4pKSksdH0saS5yb3RhdGVYPW4uVVNFX1NJTUQ/aS5TSU1ELnJvdGF0ZVg6aS5zY2FsYXIucm90YXRlWCxpLnNjYWxhci5yb3RhdGVZPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLG89ZVswXSxhPWVbMV0scz1lWzJdLGw9ZVszXSx1PWVbOF0sYz1lWzldLGg9ZVsxMF0sZj1lWzExXTtyZXR1cm4gZSE9PXQmJih0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHRbMF09byppLXUqbix0WzFdPWEqaS1jKm4sdFsyXT1zKmktaCpuLHRbM109bCppLWYqbix0WzhdPW8qbit1KmksdFs5XT1hKm4rYyppLHRbMTBdPXMqbitoKmksdFsxMV09bCpuK2YqaSx0fSxpLlNJTUQucm90YXRlWT1mdW5jdGlvbih0LGUscil7dmFyIG49U0lNRC5GbG9hdDMyeDQuc3BsYXQoTWF0aC5zaW4ocikpLGk9U0lNRC5GbG9hdDMyeDQuc3BsYXQoTWF0aC5jb3MocikpO2UhPT10JiYodFs0XT1lWzRdLHRbNV09ZVs1XSx0WzZdPWVbNl0sdFs3XT1lWzddLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKTt2YXIgbz1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsMCksYT1TSU1ELkZsb2F0MzJ4NC5sb2FkKGUsOCk7cmV0dXJuIFNJTUQuRmxvYXQzMng0LnN0b3JlKHQsMCxTSU1ELkZsb2F0MzJ4NC5zdWIoU0lNRC5GbG9hdDMyeDQubXVsKG8saSksU0lNRC5GbG9hdDMyeDQubXVsKGEsbikpKSxTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDgsU0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChvLG4pLFNJTUQuRmxvYXQzMng0Lm11bChhLGkpKSksdH0saS5yb3RhdGVZPW4uVVNFX1NJTUQ/aS5TSU1ELnJvdGF0ZVk6aS5zY2FsYXIucm90YXRlWSxpLnNjYWxhci5yb3RhdGVaPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLG89ZVswXSxhPWVbMV0scz1lWzJdLGw9ZVszXSx1PWVbNF0sYz1lWzVdLGg9ZVs2XSxmPWVbN107cmV0dXJuIGUhPT10JiYodFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSksdFswXT1vKmkrdSpuLHRbMV09YSppK2Mqbix0WzJdPXMqaStoKm4sdFszXT1sKmkrZipuLHRbNF09dSppLW8qbix0WzVdPWMqaS1hKm4sdFs2XT1oKmktcypuLHRbN109ZippLWwqbix0fSxpLlNJTUQucm90YXRlWj1mdW5jdGlvbih0LGUscil7dmFyIG49U0lNRC5GbG9hdDMyeDQuc3BsYXQoTWF0aC5zaW4ocikpLGk9U0lNRC5GbG9hdDMyeDQuc3BsYXQoTWF0aC5jb3MocikpO2UhPT10JiYodFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSk7dmFyIG89U0lNRC5GbG9hdDMyeDQubG9hZChlLDApLGE9U0lNRC5GbG9hdDMyeDQubG9hZChlLDQpO3JldHVybiBTSU1ELkZsb2F0MzJ4NC5zdG9yZSh0LDAsU0lNRC5GbG9hdDMyeDQuYWRkKFNJTUQuRmxvYXQzMng0Lm11bChvLGkpLFNJTUQuRmxvYXQzMng0Lm11bChhLG4pKSksU0lNRC5GbG9hdDMyeDQuc3RvcmUodCw0LFNJTUQuRmxvYXQzMng0LnN1YihTSU1ELkZsb2F0MzJ4NC5tdWwoYSxpKSxTSU1ELkZsb2F0MzJ4NC5tdWwobyxuKSkpLHR9LGkucm90YXRlWj1uLlVTRV9TSU1EP2kuU0lNRC5yb3RhdGVaOmkuc2NhbGFyLnJvdGF0ZVosaS5mcm9tVHJhbnNsYXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT1lWzBdLHRbMTNdPWVbMV0sdFsxNF09ZVsyXSx0WzE1XT0xLHR9LGkuZnJvbVNjYWxpbmc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWVbMV0sdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPWVbMl0sdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGkuZnJvbVJvdGF0aW9uPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxvLGEscz1yWzBdLGw9clsxXSx1PXJbMl0sYz1NYXRoLnNxcnQocypzK2wqbCt1KnUpO3JldHVybiBNYXRoLmFicyhjKTxuLkVQU0lMT04/bnVsbDooYz0xL2Mscyo9YyxsKj1jLHUqPWMsaT1NYXRoLnNpbihlKSxvPU1hdGguY29zKGUpLGE9MS1vLHRbMF09cypzKmErbyx0WzFdPWwqcyphK3UqaSx0WzJdPXUqcyphLWwqaSx0WzNdPTAsdFs0XT1zKmwqYS11KmksdFs1XT1sKmwqYStvLHRbNl09dSpsKmErcyppLHRbN109MCx0WzhdPXMqdSphK2wqaSx0WzldPWwqdSphLXMqaSx0WzEwXT11KnUqYStvLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0KX0saS5mcm9tWFJvdGF0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zaW4oZSksbj1NYXRoLmNvcyhlKTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPW4sdFs2XT1yLHRbN109MCx0WzhdPTAsdFs5XT0tcix0WzEwXT1uLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fSxpLmZyb21ZUm90YXRpb249ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNpbihlKSxuPU1hdGguY29zKGUpO3JldHVybiB0WzBdPW4sdFsxXT0wLHRbMl09LXIsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPXIsdFs5XT0wLHRbMTBdPW4sdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9LGkuZnJvbVpSb3RhdGlvbj1mdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc2luKGUpLG49TWF0aC5jb3MoZSk7cmV0dXJuIHRbMF09bix0WzFdPXIsdFsyXT0wLHRbM109MCx0WzRdPS1yLHRbNV09bix0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0saS5mcm9tUm90YXRpb25UcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPW4rbixsPWkraSx1PW8rbyxjPW4qcyxoPW4qbCxmPW4qdSxwPWkqbCxkPWkqdSxtPW8qdSxnPWEqcyx2PWEqbCx5PWEqdTtyZXR1cm4gdFswXT0xLShwK20pLHRbMV09aCt5LHRbMl09Zi12LHRbM109MCx0WzRdPWgteSx0WzVdPTEtKGMrbSksdFs2XT1kK2csdFs3XT0wLHRbOF09Zit2LHRbOV09ZC1nLHRbMTBdPTEtKGMrcCksdFsxMV09MCx0WzEyXT1yWzBdLHRbMTNdPXJbMV0sdFsxNF09clsyXSx0WzE1XT0xLHR9LGkuZ2V0VHJhbnNsYXRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzEyXSx0WzFdPWVbMTNdLHRbMl09ZVsxNF0sdH0saS5nZXRSb3RhdGlvbj1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0rZVs1XStlWzEwXSxuPTA7cmV0dXJuIHI+MD8obj0yKk1hdGguc3FydChyKzEpLHRbM109LjI1Km4sdFswXT0oZVs2XS1lWzldKS9uLHRbMV09KGVbOF0tZVsyXSkvbix0WzJdPShlWzFdLWVbNF0pL24pOmVbMF0+ZVs1XSZlWzBdPmVbMTBdPyhuPTIqTWF0aC5zcXJ0KDErZVswXS1lWzVdLWVbMTBdKSx0WzNdPShlWzZdLWVbOV0pL24sdFswXT0uMjUqbix0WzFdPShlWzFdK2VbNF0pL24sdFsyXT0oZVs4XStlWzJdKS9uKTplWzVdPmVbMTBdPyhuPTIqTWF0aC5zcXJ0KDErZVs1XS1lWzBdLWVbMTBdKSx0WzNdPShlWzhdLWVbMl0pL24sdFswXT0oZVsxXStlWzRdKS9uLHRbMV09LjI1Km4sdFsyXT0oZVs2XStlWzldKS9uKToobj0yKk1hdGguc3FydCgxK2VbMTBdLWVbMF0tZVs1XSksdFszXT0oZVsxXS1lWzRdKS9uLHRbMF09KGVbOF0rZVsyXSkvbix0WzFdPShlWzZdK2VbOV0pL24sdFsyXT0uMjUqbiksdH0saS5mcm9tUm90YXRpb25UcmFuc2xhdGlvblNjYWxlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWVbMF0sbz1lWzFdLGE9ZVsyXSxzPWVbM10sbD1pK2ksdT1vK28sYz1hK2EsaD1pKmwsZj1pKnUscD1pKmMsZD1vKnUsbT1vKmMsZz1hKmMsdj1zKmwseT1zKnUsYj1zKmMseD1uWzBdLF89blsxXSx3PW5bMl07cmV0dXJuIHRbMF09KDEtKGQrZykpKngsdFsxXT0oZitiKSp4LHRbMl09KHAteSkqeCx0WzNdPTAsdFs0XT0oZi1iKSpfLHRbNV09KDEtKGgrZykpKl8sdFs2XT0obSt2KSpfLHRbN109MCx0WzhdPShwK3kpKncsdFs5XT0obS12KSp3LHRbMTBdPSgxLShoK2QpKSp3LHRbMTFdPTAsdFsxMl09clswXSx0WzEzXT1yWzFdLHRbMTRdPXJbMl0sdFsxNV09MSx0fSxpLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uU2NhbGVPcmlnaW49ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1lWzBdLGE9ZVsxXSxzPWVbMl0sbD1lWzNdLHU9bytvLGM9YSthLGg9cytzLGY9byp1LHA9bypjLGQ9bypoLG09YSpjLGc9YSpoLHY9cypoLHk9bCp1LGI9bCpjLHg9bCpoLF89blswXSx3PW5bMV0sTT1uWzJdLGs9aVswXSxBPWlbMV0sVD1pWzJdO3JldHVybiB0WzBdPSgxLShtK3YpKSpfLHRbMV09KHAreCkqXyx0WzJdPShkLWIpKl8sdFszXT0wLHRbNF09KHAteCkqdyx0WzVdPSgxLShmK3YpKSp3LHRbNl09KGcreSkqdyx0WzddPTAsdFs4XT0oZCtiKSpNLHRbOV09KGcteSkqTSx0WzEwXT0oMS0oZittKSkqTSx0WzExXT0wLHRbMTJdPXJbMF0ray0odFswXSprK3RbNF0qQSt0WzhdKlQpLHRbMTNdPXJbMV0rQS0odFsxXSprK3RbNV0qQSt0WzldKlQpLHRbMTRdPXJbMl0rVC0odFsyXSprK3RbNl0qQSt0WzEwXSpUKSx0WzE1XT0xLHR9LGkuZnJvbVF1YXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9cityLHM9bituLGw9aStpLHU9ciphLGM9biphLGg9bipzLGY9aSphLHA9aSpzLGQ9aSpsLG09byphLGc9bypzLHY9bypsO3JldHVybiB0WzBdPTEtaC1kLHRbMV09Yyt2LHRbMl09Zi1nLHRbM109MCx0WzRdPWMtdix0WzVdPTEtdS1kLHRbNl09cCttLHRbN109MCx0WzhdPWYrZyx0WzldPXAtbSx0WzEwXT0xLXUtaCx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH0saS5mcnVzdHVtPWZ1bmN0aW9uKHQsZSxyLG4saSxvLGEpe3ZhciBzPTEvKHItZSksbD0xLyhpLW4pLHU9MS8oby1hKTtyZXR1cm4gdFswXT0yKm8qcyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0yKm8qbCx0WzZdPTAsdFs3XT0wLHRbOF09KHIrZSkqcyx0WzldPShpK24pKmwsdFsxMF09KGErbykqdSx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNF09YSpvKjIqdSx0WzE1XT0wLHR9LGkucGVyc3BlY3RpdmU9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz0xL01hdGgudGFuKGUvMiksYT0xLyhuLWkpO3JldHVybiB0WzBdPW8vcix0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT1vLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0oaStuKSphLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT0yKmkqbiphLHRbMTVdPTAsdH0saS5wZXJzcGVjdGl2ZUZyb21GaWVsZE9mVmlldz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1NYXRoLnRhbihlLnVwRGVncmVlcypNYXRoLlBJLzE4MCksbz1NYXRoLnRhbihlLmRvd25EZWdyZWVzKk1hdGguUEkvMTgwKSxhPU1hdGgudGFuKGUubGVmdERlZ3JlZXMqTWF0aC5QSS8xODApLHM9TWF0aC50YW4oZS5yaWdodERlZ3JlZXMqTWF0aC5QSS8xODApLGw9Mi8oYStzKSx1PTIvKGkrbyk7cmV0dXJuIHRbMF09bCx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT11LHRbNl09MCx0WzddPTAsdFs4XT0tKChhLXMpKmwqLjUpLHRbOV09KGktbykqdSouNSx0WzEwXT1uLyhyLW4pLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT1uKnIvKHItbiksdFsxNV09MCx0fSxpLm9ydGhvPWZ1bmN0aW9uKHQsZSxyLG4saSxvLGEpe3ZhciBzPTEvKGUtciksbD0xLyhuLWkpLHU9MS8oby1hKTtyZXR1cm4gdFswXT0tMipzLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPS0yKmwsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTIqdSx0WzExXT0wLHRbMTJdPShlK3IpKnMsdFsxM109KGkrbikqbCx0WzE0XT0oYStvKSp1LHRbMTVdPTEsdH0saS5sb29rQXQ9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIGEscyxsLHUsYyxoLGYscCxkLG0sZz1lWzBdLHY9ZVsxXSx5PWVbMl0sYj1vWzBdLHg9b1sxXSxfPW9bMl0sdz1yWzBdLE09clsxXSxrPXJbMl07cmV0dXJuIE1hdGguYWJzKGctdyk8bi5FUFNJTE9OJiZNYXRoLmFicyh2LU0pPG4uRVBTSUxPTiYmTWF0aC5hYnMoeS1rKTxuLkVQU0lMT04/aS5pZGVudGl0eSh0KTooZj1nLXcscD12LU0sZD15LWssbT0xL01hdGguc3FydChmKmYrcCpwK2QqZCksZio9bSxwKj1tLGQqPW0sYT14KmQtXypwLHM9XypmLWIqZCxsPWIqcC14KmYsbT1NYXRoLnNxcnQoYSphK3MqcytsKmwpLG0/KG09MS9tLGEqPW0scyo9bSxsKj1tKTooYT0wLHM9MCxsPTApLHU9cCpsLWQqcyxjPWQqYS1mKmwsaD1mKnMtcCphLG09TWF0aC5zcXJ0KHUqdStjKmMraCpoKSxtPyhtPTEvbSx1Kj1tLGMqPW0saCo9bSk6KHU9MCxjPTAsaD0wKSx0WzBdPWEsdFsxXT11LHRbMl09Zix0WzNdPTAsdFs0XT1zLHRbNV09Yyx0WzZdPXAsdFs3XT0wLHRbOF09bCx0WzldPWgsdFsxMF09ZCx0WzExXT0wLHRbMTJdPS0oYSpnK3MqditsKnkpLHRbMTNdPS0odSpnK2MqditoKnkpLHRbMTRdPS0oZipnK3AqditkKnkpLHRbMTVdPTEsdCl9LGkuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJtYXQ0KCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIsICIrdFszXSsiLCAiK3RbNF0rIiwgIit0WzVdKyIsICIrdFs2XSsiLCAiK3RbN10rIiwgIit0WzhdKyIsICIrdFs5XSsiLCAiK3RbMTBdKyIsICIrdFsxMV0rIiwgIit0WzEyXSsiLCAiK3RbMTNdKyIsICIrdFsxNF0rIiwgIit0WzE1XSsiKSJ9LGkuZnJvYj1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHRbMF0sMikrTWF0aC5wb3codFsxXSwyKStNYXRoLnBvdyh0WzJdLDIpK01hdGgucG93KHRbM10sMikrTWF0aC5wb3codFs0XSwyKStNYXRoLnBvdyh0WzVdLDIpK01hdGgucG93KHRbNl0sMikrTWF0aC5wb3codFs3XSwyKStNYXRoLnBvdyh0WzhdLDIpK01hdGgucG93KHRbOV0sMikrTWF0aC5wb3codFsxMF0sMikrTWF0aC5wb3codFsxMV0sMikrTWF0aC5wb3codFsxMl0sMikrTWF0aC5wb3codFsxM10sMikrTWF0aC5wb3codFsxNF0sMikrTWF0aC5wb3codFsxNV0sMikpfSxpLmFkZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHRbM109ZVszXStyWzNdLHRbNF09ZVs0XStyWzRdLHRbNV09ZVs1XStyWzVdLHRbNl09ZVs2XStyWzZdLHRbN109ZVs3XStyWzddLHRbOF09ZVs4XStyWzhdLHRbOV09ZVs5XStyWzldLHRbMTBdPWVbMTBdK3JbMTBdLHRbMTFdPWVbMTFdK3JbMTFdLHRbMTJdPWVbMTJdK3JbMTJdLHRbMTNdPWVbMTNdK3JbMTNdLHRbMTRdPWVbMTRdK3JbMTRdLHRbMTVdPWVbMTVdK3JbMTVdLHR9LGkuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0tclswXSx0WzFdPWVbMV0tclsxXSx0WzJdPWVbMl0tclsyXSx0WzNdPWVbM10tclszXSx0WzRdPWVbNF0tcls0XSx0WzVdPWVbNV0tcls1XSx0WzZdPWVbNl0tcls2XSx0WzddPWVbN10tcls3XSx0WzhdPWVbOF0tcls4XSx0WzldPWVbOV0tcls5XSx0WzEwXT1lWzEwXS1yWzEwXSx0WzExXT1lWzExXS1yWzExXSx0WzEyXT1lWzEyXS1yWzEyXSx0WzEzXT1lWzEzXS1yWzEzXSx0WzE0XT1lWzE0XS1yWzE0XSx0WzE1XT1lWzE1XS1yWzE1XSx0fSxpLnN1Yj1pLnN1YnRyYWN0LGkubXVsdGlwbHlTY2FsYXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0WzNdPWVbM10qcix0WzRdPWVbNF0qcix0WzVdPWVbNV0qcix0WzZdPWVbNl0qcix0WzddPWVbN10qcix0WzhdPWVbOF0qcix0WzldPWVbOV0qcix0WzEwXT1lWzEwXSpyLHRbMTFdPWVbMTFdKnIsdFsxMl09ZVsxMl0qcix0WzEzXT1lWzEzXSpyLHRbMTRdPWVbMTRdKnIsdFsxNV09ZVsxNV0qcix0fSxpLm11bHRpcGx5U2NhbGFyQW5kQWRkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0rclswXSpuLHRbMV09ZVsxXStyWzFdKm4sdFsyXT1lWzJdK3JbMl0qbix0WzNdPWVbM10rclszXSpuLHRbNF09ZVs0XStyWzRdKm4sdFs1XT1lWzVdK3JbNV0qbix0WzZdPWVbNl0rcls2XSpuLHRbN109ZVs3XStyWzddKm4sdFs4XT1lWzhdK3JbOF0qbix0WzldPWVbOV0rcls5XSpuLHRbMTBdPWVbMTBdK3JbMTBdKm4sdFsxMV09ZVsxMV0rclsxMV0qbix0WzEyXT1lWzEyXStyWzEyXSpuLHRbMTNdPWVbMTNdK3JbMTNdKm4sdFsxNF09ZVsxNF0rclsxNF0qbix0WzE1XT1lWzE1XStyWzE1XSpuLHR9LGkuZXhhY3RFcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXSYmdFszXT09PWVbM10mJnRbNF09PT1lWzRdJiZ0WzVdPT09ZVs1XSYmdFs2XT09PWVbNl0mJnRbN109PT1lWzddJiZ0WzhdPT09ZVs4XSYmdFs5XT09PWVbOV0mJnRbMTBdPT09ZVsxMF0mJnRbMTFdPT09ZVsxMV0mJnRbMTJdPT09ZVsxMl0mJnRbMTNdPT09ZVsxM10mJnRbMTRdPT09ZVsxNF0mJnRbMTVdPT09ZVsxNV19LGkuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxpPXRbMV0sbz10WzJdLGE9dFszXSxzPXRbNF0sbD10WzVdLHU9dFs2XSxjPXRbN10saD10WzhdLGY9dFs5XSxwPXRbMTBdLGQ9dFsxMV0sbT10WzEyXSxnPXRbMTNdLHY9dFsxNF0seT10WzE1XSxiPWVbMF0seD1lWzFdLF89ZVsyXSx3PWVbM10sTT1lWzRdLGs9ZVs1XSxBPWVbNl0sVD1lWzddLEU9ZVs4XSxTPWVbOV0sTD1lWzEwXSx6PWVbMTFdLEk9ZVsxMl0sUD1lWzEzXSxDPWVbMTRdLFI9ZVsxNV07cmV0dXJuIE1hdGguYWJzKHItYik8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHIpLE1hdGguYWJzKGIpKSYmTWF0aC5hYnMoaS14KTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoaSksTWF0aC5hYnMoeCkpJiZNYXRoLmFicyhvLV8pPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhvKSxNYXRoLmFicyhfKSkmJk1hdGguYWJzKGEtdyk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGEpLE1hdGguYWJzKHcpKSYmTWF0aC5hYnMocy1NKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMocyksTWF0aC5hYnMoTSkpJiZNYXRoLmFicyhsLWspPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhsKSxNYXRoLmFicyhrKSkmJk1hdGguYWJzKHUtQSk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHUpLE1hdGguYWJzKEEpKSYmTWF0aC5hYnMoYy1UKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoYyksTWF0aC5hYnMoVCkpJiZNYXRoLmFicyhoLUUpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhoKSxNYXRoLmFicyhFKSkmJk1hdGguYWJzKGYtUyk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGYpLE1hdGguYWJzKFMpKSYmTWF0aC5hYnMocC1MKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMocCksTWF0aC5hYnMoTCkpJiZNYXRoLmFicyhkLXopPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhkKSxNYXRoLmFicyh6KSkmJk1hdGguYWJzKG0tSSk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKG0pLE1hdGguYWJzKEkpKSYmTWF0aC5hYnMoZy1QKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoZyksTWF0aC5hYnMoUCkpJiZNYXRoLmFicyh2LUMpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyh2KSxNYXRoLmFicyhDKSkmJk1hdGguYWJzKHktUik8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHkpLE1hdGguYWJzKFIpKX0sZS5leHBvcnRzPWl9LHsiLi9jb21tb24uanMiOjM4M31dLDM4ODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vY29tbW9uLmpzIiksaT10KCIuL21hdDMuanMiKSxvPXQoIi4vdmVjMy5qcyIpLGE9dCgiLi92ZWM0LmpzIikscz17fTtzLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBuLkFSUkFZX1RZUEUoNCk7cmV0dXJuIHRbMF09MCx0WzFdPTAsdFsyXT0wLHRbM109MSx0fSxzLnJvdGF0aW9uVG89ZnVuY3Rpb24oKXt2YXIgdD1vLmNyZWF0ZSgpLGU9by5mcm9tVmFsdWVzKDEsMCwwKSxyPW8uZnJvbVZhbHVlcygwLDEsMCk7cmV0dXJuIGZ1bmN0aW9uKG4saSxhKXt2YXIgbD1vLmRvdChpLGEpO3JldHVybi0uOTk5OTk5Pmw/KG8uY3Jvc3ModCxlLGkpLG8ubGVuZ3RoKHQpPDFlLTYmJm8uY3Jvc3ModCxyLGkpLG8ubm9ybWFsaXplKHQsdCkscy5zZXRBeGlzQW5nbGUobix0LE1hdGguUEkpLG4pOmw+Ljk5OTk5OT8oblswXT0wLG5bMV09MCxuWzJdPTAsblszXT0xLG4pOihvLmNyb3NzKHQsaSxhKSxuWzBdPXRbMF0sblsxXT10WzFdLG5bMl09dFsyXSxuWzNdPTErbCxzLm5vcm1hbGl6ZShuLG4pKX19KCkscy5zZXRBeGVzPWZ1bmN0aW9uKCl7dmFyIHQ9aS5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24oZSxyLG4saSl7cmV0dXJuIHRbMF09blswXSx0WzNdPW5bMV0sdFs2XT1uWzJdLHRbMV09aVswXSx0WzRdPWlbMV0sdFs3XT1pWzJdLHRbMl09LXJbMF0sdFs1XT0tclsxXSx0WzhdPS1yWzJdLHMubm9ybWFsaXplKGUscy5mcm9tTWF0MyhlLHQpKX19KCkscy5jbG9uZT1hLmNsb25lLHMuZnJvbVZhbHVlcz1hLmZyb21WYWx1ZXMscy5jb3B5PWEuY29weSxzLnNldD1hLnNldCxzLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTEsdH0scy5zZXRBeGlzQW5nbGU9ZnVuY3Rpb24odCxlLHIpe3I9LjUqcjt2YXIgbj1NYXRoLnNpbihyKTtyZXR1cm4gdFswXT1uKmVbMF0sdFsxXT1uKmVbMV0sdFsyXT1uKmVbMl0sdFszXT1NYXRoLmNvcyhyKSx0fSxzLmdldEF4aXNBbmdsZT1mdW5jdGlvbih0LGUpe3ZhciByPTIqTWF0aC5hY29zKGVbM10pLG49TWF0aC5zaW4oci8yKTtyZXR1cm4gMCE9bj8odFswXT1lWzBdL24sdFsxXT1lWzFdL24sdFsyXT1lWzJdL24pOih0WzBdPTEsdFsxXT0wLHRbMl09MCkscn0scy5hZGQ9YS5hZGQscy5tdWx0aXBseT1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPXJbMF0sbD1yWzFdLHU9clsyXSxjPXJbM107cmV0dXJuIHRbMF09bipjK2EqcytpKnUtbypsLHRbMV09aSpjK2EqbCtvKnMtbip1LHRbMl09bypjK2EqdStuKmwtaSpzLHRbM109YSpjLW4qcy1pKmwtbyp1LHR9LHMubXVsPXMubXVsdGlwbHkscy5zY2FsZT1hLnNjYWxlLHMucm90YXRlWD1mdW5jdGlvbih0LGUscil7cio9LjU7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9ZVszXSxzPU1hdGguc2luKHIpLGw9TWF0aC5jb3Mocik7cmV0dXJuIHRbMF09bipsK2Eqcyx0WzFdPWkqbCtvKnMsdFsyXT1vKmwtaSpzLHRbM109YSpsLW4qcyx0fSxzLnJvdGF0ZVk9ZnVuY3Rpb24odCxlLHIpe3IqPS41O3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM10scz1NYXRoLnNpbihyKSxsPU1hdGguY29zKHIpO3JldHVybiB0WzBdPW4qbC1vKnMsdFsxXT1pKmwrYSpzLHRbMl09bypsK24qcyx0WzNdPWEqbC1pKnMsdH0scy5yb3RhdGVaPWZ1bmN0aW9uKHQsZSxyKXtyKj0uNTt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1lWzNdLHM9TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1uKmwraSpzLHRbMV09aSpsLW4qcyx0WzJdPW8qbCthKnMsdFszXT1hKmwtbypzLHR9LHMuY2FsY3VsYXRlVz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXTtyZXR1cm4gdFswXT1yLHRbMV09bix0WzJdPWksdFszXT1NYXRoLnNxcnQoTWF0aC5hYnMoMS1yKnItbipuLWkqaSkpLHR9LHMuZG90PWEuZG90LHMubGVycD1hLmxlcnAscy5zbGVycD1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxvLGEscyxsLHU9ZVswXSxjPWVbMV0saD1lWzJdLGY9ZVszXSxwPXJbMF0sZD1yWzFdLG09clsyXSxnPXJbM107cmV0dXJuIG89dSpwK2MqZCtoKm0rZipnLDA+byYmKG89LW8scD0tcCxkPS1kLG09LW0sZz0tZyksMS1vPjFlLTY/KGk9TWF0aC5hY29zKG8pLGE9TWF0aC5zaW4oaSkscz1NYXRoLnNpbigoMS1uKSppKS9hLGw9TWF0aC5zaW4obippKS9hKToocz0xLW4sbD1uKSx0WzBdPXMqdStsKnAsdFsxXT1zKmMrbCpkLHRbMl09cypoK2wqbSx0WzNdPXMqZitsKmcsdH0scy5zcWxlcnA9ZnVuY3Rpb24oKXt2YXIgdD1zLmNyZWF0ZSgpLGU9cy5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24ocixuLGksbyxhLGwpe3JldHVybiBzLnNsZXJwKHQsbixhLGwpLHMuc2xlcnAoZSxpLG8sbCkscy5zbGVycChyLHQsZSwyKmwqKDEtbCkpLHJ9fSgpLHMuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLG89ZVszXSxhPXIqcituKm4raSppK28qbyxzPWE/MS9hOjA7cmV0dXJuIHRbMF09LXIqcyx0WzFdPS1uKnMsdFsyXT0taSpzLHRbM109bypzLHR9LHMuY29uanVnYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09LWVbMF0sdFsxXT0tZVsxXSx0WzJdPS1lWzJdLHRbM109ZVszXSx0fSxzLmxlbmd0aD1hLmxlbmd0aCxzLmxlbj1zLmxlbmd0aCxzLnNxdWFyZWRMZW5ndGg9YS5zcXVhcmVkTGVuZ3RoLHMuc3FyTGVuPXMuc3F1YXJlZExlbmd0aCxzLm5vcm1hbGl6ZT1hLm5vcm1hbGl6ZSxzLmZyb21NYXQzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lWzBdK2VbNF0rZVs4XTtpZihuPjApcj1NYXRoLnNxcnQobisxKSx0WzNdPS41KnIscj0uNS9yLHRbMF09KGVbNV0tZVs3XSkqcix0WzFdPShlWzZdLWVbMl0pKnIsdFsyXT0oZVsxXS1lWzNdKSpyO2Vsc2V7dmFyIGk9MDtlWzRdPmVbMF0mJihpPTEpLGVbOF0+ZVszKmkraV0mJihpPTIpO3ZhciBvPShpKzEpJTMsYT0oaSsyKSUzO3I9TWF0aC5zcXJ0KGVbMyppK2ldLWVbMypvK29dLWVbMyphK2FdKzEpLHRbaV09LjUqcixyPS41L3IsdFszXT0oZVszKm8rYV0tZVszKmErb10pKnIsdFtvXT0oZVszKm8raV0rZVszKmkrb10pKnIsdFthXT0oZVszKmEraV0rZVszKmkrYV0pKnJ9cmV0dXJuIHR9LHMuc3RyPWZ1bmN0aW9uKHQpe3JldHVybiJxdWF0KCIrdFswXSsiLCAiK3RbMV0rIiwgIit0WzJdKyIsICIrdFszXSsiKSJ9LHMuZXhhY3RFcXVhbHM9YS5leGFjdEVxdWFscyxzLmVxdWFscz1hLmVxdWFscyxlLmV4cG9ydHM9c30seyIuL2NvbW1vbi5qcyI6MzgzLCIuL21hdDMuanMiOjM4NiwiLi92ZWMzLmpzIjozOTAsIi4vdmVjNC5qcyI6MzkxfV0sMzg5OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9jb21tb24uanMiKSxpPXt9O2kuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IG4uQVJSQVlfVFlQRSgyKTtyZXR1cm4gdFswXT0wLHRbMV09MCx0fSxpLmNsb25lPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBuLkFSUkFZX1RZUEUoMik7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZX0saS5mcm9tVmFsdWVzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IG4uQVJSQVlfVFlQRSgyKTtyZXR1cm4gclswXT10LHJbMV09ZSxyfSxpLmNvcHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0fSxpLnNldD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdH0saS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0rclswXSx0WzFdPWVbMV0rclsxXSx0fSxpLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdH0saS5zdWI9aS5zdWJ0cmFjdCxpLm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdKnJbMF0sdFsxXT1lWzFdKnJbMV0sdH0saS5tdWw9aS5tdWx0aXBseSxpLmRpdmlkZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXS9yWzBdLHRbMV09ZVsxXS9yWzFdLHR9LGkuZGl2PWkuZGl2aWRlLGkuY2VpbD1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPU1hdGguY2VpbChlWzBdKSx0WzFdPU1hdGguY2VpbChlWzFdKSx0fSxpLmZsb29yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5mbG9vcihlWzBdKSx0WzFdPU1hdGguZmxvb3IoZVsxXSksdH0saS5taW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWluKGVbMF0sclswXSksdFsxXT1NYXRoLm1pbihlWzFdLHJbMV0pLHR9LGkubWF4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1heChlWzBdLHJbMF0pLHRbMV09TWF0aC5tYXgoZVsxXSxyWzFdKSx0fSxpLnJvdW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5yb3VuZChlWzBdKSx0WzFdPU1hdGgucm91bmQoZVsxXSksdH0saS5zY2FsZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyLHRbMV09ZVsxXSpyLHR9LGkuc2NhbGVBbmRBZGQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRbMF09ZVswXStyWzBdKm4sdFsxXT1lWzFdK3JbMV0qbix0fSxpLmRpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdO3JldHVybiBNYXRoLnNxcnQocipyK24qbil9LGkuZGlzdD1pLmRpc3RhbmNlLGkuc3F1YXJlZERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdO3JldHVybiByKnIrbipufSxpLnNxckRpc3Q9aS5zcXVhcmVkRGlzdGFuY2UsaS5sZW5ndGg9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV07cmV0dXJuIE1hdGguc3FydChlKmUrcipyKX0saS5sZW49aS5sZW5ndGgsaS5zcXVhcmVkTGVuZ3RoPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdO3JldHVybiBlKmUrcipyfSxpLnNxckxlbj1pLnNxdWFyZWRMZW5ndGgsaS5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0tZVswXSx0WzFdPS1lWzFdLHR9LGkuaW52ZXJzZT1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPTEvZVswXSx0WzFdPTEvZVsxXSx0fSxpLm5vcm1hbGl6ZT1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9cipyK24qbjtyZXR1cm4gaT4wJiYoaT0xL01hdGguc3FydChpKSx0WzBdPWVbMF0qaSx0WzFdPWVbMV0qaSksdH0saS5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXX0saS5jcm9zcz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSpyWzFdLWVbMV0qclswXTtyZXR1cm4gdFswXT10WzFdPTAsdFsyXT1uLHR9LGkubGVycD1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1lWzBdLG89ZVsxXTtyZXR1cm4gdFswXT1pK24qKHJbMF0taSksdFsxXT1vK24qKHJbMV0tbyksdH0saS5yYW5kb209ZnVuY3Rpb24odCxlKXtlPWV8fDE7dmFyIHI9MipuLlJBTkRPTSgpKk1hdGguUEk7cmV0dXJuIHRbMF09TWF0aC5jb3MocikqZSx0WzFdPU1hdGguc2luKHIpKmUsdH0saS50cmFuc2Zvcm1NYXQyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1yWzBdKm4rclsyXSppLHRbMV09clsxXSpuK3JbM10qaSx0fSxpLnRyYW5zZm9ybU1hdDJkPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1yWzBdKm4rclsyXSppK3JbNF0sdFsxXT1yWzFdKm4rclszXSppK3JbNV0sdH0saS50cmFuc2Zvcm1NYXQzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1yWzBdKm4rclszXSppK3JbNl0sdFsxXT1yWzFdKm4rcls0XSppK3JbN10sdH0saS50cmFuc2Zvcm1NYXQ0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1yWzBdKm4rcls0XSppK3JbMTJdLHRbMV09clsxXSpuK3JbNV0qaStyWzEzXSx0fSxpLmZvckVhY2g9ZnVuY3Rpb24oKXt2YXIgdD1pLmNyZWF0ZSgpO3JldHVybiBmdW5jdGlvbihlLHIsbixpLG8sYSl7dmFyIHMsbDtmb3Iocnx8KHI9Miksbnx8KG49MCksbD1pP01hdGgubWluKGkqcituLGUubGVuZ3RoKTplLmxlbmd0aCxzPW47bD5zO3MrPXIpdFswXT1lW3NdLHRbMV09ZVtzKzFdLG8odCx0LGEpLGVbc109dFswXSxlW3MrMV09dFsxXTtyZXR1cm4gZX19KCksaS5zdHI9ZnVuY3Rpb24odCl7cmV0dXJuInZlYzIoIit0WzBdKyIsICIrdFsxXSsiKSJ9LGkuZXhhY3RFcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdfSxpLmVxdWFscz1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0saT10WzFdLG89ZVswXSxhPWVbMV07cmV0dXJuIE1hdGguYWJzKHItbyk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHIpLE1hdGguYWJzKG8pKSYmTWF0aC5hYnMoaS1hKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoaSksTWF0aC5hYnMoYSkpfSxlLmV4cG9ydHM9aX0seyIuL2NvbW1vbi5qcyI6MzgzfV0sMzkwOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9jb21tb24uanMiKSxpPXt9O2kuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IG4uQVJSQVlfVFlQRSgzKTtyZXR1cm4gdFswXT0wLHRbMV09MCx0WzJdPTAsdH0saS5jbG9uZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbi5BUlJBWV9UWVBFKDMpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlfSxpLmZyb21WYWx1ZXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPW5ldyBuLkFSUkFZX1RZUEUoMyk7cmV0dXJuIGlbMF09dCxpWzFdPWUsaVsyXT1yLGl9LGkuY29weT1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0fSxpLnNldD1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdFswXT1lLHRbMV09cix0WzJdPW4sdH0saS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0rclswXSx0WzFdPWVbMV0rclsxXSx0WzJdPWVbMl0rclsyXSx0fSxpLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdFsyXT1lWzJdLXJbMl0sdH0saS5zdWI9aS5zdWJ0cmFjdCxpLm11bHRpcGx5PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdKnJbMF0sdFsxXT1lWzFdKnJbMV0sdFsyXT1lWzJdKnJbMl0sdH0saS5tdWw9aS5tdWx0aXBseSxpLmRpdmlkZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXS9yWzBdLHRbMV09ZVsxXS9yWzFdLHRbMl09ZVsyXS9yWzJdLHR9LGkuZGl2PWkuZGl2aWRlLGkuY2VpbD1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPU1hdGguY2VpbChlWzBdKSx0WzFdPU1hdGguY2VpbChlWzFdKSx0WzJdPU1hdGguY2VpbChlWzJdKSx0fSxpLmZsb29yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5mbG9vcihlWzBdKSx0WzFdPU1hdGguZmxvb3IoZVsxXSksdFsyXT1NYXRoLmZsb29yKGVbMl0pLHR9LGkubWluPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1pbihlWzBdLHJbMF0pLHRbMV09TWF0aC5taW4oZVsxXSxyWzFdKSx0WzJdPU1hdGgubWluKGVbMl0sclsyXSksdH0saS5tYXg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWF4KGVbMF0sclswXSksdFsxXT1NYXRoLm1heChlWzFdLHJbMV0pLHRbMl09TWF0aC5tYXgoZVsyXSxyWzJdKSx0fSxpLnJvdW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5yb3VuZChlWzBdKSx0WzFdPU1hdGgucm91bmQoZVsxXSksdFsyXT1NYXRoLnJvdW5kKGVbMl0pLHR9LGkuc2NhbGU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0fSxpLnNjYWxlQW5kQWRkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0rclswXSpuLHRbMV09ZVsxXStyWzFdKm4sdFsyXT1lWzJdK3JbMl0qbix0fSxpLmRpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdLGk9ZVsyXS10WzJdO3JldHVybiBNYXRoLnNxcnQocipyK24qbitpKmkpfSxpLmRpc3Q9aS5kaXN0YW5jZSxpLnNxdWFyZWREaXN0YW5jZT1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0tdFswXSxuPWVbMV0tdFsxXSxpPWVbMl0tdFsyXTtyZXR1cm4gcipyK24qbitpKml9LGkuc3FyRGlzdD1pLnNxdWFyZWREaXN0YW5jZSxpLmxlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl07cmV0dXJuIE1hdGguc3FydChlKmUrcipyK24qbil9LGkubGVuPWkubGVuZ3RoLGkuc3F1YXJlZExlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl07cmV0dXJuIGUqZStyKnIrbipufSxpLnNxckxlbj1pLnNxdWFyZWRMZW5ndGgsaS5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0tZVswXSx0WzFdPS1lWzFdLHRbMl09LWVbMl0sdH0saS5pbnZlcnNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09MS9lWzBdLHRbMV09MS9lWzFdLHRbMl09MS9lWzJdLHR9LGkubm9ybWFsaXplPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLG89cipyK24qbitpKmk7cmV0dXJuIG8+MCYmKG89MS9NYXRoLnNxcnQobyksdFswXT1lWzBdKm8sdFsxXT1lWzFdKm8sdFsyXT1lWzJdKm8pLHR9LGkuZG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdfSxpLmNyb3NzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1yWzBdLHM9clsxXSxsPXJbMl07CnJldHVybiB0WzBdPWkqbC1vKnMsdFsxXT1vKmEtbipsLHRbMl09bipzLWkqYSx0fSxpLmxlcnA9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZVswXSxvPWVbMV0sYT1lWzJdO3JldHVybiB0WzBdPWkrbiooclswXS1pKSx0WzFdPW8rbiooclsxXS1vKSx0WzJdPWErbiooclsyXS1hKSx0fSxpLmhlcm1pdGU9ZnVuY3Rpb24odCxlLHIsbixpLG8pe3ZhciBhPW8qbyxzPWEqKDIqby0zKSsxLGw9YSooby0yKStvLHU9YSooby0xKSxjPWEqKDMtMipvKTtyZXR1cm4gdFswXT1lWzBdKnMrclswXSpsK25bMF0qdStpWzBdKmMsdFsxXT1lWzFdKnMrclsxXSpsK25bMV0qdStpWzFdKmMsdFsyXT1lWzJdKnMrclsyXSpsK25bMl0qdStpWzJdKmMsdH0saS5iZXppZXI9ZnVuY3Rpb24odCxlLHIsbixpLG8pe3ZhciBhPTEtbyxzPWEqYSxsPW8qbyx1PXMqYSxjPTMqbypzLGg9MypsKmEsZj1sKm87cmV0dXJuIHRbMF09ZVswXSp1K3JbMF0qYytuWzBdKmgraVswXSpmLHRbMV09ZVsxXSp1K3JbMV0qYytuWzFdKmgraVsxXSpmLHRbMl09ZVsyXSp1K3JbMl0qYytuWzJdKmgraVsyXSpmLHR9LGkucmFuZG9tPWZ1bmN0aW9uKHQsZSl7ZT1lfHwxO3ZhciByPTIqbi5SQU5ET00oKSpNYXRoLlBJLGk9MipuLlJBTkRPTSgpLTEsbz1NYXRoLnNxcnQoMS1pKmkpKmU7cmV0dXJuIHRbMF09TWF0aC5jb3Mocikqbyx0WzFdPU1hdGguc2luKHIpKm8sdFsyXT1pKmUsdH0saS50cmFuc2Zvcm1NYXQ0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl0sYT1yWzNdKm4rcls3XSppK3JbMTFdKm8rclsxNV07cmV0dXJuIGE9YXx8MSx0WzBdPShyWzBdKm4rcls0XSppK3JbOF0qbytyWzEyXSkvYSx0WzFdPShyWzFdKm4rcls1XSppK3JbOV0qbytyWzEzXSkvYSx0WzJdPShyWzJdKm4rcls2XSppK3JbMTBdKm8rclsxNF0pL2EsdH0saS50cmFuc2Zvcm1NYXQzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxvPWVbMl07cmV0dXJuIHRbMF09bipyWzBdK2kqclszXStvKnJbNl0sdFsxXT1uKnJbMV0raSpyWzRdK28qcls3XSx0WzJdPW4qclsyXStpKnJbNV0rbypyWzhdLHR9LGkudHJhbnNmb3JtUXVhdD1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9clswXSxzPXJbMV0sbD1yWzJdLHU9clszXSxjPXUqbitzKm8tbCppLGg9dSppK2wqbi1hKm8sZj11Km8rYSppLXMqbixwPS1hKm4tcyppLWwqbztyZXR1cm4gdFswXT1jKnUrcCotYStoKi1sLWYqLXMsdFsxXT1oKnUrcCotcytmKi1hLWMqLWwsdFsyXT1mKnUrcCotbCtjKi1zLWgqLWEsdH0saS5yb3RhdGVYPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPVtdLG89W107cmV0dXJuIGlbMF09ZVswXS1yWzBdLGlbMV09ZVsxXS1yWzFdLGlbMl09ZVsyXS1yWzJdLG9bMF09aVswXSxvWzFdPWlbMV0qTWF0aC5jb3MobiktaVsyXSpNYXRoLnNpbihuKSxvWzJdPWlbMV0qTWF0aC5zaW4obikraVsyXSpNYXRoLmNvcyhuKSx0WzBdPW9bMF0rclswXSx0WzFdPW9bMV0rclsxXSx0WzJdPW9bMl0rclsyXSx0fSxpLnJvdGF0ZVk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9W10sbz1bXTtyZXR1cm4gaVswXT1lWzBdLXJbMF0saVsxXT1lWzFdLXJbMV0saVsyXT1lWzJdLXJbMl0sb1swXT1pWzJdKk1hdGguc2luKG4pK2lbMF0qTWF0aC5jb3Mobiksb1sxXT1pWzFdLG9bMl09aVsyXSpNYXRoLmNvcyhuKS1pWzBdKk1hdGguc2luKG4pLHRbMF09b1swXStyWzBdLHRbMV09b1sxXStyWzFdLHRbMl09b1syXStyWzJdLHR9LGkucm90YXRlWj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1bXSxvPVtdO3JldHVybiBpWzBdPWVbMF0tclswXSxpWzFdPWVbMV0tclsxXSxpWzJdPWVbMl0tclsyXSxvWzBdPWlbMF0qTWF0aC5jb3MobiktaVsxXSpNYXRoLnNpbihuKSxvWzFdPWlbMF0qTWF0aC5zaW4obikraVsxXSpNYXRoLmNvcyhuKSxvWzJdPWlbMl0sdFswXT1vWzBdK3JbMF0sdFsxXT1vWzFdK3JbMV0sdFsyXT1vWzJdK3JbMl0sdH0saS5mb3JFYWNoPWZ1bmN0aW9uKCl7dmFyIHQ9aS5jcmVhdGUoKTtyZXR1cm4gZnVuY3Rpb24oZSxyLG4saSxvLGEpe3ZhciBzLGw7Zm9yKHJ8fChyPTMpLG58fChuPTApLGw9aT9NYXRoLm1pbihpKnIrbixlLmxlbmd0aCk6ZS5sZW5ndGgscz1uO2w+cztzKz1yKXRbMF09ZVtzXSx0WzFdPWVbcysxXSx0WzJdPWVbcysyXSxvKHQsdCxhKSxlW3NdPXRbMF0sZVtzKzFdPXRbMV0sZVtzKzJdPXRbMl07cmV0dXJuIGV9fSgpLGkuYW5nbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1pLmZyb21WYWx1ZXModFswXSx0WzFdLHRbMl0pLG49aS5mcm9tVmFsdWVzKGVbMF0sZVsxXSxlWzJdKTtpLm5vcm1hbGl6ZShyLHIpLGkubm9ybWFsaXplKG4sbik7dmFyIG89aS5kb3QocixuKTtyZXR1cm4gbz4xPzA6TWF0aC5hY29zKG8pfSxpLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4idmVjMygiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiKSJ9LGkuZXhhY3RFcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXX0saS5lcXVhbHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10WzBdLGk9dFsxXSxvPXRbMl0sYT1lWzBdLHM9ZVsxXSxsPWVbMl07cmV0dXJuIE1hdGguYWJzKHItYSk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKHIpLE1hdGguYWJzKGEpKSYmTWF0aC5hYnMoaS1zKTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMoaSksTWF0aC5hYnMocykpJiZNYXRoLmFicyhvLWwpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhvKSxNYXRoLmFicyhsKSl9LGUuZXhwb3J0cz1pfSx7Ii4vY29tbW9uLmpzIjozODN9XSwzOTE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2NvbW1vbi5qcyIpLGk9e307aS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbi5BUlJBWV9UWVBFKDQpO3JldHVybiB0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTAsdH0saS5jbG9uZT1mdW5jdGlvbih0KXt2YXIgZT1uZXcgbi5BUlJBWV9UWVBFKDQpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZX0saS5mcm9tVmFsdWVzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPW5ldyBuLkFSUkFZX1RZUEUoNCk7cmV0dXJuIG9bMF09dCxvWzFdPWUsb1syXT1yLG9bM109aSxvfSxpLmNvcHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHR9LGkuc2V0PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRbMF09ZSx0WzFdPXIsdFsyXT1uLHRbM109aSx0fSxpLmFkZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHRbM109ZVszXStyWzNdLHR9LGkuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0tclswXSx0WzFdPWVbMV0tclsxXSx0WzJdPWVbMl0tclsyXSx0WzNdPWVbM10tclszXSx0fSxpLnN1Yj1pLnN1YnRyYWN0LGkubXVsdGlwbHk9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qclswXSx0WzFdPWVbMV0qclsxXSx0WzJdPWVbMl0qclsyXSx0WzNdPWVbM10qclszXSx0fSxpLm11bD1pLm11bHRpcGx5LGkuZGl2aWRlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdL3JbMF0sdFsxXT1lWzFdL3JbMV0sdFsyXT1lWzJdL3JbMl0sdFszXT1lWzNdL3JbM10sdH0saS5kaXY9aS5kaXZpZGUsaS5jZWlsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5jZWlsKGVbMF0pLHRbMV09TWF0aC5jZWlsKGVbMV0pLHRbMl09TWF0aC5jZWlsKGVbMl0pLHRbM109TWF0aC5jZWlsKGVbM10pLHR9LGkuZmxvb3I9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLmZsb29yKGVbMF0pLHRbMV09TWF0aC5mbG9vcihlWzFdKSx0WzJdPU1hdGguZmxvb3IoZVsyXSksdFszXT1NYXRoLmZsb29yKGVbM10pLHR9LGkubWluPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1pbihlWzBdLHJbMF0pLHRbMV09TWF0aC5taW4oZVsxXSxyWzFdKSx0WzJdPU1hdGgubWluKGVbMl0sclsyXSksdFszXT1NYXRoLm1pbihlWzNdLHJbM10pLHR9LGkubWF4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1heChlWzBdLHJbMF0pLHRbMV09TWF0aC5tYXgoZVsxXSxyWzFdKSx0WzJdPU1hdGgubWF4KGVbMl0sclsyXSksdFszXT1NYXRoLm1heChlWzNdLHJbM10pLHR9LGkucm91bmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1NYXRoLnJvdW5kKGVbMF0pLHRbMV09TWF0aC5yb3VuZChlWzFdKSx0WzJdPU1hdGgucm91bmQoZVsyXSksdFszXT1NYXRoLnJvdW5kKGVbM10pLHR9LGkuc2NhbGU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qcix0WzFdPWVbMV0qcix0WzJdPWVbMl0qcix0WzNdPWVbM10qcix0fSxpLnNjYWxlQW5kQWRkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0rclswXSpuLHRbMV09ZVsxXStyWzFdKm4sdFsyXT1lWzJdK3JbMl0qbix0WzNdPWVbM10rclszXSpuLHR9LGkuZGlzdGFuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0saT1lWzJdLXRbMl0sbz1lWzNdLXRbM107cmV0dXJuIE1hdGguc3FydChyKnIrbipuK2kqaStvKm8pfSxpLmRpc3Q9aS5kaXN0YW5jZSxpLnNxdWFyZWREaXN0YW5jZT1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0tdFswXSxuPWVbMV0tdFsxXSxpPWVbMl0tdFsyXSxvPWVbM10tdFszXTtyZXR1cm4gcipyK24qbitpKmkrbypvfSxpLnNxckRpc3Q9aS5zcXVhcmVkRGlzdGFuY2UsaS5sZW5ndGg9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdLGk9dFszXTtyZXR1cm4gTWF0aC5zcXJ0KGUqZStyKnIrbipuK2kqaSl9LGkubGVuPWkubGVuZ3RoLGkuc3F1YXJlZExlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl0saT10WzNdO3JldHVybiBlKmUrcipyK24qbitpKml9LGkuc3FyTGVuPWkuc3F1YXJlZExlbmd0aCxpLm5lZ2F0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0WzNdPS1lWzNdLHR9LGkuaW52ZXJzZT1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPTEvZVswXSx0WzFdPTEvZVsxXSx0WzJdPTEvZVsyXSx0WzNdPTEvZVszXSx0fSxpLm5vcm1hbGl6ZT1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxvPWVbM10sYT1yKnIrbipuK2kqaStvKm87cmV0dXJuIGE+MCYmKGE9MS9NYXRoLnNxcnQoYSksdFswXT1yKmEsdFsxXT1uKmEsdFsyXT1pKmEsdFszXT1vKmEpLHR9LGkuZG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX0saS5sZXJwPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWVbMF0sbz1lWzFdLGE9ZVsyXSxzPWVbM107cmV0dXJuIHRbMF09aStuKihyWzBdLWkpLHRbMV09bytuKihyWzFdLW8pLHRbMl09YStuKihyWzJdLWEpLHRbM109cytuKihyWzNdLXMpLHR9LGkucmFuZG9tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9ZXx8MSx0WzBdPW4uUkFORE9NKCksdFsxXT1uLlJBTkRPTSgpLHRbMl09bi5SQU5ET00oKSx0WzNdPW4uUkFORE9NKCksaS5ub3JtYWxpemUodCx0KSxpLnNjYWxlKHQsdCxlKSx0fSxpLnRyYW5zZm9ybU1hdDQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLG89ZVsyXSxhPWVbM107cmV0dXJuIHRbMF09clswXSpuK3JbNF0qaStyWzhdKm8rclsxMl0qYSx0WzFdPXJbMV0qbityWzVdKmkrcls5XSpvK3JbMTNdKmEsdFsyXT1yWzJdKm4rcls2XSppK3JbMTBdKm8rclsxNF0qYSx0WzNdPXJbM10qbityWzddKmkrclsxMV0qbytyWzE1XSphLHR9LGkudHJhbnNmb3JtUXVhdD1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sbz1lWzJdLGE9clswXSxzPXJbMV0sbD1yWzJdLHU9clszXSxjPXUqbitzKm8tbCppLGg9dSppK2wqbi1hKm8sZj11Km8rYSppLXMqbixwPS1hKm4tcyppLWwqbztyZXR1cm4gdFswXT1jKnUrcCotYStoKi1sLWYqLXMsdFsxXT1oKnUrcCotcytmKi1hLWMqLWwsdFsyXT1mKnUrcCotbCtjKi1zLWgqLWEsdFszXT1lWzNdLHR9LGkuZm9yRWFjaD1mdW5jdGlvbigpe3ZhciB0PWkuY3JlYXRlKCk7cmV0dXJuIGZ1bmN0aW9uKGUscixuLGksbyxhKXt2YXIgcyxsO2ZvcihyfHwocj00KSxufHwobj0wKSxsPWk/TWF0aC5taW4oaSpyK24sZS5sZW5ndGgpOmUubGVuZ3RoLHM9bjtsPnM7cys9cil0WzBdPWVbc10sdFsxXT1lW3MrMV0sdFsyXT1lW3MrMl0sdFszXT1lW3MrM10sbyh0LHQsYSksZVtzXT10WzBdLGVbcysxXT10WzFdLGVbcysyXT10WzJdLGVbcyszXT10WzNdO3JldHVybiBlfX0oKSxpLnN0cj1mdW5jdGlvbih0KXtyZXR1cm4idmVjNCgiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIikifSxpLmV4YWN0RXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbM109PT1lWzNdfSxpLmVxdWFscz1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0saT10WzFdLG89dFsyXSxhPXRbM10scz1lWzBdLGw9ZVsxXSx1PWVbMl0sYz1lWzNdO3JldHVybiBNYXRoLmFicyhyLXMpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhyKSxNYXRoLmFicyhzKSkmJk1hdGguYWJzKGktbCk8PW4uRVBTSUxPTipNYXRoLm1heCgxLE1hdGguYWJzKGkpLE1hdGguYWJzKGwpKSYmTWF0aC5hYnMoby11KTw9bi5FUFNJTE9OKk1hdGgubWF4KDEsTWF0aC5hYnMobyksTWF0aC5hYnModSkpJiZNYXRoLmFicyhhLWMpPD1uLkVQU0lMT04qTWF0aC5tYXgoMSxNYXRoLmFicyhhKSxNYXRoLmFicyhjKSl9LGUuZXhwb3J0cz1pfSx7Ii4vY29tbW9uLmpzIjozODN9XSwzOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49dGhpcy5jZWxscz1bXTtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe3RoaXMuYXJyYXlCdWZmZXI9dDt2YXIgbz1uZXcgSW50MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKTt0PW9bMF0sZT1vWzFdLHI9b1syXSx0aGlzLmQ9ZSsyKnI7Zm9yKHZhciBhPTA7YTx0aGlzLmQqdGhpcy5kO2ErKyl7dmFyIHM9b1tpK2FdLGw9b1tpK2ErMV07bi5wdXNoKHM9PT1sP251bGw6by5zdWJhcnJheShzLGwpKX12YXIgdT1vW2krbi5sZW5ndGhdLGM9b1tpK24ubGVuZ3RoKzFdO3RoaXMua2V5cz1vLnN1YmFycmF5KHUsYyksdGhpcy5iYm94ZXM9by5zdWJhcnJheShjKSx0aGlzLmluc2VydD10aGlzLl9pbnNlcnRSZWFkb25seX1lbHNle3RoaXMuZD1lKzIqcjtmb3IodmFyIGg9MDtoPHRoaXMuZCp0aGlzLmQ7aCsrKW4ucHVzaChbXSk7dGhpcy5rZXlzPVtdLHRoaXMuYmJveGVzPVtdfXRoaXMubj1lLHRoaXMuZXh0ZW50PXQsdGhpcy5wYWRkaW5nPXIsdGhpcy5zY2FsZT1lL3QsdGhpcy51aWQ9MDt2YXIgZj1yL2UqdDt0aGlzLm1pbj0tZix0aGlzLm1heD10K2Z9ZS5leHBvcnRzPW47dmFyIGk9MztuLnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLl9mb3JFYWNoQ2VsbChlLHIsbixpLHRoaXMuX2luc2VydENlbGwsdGhpcy51aWQrKyksdGhpcy5rZXlzLnB1c2godCksdGhpcy5iYm94ZXMucHVzaChlKSx0aGlzLmJib3hlcy5wdXNoKHIpLHRoaXMuYmJveGVzLnB1c2gobiksdGhpcy5iYm94ZXMucHVzaChpKX0sbi5wcm90b3R5cGUuX2luc2VydFJlYWRvbmx5PWZ1bmN0aW9uKCl7dGhyb3ciQ2Fubm90IGluc2VydCBpbnRvIGEgR3JpZEluZGV4IGNyZWF0ZWQgZnJvbSBhbiBBcnJheUJ1ZmZlci4ifSxuLnByb3RvdHlwZS5faW5zZXJ0Q2VsbD1mdW5jdGlvbih0LGUscixuLGksbyl7dGhpcy5jZWxsc1tpXS5wdXNoKG8pfSxuLnByb3RvdHlwZS5xdWVyeT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLm1pbixvPXRoaXMubWF4O2lmKGk+PXQmJmk+PWUmJnI+PW8mJm4+PW8pcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMua2V5cyk7dmFyIGE9W10scz17fTtyZXR1cm4gdGhpcy5fZm9yRWFjaENlbGwodCxlLHIsbix0aGlzLl9xdWVyeUNlbGwsYSxzKSxhfSxuLnByb3RvdHlwZS5fcXVlcnlDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxvLGEpe3ZhciBzPXRoaXMuY2VsbHNbaV07aWYobnVsbCE9PXMpZm9yKHZhciBsPXRoaXMua2V5cyx1PXRoaXMuYmJveGVzLGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIGg9c1tjXTtpZih2b2lkIDA9PT1hW2hdKXt2YXIgZj00Kmg7dDw9dVtmKzJdJiZlPD11W2YrM10mJnI+PXVbZiswXSYmbj49dVtmKzFdPyhhW2hdPSEwLG8ucHVzaChsW2hdKSk6YVtoXT0hMX19fSxuLnByb3RvdHlwZS5fZm9yRWFjaENlbGw9ZnVuY3Rpb24odCxlLHIsbixpLG8sYSl7Zm9yKHZhciBzPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZCh0KSxsPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChlKSx1PXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChyKSxjPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChuKSxoPXM7dT49aDtoKyspZm9yKHZhciBmPWw7Yz49ZjtmKyspe3ZhciBwPXRoaXMuZCpmK2g7aWYoaS5jYWxsKHRoaXMsdCxlLHIsbixwLG8sYSkpcmV0dXJufX0sbi5wcm90b3R5cGUuX2NvbnZlcnRUb0NlbGxDb29yZD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmQtMSxNYXRoLmZsb29yKHQqdGhpcy5zY2FsZSkrdGhpcy5wYWRkaW5nKSl9LG4ucHJvdG90eXBlLnRvQXJyYXlCdWZmZXI9ZnVuY3Rpb24oKXtpZih0aGlzLmFycmF5QnVmZmVyKXJldHVybiB0aGlzLmFycmF5QnVmZmVyO2Zvcih2YXIgdD10aGlzLmNlbGxzLGU9aSt0aGlzLmNlbGxzLmxlbmd0aCsxKzEscj0wLG49MDtuPHRoaXMuY2VsbHMubGVuZ3RoO24rKylyKz10aGlzLmNlbGxzW25dLmxlbmd0aDt2YXIgbz1uZXcgSW50MzJBcnJheShlK3IrdGhpcy5rZXlzLmxlbmd0aCt0aGlzLmJib3hlcy5sZW5ndGgpO29bMF09dGhpcy5leHRlbnQsb1sxXT10aGlzLm4sb1syXT10aGlzLnBhZGRpbmc7Zm9yKHZhciBhPWUscz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD10W3NdO29baStzXT1hLG8uc2V0KGwsYSksYSs9bC5sZW5ndGh9cmV0dXJuIG9baSt0Lmxlbmd0aF09YSxvLnNldCh0aGlzLmtleXMsYSksYSs9dGhpcy5rZXlzLmxlbmd0aCxvW2krdC5sZW5ndGgrMV09YSxvLnNldCh0aGlzLmJib3hlcyxhKSxhKz10aGlzLmJib3hlcy5sZW5ndGgsby5idWZmZXJ9fSx7fV0sMzkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcjtpZihjKHQpKXt2YXIgcyxsPSJvYmplY3QiPT10eXBlb2YgdC5zdG9wc1swXVswXSx1PWx8fHZvaWQgMCE9PXQucHJvcGVydHksaD1sfHwhdSxmPXQudHlwZXx8ZXx8ImV4cG9uZW50aWFsIjtpZigiZXhwb25lbnRpYWwiPT09ZilzPWE7ZWxzZSBpZigiaW50ZXJ2YWwiPT09ZilzPW87ZWxzZXtpZigiY2F0ZWdvcmljYWwiIT09Zil0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZnVuY3Rpb24gdHlwZSAiJytmKyciJyk7cz1pfWlmKGwpe2Zvcih2YXIgcD17fSxkPVtdLG09MDttPHQuc3RvcHMubGVuZ3RoO20rKyl7dmFyIGc9dC5zdG9wc1ttXTt2b2lkIDA9PT1wW2dbMF0uem9vbV0mJihwW2dbMF0uem9vbV09e3pvb206Z1swXS56b29tLHR5cGU6dC50eXBlLHByb3BlcnR5OnQucHJvcGVydHksc3RvcHM6W119KSxwW2dbMF0uem9vbV0uc3RvcHMucHVzaChbZ1swXS52YWx1ZSxnWzFdXSl9Zm9yKHZhciB2IGluIHApZC5wdXNoKFtwW3ZdLnpvb20sbihwW3ZdKV0pO3I9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gYSh7c3RvcHM6ZCxiYXNlOnQuYmFzZX0sZSkoZSxyKX0sci5pc0ZlYXR1cmVDb25zdGFudD0hMSxyLmlzWm9vbUNvbnN0YW50PSExfWVsc2UgaD8ocj1mdW5jdGlvbihlKXtyZXR1cm4gcyh0LGUpfSxyLmlzRmVhdHVyZUNvbnN0YW50PSEwLHIuaXNab29tQ29uc3RhbnQ9ITEpOihyPWZ1bmN0aW9uKGUscil7cmV0dXJuIHModCxyW3QucHJvcGVydHldKX0sci5pc0ZlYXR1cmVDb25zdGFudD0hMSxyLmlzWm9vbUNvbnN0YW50PSEwKX1lbHNlIHI9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sci5pc0ZlYXR1cmVDb25zdGFudD0hMCxyLmlzWm9vbUNvbnN0YW50PSEwO3JldHVybiByfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9MDtyPHQuc3RvcHMubGVuZ3RoO3IrKylpZihlPT09dC5zdG9wc1tyXVswXSlyZXR1cm4gdC5zdG9wc1tyXVsxXTtyZXR1cm4gdC5zdG9wc1swXVsxXX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPTA7cjx0LnN0b3BzLmxlbmd0aCYmIShlPHQuc3RvcHNbcl1bMF0pO3IrKyk7cmV0dXJuIHQuc3RvcHNbTWF0aC5tYXgoci0xLDApXVsxXX1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPXZvaWQgMCE9PXQuYmFzZT90LmJhc2U6MSxuPTA7Oyl7aWYobj49dC5zdG9wcy5sZW5ndGgpYnJlYWs7aWYoZTw9dC5zdG9wc1tuXVswXSlicmVhaztuKyt9cmV0dXJuIDA9PT1uP3Quc3RvcHNbbl1bMV06bj09PXQuc3RvcHMubGVuZ3RoP3Quc3RvcHNbbi0xXVsxXTpzKGUscix0LnN0b3BzW24tMV1bMF0sdC5zdG9wc1tuXVswXSx0LnN0b3BzW24tMV1bMV0sdC5zdG9wc1tuXVsxXSl9ZnVuY3Rpb24gcyh0LGUscixuLGksbyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGk/ZnVuY3Rpb24oKXt2YXIgYT1pLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpLGw9by5hcHBseSh2b2lkIDAsYXJndW1lbnRzKTtyZXR1cm4gcyh0LGUscixuLGEsbCl9OmkubGVuZ3RoP3UodCxlLHIsbixpLG8pOmwodCxlLHIsbixpLG8pfWZ1bmN0aW9uIGwodCxlLHIsbixpLG8pe3ZhciBhLHM9bi1yLGw9dC1yO3JldHVybiBhPTE9PT1lP2wvczooTWF0aC5wb3coZSxsKS0xKS8oTWF0aC5wb3coZSxzKS0xKSxpKigxLWEpK28qYX1mdW5jdGlvbiB1KHQsZSxyLG4saSxvKXtmb3IodmFyIGE9W10scz0wO3M8aS5sZW5ndGg7cysrKWFbc109bCh0LGUscixuLGlbc10sb1tzXSk7cmV0dXJuIGF9ZnVuY3Rpb24gYyh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJnQuc3RvcHN9ZS5leHBvcnRzLmlzRnVuY3Rpb25EZWZpbml0aW9uPWMsZS5leHBvcnRzLmludGVycG9sYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gbih0LCJleHBvbmVudGlhbCIpfSxlLmV4cG9ydHNbInBpZWNld2lzZS1jb25zdGFudCJdPWZ1bmN0aW9uKHQpe3JldHVybiBuKHQsImludGVydmFsIil9fSx7fV0sMzk0OltmdW5jdGlvbih0LGUscil7dCgicGF0aCIpO2UuZXhwb3J0cz17ZGVidWc6e2ZyYWdtZW50U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxudW5pZm9ybSBsb3dwIHZlYzQgdV9jb2xvcjtcblxudm9pZCBtYWluKCkge1xuICAgIGdsX0ZyYWdDb2xvciA9IHVfY29sb3I7XG59XG4iLHZlcnRleFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcblxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xuXG52b2lkIG1haW4oKSB7XG4gICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MsIHN0ZXAoMzI3NjcuMCwgYV9wb3MueCksIDEpO1xufVxuIn0sZmlsbDp7ZnJhZ21lbnRTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxudm9pZCBtYWluKCkge1xuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgdmVjNCBjb2xvclxuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuXG4gICAgZ2xfRnJhZ0NvbG9yID0gY29sb3IgKiBvcGFjaXR5O1xuXG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjApO1xuI2VuZGlmXG59XG4iLHZlcnRleFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcblxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xuXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxudm9pZCBtYWluKCkge1xuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgdmVjNCBjb2xvclxuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuXG4gICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MsIDAsIDEpO1xufVxuIn0sY2lyY2xlOntmcmFnbWVudFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNlbHNlXG4jZGVmaW5lIGxvd3BcbiNkZWZpbmUgbWVkaXVtcFxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG5cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxudmFyeWluZyB2ZWMyIHZfZXh0cnVkZTtcbnZhcnlpbmcgbG93cCBmbG9hdCB2X2FudGlhbGlhc2JsdXI7XG5cbnZvaWQgbWFpbigpIHtcbiAgICAjcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIHZlYzQgY29sb3JcbiAgICAjcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiAgICAjcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxuICAgIGZsb2F0IHQgPSBzbW9vdGhzdGVwKDEuMCAtIG1heChibHVyLCB2X2FudGlhbGlhc2JsdXIpLCAxLjAsIGxlbmd0aCh2X2V4dHJ1ZGUpKTtcbiAgICBnbF9GcmFnQ29sb3IgPSBjb2xvciAqICgxLjAgLSB0KSAqIG9wYWNpdHk7XG5cbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCk7XG4jZW5kaWZcbn1cbiIsdmVydGV4U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbHNlXG4jZGVmaW5lIGxvd3BcbiNkZWZpbmUgbWVkaXVtcFxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG5cbnVuaWZvcm0gbWF0NCB1X21hdHJpeDtcbnVuaWZvcm0gYm9vbCB1X3NjYWxlX3dpdGhfbWFwO1xudW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTtcbnVuaWZvcm0gZmxvYXQgdV9kZXZpY2VwaXhlbHJhdGlvO1xuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcblxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCByYWRpdXNcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuXG52YXJ5aW5nIHZlYzIgdl9leHRydWRlO1xudmFyeWluZyBsb3dwIGZsb2F0IHZfYW50aWFsaWFzYmx1cjtcblxudm9pZCBtYWluKHZvaWQpIHtcbiAgICAjcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIHZlYzQgY29sb3JcbiAgICAjcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuXG4gICAgLy8gdW5lbmNvZGUgdGhlIGV4dHJ1c2lvbiB2ZWN0b3IgdGhhdCB3ZSBzbnVjayBpbnRvIHRoZSBhX3BvcyB2ZWN0b3JcbiAgICB2X2V4dHJ1ZGUgPSB2ZWMyKG1vZChhX3BvcywgMi4wKSAqIDIuMCAtIDEuMCk7XG5cbiAgICB2ZWMyIGV4dHJ1ZGUgPSB2X2V4dHJ1ZGUgKiByYWRpdXMgKiB1X2V4dHJ1ZGVfc2NhbGU7XG4gICAgLy8gbXVsdGlwbHkgYV9wb3MgYnkgMC41LCBzaW5jZSB3ZSBoYWQgaXQgKiAyIGluIG9yZGVyIHRvIHNuZWFrXG4gICAgLy8gaW4gZXh0cnVzaW9uIGRhdGFcbiAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogdmVjNChmbG9vcihhX3BvcyAqIDAuNSksIDAsIDEpO1xuXG4gICAgaWYgKHVfc2NhbGVfd2l0aF9tYXApIHtcbiAgICAgICAgZ2xfUG9zaXRpb24ueHkgKz0gZXh0cnVkZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBnbF9Qb3NpdGlvbi54eSArPSBleHRydWRlICogZ2xfUG9zaXRpb24udztcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIGEgbWluaW11bSBibHVyIGRpc3RhbmNlIHRoYXQgc2VydmVzIGFzIGEgZmF1eC1hbnRpYWxpYXNpbmcgZm9yXG4gICAgLy8gdGhlIGNpcmNsZS4gc2luY2UgYmx1ciBpcyBhIHJhdGlvIG9mIHRoZSBjaXJjbGUncyBzaXplIGFuZCB0aGUgaW50ZW50IGlzXG4gICAgLy8gdG8ga2VlcCB0aGUgYmx1ciBhdCByb3VnaGx5IDFweCwgdGhlIHR3byBhcmUgaW52ZXJzZWx5IHJlbGF0ZWQuXG4gICAgdl9hbnRpYWxpYXNibHVyID0gMS4wIC8gdV9kZXZpY2VwaXhlbHJhdGlvIC8gcmFkaXVzO1xufVxuIn0sbGluZTp7ZnJhZ21lbnRTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIGxvd3AgdmVjNCB1X2NvbG9yO1xudW5pZm9ybSBsb3dwIGZsb2F0IHVfb3BhY2l0eTtcbnVuaWZvcm0gZmxvYXQgdV9ibHVyO1xuXG52YXJ5aW5nIHZlYzIgdl9saW5ld2lkdGg7XG52YXJ5aW5nIHZlYzIgdl9ub3JtYWw7XG52YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgICAvLyBDYWxjdWxhdGUgdGhlIGRpc3RhbmNlIG9mIHRoZSBwaXhlbCBmcm9tIHRoZSBsaW5lIGluIHBpeGVscy5cbiAgICBmbG9hdCBkaXN0ID0gbGVuZ3RoKHZfbm9ybWFsKSAqIHZfbGluZXdpZHRoLnM7XG5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIGFudGlhbGlhc2luZyBmYWRlIGZhY3Rvci4gVGhpcyBpcyBlaXRoZXIgd2hlbiBmYWRpbmcgaW5cbiAgICAvLyB0aGUgbGluZSBpbiBjYXNlIG9mIGFuIG9mZnNldCBsaW5lICh2X2xpbmV3aWR0aC50KSBvciB3aGVuIGZhZGluZyBvdXRcbiAgICAvLyAodl9saW5ld2lkdGgucylcbiAgICBmbG9hdCBibHVyID0gdV9ibHVyICogdl9nYW1tYV9zY2FsZTtcbiAgICBmbG9hdCBhbHBoYSA9IGNsYW1wKG1pbihkaXN0IC0gKHZfbGluZXdpZHRoLnQgLSBibHVyKSwgdl9saW5ld2lkdGgucyAtIGRpc3QpIC8gYmx1ciwgMC4wLCAxLjApO1xuXG4gICAgZ2xfRnJhZ0NvbG9yID0gdV9jb2xvciAqIChhbHBoYSAqIHVfb3BhY2l0eSk7XG5cbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCk7XG4jZW5kaWZcbn1cbiIsdmVydGV4U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbHNlXG4jZGVmaW5lIGxvd3BcbiNkZWZpbmUgbWVkaXVtcFxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG5cbi8vIGZsb29yKDEyNyAvIDIpID09IDYzLjBcbi8vIHRoZSBtYXhpbXVtIGFsbG93ZWQgbWl0ZXIgbGltaXQgaXMgMi4wIGF0IHRoZSBtb21lbnQuIHRoZSBleHRydWRlIG5vcm1hbCBpc1xuLy8gc3RvcmVkIGluIGEgYnl0ZSAoLTEyOC4uMTI3KS4gd2Ugc2NhbGUgcmVndWxhciBub3JtYWxzIHVwIHRvIGxlbmd0aCA2MywgYnV0XG4vLyB0aGVyZSBhcmUgYWxzbyBcInNwZWNpYWxcIiBub3JtYWxzIHRoYXQgaGF2ZSBhIGJpZ2dlciBsZW5ndGggKG9mIHVwIHRvIDEyNiBpblxuLy8gdGhpcyBjYXNlKS5cbi8vICNkZWZpbmUgc2NhbGUgNjMuMFxuI2RlZmluZSBzY2FsZSAwLjAxNTg3MzAxNlxuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcbmF0dHJpYnV0ZSB2ZWM0IGFfZGF0YTtcblxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfcmF0aW87XG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9saW5ld2lkdGg7XG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9nYXB3aWR0aDtcbnVuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X2FudGlhbGlhc2luZztcbnVuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X2V4dHJhO1xudW5pZm9ybSBtYXQyIHVfYW50aWFsaWFzaW5nbWF0cml4O1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfb2Zmc2V0O1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfYmx1cjtcblxudmFyeWluZyB2ZWMyIHZfbm9ybWFsO1xudmFyeWluZyB2ZWMyIHZfbGluZXdpZHRoO1xudmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuXG52b2lkIG1haW4oKSB7XG4gICAgdmVjMiBhX2V4dHJ1ZGUgPSBhX2RhdGEueHkgLSAxMjguMDtcbiAgICBmbG9hdCBhX2RpcmVjdGlvbiA9IG1vZChhX2RhdGEueiwgNC4wKSAtIDEuMDtcblxuICAgIC8vIFdlIHN0b3JlIHRoZSB0ZXh0dXJlIG5vcm1hbHMgaW4gdGhlIG1vc3QgaW5zaWduaWZpY2FudCBiaXRcbiAgICAvLyB0cmFuc2Zvcm0geSBzbyB0aGF0IDAgPT4gLTEgYW5kIDEgPT4gMVxuICAgIC8vIEluIHRoZSB0ZXh0dXJlIG5vcm1hbCwgeCBpcyAwIGlmIHRoZSBub3JtYWwgcG9pbnRzIHN0cmFpZ2h0IHVwL2Rvd24gYW5kIDEgaWYgaXQncyBhIHJvdW5kIGNhcFxuICAgIC8vIHkgaXMgMSBpZiB0aGUgbm9ybWFsIHBvaW50cyB1cCwgYW5kIC0xIGlmIGl0IHBvaW50cyBkb3duXG4gICAgbWVkaXVtcCB2ZWMyIG5vcm1hbCA9IG1vZChhX3BvcywgMi4wKTtcbiAgICBub3JtYWwueSA9IHNpZ24obm9ybWFsLnkgLSAwLjUpO1xuICAgIHZfbm9ybWFsID0gbm9ybWFsO1xuXG4gICAgZmxvYXQgaW5zZXQgPSB1X2dhcHdpZHRoICsgKHVfZ2Fwd2lkdGggPiAwLjAgPyB1X2FudGlhbGlhc2luZyA6IDAuMCk7XG4gICAgZmxvYXQgb3V0c2V0ID0gdV9nYXB3aWR0aCArIHVfbGluZXdpZHRoICogKHVfZ2Fwd2lkdGggPiAwLjAgPyAyLjAgOiAxLjApICsgdV9hbnRpYWxpYXNpbmc7XG5cbiAgICAvLyBTY2FsZSB0aGUgZXh0cnVzaW9uIHZlY3RvciBkb3duIHRvIGEgbm9ybWFsIGFuZCB0aGVuIHVwIGJ5IHRoZSBsaW5lIHdpZHRoXG4gICAgLy8gb2YgdGhpcyB2ZXJ0ZXguXG4gICAgbWVkaXVtcCB2ZWMyIGRpc3QgPSBvdXRzZXQgKiBhX2V4dHJ1ZGUgKiBzY2FsZTtcblxuICAgIC8vIENhbGN1bGF0ZSB0aGUgb2Zmc2V0IHdoZW4gZHJhd2luZyBhIGxpbmUgdGhhdCBpcyB0byB0aGUgc2lkZSBvZiB0aGUgYWN0dWFsIGxpbmUuXG4gICAgLy8gV2UgZG8gdGhpcyBieSBjcmVhdGluZyBhIHZlY3RvciB0aGF0IHBvaW50cyB0b3dhcmRzIHRoZSBleHRydWRlLCBidXQgcm90YXRlXG4gICAgLy8gaXQgd2hlbiB3ZSdyZSBkcmF3aW5nIHJvdW5kIGVuZCBwb2ludHMgKGFfZGlyZWN0aW9uID0gLTEgb3IgMSkgc2luY2UgdGhlaXJcbiAgICAvLyBleHRydWRlIHZlY3RvciBwb2ludHMgaW4gYW5vdGhlciBkaXJlY3Rpb24uXG4gICAgbWVkaXVtcCBmbG9hdCB1ID0gMC41ICogYV9kaXJlY3Rpb247XG4gICAgbWVkaXVtcCBmbG9hdCB0ID0gMS4wIC0gYWJzKHUpO1xuICAgIG1lZGl1bXAgdmVjMiBvZmZzZXQgPSB1X29mZnNldCAqIGFfZXh0cnVkZSAqIHNjYWxlICogbm9ybWFsLnkgKiBtYXQyKHQsIC11LCB1LCB0KTtcblxuICAgIC8vIFJlbW92ZSB0aGUgdGV4dHVyZSBub3JtYWwgYml0IG9mIHRoZSBwb3NpdGlvbiBiZWZvcmUgc2NhbGluZyBpdCB3aXRoIHRoZVxuICAgIC8vIG1vZGVsL3ZpZXcgbWF0cml4LlxuICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiB2ZWM0KGZsb29yKGFfcG9zICogMC41KSArIChvZmZzZXQgKyBkaXN0KSAvIHVfcmF0aW8sIDAuMCwgMS4wKTtcblxuICAgIC8vIHBvc2l0aW9uIG9mIHkgb24gdGhlIHNjcmVlblxuICAgIGZsb2F0IHkgPSBnbF9Qb3NpdGlvbi55IC8gZ2xfUG9zaXRpb24udztcblxuICAgIC8vIGhvdyBtdWNoIGZlYXR1cmVzIGFyZSBzcXVpc2hlZCBpbiB0aGUgeSBkaXJlY3Rpb24gYnkgdGhlIHRpbHRcbiAgICBmbG9hdCBzcXVpc2hfc2NhbGUgPSBsZW5ndGgoYV9leHRydWRlKSAvIGxlbmd0aCh1X2FudGlhbGlhc2luZ21hdHJpeCAqIGFfZXh0cnVkZSk7XG5cbiAgICAvLyBob3cgbXVjaCBmZWF0dXJlcyBhcmUgc3F1aXNoZWQgaW4gYWxsIGRpcmVjdGlvbnMgYnkgdGhlIHBlcnNwZWN0aXZlbmVzc1xuICAgIGZsb2F0IHBlcnNwZWN0aXZlX3NjYWxlID0gMS4wIC8gKDEuMCAtIG1pbih5ICogdV9leHRyYSwgMC45KSk7XG5cbiAgICB2X2xpbmV3aWR0aCA9IHZlYzIob3V0c2V0LCBpbnNldCk7XG4gICAgdl9nYW1tYV9zY2FsZSA9IHBlcnNwZWN0aXZlX3NjYWxlICogc3F1aXNoX3NjYWxlO1xufVxuIn0sbGluZXBhdHRlcm46e2ZyYWdtZW50U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxudW5pZm9ybSBmbG9hdCB1X2JsdXI7XG5cbnVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fc2l6ZV9hO1xudW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9zaXplX2I7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3RsX2E7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2E7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3RsX2I7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2I7XG51bmlmb3JtIGZsb2F0IHVfZmFkZTtcbnVuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O1xuXG51bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO1xuXG52YXJ5aW5nIHZlYzIgdl9ub3JtYWw7XG52YXJ5aW5nIHZlYzIgdl9saW5ld2lkdGg7XG52YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO1xudmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuXG52b2lkIG1haW4oKSB7XG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBkaXN0YW5jZSBvZiB0aGUgcGl4ZWwgZnJvbSB0aGUgbGluZSBpbiBwaXhlbHMuXG4gICAgZmxvYXQgZGlzdCA9IGxlbmd0aCh2X25vcm1hbCkgKiB2X2xpbmV3aWR0aC5zO1xuXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBhbnRpYWxpYXNpbmcgZmFkZSBmYWN0b3IuIFRoaXMgaXMgZWl0aGVyIHdoZW4gZmFkaW5nIGluXG4gICAgLy8gdGhlIGxpbmUgaW4gY2FzZSBvZiBhbiBvZmZzZXQgbGluZSAodl9saW5ld2lkdGgudCkgb3Igd2hlbiBmYWRpbmcgb3V0XG4gICAgLy8gKHZfbGluZXdpZHRoLnMpXG4gICAgZmxvYXQgYmx1ciA9IHVfYmx1ciAqIHZfZ2FtbWFfc2NhbGU7XG4gICAgZmxvYXQgYWxwaGEgPSBjbGFtcChtaW4oZGlzdCAtICh2X2xpbmV3aWR0aC50IC0gYmx1ciksIHZfbGluZXdpZHRoLnMgLSBkaXN0KSAvIGJsdXIsIDAuMCwgMS4wKTtcblxuICAgIGZsb2F0IHhfYSA9IG1vZCh2X2xpbmVzb2ZhciAvIHVfcGF0dGVybl9zaXplX2EueCwgMS4wKTtcbiAgICBmbG9hdCB4X2IgPSBtb2Qodl9saW5lc29mYXIgLyB1X3BhdHRlcm5fc2l6ZV9iLngsIDEuMCk7XG4gICAgZmxvYXQgeV9hID0gMC41ICsgKHZfbm9ybWFsLnkgKiB2X2xpbmV3aWR0aC5zIC8gdV9wYXR0ZXJuX3NpemVfYS55KTtcbiAgICBmbG9hdCB5X2IgPSAwLjUgKyAodl9ub3JtYWwueSAqIHZfbGluZXdpZHRoLnMgLyB1X3BhdHRlcm5fc2l6ZV9iLnkpO1xuICAgIHZlYzIgcG9zX2EgPSBtaXgodV9wYXR0ZXJuX3RsX2EsIHVfcGF0dGVybl9icl9hLCB2ZWMyKHhfYSwgeV9hKSk7XG4gICAgdmVjMiBwb3NfYiA9IG1peCh1X3BhdHRlcm5fdGxfYiwgdV9wYXR0ZXJuX2JyX2IsIHZlYzIoeF9iLCB5X2IpKTtcblxuICAgIHZlYzQgY29sb3IgPSBtaXgodGV4dHVyZTJEKHVfaW1hZ2UsIHBvc19hKSwgdGV4dHVyZTJEKHVfaW1hZ2UsIHBvc19iKSwgdV9mYWRlKTtcblxuICAgIGFscGhhICo9IHVfb3BhY2l0eTtcblxuICAgIGdsX0ZyYWdDb2xvciA9IGNvbG9yICogYWxwaGE7XG5cbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCk7XG4jZW5kaWZcbn1cbiIsdmVydGV4U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbHNlXG4jZGVmaW5lIGxvd3BcbiNkZWZpbmUgbWVkaXVtcFxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG5cbi8vIGZsb29yKDEyNyAvIDIpID09IDYzLjBcbi8vIHRoZSBtYXhpbXVtIGFsbG93ZWQgbWl0ZXIgbGltaXQgaXMgMi4wIGF0IHRoZSBtb21lbnQuIHRoZSBleHRydWRlIG5vcm1hbCBpc1xuLy8gc3RvcmVkIGluIGEgYnl0ZSAoLTEyOC4uMTI3KS4gd2Ugc2NhbGUgcmVndWxhciBub3JtYWxzIHVwIHRvIGxlbmd0aCA2MywgYnV0XG4vLyB0aGVyZSBhcmUgYWxzbyBcInNwZWNpYWxcIiBub3JtYWxzIHRoYXQgaGF2ZSBhIGJpZ2dlciBsZW5ndGggKG9mIHVwIHRvIDEyNiBpblxuLy8gdGhpcyBjYXNlKS5cbi8vICNkZWZpbmUgc2NhbGUgNjMuMFxuI2RlZmluZSBzY2FsZSAwLjAxNTg3MzAxNlxuXG4vLyBXZSBzY2FsZSB0aGUgZGlzdGFuY2UgYmVmb3JlIGFkZGluZyBpdCB0byB0aGUgYnVmZmVycyBzbyB0aGF0IHdlIGNhbiBzdG9yZVxuLy8gbG9uZyBkaXN0YW5jZXMgZm9yIGxvbmcgc2VnbWVudHMuIFVzZSB0aGlzIHZhbHVlIHRvIHVuc2NhbGUgdGhlIGRpc3RhbmNlLlxuI2RlZmluZSBMSU5FX0RJU1RBTkNFX1NDQUxFIDIuMFxuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcbmF0dHJpYnV0ZSB2ZWM0IGFfZGF0YTtcblxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfcmF0aW87XG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9saW5ld2lkdGg7XG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9nYXB3aWR0aDtcbnVuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X2FudGlhbGlhc2luZztcbnVuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X2V4dHJhO1xudW5pZm9ybSBtYXQyIHVfYW50aWFsaWFzaW5nbWF0cml4O1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfb2Zmc2V0O1xuXG52YXJ5aW5nIHZlYzIgdl9ub3JtYWw7XG52YXJ5aW5nIHZlYzIgdl9saW5ld2lkdGg7XG52YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO1xudmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuXG52b2lkIG1haW4oKSB7XG4gICAgdmVjMiBhX2V4dHJ1ZGUgPSBhX2RhdGEueHkgLSAxMjguMDtcbiAgICBmbG9hdCBhX2RpcmVjdGlvbiA9IG1vZChhX2RhdGEueiwgNC4wKSAtIDEuMDtcbiAgICBmbG9hdCBhX2xpbmVzb2ZhciA9IChmbG9vcihhX2RhdGEueiAvIDQuMCkgKyBhX2RhdGEudyAqIDY0LjApICogTElORV9ESVNUQU5DRV9TQ0FMRTtcblxuICAgIC8vIFdlIHN0b3JlIHRoZSB0ZXh0dXJlIG5vcm1hbHMgaW4gdGhlIG1vc3QgaW5zaWduaWZpY2FudCBiaXRcbiAgICAvLyB0cmFuc2Zvcm0geSBzbyB0aGF0IDAgPT4gLTEgYW5kIDEgPT4gMVxuICAgIC8vIEluIHRoZSB0ZXh0dXJlIG5vcm1hbCwgeCBpcyAwIGlmIHRoZSBub3JtYWwgcG9pbnRzIHN0cmFpZ2h0IHVwL2Rvd24gYW5kIDEgaWYgaXQncyBhIHJvdW5kIGNhcFxuICAgIC8vIHkgaXMgMSBpZiB0aGUgbm9ybWFsIHBvaW50cyB1cCwgYW5kIC0xIGlmIGl0IHBvaW50cyBkb3duXG4gICAgbWVkaXVtcCB2ZWMyIG5vcm1hbCA9IG1vZChhX3BvcywgMi4wKTtcbiAgICBub3JtYWwueSA9IHNpZ24obm9ybWFsLnkgLSAwLjUpO1xuICAgIHZfbm9ybWFsID0gbm9ybWFsO1xuXG4gICAgZmxvYXQgaW5zZXQgPSB1X2dhcHdpZHRoICsgKHVfZ2Fwd2lkdGggPiAwLjAgPyB1X2FudGlhbGlhc2luZyA6IDAuMCk7XG4gICAgZmxvYXQgb3V0c2V0ID0gdV9nYXB3aWR0aCArIHVfbGluZXdpZHRoICogKHVfZ2Fwd2lkdGggPiAwLjAgPyAyLjAgOiAxLjApICsgdV9hbnRpYWxpYXNpbmc7XG5cbiAgICAvLyBTY2FsZSB0aGUgZXh0cnVzaW9uIHZlY3RvciBkb3duIHRvIGEgbm9ybWFsIGFuZCB0aGVuIHVwIGJ5IHRoZSBsaW5lIHdpZHRoXG4gICAgLy8gb2YgdGhpcyB2ZXJ0ZXguXG4gICAgbWVkaXVtcCB2ZWMyIGRpc3QgPSBvdXRzZXQgKiBhX2V4dHJ1ZGUgKiBzY2FsZTtcblxuICAgIC8vIENhbGN1bGF0ZSB0aGUgb2Zmc2V0IHdoZW4gZHJhd2luZyBhIGxpbmUgdGhhdCBpcyB0byB0aGUgc2lkZSBvZiB0aGUgYWN0dWFsIGxpbmUuXG4gICAgLy8gV2UgZG8gdGhpcyBieSBjcmVhdGluZyBhIHZlY3RvciB0aGF0IHBvaW50cyB0b3dhcmRzIHRoZSBleHRydWRlLCBidXQgcm90YXRlXG4gICAgLy8gaXQgd2hlbiB3ZSdyZSBkcmF3aW5nIHJvdW5kIGVuZCBwb2ludHMgKGFfZGlyZWN0aW9uID0gLTEgb3IgMSkgc2luY2UgdGhlaXJcbiAgICAvLyBleHRydWRlIHZlY3RvciBwb2ludHMgaW4gYW5vdGhlciBkaXJlY3Rpb24uXG4gICAgbWVkaXVtcCBmbG9hdCB1ID0gMC41ICogYV9kaXJlY3Rpb247XG4gICAgbWVkaXVtcCBmbG9hdCB0ID0gMS4wIC0gYWJzKHUpO1xuICAgIG1lZGl1bXAgdmVjMiBvZmZzZXQgPSB1X29mZnNldCAqIGFfZXh0cnVkZSAqIHNjYWxlICogbm9ybWFsLnkgKiBtYXQyKHQsIC11LCB1LCB0KTtcblxuICAgIC8vIFJlbW92ZSB0aGUgdGV4dHVyZSBub3JtYWwgYml0IG9mIHRoZSBwb3NpdGlvbiBiZWZvcmUgc2NhbGluZyBpdCB3aXRoIHRoZVxuICAgIC8vIG1vZGVsL3ZpZXcgbWF0cml4LlxuICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiB2ZWM0KGZsb29yKGFfcG9zICogMC41KSArIChvZmZzZXQgKyBkaXN0KSAvIHVfcmF0aW8sIDAuMCwgMS4wKTtcbiAgICB2X2xpbmVzb2ZhciA9IGFfbGluZXNvZmFyO1xuXG4gICAgLy8gcG9zaXRpb24gb2YgeSBvbiB0aGUgc2NyZWVuXG4gICAgZmxvYXQgeSA9IGdsX1Bvc2l0aW9uLnkgLyBnbF9Qb3NpdGlvbi53O1xuXG4gICAgLy8gaG93IG11Y2ggZmVhdHVyZXMgYXJlIHNxdWlzaGVkIGluIHRoZSB5IGRpcmVjdGlvbiBieSB0aGUgdGlsdFxuICAgIGZsb2F0IHNxdWlzaF9zY2FsZSA9IGxlbmd0aChhX2V4dHJ1ZGUpIC8gbGVuZ3RoKHVfYW50aWFsaWFzaW5nbWF0cml4ICogYV9leHRydWRlKTtcblxuICAgIC8vIGhvdyBtdWNoIGZlYXR1cmVzIGFyZSBzcXVpc2hlZCBpbiBhbGwgZGlyZWN0aW9ucyBieSB0aGUgcGVyc3BlY3RpdmVuZXNzXG4gICAgZmxvYXQgcGVyc3BlY3RpdmVfc2NhbGUgPSAxLjAgLyAoMS4wIC0gbWluKHkgKiB1X2V4dHJhLCAwLjkpKTtcblxuICAgIHZfbGluZXdpZHRoID0gdmVjMihvdXRzZXQsIGluc2V0KTtcbiAgICB2X2dhbW1hX3NjYWxlID0gcGVyc3BlY3RpdmVfc2NhbGUgKiBzcXVpc2hfc2NhbGU7XG59XG4ifSxsaW5lc2RmcGF0dGVybjp7ZnJhZ21lbnRTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIGxvd3AgdmVjNCB1X2NvbG9yO1xudW5pZm9ybSBsb3dwIGZsb2F0IHVfb3BhY2l0eTtcblxudW5pZm9ybSBmbG9hdCB1X2JsdXI7XG51bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO1xudW5pZm9ybSBmbG9hdCB1X3NkZmdhbW1hO1xudW5pZm9ybSBmbG9hdCB1X21peDtcblxudmFyeWluZyB2ZWMyIHZfbm9ybWFsO1xudmFyeWluZyB2ZWMyIHZfbGluZXdpZHRoO1xudmFyeWluZyB2ZWMyIHZfdGV4X2E7XG52YXJ5aW5nIHZlYzIgdl90ZXhfYjtcbnZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTtcblxudm9pZCBtYWluKCkge1xuICAgIC8vIENhbGN1bGF0ZSB0aGUgZGlzdGFuY2Ugb2YgdGhlIHBpeGVsIGZyb20gdGhlIGxpbmUgaW4gcGl4ZWxzLlxuICAgIGZsb2F0IGRpc3QgPSBsZW5ndGgodl9ub3JtYWwpICogdl9saW5ld2lkdGgucztcblxuICAgIC8vIENhbGN1bGF0ZSB0aGUgYW50aWFsaWFzaW5nIGZhZGUgZmFjdG9yLiBUaGlzIGlzIGVpdGhlciB3aGVuIGZhZGluZyBpblxuICAgIC8vIHRoZSBsaW5lIGluIGNhc2Ugb2YgYW4gb2Zmc2V0IGxpbmUgKHZfbGluZXdpZHRoLnQpIG9yIHdoZW4gZmFkaW5nIG91dFxuICAgIC8vICh2X2xpbmV3aWR0aC5zKVxuICAgIGZsb2F0IGJsdXIgPSB1X2JsdXIgKiB2X2dhbW1hX3NjYWxlO1xuICAgIGZsb2F0IGFscGhhID0gY2xhbXAobWluKGRpc3QgLSAodl9saW5ld2lkdGgudCAtIGJsdXIpLCB2X2xpbmV3aWR0aC5zIC0gZGlzdCkgLyBibHVyLCAwLjAsIDEuMCk7XG5cbiAgICBmbG9hdCBzZGZkaXN0X2EgPSB0ZXh0dXJlMkQodV9pbWFnZSwgdl90ZXhfYSkuYTtcbiAgICBmbG9hdCBzZGZkaXN0X2IgPSB0ZXh0dXJlMkQodV9pbWFnZSwgdl90ZXhfYikuYTtcbiAgICBmbG9hdCBzZGZkaXN0ID0gbWl4KHNkZmRpc3RfYSwgc2RmZGlzdF9iLCB1X21peCk7XG4gICAgYWxwaGEgKj0gc21vb3Roc3RlcCgwLjUgLSB1X3NkZmdhbW1hLCAwLjUgKyB1X3NkZmdhbW1hLCBzZGZkaXN0KTtcblxuICAgIGdsX0ZyYWdDb2xvciA9IHVfY29sb3IgKiAoYWxwaGEgKiB1X29wYWNpdHkpO1xuXG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjApO1xuI2VuZGlmXG59XG4iLHZlcnRleFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG4vLyBmbG9vcigxMjcgLyAyKSA9PSA2My4wXG4vLyB0aGUgbWF4aW11bSBhbGxvd2VkIG1pdGVyIGxpbWl0IGlzIDIuMCBhdCB0aGUgbW9tZW50LiB0aGUgZXh0cnVkZSBub3JtYWwgaXNcbi8vIHN0b3JlZCBpbiBhIGJ5dGUgKC0xMjguLjEyNykuIHdlIHNjYWxlIHJlZ3VsYXIgbm9ybWFscyB1cCB0byBsZW5ndGggNjMsIGJ1dFxuLy8gdGhlcmUgYXJlIGFsc28gXCJzcGVjaWFsXCIgbm9ybWFscyB0aGF0IGhhdmUgYSBiaWdnZXIgbGVuZ3RoIChvZiB1cCB0byAxMjYgaW5cbi8vIHRoaXMgY2FzZSkuXG4vLyAjZGVmaW5lIHNjYWxlIDYzLjBcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcblxuLy8gV2Ugc2NhbGUgdGhlIGRpc3RhbmNlIGJlZm9yZSBhZGRpbmcgaXQgdG8gdGhlIGJ1ZmZlcnMgc28gdGhhdCB3ZSBjYW4gc3RvcmVcbi8vIGxvbmcgZGlzdGFuY2VzIGZvciBsb25nIHNlZ21lbnRzLiBVc2UgdGhpcyB2YWx1ZSB0byB1bnNjYWxlIHRoZSBkaXN0YW5jZS5cbiNkZWZpbmUgTElORV9ESVNUQU5DRV9TQ0FMRSAyLjBcblxuYXR0cmlidXRlIHZlYzIgYV9wb3M7XG5hdHRyaWJ1dGUgdmVjNCBhX2RhdGE7XG5cbnVuaWZvcm0gbWF0NCB1X21hdHJpeDtcbnVuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfbGluZXdpZHRoO1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfZ2Fwd2lkdGg7XG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9hbnRpYWxpYXNpbmc7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuc2NhbGVfYTtcbnVuaWZvcm0gZmxvYXQgdV90ZXhfeV9hO1xudW5pZm9ybSB2ZWMyIHVfcGF0dGVybnNjYWxlX2I7XG51bmlmb3JtIGZsb2F0IHVfdGV4X3lfYjtcbnVuaWZvcm0gZmxvYXQgdV9leHRyYTtcbnVuaWZvcm0gbWF0MiB1X2FudGlhbGlhc2luZ21hdHJpeDtcbnVuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X29mZnNldDtcblxudmFyeWluZyB2ZWMyIHZfbm9ybWFsO1xudmFyeWluZyB2ZWMyIHZfbGluZXdpZHRoO1xudmFyeWluZyB2ZWMyIHZfdGV4X2E7XG52YXJ5aW5nIHZlYzIgdl90ZXhfYjtcbnZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTtcblxudm9pZCBtYWluKCkge1xuICAgIHZlYzIgYV9leHRydWRlID0gYV9kYXRhLnh5IC0gMTI4LjA7XG4gICAgZmxvYXQgYV9kaXJlY3Rpb24gPSBtb2QoYV9kYXRhLnosIDQuMCkgLSAxLjA7XG4gICAgZmxvYXQgYV9saW5lc29mYXIgPSAoZmxvb3IoYV9kYXRhLnogLyA0LjApICsgYV9kYXRhLncgKiA2NC4wKSAqIExJTkVfRElTVEFOQ0VfU0NBTEU7XG5cbiAgICAvLyBXZSBzdG9yZSB0aGUgdGV4dHVyZSBub3JtYWxzIGluIHRoZSBtb3N0IGluc2lnbmlmaWNhbnQgYml0XG4gICAgLy8gdHJhbnNmb3JtIHkgc28gdGhhdCAwID0+IC0xIGFuZCAxID0+IDFcbiAgICAvLyBJbiB0aGUgdGV4dHVyZSBub3JtYWwsIHggaXMgMCBpZiB0aGUgbm9ybWFsIHBvaW50cyBzdHJhaWdodCB1cC9kb3duIGFuZCAxIGlmIGl0J3MgYSByb3VuZCBjYXBcbiAgICAvLyB5IGlzIDEgaWYgdGhlIG5vcm1hbCBwb2ludHMgdXAsIGFuZCAtMSBpZiBpdCBwb2ludHMgZG93blxuICAgIG1lZGl1bXAgdmVjMiBub3JtYWwgPSBtb2QoYV9wb3MsIDIuMCk7XG4gICAgbm9ybWFsLnkgPSBzaWduKG5vcm1hbC55IC0gMC41KTtcbiAgICB2X25vcm1hbCA9IG5vcm1hbDtcblxuICAgIGZsb2F0IGluc2V0ID0gdV9nYXB3aWR0aCArICh1X2dhcHdpZHRoID4gMC4wID8gdV9hbnRpYWxpYXNpbmcgOiAwLjApO1xuICAgIGZsb2F0IG91dHNldCA9IHVfZ2Fwd2lkdGggKyB1X2xpbmV3aWR0aCAqICh1X2dhcHdpZHRoID4gMC4wID8gMi4wIDogMS4wKSArIHVfYW50aWFsaWFzaW5nO1xuXG4gICAgLy8gU2NhbGUgdGhlIGV4dHJ1c2lvbiB2ZWN0b3IgZG93biB0byBhIG5vcm1hbCBhbmQgdGhlbiB1cCBieSB0aGUgbGluZSB3aWR0aFxuICAgIC8vIG9mIHRoaXMgdmVydGV4LlxuICAgIG1lZGl1bXAgdmVjMiBkaXN0ID0gb3V0c2V0ICogYV9leHRydWRlICogc2NhbGU7XG5cbiAgICAvLyBDYWxjdWxhdGUgdGhlIG9mZnNldCB3aGVuIGRyYXdpbmcgYSBsaW5lIHRoYXQgaXMgdG8gdGhlIHNpZGUgb2YgdGhlIGFjdHVhbCBsaW5lLlxuICAgIC8vIFdlIGRvIHRoaXMgYnkgY3JlYXRpbmcgYSB2ZWN0b3IgdGhhdCBwb2ludHMgdG93YXJkcyB0aGUgZXh0cnVkZSwgYnV0IHJvdGF0ZVxuICAgIC8vIGl0IHdoZW4gd2UncmUgZHJhd2luZyByb3VuZCBlbmQgcG9pbnRzIChhX2RpcmVjdGlvbiA9IC0xIG9yIDEpIHNpbmNlIHRoZWlyXG4gICAgLy8gZXh0cnVkZSB2ZWN0b3IgcG9pbnRzIGluIGFub3RoZXIgZGlyZWN0aW9uLlxuICAgIG1lZGl1bXAgZmxvYXQgdSA9IDAuNSAqIGFfZGlyZWN0aW9uO1xuICAgIG1lZGl1bXAgZmxvYXQgdCA9IDEuMCAtIGFicyh1KTtcbiAgICBtZWRpdW1wIHZlYzIgb2Zmc2V0ID0gdV9vZmZzZXQgKiBhX2V4dHJ1ZGUgKiBzY2FsZSAqIG5vcm1hbC55ICogbWF0Mih0LCAtdSwgdSwgdCk7XG5cbiAgICAvLyBSZW1vdmUgdGhlIHRleHR1cmUgbm9ybWFsIGJpdCBvZiB0aGUgcG9zaXRpb24gYmVmb3JlIHNjYWxpbmcgaXQgd2l0aCB0aGVcbiAgICAvLyBtb2RlbC92aWV3IG1hdHJpeC5cbiAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogdmVjNChmbG9vcihhX3BvcyAqIDAuNSkgKyAob2Zmc2V0ICsgZGlzdCkgLyB1X3JhdGlvLCAwLjAsIDEuMCk7XG5cbiAgICB2X3RleF9hID0gdmVjMihhX2xpbmVzb2ZhciAqIHVfcGF0dGVybnNjYWxlX2EueCwgbm9ybWFsLnkgKiB1X3BhdHRlcm5zY2FsZV9hLnkgKyB1X3RleF95X2EpO1xuICAgIHZfdGV4X2IgPSB2ZWMyKGFfbGluZXNvZmFyICogdV9wYXR0ZXJuc2NhbGVfYi54LCBub3JtYWwueSAqIHVfcGF0dGVybnNjYWxlX2IueSArIHVfdGV4X3lfYik7XG5cbiAgICAvLyBwb3NpdGlvbiBvZiB5IG9uIHRoZSBzY3JlZW5cbiAgICBmbG9hdCB5ID0gZ2xfUG9zaXRpb24ueSAvIGdsX1Bvc2l0aW9uLnc7XG5cbiAgICAvLyBob3cgbXVjaCBmZWF0dXJlcyBhcmUgc3F1aXNoZWQgaW4gdGhlIHkgZGlyZWN0aW9uIGJ5IHRoZSB0aWx0XG4gICAgZmxvYXQgc3F1aXNoX3NjYWxlID0gbGVuZ3RoKGFfZXh0cnVkZSkgLyBsZW5ndGgodV9hbnRpYWxpYXNpbmdtYXRyaXggKiBhX2V4dHJ1ZGUpO1xuXG4gICAgLy8gaG93IG11Y2ggZmVhdHVyZXMgYXJlIHNxdWlzaGVkIGluIGFsbCBkaXJlY3Rpb25zIGJ5IHRoZSBwZXJzcGVjdGl2ZW5lc3NcbiAgICBmbG9hdCBwZXJzcGVjdGl2ZV9zY2FsZSA9IDEuMCAvICgxLjAgLSBtaW4oeSAqIHVfZXh0cmEsIDAuOSkpO1xuXG4gICAgdl9saW5ld2lkdGggPSB2ZWMyKG91dHNldCwgaW5zZXQpO1xuICAgIHZfZ2FtbWFfc2NhbGUgPSBwZXJzcGVjdGl2ZV9zY2FsZSAqIHNxdWlzaF9zY2FsZTtcbn1cbiJ9LG91dGxpbmU6e2ZyYWdtZW50U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxudmFyeWluZyB2ZWMyIHZfcG9zO1xuXG52b2lkIG1haW4oKSB7XG4gICAgI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCB2ZWM0IG91dGxpbmVfY29sb3JcbiAgICAjcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxuICAgIGZsb2F0IGRpc3QgPSBsZW5ndGgodl9wb3MgLSBnbF9GcmFnQ29vcmQueHkpO1xuICAgIGZsb2F0IGFscGhhID0gc21vb3Roc3RlcCgxLjAsIDAuMCwgZGlzdCk7XG4gICAgZ2xfRnJhZ0NvbG9yID0gb3V0bGluZV9jb2xvciAqIChhbHBoYSAqIG9wYWNpdHkpO1xuXG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjApO1xuI2VuZGlmXG59XG4iLHZlcnRleFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcblxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xudW5pZm9ybSB2ZWMyIHVfd29ybGQ7XG5cbnZhcnlpbmcgdmVjMiB2X3BvcztcblxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcblxudm9pZCBtYWluKCkge1xuICAgICNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgdmVjNCBvdXRsaW5lX2NvbG9yXG4gICAgI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5cbiAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogdmVjNChhX3BvcywgMCwgMSk7XG4gICAgdl9wb3MgPSAoZ2xfUG9zaXRpb24ueHkgLyBnbF9Qb3NpdGlvbi53ICsgMS4wKSAvIDIuMCAqIHVfd29ybGQ7XG59XG4ifSxvdXRsaW5lcGF0dGVybjp7ZnJhZ21lbnRTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTtcbnVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fdGxfYTtcbnVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fYnJfYTtcbnVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fdGxfYjtcbnVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fYnJfYjtcbnVuaWZvcm0gZmxvYXQgdV9taXg7XG5cbnVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7XG5cbnZhcnlpbmcgdmVjMiB2X3Bvc19hO1xudmFyeWluZyB2ZWMyIHZfcG9zX2I7XG52YXJ5aW5nIHZlYzIgdl9wb3M7XG5cbnZvaWQgbWFpbigpIHtcbiAgICB2ZWMyIGltYWdlY29vcmQgPSBtb2Qodl9wb3NfYSwgMS4wKTtcbiAgICB2ZWMyIHBvcyA9IG1peCh1X3BhdHRlcm5fdGxfYSwgdV9wYXR0ZXJuX2JyX2EsIGltYWdlY29vcmQpO1xuICAgIHZlYzQgY29sb3IxID0gdGV4dHVyZTJEKHVfaW1hZ2UsIHBvcyk7XG5cbiAgICB2ZWMyIGltYWdlY29vcmRfYiA9IG1vZCh2X3Bvc19iLCAxLjApO1xuICAgIHZlYzIgcG9zMiA9IG1peCh1X3BhdHRlcm5fdGxfYiwgdV9wYXR0ZXJuX2JyX2IsIGltYWdlY29vcmRfYik7XG4gICAgdmVjNCBjb2xvcjIgPSB0ZXh0dXJlMkQodV9pbWFnZSwgcG9zMik7XG5cbiAgICAvLyBmaW5kIGRpc3RhbmNlIHRvIG91dGxpbmUgZm9yIGFscGhhIGludGVycG9sYXRpb25cblxuICAgIGZsb2F0IGRpc3QgPSBsZW5ndGgodl9wb3MgLSBnbF9GcmFnQ29vcmQueHkpO1xuICAgIGZsb2F0IGFscGhhID0gc21vb3Roc3RlcCgxLjAsIDAuMCwgZGlzdCk7XG4gICAgXG5cbiAgICBnbF9GcmFnQ29sb3IgPSBtaXgoY29sb3IxLCBjb2xvcjIsIHVfbWl4KSAqIGFscGhhICogdV9vcGFjaXR5O1xuXG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjApO1xuI2VuZGlmXG59XG4iLHZlcnRleFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3NpemVfYTtcbnVuaWZvcm0gdmVjMiB1X3BhdHRlcm5fc2l6ZV9iO1xudW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfdXBwZXI7XG51bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjtcbnVuaWZvcm0gZmxvYXQgdV9zY2FsZV9hO1xudW5pZm9ybSBmbG9hdCB1X3NjYWxlX2I7XG51bmlmb3JtIGZsb2F0IHVfdGlsZV91bml0c190b19waXhlbHM7XG5cbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zO1xuXG51bmlmb3JtIG1hdDQgdV9tYXRyaXg7XG51bmlmb3JtIHZlYzIgdV93b3JsZDtcblxudmFyeWluZyB2ZWMyIHZfcG9zX2E7XG52YXJ5aW5nIHZlYzIgdl9wb3NfYjtcbnZhcnlpbmcgdmVjMiB2X3Bvcztcblxudm9pZCBtYWluKCkge1xuICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiB2ZWM0KGFfcG9zLCAwLCAxKTtcbiAgICB2ZWMyIHNjYWxlZF9zaXplX2EgPSB1X3NjYWxlX2EgKiB1X3BhdHRlcm5fc2l6ZV9hO1xuICAgIHZlYzIgc2NhbGVkX3NpemVfYiA9IHVfc2NhbGVfYiAqIHVfcGF0dGVybl9zaXplX2I7XG5cbiAgICAvLyB0aGUgY29ycmVjdCBvZmZzZXQgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZC5cbiAgICAvL1xuICAgIC8vIFRoZSBvZmZzZXQgZGVwZW5kcyBvbiBob3cgbWFueSBwaXhlbHMgYXJlIGJldHdlZW4gdGhlIHdvcmxkIG9yaWdpbiBhbmRcbiAgICAvLyB0aGUgZWRnZSBvZiB0aGUgdGlsZTpcbiAgICAvLyB2ZWMyIG9mZnNldCA9IG1vZChwaXhlbF9jb29yZCwgc2l6ZSlcbiAgICAvL1xuICAgIC8vIEF0IGhpZ2ggem9vbSBsZXZlbHMgdGhlcmUgYXJlIGEgdG9uIG9mIHBpeGVscyBiZXR3ZWVuIHRoZSB3b3JsZCBvcmlnaW5cbiAgICAvLyBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHRpbGUuIFRoZSBnbHNsIHNwZWMgb25seSBndWFyYW50ZWVzIDE2IGJpdHMgb2ZcbiAgICAvLyBwcmVjaXNpb24gZm9yIGhpZ2hwIGZsb2F0cy4gV2UgbmVlZCBtb3JlIHRoYW4gdGhhdC5cbiAgICAvL1xuICAgIC8vIFRoZSBwaXhlbF9jb29yZCBpcyBwYXNzZWQgaW4gYXMgdHdvIDE2IGJpdCB2YWx1ZXM6XG4gICAgLy8gcGl4ZWxfY29vcmRfdXBwZXIgPSBmbG9vcihwaXhlbF9jb29yZCAvIDJeMTYpXG4gICAgLy8gcGl4ZWxfY29vcmRfbG93ZXIgPSBtb2QocGl4ZWxfY29vcmQsIDJeMTYpXG4gICAgLy9cbiAgICAvLyBUaGUgb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgaW4gYSBzZXJpZXMgb2Ygc3RlcHMgdGhhdCBzaG91bGQgcHJlc2VydmUgdGhpcyBwcmVjaXNpb246XG4gICAgdmVjMiBvZmZzZXRfYSA9IG1vZChtb2QobW9kKHVfcGl4ZWxfY29vcmRfdXBwZXIsIHNjYWxlZF9zaXplX2EpICogMjU2LjAsIHNjYWxlZF9zaXplX2EpICogMjU2LjAgKyB1X3BpeGVsX2Nvb3JkX2xvd2VyLCBzY2FsZWRfc2l6ZV9hKTtcbiAgICB2ZWMyIG9mZnNldF9iID0gbW9kKG1vZChtb2QodV9waXhlbF9jb29yZF91cHBlciwgc2NhbGVkX3NpemVfYikgKiAyNTYuMCwgc2NhbGVkX3NpemVfYikgKiAyNTYuMCArIHVfcGl4ZWxfY29vcmRfbG93ZXIsIHNjYWxlZF9zaXplX2IpO1xuXG4gICAgdl9wb3NfYSA9ICh1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzICogYV9wb3MgKyBvZmZzZXRfYSkgLyBzY2FsZWRfc2l6ZV9hO1xuICAgIHZfcG9zX2IgPSAodV90aWxlX3VuaXRzX3RvX3BpeGVscyAqIGFfcG9zICsgb2Zmc2V0X2IpIC8gc2NhbGVkX3NpemVfYjtcblxuICAgIHZfcG9zID0gKGdsX1Bvc2l0aW9uLnh5IC8gZ2xfUG9zaXRpb24udyArIDEuMCkgLyAyLjAgKiB1X3dvcmxkO1xufVxuIgp9LHBhdHRlcm46e2ZyYWdtZW50U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxudW5pZm9ybSBmbG9hdCB1X29wYWNpdHk7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3RsX2E7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2E7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3RsX2I7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2I7XG51bmlmb3JtIGZsb2F0IHVfbWl4O1xuXG51bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO1xuXG52YXJ5aW5nIHZlYzIgdl9wb3NfYTtcbnZhcnlpbmcgdmVjMiB2X3Bvc19iO1xuXG52b2lkIG1haW4oKSB7XG5cbiAgICB2ZWMyIGltYWdlY29vcmQgPSBtb2Qodl9wb3NfYSwgMS4wKTtcbiAgICB2ZWMyIHBvcyA9IG1peCh1X3BhdHRlcm5fdGxfYSwgdV9wYXR0ZXJuX2JyX2EsIGltYWdlY29vcmQpO1xuICAgIHZlYzQgY29sb3IxID0gdGV4dHVyZTJEKHVfaW1hZ2UsIHBvcyk7XG5cbiAgICB2ZWMyIGltYWdlY29vcmRfYiA9IG1vZCh2X3Bvc19iLCAxLjApO1xuICAgIHZlYzIgcG9zMiA9IG1peCh1X3BhdHRlcm5fdGxfYiwgdV9wYXR0ZXJuX2JyX2IsIGltYWdlY29vcmRfYik7XG4gICAgdmVjNCBjb2xvcjIgPSB0ZXh0dXJlMkQodV9pbWFnZSwgcG9zMik7XG5cbiAgICBnbF9GcmFnQ29sb3IgPSBtaXgoY29sb3IxLCBjb2xvcjIsIHVfbWl4KSAqIHVfb3BhY2l0eTtcblxuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wKTtcbiNlbmRpZlxufVxuIix2ZXJ0ZXhTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xudW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9zaXplX2E7XG51bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3NpemVfYjtcbnVuaWZvcm0gdmVjMiB1X3BpeGVsX2Nvb3JkX3VwcGVyO1xudW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfbG93ZXI7XG51bmlmb3JtIGZsb2F0IHVfc2NhbGVfYTtcbnVuaWZvcm0gZmxvYXQgdV9zY2FsZV9iO1xudW5pZm9ybSBmbG9hdCB1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzO1xuXG5hdHRyaWJ1dGUgdmVjMiBhX3BvcztcblxudmFyeWluZyB2ZWMyIHZfcG9zX2E7XG52YXJ5aW5nIHZlYzIgdl9wb3NfYjtcblxudm9pZCBtYWluKCkge1xuICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiB2ZWM0KGFfcG9zLCAwLCAxKTtcbiAgICB2ZWMyIHNjYWxlZF9zaXplX2EgPSB1X3NjYWxlX2EgKiB1X3BhdHRlcm5fc2l6ZV9hO1xuICAgIHZlYzIgc2NhbGVkX3NpemVfYiA9IHVfc2NhbGVfYiAqIHVfcGF0dGVybl9zaXplX2I7XG5cbiAgICAvLyB0aGUgY29ycmVjdCBvZmZzZXQgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZC5cbiAgICAvL1xuICAgIC8vIFRoZSBvZmZzZXQgZGVwZW5kcyBvbiBob3cgbWFueSBwaXhlbHMgYXJlIGJldHdlZW4gdGhlIHdvcmxkIG9yaWdpbiBhbmRcbiAgICAvLyB0aGUgZWRnZSBvZiB0aGUgdGlsZTpcbiAgICAvLyB2ZWMyIG9mZnNldCA9IG1vZChwaXhlbF9jb29yZCwgc2l6ZSlcbiAgICAvL1xuICAgIC8vIEF0IGhpZ2ggem9vbSBsZXZlbHMgdGhlcmUgYXJlIGEgdG9uIG9mIHBpeGVscyBiZXR3ZWVuIHRoZSB3b3JsZCBvcmlnaW5cbiAgICAvLyBhbmQgdGhlIGVkZ2Ugb2YgdGhlIHRpbGUuIFRoZSBnbHNsIHNwZWMgb25seSBndWFyYW50ZWVzIDE2IGJpdHMgb2ZcbiAgICAvLyBwcmVjaXNpb24gZm9yIGhpZ2hwIGZsb2F0cy4gV2UgbmVlZCBtb3JlIHRoYW4gdGhhdC5cbiAgICAvL1xuICAgIC8vIFRoZSBwaXhlbF9jb29yZCBpcyBwYXNzZWQgaW4gYXMgdHdvIDE2IGJpdCB2YWx1ZXM6XG4gICAgLy8gcGl4ZWxfY29vcmRfdXBwZXIgPSBmbG9vcihwaXhlbF9jb29yZCAvIDJeMTYpXG4gICAgLy8gcGl4ZWxfY29vcmRfbG93ZXIgPSBtb2QocGl4ZWxfY29vcmQsIDJeMTYpXG4gICAgLy9cbiAgICAvLyBUaGUgb2Zmc2V0IGlzIGNhbGN1bGF0ZWQgaW4gYSBzZXJpZXMgb2Ygc3RlcHMgdGhhdCBzaG91bGQgcHJlc2VydmUgdGhpcyBwcmVjaXNpb246XG4gICAgdmVjMiBvZmZzZXRfYSA9IG1vZChtb2QobW9kKHVfcGl4ZWxfY29vcmRfdXBwZXIsIHNjYWxlZF9zaXplX2EpICogMjU2LjAsIHNjYWxlZF9zaXplX2EpICogMjU2LjAgKyB1X3BpeGVsX2Nvb3JkX2xvd2VyLCBzY2FsZWRfc2l6ZV9hKTtcbiAgICB2ZWMyIG9mZnNldF9iID0gbW9kKG1vZChtb2QodV9waXhlbF9jb29yZF91cHBlciwgc2NhbGVkX3NpemVfYikgKiAyNTYuMCwgc2NhbGVkX3NpemVfYikgKiAyNTYuMCArIHVfcGl4ZWxfY29vcmRfbG93ZXIsIHNjYWxlZF9zaXplX2IpO1xuXG4gICAgdl9wb3NfYSA9ICh1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzICogYV9wb3MgKyBvZmZzZXRfYSkgLyBzY2FsZWRfc2l6ZV9hO1xuICAgIHZfcG9zX2IgPSAodV90aWxlX3VuaXRzX3RvX3BpeGVscyAqIGFfcG9zICsgb2Zmc2V0X2IpIC8gc2NhbGVkX3NpemVfYjtcbn1cbiJ9LHJhc3Rlcjp7ZnJhZ21lbnRTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTA7XG51bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTE7XG51bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlMDtcbnVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2UxO1xudmFyeWluZyB2ZWMyIHZfcG9zMDtcbnZhcnlpbmcgdmVjMiB2X3BvczE7XG5cbnVuaWZvcm0gZmxvYXQgdV9icmlnaHRuZXNzX2xvdztcbnVuaWZvcm0gZmxvYXQgdV9icmlnaHRuZXNzX2hpZ2g7XG5cbnVuaWZvcm0gZmxvYXQgdV9zYXR1cmF0aW9uX2ZhY3RvcjtcbnVuaWZvcm0gZmxvYXQgdV9jb250cmFzdF9mYWN0b3I7XG51bmlmb3JtIHZlYzMgdV9zcGluX3dlaWdodHM7XG5cbnZvaWQgbWFpbigpIHtcblxuICAgIC8vIHJlYWQgYW5kIGNyb3NzLWZhZGUgY29sb3JzIGZyb20gdGhlIG1haW4gYW5kIHBhcmVudCB0aWxlc1xuICAgIHZlYzQgY29sb3IwID0gdGV4dHVyZTJEKHVfaW1hZ2UwLCB2X3BvczApO1xuICAgIHZlYzQgY29sb3IxID0gdGV4dHVyZTJEKHVfaW1hZ2UxLCB2X3BvczEpO1xuICAgIHZlYzQgY29sb3IgPSBjb2xvcjAgKiB1X29wYWNpdHkwICsgY29sb3IxICogdV9vcGFjaXR5MTtcbiAgICB2ZWMzIHJnYiA9IGNvbG9yLnJnYjtcblxuICAgIC8vIHNwaW5cbiAgICByZ2IgPSB2ZWMzKFxuICAgICAgICBkb3QocmdiLCB1X3NwaW5fd2VpZ2h0cy54eXopLFxuICAgICAgICBkb3QocmdiLCB1X3NwaW5fd2VpZ2h0cy56eHkpLFxuICAgICAgICBkb3QocmdiLCB1X3NwaW5fd2VpZ2h0cy55engpKTtcblxuICAgIC8vIHNhdHVyYXRpb25cbiAgICBmbG9hdCBhdmVyYWdlID0gKGNvbG9yLnIgKyBjb2xvci5nICsgY29sb3IuYikgLyAzLjA7XG4gICAgcmdiICs9IChhdmVyYWdlIC0gcmdiKSAqIHVfc2F0dXJhdGlvbl9mYWN0b3I7XG5cbiAgICAvLyBjb250cmFzdFxuICAgIHJnYiA9IChyZ2IgLSAwLjUpICogdV9jb250cmFzdF9mYWN0b3IgKyAwLjU7XG5cbiAgICAvLyBicmlnaHRuZXNzXG4gICAgdmVjMyB1X2hpZ2hfdmVjID0gdmVjMyh1X2JyaWdodG5lc3NfbG93LCB1X2JyaWdodG5lc3NfbG93LCB1X2JyaWdodG5lc3NfbG93KTtcbiAgICB2ZWMzIHVfbG93X3ZlYyA9IHZlYzModV9icmlnaHRuZXNzX2hpZ2gsIHVfYnJpZ2h0bmVzc19oaWdoLCB1X2JyaWdodG5lc3NfaGlnaCk7XG5cbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KG1peCh1X2hpZ2hfdmVjLCB1X2xvd192ZWMsIHJnYiksIGNvbG9yLmEpO1xuXG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjApO1xuI2VuZGlmXG59XG4iLHZlcnRleFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIG1hdDQgdV9tYXRyaXg7XG51bmlmb3JtIHZlYzIgdV90bF9wYXJlbnQ7XG51bmlmb3JtIGZsb2F0IHVfc2NhbGVfcGFyZW50O1xudW5pZm9ybSBmbG9hdCB1X2J1ZmZlcl9zY2FsZTtcblxuYXR0cmlidXRlIHZlYzIgYV9wb3M7XG5hdHRyaWJ1dGUgdmVjMiBhX3RleHR1cmVfcG9zO1xuXG52YXJ5aW5nIHZlYzIgdl9wb3MwO1xudmFyeWluZyB2ZWMyIHZfcG9zMTtcblxudm9pZCBtYWluKCkge1xuICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiB2ZWM0KGFfcG9zLCAwLCAxKTtcbiAgICB2X3BvczAgPSAoKChhX3RleHR1cmVfcG9zIC8gMzI3NjcuMCkgLSAwLjUpIC8gdV9idWZmZXJfc2NhbGUgKSArIDAuNTtcbiAgICB2X3BvczEgPSAodl9wb3MwICogdV9zY2FsZV9wYXJlbnQpICsgdV90bF9wYXJlbnQ7XG59XG4ifSxpY29uOntmcmFnbWVudFNvdXJjZToiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNlbHNlXG4jZGVmaW5lIGxvd3BcbiNkZWZpbmUgbWVkaXVtcFxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG5cbnVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTtcbnVuaWZvcm0gc2FtcGxlcjJEIHVfZmFkZXRleHR1cmU7XG51bmlmb3JtIGxvd3AgZmxvYXQgdV9vcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzIgdl90ZXg7XG52YXJ5aW5nIHZlYzIgdl9mYWRlX3RleDtcblxudm9pZCBtYWluKCkge1xuICAgIGxvd3AgZmxvYXQgYWxwaGEgPSB0ZXh0dXJlMkQodV9mYWRldGV4dHVyZSwgdl9mYWRlX3RleCkuYSAqIHVfb3BhY2l0eTtcbiAgICBnbF9GcmFnQ29sb3IgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleCkgKiBhbHBoYTtcblxuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMS4wKTtcbiNlbmRpZlxufVxuIix2ZXJ0ZXhTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxuYXR0cmlidXRlIHZlYzIgYV9wb3M7XG5hdHRyaWJ1dGUgdmVjMiBhX29mZnNldDtcbmF0dHJpYnV0ZSB2ZWMyIGFfdGV4dHVyZV9wb3M7XG5hdHRyaWJ1dGUgdmVjNCBhX2RhdGE7XG5cblxuLy8gbWF0cml4IGlzIGZvciB0aGUgdmVydGV4IHBvc2l0aW9uLlxudW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xuXG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV96b29tO1xudW5pZm9ybSBib29sIHVfcm90YXRlX3dpdGhfbWFwO1xudW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTtcblxudW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTtcblxudmFyeWluZyB2ZWMyIHZfdGV4O1xudmFyeWluZyB2ZWMyIHZfZmFkZV90ZXg7XG5cbnZvaWQgbWFpbigpIHtcbiAgICB2ZWMyIGFfdGV4ID0gYV90ZXh0dXJlX3Bvcy54eTtcbiAgICBtZWRpdW1wIGZsb2F0IGFfbGFiZWxtaW56b29tID0gYV9kYXRhWzBdO1xuICAgIG1lZGl1bXAgdmVjMiBhX3pvb20gPSBhX2RhdGEucHE7XG4gICAgbWVkaXVtcCBmbG9hdCBhX21pbnpvb20gPSBhX3pvb21bMF07XG4gICAgbWVkaXVtcCBmbG9hdCBhX21heHpvb20gPSBhX3pvb21bMV07XG5cbiAgICAvLyB1X3pvb20gaXMgdGhlIGN1cnJlbnQgem9vbSBsZXZlbCBhZGp1c3RlZCBmb3IgdGhlIGNoYW5nZSBpbiBmb250IHNpemVcbiAgICBtZWRpdW1wIGZsb2F0IHogPSAyLjAgLSBzdGVwKGFfbWluem9vbSwgdV96b29tKSAtICgxLjAgLSBzdGVwKGFfbWF4em9vbSwgdV96b29tKSk7XG5cbiAgICB2ZWMyIGV4dHJ1ZGUgPSB1X2V4dHJ1ZGVfc2NhbGUgKiAoYV9vZmZzZXQgLyA2NC4wKTtcbiAgICBpZiAodV9yb3RhdGVfd2l0aF9tYXApIHtcbiAgICAgICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MgKyBleHRydWRlLCAwLCAxKTtcbiAgICAgICAgZ2xfUG9zaXRpb24ueiArPSB6ICogZ2xfUG9zaXRpb24udztcbiAgICB9IGVsc2Uge1xuICAgICAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogdmVjNChhX3BvcywgMCwgMSkgKyB2ZWM0KGV4dHJ1ZGUsIDAsIDApO1xuICAgIH1cblxuICAgIHZfdGV4ID0gYV90ZXggLyB1X3RleHNpemU7XG4gICAgdl9mYWRlX3RleCA9IHZlYzIoYV9sYWJlbG1pbnpvb20gLyAyNTUuMCwgMC4wKTtcbn1cbiJ9LHNkZjp7ZnJhZ21lbnRTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2RlZmluZSBsb3dwXG4jZGVmaW5lIG1lZGl1bXBcbiNkZWZpbmUgaGlnaHBcbiNlbmRpZlxuXG51bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7XG51bmlmb3JtIHNhbXBsZXIyRCB1X2ZhZGV0ZXh0dXJlO1xudW5pZm9ybSBsb3dwIHZlYzQgdV9jb2xvcjtcbnVuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7XG51bmlmb3JtIGxvd3AgZmxvYXQgdV9idWZmZXI7XG51bmlmb3JtIGxvd3AgZmxvYXQgdV9nYW1tYTtcblxudmFyeWluZyB2ZWMyIHZfdGV4O1xudmFyeWluZyB2ZWMyIHZfZmFkZV90ZXg7XG52YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgICBsb3dwIGZsb2F0IGRpc3QgPSB0ZXh0dXJlMkQodV90ZXh0dXJlLCB2X3RleCkuYTtcbiAgICBsb3dwIGZsb2F0IGZhZGVfYWxwaGEgPSB0ZXh0dXJlMkQodV9mYWRldGV4dHVyZSwgdl9mYWRlX3RleCkuYTtcbiAgICBsb3dwIGZsb2F0IGdhbW1hID0gdV9nYW1tYSAqIHZfZ2FtbWFfc2NhbGU7XG4gICAgbG93cCBmbG9hdCBhbHBoYSA9IHNtb290aHN0ZXAodV9idWZmZXIgLSBnYW1tYSwgdV9idWZmZXIgKyBnYW1tYSwgZGlzdCkgKiBmYWRlX2FscGhhO1xuXG4gICAgZ2xfRnJhZ0NvbG9yID0gdV9jb2xvciAqIChhbHBoYSAqIHVfb3BhY2l0eSk7XG5cbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbiAgICBnbF9GcmFnQ29sb3IgPSB2ZWM0KDEuMCk7XG4jZW5kaWZcbn1cbiIsdmVydGV4U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbHNlXG4jZGVmaW5lIGxvd3BcbiNkZWZpbmUgbWVkaXVtcFxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG5cbmNvbnN0IGZsb2F0IFBJID0gMy4xNDE1OTI2NTM1ODk3OTM7XG5cbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zO1xuYXR0cmlidXRlIHZlYzIgYV9vZmZzZXQ7XG5hdHRyaWJ1dGUgdmVjMiBhX3RleHR1cmVfcG9zO1xuYXR0cmlidXRlIHZlYzQgYV9kYXRhO1xuXG5cbi8vIG1hdHJpeCBpcyBmb3IgdGhlIHZlcnRleCBwb3NpdGlvbi5cbnVuaWZvcm0gbWF0NCB1X21hdHJpeDtcblxudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfem9vbTtcbnVuaWZvcm0gYm9vbCB1X3JvdGF0ZV93aXRoX21hcDtcbnVuaWZvcm0gYm9vbCB1X3BpdGNoX3dpdGhfbWFwO1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfcGl0Y2g7XG51bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9iZWFyaW5nO1xudW5pZm9ybSBtZWRpdW1wIGZsb2F0IHVfYXNwZWN0X3JhdGlvO1xudW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTtcblxudW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTtcblxudmFyeWluZyB2ZWMyIHZfdGV4O1xudmFyeWluZyB2ZWMyIHZfZmFkZV90ZXg7XG52YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgICB2ZWMyIGFfdGV4ID0gYV90ZXh0dXJlX3Bvcy54eTtcbiAgICBtZWRpdW1wIGZsb2F0IGFfbGFiZWxtaW56b29tID0gYV9kYXRhWzBdO1xuICAgIG1lZGl1bXAgdmVjMiBhX3pvb20gPSBhX2RhdGEucHE7XG4gICAgbWVkaXVtcCBmbG9hdCBhX21pbnpvb20gPSBhX3pvb21bMF07XG4gICAgbWVkaXVtcCBmbG9hdCBhX21heHpvb20gPSBhX3pvb21bMV07XG5cbiAgICAvLyB1X3pvb20gaXMgdGhlIGN1cnJlbnQgem9vbSBsZXZlbCBhZGp1c3RlZCBmb3IgdGhlIGNoYW5nZSBpbiBmb250IHNpemVcbiAgICBtZWRpdW1wIGZsb2F0IHogPSAyLjAgLSBzdGVwKGFfbWluem9vbSwgdV96b29tKSAtICgxLjAgLSBzdGVwKGFfbWF4em9vbSwgdV96b29tKSk7XG5cbiAgICAvLyBwaXRjaC1hbGlnbm1lbnQ6IG1hcFxuICAgIC8vIHJvdGF0aW9uLWFsaWdubWVudDogbWFwIHwgdmlld3BvcnRcbiAgICBpZiAodV9waXRjaF93aXRoX21hcCkge1xuICAgICAgICBsb3dwIGZsb2F0IGFuZ2xlID0gdV9yb3RhdGVfd2l0aF9tYXAgPyAoYV9kYXRhWzFdIC8gMjU2LjAgKiAyLjAgKiBQSSkgOiB1X2JlYXJpbmc7XG4gICAgICAgIGxvd3AgZmxvYXQgYXNpbiA9IHNpbihhbmdsZSk7XG4gICAgICAgIGxvd3AgZmxvYXQgYWNvcyA9IGNvcyhhbmdsZSk7XG4gICAgICAgIG1hdDIgUm90YXRpb25NYXRyaXggPSBtYXQyKGFjb3MsIGFzaW4sIC0xLjAgKiBhc2luLCBhY29zKTtcbiAgICAgICAgdmVjMiBvZmZzZXQgPSBSb3RhdGlvbk1hdHJpeCAqIGFfb2Zmc2V0O1xuICAgICAgICB2ZWMyIGV4dHJ1ZGUgPSB1X2V4dHJ1ZGVfc2NhbGUgKiAob2Zmc2V0IC8gNjQuMCk7XG4gICAgICAgIGdsX1Bvc2l0aW9uID0gdV9tYXRyaXggKiB2ZWM0KGFfcG9zICsgZXh0cnVkZSwgMCwgMSk7XG4gICAgICAgIGdsX1Bvc2l0aW9uLnogKz0geiAqIGdsX1Bvc2l0aW9uLnc7XG4gICAgLy8gcGl0Y2gtYWxpZ25tZW50OiB2aWV3cG9ydFxuICAgIC8vIHJvdGF0aW9uLWFsaWdubWVudDogbWFwXG4gICAgfSBlbHNlIGlmICh1X3JvdGF0ZV93aXRoX21hcCkge1xuICAgICAgICAvLyBmb3Jlc2hvcnRlbmluZyBmYWN0b3IgdG8gYXBwbHkgb24gcGl0Y2hlZCBtYXBzXG4gICAgICAgIC8vIGFzIGEgbGFiZWwgZ29lcyBmcm9tIGhvcml6b250YWwgPD0+IHZlcnRpY2FsIGluIGFuZ2xlXG4gICAgICAgIC8vIGl0IGdvZXMgZnJvbSAwJSBmb3Jlc2hvcnRlbmluZyB0byB1cCB0byBhcm91bmQgNzAlIGZvcmVzaG9ydGVuaW5nXG4gICAgICAgIGxvd3AgZmxvYXQgcGl0Y2hmYWN0b3IgPSAxLjAgLSBjb3ModV9waXRjaCAqIHNpbih1X3BpdGNoICogMC43NSkpO1xuXG4gICAgICAgIGxvd3AgZmxvYXQgbGluZWFuZ2xlID0gYV9kYXRhWzFdIC8gMjU2LjAgKiAyLjAgKiBQSTtcblxuICAgICAgICAvLyB1c2UgdGhlIGxpbmVhbmdsZSB0byBwb3NpdGlvbiBwb2ludHMgYSxiIGFsb25nIHRoZSBsaW5lXG4gICAgICAgIC8vIHByb2plY3QgdGhlIHBvaW50cyBhbmQgY2FsY3VsYXRlIHRoZSBsYWJlbCBhbmdsZSBpbiBwcm9qZWN0ZWQgc3BhY2VcbiAgICAgICAgLy8gdGhpcyBjYWxjdWxhdGlvbiBhbGxvd3MgbGFiZWxzIHRvIGJlIHJlbmRlcmVkIHVuc2tld2VkIG9uIHBpdGNoZWQgbWFwc1xuICAgICAgICB2ZWM0IGEgPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MsIDAsIDEpO1xuICAgICAgICB2ZWM0IGIgPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MgKyB2ZWMyKGNvcyhsaW5lYW5nbGUpLHNpbihsaW5lYW5nbGUpKSwgMCwgMSk7XG4gICAgICAgIGxvd3AgZmxvYXQgYW5nbGUgPSBhdGFuKChiWzFdL2JbM10gLSBhWzFdL2FbM10pL3VfYXNwZWN0X3JhdGlvLCBiWzBdL2JbM10gLSBhWzBdL2FbM10pO1xuICAgICAgICBsb3dwIGZsb2F0IGFzaW4gPSBzaW4oYW5nbGUpO1xuICAgICAgICBsb3dwIGZsb2F0IGFjb3MgPSBjb3MoYW5nbGUpO1xuICAgICAgICBtYXQyIFJvdGF0aW9uTWF0cml4ID0gbWF0MihhY29zLCAtMS4wICogYXNpbiwgYXNpbiwgYWNvcyk7XG5cbiAgICAgICAgdmVjMiBvZmZzZXQgPSBSb3RhdGlvbk1hdHJpeCAqICh2ZWMyKCgxLjAtcGl0Y2hmYWN0b3IpKyhwaXRjaGZhY3Rvcipjb3MoYW5nbGUqMi4wKSksIDEuMCkgKiBhX29mZnNldCk7XG4gICAgICAgIHZlYzIgZXh0cnVkZSA9IHVfZXh0cnVkZV9zY2FsZSAqIChvZmZzZXQgLyA2NC4wKTtcbiAgICAgICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MsIDAsIDEpICsgdmVjNChleHRydWRlLCAwLCAwKTtcbiAgICAgICAgZ2xfUG9zaXRpb24ueiArPSB6ICogZ2xfUG9zaXRpb24udztcbiAgICAvLyBwaXRjaC1hbGlnbm1lbnQ6IHZpZXdwb3J0XG4gICAgLy8gcm90YXRpb24tYWxpZ25tZW50OiB2aWV3cG9ydFxuICAgIH0gZWxzZSB7XG4gICAgICAgIHZlYzIgZXh0cnVkZSA9IHVfZXh0cnVkZV9zY2FsZSAqIChhX29mZnNldCAvIDY0LjApO1xuICAgICAgICBnbF9Qb3NpdGlvbiA9IHVfbWF0cml4ICogdmVjNChhX3BvcywgMCwgMSkgKyB2ZWM0KGV4dHJ1ZGUsIDAsIDApO1xuICAgIH1cblxuICAgIHZfZ2FtbWFfc2NhbGUgPSAoZ2xfUG9zaXRpb24udyAtIDAuNSk7XG5cbiAgICB2X3RleCA9IGFfdGV4IC8gdV90ZXhzaXplO1xuICAgIHZfZmFkZV90ZXggPSB2ZWMyKGFfbGFiZWxtaW56b29tIC8gMjU1LjAsIDAuMCk7XG59XG4ifSxjb2xsaXNpb25ib3g6e2ZyYWdtZW50U291cmNlOiIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxudW5pZm9ybSBmbG9hdCB1X3pvb207XG51bmlmb3JtIGZsb2F0IHVfbWF4em9vbTtcblxudmFyeWluZyBmbG9hdCB2X21heF96b29tO1xudmFyeWluZyBmbG9hdCB2X3BsYWNlbWVudF96b29tO1xuXG52b2lkIG1haW4oKSB7XG5cbiAgICBmbG9hdCBhbHBoYSA9IDAuNTtcblxuICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAxLjAsIDAuMCwgMS4wKSAqIGFscGhhO1xuXG4gICAgaWYgKHZfcGxhY2VtZW50X3pvb20gPiB1X3pvb20pIHtcbiAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgxLjAsIDAuMCwgMC4wLCAxLjApICogYWxwaGE7XG4gICAgfVxuXG4gICAgaWYgKHVfem9vbSA+PSB2X21heF96b29tKSB7XG4gICAgICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQoMC4wLCAwLjAsIDAuMCwgMS4wKSAqIGFscGhhICogMC4yNTtcbiAgICB9XG5cbiAgICBpZiAodl9wbGFjZW1lbnRfem9vbSA+PSB1X21heHpvb20pIHtcbiAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCgwLjAsIDAuMCwgMS4wLCAxLjApICogYWxwaGEgKiAwLjI7XG4gICAgfVxufVxuIix2ZXJ0ZXhTb3VyY2U6IiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2Vsc2VcbiNkZWZpbmUgbG93cFxuI2RlZmluZSBtZWRpdW1wXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcblxuYXR0cmlidXRlIHZlYzIgYV9wb3M7XG5hdHRyaWJ1dGUgdmVjMiBhX2V4dHJ1ZGU7XG5hdHRyaWJ1dGUgdmVjMiBhX2RhdGE7XG5cbnVuaWZvcm0gbWF0NCB1X21hdHJpeDtcbnVuaWZvcm0gZmxvYXQgdV9zY2FsZTtcblxudmFyeWluZyBmbG9hdCB2X21heF96b29tO1xudmFyeWluZyBmbG9hdCB2X3BsYWNlbWVudF96b29tO1xuXG52b2lkIG1haW4oKSB7XG4gICAgZ2xfUG9zaXRpb24gPSB1X21hdHJpeCAqIHZlYzQoYV9wb3MgKyBhX2V4dHJ1ZGUgLyB1X3NjYWxlLCAwLjAsIDEuMCk7XG5cbiAgICB2X21heF96b29tID0gYV9kYXRhLng7XG4gICAgdl9wbGFjZW1lbnRfem9vbSA9IGFfZGF0YS55O1xufVxuIn19LGUuZXhwb3J0cy51dGlsPSJmbG9hdCBldmFsdWF0ZV96b29tX2Z1bmN0aW9uXzEoY29uc3QgdmVjNCB2YWx1ZXMsIGNvbnN0IGZsb2F0IHQpIHtcbiAgICBpZiAodCA8IDEuMCkge1xuICAgICAgICByZXR1cm4gbWl4KHZhbHVlc1swXSwgdmFsdWVzWzFdLCB0KTtcbiAgICB9IGVsc2UgaWYgKHQgPCAyLjApIHtcbiAgICAgICAgcmV0dXJuIG1peCh2YWx1ZXNbMV0sIHZhbHVlc1syXSwgdCAtIDEuMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG1peCh2YWx1ZXNbMl0sIHZhbHVlc1szXSwgdCAtIDIuMCk7XG4gICAgfVxufVxudmVjNCBldmFsdWF0ZV96b29tX2Z1bmN0aW9uXzQoY29uc3QgdmVjNCB2YWx1ZTAsIGNvbnN0IHZlYzQgdmFsdWUxLCBjb25zdCB2ZWM0IHZhbHVlMiwgY29uc3QgdmVjNCB2YWx1ZTMsIGNvbnN0IGZsb2F0IHQpIHtcbiAgICBpZiAodCA8IDEuMCkge1xuICAgICAgICByZXR1cm4gbWl4KHZhbHVlMCwgdmFsdWUxLCB0KTtcbiAgICB9IGVsc2UgaWYgKHQgPCAyLjApIHtcbiAgICAgICAgcmV0dXJuIG1peCh2YWx1ZTEsIHZhbHVlMiwgdCAtIDEuMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG1peCh2YWx1ZTIsIHZhbHVlMywgdCAtIDIuMCk7XG4gICAgfVxufVxuIn0se3BhdGg6NTh9XSwzOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMubWVzc2FnZT0odD90KyI6ICI6IiIpK2kuYXBwbHkoaSxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMikpLG51bGwhPT1lJiZ2b2lkIDAhPT1lJiZlLl9fbGluZV9fJiYodGhpcy5saW5lPWUuX19saW5lX18pfXZhciBpPXQoInV0aWwiKS5mb3JtYXQ7ZS5leHBvcnRzPW59LHt1dGlsOjY3fV0sMzk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgcj1hcmd1bWVudHNbZV07Zm9yKHZhciBuIGluIHIpdFtuXT1yW25dfXJldHVybiB0fX0se31dLDM5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBOdW1iZXI/Im51bWJlciI6dCBpbnN0YW5jZW9mIFN0cmluZz8ic3RyaW5nIjp0IGluc3RhbmNlb2YgQm9vbGVhbj8iYm9vbGVhbiI6QXJyYXkuaXNBcnJheSh0KT8iYXJyYXkiOm51bGw9PT10PyJudWxsIjp0eXBlb2YgdH19LHt9XSwzOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgTnVtYmVyfHx0IGluc3RhbmNlb2YgU3RyaW5nfHx0IGluc3RhbmNlb2YgQm9vbGVhbj90LnZhbHVlT2YoKTp0fX0se31dLDM5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9lcnJvci92YWxpZGF0aW9uX2Vycm9yIiksaT10KCIuLi91dGlsL2dldF90eXBlIiksbz10KCIuLi91dGlsL2V4dGVuZCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgcj10KCIuL3ZhbGlkYXRlX2Z1bmN0aW9uIiksYT10KCIuL3ZhbGlkYXRlX29iamVjdCIpLHM9eyIqIjpmdW5jdGlvbigpe3JldHVybltdfSxhcnJheTp0KCIuL3ZhbGlkYXRlX2FycmF5IiksImJvb2xlYW4iOnQoIi4vdmFsaWRhdGVfYm9vbGVhbiIpLG51bWJlcjp0KCIuL3ZhbGlkYXRlX251bWJlciIpLGNvbG9yOnQoIi4vdmFsaWRhdGVfY29sb3IiKSxjb25zdGFudHM6dCgiLi92YWxpZGF0ZV9jb25zdGFudHMiKSwiZW51bSI6dCgiLi92YWxpZGF0ZV9lbnVtIiksZmlsdGVyOnQoIi4vdmFsaWRhdGVfZmlsdGVyIiksImZ1bmN0aW9uIjp0KCIuL3ZhbGlkYXRlX2Z1bmN0aW9uIiksbGF5ZXI6dCgiLi92YWxpZGF0ZV9sYXllciIpLG9iamVjdDp0KCIuL3ZhbGlkYXRlX29iamVjdCIpLHNvdXJjZTp0KCIuL3ZhbGlkYXRlX3NvdXJjZSIpLHN0cmluZzp0KCIuL3ZhbGlkYXRlX3N0cmluZyIpfSxsPWUudmFsdWUsdT1lLnZhbHVlU3BlYyxjPWUua2V5LGg9ZS5zdHlsZVNwZWMsZj1lLnN0eWxlO2lmKCJzdHJpbmciPT09aShsKSYmIkAiPT09bFswXSl7aWYoaC4kdmVyc2lvbj43KXJldHVybltuZXcgbihjLGwsImNvbnN0YW50cyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2OCIpXTtpZighKGwgaW4gZi5jb25zdGFudHMpKXJldHVybltuZXcgbihjLGwsJ2NvbnN0YW50ICIlcyIgbm90IGZvdW5kJyxsKV07ZT1vKHt9LGUse3ZhbHVlOmYuY29uc3RhbnRzW2xdfSl9cmV0dXJuIHUuZnVuY3Rpb24mJiJvYmplY3QiPT09aShsKT9yKGUpOnUudHlwZSYmc1t1LnR5cGVdP3NbdS50eXBlXShlKTphKG8oe30sZSx7dmFsdWVTcGVjOnUudHlwZT9oW3UudHlwZV06dX0pKX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuLi91dGlsL2V4dGVuZCI6Mzk2LCIuLi91dGlsL2dldF90eXBlIjozOTcsIi4vdmFsaWRhdGVfYXJyYXkiOjQwMCwiLi92YWxpZGF0ZV9ib29sZWFuIjo0MDEsIi4vdmFsaWRhdGVfY29sb3IiOjQwMiwiLi92YWxpZGF0ZV9jb25zdGFudHMiOjQwMywiLi92YWxpZGF0ZV9lbnVtIjo0MDQsIi4vdmFsaWRhdGVfZmlsdGVyIjo0MDUsIi4vdmFsaWRhdGVfZnVuY3Rpb24iOjQwNiwiLi92YWxpZGF0ZV9sYXllciI6NDA4LCIuL3ZhbGlkYXRlX251bWJlciI6NDEwLCIuL3ZhbGlkYXRlX29iamVjdCI6NDExLCIuL3ZhbGlkYXRlX3NvdXJjZSI6NDEzLCIuL3ZhbGlkYXRlX3N0cmluZyI6NDE0fV0sNDAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWwvZ2V0X3R5cGUiKSxpPXQoIi4vdmFsaWRhdGUiKSxvPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC52YWx1ZSxyPXQudmFsdWVTcGVjLGE9dC5zdHlsZSxzPXQuc3R5bGVTcGVjLGw9dC5rZXksdT10LmFycmF5RWxlbWVudFZhbGlkYXRvcnx8aTtpZigiYXJyYXkiIT09bihlKSlyZXR1cm5bbmV3IG8obCxlLCJhcnJheSBleHBlY3RlZCwgJXMgZm91bmQiLG4oZSkpXTtpZihyLmxlbmd0aCYmZS5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm5bbmV3IG8obCxlLCJhcnJheSBsZW5ndGggJWQgZXhwZWN0ZWQsIGxlbmd0aCAlZCBmb3VuZCIsci5sZW5ndGgsZS5sZW5ndGgpXTtpZihyWyJtaW4tbGVuZ3RoIl0mJmUubGVuZ3RoPHJbIm1pbi1sZW5ndGgiXSlyZXR1cm5bbmV3IG8obCxlLCJhcnJheSBsZW5ndGggYXQgbGVhc3QgJWQgZXhwZWN0ZWQsIGxlbmd0aCAlZCBmb3VuZCIsclsibWluLWxlbmd0aCJdLGUubGVuZ3RoKV07dmFyIGM9e3R5cGU6ci52YWx1ZX07cy4kdmVyc2lvbjw3JiYoYy5mdW5jdGlvbj1yLmZ1bmN0aW9uKSwib2JqZWN0Ij09PW4oci52YWx1ZSkmJihjPXIudmFsdWUpO2Zvcih2YXIgaD1bXSxmPTA7ZjxlLmxlbmd0aDtmKyspaD1oLmNvbmNhdCh1KHthcnJheTplLGFycmF5SW5kZXg6Zix2YWx1ZTplW2ZdLHZhbHVlU3BlYzpjLHN0eWxlOmEsc3R5bGVTcGVjOnMsa2V5OmwrIlsiK2YrIl0ifSkpO3JldHVybiBofX0seyIuLi9lcnJvci92YWxpZGF0aW9uX2Vycm9yIjozOTUsIi4uL3V0aWwvZ2V0X3R5cGUiOjM5NywiLi92YWxpZGF0ZSI6Mzk5fV0sNDAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWwvZ2V0X3R5cGUiKSxpPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC52YWx1ZSxyPXQua2V5LG89bihlKTtyZXR1cm4iYm9vbGVhbiIhPT1vP1tuZXcgaShyLGUsImJvb2xlYW4gZXhwZWN0ZWQsICVzIGZvdW5kIixvKV06W119fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi4vdXRpbC9nZXRfdHlwZSI6Mzk3fV0sNDAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKSxpPXQoIi4uL3V0aWwvZ2V0X3R5cGUiKSxvPXQoImNzc2NvbG9ycGFyc2VyIikucGFyc2VDU1NDb2xvcjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLGE9aShyKTtyZXR1cm4ic3RyaW5nIiE9PWE/W25ldyBuKGUsciwiY29sb3IgZXhwZWN0ZWQsICVzIGZvdW5kIixhKV06bnVsbD09PW8ocik/W25ldyBuKGUsciwnY29sb3IgZXhwZWN0ZWQsICIlcyIgZm91bmQnLHIpXTpbXX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuLi91dGlsL2dldF90eXBlIjozOTcsY3NzY29sb3JwYXJzZXI6MzY4fV0sNDAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKSxpPXQoIi4uL3V0aWwvZ2V0X3R5cGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG89dC5zdHlsZVNwZWM7aWYoby4kdmVyc2lvbj43KXJldHVybiByP1tuZXcgbihlLHIsImNvbnN0YW50cyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiB2OCIpXTpbXTt2YXIgYT1pKHIpO2lmKCJvYmplY3QiIT09YSlyZXR1cm5bbmV3IG4oZSxyLCJvYmplY3QgZXhwZWN0ZWQsICVzIGZvdW5kIixhKV07dmFyIHM9W107Zm9yKHZhciBsIGluIHIpIkAiIT09bFswXSYmcy5wdXNoKG5ldyBuKGUrIi4iK2wscltsXSwnY29uc3RhbnRzIG11c3Qgc3RhcnQgd2l0aCAiQCInKSk7cmV0dXJuIHN9fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi4vdXRpbC9nZXRfdHlwZSI6Mzk3fV0sNDA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKSxpPXQoIi4uL3V0aWwvdW5idW5kbGVfanNvbmxpbnQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG89dC52YWx1ZVNwZWMsYT1bXTtyZXR1cm4tMT09PW8udmFsdWVzLmluZGV4T2YoaShyKSkmJmEucHVzaChuZXcgbihlLHIsImV4cGVjdGVkIG9uZSBvZiBbJXNdLCAlcyBmb3VuZCIsby52YWx1ZXMuam9pbigiLCAiKSxyKSksYX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuLi91dGlsL3VuYnVuZGxlX2pzb25saW50IjozOTh9XSw0MDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciIpLGk9dCgiLi92YWxpZGF0ZV9lbnVtIiksbz10KCIuLi91dGlsL2dldF90eXBlIiksYT10KCIuLi91dGlsL3VuYnVuZGxlX2pzb25saW50Iik7ZS5leHBvcnRzPWZ1bmN0aW9uIHModCl7dmFyIGUscj10LnZhbHVlLGw9dC5rZXksdT10LnN0eWxlU3BlYyxjPVtdO2lmKCJhcnJheSIhPT1vKHIpKXJldHVybltuZXcgbihsLHIsImFycmF5IGV4cGVjdGVkLCAlcyBmb3VuZCIsbyhyKSldO2lmKHIubGVuZ3RoPDEpcmV0dXJuW25ldyBuKGwsciwiZmlsdGVyIGFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCAxIGVsZW1lbnQiKV07c3dpdGNoKGM9Yy5jb25jYXQoaSh7a2V5OmwrIlswXSIsdmFsdWU6clswXSx2YWx1ZVNwZWM6dS5maWx0ZXJfb3BlcmF0b3Isc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWN9KSksYShyWzBdKSl7Y2FzZSI8IjpjYXNlIjw9IjpjYXNlIj4iOmNhc2UiPj0iOnIubGVuZ3RoPj0yJiYiJHR5cGUiPT1yWzFdJiZjLnB1c2gobmV3IG4obCxyLCciJHR5cGUiIGNhbm5vdCBiZSB1c2Ugd2l0aCBvcGVyYXRvciAiJXMiJyxyWzBdKSk7Y2FzZSI9PSI6Y2FzZSIhPSI6MyE9ci5sZW5ndGgmJmMucHVzaChuZXcgbihsLHIsJ2ZpbHRlciBhcnJheSBmb3Igb3BlcmF0b3IgIiVzIiBtdXN0IGhhdmUgMyBlbGVtZW50cycsclswXSkpO2Nhc2UiaW4iOmNhc2UiIWluIjpyLmxlbmd0aD49MiYmKGU9byhyWzFdKSwic3RyaW5nIiE9PWU/Yy5wdXNoKG5ldyBuKGwrIlsxXSIsclsxXSwic3RyaW5nIGV4cGVjdGVkLCAlcyBmb3VuZCIsZSkpOiJAIj09PXJbMV1bMF0mJmMucHVzaChuZXcgbihsKyJbMV0iLHJbMV0sImZpbHRlciBrZXkgY2Fubm90IGJlIGEgY29uc3RhbnQiKSkpO2Zvcih2YXIgaD0yO2g8ci5sZW5ndGg7aCsrKWU9byhyW2hdKSwiJHR5cGUiPT1yWzFdP2M9Yy5jb25jYXQoaSh7a2V5OmwrIlsiK2grIl0iLHZhbHVlOnJbaF0sdmFsdWVTcGVjOnUuZ2VvbWV0cnlfdHlwZSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30pKToic3RyaW5nIj09PWUmJiJAIj09PXJbaF1bMF0/Yy5wdXNoKG5ldyBuKGwrIlsiK2grIl0iLHJbaF0sImZpbHRlciB2YWx1ZSBjYW5ub3QgYmUgYSBjb25zdGFudCIpKToic3RyaW5nIiE9PWUmJiJudW1iZXIiIT09ZSYmImJvb2xlYW4iIT09ZSYmYy5wdXNoKG5ldyBuKGwrIlsiK2grIl0iLHJbaF0sInN0cmluZywgbnVtYmVyLCBvciBib29sZWFuIGV4cGVjdGVkLCAlcyBmb3VuZCIsZSkpO2JyZWFrO2Nhc2UiYW55IjpjYXNlImFsbCI6Y2FzZSJub25lIjpmb3IoaD0xO2g8ci5sZW5ndGg7aCsrKWM9Yy5jb25jYXQocyh7a2V5OmwrIlsiK2grIl0iLHZhbHVlOnJbaF0sc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWN9KSk7YnJlYWs7Y2FzZSJoYXMiOmNhc2UiIWhhcyI6ZT1vKHJbMV0pLDIhPT1yLmxlbmd0aD9jLnB1c2gobmV3IG4obCxyLCdmaWx0ZXIgYXJyYXkgZm9yICIlcyIgb3BlcmF0b3IgbXVzdCBoYXZlIDIgZWxlbWVudHMnLHJbMF0pKToic3RyaW5nIiE9PWU/Yy5wdXNoKG5ldyBuKGwrIlsxXSIsclsxXSwic3RyaW5nIGV4cGVjdGVkLCAlcyBmb3VuZCIsZSkpOiJAIj09PXJbMV1bMF0mJmMucHVzaChuZXcgbihsKyJbMV0iLHJbMV0sImZpbHRlciBrZXkgY2Fubm90IGJlIGEgY29uc3RhbnQiKSl9cmV0dXJuIGN9fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi4vdXRpbC9nZXRfdHlwZSI6Mzk3LCIuLi91dGlsL3VuYnVuZGxlX2pzb25saW50IjozOTgsIi4vdmFsaWRhdGVfZW51bSI6NDA0fV0sNDA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKSxpPXQoIi4uL3V0aWwvZ2V0X3R5cGUiKSxvPXQoIi4vdmFsaWRhdGUiKSxhPXQoIi4vdmFsaWRhdGVfb2JqZWN0Iikscz10KCIuL3ZhbGlkYXRlX2FycmF5IiksbD10KCIuL3ZhbGlkYXRlX251bWJlciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPVtdLG89dC52YWx1ZTtyZXR1cm4gZT1lLmNvbmNhdChzKHtrZXk6dC5rZXksdmFsdWU6byx2YWx1ZVNwZWM6dC52YWx1ZVNwZWMsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsYXJyYXlFbGVtZW50VmFsaWRhdG9yOnJ9KSksImFycmF5Ij09PWkobykmJjA9PT1vLmxlbmd0aCYmZS5wdXNoKG5ldyBuKHQua2V5LG8sImFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgc3RvcCIpKSxlfWZ1bmN0aW9uIHIodCl7dmFyIGU9W10scj10LnZhbHVlLHM9dC5rZXk7aWYoImFycmF5IiE9PWkocikpcmV0dXJuW25ldyBuKHMsciwiYXJyYXkgZXhwZWN0ZWQsICVzIGZvdW5kIixpKHIpKV07aWYoMiE9PXIubGVuZ3RoKXJldHVybltuZXcgbihzLHIsImFycmF5IGxlbmd0aCAlZCBleHBlY3RlZCwgbGVuZ3RoICVkIGZvdW5kIiwyLHIubGVuZ3RoKV07dmFyIGY9aShyWzBdKTtpZihjfHwoYz1mKSxmIT09YylyZXR1cm5bbmV3IG4ocyxyLCIlcyBzdG9wIGtleSB0eXBlIG11c3QgbWF0Y2ggcHJldmlvdXMgc3RvcCBrZXkgdHlwZSAlcyIsZixjKV07aWYoIm9iamVjdCI9PT1mKXtpZih2b2lkIDA9PT1yWzBdLnpvb20pcmV0dXJuW25ldyBuKHMsciwib2JqZWN0IHN0b3Aga2V5IG11c3QgaGF2ZSB6b29tIildO2lmKHZvaWQgMD09PXJbMF0udmFsdWUpcmV0dXJuW25ldyBuKHMsciwib2JqZWN0IHN0b3Aga2V5IG11c3QgaGF2ZSB2YWx1ZSIpXTtlPWUuY29uY2F0KGEoe2tleTpzKyJbMF0iLHZhbHVlOnJbMF0sdmFsdWVTcGVjOnt6b29tOnt9fSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlYyxvYmplY3RFbGVtZW50VmFsaWRhdG9yczp7em9vbTpsLHZhbHVlOnV9fSkpfWVsc2UgZT1lLmNvbmNhdCgocD9sOnUpKHtrZXk6cysiWzBdIix2YWx1ZTpyWzBdLHZhbHVlU3BlYzp7fSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30pKTtyZXR1cm4gZT1lLmNvbmNhdChvKHtrZXk6cysiWzFdIix2YWx1ZTpyWzFdLHZhbHVlU3BlYzpoLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSkpLCJudW1iZXIiPT09aShyWzBdKSYmKCJwaWVjZXdpc2UtY29uc3RhbnQiPT09aC5mdW5jdGlvbiYmclswXSUxIT09MCYmZS5wdXNoKG5ldyBuKHMrIlswXSIsclswXSwiem9vbSBsZXZlbCBmb3IgcGllY2V3aXNlLWNvbnN0YW50IGZ1bmN0aW9ucyBtdXN0IGJlIGFuIGludGVnZXIiKSksMCE9PXQuYXJyYXlJbmRleCYmclswXTx0LmFycmF5W3QuYXJyYXlJbmRleC0xXVswXSYmZS5wdXNoKG5ldyBuKHMrIlswXSIsclswXSwiYXJyYXkgc3RvcHMgbXVzdCBhcHBlYXIgaW4gYXNjZW5kaW5nIG9yZGVyIikpKSxlfWZ1bmN0aW9uIHUodCl7dmFyIGU9W10scj1pKHQudmFsdWUpO3JldHVybiJudW1iZXIiIT09ciYmInN0cmluZyIhPT1yJiYiYXJyYXkiIT09ciYmZS5wdXNoKG5ldyBuKHQua2V5LHQudmFsdWUsInByb3BlcnR5IHZhbHVlIG11c3QgYmUgYSBudW1iZXIsIHN0cmluZyBvciBhcnJheSIpKSxlfXZhciBjLGg9dC52YWx1ZVNwZWMsZj12b2lkIDAhPT10LnZhbHVlLnByb3BlcnR5fHwib2JqZWN0Ij09PWMscD12b2lkIDA9PT10LnZhbHVlLnByb3BlcnR5fHwib2JqZWN0Ij09PWMsZD1hKHtrZXk6dC5rZXksdmFsdWU6dC52YWx1ZSx2YWx1ZVNwZWM6dC5zdHlsZVNwZWMuZnVuY3Rpb24sc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e3N0b3BzOmV9fSk7cmV0dXJuIHQuc3R5bGVTcGVjLiR2ZXJzaW9uPj04JiYoZiYmIXQudmFsdWVTcGVjWyJwcm9wZXJ0eS1mdW5jdGlvbiJdP2QucHVzaChuZXcgbih0LmtleSx0LnZhbHVlLCJwcm9wZXJ0eSBmdW5jdGlvbnMgbm90IHN1cHBvcnRlZCIpKTpwJiYhdC52YWx1ZVNwZWNbInpvb20tZnVuY3Rpb24iXSYmZC5wdXNoKG5ldyBuKHQua2V5LHQudmFsdWUsInpvb20gZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSkpLGR9fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi4vdXRpbC9nZXRfdHlwZSI6Mzk3LCIuL3ZhbGlkYXRlIjozOTksIi4vdmFsaWRhdGVfYXJyYXkiOjQwMCwiLi92YWxpZGF0ZV9udW1iZXIiOjQxMCwiLi92YWxpZGF0ZV9vYmplY3QiOjQxMX1dLDQwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9lcnJvci92YWxpZGF0aW9uX2Vycm9yIiksaT10KCIuL3ZhbGlkYXRlX3N0cmluZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LnZhbHVlLHI9dC5rZXksbz1pKHQpO3JldHVybiBvLmxlbmd0aD9vOigtMT09PWUuaW5kZXhPZigie2ZvbnRzdGFja30iKSYmby5wdXNoKG5ldyBuKHIsZSwnImdseXBocyIgdXJsIG11c3QgaW5jbHVkZSBhICJ7Zm9udHN0YWNrfSIgdG9rZW4nKSksLTE9PT1lLmluZGV4T2YoIntyYW5nZX0iKSYmby5wdXNoKG5ldyBuKHIsZSwnImdseXBocyIgdXJsIG11c3QgaW5jbHVkZSBhICJ7cmFuZ2V9IiB0b2tlbicpKSxvKX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuL3ZhbGlkYXRlX3N0cmluZyI6NDE0fV0sNDA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKSxpPXQoIi4uL3V0aWwvdW5idW5kbGVfanNvbmxpbnQiKSxvPXQoIi4vdmFsaWRhdGVfb2JqZWN0IiksYT10KCIuL3ZhbGlkYXRlX2ZpbHRlciIpLHM9dCgiLi92YWxpZGF0ZV9wYWludF9wcm9wZXJ0eSIpLGw9dCgiLi92YWxpZGF0ZV9sYXlvdXRfcHJvcGVydHkiKSx1PXQoIi4uL3V0aWwvZXh0ZW5kIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdLHI9dC52YWx1ZSxjPXQua2V5LGg9dC5zdHlsZSxmPXQuc3R5bGVTcGVjO3IudHlwZXx8ci5yZWZ8fGUucHVzaChuZXcgbihjLHIsJ2VpdGhlciAidHlwZSIgb3IgInJlZiIgaXMgcmVxdWlyZWQnKSk7dmFyIHA9aShyLnR5cGUpLGQ9aShyLnJlZik7aWYoci5pZClmb3IodmFyIG09MDttPHQuYXJyYXlJbmRleDttKyspe3ZhciBnPWgubGF5ZXJzW21dO2koZy5pZCk9PT1pKHIuaWQpJiZlLnB1c2gobmV3IG4oYyxyLmlkLCdkdXBsaWNhdGUgbGF5ZXIgaWQgIiVzIiwgcHJldmlvdXNseSB1c2VkIGF0IGxpbmUgJWQnLHIuaWQsZy5pZC5fX2xpbmVfXykpfWlmKCJyZWYiaW4gcil7WyJ0eXBlIiwic291cmNlIiwic291cmNlLWxheWVyIiwiZmlsdGVyIiwibGF5b3V0Il0uZm9yRWFjaChmdW5jdGlvbih0KXt0IGluIHImJmUucHVzaChuZXcgbihjLHJbdF0sJyIlcyIgaXMgcHJvaGliaXRlZCBmb3IgcmVmIGxheWVycycsdCkpfSk7dmFyIHY7aC5sYXllcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmlkPT1kJiYodj10KX0pLHY/di5yZWY/ZS5wdXNoKG5ldyBuKGMsci5yZWYsInJlZiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIgcmVmIGxheWVyIikpOnA9aSh2LnR5cGUpOmUucHVzaChuZXcgbihjLHIucmVmLCdyZWYgbGF5ZXIgIiVzIiBub3QgZm91bmQnLGQpKX1lbHNlIGlmKCJiYWNrZ3JvdW5kIiE9PXApaWYoci5zb3VyY2Upe3ZhciB5PWguc291cmNlcyYmaC5zb3VyY2VzW3Iuc291cmNlXTt5PyJ2ZWN0b3IiPT15LnR5cGUmJiJyYXN0ZXIiPT1wP2UucHVzaChuZXcgbihjLHIuc291cmNlLCdsYXllciAiJXMiIHJlcXVpcmVzIGEgcmFzdGVyIHNvdXJjZScsci5pZCkpOiJyYXN0ZXIiPT15LnR5cGUmJiJyYXN0ZXIiIT1wP2UucHVzaChuZXcgbihjLHIuc291cmNlLCdsYXllciAiJXMiIHJlcXVpcmVzIGEgdmVjdG9yIHNvdXJjZScsci5pZCkpOiJ2ZWN0b3IiIT15LnR5cGV8fHJbInNvdXJjZS1sYXllciJdfHxlLnB1c2gobmV3IG4oYyxyLCdsYXllciAiJXMiIG11c3Qgc3BlY2lmeSBhICJzb3VyY2UtbGF5ZXIiJyxyLmlkKSk6ZS5wdXNoKG5ldyBuKGMsci5zb3VyY2UsJ3NvdXJjZSAiJXMiIG5vdCBmb3VuZCcsci5zb3VyY2UpKX1lbHNlIGUucHVzaChuZXcgbihjLHIsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgInNvdXJjZSInKSk7cmV0dXJuIGU9ZS5jb25jYXQobyh7a2V5OmMsdmFsdWU6cix2YWx1ZVNwZWM6Zi5sYXllcixzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlYyxvYmplY3RFbGVtZW50VmFsaWRhdG9yczp7ZmlsdGVyOmEsbGF5b3V0OmZ1bmN0aW9uKHQpe3JldHVybiBvKHtsYXllcjpyLGtleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnsiKiI6ZnVuY3Rpb24odCl7cmV0dXJuIGwodSh7bGF5ZXJUeXBlOnB9LHQpKX19fSl9LHBhaW50OmZ1bmN0aW9uKHQpe3JldHVybiBvKHtsYXllcjpyLGtleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnsiKiI6ZnVuY3Rpb24odCl7cmV0dXJuIHModSh7bGF5ZXJUeXBlOnB9LHQpKX19fSl9fX0pKX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuLi91dGlsL2V4dGVuZCI6Mzk2LCIuLi91dGlsL3VuYnVuZGxlX2pzb25saW50IjozOTgsIi4vdmFsaWRhdGVfZmlsdGVyIjo0MDUsIi4vdmFsaWRhdGVfbGF5b3V0X3Byb3BlcnR5Ijo0MDksIi4vdmFsaWRhdGVfb2JqZWN0Ijo0MTEsIi4vdmFsaWRhdGVfcGFpbnRfcHJvcGVydHkiOjQxMn1dLDQwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3ZhbGlkYXRlIiksaT10KCIuLi9lcnJvci92YWxpZGF0aW9uX2Vycm9yIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5LHI9dC5zdHlsZSxvPXQuc3R5bGVTcGVjLGE9dC52YWx1ZSxzPXQub2JqZWN0S2V5LGw9b1sibGF5b3V0XyIrdC5sYXllclR5cGVdO2lmKHQudmFsdWVTcGVjfHxsW3NdKXt2YXIgdT1bXTtyZXR1cm4ic3ltYm9sIj09PXQubGF5ZXJUeXBlJiYoImljb24taW1hZ2UiPT09cyYmciYmIXIuc3ByaXRlP3UucHVzaChuZXcgaShlLGEsJ3VzZSBvZiAiaWNvbi1pbWFnZSIgcmVxdWlyZXMgYSBzdHlsZSAic3ByaXRlIiBwcm9wZXJ0eScpKToidGV4dC1maWVsZCI9PT1zJiZyJiYhci5nbHlwaHMmJnUucHVzaChuZXcgaShlLGEsJ3VzZSBvZiAidGV4dC1maWVsZCIgcmVxdWlyZXMgYSBzdHlsZSAiZ2x5cGhzIiBwcm9wZXJ0eScpKSksdS5jb25jYXQobih7a2V5OnQua2V5LHZhbHVlOmEsdmFsdWVTcGVjOnQudmFsdWVTcGVjfHxsW3NdLHN0eWxlOnIsc3R5bGVTcGVjOm99KSl9cmV0dXJuW25ldyBpKGUsYSwndW5rbm93biBwcm9wZXJ0eSAiJXMiJyxzKV19fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi92YWxpZGF0ZSI6Mzk5fV0sNDEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3V0aWwvZ2V0X3R5cGUiKSxpPXQoIi4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG89dC52YWx1ZVNwZWMsYT1uKHIpO3JldHVybiJudW1iZXIiIT09YT9bbmV3IGkoZSxyLCJudW1iZXIgZXhwZWN0ZWQsICVzIGZvdW5kIixhKV06Im1pbmltdW0iaW4gbyYmcjxvLm1pbmltdW0/W25ldyBpKGUsciwiJXMgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIHZhbHVlICVzIixyLG8ubWluaW11bSldOiJtYXhpbXVtImluIG8mJnI+by5tYXhpbXVtP1tuZXcgaShlLHIsIiVzIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSB2YWx1ZSAlcyIscixvLm1heGltdW0pXTpbXX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuLi91dGlsL2dldF90eXBlIjozOTd9XSw0MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciIpLGk9dCgiLi4vdXRpbC9nZXRfdHlwZSIpLG89dCgiLi92YWxpZGF0ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmtleSxyPXQudmFsdWUsYT10LnZhbHVlU3BlYyxzPXQub2JqZWN0RWxlbWVudFZhbGlkYXRvcnN8fHt9LGw9dC5zdHlsZSx1PXQuc3R5bGVTcGVjLGM9W10saD1pKHIpO2lmKCJvYmplY3QiIT09aClyZXR1cm5bbmV3IG4oZSxyLCJvYmplY3QgZXhwZWN0ZWQsICVzIGZvdW5kIixoKV07Zm9yKHZhciBmIGluIHIpe3ZhciBwPWYuc3BsaXQoIi4iKVswXSxkPWEmJihhW3BdfHxhWyIqIl0pLG09c1twXXx8c1siKiJdO2R8fG0/Yz1jLmNvbmNhdCgobXx8bykoe2tleTooZT9lKyIuIjplKStmLHZhbHVlOnJbZl0sdmFsdWVTcGVjOmQsc3R5bGU6bCxzdHlsZVNwZWM6dSxvYmplY3Q6cixvYmplY3RLZXk6Zn0pKToiIiE9PWUmJjEhPT1lLnNwbGl0KCIuIikubGVuZ3RoJiZjLnB1c2gobmV3IG4oZSxyW2ZdLCd1bmtub3duIHByb3BlcnR5ICIlcyInLGYpKX1mb3IocCBpbiBhKWFbcF0ucmVxdWlyZWQmJnZvaWQgMD09PWFbcF0uZGVmYXVsdCYmdm9pZCAwPT09cltwXSYmYy5wdXNoKG5ldyBuKGUsciwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiJXMiJyxwKSk7cmV0dXJuIGN9fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi4vdXRpbC9nZXRfdHlwZSI6Mzk3LCIuL3ZhbGlkYXRlIjozOTl9XSw0MTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi92YWxpZGF0ZSIpLGk9dCgiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmtleSxyPXQuc3R5bGUsbz10LnN0eWxlU3BlYyxhPXQudmFsdWUscz10Lm9iamVjdEtleSxsPW9bInBhaW50XyIrdC5sYXllclR5cGVdLHU9cy5tYXRjaCgvXiguKiktdHJhbnNpdGlvbiQvKTtyZXR1cm4gdSYmbFt1WzFdXSYmbFt1WzFdXS50cmFuc2l0aW9uP24oe2tleTplLHZhbHVlOmEsdmFsdWVTcGVjOm8udHJhbnNpdGlvbixzdHlsZTpyLHN0eWxlU3BlYzpvfSk6dC52YWx1ZVNwZWN8fGxbc10/bih7a2V5OnQua2V5LHZhbHVlOmEsdmFsdWVTcGVjOnQudmFsdWVTcGVjfHxsW3NdLHN0eWxlOnIsc3R5bGVTcGVjOm99KTpbbmV3IGkoZSxhLCd1bmtub3duIHByb3BlcnR5ICIlcyInLHMpXX19LHsiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciI6Mzk1LCIuL3ZhbGlkYXRlIjozOTl9XSw0MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciIpLGk9dCgiLi4vdXRpbC91bmJ1bmRsZV9qc29ubGludCIpLG89dCgiLi92YWxpZGF0ZV9vYmplY3QiKSxhPXQoIi4vdmFsaWRhdGVfZW51bSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LnZhbHVlLHI9dC5rZXkscz10LnN0eWxlU3BlYyxsPXQuc3R5bGU7aWYoIWUudHlwZSlyZXR1cm5bbmV3IG4ocixlLCcidHlwZSIgaXMgcmVxdWlyZWQnKV07dmFyIHU9aShlLnR5cGUpO3N3aXRjaCh1KXtjYXNlInZlY3RvciI6Y2FzZSJyYXN0ZXIiOnZhciBjPVtdO2lmKGM9Yy5jb25jYXQobyh7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6cy5zb3VyY2VfdGlsZSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzpzfSkpLCJ1cmwiaW4gZSlmb3IodmFyIGggaW4gZSlbInR5cGUiLCJ1cmwiLCJ0aWxlU2l6ZSJdLmluZGV4T2YoaCk8MCYmYy5wdXNoKG5ldyBuKHIrIi4iK2gsZVtoXSwnYSBzb3VyY2Ugd2l0aCBhICJ1cmwiIHByb3BlcnR5IG1heSBub3QgaW5jbHVkZSBhICIlcyIgcHJvcGVydHknLGgpKTtyZXR1cm4gYztjYXNlImdlb2pzb24iOnJldHVybiBvKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpzLnNvdXJjZV9nZW9qc29uLHN0eWxlOmwsc3R5bGVTcGVjOnN9KTtjYXNlInZpZGVvIjpyZXR1cm4gbyh7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6cy5zb3VyY2VfdmlkZW8sc3R5bGU6bCxzdHlsZVNwZWM6c30pO2Nhc2UiaW1hZ2UiOnJldHVybiBvKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpzLnNvdXJjZV9pbWFnZSxzdHlsZTpsLHN0eWxlU3BlYzpzfSk7ZGVmYXVsdDpyZXR1cm4gYSh7a2V5OnIrIi50eXBlIix2YWx1ZTplLnR5cGUsdmFsdWVTcGVjOnt2YWx1ZXM6WyJ2ZWN0b3IiLCJyYXN0ZXIiLCJnZW9qc29uIiwidmlkZW8iLCJpbWFnZSJdfSxzdHlsZTpsLHN0eWxlU3BlYzpzfSl9fX0seyIuLi9lcnJvci92YWxpZGF0aW9uX2Vycm9yIjozOTUsIi4uL3V0aWwvdW5idW5kbGVfanNvbmxpbnQiOjM5OCwiLi92YWxpZGF0ZV9lbnVtIjo0MDQsIi4vdmFsaWRhdGVfb2JqZWN0Ijo0MTF9XSw0MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdXRpbC9nZXRfdHlwZSIpLGk9dCgiLi4vZXJyb3IvdmFsaWRhdGlvbl9lcnJvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LnZhbHVlLHI9dC5rZXksbz1uKGUpO3JldHVybiJzdHJpbmciIT09bz9bbmV3IGkocixlLCJzdHJpbmcgZXhwZWN0ZWQsICVzIGZvdW5kIixvKV06W119fSx7Ii4uL2Vycm9yL3ZhbGlkYXRpb25fZXJyb3IiOjM5NSwiLi4vdXRpbC9nZXRfdHlwZSI6Mzk3fV0sNDE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtlPWV8fGw7dmFyIHI9W107cmV0dXJuIHI9ci5jb25jYXQocyh7a2V5OiIiLHZhbHVlOnQsdmFsdWVTcGVjOmUuJHJvb3Qsc3R5bGVTcGVjOmUsc3R5bGU6dCxvYmplY3RFbGVtZW50VmFsaWRhdG9yczp7Z2x5cGhzOnV9fSkpLGUuJHZlcnNpb24+NyYmdC5jb25zdGFudHMmJihyPXIuY29uY2F0KGEoe2tleToiY29uc3RhbnRzIix2YWx1ZTp0LmNvbnN0YW50cyxzdHlsZTp0LHN0eWxlU3BlYzplfSkpKSxpKHIpfWZ1bmN0aW9uIGkodCl7cmV0dXJuW10uY29uY2F0KHQpLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saW5lLWUubGluZX0pfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGkodC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX12YXIgYT10KCIuL3ZhbGlkYXRlL3ZhbGlkYXRlX2NvbnN0YW50cyIpLHM9dCgiLi92YWxpZGF0ZS92YWxpZGF0ZSIpLGw9dCgiLi4vcmVmZXJlbmNlL2xhdGVzdC5taW4iKSx1PXQoIi4vdmFsaWRhdGUvdmFsaWRhdGVfZ2x5cGhzX3VybCIpO24uc291cmNlPW8odCgiLi92YWxpZGF0ZS92YWxpZGF0ZV9zb3VyY2UiKSksbi5sYXllcj1vKHQoIi4vdmFsaWRhdGUvdmFsaWRhdGVfbGF5ZXIiKSksbi5maWx0ZXI9byh0KCIuL3ZhbGlkYXRlL3ZhbGlkYXRlX2ZpbHRlciIpKSxuLnBhaW50UHJvcGVydHk9byh0KCIuL3ZhbGlkYXRlL3ZhbGlkYXRlX3BhaW50X3Byb3BlcnR5IikpLG4ubGF5b3V0UHJvcGVydHk9byh0KCIuL3ZhbGlkYXRlL3ZhbGlkYXRlX2xheW91dF9wcm9wZXJ0eSIpKSxlLmV4cG9ydHM9bn0seyIuLi9yZWZlcmVuY2UvbGF0ZXN0Lm1pbiI6NDE3LCIuL3ZhbGlkYXRlL3ZhbGlkYXRlIjozOTksIi4vdmFsaWRhdGUvdmFsaWRhdGVfY29uc3RhbnRzIjo0MDMsIi4vdmFsaWRhdGUvdmFsaWRhdGVfZmlsdGVyIjo0MDUsIi4vdmFsaWRhdGUvdmFsaWRhdGVfZ2x5cGhzX3VybCI6NDA3LCIuL3ZhbGlkYXRlL3ZhbGlkYXRlX2xheWVyIjo0MDgsIi4vdmFsaWRhdGUvdmFsaWRhdGVfbGF5b3V0X3Byb3BlcnR5Ijo0MDksIi4vdmFsaWRhdGUvdmFsaWRhdGVfcGFpbnRfcHJvcGVydHkiOjQxMiwiLi92YWxpZGF0ZS92YWxpZGF0ZV9zb3VyY2UiOjQxM31dLDQxNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL3Y4Lmpzb24iKX0seyIuL3Y4Lmpzb24iOjQxOH1dLDQxNzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL3Y4Lm1pbi5qc29uIil9LHsiLi92OC5taW4uanNvbiI6NDE5fV0sNDE4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXskdmVyc2lvbjo4LCRyb290Ont2ZXJzaW9uOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6WzhdLGRvYzoiU3R5bGUgc3BlY2lmaWNhdGlvbiB2ZXJzaW9uIG51bWJlci4gTXVzdCBiZSA4LiIsZXhhbXBsZTo4fSxuYW1lOnt0eXBlOiJzdHJpbmciLGRvYzoiQSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgc3R5bGUuIixleGFtcGxlOiJCcmlnaHQifSxtZXRhZGF0YTp7dHlwZToiKiIsZG9jOiJBcmJpdHJhcnkgcHJvcGVydGllcyB1c2VmdWwgdG8gdHJhY2sgd2l0aCB0aGUgc3R5bGVzaGVldCwgYnV0IGRvIG5vdCBpbmZsdWVuY2UgcmVuZGVyaW5nLiBQcm9wZXJ0aWVzIHNob3VsZCBiZSBwcmVmaXhlZCB0byBhdm9pZCBjb2xsaXNpb25zLCBsaWtlICdtYXBib3g6Jy4ifSxjZW50ZXI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixkb2M6IkRlZmF1bHQgbWFwIGNlbnRlciBpbiBsb25naXR1ZGUgYW5kIGxhdGl0dWRlLiAgVGhlIHN0eWxlIGNlbnRlciB3aWxsIGJlIHVzZWQgb25seSBpZiB0aGUgbWFwIGhhcyBub3QgYmVlbiBwb3NpdGlvbmVkIGJ5IG90aGVyIG1lYW5zIChlLmcuIG1hcCBvcHRpb25zIG9yIHVzZXIgaW50ZXJhY3Rpb24pLiIsZXhhbXBsZTpbLTczLjk3NDksNDAuNzczNl19LHpvb206e3R5cGU6Im51bWJlciIsZG9jOiJEZWZhdWx0IHpvb20gbGV2ZWwuICBUaGUgc3R5bGUgem9vbSB3aWxsIGJlIHVzZWQgb25seSBpZiB0aGUgbWFwIGhhcyBub3QgYmVlbiBwb3NpdGlvbmVkIGJ5IG90aGVyIG1lYW5zIChlLmcuIG1hcCBvcHRpb25zIG9yIHVzZXIgaW50ZXJhY3Rpb24pLiIsZXhhbXBsZToxMi41fSxiZWFyaW5nOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLHBlcmlvZDozNjAsdW5pdHM6ImRlZ3JlZXMiLGRvYzoiRGVmYXVsdCBiZWFyaW5nLCBpbiBkZWdyZWVzLiAgVGhlIHN0eWxlIGJlYXJpbmcgd2lsbCBiZSB1c2VkIG9ubHkgaWYgdGhlIG1hcCBoYXMgbm90IGJlZW4gcG9zaXRpb25lZCBieSBvdGhlciBtZWFucyAoZS5nLiBtYXAgb3B0aW9ucyBvciB1c2VyIGludGVyYWN0aW9uKS4iLGV4YW1wbGU6Mjl9LHBpdGNoOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLHVuaXRzOiJkZWdyZWVzIixkb2M6IkRlZmF1bHQgcGl0Y2gsIGluIGRlZ3JlZXMuIFplcm8gaXMgcGVycGVuZGljdWxhciB0byB0aGUgc3VyZmFjZS4gIFRoZSBzdHlsZSBwaXRjaCB3aWxsIGJlIHVzZWQgb25seSBpZiB0aGUgbWFwIGhhcyBub3QgYmVlbiBwb3NpdGlvbmVkIGJ5IG90aGVyIG1lYW5zIChlLmcuIG1hcCBvcHRpb25zIG9yIHVzZXIgaW50ZXJhY3Rpb24pLiIsZXhhbXBsZTo1MH0sc291cmNlczp7cmVxdWlyZWQ6ITAsdHlwZToic291cmNlcyIsZG9jOiJEYXRhIHNvdXJjZSBzcGVjaWZpY2F0aW9ucy4iLGV4YW1wbGU6eyJtYXBib3gtc3RyZWV0cyI6e3R5cGU6InZlY3RvciIsdXJsOiJtYXBib3g6Ly9tYXBib3gubWFwYm94LXN0cmVldHMtdjYifX19LHNwcml0ZTp7dHlwZToic3RyaW5nIixkb2M6IkEgYmFzZSBVUkwgZm9yIHJldHJpZXZpbmcgdGhlIHNwcml0ZSBpbWFnZSBhbmQgbWV0YWRhdGEuIFRoZSBleHRlbnNpb25zIGAucG5nYCwgYC5qc29uYCBhbmQgc2NhbGUgZmFjdG9yIGBAMngucG5nYCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgYXBwZW5kZWQuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgaWYgYW55IGxheWVyIHVzZXMgdGhlICdzcHJpdGUtaW1hZ2UnIGxheW91dCBwcm9wZXJ0eS4iLGV4YW1wbGU6Im1hcGJveDovL3Nwcml0ZXMvbWFwYm94L2JyaWdodC12OCJ9LGdseXBoczp7dHlwZToic3RyaW5nIixkb2M6IkEgVVJMIHRlbXBsYXRlIGZvciBsb2FkaW5nIHNpZ25lZC1kaXN0YW5jZS1maWVsZCBnbHlwaCBzZXRzIGluIFBCRiBmb3JtYXQuIFRoZSBVUkwgbXVzdCBpbmNsdWRlIGB7Zm9udHN0YWNrfWAgYW5kIGB7cmFuZ2V9YCB0b2tlbnMuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgaWYgYW55IGxheWVyIHVzZXMgdGhlICd0ZXh0LWZpZWxkJyBsYXlvdXQgcHJvcGVydHkuIixleGFtcGxlOiJtYXBib3g6Ly9mb250cy9tYXBib3gve2ZvbnRzdGFja30ve3JhbmdlfS5wYmYifSx0cmFuc2l0aW9uOnt0eXBlOiJ0cmFuc2l0aW9uIixkb2M6IkEgZ2xvYmFsIHRyYW5zaXRpb24gZGVmaW5pdGlvbiB0byB1c2UgYXMgYSBkZWZhdWx0IGFjcm9zcyBwcm9wZXJ0aWVzLiIsZXhhbXBsZTp7ZHVyYXRpb246MzAwLGRlbGF5OjB9fSxsYXllcnM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToibGF5ZXIiLGRvYzoiTGF5ZXJzIHdpbGwgYmUgZHJhd24gaW4gdGhlIG9yZGVyIG9mIHRoaXMgYXJyYXkuIixleGFtcGxlOlt7aWQ6IndhdGVyIixzb3VyY2U6Im1hcGJveC1zdHJlZXRzIiwic291cmNlLWxheWVyIjoid2F0ZXIiLHR5cGU6ImZpbGwiLHBhaW50OnsiZmlsbC1jb2xvciI6IiMwMGZmZmYifX1dfX0sc291cmNlczp7IioiOnt0eXBlOiJzb3VyY2UiLGRvYzoiU3BlY2lmaWNhdGlvbiBvZiBhIGRhdGEgc291cmNlLiBGb3IgdmVjdG9yIGFuZCByYXN0ZXIgc291cmNlcywgZWl0aGVyIFRpbGVKU09OIG9yIGEgVVJMIHRvIGEgVGlsZUpTT04gbXVzdCBiZSBwcm92aWRlZC4gRm9yIEdlb0pTT04gYW5kIHZpZGVvIHNvdXJjZXMsIGEgVVJMIG11c3QgYmUgcHJvdmlkZWQuIn19LHNvdXJjZTpbInNvdXJjZV90aWxlIiwic291cmNlX2dlb2pzb24iLCJzb3VyY2VfdmlkZW8iLCJzb3VyY2VfaW1hZ2UiXSxzb3VyY2VfdGlsZTp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOlsidmVjdG9yIiwicmFzdGVyIl0sZG9jOiJUaGUgZGF0YSB0eXBlIG9mIHRoZSB0aWxlIHNvdXJjZS4ifSx1cmw6e3R5cGU6InN0cmluZyIsZG9jOiJBIFVSTCB0byBhIFRpbGVKU09OIHJlc291cmNlLiBTdXBwb3J0ZWQgcHJvdG9jb2xzIGFyZSBgaHR0cDpgLCBgaHR0cHM6YCwgYW5kIGBtYXBib3g6Ly88bWFwaWQ+YC4ifSx0aWxlczp7dHlwZToiYXJyYXkiLHZhbHVlOiJzdHJpbmciLGRvYzoiQW4gYXJyYXkgb2Ygb25lIG9yIG1vcmUgdGlsZSBzb3VyY2UgVVJMcywgYXMgaW4gdGhlIFRpbGVKU09OIHNwZWMuIn0sbWluem9vbTp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxkb2M6Ik1pbmltdW0gem9vbSBsZXZlbCBmb3Igd2hpY2ggdGlsZXMgYXJlIGF2YWlsYWJsZSwgYXMgaW4gdGhlIFRpbGVKU09OIHNwZWMuIn0sbWF4em9vbTp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MjIsZG9jOiJNYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHdoaWNoIHRpbGVzIGFyZSBhdmFpbGFibGUsIGFzIGluIHRoZSBUaWxlSlNPTiBzcGVjLiBEYXRhIGZyb20gdGlsZXMgYXQgdGhlIG1heHpvb20gYXJlIHVzZWQgd2hlbiBkaXNwbGF5aW5nIHRoZSBtYXAgYXQgaGlnaGVyIHpvb20gbGV2ZWxzLiJ9LHRpbGVTaXplOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0Ijo1MTIsdW5pdHM6InBpeGVscyIsZG9jOiJUaGUgbWluaW11bSB2aXN1YWwgc2l6ZSB0byBkaXNwbGF5IHRpbGVzIGZvciB0aGlzIGxheWVyLiBPbmx5IGNvbmZpZ3VyYWJsZSBmb3IgcmFzdGVyIGxheWVycy4ifSwiKiI6e3R5cGU6IioiLGRvYzoiT3RoZXIga2V5cyB0byBjb25maWd1cmUgdGhlIGRhdGEgc291cmNlLiJ9fSxzb3VyY2VfZ2VvanNvbjp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOlsiZ2VvanNvbiJdLGRvYzoiVGhlIGRhdGEgdHlwZSBvZiB0aGUgR2VvSlNPTiBzb3VyY2UuIgp9LGRhdGE6e3R5cGU6IioiLGRvYzoiQSBVUkwgdG8gYSBHZW9KU09OIGZpbGUsIG9yIGlubGluZSBHZW9KU09OLiJ9LG1heHpvb206e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjE0LGRvYzoiTWF4aW11bSB6b29tIGxldmVsIGF0IHdoaWNoIHRvIGNyZWF0ZSB2ZWN0b3IgdGlsZXMgKGhpZ2hlciBtZWFucyBncmVhdGVyIGRldGFpbCBhdCBoaWdoIHpvb20gbGV2ZWxzKS4ifSxidWZmZXI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjY0LGRvYzoiVGlsZSBidWZmZXIgc2l6ZSBvbiBlYWNoIHNpZGUgKGhpZ2hlciBtZWFucyBmZXdlciByZW5kZXJpbmcgYXJ0aWZhY3RzIG5lYXIgdGlsZSBlZGdlcyBidXQgc2xvd2VyIHBlcmZvcm1hbmNlKS4ifSx0b2xlcmFuY2U6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjMsZG9jOiJEb3VnbGFzLVBldWNrZXIgc2ltcGxpZmljYXRpb24gdG9sZXJhbmNlIChoaWdoZXIgbWVhbnMgc2ltcGxlciBnZW9tZXRyaWVzIGFuZCBmYXN0ZXIgcGVyZm9ybWFuY2UpLiJ9LGNsdXN0ZXI6e3R5cGU6ImJvb2xlYW4iLCJkZWZhdWx0IjohMSxkb2M6IklmIHRoZSBkYXRhIGlzIGEgY29sbGVjdGlvbiBvZiBwb2ludCBmZWF0dXJlcywgc2V0dGluZyB0aGlzIHRvIHRydWUgY2x1c3RlcnMgdGhlIHBvaW50cyBieSByYWRpdXMgaW50byBncm91cHMuIn0sY2x1c3RlclJhZGl1czp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6NDAwLGRvYzoiUmFkaXVzIG9mIGVhY2ggY2x1c3RlciB3aGVuIGNsdXN0ZXJpbmcgcG9pbnRzLCByZWxhdGl2ZSB0byA0MDk2IHRpbGUuIn0sY2x1c3Rlck1heFpvb206e3R5cGU6Im51bWJlciIsZG9jOiJNYXggem9vbSB0byBjbHVzdGVyIHBvaW50cyBvbi4gRGVmYXVsdHMgdG8gb25lIHpvb20gbGVzcyB0aGFuIG1heHpvb20gKHNvIHRoYXQgbGFzdCB6b29tIGZlYXR1cmVzIGFyZSBub3QgY2x1c3RlcmVkKS4ifX0sc291cmNlX3ZpZGVvOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6WyJ2aWRlbyJdLGRvYzoiVGhlIGRhdGEgdHlwZSBvZiB0aGUgdmlkZW8gc291cmNlLiJ9LHVybHM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIixkb2M6IlVSTHMgdG8gdmlkZW8gY29udGVudCBpbiBvcmRlciBvZiBwcmVmZXJyZWQgZm9ybWF0LiJ9LGNvb3JkaW5hdGVzOntyZXF1aXJlZDohMCxkb2M6IkNvcm5lcnMgb2YgdmlkZW8gc3BlY2lmaWVkIGluIGxvbmdpdHVkZSwgbGF0aXR1ZGUgcGFpcnMuIix0eXBlOiJhcnJheSIsbGVuZ3RoOjQsdmFsdWU6e3R5cGU6ImFycmF5IixsZW5ndGg6Mix2YWx1ZToibnVtYmVyIixkb2M6IkEgc2luZ2xlIGxvbmdpdHVkZSwgbGF0aXR1ZGUgcGFpci4ifX19LHNvdXJjZV9pbWFnZTp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOlsiaW1hZ2UiXSxkb2M6IlRoZSBkYXRhIHR5cGUgb2YgdGhlIGltYWdlIHNvdXJjZS4ifSx1cmw6e3JlcXVpcmVkOiEwLHR5cGU6InN0cmluZyIsZG9jOiJVUkwgdGhhdCBwb2ludHMgdG8gYW4gaW1hZ2UifSxjb29yZGluYXRlczp7cmVxdWlyZWQ6ITAsZG9jOiJDb3JuZXJzIG9mIGltYWdlIHNwZWNpZmllZCBpbiBsb25naXR1ZGUsIGxhdGl0dWRlIHBhaXJzLiIsdHlwZToiYXJyYXkiLGxlbmd0aDo0LHZhbHVlOnt0eXBlOiJhcnJheSIsbGVuZ3RoOjIsdmFsdWU6Im51bWJlciIsZG9jOiJBIHNpbmdsZSBsb25naXR1ZGUsIGxhdGl0dWRlIHBhaXIuIn19fSxsYXllcjp7aWQ6e3R5cGU6InN0cmluZyIsZG9jOiJVbmlxdWUgbGF5ZXIgbmFtZS4iLHJlcXVpcmVkOiEwfSx0eXBlOnt0eXBlOiJlbnVtIix2YWx1ZXM6WyJmaWxsIiwibGluZSIsInN5bWJvbCIsImNpcmNsZSIsInJhc3RlciIsImJhY2tncm91bmQiXSxkb2M6IlJlbmRlcmluZyB0eXBlIG9mIHRoaXMgbGF5ZXIuIn0sbWV0YWRhdGE6e3R5cGU6IioiLGRvYzoiQXJiaXRyYXJ5IHByb3BlcnRpZXMgdXNlZnVsIHRvIHRyYWNrIHdpdGggdGhlIGxheWVyLCBidXQgZG8gbm90IGluZmx1ZW5jZSByZW5kZXJpbmcuIFByb3BlcnRpZXMgc2hvdWxkIGJlIHByZWZpeGVkIHRvIGF2b2lkIGNvbGxpc2lvbnMsIGxpa2UgJ21hcGJveDonLiJ9LHJlZjp7dHlwZToic3RyaW5nIixkb2M6IlJlZmVyZW5jZXMgYW5vdGhlciBsYXllciB0byBjb3B5IGB0eXBlYCwgYHNvdXJjZWAsIGBzb3VyY2UtbGF5ZXJgLCBgbWluem9vbWAsIGBtYXh6b29tYCwgYGZpbHRlcmAsIGFuZCBgbGF5b3V0YCBwcm9wZXJ0aWVzIGZyb20uIFRoaXMgYWxsb3dzIHRoZSBsYXllcnMgdG8gc2hhcmUgcHJvY2Vzc2luZyBhbmQgYmUgbW9yZSBlZmZpY2llbnQuIn0sc291cmNlOnt0eXBlOiJzdHJpbmciLGRvYzoiTmFtZSBvZiBhIHNvdXJjZSBkZXNjcmlwdGlvbiB0byBiZSB1c2VkIGZvciB0aGlzIGxheWVyLiJ9LCJzb3VyY2UtbGF5ZXIiOnt0eXBlOiJzdHJpbmciLGRvYzoiTGF5ZXIgdG8gdXNlIGZyb20gYSB2ZWN0b3IgdGlsZSBzb3VyY2UuIFJlcXVpcmVkIGlmIHRoZSBzb3VyY2Ugc3VwcG9ydHMgbXVsdGlwbGUgbGF5ZXJzLiJ9LG1pbnpvb206e3R5cGU6Im51bWJlciIsbWluaW11bTowLG1heGltdW06MjIsZG9jOiJUaGUgbWluaW11bSB6b29tIGxldmVsIG9uIHdoaWNoIHRoZSBsYXllciBnZXRzIHBhcnNlZCBhbmQgYXBwZWFycyBvbi4ifSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLG1pbmltdW06MCxtYXhpbXVtOjIyLGRvYzoiVGhlIG1heGltdW0gem9vbSBsZXZlbCBvbiB3aGljaCB0aGUgbGF5ZXIgZ2V0cyBwYXJzZWQgYW5kIGFwcGVhcnMgb24uIn0saW50ZXJhY3RpdmU6e3R5cGU6ImJvb2xlYW4iLGRvYzoiRW5hYmxlIHF1ZXJ5aW5nIG9mIGZlYXR1cmUgZGF0YSBmcm9tIHRoaXMgbGF5ZXIgZm9yIGludGVyYWN0aXZpdHkuIiwiZGVmYXVsdCI6ITF9LGZpbHRlcjp7dHlwZToiZmlsdGVyIixkb2M6IkEgZXhwcmVzc2lvbiBzcGVjaWZ5aW5nIGNvbmRpdGlvbnMgb24gc291cmNlIGZlYXR1cmVzLiBPbmx5IGZlYXR1cmVzIHRoYXQgbWF0Y2ggdGhlIGZpbHRlciBhcmUgZGlzcGxheWVkLiJ9LGxheW91dDp7dHlwZToibGF5b3V0Iixkb2M6IkxheW91dCBwcm9wZXJ0aWVzIGZvciB0aGUgbGF5ZXIuIn0scGFpbnQ6e3R5cGU6InBhaW50Iixkb2M6IkRlZmF1bHQgcGFpbnQgcHJvcGVydGllcyBmb3IgdGhpcyBsYXllci4ifSwicGFpbnQuKiI6e3R5cGU6InBhaW50Iixkb2M6IkNsYXNzLXNwZWNpZmljIHBhaW50IHByb3BlcnRpZXMgZm9yIHRoaXMgbGF5ZXIuIFRoZSBjbGFzcyBuYW1lIGlzIHRoZSBwYXJ0IGFmdGVyIHRoZSBmaXJzdCBkb3QuIn19LGxheW91dDpbImxheW91dF9maWxsIiwibGF5b3V0X2xpbmUiLCJsYXlvdXRfY2lyY2xlIiwibGF5b3V0X3N5bWJvbCIsImxheW91dF9yYXN0ZXIiLCJsYXlvdXRfYmFja2dyb3VuZCJdLGxheW91dF9iYWNrZ3JvdW5kOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJ2aXNpYmxlIiwibm9uZSJdLCJkZWZhdWx0IjoidmlzaWJsZSIsZG9jOiJUaGUgZGlzcGxheSBvZiB0aGlzIGxheWVyLiBgbm9uZWAgaGlkZXMgdGhpcyBsYXllci4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX19LGxheW91dF9maWxsOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJ2aXNpYmxlIiwibm9uZSJdLCJkZWZhdWx0IjoidmlzaWJsZSIsZG9jOiJUaGUgZGlzcGxheSBvZiB0aGlzIGxheWVyLiBgbm9uZWAgaGlkZXMgdGhpcyBsYXllci4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX19LGxheW91dF9jaXJjbGU6e3Zpc2liaWxpdHk6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLHZhbHVlczpbInZpc2libGUiLCJub25lIl0sImRlZmF1bHQiOiJ2aXNpYmxlIixkb2M6IlRoZSBkaXNwbGF5IG9mIHRoaXMgbGF5ZXIuIGBub25lYCBoaWRlcyB0aGlzIGxheWVyLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fX0sbGF5b3V0X2xpbmU6eyJsaW5lLWNhcCI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsiYnV0dCIsInJvdW5kIiwic3F1YXJlIl0sImRlZmF1bHQiOiJidXR0Iixkb2M6IlRoZSBkaXNwbGF5IG9mIGxpbmUgZW5kaW5ncy4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImxpbmUtam9pbiI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsiYmV2ZWwiLCJyb3VuZCIsIm1pdGVyIl0sImRlZmF1bHQiOiJtaXRlciIsZG9jOiJUaGUgZGlzcGxheSBvZiBsaW5lcyB3aGVuIGpvaW5pbmcuIiwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJsaW5lLW1pdGVyLWxpbWl0Ijp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiVXNlZCB0byBhdXRvbWF0aWNhbGx5IGNvbnZlcnQgbWl0ZXIgam9pbnMgdG8gYmV2ZWwgam9pbnMgZm9yIHNoYXJwIGFuZ2xlcy4iLHJlcXVpcmVzOlt7ImxpbmUtam9pbiI6Im1pdGVyIn1dLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImxpbmUtcm91bmQtbGltaXQiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxLjA1LCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsZG9jOiJVc2VkIHRvIGF1dG9tYXRpY2FsbHkgY29udmVydCByb3VuZCBqb2lucyB0byBtaXRlciBqb2lucyBmb3Igc2hhbGxvdyBhbmdsZXMuIixyZXF1aXJlczpbeyJsaW5lLWpvaW4iOiJyb3VuZCJ9XSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LHZpc2liaWxpdHk6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLHZhbHVlczpbInZpc2libGUiLCJub25lIl0sImRlZmF1bHQiOiJ2aXNpYmxlIixkb2M6IlRoZSBkaXNwbGF5IG9mIHRoaXMgbGF5ZXIuIGBub25lYCBoaWRlcyB0aGlzIGxheWVyLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fX0sbGF5b3V0X3N5bWJvbDp7InN5bWJvbC1wbGFjZW1lbnQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbInBvaW50IiwibGluZSJdLCJkZWZhdWx0IjoicG9pbnQiLGRvYzoiTGFiZWwgcGxhY2VtZW50IHJlbGF0aXZlIHRvIGl0cyBnZW9tZXRyeS4gYGxpbmVgIGNhbiBvbmx5IGJlIHVzZWQgb24gTGluZVN0cmluZ3MgYW5kIFBvbHlnb25zLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwic3ltYm9sLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoyNTAsbWluaW11bToxLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdW5pdHM6InBpeGVscyIsZG9jOiJEaXN0YW5jZSBiZXR3ZWVuIHR3byBzeW1ib2wgYW5jaG9ycy4iLHJlcXVpcmVzOlt7InN5bWJvbC1wbGFjZW1lbnQiOiJsaW5lIn1dLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInN5bWJvbC1hdm9pZC1lZGdlcyI6e3R5cGU6ImJvb2xlYW4iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOiExLGRvYzoiSWYgdHJ1ZSwgdGhlIHN5bWJvbHMgd2lsbCBub3QgY3Jvc3MgdGlsZSBlZGdlcyB0byBhdm9pZCBtdXR1YWwgY29sbGlzaW9ucy4gUmVjb21tZW5kZWQgaW4gbGF5ZXJzIHRoYXQgZG9uJ3QgaGF2ZSBlbm91Z2ggcGFkZGluZyBpbiB0aGUgdmVjdG9yIHRpbGUgdG8gcHJldmVudCBjb2xsaXNpb25zLCBvciBpZiBpdCBpcyBhIHBvaW50IHN5bWJvbCBsYXllciBwbGFjZWQgYWZ0ZXIgYSBsaW5lIHN5bWJvbCBsYXllci4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImljb24tYWxsb3ctb3ZlcmxhcCI6e3R5cGU6ImJvb2xlYW4iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOiExLGRvYzoiSWYgdHJ1ZSwgdGhlIGljb24gd2lsbCBiZSB2aXNpYmxlIGV2ZW4gaWYgaXQgY29sbGlkZXMgd2l0aCBvdGhlciBwcmV2aW91c2x5IGRyYXduIHN5bWJvbHMuIixyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLWlnbm9yZS1wbGFjZW1lbnQiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMSxkb2M6IklmIHRydWUsIG90aGVyIHN5bWJvbHMgY2FuIGJlIHZpc2libGUgZXZlbiBpZiB0aGV5IGNvbGxpZGUgd2l0aCB0aGUgaWNvbi4iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImljb24tb3B0aW9uYWwiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMSxkb2M6IklmIHRydWUsIHRleHQgd2lsbCBkaXNwbGF5IHdpdGhvdXQgdGhlaXIgY29ycmVzcG9uZGluZyBpY29ucyB3aGVuIHRoZSBpY29uIGNvbGxpZGVzIHdpdGggb3RoZXIgc3ltYm9scyBhbmQgdGhlIHRleHQgZG9lcyBub3QuIixyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbIm1hcCIsInZpZXdwb3J0Il0sImRlZmF1bHQiOiJ2aWV3cG9ydCIsZG9jOiJPcmllbnRhdGlvbiBvZiBpY29uIHdoZW4gbWFwIGlzIHJvdGF0ZWQuIixyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLXNpemUiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxLG1pbmltdW06MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiU2NhbGUgZmFjdG9yIGZvciBpY29uLiAxIGlzIG9yaWdpbmFsIHNpemUsIDMgdHJpcGxlcyB0aGUgc2l6ZS4iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImljb24tdGV4dC1maXQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiExLHZhbHVlczpbIm5vbmUiLCJib3RoIiwid2lkdGgiLCJoZWlnaHQiXSwiZGVmYXVsdCI6Im5vbmUiLGRvYzoiUG9zaXRpb24gYW5kIHNjYWxlIGFuIGljb24gYnkgdGhlIGl0cyBjb3JyZXNwb25kaW5nIHRleHQuIixyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e319fSwiaWNvbi10ZXh0LWZpdC1wYWRkaW5nIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDo0LCJkZWZhdWx0IjpbMCwwLDAsMF0sdW5pdHM6InBpeGVscyIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxkb2M6IlNpemUgb2YgcGFkZGluZyBhcmVhIGFyb3VuZCB0aGUgdGV4dC1maXQgc2l6ZSBpbiBjbG9ja3dpc2Ugb3JkZXI6IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdC4iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSIsImljb24tdGV4dC1maXQiLCJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e319fSwiaWNvbi1pbWFnZSI6e3R5cGU6InN0cmluZyIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxkb2M6IkEgc3RyaW5nIHdpdGgge3Rva2Vuc30gcmVwbGFjZWQsIHJlZmVyZW5jaW5nIHRoZSBkYXRhIHByb3BlcnR5IHRvIHB1bGwgZnJvbS4iLHRva2VuczohMCwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLXJvdGF0ZSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAscGVyaW9kOjM2MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHVuaXRzOiJkZWdyZWVzIixkb2M6IlJvdGF0ZXMgdGhlIGljb24gY2xvY2t3aXNlLiIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiaWNvbi1wYWRkaW5nIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MixtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx1bml0czoicGl4ZWxzIixkb2M6IlNpemUgb2YgdGhlIGFkZGl0aW9uYWwgYXJlYSBhcm91bmQgdGhlIGljb24gYm91bmRpbmcgYm94IHVzZWQgZm9yIGRldGVjdGluZyBzeW1ib2wgY29sbGlzaW9ucy4iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImljb24ta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITEsZG9jOiJJZiB0cnVlLCB0aGUgaWNvbiBtYXkgYmUgZmxpcHBlZCB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmcgcmVuZGVyZWQgdXBzaWRlLWRvd24uIixyZXF1aXJlczpbImljb24taW1hZ2UiLHsiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOiJsaW5lIn1dLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImljb24tb2Zmc2V0Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLCJkZWZhdWx0IjpbMCwwXSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiT2Zmc2V0IGRpc3RhbmNlIG9mIGljb24gZnJvbSBpdHMgYW5jaG9yLiBQb3NpdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgcmlnaHQgYW5kIGRvd24sIHdoaWxlIG5lZ2F0aXZlIHZhbHVlcyBpbmRpY2F0ZSBsZWZ0IGFuZCB1cC4iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInRleHQtcGl0Y2gtYWxpZ25tZW50Ijp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLGRvYzoiQWxpZ25zIHRleHQgdG8gdGhlIHBsYW5lIG9mIHRoZSBgdmlld3BvcnRgIG9yIHRoZSBgbWFwYCB3aGVuIHRoZSBtYXAgaXMgcGl0Y2hlZC4gTWF0Y2hlcyBgdGV4dC1yb3RhdGlvbi1hbGlnbm1lbnRgIGlmIHVuc3BlY2lmaWVkLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e319fSwidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbIm1hcCIsInZpZXdwb3J0Il0sImRlZmF1bHQiOiJ2aWV3cG9ydCIsZG9jOiJPcmllbnRhdGlvbiBvZiB0ZXh0IHdoZW4gbWFwIGlzIHJvdGF0ZWQuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LWZpZWxkIjp7dHlwZToic3RyaW5nIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjoiIix0b2tlbnM6ITAsZG9jOiJWYWx1ZSB0byB1c2UgZm9yIGEgdGV4dCBsYWJlbC4gRmVhdHVyZSBwcm9wZXJ0aWVzIGFyZSBzcGVjaWZpZWQgdXNpbmcgdG9rZW5zIGxpa2Uge2ZpZWxkX25hbWV9LiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC1mb250Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJzdHJpbmciLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOlsiT3BlbiBTYW5zIFJlZ3VsYXIiLCJBcmlhbCBVbmljb2RlIE1TIFJlZ3VsYXIiXSxkb2M6IkZvbnQgc3RhY2sgdG8gdXNlIGZvciBkaXNwbGF5aW5nIHRleHQuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LXNpemUiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxNixtaW5pbXVtOjAsdW5pdHM6InBpeGVscyIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxkb2M6IkZvbnQgc2l6ZS4iLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInRleHQtbWF4LXdpZHRoIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MTAsbWluaW11bTowLHVuaXRzOiJlbSIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxkb2M6IlRoZSBtYXhpbXVtIGxpbmUgd2lkdGggZm9yIHRleHQgd3JhcHBpbmcuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LWxpbmUtaGVpZ2h0Ijp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MS4yLHVuaXRzOiJlbSIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxkb2M6IlRleHQgbGVhZGluZyB2YWx1ZSBmb3IgbXVsdGktbGluZSB0ZXh0LiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC1sZXR0ZXItc3BhY2luZyI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsdW5pdHM6ImVtIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiVGV4dCB0cmFja2luZyBhbW91bnQuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LWp1c3RpZnkiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLCJkZWZhdWx0IjoiY2VudGVyIixkb2M6IlRleHQganVzdGlmaWNhdGlvbiBvcHRpb25zLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC1hbmNob3IiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbImNlbnRlciIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwiYm90dG9tLWxlZnQiLCJib3R0b20tcmlnaHQiXSwiZGVmYXVsdCI6ImNlbnRlciIsZG9jOiJQYXJ0IG9mIHRoZSB0ZXh0IHBsYWNlZCBjbG9zZXN0IHRvIHRoZSBhbmNob3IuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LW1heC1hbmdsZSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjQ1LHVuaXRzOiJkZWdyZWVzIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiTWF4aW11bSBhbmdsZSBjaGFuZ2UgYmV0d2VlbiBhZGphY2VudCBjaGFyYWN0ZXJzLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIix7InN5bWJvbC1wbGFjZW1lbnQiOiJsaW5lIn1dLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInRleHQtcm90YXRlIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxwZXJpb2Q6MzYwLHVuaXRzOiJkZWdyZWVzIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiUm90YXRlcyB0aGUgdGV4dCBjbG9ja3dpc2UuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LXBhZGRpbmciOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiU2l6ZSBvZiB0aGUgYWRkaXRpb25hbCBhcmVhIGFyb3VuZCB0aGUgdGV4dCBib3VuZGluZyBib3ggdXNlZCBmb3IgZGV0ZWN0aW5nIHN5bWJvbCBjb2xsaXNpb25zLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC1rZWVwLXVwcmlnaHQiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMCxkb2M6IklmIHRydWUsIHRoZSB0ZXh0IG1heSBiZSBmbGlwcGVkIHZlcnRpY2FsbHkgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nIHJlbmRlcmVkIHVwc2lkZS1kb3duLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIix7InRleHQtcm90YXRpb24tYWxpZ25tZW50IjoibWFwIn0seyJzeW1ib2wtcGxhY2VtZW50IjoibGluZSJ9XSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LXRyYW5zZm9ybSI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibm9uZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZSJdLCJkZWZhdWx0Ijoibm9uZSIsZG9jOiJTcGVjaWZpZXMgaG93IHRvIGNhcGl0YWxpemUgdGV4dCwgc2ltaWxhciB0byB0aGUgQ1NTIGB0ZXh0LXRyYW5zZm9ybWAgcHJvcGVydHkuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LW9mZnNldCI6e3R5cGU6ImFycmF5Iixkb2M6Ik9mZnNldCBkaXN0YW5jZSBvZiB0ZXh0IGZyb20gaXRzIGFuY2hvci4gUG9zaXRpdmUgdmFsdWVzIGluZGljYXRlIHJpZ2h0IGFuZCBkb3duLCB3aGlsZSBuZWdhdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgbGVmdCBhbmQgdXAuIix2YWx1ZToibnVtYmVyIix1bml0czoiZW1zIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGxlbmd0aDoyLCJkZWZhdWx0IjpbMCwwXSxyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LWFsbG93LW92ZXJsYXAiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMSxkb2M6IklmIHRydWUsIHRoZSB0ZXh0IHdpbGwgYmUgdmlzaWJsZSBldmVuIGlmIGl0IGNvbGxpZGVzIHdpdGggb3RoZXIgcHJldmlvdXNseSBkcmF3biBzeW1ib2xzLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC1pZ25vcmUtcGxhY2VtZW50Ijp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITEsZG9jOiJJZiB0cnVlLCBvdGhlciBzeW1ib2xzIGNhbiBiZSB2aXNpYmxlIGV2ZW4gaWYgdGhleSBjb2xsaWRlIHdpdGggdGhlIHRleHQuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LW9wdGlvbmFsIjp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITEsZG9jOiJJZiB0cnVlLCBpY29ucyB3aWxsIGRpc3BsYXkgd2l0aG91dCB0aGVpciBjb3JyZXNwb25kaW5nIHRleHQgd2hlbiB0aGUgdGV4dCBjb2xsaWRlcyB3aXRoIG90aGVyIHN5bWJvbHMgYW5kIHRoZSBpY29uIGRvZXMgbm90LiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIiwiaWNvbi1pbWFnZSJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sdmlzaWJpbGl0eTp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsidmlzaWJsZSIsIm5vbmUiXSwiZGVmYXVsdCI6InZpc2libGUiLGRvYzoiVGhlIGRpc3BsYXkgb2YgdGhpcyBsYXllci4gYG5vbmVgIGhpZGVzIHRoaXMgbGF5ZXIuIiwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19fSxsYXlvdXRfcmFzdGVyOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJ2aXNpYmxlIiwibm9uZSJdLCJkZWZhdWx0IjoidmlzaWJsZSIsZG9jOiJUaGUgZGlzcGxheSBvZiB0aGlzIGxheWVyLiBgbm9uZWAgaGlkZXMgdGhpcyBsYXllci4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX19LGZpbHRlcjp7dHlwZToiYXJyYXkiLHZhbHVlOiIqIixkb2M6IkEgZmlsdGVyIHNlbGVjdHMgc3BlY2lmaWMgZmVhdHVyZXMgZnJvbSBhIGxheWVyLiJ9LGZpbHRlcl9vcGVyYXRvcjp7dHlwZToiZW51bSIsdmFsdWVzOlsiPT0iLCIhPSIsIj4iLCI+PSIsIjwiLCI8PSIsImluIiwiIWluIiwiYWxsIiwiYW55Iiwibm9uZSIsImhhcyIsIiFoYXMiXSxkb2M6IlRoZSBmaWx0ZXIgb3BlcmF0b3IuIn0sZ2VvbWV0cnlfdHlwZTp7dHlwZToiZW51bSIsdmFsdWVzOlsiUG9pbnQiLCJMaW5lU3RyaW5nIiwiUG9seWdvbiJdLGRvYzoiVGhlIGdlb21ldHJ5IHR5cGUgZm9yIHRoZSBmaWx0ZXIgdG8gc2VsZWN0LiJ9LGNvbG9yX29wZXJhdGlvbjp7dHlwZToiZW51bSIsdmFsdWVzOlsibGlnaHRlbiIsInNhdHVyYXRlIiwic3BpbiIsImZhZGUiLCJtaXgiXSxkb2M6IkEgY29sb3Igb3BlcmF0aW9uIHRvIGFwcGx5LiJ9LCJmdW5jdGlvbiI6e3N0b3BzOnt0eXBlOiJhcnJheSIscmVxdWlyZWQ6ITAsZG9jOiJBbiBhcnJheSBvZiBzdG9wcy4iLHZhbHVlOiJmdW5jdGlvbl9zdG9wIn0sYmFzZTp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MSxtaW5pbXVtOjAsZG9jOiJUaGUgZXhwb25lbnRpYWwgYmFzZSBvZiB0aGUgaW50ZXJwb2xhdGlvbiBjdXJ2ZS4gSXQgY29udHJvbHMgdGhlIHJhdGUgYXQgd2hpY2ggdGhlIHJlc3VsdCBpbmNyZWFzZXMuIEhpZ2hlciB2YWx1ZXMgbWFrZSB0aGUgcmVzdWx0IGluY3JlYXNlIG1vcmUgdG93YXJkcyB0aGUgaGlnaCBlbmQgb2YgdGhlIHJhbmdlLiBXaXRoIGAxYCB0aGUgc3RvcHMgYXJlIGludGVycG9sYXRlZCBsaW5lYXJseS4ifSxwcm9wZXJ0eTp7dHlwZToic3RyaW5nIixkb2M6IlRoZSBuYW1lIG9mIGEgZ2xvYmFsIHByb3BlcnR5IG9yIGZlYXR1cmUgcHJvcGVydHkgdG8gdXNlIGFzIHRoZSBmdW5jdGlvbiBpbnB1dC4iLCJkZWZhdWx0IjoiJHpvb20ifSx0eXBlOnt0eXBlOiJlbnVtIix2YWx1ZXM6WyJleHBvbmVudGlhbCIsImludGVydmFsIiwiY2F0ZWdvcmljYWwiXSxkb2M6IlRoZSBpbnRlcnBvbGF0aW9uIHN0cmF0ZWd5IHRvIHVzZSBpbiBmdW5jdGlvbiBldmFsdWF0aW9uLiIsImRlZmF1bHQiOiJleHBvbmVudGlhbCJ9fSxmdW5jdGlvbl9zdG9wOnt0eXBlOiJhcnJheSIsbWluaW11bTowLG1heGltdW06MjIsdmFsdWU6WyJudW1iZXIiLCJjb2xvciJdLGxlbmd0aDoyLGRvYzoiWm9vbSBsZXZlbCBhbmQgdmFsdWUgcGFpci4ifSxwYWludDpbInBhaW50X2ZpbGwiLCJwYWludF9saW5lIiwicGFpbnRfY2lyY2xlIiwicGFpbnRfc3ltYm9sIiwicGFpbnRfcmFzdGVyIiwicGFpbnRfYmFja2dyb3VuZCJdLHBhaW50X2ZpbGw6eyJmaWxsLWFudGlhbGlhcyI6e3R5cGU6ImJvb2xlYW4iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOiEwLGRvYzoiV2hldGhlciBvciBub3QgdGhlIGZpbGwgc2hvdWxkIGJlIGFudGlhbGlhc2VkLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiZmlsbC1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsZG9jOiJUaGUgb3BhY2l0eSBvZiB0aGUgZW50aXJlIGZpbGwgbGF5ZXIuIEluIGNvbnRyYXN0IHRvIHRoZSBmaWxsLWNvbG9yLCB0aGlzIHZhbHVlIHdpbGwgYWxzbyBhZmZlY3QgdGhlIDFweCBzdHJva2UgYXJvdW5kIHRoZSBmaWxsLCBpZiB0aGUgc3Ryb2tlIGlzIHVzZWQuIix0cmFuc2l0aW9uOiEwLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImZpbGwtY29sb3IiOnt0eXBlOiJjb2xvciIsImRlZmF1bHQiOiIjMDAwMDAwIixkb2M6IlRoZSBjb2xvciBvZiB0aGUgZmlsbGVkIHBhcnQgb2YgdGhpcyBsYXllci4gVGhpcyBjb2xvciBjYW4gYmUgc3BlY2lmaWVkIGFzIHJnYmEgd2l0aCBhbiBhbHBoYSBjb21wb25lbnQgYW5kIHRoZSBjb2xvcidzIG9wYWNpdHkgd2lsbCBub3QgYWZmZWN0IHRoZSBvcGFjaXR5IG9mIHRoZSAxcHggc3Ryb2tlLCBpZiBpdCBpcyB1c2VkLiIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlt7IiEiOiJmaWxsLXBhdHRlcm4ifV0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn0sInByb3BlcnR5LWZ1bmN0aW9uIjp7anM6IjAuMTkuMCJ9fX0sImZpbGwtb3V0bGluZS1jb2xvciI6e3R5cGU6ImNvbG9yIixkb2M6IlRoZSBvdXRsaW5lIGNvbG9yIG9mIHRoZSBmaWxsLiBNYXRjaGVzIHRoZSB2YWx1ZSBvZiBgZmlsbC1jb2xvcmAgaWYgdW5zcGVjaWZpZWQuIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImZpbGwtcGF0dGVybiJ9LHsiZmlsbC1hbnRpYWxpYXMiOiEwfV0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn0sInByb3BlcnR5LWZ1bmN0aW9uIjp7anM6IjAuMTkuMCJ9fX0sImZpbGwtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLCJkZWZhdWx0IjpbMCwwXSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZG9jOiJUaGUgZ2VvbWV0cnkncyBvZmZzZXQuIFZhbHVlcyBhcmUgW3gsIHldIHdoZXJlIG5lZ2F0aXZlcyBpbmRpY2F0ZSBsZWZ0IGFuZCB1cCwgcmVzcGVjdGl2ZWx5LiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiZmlsbC10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLGRvYzoiQ29udHJvbCB3aGV0aGVyIHRoZSB0cmFuc2xhdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgbWFwIChub3J0aCkgb3Igdmlld3BvcnQgKHNjcmVlbikiLCJkZWZhdWx0IjoibWFwIixyZXF1aXJlczpbImZpbGwtdHJhbnNsYXRlIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiZmlsbC1wYXR0ZXJuIjp7dHlwZToic3RyaW5nIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsZG9jOiJOYW1lIG9mIGltYWdlIGluIHNwcml0ZSB0byB1c2UgZm9yIGRyYXdpbmcgaW1hZ2UgZmlsbHMuIEZvciBzZWFtbGVzcyBwYXR0ZXJucywgaW1hZ2Ugd2lkdGggYW5kIGhlaWdodCBtdXN0IGJlIGEgZmFjdG9yIG9mIHR3byAoMiwgNCwgOCwgLi4uLCA1MTIpLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fX0scGFpbnRfbGluZTp7ImxpbmUtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZG9jOiJUaGUgb3BhY2l0eSBhdCB3aGljaCB0aGUgbGluZSB3aWxsIGJlIGRyYXduLiIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwibGluZS1jb2xvciI6e3R5cGU6ImNvbG9yIixkb2M6IlRoZSBjb2xvciB3aXRoIHdoaWNoIHRoZSBsaW5lIHdpbGwgYmUgZHJhd24uIiwiZGVmYXVsdCI6IiMwMDAwMDAiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbeyIhIjoibGluZS1wYXR0ZXJuIn1dLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImxpbmUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLCJkZWZhdWx0IjpbMCwwXSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZG9jOiJUaGUgZ2VvbWV0cnkncyBvZmZzZXQuIFZhbHVlcyBhcmUgW3gsIHldIHdoZXJlIG5lZ2F0aXZlcyBpbmRpY2F0ZSBsZWZ0IGFuZCB1cCwgcmVzcGVjdGl2ZWx5LiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwibGluZS10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLGRvYzoiQ29udHJvbCB3aGV0aGVyIHRoZSB0cmFuc2xhdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgbWFwIChub3J0aCkgb3Igdmlld3BvcnQgKHNjcmVlbikiLCJkZWZhdWx0IjoibWFwIixyZXF1aXJlczpbImxpbmUtdHJhbnNsYXRlIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwibGluZS13aWR0aCI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixkb2M6IlN0cm9rZSB0aGlja25lc3MuIiwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJsaW5lLWdhcC13aWR0aCI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsbWluaW11bTowLGRvYzoiRHJhd3MgYSBsaW5lIGNhc2luZyBvdXRzaWRlIG9mIGEgbGluZSdzIGFjdHVhbCBwYXRoLiBWYWx1ZSBpbmRpY2F0ZXMgdGhlIHdpZHRoIG9mIHRoZSBpbm5lciBnYXAuIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwibGluZS1vZmZzZXQiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLGRvYzonVGhlIGxpbmVcJ3Mgb2Zmc2V0IHBlcnBlbmRpY3VsYXIgdG8gaXRzIGRpcmVjdGlvbi4gVmFsdWVzIG1heSBiZSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSwgd2hlcmUgcG9zaXRpdmUgaW5kaWNhdGVzICJyaWdodHdhcmRzIiAoaWYgeW91IHdlcmUgbW92aW5nIGluIHRoZSBkaXJlY3Rpb24gb2YgdGhlIGxpbmUpIGFuZCBuZWdhdGl2ZSBpbmRpY2F0ZXMgImxlZnR3YXJkcy4iJywiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEyLjEiLGlvczoiMy4xLjAiLGFuZHJvaWQ6IjMuMC4wIn19fSwibGluZS1ibHVyIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGRvYzoiQmx1ciBhcHBsaWVkIHRvIHRoZSBsaW5lLCBpbiBwaXhlbHMuIiwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJsaW5lLWRhc2hhcnJheSI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLGRvYzoiU3BlY2lmaWVzIHRoZSBsZW5ndGhzIG9mIHRoZSBhbHRlcm5hdGluZyBkYXNoZXMgYW5kIGdhcHMgdGhhdCBmb3JtIHRoZSBkYXNoIHBhdHRlcm4uIFRoZSBsZW5ndGhzIGFyZSBsYXRlciBzY2FsZWQgYnkgdGhlIGxpbmUgd2lkdGguIFRvIGNvbnZlcnQgYSBkYXNoIGxlbmd0aCB0byBwaXhlbHMsIG11bHRpcGx5IHRoZSBsZW5ndGggYnkgdGhlIGN1cnJlbnQgbGluZSB3aWR0aC4iLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJsaW5lIHdpZHRocyIscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJsaW5lLXBhdHRlcm4iOnt0eXBlOiJzdHJpbmciLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxkb2M6Ik5hbWUgb2YgaW1hZ2UgaW4gc3ByaXRlIHRvIHVzZSBmb3IgZHJhd2luZyBpbWFnZSBsaW5lcy4gRm9yIHNlYW1sZXNzIHBhdHRlcm5zLCBpbWFnZSB3aWR0aCBtdXN0IGJlIGEgZmFjdG9yIG9mIHR3byAoMiwgNCwgOCwgLi4uLCA1MTIpLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fX0scGFpbnRfY2lyY2xlOnsiY2lyY2xlLXJhZGl1cyI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjUsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixkb2M6IkNpcmNsZSByYWRpdXMuIiwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifSwicHJvcGVydHktZnVuY3Rpb24iOntqczoiMC4xOC4wIn19fSwiY2lyY2xlLWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoiIzAwMDAwMCIsZG9jOiJUaGUgY29sb3Igb2YgdGhlIGNpcmNsZS4iLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifSwicHJvcGVydHktZnVuY3Rpb24iOntqczoiMC4xOC4wIn19fSwiY2lyY2xlLWJsdXIiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLGRvYzoiQW1vdW50IHRvIGJsdXIgdGhlIGNpcmNsZS4gMSBibHVycyB0aGUgY2lyY2xlIHN1Y2ggdGhhdCBvbmx5IHRoZSBjZW50ZXJwb2ludCBpcyBmdWxsIG9wYWNpdHkuIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn0sInByb3BlcnR5LWZ1bmN0aW9uIjp7anM6IjAuMjAuMCJ9fX0sImNpcmNsZS1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkb2M6IlRoZSBvcGFjaXR5IGF0IHdoaWNoIHRoZSBjaXJjbGUgd2lsbCBiZSBkcmF3bi4iLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9LCJwcm9wZXJ0eS1mdW5jdGlvbiI6e2pzOiIwLjIwLjAifX19LCJjaXJjbGUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLCJkZWZhdWx0IjpbMCwwXSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZG9jOiJUaGUgZ2VvbWV0cnkncyBvZmZzZXQuIFZhbHVlcyBhcmUgW3gsIHldIHdoZXJlIG5lZ2F0aXZlcyBpbmRpY2F0ZSBsZWZ0IGFuZCB1cCwgcmVzcGVjdGl2ZWx5LiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbIm1hcCIsInZpZXdwb3J0Il0sZG9jOiJDb250cm9sIHdoZXRoZXIgdGhlIHRyYW5zbGF0aW9uIGlzIHJlbGF0aXZlIHRvIHRoZSBtYXAgKG5vcnRoKSBvciB2aWV3cG9ydCAoc2NyZWVuKSIsImRlZmF1bHQiOiJtYXAiLHJlcXVpcmVzOlsiY2lyY2xlLXRyYW5zbGF0ZSJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImNpcmNsZS1waXRjaC1zY2FsZSI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibWFwIiwidmlld3BvcnQiXSwiZGVmYXVsdCI6Im1hcCIsZG9jOiJDb250cm9scyB0aGUgc2NhbGluZyBiZWhhdmlvciBvZiB0aGUgY2lyY2xlIHdoZW4gdGhlIG1hcCBpcyBwaXRjaGVkLiBUaGUgdmFsdWUgYG1hcGAgc2NhbGVzIGNpcmNsZXMgYWNjb3JkaW5nIHRvIHRoZWlyIGFwcGFyZW50IGRpc3RhbmNlIHRvIHRoZSBjYW1lcmEuIFRoZSB2YWx1ZSBgdmlld3BvcnRgIHJlc3VsdHMgaW4gbm8gcGl0Y2gtcmVsYXRlZCBzY2FsaW5nLiIsInNkay1zdXBwb3J0Ijp7YmFzaWM6e319fX0scGFpbnRfc3ltYm9sOnsiaWNvbi1vcGFjaXR5Ijp7ZG9jOiJUaGUgb3BhY2l0eSBhdCB3aGljaCB0aGUgaWNvbiB3aWxsIGJlIGRyYXduLiIsdHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MSxtaW5pbXVtOjAsbWF4aW11bToxLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoiIzAwMDAwMCIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLGRvYzoiVGhlIGNvbG9yIG9mIHRoZSBpY29uLiBUaGlzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBzZGYgaWNvbnMuIixyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLWhhbG8tY29sb3IiOnt0eXBlOiJjb2xvciIsImRlZmF1bHQiOiJyZ2JhKDAsIDAsIDAsIDApIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsZG9jOiJUaGUgY29sb3Igb2YgdGhlIGljb24ncyBoYWxvLiBJY29uIGhhbG9zIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBzZGYgaWNvbnMuIixyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLWhhbG8td2lkdGgiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLG1pbmltdW06MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZG9jOiJEaXN0YW5jZSBvZiBoYWxvIHRvIHRoZSBpY29uIG91dGxpbmUuIixyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLWhhbG8tYmx1ciI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixkb2M6IkZhZGUgb3V0IHRoZSBoYWxvIHRvd2FyZHMgdGhlIG91dHNpZGUuIixyZXF1aXJlczpbImljb24taW1hZ2UiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJpY29uLXRyYW5zbGF0ZSI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6MiwiZGVmYXVsdCI6WzAsMF0sImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGRvYzoiRGlzdGFuY2UgdGhhdCB0aGUgaWNvbidzIGFuY2hvciBpcyBtb3ZlZCBmcm9tIGl0cyBvcmlnaW5hbCBwbGFjZW1lbnQuIFBvc2l0aXZlIHZhbHVlcyBpbmRpY2F0ZSByaWdodCBhbmQgZG93biwgd2hpbGUgbmVnYXRpdmUgdmFsdWVzIGluZGljYXRlIGxlZnQgYW5kIHVwLiIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwiaWNvbi10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLGRvYzoiQ29udHJvbCB3aGV0aGVyIHRoZSB0cmFuc2xhdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgbWFwIChub3J0aCkgb3Igdmlld3BvcnQgKHNjcmVlbikuIiwiZGVmYXVsdCI6Im1hcCIscmVxdWlyZXM6WyJpY29uLWltYWdlIiwiaWNvbi10cmFuc2xhdGUiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRvYzoiVGhlIG9wYWNpdHkgYXQgd2hpY2ggdGhlIHRleHQgd2lsbCBiZSBkcmF3bi4iLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInRleHQtY29sb3IiOnt0eXBlOiJjb2xvciIsZG9jOiJUaGUgY29sb3Igd2l0aCB3aGljaCB0aGUgdGV4dCB3aWxsIGJlIGRyYXduLiIsImRlZmF1bHQiOiIjMDAwMDAwIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC1oYWxvLWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoicmdiYSgwLCAwLCAwLCAwKSIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLGRvYzoiVGhlIGNvbG9yIG9mIHRoZSB0ZXh0J3MgaGFsbywgd2hpY2ggaGVscHMgaXQgc3RhbmQgb3V0IGZyb20gYmFja2dyb3VuZHMuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LWhhbG8td2lkdGgiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLG1pbmltdW06MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZG9jOiJEaXN0YW5jZSBvZiBoYWxvIHRvIHRoZSBmb250IG91dGxpbmUuIE1heCB0ZXh0IGhhbG8gd2lkdGggaXMgMS80IG9mIHRoZSBmb250LXNpemUuIixyZXF1aXJlczpbInRleHQtZmllbGQiXSwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJ0ZXh0LWhhbG8tYmx1ciI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixkb2M6IlRoZSBoYWxvJ3MgZmFkZW91dCBkaXN0YW5jZSB0b3dhcmRzIHRoZSBvdXRzaWRlLiIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwidGV4dC10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsImRlZmF1bHQiOlswLDBdLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixkb2M6IkRpc3RhbmNlIHRoYXQgdGhlIHRleHQncyBhbmNob3IgaXMgbW92ZWQgZnJvbSBpdHMgb3JpZ2luYWwgcGxhY2VtZW50LiBQb3NpdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgcmlnaHQgYW5kIGRvd24sIHdoaWxlIG5lZ2F0aXZlIHZhbHVlcyBpbmRpY2F0ZSBsZWZ0IGFuZCB1cC4iLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInRleHQtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibWFwIiwidmlld3BvcnQiXSxkb2M6IkNvbnRyb2wgd2hldGhlciB0aGUgdHJhbnNsYXRpb24gaXMgcmVsYXRpdmUgdG8gdGhlIG1hcCAobm9ydGgpIG9yIHZpZXdwb3J0IChzY3JlZW4pLiIsImRlZmF1bHQiOiJtYXAiLHJlcXVpcmVzOlsidGV4dC1maWVsZCIsInRleHQtdHJhbnNsYXRlIl0sInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fX0scGFpbnRfcmFzdGVyOnsicmFzdGVyLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRvYzoiVGhlIG9wYWNpdHkgYXQgd2hpY2ggdGhlIGltYWdlIHdpbGwgYmUgZHJhd24uIiwiZGVmYXVsdCI6MSxtaW5pbXVtOjAsbWF4aW11bToxLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwicmFzdGVyLWh1ZS1yb3RhdGUiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLHBlcmlvZDozNjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoiZGVncmVlcyIsZG9jOiJSb3RhdGVzIGh1ZXMgYXJvdW5kIHRoZSBjb2xvciB3aGVlbC4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sInJhc3Rlci1icmlnaHRuZXNzLW1pbiI6e3R5cGU6Im51bWJlciIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsZG9jOiJJbmNyZWFzZSBvciByZWR1Y2UgdGhlIGJyaWdodG5lc3Mgb2YgdGhlIGltYWdlLiBUaGUgdmFsdWUgaXMgdGhlIG1pbmltdW0gYnJpZ2h0bmVzcy4iLCJkZWZhdWx0IjowLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJyYXN0ZXItYnJpZ2h0bmVzcy1tYXgiOnt0eXBlOiJudW1iZXIiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLGRvYzoiSW5jcmVhc2Ugb3IgcmVkdWNlIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBpbWFnZS4gVGhlIHZhbHVlIGlzIHRoZSBtYXhpbXVtIGJyaWdodG5lc3MuIiwiZGVmYXVsdCI6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwicmFzdGVyLXNhdHVyYXRpb24iOnt0eXBlOiJudW1iZXIiLGRvYzoiSW5jcmVhc2Ugb3IgcmVkdWNlIHRoZSBzYXR1cmF0aW9uIG9mIHRoZSBpbWFnZS4iLCJkZWZhdWx0IjowLG1pbmltdW06LTEsbWF4aW11bToxLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsInNkay1zdXBwb3J0Ijp7YmFzaWM6e2pzOiIwLjEwLjAiLGlvczoiMi4wLjAiLGFuZHJvaWQ6IjIuMC4xIn19fSwicmFzdGVyLWNvbnRyYXN0Ijp7dHlwZToibnVtYmVyIixkb2M6IkluY3JlYXNlIG9yIHJlZHVjZSB0aGUgY29udHJhc3Qgb2YgdGhlIGltYWdlLiIsImRlZmF1bHQiOjAsbWluaW11bTotMSxtYXhpbXVtOjEsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCwic2RrLXN1cHBvcnQiOntiYXNpYzp7anM6IjAuMTAuMCIsaW9zOiIyLjAuMCIsYW5kcm9pZDoiMi4wLjEifX19LCJyYXN0ZXItZmFkZS1kdXJhdGlvbiI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjMwMCxtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoibWlsbGlzZWNvbmRzIixkb2M6IkZhZGUgZHVyYXRpb24gd2hlbiBhIG5ldyB0aWxlIGlzIGFkZGVkLiIsCiJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX19LHBhaW50X2JhY2tncm91bmQ6eyJiYWNrZ3JvdW5kLWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoiIzAwMDAwMCIsZG9jOiJUaGUgY29sb3Igd2l0aCB3aGljaCB0aGUgYmFja2dyb3VuZCB3aWxsIGJlIGRyYXduLiIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbeyIhIjoiYmFja2dyb3VuZC1wYXR0ZXJuIn1dLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImJhY2tncm91bmQtcGF0dGVybiI6e3R5cGU6InN0cmluZyIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxkb2M6Ik5hbWUgb2YgaW1hZ2UgaW4gc3ByaXRlIHRvIHVzZSBmb3IgZHJhd2luZyBhbiBpbWFnZSBiYWNrZ3JvdW5kLiBGb3Igc2VhbWxlc3MgcGF0dGVybnMsIGltYWdlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBhIGZhY3RvciBvZiB0d28gKDIsIDQsIDgsIC4uLiwgNTEyKS4iLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX0sImJhY2tncm91bmQtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEsbWluaW11bTowLG1heGltdW06MSxkb2M6IlRoZSBvcGFjaXR5IGF0IHdoaWNoIHRoZSBiYWNrZ3JvdW5kIHdpbGwgYmUgZHJhd24uIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLCJzZGstc3VwcG9ydCI6e2Jhc2ljOntqczoiMC4xMC4wIixpb3M6IjIuMC4wIixhbmRyb2lkOiIyLjAuMSJ9fX19LHRyYW5zaXRpb246e2R1cmF0aW9uOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjozMDAsbWluaW11bTowLHVuaXRzOiJtaWxsaXNlY29uZHMiLGRvYzoiVGltZSBhbGxvdHRlZCBmb3IgdHJhbnNpdGlvbnMgdG8gY29tcGxldGUuIn0sZGVsYXk6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsbWluaW11bTowLHVuaXRzOiJtaWxsaXNlY29uZHMiLGRvYzoiTGVuZ3RoIG9mIHRpbWUgYmVmb3JlIGEgdHJhbnNpdGlvbiBiZWdpbnMuIn19fX0se31dLDQxOTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17JHZlcnNpb246OCwkcm9vdDp7dmVyc2lvbjp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOls4XX0sbmFtZTp7dHlwZToic3RyaW5nIn0sbWV0YWRhdGE6e3R5cGU6IioifSxjZW50ZXI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIn0sem9vbTp7dHlwZToibnVtYmVyIn0sYmVhcmluZzp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxwZXJpb2Q6MzYwLHVuaXRzOiJkZWdyZWVzIn0scGl0Y2g6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsdW5pdHM6ImRlZ3JlZXMifSxzb3VyY2VzOntyZXF1aXJlZDohMCx0eXBlOiJzb3VyY2VzIn0sc3ByaXRlOnt0eXBlOiJzdHJpbmcifSxnbHlwaHM6e3R5cGU6InN0cmluZyJ9LHRyYW5zaXRpb246e3R5cGU6InRyYW5zaXRpb24ifSxsYXllcnM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToibGF5ZXIifX0sc291cmNlczp7IioiOnt0eXBlOiJzb3VyY2UifX0sc291cmNlOlsic291cmNlX3RpbGUiLCJzb3VyY2VfZ2VvanNvbiIsInNvdXJjZV92aWRlbyIsInNvdXJjZV9pbWFnZSJdLHNvdXJjZV90aWxlOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6WyJ2ZWN0b3IiLCJyYXN0ZXIiXX0sdXJsOnt0eXBlOiJzdHJpbmcifSx0aWxlczp7dHlwZToiYXJyYXkiLHZhbHVlOiJzdHJpbmcifSxtaW56b29tOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowfSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoyMn0sdGlsZVNpemU6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjUxMix1bml0czoicGl4ZWxzIn0sIioiOnt0eXBlOiIqIn19LHNvdXJjZV9nZW9qc29uOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6WyJnZW9qc29uIl19LGRhdGE6e3R5cGU6IioifSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxNH0sYnVmZmVyOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0Ijo2NH0sdG9sZXJhbmNlOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjozfSxjbHVzdGVyOnt0eXBlOiJib29sZWFuIiwiZGVmYXVsdCI6ITF9LGNsdXN0ZXJSYWRpdXM6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjQwMH0sY2x1c3Rlck1heFpvb206e3R5cGU6Im51bWJlciJ9fSxzb3VyY2VfdmlkZW86e3R5cGU6e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczpbInZpZGVvIl19LHVybHM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sY29vcmRpbmF0ZXM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5IixsZW5ndGg6NCx2YWx1ZTp7dHlwZToiYXJyYXkiLGxlbmd0aDoyLHZhbHVlOiJudW1iZXIifX19LHNvdXJjZV9pbWFnZTp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOlsiaW1hZ2UiXX0sdXJsOntyZXF1aXJlZDohMCx0eXBlOiJzdHJpbmcifSxjb29yZGluYXRlczp7cmVxdWlyZWQ6ITAsdHlwZToiYXJyYXkiLGxlbmd0aDo0LHZhbHVlOnt0eXBlOiJhcnJheSIsbGVuZ3RoOjIsdmFsdWU6Im51bWJlciJ9fX0sbGF5ZXI6e2lkOnt0eXBlOiJzdHJpbmciLHJlcXVpcmVkOiEwfSx0eXBlOnt0eXBlOiJlbnVtIix2YWx1ZXM6WyJmaWxsIiwibGluZSIsInN5bWJvbCIsImNpcmNsZSIsInJhc3RlciIsImJhY2tncm91bmQiXX0sbWV0YWRhdGE6e3R5cGU6IioifSxyZWY6e3R5cGU6InN0cmluZyJ9LHNvdXJjZTp7dHlwZToic3RyaW5nIn0sInNvdXJjZS1sYXllciI6e3R5cGU6InN0cmluZyJ9LG1pbnpvb206e3R5cGU6Im51bWJlciIsbWluaW11bTowLG1heGltdW06MjJ9LG1heHpvb206e3R5cGU6Im51bWJlciIsbWluaW11bTowLG1heGltdW06MjJ9LGludGVyYWN0aXZlOnt0eXBlOiJib29sZWFuIiwiZGVmYXVsdCI6ITF9LGZpbHRlcjp7dHlwZToiZmlsdGVyIn0sbGF5b3V0Ont0eXBlOiJsYXlvdXQifSxwYWludDp7dHlwZToicGFpbnQifSwicGFpbnQuKiI6e3R5cGU6InBhaW50In19LGxheW91dDpbImxheW91dF9maWxsIiwibGF5b3V0X2xpbmUiLCJsYXlvdXRfY2lyY2xlIiwibGF5b3V0X3N5bWJvbCIsImxheW91dF9yYXN0ZXIiLCJsYXlvdXRfYmFja2dyb3VuZCJdLGxheW91dF9iYWNrZ3JvdW5kOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJ2aXNpYmxlIiwibm9uZSJdLCJkZWZhdWx0IjoidmlzaWJsZSJ9fSxsYXlvdXRfZmlsbDp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsidmlzaWJsZSIsIm5vbmUiXSwiZGVmYXVsdCI6InZpc2libGUifX0sbGF5b3V0X2NpcmNsZTp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsidmlzaWJsZSIsIm5vbmUiXSwiZGVmYXVsdCI6InZpc2libGUifX0sbGF5b3V0X2xpbmU6eyJsaW5lLWNhcCI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsiYnV0dCIsInJvdW5kIiwic3F1YXJlIl0sImRlZmF1bHQiOiJidXR0In0sImxpbmUtam9pbiI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsiYmV2ZWwiLCJyb3VuZCIsIm1pdGVyIl0sImRlZmF1bHQiOiJtaXRlciJ9LCJsaW5lLW1pdGVyLWxpbWl0Ijp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHJlcXVpcmVzOlt7ImxpbmUtam9pbiI6Im1pdGVyIn1dfSwibGluZS1yb3VuZC1saW1pdCI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEuMDUsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxyZXF1aXJlczpbeyJsaW5lLWpvaW4iOiJyb3VuZCJ9XX0sdmlzaWJpbGl0eTp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsidmlzaWJsZSIsIm5vbmUiXSwiZGVmYXVsdCI6InZpc2libGUifX0sbGF5b3V0X3N5bWJvbDp7InN5bWJvbC1wbGFjZW1lbnQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbInBvaW50IiwibGluZSJdLCJkZWZhdWx0IjoicG9pbnQifSwic3ltYm9sLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoyNTAsbWluaW11bToxLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdW5pdHM6InBpeGVscyIscmVxdWlyZXM6W3sic3ltYm9sLXBsYWNlbWVudCI6ImxpbmUifV19LCJzeW1ib2wtYXZvaWQtZWRnZXMiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMX0sImljb24tYWxsb3ctb3ZlcmxhcCI6e3R5cGU6ImJvb2xlYW4iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOiExLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdfSwiaWNvbi1pZ25vcmUtcGxhY2VtZW50Ijp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITEscmVxdWlyZXM6WyJpY29uLWltYWdlIl19LCJpY29uLW9wdGlvbmFsIjp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITEscmVxdWlyZXM6WyJpY29uLWltYWdlIiwidGV4dC1maWVsZCJdfSwiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbIm1hcCIsInZpZXdwb3J0Il0sImRlZmF1bHQiOiJ2aWV3cG9ydCIscmVxdWlyZXM6WyJpY29uLWltYWdlIl19LCJpY29uLXNpemUiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxLG1pbmltdW06MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdfSwiaWNvbi10ZXh0LWZpdCI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITEsdmFsdWVzOlsibm9uZSIsImJvdGgiLCJ3aWR0aCIsImhlaWdodCJdLCJkZWZhdWx0Ijoibm9uZSIscmVxdWlyZXM6WyJpY29uLWltYWdlIiwidGV4dC1maWVsZCJdfSwiaWNvbi10ZXh0LWZpdC1wYWRkaW5nIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDo0LCJkZWZhdWx0IjpbMCwwLDAsMF0sdW5pdHM6InBpeGVscyIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiLCJpY29uLXRleHQtZml0IiwidGV4dC1maWVsZCJdfSwiaWNvbi1pbWFnZSI6e3R5cGU6InN0cmluZyIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0b2tlbnM6ITB9LCJpY29uLXJvdGF0ZSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAscGVyaW9kOjM2MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHVuaXRzOiJkZWdyZWVzIixyZXF1aXJlczpbImljb24taW1hZ2UiXX0sImljb24tcGFkZGluZyI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjIsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdW5pdHM6InBpeGVscyIscmVxdWlyZXM6WyJpY29uLWltYWdlIl19LCJpY29uLWtlZXAtdXByaWdodCI6e3R5cGU6ImJvb2xlYW4iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOiExLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSIseyJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6Im1hcCJ9LHsic3ltYm9sLXBsYWNlbWVudCI6ImxpbmUifV19LCJpY29uLW9mZnNldCI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6MiwiZGVmYXVsdCI6WzAsMF0sImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXX0sInRleHQtcGl0Y2gtYWxpZ25tZW50Ijp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbIm1hcCIsInZpZXdwb3J0Il0sImRlZmF1bHQiOiJ2aWV3cG9ydCIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LWZpZWxkIjp7dHlwZToic3RyaW5nIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjoiIix0b2tlbnM6ITB9LCJ0ZXh0LWZvbnQiOnt0eXBlOiJhcnJheSIsdmFsdWU6InN0cmluZyIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6WyJPcGVuIFNhbnMgUmVndWxhciIsIkFyaWFsIFVuaWNvZGUgTVMgUmVndWxhciJdLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1zaXplIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MTYsbWluaW11bTowLHVuaXRzOiJwaXhlbHMiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LW1heC13aWR0aCI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEwLG1pbmltdW06MCx1bml0czoiZW0iLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LWxpbmUtaGVpZ2h0Ijp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MS4yLHVuaXRzOiJlbSIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXX0sInRleHQtbGV0dGVyLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLHVuaXRzOiJlbSIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXX0sInRleHQtanVzdGlmeSI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sImRlZmF1bHQiOiJjZW50ZXIiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1hbmNob3IiOnt0eXBlOiJlbnVtIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHZhbHVlczpbImNlbnRlciIsImxlZnQiLCJyaWdodCIsInRvcCIsImJvdHRvbSIsInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwiYm90dG9tLWxlZnQiLCJib3R0b20tcmlnaHQiXSwiZGVmYXVsdCI6ImNlbnRlciIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LW1heC1hbmdsZSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjQ1LHVuaXRzOiJkZWdyZWVzIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjoibGluZSJ9XX0sInRleHQtcm90YXRlIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxwZXJpb2Q6MzYwLHVuaXRzOiJkZWdyZWVzIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1wYWRkaW5nIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MixtaW5pbXVtOjAsdW5pdHM6InBpeGVscyIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXX0sInRleHQta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIix7InRleHQtcm90YXRpb24tYWxpZ25tZW50IjoibWFwIn0seyJzeW1ib2wtcGxhY2VtZW50IjoibGluZSJ9XX0sInRleHQtdHJhbnNmb3JtIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJub25lIiwidXBwZXJjYXNlIiwibG93ZXJjYXNlIl0sImRlZmF1bHQiOiJub25lIixyZXF1aXJlczpbInRleHQtZmllbGQiXX0sInRleHQtb2Zmc2V0Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLHVuaXRzOiJlbXMiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsbGVuZ3RoOjIsImRlZmF1bHQiOlswLDBdLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1hbGxvdy1vdmVybGFwIjp7dHlwZToiYm9vbGVhbiIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6ITEscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMSxyZXF1aXJlczpbInRleHQtZmllbGQiXX0sInRleHQtb3B0aW9uYWwiOnt0eXBlOiJib29sZWFuIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjohMSxyZXF1aXJlczpbInRleHQtZmllbGQiLCJpY29uLWltYWdlIl19LHZpc2liaWxpdHk6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLHZhbHVlczpbInZpc2libGUiLCJub25lIl0sImRlZmF1bHQiOiJ2aXNpYmxlIn19LGxheW91dF9yYXN0ZXI6e3Zpc2liaWxpdHk6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLHZhbHVlczpbInZpc2libGUiLCJub25lIl0sImRlZmF1bHQiOiJ2aXNpYmxlIn19LGZpbHRlcjp7dHlwZToiYXJyYXkiLHZhbHVlOiIqIn0sZmlsdGVyX29wZXJhdG9yOnt0eXBlOiJlbnVtIix2YWx1ZXM6WyI9PSIsIiE9IiwiPiIsIj49IiwiPCIsIjw9IiwiaW4iLCIhaW4iLCJhbGwiLCJhbnkiLCJub25lIiwiaGFzIiwiIWhhcyJdfSxnZW9tZXRyeV90eXBlOnt0eXBlOiJlbnVtIix2YWx1ZXM6WyJQb2ludCIsIkxpbmVTdHJpbmciLCJQb2x5Z29uIl19LGNvbG9yX29wZXJhdGlvbjp7dHlwZToiZW51bSIsdmFsdWVzOlsibGlnaHRlbiIsInNhdHVyYXRlIiwic3BpbiIsImZhZGUiLCJtaXgiXX0sImZ1bmN0aW9uIjp7c3RvcHM6e3R5cGU6ImFycmF5IixyZXF1aXJlZDohMCx2YWx1ZToiZnVuY3Rpb25fc3RvcCJ9LGJhc2U6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEsbWluaW11bTowfSxwcm9wZXJ0eTp7dHlwZToic3RyaW5nIiwiZGVmYXVsdCI6IiR6b29tIn0sdHlwZTp7dHlwZToiZW51bSIsdmFsdWVzOlsiZXhwb25lbnRpYWwiLCJpbnRlcnZhbCIsImNhdGVnb3JpY2FsIl0sImRlZmF1bHQiOiJleHBvbmVudGlhbCJ9fSxmdW5jdGlvbl9zdG9wOnt0eXBlOiJhcnJheSIsbWluaW11bTowLG1heGltdW06MjIsdmFsdWU6WyJudW1iZXIiLCJjb2xvciJdLGxlbmd0aDoyfSxwYWludDpbInBhaW50X2ZpbGwiLCJwYWludF9saW5lIiwicGFpbnRfY2lyY2xlIiwicGFpbnRfc3ltYm9sIiwicGFpbnRfcmFzdGVyIiwicGFpbnRfYmFja2dyb3VuZCJdLHBhaW50X2ZpbGw6eyJmaWxsLWFudGlhbGlhcyI6e3R5cGU6ImJvb2xlYW4iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOiEwfSwiZmlsbC1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMH0sImZpbGwtY29sb3IiOnt0eXBlOiJjb2xvciIsImRlZmF1bHQiOiIjMDAwMDAwIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImZpbGwtcGF0dGVybiJ9XX0sImZpbGwtb3V0bGluZS1jb2xvciI6e3R5cGU6ImNvbG9yIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImZpbGwtcGF0dGVybiJ9LHsiZmlsbC1hbnRpYWxpYXMiOiEwfV19LCJmaWxsLXRyYW5zbGF0ZSI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6MiwiZGVmYXVsdCI6WzAsMF0sImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMifSwiZmlsbC10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLCJkZWZhdWx0IjoibWFwIixyZXF1aXJlczpbImZpbGwtdHJhbnNsYXRlIl19LCJmaWxsLXBhdHRlcm4iOnt0eXBlOiJzdHJpbmciLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMH19LHBhaW50X2xpbmU6eyJsaW5lLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsImRlZmF1bHQiOjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwfSwibGluZS1jb2xvciI6e3R5cGU6ImNvbG9yIiwiZGVmYXVsdCI6IiMwMDAwMDAiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbeyIhIjoibGluZS1wYXR0ZXJuIn1dfSwibGluZS10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsImRlZmF1bHQiOlswLDBdLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIn0sImxpbmUtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibWFwIiwidmlld3BvcnQiXSwiZGVmYXVsdCI6Im1hcCIscmVxdWlyZXM6WyJsaW5lLXRyYW5zbGF0ZSJdfSwibGluZS13aWR0aCI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIn0sImxpbmUtZ2FwLXdpZHRoIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMifSwibGluZS1vZmZzZXQiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIn0sImxpbmUtYmx1ciI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIn0sImxpbmUtZGFzaGFycmF5Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6ImxpbmUgd2lkdGhzIixyZXF1aXJlczpbeyIhIjoibGluZS1wYXR0ZXJuIn1dfSwibGluZS1wYXR0ZXJuIjp7dHlwZToic3RyaW5nIiwiZnVuY3Rpb24iOiJwaWVjZXdpc2UtY29uc3RhbnQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITB9fSxwYWludF9jaXJjbGU6eyJjaXJjbGUtcmFkaXVzIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6NSxtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMifSwiY2lyY2xlLWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoiIzAwMDAwMCIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwfSwiY2lyY2xlLWJsdXIiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMH0sImNpcmNsZS1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MSxtaW5pbXVtOjAsbWF4aW11bToxLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMH0sImNpcmNsZS10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsImRlZmF1bHQiOlswLDBdLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIn0sImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLCJkZWZhdWx0IjoibWFwIixyZXF1aXJlczpbImNpcmNsZS10cmFuc2xhdGUiXX0sImNpcmNsZS1waXRjaC1zY2FsZSI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibWFwIiwidmlld3BvcnQiXSwiZGVmYXVsdCI6Im1hcCJ9fSxwYWludF9zeW1ib2w6eyJpY29uLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdfSwiaWNvbi1jb2xvciI6e3R5cGU6ImNvbG9yIiwiZGVmYXVsdCI6IiMwMDAwMDAiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXX0sImljb24taGFsby1jb2xvciI6e3R5cGU6ImNvbG9yIiwiZGVmYXVsdCI6InJnYmEoMCwgMCwgMCwgMCkiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXX0sImljb24taGFsby13aWR0aCI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjAsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXX0sImljb24taGFsby1ibHVyIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdfSwiaWNvbi10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsImRlZmF1bHQiOlswLDBdLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXX0sImljb24tdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLCJmdW5jdGlvbiI6InBpZWNld2lzZS1jb25zdGFudCIsInpvb20tZnVuY3Rpb24iOiEwLCJwcm9wZXJ0eS1mdW5jdGlvbiI6ITAsdmFsdWVzOlsibWFwIiwidmlld3BvcnQiXSwiZGVmYXVsdCI6Im1hcCIscmVxdWlyZXM6WyJpY29uLWltYWdlIiwiaWNvbi10cmFuc2xhdGUiXX0sInRleHQtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEsbWluaW11bTowLG1heGltdW06MSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoiIzAwMDAwMCIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1oYWxvLWNvbG9yIjp7dHlwZToiY29sb3IiLCJkZWZhdWx0IjoicmdiYSgwLCAwLCAwLCAwKSIsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1oYWxvLXdpZHRoIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxtaW5pbXVtOjAsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC1oYWxvLWJsdXIiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLG1pbmltdW06MCwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwicHJvcGVydHktZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl19LCJ0ZXh0LXRyYW5zbGF0ZSI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6MiwiZGVmYXVsdCI6WzAsMF0sImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdfSwidGV4dC10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsInByb3BlcnR5LWZ1bmN0aW9uIjohMCx2YWx1ZXM6WyJtYXAiLCJ2aWV3cG9ydCJdLCJkZWZhdWx0IjoibWFwIixyZXF1aXJlczpbInRleHQtZmllbGQiLCJ0ZXh0LXRyYW5zbGF0ZSJdfX0scGFpbnRfcmFzdGVyOnsicmFzdGVyLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsImZ1bmN0aW9uIjoiaW50ZXJwb2xhdGVkIiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMH0sInJhc3Rlci1odWUtcm90YXRlIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxwZXJpb2Q6MzYwLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6ImRlZ3JlZXMifSwicmFzdGVyLWJyaWdodG5lc3MtbWluIjp7dHlwZToibnVtYmVyIiwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCwiZGVmYXVsdCI6MCxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITB9LCJyYXN0ZXItYnJpZ2h0bmVzcy1tYXgiOnt0eXBlOiJudW1iZXIiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLCJkZWZhdWx0IjoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMH0sInJhc3Rlci1zYXR1cmF0aW9uIjp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxtaW5pbXVtOi0xLG1heGltdW06MSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwfSwicmFzdGVyLWNvbnRyYXN0Ijp7dHlwZToibnVtYmVyIiwiZGVmYXVsdCI6MCxtaW5pbXVtOi0xLG1heGltdW06MSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwfSwicmFzdGVyLWZhZGUtZHVyYXRpb24iOnt0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjozMDAsbWluaW11bTowLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAsdW5pdHM6Im1pbGxpc2Vjb25kcyJ9fSxwYWludF9iYWNrZ3JvdW5kOnsiYmFja2dyb3VuZC1jb2xvciI6e3R5cGU6ImNvbG9yIiwiZGVmYXVsdCI6IiMwMDAwMDAiLCJmdW5jdGlvbiI6ImludGVycG9sYXRlZCIsInpvb20tZnVuY3Rpb24iOiEwLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImJhY2tncm91bmQtcGF0dGVybiJ9XX0sImJhY2tncm91bmQtcGF0dGVybiI6e3R5cGU6InN0cmluZyIsImZ1bmN0aW9uIjoicGllY2V3aXNlLWNvbnN0YW50Iiwiem9vbS1mdW5jdGlvbiI6ITAsdHJhbnNpdGlvbjohMH0sImJhY2tncm91bmQtb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjEsbWluaW11bTowLG1heGltdW06MSwiZnVuY3Rpb24iOiJpbnRlcnBvbGF0ZWQiLCJ6b29tLWZ1bmN0aW9uIjohMCx0cmFuc2l0aW9uOiEwfX0sdHJhbnNpdGlvbjp7ZHVyYXRpb246e3R5cGU6Im51bWJlciIsImRlZmF1bHQiOjMwMCxtaW5pbXVtOjAsdW5pdHM6Im1pbGxpc2Vjb25kcyJ9LGRlbGF5Ont0eXBlOiJudW1iZXIiLCJkZWZhdWx0IjowLG1pbmltdW06MCx1bml0czoibWlsbGlzZWNvbmRzIn19fX0se31dLDQyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiEhKGkoKSYmbygpJiZhKCkmJnMoKSYmbCgpJiZ1KCkmJmMoKSYmaCh0JiZ0LmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQpKX1mdW5jdGlvbiBpKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnR9ZnVuY3Rpb24gbygpe3JldHVybiBBcnJheS5wcm90b3R5cGUmJkFycmF5LnByb3RvdHlwZS5ldmVyeSYmQXJyYXkucHJvdG90eXBlLmZpbHRlciYmQXJyYXkucHJvdG90eXBlLmZvckVhY2gmJkFycmF5LnByb3RvdHlwZS5pbmRleE9mJiZBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YmJkFycmF5LnByb3RvdHlwZS5tYXAmJkFycmF5LnByb3RvdHlwZS5zb21lJiZBcnJheS5wcm90b3R5cGUucmVkdWNlJiZBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQmJkFycmF5LmlzQXJyYXl9ZnVuY3Rpb24gYSgpe3JldHVybiBGdW5jdGlvbi5wcm90b3R5cGUmJkZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kfWZ1bmN0aW9uIHMoKXtyZXR1cm4gT2JqZWN0LmtleXMmJk9iamVjdC5jcmVhdGUmJk9iamVjdC5nZXRQcm90b3R5cGVPZiYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMmJk9iamVjdC5pc1NlYWxlZCYmT2JqZWN0LmlzRnJvemVuJiZPYmplY3QuaXNFeHRlbnNpYmxlJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJiZPYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzJiZPYmplY3Quc2VhbCYmT2JqZWN0LmZyZWV6ZSYmT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zfWZ1bmN0aW9uIGwoKXtyZXR1cm4iSlNPTiJpbiB3aW5kb3cmJiJwYXJzZSJpbiBKU09OJiYic3RyaW5naWZ5ImluIEpTT059ZnVuY3Rpb24gdSgpe3JldHVybiJXb3JrZXIiaW4gd2luZG93fWZ1bmN0aW9uIGMoKXtyZXR1cm4iVWludDhDbGFtcGVkQXJyYXkiaW4gd2luZG93fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHZvaWQgMD09PXBbdF0mJihwW3RdPWYodCkpLHBbdF19ZnVuY3Rpb24gZih0KXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxyPU9iamVjdC5jcmVhdGUobi53ZWJHTENvbnRleHRBdHRyaWJ1dGVzKTtyZXR1cm4gci5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0PXQsZS5wcm9iYWJseVN1cHBvcnRzQ29udGV4dD9lLnByb2JhYmx5U3VwcG9ydHNDb250ZXh0KCJ3ZWJnbCIscil8fGUucHJvYmFibHlTdXBwb3J0c0NvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIscik6ZS5zdXBwb3J0c0NvbnRleHQ/ZS5zdXBwb3J0c0NvbnRleHQoIndlYmdsIixyKXx8ZS5zdXBwb3J0c0NvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIscik6ZS5nZXRDb250ZXh0KCJ3ZWJnbCIscil8fGUuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIixyKX0idW5kZWZpbmVkIiE9dHlwZW9mIGUmJmUuZXhwb3J0cz9lLmV4cG9ydHM9bjp3aW5kb3cmJih3aW5kb3cubWFwYm94Z2w9d2luZG93Lm1hcGJveGdsfHx7fSx3aW5kb3cubWFwYm94Z2wuc3VwcG9ydGVkPW4pO3ZhciBwPXt9O24ud2ViR0xDb250ZXh0QXR0cmlidXRlcz17YW50aWFsaWFzOiExLGFscGhhOiEwLHN0ZW5jaWw6ITAsZGVwdGg6ITB9fSx7fV0sNDIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU7dCYmdC5sZW5ndGgmJihlPXQsdD1lLmxlbmd0aCk7dmFyIHI9bmV3IFVpbnQ4QXJyYXkodHx8MCk7cmV0dXJuIGUmJnIuc2V0KGUpLHIucmVhZFVJbnQzMkxFPW8ucmVhZFVJbnQzMkxFLHIud3JpdGVVSW50MzJMRT1vLndyaXRlVUludDMyTEUsci5yZWFkSW50MzJMRT1vLnJlYWRJbnQzMkxFLHIud3JpdGVJbnQzMkxFPW8ud3JpdGVJbnQzMkxFLHIucmVhZEZsb2F0TEU9by5yZWFkRmxvYXRMRSxyLndyaXRlRmxvYXRMRT1vLndyaXRlRmxvYXRMRSxyLnJlYWREb3VibGVMRT1vLnJlYWREb3VibGVMRSxyLndyaXRlRG91YmxlTEU9by53cml0ZURvdWJsZUxFLHIudG9TdHJpbmc9by50b1N0cmluZyxyLndyaXRlPW8ud3JpdGUsci5zbGljZT1vLnNsaWNlLHIuY29weT1vLmNvcHksci5faXNCdWZmZXI9ITAscn1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZSxyLG49dC5sZW5ndGgsaT1bXSxvPTA7bj5vO28rKyl7aWYoZT10LmNoYXJDb2RlQXQobyksZT41NTI5NSYmNTczNDQ+ZSl7aWYoIXIpe2U+NTYzMTl8fG8rMT09PW4/aS5wdXNoKDIzOSwxOTEsMTg5KTpyPWU7Y29udGludWV9aWYoNTYzMjA+ZSl7aS5wdXNoKDIzOSwxOTEsMTg5KSxyPWU7Y29udGludWV9ZT1yLTU1Mjk2PDwxMHxlLTU2MzIwfDY1NTM2LHI9bnVsbH1lbHNlIHImJihpLnB1c2goMjM5LDE5MSwxODkpLHI9bnVsbCk7MTI4PmU/aS5wdXNoKGUpOjIwNDg+ZT9pLnB1c2goZT4+NnwxOTIsNjMmZXwxMjgpOjY1NTM2PmU/aS5wdXNoKGU+PjEyfDIyNCxlPj42JjYzfDEyOCw2MyZlfDEyOCk6aS5wdXNoKGU+PjE4fDI0MCxlPj4xMiY2M3wxMjgsZT4+NiY2M3wxMjgsNjMmZXwxMjgpfXJldHVybiBpfWUuZXhwb3J0cz1uO3ZhciBvLGEscyxsPXQoImllZWU3NTQiKTtvPXtyZWFkVUludDMyTEU6ZnVuY3Rpb24odCl7cmV0dXJuKHRoaXNbdF18dGhpc1t0KzFdPDw4fHRoaXNbdCsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbdCszXX0sd3JpdGVVSW50MzJMRTpmdW5jdGlvbih0LGUpe3RoaXNbZV09dCx0aGlzW2UrMV09dD4+PjgsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrM109dD4+PjI0fSxyZWFkSW50MzJMRTpmdW5jdGlvbih0KXtyZXR1cm4odGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNikrKHRoaXNbdCszXTw8MjQpfSxyZWFkRmxvYXRMRTpmdW5jdGlvbih0KXtyZXR1cm4gbC5yZWFkKHRoaXMsdCwhMCwyMyw0KX0scmVhZERvdWJsZUxFOmZ1bmN0aW9uKHQpe3JldHVybiBsLnJlYWQodGhpcyx0LCEwLDUyLDgpfSx3cml0ZUZsb2F0TEU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbC53cml0ZSh0aGlzLHQsZSwhMCwyMyw0KX0sd3JpdGVEb3VibGVMRTpmdW5jdGlvbih0LGUpe3JldHVybiBsLndyaXRlKHRoaXMsdCxlLCEwLDUyLDgpfSx0b1N0cmluZzpmdW5jdGlvbih0LGUscil7dmFyIG49IiIsaT0iIjtlPWV8fDAscj1NYXRoLm1pbih0aGlzLmxlbmd0aCxyfHx0aGlzLmxlbmd0aCk7Zm9yKHZhciBvPWU7cj5vO28rKyl7dmFyIGE9dGhpc1tvXTsxMjc+PWE/KG4rPWRlY29kZVVSSUNvbXBvbmVudChpKStTdHJpbmcuZnJvbUNoYXJDb2RlKGEpLGk9IiIpOmkrPSIlIithLnRvU3RyaW5nKDE2KX1yZXR1cm4gbis9ZGVjb2RlVVJJQ29tcG9uZW50KGkpfSx3cml0ZTpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10PT09YT9zOmkodCksbj0wO248ci5sZW5ndGg7bisrKXRoaXNbZStuXT1yW25dfSxzbGljZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN1YmFycmF5KHQsZSl9LGNvcHk6ZnVuY3Rpb24odCxlKXtlPWV8fDA7Zm9yKHZhciByPTA7cjx0aGlzLmxlbmd0aDtyKyspdFtlK3JdPXRoaXNbcl19fSxvLndyaXRlSW50MzJMRT1vLndyaXRlVUludDMyTEUsbi5ieXRlTGVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhPXQscz1pKHQpLHMubGVuZ3RofSxuLmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0Ll9pc0J1ZmZlcil9fSx7aWVlZTc1NDo0MjN9XSw0MjI6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5idWY9Zy5pc0J1ZmZlcih0KT90Om5ldyBnKHR8fDApLHRoaXMucG9zPTAsdGhpcy5sZW5ndGg9dGhpcy5idWYubGVuZ3RofWZ1bmN0aW9uIGkodCxlKXt2YXIgcixuPWUuYnVmO2lmKHI9bltlLnBvcysrXSx0Kz0yNjg0MzU0NTYqKDEyNyZyKSwxMjg+cilyZXR1cm4gdDtpZihyPW5bZS5wb3MrK10sdCs9MzQzNTk3MzgzNjgqKDEyNyZyKSwxMjg+cilyZXR1cm4gdDtpZihyPW5bZS5wb3MrK10sdCs9NDM5ODA0NjUxMTEwNCooMTI3JnIpLDEyOD5yKXJldHVybiB0O2lmKHI9bltlLnBvcysrXSx0Kz01NjI5NDk5NTM0MjEzMTIqKDEyNyZyKSwxMjg+cilyZXR1cm4gdDtpZihyPW5bZS5wb3MrK10sdCs9NzIwNTc1OTQwMzc5Mjc5NDAqKDEyNyZyKSwxMjg+cilyZXR1cm4gdDtpZihyPW5bZS5wb3MrK10sdCs9MHg4MDAwMDAwMDAwMDAwMDAwKigxMjcmciksMTI4PnIpcmV0dXJuIHQ7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB2YXJpbnQgbm90IG1vcmUgdGhhbiAxMCBieXRlcyIpfWZ1bmN0aW9uIG8odCxlKXtlLnJlYWxsb2MoMTApO2Zvcih2YXIgcj1lLnBvcysxMDt0Pj0xOyl7aWYoZS5wb3M+PXIpdGhyb3cgbmV3IEVycm9yKCJHaXZlbiB2YXJpbnQgZG9lc24ndCBmaXQgaW50byAxMCBieXRlcyIpO3ZhciBuPTI1NSZ0O2UuYnVmW2UucG9zKytdPW58KHQ+PTEyOD8xMjg6MCksdC89MTI4fX1mdW5jdGlvbiBhKHQsZSxyKXt2YXIgbj0xNjM4Mz49ZT8xOjIwOTcxNTE+PWU/MjoyNjg0MzU0NTU+PWU/MzpNYXRoLmNlaWwoTWF0aC5sb2coZSkvKDcqTWF0aC5MTjIpKTtyLnJlYWxsb2Mobik7Zm9yKHZhciBpPXIucG9zLTE7aT49dDtpLS0pci5idWZbaStuXT1yLmJ1ZltpXX1mdW5jdGlvbiBzKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVZhcmludCh0W3JdKX1mdW5jdGlvbiBsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNWYXJpbnQodFtyXSl9ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVGbG9hdCh0W3JdKX1mdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZURvdWJsZSh0W3JdKX1mdW5jdGlvbiBoKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZUJvb2xlYW4odFtyXSl9ZnVuY3Rpb24gZih0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVGaXhlZDMyKHRbcl0pfWZ1bmN0aW9uIHAodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlU0ZpeGVkMzIodFtyXSl9ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIG0odCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlU0ZpeGVkNjQodFtyXSl9ZS5leHBvcnRzPW47dmFyIGc9ci5CdWZmZXJ8fHQoIi4vYnVmZmVyIik7bi5WYXJpbnQ9MCxuLkZpeGVkNjQ9MSxuLkJ5dGVzPTIsbi5GaXhlZDMyPTU7dmFyIHY9NDI5NDk2NzI5Nix5PTEvdixiPU1hdGgucG93KDIsNjMpO24ucHJvdG90eXBlPXtkZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5idWY9bnVsbH0scmVhZEZpZWxkczpmdW5jdGlvbih0LGUscil7Zm9yKHI9cnx8dGhpcy5sZW5ndGg7dGhpcy5wb3M8cjspe3ZhciBuPXRoaXMucmVhZFZhcmludCgpLGk9bj4+MyxvPXRoaXMucG9zO3QoaSxlLHRoaXMpLHRoaXMucG9zPT09byYmdGhpcy5za2lwKG4pfXJldHVybiBlfSxyZWFkTWVzc2FnZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnJlYWRGaWVsZHModCxlLHRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zKX0scmVhZEZpeGVkMzI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmJ1Zi5yZWFkVUludDMyTEUodGhpcy5wb3MpO3JldHVybiB0aGlzLnBvcys9NCx0fSxyZWFkU0ZpeGVkMzI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmJ1Zi5yZWFkSW50MzJMRSh0aGlzLnBvcyk7cmV0dXJuIHRoaXMucG9zKz00LHR9LHJlYWRGaXhlZDY0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5idWYucmVhZFVJbnQzMkxFKHRoaXMucG9zKSt0aGlzLmJ1Zi5yZWFkVUludDMyTEUodGhpcy5wb3MrNCkqdjtyZXR1cm4gdGhpcy5wb3MrPTgsdH0scmVhZFNGaXhlZDY0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5idWYucmVhZFVJbnQzMkxFKHRoaXMucG9zKSt0aGlzLmJ1Zi5yZWFkSW50MzJMRSh0aGlzLnBvcys0KSp2O3JldHVybiB0aGlzLnBvcys9OCx0fSxyZWFkRmxvYXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmJ1Zi5yZWFkRmxvYXRMRSh0aGlzLnBvcyk7cmV0dXJuIHRoaXMucG9zKz00LHR9LHJlYWREb3VibGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmJ1Zi5yZWFkRG91YmxlTEUodGhpcy5wb3MpO3JldHVybiB0aGlzLnBvcys9OCx0fSxyZWFkVmFyaW50OmZ1bmN0aW9uKCl7dmFyIHQsZSxyPXRoaXMuYnVmO3JldHVybiBlPXJbdGhpcy5wb3MrK10sdD0xMjcmZSwxMjg+ZT90OihlPXJbdGhpcy5wb3MrK10sdHw9KDEyNyZlKTw8NywxMjg+ZT90OihlPXJbdGhpcy5wb3MrK10sdHw9KDEyNyZlKTw8MTQsMTI4PmU/dDooZT1yW3RoaXMucG9zKytdLHR8PSgxMjcmZSk8PDIxLDEyOD5lP3Q6aSh0LHRoaXMpKSkpfSxyZWFkVmFyaW50NjQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBvcyxlPXRoaXMucmVhZFZhcmludCgpO2lmKGI+ZSlyZXR1cm4gZTtmb3IodmFyIHI9dGhpcy5wb3MtMjsyNTU9PT10aGlzLmJ1ZltyXTspci0tO3Q+ciYmKHI9dCksZT0wO2Zvcih2YXIgbj0wO3ItdCsxPm47bisrKXt2YXIgaT0xMjcmfnRoaXMuYnVmW3Qrbl07ZSs9ND5uP2k8PDcqbjppKk1hdGgucG93KDIsNypuKX1yZXR1cm4tZS0xfSxyZWFkU1ZhcmludDpmdW5jdGlvbigpe3ZhciB0PXRoaXMucmVhZFZhcmludCgpO3JldHVybiB0JTI9PT0xPyh0KzEpLy0yOnQvMn0scmVhZEJvb2xlYW46ZnVuY3Rpb24oKXtyZXR1cm4gQm9vbGVhbih0aGlzLnJlYWRWYXJpbnQoKSl9LHJlYWRTdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyxlPXRoaXMuYnVmLnRvU3RyaW5nKCJ1dGY4Iix0aGlzLnBvcyx0KTtyZXR1cm4gdGhpcy5wb3M9dCxlfSxyZWFkQnl0ZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyxlPXRoaXMuYnVmLnNsaWNlKHRoaXMucG9zLHQpO3JldHVybiB0aGlzLnBvcz10LGV9LHJlYWRQYWNrZWRWYXJpbnQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT1bXTt0aGlzLnBvczx0OyllLnB1c2godGhpcy5yZWFkVmFyaW50KCkpO3JldHVybiBlfSxyZWFkUGFja2VkU1ZhcmludDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyxlPVtdO3RoaXMucG9zPHQ7KWUucHVzaCh0aGlzLnJlYWRTVmFyaW50KCkpO3JldHVybiBlfSxyZWFkUGFja2VkQm9vbGVhbjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyxlPVtdO3RoaXMucG9zPHQ7KWUucHVzaCh0aGlzLnJlYWRCb29sZWFuKCkpO3JldHVybiBlfSxyZWFkUGFja2VkRmxvYXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT1bXTt0aGlzLnBvczx0OyllLnB1c2godGhpcy5yZWFkRmxvYXQoKSk7cmV0dXJuIGV9LHJlYWRQYWNrZWREb3VibGU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT1bXTt0aGlzLnBvczx0OyllLnB1c2godGhpcy5yZWFkRG91YmxlKCkpO3JldHVybiBlfSxyZWFkUGFja2VkRml4ZWQzMjpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyxlPVtdO3RoaXMucG9zPHQ7KWUucHVzaCh0aGlzLnJlYWRGaXhlZDMyKCkpO3JldHVybiBlfSxyZWFkUGFja2VkU0ZpeGVkMzI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT1bXTt0aGlzLnBvczx0OyllLnB1c2godGhpcy5yZWFkU0ZpeGVkMzIoKSk7cmV0dXJuIGV9LHJlYWRQYWNrZWRGaXhlZDY0OmZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zLGU9W107dGhpcy5wb3M8dDspZS5wdXNoKHRoaXMucmVhZEZpeGVkNjQoKSk7cmV0dXJuIGV9LHJlYWRQYWNrZWRTRml4ZWQ2NDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcyxlPVtdO3RoaXMucG9zPHQ7KWUucHVzaCh0aGlzLnJlYWRTRml4ZWQ2NCgpKTtyZXR1cm4gZX0sc2tpcDpmdW5jdGlvbih0KXt2YXIgZT03JnQ7aWYoZT09PW4uVmFyaW50KWZvcig7dGhpcy5idWZbdGhpcy5wb3MrK10+MTI3Oyk7ZWxzZSBpZihlPT09bi5CeXRlcyl0aGlzLnBvcz10aGlzLnJlYWRWYXJpbnQoKSt0aGlzLnBvcztlbHNlIGlmKGU9PT1uLkZpeGVkMzIpdGhpcy5wb3MrPTQ7ZWxzZXtpZihlIT09bi5GaXhlZDY0KXRocm93IG5ldyBFcnJvcigiVW5pbXBsZW1lbnRlZCB0eXBlOiAiK2UpO3RoaXMucG9zKz04fX0sd3JpdGVUYWc6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVmFyaW50KHQ8PDN8ZSl9LHJlYWxsb2M6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMubGVuZ3RofHwxNjtlPHRoaXMucG9zK3Q7KWUqPTI7aWYoZSE9PXRoaXMubGVuZ3RoKXt2YXIgcj1uZXcgZyhlKTt0aGlzLmJ1Zi5jb3B5KHIpLHRoaXMuYnVmPXIsdGhpcy5sZW5ndGg9ZX19LGZpbmlzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aD10aGlzLnBvcyx0aGlzLnBvcz0wLHRoaXMuYnVmLnNsaWNlKDAsdGhpcy5sZW5ndGgpfSx3cml0ZUZpeGVkMzI6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDQpLHRoaXMuYnVmLndyaXRlVUludDMyTEUodCx0aGlzLnBvcyksdGhpcy5wb3MrPTR9LHdyaXRlU0ZpeGVkMzI6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDQpLHRoaXMuYnVmLndyaXRlSW50MzJMRSh0LHRoaXMucG9zKSx0aGlzLnBvcys9NH0sd3JpdGVGaXhlZDY0OmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg4KSx0aGlzLmJ1Zi53cml0ZUludDMyTEUoLTEmdCx0aGlzLnBvcyksdGhpcy5idWYud3JpdGVVSW50MzJMRShNYXRoLmZsb29yKHQqeSksdGhpcy5wb3MrNCksdGhpcy5wb3MrPTh9LHdyaXRlU0ZpeGVkNjQ6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDgpLHRoaXMuYnVmLndyaXRlSW50MzJMRSgtMSZ0LHRoaXMucG9zKSx0aGlzLmJ1Zi53cml0ZUludDMyTEUoTWF0aC5mbG9vcih0KnkpLHRoaXMucG9zKzQpLHRoaXMucG9zKz04fSx3cml0ZVZhcmludDpmdW5jdGlvbih0KXtyZXR1cm4gdD0rdCx0PjI2ODQzNTQ1NT92b2lkIG8odCx0aGlzKToodGhpcy5yZWFsbG9jKDQpLHRoaXMuYnVmW3RoaXMucG9zKytdPTEyNyZ0fCh0PjEyNz8xMjg6MCksdm9pZCgxMjc+PXR8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSwxMjc+PXR8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSwxMjc+PXR8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT10Pj4+NyYxMjcpKSkpKX0sd3JpdGVTVmFyaW50OmZ1bmN0aW9uKHQpe3RoaXMud3JpdGVWYXJpbnQoMD50PzIqLXQtMToyKnQpfSx3cml0ZUJvb2xlYW46ZnVuY3Rpb24odCl7dGhpcy53cml0ZVZhcmludChCb29sZWFuKHQpKX0sd3JpdGVTdHJpbmc6ZnVuY3Rpb24odCl7dD1TdHJpbmcodCk7dmFyIGU9Zy5ieXRlTGVuZ3RoKHQpO3RoaXMud3JpdGVWYXJpbnQoZSksdGhpcy5yZWFsbG9jKGUpLHRoaXMuYnVmLndyaXRlKHQsdGhpcy5wb3MpLHRoaXMucG9zKz1lfSx3cml0ZUZsb2F0OmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg0KSx0aGlzLmJ1Zi53cml0ZUZsb2F0TEUodCx0aGlzLnBvcyksdGhpcy5wb3MrPTR9LHdyaXRlRG91YmxlOmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg4KSx0aGlzLmJ1Zi53cml0ZURvdWJsZUxFKHQsdGhpcy5wb3MpLHRoaXMucG9zKz04fSx3cml0ZUJ5dGVzOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO3RoaXMud3JpdGVWYXJpbnQoZSksdGhpcy5yZWFsbG9jKGUpO2Zvcih2YXIgcj0wO2U+cjtyKyspdGhpcy5idWZbdGhpcy5wb3MrK109dFtyXX0sd3JpdGVSYXdNZXNzYWdlOmZ1bmN0aW9uKHQsZSl7dGhpcy5wb3MrKzt2YXIgcj10aGlzLnBvczt0KGUsdGhpcyk7dmFyIG49dGhpcy5wb3MtcjtuPj0xMjgmJmEocixuLHRoaXMpLHRoaXMucG9zPXItMSx0aGlzLndyaXRlVmFyaW50KG4pLHRoaXMucG9zKz1ufSx3cml0ZU1lc3NhZ2U6ZnVuY3Rpb24odCxlLHIpe3RoaXMud3JpdGVUYWcodCxuLkJ5dGVzKSx0aGlzLndyaXRlUmF3TWVzc2FnZShlLHIpfSx3cml0ZVBhY2tlZFZhcmludDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVNZXNzYWdlKHQscyxlKX0sd3JpdGVQYWNrZWRTVmFyaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZU1lc3NhZ2UodCxsLGUpfSx3cml0ZVBhY2tlZEJvb2xlYW46ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlTWVzc2FnZSh0LGgsZSl9LHdyaXRlUGFja2VkRmxvYXQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlTWVzc2FnZSh0LHUsZSl9LHdyaXRlUGFja2VkRG91YmxlOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZU1lc3NhZ2UodCxjLGUpfSx3cml0ZVBhY2tlZEZpeGVkMzI6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlTWVzc2FnZSh0LGYsZSl9LHdyaXRlUGFja2VkU0ZpeGVkMzI6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlTWVzc2FnZSh0LHAsZSl9LHdyaXRlUGFja2VkRml4ZWQ2NDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVNZXNzYWdlKHQsZCxlKX0sd3JpdGVQYWNrZWRTRml4ZWQ2NDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVNZXNzYWdlKHQsbSxlKX0sd3JpdGVCeXRlc0ZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG4uQnl0ZXMpLHRoaXMud3JpdGVCeXRlcyhlKX0sd3JpdGVGaXhlZDMyRmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsbi5GaXhlZDMyKSx0aGlzLndyaXRlRml4ZWQzMihlKX0sd3JpdGVTRml4ZWQzMkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG4uRml4ZWQzMiksdGhpcy53cml0ZVNGaXhlZDMyKGUpfSx3cml0ZUZpeGVkNjRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxuLkZpeGVkNjQpLHRoaXMud3JpdGVGaXhlZDY0KGUpfSx3cml0ZVNGaXhlZDY0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsbi5GaXhlZDY0KSx0aGlzLndyaXRlU0ZpeGVkNjQoZSl9LHdyaXRlVmFyaW50RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsbi5WYXJpbnQpLHRoaXMud3JpdGVWYXJpbnQoZSl9LHdyaXRlU1ZhcmludEZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG4uVmFyaW50KSx0aGlzLndyaXRlU1ZhcmludChlKX0sd3JpdGVTdHJpbmdGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxuLkJ5dGVzKSx0aGlzLndyaXRlU3RyaW5nKGUpfSx3cml0ZUZsb2F0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsbi5GaXhlZDMyKSx0aGlzLndyaXRlRmxvYXQoZSl9LHdyaXRlRG91YmxlRmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsbi5GaXhlZDY0KSx0aGlzLndyaXRlRG91YmxlKGUpfSx3cml0ZUJvb2xlYW5GaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVWYXJpbnRGaWVsZCh0LEJvb2xlYW4oZSkpfX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9idWZmZXIiOjQyMX1dLDQyMzpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVs1NF1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjU0fV0sNDI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLng9dCx0aGlzLnk9ZX1lLmV4cG9ydHM9bixuLnByb3RvdHlwZT17Y2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcy54LHRoaXMueSl9LGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9hZGQodCl9LHN1YjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9zdWIodCl9LG11bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fbXVsdCh0KX0sZGl2OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2Rpdih0KX0scm90YXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdGF0ZSh0KX0sbWF0TXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9tYXRNdWx0KHQpfSx1bml0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fdW5pdCgpfSxwZXJwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fcGVycCgpfSxyb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdW5kKCl9LG1hZzpmdW5jdGlvbigpe3JldHVybiBNYXRoLnNxcnQodGhpcy54KnRoaXMueCt0aGlzLnkqdGhpcy55KX0sZXF1YWxzOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLng9PT10LngmJnRoaXMueT09PXQueX0sZGlzdDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMuZGlzdFNxcih0KSl9LGRpc3RTcXI6ZnVuY3Rpb24odCl7dmFyIGU9dC54LXRoaXMueCxyPXQueS10aGlzLnk7cmV0dXJuIGUqZStyKnJ9LGFuZ2xlOmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy55LHRoaXMueCl9LGFuZ2xlVG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy55LXQueSx0aGlzLngtdC54KX0sYW5nbGVXaXRoOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFuZ2xlV2l0aFNlcCh0LngsdC55KX0sYW5nbGVXaXRoU2VwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguYXRhbjIodGhpcy54KmUtdGhpcy55KnQsdGhpcy54KnQrdGhpcy55KmUpfSxfbWF0TXVsdDpmdW5jdGlvbih0KXt2YXIgZT10WzBdKnRoaXMueCt0WzFdKnRoaXMueSxyPXRbMl0qdGhpcy54K3RbM10qdGhpcy55O3JldHVybiB0aGlzLng9ZSx0aGlzLnk9cix0aGlzfSxfYWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngrPXQueCx0aGlzLnkrPXQueSx0aGlzfSxfc3ViOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngtPXQueCx0aGlzLnktPXQueSx0aGlzfSxfbXVsdDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Kj10LHRoaXMueSo9dCx0aGlzfSxfZGl2OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngvPXQsdGhpcy55Lz10LHRoaXN9LF91bml0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rpdih0aGlzLm1hZygpKSx0aGlzfSxfcGVycDpmdW5jdGlvbigpe3ZhciB0PXRoaXMueTtyZXR1cm4gdGhpcy55PXRoaXMueCx0aGlzLng9LXQsdGhpc30sX3JvdGF0ZTpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmNvcyh0KSxyPU1hdGguc2luKHQpLG49ZSp0aGlzLngtcip0aGlzLnksaT1yKnRoaXMueCtlKnRoaXMueTtyZXR1cm4gdGhpcy54PW4sCnRoaXMueT1pLHRoaXN9LF9yb3VuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLng9TWF0aC5yb3VuZCh0aGlzLngpLHRoaXMueT1NYXRoLnJvdW5kKHRoaXMueSksdGhpc319LG4uY29udmVydD1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG4/dDpBcnJheS5pc0FycmF5KHQpP25ldyBuKHRbMF0sdFsxXSk6dH19LHt9XSw0MjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixhLHMpe2ZvcihyPXJ8fDAsYT1hfHx0Lmxlbmd0aC0xLHM9c3x8bzthPnI7KXtpZihhLXI+NjAwKXt2YXIgbD1hLXIrMSx1PWUtcisxLGM9TWF0aC5sb2cobCksaD0uNSpNYXRoLmV4cCgyKmMvMyksZj0uNSpNYXRoLnNxcnQoYypoKihsLWgpL2wpKigwPnUtbC8yPy0xOjEpLHA9TWF0aC5tYXgocixNYXRoLmZsb29yKGUtdSpoL2wrZikpLGQ9TWF0aC5taW4oYSxNYXRoLmZsb29yKGUrKGwtdSkqaC9sK2YpKTtuKHQsZSxwLGQscyl9dmFyIG09dFtlXSxnPXIsdj1hO2ZvcihpKHQscixlKSxzKHRbYV0sbSk+MCYmaSh0LHIsYSk7dj5nOyl7Zm9yKGkodCxnLHYpLGcrKyx2LS07cyh0W2ddLG0pPDA7KWcrKztmb3IoO3ModFt2XSxtKT4wOyl2LS19MD09PXModFtyXSxtKT9pKHQscix2KToodisrLGkodCx2LGEpKSxlPj12JiYocj12KzEpLHY+PWUmJihhPXYtMSl9fWZ1bmN0aW9uIGkodCxlLHIpe3ZhciBuPXRbZV07dFtlXT10W3JdLHRbcl09bn1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIGU+dD8tMTp0PmU/MTowfWUuZXhwb3J0cz1ufSx7fV0sNDI2OltmdW5jdGlvbihlLHIsbil7dm9pZCBmdW5jdGlvbihlLGkpeyJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmFtZD90KGkpOiJvYmplY3QiPT10eXBlb2Ygbj9yLmV4cG9ydHM9aSgpOmUucmVzb2x2ZVVybD1pKCl9KHRoaXMsZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aDtpZigwPT09dCl0aHJvdyBuZXcgRXJyb3IoInJlc29sdmVVcmwgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50OyBnb3Qgbm9uZS4iKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiYXNlIik7aWYoZS5ocmVmPWFyZ3VtZW50c1swXSwxPT09dClyZXR1cm4gZS5ocmVmO3ZhciByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07ci5pbnNlcnRCZWZvcmUoZSxyLmZpcnN0Q2hpbGQpO2Zvcih2YXIgbixpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxvPTE7dD5vO28rKylpLmhyZWY9YXJndW1lbnRzW29dLG49aS5ocmVmLGUuaHJlZj1uO3JldHVybiByLnJlbW92ZUNoaWxkKGUpLG59cmV0dXJuIHR9KX0se31dLDQyNzpbZnVuY3Rpb24oZSxyLG4peyFmdW5jdGlvbihlLGkpeyJvYmplY3QiPT10eXBlb2YgbiYmInVuZGVmaW5lZCIhPXR5cGVvZiByP3IuZXhwb3J0cz1pKCk6ImZ1bmN0aW9uIj09dHlwZW9mIHQmJnQuYW1kP3QoaSk6ZS5TaGVsZlBhY2s9aSgpfSh0aGlzLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscil7cj1yfHx7fSx0aGlzLnc9dHx8NjQsdGhpcy5oPWV8fDY0LHRoaXMuYXV0b1Jlc2l6ZT0hIXIuYXV0b1Jlc2l6ZSx0aGlzLnNoZWx2ZXM9W10sdGhpcy5zdGF0cz17fSx0aGlzLmNvdW50PWZ1bmN0aW9uKHQpe3RoaXMuc3RhdHNbdF09KDB8dGhpcy5zdGF0c1t0XSkrMX19ZnVuY3Rpb24gZSh0LGUscil7dGhpcy54PTAsdGhpcy55PXQsdGhpcy53PXRoaXMuZnJlZT1lLHRoaXMuaD1yfXJldHVybiB0LnByb3RvdHlwZS5wYWNrPWZ1bmN0aW9uKHQsZSl7dD1bXS5jb25jYXQodCksZT1lfHx7fTtmb3IodmFyIHIsbixpLG89W10sYT0wO2E8dC5sZW5ndGg7YSsrKWlmKHI9dFthXS53fHx0W2FdLndpZHRoLG49dFthXS5ofHx0W2FdLmhlaWdodCxyJiZuKXtpZihpPXRoaXMucGFja09uZShyLG4pLCFpKWNvbnRpbnVlO2UuaW5QbGFjZSYmKHRbYV0ueD1pLngsdFthXS55PWkueSksby5wdXNoKGkpfWlmKHRoaXMuc2hlbHZlcy5sZW5ndGg+MCl7Zm9yKHZhciBzPTAsbD0wLHU9MDt1PHRoaXMuc2hlbHZlcy5sZW5ndGg7dSsrKXt2YXIgYz10aGlzLnNoZWx2ZXNbdV07bCs9Yy5oLHM9TWF0aC5tYXgoYy53LWMuZnJlZSxzKX10aGlzLnJlc2l6ZShzLGwpfXJldHVybiBvfSx0LnByb3RvdHlwZS5wYWNrT25lPWZ1bmN0aW9uKHQscil7Zm9yKHZhciBuLGksbz0wLGE9e3NoZWxmOi0xLHdhc3RlOjEvMH0scz0wO3M8dGhpcy5zaGVsdmVzLmxlbmd0aDtzKyspe2lmKG49dGhpcy5zaGVsdmVzW3NdLG8rPW4uaCxyPT09bi5oJiZ0PD1uLmZyZWUpcmV0dXJuIHRoaXMuY291bnQociksbi5hbGxvYyh0LHIpO3I+bi5ofHx0Pm4uZnJlZXx8cjxuLmgmJnQ8PW4uZnJlZSYmKGk9bi5oLXIsaTxhLndhc3RlJiYoYS53YXN0ZT1pLGEuc2hlbGY9cykpfWlmKC0xIT09YS5zaGVsZilyZXR1cm4gbj10aGlzLnNoZWx2ZXNbYS5zaGVsZl0sdGhpcy5jb3VudChyKSxuLmFsbG9jKHQscik7aWYocjw9dGhpcy5oLW8mJnQ8PXRoaXMudylyZXR1cm4gbj1uZXcgZShvLHRoaXMudyxyKSx0aGlzLnNoZWx2ZXMucHVzaChuKSx0aGlzLmNvdW50KHIpLG4uYWxsb2ModCxyKTtpZih0aGlzLmF1dG9SZXNpemUpe3ZhciBsLHUsYyxoO3JldHVybiBsPXU9dGhpcy5oLGM9aD10aGlzLncsKGw+PWN8fHQ+YykmJihoPTIqTWF0aC5tYXgodCxjKSksKGM+bHx8cj5sKSYmKHU9MipNYXRoLm1heChyLGwpKSx0aGlzLnJlc2l6ZShoLHUpLHRoaXMucGFja09uZSh0LHIpfXJldHVybiBudWxsfSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2hlbHZlcz1bXSx0aGlzLnN0YXRzPXt9fSx0LnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24odCxlKXt0aGlzLnc9dCx0aGlzLmg9ZTtmb3IodmFyIHI9MDtyPHRoaXMuc2hlbHZlcy5sZW5ndGg7cisrKXRoaXMuc2hlbHZlc1tyXS5yZXNpemUodCk7cmV0dXJuITB9LGUucHJvdG90eXBlLmFsbG9jPWZ1bmN0aW9uKHQsZSl7aWYodD50aGlzLmZyZWV8fGU+dGhpcy5oKXJldHVybiBudWxsO3ZhciByPXRoaXMueDtyZXR1cm4gdGhpcy54Kz10LHRoaXMuZnJlZS09dCx7eDpyLHk6dGhpcy55LHc6dCxoOmUsd2lkdGg6dCxoZWlnaHQ6ZX19LGUucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mcmVlKz10LXRoaXMudyx0aGlzLnc9dCwhMH0sdH0pfSx7fV0sNDI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIG5ldyBpKHQpfWZ1bmN0aW9uIGkodCl7dGhpcy5vcHRpb25zPXAoT2JqZWN0LmNyZWF0ZSh0aGlzLm9wdGlvbnMpLHQpLHRoaXMudHJlZXM9bmV3IEFycmF5KHRoaXMub3B0aW9ucy5tYXhab29tKzEpfWZ1bmN0aW9uIG8odCxlLHIsbil7cmV0dXJue3g6dCx5OmUsem9vbToxLzAsaWQ6bixudW1Qb2ludHM6cn19ZnVuY3Rpb24gYSh0LGUpe3ZhciByPXQuZ2VvbWV0cnkuY29vcmRpbmF0ZXM7cmV0dXJuIG8odShyWzBdKSxjKHJbMV0pLDEsZSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm57dHlwZToiRmVhdHVyZSIscHJvcGVydGllczpsKHQpLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6W2godC54KSxmKHQueSldfX19ZnVuY3Rpb24gbCh0KXt2YXIgZT10Lm51bVBvaW50cyxyPWU+PTFlND9NYXRoLnJvdW5kKGUvMWUzKSsiayI6ZT49MWUzP01hdGgucm91bmQoZS8xMDApLzEwKyJrIjplO3JldHVybntjbHVzdGVyOiEwLHBvaW50X2NvdW50OmUscG9pbnRfY291bnRfYWJicmV2aWF0ZWQ6cn19ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC8zNjArLjV9ZnVuY3Rpb24gYyh0KXt2YXIgZT1NYXRoLnNpbih0Kk1hdGguUEkvMTgwKSxyPS41LS4yNSpNYXRoLmxvZygoMStlKS8oMS1lKSkvTWF0aC5QSTtyZXR1cm4gMD5yPzA6cj4xPzE6cn1mdW5jdGlvbiBoKHQpe3JldHVybiAzNjAqKHQtLjUpfWZ1bmN0aW9uIGYodCl7dmFyIGU9KDE4MC0zNjAqdCkqTWF0aC5QSS8xODA7cmV0dXJuIDM2MCpNYXRoLmF0YW4oTWF0aC5leHAoZSkpL01hdGguUEktOTB9ZnVuY3Rpb24gcCh0LGUpe2Zvcih2YXIgciBpbiBlKXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBkKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdC55fXZhciBnPXQoImtkYnVzaCIpO2UuZXhwb3J0cz1uLGkucHJvdG90eXBlPXtvcHRpb25zOnttaW5ab29tOjAsbWF4Wm9vbToxNixyYWRpdXM6NDAsZXh0ZW50OjUxMixub2RlU2l6ZTo2NCxsb2c6ITF9LGxvYWQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLmxvZztlJiZjb25zb2xlLnRpbWUoInRvdGFsIHRpbWUiKTt2YXIgcj0icHJlcGFyZSAiK3QubGVuZ3RoKyIgcG9pbnRzIjtlJiZjb25zb2xlLnRpbWUociksdGhpcy5wb2ludHM9dDt2YXIgbj10Lm1hcChhKTtlJiZjb25zb2xlLnRpbWVFbmQocik7Zm9yKHZhciBpPXRoaXMub3B0aW9ucy5tYXhab29tO2k+PXRoaXMub3B0aW9ucy5taW5ab29tO2ktLSl7dmFyIG89K0RhdGUubm93KCk7dGhpcy50cmVlc1tpKzFdPWcobixkLG0sdGhpcy5vcHRpb25zLm5vZGVTaXplLEZsb2F0MzJBcnJheSksbj10aGlzLl9jbHVzdGVyKG4saSksZSYmY29uc29sZS5sb2coInolZDogJWQgY2x1c3RlcnMgaW4gJWRtcyIsaSxuLmxlbmd0aCwrRGF0ZS5ub3coKS1vKX1yZXR1cm4gdGhpcy50cmVlc1t0aGlzLm9wdGlvbnMubWluWm9vbV09ZyhuLGQsbSx0aGlzLm9wdGlvbnMubm9kZVNpemUsRmxvYXQzMkFycmF5KSxlJiZjb25zb2xlLnRpbWVFbmQoInRvdGFsIHRpbWUiKSx0aGlzfSxnZXRDbHVzdGVyczpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLnRyZWVzW3RoaXMuX2xpbWl0Wm9vbShlKV0sbj1yLnJhbmdlKHUodFswXSksYyh0WzNdKSx1KHRbMl0pLGModFsxXSkpLGk9W10sbz0wO288bi5sZW5ndGg7bysrKXt2YXIgYT1yLnBvaW50c1tuW29dXTtpLnB1c2goLTEhPT1hLmlkP3RoaXMucG9pbnRzW2EuaWRdOnMoYSkpfXJldHVybiBpfSxnZXRUaWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnBvdygyLHQpLGk9dGhpcy5vcHRpb25zLmV4dGVudCxvPXRoaXMub3B0aW9ucy5yYWRpdXMvaSxhPXRoaXMudHJlZXNbdGhpcy5fbGltaXRab29tKHQpXSxzPWEucmFuZ2UoKGUtbykvbiwoci1vKS9uLChlKzErbykvbiwocisxK28pL24pO2lmKCFzLmxlbmd0aClyZXR1cm4gbnVsbDtmb3IodmFyIHU9e2ZlYXR1cmVzOltdfSxjPTA7YzxzLmxlbmd0aDtjKyspe3ZhciBoPWEucG9pbnRzW3NbY11dLGY9e3R5cGU6MSxnZW9tZXRyeTpbW01hdGgucm91bmQoaSooaC54Km4tZSkpLE1hdGgucm91bmQoaSooaC55Km4tcikpXV0sdGFnczotMSE9PWguaWQ/dGhpcy5wb2ludHNbaC5pZF0ucHJvcGVydGllczpsKGgpfTt1LmZlYXR1cmVzLnB1c2goZil9cmV0dXJuIHV9LF9saW1pdFpvb206ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KHRoaXMub3B0aW9ucy5taW5ab29tLE1hdGgubWluKHQsdGhpcy5vcHRpb25zLm1heFpvb20rMSkpfSxfY2x1c3RlcjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPXRoaXMub3B0aW9ucy5yYWRpdXMvKHRoaXMub3B0aW9ucy5leHRlbnQqTWF0aC5wb3coMixlKSksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldO2lmKCEoYS56b29tPD1lKSl7YS56b29tPWU7Zm9yKHZhciBzPXRoaXMudHJlZXNbZSsxXSxsPXMud2l0aGluKGEueCxhLnksbiksdT0hMSxjPWEubnVtUG9pbnRzLGg9YS54KmMsZj1hLnkqYyxwPTA7cDxsLmxlbmd0aDtwKyspe3ZhciBkPXMucG9pbnRzW2xbcF1dO2U8ZC56b29tJiYodT0hMCxkLnpvb209ZSxoKz1kLngqZC5udW1Qb2ludHMsZis9ZC55KmQubnVtUG9pbnRzLGMrPWQubnVtUG9pbnRzKX1yLnB1c2godT9vKGgvYyxmL2MsYywtMSk6YSl9fXJldHVybiByfX19LHtrZGJ1c2g6NDI5fV0sNDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixvKXtyZXR1cm4gbmV3IGkodCxlLHIsbixvKX1mdW5jdGlvbiBpKHQsZSxyLG4saSl7ZT1lfHxvLHI9cnx8YSxpPWl8fEFycmF5LHRoaXMubm9kZVNpemU9bnx8NjQsdGhpcy5wb2ludHM9dCx0aGlzLmlkcz1uZXcgaSh0Lmxlbmd0aCksdGhpcy5jb29yZHM9bmV3IGkoMip0Lmxlbmd0aCk7Zm9yKHZhciBsPTA7bDx0Lmxlbmd0aDtsKyspdGhpcy5pZHNbbF09bCx0aGlzLmNvb3Jkc1syKmxdPWUodFtsXSksdGhpcy5jb29yZHNbMipsKzFdPXIodFtsXSk7cyh0aGlzLmlkcyx0aGlzLmNvb3Jkcyx0aGlzLm5vZGVTaXplLDAsdGhpcy5pZHMubGVuZ3RoLTEsMCl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBhKHQpe3JldHVybiB0WzFdfXZhciBzPXQoIi4vc29ydCIpLGw9dCgiLi9yYW5nZSIpLHU9dCgiLi93aXRoaW4iKTtlLmV4cG9ydHM9bixpLnByb3RvdHlwZT17cmFuZ2U6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIGwodGhpcy5pZHMsdGhpcy5jb29yZHMsdCxlLHIsbix0aGlzLm5vZGVTaXplKX0sd2l0aGluOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdSh0aGlzLmlkcyx0aGlzLmNvb3Jkcyx0LGUscix0aGlzLm5vZGVTaXplKX19fSx7Ii4vcmFuZ2UiOjQzMCwiLi9zb3J0Ijo0MzEsIi4vd2l0aGluIjo0MzJ9XSw0MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyxhKXtmb3IodmFyIHMsbCx1PVswLHQubGVuZ3RoLTEsMF0sYz1bXTt1Lmxlbmd0aDspe3ZhciBoPXUucG9wKCksZj11LnBvcCgpLHA9dS5wb3AoKTtpZihhPj1mLXApZm9yKHZhciBkPXA7Zj49ZDtkKyspcz1lWzIqZF0sbD1lWzIqZCsxXSxzPj1yJiZpPj1zJiZsPj1uJiZvPj1sJiZjLnB1c2godFtkXSk7ZWxzZXt2YXIgbT1NYXRoLmZsb29yKChwK2YpLzIpO3M9ZVsyKm1dLGw9ZVsyKm0rMV0scz49ciYmaT49cyYmbD49biYmbz49bCYmYy5wdXNoKHRbbV0pO3ZhciBnPShoKzEpJTI7KDA9PT1oP3M+PXI6bD49bikmJih1LnB1c2gocCksdS5wdXNoKG0tMSksdS5wdXNoKGcpKSwoMD09PWg/aT49czpvPj1sKSYmKHUucHVzaChtKzEpLHUucHVzaChmKSx1LnB1c2goZykpfX1yZXR1cm4gY31lLmV4cG9ydHM9bn0se31dLDQzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG8sYSxzKXtpZighKHI+PWEtbykpe3ZhciBsPU1hdGguZmxvb3IoKG8rYSkvMik7aSh0LGUsbCxvLGEscyUyKSxuKHQsZSxyLG8sbC0xLHMrMSksbih0LGUscixsKzEsYSxzKzEpfX1mdW5jdGlvbiBpKHQsZSxyLG4sYSxzKXtmb3IoO2E+bjspe2lmKGEtbj42MDApe3ZhciBsPWEtbisxLHU9ci1uKzEsYz1NYXRoLmxvZyhsKSxoPS41Kk1hdGguZXhwKDIqYy8zKSxmPS41Kk1hdGguc3FydChjKmgqKGwtaCkvbCkqKDA+dS1sLzI/LTE6MSkscD1NYXRoLm1heChuLE1hdGguZmxvb3Ioci11KmgvbCtmKSksZD1NYXRoLm1pbihhLE1hdGguZmxvb3IocisobC11KSpoL2wrZikpO2kodCxlLHIscCxkLHMpfXZhciBtPWVbMipyK3NdLGc9bix2PWE7Zm9yKG8odCxlLG4sciksZVsyKmErc10+bSYmbyh0LGUsbixhKTt2Pmc7KXtmb3Iobyh0LGUsZyx2KSxnKyssdi0tO2VbMipnK3NdPG07KWcrKztmb3IoO2VbMip2K3NdPm07KXYtLX1lWzIqbitzXT09PW0/byh0LGUsbix2KToodisrLG8odCxlLHYsYSkpLHI+PXYmJihuPXYrMSksdj49ciYmKGE9di0xKX19ZnVuY3Rpb24gbyh0LGUscixuKXthKHQscixuKSxhKGUsMipyLDIqbiksYShlLDIqcisxLDIqbisxKX1mdW5jdGlvbiBhKHQsZSxyKXt2YXIgbj10W2VdO3RbZV09dFtyXSx0W3JdPW59ZS5leHBvcnRzPW59LHt9XSw0MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLG8sYSl7Zm9yKHZhciBzPVswLHQubGVuZ3RoLTEsMF0sbD1bXSx1PW8qbztzLmxlbmd0aDspe3ZhciBjPXMucG9wKCksaD1zLnBvcCgpLGY9cy5wb3AoKTtpZihhPj1oLWYpZm9yKHZhciBwPWY7aD49cDtwKyspaShlWzIqcF0sZVsyKnArMV0scixuKTw9dSYmbC5wdXNoKHRbcF0pO2Vsc2V7dmFyIGQ9TWF0aC5mbG9vcigoZitoKS8yKSxtPWVbMipkXSxnPWVbMipkKzFdO2kobSxnLHIsbik8PXUmJmwucHVzaCh0W2RdKTt2YXIgdj0oYysxKSUyOygwPT09Yz9tPj1yLW86Zz49bi1vKSYmKHMucHVzaChmKSxzLnB1c2goZC0xKSxzLnB1c2godikpLCgwPT09Yz9yK28+PW06bitvPj1nKSYmKHMucHVzaChkKzEpLHMucHVzaChoKSxzLnB1c2godikpfX1yZXR1cm4gbH1mdW5jdGlvbiBpKHQsZSxyLG4pe3ZhciBpPXQtcixvPWUtbjtyZXR1cm4gaSppK28qb31lLmV4cG9ydHM9bn0se31dLDQzMzpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbil7dGhpcy5jeD0zKnQsdGhpcy5ieD0zKihyLXQpLXRoaXMuY3gsdGhpcy5heD0xLXRoaXMuY3gtdGhpcy5ieCx0aGlzLmN5PTMqZSx0aGlzLmJ5PTMqKG4tZSktdGhpcy5jeSx0aGlzLmF5PTEtdGhpcy5jeS10aGlzLmJ5LHRoaXMucDF4PXQsdGhpcy5wMXk9bix0aGlzLnAyeD1yLHRoaXMucDJ5PW59ZS5leHBvcnRzPW4sbi5wcm90b3R5cGUuc2FtcGxlQ3VydmVYPWZ1bmN0aW9uKHQpe3JldHVybigodGhpcy5heCp0K3RoaXMuYngpKnQrdGhpcy5jeCkqdH0sbi5wcm90b3R5cGUuc2FtcGxlQ3VydmVZPWZ1bmN0aW9uKHQpe3JldHVybigodGhpcy5heSp0K3RoaXMuYnkpKnQrdGhpcy5jeSkqdH0sbi5wcm90b3R5cGUuc2FtcGxlQ3VydmVEZXJpdmF0aXZlWD1mdW5jdGlvbih0KXtyZXR1cm4oMyp0aGlzLmF4KnQrMip0aGlzLmJ4KSp0K3RoaXMuY3h9LG4ucHJvdG90eXBlLnNvbHZlQ3VydmVYPWZ1bmN0aW9uKHQsZSl7InVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0xZS02KTt2YXIgcixuLGksbyxhO2ZvcihpPXQsYT0wOzg+YTthKyspe2lmKG89dGhpcy5zYW1wbGVDdXJ2ZVgoaSktdCxNYXRoLmFicyhvKTxlKXJldHVybiBpO3ZhciBzPXRoaXMuc2FtcGxlQ3VydmVEZXJpdmF0aXZlWChpKTtpZihNYXRoLmFicyhzKTwxZS02KWJyZWFrO2ktPW8vc31pZihyPTAsbj0xLGk9dCxyPmkpcmV0dXJuIHI7aWYoaT5uKXJldHVybiBuO2Zvcig7bj5yOyl7aWYobz10aGlzLnNhbXBsZUN1cnZlWChpKSxNYXRoLmFicyhvLXQpPGUpcmV0dXJuIGk7dD5vP3I9aTpuPWksaT0uNSoobi1yKStyfXJldHVybiBpfSxuLnByb3RvdHlwZS5zb2x2ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnNhbXBsZUN1cnZlWSh0aGlzLnNvbHZlQ3VydmVYKHQsZSkpfX0se31dLDQzNDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cy5WZWN0b3JUaWxlPXQoIi4vbGliL3ZlY3RvcnRpbGUuanMiKSxlLmV4cG9ydHMuVmVjdG9yVGlsZUZlYXR1cmU9dCgiLi9saWIvdmVjdG9ydGlsZWZlYXR1cmUuanMiKSxlLmV4cG9ydHMuVmVjdG9yVGlsZUxheWVyPXQoIi4vbGliL3ZlY3RvcnRpbGVsYXllci5qcyIpfSx7Ii4vbGliL3ZlY3RvcnRpbGUuanMiOjQzNSwiLi9saWIvdmVjdG9ydGlsZWZlYXR1cmUuanMiOjQzNiwiLi9saWIvdmVjdG9ydGlsZWxheWVyLmpzIjo0Mzd9XSw0MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMubGF5ZXJzPXQucmVhZEZpZWxkcyhpLHt9LGUpfWZ1bmN0aW9uIGkodCxlLHIpe2lmKDM9PT10KXt2YXIgbj1uZXcgbyhyLHIucmVhZFZhcmludCgpK3IucG9zKTtuLmxlbmd0aCYmKGVbbi5uYW1lXT1uKX19dmFyIG89dCgiLi92ZWN0b3J0aWxlbGF5ZXIiKTtlLmV4cG9ydHM9bn0seyIuL3ZlY3RvcnRpbGVsYXllciI6NDM3fV0sNDM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbixvKXt0aGlzLnByb3BlcnRpZXM9e30sdGhpcy5leHRlbnQ9cix0aGlzLnR5cGU9MCx0aGlzLl9wYmY9dCx0aGlzLl9nZW9tZXRyeT0tMSx0aGlzLl9rZXlzPW4sdGhpcy5fdmFsdWVzPW8sdC5yZWFkRmllbGRzKGksdGhpcyxlKX1mdW5jdGlvbiBpKHQsZSxyKXsxPT10P2UuaWQ9ci5yZWFkVmFyaW50KCk6Mj09dD9vKHIsZSk6Mz09dD9lLnR5cGU9ci5yZWFkVmFyaW50KCk6ND09dCYmKGUuX2dlb21ldHJ5PXIucG9zKX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPXQucmVhZFZhcmludCgpK3QucG9zO3QucG9zPHI7KXt2YXIgbj1lLl9rZXlzW3QucmVhZFZhcmludCgpXSxpPWUuX3ZhbHVlc1t0LnJlYWRWYXJpbnQoKV07ZS5wcm9wZXJ0aWVzW25dPWl9fWZ1bmN0aW9uIGEodCl7dmFyIGU9dC5sZW5ndGg7aWYoMT49ZSlyZXR1cm5bdF07Zm9yKHZhciByLG4saT1bXSxvPTA7ZT5vO28rKyl7dmFyIGE9cyh0W29dKTswIT09YSYmKHZvaWQgMD09PW4mJihuPTA+YSksbj09PTA+YT8ociYmaS5wdXNoKHIpLHI9W3Rbb11dKTpyLnB1c2godFtvXSkpfXJldHVybiByJiZpLnB1c2gociksaX1mdW5jdGlvbiBzKHQpe2Zvcih2YXIgZSxyLG49MCxpPTAsbz10Lmxlbmd0aCxhPW8tMTtvPmk7YT1pKyspZT10W2ldLHI9dFthXSxuKz0oci54LWUueCkqKGUueStyLnkpO3JldHVybiBufXZhciBsPXQoInBvaW50LWdlb21ldHJ5Iik7ZS5leHBvcnRzPW4sbi50eXBlcz1bIlVua25vd24iLCJQb2ludCIsIkxpbmVTdHJpbmciLCJQb2x5Z29uIl0sbi5wcm90b3R5cGUubG9hZEdlb21ldHJ5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcGJmO3QucG9zPXRoaXMuX2dlb21ldHJ5O2Zvcih2YXIgZSxyPXQucmVhZFZhcmludCgpK3QucG9zLG49MSxpPTAsbz0wLGE9MCxzPVtdO3QucG9zPHI7KXtpZighaSl7dmFyIHU9dC5yZWFkVmFyaW50KCk7bj03JnUsaT11Pj4zfWlmKGktLSwxPT09bnx8Mj09PW4pbys9dC5yZWFkU1ZhcmludCgpLGErPXQucmVhZFNWYXJpbnQoKSwxPT09biYmKGUmJnMucHVzaChlKSxlPVtdKSxlLnB1c2gobmV3IGwobyxhKSk7ZWxzZXtpZig3IT09bil0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY29tbWFuZCAiK24pO2UmJmUucHVzaChlWzBdLmNsb25lKCkpfX1yZXR1cm4gZSYmcy5wdXNoKGUpLHN9LG4ucHJvdG90eXBlLmJib3g9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wYmY7dC5wb3M9dGhpcy5fZ2VvbWV0cnk7Zm9yKHZhciBlPXQucmVhZFZhcmludCgpK3QucG9zLHI9MSxuPTAsaT0wLG89MCxhPTEvMCxzPS0oMS8wKSxsPTEvMCx1PS0oMS8wKTt0LnBvczxlOyl7aWYoIW4pe3ZhciBjPXQucmVhZFZhcmludCgpO3I9NyZjLG49Yz4+M31pZihuLS0sMT09PXJ8fDI9PT1yKWkrPXQucmVhZFNWYXJpbnQoKSxvKz10LnJlYWRTVmFyaW50KCksYT5pJiYoYT1pKSxpPnMmJihzPWkpLGw+byYmKGw9byksbz51JiYodT1vKTtlbHNlIGlmKDchPT1yKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjb21tYW5kICIrcil9cmV0dXJuW2EsbCxzLHVdfSxuLnByb3RvdHlwZS50b0dlb0pTT049ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRbZV0sbj0xODAtMzYwKihyLnkrYykvbDt0W2VdPVszNjAqKHIueCt1KS9sLTE4MCwzNjAvTWF0aC5QSSpNYXRoLmF0YW4oTWF0aC5leHAobipNYXRoLlBJLzE4MCkpLTkwXX19dmFyIG8scyxsPXRoaXMuZXh0ZW50Kk1hdGgucG93KDIsciksdT10aGlzLmV4dGVudCp0LGM9dGhpcy5leHRlbnQqZSxoPXRoaXMubG9hZEdlb21ldHJ5KCksZj1uLnR5cGVzW3RoaXMudHlwZV07c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSAxOnZhciBwPVtdO2ZvcihvPTA7bzxoLmxlbmd0aDtvKyspcFtvXT1oW29dWzBdO2g9cCxpKGgpO2JyZWFrO2Nhc2UgMjpmb3Iobz0wO288aC5sZW5ndGg7bysrKWkoaFtvXSk7YnJlYWs7Y2FzZSAzOmZvcihoPWEoaCksbz0wO288aC5sZW5ndGg7bysrKWZvcihzPTA7czxoW29dLmxlbmd0aDtzKyspaShoW29dW3NdKX0xPT09aC5sZW5ndGg/aD1oWzBdOmY9Ik11bHRpIitmO3ZhciBkPXt0eXBlOiJGZWF0dXJlIixnZW9tZXRyeTp7dHlwZTpmLGNvb3JkaW5hdGVzOmh9LHByb3BlcnRpZXM6dGhpcy5wcm9wZXJ0aWVzfTtyZXR1cm4iaWQiaW4gdGhpcyYmKGQuaWQ9dGhpcy5pZCksZH19LHsicG9pbnQtZ2VvbWV0cnkiOjQyNH1dLDQzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy52ZXJzaW9uPTEsdGhpcy5uYW1lPW51bGwsdGhpcy5leHRlbnQ9NDA5Nix0aGlzLmxlbmd0aD0wLHRoaXMuX3BiZj10LHRoaXMuX2tleXM9W10sdGhpcy5fdmFsdWVzPVtdLHRoaXMuX2ZlYXR1cmVzPVtdLHQucmVhZEZpZWxkcyhpLHRoaXMsZSksdGhpcy5sZW5ndGg9dGhpcy5fZmVhdHVyZXMubGVuZ3RofWZ1bmN0aW9uIGkodCxlLHIpezE1PT09dD9lLnZlcnNpb249ci5yZWFkVmFyaW50KCk6MT09PXQ/ZS5uYW1lPXIucmVhZFN0cmluZygpOjU9PT10P2UuZXh0ZW50PXIucmVhZFZhcmludCgpOjI9PT10P2UuX2ZlYXR1cmVzLnB1c2goci5wb3MpOjM9PT10P2UuX2tleXMucHVzaChyLnJlYWRTdHJpbmcoKSk6ND09PXQmJmUuX3ZhbHVlcy5wdXNoKG8ocikpfWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPW51bGwscj10LnJlYWRWYXJpbnQoKSt0LnBvczt0LnBvczxyOyl7dmFyIG49dC5yZWFkVmFyaW50KCk+PjM7ZT0xPT09bj90LnJlYWRTdHJpbmcoKToyPT09bj90LnJlYWRGbG9hdCgpOjM9PT1uP3QucmVhZERvdWJsZSgpOjQ9PT1uP3QucmVhZFZhcmludDY0KCk6NT09PW4/dC5yZWFkVmFyaW50KCk6Nj09PW4/dC5yZWFkU1ZhcmludCgpOjc9PT1uP3QucmVhZEJvb2xlYW4oKTpudWxsfXJldHVybiBlfXZhciBhPXQoIi4vdmVjdG9ydGlsZWZlYXR1cmUuanMiKTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe2lmKDA+dHx8dD49dGhpcy5fZmVhdHVyZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZmVhdHVyZSBpbmRleCBvdXQgb2YgYm91bmRzIik7dGhpcy5fcGJmLnBvcz10aGlzLl9mZWF0dXJlc1t0XTt2YXIgZT10aGlzLl9wYmYucmVhZFZhcmludCgpK3RoaXMuX3BiZi5wb3M7cmV0dXJuIG5ldyBhKHRoaXMuX3BiZixlLHRoaXMuZXh0ZW50LHRoaXMuX2tleXMsdGhpcy5fdmFsdWVzKX19LHsiLi92ZWN0b3J0aWxlZmVhdHVyZS5qcyI6NDM2fV0sNDM4OltmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdC5sYXllcnMpZS5wdXNoKG8odC5sYXllcnNbcl0pKTt2YXIgbj1uZXcgYztyZXR1cm4gaC50aWxlLndyaXRlKHtsYXllcnM6ZX0sbiksbi5maW5pc2goKX1mdW5jdGlvbiBpKHQpe3ZhciBlPXt9O2Zvcih2YXIgciBpbiB0KWVbcl09bmV3IGYodFtyXS5mZWF0dXJlcyksZVtyXS5uYW1lPXI7cmV0dXJuIG4oe2xheWVyczplfSl9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9e25hbWU6dC5uYW1lfHwiIix2ZXJzaW9uOnQudmVyc2lvbnx8MSxleHRlbnQ6dC5leHRlbnR8fDQwOTYsa2V5czpbXSx2YWx1ZXM6W10sZmVhdHVyZXM6W119LHI9e30sbj17fSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPXQuZmVhdHVyZShpKTtvLmdlb21ldHJ5PWwoby5sb2FkR2VvbWV0cnkoKSk7dmFyIGE9W107Zm9yKHZhciBzIGluIG8ucHJvcGVydGllcyl7dmFyIGM9cltzXTsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihlLmtleXMucHVzaChzKSxjPWUua2V5cy5sZW5ndGgtMSxyW3NdPWMpO3ZhciBoPXUoby5wcm9wZXJ0aWVzW3NdKSxmPW5baC5rZXldOyJ1bmRlZmluZWQiPT10eXBlb2YgZiYmKGUudmFsdWVzLnB1c2goaCksZj1lLnZhbHVlcy5sZW5ndGgtMSxuW2gua2V5XT1mKSxhLnB1c2goYyksYS5wdXNoKGYpfW8udGFncz1hLGUuZmVhdHVyZXMucHVzaChvKX1yZXR1cm4gZX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuKGU8PDMpKyg3JnQpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQ8PDFedD4+MzF9ZnVuY3Rpb24gbCh0KXtmb3IodmFyIGU9W10scj0wLG49MCxpPXQubGVuZ3RoLG89MDtpPm87bysrKXt2YXIgbD10W29dO2UucHVzaChhKDEsMSkpO2Zvcih2YXIgdT0wO3U8bC5sZW5ndGg7dSsrKXsxPT09dSYmZS5wdXNoKGEoMixsLmxlbmd0aC0xKSk7dmFyIGM9bFt1XS54LXIsaD1sW3VdLnktbjtlLnB1c2gocyhjKSxzKGgpKSxyKz1jLG4rPWh9fXJldHVybiBlfWZ1bmN0aW9uIHUodCl7dmFyIGUscj10eXBlb2YgdDtyZXR1cm4ic3RyaW5nIj09PXI/ZT17c3RyaW5nX3ZhbHVlOnR9OiJib29sZWFuIj09PXI/ZT17Ym9vbF92YWx1ZTp0fToibnVtYmVyIj09PXI/ZT10JTEhPT0wP3tkb3VibGVfdmFsdWU6dH06MD50P3tzaW50X3ZhbHVlOnR9Ont1aW50X3ZhbHVlOnR9Oih0PUpTT04uc3RyaW5naWZ5KHQpLGU9e3N0cmluZ192YWx1ZTp0fSksZS5rZXk9cisiOiIrdCxlfXZhciBjPXQoInBiZiIpLGg9dCgiLi92ZWN0b3ItdGlsZS1wYiIpLGY9dCgiLi9saWIvZ2VvanNvbl93cmFwcGVyIik7ZS5leHBvcnRzPW4sZS5leHBvcnRzLmZyb21WZWN0b3JUaWxlSnM9bixlLmV4cG9ydHMuZnJvbUdlb2pzb25WdD1pLGUuZXhwb3J0cy5HZW9KU09OV3JhcHBlcj1mfSx7Ii4vbGliL2dlb2pzb25fd3JhcHBlciI6NDM5LCIuL3ZlY3Rvci10aWxlLXBiIjo0NDAscGJmOjQyMn1dLDQzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMuZmVhdHVyZXM9dCx0aGlzLmxlbmd0aD10Lmxlbmd0aH1mdW5jdGlvbiBpKHQpe3RoaXMuaWQ9Im51bWJlciI9PXR5cGVvZiB0LmlkP3QuaWQ6dm9pZCAwLHRoaXMudHlwZT10LnR5cGUsdGhpcy5yYXdHZW9tZXRyeT0xPT09dC50eXBlP1t0Lmdlb21ldHJ5XTp0Lmdlb21ldHJ5LHRoaXMucHJvcGVydGllcz10LnRhZ3MsdGhpcy5leHRlbnQ9NDA5Nn12YXIgbz10KCJwb2ludC1nZW9tZXRyeSIpLGE9dCgidmVjdG9yLXRpbGUiKS5WZWN0b3JUaWxlRmVhdHVyZTtlLmV4cG9ydHM9bixuLnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaSh0aGlzLmZlYXR1cmVzW3RdKX0saS5wcm90b3R5cGUubG9hZEdlb21ldHJ5PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yYXdHZW9tZXRyeTt0aGlzLmdlb21ldHJ5PVtdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXtmb3IodmFyIHI9dFtlXSxuPVtdLGk9MDtpPHIubGVuZ3RoO2krKyluLnB1c2gobmV3IG8ocltpXVswXSxyW2ldWzFdKSk7dGhpcy5nZW9tZXRyeS5wdXNoKG4pfXJldHVybiB0aGlzLmdlb21ldHJ5fSxpLnByb3RvdHlwZS5iYm94PWZ1bmN0aW9uKCl7dGhpcy5nZW9tZXRyeXx8dGhpcy5sb2FkR2VvbWV0cnkoKTtmb3IodmFyIHQ9dGhpcy5nZW9tZXRyeSxlPTEvMCxyPS0oMS8wKSxuPTEvMCxpPS0oMS8wKSxvPTA7bzx0Lmxlbmd0aDtvKyspZm9yKHZhciBhPXRbb10scz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdO2U9TWF0aC5taW4oZSxsLngpLHI9TWF0aC5tYXgocixsLngpLG49TWF0aC5taW4obixsLnkpLGk9TWF0aC5tYXgoaSxsLnkpfXJldHVybltlLG4scixpXX0saS5wcm90b3R5cGUudG9HZW9KU09OPWEucHJvdG90eXBlLnRvR2VvSlNPTn0seyJwb2ludC1nZW9tZXRyeSI6NDI0LCJ2ZWN0b3ItdGlsZSI6NDM0fV0sNDQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gdC5yZWFkRmllbGRzKGkse2xheWVyczpbXX0sZSl9ZnVuY3Rpb24gaSh0LGUscil7Mz09PXQmJmUubGF5ZXJzLnB1c2goZihyLHIucmVhZFZhcmludCgpK3IucG9zKSl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByO2lmKHZvaWQgMCE9PXQubGF5ZXJzKWZvcihyPTA7cjx0LmxheWVycy5sZW5ndGg7cisrKWUud3JpdGVNZXNzYWdlKDMsZCx0LmxheWVyc1tyXSl9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0LnJlYWRGaWVsZHMocyx7fSxlKX1mdW5jdGlvbiBzKHQsZSxyKXsxPT09dD9lLnN0cmluZ192YWx1ZT1yLnJlYWRTdHJpbmcoKToyPT09dD9lLmZsb2F0X3ZhbHVlPXIucmVhZEZsb2F0KCk6Mz09PXQ/ZS5kb3VibGVfdmFsdWU9ci5yZWFkRG91YmxlKCk6ND09PXQ/ZS5pbnRfdmFsdWU9ci5yZWFkVmFyaW50KCk6NT09PXQ/ZS51aW50X3ZhbHVlPXIucmVhZFZhcmludCgpOjY9PT10P2Uuc2ludF92YWx1ZT1yLnJlYWRTVmFyaW50KCk6Nz09PXQmJihlLmJvb2xfdmFsdWU9ci5yZWFkQm9vbGVhbigpKX1mdW5jdGlvbiBsKHQsZSl7dm9pZCAwIT09dC5zdHJpbmdfdmFsdWUmJmUud3JpdGVTdHJpbmdGaWVsZCgxLHQuc3RyaW5nX3ZhbHVlKSx2b2lkIDAhPT10LmZsb2F0X3ZhbHVlJiZlLndyaXRlRmxvYXRGaWVsZCgyLHQuZmxvYXRfdmFsdWUpLHZvaWQgMCE9PXQuZG91YmxlX3ZhbHVlJiZlLndyaXRlRG91YmxlRmllbGQoMyx0LmRvdWJsZV92YWx1ZSksdm9pZCAwIT09dC5pbnRfdmFsdWUmJmUud3JpdGVWYXJpbnRGaWVsZCg0LHQuaW50X3ZhbHVlKSx2b2lkIDAhPT10LnVpbnRfdmFsdWUmJmUud3JpdGVWYXJpbnRGaWVsZCg1LHQudWludF92YWx1ZSksdm9pZCAwIT09dC5zaW50X3ZhbHVlJiZlLndyaXRlU1ZhcmludEZpZWxkKDYsdC5zaW50X3ZhbHVlKSx2b2lkIDAhPT10LmJvb2xfdmFsdWUmJmUud3JpdGVCb29sZWFuRmllbGQoNyx0LmJvb2xfdmFsdWUpfWZ1bmN0aW9uIHUodCxlKXt2YXIgcj10LnJlYWRGaWVsZHMoYyx7fSxlKTtyZXR1cm4gdm9pZCAwPT09ci50eXBlJiYoci50eXBlPSJVbmtub3duIikscn1mdW5jdGlvbiBjKHQsZSxyKXsxPT09dD9lLmlkPXIucmVhZFZhcmludCgpOjI9PT10P2UudGFncz1yLnJlYWRQYWNrZWRWYXJpbnQoKTozPT09dD9lLnR5cGU9ci5yZWFkVmFyaW50KCk6ND09PXQmJihlLmdlb21ldHJ5PXIucmVhZFBhY2tlZFZhcmludCgpKX1mdW5jdGlvbiBoKHQsZSl7dm9pZCAwIT09dC5pZCYmZS53cml0ZVZhcmludEZpZWxkKDEsdC5pZCksdm9pZCAwIT09dC50YWdzJiZlLndyaXRlUGFja2VkVmFyaW50KDIsdC50YWdzKSx2b2lkIDAhPT10LnR5cGUmJmUud3JpdGVWYXJpbnRGaWVsZCgzLHQudHlwZSksdm9pZCAwIT09dC5nZW9tZXRyeSYmZS53cml0ZVBhY2tlZFZhcmludCg0LHQuZ2VvbWV0cnkpfWZ1bmN0aW9uIGYodCxlKXtyZXR1cm4gdC5yZWFkRmllbGRzKHAse2ZlYXR1cmVzOltdLGtleXM6W10sdmFsdWVzOltdfSxlKX1mdW5jdGlvbiBwKHQsZSxyKXsxNT09PXQ/ZS52ZXJzaW9uPXIucmVhZFZhcmludCgpOjE9PT10P2UubmFtZT1yLnJlYWRTdHJpbmcoKToyPT09dD9lLmZlYXR1cmVzLnB1c2godShyLHIucmVhZFZhcmludCgpK3IucG9zKSk6Mz09PXQ/ZS5rZXlzLnB1c2goci5yZWFkU3RyaW5nKCkpOjQ9PT10P2UudmFsdWVzLnB1c2goYShyLHIucmVhZFZhcmludCgpK3IucG9zKSk6NT09PXQmJihlLmV4dGVudD1yLnJlYWRWYXJpbnQoKSl9ZnVuY3Rpb24gZCh0LGUpe3ZvaWQgMCE9PXQudmVyc2lvbiYmZS53cml0ZVZhcmludEZpZWxkKDE1LHQudmVyc2lvbiksdm9pZCAwIT09dC5uYW1lJiZlLndyaXRlU3RyaW5nRmllbGQoMSx0Lm5hbWUpO3ZhciByO2lmKHZvaWQgMCE9PXQuZmVhdHVyZXMpZm9yKHI9MDtyPHQuZmVhdHVyZXMubGVuZ3RoO3IrKyllLndyaXRlTWVzc2FnZSgyLGgsdC5mZWF0dXJlc1tyXSk7aWYodm9pZCAwIT09dC5rZXlzKWZvcihyPTA7cjx0LmtleXMubGVuZ3RoO3IrKyllLndyaXRlU3RyaW5nRmllbGQoMyx0LmtleXNbcl0pO2lmKHZvaWQgMCE9PXQudmFsdWVzKWZvcihyPTA7cjx0LnZhbHVlcy5sZW5ndGg7cisrKWUud3JpdGVNZXNzYWdlKDQsbCx0LnZhbHVlc1tyXSk7dm9pZCAwIT09dC5leHRlbnQmJmUud3JpdGVWYXJpbnRGaWVsZCg1LHQuZXh0ZW50KX12YXIgbT1yLnRpbGU9e3JlYWQ6bix3cml0ZTpvfTttLkdlb21UeXBlPXtVbmtub3duOjAsUG9pbnQ6MSxMaW5lU3RyaW5nOjIsUG9seWdvbjozfSxtLnZhbHVlPXtyZWFkOmEsd3JpdGU6bH0sbS5mZWF0dXJlPXtyZWFkOnUsd3JpdGU6aH0sbS5sYXllcj17cmVhZDpmLHdyaXRlOmR9fSx7fV0sNDQxOltmdW5jdGlvbih0LGUscil7dmFyIG49YXJndW1lbnRzWzNdLGk9YXJndW1lbnRzWzRdLG89YXJndW1lbnRzWzVdLGE9SlNPTi5zdHJpbmdpZnk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLHM9T2JqZWN0LmtleXMobyksbD0wLHU9cy5sZW5ndGg7dT5sO2wrKyl7dmFyIGM9c1tsXSxoPW9bY10uZXhwb3J0cztpZihoPT09dHx8aCYmaC5kZWZhdWx0PT09dCl7cj1jO2JyZWFrfX1pZighcil7cj1NYXRoLmZsb29yKE1hdGgucG93KDE2LDgpKk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDE2KTtmb3IodmFyIGY9e30sbD0wLHU9cy5sZW5ndGg7dT5sO2wrKyl7dmFyIGM9c1tsXTtmW2NdPWN9aVtyXT1bRnVuY3Rpb24oWyJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCIoIit0KyIpKHNlbGYpIiksZl19dmFyIHA9TWF0aC5mbG9vcihNYXRoLnBvdygxNiw4KSpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNiksZD17fTtkW3JdPXIsaVtwXT1bRnVuY3Rpb24oWyJyZXF1aXJlIl0sInZhciBmID0gcmVxdWlyZSgiK2EocikrIik7KGYuZGVmYXVsdCA/IGYuZGVmYXVsdCA6IGYpKHNlbGYpOyIpLGRdO3ZhciBtPSIoIituKyIpKHsiK09iamVjdC5rZXlzKGkpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gYSh0KSsiOlsiK2lbdF1bMF0rIiwiK2EoaVt0XVsxXSkrIl0ifSkuam9pbigiLCIpKyJ9LHt9LFsiK2EocCkrIl0pIixnPXdpbmRvdy5VUkx8fHdpbmRvdy53ZWJraXRVUkx8fHdpbmRvdy5tb3pVUkx8fHdpbmRvdy5tc1VSTCx2PW5ldyBCbG9iKFttXSx7dHlwZToidGV4dC9qYXZhc2NyaXB0In0pO2lmKGUmJmUuYmFyZSlyZXR1cm4gdjt2YXIgeT1nLmNyZWF0ZU9iamVjdFVSTCh2KSxiPW5ldyBXb3JrZXIoeSk7cmV0dXJuIGIub2JqZWN0VVJMPXksYn19LHt9XSw0NDI6W2Z1bmN0aW9uKGUscixuKXshZnVuY3Rpb24oZSxpKXsib2JqZWN0Ij09dHlwZW9mIG4mJiJ1bmRlZmluZWQiIT10eXBlb2Ygcj9pKG4pOiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0LmFtZD90KFsiZXhwb3J0cyJdLGkpOmkoZS5XaG9vVFM9ZS5XaG9vVFN8fHt9KX0odGhpcyxmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSxuLGksbyxhKXthPWF8fHt9O3ZhciBzPXQrIj8iK1siYmJveD0iK3IobixpLG8pLCJmb3JtYXQ9IisoYS5mb3JtYXR8fCJpbWFnZS9wbmciKSwic2VydmljZT0iKyhhLnNlcnZpY2V8fCJXTVMiKSwidmVyc2lvbj0iKyhhLnZlcnNpb258fCIxLjEuMSIpLCJyZXF1ZXN0PSIrKGEucmVxdWVzdHx8IkdldE1hcCIpLCJzcnM9IisoYS5zcnN8fCJFUFNHOjM4NTciKSwid2lkdGg9IisoYS53aWR0aHx8MjU2KSwiaGVpZ2h0PSIrKGEuaGVpZ2h0fHwyNTYpLCJsYXllcnM9IitlXS5qb2luKCImIik7cmV0dXJuIHN9ZnVuY3Rpb24gcih0LGUscil7ZT1NYXRoLnBvdygyLHIpLWUtMTt2YXIgaT1uKDI1Nip0LDI1NiplLHIpLG89bigyNTYqKHQrMSksMjU2KihlKzEpLHIpO3JldHVybiBpWzBdKyIsIitpWzFdKyIsIitvWzBdKyIsIitvWzFdfWZ1bmN0aW9uIG4odCxlLHIpe3ZhciBuPTIqTWF0aC5QSSo2Mzc4MTM3LzI1Ni9NYXRoLnBvdygyLHIpLGk9dCpuLTIqTWF0aC5QSSo2Mzc4MTM3LzIsbz1lKm4tMipNYXRoLlBJKjYzNzgxMzcvMjtyZXR1cm5baSxvXX10LmdldFVSTD1lLHQuZ2V0VGlsZUJCb3g9cix0LmdldE1lcmNDb29yZHM9bixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KX0se31dLDQ0MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17bmFtZToibWFwYm94LWdsIixkZXNjcmlwdGlvbjoiQSBXZWJHTCBpbnRlcmFjdGl2ZSBtYXBzIGxpYnJhcnkiLHZlcnNpb246IjAuMjIuMCIsbWFpbjoianMvbWFwYm94LWdsLmpzIixsaWNlbnNlOiJCU0QtMy1DbGF1c2UiLHJlcG9zaXRvcnk6e3R5cGU6ImdpdCIsdXJsOiJnaXQ6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMuZ2l0In0sZW5naW5lczp7bm9kZToiPj00LjAuMCJ9LGRlcGVuZGVuY2llczp7Y3NzY29sb3JwYXJzZXI6Il4xLjAuMiIsZWFyY3V0OiJeMi4wLjMiLCJmZWF0dXJlLWZpbHRlciI6Il4yLjIuMCIsImdlb2pzb24tcmV3aW5kIjoiXjAuMS4wIiwiZ2VvanNvbi12dCI6Il4yLjQuMCIsImdsLW1hdHJpeCI6Il4yLjMuMSIsImdyaWQtaW5kZXgiOiJeMS4wLjAiLCJtYXBib3gtZ2wtZnVuY3Rpb24iOiJeMS4yLjEiLCJtYXBib3gtZ2wtc2hhZGVycyI6ImdpdGh1YjptYXBib3gvbWFwYm94LWdsLXNoYWRlcnMjZGUyYWIwMDc0NTVhYTI1ODdjNTUyNjk0YzY4NTgzZjk0YzlmMjc0NyIsIm1hcGJveC1nbC1zdHlsZS1zcGVjIjoiZ2l0aHViOm1hcGJveC9tYXBib3gtZ2wtc3R5bGUtc3BlYyM4M2IxYTNlNTgzN2Q3ODVhZjU4MmVmZDVlZDFhMjEyZjJkZjZhNGFlIiwibWFwYm94LWdsLXN1cHBvcnRlZCI6Il4xLjIuMCIscGJmOiJeMS4zLjIiLHBuZ2pzOiJeMi4yLjAiLCJwb2ludC1nZW9tZXRyeSI6Il4wLjAuMCIscXVpY2tzZWxlY3Q6Il4xLjAuMCIscmVxdWVzdDoiXjIuMzkuMCIsInJlc29sdmUtdXJsIjoiXjAuMi4xIiwic2hlbGYtcGFjayI6Il4xLjAuMCIsc3VwZXJjbHVzdGVyOiJeMi4wLjEiLHVuYXNzZXJ0aWZ5OiJeMi4wLjAiLHVuaXRiZXppZXI6Il4wLjAuMCIsInZlY3Rvci10aWxlIjoiXjEuMy4wIiwidnQtcGJmIjoiXjIuMC4yIix3ZWJ3b3JraWZ5OiJeMS4zLjAiLCJ3aG9vdHMtanMiOiJeMi4wLjAifSxkZXZEZXBlbmRlbmNpZXM6e2FzeW5jOiJeMi4wLjEiLCJiYWJlbC1wcmVzZXQtcmVhY3QiOiJeNi4xMS4xIixiYWJlbGlmeToiXjcuMy4wIixiZW5jaG1hcms6In4yLjEuMCIsYnJvd3NlcmlmeToiXjEzLjAuMCIsImJyb3dzZXJpZnktbWlkZGxld2FyZSI6Il43LjAuMCIsY2xpcGJvYXJkOiJeMS41LjEyIiwiY29uY2F0LXN0cmVhbSI6IjEuNS4xIixjb3ZlcmFsbHM6Il4yLjExLjgiLGRvY3RyaW5lOiJeMS4yLjEiLGRvY3VtZW50YXRpb246Imh0dHBzOi8vZ2l0aHViLmNvbS9kb2N1bWVudGF0aW9uanMvZG9jdW1lbnRhdGlvbi9hcmNoaXZlL2JiNDE2MTljNzM0ZTU5ZWYzZmJjMzY0ODYxMDAzMmVmY2ZkYWFhY2UudGFyLmd6IiwiZG9jdW1lbnRhdGlvbi10aGVtZS11dGlscyI6IjMuMC4wIixlbnZpZnk6Il4zLjQuMCIsZXNsaW50OiJeMi41LjMiLCJlc2xpbnQtY29uZmlnLW1vdXJuZXIiOiJeMi4wLjAiLCJlc2xpbnQtcGx1Z2luLWh0bWwiOiJeMS41LjEiLGV4cHJlc3M6Il40LjEzLjQiLGdsOiJeNC4wLjEiLGhhbmRsZWJhcnM6IjQuMC41IiwiaGlnaGxpZ2h0LmpzIjoiOS4zLjAiLGlzdGFuYnVsOiJeMC40LjIiLCJqc29uLWxvYWRlciI6Il4wLjUuNCIsbG9kYXNoOiJeNC4xMy4xIiwibWFwYm94LWdsLXRlc3Qtc3VpdGUiOiJnaXRodWI6bWFwYm94L21hcGJveC1nbC10ZXN0LXN1aXRlIzE2MTlkODRlNzZmZjM0MzRiZWNkNTEyMzc3MjBkMzcwYzc0MDVlZTUiLCJtZW1vcnktZnMiOiJeMC4zLjAiLG1pbmlmeWlmeToiXjcuMC4xIixueWM6IjYuNC4wIixwcm94eXF1aXJlOiJeMS43LjkiLHJlYWN0OiJeMTUuMy4wIiwicmVhY3QtZG9tIjoiXjE1LjMuMCIscmVtYXJrOiI0LjIuMiIsInJlbWFyay1odG1sIjoiMy4wLjAiLHNpbm9uOiJeMS4xNS40IixzdDoiXjEuMC4wIix0YXA6Il41LjcuMCIsdGhyb3VnaDoiXjIuMy43IiwidHJhbnNmb3JtLWxvYWRlciI6Il4wLjIuMyIsInVuaXN0LXV0aWwtdmlzaXQiOiIxLjEuMCIsdmlueWw6IjEuMS4xIiwidmlueWwtZnMiOiIyLjQuMyIsd2F0Y2hpZnk6Il4zLjIuMiIsd2VicGFjazoiXjEuMTMuMSIsIndlYndvcmtpZnktd2VicGFjayI6Il4xLjEuMyJ9LGJyb3dzZXJpZnk6e3RyYW5zZm9ybTpbInVuYXNzZXJ0aWZ5Il19LGJyb3dzZXI6eyIuL2pzL3V0aWwvYWpheC5qcyI6Ii4vanMvdXRpbC9icm93c2VyL2FqYXguanMiLCIuL2pzL3V0aWwvYnJvd3Nlci5qcyI6Ii4vanMvdXRpbC9icm93c2VyL2Jyb3dzZXIuanMiLCIuL2pzL3V0aWwvY2FudmFzLmpzIjoiLi9qcy91dGlsL2Jyb3dzZXIvY2FudmFzLmpzIiwiLi9qcy91dGlsL2RvbS5qcyI6Ii4vanMvdXRpbC9icm93c2VyL2RvbS5qcyIsIi4vanMvdXRpbC93ZWJfd29ya2VyLmpzIjoiLi9qcy91dGlsL2Jyb3dzZXIvd2ViX3dvcmtlci5qcyJ9LHNjcmlwdHM6eyJidWlsZC1kZXYiOiJicm93c2VyaWZ5IGpzL21hcGJveC1nbC5qcyAtLWRlYnVnIC0taWdub3JlLXRyYW5zZm9ybSB1bmFzc2VydGlmeSAtLXN0YW5kYWxvbmUgbWFwYm94Z2wgPiBkaXN0L21hcGJveC1nbC1kZXYuanMgJiYgdGFwIC0tbm8tY292ZXJhZ2UgdGVzdC9idWlsZC9kZXYudGVzdC5qcyIsImJ1aWxkLWRvY3MiOiJkb2N1bWVudGF0aW9uIGJ1aWxkIC0tZ2l0aHViIC0tZm9ybWF0IGh0bWwgLWMgZG9jdW1lbnRhdGlvbi55bWwgLS10aGVtZSAuL2RvY3MvX3RoZW1lIC0tb3V0cHV0IGRvY3MvYXBpLyIsImJ1aWxkLW1pbiI6ImJyb3dzZXJpZnkganMvbWFwYm94LWdsLmpzIC0tZGVidWcgLS1wbHVnaW4gW21pbmlmeWlmeSAtLW1hcCBtYXBib3gtZ2wuanMubWFwIC0tb3V0cHV0IGRpc3QvbWFwYm94LWdsLmpzLm1hcF0gLS1zdGFuZGFsb25lIG1hcGJveGdsID4gZGlzdC9tYXBib3gtZ2wuanMgJiYgdGFwIC0tbm8tY292ZXJhZ2UgdGVzdC9idWlsZC9taW4udGVzdC5qcyIsIi8vIjoiVGhlICdidWlsZCcgc2NyaXB0IGlzIGludm9rZWQgYnkgcHVibGlzaGVyIHdoZW4gcHVibGlzaGluZyBkb2NzIG9uIHRoZSBtYi1wYWdlcyBicmFuY2giLGJ1aWxkOiJucG0gcnVuIGJ1aWxkLWRvY3MiLGxpbnQ6ImVzbGludCBqcyB0ZXN0IGJlbmNoIHNlcnZlci5qcyBkb2NzL19wb3N0cy9leGFtcGxlcy8qLmh0bWwiLCJvcGVuLWNoYW5nZWQtZXhhbXBsZXMiOiJnaXQgZGlmZiAtLW5hbWUtb25seSBtYi1wYWdlcyBIRUFEIC0tIGRvY3MvX3Bvc3RzL2V4YW1wbGVzLyouaHRtbCB8IGF3ayAne3ByaW50IFwiaHR0cDovLzEyNy4wLjAuMTo0MDAwL21hcGJveC1nbC1qcy9leGFtcGxlL1wiIHN1YnN0cigkMCwzMyxsZW5ndGgoJDApLTM3KX0nIHwgeGFyZ3Mgb3BlbiIsInN0YXJ0LWRvY3MiOiJucG0gcnVuIGJ1aWxkLW1pbiAmJiBucG0gcnVuIGJ1aWxkLWRvY3MgJiYgamVreWxsIHNlcnZlIC13IixzdGFydDoibm9kZSBzZXJ2ZXIuanMiLCJ0ZXN0LXN1aXRlIjoibm9kZSB0ZXN0L3JlbmRlci50ZXN0LmpzICYmIG5vZGUgdGVzdC9xdWVyeS50ZXN0LmpzIix0ZXN0OiJucG0gcnVuIGxpbnQgJiYgdGFwIC0tcmVwb3J0ZXIgZG90IHRlc3QvanMvKi8qLmpzIHRlc3QvYnVpbGQvd2VicGFjay50ZXN0LmpzIn0sZ2l0SGVhZDoiOTg0NjFkM2UyZGI2MzY5Y2JjYjY2ZDcwNTk1ZTMwMzI1NThmYmE5ZCIsYnVnczp7dXJsOiJodHRwczovL2dpdGh1Yi5jb20vbWFwYm94L21hcGJveC1nbC1qcy9pc3N1ZXMifSxob21lcGFnZToiaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMjcmVhZG1lIixfaWQ6Im1hcGJveC1nbEAwLjIyLjAiLF9zaGFzdW06IjdmYjFkNzA5ODRkYzdkODY3MWFiY2QwOWVmNmFiNWZiOThjMGEzMTAiLF9mcm9tOiJtYXBib3gtZ2xAbGF0ZXN0IixfbnBtVmVyc2lvbjoiMi4xNS41Iixfbm9kZVZlcnNpb246IjQuNC41IixfbnBtVXNlcjp7bmFtZToibHVjYXN3b2oiLGVtYWlsOiJsdWNhc0BsdWNhc3dvai5jb20ifSxkaXN0OntzaGFzdW06IjdmYjFkNzA5ODRkYzdkODY3MWFiY2QwOWVmNmFiNWZiOThjMGEzMTAiLHRhcmJhbGw6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21hcGJveC1nbC8tL21hcGJveC1nbC0wLjIyLjAudGd6In0sbWFpbnRhaW5lcnM6W3tuYW1lOiJhYXJvbmxpZG1hbiIsZW1haWw6ImFhcm9ubGlkbWFuQGdtYWlsLmNvbSJ9LHtuYW1lOiJhamFzaHRvbiIsZW1haWw6ImFqLmFzaHRvbkBnbWFpbC5jb20ifSx7bmFtZToiYW5zaXMiLGVtYWlsOiJhbnNpcy5icmFtbWFuaXNAZ21haWwuY29tIn0se25hbWU6ImJlcmd3ZXJrZ2lzIixlbWFpbDoid2JAYmVyZ3dlcmstZ2lzLmF0In0se25hbWU6ImJob3VzZWwiLGVtYWlsOiJicnlhbkBtYXBib3guY29tIn0se25hbWU6ImJzdWRla3VtIixlbWFpbDoiYm9iYnlAbWFwYm94LmNvbSJ9LHtuYW1lOiJjYW1pbGxlYW5uZSIsZW1haWw6ImNhbWlsbGVAbWFwYm94LmNvbSJ9LHtuYW1lOiJkbm9tYWRiIixlbWFpbDoiZGFtb25AbWFwYm94LmNvbSJ9LHtuYW1lOiJkdGhvbXBzb24iLGVtYWlsOiJkdGhvbXBzb25AZ21haWwuY29tIn0se25hbWU6ImVtaWx5bWNhZmVlIixlbWFpbDoiZW1pbHlAbWFwYm94LmNvbSJ9LHtuYW1lOiJmbGlwcG1va2UiLGVtYWlsOiJmbGlwcG1va2VAZ21haWwuY29tIn0se25hbWU6ImZyZWVuZXJkIixlbWFpbDoic3BhbUBmcmVlbmVyZC5kZSJ9LHtuYW1lOiJncmV0YWNiIixlbWFpbDoiY2Fyb2xAbWFwYm94LmNvbSJ9LHtuYW1lOiJpYW4yOSIsZW1haWw6Imlhbi52aWxsZWRhQGdtYWlsLmNvbSJ9LHtuYW1lOiJpYW5zaHdhcmQiLGVtYWlsOiJpYW5AbWFwYm94LmNvbSJ9LHtuYW1lOiJpbmdhbGxzIixlbWFpbDoibmljaG9sYXMuaW5nYWxsc0BnbWFpbC5jb20ifSx7bmFtZToiamZpcmViYXVnaCIsZW1haWw6ImpvaG4uZmlyZWJhdWdoQGdtYWlsLmNvbSJ9LHtuYW1lOiJqcnBydWl0MSIsZW1haWw6Impha2VAamFrZXBydWl0dC5jb20ifSx7bmFtZToia2FyZW56c2hlYSIsZW1haWw6ImthcmVuQG1hcGJveC5jb20ifSx7bmFtZToia2thZWZlciIsZW1haWw6ImtrYWVmZXJAZ21haWwuY29tIn0se25hbWU6ImxidWQiLGVtYWlsOiJsYXVyZW5AbWFwYm94LmNvbSJ9LHtuYW1lOiJsdWNhc3dvaiIsZW1haWw6Imx1Y2FzQGx1Y2Fzd29qLmNvbSJ9LHtuYW1lOiJseGJhcnRoIixlbWFpbDoiYWxleEBtYXBib3guY29tIn0se25hbWU6Imx5emlkaWFtb25kIixlbWFpbDoibHl6aUBtYXBib3guY29tIn0se25hbWU6Im1hcGJveC1hZG1pbiIsZW1haWw6ImFjY291bnRzQG1hcGJveC5jb20ifSx7bmFtZToibWF0ZW92IixlbWFpbDoibWF0dEBtYXBib3guY29tIn0se25hbWU6Im1jd2hpdHRlbW9yZSIsZW1haWw6Im1jd2hpdHRlbW9yZUBnbWFpbC5jb20ifSx7bmFtZToibWljY29saXMiLGVtYWlsOiJqZWZmQG1pY2NvbGlzLm5ldCJ9LHtuYW1lOiJtaWtlbW9ycmlzIixlbWFpbDoibWljaGFlbC5wYXRyaWNrLm1vcnJpc0BnbWFpbC5jb20ifSx7bmFtZToibW9yZ2FuaGVybG9ja2VyIixlbWFpbDoibW9yZ2FuLmhlcmxvY2tlckBnbWFpbC5jb20ifSx7bmFtZToibW91cm5lciIsZW1haWw6ImFnYWZvbmtpbkBnbWFpbC5jb20ifSx7bmFtZToibmlja2lkbHVnYXNoIixlbWFpbDoibmlja2lAbWFwYm94LmNvbSJ9LHtuYW1lOiJyY2xhcmsiLGVtYWlsOiJyeWFuLmNsYXJrLmpAZ21haWwuY29tIn0se25hbWU6InNhbWFuYmIiLGVtYWlsOiJzYW1hbkBtYXBib3guY29tIn0se25hbWU6InNibWE0NCIsZW1haWw6InRsZWVAbWFwYm94LmNvbSJ9LHtuYW1lOiJzY290aGlzIixlbWFpbDoic2NvdGhpc0BnbWFpbC5jb20ifSx7bmFtZToic2dpbGxpZXMiLGVtYWlsOiJzZWFuQG1hcGJveC5jb20ifSx7bmFtZToic3ByaW5nbWV5ZXIiLGVtYWlsOiJkYW5lQG1hcGJveC5jb20ifSx7bmFtZToidGhlbWFyZXgiLGVtYWlsOiJwYXRyaWNrQG1hcGJveC5jb20ifSx7bmFtZToidG1jdyIsZW1haWw6InRvbUBtYWN3cmlnaHQub3JnIn0se25hbWU6InRyaXN0ZW4iLGVtYWlsOiJ0cmlzdGVuLmJyb3duQGdtYWlsLmNvbSJ9LHtuYW1lOiJ3aWxsd2hpdGUiLGVtYWlsOiJ3aWxsQG1hcGJveC5jb20ifSx7bmFtZToieWhhaG4iLGVtYWlsOiJ5b3VuZ0BtYXBib3guY29tIn1dLF9ucG1PcGVyYXRpb25hbEludGVybmFsOntob3N0OiJwYWNrYWdlcy0xMi13ZXN0LmludGVybmFsLm5wbWpzLmNvbSIsdG1wOiJ0bXAvbWFwYm94LWdsLTAuMjIuMC50Z3pfMTQ3MTAyMTM2NjUzOV8wLjc0OTE3NjEwNTcxNzE5NzEifSxkaXJlY3Rvcmllczp7fSxfcmVzb2x2ZWQ6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21hcGJveC1nbC8tL21hcGJveC1nbC0wLjIyLjAudGd6In19LHt9XSw0NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Z1bmN0aW9uIHIodCl7dmFyIGU9ITE7cmV0dXJuImFsdEtleSJpbiB0JiYoZT1lfHx0LmFsdEtleSE9PW0uYWx0LG0uYWx0PSEhdC5hbHRLZXkpLCJzaGlmdEtleSJpbiB0JiYoZT1lfHx0LnNoaWZ0S2V5IT09bS5zaGlmdCxtLnNoaWZ0PSEhdC5zaGlmdEtleSksImN0cmxLZXkiaW4gdCYmKGU9ZXx8dC5jdHJsS2V5IT09bS5jb250cm9sLG0uY29udHJvbD0hIXQuY3RybEtleSksIm1ldGFLZXkiaW4gdCYmKGU9ZXx8dC5tZXRhS2V5IT09bS5tZXRhLG0ubWV0YT0hIXQubWV0YUtleSksZX1mdW5jdGlvbiBuKHQsbil7dmFyIG89aS54KG4pLGE9aS55KG4pOyJidXR0b25zImluIG4mJih0PTB8bi5idXR0b25zKSwodCE9PWZ8fG8hPT1wfHxhIT09ZHx8cihuKSkmJihmPTB8dCxwPW98fDAsZD1hfHwwLGUoZixwLGQsbSkpfWZ1bmN0aW9uIG8odCl7bigwLHQpfWZ1bmN0aW9uIGEoKXsoZnx8cHx8ZHx8bS5zaGlmdHx8bS5hbHR8fG0ubWV0YXx8bS5jb250cm9sKSYmKHA9ZD0wLGY9MCxtLnNoaWZ0PW0uYWx0PW0uY29udHJvbD1tLm1ldGE9ITEsZSgwLDAsMCxtKSl9ZnVuY3Rpb24gcyh0KXtyKHQpJiZlKGYscCxkLG0pfWZ1bmN0aW9uIGwodCl7MD09PWkuYnV0dG9ucyh0KT9uKDAsdCk6bihmLHQpfWZ1bmN0aW9uIHUodCl7bihmfGkuYnV0dG9ucyh0KSx0KX1mdW5jdGlvbiBjKHQpe24oZiZ+aS5idXR0b25zKHQpLHQpfWZ1bmN0aW9uIGgoKXtnfHwoZz0hMCx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsbCksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLHUpLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsYyksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixvKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLG8pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIixvKSx0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGEpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHMpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscyksdC5hZGRFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIscyksdCE9PXdpbmRvdyYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIixhKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHMpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixzKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHMpKSl9ZXx8KGU9dCx0PXdpbmRvdyk7dmFyIGY9MCxwPTAsZD0wLG09e3NoaWZ0OiExLGFsdDohMSxjb250cm9sOiExLG1ldGE6ITF9LGc9ITE7aCgpO3ZhciB2PXtlbGVtZW50OnR9O3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyh2LHtlbmFibGVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sc2V0OmZ1bmN0aW9uKHQpe3QmJmgoKX0sZW51bWVyYWJsZTohMH0sYnV0dG9uczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGVudW1lcmFibGU6ITB9LHg6e2dldDpmdW5jdGlvbigpe3JldHVybiBwfSxlbnVtZXJhYmxlOiEwfSx5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZW51bWVyYWJsZTohMH0sbW9kczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG19LGVudW1lcmFibGU6ITB9fSksdn1lLmV4cG9ydHM9bjt2YXIgaT10KCJtb3VzZS1ldmVudCIpfSx7Im1vdXNlLWV2ZW50Ijo0NDV9XSw0NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJidXR0b25zImluIHQpcmV0dXJuIHQuYnV0dG9ucztpZigid2hpY2giaW4gdCl7dmFyIGU9dC53aGljaDtpZigyPT09ZSlyZXR1cm4gNDtpZigzPT09ZSlyZXR1cm4gMjtpZihlPjApcmV0dXJuIDE8PGUtMX1lbHNlIGlmKCJidXR0b24iaW4gdCl7dmFyIGU9dC5idXR0b247aWYoMT09PWUpcmV0dXJuIDQ7aWYoMj09PWUpcmV0dXJuIDI7aWYoZT49MClyZXR1cm4gMTw8ZX19cmV0dXJuIDB9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC50YXJnZXR8fHQuc3JjRWxlbWVudHx8d2luZG93fWZ1bmN0aW9uIG8odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigib2Zmc2V0WCJpbiB0KXJldHVybiB0Lm9mZnNldFg7dmFyIGU9aSh0KSxyPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIHQuY2xpZW50WC1yLmxlZnR9cmV0dXJuIDB9ZnVuY3Rpb24gYSh0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJvZmZzZXRZImluIHQpcmV0dXJuIHQub2Zmc2V0WTt2YXIgZT1pKHQpLHI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdC5jbGllbnRZLXIudG9wfXJldHVybiAwfXIuYnV0dG9ucz1uLHIuZWxlbWVudD1pLHIueD1vLHIueT1hfSx7fV0sNDQ2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9WzAsIiJdKSx0PVN0cmluZyh0KTt2YXIgcj1wYXJzZUZsb2F0KHQsMTApO3JldHVybiBlWzBdPXIsZVsxXT10Lm1hdGNoKC9bXGQuXC1cK10qXHMqKC4qKS8pWzFdfHwiIixlfX0se31dLDQ0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9YShnZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoZSkpO3JldHVybiByWzBdKm8oclsxXSx0KX1mdW5jdGlvbiBpKHQsZSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5zdHlsZVsiZm9udC1zaXplIl09IjEyOCIrdCxlLmFwcGVuZENoaWxkKHIpO3ZhciBpPW4ociwiZm9udC1zaXplIikvMTI4O3JldHVybiBlLnJlbW92ZUNoaWxkKHIpLGl9ZnVuY3Rpb24gbyh0LGUpe3N3aXRjaChlPWV8fGRvY3VtZW50LmJvZHksdD0odHx8InB4IikudHJpbSgpLnRvTG93ZXJDYXNlKCksZSE9PXdpbmRvdyYmZSE9PWRvY3VtZW50fHwoZT1kb2N1bWVudC5ib2R5KSx0KXtjYXNlIiUiOnJldHVybiBlLmNsaWVudEhlaWdodC8xMDA7Y2FzZSJjaCI6Y2FzZSJleCI6cmV0dXJuIGkodCxlKTtjYXNlImVtIjpyZXR1cm4gbihlLCJmb250LXNpemUiKTtjYXNlInJlbSI6cmV0dXJuIG4oZG9jdW1lbnQuYm9keSwiZm9udC1zaXplIik7Y2FzZSJ2dyI6cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoLzEwMDtjYXNlInZoIjpyZXR1cm4gd2luZG93LmlubmVySGVpZ2h0LzEwMDtjYXNlInZtaW4iOnJldHVybiBNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpLzEwMDtjYXNlInZtYXgiOnJldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpLzEwMDtjYXNlImluIjpyZXR1cm4gcztjYXNlImNtIjpyZXR1cm4gcy8yLjU0O2Nhc2UibW0iOnJldHVybiBzLzI1LjQ7Y2FzZSJwdCI6cmV0dXJuIHMvNzI7Y2FzZSJwYyI6cmV0dXJuIHMvNn1yZXR1cm4gMX12YXIgYT10KCJwYXJzZS11bml0Iik7ZS5leHBvcnRzPW87dmFyIHM9OTZ9LHsicGFyc2UtdW5pdCI6NDQ2fV0sNDQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiB0JiYocj0hIWUsZT10LHQ9d2luZG93KTt2YXIgbj1pKCJleCIsdCksbz1mdW5jdGlvbih0KXtyJiZ0LnByZXZlbnREZWZhdWx0KCk7dmFyIGk9dC5kZWx0YVh8fDAsbz10LmRlbHRhWXx8MCxhPXQuZGVsdGFafHwwLHM9dC5kZWx0YU1vZGUsbD0xO3N3aXRjaChzKXtjYXNlIDE6bD1uO2JyZWFrO2Nhc2UgMjpsPXdpbmRvdy5pbm5lckhlaWdodH1yZXR1cm4gaSo9bCxvKj1sLGEqPWwsaXx8b3x8YT9lKGksbyxhKTp2b2lkIDB9O3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixvKSxvfXZhciBpPXQoInRvLXB4Iik7ZS5leHBvcnRzPW59LHsidG8tcHgiOjQ0N31dLDQ0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjd2lzZS9saWIvd3JhcHBlciIpKHthcmdzOlsiaW5kZXgiLCJhcnJheSIsInNjYWxhciJdLHByZTp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7X2lubGluZV8xX2FyZzFfPV9pbmxpbmVfMV9hcmcyXy5hcHBseSh2b2lkIDAsX2lubGluZV8xX2FyZzBfKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMV9hcmcxXyIsbHZhbHVlOiEwLHJ2YWx1ZTohMSxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6ImN3aXNlIixibG9ja1NpemU6NjR9KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LGUpLHR9fSx7ImN3aXNlL2xpYi93cmFwcGVyIjoxMjN9XSw0NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTp0WzBdPTEvZVswXTticmVhaztjYXNlIDQ6aSh0LGUpO2JyZWFrO2Nhc2UgOTpvKHQsZSk7YnJlYWs7Y2FzZSAxNjphKHQsZSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImN1cnJlbnRseSBzdXBwb3J0cyBtYXRyaWNlcyB1cCB0byA0eDQiKX1yZXR1cm4gdH1lLmV4cG9ydHM9bjt2YXIgaT10KCJnbC1tYXQyL2ludmVydCIpLG89dCgiZ2wtbWF0My9pbnZlcnQiKSxhPXQoImdsLW1hdDQvaW52ZXJ0Iil9LHsiZ2wtbWF0Mi9pbnZlcnQiOjQ1MSwiZ2wtbWF0My9pbnZlcnQiOjE0MSwiZ2wtbWF0NC9pbnZlcnQiOjE0OH1dLDQ1MTpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sbz1lWzNdLGE9cipvLWkqbjtyZXR1cm4gYT8oYT0xL2EsdFswXT1vKmEsdFsxXT0tbiphLHRbMl09LWkqYSx0WzNdPXIqYSx0KTpudWxsfWUuZXhwb3J0cz1ufSx7fV0sNDUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1NYXRoLmZsb29yKGUpLG49ZS1yLGk9cj49MCYmcjx0LnNoYXBlWzBdLG89cisxPj0wJiZyKzE8dC5zaGFwZVswXSxhPWk/K3QuZ2V0KHIpOjAscz1vPyt0LmdldChyKzEpOjA7cmV0dXJuKDEtbikqYStuKnN9ZnVuY3Rpb24gaSh0LGUscil7dmFyIG49TWF0aC5mbG9vcihlKSxpPWUtbixvPW4+PTAmJm48dC5zaGFwZVswXSxhPW4rMT49MCYmbisxPHQuc2hhcGVbMF0scz1NYXRoLmZsb29yKHIpLGw9ci1zLHU9cz49MCYmczx0LnNoYXBlWzFdLGM9cysxPj0wJiZzKzE8dC5zaGFwZVsxXSxoPW8mJnU/dC5nZXQobixzKTowLGY9byYmYz90LmdldChuLHMrMSk6MCxwPWEmJnU/dC5nZXQobisxLHMpOjAsZD1hJiZjP3QuZ2V0KG4rMSxzKzEpOjA7cmV0dXJuKDEtbCkqKCgxLWkpKmgraSpwKStsKigoMS1pKSpmK2kqZCl9ZnVuY3Rpb24gbyh0LGUscixuKXt2YXIgaT1NYXRoLmZsb29yKGUpLG89ZS1pLGE9aT49MCYmaTx0LnNoYXBlWzBdLHM9aSsxPj0wJiZpKzE8dC5zaGFwZVswXSxsPU1hdGguZmxvb3IociksdT1yLWwsYz1sPj0wJiZsPHQuc2hhcGVbMV0saD1sKzE+PTAmJmwrMTx0LnNoYXBlWzFdLGY9TWF0aC5mbG9vcihuKSxwPW4tZixkPWY+PTAmJmY8dC5zaGFwZVsyXSxtPWYrMT49MCYmZisxPHQuc2hhcGVbMl0sZz1hJiZjJiZkP3QuZ2V0KGksbCxmKTowLHY9YSYmaCYmZD90LmdldChpLGwrMSxmKTowLHk9cyYmYyYmZD90LmdldChpKzEsbCxmKTowLGI9cyYmaCYmZD90LmdldChpKzEsbCsxLGYpOjAseD1hJiZjJiZtP3QuZ2V0KGksbCxmKzEpOjAsXz1hJiZoJiZtP3QuZ2V0KGksbCsxLGYrMSk6MCx3PXMmJmMmJm0/dC5nZXQoaSsxLGwsZisxKTowLE09cyYmaCYmbT90LmdldChpKzEsbCsxLGYrMSk6MDtyZXR1cm4oMS1wKSooKDEtdSkqKCgxLW8pKmcrbyp5KSt1KigoMS1vKSp2K28qYikpK3AqKCgxLXUpKigoMS1vKSp4K28qdykrdSooKDEtbykqXytvKk0pKX1mdW5jdGlvbiBhKHQpe3ZhciBlLHIsbj0wfHQuc2hhcGUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLG89bmV3IEFycmF5KG4pLGE9bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pO2ZvcihlPTA7bj5lOysrZSlyPSthcmd1bWVudHNbZSsxXSxpW2VdPU1hdGguZmxvb3Iociksb1tlXT1yLWlbZV0sYVtlXT0wPD1pW2VdJiZpW2VdPHQuc2hhcGVbZV0sc1tlXT0wPD1pW2VdKzEmJmlbZV0rMTx0LnNoYXBlW2VdO3ZhciBsLHUsYyxoPTA7dDpmb3IoZT0wOzE8PG4+ZTsrK2Upe2Zvcih1PTEsYz10Lm9mZnNldCxsPTA7bj5sOysrbClpZihlJjE8PGwpe2lmKCFzW2xdKWNvbnRpbnVlIHQ7dSo9b1tsXSxjKz10LnN0cmlkZVtsXSooaVtsXSsxKX1lbHNle2lmKCFhW2xdKWNvbnRpbnVlIHQ7dSo9MS1vW2xdLGMrPXQuc3RyaWRlW2xdKmlbbF19aCs9dSp0LmRhdGFbY119cmV0dXJuIGh9ZnVuY3Rpb24gcyh0LGUscixzKXtzd2l0Y2godC5zaGFwZS5sZW5ndGgpewpjYXNlIDA6cmV0dXJuIDA7Y2FzZSAxOnJldHVybiBuKHQsZSk7Y2FzZSAyOnJldHVybiBpKHQsZSxyKTtjYXNlIDM6cmV0dXJuIG8odCxlLHIscyk7ZGVmYXVsdDpyZXR1cm4gYS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19ZS5leHBvcnRzPXMsZS5leHBvcnRzLmQxPW4sZS5leHBvcnRzLmQyPWksZS5leHBvcnRzLmQzPW99LHt9XSw0NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibmRhcnJheS1saW5lYXItaW50ZXJwb2xhdGUiKSxpPXQoImN3aXNlL2xpYi93cmFwcGVyIikoe2FyZ3M6WyJpbmRleCIsImFycmF5Iiwic2NhbGFyIiwic2NhbGFyIiwic2NhbGFyIl0scHJlOntib2R5OiJ7dGhpc193YXJwZWQ9bmV3IEFycmF5KF9pbmxpbmVfOV9hcmc0Xyl9IixhcmdzOlt7bmFtZToiX2lubGluZV85X2FyZzBfIixsdmFsdWU6ITEscnZhbHVlOiExLGNvdW50OjB9LHtuYW1lOiJfaW5saW5lXzlfYXJnMV8iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH0se25hbWU6Il9pbmxpbmVfOV9hcmcyXyIsbHZhbHVlOiExLHJ2YWx1ZTohMSxjb3VudDowfSx7bmFtZToiX2lubGluZV85X2FyZzNfIixsdmFsdWU6ITEscnZhbHVlOiExLGNvdW50OjB9LHtuYW1lOiJfaW5saW5lXzlfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLHRoaXNWYXJzOlsidGhpc193YXJwZWQiXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6IntfaW5saW5lXzEwX2FyZzJfKHRoaXNfd2FycGVkLF9pbmxpbmVfMTBfYXJnMF8pLF9pbmxpbmVfMTBfYXJnMV89X2lubGluZV8xMF9hcmczXy5hcHBseSh2b2lkIDAsdGhpc193YXJwZWQpfSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMTBfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnMV8iLGx2YWx1ZTohMCxydmFsdWU6ITEsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTBfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH1dLHRoaXNWYXJzOlsidGhpc193YXJwZWQiXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6IndhcnBORCIsYmxvY2tTaXplOjY0fSksbz10KCJjd2lzZS9saWIvd3JhcHBlciIpKHthcmdzOlsiaW5kZXgiLCJhcnJheSIsInNjYWxhciIsInNjYWxhciIsInNjYWxhciJdLHByZTp7Ym9keToie3RoaXNfd2FycGVkPVswXX0iLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX3dhcnBlZCJdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie19pbmxpbmVfMTNfYXJnMl8odGhpc193YXJwZWQsX2lubGluZV8xM19hcmcwXyksX2lubGluZV8xM19hcmcxXz1faW5saW5lXzEzX2FyZzNfKF9pbmxpbmVfMTNfYXJnNF8sdGhpc193YXJwZWRbMF0pfSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMTNfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTNfYXJnMV8iLGx2YWx1ZTohMCxydmFsdWU6ITEsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTNfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTNfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTNfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLHRoaXNWYXJzOlsidGhpc193YXJwZWQiXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6IndhcnAxRCIsYmxvY2tTaXplOjY0fSksYT10KCJjd2lzZS9saWIvd3JhcHBlciIpKHthcmdzOlsiaW5kZXgiLCJhcnJheSIsInNjYWxhciIsInNjYWxhciIsInNjYWxhciJdLHByZTp7Ym9keToie3RoaXNfd2FycGVkPVswLDBdfSIsYXJnczpbXSx0aGlzVmFyczpbInRoaXNfd2FycGVkIl0sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJ7X2lubGluZV8xNl9hcmcyXyh0aGlzX3dhcnBlZCxfaW5saW5lXzE2X2FyZzBfKSxfaW5saW5lXzE2X2FyZzFfPV9pbmxpbmVfMTZfYXJnM18oX2lubGluZV8xNl9hcmc0Xyx0aGlzX3dhcnBlZFswXSx0aGlzX3dhcnBlZFsxXSl9IixhcmdzOlt7bmFtZToiX2lubGluZV8xNl9hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmcxXyIsbHZhbHVlOiEwLHJ2YWx1ZTohMSxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmcyXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmczXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xNl9hcmc0XyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sdGhpc1ZhcnM6WyJ0aGlzX3dhcnBlZCJdLGxvY2FsVmFyczpbXX0scG9zdDp7Ym9keToie30iLGFyZ3M6W10sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOltdfSxkZWJ1ZzohMSxmdW5jTmFtZToid2FycDJEIixibG9ja1NpemU6NjR9KSxzPXQoImN3aXNlL2xpYi93cmFwcGVyIikoe2FyZ3M6WyJpbmRleCIsImFycmF5Iiwic2NhbGFyIiwic2NhbGFyIiwic2NhbGFyIl0scHJlOntib2R5OiJ7dGhpc193YXJwZWQ9WzAsMCwwXX0iLGFyZ3M6W10sdGhpc1ZhcnM6WyJ0aGlzX3dhcnBlZCJdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie19pbmxpbmVfMTlfYXJnMl8odGhpc193YXJwZWQsX2lubGluZV8xOV9hcmcwXyksX2lubGluZV8xOV9hcmcxXz1faW5saW5lXzE5X2FyZzNfKF9pbmxpbmVfMTlfYXJnNF8sdGhpc193YXJwZWRbMF0sdGhpc193YXJwZWRbMV0sdGhpc193YXJwZWRbMl0pfSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMTlfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTlfYXJnMV8iLGx2YWx1ZTohMCxydmFsdWU6ITEsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTlfYXJnMl8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTlfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMTlfYXJnNF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLHRoaXNWYXJzOlsidGhpc193YXJwZWQiXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sZGVidWc6ITEsZnVuY05hbWU6IndhcnAzRCIsYmxvY2tTaXplOjY0fSk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2goZS5zaGFwZS5sZW5ndGgpe2Nhc2UgMTpvKHQscixuLmQxLGUpO2JyZWFrO2Nhc2UgMjphKHQscixuLmQyLGUpO2JyZWFrO2Nhc2UgMzpzKHQscixuLmQzLGUpO2JyZWFrO2RlZmF1bHQ6aSh0LHIsbi5iaW5kKHZvaWQgMCxlKSxlLnNoYXBlLmxlbmd0aCl9cmV0dXJuIHR9fSx7ImN3aXNlL2xpYi93cmFwcGVyIjoxMjMsIm5kYXJyYXktbGluZWFyLWludGVycG9sYXRlIjo0NTJ9XSw0NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49ZS5kaW1lbnNpb24sYT1vKFtdLHIpO3JldHVybiBpKHQsZSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO24+cjsrK3Ipe3Rbcl09YVsobisxKSpuK3JdO2Zvcih2YXIgaT0wO24+aTsrK2kpdFtyXSs9YVsobisxKSppK3JdKmVbaV19Zm9yKHZhciBvPWFbKG4rMSkqKG4rMSktMV0saT0wO24+aTsrK2kpbys9YVsobisxKSppK25dKmVbaV07Zm9yKHZhciBzPTEvbyxyPTA7bj5yOysrcil0W3JdKj1zO3JldHVybiB0fSksdH12YXIgaT10KCJuZGFycmF5LXdhcnAiKSxvPXQoImdsLW1hdHJpeC1pbnZlcnQiKTtlLmV4cG9ydHM9bn0seyJnbC1tYXRyaXgtaW52ZXJ0Ijo0NTAsIm5kYXJyYXktd2FycCI6NDUzfV0sNDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7aWYoIXQpcmV0dXJuIHM7Zm9yKHZhciBlPTA7ZTx0LmFyZ3MubGVuZ3RoOysrZSl7dmFyIHI9dC5hcmdzW2VdOzA9PT1lP3QuYXJnc1tlXT17bmFtZTpyLGx2YWx1ZTohMCxydmFsdWU6ISF0LnJ2YWx1ZSxjb3VudDp0LmNvdW50fHwxfTp0LmFyZ3NbZV09e25hbWU6cixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9fXJldHVybiB0LnRoaXNWYXJzfHwodC50aGlzVmFycz1bXSksdC5sb2NhbFZhcnN8fCh0LmxvY2FsVmFycz1bXSksdH1mdW5jdGlvbiBpKHQpe3JldHVybiBhKHthcmdzOnQuYXJncyxwcmU6bih0LnByZSksYm9keTpuKHQuYm9keSkscG9zdDpuKHQucHJvYyksZnVuY05hbWU6dC5mdW5jTmFtZX0pfWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPVtdLHI9MDtyPHQuYXJncy5sZW5ndGg7KytyKWUucHVzaCgiYSIrcik7dmFyIG49bmV3IEZ1bmN0aW9uKCJQIixbInJldHVybiBmdW5jdGlvbiAiLHQuZnVuY05hbWUsIl9uZGFycmF5b3BzKCIsZS5qb2luKCIsIiksIikge1AoIixlLmpvaW4oIiwiKSwiKTtyZXR1cm4gYTB9Il0uam9pbigiIikpO3JldHVybiBuKGkodCkpfXZhciBhPXQoImN3aXNlLWNvbXBpbGVyIikscz17Ym9keToiIixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sbD17YWRkOiIrIixzdWI6Ii0iLG11bDoiKiIsZGl2OiIvIixtb2Q6IiUiLGJhbmQ6IiYiLGJvcjoifCIsYnhvcjoiXiIsbHNoaWZ0OiI8PCIscnNoaWZ0OiI+PiIscnJzaGlmdDoiPj4+In07IWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIGwpe3ZhciBlPWxbdF07clt0XT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSIsImFycmF5Il0sYm9keTp7YXJnczpbImEiLCJiIiwiYyJdLGJvZHk6ImE9YiIrZSsiYyJ9LGZ1bmNOYW1lOnR9KSxyW3QrImVxIl09byh7YXJnczpbImFycmF5IiwiYXJyYXkiXSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhIitlKyI9YiJ9LHJ2YWx1ZTohMCxmdW5jTmFtZTp0KyJlcSJ9KSxyW3QrInMiXT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSIsInNjYWxhciJdLGJvZHk6e2FyZ3M6WyJhIiwiYiIsInMiXSxib2R5OiJhPWIiK2UrInMifSxmdW5jTmFtZTp0KyJzIn0pLHJbdCsic2VxIl09byh7YXJnczpbImFycmF5Iiwic2NhbGFyIl0sYm9keTp7YXJnczpbImEiLCJzIl0sYm9keToiYSIrZSsiPXMifSxydmFsdWU6ITAsZnVuY05hbWU6dCsic2VxIn0pfX0oKTt2YXIgdT17bm90OiIhIixibm90OiJ+IixuZWc6Ii0iLHJlY2lwOiIxLjAvIn07IWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHUpe3ZhciBlPXVbdF07clt0XT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSJdLGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImE9IitlKyJiIn0sZnVuY05hbWU6dH0pLHJbdCsiZXEiXT1vKHthcmdzOlsiYXJyYXkiXSxib2R5OnthcmdzOlsiYSJdLGJvZHk6ImE9IitlKyJhIn0scnZhbHVlOiEwLGNvdW50OjIsZnVuY05hbWU6dCsiZXEifSl9fSgpO3ZhciBjPXthbmQ6IiYmIixvcjoifHwiLGVxOiI9PT0iLG5lcToiIT09IixsdDoiPCIsZ3Q6Ij4iLGxlcToiPD0iLGdlcToiPj0ifTshZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gYyl7dmFyIGU9Y1t0XTtyW3RdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5IiwiYXJyYXkiXSxib2R5OnthcmdzOlsiYSIsImIiLCJjIl0sYm9keToiYT1iIitlKyJjIn0sZnVuY05hbWU6dH0pLHJbdCsicyJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Iiwic2NhbGFyIl0sYm9keTp7YXJnczpbImEiLCJiIiwicyJdLGJvZHk6ImE9YiIrZSsicyJ9LGZ1bmNOYW1lOnQrInMifSksclt0KyJlcSJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Il0sYm9keTp7YXJnczpbImEiLCJiIl0sYm9keToiYT1hIitlKyJiIn0scnZhbHVlOiEwLGNvdW50OjIsZnVuY05hbWU6dCsiZXEifSksclt0KyJzZXEiXT1vKHthcmdzOlsiYXJyYXkiLCJzY2FsYXIiXSxib2R5OnthcmdzOlsiYSIsInMiXSxib2R5OiJhPWEiK2UrInMifSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTp0KyJzZXEifSl9fSgpO3ZhciBoPVsiYWJzIiwiYWNvcyIsImFzaW4iLCJhdGFuIiwiY2VpbCIsImNvcyIsImV4cCIsImZsb29yIiwibG9nIiwicm91bmQiLCJzaW4iLCJzcXJ0IiwidGFuIl07IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxoLmxlbmd0aDsrK3Qpe3ZhciBlPWhbdF07cltlXT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC4iK2UsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sYm9keTp7YXJnczpbImEiLCJiIl0sYm9keToiYT10aGlzX2YoYikiLHRoaXNWYXJzOlsidGhpc19mIl19LGZ1bmNOYW1lOmV9KSxyW2UrImVxIl09byh7YXJnczpbImFycmF5Il0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSJdLGJvZHk6ImE9dGhpc19mKGEpIix0aGlzVmFyczpbInRoaXNfZiJdfSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTplKyJlcSJ9KX19KCk7dmFyIGY9WyJtYXgiLCJtaW4iLCJhdGFuMiIsInBvdyJdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8Zi5sZW5ndGg7Kyt0KXt2YXIgZT1mW3RdO3JbZV09byh7YXJnczpbImFycmF5IiwiYXJyYXkiLCJhcnJheSJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC4iK2UsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sYm9keTp7YXJnczpbImEiLCJiIiwiYyJdLGJvZHk6ImE9dGhpc19mKGIsYykiLHRoaXNWYXJzOlsidGhpc19mIl19LGZ1bmNOYW1lOmV9KSxyW2UrInMiXT1vKHthcmdzOlsiYXJyYXkiLCJhcnJheSIsInNjYWxhciJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC4iK2UsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sYm9keTp7YXJnczpbImEiLCJiIiwiYyJdLGJvZHk6ImE9dGhpc19mKGIsYykiLHRoaXNWYXJzOlsidGhpc19mIl19LGZ1bmNOYW1lOmUrInMifSkscltlKyJlcSJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Il0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPXRoaXNfZihhLGIpIix0aGlzVmFyczpbInRoaXNfZiJdfSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTplKyJlcSJ9KSxyW2UrInNlcSJdPW8oe2FyZ3M6WyJhcnJheSIsInNjYWxhciJdLHByZTp7YXJnczpbXSxib2R5OiJ0aGlzX2Y9TWF0aC4iK2UsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sYm9keTp7YXJnczpbImEiLCJiIl0sYm9keToiYT10aGlzX2YoYSxiKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0scnZhbHVlOiEwLGNvdW50OjIsZnVuY05hbWU6ZSsic2VxIn0pfX0oKTt2YXIgcD1bImF0YW4yIiwicG93Il07IWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxwLmxlbmd0aDsrK3Qpe3ZhciBlPXBbdF07cltlKyJvcCJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5IiwiYXJyYXkiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGguIitlLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIiwiYiIsImMiXSxib2R5OiJhPXRoaXNfZihjLGIpIix0aGlzVmFyczpbInRoaXNfZiJdfSxmdW5jTmFtZTplKyJvcCJ9KSxyW2UrIm9wcyJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Iiwic2NhbGFyIl0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiLCJjIl0sYm9keToiYT10aGlzX2YoYyxiKSIsdGhpc1ZhcnM6WyJ0aGlzX2YiXX0sZnVuY05hbWU6ZSsib3BzIn0pLHJbZSsib3BlcSJdPW8oe2FyZ3M6WyJhcnJheSIsImFycmF5Il0scHJlOnthcmdzOltdLGJvZHk6InRoaXNfZj1NYXRoLiIrZSx0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPXRoaXNfZihiLGEpIix0aGlzVmFyczpbInRoaXNfZiJdfSxydmFsdWU6ITAsY291bnQ6MixmdW5jTmFtZTplKyJvcGVxIn0pLHJbZSsib3BzZXEiXT1vKHthcmdzOlsiYXJyYXkiLCJzY2FsYXIiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGguIitlLHRoaXNWYXJzOlsidGhpc19mIl19LGJvZHk6e2FyZ3M6WyJhIiwiYiJdLGJvZHk6ImE9dGhpc19mKGIsYSkiLHRoaXNWYXJzOlsidGhpc19mIl19LHJ2YWx1ZTohMCxjb3VudDoyLGZ1bmNOYW1lOmUrIm9wc2VxIn0pfX0oKSxyLmFueT1hKHthcmdzOlsiYXJyYXkiXSxwcmU6cyxib2R5OnthcmdzOlt7bmFtZToiYSIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sYm9keToiaWYoYSl7cmV0dXJuIHRydWV9Iixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6W119LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOltdLGJvZHk6InJldHVybiBmYWxzZSJ9LGZ1bmNOYW1lOiJhbnkifSksci5hbGw9YSh7YXJnczpbImFycmF5Il0scHJlOnMsYm9keTp7YXJnczpbe25hbWU6IngiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLGJvZHk6ImlmKCF4KXtyZXR1cm4gZmFsc2V9Iixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6W119LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOltdLGJvZHk6InJldHVybiB0cnVlIn0sZnVuY05hbWU6ImFsbCJ9KSxyLnN1bT1hKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToidGhpc19zPTAifSxib2R5OnthcmdzOlt7bmFtZToiYSIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sYm9keToidGhpc19zKz1hIixsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXX0scG9zdDp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJyZXR1cm4gdGhpc19zIn0sZnVuY05hbWU6InN1bSJ9KSxyLnByb2Q9YSh7YXJnczpbImFycmF5Il0scHJlOnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InRoaXNfcz0xIn0sYm9keTp7YXJnczpbe25hbWU6ImEiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX1dLGJvZHk6InRoaXNfcyo9YSIsbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl19LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToicmV0dXJuIHRoaXNfcyJ9LGZ1bmNOYW1lOiJwcm9kIn0pLHIubm9ybTJzcXVhcmVkPWEoe2FyZ3M6WyJhcnJheSJdLHByZTp7YXJnczpbXSxsb2NhbFZhcnM6W10sdGhpc1ZhcnM6WyJ0aGlzX3MiXSxib2R5OiJ0aGlzX3M9MCJ9LGJvZHk6e2FyZ3M6W3tuYW1lOiJhIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjJ9XSxib2R5OiJ0aGlzX3MrPWEqYSIsbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl19LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToicmV0dXJuIHRoaXNfcyJ9LGZ1bmNOYW1lOiJub3JtMnNxdWFyZWQifSksci5ub3JtMj1hKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToidGhpc19zPTAifSxib2R5OnthcmdzOlt7bmFtZToiYSIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoyfV0sYm9keToidGhpc19zKz1hKmEiLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdfSxwb3N0OnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InJldHVybiBNYXRoLnNxcnQodGhpc19zKSJ9LGZ1bmNOYW1lOiJub3JtMiJ9KSxyLm5vcm1pbmY9YSh7YXJnczpbImFycmF5Il0scHJlOnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InRoaXNfcz0wIn0sYm9keTp7YXJnczpbe25hbWU6ImEiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6NH1dLGJvZHk6ImlmKC1hPnRoaXNfcyl7dGhpc19zPS1hfWVsc2UgaWYoYT50aGlzX3Mpe3RoaXNfcz1hfSIsbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl19LHBvc3Q6e2FyZ3M6W10sbG9jYWxWYXJzOltdLHRoaXNWYXJzOlsidGhpc19zIl0sYm9keToicmV0dXJuIHRoaXNfcyJ9LGZ1bmNOYW1lOiJub3JtaW5mIn0pLHIubm9ybTE9YSh7YXJnczpbImFycmF5Il0scHJlOnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InRoaXNfcz0wIn0sYm9keTp7YXJnczpbe25hbWU6ImEiLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6M31dLGJvZHk6InRoaXNfcys9YTwwPy1hOmEiLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdfSxwb3N0OnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbInRoaXNfcyJdLGJvZHk6InJldHVybiB0aGlzX3MifSxmdW5jTmFtZToibm9ybTEifSksci5zdXA9YSh7YXJnczpbImFycmF5Il0scHJlOntib2R5OiJ0aGlzX2g9LUluZmluaXR5IixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19oIl0sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJpZihfaW5saW5lXzFfYXJnMF8+dGhpc19oKXRoaXNfaD1faW5saW5lXzFfYXJnMF8iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn1dLHRoaXNWYXJzOlsidGhpc19oIl0sbG9jYWxWYXJzOltdfSxwb3N0Ontib2R5OiJyZXR1cm4gdGhpc19oIixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19oIl0sbG9jYWxWYXJzOltdfX0pLHIuaW5mPWEoe2FyZ3M6WyJhcnJheSJdLHByZTp7Ym9keToidGhpc19oPUluZmluaXR5IixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19oIl0sbG9jYWxWYXJzOltdfSxib2R5Ontib2R5OiJpZihfaW5saW5lXzFfYXJnMF88dGhpc19oKXRoaXNfaD1faW5saW5lXzFfYXJnMF8iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn1dLHRoaXNWYXJzOlsidGhpc19oIl0sbG9jYWxWYXJzOltdfSxwb3N0Ontib2R5OiJyZXR1cm4gdGhpc19oIixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19oIl0sbG9jYWxWYXJzOltdfX0pLHIuYXJnbWluPWEoe2FyZ3M6WyJpbmRleCIsImFycmF5Iiwic2hhcGUiXSxwcmU6e2JvZHk6Int0aGlzX3Y9SW5maW5pdHk7dGhpc19pPV9pbmxpbmVfMF9hcmcyXy5zbGljZSgwKX0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzBfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH0se25hbWU6Il9pbmxpbmVfMF9hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMSxjb3VudDowfSx7bmFtZToiX2lubGluZV8wX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSx0aGlzVmFyczpbInRoaXNfaSIsInRoaXNfdiJdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie2lmKF9pbmxpbmVfMV9hcmcxXzx0aGlzX3Ype3RoaXNfdj1faW5saW5lXzFfYXJnMV87Zm9yKHZhciBfaW5saW5lXzFfaz0wO19pbmxpbmVfMV9rPF9pbmxpbmVfMV9hcmcwXy5sZW5ndGg7KytfaW5saW5lXzFfayl7dGhpc19pW19pbmxpbmVfMV9rXT1faW5saW5lXzFfYXJnMF9bX2lubGluZV8xX2tdfX19IixhcmdzOlt7bmFtZToiX2lubGluZV8xX2FyZzBfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjJ9LHtuYW1lOiJfaW5saW5lXzFfYXJnMV8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn1dLHRoaXNWYXJzOlsidGhpc19pIiwidGhpc192Il0sbG9jYWxWYXJzOlsiX2lubGluZV8xX2siXX0scG9zdDp7Ym9keToie3JldHVybiB0aGlzX2l9IixhcmdzOltdLHRoaXNWYXJzOlsidGhpc19pIl0sbG9jYWxWYXJzOltdfX0pLHIuYXJnbWF4PWEoe2FyZ3M6WyJpbmRleCIsImFycmF5Iiwic2hhcGUiXSxwcmU6e2JvZHk6Int0aGlzX3Y9LUluZmluaXR5O3RoaXNfaT1faW5saW5lXzBfYXJnMl8uc2xpY2UoMCl9IixhcmdzOlt7bmFtZToiX2lubGluZV8wX2FyZzBfIixsdmFsdWU6ITEscnZhbHVlOiExLGNvdW50OjB9LHtuYW1lOiJfaW5saW5lXzBfYXJnMV8iLGx2YWx1ZTohMSxydmFsdWU6ITEsY291bnQ6MH0se25hbWU6Il9pbmxpbmVfMF9hcmcyXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sdGhpc1ZhcnM6WyJ0aGlzX2kiLCJ0aGlzX3YiXSxsb2NhbFZhcnM6W119LGJvZHk6e2JvZHk6IntpZihfaW5saW5lXzFfYXJnMV8+dGhpc192KXt0aGlzX3Y9X2lubGluZV8xX2FyZzFfO2Zvcih2YXIgX2lubGluZV8xX2s9MDtfaW5saW5lXzFfazxfaW5saW5lXzFfYXJnMF8ubGVuZ3RoOysrX2lubGluZV8xX2spe3RoaXNfaVtfaW5saW5lXzFfa109X2lubGluZV8xX2FyZzBfW19pbmxpbmVfMV9rXX19fSIsYXJnczpbe25hbWU6Il9pbmxpbmVfMV9hcmcwXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoyfSx7bmFtZToiX2lubGluZV8xX2FyZzFfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjJ9XSx0aGlzVmFyczpbInRoaXNfaSIsInRoaXNfdiJdLGxvY2FsVmFyczpbIl9pbmxpbmVfMV9rIl19LHBvc3Q6e2JvZHk6IntyZXR1cm4gdGhpc19pfSIsYXJnczpbXSx0aGlzVmFyczpbInRoaXNfaSJdLGxvY2FsVmFyczpbXX19KSxyLnJhbmRvbT1vKHthcmdzOlsiYXJyYXkiXSxwcmU6e2FyZ3M6W10sYm9keToidGhpc19mPU1hdGgucmFuZG9tIix0aGlzVmFyczpbInRoaXNfZiJdfSxib2R5OnthcmdzOlsiYSJdLGJvZHk6ImE9dGhpc19mKCkiLHRoaXNWYXJzOlsidGhpc19mIl19LGZ1bmNOYW1lOiJyYW5kb20ifSksci5hc3NpZ249byh7YXJnczpbImFycmF5IiwiYXJyYXkiXSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPWIifSxmdW5jTmFtZToiYXNzaWduIn0pLHIuYXNzaWducz1vKHthcmdzOlsiYXJyYXkiLCJzY2FsYXIiXSxib2R5OnthcmdzOlsiYSIsImIiXSxib2R5OiJhPWIifSxmdW5jTmFtZToiYXNzaWducyJ9KSxyLmVxdWFscz1hKHthcmdzOlsiYXJyYXkiLCJhcnJheSJdLHByZTpzLGJvZHk6e2FyZ3M6W3tuYW1lOiJ4IixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJ5IixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9XSxib2R5OiJpZih4IT09eSl7cmV0dXJuIGZhbHNlfSIsbG9jYWxWYXJzOltdLHRoaXNWYXJzOltdfSxwb3N0OnthcmdzOltdLGxvY2FsVmFyczpbXSx0aGlzVmFyczpbXSxib2R5OiJyZXR1cm4gdHJ1ZSJ9LGZ1bmNOYW1lOiJlcXVhbHMifSl9LHsiY3dpc2UtY29tcGlsZXIiOjEyMH1dLDQ1NjpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gdFswXS1lWzBdfWZ1bmN0aW9uIGkoKXt2YXIgdCxlPXRoaXMuc3RyaWRlLHI9bmV3IEFycmF5KGUubGVuZ3RoKTtmb3IodD0wO3Q8ci5sZW5ndGg7Kyt0KXJbdF09W01hdGguYWJzKGVbdF0pLHRdO3Iuc29ydChuKTt2YXIgaT1uZXcgQXJyYXkoci5sZW5ndGgpO2Zvcih0PTA7dDxpLmxlbmd0aDsrK3QpaVt0XT1yW3RdWzFdO3JldHVybiBpfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj1bIlZpZXciLGUsImQiLHRdLmpvaW4oIiIpOzA+ZSYmKHI9IlZpZXdfTmlsIit0KTt2YXIgbj0iZ2VuZXJpYyI9PT10O2lmKC0xPT09ZSl7dmFyIG89ImZ1bmN0aW9uICIrcisiKGEpe3RoaXMuZGF0YT1hO307dmFyIHByb3RvPSIrcisiLnByb3RvdHlwZTtwcm90by5kdHlwZT0nIit0KyInO3Byb3RvLmluZGV4PWZ1bmN0aW9uKCl7cmV0dXJuIC0xfTtwcm90by5zaXplPTA7cHJvdG8uZGltZW5zaW9uPS0xO3Byb3RvLnNoYXBlPXByb3RvLnN0cmlkZT1wcm90by5vcmRlcj1bXTtwcm90by5sbz1wcm90by5oaT1wcm90by50cmFuc3Bvc2U9cHJvdG8uc3RlcD1mdW5jdGlvbigpe3JldHVybiBuZXcgIityKyIodGhpcy5kYXRhKTt9O3Byb3RvLmdldD1wcm90by5zZXQ9ZnVuY3Rpb24oKXt9O3Byb3RvLnBpY2s9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH07cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdF8iK3IrIihhKXtyZXR1cm4gbmV3ICIrcisiKGEpO30iLGE9bmV3IEZ1bmN0aW9uKG8pO3JldHVybiBhKCl9aWYoMD09PWUpe3ZhciBvPSJmdW5jdGlvbiAiK3IrIihhLGQpIHt0aGlzLmRhdGEgPSBhO3RoaXMub2Zmc2V0ID0gZH07dmFyIHByb3RvPSIrcisiLnByb3RvdHlwZTtwcm90by5kdHlwZT0nIit0KyInO3Byb3RvLmluZGV4PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2Zmc2V0fTtwcm90by5kaW1lbnNpb249MDtwcm90by5zaXplPTE7cHJvdG8uc2hhcGU9cHJvdG8uc3RyaWRlPXByb3RvLm9yZGVyPVtdO3Byb3RvLmxvPXByb3RvLmhpPXByb3RvLnRyYW5zcG9zZT1wcm90by5zdGVwPWZ1bmN0aW9uICIrcisiX2NvcHkoKSB7cmV0dXJuIG5ldyAiK3IrIih0aGlzLmRhdGEsdGhpcy5vZmZzZXQpfTtwcm90by5waWNrPWZ1bmN0aW9uICIrcisiX3BpY2soKXtyZXR1cm4gVHJpdmlhbEFycmF5KHRoaXMuZGF0YSk7fTtwcm90by52YWx1ZU9mPXByb3RvLmdldD1mdW5jdGlvbiAiK3IrIl9nZXQoKXtyZXR1cm4gIisobj8idGhpcy5kYXRhLmdldCh0aGlzLm9mZnNldCkiOiJ0aGlzLmRhdGFbdGhpcy5vZmZzZXRdIikrIn07cHJvdG8uc2V0PWZ1bmN0aW9uICIrcisiX3NldCh2KXtyZXR1cm4gIisobj8idGhpcy5kYXRhLnNldCh0aGlzLm9mZnNldCx2KSI6InRoaXMuZGF0YVt0aGlzLm9mZnNldF09diIpKyJ9O3JldHVybiBmdW5jdGlvbiBjb25zdHJ1Y3RfIityKyIoYSxiLGMsZCl7cmV0dXJuIG5ldyAiK3IrIihhLGQpfSIsYT1uZXcgRnVuY3Rpb24oIlRyaXZpYWxBcnJheSIsbyk7cmV0dXJuIGEoaFt0XVswXSl9dmFyIG89WyIndXNlIHN0cmljdCciXSxzPWwoZSksdT1zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iaSIrdH0pLGM9InRoaXMub2Zmc2V0KyIrcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuInRoaXMuc3RyaWRlWyIrdCsiXSppIit0fSkuam9pbigiKyIpLGY9cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImIiK3R9KS5qb2luKCIsIikscD1zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iYyIrdH0pLmpvaW4oIiwiKTtvLnB1c2goImZ1bmN0aW9uICIrcisiKGEsIitmKyIsIitwKyIsZCl7dGhpcy5kYXRhPWEiLCJ0aGlzLnNoYXBlPVsiK2YrIl0iLCJ0aGlzLnN0cmlkZT1bIitwKyJdIiwidGhpcy5vZmZzZXQ9ZHwwfSIsInZhciBwcm90bz0iK3IrIi5wcm90b3R5cGUiLCJwcm90by5kdHlwZT0nIit0KyInIiwicHJvdG8uZGltZW5zaW9uPSIrZSksby5wdXNoKCJPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG8sJ3NpemUnLHtnZXQ6ZnVuY3Rpb24gIityKyJfc2l6ZSgpe3JldHVybiAiK3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ0aGlzLnNoYXBlWyIrdCsiXSJ9KS5qb2luKCIqIiksIn19KSIpLDE9PT1lP28ucHVzaCgicHJvdG8ub3JkZXI9WzBdIik6KG8ucHVzaCgiT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvLCdvcmRlcicse2dldDoiKSw0PmU/KG8ucHVzaCgiZnVuY3Rpb24gIityKyJfb3JkZXIoKXsiKSwyPT09ZT9vLnB1c2goInJldHVybiAoTWF0aC5hYnModGhpcy5zdHJpZGVbMF0pPk1hdGguYWJzKHRoaXMuc3RyaWRlWzFdKSk/WzEsMF06WzAsMV19fSkiKTozPT09ZSYmby5wdXNoKCJ2YXIgczA9TWF0aC5hYnModGhpcy5zdHJpZGVbMF0pLHMxPU1hdGguYWJzKHRoaXMuc3RyaWRlWzFdKSxzMj1NYXRoLmFicyh0aGlzLnN0cmlkZVsyXSk7aWYoczA+czEpe2lmKHMxPnMyKXtyZXR1cm4gWzIsMSwwXTt9ZWxzZSBpZihzMD5zMil7cmV0dXJuIFsxLDIsMF07fWVsc2V7cmV0dXJuIFsxLDAsMl07fX1lbHNlIGlmKHMwPnMyKXtyZXR1cm4gWzIsMCwxXTt9ZWxzZSBpZihzMj5zMSl7cmV0dXJuIFswLDEsMl07fWVsc2V7cmV0dXJuIFswLDIsMV07fX19KSIpKTpvLnB1c2goIk9SREVSfSkiKSksby5wdXNoKCJwcm90by5zZXQ9ZnVuY3Rpb24gIityKyJfc2V0KCIrdS5qb2luKCIsIikrIix2KXsiKSxuP28ucHVzaCgicmV0dXJuIHRoaXMuZGF0YS5zZXQoIitjKyIsdil9Iik6by5wdXNoKCJyZXR1cm4gdGhpcy5kYXRhWyIrYysiXT12fSIpLG8ucHVzaCgicHJvdG8uZ2V0PWZ1bmN0aW9uICIrcisiX2dldCgiK3Uuam9pbigiLCIpKyIpeyIpLG4/by5wdXNoKCJyZXR1cm4gdGhpcy5kYXRhLmdldCgiK2MrIil9Iik6by5wdXNoKCJyZXR1cm4gdGhpcy5kYXRhWyIrYysiXX0iKSxvLnB1c2goInByb3RvLmluZGV4PWZ1bmN0aW9uICIrcisiX2luZGV4KCIsdS5qb2luKCksIil7cmV0dXJuICIrYysifSIpLG8ucHVzaCgicHJvdG8uaGk9ZnVuY3Rpb24gIityKyJfaGkoIit1LmpvaW4oIiwiKSsiKXtyZXR1cm4gbmV3ICIrcisiKHRoaXMuZGF0YSwiK3MubWFwKGZ1bmN0aW9uKHQpe3JldHVyblsiKHR5cGVvZiBpIix0LCIhPT0nbnVtYmVyJ3x8aSIsdCwiPDApP3RoaXMuc2hhcGVbIix0LCJdOmkiLHQsInwwIl0uam9pbigiIil9KS5qb2luKCIsIikrIiwiK3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJ0aGlzLnN0cmlkZVsiK3QrIl0ifSkuam9pbigiLCIpKyIsdGhpcy5vZmZzZXQpfSIpO3ZhciBkPXMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJhIit0KyI9dGhpcy5zaGFwZVsiK3QrIl0ifSksbT1zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iYyIrdCsiPXRoaXMuc3RyaWRlWyIrdCsiXSJ9KTtvLnB1c2goInByb3RvLmxvPWZ1bmN0aW9uICIrcisiX2xvKCIrdS5qb2luKCIsIikrIil7dmFyIGI9dGhpcy5vZmZzZXQsZD0wLCIrZC5qb2luKCIsIikrIiwiK20uam9pbigiLCIpKTtmb3IodmFyIGc9MDtlPmc7KytnKW8ucHVzaCgiaWYodHlwZW9mIGkiK2crIj09PSdudW1iZXInJiZpIitnKyI+PTApe2Q9aSIrZysifDA7Yis9YyIrZysiKmQ7YSIrZysiLT1kfSIpO28ucHVzaCgicmV0dXJuIG5ldyAiK3IrIih0aGlzLmRhdGEsIitzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iYSIrdH0pLmpvaW4oIiwiKSsiLCIrcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImMiK3R9KS5qb2luKCIsIikrIixiKX0iKSxvLnB1c2goInByb3RvLnN0ZXA9ZnVuY3Rpb24gIityKyJfc3RlcCgiK3Uuam9pbigiLCIpKyIpe3ZhciAiK3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJhIit0KyI9dGhpcy5zaGFwZVsiK3QrIl0ifSkuam9pbigiLCIpKyIsIitzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iYiIrdCsiPXRoaXMuc3RyaWRlWyIrdCsiXSJ9KS5qb2luKCIsIikrIixjPXRoaXMub2Zmc2V0LGQ9MCxjZWlsPU1hdGguY2VpbCIpO2Zvcih2YXIgZz0wO2U+ZzsrK2cpby5wdXNoKCJpZih0eXBlb2YgaSIrZysiPT09J251bWJlcicpe2Q9aSIrZysifDA7aWYoZDwwKXtjKz1iIitnKyIqKGEiK2crIi0xKTthIitnKyI9Y2VpbCgtYSIrZysiL2QpfWVsc2V7YSIrZysiPWNlaWwoYSIrZysiL2QpfWIiK2crIio9ZH0iKTtvLnB1c2goInJldHVybiBuZXcgIityKyIodGhpcy5kYXRhLCIrcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuImEiK3R9KS5qb2luKCIsIikrIiwiK3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJiIit0fSkuam9pbigiLCIpKyIsYyl9Iik7Zm9yKHZhciB2PW5ldyBBcnJheShlKSx5PW5ldyBBcnJheShlKSxnPTA7ZT5nOysrZyl2W2ddPSJhW2kiK2crIl0iLHlbZ109ImJbaSIrZysiXSI7by5wdXNoKCJwcm90by50cmFuc3Bvc2U9ZnVuY3Rpb24gIityKyJfdHJhbnNwb3NlKCIrdSsiKXsiK3UubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrIj0oIit0KyI9PT11bmRlZmluZWQ/IitlKyI6Iit0KyJ8MCkifSkuam9pbigiOyIpLCJ2YXIgYT10aGlzLnNoYXBlLGI9dGhpcy5zdHJpZGU7cmV0dXJuIG5ldyAiK3IrIih0aGlzLmRhdGEsIit2LmpvaW4oIiwiKSsiLCIreS5qb2luKCIsIikrIix0aGlzLm9mZnNldCl9Iiksby5wdXNoKCJwcm90by5waWNrPWZ1bmN0aW9uICIrcisiX3BpY2soIit1KyIpe3ZhciBhPVtdLGI9W10sYz10aGlzLm9mZnNldCIpO2Zvcih2YXIgZz0wO2U+ZzsrK2cpby5wdXNoKCJpZih0eXBlb2YgaSIrZysiPT09J251bWJlcicmJmkiK2crIj49MCl7Yz0oYyt0aGlzLnN0cmlkZVsiK2crIl0qaSIrZysiKXwwfWVsc2V7YS5wdXNoKHRoaXMuc2hhcGVbIitnKyJdKTtiLnB1c2godGhpcy5zdHJpZGVbIitnKyJdKX0iKTtvLnB1c2goInZhciBjdG9yPUNUT1JfTElTVFthLmxlbmd0aCsxXTtyZXR1cm4gY3Rvcih0aGlzLmRhdGEsYSxiLGMpfSIpLG8ucHVzaCgicmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdF8iK3IrIihkYXRhLHNoYXBlLHN0cmlkZSxvZmZzZXQpe3JldHVybiBuZXcgIityKyIoZGF0YSwiK3MubWFwKGZ1bmN0aW9uKHQpe3JldHVybiJzaGFwZVsiK3QrIl0ifSkuam9pbigiLCIpKyIsIitzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4ic3RyaWRlWyIrdCsiXSJ9KS5qb2luKCIsIikrIixvZmZzZXQpfSIpO3ZhciBhPW5ldyBGdW5jdGlvbigiQ1RPUl9MSVNUIiwiT1JERVIiLG8uam9pbigiXG4iKSk7cmV0dXJuIGEoaFt0XSxpKX1mdW5jdGlvbiBhKHQpe2lmKHUodCkpcmV0dXJuImJ1ZmZlciI7aWYoYylzd2l0Y2goT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXtjYXNlIltvYmplY3QgRmxvYXQ2NEFycmF5XSI6cmV0dXJuImZsb2F0NjQiO2Nhc2UiW29iamVjdCBGbG9hdDMyQXJyYXldIjpyZXR1cm4iZmxvYXQzMiI7Y2FzZSJbb2JqZWN0IEludDhBcnJheV0iOnJldHVybiJpbnQ4IjtjYXNlIltvYmplY3QgSW50MTZBcnJheV0iOnJldHVybiJpbnQxNiI7Y2FzZSJbb2JqZWN0IEludDMyQXJyYXldIjpyZXR1cm4iaW50MzIiO2Nhc2UiW29iamVjdCBVaW50OEFycmF5XSI6cmV0dXJuInVpbnQ4IjtjYXNlIltvYmplY3QgVWludDE2QXJyYXldIjpyZXR1cm4idWludDE2IjtjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4idWludDMyIjtjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpyZXR1cm4idWludDhfY2xhbXBlZCJ9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ImFycmF5IjoiZ2VuZXJpYyJ9ZnVuY3Rpb24gcyh0LGUscixuKXtpZih2b2lkIDA9PT10KXt2YXIgaT1oLmFycmF5WzBdO3JldHVybiBpKFtdKX0ibnVtYmVyIj09dHlwZW9mIHQmJih0PVt0XSksdm9pZCAwPT09ZSYmKGU9W3QubGVuZ3RoXSk7dmFyIHM9ZS5sZW5ndGg7aWYodm9pZCAwPT09cil7cj1uZXcgQXJyYXkocyk7Zm9yKHZhciBsPXMtMSx1PTE7bD49MDstLWwpcltsXT11LHUqPWVbbF19aWYodm9pZCAwPT09bil7bj0wO2Zvcih2YXIgbD0wO3M+bDsrK2wpcltsXTwwJiYobi09KGVbbF0tMSkqcltsXSl9Zm9yKHZhciBjPWEodCksZj1oW2NdO2YubGVuZ3RoPD1zKzE7KWYucHVzaChvKGMsZi5sZW5ndGgtMSkpO3ZhciBpPWZbcysxXTtyZXR1cm4gaSh0LGUscixuKX12YXIgbD10KCJpb3RhLWFycmF5IiksdT10KCJpcy1idWZmZXIiKSxjPSJ1bmRlZmluZWQiIT10eXBlb2YgRmxvYXQ2NEFycmF5LGg9e2Zsb2F0MzI6W10sZmxvYXQ2NDpbXSxpbnQ4OltdLGludDE2OltdLGludDMyOltdLHVpbnQ4OltdLHVpbnQxNjpbXSx1aW50MzI6W10sYXJyYXk6W10sdWludDhfY2xhbXBlZDpbXSxidWZmZXI6W10sZ2VuZXJpYzpbXX07ZS5leHBvcnRzPXN9LHsiaW90YS1hcnJheSI6MjUwLCJpcy1idWZmZXIiOjI1MX1dLDQ1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoInJlcGVhdC1zdHJpbmcgZXhwZWN0cyBhIHN0cmluZy4iKTtpZigxPT09ZSlyZXR1cm4gdDtpZigyPT09ZSlyZXR1cm4gdCt0O3ZhciByPXQubGVuZ3RoKmU7Zm9yKGk9PT10JiYidW5kZWZpbmVkIiE9dHlwZW9mIGl8fChpPXQsbz0iIik7cj5vLmxlbmd0aCYmZT4wJiYoMSZlJiYobys9dCksZT4+PTEpOyl0Kz10O3JldHVybiBvLnN1YnN0cigwLHIpfXZhciBpLG89IiI7ZS5leHBvcnRzPW59LHt9XSw0NTg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCl7ZS5leHBvcnRzPXQucGVyZm9ybWFuY2UmJnQucGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpEYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9fSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7fV0sNDU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPSJyb2J1c3RMaW5lYXJTb2x2ZSIrdCsiZCIscj1bImZ1bmN0aW9uICIsZSwiKEEsYil7cmV0dXJuIFsiXSxuPTA7dD5uOysrbil7ci5wdXNoKCJkZXQoWyIpO2Zvcih2YXIgaT0wO3Q+aTsrK2kpe2k+MCYmci5wdXNoKCIsIiksci5wdXNoKCJbIik7Zm9yKHZhciBvPTA7dD5vOysrbylvPjAmJnIucHVzaCgiLCIpLG89PT1uP3IucHVzaCgiK2JbIixpLCJdIik6ci5wdXNoKCIrQVsiLGksIl1bIixvLCJdIik7ci5wdXNoKCJdIil9ci5wdXNoKCJdKSwiKX1yLnB1c2goImRldChBKV19cmV0dXJuICIsZSk7dmFyIGE9bmV3IEZ1bmN0aW9uKCJkZXQiLHIuam9pbigiIikpO3JldHVybiBhKDY+dD9zW3RdOnMpfWZ1bmN0aW9uIGkoKXtyZXR1cm5bMF19ZnVuY3Rpb24gbyh0LGUpe3JldHVybltbZVswXV0sW3RbMF1bMF1dXX1mdW5jdGlvbiBhKCl7Zm9yKDt1Lmxlbmd0aDxsOyl1LnB1c2gobih1Lmxlbmd0aCkpO2Zvcih2YXIgdD1bXSxyPVsiZnVuY3Rpb24gZGlzcGF0Y2hMaW5lYXJTb2x2ZShBLGIpe3N3aXRjaChBLmxlbmd0aCl7Il0saT0wO2w+aTsrK2kpdC5wdXNoKCJzIitpKSxyLnB1c2goImNhc2UgIixpLCI6cmV0dXJuIHMiLGksIihBLGIpOyIpO3IucHVzaCgifXZhciBzPUNBQ0hFW0EubGVuZ3RoXTtpZighcylzPUNBQ0hFW0EubGVuZ3RoXT1nKEEubGVuZ3RoKTtyZXR1cm4gcyhBLGIpfXJldHVybiBkaXNwYXRjaExpbmVhclNvbHZlIiksdC5wdXNoKCJDQUNIRSIsImciLHIuam9pbigiIikpO3ZhciBvPUZ1bmN0aW9uLmFwcGx5KHZvaWQgMCx0KTtlLmV4cG9ydHM9by5hcHBseSh2b2lkIDAsdS5jb25jYXQoW3Usbl0pKTtmb3IodmFyIGk9MDtsPmk7KytpKWUuZXhwb3J0c1tpXT11W2ldfXZhciBzPXQoInJvYnVzdC1kZXRlcm1pbmFudCIpLGw9Nix1PVtpLG9dO2EoKX0seyJyb2J1c3QtZGV0ZXJtaW5hbnQiOjQ2MX1dLDQ2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPXRbdC5sZW5ndGgtMV0sbj1lLGk9ZS0yO2k+PTA7LS1pKXt2YXIgbz1yLGE9dFtpXTtyPW8rYTt2YXIgcz1yLW8sbD1hLXM7bCYmKHRbLS1uXT1yLHI9bCl9Zm9yKHZhciB1PTAsaT1uO2U+aTsrK2kpe3ZhciBvPXRbaV0sYT1yO3I9bythO3ZhciBzPXItbyxsPWEtcztsJiYodFt1KytdPWwpfXJldHVybiB0W3UrK109cix0Lmxlbmd0aD11LHR9ZS5leHBvcnRzPW59LHt9XSw0NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgtMSksbj0xO248dC5sZW5ndGg7KytuKWZvcih2YXIgaT1yW24tMV09bmV3IEFycmF5KHQubGVuZ3RoLTEpLG89MCxhPTA7bzx0Lmxlbmd0aDsrK28pbyE9PWUmJihpW2ErK109dFtuXVtvXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDt0PnI7KytyKXtlW3JdPW5ldyBBcnJheSh0KTtmb3IodmFyIG49MDt0Pm47KytuKWVbcl1bbl09WyJtWyIsciwiXVsiLG4sIl0iXS5qb2luKCIiKX1yZXR1cm4gZX1mdW5jdGlvbiBvKHQpe3JldHVybiAxJnQ/Ii0iOiIifWZ1bmN0aW9uIGEodCl7aWYoMT09PXQubGVuZ3RoKXJldHVybiB0WzBdO2lmKDI9PT10Lmxlbmd0aClyZXR1cm5bInN1bSgiLHRbMF0sIiwiLHRbMV0sIikiXS5qb2luKCIiKTt2YXIgZT10Lmxlbmd0aD4+MTtyZXR1cm5bInN1bSgiLGEodC5zbGljZSgwLGUpKSwiLCIsYSh0LnNsaWNlKGUpKSwiKSJdLmpvaW4oIiIpfWZ1bmN0aW9uIHModCl7aWYoMj09PXQubGVuZ3RoKXJldHVyblsic3VtKHByb2QoIix0WzBdWzBdLCIsIix0WzFdWzFdLCIpLHByb2QoLSIsdFswXVsxXSwiLCIsdFsxXVswXSwiKSkiXS5qb2luKCIiKTtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKWUucHVzaChbInNjYWxlKCIscyhuKHQscikpLCIsIixvKHIpLHRbMF1bcl0sIikiXS5qb2luKCIiKSk7cmV0dXJuIGEoZSl9ZnVuY3Rpb24gbCh0KXt2YXIgZT1uZXcgRnVuY3Rpb24oInN1bSIsInNjYWxlIiwicHJvZCIsImNvbXByZXNzIixbImZ1bmN0aW9uIHJvYnVzdERldGVybWluYW50Iix0LCIobSl7cmV0dXJuIGNvbXByZXNzKCIscyhpKHQpKSwiKX07cmV0dXJuIHJvYnVzdERldGVybWluYW50Iix0XS5qb2luKCIiKSk7cmV0dXJuIGUoaCxmLGMscCl9ZnVuY3Rpb24gdSgpe2Zvcig7bS5sZW5ndGg8ZDspbS5wdXNoKGwobS5sZW5ndGgpKTtmb3IodmFyIHQ9W10scj1bImZ1bmN0aW9uIHJvYnVzdERldGVybWluYW50KG0pe3N3aXRjaChtLmxlbmd0aCl7Il0sbj0wO2Q+bjsrK24pdC5wdXNoKCJkZXQiK24pLHIucHVzaCgiY2FzZSAiLG4sIjpyZXR1cm4gZGV0IixuLCIobSk7Iik7ci5wdXNoKCJ9dmFyIGRldD1DQUNIRVttLmxlbmd0aF07aWYoIWRldClkZXQ9Q0FDSEVbbS5sZW5ndGhdPWdlbihtLmxlbmd0aCk7cmV0dXJuIGRldChtKTt9cmV0dXJuIHJvYnVzdERldGVybWluYW50IiksdC5wdXNoKCJDQUNIRSIsImdlbiIsci5qb2luKCIiKSk7dmFyIGk9RnVuY3Rpb24uYXBwbHkodm9pZCAwLHQpO2UuZXhwb3J0cz1pLmFwcGx5KHZvaWQgMCxtLmNvbmNhdChbbSxsXSkpO2Zvcih2YXIgbj0wO248bS5sZW5ndGg7KytuKWUuZXhwb3J0c1tuXT1tW25dfXZhciBjPXQoInR3by1wcm9kdWN0IiksaD10KCJyb2J1c3Qtc3VtIiksZj10KCJyb2J1c3Qtc2NhbGUiKSxwPXQoInJvYnVzdC1jb21wcmVzcyIpLGQ9NixtPVtmdW5jdGlvbigpe3JldHVyblswXX0sZnVuY3Rpb24odCl7cmV0dXJuW3RbMF1bMF1dfV07dSgpfSx7InJvYnVzdC1jb21wcmVzcyI6NDYwLCJyb2J1c3Qtc2NhbGUiOjQ2Mywicm9idXN0LXN1bSI6NDY1LCJ0d28tcHJvZHVjdCI6NDc5fV0sNDYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoLTEpLG49MTtuPHQubGVuZ3RoOysrbilmb3IodmFyIGk9cltuLTFdPW5ldyBBcnJheSh0Lmxlbmd0aC0xKSxvPTAsYT0wO288dC5sZW5ndGg7KytvKW8hPT1lJiYoaVthKytdPXRbbl1bb10pO3JldHVybiByfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7dD5yOysrcil7ZVtyXT1uZXcgQXJyYXkodCk7Zm9yKHZhciBuPTA7dD5uOysrbillW3JdW25dPVsibSIsbiwiWyIsdC1yLTEsIl0iXS5qb2luKCIiKX1yZXR1cm4gZX1mdW5jdGlvbiBvKHQpe3JldHVybiAxJnQ/Ii0iOiIifWZ1bmN0aW9uIGEodCl7aWYoMT09PXQubGVuZ3RoKXJldHVybiB0WzBdO2lmKDI9PT10Lmxlbmd0aClyZXR1cm5bInN1bSgiLHRbMF0sIiwiLHRbMV0sIikiXS5qb2luKCIiKTt2YXIgZT10Lmxlbmd0aD4+MTtyZXR1cm5bInN1bSgiLGEodC5zbGljZSgwLGUpKSwiLCIsYSh0LnNsaWNlKGUpKSwiKSJdLmpvaW4oIiIpfWZ1bmN0aW9uIHModCl7aWYoMj09PXQubGVuZ3RoKXJldHVybltbInN1bShwcm9kKCIsdFswXVswXSwiLCIsdFsxXVsxXSwiKSxwcm9kKC0iLHRbMF1bMV0sIiwiLHRbMV1bMF0sIikpIl0uam9pbigiIildO2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZS5wdXNoKFsic2NhbGUoIixhKHMobih0LHIpKSksIiwiLG8ociksdFswXVtyXSwiKSJdLmpvaW4oIiIpKTtyZXR1cm4gZX1mdW5jdGlvbiBsKHQpe2Zvcih2YXIgZT1bXSxyPVtdLG89aSh0KSxsPVtdLHU9MDt0PnU7Kyt1KTA9PT0oMSZ1KT9lLnB1c2guYXBwbHkoZSxzKG4obyx1KSkpOnIucHVzaC5hcHBseShyLHMobihvLHUpKSksbC5wdXNoKCJtIit1KTt2YXIgYz1hKGUpLG09YShyKSxnPSJvcmllbnRhdGlvbiIrdCsiRXhhY3QiLHY9WyJmdW5jdGlvbiAiLGcsIigiLGwuam9pbigpLCIpe3ZhciBwPSIsYywiLG49IixtLCIsZD1zdWIocCxuKTtyZXR1cm4gZFtkLmxlbmd0aC0xXTt9O3JldHVybiAiLGddLmpvaW4oIiIpLHk9bmV3IEZ1bmN0aW9uKCJzdW0iLCJwcm9kIiwic2NhbGUiLCJzdWIiLHYpO3JldHVybiB5KGYsaCxwLGQpfWZ1bmN0aW9uIHUodCl7dmFyIGU9X1t0Lmxlbmd0aF07cmV0dXJuIGV8fChlPV9bdC5sZW5ndGhdPWwodC5sZW5ndGgpKSxlLmFwcGx5KHZvaWQgMCx0KX1mdW5jdGlvbiBjKCl7Zm9yKDtfLmxlbmd0aDw9bTspXy5wdXNoKGwoXy5sZW5ndGgpKTtmb3IodmFyIHQ9W10scj1bInNsb3ciXSxuPTA7bT49bjsrK24pdC5wdXNoKCJhIituKSxyLnB1c2goIm8iK24pO2Zvcih2YXIgaT1bImZ1bmN0aW9uIGdldE9yaWVudGF0aW9uKCIsdC5qb2luKCksIil7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIDA7Il0sbj0yO20+PW47KytuKWkucHVzaCgiY2FzZSAiLG4sIjpyZXR1cm4gbyIsbiwiKCIsdC5zbGljZSgwLG4pLmpvaW4oKSwiKTsiKTtpLnB1c2goIn12YXIgcz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoOysraSl7c1tpXT1hcmd1bWVudHNbaV19O3JldHVybiBzbG93KHMpO31yZXR1cm4gZ2V0T3JpZW50YXRpb24iKSxyLnB1c2goaS5qb2luKCIiKSk7dmFyIG89RnVuY3Rpb24uYXBwbHkodm9pZCAwLHIpO2UuZXhwb3J0cz1vLmFwcGx5KHZvaWQgMCxbdV0uY29uY2F0KF8pKTtmb3IodmFyIG49MDttPj1uOysrbillLmV4cG9ydHNbbl09X1tuXX12YXIgaD10KCJ0d28tcHJvZHVjdCIpLGY9dCgicm9idXN0LXN1bSIpLHA9dCgicm9idXN0LXNjYWxlIiksZD10KCJyb2J1c3Qtc3VidHJhY3QiKSxtPTUsZz0xLjExMDIyMzAyNDYyNTE1NjVlLTE2LHY9KDMrMTYqZykqZyx5PSg3KzU2KmcpKmcsYj1sKDMpLHg9bCg0KSxfPVtmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLXRbMF19LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPSh0WzFdLXJbMV0pKihlWzBdLXJbMF0pLG89KHRbMF0tclswXSkqKGVbMV0tclsxXSksYT1pLW87aWYoaT4wKXtpZigwPj1vKXJldHVybiBhO249aStvfWVsc2V7aWYoISgwPmkpKXJldHVybiBhO2lmKG8+PTApcmV0dXJuIGE7bj0tKGkrbyl9dmFyIHM9dipuO3JldHVybiBhPj1zfHwtcz49YT9hOmIodCxlLHIpfSxmdW5jdGlvbih0LGUscixuKXt2YXIgaT10WzBdLW5bMF0sbz1lWzBdLW5bMF0sYT1yWzBdLW5bMF0scz10WzFdLW5bMV0sbD1lWzFdLW5bMV0sdT1yWzFdLW5bMV0sYz10WzJdLW5bMl0saD1lWzJdLW5bMl0sZj1yWzJdLW5bMl0scD1vKnUsZD1hKmwsbT1hKnMsZz1pKnUsdj1pKmwsYj1vKnMsXz1jKihwLWQpK2gqKG0tZykrZioodi1iKSx3PShNYXRoLmFicyhwKStNYXRoLmFicyhkKSkqTWF0aC5hYnMoYykrKE1hdGguYWJzKG0pK01hdGguYWJzKGcpKSpNYXRoLmFicyhoKSsoTWF0aC5hYnModikrTWF0aC5hYnMoYikpKk1hdGguYWJzKGYpLE09eSp3O3JldHVybiBfPk18fC1fPk0/Xzp4KHQsZSxyLG4pfV07YygpfSx7InJvYnVzdC1zY2FsZSI6NDYzLCJyb2J1c3Qtc3VidHJhY3QiOjQ2NCwicm9idXN0LXN1bSI6NDY1LCJ0d28tcHJvZHVjdCI6NDc5fV0sNDYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj10Lmxlbmd0aDtpZigxPT09cil7dmFyIG49aSh0WzBdLGUpO3JldHVybiBuWzBdP246W25bMV1dfXZhciBhPW5ldyBBcnJheSgyKnIpLHM9Wy4xLC4xXSxsPVsuMSwuMV0sdT0wO2kodFswXSxlLHMpLHNbMF0mJihhW3UrK109c1swXSk7Zm9yKHZhciBjPTE7cj5jOysrYyl7aSh0W2NdLGUsbCk7dmFyIGg9c1sxXTtvKGgsbFswXSxzKSxzWzBdJiYoYVt1KytdPXNbMF0pO3ZhciBmPWxbMV0scD1zWzFdLGQ9ZitwLG09ZC1mLGc9cC1tO3NbMV09ZCxnJiYoYVt1KytdPWcpfXJldHVybiBzWzFdJiYoYVt1KytdPXNbMV0pLDA9PT11JiYoYVt1KytdPTApLGEubGVuZ3RoPXUsYX12YXIgaT10KCJ0d28tcHJvZHVjdCIpLG89dCgidHdvLXN1bSIpO2UuZXhwb3J0cz1ufSx7InR3by1wcm9kdWN0Ijo0NzksInR3by1zdW0iOjQ4MH1dLDQ2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9dCtlLG49ci10LGk9ci1uLG89ZS1uLGE9dC1pLHM9YStvO3JldHVybiBzP1tzLHJdOltyXX1mdW5jdGlvbiBpKHQsZSl7dmFyIHI9MHx0Lmxlbmd0aCxpPTB8ZS5sZW5ndGg7aWYoMT09PXImJjE9PT1pKXJldHVybiBuKHRbMF0sLWVbMF0pO3ZhciBvLGEscz1yK2ksbD1uZXcgQXJyYXkocyksdT0wLGM9MCxoPTAsZj1NYXRoLmFicyxwPXRbY10sZD1mKHApLG09LWVbaF0sZz1mKG0pO2c+ZD8oYT1wLGMrPTEscj5jJiYocD10W2NdLGQ9ZihwKSkpOihhPW0saCs9MSxpPmgmJihtPS1lW2hdLGc9ZihtKSkpLHI+YyYmZz5kfHxoPj1pPyhvPXAsYys9MSxyPmMmJihwPXRbY10sZD1mKHApKSk6KG89bSxoKz0xLGk+aCYmKG09LWVbaF0sZz1mKG0pKSk7Zm9yKHZhciB2LHksYix4LF8sdz1vK2EsTT13LW8saz1hLU0sQT1rLFQ9dztyPmMmJmk+aDspZz5kPyhvPXAsYys9MSxyPmMmJihwPXRbY10sZD1mKHApKSk6KG89bSxoKz0xLGk+aCYmKG09LWVbaF0sZz1mKG0pKSksYT1BLHc9bythLE09dy1vLGs9YS1NLGsmJihsW3UrK109ayksdj1UK3cseT12LVQsYj12LXkseD13LXksXz1ULWIsQT1fK3gsVD12O2Zvcig7cj5jOylvPXAsYT1BLHc9bythLE09dy1vLGs9YS1NLGsmJihsW3UrK109ayksdj1UK3cseT12LVQsYj12LXkseD13LXksXz1ULWIsQT1fK3gsVD12LGMrPTEscj5jJiYocD10W2NdKTtmb3IoO2k+aDspbz1tLGE9QSx3PW8rYSxNPXctbyxrPWEtTSxrJiYobFt1KytdPWspLHY9VCt3LHk9di1ULGI9di15LHg9dy15LF89VC1iLEE9Xyt4LFQ9dixoKz0xLGk+aCYmKG09LWVbaF0pO3JldHVybiBBJiYobFt1KytdPUEpLFQmJihsW3UrK109VCksdXx8KGxbdSsrXT0wKSxsLmxlbmd0aD11LGx9ZS5leHBvcnRzPWl9LHt9XSw0NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPXQrZSxuPXItdCxpPXItbixvPWUtbixhPXQtaSxzPWErbztyZXR1cm4gcz9bcyxyXTpbcl19ZnVuY3Rpb24gaSh0LGUpe3ZhciByPTB8dC5sZW5ndGgsaT0wfGUubGVuZ3RoO2lmKDE9PT1yJiYxPT09aSlyZXR1cm4gbih0WzBdLGVbMF0pO3ZhciBvLGEscz1yK2ksbD1uZXcgQXJyYXkocyksdT0wLGM9MCxoPTAsZj1NYXRoLmFicyxwPXRbY10sZD1mKHApLG09ZVtoXSxnPWYobSk7Zz5kPyhhPXAsYys9MSxyPmMmJihwPXRbY10sZD1mKHApKSk6KGE9bSxoKz0xLGk+aCYmKG09ZVtoXSxnPWYobSkpKSxyPmMmJmc+ZHx8aD49aT8obz1wLGMrPTEscj5jJiYocD10W2NdLGQ9ZihwKSkpOihvPW0saCs9MSxpPmgmJihtPWVbaF0sZz1mKG0pKSk7Zm9yKHZhciB2LHksYix4LF8sdz1vK2EsTT13LW8saz1hLU0sQT1rLFQ9dztyPmMmJmk+aDspZz5kPyhvPXAsYys9MSxyPmMmJihwPXRbY10sZD1mKHApKSk6KG89bSxoKz0xLGk+aCYmKG09ZVtoXSxnPWYobSkpKSxhPUEsdz1vK2EsTT13LW8saz1hLU0sayYmKGxbdSsrXT1rKSx2PVQrdyx5PXYtVCxiPXYteSx4PXcteSxfPVQtYixBPV8reCxUPXY7Zm9yKDtyPmM7KW89cCxhPUEsdz1vK2EsTT13LW8saz1hLU0sayYmKGxbdSsrXT1rKSx2PVQrdyx5PXYtVCxiPXYteSx4PXcteSxfPVQtYixBPV8reCxUPXYsYys9MSxyPmMmJihwPXRbY10pO2Zvcig7aT5oOylvPW0sYT1BLHc9bythLE09dy1vLGs9YS1NLGsmJihsW3UrK109ayksdj1UK3cseT12LVQsYj12LXkseD13LXksXz1ULWIsQT1fK3gsVD12LGgrPTEsaT5oJiYobT1lW2hdKTtyZXR1cm4gQSYmKGxbdSsrXT1BKSxUJiYobFt1KytdPVQpLHV8fChsW3UrK109MCksbC5sZW5ndGg9dSxsfWUuZXhwb3J0cz1pfSx7fV0sNDY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQuc3BsaXQoIiIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdCBpbiBpP2lbdF06IiJ9KS5qb2luKCIiKX1lLmV4cG9ydHM9bjt2YXIgaT17IiAiOiIgIiwwOiJcdTIwNzAiLDE6Ilx4YjkiLDI6Ilx4YjIiLDM6Ilx4YjMiLDQ6Ilx1MjA3NCIsNToiXHUyMDc1Iiw2OiJcdTIwNzYiLDc6Ilx1MjA3NyIsODoiXHUyMDc4Iiw5OiJcdTIwNzkiLCIrIjoiXHUyMDdhIiwiLSI6Ilx1MjA3YiIsYToiXHUxZDQzIixiOiJcdTFkNDciLGM6Ilx1MWQ5YyIsZDoiXHUxZDQ4IixlOiJcdTFkNDkiLGY6Ilx1MWRhMCIsZzoiXHUxZDRkIixoOiJcdTAyYjAiLGk6Ilx1MjA3MSIsajoiXHUwMmIyIixrOiJcdTFkNGYiLGw6Ilx1MDJlMSIsbToiXHUxZDUwIixuOiJcdTIwN2YiLG86Ilx1MWQ1MiIscDoiXHUxZDU2IixyOiJcdTAyYjMiLHM6Ilx1MDJlMiIsdDoiXHUxZDU3Iix1OiJcdTFkNTgiLHY6Ilx1MWQ1YiIsdzoiXHUwMmI3Iix4OiJcdTAyZTMiLHk6Ilx1MDJiOCIsejoiXHUxZGJiIn19LHt9XSw0Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4iYSIrdH1mdW5jdGlvbiBpKHQpe3JldHVybiJkIit0fWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4iYyIrdCsiXyIrZX1mdW5jdGlvbiBhKHQpe3JldHVybiJzIit0fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4idCIrdCsiXyIrZX1mdW5jdGlvbiBsKHQpe3JldHVybiJvIit0fWZ1bmN0aW9uIHUodCl7cmV0dXJuIngiK3R9ZnVuY3Rpb24gYyh0KXtyZXR1cm4icCIrdH1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuImQiK3QrIl8iK2V9ZnVuY3Rpb24gZih0KXtyZXR1cm4iaSIrdH1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuInUiK3QrIl8iK2V9ZnVuY3Rpb24gZCh0KXtyZXR1cm4iYiIrdH1mdW5jdGlvbiBtKHQpe3JldHVybiJ5Iit0fWZ1bmN0aW9uIGcodCl7cmV0dXJuImUiK3R9ZnVuY3Rpb24gdih0KXtyZXR1cm4idiIrdH1mdW5jdGlvbiB5KHQsZSxyKXtmb3IodmFyIG49MCxpPTA7dD5pOysraSllJjE8PGkmJihufD0xPDxyW2ldKTtyZXR1cm4gbn1mdW5jdGlvbiBiKHQsZSxyLGIseCxTKXtmdW5jdGlvbiBMKHQsZSl7Ri5wdXNoKCJmb3IoIixmKHhbdF0pLCI9IixlLCI7IixmKHhbdF0pLCI8IixhKHhbdF0pLCI7IiwiKysiLGYoeFt0XSksIil7Iil9ZnVuY3Rpb24geih0KXtmb3IodmFyIGU9MDtqPmU7KytlKUYucHVzaChjKGUpLCIrPSIscChlLHhbdF0pLCI7Iik7Ri5wdXNoKCJ9Iil9ZnVuY3Rpb24gSSh0KXtmb3IodmFyIGU9dC0xO2U+PTA7LS1lKUwoZSwwKTtmb3IodmFyIHI9W10sZT0wO2o+ZTsrK2UpU1tlXT9yLnB1c2goaShlKSsiLmdldCgiK2MoZSkrIikiKTpyLnB1c2goaShlKSsiWyIrYyhlKSsiXSIpO2Zvcih2YXIgZT0wO2I+ZTsrK2Upci5wdXNoKHUoZSkpO0YucHVzaChNLCJbIixULCIrK109cGhhc2UoIixyLmpvaW4oKSwiKTsiKTtmb3IodmFyIGU9MDt0PmU7KytlKXooZSk7Zm9yKHZhciBuPTA7aj5uOysrbilGLnB1c2goYyhuKSwiKz0iLHAobix4W3RdKSwiOyIpfWZ1bmN0aW9uIFAodCl7Zm9yKHZhciBlPTA7aj5lOysrZSlTW2VdP0YucHVzaChvKGUsMCksIj0iLGkoZSksIi5nZXQoIixjKGUpLCIpOyIpOkYucHVzaChvKGUsMCksIj0iLGkoZSksIlsiLGMoZSksIl07Iik7Zm9yKHZhciByPVtdLGU9MDtqPmU7KytlKXIucHVzaChvKGUsMCkpO2Zvcih2YXIgZT0wO2I+ZTsrK2Upci5wdXNoKHUoZSkpO0YucHVzaChkKDApLCI9IixNLCJbIixULCJdPXBoYXNlKCIsci5qb2luKCksIik7Iik7Zm9yKHZhciBuPTE7MTw8RD5uOysrbilGLnB1c2goZChuKSwiPSIsTSwiWyIsVCwiKyIsZyhuKSwiXTsiKTtmb3IodmFyIGE9W10sbj0xOzE8PEQ+bjsrK24pYS5wdXNoKCIoIitkKDApKyIhPT0iK2QobikrIikiKTtGLnB1c2goImlmKCIsYS5qb2luKCJ8fCIpLCIpeyIpO2Zvcih2YXIgcz1bXSxlPTA7RD5lOysrZSlzLnB1c2goZihlKSk7Zm9yKHZhciBlPTA7aj5lOysrZSl7cy5wdXNoKG8oZSwwKSk7Zm9yKHZhciBuPTE7MTw8RD5uOysrbilTW2VdP0YucHVzaChvKGUsbiksIj0iLGkoZSksIi5nZXQoIixjKGUpLCIrIixoKGUsbiksIik7Iik6Ri5wdXNoKG8oZSxuKSwiPSIsaShlKSwiWyIsYyhlKSwiKyIsaChlLG4pLCJdOyIpLHMucHVzaChvKGUsbikpfWZvcih2YXIgZT0wOzE8PEQ+ZTsrK2Upcy5wdXNoKGQoZSkpO2Zvcih2YXIgZT0wO2I+ZTsrK2Upcy5wdXNoKHUoZSkpO0YucHVzaCgidmVydGV4KCIscy5qb2luKCksIik7Iix2KDApLCI9Iix3LCJbIixULCJdPSIsaywiKys7Iik7Zm9yKHZhciBsPSgxPDxEKS0xLHA9ZChsKSxuPTA7RD5uOysrbilpZigwPT09KHQmfigxPDxuKSkpe2Zvcih2YXIgbT1sXjE8PG4seT1kKG0pLHg9W10sXz1tO18+MDtfPV8tMSZtKXgucHVzaCh3KyJbIitUKyIrIitnKF8pKyJdIik7eC5wdXNoKHYoMCkpO2Zvcih2YXIgXz0wO2o+XzsrK18pMSZuP3gucHVzaChvKF8sbCksbyhfLG0pKTp4LnB1c2gobyhfLG0pLG8oXyxsKSk7MSZuP3gucHVzaChwLHkpOngucHVzaCh5LHApO2Zvcih2YXIgXz0wO2I+XzsrK18peC5wdXNoKHUoXykpO0YucHVzaCgiaWYoIixwLCIhPT0iLHksIil7IiwiZmFjZSgiLHguam9pbigpLCIpfSIpfUYucHVzaCgifSIsVCwiKz0xOyIpfWZ1bmN0aW9uIEMoKXtmb3IodmFyIHQ9MTsxPDxEPnQ7Kyt0KUYucHVzaChFLCI9IixnKHQpLCI7IixnKHQpLCI9IixtKHQpLCI7IixtKHQpLCI9IixFLCI7Iil9ZnVuY3Rpb24gUih0LGUpe2lmKDA+dClyZXR1cm4gdm9pZCBQKGUpO0kodCksRi5wdXNoKCJpZigiLGEoeFt0XSksIj4wKXsiLGYoeFt0XSksIj0xOyIpLFIodC0xLGV8MTw8eFt0XSk7Zm9yKHZhciByPTA7aj5yOysrcilGLnB1c2goYyhyKSwiKz0iLHAocix4W3RdKSwiOyIpO3Q9PT1ELTEmJihGLnB1c2goVCwiPTA7IiksQygpKSxMKHQsMiksUih0LTEsZSksdD09PUQtMSYmKEYucHVzaCgiaWYoIixmKHhbRC0xXSksIiYxKXsiLFQsIj0wO30iKSxDKCkpLHoodCksRi5wdXNoKCJ9Iil9dmFyIGo9Uy5sZW5ndGgsRD14Lmxlbmd0aDtpZigyPkQpdGhyb3cgbmV3IEVycm9yKCJuZGFycmF5LWV4dHJhY3QtY29udG91cjogRGltZW5zaW9uIG11c3QgYmUgYXQgbGVhc3QgMiIpO2Zvcih2YXIgTz0iZXh0cmFjdENvbnRvdXIiK3guam9pbigiXyIpLEY9W10sTj1bXSxCPVtdLFU9MDtqPlU7KytVKUIucHVzaChuKFUpKTtmb3IodmFyIFU9MDtiPlU7KytVKUIucHVzaCh1KFUpKTtmb3IodmFyIFU9MDtEPlU7KytVKU4ucHVzaChhKFUpKyI9IituKDApKyIuc2hhcGVbIitVKyJdfDAiKTtmb3IodmFyIFU9MDtqPlU7KytVKXtOLnB1c2goaShVKSsiPSIrbihVKSsiLmRhdGEiLGwoVSkrIj0iK24oVSkrIi5vZmZzZXR8MCIpO2Zvcih2YXIgVj0wO0Q+VjsrK1YpTi5wdXNoKHMoVSxWKSsiPSIrbihVKSsiLnN0cmlkZVsiK1YrIl18MCIpfWZvcih2YXIgVT0wO2o+VTsrK1Upe04ucHVzaChjKFUpKyI9IitsKFUpKSxOLnB1c2gobyhVLDApKTtmb3IodmFyIFY9MTsxPDxEPlY7KytWKXtmb3IodmFyIHE9W10sRz0wO0Q+RzsrK0cpViYxPDxHJiZxLnB1c2goIi0iK3MoVSxHKSk7Ti5wdXNoKGgoVSxWKSsiPSgiK3Euam9pbigiIikrIil8MCIpLE4ucHVzaChvKFUsVikrIj0wIil9fWZvcih2YXIgVT0wO2o+VTsrK1UpZm9yKHZhciBWPTA7RD5WOysrVil7dmFyIEg9W3MoVSx4W1ZdKV07Vj4wJiZILnB1c2gocyhVLHhbVi0xXSkrIioiK2EoeFtWLTFdKSksTi5wdXNoKHAoVSx4W1ZdKSsiPSgiK0guam9pbigiLSIpKyIpfDAiKX1mb3IodmFyIFU9MDtEPlU7KytVKU4ucHVzaChmKFUpKyI9MCIpO04ucHVzaChrKyI9MCIpO2Zvcih2YXIgWD1bIjIiXSxVPUQtMjtVPj0wOy0tVSlYLnB1c2goYSh4W1VdKSk7Ti5wdXNoKEErIj0oIitYLmpvaW4oIioiKSsiKXwwIixNKyI9bWFsbG9jVWludDMyKCIrQSsiKSIsdysiPW1hbGxvY1VpbnQzMigiK0ErIikiLFQrIj0wIiksTi5wdXNoKGQoMCkrIj0wIik7Zm9yKHZhciBWPTE7MTw8RD5WOysrVil7Zm9yKHZhciBZPVtdLFc9W10sRz0wO0Q+RzsrK0cpViYxPDxHJiYoMD09PVcubGVuZ3RoP1kucHVzaCgiMSIpOlkudW5zaGlmdChXLmpvaW4oIioiKSkpLFcucHVzaChhKHhbR10pKTt2YXIgWj0iIjtZWzBdLmluZGV4T2YoYSh4W0QtMl0pKTwwJiYoWj0iLSIpO3ZhciBRPXkoRCxWLHgpO04ucHVzaChnKFEpKyI9KC0iK1kuam9pbigiLSIpKyIpfDAiLG0oUSkrIj0oIitaK1kuam9pbigiLSIpKyIpfDAiLGQoUSkrIj0wIik7Cn1OLnB1c2godigwKSsiPTAiLEUrIj0wIiksUihELTEsMCksRi5wdXNoKCJmcmVlVWludDMyKCIsdywiKTtmcmVlVWludDMyKCIsTSwiKTsiKTt2YXIgSz1bIid1c2Ugc3RyaWN0JzsiLCJmdW5jdGlvbiAiLE8sIigiLEIuam9pbigpLCIpeyIsInZhciAiLE4uam9pbigpLCI7IixGLmpvaW4oIiIpLCJ9IiwicmV0dXJuICIsT10uam9pbigiIiksSj1uZXcgRnVuY3Rpb24oInZlcnRleCIsImZhY2UiLCJwaGFzZSIsIm1hbGxvY1VpbnQzMiIsImZyZWVVaW50MzIiLEspO3JldHVybiBKKHQsZSxyLF8ubWFsbG9jVWludDMyLF8uZnJlZVVpbnQzMil9ZnVuY3Rpb24geCh0KXtmdW5jdGlvbiBlKHQpe3Rocm93IG5ldyBFcnJvcigibmRhcnJheS1leHRyYWN0LWNvbnRvdXI6ICIrdCl9Im9iamVjdCIhPXR5cGVvZiB0JiZlKCJNdXN0IHNwZWNpZnkgYXJndW1lbnRzIik7dmFyIHI9dC5vcmRlcjtBcnJheS5pc0FycmF5KHIpfHxlKCJNdXN0IHNwZWNpZnkgb3JkZXIiKTt2YXIgbj10LmFycmF5QXJndW1lbnRzfHwxOzE+biYmZSgiTXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBhcnJheSBhcmd1bWVudCIpO3ZhciBpPXQuc2NhbGFyQXJndW1lbnRzfHwwOzA+aSYmZSgiU2NhbGFyIGFyZyBjb3VudCBtdXN0IGJlID4gMCIpLCJmdW5jdGlvbiIhPXR5cGVvZiB0LnZlcnRleCYmZSgiTXVzdCBzcGVjaWZ5IHZlcnRleCBjcmVhdGlvbiBmdW5jdGlvbiIpLCJmdW5jdGlvbiIhPXR5cGVvZiB0LmNlbGwmJmUoIk11c3Qgc3BlY2lmeSBjZWxsIGNyZWF0aW9uIGZ1bmN0aW9uIiksImZ1bmN0aW9uIiE9dHlwZW9mIHQucGhhc2UmJmUoIk11c3Qgc3BlY2lmeSBwaGFzZSBmdW5jdGlvbiIpO2Zvcih2YXIgbz10LmdldHRlcnN8fFtdLGE9bmV3IEFycmF5KG4pLHM9MDtuPnM7KytzKW8uaW5kZXhPZihzKT49MD9hW3NdPSEwOmFbc109ITE7cmV0dXJuIGIodC52ZXJ0ZXgsdC5jZWxsLHQucGhhc2UsaSxyLGEpfXZhciBfPXQoInR5cGVkYXJyYXktcG9vbCIpO2UuZXhwb3J0cz14O3ZhciB3PSJWIixNPSJQIixrPSJOIixBPSJRIixUPSJYIixFPSJUIn0seyJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDQ2ODpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCl7aWYoMD50KXJldHVybiBOdW1iZXIoIjAvMCIpO2Zvcih2YXIgZT1zWzBdLHI9cy5sZW5ndGgtMTtyPjA7LS1yKWUrPXNbcl0vKHQrcik7dmFyIG49dCthKy41O3JldHVybi41Kk1hdGgubG9nKDIqTWF0aC5QSSkrKHQrLjUpKk1hdGgubG9nKG4pLW4rTWF0aC5sb2coZSktTWF0aC5sb2codCl9dmFyIGk9NyxvPVsuOTk5OTk5OTk5OTk5ODA5OSw2NzYuNTIwMzY4MTIxODg1MSwtMTI1OS4xMzkyMTY3MjI0MDI4LDc3MS4zMjM0Mjg3Nzc2NTMxLC0xNzYuNjE1MDI5MTYyMTQwNiwxMi41MDczNDMyNzg2ODY5MDUsLS4xMzg1NzEwOTUyNjU3MjAxMiw5OTg0MzY5NTc4MDE5NTcyZS0yMSwxLjUwNTYzMjczNTE0OTMxMTZlLTddLGE9NjA3LzEyOCxzPVsuOTk5OTk5OTk5OTk5OTk3MSw1Ny4xNTYyMzU2NjU4NjI5MiwtNTkuNTk3OTYwMzU1NDc1NDksMTQuMTM2MDk3OTc0NzQxNzQ2LC0uNDkxOTEzODE2MDk3NjIwMiwzMzk5NDY0OTk4NDgxMTg5ZS0yMCw0NjUyMzYyODkyNzA0ODU4ZS0yMCwtOTgzNzQ0NzUzMDQ4Nzk1NmUtMjAsLjAwMDE1ODA4ODcwMzIyNDkxMjUsLS4wMDAyMTAyNjQ0NDE3MjQxMDQ4OCwuMDAwMjE3NDM5NjE4MTE1MjEyNjUsLS4wMDAxNjQzMTgxMDY1MzY3NjM5LDg0NDE4MjIzOTgzODUyNzVlLTIwLC0yNjE5MDgzODQwMTU4MTQwOGUtMjEsMzY4OTkxODI2NTk1MzE2MjVlLTIyXTtlLmV4cG9ydHM9ZnVuY3Rpb24gbCh0KXtpZiguNT50KXJldHVybiBNYXRoLlBJLyhNYXRoLnNpbihNYXRoLlBJKnQpKmwoMS10KSk7aWYodD4xMDApcmV0dXJuIE1hdGguZXhwKG4odCkpO3QtPTE7Zm9yKHZhciBlPW9bMF0scj0xO2krMj5yO3IrKyllKz1vW3JdLyh0K3IpO3ZhciBhPXQraSsuNTtyZXR1cm4gTWF0aC5zcXJ0KDIqTWF0aC5QSSkqTWF0aC5wb3coYSx0Ky41KSpNYXRoLmV4cCgtYSkqZX0sZS5leHBvcnRzLmxvZz1ufSx7fV0sNDY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9dC5sZW5ndGg7aWYoaT5lKXtmb3IodmFyIHI9MSxuPTA7ZT5uOysrbilmb3IodmFyIGE9MDtuPmE7KythKWlmKHRbbl08dFthXSlyPS1yO2Vsc2UgaWYodFtuXT09PXRbYV0pcmV0dXJuIDA7cmV0dXJuIHJ9Zm9yKHZhciBzPW8ubWFsbG9jVWludDgoZSksbj0wO2U+bjsrK24pc1tuXT0wO2Zvcih2YXIgcj0xLG49MDtlPm47KytuKWlmKCFzW25dKXt2YXIgbD0xO3Nbbl09MTtmb3IodmFyIGE9dFtuXTthIT09bjthPXRbYV0pe2lmKHNbYV0pcmV0dXJuIG8uZnJlZVVpbnQ4KHMpLDA7bCs9MSxzW2FdPTF9MSZsfHwocj0tcil9cmV0dXJuIG8uZnJlZVVpbnQ4KHMpLHJ9ZS5leHBvcnRzPW47dmFyIGk9MzIsbz10KCJ0eXBlZGFycmF5LXBvb2wiKX0seyJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDQ3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQubGVuZ3RoO3N3aXRjaChlKXtjYXNlIDA6Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gdFsxXX12YXIgcixuLGkscz1vLm1hbGxvY1VpbnQzMihlKSxsPW8ubWFsbG9jVWludDMyKGUpLHU9MDtmb3IoYSh0LGwpLGk9MDtlPmk7KytpKXNbaV09dFtpXTtmb3IoaT1lLTE7aT4wOy0taSluPWxbaV0scj1zW2ldLHNbaV09c1tuXSxzW25dPXIsbFtpXT1sW3JdLGxbcl09bix1PSh1K3IpKmk7cmV0dXJuIG8uZnJlZVVpbnQzMihsKSxvLmZyZWVVaW50MzIocyksdX1mdW5jdGlvbiBpKHQsZSxyKXtzd2l0Y2godCl7Y2FzZSAwOnJldHVybiByP3I6W107Y2FzZSAxOnJldHVybiByPyhyWzBdPTAscik6WzBdO2Nhc2UgMjpyZXR1cm4gcj8oZT8oclswXT0wLHJbMV09MSk6KHJbMF09MSxyWzFdPTApLHIpOmU/WzAsMV06WzEsMF19cj1yfHxuZXcgQXJyYXkodCk7dmFyIG4saSxvLGE9MTtmb3IoclswXT0wLG89MTt0Pm87KytvKXJbb109byxhPWEqb3wwO2ZvcihvPXQtMTtvPjA7LS1vKW49ZS9hfDAsZT1lLW4qYXwwLGE9YS9vfDAsaT0wfHJbb10scltvXT0wfHJbbl0scltuXT0wfGk7cmV0dXJuIHJ9dmFyIG89dCgidHlwZWRhcnJheS1wb29sIiksYT10KCJpbnZlcnQtcGVybXV0YXRpb24iKTtyLnJhbms9bixyLnVucmFuaz1pfSx7ImludmVydC1wZXJtdXRhdGlvbiI6NDcxLCJ0eXBlZGFycmF5LXBvb2wiOjQ4MX1dLDQ3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7ZT1lfHxuZXcgQXJyYXkodC5sZW5ndGgpO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKWVbdFtyXV09cjtyZXR1cm4gZX1lLmV4cG9ydHM9bn0se31dLDQ3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2lmKDA+dClyZXR1cm5bXTtpZigwPT09dClyZXR1cm5bWzBdXTtmb3IodmFyIGU9MHxNYXRoLnJvdW5kKGEodCsxKSkscj1bXSxuPTA7ZT5uOysrbil7Zm9yKHZhciBzPWkudW5yYW5rKHQsbiksbD1bMF0sdT0wLGM9MDtjPHMubGVuZ3RoOysrYyl1Kz0xPDxzW2NdLGwucHVzaCh1KTtvKHMpPDEmJihsWzBdPXUsbFt0XT0wKSxyLnB1c2gobCl9cmV0dXJuIHJ9ZS5leHBvcnRzPW47dmFyIGk9dCgicGVybXV0YXRpb24tcmFuayIpLG89dCgicGVybXV0YXRpb24tcGFyaXR5IiksYT10KCJnYW1tYSIpfSx7Z2FtbWE6NDY4LCJwZXJtdXRhdGlvbi1wYXJpdHkiOjQ2OSwicGVybXV0YXRpb24tcmFuayI6NDcwfV0sNDczOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImN3aXNlLWNvbXBpbGVyIikoe2FyZ3M6WyJhcnJheSIse29mZnNldDpbMV0sYXJyYXk6MH0sInNjYWxhciIsInNjYWxhciIsImluZGV4Il0scHJlOntib2R5OiJ7fSIsYXJnczpbXSx0aGlzVmFyczpbXSxsb2NhbFZhcnM6W119LHBvc3Q6e2JvZHk6Int9IixhcmdzOltdLHRoaXNWYXJzOltdLGxvY2FsVmFyczpbXX0sYm9keTp7Ym9keToie1xuICAgICAgICB2YXIgX2lubGluZV8xX2RhID0gX2lubGluZV8xX2FyZzBfIC0gX2lubGluZV8xX2FyZzNfXG4gICAgICAgIHZhciBfaW5saW5lXzFfZGIgPSBfaW5saW5lXzFfYXJnMV8gLSBfaW5saW5lXzFfYXJnM19cbiAgICAgICAgaWYoKF9pbmxpbmVfMV9kYSA+PSAwKSAhPT0gKF9pbmxpbmVfMV9kYiA+PSAwKSkge1xuICAgICAgICAgIF9pbmxpbmVfMV9hcmcyXy5wdXNoKF9pbmxpbmVfMV9hcmc0X1swXSArIDAuNSArIDAuNSAqIChfaW5saW5lXzFfZGEgKyBfaW5saW5lXzFfZGIpIC8gKF9pbmxpbmVfMV9kYSAtIF9pbmxpbmVfMV9kYikpXG4gICAgICAgIH1cbiAgICAgIH0iLGFyZ3M6W3tuYW1lOiJfaW5saW5lXzFfYXJnMF8iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6MX0se25hbWU6Il9pbmxpbmVfMV9hcmcxXyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfSx7bmFtZToiX2lubGluZV8xX2FyZzJfIixsdmFsdWU6ITEscnZhbHVlOiEwLGNvdW50OjF9LHtuYW1lOiJfaW5saW5lXzFfYXJnM18iLGx2YWx1ZTohMSxydmFsdWU6ITAsY291bnQ6Mn0se25hbWU6Il9pbmxpbmVfMV9hcmc0XyIsbHZhbHVlOiExLHJ2YWx1ZTohMCxjb3VudDoxfV0sdGhpc1ZhcnM6W10sbG9jYWxWYXJzOlsiX2lubGluZV8xX2RhIiwiX2lubGluZV8xX2RiIl19LGZ1bmNOYW1lOiJ6ZXJvQ3Jvc3NpbmdzIn0pfSx7ImN3aXNlLWNvbXBpbGVyIjoxMjB9XSw0NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPVtdO3JldHVybiBlPStlfHwwLGkodC5oaSh0LnNoYXBlWzBdLTEpLHIsZSkscn1lLmV4cG9ydHM9bjt2YXIgaT10KCIuL2xpYi96Yy1jb3JlIil9LHsiLi9saWIvemMtY29yZSI6NDczfV0sNDc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj10Lmxlbmd0aCxuPVsiJ3VzZSBzdHJpY3QnOyJdLGk9InN1cmZhY2VOZXRzIit0LmpvaW4oIl8iKSsiZCIrZTtuLnB1c2goInZhciBjb250b3VyPWdlbkNvbnRvdXIoeyIsIm9yZGVyOlsiLHQuam9pbigpLCJdLCIsInNjYWxhckFyZ3VtZW50czogMywiLCJwaGFzZTpmdW5jdGlvbiBwaGFzZUZ1bmMocCxhLGIsYykgeyByZXR1cm4gKHAgPiBjKXwwIH0sIiksImdlbmVyaWMiPT09ZSYmbi5wdXNoKCJnZXR0ZXJzOlswXSwiKTtmb3IodmFyIG89W10sbD1bXSx1PTA7cj51OysrdSlvLnB1c2goImQiK3UpLGwucHVzaCgiZCIrdSk7Zm9yKHZhciB1PTA7MTw8cj51OysrdSlvLnB1c2goInYiK3UpLGwucHVzaCgidiIrdSk7Zm9yKHZhciB1PTA7MTw8cj51OysrdSlvLnB1c2goInAiK3UpLGwucHVzaCgicCIrdSk7by5wdXNoKCJhIiwiYiIsImMiKSxsLnB1c2goImEiLCJjIiksbi5wdXNoKCJ2ZXJ0ZXg6ZnVuY3Rpb24gdmVydGV4RnVuYygiLG8uam9pbigpLCIpeyIpO2Zvcih2YXIgYz1bXSx1PTA7MTw8cj51OysrdSljLnB1c2goIihwIit1KyI8PCIrdSsiKSIpO24ucHVzaCgidmFyIG09KCIsYy5qb2luKCIrIiksIil8MDtpZihtPT09MHx8bT09PSIsKDE8PCgxPDxyKSktMSwiKXtyZXR1cm59Iik7dmFyIGg9W10sZj1bXTsxMjg+PTE8PCgxPDxyKT8obi5wdXNoKCJzd2l0Y2gobSl7IiksZj1uKTpuLnB1c2goInN3aXRjaChtPj4+Nyl7Iik7Zm9yKHZhciB1PTA7MTw8KDE8PHIpPnU7Kyt1KXtpZigxPDwoMTw8cik+MTI4JiZ1JTEyOD09PTApe2gubGVuZ3RoPjAmJmYucHVzaCgifX0iKTt2YXIgcD0idkV4dHJhIitoLmxlbmd0aDtuLnB1c2goImNhc2UgIix1Pj4+NywiOiIscCwiKG0mMHg3ZiwiLGwuam9pbigpLCIpO2JyZWFrOyIpLGY9WyJmdW5jdGlvbiAiLHAsIihtLCIsbC5qb2luKCksIil7c3dpdGNoKG0peyJdLGgucHVzaChmKX1mLnB1c2goImNhc2UgIiwxMjcmdSwiOiIpO2Zvcih2YXIgZD1uZXcgQXJyYXkociksbT1uZXcgQXJyYXkociksZz1uZXcgQXJyYXkociksdj1uZXcgQXJyYXkocikseT0wLGI9MDtyPmI7KytiKWRbYl09W10sbVtiXT1bXSxnW2JdPTAsdltiXT0wO2Zvcih2YXIgYj0wOzE8PHI+YjsrK2IpZm9yKHZhciB4PTA7cj54OysreCl7dmFyIF89Yl4xPDx4O2lmKCEoXz5iKSYmISh1JjE8PF8pIT0hKHUmMTw8Yikpe3ZhciB3PTE7dSYxPDxfP21beF0ucHVzaCgidiIrXysiLXYiK2IpOihtW3hdLnB1c2goInYiK2IrIi12IitfKSx3PS13KSwwPnc/KGRbeF0ucHVzaCgiLXYiK2IrIi12IitfKSxnW3hdKz0yKTooZFt4XS5wdXNoKCJ2IitiKyIrdiIrXyksZ1t4XS09MikseSs9MTtmb3IodmFyIE09MDtyPk07KytNKU0hPT14JiYoXyYxPDxNP3ZbTV0rPTE6dltNXS09MSl9fWZvcih2YXIgaz1bXSx4PTA7cj54OysreClpZigwPT09ZFt4XS5sZW5ndGgpay5wdXNoKCJkIit4KyItMC41Iik7ZWxzZXt2YXIgQT0iIjtnW3hdPDA/QT1nW3hdKyIqYyI6Z1t4XT4wJiYoQT0iKyIrZ1t4XSsiKmMiKTt2YXIgVD0uNSooZFt4XS5sZW5ndGgveSksRT0uNSsuNSoodlt4XS95KTtrLnB1c2goImQiK3grIi0iK0UrIi0iK1QrIiooIitkW3hdLmpvaW4oIisiKStBKyIpLygiK21beF0uam9pbigiKyIpKyIpIil9Zi5wdXNoKCJhLnB1c2goWyIsay5qb2luKCksIl0pOyIsImJyZWFrOyIpfW4ucHVzaCgifX0sIiksaC5sZW5ndGg+MCYmZi5wdXNoKCJ9fSIpO2Zvcih2YXIgUz1bXSx1PTA7MTw8ci0xPnU7Kyt1KVMucHVzaCgidiIrdSk7Uy5wdXNoKCJjMCIsImMxIiwicDAiLCJwMSIsImEiLCJiIiwiYyIpLG4ucHVzaCgiY2VsbDpmdW5jdGlvbiBjZWxsRnVuYygiLFMuam9pbigpLCIpeyIpO3ZhciBMPXMoci0xKTtuLnB1c2goImlmKHAwKXtiLnB1c2goIixMLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iWyIrdC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuInYiK3R9KSsiXSJ9KS5qb2luKCksIil9ZWxzZXtiLnB1c2goIixMLm1hcChmdW5jdGlvbih0KXt2YXIgZT10LnNsaWNlKCk7cmV0dXJuIGUucmV2ZXJzZSgpLCJbIitlLm1hcChmdW5jdGlvbih0KXtyZXR1cm4idiIrdH0pKyJdIn0pLmpvaW4oKSwiKX19fSk7ZnVuY3Rpb24gIixpLCIoYXJyYXksbGV2ZWwpe3ZhciB2ZXJ0cz1bXSxjZWxscz1bXTtjb250b3VyKGFycmF5LHZlcnRzLGNlbGxzLGxldmVsKTtyZXR1cm4ge3Bvc2l0aW9uczp2ZXJ0cyxjZWxsczpjZWxsc307fSByZXR1cm4gIixpLCI7Iik7Zm9yKHZhciB1PTA7dTxoLmxlbmd0aDsrK3Upbi5wdXNoKGhbdV0uam9pbigiIikpO3ZhciB6PW5ldyBGdW5jdGlvbigiZ2VuQ29udG91ciIsbi5qb2luKCIiKSk7cmV0dXJuIHooYSl9ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1sKHQsZSksbj1yLmxlbmd0aCxpPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKSxhPTA7bj5hOysrYSlpW2FdPVtyW2FdXSxvW2FdPVthXTtyZXR1cm57cG9zaXRpb25zOmksY2VsbHM6b319ZnVuY3Rpb24gbyh0LGUpe2lmKHQuZGltZW5zaW9uPD0wKXJldHVybntwb3NpdGlvbnM6W10sY2VsbHM6W119O2lmKDE9PT10LmRpbWVuc2lvbilyZXR1cm4gaSh0LGUpO3ZhciByPXQub3JkZXIuam9pbigpKyItIit0LmR0eXBlLG89dVtyXSxlPStlfHwwO3JldHVybiBvfHwobz11W3JdPW4odC5vcmRlcix0LmR0eXBlKSksbyh0LGUpfWUuZXhwb3J0cz1vO3ZhciBhPXQoIm5kYXJyYXktZXh0cmFjdC1jb250b3VyIikscz10KCJ0cmlhbmd1bGF0ZS1oeXBlcmN1YmUiKSxsPXQoInplcm8tY3Jvc3NpbmdzIiksdT17fX0seyJuZGFycmF5LWV4dHJhY3QtY29udG91ciI6NDY3LCJ0cmlhbmd1bGF0ZS1oeXBlcmN1YmUiOjQ3MiwiemVyby1jcm9zc2luZ3MiOjQ3NH1dLDQ3NjpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9dC5jZWxscyxyPXQucG9zaXRpb25zLG49bmV3IEZsb2F0MzJBcnJheSg2KmUubGVuZ3RoKSxpPTAsbz0wLGE9MDthPGUubGVuZ3RoOysrYSlmb3IodmFyIHM9ZVthXSxsPTA7Mz5sOysrbCl7dmFyIHU9cltzW2xdXTtuW2krK109dVswXSxuW2krK109dVsxXSsxLjQsbz1NYXRoLm1heCh1WzBdLG8pfXJldHVybntkYXRhOm4sc2hhcGU6b319ZnVuY3Rpb24gaSh0LGUpe3ZhciByPXNbdF07cnx8KHI9c1t0XT17IiAiOntkYXRhOm5ldyBGbG9hdDMyQXJyYXkoMCksc2hhcGU6LjJ9fSk7dmFyIGE9cltlXTtpZighYSlpZihlLmxlbmd0aDw9MXx8IS9cZC8udGVzdChlKSlhPXJbZV09bihvKGUse3RyaWFuZ2xlczohMCxmb250OnQsdGV4dEFsaWduOiJsZWZ0Iix0ZXh0QmFzZWxpbmU6ImFscGhhYmV0aWMifSkpO2Vsc2V7Zm9yKHZhciBsPWUuc3BsaXQoLyhcZHxccykvKSx1PW5ldyBBcnJheShsLmxlbmd0aCksYz0wLGg9MCxmPTA7ZjxsLmxlbmd0aDsrK2YpdVtmXT1pKHQsbFtmXSksYys9dVtmXS5kYXRhLmxlbmd0aCxoKz11W2ZdLnNoYXBlLGY+MCYmKGgrPS4wMik7Zm9yKHZhciBwPW5ldyBGbG9hdDMyQXJyYXkoYyksZD0wLG09LS41KmgsZj0wO2Y8dS5sZW5ndGg7KytmKXtmb3IodmFyIGc9dVtmXS5kYXRhLHY9MDt2PGcubGVuZ3RoO3YrPTIpcFtkKytdPWdbdl0rbSxwW2QrK109Z1t2KzFdO20rPXVbZl0uc2hhcGUrLjAyfWE9cltlXT17ZGF0YTpwLHNoYXBlOmh9fXJldHVybiBhfWUuZXhwb3J0cz1pO3ZhciBvPXQoInZlY3Rvcml6ZS10ZXh0IiksYT13aW5kb3d8fHIuZ2xvYmFsfHx7fSxzPWEuX19URVhUX0NBQ0hFfHx7fTthLl9fVEVYVF9DQUNIRT17fX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpKX0se19wcm9jZXNzOjU5LCJ2ZWN0b3JpemUtdGV4dCI6NDgzfV0sNDc3OltmdW5jdGlvbihlLHIsbil7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LHIpe2lmKHQ9dD90OiIiLHI9cnx8e30sdCBpbnN0YW5jZW9mIGUpcmV0dXJuIHQ7aWYoISh0aGlzIGluc3RhbmNlb2YgZSkpcmV0dXJuIG5ldyBlKHQscik7dmFyIGk9bih0KTt0aGlzLl9vcmlnaW5hbElucHV0PXQsdGhpcy5fcj1pLnIsdGhpcy5fZz1pLmcsdGhpcy5fYj1pLmIsdGhpcy5fYT1pLmEsdGhpcy5fcm91bmRBPVUoMTAwKnRoaXMuX2EpLzEwMCx0aGlzLl9mb3JtYXQ9ci5mb3JtYXR8fGkuZm9ybWF0LHRoaXMuX2dyYWRpZW50VHlwZT1yLmdyYWRpZW50VHlwZSx0aGlzLl9yPDEmJih0aGlzLl9yPVUodGhpcy5fcikpLHRoaXMuX2c8MSYmKHRoaXMuX2c9VSh0aGlzLl9nKSksdGhpcy5fYjwxJiYodGhpcy5fYj1VKHRoaXMuX2IpKSx0aGlzLl9vaz1pLm9rLHRoaXMuX3RjX2lkPU4rK31mdW5jdGlvbiBuKHQpe3ZhciBlPXtyOjAsZzowLGI6MH0scj0xLG49ITEsbz0hMTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PWoodCkpLCJvYmplY3QiPT10eXBlb2YgdCYmKHQuaGFzT3duUHJvcGVydHkoInIiKSYmdC5oYXNPd25Qcm9wZXJ0eSgiZyIpJiZ0Lmhhc093blByb3BlcnR5KCJiIik/KGU9aSh0LnIsdC5nLHQuYiksbj0hMCxvPSIlIj09PVN0cmluZyh0LnIpLnN1YnN0cigtMSk/InByZ2IiOiJyZ2IiKTp0Lmhhc093blByb3BlcnR5KCJoIikmJnQuaGFzT3duUHJvcGVydHkoInMiKSYmdC5oYXNPd25Qcm9wZXJ0eSgidiIpPyh0LnM9UCh0LnMpLHQudj1QKHQudiksZT1sKHQuaCx0LnMsdC52KSxuPSEwLG89ImhzdiIpOnQuaGFzT3duUHJvcGVydHkoImgiKSYmdC5oYXNPd25Qcm9wZXJ0eSgicyIpJiZ0Lmhhc093blByb3BlcnR5KCJsIikmJih0LnM9UCh0LnMpLHQubD1QKHQubCksZT1hKHQuaCx0LnMsdC5sKSxuPSEwLG89ImhzbCIpLHQuaGFzT3duUHJvcGVydHkoImEiKSYmKHI9dC5hKSkscj1BKHIpLHtvazpuLGZvcm1hdDp0LmZvcm1hdHx8byxyOlYoMjU1LHEoZS5yLDApKSxnOlYoMjU1LHEoZS5nLDApKSxiOlYoMjU1LHEoZS5iLDApKSxhOnJ9fWZ1bmN0aW9uIGkodCxlLHIpe3JldHVybntyOjI1NSpUKHQsMjU1KSxnOjI1NSpUKGUsMjU1KSxiOjI1NSpUKHIsMjU1KX19ZnVuY3Rpb24gbyh0LGUscil7dD1UKHQsMjU1KSxlPVQoZSwyNTUpLHI9VChyLDI1NSk7dmFyIG4saSxvPXEodCxlLHIpLGE9Vih0LGUscikscz0obythKS8yO2lmKG89PWEpbj1pPTA7ZWxzZXt2YXIgbD1vLWE7c3dpdGNoKGk9cz4uNT9sLygyLW8tYSk6bC8obythKSxvKXtjYXNlIHQ6bj0oZS1yKS9sKyhyPmU/NjowKTticmVhaztjYXNlIGU6bj0oci10KS9sKzI7YnJlYWs7Y2FzZSByOm49KHQtZSkvbCs0fW4vPTZ9cmV0dXJue2g6bixzOmksbDpzfX1mdW5jdGlvbiBhKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXtyZXR1cm4gMD5yJiYocis9MSkscj4xJiYoci09MSksMS82PnI/dCs2KihlLXQpKnI6LjU+cj9lOjIvMz5yP3QrKGUtdCkqKDIvMy1yKSo2OnR9dmFyIGksbyxhO2lmKHQ9VCh0LDM2MCksZT1UKGUsMTAwKSxyPVQociwxMDApLDA9PT1lKWk9bz1hPXI7ZWxzZXt2YXIgcz0uNT5yP3IqKDErZSk6citlLXIqZSxsPTIqci1zO2k9bihsLHMsdCsxLzMpLG89bihsLHMsdCksYT1uKGwscyx0LTEvMyl9cmV0dXJue3I6MjU1KmksZzoyNTUqbyxiOjI1NSphfX1mdW5jdGlvbiBzKHQsZSxyKXt0PVQodCwyNTUpLGU9VChlLDI1NSkscj1UKHIsMjU1KTt2YXIgbixpLG89cSh0LGUsciksYT1WKHQsZSxyKSxzPW8sbD1vLWE7aWYoaT0wPT09bz8wOmwvbyxvPT1hKW49MDtlbHNle3N3aXRjaChvKXtjYXNlIHQ6bj0oZS1yKS9sKyhyPmU/NjowKTticmVhaztjYXNlIGU6bj0oci10KS9sKzI7YnJlYWs7Y2FzZSByOm49KHQtZSkvbCs0fW4vPTZ9cmV0dXJue2g6bixzOmksdjpzfX1mdW5jdGlvbiBsKHQsZSxyKXt0PTYqVCh0LDM2MCksZT1UKGUsMTAwKSxyPVQociwxMDApO3ZhciBuPUIuZmxvb3IodCksaT10LW4sbz1yKigxLWUpLGE9ciooMS1pKmUpLHM9ciooMS0oMS1pKSplKSxsPW4lNix1PVtyLGEsbyxvLHMscl1bbF0sYz1bcyxyLHIsYSxvLG9dW2xdLGg9W28sbyxzLHIscixhXVtsXTtyZXR1cm57cjoyNTUqdSxnOjI1NSpjLGI6MjU1Kmh9fWZ1bmN0aW9uIHUodCxlLHIsbil7dmFyIGk9W0koVSh0KS50b1N0cmluZygxNikpLEkoVShlKS50b1N0cmluZygxNikpLEkoVShyKS50b1N0cmluZygxNikpXTtyZXR1cm4gbiYmaVswXS5jaGFyQXQoMCk9PWlbMF0uY2hhckF0KDEpJiZpWzFdLmNoYXJBdCgwKT09aVsxXS5jaGFyQXQoMSkmJmlbMl0uY2hhckF0KDApPT1pWzJdLmNoYXJBdCgxKT9pWzBdLmNoYXJBdCgwKStpWzFdLmNoYXJBdCgwKStpWzJdLmNoYXJBdCgwKTppLmpvaW4oIiIpfWZ1bmN0aW9uIGModCxlLHIsbil7dmFyIGk9W0koQyhuKSksSShVKHQpLnRvU3RyaW5nKDE2KSksSShVKGUpLnRvU3RyaW5nKDE2KSksSShVKHIpLnRvU3RyaW5nKDE2KSldO3JldHVybiBpLmpvaW4oIiIpfWZ1bmN0aW9uIGgodCxyKXtyPTA9PT1yPzA6cnx8MTA7dmFyIG49ZSh0KS50b0hzbCgpO3JldHVybiBuLnMtPXIvMTAwLG4ucz1FKG4ucyksZShuKX1mdW5jdGlvbiBmKHQscil7cj0wPT09cj8wOnJ8fDEwO3ZhciBuPWUodCkudG9Ic2woKTtyZXR1cm4gbi5zKz1yLzEwMCxuLnM9RShuLnMpLGUobil9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gZSh0KS5kZXNhdHVyYXRlKDEwMCl9ZnVuY3Rpb24gZCh0LHIpe3I9MD09PXI/MDpyfHwxMDt2YXIgbj1lKHQpLnRvSHNsKCk7cmV0dXJuIG4ubCs9ci8xMDAsbi5sPUUobi5sKSxlKG4pfWZ1bmN0aW9uIG0odCxyKXtyPTA9PT1yPzA6cnx8MTA7dmFyIG49ZSh0KS50b1JnYigpO3JldHVybiBuLnI9cSgwLFYoMjU1LG4uci1VKDI1NSotKHIvMTAwKSkpKSxuLmc9cSgwLFYoMjU1LG4uZy1VKDI1NSotKHIvMTAwKSkpKSxuLmI9cSgwLFYoMjU1LG4uYi1VKDI1NSotKHIvMTAwKSkpKSxlKG4pfWZ1bmN0aW9uIGcodCxyKXtyPTA9PT1yPzA6cnx8MTA7dmFyIG49ZSh0KS50b0hzbCgpO3JldHVybiBuLmwtPXIvMTAwLG4ubD1FKG4ubCksZShuKX1mdW5jdGlvbiB2KHQscil7dmFyIG49ZSh0KS50b0hzbCgpLGk9KFUobi5oKStyKSUzNjA7cmV0dXJuIG4uaD0wPmk/MzYwK2k6aSxlKG4pfWZ1bmN0aW9uIHkodCl7dmFyIHI9ZSh0KS50b0hzbCgpO3JldHVybiByLmg9KHIuaCsxODApJTM2MCxlKHIpfWZ1bmN0aW9uIGIodCl7dmFyIHI9ZSh0KS50b0hzbCgpLG49ci5oO3JldHVybltlKHQpLGUoe2g6KG4rMTIwKSUzNjAsczpyLnMsbDpyLmx9KSxlKHtoOihuKzI0MCklMzYwLHM6ci5zLGw6ci5sfSldfWZ1bmN0aW9uIHgodCl7dmFyIHI9ZSh0KS50b0hzbCgpLG49ci5oO3JldHVybltlKHQpLGUoe2g6KG4rOTApJTM2MCxzOnIucyxsOnIubH0pLGUoe2g6KG4rMTgwKSUzNjAsczpyLnMsbDpyLmx9KSxlKHtoOihuKzI3MCklMzYwLHM6ci5zLGw6ci5sfSldfWZ1bmN0aW9uIF8odCl7dmFyIHI9ZSh0KS50b0hzbCgpLG49ci5oO3JldHVybltlKHQpLGUoe2g6KG4rNzIpJTM2MCxzOnIucyxsOnIubH0pLGUoe2g6KG4rMjE2KSUzNjAsczpyLnMsbDpyLmx9KV19ZnVuY3Rpb24gdyh0LHIsbil7cj1yfHw2LG49bnx8MzA7dmFyIGk9ZSh0KS50b0hzbCgpLG89MzYwL24sYT1bZSh0KV07Zm9yKGkuaD0oaS5oLShvKnI+PjEpKzcyMCklMzYwOy0tcjspaS5oPShpLmgrbyklMzYwLGEucHVzaChlKGkpKTtyZXR1cm4gYX1mdW5jdGlvbiBNKHQscil7cj1yfHw2O2Zvcih2YXIgbj1lKHQpLnRvSHN2KCksaT1uLmgsbz1uLnMsYT1uLnYscz1bXSxsPTEvcjtyLS07KXMucHVzaChlKHtoOmksczpvLHY6YX0pKSxhPShhK2wpJTE7cmV0dXJuIHN9ZnVuY3Rpb24gayh0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdCl0Lmhhc093blByb3BlcnR5KHIpJiYoZVt0W3JdXT1yKTtyZXR1cm4gZX1mdW5jdGlvbiBBKHQpe3JldHVybiB0PXBhcnNlRmxvYXQodCksKGlzTmFOKHQpfHwwPnR8fHQ+MSkmJih0PTEpLHR9ZnVuY3Rpb24gVCh0LGUpe0wodCkmJih0PSIxMDAlIik7dmFyIHI9eih0KTtyZXR1cm4gdD1WKGUscSgwLHBhcnNlRmxvYXQodCkpKSxyJiYodD1wYXJzZUludCh0KmUsMTApLzEwMCksQi5hYnModC1lKTwxZS02PzE6dCVlL3BhcnNlRmxvYXQoZSl9ZnVuY3Rpb24gRSh0KXtyZXR1cm4gVigxLHEoMCx0KSl9ZnVuY3Rpb24gUyh0KXtyZXR1cm4gcGFyc2VJbnQodCwxNil9ZnVuY3Rpb24gTCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi0xIT10LmluZGV4T2YoIi4iKSYmMT09PXBhcnNlRmxvYXQodCl9ZnVuY3Rpb24geih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi0xIT10LmluZGV4T2YoIiUiKX1mdW5jdGlvbiBJKHQpe3JldHVybiAxPT10Lmxlbmd0aD8iMCIrdDoiIit0fWZ1bmN0aW9uIFAodCl7cmV0dXJuIDE+PXQmJih0PTEwMCp0KyIlIiksdH1mdW5jdGlvbiBDKHQpe3JldHVybiBNYXRoLnJvdW5kKDI1NSpwYXJzZUZsb2F0KHQpKS50b1N0cmluZygxNil9ZnVuY3Rpb24gUih0KXtyZXR1cm4gUyh0KS8yNTV9ZnVuY3Rpb24gaih0KXt0PXQucmVwbGFjZShPLCIiKS5yZXBsYWNlKEYsIiIpLnRvTG93ZXJDYXNlKCk7dmFyIGU9ITE7aWYoSFt0XSl0PUhbdF0sZT0hMDtlbHNlIGlmKCJ0cmFuc3BhcmVudCI9PXQpcmV0dXJue3I6MCxnOjAsYjowLGE6MCxmb3JtYXQ6Im5hbWUifTt2YXIgcjtyZXR1cm4ocj1ZLnJnYi5leGVjKHQpKT97cjpyWzFdLGc6clsyXSxiOnJbM119OihyPVkucmdiYS5leGVjKHQpKT97cjpyWzFdLGc6clsyXSxiOnJbM10sYTpyWzRdfToocj1ZLmhzbC5leGVjKHQpKT97aDpyWzFdLHM6clsyXSxsOnJbM119OihyPVkuaHNsYS5leGVjKHQpKT97aDpyWzFdLHM6clsyXSxsOnJbM10sYTpyWzRdfToocj1ZLmhzdi5leGVjKHQpKT97aDpyWzFdLHM6clsyXSx2OnJbM119OihyPVkuaHN2YS5leGVjKHQpKT97aDpyWzFdLHM6clsyXSx2OnJbM10sYTpyWzRdfToocj1ZLmhleDguZXhlYyh0KSk/e2E6UihyWzFdKSxyOlMoclsyXSksZzpTKHJbM10pLGI6UyhyWzRdKSxmb3JtYXQ6ZT8ibmFtZSI6ImhleDgifToocj1ZLmhleDYuZXhlYyh0KSk/e3I6UyhyWzFdKSxnOlMoclsyXSksYjpTKHJbM10pLGZvcm1hdDplPyJuYW1lIjoiaGV4In06KHI9WS5oZXgzLmV4ZWModCkpP3tyOlMoclsxXSsiIityWzFdKSxnOlMoclsyXSsiIityWzJdKSxiOlMoclszXSsiIityWzNdKSxmb3JtYXQ6ZT8ibmFtZSI6ImhleCJ9OiExfWZ1bmN0aW9uIEQodCl7dmFyIGUscjtyZXR1cm4gdD10fHx7bGV2ZWw6IkFBIixzaXplOiJzbWFsbCJ9LGU9KHQubGV2ZWx8fCJBQSIpLnRvVXBwZXJDYXNlKCkscj0odC5zaXplfHwic21hbGwiKS50b0xvd2VyQ2FzZSgpLCJBQSIhPT1lJiYiQUFBIiE9PWUmJihlPSJBQSIpLCJzbWFsbCIhPT1yJiYibGFyZ2UiIT09ciYmKHI9InNtYWxsIikse2xldmVsOmUsc2l6ZTpyfX12YXIgTz0vXlxzKy8sRj0vXHMrJC8sTj0wLEI9TWF0aCxVPUIucm91bmQsVj1CLm1pbixxPUIubWF4LEc9Qi5yYW5kb207ZS5wcm90b3R5cGU9e2lzRGFyazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJyaWdodG5lc3MoKTwxMjh9LGlzTGlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0RhcmsoKX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9va30sZ2V0T3JpZ2luYWxJbnB1dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcmlnaW5hbElucHV0fSxnZXRGb3JtYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm9ybWF0fSxnZXRBbHBoYTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hfSxnZXRCcmlnaHRuZXNzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b1JnYigpO3JldHVybigyOTkqdC5yKzU4Nyp0LmcrMTE0KnQuYikvMWUzfSxnZXRMdW1pbmFuY2U6ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbixpLG8sYT10aGlzLnRvUmdiKCk7cmV0dXJuIHQ9YS5yLzI1NSxlPWEuZy8yNTUscj1hLmIvMjU1LG49LjAzOTI4Pj10P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KSxpPS4wMzkyOD49ZT9lLzEyLjkyOk1hdGgucG93KChlKy4wNTUpLzEuMDU1LDIuNCksbz0uMDM5Mjg+PXI/ci8xMi45MjpNYXRoLnBvdygocisuMDU1KS8xLjA1NSwyLjQpLC4yMTI2Km4rLjcxNTIqaSsuMDcyMipvfSxzZXRBbHBoYTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYT1BKHQpLHRoaXMuX3JvdW5kQT1VKDEwMCp0aGlzLl9hKS8xMDAsdGhpc30sdG9Ic3Y6ZnVuY3Rpb24oKXt2YXIgdD1zKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDozNjAqdC5oLHM6dC5zLHY6dC52LGE6dGhpcy5fYX19LHRvSHN2U3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9cyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiksZT1VKDM2MCp0LmgpLHI9VSgxMDAqdC5zKSxuPVUoMTAwKnQudik7cmV0dXJuIDE9PXRoaXMuX2E/ImhzdigiK2UrIiwgIityKyIlLCAiK24rIiUpIjoiaHN2YSgiK2UrIiwgIityKyIlLCAiK24rIiUsICIrdGhpcy5fcm91bmRBKyIpIn0sdG9Ic2w6ZnVuY3Rpb24oKXt2YXIgdD1vKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKTtyZXR1cm57aDozNjAqdC5oLHM6dC5zLGw6dC5sLGE6dGhpcy5fYX19LHRvSHNsU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9byh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiksZT1VKDM2MCp0LmgpLHI9VSgxMDAqdC5zKSxuPVUoMTAwKnQubCk7cmV0dXJuIDE9PXRoaXMuX2E/ImhzbCgiK2UrIiwgIityKyIlLCAiK24rIiUpIjoiaHNsYSgiK2UrIiwgIityKyIlLCAiK24rIiUsICIrdGhpcy5fcm91bmRBKyIpIn0sdG9IZXg6ZnVuY3Rpb24odCl7cmV0dXJuIHUodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsdCl9LHRvSGV4U3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiIjIit0aGlzLnRvSGV4KHQpfSx0b0hleDg6ZnVuY3Rpb24oKXtyZXR1cm4gYyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0aGlzLl9hKX0sdG9IZXg4U3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIiMiK3RoaXMudG9IZXg4KCl9LHRvUmdiOmZ1bmN0aW9uKCl7cmV0dXJue3I6VSh0aGlzLl9yKSxnOlUodGhpcy5fZyksYjpVKHRoaXMuX2IpLGE6dGhpcy5fYX19LHRvUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK1UodGhpcy5fcikrIiwgIitVKHRoaXMuX2cpKyIsICIrVSh0aGlzLl9iKSsiKSI6InJnYmEoIitVKHRoaXMuX3IpKyIsICIrVSh0aGlzLl9nKSsiLCAiK1UodGhpcy5fYikrIiwgIit0aGlzLl9yb3VuZEErIikifSx0b1BlcmNlbnRhZ2VSZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjpVKDEwMCpUKHRoaXMuX3IsMjU1KSkrIiUiLGc6VSgxMDAqVCh0aGlzLl9nLDI1NSkpKyIlIixiOlUoMTAwKlQodGhpcy5fYiwyNTUpKSsiJSIsYTp0aGlzLl9hfX0sdG9QZXJjZW50YWdlUmdiU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PXRoaXMuX2E/InJnYigiK1UoMTAwKlQodGhpcy5fciwyNTUpKSsiJSwgIitVKDEwMCpUKHRoaXMuX2csMjU1KSkrIiUsICIrVSgxMDAqVCh0aGlzLl9iLDI1NSkpKyIlKSI6InJnYmEoIitVKDEwMCpUKHRoaXMuX3IsMjU1KSkrIiUsICIrVSgxMDAqVCh0aGlzLl9nLDI1NSkpKyIlLCAiK1UoMTAwKlQodGhpcy5fYiwyNTUpKSsiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b05hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX2E/InRyYW5zcGFyZW50Ijp0aGlzLl9hPDE/ITE6WFt1KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLCEwKV18fCExfSx0b0ZpbHRlcjpmdW5jdGlvbih0KXt2YXIgcj0iIyIrYyh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0aGlzLl9hKSxuPXIsaT10aGlzLl9ncmFkaWVudFR5cGU/IkdyYWRpZW50VHlwZSA9IDEsICI6IiI7aWYodCl7dmFyIG89ZSh0KTtuPW8udG9IZXg4U3RyaW5nKCl9cmV0dXJuInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCgiK2krInN0YXJ0Q29sb3JzdHI9IityKyIsZW5kQ29sb3JzdHI9IituKyIpIn0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9ISF0O3Q9dHx8dGhpcy5fZm9ybWF0O3ZhciByPSExLG49dGhpcy5fYTwxJiZ0aGlzLl9hPj0wLGk9IWUmJm4mJigiaGV4Ij09PXR8fCJoZXg2Ij09PXR8fCJoZXgzIj09PXR8fCJuYW1lIj09PXQpO3JldHVybiBpPyJuYW1lIj09PXQmJjA9PT10aGlzLl9hP3RoaXMudG9OYW1lKCk6dGhpcy50b1JnYlN0cmluZygpOigicmdiIj09PXQmJihyPXRoaXMudG9SZ2JTdHJpbmcoKSksInByZ2IiPT09dCYmKHI9dGhpcy50b1BlcmNlbnRhZ2VSZ2JTdHJpbmcoKSksImhleCIhPT10JiYiaGV4NiIhPT10fHwocj10aGlzLnRvSGV4U3RyaW5nKCkpLCJoZXgzIj09PXQmJihyPXRoaXMudG9IZXhTdHJpbmcoITApKSwiaGV4OCI9PT10JiYocj10aGlzLnRvSGV4OFN0cmluZygpKSwibmFtZSI9PT10JiYocj10aGlzLnRvTmFtZSgpKSwiaHNsIj09PXQmJihyPXRoaXMudG9Ic2xTdHJpbmcoKSksImhzdiI9PT10JiYocj10aGlzLnRvSHN2U3RyaW5nKCkpLHJ8fHRoaXMudG9IZXhTdHJpbmcoKSl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcy50b1N0cmluZygpKX0sX2FwcGx5TW9kaWZpY2F0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5hcHBseShudWxsLFt0aGlzXS5jb25jYXQoW10uc2xpY2UuY2FsbChlKSkpO3JldHVybiB0aGlzLl9yPXIuX3IsdGhpcy5fZz1yLl9nLHRoaXMuX2I9ci5fYix0aGlzLnNldEFscGhhKHIuX2EpLHRoaXN9LGxpZ2h0ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oZCxhcmd1bWVudHMpfSxicmlnaHRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihtLGFyZ3VtZW50cyl9LGRhcmtlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihnLGFyZ3VtZW50cyl9LGRlc2F0dXJhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24oaCxhcmd1bWVudHMpfSxzYXR1cmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihmLGFyZ3VtZW50cyl9LGdyZXlzY2FsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihwLGFyZ3VtZW50cyl9LHNwaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlNb2RpZmljYXRpb24odixhcmd1bWVudHMpfSxfYXBwbHlDb21iaW5hdGlvbjpmdW5jdGlvbih0LGUpe3JldHVybiB0LmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGUpKSl9LGFuYWxvZ291czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHcsYXJndW1lbnRzKX0sY29tcGxlbWVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKHksYXJndW1lbnRzKX0sbW9ub2Nocm9tYXRpYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKE0sYXJndW1lbnRzKX0sc3BsaXRjb21wbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oXyxhcmd1bWVudHMpfSx0cmlhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseUNvbWJpbmF0aW9uKGIsYXJndW1lbnRzKX0sdGV0cmFkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oeCxhcmd1bWVudHMpfX0sZS5mcm9tUmF0aW89ZnVuY3Rpb24odCxyKXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe3ZhciBuPXt9O2Zvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJigiYSI9PT1pP25baV09dFtpXTpuW2ldPVAodFtpXSkpO3Q9bn1yZXR1cm4gZSh0LHIpfSxlLmVxdWFscz1mdW5jdGlvbih0LHIpe3JldHVybiB0JiZyP2UodCkudG9SZ2JTdHJpbmcoKT09ZShyKS50b1JnYlN0cmluZygpOiExfSxlLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiBlLmZyb21SYXRpbyh7cjpHKCksZzpHKCksYjpHKCl9KX0sZS5taXg9ZnVuY3Rpb24odCxyLG4pe249MD09PW4/MDpufHw1MDt2YXIgaSxvPWUodCkudG9SZ2IoKSxhPWUocikudG9SZ2IoKSxzPW4vMTAwLGw9MipzLTEsdT1hLmEtby5hO2k9bCp1PT0tMT9sOihsK3UpLygxK2wqdSksaT0oaSsxKS8yO3ZhciBjPTEtaSxoPXtyOmEucippK28ucipjLGc6YS5nKmkrby5nKmMsYjphLmIqaStvLmIqYyxhOmEuYSpzK28uYSooMS1zKX07cmV0dXJuIGUoaCl9LGUucmVhZGFiaWxpdHk9ZnVuY3Rpb24odCxyKXt2YXIgbj1lKHQpLGk9ZShyKTtyZXR1cm4oTWF0aC5tYXgobi5nZXRMdW1pbmFuY2UoKSxpLmdldEx1bWluYW5jZSgpKSsuMDUpLyhNYXRoLm1pbihuLmdldEx1bWluYW5jZSgpLGkuZ2V0THVtaW5hbmNlKCkpKy4wNSl9LGUuaXNSZWFkYWJsZT1mdW5jdGlvbih0LHIsbil7dmFyIGksbyxhPWUucmVhZGFiaWxpdHkodCxyKTtzd2l0Y2gobz0hMSxpPUQobiksaS5sZXZlbCtpLnNpemUpe2Nhc2UiQUFzbWFsbCI6Y2FzZSJBQUFsYXJnZSI6bz1hPj00LjU7YnJlYWs7Y2FzZSJBQWxhcmdlIjpvPWE+PTM7YnJlYWs7Y2FzZSJBQUFzbWFsbCI6bz1hPj03fXJldHVybiBvfSxlLm1vc3RSZWFkYWJsZT1mdW5jdGlvbih0LHIsbil7dmFyIGksbyxhLHMsbD1udWxsLHU9MDtuPW58fHt9LG89bi5pbmNsdWRlRmFsbGJhY2tDb2xvcnMsYT1uLmxldmVsLHM9bi5zaXplO2Zvcih2YXIgYz0wO2M8ci5sZW5ndGg7YysrKWk9ZS5yZWFkYWJpbGl0eSh0LHJbY10pLGk+dSYmKHU9aSxsPWUocltjXSkpO3JldHVybiBlLmlzUmVhZGFibGUodCxsLHtsZXZlbDphLHNpemU6c30pfHwhbz9sOihuLmluY2x1ZGVGYWxsYmFja0NvbG9ycz0hMSxlLm1vc3RSZWFkYWJsZSh0LFsiI2ZmZiIsIiMwMDAiXSxuKSl9O3ZhciBIPWUubmFtZXM9e2FsaWNlYmx1ZToiZjBmOGZmIixhbnRpcXVld2hpdGU6ImZhZWJkNyIsYXF1YToiMGZmIixhcXVhbWFyaW5lOiI3ZmZmZDQiLGF6dXJlOiJmMGZmZmYiLGJlaWdlOiJmNWY1ZGMiLGJpc3F1ZToiZmZlNGM0IixibGFjazoiMDAwIixibGFuY2hlZGFsbW9uZDoiZmZlYmNkIixibHVlOiIwMGYiLGJsdWV2aW9sZXQ6IjhhMmJlMiIsYnJvd246ImE1MmEyYSIsYnVybHl3b29kOiJkZWI4ODciLGJ1cm50c2llbm5hOiJlYTdlNWQiLGNhZGV0Ymx1ZToiNWY5ZWEwIixjaGFydHJldXNlOiI3ZmZmMDAiLGNob2NvbGF0ZToiZDI2OTFlIixjb3JhbDoiZmY3ZjUwIixjb3JuZmxvd2VyYmx1ZToiNjQ5NWVkIixjb3Juc2lsazoiZmZmOGRjIixjcmltc29uOiJkYzE0M2MiLGN5YW46IjBmZiIsZGFya2JsdWU6IjAwMDA4YiIsZGFya2N5YW46IjAwOGI4YiIsZGFya2dvbGRlbnJvZDoiYjg4NjBiIixkYXJrZ3JheToiYTlhOWE5IixkYXJrZ3JlZW46IjAwNjQwMCIsZGFya2dyZXk6ImE5YTlhOSIsZGFya2toYWtpOiJiZGI3NmIiLGRhcmttYWdlbnRhOiI4YjAwOGIiLGRhcmtvbGl2ZWdyZWVuOiI1NTZiMmYiLGRhcmtvcmFuZ2U6ImZmOGMwMCIsZGFya29yY2hpZDoiOTkzMmNjIixkYXJrcmVkOiI4YjAwMDAiLGRhcmtzYWxtb246ImU5OTY3YSIsZGFya3NlYWdyZWVuOiI4ZmJjOGYiLGRhcmtzbGF0ZWJsdWU6IjQ4M2Q4YiIsZGFya3NsYXRlZ3JheToiMmY0ZjRmIixkYXJrc2xhdGVncmV5OiIyZjRmNGYiLGRhcmt0dXJxdW9pc2U6IjAwY2VkMSIsZGFya3Zpb2xldDoiOTQwMGQzIixkZWVwcGluazoiZmYxNDkzIixkZWVwc2t5Ymx1ZToiMDBiZmZmIixkaW1ncmF5OiI2OTY5NjkiLGRpbWdyZXk6IjY5Njk2OSIsZG9kZ2VyYmx1ZToiMWU5MGZmIixmaXJlYnJpY2s6ImIyMjIyMiIsZmxvcmFsd2hpdGU6ImZmZmFmMCIsZm9yZXN0Z3JlZW46IjIyOGIyMiIsZnVjaHNpYToiZjBmIixnYWluc2Jvcm86ImRjZGNkYyIsZ2hvc3R3aGl0ZToiZjhmOGZmIixnb2xkOiJmZmQ3MDAiLGdvbGRlbnJvZDoiZGFhNTIwIixncmF5OiI4MDgwODAiLGdyZWVuOiIwMDgwMDAiLGdyZWVueWVsbG93OiJhZGZmMmYiLGdyZXk6IjgwODA4MCIsaG9uZXlkZXc6ImYwZmZmMCIsaG90cGluazoiZmY2OWI0IixpbmRpYW5yZWQ6ImNkNWM1YyIsaW5kaWdvOiI0YjAwODIiLGl2b3J5OiJmZmZmZjAiLGtoYWtpOiJmMGU2OGMiLGxhdmVuZGVyOiJlNmU2ZmEiLGxhdmVuZGVyYmx1c2g6ImZmZjBmNSIsbGF3bmdyZWVuOiI3Y2ZjMDAiLGxlbW9uY2hpZmZvbjoiZmZmYWNkIixsaWdodGJsdWU6ImFkZDhlNiIsbGlnaHRjb3JhbDoiZjA4MDgwIixsaWdodGN5YW46ImUwZmZmZiIsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6ImZhZmFkMiIsbGlnaHRncmF5OiJkM2QzZDMiLGxpZ2h0Z3JlZW46IjkwZWU5MCIsbGlnaHRncmV5OiJkM2QzZDMiLGxpZ2h0cGluazoiZmZiNmMxIixsaWdodHNhbG1vbjoiZmZhMDdhIixsaWdodHNlYWdyZWVuOiIyMGIyYWEiLGxpZ2h0c2t5Ymx1ZToiODdjZWZhIixsaWdodHNsYXRlZ3JheToiNzg5IixsaWdodHNsYXRlZ3JleToiNzg5IixsaWdodHN0ZWVsYmx1ZToiYjBjNGRlIixsaWdodHllbGxvdzoiZmZmZmUwIixsaW1lOiIwZjAiLGxpbWVncmVlbjoiMzJjZDMyIixsaW5lbjoiZmFmMGU2IixtYWdlbnRhOiJmMGYiLG1hcm9vbjoiODAwMDAwIixtZWRpdW1hcXVhbWFyaW5lOiI2NmNkYWEiLG1lZGl1bWJsdWU6IjAwMDBjZCIsbWVkaXVtb3JjaGlkOiJiYTU1ZDMiLG1lZGl1bXB1cnBsZToiOTM3MGRiIixtZWRpdW1zZWFncmVlbjoiM2NiMzcxIixtZWRpdW1zbGF0ZWJsdWU6IjdiNjhlZSIsbWVkaXVtc3ByaW5nZ3JlZW46IjAwZmE5YSIsbWVkaXVtdHVycXVvaXNlOiI0OGQxY2MiLG1lZGl1bXZpb2xldHJlZDoiYzcxNTg1IixtaWRuaWdodGJsdWU6IjE5MTk3MCIsbWludGNyZWFtOiJmNWZmZmEiLG1pc3R5cm9zZToiZmZlNGUxIixtb2NjYXNpbjoiZmZlNGI1IixuYXZham93aGl0ZToiZmZkZWFkIixuYXZ5OiIwMDAwODAiLG9sZGxhY2U6ImZkZjVlNiIsb2xpdmU6IjgwODAwMCIsb2xpdmVkcmFiOiI2YjhlMjMiLG9yYW5nZToiZmZhNTAwIixvcmFuZ2VyZWQ6ImZmNDUwMCIsb3JjaGlkOiJkYTcwZDYiLHBhbGVnb2xkZW5yb2Q6ImVlZThhYSIscGFsZWdyZWVuOiI5OGZiOTgiLHBhbGV0dXJxdW9pc2U6ImFmZWVlZSIscGFsZXZpb2xldHJlZDoiZGI3MDkzIixwYXBheWF3aGlwOiJmZmVmZDUiLHBlYWNocHVmZjoiZmZkYWI5IixwZXJ1OiJjZDg1M2YiLHBpbms6ImZmYzBjYiIscGx1bToiZGRhMGRkIixwb3dkZXJibHVlOiJiMGUwZTYiLHB1cnBsZToiODAwMDgwIixyZWJlY2NhcHVycGxlOiI2NjMzOTkiLHJlZDoiZjAwIixyb3N5YnJvd246ImJjOGY4ZiIscm95YWxibHVlOiI0MTY5ZTEiLHNhZGRsZWJyb3duOiI4YjQ1MTMiLHNhbG1vbjoiZmE4MDcyIixzYW5keWJyb3duOiJmNGE0NjAiLHNlYWdyZWVuOiIyZThiNTciLHNlYXNoZWxsOiJmZmY1ZWUiLHNpZW5uYToiYTA1MjJkIixzaWx2ZXI6ImMwYzBjMCIsc2t5Ymx1ZToiODdjZWViIixzbGF0ZWJsdWU6IjZhNWFjZCIsc2xhdGVncmF5OiI3MDgwOTAiLHNsYXRlZ3JleToiNzA4MDkwIixzbm93OiJmZmZhZmEiLHNwcmluZ2dyZWVuOiIwMGZmN2YiLHN0ZWVsYmx1ZToiNDY4MmI0Iix0YW46ImQyYjQ4YyIsdGVhbDoiMDA4MDgwIix0aGlzdGxlOiJkOGJmZDgiLHRvbWF0bzoiZmY2MzQ3Iix0dXJxdW9pc2U6IjQwZTBkMCIsdmlvbGV0OiJlZTgyZWUiLHdoZWF0OiJmNWRlYjMiLHdoaXRlOiJmZmYiLHdoaXRlc21va2U6ImY1ZjVmNSIseWVsbG93OiJmZjAiLHllbGxvd2dyZWVuOiI5YWNkMzIifSxYPWUuaGV4TmFtZXM9ayhIKSxZPWZ1bmN0aW9uKCl7dmFyIHQ9IlstXFwrXT9cXGQrJT8iLGU9IlstXFwrXT9cXGQqXFwuXFxkKyU/IixyPSIoPzoiK2UrIil8KD86Iit0KyIpIixuPSJbXFxzfFxcKF0rKCIrcisiKVssfFxcc10rKCIrcisiKVssfFxcc10rKCIrcisiKVxccypcXCk/IixpPSJbXFxzfFxcKF0rKCIrcisiKVssfFxcc10rKCIrcisiKVssfFxcc10rKCIrcisiKVssfFxcc10rKCIrcisiKVxccypcXCk/IjtyZXR1cm57cmdiOm5ldyBSZWdFeHAoInJnYiIrbikscmdiYTpuZXcgUmVnRXhwKCJyZ2JhIitpKSxoc2w6bmV3IFJlZ0V4cCgiaHNsIituKSxoc2xhOm5ldyBSZWdFeHAoImhzbGEiK2kpLGhzdjpuZXcgUmVnRXhwKCJoc3YiK24pLGhzdmE6bmV3IFJlZ0V4cCgiaHN2YSIraSksaGV4MzovXiM/KFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4NjovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfX0oKTsidW5kZWZpbmVkIiE9dHlwZW9mIHImJnIuZXhwb3J0cz9yLmV4cG9ydHM9ZToiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hbWQ/dChmdW5jdGlvbigpe3JldHVybiBlfSk6d2luZG93LnRpbnljb2xvcj1lfSgpfSx7fV0sNDc4OltmdW5jdGlvbihlLHIsbil7IWZ1bmN0aW9uKGUsaSl7Im9iamVjdCI9PXR5cGVvZiBuJiYidW5kZWZpbmVkIiE9dHlwZW9mIHI/aShuKToiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5hbWQ/dChbImV4cG9ydHMiXSxpKTppKGUudG9wb2pzb249e30pfSh0aGlzLGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKCl7fWZ1bmN0aW9uIHIodCl7aWYoIXQpcmV0dXJuIGU7dmFyIHIsbixpPXQuc2NhbGVbMF0sbz10LnNjYWxlWzFdLGE9dC50cmFuc2xhdGVbMF0scz10LnRyYW5zbGF0ZVsxXTtyZXR1cm4gZnVuY3Rpb24odCxlKXtlfHwocj1uPTApLHRbMF09KHIrPXRbMF0pKmkrYSx0WzFdPShuKz10WzFdKSpvK3N9fWZ1bmN0aW9uIG4odCl7aWYoIXQpcmV0dXJuIGU7dmFyIHIsbixpPXQuc2NhbGVbMF0sbz10LnNjYWxlWzFdLGE9dC50cmFuc2xhdGVbMF0scz10LnRyYW5zbGF0ZVsxXTtyZXR1cm4gZnVuY3Rpb24odCxlKXtlfHwocj1uPTApO3ZhciBsPSh0WzBdLWEpL2l8MCx1PSh0WzFdLXMpL298MDt0WzBdPWwtcix0WzFdPXUtbixyPWwsbj11fX1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByLG49dC5sZW5ndGgsaT1uLWU7aTwtLW47KXI9dFtpXSx0W2krK109dFtuXSx0W25dPXJ9ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGg7bj5yOyl7dmFyIGk9cituPj4+MTt0W2ldPGU/cj1pKzE6bj1pfXJldHVybiByfWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4iR2VvbWV0cnlDb2xsZWN0aW9uIj09PWUudHlwZT97dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOmUuZ2VvbWV0cmllcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHModCxlKX0pfTpzKHQsZSl9ZnVuY3Rpb24gcyh0LGUpe3ZhciByPXt0eXBlOiJGZWF0dXJlIixpZDplLmlkLHByb3BlcnRpZXM6ZS5wcm9wZXJ0aWVzfHx7fSxnZW9tZXRyeTpsKHQsZSl9O3JldHVybiBudWxsPT1lLmlkJiZkZWxldGUgci5pZCxyfWZ1bmN0aW9uIGwodCxlKXtmdW5jdGlvbiBuKHQsZSl7ZS5sZW5ndGgmJmUucG9wKCk7Zm9yKHZhciByLG49aFswPnQ/fnQ6dF0sbz0wLGE9bi5sZW5ndGg7YT5vOysrbyllLnB1c2gocj1uW29dLnNsaWNlKCkpLGMocixvKTswPnQmJmkoZSxhKX1mdW5jdGlvbiBvKHQpe3JldHVybiB0PXQuc2xpY2UoKSxjKHQsMCksdH1mdW5jdGlvbiBhKHQpe2Zvcih2YXIgZT1bXSxyPTAsaT10Lmxlbmd0aDtpPnI7KytyKW4odFtyXSxlKTtyZXR1cm4gZS5sZW5ndGg8MiYmZS5wdXNoKGVbMF0uc2xpY2UoKSksZX1mdW5jdGlvbiBzKHQpe2Zvcih2YXIgZT1hKHQpO2UubGVuZ3RoPDQ7KWUucHVzaChlWzBdLnNsaWNlKCkpO3JldHVybiBlfWZ1bmN0aW9uIGwodCl7cmV0dXJuIHQubWFwKHMpfWZ1bmN0aW9uIHUodCl7dmFyIGU9dC50eXBlO3JldHVybiJHZW9tZXRyeUNvbGxlY3Rpb24iPT09ZT97dHlwZTplLGdlb21ldHJpZXM6dC5nZW9tZXRyaWVzLm1hcCh1KX06ZSBpbiBmP3t0eXBlOmUsY29vcmRpbmF0ZXM6ZltlXSh0KX06bnVsbH12YXIgYz1yKHQudHJhbnNmb3JtKSxoPXQuYXJjcyxmPXtQb2ludDpmdW5jdGlvbih0KXtyZXR1cm4gbyh0LmNvb3JkaW5hdGVzKX0sTXVsdGlQb2ludDpmdW5jdGlvbih0KXtyZXR1cm4gdC5jb29yZGluYXRlcy5tYXAobyl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuIGEodC5hcmNzKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiB0LmFyY3MubWFwKGEpfSxQb2x5Z29uOmZ1bmN0aW9uKHQpe3JldHVybiBsKHQuYXJjcyl9LE11bHRpUG9seWdvbjpmdW5jdGlvbih0KXtyZXR1cm4gdC5hcmNzLm1hcChsKX19O3JldHVybiB1KGUpfWZ1bmN0aW9uIHUodCxlKXtmdW5jdGlvbiByKGUpe3ZhciByLG49dC5hcmNzWzA+ZT9+ZTplXSxpPW5bMF07cmV0dXJuIHQudHJhbnNmb3JtPyhyPVswLDBdLG4uZm9yRWFjaChmdW5jdGlvbih0KXtyWzBdKz10WzBdLHJbMV0rPXRbMV19KSk6cj1uW24ubGVuZ3RoLTFdLDA+ZT9bcixpXTpbaSxyXX1mdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByIGluIHQpe3ZhciBuPXRbcl07ZGVsZXRlIGVbbi5zdGFydF0sZGVsZXRlIG4uc3RhcnQsZGVsZXRlIG4uZW5kLG4uZm9yRWFjaChmdW5jdGlvbih0KXtpWzA+dD9+dDp0XT0xfSkscy5wdXNoKG4pfX12YXIgaT17fSxvPXt9LGE9e30scz1bXSxsPS0xO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24ocixuKXt2YXIgaSxvPXQuYXJjc1swPnI/fnI6cl07by5sZW5ndGg8MyYmIW9bMV1bMF0mJiFvWzFdWzFdJiYoaT1lWysrbF0sZVtsXT1yLGVbbl09aSl9KSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGUsbixpPXIodCkscz1pWzBdLGw9aVsxXTtpZihlPWFbc10paWYoZGVsZXRlIGFbZS5lbmRdLGUucHVzaCh0KSxlLmVuZD1sLG49b1tsXSl7ZGVsZXRlIG9bbi5zdGFydF07dmFyIHU9bj09PWU/ZTplLmNvbmNhdChuKTtvW3Uuc3RhcnQ9ZS5zdGFydF09YVt1LmVuZD1uLmVuZF09dX1lbHNlIG9bZS5zdGFydF09YVtlLmVuZF09ZTtlbHNlIGlmKGU9b1tsXSlpZihkZWxldGUgb1tlLnN0YXJ0XSxlLnVuc2hpZnQodCksZS5zdGFydD1zLG49YVtzXSl7ZGVsZXRlIGFbbi5lbmRdO3ZhciBjPW49PT1lP2U6bi5jb25jYXQoZSk7b1tjLnN0YXJ0PW4uc3RhcnRdPWFbYy5lbmQ9ZS5lbmRdPWN9ZWxzZSBvW2Uuc3RhcnRdPWFbZS5lbmRdPWU7ZWxzZSBlPVt0XSxvW2Uuc3RhcnQ9c109YVtlLmVuZD1sXT1lfSksbihhLG8pLG4obyxhKSxlLmZvckVhY2goZnVuY3Rpb24odCl7aVswPnQ/fnQ6dF18fHMucHVzaChbdF0pfSksc31mdW5jdGlvbiBjKHQpe3JldHVybiBsKHQsaC5hcHBseSh0aGlzLGFyZ3VtZW50cykpfWZ1bmN0aW9uIGgodCxlLHIpe2Z1bmN0aW9uIG4odCl7dmFyIGU9MD50P350OnQ7KGNbZV18fChjW2VdPVtdKSkucHVzaCh7aTp0LGc6bH0pfWZ1bmN0aW9uIGkodCl7dC5mb3JFYWNoKG4pfWZ1bmN0aW9uIG8odCl7dC5mb3JFYWNoKGkpfWZ1bmN0aW9uIGEodCl7Ikdlb21ldHJ5Q29sbGVjdGlvbiI9PT10LnR5cGU/dC5nZW9tZXRyaWVzLmZvckVhY2goYSk6dC50eXBlIGluIGgmJihsPXQsaFt0LnR5cGVdKHQuYXJjcykpfXZhciBzPVtdO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7dmFyIGwsYz1bXSxoPXtMaW5lU3RyaW5nOmksTXVsdGlMaW5lU3RyaW5nOm8sUG9seWdvbjpvLE11bHRpUG9seWdvbjpmdW5jdGlvbih0KXt0LmZvckVhY2gobyl9fTthKGUpLGMuZm9yRWFjaChhcmd1bWVudHMubGVuZ3RoPDM/ZnVuY3Rpb24odCl7cy5wdXNoKHRbMF0uaSl9OmZ1bmN0aW9uKHQpe3IodFswXS5nLHRbdC5sZW5ndGgtMV0uZykmJnMucHVzaCh0WzBdLmkpfSl9ZWxzZSBmb3IodmFyIGY9MCxwPXQuYXJjcy5sZW5ndGg7cD5mOysrZilzLnB1c2goZik7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsYXJjczp1KHQscyl9fWZ1bmN0aW9uIGYodCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdO3JldHVybiBNYXRoLmFicygoZVswXS1uWzBdKSooclsxXS1lWzFdKS0oZVswXS1yWzBdKSooblsxXS1lWzFdKSl9ZnVuY3Rpb24gcCh0KXtmb3IodmFyIGUscj0tMSxuPXQubGVuZ3RoLGk9dFtuLTFdLG89MDsrK3I8bjspZT1pLGk9dFtyXSxvKz1lWzBdKmlbMV0tZVsxXSppWzBdO3JldHVybiBvLzJ9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbCh0LG0uYXBwbHkodGhpcyxhcmd1bWVudHMpKX1mdW5jdGlvbiBtKHQsZSl7ZnVuY3Rpb24gcih0KXt0LmZvckVhY2goZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpeyhpW2U9MD5lP35lOmVdfHwoaVtlXT1bXSkpLnB1c2godCl9KX0pLG8ucHVzaCh0KX1mdW5jdGlvbiBuKGUpe3JldHVybiBwKGwodCx7dHlwZToiUG9seWdvbiIsYXJjczpbZV19KS5jb29yZGluYXRlc1swXSk+MH12YXIgaT17fSxvPVtdLGE9W107cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXsiUG9seWdvbiI9PT10LnR5cGU/cih0LmFyY3MpOiJNdWx0aVBvbHlnb24iPT09dC50eXBlJiZ0LmFyY3MuZm9yRWFjaChyKX0pLG8uZm9yRWFjaChmdW5jdGlvbih0KXtpZighdC5fKXt2YXIgZT1bXSxyPVt0XTtmb3IodC5fPTEsYS5wdXNoKGUpO3Q9ci5wb3AoKTspZS5wdXNoKHQpLHQuZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7aVswPnQ/fnQ6dF0uZm9yRWFjaChmdW5jdGlvbih0KXt0Ll98fCh0Ll89MSxyLnB1c2godCkpfSl9KX0pfX0pLG8uZm9yRWFjaChmdW5jdGlvbih0KXtkZWxldGUgdC5ffSkse3R5cGU6Ik11bHRpUG9seWdvbiIsYXJjczphLm1hcChmdW5jdGlvbihlKXt2YXIgcixvPVtdO2lmKGUuZm9yRWFjaChmdW5jdGlvbih0KXt0LmZvckVhY2goZnVuY3Rpb24odCl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lbMD50P350OnRdLmxlbmd0aDwyJiZvLnB1c2godCl9KX0pfSksbz11KHQsbyksKHI9by5sZW5ndGgpPjEpZm9yKHZhciBhLHM9bihlWzBdWzBdKSxsPTA7cj5sOysrbClpZihzPT09bihvW2xdKSl7YT1vWzBdLG9bMF09b1tsXSxvW2xdPWE7YnJlYWt9cmV0dXJuIG99KX19ZnVuY3Rpb24gZyh0KXtmdW5jdGlvbiBlKHQsZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpezA+dCYmKHQ9fnQpO3ZhciByPWlbdF07cj9yLnB1c2goZSk6aVt0XT1bZV19KX1mdW5jdGlvbiByKHQscil7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe2UodCxyKX0pfWZ1bmN0aW9uIG4odCxlKXsiR2VvbWV0cnlDb2xsZWN0aW9uIj09PXQudHlwZT90Lmdlb21ldHJpZXMuZm9yRWFjaChmdW5jdGlvbih0KXtuKHQsZSl9KTp0LnR5cGUgaW4gcyYmc1t0LnR5cGVdKHQuYXJjcyxlKX12YXIgaT17fSxhPXQubWFwKGZ1bmN0aW9uKCl7cmV0dXJuW119KSxzPXtMaW5lU3RyaW5nOmUsTXVsdGlMaW5lU3RyaW5nOnIsUG9seWdvbjpyLE11bHRpUG9seWdvbjpmdW5jdGlvbih0LGUpe3QuZm9yRWFjaChmdW5jdGlvbih0KXtyKHQsZSl9KX19O3QuZm9yRWFjaChuKTtmb3IodmFyIGwgaW4gaSlmb3IodmFyIHU9aVtsXSxjPXUubGVuZ3RoLGg9MDtjPmg7KytoKWZvcih2YXIgZj1oKzE7Yz5mOysrZil7dmFyIHAsZD11W2hdLG09dVtmXTsocD1hW2RdKVtsPW8ocCxtKV0hPT1tJiZwLnNwbGljZShsLDAsbSksKHA9YVttXSlbbD1vKHAsZCldIT09ZCYmcC5zcGxpY2UobCwwLGQpfXJldHVybiBhfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gdFsxXVsyXS1lWzFdWzJdfWZ1bmN0aW9uIHkoKXtmdW5jdGlvbiB0KHQsZSl7Zm9yKDtlPjA7KXt2YXIgcj0oZSsxPj4xKS0xLGk9bltyXTtpZih2KHQsaSk+PTApYnJlYWs7bltpLl89ZV09aSxuW3QuXz1lPXJdPXR9fWZ1bmN0aW9uIGUodCxlKXtmb3IoOzspe3ZhciByPWUrMTw8MSxvPXItMSxhPWUscz1uW2FdO2lmKGk+byYmdihuW29dLHMpPDAmJihzPW5bYT1vXSksaT5yJiZ2KG5bcl0scyk8MCYmKHM9blthPXJdKSxhPT09ZSlicmVhaztuW3MuXz1lXT1zLG5bdC5fPWU9YV09dH19dmFyIHI9e30sbj1bXSxpPTA7cmV0dXJuIHIucHVzaD1mdW5jdGlvbihlKXtyZXR1cm4gdChuW2UuXz1pXT1lLGkrKyksaX0sci5wb3A9ZnVuY3Rpb24oKXtpZighKDA+PWkpKXt2YXIgdCxyPW5bMF07cmV0dXJuLS1pPjAmJih0PW5baV0sZShuW3QuXz0wXT10LDApKSxyfX0sci5yZW1vdmU9ZnVuY3Rpb24ocil7dmFyIG8sYT1yLl87aWYoblthXT09PXIpcmV0dXJuIGEhPT0tLWkmJihvPW5baV0sKHYobyxyKTwwP3Q6ZSkobltvLl89YV09byxhKSksYX0scn1mdW5jdGlvbiBiKHQsZSl7ZnVuY3Rpb24gaSh0KXtzLnJlbW92ZSh0KSx0WzFdWzJdPWUodCkscy5wdXNoKHQpfXZhciBvPXIodC50cmFuc2Zvcm0pLGE9bih0LnRyYW5zZm9ybSkscz15KCk7cmV0dXJuIGV8fChlPWYpLHQuYXJjcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByLG4sbCx1LGM9W10saD0wO2ZvcihuPTAsbD10Lmxlbmd0aDtsPm47KytuKXU9dFtuXSxvKHRbbl09W3VbMF0sdVsxXSwxLzBdLG4pO2ZvcihuPTEsbD10Lmxlbmd0aC0xO2w+bjsrK24pcj10LnNsaWNlKG4tMSxuKzIpLHJbMV1bMl09ZShyKSxjLnB1c2gocikscy5wdXNoKHIpO2ZvcihuPTAsbD1jLmxlbmd0aDtsPm47KytuKXI9Y1tuXSxyLnByZXZpb3VzPWNbbi0xXSxyLm5leHQ9Y1tuKzFdO2Zvcig7cj1zLnBvcCgpOyl7dmFyIGY9ci5wcmV2aW91cyxwPXIubmV4dDtyWzFdWzJdPGg/clsxXVsyXT1oOmg9clsxXVsyXSxmJiYoZi5uZXh0PXAsZlsyXT1yWzJdLGkoZikpLHAmJihwLnByZXZpb3VzPWYscFswXT1yWzBdLGkocCkpfXQuZm9yRWFjaChhKX0pLHR9dmFyIHg9IjEuNi4yNCI7dC52ZXJzaW9uPXgsdC5tZXNoPWMsdC5tZXNoQXJjcz1oLHQubWVyZ2U9ZCx0Lm1lcmdlQXJjcz1tLHQuZmVhdHVyZT1hLHQubmVpZ2hib3JzPWcsdC5wcmVzaW1wbGlmeT1ifSl9LHt9XSw0Nzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49dCplLG89aSp0LGE9by10LHM9by1hLGw9dC1zLHU9aSplLGM9dS1lLGg9dS1jLGY9ZS1oLHA9bi1zKmgsZD1wLWwqaCxtPWQtcypmLGc9bCpmLW07cmV0dXJuIHI/KHJbMF09ZyxyWzFdPW4scik6W2csbl19ZS5leHBvcnRzPW47dmFyIGk9KyhNYXRoLnBvdygyLDI3KSsxKX0se31dLDQ4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj10K2UsaT1uLXQsbz1uLWksYT1lLWkscz10LW87cmV0dXJuIHI/KHJbMF09cythLHJbMV09bixyKTpbcythLG5dfWUuZXhwb3J0cz1ufSx7fV0sNDgxOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7aWYodCl7dmFyIGU9dC5sZW5ndGh8fHQuYnl0ZUxlbmd0aCxyPXkubG9nMihlKTt3W3JdLnB1c2godCl9fWZ1bmN0aW9uIG8odCl7aSh0LmJ1ZmZlcil9ZnVuY3Rpb24gYSh0KXt2YXIgdD15Lm5leHRQb3cyKHQpLGU9eS5sb2cyKHQpLHI9d1tlXTtyZXR1cm4gci5sZW5ndGg+MD9yLnBvcCgpOm5ldyBBcnJheUJ1ZmZlcih0KX1mdW5jdGlvbiBzKHQpe3JldHVybiBuZXcgVWludDhBcnJheShhKHQpLDAsdCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbmV3IFVpbnQxNkFycmF5KGEoMip0KSwwLHQpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIG5ldyBVaW50MzJBcnJheShhKDQqdCksMCx0KX1mdW5jdGlvbiBjKHQpe3JldHVybiBuZXcgSW50OEFycmF5KGEodCksMCx0KX1mdW5jdGlvbiBoKHQpe3JldHVybiBuZXcgSW50MTZBcnJheShhKDIqdCksMCx0KX1mdW5jdGlvbiBmKHQpe3JldHVybiBuZXcgSW50MzJBcnJheShhKDQqdCksMCx0KX1mdW5jdGlvbiBwKHQpe3JldHVybiBuZXcgRmxvYXQzMkFycmF5KGEoNCp0KSwwLHQpfWZ1bmN0aW9uIGQodCl7cmV0dXJuIG5ldyBGbG9hdDY0QXJyYXkoYSg4KnQpLDAsdCl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4geD9uZXcgVWludDhDbGFtcGVkQXJyYXkoYSh0KSwwLHQpOnModCl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gbmV3IERhdGFWaWV3KGEodCksMCx0KX1mdW5jdGlvbiB2KHQpe3Q9eS5uZXh0UG93Mih0KTt2YXIgZT15LmxvZzIodCkscj1NW2VdO3JldHVybiByLmxlbmd0aD4wP3IucG9wKCk6bmV3IG4odCl9dmFyIHk9dCgiYml0LXR3aWRkbGUiKSxiPXQoImR1cCIpO2UuX19UWVBFREFSUkFZX1BPT0x8fChlLl9fVFlQRURBUlJBWV9QT09MPXtVSU5UODpiKFszMiwwXSksVUlOVDE2OmIoWzMyLDBdKSxVSU5UMzI6YihbMzIsMF0pLElOVDg6YihbMzIsMF0pLElOVDE2OmIoWzMyLDBdKSxJTlQzMjpiKFszMiwwXSksRkxPQVQ6YihbMzIsMF0pLERPVUJMRTpiKFszMiwwXSksREFUQTpiKFszMiwwXSksVUlOVDhDOmIoWzMyLDBdKSxCVUZGRVI6YihbMzIsMF0pfSk7dmFyIHg9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OENsYW1wZWRBcnJheSxfPWUuX19UWVBFREFSUkFZX1BPT0w7Xy5VSU5UOEN8fChfLlVJTlQ4Qz1iKFszMiwwXSkpLF8uQlVGRkVSfHwoXy5CVUZGRVI9YihbMzIsMF0pKTt2YXIgdz1fLkRBVEEsTT1fLkJVRkZFUjtyLmZyZWU9ZnVuY3Rpb24odCl7aWYobi5pc0J1ZmZlcih0KSlNW3kubG9nMih0Lmxlbmd0aCldLnB1c2godCk7ZWxzZXtpZigiW29iamVjdCBBcnJheUJ1ZmZlcl0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpJiYodD10LmJ1ZmZlciksIXQpcmV0dXJuO3ZhciBlPXQubGVuZ3RofHx0LmJ5dGVMZW5ndGgscj0wfHkubG9nMihlKTt3W3JdLnB1c2godCl9fSxyLmZyZWVVaW50OD1yLmZyZWVVaW50MTY9ci5mcmVlVWludDMyPXIuZnJlZUludDg9ci5mcmVlSW50MTY9ci5mcmVlSW50MzI9ci5mcmVlRmxvYXQzMj1yLmZyZWVGbG9hdD1yLmZyZWVGbG9hdDY0PXIuZnJlZURvdWJsZT1yLmZyZWVVaW50OENsYW1wZWQ9ci5mcmVlRGF0YVZpZXc9byxyLmZyZWVBcnJheUJ1ZmZlcj1pLHIuZnJlZUJ1ZmZlcj1mdW5jdGlvbih0KXtNW3kubG9nMih0Lmxlbmd0aCldLnB1c2godCl9LHIubWFsbG9jPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZXx8ImFycmF5YnVmZmVyIj09PWUpcmV0dXJuIGEodCk7c3dpdGNoKGUpe2Nhc2UidWludDgiOnJldHVybiBzKHQpO2Nhc2UidWludDE2IjpyZXR1cm4gbCh0KTtjYXNlInVpbnQzMiI6cmV0dXJuIHUodCk7Y2FzZSJpbnQ4IjpyZXR1cm4gYyh0KTtjYXNlImludDE2IjpyZXR1cm4gaCh0KTtjYXNlImludDMyIjpyZXR1cm4gZih0KTtjYXNlImZsb2F0IjpjYXNlImZsb2F0MzIiOnJldHVybiBwKHQpO2Nhc2UiZG91YmxlIjpjYXNlImZsb2F0NjQiOnJldHVybiBkKHQpO2Nhc2UidWludDhfY2xhbXBlZCI6cmV0dXJuIG0odCk7Y2FzZSJidWZmZXIiOnJldHVybiB2KHQpO2Nhc2UiZGF0YSI6Y2FzZSJkYXRhdmlldyI6cmV0dXJuIGcodCk7ZGVmYXVsdDpyZXR1cm4gbnVsbH1yZXR1cm4gbnVsbH0sci5tYWxsb2NBcnJheUJ1ZmZlcj1hLHIubWFsbG9jVWludDg9cyxyLm1hbGxvY1VpbnQxNj1sLHIubWFsbG9jVWludDMyPXUsci5tYWxsb2NJbnQ4PWMsci5tYWxsb2NJbnQxNj1oLHIubWFsbG9jSW50MzI9ZixyLm1hbGxvY0Zsb2F0MzI9ci5tYWxsb2NGbG9hdD1wLHIubWFsbG9jRmxvYXQ2ND1yLm1hbGxvY0RvdWJsZT1kLHIubWFsbG9jVWludDhDbGFtcGVkPW0sci5tYWxsb2NEYXRhVmlldz1nLHIubWFsbG9jQnVmZmVyPXYsci5jbGVhckNhY2hlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7MzI+dDsrK3QpXy5VSU5UOFt0XS5sZW5ndGg9MCxfLlVJTlQxNlt0XS5sZW5ndGg9MCxfLlVJTlQzMlt0XS5sZW5ndGg9MCwKXy5JTlQ4W3RdLmxlbmd0aD0wLF8uSU5UMTZbdF0ubGVuZ3RoPTAsXy5JTlQzMlt0XS5sZW5ndGg9MCxfLkZMT0FUW3RdLmxlbmd0aD0wLF8uRE9VQkxFW3RdLmxlbmd0aD0wLF8uVUlOVDhDW3RdLmxlbmd0aD0wLHdbdF0ubGVuZ3RoPTAsTVt0XS5sZW5ndGg9MH19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSx0KCJidWZmZXIiKS5CdWZmZXIpfSx7ImJpdC10d2lkZGxlIjo1MSxidWZmZXI6NTIsZHVwOjEyNn1dLDQ4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPTEsbj10Lmxlbmd0aCxpPXRbMF0sbz10WzBdLGE9MTtuPmE7KythKWlmKG89aSxpPXRbYV0sZShpLG8pKXtpZihhPT09cil7cisrO2NvbnRpbnVlfXRbcisrXT1pfXJldHVybiB0Lmxlbmd0aD1yLHR9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGU9MSxyPXQubGVuZ3RoLG49dFswXSxpPXRbMF0sbz0xO3I+bzsrK28saT1uKWlmKGk9bixuPXRbb10sbiE9PWkpe2lmKG89PT1lKXtlKys7Y29udGludWV9dFtlKytdPW59cmV0dXJuIHQubGVuZ3RoPWUsdH1mdW5jdGlvbiBvKHQsZSxyKXtyZXR1cm4gMD09PXQubGVuZ3RoP3Q6ZT8ocnx8dC5zb3J0KGUpLG4odCxlKSk6KHJ8fHQuc29ydCgpLGkodCkpfWUuZXhwb3J0cz1vfSx7fV0sNDgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lfHwoZT17fSksaSh0LGUuY2FudmFzfHxvLGUuY29udGV4dHx8YSxlKX1lLmV4cG9ydHM9bjt2YXIgaT10KCIuL2xpYi92dGV4dCIpLG89bnVsbCxhPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksby53aWR0aD04MTkyLG8uaGVpZ2h0PTEwMjQsYT1vLmdldENvbnRleHQoIjJkIikpfSx7Ii4vbGliL3Z0ZXh0Ijo0ODR9XSw0ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7Zm9yKHZhciBuPWUudGV4dEFsaWdufHwic3RhcnQiLGk9ZS50ZXh0QmFzZWxpbmV8fCJhbHBoYWJldGljIixvPVsxPDwzMCwxPDwzMF0sYT1bMCwwXSxzPXQubGVuZ3RoLGw9MDtzPmw7KytsKWZvcih2YXIgdT10W2xdLGM9MDsyPmM7KytjKW9bY109MHxNYXRoLm1pbihvW2NdLHVbY10pLGFbY109MHxNYXRoLm1heChhW2NdLHVbY10pO3ZhciBoPTA7c3dpdGNoKG4pe2Nhc2UiY2VudGVyIjpoPS0uNSoob1swXSthWzBdKTticmVhaztjYXNlInJpZ2h0IjpjYXNlImVuZCI6aD0tYVswXTticmVhaztjYXNlImxlZnQiOmNhc2Uic3RhcnQiOmg9LW9bMF07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInZlY3Rvcml6ZS10ZXh0OiBVbnJlY29nbml6ZWQgdGV4dEFsaWduOiAnIituKyInIil9dmFyIGY9MDtzd2l0Y2goaSl7Y2FzZSJoYW5naW5nIjpjYXNlInRvcCI6Zj0tb1sxXTticmVhaztjYXNlIm1pZGRsZSI6Zj0tLjUqKG9bMV0rYVsxXSk7YnJlYWs7Y2FzZSJhbHBoYWJldGljIjpjYXNlImlkZW9ncmFwaGljIjpmPS0zKnI7YnJlYWs7Y2FzZSJib3R0b20iOmY9LWFbMV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInZlY3Rvcml6ZS10ZXh0OiBVbnJlY29naW5pemVkIHRleHRCYXNlbGluZTogJyIraSsiJyIpfXZhciBwPTEvcjtyZXR1cm4ibGluZUhlaWdodCJpbiBlP3AqPStlLmxpbmVIZWlnaHQ6IndpZHRoImluIGU/cD1lLndpZHRoLyhhWzBdLW9bMF0pOiJoZWlnaHQiaW4gZSYmKHA9ZS5oZWlnaHQvKGFbMV0tb1sxXSkpLHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybltwKih0WzBdK2gpLHAqKHRbMV0rZildfSl9ZnVuY3Rpb24gaSh0LGUscixuKXt2YXIgaT0wfE1hdGguY2VpbChlLm1lYXN1cmVUZXh0KHIpLndpZHRoKzIqbik7aWYoaT44MTkyKXRocm93IG5ldyBFcnJvcigidmVjdG9yaXplLXRleHQ6IFN0cmluZyB0b28gbG9uZyAoc29ycnksIHRoaXMgd2lsbCBnZXQgZml4ZWQgbGF0ZXIpIik7dmFyIG89MypuO3QuaGVpZ2h0PG8mJih0LmhlaWdodD1vKSxlLmZpbGxTdHlsZT0iIzAwMCIsZS5maWxsUmVjdCgwLDAsdC53aWR0aCx0LmhlaWdodCksZS5maWxsU3R5bGU9IiNmZmYiLGUuZmlsbFRleHQocixuLDIqbik7dmFyIGE9ZS5nZXRJbWFnZURhdGEoMCwwLGksbykscz1jKGEuZGF0YSxbbyxpLDRdKTtyZXR1cm4gcy5waWNrKC0xLC0xLDApLnRyYW5zcG9zZSgxLDApfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj11KHQsMTI4KTtyZXR1cm4gZT9oKHIuY2VsbHMsci5wb3NpdGlvbnMsLjI1KTp7ZWRnZXM6ci5jZWxscyxwb3NpdGlvbnM6ci5wb3NpdGlvbnN9fWZ1bmN0aW9uIGEodCxlLHIsaSl7dmFyIGE9byh0LGkpLHM9bihhLnBvc2l0aW9ucyxlLHIpLGw9YS5lZGdlcyx1PSJjY3ciPT09ZS5vcmllbnRhdGlvbjtpZihmKHMsbCksZS5wb2x5Z29uc3x8ZS5wb2x5Z29ufHxlLnBvbHlsaW5lKXtmb3IodmFyIGM9ZChsLHMpLGg9bmV3IEFycmF5KGMubGVuZ3RoKSxtPTA7bTxjLmxlbmd0aDsrK20pe2Zvcih2YXIgZz1jW21dLHY9bmV3IEFycmF5KGcubGVuZ3RoKSx5PTA7eTxnLmxlbmd0aDsrK3kpe2Zvcih2YXIgYj1nW3ldLHg9bmV3IEFycmF5KGIubGVuZ3RoKSxfPTA7XzxiLmxlbmd0aDsrK18peFtfXT1zW2JbX11dLnNsaWNlKCk7dSYmeC5yZXZlcnNlKCksdlt5XT14fWhbbV09dn1yZXR1cm4gaH1yZXR1cm4gZS50cmlhbmdsZXN8fGUudHJpYW5ndWxhdGV8fGUudHJpYW5nbGU/e2NlbGxzOnAocyxsLHtkZWxhdW5heTohMSxleHRlcmlvcjohMSxpbnRlcmlvcjohMH0pLHBvc2l0aW9uczpzfTp7ZWRnZXM6bCxwb3NpdGlvbnM6c319ZnVuY3Rpb24gcyh0LGUscil7dHJ5e3JldHVybiBhKHQsZSxyLCEwKX1jYXRjaChuKXt9dHJ5e3JldHVybiBhKHQsZSxyLCExKX1jYXRjaChuKXt9cmV0dXJuIGUucG9seWdvbnN8fGUucG9seWxpbmV8fGUucG9seWdvbj9bXTplLnRyaWFuZ2xlc3x8ZS50cmlhbmd1bGF0ZXx8ZS50cmlhbmdsZT97Y2VsbHM6W10scG9zaXRpb25zOltdfTp7ZWRnZXM6W10scG9zaXRpb25zOltdfX1mdW5jdGlvbiBsKHQsZSxyLG4pe3ZhciBvPW4uc2l6ZXx8NjQsYT1uLmZvbnR8fCJub3JtYWwiO3IuZm9udD1vKyJweCAiK2Esci50ZXh0QWxpZ249InN0YXJ0IixyLnRleHRCYXNlbGluZT0iYWxwaGFiZXRpYyIsci5kaXJlY3Rpb249Imx0ciI7dmFyIGw9aShlLHIsdCxvKTtyZXR1cm4gcyhsLG4sbyl9ZS5leHBvcnRzPWwsZS5leHBvcnRzLnByb2Nlc3NQaXhlbHM9czt2YXIgdT10KCJzdXJmYWNlLW5ldHMiKSxjPXQoIm5kYXJyYXkiKSxoPXQoInNpbXBsaWZ5LXBsYW5hci1ncmFwaCIpLGY9dCgiY2xlYW4tcHNsZyIpLHA9dCgiY2R0MmQiKSxkPXQoInBsYW5hci1ncmFwaC10by1wb2x5bGluZSIpfSx7Y2R0MmQ6NjgsImNsZWFuLXBzbGciOjc1LG5kYXJyYXk6NDU2LCJwbGFuYXItZ3JhcGgtdG8tcG9seWxpbmUiOjQ5Nywic2ltcGxpZnktcGxhbmFyLWdyYXBoIjo1MDEsInN1cmZhY2UtbmV0cyI6NDc1fV0sNDg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9aSh0LGUubGVuZ3RoKSxuPW5ldyBBcnJheShlLmxlbmd0aCksbz1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9W10scz0wO3M8ZS5sZW5ndGg7KytzKXt2YXIgbD1yW3NdLmxlbmd0aDtvW3NdPWwsbltzXT0hMCwxPj1sJiZhLnB1c2gocyl9Zm9yKDthLmxlbmd0aD4wOyl7dmFyIHU9YS5wb3AoKTtuW3VdPSExO2Zvcih2YXIgYz1yW3VdLHM9MDtzPGMubGVuZ3RoOysrcyl7dmFyIGg9Y1tzXTswPT09LS1vW2hdJiZhLnB1c2goaCl9fWZvcih2YXIgZj1uZXcgQXJyYXkoZS5sZW5ndGgpLHA9W10scz0wO3M8ZS5sZW5ndGg7KytzKWlmKG5bc10pe3ZhciB1PXAubGVuZ3RoO2Zbc109dSxwLnB1c2goZVtzXSl9ZWxzZSBmW3NdPS0xO2Zvcih2YXIgZD1bXSxzPTA7czx0Lmxlbmd0aDsrK3Mpe3ZhciBtPXRbc107blttWzBdXSYmblttWzFdXSYmZC5wdXNoKFtmW21bMF1dLGZbbVsxXV1dKX1yZXR1cm5bZCxwXX1lLmV4cG9ydHM9bjt2YXIgaT10KCJlZGdlcy10by1hZGphY2VuY3ktbGlzdCIpfSx7ImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0Ijo0ODZ9XSw0ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKCJudW1iZXIiIT10eXBlb2YgZSl7ZT0wO2Zvcih2YXIgbj0wO3I+bjsrK24pe3ZhciBvPXRbbl07ZT1NYXRoLm1heChlLG9bMF0sb1sxXSl9ZT0oMHxlKSsxfWU9MHxlO2Zvcih2YXIgYT1uZXcgQXJyYXkoZSksbj0wO2U+bjsrK24pYVtuXT1bXTtmb3IodmFyIG49MDtyPm47KytuKXt2YXIgbz10W25dO2Fbb1swXV0ucHVzaChvWzFdKSxhW29bMV1dLnB1c2gob1swXSl9Zm9yKHZhciBzPTA7ZT5zOysrcylpKGFbc10sZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSk7cmV0dXJuIGF9ZS5leHBvcnRzPW47dmFyIGk9dCgidW5pcSIpfSx7dW5pcTo0ODJ9XSw0ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Z1bmN0aW9uIHIodCxlKXt2YXIgcj11W2VdW3RbZV1dO3Iuc3BsaWNlKHIuaW5kZXhPZih0KSwxKX1mdW5jdGlvbiBuKHQsbixvKXtmb3IodmFyIGEscyxsLGM9MDsyPmM7KytjKWlmKHVbY11bbl0ubGVuZ3RoPjApe2E9dVtjXVtuXVswXSxsPWM7YnJlYWt9cz1hWzFebF07Zm9yKHZhciBoPTA7Mj5oOysraClmb3IodmFyIGY9dVtoXVtuXSxwPTA7cDxmLmxlbmd0aDsrK3Ape3ZhciBkPWZbcF0sbT1kWzFeaF0sZz1pKGVbdF0sZVtuXSxlW3NdLGVbbV0pO2c+MCYmKGE9ZCxzPW0sbD1oKX1yZXR1cm4gbz9zOihhJiZyKGEsbCkscyl9ZnVuY3Rpb24gbyh0LG8pe3ZhciBhPXVbb11bdF1bMF0scz1bdF07cihhLG8pO2Zvcih2YXIgbD1hWzFeb107Oyl7Zm9yKDtsIT09dDspcy5wdXNoKGwpLGw9bihzW3MubGVuZ3RoLTJdLGwsITEpO2lmKHVbMF1bdF0ubGVuZ3RoK3VbMV1bdF0ubGVuZ3RoPT09MClicmVhazt2YXIgYz1zW3MubGVuZ3RoLTFdLGg9dCxmPXNbMV0scD1uKGMsaCwhMCk7aWYoaShlW2NdLGVbaF0sZVtmXSxlW3BdKTwwKWJyZWFrO3MucHVzaCh0KSxsPW4oYyxoKX1yZXR1cm4gc31mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIGVbMV09PT1lW2UubGVuZ3RoLTFdfWZvcih2YXIgcz0wfGUubGVuZ3RoLGw9dC5sZW5ndGgsdT1bbmV3IEFycmF5KHMpLG5ldyBBcnJheShzKV0sYz0wO3M+YzsrK2MpdVswXVtjXT1bXSx1WzFdW2NdPVtdO2Zvcih2YXIgYz0wO2w+YzsrK2Mpe3ZhciBoPXRbY107dVswXVtoWzBdXS5wdXNoKGgpLHVbMV1baFsxXV0ucHVzaChoKX1mb3IodmFyIGY9W10sYz0wO3M+YzsrK2MpdVswXVtjXS5sZW5ndGgrdVsxXVtjXS5sZW5ndGg9PT0wJiZmLnB1c2goW2NdKTtmb3IodmFyIGM9MDtzPmM7KytjKWZvcih2YXIgcD0wOzI+cDsrK3Ape2Zvcih2YXIgZD1bXTt1W3BdW2NdLmxlbmd0aD4wOyl7dmFyIG09KHVbMF1bY10ubGVuZ3RoLG8oYyxwKSk7YShkLG0pP2QucHVzaC5hcHBseShkLG0pOihkLmxlbmd0aD4wJiZmLnB1c2goZCksZD1tKX1kLmxlbmd0aD4wJiZmLnB1c2goZCl9cmV0dXJuIGZ9ZS5leHBvcnRzPW47dmFyIGk9dCgiY29tcGFyZS1hbmdsZSIpfSx7ImNvbXBhcmUtYW5nbGUiOjQ4OH1dLDQ4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1zKHRbMF0sLWVbMF0pLGk9cyh0WzFdLC1lWzFdKSxvPXMoclswXSwtZVswXSksYT1zKHJbMV0sLWVbMV0pLGM9dShsKG4sbyksbChpLGEpKTtyZXR1cm4gY1tjLmxlbmd0aC0xXT49MH1mdW5jdGlvbiBpKHQsZSxyLGkpe3ZhciBzPW8oZSxyLGkpO2lmKDA9PT1zKXt2YXIgbD1hKG8odCxlLHIpKSx1PWEobyh0LGUsaSkpO2lmKGw9PT11KXtpZigwPT09bCl7dmFyIGM9bih0LGUsciksaD1uKHQsZSxpKTtyZXR1cm4gYz09PWg/MDpjPzE6LTF9cmV0dXJuIDB9cmV0dXJuIDA9PT11P2w+MD8tMTpuKHQsZSxpKT8tMToxOjA9PT1sP3U+MD8xOm4odCxlLHIpPzE6LTE6YSh1LWwpfXZhciBmPW8odCxlLHIpO2lmKGY+MClyZXR1cm4gcz4wJiZvKHQsZSxpKT4wPzE6LTE7aWYoMD5mKXJldHVybiBzPjB8fG8odCxlLGkpPjA/MTotMTt2YXIgcD1vKHQsZSxpKTtyZXR1cm4gcD4wPzE6bih0LGUscik/MTotMX1lLmV4cG9ydHM9aTt2YXIgbz10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxhPXQoInNpZ251bSIpLHM9dCgidHdvLXN1bSIpLGw9dCgicm9idXN0LXByb2R1Y3QiKSx1PXQoInJvYnVzdC1zdW0iKX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjQ2Miwicm9idXN0LXByb2R1Y3QiOjQ4OSwicm9idXN0LXN1bSI6NDY1LHNpZ251bTo0OTAsInR3by1zdW0iOjQ4MH1dLDQ4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoMT09PXQubGVuZ3RoKXJldHVybiBvKGUsdFswXSk7aWYoMT09PWUubGVuZ3RoKXJldHVybiBvKHQsZVswXSk7aWYoMD09PXQubGVuZ3RofHwwPT09ZS5sZW5ndGgpcmV0dXJuWzBdO3ZhciByPVswXTtpZih0Lmxlbmd0aDxlLmxlbmd0aClmb3IodmFyIG49MDtuPHQubGVuZ3RoOysrbilyPWkocixvKGUsdFtuXSkpO2Vsc2UgZm9yKHZhciBuPTA7bjxlLmxlbmd0aDsrK24pcj1pKHIsbyh0LGVbbl0pKTtyZXR1cm4gcn12YXIgaT10KCJyb2J1c3Qtc3VtIiksbz10KCJyb2J1c3Qtc2NhbGUiKTtlLmV4cG9ydHM9bn0seyJyb2J1c3Qtc2NhbGUiOjQ2Mywicm9idXN0LXN1bSI6NDY1fV0sNDkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gMD50Py0xOnQ+MD8xOjB9fSx7fV0sNDkxOltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzIyXVswXS5hcHBseShyLGFyZ3VtZW50cyl9LHtkdXA6MjJ9XSw0OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe3RoaXMubWlkPXQsdGhpcy5sZWZ0PWUsdGhpcy5yaWdodD1yLHRoaXMubGVmdFBvaW50cz1uLHRoaXMucmlnaHRQb2ludHM9aSx0aGlzLmNvdW50PShlP2UuY291bnQ6MCkrKHI/ci5jb3VudDowKStuLmxlbmd0aH1mdW5jdGlvbiBpKHQsZSl7dC5taWQ9ZS5taWQsdC5sZWZ0PWUubGVmdCx0LnJpZ2h0PWUucmlnaHQsdC5sZWZ0UG9pbnRzPWUubGVmdFBvaW50cyx0LnJpZ2h0UG9pbnRzPWUucmlnaHRQb2ludHMsdC5jb3VudD1lLmNvdW50fWZ1bmN0aW9uIG8odCxlKXt2YXIgcj1kKGUpO3QubWlkPXIubWlkLHQubGVmdD1yLmxlZnQsdC5yaWdodD1yLnJpZ2h0LHQubGVmdFBvaW50cz1yLmxlZnRQb2ludHMsdC5yaWdodFBvaW50cz1yLnJpZ2h0UG9pbnRzLHQuY291bnQ9ci5jb3VudH1mdW5jdGlvbiBhKHQsZSl7dmFyIHI9dC5pbnRlcnZhbHMoW10pO3IucHVzaChlKSxvKHQscil9ZnVuY3Rpb24gcyh0LGUpe3ZhciByPXQuaW50ZXJ2YWxzKFtdKSxuPXIuaW5kZXhPZihlKTtyZXR1cm4gMD5uP3k6KHIuc3BsaWNlKG4sMSksbyh0LHIpLGIpfWZ1bmN0aW9uIGwodCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJnRbbl1bMF08PWU7KytuKXt2YXIgaT1yKHRbbl0pO2lmKGkpcmV0dXJuIGl9fWZ1bmN0aW9uIHUodCxlLHIpe2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTAmJnRbbl1bMV0+PWU7LS1uKXt2YXIgaT1yKHRbbl0pO2lmKGkpcmV0dXJuIGl9fWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49ZSh0W3JdKTtpZihuKXJldHVybiBufX1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiBmKHQsZSl7dmFyIHI9dFswXS1lWzBdO3JldHVybiByP3I6dFsxXS1lWzFdfWZ1bmN0aW9uIHAodCxlKXt2YXIgcj10WzFdLWVbMV07cmV0dXJuIHI/cjp0WzBdLWVbMF19ZnVuY3Rpb24gZCh0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoOysrcillLnB1c2godFtyXVswXSx0W3JdWzFdKTtlLnNvcnQoaCk7Zm9yKHZhciBpPWVbZS5sZW5ndGg+PjFdLG89W10sYT1bXSxzPVtdLHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIGw9dFtyXTtsWzFdPGk/by5wdXNoKGwpOmk8bFswXT9hLnB1c2gobCk6cy5wdXNoKGwpfXZhciB1PXMsYz1zLnNsaWNlKCk7cmV0dXJuIHUuc29ydChmKSxjLnNvcnQocCksbmV3IG4oaSxkKG8pLGQoYSksdSxjKX1mdW5jdGlvbiBtKHQpe3RoaXMucm9vdD10fWZ1bmN0aW9uIGcodCl7cmV0dXJuIG5ldyBtKHQmJjAhPT10Lmxlbmd0aD9kKHQpOm51bGwpfXZhciB2PXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIikseT0wLGI9MSx4PTI7ZS5leHBvcnRzPWc7dmFyIF89bi5wcm90b3R5cGU7Xy5pbnRlcnZhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQucHVzaC5hcHBseSh0LHRoaXMubGVmdFBvaW50cyksdGhpcy5sZWZ0JiZ0aGlzLmxlZnQuaW50ZXJ2YWxzKHQpLHRoaXMucmlnaHQmJnRoaXMucmlnaHQuaW50ZXJ2YWxzKHQpLHR9LF8uaW5zZXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY291bnQtdGhpcy5sZWZ0UG9pbnRzLmxlbmd0aDtpZih0aGlzLmNvdW50Kz0xLHRbMV08dGhpcy5taWQpdGhpcy5sZWZ0PzQqKHRoaXMubGVmdC5jb3VudCsxKT4zKihlKzEpP2EodGhpcyx0KTp0aGlzLmxlZnQuaW5zZXJ0KHQpOnRoaXMubGVmdD1kKFt0XSk7ZWxzZSBpZih0WzBdPnRoaXMubWlkKXRoaXMucmlnaHQ/NCoodGhpcy5yaWdodC5jb3VudCsxKT4zKihlKzEpP2EodGhpcyx0KTp0aGlzLnJpZ2h0Lmluc2VydCh0KTp0aGlzLnJpZ2h0PWQoW3RdKTtlbHNle3ZhciByPXYuZ2UodGhpcy5sZWZ0UG9pbnRzLHQsZiksbj12LmdlKHRoaXMucmlnaHRQb2ludHMsdCxwKTt0aGlzLmxlZnRQb2ludHMuc3BsaWNlKHIsMCx0KSx0aGlzLnJpZ2h0UG9pbnRzLnNwbGljZShuLDAsdCl9fSxfLnJlbW92ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvdW50LXRoaXMubGVmdFBvaW50cztpZih0WzFdPHRoaXMubWlkKXtpZighdGhpcy5sZWZ0KXJldHVybiB5O3ZhciByPXRoaXMucmlnaHQ/dGhpcy5yaWdodC5jb3VudDowO2lmKDQqcj4zKihlLTEpKXJldHVybiBzKHRoaXMsdCk7dmFyIG49dGhpcy5sZWZ0LnJlbW92ZSh0KTtyZXR1cm4gbj09PXg/KHRoaXMubGVmdD1udWxsLHRoaXMuY291bnQtPTEsYik6KG49PT1iJiYodGhpcy5jb3VudC09MSksbil9aWYodFswXT50aGlzLm1pZCl7aWYoIXRoaXMucmlnaHQpcmV0dXJuIHk7dmFyIG89dGhpcy5sZWZ0P3RoaXMubGVmdC5jb3VudDowO2lmKDQqbz4zKihlLTEpKXJldHVybiBzKHRoaXMsdCk7dmFyIG49dGhpcy5yaWdodC5yZW1vdmUodCk7cmV0dXJuIG49PT14Pyh0aGlzLnJpZ2h0PW51bGwsdGhpcy5jb3VudC09MSxiKToobj09PWImJih0aGlzLmNvdW50LT0xKSxuKX1pZigxPT09dGhpcy5jb3VudClyZXR1cm4gdGhpcy5sZWZ0UG9pbnRzWzBdPT09dD94Onk7aWYoMT09PXRoaXMubGVmdFBvaW50cy5sZW5ndGgmJnRoaXMubGVmdFBvaW50c1swXT09PXQpe2lmKHRoaXMubGVmdCYmdGhpcy5yaWdodCl7Zm9yKHZhciBhPXRoaXMsbD10aGlzLmxlZnQ7bC5yaWdodDspYT1sLGw9bC5yaWdodDtpZihhPT09dGhpcylsLnJpZ2h0PXRoaXMucmlnaHQ7ZWxzZXt2YXIgdT10aGlzLmxlZnQsbj10aGlzLnJpZ2h0O2EuY291bnQtPWwuY291bnQsYS5yaWdodD1sLmxlZnQsbC5sZWZ0PXUsbC5yaWdodD1ufWkodGhpcyxsKSx0aGlzLmNvdW50PSh0aGlzLmxlZnQ/dGhpcy5sZWZ0LmNvdW50OjApKyh0aGlzLnJpZ2h0P3RoaXMucmlnaHQuY291bnQ6MCkrdGhpcy5sZWZ0UG9pbnRzLmxlbmd0aH1lbHNlIHRoaXMubGVmdD9pKHRoaXMsdGhpcy5sZWZ0KTppKHRoaXMsdGhpcy5yaWdodCk7cmV0dXJuIGJ9Zm9yKHZhciB1PXYuZ2UodGhpcy5sZWZ0UG9pbnRzLHQsZik7dTx0aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbdV1bMF09PT10WzBdOysrdSlpZih0aGlzLmxlZnRQb2ludHNbdV09PT10KXt0aGlzLmNvdW50LT0xLHRoaXMubGVmdFBvaW50cy5zcGxpY2UodSwxKTtmb3IodmFyIG49di5nZSh0aGlzLnJpZ2h0UG9pbnRzLHQscCk7bjx0aGlzLnJpZ2h0UG9pbnRzLmxlbmd0aCYmdGhpcy5yaWdodFBvaW50c1tuXVsxXT09PXRbMV07KytuKWlmKHRoaXMucmlnaHRQb2ludHNbbl09PT10KXJldHVybiB0aGlzLnJpZ2h0UG9pbnRzLnNwbGljZShuLDEpLGJ9cmV0dXJuIHl9LF8ucXVlcnlQb2ludD1mdW5jdGlvbih0LGUpe2lmKHQ8dGhpcy5taWQpe2lmKHRoaXMubGVmdCl7dmFyIHI9dGhpcy5sZWZ0LnF1ZXJ5UG9pbnQodCxlKTtpZihyKXJldHVybiByfXJldHVybiBsKHRoaXMubGVmdFBvaW50cyx0LGUpfWlmKHQ+dGhpcy5taWQpe2lmKHRoaXMucmlnaHQpe3ZhciByPXRoaXMucmlnaHQucXVlcnlQb2ludCh0LGUpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIHUodGhpcy5yaWdodFBvaW50cyx0LGUpfXJldHVybiBjKHRoaXMubGVmdFBvaW50cyxlKX0sXy5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXtpZih0PHRoaXMubWlkJiZ0aGlzLmxlZnQpe3ZhciBuPXRoaXMubGVmdC5xdWVyeUludGVydmFsKHQsZSxyKTtpZihuKXJldHVybiBufWlmKGU+dGhpcy5taWQmJnRoaXMucmlnaHQpe3ZhciBuPXRoaXMucmlnaHQucXVlcnlJbnRlcnZhbCh0LGUscik7aWYobilyZXR1cm4gbn1yZXR1cm4gZTx0aGlzLm1pZD9sKHRoaXMubGVmdFBvaW50cyxlLHIpOnQ+dGhpcy5taWQ/dSh0aGlzLnJpZ2h0UG9pbnRzLHQscik6Yyh0aGlzLmxlZnRQb2ludHMscil9O3ZhciB3PW0ucHJvdG90eXBlO3cuaW5zZXJ0PWZ1bmN0aW9uKHQpe3RoaXMucm9vdD90aGlzLnJvb3QuaW5zZXJ0KHQpOnRoaXMucm9vdD1uZXcgbih0WzBdLG51bGwsbnVsbCxbdF0sW3RdKX0sdy5yZW1vdmU9ZnVuY3Rpb24odCl7aWYodGhpcy5yb290KXt2YXIgZT10aGlzLnJvb3QucmVtb3ZlKHQpO3JldHVybiBlPT09eCYmKHRoaXMucm9vdD1udWxsKSxlIT09eX1yZXR1cm4hMX0sdy5xdWVyeVBvaW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QucXVlcnlQb2ludCh0LGUpOnZvaWQgMH0sdy5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT49dCYmdGhpcy5yb290P3RoaXMucm9vdC5xdWVyeUludGVydmFsKHQsZSxyKTp2b2lkIDB9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LCJjb3VudCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3Q/dGhpcy5yb290LmNvdW50OjB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsImludGVydmFscyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3Q/dGhpcy5yb290LmludGVydmFscyhbXSk6W119fSl9LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjQ5MX1dLDQ5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHIsbjtpZihlWzBdWzBdPGVbMV1bMF0pcj1lWzBdLG49ZVsxXTtlbHNle2lmKCEoZVswXVswXT5lWzFdWzBdKSl7dmFyIGk9TWF0aC5taW4odFswXVsxXSx0WzFdWzFdKSxhPU1hdGgubWF4KHRbMF1bMV0sdFsxXVsxXSkscz1NYXRoLm1pbihlWzBdWzFdLGVbMV1bMV0pLGw9TWF0aC5tYXgoZVswXVsxXSxlWzFdWzFdKTtyZXR1cm4gcz5hP2EtczppPmw/aS1sOmEtbH1yPWVbMV0sbj1lWzBdfXZhciB1LGM7dFswXVsxXTx0WzFdWzFdPyh1PXRbMF0sYz10WzFdKToodT10WzFdLGM9dFswXSk7dmFyIGg9byhuLHIsdSk7cmV0dXJuIGg/aDooaD1vKG4scixjKSxoP2g6Yy1uKX1mdW5jdGlvbiBpKHQsZSl7dmFyIHIsaTtpZihlWzBdWzBdPGVbMV1bMF0pcj1lWzBdLGk9ZVsxXTtlbHNle2lmKCEoZVswXVswXT5lWzFdWzBdKSlyZXR1cm4gbihlLHQpO3I9ZVsxXSxpPWVbMF19dmFyIGEscztpZih0WzBdWzBdPHRbMV1bMF0pYT10WzBdLHM9dFsxXTtlbHNle2lmKCEodFswXVswXT50WzFdWzBdKSlyZXR1cm4tbih0LGUpO2E9dFsxXSxzPXRbMF19dmFyIGw9byhyLGkscyksdT1vKHIsaSxhKTtpZigwPmwpe2lmKDA+PXUpcmV0dXJuIGx9ZWxzZSBpZihsPjApe2lmKHU+PTApcmV0dXJuIGx9ZWxzZSBpZih1KXJldHVybiB1O2lmKGw9byhzLGEsaSksdT1vKHMsYSxyKSwwPmwpe2lmKDA+PXUpcmV0dXJuIGx9ZWxzZSBpZihsPjApe2lmKHU+PTApcmV0dXJuIGx9ZWxzZSBpZih1KXJldHVybiB1O3JldHVybiBpWzBdLXNbMF19ZS5leHBvcnRzPWk7dmFyIG89dCgicm9idXN0LW9yaWVudGF0aW9uIil9LHsicm9idXN0LW9yaWVudGF0aW9uIjo0NjJ9XSw0OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGksbyl7dGhpcy5fY29sb3I9dCx0aGlzLmtleT1lLHRoaXMudmFsdWU9cix0aGlzLmxlZnQ9bix0aGlzLnJpZ2h0PWksdGhpcy5fY291bnQ9b31mdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgbih0Ll9jb2xvcix0LmtleSx0LnZhbHVlLHQubGVmdCx0LnJpZ2h0LHQuX2NvdW50KX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIG5ldyBuKHQsZS5rZXksZS52YWx1ZSxlLmxlZnQsZS5yaWdodCxlLl9jb3VudCl9ZnVuY3Rpb24gYSh0KXt0Ll9jb3VudD0xKyh0LmxlZnQ/dC5sZWZ0Ll9jb3VudDowKSsodC5yaWdodD90LnJpZ2h0Ll9jb3VudDowKX1mdW5jdGlvbiBzKHQsZSl7dGhpcy5fY29tcGFyZT10LHRoaXMucm9vdD1lfWZ1bmN0aW9uIGwodCxlKXtpZihlLmxlZnQpe3ZhciByPWwodCxlLmxlZnQpO2lmKHIpcmV0dXJuIHJ9dmFyIHI9dChlLmtleSxlLnZhbHVlKTtyZXR1cm4gcj9yOmUucmlnaHQ/bCh0LGUucmlnaHQpOnZvaWQgMH1mdW5jdGlvbiB1KHQsZSxyLG4pe3ZhciBpPWUodCxuLmtleSk7aWYoMD49aSl7aWYobi5sZWZ0KXt2YXIgbz11KHQsZSxyLG4ubGVmdCk7aWYobylyZXR1cm4gb312YXIgbz1yKG4ua2V5LG4udmFsdWUpO2lmKG8pcmV0dXJuIG99cmV0dXJuIG4ucmlnaHQ/dSh0LGUscixuLnJpZ2h0KTp2b2lkIDB9ZnVuY3Rpb24gYyh0LGUscixuLGkpe3ZhciBvLGE9cih0LGkua2V5KSxzPXIoZSxpLmtleSk7aWYoMD49YSl7aWYoaS5sZWZ0JiYobz1jKHQsZSxyLG4saS5sZWZ0KSkpcmV0dXJuIG87aWYocz4wJiYobz1uKGkua2V5LGkudmFsdWUpKSlyZXR1cm4gb31yZXR1cm4gcz4wJiZpLnJpZ2h0P2ModCxlLHIsbixpLnJpZ2h0KTp2b2lkIDB9ZnVuY3Rpb24gaCh0LGUpe3RoaXMudHJlZT10LHRoaXMuX3N0YWNrPWV9ZnVuY3Rpb24gZih0LGUpe3Qua2V5PWUua2V5LHQudmFsdWU9ZS52YWx1ZSx0LmxlZnQ9ZS5sZWZ0LHQucmlnaHQ9ZS5yaWdodCx0Ll9jb2xvcj1lLl9jb2xvcix0Ll9jb3VudD1lLl9jb3VudH1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgZSxyLG4scyxsPXQubGVuZ3RoLTE7bD49MDstLWwpe2lmKGU9dFtsXSwwPT09bClyZXR1cm4gdm9pZChlLl9jb2xvcj12KTtpZihyPXRbbC0xXSxyLmxlZnQ9PT1lKXtpZihuPXIucmlnaHQsbi5yaWdodCYmbi5yaWdodC5fY29sb3I9PT1nKXtpZihuPXIucmlnaHQ9aShuKSxzPW4ucmlnaHQ9aShuLnJpZ2h0KSxyLnJpZ2h0PW4ubGVmdCxuLmxlZnQ9cixuLnJpZ2h0PXMsbi5fY29sb3I9ci5fY29sb3IsZS5fY29sb3I9dixyLl9jb2xvcj12LHMuX2NvbG9yPXYsYShyKSxhKG4pLGw+MSl7dmFyIHU9dFtsLTJdO3UubGVmdD09PXI/dS5sZWZ0PW46dS5yaWdodD1ufXJldHVybiB2b2lkKHRbbC0xXT1uKX1pZihuLmxlZnQmJm4ubGVmdC5fY29sb3I9PT1nKXtpZihuPXIucmlnaHQ9aShuKSxzPW4ubGVmdD1pKG4ubGVmdCksci5yaWdodD1zLmxlZnQsbi5sZWZ0PXMucmlnaHQscy5sZWZ0PXIscy5yaWdodD1uLHMuX2NvbG9yPXIuX2NvbG9yLHIuX2NvbG9yPXYsbi5fY29sb3I9dixlLl9jb2xvcj12LGEociksYShuKSxhKHMpLGw+MSl7dmFyIHU9dFtsLTJdO3UubGVmdD09PXI/dS5sZWZ0PXM6dS5yaWdodD1zfXJldHVybiB2b2lkKHRbbC0xXT1zKX1pZihuLl9jb2xvcj09PXYpe2lmKHIuX2NvbG9yPT09ZylyZXR1cm4gci5fY29sb3I9dix2b2lkKHIucmlnaHQ9byhnLG4pKTtyLnJpZ2h0PW8oZyxuKTtjb250aW51ZX1pZihuPWkobiksci5yaWdodD1uLmxlZnQsbi5sZWZ0PXIsbi5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9ZyxhKHIpLGEobiksbD4xKXt2YXIgdT10W2wtMl07dS5sZWZ0PT09cj91LmxlZnQ9bjp1LnJpZ2h0PW59dFtsLTFdPW4sdFtsXT1yLGwrMTx0Lmxlbmd0aD90W2wrMV09ZTp0LnB1c2goZSksbCs9Mn1lbHNle2lmKG49ci5sZWZ0LG4ubGVmdCYmbi5sZWZ0Ll9jb2xvcj09PWcpe2lmKG49ci5sZWZ0PWkobikscz1uLmxlZnQ9aShuLmxlZnQpLHIubGVmdD1uLnJpZ2h0LG4ucmlnaHQ9cixuLmxlZnQ9cyxuLl9jb2xvcj1yLl9jb2xvcixlLl9jb2xvcj12LHIuX2NvbG9yPXYscy5fY29sb3I9dixhKHIpLGEobiksbD4xKXt2YXIgdT10W2wtMl07dS5yaWdodD09PXI/dS5yaWdodD1uOnUubGVmdD1ufXJldHVybiB2b2lkKHRbbC0xXT1uKX1pZihuLnJpZ2h0JiZuLnJpZ2h0Ll9jb2xvcj09PWcpe2lmKG49ci5sZWZ0PWkobikscz1uLnJpZ2h0PWkobi5yaWdodCksci5sZWZ0PXMucmlnaHQsbi5yaWdodD1zLmxlZnQscy5yaWdodD1yLHMubGVmdD1uLHMuX2NvbG9yPXIuX2NvbG9yLHIuX2NvbG9yPXYsbi5fY29sb3I9dixlLl9jb2xvcj12LGEociksYShuKSxhKHMpLGw+MSl7dmFyIHU9dFtsLTJdO3UucmlnaHQ9PT1yP3UucmlnaHQ9czp1LmxlZnQ9c31yZXR1cm4gdm9pZCh0W2wtMV09cyl9aWYobi5fY29sb3I9PT12KXtpZihyLl9jb2xvcj09PWcpcmV0dXJuIHIuX2NvbG9yPXYsdm9pZChyLmxlZnQ9byhnLG4pKTtyLmxlZnQ9byhnLG4pO2NvbnRpbnVlfWlmKG49aShuKSxyLmxlZnQ9bi5yaWdodCxuLnJpZ2h0PXIsbi5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9ZyxhKHIpLGEobiksbD4xKXt2YXIgdT10W2wtMl07dS5yaWdodD09PXI/dS5yaWdodD1uOnUubGVmdD1ufXRbbC0xXT1uLHRbbF09cixsKzE8dC5sZW5ndGg/dFtsKzFdPWU6dC5wdXNoKGUpLGwrPTJ9fX1mdW5jdGlvbiBkKHQsZSl7cmV0dXJuIGU+dD8tMTp0PmU/MTowfWZ1bmN0aW9uIG0odCl7cmV0dXJuIG5ldyBzKHR8fGQsbnVsbCl9ZS5leHBvcnRzPW07dmFyIGc9MCx2PTEseT1zLnByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwia2V5cyIse2dldDpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oZSxyKXt0LnB1c2goZSl9KSx0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJ2YWx1ZXMiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGUscil7dC5wdXNoKHIpfSksdH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuX2NvdW50OjB9fSkseS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5fY29tcGFyZSxpPXRoaXMucm9vdCxsPVtdLHU9W107aTspe3ZhciBjPXIodCxpLmtleSk7bC5wdXNoKGkpLHUucHVzaChjKSxpPTA+PWM/aS5sZWZ0OmkucmlnaHR9bC5wdXNoKG5ldyBuKGcsdCxlLG51bGwsbnVsbCwxKSk7Zm9yKHZhciBoPWwubGVuZ3RoLTI7aD49MDstLWgpe3ZhciBpPWxbaF07dVtoXTw9MD9sW2hdPW5ldyBuKGkuX2NvbG9yLGkua2V5LGkudmFsdWUsbFtoKzFdLGkucmlnaHQsaS5fY291bnQrMSk6bFtoXT1uZXcgbihpLl9jb2xvcixpLmtleSxpLnZhbHVlLGkubGVmdCxsW2grMV0saS5fY291bnQrMSl9Zm9yKHZhciBoPWwubGVuZ3RoLTE7aD4xOy0taCl7dmFyIGY9bFtoLTFdLGk9bFtoXTtpZihmLl9jb2xvcj09PXZ8fGkuX2NvbG9yPT09dilicmVhazt2YXIgcD1sW2gtMl07aWYocC5sZWZ0PT09ZilpZihmLmxlZnQ9PT1pKXt2YXIgZD1wLnJpZ2h0O2lmKCFkfHxkLl9jb2xvciE9PWcpe2lmKHAuX2NvbG9yPWcscC5sZWZ0PWYucmlnaHQsZi5fY29sb3I9dixmLnJpZ2h0PXAsbFtoLTJdPWYsbFtoLTFdPWksYShwKSxhKGYpLGg+PTMpe3ZhciBtPWxbaC0zXTttLmxlZnQ9PT1wP20ubGVmdD1mOm0ucmlnaHQ9Zn1icmVha31mLl9jb2xvcj12LHAucmlnaHQ9byh2LGQpLHAuX2NvbG9yPWcsaC09MX1lbHNle3ZhciBkPXAucmlnaHQ7aWYoIWR8fGQuX2NvbG9yIT09Zyl7aWYoZi5yaWdodD1pLmxlZnQscC5fY29sb3I9ZyxwLmxlZnQ9aS5yaWdodCxpLl9jb2xvcj12LGkubGVmdD1mLGkucmlnaHQ9cCxsW2gtMl09aSxsW2gtMV09ZixhKHApLGEoZiksYShpKSxoPj0zKXt2YXIgbT1sW2gtM107bS5sZWZ0PT09cD9tLmxlZnQ9aTptLnJpZ2h0PWl9YnJlYWt9Zi5fY29sb3I9dixwLnJpZ2h0PW8odixkKSxwLl9jb2xvcj1nLGgtPTF9ZWxzZSBpZihmLnJpZ2h0PT09aSl7dmFyIGQ9cC5sZWZ0O2lmKCFkfHxkLl9jb2xvciE9PWcpe2lmKHAuX2NvbG9yPWcscC5yaWdodD1mLmxlZnQsZi5fY29sb3I9dixmLmxlZnQ9cCxsW2gtMl09ZixsW2gtMV09aSxhKHApLGEoZiksaD49Myl7dmFyIG09bFtoLTNdO20ucmlnaHQ9PT1wP20ucmlnaHQ9ZjptLmxlZnQ9Zn1icmVha31mLl9jb2xvcj12LHAubGVmdD1vKHYsZCkscC5fY29sb3I9ZyxoLT0xfWVsc2V7dmFyIGQ9cC5sZWZ0O2lmKCFkfHxkLl9jb2xvciE9PWcpe2lmKGYubGVmdD1pLnJpZ2h0LHAuX2NvbG9yPWcscC5yaWdodD1pLmxlZnQsaS5fY29sb3I9dixpLnJpZ2h0PWYsaS5sZWZ0PXAsbFtoLTJdPWksbFtoLTFdPWYsYShwKSxhKGYpLGEoaSksaD49Myl7dmFyIG09bFtoLTNdO20ucmlnaHQ9PT1wP20ucmlnaHQ9aTptLmxlZnQ9aX1icmVha31mLl9jb2xvcj12LHAubGVmdD1vKHYsZCkscC5fY29sb3I9ZyxoLT0xfX1yZXR1cm4gbFswXS5fY29sb3I9dixuZXcgcyhyLGxbMF0pfSx5LmZvckVhY2g9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMucm9vdClzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBsKHQsdGhpcy5yb290KTtjYXNlIDI6cmV0dXJuIHUoZSx0aGlzLl9jb21wYXJlLHQsdGhpcy5yb290KTtjYXNlIDM6aWYodGhpcy5fY29tcGFyZShlLHIpPj0wKXJldHVybjtyZXR1cm4gYyhlLHIsdGhpcy5fY29tcGFyZSx0LHRoaXMucm9vdCl9fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiYmVnaW4iLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT10aGlzLnJvb3Q7ZTspdC5wdXNoKGUpLGU9ZS5sZWZ0O3JldHVybiBuZXcgaCh0aGlzLHQpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJlbmQiLHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT10aGlzLnJvb3Q7ZTspdC5wdXNoKGUpLGU9ZS5yaWdodDtyZXR1cm4gbmV3IGgodGhpcyx0KX19KSx5LmF0PWZ1bmN0aW9uKHQpe2lmKDA+dClyZXR1cm4gbmV3IGgodGhpcyxbXSk7Zm9yKHZhciBlPXRoaXMucm9vdCxyPVtdOzspe2lmKHIucHVzaChlKSxlLmxlZnQpe2lmKHQ8ZS5sZWZ0Ll9jb3VudCl7ZT1lLmxlZnQ7Y29udGludWV9dC09ZS5sZWZ0Ll9jb3VudH1pZighdClyZXR1cm4gbmV3IGgodGhpcyxyKTtpZih0LT0xLCFlLnJpZ2h0KWJyZWFrO2lmKHQ+PWUucmlnaHQuX2NvdW50KWJyZWFrO2U9ZS5yaWdodH1yZXR1cm4gbmV3IGgodGhpcyxbXSl9LHkuZ2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2NvbXBhcmUscj10aGlzLnJvb3Qsbj1bXSxpPTA7cjspe3ZhciBvPWUodCxyLmtleSk7bi5wdXNoKHIpLDA+PW8mJihpPW4ubGVuZ3RoKSxyPTA+PW8/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG4ubGVuZ3RoPWksbmV3IGgodGhpcyxuKX0seS5ndD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdLGk9MDtyOyl7dmFyIG89ZSh0LHIua2V5KTtuLnB1c2gociksMD5vJiYoaT1uLmxlbmd0aCkscj0wPm8/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG4ubGVuZ3RoPWksbmV3IGgodGhpcyxuKX0seS5sdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdLGk9MDtyOyl7dmFyIG89ZSh0LHIua2V5KTtuLnB1c2gociksbz4wJiYoaT1uLmxlbmd0aCkscj0wPj1vP3IubGVmdDpyLnJpZ2h0fXJldHVybiBuLmxlbmd0aD1pLG5ldyBoKHRoaXMsbil9LHkubGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2NvbXBhcmUscj10aGlzLnJvb3Qsbj1bXSxpPTA7cjspe3ZhciBvPWUodCxyLmtleSk7bi5wdXNoKHIpLG8+PTAmJihpPW4ubGVuZ3RoKSxyPTA+bz9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbi5sZW5ndGg9aSxuZXcgaCh0aGlzLG4pfSx5LmZpbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2NvbXBhcmUscj10aGlzLnJvb3Qsbj1bXTtyOyl7dmFyIGk9ZSh0LHIua2V5KTtpZihuLnB1c2gociksMD09PWkpcmV0dXJuIG5ldyBoKHRoaXMsbik7cj0wPj1pP3IubGVmdDpyLnJpZ2h0fXJldHVybiBuZXcgaCh0aGlzLFtdKX0seS5yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5maW5kKHQpO3JldHVybiBlP2UucmVtb3ZlKCk6dGhpc30seS5nZXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2NvbXBhcmUscj10aGlzLnJvb3Q7cjspe3ZhciBuPWUodCxyLmtleSk7aWYoMD09PW4pcmV0dXJuIHIudmFsdWU7cj0wPj1uP3IubGVmdDpyLnJpZ2h0fX07dmFyIGI9aC5wcm90b3R5cGU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGIsInZhbGlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJub2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wP3RoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXTpudWxsfSxlbnVtZXJhYmxlOiEwfSksYi5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgaCh0aGlzLnRyZWUsdGhpcy5fc3RhY2suc2xpY2UoKSl9LGIucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiB0aGlzLnRyZWU7dmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPXRbdC5sZW5ndGgtMV07ZVtlLmxlbmd0aC0xXT1uZXcgbihyLl9jb2xvcixyLmtleSxyLnZhbHVlLHIubGVmdCxyLnJpZ2h0LHIuX2NvdW50KTtmb3IodmFyIGk9dC5sZW5ndGgtMjtpPj0wOy0taSl7dmFyIHI9dFtpXTtyLmxlZnQ9PT10W2krMV0/ZVtpXT1uZXcgbihyLl9jb2xvcixyLmtleSxyLnZhbHVlLGVbaSsxXSxyLnJpZ2h0LHIuX2NvdW50KTplW2ldPW5ldyBuKHIuX2NvbG9yLHIua2V5LHIudmFsdWUsci5sZWZ0LGVbaSsxXSxyLl9jb3VudCl9aWYocj1lW2UubGVuZ3RoLTFdLHIubGVmdCYmci5yaWdodCl7dmFyIG89ZS5sZW5ndGg7Zm9yKHI9ci5sZWZ0O3IucmlnaHQ7KWUucHVzaChyKSxyPXIucmlnaHQ7dmFyIGE9ZVtvLTFdO2UucHVzaChuZXcgbihyLl9jb2xvcixhLmtleSxhLnZhbHVlLHIubGVmdCxyLnJpZ2h0LHIuX2NvdW50KSksZVtvLTFdLmtleT1yLmtleSxlW28tMV0udmFsdWU9ci52YWx1ZTtmb3IodmFyIGk9ZS5sZW5ndGgtMjtpPj1vOy0taSlyPWVbaV0sZVtpXT1uZXcgbihyLl9jb2xvcixyLmtleSxyLnZhbHVlLHIubGVmdCxlW2krMV0sci5fY291bnQpO2Vbby0xXS5sZWZ0PWVbb119aWYocj1lW2UubGVuZ3RoLTFdLHIuX2NvbG9yPT09Zyl7dmFyIGw9ZVtlLmxlbmd0aC0yXTtsLmxlZnQ9PT1yP2wubGVmdD1udWxsOmwucmlnaHQ9PT1yJiYobC5yaWdodD1udWxsKSxlLnBvcCgpO2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7KytpKWVbaV0uX2NvdW50LS07cmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxlWzBdKX1pZihyLmxlZnR8fHIucmlnaHQpe3IubGVmdD9mKHIsci5sZWZ0KTpyLnJpZ2h0JiZmKHIsci5yaWdodCksci5fY29sb3I9djtmb3IodmFyIGk9MDtpPGUubGVuZ3RoLTE7KytpKWVbaV0uX2NvdW50LS07cmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxlWzBdKX1pZigxPT09ZS5sZW5ndGgpcmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxudWxsKTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoOysraSllW2ldLl9jb3VudC0tO3ZhciB1PWVbZS5sZW5ndGgtMl07cmV0dXJuIHAoZSksdS5sZWZ0PT09cj91LmxlZnQ9bnVsbDp1LnJpZ2h0PW51bGwsbmV3IHModGhpcy50cmVlLl9jb21wYXJlLGVbMF0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwia2V5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wP3RoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXS5rZXk6dm9pZCAwfSxlbnVtZXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGIsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wP3RoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXS52YWx1ZTp2b2lkIDB9LGVudW1lcmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYiwiaW5kZXgiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD0wLGU9dGhpcy5fc3RhY2s7aWYoMD09PWUubGVuZ3RoKXt2YXIgcj10aGlzLnRyZWUucm9vdDtyZXR1cm4gcj9yLl9jb3VudDowfWVbZS5sZW5ndGgtMV0ubGVmdCYmKHQ9ZVtlLmxlbmd0aC0xXS5sZWZ0Ll9jb3VudCk7Zm9yKHZhciBuPWUubGVuZ3RoLTI7bj49MDstLW4pZVtuKzFdPT09ZVtuXS5yaWdodCYmKCsrdCxlW25dLmxlZnQmJih0Kz1lW25dLmxlZnQuX2NvdW50KSk7cmV0dXJuIHR9LGVudW1lcmFibGU6ITB9KSxiLm5leHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwIT09dC5sZW5ndGgpe3ZhciBlPXRbdC5sZW5ndGgtMV07aWYoZS5yaWdodClmb3IoZT1lLnJpZ2h0O2U7KXQucHVzaChlKSxlPWUubGVmdDtlbHNlIGZvcih0LnBvcCgpO3QubGVuZ3RoPjAmJnRbdC5sZW5ndGgtMV0ucmlnaHQ9PT1lOyllPXRbdC5sZW5ndGgtMV0sdC5wb3AoKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJoYXNOZXh0Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiExO2lmKHRbdC5sZW5ndGgtMV0ucmlnaHQpcmV0dXJuITA7Zm9yKHZhciBlPXQubGVuZ3RoLTE7ZT4wOy0tZSlpZih0W2UtMV0ubGVmdD09PXRbZV0pcmV0dXJuITA7cmV0dXJuITF9fSksYi51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fc3RhY2s7aWYoMD09PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiQ2FuJ3QgdXBkYXRlIGVtcHR5IG5vZGUhIik7dmFyIHI9bmV3IEFycmF5KGUubGVuZ3RoKSxpPWVbZS5sZW5ndGgtMV07cltyLmxlbmd0aC0xXT1uZXcgbihpLl9jb2xvcixpLmtleSx0LGkubGVmdCxpLnJpZ2h0LGkuX2NvdW50KTtmb3IodmFyIG89ZS5sZW5ndGgtMjtvPj0wOy0tbylpPWVbb10saS5sZWZ0PT09ZVtvKzFdP3Jbb109bmV3IG4oaS5fY29sb3IsaS5rZXksaS52YWx1ZSxyW28rMV0saS5yaWdodCxpLl9jb3VudCk6cltvXT1uZXcgbihpLl9jb2xvcixpLmtleSxpLnZhbHVlLGkubGVmdCxyW28rMV0saS5fY291bnQpO3JldHVybiBuZXcgcyh0aGlzLnRyZWUuX2NvbXBhcmUsclswXSl9LGIucHJldj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N0YWNrO2lmKDAhPT10Lmxlbmd0aCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTtpZihlLmxlZnQpZm9yKGU9ZS5sZWZ0O2U7KXQucHVzaChlKSxlPWUucmlnaHQ7ZWxzZSBmb3IodC5wb3AoKTt0Lmxlbmd0aD4wJiZ0W3QubGVuZ3RoLTFdLmxlZnQ9PT1lOyllPXRbdC5sZW5ndGgtMV0sdC5wb3AoKX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJoYXNQcmV2Iix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiExO2lmKHRbdC5sZW5ndGgtMV0ubGVmdClyZXR1cm4hMDtmb3IodmFyIGU9dC5sZW5ndGgtMTtlPjA7LS1lKWlmKHRbZS0xXS5yaWdodD09PXRbZV0pcmV0dXJuITA7cmV0dXJuITF9fSl9LHt9XSw0OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dGhpcy5zbGFicz10LHRoaXMuY29vcmRpbmF0ZXM9ZSx0aGlzLmhvcml6b250YWw9cn1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHQueS1lfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9bnVsbDt0Oyl7dmFyIG4saSxhPXQua2V5O2FbMF1bMF08YVsxXVswXT8obj1hWzBdLGk9YVsxXSk6KG49YVsxXSxpPWFbMF0pO3ZhciBzPWgobixpLGUpO2lmKDA+cyl0PXQubGVmdDtlbHNlIGlmKHM+MClpZihlWzBdIT09YVsxXVswXSlyPXQsdD10LnJpZ2h0O2Vsc2V7dmFyIGw9byh0LnJpZ2h0LGUpO2lmKGwpcmV0dXJuIGw7dD10LmxlZnR9ZWxzZXtpZihlWzBdIT09YVsxXVswXSlyZXR1cm4gdDt2YXIgbD1vKHQucmlnaHQsZSk7aWYobClyZXR1cm4gbDt0PXQubGVmdH19cmV0dXJuIHJ9ZnVuY3Rpb24gYSh0LGUscixuKXt0aGlzLnk9dCx0aGlzLmluZGV4PWUsdGhpcy5zdGFydD1yLHRoaXMuY2xvc2VkPW59ZnVuY3Rpb24gcyh0LGUscixuKXt0aGlzLng9dCx0aGlzLnNlZ21lbnQ9ZSx0aGlzLmNyZWF0ZT1yLHRoaXMuaW5kZXg9bn1mdW5jdGlvbiBsKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTIqZSxpPW5ldyBBcnJheShyKSxvPTA7ZT5vOysrbyl7dmFyIGw9dFtvXSx1PWxbMF1bMF08bFsxXVswXTtpWzIqb109bmV3IHMobFswXVswXSxsLHUsbyksaVsyKm8rMV09bmV3IHMobFsxXVswXSxsLCF1LG8pfWkuc29ydChmdW5jdGlvbih0LGUpe3ZhciByPXQueC1lLng7cmV0dXJuIHI/cjoocj10LmNyZWF0ZS1lLmNyZWF0ZSxyP3I6TWF0aC5taW4odC5zZWdtZW50WzBdWzFdLHQuc2VnbWVudFsxXVsxXSktTWF0aC5taW4oZS5zZWdtZW50WzBdWzFdLGUuc2VnbWVudFsxXVsxXSkpfSk7Zm9yKHZhciBoPWMoZikscD1bXSxkPVtdLG09W10sbz0wO3I+bzspe2Zvcih2YXIgZz1pW29dLngsdj1bXTtyPm87KXt2YXIgeT1pW29dO2lmKHkueCE9PWcpYnJlYWs7bys9MSx5LnNlZ21lbnRbMF1bMF09PT15LngmJnkuc2VnbWVudFsxXVswXT09PXkueD95LmNyZWF0ZSYmKHkuc2VnbWVudFswXVsxXTx5LnNlZ21lbnRbMV1bMV0/KHYucHVzaChuZXcgYSh5LnNlZ21lbnRbMF1bMV0seS5pbmRleCwhMCwhMCkpLHYucHVzaChuZXcgYSh5LnNlZ21lbnRbMV1bMV0seS5pbmRleCwhMSwhMSkpKToodi5wdXNoKG5ldyBhKHkuc2VnbWVudFsxXVsxXSx5LmluZGV4LCEwLCExKSksdi5wdXNoKG5ldyBhKHkuc2VnbWVudFswXVsxXSx5LmluZGV4LCExLCEwKSkpKTpoPXkuY3JlYXRlP2guaW5zZXJ0KHkuc2VnbWVudCx5LmluZGV4KTpoLnJlbW92ZSh5LnNlZ21lbnQpfXAucHVzaChoLnJvb3QpLGQucHVzaChnKSxtLnB1c2godil9cmV0dXJuIG5ldyBuKHAsZCxtKX1lLmV4cG9ydHM9bDt2YXIgdT10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLGM9dCgiZnVuY3Rpb25hbC1yZWQtYmxhY2stdHJlZSIpLGg9dCgicm9idXN0LW9yaWVudGF0aW9uIiksZj10KCIuL2xpYi9vcmRlci1zZWdtZW50cyIpLHA9bi5wcm90b3R5cGU7cC5jYXN0VXA9ZnVuY3Rpb24odCl7dmFyIGU9dS5sZSh0aGlzLmNvb3JkaW5hdGVzLHRbMF0pO2lmKDA+ZSlyZXR1cm4tMTt2YXIgcj0odGhpcy5zbGFic1tlXSxvKHRoaXMuc2xhYnNbZV0sdCkpLG49LTE7aWYociYmKG49ci52YWx1ZSksdGhpcy5jb29yZGluYXRlc1tlXT09PXRbMF0pe3ZhciBhPW51bGw7aWYociYmKGE9ci5rZXkpLGU+MCl7dmFyIHM9byh0aGlzLnNsYWJzW2UtMV0sdCk7cyYmKGE/ZihzLmtleSxhKT4wJiYoYT1zLmtleSxuPXMudmFsdWUpOihuPXMudmFsdWUsYT1zLmtleSkpfXZhciBsPXRoaXMuaG9yaXpvbnRhbFtlXTtpZihsLmxlbmd0aD4wKXt2YXIgYz11LmdlKGwsdFsxXSxpKTtpZihjPGwubGVuZ3RoKXt2YXIgcD1sW2NdO2lmKHRbMV09PT1wLnkpe2lmKHAuY2xvc2VkKXJldHVybiBwLmluZGV4O2Zvcig7YzxsLmxlbmd0aC0xJiZsW2MrMV0ueT09PXRbMV07KWlmKGMrPTEscD1sW2NdLHAuY2xvc2VkKXJldHVybiBwLmluZGV4O2lmKHAueT09PXRbMV0mJiFwLnN0YXJ0KXtpZihjKz0xLGM+PWwubGVuZ3RoKXJldHVybiBuO3A9bFtjXX19aWYocC5zdGFydClpZihhKXt2YXIgZD1oKGFbMF0sYVsxXSxbdFswXSxwLnldKTthWzBdWzBdPmFbMV1bMF0mJihkPS1kKSxkPjAmJihuPXAuaW5kZXgpfWVsc2Ugbj1wLmluZGV4O2Vsc2UgcC55IT09dFsxXSYmKG49cC5pbmRleCl9fX1yZXR1cm4gbn19LHsiLi9saWIvb3JkZXItc2VnbWVudHMiOjQ5MywiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjQ5MSwiZnVuY3Rpb25hbC1yZWQtYmxhY2stdHJlZSI6NDk0LCJyb2J1c3Qtb3JpZW50YXRpb24iOjQ2Mn1dLDQ5NjpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4oKXtyZXR1cm4hMH1mdW5jdGlvbiBpKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBpPXRbZV07cmV0dXJuIGk/ISFpLnF1ZXJ5UG9pbnQocixuKTohMX19ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9e30scj0wO3I8dC5sZW5ndGg7KytyKXt2YXIgbj10W3JdLG89blswXVswXSxhPW5bMF1bMV0scz1uWzFdWzFdLGw9W01hdGgubWluKGEscyksTWF0aC5tYXgoYSxzKV07byBpbiBlP2Vbb10ucHVzaChsKTplW29dPVtsXX1mb3IodmFyIHU9e30sYz1PYmplY3Qua2V5cyhlKSxyPTA7cjxjLmxlbmd0aDsrK3Ipe3ZhciBoPWVbY1tyXV07dVtjW3JdXT1wKGgpfXJldHVybiBpKHUpfWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49ZC5sZShlLHJbMF0pO2lmKDA+bilyZXR1cm4gMTt2YXIgaT10W25dO2lmKCFpKXtpZighKG4+MCYmZVtuXT09PXJbMF0pKXJldHVybiAxO2k9dFtuLTFdfWZvcih2YXIgbz0xO2k7KXt2YXIgYT1pLmtleSxzPWgocixhWzBdLGFbMV0pO2lmKGFbMF1bMF08YVsxXVswXSlpZigwPnMpaT1pLmxlZnQ7ZWxzZXtpZighKHM+MCkpcmV0dXJuIDA7bz0tMSxpPWkucmlnaHR9ZWxzZSBpZihzPjApaT1pLmxlZnQ7ZWxzZXtpZighKDA+cykpcmV0dXJuIDA7bz0xLGk9aS5yaWdodH19cmV0dXJuIG99fWZ1bmN0aW9uIHModCl7cmV0dXJuIDF9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZVswXSxlWzFdKT8wOjF9fWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQoclswXSxyWzFdKT8wOmUocil9fWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj1bXSxpPTA7ZT5pOysraSlmb3IodmFyIGM9dFtpXSxoPWMubGVuZ3RoLHA9aC0xLGQ9MDtoPmQ7cD1kKyspe3ZhciBtPWNbcF0sZz1jW2RdO21bMF09PT1nWzBdP24ucHVzaChbbSxnXSk6ci5wdXNoKFttLGddKX1pZigwPT09ci5sZW5ndGgpcmV0dXJuIDA9PT1uLmxlbmd0aD9zOmwobyhuKSk7dmFyIHY9ZihyKSx5PWEodi5zbGFicyx2LmNvb3JkaW5hdGVzKTtyZXR1cm4gMD09PW4ubGVuZ3RoP3k6dShvKG4pLHkpfWUuZXhwb3J0cz1jO3ZhciBoPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdLGY9dCgic2xhYi1kZWNvbXBvc2l0aW9uIikscD10KCJpbnRlcnZhbC10cmVlLTFkIiksZD10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpfSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjo0OTEsImludGVydmFsLXRyZWUtMWQiOjQ5Miwicm9idXN0LW9yaWVudGF0aW9uIjo0NjIsInNsYWItZGVjb21wb3NpdGlvbiI6NDk1fV0sNDk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQpLG49MDt0Pm47KytuKXJbbl09ZTtyZXR1cm4gcn1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3Q+cjsrK3IpZVtyXT1bXTtyZXR1cm4gZX1mdW5jdGlvbiBvKHQsZSl7ZnVuY3Rpb24gcih0KXtmb3IodmFyIHI9dC5sZW5ndGgsbj1bMF0saT0wO3I+aTsrK2kpe3ZhciBvPWVbdFtpXV0sYT1lW3RbKGkrMSklcl1dLHM9dSgtb1swXSxvWzFdKSxsPXUoLW9bMF0sYVsxXSksaD11KGFbMF0sb1sxXSksZj11KGFbMF0sYVsxXSk7bj1jKG4sYyhjKHMsbCksYyhoLGYpKSl9cmV0dXJuIG5bbi5sZW5ndGgtMV0+MH1mdW5jdGlvbiBvKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTA7ZT5yOysrcilpZighUlt0W3JdXSlyZXR1cm4hMTtyZXR1cm4hMH12YXIgcD1mKHQsZSk7dD1wWzBdLGU9cFsxXTtmb3IodmFyIGQ9ZS5sZW5ndGgsbT0odC5sZW5ndGgsYSh0LGUubGVuZ3RoKSksZz0wO2Q+ZzsrK2cpaWYobVtnXS5sZW5ndGglMj09PTEpdGhyb3cgbmV3IEVycm9yKCJwbGFuYXItZ3JhcGgtdG8tcG9seWxpbmU6IGdyYXBoIG11c3QgYmUgbWFuaWZvbGQiKTt2YXIgdj1zKHQsZSk7dj12LmZpbHRlcihyKTtmb3IodmFyIHk9di5sZW5ndGgsYj1uZXcgQXJyYXkoeSkseD1uZXcgQXJyYXkoeSksZz0wO3k+ZzsrK2cpe2JbZ109Zzt2YXIgXz1uZXcgQXJyYXkoeSksdz12W2ddLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pLE09bChbd10pLGs9MDt0OmZvcih2YXIgQT0wO3k+QTsrK0EpaWYoX1tBXT0wLGchPT1BKXtmb3IodmFyIFQ9dltBXSxFPVQubGVuZ3RoLFM9MDtFPlM7KytTKXt2YXIgTD1NKGVbVFtTXV0pO2lmKDAhPT1MKXswPkwmJihfW0FdPTEsays9MSk7Y29udGludWUgdH19X1tBXT0xLGsrPTF9eFtnXT1bayxnLF9dfXguc29ydChmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLXRbMF19KTtmb3IodmFyIGc9MDt5Pmc7KytnKWZvcih2YXIgXz14W2ddLHo9X1sxXSxJPV9bMl0sQT0wO3k+QTsrK0EpSVtBXSYmKGJbQV09eik7Zm9yKHZhciBQPWkoeSksZz0wO3k+ZzsrK2cpUFtnXS5wdXNoKGJbZ10pLFBbYltnXV0ucHVzaChnKTtmb3IodmFyIEM9e30sUj1uKGQsITEpLGc9MDt5Pmc7KytnKWZvcih2YXIgVD12W2ddLEU9VC5sZW5ndGgsQT0wO0U+QTsrK0Epe3ZhciBqPVRbQV0sRD1UWyhBKzEpJUVdLE89TWF0aC5taW4oaixEKSsiOiIrTWF0aC5tYXgoaixEKTtpZihPIGluIEMpe3ZhciBGPUNbT107UFtGXS5wdXNoKGcpLFBbZ10ucHVzaChGKSxSW2pdPVJbRF09ITB9ZWxzZSBDW09dPWd9Zm9yKHZhciBOPVtdLEI9bih5LC0xKSxnPTA7eT5nOysrZyliW2ddIT09Z3x8byh2W2ddKT9CW2ddPS0xOihOLnB1c2goZyksQltnXT0wKTtmb3IodmFyIHA9W107Ti5sZW5ndGg+MDspe3ZhciBVPU4ucG9wKCksVj1QW1VdO2goVixmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KTt2YXIgcSxHPVYubGVuZ3RoLEg9QltVXTtpZigwPT09SCl7dmFyIFQ9dltVXTtxPVtUXX1mb3IodmFyIGc9MDtHPmc7KytnKXt2YXIgWD1WW2ddO2lmKCEoQltYXT49MCkmJihCW1hdPTFeSCxOLnB1c2goWCksMD09PUgpKXt2YXIgVD12W1hdO28oVCl8fChULnJldmVyc2UoKSxxLnB1c2goVCkpfX0wPT09SCYmcC5wdXNoKHEpfXJldHVybiBwfWUuZXhwb3J0cz1vO3ZhciBhPXQoImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0Iikscz10KCJwbGFuYXItZHVhbCIpLGw9dCgicG9pbnQtaW4tYmlnLXBvbHlnb24iKSx1PXQoInR3by1wcm9kdWN0IiksYz10KCJyb2J1c3Qtc3VtIiksaD10KCJ1bmlxIiksZj10KCIuL2xpYi90cmltLWxlYXZlcyIpfSx7Ii4vbGliL3RyaW0tbGVhdmVzIjo0ODUsImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0Ijo0ODYsInBsYW5hci1kdWFsIjo0ODcsInBvaW50LWluLWJpZy1wb2x5Z29uIjo0OTYsInJvYnVzdC1zdW0iOjQ2NSwidHdvLXByb2R1Y3QiOjQ3OSx1bmlxOjQ4Mn1dLDQ5ODpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVs1MV1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjUxfV0sNDk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiOyJ1c2UgcmVzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5yb290cz1uZXcgQXJyYXkodCksdGhpcy5yYW5rcz1uZXcgQXJyYXkodCk7Zm9yKHZhciBlPTA7dD5lOysrZSl0aGlzLnJvb3RzW2VdPWUsdGhpcy5yYW5rc1tlXT0wfWUuZXhwb3J0cz1uLG4ucHJvdG90eXBlLmxlbmd0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3RzLmxlbmd0aH0sbi5wcm90b3R5cGUubWFrZVNldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdHMubGVuZ3RoO3JldHVybiB0aGlzLnJvb3RzLnB1c2godCksdGhpcy5yYW5rcy5wdXNoKDApLHR9LG4ucHJvdG90eXBlLmZpbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMucm9vdHM7ZVt0XSE9PXQ7KXt2YXIgcj1lW3RdO2VbdF09ZVtyXSx0PXJ9cmV0dXJuIHR9LG4ucHJvdG90eXBlLmxpbms9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmQodCksbj10aGlzLmZpbmQoZSk7aWYociE9PW4pe3ZhciBpPXRoaXMucmFua3Msbz10aGlzLnJvb3RzLGE9aVtyXSxzPWlbbl07cz5hP29bcl09bjphPnM/b1tuXT1yOihvW25dPXIsKytpW3JdKX19fSx7fV0sNTAwOltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzI0OV1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ImJpdC10d2lkZGxlIjo0OTgsZHVwOjI0OSwidW5pb24tZmluZCI6NDk5fV0sNTAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPU1hdGguYWJzKG8odCxlLHIpKSxpPU1hdGguc3FydChNYXRoLnBvdyhlWzBdLXJbMF0sMikrTWF0aC5wb3coZVsxXS1yWzFdLDIpKTtyZXR1cm4gbi9pfWZ1bmN0aW9uIGkodCxlLHIpe2Z1bmN0aW9uIGkodCl7aWYoeFt0XSlyZXR1cm4gMS8wO3ZhciByPXZbdF0saT15W3RdO3JldHVybiAwPnJ8fDA+aT8xLzA6bihlW3RdLGVbcl0sZVtpXSl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPUFbdF0sbj1BW2VdO0FbdF09bixBW2VdPXIsVFtyXT1lLFRbbl09dH1mdW5jdGlvbiBzKHQpe3JldHVybiBiW0FbdF1dfWZ1bmN0aW9uIGwodCl7cmV0dXJuIDEmdD90LTE+PjE6KHQ+PjEpLTF9ZnVuY3Rpb24gdSh0KXtmb3IodmFyIGU9cyh0KTs7KXt2YXIgcj1lLG49Mip0KzEsaT0yKih0KzEpLGE9dDtpZihTPm4pe3ZhciBsPXMobik7cj5sJiYoYT1uLHI9bCl9aWYoUz5pKXt2YXIgdT1zKGkpO3I+dSYmKGE9aSl9aWYoYT09PXQpcmV0dXJuIHQ7byh0LGEpLHQ9YX19ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGU9cyh0KTt0PjA7KXt2YXIgcj1sKHQpO2lmKHI+PTApe3ZhciBuPXMocik7aWYobj5lKXtvKHQsciksdD1yO2NvbnRpbnVlfX1yZXR1cm4gdH19ZnVuY3Rpb24gaCgpe2lmKFM+MCl7dmFyIHQ9QVswXTtyZXR1cm4gbygwLFMtMSksUy09MSx1KDApLHR9cmV0dXJuLTF9ZnVuY3Rpb24gZih0LGUpe3ZhciByPUFbdF07cmV0dXJuIGJbcl09PT1lP3Q6KGJbcl09LSgxLzApLGModCksaCgpLGJbcl09ZSxTKz0xLGMoUy0xKSl9ZnVuY3Rpb24gcCh0KXtpZigheFt0XSl7eFt0XT0hMDt2YXIgZT12W3RdLHI9eVt0XTt2W3JdPj0wJiYodltyXT1lKSx5W2VdPj0wJiYoeVtlXT1yKSxUW2VdPj0wJiZmKFRbZV0saShlKSksVFtyXT49MCYmZihUW3JdLGkocikpfX1mdW5jdGlvbiBkKHQsZSl7aWYodFtlXTwwKXJldHVybiBlO3ZhciByPWUsbj1lO2Rve3ZhciBpPXRbbl07aWYoIXhbbl18fDA+aXx8aT09PW4pYnJlYWs7aWYobj1pLGk9dFtuXSwheFtuXXx8MD5pfHxpPT09bilicmVhaztuPWkscj10W3JdfXdoaWxlKHIhPT1uKTtmb3IodmFyIG89ZTtvIT09bjtvPXRbb10pdFtvXT1uO3JldHVybiBufWZvcih2YXIgbT1lLmxlbmd0aCxnPXQubGVuZ3RoLHY9bmV3IEFycmF5KG0pLHk9bmV3IEFycmF5KG0pLGI9bmV3IEFycmF5KG0pLHg9bmV3IEFycmF5KG0pLF89MDttPl87KytfKXZbX109eVtfXT0tMSxiW19dPTEvMCx4W19dPSExO2Zvcih2YXIgXz0wO2c+XzsrK18pe3ZhciB3PXRbX107aWYoMiE9PXcubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW5wdXQgbXVzdCBiZSBhIGdyYXBoIik7dmFyIE09d1sxXSxrPXdbMF07LTEhPT15W2tdP3lba109LTI6eVtrXT1NLC0xIT09dltNXT92W01dPS0yOnZbTV09a31mb3IodmFyIEE9W10sVD1uZXcgQXJyYXkobSksXz0wO20+XzsrK18pe3ZhciBFPWJbX109aShfKTsxLzA+RT8oVFtfXT1BLmxlbmd0aCxBLnB1c2goXykpOlRbX109LTF9Zm9yKHZhciBTPUEubGVuZ3RoLF89Uz4+MTtfPj0wOy0tXyl1KF8pO2Zvcig7Oyl7dmFyIEw9aCgpO2lmKDA+THx8YltMXT5yKWJyZWFrO3AoTCl9Zm9yKHZhciB6PVtdLF89MDttPl87KytfKXhbX118fChUW19dPXoubGVuZ3RoLHoucHVzaChlW19dLnNsaWNlKCkpKTt2YXIgST0oei5sZW5ndGgsW10pO3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9ZCh2LHRbMF0pLHI9ZCh5LHRbMV0pO2lmKGU+PTAmJnI+PTAmJmUhPT1yKXt2YXIgbj1UW2VdLGk9VFtyXTtuIT09aSYmSS5wdXNoKFtuLGldKX19KSxhLnVuaXF1ZShhLm5vcm1hbGl6ZShJKSkse3Bvc2l0aW9uczp6LGVkZ2VzOkl9fWUuZXhwb3J0cz1pO3ZhciBvPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpLGE9dCgic2ltcGxpY2lhbC1jb21wbGV4Iil9LHsicm9idXN0LW9yaWVudGF0aW9uIjo0NjIsInNpbXBsaWNpYWwtY29tcGxleCI6NTAwfV0sNTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1bIiIse3BhdGg6Ik0tMi40LC0zVjNMMC42LDBaIixiYWNrb2ZmOi42fSx7cGF0aDoiTS0zLjcsLTIuNVYyLjVMMS4zLDBaIixiYWNrb2ZmOjEuM30se3BhdGg6Ik0tNC40NSwtM0wtMS42NSwtMC4yVjAuMkwtNC40NSwzTDEuNTUsMFoiLGJhY2tvZmY6MS41NX0se3BhdGg6Ik0tMi4yLC0yLjJMLTAuMiwtMC4yVjAuMkwtMi4yLDIuMkwtMS40LDNMMS42LDBMLTEuNCwtM1oiLGJhY2tvZmY6MS42fSx7cGF0aDoiTS00LjQsLTIuMUwtMC42LC0wLjJWMC4yTC00LjQsMi4xTC00LDNMMiwwTC00LC0zWiIsYmFja29mZjoyfSx7cGF0aDoiTTIsMEEyLDIgMCAxLDEgMCwtMkEyLDIgMCAwLDEgMiwwWiIsYmFja29mZjowfSx7cGF0aDoiTTIsMlYtMkgtMlYyWiIsYmFja29mZjowfV19LHt9XSw1MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJvd19wYXRocyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e19pc0xpbmtlZFRvQXJyYXk6ITAsdGV4dDp7dmFsVHlwZToic3RyaW5nIn0sdGV4dGFuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDowfSxmb250OmEoe30saSx7fSksb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9LGFsaWduOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJjZW50ZXIifSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSJ9LGJvcmRlcnBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd2Fycm93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxhcnJvd2NvbG9yOnt2YWxUeXBlOiJjb2xvciJ9LGFycm93aGVhZDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsbWF4Om4ubGVuZ3RoLGRmbHQ6MX0sYXJyb3dzaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjouMyxkZmx0OjF9LGFycm93d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi4xfSxheDp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi0xMH0sYXk6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDotMzB9LGF4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJwaXhlbCIsdmFsdWVzOlsicGl4ZWwiLG8uaWRSZWdleC54LnRvU3RyaW5nKCldfSxheXJlZjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoicGl4ZWwiLHZhbHVlczpbInBpeGVsIixvLmlkUmVnZXgueS50b1N0cmluZygpXX0seHJlZjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicGFwZXIiLG8uaWRSZWdleC54LnRvU3RyaW5nKCldfSx4Ont2YWxUeXBlOiJudW1iZXIifSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoiYXV0byJ9LHlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixvLmlkUmVnZXgueS50b1N0cmluZygpXX0seTp7dmFsVHlwZToibnVtYmVyIn0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6ImF1dG8ifSxfZGVwcmVjYXRlZDp7cmVmOnt2YWxUeXBlOiJzdHJpbmcifX19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjU4NiwKIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiOjYyMCwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo2MzMsIi4vYXJyb3dfcGF0aHMiOjUwMn1dLDUwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gcihlLHIpe3JldHVybiB1LmNvZXJjZSh0LG4sZy5sYXlvdXRBdHRyaWJ1dGVzLGUscil9dmFyIG49e307cigib3BhY2l0eSIpLHIoImFsaWduIikscigiYmdjb2xvciIpO3ZhciBpPXIoImJvcmRlcmNvbG9yIiksbz1oLm9wYWNpdHkoaSk7cigiYm9yZGVycGFkIik7dmFyIGE9cigiYm9yZGVyd2lkdGgiKSxzPXIoInNob3dhcnJvdyIpO3MmJihyKCJhcnJvd2NvbG9yIixvP24uYm9yZGVyY29sb3I6aC5kZWZhdWx0TGluZSkscigiYXJyb3doZWFkIikscigiYXJyb3dzaXplIikscigiYXJyb3d3aWR0aCIsMioobyYmYXx8MSkpLHIoImF4IikscigiYXkiKSxyKCJheHJlZiIpLHIoImF5cmVmIiksdS5ub25lT3JBbGwodCxuLFsiYXgiLCJheSJdKSkscigidGV4dCIscz8iJm5ic3A7IjoibmV3IHRleHQiKSxyKCJ0ZXh0YW5nbGUiKSx1LmNvZXJjZUZvbnQociwiZm9udCIsZS5mb250KTtmb3IodmFyIGw9WyJ4IiwieSJdLGY9MDsyPmY7ZisrKXt2YXIgcD1sW2ZdLGQ9e19mdWxsTGF5b3V0OmV9LG09Yy5jb2VyY2VSZWYodCxuLGQscCksdj1jLmNvZXJjZUFSZWYodCxuLGQscCkseT0uNTtpZigicGFwZXIiIT09bSl7dmFyIGI9Yy5nZXRGcm9tSWQoZCxtKTtpZih5PWIucmFuZ2VbMF0reSooYi5yYW5nZVsxXS1iLnJhbmdlWzBdKSwtMSE9PVsiZGF0ZSIsImNhdGVnb3J5Il0uaW5kZXhPZihiLnR5cGUpJiYic3RyaW5nIj09dHlwZW9mIHRbcF0pe3ZhciB4O2lmKCJkYXRlIj09PWIudHlwZSl7aWYoeD11LmRhdGVUaW1lMm1zKHRbcF0pLHghPT0hMSYmKHRbcF09eCksdj09PW0pe3ZhciBfPXUuZGF0ZVRpbWUybXModFsiYSIrcF0pO18hPT0hMSYmKHRbImEiK3BdPV8pfX1lbHNlKGIuX2NhdGVnb3JpZXN8fFtdKS5sZW5ndGgmJih4PWIuX2NhdGVnb3JpZXMuaW5kZXhPZih0W3BdKSwtMSE9PXgmJih0W3BdPXgpKX19cihwLHkpLHN8fHIocCsiYW5jaG9yIil9cmV0dXJuIHUubm9uZU9yQWxsKHQsbixbIngiLCJ5Il0pLG59ZnVuY3Rpb24gaSh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2UuYW5ub3RhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgcj1jLmdldEZyb21JZCh0LGUueHJlZiksbj1jLmdldEZyb21JZCh0LGUueXJlZik7aWYocnx8bil7dmFyIGk9KGUuX3hzaXplfHwwKS8yLG89ZS5feHNoaWZ0fHwwLGE9KGUuX3lzaXplfHwwKS8yLHM9ZS5feXNoaWZ0fHwwLGw9aS1vLHU9aStvLGg9YS1zLGY9YStzO2lmKGUuc2hvd2Fycm93KXt2YXIgcD0zKmUuYXJyb3dzaXplKmUuYXJyb3d3aWR0aDtsPU1hdGgubWF4KGwscCksdT1NYXRoLm1heCh1LHApLGg9TWF0aC5tYXgoaCxwKSxmPU1hdGgubWF4KGYscCl9ciYmci5hdXRvcmFuZ2UmJmMuZXhwYW5kKHIsW3IubDJjKGUueCldLHtwcGFkcGx1czp1LHBwYWRtaW51czpsfSksbiYmbi5hdXRvcmFuZ2UmJmMuZXhwYW5kKG4sW24ubDJjKGUueSldLHtwcGFkcGx1czpmLHBwYWRtaW51czpofSl9fSl9ZnVuY3Rpb24gbyh0LGUscixuLGksbyxhLHMpe3ZhciBsPXItdCx1PWktdCxjPWEtaSxoPW4tZSxmPW8tZSxwPXMtbyxkPWwqcC1jKmg7aWYoMD09PWQpcmV0dXJuIG51bGw7dmFyIG09KHUqcC1jKmYpL2QsZz0odSpoLWwqZikvZDtyZXR1cm4gMD5nfHxnPjF8fDA+bXx8bT4xP251bGw6e3g6dCtsKm0seTplK2gqbX19dmFyIGE9dCgiZDMiKSxzPXQoImZhc3QtaXNudW1lcmljIiksbD10KCIuLi8uLi9wbG90bHkiKSx1PXQoIi4uLy4uL2xpYiIpLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxoPXQoIi4uL2NvbG9yIiksZj10KCIuLi9kcmF3aW5nIikscD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxkPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxtPXQoIi4uL2RyYWdlbGVtZW50IiksZz1lLmV4cG9ydHM9e307Zy5BUlJPV1BBVEhTPXQoIi4vYXJyb3dfcGF0aHMiKSxnLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksZy5zdXBwbHlMYXlvdXREZWZhdWx0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmFubm90YXRpb25zfHxbXSxpPWUuYW5ub3RhdGlvbnM9W10sbz0wO288ci5sZW5ndGg7bysrKWkucHVzaChuKHJbb118fHt9LGUpKX0sZy5kcmF3QWxsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7ZS5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24iKS5yZW1vdmUoKTtmb3IodmFyIHI9MDtyPGUuYW5ub3RhdGlvbnMubGVuZ3RoO3IrKylnLmRyYXcodCxyKTtyZXR1cm4gbC5QbG90cy5wcmV2aW91c1Byb21pc2VzKHQpfSxnLmFkZD1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zLmxlbmd0aDtsLnJlbGF5b3V0KHQsImFubm90YXRpb25zWyIrZSsiXSIsImFkZCIpfSxnLmRyYXc9ZnVuY3Rpb24odCxlLHIsaSl7ZnVuY3Rpb24gdih0KXtyZXR1cm4gdC5jYWxsKGYuZm9udCwkKS5hdHRyKHsidGV4dC1hbmNob3IiOntsZWZ0OiJzdGFydCIscmlnaHQ6ImVuZCJ9W1UuYWxpZ25dfHwibWlkZGxlIn0pLHAuY29udmVydFRvVHNwYW5zKHQseSksdH1mdW5jdGlvbiB5KCl7ZnVuY3Rpb24gcih0LGUpe3JldHVybiJhdXRvIj09PWUmJihlPTEvMz50PyJsZWZ0Ijp0PjIvMz8icmlnaHQiOiJjZW50ZXIiKSx7Y2VudGVyOjAsbWlkZGxlOjAsbGVmdDouNSxib3R0b206LS41LHJpZ2h0Oi0uNSx0b3A6LjV9W2VdfXR0LnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLmF0dHIoe3k6MCx4OjB9KTt2YXIgbj1XLnNlbGVjdCgiLmFubm90YXRpb24tbWF0aC1ncm91cCIpLGk9IW4uZW1wdHkoKSxzPWYuYkJveCgoaT9uOnR0KS5ub2RlKCkpLHA9cy53aWR0aCx2PXMuaGVpZ2h0LHk9TWF0aC5yb3VuZChwKzIqSyksYj1NYXRoLnJvdW5kKHYrMipLKTtVLl93PXAsVS5faD12O3ZhciB4PSExO2lmKFsieCIsInkiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuLGk9VVtlKyJyZWYiXXx8ZSxvPWMuZ2V0RnJvbUlkKHQsaSksYT0oSCsoIngiPT09ZT8wOjkwKSkqTWF0aC5QSS8xODAscz15Kk1hdGguYWJzKE1hdGguY29zKGEpKStiKk1hdGguYWJzKE1hdGguc2luKGEpKSxsPVVbZSsiYW5jaG9yIl07aWYobyl7aWYoIW8uYXV0b3JhbmdlJiYoVVtlXS1vLnJhbmdlWzBdKSooVVtlXS1vLnJhbmdlWzFdKT4wJiYoVVsiYSIrZSsicmVmIl09PT1pPyhVWyJhIitlXS1vLnJhbmdlWzBdKSooVVsiYSIrZV0tby5yYW5nZVsxXSk+MCYmKHg9ITApOng9ITAseCkpcmV0dXJuO0dbZV09by5fb2Zmc2V0K28ubDJwKFVbZV0pLG49LjV9ZWxzZSBuPVVbZV0sInkiPT09ZSYmKG49MS1uKSxHW2VdPSJ4Ij09PWU/TC5sK0wudypuOkwudCtMLmgqbjt2YXIgdT0wO1VbImEiK2UrInJlZiJdPT09aT9HWyJhYSIrZV09by5fb2Zmc2V0K28ubDJwKFVbImEiK2VdKToodT1VLnNob3dhcnJvdz9VWyJhIitlXTpzKnIobixsKSxHW2VdKz11KSxVWyJfIitlKyJ0eXBlIl09byYmby50eXBlLFVbIl8iK2UrInNpemUiXT1zLFVbIl8iK2UrInNoaWZ0Il09dX0pLHgpcmV0dXJuIHZvaWQgVy5yZW1vdmUoKTt2YXIgdyxNO1Uuc2hvd2Fycm93JiYodz1VLmF4cmVmPT09VS54cmVmP0cueDp1LmNvbnN0cmFpbihHLngtVS5heCwxLF8ud2lkdGgtMSksTT1VLmF5cmVmPT09VS55cmVmP0cueTp1LmNvbnN0cmFpbihHLnktVS5heSwxLF8uaGVpZ2h0LTEpKSxHLng9dS5jb25zdHJhaW4oRy54LDEsXy53aWR0aC0xKSxHLnk9dS5jb25zdHJhaW4oRy55LDEsXy5oZWlnaHQtMSk7dmFyIGs9Sy1zLnRvcCxBPUstcy5sZWZ0O2k/bi5zZWxlY3QoInN2ZyIpLmF0dHIoe3g6Sy0xLHk6S30pOih0dC5hdHRyKHt4OkEseTprfSksdHQuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih7eTprLHg6QX0pKSxKLmNhbGwoZi5zZXRSZWN0LFovMixaLzIseS1aLGItWik7dmFyIFQ9MCxFPTA7VD1VLmF4cmVmPT09VS54cmVmP01hdGgucm91bmQoRy5hYXgteS8yKTpNYXRoLnJvdW5kKEcueC15LzIpLEU9VS5heXJlZj09PVUueXJlZj9NYXRoLnJvdW5kKEcuYWF5LWIvMik6TWF0aC5yb3VuZChHLnktYi8yKSxXLmNhbGwodS5zZXRUcmFuc2xhdGUsVCxFKTt2YXIgUz0iYW5ub3RhdGlvbnNbIitlKyJdIix6PWZ1bmN0aW9uKHIsbil7YS5zZWxlY3QodCkuc2VsZWN0QWxsKCcuYW5ub3RhdGlvbi1hcnJvdy1nW2RhdGEtaW5kZXg9IicrZSsnIl0nKS5yZW1vdmUoKTt2YXIgaSxzO2k9VS5heHJlZj09PVUueHJlZj9HLmFheCtyOkcueCtyLHM9VS5heXJlZj09PVUueXJlZj9HLmFheStuOkcueStuO3ZhciBjPXUucm90YXRpb25YWU1hdHJpeChILGkscyksZj11LmFwcGx5MkRUcmFuc2Zvcm0oYykscD11LmFwcGx5MkRUcmFuc2Zvcm0yKGMpLGQ9Si5hdHRyKCJ3aWR0aCIpLzIsdj1KLmF0dHIoImhlaWdodCIpLzIseT1bW2ktZCxzLXYsaS1kLHMrdl0sW2ktZCxzK3YsaStkLHMrdl0sW2krZCxzK3YsaStkLHMtdl0sW2krZCxzLXYsaS1kLHMtdl1dLm1hcChwKTtpZigheS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdF4hIW8odyxNLHcrMWU2LE0rMWU2LGVbMF0sZVsxXSxlWzJdLGVbM10pfSwhMSkpe3kuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1vKGkscyx3LE0sdFswXSx0WzFdLHRbMl0sdFszXSk7ZSYmKGk9ZS54LHM9ZS55KX0pO3ZhciBiPVUuYXJyb3d3aWR0aCx4PVUuYXJyb3djb2xvcixfPVguYXBwZW5kKCJnIikuc3R5bGUoe29wYWNpdHk6aC5vcGFjaXR5KHgpfSkuY2xhc3NlZCgiYW5ub3RhdGlvbi1hcnJvdy1nIiwhMCkuYXR0cigiZGF0YS1pbmRleCIsU3RyaW5nKGUpKSxrPV8uYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0iK2krIiwiK3MrIkwiK3crIiwiK00pLnN0eWxlKCJzdHJva2Utd2lkdGgiLGIrInB4IikuY2FsbChoLnN0cm9rZSxoLnJnYih4KSk7Zy5hcnJvd2hlYWQoayxVLmFycm93aGVhZCwiZW5kIixVLmFycm93c2l6ZSk7dmFyIEE9Xy5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJhbm5vdGF0aW9uIiwhMCkuY2xhc3NlZCgiYW5uZHJhZyIsITApLmF0dHIoeyJkYXRhLWluZGV4IjpTdHJpbmcoZSksZDoiTTMsM0gtM1YtM0gzWk0wLDBMIisoaS13KSsiLCIrKHMtTSksdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIit3KyIsIitNKyIpIn0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLGIrNisicHgiKS5jYWxsKGguc3Ryb2tlLCJyZ2JhKDAsMCwwLDApIikuY2FsbChoLmZpbGwsInJnYmEoMCwwLDAsMCkiKTtpZih0Ll9jb250ZXh0LmVkaXRhYmxlKXt2YXIgVCxFLHo7bS5pbml0KHtlbGVtZW50OkEubm9kZSgpLHByZXBGbjpmdW5jdGlvbigpe3ZhciB0PXUuZ2V0VHJhbnNsYXRlKFcpO0U9dC54LHo9dC55LFQ9e30sViYmVi5hdXRvcmFuZ2UmJihUW1YuX25hbWUrIi5hdXRvcmFuZ2UiXT0hMCkscSYmcS5hdXRvcmFuZ2UmJihUW3EuX25hbWUrIi5hdXRvcmFuZ2UiXT0hMCl9LG1vdmVGbjpmdW5jdGlvbih0LGUpe18uYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdCsiLCIrZSsiKSIpO3ZhciByPWYoRSx6KSxuPXJbMF0rdCxpPXJbMV0rZTtXLmNhbGwodS5zZXRUcmFuc2xhdGUsbixpKSxUW1MrIi54Il09Vj9VLngrdC9WLl9tOih3K3QtTC5sKS9MLncsVFtTKyIueSJdPXE/VS55K2UvcS5fbToxLShNK2UtTC50KS9MLmgsVS5heHJlZj09PVUueHJlZiYmKFRbUysiLmF4Il09Vj9VLmF4K3QvVi5fbToodyt0LUwubCkvTC53KSxVLmF5cmVmPT09VS55cmVmJiYoVFtTKyIuYXkiXT1xP1UuYXkrZS9xLl9tOjEtKE0rZS1MLnQpL0wuaCksWS5hdHRyKHt0cmFuc2Zvcm06InJvdGF0ZSgiK0grIiwiK24rIiwiK2krIikifSl9LGRvbmVGbjpmdW5jdGlvbihlKXtpZihlKXtsLnJlbGF5b3V0KHQsVCk7dmFyIHI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmpzLW5vdGVzLWJveC1wYW5lbCIpO3ImJnIucmVkcmF3KHIuc2VsZWN0ZWRPYmopfX19KX19fTtVLnNob3dhcnJvdyYmeigwLDApO3ZhciBJPXUucm90YXRpb25YWU1hdHJpeChILEcueCxHLnkpLFA9dS5hcHBseTJEVHJhbnNmb3JtKEkpO2lmKHQuX2NvbnRleHQuZWRpdGFibGUpe3ZhciBDLFIsajttLmluaXQoe2VsZW1lbnQ6Vy5ub2RlKCkscHJlcEZuOmZ1bmN0aW9uKCl7dmFyIHQ9dS5nZXRUcmFuc2xhdGUoVyk7Qz10LngsUj10Lnksaj17fX0sbW92ZUZuOmZ1bmN0aW9uKHQsZSl7Vy5jYWxsKHUuc2V0VHJhbnNsYXRlLEMrdCxSK2UpO3ZhciByPSJwb2ludGVyIjtpZihVLnNob3dhcnJvdylVLmF4cmVmPT09VS54cmVmP2pbUysiLmF4Il09Vi5wMmwoVi5sMnAoVS5heCkrdCk6altTKyIuYXgiXT1VLmF4K3QsVS5heXJlZj09PVUueXJlZj9qW1MrIi5heSJdPXEucDJsKHEubDJwKFUuYXkpK2UpOmpbUysiLmF5Il09VS5heStlLHoodCxlKTtlbHNle2lmKFYpaltTKyIueCJdPVUueCt0L1YuX207ZWxzZXt2YXIgbj1VLl94c2l6ZS9MLncsaT1VLngrVS5feHNoaWZ0L0wudy1uLzI7altTKyIueCJdPW0uYWxpZ24oaSt0L0wudyxuLDAsMSxVLnhhbmNob3IpfWlmKHEpaltTKyIueSJdPVUueStlL3EuX207ZWxzZXt2YXIgbz1VLl95c2l6ZS9MLmgsYT1VLnktVS5feXNoaWZ0L0wuaC1vLzI7altTKyIueSJdPW0uYWxpZ24oYS1lL0wuaCxvLDAsMSxVLnlhbmNob3IpfVYmJnF8fChyPW0uZ2V0Q3Vyc29yKFY/LjU6altTKyIueCJdLHE/LjU6altTKyIueSJdLFUueGFuY2hvcixVLnlhbmNob3IpKX12YXIgcz1QKEMsUiksbD1zWzBdK3QsYz1zWzFdK2U7Vy5jYWxsKHUuc2V0VHJhbnNsYXRlLEMrdCxSK2UpLFkuYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitIKyIsIitsKyIsIitjKyIpIn0pLGQoVyxyKX0sZG9uZUZuOmZ1bmN0aW9uKGUpe2lmKGQoVyksZSl7bC5yZWxheW91dCh0LGopO3ZhciByPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1ub3Rlcy1ib3gtcGFuZWwiKTtyJiZyLnJlZHJhdyhyLnNlbGVjdGVkT2JqKX19fSl9fXZhciBiLHg9dC5sYXlvdXQsXz10Ll9mdWxsTGF5b3V0O2lmKCFzKGUpfHwtMT09PWUpe2lmKCFlJiZBcnJheS5pc0FycmF5KGkpKXJldHVybiB4LmFubm90YXRpb25zPWksZy5zdXBwbHlMYXlvdXREZWZhdWx0cyh4LF8pLHZvaWQgZy5kcmF3QWxsKHQpO2lmKCJyZW1vdmUiPT09aSlyZXR1cm4gZGVsZXRlIHguYW5ub3RhdGlvbnMsXy5hbm5vdGF0aW9ucz1bXSx2b2lkIGcuZHJhd0FsbCh0KTtpZihyJiYiYWRkIiE9PWkpe2ZvcihiPTA7YjxfLmFubm90YXRpb25zLmxlbmd0aDtiKyspZy5kcmF3KHQsYixyLGkpO3JldHVybn1lPV8uYW5ub3RhdGlvbnMubGVuZ3RoLF8uYW5ub3RhdGlvbnMucHVzaCh7fSl9aWYoIXImJmkpe2lmKCJyZW1vdmUiPT09aSl7Zm9yKF8uX2luZm9sYXllci5zZWxlY3RBbGwoJy5hbm5vdGF0aW9uW2RhdGEtaW5kZXg9IicrZSsnIl0nKS5yZW1vdmUoKSxfLmFubm90YXRpb25zLnNwbGljZShlLDEpLHguYW5ub3RhdGlvbnMuc3BsaWNlKGUsMSksYj1lO2I8Xy5hbm5vdGF0aW9ucy5sZW5ndGg7YisrKV8uX2luZm9sYXllci5zZWxlY3RBbGwoJy5hbm5vdGF0aW9uW2RhdGEtaW5kZXg9IicrKGIrMSkrJyJdJykuYXR0cigiZGF0YS1pbmRleCIsU3RyaW5nKGIpKSxnLmRyYXcodCxiKTtyZXR1cm59aWYoImFkZCI9PT1pfHx1LmlzUGxhaW5PYmplY3QoaSkpe18uYW5ub3RhdGlvbnMuc3BsaWNlKGUsMCx7fSk7dmFyIHc9dS5pc1BsYWluT2JqZWN0KGkpP3UuZXh0ZW5kRmxhdCh7fSxpKTp7dGV4dDoiTmV3IHRleHQifTtmb3IoeC5hbm5vdGF0aW9ucz94LmFubm90YXRpb25zLnNwbGljZShlLDAsdyk6eC5hbm5vdGF0aW9ucz1bd10sYj1fLmFubm90YXRpb25zLmxlbmd0aC0xO2I+ZTtiLS0pXy5faW5mb2xheWVyLnNlbGVjdEFsbCgnLmFubm90YXRpb25bZGF0YS1pbmRleD0iJysoYi0xKSsnIl0nKS5hdHRyKCJkYXRhLWluZGV4IixTdHJpbmcoYikpLGcuZHJhdyh0LGIpfX1fLl9pbmZvbGF5ZXIuc2VsZWN0QWxsKCcuYW5ub3RhdGlvbltkYXRhLWluZGV4PSInK2UrJyJdJykucmVtb3ZlKCk7dmFyIE09eC5hbm5vdGF0aW9uc1tlXSxrPV8uYW5ub3RhdGlvbnNbZV07aWYoTSl7dmFyIEE9e3hyZWY6TS54cmVmLHlyZWY6TS55cmVmfSxUPXt9OyJzdHJpbmciPT10eXBlb2YgciYmcj9UW3JdPWk6dS5pc1BsYWluT2JqZWN0KHIpJiYoVD1yKTt2YXIgRT1PYmplY3Qua2V5cyhUKTtmb3IoYj0wO2I8RS5sZW5ndGg7YisrKXt2YXIgUz1FW2JdO3UubmVzdGVkUHJvcGVydHkoTSxTKS5zZXQoVFtTXSl9dmFyIEw9Xy5fc2l6ZSx6PVsieCIsInkiXTtmb3IoYj0wOzI+YjtiKyspe3ZhciBJPXpbYl07aWYodm9pZCAwPT09VFtJXSYmdm9pZCAwIT09TVtJXSl7dmFyIFA9Yy5nZXRGcm9tSWQodCxjLmNvZXJjZVJlZihBLHt9LHQsSSkpLEM9Yy5nZXRGcm9tSWQodCxjLmNvZXJjZVJlZihNLHt9LHQsSSkpLFI9TVtJXSxqPWtbIl8iK0krInR5cGUiXTtpZih2b2lkIDAhPT1UW0krInJlZiJdKXt2YXIgRD0iYXV0byI9PT1NW0krImFuY2hvciJdLE89IngiPT09ST9MLnc6TC5oLEY9KGtbIl8iK0krInNpemUiXXx8MCkvKDIqTyk7aWYoUCYmQylSPShSLVAucmFuZ2VbMF0pLyhQLnJhbmdlWzFdLVAucmFuZ2VbMF0pLFI9Qy5yYW5nZVswXStSKihDLnJhbmdlWzFdLUMucmFuZ2VbMF0pO2Vsc2UgaWYoUCl7aWYoUj0oUi1QLnJhbmdlWzBdKS8oUC5yYW5nZVsxXS1QLnJhbmdlWzBdKSxSPVAuZG9tYWluWzBdK1IqKFAuZG9tYWluWzFdLVAuZG9tYWluWzBdKSxEKXt2YXIgTj1SK0YsQj1SLUY7Mi8zPlIrQj9SPUI6UitOPjQvMyYmKFI9Til9fWVsc2UgQyYmKEQmJigxLzM+Uj9SKz1GOlI+Mi8zJiYoUi09RikpLFI9KFItQy5kb21haW5bMF0pLyhDLmRvbWFpblsxXS1DLmRvbWFpblswXSksUj1DLnJhbmdlWzBdK1IqKEMucmFuZ2VbMV0tQy5yYW5nZVswXSkpfUMmJkM9PT1QJiZqJiYoImxvZyI9PT1qJiYibG9nIiE9PUMudHlwZT9SPU1hdGgucG93KDEwLFIpOiJsb2ciIT09aiYmImxvZyI9PT1DLnR5cGUmJihSPVI+MD9NYXRoLmxvZyhSKS9NYXRoLkxOMTA6dm9pZCAwKSksTVtJXT1SfX12YXIgVT1uKE0sXyk7Xy5hbm5vdGF0aW9uc1tlXT1VO3ZhciBWPWMuZ2V0RnJvbUlkKHQsVS54cmVmKSxxPWMuZ2V0RnJvbUlkKHQsVS55cmVmKSxHPXt4OjAseTowfSxIPStVLnRleHRhbmdsZXx8MCxYPV8uX2luZm9sYXllci5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uIiwhMCkuYXR0cigiZGF0YS1pbmRleCIsU3RyaW5nKGUpKS5zdHlsZSgib3BhY2l0eSIsVS5vcGFjaXR5KS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dC5fZHJhZ2dpbmc9ITEsdC5lbWl0KCJwbG90bHlfY2xpY2thbm5vdGF0aW9uIix7aW5kZXg6ZSxhbm5vdGF0aW9uOk0sZnVsbEFubm90YXRpb246VX0pfSksWT1YLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFubm90YXRpb24tdGV4dC1nIiwhMCkuYXR0cigiZGF0YS1pbmRleCIsU3RyaW5nKGUpKSxXPVkuYXBwZW5kKCJnIiksWj1VLmJvcmRlcndpZHRoLFE9VS5ib3JkZXJwYWQsSz1aK1EsSj1XLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmciKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixaKyJweCIpLmNhbGwoaC5zdHJva2UsVS5ib3JkZXJjb2xvcikuY2FsbChoLmZpbGwsVS5iZ2NvbG9yKSwkPVUuZm9udCx0dD1XLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImFubm90YXRpb24iLCEwKS5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIixVLnRleHQpLnRleHQoVS50ZXh0KTt0Ll9jb250ZXh0LmVkaXRhYmxlP3R0LmNhbGwocC5tYWtlRWRpdGFibGUsVykuY2FsbCh2KS5vbigiZWRpdCIsZnVuY3Rpb24ocil7VS50ZXh0PXIsdGhpcy5hdHRyKHsiZGF0YS11bmZvcm1hdHRlZCI6VS50ZXh0fSksdGhpcy5jYWxsKHYpO3ZhciBuPXt9O25bImFubm90YXRpb25zWyIrZSsiXS50ZXh0Il09VS50ZXh0LFYmJlYuYXV0b3JhbmdlJiYobltWLl9uYW1lKyIuYXV0b3JhbmdlIl09ITApLHEmJnEuYXV0b3JhbmdlJiYobltxLl9uYW1lKyIuYXV0b3JhbmdlIl09ITApLGwucmVsYXlvdXQodCxuKX0pOnR0LmNhbGwodiksWS5hdHRyKHt0cmFuc2Zvcm06InJvdGF0ZSgiK0grIiwiK0cueCsiLCIrRy55KyIpIn0pLmNhbGwoZi5zZXRQb3NpdGlvbixHLngsRy55KX19LGcuYXJyb3doZWFkPWZ1bmN0aW9uKHQsZSxyLG4pe3Mobil8fChuPTEpO3ZhciBpPXQubm9kZSgpLG89Zy5BUlJPV1BBVEhTW2V8fDBdO2lmKG8peyJzdHJpbmciPT10eXBlb2YgciYmcnx8KHI9ImVuZCIpO3ZhciBsLHUsYyxwLGQ9KGYuZ2V0UHgodCwic3Ryb2tlLXdpZHRoIil8fDEpKm4sbT10LnN0eWxlKCJzdHJva2UiKXx8aC5kZWZhdWx0TGluZSx2PXQuc3R5bGUoInN0cm9rZS1vcGFjaXR5Iil8fDEseT1yLmluZGV4T2YoInN0YXJ0Iik+PTAsYj1yLmluZGV4T2YoImVuZCIpPj0wLHg9by5iYWNrb2ZmKmQ7aWYoImxpbmUiPT09aS5ub2RlTmFtZSl7aWYobD17eDordC5hdHRyKCJ4MSIpLHk6K3QuYXR0cigieTEiKX0sdT17eDordC5hdHRyKCJ4MiIpLHk6K3QuYXR0cigieTIiKX0sYz1NYXRoLmF0YW4yKGwueS11LnksbC54LXUueCkscD1jK01hdGguUEkseCl7dmFyIF89eCpNYXRoLmNvcyhjKSx3PXgqTWF0aC5zaW4oYyk7eSYmKGwueC09XyxsLnktPXcsdC5hdHRyKHt4MTpsLngseTE6bC55fSkpLGImJih1LngrPV8sdS55Kz13LHQuYXR0cih7eDI6dS54LHkyOnUueX0pKX19ZWxzZSBpZigicGF0aCI9PT1pLm5vZGVOYW1lKXt2YXIgTT1pLmdldFRvdGFsTGVuZ3RoKCksaz0iIjtpZih5KXt2YXIgQT1pLmdldFBvaW50QXRMZW5ndGgoMCksVD1pLmdldFBvaW50QXRMZW5ndGgoLjEpO2M9TWF0aC5hdGFuMihBLnktVC55LEEueC1ULngpLGw9aS5nZXRQb2ludEF0TGVuZ3RoKE1hdGgubWluKHgsTSkpLHgmJihrPSIwcHgsIit4KyJweCwiKX1pZihiKXt2YXIgRT1pLmdldFBvaW50QXRMZW5ndGgoTSksUz1pLmdldFBvaW50QXRMZW5ndGgoTS0uMSk7aWYocD1NYXRoLmF0YW4yKEUueS1TLnksRS54LVMueCksdT1pLmdldFBvaW50QXRMZW5ndGgoTWF0aC5tYXgoMCxNLXgpKSx4KXt2YXIgTD1rPzIqeDp4O2srPU0tTCsicHgsIitNKyJweCJ9fWVsc2UgayYmKGsrPU0rInB4Iik7ayYmdC5zdHlsZSgic3Ryb2tlLWRhc2hhcnJheSIsayl9dmFyIHo9ZnVuY3Rpb24ocixuKXtlPjUmJihuPTApLGEuc2VsZWN0KGkucGFyZW50RWxlbWVudCkuYXBwZW5kKCJwYXRoIikuYXR0cih7ImNsYXNzIjp0LmF0dHIoImNsYXNzIiksZDpvLnBhdGgsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIityLngrIiwiK3IueSsiKXJvdGF0ZSgiKzE4MCpuL01hdGguUEkrIilzY2FsZSgiK2QrIikifSkuc3R5bGUoe2ZpbGw6bSxvcGFjaXR5OnYsInN0cm9rZS13aWR0aCI6MH0pfTt5JiZ6KGwsYyksYiYmeih1LHApfX0sZy5jYWxjQXV0b3JhbmdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLmFubm90YXRpb25zO2lmKHIubGVuZ3RoJiZ0Ll9mdWxsRGF0YS5sZW5ndGgpe3ZhciBuPXt9O3IuZm9yRWFjaChmdW5jdGlvbih0KXtuW3QueHJlZl09ITAsblt0LnlyZWZdPSEwfSk7dmFyIG89Yy5saXN0KHQpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5hdXRvcmFuZ2UmJm5bdC5faWRdfSk7aWYoby5sZW5ndGgpcmV0dXJuIHUuc3luY09yQXN5bmMoW2cuZHJhd0FsbCxpXSx0KX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo2MDAsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NjA0LCIuLi8uLi9wbG90bHkiOjYxMiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi4vY29sb3IiOjUwNiwiLi4vZHJhZ2VsZW1lbnQiOjUyNywiLi4vZHJhd2luZyI6NTI5LCIuL2Fycm93X3BhdGhzIjo1MDIsIi4vYXR0cmlidXRlcyI6NTAzLGQzOjEyNCwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDUwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmRlZmF1bHRzPVsiIzFmNzdiNCIsIiNmZjdmMGUiLCIjMmNhMDJjIiwiI2Q2MjcyOCIsIiM5NDY3YmQiLCIjOGM1NjRiIiwiI2UzNzdjMiIsIiM3ZjdmN2YiLCIjYmNiZDIyIiwiIzE3YmVjZiJdLHIuZGVmYXVsdExpbmU9IiM0NDQiLHIubGlnaHRMaW5lPSIjZWVlIixyLmJhY2tncm91bmQ9IiNmZmYiLHIuYm9yZGVyTGluZT0iI0JFQzhEOSIsci5saWdodEZyYWN0aW9uPTFlMy8xMX0se31dLDUwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2lmKG8odCl8fCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gdDt2YXIgZT10LnRyaW0oKTtpZigicmdiIiE9PWUuc3Vic3RyKDAsMykpcmV0dXJuIHQ7dmFyIHI9ZS5tYXRjaCgvXnJnYmE/XHMqXCgoW14oKV0qKVwpJC8pO2lmKCFyKXJldHVybiB0O3ZhciBuPXJbMV0udHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pLGk9ImEiPT09ZS5jaGFyQXQoMykmJjQ9PT1uLmxlbmd0aDtpZighaSYmMyE9PW4ubGVuZ3RoKXJldHVybiB0O2Zvcih2YXIgYT0wO2E8bi5sZW5ndGg7YSsrKXtpZighblthXS5sZW5ndGgpcmV0dXJuIHQ7aWYoblthXT1OdW1iZXIoblthXSksIShuW2FdPj0wKSlyZXR1cm4gdDtpZigzPT09YSluW2FdPjEmJihuW2FdPTEpO2Vsc2UgaWYoblthXT49MSlyZXR1cm4gdH12YXIgcz1NYXRoLnJvdW5kKDI1NSpuWzBdKSsiLCAiK01hdGgucm91bmQoMjU1Km5bMV0pKyIsICIrTWF0aC5yb3VuZCgyNTUqblsyXSk7cmV0dXJuIGk/InJnYmEoIitzKyIsICIrblszXSsiKSI6InJnYigiK3MrIikifXZhciBpPXQoInRpbnljb2xvcjIiKSxvPXQoImZhc3QtaXNudW1lcmljIiksYT1lLmV4cG9ydHM9e30scz10KCIuL2F0dHJpYnV0ZXMiKTthLmRlZmF1bHRzPXMuZGVmYXVsdHMsYS5kZWZhdWx0TGluZT1zLmRlZmF1bHRMaW5lLGEubGlnaHRMaW5lPXMubGlnaHRMaW5lLGEuYmFja2dyb3VuZD1zLmJhY2tncm91bmQsYS50aW55UkdCPWZ1bmN0aW9uKHQpe3ZhciBlPXQudG9SZ2IoKTtyZXR1cm4icmdiKCIrTWF0aC5yb3VuZChlLnIpKyIsICIrTWF0aC5yb3VuZChlLmcpKyIsICIrTWF0aC5yb3VuZChlLmIpKyIpIn0sYS5yZ2I9ZnVuY3Rpb24odCl7cmV0dXJuIGEudGlueVJHQihpKHQpKX0sYS5vcGFjaXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0P2kodCkuZ2V0QWxwaGEoKTowfSxhLmFkZE9wYWNpdHk9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKHQpLnRvUmdiKCk7cmV0dXJuInJnYmEoIitNYXRoLnJvdW5kKHIucikrIiwgIitNYXRoLnJvdW5kKHIuZykrIiwgIitNYXRoLnJvdW5kKHIuYikrIiwgIitlKyIpIn0sYS5jb21iaW5lPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aSh0KS50b1JnYigpO2lmKDE9PT1yLmEpcmV0dXJuIGkodCkudG9SZ2JTdHJpbmcoKTt2YXIgbj1pKGV8fGEuYmFja2dyb3VuZCkudG9SZ2IoKSxvPTE9PT1uLmE/bjp7cjoyNTUqKDEtbi5hKStuLnIqbi5hLGc6MjU1KigxLW4uYSkrbi5nKm4uYSxiOjI1NSooMS1uLmEpK24uYipuLmF9LHM9e3I6by5yKigxLXIuYSkrci5yKnIuYSxnOm8uZyooMS1yLmEpK3IuZypyLmEsYjpvLmIqKDEtci5hKStyLmIqci5hfTtyZXR1cm4gaShzKS50b1JnYlN0cmluZygpfSxhLmNvbnRyYXN0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1pKHQpLG89bi5pc0xpZ2h0KCk/bi5kYXJrZW4ocik6bi5saWdodGVuKGUpO3JldHVybiBvLnRvU3RyaW5nKCl9LGEuc3Ryb2tlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aShlKTt0LnN0eWxlKHtzdHJva2U6YS50aW55UkdCKHIpLCJzdHJva2Utb3BhY2l0eSI6ci5nZXRBbHBoYSgpfSl9LGEuZmlsbD1mdW5jdGlvbih0LGUpe3ZhciByPWkoZSk7dC5zdHlsZSh7ZmlsbDphLnRpbnlSR0IociksImZpbGwtb3BhY2l0eSI6ci5nZXRBbHBoYSgpfSl9LGEuY2xlYW49ZnVuY3Rpb24odCl7aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0KXt2YXIgZSxyLGksbyxzPU9iamVjdC5rZXlzKHQpO2ZvcihlPTA7ZTxzLmxlbmd0aDtlKyspaWYoaT1zW2VdLG89dFtpXSwiY29sb3IiPT09aS5zdWJzdHIoaS5sZW5ndGgtNSkpaWYoQXJyYXkuaXNBcnJheShvKSlmb3Iocj0wO3I8by5sZW5ndGg7cisrKW9bcl09bihvW3JdKTtlbHNlIHRbaV09bihvKTtlbHNlIGlmKCJjb2xvcnNjYWxlIj09PWkuc3Vic3RyKGkubGVuZ3RoLTEwKSYmQXJyYXkuaXNBcnJheShvKSlmb3Iocj0wO3I8by5sZW5ndGg7cisrKUFycmF5LmlzQXJyYXkob1tyXSkmJihvW3JdWzFdPW4ob1tyXVsxXSkpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShvKSl7dmFyIGw9b1swXTtpZighQXJyYXkuaXNBcnJheShsKSYmbCYmIm9iamVjdCI9PXR5cGVvZiBsKWZvcihyPTA7cjxvLmxlbmd0aDtyKyspYS5jbGVhbihvW3JdKX1lbHNlIG8mJiJvYmplY3QiPT10eXBlb2YgbyYmYS5jbGVhbihvKX19fSx7Ii4vYXR0cmlidXRlcyI6NTA1LCJmYXN0LWlzbnVtZXJpYyI6MTI4LHRpbnljb2xvcjI6NDc3fV0sNTA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e3RoaWNrbmVzc21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyYWN0aW9uIiwicGl4ZWxzIl0sZGZsdDoicGl4ZWxzIn0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MzB9LGxlbm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyYWN0aW9uIiwicGl4ZWxzIl0sZGZsdDoiZnJhY3Rpb24ifSxsZW46e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSx4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MS4wMixtaW46LTIsbWF4OjN9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6ImxlZnQifSx4cGFkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTB9LHk6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDouNSxtaW46LTIsbWF4OjN9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6Im1pZGRsZSJ9LHlwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxMH0sb3V0bGluZWNvbG9yOm4ubGluZWNvbG9yLG91dGxpbmV3aWR0aDpuLmxpbmV3aWR0aCxib3JkZXJjb2xvcjpuLmxpbmVjb2xvcixib3JkZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjB9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OiJyZ2JhKDAsMCwwLDApIn0sdGlja21vZGU6bi50aWNrbW9kZSxudGlja3M6bi5udGlja3MsdGljazA6bi50aWNrMCxkdGljazpuLmR0aWNrLHRpY2t2YWxzOm4udGlja3ZhbHMsdGlja3RleHQ6bi50aWNrdGV4dCx0aWNrczpvKHt9LG4udGlja3Mse2RmbHQ6IiJ9KSx0aWNrbGVuOm4udGlja2xlbix0aWNrd2lkdGg6bi50aWNrd2lkdGgsdGlja2NvbG9yOm4udGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOm4uc2hvd3RpY2tsYWJlbHMsdGlja2ZvbnQ6bi50aWNrZm9udCx0aWNrYW5nbGU6bi50aWNrYW5nbGUsdGlja2Zvcm1hdDpuLnRpY2tmb3JtYXQsdGlja3ByZWZpeDpuLnRpY2twcmVmaXgsc2hvd3RpY2twcmVmaXg6bi5zaG93dGlja3ByZWZpeCx0aWNrc3VmZml4Om4udGlja3N1ZmZpeCxzaG93dGlja3N1ZmZpeDpuLnNob3d0aWNrc3VmZml4LGV4cG9uZW50Zm9ybWF0Om4uZXhwb25lbnRmb3JtYXQsc2hvd2V4cG9uZW50Om4uc2hvd2V4cG9uZW50LHRpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IkNsaWNrIHRvIGVudGVyIGNvbG9yc2NhbGUgdGl0bGUifSx0aXRsZWZvbnQ6byh7fSxpLHt9KSx0aXRsZXNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJpZ2h0IiwidG9wIiwiYm90dG9tIl0sZGZsdDoidG9wIn19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo2MjQsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NjMzfV0sNTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIikscz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGwodCxlKXtyZXR1cm4gbi5jb2VyY2UoYyx1LHMsdCxlKX12YXIgdT1lLmNvbG9yYmFyPXt9LGM9dC5jb2xvcmJhcnx8e30saD1sKCJ0aGlja25lc3Ntb2RlIik7bCgidGhpY2tuZXNzIiwiZnJhY3Rpb24iPT09aD8zMC8oci53aWR0aC1yLm1hcmdpbi5sLXIubWFyZ2luLnIpOjMwKTt2YXIgZj1sKCJsZW5tb2RlIik7bCgibGVuIiwiZnJhY3Rpb24iPT09Zj8xOnIuaGVpZ2h0LXIubWFyZ2luLnQtci5tYXJnaW4uYiksbCgieCIpLGwoInhhbmNob3IiKSxsKCJ4cGFkIiksbCgieSIpLGwoInlhbmNob3IiKSxsKCJ5cGFkIiksbi5ub25lT3JBbGwoYyx1LFsieCIsInkiXSksbCgib3V0bGluZWNvbG9yIiksbCgib3V0bGluZXdpZHRoIiksbCgiYm9yZGVyY29sb3IiKSxsKCJib3JkZXJ3aWR0aCIpLGwoImJnY29sb3IiKSxpKGMsdSxsLCJsaW5lYXIiKSxhKGMsdSxsLCJsaW5lYXIiLHtvdXRlclRpY2tzOiExLGZvbnQ6ci5mb250LG5vSG92ZXI6ITB9KSxvKGMsdSxsLCJsaW5lYXIiLHtvdXRlclRpY2tzOiExLGZvbnQ6ci5mb250LG5vSG92ZXI6ITB9KSxsKCJ0aXRsZSIpLG4uY29lcmNlRm9udChsLCJ0aXRsZWZvbnQiLHIuZm9udCksbCgidGl0bGVzaWRlIil9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6NjMwLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIjo2MzEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo2MzIsIi4vYXR0cmlidXRlcyI6NTA3fV0sNTA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCJ0aW55Y29sb3IyIiksbz10KCIuLi8uLi9wbG90bHkiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGw9dCgiLi4vZHJhZ2VsZW1lbnQiKSx1PXQoIi4uLy4uL2xpYiIpLGM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksZj10KCIuLi9kcmF3aW5nIikscD10KCIuLi9jb2xvciIpLGQ9dCgiLi4vdGl0bGVzIiksbT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19kZWZhdWx0cyIpLGc9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3Bvc2l0aW9uX2RlZmF1bHRzIiksdj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSx5PXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIoKXtmdW5jdGlvbiB5KHQsZSl7cmV0dXJuIHUuY29lcmNlKEssSix2LHQsZSl9ZnVuY3Rpb24gXygpe2lmKC0xIT09WyJ0b3AiLCJib3R0b20iXS5pbmRleE9mKHgudGl0bGVzaWRlKSl7dmFyIGU9aXQuc2VsZWN0KCIuY2J0aXRsZSIpLHI9ZS5zZWxlY3QoInRleHQiKSxvPVsteC5vdXRsaW5ld2lkdGgvMix4Lm91dGxpbmV3aWR0aC8yXSxhPWUuc2VsZWN0KCIuaCIrSi5faWQrInRpdGxlLW1hdGgtZ3JvdXAiKS5ub2RlKCksbD0xNS42O2lmKHIubm9kZSgpJiYobD0xLjMqcGFyc2VJbnQoci5zdHlsZSgiZm9udC1zaXplIiksMTApKSxhPyhhdD1mLmJCb3goYSkuaGVpZ2h0LGF0PmwmJihvWzFdLT0oYXQtbCkvMikpOnIubm9kZSgpJiYhci5jbGFzc2VkKCJqcy1wbGFjZWhvbGRlciIpJiYoYXQ9Zi5iQm94KGUubm9kZSgpKS5oZWlnaHQpLGF0KXtpZihhdCs9NSwidG9wIj09PXgudGl0bGVzaWRlKUouZG9tYWluWzFdLT1hdC9BLmgsb1sxXSo9LTE7ZWxzZXtKLmRvbWFpblswXSs9YXQvQS5oO3ZhciBjPU1hdGgubWF4KDEsci5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5zaXplKCkpO29bMV0rPSgxLWMpKmx9ZS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitvKyIpIiksSi5zZXRTY2FsZSgpfX1pdC5zZWxlY3RBbGwoIi5jYmZpbGxzLC5jYmxpbmVzLC5jYmF4aXMiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMCwiK01hdGgucm91bmQoQS5oKigxLUouZG9tYWluWzFdKSkrIikiKTt2YXIgaD1pdC5zZWxlY3QoIi5jYmZpbGxzIikuc2VsZWN0QWxsKCJyZWN0LmNiZmlsbCIpLmRhdGEoTCk7aC5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoImNiZmlsbCIsITApLnN0eWxlKCJzdHJva2UiLCJub25lIiksaC5leGl0KCkucmVtb3ZlKCksaC5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9WzA9PT1lP0VbMF06KExbZV0rTFtlLTFdKS8yLGU9PT1MLmxlbmd0aC0xP0VbMV06KExbZV0rTFtlKzFdKS8yXS5tYXAoSi5jMnApLm1hcChNYXRoLnJvdW5kKTtlIT09TC5sZW5ndGgtMSYmKHJbMV0rPXJbMV0+clswXT8xOi0xKTt2YXIgbz1JKHQpLnJlcGxhY2UoImUtIiwiIiksYT1pKG8pLnRvSGV4U3RyaW5nKCk7bi5zZWxlY3QodGhpcykuYXR0cih7eDpYLHdpZHRoOk1hdGgubWF4KE4sMikseTpuLm1pbihyKSxoZWlnaHQ6TWF0aC5tYXgobi5tYXgociktbi5taW4ociksMiksZmlsbDphfSl9KTt2YXIgcD1pdC5zZWxlY3QoIi5jYmxpbmVzIikuc2VsZWN0QWxsKCJwYXRoLmNibGluZSIpLmRhdGEoeC5saW5lLmNvbG9yJiZ4LmxpbmUud2lkdGg/UzpbXSk7cmV0dXJuIHAuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJjYmxpbmUiLCEwKSxwLmV4aXQoKS5yZW1vdmUoKSxwLmVhY2goZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK1grIiwiKyhNYXRoLnJvdW5kKEouYzJwKHQpKSt4LmxpbmUud2lkdGgvMiUxKSsiaCIrTikuY2FsbChmLmxpbmVHcm91cFN0eWxlLHgubGluZS53aWR0aCx6KHQpLHgubGluZS5kYXNoKX0pLEouX2F4aXNsYXllci5zZWxlY3RBbGwoImcuIitKLl9pZCsidGljayxwYXRoIikucmVtb3ZlKCksSi5fcG9zPVgrTisoeC5vdXRsaW5ld2lkdGh8fDApLzItKCJvdXRzaWRlIj09PXgudGlja3M/MTowKSxKLnNpZGU9InJpZ2h0Iix1LnN5bmNPckFzeW5jKFtmdW5jdGlvbigpe3JldHVybiBzLmRvVGlja3ModCxKLCEwKX0sZnVuY3Rpb24oKXtpZigtMT09PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZih4LnRpdGxlc2lkZSkpe3ZhciBlPUoudGl0bGVmb250LnNpemUscj1KLl9vZmZzZXQrSi5fbGVuZ3RoLzIsaT1BLmwrKEoucG9zaXRpb258fDApKkEudysoInJpZ2h0Ij09PUouc2lkZT8xMCtlKihKLnNob3d0aWNrbGFiZWxzPzE6LjUpOi0xMC1lKihKLnNob3d0aWNrbGFiZWxzPy41OjApKTt3KCJoIitKLl9pZCsidGl0bGUiLHthdm9pZDp7c2VsZWN0aW9uOm4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiZy4iK0ouX2lkKyJ0aWNrIiksc2lkZTp4LnRpdGxlc2lkZSxvZmZzZXRMZWZ0OkEubCxvZmZzZXRUb3A6QS50LG1heFNoaWZ0Omsud2lkdGh9LGF0dHJpYnV0ZXM6e3g6aSx5OnIsInRleHQtYW5jaG9yIjoibWlkZGxlIn0sdHJhbnNmb3JtOntyb3RhdGU6Ii05MCIsb2Zmc2V0OjB9fSl9fV0pfWZ1bmN0aW9uIHcoZSxyKXt2YXIgbixpPWIoKTtuPWEudHJhY2VJcyhpLCJtYXJrZXJDb2xvcnNjYWxlIik/Im1hcmtlci5jb2xvcmJhci50aXRsZSI6ImNvbG9yYmFyLnRpdGxlIjt2YXIgbz17cHJvcENvbnRhaW5lcjpKLHByb3BOYW1lOm4sdHJhY2VJbmRleDppLmluZGV4LGRmbHROYW1lOiJjb2xvcnNjYWxlIixjb250YWluZXJHcm91cDppdC5zZWxlY3QoIi5jYnRpdGxlIil9LHM9ImgiPT09ZS5jaGFyQXQoMCk/ZS5zdWJzdHIoMSk6ImgiK2U7aXQuc2VsZWN0QWxsKCIuIitzKyIsLiIrcysiLW1hdGgtZ3JvdXAiKS5yZW1vdmUoKSxkLmRyYXcodCxlLGMobyxyfHx7fSkpfWZ1bmN0aW9uIE0oKXt2YXIgcj1OK3gub3V0bGluZXdpZHRoLzIrZi5iQm94KEouX2F4aXNsYXllci5ub2RlKCkpLndpZHRoO2lmKEQ9b3Quc2VsZWN0KCJ0ZXh0IiksRC5ub2RlKCkmJiFELmNsYXNzZWQoImpzLXBsYWNlaG9sZGVyIikpe3ZhciBuLGk9b3Quc2VsZWN0KCIuaCIrSi5faWQrInRpdGxlLW1hdGgtZ3JvdXAiKS5ub2RlKCk7bj1pJiYtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZih4LnRpdGxlc2lkZSk/Zi5iQm94KGkpLndpZHRoOmYuYkJveChvdC5ub2RlKCkpLnJpZ2h0LVgtQS5sLHI9TWF0aC5tYXgocixuKX12YXIgbz0yKngueHBhZCtyK3guYm9yZGVyd2lkdGgreC5vdXRsaW5ld2lkdGgvMixzPVotUTtpdC5zZWxlY3QoIi5jYmJnIikuYXR0cih7eDpYLXgueHBhZC0oeC5ib3JkZXJ3aWR0aCt4Lm91dGxpbmV3aWR0aCkvMix5OlEtRyx3aWR0aDpNYXRoLm1heChvLDIpLGhlaWdodDpNYXRoLm1heChzKzIqRywyKX0pLmNhbGwocC5maWxsLHguYmdjb2xvcikuY2FsbChwLnN0cm9rZSx4LmJvcmRlcmNvbG9yKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6eC5ib3JkZXJ3aWR0aH0pLGl0LnNlbGVjdEFsbCgiLmNib3V0bGluZSIpLmF0dHIoe3g6WCx5OlEreC55cGFkKygidG9wIj09PXgudGl0bGVzaWRlP2F0OjApLHdpZHRoOk1hdGgubWF4KE4sMiksaGVpZ2h0Ok1hdGgubWF4KHMtMip4LnlwYWQtYXQsMil9KS5jYWxsKHAuc3Ryb2tlLHgub3V0bGluZWNvbG9yKS5zdHlsZSh7ZmlsbDoiTm9uZSIsInN0cm9rZS13aWR0aCI6eC5vdXRsaW5ld2lkdGh9KTt2YXIgbD0oe2NlbnRlcjouNSxyaWdodDoxfVt4LnhhbmNob3JdfHwwKSpvO2l0LmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKyhBLmwtbCkrIiwiK0EudCsiKSIpLGEuYXV0b01hcmdpbih0LGUse3g6eC54LHk6eC55LGw6byooe3JpZ2h0OjEsY2VudGVyOi41fVt4LnhhbmNob3JdfHwwKSxyOm8qKHtsZWZ0OjEsY2VudGVyOi41fVt4LnhhbmNob3JdfHwwKSx0OnMqKHtib3R0b206MSxtaWRkbGU6LjV9W3gueWFuY2hvcl18fDApLGI6cyooe3RvcDoxLG1pZGRsZTouNX1beC55YW5jaG9yXXx8MCl9KX12YXIgaz10Ll9mdWxsTGF5b3V0LEE9ay5fc2l6ZTtpZigiZnVuY3Rpb24iIT10eXBlb2YgeC5maWxsY29sb3ImJiJmdW5jdGlvbiIhPXR5cGVvZiB4LmxpbmUuY29sb3IpcmV0dXJuIHZvaWQgay5faW5mb2xheWVyLnNlbGVjdEFsbCgiZy4iK2UpLnJlbW92ZSgpO3ZhciBULEU9bi5leHRlbnQoKCJmdW5jdGlvbiI9PXR5cGVvZiB4LmZpbGxjb2xvcj94LmZpbGxjb2xvcjp4LmxpbmUuY29sb3IpLmRvbWFpbigpKSxTPVtdLEw9W10sej0iZnVuY3Rpb24iPT10eXBlb2YgeC5saW5lLmNvbG9yP3gubGluZS5jb2xvcjpmdW5jdGlvbigpe3JldHVybiB4LmxpbmUuY29sb3J9LEk9ImZ1bmN0aW9uIj09dHlwZW9mIHguZmlsbGNvbG9yP3guZmlsbGNvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHguZmlsbGNvbG9yfSxQPXgubGV2ZWxzLmVuZCt4LmxldmVscy5zaXplLzEwMCxDPXgubGV2ZWxzLnNpemUsUj0xLjAwMSpFWzBdLS4wMDEqRVsxXSxqPTEuMDAxKkVbMV0tLjAwMSpFWzBdO2ZvcihUPXgubGV2ZWxzLnN0YXJ0OzA+KFQtUCkqQztUKz1DKVQ+UiYmaj5UJiZTLnB1c2goVCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHguZmlsbGNvbG9yKWlmKHguZmlsbGxldmVscylmb3IoUD14LmZpbGxsZXZlbHMuZW5kK3guZmlsbGxldmVscy5zaXplLzEwMCxDPXguZmlsbGxldmVscy5zaXplLFQ9eC5maWxsbGV2ZWxzLnN0YXJ0OzA+KFQtUCkqQztUKz1DKVQ+RVswXSYmVDxFWzFdJiZMLnB1c2goVCk7ZWxzZSBMPVMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LXgubGV2ZWxzLnNpemUvMn0pLEwucHVzaChMW0wubGVuZ3RoLTFdK3gubGV2ZWxzLnNpemUpO2Vsc2UgeC5maWxsY29sb3ImJiJzdHJpbmciPT10eXBlb2YgeC5maWxsY29sb3ImJihMPVswXSk7eC5sZXZlbHMuc2l6ZTwwJiYoUy5yZXZlcnNlKCksTC5yZXZlcnNlKCkpO3ZhciBELE89ay5oZWlnaHQtay5tYXJnaW4udC1rLm1hcmdpbi5iLEY9ay53aWR0aC1rLm1hcmdpbi5sLWsubWFyZ2luLnIsTj1NYXRoLnJvdW5kKHgudGhpY2tuZXNzKigiZnJhY3Rpb24iPT09eC50aGlja25lc3Ntb2RlP0Y6MSkpLEI9Ti9BLncsVT1NYXRoLnJvdW5kKHgubGVuKigiZnJhY3Rpb24iPT09eC5sZW5tb2RlP086MSkpLFY9VS9BLmgscT14LnhwYWQvQS53LEc9KHguYm9yZGVyd2lkdGgreC5vdXRsaW5ld2lkdGgpLzIsSD14LnlwYWQvQS5oLFg9TWF0aC5yb3VuZCh4LngqQS53K3gueHBhZCksWT14LngtQiooe21pZGRsZTouNSxyaWdodDoxfVt4LnhhbmNob3JdfHwwKSxXPXgueStWKigoe3RvcDotLjUsYm90dG9tOi41fVt4LnlhbmNob3JdfHwwKS0uNSksWj1NYXRoLnJvdW5kKEEuaCooMS1XKSksUT1aLVUsSz17dHlwZToibGluZWFyIixyYW5nZTpFLHRpY2ttb2RlOngudGlja21vZGUsbnRpY2tzOngubnRpY2tzLHRpY2swOngudGljazAsZHRpY2s6eC5kdGljayx0aWNrdmFsczp4LnRpY2t2YWxzLHRpY2t0ZXh0OngudGlja3RleHQsdGlja3M6eC50aWNrcyx0aWNrbGVuOngudGlja2xlbix0aWNrd2lkdGg6eC50aWNrd2lkdGgsdGlja2NvbG9yOngudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOnguc2hvd3RpY2tsYWJlbHMsdGlja2ZvbnQ6eC50aWNrZm9udCx0aWNrYW5nbGU6eC50aWNrYW5nbGUsdGlja2Zvcm1hdDp4LnRpY2tmb3JtYXQsZXhwb25lbnRmb3JtYXQ6eC5leHBvbmVudGZvcm1hdCxzaG93ZXhwb25lbnQ6eC5zaG93ZXhwb25lbnQsc2hvd3RpY2twcmVmaXg6eC5zaG93dGlja3ByZWZpeCx0aWNrcHJlZml4OngudGlja3ByZWZpeCxzaG93dGlja3N1ZmZpeDp4LnNob3d0aWNrc3VmZml4LHRpY2tzdWZmaXg6eC50aWNrc3VmZml4LHRpdGxlOngudGl0bGUsdGl0bGVmb250OngudGl0bGVmb250LGFuY2hvcjoiZnJlZSIscG9zaXRpb246MX0sSj17fSwkPXtsZXR0ZXI6InkiLGZvbnQ6ay5mb250LG5vSG92ZXI6ITB9O2lmKG0oSyxKLHksJCksZyhLLEoseSwkKSxKLl9pZD0ieSIrZSxKLl9nZD10LEoucG9zaXRpb249eC54K3ErQixyLmF4aXM9SiwtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZih4LnRpdGxlc2lkZSkmJihKLnRpdGxlc2lkZT14LnRpdGxlc2lkZSxKLnRpdGxleD14LngrcSxKLnRpdGxleT1XKygidG9wIj09PXgudGl0bGVzaWRlP1YtSDpIKSkseC5saW5lLmNvbG9yJiYiYXV0byI9PT14LnRpY2ttb2RlKXtKLnRpY2ttb2RlPSJsaW5lYXIiLEoudGljazA9eC5sZXZlbHMuc3RhcnQ7dmFyIHR0PXgubGV2ZWxzLnNpemUsZXQ9dS5jb25zdHJhaW4oKFotUSkvNTAsNCwxNSkrMSxydD0oRVsxXS1FWzBdKS8oKHgubnRpY2tzfHxldCkqdHQpO2lmKHJ0PjEpe3ZhciBudD1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKHJ0KS9NYXRoLkxOMTApKTt0dCo9bnQqdS5yb3VuZFVwKHJ0L250LFsyLDUsMTBdKSwoTWF0aC5hYnMoeC5sZXZlbHMuc3RhcnQpL3gubGV2ZWxzLnNpemUrMWUtNiklMTwyZS02JiYoSi50aWNrMD0wKX1KLmR0aWNrPXR0fUouZG9tYWluPVtXK0gsVytWLUhdLEouc2V0U2NhbGUoKTt2YXIgaXQ9ay5faW5mb2xheWVyLnNlbGVjdEFsbCgiZy4iK2UpLmRhdGEoWzBdKTtpdC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZSwhMCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3QuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgiY2JiZyIsITApLHQuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2JmaWxscyIsITApLHQuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2JsaW5lcyIsITApLHQuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2JheGlzIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKSx0LmFwcGVuZCgiZyIpLmNsYXNzZWQoImNidGl0bGV1bnNoaWZ0IiwhMCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2J0aXRsZSIsITApLHQuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgiY2JvdXRsaW5lIiwhMCksdC5zZWxlY3QoIi5jYnRpdGxlIikuZGF0dW0oMCl9KSxpdC5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitNYXRoLnJvdW5kKEEubCkrIiwiK01hdGgucm91bmQoQS50KSsiKSIpO3ZhciBvdD1pdC5zZWxlY3QoIi5jYnRpdGxldW5zaGlmdCIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgtIitNYXRoLnJvdW5kKEEubCkrIiwtIitNYXRoLnJvdW5kKEEudCkrIikiKTtKLl9heGlzbGF5ZXI9aXQuc2VsZWN0KCIuY2JheGlzIik7dmFyIGF0PTA7aWYoLTEhPT1bInRvcCIsImJvdHRvbSJdLmluZGV4T2YoeC50aXRsZXNpZGUpKXt2YXIgc3QsbHQ9QS5sKyh4LngrcSkqQS53LHV0PUoudGl0bGVmb250LnNpemU7c3Q9InRvcCI9PT14LnRpdGxlc2lkZT8oMS0oVytWLUgpKSpBLmgrQS50KzMrLjc1KnV0OigxLShXK0gpKSpBLmgrQS50LTMtLjI1KnV0LHcoSi5faWQrInRpdGxlIix7YXR0cmlidXRlczp7eDpsdCx5OnN0LCJ0ZXh0LWFuY2hvciI6InN0YXJ0In19KX12YXIgY3Q9dS5zeW5jT3JBc3luYyhbYS5wcmV2aW91c1Byb21pc2VzLF8sYS5wcmV2aW91c1Byb21pc2VzLE1dLHQpO2lmKGN0JiZjdC50aGVuJiYodC5fcHJvbWlzZXN8fFtdKS5wdXNoKGN0KSx0Ll9jb250ZXh0LmVkaXRhYmxlKXt2YXIgaHQsZnQscHQ7bC5pbml0KHtlbGVtZW50Oml0Lm5vZGUoKSxwcmVwRm46ZnVuY3Rpb24oKXtodD1pdC5hdHRyKCJ0cmFuc2Zvcm0iKSxoKGl0KX0sbW92ZUZuOmZ1bmN0aW9uKHQsZSl7aXQuYXR0cigidHJhbnNmb3JtIixodCsiIHRyYW5zbGF0ZSgiK3QrIiwiK2UrIikiKSxmdD1sLmFsaWduKFkrdC9BLncsQiwwLDEseC54YW5jaG9yKSxwdD1sLmFsaWduKFctZS9BLmgsViwwLDEseC55YW5jaG9yKTt2YXIgcj1sLmdldEN1cnNvcihmdCxwdCx4LnhhbmNob3IseC55YW5jaG9yKTtoKGl0LHIpfSxkb25lRm46ZnVuY3Rpb24oZSl7aChpdCksZSYmdm9pZCAwIT09ZnQmJnZvaWQgMCE9PXB0JiZvLnJlc3R5bGUodCx7ImNvbG9yYmFyLngiOmZ0LCJjb2xvcmJhci55IjpwdH0sYigpLmluZGV4KX19KX1yZXR1cm4gY3R9ZnVuY3Rpb24gYigpe3ZhciByLG4saT1lLnN1YnN0cigyKTtmb3Iocj0wO3I8dC5fZnVsbERhdGEubGVuZ3RoO3IrKylpZihuPXQuX2Z1bGxEYXRhW3JdLG4udWlkPT09aSlyZXR1cm4gbn12YXIgeD17fTtyZXR1cm4gT2JqZWN0LmtleXMoeSkuZm9yRWFjaChmdW5jdGlvbih0KXt4W3RdPW51bGx9KSx4LmZpbGxjb2xvcj1udWxsLHgubGluZT17Y29sb3I6bnVsbCx3aWR0aDpudWxsLGRhc2g6bnVsbH0seC5sZXZlbHM9e3N0YXJ0Om51bGwsZW5kOm51bGwsc2l6ZTpudWxsfSx4LmZpbGxsZXZlbHM9bnVsbCxPYmplY3Qua2V5cyh4KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JbdF09ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHhbdF09dS5pc1BsYWluT2JqZWN0KHhbdF0pP3UuZXh0ZW5kRmxhdCh4W3RdLGUpOmUscik6eFt0XX19KSxyLm9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24oZSl7ImZ1bmN0aW9uIj09dHlwZW9mIHJbZV0mJnJbZV0odFtlXSl9KSxyfSxyLl9vcHRzPXgscn19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vLi4vbGliL3NldGN1cnNvciI6NjAwLCIuLi8uLi9wbG90bHkiOjYxMiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZGVmYXVsdHMiOjYxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo2MjQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9wb3NpdGlvbl9kZWZhdWx0cyI6NjI3LCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuLi9jb2xvciI6NTA2LCIuLi9kcmFnZWxlbWVudCI6NTI3LCIuLi9kcmF3aW5nIjo1MjksIi4uL3RpdGxlcyI6NTY5LCIuL2F0dHJpYnV0ZXMiOjUwNyxkMzoxMjQsdGlueWNvbG9yMjo0Nzd9XSw1MTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuLmlzUGxhaW5PYmplY3QodC5jb2xvcmJhcil9fSx7Ii4uLy4uL2xpYiI6NTkxfV0sNTExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxyLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxyLmRyYXc9dCgiLi9kcmF3Iiksci5oYXNDb2xvcmJhcj10KCIuL2hhc19jb2xvcmJhciIpfSx7Ii4vYXR0cmlidXRlcyI6NTA3LCIuL2RlZmF1bHRzIjo1MDgsIi4vZHJhdyI6NTA5LCIuL2hhc19jb2xvcmJhciI6NTEwfV0sNTEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17emF1dG86e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHptaW46e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsfSx6bWF4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbH0sY29sb3JzY2FsZTp7dmFsVHlwZToiY29sb3JzY2FsZSJ9LGF1dG9jb2xvcnNjYWxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxyZXZlcnNlc2NhbGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHNob3dzY2FsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH19fSx7fV0sNTEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9zY2FsZXMiKSxvPXQoIi4vZmxpcF9zY2FsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgcyxsO3I/KHM9bi5uZXN0ZWRQcm9wZXJ0eSh0LHIpLmdldCgpLGw9bi5uZXN0ZWRQcm9wZXJ0eSh0Ll9pbnB1dCxyKS5nZXQoKSk6KHM9dCxsPXQuX2lucHV0KTt2YXIgdT1zW2ErImF1dG8iXSxjPXNbYSsibWluIl0saD1zW2ErIm1heCJdLGY9cy5jb2xvcnNjYWxlO3U9PT0hMSYmdm9pZCAwIT09Y3x8KGM9bi5hZ2dOdW1zKE1hdGgubWluLG51bGwsZSkpLHU9PT0hMSYmdm9pZCAwIT09aHx8KGg9bi5hZ2dOdW1zKE1hdGgubWF4LG51bGwsZSkpLGM9PT1oJiYoYy09LjUsaCs9LjUpLHNbYSsibWluIl09YyxzW2ErIm1heCJdPWgsbFthKyJtaW4iXT1jLGxbYSsibWF4Il09aCxzLmF1dG9jb2xvcnNjYWxlJiYoZj0wPmMqaD9pLlJkQnU6Yz49MD9pLlJlZHM6aS5CbHVlcyxsLmNvbG9yc2NhbGU9ZixzLnJldmVyc2VzY2FsZSYmKGY9byhmKSkscy5jb2xvcnNjYWxlPWYpfX0seyIuLi8uLi9saWIiOjU5MSwiLi9mbGlwX3NjYWxlIjo1MTcsIi4vc2NhbGVzIjo1MjR9XSw1MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRGVlcDt0KCIuL3NjYWxlcy5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm57Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwfSxjb2xvcnNjYWxlOmkoe30sbi5jb2xvcnNjYWxlLHt9KSxjYXV0bzppKHt9LG4uemF1dG8se30pLGNtYXg6aSh7fSxuLnptYXgse30pLGNtaW46aSh7fSxuLnptaW4se30pLGF1dG9jb2xvcnNjYWxlOmkoe30sbi5hdXRvY29sb3JzY2FsZSx7fSkscmV2ZXJzZXNjYWxlOmkoe30sbi5yZXZlcnNlc2NhbGUse30pfX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NTg2LCIuL2F0dHJpYnV0ZXMiOjUxMiwiLi9zY2FsZXMuanMiOjUyNH1dLDUxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3NjYWxlcyIpO2UuZXhwb3J0cz1uLlJkQnV9LHsiLi9zY2FsZXMiOjUyNH1dLDUxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksbz10KCIuLi9jb2xvcmJhci9oYXNfY29sb3JiYXIiKSxhPXQoIi4uL2NvbG9yYmFyL2RlZmF1bHRzIikscz10KCIuL2lzX3ZhbGlkX3NjYWxlIiksbD10KCIuL2ZsaXBfc2NhbGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSxjKXt2YXIgaD1jLnByZWZpeCxmPWMuY0xldHRlcixwPWguc2xpY2UoMCxoLmxlbmd0aC0xKSxkPWg/aS5uZXN0ZWRQcm9wZXJ0eSh0LHApLmdldCgpfHx7fTp0LG09aD9pLm5lc3RlZFByb3BlcnR5KGUscCkuZ2V0KCl8fHt9OmUsZz1kW2YrIm1pbiJdLHY9ZFtmKyJtYXgiXSx5PWQuY29sb3JzY2FsZSxiPW4oZykmJm4odikmJnY+Zzt1KGgrZisiYXV0byIsIWIpLHUoaCtmKyJtaW4iKSx1KGgrZisibWF4Iik7dmFyIHg7dm9pZCAwIT09eSYmKHg9IXMoeSkpLHUoaCsiYXV0b2NvbG9yc2NhbGUiLHgpO3ZhciBfPXUoaCsiY29sb3JzY2FsZSIpLHc9dShoKyJyZXZlcnNlc2NhbGUiKTtpZih3JiYobS5jb2xvcnNjYWxlPWwoXykpLCJtYXJrZXIubGluZS4iIT09aCl7dmFyIE07aCYmKE09byhkKSk7dmFyIGs9dShoKyJzaG93c2NhbGUiLE0pO2smJmEoZCxtLHIpfX19LHsiLi4vLi4vbGliIjo1OTEsIi4uL2NvbG9yYmFyL2RlZmF1bHRzIjo1MDgsIi4uL2NvbG9yYmFyL2hhc19jb2xvcmJhciI6NTEwLCIuL2ZsaXBfc2NhbGUiOjUxNywiLi9pc192YWxpZF9zY2FsZSI6NTIxLCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNTE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPXItMSxvPTA7aT49MDtpLS0sbysrKWU9dFtpXSxuW29dPVsxLWVbMF0sZVsxXV07cmV0dXJuIG59fSx7fV0sNTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc2NhbGVzIiksaT10KCIuL2RlZmF1bHRfc2NhbGUiKSxvPXQoIi4vaXNfdmFsaWRfc2NhbGVfYXJyYXkiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKCl7dHJ5e3Q9blt0XXx8SlNPTi5wYXJzZSh0KX1jYXRjaChyKXt0PWV9fXJldHVybiBlfHwoZT1pKSx0Pygic3RyaW5nIj09dHlwZW9mIHQmJihyKCksInN0cmluZyI9PXR5cGVvZiB0JiZyKCkpLG8odCk/dDplKTplfX0seyIuL2RlZmF1bHRfc2NhbGUiOjUxNSwiLi9pc192YWxpZF9zY2FsZV9hcnJheSI6NTIyLCIuL3NjYWxlcyI6NTI0fV0sNTE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4vaXNfdmFsaWRfc2NhbGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lP2kubmVzdGVkUHJvcGVydHkodCxlKS5nZXQoKXx8e306dCxhPXIuY29sb3Iscz0hMTtpZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgbD0wO2w8YS5sZW5ndGg7bCsrKWlmKG4oYVtsXSkpe3M9ITA7YnJlYWt9cmV0dXJuIGkuaXNQbGFpbk9iamVjdChyKSYmKHN8fHIuc2hvd3NjYWxlPT09ITB8fG4oci5jbWluKSYmbihyLmNtYXgpfHxvKHIuY29sb3JzY2FsZSl8fGkuaXNQbGFpbk9iamVjdChyLmNvbG9yYmFyKSl9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuL2lzX3ZhbGlkX3NjYWxlIjo1MjEsImZhc3QtaXNudW1lcmljIjoxMjh9XSw1MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5zY2FsZXM9dCgiLi9zY2FsZXMiKSxyLmRlZmF1bHRTY2FsZT10KCIuL2RlZmF1bHRfc2NhbGUiKSxyLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksci5oYW5kbGVEZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksci5jYWxjPXQoIi4vY2FsYyIpLHIuaGFzQ29sb3JzY2FsZT10KCIuL2hhc19jb2xvcnNjYWxlIiksci5pc1ZhbGlkU2NhbGU9dCgiLi9pc192YWxpZF9zY2FsZSIpLHIuZ2V0U2NhbGU9dCgiLi9nZXRfc2NhbGUiKSxyLmZsaXBTY2FsZT10KCIuL2ZsaXBfc2NhbGUiKSxyLm1ha2VTY2FsZUZ1bmN0aW9uPXQoIi4vbWFrZV9zY2FsZV9mdW5jdGlvbiIpfSx7Ii4vYXR0cmlidXRlcyI6NTEyLCIuL2NhbGMiOjUxMywiLi9kZWZhdWx0X3NjYWxlIjo1MTUsIi4vZGVmYXVsdHMiOjUxNiwiLi9mbGlwX3NjYWxlIjo1MTcsIi4vZ2V0X3NjYWxlIjo1MTgsIi4vaGFzX2NvbG9yc2NhbGUiOjUxOSwiLi9pc192YWxpZF9zY2FsZSI6NTIxLCIuL21ha2Vfc2NhbGVfZnVuY3Rpb24iOjUyMywiLi9zY2FsZXMiOjUyNH1dLDUyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3NjYWxlcyIpLGk9dCgiLi9pc192YWxpZF9zY2FsZV9hcnJheSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09blt0XT8hMDppKHQpfX0seyIuL2lzX3ZhbGlkX3NjYWxlX2FycmF5Ijo1MjIsIi4vc2NhbGVzIjo1MjR9XSw1MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidGlueWNvbG9yMiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0wO2lmKCFBcnJheS5pc0FycmF5KHQpfHx0Lmxlbmd0aDwyKXJldHVybiExO2lmKCF0WzBdfHwhdFt0Lmxlbmd0aC0xXSlyZXR1cm4hMTtpZigwIT09K3RbMF1bMF18fDEhPT0rdFt0Lmxlbmd0aC0xXVswXSlyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXTtpZigyIT09aS5sZW5ndGh8fCtpWzBdPGV8fCFuKGlbMV0pLmlzVmFsaWQoKSlyZXR1cm4hMTtlPStpWzBdfXJldHVybiEwfX0se3Rpbnljb2xvcjI6NDc3fV0sNTIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCJ0aW55Y29sb3IyIiksbz10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIikscz10KCIuLi9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBsLHU9dC5sZW5ndGgsYz1uZXcgQXJyYXkodSksaD1uZXcgQXJyYXkodSksZj0wO3U+ZjtmKyspbD10W2ZdLGNbZl09ZStsWzBdKihyLWUpLGhbZl09aShsWzFdKS50b1JnYigpO3ZhciBwPW4uc2NhbGUubGluZWFyKCkuZG9tYWluKGMpLmludGVycG9sYXRlKG4uaW50ZXJwb2xhdGVPYmplY3QpLnJhbmdlKGgpO3JldHVybiBmdW5jdGlvbih0KXtpZihvKHQpKXt2YXIgbj1hLmNvbnN0cmFpbih0LGUsciksbD1wKG4pO3JldHVybiBpKGwpLnRvUmdiU3RyaW5nKCl9cmV0dXJuIGkodCkuaXNWYWxpZCgpP3Q6cy5kZWZhdWx0TGluZX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi9jb2xvciI6NTA2LGQzOjEyNCwiZmFzdC1pc251bWVyaWMiOjEyOCx0aW55Y29sb3IyOjQ3N31dLDUyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0dyZXlzOltbMCwicmdiKDAsMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLFlsR25CdTpbWzAsInJnYig4LDI5LDg4KSJdLFsuMTI1LCJyZ2IoMzcsNTIsMTQ4KSJdLFsuMjUsInJnYigzNCw5NCwxNjgpIl0sWy4zNzUsInJnYigyOSwxNDUsMTkyKSJdLFsuNSwicmdiKDY1LDE4MiwxOTYpIl0sWy42MjUsInJnYigxMjcsMjA1LDE4NykiXSxbLjc1LCJyZ2IoMTk5LDIzMywxODApIl0sWy44NzUsInJnYigyMzcsMjQ4LDIxNykiXSxbMSwicmdiKDI1NSwyNTUsMjE3KSJdXSxHcmVlbnM6W1swLCJyZ2IoMCw2OCwyNykiXSxbLjEyNSwicmdiKDAsMTA5LDQ0KSJdLFsuMjUsInJnYigzNSwxMzksNjkpIl0sWy4zNzUsInJnYig2NSwxNzEsOTMpIl0sWy41LCJyZ2IoMTE2LDE5NiwxMTgpIl0sWy42MjUsInJnYigxNjEsMjE3LDE1NSkiXSxbLjc1LCJyZ2IoMTk5LDIzMywxOTIpIl0sWy44NzUsInJnYigyMjksMjQ1LDIyNCkiXSxbMSwicmdiKDI0NywyNTIsMjQ1KSJdXSxZbE9yUmQ6W1swLCJyZ2IoMTI4LDAsMzgpIl0sWy4xMjUsInJnYigxODksMCwzOCkiXSxbLjI1LCJyZ2IoMjI3LDI2LDI4KSJdLFsuMzc1LCJyZ2IoMjUyLDc4LDQyKSJdLFsuNSwicmdiKDI1MywxNDEsNjApIl0sWy42MjUsInJnYigyNTQsMTc4LDc2KSJdLFsuNzUsInJnYigyNTQsMjE3LDExOCkiXSxbLjg3NSwicmdiKDI1NSwyMzcsMTYwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyMDQpIl1dLEJsdWVyZWQ6W1swLCJyZ2IoMCwwLDI1NSkiXSxbMSwicmdiKDI1NSwwLDApIl1dLFJkQnU6W1swLCJyZ2IoNSwxMCwxNzIpIl0sWy4zNSwicmdiKDEwNiwxMzcsMjQ3KSJdLFsuNSwicmdiKDE5MCwxOTAsMTkwKSJdLFsuNiwicmdiKDIyMCwxNzAsMTMyKSJdLFsuNywicmdiKDIzMCwxNDUsOTApIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLFJlZHM6W1swLCJyZ2IoMjIwLDIyMCwyMjApIl0sWy4yLCJyZ2IoMjQ1LDE5NSwxNTcpIl0sWy40LCJyZ2IoMjQ1LDE2MCwxMDUpIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLEJsdWVzOltbMCwicmdiKDUsMTAsMTcyKSJdLFsuMzUsInJnYig0MCw2MCwxOTApIl0sWy41LCJyZ2IoNzAsMTAwLDI0NSkiXSxbLjYsInJnYig5MCwxMjAsMjQ1KSJdLFsuNywicmdiKDEwNiwxMzcsMjQ3KSJdLFsxLCJyZ2IoMjIwLDIyMCwyMjApIl1dLApQaWNuaWM6W1swLCJyZ2IoMCwwLDI1NSkiXSxbLjEsInJnYig1MSwxNTMsMjU1KSJdLFsuMiwicmdiKDEwMiwyMDQsMjU1KSJdLFsuMywicmdiKDE1MywyMDQsMjU1KSJdLFsuNCwicmdiKDIwNCwyMDQsMjU1KSJdLFsuNSwicmdiKDI1NSwyNTUsMjU1KSJdLFsuNiwicmdiKDI1NSwyMDQsMjU1KSJdLFsuNywicmdiKDI1NSwxNTMsMjU1KSJdLFsuOCwicmdiKDI1NSwxMDIsMjA0KSJdLFsuOSwicmdiKDI1NSwxMDIsMTAyKSJdLFsxLCJyZ2IoMjU1LDAsMCkiXV0sUmFpbmJvdzpbWzAsInJnYigxNTAsMCw5MCkiXSxbLjEyNSwicmdiKDAsMCwyMDApIl0sWy4yNSwicmdiKDAsMjUsMjU1KSJdLFsuMzc1LCJyZ2IoMCwxNTIsMjU1KSJdLFsuNSwicmdiKDQ0LDI1NSwxNTApIl0sWy42MjUsInJnYigxNTEsMjU1LDApIl0sWy43NSwicmdiKDI1NSwyMzQsMCkiXSxbLjg3NSwicmdiKDI1NSwxMTEsMCkiXSxbMSwicmdiKDI1NSwwLDApIl1dLFBvcnRsYW5kOltbMCwicmdiKDEyLDUxLDEzMSkiXSxbLjI1LCJyZ2IoMTAsMTM2LDE4NikiXSxbLjUsInJnYigyNDIsMjExLDU2KSJdLFsuNzUsInJnYigyNDIsMTQzLDU2KSJdLFsxLCJyZ2IoMjE3LDMwLDMwKSJdXSxKZXQ6W1swLCJyZ2IoMCwwLDEzMSkiXSxbLjEyNSwicmdiKDAsNjAsMTcwKSJdLFsuMzc1LCJyZ2IoNSwyNTUsMjU1KSJdLFsuNjI1LCJyZ2IoMjU1LDI1NSwwKSJdLFsuODc1LCJyZ2IoMjUwLDAsMCkiXSxbMSwicmdiKDEyOCwwLDApIl1dLEhvdDpbWzAsInJnYigwLDAsMCkiXSxbLjMsInJnYigyMzAsMCwwKSJdLFsuNiwicmdiKDI1NSwyMTAsMCkiXSxbMSwicmdiKDI1NSwyNTUsMjU1KSJdXSxCbGFja2JvZHk6W1swLCJyZ2IoMCwwLDApIl0sWy4yLCJyZ2IoMjMwLDAsMCkiXSxbLjQsInJnYigyMzAsMjEwLDApIl0sWy43LCJyZ2IoMjU1LDI1NSwyNTUpIl0sWzEsInJnYigxNjAsMjAwLDI1NSkiXV0sRWFydGg6W1swLCJyZ2IoMCwwLDEzMCkiXSxbLjEsInJnYigwLDE4MCwxODApIl0sWy4yLCJyZ2IoNDAsMjEwLDQwKSJdLFsuNCwicmdiKDIzMCwyMzAsNTApIl0sWy42LCJyZ2IoMTIwLDcwLDIwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLEVsZWN0cmljOltbMCwicmdiKDAsMCwwKSJdLFsuMTUsInJnYigzMCwwLDEwMCkiXSxbLjQsInJnYigxMjAsMCwxMDApIl0sWy42LCJyZ2IoMTYwLDkwLDApIl0sWy44LCJyZ2IoMjMwLDIwMCwwKSJdLFsxLCJyZ2IoMjU1LDI1MCwyMjApIl1dLFZpcmlkaXM6W1swLCIjNDQwMTU0Il0sWy4wNjI3NDUwOTgwMzkyMTU2OSwiIzQ4MTg2YSJdLFsuMTI1NDkwMTk2MDc4NDMxMzcsIiM0NzJkN2IiXSxbLjE4ODIzNTI5NDExNzY0NzA2LCIjNDI0MDg2Il0sWy4yNTA5ODAzOTIxNTY4NjI3NCwiIzNiNTI4YiJdLFsuMzEzNzI1NDkwMTk2MDc4NCwiIzMzNjM4ZCJdLFsuMzc2NDcwNTg4MjM1Mjk0MSwiIzJjNzI4ZSJdLFsuNDM5MjE1Njg2Mjc0NTA5OCwiIzI2ODI4ZSJdLFsuNTAxOTYwNzg0MzEzNzI1NSwiIzIxOTE4YyJdLFsuNTY0NzA1ODgyMzUyOTQxMiwiIzFmYTA4OCJdLFsuNjI3NDUwOTgwMzkyMTU2OSwiIzI4YWU4MCJdLFsuNjkwMTk2MDc4NDMxMzcyNSwiIzNmYmM3MyJdLFsuNzUyOTQxMTc2NDcwNTg4MiwiIzVlYzk2MiJdLFsuODE1Njg2Mjc0NTA5ODAzOSwiIzg0ZDQ0YiJdLFsuODc4NDMxMzcyNTQ5MDE5NiwiI2FkZGMzMCJdLFsuOTQxMTc2NDcwNTg4MjM1MywiI2Q4ZTIxOSJdLFsxLCIjZmRlNzI1Il1dfX0se31dLDUyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz0odC1yKS8obi1yKSxhPW8rZS8obi1yKSxzPShvK2EpLzI7cmV0dXJuImxlZnQiPT09aXx8ImJvdHRvbSI9PT1pP286ImNlbnRlciI9PT1pfHwibWlkZGxlIj09PWk/czoicmlnaHQiPT09aXx8InRvcCI9PT1pP2E6Mi8zLXM+bz9vOmE+NC8zLXM/YTpzfX0se31dLDUyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPVtbInN3LXJlc2l6ZSIsInMtcmVzaXplIiwic2UtcmVzaXplIl0sWyJ3LXJlc2l6ZSIsIm1vdmUiLCJlLXJlc2l6ZSJdLFsibnctcmVzaXplIiwibi1yZXNpemUiLCJuZS1yZXNpemUiXV07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3JldHVybiB0PSJsZWZ0Ij09PXI/MDoiY2VudGVyIj09PXI/MToicmlnaHQiPT09cj8yOm4uY29uc3RyYWluKE1hdGguZmxvb3IoMyp0KSwwLDIpLGU9ImJvdHRvbSI9PT1vPzA6Im1pZGRsZSI9PT1vPzE6InRvcCI9PT1vPzI6bi5jb25zdHJhaW4oTWF0aC5mbG9vcigzKmUpLDAsMiksaVtlXVt0XX19LHsiLi4vLi4vbGliIjo1OTF9XSw1Mjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJkcmFnY292ZXIiO3ZhciBlPXQuc3R5bGU7cmV0dXJuIGUucG9zaXRpb249ImZpeGVkIixlLmxlZnQ9MCxlLnJpZ2h0PTAsZS50b3A9MCxlLmJvdHRvbT0wLGUuekluZGV4PTk5OTk5OTk5OSxlLmJhY2tncm91bmQ9Im5vbmUiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdH1mdW5jdGlvbiBpKHQpe3QuX2RyYWdnaW5nPSExLHQuX3JlcGxvdFBlbmRpbmcmJm8ucGxvdCh0KX12YXIgbz10KCIuLi8uLi9wbG90bHkiKSxhPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLGw9ZS5leHBvcnRzPXt9O2wuYWxpZ249dCgiLi9hbGlnbiIpLGwuZ2V0Q3Vyc29yPXQoIi4vY3Vyc29yIik7dmFyIHU9dCgiLi91bmhvdmVyIik7bC51bmhvdmVyPXUud3JhcHBlZCxsLnVuaG92ZXJSYXc9dS5yYXcsbC5pbml0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7cmV0dXJuIHQuZWxlbWVudC5vbm1vdXNlbW92ZT1kLG0uX2RyYWdnZWQ9ITEsbS5fZHJhZ2dpbmc9ITAsdT1lLmNsaWVudFgsYz1lLmNsaWVudFkscD1lLnRhcmdldCxoPShuZXcgRGF0ZSkuZ2V0VGltZSgpLGgtbS5fbW91c2VEb3duVGltZTx2P2crPTE6KGc9MSxtLl9tb3VzZURvd25UaW1lPWgpLHQucHJlcEZuJiZ0LnByZXBGbihlLHUsYyksZj1uKCksZi5vbm1vdXNlbW92ZT1yLGYub25tb3VzZXVwPW8sZi5vbm1vdXNlb3V0PW8sZi5zdHlsZS5jdXJzb3I9d2luZG93LmdldENvbXB1dGVkU3R5bGUodC5lbGVtZW50KS5jdXJzb3IsYS5wYXVzZUV2ZW50KGUpfWZ1bmN0aW9uIHIoZSl7dmFyIHI9ZS5jbGllbnRYLXUsbj1lLmNsaWVudFktYyxpPXQubWluRHJhZ3x8cy5NSU5EUkFHO3JldHVybiBNYXRoLmFicyhyKTxpJiYocj0wKSxNYXRoLmFicyhuKTxpJiYobj0wKSwocnx8bikmJihtLl9kcmFnZ2VkPSEwLGwudW5ob3ZlcihtKSksdC5tb3ZlRm4mJnQubW92ZUZuKHIsbixtLl9kcmFnZ2VkKSxhLnBhdXNlRXZlbnQoZSl9ZnVuY3Rpb24gbyhlKXtpZihkPXQuZWxlbWVudC5vbm1vdXNlbW92ZSx0LnNldEN1cnNvciYmKHQuZWxlbWVudC5vbm1vdXNlbW92ZT10LnNldEN1cnNvciksZi5vbm1vdXNlbW92ZT1udWxsLGYub25tb3VzZXVwPW51bGwsZi5vbm1vdXNlb3V0PW51bGwsYS5yZW1vdmVFbGVtZW50KGYpLCFtLl9kcmFnZ2luZylyZXR1cm4gdm9pZChtLl9kcmFnZ2VkPSExKTtpZihtLl9kcmFnZ2luZz0hMSwobmV3IERhdGUpLmdldFRpbWUoKS1tLl9tb3VzZURvd25UaW1lPnYmJihnPU1hdGgubWF4KGctMSwxKSksdC5kb25lRm4mJnQuZG9uZUZuKG0uX2RyYWdnZWQsZyksIW0uX2RyYWdnZWQpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpO3IuaW5pdEV2ZW50KCJjbGljayIsITAsITApLHAuZGlzcGF0Y2hFdmVudChyKX1yZXR1cm4gaShtKSxtLl9kcmFnZ2VkPSExLGEucGF1c2VFdmVudChlKX12YXIgdSxjLGgsZixwLGQsbT1hLmdldFBsb3REaXYodC5lbGVtZW50KXx8e30sZz0xLHY9cy5EQkxDTElDS0RFTEFZO20uX21vdXNlRG93blRpbWV8fChtLl9tb3VzZURvd25UaW1lPTApLGQ9dC5lbGVtZW50Lm9ubW91c2Vtb3ZlLHQuc2V0Q3Vyc29yJiYodC5lbGVtZW50Lm9ubW91c2Vtb3ZlPXQuc2V0Q3Vyc29yKSx0LmVsZW1lbnQub25tb3VzZWRvd249ZSx0LmVsZW1lbnQuc3R5bGUucG9pbnRlckV2ZW50cz0iYWxsIn19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RseSI6NjEyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo2MjAsIi4vYWxpZ24iOjUyNSwiLi9jdXJzb3IiOjUyNiwiLi91bmhvdmVyIjo1Mjh9XSw1Mjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V2ZW50cyIpLGk9ZS5leHBvcnRzPXt9O2kud3JhcHBlZD1mdW5jdGlvbih0LGUscil7InN0cmluZyI9PXR5cGVvZiB0JiYodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSksdC5faG92ZXJUaW1lciYmKGNsZWFyVGltZW91dCh0Ll9ob3ZlclRpbWVyKSx0Ll9ob3ZlclRpbWVyPXZvaWQgMCksaS5yYXcodCxlLHIpfSxpLnJhdz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQ7ZXx8KGU9e30pLGUudGFyZ2V0JiZuLnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9iZWZvcmVob3ZlciIsZSk9PT0hMXx8KHIuX2hvdmVybGF5ZXIuc2VsZWN0QWxsKCJnIikucmVtb3ZlKCksZS50YXJnZXQmJnQuX2hvdmVyZGF0YSYmdC5lbWl0KCJwbG90bHlfdW5ob3ZlciIse3BvaW50czp0Ll9ob3ZlcmRhdGF9KSx0Ll9ob3ZlcmRhdGE9dm9pZCAwKX19LHsiLi4vLi4vbGliL2V2ZW50cyI6NTg1fV0sNTI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIG89dFswXS1lWzBdLGE9dFsxXS1lWzFdLHM9clswXS1lWzBdLGw9clsxXS1lWzFdLHU9TWF0aC5wb3cobypvK2EqYSx4LzIpLGM9TWF0aC5wb3cocypzK2wqbCx4LzIpLGg9KGMqYypvLXUqdSpzKSpuLGY9KGMqYyphLXUqdSpsKSpuLHA9MypjKih1K2MpLGQ9Myp1Kih1K2MpO3JldHVybltbaS5yb3VuZChlWzBdKyhwJiZoL3ApLDIpLGkucm91bmQoZVsxXSsocCYmZi9wKSwyKV0sW2kucm91bmQoZVswXS0oZCYmaC9kKSwyKSxpLnJvdW5kKGVbMV0tKGQmJmYvZCksMildXX12YXIgaT10KCJkMyIpLG89dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIikscz10KCIuLi9jb2xvciIpLGw9dCgiLi4vY29sb3JzY2FsZSIpLHU9dCgiLi4vLi4vbGliIiksYz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIiksZj10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyIpLHA9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIiksZD1lLmV4cG9ydHM9e307ZC5mb250PWZ1bmN0aW9uKHQsZSxyLG4pe2UmJmUuZmFtaWx5JiYobj1lLmNvbG9yLHI9ZS5zaXplLGU9ZS5mYW1pbHkpLGUmJnQuc3R5bGUoImZvbnQtZmFtaWx5IixlKSxyKzEmJnQuc3R5bGUoImZvbnQtc2l6ZSIscisicHgiKSxuJiZ0LmNhbGwocy5maWxsLG4pfSxkLnNldFBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxyKXt0LmF0dHIoIngiLGUpLmF0dHIoInkiLHIpfSxkLnNldFNpemU9ZnVuY3Rpb24odCxlLHIpe3QuYXR0cigid2lkdGgiLGUpLmF0dHIoImhlaWdodCIscil9LGQuc2V0UmVjdD1mdW5jdGlvbih0LGUscixuLGkpe3QuY2FsbChkLnNldFBvc2l0aW9uLGUscikuY2FsbChkLnNldFNpemUsbixpKX0sZC50cmFuc2xhdGVQb2ludHM9ZnVuY3Rpb24odCxlLHIpe3QuZWFjaChmdW5jdGlvbih0KXt2YXIgbj10LnhwfHxlLmMycCh0LngpLGE9dC55cHx8ci5jMnAodC55KSxzPWkuc2VsZWN0KHRoaXMpO28obikmJm8oYSk/InRleHQiPT09dGhpcy5ub2RlTmFtZT9zLmF0dHIoIngiLG4pLmF0dHIoInkiLGEpOnMuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrbisiLCIrYSsiKSIpOnMucmVtb3ZlKCl9KX0sZC5nZXRQeD1mdW5jdGlvbih0LGUpe3JldHVybiBOdW1iZXIodC5zdHlsZShlKS5yZXBsYWNlKC9weCQvLCIiKSl9LGQuY3Jpc3BSb3VuZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIGUmJm8oZSk/dC5fY29udGV4dC5zdGF0aWNQbG90P2U6MT5lPzE6TWF0aC5yb3VuZChlKTpyfHwwfSxkLmxpbmVHcm91cFN0eWxlPWZ1bmN0aW9uKHQsZSxyLG4pe3Quc3R5bGUoImZpbGwiLCJub25lIikuZWFjaChmdW5jdGlvbih0KXt2YXIgbz0oKCh0fHxbXSlbMF18fHt9KS50cmFjZXx8e30pLmxpbmV8fHt9LGE9ZXx8by53aWR0aHx8MCxsPW58fG8uZGFzaHx8IiI7aS5zZWxlY3QodGhpcykuY2FsbChzLnN0cm9rZSxyfHxvLmNvbG9yKS5jYWxsKGQuZGFzaExpbmUsbCxhKX0pfSxkLmRhc2hMaW5lPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLm1heChyLDMpOyJzb2xpZCI9PT1lP2U9IiI6ImRvdCI9PT1lP2U9bisicHgsIituKyJweCI6ImRhc2giPT09ZT9lPTMqbisicHgsIiszKm4rInB4IjoibG9uZ2Rhc2giPT09ZT9lPTUqbisicHgsIis1Km4rInB4IjoiZGFzaGRvdCI9PT1lP2U9MypuKyJweCwiK24rInB4LCIrbisicHgsIituKyJweCI6ImxvbmdkYXNoZG90Ij09PWUmJihlPTUqbisicHgsIisyKm4rInB4LCIrbisicHgsIisyKm4rInB4IiksdC5zdHlsZSh7InN0cm9rZS1kYXNoYXJyYXkiOmUsInN0cm9rZS13aWR0aCI6cisicHgifSl9LGQuZmlsbEdyb3VwU3R5bGU9ZnVuY3Rpb24odCl7dC5zdHlsZSgic3Ryb2tlLXdpZHRoIiwwKS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWkuc2VsZWN0KHRoaXMpO3RyeXtyLmNhbGwocy5maWxsLGVbMF0udHJhY2UuZmlsbGNvbG9yKX1jYXRjaChuKXt1LmVycm9yKG4sdCksci5yZW1vdmUoKX19KX07dmFyIG09dCgiLi9zeW1ib2xfZGVmcyIpO2Quc3ltYm9sTmFtZXM9W10sZC5zeW1ib2xGdW5jcz1bXSxkLnN5bWJvbE5lZWRMaW5lcz17fSxkLnN5bWJvbE5vRG90PXt9LGQuc3ltYm9sTGlzdD1bXSxPYmplY3Qua2V5cyhtKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW1bdF07ZC5zeW1ib2xMaXN0PWQuc3ltYm9sTGlzdC5jb25jYXQoW2Uubix0LGUubisxMDAsdCsiLW9wZW4iXSksZC5zeW1ib2xOYW1lc1tlLm5dPXQsZC5zeW1ib2xGdW5jc1tlLm5dPWUuZixlLm5lZWRMaW5lJiYoZC5zeW1ib2xOZWVkTGluZXNbZS5uXT0hMCksZS5ub0RvdD9kLnN5bWJvbE5vRG90W2Uubl09ITA6ZC5zeW1ib2xMaXN0PWQuc3ltYm9sTGlzdC5jb25jYXQoW2UubisyMDAsdCsiLWRvdCIsZS5uKzMwMCx0KyItb3Blbi1kb3QiXSl9KTt2YXIgZz1kLnN5bWJvbE5hbWVzLmxlbmd0aCx2PSJNMCwwLjVMMC41LDBMMCwtMC41TC0wLjUsMFoiO2Quc3ltYm9sTnVtYmVyPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9MDt0LmluZGV4T2YoIi1vcGVuIik+MCYmKGU9MTAwLHQ9dC5yZXBsYWNlKCItb3BlbiIsIiIpKSx0LmluZGV4T2YoIi1kb3QiKT4wJiYoZSs9MjAwLHQ9dC5yZXBsYWNlKCItZG90IiwiIikpLHQ9ZC5zeW1ib2xOYW1lcy5pbmRleE9mKHQpLHQ+PTAmJih0Kz1lKX1yZXR1cm4gdCUxMDA+PWd8fHQ+PTQwMD8wOk1hdGguZmxvb3IoTWF0aC5tYXgodCwwKSl9LGQucG9pbnRTdHlsZT1mdW5jdGlvbih0LGUpe2lmKHQuc2l6ZSgpKXt2YXIgcj1lLm1hcmtlcixuPXIubGluZTtpZihhLnRyYWNlSXMoZSwic3ltYm9scyIpKXt2YXIgbz1wKGUpO3QuYXR0cigiZCIsZnVuY3Rpb24odCl7dmFyIG47bj0idmFyaW91cyI9PT10Lm1zfHwidmFyaW91cyI9PT1yLnNpemU/MzpmLmlzQnViYmxlKGUpP28odC5tcyk6KHIuc2l6ZXx8NikvMix0Lm1yYz1uO3ZhciBpPWQuc3ltYm9sTnVtYmVyKHQubXh8fHIuc3ltYm9sKXx8MCxhPWklMTAwO3JldHVybiB0Lm9tPWklMjAwPj0xMDAsZC5zeW1ib2xGdW5jc1thXShuKSsoaT49MjAwP3Y6IiIpfSkuc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybih0Lm1vKzF8fHIub3BhY2l0eSsxKS0xfSl9dmFyIGw9KGUuX2lucHV0fHx7fSkubWFya2VyfHx7fSx1PWQudHJ5Q29sb3JzY2FsZShyLGwsIiIpLGM9ZC50cnlDb2xvcnNjYWxlKHIsbCwibGluZS4iKTt0LmVhY2goZnVuY3Rpb24odCl7dmFyIGUsbyxhO3Quc28/KGE9bi5vdXRsaWVyd2lkdGgsbz1uLm91dGxpZXJjb2xvcixlPXIub3V0bGllcmNvbG9yKTooYT0odC5tbHcrMXx8bi53aWR0aCsxfHwodC50cmFjZT90LnRyYWNlLm1hcmtlci5saW5lLndpZHRoOjApKzEpLTEsbz0ibWxjImluIHQ/dC5tbGNjPWModC5tbGMpOkFycmF5LmlzQXJyYXkobi5jb2xvcik/cy5kZWZhdWx0TGluZTpuLmNvbG9yLGU9Im1jImluIHQ/dC5tY2M9dSh0Lm1jKTpBcnJheS5pc0FycmF5KHIuY29sb3IpP3MuZGVmYXVsdExpbmU6ci5jb2xvcnx8InJnYmEoMCwwLDAsMCkiKTt2YXIgbD1pLnNlbGVjdCh0aGlzKTt0Lm9tP2wuY2FsbChzLnN0cm9rZSxlKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6KGF8fDEpKyJweCIsZmlsbDoibm9uZSJ9KToobC5zdHlsZSgic3Ryb2tlLXdpZHRoIixhKyJweCIpLmNhbGwocy5maWxsLGUpLGEmJmwuY2FsbChzLnN0cm9rZSxvKSl9KX19LGQudHJ5Q29sb3JzY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dS5uZXN0ZWRQcm9wZXJ0eSh0LHIrImNvbG9yIikuZ2V0KCksaT11Lm5lc3RlZFByb3BlcnR5KHQscisiY29sb3JzY2FsZSIpLmdldCgpLGE9dS5uZXN0ZWRQcm9wZXJ0eSh0LHIrImNhdXRvIikuZ2V0KCkscz11Lm5lc3RlZFByb3BlcnR5KHQscisiY21pbiIpLGM9dS5uZXN0ZWRQcm9wZXJ0eSh0LHIrImNtYXgiKSxoPXMuZ2V0KCksZj1jLmdldCgpO3JldHVybiBpJiZBcnJheS5pc0FycmF5KG4pPyghYSYmbyhoKSYmbyhmKXx8KGg9MS8wLGY9LSgxLzApLG4uZm9yRWFjaChmdW5jdGlvbih0KXtvKHQpJiYoaD50JiYoaD0rdCksdD5mJiYoZj0rdCkpfSksaD5mJiYoaD0wLGY9MSkscy5zZXQoaCksYy5zZXQoZiksdS5uZXN0ZWRQcm9wZXJ0eShlLHIrImNtaW4iKS5zZXQoaCksdS5uZXN0ZWRQcm9wZXJ0eShlLHIrImNtYXgiKS5zZXQoZikpLGwubWFrZVNjYWxlRnVuY3Rpb24oaSxoLGYpKTp1LmlkZW50aXR5fTt2YXIgeT17c3RhcnQ6MSxlbmQ6LTEsbWlkZGxlOjAsYm90dG9tOjEsdG9wOi0xfSxiPTEuMztkLnRleHRQb2ludFN0eWxlPWZ1bmN0aW9uKHQsZSl7dC5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByPWkuc2VsZWN0KHRoaXMpLG49dC50eHx8ZS50ZXh0O2lmKCFufHxBcnJheS5pc0FycmF5KG4pKXJldHVybiB2b2lkIHIucmVtb3ZlKCk7dmFyIGE9dC50cHx8ZS50ZXh0cG9zaXRpb24scz0tMSE9PWEuaW5kZXhPZigidG9wIik/InRvcCI6LTEhPT1hLmluZGV4T2YoImJvdHRvbSIpPyJib3R0b20iOiJtaWRkbGUiLGw9LTEhPT1hLmluZGV4T2YoImxlZnQiKT8iZW5kIjotMSE9PWEuaW5kZXhPZigicmlnaHQiKT8ic3RhcnQiOiJtaWRkbGUiLHU9dC50c3x8ZS50ZXh0Zm9udC5zaXplLGg9dC5tcmM/dC5tcmMvLjgrMTowO3U9byh1KSYmdT4wP3U6MCxyLmNhbGwoZC5mb250LHQudGZ8fGUudGV4dGZvbnQuZmFtaWx5LHUsdC50Y3x8ZS50ZXh0Zm9udC5jb2xvcikuYXR0cigidGV4dC1hbmNob3IiLGwpLnRleHQobikuY2FsbChjLmNvbnZlcnRUb1RzcGFucyk7dmFyIGY9aS5zZWxlY3QodGhpcy5wYXJlbnROb2RlKSxwPXIuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIiksbT0oKHBbMF0ubGVuZ3RofHwxKS0xKSpiKzEsZz15W2xdKmgsdj0uNzUqdSt5W3NdKmgrKHlbc10tMSkqbSp1LzI7Zi5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitnKyIsIit2KyIpIiksbT4xJiZwLmF0dHIoe3g6ci5hdHRyKCJ4IikseTpyLmF0dHIoInkiKX0pfSl9O3ZhciB4PS41O2Quc21vb3Rob3Blbj1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDMpcmV0dXJuIk0iK3Quam9pbigiTCIpO3ZhciByLGk9Ik0iK3RbMF0sbz1bXTtmb3Iocj0xO3I8dC5sZW5ndGgtMTtyKyspby5wdXNoKG4odFtyLTFdLHRbcl0sdFtyKzFdLGUpKTtmb3IoaSs9IlEiK29bMF1bMF0rIiAiK3RbMV0scj0yO3I8dC5sZW5ndGgtMTtyKyspaSs9IkMiK29bci0yXVsxXSsiICIrb1tyLTFdWzBdKyIgIit0W3JdO3JldHVybiBpKz0iUSIrb1t0Lmxlbmd0aC0zXVsxXSsiICIrdFt0Lmxlbmd0aC0xXX0sZC5zbW9vdGhjbG9zZWQ9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwzKXJldHVybiJNIit0LmpvaW4oIkwiKSsiWiI7dmFyIHIsaT0iTSIrdFswXSxvPXQubGVuZ3RoLTEsYT1bbih0W29dLHRbMF0sdFsxXSxlKV07Zm9yKHI9MTtvPnI7cisrKWEucHVzaChuKHRbci0xXSx0W3JdLHRbcisxXSxlKSk7Zm9yKGEucHVzaChuKHRbby0xXSx0W29dLHRbMF0sZSkpLHI9MTtvPj1yO3IrKylpKz0iQyIrYVtyLTFdWzFdKyIgIithW3JdWzBdKyIgIit0W3JdO3JldHVybiBpKz0iQyIrYVtvXVsxXSsiICIrYVswXVswXSsiICIrdFswXSsiWiJ9O3ZhciBfPXtodjpmdW5jdGlvbih0LGUpe3JldHVybiJIIitpLnJvdW5kKGVbMF0sMikrIlYiK2kucm91bmQoZVsxXSwyKX0sdmg6ZnVuY3Rpb24odCxlKXtyZXR1cm4iViIraS5yb3VuZChlWzFdLDIpKyJIIitpLnJvdW5kKGVbMF0sMil9LGh2aDpmdW5jdGlvbih0LGUpe3JldHVybiJIIitpLnJvdW5kKCh0WzBdK2VbMF0pLzIsMikrIlYiK2kucm91bmQoZVsxXSwyKSsiSCIraS5yb3VuZChlWzBdLDIpfSx2aHY6ZnVuY3Rpb24odCxlKXtyZXR1cm4iViIraS5yb3VuZCgodFsxXStlWzFdKS8yLDIpKyJIIitpLnJvdW5kKGVbMF0sMikrIlYiK2kucm91bmQoZVsxXSwyKX19LHc9ZnVuY3Rpb24odCxlKXtyZXR1cm4iTCIraS5yb3VuZChlWzBdLDIpKyIsIitpLnJvdW5kKGVbMV0sMil9O2Quc3RlcHM9ZnVuY3Rpb24odCl7dmFyIGU9X1t0XXx8dztyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciByPSJNIitpLnJvdW5kKHRbMF1bMF0sMikrIiwiK2kucm91bmQodFswXVsxXSwyKSxuPTE7bjx0Lmxlbmd0aDtuKyspcis9ZSh0W24tMV0sdFtuXSk7cmV0dXJuIHJ9fSxkLm1ha2VUZXN0ZXI9ZnVuY3Rpb24odCl7dmFyIGU9aS5zZWxlY3QoImJvZHkiKS5zZWxlY3RBbGwoIiNqcy1wbG90bHktdGVzdGVyIikuZGF0YShbMF0pO2UuZW50ZXIoKS5hcHBlbmQoInN2ZyIpLmF0dHIoImlkIiwianMtcGxvdGx5LXRlc3RlciIpLmF0dHIoaC5zdmdBdHRycykuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDoiLTEwMDAwcHgiLHRvcDoiLTEwMDAwcHgiLHdpZHRoOiI5MDAwcHgiLGhlaWdodDoiOTAwMHB4Iiwiei1pbmRleCI6IjEifSk7dmFyIHI9ZS5zZWxlY3RBbGwoIi5qcy1yZWZlcmVuY2UtcG9pbnQiKS5kYXRhKFswXSk7ci5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImpzLXJlZmVyZW5jZS1wb2ludCIsITApLmF0dHIoImQiLCJNMCwwSDFWMUgwWiIpLnN0eWxlKHsic3Ryb2tlLXdpZHRoIjowLGZpbGw6ImJsYWNrIn0pLGUubm9kZSgpLl9jYWNoZXx8KGUubm9kZSgpLl9jYWNoZT17fSksdC5fdGVzdGVyPWUsdC5fdGVzdHJlZj1yfTt2YXIgTT1bXSxrPTFlNDtkLmJCb3g9ZnVuY3Rpb24odCl7dmFyIGU9dC5hdHRyaWJ1dGVzWyJkYXRhLWJiIl07aWYoZSYmZS52YWx1ZSlyZXR1cm4gdS5leHRlbmRGbGF0KHt9LE1bZS52YWx1ZV0pO3ZhciByPWkuc2VsZWN0KCIjanMtcGxvdGx5LXRlc3RlciIpLG49ci5ub2RlKCksbz10LmNsb25lTm9kZSghMCk7bi5hcHBlbmRDaGlsZChvKSxpLnNlbGVjdChvKS5hdHRyKHt4OjAseTowLHRyYW5zZm9ybToiIn0pO3ZhciBhPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1yLnNlbGVjdCgiLmpzLXJlZmVyZW5jZS1wb2ludCIpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuLnJlbW92ZUNoaWxkKG8pO3ZhciBsPXtoZWlnaHQ6YS5oZWlnaHQsd2lkdGg6YS53aWR0aCxsZWZ0OmEubGVmdC1zLmxlZnQsdG9wOmEudG9wLXMudG9wLHJpZ2h0OmEucmlnaHQtcy5sZWZ0LGJvdHRvbTphLmJvdHRvbS1zLnRvcH07cmV0dXJuIE0ubGVuZ3RoPj1rJiYoaS5zZWxlY3RBbGwoIltkYXRhLWJiXSIpLmF0dHIoImRhdGEtYmIiLG51bGwpLE09W10pLHQuc2V0QXR0cmlidXRlKCJkYXRhLWJiIixNLmxlbmd0aCksTS5wdXNoKGwpLHUuZXh0ZW5kRmxhdCh7fSxsKX0sZC5zZXRDbGlwVXJsPWZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuIHZvaWQgdC5hdHRyKCJjbGlwLXBhdGgiLG51bGwpO3ZhciByPSIjIitlLG49aS5zZWxlY3QoImJhc2UiKTtuLnNpemUoKSYmbi5hdHRyKCJocmVmIikmJihyPXdpbmRvdy5sb2NhdGlvbi5ocmVmK3IpLHQuYXR0cigiY2xpcC1wYXRoIiwidXJsKCIrcisiKSIpfX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NTc5LCIuLi8uLi9saWIiOjU5MSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo2MDQsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2NzEsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyI6Nzg3LCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyI6NzkyLCIuLi9jb2xvciI6NTA2LCIuLi9jb2xvcnNjYWxlIjo1MjAsIi4vc3ltYm9sX2RlZnMiOjUzMCxkMzoxMjQsImZhc3QtaXNudW1lcmljIjoxMjh9XSw1MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKTtlLmV4cG9ydHM9e2NpcmNsZTp7bjowLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsMEEiK2UrIiwiK2UrIiAwIDEsMSAwLC0iK2UrIkEiK2UrIiwiK2UrIiAwIDAsMSAiK2UrIiwwWiJ9fSxzcXVhcmU6e246MSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiSC0iK2UrIlYtIitlKyJIIitlKyJaIn19LGRpYW1vbmQ6e246MixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaIn19LGNyb3NzOntuOjMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC40KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNIityKyIsIitlKyJIIitlKyJWIityKyJILSIrZSsiViIrZSsiSC0iK3IrIlYtIitlKyJILSIrZSsiVi0iK3IrIkgiK2UrIlYtIitlKyJIIityKyJaIn19LHg6e246NCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjgqdC9NYXRoLnNxcnQoMiksMikscj0ibCIrZSsiLCIrZSxpPSJsIitlKyIsLSIrZSxvPSJsLSIrZSsiLC0iK2UsYT0ibC0iK2UrIiwiK2U7cmV0dXJuIk0wLCIrZStyK2krbytpK28rYStvK2ErcithK3IrIloifX0sInRyaWFuZ2xlLXVwIjp7bjo1LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQvTWF0aC5zcXJ0KDMpLDIpLHI9bi5yb3VuZCh0LzIsMiksaT1uLnJvdW5kKHQsMik7cmV0dXJuIk0tIitlKyIsIityKyJIIitlKyJMMCwtIitpKyJaIn19LCJ0cmlhbmdsZS1kb3duIjp7bjo2LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQvTWF0aC5zcXJ0KDMpLDIpLHI9bi5yb3VuZCh0LzIsMiksaT1uLnJvdW5kKHQsMik7cmV0dXJuIk0tIitlKyIsLSIrcisiSCIrZSsiTDAsIitpKyJaIn19LCJ0cmlhbmdsZS1sZWZ0Ijp7bjo3LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQvTWF0aC5zcXJ0KDMpLDIpLHI9bi5yb3VuZCh0LzIsMiksaT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK3IrIiwtIitlKyJWIitlKyJMLSIraSsiLDBaIn19LCJ0cmlhbmdsZS1yaWdodCI6e246OCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0L01hdGguc3FydCgzKSwyKSxyPW4ucm91bmQodC8yLDIpLGk9bi5yb3VuZCh0LDIpO3JldHVybiJNLSIrcisiLC0iK2UrIlYiK2UrIkwiK2krIiwwWiJ9fSwidHJpYW5nbGUtbmUiOntuOjksZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNLSIrcisiLC0iK2UrIkgiK2UrIlYiK3IrIloifX0sInRyaWFuZ2xlLXNlIjp7bjoxMCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjYqdCwyKSxyPW4ucm91bmQoMS4yKnQsMik7cmV0dXJuIk0iK2UrIiwtIityKyJWIitlKyJILSIrcisiWiJ9fSwidHJpYW5nbGUtc3ciOntuOjExLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNip0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTSIrcisiLCIrZSsiSC0iK2UrIlYtIityKyJaIn19LCJ0cmlhbmdsZS1udyI6e246MTIsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNLSIrZSsiLCIrcisiVi0iK2UrIkgiK3IrIloifX0scGVudGFnb246e246MTMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC45NTEqdCwyKSxyPW4ucm91bmQoLjU4OCp0LDIpLGk9bi5yb3VuZCgtdCwyKSxvPW4ucm91bmQodCotLjMwOSwyKSxhPW4ucm91bmQoLjgwOSp0LDIpO3JldHVybiJNIitlKyIsIitvKyJMIityKyIsIithKyJILSIrcisiTC0iK2UrIiwiK28rIkwwLCIraSsiWiJ9fSxoZXhhZ29uOntuOjE0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpLHI9bi5yb3VuZCh0LzIsMiksaT1uLnJvdW5kKHQqTWF0aC5zcXJ0KDMpLzIsMik7cmV0dXJuIk0iK2krIiwtIityKyJWIityKyJMMCwiK2UrIkwtIitpKyIsIityKyJWLSIrcisiTDAsLSIrZSsiWiJ9fSxoZXhhZ29uMjp7bjoxNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKSxyPW4ucm91bmQodC8yLDIpLGk9bi5yb3VuZCh0Kk1hdGguc3FydCgzKS8yLDIpO3JldHVybiJNLSIrcisiLCIraSsiSCIrcisiTCIrZSsiLDBMIityKyIsLSIraSsiSC0iK3IrIkwtIitlKyIsMFoifX0sb2N0YWdvbjp7bjoxNixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjkyNCp0LDIpLHI9bi5yb3VuZCguMzgzKnQsMik7cmV0dXJuIk0tIityKyIsLSIrZSsiSCIrcisiTCIrZSsiLC0iK3IrIlYiK3IrIkwiK3IrIiwiK2UrIkgtIityKyJMLSIrZSsiLCIrcisiVi0iK3IrIloifX0sc3Rhcjp7bjoxNyxmOmZ1bmN0aW9uKHQpe3ZhciBlPTEuNCp0LHI9bi5yb3VuZCguMjI1KmUsMiksaT1uLnJvdW5kKC45NTEqZSwyKSxvPW4ucm91bmQoLjM2MyplLDIpLGE9bi5yb3VuZCguNTg4KmUsMikscz1uLnJvdW5kKC1lLDIpLGw9bi5yb3VuZChlKi0uMzA5LDIpLHU9bi5yb3VuZCguMTE4KmUsMiksYz1uLnJvdW5kKC44MDkqZSwyKSxoPW4ucm91bmQoLjM4MiplLDIpO3JldHVybiJNIityKyIsIitsKyJIIitpKyJMIitvKyIsIit1KyJMIithKyIsIitjKyJMMCwiK2grIkwtIithKyIsIitjKyJMLSIrbysiLCIrdSsiTC0iK2krIiwiK2wrIkgtIityKyJMMCwiK3MrIloifX0saGV4YWdyYW06e246MTgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42Nip0LDIpLHI9bi5yb3VuZCguMzgqdCwyKSxpPW4ucm91bmQoLjc2KnQsMik7cmV0dXJuIk0tIitpKyIsMGwtIityKyIsLSIrZSsiaCIraSsibCIrcisiLC0iK2UrImwiK3IrIiwiK2UrImgiK2krImwtIityKyIsIitlKyJsIityKyIsIitlKyJoLSIraSsibC0iK3IrIiwiK2UrImwtIityKyIsLSIrZSsiaC0iK2krIloifX0sInN0YXItdHJpYW5nbGUtdXAiOntuOjE5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0Kk1hdGguc3FydCgzKSouOCwyKSxyPW4ucm91bmQoLjgqdCwyKSxpPW4ucm91bmQoMS42KnQsMiksbz1uLnJvdW5kKDQqdCwyKSxhPSJBICIrbysiLCIrbysiIDAgMCAxICI7cmV0dXJuIk0tIitlKyIsIityK2ErZSsiLCIrcithKyIwLC0iK2krYSsiLSIrZSsiLCIrcisiWiJ9fSwic3Rhci10cmlhbmdsZS1kb3duIjp7bjoyMCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCpNYXRoLnNxcnQoMykqLjgsMikscj1uLnJvdW5kKC44KnQsMiksaT1uLnJvdW5kKDEuNip0LDIpLG89bi5yb3VuZCg0KnQsMiksYT0iQSAiK28rIiwiK28rIiAwIDAgMSAiO3JldHVybiJNIitlKyIsLSIrcithKyItIitlKyIsLSIrcithKyIwLCIraSthK2UrIiwtIityKyJaIn19LCJzdGFyLXNxdWFyZSI6e246MjEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMSp0LDIpLHI9bi5yb3VuZCgyKnQsMiksaT0iQSAiK3IrIiwiK3IrIiAwIDAgMSAiO3JldHVybiJNLSIrZSsiLC0iK2UraSsiLSIrZSsiLCIrZStpK2UrIiwiK2UraStlKyIsLSIrZStpKyItIitlKyIsLSIrZSsiWiJ9fSwic3Rhci1kaWFtb25kIjp7bjoyMixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS40KnQsMikscj1uLnJvdW5kKDEuOSp0LDIpLGk9IkEgIityKyIsIityKyIgMCAwIDEgIjtyZXR1cm4iTS0iK2UrIiwwIitpKyIwLCIrZStpK2UrIiwwIitpKyIwLC0iK2UraSsiLSIrZSsiLDBaIn19LCJkaWFtb25kLXRhbGwiOntuOjIzLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNyp0LDIpLHI9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTTAsIityKyJMIitlKyIsMEwwLC0iK3IrIkwtIitlKyIsMFoifX0sImRpYW1vbmQtd2lkZSI6e246MjQsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpLHI9bi5yb3VuZCguNyp0LDIpO3JldHVybiJNMCwiK3IrIkwiK2UrIiwwTDAsLSIrcisiTC0iK2UrIiwwWiJ9fSxob3VyZ2xhc3M6e246MjUsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK2UrIkgtIitlKyJMIitlKyIsLSIrZSsiSC0iK2UrIloifSxub0RvdDohMH0sYm93dGllOntuOjI2LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJWLSIrZSsiTC0iK2UrIiwiK2UrIlYtIitlKyJaIn0sbm9Eb3Q6ITB9LCJjaXJjbGUtY3Jvc3MiOntuOjI3LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlKyJNIitlKyIsMEEiK2UrIiwiK2UrIiAwIDEsMSAwLC0iK2UrIkEiK2UrIiwiK2UrIiAwIDAsMSAiK2UrIiwwWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiY2lyY2xlLXgiOntuOjI4LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpLHI9bi5yb3VuZCh0L01hdGguc3FydCgyKSwyKTtyZXR1cm4iTSIrcisiLCIrcisiTC0iK3IrIiwtIityKyJNIityKyIsLSIrcisiTC0iK3IrIiwiK3IrIk0iK2UrIiwwQSIrZSsiLCIrZSsiIDAgMSwxIDAsLSIrZSsiQSIrZSsiLCIrZSsiIDAgMCwxICIrZSsiLDBaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJzcXVhcmUtY3Jvc3MiOntuOjI5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlKyJNIitlKyIsIitlKyJILSIrZSsiVi0iK2UrIkgiK2UrIloifSxuZWVkTGluZTohMCxub0RvdDohMH0sInNxdWFyZS14Ijp7bjozMCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiTC0iK2UrIiwtIitlKyJNIitlKyIsLSIrZSsiTC0iK2UrIiwiK2UrIk0iK2UrIiwiK2UrIkgtIitlKyJWLSIrZSsiSCIrZSsiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiZGlhbW9uZC1jcm9zcyI6e246MzEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMyp0LDIpO3JldHVybiJNIitlKyIsMEwwLCIrZSsiTC0iK2UrIiwwTDAsLSIrZSsiWk0wLC0iK2UrIlYiK2UrIk0tIitlKyIsMEgiK2V9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiZGlhbW9uZC14Ijp7bjozMixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMikscj1uLnJvdW5kKC42NSp0LDIpO3JldHVybiJNIitlKyIsMEwwLCIrZSsiTC0iK2UrIiwwTDAsLSIrZSsiWk0tIityKyIsLSIrcisiTCIrcisiLCIrcisiTS0iK3IrIiwiK3IrIkwiK3IrIiwtIityfSxuZWVkTGluZTohMCxub0RvdDohMH0sImNyb3NzLXRoaW4iOntuOjMzLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTTAsIitlKyJWLSIrZSsiTSIrZSsiLDBILSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJ4LXRoaW4iOntuOjM0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJMLSIrZSsiLC0iK2UrIk0iK2UrIiwtIitlKyJMLSIrZSsiLCIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LGFzdGVyaXNrOntuOjM1LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjIqdCwyKSxyPW4ucm91bmQoLjg1KnQsMik7cmV0dXJuIk0wLCIrZSsiVi0iK2UrIk0iK2UrIiwwSC0iK2UrIk0iK3IrIiwiK3IrIkwtIityKyIsLSIrcisiTSIrcisiLC0iK3IrIkwtIityKyIsIityfSxuZWVkTGluZTohMCxub0RvdDohMH0saGFzaDp7bjozNixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodC8yLDIpLHI9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIityKyJWLSIrcisibS0iK3IrIiwwViIrcisiTSIrcisiLCIrZSsiSC0iK3IrIm0wLC0iK3IrIkgiK3J9LG5lZWRMaW5lOiEwfSwieS11cCI6e246MzcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCgxLjYqdCwyKSxpPW4ucm91bmQoLjgqdCwyKTtyZXR1cm4iTS0iK2UrIiwiK2krIkwwLDBNIitlKyIsIitpKyJMMCwwTTAsLSIrcisiTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwieS1kb3duIjp7bjozOCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKDEuNip0LDIpLGk9bi5yb3VuZCguOCp0LDIpO3JldHVybiJNLSIrZSsiLC0iK2krIkwwLDBNIitlKyIsLSIraSsiTDAsME0wLCIrcisiTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwieS1sZWZ0Ijp7bjozOSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKDEuNip0LDIpLGk9bi5yb3VuZCguOCp0LDIpO3JldHVybiJNIitpKyIsIitlKyJMMCwwTSIraSsiLC0iK2UrIkwwLDBNLSIrcisiLDBMMCwwIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJ5LXJpZ2h0Ijp7bjo0MCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKDEuNip0LDIpLGk9bi5yb3VuZCguOCp0LDIpO3JldHVybiJNLSIraSsiLCIrZSsiTDAsME0tIitpKyIsLSIrZSsiTDAsME0iK3IrIiwwTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwibGluZS1ldyI6e246NDEsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNIitlKyIsMEgtIitlfSxuZWVkTGluZTohMCxub0RvdDohMH0sImxpbmUtbnMiOntuOjQyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTTAsIitlKyJWLSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJsaW5lLW5lIjp7bjo0MyxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLC0iK2UrIkwtIitlKyIsIitlfSxuZWVkTGluZTohMCxub0RvdDohMH0sImxpbmUtbnciOntuOjQ0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJMLSIrZSsiLC0iK2V9LG5lZWRMaW5lOiEwLG5vRG90OiEwfX19LHtkMzoxMjR9XSw1MzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIn0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicGVyY2VudCIsImNvbnN0YW50Iiwic3FydCIsImRhdGEiXX0sc3ltbWV0cmljOnt2YWxUeXBlOiJib29sZWFuIn0sYXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxhcnJheW1pbnVzOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sdmFsdWU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxMH0sdmFsdWVtaW51czp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwfSx0cmFjZXJlZjp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowfSx0cmFjZXJlZm1pbnVzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjB9LGNvcHlfeXN0eWxlOnt2YWxUeXBlOiJib29sZWFuIn0sY29weV96c3R5bGU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxjb2xvcjp7dmFsVHlwZToiY29sb3IifSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MH0sX2RlcHJlY2F0ZWQ6e29wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciJ9fX19LHt9XSw1MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXt2YXIgbz1lWyJlcnJvcl8iK25dfHx7fSxsPW8udmlzaWJsZSYmLTEhPT1bImxpbmVhciIsImxvZyJdLmluZGV4T2Yoci50eXBlKSx1PVtdO2lmKGwpe2Zvcih2YXIgYz1zKG8pLGg9MDtoPHQubGVuZ3RoO2grKyl7dmFyIGY9dFtoXSxwPWZbbl07aWYoaShyLmMybChwKSkpe3ZhciBkPWMocCxoKTtpZihpKGRbMF0pJiZpKGRbMV0pKXt2YXIgbT1mW24rInMiXT1wLWRbMF0sZz1mW24rImgiXT1wK2RbMV07dS5wdXNoKG0sZyl9fX1hLmV4cGFuZChyLHUse3BhZGRlZDohMH0pfX12YXIgaT10KCJmYXN0LWlzbnVtZXJpYyIpLG89dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikscz10KCIuL2NvbXB1dGVfZXJyb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuY2FsY2RhdGEscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLHM9aVswXS50cmFjZTtpZihvLnRyYWNlSXMocywiZXJyb3JCYXJzT0siKSl7dmFyIGw9YS5nZXRGcm9tSWQodCxzLnhheGlzKSx1PWEuZ2V0RnJvbUlkKHQscy55YXhpcyk7bihpLHMsbCwieCIpLG4oaSxzLHUsInkiKX19fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuL2NvbXB1dGVfZXJyb3IiOjUzMywiZmFzdC1pc251bWVyaWMiOjEyOH1dLDUzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuInBlcmNlbnQiPT09dD9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5hYnModCplLzEwMCl9OiJjb25zdGFudCI9PT10P2Z1bmN0aW9uKCl7cmV0dXJuIE1hdGguYWJzKGUpfToic3FydCI9PT10P2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5hYnModCkpfTp2b2lkIDB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxyPXQuc3ltbWV0cmljO2lmKCJkYXRhIj09PWUpe3ZhciBpPXQuYXJyYXksbz10LmFycmF5bWludXM7cmV0dXJuIHJ8fHZvaWQgMD09PW8/ZnVuY3Rpb24odCxlKXt2YXIgcj0raVtlXTtyZXR1cm5bcixyXX06ZnVuY3Rpb24odCxlKXtyZXR1cm5bK29bZV0sK2lbZV1dfX12YXIgYT1uKGUsdC52YWx1ZSkscz1uKGUsdC52YWx1ZW1pbnVzKTtyZXR1cm4gcnx8dm9pZCAwPT09dC52YWx1ZW1pbnVzP2Z1bmN0aW9uKHQpe3ZhciBlPWEodCk7cmV0dXJuW2UsZV19OmZ1bmN0aW9uKHQpe3JldHVybltzKHQpLGEodCldfX19LHt9XSw1MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXtmdW5jdGlvbiBsKHQsZSl7cmV0dXJuIG8uY29lcmNlKGgsYyxhLHQsZSl9dmFyIHU9ImVycm9yXyIrcy5heGlzLGM9ZVt1XT17fSxoPXRbdV18fHt9LGY9dm9pZCAwIT09aC5hcnJheXx8dm9pZCAwIT09aC52YWx1ZXx8InNxcnQiPT09aC50eXBlLHA9bCgidmlzaWJsZSIsZik7aWYocCE9PSExKXt2YXIgZD1sKCJ0eXBlIiwiYXJyYXkiaW4gaD8iZGF0YSI6InBlcmNlbnQiKSxtPSEwO2lmKCJzcXJ0IiE9PWQmJihtPWwoInN5bW1ldHJpYyIsISgoImRhdGEiPT09ZD8iYXJyYXltaW51cyI6InZhbHVlbWludXMiKWluIGgpKSksImRhdGEiPT09ZCl7dmFyIGc9bCgiYXJyYXkiKTtpZihnfHwoYy5hcnJheT1bXSksbCgidHJhY2VyZWYiKSwhbSl7dmFyIHY9bCgiYXJyYXltaW51cyIpO3Z8fChjLmFycmF5bWludXM9W10pLGwoInRyYWNlcmVmbWludXMiKX19ZWxzZSJwZXJjZW50IiE9PWQmJiJjb25zdGFudCIhPT1kfHwobCgidmFsdWUiKSxtfHxsKCJ2YWx1ZW1pbnVzIikpO3ZhciB5PSJjb3B5XyIrcy5pbmhlcml0KyJzdHlsZSI7aWYocy5pbmhlcml0KXt2YXIgYj1lWyJlcnJvcl8iK3MuaW5oZXJpdF07KGJ8fHt9KS52aXNpYmxlJiZsKHksIShoLmNvbG9yfHxuKGgudGhpY2tuZXNzKXx8bihoLndpZHRoKSkpfXMuaW5oZXJpdCYmY1t5XXx8KGwoImNvbG9yIixyKSxsKCJ0aGlja25lc3MiKSxsKCJ3aWR0aCIsaS50cmFjZUlzKGUsImdsM2QiKT8wOjQpKX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuL2F0dHJpYnV0ZXMiOjUzMSwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDUzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1lLmV4cG9ydHM9e307bi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLmNhbGNGcm9tVHJhY2U9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC54fHxbXSxpPXQueSxvPXIubGVuZ3RofHxpLmxlbmd0aCxhPW5ldyBBcnJheShvKSxzPTA7bz5zO3MrKylhW3NdPXt4OnJbc10seTppW3NdfTtyZXR1cm4gYVswXS50cmFjZT10LG4uY2FsYyh7Y2FsY2RhdGE6W2FdLF9mdWxsTGF5b3V0OmV9KSxhfSxuLnBsb3Q9dCgiLi9wbG90Iiksbi5zdHlsZT10KCIuL3N0eWxlIiksbi5ob3ZlckluZm89ZnVuY3Rpb24odCxlLHIpeyhlLmVycm9yX3l8fHt9KS52aXNpYmxlJiYoci55ZXJyPXQueWgtdC55LGUuZXJyb3JfeS5zeW1tZXRyaWN8fChyLnllcnJuZWc9dC55LXQueXMpKSwoZS5lcnJvcl94fHx7fSkudmlzaWJsZSYmKHIueGVycj10LnhoLXQueCxlLmVycm9yX3guc3ltbWV0cmljfHwoci54ZXJybmVnPXQueC10LnhzKSl9fSx7Ii4vYXR0cmlidXRlcyI6NTMxLCIuL2NhbGMiOjUzMiwiLi9kZWZhdWx0cyI6NTM0LCIuL3Bsb3QiOjUzNiwiLi9zdHlsZSI6NTM3fV0sNTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3ZhciBuPXt4OmUuYzJwKHQueCkseTpyLmMycCh0LnkpfTtyZXR1cm4gdm9pZCAwIT09dC55aCYmKG4ueWg9ci5jMnAodC55aCksbi55cz1yLmMycCh0LnlzKSxvKG4ueXMpfHwobi5ub1lTPSEwLG4ueXM9ci5jMnAodC55cywhMCkpKSx2b2lkIDAhPT10LnhoJiYobi54aD1lLmMycCh0LnhoKSxuLnhzPWUuYzJwKHQueHMpLG8obi54cyl8fChuLm5vWFM9ITAsbi54cz1lLmMycCh0LnhzLCEwKSkpLG59dmFyIGk9dCgiZDMiKSxvPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxzPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS54KCksbD1lLnkoKTt0LmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSx1PWUuZXJyb3JfeHx8e30sYz1lLmVycm9yX3l8fHt9LGg9cy5oYXNNYXJrZXJzKGUpJiZlLm1hcmtlci5tYXhkaXNwbGF5ZWQ+MDtpZihjLnZpc2libGV8fHUudmlzaWJsZSl7dmFyIGY9aS5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLmVycm9yYmFyIikuZGF0YShhLmlkZW50aXR5KTtmLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiZXJyb3JiYXIiLCEwKSxmLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9aS5zZWxlY3QodGhpcyksYT1uKHQscixsKTtpZighaHx8dC52aXMpe3ZhciBzO2lmKGMudmlzaWJsZSYmbyhhLngpJiZvKGEueWgpJiZvKGEueXMpKXt2YXIgZj1jLndpZHRoO3M9Ik0iKyhhLngtZikrIiwiK2EueWgrImgiKzIqZisibS0iK2YrIiwwViIrYS55cyxhLm5vWVN8fChzKz0ibS0iK2YrIiwwaCIrMipmKSxlLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInllcnJvciIsITApLmF0dHIoImQiLHMpfWlmKHUudmlzaWJsZSYmbyhhLnkpJiZvKGEueGgpJiZvKGEueHMpKXt2YXIgcD0odS5jb3B5X3lzdHlsZT9jOnUpLndpZHRoO3M9Ik0iK2EueGgrIiwiKyhhLnktcCkrInYiKzIqcCsibTAsLSIrcCsiSCIrYS54cyxhLm5vWFN8fChzKz0ibTAsLSIrcCsidiIrMipwKSxlLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInhlcnJvciIsITApLmF0dHIoImQiLHMpfX19KX19KX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo3OTIsZDM6MTI0LCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNTM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCIuLi9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt0LmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPWUuZXJyb3JfeXx8e30sbz1lLmVycm9yX3h8fHt9LGE9bi5zZWxlY3QodGhpcyk7YS5zZWxlY3RBbGwoInBhdGgueWVycm9yIikuc3R5bGUoInN0cm9rZS13aWR0aCIsci50aGlja25lc3MrInB4IikuY2FsbChpLnN0cm9rZSxyLmNvbG9yKSxvLmNvcHlfeXN0eWxlJiYobz1yKSxhLnNlbGVjdEFsbCgicGF0aC54ZXJyb3IiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixvLnRoaWNrbmVzcysicHgiKS5jYWxsKGkuc3Ryb2tlLG8uY29sb3IpfSl9fSx7Ii4uL2NvbG9yIjo1MDYsZDM6MTI0fV0sNTM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiKTtlLmV4cG9ydHM9e19pc0xpbmtlZFRvQXJyYXk6ITAsc291cmNlOnt2YWxUeXBlOiJzdHJpbmcifSxsYXllcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYmVsb3ciLCJhYm92ZSJdLGRmbHQ6ImFib3ZlIn0sc2l6ZXg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxzaXpleTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjB9LHNpemluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmlsbCIsImNvbnRhaW4iLCJzdHJldGNoIl0sZGZsdDoiY29udGFpbiJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSx4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0seTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjB9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6ImxlZnQifSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJ0b3AifSx4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsbi5pZFJlZ2V4LngudG9TdHJpbmcoKV0sZGZsdDoicGFwZXIifSx5cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsbi5pZFJlZ2V4LnkudG9TdHJpbmcoKV0sZGZsdDoicGFwZXIifX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NjIwfV0sNTM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe2Z1bmN0aW9uIG4ocixuKXtyZXR1cm4gby5jb2VyY2UodCxlLGEscixuKX1lPWV8fHt9LG4oInNvdXJjZSIpLG4oImxheWVyIiksbigieCIpLG4oInkiKSxuKCJ4YW5jaG9yIiksbigieWFuY2hvciIpLG4oInNpemV4Iiksbigic2l6ZXkiKSxuKCJzaXppbmciKSxuKCJvcGFjaXR5Iik7Zm9yKHZhciBzPTA7Mj5zO3MrKyl7dmFyIGw9e19mdWxsTGF5b3V0OnJ9LHU9WyJ4IiwieSJdW3NdO2kuY29lcmNlUmVmKHQsZSxsLHUsInBhcGVyIil9cmV0dXJuIGV9dmFyIGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYodC5pbWFnZXMmJkFycmF5LmlzQXJyYXkodC5pbWFnZXMpKWZvcih2YXIgcj10LmltYWdlcyxpPWUuaW1hZ2VzPVtdLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIGE9cltvXTtpZihhLnNvdXJjZSl7dmFyIHM9bihyW29dfHx7fSxpW29dfHx7fSxlKTtpLnB1c2gocyl9fX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4vYXR0cmlidXRlcyI6NTM4fV0sNTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCIuLi9kcmF3aW5nIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtyLmF0dHIoInhtbG5zIixhLnN2Zyk7dmFyIGk9bmV3IFByb21pc2UoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbigpe3IucmVtb3ZlKCksdCgpfXZhciBpPW5ldyBJbWFnZTtpLnNldEF0dHJpYnV0ZSgiY3Jvc3NPcmlnaW4iLCJhbm9ueW1vdXMiKSxpLm9uZXJyb3I9bixpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3Qud2lkdGg9dGhpcy53aWR0aCx0LmhlaWdodD10aGlzLmhlaWdodDt2YXIgZT10LmdldENvbnRleHQoIjJkIik7ZS5kcmF3SW1hZ2UodGhpcywwLDApO3ZhciBuPXQudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtyLmF0dHIoInhsaW5rOmhyZWYiLG4pfSxyLm9uKCJlcnJvciIsbiksci5vbigibG9hZCIsdCksaS5zcmM9ZS5zb3VyY2V9KTt0Ll9wcm9taXNlcy5wdXNoKGkpfWZ1bmN0aW9uIHIoZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksYT1vLmdldEZyb21JZCh0LGUueHJlZikscz1vLmdldEZyb21JZCh0LGUueXJlZiksdT1sLl9zaXplLGM9YT9NYXRoLmFicyhhLmwycChlLnNpemV4KS1hLmwycCgwKSk6ZS5zaXpleCp1LncsaD1zP01hdGguYWJzKHMubDJwKGUuc2l6ZXkpLXMubDJwKDApKTplLnNpemV5KnUuaCxmPWMqZC54W2UueGFuY2hvcl0ub2Zmc2V0LHA9aCpkLnlbZS55YW5jaG9yXS5vZmZzZXQsbT1kLnhbZS54YW5jaG9yXS5zaXppbmcrZC55W2UueWFuY2hvcl0uc2l6aW5nLGc9KGE/YS5sMnAoZS54KSthLl9vZmZzZXQ6ZS54KnUudyt1LmwpK2Ysdj0ocz9zLmwycChlLnkpK3MuX29mZnNldDp1LmgtZS55KnUuaCt1LnQpK3A7c3dpdGNoKGUuc2l6aW5nKXtjYXNlImZpbGwiOm0rPSIgc2xpY2UiO2JyZWFrO2Nhc2Uic3RyZXRjaCI6bT0ibm9uZSJ9ci5hdHRyKHt4OmcseTp2LHdpZHRoOmMsaGVpZ2h0OmgscHJlc2VydmVBc3BlY3RSYXRpbzptLG9wYWNpdHk6ZS5vcGFjaXR5fSk7dmFyIHk9YT9hLl9pZDoiIixiPXM/cy5faWQ6IiIseD15K2I7eCYmci5jYWxsKGkuc2V0Q2xpcFVybCwiY2xpcCIrbC5fdWlkK3gpfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gdC5zb3VyY2UrZX12YXIgbD10Ll9mdWxsTGF5b3V0LHU9W10sYz1bXSxoPVtdO2lmKGwuaW1hZ2VzKXtmb3IodmFyIGY9MDtmPGwuaW1hZ2VzLmxlbmd0aDtmKyspe3ZhciBwPWwuaW1hZ2VzW2ZdOyJiZWxvdyI9PT1wLmxheWVyJiYicGFwZXIiIT09cC54cmVmJiYicGFwZXIiIT09cC55cmVmP2MucHVzaChwKToiYWJvdmUiPT09cC5sYXllcj91LnB1c2gocCk6aC5wdXNoKHApfXZhciBkPXt4OntsZWZ0OntzaXppbmc6InhNaW4iLG9mZnNldDowfSxjZW50ZXI6e3NpemluZzoieE1pZCIsb2Zmc2V0Oi0wLjV9LHJpZ2h0OntzaXppbmc6InhNYXgiLG9mZnNldDotMX19LHk6e3RvcDp7c2l6aW5nOiJZTWluIixvZmZzZXQ6MH0sbWlkZGxlOntzaXppbmc6IllNaWQiLG9mZnNldDotMC41fSxib3R0b206e3NpemluZzoiWU1heCIsb2Zmc2V0Oi0xfX19LG09bC5faW1hZ2VMb3dlckxheWVyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKGgscyksZz1sLl9pbWFnZVN1YnBsb3RMYXllci5zZWxlY3RBbGwoImltYWdlIikuZGF0YShjLHMpLHY9bC5faW1hZ2VVcHBlckxheWVyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKHUscyk7bS5lbnRlcigpLmFwcGVuZCgiaW1hZ2UiKS5lYWNoKGUpLGcuZW50ZXIoKS5hcHBlbmQoImltYWdlIikuZWFjaChlKSx2LmVudGVyKCkuYXBwZW5kKCJpbWFnZSIpLmVhY2goZSksbS5leGl0KCkucmVtb3ZlKCksZy5leGl0KCkucmVtb3ZlKCksdi5leGl0KCkucmVtb3ZlKCksbS5lYWNoKHIpLGcuZWFjaChyKSx2LmVhY2gocil9fX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NTc5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi9kcmF3aW5nIjo1MjksZDM6MTI0fV0sNTQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZHJhdyIpLGk9dCgiLi9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXtkcmF3Om4sbGF5b3V0QXR0cmlidXRlczpvLHN1cHBseUxheW91dERlZmF1bHRzOml9fSx7Ii4vYXR0cmlidXRlcyI6NTM4LCIuL2RlZmF1bHRzIjo1MzksIi4vZHJhdyI6NTQwfV0sNTQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuaXNSaWdodEFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4icmlnaHQiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueD49Mi8zfSxyLmlzQ2VudGVyQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJjZW50ZXIiPT09dC54YW5jaG9yfHwiYXV0byI9PT10LnhhbmNob3ImJnQueD4xLzMmJnQueDwyLzN9LHIuaXNCb3R0b21BbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuImJvdHRvbSI9PT10LnlhbmNob3J8fCJhdXRvIj09PXQueWFuY2hvciYmdC55PD0xLzN9LHIuaXNNaWRkbGVBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuIm1pZGRsZSI9PT10LnlhbmNob3J8fCJhdXRvIj09PXQueWFuY2hvciYmdC55PjEvMyYmdC55PDIvM319LHt9XSw1NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi9jb2xvci9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmV9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MH0sZm9udDpvKHt9LG4se30pLG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGRmbHQ6InYifSx0cmFjZW9yZGVyOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJyZXZlcnNlZCIsImdyb3VwZWQiXSxleHRyYXM6WyJub3JtYWwiXX0sdHJhY2Vncm91cGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwfSx4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MyxkZmx0OjEuMDJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0In0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZGZsdDoxfSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoiYXV0byJ9fX0seyIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NjMzLCIuLi9jb2xvci9hdHRyaWJ1dGVzIjo1MDV9XSw1NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzY3JvbGxCYXJXaWR0aDo0LHNjcm9sbEJhckhlaWdodDoyMCxzY3JvbGxCYXJDb2xvcjoiIzgwOEJBNCIsc2Nyb2xsQmFyTWFyZ2luOjR9fSx7fV0sNTQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG4uY29lcmNlKGYscCxvLHQsZSl9Zm9yKHZhciBsLHUsYyxoLGY9dC5sZWdlbmR8fHt9LHA9ZS5sZWdlbmQ9e30sZD0wLG09Im5vcm1hbCIsZz0wO2c8ci5sZW5ndGg7ZysrKXt2YXIgdj1yW2ddO2EubGVnZW5kR2V0c1RyYWNlKHYpJiYoZCsrLGkudHJhY2VJcyh2LCJwaWUiKSYmZCsrKSwoaS50cmFjZUlzKHYsImJhciIpJiYic3RhY2siPT09ZS5iYXJtb2RlfHwtMSE9PVsidG9uZXh0eCIsInRvbmV4dHkiXS5pbmRleE9mKHYuZmlsbCkpJiYobT1hLmlzR3JvdXBlZCh7dHJhY2VvcmRlcjptfSk/Imdyb3VwZWQrcmV2ZXJzZWQiOiJyZXZlcnNlZCIpLHZvaWQgMCE9PXYubGVnZW5kZ3JvdXAmJiIiIT09di5sZWdlbmRncm91cCYmKG09YS5pc1JldmVyc2VkKHt0cmFjZW9yZGVyOm19KT8icmV2ZXJzZWQrZ3JvdXBlZCI6Imdyb3VwZWQiKX12YXIgeT1uLmNvZXJjZSh0LGUsaS5sYXlvdXRBdHRyaWJ1dGVzLCJzaG93bGVnZW5kIixkPjEpO2lmKHkhPT0hMSl7aWYocygiYmdjb2xvciIsZS5wYXBlcl9iZ2NvbG9yKSxzKCJib3JkZXJjb2xvciIpLHMoImJvcmRlcndpZHRoIiksbi5jb2VyY2VGb250KHMsImZvbnQiLGUuZm9udCkscygib3JpZW50YXRpb24iKSwiaCI9PT1wLm9yaWVudGF0aW9uKXt2YXIgYj10LnhheGlzO2ImJmIucmFuZ2VzbGlkZXImJmIucmFuZ2VzbGlkZXIudmlzaWJsZT8obD0wLGM9ImxlZnQiLHU9MS4xLGg9ImJvdHRvbSIpOihsPTAsYz0ibGVmdCIsdT0tLjEsaD0idG9wIil9cygidHJhY2VvcmRlciIsbSksYS5pc0dyb3VwZWQoZS5sZWdlbmQpJiZzKCJ0cmFjZWdyb3VwZ2FwIikscygieCIsbCkscygieGFuY2hvciIsYykscygieSIsdSkscygieWFuY2hvciIsaCksbi5ub25lT3JBbGwoZixwLFsieCIsInkiXSl9fX0seyIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi9hdHRyaWJ1dGVzIjo1NDMsIi4vaGVscGVycyI6NTQ4fV0sNTQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmdW5jdGlvbiByKHIpe2MudXRpbC5jb252ZXJ0VG9Uc3BhbnMocixmdW5jdGlvbigpe3Iuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih7eDpyLmF0dHIoIngiKX0pLHQuY2FsbChvLGUpfSl9dmFyIG49dC5kYXRhKClbMF1bMF0saT1lLl9mdWxsTGF5b3V0LGE9bi50cmFjZSxzPWYudHJhY2VJcyhhLCJwaWUiKSxsPWEuaW5kZXgsdT1zP24ubGFiZWw6YS5uYW1lLGg9dC5zZWxlY3RBbGwoInRleHQubGVnZW5kdGV4dCIpLmRhdGEoWzBdKTtoLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCgibGVnZW5kdGV4dCIsITApLGguYXR0cih7eDo0MCx5OjAsImRhdGEtdW5mb3JtYXR0ZWQiOnV9KS5zdHlsZSgidGV4dC1hbmNob3IiLCJzdGFydCIpLmNsYXNzZWQoInVzZXItc2VsZWN0LW5vbmUiLCEwKS5jYWxsKGQuZm9udCxpLmxlZ2VuZC5mb250KS50ZXh0KHUpLGUuX2NvbnRleHQuZWRpdGFibGUmJiFzP2guY2FsbChjLnV0aWwubWFrZUVkaXRhYmxlKS5jYWxsKHIpLm9uKCJlZGl0IixmdW5jdGlvbih0KXt0aGlzLmF0dHIoeyJkYXRhLXVuZm9ybWF0dGVkIjp0fSksdGhpcy50ZXh0KHQpLmNhbGwociksdGhpcy50ZXh0KCl8fCh0PSIgICAgIiksYy5yZXN0eWxlKGUsIm5hbWUiLHQsbCl9KTpoLmNhbGwocil9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPWUuX2Z1bGxMYXlvdXQuaGlkZGVubGFiZWxzP2UuX2Z1bGxMYXlvdXQuaGlkZGVubGFiZWxzLnNsaWNlKCk6W10sbj10LnNlbGVjdEFsbCgicmVjdCIpLmRhdGEoWzBdKTtuLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgibGVnZW5kdG9nZ2xlIiwhMCkuc3R5bGUoImN1cnNvciIsInBvaW50ZXIiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLmNhbGwobS5maWxsLCJyZ2JhKDAsMCwwLDApIiksbi5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoIWUuX2RyYWdnZWQpe3ZhciBuLGksbz10LmRhdGEoKVswXVswXSxhPWUuX2Z1bGxEYXRhLHM9by50cmFjZSxsPXMubGVnZW5kZ3JvdXAsdT1bXTtpZihmLnRyYWNlSXMocywicGllIikpe3ZhciBoPW8ubGFiZWwscD1yLmluZGV4T2YoaCk7LTE9PT1wP3IucHVzaChoKTpyLnNwbGljZShwLDEpLGMucmVsYXlvdXQoZSwiaGlkZGVubGFiZWxzIixyKX1lbHNle2lmKCIiPT09bCl1PVtzLmluZGV4XTtlbHNlIGZvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKW49YVtkXSxuLmxlZ2VuZGdyb3VwPT09bCYmdS5wdXNoKG4uaW5kZXgpO2k9cy52aXNpYmxlPT09ITA/ImxlZ2VuZG9ubHkiOiEwLGMucmVzdHlsZShlLCJ2aXNpYmxlIixpLHUpfX19KX1mdW5jdGlvbiBvKHQsZSl7dmFyIHIsbixpPXQuZGF0YSgpWzBdWzBdLG89dC5zZWxlY3RBbGwoIi5sZWdlbmR0b2dnbGUiKSxhPXQuc2VsZWN0KCJnW2NsYXNzKj1tYXRoLWdyb3VwXSIpLHM9ZS5fZnVsbExheW91dC5sZWdlbmQsbD0xLjMqcy5mb250LnNpemU7CmlmKCFpLnRyYWNlLnNob3dsZWdlbmQpcmV0dXJuIHZvaWQgdC5yZW1vdmUoKTtpZihhLm5vZGUoKSl7dmFyIHU9ZC5iQm94KGEubm9kZSgpKTtyPXUuaGVpZ2h0LG49dS53aWR0aCxoLnNldFRyYW5zbGF0ZShhLDAsci80KX1lbHNle3ZhciBjPXQuc2VsZWN0QWxsKCIubGVnZW5kdGV4dCIpLGY9dC5zZWxlY3RBbGwoIi5sZWdlbmR0ZXh0PnRzcGFuIikscD1mWzBdLmxlbmd0aHx8MTtyPWwqcCxuPWMubm9kZSgpJiZkLmJCb3goYy5ub2RlKCkpLndpZHRoO3ZhciBtPWwqKC4zKygxLXApLzIpO2MuYXR0cigieSIsbSksZi5hdHRyKCJ5IixtKX1yPU1hdGgubWF4KHIsMTYpKzMsby5hdHRyKHt4OjAseTotci8yLGhlaWdodDpyfSksaS5oZWlnaHQ9cixpLndpZHRoPW59ZnVuY3Rpb24gYSh0LGUscil7dmFyIG49dC5fZnVsbExheW91dCxpPW4ubGVnZW5kLG89aS5ib3JkZXJ3aWR0aCxhPWIuaXNHcm91cGVkKGkpO2lmKGIuaXNWZXJ0aWNhbChpKSlhJiZlLmVhY2goZnVuY3Rpb24odCxlKXtoLnNldFRyYW5zbGF0ZSh0aGlzLDAsZSppLnRyYWNlZ3JvdXBnYXApfSksaS53aWR0aD0wLGkuaGVpZ2h0PTAsci5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj1lLmhlaWdodCxuPWUud2lkdGg7aC5zZXRUcmFuc2xhdGUodGhpcyxvLDUrbytpLmhlaWdodCtyLzIpLGkuaGVpZ2h0Kz1yLGkud2lkdGg9TWF0aC5tYXgoaS53aWR0aCxuKX0pLGkud2lkdGgrPTQ1KzIqbyxpLmhlaWdodCs9MTArMipvLGEmJihpLmhlaWdodCs9KGkuX2xncm91cHNMZW5ndGgtMSkqaS50cmFjZWdyb3VwZ2FwKSxyLnNlbGVjdEFsbCgiLmxlZ2VuZHRvZ2dsZSIpLmF0dHIoIndpZHRoIiwodC5fY29udGV4dC5lZGl0YWJsZT8wOmkud2lkdGgpKzQwKSxpLndpZHRoPU1hdGguY2VpbChpLndpZHRoKSxpLmhlaWdodD1NYXRoLmNlaWwoaS5oZWlnaHQpO2Vsc2UgaWYoYSl7aS53aWR0aD0wLGkuaGVpZ2h0PTA7Zm9yKHZhciBzPVtpLndpZHRoXSxsPWUuZGF0YSgpLGM9MCxmPWwubGVuZ3RoO2Y+YztjKyspe3ZhciBwPWxbY10ubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLndpZHRofSksZD00MCtNYXRoLm1heC5hcHBseShudWxsLHApO2kud2lkdGgrPWkudHJhY2Vncm91cGdhcCtkLHMucHVzaChpLndpZHRoKX1lLmVhY2goZnVuY3Rpb24odCxlKXtoLnNldFRyYW5zbGF0ZSh0aGlzLHNbZV0sMCl9KSxlLmVhY2goZnVuY3Rpb24oKXt2YXIgdD11LnNlbGVjdCh0aGlzKSxlPXQuc2VsZWN0QWxsKCJnLnRyYWNlcyIpLHI9MDtlLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXSxuPWUuaGVpZ2h0O2guc2V0VHJhbnNsYXRlKHRoaXMsMCw1K28rcituLzIpLHIrPW59KSxpLmhlaWdodD1NYXRoLm1heChpLmhlaWdodCxyKX0pLGkuaGVpZ2h0Kz0xMCsyKm8saS53aWR0aCs9MipvLGkud2lkdGg9TWF0aC5jZWlsKGkud2lkdGgpLGkuaGVpZ2h0PU1hdGguY2VpbChpLmhlaWdodCksci5zZWxlY3RBbGwoIi5sZWdlbmR0b2dnbGUiKS5hdHRyKCJ3aWR0aCIsdC5fY29udGV4dC5lZGl0YWJsZT8wOmkud2lkdGgpfWVsc2V7aS53aWR0aD0wLGkuaGVpZ2h0PTA7dmFyIG09MCxnPTAsdj0wLHk9MDtyLmVhY2goZnVuY3Rpb24odCl7dj1NYXRoLm1heCg0MCt0WzBdLndpZHRoLHYpfSksci5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj12LGE9aS50cmFjZWdyb3VwZ2FwfHw1O28reSthK3I+bi53aWR0aC0obi5tYXJnaW4ucituLm1hcmdpbi5sKSYmKHk9MCxtKz1nLGkuaGVpZ2h0PWkuaGVpZ2h0K2csZz0wKSxoLnNldFRyYW5zbGF0ZSh0aGlzLG8reSw1K28rZS5oZWlnaHQvMittKSxpLndpZHRoKz1hK3IsaS5oZWlnaHQ9TWF0aC5tYXgoaS5oZWlnaHQsZS5oZWlnaHQpLHkrPWErcixnPU1hdGgubWF4KGUuaGVpZ2h0LGcpfSksaS53aWR0aCs9MipvLGkuaGVpZ2h0Kz0xMCsyKm8saS53aWR0aD1NYXRoLmNlaWwoaS53aWR0aCksaS5oZWlnaHQ9TWF0aC5jZWlsKGkuaGVpZ2h0KSxyLnNlbGVjdEFsbCgiLmxlZ2VuZHRvZ2dsZSIpLmF0dHIoIndpZHRoIix0Ll9jb250ZXh0LmVkaXRhYmxlPzA6aS53aWR0aCl9fWZ1bmN0aW9uIHModCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWUubGVnZW5kLG49ImxlZnQiO3guaXNSaWdodEFuY2hvcihyKT9uPSJyaWdodCI6eC5pc0NlbnRlckFuY2hvcihyKSYmKG49ImNlbnRlciIpO3ZhciBpPSJ0b3AiO3guaXNCb3R0b21BbmNob3Iocik/aT0iYm90dG9tIjp4LmlzTWlkZGxlQW5jaG9yKHIpJiYoaT0ibWlkZGxlIiksZi5hdXRvTWFyZ2luKHQsImxlZ2VuZCIse3g6ci54LHk6ci55LGw6ci53aWR0aCooe3JpZ2h0OjEsY2VudGVyOi41fVtuXXx8MCkscjpyLndpZHRoKih7bGVmdDoxLGNlbnRlcjouNX1bbl18fDApLGI6ci5oZWlnaHQqKHt0b3A6MSxtaWRkbGU6LjV9W2ldfHwwKSx0OnIuaGVpZ2h0Kih7Ym90dG9tOjEsbWlkZGxlOi41fVtpXXx8MCl9KX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLmxlZ2VuZCxuPSJsZWZ0Ijt4LmlzUmlnaHRBbmNob3Iocik/bj0icmlnaHQiOnguaXNDZW50ZXJBbmNob3IocikmJihuPSJjZW50ZXIiKSxmLmF1dG9NYXJnaW4odCwibGVnZW5kIix7eDpyLngseTouNSxsOnIud2lkdGgqKHtyaWdodDoxLGNlbnRlcjouNX1bbl18fDApLHI6ci53aWR0aCooe2xlZnQ6MSxjZW50ZXI6LjV9W25dfHwwKSxiOjAsdDowfSl9dmFyIHU9dCgiZDMiKSxjPXQoIi4uLy4uL3Bsb3RseSIpLGg9dCgiLi4vLi4vbGliIiksZj10KCIuLi8uLi9wbG90cy9wbG90cyIpLHA9dCgiLi4vZHJhZ2VsZW1lbnQiKSxkPXQoIi4uL2RyYXdpbmciKSxtPXQoIi4uL2NvbG9yIiksZz10KCIuL2NvbnN0YW50cyIpLHY9dCgiLi9nZXRfbGVnZW5kX2RhdGEiKSx5PXQoIi4vc3R5bGUiKSxiPXQoIi4vaGVscGVycyIpLHg9dCgiLi9hbmNob3JfdXRpbHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe1QuYXR0cigiZGF0YS1zY3JvbGwiLGUpLmNhbGwoaC5zZXRUcmFuc2xhdGUsMCxlKSxFLmNhbGwoZC5zZXRSZWN0LEYsdCxnLnNjcm9sbEJhcldpZHRoLGcuc2Nyb2xsQmFySGVpZ2h0KSxrLnNlbGVjdCgicmVjdCIpLmF0dHIoe3k6Yi5ib3JkZXJ3aWR0aC1lfSl9dmFyIHI9dC5fZnVsbExheW91dCxvPSJsZWdlbmQiK3IuX3VpZDtpZihyLl9pbmZvbGF5ZXImJnQuY2FsY2RhdGEpe3ZhciBiPXIubGVnZW5kLF89ci5zaG93bGVnZW5kJiZ2KHQuY2FsY2RhdGEsYiksdz1yLmhpZGRlbmxhYmVsc3x8W107aWYoIXIuc2hvd2xlZ2VuZHx8IV8ubGVuZ3RoKXJldHVybiByLl9pbmZvbGF5ZXIuc2VsZWN0QWxsKCIubGVnZW5kIikucmVtb3ZlKCksci5fdG9wZGVmcy5zZWxlY3QoIiMiK28pLnJlbW92ZSgpLHZvaWQgZi5hdXRvTWFyZ2luKHQsImxlZ2VuZCIpO3ZhciBNPXIuX2luZm9sYXllci5zZWxlY3RBbGwoImcubGVnZW5kIikuZGF0YShbMF0pO00uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKHsiY2xhc3MiOiJsZWdlbmQiLCJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KTt2YXIgaz1yLl90b3BkZWZzLnNlbGVjdEFsbCgiIyIrbykuZGF0YShbMF0pO2suZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLG8pLmFwcGVuZCgicmVjdCIpO3ZhciBBPU0uc2VsZWN0QWxsKCJyZWN0LmJnIikuZGF0YShbMF0pO0EuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5hdHRyKHsiY2xhc3MiOiJiZyIsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSksQS5jYWxsKG0uc3Ryb2tlLGIuYm9yZGVyY29sb3IpLEEuY2FsbChtLmZpbGwsYi5iZ2NvbG9yKSxBLnN0eWxlKCJzdHJva2Utd2lkdGgiLGIuYm9yZGVyd2lkdGgrInB4Iik7dmFyIFQ9TS5zZWxlY3RBbGwoImcuc2Nyb2xsYm94IikuZGF0YShbMF0pO1QuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInNjcm9sbGJveCIpO3ZhciBFPU0uc2VsZWN0QWxsKCJyZWN0LnNjcm9sbGJhciIpLmRhdGEoWzBdKTtFLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cih7ImNsYXNzIjoic2Nyb2xsYmFyIixyeDoyMCxyeToyLHdpZHRoOjAsaGVpZ2h0OjB9KS5jYWxsKG0uZmlsbCwiIzgwOEJBNCIpO3ZhciBTPVQuc2VsZWN0QWxsKCJnLmdyb3VwcyIpLmRhdGEoXyk7Uy5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiZ3JvdXBzIiksUy5leGl0KCkucmVtb3ZlKCk7dmFyIEw9Uy5zZWxlY3RBbGwoImcudHJhY2VzIikuZGF0YShoLmlkZW50aXR5KTtMLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJ0cmFjZXMiKSxMLmV4aXQoKS5yZW1vdmUoKSxMLmNhbGwoeSkuc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2U7cmV0dXJuIGYudHJhY2VJcyhlLCJwaWUiKT8tMSE9PXcuaW5kZXhPZih0WzBdLmxhYmVsKT8uNToxOiJsZWdlbmRvbmx5Ij09PWUudmlzaWJsZT8uNToxfSkuZWFjaChmdW5jdGlvbigpe3Uuc2VsZWN0KHRoaXMpLmNhbGwobix0KS5jYWxsKGksdCl9KTt2YXIgej0wIT09TS5lbnRlcigpLnNpemUoKTt6JiYoYSh0LFMsTCkscyh0KSk7dmFyIEk9MCxQPXIud2lkdGgsQz0wLFI9ci5oZWlnaHQ7YSh0LFMsTCksYi5oZWlnaHQ+Uj9sKHQpOnModCk7dmFyIGo9ci5fc2l6ZSxEPWoubCtqLncqYi54LE89ai50K2ouaCooMS1iLnkpO3guaXNSaWdodEFuY2hvcihiKT9ELT1iLndpZHRoOnguaXNDZW50ZXJBbmNob3IoYikmJihELT1iLndpZHRoLzIpLHguaXNCb3R0b21BbmNob3IoYik/Ty09Yi5oZWlnaHQ6eC5pc01pZGRsZUFuY2hvcihiKSYmKE8tPWIuaGVpZ2h0LzIpO3ZhciBGPWIud2lkdGgsTj1qLnc7Rj5OPyhEPWoubCxGPU4pOihEK0Y+UCYmKEQ9UC1GKSxJPkQmJihEPUkpLEY9TWF0aC5taW4oUC1ELGIud2lkdGgpKTt2YXIgQj1iLmhlaWdodCxVPWouaDtCPlU/KE89ai50LEI9VSk6KE8rQj5SJiYoTz1SLUIpLEM+TyYmKE89QyksQj1NYXRoLm1pbihSLU8sYi5oZWlnaHQpKSxoLnNldFRyYW5zbGF0ZShNLEQsTyk7dmFyIFYscSxHPUItZy5zY3JvbGxCYXJIZWlnaHQtMipnLnNjcm9sbEJhck1hcmdpbixIPWIuaGVpZ2h0LUI7aWYoYi5oZWlnaHQ8PUJ8fHQuX2NvbnRleHQuc3RhdGljUGxvdClBLmF0dHIoe3dpZHRoOkYtYi5ib3JkZXJ3aWR0aCxoZWlnaHQ6Qi1iLmJvcmRlcndpZHRoLHg6Yi5ib3JkZXJ3aWR0aC8yLHk6Yi5ib3JkZXJ3aWR0aC8yfSksaC5zZXRUcmFuc2xhdGUoVCwwLDApLGsuc2VsZWN0KCJyZWN0IikuYXR0cih7d2lkdGg6Ri0yKmIuYm9yZGVyd2lkdGgsaGVpZ2h0OkItMipiLmJvcmRlcndpZHRoLHg6Yi5ib3JkZXJ3aWR0aCx5OmIuYm9yZGVyd2lkdGh9KSxULmNhbGwoZC5zZXRDbGlwVXJsLG8pO2Vsc2V7Vj1nLnNjcm9sbEJhck1hcmdpbixxPVQuYXR0cigiZGF0YS1zY3JvbGwiKXx8MCxBLmF0dHIoe3dpZHRoOkYtMipiLmJvcmRlcndpZHRoK2cuc2Nyb2xsQmFyV2lkdGgrZy5zY3JvbGxCYXJNYXJnaW4saGVpZ2h0OkItYi5ib3JkZXJ3aWR0aCx4OmIuYm9yZGVyd2lkdGgvMix5OmIuYm9yZGVyd2lkdGgvMn0pLGsuc2VsZWN0KCJyZWN0IikuYXR0cih7d2lkdGg6Ri0yKmIuYm9yZGVyd2lkdGgrZy5zY3JvbGxCYXJXaWR0aCtnLnNjcm9sbEJhck1hcmdpbixoZWlnaHQ6Qi0yKmIuYm9yZGVyd2lkdGgseDpiLmJvcmRlcndpZHRoLHk6Yi5ib3JkZXJ3aWR0aC1xfSksVC5jYWxsKGQuc2V0Q2xpcFVybCxvKSx6JiZlKFYscSksTS5vbigid2hlZWwiLG51bGwpLE0ub24oIndoZWVsIixmdW5jdGlvbigpe3E9aC5jb25zdHJhaW4oVC5hdHRyKCJkYXRhLXNjcm9sbCIpLXUuZXZlbnQuZGVsdGFZL0cqSCwtSCwwKSxWPWcuc2Nyb2xsQmFyTWFyZ2luLXEvSCpHLGUoVixxKSx1LmV2ZW50LnByZXZlbnREZWZhdWx0KCl9KSxFLm9uKCIuZHJhZyIsbnVsbCksVC5vbigiLmRyYWciLG51bGwpO3ZhciBYPXUuYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnIixmdW5jdGlvbigpe1Y9aC5jb25zdHJhaW4odS5ldmVudC55LWcuc2Nyb2xsQmFySGVpZ2h0LzIsZy5zY3JvbGxCYXJNYXJnaW4sZy5zY3JvbGxCYXJNYXJnaW4rRykscT0tKFYtZy5zY3JvbGxCYXJNYXJnaW4pL0cqSCxlKFYscSl9KTtFLmNhbGwoWCksVC5jYWxsKFgpfWlmKHQuX2NvbnRleHQuZWRpdGFibGUpe3ZhciBZLFcsWixRO00uY2xhc3NlZCgiY3Vyc29yLW1vdmUiLCEwKSxwLmluaXQoe2VsZW1lbnQ6TS5ub2RlKCkscHJlcEZuOmZ1bmN0aW9uKCl7dmFyIHQ9aC5nZXRUcmFuc2xhdGUoTSk7Wj10LngsUT10Lnl9LG1vdmVGbjpmdW5jdGlvbih0LGUpe3ZhciByPVordCxuPVErZTtoLnNldFRyYW5zbGF0ZShNLHIsbiksWT1wLmFsaWduKHIsMCxqLmwsai5sK2oudyxiLnhhbmNob3IpLFc9cC5hbGlnbihuLDAsai50K2ouaCxqLnQsYi55YW5jaG9yKX0sZG9uZUZuOmZ1bmN0aW9uKGUpe2UmJnZvaWQgMCE9PVkmJnZvaWQgMCE9PVcmJmMucmVsYXlvdXQodCx7ImxlZ2VuZC54IjpZLCJsZWdlbmQueSI6V30pfX0pfX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90bHkiOjYxMiwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi4vY29sb3IiOjUwNiwiLi4vZHJhZ2VsZW1lbnQiOjUyNywiLi4vZHJhd2luZyI6NTI5LCIuL2FuY2hvcl91dGlscyI6NTQyLCIuL2NvbnN0YW50cyI6NTQ0LCIuL2dldF9sZWdlbmRfZGF0YSI6NTQ3LCIuL2hlbHBlcnMiOjU0OCwiLi9zdHlsZSI6NTUwLGQzOjEyNH1dLDU0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpLGk9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LHIpe2lmKCIiIT09dCYmaS5pc0dyb3VwZWQoZSkpLTE9PT1sLmluZGV4T2YodCk/KGwucHVzaCh0KSx1PSEwLHNbdF09W1tyXV0pOnNbdF0ucHVzaChbcl0pO2Vsc2V7dmFyIG49In5+aSIraDtsLnB1c2gobiksc1tuXT1bW3JdXSxoKyt9fXZhciBvLGEscz17fSxsPVtdLHU9ITEsYz17fSxoPTA7Zm9yKG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGY9dFtvXSxwPWZbMF0sZD1wLnRyYWNlLG09ZC5sZWdlbmRncm91cDtpZihpLmxlZ2VuZEdldHNUcmFjZShkKSYmZC5zaG93bGVnZW5kKWlmKG4udHJhY2VJcyhkLCJwaWUiKSlmb3IoY1ttXXx8KGNbbV09e30pLGE9MDthPGYubGVuZ3RoO2ErKyl7dmFyIGc9ZlthXS5sYWJlbDtjW21dW2ddfHwocihtLHtsYWJlbDpnLGNvbG9yOmZbYV0uY29sb3IsaTpmW2FdLmksdHJhY2U6ZH0pLGNbbV1bZ109ITApfWVsc2UgcihtLHApfWlmKCFsLmxlbmd0aClyZXR1cm5bXTt2YXIgdix5LGI9bC5sZW5ndGg7aWYodSYmaS5pc0dyb3VwZWQoZSkpZm9yKHk9bmV3IEFycmF5KGIpLG89MDtiPm87bysrKXY9c1tsW29dXSx5W29dPWkuaXNSZXZlcnNlZChlKT92LnJldmVyc2UoKTp2O2Vsc2V7Zm9yKHk9W25ldyBBcnJheShiKV0sbz0wO2I+bztvKyspdj1zW2xbb11dWzBdLHlbMF1baS5pc1JldmVyc2VkKGUpP2Itby0xOm9dPXY7Yj0xfXJldHVybiBlLl9sZ3JvdXBzTGVuZ3RoPWIseX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi9oZWxwZXJzIjo1NDh9XSw1NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvcGxvdHMiKTtyLmxlZ2VuZEdldHNUcmFjZT1mdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlJiZuLnRyYWNlSXModCwic2hvd0xlZ2VuZCIpfSxyLmlzR3JvdXBlZD1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PSh0LnRyYWNlb3JkZXJ8fCIiKS5pbmRleE9mKCJncm91cGVkIil9LHIuaXNWZXJ0aWNhbD1mdW5jdGlvbih0KXtyZXR1cm4iaCIhPT10Lm9yaWVudGF0aW9ufSxyLmlzUmV2ZXJzZWQ9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT0odC50cmFjZW9yZGVyfHwiIikuaW5kZXhPZigicmV2ZXJzZWQiKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MX1dLDU0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1lLmV4cG9ydHM9e307bi5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4uc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uZHJhdz10KCIuL2RyYXciKSxuLnN0eWxlPXQoIi4vc3R5bGUiKX0seyIuL2F0dHJpYnV0ZXMiOjU0MywiLi9kZWZhdWx0cyI6NTQ1LCIuL2RyYXciOjU0NiwiLi9zdHlsZSI6NTUwfV0sNTUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9dFswXS50cmFjZSxyPWUudmlzaWJsZSYmZS5maWxsJiYibm9uZSIhPT1lLmZpbGwsbj1wLmhhc0xpbmVzKGUpLGk9bC5zZWxlY3QodGhpcykuc2VsZWN0KCIubGVnZW5kZmlsbCIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEocj9bdF06W10pO2kuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJqcy1maWxsIiwhMCksaS5leGl0KCkucmVtb3ZlKCksaS5hdHRyKCJkIiwiTTUsMGgzMHY2aC0zMHoiKS5jYWxsKGguZmlsbEdyb3VwU3R5bGUpO3ZhciBvPWwuc2VsZWN0KHRoaXMpLnNlbGVjdCgiLmxlZ2VuZGxpbmVzIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShuP1t0XTpbXSk7by5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImpzLWxpbmUiLCEwKS5hdHRyKCJkIiwiTTUsMGgzMCIpLG8uZXhpdCgpLnJlbW92ZSgpLG8uY2FsbChoLmxpbmVHcm91cFN0eWxlKX1mdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGUodCxlLHIpe3ZhciBuPXUubmVzdGVkUHJvcGVydHkoYSx0KS5nZXQoKSxpPUFycmF5LmlzQXJyYXkobikmJmU/ZShuKTpuO2lmKHIpe2lmKGk8clswXSlyZXR1cm4gclswXTtpZihpPnJbMV0pcmV0dXJuIHJbMV19cmV0dXJuIGl9ZnVuY3Rpb24gcih0KXtyZXR1cm4gdFswXX12YXIgbixpLG89dFswXSxhPW8udHJhY2Uscz1wLmhhc01hcmtlcnMoYSksYz1wLmhhc1RleHQoYSksZj1wLmhhc0xpbmVzKGEpO2lmKHN8fGN8fGYpe3ZhciBkPXt9LG09e307cyYmKGQubWM9ZSgibWFya2VyLmNvbG9yIixyKSxkLm1vPWUoIm1hcmtlci5vcGFjaXR5Iix1Lm1lYW4sWy4yLDFdKSxkLm1zPWUoIm1hcmtlci5zaXplIix1Lm1lYW4sWzIsMTZdKSxkLm1sYz1lKCJtYXJrZXIubGluZS5jb2xvciIsciksZC5tbHc9ZSgibWFya2VyLmxpbmUud2lkdGgiLHUubWVhbixbMCw1XSksbS5tYXJrZXI9e3NpemVyZWY6MSxzaXplbWluOjEsc2l6ZW1vZGU6ImRpYW1ldGVyIn0pLGYmJihtLmxpbmU9e3dpZHRoOmUoImxpbmUud2lkdGgiLHIsWzAsMTBdKX0pLGMmJihkLnR4PSJBYSIsZC50cD1lKCJ0ZXh0cG9zaXRpb24iLHIpLGQudHM9MTAsZC50Yz1lKCJ0ZXh0Zm9udC5jb2xvciIsciksZC50Zj1lKCJ0ZXh0Zm9udC5mYW1pbHkiLHIpKSxuPVt1Lm1pbkV4dGVuZChvLGQpXSxpPXUubWluRXh0ZW5kKGEsbSl9dmFyIGc9bC5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLHY9Zy5zZWxlY3RBbGwoInBhdGguc2NhdHRlcnB0cyIpLmRhdGEocz9uOltdKTt2LmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgic2NhdHRlcnB0cyIsITApLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgyMCwwKSIpLHYuZXhpdCgpLnJlbW92ZSgpLHYuY2FsbChoLnBvaW50U3R5bGUsaSkscyYmKG5bMF0ubXJjPTMpO3ZhciB5PWcuc2VsZWN0QWxsKCJnLnBvaW50dGV4dCIpLmRhdGEoYz9uOltdKTt5LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicG9pbnR0ZXh0IiwhMCkuYXBwZW5kKCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDIwLDApIikseS5leGl0KCkucmVtb3ZlKCkseS5zZWxlY3RBbGwoInRleHQiKS5jYWxsKGgudGV4dFBvaW50U3R5bGUsaSl9ZnVuY3Rpb24gbyh0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZS5tYXJrZXJ8fHt9LG49ci5saW5lfHx7fSxpPWwuc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kYmFyIikuZGF0YShjLnRyYWNlSXMoZSwiYmFyIik/W3RdOltdKTtpLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgibGVnZW5kYmFyIiwhMCkuYXR0cigiZCIsIk02LDZILTZWLTZINloiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoMjAsMCkiKSxpLmV4aXQoKS5yZW1vdmUoKSxpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9KHQubWx3KzF8fG4ud2lkdGgrMSktMSxpPWwuc2VsZWN0KHRoaXMpO2kuc3R5bGUoInN0cm9rZS13aWR0aCIsZSsicHgiKS5jYWxsKGYuZmlsbCx0Lm1jfHxyLmNvbG9yKSxlJiZpLmNhbGwoZi5zdHJva2UsdC5tbGN8fG4uY29sb3IpfSl9ZnVuY3Rpb24gYSh0KXt2YXIgZT10WzBdLnRyYWNlLHI9bC5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmRib3giKS5kYXRhKGMudHJhY2VJcyhlLCJib3giKSYmZS52aXNpYmxlP1t0XTpbXSk7ci5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZGJveCIsITApLmF0dHIoImQiLCJNNiw2SC02Vi02SDZaIikuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKDIwLDApIiksci5leGl0KCkucmVtb3ZlKCksci5lYWNoKGZ1bmN0aW9uKHQpe3ZhciByPSh0Lmx3KzF8fGUubGluZS53aWR0aCsxKS0xLG49bC5zZWxlY3QodGhpcyk7bi5zdHlsZSgic3Ryb2tlLXdpZHRoIixyKyJweCIpLmNhbGwoZi5maWxsLHQuZmN8fGUuZmlsbGNvbG9yKSxyJiZuLmNhbGwoZi5zdHJva2UsdC5sY3x8ZS5saW5lLmNvbG9yKX0pfWZ1bmN0aW9uIHModCl7dmFyIGU9dFswXS50cmFjZSxyPWwuc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kcGllIikuZGF0YShjLnRyYWNlSXMoZSwicGllIikmJmUudmlzaWJsZT9bdF06W10pO3IuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRwaWUiLCEwKS5hdHRyKCJkIiwiTTYsNkgtNlYtNkg2WiIpLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgyMCwwKSIpLHIuZXhpdCgpLnJlbW92ZSgpLHIuc2l6ZSgpJiZyLmNhbGwoZCx0WzBdLGUpfXZhciBsPXQoImQzIiksdT10KCIuLi8uLi9saWIiKSxjPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksaD10KCIuLi9kcmF3aW5nIiksZj10KCIuLi9jb2xvciIpLHA9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiKSxkPXQoIi4uLy4uL3RyYWNlcy9waWUvc3R5bGVfb25lIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3QuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1sLnNlbGVjdCh0aGlzKSxyPWUuc2VsZWN0QWxsKCJnLmxlZ2VuZGZpbGwiKS5kYXRhKFt0XSk7ci5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxlZ2VuZGZpbGwiLCEwKTt2YXIgbj1lLnNlbGVjdEFsbCgiZy5sZWdlbmRsaW5lcyIpLmRhdGEoW3RdKTtuLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGVnZW5kbGluZXMiLCEwKTt2YXIgaT1lLnNlbGVjdEFsbCgiZy5sZWdlbmRzeW1ib2xzIikuZGF0YShbdF0pO2kuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRzeW1ib2xzIiwhMCksaS5zdHlsZSgib3BhY2l0eSIsdFswXS50cmFjZS5vcGFjaXR5KSxpLnNlbGVjdEFsbCgiZy5sZWdlbmRwb2ludHMiKS5kYXRhKFt0XSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRwb2ludHMiLCEwKX0pLmVhY2gobykuZWFjaChhKS5lYWNoKHMpLmVhY2gobikuZWFjaChpKX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2NzEsIi4uLy4uL3RyYWNlcy9waWUvc3R5bGVfb25lIjo3NzEsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo3OTIsIi4uL2NvbG9yIjo1MDYsIi4uL2RyYXdpbmciOjUyOSxkMzoxMjR9XSw1NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPWUuY3VycmVudFRhcmdldCxuPXIuZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxpPXIuZ2V0QXR0cmlidXRlKCJkYXRhLXZhbCIpfHwhMCxvPXQuX2Z1bGxMYXlvdXQsYT17fTtpZigiem9vbSI9PT1uKXtmb3IodmFyIHMsbCxjPSJpbiI9PT1pPy41OjIsaD0oMStjKS8yLGY9KDEtYykvMixwPXUuQXhlcy5saXN0KHQsbnVsbCwhMCksZD0wO2Q8cC5sZW5ndGg7ZCsrKWlmKHM9cFtkXSwhcy5maXhlZHJhbmdlKWlmKGw9cy5fbmFtZSwiYXV0byI9PT1pKWFbbCsiLmF1dG9yYW5nZSJdPSEwO2Vsc2UgaWYoInJlc2V0Ij09PWkpaWYodm9pZCAwPT09cy5fcmFuZ2VJbml0aWFsKWFbbCsiLmF1dG9yYW5nZSJdPSEwO2Vsc2V7dmFyIG09cy5fcmFuZ2VJbml0aWFsLnNsaWNlKCk7YVtsKyIucmFuZ2VbMF0iXT1tWzBdLGFbbCsiLnJhbmdlWzFdIl09bVsxXX1lbHNle3ZhciBnPXMucmFuZ2U7YVtsKyIucmFuZ2VbMF0iXT1oKmdbMF0rZipnWzFdLGFbbCsiLnJhbmdlWzFdIl09aCpnWzFdK2YqZ1swXX19ZWxzZSJob3Zlcm1vZGUiIT09bnx8IngiIT09aSYmInkiIT09aXx8KGk9by5faXNIb3Jpej8ieSI6IngiLHIuc2V0QXR0cmlidXRlKCJkYXRhLXZhbCIsaSkpLGFbbl09aTt1LnJlbGF5b3V0KHQsYSl9ZnVuY3Rpb24gaSh0LGUpe2Zvcih2YXIgcj1lLmN1cnJlbnRUYXJnZXQsbj1yLmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIiksaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKXx8ITAsbz10Ll9mdWxsTGF5b3V0LGE9dS5QbG90cy5nZXRTdWJwbG90SWRzKG8sImdsM2QiKSxzPXt9LGw9bi5zcGxpdCgiLiIpLGM9MDtjPGEubGVuZ3RoO2MrKylzW2FbY10rIi4iK2xbMV1dPWk7dS5yZWxheW91dCh0LHMpfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9ZS5jdXJyZW50VGFyZ2V0LG49ci5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLGk9dC5fZnVsbExheW91dCxvPXUuUGxvdHMuZ2V0U3VicGxvdElkcyhpLCJnbDNkIiksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz1vW2FdLGw9aVtzXSxjPWwuX3NjZW5lOyJyZXNldERlZmF1bHQiPT09bj9jLnNldENhbWVyYVRvRGVmYXVsdCgpOiJyZXNldExhc3RTYXZlIj09PW4mJmMuc2V0Q2FtZXJhKGwuY2FtZXJhKX19ZnVuY3Rpb24gYSh0LGUpe3ZhciByPWUuY3VycmVudFRhcmdldCxuPXIuX3ByZXZpb3VzVmFsfHwhMSxpPXQubGF5b3V0LG89dC5fZnVsbExheW91dCxhPXUuUGxvdHMuZ2V0U3VicGxvdElkcyhvLCJnbDNkIikscz1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdLGw9WyJzaG93c3Bpa2VzIiwic3Bpa2VzaWRlcyIsInNwaWtldGhpY2tuZXNzIiwic3Bpa2Vjb2xvciJdLGg9e30sZj17fSxwPXt9O2lmKG4pcD1jLmV4dGVuZERlZXAoaSxuKSxyLl9wcmV2aW91c1ZhbD1udWxsO2Vsc2V7cD17ImFsbGF4ZXMuc2hvd3NwaWtlcyI6ITF9O2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7ZCsrKXt2YXIgbT1hW2RdLGc9b1ttXSx2PWhbbV09e307di5ob3Zlcm1vZGU9Zy5ob3Zlcm1vZGUscFttKyIuaG92ZXJtb2RlIl09ITE7Zm9yKHZhciB5PTA7Mz55O3krKyl7dmFyIGI9c1t5XTtmPXZbYl09e307Zm9yKHZhciB4PTA7eDxsLmxlbmd0aDt4Kyspe3ZhciBfPWxbeF07ZltfXT1nW2JdW19dfX19ci5fcHJldmlvdXNWYWw9Yy5leHRlbmREZWVwKHt9LGgpfXUucmVsYXlvdXQodCxwKX1mdW5jdGlvbiBzKHQsZSl7Zm9yKHZhciByPWUuY3VycmVudFRhcmdldCxuPXIuZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxpPXIuZ2V0QXR0cmlidXRlKCJkYXRhLXZhbCIpfHwhMCxvPXQuX2Z1bGxMYXlvdXQsYT11LlBsb3RzLmdldFN1YnBsb3RJZHMobywiZ2VvIikscz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1vW2Fbc11dLl9nZW87aWYoInpvb20iPT09bil7dmFyIGM9bC5wcm9qZWN0aW9uLnNjYWxlKCksaD0iaW4iPT09aT8yKmM6LjUqYztsLnByb2plY3Rpb24uc2NhbGUoaCksbC56b29tLnNjYWxlKGgpLGwucmVuZGVyKCl9ZWxzZSJyZXNldCI9PT1uJiZsLnpvb21SZXNldCgpfX1mdW5jdGlvbiBsKHQpe3ZhciBlLHI9dC5fZnVsbExheW91dDtlPXIuX2hhcygiY2FydGVzaWFuIik/ci5faXNIb3Jpej8ieSI6IngiOiJjbG9zZXN0Ijt2YXIgbj10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZT8hMTplO3UucmVsYXlvdXQodCwiaG92ZXJtb2RlIixuKX12YXIgdT10KCIuLi8uLi9wbG90bHkiKSxjPXQoIi4uLy4uL2xpYiIpLGg9dCgiLi4vLi4vc25hcHNob3QvZG93bmxvYWQiKSxmPXQoIi4uLy4uLy4uL2J1aWxkL3Bsb3RpY29uIikscD1lLmV4cG9ydHM9e307cC50b0ltYWdlPXtuYW1lOiJ0b0ltYWdlIix0aXRsZToiRG93bmxvYWQgcGxvdCBhcyBhIHBuZyIsaWNvbjpmLmNhbWVyYSxjbGljazpmdW5jdGlvbih0KXt2YXIgZT0icG5nIjtjLm5vdGlmaWVyKCJUYWtpbmcgc25hcHNob3QgLSB0aGlzIG1heSB0YWtlIGEgZmV3IHNlY29uZHMiLCJsb25nIiksYy5pc0lFKCkmJihjLm5vdGlmaWVyKCJJRSBvbmx5IHN1cHBvcnRzIHN2Zy4gIENoYW5naW5nIGZvcm1hdCB0byBzdmcuIiwibG9uZyIpLGU9InN2ZyIpLGgodCx7Zm9ybWF0OmV9KS50aGVuKGZ1bmN0aW9uKHQpe2Mubm90aWZpZXIoIlNuYXBzaG90IHN1Y2NlZWRlZCAtICIrdCwibG9uZyIpfSkuY2F0Y2goZnVuY3Rpb24oKXtjLm5vdGlmaWVyKCJTb3JyeSB0aGVyZSB3YXMgYSBwcm9ibGVtIGRvd25sb2FkaW5nIHlvdXIgc25hcHNob3QhIiwibG9uZyIpfSl9fSxwLnNlbmREYXRhVG9DbG91ZD17bmFtZToic2VuZERhdGFUb0Nsb3VkIix0aXRsZToiU2F2ZSBhbmQgZWRpdCBwbG90IGluIGNsb3VkIixpY29uOmYuZGlzayxjbGljazpmdW5jdGlvbih0KXt1LlBsb3RzLnNlbmREYXRhVG9DbG91ZCh0KX19LHAuem9vbTJkPXtuYW1lOiJ6b29tMmQiLHRpdGxlOiJab29tIixhdHRyOiJkcmFnbW9kZSIsdmFsOiJ6b29tIixpY29uOmYuem9vbWJveCxjbGljazpufSxwLnBhbjJkPXtuYW1lOiJwYW4yZCIsdGl0bGU6IlBhbiIsYXR0cjoiZHJhZ21vZGUiLHZhbDoicGFuIixpY29uOmYucGFuLGNsaWNrOm59LHAuc2VsZWN0MmQ9e25hbWU6InNlbGVjdDJkIix0aXRsZToiQm94IFNlbGVjdCIsYXR0cjoiZHJhZ21vZGUiLHZhbDoic2VsZWN0IixpY29uOmYuc2VsZWN0Ym94LGNsaWNrOm59LHAubGFzc28yZD17bmFtZToibGFzc28yZCIsdGl0bGU6Ikxhc3NvIFNlbGVjdCIsYXR0cjoiZHJhZ21vZGUiLHZhbDoibGFzc28iLGljb246Zi5sYXNzbyxjbGljazpufSxwLnpvb21JbjJkPXtuYW1lOiJ6b29tSW4yZCIsdGl0bGU6Ilpvb20gaW4iLGF0dHI6Inpvb20iLHZhbDoiaW4iLGljb246Zi56b29tX3BsdXMsY2xpY2s6bn0scC56b29tT3V0MmQ9e25hbWU6Inpvb21PdXQyZCIsdGl0bGU6Ilpvb20gb3V0IixhdHRyOiJ6b29tIix2YWw6Im91dCIsaWNvbjpmLnpvb21fbWludXMsY2xpY2s6bn0scC5hdXRvU2NhbGUyZD17bmFtZToiYXV0b1NjYWxlMmQiLHRpdGxlOiJBdXRvc2NhbGUiLGF0dHI6Inpvb20iLHZhbDoiYXV0byIsaWNvbjpmLmF1dG9zY2FsZSxjbGljazpufSxwLnJlc2V0U2NhbGUyZD17bmFtZToicmVzZXRTY2FsZTJkIix0aXRsZToiUmVzZXQgYXhlcyIsYXR0cjoiem9vbSIsdmFsOiJyZXNldCIsaWNvbjpmLmhvbWUsY2xpY2s6bn0scC5ob3ZlckNsb3Nlc3RDYXJ0ZXNpYW49e25hbWU6ImhvdmVyQ2xvc2VzdENhcnRlc2lhbiIsdGl0bGU6IlNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIixhdHRyOiJob3Zlcm1vZGUiLHZhbDoiY2xvc2VzdCIsaWNvbjpmLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOm59LHAuaG92ZXJDb21wYXJlQ2FydGVzaWFuPXtuYW1lOiJob3ZlckNvbXBhcmVDYXJ0ZXNpYW4iLHRpdGxlOiJDb21wYXJlIGRhdGEgb24gaG92ZXIiLGF0dHI6ImhvdmVybW9kZSIsdmFsOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9mdWxsTGF5b3V0Ll9pc0hvcml6PyJ5IjoieCJ9LGljb246Zi50b29sdGlwX2NvbXBhcmUsZ3Jhdml0eToibmUiLGNsaWNrOm59LHAuem9vbTNkPXtuYW1lOiJ6b29tM2QiLHRpdGxlOiJab29tIixhdHRyOiJzY2VuZS5kcmFnbW9kZSIsdmFsOiJ6b29tIixpY29uOmYuem9vbWJveCxjbGljazppfSxwLnBhbjNkPXtuYW1lOiJwYW4zZCIsdGl0bGU6IlBhbiIsYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoicGFuIixpY29uOmYucGFuLGNsaWNrOml9LHAub3JiaXRSb3RhdGlvbj17bmFtZToib3JiaXRSb3RhdGlvbiIsdGl0bGU6Im9yYml0YWwgcm90YXRpb24iLGF0dHI6InNjZW5lLmRyYWdtb2RlIix2YWw6Im9yYml0IixpY29uOmZbIjNkX3JvdGF0ZSJdLGNsaWNrOml9LHAudGFibGVSb3RhdGlvbj17bmFtZToidGFibGVSb3RhdGlvbiIsdGl0bGU6InR1cm50YWJsZSByb3RhdGlvbiIsYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoidHVybnRhYmxlIixpY29uOmZbInotYXhpcyJdLGNsaWNrOml9LHAucmVzZXRDYW1lcmFEZWZhdWx0M2Q9e25hbWU6InJlc2V0Q2FtZXJhRGVmYXVsdDNkIix0aXRsZToiUmVzZXQgY2FtZXJhIHRvIGRlZmF1bHQiLGF0dHI6InJlc2V0RGVmYXVsdCIsaWNvbjpmLmhvbWUsY2xpY2s6b30scC5yZXNldENhbWVyYUxhc3RTYXZlM2Q9e25hbWU6InJlc2V0Q2FtZXJhTGFzdFNhdmUzZCIsdGl0bGU6IlJlc2V0IGNhbWVyYSB0byBsYXN0IHNhdmUiLGF0dHI6InJlc2V0TGFzdFNhdmUiLGljb246Zi5tb3ZpZSxjbGljazpvfSxwLmhvdmVyQ2xvc2VzdDNkPXtuYW1lOiJob3ZlckNsb3Nlc3QzZCIsdGl0bGU6IlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIsYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpmLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmF9LHAuem9vbUluR2VvPXtuYW1lOiJ6b29tSW5HZW8iLHRpdGxlOiJab29tIGluIixhdHRyOiJ6b29tIix2YWw6ImluIixpY29uOmYuem9vbV9wbHVzLGNsaWNrOnN9LHAuem9vbU91dEdlbz17bmFtZToiem9vbU91dEdlbyIsdGl0bGU6Ilpvb20gb3V0IixhdHRyOiJ6b29tIix2YWw6Im91dCIsaWNvbjpmLnpvb21fbWludXMsY2xpY2s6c30scC5yZXNldEdlbz17bmFtZToicmVzZXRHZW8iLHRpdGxlOiJSZXNldCIsYXR0cjoicmVzZXQiLHZhbDpudWxsLGljb246Zi5hdXRvc2NhbGUsY2xpY2s6c30scC5ob3ZlckNsb3Nlc3RHZW89e25hbWU6ImhvdmVyQ2xvc2VzdEdlbyIsdGl0bGU6IlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIsYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpmLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmx9LHAuaG92ZXJDbG9zZXN0R2wyZD17bmFtZToiaG92ZXJDbG9zZXN0R2wyZCIsdGl0bGU6IlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIsYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpmLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmx9LHAuaG92ZXJDbG9zZXN0UGllPXtuYW1lOiJob3ZlckNsb3Nlc3RQaWUiLHRpdGxlOiJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiLGF0dHI6ImhvdmVybW9kZSIsdmFsOiJjbG9zZXN0IixpY29uOmYudG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6bH0scC50b2dnbGVIb3Zlcj17bmFtZToidG9nZ2xlSG92ZXIiLHRpdGxlOiJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiLGF0dHI6ImhvdmVybW9kZSIsdmFsOm51bGwsdG9nZ2xlOiEwLGljb246Zi50b29sdGlwX2Jhc2ljLGdyYXZpdHk6Im5lIixjbGljazpmdW5jdGlvbih0LGUpe2wodCksYSh0LGUpfX0scC5yZXNldFZpZXdzPXtuYW1lOiJyZXNldFZpZXdzIix0aXRsZToiUmVzZXQgdmlld3MiLGljb246Zi5ob21lLGNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5jdXJyZW50VGFyZ2V0O3Iuc2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiLCJ6b29tIiksci5zZXRBdHRyaWJ1dGUoImRhdGEtdmFsIiwicmVzZXQiKSxuKHQsZSksci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsInJlc2V0TGFzdFNhdmUiKSxvKHQsZSl9fX0seyIuLi8uLi8uLi9idWlsZC9wbG90aWNvbiI6MiwiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RseSI6NjEyLCIuLi8uLi9zbmFwc2hvdC9kb3dubG9hZCI6Njg2fV0sNTUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5jb250YWluZXI9dC5jb250YWluZXIsdGhpcy5lbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHRoaXMudXBkYXRlKHQuZ3JhcGhJbmZvLHQuYnV0dG9ucyksdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KX1mdW5jdGlvbiBpKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxpPW5ldyBuKHtncmFwaEluZm86dCxjb250YWluZXI6ci5fcGFwZXJkaXYubm9kZSgpLGJ1dHRvbnM6ZX0pO3JldHVybiByLl9wcml2YXRlcGxvdCYmby5zZWxlY3QoaS5lbGVtZW50KS5hcHBlbmQoInNwYW4iKS5jbGFzc2VkKCJiYWRnZS1wcml2YXRlIGZsb2F0LS1sZWZ0IiwhMCkudGV4dCgiUFJJVkFURSIpLGl9dmFyIG89dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vLi4vYnVpbGQvcGxvdGljb24iKSxsPW4ucHJvdG90eXBlO2wudXBkYXRlPWZ1bmN0aW9uKHQsZSl7dGhpcy5ncmFwaEluZm89dDt2YXIgcj10aGlzLmdyYXBoSW5mby5fY29udGV4dDsiaG92ZXIiPT09ci5kaXNwbGF5TW9kZUJhcj90aGlzLmVsZW1lbnQuY2xhc3NOYW1lPSJtb2RlYmFyIG1vZGViYXItLWhvdmVyIjp0aGlzLmVsZW1lbnQuY2xhc3NOYW1lPSJtb2RlYmFyIjt2YXIgbj0hdGhpcy5oYXNCdXR0b25zKGUpLGk9dGhpcy5oYXNMb2dvIT09ci5kaXNwbGF5bG9nbzsobnx8aSkmJih0aGlzLnJlbW92ZUFsbEJ1dHRvbnMoKSx0aGlzLnVwZGF0ZUJ1dHRvbnMoZSksci5kaXNwbGF5bG9nbyYmKHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmdldExvZ28oKSksdGhpcy5oYXNMb2dvPSEwKSksdGhpcy51cGRhdGVBY3RpdmVCdXR0b24oKX0sbC51cGRhdGVCdXR0b25zPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5idXR0b25zPXQsdGhpcy5idXR0b25FbGVtZW50cz1bXSx0aGlzLmJ1dHRvbnNOYW1lcz1bXSx0aGlzLmJ1dHRvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgcj1lLmNyZWF0ZUdyb3VwKCk7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQubmFtZTtpZighbil0aHJvdyBuZXcgRXJyb3IoIm11c3QgcHJvdmlkZSBidXR0b24gJ25hbWUnIGluIGJ1dHRvbiBjb25maWciKTtpZigtMSE9PWUuYnV0dG9uc05hbWVzLmluZGV4T2YobikpdGhyb3cgbmV3IEVycm9yKCJidXR0b24gbmFtZSAnIituKyInIGlzIHRha2VuIik7ZS5idXR0b25zTmFtZXMucHVzaChuKTt2YXIgaT1lLmNyZWF0ZUJ1dHRvbih0KTtlLmJ1dHRvbkVsZW1lbnRzLnB1c2goaSksci5hcHBlbmRDaGlsZChpKX0pLGUuZWxlbWVudC5hcHBlbmRDaGlsZChyKX0pfSxsLmNyZWF0ZUdyb3VwPWZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuY2xhc3NOYW1lPSJtb2RlYmFyLWdyb3VwIix0fSxsLmNyZWF0ZUJ1dHRvbj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3Iuc2V0QXR0cmlidXRlKCJyZWwiLCJ0b29sdGlwIiksci5jbGFzc05hbWU9Im1vZGViYXItYnRuIjt2YXIgbj10LnRpdGxlO3ZvaWQgMD09PW4mJihuPXQubmFtZSksKG58fDA9PT1uKSYmci5zZXRBdHRyaWJ1dGUoImRhdGEtdGl0bGUiLG4pLHZvaWQgMCE9PXQuYXR0ciYmci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsdC5hdHRyKTt2YXIgaT10LnZhbDt2b2lkIDAhPT1pJiYoImZ1bmN0aW9uIj09dHlwZW9mIGkmJihpPWkodGhpcy5ncmFwaEluZm8pKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS12YWwiLGkpKTt2YXIgbz10LmNsaWNrO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvKXRocm93IG5ldyBFcnJvcigibXVzdCBwcm92aWRlIGJ1dHRvbiAnY2xpY2snIGZ1bmN0aW9uIGluIGJ1dHRvbiBjb25maWciKTtyZXR1cm4gci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24ocil7dC5jbGljayhlLmdyYXBoSW5mbyxyKSxlLnVwZGF0ZUFjdGl2ZUJ1dHRvbihyLmN1cnJlbnRUYXJnZXQpfSksci5zZXRBdHRyaWJ1dGUoImRhdGEtdG9nZ2xlIix0LnRvZ2dsZXx8ITEpLHQudG9nZ2xlJiZyLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHIuYXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVJY29uKHQuaWNvbnx8cy5xdWVzdGlvbikpLHIuc2V0QXR0cmlidXRlKCJkYXRhLWdyYXZpdHkiLHQuZ3Jhdml0eXx8Im4iKSxyfSxsLmNyZWF0ZUljb249ZnVuY3Rpb24odCl7dmFyIGU9dC5hc2NlbnQtdC5kZXNjZW50LHI9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhyLCJzdmciKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhyLCJwYXRoIik7cmV0dXJuIG4uc2V0QXR0cmlidXRlKCJoZWlnaHQiLCIxZW0iKSxuLnNldEF0dHJpYnV0ZSgid2lkdGgiLHQud2lkdGgvZSsiZW0iKSxuLnNldEF0dHJpYnV0ZSgidmlld0JveCIsWzAsMCx0LndpZHRoLGVdLmpvaW4oIiAiKSksaS5zZXRBdHRyaWJ1dGUoImQiLHQucGF0aCksaS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsIm1hdHJpeCgxIDAgMCAtMSAwICIrdC5hc2NlbnQrIikiKSxuLmFwcGVuZENoaWxkKGkpLG59LGwudXBkYXRlQWN0aXZlQnV0dG9uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ3JhcGhJbmZvLl9mdWxsTGF5b3V0LHI9dm9pZCAwIT09dD90LmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIik6bnVsbDt0aGlzLmJ1dHRvbkVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC5nZXRBdHRyaWJ1dGUoImRhdGEtdmFsIil8fCEwLGk9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLHM9InRydWUiPT09dC5nZXRBdHRyaWJ1dGUoImRhdGEtdG9nZ2xlIiksbD1vLnNlbGVjdCh0KTtpZihzKWk9PT1yJiZsLmNsYXNzZWQoImFjdGl2ZSIsIWwuY2xhc3NlZCgiYWN0aXZlIikpO2Vsc2V7dmFyIHU9bnVsbD09PWk/aTphLm5lc3RlZFByb3BlcnR5KGUsaSkuZ2V0KCk7bC5jbGFzc2VkKCJhY3RpdmUiLHU9PT1uKX19KX0sbC5oYXNCdXR0b25zPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYnV0dG9ucztpZighZSlyZXR1cm4hMTtpZih0Lmxlbmd0aCE9PWUubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKXtpZih0W3JdLmxlbmd0aCE9PWVbcl0ubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248dFtyXS5sZW5ndGg7bisrKWlmKHRbcl1bbl0ubmFtZSE9PWVbcl1bbl0ubmFtZSlyZXR1cm4hMX1yZXR1cm4hMH0sbC5nZXRMb2dvPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jcmVhdGVHcm91cCgpLGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3JldHVybiBlLmhyZWY9Imh0dHBzOi8vcGxvdC5seS8iLGUudGFyZ2V0PSJfYmxhbmsiLGUuc2V0QXR0cmlidXRlKCJkYXRhLXRpdGxlIiwiUHJvZHVjZWQgd2l0aCBQbG90bHkiKSxlLmNsYXNzTmFtZT0ibW9kZWJhci1idG4gcGxvdGx5anNpY29uIG1vZGViYXItYnRuLS1sb2dvIixlLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlSWNvbihzLnBsb3RseWxvZ28pKSx0LmFwcGVuZENoaWxkKGUpLHR9LGwucmVtb3ZlQWxsQnV0dG9ucz1mdW5jdGlvbigpe2Zvcig7dGhpcy5lbGVtZW50LmZpcnN0Q2hpbGQ7KXRoaXMuZWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmVsZW1lbnQuZmlyc3RDaGlsZCk7dGhpcy5oYXNMb2dvPSExfSxsLmRlc3Ryb3k9ZnVuY3Rpb24oKXthLnJlbW92ZUVsZW1lbnQodGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcigiLm1vZGViYXIiKSl9LGUuZXhwb3J0cz1pfSx7Ii4uLy4uLy4uL2J1aWxkL3Bsb3RpY29uIjoyLCIuLi8uLi9saWIiOjU5MSxkMzoxMjR9XSw1NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7ZnVuY3Rpb24gbih0KXtmb3IodmFyIHI9W10sbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dOy0xPT09ZS5pbmRleE9mKGkpJiZyLnB1c2goaFtpXSl9Zy5wdXNoKHIpfXZhciBzPXQuX2Z1bGxMYXlvdXQsbD10Ll9mdWxsRGF0YSx1PXMuX2hhcygiY2FydGVzaWFuIiksYz1zLl9oYXMoImdsM2QiKSxmPXMuX2hhcygiZ2VvIikscD1zLl9oYXMoInBpZSIpLGQ9cy5faGFzKCJnbDJkIiksbT1zLl9oYXMoInRlcm5hcnkiKSxnPVtdO2lmKG4oWyJ0b0ltYWdlIiwic2VuZERhdGFUb0Nsb3VkIl0pLCh1fHxkfHxwfHxtKStmK2M+MSlyZXR1cm4gbihbInJlc2V0Vmlld3MiLCJ0b2dnbGVIb3ZlciJdKSxhKGcscik7YyYmKG4oWyJ6b29tM2QiLCJwYW4zZCIsIm9yYml0Um90YXRpb24iLCJ0YWJsZVJvdGF0aW9uIl0pLG4oWyJyZXNldENhbWVyYURlZmF1bHQzZCIsInJlc2V0Q2FtZXJhTGFzdFNhdmUzZCJdKSxuKFsiaG92ZXJDbG9zZXN0M2QiXSkpLGYmJihuKFsiem9vbUluR2VvIiwiem9vbU91dEdlbyIsInJlc2V0R2VvIl0pLG4oWyJob3ZlckNsb3Nlc3RHZW8iXSkpO3ZhciB2PWkocykseT1bXTtyZXR1cm4oKHV8fGQpJiYhdnx8bSkmJih5PVsiem9vbTJkIiwicGFuMmQiXSksKHV8fG0pJiZvKGwpJiYoeS5wdXNoKCJzZWxlY3QyZCIpLHkucHVzaCgibGFzc28yZCIpKSx5Lmxlbmd0aCYmbih5KSwhdSYmIWR8fHZ8fG18fG4oWyJ6b29tSW4yZCIsInpvb21PdXQyZCIsImF1dG9TY2FsZTJkIiwicmVzZXRTY2FsZTJkIl0pLHUmJnA/bihbInRvZ2dsZUhvdmVyIl0pOmQ/bihbImhvdmVyQ2xvc2VzdEdsMmQiXSk6dT9uKFsiaG92ZXJDbG9zZXN0Q2FydGVzaWFuIiwiaG92ZXJDb21wYXJlQ2FydGVzaWFuIl0pOnAmJm4oWyJob3ZlckNsb3Nlc3RQaWUiXSksYShnLHIpfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPWwuQXhlcy5saXN0KHtfZnVsbExheW91dDp0fSxudWxsLCEwKSxyPSEwLG49MDtuPGUubGVuZ3RoO24rKylpZighZVtuXS5maXhlZHJhbmdlKXtyPSExO2JyZWFrfXJldHVybiByfWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPSExLHI9MDtyPHQubGVuZ3RoJiYhZTtyKyspe3ZhciBuPXRbcl07bi5fbW9kdWxlJiZuLl9tb2R1bGUuc2VsZWN0UG9pbnRzJiYoInNjYXR0ZXIiPT09bi50eXBlfHwic2NhdHRlcnRlcm5hcnkiPT09bi50eXBlPyh1Lmhhc01hcmtlcnMobil8fHUuaGFzVGV4dChuKSkmJihlPSEwKTplPSEwKX1yZXR1cm4gZX1mdW5jdGlvbiBhKHQsZSl7aWYoZS5sZW5ndGgpaWYoQXJyYXkuaXNBcnJheShlWzBdKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0LnB1c2goZVtyXSk7ZWxzZSB0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24gcyh0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKylmb3IodmFyIHI9dFtlXSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aWYoInN0cmluZyI9PXR5cGVvZiBpKXtpZih2b2lkIDA9PT1oW2ldKXRocm93IG5ldyBFcnJvcihbIiptb2RlQmFyQnV0dG9ucyogY29uZmlndXJhdGlvbiBvcHRpb25zIiwiaW52YWxpZCBidXR0b24gbmFtZSJdLmpvaW4oIiAiKSk7dFtlXVtuXT1oW2ldfX1yZXR1cm4gdH12YXIgbD10KCIuLi8uLi9wbG90bHkiKSx1PXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIiksYz10KCIuLyIpLGg9dCgiLi9idXR0b25zIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9jb250ZXh0LGk9ZS5fbW9kZUJhcjtpZighci5kaXNwbGF5TW9kZUJhcilyZXR1cm4gdm9pZChpJiYoaS5kZXN0cm95KCksZGVsZXRlIGUuX21vZGVCYXIpKTtpZighQXJyYXkuaXNBcnJheShyLm1vZGVCYXJCdXR0b25zVG9SZW1vdmUpKXRocm93IG5ldyBFcnJvcihbIiptb2RlQmFyQnV0dG9uc1RvUmVtb3ZlKiBjb25maWd1cmF0aW9uIG9wdGlvbnMiLCJtdXN0IGJlIGFuIGFycmF5LiJdLmpvaW4oIiAiKSk7aWYoIUFycmF5LmlzQXJyYXkoci5tb2RlQmFyQnV0dG9uc1RvQWRkKSl0aHJvdyBuZXcgRXJyb3IoWyIqbW9kZUJhckJ1dHRvbnNUb0FkZCogY29uZmlndXJhdGlvbiBvcHRpb25zIiwibXVzdCBiZSBhbiBhcnJheS4iXS5qb2luKCIgIikpO3ZhciBvLGE9ci5tb2RlQmFyQnV0dG9ucztvPUFycmF5LmlzQXJyYXkoYSkmJmEubGVuZ3RoP3MoYSk6bih0LHIubW9kZUJhckJ1dHRvbnNUb1JlbW92ZSxyLm1vZGVCYXJCdXR0b25zVG9BZGQpLGk/aS51cGRhdGUodCxvKTplLl9tb2RlQmFyPWModCxvKX19LHsiLi4vLi4vcGxvdGx5Ijo2MTIsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjo3OTIsIi4vIjo1NTIsIi4vYnV0dG9ucyI6NTUxfV0sNTU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vY29sb3IvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT10KCIuL2J1dHRvbl9hdHRyaWJ1dGVzIik7YT1vKGEse19pc0xpbmtlZFRvQXJyYXk6ITB9KSxlLmV4cG9ydHM9e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxidXR0b25zOmEseDp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjN9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0In0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjN9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJ0b3AiLCJtaWRkbGUiLCJib3R0b20iXSxkZmx0OiJib3R0b20ifSxmb250Om8oe30sbix7fSksYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5saWdodExpbmV9LGFjdGl2ZWNvbG9yOnt2YWxUeXBlOiJjb2xvciJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lfSxib3JkZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjB9fX0seyIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6NjMzLCIuLi9jb2xvci9hdHRyaWJ1dGVzIjo1MDUsIi4vYnV0dG9uX2F0dHJpYnV0ZXMiOjU1NX1dLDU1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3N0ZXA6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm1vbnRoIiwieWVhciIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJhbGwiXSxkZmx0OiJtb250aCJ9LHN0ZXBtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJiYWNrd2FyZCIsInRvZGF0ZSJdLGRmbHQ6ImJhY2t3YXJkIn0sY291bnQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxsYWJlbDp7dmFsVHlwZToic3RyaW5nIn19fSx7fV0sNTU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17eVBhZDouMDIsbWluQnV0dG9uV2lkdGg6MzAscng6MyxyeTozLGxpZ2h0QW1vdW50OjI1LGRhcmtBbW91bnQ6MTB9fSx7fV0sNTU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmdW5jdGlvbiByKHQsZSl7cmV0dXJuIG8uY29lcmNlKG4saSxsLHQsZSl9Zm9yKHZhciBuLGksYT10LmJ1dHRvbnN8fFtdLHM9ZS5idXR0b25zPVtdLHU9MDt1PGEubGVuZ3RoO3UrKylpZihuPWFbdV0saT17fSxvLmlzUGxhaW5PYmplY3Qobikpe3ZhciBjPXIoInN0ZXAiKTsiYWxsIiE9PWMmJihyKCJzdGVwbW9kZSIpLHIoImNvdW50IikpLHIoImxhYmVsIiksaS5faW5kZXg9dSxzLnB1c2goaSl9cmV0dXJuIHN9ZnVuY3Rpb24gaSh0LGUscil7Zm9yKHZhciBuPXIuZmlsdGVyKGZ1bmN0aW9uKHIpe3JldHVybiBlW3JdLmFuY2hvcj09PXQuX2lkfSksaT0wLG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIGE9ZVtuW29dXS5kb21haW47YSYmKGk9TWF0aC5tYXgoYVsxXSxpKSl9cmV0dXJuW3QuZG9tYWluWzBdLGkrdS55UGFkXX12YXIgbz10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2NvbG9yIikscz10KCIuL2F0dHJpYnV0ZXMiKSxsPXQoIi4vYnV0dG9uX2F0dHJpYnV0ZXMiKSx1PXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGModCxlKXtyZXR1cm4gby5jb2VyY2UoaCxmLHMsdCxlKX12YXIgaD10LnJhbmdlc2VsZWN0b3J8fHt9LGY9ZS5yYW5nZXNlbGVjdG9yPXt9LHA9bihoLGYpLGQ9YygidmlzaWJsZSIscC5sZW5ndGg+MCk7aWYoZCl7dmFyIG09aShlLHIsbCk7YygieCIsbVswXSksYygieSIsbVsxXSksby5ub25lT3JBbGwodCxlLFsieCIsInkiXSksYygieGFuY2hvciIpLGMoInlhbmNob3IiKSxvLmNvZXJjZUZvbnQoYywiZm9udCIsci5mb250KTt2YXIgZz1jKCJiZ2NvbG9yIik7YygiYWN0aXZlY29sb3IiLGEuY29udHJhc3QoZyx1LmxpZ2h0QW1vdW50LHUuZGFya0Ftb3VudCkpLGMoImJvcmRlcmNvbG9yIiksYygiYm9yZGVyd2lkdGgiKX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi9jb2xvciI6NTA2LCIuL2F0dHJpYnV0ZXMiOjU1NCwiLi9idXR0b25fYXR0cmlidXRlcyI6NTU1LCIuL2NvbnN0YW50cyI6NTU2fV0sNTU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPXYubGlzdCh0LCJ4IiwhMCkscj1bXSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5yYW5nZXNlbGVjdG9yJiZpLnJhbmdlc2VsZWN0b3IudmlzaWJsZSYmci5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQuX2lkfWZ1bmN0aW9uIG8odCxlLHIpe2lmKCJhbGwiPT09ZS5zdGVwKXJldHVybiB0LmF1dG9yYW5nZT09PSEwO3ZhciBuPU9iamVjdC5rZXlzKHIpO3JldHVybiB0LnJhbmdlWzBdPT09cltuWzBdXSYmdC5yYW5nZVsxXT09PXJbblsxXV19ZnVuY3Rpb24gYSh0LGUscil7dmFyIG49dC5zZWxlY3RBbGwoInJlY3QiKS5kYXRhKFswXSk7bi5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoInNlbGVjdG9yLXJlY3QiLCEwKSxuLmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKSxuLmF0dHIoe3J4OmIucngscnk6Yi5yeX0pLG4uY2FsbChkLnN0cm9rZSxlLmJvcmRlcmNvbG9yKS5jYWxsKGQuZmlsbCxzKGUscikpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGUuYm9yZGVyd2lkdGgrInB4Iil9ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBlLmlzQWN0aXZlfHxlLmlzSG92ZXJlZD90LmFjdGl2ZWNvbG9yOnQuYmdjb2xvcn1mdW5jdGlvbiBsKHQsZSxyKXtmdW5jdGlvbiBuKHQpe2cuY29udmVydFRvVHNwYW5zKHQpfXZhciBpPXQuc2VsZWN0QWxsKCJ0ZXh0IikuZGF0YShbMF0pO2kuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKCJzZWxlY3Rvci10ZXh0IiwhMCkuY2xhc3NlZCgidXNlci1zZWxlY3Qtbm9uZSIsITApLGkuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKSxpLmNhbGwobS5mb250LGUuZm9udCkudGV4dCh1KHIpKS5jYWxsKG4pfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHQubGFiZWw/dC5sYWJlbDoiYWxsIj09PXQuc3RlcD8iYWxsIjp0LmNvdW50K3Quc3RlcC5jaGFyQXQoMCl9ZnVuY3Rpb24gYyh0LGUscixuKXtyLndpZHRoPTAsci5oZWlnaHQ9MDt2YXIgaT1yLmJvcmRlcndpZHRoO2UuZWFjaChmdW5jdGlvbigpe3ZhciB0PWguc2VsZWN0KHRoaXMpLGU9dC5zZWxlY3QoIi5zZWxlY3Rvci10ZXh0Iiksbj1lLnNlbGVjdEFsbCgidHNwYW4iKSxpPTEuMypyLmZvbnQuc2l6ZSxvPW5bMF0ubGVuZ3RofHwxLGE9TWF0aC5tYXgoaSpvLDE2KSszO3IuaGVpZ2h0PU1hdGgubWF4KHIuaGVpZ2h0LGEpfSksZS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9aC5zZWxlY3QodGhpcyksZT10LnNlbGVjdCgiLnNlbGVjdG9yLXJlY3QiKSxuPXQuc2VsZWN0KCIuc2VsZWN0b3ItdGV4dCIpLG89bi5zZWxlY3RBbGwoInRzcGFuIiksYT1uLm5vZGUoKSYmbS5iQm94KG4ubm9kZSgpKS53aWR0aCxzPTEuMypyLmZvbnQuc2l6ZSxsPW9bMF0ubGVuZ3RofHwxLHU9TWF0aC5tYXgoYSsxMCxiLm1pbkJ1dHRvbldpZHRoKTt0LmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiKyhpK3Iud2lkdGgpKyIsIitpKyIpIiksZS5hdHRyKHt4OjAseTowLHdpZHRoOnUsaGVpZ2h0OnIuaGVpZ2h0fSk7dmFyIGM9e3g6dS8yLHk6ci5oZWlnaHQvMi0obC0xKSpzLzIrM307bi5hdHRyKGMpLG8uYXR0cihjKSxyLndpZHRoKz11KzV9KSxlLnNlbGVjdEFsbCgicmVjdCIpLmF0dHIoImhlaWdodCIsci5oZWlnaHQpO3ZhciBvPXQuX2Z1bGxMYXlvdXQuX3NpemU7ci5seD1vLmwrby53KnIueCxyLmx5PW8udCtvLmgqKDEtci55KTt2YXIgYT0ibGVmdCI7eS5pc1JpZ2h0QW5jaG9yKHIpJiYoci5seC09ci53aWR0aCxhPSJyaWdodCIpLHkuaXNDZW50ZXJBbmNob3IocikmJihyLmx4LT1yLndpZHRoLzIsYT0iY2VudGVyIik7dmFyIHM9InRvcCI7eS5pc0JvdHRvbUFuY2hvcihyKSYmKHIubHktPXIuaGVpZ2h0LHM9ImJvdHRvbSIpLHkuaXNNaWRkbGVBbmNob3IocikmJihyLmx5LT1yLmhlaWdodC8yLHM9Im1pZGRsZSIpLHIud2lkdGg9TWF0aC5jZWlsKHIud2lkdGgpLHIuaGVpZ2h0PU1hdGguY2VpbChyLmhlaWdodCksci5seD1NYXRoLnJvdW5kKHIubHgpLHIubHk9TWF0aC5yb3VuZChyLmx5KSxwLmF1dG9NYXJnaW4odCxuKyItcmFuZ2Utc2VsZWN0b3IiLHt4OnIueCx5OnIueSxsOnIud2lkdGgqKHtyaWdodDoxLGNlbnRlcjouNX1bYV18fDApLHI6ci53aWR0aCooe2xlZnQ6MSxjZW50ZXI6LjV9W2FdfHwwKSxiOnIuaGVpZ2h0Kih7dG9wOjEsbWlkZGxlOi41fVtzXXx8MCksdDpyLmhlaWdodCooe2JvdHRvbToxLG1pZGRsZTouNX1bc118fDApfSl9dmFyIGg9dCgiZDMiKSxmPXQoIi4uLy4uL3Bsb3RseSIpLHA9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxkPXQoIi4uL2NvbG9yIiksbT10KCIuLi9kcmF3aW5nIiksZz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx2PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLHk9dCgiLi4vbGVnZW5kL2FuY2hvcl91dGlscyIpLGI9dCgiLi9jb25zdGFudHMiKSx4PXQoIi4vZ2V0X3VwZGF0ZV9vYmplY3QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWUuX2luZm9sYXllci5zZWxlY3RBbGwoIi5yYW5nZXNlbGVjdG9yIikuZGF0YShuKHQpLGkpO3IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJyYW5nZXNlbGVjdG9yIiwhMCksci5leGl0KCkucmVtb3ZlKCksci5zdHlsZSh7Y3Vyc29yOiJwb2ludGVyIiwicG9pbnRlci1ldmVudHMiOiJhbGwifSksci5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWguc2VsZWN0KHRoaXMpLG49ZSxpPW4ucmFuZ2VzZWxlY3RvcixzPXIuc2VsZWN0QWxsKCJnLmJ1dHRvbiIpLmRhdGEoaS5idXR0b25zKTtzLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYnV0dG9uIiwhMCkscy5leGl0KCkucmVtb3ZlKCkscy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWguc2VsZWN0KHRoaXMpLHM9eChuLGUpO2UuaXNBY3RpdmU9byhuLGUscyksci5jYWxsKGEsaSxlKSxyLmNhbGwobCxpLGUpLHIub24oImNsaWNrIixmdW5jdGlvbigpe3QuX2RyYWdnZWR8fGYucmVsYXlvdXQodCxzKX0pLHIub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtlLmlzSG92ZXJlZD0hMCxyLmNhbGwoYSxpLGUpfSksci5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7ZS5pc0hvdmVyZWQ9ITEsci5jYWxsKGEsaSxlKX0pfSksYyh0LHMsaSxuLl9uYW1lKSxyLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2kubHgrIiwiK2kubHkrIikiKX0pfX0seyIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjYwNCwiLi4vLi4vcGxvdGx5Ijo2MTIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6NjE3LCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuLi9jb2xvciI6NTA2LCIuLi9kcmF3aW5nIjo1MjksIi4uL2xlZ2VuZC9hbmNob3JfdXRpbHMiOjU0MiwiLi9jb25zdGFudHMiOjU1NiwiLi9nZXRfdXBkYXRlX29iamVjdCI6NTU5LGQzOjEyNH1dLDU1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHIsbj10LnJhbmdlLG89bmV3IERhdGUoblsxXSksYT1lLnN0ZXAscz1lLmNvdW50O3N3aXRjaChlLnN0ZXBtb2RlKXtjYXNlImJhY2t3YXJkIjpyPWkudGltZVthXS5vZmZzZXQobywtcykuZ2V0VGltZSgpO2JyZWFrO2Nhc2UidG9kYXRlIjp2YXIgbD1pLnRpbWVbYV0ub2Zmc2V0KG8sLShzLTEpKTtyPWkudGltZVthXS5mbG9vcihsKS5nZXRUaW1lKCl9dmFyIHU9blsxXTtyZXR1cm5bcix1XX12YXIgaT10KCJkMyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX25hbWUsaT17fTtpZigiYWxsIj09PWUuc3RlcClpW3IrIi5hdXRvcmFuZ2UiXT0hMDtlbHNle3ZhciBvPW4odCxlKTtpW3IrIi5yYW5nZVswXSJdPW9bMF0saVtyKyIucmFuZ2VbMV0iXT1vWzFdfXJldHVybiBpfX0se2QzOjEyNH1dLDU2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksci5kcmF3PXQoIi4vZHJhdyIpfSx7Ii4vYXR0cmlidXRlcyI6NTU0LCIuL2RlZmF1bHRzIjo1NTcsIi4vZHJhdyI6NTU4fV0sNTYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uYmFja2dyb3VuZH0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJpbnRlZ2VyIixkZmx0OjAsbWluOjB9LHJhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciJ9LHt2YWxUeXBlOiJudW1iZXIifV19LHRoaWNrbmVzczp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi4xNSxtaW46MCxtYXg6MX0sdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH19fSx7Ii4uL2NvbG9yL2F0dHJpYnV0ZXMiOjUwNX1dLDU2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90bHkiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIikuc3ZnLHM9dCgiLi9oZWxwZXJzIiksbD10KCIuL3JhbmdlX3Bsb3QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt2YXIgZT1wLnJhbmdlWzBdLHI9cC5yYW5nZVsxXSxuPXItZSxpPXQvZCpuK2U7cmV0dXJuIGk9by5jb25zdHJhaW4oaSxlLHIpfWZ1bmN0aW9uIHIodCxlKXt0PXR8fC0oMS8wKSxlPWV8fDEvMDt2YXIgcj1wLnJhbmdlWzBdLG49cC5yYW5nZVsxXSxpPW4tcixvPSh0LXIpL2kqZCxhPShlLXIpL2kqZDtjKG8sYSl9ZnVuY3Rpb24gdShlLHIpe3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe24ucmVsYXlvdXQodCwieGF4aXMucmFuZ2UiLFtlLHJdKX0pOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJlbGF5b3V0KHQsInhheGlzLnJhbmdlIixbZSxyXSl9LDE2KX1mdW5jdGlvbiBjKHQsZSl7aWYodD1vLmNvbnN0cmFpbih0LDAsZCksZT1vLmNvbnN0cmFpbihlLDAsZCksdD5lKXt2YXIgcj1lO2U9dCx0PXJ9cy5zZXRBdHRyaWJ1dGVzKHcseyJkYXRhLW1pbiI6dCwiZGF0YS1tYXgiOmV9KSxzLnNldEF0dHJpYnV0ZXMoQyx7eDp0LHdpZHRoOmUtdH0pLHMuc2V0QXR0cmlidXRlcyhBLHt3aWR0aDp0fSkscy5zZXRBdHRyaWJ1dGVzKFQse3g6ZSx3aWR0aDpkLWV9KSxzLnNldEF0dHJpYnV0ZXMoRSx7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIisodC1nLTEpKyIpIn0pLHMuc2V0QXR0cmlidXRlcyh6LHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK2UrIikifSl9dmFyIGg9dC5fZnVsbExheW91dCxmPWguX2luZm9sYXllci5zZWxlY3RBbGwoImcucmFuZ2Utc2xpZGVyIikscD1oLnhheGlzLnJhbmdlc2xpZGVyLGQ9aC5fc2l6ZS53LG09KGguaGVpZ2h0LWgubWFyZ2luLmItaC5tYXJnaW4udCkqcC50aGlja25lc3MsZz0yLHY9TWF0aC5mbG9vcihwLmJvcmRlcndpZHRoLzIpLHk9aC5tYXJnaW4ubCxiPWguaGVpZ2h0LW0taC5tYXJnaW4uYix4PTAsXz1kLHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGEsImciKTtzLnNldEF0dHJpYnV0ZXModyx7ImNsYXNzIjoicmFuZ2Utc2xpZGVyIiwiZGF0YS1taW4iOngsImRhdGEtbWF4IjpfLCJwb2ludGVyLWV2ZW50cyI6ImFsbCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoIit5KyIsIitiKyIpIgp9KTt2YXIgTT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYSwicmVjdCIpLGs9cC5ib3JkZXJ3aWR0aCUyPT09MD9wLmJvcmRlcndpZHRoOnAuYm9yZGVyd2lkdGgtMTtzLnNldEF0dHJpYnV0ZXMoTSx7ZmlsbDpwLmJnY29sb3Isc3Ryb2tlOnAuYm9yZGVyY29sb3IsInN0cm9rZS13aWR0aCI6cC5ib3JkZXJ3aWR0aCxoZWlnaHQ6bStrLHdpZHRoOmQrayx0cmFuc2Zvcm06InRyYW5zbGF0ZSgtIit2KyIsIC0iK3YrIikiLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pO3ZhciBBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhhLCJyZWN0Iik7cy5zZXRBdHRyaWJ1dGVzKEEse3g6MCx3aWR0aDp4LGhlaWdodDptLGZpbGw6InJnYmEoMCwwLDAsMC40KSJ9KTt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYSwicmVjdCIpO3Muc2V0QXR0cmlidXRlcyhULHt4Ol8sd2lkdGg6ZC1fLGhlaWdodDptLGZpbGw6InJnYmEoMCwwLDAsMC40KSJ9KTt2YXIgRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYSwiZyIpLFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGEsInJlY3QiKSxMPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhhLCJyZWN0Iik7cy5zZXRBdHRyaWJ1dGVzKEUse3RyYW5zZm9ybToidHJhbnNsYXRlKCIrKHgtZy0xKSsiKSJ9KSxzLnNldEF0dHJpYnV0ZXMoUyx7d2lkdGg6MTAsaGVpZ2h0Om0seDotNixmaWxsOiJ0cmFuc3BhcmVudCIsY3Vyc29yOiJjb2wtcmVzaXplIn0pLHMuc2V0QXR0cmlidXRlcyhMLHt3aWR0aDpnLGhlaWdodDptLzIseTptLzQscng6MSxmaWxsOiJ3aGl0ZSIsc3Ryb2tlOiIjNjY2Iiwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KSxzLmFwcGVuZENoaWxkcmVuKEUsW0wsU10pO3ZhciB6PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhhLCJnIiksST1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYSwicmVjdCIpLFA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGEsInJlY3QiKTtzLnNldEF0dHJpYnV0ZXMoeix7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitfKyIpIn0pLHMuc2V0QXR0cmlidXRlcyhJLHt3aWR0aDoxMCxoZWlnaHQ6bSx4Oi0yLGZpbGw6InRyYW5zcGFyZW50IixjdXJzb3I6ImNvbC1yZXNpemUifSkscy5zZXRBdHRyaWJ1dGVzKFAse3dpZHRoOmcsaGVpZ2h0Om0vMix5Om0vNCxyeDoxLGZpbGw6IndoaXRlIixzdHJva2U6IiM2NjYiLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pLHMuYXBwZW5kQ2hpbGRyZW4oeixbUCxJXSk7dmFyIEM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGEsInJlY3QiKTtzLnNldEF0dHJpYnV0ZXMoQyx7eDp4LHdpZHRoOl8teCxoZWlnaHQ6bSxjdXJzb3I6ImV3LXJlc2l6ZSIsZmlsbDoidHJhbnNwYXJlbnQifSksdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHIodCl7dmFyIHIsbixoPSt0LmNsaWVudFgtbztzd2l0Y2goaSl7Y2FzZSBDOncuc3R5bGUuY3Vyc29yPSJldy1yZXNpemUiLHI9K3MraCxuPStsK2gsYyhyLG4pLHUoZShyKSxlKG4pKTticmVhaztjYXNlIFM6dy5zdHlsZS5jdXJzb3I9ImNvbC1yZXNpemUiLHI9K3MraCxuPStsLGMocixuKSx1KGUociksZShuKSk7YnJlYWs7Y2FzZSBJOncuc3R5bGUuY3Vyc29yPSJjb2wtcmVzaXplIixyPStzLG49K2wraCxjKHIsbiksdShlKHIpLGUobikpO2JyZWFrO2RlZmF1bHQ6dy5zdHlsZS5jdXJzb3I9ImV3LXJlc2l6ZSIscj1hLG49YStoLGMocixuKSx1KGUociksZShuKSl9fWZ1bmN0aW9uIG4oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsbiksdy5zdHlsZS5jdXJzb3I9ImF1dG8ifXZhciBpPXQudGFyZ2V0LG89dC5jbGllbnRYLGE9by13LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQscz13LmdldEF0dHJpYnV0ZSgiZGF0YS1taW4iKSxsPXcuZ2V0QXR0cmlidXRlKCJkYXRhLW1heCIpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHIpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixuKX0pLHAucmFuZ2V8fChwLnJhbmdlPWkuZ2V0QXV0b1JhbmdlKGgueGF4aXMpKTt2YXIgUj1sKHQsZCxtKTtzLmFwcGVuZENoaWxkcmVuKHcsW00sUixBLFQsQyxFLHpdKSxyKGgueGF4aXMucmFuZ2VbMF0saC54YXhpcy5yYW5nZVsxXSksZi5kYXRhKFswXSkuZW50ZXIoKS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4gcC5zZXRSYW5nZT1yLHd9KX19LHsiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjU3OSwiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RseSI6NjEyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuL2hlbHBlcnMiOjU2NCwiLi9yYW5nZV9wbG90Ijo1NjZ9XSw1NjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBuLmNvZXJjZShzLGwsaSx0LGUpfWlmKHRbcl0ucmFuZ2VzbGlkZXIpe3ZhciBzPW4uaXNQbGFpbk9iamVjdCh0W3JdLnJhbmdlc2xpZGVyKT90W3JdLnJhbmdlc2xpZGVyOnt9LGw9ZVtyXS5yYW5nZXNsaWRlcj17fTtpZihhKCJiZ2NvbG9yIiksYSgiYm9yZGVyY29sb3IiKSxhKCJib3JkZXJ3aWR0aCIpLGEoInRoaWNrbmVzcyIpLGEoInZpc2libGUiKSxhKCJyYW5nZSIpLGwucmFuZ2UmJiFlW3JdLmF1dG9yYW5nZSl7dmFyIHU9bC5yYW5nZSxjPWVbcl0ucmFuZ2U7dVswXT1NYXRoLm1pbih1WzBdLGNbMF0pLHVbMV09TWF0aC5tYXgodVsxXSxjWzFdKX1lbHNlIGVbcl0uX25lZWRzRXhwYW5kPSEwO2wudmlzaWJsZSYmby5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByPWVbdF18fHt9O3IuZml4ZWRyYW5nZT0hMCxlW3RdPXJ9KX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuL2F0dHJpYnV0ZXMiOjU2MX1dLDU2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnNldEF0dHJpYnV0ZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSl0LnNldEF0dHJpYnV0ZShyLGVbcl0pfSxyLmFwcGVuZENoaWxkcmVuPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXSYmdC5hcHBlbmRDaGlsZChlW3JdKX19LHt9XSw1NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtpZih0Ll9mdWxsTGF5b3V0LnhheGlzKXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5faW5mb2xheWVyLnNlbGVjdEFsbCgiZy5yYW5nZS1zbGlkZXIiKSxuPWUueGF4aXMucmFuZ2VzbGlkZXI7aWYoIW58fCFuLnZpc2libGUpcmV0dXJuIHIuZGF0YShbXSkuZXhpdCgpLnJlbW92ZSgpLHZvaWQgaS5hdXRvTWFyZ2luKHQsInJhbmdlLXNsaWRlciIpO3ZhciBhPShlLmhlaWdodC1lLm1hcmdpbi5iLWUubWFyZ2luLnQpKm4udGhpY2tuZXNzLHM9TWF0aC5mbG9vcihuLmJvcmRlcndpZHRoLzIpOzAhPT1yWzBdLmxlbmd0aHx8ZS5faGFzKCJnbDJkIil8fG8odCk7dmFyIGw9ZS54YXhpcy5fYm91bmRpbmdCb3g/ZS54YXhpcy5fYm91bmRpbmdCb3guaGVpZ2h0OjA7aS5hdXRvTWFyZ2luKHQsInJhbmdlLXNsaWRlciIse3g6MCx5OjAsbDowLHI6MCx0OjAsYjphK2UubWFyZ2luLmIrbCxwYWQ6MTUrMipzfSl9fXZhciBpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuL2NyZWF0ZV9zbGlkZXIiKSxhPXQoIi4vZGVmYXVsdHMiKTtlLmV4cG9ydHM9e2RyYXc6bixzdXBwbHlMYXlvdXREZWZhdWx0czphfX0seyIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuL2NyZWF0ZV9zbGlkZXIiOjU2MiwiLi9kZWZhdWx0cyI6NTYzfV0sNTY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9ZS5tYWtlQ2FsY2RhdGEodHx8W10sZS5faWRbMF0pLG49MDtuPHIubGVuZ3RoO24rKylyW25dPWUuYzJsKHJbbl0pO3JldHVybiByfWZ1bmN0aW9uIGkodCxlLHIsbil7dmFyIGksbyxoO2lmKHQubGluZSl7aT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYywicGF0aCIpO3ZhciBmPWwuc21vb3Rob3BlbihlLHQubGluZS5zbW9vdGhpbmd8fDApO3Uuc2V0QXR0cmlidXRlcyhpLHtkOmYsZmlsbDoibm9uZSIsc3Ryb2tlOnQubGluZT90LmxpbmUuY29sb3I6InRyYW5zcGFyZW50Iiwic3Ryb2tlLXdpZHRoIjp0LmxpbmUud2lkdGgvMnx8MSxvcGFjaXR5OjF9KX1pZih0Lm1hcmtlcil7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYywiZyIpO3ZhciBwPWUubWFwKGZ1bmN0aW9uKGUscil7dmFyIG4saT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoYywiZyIpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGMsInBhdGgiKTtyZXR1cm4gbj1BcnJheS5pc0FycmF5KHQubWFya2VyLnNpemUpPyJudW1iZXIiPT10eXBlb2YgdC5tYXJrZXIuc2l6ZVtyXT9NYXRoLm1heCh0Lm1hcmtlci5zaXplW3JdLyh0Lm1hcmtlci5zaXplcmVmfHwxKS8xNSwwKTowOk1hdGgubWF4KHQubWFya2VyLnNpemUvMTUsMiksdS5zZXRBdHRyaWJ1dGVzKG8se2Q6c1t0Lm1hcmtlci5zeW1ib2xdLmYobiksZmlsbDp0Lm1hcmtlci5jb2xvcixzdHJva2U6dC5tYXJrZXIubGluZS5jb2xvciwic3Ryb2tlLXdpZHRoIjp0Lm1hcmtlci5saW5lLndpZHRoLG9wYWNpdHk6dC5tYXJrZXIub3BhY2l0eX0pLHUuc2V0QXR0cmlidXRlcyhpLHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK2VbMF0rIiwiK2VbMV0rIikifSksaS5hcHBlbmRDaGlsZChvKSxpfSk7dS5hcHBlbmRDaGlsZHJlbihvLHApfWlmKCJub25lIiE9PXQuZmlsbCl7c3dpdGNoKGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGMsInBhdGgiKSx0LmZpbGwpe2Nhc2UidG96ZXJveSI6ZS51bnNoaWZ0KFtlWzBdWzBdLG5dKSxlLnB1c2goW2VbZS5sZW5ndGgtMV1bMF0sbl0pO2JyZWFrO2Nhc2UidG96ZXJveCI6ZS51bnNoaWZ0KFswLGVbZS5sZW5ndGgtMV1bMV1dKTticmVhaztkZWZhdWx0OmEud2FybigiRmlsbCB0eXBlICIrdC5maWxsKyIgbm90IHN1cHBvcnRlZCBmb3IgcmFuZ2Ugc2xpZGVyISAoeWV0Li4uKSIpfXZhciBkPWwuc21vb3Rob3BlbihlLHQubGluZS5zbW9vdGhpbmd8fDApO3Uuc2V0QXR0cmlidXRlcyhoLHtkOmQsZmlsbDp0LmZpbGxjb2xvcnx8InRyYW5zcGFyZW50In0pfXJldHVybltpLG8saF19dmFyIG89dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vZHJhd2luZy9zeW1ib2xfZGVmcyIpLGw9dCgiLi4vZHJhd2luZyIpLHU9dCgiLi9oZWxwZXJzIiksYz10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLnN2ZztlLmV4cG9ydHM9ZnVuY3Rpb24gaCh0LGUscil7dmFyIHM9dC5fZnVsbExheW91dCxmPXQuX2Z1bGxEYXRhLHA9cy54YXhpcyxkPXMueWF4aXMsbT1wLnJhbmdlc2xpZGVyLnJhbmdlWzBdLGc9cC5yYW5nZXNsaWRlci5yYW5nZVsxXSx2PWQucmFuZ2VbMF0seT1kLnJhbmdlWzFdLGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGMsInBhdGgiKTtiLnNldEF0dHJpYnV0ZSgiZCIsWyJNMCwwIixlKyIsMCIsZSsiLCIrciwiMCwiK3IsIloiXS5qb2luKCIgIikpO3ZhciB4PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhjLCJjbGlwUGF0aCIpO3guc2V0QXR0cmlidXRlKCJpZCIsInJhbmdlLWNsaXAtcGF0aCIpLHguYXBwZW5kQ2hpbGQoYik7dmFyIF89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGMsImRlZnMiKTtfLmFwcGVuZENoaWxkKHgpO3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhjLCJnIik7by5zZWxlY3QoaCkuY2FsbChsLnNldENsaXBVcmwsInJhbmdlLWNsaXAtcGF0aCIpLGguYXBwZW5kQ2hpbGQoXyk7Zm9yKHZhciB3PVsic2NhdHRlciJdLE09MDtNPGYubGVuZ3RoO00rKyl7dmFyIGs9ZltNXSxBPVtdO2lmKHcuaW5kZXhPZihrLnR5cGUpPDApYS53YXJuKCJUcmFjZSB0eXBlICIray50eXBlKyIgbm90IHN1cHBvcnRlZCBmb3IgcmFuZ2Ugc2xpZGVyISIpO2Vsc2V7Zm9yKHZhciBUPW4oayxwKSxFPW4oayxkKSxTPTA7UzxULmxlbmd0aDtTKyspe3ZhciBMPWUqKFRbU10tbSkvKGctbSksej1yKigxLShFW1NdLXYpLyh5LXYpKTtpc05hTihMKXx8aXNOYU4oeil8fEEucHVzaChbTCx6XSl9dS5hcHBlbmRDaGlsZHJlbihoLGkoayxBLGUscikpfX1yZXR1cm4gaH19LHsiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjU3OSwiLi4vLi4vbGliIjo1OTEsIi4uL2RyYXdpbmciOjUyOSwiLi4vZHJhd2luZy9zeW1ib2xfZGVmcyI6NTMwLCIuL2hlbHBlcnMiOjU2NCxkMzoxMjR9XSw1Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYW5ub3RhdGlvbnMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT1pLmxpbmU7ZS5leHBvcnRzPXtfaXNMaW5rZWRUb0FycmF5OiEwLHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNpcmNsZSIsInJlY3QiLCJwYXRoIiwibGluZSJdfSxsYXllcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYmVsb3ciLCJhYm92ZSJdLGRmbHQ6ImFib3ZlIn0seHJlZjpvKHt9LG4ueHJlZix7fSkseDA6e3ZhbFR5cGU6ImFueSJ9LHgxOnt2YWxUeXBlOiJhbnkifSx5cmVmOm8oe30sbi55cmVmLHt9KSx5MDp7dmFsVHlwZToiYW55In0seTE6e3ZhbFR5cGU6ImFueSJ9LHBhdGg6e3ZhbFR5cGU6InN0cmluZyJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxsaW5lOntjb2xvcjphLmNvbG9yLHdpZHRoOmEud2lkdGgsZGFzaDphLmRhc2h9LGZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkifX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NTg2LCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIjo3NzMsIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiOjUwM31dLDU2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gcihlLHIpe3JldHVybiBrLmNvZXJjZSh0LG4sei5sYXlvdXRBdHRyaWJ1dGVzLGUscil9dmFyIG49e307cigibGF5ZXIiKSxyKCJvcGFjaXR5IikscigiZmlsbGNvbG9yIikscigibGluZS5jb2xvciIpLHIoImxpbmUud2lkdGgiKSxyKCJsaW5lLmRhc2giKTtmb3IodmFyIGk9dC5wYXRoPyJwYXRoIjoicmVjdCIsYT1yKCJ0eXBlIixpKSxzPVsieCIsInkiXSxsPTA7Mj5sO2wrKyl7dmFyIHU9c1tsXSxjPXtfZnVsbExheW91dDplfSxoPUEuY29lcmNlUmVmKHQsbixjLHUpO2lmKCJwYXRoIiE9PWEpe3ZhciBmPS4yNSxwPS43NTtpZigicGFwZXIiIT09aCl7dmFyIGQ9QS5nZXRGcm9tSWQoYyxoKSxtPW8oZCk7Zj1tKGQucmFuZ2VbMF0rZiooZC5yYW5nZVsxXS1kLnJhbmdlWzBdKSkscD1tKGQucmFuZ2VbMF0rcCooZC5yYW5nZVsxXS1kLnJhbmdlWzBdKSl9cih1KyIwIixmKSxyKHUrIjEiLHApfX1yZXR1cm4icGF0aCI9PT1hP3IoInBhdGgiKTprLm5vbmVPckFsbCh0LG4sWyJ4MCIsIngxIiwieTAiLCJ5MSJdKSxufWZ1bmN0aW9uIGkodCl7cmV0dXJuImNhdGVnb3J5Ij09PXQudHlwZT90LmMybDp0LmQybH1mdW5jdGlvbiBvKHQpe3JldHVybiJjYXRlZ29yeSI9PT10LnR5cGU/dC5sMmM6dC5sMmR9ZnVuY3Rpb24gYSh0LGUpe3QubGF5b3V0LnNoYXBlcz1lLHouc3VwcGx5TGF5b3V0RGVmYXVsdHModC5sYXlvdXQsdC5fZnVsbExheW91dCksei5kcmF3QWxsKHQpfWZ1bmN0aW9uIHModCl7ZGVsZXRlIHQubGF5b3V0LnNoYXBlcyx0Ll9mdWxsTGF5b3V0LnNoYXBlcz1bXSx6LmRyYXdBbGwodCl9ZnVuY3Rpb24gbCh0LGUscil7Zm9yKHZhciBuPTA7bjx0Ll9mdWxsTGF5b3V0LnNoYXBlcy5sZW5ndGg7bisrKXouZHJhdyh0LG4sZSxyKX1mdW5jdGlvbiB1KHQsZSl7cCh0LGUpLnNlbGVjdEFsbCgnW2RhdGEtaW5kZXg9IicrZSsnIl0nKS5yZW1vdmUoKSx0Ll9mdWxsTGF5b3V0LnNoYXBlcy5zcGxpY2UoZSwxKSx0LmxheW91dC5zaGFwZXMuc3BsaWNlKGUsMSk7Zm9yKHZhciByPWU7cjx0Ll9mdWxsTGF5b3V0LnNoYXBlcy5sZW5ndGg7cisrKXAodCxyKS5zZWxlY3RBbGwoJ1tkYXRhLWluZGV4PSInKyhyKzEpKyciXScpLmF0dHIoImRhdGEtaW5kZXgiLHIpLHouZHJhdyh0LHIpfWZ1bmN0aW9uIGModCxlLHIpe3QuX2Z1bGxMYXlvdXQuc2hhcGVzLnNwbGljZShlLDAse30pO3ZhciBuPWsuaXNQbGFpbk9iamVjdChyKT9rLmV4dGVuZEZsYXQoe30scik6e3RleHQ6Ik5ldyB0ZXh0In07dC5sYXlvdXQuc2hhcGVzP3QubGF5b3V0LnNoYXBlcy5zcGxpY2UoZSwwLG4pOnQubGF5b3V0LnNoYXBlcz1bbl07Zm9yKHZhciBpPXQuX2Z1bGxMYXlvdXQuc2hhcGVzLmxlbmd0aC0xO2k+ZTtpLS0pcCh0LGkpLnNlbGVjdEFsbCgnW2RhdGEtaW5kZXg9IicrKGktMSkrJyJdJykuYXR0cigiZGF0YS1pbmRleCIsaSksei5kcmF3KHQsaSl9ZnVuY3Rpb24gaCh0LGUscixhKXtmdW5jdGlvbiBzKHIpe3ZhciBuPXsiZGF0YS1pbmRleCI6ZSwiZmlsbC1ydWxlIjoiZXZlbm9kZCIsZDpiKHQseil9LGk9ei5saW5lLndpZHRoP3oubGluZS5jb2xvcjoicmdiYSgwLDAsMCwwKSIsbz1yLmFwcGVuZCgicGF0aCIpLmF0dHIobikuc3R5bGUoIm9wYWNpdHkiLHoub3BhY2l0eSkuY2FsbChULnN0cm9rZSxpKS5jYWxsKFQuZmlsbCx6LmZpbGxjb2xvcikuY2FsbChFLmRhc2hMaW5lLHoubGluZS5kYXNoLHoubGluZS53aWR0aCk7SSYmby5jYWxsKEUuc2V0Q2xpcFVybCwiY2xpcCIrdC5fZnVsbExheW91dC5fdWlkK0kpLHQuX2NvbnRleHQuZWRpdGFibGUmJmYodCxvLHosZSl9dmFyIGwsdTtwKHQsZSkuc2VsZWN0QWxsKCdbZGF0YS1pbmRleD0iJytlKyciXScpLnJlbW92ZSgpO3ZhciBjPXQubGF5b3V0LnNoYXBlc1tlXTtpZihjKXt2YXIgaD17eHJlZjpjLnhyZWYseXJlZjpjLnlyZWZ9LG09e307InN0cmluZyI9PXR5cGVvZiByJiZyP21bcl09YTprLmlzUGxhaW5PYmplY3QocikmJihtPXIpO3ZhciBnPU9iamVjdC5rZXlzKG0pO2ZvcihsPTA7bDxnLmxlbmd0aDtsKyspe3ZhciB2PWdbbF07ay5uZXN0ZWRQcm9wZXJ0eShjLHYpLnNldChtW3ZdKX12YXIgeT1bIngwIiwieDEiLCJ5MCIsInkxIl07Zm9yKGw9MDs0Pmw7bCsrKXt2YXIgeD15W2xdO2lmKHZvaWQgMD09PW1beF0mJnZvaWQgMCE9PWNbeF0pe3ZhciBfLHc9eC5jaGFyQXQoMCksTT1BLmdldEZyb21JZCh0LEEuY29lcmNlUmVmKGgse30sdCx3KSksUz1BLmdldEZyb21JZCh0LEEuY29lcmNlUmVmKGMse30sdCx3KSksTD1jW3hdO3ZvaWQgMCE9PW1bdysicmVmIl0mJihNPyhfPWkoTSkoTCksTD0oXy1NLnJhbmdlWzBdKS8oTS5yYW5nZVsxXS1NLnJhbmdlWzBdKSk6TD0oTC1TLmRvbWFpblswXSkvKFMuZG9tYWluWzFdLVMuZG9tYWluWzBdKSxTPyhfPVMucmFuZ2VbMF0rTCooUy5yYW5nZVsxXS1TLnJhbmdlWzBdKSxMPW8oUykoXykpOkw9TS5kb21haW5bMF0rTCooTS5kb21haW5bMV0tTS5kb21haW5bMF0pKSxjW3hdPUx9fXZhciB6PW4oYyx0Ll9mdWxsTGF5b3V0KTt0Ll9mdWxsTGF5b3V0LnNoYXBlc1tlXT16O3ZhciBJO2lmKCJiZWxvdyIhPT16LmxheWVyKUk9KHoueHJlZit6LnlyZWYpLnJlcGxhY2UoL3BhcGVyL2csIiIpLHModC5fZnVsbExheW91dC5fc2hhcGVVcHBlckxheWVyKTtlbHNlIGlmKCJwYXBlciI9PT16LnhyZWYmJiJwYXBlciI9PT16LnlyZWYpST0iIixzKHQuX2Z1bGxMYXlvdXQuX3NoYXBlTG93ZXJMYXllcik7ZWxzZXt2YXIgUCxDPXQuX2Z1bGxMYXlvdXQuX3Bsb3RzfHx7fSxSPU9iamVjdC5rZXlzKEMpO2ZvcihsPTAsdT1SLmxlbmd0aDt1Pmw7bCsrKVA9Q1tSW2xdXSxJPVJbbF0sZCh0LHosUCkmJnMoUC5zaGFwZWxheWVyKX19fWZ1bmN0aW9uIGYodCxlLHIsbil7ZnVuY3Rpb24gaSh0KXt2YXIgcj1LLnJpZ2h0LUsubGVmdCxuPUsuYm90dG9tLUsudG9wLGk9dC5jbGllbnRYLUsubGVmdCxvPXQuY2xpZW50WS1LLnRvcCxhPXI+VyYmbj5aJiYhdC5zaGlmdEtleT9TLmdldEN1cnNvcihpL3IsMS1vL24pOiJtb3ZlIjtMKGUsYSksWT1hLnNwbGl0KCItIilbMF19ZnVuY3Rpb24gbyhlKXtVPUEuZ2V0RnJvbUlkKHQsci54cmVmKSxWPUEuZ2V0RnJvbUlkKHQsci55cmVmKSxxPXYodCxVKSxHPXYodCxWLCEwKSxIPXkodCxVKSxYPXkodCxWLCEwKTt2YXIgbz0ic2hhcGVzWyIrbisiXSI7InBhdGgiPT09ci50eXBlPyhOPXIucGF0aCxCPW8rIi5wYXRoIik6KGM9cShyLngwKSxoPUcoci55MCksZj1xKHIueDEpLHA9RyhyLnkxKSxkPW8rIi54MCIsbT1vKyIueTAiLF89bysiLngxIix3PW8rIi55MSIpLGY+Yz8oRT1jLEM9bysiLngwIixPPSJ4MCIsej1mLFI9bysiLngxIixGPSJ4MSIpOihFPWYsQz1vKyIueDEiLE89IngxIix6PWMsUj1vKyIueDAiLEY9IngwIikscD5oPyhrPWgsST1vKyIueTAiLGo9InkwIixUPXAsUD1vKyIueTEiLEQ9InkxIik6KGs9cCxJPW8rIi55MSIsaj0ieTEiLFQ9aCxQPW8rIi55MCIsRD0ieTAiKSx1PXt9LGkoZSksUS5tb3ZlRm49Im1vdmUiPT09WT9zOmx9ZnVuY3Rpb24gYShyKXtMKGUpLHImJk0ucmVsYXlvdXQodCx1KX1mdW5jdGlvbiBzKG4saSl7aWYoInBhdGgiPT09ci50eXBlKXt2YXIgbz1mdW5jdGlvbih0KXtyZXR1cm4gSChxKHQpK24pfTtVJiYiZGF0ZSI9PT1VLnR5cGUmJihvPWcobykpO3ZhciBhPWZ1bmN0aW9uKHQpe3JldHVybiBYKEcodCkraSl9O1YmJiJkYXRlIj09PVYudHlwZSYmKGE9ZyhhKSksci5wYXRoPXgoTixvLGEpLHVbQl09ci5wYXRofWVsc2UgdVtkXT1yLngwPUgoYytuKSx1W21dPXIueTA9WChoK2kpLHVbX109ci54MT1IKGYrbiksdVt3XT1yLnkxPVgocCtpKTtlLmF0dHIoImQiLGIodCxyKSl9ZnVuY3Rpb24gbChuLGkpe2lmKCJwYXRoIj09PXIudHlwZSl7dmFyIG89ZnVuY3Rpb24odCl7cmV0dXJuIEgocSh0KStuKX07VSYmImRhdGUiPT09VS50eXBlJiYobz1nKG8pKTt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4gWChHKHQpK2kpfTtWJiYiZGF0ZSI9PT1WLnR5cGUmJihhPWcoYSkpLHIucGF0aD14KE4sbyxhKSx1W0JdPXIucGF0aH1lbHNle3ZhciBzPX5ZLmluZGV4T2YoIm4iKT9rK2k6ayxsPX5ZLmluZGV4T2YoInMiKT9UK2k6VCxjPX5ZLmluZGV4T2YoInciKT9FK246RSxoPX5ZLmluZGV4T2YoImUiKT96K246ejtsLXM+WiYmKHVbSV09cltqXT1YKHMpLHVbUF09cltEXT1YKGwpKSxoLWM+VyYmKHVbQ109cltPXT1IKGMpLHVbUl09cltGXT1IKGgpKX1lLmF0dHIoImQiLGIodCxyKSl9dmFyIHUsYyxoLGYscCxkLG0sXyx3LGssVCxFLHosSSxQLEMsUixqLEQsTyxGLE4sQixVLFYscSxHLEgsWCxZLFc9MTAsWj0xMCxRPXtzZXRDdXJzb3I6aSxlbGVtZW50OmUubm9kZSgpLHByZXBGbjpvLGRvbmVGbjphfSxLPVEuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtTLmluaXQoUSl9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQuc2hhcGVzW2VdLG49dC5fZnVsbExheW91dC5fc2hhcGVVcHBlckxheWVyO3JldHVybiByPyJiZWxvdyI9PT1yLmxheWVyJiYobj0icGFwZXIiPT09ci54cmVmJiYicGFwZXIiPT09ci55cmVmP3QuX2Z1bGxMYXlvdXQuX3NoYXBlTG93ZXJMYXllcjp0Ll9mdWxsTGF5b3V0Ll9zaGFwZVN1YnBsb3RMYXllcik6ay5sb2coImdldFNoYXBlTGF5ZXI6IHVuZGVmaW5lZCBzaGFwZTogaW5kZXgiLGUpLG59ZnVuY3Rpb24gZCh0LGUscil7dmFyIG49TS5BeGVzLmdldEZyb21JZCh0LHIuaWQsIngiKS5faWQsaT1NLkF4ZXMuZ2V0RnJvbUlkKHQsci5pZCwieSIpLl9pZCxvPSJiZWxvdyI9PT1lLmxheWVyLGE9bj09PWUueHJlZnx8aT09PWUueXJlZixzPSEhci5zaGFwZWxheWVyO3JldHVybiBvJiZhJiZzfWZ1bmN0aW9uIG0odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UmJihlPWUucmVwbGFjZSgiXyIsIiAiKSksdChlKX19ZnVuY3Rpb24gZyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkucmVwbGFjZSgiICIsIl8iKX19ZnVuY3Rpb24gdih0LGUscil7dmFyIG4sbz10Ll9mdWxsTGF5b3V0Ll9zaXplO2lmKGUpe3ZhciBhPWkoZSk7bj1mdW5jdGlvbih0KXtyZXR1cm4gZS5fb2Zmc2V0K2UubDJwKGEodCwhMCkpfSwiZGF0ZSI9PT1lLnR5cGUmJihuPW0obikpfWVsc2Ugbj1yP2Z1bmN0aW9uKHQpe3JldHVybiBvLnQrby5oKigxLXQpfTpmdW5jdGlvbih0KXtyZXR1cm4gby5sK28udyp0fTtyZXR1cm4gbn1mdW5jdGlvbiB5KHQsZSxyKXt2YXIgbixpPXQuX2Z1bGxMYXlvdXQuX3NpemU7aWYoZSl7dmFyIGE9byhlKTtuPWZ1bmN0aW9uKHQpe3JldHVybiBhKGUucDJsKHQtZS5fb2Zmc2V0KSl9fWVsc2Ugbj1yP2Z1bmN0aW9uKHQpe3JldHVybiAxLSh0LWkudCkvaS5ofTpmdW5jdGlvbih0KXtyZXR1cm4odC1pLmwpL2kud307cmV0dXJuIG59ZnVuY3Rpb24gYih0LGUpe3ZhciByLG4sbyxhLHM9ZS50eXBlLGw9QS5nZXRGcm9tSWQodCxlLnhyZWYpLHU9QS5nZXRGcm9tSWQodCxlLnlyZWYpLGM9dC5fZnVsbExheW91dC5fc2l6ZTtpZihsPyhyPWkobCksbj1mdW5jdGlvbih0KXtyZXR1cm4gbC5fb2Zmc2V0K2wubDJwKHIodCwhMCkpfSk6bj1mdW5jdGlvbih0KXtyZXR1cm4gYy5sK2Mudyp0fSx1PyhvPWkodSksYT1mdW5jdGlvbih0KXtyZXR1cm4gdS5fb2Zmc2V0K3UubDJwKG8odCwhMCkpfSk6YT1mdW5jdGlvbih0KXtyZXR1cm4gYy50K2MuaCooMS10KX0sInBhdGgiPT09cylyZXR1cm4gbCYmImRhdGUiPT09bC50eXBlJiYobj1tKG4pKSx1JiYiZGF0ZSI9PT11LnR5cGUmJihhPW0oYSkpLHouY29udmVydFBhdGgoZS5wYXRoLG4sYSk7dmFyIGg9bihlLngwKSxmPW4oZS54MSkscD1hKGUueTApLGQ9YShlLnkxKTtpZigibGluZSI9PT1zKXJldHVybiJNIitoKyIsIitwKyJMIitmKyIsIitkO2lmKCJyZWN0Ij09PXMpcmV0dXJuIk0iK2grIiwiK3ArIkgiK2YrIlYiK2QrIkgiK2grIloiO3ZhciBnPShoK2YpLzIsdj0ocCtkKS8yLHk9TWF0aC5hYnMoZy1oKSxiPU1hdGguYWJzKHYtcCkseD0iQSIreSsiLCIrYixfPWcreSsiLCIrdix3PWcrIiwiKyh2LWIpO3JldHVybiJNIitfK3grIiAwIDEsMSAiK3creCsiIDAgMCwxICIrXysiWiJ9ZnVuY3Rpb24geCh0LGUscil7cmV0dXJuIHQucmVwbGFjZShJLGZ1bmN0aW9uKHQpe3ZhciBuPTAsaT10LmNoYXJBdCgwKSxvPUNbaV0sYT1SW2ldLHM9altpXSxsPXQuc3Vic3RyKDEpLnJlcGxhY2UoUCxmdW5jdGlvbih0KXtyZXR1cm4gbj49cz90OihvW25dP3Q9ZSh0KTphW25dJiYodD1yKHQpKSxuKyssdCl9KTtyZXR1cm4gaStsfSl9ZnVuY3Rpb24gXyh0LGUscixuLGkpe3ZhciBvPSJjYXRlZ29yeSI9PT10LnR5cGU/TnVtYmVyOnQuZDJjO2lmKHZvaWQgMCE9PWUpcmV0dXJuW28oZSksbyhyKV07aWYobil7dmFyIGEscyxsLHUsYyxoPTEvMCxmPS0oMS8wKSxwPW4ubWF0Y2goSSk7Zm9yKCJkYXRlIj09PXQudHlwZSYmKG89bShvKSksYT0wO2E8cC5sZW5ndGg7YSsrKXM9cFthXSxsPWlbcy5jaGFyQXQoMCldLmRyYXduLHZvaWQgMCE9PWwmJih1PXBbYV0uc3Vic3RyKDEpLm1hdGNoKFApLCF1fHx1Lmxlbmd0aDxsfHwoYz1vKHVbbF0pLGg+YyYmKGg9YyksYz5mJiYoZj1jKSkpO3JldHVybiBmPj1oP1toLGZdOnZvaWQgMH19dmFyIHc9dCgiZmFzdC1pc251bWVyaWMiKSxNPXQoIi4uLy4uL3Bsb3RseSIpLGs9dCgiLi4vLi4vbGliIiksQT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLFQ9dCgiLi4vY29sb3IiKSxFPXQoIi4uL2RyYXdpbmciKSxTPXQoIi4uL2RyYWdlbGVtZW50IiksTD10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksej1lLmV4cG9ydHM9e307ei5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLHouc3VwcGx5TGF5b3V0RGVmYXVsdHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5zaGFwZXN8fFtdLGk9ZS5zaGFwZXM9W10sbz0wO288ci5sZW5ndGg7bysrKWkucHVzaChuKHJbb118fHt9LGUpKX0sei5kcmF3QWxsPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7ZS5fc2hhcGVVcHBlckxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpLGUuX3NoYXBlTG93ZXJMYXllci5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKSxlLl9zaGFwZVN1YnBsb3RMYXllci5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKTtmb3IodmFyIHI9MDtyPGUuc2hhcGVzLmxlbmd0aDtyKyspei5kcmF3KHQscil9LHouYWRkPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuc2hhcGVzLmxlbmd0aDtNLnJlbGF5b3V0KHQsInNoYXBlc1siK2UrIl0iLCJhZGQiKX0sei5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKCF3KGUpfHwtMT09PWUpe2lmKCFlJiZBcnJheS5pc0FycmF5KG4pKXJldHVybiB2b2lkIGEodCxuKTtpZigicmVtb3ZlIj09PW4pcmV0dXJuIHZvaWQgcyh0KTtpZihyJiYiYWRkIiE9PW4pcmV0dXJuIHZvaWQgbCh0LHIsbik7ZT10Ll9mdWxsTGF5b3V0LnNoYXBlcy5sZW5ndGgsdC5fZnVsbExheW91dC5zaGFwZXMucHVzaCh7fSl9aWYoIXImJm4pe2lmKCJyZW1vdmUiPT09bilyZXR1cm4gdm9pZCB1KHQsZSk7KCJhZGQiPT09bnx8ay5pc1BsYWluT2JqZWN0KG4pKSYmYyh0LGUsbil9aCh0LGUscixuKX07dmFyIEk9L1tNTEhWUUNUU1pdW15NTEhWUUNUU1pdKi9nLFA9L1teXHMsXSsvZyxDPXtNOnswOiEwLGRyYXduOjB9LEw6ezA6ITAsZHJhd246MH0sSDp7MDohMCxkcmF3bjowfSxWOnt9LFE6ezA6ITAsMjohMCxkcmF3bjoyfSxDOnswOiEwLDI6ITAsNDohMCxkcmF3bjo0fSxUOnswOiEwLGRyYXduOjB9LFM6ezA6ITAsMjohMCxkcmF3bjoyfSxaOnt9fSxSPXtNOnsxOiEwLGRyYXduOjF9LEw6ezE6ITAsZHJhd246MX0sSDp7fSxWOnswOiEwLGRyYXduOjB9LFE6ezE6ITAsMzohMCxkcmF3bjozfSxDOnsxOiEwLDM6ITAsNTohMCxkcmF3bjo1fSxUOnsxOiEwLGRyYXduOjF9LFM6ezE6ITAsMzohMCxkcmF3bjo1fSxaOnt9fSxqPXtNOjIsTDoyLEg6MSxWOjEsUTo0LEM6NixUOjIsUzo0LFo6MH07ei5jb252ZXJ0UGF0aD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQucmVwbGFjZShJLGZ1bmN0aW9uKHQpe3ZhciBuPTAsaT10LmNoYXJBdCgwKSxvPUNbaV0sYT1SW2ldLHM9altpXSxsPXQuc3Vic3RyKDEpLnJlcGxhY2UoUCxmdW5jdGlvbih0KXtyZXR1cm4gb1tuXT90PWUodCk6YVtuXSYmKHQ9cih0KSksbisrLG4+cyYmKHQ9IlgiKSx0fSk7cmV0dXJuIG4+cyYmKGw9bC5yZXBsYWNlKC9bXHMsXSpYLiovLCIiKSxrLmxvZygiSWdub3JpbmcgZXh0cmEgcGFyYW1zIGluIHNlZ21lbnQgIit0KSksaStsfSl9LHouY2FsY0F1dG9yYW5nZT1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxvLGE9dC5fZnVsbExheW91dCxzPWEuc2hhcGVzO2lmKHMubGVuZ3RoJiZ0Ll9mdWxsRGF0YS5sZW5ndGgpZm9yKGU9MDtlPHMubGVuZ3RoO2UrKylyPXNbZV0sbj1yLmxpbmUud2lkdGgvMiwicGFwZXIiIT09ci54cmVmJiYoaT1BLmdldEZyb21JZCh0LHIueHJlZiksbz1fKGksci54MCxyLngxLHIucGF0aCxDKSxvJiZBLmV4cGFuZChpLG8se3BwYWQ6bn0pKSwicGFwZXIiIT09ci55cmVmJiYoaT1BLmdldEZyb21JZCh0LHIueXJlZiksbz1fKGksci55MCxyLnkxLHIucGF0aCxSKSxvJiZBLmV4cGFuZChpLG8se3BwYWQ6bn0pKX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjYwMCwiLi4vLi4vcGxvdGx5Ijo2MTIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4uL2NvbG9yIjo1MDYsIi4uL2RyYWdlbGVtZW50Ijo1MjcsIi4uL2RyYXdpbmciOjUyOSwiLi9hdHRyaWJ1dGVzIjo1NjcsImZhc3QtaXNudW1lcmljIjoxMjh9XSw1Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksbz10KCIuLi8uLi9wbG90bHkiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uL2RyYXdpbmciKSx1PXQoIi4uL2NvbG9yIiksYz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPWUuZXhwb3J0cz17fTtoLmRyYXc9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGgodCl7cy5zeW5jT3JBc3luYyhbZixwXSx0KX1mdW5jdGlvbiBmKGUpe3JldHVybiBlLmF0dHIoInRyYW5zZm9ybSIsXz8icm90YXRlKCIrW18ucm90YXRlLHgueCx4LnldKyIpIHRyYW5zbGF0ZSgwLCAiK18ub2Zmc2V0KyIpIjpudWxsKSxlLnN0eWxlKHsiZm9udC1mYW1pbHkiOmssImZvbnQtc2l6ZSI6bi5yb3VuZChBLDIpKyJweCIsZmlsbDp1LnJnYihUKSxvcGFjaXR5OkUqdS5vcGFjaXR5KFQpLCJmb250LXdlaWdodCI6YS5mb250V2VpZ2h0fSkuYXR0cih4KS5jYWxsKGMuY29udmVydFRvVHNwYW5zKS5hdHRyKHgpLGUuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih4KSxhLnByZXZpb3VzUHJvbWlzZXModCl9ZnVuY3Rpb24gcCh0KXt2YXIgZT1uLnNlbGVjdCh0Lm5vZGUoKS5wYXJlbnROb2RlKTtpZihiJiZiLnNlbGVjdGlvbiYmYi5zaWRlJiZMKXtlLmF0dHIoInRyYW5zZm9ybSIsbnVsbCk7dmFyIHI9MCxvPXtsZWZ0OiJyaWdodCIscmlnaHQ6ImxlZnQiLHRvcDoiYm90dG9tIixib3R0b206InRvcCJ9W2Iuc2lkZV0sYT0tMSE9PVsibGVmdCIsInRvcCJdLmluZGV4T2YoYi5zaWRlKT8tMToxLHU9aShiLnBhZCk/Yi5wYWQ6MixjPWwuYkJveChlLm5vZGUoKSksaD17bGVmdDowLHRvcDowLHJpZ2h0Ok0ud2lkdGgsYm90dG9tOk0uaGVpZ2h0fSxmPWIubWF4U2hpZnR8fChoW2Iuc2lkZV0tY1tiLnNpZGVdKSooImxlZnQiPT09Yi5zaWRlfHwidG9wIj09PWIuc2lkZT8tMToxKTtpZigwPmY/cj1mOihjLmxlZnQtPWIub2Zmc2V0TGVmdCxjLnJpZ2h0LT1iLm9mZnNldExlZnQsYy50b3AtPWIub2Zmc2V0VG9wLGMuYm90dG9tLT1iLm9mZnNldFRvcCxiLnNlbGVjdGlvbi5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9bC5iQm94KHRoaXMpO3MuYkJveEludGVyc2VjdChjLHQsdSkmJihyPU1hdGgubWF4KHIsYSoodFtiLnNpZGVdLWNbb10pK3UpKX0pLHI9TWF0aC5taW4oZixyKSkscj4wfHwwPmYpe3ZhciBwPXtsZWZ0OlstciwwXSxyaWdodDpbciwwXSx0b3A6WzAsLXJdLGJvdHRvbTpbMCxyXX1bYi5zaWRlXTtlLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK3ArIikiKX19fWZ1bmN0aW9uIGQoKXtFPTAsUz0hMCxMPUksTS5faW5mb2xheWVyLnNlbGVjdCgiLiIrZSkuYXR0cih7ImRhdGEtdW5mb3JtYXR0ZWQiOkx9KS50ZXh0KEwpLm9uKCJtb3VzZW92ZXIub3BhY2l0eSIsZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMTAwKS5zdHlsZSgib3BhY2l0eSIsMSl9KS5vbigibW91c2VvdXQub3BhY2l0eSIsZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMWUzKS5zdHlsZSgib3BhY2l0eSIsMCl9KX12YXIgbT1yLnByb3BDb250YWluZXIsZz1yLnByb3BOYW1lLHY9ci50cmFjZUluZGV4LHk9ci5kZmx0TmFtZSxiPXIuYXZvaWR8fHt9LHg9ci5hdHRyaWJ1dGVzLF89ci50cmFuc2Zvcm0sdz1yLmNvbnRhaW5lckdyb3VwLE09dC5fZnVsbExheW91dCxrPW0udGl0bGVmb250LmZhbWlseSxBPW0udGl0bGVmb250LnNpemUsVD1tLnRpdGxlZm9udC5jb2xvcixFPTEsUz0hMSxMPW0udGl0bGUudHJpbSgpOyIiPT09TCYmKEU9MCksTC5tYXRjaCgvQ2xpY2sgdG8gZW50ZXIgLisgdGl0bGUvKSYmKEU9LjIsUz0hMCksd3x8KHc9TS5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmctIitlKS5kYXRhKFswXSksdy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImctIitlLCEwKSk7dmFyIHo9dy5zZWxlY3RBbGwoInRleHQiKS5kYXRhKFswXSk7ei5lbnRlcigpLmFwcGVuZCgidGV4dCIpLHoudGV4dChMKS5hdHRyKCJjbGFzcyIsZSksei5hdHRyKHsiZGF0YS11bmZvcm1hdHRlZCI6TH0pLmNhbGwoaCk7dmFyIEk9IkNsaWNrIHRvIGVudGVyICIreSsiIHRpdGxlIjt0Ll9jb250ZXh0LmVkaXRhYmxlPyhMfHxkKCksei5jYWxsKGMubWFrZUVkaXRhYmxlKS5vbigiZWRpdCIsZnVuY3Rpb24oZSl7dm9pZCAwIT09dj9vLnJlc3R5bGUodCxnLGUsdik6by5yZWxheW91dCh0LGcsZSl9KS5vbigiY2FuY2VsIixmdW5jdGlvbigpe3RoaXMudGV4dCh0aGlzLmF0dHIoImRhdGEtdW5mb3JtYXR0ZWQiKSkuY2FsbChoKX0pLm9uKCJpbnB1dCIsZnVuY3Rpb24odCl7dGhpcy50ZXh0KHR8fCIgIikuYXR0cih4KS5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5hdHRyKHgpfSkpOkwmJiFMLm1hdGNoKC9DbGljayB0byBlbnRlciAuKyB0aXRsZS8pfHx6LnJlbW92ZSgpLHouY2xhc3NlZCgianMtcGxhY2Vob2xkZXIiLFMpfX0seyIuLi8uLi9saWIiOjU5MSwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo2MDQsIi4uLy4uL3Bsb3RseSI6NjEyLCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuLi9jb2xvciI6NTA2LCIuLi9kcmF3aW5nIjo1MjksZDM6MTI0LCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNTcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vY29sb3IvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT17X2lzTGlua2VkVG9BcnJheTohMCxtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlc3R5bGUiLCJyZWxheW91dCJdLGRmbHQ6InJlc3R5bGUifSxhcmdzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGl0ZW1zOlt7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9LHt2YWxUeXBlOiJhbnkifV19LGxhYmVsOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9fTtlLmV4cG9ydHM9e19pc0xpbmtlZFRvQXJyYXk6ITAsdmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiJ9LGFjdGl2ZTp7dmFsVHlwZToiaW50ZWdlciIsbWluOi0xLGRmbHQ6MH0sYnV0dG9uczphLHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6LS4wNX0seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6InJpZ2h0In0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZGZsdDoxfSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoiYm90dG9tIn0sZm9udDpvKHt9LG4se30pLGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuYm9yZGVyTGluZX0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NTg2LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjYzMywiLi4vY29sb3IvYXR0cmlidXRlcyI6NTA1fV0sNTcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToidXBkYXRlbWVudXMiLGl0ZW1OYW1lOiJ1cGRhdGVtZW51Iixjb250YWluZXJDbGFzc05hbWU6InVwZGF0ZW1lbnUtY29udGFpbmVyIixoZWFkZXJHcm91cENsYXNzTmFtZToidXBkYXRlbWVudS1oZWFkZXItZ3JvdXAiLGhlYWRlckNsYXNzTmFtZToidXBkYXRlbWVudS1oZWFkZXIiLGhlYWRlckFycm93Q2xhc3NOYW1lOiJ1cGRhdGVtZW51LWhlYWRlci1hcnJvdyIsYnV0dG9uR3JvdXBDbGFzc05hbWU6InVwZGF0ZW1lbnUtYnV0dG9uLWdyb3VwIixidXR0b25DbGFzc05hbWU6InVwZGF0ZW1lbnUtYnV0dG9uIixpdGVtUmVjdENsYXNzTmFtZToidXBkYXRlbWVudS1pdGVtLXJlY3QiLGl0ZW1UZXh0Q2xhc3NOYW1lOiJ1cGRhdGVtZW51LWl0ZW0tdGV4dCIsbWVudUluZGV4QXR0ck5hbWU6InVwZGF0ZW1lbnUtYWN0aXZlLWluZGV4IixhdXRvTWFyZ2luSWRSb290OiJ1cGRhdGVtZW51LSIsYmxhbmtIZWFkZXJPcHRzOntsYWJlbDoiICAifSxtaW5XaWR0aDozMCxtaW5IZWlnaHQ6MzAsdGV4dFBhZFg6NDAsZm9udFNpemVUb0hlaWdodDoxLjMscng6MixyeToyLHRleHRPZmZzZXRYOjEyLHRleHRPZmZzZXRZOjMsYXJyb3dPZmZzZXRYOjQsZ2FwQnV0dG9uSGVhZGVyOjUsZ2FwQnV0dG9uOjIsYWN0aXZlQ29sb3I6IiNGNEZBRkYiLGhvdmVyQ29sb3I6IiNGNEZBRkYifX0se31dLDU3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtmdW5jdGlvbiBuKHIsbil7cmV0dXJuIG8uY29lcmNlKHQsZSxhLHIsbil9dmFyIHM9aSh0LGUpLGw9bigidmlzaWJsZSIscy5sZW5ndGg+MCk7bCYmKG4oImFjdGl2ZSIpLG4oIngiKSxuKCJ5Iiksby5ub25lT3JBbGwodCxlLFsieCIsInkiXSksbigieGFuY2hvciIpLG4oInlhbmNob3IiKSxvLmNvZXJjZUZvbnQobiwiZm9udCIsci5mb250KSxuKCJiZ2NvbG9yIixyLnBhcGVyX2JnY29sb3IpLG4oImJvcmRlcmNvbG9yIiksbigiYm9yZGVyd2lkdGgiKSl9ZnVuY3Rpb24gaSh0LGUpe2Z1bmN0aW9uIHIodCxlKXtyZXR1cm4gby5jb2VyY2UobixpLHUsdCxlKX1mb3IodmFyIG4saSxhPXQuYnV0dG9uc3x8W10scz1lLmJ1dHRvbnM9W10sbD0wO2w8YS5sZW5ndGg7bCsrKW49YVtsXSxpPXt9LG8uaXNQbGFpbk9iamVjdChuKSYmQXJyYXkuaXNBcnJheShuLmFyZ3MpJiYocigibWV0aG9kIikscigiYXJncyIpLHIoImxhYmVsIiksaS5faW5kZXg9bCxzLnB1c2goaSkpO3JldHVybiBzfXZhciBvPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9hdHRyaWJ1dGVzIikscz10KCIuL2NvbnN0YW50cyIpLGw9cy5uYW1lLHU9YS5idXR0b25zO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1BcnJheS5pc0FycmF5KHRbbF0pP3RbbF06W10saT1lW2xdPVtdLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIGE9cltvXXx8e30scz17fTtuKGEscyxlKSxzLl9pbnB1dD1hLHMuX2luZGV4PW8saS5wdXNoKHMpfX19LHsiLi4vLi4vbGliIjo1OTEsIi4vYXR0cmlidXRlcyI6NTcwLCIuL2NvbnN0YW50cyI6NTcxfV0sNTczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7Zm9yKHZhciBlPXRbVC5uYW1lXSxyPVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLnZpc2libGUmJnIucHVzaChpKX1yZXR1cm4gcn1mdW5jdGlvbiBpKHQpe3JldHVybiB0Ll9pbmRleH1mdW5jdGlvbiBvKHQsZSl7dmFyIHI9K3QuYXR0cihULm1lbnVJbmRleEF0dHJOYW1lKTtyZXR1cm4gcj09PWUuX2luZGV4fWZ1bmN0aW9uIGEodCxlLHIsbil7dmFyIGk9ZS5zZWxlY3RBbGwoImcuIitULmhlYWRlckNsYXNzTmFtZSkuZGF0YShbMF0pO2kuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKFQuaGVhZGVyQ2xhc3NOYW1lLCEwKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKTt2YXIgYT1uLmFjdGl2ZSx1PW4uYnV0dG9uc1thXXx8VC5ibGFua0hlYWRlck9wdHMsYz17eTowLHlQYWQ6MH07aS5jYWxsKGwsbix1KS5jYWxsKG0sbixjKTt2YXIgaD1lLnNlbGVjdEFsbCgidGV4dC4iK1QuaGVhZGVyQXJyb3dDbGFzc05hbWUpLmRhdGEoWzBdKTtoLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChULmhlYWRlckFycm93Q2xhc3NOYW1lLCEwKS5jbGFzc2VkKCJ1c2VyLXNlbGVjdC1ub25lIiwhMCkuYXR0cigidGV4dC1hbmNob3IiLCJlbmQiKS5jYWxsKE0uZm9udCxuLmZvbnQpLnRleHQoIlx1MjViYyIpLGguYXR0cih7eDpuLndpZHRoLVQuYXJyb3dPZmZzZXRYLHk6bi5oZWlnaHQxLzIrVC50ZXh0T2Zmc2V0WX0pLGkub24oImNsaWNrIixmdW5jdGlvbigpe3IuY2FsbChnKSxyLmF0dHIoVC5tZW51SW5kZXhBdHRyTmFtZSxvKHIsbik/Ii0xIjpTdHJpbmcobi5faW5kZXgpKSxzKHQsZSxyLG4pfSksaS5vbigibW91c2VvdmVyIixmdW5jdGlvbigpe2kuY2FsbChmKX0pLGkub24oIm1vdXNlb3V0IixmdW5jdGlvbigpe2kuY2FsbChwLG4pfSksXy5zZXRUcmFuc2xhdGUoZSxuLmx4LG4ubHkpfWZ1bmN0aW9uIHModCxlLHIsbil7dmFyIGk9Ii0xIiE9PXIuYXR0cihULm1lbnVJbmRleEF0dHJOYW1lKT9uLmJ1dHRvbnM6W10sbz1yLnNlbGVjdEFsbCgiZy4iK1QuYnV0dG9uQ2xhc3NOYW1lKS5kYXRhKGkpO28uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKFQuYnV0dG9uQ2xhc3NOYW1lLCEwKS5hdHRyKCJvcGFjaXR5IiwiMCIpLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMSIpLG8uZXhpdCgpLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMCIpLnJlbW92ZSgpO3ZhciB1PXt5Om4uaGVpZ2h0MStULmdhcEJ1dHRvbkhlYWRlcix5UGFkOlQuZ2FwQnV0dG9ufTtvLmVhY2goZnVuY3Rpb24oaSxjKXt2YXIgZD15LnNlbGVjdCh0aGlzKTtkLmNhbGwobCxuLGkpLmNhbGwobSxuLHUpLGQub24oImNsaWNrIixmdW5jdGlvbigpe24uX2lucHV0LmFjdGl2ZT1uLmFjdGl2ZT1jLHIuYXR0cihULm1lbnVJbmRleEF0dHJOYW1lLCItMSIpLGEodCxlLHIsbikscyh0LGUscixuKTt2YXIgbz1pLmFyZ3M7YltpLm1ldGhvZF0odCxvWzBdLG9bMV0sb1syXSl9KSxkLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7ZC5jYWxsKGYpfSksZC5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7ZC5jYWxsKHAsbiksby5jYWxsKGgsbil9KX0pLG8uY2FsbChoLG4pLF8uc2V0VHJhbnNsYXRlKHIsbi5seCxuLmx5KX1mdW5jdGlvbiBsKHQsZSxyKXt0LmNhbGwodSxlKS5jYWxsKGMsZSxyKX1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9dC5zZWxlY3RBbGwoInJlY3QiKS5kYXRhKFswXSk7ci5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoVC5pdGVtUmVjdENsYXNzTmFtZSwhMCkuYXR0cih7cng6VC5yeCxyeTpULnJ5LCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pLHIuY2FsbCh3LnN0cm9rZSxlLmJvcmRlcmNvbG9yKS5jYWxsKHcuZmlsbCxlLmJnY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGUuYm9yZGVyd2lkdGgrInB4Iil9ZnVuY3Rpb24gYyh0LGUscil7dmFyIG49dC5zZWxlY3RBbGwoInRleHQiKS5kYXRhKFswXSk7bi5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoVC5pdGVtVGV4dENsYXNzTmFtZSwhMCkuY2xhc3NlZCgidXNlci1zZWxlY3Qtbm9uZSIsITApLmF0dHIoInRleHQtYW5jaG9yIiwic3RhcnQiKSxuLmNhbGwoTS5mb250LGUuZm9udCkudGV4dChyLmxhYmVsKS5jYWxsKGsuY29udmVydFRvVHNwYW5zKX1mdW5jdGlvbiBoKHQsZSl7dmFyIHI9ZS5hY3RpdmU7dC5lYWNoKGZ1bmN0aW9uKHQsZSl7dmFyIG49eS5zZWxlY3QodGhpcyk7ZT09PXImJm4uc2VsZWN0KCJyZWN0LiIrVC5pdGVtUmVjdENsYXNzTmFtZSkuY2FsbCh3LmZpbGwsVC5hY3RpdmVDb2xvcil9KX1mdW5jdGlvbiBmKHQpe3Quc2VsZWN0KCJyZWN0LiIrVC5pdGVtUmVjdENsYXNzTmFtZSkuY2FsbCh3LmZpbGwsVC5ob3ZlckNvbG9yKX1mdW5jdGlvbiBwKHQsZSl7dC5zZWxlY3QoInJlY3QuIitULml0ZW1SZWN0Q2xhc3NOYW1lKS5jYWxsKHcuZmlsbCxlLmJnY29sb3IpfWZ1bmN0aW9uIGQodCxlKXtlLndpZHRoPTAsZS5oZWlnaHQ9MCxlLmhlaWdodDE9MCxlLmx4PTAsZS5seT0wO3ZhciByPXQuX3Rlc3Rlci5zZWxlY3RBbGwoImcuIitULmJ1dHRvbkNsYXNzTmFtZSkuZGF0YShlLmJ1dHRvbnMpO3IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKFQuYnV0dG9uQ2xhc3NOYW1lLCEwKSxyLmVhY2goZnVuY3Rpb24odCl7dmFyIHI9eS5zZWxlY3QodGhpcyk7ci5jYWxsKGwsZSx0KTt2YXIgbj1yLnNlbGVjdCgiLiIrVC5pdGVtVGV4dENsYXNzTmFtZSksaT1uLnNlbGVjdEFsbCgidHNwYW4iKSxvPW4ubm9kZSgpJiZNLmJCb3gobi5ub2RlKCkpLndpZHRoLGE9TWF0aC5tYXgobytULnRleHRQYWRYLFQubWluV2lkdGgpLHM9ZS5mb250LnNpemUqVC5mb250U2l6ZVRvSGVpZ2h0LHU9aVswXS5sZW5ndGh8fDEsYz1NYXRoLm1heChzKnUsVC5taW5IZWlnaHQpK1QudGV4dE9mZnNldFk7ZS53aWR0aD1NYXRoLm1heChlLndpZHRoLGEpLGUuaGVpZ2h0MT1NYXRoLm1heChlLmhlaWdodDEsYyksZS5oZWlnaHQrPWUuaGVpZ2h0MX0pLHIucmVtb3ZlKCk7dmFyIG49dC5fZnVsbExheW91dC5fc2l6ZTtlLmx4PW4ubCtuLncqZS54LGUubHk9bi50K24uaCooMS1lLnkpO3ZhciBpPSJsZWZ0IjtBLmlzUmlnaHRBbmNob3IoZSkmJihlLmx4LT1lLndpZHRoLGk9InJpZ2h0IiksQS5pc0NlbnRlckFuY2hvcihlKSYmKGUubHgtPWUud2lkdGgvMixpPSJjZW50ZXIiKTt2YXIgbz0idG9wIjtBLmlzQm90dG9tQW5jaG9yKGUpJiYoZS5seS09ZS5oZWlnaHQsbz0iYm90dG9tIiksQS5pc01pZGRsZUFuY2hvcihlKSYmKGUubHktPWUuaGVpZ2h0LzIsbz0ibWlkZGxlIiksZS53aWR0aD1NYXRoLmNlaWwoZS53aWR0aCksZS5oZWlnaHQ9TWF0aC5jZWlsKGUuaGVpZ2h0KSxlLmx4PU1hdGgucm91bmQoZS5seCksZS5seT1NYXRoLnJvdW5kKGUubHkpLHguYXV0b01hcmdpbih0LFQuYXV0b01hcmdpbklkUm9vdCtlLl9pbmRleCx7eDplLngseTplLnksbDplLndpZHRoKih7cmlnaHQ6MSxjZW50ZXI6LjV9W2ldfHwwKSxyOmUud2lkdGgqKHtsZWZ0OjEsY2VudGVyOi41fVtpXXx8MCksYjplLmhlaWdodCooe3RvcDoxLG1pZGRsZTouNX1bb118fDApLHQ6ZS5oZWlnaHQqKHtib3R0b206MSxtaWRkbGU6LjV9W29dfHwwKX0pfWZ1bmN0aW9uIG0odCxlLHIpe3ZhciBuPXQuc2VsZWN0KCIuIitULml0ZW1SZWN0Q2xhc3NOYW1lKSxpPXQuc2VsZWN0KCIuIitULml0ZW1UZXh0Q2xhc3NOYW1lKSxvPWkuc2VsZWN0QWxsKCJ0c3BhbiIpLGE9ZS5ib3JkZXJ3aWR0aDtfLnNldFRyYW5zbGF0ZSh0LGEsYStyLnkpLG4uYXR0cih7eDowLHk6MCx3aWR0aDplLndpZHRoLGhlaWdodDplLmhlaWdodDF9KTt2YXIgcz1lLmZvbnQuc2l6ZSpULmZvbnRTaXplVG9IZWlnaHQsbD1vWzBdLmxlbmd0aHx8MSx1PShsLTEpKnMvNCxjPXt4OlQudGV4dE9mZnNldFgseTplLmhlaWdodDEvMi11K1QudGV4dE9mZnNldFl9O2kuYXR0cihjKSxvLmF0dHIoYyksci55Kz1lLmhlaWdodDErci55UGFkfWZ1bmN0aW9uIGcodCl7dC5zZWxlY3RBbGwoImcuIitULmJ1dHRvbkNsYXNzTmFtZSkucmVtb3ZlKCl9ZnVuY3Rpb24gdih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dC5fcHVzaG1hcmdpbnx8e30scj1PYmplY3Qua2V5cyhlKSxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07LTEhPT1pLmluZGV4T2YoVC5hdXRvTWFyZ2luSWRSb290KSYmeC5hdXRvTWFyZ2luKHQsaSl9fXZhciB5PXQoImQzIiksYj10KCIuLi8uLi9wbG90bHkiKSx4PXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksXz10KCIuLi8uLi9saWIiKSx3PXQoIi4uL2NvbG9yIiksTT10KCIuLi9kcmF3aW5nIiksaz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxBPXQoIi4uL2xlZ2VuZC9hbmNob3JfdXRpbHMiKSxUPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1uKGUpLGw9ZS5faW5mb2xheWVyLnNlbGVjdEFsbCgiZy4iK1QuY29udGFpbmVyQ2xhc3NOYW1lKS5kYXRhKHIubGVuZ3RoPjA/WzBdOltdKTtpZihsLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChULmNvbnRhaW5lckNsYXNzTmFtZSwhMCkuc3R5bGUoImN1cnNvciIsInBvaW50ZXIiKSxsLmV4aXQoKS5yZW1vdmUoKSxsLmV4aXQoKS5zaXplKCkmJnYodCksMCE9PXIubGVuZ3RoKXt2YXIgdT1sLnNlbGVjdEFsbCgiZy4iK1QuaGVhZGVyR3JvdXBDbGFzc05hbWUpLmRhdGEocixpKTt1LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChULmhlYWRlckdyb3VwQ2xhc3NOYW1lLCEwKTt2YXIgYz1sLnNlbGVjdEFsbCgiZy4iK1QuYnV0dG9uR3JvdXBDbGFzc05hbWUpLmRhdGEoWzBdKTtjLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChULmJ1dHRvbkdyb3VwQ2xhc3NOYW1lLCEwKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKSx1LmVudGVyKCkuc2l6ZSgpJiZjLmNhbGwoZykuYXR0cihULm1lbnVJbmRleEF0dHJOYW1lLCItMSIpLHUuZXhpdCgpLmVhY2goZnVuY3Rpb24oZSl7eS5zZWxlY3QodGhpcykucmVtb3ZlKCksYy5jYWxsKGcpLmF0dHIoVC5tZW51SW5kZXhBdHRyTmFtZSwiLTEiKSx4LmF1dG9NYXJnaW4odCxULmF1dG9NYXJnaW5JZFJvb3QrZS5faW5kZXgpfSk7Zm9yKHZhciBoPTA7aDxyLmxlbmd0aDtoKyspe3ZhciBmPXJbaF07ZCh0LGYpfXUuZWFjaChmdW5jdGlvbihlKXt2YXIgcj15LnNlbGVjdCh0aGlzKTthKHQscixjLGUpLG8oYyxlKSYmcyh0LHIsYyxlKX0pfX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NjA0LCIuLi8uLi9wbG90bHkiOjYxMiwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi4vY29sb3IiOjUwNiwiLi4vZHJhd2luZyI6NTI5LCIuLi9sZWdlbmQvYW5jaG9yX3V0aWxzIjo1NDIsIi4vY29uc3RhbnRzIjo1NzEsZDM6MTI0fV0sNTc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IubGF5b3V0QXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxyLnN1cHBseUxheW91dERlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxyLmRyYXc9dCgiLi9kcmF3Iil9LHsiLi9hdHRyaWJ1dGVzIjo1NzAsIi4vZGVmYXVsdHMiOjU3MiwiLi9kcmF3Ijo1NzN9XSw1NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzb2xpZDpbMV0sZG90OlsxLDFdLGRhc2g6WzQsMV0sbG9uZ2Rhc2g6WzgsMV0sZGFzaGRvdDpbNCwxLDEsMV0sbG9uZ2Rhc2hkb3Q6WzgsMSwxLDFdfX0se31dLDU3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3NvbGlkOltbXSwwXSxkb3Q6W1suNSwxXSwyMDBdLGRhc2g6W1suNSwxXSw1MF0sbG9uZ2Rhc2g6W1suNSwxXSwxMF0sZGFzaGRvdDpbWy41LC42MjUsLjg3NSwxXSw1MF0sbG9uZ2Rhc2hkb3Q6W1suNSwuNywuOCwxXSwxMF19fSx7fV0sNTc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Y2lyY2xlOiJcdTI1Y2YiLCJjaXJjbGUtb3BlbiI6Ilx1MjVjYiIsc3F1YXJlOiJcdTI1YTAiLCJzcXVhcmUtb3BlbiI6Ilx1MjVhMSIsZGlhbW9uZDoiXHUyNWM2IiwiZGlhbW9uZC1vcGVuIjoiXHUyNWM3Iixjcm9zczoiKyIseDoiXHUyNzRjIn19LHt9XSw1Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtlbnRpdHlUb1VuaWNvZGU6e211OiJcdTAzYmMiLGFtcDoiJiIsbHQ6IjwiLGd0OiI+IixuYnNwOiJceGEwIix0aW1lczoiXHhkNyIscGx1c21uOiJceGIxIixkZWc6Ilx4YjAifSx1bmljb2RlVG9FbnRpdHk6eyImIjoiYW1wIiwiPCI6Imx0IiwiPiI6Imd0IiwnIic6InF1b3QiLCInIjoiI3gyNyIsIi8iOiIjeDJGIn19fSx7fV0sNTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IueG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIixyLnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHIueGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHIuc3ZnQXR0cnM9e3htbG5zOnIuc3ZnLCJ4bWxuczp4bGluayI6ci54bGlua319LHt9XSw1ODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9wbG90bHkiKTtyLnZlcnNpb249IjEuMTYuMyIsci5wbG90PW4ucGxvdCxyLm5ld1Bsb3Q9bi5uZXdQbG90LHIucmVzdHlsZT1uLnJlc3R5bGUsci5yZWxheW91dD1uLnJlbGF5b3V0LHIucmVkcmF3PW4ucmVkcmF3LHIuZXh0ZW5kVHJhY2VzPW4uZXh0ZW5kVHJhY2VzLHIucHJlcGVuZFRyYWNlcz1uLnByZXBlbmRUcmFjZXMsci5hZGRUcmFjZXM9bi5hZGRUcmFjZXMsci5kZWxldGVUcmFjZXM9bi5kZWxldGVUcmFjZXMsci5tb3ZlVHJhY2VzPW4ubW92ZVRyYWNlcyxyLnB1cmdlPW4ucHVyZ2Usci5zZXRQbG90Q29uZmlnPXQoIi4vcGxvdF9hcGkvc2V0X3Bsb3RfY29uZmlnIiksci5yZWdpc3Rlcj1uLnJlZ2lzdGVyLHIudG9JbWFnZT10KCIuL3Bsb3RfYXBpL3RvX2ltYWdlIiksci5kb3dubG9hZEltYWdlPXQoIi4vc25hcHNob3QvZG93bmxvYWQiKSxyLnZhbGlkYXRlPXQoIi4vcGxvdF9hcGkvdmFsaWRhdGUiKSxyLkljb25zPXQoIi4uL2J1aWxkL3Bsb3RpY29uIiksci5QbG90cz1uLlBsb3RzLHIuRng9bi5GeCxyLlNuYXBzaG90PW4uU25hcHNob3Qsci5QbG90U2NoZW1hPW4uUGxvdFNjaGVtYSxyLlF1ZXVlPW4uUXVldWUsci5kMz10KCJkMyIpfSx7Ii4uL2J1aWxkL3Bsb3RpY29uIjoyLCIuL3Bsb3RfYXBpL3NldF9wbG90X2NvbmZpZyI6NjA5LCIuL3Bsb3RfYXBpL3RvX2ltYWdlIjo2MTAsIi4vcGxvdF9hcGkvdmFsaWRhdGUiOjYxMSwiLi9wbG90bHkiOjYxMiwiLi9zbmFwc2hvdC9kb3dubG9hZCI6Njg2LGQzOjEyNH1dLDU4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjsidW5kZWZpbmVkIiE9dHlwZW9mIE1hdGhKYXg/KHIuTWF0aEpheD0hMCxNYXRoSmF4Lkh1Yi5Db25maWcoe21lc3NhZ2VTdHlsZToibm9uZSIsc2tpcFN0YXJ0dXBUeXBlc2V0OiEwLGRpc3BsYXlBbGlnbjoibGVmdCIsdGV4MmpheDp7aW5saW5lTWF0aDpbWyIkIiwiJCJdLFsiXFwoIiwiXFwpIl1dfX0pLE1hdGhKYXguSHViLkNvbmZpZ3VyZWQoKSk6ci5NYXRoSmF4PSExfSx7fV0sNTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtBcnJheS5pc0FycmF5KHQpJiYoZVtyXT10W25dKX19LHt9XSw1ODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoInRpbnljb2xvcjIiKSxvPXQoIi4vbmVzdGVkX3Byb3BlcnR5IiksYT10KCIuLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZ2V0X3NjYWxlIikscz0oT2JqZWN0LmtleXModCgiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL3NjYWxlcyIpKSwvXihbMi05XXxbMS05XVswLTldKykkLyk7ci52YWxPYmplY3RzPXtkYXRhX2FycmF5Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7QXJyYXkuaXNBcnJheSh0KT9lLnNldCh0KTp2b2lkIDAhPT1yJiZlLnNldChyKX19LGVudW1lcmF0ZWQ6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe24uY29lcmNlTnVtYmVyJiYodD0rdCksLTE9PT1uLnZhbHVlcy5pbmRleE9mKHQpP2Uuc2V0KHIpOmUuc2V0KHQpfX0sImJvb2xlYW4iOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7dD09PSEwfHx0PT09ITE/ZS5zZXQodCk6ZS5zZXQocil9fSxudW1iZXI6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLGkpeyFuKHQpfHx2b2lkIDAhPT1pLm1pbiYmdDxpLm1pbnx8dm9pZCAwIT09aS5tYXgmJnQ+aS5tYXg/ZS5zZXQocik6ZS5zZXQoK3QpfX0saW50ZWdlcjp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsaSl7dCUxfHwhbih0KXx8dm9pZCAwIT09aS5taW4mJnQ8aS5taW58fHZvaWQgMCE9PWkubWF4JiZ0PmkubWF4P2Uuc2V0KHIpOmUuc2V0KCt0KX19LHN0cmluZzp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsbil7aWYoInN0cmluZyIhPXR5cGVvZiB0KXt2YXIgaT0ibnVtYmVyIj09dHlwZW9mIHQ7bi5zdHJpY3QhPT0hMCYmaT9lLnNldChTdHJpbmcodCkpOmUuc2V0KHIpfWVsc2Ugbi5ub0JsYW5rJiYhdD9lLnNldChyKTplLnNldCh0KX19LGNvbG9yOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7aSh0KS5pc1ZhbGlkKCk/ZS5zZXQodCk6ZS5zZXQocil9fSxjb2xvcnNjYWxlOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7ZS5zZXQoYSh0LHIpKX19LGFuZ2xlOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7ImF1dG8iPT09dD9lLnNldCgiYXV0byIpOm4odCk/KE1hdGguYWJzKHQpPjE4MCYmKHQtPTM2MCpNYXRoLnJvdW5kKHQvMzYwKSksZS5zZXQoK3QpKTplLnNldChyKX19LHN1YnBsb3RpZDp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIubGVuZ3RoO3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmdC5zdWJzdHIoMCxuKT09PXImJnMudGVzdCh0LnN1YnN0cihuKSk/dm9pZCBlLnNldCh0KTp2b2lkIGUuc2V0KHIpfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5kZmx0LG49ci5sZW5ndGg7cmV0dXJuIHQ9PT1yPyEwOiJzdHJpbmciIT10eXBlb2YgdD8hMTohKHQuc3Vic3RyKDAsbikhPT1yfHwhcy50ZXN0KHQuc3Vic3RyKG4pKSl9fSxmbGFnbGlzdDp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsbil7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiB2b2lkIGUuc2V0KHIpO2lmKC0xIT09KG4uZXh0cmFzfHxbXSkuaW5kZXhPZih0KSlyZXR1cm4gdm9pZCBlLnNldCh0KTtmb3IodmFyIGk9dC5zcGxpdCgiKyIpLG89MDtvPGkubGVuZ3RoOyl7dmFyIGE9aVtvXTstMT09PW4uZmxhZ3MuaW5kZXhPZihhKXx8aS5pbmRleE9mKGEpPG8/aS5zcGxpY2UobywxKTpvKyt9aS5sZW5ndGg/ZS5zZXQoaS5qb2luKCIrIikpOmUuc2V0KHIpfX0sYW55Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7dm9pZCAwPT09dD9lLnNldChyKTplLnNldCh0KX19LGluZm9fYXJyYXk6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxuLGkpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiB2b2lkIGUuc2V0KG4pO3ZhciBvPWkuaXRlbXMsYT1bXTtuPUFycmF5LmlzQXJyYXkobik/bjpbXTtmb3IodmFyIHM9MDtzPG8ubGVuZ3RoO3MrKylyLmNvZXJjZSh0LGEsbywiWyIrcysiXSIsbltzXSk7ZS5zZXQoYSl9LHZhbGlkYXRlRnVuY3Rpb246ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4hMTt2YXIgbj1lLml0ZW1zO2lmKCFlLmZyZWVMZW5ndGgmJnQubGVuZ3RoIT09bi5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPXIudmFsaWRhdGUodFtpXSxlLml0ZW1zW2ldKTtpZighbylyZXR1cm4hMX1yZXR1cm4hMH19fSxyLmNvZXJjZT1mdW5jdGlvbih0LGUsbixpLGEpe3ZhciBzPW8obixpKS5nZXQoKSxsPW8odCxpKSx1PW8oZSxpKSxjPWwuZ2V0KCk7cmV0dXJuIHZvaWQgMD09PWEmJihhPXMuZGZsdCkscy5hcnJheU9rJiZBcnJheS5pc0FycmF5KGMpPyh1LnNldChjKSxjKTooci52YWxPYmplY3RzW3MudmFsVHlwZV0uY29lcmNlRnVuY3Rpb24oYyx1LGEscyksdS5nZXQoKSl9LHIuY29lcmNlMj1mdW5jdGlvbih0LGUsbixpLGEpe3ZhciBzPW8odCxpKSxsPXIuY29lcmNlKHQsZSxuLGksYSk7cmV0dXJuIHMuZ2V0KCk/bDohMX0sci5jb2VyY2VGb250PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj17fTtyZXR1cm4gcj1yfHx7fSxuLmZhbWlseT10KGUrIi5mYW1pbHkiLHIuZmFtaWx5KSxuLnNpemU9dChlKyIuc2l6ZSIsci5zaXplKSxuLmNvbG9yPXQoZSsiLmNvbG9yIixyLmNvbG9yKSxufSxyLnZhbGlkYXRlPWZ1bmN0aW9uKHQsZSl7dmFyIG49ci52YWxPYmplY3RzW2UudmFsVHlwZV07aWYoZS5hcnJheU9rJiZBcnJheS5pc0FycmF5KHQpKXJldHVybiEwO2lmKG4udmFsaWRhdGVGdW5jdGlvbilyZXR1cm4gbi52YWxpZGF0ZUZ1bmN0aW9uKHQsZSk7dmFyIGk9e30sbz1pLGE9e3NldDpmdW5jdGlvbih0KXtvPXR9fTtyZXR1cm4gbi5jb2VyY2VGdW5jdGlvbih0LGEsaSxlKSxvIT09aX19LHsiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSI6NTE4LCIuLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvc2NhbGVzIjo1MjQsIi4vbmVzdGVkX3Byb3BlcnR5Ijo1OTUsImZhc3QtaXNudW1lcmljIjoxMjgsdGlueWNvbG9yMjo0Nzd9XSw1ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3JldHVybiBTdHJpbmcodCtNYXRoLnBvdygxMCxlKSkuc3Vic3RyKDEpfWZ1bmN0aW9uIGkodCl7dmFyIGU7cmV0dXJuIGU9Yi50ZXN0KHQpPyJZIjoieSIsZSs9eC50ZXN0KHQpPyJiIjoiIn1mdW5jdGlvbiBvKHQpe3ZhciBlO3JldHVybiBlPXcudGVzdCh0KT9fLnRlc3QodCk/IkkiOiJIIjoiRCJ9dmFyIGE9dCgiZDMiKSxzPXQoImZhc3QtaXNudW1lcmljIiksbD10KCIuLi9saWIiKTsKci5kYXRlVGltZTJtcz1mdW5jdGlvbih0KXt0cnl7aWYodC5nZXRUaW1lKXJldHVybit0fWNhdGNoKGUpe3JldHVybiExfXZhciByLG4saSxvLGE9U3RyaW5nKHQpLnNwbGl0KCIgIik7aWYoYS5sZW5ndGg+MilyZXR1cm4hMTt2YXIgbD1hWzBdLnNwbGl0KCItIik7aWYobC5sZW5ndGg+M3x8MyE9PWwubGVuZ3RoJiZhWzFdKXJldHVybiExO2lmKDQ9PT1sWzBdLmxlbmd0aClyPU51bWJlcihsWzBdKTtlbHNle2lmKDIhPT1sWzBdLmxlbmd0aClyZXR1cm4hMTt2YXIgdT0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7cj0oKE51bWJlcihsWzBdKS11KzcwKSUxMDArMjAwKSUxMDArdS03MH1yZXR1cm4gcyhyKT8xPT09bC5sZW5ndGg/bmV3IERhdGUociwwLDEpLmdldFRpbWUoKToobj1OdW1iZXIobFsxXSktMSxsWzFdLmxlbmd0aD4yfHwhKG4+PTAmJjExPj1uKT8hMToyPT09bC5sZW5ndGg/bmV3IERhdGUocixuLDEpLmdldFRpbWUoKTooaT1OdW1iZXIobFsyXSksbFsyXS5sZW5ndGg+Mnx8IShpPj0xJiYzMT49aSk/ITE6KGk9bmV3IERhdGUocixuLGkpLmdldFRpbWUoKSxhWzFdPyhsPWFbMV0uc3BsaXQoIjoiKSxsLmxlbmd0aD4zPyExOihvPU51bWJlcihsWzBdKSxsWzBdLmxlbmd0aD4yfHwhKG8+PTAmJjIzPj1vKT8hMTooaSs9MzZlNSpvLDE9PT1sLmxlbmd0aD9pOihuPU51bWJlcihsWzFdKSxsWzFdLmxlbmd0aD4yfHwhKG4+PTAmJjU5Pj1uKT8hMTooaSs9NmU0Km4sMj09PWwubGVuZ3RoP2k6KHQ9TnVtYmVyKGxbMl0pLHQ+PTAmJjYwPnQ/aSsxZTMqdDohMSkpKSkpKTppKSkpOiExfSxyLmlzRGF0ZVRpbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHIuZGF0ZVRpbWUybXModCkhPT0hMX0sci5tczJEYXRlVGltZT1mdW5jdGlvbih0LGUpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYSlyZXR1cm4gdm9pZCBsLmVycm9yKCJkMyBpcyBub3QgZGVmaW5lZC4iKTtlfHwoZT0wKTt2YXIgcj1uZXcgRGF0ZSh0KSxpPWEudGltZS5mb3JtYXQoIiVZLSVtLSVkIikocik7cmV0dXJuIDc3NzZlNj5lPyhpKz0iICIrbihyLmdldEhvdXJzKCksMiksNDMyZTY+ZSYmKGkrPSI6IituKHIuZ2V0TWludXRlcygpLDIpLDEwOGU1PmUmJihpKz0iOiIrbihyLmdldFNlY29uZHMoKSwyKSwzZTU+ZSYmKGkrPSIuIituKHIuZ2V0TWlsbGlzZWNvbmRzKCksMykpKSksaS5yZXBsYWNlKC8oWzpcc10wMCkqXC4/WzBdKiQvLCIiKSk6aX07dmFyIHU9e0g6WyIlSDolTTolU34lTCIsIiVIOiVNOiVTIiwiJUg6JU0iXSxJOlsiJUk6JU06JVN+JUwlcCIsIiVJOiVNOiVTJXAiLCIlSTolTSVwIl0sRDpbIiVIIiwiJUklcCIsIiVIaCJdfSxjPXtZOlsiJVl+JW1+JWQiLCIlWSVtJWQiLCIleSVtJWQiLCIlbX4lZH4lWSIsIiVkfiVtfiVZIl0sWWI6WyIlYn4lZH4lWSIsIiVkfiVifiVZIiwiJVl+JWR+JWIiLCIlWX4lYn4lZCJdLHk6WyIlbX4lZH4leSIsIiVkfiVtfiV5IiwiJXl+JW1+JWQiXSx5YjpbIiVifiVkfiV5IiwiJWR+JWJ+JXkiLCIleX4lZH4lYiIsIiV5fiVifiVkIl19LGg9YS50aW1lLmZvcm1hdC51dGMsZj17WTp7SDpbIiVZfiVtfiVkVCVIOiVNOiVTIiwiJVl+JW1+JWRUJUg6JU06JVN+JUwiXS5tYXAoaCksSTpbXSxEOlsiJVklbSVkJUglTSVTIiwiJVl+JW0iLCIlbX4lWSJdLm1hcChoKX0sWWI6e0g6W10sSTpbXSxEOlsiJVl+JWIiLCIlYn4lWSJdLm1hcChoKX0seTp7SDpbXSxJOltdLEQ6W119LHliOntIOltdLEk6W10sRDpbXX19O1siWSIsIlliIiwieSIsInliIl0uZm9yRWFjaChmdW5jdGlvbih0KXtjW3RdLmZvckVhY2goZnVuY3Rpb24oZSl7Zlt0XS5ELnB1c2goaChlKSksWyJIIiwiSSIsIkQiXS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3Vbcl0uZm9yRWFjaChmdW5jdGlvbihuKXt2YXIgaT1mW3RdW3JdO2kucHVzaChoKGUrIn4iK24pKSxpLnB1c2goaChuKyJ+IitlKSl9KX0pfSl9KTt2YXIgcD0vW2Etel0qL2csZD1mdW5jdGlvbih0KXtyZXR1cm4gdC5zdWJzdHIoMCwzKX0sbT0vKG1vbnx0dWV8d2VkfHRodXxmcml8c2F0fHN1bnx0aGV8b2Z8c3R8bmR8cmR8dGgpL2csZz0vW1xzLFwvXC1cLlwoXCldKy9nLHY9L34/KFthcF0pfj9tKH58JCkvLHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSsibSAifSxiPS9cZFxkXGRcZC8seD0vKF58filbYS16XXszfS8sXz0vW2FwXW0vLHc9LzovLE09L3EoWzEtNF0pLyxrPVsiMzF+bWFyIiwiMzB+anVuIiwiMzB+c2VwIiwiMzF+ZGVjIl0sQT1mdW5jdGlvbih0LGUpe3JldHVybiBrW2UtMV19LFQ9LyA/KFsrXC1dXGRcZDo/XGRcZHxaKSQvO3IucGFyc2VEYXRlPWZ1bmN0aW9uKHQpe2lmKHQuZ2V0VGltZSlyZXR1cm4gdDtpZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuITE7dD10LnRvTG93ZXJDYXNlKCkucmVwbGFjZShwLGQpLnJlcGxhY2UobSwiIikucmVwbGFjZShnLCJ+IikucmVwbGFjZSh2LHkpLnJlcGxhY2UoTSxBKS50cmltKCkucmVwbGFjZShULCIiKTt2YXIgZSxyLG49bnVsbCxhPWkodCkscz1vKHQpO2U9ZlthXVtzXSxyPWUubGVuZ3RoO2Zvcih2YXIgbD0wO3I+bCYmIShuPWVbbF0ucGFyc2UodCkpO2wrKyk7aWYoIShuIGluc3RhbmNlb2YgRGF0ZSkpcmV0dXJuITE7dmFyIHU9bi5nZXRUaW1lem9uZU9mZnNldCgpO3JldHVybiBuLnNldFRpbWUobi5nZXRUaW1lKCkrNjAqdSoxZTMpLG59fSx7Ii4uL2xpYiI6NTkxLGQzOjEyNCwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDU4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJldmVudHMiKS5FdmVudEVtaXR0ZXIsaT17aW5pdDpmdW5jdGlvbih0KXtpZih0Ll9ldiBpbnN0YW5jZW9mIG4pcmV0dXJuIHQ7dmFyIGU9bmV3IG47cmV0dXJuIHQuX2V2PWUsdC5vbj1lLm9uLmJpbmQoZSksdC5vbmNlPWUub25jZS5iaW5kKGUpLHQucmVtb3ZlTGlzdGVuZXI9ZS5yZW1vdmVMaXN0ZW5lci5iaW5kKGUpLHQucmVtb3ZlQWxsTGlzdGVuZXJzPWUucmVtb3ZlQWxsTGlzdGVuZXJzLmJpbmQoZSksdC5lbWl0PWZ1bmN0aW9uKHIsbil7InVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJmpRdWVyeSh0KS50cmlnZ2VyKHIsbiksZS5lbWl0KHIsbil9LHR9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpOyJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiYobj1qUXVlcnkodCkudHJpZ2dlckhhbmRsZXIoZSxyKSk7dmFyIG89dC5fZXY7aWYoIW8pcmV0dXJuIG47dmFyIGE9by5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuOyJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoYT1bYV0pO2Zvcih2YXIgcz1hLnBvcCgpLGw9MDtsPGEubGVuZ3RoO2wrKylhW2xdKHIpO3JldHVybiBpPXMociksdm9pZCAwIT09bj9uOml9LHB1cmdlOmZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdC5fZXYsZGVsZXRlIHQub24sZGVsZXRlIHQub25jZSxkZWxldGUgdC5yZW1vdmVMaXN0ZW5lcixkZWxldGUgdC5yZW1vdmVBbGxMaXN0ZW5lcnMsZGVsZXRlIHQuZW1pdCx0fX07ZS5leHBvcnRzPWl9LHtldmVudHM6NTZ9XSw1ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByLG47Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYobj10W3JdLG51bGwhPT1uJiYib2JqZWN0Ij09dHlwZW9mIG4pcmV0dXJuITE7dm9pZCAwIT09biYmKGVbcl09bil9cmV0dXJuITB9ZnVuY3Rpb24gaSh0LGUscixzKXt2YXIgbCx1LGMsaCxmLHAsZCxtPXRbMF0sZz10Lmxlbmd0aDtpZigyPT09ZyYmYShtKSYmYSh0WzFdKSYmMD09PW0ubGVuZ3RoKXtpZihkPW4odFsxXSxtKSlyZXR1cm4gbTttLnNwbGljZSgwLG0ubGVuZ3RoKX1mb3IodmFyIHY9MTtnPnY7disrKXtsPXRbdl07Zm9yKHUgaW4gbCljPW1bdV0saD1sW3VdLHMmJmEoaCk/bVt1XT1oOmUmJmgmJihvKGgpfHwoZj1hKGgpKSk/KGY/KGY9ITEscD1jJiZhKGMpP2M6W10pOnA9YyYmbyhjKT9jOnt9LG1bdV09aShbcCxoXSxlLHIscykpOigidW5kZWZpbmVkIiE9dHlwZW9mIGh8fHIpJiYobVt1XT1oKX1yZXR1cm4gbX12YXIgbz10KCIuL2lzX3BsYWluX29iamVjdC5qcyIpLGE9QXJyYXkuaXNBcnJheTtyLmV4dGVuZEZsYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gaShhcmd1bWVudHMsITEsITEsITEpfSxyLmV4dGVuZERlZXA9ZnVuY3Rpb24oKXtyZXR1cm4gaShhcmd1bWVudHMsITAsITEsITEpfSxyLmV4dGVuZERlZXBBbGw9ZnVuY3Rpb24oKXtyZXR1cm4gaShhcmd1bWVudHMsITAsITAsITEpfSxyLmV4dGVuZERlZXBOb0FycmF5cz1mdW5jdGlvbigpe3JldHVybiBpKGFyZ3VtZW50cywhMCwhMSwhMCl9fSx7Ii4vaXNfcGxhaW5fb2JqZWN0LmpzIjo1OTJ9XSw1ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07bi52aXNpYmxlPT09ITAmJmUucHVzaChuKX1yZXR1cm4gZX19LHt9XSw1ODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPWxbdF07cmV0dXJuIHIoZSl9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscixuPTA7bjxzLmxlbmd0aDtuKyspaWYoZT1zW25dLHI9bmV3IFJlZ0V4cChvW2VdKSxyLnRlc3QodC50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gZTthLndhcm4oIlVucmVjb2duaXplZCBjb3VudHJ5IG5hbWU6ICIrdCsiLiIpfXZhciBvPXQoImNvdW50cnktcmVnZXgiKSxhPXQoIi4uL2xpYiIpLHM9T2JqZWN0LmtleXMobyksbD17IklTTy0zIjphLmlkZW50aXR5LCJVU0Etc3RhdGVzIjphLmlkZW50aXR5LCJjb3VudHJ5IG5hbWVzIjppfTtyLmxvY2F0aW9uVG9GZWF0dXJlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIGksbz1uKHQsZSkscz0wO3M8ci5sZW5ndGg7cysrKWlmKGk9cltzXSxpLmlkPT09bylyZXR1cm4gaTthLndhcm4oWyJMb2NhdGlvbiB3aXRoIGlkIixvLCJkb2VzIG5vdCBoYXZlIGEgbWF0Y2hpbmcgdG9wb2pzb24gZmVhdHVyZSBhdCB0aGlzIHJlc29sdXRpb24uIl0uam9pbigiICIpKX19LHsiLi4vbGliIjo1OTEsImNvdW50cnktcmVnZXgiOjExOX1dLDU4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9aCh0KTtyZXR1cm4gclszXSo9ZSxyfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHModCkuaXNWYWxpZCgpP3Q6Y31mdW5jdGlvbiBvKHQpe3JldHVybiBsKHQpP3Q6Zn1mdW5jdGlvbiBhKHQsZSxyKXt2YXIgYSxzLGwsaCxwLGQ9dC5jb2xvcixtPUFycmF5LmlzQXJyYXkoZCksZz1BcnJheS5pc0FycmF5KGUpLHY9W107aWYoYT12b2lkIDAhPT10LmNvbG9yc2NhbGU/dSh0LmNvbG9yc2NhbGUsdC5jbWluLHQuY21heCk6aSxzPW0/ZnVuY3Rpb24odCxlKXtyZXR1cm4gdm9pZCAwPT09dFtlXT9jOmEodFtlXSl9OmksbD1nP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXRbZV0/ZjpvKHRbZV0pfTpvLG18fGcpZm9yKHZhciB5PTA7cj55O3krKyloPXMoZCx5KSxwPWwoZSx5KSx2W3ldPW4oaCxwKTtlbHNlIHY9bihkLGUpO3JldHVybiB2fXZhciBzPXQoInRpbnljb2xvcjIiKSxsPXQoImZhc3QtaXNudW1lcmljIiksdT10KCIuLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvbWFrZV9zY2FsZV9mdW5jdGlvbiIpLGM9dCgiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikuZGVmYXVsdExpbmUsaD10KCIuL3N0cjJyZ2JhcnJheSIpLGY9MTtlLmV4cG9ydHM9YX0seyIuLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjUwNSwiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL21ha2Vfc2NhbGVfZnVuY3Rpb24iOjUyMywiLi9zdHIycmdiYXJyYXkiOjYwMywiZmFzdC1pc251bWVyaWMiOjEyOCx0aW55Y29sb3IyOjQ3N31dLDU5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Zvcih2YXIgZT0wOyhlPXQuaW5kZXhPZigiPHN1cD4iLGUpKT49MDspe3ZhciByPXQuaW5kZXhPZigiPC9zdXA+IixlKTtpZihlPnIpYnJlYWs7dD10LnNsaWNlKDAsZSkrbCh0LnNsaWNlKGUrNSxyKSkrdC5zbGljZShyKzYpfXJldHVybiB0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQucmVwbGFjZSgvXDxiclw+L2csIlxuIil9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9cPC4qXD4vZywiIil9ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9dS5lbnRpdHlUb1VuaWNvZGUscj0wOyhyPXQuaW5kZXhPZigiJiIscikpPj0wOyl7dmFyIG49dC5pbmRleE9mKCI7IixyKTtpZihyPm4pcis9MTtlbHNle3ZhciBpPWVbdC5zbGljZShyKzEsbildO3Q9aT90LnNsaWNlKDAscikraSt0LnNsaWNlKG4rMSk6dC5zbGljZSgwLHIpK3Quc2xpY2UobisxKX19cmV0dXJuIHR9ZnVuY3Rpb24gcyh0KXtyZXR1cm4iIithKG8obihpKHQpKSkpfXZhciBsPXQoInN1cGVyc2NyaXB0LXRleHQiKSx1PXQoIi4uL2NvbnN0YW50cy9zdHJpbmdfbWFwcGluZ3MiKTtlLmV4cG9ydHM9c30seyIuLi9jb25zdGFudHMvc3RyaW5nX21hcHBpbmdzIjo1NzgsInN1cGVyc2NyaXB0LXRleHQiOjQ2Nn1dLDU5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGk9ZS5leHBvcnRzPXt9O2kubmVzdGVkUHJvcGVydHk9dCgiLi9uZXN0ZWRfcHJvcGVydHkiKSxpLmlzUGxhaW5PYmplY3Q9dCgiLi9pc19wbGFpbl9vYmplY3QiKTt2YXIgbz10KCIuL2NvZXJjZSIpO2kudmFsT2JqZWN0cz1vLnZhbE9iamVjdHMsaS5jb2VyY2U9by5jb2VyY2UsaS5jb2VyY2UyPW8uY29lcmNlMixpLmNvZXJjZUZvbnQ9by5jb2VyY2VGb250LGkudmFsaWRhdGU9by52YWxpZGF0ZTt2YXIgYT10KCIuL2RhdGVzIik7aS5kYXRlVGltZTJtcz1hLmRhdGVUaW1lMm1zLGkuaXNEYXRlVGltZT1hLmlzRGF0ZVRpbWUsaS5tczJEYXRlVGltZT1hLm1zMkRhdGVUaW1lLGkucGFyc2VEYXRlPWEucGFyc2VEYXRlO3ZhciBzPXQoIi4vc2VhcmNoIik7aS5maW5kQmluPXMuZmluZEJpbixpLnNvcnRlckFzYz1zLnNvcnRlckFzYyxpLnNvcnRlckRlcz1zLnNvcnRlckRlcyxpLmRpc3RpbmN0VmFscz1zLmRpc3RpbmN0VmFscyxpLnJvdW5kVXA9cy5yb3VuZFVwO3ZhciBsPXQoIi4vc3RhdHMiKTtpLmFnZ051bXM9bC5hZ2dOdW1zLGkubGVuPWwubGVuLGkubWVhbj1sLm1lYW4saS52YXJpYW5jZT1sLnZhcmlhbmNlLGkuc3RkZXY9bC5zdGRldixpLmludGVycD1sLmludGVycDt2YXIgdT10KCIuL21hdHJpeCIpO2kuaW5pdDJkQXJyYXk9dS5pbml0MmRBcnJheSxpLnRyYW5zcG9zZVJhZ2dlZD11LnRyYW5zcG9zZVJhZ2dlZCxpLmRvdD11LmRvdCxpLnRyYW5zbGF0aW9uTWF0cml4PXUudHJhbnNsYXRpb25NYXRyaXgsaS5yb3RhdGlvbk1hdHJpeD11LnJvdGF0aW9uTWF0cml4LGkucm90YXRpb25YWU1hdHJpeD11LnJvdGF0aW9uWFlNYXRyaXgsaS5hcHBseTJEVHJhbnNmb3JtPXUuYXBwbHkyRFRyYW5zZm9ybSxpLmFwcGx5MkRUcmFuc2Zvcm0yPXUuYXBwbHkyRFRyYW5zZm9ybTI7dmFyIGM9dCgiLi9leHRlbmQiKTtpLmV4dGVuZEZsYXQ9Yy5leHRlbmRGbGF0LGkuZXh0ZW5kRGVlcD1jLmV4dGVuZERlZXAsaS5leHRlbmREZWVwQWxsPWMuZXh0ZW5kRGVlcEFsbCxpLmV4dGVuZERlZXBOb0FycmF5cz1jLmV4dGVuZERlZXBOb0FycmF5czt2YXIgaD10KCIuL2xvZ2dlcnMiKTtpLmxvZz1oLmxvZyxpLndhcm49aC53YXJuLGkuZXJyb3I9aC5lcnJvcixpLm5vdGlmaWVyPXQoIi4vbm90aWZpZXIiKSxpLnN3YXBBdHRycz1mdW5jdGlvbih0LGUscixuKXtyfHwocj0ieCIpLG58fChuPSJ5Iik7Zm9yKHZhciBvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBhPWVbb10scz1pLm5lc3RlZFByb3BlcnR5KHQsYS5yZXBsYWNlKCI/IixyKSksbD1pLm5lc3RlZFByb3BlcnR5KHQsYS5yZXBsYWNlKCI/IixuKSksdT1zLmdldCgpO3Muc2V0KGwuZ2V0KCkpLGwuc2V0KHUpfX0saS5wYXVzZUV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0LnN0b3BQcm9wYWdhdGlvbiYmdC5zdG9wUHJvcGFnYXRpb24oKSx0LnByZXZlbnREZWZhdWx0JiZ0LnByZXZlbnREZWZhdWx0KCksdC5jYW5jZWxCdWJibGU9ITAsITF9LGkuY29uc3RyYWluPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT5yP01hdGgubWF4KHIsTWF0aC5taW4oZSx0KSk6TWF0aC5tYXgoZSxNYXRoLm1pbihyLHQpKX0saS5iQm94SW50ZXJzZWN0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gcj1yfHwwLHQubGVmdDw9ZS5yaWdodCtyJiZlLmxlZnQ8PXQucmlnaHQrciYmdC50b3A8PWUuYm90dG9tK3ImJmUudG9wPD10LmJvdHRvbStyfSxpLmlkZW50aXR5PWZ1bmN0aW9uKHQpe3JldHVybiB0fSxpLnJhbmRzdHI9ZnVuY3Rpb24gZih0LGUscil7aWYocnx8KHI9MTYpLHZvaWQgMD09PWUmJihlPTI0KSwwPj1lKXJldHVybiIwIjt2YXIgbixpLG8sYT1NYXRoLmxvZyhNYXRoLnBvdygyLGUpKS9NYXRoLmxvZyhyKSxzPSIiO2ZvcihuPTI7YT09PTEvMDtuKj0yKWE9TWF0aC5sb2coTWF0aC5wb3coMixlL24pKS9NYXRoLmxvZyhyKSpuO3ZhciBsPWEtTWF0aC5mbG9vcihhKTtmb3Iobj0wO248TWF0aC5mbG9vcihhKTtuKyspbz1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqcikudG9TdHJpbmcocikscz1vK3M7bCYmKGk9TWF0aC5wb3cocixsKSxvPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSppKS50b1N0cmluZyhyKSxzPW8rcyk7dmFyIHU9cGFyc2VJbnQocyxyKTtyZXR1cm4gdCYmdC5pbmRleE9mKHMpPi0xfHx1IT09MS8wJiZ1Pj1NYXRoLnBvdygyLGUpP2YodCxlLHIpOnN9LGkuT3B0aW9uQ29udHJvbD1mdW5jdGlvbih0LGUpe3R8fCh0PXt9KSxlfHwoZT0ib3B0Iik7dmFyIHI9e307cmV0dXJuIHIub3B0aW9uTGlzdD1bXSxyLl9uZXdvcHRpb249ZnVuY3Rpb24obil7bltlXT10LHJbbi5uYW1lXT1uLHIub3B0aW9uTGlzdC5wdXNoKG4pfSxyWyJfIitlXT10LHJ9LGkuc21vb3RoPWZ1bmN0aW9uKHQsZSl7aWYoZT1NYXRoLnJvdW5kKGUpfHwwLDI+ZSlyZXR1cm4gdDt2YXIgcixuLGksbyxhPXQubGVuZ3RoLHM9MiphLGw9MiplLTEsdT1uZXcgQXJyYXkobCksYz1uZXcgQXJyYXkoYSk7Zm9yKHI9MDtsPnI7cisrKXVbcl09KDEtTWF0aC5jb3MoTWF0aC5QSSoocisxKS9lKSkvKDIqZSk7Zm9yKHI9MDthPnI7cisrKXtmb3Iobz0wLG49MDtsPm47bisrKWk9cituKzEtZSwtYT5pP2ktPXMqTWF0aC5yb3VuZChpL3MpOmk+PXMmJihpLT1zKk1hdGguZmxvb3IoaS9zKSksMD5pP2k9LTEtaTppPj1hJiYoaT1zLTEtaSksbys9dFtpXSp1W25dO2Nbcl09b31yZXR1cm4gY30saS5zeW5jT3JBc3luYz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbigpe3JldHVybiBpLnN5bmNPckFzeW5jKHQsZSxyKX1mb3IodmFyIG8sYTt0Lmxlbmd0aDspaWYoYT10LnNwbGljZSgwLDEpWzBdLG89YShlKSxvJiZvLnRoZW4pcmV0dXJuIG8udGhlbihuKS50aGVuKHZvaWQgMCxpLnByb21pc2VFcnJvcik7cmV0dXJuIHImJnIoZSl9LGkuc3RyaXBUcmFpbGluZ1NsYXNoPWZ1bmN0aW9uKHQpe3JldHVybiIvIj09PXQuc3Vic3RyKC0xKT90LnN1YnN0cigwLHQubGVuZ3RoLTEpOnR9LGkubm9uZU9yQWxsPWZ1bmN0aW9uKHQsZSxyKXtpZih0KXt2YXIgbixpLG89ITEsYT0hMDtmb3Iobj0wO248ci5sZW5ndGg7bisrKWk9dFtyW25dXSx2b2lkIDAhPT1pJiZudWxsIT09aT9vPSEwOmE9ITE7aWYobyYmIWEpZm9yKG49MDtuPHIubGVuZ3RoO24rKyl0W3Jbbl1dPWVbcltuXV19fSxpLnB1c2hVbmlxdWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZSYmLTE9PT10LmluZGV4T2YoZSkmJnQucHVzaChlKSx0fSxpLm1lcmdlQXJyYXk9ZnVuY3Rpb24odCxlLHIpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBuPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKSxpPTA7bj5pO2krKyllW2ldW3JdPXRbaV19LGkubWluRXh0ZW5kPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e307Im9iamVjdCIhPXR5cGVvZiBlJiYoZT17fSk7dmFyIG4sbyxhLHM9MyxsPU9iamVjdC5rZXlzKHQpO2ZvcihuPTA7bjxsLmxlbmd0aDtuKyspbz1sW25dLGE9dFtvXSwiXyIhPT1vLmNoYXJBdCgwKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGEmJigibW9kdWxlIj09PW8/cltvXT1hOkFycmF5LmlzQXJyYXkoYSk/cltvXT1hLnNsaWNlKDAscyk6YSYmIm9iamVjdCI9PXR5cGVvZiBhP3Jbb109aS5taW5FeHRlbmQodFtvXSxlW29dKTpyW29dPWEpO2ZvcihsPU9iamVjdC5rZXlzKGUpLG49MDtuPGwubGVuZ3RoO24rKylvPWxbbl0sYT1lW29dLCJvYmplY3QiPT10eXBlb2YgYSYmbyBpbiByJiYib2JqZWN0Ij09dHlwZW9mIHJbb118fChyW29dPWEpO3JldHVybiByfSxpLnRpdGxlQ2FzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKX0saS5jb250YWluc0FueT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKC0xIT09dC5pbmRleE9mKGVbcl0pKXJldHVybiEwO3JldHVybiExfSxpLmdldFBsb3REaXY9ZnVuY3Rpb24odCl7Zm9yKDt0JiZ0LnJlbW92ZUF0dHJpYnV0ZTt0PXQucGFyZW50Tm9kZSlpZihpLmlzUGxvdERpdih0KSlyZXR1cm4gdH0saS5pc1Bsb3REaXY9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCk7cmV0dXJuIGUuc2l6ZSgpJiZlLmNsYXNzZWQoImpzLXBsb3RseS1wbG90Iil9LGkucmVtb3ZlRWxlbWVudD1mdW5jdGlvbih0KXt2YXIgZT10JiZ0LnBhcmVudE5vZGU7ZSYmZS5yZW1vdmVDaGlsZCh0KX0saS5hZGRTdHlsZVJ1bGU9ZnVuY3Rpb24odCxlKXtpZighaS5zdHlsZVNoZWV0KXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3IuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpLGkuc3R5bGVTaGVldD1yLnNoZWV0fXZhciBuPWkuc3R5bGVTaGVldDtuLmluc2VydFJ1bGU/bi5pbnNlcnRSdWxlKHQrInsiK2UrIn0iLDApOm4uYWRkUnVsZT9uLmFkZFJ1bGUodCxlLDApOmkud2FybigiYWRkU3R5bGVSdWxlIGZhaWxlZCIpfSxpLmdldFRyYW5zbGF0ZT1mdW5jdGlvbih0KXt2YXIgZT0vLipcYnRyYW5zbGF0ZVwoKFxkKlwuP1xkKilbXlxkXSooXGQqXC4/XGQqKVteXGRdLiovLHI9dC5hdHRyPyJhdHRyIjoiZ2V0QXR0cmlidXRlIixuPXRbcl0oInRyYW5zZm9ybSIpfHwiIixpPW4ucmVwbGFjZShlLGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZSxyXS5qb2luKCIgIil9KS5zcGxpdCgiICIpO3JldHVybnt4OitpWzBdfHwwLHk6K2lbMV18fDB9fSxpLnNldFRyYW5zbGF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49LyhcYnRyYW5zbGF0ZVwoLio/XCk7PykvLGk9dC5hdHRyPyJhdHRyIjoiZ2V0QXR0cmlidXRlIixvPXQuYXR0cj8iYXR0ciI6InNldEF0dHJpYnV0ZSIsYT10W2ldKCJ0cmFuc2Zvcm0iKXx8IiI7cmV0dXJuIGU9ZXx8MCxyPXJ8fDAsYT1hLnJlcGxhY2UobiwiIikudHJpbSgpLGErPSIgdHJhbnNsYXRlKCIrZSsiLCAiK3IrIikiLGE9YS50cmltKCksdFtvXSgidHJhbnNmb3JtIixhKSxhfSxpLmdldFNjYWxlPWZ1bmN0aW9uKHQpe3ZhciBlPS8uKlxic2NhbGVcKChcZCpcLj9cZCopW15cZF0qKFxkKlwuP1xkKilbXlxkXS4qLyxyPXQuYXR0cj8iYXR0ciI6ImdldEF0dHJpYnV0ZSIsbj10W3JdKCJ0cmFuc2Zvcm0iKXx8IiIsaT1uLnJlcGxhY2UoZSxmdW5jdGlvbih0LGUscil7cmV0dXJuW2Uscl0uam9pbigiICIpfSkuc3BsaXQoIiAiKTtyZXR1cm57eDoraVswXXx8MSx5OitpWzFdfHwxfX0saS5zZXRTY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49LyhcYnNjYWxlXCguKj9cKTs/KS8saT10LmF0dHI/ImF0dHIiOiJnZXRBdHRyaWJ1dGUiLG89dC5hdHRyPyJhdHRyIjoic2V0QXR0cmlidXRlIixhPXRbaV0oInRyYW5zZm9ybSIpfHwiIjtyZXR1cm4gZT1lfHwxLHI9cnx8MSxhPWEucmVwbGFjZShuLCIiKS50cmltKCksYSs9IiBzY2FsZSgiK2UrIiwgIityKyIpIixhPWEudHJpbSgpLHRbb10oInRyYW5zZm9ybSIsYSksYX0saS5zZXRQb2ludEdyb3VwU2NhbGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbztyZXR1cm4gZT1lfHwxLHI9cnx8MSxpPTE9PT1lJiYxPT09cj8iIjoiIHNjYWxlKCIrZSsiLCIrcisiKSIsbz0vXHMqc2MuKi8sdC5lYWNoKGZ1bmN0aW9uKCl7bj0odGhpcy5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpfHwiIikucmVwbGFjZShvLCIiKSxuKz1pLG49bi50cmltKCksdGhpcy5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsbil9KSxpfSxpLmlzSUU9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYn0saS5vYmplY3RGcm9tUGF0aD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPXQuc3BsaXQoIi4iKSxpPXI9e30sbz0wO288bi5sZW5ndGg7bysrKXt2YXIgYT1uW29dLHM9bnVsbCxsPW5bb10ubWF0Y2goLyguKilcWyhbMC05XSspXF0vKTtsPyhhPWxbMV0scz1sWzJdLHI9clthXT1bXSxvPT09bi5sZW5ndGgtMT9yW3NdPWU6cltzXT17fSxyPXJbc10pOihvPT09bi5sZW5ndGgtMT9yW2FdPWU6clthXT17fSxyPXJbYV0pfXJldHVybiBpfSxpLm51bVNlcGFyYXRlPWZ1bmN0aW9uKHQsZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlfHwwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJTZXBhcmF0b3Igc3RyaW5nIHJlcXVpcmVkIGZvciBmb3JtYXR0aW5nISIpOyJudW1iZXIiPT10eXBlb2YgdCYmKHQ9U3RyaW5nKHQpKTt2YXIgcj0vKFxkKykoXGR7M30pLyxuPWUuY2hhckF0KDApLGk9ZS5jaGFyQXQoMSksbz10LnNwbGl0KCIuIiksYT1vWzBdLHM9by5sZW5ndGg+MT9uK29bMV06IiI7aWYoaSYmKG8ubGVuZ3RoPjF8fGEubGVuZ3RoPjQpKWZvcig7ci50ZXN0KGEpOylhPWEucmVwbGFjZShyLCIkMSIraSsiJDIiKTtyZXR1cm4gYStzfX0seyIuL2NvZXJjZSI6NTgzLCIuL2RhdGVzIjo1ODQsIi4vZXh0ZW5kIjo1ODYsIi4vaXNfcGxhaW5fb2JqZWN0Ijo1OTIsIi4vbG9nZ2VycyI6NTkzLCIuL21hdHJpeCI6NTk0LCIuL25lc3RlZF9wcm9wZXJ0eSI6NTk1LCIuL25vdGlmaWVyIjo1OTYsIi4vc2VhcmNoIjo1OTksIi4vc3RhdHMiOjYwMixkMzoxMjR9XSw1OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB3aW5kb3cmJndpbmRvdy5wcm9jZXNzJiZ3aW5kb3cucHJvY2Vzcy52ZXJzaW9ucz8iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KToiW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSYmT2JqZWN0LmdldFByb3RvdHlwZU9mKHQpPT09T2JqZWN0LnByb3RvdHlwZX19LHt9XSw1OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGxvdF9hcGkvcGxvdF9jb25maWciKSxpPWUuZXhwb3J0cz17fTtpLmxvZz1mdW5jdGlvbigpe2lmKG4ubG9nZ2luZz4xKXtmb3IodmFyIHQ9WyJMT0c6Il0sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdC5wdXNoKGFyZ3VtZW50c1tlXSk7Y29uc29sZS50cmFjZT9jb25zb2xlLnRyYWNlLmFwcGx5KGNvbnNvbGUsdCk6Y29uc29sZS5sb2cuYXBwbHkoY29uc29sZSx0KX19LGkud2Fybj1mdW5jdGlvbigpe2lmKG4ubG9nZ2luZz4wKXtmb3IodmFyIHQ9WyJXQVJOOiJdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQucHVzaChhcmd1bWVudHNbZV0pO2NvbnNvbGUudHJhY2U/Y29uc29sZS50cmFjZS5hcHBseShjb25zb2xlLHQpOmNvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsdCl9fSxpLmVycm9yPWZ1bmN0aW9uKCl7aWYobi5sb2dnaW5nPjApe2Zvcih2YXIgdD1bIkVSUk9SOiJdLGU9MDtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXQucHVzaChhcmd1bWVudHNbZV0pO2NvbnNvbGUuZXJyb3IuYXBwbHkoY29uc29sZSxhcmd1bWVudHMpfX19LHsiLi4vcGxvdF9hcGkvcGxvdF9jb25maWciOjYwN31dLDU5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmluaXQyZEFycmF5PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7dD5uO24rKylyW25dPW5ldyBBcnJheShlKTtyZXR1cm4gcn0sci50cmFuc3Bvc2VSYWdnZWQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPTAsaT10Lmxlbmd0aDtmb3IoZT0wO2k+ZTtlKyspbj1NYXRoLm1heChuLHRbZV0ubGVuZ3RoKTt2YXIgbz1uZXcgQXJyYXkobik7Zm9yKGU9MDtuPmU7ZSsrKWZvcihvW2VdPW5ldyBBcnJheShpKSxyPTA7aT5yO3IrKylvW2VdW3JdPXRbcl1bZV07cmV0dXJuIG99LHIuZG90PWZ1bmN0aW9uKHQsZSl7aWYoIXQubGVuZ3RofHwhZS5sZW5ndGh8fHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIG4saSxvPXQubGVuZ3RoO2lmKHRbMF0ubGVuZ3RoKWZvcihuPW5ldyBBcnJheShvKSxpPTA7bz5pO2krKyluW2ldPXIuZG90KHRbaV0sZSk7ZWxzZSBpZihlWzBdLmxlbmd0aCl7dmFyIGE9ci50cmFuc3Bvc2VSYWdnZWQoZSk7Zm9yKG49bmV3IEFycmF5KGEubGVuZ3RoKSxpPTA7aTxhLmxlbmd0aDtpKyspbltpXT1yLmRvdCh0LGFbaV0pfWVsc2UgZm9yKG49MCxpPTA7bz5pO2krKyluKz10W2ldKmVbaV07cmV0dXJuIG59LHIudHJhbnNsYXRpb25NYXRyaXg9ZnVuY3Rpb24odCxlKXtyZXR1cm5bWzEsMCx0XSxbMCwxLGVdLFswLDAsMV1dfSxyLnJvdGF0aW9uTWF0cml4PWZ1bmN0aW9uKHQpe3ZhciBlPXQqTWF0aC5QSS8xODA7cmV0dXJuW1tNYXRoLmNvcyhlKSwtTWF0aC5zaW4oZSksMF0sW01hdGguc2luKGUpLE1hdGguY29zKGUpLDBdLFswLDAsMV1dfSxyLnJvdGF0aW9uWFlNYXRyaXg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiByLmRvdChyLmRvdChyLnRyYW5zbGF0aW9uTWF0cml4KGUsbiksci5yb3RhdGlvbk1hdHJpeCh0KSksci50cmFuc2xhdGlvbk1hdHJpeCgtZSwtbikpfSxyLmFwcGx5MkRUcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzOzM9PT1lLmxlbmd0aCYmKGU9ZVswXSk7dmFyIG49MT09PWFyZ3VtZW50cy5sZW5ndGg/ZVswXTpbZVswXSxlWzFdXTtyZXR1cm4gci5kb3QodCxbblswXSxuWzFdLDFdKS5zbGljZSgwLDIpfX0sci5hcHBseTJEVHJhbnNmb3JtMj1mdW5jdGlvbih0KXt2YXIgZT1yLmFwcGx5MkRUcmFuc2Zvcm0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHQuc2xpY2UoMCwyKSkuY29uY2F0KGUodC5zbGljZSgyLDQpKSl9fX0se31dLDU5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsaSxvLGEscyxsPXQ7Zm9yKGE9MDthPGUubGVuZ3RoLTE7YSsrKXtpZihyPWVbYV0sLTE9PT1yKXtmb3IoaT0hMCxvPVtdLHM9MDtzPGwubGVuZ3RoO3MrKylvW3NdPW4obFtzXSxlLnNsaWNlKGErMSkpKCksb1tzXSE9PW9bMF0mJihpPSExKTtyZXR1cm4gaT9vWzBdOm99aWYoIm51bWJlciI9PXR5cGVvZiByJiYhQXJyYXkuaXNBcnJheShsKSlyZXR1cm47aWYobD1sW3JdLCJvYmplY3QiIT10eXBlb2YgbHx8bnVsbD09PWwpcmV0dXJufWlmKCJvYmplY3QiPT10eXBlb2YgbCYmbnVsbCE9PWwmJihvPWxbZVthXV0sbnVsbCE9PW8pKXJldHVybiBvfX1mdW5jdGlvbiBpKHQsZSl7dmFyIHI9WyJhbm5vdGF0aW9ucyIsInNoYXBlcyIsInJhbmdlIiwiZG9tYWluIiwiYnV0dG9ucyJdLG49LTE9PT1yLmluZGV4T2YoZSk7cmV0dXJuIEFycmF5LmlzQXJyYXkodCkmJm59ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbixvLGM9dCxoPVt0XSxmPXUocikmJiFpKHIsZVtlLmxlbmd0aC0xXSk7Zm9yKG89MDtvPGUubGVuZ3RoLTE7bysrKXtpZihuPWVbb10sIm51bWJlciI9PXR5cGVvZiBuJiYhQXJyYXkuaXNBcnJheShjKSl0aHJvdyJhcnJheSBpbmRleCBidXQgY29udGFpbmVyIGlzIG5vdCBhbiBhcnJheSI7aWYoLTE9PT1uKXtpZihmPSFhKGMsZS5zbGljZShvKzEpLHIpKWJyZWFrO3JldHVybn1pZighcyhjLG4sZVtvKzFdLGYpKWJyZWFrO2lmKGM9Y1tuXSwib2JqZWN0IiE9dHlwZW9mIGN8fG51bGw9PT1jKXRocm93ImNvbnRhaW5lciBpcyBub3QgYW4gb2JqZWN0IjtoLnB1c2goYyl9Zj8obz09PWUubGVuZ3RoLTEmJmRlbGV0ZSBjW2Vbb11dLGwoaCkpOmNbZVtvXV09cn19ZnVuY3Rpb24gYSh0LGUscil7dmFyIG4saT1BcnJheS5pc0FycmF5KHIpLGE9ITAsbD1yLGM9aT8hMTp1KHIpLGg9ZVswXTtmb3Iobj0wO248dC5sZW5ndGg7bisrKWkmJihsPXJbbiVyLmxlbmd0aF0sYz11KGwpKSxjJiYoYT0hMSkscyh0LG4saCxjKSYmbyh0W25dLGUpKGwpO3JldHVybiBhfWZ1bmN0aW9uIHModCxlLHIsbil7aWYodm9pZCAwPT09dFtlXSl7aWYobilyZXR1cm4hMTsibnVtYmVyIj09dHlwZW9mIHI/dFtlXT1bXTp0W2VdPXt9fXJldHVybiEwfWZ1bmN0aW9uIGwodCl7dmFyIGUscixuLG8sYTtmb3IoZT10Lmxlbmd0aC0xO2U+PTA7ZS0tKXtpZihuPXRbZV0sYT0hMSxBcnJheS5pc0FycmF5KG4pKWZvcihyPW4ubGVuZ3RoLTE7cj49MDtyLS0pdShuW3JdKT9hP25bcl09dm9pZCAwOm4ucG9wKCk6YT0hMDtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4pZm9yKG89T2JqZWN0LmtleXMobiksYT0hMSxyPW8ubGVuZ3RoLTE7cj49MDtyLS0pdShuW29bcl1dKSYmIWkobltvW3JdXSxvW3JdKT9kZWxldGUgbltvW3JdXTphPSEwO2lmKGEpcmV0dXJufX1mdW5jdGlvbiB1KHQpe3JldHVybiB2b2lkIDA9PT10fHxudWxsPT09dD8hMDoib2JqZWN0IiE9dHlwZW9mIHQ/ITE6QXJyYXkuaXNBcnJheSh0KT8hdC5sZW5ndGg6IU9iamVjdC5rZXlzKHQpLmxlbmd0aH1mdW5jdGlvbiBjKHQsZSxyKXtyZXR1cm57c2V0OmZ1bmN0aW9uKCl7dGhyb3ciYmFkIGNvbnRhaW5lciJ9LGdldDpmdW5jdGlvbigpe30sYXN0cjplLHBhcnRzOnIsb2JqOnR9fXZhciBoPXQoImZhc3QtaXNudW1lcmljIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoaChlKSllPVN0cmluZyhlKTtlbHNlIGlmKCJzdHJpbmciIT10eXBlb2YgZXx8IlstMV0iPT09ZS5zdWJzdHIoZS5sZW5ndGgtNCkpdGhyb3ciYmFkIHByb3BlcnR5IHN0cmluZyI7Zm9yKHZhciByLGksYSxzPTAsbD1lLnNwbGl0KCIuIik7czxsLmxlbmd0aDspe2lmKHI9U3RyaW5nKGxbc10pLm1hdGNoKC9eKFteXFtcXV0qKSgoXFtcLT9bMC05XSpcXSkrKSQvKSl7aWYoclsxXSlsW3NdPXJbMV07ZWxzZXtpZigwIT09cyl0aHJvdyJiYWQgcHJvcGVydHkgc3RyaW5nIjtsLnNwbGljZSgwLDEpfWZvcihpPXJbMl0uc3Vic3RyKDEsclsyXS5sZW5ndGgtMikuc3BsaXQoIl1bIiksYT0wO2E8aS5sZW5ndGg7YSsrKXMrKyxsLnNwbGljZShzLDAsTnVtYmVyKGlbYV0pKX1zKyt9cmV0dXJuIm9iamVjdCIhPXR5cGVvZiB0P2ModCxlLGwpOntzZXQ6byh0LGwpLGdldDpuKHQsbCksYXN0cjplLHBhcnRzOmwsb2JqOnR9fX0seyJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNTk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLG89W107ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0KXt0LmR1cmF0aW9uKDcwMCkuc3R5bGUoIm9wYWNpdHkiLDApLmVhY2goImVuZCIsZnVuY3Rpb24odCl7dmFyIGU9by5pbmRleE9mKHQpOy0xIT09ZSYmby5zcGxpY2UoZSwxKSxuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pfWlmKC0xPT09by5pbmRleE9mKHQpKXtvLnB1c2godCk7dmFyIGE9MWUzO2koZSk/YT1lOiJsb25nIj09PWUmJihhPTNlMyk7dmFyIHM9bi5zZWxlY3QoImJvZHkiKS5zZWxlY3RBbGwoIi5wbG90bHktbm90aWZpZXIiKS5kYXRhKFswXSk7cy5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgicGxvdGx5LW5vdGlmaWVyIiwhMCk7dmFyIGw9cy5zZWxlY3RBbGwoIi5ub3RpZmllci1ub3RlIikuZGF0YShvKTtsLmVudGVyKCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJub3RpZmllci1ub3RlIiwhMCkuc3R5bGUoIm9wYWNpdHkiLDApLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7ZS5hcHBlbmQoImJ1dHRvbiIpLmNsYXNzZWQoIm5vdGlmaWVyLWNsb3NlIiwhMCkuaHRtbCgiJnRpbWVzOyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtlLnRyYW5zaXRpb24oKS5jYWxsKHIpfSksZS5hcHBlbmQoInAiKS5odG1sKHQpLGUudHJhbnNpdGlvbigpLmR1cmF0aW9uKDcwMCkuc3R5bGUoIm9wYWNpdHkiLDEpLnRyYW5zaXRpb24oKS5kZWxheShhKS5jYWxsKHIpfSl9fX0se2QzOjEyNCwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDU5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL21hdHJpeCIpLmRvdCxpPWUuZXhwb3J0cz17fTtpLnRlc3Rlcj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7dmFyIHI9dFswXSxuPXRbMV07cmV0dXJuIGk+cnx8cj5vfHxhPm58fG4+cz8hMTohZXx8IXUodCl9ZnVuY3Rpb24gcih0LGUpe3ZhciByPXRbMF0sbD10WzFdO2lmKGk+cnx8cj5vfHxhPmx8fGw+cylyZXR1cm4hMTt2YXIgdSxjLGgsZixwLGQ9bi5sZW5ndGgsbT1uWzBdWzBdLGc9blswXVsxXSx2PTA7Zm9yKHU9MTtkPnU7dSsrKWlmKGM9bSxoPWcsbT1uW3VdWzBdLGc9blt1XVsxXSxmPU1hdGgubWluKGMsbSksIShmPnJ8fHI+TWF0aC5tYXgoYyxtKXx8bD5NYXRoLm1heChoLGcpKSlpZihsPE1hdGgubWluKGgsZykpciE9PWYmJnYrKztlbHNle2lmKHA9bT09PWM/bDpoKyhyLWMpKihnLWgpLyhtLWMpLGw9PT1wKXJldHVybiAxIT09dXx8IWU7cD49bCYmciE9PWYmJnYrK31yZXR1cm4gdiUyPT09MX12YXIgbj10LnNsaWNlKCksaT1uWzBdWzBdLG89aSxhPW5bMF1bMV0scz1hO24ucHVzaChuWzBdKTtmb3IodmFyIGw9MTtsPG4ubGVuZ3RoO2wrKylpPU1hdGgubWluKGksbltsXVswXSksbz1NYXRoLm1heChvLG5bbF1bMF0pLGE9TWF0aC5taW4oYSxuW2xdWzFdKSxzPU1hdGgubWF4KHMsbltsXVsxXSk7dmFyIHUsYz0hMTtyZXR1cm4gNT09PW4ubGVuZ3RoJiYoblswXVswXT09PW5bMV1bMF0/blsyXVswXT09PW5bM11bMF0mJm5bMF1bMV09PT1uWzNdWzFdJiZuWzFdWzFdPT09blsyXVsxXSYmKGM9ITAsdT1mdW5jdGlvbih0KXtyZXR1cm4gdFswXT09PW5bMF1bMF19KTpuWzBdWzFdPT09blsxXVsxXSYmblsyXVsxXT09PW5bM11bMV0mJm5bMF1bMF09PT1uWzNdWzBdJiZuWzFdWzBdPT09blsyXVswXSYmKGM9ITAsdT1mdW5jdGlvbih0KXtyZXR1cm4gdFsxXT09PW5bMF1bMV19KSkse3htaW46aSx4bWF4Om8seW1pbjphLHltYXg6cyxwdHM6bixjb250YWluczpjP2U6cixpc1JlY3Q6Y319O3ZhciBvPWkuaXNTZWdtZW50QmVudD1mdW5jdGlvbih0LGUscixpKXt2YXIgbyxhLHMsbD10W2VdLHU9W3Rbcl1bMF0tbFswXSx0W3JdWzFdLWxbMV1dLGM9bih1LHUpLGg9TWF0aC5zcXJ0KGMpLGY9Wy11WzFdL2gsdVswXS9oXTtmb3Iobz1lKzE7cj5vO28rKylpZihhPVt0W29dWzBdLWxbMF0sdFtvXVsxXS1sWzFdXSxzPW4oYSx1KSwwPnN8fHM+Y3x8TWF0aC5hYnMobihhLGYpKT5pKXJldHVybiEwO3JldHVybiExfTtpLmZpbHRlcj1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocil7dC5wdXNoKHIpO3ZhciBzPW4ubGVuZ3RoLGw9aTtuLnNwbGljZShhKzEpO2Zvcih2YXIgdT1sKzE7dTx0Lmxlbmd0aDt1KyspKHU9PT10Lmxlbmd0aC0xfHxvKHQsbCx1KzEsZSkpJiYobi5wdXNoKHRbdV0pLG4ubGVuZ3RoPHMtMiYmKGk9dSxhPW4ubGVuZ3RoLTEpLGw9dSl9dmFyIG49W3RbMF1dLGk9MCxhPTA7aWYodC5sZW5ndGg+MSl7dmFyIHM9dC5wb3AoKTtyKHMpfXJldHVybnthZGRQdDpyLHJhdzp0LGZpbHRlcmVkOm59fX0seyIuL21hdHJpeCI6NTk0fV0sNTk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHIsbj1bXSxvPTA7bzxlLmxlbmd0aDtvKyspcj1lW29dLHI9PT10P25bb109cjoib2JqZWN0Ij09dHlwZW9mIHI/bltvXT1BcnJheS5pc0FycmF5KHIpP2kuZXh0ZW5kRGVlcChbXSxyKTppLmV4dGVuZERlZXBBbGwoe30scik6bltvXT1yO3JldHVybiBufXZhciBpPXQoIi4uL2xpYiIpLG89dCgiLi4vcGxvdF9hcGkvcGxvdF9jb25maWciKSxhPXt9O2EuYWRkPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEscztyZXR1cm4gdC51bmRvUXVldWU9dC51bmRvUXVldWV8fHtpbmRleDowLHF1ZXVlOltdLHNlcXVlbmNlOiExfSxzPXQudW5kb1F1ZXVlLmluZGV4LHQuYXV0b3BsYXk/dm9pZCh0LnVuZG9RdWV1ZS5pblNlcXVlbmNlfHwodC5hdXRvcGxheT0hMSkpOighdC51bmRvUXVldWUuc2VxdWVuY2V8fHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U/KGE9e3VuZG86e2NhbGxzOltdLGFyZ3M6W119LHJlZG86e2NhbGxzOltdLGFyZ3M6W119fSx0LnVuZG9RdWV1ZS5xdWV1ZS5zcGxpY2Uocyx0LnVuZG9RdWV1ZS5xdWV1ZS5sZW5ndGgtcyxhKSx0LnVuZG9RdWV1ZS5pbmRleCs9MSk6YT10LnVuZG9RdWV1ZS5xdWV1ZVtzLTFdLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITEsYSYmKGEudW5kby5jYWxscy51bnNoaWZ0KGUpLGEudW5kby5hcmdzLnVuc2hpZnQociksYS5yZWRvLmNhbGxzLnB1c2gobiksYS5yZWRvLmFyZ3MucHVzaChpKSksdm9pZCh0LnVuZG9RdWV1ZS5xdWV1ZS5sZW5ndGg+by5xdWV1ZUxlbmd0aCYmKHQudW5kb1F1ZXVlLnF1ZXVlLnNoaWZ0KCksdC51bmRvUXVldWUuaW5kZXgtLSkpKX0sYS5zdGFydFNlcXVlbmNlPWZ1bmN0aW9uKHQpe3QudW5kb1F1ZXVlPXQudW5kb1F1ZXVlfHx7aW5kZXg6MCxxdWV1ZTpbXSxzZXF1ZW5jZTohMX0sdC51bmRvUXVldWUuc2VxdWVuY2U9ITAsdC51bmRvUXVldWUuYmVnaW5TZXF1ZW5jZT0hMH0sYS5zdG9wU2VxdWVuY2U9ZnVuY3Rpb24odCl7dC51bmRvUXVldWU9dC51bmRvUXVldWV8fHtpbmRleDowLHF1ZXVlOltdLHNlcXVlbmNlOiExfSx0LnVuZG9RdWV1ZS5zZXF1ZW5jZT0hMSx0LnVuZG9RdWV1ZS5iZWdpblNlcXVlbmNlPSExfSxhLnVuZG89ZnVuY3Rpb24odCl7dmFyIGUscjtpZih0LmZyYW1ld29yayYmdC5mcmFtZXdvcmsuaXNQb2xhcilyZXR1cm4gdm9pZCB0LmZyYW1ld29yay51bmRvKCk7aWYoISh2b2lkIDA9PT10LnVuZG9RdWV1ZXx8aXNOYU4odC51bmRvUXVldWUuaW5kZXgpfHx0LnVuZG9RdWV1ZS5pbmRleDw9MCkpe2Zvcih0LnVuZG9RdWV1ZS5pbmRleC0tLGU9dC51bmRvUXVldWUucXVldWVbdC51bmRvUXVldWUuaW5kZXhdLHQudW5kb1F1ZXVlLmluU2VxdWVuY2U9ITAscj0wO3I8ZS51bmRvLmNhbGxzLmxlbmd0aDtyKyspYS5wbG90RG8odCxlLnVuZG8uY2FsbHNbcl0sZS51bmRvLmFyZ3Nbcl0pO3QudW5kb1F1ZXVlLmluU2VxdWVuY2U9ITEsdC5hdXRvcGxheT0hMX19LGEucmVkbz1mdW5jdGlvbih0KXt2YXIgZSxyO2lmKHQuZnJhbWV3b3JrJiZ0LmZyYW1ld29yay5pc1BvbGFyKXJldHVybiB2b2lkIHQuZnJhbWV3b3JrLnJlZG8oKTtpZighKHZvaWQgMD09PXQudW5kb1F1ZXVlfHxpc05hTih0LnVuZG9RdWV1ZS5pbmRleCl8fHQudW5kb1F1ZXVlLmluZGV4Pj10LnVuZG9RdWV1ZS5xdWV1ZS5sZW5ndGgpKXtmb3IoZT10LnVuZG9RdWV1ZS5xdWV1ZVt0LnVuZG9RdWV1ZS5pbmRleF0sdC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMCxyPTA7cjxlLnJlZG8uY2FsbHMubGVuZ3RoO3IrKylhLnBsb3REbyh0LGUucmVkby5jYWxsc1tyXSxlLnJlZG8uYXJnc1tyXSk7dC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMSx0LmF1dG9wbGF5PSExLHQudW5kb1F1ZXVlLmluZGV4Kyt9fSxhLnBsb3REbz1mdW5jdGlvbih0LGUscil7dC5hdXRvcGxheT0hMCxyPW4odCxyKSxlLmFwcGx5KG51bGwscil9LGUuZXhwb3J0cz1hfSx7Ii4uL2xpYiI6NTkxLCIuLi9wbG90X2FwaS9wbG90X2NvbmZpZyI6NjA3fV0sNTk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gZT50fWZ1bmN0aW9uIGkodCxlKXtyZXR1cm4gZT49dH1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQ+ZX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIHQ+PWV9dmFyIHM9dCgiZmFzdC1pc251bWVyaWMiKSxsPXQoIi4uL2xpYiIpO3IuZmluZEJpbj1mdW5jdGlvbih0LGUscil7aWYocyhlLnN0YXJ0KSlyZXR1cm4gcj9NYXRoLmNlaWwoKHQtZS5zdGFydCkvZS5zaXplKS0xOk1hdGguZmxvb3IoKHQtZS5zdGFydCkvZS5zaXplKTt2YXIgdSxjLGg9MCxmPWUubGVuZ3RoLHA9MDtmb3IoYz1lW2UubGVuZ3RoLTFdPj1lWzBdP3I/bjppOnI/YTpvO2Y+aCYmcCsrPDEwMDspdT1NYXRoLmZsb29yKChoK2YpLzIpLGMoZVt1XSx0KT9oPXUrMTpmPXU7cmV0dXJuIHA+OTAmJmwubG9nKCJMb25nIGJpbmFyeSBzZWFyY2guLi4iKSxoLTF9LHIuc29ydGVyQXNjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0sci5zb3J0ZXJEZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS10fSxyLmRpc3RpbmN0VmFscz1mdW5jdGlvbih0KXt2YXIgZT10LnNsaWNlKCk7ZS5zb3J0KHIuc29ydGVyQXNjKTtmb3IodmFyIG49ZS5sZW5ndGgtMSxpPWVbbl0tZVswXXx8MSxvPWkvKG58fDEpLzFlNCxhPVtlWzBdXSxzPTA7bj5zO3MrKyllW3MrMV0+ZVtzXStvJiYoaT1NYXRoLm1pbihpLGVbcysxXS1lW3NdKSxhLnB1c2goZVtzKzFdKSk7cmV0dXJue3ZhbHM6YSxtaW5EaWZmOml9fSxyLnJvdW5kVXA9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpPTAsbz1lLmxlbmd0aC0xLGE9MCxzPXI/MDoxLGw9cj8xOjAsdT1yP01hdGguY2VpbDpNYXRoLmZsb29yO28+aSYmYSsrPDEwMDspbj11KChpK28pLzIpLGVbbl08PXQ/aT1uK3M6bz1uLWw7cmV0dXJuIGVbaV19fSx7Ii4uL2xpYiI6NTkxLCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNjAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyh0LmF0dHIoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZvckVhY2goZnVuY3Rpb24oZSl7MD09PWUuaW5kZXhPZigiY3Vyc29yLSIpJiZ0LmNsYXNzZWQoZSwhMSl9KSxlJiZ0LmNsYXNzZWQoImN1cnNvci0iK2UsITApfX0se31dLDYwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksaT1mdW5jdGlvbigpe307ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0KSJmdW5jdGlvbiI9PXR5cGVvZiB0W2VdJiYodFtlXT1pKTt0LmRlc3Ryb3k9ZnVuY3Rpb24oKXt0LmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQuY29udGFpbmVyKX07dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHIudGV4dENvbnRlbnQ9IldlYmdsIGlzIG5vdCBzdXBwb3J0ZWQgYnkgeW91ciBicm93c2VyIC0gdmlzaXQgaHR0cDovL2dldC53ZWJnbC5vcmcgZm9yIG1vcmUgaW5mbyIsci5zdHlsZS5jdXJzb3I9InBvaW50ZXIiLHIuc3R5bGUuZm9udFNpemU9IjI0cHgiLHIuc3R5bGUuY29sb3I9bi5kZWZhdWx0c1swXSx0LmNvbnRhaW5lci5hcHBlbmRDaGlsZChyKSx0LmNvbnRhaW5lci5zdHlsZS5iYWNrZ3JvdW5kPSIjRkZGRkZGIix0LmNvbnRhaW5lci5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oImh0dHA6Ly9nZXQud2ViZ2wub3JnIil9LCExfX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo1MDZ9XSw2MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKTtyLmFnZ051bXM9ZnVuY3Rpb24odCxlLGksbyl7dmFyIGEscztpZihvfHwobz1pLmxlbmd0aCksbihlKXx8KGU9ITEpLEFycmF5LmlzQXJyYXkoaVswXSkpe2ZvcihzPW5ldyBBcnJheShvKSxhPTA7bz5hO2ErKylzW2FdPXIuYWdnTnVtcyh0LGUsaVthXSk7aT1zfWZvcihhPTA7bz5hO2ErKyluKGUpP24oaVthXSkmJihlPXQoK2UsK2lbYV0pKTplPWlbYV07cmV0dXJuIGV9LHIubGVuPWZ1bmN0aW9uKHQpe3JldHVybiByLmFnZ051bXMoZnVuY3Rpb24odCl7cmV0dXJuIHQrMX0sMCx0KX0sci5tZWFuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fChlPXIubGVuKHQpKSxyLmFnZ051bXMoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSwwLHQpL2V9LHIudmFyaWFuY2U9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlfHwoZT1yLmxlbih0KSksbihpKXx8KGk9ci5tZWFuKHQsZSkpLHIuYWdnTnVtcyhmdW5jdGlvbih0LGUpe3JldHVybiB0K01hdGgucG93KGUtaSwyKX0sMCx0KS9lfSxyLnN0ZGV2PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTWF0aC5zcXJ0KHIudmFyaWFuY2UodCxlLG4pKX0sci5pbnRlcnA9ZnVuY3Rpb24odCxlKXtpZighbihlKSl0aHJvdyJuIHNob3VsZCBiZSBhIGZpbml0ZSBudW1iZXIiO2lmKGU9ZSp0Lmxlbmd0aC0uNSwwPmUpcmV0dXJuIHRbMF07aWYoZT50Lmxlbmd0aC0xKXJldHVybiB0W3QubGVuZ3RoLTFdO3ZhciByPWUlMTtyZXR1cm4gcip0W01hdGguY2VpbChlKV0rKDEtcikqdFtNYXRoLmZsb29yKGUpXX19LHsiZmFzdC1pc251bWVyaWMiOjEyOH1dLDYwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0PWkodCksby5zdHIyUmdiYUFycmF5KHQudG9SZ2JTdHJpbmcoKSl9dmFyIGk9dCgidGlueWNvbG9yMiIpLG89dCgiYXJyYXl0b29scyIpO2UuZXhwb3J0cz1ufSx7YXJyYXl0b29sczo1MCx0aW55Y29sb3IyOjQ3N31dLDYwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIHQubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpW2VdfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQucmVwbGFjZSgvKDx8Jmx0O3wmIzYwOykvZywiXFxsdCAiKS5yZXBsYWNlKC8oPnwmZ3Q7fCYjNjI7KS9nLCJcXGd0ICIpfWZ1bmN0aW9uIG8odCxlLHIpe3ZhciBuPSJtYXRoLW91dHB1dC0iK2YucmFuZHN0cihbXSw2NCksbz1oLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgiZGl2IikuYXR0cih7aWQ6bn0pLnN0eWxlKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHBvc2l0aW9uOiJhYnNvbHV0ZSJ9KS5zdHlsZSh7ImZvbnQtc2l6ZSI6ZS5mb250U2l6ZSsicHgifSkudGV4dChpKHQpKTtNYXRoSmF4Lkh1Yi5RdWV1ZShbIlR5cGVzZXQiLE1hdGhKYXguSHViLG8ubm9kZSgpXSxmdW5jdGlvbigpe3ZhciBlPWguc2VsZWN0KCJib2R5Iikuc2VsZWN0KCIjTWF0aEpheF9TVkdfZ2x5cGhzIik7aWYoby5zZWxlY3QoIi5NYXRoSmF4X1NWRyIpLmVtcHR5KCl8fCFvLnNlbGVjdCgic3ZnIikubm9kZSgpKWYubG9nKCJUaGVyZSB3YXMgYW4gZXJyb3IgaW4gdGhlIHRleCBzeW50YXguIix0KSxyKCk7ZWxzZXt2YXIgbj1vLnNlbGVjdCgic3ZnIikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Ioby5zZWxlY3QoIi5NYXRoSmF4X1NWRyIpLGUsbil9by5yZW1vdmUoKX0pfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9dHx8IiIsbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO3I9ci5yZXBsYWNlKGkucmVnRXhwLGkuc3ViKX1yZXR1cm4gcn1mdW5jdGlvbiBzKHQpe3JldHVybiBhKHQseSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gYSh0LGIpfWZ1bmN0aW9uIHUodCl7dD1zKHQpO2Zvcih2YXIgZT10LnNwbGl0KC8oPFtePD5dKj4pLykubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2goLzwoXC8/KShbXiA+XSopXHMqKC4qKT4vaSksbj1lJiZlWzJdLnRvTG93ZXJDYXNlKCksaT1tW25dO2lmKHZvaWQgMCE9PWkpe3ZhciBvPWVbMV0sYT1lWzNdLHM9YS5tYXRjaCgvXnN0eWxlXHMqPVxzKiIoW14iXSspIlxzKi9pKTtpZigiYSI9PT1uKXtpZihvKXJldHVybiI8L2E+IjtpZigiaHJlZiIhPT1hLnN1YnN0cigwLDQpLnRvTG93ZXJDYXNlKCkpcmV0dXJuIjxhPiI7dmFyIHU9YS5zdWJzdHIoNCkucmVwbGFjZSgvWyInXS9nLCIiKS5yZXBsYWNlKC89LywiIiksYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIGMuaHJlZj11LC0xPT09Zy5pbmRleE9mKGMucHJvdG9jb2wpPyI8YT4iOic8YSB4bGluazpzaG93PSJuZXciIHhsaW5rOmhyZWY9IicrbCh1KSsnIj4nfWlmKCJiciI9PT1uKXJldHVybiI8YnI+IjtpZihvKXJldHVybiJzdXAiPT09bj8nPC90c3Bhbj48dHNwYW4gZHk9IjAuNDJlbSI+JiN4MjAwYjs8L3RzcGFuPic6InN1YiI9PT1uPyc8L3RzcGFuPjx0c3BhbiBkeT0iLTAuMjFlbSI+JiN4MjAwYjs8L3RzcGFuPic6IjwvdHNwYW4+Ijt2YXIgaD0iPHRzcGFuIjtyZXR1cm4ic3VwIiE9PW4mJiJzdWIiIT09bnx8KGg9IiYjeDIwMGI7IitoKSxzJiYocz1zWzFdLnJlcGxhY2UoLyhefDspXHMqY29sb3I6LywiJDEgZmlsbDoiKSxpPShpP2krIjsiOiIiKStsKHMpKSxoKyhpPycgc3R5bGU9IicraSsnIic6IiIpKyI+In1yZXR1cm4gci54bWxfZW50aXR5X2VuY29kZSh0KS5yZXBsYWNlKC88L2csIiZsdDsiKX0pLG49W10saT1lLmluZGV4T2YoIjxicj4iKTtpPjA7aT1lLmluZGV4T2YoIjxicj4iLGkrMSkpbi5wdXNoKGkpO3ZhciBvPTA7bi5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10K28sbj1lLnNsaWNlKDAsciksaT0iIixhPW4ubGVuZ3RoLTE7YT49MDthLS0pe3ZhciBzPW5bYV0ubWF0Y2goLzwoXC8/KS4qPi9pKTtpZihzJiYiPGJyPiIhPT1uW2FdKXtzWzFdfHwoaT1uW2FdKTticmVha319aSYmKGUuc3BsaWNlKHIrMSwwLGkpLGUuc3BsaWNlKHIsMCwiPC90c3Bhbj4iKSxvKz0yKX0pO3ZhciBhPWUuam9pbigiIiksdT1hLnNwbGl0KC88YnI+L2dpKTtyZXR1cm4gdS5sZW5ndGg+MSYmKGU9dS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4nPHRzcGFuIGNsYXNzPSJsaW5lIiBkeT0iJysxLjMqZSsnZW0iPicrdCsiPC90c3Bhbj4ifSkpLGUuam9pbigiIil9ZnVuY3Rpb24gYyh0LGUscil7dmFyIG4saSxvLGE9ci5ob3Jpem9udGFsQWxpZ24scz1yLnZlcnRpY2FsQWxpZ258fCJ0b3AiLGw9dC5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1lLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaT0iYm90dG9tIj09PXM/ZnVuY3Rpb24oKXtyZXR1cm4gbC5ib3R0b20tbi5oZWlnaHR9OiJtaWRkbGUiPT09cz9mdW5jdGlvbigpe3JldHVybiBsLnRvcCsobC5oZWlnaHQtbi5oZWlnaHQpLzJ9OmZ1bmN0aW9uKCl7cmV0dXJuIGwudG9wfSxvPSJyaWdodCI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuIGwucmlnaHQtbi53aWR0aH06ImNlbnRlciI9PT1hP2Z1bmN0aW9uKCl7cmV0dXJuIGwubGVmdCsobC53aWR0aC1uLndpZHRoKS8yfTpmdW5jdGlvbigpe3JldHVybiBsLmxlZnR9LGZ1bmN0aW9uKCl7cmV0dXJuIG49dGhpcy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdGhpcy5zdHlsZSh7dG9wOmkoKS11LnRvcCsicHgiLGxlZnQ6bygpLXUubGVmdCsicHgiLCJ6LWluZGV4IjoxZTN9KSx0aGlzfX12YXIgaD10KCJkMyIpLGY9dCgiLi4vbGliIikscD10KCIuLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLGQ9dCgiLi4vY29uc3RhbnRzL3N0cmluZ19tYXBwaW5ncyIpO2guc2VsZWN0aW9uLnByb3RvdHlwZS5hcHBlbmRTVkc9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVsnPHN2ZyB4bWxucz0iJyxwLnN2ZywnIiAnLCd4bWxuczp4bGluaz0iJyxwLnhsaW5rLCciPicsdCwiPC9zdmc+Il0uam9pbigiIikscj0obmV3IERPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGUsImFwcGxpY2F0aW9uL3htbCIpLG49ci5kb2N1bWVudEVsZW1lbnQuZmlyc3RDaGlsZDtuOyl0aGlzLm5vZGUoKS5hcHBlbmRDaGlsZCh0aGlzLm5vZGUoKS5vd25lckRvY3VtZW50LmltcG9ydE5vZGUobiwhMCkpLG49bi5uZXh0U2libGluZztyZXR1cm4gci5xdWVyeVNlbGVjdG9yKCJwYXJzZXJlcnJvciIpPyhmLmxvZyhyLnF1ZXJ5U2VsZWN0b3IoInBhcnNlcmVycm9yIGRpdiIpLnRleHRDb250ZW50KSxudWxsKTpoLnNlbGVjdCh0aGlzLm5vZGUoKS5sYXN0Q2hpbGQpfSxyLmh0bWxfZW50aXR5X2RlY29kZT1mdW5jdGlvbih0KXt2YXIgZT1oLnNlbGVjdCgiYm9keSIpLmFwcGVuZCgiZGl2Iikuc3R5bGUoe2Rpc3BsYXk6Im5vbmUifSkuaHRtbCgiIikscj10LnJlcGxhY2UoLygmW147XSo7KS9naSxmdW5jdGlvbih0KXtyZXR1cm4iJmx0OyI9PT10PyImIzYwOyI6IiZydDsiPT09dD8iJiM2MjsiOmUuaHRtbCh0KS50ZXh0KCl9KTtyZXR1cm4gZS5yZW1vdmUoKSxyfSxyLnhtbF9lbnRpdHlfZW5jb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoLyYoPyFcdys7fFwjWzAtOV0rO3wgXCN4WzAtOUEtRl0rOykvZywiJmFtcDsiKX0sci5jb252ZXJ0VG9Uc3BhbnM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKCl7cC5lbXB0eSgpfHwoZD1zLmF0dHIoImNsYXNzIikrIi1tYXRoIixwLnNlbGVjdCgic3ZnLiIrZCkucmVtb3ZlKCkpLHQudGV4dCgiIikuc3R5bGUoe3Zpc2liaWxpdHk6InZpc2libGUiLCJ3aGl0ZS1zcGFjZSI6InByZSJ9KSxjPXQuYXBwZW5kU1ZHKGEpLGN8fHQudGV4dChpKSx0LnNlbGVjdCgiYSIpLnNpemUoKSYmdC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKSxlJiZlLmNhbGwocyl9dmFyIGk9dC50ZXh0KCksYT11KGkpLHM9dCxsPSFzLmF0dHIoImRhdGEtbm90ZXgiKSYmYS5tYXRjaCgvKFteJF0qKShbJF0rW14kXSpbJF0rKShbXiRdKikvKSxjPWkscD1oLnNlbGVjdChzLm5vZGUoKS5wYXJlbnROb2RlKTtpZighcC5lbXB0eSgpKXt2YXIgZD1zLmF0dHIoImNsYXNzIik/cy5hdHRyKCJjbGFzcyIpLnNwbGl0KCIgIilbMF06InRleHQiO2QrPSItbWF0aCIscC5zZWxlY3RBbGwoInN2Zy4iK2QpLnJlbW92ZSgpLHAuc2VsZWN0QWxsKCJnLiIrZCsiLWdyb3VwIikucmVtb3ZlKCksdC5zdHlsZSh7dmlzaWJpbGl0eTpudWxsfSk7Zm9yKHZhciBtPXQubm9kZSgpO20mJm0ucmVtb3ZlQXR0cmlidXRlO209bS5wYXJlbnROb2RlKW0ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWJiIik7aWYobCl7dmFyIGc9Zi5nZXRQbG90RGl2KHMubm9kZSgpKTsoZyYmZy5fcHJvbWlzZXN8fFtdKS5wdXNoKG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQpe3Muc3R5bGUoe3Zpc2liaWxpdHk6ImhpZGRlbiJ9KTt2YXIgaT17Zm9udFNpemU6cGFyc2VJbnQocy5zdHlsZSgiZm9udC1zaXplIiksMTApfTtvKGxbMl0saSxmdW5jdGlvbihpLG8sYSl7cC5zZWxlY3RBbGwoInN2Zy4iK2QpLnJlbW92ZSgpLHAuc2VsZWN0QWxsKCJnLiIrZCsiLWdyb3VwIikucmVtb3ZlKCk7dmFyIGw9aSYmaS5zZWxlY3QoInN2ZyIpO2lmKCFsfHwhbC5ub2RlKCkpcmV0dXJuIHIoKSx2b2lkIHQoKTt2YXIgdT1wLmFwcGVuZCgiZyIpLmNsYXNzZWQoZCsiLWdyb3VwIiwhMCkuYXR0cih7InBvaW50ZXItZXZlbnRzIjoibm9uZSJ9KTt1Lm5vZGUoKS5hcHBlbmRDaGlsZChsLm5vZGUoKSksbyYmby5ub2RlKCkmJmwubm9kZSgpLmluc2VydEJlZm9yZShvLm5vZGUoKS5jbG9uZU5vZGUoITApLGwubm9kZSgpLmZpcnN0Q2hpbGQpLGwuYXR0cih7ImNsYXNzIjpkLGhlaWdodDphLmhlaWdodCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJ4TWluWU1pbiBtZWV0In0pLnN0eWxlKHtvdmVyZmxvdzoidmlzaWJsZSIsInBvaW50ZXItZXZlbnRzIjoibm9uZSJ9KTt2YXIgYz1zLnN0eWxlKCJmaWxsIil8fCJibGFjayI7bC5zZWxlY3QoImciKS5hdHRyKHtmaWxsOmMsc3Ryb2tlOmN9KTt2YXIgaD1uKGwsIndpZHRoIiksZj1uKGwsImhlaWdodCIpLG09K3MuYXR0cigieCIpLWgqe3N0YXJ0OjAsbWlkZGxlOi41LGVuZDoxfVtzLmF0dHIoInRleHQtYW5jaG9yIil8fCJzdGFydCJdLGc9cGFyc2VJbnQocy5zdHlsZSgiZm9udC1zaXplIiksMTApfHxuKHMsImhlaWdodCIpLHY9LWcvNDsieSI9PT1kWzBdPyh1LmF0dHIoe3RyYW5zZm9ybToicm90YXRlKCIrWy05MCwrcy5hdHRyKCJ4IiksK3MuYXR0cigieSIpXSsiKSB0cmFuc2xhdGUoIitbLWgvMix2LWYvMl0rIikifSksbC5hdHRyKHt4OitzLmF0dHIoIngiKSx5OitzLmF0dHIoInkiKX0pKToibCI9PT1kWzBdP2wuYXR0cih7eDpzLmF0dHIoIngiKSx5OnYtZi8yfSk6ImEiPT09ZFswXT9sLmF0dHIoe3g6MCx5OnZ9KTpsLmF0dHIoe3g6bSx5OitzLmF0dHIoInkiKSt2LWYvMn0pLGUmJmUuY2FsbChzLHUpLHQodSl9KX0pKX1lbHNlIHIoKTtyZXR1cm4gdH19O3ZhciBtPXtzdXA6J2ZvbnQtc2l6ZTo3MCUiIGR5PSItMC42ZW0nLHN1YjonZm9udC1zaXplOjcwJSIgZHk9IjAuM2VtJyxiOiJmb250LXdlaWdodDpib2xkIixpOiJmb250LXN0eWxlOml0YWxpYyIsYToiIixzcGFuOiIiLGJyOiIiLGVtOiJmb250LXN0eWxlOml0YWxpYztmb250LXdlaWdodDpib2xkIn0sZz1bImh0dHA6IiwiaHR0cHM6IiwibWFpbHRvOiJdLHY9bmV3IFJlZ0V4cCgiPC8/KCIrT2JqZWN0LmtleXMobSkuam9pbigifCIpKyIpKCBbXj5dKik/Lz8+IiwiZyIpLHk9T2JqZWN0LmtleXMoZC5lbnRpdHlUb1VuaWNvZGUpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57cmVnRXhwOm5ldyBSZWdFeHAoIiYiK3QrIjsiLCJnIiksc3ViOmQuZW50aXR5VG9Vbmljb2RlW3RdfX0pLGI9T2JqZWN0LmtleXMoZC51bmljb2RlVG9FbnRpdHkpLm1hcChmdW5jdGlvbih0KXtyZXR1cm57cmVnRXhwOm5ldyBSZWdFeHAodCwiZyIpLHN1YjoiJiIrZC51bmljb2RlVG9FbnRpdHlbdF0rIjsifX0pO3IucGxhaW5UZXh0PWZ1bmN0aW9uKHQpe3JldHVybih0fHwiIikucmVwbGFjZSh2LCIgIil9LHIubWFrZUVkaXRhYmxlPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKCl7bygpLGEuc3R5bGUoe29wYWNpdHk6MH0pO3ZhciB0LGU9dS5hdHRyKCJjbGFzcyIpO3Q9ZT8iLiIrZS5zcGxpdCgiICIpWzBdKyItbWF0aC1ncm91cCI6IltjbGFzcyo9LW1hdGgtZ3JvdXBdIix0JiZoLnNlbGVjdChhLm5vZGUoKS5wYXJlbnROb2RlKS5zZWxlY3QodCkuc3R5bGUoe29wYWNpdHk6MH0pfWZ1bmN0aW9uIGkodCl7dmFyIGU9dC5ub2RlKCkscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpO3ZhciBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2UociksZS5mb2N1cygpfWZ1bmN0aW9uIG8oKXt2YXIgdD1oLnNlbGVjdChmLmdldFBsb3REaXYoYS5ub2RlKCkpKSxlPXQuc2VsZWN0KCIuc3ZnLWNvbnRhaW5lciIpLG49ZS5hcHBlbmQoImRpdiIpO24uY2xhc3NlZCgicGx1Z2luLWVkaXRhYmxlIGVkaXRhYmxlIiwhMCkuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsImZvbnQtZmFtaWx5IjphLnN0eWxlKCJmb250LWZhbWlseSIpfHwiQXJpYWwiLCJmb250LXNpemUiOmEuc3R5bGUoImZvbnQtc2l6ZSIpfHwxMixjb2xvcjpyLmZpbGx8fGEuc3R5bGUoImZpbGwiKXx8ImJsYWNrIixvcGFjaXR5OjEsImJhY2tncm91bmQtY29sb3IiOnIuYmFja2dyb3VuZHx8InRyYW5zcGFyZW50IixvdXRsaW5lOiIjZmZmZmZmMzMgMXB4IHNvbGlkIixtYXJnaW46Wy1wYXJzZUZsb2F0KGEuc3R5bGUoImZvbnQtc2l6ZSIpKS84KzEsMCwwLC0xXS5qb2luKCJweCAiKSsicHgiLHBhZGRpbmc6IjAiLCJib3gtc2l6aW5nIjoiYm9yZGVyLWJveCJ9KS5hdHRyKHtjb250ZW50ZWRpdGFibGU6ITB9KS50ZXh0KHIudGV4dHx8YS5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIikpLmNhbGwoYyhhLGUscikpLm9uKCJibHVyIixmdW5jdGlvbigpe2EudGV4dCh0aGlzLnRleHRDb250ZW50KS5zdHlsZSh7b3BhY2l0eToxfSk7dmFyIHQsZT1oLnNlbGVjdCh0aGlzKS5hdHRyKCJjbGFzcyIpO3Q9ZT8iLiIrZS5zcGxpdCgiICIpWzBdKyItbWF0aC1ncm91cCI6IltjbGFzcyo9LW1hdGgtZ3JvdXBdIix0JiZoLnNlbGVjdChhLm5vZGUoKS5wYXJlbnROb2RlKS5zZWxlY3QodCkuc3R5bGUoe29wYWNpdHk6MH0pO3ZhciByPXRoaXMudGV4dENvbnRlbnQ7aC5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKDApLnJlbW92ZSgpLGguc2VsZWN0KGRvY3VtZW50KS5vbigibW91c2V1cCIsbnVsbCkscy5lZGl0LmNhbGwoYSxyKX0pLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXt2YXIgdD10aGlzO2guc2VsZWN0KGRvY3VtZW50KS5vbigibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaC5ldmVudC50YXJnZXQ9PT10PyExOnZvaWQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PW4ubm9kZSgpJiZuLm5vZGUoKS5ibHVyKCkpfSl9KS5vbigia2V5dXAiLGZ1bmN0aW9uKCl7Mjc9PT1oLmV2ZW50LndoaWNoPyhhLnN0eWxlKHtvcGFjaXR5OjEKfSksaC5zZWxlY3QodGhpcykuc3R5bGUoe29wYWNpdHk6MH0pLm9uKCJibHVyIixmdW5jdGlvbigpe3JldHVybiExfSkudHJhbnNpdGlvbigpLnJlbW92ZSgpLHMuY2FuY2VsLmNhbGwoYSx0aGlzLnRleHRDb250ZW50KSk6KHMuaW5wdXQuY2FsbChhLHRoaXMudGV4dENvbnRlbnQpLGguc2VsZWN0KHRoaXMpLmNhbGwoYyhhLGUscikpKX0pLm9uKCJrZXlkb3duIixmdW5jdGlvbigpezEzPT09aC5ldmVudC53aGljaCYmdGhpcy5ibHVyKCl9KS5jYWxsKGkpfXJ8fChyPXt9KTt2YXIgYT10aGlzLHM9aC5kaXNwYXRjaCgiZWRpdCIsImlucHV0IiwiY2FuY2VsIiksbD1oLnNlbGVjdCh0aGlzLm5vZGUoKSkuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KSx1PWV8fGw7cmV0dXJuIGUmJmwuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSksci5pbW1lZGlhdGU/bigpOnUub24oImNsaWNrIixuKSxoLnJlYmluZCh0aGlzLHMsIm9uIil9fSx7Ii4uL2NvbnN0YW50cy9zdHJpbmdfbWFwcGluZ3MiOjU3OCwiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjU3OSwiLi4vbGliIjo1OTEsZDM6MTI0fV0sNjA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPWUuZXhwb3J0cz17fSxpPXQoIi4uL3Bsb3RzL2dlby9jb25zdGFudHMiKS5sb2NhdGlvbm1vZGVUb0xheWVyLG89dCgidG9wb2pzb24iKS5mZWF0dXJlO24uZ2V0VG9wb2pzb25OYW1lPWZ1bmN0aW9uKHQpe3JldHVyblt0LnNjb3BlLnJlcGxhY2UoLyAvZywiLSIpLCJfIix0LnJlc29sdXRpb24udG9TdHJpbmcoKSwibSJdLmpvaW4oIiIpfSxuLmdldFRvcG9qc29uUGF0aD1mdW5jdGlvbih0LGUpe3JldHVybiB0K2UrIi5qc29uIn0sbi5nZXRUb3BvanNvbkZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aVt0LmxvY2F0aW9ubW9kZV0sbj1lLm9iamVjdHNbcl07cmV0dXJuIG8oZSxuKS5mZWF0dXJlc319LHsiLi4vcGxvdHMvZ2VvL2NvbnN0YW50cyI6NjM0LHRvcG9qc29uOjQ3OH1dLDYwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYoZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KSxudWxsPT09ZSl0aHJvdyBuZXcgRXJyb3IoIk5vIERPTSBlbGVtZW50IHdpdGggaWQgJyIrdCsiJyBleGlzdHMgb24gdGhlIHBhZ2UuIik7cmV0dXJuIGV9aWYobnVsbD09PXR8fHZvaWQgMD09PXQpdGhyb3cgbmV3IEVycm9yKCJET00gZWxlbWVudCBwcm92aWRlZCBpcyBudWxsIG9yIHVuZGVmaW5lZCIpO3JldHVybiB0fWZ1bmN0aW9uIGkodCl7QXJyYXkuaXNBcnJheSh0Ll9wcm9taXNlcykmJnQuX3Byb21pc2VzLmxlbmd0aD4wJiZSLmxvZygiQ2xlYXJpbmcgcHJldmlvdXMgcmVqZWN0ZWQgcHJvbWlzZXMgZnJvbSBxdWV1ZS4iKSx0Ll9wcm9taXNlcz1bXX1mdW5jdGlvbiBvKHQsZSl7dC5fZnVsbExheW91dC5fcGFwZXJkaXYuc3R5bGUoImJhY2tncm91bmQiLCJ3aGl0ZSIpLEMuZGVmYXVsdENvbmZpZy5zZXRCYWNrZ3JvdW5kKHQsZSl9ZnVuY3Rpb24gYSh0LGUpe3QuX2NvbnRleHR8fCh0Ll9jb250ZXh0PVIuZXh0ZW5kRmxhdCh7fSxDLmRlZmF1bHRDb25maWcpKTt2YXIgcj10Ll9jb250ZXh0O2UmJihPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QgaW4gciYmKCJzZXRCYWNrZ3JvdW5kIj09PXQmJiJvcGFxdWUiPT09ZVt0XT9yW3RdPW86clt0XT1lW3RdKX0pLGUucGxvdDNkUGl4ZWxSYXRpbyYmIXIucGxvdEdsUGl4ZWxSYXRpbyYmKHIucGxvdEdsUGl4ZWxSYXRpbz1yLnBsb3QzZFBpeGVsUmF0aW8pKSxyLnN0YXRpY1Bsb3QmJihyLmVkaXRhYmxlPSExLHIuYXV0b3NpemFibGU9ITEsci5zY3JvbGxab29tPSExLHIuZG91YmxlQ2xpY2s9ITEsci5zaG93VGlwcz0hMSxyLnNob3dMaW5rPSExLHIuZGlzcGxheU1vZGVCYXI9ITEpfWZ1bmN0aW9uIHModCxlLHIpe3ZhciBuPXouc2VsZWN0KHQpLnNlbGVjdEFsbCgiLnBsb3QtY29udGFpbmVyIikuZGF0YShbMF0pO24uZW50ZXIoKS5pbnNlcnQoImRpdiIsIjpmaXJzdC1jaGlsZCIpLmNsYXNzZWQoInBsb3QtY29udGFpbmVyIHBsb3RseSIsITApO3ZhciBpPW4uc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpLmRhdGEoWzBdKTtpLmVudGVyKCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJzdmctY29udGFpbmVyIiwhMCkuc3R5bGUoInBvc2l0aW9uIiwicmVsYXRpdmUiKSxpLmh0bWwoIiIpLGUmJih0LmRhdGE9ZSksciYmKHQubGF5b3V0PXIpLEMubWljcm9wb2xhci5tYW5hZ2VyLmZpbGxMYXlvdXQodCksImluaXRpYWwiPT09dC5fZnVsbExheW91dC5hdXRvc2l6ZSYmdC5fY29udGV4dC5hdXRvc2l6YWJsZSYmKE0odCx7fSksdC5fZnVsbExheW91dC5hdXRvc2l6ZT1yLmF1dG9zaXplPSEwKSxpLnN0eWxlKHt3aWR0aDp0Ll9mdWxsTGF5b3V0LndpZHRoKyJweCIsaGVpZ2h0OnQuX2Z1bGxMYXlvdXQuaGVpZ2h0KyJweCJ9KSx0LmZyYW1ld29yaz1DLm1pY3JvcG9sYXIubWFuYWdlci5mcmFtZXdvcmsodCksdC5mcmFtZXdvcmsoe2RhdGE6dC5kYXRhLGxheW91dDp0LmxheW91dH0saS5ub2RlKCkpLHQuZnJhbWV3b3JrLnNldFVuZG9Qb2ludCgpO3ZhciBvPXQuZnJhbWV3b3JrLnN2ZygpLGE9MSxzPXQuX2Z1bGxMYXlvdXQudGl0bGU7IiIhPT1zJiZzfHwoYT0wKTt2YXIgbD0iQ2xpY2sgdG8gZW50ZXIgdGl0bGUiLHU9ZnVuY3Rpb24oKXt0aGlzLmNhbGwoQy51dGlsLmNvbnZlcnRUb1RzcGFucyl9LGM9by5zZWxlY3QoIi50aXRsZS1ncm91cCB0ZXh0IikuY2FsbCh1KTtpZih0Ll9jb250ZXh0LmVkaXRhYmxlKXtjLmF0dHIoeyJkYXRhLXVuZm9ybWF0dGVkIjpzfSkscyYmcyE9PWx8fChhPS4yLGMuYXR0cih7ImRhdGEtdW5mb3JtYXR0ZWQiOmx9KS50ZXh0KGwpLnN0eWxlKHtvcGFjaXR5OmF9KS5vbigibW91c2VvdmVyLm9wYWNpdHkiLGZ1bmN0aW9uKCl7ei5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKDEwMCkuc3R5bGUoIm9wYWNpdHkiLDEpfSkub24oIm1vdXNlb3V0Lm9wYWNpdHkiLGZ1bmN0aW9uKCl7ei5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKDFlMykuc3R5bGUoIm9wYWNpdHkiLDApfSkpO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy5jYWxsKEMudXRpbC5tYWtlRWRpdGFibGUpLm9uKCJlZGl0IixmdW5jdGlvbihlKXt0LmZyYW1ld29yayh7bGF5b3V0Ont0aXRsZTplfX0pLHRoaXMuYXR0cih7ImRhdGEtdW5mb3JtYXR0ZWQiOmV9KS50ZXh0KGUpLmNhbGwodSksdGhpcy5jYWxsKGgpfSkub24oImNhbmNlbCIsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF0dHIoImRhdGEtdW5mb3JtYXR0ZWQiKTt0aGlzLnRleHQodCkuY2FsbCh1KX0pfTtjLmNhbGwoaCl9cmV0dXJuIHQuX2NvbnRleHQuc2V0QmFja2dyb3VuZCh0LHQuX2Z1bGxMYXlvdXQucGFwZXJfYmdjb2xvciksTy5hZGRMaW5rcyh0KSxQcm9taXNlLnJlc29sdmUoKX1mdW5jdGlvbiBsKHQpe3ZhciBlLHI7dHx8KHQ9e30pLHQueGF4aXMxJiYodC54YXhpc3x8KHQueGF4aXM9dC54YXhpczEpLGRlbGV0ZSB0LnhheGlzMSksdC55YXhpczEmJih0LnlheGlzfHwodC55YXhpcz10LnlheGlzMSksZGVsZXRlIHQueWF4aXMxKTt2YXIgbj1DLkF4ZXMubGlzdCh7X2Z1bGxMYXlvdXQ6dH0pO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspe3ZhciBpPW5bZV07aS5hbmNob3ImJiJmcmVlIiE9PWkuYW5jaG9yJiYoaS5hbmNob3I9Qy5BeGVzLmNsZWFuSWQoaS5hbmNob3IpKSxpLm92ZXJsYXlpbmcmJihpLm92ZXJsYXlpbmc9Qy5BeGVzLmNsZWFuSWQoaS5vdmVybGF5aW5nKSksaS50eXBlfHwoaS5pc2RhdGU/aS50eXBlPSJkYXRlIjppLmlzbG9nP2kudHlwZT0ibG9nIjppLmlzZGF0ZT09PSExJiZpLmlzbG9nPT09ITEmJihpLnR5cGU9ImxpbmVhciIpKSwid2l0aHplcm8iIT09aS5hdXRvcmFuZ2UmJiJ0b3plcm8iIT09aS5hdXRvcmFuZ2V8fChpLmF1dG9yYW5nZT0hMCxpLnJhbmdlbW9kZT0idG96ZXJvIiksZGVsZXRlIGkuaXNsb2csZGVsZXRlIGkuaXNkYXRlLGRlbGV0ZSBpLmNhdGVnb3JpZXMsZihpLCJkb21haW4iKSYmZGVsZXRlIGkuZG9tYWluLHZvaWQgMCE9PWkuYXV0b3RpY2smJih2b2lkIDA9PT1pLnRpY2ttb2RlJiYoaS50aWNrbW9kZT1pLmF1dG90aWNrPyJhdXRvIjoibGluZWFyIiksZGVsZXRlIGkuYXV0b3RpY2spfXZvaWQgMD09PXQuYW5ub3RhdGlvbnN8fEFycmF5LmlzQXJyYXkodC5hbm5vdGF0aW9ucyl8fChSLndhcm4oIkFubm90YXRpb25zIG11c3QgYmUgYW4gYXJyYXkuIiksZGVsZXRlIHQuYW5ub3RhdGlvbnMpO3ZhciBvPSh0LmFubm90YXRpb25zfHxbXSkubGVuZ3RoO2ZvcihlPTA7bz5lO2UrKyl7dmFyIGE9dC5hbm5vdGF0aW9uc1tlXTthLnJlZiYmKCJwYXBlciI9PT1hLnJlZj8oYS54cmVmPSJwYXBlciIsYS55cmVmPSJwYXBlciIpOiJkYXRhIj09PWEucmVmJiYoYS54cmVmPSJ4IixhLnlyZWY9InkiKSxkZWxldGUgYS5yZWYpLHUoYSwieHJlZiIpLHUoYSwieXJlZiIpfXZvaWQgMD09PXQuc2hhcGVzfHxBcnJheS5pc0FycmF5KHQuc2hhcGVzKXx8KFIud2FybigiU2hhcGVzIG11c3QgYmUgYW4gYXJyYXkuIiksZGVsZXRlIHQuc2hhcGVzKTt2YXIgcz0odC5zaGFwZXN8fFtdKS5sZW5ndGg7Zm9yKGU9MDtzPmU7ZSsrKXt2YXIgbD10LnNoYXBlc1tlXTt1KGwsInhyZWYiKSx1KGwsInlyZWYiKX12YXIgYz10LmxlZ2VuZDtjJiYoYy54PjM/KGMueD0xLjAyLGMueGFuY2hvcj0ibGVmdCIpOmMueDwtMiYmKGMueD0tLjAyLGMueGFuY2hvcj0icmlnaHQiKSxjLnk+Mz8oYy55PTEuMDIsYy55YW5jaG9yPSJib3R0b20iKTpjLnk8LTImJihjLnk9LS4wMixjLnlhbmNob3I9InRvcCIpKSwicm90YXRlIj09PXQuZHJhZ21vZGUmJih0LmRyYWdtb2RlPSJvcmJpdCIpLHQuc2NlbmUxJiYodC5zY2VuZXx8KHQuc2NlbmU9dC5zY2VuZTEpLGRlbGV0ZSB0LnNjZW5lMSk7dmFyIGg9Ty5nZXRTdWJwbG90SWRzKHQsImdsM2QiKTtmb3IoZT0wO2U8aC5sZW5ndGg7ZSsrKXt2YXIgcD10W2hbZV1dLGQ9cC5jYW1lcmFwb3NpdGlvbjtpZihBcnJheS5pc0FycmF5KGQpJiY0PT09ZFswXS5sZW5ndGgpe3ZhciBtPWRbMF0sZz1kWzFdLHY9ZFsyXSx5PUkoW10sbSksYj1bXTtmb3Iocj0wOzM+cjsrK3IpYltyXT1nW2VdK3YqeVsyKzQqcl07cC5jYW1lcmE9e2V5ZTp7eDpiWzBdLHk6YlsxXSx6OmJbMl19LGNlbnRlcjp7eDpnWzBdLHk6Z1sxXSx6OmdbMl19LHVwOnt4OnlbMV0seTp5WzVdLHo6eVs5XX19LGRlbGV0ZSBwLmNhbWVyYXBvc2l0aW9ufX1yZXR1cm4gTi5jbGVhbih0KSx0fWZ1bmN0aW9uIHUodCxlKXt2YXIgcj10W2VdLG49ZS5jaGFyQXQoMCk7ciYmInBhcGVyIiE9PXImJih0W2VdPUMuQXhlcy5jbGVhbklkKHIsbikpfWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9W10sbj0odC5jb25jYXQoQXJyYXkuaXNBcnJheShlKT9lOltdKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuInVpZCJpbiB0fSkubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnVpZH0pKSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvLGE9dFtpXTtpZighKCJ1aWQiaW4gYSl8fC0xIT09ci5pbmRleE9mKGEudWlkKSl7dmFyIHM7Zm9yKG89MDsxMDA+byYmKHM9Ui5yYW5kc3RyKG4pLC0xIT09ci5pbmRleE9mKHMpKTtvKyspO2EudWlkPVIucmFuZHN0cihuKSxuLnB1c2goYS51aWQpfWlmKHIucHVzaChhLnVpZCksImhpc3RvZ3JhbXkiPT09YS50eXBlJiYieGJpbnMiaW4gYSYmISgieWJpbnMiaW4gYSkmJihhLnliaW5zPWEueGJpbnMsZGVsZXRlIGEueGJpbnMpLGEuZXJyb3JfeSYmIm9wYWNpdHkiaW4gYS5lcnJvcl95KXt2YXIgbD1OLmRlZmF1bHRzLHU9YS5lcnJvcl95LmNvbG9yfHwoTy50cmFjZUlzKGEsImJhciIpP04uZGVmYXVsdExpbmU6bFtpJWwubGVuZ3RoXSk7YS5lcnJvcl95LmNvbG9yPU4uYWRkT3BhY2l0eShOLnJnYih1KSxOLm9wYWNpdHkodSkqYS5lcnJvcl95Lm9wYWNpdHkpLGRlbGV0ZSBhLmVycm9yX3kub3BhY2l0eX1pZigiYmFyZGlyImluIGEmJigiaCIhPT1hLmJhcmRpcnx8IU8udHJhY2VJcyhhLCJiYXIiKSYmImhpc3RvZ3JhbSIhPT1hLnR5cGUuc3Vic3RyKDAsOSl8fChhLm9yaWVudGF0aW9uPSJoIixfKGEpKSxkZWxldGUgYS5iYXJkaXIpLCJoaXN0b2dyYW15Ij09PWEudHlwZSYmXyhhKSwiaGlzdG9ncmFteCIhPT1hLnR5cGUmJiJoaXN0b2dyYW15IiE9PWEudHlwZXx8KGEudHlwZT0iaGlzdG9ncmFtIiksInNjbCJpbiBhJiYoYS5jb2xvcnNjYWxlPWEuc2NsLGRlbGV0ZSBhLnNjbCksInJldmVyc2VzY2wiaW4gYSYmKGEucmV2ZXJzZXNjYWxlPWEucmV2ZXJzZXNjbCxkZWxldGUgYS5yZXZlcnNlc2NsKSxhLnhheGlzJiYoYS54YXhpcz1DLkF4ZXMuY2xlYW5JZChhLnhheGlzLCJ4IikpLGEueWF4aXMmJihhLnlheGlzPUMuQXhlcy5jbGVhbklkKGEueWF4aXMsInkiKSksTy50cmFjZUlzKGEsImdsM2QiKSYmYS5zY2VuZSYmKGEuc2NlbmU9Ty5zdWJwbG90c1JlZ2lzdHJ5LmdsM2QuY2xlYW5JZChhLnNjZW5lKSksTy50cmFjZUlzKGEsInBpZSIpfHwoQXJyYXkuaXNBcnJheShhLnRleHRwb3NpdGlvbik/YS50ZXh0cG9zaXRpb249YS50ZXh0cG9zaXRpb24ubWFwKGgpOmEudGV4dHBvc2l0aW9uJiYoYS50ZXh0cG9zaXRpb249aChhLnRleHRwb3NpdGlvbikpKSxPLnRyYWNlSXMoYSwiMmRNYXAiKSYmKCJZSUduQnUiPT09YS5jb2xvcnNjYWxlJiYoYS5jb2xvcnNjYWxlPSJZbEduQnUiKSwiWUlPclJkIj09PWEuY29sb3JzY2FsZSYmKGEuY29sb3JzY2FsZT0iWWxPclJkIikpLE8udHJhY2VJcyhhLCJtYXJrZXJDb2xvcnNjYWxlIikmJmEubWFya2VyKXt2YXIgYz1hLm1hcmtlcjsiWUlHbkJ1Ij09PWMuY29sb3JzY2FsZSYmKGMuY29sb3JzY2FsZT0iWWxHbkJ1IiksIllJT3JSZCI9PT1jLmNvbG9yc2NhbGUmJihjLmNvbG9yc2NhbGU9IllsT3JSZCIpfWlmKCJzdXJmYWNlIj09PWEudHlwZSYmUi5pc1BsYWluT2JqZWN0KGEuY29udG91cnMpKXt2YXIgcD1bIngiLCJ5IiwieiJdO2ZvcihvPTA7bzxwLmxlbmd0aDtvKyspe3ZhciBkPWEuY29udG91cnNbcFtvXV07Ui5pc1BsYWluT2JqZWN0KGQpJiYoZC5oaWdobGlnaHRDb2xvciYmKGQuaGlnaGxpZ2h0Y29sb3I9ZC5oaWdobGlnaHRDb2xvcixkZWxldGUgZC5oaWdobGlnaHRDb2xvciksZC5oaWdobGlnaHRXaWR0aCYmKGQuaGlnaGxpZ2h0d2lkdGg9ZC5oaWdobGlnaHRXaWR0aCxkZWxldGUgZC5oaWdobGlnaHRXaWR0aCkpfX1mKGEsImxpbmUiKSYmZGVsZXRlIGEubGluZSwibWFya2VyImluIGEmJihmKGEubWFya2VyLCJsaW5lIikmJmRlbGV0ZSBhLm1hcmtlci5saW5lLGYoYSwibWFya2VyIikmJmRlbGV0ZSBhLm1hcmtlciksTi5jbGVhbihhKX19ZnVuY3Rpb24gaCh0KXt2YXIgZT0ibWlkZGxlIixyPSJjZW50ZXIiO3JldHVybi0xIT09dC5pbmRleE9mKCJ0b3AiKT9lPSJ0b3AiOi0xIT09dC5pbmRleE9mKCJib3R0b20iKSYmKGU9ImJvdHRvbSIpLC0xIT09dC5pbmRleE9mKCJsZWZ0Iik/cj0ibGVmdCI6LTEhPT10LmluZGV4T2YoInJpZ2h0IikmJihyPSJyaWdodCIpLGUrIiAiK3J9ZnVuY3Rpb24gZih0LGUpe3JldHVybiBlIGluIHQmJiJvYmplY3QiPT10eXBlb2YgdFtlXSYmMD09PU9iamVjdC5rZXlzKHRbZV0pLmxlbmd0aH1mdW5jdGlvbiBwKHQpe3ZhciBlLHI9Qy5BeGVzLmxpc3QodCksbj10Ll9mdWxsRGF0YSxpPXQuX2Z1bGxMYXlvdXQsbz10LmNhbGNkYXRhPW5ldyBBcnJheShuLmxlbmd0aCk7Zm9yKHQuZmlyc3RzY2F0dGVyPSEwLHQubnVtYm94ZXM9MCx0Ll9obXBpeGNvdW50PTAsdC5faG1sdW1jb3VudD0wLGkuX3BpZWNvbG9ybWFwPXt9LGkuX3BpZWRlZmF1bHRjb2xvcmNvdW50PTAsZT0wO2U8ci5sZW5ndGg7ZSsrKXJbZV0uX2NhdGVnb3JpZXM9cltlXS5faW5pdGlhbENhdGVnb3JpZXMuc2xpY2UoKTtmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKXt2YXIgYT1uW2VdLHM9YS5fbW9kdWxlLGw9W107cyYmYS52aXNpYmxlPT09ITAmJnMuY2FsYyYmKGw9cy5jYWxjKHQsYSkpLEFycmF5LmlzQXJyYXkobCkmJmxbMF18fChsPVt7eDohMSx5OiExfV0pLGxbMF0udHx8KGxbMF0udD17fSksbFswXS50cmFjZT1hLG9bZV09bH19ZnVuY3Rpb24gZCh0LGUpe3ZhciByLG4saT1lKzEsbz1bXTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKW49dFtyXSwwPm4/by5wdXNoKGkrbik6by5wdXNoKG4pO3JldHVybiBvfWZ1bmN0aW9uIG0odCxlLHIpe3ZhciBuLGk7Zm9yKG49MDtuPGUubGVuZ3RoO24rKyl7aWYoaT1lW25dLGkhPT1wYXJzZUludChpLDEwKSl0aHJvdyBuZXcgRXJyb3IoImFsbCB2YWx1ZXMgaW4gIityKyIgbXVzdCBiZSBpbnRlZ2VycyIpO2lmKGk+PXQuZGF0YS5sZW5ndGh8fGk8LXQuZGF0YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKHIrIiBtdXN0IGJlIHZhbGlkIGluZGljZXMgZm9yIGdkLmRhdGEuIik7aWYoZS5pbmRleE9mKGksbisxKT4tMXx8aT49MCYmZS5pbmRleE9mKC10LmRhdGEubGVuZ3RoK2kpPi0xfHwwPmkmJmUuaW5kZXhPZih0LmRhdGEubGVuZ3RoK2kpPi0xKXRocm93IG5ldyBFcnJvcigiZWFjaCBpbmRleCBpbiAiK3IrIiBtdXN0IGJlIHVuaXF1ZS4iKX19ZnVuY3Rpb24gZyh0LGUscil7aWYoIUFycmF5LmlzQXJyYXkodC5kYXRhKSl0aHJvdyBuZXcgRXJyb3IoImdkLmRhdGEgbXVzdCBiZSBhbiBhcnJheS4iKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50SW5kaWNlcyBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50LiIpO2lmKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSksbSh0LGUsImN1cnJlbnRJbmRpY2VzIiksInVuZGVmaW5lZCI9PXR5cGVvZiByfHxBcnJheS5pc0FycmF5KHIpfHwocj1bcl0pLCJ1bmRlZmluZWQiIT10eXBlb2YgciYmbSh0LHIsIm5ld0luZGljZXMiKSwidW5kZWZpbmVkIiE9dHlwZW9mIHImJmUubGVuZ3RoIT09ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50IGFuZCBuZXcgaW5kaWNlcyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aC4iKX1mdW5jdGlvbiB2KHQsZSxyKXt2YXIgbixpO2lmKCFBcnJheS5pc0FycmF5KHQuZGF0YSkpdGhyb3cgbmV3IEVycm9yKCJnZC5kYXRhIG11c3QgYmUgYW4gYXJyYXkuIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigidHJhY2VzIG11c3QgYmUgZGVmaW5lZC4iKTtmb3IoQXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKSxuPTA7bjxlLmxlbmd0aDtuKyspaWYoaT1lW25dLCJvYmplY3QiIT10eXBlb2YgaXx8QXJyYXkuaXNBcnJheShpKXx8bnVsbD09PWkpdGhyb3cgbmV3IEVycm9yKCJhbGwgdmFsdWVzIGluIHRyYWNlcyBhcnJheSBtdXN0IGJlIG5vbi1hcnJheSBvYmplY3RzIik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiByfHxBcnJheS5pc0FycmF5KHIpfHwocj1bcl0pLCJ1bmRlZmluZWQiIT10eXBlb2YgciYmci5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImlmIGluZGljZXMgaXMgc3BlY2lmaWVkLCB0cmFjZXMubGVuZ3RoIG11c3QgZXF1YWwgaW5kaWNlcy5sZW5ndGgiKX1mdW5jdGlvbiB5KHQsZSxyLG4pe3ZhciBpPVIuaXNQbGFpbk9iamVjdChuKTtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7aWYoIVIuaXNQbGFpbk9iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoInVwZGF0ZSBtdXN0IGJlIGEga2V5OnZhbHVlIG9iamVjdCIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygcil0aHJvdyBuZXcgRXJyb3IoImluZGljZXMgbXVzdCBiZSBhbiBpbnRlZ2VyIG9yIGFycmF5IG9mIGludGVnZXJzIik7bSh0LHIsImluZGljZXMiKTtmb3IodmFyIG8gaW4gZSl7aWYoIUFycmF5LmlzQXJyYXkoZVtvXSl8fGVbb10ubGVuZ3RoIT09ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhdHRyaWJ1dGUgIitvKyIgbXVzdCBiZSBhbiBhcnJheSBvZiBsZW5ndGggZXF1YWwgdG8gaW5kaWNlcyBhcnJheSBsZW5ndGgiKTtpZihpJiYoIShvIGluIG4pfHwhQXJyYXkuaXNBcnJheShuW29dKXx8bltvXS5sZW5ndGghPT1lW29dLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKCJ3aGVuIG1heFBvaW50cyBpcyBzZXQgYXMgYSBrZXk6dmFsdWUgb2JqZWN0IGl0IG11c3QgY29udGFpbiBhIDE6MSBjb3JyaXNwb25kZW5jZSB3aXRoIHRoZSBrZXlzIGFuZCBudW1iZXIgb2YgdHJhY2VzIGluIHRoZSB1cGRhdGUgb2JqZWN0Iil9fWZ1bmN0aW9uIGIodCxlLHIsbil7dmFyIGksbyxhLHMsbCx1PVIuaXNQbGFpbk9iamVjdChuKSxjPVtdO0FycmF5LmlzQXJyYXkocil8fChyPVtyXSkscj1kKHIsdC5kYXRhLmxlbmd0aC0xKTtmb3IodmFyIGggaW4gZSlmb3IodmFyIGY9MDtmPHIubGVuZ3RoO2YrKyl7aWYoaT10LmRhdGFbcltmXV0sYT1SLm5lc3RlZFByb3BlcnR5KGksaCksbz1hLmdldCgpLHM9ZVtoXVtmXSwhQXJyYXkuaXNBcnJheShzKSl0aHJvdyBuZXcgRXJyb3IoImF0dHJpYnV0ZTogIitoKyIgaW5kZXg6ICIrZisiIG11c3QgYmUgYW4gYXJyYXkiKTtpZighQXJyYXkuaXNBcnJheShvKSl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBleHRlbmQgbWlzc2luZyBvciBub24tYXJyYXkgYXR0cmlidXRlOiAiK2gpO2w9dT9uW2hdW2ZdOm4sUChsKXx8KGw9LTEpLGMucHVzaCh7cHJvcDphLHRhcmdldDpvLGluc2VydDpzLG1heHA6TWF0aC5mbG9vcihsKX0pfXJldHVybiBjfWZ1bmN0aW9uIHgodCxlLHIsbixpLG8pe3kodCxlLHIsbik7Zm9yKHZhciBhLHMsbCx1PWIodCxlLHIsbiksYz1bXSxoPXt9LGY9e30scD0wO3A8dS5sZW5ndGg7cCsrKXM9dVtwXS5wcm9wLGw9dVtwXS5tYXhwLGE9aSh1W3BdLnRhcmdldCx1W3BdLmluc2VydCksbD49MCYmbDxhLmxlbmd0aCYmKGM9byhhLGwpKSxsPXVbcF0udGFyZ2V0Lmxlbmd0aCxzLnNldChhKSxBcnJheS5pc0FycmF5KGhbcy5hc3RyXSl8fChoW3MuYXN0cl09W10pLEFycmF5LmlzQXJyYXkoZltzLmFzdHJdKXx8KGZbcy5hc3RyXT1bXSksaFtzLmFzdHJdLnB1c2goYyksZltzLmFzdHJdLnB1c2gobCk7cmV0dXJue3VwZGF0ZTpoLG1heFBvaW50czpmfX1mdW5jdGlvbiBfKHQpe3ZhciBlO2lmKFIuc3dhcEF0dHJzKHQsWyI/IiwiPzAiLCJkPyIsIj9iaW5zIiwibmJpbnM/IiwiYXV0b2Jpbj8iLCI/c3JjIiwiZXJyb3JfPyJdKSxBcnJheS5pc0FycmF5KHQueikmJkFycmF5LmlzQXJyYXkodC56WzBdKSYmKHQudHJhbnNwb3NlP2RlbGV0ZSB0LnRyYW5zcG9zZTp0LnRyYW5zcG9zZT0hMCksdC5lcnJvcl94JiZ0LmVycm9yX3kpe3ZhciByPXQuZXJyb3JfeSxuPSJjb3B5X3lzdHlsZSJpbiByP3IuY29weV95c3R5bGU6IShyLmNvbG9yfHxyLnRoaWNrbmVzc3x8ci53aWR0aCk7Ui5zd2FwQXR0cnModCxbImVycm9yXz8uY29weV95c3R5bGUiXSksbiYmUi5zd2FwQXR0cnModCxbImVycm9yXz8uY29sb3IiLCJlcnJvcl8/LnRoaWNrbmVzcyIsImVycm9yXz8ud2lkdGgiXSl9aWYodC5ob3ZlcmluZm8pe3ZhciBpPXQuaG92ZXJpbmZvLnNwbGl0KCIrIik7Zm9yKGU9MDtlPGkubGVuZ3RoO2UrKykieCI9PT1pW2VdP2lbZV09InkiOiJ5Ij09PWlbZV0mJihpW2VdPSJ4Iik7dC5ob3ZlcmluZm89aS5qb2luKCIrIil9fWZ1bmN0aW9uIHcodCl7dmFyIGUscj17bGVmdDowLHJpZ2h0OjAsYm90dG9tOjAsdG9wOjB9O2lmKHQpZm9yKGUgaW4gdCl0Lmhhc093blByb3BlcnR5KGUpJiYoci5sZWZ0Kz10W2VdLmxlZnR8fDAsci5yaWdodCs9dFtlXS5yaWdodHx8MCxyLmJvdHRvbSs9dFtlXS5ib3R0b218fDAsci50b3ArPXRbZV0udG9wfHwwKTtyZXR1cm4gcn1mdW5jdGlvbiBNKHQsZSl7dmFyIHIsbixpLG89dC5fZnVsbExheW91dCxhPXQuX2NvbnRleHQ7aWYodC5lbWl0KCJwbG90bHlfYXV0b3NpemUiKSx0Ll9jb250ZXh0LmZpbGxGcmFtZSlpPXdpbmRvdy5pbm5lcldpZHRoLG49d2luZG93LmlubmVySGVpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7ZWxzZSBpZihQKGEuZnJhbWVNYXJnaW5zKSYmYS5mcmFtZU1hcmdpbnM+MCl7dmFyIHM9dyh0Ll9ib3VuZGluZ0JveE1hcmdpbnMpLGw9cy5sZWZ0K3MucmlnaHQsdT1zLmJvdHRvbStzLnRvcCxjPW8uX2NvbnRhaW5lci5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD0xLTIqYS5mcmFtZU1hcmdpbnM7aT1NYXRoLnJvdW5kKGgqKGMud2lkdGgtbCkpLG49TWF0aC5yb3VuZChoKihjLmhlaWdodC11KSl9ZWxzZSByPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLG49cGFyc2VGbG9hdChyLmhlaWdodCl8fG8uaGVpZ2h0LGk9cGFyc2VGbG9hdChyLndpZHRoKXx8by53aWR0aDtyZXR1cm4gTWF0aC5hYnMoby53aWR0aC1pKT4xfHxNYXRoLmFicyhvLmhlaWdodC1uKT4xPyhvLmhlaWdodD10LmxheW91dC5oZWlnaHQ9bixvLndpZHRoPXQubGF5b3V0LndpZHRoPWkpOiJpbml0aWFsIiE9PW8uYXV0b3NpemUmJihkZWxldGUgZS5hdXRvc2l6ZSxvLmF1dG9zaXplPXQubGF5b3V0LmF1dG9zaXplPSEwKSxPLnNhbml0aXplTWFyZ2lucyhvKSxlfWZ1bmN0aW9uIGsodCl7dmFyIGU9ei5zZWxlY3QodCkscj10Ll9mdWxsTGF5b3V0O2lmKHIuX2NvbnRhaW5lcj1lLnNlbGVjdEFsbCgiLnBsb3QtY29udGFpbmVyIikuZGF0YShbMF0pLHIuX2NvbnRhaW5lci5lbnRlcigpLmluc2VydCgiZGl2IiwiOmZpcnN0LWNoaWxkIikuY2xhc3NlZCgicGxvdC1jb250YWluZXIiLCEwKS5jbGFzc2VkKCJwbG90bHkiLCEwKSxyLl9wYXBlcmRpdj1yLl9jb250YWluZXIuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpLmRhdGEoWzBdKSxyLl9wYXBlcmRpdi5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgic3ZnLWNvbnRhaW5lciIsITApLnN0eWxlKCJwb3NpdGlvbiIsInJlbGF0aXZlIiksImluaXRpYWwiPT09ci5hdXRvc2l6ZSYmKE0odCx7fSksci5hdXRvc2l6ZT0hMCx0LmxheW91dC5hdXRvc2l6ZT0hMCksci5fZ2xjb250YWluZXI9ci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIuZ2wtY29udGFpbmVyIikuZGF0YShbMF0pLHIuX2dsY29udGFpbmVyLmVudGVyKCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJnbC1jb250YWluZXIiLCEwKSxyLl9nZW9jb250YWluZXI9ci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIuZ2VvLWNvbnRhaW5lciIpLmRhdGEoWzBdKSxyLl9nZW9jb250YWluZXIuZW50ZXIoKS5hcHBlbmQoImRpdiIpLmNsYXNzZWQoImdlby1jb250YWluZXIiLCEwKSxyLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5tYWluLXN2ZyIpLnJlbW92ZSgpLHIuX3BhcGVyPXIuX3BhcGVyZGl2Lmluc2VydCgic3ZnIiwiOmZpcnN0LWNoaWxkIikuY2xhc3NlZCgibWFpbi1zdmciLCEwKSxyLl90b3BwYXBlcj1yLl9wYXBlcmRpdi5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoIm1haW4tc3ZnIiwhMCksIXIuX3VpZCl7dmFyIG49W107ei5zZWxlY3RBbGwoImRlZnMiKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZCYmbi5wdXNoKHRoaXMuaWQuc3BsaXQoIi0iKVsxXSl9KSxyLl91aWQ9Ui5yYW5kc3RyKG4pfXIuX3BhcGVyZGl2LnNlbGVjdEFsbCgiLm1haW4tc3ZnIikuYXR0cihRLnN2Z0F0dHJzKSxyLl9kZWZzPXIuX3BhcGVyLmFwcGVuZCgiZGVmcyIpLmF0dHIoImlkIiwiZGVmcy0iK3IuX3VpZCksci5fdG9wZGVmcz1yLl90b3BwYXBlci5hcHBlbmQoImRlZnMiKS5hdHRyKCJpZCIsInRvcGRlZnMtIityLl91aWQpLHIuX2RyYWdnZXJzPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImRyYWdsYXllciIsITApO3ZhciBpPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxheWVyLWJlbG93IiwhMCk7ci5faW1hZ2VMb3dlckxheWVyPWkuYXBwZW5kKCJnIikuY2xhc3NlZCgiaW1hZ2VsYXllciIsITApLHIuX3NoYXBlTG93ZXJMYXllcj1pLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNoYXBlbGF5ZXIiLCEwKTt2YXIgbz1DLkF4ZXMuZ2V0U3VicGxvdHModCk7by5qb2luKCIiKSE9PU9iamVjdC5rZXlzKHQuX2Z1bGxMYXlvdXQuX3Bsb3RzfHx7fSkuam9pbigiIikmJkEodCxvKSxyLl9oYXMoImNhcnRlc2lhbiIpJiZUKHQsbyksci5fdGVybmFyeWxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRlcm5hcnlsYXllciIsITApO3ZhciBhPXIuX3BhcGVyLnNlbGVjdEFsbCgiLmxheWVyLXN1YnBsb3QiKTtyLl9pbWFnZVN1YnBsb3RMYXllcj1hLnNlbGVjdEFsbCgiLmltYWdlbGF5ZXIiKSxyLl9zaGFwZVN1YnBsb3RMYXllcj1hLnNlbGVjdEFsbCgiLnNoYXBlbGF5ZXIiKTt2YXIgcz1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJsYXllci1hYm92ZSIsITApO3IuX2ltYWdlVXBwZXJMYXllcj1zLmFwcGVuZCgiZyIpLmNsYXNzZWQoImltYWdlbGF5ZXIiLCEwKSxyLl9zaGFwZVVwcGVyTGF5ZXI9cy5hcHBlbmQoImciKS5jbGFzc2VkKCJzaGFwZWxheWVyIiwhMCksci5fcGllbGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgicGllbGF5ZXIiLCEwKSxyLl9nbGltYWdlcz1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJnbGltYWdlcyIsITApLHIuX2dlb2ltYWdlcz1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJnZW9pbWFnZXMiLCEwKSxyLl9pbmZvbGF5ZXI9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiaW5mb2xheWVyIiwhMCksci5fem9vbWxheWVyPXIuX3RvcHBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInpvb21sYXllciIsITApLHIuX2hvdmVybGF5ZXI9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiaG92ZXJsYXllciIsITApLHQuZW1pdCgicGxvdGx5X2ZyYW1ld29yayIpO3ZhciBsPVIuc3luY09yQXN5bmMoW0UsZnVuY3Rpb24oKXtyZXR1cm4gQy5BeGVzLmRvVGlja3ModCwicmVkcmF3Iil9LEYuaW5pdF0sdCk7cmV0dXJuIGwmJmwudGhlbiYmdC5fcHJvbWlzZXMucHVzaChsKSxsfWZ1bmN0aW9uIEEodCxlKXtmdW5jdGlvbiByKGUscil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEMuQXhlcy5nZXRGcm9tSWQodCxlLHIpfX1mb3IodmFyIG4saSxvPXQuX2Z1bGxMYXlvdXQuX3Bsb3RzPXt9LGE9MDthPGUubGVuZ3RoO2ErKyluPWVbYV0saT1vW25dPXt9LGkuaWQ9bixpLng9cihuLCJ4IiksaS55PXIobiwieSIpLGkueGF4aXM9aS54KCksaS55YXhpcz1pLnkoKX1mdW5jdGlvbiBUKHQsZSl7ZnVuY3Rpb24gcih0KXt0LmFwcGVuZCgiZyIpLmNsYXNzZWQoImltYWdlbGF5ZXIiLCEwKSx0LmFwcGVuZCgiZyIpLmNsYXNzZWQoIm1hcGxheWVyIiwhMCksdC5hcHBlbmQoImciKS5jbGFzc2VkKCJiYXJsYXllciIsITApLHQuYXBwZW5kKCJnIikuY2xhc3NlZCgiYm94bGF5ZXIiLCEwKSx0LmFwcGVuZCgiZyIpLmNsYXNzZWQoInNjYXR0ZXJsYXllciIsITApfXZhciBuPXQuX2Z1bGxMYXlvdXQsaT1bXTtuLl9wYXBlci5zZWxlY3RBbGwoImcuc3VicGxvdCIpLmRhdGEoZSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzdWJwbG90IiwhMCkuZWFjaChmdW5jdGlvbihvKXt2YXIgYT1uLl9wbG90c1tvXSxzPWEucGxvdGdyb3VwPXouc2VsZWN0KHRoaXMpLmNsYXNzZWQobywhMCksbD1hLnhheGlzLHU9YS55YXhpczthLm92ZXJsYXlzPVtdO3ZhciBjPUMuQXhlcy5nZXRGcm9tSWQodCxsLm92ZXJsYXlpbmcpfHxsO2MhPT1sJiZjLm92ZXJsYXlpbmcmJihjPWwsbC5vdmVybGF5aW5nPSExKTt2YXIgaD1DLkF4ZXMuZ2V0RnJvbUlkKHQsdS5vdmVybGF5aW5nKXx8dTtoIT09dSYmaC5vdmVybGF5aW5nJiYoaD11LHUub3ZlcmxheWluZz0hMSk7dmFyIGY9Yy5faWQraC5faWQ7aWYoZiE9PW8mJi0xIT09ZS5pbmRleE9mKGYpKWEubWFpbnBsb3Q9ZixpLnB1c2goYSksbC5kb21haW49Yy5kb21haW4uc2xpY2UoKSx1LmRvbWFpbj1oLmRvbWFpbi5zbGljZSgpO2Vsc2V7YS5iZz1zLmFwcGVuZCgicmVjdCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLDApO3ZhciBwPXMuYXBwZW5kKCJnIikuY2xhc3NlZCgibGF5ZXItc3VicGxvdCIsITApO2Euc2hhcGVsYXllcj1wLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNoYXBlbGF5ZXIiLCEwKSxhLmltYWdlbGF5ZXI9cC5hcHBlbmQoImciKS5jbGFzc2VkKCJpbWFnZWxheWVyIiwhMCksYS5ncmlkbGF5ZXI9cy5hcHBlbmQoImciKSxhLm92ZXJncmlkPXMuYXBwZW5kKCJnIiksYS56ZXJvbGluZWxheWVyPXMuYXBwZW5kKCJnIiksYS5vdmVyemVybz1zLmFwcGVuZCgiZyIpLGEucGxvdD1zLmFwcGVuZCgiZyIpLmNhbGwociksYS5vdmVycGxvdD1zLmFwcGVuZCgiZyIpLGEueGxpbmVzPXMuYXBwZW5kKCJwYXRoIiksYS55bGluZXM9cy5hcHBlbmQoInBhdGgiKSxhLm92ZXJsaW5lcz1zLmFwcGVuZCgiZyIpLGEueGF4aXNsYXllcj1zLmFwcGVuZCgiZyIpLGEueWF4aXNsYXllcj1zLmFwcGVuZCgiZyIpLGEub3ZlcmF4ZXM9cy5hcHBlbmQoImciKX1hLmRyYWdsYXllcj1uLl9kcmFnZ2Vycy5hcHBlbmQoImciKX0pLGkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgZT1uLl9wbG90c1t0Lm1haW5wbG90XTtlLm92ZXJsYXlzLnB1c2godCksdC5ncmlkbGF5ZXI9ZS5vdmVyZ3JpZC5hcHBlbmQoImciKSx0Lnplcm9saW5lbGF5ZXI9ZS5vdmVyemVyby5hcHBlbmQoImciKSx0LnBsb3Q9ZS5vdmVycGxvdC5hcHBlbmQoImciKS5jYWxsKHIpLHQueGxpbmVzPWUub3ZlcmxpbmVzLmFwcGVuZCgicGF0aCIpLHQueWxpbmVzPWUub3ZlcmxpbmVzLmFwcGVuZCgicGF0aCIpLHQueGF4aXNsYXllcj1lLm92ZXJheGVzLmFwcGVuZCgiZyIpLHQueWF4aXNsYXllcj1lLm92ZXJheGVzLmFwcGVuZCgiZyIpfSksZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uX3Bsb3RzW3RdO2UueGxpbmVzLnN0eWxlKCJmaWxsIiwibm9uZSIpLmNsYXNzZWQoImNyaXNwIiwhMCksZS55bGluZXMuc3R5bGUoImZpbGwiLCJub25lIikuY2xhc3NlZCgiY3Jpc3AiLCEwKX0pfWZ1bmN0aW9uIEUodCl7cmV0dXJuIFIuc3luY09yQXN5bmMoW08uZG9BdXRvTWFyZ2luLFNdLHQpfWZ1bmN0aW9uIFModCl7dmFyIGUscj10Ll9mdWxsTGF5b3V0LG49ci5fc2l6ZSxpPUMuQXhlcy5saXN0KHQpO2ZvcihlPTA7ZTxpLmxlbmd0aDtlKyspaVtlXS5fbGluZXBvc2l0aW9ucz17fTtyLl9wYXBlcmRpdi5zdHlsZSh7d2lkdGg6ci53aWR0aCsicHgiLGhlaWdodDpyLmhlaWdodCsicHgifSkuc2VsZWN0QWxsKCIubWFpbi1zdmciKS5jYWxsKEIuc2V0U2l6ZSxyLndpZHRoLHIuaGVpZ2h0KSx0Ll9jb250ZXh0LnNldEJhY2tncm91bmQodCxyLnBhcGVyX2JnY29sb3IpO3ZhciBvPVtdO3JldHVybiByLl9wYXBlci5zZWxlY3RBbGwoImcuc3VicGxvdCIpLmVhY2goZnVuY3Rpb24oZSl7dmFyIGk9ci5fcGxvdHNbZV0sYT1DLkF4ZXMuZ2V0RnJvbUlkKHQsZSwieCIpLHM9Qy5BeGVzLmdldEZyb21JZCh0LGUsInkiKTthLnNldFNjYWxlKCkscy5zZXRTY2FsZSgpLGkuYmcmJmkuYmcuY2FsbChCLnNldFJlY3QsYS5fb2Zmc2V0LW4ucCxzLl9vZmZzZXQtbi5wLGEuX2xlbmd0aCsyKm4ucCxzLl9sZW5ndGgrMipuLnApLmNhbGwoTi5maWxsLHIucGxvdF9iZ2NvbG9yKSxpLmNsaXBJZD0iY2xpcCIrci5fdWlkK2UrInBsb3QiO3ZhciBsPXIuX2RlZnMuc2VsZWN0QWxsKCJnLmNsaXBzIikuc2VsZWN0QWxsKCIjIitpLmNsaXBJZCkuZGF0YShbMF0pO2wuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cih7ImNsYXNzIjoicGxvdGNsaXAiLGlkOmkuY2xpcElkfSkuYXBwZW5kKCJyZWN0IiksbC5zZWxlY3RBbGwoInJlY3QiKS5hdHRyKHt3aWR0aDphLl9sZW5ndGgsaGVpZ2h0OnMuX2xlbmd0aH0pLGkucGxvdC5jYWxsKFIuc2V0VHJhbnNsYXRlLGEuX29mZnNldCxzLl9vZmZzZXQpLGkucGxvdC5jYWxsKEIuc2V0Q2xpcFVybCxpLmNsaXBJZCk7dmFyIHU9Qi5jcmlzcFJvdW5kKHQsYS5saW5ld2lkdGgsMSksYz1CLmNyaXNwUm91bmQodCxzLmxpbmV3aWR0aCwxKSxoPW4ucCtjLGY9Ik0iKy1oKyIsIixwPSJoIisoYS5fbGVuZ3RoKzIqaCksZD0iZnJlZSI9PT1hLmFuY2hvciYmLTE9PT1vLmluZGV4T2YoYS5faWQpLG09bi5oKigxLShhLnBvc2l0aW9ufHwwKSkrdS8yJTEsZz1hLmFuY2hvcj09PXMuX2lkJiYoYS5taXJyb3J8fCJ0b3AiIT09YS5zaWRlKXx8ImFsbCI9PT1hLm1pcnJvcnx8ImFsbHRpY2tzIj09PWEubWlycm9yfHxhLm1pcnJvcnMmJmEubWlycm9yc1tzLl9pZCsiYm90dG9tIl0sdj1zLl9sZW5ndGgrbi5wK3UvMix5PWEuYW5jaG9yPT09cy5faWQmJihhLm1pcnJvcnx8InRvcCI9PT1hLnNpZGUpfHwiYWxsIj09PWEubWlycm9yfHwiYWxsdGlja3MiPT09YS5taXJyb3J8fGEubWlycm9ycyYmYS5taXJyb3JzW3MuX2lkKyJ0b3AiXSxiPS1uLnAtdS8yLHg9bi5wLF89Zz8wOnUsdz15PzA6dSxNPSIsIisoLXgtdykrInYiKyhzLl9sZW5ndGgrMip4K3crXyksaz0iZnJlZSI9PT1zLmFuY2hvciYmLTE9PT1vLmluZGV4T2Yocy5faWQpLEE9bi53KihzLnBvc2l0aW9ufHwwKStjLzIlMSxUPXMuYW5jaG9yPT09YS5faWQmJihzLm1pcnJvcnx8InJpZ2h0IiE9PXMuc2lkZSl8fCJhbGwiPT09cy5taXJyb3J8fCJhbGx0aWNrcyI9PT1zLm1pcnJvcnx8cy5taXJyb3JzJiZzLm1pcnJvcnNbYS5faWQrImxlZnQiXSxFPS1uLnAtYy8yLFM9cy5hbmNob3I9PT1hLl9pZCYmKHMubWlycm9yfHwicmlnaHQiPT09cy5zaWRlKXx8ImFsbCI9PT1zLm1pcnJvcnx8ImFsbHRpY2tzIj09PXMubWlycm9yfHxzLm1pcnJvcnMmJnMubWlycm9yc1thLl9pZCsicmlnaHQiXSxMPWEuX2xlbmd0aCtuLnArYy8yO2EuX2xpbmVwb3NpdGlvbnNbZV09W2c/djp2b2lkIDAseT9iOnZvaWQgMCxkP206dm9pZCAwXSxhLmFuY2hvcj09PXMuX2lkP2EuX2xpbmVwb3NpdGlvbnNbZV1bM109InRvcCI9PT1hLnNpZGU/Yjp2OmQmJihhLl9saW5lcG9zaXRpb25zW2VdWzNdPW0pLHMuX2xpbmVwb3NpdGlvbnNbZV09W1Q/RTp2b2lkIDAsUz9MOnZvaWQgMCxrP0E6dm9pZCAwXSxzLmFuY2hvcj09PWEuX2lkP3MuX2xpbmVwb3NpdGlvbnNbZV1bM109InJpZ2h0Ij09PXMuc2lkZT9MOkU6ayYmKHMuX2xpbmVwb3NpdGlvbnNbZV1bM109QSk7dmFyIHo9InRyYW5zbGF0ZSgiK2EuX29mZnNldCsiLCIrcy5fb2Zmc2V0KyIpIixJPXosUD16O2QmJihJPSJ0cmFuc2xhdGUoIithLl9vZmZzZXQrIiwiK24udCsiKSIsYis9cy5fb2Zmc2V0LW4udCx2Kz1zLl9vZmZzZXQtbi50KSxrJiYoUD0idHJhbnNsYXRlKCIrbi5sKyIsIitzLl9vZmZzZXQrIikiLEUrPWEuX29mZnNldC1uLmwsTCs9YS5fb2Zmc2V0LW4ubCksaS54bGluZXMuYXR0cigidHJhbnNmb3JtIixJKS5hdHRyKCJkIiwoZz9mK3YrcDoiIikrKHk/ZitiK3A6IiIpKyhkP2YrbStwOiIiKXx8Ik0wLDAiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIix1KyJweCIpLmNhbGwoTi5zdHJva2UsYS5zaG93bGluZT9hLmxpbmVjb2xvcjoicmdiYSgwLDAsMCwwKSIpLGkueWxpbmVzLmF0dHIoInRyYW5zZm9ybSIsUCkuYXR0cigiZCIsKFQ/Ik0iK0UrTToiIikrKFM/Ik0iK0wrTToiIikrKGs/Ik0iK0ErTToiIil8fCJNMCwwIikuYXR0cigic3Ryb2tlLXdpZHRoIixjKyJweCIpLmNhbGwoTi5zdHJva2Uscy5zaG93bGluZT9zLmxpbmVjb2xvcjoicmdiYSgwLDAsMCwwKSIpLGkueGF4aXNsYXllci5hdHRyKCJ0cmFuc2Zvcm0iLEkpLGkueWF4aXNsYXllci5hdHRyKCJ0cmFuc2Zvcm0iLFApLGkuZ3JpZGxheWVyLmF0dHIoInRyYW5zZm9ybSIseiksaS56ZXJvbGluZWxheWVyLmF0dHIoInRyYW5zZm9ybSIseiksaS5kcmFnbGF5ZXIuYXR0cigidHJhbnNmb3JtIix6KSxkJiZvLnB1c2goYS5faWQpLGsmJm8ucHVzaChzLl9pZCl9KSxDLkF4ZXMubWFrZUNsaXBQYXRocyh0KSxMKHQpLFoodCksdC5fcHJvbWlzZXMubGVuZ3RoJiZQcm9taXNlLmFsbCh0Ll9wcm9taXNlcyl9ZnVuY3Rpb24gTCh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O1cuZHJhdyh0LCJndGl0bGUiLHtwcm9wQ29udGFpbmVyOmUscHJvcE5hbWU6InRpdGxlIixkZmx0TmFtZToiUGxvdCIsYXR0cmlidXRlczp7eDplLndpZHRoLzIseTplLl9zaXplLnQvMiwidGV4dC1hbmNob3IiOiJtaWRkbGUifX0pfXZhciB6PXQoImQzIiksST10KCJnbC1tYXQ0L2Zyb21RdWF0IiksUD10KCJmYXN0LWlzbnVtZXJpYyIpLEM9dCgiLi4vcGxvdGx5IiksUj10KCIuLi9saWIiKSxqPXQoIi4uL2xpYi9ldmVudHMiKSxEPXQoIi4uL2xpYi9xdWV1ZSIpLE89dCgiLi4vcGxvdHMvcGxvdHMiKSxGPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCIpLE49dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLEI9dCgiLi4vY29tcG9uZW50cy9kcmF3aW5nIiksVT10KCIuLi9jb21wb25lbnRzL2Vycm9yYmFycyIpLFY9dCgiLi4vY29tcG9uZW50cy9pbWFnZXMiKSxxPXQoIi4uL2NvbXBvbmVudHMvbGVnZW5kIiksRz10KCIuLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyIiksSD10KCIuLi9jb21wb25lbnRzL3Jhbmdlc2VsZWN0b3IiKSxYPXQoIi4uL2NvbXBvbmVudHMvdXBkYXRlbWVudXMiKSxZPXQoIi4uL2NvbXBvbmVudHMvc2hhcGVzIiksVz10KCIuLi9jb21wb25lbnRzL3RpdGxlcyIpLFo9dCgiLi4vY29tcG9uZW50cy9tb2RlYmFyL21hbmFnZSIpLFE9dCgiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKTtDLnBsb3Q9ZnVuY3Rpb24odCxlLHIsaSl7ZnVuY3Rpb24gbygpe3ZhciBlLHIsbixpPXQuY2FsY2RhdGE7Zm9yKHEuZHJhdyh0KSxILmRyYXcodCksWC5kcmF3KHQpLGU9MDtlPGkubGVuZ3RoO2UrKylyPWlbZV0sbj1yWzBdLnRyYWNlLG4udmlzaWJsZT09PSEwJiZuLl9tb2R1bGUuY29sb3JiYXI/bi5fbW9kdWxlLmNvbG9yYmFyKHQscik6Ty5hdXRvTWFyZ2luKHQsImNiIituLnVpZCk7cmV0dXJuIE8uZG9BdXRvTWFyZ2luKHQpLE8ucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiB1KCl7dmFyIGU9SlNPTi5zdHJpbmdpZnkoQS5fc2l6ZSk9PT1MP1tdOltvLEVdO3JldHVybiBSLnN5bmNPckFzeW5jKGUuY29uY2F0KEYuaW5pdCksdCl9ZnVuY3Rpb24gaCgpe2lmKFQpe2Zvcih2YXIgZSxyLG49Ty5nZXRTdWJwbG90SWRzKEEsImNhcnRlc2lhbiIpLGk9QS5fbW9kdWxlcyxvPTA7bzxuLmxlbmd0aDtvKyspe2U9QS5fcGxvdHNbbltvXV07Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspcj1pW2FdLHIuc2V0UG9zaXRpb25zJiZyLnNldFBvc2l0aW9ucyh0LGUpfXJldHVybiBVLmNhbGModCksUi5zeW5jT3JBc3luYyhbWS5jYWxjQXV0b3JhbmdlLEMuQW5ub3RhdGlvbnMuY2FsY0F1dG9yYW5nZSxmXSx0KX19ZnVuY3Rpb24gZigpe2Zvcih2YXIgZT1DLkF4ZXMubGlzdCh0LCIiLCEwKSxyPTA7cjxlLmxlbmd0aDtyKyspQy5BeGVzLmRvQXV0b1JhbmdlKGVbcl0pfWZ1bmN0aW9uIGQoKXtyZXR1cm4gQy5BeGVzLmRvVGlja3ModCwicmVkcmF3Iil9ZnVuY3Rpb24gbSgpe3ZhciBlLHI9dC5jYWxjZGF0YTtmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKXt2YXIgbj1yW2VdWzBdLnRyYWNlLGk9bi52aXNpYmxlPT09ITAsbz1uLnVpZDtpJiZPLnRyYWNlSXMobiwiMmRNYXAiKXx8QS5fcGFwZXIuc2VsZWN0QWxsKCIuaG0iK28rIiwuY29udG91ciIrbysiLCNjbGlwIitvKS5yZW1vdmUoKSxpJiZuLl9tb2R1bGUuY29sb3JiYXJ8fEEuX2luZm9sYXllci5zZWxlY3RBbGwoIi5jYiIrbykucmVtb3ZlKCl9dmFyIGE9QS5fYmFzZVBsb3RNb2R1bGVzO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspYVtlXS5wbG90KHQpO3JldHVybiBPLnN0eWxlKHQpLFkuZHJhd0FsbCh0KSxDLkFubm90YXRpb25zLmRyYXdBbGwodCksTy5hZGRMaW5rcyh0KSx0Ll9yZXBsb3R0aW5nPSExLE8ucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBnKCl7WS5kcmF3QWxsKHQpLFYuZHJhdyh0KSxDLkFubm90YXRpb25zLmRyYXdBbGwodCkscS5kcmF3KHQpLEcuZHJhdyh0KSxILmRyYXcodCksWC5kcmF3KHQpfWZ1bmN0aW9uIHYoKXt0LmVtaXQoInBsb3RseV9hZnRlcnBsb3QiKX10PW4odCksai5pbml0KHQpO3ZhciB5PWoudHJpZ2dlckhhbmRsZXIodCwicGxvdGx5X2JlZm9yZXBsb3QiLFtlLHIsaV0pO2lmKHk9PT0hMSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtlfHxyfHxSLmlzUGxvdERpdih0KXx8Ui53YXJuKCJDYWxsaW5nIFBsb3RseS5wbG90IGFzIGlmIHJlZHJhd2luZyBidXQgdGhpcyBjb250YWluZXIgZG9lc24ndCB5ZXQgaGF2ZSBhIHBsb3QuIix0KSxhKHQsaSkscnx8KHI9e30pLHouc2VsZWN0KHQpLmNsYXNzZWQoImpzLXBsb3RseS1wbG90IiwhMCksQi5tYWtlVGVzdGVyKHQpLHQuX3Byb21pc2VzPVtdO3ZhciBiPTA9PT0odC5kYXRhfHxbXSkubGVuZ3RoJiZBcnJheS5pc0FycmF5KGUpO2lmKEFycmF5LmlzQXJyYXkoZSkmJihjKGUsdC5kYXRhKSxiP3QuZGF0YT1lOnQuZGF0YS5wdXNoLmFwcGx5KHQuZGF0YSxlKSx0LmVtcHR5PSExKSx0LmxheW91dCYmIWJ8fCh0LmxheW91dD1sKHIpKSx0Ll9kcmFnZ2luZylyZXR1cm4gdC5fcmVwbG90UGVuZGluZz0hMCxQcm9taXNlLnJlamVjdCgpO2lmKHQuX3JlcGxvdFBlbmRpbmc9ITEsTy5zdXBwbHlEZWZhdWx0cyh0KSxlJiZlWzBdJiZlWzBdLnIpcmV0dXJuIHModCxlLHIpO3QuX3JlcGxvdHRpbmc9ITA7dmFyIHg9dC5fZnVsbERhdGEubGVuZ3RoPjAsXz1DLkF4ZXMuZ2V0U3VicGxvdHModCkuam9pbigiIiksdz1PYmplY3Qua2V5cyh0Ll9mdWxsTGF5b3V0Ll9wbG90c3x8e30pLmpvaW4oIiIpLE09dz09PV87eD90LmZyYW1ld29yaz09PWsmJiFiJiZNfHwodC5mcmFtZXdvcms9ayxrKHQpKTpNP2ImJmsodCk6KHQuZnJhbWV3b3JrPWssayh0KSksYiYmQy5BeGVzLnNhdmVSYW5nZUluaXRpYWwodCk7dmFyIEE9dC5fZnVsbExheW91dCxUPSF0LmNhbGNkYXRhfHx0LmNhbGNkYXRhLmxlbmd0aCE9PSh0LmRhdGF8fFtdKS5sZW5ndGg7VCYmcCh0KTtmb3IodmFyIFM9MDtTPHQuY2FsY2RhdGEubGVuZ3RoO1MrKyl0LmNhbGNkYXRhW1NdWzBdLnRyYWNlPXQuX2Z1bGxEYXRhW1NdO3ZhciBMPUpTT04uc3RyaW5naWZ5KEEuX3NpemUpO3JldHVybiBSLnN5bmNPckFzeW5jKFtPLnByZXZpb3VzUHJvbWlzZXMsbyx1LGgsRSxkLG0sZ10sdCx2KSxQcm9taXNlLmFsbCh0Ll9wcm9taXNlcykudGhlbihmdW5jdGlvbigpe3JldHVybiB0fSl9LEMucmVkcmF3PWZ1bmN0aW9uKHQpe3JldHVybiB0PW4odCksUi5pc1Bsb3REaXYodCk/KHQuY2FsY2RhdGE9dm9pZCAwLEMucGxvdCh0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3JlZHJhdyIpLHR9KSk6dm9pZCBSLndhcm4oIlRoaXMgZWxlbWVudCBpcyBub3QgYSBQbG90bHkgcGxvdC4iLHQpfSxDLm5ld1Bsb3Q9ZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIHQ9bih0KSxPLmNsZWFuUGxvdChbXSx7fSx0Ll9mdWxsRGF0YXx8e30sdC5fZnVsbExheW91dHx8e30pLE8ucHVyZ2UodCksQy5wbG90KHQsZSxyLGkpfSxDLmV4dGVuZFRyYWNlcz1mdW5jdGlvbiBLKHQsZSxyLGkpe3Q9bih0KTt2YXIgbz14KHQsZSxyLGksZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jb25jYXQoZSl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc3BsaWNlKDAsdC5sZW5ndGgtZSl9KSxhPUMucmVkcmF3KHQpLHM9W3Qsby51cGRhdGUscixvLm1heFBvaW50c107cmV0dXJuIEQuYWRkKHQsQy5wcmVwZW5kVHJhY2VzLHMsSyxhcmd1bWVudHMpLGF9LEMucHJlcGVuZFRyYWNlcz1mdW5jdGlvbiBKKHQsZSxyLGkpe3Q9bih0KTt2YXIgbz14KHQsZSxyLGksZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5jb25jYXQodCl9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc3BsaWNlKGUsdC5sZW5ndGgpfSksYT1DLnJlZHJhdyh0KSxzPVt0LG8udXBkYXRlLHIsby5tYXhQb2ludHNdO3JldHVybiBELmFkZCh0LEMuZXh0ZW5kVHJhY2VzLHMsSixhcmd1bWVudHMpLGF9LEMuYWRkVHJhY2VzPWZ1bmN0aW9uICQodCxlLHIpe3Q9bih0KTt2YXIgaSxvLGE9W10scz1DLmRlbGV0ZVRyYWNlcyxsPSQsdT1bdCxhXSxoPVt0LGVdO2Zvcih2KHQsZSxyKSxBcnJheS5pc0FycmF5KGUpfHwoZT1bZV0pLGMoZSx0LmRhdGEpLGk9MDtpPGUubGVuZ3RoO2krPTEpdC5kYXRhLnB1c2goZVtpXSk7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKylhLnB1c2goLWUubGVuZ3RoK2kpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgcilyZXR1cm4gbz1DLnJlZHJhdyh0KSxELmFkZCh0LHMsdSxsLGgpLG87QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKTt0cnl7Zyh0LGEscil9Y2F0Y2goZil7dGhyb3cgdC5kYXRhLnNwbGljZSh0LmRhdGEubGVuZ3RoLWUubGVuZ3RoLGUubGVuZ3RoKSxmfXJldHVybiBELnN0YXJ0U2VxdWVuY2UodCksRC5hZGQodCxzLHUsbCxoKSxvPUMubW92ZVRyYWNlcyh0LGEsciksRC5zdG9wU2VxdWVuY2UodCksb30sQy5kZWxldGVUcmFjZXM9ZnVuY3Rpb24gdHQodCxlKXt0PW4odCk7dmFyIHIsaSxvPVtdLGE9Qy5hZGRUcmFjZXMscz10dCxsPVt0LG8sZV0sdT1bdCxlXTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbmRpY2VzIG11c3QgYmUgYW4gaW50ZWdlciBvciBhcnJheSBvZiBpbnRlZ2Vycy4iKTtmb3IoQXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKSxtKHQsZSwiaW5kaWNlcyIpLGU9ZChlLHQuZGF0YS5sZW5ndGgtMSksZS5zb3J0KFIuc29ydGVyRGVzKSxyPTA7cjxlLmxlbmd0aDtyKz0xKWk9dC5kYXRhLnNwbGljZShlW3JdLDEpWzBdLG8ucHVzaChpKTt2YXIgYz1DLnJlZHJhdyh0KTtyZXR1cm4gRC5hZGQodCxhLGwscyx1KSxjfSxDLm1vdmVUcmFjZXM9ZnVuY3Rpb24gZXQodCxlLHIpe3Q9bih0KTt2YXIgaSxvPVtdLGE9W10scz1ldCxsPWV0LHU9W3QscixlXSxjPVt0LGUscl07aWYoZyh0LGUsciksZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdLCJ1bmRlZmluZWQiPT10eXBlb2Ygcilmb3Iocj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspci5wdXNoKC1lLmxlbmd0aCtpKTtmb3Iocj1BcnJheS5pc0FycmF5KHIpP3I6W3JdLGU9ZChlLHQuZGF0YS5sZW5ndGgtMSkscj1kKHIsdC5kYXRhLmxlbmd0aC0xKSxpPTA7aTx0LmRhdGEubGVuZ3RoO2krKyktMT09PWUuaW5kZXhPZihpKSYmby5wdXNoKHQuZGF0YVtpXSk7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKylhLnB1c2goe25ld0luZGV4OnJbaV0sdHJhY2U6dC5kYXRhW2VbaV1dfSk7Zm9yKGEuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm5ld0luZGV4LWUubmV3SW5kZXh9KSxpPTA7aTxhLmxlbmd0aDtpKz0xKW8uc3BsaWNlKGFbaV0ubmV3SW5kZXgsMCxhW2ldLnRyYWNlKTt0LmRhdGE9bzt2YXIgaD1DLnJlZHJhdyh0KTtyZXR1cm4gRC5hZGQodCxzLHUsbCxjKSxofSxDLnJlc3R5bGU9ZnVuY3Rpb24gcnQodCxlLHIsbyl7ZnVuY3Rpb24gYSgpe3JldHVybiBvLm1hcChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIHModCl7dmFyIGU9Qy5BeGVzLmlkMm5hbWUodCk7LTE9PT1tLmluZGV4T2YoZSkmJm0ucHVzaChlKX1mdW5jdGlvbiBsKHQpe3JldHVybiJMQVlPVVQiK3QrIi5hdXRvcmFuZ2UifWZ1bmN0aW9uIHUodCl7cmV0dXJuIkxBWU9VVCIrdCsiLnJhbmdlIn1mdW5jdGlvbiBjKGUscixuKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiB2b2lkIGUuZm9yRWFjaChmdW5jdGlvbih0KXtjKHQscixuKX0pO2lmKCEoZSBpbiBwKSl7dmFyIGk7aT0iTEFZT1VUIj09PWUuc3Vic3RyKDAsNik/Ui5uZXN0ZWRQcm9wZXJ0eSh0LmxheW91dCxlLnJlcGxhY2UoIkxBWU9VVCIsIiIpKTpSLm5lc3RlZFByb3BlcnR5KHQuZGF0YVtvW25dXSxlKSxlIGluIEV8fChFW2VdPWEoKSksdm9pZCAwPT09RVtlXVtuXSYmKEVbZV1bbl09aS5nZXQoKSksdm9pZCAwIT09ciYmaS5zZXQocil9fXQ9bih0KSxpKHQpO3ZhciBoLGY9dC5fZnVsbExheW91dCxwPXt9O2lmKCJzdHJpbmciPT10eXBlb2YgZSlwW2VdPXI7ZWxzZXtpZighUi5pc1BsYWluT2JqZWN0KGUpKXJldHVybiBSLndhcm4oIlJlc3R5bGUgZmFpbC4iLGUscixvKSxQcm9taXNlLnJlamVjdCgpO3A9ZSx2b2lkIDA9PT1vJiYobz1yKX1PYmplY3Qua2V5cyhwKS5sZW5ndGgmJih0LmNoYW5nZWQ9ITApLFAobyk/bz1bb106QXJyYXkuaXNBcnJheShvKSYmby5sZW5ndGh8fChvPXQuZGF0YS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKTt2YXIgZD1bIm1vZGUiLCJ2aXNpYmxlIiwidHlwZSIsIm9yaWVudGF0aW9uIiwiZmlsbCIsImhpc3RmdW5jIiwiaGlzdG5vcm0iLCJ0ZXh0IiwieCIsInkiLCJ6IiwiYSIsImIiLCJjIiwieHR5cGUiLCJ4MCIsImR4IiwieXR5cGUiLCJ5MCIsImR5IiwieGF4aXMiLCJ5YXhpcyIsImxpbmUud2lkdGgiLCJjb25uZWN0Z2FwcyIsInRyYW5zcG9zZSIsInpzbW9vdGgiLCJzaG93c2NhbGUiLCJtYXJrZXIuc2hvd3NjYWxlIiwiemF1dG8iLCJtYXJrZXIuY2F1dG8iLCJhdXRvY29sb3JzY2FsZSIsIm1hcmtlci5hdXRvY29sb3JzY2FsZSIsImNvbG9yc2NhbGUiLCJtYXJrZXIuY29sb3JzY2FsZSIsInJldmVyc2VzY2FsZSIsIm1hcmtlci5yZXZlcnNlc2NhbGUiLCJhdXRvYmlueCIsIm5iaW5zeCIsInhiaW5zIiwieGJpbnMuc3RhcnQiLCJ4Ymlucy5lbmQiLCJ4Ymlucy5zaXplIiwiYXV0b2JpbnkiLCJuYmluc3kiLCJ5YmlucyIsInliaW5zLnN0YXJ0IiwieWJpbnMuZW5kIiwieWJpbnMuc2l6ZSIsImF1dG9jb250b3VyIiwibmNvbnRvdXJzIiwiY29udG91cnMiLCJjb250b3Vycy5jb2xvcmluZyIsImVycm9yX3kiLCJlcnJvcl95LnZpc2libGUiLCJlcnJvcl95LnZhbHVlIiwiZXJyb3JfeS50eXBlIiwiZXJyb3JfeS50cmFjZXJlZiIsImVycm9yX3kuYXJyYXkiLCJlcnJvcl95LnN5bW1ldHJpYyIsImVycm9yX3kuYXJyYXltaW51cyIsImVycm9yX3kudmFsdWVtaW51cyIsImVycm9yX3kudHJhY2VyZWZtaW51cyIsImVycm9yX3giLCJlcnJvcl94LnZpc2libGUiLCJlcnJvcl94LnZhbHVlIiwiZXJyb3JfeC50eXBlIiwiZXJyb3JfeC50cmFjZXJlZiIsImVycm9yX3guYXJyYXkiLCJlcnJvcl94LnN5bW1ldHJpYyIsImVycm9yX3guYXJyYXltaW51cyIsImVycm9yX3gudmFsdWVtaW51cyIsImVycm9yX3gudHJhY2VyZWZtaW51cyIsInN3YXB4eSIsInN3YXB4eWF4ZXMiLCJvcmllbnRhdGlvbmF4ZXMiLCJtYXJrZXIuY29sb3JzIiwidmFsdWVzIiwibGFiZWxzIiwibGFiZWwwIiwiZGxhYmVsIiwic29ydCIsInRleHRpbmZvIiwidGV4dHBvc2l0aW9uIiwidGV4dGZvbnQuc2l6ZSIsInRleHRmb250LmZhbWlseSIsInRleHRmb250LmNvbG9yIiwiaW5zaWRldGV4dGZvbnQuc2l6ZSIsImluc2lkZXRleHRmb250LmZhbWlseSIsImluc2lkZXRleHRmb250LmNvbG9yIiwib3V0c2lkZXRleHRmb250LnNpemUiLCJvdXRzaWRldGV4dGZvbnQuZmFtaWx5Iiwib3V0c2lkZXRleHRmb250LmNvbG9yIiwiaG9sZSIsInNjYWxlZ3JvdXAiLCJkb21haW4iLCJkb21haW4ueCIsImRvbWFpbi55IiwiZG9tYWluLnhbMF0iLCJkb21haW4ueFsxXSIsImRvbWFpbi55WzBdIiwiZG9tYWluLnlbMV0iLCJ0aWx0IiwidGlsdGF4aXMiLCJkZXB0aCIsImRpcmVjdGlvbiIsInJvdGF0aW9uIiwicHVsbCIsImxpbmUuc2hvd3NjYWxlIiwibGluZS5jYXV0byIsImxpbmUuYXV0b2NvbG9yc2NhbGUiLCJsaW5lLnJldmVyc2VzY2FsZSIsIm1hcmtlci5saW5lLnNob3dzY2FsZSIsIm1hcmtlci5saW5lLmNhdXRvIiwibWFya2VyLmxpbmUuYXV0b2NvbG9yc2NhbGUiLCJtYXJrZXIubGluZS5yZXZlcnNlc2NhbGUiXTtmb3IoaD0wO2g8by5sZW5ndGg7aCsrKWlmKE8udHJhY2VJcyh0Ll9mdWxsRGF0YVtvW2hdXSwiYm94Iikpe2QucHVzaCgibmFtZSIpO2JyZWFrfXZhciBtLGc9WyJtYXJrZXIiLCJtYXJrZXIuc2l6ZSIsInRleHRmb250IiwiYm94cG9pbnRzIiwiaml0dGVyIiwicG9pbnRwb3MiLCJ3aGlza2Vyd2lkdGgiLCJib3htZWFuIl0sdj1bInptaW4iLCJ6bWF4IiwiemF1dG8iLCJtYXJrZXIuY21pbiIsIm1hcmtlci5jbWF4IiwibWFya2VyLmNhdXRvIiwibGluZS5jbWluIiwibGluZS5jbWF4IiwibWFya2VyLmxpbmUuY21pbiIsIm1hcmtlci5saW5lLmNtYXgiLCJjb250b3Vycy5zdGFydCIsImNvbnRvdXJzLmVuZCIsImNvbnRvdXJzLnNpemUiLCJjb250b3Vycy5zaG93bGluZXMiLCJsaW5lIiwibGluZS5zbW9vdGhpbmciLCJsaW5lLnNoYXBlIiwiZXJyb3JfeS53aWR0aCIsImVycm9yX3gud2lkdGgiLCJlcnJvcl94LmNvcHlfeXN0eWxlIiwibWFya2VyLm1heGRpc3BsYXllZCJdLHk9WyJ0eXBlIiwieCIsInkiLCJ4MCIsInkwIiwib3JpZW50YXRpb24iLCJ4YXhpcyIsInlheGlzIl0sYj0hMSx4PSExLHc9ITEsTT0hMSxrPSExLEE9ITEsVD17fSxFPXt9LFM9e30sTD1bImNhcnRlc2lhbiIsInBpZSIsInRlcm5hcnkiXTtmLl9iYXNlUGxvdE1vZHVsZXMuZm9yRWFjaChmdW5jdGlvbih0KXstMT09PUwuaW5kZXhPZih0Lm5hbWUpJiYoYj0hMCl9KTt2YXIgej1bInptaW4iLCJ6bWF4Il0sST1bInhiaW5zLnN0YXJ0IiwieGJpbnMuZW5kIiwieGJpbnMuc2l6ZSJdLGo9WyJ5Ymlucy5zdGFydCIsInliaW5zLmVuZCIsInliaW5zLnNpemUiXSxGPVsiY29udG91cnMuc3RhcnQiLCJjb250b3Vycy5lbmQiLCJjb250b3Vycy5zaXplIl07Zm9yKHZhciBOIGluIHApe3ZhciBCLFUsVixHLEgsWD1wW05dO2lmKFRbTl09WCwiTEFZT1VUIiE9PU4uc3Vic3RyKDAsNikpe2ZvcigidHJhbnNmb3JtcyI9PT1OLnN1YnN0cigwLDEwKSYmKGI9ITApLEVbTl09YSgpLGg9MDtoPG8ubGVuZ3RoO2grKyl7aWYoQj10LmRhdGFbb1toXV0sVT10Ll9mdWxsRGF0YVtvW2hdXSxWPVIubmVzdGVkUHJvcGVydHkoQixOKSxHPVYuZ2V0KCksSD1BcnJheS5pc0FycmF5KFgpP1hbaCVYLmxlbmd0aF06WCwtMSE9PXouaW5kZXhPZihOKSljKCJ6YXV0byIsITEsaCk7ZWxzZSBpZigiY29sb3JzY2FsZSI9PT1OKWMoImF1dG9jb2xvcnNjYWxlIiwhMSxoKTtlbHNlIGlmKCJhdXRvY29sb3JzY2FsZSI9PT1OKWMoImNvbG9yc2NhbGUiLHZvaWQgMCxoKTtlbHNlIGlmKCJtYXJrZXIuY29sb3JzY2FsZSI9PT1OKWMoIm1hcmtlci5hdXRvY29sb3JzY2FsZSIsITEsaCk7ZWxzZSBpZigibWFya2VyLmF1dG9jb2xvcnNjYWxlIj09PU4pYygibWFya2VyLmNvbG9yc2NhbGUiLHZvaWQgMCxoKTtlbHNlIGlmKCJ6YXV0byI9PT1OKWMoeix2b2lkIDAsaCk7ZWxzZSBpZigtMSE9PUkuaW5kZXhPZihOKSljKCJhdXRvYmlueCIsITEsaCk7ZWxzZSBpZigiYXV0b2JpbngiPT09TiljKEksdm9pZCAwLGgpO2Vsc2UgaWYoLTEhPT1qLmluZGV4T2YoTikpYygiYXV0b2JpbnkiLCExLGgpO2Vsc2UgaWYoImF1dG9iaW55Ij09PU4pYyhqLHZvaWQgMCxoKTtlbHNlIGlmKC0xIT09Ri5pbmRleE9mKE4pKWMoImF1dG9jb250b3VyIiwhMSxoKTtlbHNlIGlmKCJhdXRvY29udG91ciI9PT1OKWMoRix2b2lkIDAsaCk7ZWxzZSBpZigtMSE9PVsieDAiLCJkeCJdLmluZGV4T2YoTikmJlUueCYmInNjYWxlZCIhPT1VLnh0eXBlKWMoInh0eXBlIiwic2NhbGVkIixoKTtlbHNlIGlmKC0xIT09WyJ5MCIsImR5Il0uaW5kZXhPZihOKSYmVS55JiYic2NhbGVkIiE9PVUueXR5cGUpYygieXR5cGUiLCJzY2FsZWQiLGgpO2Vsc2UgaWYoImNvbG9yYmFyLnRoaWNrbmVzc21vZGUiPT09TiYmVi5nZXQoKSE9PUgmJi0xIT09WyJmcmFjdGlvbiIsInBpeGVscyJdLmluZGV4T2YoSCkmJlUuY29sb3JiYXIpe3ZhciBZPS0xIT09WyJ0b3AiLCJib3R0b20iXS5pbmRleE9mKFUuY29sb3JiYXIub3JpZW50KT9mLmhlaWdodC1mLm1hcmdpbi50LWYubWFyZ2luLmI6Zi53aWR0aC1mLm1hcmdpbi5sLWYubWFyZ2luLnI7YygiY29sb3JiYXIudGhpY2tuZXNzIixVLmNvbG9yYmFyLnRoaWNrbmVzcyooImZyYWN0aW9uIj09PUg/MS9ZOlkpLGgpfWVsc2UgaWYoImNvbG9yYmFyLmxlbm1vZGUiPT09TiYmVi5nZXQoKSE9PUgmJi0xIT09WyJmcmFjdGlvbiIsInBpeGVscyJdLmluZGV4T2YoSCkmJlUuY29sb3JiYXIpe3ZhciBXPS0xIT09WyJ0b3AiLCJib3R0b20iXS5pbmRleE9mKFUuY29sb3JiYXIub3JpZW50KT9mLndpZHRoLWYubWFyZ2luLmwtZi5tYXJnaW4ucjpmLmhlaWdodC1mLm1hcmdpbi50LWYubWFyZ2luLmI7YygiY29sb3JiYXIubGVuIixVLmNvbG9yYmFyLmxlbiooImZyYWN0aW9uIj09PUg/MS9XOlcpLGgpfWVsc2UiY29sb3JiYXIudGljazAiPT09Tnx8ImNvbG9yYmFyLmR0aWNrIj09PU4/YygiY29sb3JiYXIudGlja21vZGUiLCJsaW5lYXIiLGgpOiJjb2xvcmJhci50aWNrbW9kZSI9PT1OJiZjKFsiY29sb3JiYXIudGljazAiLCJjb2xvcmJhci5kdGljayJdLHZvaWQgMCxoKTtpZigidHlwZSI9PT1OJiYicGllIj09PUghPSgicGllIj09PUcpKXt2YXIgWj0ieCIsUT0ieSI7ImJhciIhPT1IJiYiYmFyIiE9PUd8fCJoIiE9PUIub3JpZW50YXRpb258fChaPSJ5IixRPSJ4IiksUi5zd2FwQXR0cnMoQixbIj8iLCI/c3JjIl0sImxhYmVscyIsWiksUi5zd2FwQXR0cnMoQixbImQ/IiwiPzAiXSwibGFiZWwiLFopLFIuc3dhcEF0dHJzKEIsWyI/IiwiP3NyYyJdLCJ2YWx1ZXMiLFEpLCJwaWUiPT09Rz8oUi5uZXN0ZWRQcm9wZXJ0eShCLCJtYXJrZXIuY29sb3IiKS5zZXQoUi5uZXN0ZWRQcm9wZXJ0eShCLCJtYXJrZXIuY29sb3JzIikuZ2V0KCkpLGYuX3BpZWxheWVyLnNlbGVjdEFsbCgiZy50cmFjZSIpLnJlbW92ZSgpKTpPLnRyYWNlSXMoQiwiY2FydGVzaWFuIikmJihSLm5lc3RlZFByb3BlcnR5KEIsIm1hcmtlci5jb2xvcnMiKS5zZXQoUi5uZXN0ZWRQcm9wZXJ0eShCLCJtYXJrZXIuY29sb3IiKS5nZXQoKSksU1tCLnhheGlzfHwieCJdPSEwLFNbQi55YXhpc3x8InkiXT0hMCl9RVtOXVtoXT1HO3ZhciBLPVsic3dhcHh5Iiwic3dhcHh5YXhlcyIsIm9yaWVudGF0aW9uIiwib3JpZW50YXRpb25heGVzIl07aWYoLTEhPT1LLmluZGV4T2YoTikpe2lmKCJvcmllbnRhdGlvbiI9PT1OKXtpZihWLnNldChIKSxWLmdldCgpPT09RVtOXVtoXSljb250aW51ZX1lbHNlIm9yaWVudGF0aW9uYXhlcyI9PT1OJiYoQi5vcmllbnRhdGlvbj17djoiaCIsaDoidiJ9W1Uub3JpZW50YXRpb25dKTtfKEIpfWVsc2UgVi5zZXQoSCl9aWYoLTEhPT1bInN3YXB4eWF4ZXMiLCJvcmllbnRhdGlvbmF4ZXMiXS5pbmRleE9mKE4pJiZDLkF4ZXMuc3dhcCh0LG8pLCJvcmllbnRhdGlvbmF4ZXMiPT09Til7dmFyIEo9Ui5uZXN0ZWRQcm9wZXJ0eSh0LmxheW91dCwiaG92ZXJtb2RlIik7IngiPT09Si5nZXQoKT9KLnNldCgieSIpOiJ5Ij09PUouZ2V0KCkmJkouc2V0KCJ4Iil9aWYoLTEhPT1vLmluZGV4T2YoMCkmJi0xIT09eS5pbmRleE9mKE4pJiYoQy5BeGVzLmNsZWFyVHlwZXModCxvKSxiPSEwKSwtMSE9PVsiYXV0b2JpbngiLCJhdXRvYmlueSIsInphdXRvIl0uaW5kZXhPZihOKSYmSD09PSExfHwoaz0hMCksKC0xIT09WyJjb2xvcmJhciIsImxpbmUiXS5pbmRleE9mKFYucGFydHNbMF0pfHwibWFya2VyIj09PVYucGFydHNbMF0mJiJjb2xvcmJhciI9PT1WLnBhcnRzWzFdKSYmKEE9ITApLC0xIT09ZC5pbmRleE9mKE4pKXtpZigtMSE9PVsib3JpZW50YXRpb24iLCJ0eXBlIl0uaW5kZXhPZihOKSl7Zm9yKG09W10saD0wO2g8by5sZW5ndGg7aCsrKXt2YXIgJD10LmRhdGFbb1toXV07Ty50cmFjZUlzKCQsImNhcnRlc2lhbiIpJiYocygkLnhheGlzfHwieCIpLHMoJC55YXhpc3x8InkiKSwidHlwZSI9PT1lJiZjKFsiYXV0b2JpbngiLCJhdXRvYmlueSJdLCEwLGgpKX1jKG0ubWFwKGwpLCEwLDApLGMobS5tYXAodSksWzAsMV0sMCl9Yj0hMH1lbHNlLTEhPT12LmluZGV4T2YoTik/dz0hMDotMSE9PWcuaW5kZXhPZihOKSYmKHg9ITApfWVsc2UgVj1SLm5lc3RlZFByb3BlcnR5KHQubGF5b3V0LE4ucmVwbGFjZSgiTEFZT1VUIiwiIikpLEVbTl09W1YuZ2V0KCldLFYuc2V0KEFycmF5LmlzQXJyYXkoWCk/WFswXTpYKSxiPSEwfXZhciB0dD1PYmplY3Qua2V5cyhTKTt0OmZvcihoPTA7aDx0dC5sZW5ndGg7aCsrKXtmb3IodmFyIGV0PXR0W2hdLG50PWV0LmNoYXJBdCgwKSxpdD1udCsiYXhpcyIsb3Q9MDtvdDx0LmRhdGEubGVuZ3RoO290KyspaWYoTy50cmFjZUlzKHQuZGF0YVtvdF0sImNhcnRlc2lhbiIpJiYodC5kYXRhW290XVtpdF18fG50KT09PWV0KWNvbnRpbnVlIHQ7YygiTEFZT1VUIitDLkF4ZXMuaWQybmFtZShldCksbnVsbCwwKX1ELmFkZCh0LHJ0LFt0LEUsb10scnQsW3QsVCxvXSk7dmFyIGF0PSExO0MuQXhlcy5saXN0KHQpLmZvckVhY2goZnVuY3Rpb24odCl7dC5hdXRvcmFuZ2UmJihhdD0hMCk7Cn0pLChifHxNfHx4JiZhdCkmJih0LmNhbGNkYXRhPXZvaWQgMCk7dmFyIHN0O00/c3Q9W2Z1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQ7cmV0dXJuIHQubGF5b3V0PXZvaWQgMCxDLnBsb3QodCwiIixlKX1dOmJ8fHd8fHg/c3Q9W0MucGxvdF06KE8uc3VwcGx5RGVmYXVsdHModCksc3Q9W08ucHJldmlvdXNQcm9taXNlc10sayYmc3QucHVzaChmdW5jdGlvbigpe3ZhciBlLHIsbjtmb3IoZT0wO2U8dC5jYWxjZGF0YS5sZW5ndGg7ZSsrKXI9dC5jYWxjZGF0YVtlXSxuPSgoKHJbMF18fHt9KS50cmFjZXx8e30pLl9tb2R1bGV8fHt9KS5hcnJheXNUb0NhbGNkYXRhLG4mJm4ocik7cmV0dXJuIE8uc3R5bGUodCkscS5kcmF3KHQpLE8ucHJldmlvdXNQcm9taXNlcyh0KX0pLEEmJnN0LnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gdC5jYWxjZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKCh0WzBdLnR8fHt9KS5jYil7dmFyIGU9dFswXS50cmFjZSxyPXRbMF0udC5jYjtPLnRyYWNlSXMoZSwiY29udG91ciIpJiZyLmxpbmUoe3dpZHRoOmUuY29udG91cnMuc2hvd2xpbmVzIT09ITE/ZS5saW5lLndpZHRoOjAsZGFzaDplLmxpbmUuZGFzaCxjb2xvcjoibGluZSI9PT1lLmNvbnRvdXJzLmNvbG9yaW5nP3IuX29wdHMubGluZS5jb2xvcjplLmxpbmUuY29sb3J9KSxPLnRyYWNlSXMoZSwibWFya2VyQ29sb3JzY2FsZSIpP3Iub3B0aW9ucyhlLm1hcmtlci5jb2xvcmJhcikoKTpyLm9wdGlvbnMoZS5jb2xvcmJhcikoKX19KSxPLnByZXZpb3VzUHJvbWlzZXModCl9KSk7dmFyIGx0PVIuc3luY09yQXN5bmMoc3QsdCk7cmV0dXJuIGx0JiZsdC50aGVufHwobHQ9UHJvbWlzZS5yZXNvbHZlKCkpLGx0LnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfcmVzdHlsZSIsUi5leHRlbmREZWVwKFtdLFtULG9dKSksdH0pfSxDLnJlbGF5b3V0PWZ1bmN0aW9uIG50KHQsZSxyKXtmdW5jdGlvbiBvKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdm9pZCB0LmZvckVhY2goZnVuY3Rpb24odCl7byh0LGUpfSk7aWYoISh0IGluIHYpKXt2YXIgcj1SLm5lc3RlZFByb3BlcnR5KG0sdCk7dCBpbiBTfHwoU1t0XT1yLmdldCgpKSx2b2lkIDAhPT1lJiZyLnNldChlKX19ZnVuY3Rpb24gYSh0LGUpe3ZhciByPUMuQXhlcy5pZDJuYW1lKHRbZSsicmVmIl18fGUpO3JldHVybihnW3JdfHx7fSkuYXV0b3JhbmdlfWZ1bmN0aW9uIHModCl7dmFyIGU9dFsieGF4aXMucmFuZ2UiXT90WyJ4YXhpcy5yYW5nZSJdWzBdOnRbInhheGlzLnJhbmdlWzBdIl0scj10WyJ4YXhpcy5yYW5nZSJdP3RbInhheGlzLnJhbmdlIl1bMV06dFsieGF4aXMucmFuZ2VbMV0iXSxuPWcueGF4aXMmJmcueGF4aXMucmFuZ2VzbGlkZXI/Zy54YXhpcy5yYW5nZXNsaWRlcjp7fTtuLnZpc2libGUmJihlfHxyP2cueGF4aXMucmFuZ2VzbGlkZXIuc2V0UmFuZ2UoZSxyKTp0WyJ4YXhpcy5hdXRvcmFuZ2UiXSYmZy54YXhpcy5yYW5nZXNsaWRlci5zZXRSYW5nZSgpKX1pZih0PW4odCksaSh0KSx0LmZyYW1ld29yayYmdC5mcmFtZXdvcmsuaXNQb2xhcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpO3ZhciBsLHUsYyxoLGYscCxkLG09dC5sYXlvdXQsZz10Ll9mdWxsTGF5b3V0LHY9e30seT0hMSxiPSExLHg9ITEsXz0hMSx3PSExLGs9ITE7aWYoInN0cmluZyI9PXR5cGVvZiBlKXZbZV09cjtlbHNle2lmKCFSLmlzUGxhaW5PYmplY3QoZSkpcmV0dXJuIFIud2FybigiUmVsYXlvdXQgZmFpbC4iLGUsciksUHJvbWlzZS5yZWplY3QoKTt2PWV9Zm9yKE9iamVjdC5rZXlzKHYpLmxlbmd0aCYmKHQuY2hhbmdlZD0hMCksYz1PYmplY3Qua2V5cyh2KSx1PUMuQXhlcy5saXN0KHQpLGQ9MDtkPGMubGVuZ3RoO2QrKyl7aWYoMD09PWNbZF0uaW5kZXhPZigiYWxsYXhlcyIpKXtmb3IodmFyIEE9MDtBPHUubGVuZ3RoO0ErKylmPXVbQV0uX2lkLnN1YnN0cigxKSxwPS0xIT09Zi5pbmRleE9mKCJzY2VuZSIpP2YrIi4iOiIiLGw9Y1tkXS5yZXBsYWNlKCJhbGxheGVzIixwK3VbQV0uX25hbWUpLHZbbF18fCh2W2xdPXZbY1tkXV0pO2RlbGV0ZSB2W2NbZF1dfWNbZF0ubWF0Y2goL15hbm5vdGF0aW9uc1xbWzAtOS1dK1xdLnJlZiQvKSYmKGg9dltjW2RdXS5zcGxpdCgieSIpLHZbY1tkXS5yZXBsYWNlKCJyZWYiLCJ4cmVmIildPWhbMF0sdltjW2RdLnJlcGxhY2UoInJlZiIsInlyZWYiKV09Mj09PWgubGVuZ3RoPyJ5IitoWzFdOiJwYXBlciIsZGVsZXRlIHZbY1tkXV0pfXZhciBUPXt9LFM9e30sej1bImhlaWdodCIsIndpZHRoIl07Zm9yKHZhciBJIGluIHYpe3ZhciBQLGo9Ui5uZXN0ZWRQcm9wZXJ0eShtLEkpLEY9dltJXSxOPWoucGFydHMubGVuZ3RoLEI9InN0cmluZyI9PXR5cGVvZiBqLnBhcnRzW04tMV0/Ti0xOk4tMixVPWoucGFydHNbQl0sRz1qLnBhcnRzW0ItMV0rIi4iK1UsSD1qLnBhcnRzLnNsaWNlKDAsQikuam9pbigiLiIpLFg9Ui5uZXN0ZWRQcm9wZXJ0eSh0LmxheW91dCxIKS5nZXQoKSxZPVIubmVzdGVkUHJvcGVydHkoZyxIKS5nZXQoKTtpZihUW0ldPUYsU1tJXT0icmV2ZXJzZSI9PT1VP0Y6ai5nZXQoKSwtMSE9PXouaW5kZXhPZihJKT9vKCJhdXRvc2l6ZSIsITEpOiJhdXRvc2l6ZSI9PT1JP28oeix2b2lkIDApOkcubWF0Y2goL15beHl6XWF4aXNbMC05XSpcLnJhbmdlKFxbWzB8MV1cXSk/JC8pP28oSCsiLmF1dG9yYW5nZSIsITEpOkcubWF0Y2goL15beHl6XWF4aXNbMC05XSpcLmF1dG9yYW5nZSQvKT9vKFtIKyIucmFuZ2VbMF0iLEgrIi5yYW5nZVsxXSJdLHZvaWQgMCk6Ry5tYXRjaCgvXmFzcGVjdHJhdGlvXC5beHl6XSQvKT9vKGoucGFydHNbMF0rIi5hc3BlY3Rtb2RlIiwibWFudWFsIik6Ry5tYXRjaCgvXmFzcGVjdG1vZGUkLyk/byhbSCsiLngiLEgrIi55IixIKyIueiJdLHZvaWQgMCk6InRpY2swIj09PVV8fCJkdGljayI9PT1VP28oSCsiLnRpY2ttb2RlIiwibGluZWFyIik6InRpY2ttb2RlIj09PVU/byhbSCsiLnRpY2swIixIKyIuZHRpY2siXSx2b2lkIDApOi9beHldYXhpc1swLTldKj8kLy50ZXN0KFUpJiYhT2JqZWN0LmtleXMoRnx8e30pLmxlbmd0aD93PSEwOi9beHldYXhpc1swLTldKlwuY2F0ZWdvcnlvcmRlciQvLnRlc3QoRyk/dz0hMDovW3h5XWF4aXNbMC05XSpcLmNhdGVnb3J5YXJyYXkvLnRlc3QoRykmJih3PSEwKSwtMSE9PUcuaW5kZXhPZigicmFuZ2VzbGlkZXIiKSYmKHc9ITApLCJ0eXBlIj09PVUmJiJsb2ciPT09WS50eXBlIT0oImxvZyI9PT1GKSl7dmFyIFc9WDtpZihXJiZXLnJhbmdlKWlmKFkuYXV0b3JhbmdlKSJsb2ciPT09RiYmKFcucmFuZ2U9Vy5yYW5nZVsxXT5XLnJhbmdlWzBdP1sxLDJdOlsyLDFdKTtlbHNle3ZhciBRPVcucmFuZ2VbMF0sSz1XLnJhbmdlWzFdOyJsb2ciPT09Rj8oMD49USYmMD49SyYmbyhIKyIuYXV0b3JhbmdlIiwhMCksMD49UT9RPUsvMWU2OjA+PUsmJihLPVEvMWU2KSxvKEgrIi5yYW5nZVswXSIsTWF0aC5sb2coUSkvTWF0aC5MTjEwKSxvKEgrIi5yYW5nZVsxXSIsTWF0aC5sb2coSykvTWF0aC5MTjEwKSk6KG8oSCsiLnJhbmdlWzBdIixNYXRoLnBvdygxMCxRKSksbyhIKyIucmFuZ2VbMV0iLE1hdGgucG93KDEwLEspKSl9ZWxzZSBvKEgrIi5hdXRvcmFuZ2UiLCEwKX1pZigicmV2ZXJzZSI9PT1VKVgucmFuZ2U/WC5yYW5nZS5yZXZlcnNlKCk6KG8oSCsiLmF1dG9yYW5nZSIsITApLFgucmFuZ2U9WzEsMF0pLFkuYXV0b3JhbmdlP3c9ITA6Xz0hMDtlbHNlIGlmKCJhbm5vdGF0aW9ucyI9PT1qLnBhcnRzWzBdfHwic2hhcGVzIj09PWoucGFydHNbMF0pe3ZhciBKPWoucGFydHNbMV0sJD1qLnBhcnRzWzBdLHR0PW1bJF18fFtdLGV0PUNbUi50aXRsZUNhc2UoJCldLHJ0PXR0W0pdfHx7fTsyPT09ai5wYXJ0cy5sZW5ndGgmJigiYWRkIj09PXZbSV18fFIuaXNQbGFpbk9iamVjdCh2W0ldKT9TW0ldPSJyZW1vdmUiOiJyZW1vdmUiPT09dltJXT8tMT09PUo/KFNbJF09dHQsZGVsZXRlIFNbSV0pOlNbSV09cnQ6Ui5sb2coIj8/PyIsdikpLCFhKHJ0LCJ4IikmJiFhKHJ0LCJ5Iil8fFIuY29udGFpbnNBbnkoSSxbImNvbG9yIiwib3BhY2l0eSIsImFsaWduIiwiZGFzaCJdKXx8KHc9ITApLGV0LmRyYXcodCxKLGoucGFydHMuc2xpY2UoMikuam9pbigiLiIpLHZbSV0pLGRlbGV0ZSB2W0ldfWVsc2UgaWYoImltYWdlcyI9PT1qLnBhcnRzWzBdKXt2YXIgaXQ9Ui5vYmplY3RGcm9tUGF0aChJLEYpO1IuZXh0ZW5kRGVlcEFsbCh0LmxheW91dCxpdCksVi5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LmxheW91dCx0Ll9mdWxsTGF5b3V0KSxWLmRyYXcodCl9ZWxzZSBpZigibWFwYm94Ij09PWoucGFydHNbMF0mJiJsYXllcnMiPT09ai5wYXJ0c1sxXSl7Ui5leHRlbmREZWVwQWxsKHQubGF5b3V0LFIub2JqZWN0RnJvbVBhdGgoSSxGKSk7dmFyIG90PSh0Ll9mdWxsTGF5b3V0Lm1hcGJveHx8e30pLmxheWVyc3x8W107Zm9yKFA9ai5wYXJ0c1syXSsxLW90Lmxlbmd0aCxkPTA7UD5kO2QrKylvdC5wdXNoKHt9KTtfPSEwfWVsc2UgaWYoInVwZGF0ZW1lbnVzIj09PWoucGFydHNbMF0pe1IuZXh0ZW5kRGVlcEFsbCh0LmxheW91dCxSLm9iamVjdEZyb21QYXRoKEksRikpO3ZhciBhdD10Ll9mdWxsTGF5b3V0LnVwZGF0ZW1lbnVzfHxbXTtmb3IoUD1qLnBhcnRzWzJdKzEtYXQubGVuZ3RoLGQ9MDtQPmQ7ZCsrKWF0LnB1c2goe30pO189ITB9ZWxzZSAwPT09ai5wYXJ0c1swXS5pbmRleE9mKCJzY2VuZSIpP189ITA6MD09PWoucGFydHNbMF0uaW5kZXhPZigiZ2VvIik/Xz0hMDowPT09ai5wYXJ0c1swXS5pbmRleE9mKCJ0ZXJuYXJ5Iik/Xz0hMDohZy5faGFzKCJnbDJkIil8fC0xPT09SS5pbmRleE9mKCJheGlzIikmJiJwbG90X2JnY29sb3IiIT09ai5wYXJ0c1swXT8iaGlkZGVubGFiZWxzIj09PUk/dz0hMDotMSE9PWoucGFydHNbMF0uaW5kZXhPZigibGVnZW5kIik/eT0hMDotMSE9PUkuaW5kZXhPZigidGl0bGUiKT9iPSEwOi0xIT09ai5wYXJ0c1swXS5pbmRleE9mKCJiZ2NvbG9yIik/eD0hMDpqLnBhcnRzLmxlbmd0aD4xJiZSLmNvbnRhaW5zQW55KGoucGFydHNbMV0sWyJ0aWNrIiwiZXhwb25lbnQiLCJncmlkIiwiemVyb2xpbmUiXSk/Yj0hMDotMSE9PUkuaW5kZXhPZigiLmxpbmV3aWR0aCIpJiYtMSE9PUkuaW5kZXhPZigiYXhpcyIpP2I9eD0hMDpqLnBhcnRzLmxlbmd0aD4xJiYtMSE9PWoucGFydHNbMV0uaW5kZXhPZigibGluZSIpP3g9ITA6ai5wYXJ0cy5sZW5ndGg+MSYmIm1pcnJvciI9PT1qLnBhcnRzWzFdP2I9eD0hMDoibWFyZ2luLnBhZCI9PT1JP2I9eD0hMDoibWFyZ2luIj09PWoucGFydHNbMF18fCJhdXRvcmFuZ2UiPT09ai5wYXJ0c1sxXXx8InJhbmdlbW9kZSI9PT1qLnBhcnRzWzFdfHwidHlwZSI9PT1qLnBhcnRzWzFdfHwiZG9tYWluIj09PWoucGFydHNbMV18fEkubWF0Y2goL14oYmFyfGJveHxmb250KS8pP3c9ITA6LTEhPT1bImhvdmVybW9kZSIsImRyYWdtb2RlIl0uaW5kZXhPZihJKT9rPSEwOi0xPT09WyJob3Zlcm1vZGUiLCJkcmFnbW9kZSIsImhlaWdodCIsIndpZHRoIiwiYXV0b3NpemUiXS5pbmRleE9mKEkpJiYoXz0hMCk6Xz0hMCxqLnNldChGKX1ELmFkZCh0LG50LFt0LFNdLG50LFt0LFRdKSx2LmF1dG9zaXplJiYodj1NKHQsdikpLCh2LmhlaWdodHx8di53aWR0aHx8di5hdXRvc2l6ZSkmJih3PSEwKTt2YXIgc3Q9T2JqZWN0LmtleXModiksbHQ9W08ucHJldmlvdXNQcm9taXNlc107aWYoX3x8dylsdC5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQubGF5b3V0PXZvaWQgMCx3JiYodC5jYWxjZGF0YT12b2lkIDApLEMucGxvdCh0LCIiLG0pfSk7ZWxzZSBpZihzdC5sZW5ndGgmJihPLnN1cHBseURlZmF1bHRzKHQpLGc9dC5fZnVsbExheW91dCx5JiZsdC5wdXNoKGZ1bmN0aW9uKCl7cmV0dXJuIHEuZHJhdyh0KSxPLnByZXZpb3VzUHJvbWlzZXModCl9KSx4JiZsdC5wdXNoKEUpLGImJmx0LnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gQy5BeGVzLmRvVGlja3ModCwicmVkcmF3IiksTCh0KSxPLnByZXZpb3VzUHJvbWlzZXModCl9KSxrKSl7dmFyIHV0O2ZvcihaKHQpLEMuRnguc3VwcGx5TGF5b3V0RGVmYXVsdHModC5sYXlvdXQsZyx0Ll9mdWxsRGF0YSksQy5GeC5pbml0KHQpLHV0PU8uZ2V0U3VicGxvdElkcyhnLCJnbDNkIiksZD0wO2Q8dXQubGVuZ3RoO2QrKylmPWdbdXRbZF1dLl9zY2VuZSxmLnVwZGF0ZUZ4KGcuZHJhZ21vZGUsZy5ob3Zlcm1vZGUpO2Zvcih1dD1PLmdldFN1YnBsb3RJZHMoZywiZ2wyZCIpLGQ9MDtkPHV0Lmxlbmd0aDtkKyspZj1nLl9wbG90c1t1dFtkXV0uX3NjZW5lMmQsZi51cGRhdGVGeChnKTtmb3IodXQ9Ty5nZXRTdWJwbG90SWRzKGcsImdlbyIpLGQ9MDtkPHV0Lmxlbmd0aDtkKyspe3ZhciBjdD1nW3V0W2RdXS5fZ2VvO2N0LnVwZGF0ZUZ4KGcuaG92ZXJtb2RlKX19dmFyIGh0PVIuc3luY09yQXN5bmMobHQsdCk7cmV0dXJuIGh0JiZodC50aGVufHwoaHQ9UHJvbWlzZS5yZXNvbHZlKHQpKSxodC50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9Ui5leHRlbmREZWVwKHt9LFQpO3JldHVybiBzKGUpLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0IixlKSx0fSl9LEMucHVyZ2U9ZnVuY3Rpb24odCl7dD1uKHQpO3ZhciBlPXQuX2Z1bGxMYXlvdXR8fHt9LHI9dC5fZnVsbERhdGF8fFtdO3JldHVybiBPLmNsZWFuUGxvdChbXSx7fSxyLGUpLE8ucHVyZ2UodCksai5wdXJnZSh0KSxlLl9jb250YWluZXImJmUuX2NvbnRhaW5lci5yZW1vdmUoKSxkZWxldGUgdC5fY29udGV4dCxkZWxldGUgdC5fcmVwbG90UGVuZGluZyxkZWxldGUgdC5fbW91c2VEb3duVGltZSxkZWxldGUgdC5faG1waXhjb3VudCxkZWxldGUgdC5faG1sdW1jb3VudCx0fX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uL2NvbXBvbmVudHMvZHJhd2luZyI6NTI5LCIuLi9jb21wb25lbnRzL2Vycm9yYmFycyI6NTM1LCIuLi9jb21wb25lbnRzL2ltYWdlcyI6NTQxLCIuLi9jb21wb25lbnRzL2xlZ2VuZCI6NTQ5LCIuLi9jb21wb25lbnRzL21vZGViYXIvbWFuYWdlIjo1NTMsIi4uL2NvbXBvbmVudHMvcmFuZ2VzZWxlY3RvciI6NTYwLCIuLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyIjo1NjUsIi4uL2NvbXBvbmVudHMvc2hhcGVzIjo1NjgsIi4uL2NvbXBvbmVudHMvdGl0bGVzIjo1NjksIi4uL2NvbXBvbmVudHMvdXBkYXRlbWVudXMiOjU3NCwiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjU3OSwiLi4vbGliIjo1OTEsIi4uL2xpYi9ldmVudHMiOjU4NSwiLi4vbGliL3F1ZXVlIjo1OTgsIi4uL3Bsb3RseSI6NjEyLCIuLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMiwiLi4vcGxvdHMvcGxvdHMiOjY3MSxkMzoxMjQsImZhc3QtaXNudW1lcmljIjoxMjgsImdsLW1hdDQvZnJvbVF1YXQiOjE0NX1dLDYwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dHJ5e3QuX2Z1bGxMYXlvdXQuX3BhcGVyLnN0eWxlKCJiYWNrZ3JvdW5kIixlKX1jYXRjaChyKXtpLmVycm9yKHIpfX12YXIgaT10KCIuLi9saWIiKTtlLmV4cG9ydHM9e3N0YXRpY1Bsb3Q6ITEsZWRpdGFibGU6ITEscXVldWVMZW5ndGg6MCxhdXRvc2l6YWJsZTohMSxmaWxsRnJhbWU6ITEsZnJhbWVNYXJnaW5zOjAsc2Nyb2xsWm9vbTohMSxkb3VibGVDbGljazoicmVzZXQrYXV0b3NpemUiLHNob3dUaXBzOiEwLHNob3dMaW5rOiExLHNlbmREYXRhOiEwLGxpbmtUZXh0OiJFZGl0IGNoYXJ0IixzaG93U291cmNlczohMSxkaXNwbGF5TW9kZUJhcjoiaG92ZXIiLG1vZGVCYXJCdXR0b25zVG9SZW1vdmU6W10sbW9kZUJhckJ1dHRvbnNUb0FkZDpbXSxtb2RlQmFyQnV0dG9uczohMSxkaXNwbGF5bG9nbzohMCxwbG90R2xQaXhlbFJhdGlvOjIsc2V0QmFja2dyb3VuZDpuLHRvcG9qc29uVVJMOiJodHRwczovL2Nkbi5wbG90Lmx5LyIsbWFwYm94QWNjZXNzVG9rZW46bnVsbCxsb2dnaW5nOiExfX0seyIuLi9saWIiOjU5MX1dLDYwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXYuYXR0cmlidXRlcyxyPXUoe3R5cGU6dH0pLG49aCh0KSxpPXAodCksbz17fSxhPXt9O28udHlwZT1udWxsLHgobyxlKSxvPXMoci5hdHRyaWJ1dGVzLG8sImF0dHJpYnV0ZXMiLHQpLHZvaWQgMCE9PWkuYXR0cmlidXRlcyYmeChvLGkuYXR0cmlidXRlcyksby50eXBlPXQsbz1jKG8pLGwobyksUy50cmFjZXNbdF09Yih7fSxuLHthdHRyaWJ1dGVzOm99KSx2b2lkIDAhPT1yLmxheW91dEF0dHJpYnV0ZXMmJihhPXMoci5sYXlvdXRBdHRyaWJ1dGVzLGEsImxheW91dEF0dHJpYnV0ZXMiLHQpLGwoYSksUy50cmFjZXNbdF0ubGF5b3V0QXR0cmlidXRlcz1hKX1mdW5jdGlvbiBpKCl7dmFyIHQ9di5sYXlvdXRBdHRyaWJ1dGVzLGU9e307ZT1zKHQsZSwibGF5b3V0QXR0cmlidXRlcyIsIioiKSxlPWYoZSksZT1kKGUpLGU9YyhlKSxsKGUpLG0oZSksUy5sYXlvdXQ9e2xheW91dEF0dHJpYnV0ZXM6ZX19ZnVuY3Rpb24gbyh0KXt2YXIgZT12LnRyYW5zZm9ybXNSZWdpc3RyeVt0XSxyPXt9O3I9cyhyLGUuYXR0cmlidXRlc3x8e30sImF0dHJpYnV0ZXMiLCIqIikscj1jKHIpLGwociksbShyKSxTLnRyYW5zZm9ybXNbdF09e2F0dHJpYnV0ZXM6cn19ZnVuY3Rpb24gYSgpe1MuZGVmcz17dmFsT2JqZWN0czp5LnZhbE9iamVjdHMsbWV0YUtleXM6RS5jb25jYXQoWyJkZXNjcmlwdGlvbiIsInJvbGUiXSl9fWZ1bmN0aW9uIHModCxlLHIsbil7dmFyIGksbyxhLGwsYztyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihoKXtyZXR1cm4gaD09PXc/dm9pZCBPYmplY3Qua2V5cyh0W2hdKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2k9dSh7bW9kdWxlOnRbaF1bbF19KSx2b2lkIDAhPT1pJiYobz1pW3JdLGE9cyhvLHt9LHIsbikseS5uZXN0ZWRQcm9wZXJ0eShlLGwpLnNldCh4KHt9LGEpKSl9KTpoPT09TT92b2lkIE9iamVjdC5rZXlzKHRbaF0pLmZvckVhY2goZnVuY3Rpb24oaSl7aT09PW4mJihsPXUoe21vZHVsZTp0W2hdW2ldfSksdm9pZCAwIT09bCYmKGM9bFtyXSxjPXMoYyx7fSxyLG4pLF8oZSxjKSkpfSk6dm9pZChlW2hdPXkuaXNQbGFpbk9iamVjdCh0W2hdKT9fKHt9LHRbaF0pOnRbaF0pfSksZX1mdW5jdGlvbiBsKHQpe2Z1bmN0aW9uIGUodCl7cmV0dXJue3ZhbFR5cGU6InN0cmluZyJ9fWZ1bmN0aW9uIHIodCxyLG4pe0kuaXNWYWxPYmplY3QodCk/ImRhdGFfYXJyYXkiPT09dC52YWxUeXBlPyh0LnJvbGU9ImRhdGEiLG5bcisic3JjIl09ZShyKSk6dC5hcnJheU9rPT09ITAmJihuW3IrInNyYyJdPWUocikpOnkuaXNQbGFpbk9iamVjdCh0KSYmKHQucm9sZT0ib2JqZWN0Iil9SS5jcmF3bCh0LHIpfWZ1bmN0aW9uIHUodCl7aWYoInR5cGUiaW4gdClyZXR1cm4iYXJlYSI9PT10LnR5cGU/e2F0dHJpYnV0ZXM6TH06di5nZXRNb2R1bGUoe3R5cGU6dC50eXBlfSk7dmFyIGU9di5zdWJwbG90c1JlZ2lzdHJ5LHI9dC5tb2R1bGU7cmV0dXJuIGVbcl0/ZVtyXToibW9kdWxlImluIHQ/Z1tyXTp2b2lkIDB9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihlKXsiXyI9PT1lLmNoYXJBdCgwKSYmLTE9PT1FLmluZGV4T2YoZSkmJmRlbGV0ZSB0W2VdfSksdH1mdW5jdGlvbiBoKHQpe3JldHVybiJhcmVhIj09PXQ/e306di5tb2R1bGVzW3RdLm1ldGF8fHt9fWZ1bmN0aW9uIGYodCl7cmV0dXJuIGIodCx7cmFkaWFsYXhpczp6LnJhZGlhbGF4aXMsYW5ndWxhcmF4aXM6ei5hbmd1bGFyYXhpc30pLGIodCx6LmxheW91dCksdH1mdW5jdGlvbiBwKHQpe2lmKCJhcmVhIj09PXQpcmV0dXJue307dmFyIGU9di5zdWJwbG90c1JlZ2lzdHJ5LHI9T2JqZWN0LmtleXMoZSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2LnRyYWNlSXMoe3R5cGU6dH0sZSl9KVswXTtyZXR1cm4gdm9pZCAwPT09cj97fTplW3JdfWZ1bmN0aW9uIGQodCl7dmFyIGU9di5zdWJwbG90c1JlZ2lzdHJ5O3JldHVybiBPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKHIpe09iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24obil7dmFyIGksbz1lW25dO28uYXR0clJlZ2V4JiYoaT0iY2FydGVzaWFuIj09PW58fCJnbDJkIj09PW4/by5hdHRyUmVnZXgueC50ZXN0KHIpfHxvLmF0dHJSZWdleC55LnRlc3Qocik6by5hdHRyUmVnZXgudGVzdChyKSxpJiYodFtyXVtrXT0hMCkpfSl9KSx0fWZ1bmN0aW9uIG0odCl7ZnVuY3Rpb24gZSh0LGUscil7aWYodFtBXT09PSEwKXt2YXIgbj1lLnN1YnN0cigwLGUubGVuZ3RoLTEpO2RlbGV0ZSB0W0FdLHJbZV09e2l0ZW1zOnt9fSxyW2VdLml0ZW1zW25dPXQscltlXS5yb2xlPSJvYmplY3QifX1JLmNyYXdsKHQsZSl9dmFyIGc9dCgiLi4vcGxvdGx5Iiksdj10KCIuLi9wbG90cy9wbG90cyIpLHk9dCgiLi4vbGliIiksYj15LmV4dGVuZEZsYXQseD15LmV4dGVuZERlZXAsXz15LmV4dGVuZERlZXBBbGwsdz0iX25lc3RlZE1vZHVsZXMiLE09Il9jb21wb3NlZE1vZHVsZXMiLGs9Il9pc1N1YnBsb3RPYmoiLEE9Il9pc0xpbmtlZFRvQXJyYXkiLFQ9Il9kZXByZWNhdGVkIixFPVtrLEEsVF0sUz17dHJhY2VzOnt9LGxheW91dDp7fSx0cmFuc2Zvcm1zOnt9LGRlZnM6e319LEw9dCgiLi4vcGxvdHMvcG9sYXIvYXJlYV9hdHRyaWJ1dGVzIiksej10KCIuLi9wbG90cy9wb2xhci9heGlzX2F0dHJpYnV0ZXMiKSxJPWUuZXhwb3J0cz17fTtJLmdldD1mdW5jdGlvbigpe3JldHVybiB2LmFsbFR5cGVzLmNvbmNhdCgiYXJlYSIpLmZvckVhY2gobiksaSgpLE9iamVjdC5rZXlzKHYudHJhbnNmb3Jtc1JlZ2lzdHJ5KS5mb3JFYWNoKG8pLGEoKSxTfSxJLmNyYXdsPWZ1bmN0aW9uKHQsZSl7T2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihyKXt2YXIgbj10W3JdOy0xPT09RS5pbmRleE9mKHIpJiYoZShuLHIsdCksSS5pc1ZhbE9iamVjdChuKXx8eS5pc1BsYWluT2JqZWN0KG4pJiZJLmNyYXdsKG4sZSkpfSl9LEkuaXNWYWxPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnZvaWQgMCE9PXQudmFsVHlwZX19LHsiLi4vbGliIjo1OTEsIi4uL3Bsb3RseSI6NjEyLCIuLi9wbG90cy9wbG90cyI6NjcxLCIuLi9wbG90cy9wb2xhci9hcmVhX2F0dHJpYnV0ZXMiOjY3MiwiLi4vcGxvdHMvcG9sYXIvYXhpc19hdHRyaWJ1dGVzIjo2NzN9XSw2MDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcGxvdGx5IiksaT10KCIuLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkuZXh0ZW5kRmxhdChuLmRlZmF1bHRDb25maWcsdCl9fSx7Ii4uL2xpYiI6NTkxLCIuLi9wbG90bHkiOjYxMn1dLDYxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUscil7dmFyIG49dCgiLi4vc25hcHNob3QiKSxzPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHQscyl7ZnVuY3Rpb24gbCgpe3ZhciB0PW4uZ2V0RGVsYXkoaC5fZnVsbExheW91dCk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsaSl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PW4udG9TVkcoaCksbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtvLmlkPWEucmFuZHN0cigpLG4uc3ZnVG9JbWcoe2Zvcm1hdDpyLmZvcm1hdCx3aWR0aDpoLl9mdWxsTGF5b3V0LndpZHRoLGhlaWdodDpoLl9mdWxsTGF5b3V0LmhlaWdodCxjYW52YXM6byxzdmc6dCxwcm9taXNlOiEwfSkudGhlbihmdW5jdGlvbih0KXtoJiZkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGgpLGUodCl9KS5jYXRjaChmdW5jdGlvbih0KXtpKHQpfSl9LHQpfSl9cj1yfHx7fSxyLmZvcm1hdD1yLmZvcm1hdHx8InBuZyI7dmFyIHU9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXR8fG51bGw9PT10PyEwOiEhKGkodCkmJnQ+MSl9O3Uoci53aWR0aCkmJnUoci5oZWlnaHQpfHxzKG5ldyBFcnJvcigiSGVpZ2h0IGFuZCB3aWR0aCBzaG91bGQgYmUgcGl4ZWwgdmFsdWVzLiIpKTt2YXIgYz1uLmNsb25lKGUse2Zvcm1hdDoicG5nIixoZWlnaHQ6ci5oZWlnaHQsd2lkdGg6ci53aWR0aH0pLGg9Yy50ZDtoLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaC5zdHlsZS5sZWZ0PSItNTAwMHB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpO3ZhciBmPW4uZ2V0UmVkcmF3RnVuYyhoKTtvLnBsb3QoaCxjLmRhdGEsYy5sYXlvdXQsYy5jb25maWcpLnRoZW4oZikudGhlbihsKS50aGVuKGZ1bmN0aW9uKGUpe3QoZSl9KS5jYXRjaChmdW5jdGlvbih0KXtzKHQpfSl9KTtyZXR1cm4gc312YXIgaT10KCJmYXN0LWlzbnVtZXJpYyIpLG89dCgiLi4vcGxvdGx5IiksYT10KCIuLi9saWIiKTtlLmV4cG9ydHM9bn0seyIuLi9saWIiOjU5MSwiLi4vcGxvdGx5Ijo2MTIsIi4uL3NuYXBzaG90Ijo2ODgsImZhc3QtaXNudW1lcmljIjoxMjh9XSw2MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixpLG8sdSl7dT11fHxbXTtmb3IodmFyIGM9T2JqZWN0LmtleXModCksZj0wO2Y8Yy5sZW5ndGg7ZisrKXt2YXIgcD1jW2ZdO2lmKCJ0cmFuc2Zvcm1zIiE9PXApe3ZhciBnPXUuc2xpY2UoKTtnLnB1c2gocCk7dmFyIHY9dFtwXSx5PWVbcF0sYj1sKHIscCkseD0iaW5mb19hcnJheSI9PT0oYnx8e30pLnZhbFR5cGU7aWYocyhyLHApKWlmKGQodikmJmQoeSkpbih2LHksYixpLG8sZyk7ZWxzZSBpZihiLml0ZW1zJiYheCYmbSh2KSl7dmFyIF8sdyxNPXAuc3Vic3RyKDAscC5sZW5ndGgtMSksaz1bXTtmb3IoXz0wO188eS5sZW5ndGg7XysrKXt2YXIgQT1iLml0ZW1zW01dLFQ9eVtfXS5faW5kZXh8fF87dz1nLnNsaWNlKCksdy5wdXNoKFQpLGQodltUXSkmJmQoeVtfXSkmJihrLnB1c2goVCksbih2W1RdLHlbX10sQSxpLG8sdykpfWZvcihfPTA7Xzx2Lmxlbmd0aDtfKyspdz1nLnNsaWNlKCksdy5wdXNoKF8pLGQodltfXSk/LTE9PT1rLmluZGV4T2YoXykmJmkucHVzaChhKCJ1bnVzZWQiLG8sdykpOmkucHVzaChhKCJvYmplY3QiLG8sdyx2W19dKSl9ZWxzZSFkKHYpJiZkKHkpP2kucHVzaChhKCJvYmplY3QiLG8sZyx2KSk6bSh2KXx8IW0oeSl8fHg/cCBpbiBlP2gudmFsaWRhdGUodixiKXx8aS5wdXNoKGEoInZhbHVlIixvLGcsdikpOmkucHVzaChhKCJ1bnVzZWQiLG8sZyx2KSk6aS5wdXNoKGEoImFycmF5IixvLGcsdikpO2Vsc2UgaS5wdXNoKGEoInNjaGVtYSIsbyxnKSl9fXJldHVybiBpfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXS50eXBlLGk9dC50cmFjZXNbbl0ubGF5b3V0QXR0cmlidXRlcztpJiZoLmV4dGVuZEZsYXQodC5sYXlvdXQubGF5b3V0QXR0cmlidXRlcyxpKX1yZXR1cm4gdC5sYXlvdXQubGF5b3V0QXR0cmlidXRlc31mdW5jdGlvbiBvKHQpe3JldHVybiBtKHQpPyJJbiBkYXRhIHRyYWNlICIrdFsxXSsiLCAiOiJJbiAiK3QrIiwgIn1mdW5jdGlvbiBhKHQsZSxyLG4pe3I9cnx8IiI7dmFyIGksbzttKGUpPyhpPWVbMF0sbz1lWzFdKTooaT1lLG89bnVsbCk7dmFyIGE9YyhyKSxzPWdbdF0oZSxhLG4pO3JldHVybiBoLmxvZyhzKSx7Y29kZTp0LGNvbnRhaW5lcjppLHRyYWNlOm8scGF0aDpyLGFzdHI6YSxtc2c6c319ZnVuY3Rpb24gcyh0LGUpe3ZhciByPXUoZSksbj1yLmtleU1pbnVzSWQsaT1yLmlkO3JldHVybiBuIGluIHQmJnRbbl0uX2lzU3VicGxvdE9iaiYmaT8hMDplIGluIHR9ZnVuY3Rpb24gbCh0LGUpe3ZhciByPXUoZSk7cmV0dXJuIHRbci5rZXlNaW51c0lkXX1mdW5jdGlvbiB1KHQpe3ZhciBlPS8oWzItOV18WzEtOV1bMC05XSspJC8scj10LnNwbGl0KGUpWzBdLG49dC5zdWJzdHIoci5sZW5ndGgsdC5sZW5ndGgpO3JldHVybntrZXlNaW51c0lkOnIsaWQ6bn19ZnVuY3Rpb24gYyh0KXtpZighbSh0KSlyZXR1cm4gU3RyaW5nKHQpO2Zvcih2YXIgZT0iIixyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07Im51bWJlciI9PXR5cGVvZiBuP2U9ZS5zdWJzdHIoMCxlLmxlbmd0aC0xKSsiWyIrbisiXSI6ZSs9bixyPHQubGVuZ3RoLTEmJihlKz0iLiIpfXJldHVybiBlfXZhciBoPXQoIi4uL2xpYiIpLGY9dCgiLi4vcGxvdHMvcGxvdHMiKSxwPXQoIi4vcGxvdF9zY2hlbWEiKSxkPWguaXNQbGFpbk9iamVjdCxtPUFycmF5LmlzQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbyxzPXAuZ2V0KCksbD1bXSx1PXt9O20odCk/KHUuZGF0YT1oLmV4dGVuZERlZXAoW10sdCkscj10KToodS5kYXRhPVtdLHI9W10sbC5wdXNoKGEoImFycmF5IiwiZGF0YSIpKSksZChlKT8odS5sYXlvdXQ9aC5leHRlbmREZWVwKHt9LGUpLG89ZSk6KHUubGF5b3V0PXt9LG89e30sYXJndW1lbnRzLmxlbmd0aD4xJiZsLnB1c2goYSgib2JqZWN0IiwibGF5b3V0IikpKSxmLnN1cHBseURlZmF1bHRzKHUpO2Zvcih2YXIgYz11Ll9mdWxsRGF0YSxnPXIubGVuZ3RoLHY9MDtnPnY7disrKXt2YXIgeT1yW3ZdLGI9WyJkYXRhIix2XTtpZihkKHkpKXt2YXIgeD1jW3ZdLF89eC50eXBlLHc9cy50cmFjZXNbX10uYXR0cmlidXRlczt3LnR5cGU9e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbX119LHgudmlzaWJsZT09PSExJiZ5LnZpc2libGUhPT0hMSYmbC5wdXNoKGEoImludmlzaWJsZSIsYikpLG4oeSx4LHcsbCxiKTt2YXIgTT15LnRyYW5zZm9ybXMsaz14LnRyYW5zZm9ybXM7aWYoTSl7bShNKXx8bC5wdXNoKGEoImFycmF5IixiLFsidHJhbnNmb3JtcyJdKSksYi5wdXNoKCJ0cmFuc2Zvcm1zIik7Zm9yKHZhciBBPTA7QTxNLmxlbmd0aDtBKyspe3ZhciBUPVsidHJhbnNmb3JtcyIsQV0sRT1NW0FdLnR5cGU7aWYoZChNW0FdKSl7dmFyIFM9cy50cmFuc2Zvcm1zW0VdP3MudHJhbnNmb3Jtc1tFXS5hdHRyaWJ1dGVzOnt9O1MudHlwZT17dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKHMudHJhbnNmb3Jtcyl9LG4oTVtBXSxrW0FdLFMsbCxiLFQpfWVsc2UgbC5wdXNoKGEoIm9iamVjdCIsYixUKSl9fX1lbHNlIGwucHVzaChhKCJvYmplY3QiLGIpKX12YXIgTD11Ll9mdWxsTGF5b3V0LHo9aShzLGMpO3JldHVybiBuKG8sTCx6LGwsImxheW91dCIpLDA9PT1sLmxlbmd0aD92b2lkIDA6bH07dmFyIGc9e29iamVjdDpmdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiByPSJsYXlvdXQiPT09dCYmIiI9PT1lPyJUaGUgbGF5b3V0IGFyZ3VtZW50IjoiZGF0YSI9PT10WzBdJiYiIj09PWU/IlRyYWNlICIrdFsxXSsiIGluIHRoZSBkYXRhIGFyZ3VtZW50IjpvKHQpKyJrZXkgIitlLHIrIiBtdXN0IGJlIGxpbmtlZCB0byBhbiBvYmplY3QgY29udGFpbmVyIn0sYXJyYXk6ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gcj0iZGF0YSI9PT10PyJUaGUgZGF0YSBhcmd1bWVudCI6byh0KSsia2V5ICIrZSxyKyIgbXVzdCBiZSBsaW5rZWQgdG8gYW4gYXJyYXkgY29udGFpbmVyIn0sc2NoZW1hOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8odCkrImtleSAiK2UrIiBpcyBub3QgcGFydCBvZiB0aGUgc2NoZW1hIn0sdW51c2VkOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1kKHIpPyJjb250YWluZXIiOiJrZXkiO3JldHVybiBvKHQpK24rIiAiK2UrIiBkaWQgbm90IGdldCBjb2VyY2VkIn0saW52aXNpYmxlOmZ1bmN0aW9uKHQpe3JldHVybiJUcmFjZSAiK3RbMV0rIiBnb3QgZGVmYXVsdGVkIHRvIGJlIG5vdCB2aXNpYmxlIn0sdmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVybltvKHQpKyJrZXkgIitlLCJpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZSAoIityKyIpIl0uam9pbigiICIpfX19LHsiLi4vbGliIjo1OTEsIi4uL3Bsb3RzL3Bsb3RzIjo2NzEsIi4vcGxvdF9zY2hlbWEiOjYwOH1dLDYxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt0KCJlczYtcHJvbWlzZSIpLnBvbHlmaWxsKCk7dmFyIG49ci5MaWI9dCgiLi9saWIiKTtyLnV0aWw9dCgiLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxyLlF1ZXVlPXQoIi4vbGliL3F1ZXVlIiksdCgiLi4vYnVpbGQvcGxvdGNzcyIpLHIuTWF0aEpheENvbmZpZz10KCIuL2ZvbnRzL21hdGhqYXhfY29uZmlnIiksci5kZWZhdWx0Q29uZmlnPXQoIi4vcGxvdF9hcGkvcGxvdF9jb25maWciKTt2YXIgaT1yLlBsb3RzPXQoIi4vcGxvdHMvcGxvdHMiKTtyLkF4ZXM9dCgiLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLHIuRng9dCgiLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKSxyLm1pY3JvcG9sYXI9dCgiLi9wbG90cy9wb2xhci9taWNyb3BvbGFyIiksci5Db2xvcj10KCIuL2NvbXBvbmVudHMvY29sb3IiKSxyLkRyYXdpbmc9dCgiLi9jb21wb25lbnRzL2RyYXdpbmciKSxyLkNvbG9yc2NhbGU9dCgiLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxyLkNvbG9yYmFyPXQoIi4vY29tcG9uZW50cy9jb2xvcmJhciIpLHIuRXJyb3JCYXJzPXQoIi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKSxyLkFubm90YXRpb25zPXQoIi4vY29tcG9uZW50cy9hbm5vdGF0aW9ucyIpLHIuU2hhcGVzPXQoIi4vY29tcG9uZW50cy9zaGFwZXMiKSxyLkxlZ2VuZD10KCIuL2NvbXBvbmVudHMvbGVnZW5kIiksci5JbWFnZXM9dCgiLi9jb21wb25lbnRzL2ltYWdlcyIpLHIuVXBkYXRlTWVudXM9dCgiLi9jb21wb25lbnRzL3VwZGF0ZW1lbnVzIiksci5Nb2RlQmFyPXQoIi4vY29tcG9uZW50cy9tb2RlYmFyIiksci5yZWdpc3Rlcj1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoIk5vIGFyZ3VtZW50IHBhc3NlZCB0byBQbG90bHkucmVnaXN0ZXIuIik7dCYmIUFycmF5LmlzQXJyYXkodCkmJih0PVt0XSk7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspe3ZhciByPXRbZV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1vZHVsZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHJlZ2lzdGVyZWQhIik7c3dpdGNoKHIubW9kdWxlVHlwZSl7Y2FzZSJ0cmFjZSI6aS5yZWdpc3RlcihyLHIubmFtZSxyLmNhdGVnb3JpZXMsci5tZXRhKSxpLnN1YnBsb3RzUmVnaXN0cnlbci5iYXNlUGxvdE1vZHVsZS5uYW1lXXx8aS5yZWdpc3RlclN1YnBsb3Qoci5iYXNlUGxvdE1vZHVsZSk7YnJlYWs7Y2FzZSJ0cmFuc2Zvcm0iOmlmKCJzdHJpbmciIT10eXBlb2Ygci5uYW1lKXRocm93IG5ldyBFcnJvcigiVHJhbnNmb3JtIG1vZHVsZSAqbmFtZSogbXVzdCBiZSBhIHN0cmluZy4iKTt2YXIgbz0iVHJhbnNmb3JtIG1vZHVsZSAiK3IubmFtZTtpZigiZnVuY3Rpb24iIT10eXBlb2Ygci50cmFuc2Zvcm0pdGhyb3cgbmV3IEVycm9yKG8rIiBpcyBtaXNzaW5nIGEgKnRyYW5zZm9ybSogZnVuY3Rpb24uIik7bi5pc1BsYWluT2JqZWN0KHIuYXR0cmlidXRlcyl8fG4ubG9nKG8rIiByZWdpc3RlcmVkIHdpdGhvdXQgYW4gKmF0dHJpYnV0ZXMqIG9iamVjdC4iKSwiZnVuY3Rpb24iIT10eXBlb2Ygci5zdXBwbHlEZWZhdWx0cyYmbi5sb2cobysiIHJlZ2lzdGVyZWQgd2l0aG91dCBhICpzdXBwbHlEZWZhdWx0cyogZnVuY3Rpb24uIiksaS50cmFuc2Zvcm1zUmVnaXN0cnlbci5uYW1lXT1yO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1vZHVsZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHJlZ2lzdGVyZWQhIil9fX0sci5yZWdpc3Rlcih0KCIuL3RyYWNlcy9zY2F0dGVyIikpLHQoIi4vcGxvdF9hcGkvcGxvdF9hcGkiKSxyLlBsb3RTY2hlbWE9dCgiLi9wbG90X2FwaS9wbG90X3NjaGVtYSIpLHIuU25hcHNob3Q9dCgiLi9zbmFwc2hvdCIpfSx7Ii4uL2J1aWxkL3Bsb3Rjc3MiOjEsIi4vY29tcG9uZW50cy9hbm5vdGF0aW9ucyI6NTA0LCIuL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi9jb21wb25lbnRzL2NvbG9yYmFyIjo1MTEsIi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo1MjAsIi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4vY29tcG9uZW50cy9lcnJvcmJhcnMiOjUzNSwiLi9jb21wb25lbnRzL2ltYWdlcyI6NTQxLCIuL2NvbXBvbmVudHMvbGVnZW5kIjo1NDksIi4vY29tcG9uZW50cy9tb2RlYmFyIjo1NTIsIi4vY29tcG9uZW50cy9zaGFwZXMiOjU2OCwiLi9jb21wb25lbnRzL3VwZGF0ZW1lbnVzIjo1NzQsIi4vZm9udHMvbWF0aGpheF9jb25maWciOjU4MSwiLi9saWIiOjU5MSwiLi9saWIvcXVldWUiOjU5OCwiLi9saWIvc3ZnX3RleHRfdXRpbHMiOjYwNCwiLi9wbG90X2FwaS9wbG90X2FwaSI6NjA2LCIuL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIjo2MDcsIi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiOjYwOCwiLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCI6NjIyLCIuL3Bsb3RzL3Bsb3RzIjo2NzEsIi4vcGxvdHMvcG9sYXIvbWljcm9wb2xhciI6Njc0LCIuL3NuYXBzaG90Ijo2ODgsIi4vdHJhY2VzL3NjYXR0ZXIiOjc4MywiZXM2LXByb21pc2UiOjEyN31dLDYxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbXSxkZmx0OiJzY2F0dGVyIn0sdmlzaWJsZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwibGVnZW5kb25seSJdLGRmbHQ6ITB9LHNob3dsZWdlbmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGxlZ2VuZGdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxuYW1lOnt2YWxUeXBlOiJzdHJpbmcifSx1aWQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0saG92ZXJpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJ4IiwieSIsInoiLCJ0ZXh0IiwibmFtZSJdLGV4dHJhczpbImFsbCIsIm5vbmUiXSxkZmx0OiJhbGwifSxzdHJlYW06e3Rva2VuOnt2YWxUeXBlOiJzdHJpbmciLG5vQmxhbms6ITAsc3RyaWN0OiEwfSxtYXhwb2ludHM6e3ZhbFR5cGU6Im51bWJlciIsbWluOjB9fX19LHt9XSw2MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXt4YXhpczp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJ4In0seWF4aXM6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoieSJ9fX0se31dLDYxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlLHIsbj10LnRpY2t2YWxzLGk9dC50aWNrdGV4dCxvPW5ldyBBcnJheShuLmxlbmd0aCksYT0xLjAwMDEqdC5yYW5nZVswXS0xZS00KnQucmFuZ2VbMV0sbD0xLjAwMDEqdC5yYW5nZVsxXS0xZS00KnQucmFuZ2VbMF0sdT1NYXRoLm1pbihhLGwpLGM9TWF0aC5tYXgoYSxsKSxoPTA7Zm9yKEFycmF5LmlzQXJyYXkoaSl8fChpPVtdKSxyPTA7cjxuLmxlbmd0aDtyKyspZT10LmQybChuW3JdKSxlPnUmJmM+ZSYmKHZvaWQgMD09PWlbcl0/b1toXT1ULnRpY2tUZXh0KHQsZSk6b1toXT1zKHQsZSxTdHJpbmcoaVtyXSkpLGgrKyk7cmV0dXJuIGg8bi5sZW5ndGgmJm8uc3BsaWNlKGgsbi5sZW5ndGgtaCksb31mdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm4gZSpfLnJvdW5kVXAodC9lLHIpfWZ1bmN0aW9uIG8odCl7dmFyIGUscj10LmR0aWNrO2lmKHQuX3RpY2tleHBvbmVudD0wLGIocil8fCJzdHJpbmciPT10eXBlb2Ygcnx8KHI9MSksImNhdGVnb3J5Ij09PXQudHlwZSl0Ll90aWNrcm91bmQ9bnVsbDtlbHNlIGlmKGIocil8fCJMIj09PXIuY2hhckF0KDApKWlmKCJkYXRlIj09PXQudHlwZSlyPj04NjRlNT90Ll90aWNrcm91bmQ9ImQiOnI+PTM2ZTU/dC5fdGlja3JvdW5kPSJIIjpyPj02ZTQ/dC5fdGlja3JvdW5kPSJNIjpyPj0xZTM/dC5fdGlja3JvdW5kPSJTIjp0Ll90aWNrcm91bmQ9My1NYXRoLnJvdW5kKE1hdGgubG9nKHIvMikvTWF0aC5MTjEwKTtlbHNle2Iocil8fChyPU51bWJlcihyLnN1YnN0cigxKSkpLHQuX3RpY2tyb3VuZD0yLU1hdGguZmxvb3IoTWF0aC5sb2cocikvTWF0aC5MTjEwKy4wMSksZT0ibG9nIj09PXQudHlwZT9NYXRoLnBvdygxMCxNYXRoLm1heCh0LnJhbmdlWzBdLHQucmFuZ2VbMV0pKTpNYXRoLm1heChNYXRoLmFicyh0LnJhbmdlWzBdKSxNYXRoLmFicyh0LnJhbmdlWzFdKSk7dmFyIG49TWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMTArLjAxKTtNYXRoLmFicyhuKT4zJiYoIlNJIj09PXQuZXhwb25lbnRmb3JtYXR8fCJCIj09PXQuZXhwb25lbnRmb3JtYXQ/dC5fdGlja2V4cG9uZW50PTMqTWF0aC5yb3VuZCgobi0xKS8zKTp0Ll90aWNrZXhwb25lbnQ9bil9ZWxzZSJNIj09PXIuY2hhckF0KDApP3QuX3RpY2tyb3VuZD0yPT09ci5sZW5ndGg/Im0iOiJ5Ijp0Ll90aWNrcm91bmQ9bnVsbH1mdW5jdGlvbiBhKHQsZSl7dmFyIHI9dC5tYXRjaChVKSxuPW5ldyBEYXRlKGUpO2lmKHIpe3ZhciBpPU1hdGgubWluKCtyWzFdfHw2LDYpLG89U3RyaW5nKGUvMWUzJTErMi4wMDAwMDA1KS5zdWJzdHIoMixpKS5yZXBsYWNlKC8wKyQvLCIiKXx8IjAiO3JldHVybiB5LnRpbWUuZm9ybWF0KHQucmVwbGFjZShVLG8pKShuKX1yZXR1cm4geS50aW1lLmZvcm1hdCh0KShuKX1mdW5jdGlvbiBzKHQsZSxyKXt2YXIgbj10LnRpY2tmb250fHx0Ll9nZC5fZnVsbExheW91dC5mb250O3JldHVybnt4OmUsZHg6MCxkeTowLHRleHQ6cnx8IiIsZm9udFNpemU6bi5zaXplLGZvbnQ6bi5mYW1pbHksZm9udENvbG9yOm4uY29sb3J9fWZ1bmN0aW9uIGwodCxlLHIsbil7dmFyIGksbz1lLngscz10Ll90aWNrcm91bmQsbD1uZXcgRGF0ZShvKSx1PSIiO3ImJnQuaG92ZXJmb3JtYXQ/aT1hKHQuaG92ZXJmb3JtYXQsbyk6dC50aWNrZm9ybWF0P2k9YSh0LnRpY2tmb3JtYXQsbyk6KG4mJihiKHMpP3MrPTI6cz17eToibSIsbToiZCIsZDoiSCIsSDoiTSIsTToiUyIsUzoyfVtzXSksInkiPT09cz9pPWoobCk6Im0iPT09cz9pPUQobCk6KG8hPT10Ll90bWlufHxyfHwodT0iPGJyPiIraihsKSksImQiPT09cz9pPU8obCk6IkgiPT09cz9pPUYobCk6KG8hPT10Ll90bWlufHxyfHwodT0iPGJyPiIrTyhsKSsiLCAiK2oobCkpLGk9TihsKSwiTSIhPT1zJiYoaSs9QihsKSwiUyIhPT1zJiYoaSs9Zih2KG8vMWUzLDEpLHQsIm5vbmUiLHIpLnN1YnN0cigxKSkpKSkpLGUudGV4dD1pK3V9ZnVuY3Rpb24gdSh0LGUscixuLGkpe3ZhciBvPXQuZHRpY2ssYT1lLng7aWYoIW58fCJzdHJpbmciPT10eXBlb2YgbyYmIkwiPT09by5jaGFyQXQoMCl8fChvPSJMMyIpLHQudGlja2Zvcm1hdHx8InN0cmluZyI9PXR5cGVvZiBvJiYiTCI9PT1vLmNoYXJBdCgwKSllLnRleHQ9ZihNYXRoLnBvdygxMCxhKSx0LGksbik7ZWxzZSBpZihiKG8pfHwiRCI9PT1vLmNoYXJBdCgwKSYmdihhKy4wMSwxKTwuMSlpZigtMSE9PVsiZSIsIkUiLCJwb3dlciJdLmluZGV4T2YodC5leHBvbmVudGZvcm1hdCkpe3ZhciBzPU1hdGgucm91bmQoYSk7MD09PXM/ZS50ZXh0PTE6MT09PXM/ZS50ZXh0PSIxMCI6cz4xP2UudGV4dD0iMTA8c3VwPiIrcysiPC9zdXA+IjplLnRleHQ9IjEwPHN1cD5cdTIyMTIiKy1zKyI8L3N1cD4iLGUuZm9udFNpemUqPTEuMjV9ZWxzZSBlLnRleHQ9ZihNYXRoLnBvdygxMCxhKSx0LCIiLCJmYWtlaG92ZXIiKSwiRDEiPT09byYmInkiPT09dC5faWQuY2hhckF0KDApJiYoZS5keS09ZS5mb250U2l6ZS82KTtlbHNle2lmKCJEIiE9PW8uY2hhckF0KDApKXRocm93InVucmVjb2duaXplZCBkdGljayAiK1N0cmluZyhvKTtlLnRleHQ9U3RyaW5nKE1hdGgucm91bmQoTWF0aC5wb3coMTAsdihhLDEpKSkpLGUuZm9udFNpemUqPS43NX1pZigiRDEiPT09dC5kdGljayl7dmFyIGw9U3RyaW5nKGUudGV4dCkuY2hhckF0KDApOyIwIiE9PWwmJiIxIiE9PWx8fCgieSI9PT10Ll9pZC5jaGFyQXQoMCk/ZS5keC09ZS5mb250U2l6ZS80OihlLmR5Kz1lLmZvbnRTaXplLzIsZS5keCs9KHQucmFuZ2VbMV0+dC5yYW5nZVswXT8xOi0xKSplLmZvbnRTaXplKigwPmE/LjU6LjI1KSkpfX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9dC5fY2F0ZWdvcmllc1tNYXRoLnJvdW5kKGUueCldO3ZvaWQgMD09PXImJihyPSIiKSxlLnRleHQ9U3RyaW5nKHIpfWZ1bmN0aW9uIGgodCxlLHIsbixpKXsiYWxsIj09PXQuc2hvd2V4cG9uZW50JiZNYXRoLmFicyhlLngvdC5kdGljayk8MWUtNiYmKGk9ImhpZGUiKSxlLnRleHQ9ZihlLngsdCxpLG4pfWZ1bmN0aW9uIGYodCxlLHIsbil7dmFyIGk9MD50LGE9ZS5fdGlja3JvdW5kLHM9cnx8ZS5leHBvbmVudGZvcm1hdHx8IkIiLGw9ZS5fdGlja2V4cG9uZW50LHU9ZS50aWNrZm9ybWF0O2lmKG4pe3ZhciBjPXtleHBvbmVudGZvcm1hdDplLmV4cG9uZW50Zm9ybWF0LGR0aWNrOiJub25lIj09PWUuc2hvd2V4cG9uZW50P2UuZHRpY2s6Yih0KT9NYXRoLmFicyh0KXx8MToxLHJhbmdlOiJub25lIj09PWUuc2hvd2V4cG9uZW50P2UucmFuZ2U6WzAsdHx8MV19O28oYyksYT0oTnVtYmVyKGMuX3RpY2tyb3VuZCl8fDApKzQsbD1jLl90aWNrZXhwb25lbnQsZS5ob3ZlcmZvcm1hdCYmKHU9ZS5ob3ZlcmZvcm1hdCl9aWYodSlyZXR1cm4geS5mb3JtYXQodSkodCkucmVwbGFjZSgvLS9nLCJcdTIyMTIiKTt2YXIgaD1NYXRoLnBvdygxMCwtYSkvMjtpZigibm9uZSI9PT1zJiYobD0wKSx0PU1hdGguYWJzKHQpLGg+dCl0PSIwIixpPSExO2Vsc2V7aWYodCs9aCxsJiYodCo9TWF0aC5wb3coMTAsLWwpLGErPWwpLDA9PT1hKXQ9U3RyaW5nKE1hdGguZmxvb3IodCkpO2Vsc2UgaWYoMD5hKXt0PVN0cmluZyhNYXRoLnJvdW5kKHQpKSx0PXQuc3Vic3RyKDAsdC5sZW5ndGgrYSk7Zm9yKHZhciBmPWE7MD5mO2YrKyl0Kz0iMCJ9ZWxzZXt0PVN0cmluZyh0KTt2YXIgcD10LmluZGV4T2YoIi4iKSsxO3AmJih0PXQuc3Vic3RyKDAscCthKS5yZXBsYWNlKC9cLj8wKyQvLCIiKSl9dD1fLm51bVNlcGFyYXRlKHQsZS5fZ2QuX2Z1bGxMYXlvdXQuc2VwYXJhdG9ycyl9aWYobCYmImhpZGUiIT09cyl7dmFyIGQ7ZD0wPmw/Ilx1MjIxMiIrLWw6InBvd2VyIiE9PXM/IisiK2w6U3RyaW5nKGwpLCJlIj09PXN8fCgiU0kiPT09c3x8IkIiPT09cykmJihsPjEyfHwtMTU+bCk/dCs9ImUiK2Q6IkUiPT09cz90Kz0iRSIrZDoicG93ZXIiPT09cz90Kz0iXHhkNzEwPHN1cD4iK2QrIjwvc3VwPiI6IkIiPT09cyYmOT09PWw/dCs9IkIiOiJTSSIhPT1zJiYiQiIhPT1zfHwodCs9VltsLzMrNV0pfXJldHVybiBpPyJcdTIyMTIiK3Q6dH1mdW5jdGlvbiBwKHQsZSl7dmFyIHIsbixpPVtdO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBvPVtdLGE9dC5fZnVsbERhdGFbZVtyXV0ueGF4aXMscz10Ll9mdWxsRGF0YVtlW3JdXS55YXhpcztpZihhJiZzKXtmb3Iobj0wO248aS5sZW5ndGg7bisrKS0xPT09aVtuXS54LmluZGV4T2YoYSkmJi0xPT09aVtuXS55LmluZGV4T2Yocyl8fG8ucHVzaChuKTtpZihvLmxlbmd0aCl7dmFyIGwsdT1pW29bMF1dO2lmKG8ubGVuZ3RoPjEpZm9yKG49MTtuPG8ubGVuZ3RoO24rKylsPWlbb1tuXV0sZCh1LngsbC54KSxkKHUueSxsLnkpO2QodS54LFthXSksZCh1LnksW3NdKX1lbHNlIGkucHVzaCh7eDpbYV0seTpbc119KX19cmV0dXJuIGl9ZnVuY3Rpb24gZCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKS0xPT09dC5pbmRleE9mKGVbcl0pJiZ0LnB1c2goZVtyXSl9ZnVuY3Rpb24gbSh0LGUscil7dmFyIG4saSxvPVtdLGE9W10scz10LmxheW91dDtmb3Iobj0wO248ZS5sZW5ndGg7bisrKW8ucHVzaChULmdldEZyb21JZCh0LGVbbl0pKTtmb3Iobj0wO248ci5sZW5ndGg7bisrKWEucHVzaChULmdldEZyb21JZCh0LHJbbl0pKTt2YXIgbD1PYmplY3Qua2V5cyhvWzBdKSx1PVsiYW5jaG9yIiwiZG9tYWluIiwib3ZlcmxheWluZyIsInBvc2l0aW9uIiwic2lkZSIsInRpY2thbmdsZSJdLGM9WyJsaW5lYXIiLCJsb2ciXTtmb3Iobj0wO248bC5sZW5ndGg7bisrKXt2YXIgaD1sW25dLGY9b1swXVtoXSxwPWFbMF1baF0sZD0hMCxtPSExLHY9ITE7aWYoIl8iIT09aC5jaGFyQXQoMCkmJiJmdW5jdGlvbiIhPXR5cGVvZiBmJiYtMT09PXUuaW5kZXhPZihoKSl7Zm9yKGk9MTtpPG8ubGVuZ3RoJiZkO2krKyl7dmFyIHk9b1tpXVtoXTsidHlwZSI9PT1oJiYtMSE9PWMuaW5kZXhPZihmKSYmLTEhPT1jLmluZGV4T2YoeSkmJmYhPT15P209ITA6eSE9PWYmJihkPSExKX1mb3IoaT0xO2k8YS5sZW5ndGgmJmQ7aSsrKXt2YXIgYj1hW2ldW2hdOyJ0eXBlIj09PWgmJi0xIT09Yy5pbmRleE9mKHApJiYtMSE9PWMuaW5kZXhPZihiKSYmcCE9PWI/dj0hMDphW2ldW2hdIT09cCYmKGQ9ITEpfWQmJihtJiYoc1tvWzBdLl9uYW1lXS50eXBlPSJsaW5lYXIiKSx2JiYoc1thWzBdLl9uYW1lXS50eXBlPSJsaW5lYXIiKSxnKHMsaCxvLGEpKX19Zm9yKG49MDtuPHQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnMubGVuZ3RoO24rKyl7dmFyIHg9dC5fZnVsbExheW91dC5hbm5vdGF0aW9uc1tuXTstMSE9PWUuaW5kZXhPZih4LnhyZWYpJiYtMSE9PXIuaW5kZXhPZih4LnlyZWYpJiZfLnN3YXBBdHRycyhzLmFubm90YXRpb25zW25dLFsiPyJdKX19ZnVuY3Rpb24gZyh0LGUscixuKXt2YXIgaSxvPV8ubmVzdGVkUHJvcGVydHksYT1vKHRbclswXS5fbmFtZV0sZSkuZ2V0KCkscz1vKHRbblswXS5fbmFtZV0sZSkuZ2V0KCk7Zm9yKCJ0aXRsZSI9PT1lJiYoIkNsaWNrIHRvIGVudGVyIFggYXhpcyB0aXRsZSI9PT1hJiYoYT0iQ2xpY2sgdG8gZW50ZXIgWSBheGlzIHRpdGxlIiksIkNsaWNrIHRvIGVudGVyIFkgYXhpcyB0aXRsZSI9PT1zJiYocz0iQ2xpY2sgdG8gZW50ZXIgWCBheGlzIHRpdGxlIikpLGk9MDtpPHIubGVuZ3RoO2krKylvKHQscltpXS5fbmFtZSsiLiIrZSkuc2V0KHMpO2ZvcihpPTA7aTxuLmxlbmd0aDtpKyspbyh0LG5baV0uX25hbWUrIi4iK2UpLnNldChhKX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuKHQlZStlKSVlfXZhciB5PXQoImQzIiksYj10KCJmYXN0LWlzbnVtZXJpYyIpLHg9dCgiLi4vLi4vcGxvdGx5IiksXz10KCIuLi8uLi9saWIiKSx3PXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLE09dCgiLi4vLi4vY29tcG9uZW50cy90aXRsZXMiKSxrPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxBPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLFQ9ZS5leHBvcnRzPXt9O1QubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksVC5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLFQuc2V0Q29udmVydD10KCIuL3NldF9jb252ZXJ0Iik7dmFyIEU9dCgiLi9heGlzX2lkcyIpO1QuaWQybmFtZT1FLmlkMm5hbWUsVC5jbGVhbklkPUUuY2xlYW5JZCxULmxpc3Q9RS5saXN0LFQubGlzdElkcz1FLmxpc3RJZHMsVC5nZXRGcm9tSWQ9RS5nZXRGcm9tSWQsVC5nZXRGcm9tVHJhY2U9RS5nZXRGcm9tVHJhY2UsVC5jb2VyY2VSZWY9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1yLl9mdWxsTGF5b3V0Ll9oYXMoImdsMmQiKT9bXTpULmxpc3RJZHMocixuKSxhPW4rInJlZiIscz17fTtyZXR1cm4gc1thXT17dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOm8uY29uY2F0KFsicGFwZXIiXSksZGZsdDppfHxvWzBdfHwicGFwZXIifSxfLmNvZXJjZSh0LGUscyxhKX0sVC5jb2VyY2VBUmVmPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG89ci5fZnVsbExheW91dC5faGFzKCJnbDJkIik/W106VC5saXN0SWRzKHIsbiksYT0iYSIrbisicmVmIixzPXt9O3JldHVybiBzW2FdPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6by5jb25jYXQoWyJwaXhlbCJdKSxkZmx0Oml8fCJwaXhlbCJ8fG9bMF19LF8uY29lcmNlKHQsZSxzLGEpfSxULmNsZWFyVHlwZXM9ZnVuY3Rpb24odCxlKXtBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aHx8KGU9dC5fZnVsbERhdGEubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSksZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPXQuZGF0YVtlXTtkZWxldGUoVC5nZXRGcm9tSWQodCxyLnhheGlzKXx8e30pLnR5cGUsZGVsZXRlKFQuZ2V0RnJvbUlkKHQsci55YXhpcyl8fHt9KS50eXBlfSl9LFQuY291bnRlckxldHRlcj1mdW5jdGlvbih0KXt2YXIgZT10LmNoYXJBdCgwKTtyZXR1cm4ieCI9PT1lPyJ5IjoieSI9PT1lPyJ4Ijp2b2lkIDB9LFQubWluRHRpY2s9ZnVuY3Rpb24odCxlLHIsbil7LTE9PT1bImxvZyIsImNhdGVnb3J5Il0uaW5kZXhPZih0LnR5cGUpJiZuP251bGw9PT10Ll9taW5EdGljaz8odC5fbWluRHRpY2s9ZSx0Ll9mb3JjZVRpY2swPXIpOnQuX21pbkR0aWNrJiYoKHQuX21pbkR0aWNrL2UrMWUtNiklMTwyZS02JiYoKHItdC5fZm9yY2VUaWNrMCkvZSUxKzEuMDAwMDAxKSUxPDJlLTY/KHQuX21pbkR0aWNrPWUsdC5fZm9yY2VUaWNrMD1yKTooKGUvdC5fbWluRHRpY2srMWUtNiklMT4yZS02fHwoKHItdC5fZm9yY2VUaWNrMCkvdC5fbWluRHRpY2slMSsxLjAwMDAwMSklMT4yZS02KSYmKHQuX21pbkR0aWNrPTApKTp0Ll9taW5EdGljaz0wfSxULmdldEF1dG9SYW5nZT1mdW5jdGlvbih0KXt2YXIgZSxyPVtdLG49dC5fbWluWzBdLnZhbCxpPXQuX21heFswXS52YWw7Zm9yKGU9MTtlPHQuX21pbi5sZW5ndGgmJm49PT1pO2UrKyluPU1hdGgubWluKG4sdC5fbWluW2VdLnZhbCk7Zm9yKGU9MTtlPHQuX21heC5sZW5ndGgmJm49PT1pO2UrKylpPU1hdGgubWF4KGksdC5fbWF4W2VdLnZhbCk7dmFyIG8sYSxzLGwsdSxjLGgsZj0wLHA9dC5yYW5nZSYmdC5yYW5nZVsxXTx0LnJhbmdlWzBdO2ZvcigicmV2ZXJzZWQiPT09dC5hdXRvcmFuZ2UmJihwPSEwLHQuYXV0b3JhbmdlPSEwKSxlPTA7ZTx0Ll9taW4ubGVuZ3RoO2UrKylmb3IoYT10Ll9taW5bZV0sbz0wO288dC5fbWF4Lmxlbmd0aDtvKyspcz10Ll9tYXhbb10saD1zLnZhbC1hLnZhbCxjPXQuX2xlbmd0aC1hLnBhZC1zLnBhZCxoPjAmJmM+MCYmaC9jPmYmJihsPWEsdT1zLGY9aC9jKTtpZihuPT09aSl7dmFyIGQ9bi0xLG09bisxO3I9InRvemVybyI9PT10LnJhbmdlbW9kZT8wPm4/W2QsMF06WzAsbV06Im5vbm5lZ2F0aXZlIj09PXQucmFuZ2Vtb2RlP1tNYXRoLm1heCgwLGQpLE1hdGgubWF4KDAsbSldOltkLG1dfWVsc2UgZiYmKCJsaW5lYXIiIT09dC50eXBlJiYiLSIhPT10LnR5cGV8fCgidG96ZXJvIj09PXQucmFuZ2Vtb2RlPyhsLnZhbD49MCYmKGw9e3ZhbDowLHBhZDowfSksdS52YWw8PTAmJih1PXt2YWw6MCxwYWQ6MH0pKToibm9ubmVnYXRpdmUiPT09dC5yYW5nZW1vZGUmJihsLnZhbC1mKmwucGFkPDAmJihsPXt2YWw6MCxwYWQ6MH0pLHUudmFsPDAmJih1PXt2YWw6MSxwYWQ6MH0pKSxmPSh1LnZhbC1sLnZhbCkvKHQuX2xlbmd0aC1sLnBhZC11LnBhZCkpLHI9W2wudmFsLWYqbC5wYWQsdS52YWwrZip1LnBhZF0pO3JldHVybiByWzBdPT09clsxXSYmKCJ0b3plcm8iPT09dC5yYW5nZW1vZGU/cj1yWzBdPDA/W3JbMF0sMF06clswXT4wP1swLHJbMF1dOlswLDFdOihyPVtyWzBdLTEsclswXSsxXSwibm9ubmVnYXRpdmUiPT09dC5yYW5nZW1vZGUmJihyWzBdPU1hdGgubWF4KDAsclswXSkpKSkscCYmci5yZXZlcnNlKCkscn0sVC5kb0F1dG9SYW5nZT1mdW5jdGlvbih0KXt0Ll9sZW5ndGh8fHQuc2V0U2NhbGUoKTt2YXIgZT10Ll9taW4mJnQuX21heCYmdC5fbWluLmxlbmd0aCYmdC5fbWF4Lmxlbmd0aDtpZih0LmF1dG9yYW5nZSYmZSl7dC5yYW5nZT1ULmdldEF1dG9SYW5nZSh0KTt2YXIgcj10Ll9nZC5sYXlvdXRbdC5fbmFtZV07cnx8KHQuX2dkLmxheW91dFt0Ll9uYW1lXT1yPXt9KSxyIT09dCYmKHIucmFuZ2U9dC5yYW5nZS5zbGljZSgpLHIuYXV0b3JhbmdlPXQuYXV0b3JhbmdlKX19LFQuc2F2ZVJhbmdlSW5pdGlhbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1ULmxpc3QodCwiIiwhMCksbj0hMSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV0sYT12b2lkIDA9PT1vLl9yYW5nZUluaXRpYWwscz1hfHwhKG8ucmFuZ2VbMF09PT1vLl9yYW5nZUluaXRpYWxbMF0mJm8ucmFuZ2VbMV09PT1vLl9yYW5nZUluaXRpYWxbMV0pOyhhJiZvLmF1dG9yYW5nZT09PSExfHxlJiZzKSYmKG8uX3JhbmdlSW5pdGlhbD1vLnJhbmdlLnNsaWNlKCksbj0hMCl9cmV0dXJuIG59O3ZhciBTPU51bWJlci5NQVhfVkFMVUUvMjtULmV4cGFuZD1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoTnVtYmVyKHRbZV18fDApLDApfTt2YXIgZT1NYXRoLm1heChOdW1iZXIodHx8MCksMCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fWZ1bmN0aW9uIGkocil7ZnVuY3Rpb24gbih0KXtyZXR1cm4gYih0KSYmTWF0aC5hYnModCk8U31pZihsPWVbcl0sYihsKSl7aWYoaD14KHIpK3YsZj1fKHIpK3YsZD1sLU0ociksbT1sK3cociksImxvZyI9PT10LnR5cGUmJm0vMTA+ZCYmKGQ9bS8xMCksdT10LmMybChkKSxjPXQuYzJsKG0pLHkmJih1PU1hdGgubWluKDAsdSksYz1NYXRoLm1heCgwLGMpKSxuKHUpKXtmb3IocD0hMCxhPTA7YTx0Ll9taW4ubGVuZ3RoJiZwO2ErKylzPXQuX21pblthXSxzLnZhbDw9dSYmcy5wYWQ+PWY/cD0hMTpzLnZhbD49dSYmcy5wYWQ8PWYmJih0Ll9taW4uc3BsaWNlKGEsMSksYS0tKTtwJiZ0Ll9taW4ucHVzaCh7dmFsOnUscGFkOnkmJjA9PT11PzA6Zn0pfWlmKG4oYykpe2ZvcihwPSEwLGE9MDthPHQuX21heC5sZW5ndGgmJnA7YSsrKXM9dC5fbWF4W2FdLHMudmFsPj1jJiZzLnBhZD49aD9wPSExOnMudmFsPD1jJiZzLnBhZDw9aCYmKHQuX21heC5zcGxpY2UoYSwxKSxhLS0pO3AmJnQuX21heC5wdXNoKHt2YWw6YyxwYWQ6eSYmMD09PWM/MDpofSl9fX1pZigodC5hdXRvcmFuZ2V8fHQuX25lZWRzRXhwYW5kKSYmZSl7dC5fbWlufHwodC5fbWluPVtdKSx0Ll9tYXh8fCh0Ll9tYXg9W10pLHJ8fChyPXt9KSx0Ll9tfHx0LnNldFNjYWxlKCk7dmFyIG8sYSxzLGwsdSxjLGgsZixwLGQsbSxnPWUubGVuZ3RoLHY9ci5wYWRkZWQ/LjA1KnQuX2xlbmd0aDowLHk9ci50b3plcm8mJigibGluZWFyIj09PXQudHlwZXx8Ii0iPT09dC50eXBlKSx4PW4oKHQuX20+MD9yLnBwYWRwbHVzOnIucHBhZG1pbnVzKXx8ci5wcGFkfHwwKSxfPW4oKHQuX20+MD9yLnBwYWRtaW51czpyLnBwYWRwbHVzKXx8ci5wcGFkfHwwKSx3PW4oci52cGFkcGx1c3x8ci52cGFkKSxNPW4oci52cGFkbWludXN8fHIudnBhZCk7Zm9yKG89MDs2Pm87bysrKWkobyk7Zm9yKG89Zy0xO28+NTtvLS0paShvKX19LFQuYXV0b0Jpbj1mdW5jdGlvbih0LGUscixuKXtmdW5jdGlvbiBpKHQpe3JldHVybigxKzEwMCoodC1wKS9oLmR0aWNrKSUxMDA8Mn12YXIgbz1fLmFnZ051bXMoTWF0aC5taW4sbnVsbCx0KSxhPV8uYWdnTnVtcyhNYXRoLm1heCxudWxsLHQpO2lmKCJjYXRlZ29yeSI9PT1lLnR5cGUpcmV0dXJue3N0YXJ0Om8tLjUsZW5kOmErLjUsc2l6ZToxfTt2YXIgcztpZihyKXM9KGEtbykvcjtlbHNle3ZhciBsPV8uZGlzdGluY3RWYWxzKHQpLHU9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhsLm1pbkRpZmYpL01hdGguTE4xMCkpLGM9dSpfLnJvdW5kVXAobC5taW5EaWZmL3UsWy45LDEuOSw0LjksOS45XSwhMCk7cz1NYXRoLm1heChjLDIqXy5zdGRldih0KS9NYXRoLnBvdyh0Lmxlbmd0aCxuPy4yNTouNCkpfXZhciBoPXt0eXBlOiJsb2ciPT09ZS50eXBlPyJsaW5lYXIiOmUudHlwZSxyYW5nZTpbbyxhXX07VC5hdXRvVGlja3MoaCxzKTt2YXIgZixwPVQudGlja0luY3JlbWVudChULnRpY2tGaXJzdChoKSxoLmR0aWNrLCJyZXZlcnNlIik7aWYoIm51bWJlciI9PXR5cGVvZiBoLmR0aWNrKXtmb3IodmFyIGQ9MCxtPTAsZz0wLHY9MCx5PTA7eTx0Lmxlbmd0aDt5KyspdFt5XSUxPT09MD9nKys6Yih0W3ldKXx8disrLGkodFt5XSkmJmQrKyxpKHRbeV0raC5kdGljay8yKSYmbSsrO3ZhciB4PXQubGVuZ3RoLXY7aWYoZz09PXgmJiJkYXRlIiE9PWUudHlwZSloLmR0aWNrPDE/cD1vLS41KmguZHRpY2s6cC09LjU7ZWxzZSBpZiguMSp4Pm0mJihkPi4zKnh8fGkobyl8fGkoYSkpKXt2YXIgdz1oLmR0aWNrLzI7cCs9bz5wK3c/dzotd312YXIgTT0xK01hdGguZmxvb3IoKGEtcCkvaC5kdGljayk7Zj1wK00qaC5kdGlja31lbHNlIGZvcihmPXA7YT49ZjspZj1ULnRpY2tJbmNyZW1lbnQoZixoLmR0aWNrKTtyZXR1cm57c3RhcnQ6cCxlbmQ6ZixzaXplOmguZHRpY2t9fSxULmNhbGNUaWNrcz1mdW5jdGlvbih0KXtpZigiYXJyYXkiPT09dC50aWNrbW9kZSlyZXR1cm4gbih0KTtpZigiYXV0byI9PT10LnRpY2ttb2RlfHwhdC5kdGljayl7dmFyIGUscj10Lm50aWNrcztyfHwoImNhdGVnb3J5Ij09PXQudHlwZT8oZT10LnRpY2tmb250PzEuMioodC50aWNrZm9udC5zaXplfHwxMik6MTUscj10Ll9sZW5ndGgvZSk6KGU9InkiPT09dC5faWQuY2hhckF0KDApPzQwOjgwLHI9Xy5jb25zdHJhaW4odC5fbGVuZ3RoL2UsNCw5KSsxKSksVC5hdXRvVGlja3ModCxNYXRoLmFicyh0LnJhbmdlWzFdLXQucmFuZ2VbMF0pL3IpLHQuX21pbkR0aWNrPjAmJnQuZHRpY2s8Mip0Ll9taW5EdGljayYmKHQuZHRpY2s9dC5fbWluRHRpY2ssdC50aWNrMD10Ll9mb3JjZVRpY2swKX10LnRpY2swfHwodC50aWNrMD0iZGF0ZSI9PT10LnR5cGU/bmV3IERhdGUoMmUzLDAsMSkuZ2V0VGltZSgpOjApLG8odCksdC5fdG1pbj1ULnRpY2tGaXJzdCh0KTt2YXIgaT10LnJhbmdlWzFdPHQucmFuZ2VbMF0sYT1bXSxzPTEuMDAwMSp0LnJhbmdlWzFdLTFlLTQqdC5yYW5nZVswXTsiY2F0ZWdvcnkiPT09dC50eXBlJiYocz1pP01hdGgubWF4KC0uNSxzKTpNYXRoLm1pbih0Ll9jYXRlZ29yaWVzLmxlbmd0aC0uNSxzKSk7Zm9yKHZhciBsPXQuX3RtaW47KGk/bD49czpzPj1sKSYmKGEucHVzaChsKSwhKGEubGVuZ3RoPjFlMykpO2w9VC50aWNrSW5jcmVtZW50KGwsdC5kdGljayxpKSk7dC5fdG1heD1hW2EubGVuZ3RoLTFdO2Zvcih2YXIgdT1uZXcgQXJyYXkoYS5sZW5ndGgpLGM9MDtjPGEubGVuZ3RoO2MrKyl1W2NdPVQudGlja1RleHQodCxhW2NdKTtyZXR1cm4gdX07dmFyIEw9WzIsNSwxMF0sej1bMSwyLDMsNiwxMl0sST1bMSwyLDUsMTAsMTUsMzBdLFA9WzEsMiwzLDcsMTRdLEM9Wy0uMDQ2LDAsLjMwMSwuNDc3LC42MDIsLjY5OSwuNzc4LC44NDUsLjkwMywuOTU0LDFdLFI9Wy0uMzAxLDAsLjMwMSwuNjk5LDFdO1QuYXV0b1RpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIHI7aWYoImRhdGUiPT09dC50eXBlKXQudGljazA9bmV3IERhdGUoMmUzLDAsMSkuZ2V0VGltZSgpLGU+MTU3Nzg4ZTU/KGUvPTMxNTU3NmU1LHI9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMTApKSx0LmR0aWNrPSJNIisxMippKGUscixMKSk6ZT4xMjA5NmU1PyhlLz0yNjI5OGU1LHQuZHRpY2s9Ik0iK2koZSwxLHopKTplPjQzMmU1Pyh0LmR0aWNrPWkoZSw4NjRlNSxQKSx0LnRpY2swPW5ldyBEYXRlKDJlMywwLDIpLmdldFRpbWUoKSk6ZT4xOGU1P3QuZHRpY2s9aShlLDM2ZTUseik6ZT4zZTQ/dC5kdGljaz1pKGUsNmU0LEkpOmU+NTAwP3QuZHRpY2s9aShlLDFlMyxJKToocj1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4xMCkpLHQuZHRpY2s9aShlLHIsTCkpO2Vsc2UgaWYoImxvZyI9PT10LnR5cGUpaWYodC50aWNrMD0wLGU+LjcpdC5kdGljaz1NYXRoLmNlaWwoZSk7ZWxzZSBpZihNYXRoLmFicyh0LnJhbmdlWzFdLXQucmFuZ2VbMF0pPDEpe3ZhciBuPTEuNSpNYXRoLmFicygodC5yYW5nZVsxXS10LnJhbmdlWzBdKS9lKTtlPU1hdGguYWJzKE1hdGgucG93KDEwLHQucmFuZ2VbMV0pLU1hdGgucG93KDEwLHQucmFuZ2VbMF0pKS9uLHI9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhlKS9NYXRoLkxOMTApKSx0LmR0aWNrPSJMIitpKGUscixMKX1lbHNlIHQuZHRpY2s9ZT4uMz8iRDIiOiJEMSI7ZWxzZSJjYXRlZ29yeSI9PT10LnR5cGU/KHQudGljazA9MCx0LmR0aWNrPU1hdGguY2VpbChNYXRoLm1heChlLDEpKSk6KHQudGljazA9MCxyPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjEwKSksdC5kdGljaz1pKGUscixMKSk7aWYoMD09PXQuZHRpY2smJih0LmR0aWNrPTEpLCFiKHQuZHRpY2spJiYic3RyaW5nIiE9dHlwZW9mIHQuZHRpY2spe3ZhciBvPXQuZHRpY2s7dGhyb3cgdC5kdGljaz0xLCJheC5kdGljayBlcnJvcjogIitTdHJpbmcobyl9fSxULnRpY2tJbmNyZW1lbnQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI/LTE6MTtpZihiKGUpKXJldHVybiB0K24qZTt2YXIgaT1lLmNoYXJBdCgwKSxvPW4qTnVtYmVyKGUuc3Vic3RyKDEpKTtpZigiTSI9PT1pKXt2YXIgYT1uZXcgRGF0ZSh0KTtyZXR1cm4gYS5zZXRNb250aChhLmdldE1vbnRoKCkrbyl9aWYoIkwiPT09aSlyZXR1cm4gTWF0aC5sb2coTWF0aC5wb3coMTAsdCkrbykvTWF0aC5MTjEwOwppZigiRCI9PT1pKXt2YXIgcz0iRDIiPT09ZT9SOkMsbD10Ky4wMSpuLHU9Xy5yb3VuZFVwKHYobCwxKSxzLHIpO3JldHVybiBNYXRoLmZsb29yKGwpK01hdGgubG9nKHkucm91bmQoTWF0aC5wb3coMTAsdSksMSkpL01hdGguTE4xMH10aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcoZSl9LFQudGlja0ZpcnN0PWZ1bmN0aW9uKHQpe3ZhciBlPXQucmFuZ2VbMV08dC5yYW5nZVswXSxyPWU/TWF0aC5mbG9vcjpNYXRoLmNlaWwsbj0xLjAwMDEqdC5yYW5nZVswXS0xZS00KnQucmFuZ2VbMV0saT10LmR0aWNrLG89dC50aWNrMDtpZihiKGkpKXt2YXIgYT1yKChuLW8pL2kpKmkrbztyZXR1cm4iY2F0ZWdvcnkiPT09dC50eXBlJiYoYT1fLmNvbnN0cmFpbihhLDAsdC5fY2F0ZWdvcmllcy5sZW5ndGgtMSkpLGF9dmFyIHMsbCx1LGM9aS5jaGFyQXQoMCksaD1OdW1iZXIoaS5zdWJzdHIoMSkpO2lmKCJNIj09PWMpe2ZvcihzPW5ldyBEYXRlKG8pLG49bmV3IERhdGUobiksbD0xMioobi5nZXRGdWxsWWVhcigpLXMuZ2V0RnVsbFllYXIoKSkrbi5nZXRNb250aCgpLXMuZ2V0TW9udGgoKSx1PXMuc2V0TW9udGgocy5nZXRNb250aCgpKyhNYXRoLnJvdW5kKGwvaCkrKGU/MTotMSkpKmgpO2U/dT5uOm4+dTspdT1ULnRpY2tJbmNyZW1lbnQodSxpLGUpO3JldHVybiB1fWlmKCJMIj09PWMpcmV0dXJuIE1hdGgubG9nKHIoKE1hdGgucG93KDEwLG4pLW8pL2gpKmgrbykvTWF0aC5MTjEwO2lmKCJEIj09PWMpe3ZhciBmPSJEMiI9PT1pP1I6QyxwPV8ucm91bmRVcCh2KG4sMSksZixlKTtyZXR1cm4gTWF0aC5mbG9vcihuKStNYXRoLmxvZyh5LnJvdW5kKE1hdGgucG93KDEwLHApLDEpKS9NYXRoLkxOMTB9dGhyb3cidW5yZWNvZ25pemVkIGR0aWNrICIrU3RyaW5nKGkpfTt2YXIgaj15LnRpbWUuZm9ybWF0KCIlWSIpLEQ9eS50aW1lLmZvcm1hdCgiJWIgJVkiKSxPPXkudGltZS5mb3JtYXQoIiViICUtZCIpLEY9eS50aW1lLmZvcm1hdCgiJWIgJS1kICVIaCIpLE49eS50aW1lLmZvcm1hdCgiJUg6JU0iKSxCPXkudGltZS5mb3JtYXQoIjolUyIpLFU9LyUoXGQ/KWYvZztULnRpY2tUZXh0PWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKG4pe3ZhciBpO3JldHVybiB2b2lkIDA9PT1uPyEwOnI/Im5vbmUiPT09bjooaT17Zmlyc3Q6dC5fdG1pbixsYXN0OnQuX3RtYXh9W25dLCJhbGwiIT09biYmZSE9PWkpfXZhciBpLG8sYT1zKHQsZSksZj0iYXJyYXkiPT09dC50aWNrbW9kZSxwPXJ8fGY7aWYoZiYmQXJyYXkuaXNBcnJheSh0LnRpY2t0ZXh0KSl7dmFyIGQ9TWF0aC5hYnModC5yYW5nZVsxXS10LnJhbmdlWzBdKS8xZTQ7Zm9yKG89MDtvPHQudGlja3RleHQubGVuZ3RoJiYhKE1hdGguYWJzKGUtdC5kMmwodC50aWNrdmFsc1tvXSkpPGQpO28rKyk7aWYobzx0LnRpY2t0ZXh0Lmxlbmd0aClyZXR1cm4gYS50ZXh0PVN0cmluZyh0LnRpY2t0ZXh0W29dKSxhfXJldHVybiBpPSJub25lIiE9PXQuZXhwb25lbnRmb3JtYXQmJm4odC5zaG93ZXhwb25lbnQpPyJoaWRlIjoiIiwiZGF0ZSI9PT10LnR5cGU/bCh0LGEscixwKToibG9nIj09PXQudHlwZT91KHQsYSxyLHAsaSk6ImNhdGVnb3J5Ij09PXQudHlwZT9jKHQsYSk6aCh0LGEscixwLGkpLHQudGlja3ByZWZpeCYmIW4odC5zaG93dGlja3ByZWZpeCkmJihhLnRleHQ9dC50aWNrcHJlZml4K2EudGV4dCksdC50aWNrc3VmZml4JiYhbih0LnNob3d0aWNrc3VmZml4KSYmKGEudGV4dCs9dC50aWNrc3VmZml4KSxhfTt2YXIgVj1bImYiLCJwIiwibiIsIlx1MDNiYyIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIl07VC5zdWJwbG90TWF0Y2g9L154KFswLTldKil5KFswLTldKikkLyxULmdldFN1YnBsb3RzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LGUpe3JldHVybi0xIT09dC5pbmRleE9mKGUuX2lkKX12YXIgbixpLG8sYT1bXSxzPXQuZGF0YXx8W107Zm9yKG49MDtuPHMubGVuZ3RoO24rKyl7dmFyIGw9c1tuXTtpZihsLnZpc2libGUhPT0hMSYmImxlZ2VuZG9ubHkiIT09bC52aXNpYmxlJiYoeC5QbG90cy50cmFjZUlzKGwsImNhcnRlc2lhbiIpfHx4LlBsb3RzLnRyYWNlSXMobCwiZ2wyZCIpKSl7dmFyIHU9bC54YXhpc3x8IngiLGM9bC55YXhpc3x8InkiO289dStjLC0xPT09YS5pbmRleE9mKG8pJiZhLnB1c2gobyl9fXZhciBoPVQubGlzdCh0LCIiLCEwKTtmb3Iobj0wO248aC5sZW5ndGg7bisrKXt2YXIgZj1oW25dLHA9Zi5faWQuY2hhckF0KDApLGQ9ImZyZWUiPT09Zi5hbmNob3I/IngiPT09cD8ieSI6IngiOmYuYW5jaG9yLG09VC5nZXRGcm9tSWQodCxkKSxnPSExO2ZvcihpPTA7aTxhLmxlbmd0aDtpKyspaWYocihhW2ldLGYpKXtnPSEwO2JyZWFrfSJmcmVlIj09PWYuYW5jaG9yJiZnfHxtJiYobz0ieCI9PT1wP2YuX2lkK20uX2lkOm0uX2lkK2YuX2lkLC0xPT09YS5pbmRleE9mKG8pJiZhLnB1c2gobykpfXZhciB2PVQuc3VicGxvdE1hdGNoLHk9W107Zm9yKG49MDtuPGEubGVuZ3RoO24rKylvPWFbbl0sdi50ZXN0KG8pJiZ5LnB1c2gobyk7cmV0dXJuIHkuc29ydChmdW5jdGlvbih0LGUpe3ZhciByPXQubWF0Y2godiksbj1lLm1hdGNoKHYpO3JldHVybiByWzFdPT09blsxXT8rKHJbMl18fDEpLShuWzJdfHwxKTorKHJbMV18fDApLShuWzFdfHwwKX0pLGU/VC5maW5kU3VicGxvdHNXaXRoQXhpcyh5LGUpOnl9LFQuZmluZFN1YnBsb3RzV2l0aEF4aXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IFJlZ0V4cCgieCI9PT1lLl9pZC5jaGFyQXQoMCk/Il4iK2UuX2lkKyJ5IjplLl9pZCsiJCIpLG49W10saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbz10W2ldO3IudGVzdChvKSYmbi5wdXNoKG8pfXJldHVybiBufSxULm1ha2VDbGlwUGF0aHM9ZnVuY3Rpb24odCl7dmFyIGUscixuPXQuX2Z1bGxMYXlvdXQsaT1uLl9kZWZzLG89e19vZmZzZXQ6MCxfbGVuZ3RoOm4ud2lkdGgsX2lkOiIifSxhPXtfb2Zmc2V0OjAsX2xlbmd0aDpuLmhlaWdodCxfaWQ6IiJ9LHM9VC5saXN0KHQsIngiLCEwKSxsPVQubGlzdCh0LCJ5IiwhMCksdT1bXTtmb3IoZT0wO2U8cy5sZW5ndGg7ZSsrKWZvcih1LnB1c2goe3g6c1tlXSx5OmF9KSxyPTA7cjxsLmxlbmd0aDtyKyspMD09PWUmJnUucHVzaCh7eDpvLHk6bFtyXX0pLHUucHVzaCh7eDpzW2VdLHk6bFtyXX0pO3ZhciBjPWkuc2VsZWN0QWxsKCJnLmNsaXBzIikuZGF0YShbMF0pO2MuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJjbGlwcyIsITApO3ZhciBoPWMuc2VsZWN0QWxsKCIuYXhlc2NsaXAiKS5kYXRhKHUsZnVuY3Rpb24odCl7cmV0dXJuIHQueC5faWQrdC55Ll9pZH0pO2guZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZCgiYXhlc2NsaXAiLCEwKS5hdHRyKCJpZCIsZnVuY3Rpb24odCl7cmV0dXJuImNsaXAiK24uX3VpZCt0LnguX2lkK3QueS5faWR9KS5hcHBlbmQoInJlY3QiKSxoLmV4aXQoKS5yZW1vdmUoKSxoLmVhY2goZnVuY3Rpb24odCl7eS5zZWxlY3QodGhpcykuc2VsZWN0KCJyZWN0IikuYXR0cih7eDp0LnguX29mZnNldHx8MCx5OnQueS5fb2Zmc2V0fHwwLHdpZHRoOnQueC5fbGVuZ3RofHwxLGhlaWdodDp0LnkuX2xlbmd0aHx8MX0pfSl9LFQuZG9UaWNrcz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXt2YXIgZT11LmwycCh0LngpO3JldHVybiBlPjEmJmU8dS5fbGVuZ3RoLTF9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPXQuc2VsZWN0QWxsKCJwYXRoLiIreikuZGF0YSgiaW5zaWRlIj09PXUudGlja3M/VjpTLEwpO2UmJnUudGlja3M/KHIuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKHosMSkuY2xhc3NlZCgidGlja3MiLDEpLmNsYXNzZWQoImNyaXNwIiwxKS5jYWxsKGsuc3Ryb2tlLHUudGlja2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixGKyJweCIpLmF0dHIoImQiLGUpLHIuYXR0cigidHJhbnNmb3JtIixwKSxyLmV4aXQoKS5yZW1vdmUoKSk6ci5yZW1vdmUoKX1mdW5jdGlvbiBvKHIsbil7ZnVuY3Rpb24gaSh0LGUpe3QuZWFjaChmdW5jdGlvbih0KXt2YXIgcj1kKGUpLG49eS5zZWxlY3QodGhpcyksaT1uLnNlbGVjdCgiLnRleHQtbWF0aC1ncm91cCIpLG89cCh0KSsoYihlKSYmMCE9PStlPyIgcm90YXRlKCIrZSsiLCIraCh0KSsiLCIrKGYodCktdC5mb250U2l6ZS8yKSsiKSI6IiIpO2lmKGkuZW1wdHkoKSl7dmFyIGE9bi5zZWxlY3QoInRleHQiKS5hdHRyKHt0cmFuc2Zvcm06bywidGV4dC1hbmNob3IiOnJ9KTthLmVtcHR5KCl8fGEuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih7eDphLmF0dHIoIngiKSx5OmEuYXR0cigieSIpfSl9ZWxzZXt2YXIgcz1BLmJCb3goaS5ub2RlKCkpLndpZHRoKntlbmQ6LS41LHN0YXJ0Oi41fVtyXTtpLmF0dHIoInRyYW5zZm9ybSIsbysocz8idHJhbnNsYXRlKCIrcysiLDApIjoiIikpfX0pfWZ1bmN0aW9uIG8oKXtyZXR1cm4gVC5sZW5ndGgmJlByb21pc2UuYWxsKFQpfWZ1bmN0aW9uIHMoKXtpZihpKGMsdS50aWNrYW5nbGUpLCJ4Ij09PWcmJiFiKHUudGlja2FuZ2xlKSYmKCJsb2ciIT09dS50eXBlfHwiRCIhPT1TdHJpbmcodS5kdGljaykuY2hhckF0KDApKSl7dmFyIHQ9W107Zm9yKGMuZWFjaChmdW5jdGlvbihlKXt2YXIgcj15LnNlbGVjdCh0aGlzKSxuPXIuc2VsZWN0KCIudGV4dC1tYXRoLWdyb3VwIiksaT11LmwycChlLngpO24uZW1wdHkoKSYmKG49ci5zZWxlY3QoInRleHQiKSk7dmFyIG89QS5iQm94KG4ubm9kZSgpKTt0LnB1c2goe3RvcDowLGJvdHRvbToxMCxoZWlnaHQ6MTAsbGVmdDppLW8ud2lkdGgvMixyaWdodDppK28ud2lkdGgvMisyLHdpZHRoOm8ud2lkdGgrMn0pfSksbT0wO208dC5sZW5ndGgtMTttKyspaWYoXy5iQm94SW50ZXJzZWN0KHRbbV0sdFttKzFdKSl7az0zMDticmVha31pZihrKXt2YXIgcj1NYXRoLmFicygoU1tTLmxlbmd0aC0xXS54LVNbMF0ueCkqdS5fbSkvKFMubGVuZ3RoLTEpOzIuNSpNPnImJihrPTkwKSxpKGMsayl9dS5fbGFzdGFuZ2xlPWt9cmV0dXJuIGEoZSksZSsiIGRvbmUifWZ1bmN0aW9uIGwoKXt1Ll9ib3VuZGluZ0JveD1yLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX12YXIgYz1yLnNlbGVjdEFsbCgiZy4iK3opLmRhdGEoUyxMKTtpZighdS5zaG93dGlja2xhYmVsc3x8IWIobikpcmV0dXJuIGMucmVtb3ZlKCksdm9pZCBhKGUpO3ZhciBoLGYsZCx2LHg7IngiPT09Zz8oeD0iYm90dG9tIj09PUI/MTotMSxoPWZ1bmN0aW9uKHQpe3JldHVybiB0LmR4K2oqeH0sdj1uKyhSK0MpKngsZj1mdW5jdGlvbih0KXtyZXR1cm4gdC5keSt2K3QuZm9udFNpemUqKCJib3R0b20iPT09Qj8xOi0uNSl9LGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGIodCkmJjAhPT10JiYxODAhPT10PzA+dCp4PyJlbmQiOiJzdGFydCI6Im1pZGRsZSJ9KTooeD0icmlnaHQiPT09Qj8xOi0xLGY9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZHkrdC5mb250U2l6ZS8yLWoqeH0saD1mdW5jdGlvbih0KXtyZXR1cm4gdC5keCtuKyhSK0MrKDkwPT09TWF0aC5hYnModS50aWNrYW5nbGUpP3QuZm9udFNpemUvMjowKSkqeH0sZD1mdW5jdGlvbih0KXtyZXR1cm4gYih0KSYmOTA9PT1NYXRoLmFicyh0KT8ibWlkZGxlIjoicmlnaHQiPT09Qj8ic3RhcnQiOiJlbmQifSk7dmFyIE09MCxrPTAsVD1bXTtjLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCh6LDEpLmFwcGVuZCgidGV4dCIpLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuZWFjaChmdW5jdGlvbihlKXt2YXIgcj15LnNlbGVjdCh0aGlzKSxuPXQuX3Byb21pc2VzLmxlbmd0aDtyLmNhbGwoQS5zZXRQb3NpdGlvbixoKGUpLGYoZSkpLmNhbGwoQS5mb250LGUuZm9udCxlLmZvbnRTaXplLGUuZm9udENvbG9yKS50ZXh0KGUudGV4dCkuY2FsbCh3LmNvbnZlcnRUb1RzcGFucyksbj10Ll9wcm9taXNlc1tuXSxuP1QucHVzaCh0Ll9wcm9taXNlcy5wb3AoKS50aGVuKGZ1bmN0aW9uKCl7aShyLHUudGlja2FuZ2xlKX0pKTppKHIsdS50aWNrYW5nbGUpfSksYy5leGl0KCkucmVtb3ZlKCksYy5lYWNoKGZ1bmN0aW9uKHQpe009TWF0aC5tYXgoTSx0LmZvbnRTaXplKX0pLGkoYyx1Ll9sYXN0YW5nbGV8fHUudGlja2FuZ2xlKTt2YXIgRT1fLnN5bmNPckFzeW5jKFtvLHMsbF0pO3JldHVybiBFJiZFLnRoZW4mJnQuX3Byb21pc2VzLnB1c2goRSksRX1mdW5jdGlvbiBhKGUpe2lmKCFyKXt2YXIgbixpLG8sYSxzPUUuZ2V0RnJvbUlkKHQsZSksbD15LnNlbGVjdCh0KS5zZWxlY3RBbGwoImcuIitlKyJ0aWNrIiksdT17c2VsZWN0aW9uOmwsc2lkZTpzLnNpZGV9LGg9ZS5jaGFyQXQoMCksZj10Ll9mdWxsTGF5b3V0Ll9zaXplLHA9MS41LGQ9cy50aXRsZWZvbnQuc2l6ZTtpZihsLnNpemUoKSl7dmFyIG09eS5zZWxlY3QobC5ub2RlKCkucGFyZW50Tm9kZSkuYXR0cigidHJhbnNmb3JtIikubWF0Y2goL3RyYW5zbGF0ZVwoKFstXC5cZF0rKSwoWy1cLlxkXSspXCkvKTttJiYodS5vZmZzZXRMZWZ0PSttWzFdLHUub2Zmc2V0VG9wPSttWzJdKX0ieCI9PT1oPyhpPSJmcmVlIj09PXMuYW5jaG9yP3tfb2Zmc2V0OmYudCsoMS0ocy5wb3NpdGlvbnx8MCkpKmYuaCxfbGVuZ3RoOjB9OkUuZ2V0RnJvbUlkKHQscy5hbmNob3IpLG89cy5fb2Zmc2V0K3MuX2xlbmd0aC8yLGE9aS5fb2Zmc2V0KygidG9wIj09PXMuc2lkZT8tMTAtZCoocCsocy5zaG93dGlja2xhYmVscz8xOjApKTppLl9sZW5ndGgrMTArZCoocCsocy5zaG93dGlja2xhYmVscz8xLjU6LjUpKSkscy5yYW5nZXNsaWRlciYmcy5yYW5nZXNsaWRlci52aXNpYmxlJiZzLl9ib3VuZGluZ0JveCYmKGErPShjLmhlaWdodC1jLm1hcmdpbi5iLWMubWFyZ2luLnQpKnMucmFuZ2VzbGlkZXIudGhpY2tuZXNzK3MuX2JvdW5kaW5nQm94LmhlaWdodCksdS5zaWRlfHwodS5zaWRlPSJib3R0b20iKSk6KGk9ImZyZWUiPT09cy5hbmNob3I/e19vZmZzZXQ6Zi5sKyhzLnBvc2l0aW9ufHwwKSpmLncsX2xlbmd0aDowfTpFLmdldEZyb21JZCh0LHMuYW5jaG9yKSxhPXMuX29mZnNldCtzLl9sZW5ndGgvMixvPWkuX29mZnNldCsoInJpZ2h0Ij09PXMuc2lkZT9pLl9sZW5ndGgrMTArZCoocCsocy5zaG93dGlja2xhYmVscz8xOi41KSk6LTEwLWQqKHArKHMuc2hvd3RpY2tsYWJlbHM/LjU6MCkpKSxuPXtyb3RhdGU6Ii05MCIsb2Zmc2V0OjB9LHUuc2lkZXx8KHUuc2lkZT0ibGVmdCIpKSxNLmRyYXcodCxlKyJ0aXRsZSIse3Byb3BDb250YWluZXI6cyxwcm9wTmFtZTpzLl9uYW1lKyIudGl0bGUiLGRmbHROYW1lOmgudG9VcHBlckNhc2UoKSsiIGF4aXMiLGF2b2lkOnUsdHJhbnNmb3JtOm4sYXR0cmlidXRlczp7eDpvLHk6YSwidGV4dC1hbmNob3IiOiJtaWRkbGUifX0pfX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIHQudmlzaWJsZSE9PSEwfHx0LnhheGlzK3QueWF4aXMhPT1lPyExOnguUGxvdHMudHJhY2VJcyh0LCJiYXIiKSYmdC5vcmllbnRhdGlvbj09PXt4OiJoIix5OiJ2In1bZ10/ITA6dC5maWxsJiZ0LmZpbGwuY2hhckF0KHQuZmlsbC5sZW5ndGgtMSk9PT1nfWZ1bmN0aW9uIGwoZSxyLGkpe3ZhciBvPWUuZ3JpZGxheWVyLGE9ZS56ZXJvbGluZWxheWVyLGw9ZVsiaGlkZWdyaWQiK2ddP1tdOlYsYz11Ll9ncmlkcGF0aHx8Ik0wLDAiKygieCI9PT1nPyJ2IjoiaCIpK3IuX2xlbmd0aCxoPW8uc2VsZWN0QWxsKCJwYXRoLiIrSSkuZGF0YSh1LnNob3dncmlkPT09ITE/W106bCxMKTtpZihoLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChJLDEpLmNsYXNzZWQoImNyaXNwIiwxKS5hdHRyKCJkIixjKS5lYWNoKGZ1bmN0aW9uKHQpe3UuemVyb2xpbmUmJigibGluZWFyIj09PXUudHlwZXx8Ii0iPT09dS50eXBlKSYmTWF0aC5hYnModC54KTx1LmR0aWNrLzEwMCYmeS5zZWxlY3QodGhpcykucmVtb3ZlKCl9KSxoLmF0dHIoInRyYW5zZm9ybSIscCkuY2FsbChrLnN0cm9rZSx1LmdyaWRjb2xvcnx8IiNkZGQiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixEKyJweCIpLGguZXhpdCgpLnJlbW92ZSgpLGEpe2Zvcih2YXIgZj0hMSxkPTA7ZDx0Ll9mdWxsRGF0YS5sZW5ndGg7ZCsrKWlmKHModC5fZnVsbERhdGFbZF0saSkpe2Y9ITA7YnJlYWt9dmFyIG09dS5yYW5nZVswXSp1LnJhbmdlWzFdPD0wJiZ1Lnplcm9saW5lJiYoImxpbmVhciI9PT11LnR5cGV8fCItIj09PXUudHlwZSkmJmwubGVuZ3RoJiYoZnx8bih7eDowfSl8fCF1LnNob3dsaW5lKSx2PWEuc2VsZWN0QWxsKCJwYXRoLiIrUCkuZGF0YShtP1t7eDowfV06W10pO3YuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKFAsMSkuY2xhc3NlZCgiemwiLDEpLmNsYXNzZWQoImNyaXNwIiwxKS5hdHRyKCJkIixjKSx2LmF0dHIoInRyYW5zZm9ybSIscCkuY2FsbChrLnN0cm9rZSx1Lnplcm9saW5lY29sb3J8fGsuZGVmYXVsdExpbmUpLnN0eWxlKCJzdHJva2Utd2lkdGgiLE8rInB4Iiksdi5leGl0KCkucmVtb3ZlKCl9fXZhciB1LGM9dC5fZnVsbExheW91dCxoPSExO2lmKCJvYmplY3QiPT10eXBlb2YgZSl1PWUsZT11Ll9pZCxoPSEwO2Vsc2UgaWYodT1ULmdldEZyb21JZCh0LGUpLCJyZWRyYXciPT09ZSYmYy5fcGFwZXIuc2VsZWN0QWxsKCJnLnN1YnBsb3QiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPWMuX3Bsb3RzW3RdLHI9ZS54KCksbj1lLnkoKTtlLnhheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIityLl9pZCsidGljayIpLnJlbW92ZSgpLGUueWF4aXNsYXllci5zZWxlY3RBbGwoIi4iK24uX2lkKyJ0aWNrIikucmVtb3ZlKCksZS5ncmlkbGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksZS56ZXJvbGluZWxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnJlbW92ZSgpfSksIWV8fCJyZWRyYXciPT09ZSlyZXR1cm4gXy5zeW5jT3JBc3luYyhULmxpc3QodCwiIiwhMCkubWFwKGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe2lmKHIuX2lkKXt2YXIgbj1ULmRvVGlja3ModCxyLl9pZCk7cmV0dXJuInJlZHJhdyI9PT1lJiYoci5fcj1yLnJhbmdlLnNsaWNlKCkpLG59fX0pKTt1LnRpY2tmb3JtYXR8fCgtMT09PVsibm9uZSIsImUiLCJFIiwicG93ZXIiLCJTSSIsIkIiXS5pbmRleE9mKHUuZXhwb25lbnRmb3JtYXQpJiYodS5leHBvbmVudGZvcm1hdD0iZSIpLC0xPT09WyJhbGwiLCJmaXJzdCIsImxhc3QiLCJub25lIl0uaW5kZXhPZih1LnNob3dleHBvbmVudCkmJih1LnNob3dleHBvbmVudD0iYWxsIikpLHUucmFuZ2U9Wyt1LnJhbmdlWzBdLCt1LnJhbmdlWzFdXSx1LnNldFNjYWxlKCk7dmFyIGYscCxkLG0sZz1lLmNoYXJBdCgwKSx2PVQuY291bnRlckxldHRlcihlKSxTPVQuY2FsY1RpY2tzKHUpLEw9ZnVuY3Rpb24odCl7cmV0dXJuIHQudGV4dCt0LngrdS5taXJyb3J9LHo9ZSsidGljayIsST1lKyJncmlkIixQPWUrInpsIixDPSh1LmxpbmV3aWR0aHx8MSkvMixSPSgib3V0c2lkZSI9PT11LnRpY2tzP3UudGlja2xlbjoxKSsodS5saW5ld2lkdGh8fDApLGo9MCxEPUEuY3Jpc3BSb3VuZCh0LHUuZ3JpZHdpZHRoLDEpLE89QS5jcmlzcFJvdW5kKHQsdS56ZXJvbGluZXdpZHRoLEQpLEY9QS5jcmlzcFJvdW5kKHQsdS50aWNrd2lkdGgsMSk7aWYodS5fY291bnRlcmFuZ2xlJiYib3V0c2lkZSI9PT11LnRpY2tzKXt2YXIgTj11Ll9jb3VudGVyYW5nbGUqTWF0aC5QSS8xODA7Uj11LnRpY2tsZW4qTWF0aC5jb3MoTikrKHUubGluZXdpZHRofHwwKSxqPXUudGlja2xlbipNYXRoLnNpbihOKX1pZigieCI9PT1nKWY9WyJib3R0b20iLCJ0b3AiXSxwPWZ1bmN0aW9uKHQpe3JldHVybiJ0cmFuc2xhdGUoIit1LmwycCh0LngpKyIsMCkifSxkPWZ1bmN0aW9uKHQsZSl7aWYodS5fY291bnRlcmFuZ2xlKXt2YXIgcj11Ll9jb3VudGVyYW5nbGUqTWF0aC5QSS8xODA7cmV0dXJuIk0wLCIrdCsibCIrTWF0aC5zaW4ocikqZSsiLCIrTWF0aC5jb3MocikqZX1yZXR1cm4iTTAsIit0KyJ2IitlfTtlbHNle2lmKCJ5IiE9PWcpcmV0dXJuIHZvaWQgXy53YXJuKCJVbnJlY29nbml6ZWQgZG9UaWNrcyBheGlzOiIsZSk7Zj1bImxlZnQiLCJyaWdodCJdLHA9ZnVuY3Rpb24odCl7cmV0dXJuInRyYW5zbGF0ZSgwLCIrdS5sMnAodC54KSsiKSJ9LGQ9ZnVuY3Rpb24odCxlKXtpZih1Ll9jb3VudGVyYW5nbGUpe3ZhciByPXUuX2NvdW50ZXJhbmdsZSpNYXRoLlBJLzE4MDtyZXR1cm4iTSIrdCsiLDBsIitNYXRoLmNvcyhyKSplKyIsIistTWF0aC5zaW4ocikqZX1yZXR1cm4iTSIrdCsiLDBoIitlfX12YXIgQj11LnNpZGV8fGZbMF0sVT1bLTEsMSxCPT09ZlsxXT8xOi0xXTsiaW5zaWRlIiE9PXUudGlja3M9PSgieCI9PT1nKSYmKFU9VS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuLXR9KSk7dmFyIFY9Uy5maWx0ZXIobik7aWYoaCl7aWYoaSh1Ll9heGlzbGF5ZXIsZCh1Ll9wb3MrQypVWzJdLFVbMl0qdS50aWNrbGVuKSksdS5fY291bnRlcmF4aXMpe3ZhciBxPXtncmlkbGF5ZXI6dS5fZ3JpZGxheWVyLHplcm9saW5lbGF5ZXI6dS5femVyb2xpbmVsYXllcn07bChxLHUuX2NvdW50ZXJheGlzKX1yZXR1cm4gbyh1Ll9heGlzbGF5ZXIsdS5fcG9zKX12YXIgRz1ULmdldFN1YnBsb3RzKHQsdSkubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPWMuX3Bsb3RzW3RdO2lmKGMuX2hhcygiY2FydGVzaWFuIikpe3ZhciByPWVbZysiYXhpc2xheWVyIl0sbj11Ll9saW5lcG9zaXRpb25zW3RdfHxbXSxhPWVbdl0oKSxzPWEuX2lkPT09dS5hbmNob3IsaD1bITEsITEsITFdLHA9IiI7aWYoImFsbHRpY2tzIj09PXUubWlycm9yP2g9WyEwLCEwLCExXTpzJiYoInRpY2tzIj09PXUubWlycm9yP2g9WyEwLCEwLCExXTpoW2YuaW5kZXhPZihCKV09ITApLHUubWlycm9ycylmb3IobT0wOzI+bTttKyspe3ZhciB5PXUubWlycm9yc1thLl9pZCtmW21dXTsidGlja3MiIT09eSYmImxhYmVscyIhPT15fHwoaFttXT0hMCl9cmV0dXJuIHZvaWQgMCE9PW5bMl0mJihoWzJdPSEwKSxoLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgcj1uW2VdLGk9VVtlXTt0JiZiKHIpJiYocCs9ZChyK0MqaSxpKnUudGlja2xlbikpfSksaShyLHApLGwoZSxhLHQpLG8ocixuWzNdKX19KS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQudGhlbn0pO3JldHVybiBHLmxlbmd0aD9Qcm9taXNlLmFsbChHKTowfSxULnN3YXA9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9cCh0LGUpLG49MDtuPHIubGVuZ3RoO24rKyltKHQscltuXS54LHJbbl0ueSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIjo1NjksIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjYwNCwiLi4vLi4vcGxvdGx5Ijo2MTIsIi4vYXhpc19pZHMiOjYxNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjI0LCIuL2xheW91dF9kZWZhdWx0cyI6NjI1LCIuL3NldF9jb252ZXJ0Ijo2MjksZDM6MTI0LCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNjE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtpZigiLSI9PT10LnR5cGUpe3ZhciByPXQuX2lkLG49ci5jaGFyQXQoMCk7LTEhPT1yLmluZGV4T2YoInNjZW5lIikmJihyPW4pO3ZhciBsPXMoZSxyLG4pO2lmKGwpe2lmKCJoaXN0b2dyYW0iPT09bC50eXBlJiZuPT09e3Y6InkiLGg6IngifVtsLm9yaWVudGF0aW9ufHwidiJdKXJldHVybiB2b2lkKHQudHlwZT0ibGluZWFyIik7aWYobyhsLG4pKXtmb3IodmFyIHUsYz1pKGwpLGg9W10sZj0wO2Y8ZS5sZW5ndGg7ZisrKXU9ZVtmXSxkLnRyYWNlSXModSwiYm94IikmJih1W24rImF4aXMiXXx8bik9PT1yJiYodm9pZCAwIT09dVtjXT9oLnB1c2godVtjXVswXSk6dm9pZCAwIT09dS5uYW1lP2gucHVzaCh1Lm5hbWUpOmgucHVzaCgidGV4dCIpKTt0LnR5cGU9YShoKX1lbHNlIHQudHlwZT1hKGxbbl18fFtsW24rIjAiXV0pfX19ZnVuY3Rpb24gaSh0KXtyZXR1cm57djoieCIsaDoieSJ9W3Qub3JpZW50YXRpb258fCJ2Il19ZnVuY3Rpb24gbyh0LGUpe3ZhciByPWkodCk7cmV0dXJuIGQudHJhY2VJcyh0LCJib3giKSYmZT09PXImJnZvaWQgMD09PXRbcl0mJnZvaWQgMD09PXRbcisiMCJdfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHUodCk/ImRhdGUiOmModCk/ImNhdGVnb3J5IjpsKHQpPyJsaW5lYXIiOiItIn1mdW5jdGlvbiBzKHQsZSxyKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpZigoaVtyKyJheGlzIl18fHIpPT09ZSl7aWYobyhpLHIpKXJldHVybiBpO2lmKChpW3JdfHxbXSkubGVuZ3RofHxpW3IrIjAiXSlyZXR1cm4gaX19fWZ1bmN0aW9uIGwodCl7aWYoIXQpcmV0dXJuITE7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoaCh0W2VdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB1KHQpe2Zvcih2YXIgZSxyPTAsbj0wLGk9TWF0aC5tYXgoMSwodC5sZW5ndGgtMSkvMWUzKSxvPTA7bzx0Lmxlbmd0aDtvKz1pKWU9dFtNYXRoLnJvdW5kKG8pXSxwLmlzRGF0ZVRpbWUoZSkmJihyKz0xKSxoKGUpJiYobis9MSk7cmV0dXJuIHI+MipufWZ1bmN0aW9uIGModCl7Zm9yKHZhciBlLHI9TWF0aC5tYXgoMSwodC5sZW5ndGgtMSkvMWUzKSxuPTAsaT0wLG89MDtvPHQubGVuZ3RoO28rPXIpZT1NKHRbTWF0aC5yb3VuZChvKV0pLGgoZSk/bisrOiJzdHJpbmciPT10eXBlb2YgZSYmIiIhPT1lJiYiTm9uZSIhPT1lJiZpKys7cmV0dXJuIGk+MipufXZhciBoPXQoImZhc3QtaXNudW1lcmljIiksZj10KCJ0aW55Y29sb3IyIikubWl4LHA9dCgiLi4vLi4vbGliIiksZD10KCIuLi9wbG90cyIpLG09dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikubGlnaHRGcmFjdGlvbixnPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSx2PXQoIi4vdGlja192YWx1ZV9kZWZhdWx0cyIpLHk9dCgiLi90aWNrX21hcmtfZGVmYXVsdHMiKSxiPXQoIi4vdGlja19sYWJlbF9kZWZhdWx0cyIpLHg9dCgiLi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyIpLF89dCgiLi9zZXRfY29udmVydCIpLHc9dCgiLi9vcmRlcmVkX2NhdGVnb3JpZXMiKSxNPXQoIi4vY2xlYW5fZGF0dW0iKSxrPXQoIi4vYXhpc19pZHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7ZnVuY3Rpb24gbyhyLG4pe3JldHVybiBwLmNvZXJjZTIodCxlLGcscixuKX12YXIgYT1pLmxldHRlcixzPWkuZm9udHx8e30sbD0iQ2xpY2sgdG8gZW50ZXIgIisoaS50aXRsZXx8YS50b1VwcGVyQ2FzZSgpKyIgYXhpcyIpKyIgdGl0bGUiO2kubmFtZSYmKGUuX25hbWU9aS5uYW1lLGUuX2lkPWsubmFtZTJpZChpLm5hbWUpKTt2YXIgdT1yKCJ0eXBlIik7Ii0iPT09dSYmKG4oZSxpLmRhdGEpLCItIj09PWUudHlwZT9lLnR5cGU9ImxpbmVhciI6dT10LnR5cGU9ZS50eXBlKSxfKGUpO3ZhciBjPXIoImNvbG9yIiksZD1jPT09dC5jb2xvcj9jOnMuY29sb3I7cigidGl0bGUiLGwpLHAuY29lcmNlRm9udChyLCJ0aXRsZWZvbnQiLHtmYW1pbHk6cy5mYW1pbHksc2l6ZTpNYXRoLnJvdW5kKDEuMipzLnNpemUpLGNvbG9yOmR9KTt2YXIgTT0yPT09KHQucmFuZ2V8fFtdKS5sZW5ndGgmJmgodC5yYW5nZVswXSkmJmgodC5yYW5nZVsxXSksQT1yKCJhdXRvcmFuZ2UiLCFNKTtBJiZyKCJyYW5nZW1vZGUiKTt2YXIgVD1yKCJyYW5nZSIsWy0xLCJ4Ij09PWE/Njo0XSk7VFswXT09PVRbMV0mJihlLnJhbmdlPVtUWzBdLTEsVFswXSsxXSkscC5ub25lT3JBbGwodC5yYW5nZSxlLnJhbmdlLFswLDFdKSxyKCJmaXhlZHJhbmdlIiksdih0LGUscix1KSxiKHQsZSxyLHUsaSkseSh0LGUscixpKSx4KHQsZSxyKTt2YXIgRT1vKCJsaW5lY29sb3IiLGMpLFM9bygibGluZXdpZHRoIiksTD1yKCJzaG93bGluZSIsISFFfHwhIVMpO0x8fChkZWxldGUgZS5saW5lY29sb3IsZGVsZXRlIGUubGluZXdpZHRoKSwoTHx8ZS50aWNrcykmJnIoIm1pcnJvciIpO3ZhciB6PW8oImdyaWRjb2xvciIsZihjLGkuYmdDb2xvcixtKS50b1JnYlN0cmluZygpKSxJPW8oImdyaWR3aWR0aCIpLFA9cigic2hvd2dyaWQiLGkuc2hvd0dyaWR8fCEhenx8ISFJKTtQfHwoZGVsZXRlIGUuZ3JpZGNvbG9yLGRlbGV0ZSBlLmdyaWR3aWR0aCk7dmFyIEM9bygiemVyb2xpbmVjb2xvciIsYyksUj1vKCJ6ZXJvbGluZXdpZHRoIiksaj1yKCJ6ZXJvbGluZSIsaS5zaG93R3JpZHx8ISFDfHwhIVIpO3JldHVybiBqfHwoZGVsZXRlIGUuemVyb2xpbmVjb2xvcixkZWxldGUgZS56ZXJvbGluZXdpZHRoKSxlLl9pbml0aWFsQ2F0ZWdvcmllcz0iY2F0ZWdvcnkiPT09dT93KGEsZS5jYXRlZ29yeW9yZGVyLGUuY2F0ZWdvcnlhcnJheSxpLmRhdGEpOltdLGV9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTA1LCIuLi8uLi9saWIiOjU5MSwiLi4vcGxvdHMiOjY3MSwiLi9heGlzX2lkcyI6NjE3LCIuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIjo2MTgsIi4vY2xlYW5fZGF0dW0iOjYxOSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjI0LCIuL29yZGVyZWRfY2F0ZWdvcmllcyI6NjI2LCIuL3NldF9jb252ZXJ0Ijo2MjksIi4vdGlja19sYWJlbF9kZWZhdWx0cyI6NjMwLCIuL3RpY2tfbWFya19kZWZhdWx0cyI6NjMxLCIuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjYzMiwiZmFzdC1pc251bWVyaWMiOjEyOCx0aW55Y29sb3IyOjQ3N31dLDYxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtmdW5jdGlvbiBuKHQscil7Zm9yKHZhciBuPU9iamVjdC5rZXlzKHQpLGk9L15beHl6XWF4aXNbMC05XSovLG89W10sYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgcz1uW2FdO2UmJnMuY2hhckF0KDApIT09ZXx8aS50ZXN0KHMpJiZvLnB1c2gocitzKX1yZXR1cm4gby5zb3J0KCl9dmFyIG89dC5fZnVsbExheW91dDtpZighbylyZXR1cm5bXTt2YXIgYT1uKG8sIiIpO2lmKHIpcmV0dXJuIGE7Zm9yKHZhciBzPWkuZ2V0U3VicGxvdElkcyhvLCJnbDNkIil8fFtdLGw9MDtsPHMubGVuZ3RoO2wrKyl7dmFyIHU9c1tsXTthPWEuY29uY2F0KG4ob1t1XSx1KyIuIikpfXJldHVybiBhfXZhciBpPXQoIi4uL3Bsb3RzIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4vY29uc3RhbnRzIik7ci5pZDJuYW1lPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5tYXRjaChhLkFYX0lEX1BBVFRFUk4pKXt2YXIgZT10LnN1YnN0cigxKTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksdC5jaGFyQXQoMCkrImF4aXMiK2V9fSxyLm5hbWUyaWQ9ZnVuY3Rpb24odCl7aWYodC5tYXRjaChhLkFYX05BTUVfUEFUVEVSTikpe3ZhciBlPXQuc3Vic3RyKDUpO3JldHVybiIxIj09PWUmJihlPSIiKSx0LmNoYXJBdCgwKStlfX0sci5jbGVhbklkPWZ1bmN0aW9uKHQsZSl7aWYodC5tYXRjaChhLkFYX0lEX1BBVFRFUk4pJiYoIWV8fHQuY2hhckF0KDApPT09ZSkpe3ZhciByPXQuc3Vic3RyKDEpLnJlcGxhY2UoL14wKy8sIiIpO3JldHVybiIxIj09PXImJihyPSIiKSx0LmNoYXJBdCgwKStyfX0sci5saXN0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbih0LGUscikubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBvLm5lc3RlZFByb3BlcnR5KHQuX2Z1bGxMYXlvdXQsZSkuZ2V0KCl9KX0sci5saXN0SWRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlLCEwKS5tYXAoci5uYW1lMmlkKX0sci5nZXRGcm9tSWQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXQuX2Z1bGxMYXlvdXQ7cmV0dXJuIngiPT09bj9lPWUucmVwbGFjZSgveVswLTldKi8sIiIpOiJ5Ij09PW4mJihlPWUucmVwbGFjZSgveFswLTldKi8sIiIpKSxpW3IuaWQybmFtZShlKV19LHIuZ2V0RnJvbVRyYWNlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgbz10Ll9mdWxsTGF5b3V0LGE9bnVsbDtpZihpLnRyYWNlSXMoZSwiZ2wzZCIpKXt2YXIgcz1lLnNjZW5lOyJzY2VuZSI9PT1zLnN1YnN0cigwLDUpJiYoYT1vW3NdW24rImF4aXMiXSl9ZWxzZSBhPXIuZ2V0RnJvbUlkKHQsZVtuKyJheGlzIl18fG4pO3JldHVybiBhfX0seyIuLi8uLi9saWIiOjU5MSwiLi4vcGxvdHMiOjY3MSwiLi9jb25zdGFudHMiOjYyMH1dLDYxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKCJjYXRlZ29yeSI9PT1lLnR5cGUpe3ZhciBuLGk9dC5jYXRlZ29yeWFycmF5LG89QXJyYXkuaXNBcnJheShpKSYmaS5sZW5ndGg+MDtvJiYobj0iYXJyYXkiKTt2YXIgYT1yKCJjYXRlZ29yeW9yZGVyIixuKTsiYXJyYXkiPT09YSYmcigiY2F0ZWdvcnlhcnJheSIpLG98fCJhcnJheSIhPT1hfHwoZS5jYXRlZ29yeW9yZGVyPSJ0cmFjZSIpfX19LHt9XSw2MTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt0cnl7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmdC5nZXRUaW1lKXJldHVybiBpLm1zMkRhdGVUaW1lKHQpO2lmKCJzdHJpbmciIT10eXBlb2YgdCYmIW4odCkpcmV0dXJuIiI7dD10LnRvU3RyaW5nKCkucmVwbGFjZSgvWyciJSwkIyBdL2csIiIpfWNhdGNoKGUpe2kuZXJyb3IoZSx0KX1yZXR1cm4gdH19LHsiLi4vLi4vbGliIjo1OTEsImZhc3QtaXNudW1lcmljIjoxMjh9XSw2MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtpZFJlZ2V4Ont4Oi9eeChbMi05XXxbMS05XVswLTldKyk/JC8seTovXnkoWzItOV18WzEtOV1bMC05XSspPyQvfSxhdHRyUmVnZXg6e3g6L154YXhpcyhbMi05XXxbMS05XVswLTldKyk/JC8seTovXnlheGlzKFsyLTldfFsxLTldWzAtOV0rKT8kL30sQkFETlVNOnZvaWQgMCx4QXhpc01hdGNoOi9eeGF4aXNbMC05XSokLyx5QXhpc01hdGNoOi9eeWF4aXNbMC05XSokLyxBWF9JRF9QQVRURVJOOi9eW3h5el1bMC05XSokLyxBWF9OQU1FX1BBVFRFUk46L15beHl6XWF4aXNbMC05XSokLyxEQkxDTElDS0RFTEFZOjMwMCxNSU5EUkFHOjgsTUlOU0VMRUNUOjEyLE1JTlpPT006MjAsRFJBR0dFUlNJWkU6MjAsTUFYRElTVDoyMCxZQU5HTEU6NjAsSE9WRVJBUlJPV1NJWkU6NixIT1ZFUlRFWFRQQUQ6MyxIT1ZFUkZPTlRTSVpFOjEzLEhPVkVSRk9OVDoiQXJpYWwsIHNhbnMtc2VyaWYiLEhPVkVSTUlOVElNRTo1MCxCRU5EUFg6MS41LFJFRFJBV0RFTEFZOjUwfX0se31dLDYyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHIsbj10LnJhbmdlW2VdLGk9TWF0aC5hYnMobi10LnJhbmdlWzEtZV0pO3JldHVybiJkYXRlIj09PXQudHlwZT9jLm1zMkRhdGVUaW1lKG4saSk6ImxvZyI9PT10LnR5cGU/KHI9TWF0aC5jZWlsKE1hdGgubWF4KDAsLU1hdGgubG9nKGkpL01hdGguTE4xMCkpKzMscy5mb3JtYXQoIi4iK3IrImciKShNYXRoLnBvdygxMCxuKSkpOihyPU1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnMobikpL01hdGguTE4xMCktTWF0aC5mbG9vcihNYXRoLmxvZyhpKS9NYXRoLkxOMTApKzQscy5mb3JtYXQoIi4iK1N0cmluZyhyKSsiZyIpKG4pKX1mdW5jdGlvbiBpKHQsZSl7cmV0dXJuIHQ/Im5zZXciPT09dD8icGFuIj09PWU/Im1vdmUiOiJjcm9zc2hhaXIiOnQudG9Mb3dlckNhc2UoKSsiLXJlc2l6ZSI6InBvaW50ZXIifWZ1bmN0aW9uIG8odCl7cy5zZWxlY3QodCkuc2VsZWN0QWxsKCIuem9vbWJveCwuanMtem9vbWJveC1iYWNrZHJvcCwuanMtem9vbWJveC1tZW51LC56b29tYm94LWNvcm5lcnMiKS5yZW1vdmUoKX1mdW5jdGlvbiBhKHQpe3ZhciBlPVsibGFzc28iLCJzZWxlY3QiXTtyZXR1cm4tMSE9PWUuaW5kZXhPZih0KX12YXIgcz10KCJkMyIpLGw9dCgidGlueWNvbG9yMiIpLHU9dCgiLi4vLi4vcGxvdGx5IiksYz10KCIuLi8uLi9saWIiKSxoPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGY9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHA9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksZD10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksbT10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50IiksZz10KCIuL2F4ZXMiKSx2PXQoIi4vc2VsZWN0IikseT10KCIuL2NvbnN0YW50cyIpLGI9ITA7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMseCxfLHcsTSl7ZnVuY3Rpb24gayh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKCF0W3JdLmZpeGVkcmFuZ2UpcmV0dXJuIGU7cmV0dXJuIiJ9ZnVuY3Rpb24gQSh0KXt0WzBdPU51bWJlcih0WzBdKSx0WzFdPU51bWJlcih0WzFdKX1mdW5jdGlvbiBUKGUscixuKXt2YXIgaT1ydC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpdD1yLWkubGVmdCxvdD1uLWkudG9wLGF0PXtsOml0LHI6aXQsdzowLHQ6b3QsYjpvdCxoOjB9LHN0PXQuX2htcGl4Y291bnQ/dC5faG1sdW1jb3VudC90Ll9obXBpeGNvdW50OmwodC5fZnVsbExheW91dC5wbG90X2JnY29sb3IpLmdldEx1bWluYW5jZSgpLGx0PSJNMCwwSCIrVisiViIrcSsiSDBWMCIsdXQ9ITEsY3Q9Inh5IixodD1wdC5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3giKS5zdHlsZSh7ZmlsbDpzdD4uMj8icmdiYSgwLDAsMCwwKSI6InJnYmEoMjU1LDI1NSwyNTUsMCkiLCJzdHJva2Utd2lkdGgiOjB9KS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitkdCsiLCAiK210KyIpIikuYXR0cigiZCIsbHQrIloiKSxmdD1wdC5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3gtY29ybmVycyIpLnN0eWxlKHtmaWxsOmYuYmFja2dyb3VuZCxzdHJva2U6Zi5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxLG9wYWNpdHk6MH0pLmF0dHIoInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgiK2R0KyIsICIrbXQrIikiKS5hdHRyKCJkIiwiTTAsMFoiKSxFKCk7Zm9yKHZhciBvPTA7bzxRLmxlbmd0aDtvKyspQShRW29dLnJhbmdlKX1mdW5jdGlvbiBFKCl7cHQuc2VsZWN0QWxsKCIuc2VsZWN0LW91dGxpbmUiKS5yZW1vdmUoKX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9TWF0aC5tYXgoMCxNYXRoLm1pbihWLHQraXQpKSxuPU1hdGgubWF4KDAsTWF0aC5taW4ocSxlK290KSksaT1NYXRoLmFicyhyLWl0KSxvPU1hdGguYWJzKG4tb3QpLGE9TWF0aC5mbG9vcihNYXRoLm1pbihvLGksSCkvMik7YXQubD1NYXRoLm1pbihpdCxyKSxhdC5yPU1hdGgubWF4KGl0LHIpLGF0LnQ9TWF0aC5taW4ob3QsbiksYXQuYj1NYXRoLm1heChvdCxuKSwhSnx8bzxNYXRoLm1pbihNYXRoLm1heCguNippLEcpLEgpP0c+aT8oY3Q9IiIsYXQucj1hdC5sLGF0LnQ9YXQuYixmdC5hdHRyKCJkIiwiTTAsMFoiKSk6KGF0LnQ9MCxhdC5iPXEsY3Q9IngiLGZ0LmF0dHIoImQiLCJNIisoYXQubC0uNSkrIiwiKyhvdC1ILS41KSsiaC0zdiIrKDIqSCsxKSsiaDNaTSIrKGF0LnIrLjUpKyIsIisob3QtSC0uNSkrImgzdiIrKDIqSCsxKSsiaC0zWiIpKTohS3x8aTxNYXRoLm1pbiguNipvLEgpPyhhdC5sPTAsYXQucj1WLGN0PSJ5IixmdC5hdHRyKCJkIiwiTSIrKGl0LUgtLjUpKyIsIisoYXQudC0uNSkrInYtM2giKygyKkgrMSkrInYzWk0iKyhpdC1ILS41KSsiLCIrKGF0LmIrLjUpKyJ2M2giKygyKkgrMSkrInYtM1oiKSk6KGN0PSJ4eSIsZnQuYXR0cigiZCIsIk0iKyhhdC5sLTMuNSkrIiwiKyhhdC50LS41K2EpKyJoM3YiKy1hKyJoIithKyJ2LTNoLSIrKGErMykrIlpNIisoYXQuciszLjUpKyIsIisoYXQudC0uNSthKSsiaC0zdiIrLWErImgiKy1hKyJ2LTNoIisoYSszKSsiWk0iKyhhdC5yKzMuNSkrIiwiKyhhdC5iKy41LWEpKyJoLTN2IithKyJoIistYSsidjNoIisoYSszKSsiWk0iKyhhdC5sLTMuNSkrIiwiKyhhdC5iKy41LWEpKyJoM3YiK2ErImgiK2ErInYzaC0iKyhhKzMpKyJaIikpLGF0Lnc9YXQuci1hdC5sLGF0Lmg9YXQuYi1hdC50LGh0LmF0dHIoImQiLGx0KyJNIithdC5sKyIsIithdC50KyJ2IithdC5oKyJoIithdC53KyJ2LSIrYXQuaCsiaC0iK2F0LncrIloiKSx1dHx8KGh0LnRyYW5zaXRpb24oKS5zdHlsZSgiZmlsbCIsc3Q+LjI/InJnYmEoMCwwLDAsMC40KSI6InJnYmEoMjU1LDI1NSwyNTUsMC4zKSIpLmR1cmF0aW9uKDIwMCksZnQudHJhbnNpdGlvbigpLnN0eWxlKCJvcGFjaXR5IiwxKS5kdXJhdGlvbigyMDApLHV0PSEwKX1mdW5jdGlvbiBMKHQsZSxyKXt2YXIgbixpLG87Zm9yKG49MDtuPHQubGVuZ3RoO24rKylpPXRbbl0saS5maXhlZHJhbmdlfHwobz1pLnJhbmdlLGkucmFuZ2U9W29bMF0rKG9bMV0tb1swXSkqZSxvWzBdKyhvWzFdLW9bMF0pKnJdKX1mdW5jdGlvbiB6KGUscil7cmV0dXJuIE1hdGgubWluKGF0LmgsYXQudyk8MipHPygyPT09ciYmaigpLG8odCkpOigieHkiIT09Y3QmJiJ4IiE9PWN0fHxMKEIsYXQubC9WLGF0LnIvViksInh5IiE9PWN0JiYieSIhPT1jdHx8TChVLChxLWF0LmIpL3EsKHEtYXQudCkvcSksbyh0KSxEKGN0KSx2b2lkKGImJnQuZGF0YSYmdC5fY29udGV4dC5zaG93VGlwcyYmKGMubm90aWZpZXIoIkRvdWJsZS1jbGljayB0bzxicj56b29tIGJhY2sgb3V0IiwibG9uZyIpLGI9ITEpKSl9ZnVuY3Rpb24gSShlLHIpe3ZhciBpPTE9PT0odytNKS5sZW5ndGg7aWYoZSlEKCk7ZWxzZSBpZigyIT09cnx8aSl7aWYoMT09PXImJmkpe3ZhciBvPXc/VVswXTpCWzBdLGE9InMiPT09d3x8InciPT09TT8wOjEscz1vLl9uYW1lKyIucmFuZ2VbIithKyJdIixsPW4obyxhKSxjPSJsZWZ0IixmPSJtaWRkbGUiO2lmKG8uZml4ZWRyYW5nZSlyZXR1cm47dz8oZj0ibiI9PT13PyJ0b3AiOiJib3R0b20iLCJyaWdodCI9PT1vLnNpZGUmJihjPSJyaWdodCIpKToiZSI9PT1NJiYoYz0icmlnaHQiKSxldC5jYWxsKGgubWFrZUVkaXRhYmxlLG51bGwse2ltbWVkaWF0ZTohMCxiYWNrZ3JvdW5kOkYucGFwZXJfYmdjb2xvcix0ZXh0OlN0cmluZyhsKSxmaWxsOm8udGlja2ZvbnQ/by50aWNrZm9udC5jb2xvcjoiIzQ0NCIsaG9yaXpvbnRhbEFsaWduOmMsdmVydGljYWxBbGlnbjpmfSkub24oImVkaXQiLGZ1bmN0aW9uKGUpe3ZhciByPSJjYXRlZ29yeSI9PT1vLnR5cGU/by5jMmwoZSk6by5kMmwoZSk7dm9pZCAwIT09ciYmdS5yZWxheW91dCh0LHMscil9KX19ZWxzZSBqKCl9ZnVuY3Rpb24gUChlKXtmdW5jdGlvbiByKHQsZSxyKXtpZighdC5maXhlZHJhbmdlKXtBKHQucmFuZ2UpO3ZhciBuPXQucmFuZ2UsaT1uWzBdKyhuWzFdLW5bMF0pKmU7dC5yYW5nZT1baSsoblswXS1pKSpyLGkrKG5bMV0taSkqcl19fWlmKHQuX2NvbnRleHQuc2Nyb2xsWm9vbXx8Ri5fZW5hYmxlc2Nyb2xsem9vbSl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIucGxvdGx5Iik7aWYoIShuLnNjcm9sbEhlaWdodC1uLmNsaWVudEhlaWdodD4xMHx8bi5zY3JvbGxXaWR0aC1uLmNsaWVudFdpZHRoPjEwKSl7Y2xlYXJUaW1lb3V0KHZ0KTt2YXIgaT0tZS5kZWx0YVk7aWYoaXNGaW5pdGUoaSl8fChpPWUud2hlZWxEZWx0YS8xMCksIWlzRmluaXRlKGkpKXJldHVybiB2b2lkIGMubG9nKCJEaWQgbm90IGZpbmQgd2hlZWwgbW90aW9uIGF0dHJpYnV0ZXM6ICIsZSk7dmFyIG8sYT1NYXRoLmV4cCgtTWF0aC5taW4oTWF0aC5tYXgoaSwtMjApLDIwKS8xMDApLHM9YnQuZHJhZ2xheWVyLnNlbGVjdCgiLm5zZXdkcmFnIikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGw9KGUuY2xpZW50WC1zLmxlZnQpL3Mud2lkdGgsdT1ndFswXStndFsyXSpsLGg9KHMuYm90dG9tLWUuY2xpZW50WSkvcy5oZWlnaHQsZj1ndFsxXStndFszXSooMS1oKTtpZihNKXtmb3Iobz0wO288Qi5sZW5ndGg7bysrKXIoQltvXSxsLGEpO2d0WzJdKj1hLGd0WzBdPXUtZ3RbMl0qbH1pZih3KXtmb3Iobz0wO288VS5sZW5ndGg7bysrKXIoVVtvXSxoLGEpO2d0WzNdKj1hLGd0WzFdPWYtZ3RbM10qKDEtaCl9cmV0dXJuIE8oZ3QpLFIodyxNKSx2dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Z3Q9WzAsMCxWLHFdLEQoKX0seXQpLGMucGF1c2VFdmVudChlKX19fWZ1bmN0aW9uIEModCxlKXtmdW5jdGlvbiByKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07bi5maXhlZHJhbmdlfHwobi5yYW5nZT1bbi5fclswXS1lL24uX20sbi5fclsxXS1lL24uX21dKX19ZnVuY3Rpb24gbih0KXtyZXR1cm4gMS0odD49MD9NYXRoLm1pbih0LC45KToxLygxL01hdGgubWF4KHQsLS4zKSszLjIyMikpfWZ1bmN0aW9uIGkodCxlLHIpe2Zvcih2YXIgaT0xLWUsbz0wLGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIHM9dFthXTtzLmZpeGVkcmFuZ2V8fChvPWEscy5yYW5nZVtlXT1zLl9yW2ldKyhzLl9yW2VdLXMuX3JbaV0pL24oci9zLl9sZW5ndGgpKX1yZXR1cm4gdFtvXS5fbGVuZ3RoKih0W29dLl9yW2VdLXRbb10ucmFuZ2VbZV0pLyh0W29dLl9yW2VdLXRbb10uX3JbaV0pfXJldHVybiJldyI9PT1LfHwibnMiPT09Sj8oSyYmcihCLHQpLEomJnIoVSxlKSxPKFtLPy10OjAsSj8tZTowLFYscV0pLHZvaWQgUihKLEspKTooInciPT09Sz90PWkoQiwwLHQpOiJlIj09PUs/dD1pKEIsMSwtdCk6S3x8KHQ9MCksIm4iPT09Sj9lPWkoVSwxLGUpOiJzIj09PUo/ZT1pKFUsMCwtZSk6Snx8KGU9MCksTyhbInciPT09Sz90OjAsIm4iPT09Sj9lOjAsVi10LHEtZV0pLHZvaWQgUihKLEspKX1mdW5jdGlvbiBSKGUscil7ZnVuY3Rpb24gbih0KXtmb3Iobz0wO288dC5sZW5ndGg7bysrKXRbb10uZml4ZWRyYW5nZXx8YS5wdXNoKHRbb10uX2lkKX1mdW5jdGlvbiBpKG4saSl7dmFyIHM7Zm9yKG89MDtvPG4ubGVuZ3RoO28rKylzPW5bb10sKHImJi0xIT09YS5pbmRleE9mKHMueHJlZil8fGUmJi0xIT09YS5pbmRleE9mKHMueXJlZikpJiZpLmRyYXcodCxvKX12YXIgbyxhPVtdO2ZvcihyJiZuKEIpLGUmJm4oVSksbz0wO288YS5sZW5ndGg7bysrKWcuZG9UaWNrcyh0LGFbb10sITApO2koRi5hbm5vdGF0aW9uc3x8W10sdS5Bbm5vdGF0aW9ucyksaShGLnNoYXBlc3x8W10sdS5TaGFwZXMpLGkoRi5pbWFnZXN8fFtdLHUuSW1hZ2VzKX1mdW5jdGlvbiBqKCl7dmFyIGUscixuLGk9dC5fY29udGV4dC5kb3VibGVDbGljayxvPShLP0I6W10pLmNvbmNhdChKP1U6W10pLGE9e307aWYoImF1dG9zaXplIj09PWkpZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyllPW9bcl0sZS5maXhlZHJhbmdlfHwoYVtlLl9uYW1lKyIuYXV0b3JhbmdlIl09ITApO2Vsc2UgaWYoInJlc2V0Ij09PWkpZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyllPW9bcl0sZS5fcmFuZ2VJbml0aWFsPyhuPWUuX3JhbmdlSW5pdGlhbC5zbGljZSgpLGFbZS5fbmFtZSsiLnJhbmdlWzBdIl09blswXSxhW2UuX25hbWUrIi5yYW5nZVsxXSJdPW5bMV0pOmFbZS5fbmFtZSsiLmF1dG9yYW5nZSJdPSEwO2Vsc2UgaWYoInJlc2V0K2F1dG9zaXplIj09PWkpZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyllPW9bcl0sZS5maXhlZHJhbmdlfHwodm9pZCAwPT09ZS5fcmFuZ2VJbml0aWFsfHxlLnJhbmdlWzBdPT09ZS5fcmFuZ2VJbml0aWFsWzBdJiZlLnJhbmdlWzFdPT09ZS5fcmFuZ2VJbml0aWFsWzFdP2FbZS5fbmFtZSsiLmF1dG9yYW5nZSJdPSEwOihuPWUuX3JhbmdlSW5pdGlhbC5zbGljZSgpLGFbZS5fbmFtZSsiLnJhbmdlWzBdIl09blswXSxhW2UuX25hbWUrIi5yYW5nZVsxXSJdPW5bMV0pKTt0LmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksdS5yZWxheW91dCh0LGEpfWZ1bmN0aW9uIEQoZSl7Zm9yKHZhciByPXt9LG49MDtuPFEubGVuZ3RoO24rKyl7dmFyIGk9UVtuXTtlJiYtMT09PWUuaW5kZXhPZihpLl9pZC5jaGFyQXQoMCkpfHwoaS5fclswXSE9PWkucmFuZ2VbMF0mJihyW2kuX25hbWUrIi5yYW5nZVswXSJdPWkucmFuZ2VbMF0pLGkuX3JbMV0hPT1pLnJhbmdlWzFdJiYocltpLl9uYW1lKyIucmFuZ2VbMV0iXT1pLnJhbmdlWzFdKSxpLnJhbmdlPWkuX3Iuc2xpY2UoKSl9TyhbMCwwLFYscV0pLHUucmVsYXlvdXQodCxyKX1mdW5jdGlvbiBPKHQpe2Zvcih2YXIgZT1GLl9wbG90cyxyPU9iamVjdC5rZXlzKGUpLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9ZVtyW25dXSxvPWkueCgpLGE9aS55KCkscz1NJiYtMSE9PUIuaW5kZXhPZihvKSYmIW8uZml4ZWRyYW5nZSxsPXcmJi0xIT09VS5pbmRleE9mKGEpJiYhYS5maXhlZHJhbmdlLHU9cz9vLl9sZW5ndGgvdFsyXToxLGg9bD9hLl9sZW5ndGgvdFszXToxLGY9cz90WzBdOjAscD1sP3RbMV06MCxkPXM/dFswXS90WzJdKm8uX2xlbmd0aDowLG09bD90WzFdL3RbM10qYS5fbGVuZ3RoOjAsZz1vLl9vZmZzZXQtZCx2PWEuX29mZnNldC1tO0YuX2RlZnMuc2VsZWN0QWxsKCIjIitpLmNsaXBJZCkuY2FsbChjLnNldFRyYW5zbGF0ZSxmLHApLmNhbGwoYy5zZXRTY2FsZSwxL3UsMS9oKSxpLnBsb3QuY2FsbChjLnNldFRyYW5zbGF0ZSxnLHYpLmNhbGwoYy5zZXRTY2FsZSx1LGgpLnNlbGVjdEFsbCgiLnBvaW50cyIpLnNlbGVjdEFsbCgiLnBvaW50IikuY2FsbChjLnNldFBvaW50R3JvdXBTY2FsZSwxL3UsMS9oKX19Zm9yKHZhciBGPXQuX2Z1bGxMYXlvdXQsTj1bZV0uY29uY2F0KHcmJk0/ZS5vdmVybGF5czpbXSksQj1bZS54KCldLFU9W2UueSgpXSxWPUJbMF0uX2xlbmd0aCxxPVVbMF0uX2xlbmd0aCxHPXkuTUlORFJBRyxIPXkuTUlOWk9PTSxYPXcrTT09PSJuc2V3IixZPTE7WTxOLmxlbmd0aDtZKyspe3ZhciBXPU5bWV0ueCgpLFo9TltZXS55KCk7LTE9PT1CLmluZGV4T2YoVykmJkIucHVzaChXKSwtMT09PVUuaW5kZXhPZihaKSYmVS5wdXNoKFopfXZhciBRPUIuY29uY2F0KFUpLEs9ayhCLE0pLEo9ayhVLHcpLCQ9aShKK0ssRi5kcmFnbW9kZSksdHQ9dytNKyJkcmFnIixldD1lLmRyYWdsYXllci5zZWxlY3RBbGwoIi4iK3R0KS5kYXRhKFswXSk7ZXQuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJkcmFnIiwhMCkuY2xhc3NlZCh0dCwhMCkuc3R5bGUoe2ZpbGw6InRyYW5zcGFyZW50Iiwic3Ryb2tlLXdpZHRoIjowfSkuYXR0cigiZGF0YS1zdWJwbG90IixlLmlkKSxldC5jYWxsKHAuc2V0UmVjdCxyLHMseCxfKS5jYWxsKGQsJCk7dmFyIHJ0PWV0Lm5vZGUoKTtpZighSiYmIUsmJiFhKEYuZHJhZ21vZGUpKXJldHVybiBydC5vbm1vdXNlZG93bj1udWxsLHJ0LnN0eWxlLnBvaW50ZXJFdmVudHM9WD8iYWxsIjoibm9uZSIscnQ7dmFyIG50PXtlbGVtZW50OnJ0LGdkOnQscGxvdGluZm86ZSx4YXhlczpCLHlheGVzOlUsZG91YmxlY2xpY2s6aixwcmVwRm46ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPXQuX2Z1bGxMYXlvdXQuZHJhZ21vZGU7WD9lLnNoaWZ0S2V5JiYoaT0icGFuIj09PWk/Inpvb20iOiJwYW4iKTppPSJwYW4iLCJsYXNzbyI9PT1pP250Lm1pbkRyYWc9MTpudC5taW5EcmFnPXZvaWQgMCwiem9vbSI9PT1pPyhudC5tb3ZlRm49UyxudC5kb25lRm49eixUKGUscixuKSk6InBhbiI9PT1pPyhudC5tb3ZlRm49QyxudC5kb25lRm49SSxFKCkpOmEoaSkmJnYoZSxyLG4sbnQsaSl9fTttLmluaXQobnQpO3ZhciBpdCxvdCxhdCxzdCxsdCx1dCxjdCxodCxmdCxwdD10Ll9mdWxsTGF5b3V0Ll96b29tbGF5ZXIsZHQ9ZS54KCkuX29mZnNldCxtdD1lLnkoKS5fb2Zmc2V0LGd0PVswLDAsVixxXSx2dD1udWxsLHl0PXkuUkVEUkFXREVMQVksYnQ9ZS5tYWlucGxvdD9GLl9wbG90c1tlLm1haW5wbG90XTplO3JldHVybiB3Lmxlbmd0aCpNLmxlbmd0aCE9PTEmJih2b2lkIDAhPT1ydC5vbndoZWVsP3J0Lm9ud2hlZWw9UDp2b2lkIDAhPT1ydC5vbm1vdXNld2hlZWwmJihydC5vbm1vdXNld2hlZWw9UCkpLHJ0fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjUyNywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo2MDAsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NjA0LCIuLi8uLi9wbG90bHkiOjYxMiwiLi9heGVzIjo2MTUsIi4vY29uc3RhbnRzIjo2MjAsIi4vc2VsZWN0Ijo2MjgsZDM6MTI0LHRpbnljb2xvcjI6NDc3fV0sNjIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9W10sbj10Lmxlbmd0aDtuPjA7bi0tKXIucHVzaChlKTtyZXR1cm4gcn1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKylyLnB1c2godFtuXS5wMmMoZSkpO3JldHVybiByfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49dChyKSxpPWUocik7cmV0dXJuIE1hdGguc3FydChuKm4raSppKX19ZnVuY3Rpb24gYSh0LGUscil7aWYoInBpZSI9PT1yKXJldHVybiB2b2lkIHQuZW1pdCgicGxvdGx5X2hvdmVyIix7cG9pbnRzOltlXX0pO3J8fChyPSJ4eSIpO3ZhciBvPUFycmF5LmlzQXJyYXkocik/cjpbcl0sYT10Ll9mdWxsTGF5b3V0LHA9YS5fcGxvdHN8fFtdLGQ9cFtyXTtpZihkKXt2YXIgeT1kLm92ZXJsYXlzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pO289by5jb25jYXQoeSl9Zm9yKHZhciB4PW8ubGVuZ3RoLGs9bmV3IEFycmF5KHgpLEE9bmV3IEFycmF5KHgpLFQ9MDt4PlQ7VCsrKXt2YXIgRT1vW1RdLFM9cFtFXTtpZihTKWtbVF09dy5nZXRGcm9tSWQodCxTLnhheGlzLl9pZCksQVtUXT13LmdldEZyb21JZCh0LFMueWF4aXMuX2lkKTtlbHNle3ZhciBMPWFbRV0uX3N1YnBsb3Q7a1tUXT1MLnhheGlzLEFbVF09TC55YXhpc319dmFyIHo9ZS5ob3Zlcm1vZGV8fGEuaG92ZXJtb2RlO2lmKC0xPT09WyJ4IiwieSIsImNsb3Nlc3QiXS5pbmRleE9mKHopfHwhdC5jYWxjZGF0YXx8dC5xdWVyeVNlbGVjdG9yKCIuem9vbWJveCIpfHx0Ll9kcmFnZ2luZylyZXR1cm4gXy51bmhvdmVyUmF3KHQsZSk7dmFyIEksUCxDLFIsaixELE8sRixOLEIsVSxWLHE9W10sRz1bXTtpZihBcnJheS5pc0FycmF5KGUpKWZvcih6PSJhcnJheSIsQz0wO0M8ZS5sZW5ndGg7QysrKWo9dC5jYWxjZGF0YVtlW0NdLmN1cnZlTnVtYmVyfHwwXSxHLnB1c2goaik7ZWxzZXtmb3IoUj0wO1I8dC5jYWxjZGF0YS5sZW5ndGg7UisrKWo9dC5jYWxjZGF0YVtSXSxEPWpbMF0udHJhY2UsLTEhPT1vLmluZGV4T2YocyhEKSkmJkcucHVzaChqKTt2YXIgSCxYO2lmKGUudGFyZ2V0JiYiY2xpZW50WCJpbiBlJiYiY2xpZW50WSJpbiBlKXtpZih2LnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9iZWZvcmVob3ZlciIsZSk9PT0hMSlyZXR1cm47dmFyIFk9ZS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoSD1lLmNsaWVudFgtWS5sZWZ0LFg9ZS5jbGllbnRZLVkudG9wLDA+SHx8SD5ZLndpZHRofHwwPlh8fFg+WS5oZWlnaHQpcmV0dXJuIF8udW5ob3ZlclJhdyh0LGUpfWVsc2UgSD0ieHB4ImluIGU/ZS54cHg6a1swXS5fbGVuZ3RoLzIsWD0ieXB4ImluIGU/ZS55cHg6QVswXS5fbGVuZ3RoLzI7aWYoST0ieHZhbCJpbiBlP24obyxlLnh2YWwpOmkoayxIKSxQPSJ5dmFsImluIGU/bihvLGUueXZhbCk6aShBLFgpLCFtKElbMF0pfHwhbShQWzBdKSlyZXR1cm4gZy53YXJuKCJQbG90bHkuRnguaG92ZXIgZmFpbGVkIixlLHQpLF8udW5ob3ZlclJhdyh0LGUpfXZhciBXPTEvMDtmb3IoUj0wO1I8Ry5sZW5ndGg7UisrKWlmKGo9R1tSXSxqJiZqWzBdJiZqWzBdLnRyYWNlJiZqWzBdLnRyYWNlLnZpc2libGU9PT0hMCl7aWYoRD1qWzBdLnRyYWNlLE89by5pbmRleE9mKHMoRCkpLEY9eixVPXtjZDpqLHRyYWNlOkQseGE6a1tPXSx5YTpBW09dLG5hbWU6dC5kYXRhLmxlbmd0aD4xfHwtMSE9PUQuaG92ZXJpbmZvLmluZGV4T2YoIm5hbWUiKT9ELm5hbWU6dm9pZCAwLGluZGV4OiExLGRpc3RhbmNlOk1hdGgubWluKFcsTS5NQVhESVNUKSxjb2xvcjpiLmRlZmF1bHRMaW5lLHgwOnZvaWQgMCx4MTp2b2lkIDAseTA6dm9pZCAwLHkxOnZvaWQgMCx4TGFiZWxWYWw6dm9pZCAwLHlMYWJlbFZhbDp2b2lkIDAsekxhYmVsVmFsOnZvaWQgMCx0ZXh0OnZvaWQgMH0sVj1xLmxlbmd0aCwiYXJyYXkiPT09Ril7dmFyIFo9ZVtSXTsicG9pbnROdW1iZXIiaW4gWj8oVS5pbmRleD1aLnBvaW50TnVtYmVyLEY9ImNsb3Nlc3QiKTooRj0iIiwieHZhbCJpbiBaJiYoTj1aLnh2YWwsRj0ieCIpLCJ5dmFsImluIFomJihCPVoueXZhbCxGPUY/ImNsb3Nlc3QiOiJ5IikpfWVsc2UgTj1JW09dLEI9UFtPXTtpZihELl9tb2R1bGUmJkQuX21vZHVsZS5ob3ZlclBvaW50cyl7dmFyIFE9RC5fbW9kdWxlLmhvdmVyUG9pbnRzKFUsTixCLEYpO2lmKFEpZm9yKHZhciBLLEo9MDtKPFEubGVuZ3RoO0orKylLPVFbSl0sbShLLngwKSYmbShLLnkwKSYmcS5wdXNoKGwoSyx6KSl9ZWxzZSBnLmxvZygiVW5yZWNvZ25pemVkIHRyYWNlIHR5cGUgaW4gaG92ZXI6IixEKTsiY2xvc2VzdCI9PT16JiZxLmxlbmd0aD5WJiYocS5zcGxpY2UoMCxWKSxXPXFbMF0uZGlzdGFuY2UpfWlmKDA9PT1xLmxlbmd0aClyZXR1cm4gXy51bmhvdmVyUmF3KHQsZSk7dmFyICQ9InkiPT09eiYmRy5sZW5ndGg+MTtxLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5kaXN0YW5jZS1lLmRpc3RhbmNlfSk7dmFyIHR0PWIuY29tYmluZShhLnBsb3RfYmdjb2xvcnx8Yi5iYWNrZ3JvdW5kLGEucGFwZXJfYmdjb2xvciksZXQ9e2hvdmVybW9kZTp6LHJvdGF0ZUxhYmVsczokLGJnQ29sb3I6dHQsY29udGFpbmVyOmEuX2hvdmVybGF5ZXIsb3V0ZXJDb250YWluZXI6YS5fcGFwZXJkaXZ9LHJ0PXUocSxldCk7YyhxLCQ/InhhIjoieWEiKSxoKHJ0LCQpO3ZhciBudD10Ll9ob3ZlcmRhdGEsaXQ9W107Zm9yKEM9MDtDPHEubGVuZ3RoO0MrKyl7dmFyIG90PXFbQ10sYXQ9e2RhdGE6b3QudHJhY2UuX2lucHV0LGZ1bGxEYXRhOm90LnRyYWNlLGN1cnZlTnVtYmVyOm90LnRyYWNlLmluZGV4LHBvaW50TnVtYmVyOm90LmluZGV4LHg6b3QueFZhbCx5Om90LnlWYWwseGF4aXM6b3QueGEseWF4aXM6b3QueWF9O3ZvaWQgMCE9PW90LnpMYWJlbFZhbCYmKGF0Lno9b3QuekxhYmVsVmFsKSxpdC5wdXNoKGF0KX10Ll9ob3ZlcmRhdGE9aXQsZih0LGUsbnQpJiYobnQmJnQuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtwb2ludHM6bnR9KSx0LmVtaXQoInBsb3RseV9ob3ZlciIse3BvaW50czp0Ll9ob3ZlcmRhdGEseGF4ZXM6ayx5YXhlczpBLHh2YWxzOkkseXZhbHM6UH0pKX1mdW5jdGlvbiBzKHQpe3JldHVybiB0LnN1YnBsb3R8fHQueGF4aXMrdC55YXhpc31mdW5jdGlvbiBsKHQsZSl7dC5wb3NyZWY9InkiPT09ZT8odC54MCt0LngxKS8yOih0LnkwK3QueTEpLzIsdC54MD1nLmNvbnN0cmFpbih0LngwLDAsdC54YS5fbGVuZ3RoKSx0LngxPWcuY29uc3RyYWluKHQueDEsMCx0LnhhLl9sZW5ndGgpLHQueTA9Zy5jb25zdHJhaW4odC55MCwwLHQueWEuX2xlbmd0aCksdC55MT1nLmNvbnN0cmFpbih0LnkxLDAsdC55YS5fbGVuZ3RoKTt2YXIgcjtpZih2b2lkIDAhPT10LnhMYWJlbFZhbCl7cj0ibG9nIj09PXQueGEudHlwZSYmdC54TGFiZWxWYWw8PTA7dmFyIG49dy50aWNrVGV4dCh0LnhhLHQueGEuYzJsKHI/LXQueExhYmVsVmFsOnQueExhYmVsVmFsKSwiaG92ZXIiKTtyPzA9PT10LnhMYWJlbFZhbD90LnhMYWJlbD0iMCI6dC54TGFiZWw9Ii0iK24udGV4dDp0LnhMYWJlbD1uLnRleHQsdC54VmFsPXQueGEuYzJkKHQueExhYmVsVmFsKX1pZih2b2lkIDAhPT10LnlMYWJlbFZhbCl7cj0ibG9nIj09PXQueWEudHlwZSYmdC55TGFiZWxWYWw8PTA7dmFyIGk9dy50aWNrVGV4dCh0LnlhLHQueWEuYzJsKHI/LXQueUxhYmVsVmFsOnQueUxhYmVsVmFsKSwiaG92ZXIiKTtyPzA9PT10LnlMYWJlbFZhbD90LnlMYWJlbD0iMCI6dC55TGFiZWw9Ii0iK2kudGV4dDp0LnlMYWJlbD1pLnRleHQsdC55VmFsPXQueWEuYzJkKHQueUxhYmVsVmFsKX1pZih2b2lkIDAhPT10LnpMYWJlbFZhbCYmKHQuekxhYmVsPVN0cmluZyh0LnpMYWJlbFZhbCkpLCEoaXNOYU4odC54ZXJyKXx8ImxvZyI9PT10LnhhLnR5cGUmJnQueGVycjw9MCkpe3ZhciBvPXcudGlja1RleHQodC54YSx0LnhhLmMybCh0LnhlcnIpLCJob3ZlciIpLnRleHQ7dm9pZCAwIT09dC54ZXJybmVnP3QueExhYmVsKz0iICsiK28rIiAvIC0iK3cudGlja1RleHQodC54YSx0LnhhLmMybCh0LnhlcnJuZWcpLCJob3ZlciIpLnRleHQ6dC54TGFiZWwrPSIgXHhiMSAiK28sIngiPT09ZSYmKHQuZGlzdGFuY2UrPTEpfWlmKCEoaXNOYU4odC55ZXJyKXx8ImxvZyI9PT10LnlhLnR5cGUmJnQueWVycjw9MCkpe3ZhciBhPXcudGlja1RleHQodC55YSx0LnlhLmMybCh0LnllcnIpLCJob3ZlciIpLnRleHQ7dm9pZCAwIT09dC55ZXJybmVnP3QueUxhYmVsKz0iICsiK2ErIiAvIC0iK3cudGlja1RleHQodC55YSx0LnlhLmMybCh0LnllcnJuZWcpLCJob3ZlciIpLnRleHQ6dC55TGFiZWwrPSIgXHhiMSAiK2EsInkiPT09ZSYmKHQuZGlzdGFuY2UrPTEpfXZhciBzPXQudHJhY2UuaG92ZXJpbmZvO3JldHVybiJhbGwiIT09cyYmKHM9cy5zcGxpdCgiKyIpLC0xPT09cy5pbmRleE9mKCJ4IikmJih0LnhMYWJlbD12b2lkIDApLC0xPT09cy5pbmRleE9mKCJ5IikmJih0LnlMYWJlbD12b2lkIDApLC0xPT09cy5pbmRleE9mKCJ6IikmJih0LnpMYWJlbD12b2lkIDApLC0xPT09cy5pbmRleE9mKCJ0ZXh0IikmJih0LnRleHQ9dm9pZCAwKSwtMT09PXMuaW5kZXhPZigibmFtZSIpJiYodC5uYW1lPXZvaWQgMCkpLHR9ZnVuY3Rpb24gdSh0LGUpe3ZhciByLG4saT1lLmhvdmVybW9kZSxvPWUucm90YXRlTGFiZWxzLGE9ZS5iZ0NvbG9yLHM9ZS5jb250YWluZXIsbD1lLm91dGVyQ29udGFpbmVyLHU9dFswXSxjPXUueGEsaD11LnlhLGY9InkiPT09aT8ieUxhYmVsIjoieExhYmVsIixtPXVbZl0sZz0oU3RyaW5nKG0pfHwiIikuc3BsaXQoIiAiKVswXSx2PWwubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLF89di50b3Asdz12LndpZHRoLGs9di5oZWlnaHQsQT11LmRpc3RhbmNlPD1NLk1BWERJU1QmJigieCI9PT1pfHwieSI9PT1pKTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXtuPXRbcl0udHJhY2UuaG92ZXJpbmZvO3ZhciBFPW4uc3BsaXQoIisiKTtpZigtMT09PUUuaW5kZXhPZigiYWxsIikmJi0xPT09RS5pbmRleE9mKGkpKXtBPSExO2JyZWFrfX12YXIgUz1zLnNlbGVjdEFsbCgiZy5heGlzdGV4dCIpLmRhdGEoQT9bMF06W10pO1MuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJheGlzdGV4dCIsITApLFMuZXhpdCgpLnJlbW92ZSgpLFMuZWFjaChmdW5jdGlvbigpe3ZhciBlPXAuc2VsZWN0KHRoaXMpLHI9ZS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKFswXSksbj1lLnNlbGVjdEFsbCgidGV4dCIpLmRhdGEoWzBdKTtyLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuc3R5bGUoe2ZpbGw6Yi5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoiMXB4IixzdHJva2U6Yi5iYWNrZ3JvdW5kfSksbi5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNhbGwoeC5mb250LFIsQyxiLmJhY2tncm91bmQpLmF0dHIoImRhdGEtbm90ZXgiLDEpLG4udGV4dChtKS5jYWxsKHkuY29udmVydFRvVHNwYW5zKS5jYWxsKHguc2V0UG9zaXRpb24sMCwwKS5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5jYWxsKHguc2V0UG9zaXRpb24sMCwwKSxlLmF0dHIoInRyYW5zZm9ybSIsIiIpO3ZhciBvPW4ubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKCJ4Ij09PWkpe24uYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5jYWxsKHguc2V0UG9zaXRpb24sMCwidG9wIj09PWMuc2lkZT9fLW8uYm90dG9tLUktUDpfLW8udG9wK0krUCkuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih7eDpuLmF0dHIoIngiKSx5Om4uYXR0cigieSIpfSk7dmFyIGE9InRvcCI9PT1jLnNpZGU/Ii0iOiIiO3IuYXR0cigiZCIsIk0wLDBMIitJKyIsIithK0krIkgiKyhQK28ud2lkdGgvMikrInYiK2ErKDIqUCtvLmhlaWdodCkrIkgtIisoUCtvLndpZHRoLzIpKyJWIithK0krIkgtIitJKyJaIiksZS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIisoYy5fb2Zmc2V0Kyh1LngwK3UueDEpLzIpKyIsIisoaC5fb2Zmc2V0KygidG9wIj09PWMuc2lkZT8wOmguX2xlbmd0aCkpKyIpIil9ZWxzZXtuLmF0dHIoInRleHQtYW5jaG9yIiwicmlnaHQiPT09aC5zaWRlPyJzdGFydCI6ImVuZCIpLmNhbGwoeC5zZXRQb3NpdGlvbiwoInJpZ2h0Ij09PWguc2lkZT8xOi0xKSooUCtJKSxfLW8udG9wLW8uaGVpZ2h0LzIpLnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLmF0dHIoe3g6bi5hdHRyKCJ4IikseTpuLmF0dHIoInkiKX0pO3ZhciBzPSJyaWdodCI9PT1oLnNpZGU/IiI6Ii0iO3IuYXR0cigiZCIsIk0wLDBMIitzK0krIiwiK0krIlYiKyhQK28uaGVpZ2h0LzIpKyJoIitzKygyKlArby53aWR0aCkrIlYtIisoUCtvLmhlaWdodC8yKSsiSCIrcytJKyJWLSIrSSsiWiIpLGUuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrKGMuX29mZnNldCsoInJpZ2h0Ij09PWguc2lkZT9jLl9sZW5ndGg6MCkpKyIsIisoaC5fb2Zmc2V0Kyh1LnkwK3UueTEpLzIpKyIpIik7Cn10PXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10LnpMYWJlbFZhbHx8KHRbZl18fCIiKS5zcGxpdCgiICIpWzBdPT09Z30pfSk7dmFyIEw9cy5zZWxlY3RBbGwoImcuaG92ZXJ0ZXh0IikuZGF0YSh0LGZ1bmN0aW9uKHQpe3JldHVyblt0LnRyYWNlLmluZGV4LHQuaW5kZXgsdC54MCx0LnkwLHQubmFtZSx0LmF0dHIsdC54YSx0LnlhfHwiIl0uam9pbigiLCIpfSk7cmV0dXJuIEwuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJob3ZlcnRleHQiLCEwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9cC5zZWxlY3QodGhpcyk7dC5hcHBlbmQoInJlY3QiKS5jYWxsKGIuZmlsbCxiLmFkZE9wYWNpdHkoYSwuOCkpLHQuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCgibmFtZSIsITApLmNhbGwoeC5mb250LFIsQyksdC5hcHBlbmQoInBhdGgiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwiMXB4IiksdC5hcHBlbmQoInRleHQiKS5jbGFzc2VkKCJudW1zIiwhMCkuY2FsbCh4LmZvbnQsUixDKX0pLEwuZXhpdCgpLnJlbW92ZSgpLEwuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1wLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLCIiKSxyPSIiLG49IiIscz1iLm9wYWNpdHkodC5jb2xvcik/dC5jb2xvcjpiLmRlZmF1bHRMaW5lLGw9Yi5jb21iaW5lKHMsYSksdT1kKGwpLmdldEJyaWdodG5lc3MoKT4xMjg/IiMwMDAiOmIuYmFja2dyb3VuZDtpZih0Lm5hbWUmJnZvaWQgMD09PXQuekxhYmVsVmFsKXt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Yy5pbm5lckhUTUw9dC5uYW1lLHI9Yy50ZXh0Q29udGVudHx8IiIsci5sZW5ndGg+MTUmJihyPXIuc3Vic3RyKDAsMTIpKyIuLi4iKX12b2lkIDAhPT10LmV4dHJhVGV4dCYmKG4rPXQuZXh0cmFUZXh0KSx2b2lkIDAhPT10LnpMYWJlbD8odm9pZCAwIT09dC54TGFiZWwmJihuKz0ieDogIit0LnhMYWJlbCsiPGJyPiIpLHZvaWQgMCE9PXQueUxhYmVsJiYobis9Ink6ICIrdC55TGFiZWwrIjxicj4iKSxuKz0obj8iejogIjoiIikrdC56TGFiZWwpOkEmJnRbaSsiTGFiZWwiXT09PW0/bj10WygieCI9PT1pPyJ5IjoieCIpKyJMYWJlbCJdfHwiIjp2b2lkIDA9PT10LnhMYWJlbD92b2lkIDAhPT10LnlMYWJlbCYmKG49dC55TGFiZWwpOm49dm9pZCAwPT09dC55TGFiZWw/dC54TGFiZWw6IigiK3QueExhYmVsKyIsICIrdC55TGFiZWwrIikiLHQudGV4dCYmIUFycmF5LmlzQXJyYXkodC50ZXh0KSYmKG4rPShuPyI8YnI+IjoiIikrdC50ZXh0KSwiIj09PW4mJigiIj09PXImJmUucmVtb3ZlKCksbj1yKTt2YXIgaD1lLnNlbGVjdCgidGV4dC5udW1zIikuc3R5bGUoImZpbGwiLHUpLmNhbGwoeC5zZXRQb3NpdGlvbiwwLDApLnRleHQobikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbCh5LmNvbnZlcnRUb1RzcGFucyk7aC5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5jYWxsKHguc2V0UG9zaXRpb24sMCwwKTt2YXIgZj1lLnNlbGVjdCgidGV4dC5uYW1lIiksZz0wO3ImJnIhPT1uPyhmLnN0eWxlKCJmaWxsIixsKS50ZXh0KHIpLmNhbGwoeC5zZXRQb3NpdGlvbiwwLDApLmF0dHIoImRhdGEtbm90ZXgiLDEpLmNhbGwoeS5jb252ZXJ0VG9Uc3BhbnMpLGYuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuY2FsbCh4LnNldFBvc2l0aW9uLDAsMCksZz1mLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCsyKlApOihmLnJlbW92ZSgpLGUuc2VsZWN0KCJyZWN0IikucmVtb3ZlKCkpLGUuc2VsZWN0KCJwYXRoIikuc3R5bGUoe2ZpbGw6bCxzdHJva2U6dX0pO3ZhciB2LE0sRT1oLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxTPXQueGEuX29mZnNldCsodC54MCt0LngxKS8yLEw9dC55YS5fb2Zmc2V0Kyh0LnkwK3QueTEpLzIsej1NYXRoLmFicyh0LngxLXQueDApLEM9TWF0aC5hYnModC55MS10LnkwKSxSPUUud2lkdGgrSStQK2c7dC50eTA9Xy1FLnRvcCx0LmJ4PUUud2lkdGgrMipQLHQuYnk9RS5oZWlnaHQrMipQLHQuYW5jaG9yPSJzdGFydCIsdC50eHdpZHRoPUUud2lkdGgsdC50eDJ3aWR0aD1nLHQub2Zmc2V0PTAsbz8odC5wb3M9Uyx2PWs+PUwrQy8yK1IsTT1MLUMvMi1SPj0wLCJ0b3AiIT09dC5pZGVhbEFsaWduJiZ2fHwhTT92PyhMKz1DLzIsdC5hbmNob3I9InN0YXJ0Iik6dC5hbmNob3I9Im1pZGRsZSI6KEwtPUMvMix0LmFuY2hvcj0iZW5kIikpOih0LnBvcz1MLHY9dz49Uyt6LzIrUixNPVMtei8yLVI+PTAsImxlZnQiIT09dC5pZGVhbEFsaWduJiZ2fHwhTT92PyhTKz16LzIsdC5hbmNob3I9InN0YXJ0Iik6dC5hbmNob3I9Im1pZGRsZSI6KFMtPXovMix0LmFuY2hvcj0iZW5kIikpLGguYXR0cigidGV4dC1hbmNob3IiLHQuYW5jaG9yKSxnJiZmLmF0dHIoInRleHQtYW5jaG9yIix0LmFuY2hvciksZS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitTKyIsIitMKyIpIisobz8icm90YXRlKCIrVCsiKSI6IiIpKX0pLEx9ZnVuY3Rpb24gYyh0LGUpe2Z1bmN0aW9uIHIodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07aWYoaT1lLnBtaW4tZS5wb3MtZS5kcCtlLnNpemUsbz1yLnBvcytyLmRwK3Iuc2l6ZS1lLnBtYXgsaT4uMDEpe2ZvcihzPXQubGVuZ3RoLTE7cz49MDtzLS0pdFtzXS5kcCs9aTtuPSExfWlmKCEoLjAxPm8pKXtpZigtLjAxPmkpe2ZvcihzPXQubGVuZ3RoLTE7cz49MDtzLS0pdFtzXS5kcC09bztuPSExfWlmKG4pe3ZhciB1PTA7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKylsPXRbYV0sbC5wb3MrbC5kcCtsLnNpemU+ZS5wbWF4JiZ1Kys7Zm9yKGE9dC5sZW5ndGgtMTthPj0wJiYhKDA+PXUpO2EtLSlsPXRbYV0sbC5wb3M+ZS5wbWF4LTEmJihsLmRlbD0hMCx1LS0pO2ZvcihhPTA7YTx0Lmxlbmd0aCYmISgwPj11KTthKyspaWYobD10W2FdLGwucG9zPGUucG1pbisxKWZvcihsLmRlbD0hMCx1LS0sbz0yKmwuc2l6ZSxzPXQubGVuZ3RoLTE7cz49MDtzLS0pdFtzXS5kcC09bztmb3IoYT10Lmxlbmd0aC0xO2E+PTAmJiEoMD49dSk7YS0tKWw9dFthXSxsLnBvcytsLmRwK2wuc2l6ZT5lLnBtYXgmJihsLmRlbD0hMCx1LS0pfX19Zm9yKHZhciBuLGksbyxhLHMsbCx1LGM9MCxoPXQubWFwKGZ1bmN0aW9uKHQscil7dmFyIG49dFtlXTtyZXR1cm5be2k6cixkcDowLHBvczp0LnBvcyxwb3NyZWY6dC5wb3NyZWYsc2l6ZTp0LmJ5KigieCI9PT1uLl9pZC5jaGFyQXQoMCk/UzoxKS8yLHBtaW46bi5fb2Zmc2V0LHBtYXg6bi5fb2Zmc2V0K24uX2xlbmd0aH1dfSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLnBvc3JlZi1lWzBdLnBvc3JlZn0pOyFuJiZjPD10Lmxlbmd0aDspe2ZvcihjKyssbj0hMCxhPTA7YTxoLmxlbmd0aC0xOyl7dmFyIGY9aFthXSxwPWhbYSsxXSxkPWZbZi5sZW5ndGgtMV0sbT1wWzBdO2lmKGk9ZC5wb3MrZC5kcCtkLnNpemUtbS5wb3MtbS5kcCttLnNpemUsaT4uMDEmJmQucG1pbj09PW0ucG1pbiYmZC5wbWF4PT09bS5wbWF4KXtmb3Iocz1wLmxlbmd0aC0xO3M+PTA7cy0tKXBbc10uZHArPWk7Zm9yKGYucHVzaC5hcHBseShmLHApLGguc3BsaWNlKGErMSwxKSx1PTAscz1mLmxlbmd0aC0xO3M+PTA7cy0tKXUrPWZbc10uZHA7Zm9yKG89dS9mLmxlbmd0aCxzPWYubGVuZ3RoLTE7cz49MDtzLS0pZltzXS5kcC09bztuPSExfWVsc2UgYSsrfWguZm9yRWFjaChyKX1mb3IoYT1oLmxlbmd0aC0xO2E+PTA7YS0tKXt2YXIgZz1oW2FdO2ZvcihzPWcubGVuZ3RoLTE7cz49MDtzLS0pe3ZhciB2PWdbc10seT10W3YuaV07eS5vZmZzZXQ9di5kcCx5LmRlbD12LmRlbH19fWZ1bmN0aW9uIGgodCxlKXt0LmVhY2goZnVuY3Rpb24odCl7dmFyIHI9cC5zZWxlY3QodGhpcyk7aWYodC5kZWwpcmV0dXJuIHZvaWQgci5yZW1vdmUoKTt2YXIgbj0iZW5kIj09PXQuYW5jaG9yPy0xOjEsaT1yLnNlbGVjdCgidGV4dC5udW1zIiksbz17c3RhcnQ6MSxlbmQ6LTEsbWlkZGxlOjB9W3QuYW5jaG9yXSxhPW8qKEkrUCkscz1hK28qKHQudHh3aWR0aCtQKSxsPTAsdT10Lm9mZnNldDsibWlkZGxlIj09PXQuYW5jaG9yJiYoYS09dC50eDJ3aWR0aC8yLHMtPXQudHgyd2lkdGgvMiksZSYmKHUqPS16LGw9dC5vZmZzZXQqTCksci5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIiwibWlkZGxlIj09PXQuYW5jaG9yPyJNLSIrdC5ieC8yKyIsLSIrdC5ieS8yKyJoIit0LmJ4KyJ2Iit0LmJ5KyJoLSIrdC5ieCsiWiI6Ik0wLDBMIisobipJK2wpKyIsIisoSSt1KSsidiIrKHQuYnkvMi1JKSsiaCIrbip0LmJ4KyJ2LSIrdC5ieSsiSCIrKG4qSStsKSsiViIrKHUtSSkrIloiKSxpLmNhbGwoeC5zZXRQb3NpdGlvbixhK2wsdSt0LnR5MC10LmJ5LzIrUCkuc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuYXR0cih7eDppLmF0dHIoIngiKSx5OmkuYXR0cigieSIpfSksdC50eDJ3aWR0aCYmKHIuc2VsZWN0KCJ0ZXh0Lm5hbWUsIHRleHQubmFtZSB0c3Bhbi5saW5lIikuY2FsbCh4LnNldFBvc2l0aW9uLHMrbypQK2wsdSt0LnR5MC10LmJ5LzIrUCksci5zZWxlY3QoInJlY3QiKS5jYWxsKHguc2V0UmVjdCxzKyhvLTEpKnQudHgyd2lkdGgvMitsLHUtdC5ieS8yLTEsdC50eDJ3aWR0aCx0LmJ5KzIpKX0pfWZ1bmN0aW9uIGYodCxlLHIpe2lmKCFlLnRhcmdldClyZXR1cm4hMTtpZighcnx8ci5sZW5ndGghPT10Ll9ob3ZlcmRhdGEubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgbj1yLmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT1yW25dLG89dC5faG92ZXJkYXRhW25dO2lmKGkuY3VydmVOdW1iZXIhPT1vLmN1cnZlTnVtYmVyfHxTdHJpbmcoaS5wb2ludE51bWJlcikhPT1TdHJpbmcoby5wb2ludE51bWJlcikpcmV0dXJuITB9cmV0dXJuITF9dmFyIHA9dCgiZDMiKSxkPXQoInRpbnljb2xvcjIiKSxtPXQoImZhc3QtaXNudW1lcmljIiksZz10KCIuLi8uLi9saWIiKSx2PXQoIi4uLy4uL2xpYi9ldmVudHMiKSx5PXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGI9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHg9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksXz10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Iiksdz10KCIuL2F4ZXMiKSxNPXQoIi4vY29uc3RhbnRzIiksaz10KCIuL2RyYWdib3giKSxBPWUuZXhwb3J0cz17fTtBLnVuaG92ZXI9Xy51bmhvdmVyLEEubGF5b3V0QXR0cmlidXRlcz17ZHJhZ21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInpvb20iLCJwYW4iLCJzZWxlY3QiLCJsYXNzbyIsIm9yYml0IiwidHVybnRhYmxlIl0sZGZsdDoiem9vbSJ9LGhvdmVybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsieCIsInkiLCJjbG9zZXN0IiwhMV19fSxBLnN1cHBseUxheW91dERlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHIsbil7cmV0dXJuIGcuY29lcmNlKHQsZSxBLmxheW91dEF0dHJpYnV0ZXMscixuKX1uKCJkcmFnbW9kZSIpO3ZhciBpO2lmKGUuX2hhcygiY2FydGVzaWFuIikpe3ZhciBvPWUuX2lzSG9yaXo9QS5pc0hvcml6KHIpO2k9bz8ieSI6IngifWVsc2UgaT0iY2xvc2VzdCI7bigiaG92ZXJtb2RlIixpKX0sQS5pc0hvcml6PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0hMCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07aWYoImgiIT09bi5vcmllbnRhdGlvbil7ZT0hMTticmVha319cmV0dXJuIGV9LEEuaW5pdD1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2lmKGUuX2hhcygiY2FydGVzaWFuIikmJiF0Ll9jb250ZXh0LnN0YXRpY1Bsb3Qpe3ZhciByPU9iamVjdC5rZXlzKGUuX3Bsb3RzfHx7fSkuc29ydChmdW5jdGlvbih0LHIpe2lmKChlLl9wbG90c1t0XS5tYWlucGxvdCYmITApPT09KGUuX3Bsb3RzW3JdLm1haW5wbG90JiYhMCkpe3ZhciBuPXQuc3BsaXQoInkiKSxpPXIuc3BsaXQoInkiKTtyZXR1cm4gblswXT09PWlbMF0/TnVtYmVyKG5bMV18fDEpLU51bWJlcihpWzFdfHwxKTpOdW1iZXIoblswXXx8MSktTnVtYmVyKGlbMF18fDEpfXJldHVybiBlLl9wbG90c1t0XS5tYWlucGxvdD8xOi0xfSk7ci5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ZhciBuPWUuX3Bsb3RzW3JdO2lmKGUuX2hhcygiY2FydGVzaWFuIikpe3ZhciBpPW4ueCgpLG89bi55KCksYT0oaS5fbGluZXBvc2l0aW9uc1tyXXx8W10pWzNdLHM9KG8uX2xpbmVwb3NpdGlvbnNbcl18fFtdKVszXSxsPU0uRFJBR0dFUlNJWkU7aWYobShhKSYmInRvcCI9PT1pLnNpZGUmJihhLT1sKSxtKHMpJiYicmlnaHQiIT09by5zaWRlJiYocy09bCksIW4ubWFpbnBsb3Qpe3ZhciB1PWsodCxuLDAsMCxpLl9sZW5ndGgsby5fbGVuZ3RoLCJucyIsImV3Iik7dS5vbm1vdXNlbW92ZT1mdW5jdGlvbihuKXtBLmhvdmVyKHQsbixyKSxlLl9sYXN0aG92ZXI9dSxlLl9ob3ZlcnN1YnBsb3Q9cn0sdS5vbm1vdXNlb3V0PWZ1bmN0aW9uKGUpe3QuX2RyYWdnaW5nfHxfLnVuaG92ZXIodCxlKX0sdS5vbmNsaWNrPWZ1bmN0aW9uKGUpe0EuY2xpY2sodCxlKX0sayh0LG4sLWwsLWwsbCxsLCJuIiwidyIpLGsodCxuLGkuX2xlbmd0aCwtbCxsLGwsIm4iLCJlIiksayh0LG4sLWwsby5fbGVuZ3RoLGwsbCwicyIsInciKSxrKHQsbixpLl9sZW5ndGgsby5fbGVuZ3RoLGwsbCwicyIsImUiKX1tKGEpJiYoImZyZWUiPT09aS5hbmNob3ImJihhLT1lLl9zaXplLmgqKDEtby5kb21haW5bMV0pKSxrKHQsbiwuMSppLl9sZW5ndGgsYSwuOCppLl9sZW5ndGgsbCwiIiwiZXciKSxrKHQsbiwwLGEsLjEqaS5fbGVuZ3RoLGwsIiIsInciKSxrKHQsbiwuOSppLl9sZW5ndGgsYSwuMSppLl9sZW5ndGgsbCwiIiwiZSIpKSxtKHMpJiYoImZyZWUiPT09by5hbmNob3ImJihzLT1lLl9zaXplLncqaS5kb21haW5bMF0pLGsodCxuLHMsLjEqby5fbGVuZ3RoLGwsLjgqby5fbGVuZ3RoLCJucyIsIiIpLGsodCxuLHMsLjkqby5fbGVuZ3RoLGwsLjEqby5fbGVuZ3RoLCJzIiwiIiksayh0LG4scywwLGwsLjEqby5fbGVuZ3RoLCJuIiwiIikpfX0pO3ZhciBuPWUuX2hvdmVybGF5ZXIubm9kZSgpO24ub25tb3VzZW1vdmU9ZnVuY3Rpb24ocil7ci50YXJnZXQ9ZS5fbGFzdGhvdmVyLEEuaG92ZXIodCxyLGUuX2hvdmVyc3VicGxvdCl9LG4ub25jbGljaz1mdW5jdGlvbihyKXtyLnRhcmdldD1lLl9sYXN0aG92ZXIsQS5jbGljayh0LHIpfSxuLm9ubW91c2Vkb3duPWZ1bmN0aW9uKHQpe2UuX2xhc3Rob3Zlci5vbm1vdXNlZG93bih0KX19fTt2YXIgVD1NLllBTkdMRSxFPU1hdGguUEkqVC8xODAsUz0xL01hdGguc2luKEUpLEw9TWF0aC5jb3MoRSksej1NYXRoLnNpbihFKSxJPU0uSE9WRVJBUlJPV1NJWkUsUD1NLkhPVkVSVEVYVFBBRCxDPU0uSE9WRVJGT05UU0laRSxSPU0uSE9WRVJGT05UO0EuaG92ZXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodCkpLHZvaWQgMD09PXQuX2xhc3RIb3ZlclRpbWUmJih0Ll9sYXN0SG92ZXJUaW1lPTApLHZvaWQgMCE9PXQuX2hvdmVyVGltZXImJihjbGVhclRpbWVvdXQodC5faG92ZXJUaW1lciksdC5faG92ZXJUaW1lcj12b2lkIDApLERhdGUubm93KCk+dC5fbGFzdEhvdmVyVGltZStNLkhPVkVSTUlOVElNRT8oYSh0LGUsciksdm9pZCh0Ll9sYXN0SG92ZXJUaW1lPURhdGUubm93KCkpKTp2b2lkKHQuX2hvdmVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2EodCxlLHIpLHQuX2xhc3RIb3ZlclRpbWU9RGF0ZS5ub3coKSx0Ll9ob3ZlclRpbWVyPXZvaWQgMH0sTS5IT1ZFUk1JTlRJTUUpKX0sQS5nZXREaXN0YW5jZUZ1bmN0aW9uPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiJjbG9zZXN0Ij09PXQ/bnx8byhlLHIpOiJ4Ij09PXQ/ZTpyfSxBLmdldENsb3Nlc3Q9ZnVuY3Rpb24odCxlLHIpe2lmKHIuaW5kZXghPT0hMSlyLmluZGV4Pj0wJiZyLmluZGV4PHQubGVuZ3RoP3IuZGlzdGFuY2U9MDpyLmluZGV4PSExO2Vsc2UgZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPWUodFtuXSk7aTw9ci5kaXN0YW5jZSYmKHIuaW5kZXg9bixyLmRpc3RhbmNlPWkpfXJldHVybiByfSxBLmxvbmVIb3Zlcj1mdW5jdGlvbih0LGUpe3ZhciByPXtjb2xvcjp0LmNvbG9yfHxiLmRlZmF1bHRMaW5lLHgwOnQueDB8fHQueHx8MCx4MTp0LngxfHx0Lnh8fDAseTA6dC55MHx8dC55fHwwLHkxOnQueTF8fHQueXx8MCx4TGFiZWw6dC54TGFiZWwseUxhYmVsOnQueUxhYmVsLHpMYWJlbDp0LnpMYWJlbCx0ZXh0OnQudGV4dCxuYW1lOnQubmFtZSxpZGVhbEFsaWduOnQuaWRlYWxBbGlnbix0cmFjZTp7aW5kZXg6MCxob3ZlcmluZm86IiJ9LHhhOntfb2Zmc2V0OjB9LHlhOntfb2Zmc2V0OjB9LGluZGV4OjB9LG49cC5zZWxlY3QoZS5jb250YWluZXIpLGk9ZS5vdXRlckNvbnRhaW5lcj9wLnNlbGVjdChlLm91dGVyQ29udGFpbmVyKTpuLG89e2hvdmVybW9kZToiY2xvc2VzdCIscm90YXRlTGFiZWxzOiExLGJnQ29sb3I6ZS5iZ0NvbG9yfHxiLmJhY2tncm91bmQsY29udGFpbmVyOm4sb3V0ZXJDb250YWluZXI6aX0sYT11KFtyXSxvKTtyZXR1cm4gaChhLG8ucm90YXRlTGFiZWxzKSxhLm5vZGUoKX0sQS5sb25lVW5ob3Zlcj1mdW5jdGlvbih0KXt2YXIgZT10IGluc3RhbmNlb2YgcC5zZWxlY3Rpb24/dDpwLnNlbGVjdCh0KTtlLnNlbGVjdEFsbCgiZy5ob3ZlcnRleHQiKS5yZW1vdmUoKX0sQS5jbGljaz1mdW5jdGlvbih0LGUpe3QuX2hvdmVyZGF0YSYmZSYmZS50YXJnZXQmJih0LmVtaXQoInBsb3RseV9jbGljayIse3BvaW50czp0Ll9ob3ZlcmRhdGF9KSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSl9LEEuaW5ib3g9ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD50KmV8fDA9PT10P00uTUFYRElTVCooLjYtLjMvTWF0aC5tYXgoMyxNYXRoLmFicyh0LWUpKSk6MS8wfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjUyNywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvZXZlbnRzIjo1ODUsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NjA0LCIuL2F4ZXMiOjYxNSwiLi9jb25zdGFudHMiOjYyMCwiLi9kcmFnYm94Ijo2MjEsZDM6MTI0LCJmYXN0LWlzbnVtZXJpYyI6MTI4LHRpbnljb2xvcjI6NDc3fV0sNjIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3Bsb3RzIiksaT10KCIuL2NvbnN0YW50cyIpO3IubmFtZT0iY2FydGVzaWFuIixyLmF0dHI9WyJ4YXhpcyIsInlheGlzIl0sci5pZFJvb3Q9WyJ4IiwieSJdLHIuaWRSZWdleD1pLmlkUmVnZXgsci5hdHRyUmVnZXg9aS5hdHRyUmVnZXgsci5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLHIucGxvdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxvPWlbMF0udHJhY2U7by54YXhpcytvLnlheGlzPT09ZSYmci5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIHIodCxlKXtmb3IodmFyIHI9W10sbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLG89aVswXS50cmFjZTtvLl9tb2R1bGU9PT1lJiZvLnZpc2libGU9PT0hMCYmci5wdXNoKGkpfXJldHVybiByfWZvcih2YXIgaT10Ll9mdWxsTGF5b3V0LG89bi5nZXRTdWJwbG90SWRzKGksImNhcnRlc2lhbiIpLGE9dC5jYWxjZGF0YSxzPWkuX21vZHVsZXMsbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgdT1vW2xdLGM9aS5fcGxvdHNbdV0saD1lKGEsdSk7Yy5wbG90JiZjLnBsb3Quc2VsZWN0QWxsKCJnLnRyYWNlIikucmVtb3ZlKCk7Zm9yKHZhciBmPTA7ZjxzLmxlbmd0aDtmKyspe3ZhciBwPXNbZl07aWYoImNhcnRlc2lhbiI9PT1wLmJhc2VQbG90TW9kdWxlLm5hbWUpe3ZhciBkPXIoaCxwKTtwLnBsb3QodCxjLGQpfX19fX0seyIuLi9wbG90cyI6NjcxLCIuL2F0dHJpYnV0ZXMiOjYxNCwiLi9jb25zdGFudHMiOjYyMH1dLDYyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9mb250X2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT10KCIuLi8uLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvcmFuZ2VzZWxlY3Rvci9hdHRyaWJ1dGVzIiksbD10KCIuL2NvbnN0YW50cyIpO2UuZXhwb3J0cz17Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmV9LHRpdGxlOnt2YWxUeXBlOiJzdHJpbmcifSx0aXRsZWZvbnQ6byh7fSxuLHt9KSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyItIiwibGluZWFyIiwibG9nIiwiZGF0ZSIsImNhdGVnb3J5Il0sZGZsdDoiLSJ9LGF1dG9yYW5nZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwicmV2ZXJzZWQiXSxkZmx0OiEwfSxyYW5nZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vcm1hbCIsInRvemVybyIsIm5vbm5lZ2F0aXZlIl0sZGZsdDoibm9ybWFsIn0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0scmFuZ2VzbGlkZXI6YSxyYW5nZXNlbGVjdG9yOnMsZml4ZWRyYW5nZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sdGlja21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsaW5lYXIiLCJhcnJheSJdfSxudGlja3M6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MH0sdGljazA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxkdGljazp7dmFsVHlwZToiYW55IixkZmx0OjF9LHRpY2t2YWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sdGlja3RleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0aWNrczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3V0c2lkZSIsImluc2lkZSIsIiJdfSxtaXJyb3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsInRpY2tzIiwhMSwiYWxsIiwiYWxsdGlja3MiXSxkZmx0OiExfSx0aWNrbGVuOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6NX0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sdGlja2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lfSxzaG93dGlja2xhYmVsczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sdGlja2ZvbnQ6byh7fSxuLHt9KSx0aWNrYW5nbGU6e3ZhbFR5cGU6ImFuZ2xlIixkZmx0OiJhdXRvIn0sdGlja3ByZWZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIifSxzaG93dGlja3ByZWZpeDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwiZmlyc3QiLCJsYXN0Iiwibm9uZSJdLGRmbHQ6ImFsbCJ9LHRpY2tzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sc2hvd3RpY2tzdWZmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwifSxzaG93ZXhwb25lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwifSxleHBvbmVudGZvcm1hdDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9uZSIsImUiLCJFIiwicG93ZXIiLCJTSSIsIkIiXSxkZmx0OiJCIn0sdGlja2Zvcm1hdDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIifSxob3ZlcmZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIifSxzaG93bGluZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lfSxsaW5ld2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93Z3JpZDp7dmFsVHlwZToiYm9vbGVhbiJ9LGdyaWRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5saWdodExpbmV9LGdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHplcm9saW5lOnt2YWxUeXBlOiJib29sZWFuIn0semVyb2xpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZX0semVyb2xpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjF9LGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSIsbC5pZFJlZ2V4LngudG9TdHJpbmcoKSxsLmlkUmVnZXgueS50b1N0cmluZygpXX0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il19LG92ZXJsYXlpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyZWUiLGwuaWRSZWdleC54LnRvU3RyaW5nKCksbC5pZFJlZ2V4LnkudG9TdHJpbmcoKV19LGRvbWFpbjp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX1dLGRmbHQ6WzAsMV19LHBvc2l0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MH0sY2F0ZWdvcnlvcmRlcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidHJhY2UiLCJjYXRlZ29yeSBhc2NlbmRpbmciLCJjYXRlZ29yeSBkZXNjZW5kaW5nIiwiYXJyYXkiXSxkZmx0OiJ0cmFjZSJ9LGNhdGVnb3J5YXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxfZGVwcmVjYXRlZDp7YXV0b3RpY2s6e3ZhbFR5cGU6ImJvb2xlYW4ifX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTA1LCIuLi8uLi9jb21wb25lbnRzL3Jhbmdlc2VsZWN0b3IvYXR0cmlidXRlcyI6NTU0LCIuLi8uLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyL2F0dHJpYnV0ZXMiOjU2MSwiLi4vLi4vbGliL2V4dGVuZCI6NTg2LCIuLi9mb250X2F0dHJpYnV0ZXMiOjYzMywiLi9jb25zdGFudHMiOjYyMH1dLDYyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3Bsb3RzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyIikscz10KCIuLi8uLi9jb21wb25lbnRzL3Jhbmdlc2VsZWN0b3IiKSxsPXQoIi4vY29uc3RhbnRzIiksdT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksYz10KCIuL2F4aXNfZGVmYXVsdHMiKSxoPXQoIi4vcG9zaXRpb25fZGVmYXVsdHMiKSxmPXQoIi4vYXhpc19pZHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIHAodCxlKXt2YXIgcj1OdW1iZXIodC5zdWJzdHIoNSl8fDEpLG49TnVtYmVyKGUuc3Vic3RyKDUpfHwxKTtyZXR1cm4gci1ufXZhciBkLG09T2JqZWN0LmtleXModCksZz1bXSx2PVtdLHk9W10sYj1bXSx4PXt9LF89e307Zm9yKGQ9MDtkPHIubGVuZ3RoO2QrKyl7dmFyIHcsTSxrPXJbZF07aWYoaS50cmFjZUlzKGssImNhcnRlc2lhbiIpKXc9ZyxNPXY7ZWxzZXtpZighaS50cmFjZUlzKGssImdsMmQiKSljb250aW51ZTt3PXksTT1ifXZhciBBPWYuaWQybmFtZShrLnhheGlzKSxUPWYuaWQybmFtZShrLnlheGlzKTtpZihBJiYtMT09PXcuaW5kZXhPZihBKSYmdy5wdXNoKEEpLFQmJi0xPT09TS5pbmRleE9mKFQpJiZNLnB1c2goVCksaS50cmFjZUlzKGssIjJkTWFwIikmJih4W0FdPSEwLHhbVF09ITApLGkudHJhY2VJcyhrLCJvcmllbnRlZCIpKXt2YXIgRT0iaCI9PT1rLm9yaWVudGF0aW9uP1Q6QTtfW0VdPSEwfX12YXIgUz1lLl9oYXMoImdsM2QiKXx8ZS5faGFzKCJnZW8iKTtpZighUylmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKXt2YXIgTD1tW2RdOy0xPT09eS5pbmRleE9mKEwpJiYtMT09PWcuaW5kZXhPZihMKSYmbC54QXhpc01hdGNoLnRlc3QoTCk/Zy5wdXNoKEwpOi0xPT09Yi5pbmRleE9mKEwpJiYtMT09PXYuaW5kZXhPZihMKSYmbC55QXhpc01hdGNoLnRlc3QoTCkmJnYucHVzaChMKX1nLmxlbmd0aCYmdi5sZW5ndGgmJm4ucHVzaFVuaXF1ZShlLl9iYXNlUGxvdE1vZHVsZXMsaS5zdWJwbG90c1JlZ2lzdHJ5LmNhcnRlc2lhbik7dmFyIHo9Zy5jb25jYXQoeSkuc29ydChwKSxJPXYuY29uY2F0KGIpLnNvcnQocCksUD16LmNvbmNhdChJKSxDPW8uYmFja2dyb3VuZDt6Lmxlbmd0aCYmSS5sZW5ndGgmJihDPW4uY29lcmNlKHQsZSxpLmxheW91dEF0dHJpYnV0ZXMsInBsb3RfYmdjb2xvciIpKTt2YXIgUj1vLmNvbWJpbmUoQyxlLnBhcGVyX2JnY29sb3IpO1AuZm9yRWFjaChmdW5jdGlvbihpKXtmdW5jdGlvbiBvKHQsZSl7cmV0dXJuIG4uY29lcmNlKHMsbCx1LHQsZSl9dmFyIGE9aS5jaGFyQXQoMCkscz10W2ldfHx7fSxsPXt9LHA9e2xldHRlcjphLGZvbnQ6ZS5mb250LG91dGVyVGlja3M6eFtpXSxzaG93R3JpZDohX1tpXSxuYW1lOmksZGF0YTpyLGJnQ29sb3I6Un0sZD17bGV0dGVyOmEsY291bnRlckF4ZXM6e3g6SSx5Onp9W2FdLm1hcChmLm5hbWUyaWQpLG92ZXJsYXlhYmxlQXhlczp7eDp6LHk6SX1bYV0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlIT09aSYmISh0W2VdfHx7fSkub3ZlcmxheWluZ30pLm1hcChmLm5hbWUyaWQpfTtjKHMsbCxvLHApLGgocyxsLG8sZCksZVtpXT1sLHRbaV18fCItIj09PXMudHlwZXx8KHRbaV09e3R5cGU6cy50eXBlfSl9KSxQLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIG49ci5jaGFyQXQoMCksaT10W3JdLG89ZVtyXSxsPXt4OkkseTp6fVtuXTthLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyLGwpLCJ4Ij09PW4mJiJkYXRlIj09PW8udHlwZSYmcy5zdXBwbHlMYXlvdXREZWZhdWx0cyhpLG8sZSxsKX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uLy4uL2NvbXBvbmVudHMvcmFuZ2VzZWxlY3RvciI6NTYwLCIuLi8uLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyIjo1NjUsIi4uLy4uL2xpYiI6NTkxLCIuLi9wbG90cyI6NjcxLCIuL2F4aXNfZGVmYXVsdHMiOjYxNiwiLi9heGlzX2lkcyI6NjE3LCIuL2NvbnN0YW50cyI6NjIwLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2MjQsIi4vcG9zaXRpb25fZGVmYXVsdHMiOjYyN31dLDYyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbixvLGEscyxsLHU9W10sYz1yLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XX0pLGg9aS5iaXNlY3RvcihlKS5sZWZ0O2ZvcihuPTA7bjxjLmxlbmd0aDtuKyspZm9yKGE9Y1tuXSxvPTA7bzxhLmxlbmd0aDtvKyspcz1hW29dLG51bGwhPT1zJiZ2b2lkIDAhPT1zJiYobD1oKHUscyksbDx1Lmxlbmd0aCYmdVtsXT09PXN8fHUuc3BsaWNlKGwsMCxzKSk7cmV0dXJuIHV9dmFyIGk9dCgiZDMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7c3dpdGNoKGUpe2Nhc2UiYXJyYXkiOnJldHVybiBBcnJheS5pc0FycmF5KHIpP3Iuc2xpY2UoKTpbXTtjYXNlImNhdGVnb3J5IGFzY2VuZGluZyI6cmV0dXJuIG4odCxpLmFzY2VuZGluZyxvKTtjYXNlImNhdGVnb3J5IGRlc2NlbmRpbmciOnJldHVybiBuKHQsaS5kZXNjZW5kaW5nLG8pO2Nhc2UidHJhY2UiOnJldHVybltdO2RlZmF1bHQ6cmV0dXJuW119fX0se2QzOjEyNH1dLDYyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBhPW8uY291bnRlckF4ZXN8fFtdLHM9by5vdmVybGF5YWJsZUF4ZXN8fFtdLGw9by5sZXR0ZXIsdT1pLmNvZXJjZSh0LGUse2FuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJlZSJdLmNvbmNhdChhKSxkZmx0Om4odC5wb3NpdGlvbik/ImZyZWUiOmFbMF18fCJmcmVlIn19LCJhbmNob3IiKTsiZnJlZSI9PT11JiZyKCJwb3NpdGlvbiIpLGkuY29lcmNlKHQsZSx7c2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOiJ4Ij09PWw/WyJib3R0b20iLCJ0b3AiXTpbImxlZnQiLCJyaWdodCJdLGRmbHQ6IngiPT09bD8iYm90dG9tIjoibGVmdCJ9fSwic2lkZSIpO3ZhciBjPSExO2lmKHMubGVuZ3RoJiYoYz1pLmNvZXJjZSh0LGUse292ZXJsYXlpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITFdLmNvbmNhdChzKSxkZmx0OiExfX0sIm92ZXJsYXlpbmciKSksIWMpe3ZhciBoPXIoImRvbWFpbiIpO2hbMF0+aFsxXS0uMDEmJihlLmRvbWFpbj1bMCwxXSksaS5ub25lT3JBbGwodC5kb21haW4sZS5kb21haW4sWzAsMV0pfXJldHVybiBlfX0seyIuLi8uLi9saWIiOjU5MSwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDYyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0Ll9pZH12YXIgaT10KCIuLi8uLi9saWIvcG9seWdvbiIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi9heGVzIikscz10KCIuL2NvbnN0YW50cyIpLGw9aS5maWx0ZXIsdT1pLnRlc3RlcixjPXMuTUlOU0VMRUNUO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpLGgpe2Z1bmN0aW9uIGYodCl7dmFyIGU9InkiPT09dC5faWQuY2hhckF0KDApPzE6MDtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQucDJkKHJbZV0pfX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHQtZX12YXIgZCxtPWkuZ2QuX2Z1bGxMYXlvdXQuX3pvb21sYXllcixnPWkuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PWkucGxvdGluZm8ueCgpLl9vZmZzZXQseT1pLnBsb3RpbmZvLnkoKS5fb2Zmc2V0LGI9ZS1nLmxlZnQseD1yLWcudG9wLF89Yix3PXgsTT0iTSIrYisiLCIreCxrPWkueGF4ZXNbMF0uX2xlbmd0aCxBPWkueWF4ZXNbMF0uX2xlbmd0aCxUPWkueGF4ZXMubWFwKG4pLEU9aS55YXhlcy5tYXAobiksUz1pLnhheGVzLmNvbmNhdChpLnlheGVzKTsibGFzc28iPT09aCYmKGQ9bChbW2IseF1dLHMuQkVORFBYKSk7dmFyIEw9bS5zZWxlY3RBbGwoInBhdGguc2VsZWN0LW91dGxpbmUiKS5kYXRhKFsxLDJdKTtMLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiJzZWxlY3Qtb3V0bGluZSBzZWxlY3Qtb3V0bGluZS0iK3R9KS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIit2KyIsICIreSsiKSIpLmF0dHIoImQiLE0rIloiKTt2YXIgeixJLFAsQyxSLGo9bS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3gtY29ybmVycyIpLnN0eWxlKHtmaWxsOm8uYmFja2dyb3VuZCxzdHJva2U6by5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxfSkuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdisiLCAiK3krIikiKS5hdHRyKCJkIiwiTTAsMFoiKSxEPVtdLE89aS5nZCxGPVtdO2Zvcih6PTA7ejxPLmNhbGNkYXRhLmxlbmd0aDt6KyspaWYoST1PLmNhbGNkYXRhW3pdLFA9SVswXS50cmFjZSxQLl9tb2R1bGUmJlAuX21vZHVsZS5zZWxlY3RQb2ludHMpaWYoaS5zdWJwbG90KXtpZihQLnN1YnBsb3QhPT1pLnN1YnBsb3QpY29udGludWU7RC5wdXNoKHtzZWxlY3RQb2ludHM6UC5fbW9kdWxlLnNlbGVjdFBvaW50cyxjZDpJLHhheGlzOmkueGF4ZXNbMF0seWF4aXM6aS55YXhlc1swXX0pfWVsc2V7aWYoLTE9PT1ULmluZGV4T2YoUC54YXhpcykpY29udGludWU7aWYoLTE9PT1FLmluZGV4T2YoUC55YXhpcykpY29udGludWU7RC5wdXNoKHtzZWxlY3RQb2ludHM6UC5fbW9kdWxlLnNlbGVjdFBvaW50cyxjZDpJLHhheGlzOmEuZ2V0RnJvbUlkKE8sUC54YXhpcykseWF4aXM6YS5nZXRGcm9tSWQoTyxQLnlheGlzKX0pfWkubW92ZUZuPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbjtfPU1hdGgubWF4KDAsTWF0aC5taW4oayx0K2IpKSx3PU1hdGgubWF4KDAsTWF0aC5taW4oQSxlK3gpKTt2YXIgbz1NYXRoLmFicyhfLWIpLGE9TWF0aC5hYnMody14KTtmb3IoInNlbGVjdCI9PT1oPyhhPE1hdGgubWluKC42Km8sYyk/KHI9dShbW2IsMF0sW2IsQV0sW18sQV0sW18sMF1dKSxqLmF0dHIoImQiLCJNIityLnhtaW4rIiwiKyh4LWMpKyJoLTR2IisyKmMrImg0Wk0iKyhyLnhtYXgtMSkrIiwiKyh4LWMpKyJoNHYiKzIqYysiaC00WiIpKTpvPE1hdGgubWluKC42KmEsYyk/KHI9dShbWzAseF0sWzAsd10sW2ssd10sW2sseF1dKSxqLmF0dHIoImQiLCJNIisoYi1jKSsiLCIrci55bWluKyJ2LTRoIisyKmMrInY0Wk0iKyhiLWMpKyIsIisoci55bWF4LTEpKyJ2NGgiKzIqYysidi00WiIpKToocj11KFtbYix4XSxbYix3XSxbXyx3XSxbXyx4XV0pLGouYXR0cigiZCIsIk0wLDBaIikpLEwuYXR0cigiZCIsIk0iK3IueG1pbisiLCIrci55bWluKyJIIisoci54bWF4LTEpKyJWIisoci55bWF4LTEpKyJIIityLnhtaW4rIloiKSk6Imxhc3NvIj09PWgmJihkLmFkZFB0KFtfLHddKSxyPXUoZC5maWx0ZXJlZCksTC5hdHRyKCJkIiwiTSIrZC5maWx0ZXJlZC5qb2luKCJMIikrIloiKSksRj1bXSx6PTA7ejxELmxlbmd0aDt6KyspQz1EW3pdLFtdLnB1c2guYXBwbHkoRixDLnNlbGVjdFBvaW50cyhDLHIpKTtpZihSPXtwb2ludHM6Rn0sInNlbGVjdCI9PT1oKXt2YXIgcyxsPVIucmFuZ2U9e307Zm9yKHo9MDt6PFMubGVuZ3RoO3orKyluPVNbel0scz1uLl9pZC5jaGFyQXQoMCksbFtuLl9pZF09W24ucDJkKHJbcysibWluIl0pLG4ucDJkKHJbcysibWF4Il0pXS5zb3J0KHApfWVsc2V7dmFyIG09Ui5sYXNzb1BvaW50cz17fTtmb3Ioej0wO3o8Uy5sZW5ndGg7eisrKW49U1t6XSxtW24uX2lkXT1kLmZpbHRlcmVkLm1hcChmKG4pKX1pLmdkLmVtaXQoInBsb3RseV9zZWxlY3RpbmciLFIpfSxpLmRvbmVGbj1mdW5jdGlvbih0LGUpe2lmKGoucmVtb3ZlKCksdHx8MiE9PWUpaS5nZC5lbWl0KCJwbG90bHlfc2VsZWN0ZWQiLFIpO2Vsc2V7Zm9yKEwucmVtb3ZlKCksej0wO3o8RC5sZW5ndGg7eisrKUM9RFt6XSxDLnNlbGVjdFBvaW50cyhDLCExKTtPLmVtaXQoInBsb3RseV9kZXNlbGVjdCIsbnVsbCl9fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9saWIvcG9seWdvbiI6NTk3LCIuL2F4ZXMiOjYxNSwiLi9jb25zdGFudHMiOjYyMH1dLDYyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxvPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9jb25zdGFudHMiKSxzPXQoIi4vY2xlYW5fZGF0dW0iKSxsPXQoIi4vYXhpc19pZHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe2lmKGU+MClyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5MTjEwO2lmKDA+PWUmJnImJnQucmFuZ2UmJjI9PT10LnJhbmdlLmxlbmd0aCl7dmFyIG49dC5yYW5nZVswXSxpPXQucmFuZ2VbMV07cmV0dXJuLjUqKG4raS0zKmMqTWF0aC5hYnMobi1pKSl9cmV0dXJuIGEuQkFETlVNfWZ1bmN0aW9uIHIodCl7cmV0dXJuIE1hdGgucG93KDEwLHQpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIGkodCk/TnVtYmVyKHQpOmEuQkFETlVNfXZhciBjPTEwO2lmKHQuYzJsPSJsb2ciPT09dC50eXBlP2U6dSx0LmwyYz0ibG9nIj09PXQudHlwZT9yOnUsdC5sMmQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuYzJkKHQubDJjKGUpKX0sdC5wMmQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHQubDJkKHQucDJsKGUpKX0sdC5zZXRTY2FsZT1mdW5jdGlvbigpe3ZhciBlLHI9dC5fZ2QuX2Z1bGxMYXlvdXQuX3NpemU7aWYodC5fY2F0ZWdvcmllc3x8KHQuX2NhdGVnb3JpZXM9W10pLHQub3ZlcmxheWluZyl7dmFyIG49bC5nZXRGcm9tSWQodC5fZ2QsdC5vdmVybGF5aW5nKTt0LmRvbWFpbj1uLmRvbWFpbn1mb3IodC5yYW5nZSYmMj09PXQucmFuZ2UubGVuZ3RoJiZ0LnJhbmdlWzBdIT09dC5yYW5nZVsxXXx8KHQucmFuZ2U9Wy0xLDFdKSxlPTA7Mj5lO2UrKylpKHQucmFuZ2VbZV0pfHwodC5yYW5nZVtlXT1pKHQucmFuZ2VbMS1lXSk/dC5yYW5nZVsxLWVdKihlPzEwOi4xKTplPzE6LTEpLHQucmFuZ2VbZV08LShOdW1iZXIuTUFYX1ZBTFVFLzIpP3QucmFuZ2VbZV09LShOdW1iZXIuTUFYX1ZBTFVFLzIpOnQucmFuZ2VbZV0+TnVtYmVyLk1BWF9WQUxVRS8yJiYodC5yYW5nZVtlXT1OdW1iZXIuTUFYX1ZBTFVFLzIpO2lmKCJ5Ij09PXQuX2lkLmNoYXJBdCgwKT8odC5fb2Zmc2V0PXIudCsoMS10LmRvbWFpblsxXSkqci5oLHQuX2xlbmd0aD1yLmgqKHQuZG9tYWluWzFdLXQuZG9tYWluWzBdKSx0Ll9tPXQuX2xlbmd0aC8odC5yYW5nZVswXS10LnJhbmdlWzFdKSx0Ll9iPS10Ll9tKnQucmFuZ2VbMV0pOih0Ll9vZmZzZXQ9ci5sK3QuZG9tYWluWzBdKnIudyx0Ll9sZW5ndGg9ci53Kih0LmRvbWFpblsxXS10LmRvbWFpblswXSksdC5fbT10Ll9sZW5ndGgvKHQucmFuZ2VbMV0tdC5yYW5nZVswXSksdC5fYj0tdC5fbSp0LnJhbmdlWzBdKSwhaXNGaW5pdGUodC5fbSl8fCFpc0Zpbml0ZSh0Ll9iKSl0aHJvdyBvLm5vdGlmaWVyKCJTb21ldGhpbmcgd2VudCB3cm9uZyB3aXRoIGF4aXMgc2NhbGluZyIsImxvbmciKSx0Ll9nZC5fcmVwbG90dGluZz0hMSxuZXcgRXJyb3IoImF4aXMgc2NhbGluZyIpfSx0LmwycD1mdW5jdGlvbihlKXtyZXR1cm4gaShlKT9uLnJvdW5kKHQuX2IrdC5fbSplLDIpOmEuQkFETlVNfSx0LnAybD1mdW5jdGlvbihlKXtyZXR1cm4oZS10Ll9iKS90Ll9tfSx0LmMycD1mdW5jdGlvbihlLHIpe3JldHVybiB0LmwycCh0LmMybChlLHIpKX0sdC5wMmM9ZnVuY3Rpb24oZSl7cmV0dXJuIHQubDJjKHQucDJsKGUpKX0sLTEhPT1bImxpbmVhciIsImxvZyIsIi0iXS5pbmRleE9mKHQudHlwZSkpdC5jMmQ9dSx0LmQyYz1mdW5jdGlvbih0KXtyZXR1cm4gdD1zKHQpLGkodCk/TnVtYmVyKHQpOmEuQkFETlVNfSx0LmQybD1mdW5jdGlvbihlLHIpe3JldHVybiJsb2ciPT09dC50eXBlP3QuYzJsKHQuZDJjKGUpLHIpOnQuZDJjKGUpfTtlbHNlIGlmKCJkYXRlIj09PXQudHlwZSl7aWYodC5jMmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCk/by5tczJEYXRlVGltZSh0KTphLkJBRE5VTX0sdC5kMmM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCk/TnVtYmVyKHQpOm8uZGF0ZVRpbWUybXModCl9LHQuZDJsPXQuZDJjLHQucmFuZ2UmJnQucmFuZ2UubGVuZ3RoPjEpdHJ5e3ZhciBoPXQucmFuZ2UubWFwKG8uZGF0ZVRpbWUybXMpOyFpKHQucmFuZ2VbMF0pJiZpKGhbMF0pJiYodC5yYW5nZVswXT1oWzBdKSwhaSh0LnJhbmdlWzFdKSYmaShoWzFdKSYmKHQucmFuZ2VbMV09aFsxXSl9Y2F0Y2goZil7by5lcnJvcihmLHQucmFuZ2UpfX1lbHNlImNhdGVnb3J5Ij09PXQudHlwZSYmKHQuYzJkPWZ1bmN0aW9uKGUpe3JldHVybiB0Ll9jYXRlZ29yaWVzW01hdGgucm91bmQoZSldfSx0LmQyYz1mdW5jdGlvbihlKXtudWxsIT09ZSYmdm9pZCAwIT09ZSYmLTE9PT10Ll9jYXRlZ29yaWVzLmluZGV4T2YoZSkmJnQuX2NhdGVnb3JpZXMucHVzaChlKTt2YXIgcj10Ll9jYXRlZ29yaWVzLmluZGV4T2YoZSk7cmV0dXJuLTE9PT1yP2EuQkFETlVNOnJ9LHQuZDJsPXQuZDJjKTt0Lm1ha2VDYWxjZGF0YT1mdW5jdGlvbihlLHIpe3ZhciBuLGksbztpZihyIGluIGUpZm9yKG49ZVtyXSxpPW5ldyBBcnJheShuLmxlbmd0aCksbz0wO288bi5sZW5ndGg7bysrKWlbb109dC5kMmMobltvXSk7ZWxzZXt2YXIgYT1yKyIwImluIGU/dC5kMmMoZVtyKyIwIl0pOjAscz1lWyJkIityXT9OdW1iZXIoZVsiZCIrcl0pOjE7Zm9yKG49ZVt7eDoieSIseToieCJ9W3JdXSxpPW5ldyBBcnJheShuLmxlbmd0aCksbz0wO288bi5sZW5ndGg7bysrKWlbb109YStvKnN9cmV0dXJuIGl9LHQuX21pbj1bXSx0Ll9tYXg9W10sdC5fbWluRHRpY2s9bnVsbCx0Ll9mb3JjZVRpY2swPW51bGx9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuL2F4aXNfaWRzIjo2MTcsIi4vY2xlYW5fZGF0dW0iOjYxOSwiLi9jb25zdGFudHMiOjYyMCxkMzoxMjQsImZhc3QtaXNudW1lcmljIjoxMjh9XSw2MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT1bInNob3dleHBvbmVudCIsInNob3d0aWNrcHJlZml4Iiwic2hvd3RpY2tzdWZmaXgiXSxyPWUuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSksbj1mdW5jdGlvbihlKXtyZXR1cm4gdFtlXT09PXRbclswXV19O3JldHVybiByLmV2ZXJ5KG4pfHwxPT09ci5sZW5ndGg/dFtyWzBdXTp2b2lkIDB9dmFyIGk9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8sYSl7dmFyIHM9bih0KSxsPXIoInRpY2twcmVmaXgiKTtsJiZyKCJzaG93dGlja3ByZWZpeCIscyk7dmFyIHU9cigidGlja3N1ZmZpeCIpO3UmJnIoInNob3d0aWNrc3VmZml4IixzKTt2YXIgYz1yKCJzaG93dGlja2xhYmVscyIpO2lmKGMpe3ZhciBoPWEuZm9udHx8e30sZj1lLmNvbG9yPT09dC5jb2xvcj9lLmNvbG9yOmguY29sb3I7aWYoaS5jb2VyY2VGb250KHIsInRpY2tmb250Iix7ZmFtaWx5OmguZmFtaWx5LHNpemU6aC5zaXplLGNvbG9yOmZ9KSxyKCJ0aWNrYW5nbGUiKSwiY2F0ZWdvcnkiIT09byl7dmFyIHA9cigidGlja2Zvcm1hdCIpO3B8fCJkYXRlIj09PW98fChyKCJzaG93ZXhwb25lbnQiLHMpLHIoImV4cG9uZW50Zm9ybWF0IikpfX0iY2F0ZWdvcnkiPT09b3x8YS5ub0hvdmVyfHxyKCJob3ZlcmZvcm1hdCIpfX0seyIuLi8uLi9saWIiOjU5MX1dLDYzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIGE9bi5jb2VyY2UyKHQsZSxpLCJ0aWNrbGVuIikscz1uLmNvZXJjZTIodCxlLGksInRpY2t3aWR0aCIpLGw9bi5jb2VyY2UyKHQsZSxpLCJ0aWNrY29sb3IiLGUuY29sb3IpLHU9cigidGlja3MiLG8ub3V0ZXJUaWNrc3x8YXx8c3x8bD8ib3V0c2lkZSI6IiIpO3V8fChkZWxldGUgZS50aWNrbGVuLGRlbGV0ZSBlLnRpY2t3aWR0aCxkZWxldGUgZS50aWNrY29sb3IpfX0seyIuLi8uLi9saWIiOjU5MSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjI0fV0sNjMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPSJhdXRvIjsiYXJyYXkiIT09dC50aWNrbW9kZXx8ImxvZyIhPT1pJiYiZGF0ZSIhPT1pfHwodC50aWNrbW9kZT0iYXV0byIpLEFycmF5LmlzQXJyYXkodC50aWNrdmFscyk/bz0iYXJyYXkiOnQuZHRpY2smJm4odC5kdGljaykmJihvPSJsaW5lYXIiKTt2YXIgYT1yKCJ0aWNrbW9kZSIsbyk7aWYoImF1dG8iPT09YSlyKCJudGlja3MiKTtlbHNlIGlmKCJsaW5lYXIiPT09YSlyKCJ0aWNrMCIpLHIoImR0aWNrIik7ZWxzZXt2YXIgcz1yKCJ0aWNrdmFscyIpO3ZvaWQgMD09PXM/ZS50aWNrbW9kZT0iYXV0byI6cigidGlja3RleHQiKX19fSx7ImZhc3QtaXNudW1lcmljIjoxMjh9XSw2MzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtmYW1pbHk6e3ZhbFR5cGU6InN0cmluZyIsbm9CbGFuazohMCxzdHJpY3Q6ITB9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjF9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciJ9fX0se31dLDYzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1lLmV4cG9ydHM9e307bi5wcm9qTmFtZXM9e2VxdWlyZWN0YW5ndWxhcjoiZXF1aXJlY3Rhbmd1bGFyIixtZXJjYXRvcjoibWVyY2F0b3IiLG9ydGhvZ3JhcGhpYzoib3J0aG9ncmFwaGljIiwibmF0dXJhbCBlYXJ0aCI6Im5hdHVyYWxFYXJ0aCIsa2F2cmF5c2tpeTc6ImthdnJheXNraXk3IixtaWxsZXI6Im1pbGxlciIscm9iaW5zb246InJvYmluc29uIixlY2tlcnQ0OiJlY2tlcnQ0IiwiYXppbXV0aGFsIGVxdWFsIGFyZWEiOiJhemltdXRoYWxFcXVhbEFyZWEiLCJhemltdXRoYWwgZXF1aWRpc3RhbnQiOiJhemltdXRoYWxFcXVpZGlzdGFudCIsImNvbmljIGVxdWFsIGFyZWEiOiJjb25pY0VxdWFsQXJlYSIsImNvbmljIGNvbmZvcm1hbCI6ImNvbmljQ29uZm9ybWFsIiwiY29uaWMgZXF1aWRpc3RhbnQiOiJjb25pY0VxdWlkaXN0YW50Iixnbm9tb25pYzoiZ25vbW9uaWMiLHN0ZXJlb2dyYXBoaWM6InN0ZXJlb2dyYXBoaWMiLG1vbGx3ZWlkZToibW9sbHdlaWRlIixoYW1tZXI6ImhhbW1lciIsInRyYW5zdmVyc2UgbWVyY2F0b3IiOiJ0cmFuc3ZlcnNlTWVyY2F0b3IiLCJhbGJlcnMgdXNhIjoiYWxiZXJzVXNhIiwid2lua2VsIHRyaXBlbCI6IndpbmtlbDMifSxuLmF4ZXNOYW1lcz1bImxvbmF4aXMiLCJsYXRheGlzIl0sbi5sb25heGlzU3Bhbj17b3J0aG9ncmFwaGljOjE4MCwiYXppbXV0aGFsIGVxdWFsIGFyZWEiOjM2MCwiYXppbXV0aGFsIGVxdWlkaXN0YW50IjozNjAsImNvbmljIGNvbmZvcm1hbCI6MTgwLGdub21vbmljOjE2MCxzdGVyZW9ncmFwaGljOjE4MCwidHJhbnN2ZXJzZSBtZXJjYXRvciI6MTgwLCIqIjozNjB9LG4ubGF0YXhpc1NwYW49eyJjb25pYyBjb25mb3JtYWwiOjE1MCxzdGVyZW9ncmFwaGljOjE3OS41LCIqIjoxODB9LG4uc2NvcGVEZWZhdWx0cz17d29ybGQ6e2xvbmF4aXNSYW5nZTpbLTE4MCwxODBdLGxhdGF4aXNSYW5nZTpbLTkwLDkwXSxwcm9qVHlwZToiZXF1aXJlY3Rhbmd1bGFyIixwcm9qUm90YXRlOlswLDAsMF19LHVzYTp7bG9uYXhpc1JhbmdlOlstMTgwLC01MF0sbGF0YXhpc1JhbmdlOlsxNSw4MF0scHJvalR5cGU6ImFsYmVycyB1c2EifSxldXJvcGU6e2xvbmF4aXNSYW5nZTpbLTMwLDYwXSxsYXRheGlzUmFuZ2U6WzMwLDgwXSxwcm9qVHlwZToiY29uaWMgY29uZm9ybWFsIixwcm9qUm90YXRlOlsxNSwwLDBdLHByb2pQYXJhbGxlbHM6WzAsNjBdfSxhc2lhOntsb25heGlzUmFuZ2U6WzIyLDE2MF0sbGF0YXhpc1JhbmdlOlstMTUsNTVdLHByb2pUeXBlOiJtZXJjYXRvciIscHJvalJvdGF0ZTpbMCwwLDBdfSxhZnJpY2E6e2xvbmF4aXNSYW5nZTpbLTMwLDYwXSxsYXRheGlzUmFuZ2U6Wy00MCw0MF0scHJvalR5cGU6Im1lcmNhdG9yIixwcm9qUm90YXRlOlswLDAsMF19LCJub3J0aCBhbWVyaWNhIjp7bG9uYXhpc1JhbmdlOlstMTgwLC00NV0sbGF0YXhpc1JhbmdlOls1LDg1XSxwcm9qVHlwZToiY29uaWMgY29uZm9ybWFsIixwcm9qUm90YXRlOlstMTAwLDAsMF0scHJvalBhcmFsbGVsczpbMjkuNSw0NS41XX0sInNvdXRoIGFtZXJpY2EiOntsb25heGlzUmFuZ2U6Wy0xMDAsLTMwXSxsYXRheGlzUmFuZ2U6Wy02MCwxNV0scHJvalR5cGU6Im1lcmNhdG9yIixwcm9qUm90YXRlOlswLDAsMF19fSxuLmNsaXBQYWQ9LjAwMSxuLnByZWNpc2lvbj0uMSxuLmxhbmRDb2xvcj0iI0YwREM4MiIsbi53YXRlckNvbG9yPSIjMzM5OUZGIixuLmxvY2F0aW9ubW9kZVRvTGF5ZXI9eyJJU08tMyI6ImNvdW50cmllcyIsIlVTQS1zdGF0ZXMiOiJzdWJ1bml0cyIsImNvdW50cnkgbmFtZXMiOiJjb3VudHJpZXMifSxuLnNwaGVyZVNWRz17dHlwZToiU3BoZXJlIn0sbi5maWxsTGF5ZXJzPVsib2NlYW4iLCJsYW5kIiwibGFrZXMiXSxuLmxpbmVMYXllcnM9WyJzdWJ1bml0cyIsImNvdW50cmllcyIsImNvYXN0bGluZXMiLCJyaXZlcnMiLCJmcmFtZSJdLG4uYmFzZUxheWVycz1bIm9jZWFuIiwibGFuZCIsImxha2VzIiwic3VidW5pdHMiLCJjb3VudHJpZXMiLCJjb2FzdGxpbmVzIiwicml2ZXJzIiwibGF0YXhpcyIsImxvbmF4aXMiLCJmcmFtZSJdLG4ubGF5ZXJOYW1lVG9BZGplY3RpdmU9e29jZWFuOiJvY2VhbiIsbGFuZDoibGFuZCIsbGFrZXM6Imxha2UiLHN1YnVuaXRzOiJzdWJ1bml0Iixjb3VudHJpZXM6ImNvdW50cnkiLGNvYXN0bGluZXM6ImNvYXN0bGluZSIscml2ZXJzOiJyaXZlciIsZnJhbWU6ImZyYW1lIn0sbi5iYXNlTGF5ZXJzT3ZlckNob3JvcGxldGg9WyJyaXZlcnMiLCJsYWtlcyJdfSx7fV0sNjM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLmlkPXQuaWQsdGhpcy5ncmFwaERpdj10LmdyYXBoRGl2LHRoaXMuY29udGFpbmVyPXQuY29udGFpbmVyLHRoaXMudG9wb2pzb25VUkw9dC50b3BvanNvblVSTCxkKHUpLHRoaXMuaG92ZXJDb250YWluZXI9bnVsbCx0aGlzLnRvcG9qc29uTmFtZT1udWxsLHRoaXMudG9wb2pzb249bnVsbCx0aGlzLnByb2plY3Rpb25UeXBlPW51bGwsdGhpcy5wcm9qZWN0aW9uPW51bGwsdGhpcy5jbGlwQW5nbGU9bnVsbCx0aGlzLnNldFNjYWxlPW51bGwsdGhpcy5wYXRoPW51bGwsdGhpcy56b29tPW51bGwsdGhpcy56b29tUmVzZXQ9bnVsbCx0aGlzLm1ha2VGcmFtZXdvcmsoKSx0aGlzLnVwZGF0ZUZ4KGUuaG92ZXJtb2RlKSx0aGlzLnRyYWNlSGFzaD17fX1mdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm4gdS5nZW8uZ3JhdGljdWxlKCkuZXh0ZW50KFtbdFswXSxlWzBdXSxbdFsxXSxlWzFdXV0pLnN0ZXAocil9ZnVuY3Rpb24gbyh0LGUscil7dmFyIG49eS5sYXllck5hbWVUb0FkamVjdGl2ZVtlXTt0LnNlbGVjdCgiLiIrZSkuc2VsZWN0QWxsKCJwYXRoIikuYXR0cigic3Ryb2tlIiwibm9uZSIpLmNhbGwoYy5maWxsLHJbbisiY29sb3IiXSl9ZnVuY3Rpb24gYSh0LGUscil7dmFyIG49eS5sYXllck5hbWVUb0FkamVjdGl2ZVtlXTt0LnNlbGVjdCgiLiIrZSkuc2VsZWN0QWxsKCJwYXRoIikuYXR0cigiZmlsbCIsIm5vbmUiKS5jYWxsKGMuc3Ryb2tlLHJbbisiY29sb3IiXSkuY2FsbChoLmRhc2hMaW5lLCIiLHJbbisid2lkdGgiXSl9ZnVuY3Rpb24gcyh0LGUscil7dC5zZWxlY3QoIi4iK2UrImdyYXRpY3VsZSIpLnNlbGVjdEFsbCgicGF0aCIpLmF0dHIoImZpbGwiLCJub25lIikuY2FsbChjLnN0cm9rZSxyW2VdLmdyaWRjb2xvcikuY2FsbChoLmRhc2hMaW5lLCIiLHJbZV0uZ3JpZHdpZHRoKX1mdW5jdGlvbiBsKHQpe3ZhciBlPXt0eXBlOiJsaW5lYXIiLHNob3dleHBvbmVudDoiYWxsIixleHBvbmVudGZvcm1hdDpmLmxheW91dEF0dHJpYnV0ZXMuZXhwb25lbnRmb3JtYXQuZGZsdCxfZ2Q6e19mdWxsTGF5b3V0OnR9fTtyZXR1cm4gZi5zZXRDb252ZXJ0KGUpLGV9dmFyIHU9dCgiZDMiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxoPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGY9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxwPXQoIi4uLy4uL2xpYi9maWx0ZXJfdmlzaWJsZSIpLGQ9dCgiLi9wcm9qZWN0aW9ucyIpLG09dCgiLi9zZXRfc2NhbGUiKSxnPXQoIi4vem9vbSIpLHY9dCgiLi96b29tX3Jlc2V0IikseT10KCIuL2NvbnN0YW50cyIpLGI9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSx4PXQoIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyIpLF89dCgidG9wb2pzb24iKS5mZWF0dXJlO2UuZXhwb3J0cz1uO3ZhciB3PW4ucHJvdG90eXBlO3cucGxvdD1mdW5jdGlvbih0LGUscil7dmFyIG4saSxvPXRoaXMsYT1lW28uaWRdLHM9ZS5fc2l6ZTtvLnByb2plY3Rpb249bnVsbCxvLnNldFNjYWxlPW0oYSxzKSxvLm1ha2VQcm9qZWN0aW9uKGEpLG8ubWFrZVBhdGgoKSxvLmFkanVzdExheW91dChhLHMpLG8uem9vbT1nKG8sYSksby56b29tUmVzZXQ9dihvLGEpLG8ubW9ja0F4aXM9bChlKSxvLmZyYW1ld29yay5jYWxsKG8uem9vbSkub24oImRibGNsaWNrLnpvb20iLG8uem9vbVJlc2V0KSxuPXguZ2V0VG9wb2pzb25OYW1lKGEpLG51bGw9PT1vLnRvcG9qc29ufHxuIT09by50b3BvanNvbk5hbWU/KG8udG9wb2pzb25OYW1lPW4sdm9pZCAwIT09UGxvdGx5R2VvQXNzZXRzLnRvcG9qc29uW28udG9wb2pzb25OYW1lXT8oby50b3BvanNvbj1QbG90bHlHZW9Bc3NldHMudG9wb2pzb25bby50b3BvanNvbk5hbWVdLG8ub25jZVRvcG9qc29uSXNMb2FkZWQodCxhKSk6KGk9eC5nZXRUb3BvanNvblBhdGgoby50b3BvanNvblVSTCxvLnRvcG9qc29uTmFtZSksci5wdXNoKG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUscil7dS5qc29uKGksZnVuY3Rpb24obixzKXtyZXR1cm4gbj92b2lkIHIoNDA0PT09bi5zdGF0dXM/bmV3IEVycm9yKFsicGxvdGx5LmpzIGNvdWxkIG5vdCBmaW5kIHRvcG9qc29uIGZpbGUgYXQiLGksIi4iLCJNYWtlIHN1cmUgdGhlICp0b3BvanNvblVSTCogcGxvdCBjb25maWcgb3B0aW9uIiwiaXMgc2V0IHByb3Blcmx5LiJdLmpvaW4oIiAiKSk6bmV3IEVycm9yKFsidW5leHBlY3RlZCBlcnJvciB3aGlsZSBmZXRjaGluZyB0b3BvanNvbiBmaWxlIGF0IixpXS5qb2luKCIgIikpKTooby50b3BvanNvbj1zLFBsb3RseUdlb0Fzc2V0cy50b3BvanNvbltvLnRvcG9qc29uTmFtZV09cyxvLm9uY2VUb3BvanNvbklzTG9hZGVkKHQsYSksdm9pZCBlKCkpfSl9KSkpKTpvLm9uY2VUb3BvanNvbklzTG9hZGVkKHQsYSl9LHcub25jZVRvcG9qc29uSXNMb2FkZWQ9ZnVuY3Rpb24odCxlKXt2YXIgcjt0aGlzLmRyYXdMYXlvdXQoZSk7dmFyIG49dGhpcy50cmFjZUhhc2gsaT17fTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdO2lbby50eXBlXT1pW28udHlwZV18fFtdLGlbby50eXBlXS5wdXNoKG8pfXZhciBhPU9iamVjdC5rZXlzKG4pLHM9T2JqZWN0LmtleXMoaSk7Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl7dmFyIGw9YVtyXTtpZigtMT09PXMuaW5kZXhPZihsKSl7dmFyIHU9bltsXVswXTt1LnZpc2libGU9ITEsaVtsXT1bdV19fWZvcihzPU9iamVjdC5rZXlzKGkpLHI9MDtyPHMubGVuZ3RoO3IrKyl7dmFyIGM9aVtzW3JdXSxoPWNbMF0uX21vZHVsZTtoLnBsb3QodGhpcyxwKGMpLGUpfXRoaXMudHJhY2VIYXNoPWksdGhpcy5yZW5kZXIoKX0sdy51cGRhdGVGeD1mdW5jdGlvbih0KXt0aGlzLnNob3dIb3Zlcj10IT09ITF9LHcubWFrZVByb2plY3Rpb249ZnVuY3Rpb24odCl7dmFyIGUscj10LnByb2plY3Rpb24sbj1yLnR5cGUsaT1udWxsPT09dGhpcy5wcm9qZWN0aW9ufHxuIT09dGhpcy5wcm9qZWN0aW9uVHlwZTtpPyh0aGlzLnByb2plY3Rpb25UeXBlPW4sZT10aGlzLnByb2plY3Rpb249dS5nZW9beS5wcm9qTmFtZXNbbl1dKCkpOmU9dGhpcy5wcm9qZWN0aW9uLGUudHJhbnNsYXRlKHIuX3RyYW5zbGF0ZTApLnByZWNpc2lvbih5LnByZWNpc2lvbiksdC5faXNBbGJlcnNVc2F8fGUucm90YXRlKHIuX3JvdGF0ZSkuY2VudGVyKHIuX2NlbnRlciksdC5fY2xpcEFuZ2xlPyh0aGlzLmNsaXBBbmdsZT10Ll9jbGlwQW5nbGUsZS5jbGlwQW5nbGUodC5fY2xpcEFuZ2xlLXkuY2xpcFBhZCkpOnRoaXMuY2xpcEFuZ2xlPW51bGwsci5wYXJhbGxlbHMmJmUucGFyYWxsZWxzKHIucGFyYWxsZWxzKSxpJiZ0aGlzLnNldFNjYWxlKGUpLGUudHJhbnNsYXRlKHIuX3RyYW5zbGF0ZSkuc2NhbGUoci5fc2NhbGUpfSx3Lm1ha2VQYXRoPWZ1bmN0aW9uKCl7dGhpcy5wYXRoPXUuZ2VvLnBhdGgoKS5wcm9qZWN0aW9uKHRoaXMucHJvamVjdGlvbil9LHcubWFrZUZyYW1ld29yaz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2VvRGl2PXUuc2VsZWN0KHRoaXMuY29udGFpbmVyKS5hcHBlbmQoImRpdiIpO3QuYXR0cigiaWQiLHRoaXMuaWQpLnN0eWxlKCJwb3NpdGlvbiIsImFic29sdXRlIik7dmFyIGU9dGhpcy5ob3ZlckNvbnRhaW5lcj10LmFwcGVuZCgic3ZnIik7ZS5hdHRyKGIuc3ZnQXR0cnMpLnN0eWxlKHtwb3NpdGlvbjoiYWJzb2x1dGUiLCJ6LWluZGV4IjoyMCwicG9pbnRlci1ldmVudHMiOiJub25lIn0pO3ZhciByPXRoaXMuZnJhbWV3b3JrPXQuYXBwZW5kKCJzdmciKTtyLmF0dHIoYi5zdmdBdHRycykuYXR0cih7cG9zaXRpb246ImFic29sdXRlIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pLHIuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJiZ2xheWVyIikuYXBwZW5kKCJyZWN0Iiksci5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImJhc2VsYXllciIpLHIuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJjaG9yb3BsZXRobGF5ZXIiKSxyLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiYmFzZWxheWVyb3ZlcmNob3JvcGxldGgiKSxyLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwic2NhdHRlcmdlb2xheWVyIiksci5vbigiZGJsY2xpY2suem9vbSIsbnVsbCl9LHcuYWRqdXN0TGF5b3V0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5kb21haW47dGhpcy5nZW9EaXYuc3R5bGUoe2xlZnQ6ZS5sK2UudypyLnhbMF0rdC5fbWFyZ2luWCsicHgiLHRvcDplLnQrZS5oKigxLXIueVsxXSkrdC5fbWFyZ2luWSsicHgiLHdpZHRoOnQuX3dpZHRoKyJweCIsaGVpZ2h0OnQuX2hlaWdodCsicHgifSksdGhpcy5ob3ZlckNvbnRhaW5lci5hdHRyKHt3aWR0aDp0Ll93aWR0aCxoZWlnaHQ6dC5faGVpZ2h0fSksdGhpcy5mcmFtZXdvcmsuYXR0cih7d2lkdGg6dC5fd2lkdGgsaGVpZ2h0OnQuX2hlaWdodH0pLHRoaXMuZnJhbWV3b3JrLnNlbGVjdCgiLmJnbGF5ZXIiKS5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDp0Ll93aWR0aCxoZWlnaHQ6dC5faGVpZ2h0fSkuY2FsbChjLmZpbGwsdC5iZ2NvbG9yKX0sdy5kcmF3VG9wbz1mdW5jdGlvbih0LGUscil7aWYoclsic2hvdyIrZV09PT0hMCl7dmFyIG49dGhpcy50b3BvanNvbixpPSJmcmFtZSI9PT1lP3kuc3BoZXJlU1ZHOl8obixuLm9iamVjdHNbZV0pO3QuYXBwZW5kKCJnIikuZGF0dW0oaSkuYXR0cigiY2xhc3MiLGUpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiYmFzZXBhdGgiKX19LHcuZHJhd0dyYXRpY3VsZT1mdW5jdGlvbih0LGUscil7dmFyIG49cltlXTtpZihuLnNob3dncmlkPT09ITApe3ZhciBvPXkuc2NvcGVEZWZhdWx0c1tyLnNjb3BlXSxhPW8ubG9uYXhpc1JhbmdlLHM9by5sYXRheGlzUmFuZ2UsbD0ibG9uYXhpcyI9PT1lP1tuLmR0aWNrXTpbMCxuLmR0aWNrXSx1PWkoYSxzLGwpO3QuYXBwZW5kKCJnIikuZGF0dW0odSkuYXR0cigiY2xhc3MiLGUrImdyYXRpY3VsZSIpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiZ3JhdGljdWxlcGF0aCIpfX0sdy5kcmF3TGF5b3V0PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dGhpcy5mcmFtZXdvcmsuc2VsZWN0KCJnLmJhc2VsYXllciIpLG49eS5iYXNlTGF5ZXJzLGk9eS5heGVzTmFtZXM7ci5zZWxlY3RBbGwoIioiKS5yZW1vdmUoKTtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyllPW5bb10sLTEhPT1pLmluZGV4T2YoZSk/dGhpcy5kcmF3R3JhdGljdWxlKHIsZSx0KTp0aGlzLmRyYXdUb3BvKHIsZSx0KTt0aGlzLnN0eWxlTGF5b3V0KHQpfSx3LnN0eWxlTGF5ZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXkuZmlsbExheWVycyxpPXkubGluZUxheWVyczstMSE9PW4uaW5kZXhPZihlKT9vKHQsZSxyKTotMSE9PWkuaW5kZXhPZihlKSYmYSh0LGUscil9LHcuc3R5bGVMYXlvdXQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9dGhpcy5mcmFtZXdvcmsuc2VsZWN0KCJnLmJhc2VsYXllciIpLG49eS5iYXNlTGF5ZXJzLGk9eS5heGVzTmFtZXMsbz0wO288bi5sZW5ndGg7bysrKWU9bltvXSwtMSE9PWkuaW5kZXhPZihlKT9zKHIsZSx0KTp0aGlzLnN0eWxlTGF5ZXIocixlLHQpfSx3LnJlbmRlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9byhbdC5sb24sdC5sYXRdKTtyZXR1cm4gZT8idHJhbnNsYXRlKCIrZVswXSsiLCIrZVsxXSsiKSI6bnVsbH1mdW5jdGlvbiBlKHQpe3ZhciBlPW8ucm90YXRlKCkscj11Lmdlby5kaXN0YW5jZShbdC5sb24sdC5sYXRdLFstZVswXSwtZVsxXV0pLG49cypNYXRoLlBJLzE4MDtyZXR1cm4gcj5uPyIwIjoiMS4wIn12YXIgcj10aGlzLmZyYW1ld29yayxuPXIuc2VsZWN0KCJnLmNob3JvcGxldGhsYXllciIpLGk9ci5zZWxlY3QoImcuc2NhdHRlcmdlb2xheWVyIiksbz10aGlzLnByb2plY3Rpb24sYT10aGlzLnBhdGgscz10aGlzLmNsaXBBbmdsZTtyLnNlbGVjdEFsbCgicGF0aC5iYXNlcGF0aCIpLmF0dHIoImQiLGEpLHIuc2VsZWN0QWxsKCJwYXRoLmdyYXRpY3VsZXBhdGgiKS5hdHRyKCJkIixhKSxuLnNlbGVjdEFsbCgicGF0aC5jaG9yb3BsZXRobG9jYXRpb24iKS5hdHRyKCJkIixhKSxuLnNlbGVjdEFsbCgicGF0aC5iYXNlcGF0aCIpLmF0dHIoImQiLGEpLGkuc2VsZWN0QWxsKCJwYXRoLmpzLWxpbmUiKS5hdHRyKCJkIixhKSxudWxsIT09cz8oaS5zZWxlY3RBbGwoInBhdGgucG9pbnQiKS5zdHlsZSgib3BhY2l0eSIsZSkuYXR0cigidHJhbnNmb3JtIix0KSxpLnNlbGVjdEFsbCgidGV4dCIpLnN0eWxlKCJvcGFjaXR5IixlKS5hdHRyKCJ0cmFuc2Zvcm0iLHQpKTooaS5zZWxlY3RBbGwoInBhdGgucG9pbnQiKS5hdHRyKCJ0cmFuc2Zvcm0iLHQpLGkuc2VsZWN0QWxsKCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIix0KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwKIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NTI5LCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NTc5LCIuLi8uLi9saWIvZmlsdGVyX3Zpc2libGUiOjU4NywiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIjo2MDUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4vY29uc3RhbnRzIjo2MzQsIi4vcHJvamVjdGlvbnMiOjY0MiwiLi9zZXRfc2NhbGUiOjY0MywiLi96b29tIjo2NDQsIi4vem9vbV9yZXNldCI6NjQ1LGQzOjEyNCx0b3BvanNvbjo0Nzh9XSw2MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9nZW8iKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJnZW8iLHIuYXR0cj0iZ2VvIixyLmlkUm9vdD0iZ2VvIixyLmlkUmVnZXg9L15nZW8oWzItOV18WzEtOV1bMC05XSspPyQvLHIuYXR0clJlZ2V4PS9eZ2VvKFsyLTldfFsxLTldWzAtOV0rKT8kLyxyLmF0dHJpYnV0ZXM9dCgiLi9sYXlvdXQvYXR0cmlidXRlcyIpLHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dC9sYXlvdXRfYXR0cmlidXRlcyIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXQvZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXQuX2Z1bGxEYXRhLG89aS5nZXRTdWJwbG90SWRzKGUsImdlbyIpO3ZvaWQgMD09PXdpbmRvdy5QbG90bHlHZW9Bc3NldHMmJih3aW5kb3cuUGxvdGx5R2VvQXNzZXRzPXt0b3BvanNvbjp7fX0pO2Zvcih2YXIgYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz1vW2FdLGw9aS5nZXRTdWJwbG90RGF0YShyLCJnZW8iLHMpLHU9ZVtzXS5fZ2VvO3ZvaWQgMD09PXUmJih1PW5ldyBuKHtpZDpzLGdyYXBoRGl2OnQsY29udGFpbmVyOmUuX2dlb2NvbnRhaW5lci5ub2RlKCksdG9wb2pzb25VUkw6dC5fY29udGV4dC50b3BvanNvblVSTH0sZSksZVtzXS5fZ2VvPXUpLHUucGxvdChsLGUsdC5fcHJvbWlzZXMpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIG89aS5nZXRTdWJwbG90SWRzKG4sImdlbyIpLGE9MDthPG8ubGVuZ3RoO2ErKyl7dmFyIHM9b1thXSxsPW5bc10uX2dlbzshZVtzXSYmbCYmbC5nZW9EaXYucmVtb3ZlKCl9fSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9aS5nZXRTdWJwbG90SWRzKGUsImdlbyIpLG49ZS5fc2l6ZSxvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBhPWVbcltvXV0scz1hLmRvbWFpbixsPWEuX2dlby5mcmFtZXdvcms7bC5hdHRyKCJzdHlsZSIsbnVsbCksbC5hdHRyKHt4Om4ubCtuLncqcy54WzBdK2EuX21hcmdpblgseTpuLnQrbi5oKigxLXMueVsxXSkrYS5fbWFyZ2luWSx3aWR0aDphLl93aWR0aCxoZWlnaHQ6YS5faGVpZ2h0fSksZS5fZ2VvaW1hZ2VzLm5vZGUoKS5hcHBlbmRDaGlsZChsLm5vZGUoKSl9fX0seyIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuL2dlbyI6NjM1LCIuL2xheW91dC9hdHRyaWJ1dGVzIjo2MzcsIi4vbGF5b3V0L2RlZmF1bHRzIjo2NDAsIi4vbGF5b3V0L2xheW91dF9hdHRyaWJ1dGVzIjo2NDF9XSw2Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtnZW86e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoiZ2VvIn19fSx7fV0sNjM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpO2UuZXhwb3J0cz17cmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0sc2hvd2dyaWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHRpY2swOnt2YWxUeXBlOiJudW1iZXIifSxkdGljazp7dmFsVHlwZToibnVtYmVyIn0sZ3JpZGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmxpZ2h0TGluZX0sZ3JpZHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX19fSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTA1fV0sNjM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2xpYiIpLGk9dCgiLi4vY29uc3RhbnRzIiksbz10KCIuL2F4aXNfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIodCxlKXtyZXR1cm4gbi5jb2VyY2UocyxsLG8sdCxlKX1mdW5jdGlvbiBhKHQpe3ZhciByLG4sbyxhLHMsbCx1PWUuc2NvcGU7cmV0dXJuIndvcmxkIj09PXU/KHI9ZS5wcm9qZWN0aW9uLG49ci50eXBlLG89ci5yb3RhdGlvbixzPWlbdCsiU3BhbiJdLGw9dm9pZCAwIT09c1tuXT9zW25dLzI6c1siKiJdLzIsYT0ibG9uYXhpcyI9PT10P28ubG9uOm8ubGF0LFthLWwsYStsXSk6aS5zY29wZURlZmF1bHRzW3VdW3QrIlJhbmdlIl19Zm9yKHZhciBzLGwsdT1pLmF4ZXNOYW1lcyxjPTA7Yzx1Lmxlbmd0aDtjKyspe3ZhciBoPXVbY107cz10W2hdfHx7fSxsPXt9O3ZhciBmPWEoaCkscD1yKCJyYW5nZSIsZik7bi5ub25lT3JBbGwocy5yYW5nZSxsLnJhbmdlLFswLDFdKSxyKCJ0aWNrMCIscFswXSkscigiZHRpY2siLCJsb25heGlzIj09PWg/MzA6MTApO3ZhciBkPXIoInNob3dncmlkIik7ZCYmKHIoImdyaWRjb2xvciIpLHIoImdyaWR3aWR0aCIpKSxlW2hdPWwsZVtoXS5fZnVsbFJhbmdlPWZ9fX0seyIuLi8uLi8uLi9saWIiOjU5MSwiLi4vY29uc3RhbnRzIjo2MzQsIi4vYXhpc19hdHRyaWJ1dGVzIjo2Mzh9XSw2NDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG4saT1yKCJzY29wZSIpLGE9IndvcmxkIiE9PWksbD1vLnNjb3BlRGVmYXVsdHNbaV0sdT1yKCJyZXNvbHV0aW9uIiksYz1yKCJwcm9qZWN0aW9uLnR5cGUiLGwucHJvalR5cGUpLGg9ImFsYmVycyB1c2EiPT09YyxmPS0xIT09Yy5pbmRleE9mKCJjb25pYyIpO2lmKGYpe3ZhciBwPWwucHJvalBhcmFsbGVsc3x8WzAsNjBdO3IoInByb2plY3Rpb24ucGFyYWxsZWxzIixwKX1pZihoKWUuc2NvcGU9InVzYSI7ZWxzZXt2YXIgZD1sLnByb2pSb3RhdGV8fFswLDAsMF07cigicHJvamVjdGlvbi5yb3RhdGlvbi5sb24iLGRbMF0pLHIoInByb2plY3Rpb24ucm90YXRpb24ubGF0IixkWzFdKSxyKCJwcm9qZWN0aW9uLnJvdGF0aW9uLnJvbGwiLGRbMl0pLG49cigic2hvd2NvYXN0bGluZXMiLCFhKSxuJiYocigiY29hc3RsaW5lY29sb3IiKSxyKCJjb2FzdGxpbmV3aWR0aCIpKSxuPXIoInNob3dvY2VhbiIpLG4mJnIoIm9jZWFuY29sb3IiKX1yKCJwcm9qZWN0aW9uLnNjYWxlIiksbj1yKCJzaG93bGFuZCIpLG4mJnIoImxhbmRjb2xvciIpLG49cigic2hvd2xha2VzIiksbiYmcigibGFrZWNvbG9yIiksbj1yKCJzaG93cml2ZXJzIiksbiYmKHIoInJpdmVyY29sb3IiKSxyKCJyaXZlcndpZHRoIikpLG49cigic2hvd2NvdW50cmllcyIsYSksbiYmKHIoImNvdW50cnljb2xvciIpLHIoImNvdW50cnl3aWR0aCIpKSwoInVzYSI9PT1pfHwibm9ydGggYW1lcmljYSI9PT1pJiY1MD09PXUpJiYocigic2hvd3N1YnVuaXRzIiwhMCkscigic3VidW5pdGNvbG9yIikscigic3VidW5pdHdpZHRoIikpLGF8fChuPXIoInNob3dmcmFtZSIsITApLG4mJihyKCJmcmFtZWNvbG9yIikscigiZnJhbWV3aWR0aCIpKSkscigiYmdjb2xvciIpLHModCxlKSxlLl9pc0hpZ2hSZXM9NTA9PT11LGUuX2NsaXBBbmdsZT1vLmxvbmF4aXNTcGFuW2NdLzIsZS5faXNBbGJlcnNVc2E9aCxlLl9pc0NvbmljPWYsZS5faXNTY29wZWQ9YTt2YXIgbT1lLnByb2plY3Rpb24ucm90YXRpb258fHt9O2UucHJvamVjdGlvbi5fcm90YXRlPVstbS5sb258fDAsLW0ubGF0fHwwLG0ucm9sbHx8MF19dmFyIGk9dCgiLi4vLi4vc3VicGxvdF9kZWZhdWx0cyIpLG89dCgiLi4vY29uc3RhbnRzIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIikscz10KCIuL2F4aXNfZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2kodCxlLHIse3R5cGU6ImdlbyIsYXR0cmlidXRlczphLGhhbmRsZURlZmF1bHRzOm4scGFydGl0aW9uOiJ5In0pfX0seyIuLi8uLi9zdWJwbG90X2RlZmF1bHRzIjo2NzcsIi4uL2NvbnN0YW50cyI6NjM0LCIuL2F4aXNfZGVmYXVsdHMiOjYzOSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjQxfV0sNjQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLGk9dCgiLi4vY29uc3RhbnRzIiksbz10KCIuL2F4aXNfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz17ZG9tYWluOnt4Ont2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjF9LHt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfV0sZGZsdDpbMCwxXX0seTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX1dLGRmbHQ6WzAsMV19fSxyZXNvbHV0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WzExMCw1MF0sZGZsdDoxMTAsY29lcmNlTnVtYmVyOiEwfSxzY29wZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGkuc2NvcGVEZWZhdWx0cyksZGZsdDoid29ybGQifSxwcm9qZWN0aW9uOnt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6T2JqZWN0LmtleXMoaS5wcm9qTmFtZXMpfSxyb3RhdGlvbjp7bG9uOnt2YWxUeXBlOiJudW1iZXIifSxsYXQ6e3ZhbFR5cGU6Im51bWJlciJ9LHJvbGw6e3ZhbFR5cGU6Im51bWJlciJ9fSxwYXJhbGxlbHM6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEwLGRmbHQ6MX19LHNob3djb2FzdGxpbmVzOnt2YWxUeXBlOiJib29sZWFuIn0sY29hc3RsaW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LGNvYXN0bGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd2xhbmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxhbmRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5sYW5kQ29sb3J9LHNob3dvY2Vhbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sb2NlYW5jb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS53YXRlckNvbG9yfSxzaG93bGFrZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxha2Vjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS53YXRlckNvbG9yfSxzaG93cml2ZXJzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxyaXZlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLndhdGVyQ29sb3J9LHJpdmVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93Y291bnRyaWVzOnt2YWxUeXBlOiJib29sZWFuIn0sY291bnRyeWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxjb3VudHJ5d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93c3VidW5pdHM6e3ZhbFR5cGU6ImJvb2xlYW4ifSxzdWJ1bml0Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LHN1YnVuaXR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHNob3dmcmFtZTp7dmFsVHlwZToiYm9vbGVhbiJ9LGZyYW1lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LGZyYW1ld2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmJhY2tncm91bmR9LGxvbmF4aXM6byxsYXRheGlzOm99fSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTA1LCIuLi9jb25zdGFudHMiOjYzNCwiLi9heGlzX2F0dHJpYnV0ZXMiOjYzOH1dLDY0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2Z1bmN0aW9uIGUodCxlKXtyZXR1cm57dHlwZToiRmVhdHVyZSIsaWQ6dC5pZCxwcm9wZXJ0aWVzOnQucHJvcGVydGllcyxnZW9tZXRyeTpyKHQuZ2VvbWV0cnksZSl9fWZ1bmN0aW9uIHIoZSxuKXtpZighZSlyZXR1cm4gbnVsbDtpZigiR2VvbWV0cnlDb2xsZWN0aW9uIj09PWUudHlwZSlyZXR1cm57dHlwZToiR2VvbWV0cnlDb2xsZWN0aW9uIixnZW9tZXRyaWVzOm9iamVjdC5nZW9tZXRyaWVzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcih0LG4pfSl9O2lmKCFTLmhhc093blByb3BlcnR5KGUudHlwZSkpcmV0dXJuIG51bGw7dmFyIGk9U1tlLnR5cGVdO3JldHVybiB0Lmdlby5zdHJlYW0oZSxuKGkpKSxpLnJlc3VsdCgpfWZ1bmN0aW9uIG4oKXt9ZnVuY3Rpb24gaSh0KXtpZigoZT10Lmxlbmd0aCk8NClyZXR1cm4hMTtmb3IodmFyIGUscj0wLG49dFtlLTFdWzFdKnRbMF1bMF0tdFtlLTFdWzBdKnRbMF1bMV07KytyPGU7KW4rPXRbci0xXVsxXSp0W3JdWzBdLXRbci0xXVswXSp0W3JdWzFdO3JldHVybiAwPj1ufWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9ZVswXSxuPWVbMV0saT0hMSxvPTAsYT10Lmxlbmd0aCxzPWEtMTthPm87cz1vKyspe3ZhciBsPXRbb10sdT1sWzBdLGM9bFsxXSxoPXRbc10sZj1oWzBdLHA9aFsxXTtjPm5ecD5uJiYoZi11KSoobi1jKS8ocC1jKSt1PnImJihpPSFpKX1yZXR1cm4gaX1mdW5jdGlvbiBhKHQpe3JldHVybiB0P3QvTWF0aC5zaW4odCk6MX1mdW5jdGlvbiBzKHQpe3JldHVybiB0PjE/UDotMT50Py1QOk1hdGguYXNpbih0KX1mdW5jdGlvbiBsKHQpe3JldHVybiB0PjE/MDotMT50P0k6TWF0aC5hY29zKHQpfWZ1bmN0aW9uIHUodCxlKXt2YXIgcj0oMitQKSpNYXRoLnNpbihlKTtlLz0yO2Zvcih2YXIgbj0wLGk9MS8wOzEwPm4mJk1hdGguYWJzKGkpPkw7bisrKXt2YXIgbz1NYXRoLmNvcyhlKTtlLT1pPShlK01hdGguc2luKGUpKihvKzIpLXIpLygyKm8qKDErbykpfXJldHVyblsyL01hdGguc3FydChJKig0K0kpKSp0KigxK01hdGguY29zKGUpKSwyKk1hdGguc3FydChJLyg0K0kpKSpNYXRoLnNpbihlKV19ZnVuY3Rpb24gYyh0LGUpe2Z1bmN0aW9uIHIocixuKXt2YXIgaT1PKHIvZSxuKTtyZXR1cm4gaVswXSo9dCxpfXJldHVybiBhcmd1bWVudHMubGVuZ3RoPDImJihlPXQpLDE9PT1lP086ZT09PTEvMD9mOihyLmludmVydD1mdW5jdGlvbihyLG4pe3ZhciBpPU8uaW52ZXJ0KHIvdCxuKTtyZXR1cm4gaVswXSo9ZSxpfSxyKX1mdW5jdGlvbiBoKCl7dmFyIHQ9MixlPUQoYykscj1lKHQpO3JldHVybiByLmNvZWZmaWNpZW50PWZ1bmN0aW9uKHIpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UodD0rcik6dH0scn1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSkvTWF0aC5jb3MoZS89MiksMipNYXRoLnNpbihlKV19ZnVuY3Rpb24gcCh0LGUpe3JldHVyblszKnQvKDIqSSkqTWF0aC5zcXJ0KEkqSS8zLWUqZSksZV19ZnVuY3Rpb24gZCh0LGUpe3JldHVyblt0LDEuMjUqTWF0aC5sb2coTWF0aC50YW4oSS80Ky40KmUpKV19ZnVuY3Rpb24gbSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHIsbj10Kk1hdGguc2luKGUpLGk9MzA7ZG8gZS09cj0oZStNYXRoLnNpbihlKS1uKS8oMStNYXRoLmNvcyhlKSk7d2hpbGUoTWF0aC5hYnMocik+TCYmLS1pPjApO3JldHVybiBlLzJ9fWZ1bmN0aW9uIGcodCxlLHIpe2Z1bmN0aW9uIG4ocixuKXtyZXR1cm5bdCpyKk1hdGguY29zKG49aShuKSksZSpNYXRoLnNpbihuKV19dmFyIGk9bShyKTtyZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24obixpKXt2YXIgbz1zKGkvZSk7cmV0dXJuW24vKHQqTWF0aC5jb3MobykpLHMoKDIqbytNYXRoLnNpbigyKm8pKS9yKV19LG59ZnVuY3Rpb24gdih0LGUpe3ZhciByPWUqZSxuPXIqcjtyZXR1cm5bdCooLjg3MDctLjEzMTk3OSpyK24qKC0uMDEzNzkxK24qKC4wMDM5NzEqci0uMDAxNTI5Km4pKSksZSooMS4wMDcyMjYrciooLjAxNTA4NStuKigtLjA0NDQ3NSsuMDI4ODc0KnItLjAwNTkxNipuKSkpXX1mdW5jdGlvbiB5KHQsZSl7dmFyIHIsbj1NYXRoLm1pbigxOCwzNipNYXRoLmFicyhlKS9JKSxpPU1hdGguZmxvb3Iobiksbz1uLWksYT0ocj1OW2ldKVswXSxzPXJbMV0sbD0ocj1OWysraV0pWzBdLHU9clsxXSxjPShyPU5bTWF0aC5taW4oMTksKytpKV0pWzBdLGg9clsxXTtyZXR1cm5bdCoobCtvKihjLWEpLzIrbypvKihjLTIqbCthKS8yKSwoZT4wP1A6LVApKih1K28qKGgtcykvMitvKm8qKGgtMip1K3MpLzIpXX1mdW5jdGlvbiBiKHQsZSl7cmV0dXJuW3QqTWF0aC5jb3MoZSksZV19ZnVuY3Rpb24geCh0LGUpe3ZhciByPU1hdGguY29zKGUpLG49YShsKHIqTWF0aC5jb3ModC89MikpKTtyZXR1cm5bMipyKk1hdGguc2luKHQpKm4sTWF0aC5zaW4oZSkqbl19ZnVuY3Rpb24gXyh0LGUpe3ZhciByPXgodCxlKTtyZXR1cm5bKHJbMF0rdC9QKS8yLChyWzFdK2UpLzJdfXQuZ2VvLnByb2plY3Q9ZnVuY3Rpb24odCxlKXt2YXIgbj1lLnN0cmVhbTtpZighbil0aHJvdyBuZXcgRXJyb3IoIm5vdCB5ZXQgc3VwcG9ydGVkIik7cmV0dXJuKHQmJncuaGFzT3duUHJvcGVydHkodC50eXBlKT93W3QudHlwZV06cikodCxuKX07dmFyIHc9e0ZlYXR1cmU6ZSxGZWF0dXJlQ29sbGVjdGlvbjpmdW5jdGlvbih0LHIpe3JldHVybnt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6dC5mZWF0dXJlcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGUodCxyKX0pfX19LE09W10saz1bXSxBPXtwb2ludDpmdW5jdGlvbih0LGUpe00ucHVzaChbdCxlXSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PU0ubGVuZ3RoP00ubGVuZ3RoPDI/e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpNWzBdfTp7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6TX06bnVsbDtyZXR1cm4gTT1bXSx0fX0sVD17bGluZVN0YXJ0Om4scG9pbnQ6ZnVuY3Rpb24odCxlKXtNLnB1c2goW3QsZV0pfSxsaW5lRW5kOmZ1bmN0aW9uKCl7TS5sZW5ndGgmJihrLnB1c2goTSksTT1bXSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PWsubGVuZ3RoP2subGVuZ3RoPDI/e3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOmtbMF19Ont0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOmt9Om51bGw7cmV0dXJuIGs9W10sdH19LEU9e3BvbHlnb25TdGFydDpuLGxpbmVTdGFydDpuLHBvaW50OmZ1bmN0aW9uKHQsZSl7TS5wdXNoKFt0LGVdKX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PU0ubGVuZ3RoO2lmKHQpe2RvIE0ucHVzaChNWzBdLnNsaWNlKCkpO3doaWxlKCsrdDw0KTtrLnB1c2goTSksTT1bXX19LHBvbHlnb25FbmQ6bixyZXN1bHQ6ZnVuY3Rpb24oKXtpZighay5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHQ9W10sZT1bXTtyZXR1cm4gay5mb3JFYWNoKGZ1bmN0aW9uKHIpe2kocik/dC5wdXNoKFtyXSk6ZS5wdXNoKHIpfSksZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF07dC5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiBvKHRbMF0scik/KHQucHVzaChlKSwhMCk6dm9pZCAwfSl8fHQucHVzaChbZV0pfSksaz1bXSx0Lmxlbmd0aD90Lmxlbmd0aD4xP3t0eXBlOiJNdWx0aVBvbHlnb24iLGNvb3JkaW5hdGVzOnR9Ont0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp0WzBdfTpudWxsfX0sUz17UG9pbnQ6QSxNdWx0aVBvaW50OkEsTGluZVN0cmluZzpULE11bHRpTGluZVN0cmluZzpULFBvbHlnb246RSxNdWx0aVBvbHlnb246RSxTcGhlcmU6RX0sTD0xZS02LHo9TCpMLEk9TWF0aC5QSSxQPUkvMixDPShNYXRoLnNxcnQoSSksSS8xODApLFI9MTgwL0ksaj10Lmdlby5wcm9qZWN0aW9uLEQ9dC5nZW8ucHJvamVjdGlvbk11dGF0b3I7dC5nZW8uaW50ZXJydXB0PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIodCxyKXtmb3IodmFyIG49MD5yPy0xOjEsaT1sWysoMD5yKV0sbz0wLGE9aS5sZW5ndGgtMTthPm8mJnQ+aVtvXVsyXVswXTsrK28pO3ZhciBzPWUodC1pW29dWzFdWzBdLHIpO3JldHVybiBzWzBdKz1lKGlbb11bMV1bMF0sbipyPm4qaVtvXVswXVsxXT9pW29dWzBdWzFdOnIpWzBdLHN9ZnVuY3Rpb24gbigpe3M9bC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3ZhciByLG49ZSh0WzBdWzBdLHRbMF1bMV0pWzBdLGk9ZSh0WzJdWzBdLHRbMl1bMV0pWzBdLG89ZSh0WzFdWzBdLHRbMF1bMV0pWzFdLGE9ZSh0WzFdWzBdLHRbMV1bMV0pWzFdO3JldHVybiBvPmEmJihyPW8sbz1hLGE9ciksW1tuLG9dLFtpLGFdXX0pfSl9ZnVuY3Rpb24gaSgpe2Zvcih2YXIgZT0xZS02LHI9W10sbj0wLGk9bFswXS5sZW5ndGg7aT5uOysrbil7dmFyIGE9bFswXVtuXSxzPTE4MCphWzBdWzBdL0ksdT0xODAqYVswXVsxXS9JLGM9MTgwKmFbMV1bMV0vSSxoPTE4MCphWzJdWzBdL0ksZj0xODAqYVsyXVsxXS9JO3IucHVzaChvKFtbcytlLHUrZV0sW3MrZSxjLWVdLFtoLWUsYy1lXSxbaC1lLGYrZV1dLDMwKSl9Zm9yKHZhciBuPWxbMV0ubGVuZ3RoLTE7bj49MDstLW4pe3ZhciBhPWxbMV1bbl0scz0xODAqYVswXVswXS9JLHU9MTgwKmFbMF1bMV0vSSxjPTE4MCphWzFdWzFdL0ksaD0xODAqYVsyXVswXS9JLGY9MTgwKmFbMl1bMV0vSTtyLnB1c2gobyhbW2gtZSxmLWVdLFtoLWUsYytlXSxbcytlLGMrZV0sW3MrZSx1LWVdXSwzMCkpfXJldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbdC5tZXJnZShyKV19fWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHIsbixpLG89LTEsYT10Lmxlbmd0aCxzPXRbMF0sbD1bXTsrK288YTspe3I9dFtvXSxuPShyWzBdLXNbMF0pL2UsaT0oclsxXS1zWzFdKS9lO2Zvcih2YXIgdT0wO2U+dTsrK3UpbC5wdXNoKFtzWzBdK3UqbixzWzFdK3UqaV0pO3M9cn1yZXR1cm4gbC5wdXNoKHIpLGx9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBNYXRoLmFicyh0WzBdLWVbMF0pPEwmJk1hdGguYWJzKHRbMV0tZVsxXSk8TH12YXIgcyxsPVtbW1stSSwwXSxbMCxQXSxbSSwwXV1dLFtbWy1JLDBdLFswLC1QXSxbSSwwXV1dXTtlLmludmVydCYmKHIuaW52ZXJ0PWZ1bmN0aW9uKHQsbil7Zm9yKHZhciBpPXNbKygwPm4pXSxvPWxbKygwPm4pXSx1PTAsYz1pLmxlbmd0aDtjPnU7Kyt1KXt2YXIgaD1pW3VdO2lmKGhbMF1bMF08PXQmJnQ8aFsxXVswXSYmaFswXVsxXTw9biYmbjxoWzFdWzFdKXt2YXIgZj1lLmludmVydCh0LWUob1t1XVsxXVswXSwwKVswXSxuKTtyZXR1cm4gZlswXSs9b1t1XVsxXVswXSxhKHIoZlswXSxmWzFdKSxbdCxuXSk/ZjpudWxsfX19KTt2YXIgdT10Lmdlby5wcm9qZWN0aW9uKHIpLGM9dS5zdHJlYW07cmV0dXJuIHUuc3RyZWFtPWZ1bmN0aW9uKGUpe3ZhciByPXUucm90YXRlKCksbj1jKGUpLG89KHUucm90YXRlKFswLDBdKSxjKGUpKTtyZXR1cm4gdS5yb3RhdGUociksbi5zcGhlcmU9ZnVuY3Rpb24oKXt0Lmdlby5zdHJlYW0oaSgpLG8pfSxufSx1LmxvYmVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXQubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChmdW5jdGlvbih0KXtyZXR1cm5bW3RbMF1bMF0qSS8xODAsdFswXVsxXSpJLzE4MF0sW3RbMV1bMF0qSS8xODAsdFsxXVsxXSpJLzE4MF0sW3RbMl1bMF0qSS8xODAsdFsyXVsxXSpJLzE4MF1dfSl9KSxuKCksdSk6bC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3JldHVybltbMTgwKnRbMF1bMF0vSSwxODAqdFswXVsxXS9JXSxbMTgwKnRbMV1bMF0vSSwxODAqdFsxXVsxXS9JXSxbMTgwKnRbMl1bMF0vSSwxODAqdFsyXVsxXS9JXV19KX0pfSx1fSx1LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPS41KmUqTWF0aC5zcXJ0KCg0K0kpL0kpLG49cyhyKSxpPU1hdGguY29zKG4pO3JldHVyblt0LygyL01hdGguc3FydChJKig0K0kpKSooMStpKSkscygobityKihpKzIpKS8oMitQKSldfSwodC5nZW8uZWNrZXJ0ND1mdW5jdGlvbigpe3JldHVybiBqKHUpfSkucmF3PXU7dmFyIE89dC5nZW8uYXppbXV0aGFsRXF1YWxBcmVhLnJhdztmLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPTIqcyhlLzIpO3JldHVyblt0Kk1hdGguY29zKHIvMikvTWF0aC5jb3Mocikscl19LCh0Lmdlby5oYW1tZXI9aCkucmF3PWMscC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bMi8zKkkqdC9NYXRoLnNxcnQoSSpJLzMtZSplKSxlXX0sKHQuZ2VvLmthdnJheXNraXk3PWZ1bmN0aW9uKCl7cmV0dXJuIGoocCl9KS5yYXc9cCxkLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0LDIuNSpNYXRoLmF0YW4oTWF0aC5leHAoLjgqZSkpLS42MjUqSV19LCh0Lmdlby5taWxsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaihkKX0pLnJhdz1kO3ZhciBGPShtKEkpLGcoTWF0aC5TUVJUMi9QLE1hdGguU1FSVDIsSSkpOyh0Lmdlby5tb2xsd2VpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gaihGKX0pLnJhdz1GLHYuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLGk9MjU7ZG97dmFyIG89bipuLGE9bypvO24tPXI9KG4qKDEuMDA3MjI2K28qKC4wMTUwODUrYSooLS4wNDQ0NzUrLjAyODg3NCpvLS4wMDU5MTYqYSkpKS1lKS8oMS4wMDcyMjYrbyooLjA0NTI1NSthKigtMC4zMTEzMjUrLjI1OTg2NipvLS4wMDU5MTYqMTEqYSkpKX13aGlsZShNYXRoLmFicyhyKT5MJiYtLWk+MCk7cmV0dXJuW3QvKC44NzA3KyhvPW4qbikqKC0uMTMxOTc5K28qKC0uMDEzNzkxK28qbypvKiguMDAzOTcxLS4wMDE1MjkqbykpKSksbl19LCh0Lmdlby5uYXR1cmFsRWFydGg9ZnVuY3Rpb24oKXtyZXR1cm4gaih2KX0pLnJhdz12O3ZhciBOPVtbLjk5ODYsLS4wNjJdLFsxLDBdLFsuOTk4NiwuMDYyXSxbLjk5NTQsLjEyNF0sWy45OSwuMTg2XSxbLjk4MjIsLjI0OF0sWy45NzMsLjMxXSxbLjk2LC4zNzJdLFsuOTQyNywuNDM0XSxbLjkyMTYsLjQ5NThdLFsuODk2MiwuNTU3MV0sWy44Njc5LC42MTc2XSxbLjgzNSwuNjc2OV0sWy43OTg2LC43MzQ2XSxbLjc1OTcsLjc5MDNdLFsuNzE4NiwuODQzNV0sWy42NzMyLC44OTM2XSxbLjYyMTMsLjkzOTRdLFsuNTcyMiwuOTc2MV0sWy41MzIyLDFdXTtOLmZvckVhY2goZnVuY3Rpb24odCl7dFsxXSo9MS4wMTQ0fSkseS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lL1Asbj05MCpyLGk9TWF0aC5taW4oMTgsTWF0aC5hYnMobi81KSksbz1NYXRoLm1heCgwLE1hdGguZmxvb3IoaSkpO2Rve3ZhciBhPU5bb11bMV0scz1OW28rMV1bMV0sbD1OW01hdGgubWluKDE5LG8rMildWzFdLHU9bC1hLGM9bC0yKnMrYSxoPTIqKE1hdGguYWJzKHIpLXMpL3UsZj1jL3UscD1oKigxLWYqaCooMS0yKmYqaCkpO2lmKHA+PTB8fDE9PT1vKXtuPShlPj0wPzU6LTUpKihwK2kpO3ZhciBkLG09NTA7ZG8gaT1NYXRoLm1pbigxOCxNYXRoLmFicyhuKS81KSxvPU1hdGguZmxvb3IoaSkscD1pLW8sYT1OW29dWzFdLHM9TltvKzFdWzFdLGw9TltNYXRoLm1pbigxOSxvKzIpXVsxXSxuLT0oZD0oZT49MD9QOi1QKSoocytwKihsLWEpLzIrcCpwKihsLTIqcythKS8yKS1lKSpSO3doaWxlKE1hdGguYWJzKGQpPnomJi0tbT4wKTticmVha319d2hpbGUoLS1vPj0wKTt2YXIgZz1OW29dWzBdLHY9TltvKzFdWzBdLHk9TltNYXRoLm1pbigxOSxvKzIpXVswXTtyZXR1cm5bdC8oditwKih5LWcpLzIrcCpwKih5LTIqditnKS8yKSxuKkNdfSwodC5nZW8ucm9iaW5zb249ZnVuY3Rpb24oKXtyZXR1cm4gaih5KX0pLnJhdz15LGIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QvTWF0aC5jb3MoZSksZV19LCh0Lmdlby5zaW51c29pZGFsPWZ1bmN0aW9uKCl7cmV0dXJuIGooYil9KS5yYXc9Yix4LmludmVydD1mdW5jdGlvbih0LGUpe2lmKCEodCp0KzQqZSplPkkqSStMKSl7dmFyIHI9dCxuPWUsaT0yNTtkb3t2YXIgbyxhPU1hdGguc2luKHIpLHM9TWF0aC5zaW4oci8yKSx1PU1hdGguY29zKHIvMiksYz1NYXRoLnNpbihuKSxoPU1hdGguY29zKG4pLGY9TWF0aC5zaW4oMipuKSxwPWMqYyxkPWgqaCxtPXMqcyxnPTEtZCp1KnUsdj1nP2woaCp1KSpNYXRoLnNxcnQobz0xL2cpOm89MCx5PTIqdipoKnMtdCxiPXYqYy1lLHg9byooZCptK3YqaCp1KnApLF89byooLjUqYSpmLTIqdipjKnMpLHc9LjI1Km8qKGYqcy12KmMqZCphKSxNPW8qKHAqdSt2Km0qaCksaz1fKnctTSp4O2lmKCFrKWJyZWFrO3ZhciBBPShiKl8teSpNKS9rLFQ9KHkqdy1iKngpL2s7ci09QSxuLT1UfXdoaWxlKChNYXRoLmFicyhBKT5MfHxNYXRoLmFicyhUKT5MKSYmLS1pPjApO3JldHVybltyLG5dfX0sKHQuZ2VvLmFpdG9mZj1mdW5jdGlvbigpe3JldHVybiBqKHgpfSkucmF3PXgsXy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10LG49ZSxpPTI1O2Rve3ZhciBvLGE9TWF0aC5jb3Mobikscz1NYXRoLnNpbihuKSx1PU1hdGguc2luKDIqbiksYz1zKnMsaD1hKmEsZj1NYXRoLnNpbihyKSxwPU1hdGguY29zKHIvMiksZD1NYXRoLnNpbihyLzIpLG09ZCpkLGc9MS1oKnAqcCx2PWc/bChhKnApKk1hdGguc3FydChvPTEvZyk6bz0wLHk9LjUqKDIqdiphKmQrci9QKS10LGI9LjUqKHYqcytuKS1lLHg9LjUqbyooaCptK3YqYSpwKmMpKy41L1AsXz1vKihmKnUvNC12KnMqZCksdz0uMTI1Km8qKHUqZC12KnMqaCpmKSxNPS41Km8qKGMqcCt2Km0qYSkrLjUsaz1fKnctTSp4LEE9KGIqXy15Kk0pL2ssVD0oeSp3LWIqeCkvaztyLT1BLG4tPVR9d2hpbGUoKE1hdGguYWJzKEEpPkx8fE1hdGguYWJzKFQpPkwpJiYtLWk+MCk7cmV0dXJuW3Isbl19LCh0Lmdlby53aW5rZWwzPWZ1bmN0aW9uKCl7cmV0dXJuIGooXyl9KS5yYXc9X31lLmV4cG9ydHM9bn0se31dLDY0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9dC5wcm9qZWN0aW9uLG49dC5sb25heGlzLGE9dC5sYXRheGlzLGw9dC5kb21haW4sdT10LmZyYW1ld2lkdGh8fDAsYz1lLncqKGwueFsxXS1sLnhbMF0pLGg9ZS5oKihsLnlbMV0tbC55WzBdKSxmPW4ucmFuZ2VbMF0rcyxwPW4ucmFuZ2VbMV0tcyxkPWEucmFuZ2VbMF0rcyxtPWEucmFuZ2VbMV0tcyxnPW4uX2Z1bGxSYW5nZVswXStzLHY9bi5fZnVsbFJhbmdlWzFdLXMseT1hLl9mdWxsUmFuZ2VbMF0rcyxiPWEuX2Z1bGxSYW5nZVsxXS1zO3IuX3RyYW5zbGF0ZTA9W2UubCtjLzIsZS50K2gvMl07dmFyIHg9cC1mLF89bS1kLHc9W2YreC8yLGQrXy8yXSxNPXIuX3JvdGF0ZTtyLl9jZW50ZXI9W3dbMF0rTVswXSx3WzFdK01bMV1dO3ZhciBrPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGgubWluKF8qYy8odFsxXVswXS10WzBdWzBdKSxfKmgvKHRbMV1bMV0tdFswXVsxXSkpfXZhciBhLHMsbCx4LF89ZS5zY2FsZSgpLHc9ci5fdHJhbnNsYXRlMCxNPWkoZixkLHAsbSksaz1pKGcseSx2LGIpO2w9byhlLE0pLGE9bihsKSx4PW8oZSxrKSxyLl9mdWxsU2NhbGU9bih4KSxlLnNjYWxlKGEpLGw9byhlLE0pLHM9W3dbMF0tbFswXVswXSt1LHdbMV0tbFswXVsxXSt1XSxyLl90cmFuc2xhdGU9cyxlLnRyYW5zbGF0ZShzKSxsPW8oZSxNKSx0Ll9pc0FsYmVyc1VzYXx8ZS5jbGlwRXh0ZW50KGwpLGE9ci5zY2FsZSphLHIuX3NjYWxlPWEsdC5fd2lkdGg9TWF0aC5yb3VuZChsWzFdWzBdKSt1LHQuX2hlaWdodD1NYXRoLnJvdW5kKGxbMV1bMV0pK3UsdC5fbWFyZ2luWD0oYy1NYXRoLnJvdW5kKGxbMV1bMF0pKS8yLHQuX21hcmdpblk9KGgtTWF0aC5yb3VuZChsWzFdWzFdKSkvMn07cmV0dXJuIGt9ZnVuY3Rpb24gaSh0LGUscixuKXt2YXIgaT0oci10KS80O3JldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbW1t0LGVdLFt0LG5dLFt0K2ksbl0sW3QrMippLG5dLFt0KzMqaSxuXSxbcixuXSxbcixlXSxbci1pLGVdLFtyLTIqaSxlXSxbci0zKmksZV0sW3QsZV1dXX19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBhLmdlby5wYXRoKCkucHJvamVjdGlvbih0KS5ib3VuZHMoZSl9dmFyIGE9dCgiZDMiKSxzPXQoIi4vY29uc3RhbnRzIikuY2xpcFBhZDtlLmV4cG9ydHM9bn0seyIuL2NvbnN0YW50cyI6NjM0LGQzOjEyNH1dLDY0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI7cmV0dXJuKHI9ZS5faXNTY29wZWQ/bzplLl9jbGlwQW5nbGU/czphKSh0LGUucHJvamVjdGlvbil9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPWUuX2Z1bGxTY2FsZTtyZXR1cm4gXy5iZWhhdmlvci56b29tKCkudHJhbnNsYXRlKHQudHJhbnNsYXRlKCkpLnNjYWxlKHQuc2NhbGUoKSkuc2NhbGVFeHRlbnQoWy41KnIsMTAwKnJdKX1mdW5jdGlvbiBvKHQsZSl7ZnVuY3Rpb24gcigpe18uc2VsZWN0KHRoaXMpLnN0eWxlKGspfWZ1bmN0aW9uIG4oKXthLnNjYWxlKF8uZXZlbnQuc2NhbGUpLnRyYW5zbGF0ZShfLmV2ZW50LnRyYW5zbGF0ZSksdC5yZW5kZXIoKX1mdW5jdGlvbiBvKCl7Xy5zZWxlY3QodGhpcykuc3R5bGUoQSl9dmFyIGE9dC5wcm9qZWN0aW9uLHM9aShhLGUpO3JldHVybiBzLm9uKCJ6b29tc3RhcnQiLHIpLm9uKCJ6b29tIixuKS5vbigiem9vbWVuZCIsbyksc31mdW5jdGlvbiBhKHQsZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZy5pbnZlcnQodCl9ZnVuY3Rpb24gbih0KXt2YXIgZT1nKHIodCkpO3JldHVybiBNYXRoLmFicyhlWzBdLXRbMF0pPnl8fE1hdGguYWJzKGVbMV0tdFsxXSk+eX1mdW5jdGlvbiBvKCl7Xy5zZWxlY3QodGhpcykuc3R5bGUoayksbD1fLm1vdXNlKHRoaXMpLHU9Zy5yb3RhdGUoKSxjPWcudHJhbnNsYXRlKCksaD11LGY9cihsKX1mdW5jdGlvbiBhKCl7cmV0dXJuIHA9Xy5tb3VzZSh0aGlzKSxuKGwpPyh2LnNjYWxlKGcuc2NhbGUoKSksdm9pZCB2LnRyYW5zbGF0ZShnLnRyYW5zbGF0ZSgpKSk6KGcuc2NhbGUoXy5ldmVudC5zY2FsZSksZy50cmFuc2xhdGUoW2NbMF0sXy5ldmVudC50cmFuc2xhdGVbMV1dKSxmP3IocCkmJihtPXIocCksZD1baFswXSsobVswXS1mWzBdKSx1WzFdLHVbMl1dLGcucm90YXRlKGQpLGg9ZCk6KGw9cCxmPXIobCkpLHZvaWQgdC5yZW5kZXIoKSl9ZnVuY3Rpb24gcygpe18uc2VsZWN0KHRoaXMpLnN0eWxlKEEpfXZhciBsLHUsYyxoLGYscCxkLG0sZz10LnByb2plY3Rpb24sdj1pKGcsZSkseT0yO3JldHVybiB2Lm9uKCJ6b29tc3RhcnQiLG8pLm9uKCJ6b29tIixhKS5vbigiem9vbWVuZCIscyksdn1mdW5jdGlvbiBzKHQsZSl7ZnVuY3Rpb24gcih0KXt2Kyt8fHQoe3R5cGU6Inpvb21zdGFydCJ9KX1mdW5jdGlvbiBuKHQpe3Qoe3R5cGU6Inpvb20ifSl9ZnVuY3Rpb24gbyh0KXstLXZ8fHQoe3R5cGU6Inpvb21lbmQifSl9dmFyIGEscz10LnByb2plY3Rpb24scD17cjpzLnJvdGF0ZSgpLGs6cy5zY2FsZSgpfSxkPWkocyxlKSxtPXgoZCwiem9vbXN0YXJ0Iiwiem9vbSIsInpvb21lbmQiKSx2PTAseT1kLm9uO3JldHVybiBkLm9uKCJ6b29tc3RhcnQiLGZ1bmN0aW9uKCl7Xy5zZWxlY3QodGhpcykuc3R5bGUoayk7dmFyIHQ9Xy5tb3VzZSh0aGlzKSxlPXMucm90YXRlKCksaT1lLG89cy50cmFuc2xhdGUoKSx2PXUoZSk7YT1sKHMsdCkseS5jYWxsKGQsInpvb20iLGZ1bmN0aW9uKCl7dmFyIHI9Xy5tb3VzZSh0aGlzKTtpZihzLnNjYWxlKHAuaz1fLmV2ZW50LnNjYWxlKSxhKXtpZihsKHMscikpe3Mucm90YXRlKGUpLnRyYW5zbGF0ZShvKTt2YXIgdT1sKHMsciksZD1oKGEsdSkseT1nKGModixkKSksYj1wLnI9Zih5LGEsaSk7aXNGaW5pdGUoYlswXSkmJmlzRmluaXRlKGJbMV0pJiZpc0Zpbml0ZShiWzJdKXx8KGI9aSkscy5yb3RhdGUoYiksaT1ifX1lbHNlIHQ9cixhPWwocyx0KTtuKG0ub2YodGhpcyxhcmd1bWVudHMpKX0pLHIobS5vZih0aGlzLGFyZ3VtZW50cykpfSkub24oInpvb21lbmQiLGZ1bmN0aW9uKCl7Xy5zZWxlY3QodGhpcykuc3R5bGUoQSkseS5jYWxsKGQsInpvb20iLG51bGwpLG8obS5vZih0aGlzLGFyZ3VtZW50cykpfSkub24oInpvb20ucmVkcmF3IixmdW5jdGlvbigpe3QucmVuZGVyKCl9KSxfLnJlYmluZChkLG0sIm9uIil9ZnVuY3Rpb24gbCh0LGUpe3ZhciByPXQuaW52ZXJ0KGUpO3JldHVybiByJiZpc0Zpbml0ZShyWzBdKSYmaXNGaW5pdGUoclsxXSkmJnYocil9ZnVuY3Rpb24gdSh0KXt2YXIgZT0uNSp0WzBdKncscj0uNSp0WzFdKncsbj0uNSp0WzJdKncsaT1NYXRoLnNpbihlKSxvPU1hdGguY29zKGUpLGE9TWF0aC5zaW4ocikscz1NYXRoLmNvcyhyKSxsPU1hdGguc2luKG4pLHU9TWF0aC5jb3Mobik7cmV0dXJuW28qcyp1K2kqYSpsLGkqcyp1LW8qYSpsLG8qYSp1K2kqcypsLG8qcypsLWkqYSp1XX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9dFswXSxuPXRbMV0saT10WzJdLG89dFszXSxhPWVbMF0scz1lWzFdLGw9ZVsyXSx1PWVbM107cmV0dXJuW3IqYS1uKnMtaSpsLW8qdSxyKnMrbiphK2kqdS1vKmwscipsLW4qdStpKmErbypzLHIqdStuKmwtaSpzK28qYV19ZnVuY3Rpb24gaCh0LGUpe2lmKHQmJmUpe3ZhciByPWIodCxlKSxuPU1hdGguc3FydCh5KHIscikpLGk9LjUqTWF0aC5hY29zKE1hdGgubWF4KC0xLE1hdGgubWluKDEseSh0LGUpKSkpLG89TWF0aC5zaW4oaSkvbjtyZXR1cm4gbiYmW01hdGguY29zKGkpLHJbMl0qbywtclsxXSpvLHJbMF0qb119fWZ1bmN0aW9uIGYodCxlLHIpe3ZhciBuPW0oZSwyLHRbMF0pO249bShuLDEsdFsxXSksbj1tKG4sMCx0WzJdLXJbMl0pO3ZhciBpLG8sYT1lWzBdLHM9ZVsxXSxsPWVbMl0sdT1uWzBdLGM9blsxXSxoPW5bMl0sZj1NYXRoLmF0YW4yKHMsYSkqTSxkPU1hdGguc3FydChhKmErcypzKTtNYXRoLmFicyhjKT5kPyhvPShjPjA/OTA6LTkwKS1mLGk9MCk6KG89TWF0aC5hc2luKGMvZCkqTS1mLGk9TWF0aC5zcXJ0KGQqZC1jKmMpKTt2YXIgZz0xODAtby0yKmYsdj0oTWF0aC5hdGFuMihoLHUpLU1hdGguYXRhbjIobCxpKSkqTSx5PShNYXRoLmF0YW4yKGgsdSktTWF0aC5hdGFuMihsLC1pKSkqTSxiPXAoclswXSxyWzFdLG8sdikseD1wKHJbMF0sclsxXSxnLHkpO3JldHVybiB4Pj1iP1tvLHYsclsyXV06W2cseSxyWzJdXX1mdW5jdGlvbiBwKHQsZSxyLG4pe3ZhciBpPWQoci10KSxvPWQobi1lKTtyZXR1cm4gTWF0aC5zcXJ0KGkqaStvKm8pfWZ1bmN0aW9uIGQodCl7cmV0dXJuKHQlMzYwKzU0MCklMzYwLTE4MH1mdW5jdGlvbiBtKHQsZSxyKXt2YXIgbj1yKncsaT10LnNsaWNlKCksbz0wPT09ZT8xOjAsYT0yPT09ZT8xOjIscz1NYXRoLmNvcyhuKSxsPU1hdGguc2luKG4pO3JldHVybiBpW29dPXRbb10qcy10W2FdKmwsaVthXT10W2FdKnMrdFtvXSpsLGl9ZnVuY3Rpb24gZyh0KXtyZXR1cm5bTWF0aC5hdGFuMigyKih0WzBdKnRbMV0rdFsyXSp0WzNdKSwxLTIqKHRbMV0qdFsxXSt0WzJdKnRbMl0pKSpNLE1hdGguYXNpbihNYXRoLm1heCgtMSxNYXRoLm1pbigxLDIqKHRbMF0qdFsyXS10WzNdKnRbMV0pKSkpKk0sTWF0aC5hdGFuMigyKih0WzBdKnRbM10rdFsxXSp0WzJdKSwxLTIqKHRbMl0qdFsyXSt0WzNdKnRbM10pKSpNXX1mdW5jdGlvbiB2KHQpe3ZhciBlPXRbMF0qdyxyPXRbMV0qdyxuPU1hdGguY29zKHIpO3JldHVybltuKk1hdGguY29zKGUpLG4qTWF0aC5zaW4oZSksTWF0aC5zaW4ocildfWZ1bmN0aW9uIHkodCxlKXtmb3IodmFyIHI9MCxuPTAsaT10Lmxlbmd0aDtpPm47KytuKXIrPXRbbl0qZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBiKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX1mdW5jdGlvbiB4KHQpe2Zvcih2YXIgZT0wLHI9YXJndW1lbnRzLmxlbmd0aCxuPVtdOysrZTxyOyluLnB1c2goYXJndW1lbnRzW2VdKTt2YXIgaT1fLmRpc3BhdGNoLmFwcGx5KG51bGwsbik7cmV0dXJuIGkub2Y9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIG87dHJ5e289bi5zb3VyY2VFdmVudD1fLmV2ZW50LG4udGFyZ2V0PXQsXy5ldmVudD1uLGlbbi50eXBlXS5hcHBseShlLHIpfWZpbmFsbHl7Xy5ldmVudD1vfX19LGl9dmFyIF89dCgiZDMiKSx3PU1hdGguUEkvMTgwLE09MTgwL01hdGguUEksaz17Y3Vyc29yOiJwb2ludGVyIn0sQT17Y3Vyc29yOiJhdXRvIn07ZS5leHBvcnRzPW59LHtkMzoxMjR9XSw2NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPXQucHJvamVjdGlvbixuPXQuem9vbSxvPWZ1bmN0aW9uKCl7dC5tYWtlUHJvamVjdGlvbihlKSx0Lm1ha2VQYXRoKCksbi5zY2FsZShyLnNjYWxlKCkpLG4udHJhbnNsYXRlKHIudHJhbnNsYXRlKCkpLGkubG9uZVVuaG92ZXIodC5ob3ZlckNvbnRhaW5lciksdC5yZW5kZXIoKX07cmV0dXJuIG99dmFyIGk9dCgiLi4vY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Iik7ZS5leHBvcnRzPW59LHsiLi4vY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Ijo2MjJ9XSw2NDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMuZWxlbWVudD10LHRoaXMucGxvdD1lLHRoaXMubW91c2VMaXN0ZW5lcj1udWxsLHRoaXMud2hlZWxMaXN0ZW5lcj1udWxsLHRoaXMubGFzdElucHV0VGltZT1EYXRlLm5vdygpLHRoaXMubGFzdFBvcz1bMCwwXSx0aGlzLmJveEVuYWJsZWQ9ITEsdGhpcy5ib3hTdGFydD1bMCwwXSx0aGlzLmJveEVuZD1bMCwwXX1mdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGUoKXt0LnhheGlzLmF1dG9yYW5nZT0hMSx0LnlheGlzLmF1dG9yYW5nZT0hMX12YXIgcj10Lm1vdXNlQ29udGFpbmVyLGk9dC5nbHBsb3Qscz1uZXcgbihyLGkpO3JldHVybiBzLm1vdXNlTGlzdGVuZXI9byhyLGZ1bmN0aW9uKHIsbixvKXtmdW5jdGlvbiBhKGUscixuKXt2YXIgaT1NYXRoLm1pbihyLG4pLG89TWF0aC5tYXgocixuKTtpIT09bz8oZVswXT1pLGVbMV09byxzLmRhdGFCb3g9ZSk6KHQuc2VsZWN0Qm94LnNlbGVjdEJveD1bMCwwLDEsMV0sdC5nbHBsb3Quc2V0RGlydHkoKSl9dmFyIGw9dC54YXhpcy5yYW5nZSx1PXQueWF4aXMucmFuZ2UsYz1pLnZpZXdCb3gsaD1zLmxhc3RQb3NbMF0sZj1zLmxhc3RQb3NbMV07c3dpdGNoKG4qPWkucGl4ZWxSYXRpbyxvKj1pLnBpeGVsUmF0aW8sbz1jWzNdLWNbMV0tbyx0LmZ1bGxMYXlvdXQuZHJhZ21vZGUpe2Nhc2Uiem9vbSI6aWYocil7dmFyIHA9bi8oY1syXS1jWzBdKSoobFsxXS1sWzBdKStsWzBdLGQ9by8oY1szXS1jWzFdKSoodVsxXS11WzBdKSt1WzBdO3MuYm94RW5hYmxlZHx8KHMuYm94U3RhcnRbMF09cCxzLmJveFN0YXJ0WzFdPWQpLHMuYm94RW5kWzBdPXAscy5ib3hFbmRbMV09ZCxzLmJveEVuYWJsZWQ9ITB9ZWxzZSBzLmJveEVuYWJsZWQmJihhKGwscy5ib3hTdGFydFswXSxzLmJveEVuZFswXSksYSh1LHMuYm94U3RhcnRbMV0scy5ib3hFbmRbMV0pLGUoKSxzLmJveEVuYWJsZWQ9ITEpO2JyZWFrO2Nhc2UicGFuIjppZihzLmJveEVuYWJsZWQ9ITEscil7dmFyIG09KGgtbikqKGxbMV0tbFswXSkvKGkudmlld0JveFsyXS1pLnZpZXdCb3hbMF0pLGc9KGYtbykqKHVbMV0tdVswXSkvKGkudmlld0JveFszXS1pLnZpZXdCb3hbMV0pO2xbMF0rPW0sbFsxXSs9bSx1WzBdKz1nLHVbMV0rPWcscy5sYXN0SW5wdXRUaW1lPURhdGUubm93KCksZSgpLHQuY2FtZXJhQ2hhbmdlZCgpfX1zLmxhc3RQb3NbMF09bixzLmxhc3RQb3NbMV09b30pLHMud2hlZWxMaXN0ZW5lcj1hKHIsZnVuY3Rpb24ocixuKXt2YXIgbz10LnhheGlzLnJhbmdlLGE9dC55YXhpcy5yYW5nZSxsPWkudmlld0JveCx1PXMubGFzdFBvc1swXSxjPXMubGFzdFBvc1sxXTtzd2l0Y2godC5mdWxsTGF5b3V0LmRyYWdtb2RlKXtjYXNlInpvb20iOmJyZWFrO2Nhc2UicGFuIjp2YXIgaD1NYXRoLmV4cCguMSpuLyhsWzNdLWxbMV0pKSxmPXUvKGxbMl0tbFswXSkqKG9bMV0tb1swXSkrb1swXSxwPWMvKGxbM10tbFsxXSkqKGFbMV0tYVswXSkrYVswXTtvWzBdPShvWzBdLWYpKmgrZixvWzFdPShvWzFdLWYpKmgrZixhWzBdPShhWzBdLXApKmgrcCxhWzFdPShhWzFdLXApKmgrcCxzLmxhc3RJbnB1dFRpbWU9RGF0ZS5ub3coKSxlKCksdC5jYW1lcmFDaGFuZ2VkKCl9cmV0dXJuITB9KSxzfXZhciBvPXQoIm1vdXNlLWNoYW5nZSIpLGE9dCgibW91c2Utd2hlZWwiKTtlLmV4cG9ydHM9aX0seyJtb3VzZS1jaGFuZ2UiOjQ0NCwibW91c2Utd2hlZWwiOjQ0OH1dLDY0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMuc2NlbmU9dCx0aGlzLmdsPXQuZ2wsdGhpcy5waXhlbFJhdGlvPXQucGl4ZWxSYXRpbyx0aGlzLnNjcmVlbkJveD1bMCwwLDEsMV0sdGhpcy52aWV3Qm94PVswLDAsMSwxXSx0aGlzLmRhdGFCb3g9Wy0xLC0xLDEsMV0sdGhpcy5ib3JkZXJMaW5lRW5hYmxlPVshMSwhMSwhMSwhMV0sdGhpcy5ib3JkZXJMaW5lV2lkdGg9WzEsMSwxLDFdLHRoaXMuYm9yZGVyTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja3M9W1tdLFtdXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCExLCExXSx0aGlzLnRpY2tQYWQ9WzE1LDE1LDE1LDE1XSx0aGlzLnRpY2tBbmdsZT1bMCwwLDAsMF0sdGhpcy50aWNrQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrTWFya0xlbmd0aD1bMCwwLDAsMF0sdGhpcy50aWNrTWFya1dpZHRoPVswLDAsMCwwXSx0aGlzLnRpY2tNYXJrQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5sYWJlbHM9WyJ4IiwieSJdLHRoaXMubGFiZWxFbmFibGU9WyEwLCEwLCExLCExXSx0aGlzLmxhYmVsQW5nbGU9WzAsTWF0aC5QSS8yLDAsMypNYXRoLlBJLzJdLHRoaXMubGFiZWxQYWQ9WzE1LDE1LDE1LDE1XSx0aGlzLmxhYmVsU2l6ZT1bMTIsMTJdLHRoaXMubGFiZWxGb250PVsic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aXRsZT0iIix0aGlzLnRpdGxlRW5hYmxlPSEwLHRoaXMudGl0bGVDZW50ZXI9WzAsMCwwLDBdLHRoaXMudGl0bGVBbmdsZT0wLHRoaXMudGl0bGVDb2xvcj1bMCwwLDAsMV0sdGhpcy50aXRsZUZvbnQ9InNhbnMtc2VyaWYiLHRoaXMudGl0bGVTaXplPTE4LHRoaXMuZ3JpZExpbmVFbmFibGU9WyEwLCEwXSx0aGlzLmdyaWRMaW5lQ29sb3I9W1swLDAsMCwuNV0sWzAsMCwwLC41XV0sdGhpcy5ncmlkTGluZVdpZHRoPVsxLDFdLHRoaXMuemVyb0xpbmVFbmFibGU9WyEwLCEwXSx0aGlzLnplcm9MaW5lV2lkdGg9WzEsMV0sdGhpcy56ZXJvTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmJvcmRlckNvbG9yPVswLDAsMCwwXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bMCwwLDAsMF19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gbmV3IG4odCl9dmFyIG89dCgiLi4vLi4vcGxvdGx5IiksYT10KCIuLi8uLi9saWIvaHRtbDJ1bmljb2RlIikscz10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksbD1uLnByb3RvdHlwZSx1PVsieGF4aXMiLCJ5YXhpcyJdO2wubWVyZ2U9ZnVuY3Rpb24odCl7dGhpcy50aXRsZUVuYWJsZT0hMSx0aGlzLmJhY2tncm91bmRDb2xvcj1zKHQucGxvdF9iZ2NvbG9yKTt2YXIgZSxyLG4saSxvLGwsYyxoLGYscCxkO2ZvcihwPTA7Mj5wOysrcCl7Zm9yKGU9dVtwXSxyPXRbdGhpcy5zY2VuZVtlXS5fbmFtZV0sbj0vQ2xpY2sgdG8gZW50ZXIgLisgdGl0bGUvLnRlc3Qoci50aXRsZSk/IiI6ci50aXRsZSxkPTA7Mj49ZDtkKz0yKXRoaXMubGFiZWxFbmFibGVbcCtkXT0hMSx0aGlzLmxhYmVsc1twK2RdPWEobiksdGhpcy5sYWJlbENvbG9yW3ArZF09cyhyLnRpdGxlZm9udC5jb2xvciksdGhpcy5sYWJlbEZvbnRbcCtkXT1yLnRpdGxlZm9udC5mYW1pbHksdGhpcy5sYWJlbFNpemVbcCtkXT1yLnRpdGxlZm9udC5zaXplLHRoaXMubGFiZWxQYWRbcCtkXT10aGlzLmdldExhYmVsUGFkKGUsciksdGhpcy50aWNrRW5hYmxlW3ArZF09ITEsdGhpcy50aWNrQ29sb3JbcCtkXT1zKChyLnRpY2tmb250fHx7fSkuY29sb3IpLHRoaXMudGlja0FuZ2xlW3ArZF09ImF1dG8iPT09ci50aWNrYW5nbGU/MDpNYXRoLlBJKi1yLnRpY2thbmdsZS8xODAsdGhpcy50aWNrUGFkW3ArZF09dGhpcy5nZXRUaWNrUGFkKHIpLHRoaXMudGlja01hcmtMZW5ndGhbcCtkXT0wLHRoaXMudGlja01hcmtXaWR0aFtwK2RdPXIudGlja3dpZHRofHwwLHRoaXMudGlja01hcmtDb2xvcltwK2RdPXMoci50aWNrY29sb3IpLHRoaXMuYm9yZGVyTGluZUVuYWJsZVtwK2RdPSExLHRoaXMuYm9yZGVyTGluZUNvbG9yW3ArZF09cyhyLmxpbmVjb2xvciksdGhpcy5ib3JkZXJMaW5lV2lkdGhbcCtkXT1yLmxpbmV3aWR0aHx8MDtjPXRoaXMuaGFzU2hhcmVkQXhpcyhyKSxvPXRoaXMuaGFzQXhpc0luRGZsdFBvcyhlLHIpJiYhYyxsPXRoaXMuaGFzQXhpc0luQWx0clBvcyhlLHIpJiYhYyxpPXIubWlycm9yfHwhMSxoPWM/LTEhPT1TdHJpbmcoaSkuaW5kZXhPZigiYWxsIik6ISFpLGY9Yz8iYWxsdGlja3MiPT09aTotMSE9PVN0cmluZyhpKS5pbmRleE9mKCJ0aWNrcyIpLG8/dGhpcy5sYWJlbEVuYWJsZVtwXT0hMDpsJiYodGhpcy5sYWJlbEVuYWJsZVtwKzJdPSEwKSxvP3RoaXMudGlja0VuYWJsZVtwXT1yLnNob3d0aWNrbGFiZWxzOmwmJih0aGlzLnRpY2tFbmFibGVbcCsyXT1yLnNob3d0aWNrbGFiZWxzKSwob3x8aCkmJih0aGlzLmJvcmRlckxpbmVFbmFibGVbcF09ci5zaG93bGluZSksKGx8fGgpJiYodGhpcy5ib3JkZXJMaW5lRW5hYmxlW3ArMl09ci5zaG93bGluZSksKG98fGYpJiYodGhpcy50aWNrTWFya0xlbmd0aFtwXT10aGlzLmdldFRpY2tNYXJrTGVuZ3RoKHIpKSwobHx8ZikmJih0aGlzLnRpY2tNYXJrTGVuZ3RoW3ArMl09dGhpcy5nZXRUaWNrTWFya0xlbmd0aChyKSksdGhpcy5ncmlkTGluZUVuYWJsZVtwXT1yLnNob3dncmlkLHRoaXMuZ3JpZExpbmVDb2xvcltwXT1zKHIuZ3JpZGNvbG9yKSx0aGlzLmdyaWRMaW5lV2lkdGhbcF09ci5ncmlkd2lkdGgsdGhpcy56ZXJvTGluZUVuYWJsZVtwXT1yLnplcm9saW5lLHRoaXMuemVyb0xpbmVDb2xvcltwXT1zKHIuemVyb2xpbmVjb2xvciksdGhpcy56ZXJvTGluZVdpZHRoW3BdPXIuemVyb2xpbmV3aWR0aH19LGwuaGFzU2hhcmVkQXhpcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjZW5lLHI9by5QbG90cy5nZXRTdWJwbG90SWRzKGUuZnVsbExheW91dCwiZ2wyZCIpLG49by5BeGVzLmZpbmRTdWJwbG90c1dpdGhBeGlzKHIsdCk7cmV0dXJuIDAhPT1uLmluZGV4T2YoZS5pZCl9LGwuaGFzQXhpc0luRGZsdFBvcz1mdW5jdGlvbih0LGUpe3ZhciByPWUuc2lkZTtyZXR1cm4ieGF4aXMiPT09dD8iYm90dG9tIj09PXI6InlheGlzIj09PXQ/ImxlZnQiPT09cjp2b2lkIDB9LGwuaGFzQXhpc0luQWx0clBvcz1mdW5jdGlvbih0LGUpe3ZhciByPWUuc2lkZTtyZXR1cm4ieGF4aXMiPT09dD8idG9wIj09PXI6InlheGlzIj09PXQ/InJpZ2h0Ij09PXI6dm9pZCAwfSxsLmdldExhYmVsUGFkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MS41LG49ZS50aXRsZWZvbnQuc2l6ZSxpPWUuc2hvd3RpY2tsYWJlbHM7cmV0dXJuInhheGlzIj09PXQ/InRvcCI9PT1lLnNpZGU/LTEwK24qKHIrKGk/MTowKSk6LTEwK24qKHIrKGk/LjU6MCkpOiJ5YXhpcyI9PT10PyJyaWdodCI9PT1lLnNpZGU/MTArbioocisoaT8xOi41KSk6MTArbioocisoaT8uNTowKSk6dm9pZCAwfSxsLmdldFRpY2tQYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIm91dHNpZGUiPT09dC50aWNrcz8xMCt0LnRpY2tsZW46MTV9LGwuZ2V0VGlja01hcmtMZW5ndGg9ZnVuY3Rpb24odCl7aWYoIXQudGlja3MpcmV0dXJuIDA7dmFyIGU9dC50aWNrbGVuO3JldHVybiJpbnNpZGUiPT09dC50aWNrcz8tZTplfSxlLmV4cG9ydHM9aX0seyIuLi8uLi9saWIvaHRtbDJ1bmljb2RlIjo1OTAsIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjYwMywiLi4vLi4vcGxvdGx5Ijo2MTJ9XSw2NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zY2VuZTJkIiksaT10KCIuLi9wbG90cyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKTtyLm5hbWU9ImdsMmQiLHIuYXR0cj1bInhheGlzIiwieWF4aXMiXSxyLmlkUm9vdD1bIngiLCJ5Il0sci5pZFJlZ2V4PXt4Oi9eeChbMi05XXxbMS05XVswLTldKyk/JC8seTovXnkoWzItOV18WzEtOV1bMC05XSspPyQvfSxyLmF0dHJSZWdleD17eDovXnhheGlzKFsyLTldfFsxLTldWzAtOV0rKT8kLyx5Oi9eeWF4aXMoWzItOV18WzEtOV1bMC05XSspPyQvfSxyLmF0dHJpYnV0ZXM9dCgiLi4vY2FydGVzaWFuL2F0dHJpYnV0ZXMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9mdWxsRGF0YSxvPWkuZ2V0U3VicGxvdElkcyhlLCJnbDJkIiksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz1vW2FdLGw9ZS5fcGxvdHNbc10sdT1pLmdldFN1YnBsb3REYXRhKHIsImdsMmQiLHMpLGM9bC5fc2NlbmUyZDt2b2lkIDA9PT1jJiYoYz1uZXcgbih7aWQ6cyxncmFwaERpdjp0LGNvbnRhaW5lcjp0LnF1ZXJ5U2VsZWN0b3IoIi5nbC1jb250YWluZXIiKSxzdGF0aWNQbG90OnQuX2NvbnRleHQuc3RhdGljUGxvdCxwbG90R2xQaXhlbFJhdGlvOnQuX2NvbnRleHQucGxvdEdsUGl4ZWxSYXRpb30sZSksbC5fc2NlbmUyZD1jKSxjLnBsb3QodSx0LmNhbGNkYXRhLGUsdC5sYXlvdXQpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIG89aS5nZXRTdWJwbG90SWRzKG4sImdsMmQiKSxhPTA7YTxvLmxlbmd0aDthKyspe3ZhciBzPW9bYV0sbD1uLl9wbG90c1tzXTtpZihsLl9zY2VuZTJkKXt2YXIgdT1pLmdldFN1YnBsb3REYXRhKHQsImdsMmQiLHMpOzA9PT11Lmxlbmd0aCYmKGwuX3NjZW5lMmQuZGVzdHJveSgpLGRlbGV0ZSBuLl9wbG90c1tzXSl9fX0sci50b1NWRz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWkuZ2V0U3VicGxvdElkcyhlLCJnbDJkIiksbj0wO248ci5sZW5ndGg7bisrKXt2YXIgYT1lLl9wbG90c1tyW25dXSxzPWEuX3NjZW5lMmQsbD1zLnRvSW1hZ2UoInBuZyIpLHU9ZS5fZ2xpbWFnZXMuYXBwZW5kKCJzdmc6aW1hZ2UiKTt1LmF0dHIoe3htbG5zOm8uc3ZnLCJ4bGluazpocmVmIjpsLHg6MCx5OjAsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KSxzLmRlc3Ryb3koKX19fSx7Ii4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo1NzksIi4uL2NhcnRlc2lhbi9hdHRyaWJ1dGVzIjo2MTQsIi4uL3Bsb3RzIjo2NzEsIi4vc2NlbmUyZCI6NjQ5fV0sNjQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLmdyYXBoRGl2PXQuZ3JhcGhEaXYsdGhpcy5waXhlbFJhdGlvPXQucGxvdEdsUGl4ZWxSYXRpb3x8d2luZG93LmRldmljZVBpeGVsUmF0aW8sdGhpcy5pZD10LmlkLHRoaXMuc3RhdGljUGxvdD0hIXQuc3RhdGljUGxvdCx0aGlzLmZ1bGxMYXlvdXQ9ZSx0aGlzLnVwZGF0ZUF4ZXMoZSksdGhpcy5tYWtlRnJhbWV3b3JrKCksdGhpcy5nbHBsb3RPcHRpb25zPWYodGhpcyksdGhpcy5nbHBsb3RPcHRpb25zLm1lcmdlKGUpLHRoaXMuZ2xwbG90PXUodGhpcy5nbHBsb3RPcHRpb25zKSx0aGlzLmNhbWVyYT1wKHRoaXMpLHRoaXMudHJhY2VzPXt9LHRoaXMuc3Bpa2VzPWModGhpcy5nbHBsb3QpLHRoaXMuc2VsZWN0Qm94PWgodGhpcy5nbHBsb3Qse2lubmVyRmlsbDohMSxvdXRlckZpbGw6ITB9KSx0aGlzLnBpY2tSZXN1bHQ9bnVsbCx0aGlzLmJvdW5kcz1bMS8wLDEvMCwtKDEvMCksLSgxLzApXSx0aGlzLnN0b3BwZWQ9ITEsdGhpcy5yZWRyYXc9dGhpcy5kcmF3LmJpbmQodGhpcyksdGhpcy5yZWRyYXcoKX1mdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPTA7Mj5yOysrcil7dmFyIG49dFtyXSxpPWVbcl07aWYobi5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIG89MDtvPG4ubGVuZ3RoOysrbylpZihuW29dLnghPT1pW29dLngpcmV0dXJuITB9cmV0dXJuITF9dmFyIG8sYSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKSx1PXQoImdsLXBsb3QyZCIpLGM9dCgiZ2wtc3Bpa2VzMmQiKSxoPXQoImdsLXNlbGVjdC1ib3giKSxmPXQoIi4vY29udmVydCIpLHA9dCgiLi9jYW1lcmEiKSxkPXQoIi4uLy4uL2xpYi9odG1sMnVuaWNvZGUiKSxtPXQoIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyIpLGc9WyJ4YXhpcyIsInlheGlzIl07ZS5leHBvcnRzPW47dmFyIHY9bi5wcm90b3R5cGU7di5tYWtlRnJhbWV3b3JrPWZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0aWNQbG90KXtpZighYSl7bz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0cnl7YT1vLmdldENvbnRleHQoIndlYmdsIix7cHJlc2VydmVEcmF3aW5nQnVmZmVyOiEwLHByZW11bHRpcGxpZWRBbHBoYTohMCxhbnRpYWxpYXM6ITB9KX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoWyJFcnJvciBjcmVhdGluZyBzdGF0aWMgY2FudmFzL2NvbnRleHQgZm9yIGltYWdlIHNlcnZlciJdLmpvaW4oIiAiKSl9fXRoaXMuY2FudmFzPW8sdGhpcy5nbD1hfWVsc2V7dmFyIGUscj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxuPXtwcmVtdWx0aXBsaWVkQWxwaGE6ITB9O3RyeXtlPXIuZ2V0Q29udGV4dCgid2ViZ2wiLG4pfWNhdGNoKHQpe31pZighZSl0cnl7ZT1yLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIsbil9Y2F0Y2godCl7fWV8fG0odGhpcyksdGhpcy5jYW52YXM9cix0aGlzLmdsPWV9dmFyIGk9dGhpcy5jYW52YXMscz10aGlzLnBpeGVsUmF0aW8sbD10aGlzLmZ1bGxMYXlvdXQ7aS53aWR0aD0wfE1hdGguY2VpbChzKmwud2lkdGgpLGkuaGVpZ2h0PTB8TWF0aC5jZWlsKHMqbC5oZWlnaHQpLGkuc3R5bGUud2lkdGg9IjEwMCUiLGkuc3R5bGUuaGVpZ2h0PSIxMDAlIixpLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS5zdHlsZS50b3A9IjBweCIsaS5zdHlsZS5sZWZ0PSIwcHgiLGkuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiO3ZhciB1PXRoaXMuc3ZnQ29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTt1LnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsdS5zdHlsZS50b3A9dS5zdHlsZS5sZWZ0PSIwcHgiLHUuc3R5bGUud2lkdGg9dS5zdHlsZS5oZWlnaHQ9IjEwMCUiLHUuc3R5bGVbInotaW5kZXgiXT0yMCx1LnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIjt2YXIgYz10aGlzLm1vdXNlQ29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2Muc3R5bGUucG9zaXRpb249ImFic29sdXRlIjt2YXIgaD10aGlzLmNvbnRhaW5lcjtoLmFwcGVuZENoaWxkKGkpLGguYXBwZW5kQ2hpbGQodSksaC5hcHBlbmRDaGlsZChjKX0sdi50b0ltYWdlPWZ1bmN0aW9uKHQpe3R8fCh0PSJwbmciKSx0aGlzLnN0b3BwZWQ9ITAsdGhpcy5zdGF0aWNQbG90JiZ0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChvKSx0aGlzLmdscGxvdC5zZXREaXJ0eSgpLHRoaXMuZ2xwbG90LmRyYXcoKTt2YXIgZT10aGlzLmdscGxvdC5nbCxyPWUuZHJhd2luZ0J1ZmZlcldpZHRoLG49ZS5kcmF3aW5nQnVmZmVySGVpZ2h0O2UuYmluZEZyYW1lYnVmZmVyKGUuRlJBTUVCVUZGRVIsbnVsbCk7dmFyIGk9bmV3IFVpbnQ4QXJyYXkocipuKjQpO2UucmVhZFBpeGVscygwLDAscixuLGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUsaSk7Zm9yKHZhciBhPTAscz1uLTE7cz5hOysrYSwtLXMpZm9yKHZhciBsPTA7cj5sOysrbClmb3IodmFyIHU9MDs0PnU7Kyt1KXt2YXIgYz1pWzQqKHIqYStsKSt1XTtpWzQqKHIqYStsKSt1XT1pWzQqKHIqcytsKSt1XSxpWzQqKHIqcytsKSt1XT1jfXZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2gud2lkdGg9cixoLmhlaWdodD1uO3ZhciBmPWguZ2V0Q29udGV4dCgiMmQiKSxwPWYuY3JlYXRlSW1hZ2VEYXRhKHIsbik7cC5kYXRhLnNldChpKSxmLnB1dEltYWdlRGF0YShwLDAsMCk7dmFyIGQ7c3dpdGNoKHQpe2Nhc2UianBlZyI6ZD1oLnRvRGF0YVVSTCgiaW1hZ2UvanBlZyIpO2JyZWFrO2Nhc2Uid2VicCI6ZD1oLnRvRGF0YVVSTCgiaW1hZ2Uvd2VicCIpO2JyZWFrO2RlZmF1bHQ6ZD1oLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9cmV0dXJuIHRoaXMuc3RhdGljUGxvdCYmdGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQobyksZH0sdi5jb21wdXRlVGlja01hcmtzPWZ1bmN0aW9uKCl7dGhpcy54YXhpcy5fbGVuZ3RoPXRoaXMuZ2xwbG90LnZpZXdCb3hbMl0tdGhpcy5nbHBsb3Qudmlld0JveFswXSx0aGlzLnlheGlzLl9sZW5ndGg9dGhpcy5nbHBsb3Qudmlld0JveFszXS10aGlzLmdscGxvdC52aWV3Qm94WzFdO2Zvcih2YXIgdD1bcy5jYWxjVGlja3ModGhpcy54YXhpcykscy5jYWxjVGlja3ModGhpcy55YXhpcyldLGU9MDsyPmU7KytlKWZvcih2YXIgcj0wO3I8dFtlXS5sZW5ndGg7KytyKXRbZV1bcl0udGV4dD1kKHRbZV1bcl0udGV4dCsiIikucmVwbGFjZSgvXG4vZywiICIpO3JldHVybiB0fSx2LnVwZGF0ZUF4ZXM9ZnVuY3Rpb24odCl7dmFyIGU9cy5zdWJwbG90TWF0Y2gscj0ieGF4aXMiK3RoaXMuaWQubWF0Y2goZSlbMV0sbj0ieWF4aXMiK3RoaXMuaWQubWF0Y2goZSlbMl07dGhpcy54YXhpcz10W3JdLHRoaXMueWF4aXM9dFtuXX0sdi51cGRhdGVGeD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZ1bGxMYXlvdXQ7ZS5kcmFnbW9kZT10LmRyYWdtb2RlLGUuaG92ZXJtb2RlPXQuaG92ZXJtb2RlfTt2YXIgeT1mdW5jdGlvbih0KXt2YXIgZT10LnhheGlzLnJhbmdlLHI9dC55YXhpcy5yYW5nZTt0LmdyYXBoRGl2LmxheW91dC54YXhpcy5hdXRvcmFuZ2U9dC54YXhpcy5hdXRvcmFuZ2UsdC5ncmFwaERpdi5sYXlvdXQueGF4aXMucmFuZ2U9ZS5zbGljZSgwKSx0LmdyYXBoRGl2LmxheW91dC55YXhpcy5hdXRvcmFuZ2U9dC55YXhpcy5hdXRvcmFuZ2UsdC5ncmFwaERpdi5sYXlvdXQueWF4aXMucmFuZ2U9ci5zbGljZSgwKTt2YXIgbj17bGFzdElucHV0VGltZTp0LmNhbWVyYS5sYXN0SW5wdXRUaW1lfTtuW3QueGF4aXMuX25hbWVdPWUuc2xpY2UoKSxuW3QueWF4aXMuX25hbWVdPXIuc2xpY2UoKSx0LmdyYXBoRGl2LmVtaXQoInBsb3RseV9yZWxheW91dCIsbil9O3YuY2FtZXJhQ2hhbmdlZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY2FtZXJhLGU9dGhpcy54YXhpcy5yYW5nZSxyPXRoaXMueWF4aXMucmFuZ2U7dGhpcy5nbHBsb3Quc2V0RGF0YUJveChbZVswXSxyWzBdLGVbMV0sclsxXV0pO3ZhciBuPXRoaXMuY29tcHV0ZVRpY2tNYXJrcygpLG89dGhpcy5nbHBsb3RPcHRpb25zLnRpY2tzO2kobixvKSYmKHRoaXMuZ2xwbG90T3B0aW9ucy50aWNrcz1uLHRoaXMuZ2xwbG90T3B0aW9ucy5kYXRhQm94PXQuZGF0YUJveCx0aGlzLmdscGxvdC51cGRhdGUodGhpcy5nbHBsb3RPcHRpb25zKSx5KHRoaXMpKX0sdi5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFjZXM7dCYmT2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKGUpe3RbZV0uZGlzcG9zZSgpLGRlbGV0ZSB0W2VdfSksdGhpcy5nbHBsb3QuZGlzcG9zZSgpLHRoaXMuc3RhdGljUGxvdHx8dGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5jYW52YXMpLHRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuc3ZnQ29udGFpbmVyKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLm1vdXNlQ29udGFpbmVyKSx0aGlzLmdscGxvdD1udWxsLHRoaXMuc3RvcHBlZD0hMH0sdi5wbG90PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmdscGxvdCxpPXRoaXMucGl4ZWxSYXRpbzt0aGlzLmZ1bGxMYXlvdXQ9cix0aGlzLnVwZGF0ZUF4ZXMociksdGhpcy51cGRhdGVUcmFjZXModCxlKTt2YXIgbz1yLndpZHRoLGE9ci5oZWlnaHQsbD0wfE1hdGguY2VpbChpKm8pLHU9MHxNYXRoLmNlaWwoaSphKSxjPXRoaXMuY2FudmFzO2Mud2lkdGg9PT1sJiZjLmhlaWdodD09PXV8fChjLndpZHRoPWwsYy5oZWlnaHQ9dSk7dmFyIGg9dGhpcy5nbHBsb3RPcHRpb25zO2gubWVyZ2UociksaC5zY3JlZW5Cb3g9WzAsMCxvLGFdO3ZhciBmPXIuX3NpemUscD10aGlzLnhheGlzLmRvbWFpbixkPXRoaXMueWF4aXMuZG9tYWluOwpoLnZpZXdCb3g9W2YubCtwWzBdKmYudyxmLmIrZFswXSpmLmgsby1mLnItKDEtcFsxXSkqZi53LGEtZi50LSgxLWRbMV0pKmYuaF0sdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS53aWR0aD1mLncqKHBbMV0tcFswXSkrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlLmhlaWdodD1mLmgqKGRbMV0tZFswXSkrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLmhlaWdodD1mLmgqKGRbMV0tZFswXSksdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS5sZWZ0PWYubCtwWzBdKmYudysicHgiLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUudG9wPWYudCsoMS1kWzFdKSpmLmgrInB4Ijt2YXIgbT10aGlzLmJvdW5kczttWzBdPW1bMV09MS8wLG1bMl09bVszXT0tKDEvMCk7dmFyIHYseSxiPU9iamVjdC5rZXlzKHRoaXMudHJhY2VzKTtmb3IoeT0wO3k8Yi5sZW5ndGg7Kyt5KWZvcih2YXIgeD10aGlzLnRyYWNlc1tiW3ldXSxfPTA7Mj5fOysrXyltW19dPU1hdGgubWluKG1bX10seC5ib3VuZHNbX10pLG1bXysyXT1NYXRoLm1heChtW18rMl0seC5ib3VuZHNbXysyXSk7Zm9yKHk9MDsyPnk7Kyt5KW1beV0+bVt5KzJdJiYobVt5XT0tMSxtW3krMl09MSksdj10aGlzW2dbeV1dLHYuX2xlbmd0aD1oLnZpZXdCb3hbeSsyXS1oLnZpZXdCb3hbeV0scy5kb0F1dG9SYW5nZSh2KTtoLnRpY2tzPXRoaXMuY29tcHV0ZVRpY2tNYXJrcygpO3ZhciB3PXRoaXMueGF4aXMucmFuZ2UsTT10aGlzLnlheGlzLnJhbmdlO2guZGF0YUJveD1bd1swXSxNWzBdLHdbMV0sTVsxXV0saC5tZXJnZShyKSxuLnVwZGF0ZShoKSx0aGlzLmdscGxvdC5kcmF3KCl9LHYudXBkYXRlVHJhY2VzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLG89T2JqZWN0LmtleXModGhpcy50cmFjZXMpO3Q6Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyl7dmFyIGE9b1tyXSxzPXRoaXMudHJhY2VzW2FdO2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspaWYoaT10W25dLGkudWlkPT09YSYmaS50eXBlPT09cy50eXBlKWNvbnRpbnVlIHQ7cy5kaXNwb3NlKCksZGVsZXRlIHRoaXMudHJhY2VzW2FdfWZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe2k9dFtyXTt2YXIgbD1lW3JdLHU9dGhpcy50cmFjZXNbaS51aWRdO3U/dS51cGRhdGUoaSxsKToodT1pLl9tb2R1bGUucGxvdCh0aGlzLGksbCksdGhpcy50cmFjZXNbaS51aWRdPXUpfX0sdi5kcmF3PWZ1bmN0aW9uKCl7aWYoIXRoaXMuc3RvcHBlZCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmVkcmF3KTt2YXIgdD10aGlzLmdscGxvdCxlPXRoaXMuY2FtZXJhLHI9ZS5tb3VzZUxpc3RlbmVyLG49dGhpcy5mdWxsTGF5b3V0O3RoaXMuY2FtZXJhQ2hhbmdlZCgpO3ZhciBpPXIueCp0LnBpeGVsUmF0aW8sbz10aGlzLmNhbnZhcy5oZWlnaHQtdC5waXhlbFJhdGlvKnIueTtpZihlLmJveEVuYWJsZWQmJiJ6b29tIj09PW4uZHJhZ21vZGUpdGhpcy5zZWxlY3RCb3guZW5hYmxlZD0hMCx0aGlzLnNlbGVjdEJveC5zZWxlY3RCb3g9W01hdGgubWluKGUuYm94U3RhcnRbMF0sZS5ib3hFbmRbMF0pLE1hdGgubWluKGUuYm94U3RhcnRbMV0sZS5ib3hFbmRbMV0pLE1hdGgubWF4KGUuYm94U3RhcnRbMF0sZS5ib3hFbmRbMF0pLE1hdGgubWF4KGUuYm94U3RhcnRbMV0sZS5ib3hFbmRbMV0pXSx0LnNldERpcnR5KCk7ZWxzZXt0aGlzLnNlbGVjdEJveC5lbmFibGVkPSExO3ZhciBhPW4uX3NpemUscz10aGlzLnhheGlzLmRvbWFpbix1PXRoaXMueWF4aXMuZG9tYWluLGM9dC5waWNrKGkvdC5waXhlbFJhdGlvK2EubCtzWzBdKmEudyxvL3QucGl4ZWxSYXRpby0oYS50KygxLXVbMV0pKmEuaCkpO2lmKGMmJm4uaG92ZXJtb2RlKXt2YXIgaD1jLm9iamVjdC5fdHJhY2UuaGFuZGxlUGljayhjKTtpZihoJiYoIXRoaXMubGFzdFBpY2tSZXN1bHR8fHRoaXMubGFzdFBpY2tSZXN1bHQudHJhY2VVaWQhPT1oLnRyYWNlLnVpZHx8dGhpcy5sYXN0UGlja1Jlc3VsdC5kYXRhQ29vcmRbMF0hPT1oLmRhdGFDb29yZFswXXx8dGhpcy5sYXN0UGlja1Jlc3VsdC5kYXRhQ29vcmRbMV0hPT1oLmRhdGFDb29yZFsxXSkpe3ZhciBmPWg7dGhpcy5sYXN0UGlja1Jlc3VsdD17dHJhY2VVaWQ6aC50cmFjZT9oLnRyYWNlLnVpZDpudWxsLGRhdGFDb29yZDpoLmRhdGFDb29yZC5zbGljZSgpfSx0aGlzLnNwaWtlcy51cGRhdGUoe2NlbnRlcjpjLmRhdGFDb29yZH0pLGYuc2NyZWVuQ29vcmQ9WygodC52aWV3Qm94WzJdLXQudmlld0JveFswXSkqKGMuZGF0YUNvb3JkWzBdLXQuZGF0YUJveFswXSkvKHQuZGF0YUJveFsyXS10LmRhdGFCb3hbMF0pK3Qudmlld0JveFswXSkvdC5waXhlbFJhdGlvLCh0aGlzLmNhbnZhcy5oZWlnaHQtKHQudmlld0JveFszXS10LnZpZXdCb3hbMV0pKihjLmRhdGFDb29yZFsxXS10LmRhdGFCb3hbMV0pLyh0LmRhdGFCb3hbM10tdC5kYXRhQm94WzFdKS10LnZpZXdCb3hbMV0pL3QucGl4ZWxSYXRpb107dmFyIHA9Zi5ob3ZlcmluZm87aWYoImFsbCIhPT1wKXt2YXIgZD1wLnNwbGl0KCIrIik7LTE9PT1kLmluZGV4T2YoIngiKSYmKGYudHJhY2VDb29yZFswXT12b2lkIDApLC0xPT09ZC5pbmRleE9mKCJ5IikmJihmLnRyYWNlQ29vcmRbMV09dm9pZCAwKSwtMT09PWQuaW5kZXhPZigieiIpJiYoZi50cmFjZUNvb3JkWzJdPXZvaWQgMCksLTE9PT1kLmluZGV4T2YoInRleHQiKSYmKGYudGV4dExhYmVsPXZvaWQgMCksLTE9PT1kLmluZGV4T2YoIm5hbWUiKSYmKGYubmFtZT12b2lkIDApfWwubG9uZUhvdmVyKHt4OmYuc2NyZWVuQ29vcmRbMF0seTpmLnNjcmVlbkNvb3JkWzFdLHhMYWJlbDp0aGlzLmhvdmVyRm9ybWF0dGVyKCJ4YXhpcyIsZi50cmFjZUNvb3JkWzBdKSx5TGFiZWw6dGhpcy5ob3ZlckZvcm1hdHRlcigieWF4aXMiLGYudHJhY2VDb29yZFsxXSksekxhYmVsOmYudHJhY2VDb29yZFsyXSx0ZXh0OmYudGV4dExhYmVsLG5hbWU6Zi5uYW1lLGNvbG9yOmYuY29sb3J9LHtjb250YWluZXI6dGhpcy5zdmdDb250YWluZXJ9KX19ZWxzZSFjJiZ0aGlzLmxhc3RQaWNrUmVzdWx0JiYodGhpcy5zcGlrZXMudXBkYXRlKHt9KSx0aGlzLmxhc3RQaWNrUmVzdWx0PW51bGwsbC5sb25lVW5ob3Zlcih0aGlzLnN2Z0NvbnRhaW5lcikpfXQuZHJhdygpfX0sdi5ob3ZlckZvcm1hdHRlcj1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PWUpe3ZhciByPXRoaXNbdF07cmV0dXJuIHMudGlja1RleHQocixyLmMybChlKSwiaG92ZXIiKS50ZXh0fX19LHsiLi4vLi4vbGliL2h0bWwydW5pY29kZSI6NTkwLCIuLi8uLi9saWIvc2hvd19ub193ZWJnbF9tc2ciOjYwMSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Ijo2MjIsIi4vY2FtZXJhIjo2NDYsIi4vY29udmVydCI6NjQ3LCJnbC1wbG90MmQiOjE3NiwiZ2wtc2VsZWN0LWJveCI6MjA2LCJnbC1zcGlrZXMyZCI6MjI2fV0sNjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0PXR8fGRvY3VtZW50LmJvZHksZT1lfHx7fTt2YXIgcj1bLjAxLDEvMF07ImRpc3RhbmNlTGltaXRzImluIGUmJihyWzBdPWUuZGlzdGFuY2VMaW1pdHNbMF0sclsxXT1lLmRpc3RhbmNlTGltaXRzWzFdKSwiem9vbU1pbiJpbiBlJiYoclswXT1lLnpvb21NaW4pLCJ6b29tTWF4ImluIGUmJihyWzFdPWUuem9vbU1heCk7dmFyIG49byh7Y2VudGVyOmUuY2VudGVyfHxbMCwwLDBdLHVwOmUudXB8fFswLDEsMF0sZXllOmUuZXllfHxbMCwwLDEwXSxtb2RlOmUubW9kZXx8Im9yYml0IixkaXN0YW5jZUxpbWl0czpyfSksbD1bMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sdT0wLGM9dC5jbGllbnRXaWR0aCxoPXQuY2xpZW50SGVpZ2h0LGY9e2tleUJpbmRpbmdNb2RlOiJyb3RhdGUiLHZpZXc6bixlbGVtZW50OnQsZGVsYXk6ZS5kZWxheXx8MTYscm90YXRlU3BlZWQ6ZS5yb3RhdGVTcGVlZHx8MSx6b29tU3BlZWQ6ZS56b29tU3BlZWR8fDEsdHJhbnNsYXRlU3BlZWQ6ZS50cmFuc2xhdGVTcGVlZHx8MSxmbGlwWDohIWUuZmxpcFgsZmxpcFk6ISFlLmZsaXBZLG1vZGVzOm4ubW9kZXMsdGljazpmdW5jdGlvbigpe3ZhciBlPWkoKSxyPXRoaXMuZGVsYXksbz1lLTIqcjtuLmlkbGUoZS1yKSxuLnJlY2FsY01hdHJpeChvKSxuLmZsdXNoKGUtKDEwMCsyKnIpKTtmb3IodmFyIGE9ITAscz1uLmNvbXB1dGVkTWF0cml4LGY9MDsxNj5mOysrZilhPWEmJmxbZl09PT1zW2ZdLGxbZl09c1tmXTt2YXIgcD10LmNsaWVudFdpZHRoPT09YyYmdC5jbGllbnRIZWlnaHQ9PT1oO3JldHVybiBjPXQuY2xpZW50V2lkdGgsaD10LmNsaWVudEhlaWdodCxhPyFwOih1PU1hdGguZXhwKG4uY29tcHV0ZWRSYWRpdXNbMF0pLCEwKX0sbG9va0F0OmZ1bmN0aW9uKHQsZSxyKXtuLmxvb2tBdChuLmxhc3RUKCksdCxlLHIpfSxyb3RhdGU6ZnVuY3Rpb24odCxlLHIpe24ucm90YXRlKG4ubGFzdFQoKSx0LGUscil9LHBhbjpmdW5jdGlvbih0LGUscil7bi5wYW4obi5sYXN0VCgpLHQsZSxyKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSxyKXtuLnRyYW5zbGF0ZShuLmxhc3RUKCksdCxlLHIpfX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZix7bWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wdXRlZE1hdHJpeH0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBuLnNldE1hdHJpeChuLmxhc3RUKCksdCksbi5jb21wdXRlZE1hdHJpeH0sZW51bWVyYWJsZTohMH0sbW9kZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uZ2V0TW9kZSgpfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9bi5jb21wdXRlZFVwLnNsaWNlKCkscj1uLmNvbXB1dGVkRXllLnNsaWNlKCksbz1uLmNvbXB1dGVkQ2VudGVyLnNsaWNlKCk7aWYobi5zZXRNb2RlKHQpLCJ0dXJudGFibGUiPT09dCl7dmFyIGE9aSgpO24uX2FjdGl2ZS5sb29rQXQoYSxyLG8sZSksbi5fYWN0aXZlLmxvb2tBdChhKzUwMCxyLG8sWzAsMCwxXSksbi5fYWN0aXZlLmZsdXNoKGEpfXJldHVybiBuLmdldE1vZGUoKX0sZW51bWVyYWJsZTohMH0sY2VudGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5jb21wdXRlZENlbnRlcn0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBuLmxvb2tBdChuLmxhc3RUKCksbnVsbCx0KSxuLmNvbXB1dGVkQ2VudGVyfSxlbnVtZXJhYmxlOiEwfSxleWU6e2dldDpmdW5jdGlvbigpe3JldHVybiBuLmNvbXB1dGVkRXllfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG4ubG9va0F0KG4ubGFzdFQoKSx0KSxuLmNvbXB1dGVkRXllfSxlbnVtZXJhYmxlOiEwfSx1cDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uY29tcHV0ZWRVcH0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBuLmxvb2tBdChuLmxhc3RUKCksbnVsbCxudWxsLHQpLG4uY29tcHV0ZWRVcH0sZW51bWVyYWJsZTohMH0sZGlzdGFuY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiB1fSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG4uc2V0RGlzdGFuY2Uobi5sYXN0VCgpLHQpLHR9LGVudW1lcmFibGU6ITB9LGRpc3RhbmNlTGltaXRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5nZXREaXN0YW5jZUxpbWl0cyhyKX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBuLnNldERpc3RhbmNlTGltaXRzKHQpLHR9LGVudW1lcmFibGU6ITB9fSksdC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZnVuY3Rpb24odCl7cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSwhMX0pO3ZhciBwPTAsZD0wO3JldHVybiBhKHQsZnVuY3Rpb24oZSxyLG8sYSl7dmFyIHM9InJvdGF0ZSI9PT1mLmtleUJpbmRpbmdNb2RlLGw9InBhbiI9PT1mLmtleUJpbmRpbmdNb2RlLGM9Inpvb20iPT09Zi5rZXlCaW5kaW5nTW9kZSxoPSEhYS5jb250cm9sLG09ISFhLmFsdCxnPSEhYS5zaGlmdCx2PSEhKDEmZSkseT0hISgyJmUpLGI9ISEoNCZlKSx4PTEvdC5jbGllbnRIZWlnaHQsXz14KihyLXApLHc9eCooby1kKSxNPWYuZmxpcFg/MTotMSxrPWYuZmxpcFk/MTotMSxBPWkoKSxUPU1hdGguUEkqZi5yb3RhdGVTcGVlZDtpZigocyYmdiYmIWgmJiFtJiYhZ3x8diYmIWgmJiFtJiZnKSYmbi5yb3RhdGUoQSxNKlQqXywtaypUKncsMCksKGwmJnYmJiFoJiYhbSYmIWd8fHl8fHYmJmgmJiFtJiYhZykmJm4ucGFuKEEsLWYudHJhbnNsYXRlU3BlZWQqXyp1LGYudHJhbnNsYXRlU3BlZWQqdyp1LDApLGMmJnYmJiFoJiYhbSYmIWd8fGJ8fHYmJiFoJiZtJiYhZyl7dmFyIEU9LWYuem9vbVNwZWVkKncvd2luZG93LmlubmVySGVpZ2h0KihBLW4ubGFzdFQoKSkqMTAwO24ucGFuKEEsMCwwLHUqKE1hdGguZXhwKEUpLTEpKX1yZXR1cm4gcD1yLGQ9bywhMH0pLHModCxmdW5jdGlvbih0LGUpe3ZhciByPWYuZmxpcFg/MTotMSxvPWYuZmxpcFk/MTotMSxhPWkoKTtpZihNYXRoLmFicyh0KT5NYXRoLmFicyhlKSluLnJvdGF0ZShhLDAsMCwtdCpyKk1hdGguUEkqZi5yb3RhdGVTcGVlZC93aW5kb3cuaW5uZXJXaWR0aCk7ZWxzZXt2YXIgcz0tZi56b29tU3BlZWQqbyplL3dpbmRvdy5pbm5lckhlaWdodCooYS1uLmxhc3RUKCkpLzEwMDtuLnBhbihhLDAsMCx1KihNYXRoLmV4cChzKS0xKSl9fSwhMCksZn1lLmV4cG9ydHM9bjt2YXIgaT10KCJyaWdodC1ub3ciKSxvPXQoIjNkLXZpZXciKSxhPXQoIm1vdXNlLWNoYW5nZSIpLHM9dCgibW91c2Utd2hlZWwiKX0seyIzZC12aWV3Ijo0MCwibW91c2UtY2hhbmdlIjo0NDQsIm1vdXNlLXdoZWVsIjo0NDgsInJpZ2h0LW5vdyI6NDU4fV0sNjUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmb3IodmFyIHI9MDszPnI7KytyKXt2YXIgbj1zW3JdO2Vbbl0uX2dkPXR9fXZhciBpPXQoIi4vc2NlbmUiKSxvPXQoIi4uL3Bsb3RzIiksYT10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLHM9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXTtyLm5hbWU9ImdsM2QiLHIuYXR0cj0ic2NlbmUiLHIuaWRSb290PSJzY2VuZSIsci5pZFJlZ2V4PS9ec2NlbmUoWzItOV18WzEtOV1bMC05XSspPyQvLHIuYXR0clJlZ2V4PS9ec2NlbmUoWzItOV18WzEtOV1bMC05XSspPyQvLHIuYXR0cmlidXRlcz10KCIuL2xheW91dC9hdHRyaWJ1dGVzIiksci5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vbGF5b3V0L2xheW91dF9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dC9kZWZhdWx0cyIpLHIucGxvdD1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5fZnVsbERhdGEsYT1vLmdldFN1YnBsb3RJZHMoZSwiZ2wzZCIpO2UuX3BhcGVyZGl2LnN0eWxlKHt3aWR0aDplLndpZHRoKyJweCIsaGVpZ2h0OmUuaGVpZ2h0KyJweCJ9KSx0Ll9jb250ZXh0LnNldEJhY2tncm91bmQodCxlLnBhcGVyX2JnY29sb3IpO2Zvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdLHU9by5nZXRTdWJwbG90RGF0YShyLCJnbDNkIixsKSxjPWVbbF0saD1jLl9zY2VuZTt2b2lkIDA9PT1oJiYobih0LGMpLGg9bmV3IGkoe2lkOmwsZ3JhcGhEaXY6dCxjb250YWluZXI6dC5xdWVyeVNlbGVjdG9yKCIuZ2wtY29udGFpbmVyIiksc3RhdGljUGxvdDp0Ll9jb250ZXh0LnN0YXRpY1Bsb3QscGxvdEdsUGl4ZWxSYXRpbzp0Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW99LGUpLGMuX3NjZW5lPWgpLGgucGxvdCh1LGUsdC5sYXlvdXQpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9by5nZXRTdWJwbG90SWRzKG4sImdsM2QiKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBzPWlbYV07IWVbc10mJm5bc10uX3NjZW5lJiZuW3NdLl9zY2VuZS5kZXN0cm95KCl9fSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9by5nZXRTdWJwbG90SWRzKGUsImdsM2QiKSxuPWUuX3NpemUsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgcz1lW3JbaV1dLGw9cy5kb21haW4sdT1zLl9zY2VuZSxjPXUudG9JbWFnZSgicG5nIiksaD1lLl9nbGltYWdlcy5hcHBlbmQoInN2ZzppbWFnZSIpO2guYXR0cih7eG1sbnM6YS5zdmcsInhsaW5rOmhyZWYiOmMseDpuLmwrbi53KmwueFswXSx5Om4udCtuLmgqKDEtbC55WzFdKSx3aWR0aDpuLncqKGwueFsxXS1sLnhbMF0pLGhlaWdodDpuLmgqKGwueVsxXS1sLnlbMF0pLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSksdS5kZXN0cm95KCl9fSxyLmNsZWFuSWQ9ZnVuY3Rpb24odCl7aWYodC5tYXRjaCgvXnNjZW5lWzAtOV0qJC8pKXt2YXIgZT10LnN1YnN0cig1KTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksInNjZW5lIitlfX0sci5zZXRDb252ZXJ0PXQoIi4vc2V0X2NvbnZlcnQiKX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NTc5LCIuLi9wbG90cyI6NjcxLCIuL2xheW91dC9hdHRyaWJ1dGVzIjo2NTIsIi4vbGF5b3V0L2RlZmF1bHRzIjo2NTYsIi4vbGF5b3V0L2xheW91dF9hdHRyaWJ1dGVzIjo2NTcsIi4vc2NlbmUiOjY2MSwiLi9zZXRfY29udmVydCI6NjYyfV0sNjUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17c2NlbmU6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoic2NlbmUifX19LHt9XSw2NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e3Nob3dzcGlrZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNwaWtlc2lkZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNwaWtldGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6Mn0sc3Bpa2Vjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5kZWZhdWx0TGluZX0sc2hvd2JhY2tncm91bmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGJhY2tncm91bmRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMjA0LCAyMDQsIDIwNCwgMC41KSJ9LHNob3dheGVzbGFiZWxzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxjb2xvcjppLmNvbG9yLGNhdGVnb3J5b3JkZXI6aS5jYXRlZ29yeW9yZGVyLGNhdGVnb3J5YXJyYXk6aS5jYXRlZ29yeWFycmF5LHRpdGxlOmkudGl0bGUsdGl0bGVmb250OmkudGl0bGVmb250LHR5cGU6aS50eXBlLGF1dG9yYW5nZTppLmF1dG9yYW5nZSxyYW5nZW1vZGU6aS5yYW5nZW1vZGUscmFuZ2U6aS5yYW5nZSxmaXhlZHJhbmdlOmkuZml4ZWRyYW5nZSx0aWNrbW9kZTppLnRpY2ttb2RlLG50aWNrczppLm50aWNrcyx0aWNrMDppLnRpY2swLGR0aWNrOmkuZHRpY2ssdGlja3ZhbHM6aS50aWNrdmFscyx0aWNrdGV4dDppLnRpY2t0ZXh0LHRpY2tzOmkudGlja3MsbWlycm9yOmkubWlycm9yLHRpY2tsZW46aS50aWNrbGVuLHRpY2t3aWR0aDppLnRpY2t3aWR0aCx0aWNrY29sb3I6aS50aWNrY29sb3Isc2hvd3RpY2tsYWJlbHM6aS5zaG93dGlja2xhYmVscyx0aWNrZm9udDppLnRpY2tmb250LHRpY2thbmdsZTppLnRpY2thbmdsZSx0aWNrcHJlZml4OmkudGlja3ByZWZpeCxzaG93dGlja3ByZWZpeDppLnNob3d0aWNrcHJlZml4LHRpY2tzdWZmaXg6aS50aWNrc3VmZml4LHNob3d0aWNrc3VmZml4Omkuc2hvd3RpY2tzdWZmaXgsc2hvd2V4cG9uZW50Omkuc2hvd2V4cG9uZW50LGV4cG9uZW50Zm9ybWF0OmkuZXhwb25lbnRmb3JtYXQsdGlja2Zvcm1hdDppLnRpY2tmb3JtYXQsaG92ZXJmb3JtYXQ6aS5ob3ZlcmZvcm1hdCxzaG93bGluZTppLnNob3dsaW5lLGxpbmVjb2xvcjppLmxpbmVjb2xvcixsaW5ld2lkdGg6aS5saW5ld2lkdGgsc2hvd2dyaWQ6aS5zaG93Z3JpZCxncmlkY29sb3I6byh7fSxpLmdyaWRjb2xvcix7ZGZsdDoicmdiKDIwNCwgMjA0LCAyMDQpIn0pLGdyaWR3aWR0aDppLmdyaWR3aWR0aCx6ZXJvbGluZTppLnplcm9saW5lLHplcm9saW5lY29sb3I6aS56ZXJvbGluZWNvbG9yLHplcm9saW5ld2lkdGg6aS56ZXJvbGluZXdpZHRofX0seyIuLi8uLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uLy4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo2MjR9XSw2NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidGlueWNvbG9yMiIpLm1peCxpPXQoIi4uLy4uLy4uL2xpYiIpLG89dCgiLi9heGlzX2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIikscz1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdLGw9ZnVuY3Rpb24oKXt9LHU9MTM2MDAvMTg3O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gYyh0LGUpe3JldHVybiBpLmNvZXJjZShoLGYsbyx0LGUpfWZvcih2YXIgaCxmLHA9MDtwPHMubGVuZ3RoO3ArKyl7dmFyIGQ9c1twXTtoPXRbZF18fHt9LGY9e19pZDpkWzBdK3Iuc2NlbmUsX25hbWU6ZH0sZVtkXT1mPWEoaCxmLGMse2ZvbnQ6ci5mb250LGxldHRlcjpkWzBdLGRhdGE6ci5kYXRhLHNob3dHcmlkOiEwLGJnQ29sb3I6ci5iZ0NvbG9yfSksYygiZ3JpZGNvbG9yIixuKGYuY29sb3Isci5iZ0NvbG9yLHUpLnRvUmdiU3RyaW5nKCkpLGMoInRpdGxlIixkWzBdKSxmLnNldFNjYWxlPWwsYygic2hvd3NwaWtlcyIpJiYoYygic3Bpa2VzaWRlcyIpLGMoInNwaWtldGhpY2tuZXNzIiksYygic3Bpa2Vjb2xvciIsZi5jb2xvcikpLGMoInNob3dheGVzbGFiZWxzIiksYygic2hvd2JhY2tncm91bmQiKSYmYygiYmFja2dyb3VuZGNvbG9yIil9fX0seyIuLi8uLi8uLi9saWIiOjU5MSwiLi4vLi4vY2FydGVzaWFuL2F4aXNfZGVmYXVsdHMiOjYxNiwiLi9heGlzX2F0dHJpYnV0ZXMiOjY1Myx0aW55Y29sb3IyOjQ3N31dLDY1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dGhpcy5ib3VuZHM9W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sdGhpcy50aWNrcz1bW10sW10sW11dLHRoaXMudGlja0VuYWJsZT1bITAsITAsITBdLHRoaXMudGlja0ZvbnQ9WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiXSx0aGlzLnRpY2tTaXplPVsxMiwxMiwxMl0sdGhpcy50aWNrQW5nbGU9WzAsMCwwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTgsMTgsMThdLHRoaXMubGFiZWxzPVsieCIsInkiLCJ6Il0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITBdLHRoaXMubGFiZWxGb250PVsiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIiwiT3BlbiBTYW5zIl0sdGhpcy5sYWJlbFNpemU9WzIwLDIwLDIwXSx0aGlzLmxhYmVsQW5nbGU9WzAsMCwwXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVszMCwzMCwzMF0sdGhpcy5saW5lRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5saW5lTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGluZVRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVUaWNrTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lVGlja0xlbmd0aD1bMTAsMTAsMTBdLHRoaXMubGluZVRpY2tXaWR0aD1bMSwxLDFdLHRoaXMubGluZVRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZEVuYWJsZT1bITAsITAsITBdLHRoaXMuZ3JpZFdpZHRoPVsxLDEsMV0sdGhpcy5ncmlkQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9FbmFibGU9WyEwLCEwLCEwXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9MaW5lV2lkdGg9WzIsMiwyXSx0aGlzLmJhY2tncm91bmRFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bWy44LC44LC44LC41XSxbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV1dLHRoaXMuX2RlZmF1bHRUaWNrUGFkPWwodGhpcy50aWNrUGFkKSx0aGlzLl9kZWZhdWx0TGFiZWxQYWQ9bCh0aGlzLmxhYmVsUGFkKSx0aGlzLl9kZWZhdWx0TGluZVRpY2tMZW5ndGg9bCh0aGlzLmxpbmVUaWNrTGVuZ3RoKX1mdW5jdGlvbiBpKHQpe3ZhciBlPW5ldyBuO3JldHVybiBlLm1lcmdlKHQpLGV9dmFyIG89dCgiYXJyYXl0b29scyIpLGE9dCgiLi4vLi4vLi4vbGliL2h0bWwydW5pY29kZSIpLHM9dCgiLi4vLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLGw9by5jb3B5MUQsdT1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdLGM9bi5wcm90b3R5cGU7Yy5tZXJnZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxyPTA7Mz5yOysrcil7dmFyIG49dFt1W3JdXTtlLmxhYmVsc1tyXT1hKG4udGl0bGUpLCJ0aXRsZWZvbnQiaW4gbiYmKG4udGl0bGVmb250LmNvbG9yJiYoZS5sYWJlbENvbG9yW3JdPXMobi50aXRsZWZvbnQuY29sb3IpKSxuLnRpdGxlZm9udC5mYW1pbHkmJihlLmxhYmVsRm9udFtyXT1uLnRpdGxlZm9udC5mYW1pbHkpLG4udGl0bGVmb250LnNpemUmJihlLmxhYmVsU2l6ZVtyXT1uLnRpdGxlZm9udC5zaXplKSksInNob3dsaW5lImluIG4mJihlLmxpbmVFbmFibGVbcl09bi5zaG93bGluZSksImxpbmVjb2xvciJpbiBuJiYoZS5saW5lQ29sb3Jbcl09cyhuLmxpbmVjb2xvcikpLCJsaW5ld2lkdGgiaW4gbiYmKGUubGluZVdpZHRoW3JdPW4ubGluZXdpZHRoKSwic2hvd2dyaWQiaW4gbiYmKGUuZ3JpZEVuYWJsZVtyXT1uLnNob3dncmlkKSwiZ3JpZGNvbG9yImluIG4mJihlLmdyaWRDb2xvcltyXT1zKG4uZ3JpZGNvbG9yKSksImdyaWR3aWR0aCJpbiBuJiYoZS5ncmlkV2lkdGhbcl09bi5ncmlkd2lkdGgpLCJsb2ciPT09bi50eXBlP2UuemVyb0VuYWJsZVtyXT0hMToiemVyb2xpbmUiaW4gbiYmKGUuemVyb0VuYWJsZVtyXT1uLnplcm9saW5lKSwiemVyb2xpbmVjb2xvciJpbiBuJiYoZS56ZXJvTGluZUNvbG9yW3JdPXMobi56ZXJvbGluZWNvbG9yKSksInplcm9saW5ld2lkdGgiaW4gbiYmKGUuemVyb0xpbmVXaWR0aFtyXT1uLnplcm9saW5ld2lkdGgpLCJ0aWNrcyJpbiBuJiZuLnRpY2tzP2UubGluZVRpY2tFbmFibGVbcl09ITA6ZS5saW5lVGlja0VuYWJsZVtyXT0hMSwidGlja2xlbiJpbiBuJiYoZS5saW5lVGlja0xlbmd0aFtyXT1lLl9kZWZhdWx0TGluZVRpY2tMZW5ndGhbcl09bi50aWNrbGVuKSwidGlja2NvbG9yImluIG4mJihlLmxpbmVUaWNrQ29sb3Jbcl09cyhuLnRpY2tjb2xvcikpLCJ0aWNrd2lkdGgiaW4gbiYmKGUubGluZVRpY2tXaWR0aFtyXT1uLnRpY2t3aWR0aCksInRpY2thbmdsZSJpbiBuJiYoZS50aWNrQW5nbGVbcl09ImF1dG8iPT09bi50aWNrYW5nbGU/MDpNYXRoLlBJKi1uLnRpY2thbmdsZS8xODApLCJzaG93dGlja2xhYmVscyJpbiBuJiYoZS50aWNrRW5hYmxlW3JdPW4uc2hvd3RpY2tsYWJlbHMpLCJ0aWNrZm9udCJpbiBuJiYobi50aWNrZm9udC5jb2xvciYmKGUudGlja0NvbG9yW3JdPXMobi50aWNrZm9udC5jb2xvcikpLG4udGlja2ZvbnQuZmFtaWx5JiYoZS50aWNrRm9udFtyXT1uLnRpY2tmb250LmZhbWlseSksbi50aWNrZm9udC5zaXplJiYoZS50aWNrU2l6ZVtyXT1uLnRpY2tmb250LnNpemUpKSwibWlycm9yImluIG4/LTEhPT1bInRpY2tzIiwiYWxsIiwiYWxsdGlja3MiXS5pbmRleE9mKG4ubWlycm9yKT8oZS5saW5lVGlja01pcnJvcltyXT0hMCxlLmxpbmVNaXJyb3Jbcl09ITApOm4ubWlycm9yPT09ITA/KGUubGluZVRpY2tNaXJyb3Jbcl09ITEsZS5saW5lTWlycm9yW3JdPSEwKTooZS5saW5lVGlja01pcnJvcltyXT0hMSxlLmxpbmVNaXJyb3Jbcl09ITEpOmUubGluZU1pcnJvcltyXT0hMSwic2hvd2JhY2tncm91bmQiaW4gbiYmbi5zaG93YmFja2dyb3VuZCE9PSExPyhlLmJhY2tncm91bmRFbmFibGVbcl09ITAsZS5iYWNrZ3JvdW5kQ29sb3Jbcl09cyhuLmJhY2tncm91bmRjb2xvcikpOmUuYmFja2dyb3VuZEVuYWJsZVtyXT0hMX19LGUuZXhwb3J0cz1pfSx7Ii4uLy4uLy4uL2xpYi9odG1sMnVuaWNvZGUiOjU5MCwiLi4vLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NjAzLGFycmF5dG9vbHM6NTB9XSw2NTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuKXtmb3IodmFyIG89cigiYmdjb2xvciIpLGw9aS5jb21iaW5lKG8sbi5wYXBlcl9iZ2NvbG9yKSx1PU9iamVjdC5rZXlzKGEuY2FtZXJhKSxjPTA7Yzx1Lmxlbmd0aDtjKyspcigiY2FtZXJhLiIrdVtjXSsiLngiKSxyKCJjYW1lcmEuIit1W2NdKyIueSIpLHIoImNhbWVyYS4iK3VbY10rIi56Iik7dmFyIGg9ISFyKCJhc3BlY3RyYXRpby54IikmJiEhcigiYXNwZWN0cmF0aW8ueSIpJiYhIXIoImFzcGVjdHJhdGlvLnoiKSxmPWg/Im1hbnVhbCI6ImF1dG8iLHA9cigiYXNwZWN0bW9kZSIsZik7aHx8KHQuYXNwZWN0cmF0aW89ZS5hc3BlY3RyYXRpbz17eDoxLHk6MSx6OjF9LCJtYW51YWwiPT09cCYmKGUuYXNwZWN0bW9kZT0iYXV0byIpKSxzKHQsZSx7Zm9udDpuLmZvbnQsc2NlbmU6bi5pZCxkYXRhOm4uZnVsbERhdGEsYmdDb2xvcjpsfSkscigiZHJhZ21vZGUiLG4uZ2V0RGZsdEZyb21MYXlvdXQoImRyYWdtb2RlIikpLHIoImhvdmVybW9kZSIsbi5nZXREZmx0RnJvbUxheW91dCgiaG92ZXJtb2RlIikpfXZhciBpPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL3N1YnBsb3RfZGVmYXVsdHMiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzPXQoIi4vYXhpc19kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gaShlKXtpZighcyl7dmFyIHI9LTEhPT1hW2VdLnZhbHVlcy5pbmRleE9mKHRbZV0pO3JldHVybiByP3RbZV06dm9pZCAwfX12YXIgcz1lLl9oYXMoImNhcnRlc2lhbiIpfHxlLl9oYXMoImdlbyIpfHxlLl9oYXMoImdsMmQiKXx8ZS5faGFzKCJwaWUiKXx8ZS5faGFzKCJ0ZXJuYXJ5Iik7byh0LGUscix7dHlwZToiZ2wzZCIsYXR0cmlidXRlczphLGhhbmRsZURlZmF1bHRzOm4sZm9udDplLmZvbnQsZnVsbERhdGE6cixnZXREZmx0RnJvbUxheW91dDppLHBhcGVyX2JnY29sb3I6ZS5wYXBlcl9iZ2NvbG9yfSl9fSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vLi4vc3VicGxvdF9kZWZhdWx0cyI6Njc3LCIuL2F4aXNfZGVmYXVsdHMiOjY1NCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjU3fV0sNjU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3JldHVybnt4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6dH0seTp7dmFsVHlwZToibnVtYmVyIixkZmx0OmV9LHo6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpyfX19dmFyIGk9dCgiLi9heGlzX2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17Ymdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkifSxjYW1lcmE6e3VwOm8obigwLDAsMSkse30pLGNlbnRlcjpvKG4oMCwwLDApLHt9KSxleWU6byhuKDEuMjUsMS4yNSwxLjI1KSx7fSl9LGRvbWFpbjp7eDp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX1dLGRmbHQ6WzAsMV19LHk6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX0se3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjF9XSxkZmx0OlswLDFdfX0sYXNwZWN0bW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImN1YmUiLCJkYXRhIiwibWFudWFsIl0sZGZsdDoiYXV0byJ9LGFzcGVjdHJhdGlvOnt4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowfSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowfSx6Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowfX0seGF4aXM6aSx5YXhpczppLHpheGlzOmksZHJhZ21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm9yYml0IiwidHVybnRhYmxlIiwiem9vbSIsInBhbiJdLGRmbHQ6InR1cm50YWJsZSJ9LGhvdmVybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvc2VzdCIsITFdLGRmbHQ6ImNsb3Nlc3QifSxfZGVwcmVjYXRlZDp7Y2FtZXJhcG9zaXRpb246e3ZhbFR5cGU6ImluZm9fYXJyYXkifX19fSx7Ii4uLy4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi9heGlzX2F0dHJpYnV0ZXMiOjY1M31dLDY1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7dGhpcy5lbmFibGVkPVshMCwhMCwhMF0sdGhpcy5jb2xvcnM9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmRyYXdTaWRlcz1bITAsITAsITBdLHRoaXMubGluZVdpZHRoPVsxLDEsMV19ZnVuY3Rpb24gaSh0KXt2YXIgZT1uZXcgbjtyZXR1cm4gZS5tZXJnZSh0KSxlfXZhciBvPXQoIi4uLy4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxhPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl0scz1uLnByb3RvdHlwZTtzLm1lcmdlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wOzM+ZTsrK2Upe3ZhciByPXRbYVtlXV07dGhpcy5lbmFibGVkW2VdPXIuc2hvd3NwaWtlcyx0aGlzLmNvbG9yc1tlXT1vKHIuc3Bpa2Vjb2xvciksdGhpcy5kcmF3U2lkZXNbZV09ci5zcGlrZXNpZGVzLHRoaXMubGluZVdpZHRoW2VdPXIuc3Bpa2V0aGlja25lc3N9fSxlLmV4cG9ydHM9aX0seyIuLi8uLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo2MDN9XSw2NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KDMpLHI9MDszPnI7KytyKXtmb3IodmFyIG49dFtyXSxpPW5ldyBBcnJheShuLmxlbmd0aCksbz0wO288bi5sZW5ndGg7KytvKWlbb109bltvXS54O2Vbcl09aX1yZXR1cm4gZX1mdW5jdGlvbiBpKHQpe2Zvcih2YXIgZT10LmF4ZXNPcHRpb25zLHI9dC5nbHBsb3QuYXhlc1BpeGVscyxpPXQuZnVsbFNjZW5lTGF5b3V0LHU9W1tdLFtdLFtdXSxjPTA7Mz5jOysrYyl7dmFyIGg9aVtzW2NdXTtpZihoLl9sZW5ndGg9KHJbY10uaGktcltjXS5sbykqcltjXS5waXhlbHNQZXJEYXRhVW5pdC90LmRhdGFTY2FsZVtjXSxNYXRoLmFicyhoLl9sZW5ndGgpPT09MS8wKXVbY109W107ZWxzZXtoLnJhbmdlWzBdPXJbY10ubG8vdC5kYXRhU2NhbGVbY10saC5yYW5nZVsxXT1yW2NdLmhpL3QuZGF0YVNjYWxlW2NdLGguX209MS8odC5kYXRhU2NhbGVbY10qcltjXS5waXhlbHNQZXJEYXRhVW5pdCksaC5yYW5nZVswXT09PWgucmFuZ2VbMV0mJihoLnJhbmdlWzBdLT0xLGgucmFuZ2VbMV0rPTEpO3ZhciBmPWgudGlja21vZGU7aWYoImF1dG8iPT09aC50aWNrbW9kZSl7aC50aWNrbW9kZT0ibGluZWFyIjt2YXIgcD1oLm50aWNrc3x8by5MaWIuY29uc3RyYWluKGguX2xlbmd0aC80MCw0LDkpO28uQXhlcy5hdXRvVGlja3MoaCxNYXRoLmFicyhoLnJhbmdlWzFdLWgucmFuZ2VbMF0pL3ApfWZvcih2YXIgZD1vLkF4ZXMuY2FsY1RpY2tzKGgpLG09MDttPGQubGVuZ3RoOysrbSlkW21dLng9ZFttXS54KnQuZGF0YVNjYWxlW2NdLGRbbV0udGV4dD1hKGRbbV0udGV4dCk7dVtjXT1kLGgudGlja21vZGU9Zn19ZS50aWNrcz11O2Zvcih2YXIgYz0wOzM+YzsrK2Mpe2xbY109LjUqKHQuZ2xwbG90LmJvdW5kc1swXVtjXSt0LmdscGxvdC5ib3VuZHNbMV1bY10pO2Zvcih2YXIgbT0wOzI+bTsrK20pZS5ib3VuZHNbbV1bY109dC5nbHBsb3QuYm91bmRzW21dW2NdfXQuY29udG91ckxldmVscz1uKHUpfWUuZXhwb3J0cz1pO3ZhciBvPXQoIi4uLy4uLy4uL3Bsb3RseSIpLGE9dCgiLi4vLi4vLi4vbGliL2h0bWwydW5pY29kZSIpLHM9WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXSxsPVswLDAsMF19LHsiLi4vLi4vLi4vbGliL2h0bWwydW5pY29kZSI6NTkwLCIuLi8uLi8uLi9wbG90bHkiOjYxMn1dLDY2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHIsbixpPVswLDAsMCwwXTtmb3Iocj0wOzQ+cjsrK3IpZm9yKG49MDs0Pm47KytuKWlbbl0rPXRbNCpyK25dKmVbcl07cmV0dXJuIGl9ZnVuY3Rpb24gaSh0LGUpe3ZhciByPW4odC5wcm9qZWN0aW9uLG4odC52aWV3LG4odC5tb2RlbCxbZVswXSxlWzFdLGVbMl0sMV0pKSk7cmV0dXJuIHJ9ZS5leHBvcnRzPWl9LHt9XSw2NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBlKGUscil7aWYoInN0cmluZyI9PXR5cGVvZiByKXJldHVybiByO3ZhciBuPXQuZnVsbFNjZW5lTGF5b3V0W2VdO3JldHVybiBtLnRpY2tUZXh0KG4sbi5jMmwociksImhvdmVyIikudGV4dH12YXIgcixuPXQuc3ZnQ29udGFpbmVyLGk9dC5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1pLndpZHRoLGE9aS5oZWlnaHQ7bi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ2aWV3Qm94IiwiMCAwICIrbysiICIrYSksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIsbyksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiLGEpLGsodCksdC5nbHBsb3QuYXhlcy51cGRhdGUodC5heGVzT3B0aW9ucyk7Zm9yKHZhciBzPU9iamVjdC5rZXlzKHQudHJhY2VzKSxsPW51bGwsdT10LmdscGxvdC5zZWxlY3Rpb24sYz0wO2M8cy5sZW5ndGg7KytjKXI9dC50cmFjZXNbc1tjXV0sci5oYW5kbGVQaWNrKHUpJiYobD1yKSxyLnNldENvbnRvdXJMZXZlbHMmJnIuc2V0Q29udG91ckxldmVscygpO3ZhciBoO2lmKG51bGwhPT1sKXt2YXIgZj14KHQuZ2xwbG90LmNhbWVyYVBhcmFtcyx1LmRhdGFDb29yZGluYXRlKTtyPWwuZGF0YTt2YXIgcD1yLmhvdmVyaW5mbyxkPWUoInhheGlzIix1LnRyYWNlQ29vcmRpbmF0ZVswXSksdj1lKCJ5YXhpcyIsdS50cmFjZUNvb3JkaW5hdGVbMV0pLHk9ZSgiemF4aXMiLHUudHJhY2VDb29yZGluYXRlWzJdKTtpZigiYWxsIiE9PXApe3ZhciBiPXAuc3BsaXQoIisiKTstMT09PWIuaW5kZXhPZigieCIpJiYoZD12b2lkIDApLC0xPT09Yi5pbmRleE9mKCJ5IikmJih2PXZvaWQgMCksLTE9PT1iLmluZGV4T2YoInoiKSYmKHk9dm9pZCAwKSwtMT09PWIuaW5kZXhPZigidGV4dCIpJiYodS50ZXh0TGFiZWw9dm9pZCAwKSwtMT09PWIuaW5kZXhPZigibmFtZSIpJiYobC5uYW1lPXZvaWQgMCl9dC5mdWxsU2NlbmVMYXlvdXQuaG92ZXJtb2RlJiZnLmxvbmVIb3Zlcih7eDooLjUrLjUqZlswXS9mWzNdKSpvLHk6KC41LS41KmZbMV0vZlszXSkqYSx4TGFiZWw6ZCx5TGFiZWw6dix6TGFiZWw6eSx0ZXh0OnUudGV4dExhYmVsLG5hbWU6bC5uYW1lLGNvbG9yOmwuY29sb3J9LHtjb250YWluZXI6bn0pO3ZhciBfPXtwb2ludHM6W3t4OmQseTp2LHo6eSxkYXRhOnIuX2lucHV0LGZ1bGxEYXRhOnIsY3VydmVOdW1iZXI6ci5pbmRleCxwb2ludE51bWJlcjp1LmRhdGEuaW5kZXh9XX07dS5idXR0b25zJiZ1LmRpc3RhbmNlPDU/dC5ncmFwaERpdi5lbWl0KCJwbG90bHlfY2xpY2siLF8pOnQuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2hvdmVyIixfKSxoPV99ZWxzZSBnLmxvbmVVbmhvdmVyKG4pLHQuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3VuaG92ZXIiLGgpfWZ1bmN0aW9uIGkodCxlLHIsaSl7dmFyIG89e2NhbnZhczpyLGdsOmksY29udGFpbmVyOnQuY29udGFpbmVyLGF4ZXM6dC5heGVzT3B0aW9ucyxzcGlrZXM6dC5zcGlrZU9wdGlvbnMscGlja1JhZGl1czoxMCxzbmFwVG9EYXRhOiEwLGF1dG9TY2FsZTohMCxhdXRvQm91bmRzOiExfTtpZih0LnN0YXRpY01vZGUpe2lmKCFoKXtjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3RyeXtoPWMuZ2V0Q29udGV4dCgid2ViZ2wiLHtwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITAscHJlbXVsdGlwbGllZEFscGhhOiEwLGFudGlhbGlhczohMH0pfWNhdGNoKGEpe3Rocm93IG5ldyBFcnJvcigiZXJyb3IgY3JlYXRpbmcgc3RhdGljIGNhbnZhcy9jb250ZXh0IGZvciBpbWFnZSBzZXJ2ZXIiKX19by5waXhlbFJhdGlvPXQucGl4ZWxSYXRpbyxvLmdsPWgsby5jYW52YXM9Y310cnl7dC5nbHBsb3Q9ZihvKX1jYXRjaChhKXt5KHQpfXZhciBzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2VbdC5pZF09dSh0LmNhbWVyYSksdC5zYXZlQ2FtZXJhKHQuZ3JhcGhEaXYubGF5b3V0KSx0LmdyYXBoRGl2LmVtaXQoInBsb3RseV9yZWxheW91dCIsZSl9O2lmKHQuZ2xwbG90LmNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixzLmJpbmQobnVsbCx0KSksdC5nbHBsb3QuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixzLmJpbmQobnVsbCx0KSksdC5zdGF0aWNNb2RlfHx0LmdscGxvdC5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsZnVuY3Rpb24odCl7cC53YXJuKCJMb3N0IFdlYkdMIGNvbnRleHQuIiksdC5wcmV2ZW50RGVmYXVsdCgpfSksIXQuY2FtZXJhKXt2YXIgbD10LmZ1bGxTY2VuZUxheW91dC5jYW1lcmE7dC5jYW1lcmE9Yih0LmNvbnRhaW5lcix7Y2VudGVyOltsLmNlbnRlci54LGwuY2VudGVyLnksbC5jZW50ZXIuel0sZXllOltsLmV5ZS54LGwuZXllLnksbC5leWUuel0sdXA6W2wudXAueCxsLnVwLnksbC51cC56XSx6b29tTWluOi4xLHpvb21NYXg6MTAwLG1vZGU6Im9yYml0In0pfXJldHVybiB0LmdscGxvdC5tb3VzZUxpc3RlbmVyLmVuYWJsZWQ9ITEsdC5nbHBsb3QuY2FtZXJhPXQuY2FtZXJhLHQuZ2xwbG90Lm9uY29udGV4dGxvc3M9ZnVuY3Rpb24oKXt0LnJlY292ZXJDb250ZXh0KCl9LHQuZ2xwbG90Lm9ucmVuZGVyPW4uYmluZChudWxsLHQpLHQudHJhY2VzPXt9LCEwfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuPXQuY29udGFpbmVyO3RoaXMuZ3JhcGhEaXY9dC5ncmFwaERpdjt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7by5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLG8uc3R5bGUudG9wPW8uc3R5bGUubGVmdD0iMHB4IixvLnN0eWxlLndpZHRoPW8uc3R5bGUuaGVpZ2h0PSIxMDAlIixvLnN0eWxlWyJ6LWluZGV4Il09MjAsby5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0ibm9uZSIsci5hcHBlbmRDaGlsZChvKSx0aGlzLnN2Z0NvbnRhaW5lcj1vLHIuaWQ9dC5pZCxyLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsci5zdHlsZS50b3A9ci5zdHlsZS5sZWZ0PSIwcHgiLHIuc3R5bGUud2lkdGg9ci5zdHlsZS5oZWlnaHQ9IjEwMCUiLG4uYXBwZW5kQ2hpbGQociksdGhpcy5mdWxsTGF5b3V0PWUsdGhpcy5pZD10LmlkfHwic2NlbmUiLHRoaXMuZnVsbFNjZW5lTGF5b3V0PWVbdGhpcy5pZF0sdGhpcy5wbG90QXJncz1bW10se30se31dLHRoaXMuYXhlc09wdGlvbnM9dyhlW3RoaXMuaWRdKSx0aGlzLnNwaWtlT3B0aW9ucz1NKGVbdGhpcy5pZF0pLHRoaXMuY29udGFpbmVyPXIsdGhpcy5zdGF0aWNNb2RlPSEhdC5zdGF0aWNQbG90LHRoaXMucGl4ZWxSYXRpbz10LnBsb3RHbFBpeGVsUmF0aW98fDIsdGhpcy5kYXRhU2NhbGU9WzEsMSwxXSx0aGlzLmNvbnRvdXJMZXZlbHM9W1tdLFtdLFtdXSwhaSh0aGlzLGUpfWZ1bmN0aW9uIGEodCxlLHIsbil7Zm9yKHZhciBpLG89MDtvPGUubGVuZ3RoOysrbylpZihBcnJheS5pc0FycmF5KGVbb10pKWZvcih2YXIgYT0wO2E8ZVtvXS5sZW5ndGg7KythKWk9dC5kMmwoZVtvXVthXSksIWlzTmFOKGkpJiZpc0Zpbml0ZShpKSYmKG5bMF1bcl09TWF0aC5taW4oblswXVtyXSxpKSxuWzFdW3JdPU1hdGgubWF4KG5bMV1bcl0saSkpO2Vsc2UgaT10LmQybChlW29dKSwhaXNOYU4oaSkmJmlzRmluaXRlKGkpJiYoblswXVtyXT1NYXRoLm1pbihuWzBdW3JdLGkpLG5bMV1bcl09TWF0aC5tYXgoblsxXVtyXSxpKSl9ZnVuY3Rpb24gcyh0LGUscil7dmFyIG49dC5mdWxsU2NlbmVMYXlvdXQ7YShuLnhheGlzLGUueCwwLHIpLGEobi55YXhpcyxlLnksMSxyKSxhKG4uemF4aXMsZS56LDIscil9ZnVuY3Rpb24gbCh0KXtyZXR1cm5bW3QuZXllLngsdC5leWUueSx0LmV5ZS56XSxbdC5jZW50ZXIueCx0LmNlbnRlci55LHQuY2VudGVyLnpdLFt0LnVwLngsdC51cC55LHQudXAuel1dfWZ1bmN0aW9uIHUodCl7cmV0dXJue3VwOnt4OnQudXBbMF0seTp0LnVwWzFdLHo6dC51cFsyXX0sY2VudGVyOnt4OnQuY2VudGVyWzBdLHk6dC5jZW50ZXJbMV0sejp0LmNlbnRlclsyXX0sZXllOnt4OnQuZXllWzBdLHk6dC5leWVbMV0sejp0LmV5ZVsyXX19fXZhciBjLGgsZj10KCJnbC1wbG90M2QiKSxwPXQoIi4uLy4uL2xpYiIpLGQ9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxtPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksZz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKSx2PXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSx5PXQoIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyIpLGI9dCgiLi9jYW1lcmEiKSx4PXQoIi4vcHJvamVjdCIpLF89dCgiLi9zZXRfY29udmVydCIpLHc9dCgiLi9sYXlvdXQvY29udmVydCIpLE09dCgiLi9sYXlvdXQvc3Bpa2VzIiksaz10KCIuL2xheW91dC90aWNrX21hcmtzIiksQT1vLnByb3RvdHlwZTtBLnJlY292ZXJDb250ZXh0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3JldHVybiByLmlzQ29udGV4dExvc3QoKT92b2lkIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0KTppKGUsZS5mdWxsTGF5b3V0LG4scik/dm9pZCBlLnBsb3QuYXBwbHkoZSxlLnBsb3RBcmdzKTp2b2lkIHAuZXJyb3IoIkNhdGFzdHJvcGhpYyBhbmQgdW5yZWNvdmVyYWJsZSBXZWJHTCBlcnJvci4gQ29udGV4dCBsb3N0LiIpfXZhciBlPXRoaXMscj10aGlzLmdscGxvdC5nbCxuPXRoaXMuZ2xwbG90LmNhbnZhczt0aGlzLmdscGxvdC5kaXNwb3NlKCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfTt2YXIgVD1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdO0EucGxvdD1mdW5jdGlvbih0LGUscil7aWYodGhpcy5wbG90QXJncz1bdCxlLHJdLCF0aGlzLmdscGxvdC5jb250ZXh0TG9zdCl7dmFyIG4saSxvLGEsbCx1LGM9ZVt0aGlzLmlkXSxoPXJbdGhpcy5pZF07Zm9yKGMuYmdjb2xvcj90aGlzLmdscGxvdC5jbGVhckNvbG9yPXYoYy5iZ2NvbG9yKTp0aGlzLmdscGxvdC5jbGVhckNvbG9yPVswLDAsMCwwXSx0aGlzLmdscGxvdC5zbmFwVG9EYXRhPSEwLHRoaXMuZnVsbFNjZW5lTGF5b3V0PWMsdGhpcy5nbHBsb3RMYXlvdXQ9Yyx0aGlzLmF4ZXNPcHRpb25zLm1lcmdlKGMpLHRoaXMuc3Bpa2VPcHRpb25zLm1lcmdlKGMpLHRoaXMudXBkYXRlRngoYy5kcmFnbW9kZSxjLmhvdmVybW9kZSksdGhpcy5nbHBsb3QudXBkYXRlKHt9KSxvPTA7Mz5vOysrbylsPWNbVFtvXV0sXyhsKTt0P0FycmF5LmlzQXJyYXkodCl8fCh0PVt0XSk6dD1bXTt2YXIgZj1bWzEvMCwxLzAsMS8wXSxbLSgxLzApLC0oMS8wKSwtKDEvMCldXTtmb3Iobz0wO288dC5sZW5ndGg7KytvKW49dFtvXSxuLnZpc2libGU9PT0hMCYmcyh0aGlzLG4sZik7dmFyIHA9WzEsMSwxXTtmb3IoYT0wOzM+YTsrK2EpZlswXVthXT5mWzFdW2FdP3BbYV09MTpmWzFdW2FdPT09ZlswXVthXT9wW2FdPTE6cFthXT0xLyhmWzFdW2FdLWZbMF1bYV0pO2Zvcih0aGlzLmRhdGFTY2FsZT1wLG89MDtvPHQubGVuZ3RoOysrbylpZihuPXRbb10sbi52aXNpYmxlPT09ITApe2lmKGk9dGhpcy50cmFjZXNbbi51aWRdKWkudXBkYXRlKG4pO2Vsc2V7dmFyIG09ZC5nZXRNb2R1bGUobi50eXBlKTtpPW0ucGxvdCh0aGlzLG4pLHRoaXMudHJhY2VzW24udWlkXT1pfWkubmFtZT1uLm5hbWV9dmFyIGc9T2JqZWN0LmtleXModGhpcy50cmFjZXMpO3Q6Zm9yKG89MDtvPGcubGVuZ3RoOysrbyl7Zm9yKGE9MDthPHQubGVuZ3RoOysrYSlpZih0W2FdLnVpZD09PWdbb10mJnRbYV0udmlzaWJsZT09PSEwKWNvbnRpbnVlIHQ7aT10aGlzLnRyYWNlc1tnW29dXSxpLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50cmFjZXNbZ1tvXV19dmFyIHk9W1swLDAsMF0sWzAsMCwwXV0sYj1bXSx4PXt9O2ZvcihvPTA7Mz5vOysrbyl7aWYobD1jW1Rbb11dLHU9bC50eXBlLHUgaW4geD8oeFt1XS5hY2MqPXBbb10seFt1XS5jb3VudCs9MSk6eFt1XT17YWNjOnBbb10sY291bnQ6MX0sbC5hdXRvcmFuZ2Upe2Zvcih5WzBdW29dPTEvMCx5WzFdW29dPS0oMS8wKSxhPTA7YTx0aGlzLmdscGxvdC5vYmplY3RzLmxlbmd0aDsrK2Epe3ZhciB3PXRoaXMuZ2xwbG90Lm9iamVjdHNbYV0uYm91bmRzO3lbMF1bb109TWF0aC5taW4oeVswXVtvXSx3WzBdW29dL3Bbb10pLHlbMV1bb109TWF0aC5tYXgoeVsxXVtvXSx3WzFdW29dL3Bbb10pfWlmKCJyYW5nZW1vZGUiaW4gbCYmInRvemVybyI9PT1sLnJhbmdlbW9kZSYmKHlbMF1bb109TWF0aC5taW4oeVswXVtvXSwwKSx5WzFdW29dPU1hdGgubWF4KHlbMV1bb10sMCkpLHlbMF1bb10+eVsxXVtvXSl5WzBdW29dPS0xLHlbMV1bb109MTtlbHNle3ZhciBNPXlbMV1bb10teVswXVtvXTt5WzBdW29dLT1NLzMyLHlbMV1bb10rPU0vMzJ9fWVsc2V7dmFyIGs9Y1tUW29dXS5yYW5nZTt5WzBdW29dPWtbMF0seVsxXVtvXT1rWzFdfXlbMF1bb109PT15WzFdW29dJiYoeVswXVtvXS09MSx5WzFdW29dKz0xKSxiW29dPXlbMV1bb10teVswXVtvXSx0aGlzLmdscGxvdC5ib3VuZHNbMF1bb109eVswXVtvXSpwW29dLHRoaXMuZ2xwbG90LmJvdW5kc1sxXVtvXT15WzFdW29dKnBbb119dmFyIEE9WzEsMSwxXTtmb3Iobz0wOzM+bzsrK28pe2w9Y1tUW29dXSx1PWwudHlwZTt2YXIgRT14W3VdO0Fbb109TWF0aC5wb3coRS5hY2MsMS9FLmNvdW50KS9wW29dfXZhciBTLEw9NDtpZigiYXV0byI9PT1jLmFzcGVjdG1vZGUpUz1NYXRoLm1heC5hcHBseShudWxsLEEpL01hdGgubWluLmFwcGx5KG51bGwsQSk8PUw/QTpbMSwxLDFdO2Vsc2UgaWYoImN1YmUiPT09Yy5hc3BlY3Rtb2RlKVM9WzEsMSwxXTtlbHNlIGlmKCJkYXRhIj09PWMuYXNwZWN0bW9kZSlTPUE7ZWxzZXtpZigibWFudWFsIiE9PWMuYXNwZWN0bW9kZSl0aHJvdyBuZXcgRXJyb3IoInNjZW5lLmpzIGFzcGVjdFJhdGlvIHdhcyBub3Qgb25lIG9mIHRoZSBlbnVtZXJhdGVkIHR5cGVzIik7dmFyIHo9Yy5hc3BlY3RyYXRpbztTPVt6Lngsei55LHouel19Yy5hc3BlY3RyYXRpby54PWguYXNwZWN0cmF0aW8ueD1TWzBdLGMuYXNwZWN0cmF0aW8ueT1oLmFzcGVjdHJhdGlvLnk9U1sxXSxjLmFzcGVjdHJhdGlvLno9aC5hc3BlY3RyYXRpby56PVNbMl0sdGhpcy5nbHBsb3QuYXNwZWN0PVM7dmFyIEk9Yy5kb21haW58fG51bGwsUD1lLl9zaXplfHxudWxsO2lmKEkmJlApe3ZhciBDPXRoaXMuY29udGFpbmVyLnN0eWxlO0MucG9zaXRpb249ImFic29sdXRlIixDLmxlZnQ9UC5sK0kueFswXSpQLncrInB4IixDLnRvcD1QLnQrKDEtSS55WzFdKSpQLmgrInB4IixDLndpZHRoPVAudyooSS54WzFdLUkueFswXSkrInB4IixDLmhlaWdodD1QLmgqKEkueVsxXS1JLnlbMF0pKyJweCJ9dGhpcy5nbHBsb3QucmVkcmF3KCl9fSxBLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmdscGxvdC5kaXNwb3NlKCksdGhpcy5jb250YWluZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lciksdGhpcy5nbHBsb3Q9bnVsbH0sQS5zZXRDYW1lcmFUb0RlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLnNldENhbWVyYSh7ZXllOnt4OjEuMjUseToxLjI1LHo6MS4yNX0sY2VudGVyOnt4OjAseTowLHo6MH0sdXA6e3g6MCx5OjAsejoxfX0pfSxBLmdldENhbWVyYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdscGxvdC5jYW1lcmEudmlldy5yZWNhbGNNYXRyaXgodGhpcy5jYW1lcmEudmlldy5sYXN0VCgpKSx1KHRoaXMuZ2xwbG90LmNhbWVyYSl9LEEuc2V0Q2FtZXJhPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2VbdGhpcy5pZF09dCx0aGlzLmdscGxvdC5jYW1lcmEubG9va0F0LmFwcGx5KHRoaXMsbCh0KSksdGhpcy5ncmFwaERpdi5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLGUpfSxBLnNhdmVDYW1lcmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUscixuKXt2YXIgaT1bInVwIiwiY2VudGVyIiwiZXllIl0sbz1bIngiLCJ5IiwieiJdO3JldHVybiBlW2lbcl1dJiZ0W2lbcl1dW29bbl1dPT09ZVtpW3JdXVtvW25dXX12YXIgcj10aGlzLmdldENhbWVyYSgpLG49cC5uZXN0ZWRQcm9wZXJ0eSh0LHRoaXMuaWQrIi5jYW1lcmEiKSxpPW4uZ2V0KCksbz0hMTtpZih2b2lkIDA9PT1pKW89ITA7ZWxzZSBmb3IodmFyIGE9MDszPmE7YSsrKWZvcih2YXIgcz0wOzM+cztzKyspaWYoIWUocixpLGEscykpe289ITA7YnJlYWt9cmV0dXJuIG8mJm4uc2V0KHIpLG99LEEudXBkYXRlRng9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmNhbWVyYTtyJiYoIm9yYml0Ij09PXQ/KHIubW9kZT0ib3JiaXQiLHIua2V5QmluZGluZ01vZGU9InJvdGF0ZSIpOiJ0dXJudGFibGUiPT09dD8oci51cD1bMCwwLDFdLHIubW9kZT0idHVybnRhYmxlIixyLmtleUJpbmRpbmdNb2RlPSJyb3RhdGUiKTpyLmtleUJpbmRpbmdNb2RlPXQpLHRoaXMuZnVsbFNjZW5lTGF5b3V0LmhvdmVybW9kZT1lfSxBLnRvSW1hZ2U9ZnVuY3Rpb24odCl7dHx8KHQ9InBuZyIpLHRoaXMuc3RhdGljTW9kZSYmdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQoYyksdGhpcy5nbHBsb3QucmVkcmF3KCk7dmFyIGU9dGhpcy5nbHBsb3QuZ2wscj1lLmRyYXdpbmdCdWZmZXJXaWR0aCxuPWUuZHJhd2luZ0J1ZmZlckhlaWdodDtlLmJpbmRGcmFtZWJ1ZmZlcihlLkZSQU1FQlVGRkVSLG51bGwpO3ZhciBpPW5ldyBVaW50OEFycmF5KHIqbio0KTtlLnJlYWRQaXhlbHMoMCwwLHIsbixlLlJHQkEsZS5VTlNJR05FRF9CWVRFLGkpO2Zvcih2YXIgbz0wLGE9bi0xO2E+bzsrK28sLS1hKWZvcih2YXIgcz0wO3I+czsrK3MpZm9yKHZhciBsPTA7ND5sOysrbCl7dmFyIHU9aVs0KihyKm8rcykrbF07aVs0KihyKm8rcykrbF09aVs0KihyKmErcykrbF0saVs0KihyKmErcykrbF09dX12YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtoLndpZHRoPXIsaC5oZWlnaHQ9bjt2YXIgZj1oLmdldENvbnRleHQoIjJkIikscD1mLmNyZWF0ZUltYWdlRGF0YShyLG4pO3AuZGF0YS5zZXQoaSksZi5wdXRJbWFnZURhdGEocCwwLDApO3ZhciBkO3N3aXRjaCh0KXtjYXNlImpwZWciOmQ9aC50b0RhdGFVUkwoImltYWdlL2pwZWciKTticmVhaztjYXNlIndlYnAiOmQ9aC50b0RhdGFVUkwoImltYWdlL3dlYnAiKTticmVhaztkZWZhdWx0OmQ9aC50b0RhdGFVUkwoImltYWdlL3BuZyIpfXJldHVybiB0aGlzLnN0YXRpY01vZGUmJnRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKGMpLGR9LGUuZXhwb3J0cz1vfSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvc2hvd19ub193ZWJnbF9tc2ciOjYwMSwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NjAzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMiwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi9jYW1lcmEiOjY1MCwiLi9sYXlvdXQvY29udmVydCI6NjU1LCIuL2xheW91dC9zcGlrZXMiOjY1OCwiLi9sYXlvdXQvdGlja19tYXJrcyI6NjU5LCIuL3Byb2plY3QiOjY2MCwiLi9zZXRfY29udmVydCI6NjYyLCJnbC1wbG90M2QiOjE5NH1dLDY2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLGk9ZnVuY3Rpb24oKXt9O2UuZXhwb3J0cz1mdW5jdGlvbih0KXtuLnNldENvbnZlcnQodCksdC5zZXRTY2FsZT1pfX0seyIuLi9jYXJ0ZXNpYW4vYXhlcyI6NjE1fV0sNjYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3Bsb3RseSIpLGk9dCgiLi9mb250X2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLGE9bi5MaWIuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2ZvbnQ6e2ZhbWlseTphKHt9LGkuZmFtaWx5LHtkZmx0OiciT3BlbiBTYW5zIiwgdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWYnfSksc2l6ZTphKHt9LGkuc2l6ZSx7ZGZsdDoxMn0pLGNvbG9yOmEoe30saS5jb2xvcix7ZGZsdDpvLmRlZmF1bHRMaW5lfSl9LHRpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IkNsaWNrIHRvIGVudGVyIFBsb3QgdGl0bGUifSx0aXRsZWZvbnQ6YSh7fSxpLHt9KSxhdXRvc2l6ZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwiaW5pdGlhbCJdfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MTAsZGZsdDo3MDB9LGhlaWdodDp7dmFsVHlwZToibnVtYmVyIixtaW46MTAsZGZsdDo0NTB9LG1hcmdpbjp7bDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjgwfSxyOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6ODB9LHQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxMDB9LGI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo4MH0scGFkOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MH0sYXV0b2V4cGFuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH19LHBhcGVyX2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om8uYmFja2dyb3VuZH0scGxvdF9iZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpvLmJhY2tncm91bmR9LHNlcGFyYXRvcnM6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiLiwifSxoaWRlc291cmNlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sc21pdGg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITFdLGRmbHQ6ITF9LHNob3dsZWdlbmQ6e3ZhbFR5cGU6ImJvb2xlYW4ifSxfY29tcG9zZWRNb2R1bGVzOnsiKiI6IkZ4In0sX25lc3RlZE1vZHVsZXM6e3hheGlzOiJBeGVzIix5YXhpczoiQXhlcyIsc2NlbmU6ImdsM2QiLGdlbzoiZ2VvIixsZWdlbmQ6IkxlZ2VuZCIsYW5ub3RhdGlvbnM6IkFubm90YXRpb25zIixzaGFwZXM6IlNoYXBlcyIsaW1hZ2VzOiJJbWFnZXMiLHVwZGF0ZW1lbnVzOiJVcGRhdGVNZW51cyIsdGVybmFyeToidGVybmFyeSIsbWFwYm94OiJtYXBib3gifX19LHsiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo1MDUsIi4uL3Bsb3RseSI6NjEyLCIuL2ZvbnRfYXR0cmlidXRlcyI6NjMzfV0sNjY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17c3R5bGVVcmxQcmVmaXg6Im1hcGJveDovL3N0eWxlcy9tYXBib3gvIixzdHlsZVVybFN1ZmZpeDoidjkiLGNvbnRyb2xDb250YWluZXJDbGFzc05hbWU6Im1hcGJveGdsLWNvbnRyb2wtY29udGFpbmVyIixub0FjY2Vzc1Rva2VuRXJyb3JNc2c6WyJNaXNzaW5nIE1hcGJveCBhY2Nlc3MgdG9rZW4uIiwiTWFwYm94IHRyYWNlIHR5cGUgcmVxdWlyZSBhIE1hcGJveCBhY2Nlc3MgdG9rZW4gdG8gYmUgcmVnaXN0ZXJlZC4iLCJGb3IgZXhhbXBsZToiLCIgIFBsb3RseS5wbG90KGdkLCBkYXRhLCBsYXlvdXQsIHsgbWFwYm94QWNjZXNzVG9rZW46ICdteS1hY2Nlc3MtdG9rZW4nIH0pOyIsIk1vcmUgaW5mbyBoZXJlOiBodHRwczovL3d3dy5tYXBib3guY29tL2hlbHAvZGVmaW5lLWFjY2Vzcy10b2tlbi8iXS5qb2luKCJcbiIpLG1hcE9uRXJyb3JNc2c6Ik1hcGJveCBlcnJvci4ifX0se31dLDY2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnNwbGl0KCIgIiksaT1yWzBdLG89clsxXSxhPUFycmF5LmlzQXJyYXkoZSk/bi5tZWFuKGUpOmUscz0uNSthLzEwMCxsPTEuNSthLzEwMCx1PVsiIiwiIl0sYz1bMCwwXTtzd2l0Y2goaSl7Y2FzZSJ0b3AiOnVbMF09InRvcCIsY1sxXT0tbDticmVhaztjYXNlImJvdHRvbSI6dVswXT0iYm90dG9tIixjWzFdPWx9c3dpdGNoKG8pe2Nhc2UibGVmdCI6dVsxXT0icmlnaHQiLGNbMF09LXM7YnJlYWs7Y2FzZSJyaWdodCI6dVsxXT0ibGVmdCIsY1swXT1zfXZhciBoO3JldHVybiBoPXVbMF0mJnVbMV0/dS5qb2luKCItIik6dVswXT91WzBdOnVbMV0/dVsxXToiY2VudGVyIix7YW5jaG9yOmgsb2Zmc2V0OmN9fX0seyIuLi8uLi9saWIiOjU5MX1dLDY2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxvPWlbMF0udHJhY2U7by5zdWJwbG90PT09ZSYmci5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIGkodCxlKXtmb3IodmFyIHI9dC5fZnVsbExheW91dCxuPXQuX2NvbnRleHQsaT1uLm1hcGJveEFjY2Vzc1Rva2VuLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIGE9cltlW29dXTtpZihhLmFjY2Vzc3Rva2VuKXtpPWEuYWNjZXNzdG9rZW47YnJlYWt9fWlmKCFpKXRocm93IG5ldyBFcnJvcih1Lm5vQWNjZXNzVG9rZW5FcnJvck1zZyk7cmV0dXJuIGl9dmFyIG89dCgibWFwYm94LWdsIiksYT10KCIuLi9wbG90cyIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxsPXQoIi4vbWFwYm94IiksdT10KCIuL2NvbnN0YW50cyIpO3IubmFtZT0ibWFwYm94IixyLmF0dHI9InN1YnBsb3QiLHIuaWRSb290PSJtYXBib3giLHIuaWRSZWdleD0vXm1hcGJveChbMi05XXxbMS05XVswLTldKyk/JC8sci5hdHRyUmVnZXg9L15tYXBib3goWzItOV18WzEtOV1bMC05XSspPyQvLHIuYXR0cmlidXRlcz17c3VicGxvdDp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJtYXBib3gifX0sci5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxyLnN1cHBseUxheW91dERlZmF1bHRzPXQoIi4vbGF5b3V0X2RlZmF1bHRzIiksci5wbG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj10LmNhbGNkYXRhLHM9YS5nZXRTdWJwbG90SWRzKGUsIm1hcGJveCIpLHU9aSh0LHMpO28uYWNjZXNzVG9rZW49dTtmb3IodmFyIGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIGg9c1tjXSxmPW4ocixoKSxwPWVbaF0sZD1wLl9zdWJwbG90O3AuYWNjZXNzdG9rZW49dSxkfHwoZD1sKHtnZDp0LGNvbnRhaW5lcjplLl9nbGNvbnRhaW5lci5ub2RlKCksaWQ6aCxmdWxsTGF5b3V0OmUsc3RhdGljUGxvdDp0Ll9jb250ZXh0LnN0YXRpY1Bsb3R9KSxlW2hdLl9zdWJwbG90PWQpLGQucGxvdChmLGUsdC5fcHJvbWlzZXMpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9YS5nZXRTdWJwbG90SWRzKG4sIm1hcGJveCIpLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIHM9aVtvXTshZVtzXSYmbltzXS5fc3VicGxvdCYmbltzXS5fc3VicGxvdC5kZXN0cm95KCl9fSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9YS5nZXRTdWJwbG90SWRzKGUsIm1hcGJveCIpLG49ZS5fc2l6ZSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPWVbcltpXV0sbD1vLmRvbWFpbix1PW8uX3N1YnBsb3QsYz11LnRvSW1hZ2UoInBuZyIpLGg9ZS5fZ2xpbWFnZXMuYXBwZW5kKCJzdmc6aW1hZ2UiKTtoLmF0dHIoe3htbG5zOnMuc3ZnLCJ4bGluazpocmVmIjpjLHg6bi5sK24udypsLnhbMF0seTpuLnQrbi5oKigxLWwueVsxXSksd2lkdGg6bi53KihsLnhbMV0tbC54WzBdKSxoZWlnaHQ6bi5oKihsLnlbMV0tbC55WzBdKSxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pLHUuZGVzdHJveSgpfX19LHsiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjU3OSwiLi4vcGxvdHMiOjY3MSwiLi9jb25zdGFudHMiOjY2NCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjY4LCIuL2xheW91dF9kZWZhdWx0cyI6NjY5LCIuL21hcGJveCI6NjcwLCJtYXBib3gtZ2wiOjI2N31dLDY2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dGhpcy5tYXBib3g9dCx0aGlzLm1hcD10Lm1hcCx0aGlzLnVpZD10LnVpZCsiLWxheWVyIitlLHRoaXMuaWRTb3VyY2U9dGhpcy51aWQrIi1zb3VyY2UiLHRoaXMuaWRMYXllcj10aGlzLnVpZCsiLWxheWVyIix0aGlzLnNvdXJjZVR5cGU9bnVsbCx0aGlzLnNvdXJjZT1udWxsLHRoaXMubGF5ZXJUeXBlPW51bGwsdGhpcy5iZWxvdz1udWxsLHRoaXMudmlzaWJsZT0hMX1mdW5jdGlvbiBpKHQpe3ZhciBlPXQuc291cmNlO3JldHVybiBzLmlzUGxhaW5PYmplY3QoZSl8fCJzdHJpbmciPT10eXBlb2YgZSYmZS5sZW5ndGg+MH1mdW5jdGlvbiBvKHQpe3ZhciBlPXt9LHI9e307c3dpdGNoKHQudHlwZSl7CmNhc2UiY2lyY2xlIjpzLmV4dGVuZEZsYXQocix7ImNpcmNsZS1yYWRpdXMiOnQuY2lyY2xlLnJhZGl1cywiY2lyY2xlLWNvbG9yIjp0LmNvbG9yLCJjaXJjbGUtb3BhY2l0eSI6dC5vcGFjaXR5fSk7YnJlYWs7Y2FzZSJsaW5lIjpzLmV4dGVuZEZsYXQocix7ImxpbmUtd2lkdGgiOnQubGluZS53aWR0aCwibGluZS1jb2xvciI6dC5jb2xvciwibGluZS1vcGFjaXR5Ijp0Lm9wYWNpdHl9KTticmVhaztjYXNlImZpbGwiOnMuZXh0ZW5kRmxhdChyLHsiZmlsbC1jb2xvciI6dC5jb2xvciwiZmlsbC1vdXRsaW5lLWNvbG9yIjp0LmZpbGwub3V0bGluZWNvbG9yLCJmaWxsLW9wYWNpdHkiOnQub3BhY2l0eX0pO2JyZWFrO2Nhc2Uic3ltYm9sIjp2YXIgbj10LnN5bWJvbCxpPWwobi50ZXh0cG9zaXRpb24sbi5pY29uc2l6ZSk7cy5leHRlbmRGbGF0KGUseyJpY29uLWltYWdlIjpuLmljb24rIi0xNSIsImljb24tc2l6ZSI6bi5pY29uc2l6ZS8xMCwidGV4dC1maWVsZCI6bi50ZXh0LCJ0ZXh0LXNpemUiOm4udGV4dGZvbnQuc2l6ZSwidGV4dC1hbmNob3IiOmkuYW5jaG9yLCJ0ZXh0LW9mZnNldCI6aS5vZmZzZXR9KSxzLmV4dGVuZEZsYXQocix7Imljb24tY29sb3IiOnQuY29sb3IsInRleHQtY29sb3IiOm4udGV4dGZvbnQuY29sb3IsInRleHQtb3BhY2l0eSI6dC5vcGFjaXR5fSl9cmV0dXJue2xheW91dDplLHBhaW50OnJ9fWZ1bmN0aW9uIGEodCl7dmFyIGUscj10LnNvdXJjZXR5cGUsbj10LnNvdXJjZSxpPXt0eXBlOnJ9LG89InN0cmluZyI9PXR5cGVvZiBuO3JldHVybiJnZW9qc29uIj09PXI/ZT0iZGF0YSI6InZlY3RvciI9PT1yJiYoZT1vPyJ1cmwiOiJ0aWxlcyIpLGlbZV09bixpfXZhciBzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi9jb252ZXJ0X3RleHRfb3B0cyIpLHU9bi5wcm90b3R5cGU7dS51cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy52aXNpYmxlP3RoaXMubmVlZHNOZXdTb3VyY2UodCk/KHRoaXMudXBkYXRlTGF5ZXIodCksdGhpcy51cGRhdGVTb3VyY2UodCkpOnRoaXMubmVlZHNOZXdMYXllcih0KSYmdGhpcy51cGRhdGVMYXllcih0KToodGhpcy51cGRhdGVTb3VyY2UodCksdGhpcy51cGRhdGVMYXllcih0KSksdGhpcy51cGRhdGVTdHlsZSh0KSx0aGlzLnZpc2libGU9aSh0KX0sdS5uZWVkc05ld1NvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zb3VyY2VUeXBlIT09dC5zb3VyY2V0eXBlfHx0aGlzLnNvdXJjZSE9PXQuc291cmNlfHx0aGlzLmxheWVyVHlwZSE9PXQudHlwZX0sdS5uZWVkc05ld0xheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxheWVyVHlwZSE9PXQudHlwZXx8dGhpcy5iZWxvdyE9PXQuYmVsb3d9LHUudXBkYXRlU291cmNlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwO2lmKGUuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpJiZlLnJlbW92ZVNvdXJjZSh0aGlzLmlkU291cmNlKSx0aGlzLnNvdXJjZVR5cGU9dC5zb3VyY2V0eXBlLHRoaXMuc291cmNlPXQuc291cmNlLGkodCkpe3ZhciByPWEodCk7ZS5hZGRTb3VyY2UodGhpcy5pZFNvdXJjZSxyKX19LHUudXBkYXRlTGF5ZXI9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5tYXA7aWYoZS5nZXRMYXllcih0aGlzLmlkTGF5ZXIpJiZlLnJlbW92ZUxheWVyKHRoaXMuaWRMYXllciksdGhpcy5sYXllclR5cGU9dC50eXBlLGkodCkpe2UuYWRkTGF5ZXIoe2lkOnRoaXMuaWRMYXllcixzb3VyY2U6dGhpcy5pZFNvdXJjZSwic291cmNlLWxheWVyIjp0LnNvdXJjZWxheWVyfHwiIix0eXBlOnQudHlwZX0sdC5iZWxvdyk7dmFyIHI9e3Zpc2liaWxpdHk6InZpc2libGUifTt0aGlzLm1hcGJveC5zZXRPcHRpb25zKHRoaXMuaWRMYXllciwic2V0TGF5b3V0UHJvcGVydHkiLHIpfX0sdS51cGRhdGVTdHlsZT1mdW5jdGlvbih0KXt2YXIgZT1vKHQpO2kodCkmJih0aGlzLm1hcGJveC5zZXRPcHRpb25zKHRoaXMuaWRMYXllciwic2V0TGF5b3V0UHJvcGVydHkiLGUubGF5b3V0KSx0aGlzLm1hcGJveC5zZXRPcHRpb25zKHRoaXMuaWRMYXllciwic2V0UGFpbnRQcm9wZXJ0eSIsZS5wYWludCkpfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1hcDt0LnJlbW92ZUxheWVyKHRoaXMuaWRMYXllciksdC5yZW1vdmVTb3VyY2UodGhpcy5pZFNvdXJjZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9bmV3IG4odCxlKTtyZXR1cm4gaS51cGRhdGUociksaX19LHsiLi4vLi4vbGliIjo1OTEsIi4vY29udmVydF90ZXh0X29wdHMiOjY2NX1dLDY2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5kZWZhdWx0TGluZSxvPXQoIi4uL2ZvbnRfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvYXR0cmlidXRlcyIpLnRleHRwb3NpdGlvbjtlLmV4cG9ydHM9e2RvbWFpbjp7eDp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX1dLGRmbHQ6WzAsMV19LHk6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX0se3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjF9XSxkZmx0OlswLDFdfX0sYWNjZXNzdG9rZW46e3ZhbFR5cGU6InN0cmluZyIsbm9CbGFuazohMCxzdHJpY3Q6ITB9LHN0eWxlOnt2YWxUeXBlOiJhbnkiLHZhbHVlczpbImJhc2ljIiwic3RyZWV0cyIsIm91dGRvb3JzIiwibGlnaHQiLCJkYXJrIiwic2F0ZWxsaXRlIiwic2F0ZWxsaXRlLXN0cmVldHMiXSxkZmx0OiJiYXNpYyJ9LGNlbnRlcjp7bG9uOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0sbGF0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH19LHpvb206e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxfSxiZWFyaW5nOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0scGl0Y2g6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxsYXllcnM6e19pc0xpbmtlZFRvQXJyYXk6ITAsc291cmNldHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZ2VvanNvbiIsInZlY3RvciJdLGRmbHQ6Imdlb2pzb24ifSxzb3VyY2U6e3ZhbFR5cGU6ImFueSJ9LHNvdXJjZWxheWVyOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNpcmNsZSIsImxpbmUiLCJmaWxsIiwic3ltYm9sIl0sZGZsdDoiY2lyY2xlIn0sYmVsb3c6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Oml9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxjaXJjbGU6e3JhZGl1czp7dmFsVHlwZToibnVtYmVyIixkZmx0OjE1fX0sbGluZTp7d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoyfX0sZmlsbDp7b3V0bGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppfX0sc3ltYm9sOntpY29uOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Im1hcmtlciJ9LGljb25zaXplOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTB9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sdGV4dGZvbnQ6bi5leHRlbmREZWVwKHt9LG8se2ZhbWlseTp7ZGZsdDoiT3BlbiBTYW5zIFJlZ3VsYXIsIEFyaWFsIFVuaWNvZGUgTVMgUmVndWxhciJ9fSksdGV4dHBvc2l0aW9uOm4uZXh0ZW5kRmxhdCh7fSxhLHthcnJheU9rOiExfSl9fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9saWIiOjU5MSwiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvYXR0cmlidXRlcyI6NzczLCIuLi9mb250X2F0dHJpYnV0ZXMiOjYzM31dLDY2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtyKCJhY2Nlc3N0b2tlbiIpLHIoInN0eWxlIikscigiY2VudGVyLmxvbiIpLHIoImNlbnRlci5sYXQiKSxyKCJ6b29tIikscigiYmVhcmluZyIpLHIoInBpdGNoIiksaSh0LGUpLGUuX2lucHV0PXR9ZnVuY3Rpb24gaSh0LGUpe2Z1bmN0aW9uIHIodCxlKXtyZXR1cm4gby5jb2VyY2UobixpLHMubGF5ZXJzLHQsZSl9Zm9yKHZhciBuLGksYT10LmxheWVyc3x8W10sbD1lLmxheWVycz1bXSx1PTA7dTxhLmxlbmd0aDt1KyspaWYobj1hW3VdLGk9e30sby5pc1BsYWluT2JqZWN0KG4pKXt2YXIgYz1yKCJzb3VyY2V0eXBlIik7cigic291cmNlIiksInZlY3RvciI9PT1jJiZyKCJzb3VyY2VsYXllciIpO3ZhciBoPXIoInR5cGUiKTtyKCJiZWxvdyIpLHIoImNvbG9yIikscigib3BhY2l0eSIpLCJjaXJjbGUiPT09aCYmcigiY2lyY2xlLnJhZGl1cyIpLCJsaW5lIj09PWgmJnIoImxpbmUud2lkdGgiKSwiZmlsbCI9PT1oJiZyKCJmaWxsLm91dGxpbmVjb2xvciIpLCJzeW1ib2wiPT09aCYmKHIoInN5bWJvbC5pY29uIikscigic3ltYm9sLmljb25zaXplIikscigic3ltYm9sLnRleHQiKSxvLmNvZXJjZUZvbnQociwic3ltYm9sLnRleHRmb250Iikscigic3ltYm9sLnRleHRwb3NpdGlvbiIpKSxpLl9pbmRleD11LGwucHVzaChpKX19dmFyIG89dCgiLi4vLi4vbGliIiksYT10KCIuLi9zdWJwbG90X2RlZmF1bHRzIikscz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXthKHQsZSxyLHt0eXBlOiJtYXBib3giLGF0dHJpYnV0ZXM6cyxoYW5kbGVEZWZhdWx0czpuLHBhcnRpdGlvbjoieSJ9KX19LHsiLi4vLi4vbGliIjo1OTEsIi4uL3N1YnBsb3RfZGVmYXVsdHMiOjY3NywiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjY4fV0sNjcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dGhpcy5pZD10LmlkLHRoaXMuZ2Q9dC5nZCx0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLmlzU3RhdGljPXQuc3RhdGljUGxvdDt2YXIgZT10LmZ1bGxMYXlvdXQ7dGhpcy51aWQ9ZS5fdWlkKyItIit0aGlzLmlkLHRoaXMub3B0cz1lW3RoaXMuaWRdLHRoaXMuZGl2PW51bGwsdGhpcy54YXhpcz1udWxsLHRoaXMueWF4aXM9bnVsbCx0aGlzLmNyZWF0ZUZyYW1ld29yayhlKSx0aGlzLm1hcD1udWxsLHRoaXMuYWNjZXNzVG9rZW49bnVsbCx0aGlzLnN0eWxlT2JqPW51bGwsdGhpcy50cmFjZUhhc2g9e30sdGhpcy5sYXllckxpc3Q9W119ZnVuY3Rpb24gaSh0KXt2YXIgZT1oLnN0eWxlLnZhbHVlcyxyPWguc3R5bGUuZGZsdCxuPXt9O3JldHVybiB1LmlzUGxhaW5PYmplY3QodCk/KG4uaWQ9dC5pZCxuLnN0eWxlPXQpOiJzdHJpbmciPT10eXBlb2YgdD8obi5pZD10LG4uc3R5bGU9LTEhPT1lLmluZGV4T2YodCk/byh0KTp0KToobi5pZD1yLG4uc3R5bGU9byhyKSksbn1mdW5jdGlvbiBvKHQpe3JldHVybiBjLnN0eWxlVXJsUHJlZml4K3QrIi0iK2Muc3R5bGVVcmxTdWZmaXh9ZnVuY3Rpb24gYSh0KXtyZXR1cm5bdC5sb24sdC5sYXRdfXZhciBzPXQoIm1hcGJveC1nbCIpLGw9dCgiLi4vY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0IiksdT10KCIuLi8uLi9saWIiKSxjPXQoIi4vY29uc3RhbnRzIiksaD10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksZj10KCIuL2xheWVycyIpLHA9bi5wcm90b3R5cGU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBuKHQpO3JldHVybiBlfSxwLnBsb3Q9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT1uLm9wdHM9ZVt0aGlzLmlkXTtuLm1hcCYmaS5hY2Nlc3N0b2tlbiE9PW4uYWNjZXNzVG9rZW4mJihuLm1hcC5yZW1vdmUoKSxuLm1hcD1udWxsLG4uc3R5bGVPYmo9bnVsbCxuLnRyYWNlSGFzaD1bXSxuLmxheWVyTGlzdD17fSk7dmFyIG87bz1uLm1hcD9uZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe24udXBkYXRlTWFwKHQsZSxyLGkpfSk6bmV3IFByb21pc2UoZnVuY3Rpb24ocixpKXtuLmNyZWF0ZU1hcCh0LGUscixpKX0pLHIucHVzaChvKX0scC5jcmVhdGVNYXA9ZnVuY3Rpb24odCxlLHIsbil7ZnVuY3Rpb24gbygpe2wubG9uZVVuaG92ZXIoZS5fdG9wcGFwZXIpfXZhciBoPXRoaXMsZj1oLmdkLHA9aC5vcHRzLGQ9aC5zdHlsZU9iaj1pKHAuc3R5bGUpO2guYWNjZXNzVG9rZW49cC5hY2Nlc3N0b2tlbjt2YXIgbT1oLm1hcD1uZXcgcy5NYXAoe2NvbnRhaW5lcjpoLmRpdixzdHlsZTpkLnN0eWxlLGNlbnRlcjphKHAuY2VudGVyKSx6b29tOnAuem9vbSxiZWFyaW5nOnAuYmVhcmluZyxwaXRjaDpwLnBpdGNoLGludGVyYWN0aXZlOiFoLmlzU3RhdGljLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjpoLmlzU3RhdGljfSksZz1jLmNvbnRyb2xDb250YWluZXJDbGFzc05hbWUsdj1oLmRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGcpWzBdO2guZGl2LnJlbW92ZUNoaWxkKHYpLGgucmVqZWN0T25FcnJvcihuKSxtLm9uY2UoImxvYWQiLGZ1bmN0aW9uKCl7aC51cGRhdGVEYXRhKHQpLGgudXBkYXRlTGF5b3V0KGUpLGgucmVzb2x2ZU9uUmVuZGVyKHIpfSksbS5vbigibW92ZSIsZnVuY3Rpb24oKXt2YXIgdD1oLmdldFZpZXcoKTtwLl9pbnB1dC5jZW50ZXI9cC5jZW50ZXI9dC5jZW50ZXIscC5faW5wdXQuem9vbT1wLnpvb209dC56b29tLHAuX2lucHV0LmJlYXJpbmc9cC5iZWFyaW5nPXQuYmVhcmluZyxwLl9pbnB1dC5waXRjaD1wLnBpdGNoPXQucGl0Y2g7dmFyIGU9e307ZVtoLmlkXT11LmV4dGVuZEZsYXQoe30sdCksZi5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLGUpfSksbS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbih0KXt2YXIgZT1oLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0LmNsaWVudFg9dC5wb2ludC54K2UubGVmdCx0LmNsaWVudFk9dC5wb2ludC55K2UudG9wLHQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdD1mdW5jdGlvbigpe3JldHVybiBlfSxoLnhheGlzLnAyYz1mdW5jdGlvbigpe3JldHVybiB0LmxuZ0xhdC5sbmd9LGgueWF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIHQubG5nTGF0LmxhdH0sbC5ob3ZlcihmLHQsaC5pZCl9KSxtLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsLmNsaWNrKGYse3RhcmdldDohMH0pfSksbS5vbigiZHJhZ3N0YXJ0IixvKSxtLm9uKCJ6b29tc3RhcnQiLG8pfSxwLnVwZGF0ZU1hcD1mdW5jdGlvbih0LGUscixuKXt2YXIgbz10aGlzLGE9by5tYXA7by5yZWplY3RPbkVycm9yKG4pO3ZhciBzPWkoby5vcHRzLnN0eWxlKTtvLnN0eWxlT2JqLmlkIT09cy5pZD8oby5zdHlsZU9iaj1zLGEuc2V0U3R5bGUocy5zdHlsZSksYS5zdHlsZS5vbmNlKCJsb2FkIixmdW5jdGlvbigpe28udHJhY2VIYXNoPXt9LG8udXBkYXRlRGF0YSh0KSxvLnVwZGF0ZUxheW91dChlKSxvLnJlc29sdmVPblJlbmRlcihyKX0pKTooby51cGRhdGVEYXRhKHQpLG8udXBkYXRlTGF5b3V0KGUpLG8ucmVzb2x2ZU9uUmVuZGVyKHIpKX0scC51cGRhdGVEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLG89dGhpcy50cmFjZUhhc2g7Zm9yKG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGE9dFtuXTtyPWFbMF0udHJhY2UsZT1vW3IudWlkXSxlP2UudXBkYXRlKGEpOm9bci51aWRdPXIuX21vZHVsZS5wbG90KHRoaXMsYSl9dmFyIHM9T2JqZWN0LmtleXMobyk7dDpmb3Iobj0wO248cy5sZW5ndGg7bisrKXt2YXIgbD1zW25dO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaWYocj10W2ldWzBdLnRyYWNlLGw9PT1yLnVpZCljb250aW51ZSB0O2U9b1tsXSxlLmRpc3Bvc2UoKSxkZWxldGUgb1tsXX19LHAudXBkYXRlTGF5b3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwLHI9dGhpcy5vcHRzO2Uuc2V0Q2VudGVyKGEoci5jZW50ZXIpKSxlLnNldFpvb20oci56b29tKSxlLnNldEJlYXJpbmcoci5iZWFyaW5nKSxlLnNldFBpdGNoKHIucGl0Y2gpLHRoaXMudXBkYXRlTGF5ZXJzKCksdGhpcy51cGRhdGVGcmFtZXdvcmsodCksdGhpcy5tYXAucmVzaXplKCl9LHAucmVzb2x2ZU9uUmVuZGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwO2Uub24oInJlbmRlciIsZnVuY3Rpb24gcigpe2UubG9hZGVkKCkmJihlLm9mZigicmVuZGVyIixyKSx0KCkpfSl9LHAucmVqZWN0T25FcnJvcj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dChuZXcgRXJyb3IoYy5tYXBPbkVycm9yTXNnKSl9dmFyIHI9dGhpcy5tYXA7ci5vbmNlKCJlcnJvciIsZSksci5vbmNlKCJzdHlsZS5lcnJvciIsZSksci5vbmNlKCJzb3VyY2UuZXJyb3IiLGUpLHIub25jZSgidGlsZS5lcnJvciIsZSksci5vbmNlKCJsYXllci5lcnJvciIsZSl9LHAuY3JlYXRlRnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1lLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmlkPWUudWlkLHIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixlLmNvbnRhaW5lci5hcHBlbmRDaGlsZChyKSxlLnhheGlzPXtfaWQ6IngiLGMycDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wcm9qZWN0KHQpLnh9fSxlLnlheGlzPXtfaWQ6InkiLGMycDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wcm9qZWN0KHQpLnl9fSxlLnVwZGF0ZUZyYW1ld29yayh0KX0scC51cGRhdGVGcmFtZXdvcms9ZnVuY3Rpb24odCl7dmFyIGU9dFt0aGlzLmlkXS5kb21haW4scj10Ll9zaXplLG49dGhpcy5kaXYuc3R5bGU7bi53aWR0aD1yLncqKGUueFsxXS1lLnhbMF0pKyJweCIsbi5oZWlnaHQ9ci5oKihlLnlbMV0tZS55WzBdKSsicHgiLG4ubGVmdD1yLmwrZS54WzBdKnIudysicHgiLG4udG9wPXIudCsoMS1lLnlbMV0pKnIuaCsicHgiLHRoaXMueGF4aXMuX29mZnNldD1yLmwrZS54WzBdKnIudyx0aGlzLnhheGlzLl9sZW5ndGg9ci53KihlLnhbMV0tZS54WzBdKSx0aGlzLnlheGlzLl9vZmZzZXQ9ci50KygxLWUueVsxXSkqci5oLHRoaXMueWF4aXMuX2xlbmd0aD1yLmgqKGUueVsxXS1lLnlbMF0pfSxwLnVwZGF0ZUxheWVycz1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5vcHRzLHI9ZS5sYXllcnMsbj10aGlzLmxheWVyTGlzdDtpZihyLmxlbmd0aCE9PW4ubGVuZ3RoKXtmb3IodD0wO3Q8bi5sZW5ndGg7dCsrKW5bdF0uZGlzcG9zZSgpO2ZvcihuPXRoaXMubGF5ZXJMaXN0PVtdLHQ9MDt0PHIubGVuZ3RoO3QrKyluLnB1c2goZih0aGlzLHQsclt0XSkpfWVsc2UgZm9yKHQ9MDt0PHIubGVuZ3RoO3QrKyluW3RdLnVwZGF0ZShyW3RdKX0scC5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5tYXAmJnRoaXMubWFwLnJlbW92ZSgpLHRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuZGl2KX0scC50b0ltYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwLmdldENhbnZhcygpLnRvRGF0YVVSTCgpfSxwLmluaXRTb3VyY2U9ZnVuY3Rpb24odCl7dmFyIGU9e3R5cGU6Imdlb2pzb24iLGRhdGE6e3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6W119fX07cmV0dXJuIHRoaXMubWFwLmFkZFNvdXJjZSh0LGUpfSxwLnNldFNvdXJjZURhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLm1hcC5nZXRTb3VyY2UodCkuc2V0RGF0YShlKX0scC5zZXRPcHRpb25zPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49dGhpcy5tYXAsaT1PYmplY3Qua2V5cyhyKSxvPTA7bzxpLmxlbmd0aDtvKyspe3ZhciBhPWlbb107bltlXSh0LGEsclthXSl9fSxwLnByb2plY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFwLnByb2plY3QobmV3IHMuTG5nTGF0KHRbMF0sdFsxXSkpfSxwLmdldFZpZXc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1hcCxlPXQuZ2V0Q2VudGVyKCkscj17bG9uOmUubG5nLGxhdDplLmxhdH07cmV0dXJue2NlbnRlcjpyLHpvb206dC5nZXRab29tKCksYmVhcmluZzp0LmdldEJlYXJpbmcoKSxwaXRjaDp0LmdldFBpdGNoKCl9fX0seyIuLi8uLi9saWIiOjU5MSwiLi4vY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Ijo2MjIsIi4vY29uc3RhbnRzIjo2NjQsIi4vbGF5ZXJzIjo2NjcsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY2OCwibWFwYm94LWdsIjoyNjd9XSw2NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJih0PXQudHlwZSksdH1mdW5jdGlvbiBpKHQsZSl7ZS50ZXh0KCIiKTt2YXIgcj1lLmFwcGVuZCgiYSIpLmF0dHIoeyJ4bGluazp4bGluazpocmVmIjoiIyIsImNsYXNzIjoibGluay0taW1wdCBsaW5rLS1lbWJlZHZpZXciLCJmb250LXdlaWdodCI6ImJvbGQifSkudGV4dCh0Ll9jb250ZXh0LmxpbmtUZXh0KyIgIitTdHJpbmcuZnJvbUNoYXJDb2RlKDE4NykpO2lmKHQuX2NvbnRleHQuc2VuZERhdGEpci5vbigiY2xpY2siLGZ1bmN0aW9uKCl7cC5zZW5kRGF0YVRvQ2xvdWQodCl9KTtlbHNle3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgiLyIpLGk9d2luZG93LmxvY2F0aW9uLnNlYXJjaDtyLmF0dHIoeyJ4bGluazp4bGluazpzaG93IjoibmV3IiwieGxpbms6eGxpbms6aHJlZiI6Ii8iK25bMl0uc3BsaXQoIi4iKVswXSsiLyIrblsxXStpfSl9fWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9aC5pc1BsYWluT2JqZWN0LG49QXJyYXkuaXNBcnJheSxpPU9iamVjdC5rZXlzKGUpLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHM9aVthXSxsPWVbc10sdT10W3NdO2lmKCJfIj09PXMuY2hhckF0KDApfHwiZnVuY3Rpb24iPT10eXBlb2YgbCl7aWYocyBpbiB0KWNvbnRpbnVlO3Rbc109bH1lbHNlIGlmKG4obCkmJm4odSkmJnIobFswXSkpZm9yKHZhciBjPTA7YzxsLmxlbmd0aDtjKyspcihsW2NdKSYmcih1W2NdKSYmbyh1W2NdLGxbY10pO2Vsc2UgcihsKSYmcih1KSYmKG8odSxsKSxPYmplY3Qua2V5cyh1KS5sZW5ndGh8fGRlbGV0ZSB0W3NdKX19ZnVuY3Rpb24gYSh0LGUscil7aWYoQXJyYXkuaXNBcnJheSh0LnRyYW5zZm9ybXMpKWZvcih2YXIgbj10LnRyYW5zZm9ybXMsaT1lLnRyYW5zZm9ybXM9W10sbz0wO288bi5sZW5ndGg7bysrKXt2YXIgYSxzPW5bb10sbD1zLnR5cGUsdT15W2xdO3V8fGgud2FybigiVW5yZWNvZ25pemVkIHRyYW5zZm9ybSB0eXBlICIrbCsiLiIpLHUmJnUuc3VwcGx5RGVmYXVsdHM/KGE9dS5zdXBwbHlEZWZhdWx0cyhzLGUsciksYS50eXBlPWwpOmE9aC5leHRlbmRGbGF0KHt9LHMpLGkucHVzaChhKX19ZnVuY3Rpb24gcyh0LGUscil7Zm9yKHZhciBuPXQudHJhbnNmb3JtcyxpPVt0XSxvPTA7bzxuLmxlbmd0aDtvKyspe3ZhciBhPW5bb10scz1hLnR5cGUsbD15W3NdO2wmJihpPWwudHJhbnNmb3JtKGkse3RyYW5zZm9ybTphLGZ1bGxUcmFjZTp0LGZ1bGxEYXRhOmUsbGF5b3V0OnJ9KSl9cmV0dXJuIGl9dmFyIGw9dCgiZDMiKSx1PXQoImZhc3QtaXNudW1lcmljIiksYz10KCIuLi9wbG90bHkiKSxoPXQoIi4uL2xpYiIpLGY9dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLHA9ZS5leHBvcnRzPXt9LGQ9cC5tb2R1bGVzPXt9LG09cC5hbGxUeXBlcz1bXSxnPXAuYWxsQ2F0ZWdvcmllcz17fSx2PXAuc3VicGxvdHNSZWdpc3RyeT17fSx5PXAudHJhbnNmb3Jtc1JlZ2lzdHJ5PXt9O3AuYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxwLmF0dHJpYnV0ZXMudHlwZS52YWx1ZXM9bSxwLmZvbnRBdHRycz10KCIuL2ZvbnRfYXR0cmlidXRlcyIpLHAubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIikscC5mb250V2VpZ2h0PSJub3JtYWwiLHAucmVnaXN0ZXI9ZnVuY3Rpb24odCxlLHIsbil7aWYoZFtlXSlyZXR1cm4gdm9pZCBoLmxvZygiVHlwZSAiK2UrIiBhbHJlYWR5IHJlZ2lzdGVyZWQiKTtmb3IodmFyIGk9e30sbz0wO288ci5sZW5ndGg7bysrKWlbcltvXV09ITAsZ1tyW29dXT0hMDtkW2VdPXtfbW9kdWxlOnQsY2F0ZWdvcmllczppfSxuJiZPYmplY3Qua2V5cyhuKS5sZW5ndGgmJihkW2VdLm1ldGE9biksbS5wdXNoKGUpfSxwLmdldE1vZHVsZT1mdW5jdGlvbih0KXtpZih2b2lkIDAhPT10LnIpcmV0dXJuIGgud2FybigiVHJpZWQgdG8gcHV0IGEgcG9sYXIgdHJhY2Ugb24gYW4gaW5jb21wYXRpYmxlIGdyYXBoIG9mIGNhcnRlc2lhbiBkYXRhLiBJZ25vcmluZyB0aGlzIGRhdGFzZXQuIix0KSwhMTt2YXIgZT1kW24odCldO3JldHVybiBlP2UuX21vZHVsZTohMX0scC50cmFjZUlzPWZ1bmN0aW9uKHQsZSl7aWYodD1uKHQpLCJ2YXJpb3VzIj09PXQpcmV0dXJuITE7dmFyIHI9ZFt0XTtyZXR1cm4gcnx8KHZvaWQgMCE9PXQmJmgubG9nKCJVbnJlY29nbml6ZWQgdHJhY2UgdHlwZSAiK3QrIi4iKSxyPWRbcC5hdHRyaWJ1dGVzLnR5cGUuZGZsdF0pLCEhci5jYXRlZ29yaWVzW2VdfSxwLnJlZ2lzdGVyU3VicGxvdD1mdW5jdGlvbih0KXt2YXIgZT10Lm5hbWU7cmV0dXJuIHZbZV0/dm9pZCBoLmxvZygiUGxvdCB0eXBlICIrZSsiIGFscmVhZHkgcmVnaXN0ZXJlZC4iKTp2b2lkKHZbZV09dCl9LHAuZmluZFN1YnBsb3RJZHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1bXTtpZih2b2lkIDA9PT1wLnN1YnBsb3RzUmVnaXN0cnlbZV0pcmV0dXJuIHI7Zm9yKHZhciBuPXAuc3VicGxvdHNSZWdpc3RyeVtlXS5hdHRyLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89dFtpXTtwLnRyYWNlSXMobyxlKSYmLTE9PT1yLmluZGV4T2Yob1tuXSkmJnIucHVzaChvW25dKX1yZXR1cm4gcn0scC5nZXRTdWJwbG90SWRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9cC5zdWJwbG90c1JlZ2lzdHJ5W2VdO2lmKHZvaWQgMD09PXIpcmV0dXJuW107aWYoISgiY2FydGVzaWFuIiE9PWV8fHQuX2hhcyYmdC5faGFzKCJjYXJ0ZXNpYW4iKSkpcmV0dXJuW107aWYoISgiZ2wyZCIhPT1lfHx0Ll9oYXMmJnQuX2hhcygiZ2wyZCIpKSlyZXR1cm5bXTtpZigiY2FydGVzaWFuIj09PWV8fCJnbDJkIj09PWUpcmV0dXJuIE9iamVjdC5rZXlzKHQuX3Bsb3RzfHx7fSk7Zm9yKHZhciBuPXIuaWRSZWdleCxpPU9iamVjdC5rZXlzKHQpLG89W10sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1pW2FdO24udGVzdChzKSYmby5wdXNoKHMpfXZhciBsPXIuaWRSb290Lmxlbmd0aDtyZXR1cm4gby5zb3J0KGZ1bmN0aW9uKHQsZSl7dmFyIHI9Kyh0LnN1YnN0cihsKXx8MSksbj0rKGUuc3Vic3RyKGwpfHwxKTtyZXR1cm4gci1ufSksb30scC5nZXRTdWJwbG90RGF0YT1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09cC5zdWJwbG90c1JlZ2lzdHJ5W2VdKXJldHVybltdO2Zvcih2YXIgbixpPXAuc3VicGxvdHNSZWdpc3RyeVtlXS5hdHRyLG89W10sYT0wO2E8dC5sZW5ndGg7YSsrKWlmKG49dFthXSwiZ2wyZCI9PT1lJiZwLnRyYWNlSXMobiwiZ2wyZCIpKXt2YXIgcz1jLkF4ZXMuc3VicGxvdE1hdGNoLGw9IngiK3IubWF0Y2gocylbMV0sdT0ieSIrci5tYXRjaChzKVsyXTtuW2lbMF1dPT09bCYmbltpWzFdXT09PXUmJm8ucHVzaChuKX1lbHNlIG5baV09PT1yJiZvLnB1c2gobik7cmV0dXJuIG99LHAucmVkcmF3VGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhJiZ0LmRhdGFbMF0mJnQuZGF0YVswXS5yP3ZvaWQgMDpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5Bbm5vdGF0aW9ucy5kcmF3QWxsKHQpLGMuTGVnZW5kLmRyYXcodCksKHQuY2FsY2RhdGF8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RbMF0mJnRbMF0udCYmdFswXS50LmNiJiZ0WzBdLnQuY2IoKX0pLGUocC5wcmV2aW91c1Byb21pc2VzKHQpKX0sMzAwKX0pfSxwLnJlc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxyKXt0JiYibm9uZSIhPT1sLnNlbGVjdCh0KS5zdHlsZSgiZGlzcGxheSIpfHxyKG5ldyBFcnJvcigiUmVzaXplIG11c3QgYmUgcGFzc2VkIGEgcGxvdCBkaXYgZWxlbWVudC4iKSksdC5fcmVkcmF3VGltZXImJmNsZWFyVGltZW91dCh0Ll9yZWRyYXdUaW1lciksdC5fcmVkcmF3VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKCh0Ll9mdWxsTGF5b3V0fHx7fSkuYXV0b3NpemUpe3ZhciByPXQuY2hhbmdlZDt0LmF1dG9wbGF5PSEwLGMucmVsYXlvdXQodCx7YXV0b3NpemU6ITB9KSx0LmNoYW5nZWQ9cixlKHQpfX0sMTAwKX0pfSxwLnByZXZpb3VzUHJvbWlzZXM9ZnVuY3Rpb24odCl7cmV0dXJuKHQuX3Byb21pc2VzfHxbXSkubGVuZ3RoP1Byb21pc2UuYWxsKHQuX3Byb21pc2VzKS50aGVuKGZ1bmN0aW9uKCl7dC5fcHJvbWlzZXM9W119KTp2b2lkIDB9LHAuYWRkTGlua3M9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3BhcGVyLnNlbGVjdEFsbCgidGV4dC5qcy1wbG90LWxpbmstY29udGFpbmVyIikuZGF0YShbMF0pO3IuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKCJqcy1wbG90LWxpbmstY29udGFpbmVyIiwhMCkuc3R5bGUoeyJmb250LWZhbWlseSI6JyJPcGVuIFNhbnMiLCBBcmlhbCwgc2Fucy1zZXJpZicsImZvbnQtc2l6ZSI6IjEycHgiLGZpbGw6Zi5kZWZhdWx0TGluZSwicG9pbnRlci1ldmVudHMiOiJhbGwifSkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWwuc2VsZWN0KHRoaXMpO3QuYXBwZW5kKCJ0c3BhbiIpLmNsYXNzZWQoImpzLWxpbmstdG8tdG9vbCIsITApLHQuYXBwZW5kKCJ0c3BhbiIpLmNsYXNzZWQoImpzLWxpbmstc3BhY2VyIiwhMCksdC5hcHBlbmQoInRzcGFuIikuY2xhc3NlZCgianMtc291cmNlbGlua3MiLCEwKX0pO3ZhciBuPXIubm9kZSgpLG89e3k6ZS5fcGFwZXIuYXR0cigiaGVpZ2h0IiktOX07ZG9jdW1lbnQuYm9keS5jb250YWlucyhuKSYmbi5nZXRDb21wdXRlZFRleHRMZW5ndGgoKT49ZS53aWR0aC0yMD8ob1sidGV4dC1hbmNob3IiXT0ic3RhcnQiLG8ueD01KToob1sidGV4dC1hbmNob3IiXT0iZW5kIixvLng9ZS5fcGFwZXIuYXR0cigid2lkdGgiKS03KSxyLmF0dHIobyk7dmFyIGE9ci5zZWxlY3QoIi5qcy1saW5rLXRvLXRvb2wiKSxzPXIuc2VsZWN0KCIuanMtbGluay1zcGFjZXIiKSx1PXIuc2VsZWN0KCIuanMtc291cmNlbGlua3MiKTt0Ll9jb250ZXh0LnNob3dTb3VyY2VzJiZ0Ll9jb250ZXh0LnNob3dTb3VyY2VzKHQpLHQuX2NvbnRleHQuc2hvd0xpbmsmJmkodCxhKSxzLnRleHQoYS50ZXh0KCkmJnUudGV4dCgpPyIgLSAiOiIiKX0scC5zZW5kRGF0YVRvQ2xvdWQ9ZnVuY3Rpb24odCl7dC5lbWl0KCJwbG90bHlfYmVmb3JlZXhwb3J0Iik7dmFyIGU9d2luZG93LlBMT1RMWUVOViYmd2luZG93LlBMT1RMWUVOVi5CQVNFX1VSTHx8Imh0dHBzOi8vcGxvdC5seSIscj1sLnNlbGVjdCh0KS5hcHBlbmQoImRpdiIpLmF0dHIoImlkIiwiaGlkZGVuZm9ybSIpLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpLG49ci5hcHBlbmQoImZvcm0iKS5hdHRyKHthY3Rpb246ZSsiL2V4dGVybmFsIixtZXRob2Q6InBvc3QiLHRhcmdldDoiX2JsYW5rIn0pLGk9bi5hcHBlbmQoImlucHV0IikuYXR0cih7dHlwZToidGV4dCIsbmFtZToiZGF0YSJ9KTtyZXR1cm4gaS5ub2RlKCkudmFsdWU9cC5ncmFwaEpzb24odCwhMSwia2VlcGRhdGEiKSxuLm5vZGUoKS5zdWJtaXQoKSxyLnJlbW92ZSgpLHQuZW1pdCgicGxvdGx5X2FmdGVyZXhwb3J0IiksITF9LHAuc3VwcGx5RGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGUscj10Ll9mdWxsTGF5b3V0fHx7fSxuPXQuX2Z1bGxMYXlvdXQ9e30saT10LmxheW91dHx8e30sYT10Ll9mdWxsRGF0YXx8W10scz10Ll9mdWxsRGF0YT1bXSxsPXQuZGF0YXx8W107cC5zdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cyhpLG4pLG4uX2RhdGFMZW5ndGg9bC5sZW5ndGgscC5zdXBwbHlEYXRhRGVmYXVsdHMobCxzLG4pLG4uX2hhcz1wLl9oYXNQbG90VHlwZS5iaW5kKG4pO3ZhciB1PW4uX21vZHVsZXM7Zm9yKGU9MDtlPHUubGVuZ3RoO2UrKyl7dmFyIGg9dVtlXTtoLmNsZWFuRGF0YSYmaC5jbGVhbkRhdGEocyl9aWYoYS5sZW5ndGg9PT1sLmxlbmd0aClmb3IoZT0wO2U8cy5sZW5ndGg7ZSsrKW8oc1tlXSxhW2VdKTtwLnN1cHBseUxheW91dE1vZHVsZURlZmF1bHRzKGksbixzKSxuLl9oYXNDYXJ0ZXNpYW49bi5faGFzKCJjYXJ0ZXNpYW4iKSxuLl9oYXNHZW89bi5faGFzKCJnZW8iKSxuLl9oYXNHTDNEPW4uX2hhcygiZ2wzZCIpLG4uX2hhc0dMMkQ9bi5faGFzKCJnbDJkIiksbi5faGFzVGVybmFyeT1uLl9oYXMoInRlcm5hcnkiKSxuLl9oYXNQaWU9bi5faGFzKCJwaWUiKSxwLmNsZWFuUGxvdChzLG4sYSxyKSxvKG4scikscC5kb0F1dG9NYXJnaW4odCk7dmFyIGY9Yy5BeGVzLmxpc3QodCk7Zm9yKGU9MDtlPGYubGVuZ3RoO2UrKyl7dmFyIGQ9ZltlXTtkLl9nZD10LGQuc2V0U2NhbGUoKX1pZigodC5jYWxjZGF0YXx8W10pLmxlbmd0aD09PXMubGVuZ3RoKWZvcihlPTA7ZTxzLmxlbmd0aDtlKyspe3ZhciBtPXNbZV07KHQuY2FsY2RhdGFbZV1bMF18fHt9KS50cmFjZT1tfX0scC5faGFzUGxvdFR5cGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2Jhc2VQbG90TW9kdWxlc3x8W10scj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO2lmKG4ubmFtZT09PXQpcmV0dXJuITB9cmV0dXJuITF9LHAuY2xlYW5QbG90PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLG8sYT1uLl9iYXNlUGxvdE1vZHVsZXN8fFtdO2ZvcihpPTA7aTxhLmxlbmd0aDtpKyspe3ZhciBzPWFbaV07cy5jbGVhbiYmcy5jbGVhbih0LGUscixuKX12YXIgbD0hIW4uX3BhcGVyLHU9ISFuLl9pbmZvbGF5ZXI7dDpmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYz1yW2ldLGg9Yy51aWQ7Zm9yKG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGY9dFtvXTtpZihoPT09Zi51aWQpY29udGludWUgdH1sJiZuLl9wYXBlci5zZWxlY3RBbGwoIi5obSIraCsiLC5jb250b3VyIitoKyIsI2NsaXAiK2gpLnJlbW92ZSgpLHUmJm4uX2luZm9sYXllci5zZWxlY3RBbGwoIi5jYiIraCkucmVtb3ZlKCl9fSxwLnN1cHBseURhdGFEZWZhdWx0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0KXtlLnB1c2godCk7dmFyIHI9dC5fbW9kdWxlO3ImJihoLnB1c2hVbmlxdWUoaSxyKSxoLnB1c2hVbmlxdWUobyx0Ll9tb2R1bGUuYmFzZVBsb3RNb2R1bGUpLGErKyl9Zm9yKHZhciBpPXIuX21vZHVsZXM9W10sbz1yLl9iYXNlUGxvdE1vZHVsZXM9W10sYT0wLGw9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIHU9dFtsXSxjPXAuc3VwcGx5VHJhY2VEZWZhdWx0cyh1LGEscik7aWYoYy50cmFuc2Zvcm1zJiZjLnRyYW5zZm9ybXMubGVuZ3RoKWZvcih2YXIgZj1zKGMsZSxyKSxkPTA7ZDxmLmxlbmd0aDtkKyspe3ZhciBtPWZbZF0sZz1wLnN1cHBseVRyYWNlRGVmYXVsdHMobSxhLHIpO20udWlkPWcudWlkPWMudWlkK2QsZy5pbmRleD1sLGcuX2lucHV0PXUsZy5fZnVsbElucHV0PWMsZy5fZXhwYW5kZWRJbmRleD1hLGcuX2V4cGFuZGVkSW5wdXQ9bSxuKGcpfWVsc2UgYy5pbmRleD1sLGMuX2lucHV0PXUsYy5fZXhwYW5kZWRJbmRleD1hLG4oYyl9fSxwLnN1cHBseVRyYWNlRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4oZSxyKXtyZXR1cm4gaC5jb2VyY2UodCxvLHAuYXR0cmlidXRlcyxlLHIpfWZ1bmN0aW9uIGkoZSxyKXtyZXR1cm4gcC50cmFjZUlzKG8sZSk/aC5jb2VyY2UodCxvLHAuc3VicGxvdHNSZWdpc3RyeVtlXS5hdHRyaWJ1dGVzLHIpOnZvaWQgMH12YXIgbz17fSxzPWYuZGVmYXVsdHNbZSVmLmRlZmF1bHRzLmxlbmd0aF0sbD1uKCJ2aXNpYmxlIik7bigidHlwZSIpLG4oInVpZCIpO2Zvcih2YXIgdT1PYmplY3Qua2V5cyh2KSxjPTA7Yzx1Lmxlbmd0aDtjKyspe3ZhciBkPXVbY107aWYoLTE9PT1bImNhcnRlc2lhbiIsImdsMmQiXS5pbmRleE9mKGQpKXt2YXIgbT12W2RdLmF0dHI7bSYmaShkLG0pfX1pZihsKXt2YXIgZz1wLmdldE1vZHVsZShvKTtvLl9tb2R1bGU9ZyxuKCJob3ZlcmluZm8iLDE9PT1yLl9kYXRhTGVuZ3RoPyJ4K3kreit0ZXh0Ijp2b2lkIDApLGcmJmcuc3VwcGx5RGVmYXVsdHModCxvLHMsciksbigibmFtZSIsInRyYWNlICIrZSkscC50cmFjZUlzKG8sIm5vT3BhY2l0eSIpfHxuKCJvcGFjaXR5IiksaSgiY2FydGVzaWFuIiwieGF4aXMiKSxpKCJjYXJ0ZXNpYW4iLCJ5YXhpcyIpLGkoImdsMmQiLCJ4YXhpcyIpLGkoImdsMmQiLCJ5YXhpcyIpLHAudHJhY2VJcyhvLCJzaG93TGVnZW5kIikmJihuKCJzaG93bGVnZW5kIiksbigibGVnZW5kZ3JvdXAiKSksYSh0LG8scil9cmV0dXJuIG99LHAuc3VwcGx5TGF5b3V0R2xvYmFsRGVmYXVsdHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsbil7cmV0dXJuIGguY29lcmNlKHQsZSxwLmxheW91dEF0dHJpYnV0ZXMscixuKX12YXIgbj1oLmNvZXJjZUZvbnQociwiZm9udCIpO3IoInRpdGxlIiksaC5jb2VyY2VGb250KHIsInRpdGxlZm9udCIse2ZhbWlseTpuLmZhbWlseSxzaXplOk1hdGgucm91bmQoMS40Km4uc2l6ZSksY29sb3I6bi5jb2xvcn0pO3ZhciBpPXIoImF1dG9zaXplIix0LndpZHRoJiZ0LmhlaWdodD8hMToiaW5pdGlhbCIpO3IoIndpZHRoIikscigiaGVpZ2h0IikscigibWFyZ2luLmwiKSxyKCJtYXJnaW4uciIpLHIoIm1hcmdpbi50IikscigibWFyZ2luLmIiKSxyKCJtYXJnaW4ucGFkIikscigibWFyZ2luLmF1dG9leHBhbmQiKSwiaW5pdGlhbCIhPT1pJiZwLnNhbml0aXplTWFyZ2lucyhlKSxyKCJwYXBlcl9iZ2NvbG9yIikscigic2VwYXJhdG9ycyIpLHIoImhpZGVzb3VyY2VzIikscigic21pdGgiKX0scC5zdXBwbHlMYXlvdXRNb2R1bGVEZWZhdWx0cz1mdW5jdGlvbih0LGUscil7dmFyIG4saTtjLkF4ZXMuc3VwcGx5TGF5b3V0RGVmYXVsdHModCxlLHIpO3ZhciBvPWUuX2Jhc2VQbG90TW9kdWxlcztmb3Iobj0wO248by5sZW5ndGg7bisrKWk9b1tuXSwiY2FydGVzaWFuIiE9PWkubmFtZSYmaS5zdXBwbHlMYXlvdXREZWZhdWx0cyYmaS5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscik7dmFyIGE9ZS5fbW9kdWxlcztmb3Iobj0wO248YS5sZW5ndGg7bisrKWk9YVtuXSxpLnN1cHBseUxheW91dERlZmF1bHRzJiZpLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyKTt2YXIgcz1bIkZ4IiwiQW5ub3RhdGlvbnMiLCJTaGFwZXMiLCJMZWdlbmQiLCJJbWFnZXMiLCJVcGRhdGVNZW51cyJdO2ZvcihuPTA7bjxzLmxlbmd0aDtuKyspaT1zW25dLGNbaV0mJmNbaV0uc3VwcGx5TGF5b3V0RGVmYXVsdHModCxlLHIpfSxwLnB1cmdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXR8fHt9O3ZvaWQgMCE9PWUuX2dsY29udGFpbmVyJiZlLl9nbGNvbnRhaW5lci5yZW1vdmUoKSx2b2lkIDAhPT1lLl9nZW9jb250YWluZXImJmUuX2dlb2NvbnRhaW5lci5yZW1vdmUoKSxlLl9tb2RlQmFyJiZlLl9tb2RlQmFyLmRlc3Ryb3koKSxkZWxldGUgdC5kYXRhLGRlbGV0ZSB0LmxheW91dCxkZWxldGUgdC5fZnVsbERhdGEsZGVsZXRlIHQuX2Z1bGxMYXlvdXQsZGVsZXRlIHQuY2FsY2RhdGEsZGVsZXRlIHQuZnJhbWV3b3JrLGRlbGV0ZSB0LmVtcHR5LGRlbGV0ZSB0LmZpZCxkZWxldGUgdC51bmRvcXVldWUsZGVsZXRlIHQudW5kb251bSxkZWxldGUgdC5hdXRvcGxheSxkZWxldGUgdC5jaGFuZ2VkLGRlbGV0ZSB0Ll90ZXN0ZXIsZGVsZXRlIHQuX3Rlc3RyZWYsZGVsZXRlIHQuX3Byb21pc2VzLGRlbGV0ZSB0Ll9yZWRyYXdUaW1lcixkZWxldGUgdC5fcmVwbG90dGluZyxkZWxldGUgdC5maXJzdHNjYXR0ZXIsZGVsZXRlIHQuaG1sdW1jb3VudCxkZWxldGUgdC5obXBpeGNvdW50LGRlbGV0ZSB0Lm51bWJveGVzLGRlbGV0ZSB0Ll9ob3ZlclRpbWVyLGRlbGV0ZSB0Ll9sYXN0SG92ZXJUaW1lLHQucmVtb3ZlQWxsTGlzdGVuZXJzJiZ0LnJlbW92ZUFsbExpc3RlbmVycygpfSxwLnN0eWxlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0Ll9tb2R1bGVzLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLnN0eWxlJiZuLnN0eWxlKHQpfX0scC5zYW5pdGl6ZU1hcmdpbnM9ZnVuY3Rpb24odCl7aWYodCYmdC5tYXJnaW4pe3ZhciBlLHI9dC53aWR0aCxuPXQuaGVpZ2h0LGk9dC5tYXJnaW4sbz1yLShpLmwraS5yKSxhPW4tKGkudCtpLmIpOzA+byYmKGU9KHItMSkvKGkubCtpLnIpLGkubD1NYXRoLmZsb29yKGUqaS5sKSxpLnI9TWF0aC5mbG9vcihlKmkucikpLDA+YSYmKGU9KG4tMSkvKGkudCtpLmIpLGkudD1NYXRoLmZsb29yKGUqaS50KSxpLmI9TWF0aC5mbG9vcihlKmkuYikpfX0scC5hdXRvTWFyZ2luPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Ll9mdWxsTGF5b3V0O2lmKG4uX3B1c2htYXJnaW58fChuLl9wdXNobWFyZ2luPXt9KSxuLm1hcmdpbi5hdXRvZXhwYW5kIT09ITEpe2lmKHIpe3ZhciBpPXZvaWQgMD09PXIucGFkPzEyOnIucGFkO3IubCtyLnI+LjUqbi53aWR0aCYmKHIubD1yLnI9MCksci5iK3IudD4uNSpuLmhlaWdodCYmKHIuYj1yLnQ9MCksbi5fcHVzaG1hcmdpbltlXT17bDp7dmFsOnIueCxzaXplOnIubCtpfSxyOnt2YWw6ci54LHNpemU6ci5yK2l9LGI6e3ZhbDpyLnksc2l6ZTpyLmIraX0sdDp7dmFsOnIueSxzaXplOnIudCtpfX19ZWxzZSBkZWxldGUgbi5fcHVzaG1hcmdpbltlXTt0Ll9yZXBsb3R0aW5nfHxwLmRvQXV0b01hcmdpbih0KX19LHAuZG9BdXRvTWFyZ2luPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7ZS5fc2l6ZXx8KGUuX3NpemU9e30pLGUuX3B1c2htYXJnaW58fChlLl9wdXNobWFyZ2luPXt9KTt2YXIgcj1lLl9zaXplLG49SlNPTi5zdHJpbmdpZnkociksaT1NYXRoLm1heChlLm1hcmdpbi5sfHwwLDApLG89TWF0aC5tYXgoZS5tYXJnaW4ucnx8MCwwKSxhPU1hdGgubWF4KGUubWFyZ2luLnR8fDAsMCkscz1NYXRoLm1heChlLm1hcmdpbi5ifHwwLDApLGw9ZS5fcHVzaG1hcmdpbjtyZXR1cm4gZS5tYXJnaW4uYXV0b2V4cGFuZCE9PSExJiYobC5iYXNlPXtsOnt2YWw6MCxzaXplOml9LHI6e3ZhbDoxLHNpemU6b30sdDp7dmFsOjEsc2l6ZTphfSxiOnt2YWw6MCxzaXplOnN9fSxPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciByPWxbdF0ubHx8e30sbj1sW3RdLmJ8fHt9LGM9ci52YWwsaD1yLnNpemUsZj1uLnZhbCxwPW4uc2l6ZTtPYmplY3Qua2V5cyhsKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHUoaCkmJmxbdF0ucil7dmFyIHI9bFt0XS5yLnZhbCxuPWxbdF0uci5zaXplO2lmKHI+Yyl7dmFyIGQ9KGgqcisobi1lLndpZHRoKSpjKS8oci1jKSxtPShuKigxLWMpKyhoLWUud2lkdGgpKigxLXIpKS8oci1jKTtkPj0wJiZtPj0wJiZkK20+aStvJiYoaT1kLG89bSl9fWlmKHUocCkmJmxbdF0udCl7dmFyIGc9bFt0XS50LnZhbCx2PWxbdF0udC5zaXplO2lmKGc+Zil7dmFyIHk9KHAqZysodi1lLmhlaWdodCkqZikvKGctZiksYj0odiooMS1mKSsocC1lLmhlaWdodCkqKDEtZykpLyhnLWYpO3k+PTAmJmI+PTAmJnkrYj5zK2EmJihzPXksYT1iKX19fSl9KSksci5sPU1hdGgucm91bmQoaSksci5yPU1hdGgucm91bmQobyksci50PU1hdGgucm91bmQoYSksci5iPU1hdGgucm91bmQocyksci5wPU1hdGgucm91bmQoZS5tYXJnaW4ucGFkKSxyLnc9TWF0aC5yb3VuZChlLndpZHRoKS1yLmwtci5yLHIuaD1NYXRoLnJvdW5kKGUuaGVpZ2h0KS1yLnQtci5iLHQuX3JlcGxvdHRpbmd8fCJ7fSI9PT1ufHxuPT09SlNPTi5zdHJpbmdpZnkoZS5fc2l6ZSk/dm9pZCAwOmMucGxvdCh0KX0scC5ncmFwaEpzb249ZnVuY3Rpb24odCxlLHIsbixpKXtmdW5jdGlvbiBvKHQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiBudWxsO2lmKGguaXNQbGFpbk9iamVjdCh0KSl7dmFyIGUsbixpPXt9O2ZvcihlIGluIHQpaWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRbZV0mJi0xPT09WyJfIiwiWyJdLmluZGV4T2YoZS5jaGFyQXQoMCkpKXtpZigia2VlcGRhdGEiPT09cil7aWYoInNyYyI9PT1lLnN1YnN0cihlLmxlbmd0aC0zKSljb250aW51ZX1lbHNlIGlmKCJrZWVwc3RyZWFtIj09PXIpe2lmKG49dFtlKyJzcmMiXSwic3RyaW5nIj09dHlwZW9mIG4mJm4uaW5kZXhPZigiOiIpPjAmJiFoLmlzUGxhaW5PYmplY3QodC5zdHJlYW0pKWNvbnRpbnVlfWVsc2UgaWYoImtlZXBhbGwiIT09ciYmKG49dFtlKyJzcmMiXSwic3RyaW5nIj09dHlwZW9mIG4mJm4uaW5kZXhPZigiOiIpPjApKWNvbnRpbnVlO2lbZV09byh0W2VdKX1yZXR1cm4gaX1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lm1hcChvKTp0JiZ0LmdldFRpbWU/aC5tczJEYXRlVGltZSh0KTp0fShpJiZlJiYhdC5fZnVsbERhdGF8fGkmJiFlJiYhdC5fZnVsbExheW91dCkmJnAuc3VwcGx5RGVmYXVsdHModCk7dmFyIGE9aT90Ll9mdWxsRGF0YTp0LmRhdGEscz1pP3QuX2Z1bGxMYXlvdXQ6dC5sYXlvdXQsbD17ZGF0YTooYXx8W10pLm1hcChmdW5jdGlvbih0KXt2YXIgcj1vKHQpO3JldHVybiBlJiZkZWxldGUgci5maXQscn0pfTtyZXR1cm4gZXx8KGwubGF5b3V0PW8ocykpLHQuZnJhbWV3b3JrJiZ0LmZyYW1ld29yay5pc1BvbGFyJiYobD10LmZyYW1ld29yay5nZXRDb25maWcoKSksIm9iamVjdCI9PT1uP2w6SlNPTi5zdHJpbmdpZnkobCl9fSx7Ii4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vbGliIjo1OTEsIi4uL3Bsb3RseSI6NjEyLCIuL2F0dHJpYnV0ZXMiOjYxMywiLi9mb250X2F0dHJpYnV0ZXMiOjYzMywiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjYzLGQzOjEyNCwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDY3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIiksaT1uLm1hcmtlcjtlLmV4cG9ydHM9e3I6bi5yLHQ6bi50LG1hcmtlcjp7Y29sb3I6aS5jb2xvcixzaXplOmkuc2l6ZSxzeW1ib2w6aS5zeW1ib2wsb3BhY2l0eTppLm9wYWNpdHl9fX0seyIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIjo3NzN9XSw2NzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPXtzaG93bGluZTp7dmFsVHlwZToiYm9vbGVhbiJ9LHNob3d0aWNrbGFiZWxzOnt2YWxUeXBlOiJib29sZWFuIn0sdGlja29yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJob3Jpem9udGFsIiwidmVydGljYWwiXX0sdGlja2xlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MH0sdGlja2NvbG9yOnt2YWxUeXBlOiJjb2xvciJ9LHRpY2tzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyJ9LGVuZHBhZGRpbmc6e3ZhbFR5cGU6Im51bWJlciJ9LHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4ifX07cmV0dXJuIG8oe30sZSxyKX12YXIgaT10KCIuLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9byh7fSxpLmRvbWFpbix7fSk7ZS5leHBvcnRzPXtyYWRpYWxheGlzOm4oInJhZGlhbCIse3JhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciJ9LHt2YWxUeXBlOiJudW1iZXIifV19LGRvbWFpbjphLG9yaWVudGF0aW9uOnt2YWxUeXBlOiJudW1iZXIifX0pLGFuZ3VsYXJheGlzOm4oImFuZ3VsYXIiLHtyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0se3ZhbFR5cGU6Im51bWJlciIsZGZsdDozNjB9XX0sZG9tYWluOmF9KSxsYXlvdXQ6e2RpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdfSxvcmllbnRhdGlvbjp7dmFsVHlwZToiYW5nbGUifX19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo2MjR9XSw2NzQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi8uLi9wbG90bHkiKSxpPXQoImQzIiksbz1lLmV4cG9ydHM9e3ZlcnNpb246IjAuMi4yIixtYW5hZ2VyOnQoIi4vbWljcm9wb2xhcl9tYW5hZ2VyIil9LGE9bi5MaWIuZXh0ZW5kRGVlcEFsbDtvLkF4aXM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3I9dHx8cjt2YXIgdT1sLmRhdGEsaD1sLmxheW91dDtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiByfHxyLm5vZGVOYW1lKSYmKHI9aS5zZWxlY3QocikpLHIuZGF0dW0odSkuZWFjaChmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIGwodCxlKXtyZXR1cm4gcyh0KSUzNjAraC5vcmllbnRhdGlvbn12YXIgdT10LnNsaWNlKCk7Yz17ZGF0YTpvLnV0aWwuY2xvbmVKc29uKHUpLGxheW91dDpvLnV0aWwuY2xvbmVKc29uKGgpfTt2YXIgZj0wO3UuZm9yRWFjaChmdW5jdGlvbih0LGUpe3QuY29sb3J8fCh0LmNvbG9yPWguZGVmYXVsdENvbG9yUmFuZ2VbZl0sZj0oZisxKSVoLmRlZmF1bHRDb2xvclJhbmdlLmxlbmd0aCksdC5zdHJva2VDb2xvcnx8KHQuc3Ryb2tlQ29sb3I9IkxpbmVQbG90Ij09PXQuZ2VvbWV0cnk/dC5jb2xvcjppLnJnYih0LmNvbG9yKS5kYXJrZXIoKS50b1N0cmluZygpKSxjLmRhdGFbZV0uY29sb3I9dC5jb2xvcixjLmRhdGFbZV0uc3Ryb2tlQ29sb3I9dC5zdHJva2VDb2xvcixjLmRhdGFbZV0uc3Ryb2tlRGFzaD10LnN0cm9rZURhc2gsYy5kYXRhW2VdLnN0cm9rZVNpemU9dC5zdHJva2VTaXplfSk7dmFyIHA9dS5maWx0ZXIoZnVuY3Rpb24odCxlKXt2YXIgcj10LnZpc2libGU7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiByfHxyPT09ITB9KSxkPSExLG09cC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gZD1kfHwidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ3JvdXBJZCx0fSk7aWYoZCl7dmFyIGc9aS5uZXN0KCkua2V5KGZ1bmN0aW9uKHQsZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB0Lmdyb3VwSWQ/dC5ncm91cElkOiJ1bnN0YWNrZWQifSkuZW50cmllcyhtKSx2PVtdLHk9Zy5tYXAoZnVuY3Rpb24odCxlKXtpZigidW5zdGFja2VkIj09PXQua2V5KXJldHVybiB0LnZhbHVlczt2YXIgcj10LnZhbHVlc1swXS5yLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiAwfSk7cmV0dXJuIHQudmFsdWVzLmZvckVhY2goZnVuY3Rpb24odCxlLG4pe3QueVN0YWNrPVtyXSx2LnB1c2gocikscj1vLnV0aWwuc3VtQXJyYXlzKHQucixyKX0pLHQudmFsdWVzfSk7cD1pLm1lcmdlKHkpfXAuZm9yRWFjaChmdW5jdGlvbih0LGUpe3QudD1BcnJheS5pc0FycmF5KHQudFswXSk/dC50Olt0LnRdLHQucj1BcnJheS5pc0FycmF5KHQuclswXSk/dC5yOlt0LnJdfSk7dmFyIGI9TWF0aC5taW4oaC53aWR0aC1oLm1hcmdpbi5sZWZ0LWgubWFyZ2luLnJpZ2h0LGguaGVpZ2h0LWgubWFyZ2luLnRvcC1oLm1hcmdpbi5ib3R0b20pLzI7Yj1NYXRoLm1heCgxMCxiKTt2YXIgeCxfPVtoLm1hcmdpbi5sZWZ0K2IsaC5tYXJnaW4udG9wK2JdO2lmKGQpe3ZhciB3PWkubWF4KG8udXRpbC5zdW1BcnJheXMoby51dGlsLmFycmF5TGFzdChwKS5yWzBdLG8udXRpbC5hcnJheUxhc3QodikpKTt4PVswLHddfWVsc2UgeD1pLmV4dGVudChvLnV0aWwuZmxhdHRlbkFycmF5KHAubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucn0pKSk7aC5yYWRpYWxBeGlzLmRvbWFpbiE9by5EQVRBRVhURU5UJiYoeFswXT0wKSxuPWkuc2NhbGUubGluZWFyKCkuZG9tYWluKGgucmFkaWFsQXhpcy5kb21haW4hPW8uREFUQUVYVEVOVCYmaC5yYWRpYWxBeGlzLmRvbWFpbj9oLnJhZGlhbEF4aXMuZG9tYWluOngpLnJhbmdlKFswLGJdKSxjLmxheW91dC5yYWRpYWxBeGlzLmRvbWFpbj1uLmRvbWFpbigpO3ZhciBNLGs9by51dGlsLmZsYXR0ZW5BcnJheShwLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0LnR9KSksQT0ic3RyaW5nIj09dHlwZW9mIGtbMF07QSYmKGs9by51dGlsLmRlZHVwbGljYXRlKGspLE09ay5zbGljZSgpLGs9aS5yYW5nZShrLmxlbmd0aCkscD1wLm1hcChmdW5jdGlvbih0LGUpe3ZhciByPXQ7cmV0dXJuIHQudD1ba10sZCYmKHIueVN0YWNrPXQueVN0YWNrKSxyfSkpO3ZhciBUPXAuZmlsdGVyKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIkxpbmVQbG90Ij09PXQuZ2VvbWV0cnl8fCJEb3RQbG90Ij09PXQuZ2VvbWV0cnl9KS5sZW5ndGg9PT1wLmxlbmd0aCxFPW51bGw9PT1oLm5lZWRzRW5kU3BhY2luZz9BfHwhVDpoLm5lZWRzRW5kU3BhY2luZyxTPWguYW5ndWxhckF4aXMuZG9tYWluJiZoLmFuZ3VsYXJBeGlzLmRvbWFpbiE9by5EQVRBRVhURU5UJiYhQSYmaC5hbmd1bGFyQXhpcy5kb21haW5bMF0+PTAsTD1TP2guYW5ndWxhckF4aXMuZG9tYWluOmkuZXh0ZW50KGspLHo9TWF0aC5hYnMoa1sxXS1rWzBdKTtUJiYhQSYmKHo9MCk7dmFyIEk9TC5zbGljZSgpO0UmJkEmJihJWzFdKz16KTt2YXIgUD1oLmFuZ3VsYXJBeGlzLnRpY2tzQ291bnR8fDQ7UD44JiYoUD1QLyhQLzgpK1AlOCksaC5hbmd1bGFyQXhpcy50aWNrc1N0ZXAmJihQPShJWzFdLUlbMF0pL1ApO3ZhciBDPWguYW5ndWxhckF4aXMudGlja3NTdGVwfHwoSVsxXS1JWzBdKS8oUCooaC5taW5vclRpY2tzKzEpKTtNJiYoQz1NYXRoLm1heChNYXRoLnJvdW5kKEMpLDEpKSxJWzJdfHwoSVsyXT1DKTt2YXIgUj1pLnJhbmdlLmFwcGx5KHRoaXMsSSk7aWYoUj1SLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBwYXJzZUZsb2F0KHQudG9QcmVjaXNpb24oMTIpKX0pLHM9aS5zY2FsZS5saW5lYXIoKS5kb21haW4oSS5zbGljZSgwLDIpKS5yYW5nZSgiY2xvY2t3aXNlIj09PWguZGlyZWN0aW9uP1swLDM2MF06WzM2MCwwXSksYy5sYXlvdXQuYW5ndWxhckF4aXMuZG9tYWluPXMuZG9tYWluKCksYy5sYXlvdXQuYW5ndWxhckF4aXMuZW5kUGFkZGluZz1FP3o6MCxlPWkuc2VsZWN0KHRoaXMpLnNlbGVjdCgic3ZnLmNoYXJ0LXJvb3QiKSwidW5kZWZpbmVkIj09dHlwZW9mIGV8fGUuZW1wdHkoKSl7dmFyIGo9IjxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBjbGFzcz0nY2hhcnQtcm9vdCc+JyArICc8ZyBjbGFzcz0nb3V0ZXItZ3JvdXAnPicgKyAnPGcgY2xhc3M9J2NoYXJ0LWdyb3VwJz4nICsgJzxjaXJjbGUgY2xhc3M9J2JhY2tncm91bmQtY2lyY2xlJz48L2NpcmNsZT4nICsgJzxnIGNsYXNzPSdnZW9tZXRyeS1ncm91cCc+PC9nPicgKyAnPGcgY2xhc3M9J3JhZGlhbCBheGlzLWdyb3VwJz4nICsgJzxjaXJjbGUgY2xhc3M9J291dHNpZGUtY2lyY2xlJz48L2NpcmNsZT4nICsgJzwvZz4nICsgJzxnIGNsYXNzPSdhbmd1bGFyIGF4aXMtZ3JvdXAnPjwvZz4nICsgJzxnIGNsYXNzPSdndWlkZXMtZ3JvdXAnPjxsaW5lPjwvbGluZT48Y2lyY2xlIHI9JzAnPjwvY2lyY2xlPjwvZz4nICsgJzwvZz4nICsgJzxnIGNsYXNzPSdsZWdlbmQtZ3JvdXAnPjwvZz4nICsgJzxnIGNsYXNzPSd0b29sdGlwcy1ncm91cCc+PC9nPicgKyAnPGcgY2xhc3M9J3RpdGxlLWdyb3VwJz48dGV4dD48L3RleHQ+PC9nPicgKyAnPC9nPicgKyAnPC9zdmc+IixEPShuZXcgRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoaiwiYXBwbGljYXRpb24veG1sIiksTz10aGlzLmFwcGVuZENoaWxkKHRoaXMub3duZXJEb2N1bWVudC5pbXBvcnROb2RlKEQuZG9jdW1lbnRFbGVtZW50LCEwKSk7ZT1pLnNlbGVjdChPKX1lLnNlbGVjdCgiLmd1aWRlcy1ncm91cCIpLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJub25lIn0pLGUuc2VsZWN0KCIuYW5ndWxhci5heGlzLWdyb3VwIikuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSksZS5zZWxlY3QoIi5yYWRpYWwuYXhpcy1ncm91cCIpLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJub25lIn0pO3ZhciBGLE49ZS5zZWxlY3QoIi5jaGFydC1ncm91cCIpLEI9e2ZpbGw6Im5vbmUiLHN0cm9rZTpoLnRpY2tDb2xvcn0sVT17ImZvbnQtc2l6ZSI6aC5mb250LnNpemUsImZvbnQtZmFtaWx5IjpoLmZvbnQuZmFtaWx5LGZpbGw6aC5mb250LmNvbG9yLCJ0ZXh0LXNoYWRvdyI6WyItMXB4IDBweCIsIjFweCAtMXB4IiwiLTFweCAxcHgiLCIxcHggMXB4Il0ubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIiAiK3QrIiAwICIraC5mb250Lm91dGxpbmVDb2xvcn0pLmpvaW4oIiwiKX07aWYoaC5zaG93TGVnZW5kKXtGPWUuc2VsZWN0KCIubGVnZW5kLWdyb3VwIikuYXR0cih7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitbYixoLm1hcmdpbi50b3BdKyIpIn0pLnN0eWxlKHtkaXNwbGF5OiJibG9jayJ9KTt2YXIgVj1wLm1hcChmdW5jdGlvbih0LGUpe3ZhciByPW8udXRpbC5jbG9uZUpzb24odCk7cmV0dXJuIHIuc3ltYm9sPSJEb3RQbG90Ij09PXQuZ2VvbWV0cnk/dC5kb3RUeXBlfHwiY2lyY2xlIjoiTGluZVBsb3QiIT10Lmdlb21ldHJ5PyJzcXVhcmUiOiJsaW5lIixyLnZpc2libGVJbkxlZ2VuZD0idW5kZWZpbmVkIj09dHlwZW9mIHQudmlzaWJsZUluTGVnZW5kfHx0LnZpc2libGVJbkxlZ2VuZCxyLmNvbG9yPSJMaW5lUGxvdCI9PT10Lmdlb21ldHJ5P3Quc3Ryb2tlQ29sb3I6dC5jb2xvcixyfSk7by5MZWdlbmQoKS5jb25maWcoe2RhdGE6cC5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5uYW1lfHwiRWxlbWVudCIrZX0pLGxlZ2VuZENvbmZpZzphKHt9LG8uTGVnZW5kLmRlZmF1bHRDb25maWcoKS5sZWdlbmRDb25maWcse2NvbnRhaW5lcjpGLGVsZW1lbnRzOlYscmV2ZXJzZU9yZGVyOmgubGVnZW5kLnJldmVyc2VPcmRlcn0pfSkoKTt2YXIgcT1GLm5vZGUoKS5nZXRCQm94KCk7Yj1NYXRoLm1pbihoLndpZHRoLXEud2lkdGgtaC5tYXJnaW4ubGVmdC1oLm1hcmdpbi5yaWdodCxoLmhlaWdodC1oLm1hcmdpbi50b3AtaC5tYXJnaW4uYm90dG9tKS8yLGI9TWF0aC5tYXgoMTAsYiksXz1baC5tYXJnaW4ubGVmdCtiLGgubWFyZ2luLnRvcCtiXSxuLnJhbmdlKFswLGJdKSxjLmxheW91dC5yYWRpYWxBeGlzLmRvbWFpbj1uLmRvbWFpbigpLEYuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrW19bMF0rYixfWzFdLWJdKyIpIil9ZWxzZSBGPWUuc2VsZWN0KCIubGVnZW5kLWdyb3VwIikuc3R5bGUoe2Rpc3BsYXk6Im5vbmUifSk7ZS5hdHRyKHt3aWR0aDpoLndpZHRoLGhlaWdodDpoLmhlaWdodH0pLnN0eWxlKHtvcGFjaXR5Omgub3BhY2l0eX0pLE4uYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrXysiKSIpLnN0eWxlKHtjdXJzb3I6ImNyb3NzaGFpciJ9KTt2YXIgRz1bKGgud2lkdGgtKGgubWFyZ2luLmxlZnQraC5tYXJnaW4ucmlnaHQrMipiKyhxP3Eud2lkdGg6MCkpKS8yLChoLmhlaWdodC0oaC5tYXJnaW4udG9wK2gubWFyZ2luLmJvdHRvbSsyKmIpKS8yXTtpZihHWzBdPU1hdGgubWF4KDAsR1swXSksR1sxXT1NYXRoLm1heCgwLEdbMV0pLGUuc2VsZWN0KCIub3V0ZXItZ3JvdXAiKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitHKyIpIiksaC50aXRsZSl7dmFyIEg9ZS5zZWxlY3QoImcudGl0bGUtZ3JvdXAgdGV4dCIpLnN0eWxlKFUpLnRleHQoaC50aXRsZSksWD1ILm5vZGUoKS5nZXRCQm94KCk7SC5hdHRyKHt4Ol9bMF0tWC53aWR0aC8yLHk6X1sxXS1iLTIwfSl9dmFyIFk9ZS5zZWxlY3QoIi5yYWRpYWwuYXhpcy1ncm91cCIpO2lmKGgucmFkaWFsQXhpcy5ncmlkTGluZXNWaXNpYmxlKXt2YXIgVz1ZLnNlbGVjdEFsbCgiY2lyY2xlLmdyaWQtY2lyY2xlIikuZGF0YShuLnRpY2tzKDUpKTtXLmVudGVyKCkuYXBwZW5kKCJjaXJjbGUiKS5hdHRyKHsiY2xhc3MiOiJncmlkLWNpcmNsZSJ9KS5zdHlsZShCKSxXLmF0dHIoInIiLG4pLFcuZXhpdCgpLnJlbW92ZSgpfVkuc2VsZWN0KCJjaXJjbGUub3V0c2lkZS1jaXJjbGUiKS5hdHRyKHtyOmJ9KS5zdHlsZShCKTt2YXIgWj1lLnNlbGVjdCgiY2lyY2xlLmJhY2tncm91bmQtY2lyY2xlIikuYXR0cih7cjpifSkuc3R5bGUoe2ZpbGw6aC5iYWNrZ3JvdW5kQ29sb3Isc3Ryb2tlOmguc3Ryb2tlfSk7aWYoaC5yYWRpYWxBeGlzLnZpc2libGUpe3ZhciBRPWkuc3ZnLmF4aXMoKS5zY2FsZShuKS50aWNrcyg1KS50aWNrU2l6ZSg1KTtZLmNhbGwoUSkuYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitoLnJhZGlhbEF4aXMub3JpZW50YXRpb24rIikifSksWS5zZWxlY3RBbGwoIi5kb21haW4iKS5zdHlsZShCKSxZLnNlbGVjdEFsbCgiZz50ZXh0IikudGV4dChmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnRleHRDb250ZW50K2gucmFkaWFsQXhpcy50aWNrc1N1ZmZpeH0pLnN0eWxlKFUpLnN0eWxlKHsidGV4dC1hbmNob3IiOiJzdGFydCJ9KS5hdHRyKHt4OjAseTowLGR4OjAsZHk6MCx0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXtyZXR1cm4iaG9yaXpvbnRhbCI9PT1oLnJhZGlhbEF4aXMudGlja09yaWVudGF0aW9uPyJyb3RhdGUoIistaC5yYWRpYWxBeGlzLm9yaWVudGF0aW9uKyIpIHRyYW5zbGF0ZSgiK1swLFVbImZvbnQtc2l6ZSJdXSsiKSI6InRyYW5zbGF0ZSgiK1swLFVbImZvbnQtc2l6ZSJdXSsiKSJ9fSksWS5zZWxlY3RBbGwoImc+bGluZSIpLnN0eWxlKHtzdHJva2U6ImJsYWNrIn0pfXZhciBLPWUuc2VsZWN0KCIuYW5ndWxhci5heGlzLWdyb3VwIikuc2VsZWN0QWxsKCJnLmFuZ3VsYXItdGljayIpLmRhdGEoUiksSj1LLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYW5ndWxhci10aWNrIiwhMCk7Sy5hdHRyKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXtyZXR1cm4icm90YXRlKCIrbCh0LGUpKyIpIn19KS5zdHlsZSh7ZGlzcGxheTpoLmFuZ3VsYXJBeGlzLnZpc2libGU/ImJsb2NrIjoibm9uZSJ9KSxLLmV4aXQoKS5yZW1vdmUoKSxKLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImdyaWQtbGluZSIsITApLmNsYXNzZWQoIm1ham9yIixmdW5jdGlvbih0LGUpe3JldHVybiBlJShoLm1pbm9yVGlja3MrMSk9PTB9KS5jbGFzc2VkKCJtaW5vciIsZnVuY3Rpb24odCxlKXtyZXR1cm4hKGUlKGgubWlub3JUaWNrcysxKT09MCl9KS5zdHlsZShCKSxKLnNlbGVjdEFsbCgiLm1pbm9yIikuc3R5bGUoe3N0cm9rZTpoLm1pbm9yVGlja0NvbG9yfSksSy5zZWxlY3QoImxpbmUuZ3JpZC1saW5lIikuYXR0cih7eDE6aC50aWNrTGVuZ3RoP2ItaC50aWNrTGVuZ3RoOjAseDI6Yn0pLnN0eWxlKHtkaXNwbGF5OmguYW5ndWxhckF4aXMuZ3JpZExpbmVzVmlzaWJsZT8iYmxvY2siOiJub25lIn0pLEouYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCgiYXhpcy10ZXh0IiwhMCkuc3R5bGUoVSk7dmFyICQ9Sy5zZWxlY3QoInRleHQuYXhpcy10ZXh0IikuYXR0cih7eDpiK2gubGFiZWxPZmZzZXQsZHk6Ii4zNWVtIix0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXt2YXIgcj1sKHQsZSksbj1iK2gubGFiZWxPZmZzZXQsaT1oLmFuZ3VsYXJBeGlzLnRpY2tPcmllbnRhdGlvbjtyZXR1cm4iaG9yaXpvbnRhbCI9PWk/InJvdGF0ZSgiKy1yKyIgIituKyIgMCkiOiJyYWRpYWwiPT1pPzI3MD5yJiZyPjkwPyJyb3RhdGUoMTgwICIrbisiIDApIjpudWxsOiJyb3RhdGUoIisoMTgwPj1yJiZyPjA/LTkwOjkwKSsiICIrbisiIDApIn19KS5zdHlsZSh7InRleHQtYW5jaG9yIjoibWlkZGxlIixkaXNwbGF5OmguYW5ndWxhckF4aXMubGFiZWxzVmlzaWJsZT8iYmxvY2siOiJub25lIn0pLnRleHQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZSUoaC5taW5vclRpY2tzKzEpIT0wPyIiOk0/TVt0XStoLmFuZ3VsYXJBeGlzLnRpY2tzU3VmZml4OnQraC5hbmd1bGFyQXhpcy50aWNrc1N1ZmZpeH0pLnN0eWxlKFUpO2guYW5ndWxhckF4aXMucmV3cml0ZVRpY2tzJiYkLnRleHQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZSUoaC5taW5vclRpY2tzKzEpIT0wPyIiOmguYW5ndWxhckF4aXMucmV3cml0ZVRpY2tzKHRoaXMudGV4dENvbnRlbnQsZSl9KTt2YXIgdHQ9aS5tYXgoTi5zZWxlY3RBbGwoIi5hbmd1bGFyLXRpY2sgdGV4dCIpWzBdLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0LmdldENUTSgpLmUrdC5nZXRCQm94KCkud2lkdGh9KSk7Ri5hdHRyKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK1tiK3R0LGgubWFyZ2luLnRvcF0rIikifSk7dmFyIGV0PWUuc2VsZWN0KCJnLmdlb21ldHJ5LWdyb3VwIikuc2VsZWN0QWxsKCJnIikuc2l6ZSgpPjAscnQ9ZS5zZWxlY3QoImcuZ2VvbWV0cnktZ3JvdXAiKS5zZWxlY3RBbGwoImcuZ2VvbWV0cnkiKS5kYXRhKHApO2lmKHJ0LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cih7ImNsYXNzIjpmdW5jdGlvbih0LGUpe3JldHVybiJnZW9tZXRyeSBnZW9tZXRyeSIrZX19KSxydC5leGl0KCkucmVtb3ZlKCkscFswXXx8ZXQpe3ZhciBudD1bXTtwLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgcj17fTtyLnJhZGlhbFNjYWxlPW4sci5hbmd1bGFyU2NhbGU9cyxyLmNvbnRhaW5lcj1ydC5maWx0ZXIoZnVuY3Rpb24odCxyKXtyZXR1cm4gcj09ZX0pLHIuZ2VvbWV0cnk9dC5nZW9tZXRyeSxyLm9yaWVudGF0aW9uPWgub3JpZW50YXRpb24sci5kaXJlY3Rpb249aC5kaXJlY3Rpb24sci5pbmRleD1lLG50LnB1c2goe2RhdGE6dCxnZW9tZXRyeUNvbmZpZzpyfSl9KTt2YXIgaXQ9aS5uZXN0KCkua2V5KGZ1bmN0aW9uKHQsZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB0LmRhdGEuZ3JvdXBJZHx8InVuc3RhY2tlZCJ9KS5lbnRyaWVzKG50KSxvdD1bXTtpdC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7CiJ1bnN0YWNrZWQiPT09dC5rZXk/b3Q9b3QuY29uY2F0KHQudmFsdWVzLm1hcChmdW5jdGlvbih0LGUpe3JldHVyblt0XX0pKTpvdC5wdXNoKHQudmFsdWVzKX0pLG90LmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgcjtyPUFycmF5LmlzQXJyYXkodCk/dFswXS5nZW9tZXRyeUNvbmZpZy5nZW9tZXRyeTp0Lmdlb21ldHJ5Q29uZmlnLmdlb21ldHJ5O3ZhciBuPXQubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEob1tyXS5kZWZhdWx0Q29uZmlnKCksdCl9KTtvW3JdKCkuY29uZmlnKG4pKCl9KX12YXIgYXQsc3QsbHQ9ZS5zZWxlY3QoIi5ndWlkZXMtZ3JvdXAiKSx1dD1lLnNlbGVjdCgiLnRvb2x0aXBzLWdyb3VwIiksY3Q9by50b29sdGlwUGFuZWwoKS5jb25maWcoe2NvbnRhaW5lcjp1dCxmb250U2l6ZTo4fSkoKSxodD1vLnRvb2x0aXBQYW5lbCgpLmNvbmZpZyh7Y29udGFpbmVyOnV0LGZvbnRTaXplOjh9KSgpLGZ0PW8udG9vbHRpcFBhbmVsKCkuY29uZmlnKHtjb250YWluZXI6dXQsaGFzVGljazohMH0pKCk7aWYoIUEpe3ZhciBwdD1sdC5zZWxlY3QoImxpbmUiKS5hdHRyKHt4MTowLHkxOjAseTI6MH0pLnN0eWxlKHtzdHJva2U6ImdyZXkiLCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSk7Ti5vbigibW91c2Vtb3ZlLmFuZ3VsYXItZ3VpZGUiLGZ1bmN0aW9uKHQsZSl7dmFyIHI9by51dGlsLmdldE1vdXNlUG9zKFopLmFuZ2xlO3B0LmF0dHIoe3gyOi1iLHRyYW5zZm9ybToicm90YXRlKCIrcisiKSJ9KS5zdHlsZSh7b3BhY2l0eTouNX0pO3ZhciBuPShyKzE4MCszNjAtaC5vcmllbnRhdGlvbiklMzYwO2F0PXMuaW52ZXJ0KG4pO3ZhciBpPW8udXRpbC5jb252ZXJ0VG9DYXJ0ZXNpYW4oYisxMixyKzE4MCk7Y3QudGV4dChvLnV0aWwucm91bmQoYXQpKS5tb3ZlKFtpWzBdK19bMF0saVsxXStfWzFdXSl9KS5vbigibW91c2VvdXQuYW5ndWxhci1ndWlkZSIsZnVuY3Rpb24odCxlKXtsdC5zZWxlY3QoImxpbmUiKS5zdHlsZSh7b3BhY2l0eTowfSl9KX12YXIgZHQ9bHQuc2VsZWN0KCJjaXJjbGUiKS5zdHlsZSh7c3Ryb2tlOiJncmV5IixmaWxsOiJub25lIn0pO04ub24oIm1vdXNlbW92ZS5yYWRpYWwtZ3VpZGUiLGZ1bmN0aW9uKHQsZSl7dmFyIHI9by51dGlsLmdldE1vdXNlUG9zKFopLnJhZGl1cztkdC5hdHRyKHtyOnJ9KS5zdHlsZSh7b3BhY2l0eTouNX0pLHN0PW4uaW52ZXJ0KG8udXRpbC5nZXRNb3VzZVBvcyhaKS5yYWRpdXMpO3ZhciBpPW8udXRpbC5jb252ZXJ0VG9DYXJ0ZXNpYW4ocixoLnJhZGlhbEF4aXMub3JpZW50YXRpb24pO2h0LnRleHQoby51dGlsLnJvdW5kKHN0KSkubW92ZShbaVswXStfWzBdLGlbMV0rX1sxXV0pfSkub24oIm1vdXNlb3V0LnJhZGlhbC1ndWlkZSIsZnVuY3Rpb24odCxlKXtkdC5zdHlsZSh7b3BhY2l0eTowfSksZnQuaGlkZSgpLGN0LmhpZGUoKSxodC5oaWRlKCl9KSxlLnNlbGVjdEFsbCgiLmdlb21ldHJ5LWdyb3VwIC5tYXJrIikub24oIm1vdXNlb3Zlci50b29sdGlwIixmdW5jdGlvbih0LHIpe3ZhciBuPWkuc2VsZWN0KHRoaXMpLGE9bi5zdHlsZSgiZmlsbCIpLHM9ImJsYWNrIixsPW4uc3R5bGUoIm9wYWNpdHkiKXx8MTtpZihuLmF0dHIoeyJkYXRhLW9wYWNpdHkiOmx9KSwibm9uZSIhPWEpe24uYXR0cih7ImRhdGEtZmlsbCI6YX0pLHM9aS5oc2woYSkuZGFya2VyKCkudG9TdHJpbmcoKSxuLnN0eWxlKHtmaWxsOnMsb3BhY2l0eToxfSk7dmFyIHU9e3Q6by51dGlsLnJvdW5kKHRbMF0pLHI6by51dGlsLnJvdW5kKHRbMV0pfTtBJiYodS50PU1bdFswXV0pO3ZhciBjPSJ0OiAiK3UudCsiLCByOiAiK3UucixoPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZj1lLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwPVtoLmxlZnQraC53aWR0aC8yLUdbMF0tZi5sZWZ0LGgudG9wK2guaGVpZ2h0LzItR1sxXS1mLnRvcF07ZnQuY29uZmlnKHtjb2xvcjpzfSkudGV4dChjKSxmdC5tb3ZlKHApfWVsc2UgYT1uLnN0eWxlKCJzdHJva2UiKSxuLmF0dHIoeyJkYXRhLXN0cm9rZSI6YX0pLHM9aS5oc2woYSkuZGFya2VyKCkudG9TdHJpbmcoKSxuLnN0eWxlKHtzdHJva2U6cyxvcGFjaXR5OjF9KX0pLm9uKCJtb3VzZW1vdmUudG9vbHRpcCIsZnVuY3Rpb24odCxlKXtyZXR1cm4gMCE9aS5ldmVudC53aGljaD8hMTp2b2lkKGkuc2VsZWN0KHRoaXMpLmF0dHIoImRhdGEtZmlsbCIpJiZmdC5zaG93KCkpfSkub24oIm1vdXNlb3V0LnRvb2x0aXAiLGZ1bmN0aW9uKHQsZSl7ZnQuaGlkZSgpO3ZhciByPWkuc2VsZWN0KHRoaXMpLG49ci5hdHRyKCJkYXRhLWZpbGwiKTtuP3Iuc3R5bGUoe2ZpbGw6bixvcGFjaXR5OnIuYXR0cigiZGF0YS1vcGFjaXR5Iil9KTpyLnN0eWxlKHtzdHJva2U6ci5hdHRyKCJkYXRhLXN0cm9rZSIpLG9wYWNpdHk6ci5hdHRyKCJkYXRhLW9wYWNpdHkiKX0pfSl9KSxmfXZhciBlLHIsbixzLGw9e2RhdGE6W10sbGF5b3V0Ont9fSx1PXt9LGM9e30saD1pLmRpc3BhdGNoKCJob3ZlciIpLGY9e307cmV0dXJuIGYucmVuZGVyPWZ1bmN0aW9uKGUpe3JldHVybiB0KGUpLHRoaXN9LGYuY29uZmlnPWZ1bmN0aW9uKHQpe2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBsO3ZhciBlPW8udXRpbC5jbG9uZUpzb24odCk7cmV0dXJuIGUuZGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7bC5kYXRhW2VdfHwobC5kYXRhW2VdPXt9KSxhKGwuZGF0YVtlXSxvLkF4aXMuZGVmYXVsdENvbmZpZygpLmRhdGFbMF0pLGEobC5kYXRhW2VdLHQpfSksYShsLmxheW91dCxvLkF4aXMuZGVmYXVsdENvbmZpZygpLmxheW91dCksYShsLmxheW91dCxlLmxheW91dCksdGhpc30sZi5nZXRMaXZlQ29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJuIGN9LGYuZ2V0aW5wdXRDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gdX0sZi5yYWRpYWxTY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gbn0sZi5hbmd1bGFyU2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHN9LGYuc3ZnPWZ1bmN0aW9uKCl7cmV0dXJuIGV9LGkucmViaW5kKGYsaCwib24iKSxmfSxvLkF4aXMuZGVmYXVsdENvbmZpZz1mdW5jdGlvbih0LGUpe3ZhciByPXtkYXRhOlt7dDpbMSwyLDMsNF0scjpbMTAsMTEsMTIsMTNdLG5hbWU6IkxpbmUxIixnZW9tZXRyeToiTGluZVBsb3QiLGNvbG9yOm51bGwsc3Ryb2tlRGFzaDoic29saWQiLHN0cm9rZUNvbG9yOm51bGwsc3Ryb2tlU2l6ZToiMSIsdmlzaWJsZUluTGVnZW5kOiEwLG9wYWNpdHk6MX1dLGxheW91dDp7ZGVmYXVsdENvbG9yUmFuZ2U6aS5zY2FsZS5jYXRlZ29yeTEwKCkucmFuZ2UoKSx0aXRsZTpudWxsLGhlaWdodDo0NTAsd2lkdGg6NTAwLG1hcmdpbjp7dG9wOjQwLHJpZ2h0OjQwLGJvdHRvbTo0MCxsZWZ0OjQwfSxmb250OntzaXplOjEyLGNvbG9yOiJncmF5IixvdXRsaW5lQ29sb3I6IndoaXRlIixmYW1pbHk6IlRhaG9tYSwgc2Fucy1zZXJpZiJ9LGRpcmVjdGlvbjoiY2xvY2t3aXNlIixvcmllbnRhdGlvbjowLGxhYmVsT2Zmc2V0OjEwLHJhZGlhbEF4aXM6e2RvbWFpbjpudWxsLG9yaWVudGF0aW9uOi00NSx0aWNrc1N1ZmZpeDoiIix2aXNpYmxlOiEwLGdyaWRMaW5lc1Zpc2libGU6ITAsdGlja09yaWVudGF0aW9uOiJob3Jpem9udGFsIixyZXdyaXRlVGlja3M6bnVsbH0sYW5ndWxhckF4aXM6e2RvbWFpbjpbMCwzNjBdLHRpY2tzU3VmZml4OiIiLHZpc2libGU6ITAsZ3JpZExpbmVzVmlzaWJsZTohMCxsYWJlbHNWaXNpYmxlOiEwLHRpY2tPcmllbnRhdGlvbjoiaG9yaXpvbnRhbCIscmV3cml0ZVRpY2tzOm51bGwsdGlja3NDb3VudDpudWxsLHRpY2tzU3RlcDpudWxsfSxtaW5vclRpY2tzOjAsdGlja0xlbmd0aDpudWxsLHRpY2tDb2xvcjoic2lsdmVyIixtaW5vclRpY2tDb2xvcjoiI2VlZSIsYmFja2dyb3VuZENvbG9yOiJub25lIixuZWVkc0VuZFNwYWNpbmc6bnVsbCxzaG93TGVnZW5kOiEwLGxlZ2VuZDp7cmV2ZXJzZU9yZGVyOiExfSxvcGFjaXR5OjF9fTtyZXR1cm4gcn0sby51dGlsPXt9LG8uREFUQUVYVEVOVD0iZGF0YUV4dGVudCIsby5BUkVBPSJBcmVhQ2hhcnQiLG8uTElORT0iTGluZVBsb3QiLG8uRE9UPSJEb3RQbG90IixvLkJBUj0iQmFyQ2hhcnQiLG8udXRpbC5fb3ZlcnJpZGU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdClyIGluIGUmJihlW3JdPXRbcl0pfSxvLnV0aWwuX2V4dGVuZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXX0sby51dGlsLl9ybmRTbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gMipNYXRoLnJhbmRvbSgpLTErKDIqTWF0aC5yYW5kb20oKS0xKSsoMipNYXRoLnJhbmRvbSgpLTEpfSxvLnV0aWwuZGF0YUZyb21FcXVhdGlvbjI9ZnVuY3Rpb24odCxlKXt2YXIgcj1lfHw2LG49aS5yYW5nZSgwLDM2MCtyLHIpLm1hcChmdW5jdGlvbihlLHIpe3ZhciBuPWUqTWF0aC5QSS8xODAsaT10KG4pO3JldHVybltlLGldfSk7cmV0dXJuIG59LG8udXRpbC5kYXRhRnJvbUVxdWF0aW9uPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lfHw2LG89W10sYT1bXTtpLnJhbmdlKDAsMzYwK24sbikuZm9yRWFjaChmdW5jdGlvbihlLHIpe3ZhciBuPWUqTWF0aC5QSS8xODAsaT10KG4pO28ucHVzaChlKSxhLnB1c2goaSl9KTt2YXIgcz17dDpvLHI6YX07cmV0dXJuIHImJihzLm5hbWU9ciksc30sby51dGlsLmVuc3VyZUFycmF5PWZ1bmN0aW9uKHQsZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB0KXJldHVybiBudWxsO3ZhciByPVtdLmNvbmNhdCh0KTtyZXR1cm4gaS5yYW5nZShlKS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gcltlXXx8clswXX0pfSxvLnV0aWwuZmlsbEFycmF5cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbihlLG4pe3RbZV09by51dGlsLmVuc3VyZUFycmF5KHRbZV0scil9KSx0fSxvLnV0aWwuY2xvbmVKc29uPWZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKX0sby51dGlsLnZhbGlkYXRlS2V5cz1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgZSYmKGU9ZS5zcGxpdCgiLiIpKTt2YXIgcj1lLnNoaWZ0KCk7cmV0dXJuIHRbcl0mJighZS5sZW5ndGh8fG9iakhhc0tleXModFtyXSxlKSl9LG8udXRpbC5zdW1BcnJheXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaS56aXAodCxlKS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm4gaS5zdW0odCl9KX0sby51dGlsLmFycmF5TGFzdD1mdW5jdGlvbih0KXtyZXR1cm4gdFt0Lmxlbmd0aC0xXX0sby51dGlsLmFycmF5RXF1YWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9TWF0aC5tYXgodC5sZW5ndGgsZS5sZW5ndGgsMSk7ci0tID49MCYmdFtyXT09PWVbcl07KTtyZXR1cm4tMj09PXJ9LG8udXRpbC5mbGF0dGVuQXJyYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdOyFvLnV0aWwuYXJyYXlFcXVhbChlLHQpOyllPXQsdD1bXS5jb25jYXQuYXBwbHkoW10sdCk7cmV0dXJuIHR9LG8udXRpbC5kZWR1cGxpY2F0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCxlLHIpe3JldHVybiByLmluZGV4T2YodCk9PWV9KX0sby51dGlsLmNvbnZlcnRUb0NhcnRlc2lhbj1mdW5jdGlvbih0LGUpe3ZhciByPWUqTWF0aC5QSS8xODAsbj10Kk1hdGguY29zKHIpLGk9dCpNYXRoLnNpbihyKTtyZXR1cm5bbixpXX0sby51dGlsLnJvdW5kPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZXx8MixuPU1hdGgucG93KDEwLHIpO3JldHVybiBNYXRoLnJvdW5kKHQqbikvbn0sby51dGlsLmdldE1vdXNlUG9zPWZ1bmN0aW9uKHQpe3ZhciBlPWkubW91c2UodC5ub2RlKCkpLHI9ZVswXSxuPWVbMV0sbz17fTtyZXR1cm4gby54PXIsby55PW4sby5wb3M9ZSxvLmFuZ2xlPTE4MCooTWF0aC5hdGFuMihuLHIpK01hdGguUEkpL01hdGguUEksby5yYWRpdXM9TWF0aC5zcXJ0KHIqcituKm4pLG99LG8udXRpbC5kdXBsaWNhdGVzQ291bnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9e30sbj17fSxpPTAsbz10Lmxlbmd0aDtvPmk7aSsrKWU9dFtpXSxlIGluIHI/KHJbZV0rKyxuW2VdPXJbZV0pOnJbZV09MTtyZXR1cm4gbn0sby51dGlsLmR1cGxpY2F0ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKG8udXRpbC5kdXBsaWNhdGVzQ291bnQodCkpfSxvLnV0aWwudHJhbnNsYXRvcj1mdW5jdGlvbih0LGUscixuKXtpZihuKXt2YXIgaT1yLnNsaWNlKCk7cj1lLGU9aX12YXIgbz1lLnJlZHVjZShmdW5jdGlvbih0LGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdD90W2VdOnZvaWQgMH0sdCk7InVuZGVmaW5lZCIhPXR5cGVvZiBvJiYoZS5yZWR1Y2UoZnVuY3Rpb24odCxyLG4pe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdD8obj09PWUubGVuZ3RoLTEmJmRlbGV0ZSB0W3JdLHRbcl0pOnZvaWQgMH0sdCksci5yZWR1Y2UoZnVuY3Rpb24odCxlLG4pe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgdFtlXSYmKHRbZV09e30pLG49PT1yLmxlbmd0aC0xJiYodFtlXT1vKSx0W2VdfSx0KSl9LG8uUG9seUNoYXJ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciB0PXJbMF0uZ2VvbWV0cnlDb25maWcsZT10LmNvbnRhaW5lcjsic3RyaW5nIj09dHlwZW9mIGUmJihlPWkuc2VsZWN0KGUpKSxlLmRhdHVtKHIpLmVhY2goZnVuY3Rpb24oZSxyKXtmdW5jdGlvbiBuKGUscil7dmFyIG49dC5yYWRpYWxTY2FsZShlWzFdKSxpPSh0LmFuZ3VsYXJTY2FsZShlWzBdKSt0Lm9yaWVudGF0aW9uKSpNYXRoLlBJLzE4MDtyZXR1cm57cjpuLHQ6aX19ZnVuY3Rpb24gbyh0KXt2YXIgZT10LnIqTWF0aC5jb3ModC50KSxyPXQucipNYXRoLnNpbih0LnQpO3JldHVybnt4OmUseTpyfX12YXIgYT0hIWVbMF0uZGF0YS55U3RhY2ssbD1lLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBhP2kuemlwKHQuZGF0YS50WzBdLHQuZGF0YS5yWzBdLHQuZGF0YS55U3RhY2tbMF0pOmkuemlwKHQuZGF0YS50WzBdLHQuZGF0YS5yWzBdKX0pLHU9dC5hbmd1bGFyU2NhbGUsYz10LnJhZGlhbFNjYWxlLmRvbWFpbigpWzBdLGg9e307aC5iYXI9ZnVuY3Rpb24ocixuLG8pe3ZhciBhPWVbb10uZGF0YSxzPXQucmFkaWFsU2NhbGUoclsxXSktdC5yYWRpYWxTY2FsZSgwKSxsPXQucmFkaWFsU2NhbGUoclsyXXx8MCksYz1hLmJhcldpZHRoO2kuc2VsZWN0KHRoaXMpLmF0dHIoeyJjbGFzcyI6Im1hcmsgYmFyIixkOiJNIitbW3MrbCwtYy8yXSxbcytsLGMvMl0sW2wsYy8yXSxbbCwtYy8yXV0uam9pbigiTCIpKyJaIix0cmFuc2Zvcm06ZnVuY3Rpb24oZSxyKXtyZXR1cm4icm90YXRlKCIrKHQub3JpZW50YXRpb24rdShlWzBdKSkrIikifX0pfSxoLmRvdD1mdW5jdGlvbih0LHIsYSl7dmFyIHM9dFsyXT9bdFswXSx0WzFdK3RbMl1dOnQsbD1pLnN2Zy5zeW1ib2woKS5zaXplKGVbYV0uZGF0YS5kb3RTaXplKS50eXBlKGVbYV0uZGF0YS5kb3RUeXBlKSh0LHIpO2kuc2VsZWN0KHRoaXMpLmF0dHIoeyJjbGFzcyI6Im1hcmsgZG90IixkOmwsdHJhbnNmb3JtOmZ1bmN0aW9uKHQsZSl7dmFyIHI9byhuKHMpKTtyZXR1cm4idHJhbnNsYXRlKCIrW3IueCxyLnldKyIpIn19KX07dmFyIGY9aS5zdmcubGluZS5yYWRpYWwoKS5pbnRlcnBvbGF0ZShlWzBdLmRhdGEubGluZUludGVycG9sYXRpb24pLnJhZGl1cyhmdW5jdGlvbihlKXtyZXR1cm4gdC5yYWRpYWxTY2FsZShlWzFdKX0pLmFuZ2xlKGZ1bmN0aW9uKGUpe3JldHVybiB0LmFuZ3VsYXJTY2FsZShlWzBdKSpNYXRoLlBJLzE4MH0pO2gubGluZT1mdW5jdGlvbihyLG4sbyl7dmFyIGE9clsyXT9sW29dLm1hcChmdW5jdGlvbih0LGUpe3JldHVyblt0WzBdLHRbMV0rdFsyXV19KTpsW29dO2lmKGkuc2VsZWN0KHRoaXMpLmVhY2goaC5kb3QpLnN0eWxlKHtvcGFjaXR5OmZ1bmN0aW9uKHQscil7cmV0dXJuK2Vbb10uZGF0YS5kb3RWaXNpYmxlfSxmaWxsOmcuc3Ryb2tlKHIsbixvKX0pLmF0dHIoeyJjbGFzcyI6Im1hcmsgZG90In0pLCEobj4wKSl7dmFyIHM9aS5zZWxlY3QodGhpcy5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInBhdGgubGluZSIpLmRhdGEoWzBdKTtzLmVudGVyKCkuaW5zZXJ0KCJwYXRoIikscy5hdHRyKHsiY2xhc3MiOiJsaW5lIixkOmYoYSksdHJhbnNmb3JtOmZ1bmN0aW9uKGUscil7cmV0dXJuInJvdGF0ZSgiKyh0Lm9yaWVudGF0aW9uKzkwKSsiKSJ9LCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSkuc3R5bGUoe2ZpbGw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZy5maWxsKHIsbixvKX0sImZpbGwtb3BhY2l0eSI6MCxzdHJva2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZy5zdHJva2UocixuLG8pfSwic3Ryb2tlLXdpZHRoIjpmdW5jdGlvbih0LGUpe3JldHVybiBnWyJzdHJva2Utd2lkdGgiXShyLG4sbyl9LCJzdHJva2UtZGFzaGFycmF5IjpmdW5jdGlvbih0LGUpe3JldHVybiBnWyJzdHJva2UtZGFzaGFycmF5Il0ocixuLG8pfSxvcGFjaXR5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGcub3BhY2l0eShyLG4sbyl9LGRpc3BsYXk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZy5kaXNwbGF5KHIsbixvKX19KX19O3ZhciBwPXQuYW5ndWxhclNjYWxlLnJhbmdlKCksZD1NYXRoLmFicyhwWzFdLXBbMF0pL2xbMF0ubGVuZ3RoKk1hdGguUEkvMTgwLG09aS5zdmcuYXJjKCkuc3RhcnRBbmdsZShmdW5jdGlvbih0KXtyZXR1cm4tZC8yfSkuZW5kQW5nbGUoZnVuY3Rpb24odCl7cmV0dXJuIGQvMn0pLmlubmVyUmFkaXVzKGZ1bmN0aW9uKGUpe3JldHVybiB0LnJhZGlhbFNjYWxlKGMrKGVbMl18fDApKX0pLm91dGVyUmFkaXVzKGZ1bmN0aW9uKGUpe3JldHVybiB0LnJhZGlhbFNjYWxlKGMrKGVbMl18fDApKSt0LnJhZGlhbFNjYWxlKGVbMV0pfSk7aC5hcmM9ZnVuY3Rpb24oZSxyLG4pe2kuc2VsZWN0KHRoaXMpLmF0dHIoeyJjbGFzcyI6Im1hcmsgYXJjIixkOm0sdHJhbnNmb3JtOmZ1bmN0aW9uKGUscil7cmV0dXJuInJvdGF0ZSgiKyh0Lm9yaWVudGF0aW9uK3UoZVswXSkrOTApKyIpIn19KX07dmFyIGc9e2ZpbGw6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlW25dLmRhdGEuY29sb3J9LHN0cm9rZTpmdW5jdGlvbih0LHIsbil7cmV0dXJuIGVbbl0uZGF0YS5zdHJva2VDb2xvcn0sInN0cm9rZS13aWR0aCI6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlW25dLmRhdGEuc3Ryb2tlU2l6ZSsicHgifSwic3Ryb2tlLWRhc2hhcnJheSI6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBzW2Vbbl0uZGF0YS5zdHJva2VEYXNoXX0sb3BhY2l0eTpmdW5jdGlvbih0LHIsbil7cmV0dXJuIGVbbl0uZGF0YS5vcGFjaXR5fSxkaXNwbGF5OmZ1bmN0aW9uKHQscixuKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGVbbl0uZGF0YS52aXNpYmxlfHxlW25dLmRhdGEudmlzaWJsZT8iYmxvY2siOiJub25lIn19LHY9aS5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLmxheWVyIikuZGF0YShsKTt2LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cih7ImNsYXNzIjoibGF5ZXIifSk7dmFyIHk9di5zZWxlY3RBbGwoInBhdGgubWFyayIpLmRhdGEoZnVuY3Rpb24odCxlKXtyZXR1cm4gdH0pO3kuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKHsiY2xhc3MiOiJtYXJrIn0pLHkuc3R5bGUoZykuZWFjaChoW3QuZ2VvbWV0cnlUeXBlXSkseS5leGl0KCkucmVtb3ZlKCksdi5leGl0KCkucmVtb3ZlKCl9KX12YXIgZSxyPVtvLlBvbHlDaGFydC5kZWZhdWx0Q29uZmlnKCldLG49aS5kaXNwYXRjaCgiaG92ZXIiKSxzPXtzb2xpZDoibm9uZSIsZGFzaDpbNSwyXSxkb3Q6WzIsNV19O3JldHVybiB0LmNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odC5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7cltlXXx8KHJbZV09e30pLGEocltlXSxvLlBvbHlDaGFydC5kZWZhdWx0Q29uZmlnKCkpLGEocltlXSx0KX0pLHRoaXMpOnJ9LHQuZ2V0Q29sb3JTY2FsZT1mdW5jdGlvbigpe3JldHVybiBlfSxpLnJlYmluZCh0LG4sIm9uIiksdH0sby5Qb2x5Q2hhcnQuZGVmYXVsdENvbmZpZz1mdW5jdGlvbigpe3ZhciB0PXtkYXRhOntuYW1lOiJnZW9tMSIsdDpbWzEsMiwzLDRdXSxyOltbMSwyLDMsNF1dLGRvdFR5cGU6ImNpcmNsZSIsZG90U2l6ZTo2NCxkb3RWaXNpYmxlOiExLGJhcldpZHRoOjIwLGNvbG9yOiIjZmZhNTAwIixzdHJva2VTaXplOjEsc3Ryb2tlQ29sb3I6InNpbHZlciIsc3Ryb2tlRGFzaDoic29saWQiLG9wYWNpdHk6MSxpbmRleDowLHZpc2libGU6ITAsdmlzaWJsZUluTGVnZW5kOiEwfSxnZW9tZXRyeUNvbmZpZzp7Z2VvbWV0cnk6IkxpbmVQbG90IixnZW9tZXRyeVR5cGU6ImFyYyIsZGlyZWN0aW9uOiJjbG9ja3dpc2UiLG9yaWVudGF0aW9uOjAsY29udGFpbmVyOiJib2R5IixyYWRpYWxTY2FsZTpudWxsLGFuZ3VsYXJTY2FsZTpudWxsLGNvbG9yU2NhbGU6aS5zY2FsZS5jYXRlZ29yeTIwKCl9fTtyZXR1cm4gdH0sby5CYXJDaGFydD1mdW5jdGlvbigpe3JldHVybiBvLlBvbHlDaGFydCgpfSxvLkJhckNoYXJ0LmRlZmF1bHRDb25maWc9ZnVuY3Rpb24oKXt2YXIgdD17Z2VvbWV0cnlDb25maWc6e2dlb21ldHJ5VHlwZToiYmFyIn19O3JldHVybiB0fSxvLkFyZWFDaGFydD1mdW5jdGlvbigpe3JldHVybiBvLlBvbHlDaGFydCgpfSxvLkFyZWFDaGFydC5kZWZhdWx0Q29uZmlnPWZ1bmN0aW9uKCl7dmFyIHQ9e2dlb21ldHJ5Q29uZmlnOntnZW9tZXRyeVR5cGU6ImFyYyJ9fTtyZXR1cm4gdH0sby5Eb3RQbG90PWZ1bmN0aW9uKCl7cmV0dXJuIG8uUG9seUNoYXJ0KCl9LG8uRG90UGxvdC5kZWZhdWx0Q29uZmlnPWZ1bmN0aW9uKCl7dmFyIHQ9e2dlb21ldHJ5Q29uZmlnOntnZW9tZXRyeVR5cGU6ImRvdCIsZG90VHlwZToiY2lyY2xlIn19O3JldHVybiB0fSxvLkxpbmVQbG90PWZ1bmN0aW9uKCl7cmV0dXJuIG8uUG9seUNoYXJ0KCl9LG8uTGluZVBsb3QuZGVmYXVsdENvbmZpZz1mdW5jdGlvbigpe3ZhciB0PXtnZW9tZXRyeUNvbmZpZzp7Z2VvbWV0cnlUeXBlOiJsaW5lIn19O3JldHVybiB0fSxvLkxlZ2VuZD1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgcj1lLmxlZ2VuZENvbmZpZyxuPWUuZGF0YS5tYXAoZnVuY3Rpb24odCxlKXtyZXR1cm5bXS5jb25jYXQodCkubWFwKGZ1bmN0aW9uKHQsbil7dmFyIGk9YSh7fSxyLmVsZW1lbnRzW2VdKTtyZXR1cm4gaS5uYW1lPXQsaS5jb2xvcj1bXS5jb25jYXQoci5lbGVtZW50c1tlXS5jb2xvcilbbl0saX0pfSksbz1pLm1lcmdlKG4pO289by5maWx0ZXIoZnVuY3Rpb24odCxlKXtyZXR1cm4gci5lbGVtZW50c1tlXSYmKHIuZWxlbWVudHNbZV0udmlzaWJsZUluTGVnZW5kfHwidW5kZWZpbmVkIj09dHlwZW9mIHIuZWxlbWVudHNbZV0udmlzaWJsZUluTGVnZW5kKX0pLHIucmV2ZXJzZU9yZGVyJiYobz1vLnJldmVyc2UoKSk7dmFyIHM9ci5jb250YWluZXI7KCJzdHJpbmciPT10eXBlb2Ygc3x8cy5ub2RlTmFtZSkmJihzPWkuc2VsZWN0KHMpKTt2YXIgbD1vLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0LmNvbG9yfSksdT1yLmZvbnRTaXplLGM9bnVsbD09ci5pc0NvbnRpbnVvdXM/Im51bWJlciI9PXR5cGVvZiBvWzBdOnIuaXNDb250aW51b3VzLGg9Yz9yLmhlaWdodDp1Km8ubGVuZ3RoLGY9cy5jbGFzc2VkKCJsZWdlbmQtZ3JvdXAiLCEwKSxwPWYuc2VsZWN0QWxsKCJzdmciKS5kYXRhKFswXSksZD1wLmVudGVyKCkuYXBwZW5kKCJzdmciKS5hdHRyKHt3aWR0aDozMDAsaGVpZ2h0OmgrdSx4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJ4bWxuczp4bGluayI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHZlcnNpb246IjEuMSJ9KTtkLmFwcGVuZCgiZyIpLmNsYXNzZWQoImxlZ2VuZC1heGlzIiwhMCksZC5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmQtbWFya3MiLCEwKTt2YXIgbT1pLnJhbmdlKG8ubGVuZ3RoKSxnPWkuc2NhbGVbYz8ibGluZWFyIjoib3JkaW5hbCJdKCkuZG9tYWluKG0pLnJhbmdlKGwpLHY9aS5zY2FsZVtjPyJsaW5lYXIiOiJvcmRpbmFsIl0oKS5kb21haW4obSlbYz8icmFuZ2UiOiJyYW5nZVBvaW50cyJdKFswLGhdKSx5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9MyplO3JldHVybiJsaW5lIj09PXQ/Ik0iK1tbLWUvMiwtZS8xMl0sW2UvMiwtZS8xMl0sW2UvMixlLzEyXSxbLWUvMixlLzEyXV0rIloiOi0xIT1pLnN2Zy5zeW1ib2xUeXBlcy5pbmRleE9mKHQpP2kuc3ZnLnN5bWJvbCgpLnR5cGUodCkuc2l6ZShyKSgpOmkuc3ZnLnN5bWJvbCgpLnR5cGUoInNxdWFyZSIpLnNpemUocikoKX07aWYoYyl7dmFyIGI9cC5zZWxlY3QoIi5sZWdlbmQtbWFya3MiKS5hcHBlbmQoImRlZnMiKS5hcHBlbmQoImxpbmVhckdyYWRpZW50IikuYXR0cih7aWQ6ImdyYWQxIix4MToiMCUiLHkxOiIwJSIseDI6IjAlIix5MjoiMTAwJSJ9KS5zZWxlY3RBbGwoInN0b3AiKS5kYXRhKGwpO2IuZW50ZXIoKS5hcHBlbmQoInN0b3AiKSxiLmF0dHIoe29mZnNldDpmdW5jdGlvbih0LGUpe3JldHVybiBlLyhsLmxlbmd0aC0xKSoxMDArIiUifX0pLnN0eWxlKHsic3RvcC1jb2xvciI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH19KSxwLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoImxlZ2VuZC1tYXJrIiwhMCkuYXR0cih7aGVpZ2h0OnIuaGVpZ2h0LHdpZHRoOnIuY29sb3JCYW5kV2lkdGgsZmlsbDoidXJsKCNncmFkMSkifSl9ZWxzZXt2YXIgeD1wLnNlbGVjdCgiLmxlZ2VuZC1tYXJrcyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmQtbWFyayIpLmRhdGEobyk7eC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZC1tYXJrIiwhMCkseC5hdHRyKHt0cmFuc2Zvcm06ZnVuY3Rpb24odCxlKXtyZXR1cm4idHJhbnNsYXRlKCIrW3UvMix2KGUpK3UvMl0rIikifSxkOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zeW1ib2w7cmV0dXJuIHkocix1KX0sZmlsbDpmdW5jdGlvbih0LGUpe3JldHVybiBnKGUpfX0pLHguZXhpdCgpLnJlbW92ZSgpfXZhciBfPWkuc3ZnLmF4aXMoKS5zY2FsZSh2KS5vcmllbnQoInJpZ2h0Iiksdz1wLnNlbGVjdCgiZy5sZWdlbmQtYXhpcyIpLmF0dHIoe3RyYW5zZm9ybToidHJhbnNsYXRlKCIrW2M/ci5jb2xvckJhbmRXaWR0aDp1LHUvMl0rIikifSkuY2FsbChfKTtyZXR1cm4gdy5zZWxlY3RBbGwoIi5kb21haW4iKS5zdHlsZSh7ZmlsbDoibm9uZSIsc3Ryb2tlOiJub25lIn0pLHcuc2VsZWN0QWxsKCJsaW5lIikuc3R5bGUoe2ZpbGw6Im5vbmUiLHN0cm9rZTpjP3IudGV4dENvbG9yOiJub25lIn0pLHcuc2VsZWN0QWxsKCJ0ZXh0Iikuc3R5bGUoe2ZpbGw6ci50ZXh0Q29sb3IsImZvbnQtc2l6ZSI6ci5mb250U2l6ZX0pLnRleHQoZnVuY3Rpb24odCxlKXtyZXR1cm4gb1tlXS5uYW1lfSksdH12YXIgZT1vLkxlZ2VuZC5kZWZhdWx0Q29uZmlnKCkscj1pLmRpc3BhdGNoKCJob3ZlciIpO3JldHVybiB0LmNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYShlLHQpLHRoaXMpOmV9LGkucmViaW5kKHQsciwib24iKSx0fSxvLkxlZ2VuZC5kZWZhdWx0Q29uZmlnPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e2RhdGE6WyJhIiwiYiIsImMiXSxsZWdlbmRDb25maWc6e2VsZW1lbnRzOlt7c3ltYm9sOiJsaW5lIixjb2xvcjoicmVkIn0se3N5bWJvbDoic3F1YXJlIixjb2xvcjoieWVsbG93In0se3N5bWJvbDoiZGlhbW9uZCIsY29sb3I6ImxpbWVncmVlbiJ9XSxoZWlnaHQ6MTUwLGNvbG9yQmFuZFdpZHRoOjMwLGZvbnRTaXplOjEyLGNvbnRhaW5lcjoiYm9keSIsaXNDb250aW51b3VzOm51bGwsdGV4dENvbG9yOiJncmV5IixyZXZlcnNlT3JkZXI6ITF9fTtyZXR1cm4gcn0sby50b29sdGlwUGFuZWw9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbj17Y29udGFpbmVyOm51bGwsaGFzVGljazohMSxmb250U2l6ZToxMixjb2xvcjoid2hpdGUiLHBhZGRpbmc6NX0scz0idG9vbHRpcC0iK28udG9vbHRpcFBhbmVsLnVpZCsrLGw9MTAsdT1mdW5jdGlvbigpe3Q9bi5jb250YWluZXIuc2VsZWN0QWxsKCJnLiIrcykuZGF0YShbMF0pO3ZhciBpPXQuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHMsITApLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJub25lIixkaXNwbGF5OiJub25lIn0pO3JldHVybiByPWkuYXBwZW5kKCJwYXRoIikuc3R5bGUoe2ZpbGw6IndoaXRlIiwiZmlsbC1vcGFjaXR5IjouOX0pLmF0dHIoe2Q6Ik0wIDAifSksZT1pLmFwcGVuZCgidGV4dCIpLmF0dHIoe2R4Om4ucGFkZGluZytsLGR5Oi4zKituLmZvbnRTaXplfSksdX07cmV0dXJuIHUudGV4dD1mdW5jdGlvbihvKXt2YXIgYT1pLmhzbChuLmNvbG9yKS5sLHM9YT49LjU/IiNhYWEiOiJ3aGl0ZSIsYz1hPj0uNT8iYmxhY2siOiJ3aGl0ZSIsaD1vfHwiIjtlLnN0eWxlKHtmaWxsOmMsImZvbnQtc2l6ZSI6bi5mb250U2l6ZSsicHgifSkudGV4dChoKTt2YXIgZj1uLnBhZGRpbmcscD1lLm5vZGUoKS5nZXRCQm94KCksZD17ZmlsbDpuLmNvbG9yLHN0cm9rZTpzLCJzdHJva2Utd2lkdGgiOiIycHgifSxtPXAud2lkdGgrMipmK2wsZz1wLmhlaWdodCsyKmY7cmV0dXJuIHIuYXR0cih7ZDoiTSIrW1tsLC1nLzJdLFtsLC1nLzRdLFtuLmhhc1RpY2s/MDpsLDBdLFtsLGcvNF0sW2wsZy8yXSxbbSxnLzJdLFttLC1nLzJdXS5qb2luKCJMIikrIloifSkuc3R5bGUoZCksdC5hdHRyKHt0cmFuc2Zvcm06InRyYW5zbGF0ZSgiK1tsLC1nLzIrMipmXSsiKSJ9KSx0LnN0eWxlKHtkaXNwbGF5OiJibG9jayJ9KSx1fSx1Lm1vdmU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQ/KHQuYXR0cih7dHJhbnNmb3JtOiJ0cmFuc2xhdGUoIitbZVswXSxlWzFdXSsiKSJ9KS5zdHlsZSh7ZGlzcGxheToiYmxvY2sifSksdSk6dm9pZCAwfSx1LmhpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdD8odC5zdHlsZSh7ZGlzcGxheToibm9uZSJ9KSx1KTp2b2lkIDB9LHUuc2hvdz1mdW5jdGlvbigpe3JldHVybiB0Pyh0LnN0eWxlKHtkaXNwbGF5OiJibG9jayJ9KSx1KTp2b2lkIDB9LHUuY29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBhKG4sdCksdX0sdX0sby50b29sdGlwUGFuZWwudWlkPTEsby5hZGFwdGVyPXt9LG8uYWRhcHRlci5wbG90bHk9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdC5jb252ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9e307aWYodC5kYXRhJiYoci5kYXRhPXQuZGF0YS5tYXAoZnVuY3Rpb24odCxyKXt2YXIgbj1hKHt9LHQpLGk9W1tuLFsibWFya2VyIiwiY29sb3IiXSxbImNvbG9yIl1dLFtuLFsibWFya2VyIiwib3BhY2l0eSJdLFsib3BhY2l0eSJdXSxbbixbIm1hcmtlciIsImxpbmUiLCJjb2xvciJdLFsic3Ryb2tlQ29sb3IiXV0sW24sWyJtYXJrZXIiLCJsaW5lIiwiZGFzaCJdLFsic3Ryb2tlRGFzaCJdXSxbbixbIm1hcmtlciIsImxpbmUiLCJ3aWR0aCJdLFsic3Ryb2tlU2l6ZSJdXSxbbixbIm1hcmtlciIsInN5bWJvbCJdLFsiZG90VHlwZSJdXSxbbixbIm1hcmtlciIsInNpemUiXSxbImRvdFNpemUiXV0sW24sWyJtYXJrZXIiLCJiYXJXaWR0aCJdLFsiYmFyV2lkdGgiXV0sW24sWyJsaW5lIiwiaW50ZXJwb2xhdGlvbiJdLFsibGluZUludGVycG9sYXRpb24iXV0sW24sWyJzaG93bGVnZW5kIl0sWyJ2aXNpYmxlSW5MZWdlbmQiXV1dO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCxyKXtvLnV0aWwudHJhbnNsYXRvci5hcHBseShudWxsLHQuY29uY2F0KGUpKX0pLGV8fGRlbGV0ZSBuLm1hcmtlcixlJiZkZWxldGUgbi5ncm91cElkLGU/KCJMaW5lUGxvdCI9PT1uLmdlb21ldHJ5PyhuLnR5cGU9InNjYXR0ZXIiLG4uZG90VmlzaWJsZT09PSEwPyhkZWxldGUgbi5kb3RWaXNpYmxlLG4ubW9kZT0ibGluZXMrbWFya2VycyIpOm4ubW9kZT0ibGluZXMiKToiRG90UGxvdCI9PT1uLmdlb21ldHJ5PyhuLnR5cGU9InNjYXR0ZXIiLG4ubW9kZT0ibWFya2VycyIpOiJBcmVhQ2hhcnQiPT09bi5nZW9tZXRyeT9uLnR5cGU9ImFyZWEiOiJCYXJDaGFydCI9PT1uLmdlb21ldHJ5JiYobi50eXBlPSJiYXIiKSxkZWxldGUgbi5nZW9tZXRyeSk6KCJzY2F0dGVyIj09PW4udHlwZT8ibGluZXMiPT09bi5tb2RlP24uZ2VvbWV0cnk9IkxpbmVQbG90IjoibWFya2VycyI9PT1uLm1vZGU/bi5nZW9tZXRyeT0iRG90UGxvdCI6ImxpbmVzK21hcmtlcnMiPT09bi5tb2RlJiYobi5nZW9tZXRyeT0iTGluZVBsb3QiLG4uZG90VmlzaWJsZT0hMCk6ImFyZWEiPT09bi50eXBlP24uZ2VvbWV0cnk9IkFyZWFDaGFydCI6ImJhciI9PT1uLnR5cGUmJihuLmdlb21ldHJ5PSJCYXJDaGFydCIpLGRlbGV0ZSBuLm1vZGUsZGVsZXRlIG4udHlwZSksbn0pLCFlJiZ0LmxheW91dCYmInN0YWNrIj09PXQubGF5b3V0LmJhcm1vZGUpKXt2YXIgbj1vLnV0aWwuZHVwbGljYXRlcyhyLmRhdGEubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZ2VvbWV0cnl9KSk7ci5kYXRhLmZvckVhY2goZnVuY3Rpb24odCxlKXt2YXIgaT1uLmluZGV4T2YodC5nZW9tZXRyeSk7LTEhPWkmJihyLmRhdGFbZV0uZ3JvdXBJZD1pKX0pfWlmKHQubGF5b3V0KXt2YXIgcz1hKHt9LHQubGF5b3V0KSxsPVtbcyxbInBsb3RfYmdjb2xvciJdLFsiYmFja2dyb3VuZENvbG9yIl1dLFtzLFsic2hvd2xlZ2VuZCJdLFsic2hvd0xlZ2VuZCJdXSxbcyxbInJhZGlhbGF4aXMiXSxbInJhZGlhbEF4aXMiXV0sW3MsWyJhbmd1bGFyYXhpcyJdLFsiYW5ndWxhckF4aXMiXV0sW3MuYW5ndWxhcmF4aXMsWyJzaG93bGluZSJdLFsiZ3JpZExpbmVzVmlzaWJsZSJdXSxbcy5hbmd1bGFyYXhpcyxbInNob3d0aWNrbGFiZWxzIl0sWyJsYWJlbHNWaXNpYmxlIl1dLFtzLmFuZ3VsYXJheGlzLFsibnRpY2tzIl0sWyJ0aWNrc0NvdW50Il1dLFtzLmFuZ3VsYXJheGlzLFsidGlja29yaWVudGF0aW9uIl0sWyJ0aWNrT3JpZW50YXRpb24iXV0sW3MuYW5ndWxhcmF4aXMsWyJ0aWNrc3VmZml4Il0sWyJ0aWNrc1N1ZmZpeCJdXSxbcy5hbmd1bGFyYXhpcyxbInJhbmdlIl0sWyJkb21haW4iXV0sW3MuYW5ndWxhcmF4aXMsWyJlbmRwYWRkaW5nIl0sWyJlbmRQYWRkaW5nIl1dLFtzLnJhZGlhbGF4aXMsWyJzaG93bGluZSJdLFsiZ3JpZExpbmVzVmlzaWJsZSJdXSxbcy5yYWRpYWxheGlzLFsidGlja29yaWVudGF0aW9uIl0sWyJ0aWNrT3JpZW50YXRpb24iXV0sW3MucmFkaWFsYXhpcyxbInRpY2tzdWZmaXgiXSxbInRpY2tzU3VmZml4Il1dLFtzLnJhZGlhbGF4aXMsWyJyYW5nZSJdLFsiZG9tYWluIl1dLFtzLmFuZ3VsYXJBeGlzLFsic2hvd2xpbmUiXSxbImdyaWRMaW5lc1Zpc2libGUiXV0sW3MuYW5ndWxhckF4aXMsWyJzaG93dGlja2xhYmVscyJdLFsibGFiZWxzVmlzaWJsZSJdXSxbcy5hbmd1bGFyQXhpcyxbIm50aWNrcyJdLFsidGlja3NDb3VudCJdXSxbcy5hbmd1bGFyQXhpcyxbInRpY2tvcmllbnRhdGlvbiJdLFsidGlja09yaWVudGF0aW9uIl1dLFtzLmFuZ3VsYXJBeGlzLFsidGlja3N1ZmZpeCJdLFsidGlja3NTdWZmaXgiXV0sW3MuYW5ndWxhckF4aXMsWyJyYW5nZSJdLFsiZG9tYWluIl1dLFtzLmFuZ3VsYXJBeGlzLFsiZW5kcGFkZGluZyJdLFsiZW5kUGFkZGluZyJdXSxbcy5yYWRpYWxBeGlzLFsic2hvd2xpbmUiXSxbImdyaWRMaW5lc1Zpc2libGUiXV0sW3MucmFkaWFsQXhpcyxbInRpY2tvcmllbnRhdGlvbiJdLFsidGlja09yaWVudGF0aW9uIl1dLFtzLnJhZGlhbEF4aXMsWyJ0aWNrc3VmZml4Il0sWyJ0aWNrc1N1ZmZpeCJdXSxbcy5yYWRpYWxBeGlzLFsicmFuZ2UiXSxbImRvbWFpbiJdXSxbcy5mb250LFsib3V0bGluZWNvbG9yIl0sWyJvdXRsaW5lQ29sb3IiXV0sW3MubGVnZW5kLFsidHJhY2VvcmRlciJdLFsicmV2ZXJzZU9yZGVyIl1dLFtzLFsibGFiZWxvZmZzZXQiXSxbImxhYmVsT2Zmc2V0Il1dLFtzLFsiZGVmYXVsdGNvbG9ycmFuZ2UiXSxbImRlZmF1bHRDb2xvclJhbmdlIl1dXTtpZihsLmZvckVhY2goZnVuY3Rpb24odCxyKXtvLnV0aWwudHJhbnNsYXRvci5hcHBseShudWxsLHQuY29uY2F0KGUpKX0pLGU/KCJ1bmRlZmluZWQiIT10eXBlb2Ygcy50aWNrTGVuZ3RoJiYocy5hbmd1bGFyYXhpcy50aWNrbGVuPXMudGlja0xlbmd0aCxkZWxldGUgcy50aWNrTGVuZ3RoKSxzLnRpY2tDb2xvciYmKHMuYW5ndWxhcmF4aXMudGlja2NvbG9yPXMudGlja0NvbG9yLGRlbGV0ZSBzLnRpY2tDb2xvcikpOihzLmFuZ3VsYXJBeGlzJiYidW5kZWZpbmVkIiE9dHlwZW9mIHMuYW5ndWxhckF4aXMudGlja2xlbiYmKHMudGlja0xlbmd0aD1zLmFuZ3VsYXJBeGlzLnRpY2tsZW4pLHMuYW5ndWxhckF4aXMmJiJ1bmRlZmluZWQiIT10eXBlb2Ygcy5hbmd1bGFyQXhpcy50aWNrY29sb3ImJihzLnRpY2tDb2xvcj1zLmFuZ3VsYXJBeGlzLnRpY2tjb2xvcikpLHMubGVnZW5kJiYiYm9vbGVhbiIhPXR5cGVvZiBzLmxlZ2VuZC5yZXZlcnNlT3JkZXImJihzLmxlZ2VuZC5yZXZlcnNlT3JkZXI9Im5vcm1hbCIhPXMubGVnZW5kLnJldmVyc2VPcmRlcikscy5sZWdlbmQmJiJib29sZWFuIj09dHlwZW9mIHMubGVnZW5kLnRyYWNlb3JkZXImJihzLmxlZ2VuZC50cmFjZW9yZGVyPXMubGVnZW5kLnRyYWNlb3JkZXI/InJldmVyc2VkIjoibm9ybWFsIixkZWxldGUgcy5sZWdlbmQucmV2ZXJzZU9yZGVyKSxzLm1hcmdpbiYmInVuZGVmaW5lZCIhPXR5cGVvZiBzLm1hcmdpbi50KXt2YXIgdT1bInQiLCJyIiwiYiIsImwiLCJwYWQiXSxjPVsidG9wIiwicmlnaHQiLCJib3R0b20iLCJsZWZ0IiwicGFkIl0saD17fTtpLmVudHJpZXMocy5tYXJnaW4pLmZvckVhY2goZnVuY3Rpb24odCxlKXtoW2NbdS5pbmRleE9mKHQua2V5KV1dPXQudmFsdWV9KSxzLm1hcmdpbj1ofWUmJihkZWxldGUgcy5uZWVkc0VuZFNwYWNpbmcsZGVsZXRlIHMubWlub3JUaWNrQ29sb3IsZGVsZXRlIHMubWlub3JUaWNrcyxkZWxldGUgcy5hbmd1bGFyYXhpcy50aWNrc0NvdW50LGRlbGV0ZSBzLmFuZ3VsYXJheGlzLnRpY2tzQ291bnQsZGVsZXRlIHMuYW5ndWxhcmF4aXMudGlja3NTdGVwLGRlbGV0ZSBzLmFuZ3VsYXJheGlzLnJld3JpdGVUaWNrcyxkZWxldGUgcy5hbmd1bGFyYXhpcy5udGlja3MsZGVsZXRlIHMucmFkaWFsYXhpcy50aWNrc0NvdW50LGRlbGV0ZSBzLnJhZGlhbGF4aXMudGlja3NDb3VudCxkZWxldGUgcy5yYWRpYWxheGlzLnRpY2tzU3RlcCxkZWxldGUgcy5yYWRpYWxheGlzLnJld3JpdGVUaWNrcyxkZWxldGUgcy5yYWRpYWxheGlzLm50aWNrcyksci5sYXlvdXQ9c31yZXR1cm4gcn0sdH19LHsiLi4vLi4vcGxvdGx5Ijo2MTIsIi4vbWljcm9wb2xhcl9tYW5hZ2VyIjo2NzUsZDM6MTI0fV0sNjc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RseSIpLGk9dCgiZDMiKSxvPXQoIi4vdW5kb19tYW5hZ2VyIiksYT1lLmV4cG9ydHM9e30scz1uLkxpYi5leHRlbmREZWVwQWxsO2EuZnJhbWV3b3JrPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxvKXtyZXR1cm4gbyYmKGg9byksaS5zZWxlY3QoaS5zZWxlY3QoaCkubm9kZSgpLnBhcmVudE5vZGUpLnNlbGVjdEFsbCgiLnN2Zy1jb250YWluZXI+Kjpub3QoLmNoYXJ0LXJvb3QpIikucmVtb3ZlKCkscj1yP3MocixlKTplLHV8fCh1PW4ubWljcm9wb2xhci5BeGlzKCkpLGM9bi5taWNyb3BvbGFyLmFkYXB0ZXIucGxvdGx5KCkuY29udmVydChyKSx1LmNvbmZpZyhjKS5yZW5kZXIoaCksdC5kYXRhPXIuZGF0YSx0LmxheW91dD1yLmxheW91dCxhLmZpbGxMYXlvdXQodCkscn12YXIgcixsLHUsYyxoLGY9bmV3IG87cmV0dXJuIGUuaXNQb2xhcj0hMCxlLnN2Zz1mdW5jdGlvbigpe3JldHVybiB1LnN2ZygpfSxlLmdldENvbmZpZz1mdW5jdGlvbigpe3JldHVybiByfSxlLmdldExpdmVDb25maWc9ZnVuY3Rpb24oKXtyZXR1cm4gbi5taWNyb3BvbGFyLmFkYXB0ZXIucGxvdGx5KCkuY29udmVydCh1LmdldExpdmVDb25maWcoKSwhMCl9LGUuZ2V0TGl2ZVNjYWxlcz1mdW5jdGlvbigpe3JldHVybnt0OnUuYW5ndWxhclNjYWxlKCkscjp1LnJhZGlhbFNjYWxlKCl9fSxlLnNldFVuZG9Qb2ludD1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1uLm1pY3JvcG9sYXIudXRpbC5jbG9uZUpzb24ocik7IWZ1bmN0aW9uKGUscil7Zi5hZGQoe3VuZG86ZnVuY3Rpb24oKXtyJiZ0KHIpfSxyZWRvOmZ1bmN0aW9uKCl7dChlKX19KX0oZSxsKSxsPW4ubWljcm9wb2xhci51dGlsLmNsb25lSnNvbihlKX0sZS51bmRvPWZ1bmN0aW9uKCl7Zi51bmRvKCl9LGUucmVkbz1mdW5jdGlvbigpe2YucmVkbygpfSxlfSxhLmZpbGxMYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGU9aS5zZWxlY3QodCkuc2VsZWN0QWxsKCIucGxvdC1jb250YWluZXIiKSxyPWUuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpLG89dC5mcmFtZXdvcmsmJnQuZnJhbWV3b3JrLnN2ZyYmdC5mcmFtZXdvcmsuc3ZnKCksYT17d2lkdGg6ODAwLGhlaWdodDo2MDAscGFwZXJfYmdjb2xvcjpuLkNvbG9yLmJhY2tncm91bmQsX2NvbnRhaW5lcjplLF9wYXBlcmRpdjpyLF9wYXBlcjpvfTt0Ll9mdWxsTGF5b3V0PXMoYSx0LmxheW91dCl9fSx7Ii4uLy4uL3Bsb3RseSI6NjEyLCIuL3VuZG9fbWFuYWdlciI6Njc2LGQzOjEyNH1dLDY3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7cmV0dXJuIHQ/KGk9ITAsdFtlXSgpLGk9ITEsdGhpcyk6dGhpc312YXIgZSxyPVtdLG49LTEsaT0hMTtyZXR1cm57YWRkOmZ1bmN0aW9uKHQpe3JldHVybiBpP3RoaXM6KHIuc3BsaWNlKG4rMSxyLmxlbmd0aC1uKSxyLnB1c2godCksbj1yLmxlbmd0aC0xLHRoaXMpfSxzZXRDYWxsYmFjazpmdW5jdGlvbih0KXtlPXR9LHVuZG86ZnVuY3Rpb24oKXt2YXIgaT1yW25dO3JldHVybiBpPyh0KGksInVuZG8iKSxuLT0xLGUmJmUoaS51bmRvKSx0aGlzKTp0aGlzfSxyZWRvOmZ1bmN0aW9uKCl7dmFyIGk9cltuKzFdO3JldHVybiBpPyh0KGksInJlZG8iKSxuKz0xLGUmJmUoaS5yZWRvKSx0aGlzKTp0aGlzfSxjbGVhcjpmdW5jdGlvbigpe3I9W10sbj0tMX0saGFzVW5kbzpmdW5jdGlvbigpe3JldHVybi0xIT09bn0saGFzUmVkbzpmdW5jdGlvbigpe3JldHVybiBuPHIubGVuZ3RoLTF9LGdldENvbW1hbmRzOmZ1bmN0aW9uKCl7cmV0dXJuIHJ9LGdldFByZXZpb3VzQ29tbWFuZDpmdW5jdGlvbigpe3JldHVybiByW24tMV19LGdldEluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIG59fX19LHt9XSw2Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuL3Bsb3RzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gbi5jb2VyY2UocyxsLGMsdCxlKX1mb3IodmFyIHMsbCx1PW8udHlwZSxjPW8uYXR0cmlidXRlcyxoPW8uaGFuZGxlRGVmYXVsdHMsZj1vLnBhcnRpdGlvbnx8IngiLHA9aS5maW5kU3VicGxvdElkcyhyLHUpLGQ9cC5sZW5ndGgsbT0wO2Q+bTttKyspe3ZhciBnPXBbbV07cz10W2ddP3RbZ106dFtnXT17fSxlW2ddPWw9e30sYSgiZG9tYWluLiIrZixbbS9kLChtKzEpL2RdKSxhKCJkb21haW4uIit7eDoieSIseToieCJ9W2ZdKSxvLmlkPWcsaChzLGwsYSxvKX19fSx7Ii4uL2xpYiI6NTkxLCIuL3Bsb3RzIjo2NzF9XSw2Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi90ZXJuYXJ5IiksaT10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0idGVybmFyeSIsci5hdHRyPSJzdWJwbG90IixyLmlkUm9vdD0idGVybmFyeSIsci5pZFJlZ2V4PS9edGVybmFyeShbMi05XXxbMS05XVswLTldKyk/JC8sci5hdHRyUmVnZXg9L150ZXJuYXJ5KFsyLTldfFsxLTldWzAtOV0rKT8kLyxyLmF0dHJpYnV0ZXM9dCgiLi9sYXlvdXQvYXR0cmlidXRlcyIpLHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dC9sYXlvdXRfYXR0cmlidXRlcyIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXQvZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9mdWxsRGF0YSxvPWkuZ2V0U3VicGxvdElkcyhlLCJ0ZXJuYXJ5IiksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz1vW2FdLGw9aS5nZXRTdWJwbG90RGF0YShyLCJ0ZXJuYXJ5IixzKSx1PWVbc10uX3N1YnBsb3Q7dm9pZCAwPT09dSYmKHU9bmV3IG4oe2lkOnMsZ3JhcGhEaXY6dCxjb250YWluZXI6ZS5fdGVybmFyeWxheWVyLm5vZGUoKX0sZSksZVtzXS5fc3VicGxvdD11KSx1LnBsb3QobCxlLHQuX3Byb21pc2VzKX19LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBvPWkuZ2V0U3VicGxvdElkcyhuLCJ0ZXJuYXJ5IiksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgcz1vW2FdLGw9bltzXS5fc3VicGxvdDshZVtzXSYmbCYmKGwucGxvdENvbnRhaW5lci5yZW1vdmUoKSxsLmNsaXBEZWYucmVtb3ZlKCkpfX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi9sYXlvdXQvYXR0cmlidXRlcyI6Njc5LCIuL2xheW91dC9kZWZhdWx0cyI6NjgyLCIuL2xheW91dC9sYXlvdXRfYXR0cmlidXRlcyI6NjgzLCIuL3Rlcm5hcnkiOjY4NH1dLDY3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3N1YnBsb3Q6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoidGVybmFyeSJ9fX0se31dLDY4MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17dGl0bGU6bi50aXRsZSx0aXRsZWZvbnQ6bi50aXRsZWZvbnQsY29sb3I6bi5jb2xvcix0aWNrbW9kZTpuLnRpY2ttb2RlLG50aWNrczppKHt9LG4ubnRpY2tzLHtkZmx0OjYsbWluOjF9KSx0aWNrMDpuLnRpY2swLGR0aWNrOm4uZHRpY2ssdGlja3ZhbHM6bi50aWNrdmFscyx0aWNrdGV4dDpuLnRpY2t0ZXh0LHRpY2tzOm4udGlja3MsdGlja2xlbjpuLnRpY2tsZW4sdGlja3dpZHRoOm4udGlja3dpZHRoLHRpY2tjb2xvcjpuLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczpuLnNob3d0aWNrbGFiZWxzLHNob3d0aWNrcHJlZml4Om4uc2hvd3RpY2twcmVmaXgsdGlja3ByZWZpeDpuLnRpY2twcmVmaXgsc2hvd3RpY2tzdWZmaXg6bi5zaG93dGlja3N1ZmZpeCx0aWNrc3VmZml4Om4udGlja3N1ZmZpeCxzaG93ZXhwb25lbnQ6bi5zaG93ZXhwb25lbnQsZXhwb25lbnRmb3JtYXQ6bi5leHBvbmVudGZvcm1hdCx0aWNrZm9udDpuLnRpY2tmb250LHRpY2thbmdsZTpuLnRpY2thbmdsZSx0aWNrZm9ybWF0Om4udGlja2Zvcm1hdCxob3ZlcmZvcm1hdDpuLmhvdmVyZm9ybWF0LHNob3dsaW5lOmkoe30sbi5zaG93bGluZSx7ZGZsdDohMH0pLGxpbmVjb2xvcjpuLmxpbmVjb2xvcixsaW5ld2lkdGg6bi5saW5ld2lkdGgsc2hvd2dyaWQ6aSh7fSxuLnNob3dncmlkLHtkZmx0OiEwfSksZ3JpZGNvbG9yOm4uZ3JpZGNvbG9yLGdyaWR3aWR0aDpuLmdyaWR3aWR0aCxtaW46e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLG1pbjowfX19LHsiLi4vLi4vLi4vbGliL2V4dGVuZCI6NTg2LCIuLi8uLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjYyNH1dLDY4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0aW55Y29sb3IyIikubWl4LGk9dCgiLi4vLi4vLi4vbGliIiksbz10KCIuL2F4aXNfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxzPXQoIi4uLy4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiKSxsPXQoIi4uLy4uL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiB1KHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxvLHIsbil9ZS50eXBlPSJsaW5lYXIiO3ZhciBjPXUoImNvbG9yIiksaD1jPT09dC5jb2xvcj9jOnIuZm9udC5jb2xvcixmPWUuX25hbWUscD1mLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpLGQ9IkNvbXBvbmVudCAiK3AsbT11KCJ0aXRsZSIsZCk7ZS5faG92ZXJ0aXRsZT1tPT09ZD9tOnAsaS5jb2VyY2VGb250KHUsInRpdGxlZm9udCIse2ZhbWlseTpyLmZvbnQuZmFtaWx5LHNpemU6TWF0aC5yb3VuZCgxLjIqci5mb250LnNpemUpLGNvbG9yOmh9KSx1KCJtaW4iKSxsKHQsZSx1LCJsaW5lYXIiKSxhKHQsZSx1LCJsaW5lYXIiLHtub0hvdmVyOiExfSkscyh0LGUsdSx7b3V0ZXJUaWNrczohMH0pO3ZhciBnPXUoInNob3d0aWNrbGFiZWxzIik7ZyYmKGkuY29lcmNlRm9udCh1LCJ0aWNrZm9udCIse2ZhbWlseTpyLmZvbnQuZmFtaWx5LHNpemU6ci5mb250LnNpemUsY29sb3I6aH0pLHUoInRpY2thbmdsZSIpLHUoInRpY2tmb3JtYXQiKSksdSgiaG92ZXJmb3JtYXQiKTt2YXIgdj11KCJzaG93bGluZSIpO3YmJih1KCJsaW5lY29sb3IiLGMpLHUoImxpbmV3aWR0aCIpKTt2YXIgeT11KCJzaG93Z3JpZCIpO3kmJih1KCJncmlkY29sb3IiLG4oYyxyLmJnQ29sb3IsNjApLnRvUmdiU3RyaW5nKCkpLHUoImdyaWR3aWR0aCIpKX19LHsiLi4vLi4vLi4vbGliIjo1OTEsIi4uLy4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo2MzAsIi4uLy4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiOjYzMSwiLi4vLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjYzMiwiLi9heGlzX2F0dHJpYnV0ZXMiOjY4MCx0aW55Y29sb3IyOjQ3N31dLDY4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4pe3ZhciBvPXIoImJnY29sb3IiKSxhPXIoInN1bSIpO24uYmdDb2xvcj1pLmNvbWJpbmUobyxuLnBhcGVyX2JnY29sb3IpO2Zvcih2YXIgdSxjLGgsZj0wO2Y8bC5sZW5ndGg7ZisrKXU9bFtmXSxjPXRbdV18fHt9LGg9ZVt1XT17X25hbWU6dX0scyhjLGgsbik7dmFyIHA9ZS5hYXhpcyxkPWUuYmF4aXMsbT1lLmNheGlzO3AubWluK2QubWluK20ubWluPj1hJiYocC5taW49MCxkLm1pbj0wLG0ubWluPTAsdC5hYXhpcyYmZGVsZXRlIHQuYWF4aXMubWluLHQuYmF4aXMmJmRlbGV0ZSB0LmJheGlzLm1pbix0LmNheGlzJiZkZWxldGUgdC5jYXhpcy5taW4pfXZhciBpPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL3N1YnBsb3RfZGVmYXVsdHMiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzPXQoIi4vYXhpc19kZWZhdWx0cyIpLGw9WyJhYXhpcyIsImJheGlzIiwiY2F4aXMiXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe28odCxlLHIse3R5cGU6InRlcm5hcnkiLGF0dHJpYnV0ZXM6YSxoYW5kbGVEZWZhdWx0czpuLGZvbnQ6ZS5mb250LHBhcGVyX2JnY29sb3I6ZS5wYXBlcl9iZ2NvbG9yfSl9fSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vLi4vc3VicGxvdF9kZWZhdWx0cyI6Njc3LCIuL2F4aXNfZGVmYXVsdHMiOjY4MSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjgzfV0sNjgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLGk9dCgiLi9heGlzX2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e2RvbWFpbjp7eDp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX1dLGRmbHQ6WzAsMV19LHk6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX0se3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjF9XSxkZmx0OlswLDFdfX0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5iYWNrZ3JvdW5kfSxzdW06e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLG1pbjowfSxhYXhpczppLGJheGlzOmksY2F4aXM6aX19LHsiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo1MDUsIi4vYXhpc19hdHRyaWJ1dGVzIjo2ODB9XSw2ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMuaWQ9dC5pZCx0aGlzLmdyYXBoRGl2PXQuZ3JhcGhEaXYsdGhpcy5pbml0KGUpLHRoaXMubWFrZUZyYW1ld29yaygpfWZ1bmN0aW9uIGkodCl7by5zZWxlY3QodCkuc2VsZWN0QWxsKCIuem9vbWJveCwuanMtem9vbWJveC1iYWNrZHJvcCwuanMtem9vbWJveC1tZW51LC56b29tYm94LWNvcm5lcnMiKS5yZW1vdmUoKX12YXIgbz10KCJkMyIpLGE9dCgidGlueWNvbG9yMiIpLHM9dCgiLi4vLi4vcGxvdGx5IiksbD10KCIuLi8uLi9saWIiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGg9dCgiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0IiksZj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxwPXQoIi4uL2NhcnRlc2lhbi9heGVzIiksZD10KCIuLi8uLi9saWIvZmlsdGVyX3Zpc2libGUiKSxtPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSxnPXQoIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIiksdj10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikseT10KCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksYj10KCIuLi9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKTtlLmV4cG9ydHM9bjt2YXIgeD1uLnByb3RvdHlwZTt4LmluaXQ9ZnVuY3Rpb24odCl7dGhpcy5jb250YWluZXI9dC5fdGVybmFyeWxheWVyLHRoaXMuZGVmcz10Ll9kZWZzLHRoaXMubGF5b3V0SWQ9dC5fdWlkLHRoaXMudHJhY2VIYXNoPXt9fSx4LnBsb3Q9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRoaXMsaT1lW24uaWRdLG89ZS5fc2l6ZTtsLmdldFBsb3REaXYobi5wbG90Q29udGFpbmVyLm5vZGUoKSkhPT1uLmdyYXBoRGl2JiYobi5pbml0KG4uZ3JhcGhEaXYuX2Z1bGxMYXlvdXQpLG4ubWFrZUZyYW1ld29yaygpKSxuLmFkanVzdExheW91dChpLG8pO3ZhciBhPW4udHJhY2VIYXNoLHM9e307Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGM9dFtyXTtzW2MudHlwZV09c1tjLnR5cGVdfHxbXSxzW2MudHlwZV0ucHVzaChjKX12YXIgaD1PYmplY3Qua2V5cyhhKSxmPU9iamVjdC5rZXlzKHMpO2ZvcihyPTA7cjxoLmxlbmd0aDtyKyspe3ZhciBwPWhbcl07aWYoLTE9PT1mLmluZGV4T2YocCkpe3ZhciBtPWFbcF1bMF07bS52aXNpYmxlPSExLHNbcF09W21dfX1mb3IoZj1PYmplY3Qua2V5cyhzKSxyPTA7cjxmLmxlbmd0aDtyKyspe3ZhciBnPXNbZltyXV0sdj1nWzBdLl9tb2R1bGU7di5wbG90KG4sZChnKSxpKX1uLnRyYWNlSGFzaD1zLG4ubGF5ZXJzLnBsb3RiZy5zZWxlY3QoInBhdGgiKS5jYWxsKHUuZmlsbCxpLmJnY29sb3IpfSx4Lm1ha2VGcmFtZXdvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dC5kZWZzLnNlbGVjdEFsbCgiZy5jbGlwcyIpLmRhdGEoWzBdKTtlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2xpcHMiLCEwKTt2YXIgcj0iY2xpcCIrdC5sYXlvdXRJZCt0LmlkO3QuY2xpcERlZj1lLnNlbGVjdEFsbCgiIyIrcikuZGF0YShbMF0pLHQuY2xpcERlZi5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5hdHRyKCJpZCIscikuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0wLDBaIiksdC5wbG90Q29udGFpbmVyPXQuY29udGFpbmVyLnNlbGVjdEFsbCgiZy4iK3QuaWQpLmRhdGEoWzBdKSx0LnBsb3RDb250YWluZXIuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHQuaWQsITApLHQubGF5ZXJzPXt9O3ZhciBuPVsiZHJhZ2xheWVyIiwicGxvdGJnIiwiYmFja3Bsb3QiLCJncmlkcyIsImZyb250cGxvdCIsInpvb20iLCJhYXhpcyIsImJheGlzIiwiY2F4aXMiLCJheGxpbmVzIl0saT10LnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCJnLnRvcGxldmVsIikuZGF0YShuKTtpLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLGZ1bmN0aW9uKHQpe3JldHVybiJ0b3BsZXZlbCAiK3R9KS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPW8uc2VsZWN0KHRoaXMpO3QubGF5ZXJzW2VdPXIsImZyb250cGxvdCI9PT1lP3IuYXBwZW5kKCJnIikuY2xhc3NlZCgic2NhdHRlcmxheWVyIiwhMCk6ImJhY2twbG90Ij09PWU/ci5hcHBlbmQoImciKS5jbGFzc2VkKCJtYXBsYXllciIsITApOiJwbG90YmciPT09ZT9yLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLCJNMCwwWiIpOiJheGxpbmVzIj09PWUmJnIuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShbImFsaW5lIiwiYmxpbmUiLCJjbGluZSJdKS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmVhY2goZnVuY3Rpb24odCl7by5zZWxlY3QodGhpcykuY2xhc3NlZCh0LCEwKX0pfSk7dmFyIGE9dC5wbG90Q29udGFpbmVyLnNlbGVjdCgiLmdyaWRzIikuc2VsZWN0QWxsKCJnLmdyaWQiKS5kYXRhKFsiYWdyaWQiLCJiZ3JpZCIsImNncmlkIl0pO2EuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuImdyaWQgIit0fSkuZWFjaChmdW5jdGlvbihlKXt0LmxheWVyc1tlXT1vLnNlbGVjdCh0aGlzKX0pLHQucGxvdENvbnRhaW5lci5zZWxlY3RBbGwoIi5iYWNrcGxvdCwuZnJvbnRwbG90LC5ncmlkcyIpLmNhbGwoYy5zZXRDbGlwVXJsLHIpLHQuZ3JhcGhEaXYuX2NvbnRleHQuc3RhdGljUGxvdHx8dC5pbml0SW50ZXJhY3Rpb25zKCl9O3ZhciBfPU1hdGguc3FydCg0LzMpO3guYWRqdXN0TGF5b3V0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLG8sYSxzLGw9dGhpcyxjPXQuZG9tYWluLHA9KGMueFswXStjLnhbMV0pLzIsZD0oYy55WzBdK2MueVsxXSkvMixtPWMueFsxXS1jLnhbMF0sZz1jLnlbMV0tYy55WzBdLHY9bSplLncseT1nKmUuaCxiPXQuc3VtLHg9dC5hYXhpcy5taW4sdz10LmJheGlzLm1pbixNPXQuY2F4aXMubWluO3Y+Xyp5PyhvPXksaT1vKl8pOihpPXYsbz1pL18pLGE9bSppL3Yscz1nKm8veSxyPWUubCtlLncqcC1pLzIsbj1lLnQrZS5oKigxLWQpLW8vMixsLngwPXIsbC55MD1uLGwudz1pLGwuaD1vLGwuc3VtPWIsbC54YXhpcz17dHlwZToibGluZWFyIixyYW5nZTpbeCsyKk0tYixiLXgtMip3XSxkb21haW46W3AtYS8yLHArYS8yXSxfaWQ6IngiLF9nZDpsLmdyYXBoRGl2fSxoKGwueGF4aXMpLGwueGF4aXMuc2V0U2NhbGUoKSxsLnlheGlzPXt0eXBlOiJsaW5lYXIiLHJhbmdlOlt4LGItdy1NXSxkb21haW46W2Qtcy8yLGQrcy8yXSxfaWQ6InkiLF9nZDpsLmdyYXBoRGl2fSxoKGwueWF4aXMpLGwueWF4aXMuc2V0U2NhbGUoKTt2YXIgaz1sLnlheGlzLmRvbWFpblswXSxBPWwuYWF4aXM9Zih7fSx0LmFheGlzLHtyYW5nZTpbeCxiLXctTV0sc2lkZToibGVmdCIsX2NvdW50ZXJhbmdsZTozMCx0aWNrYW5nbGU6KCt0LmFheGlzLnRpY2thbmdsZXx8MCktMzAsZG9tYWluOltrLGsrcypfXSxfYXhpc2xheWVyOmwubGF5ZXJzLmFheGlzLF9ncmlkbGF5ZXI6bC5sYXllcnMuYWdyaWQsX3BvczowLF9nZDpsLmdyYXBoRGl2LF9pZDoieSIsX2xlbmd0aDppLF9ncmlkcGF0aDoiTTAsMGwiK28rIiwtIitpLzJ9KTtoKEEpO3ZhciBUPWwuYmF4aXM9Zih7fSx0LmJheGlzLHtyYW5nZTpbYi14LU0sd10sc2lkZToiYm90dG9tIixfY291bnRlcmFuZ2xlOjMwLGRvbWFpbjpsLnhheGlzLmRvbWFpbixfYXhpc2xheWVyOmwubGF5ZXJzLmJheGlzLF9ncmlkbGF5ZXI6bC5sYXllcnMuYmdyaWQsX2NvdW50ZXJheGlzOmwuYWF4aXMsX3BvczowLF9nZDpsLmdyYXBoRGl2LF9pZDoieCIsX2xlbmd0aDppLF9ncmlkcGF0aDoiTTAsMGwtIitpLzIrIiwtIitvfSk7aChUKSxBLl9jb3VudGVyYXhpcz1UO3ZhciBFPWwuY2F4aXM9Zih7fSx0LmNheGlzLHtyYW5nZTpbYi14LXcsTV0sc2lkZToicmlnaHQiLF9jb3VudGVyYW5nbGU6MzAsdGlja2FuZ2xlOigrdC5jYXhpcy50aWNrYW5nbGV8fDApKzMwLGRvbWFpbjpbayxrK3MqX10sX2F4aXNsYXllcjpsLmxheWVycy5jYXhpcyxfZ3JpZGxheWVyOmwubGF5ZXJzLmNncmlkLF9jb3VudGVyYXhpczpsLmJheGlzLF9wb3M6MCxfZ2Q6bC5ncmFwaERpdixfaWQ6InkiLF9sZW5ndGg6aSxfZ3JpZHBhdGg6Ik0wLDBsLSIrbysiLCIraS8yfSk7aChFKTt2YXIgUz0iTSIrcisiLCIrKG4rbykrImgiK2krImwtIitpLzIrIiwtIitvKyJaIjtsLmNsaXBEZWYuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIsUyksbC5sYXllcnMucGxvdGJnLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLFMpO3ZhciBMPSJ0cmFuc2xhdGUoIityKyIsIituKyIpIjtsLnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCIuc2NhdHRlcmxheWVyLC5tYXBsYXllciwuem9vbSIpLmF0dHIoInRyYW5zZm9ybSIsTCk7dmFyIHo9InRyYW5zbGF0ZSgiK3IrIiwiKyhuK28pKyIpIjtsLmxheWVycy5iYXhpcy5hdHRyKCJ0cmFuc2Zvcm0iLHopLGwubGF5ZXJzLmJncmlkLmF0dHIoInRyYW5zZm9ybSIseik7dmFyIEk9InRyYW5zbGF0ZSgiKyhyK2kvMikrIiwiK24rIilyb3RhdGUoMzApIjtsLmxheWVycy5hYXhpcy5hdHRyKCJ0cmFuc2Zvcm0iLEkpLGwubGF5ZXJzLmFncmlkLmF0dHIoInRyYW5zZm9ybSIsSSk7dmFyIFA9InRyYW5zbGF0ZSgiKyhyK2kvMikrIiwiK24rIilyb3RhdGUoLTMwKSI7bC5sYXllcnMuY2F4aXMuYXR0cigidHJhbnNmb3JtIixQKSxsLmxheWVycy5jZ3JpZC5hdHRyKCJ0cmFuc2Zvcm0iLFApLGwuZHJhd0F4ZXMoITApLGwucGxvdENvbnRhaW5lci5zZWxlY3RBbGwoIi5jcmlzcCIpLmNsYXNzZWQoImNyaXNwIiwhMSk7dmFyIEM9bC5sYXllcnMuYXhsaW5lcztDLnNlbGVjdCgiLmFsaW5lIikuYXR0cigiZCIsQS5zaG93bGluZT8iTSIrcisiLCIrKG4rbykrImwiK2kvMisiLC0iK286Ik0wLDAiKS5jYWxsKHUuc3Ryb2tlLEEubGluZWNvbG9yfHwiIzAwMCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChBLmxpbmV3aWR0aHx8MCkrInB4IiksQy5zZWxlY3QoIi5ibGluZSIpLmF0dHIoImQiLFQuc2hvd2xpbmU/Ik0iK3IrIiwiKyhuK28pKyJoIitpOiJNMCwwIikuY2FsbCh1LnN0cm9rZSxULmxpbmVjb2xvcnx8IiMwMDAiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwoVC5saW5ld2lkdGh8fDApKyJweCIpLEMuc2VsZWN0KCIuY2xpbmUiKS5hdHRyKCJkIixFLnNob3dsaW5lPyJNIisocitpLzIpKyIsIituKyJsIitpLzIrIiwiK286Ik0wLDAiKS5jYWxsKHUuc3Ryb2tlLEUubGluZWNvbG9yfHwiIzAwMCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChFLmxpbmV3aWR0aHx8MCkrInB4Iil9LHguZHJhd0F4ZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWUuZ3JhcGhEaXYsbj1lLmlkLnN1YnN0cig3KSsidGl0bGUiLGk9ZS5hYXhpcyxvPWUuYmF4aXMsYT1lLmNheGlzO2lmKHAuZG9UaWNrcyhyLGksITApLHAuZG9UaWNrcyhyLG8sITApLHAuZG9UaWNrcyhyLGEsITApLHQpe3ZhciBzPU1hdGgubWF4KGkuc2hvd3RpY2tsYWJlbHM/aS50aWNrZm9udC5zaXplLzI6MCwoYS5zaG93dGlja2xhYmVscz8uNzUqYS50aWNrZm9udC5zaXplOjApKygib3V0c2lkZSI9PT1hLnRpY2tzPy44NyphLnRpY2tsZW46MCkpO2cuZHJhdyhyLCJhIituLHtwcm9wQ29udGFpbmVyOmkscHJvcE5hbWU6ZS5pZCsiLmFheGlzLnRpdGxlIixkZmx0TmFtZToiQ29tcG9uZW50IEEiLGF0dHJpYnV0ZXM6e3g6ZS54MCtlLncvMix5OmUueTAtaS50aXRsZWZvbnQuc2l6ZS8zLXMsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KTt2YXIgbD0oby5zaG93dGlja2xhYmVscz9vLnRpY2tmb250LnNpemU6MCkrKCJvdXRzaWRlIj09PW8udGlja3M/by50aWNrbGVuOjApKzM7Zy5kcmF3KHIsImIiK24se3Byb3BDb250YWluZXI6byxwcm9wTmFtZTplLmlkKyIuYmF4aXMudGl0bGUiLGRmbHROYW1lOiJDb21wb25lbnQgQiIsYXR0cmlidXRlczp7eDplLngwLWwseTplLnkwK2UuaCsuODMqby50aXRsZWZvbnQuc2l6ZStsLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSksZy5kcmF3KHIsImMiK24se3Byb3BDb250YWluZXI6YSxwcm9wTmFtZTplLmlkKyIuY2F4aXMudGl0bGUiLGRmbHROYW1lOiJDb21wb25lbnQgQyIsYXR0cmlidXRlczp7eDplLngwK2UudytsLHk6ZS55MCtlLmgrLjgzKmEudGl0bGVmb250LnNpemUrbCwidGV4dC1hbmNob3IiOiJtaWRkbGUifX0pfX07dmFyIHc9eS5NSU5aT09NLzIrLjg3LE09Im0tMC44NywuNWgiK3crInYzaC0iKyh3KzUuMikrImwiKyh3LzIrMi42KSsiLC0iKyguODcqdys0LjUpKyJsMi42LDEuNWwtIit3LzIrIiwiKy44Nyp3KyJaIixrPSJtMC44NywuNWgtIit3KyJ2M2giKyh3KzUuMikrImwtIisody8yKzIuNikrIiwtIisoLjg3KncrNC41KSsibC0yLjYsMS41bCIrdy8yKyIsIisuODcqdysiWiIsQT0ibTAsMWwiK3cvMisiLCIrLjg3KncrImwyLjYsLTEuNWwtIisody8yKzIuNikrIiwtIisoLjg3KncrNC41KSsibC0iKyh3LzIrMi42KSsiLCIrKC44Nyp3KzQuNSkrImwyLjYsMS41bCIrdy8yKyIsLSIrLjg3KncrIloiLFQ9Im0wLjUsMC41aDV2LTJoLTV2LTVoLTJ2NWgtNXYyaDV2NWgyWiIsRT0hMDsKeC5pbml0SW50ZXJhY3Rpb25zPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUscil7dmFyIG49Ty5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt4PWUtbi5sZWZ0LHc9ci1uLnRvcCxTPXthOkQuYWF4aXMucmFuZ2VbMF0sYjpELmJheGlzLnJhbmdlWzFdLGM6RC5jYXhpcy5yYW5nZVsxXX0sej1TLEw9RC5hYXhpcy5yYW5nZVsxXS1TLmEsST1hKEQuZ3JhcGhEaXYuX2Z1bGxMYXlvdXRbRC5pZF0uYmdjb2xvcikuZ2V0THVtaW5hbmNlKCksUD0iTTAsIitELmgrIkwiK0Qudy8yKyIsIDBMIitELncrIiwiK0QuaCsiWiIsQz0hMSxSPU4uYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJ6b29tYm94Iikuc3R5bGUoe2ZpbGw6ST4uMj8icmdiYSgwLDAsMCwwKSI6InJnYmEoMjU1LDI1NSwyNTUsMCkiLCJzdHJva2Utd2lkdGgiOjB9KS5hdHRyKCJkIixQKSxqPU4uYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJ6b29tYm94LWNvcm5lcnMiKS5zdHlsZSh7ZmlsbDp1LmJhY2tncm91bmQsc3Ryb2tlOnUuZGVmYXVsdExpbmUsInN0cm9rZS13aWR0aCI6MSxvcGFjaXR5OjB9KS5hdHRyKCJkIiwiTTAsMFoiKSxkKCl9ZnVuY3Rpb24gZSh0LGUpe3JldHVybiAxLWUvRC5ofWZ1bmN0aW9uIHIodCxlKXtyZXR1cm4gMS0odCsoRC5oLWUpL01hdGguc3FydCgzKSkvRC53fWZ1bmN0aW9uIG4odCxlKXtyZXR1cm4odC0oRC5oLWUpL01hdGguc3FydCgzKSkvRC53fWZ1bmN0aW9uIG8odCxpKXt2YXIgbz14K3QsYT13K2kscz1NYXRoLm1heCgwLE1hdGgubWluKDEsZSh4LHcpLGUobyxhKSkpLGw9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHIoeCx3KSxyKG8sYSkpKSx1PU1hdGgubWF4KDAsTWF0aC5taW4oMSxuKHgsdyksbihvLGEpKSksYz0ocy8yK3UpKkQudyxoPSgxLXMvMi1sKSpELncsZj0oYytoKS8yLHA9aC1jLGQ9KDEtcykqRC5oLG09ZC1wL187cDx5Lk1JTlpPT00/KHo9UyxSLmF0dHIoImQiLFApLGouYXR0cigiZCIsIk0wLDBaIikpOih6PXthOlMuYStzKkwsYjpTLmIrbCpMLGM6Uy5jK3UqTH0sUi5hdHRyKCJkIixQKyJNIitjKyIsIitkKyJIIitoKyJMIitmKyIsIittKyJMIitjKyIsIitkKyJaIiksai5hdHRyKCJkIiwiTSIreCsiLCIrdytUKyJNIitjKyIsIitkK00rIk0iK2grIiwiK2QraysiTSIrZisiLCIrbStBKSksQ3x8KFIudHJhbnNpdGlvbigpLnN0eWxlKCJmaWxsIixJPi4yPyJyZ2JhKDAsMCwwLDAuNCkiOiJyZ2JhKDI1NSwyNTUsMjU1LDAuMykiKS5kdXJhdGlvbigyMDApLGoudHJhbnNpdGlvbigpLnN0eWxlKCJvcGFjaXR5IiwxKS5kdXJhdGlvbigyMDApLEM9ITApfWZ1bmN0aW9uIGModCxlKXtpZih6PT09UylyZXR1cm4gMj09PWUmJmcoKSxpKEYpO2koRik7dmFyIHI9e307cltELmlkKyIuYWF4aXMubWluIl09ei5hLHJbRC5pZCsiLmJheGlzLm1pbiJdPXouYixyW0QuaWQrIi5jYXhpcy5taW4iXT16LmMscy5yZWxheW91dChGLHIpLEUmJkYuZGF0YSYmRi5fY29udGV4dC5zaG93VGlwcyYmKGwubm90aWZpZXIoIkRvdWJsZS1jbGljayB0bzxicj56b29tIGJhY2sgb3V0IiwibG9uZyIpLEU9ITEpfWZ1bmN0aW9uIGgoKXtTPXthOkQuYWF4aXMucmFuZ2VbMF0sYjpELmJheGlzLnJhbmdlWzFdLGM6RC5jYXhpcy5yYW5nZVsxXX0sej1TfWZ1bmN0aW9uIGYodCxlKXt2YXIgcj10L0QueGF4aXMuX20sbj1lL0QueWF4aXMuX207ej17YTpTLmEtbixiOlMuYisocituKS8yLGM6Uy5jLShyLW4pLzJ9O3ZhciBpPVt6LmEsei5iLHouY10uc29ydCgpLG89e2E6aS5pbmRleE9mKHouYSksYjppLmluZGV4T2Yoei5iKSxjOmkuaW5kZXhPZih6LmMpfTtpWzBdPDAmJihpWzFdK2lbMF0vMjwwPyhpWzJdKz1pWzBdK2lbMV0saVswXT1pWzFdPTApOihpWzJdKz1pWzBdLzIsaVsxXSs9aVswXS8yLGlbMF09MCksej17YTppW28uYV0sYjppW28uYl0sYzppW28uY119LGU9KFMuYS16LmEpKkQueWF4aXMuX20sdD0oUy5jLXouYy1TLmIrei5iKSpELnhheGlzLl9tKTt2YXIgYT0idHJhbnNsYXRlKCIrKEQueDArdCkrIiwiKyhELnkwK2UpKyIpIjtELnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCIuc2NhdHRlcmxheWVyLC5tYXBsYXllciIpLmF0dHIoInRyYW5zZm9ybSIsYSksRC5hYXhpcy5yYW5nZT1bei5hLEQuc3VtLXouYi16LmNdLEQuYmF4aXMucmFuZ2U9W0Quc3VtLXouYS16LmMsei5iXSxELmNheGlzLnJhbmdlPVtELnN1bS16LmEtei5iLHouY10sRC5kcmF3QXhlcyghMSksRC5wbG90Q29udGFpbmVyLnNlbGVjdEFsbCgiLmNyaXNwIikuY2xhc3NlZCgiY3Jpc3AiLCExKX1mdW5jdGlvbiBwKHQsZSl7aWYodCl7dmFyIHI9e307cltELmlkKyIuYWF4aXMubWluIl09ei5hLHJbRC5pZCsiLmJheGlzLm1pbiJdPXouYixyW0QuaWQrIi5jYXhpcy5taW4iXT16LmMscy5yZWxheW91dChGLHIpfWVsc2UgMj09PWUmJmcoKX1mdW5jdGlvbiBkKCl7RC5wbG90Q29udGFpbmVyLnNlbGVjdEFsbCgiLnNlbGVjdC1vdXRsaW5lIikucmVtb3ZlKCl9ZnVuY3Rpb24gZygpe3ZhciB0PXt9O3RbRC5pZCsiLmFheGlzLm1pbiJdPTAsdFtELmlkKyIuYmF4aXMubWluIl09MCx0W0QuaWQrIi5jYXhpcy5taW4iXT0wLEYuZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxzLnJlbGF5b3V0KEYsdCl9dmFyIHgsdyxTLEwseixJLFAsQyxSLGosRD10aGlzLE89RC5sYXllcnMucGxvdGJnLnNlbGVjdCgicGF0aCIpLm5vZGUoKSxGPUQuZ3JhcGhEaXYsTj1ELmxheWVycy56b29tLEI9e2VsZW1lbnQ6TyxnZDpGLHBsb3RpbmZvOntwbG90Ok59LGRvdWJsZWNsaWNrOmcsc3VicGxvdDpELmlkLHByZXBGbjpmdW5jdGlvbihlLHIsbil7Qi54YXhlcz1bRC54YXhpc10sQi55YXhlcz1bRC55YXhpc107dmFyIGk9Ri5fZnVsbExheW91dC5kcmFnbW9kZTtlLnNoaWZ0S2V5JiYoaT0icGFuIj09PWk/Inpvb20iOiJwYW4iKSwibGFzc28iPT09aT9CLm1pbkRyYWc9MTpCLm1pbkRyYWc9dm9pZCAwLCJ6b29tIj09PWk/KEIubW92ZUZuPW8sQi5kb25lRm49Yyx0KGUscixuKSk6InBhbiI9PT1pPyhCLm1vdmVGbj1mLEIuZG9uZUZuPXAsaCgpLGQoKSk6InNlbGVjdCIhPT1pJiYibGFzc28iIT09aXx8dihlLHIsbixCLGkpfX07Ty5vbm1vdXNlbW92ZT1mdW5jdGlvbih0KXtiLmhvdmVyKEYsdCxELmlkKSxGLl9mdWxsTGF5b3V0Ll9sYXN0aG92ZXI9TyxGLl9mdWxsTGF5b3V0Ll9ob3ZlcnN1YnBsb3Q9RC5pZH0sTy5vbm1vdXNlb3V0PWZ1bmN0aW9uKHQpe0YuX2RyYWdnaW5nfHxtLnVuaG92ZXIoRix0KX0sTy5vbmNsaWNrPWZ1bmN0aW9uKHQpe2IuY2xpY2soRix0KX0sbS5pbml0KEIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjUyNywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIjo1NjksIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uLy4uL2xpYi9maWx0ZXJfdmlzaWJsZSI6NTg3LCIuLi8uLi9wbG90bHkiOjYxMiwiLi4vY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi4vY2FydGVzaWFuL2NvbnN0YW50cyI6NjIwLCIuLi9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMiwiLi4vY2FydGVzaWFuL3NlbGVjdCI6NjI4LCIuLi9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiOjYyOSxkMzoxMjQsdGlueWNvbG9yMjo0Nzd9XSw2ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZTtzd2l0Y2godCl7Y2FzZSJ0aGVtZXNfX3RodW1iIjplPXthdXRvc2l6ZTohMCx3aWR0aDoxNTAsaGVpZ2h0OjE1MCx0aXRsZToiIixzaG93bGVnZW5kOiExLG1hcmdpbjp7bDo1LHI6NSx0OjUsYjo1LHBhZDowfSxhbm5vdGF0aW9uczpbXX07YnJlYWs7Y2FzZSJ0aHVtYm5haWwiOmU9e3RpdGxlOiIiLGhpZGVzb3VyY2VzOiEwLHNob3dsZWdlbmQ6ITEsYm9yZGVyd2lkdGg6MCxib3JkZXJjb2xvcjoiIixtYXJnaW46e2w6MSxyOjEsdDoxLGI6MSxwYWQ6MH0sYW5ub3RhdGlvbnM6W119O2JyZWFrO2RlZmF1bHQ6ZT17fX1yZXR1cm4gZX1mdW5jdGlvbiBpKHQpe3ZhciBlPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl07cmV0dXJuIGUuaW5kZXhPZih0LnNsaWNlKDAsNSkpPi0xfXZhciBvPXQoIi4uL3Bsb3RseSIpLGE9by5MaWIuZXh0ZW5kRmxhdCxzPW8uTGliLmV4dGVuZERlZXA7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dC5mcmFtZXdvcmsmJnQuZnJhbWV3b3JrLmlzUG9sYXImJih0PXQuZnJhbWV3b3JrLmdldENvbmZpZygpKTt2YXIgcixsPXQuZGF0YSx1PXQubGF5b3V0LGM9cyhbXSxsKSxoPXMoe30sdSxuKGUudGlsZUNsYXNzKSk7aWYoZS53aWR0aCYmKGgud2lkdGg9ZS53aWR0aCksZS5oZWlnaHQmJihoLmhlaWdodD1lLmhlaWdodCksInRodW1ibmFpbCI9PT1lLnRpbGVDbGFzc3x8InRoZW1lc19fdGh1bWIiPT09ZS50aWxlQ2xhc3Mpe2guYW5ub3RhdGlvbnM9W107dmFyIGY9T2JqZWN0LmtleXMoaCk7Zm9yKHI9MDtyPGYubGVuZ3RoO3IrKylpKGZbcl0pJiYoaFtmW3JdXS50aXRsZT0iIik7Zm9yKHI9MDtyPGMubGVuZ3RoO3IrKyl7dmFyIHA9Y1tyXTtwLnNob3dzY2FsZT0hMSxwLm1hcmtlciYmKHAubWFya2VyLnNob3dzY2FsZT0hMSksInBpZSI9PT1wLnR5cGUmJihwLnRleHRwb3NpdGlvbj0ibm9uZSIpfX1pZihBcnJheS5pc0FycmF5KGUuYW5ub3RhdGlvbnMpKWZvcihyPTA7cjxlLmFubm90YXRpb25zLmxlbmd0aDtyKyspaC5hbm5vdGF0aW9ucy5wdXNoKGUuYW5ub3RhdGlvbnNbcl0pO3ZhciBkPW8uUGxvdHMuZ2V0U3VicGxvdElkcyhoLCJnbDNkIik7aWYoZC5sZW5ndGgpe3ZhciBtPXt9O2ZvcigidGh1bWJuYWlsIj09PWUudGlsZUNsYXNzJiYobT17dGl0bGU6IiIsc2hvd2F4ZXNsYWJlbHM6ITEsc2hvd3RpY2tsYWJlbHM6ITEsbGluZXRpY2tlbmFibGU6ITF9KSxyPTA7cjxkLmxlbmd0aDtyKyspe3ZhciBnPWRbcl07YShoW2ddLnhheGlzLG0pLGEoaFtnXS55YXhpcyxtKSxhKGhbZ10uemF4aXMsbSksaFtnXS5fc2NlbmU9bnVsbH19dmFyIHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS50aWxlQ2xhc3MmJih2LmNsYXNzTmFtZT1lLnRpbGVDbGFzcyk7dmFyIHk9e3RkOnYsbGF5b3V0OmgsZGF0YTpjLGNvbmZpZzp7c3RhdGljUGxvdDp2b2lkIDA9PT1lLnN0YXRpY1Bsb3Q/ITA6ZS5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dm9pZCAwPT09ZS5wbG90R2xQaXhlbFJhdGlvPzI6ZS5wbG90R2xQaXhlbFJhdGlvLGRpc3BsYXlsb2dvOmUuZGlzcGxheWxvZ298fCExLHNob3dMaW5rOmUuc2hvd0xpbmt8fCExLHNob3dUaXBzOmUuc2hvd1RpcHN8fCExfX07cmV0dXJuInRyYW5zcGFyZW50IiE9PWUuc2V0QmFja2dyb3VuZCYmKHkuY29uZmlnLnNldEJhY2tncm91bmQ9ZS5zZXRCYWNrZ3JvdW5kfHwib3BhcXVlIikseS50ZC5kZWZhdWx0TGF5b3V0PW4oZS50aWxlQ2xhc3MpLHl9fSx7Ii4uL3Bsb3RseSI6NjEyfV0sNjg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtyZXR1cm4gZT1lfHx7fSxlLmZvcm1hdD1lLmZvcm1hdHx8InBuZyIsbmV3IFByb21pc2UoZnVuY3Rpb24ocixuKXt0Ll9zbmFwc2hvdEluUHJvZ3Jlc3MmJm4obmV3IEVycm9yKCJTbmFwc2hvdHRpbmcgYWxyZWFkeSBpbiBwcm9ncmVzcy4iKSksby5pc0lFKCkmJiJzdmciIT09ZS5mb3JtYXQmJm4obmV3IEVycm9yKCJTb3JyeSBJRSBkb2VzIG5vdCBzdXBwb3J0IGRvd25sb2FkaW5nIGZyb20gY2FudmFzLiBUcnkge2Zvcm1hdDonc3ZnJ30gaW5zdGVhZC4iKSksdC5fc25hcHNob3RJblByb2dyZXNzPSEwO3ZhciBzPWkodCxlKSxsPWUuZmlsZW5hbWV8fHQuZm58fCJuZXdwbG90IjtsKz0iLiIrZS5mb3JtYXQscy50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiB0Ll9zbmFwc2hvdEluUHJvZ3Jlc3M9ITEsYShlLGwpfSkudGhlbihmdW5jdGlvbih0KXtyKHQpfSkuY2F0Y2goZnVuY3Rpb24oZSl7dC5fc25hcHNob3RJblByb2dyZXNzPSExLG4oZSl9KX0pfXZhciBpPXQoIi4uL3Bsb3RfYXBpL3RvX2ltYWdlIiksbz10KCIuLi9saWIiKSxhPXQoIi4vZmlsZXNhdmVyIik7ZS5leHBvcnRzPW59LHsiLi4vbGliIjo1OTEsIi4uL3Bsb3RfYXBpL3RvX2ltYWdlIjo2MTAsIi4vZmlsZXNhdmVyIjo2ODd9XSw2ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49ZnVuY3Rpb24odCxlKXt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksbj0iZG93bmxvYWQiaW4gcixpPS9WZXJzaW9uXC9bXGRcLl0rLipTYWZhcmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksbz1uZXcgUHJvbWlzZShmdW5jdGlvbihvLGEpeyJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYvTVNJRSBbMS05XVwuLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZhKG5ldyBFcnJvcigiSUUgPCAxMCB1bnN1cHBvcnRlZCIpKSxpJiYoZG9jdW1lbnQubG9jYXRpb24uaHJlZj0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iK3Quc2xpY2UodC5zZWFyY2goL1ssO10vKSksbyhlKSksZXx8KGU9ImRvd25sb2FkIiksbiYmKHIuaHJlZj10LHIuZG93bmxvYWQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpLHIuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHIpLG8oZSkpLCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubXNTYXZlQmxvYiYmKG5hdmlnYXRvci5tc1NhdmVCbG9iKG5ldyBCbG9iKFt0XSksZSksbyhlKSksYShuZXcgRXJyb3IoImRvd25sb2FkIGVycm9yIikpfSk7cmV0dXJuIG99O2UuZXhwb3J0cz1ufSx7fV0sNjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQuX2hhcyYmKHQuX2hhcygiZ2wzZCIpfHx0Ll9oYXMoImdsMmQiKSk/NTAwOjB9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5kYXRhJiZ0LmRhdGFbMF0mJnQuZGF0YVswXS5yP3ZvaWQgMDpmdW5jdGlvbigpeyh0LmNhbGNkYXRhfHxbXSkuZm9yRWFjaChmdW5jdGlvbih0KXt0WzBdJiZ0WzBdLnQmJnRbMF0udC5jYiYmdFswXS50LmNiKCl9KX19dmFyIG89e2dldERlbGF5Om4sZ2V0UmVkcmF3RnVuYzppLGNsb25lOnQoIi4vY2xvbmVwbG90IiksdG9TVkc6dCgiLi90b3N2ZyIpLHN2Z1RvSW1nOnQoIi4vc3ZndG9pbWciKSx0b0ltYWdlOnQoIi4vdG9pbWFnZSIpLGRvd25sb2FkSW1hZ2U6dCgiLi9kb3dubG9hZCIpfTtlLmV4cG9ydHM9b30seyIuL2Nsb25lcGxvdCI6Njg1LCIuL2Rvd25sb2FkIjo2ODYsIi4vc3ZndG9pbWciOjY4OSwiLi90b2ltYWdlIjo2OTAsIi4vdG9zdmciOjY5MX1dLDY4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3ZhciBlPXQuZW1pdHRlcnx8bmV3IG8scj1uZXcgUHJvbWlzZShmdW5jdGlvbihuLG8pe3ZhciBhPXdpbmRvdy5JbWFnZSxzPXQuc3ZnLGw9dC5mb3JtYXR8fCJwbmciO2lmKGkuaXNJRSgpJiYocz1zLnJlcGxhY2UoLyIvZ2ksIiciKSxzPXMucmVwbGFjZSgvKFwoJyMpKC4qKSgnXCkpL2dpLCcoIiQyIiknKSxzPXMucmVwbGFjZSgvKFxcJykvZ2ksJyInKSwic3ZnIiE9PWwpKXt2YXIgdT1uZXcgRXJyb3IoIlNvcnJ5IElFIGRvZXMgbm90IHN1cHBvcnQgZG93bmxvYWRpbmcgZnJvbSBjYW52YXMuIFRyeSB7Zm9ybWF0OidzdmcnfSBpbnN0ZWFkLiIpO3JldHVybiBvKHUpLHQucHJvbWlzZT9yOmUuZW1pdCgiZXJyb3IiLHUpfXZhciBjPXQuY2FudmFzLGg9Yy5nZXRDb250ZXh0KCIyZCIpLGY9bmV3IGEscD0iZGF0YTppbWFnZS9zdmcreG1sLCIrZW5jb2RlVVJJQ29tcG9uZW50KHMpO2MuaGVpZ2h0PXQuaGVpZ2h0fHwxNTAsYy53aWR0aD10LndpZHRofHwzMDAsZi5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcjtzd2l0Y2goInN2ZyIhPT1sJiZoLmRyYXdJbWFnZShmLDAsMCksbCl7Y2FzZSJqcGVnIjpyPWMudG9EYXRhVVJMKCJpbWFnZS9qcGVnIik7YnJlYWs7Y2FzZSJwbmciOnI9Yy50b0RhdGFVUkwoImltYWdlL3BuZyIpO2JyZWFrO2Nhc2Uid2VicCI6cj1jLnRvRGF0YVVSTCgiaW1hZ2Uvd2VicCIpO2JyZWFrO2Nhc2Uic3ZnIjpyPXA7YnJlYWs7ZGVmYXVsdDppZihvKG5ldyBFcnJvcigiSW1hZ2UgZm9ybWF0IGlzIG5vdCBqcGVnLCBwbmcgb3Igc3ZnIikpLCF0LnByb21pc2UpcmV0dXJuIGUuZW1pdCgiZXJyb3IiLCJJbWFnZSBmb3JtYXQgaXMgbm90IGpwZWcsIHBuZyBvciBzdmciKX1uKHIpLHQucHJvbWlzZXx8ZS5lbWl0KCJzdWNjZXNzIixyKX0sZi5vbmVycm9yPWZ1bmN0aW9uKHIpe3JldHVybiBvKHIpLHQucHJvbWlzZT92b2lkIDA6ZS5lbWl0KCJlcnJvciIscil9LGYuc3JjPXB9KTtyZXR1cm4gdC5wcm9taXNlP3I6ZX12YXIgaT10KCIuLi9saWIiKSxvPXQoImV2ZW50cyIpLkV2ZW50RW1pdHRlcjtlLmV4cG9ydHM9bn0seyIuLi9saWIiOjU5MSxldmVudHM6NTZ9XSw2OTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Z1bmN0aW9uIHIoKXt2YXIgdD1uLmdldERlbGF5KHUuX2Z1bGxMYXlvdXQpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1vLlNuYXBzaG90LnRvU1ZHKHUpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ci5pZD1hLnJhbmRzdHIoKSxzPW8uU25hcHNob3Quc3ZnVG9JbWcoe2Zvcm1hdDplLmZvcm1hdCx3aWR0aDp1Ll9mdWxsTGF5b3V0LndpZHRoLGhlaWdodDp1Ll9mdWxsTGF5b3V0LmhlaWdodCxjYW52YXM6cixlbWl0dGVyOnMsc3ZnOnR9KSxzLmNsZWFuPWZ1bmN0aW9uKCl7dSYmZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh1KX19LHQpfXZhciBuPW8uU25hcHNob3Qscz1uZXcgaSxsPW4uY2xvbmUodCx7Zm9ybWF0OiJwbmcifSksdT1sLnRkO3Uuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix1LnN0eWxlLmxlZnQ9Ii01MDAwcHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSk7dmFyIGM9bi5nZXRSZWRyYXdGdW5jKHUpO3JldHVybiBvLnBsb3QodSxsLmRhdGEsbC5sYXlvdXQsbC5jb25maWcpLnRoZW4oYykudGhlbihyKS5jYXRjaChmdW5jdGlvbih0KXtzLmVtaXQoImVycm9yIix0KX0pLHN9dmFyIGk9dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyLG89dCgiLi4vcGxvdGx5IiksYT10KCIuLi9saWIiKTtlLmV4cG9ydHM9bn0seyIuLi9saWIiOjU5MSwiLi4vcGxvdGx5Ijo2MTIsZXZlbnRzOjU2fV0sNjkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCIuLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxvPXQoIi4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLHM9dCgiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixsPXQuX2Z1bGxMYXlvdXQsdT1sLl9wYXBlcixjPWwuX3RvcHBhcGVyO3UuaW5zZXJ0KCJyZWN0IiwiOmZpcnN0LWNoaWxkIikuY2FsbChvLnNldFJlY3QsMCwwLGwud2lkdGgsbC5oZWlnaHQpLmNhbGwoYS5maWxsLGwucGFwZXJfYmdjb2xvcik7dmFyIGg9bC5fYmFzZVBsb3RNb2R1bGVzfHxbXTtmb3Iocj0wO3I8aC5sZW5ndGg7cisrKXt2YXIgZj1oW3JdO2YudG9TVkcmJmYudG9TVkcodCl9aWYoYyl7dmFyIHA9Yy5ub2RlKCkuY2hpbGROb2RlcyxkPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHApO2ZvcihyPTA7cjxkLmxlbmd0aDtyKyspe3ZhciBtPWRbcl07bS5jaGlsZE5vZGVzLmxlbmd0aCYmdS5ub2RlKCkuYXBwZW5kQ2hpbGQobSl9fWwuX2RyYWdnZXJzJiZsLl9kcmFnZ2Vycy5yZW1vdmUoKSx1Lm5vZGUoKS5zdHlsZS5iYWNrZ3JvdW5kPSIiLHUuc2VsZWN0QWxsKCJ0ZXh0IikuYXR0cigiZGF0YS11bmZvcm1hdHRlZCIsbnVsbCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO2lmKCJoaWRkZW4iPT09dC5zdHlsZSgidmlzaWJpbGl0eSIpKXJldHVybiB2b2lkIHQucmVtb3ZlKCk7dmFyIGU9dC5zdHlsZSgiZm9udC1mYW1pbHkiKTtlJiYtMSE9PWUuaW5kZXhPZignIicpJiZ0LnN0eWxlKCJmb250LWZhbWlseSIsZS5yZXBsYWNlKC8iL2csIlRPQkVTVFJJUFBFRCIpKX0pLCJwZGYiIT09ZSYmImVwcyIhPT1lfHx1LnNlbGVjdEFsbCgiI01hdGhKYXhfU1ZHX2dseXBocyBwYXRoIikuYXR0cigic3Ryb2tlLXdpZHRoIiwwKSx1Lm5vZGUoKS5zZXRBdHRyaWJ1dGVOUyhzLnhtbG5zLCJ4bWxucyIscy5zdmcpLHUubm9kZSgpLnNldEF0dHJpYnV0ZU5TKHMueG1sbnMsInhtbG5zOnhsaW5rIixzLnhsaW5rKTt2YXIgZz0obmV3IHdpbmRvdy5YTUxTZXJpYWxpemVyKS5zZXJpYWxpemVUb1N0cmluZyh1Lm5vZGUoKSk7cmV0dXJuIGc9aS5odG1sX2VudGl0eV9kZWNvZGUoZyksZz1pLnhtbF9lbnRpdHlfZW5jb2RlKGcpLGc9Zy5yZXBsYWNlKC8oIlRPQkVTVFJJUFBFRCl8KFRPQkVTVFJJUFBFRCIpL2csIiciKX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi9jb21wb25lbnRzL2RyYXdpbmciOjUyOSwiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjU3OSwiLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo2MDQsZDM6MTI0fV0sNjkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLm1lcmdlQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1lLm1hcmtlcixpPXIubGluZTtuKGUudGV4dCx0LCJ0eCIpLG4oci5vcGFjaXR5LHQsIm1vIiksbihyLmNvbG9yLHQsIm1jIiksbihpLmNvbG9yLHQsIm1sYyIpLG4oaS53aWR0aCx0LCJtbHciKX19LHsiLi4vLi4vbGliIjo1OTF9XSw2OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY29sb3JfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT1uLm1hcmtlcixzPWEubGluZSxsPW8oe30scy53aWR0aCx7ZGZsdDowfSksdT1vKHt9LHt3aWR0aDpsfSxpKCJtYXJrZXIubGluZSIpKSxjPW8oe30se3Nob3dzY2FsZTphLnNob3dzY2FsZSxsaW5lOnV9LGkoIm1hcmtlciIpKTtlLmV4cG9ydHM9e3g6bi54LHgwOm4ueDAsZHg6bi5keCx5Om4ueSx5MDpuLnkwLGR5Om4uZHksdGV4dDpuLnRleHQsb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl19LG1hcmtlcjpjLHI6bi5yLHQ6bi50LF9uZXN0ZWRNb2R1bGVzOntlcnJvcl95OiJFcnJvckJhcnMiLGVycm9yX3g6IkVycm9yQmFycyIsIm1hcmtlci5jb2xvcmJhciI6IkNvbG9yYmFyIn0sX2RlcHJlY2F0ZWQ6e2JhcmRpcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidiIsImgiXX19fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY29sb3JfYXR0cmlidXRlcyI6NTE0LCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6NzczfV0sNjk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hhc19jb2xvcnNjYWxlIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLHMsbCx1PWkuZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxjPWkuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxoPWUub3JpZW50YXRpb258fChlLngmJiFlLnk/ImgiOiJ2Iik7ImgiPT09aD8ocz11Lm1ha2VDYWxjZGF0YShlLCJ4Iikscj1jLm1ha2VDYWxjZGF0YShlLCJ5IikpOihzPWMubWFrZUNhbGNkYXRhKGUsInkiKSxyPXUubWFrZUNhbGNkYXRhKGUsIngiKSk7dmFyIGY9TWF0aC5taW4oci5sZW5ndGgscy5sZW5ndGgpLHA9W107Zm9yKGw9MDtmPmw7bCsrKW4ocltsXSkmJnAucHVzaCh7cDpyW2xdLHM6c1tsXSxiOjB9KTtyZXR1cm4gbyhlLCJtYXJrZXIiKSYmYShlLGUubWFya2VyLmNvbG9yLCJtYXJrZXIiLCJjIiksbyhlLCJtYXJrZXIubGluZSIpJiZhKGUsZS5tYXJrZXIubGluZS5jb2xvciwibWFya2VyLmxpbmUiLCJjIikscH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjUxMywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hhc19jb2xvcnNjYWxlIjo1MTksIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsImZhc3QtaXNudW1lcmljIjoxMjh9XSw2OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIiksYT10KCIuLi9iYXIvc3R5bGVfZGVmYXVsdHMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZXJyb3JiYXJzL2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gYyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbCxyLGkpfXZhciBoPW8odCxlLGMpO3JldHVybiBoPyhjKCJvcmllbnRhdGlvbiIsZS54JiYhZS55PyJoIjoidiIpLGMoInRleHQiKSxhKHQsZSxjLHIsdSkscyh0LGUsaS5kZWZhdWx0TGluZSx7YXhpczoieSJ9KSx2b2lkIHModCxlLGkuZGVmYXVsdExpbmUse2F4aXM6IngiLGluaGVyaXQ6InkifSkpOnZvaWQoZS52aXNpYmxlPSExKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycy9kZWZhdWx0cyI6NTM0LCIuLi8uLi9saWIiOjU5MSwiLi4vYmFyL3N0eWxlX2RlZmF1bHRzIjo3MDMsIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiOjc5NCwiLi9hdHRyaWJ1dGVzIjo2OTN9XSw2OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0IiksaT10KCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgcyxsPXQuY2QsdT1sWzBdLnRyYWNlLGM9bFswXS50LGg9dC54YSxmPXQueWEscD0iY2xvc2VzdCI9PT1hP2MuYmFyd2lkdGgvMjpjLmRiYXIqKDEtaC5fZ2QuX2Z1bGxMYXlvdXQuYmFyZ2FwKS8yO3M9ImNsb3Nlc3QiIT09YT9mdW5jdGlvbih0KXtyZXR1cm4gdC5wfToiaCI9PT11Lm9yaWVudGF0aW9uP2Z1bmN0aW9uKHQpe3JldHVybiB0Lnl9OmZ1bmN0aW9uKHQpe3JldHVybiB0Lnh9O3ZhciBkLG07ImgiPT09dS5vcmllbnRhdGlvbj8oZD1mdW5jdGlvbih0KXtyZXR1cm4gbi5pbmJveCh0LmItZSx0LngtZSkrKHQueC1lKS8odC54LXQuYil9LG09ZnVuY3Rpb24odCl7dmFyIGU9cyh0KS1yO3JldHVybiBuLmluYm94KGUtcCxlK3ApfSk6KG09ZnVuY3Rpb24odCl7cmV0dXJuIG4uaW5ib3godC5iLXIsdC55LXIpKyh0LnktcikvKHQueS10LmIpfSxkPWZ1bmN0aW9uKHQpe3ZhciByPXModCktZTtyZXR1cm4gbi5pbmJveChyLXAscitwKX0pO3ZhciBnPW4uZ2V0RGlzdGFuY2VGdW5jdGlvbihhLGQsbSk7aWYobi5nZXRDbG9zZXN0KGwsZyx0KSx0LmluZGV4IT09ITEpe3ZhciB2PWxbdC5pbmRleF0seT12Lm1jY3x8dS5tYXJrZXIuY29sb3IsYj12Lm1sY2N8fHUubWFya2VyLmxpbmUuY29sb3IseD12Lm1sd3x8dS5tYXJrZXIubGluZS53aWR0aDtyZXR1cm4gby5vcGFjaXR5KHkpP3QuY29sb3I9eTpvLm9wYWNpdHkoYikmJngmJih0LmNvbG9yPWIpLCJoIj09PXUub3JpZW50YXRpb24/KHQueDA9dC54MT1oLmMycCh2LngsITApLHQueExhYmVsVmFsPXYucyx0LnkwPWYuYzJwKHModiktcCwhMCksdC55MT1mLmMycChzKHYpK3AsITApLHQueUxhYmVsVmFsPXYucCk6KHQueTA9dC55MT1mLmMycCh2LnksITApLHQueUxhYmVsVmFsPXYucyx0LngwPWguYzJwKHModiktcCwhMCksdC54MT1oLmMycChzKHYpK3AsITApLHQueExhYmVsVmFsPXYucCksdi50eCYmKHQudGV4dD12LnR4KSxpLmhvdmVySW5mbyh2LHUsdCksW3RdfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycyI6NTM1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMn1dLDY5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTtuLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbi5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxuLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLnN1cHBseUxheW91dERlZmF1bHRzPXQoIi4vbGF5b3V0X2RlZmF1bHRzIiksbi5jYWxjPXQoIi4vY2FsYyIpLG4uc2V0UG9zaXRpb25zPXQoIi4vc2V0X3Bvc2l0aW9ucyIpLG4uY29sb3JiYXI9dCgiLi4vc2NhdHRlci9jb2xvcmJhciIpLG4uYXJyYXlzVG9DYWxjZGF0YT10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLG4ucGxvdD10KCIuL3Bsb3QiKSxuLnN0eWxlPXQoIi4vc3R5bGUiKSxuLmhvdmVyUG9pbnRzPXQoIi4vaG92ZXIiKSxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9ImJhciIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCJiYXIiLCJvcmllbnRlZCIsIm1hcmtlckNvbG9yc2NhbGUiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiXSxuLm1ldGE9e30sZS5leHBvcnRzPW59LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo2MjMsIi4uL3NjYXR0ZXIvY29sb3JiYXIiOjc3NiwiLi9hcnJheXNfdG9fY2FsY2RhdGEiOjY5MiwiLi9hdHRyaWJ1dGVzIjo2OTMsIi4vY2FsYyI6Njk0LCIuL2RlZmF1bHRzIjo2OTUsIi4vaG92ZXIiOjY5NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6Njk4LCIuL2xheW91dF9kZWZhdWx0cyI6Njk5LCIuL3Bsb3QiOjcwMCwiLi9zZXRfcG9zaXRpb25zIjo3MDEsIi4vc3R5bGUiOjcwMn1dLDY5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2Jhcm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInN0YWNrIiwiZ3JvdXAiLCJvdmVybGF5IiwicmVsYXRpdmUiXSxkZmx0OiJncm91cCJ9LGJhcm5vcm06e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIiIsImZyYWN0aW9uIiwicGVyY2VudCJdLGRmbHQ6IiJ9LGJhcmdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX0sYmFyZ3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowfX19LHt9XSw2OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIHMocixuKXtyZXR1cm4gby5jb2VyY2UodCxlLGEscixuKX1mb3IodmFyIGw9ITEsdT0hMSxjPSExLGg9e30sZj0wO2Y8ci5sZW5ndGg7ZisrKXt2YXIgcD1yW2ZdO2lmKG4udHJhY2VJcyhwLCJiYXIiKSl7aWYobD0hMCwib3ZlcmxheSIhPT10LmJhcm1vZGUmJiJzdGFjayIhPT10LmJhcm1vZGUpe3ZhciBkPXAueGF4aXMrcC55YXhpcztoW2RdJiYoYz0hMCksaFtkXT0hMH1pZihwLnZpc2libGUmJiJoaXN0b2dyYW0iPT09cC50eXBlKXt2YXIgbT1pLmdldEZyb21JZCh7X2Z1bGxMYXlvdXQ6ZX0scFsidiI9PT1wLm9yaWVudGF0aW9uPyJ4YXhpcyI6InlheGlzIl0pOyJjYXRlZ29yeSIhPT1tLnR5cGUmJih1PSEwKX19fWlmKGwpe3ZhciBnPXMoImJhcm1vZGUiKTsib3ZlcmxheSIhPT1nJiZzKCJiYXJub3JtIikscygiYmFyZ2FwIix1JiYhYz8wOi4yKSxzKCJiYXJncm91cGdhcCIpfX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2NzEsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY5OH1dLDcwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxvPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKSxsPXQoIi4vYXJyYXlzX3RvX2NhbGNkYXRhIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgdT1lLngoKSxjPWUueSgpLGg9dC5fZnVsbExheW91dCxmPWUucGxvdC5zZWxlY3QoIi5iYXJsYXllciIpLnNlbGVjdEFsbCgiZy50cmFjZS5iYXJzIikuZGF0YShyKS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2UgYmFycyIpO2YuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwb2ludHMiKS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciByPWVbMF0udCxzPWVbMF0udHJhY2U7bChlKSxuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKG8uaWRlbnRpdHkpLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuZWFjaChmdW5jdGlvbihlKXtmdW5jdGlvbiBvKHQpe3JldHVybiAwPT09aC5iYXJnYXAmJjA9PT1oLmJhcmdyb3VwZ2FwP24ucm91bmQoTWF0aC5yb3VuZCh0KS12LDIpOnR9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBNYXRoLmFicyh0LWUpPj0yP28odCk6dD5lP01hdGguY2VpbCh0KTpNYXRoLmZsb29yKHQpfXZhciBmLHAsZCxtO2lmKCJoIj09PXMub3JpZW50YXRpb24/KGQ9Yy5jMnAoci5wb2Zmc2V0K2UucCwhMCksbT1jLmMycChyLnBvZmZzZXQrZS5wK3IuYmFyd2lkdGgsITApLGY9dS5jMnAoZS5iLCEwKSxwPXUuYzJwKGUucytlLmIsITApKTooZj11LmMycChyLnBvZmZzZXQrZS5wLCEwKSxwPXUuYzJwKHIucG9mZnNldCtlLnArci5iYXJ3aWR0aCwhMCksbT1jLmMycChlLnMrZS5iLCEwKSxkPWMuYzJwKGUuYiwhMCkpLCEoaShmKSYmaShwKSYmaShkKSYmaShtKSYmZiE9PXAmJmQhPT1tKSlyZXR1cm4gdm9pZCBuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKTt2YXIgZz0oZS5tbHcrMXx8cy5tYXJrZXIubGluZS53aWR0aCsxfHwoZS50cmFjZT9lLnRyYWNlLm1hcmtlci5saW5lLndpZHRoOjApKzEpLTEsdj1uLnJvdW5kKGcvMiUxLDIpO2lmKCF0Ll9jb250ZXh0LnN0YXRpY1Bsb3Qpe3ZhciB5PWEub3BhY2l0eShlLm1jfHxzLm1hcmtlci5jb2xvciksYj0xPnl8fGc+LjAxP286bDtmPWIoZixwKSxwPWIocCxmKSxkPWIoZCxtKSxtPWIobSxkKX1uLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrZisiLCIrZCsiViIrbSsiSCIrcCsiViIrZCsiWiIpfSl9KSxmLmNhbGwocy5wbG90LGUpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4uLy4uL2NvbXBvbmVudHMvZXJyb3JiYXJzIjo1MzUsIi4uLy4uL2xpYiI6NTkxLCIuL2FycmF5c190b19jYWxjZGF0YSI6NjkyLGQzOjEyNCwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDcwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixzLGw9dC5fZnVsbExheW91dCx1PWUueCgpLGM9ZS55KCk7WyJ2IiwiaCJdLmZvckVhY2goZnVuY3Rpb24oaCl7ZnVuY3Rpb24gZihlKXtmdW5jdGlvbiByKHQpe3RbZF09dC5wK2Z9dmFyIG49W107ZS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QuY2FsY2RhdGFbZV0uZm9yRWFjaChmdW5jdGlvbih0KXtuLnB1c2godC5wKX0pfSk7dmFyIGk9YS5kaXN0aW5jdFZhbHMobikscz1pLnZhbHMsdT1pLm1pbkRpZmYsYz0hMSxoPVtdOyJncm91cCI9PT1sLmJhcm1vZGUmJmUuZm9yRWFjaChmdW5jdGlvbihlKXtjfHwodC5jYWxjZGF0YVtlXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2N8fGguZm9yRWFjaChmdW5jdGlvbihlKXtNYXRoLmFicyh0LnAtZSk8dSYmKGM9ITApfSl9KSxjfHx0LmNhbGNkYXRhW2VdLmZvckVhY2goZnVuY3Rpb24odCl7aC5wdXNoKHQucCl9KSl9KSxvLm1pbkR0aWNrKGcsdSxzWzBdLGMpLG8uZXhwYW5kKGcscyx7dnBhZDp1LzJ9KSx1Kj0xLWwuYmFyZ2FwLGMmJih1Lz1wLmxlbmd0aCk7Zm9yKHZhciBmLG09MDttPGUubGVuZ3RoO20rKyl7dmFyIHY9dC5jYWxjZGF0YVtlW21dXVswXS50O3YuYmFyd2lkdGg9dSooMS1sLmJhcmdyb3VwZ2FwKSx2LnBvZmZzZXQ9KChjPygyKm0rMS1lLmxlbmd0aCkqdTowKS12LmJhcndpZHRoKS8yLHYuZGJhcj1pLm1pbkRpZmYsZj12LnBvZmZzZXQrdi5iYXJ3aWR0aC8yLHQuY2FsY2RhdGFbZVttXV0uZm9yRWFjaChyKX19dmFyIHA9W10sZD17djoieCIsaDoieSJ9W2hdLG09e3Y6InkiLGg6IngifVtoXSxnPWVbZF0oKSx2PWVbbV0oKTtpZih0Ll9mdWxsRGF0YS5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7dC52aXNpYmxlPT09ITAmJmkudHJhY2VJcyh0LCJiYXIiKSYmdC5vcmllbnRhdGlvbj09PWgmJnQueGF4aXM9PT11Ll9pZCYmdC55YXhpcz09PWMuX2lkJiZwLnB1c2goZSl9KSxwLmxlbmd0aCl7Im92ZXJsYXkiPT09bC5iYXJtb2RlP3AuZm9yRWFjaChmdW5jdGlvbih0KXtmKFt0XSl9KTpmKHApO3ZhciB5PSJzdGFjayI9PT1sLmJhcm1vZGUsYj0icmVsYXRpdmUiPT09bC5iYXJtb2RlLHg9bC5iYXJub3JtO2lmKHl8fGJ8fHgpe3ZhciBfLHcsTSxrPXYubDJjKHYuYzJsKDApKSxBPWssVD17fSxFPXQuY2FsY2RhdGFbcFswXV1bMF0udC5iYXJ3aWR0aC8xMDAsUz0wLEw9ITA7Zm9yKHI9MDtyPHAubGVuZ3RoO3IrKylmb3Iodz10LmNhbGNkYXRhW3Bbcl1dLHM9MDtzPHcubGVuZ3RoO3MrKylpZihuKHdbc10ucykpe1M9TWF0aC5yb3VuZCh3W3NdLnAvRSksYiYmd1tzXS5zPDAmJihTPSItIitTKTt2YXIgej1UW1NdfHwwOyh5fHxiKSYmKHdbc10uYj16KSxfPXdbc10uYit3W3NdLnMsVFtTXT16K3dbc10ucywoeXx8YikmJih3W3NdW21dPV8sIXgmJm4odi5jMmwoXykpJiYoaz1NYXRoLm1heChrLF8pLEE9TWF0aC5taW4oQSxfKSkpfWlmKHgpe3ZhciBJPSJmcmFjdGlvbiI9PT14PzE6MTAwLFA9ITEsQz1JLzFlOTtmb3IoTD0hMSxBPTAsaz15P0k6MCxyPTA7cjxwLmxlbmd0aDtyKyspZm9yKHc9dC5jYWxjZGF0YVtwW3JdXSxzPTA7czx3Lmxlbmd0aDtzKyspUD1iJiZ3W3NdLnM8MCxTPU1hdGgucm91bmQod1tzXS5wL0UpLFAmJihTPSItIitTKSxNPUkvVFtTXSxQJiYoTSo9LTEpLHdbc10uYio9TSx3W3NdLnMqPU0sXz13W3NdLmIrd1tzXS5zLHdbc11bbV09XyxuKHYuYzJsKF8pKSYmKEEtQz5fJiYoTD0hMCxBPV8pLF8+aytDJiYoTD0hMCxrPV8pKX1vLmV4cGFuZCh2LFtBLGtdLHt0b3plcm86ITAscGFkZGVkOkx9KX1lbHNle3ZhciBSPWZ1bmN0aW9uKHQpe3JldHVybiB0W21dPXQucyx0LnN9O2ZvcihyPTA7cjxwLmxlbmd0aDtyKyspby5leHBhbmQodix0LmNhbGNkYXRhW3Bbcl1dLm1hcChSKSx7dG96ZXJvOiEwLHBhZGRlZDohMH0pfX19KX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2NzEsImZhc3QtaXNudW1lcmljIjoxMjh9XSw3MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLmJhcnMiKSxyPWUuc2l6ZSgpLHM9dC5fZnVsbExheW91dDtlLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkuZWFjaChmdW5jdGlvbih0KXsoInN0YWNrIj09PXMuYmFybW9kZSYmcj4xfHwwPT09cy5iYXJnYXAmJjA9PT1zLmJhcmdyb3VwZ2FwJiYhdFswXS50cmFjZS5tYXJrZXIubGluZS53aWR0aCkmJm4uc2VsZWN0KHRoaXMpLmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKX0pLGUuc2VsZWN0QWxsKCJnLnBvaW50cyIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPWUubWFya2VyLGE9ci5saW5lLHM9KGUuX2lucHV0fHx7fSkubWFya2VyfHx7fSxsPW8udHJ5Q29sb3JzY2FsZShyLHMsIiIpLHU9by50cnlDb2xvcnNjYWxlKHIscywibGluZS4iKTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlLG8scz0odC5tbHcrMXx8YS53aWR0aCsxKS0xLGM9bi5zZWxlY3QodGhpcyk7ZT0ibWMiaW4gdD90Lm1jYz1sKHQubWMpOkFycmF5LmlzQXJyYXkoci5jb2xvcik/aS5kZWZhdWx0TGluZTpyLmNvbG9yLGMuc3R5bGUoInN0cm9rZS13aWR0aCIscysicHgiKS5jYWxsKGkuZmlsbCxlKSxzJiYobz0ibWxjImluIHQ/dC5tbGNjPXUodC5tbGMpOkFycmF5LmlzQXJyYXkoYS5jb2xvcik/aS5kZWZhdWx0TGluZTphLmNvbG9yLGMuY2FsbChpLnN0cm9rZSxvKSl9KX0pLGUuY2FsbChhLnN0eWxlKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjUyOSwiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMiOjUzNSxkMzoxMjR9XSw3MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hhc19jb2xvcnNjYWxlIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxzKXtyKCJtYXJrZXIuY29sb3IiLGEpLGkodCwibWFya2VyIikmJm8odCxlLHMscix7cHJlZml4OiJtYXJrZXIuIixjTGV0dGVyOiJjIn0pLHIoIm1hcmtlci5saW5lLmNvbG9yIixuLmRlZmF1bHRMaW5lKSxpKHQsIm1hcmtlci5saW5lIikmJm8odCxlLHMscix7cHJlZml4OiJtYXJrZXIubGluZS4iLGNMZXR0ZXI6ImMifSkscigibWFya2VyLmxpbmUud2lkdGgiKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjUxNiwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hhc19jb2xvcnNjYWxlIjo1MTl9XSw3MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9bi5tYXJrZXIscz1hLmxpbmU7ZS5leHBvcnRzPXt5Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seDp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHgwOnt2YWxUeXBlOiJhbnkifSx5MDp7dmFsVHlwZToiYW55In0sd2hpc2tlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjV9LGJveHBvaW50czp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwib3V0bGllcnMiLCJzdXNwZWN0ZWRvdXRsaWVycyIsITFdLGRmbHQ6Im91dGxpZXJzIn0sYm94bWVhbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwic2QiLCExXSxkZmx0OiExfSxqaXR0ZXI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjF9LHBvaW50cG9zOnt2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6Mn0sb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl19LG1hcmtlcjp7b3V0bGllcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLCAwLCAwLCAwKSJ9LHN5bWJvbDpvKHt9LGEuc3ltYm9sLHthcnJheU9rOiExfSksb3BhY2l0eTpvKHt9LGEub3BhY2l0eSx7YXJyYXlPazohMSxkZmx0OjF9KSxzaXplOm8oe30sYS5zaXplLHthcnJheU9rOiExfSksY29sb3I6byh7fSxhLmNvbG9yLHthcnJheU9rOiExfSksbGluZTp7Y29sb3I6byh7fSxzLmNvbG9yLHthcnJheU9rOiExLGRmbHQ6aS5kZWZhdWx0TGluZX0pLHdpZHRoOm8oe30scy53aWR0aCx7YXJyYXlPazohMSxkZmx0OjB9KSxvdXRsaWVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIn0sb3V0bGllcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX19fSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjJ9fSxmaWxsY29sb3I6bi5maWxsY29sb3J9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTA1LCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6NzczfV0sNzA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LGUscixvLGEpe3ZhciBzO3JldHVybiByIGluIGU/ZD1vLm1ha2VDYWxjZGF0YShlLHIpOihzPXIrIjAiaW4gZT9lW3IrIjAiXToibmFtZSJpbiBlJiYoImNhdGVnb3J5Ij09PW8udHlwZXx8bihlLm5hbWUpJiYtMSE9PVsibGluZWFyIiwibG9nIl0uaW5kZXhPZihvLnR5cGUpfHxpLmlzRGF0ZVRpbWUoZS5uYW1lKSYmImRhdGUiPT09by50eXBlKT9lLm5hbWU6dC5udW1ib3hlcyxzPW8uZDJjKHMpLGQ9YS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gc30pKSxkfWZ1bmN0aW9uIGEodCxlLHIsbyxhKXt2YXIgcyxsLHUsYyxoPW8ubGVuZ3RoLGY9ZS5sZW5ndGgscD1bXSxkPVtdO2ZvcihzPTA7aD5zOysrcylsPW9bc10sdFtzXT17cG9zOmx9LGRbc109bC1hLHBbc109W107Zm9yKGQucHVzaChvW2gtMV0rYSkscz0wO2Y+czsrK3MpYz1lW3NdLG4oYykmJih1PWkuZmluZEJpbihyW3NdLGQpLHU+PTAmJmY+dSYmcFt1XS5wdXNoKGMpKTtyZXR1cm4gcH1mdW5jdGlvbiBzKHQsZSl7dmFyIHIsbixvLGE7Zm9yKGE9MDthPGUubGVuZ3RoOysrYSlyPWVbYV0uc29ydChpLnNvcnRlckFzYyksbj1yLmxlbmd0aCxvPXRbYV0sby52YWw9cixvLm1pbj1yWzBdLG8ubWF4PXJbbi0xXSxvLm1lYW49aS5tZWFuKHIsbiksby5zZD1pLnN0ZGV2KHIsbixvLm1lYW4pLG8ucTE9aS5pbnRlcnAociwuMjUpLG8ubWVkPWkuaW50ZXJwKHIsLjUpLG8ucTM9aS5pbnRlcnAociwuNzUpLG8ubGY9TWF0aC5taW4oby5xMSxyW01hdGgubWluKGkuZmluZEJpbigyLjUqby5xMS0xLjUqby5xMyxyLCEwKSsxLG4tMSldKSxvLnVmPU1hdGgubWF4KG8ucTMscltNYXRoLm1heChpLmZpbmRCaW4oMi41Km8ucTMtMS41Km8ucTEsciksMCldKSxvLmxvPTQqby5xMS0zKm8ucTMsby51bz00Km8ucTMtMypvLnExfXZhciBsLHUsYyxoLGYscCxkLG0sZyx2PW8uZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSx5PW8uZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxiPWUub3JpZW50YXRpb24seD1bXTsiaCI9PT1iPyhsPXYsdT0ieCIsZj15LHA9InkiKToobD15LHU9InkiLGY9dixwPSJ4IiksYz1sLm1ha2VDYWxjZGF0YShlLHUpLG8uZXhwYW5kKGwsYyx7cGFkZGVkOiEwfSksZD1yKHQsZSxwLGYsYyk7dmFyIF89aS5kaXN0aW5jdFZhbHMoZCk7cmV0dXJuIG09Xy52YWxzLGc9Xy5taW5EaWZmLzIsaD1hKHgsYyxkLG0sZykscyh4LGgpLHg9eC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsJiZ0LnZhbC5sZW5ndGh9KSx4Lmxlbmd0aD8oeFswXS50PXtib3hudW06dC5udW1ib3hlcyxkUG9zOmd9LHQubnVtYm94ZXMrKyx4KTpbe3Q6e2VtcHR5Ym94OiEwfX1dfX0seyIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiZmFzdC1pc251bWVyaWMiOjEyOH1dLDcwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gYShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfXZhciBzLGw9YSgieSIpLHU9YSgieCIpO2lmKGwmJmwubGVuZ3RoKXM9InYiLHV8fGEoIngwIik7ZWxzZXtpZighdXx8IXUubGVuZ3RoKXJldHVybiB2b2lkKGUudmlzaWJsZT0hMSk7cz0iaCIsYSgieTAiKX1hKCJvcmllbnRhdGlvbiIscyksYSgibGluZS5jb2xvciIsKHQubWFya2VyfHx7fSkuY29sb3J8fHIpLGEoImxpbmUud2lkdGgiLDIpLGEoImZpbGxjb2xvciIsaS5hZGRPcGFjaXR5KGUubGluZS5jb2xvciwuNSkpLGEoIndoaXNrZXJ3aWR0aCIpLGEoImJveG1lYW4iKTt2YXIgYz1uLmNvZXJjZTIodCxlLG8sIm1hcmtlci5vdXRsaWVyY29sb3IiKSxoPWEoIm1hcmtlci5saW5lLm91dGxpZXJjb2xvciIpLGY9Y3x8aD9hKCJib3hwb2ludHMiLCJzdXNwZWN0ZWRvdXRsaWVycyIpOmEoImJveHBvaW50cyIpO2YmJihhKCJqaXR0ZXIiLCJhbGwiPT09Zj8uMzowKSxhKCJwb2ludHBvcyIsImFsbCI9PT1mPy0xLjU6MCksYSgibWFya2VyLnN5bWJvbCIpLGEoIm1hcmtlci5vcGFjaXR5IiksYSgibWFya2VyLnNpemUiKSxhKCJtYXJrZXIuY29sb3IiLGUubGluZS5jb2xvciksYSgibWFya2VyLmxpbmUuY29sb3IiKSxhKCJtYXJrZXIubGluZS53aWR0aCIpLCJzdXNwZWN0ZWRvdXRsaWVycyI9PT1mJiYoYSgibWFya2VyLmxpbmUub3V0bGllcmNvbG9yIixlLm1hcmtlci5jb2xvciksYSgibWFya2VyLmxpbmUub3V0bGllcndpZHRoIikpKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9saWIiOjU5MSwiLi9hdHRyaWJ1dGVzIjo3MDR9XSw3MDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCIpLG89dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3ZhciBsLHUsYyxoLGYscCxkLG0sZyx2PXQuY2QseT12WzBdLnRyYWNlLGI9dlswXS50LHg9dC54YSxfPXQueWEsdz1bXTtpZihoPSJjbG9zZXN0Ij09PXM/Mi41KmIuYmRQb3M6Yi5iZFBvcywiaCI9PT15Lm9yaWVudGF0aW9uPyhsPWZ1bmN0aW9uKHQpe3JldHVybiBpLmluYm94KHQubWluLWUsdC5tYXgtZSl9LHU9ZnVuY3Rpb24odCl7dmFyIGU9dC5wb3MrYi5iUG9zLXI7cmV0dXJuIGkuaW5ib3goZS1oLGUraCl9LGY9InkiLHA9XyxtPSJ4IixnPXgpOihsPWZ1bmN0aW9uKHQpe3ZhciByPXQucG9zK2IuYlBvcy1lO3JldHVybiBpLmluYm94KHItaCxyK2gpfSx1PWZ1bmN0aW9uKHQpe3JldHVybiBpLmluYm94KHQubWluLXIsdC5tYXgtcil9LGY9IngiLHA9eCxtPSJ5IixnPV8pLGM9aS5nZXREaXN0YW5jZUZ1bmN0aW9uKHMsbCx1KSxpLmdldENsb3Nlc3QodixjLHQpLHQuaW5kZXghPT0hMSl7dmFyIE09dlt0LmluZGV4XSxrPXkubGluZS5jb2xvcixBPSh5Lm1hcmtlcnx8e30pLmNvbG9yO2Eub3BhY2l0eShrKSYmeS5saW5lLndpZHRoP3QuY29sb3I9azphLm9wYWNpdHkoQSkmJnkuYm94cG9pbnRzP3QuY29sb3I9QTp0LmNvbG9yPXkuZmlsbGNvbG9yLHRbZisiMCJdPXAuYzJwKE0ucG9zK2IuYlBvcy1iLmJkUG9zLCEwKSx0W2YrIjEiXT1wLmMycChNLnBvcytiLmJQb3MrYi5iZFBvcywhMCksbi50aWNrVGV4dChwLHAuYzJsKE0ucG9zKSwiaG92ZXIiKS50ZXh0LHRbZisiTGFiZWxWYWwiXT1NLnBvczt2YXIgVCxFLFM9e30sTD1bIm1lZCIsIm1pbiIsInExIiwicTMiLCJtYXgiXTt5LmJveG1lYW4mJkwucHVzaCgibWVhbiIpLHkuYm94cG9pbnRzJiZbXS5wdXNoLmFwcGx5KEwsWyJsZiIsInVmIl0pO2Zvcih2YXIgej0wO3o8TC5sZW5ndGg7eisrKVQ9TFt6XSxUIGluIE0mJiEoTVtUXWluIFMpJiYoU1tNW1RdXT0hMCxkPWcuYzJwKE1bVF0sITApLEU9by5leHRlbmRGbGF0KHt9LHQpLEVbbSsiMCJdPUVbbSsiMSJdPWQsRVttKyJMYWJlbFZhbCJdPU1bVF0sRS5hdHRyPVQsIm1lYW4iPT09VCYmInNkImluIE0mJiJzZCI9PT15LmJveG1lYW4mJihFW20rImVyciJdPU0uc2QpLHQubmFtZT0iIix3LnB1c2goRSkpO3JldHVybiB3fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Ijo2MjJ9XSw3MDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307bi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4ubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksbi5zdXBwbHlEZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksbi5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLnNldFBvc2l0aW9ucz10KCIuL3NldF9wb3NpdGlvbnMiKSxuLnBsb3Q9dCgiLi9wbG90Iiksbi5zdHlsZT10KCIuL3N0eWxlIiksbi5ob3ZlclBvaW50cz10KCIuL2hvdmVyIiksbi5tb2R1bGVUeXBlPSJ0cmFjZSIsbi5uYW1lPSJib3giLG4uYmFzZVBsb3RNb2R1bGU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksbi5jYXRlZ29yaWVzPVsiY2FydGVzaWFuIiwic3ltYm9scyIsIm9yaWVudGVkIiwiYm94Iiwic2hvd0xlZ2VuZCJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjYyMywiLi9hdHRyaWJ1dGVzIjo3MDQsIi4vY2FsYyI6NzA1LCIuL2RlZmF1bHRzIjo3MDYsIi4vaG92ZXIiOjcwNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6NzA5LCIuL2xheW91dF9kZWZhdWx0cyI6NzEwLCIuL3Bsb3QiOjcxMSwiLi9zZXRfcG9zaXRpb25zIjo3MTIsIi4vc3R5bGUiOjcxM31dLDcwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2JveG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImdyb3VwIiwib3ZlcmxheSJdLGRmbHQ6Im92ZXJsYXkifSxib3hnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouM30sYm94Z3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouM319fSx7fV0sNzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGEocixuKXtyZXR1cm4gaS5jb2VyY2UodCxlLG8scixuKX1mb3IodmFyIHMsbD0wO2w8ci5sZW5ndGg7bCsrKWlmKG4udHJhY2VJcyhyW2xdLCJib3giKSl7cz0hMDticmVha31zJiYoYSgiYm94bW9kZSIpLGEoImJveGdhcCIpLGEoImJveGdyb3VwZ2FwIikpfX0seyIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NzA5fV0sNzExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtsPTJlOX1mdW5jdGlvbiBpKCl7dmFyIHQ9bDtyZXR1cm4gbD0oNjkwNjkqbCsxKSU0Mjk0OTY3Mjk2LE1hdGguYWJzKGwtdCk8NDI5NDk2NzI5P2koKTpsLzQyOTQ5NjcyOTZ9dmFyIG89dCgiZDMiKSxhPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbD0yZTksdT01LGM9LjAxO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGwsaCxmPXQuX2Z1bGxMYXlvdXQscD1lLngoKSxkPWUueSgpLG09ZS5wbG90LnNlbGVjdCgiLmJveGxheWVyIikuc2VsZWN0QWxsKCJnLnRyYWNlLmJveGVzIikuZGF0YShyKS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2UgYm94ZXMiKTttLmVhY2goZnVuY3Rpb24oZSl7dmFyIHI9ZVswXS50LG09ZVswXS50cmFjZSxnPSJncm91cCI9PT1mLmJveG1vZGUmJnQubnVtYm94ZXM+MSx2PXIuZFBvcyooMS1mLmJveGdhcCkqKDEtZi5ib3hncm91cGdhcCkvKGc/dC5udW1ib3hlczoxKSx5PWc/MipyLmRQb3MqKC0uNSsoci5ib3hudW0rLjUpL3QubnVtYm94ZXMpKigxLWYuYm94Z2FwKTowLGI9diptLndoaXNrZXJ3aWR0aDtyZXR1cm4gbS52aXNpYmxlIT09ITB8fHIuZW1wdHlib3g/dm9pZCBvLnNlbGVjdCh0aGlzKS5yZW1vdmUoKTooImgiPT09bS5vcmllbnRhdGlvbj8obD1kLGg9cCk6KGw9cCxoPWQpLHIuYlBvcz15LHIuYmRQb3M9dixuKCksby5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoLmJveCIpLmRhdGEoYS5pZGVudGl0eSkuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsImJveCIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9bC5jMnAodC5wb3MreSwhMCkscj1sLmMycCh0LnBvcyt5LXYsITApLG49bC5jMnAodC5wb3MreSt2LCEwKSxpPWwuYzJwKHQucG9zK3ktYiwhMCkscz1sLmMycCh0LnBvcyt5K2IsITApLHU9aC5jMnAodC5xMSwhMCksYz1oLmMycCh0LnEzLCEwKSxmPWEuY29uc3RyYWluKGguYzJwKHQubWVkLCEwKSxNYXRoLm1pbih1LGMpKzEsTWF0aC5tYXgodSxjKS0xKSxwPWguYzJwKG0uYm94cG9pbnRzPT09ITE/dC5taW46dC5sZiwhMCksZD1oLmMycChtLmJveHBvaW50cz09PSExP3QubWF4OnQudWYsITApOyJoIj09PW0ub3JpZW50YXRpb24/by5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK2YrIiwiK3IrIlYiK24rIk0iK3UrIiwiK3IrIlYiK24rIkgiK2MrIlYiK3IrIlpNIit1KyIsIitlKyJIIitwKyJNIitjKyIsIitlKyJIIitkKygwPT09bS53aGlza2Vyd2lkdGg/IiI6Ik0iK3ArIiwiK2krIlYiK3MrIk0iK2QrIiwiK2krIlYiK3MpKTpvLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrcisiLCIrZisiSCIrbisiTSIrcisiLCIrdSsiSCIrbisiViIrYysiSCIrcisiWk0iK2UrIiwiK3UrIlYiK3ArIk0iK2UrIiwiK2MrIlYiK2QrKDA9PT1tLndoaXNrZXJ3aWR0aD8iIjoiTSIraSsiLCIrcCsiSCIrcysiTSIraSsiLCIrZCsiSCIrcykpfSksbS5ib3hwb2ludHMmJm8uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5wb2ludHMiKS5kYXRhKGZ1bmN0aW9uKHQpe3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24odCl7dC50PXIsdC50cmFjZT1tfSksdH0pLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLHMsbCxoLGY9ImFsbCI9PT1tLmJveHBvaW50cz90LnZhbDp0LnZhbC5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGU8dC5sZnx8ZT50LnVmfSkscD0odC5xMy10LnExKSpjLGQ9W10sZz0wO2lmKG0uaml0dGVyKXtmb3IoZT0wO2U8Zi5sZW5ndGg7ZSsrKXI9TWF0aC5tYXgoMCxlLXUpLG89ZltyXSxuPU1hdGgubWluKGYubGVuZ3RoLTEsZSt1KSxzPWZbbl0sImFsbCIhPT1tLmJveHBvaW50cyYmKGZbZV08dC5sZj9zPU1hdGgubWluKHMsdC5sZik6bz1NYXRoLm1heChvLHQudWYpKSxsPU1hdGguc3FydChwKihuLXIpLyhzLW8pKXx8MCxsPWEuY29uc3RyYWluKE1hdGguYWJzKGwpLDAsMSksZC5wdXNoKGwpLGc9TWF0aC5tYXgobCxnKTtoPTIqbS5qaXR0ZXIvZ31yZXR1cm4gZi5tYXAoZnVuY3Rpb24oZSxyKXt2YXIgbixvPW0ucG9pbnRwb3M7cmV0dXJuIG0uaml0dGVyJiYobys9aCpkW3JdKihpKCktLjUpKSxuPSJoIj09PW0ub3JpZW50YXRpb24/e3k6dC5wb3Mrbyp2K3kseDplfTp7eDp0LnBvcytvKnYreSx5OmV9LCJzdXNwZWN0ZWRvdXRsaWVycyI9PT1tLmJveHBvaW50cyYmZTx0LnVvJiZlPnQubG8mJihuLnNvPSEwKSxufSl9KS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNhbGwocy50cmFuc2xhdGVQb2ludHMscCxkKSx2b2lkKG0uYm94bWVhbiYmby5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoLm1lYW4iKS5kYXRhKGEuaWRlbnRpdHkpLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJtZWFuIikuc3R5bGUoImZpbGwiLCJub25lIikuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1sLmMycCh0LnBvcyt5LCEwKSxyPWwuYzJwKHQucG9zK3ktdiwhMCksbj1sLmMycCh0LnBvcyt5K3YsITApLGk9aC5jMnAodC5tZWFuLCEwKSxhPWguYzJwKHQubWVhbi10LnNkLCEwKSxzPWguYzJwKHQubWVhbit0LnNkLCEwKTsiaCI9PT1tLm9yaWVudGF0aW9uP28uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJNIitpKyIsIityKyJWIituKygic2QiIT09bS5ib3htZWFuPyIiOiJtMCwwTCIrYSsiLCIrZSsiTCIraSsiLCIrcisiTCIrcysiLCIrZSsiWiIpKTpvLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrcisiLCIraSsiSCIrbisoInNkIiE9PW0uYm94bWVhbj8iIjoibTAsMEwiK2UrIiwiK2ErIkwiK3IrIiwiK2krIkwiK2UrIiwiK3MrIloiKSl9KSkpfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NTI5LCIuLi8uLi9saWIiOjU5MSxkMzoxMjR9XSw3MTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhLHMsbCx1PXQuX2Z1bGxMYXlvdXQsYz1lLngoKSxoPWUueSgpLGY9WyJ2IiwiaCJdO2ZvcihhPTA7YTxmLmxlbmd0aDsrK2Epe3ZhciBwLGQsbSxnPWZbYV0sdj1bXSx5PVtdLGI9MCx4PTA7Zm9yKHI9ImgiPT09Zz9oOmMscz0wO3M8dC5jYWxjZGF0YS5sZW5ndGg7KytzKXA9dC5jYWxjZGF0YVtzXSxkPXBbMF0udCxtPXBbMF0udHJhY2UsbS52aXNpYmxlPT09ITAmJm4udHJhY2VJcyhtLCJib3giKSYmIWQuZW1wdHlib3gmJm0ub3JpZW50YXRpb249PT1nJiZtLnhheGlzPT09Yy5faWQmJm0ueWF4aXM9PT1oLl9pZCYmKHYucHVzaChzKSxtLmJveHBvaW50cyE9PSExJiYoYj1NYXRoLm1heChiLG0uaml0dGVyLW0ucG9pbnRwb3MtMSkseD1NYXRoLm1heCh4LG0uaml0dGVyK20ucG9pbnRwb3MtMSkpKTtmb3Iocz0wO3M8di5sZW5ndGg7cysrKWZvcihwPXQuY2FsY2RhdGFbdltzXV0sbD0wO2w8cC5sZW5ndGg7bCsrKXkucHVzaChwW2xdLnBvcyk7aWYoeS5sZW5ndGgpe3ZhciBfPW8uZGlzdGluY3RWYWxzKHkpLHc9Xy5taW5EaWZmLzI7Zm9yKHkubGVuZ3RoPT09Xy52YWxzLmxlbmd0aCYmKHQubnVtYm94ZXM9MSksaS5taW5EdGljayhyLF8ubWluRGlmZixfLnZhbHNbMF0sITApLGE9MDthPHYubGVuZ3RoOysrYSl0LmNhbGNkYXRhW2FdWzBdLnQuZFBvcz13O3ZhciBNPSgxLXUuYm94Z2FwKSooMS11LmJveGdyb3VwZ2FwKSp3L3QubnVtYm94ZXM7aS5leHBhbmQocixfLnZhbHMse3ZwYWRtaW51czp3K2IqTSx2cGFkcGx1czp3K3gqTX0pfX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi8uLi9wbG90cy9wbG90cyI6NjcxfV0sNzEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLmJveGVzIik7ZS5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPWUubGluZS53aWR0aDtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGguYm94Iikuc3R5bGUoInN0cm9rZS13aWR0aCIscisicHgiKS5jYWxsKGkuc3Ryb2tlLGUubGluZS5jb2xvcikuY2FsbChpLmZpbGwsZS5maWxsY29sb3IpLG4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aC5tZWFuIikuc3R5bGUoeyJzdHJva2Utd2lkdGgiOnIsInN0cm9rZS1kYXNoYXJyYXkiOjIqcisicHgsIityKyJweCJ9KS5jYWxsKGkuc3Ryb2tlLGUubGluZS5jb2xvciksbi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnBvaW50cyBwYXRoIikuY2FsbChvLnBvaW50U3R5bGUsZSl9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LAoiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksZDM6MTI0fV0sNzE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXJnZW8vYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9bi5tYXJrZXIubGluZTtlLmV4cG9ydHM9YSh7fSx7bG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sbG9jYXRpb25tb2RlOm4ubG9jYXRpb25tb2RlLHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sbWFya2VyOntsaW5lOntjb2xvcjpzLmNvbG9yLHdpZHRoOnMud2lkdGh9fSxob3ZlcmluZm86YSh7fSxvLmhvdmVyaW5mbyx7ZmxhZ3M6WyJsb2NhdGlvbiIsInoiLCJ0ZXh0IiwibmFtZSJdfSksX25lc3RlZE1vZHVsZXM6e2NvbG9yYmFyOiJDb2xvcmJhciJ9fSxpKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTEyLCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjYxMywiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIjo4MDF9XSw3MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtuKGUsZS56LCIiLCJ6Iil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo1MTN9XSw3MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxvLHIsaSl9dmFyIGwsdT1zKCJsb2NhdGlvbnMiKTtpZih1JiYobD11Lmxlbmd0aCksIXV8fCFsKXJldHVybiB2b2lkKGUudmlzaWJsZT0hMSk7dmFyIGM9cygieiIpO3JldHVybiBBcnJheS5pc0FycmF5KGMpPyhjLmxlbmd0aD5sJiYoZS56PWMuc2xpY2UoMCxsKSkscygibG9jYXRpb25tb2RlIikscygidGV4dCIpLHMoIm1hcmtlci5saW5lLmNvbG9yIikscygibWFya2VyLmxpbmUud2lkdGgiKSxpKHQsZSxhLHMse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pLHZvaWQgcygiaG92ZXJpbmZvIiwxPT09YS5fZGF0YUxlbmd0aD8ibG9jYXRpb24reit0ZXh0Ijp2b2lkIDApKTp2b2lkKGUudmlzaWJsZT0hMSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NTE2LCIuLi8uLi9saWIiOjU5MSwiLi9hdHRyaWJ1dGVzIjo3MTR9XSw3MTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307bi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uY29sb3JiYXI9dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLnBsb3Q9dCgiLi9wbG90IikucGxvdCxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9ImNob3JvcGxldGgiLG4uYmFzZVBsb3RNb2R1bGU9dCgiLi4vLi4vcGxvdHMvZ2VvIiksbi5jYXRlZ29yaWVzPVsiZ2VvIiwibm9PcGFjaXR5Il0sbi5tZXRhPXt9LGUuZXhwb3J0cz1ufSx7Ii4uLy4uL3Bsb3RzL2dlbyI6NjM2LCIuLi9oZWF0bWFwL2NvbG9yYmFyIjo3MzEsIi4vYXR0cmlidXRlcyI6NzE0LCIuL2NhbGMiOjcxNSwiLi9kZWZhdWx0cyI6NzE2LCIuL3Bsb3QiOjcxOH1dLDcxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7ZnVuY3Rpb24gcihlKXt2YXIgcj10Lm1vY2tBeGlzO3JldHVybiBhLnRpY2tUZXh0KHIsci5jMmwoZSksImhvdmVyIikudGV4dH12YXIgbj1lLmhvdmVyaW5mbztpZigibm9uZSI9PT1uKXJldHVybiBmdW5jdGlvbih0KXtkZWxldGUgdC5uYW1lTGFiZWwsZGVsZXRlIHQudGV4dExhYmVsfTt2YXIgaT0iYWxsIj09PW4/Zy5ob3ZlcmluZm8uZmxhZ3M6bi5zcGxpdCgiKyIpLG89LTEhPT1pLmluZGV4T2YoIm5hbWUiKSxzPS0xIT09aS5pbmRleE9mKCJsb2NhdGlvbiIpLGw9LTEhPT1pLmluZGV4T2YoInoiKSx1PS0xIT09aS5pbmRleE9mKCJ0ZXh0IiksYz0hbyYmcztyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG49W107Yz90Lm5hbWVMYWJlbD10LmlkOihvJiYodC5uYW1lTGFiZWw9ZS5uYW1lKSxzJiZuLnB1c2godC5pZCkpLGwmJm4ucHVzaChyKHQueikpLHUmJm4ucHVzaCh0LnR4KSx0LnRleHRMYWJlbD1uLmpvaW4oIjxicj4iKX19ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm57cG9pbnRzOlt7ZGF0YTp0Ll9pbnB1dCxmdWxsRGF0YTp0LGN1cnZlTnVtYmVyOnQuaW5kZXgscG9pbnROdW1iZXI6cixsb2NhdGlvbjplLmlkLHo6ZS56fV19fX12YXIgbz10KCJkMyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZ2V0X3NjYWxlIiksaD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvbWFrZV9zY2FsZV9mdW5jdGlvbiIpLGY9dCgiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIikuZ2V0VG9wb2pzb25GZWF0dXJlcyxwPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKS5sb2NhdGlvblRvRmVhdHVyZSxkPXQoIi4uLy4uL2xpYi9hcnJheV90b19jYWxjX2l0ZW0iKSxtPXQoIi4uLy4uL3Bsb3RzL2dlby9jb25zdGFudHMiKSxnPXQoIi4vYXR0cmlidXRlcyIpLHY9ZS5leHBvcnRzPXt9O3YuY2FsY0dlb0pTT049ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj1bXSxpPXQubG9jYXRpb25zLG89aS5sZW5ndGgsYT1mKHQsZSkscz0odC5tYXJrZXJ8fHt9KS5saW5lfHx7fSxsPTA7bz5sO2wrKylyPXAodC5sb2NhdGlvbm1vZGUsaVtsXSxhKSx2b2lkIDAhPT1yJiYoci56PXQueltsXSx2b2lkIDAhPT10LnRleHQmJihyLnR4PXQudGV4dFtsXSksZChzLmNvbG9yLHIsIm1sYyIsbCksZChzLndpZHRoLHIsIm1sdyIsbCksbi5wdXNoKHIpKTtyZXR1cm4gbi5sZW5ndGg+MCYmKG5bMF0udHJhY2U9dCksbn0sdi5wbG90PWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxsPXQuZnJhbWV3b3JrLHU9bC5zZWxlY3QoImcuY2hvcm9wbGV0aGxheWVyIiksYz1sLnNlbGVjdCgiZy5iYXNlbGF5ZXIiKSxoPWwuc2VsZWN0KCJnLmJhc2VsYXllcm92ZXJjaG9yb3BsZXRoIiksZj1tLmJhc2VMYXllcnNPdmVyQ2hvcm9wbGV0aCxwPXUuc2VsZWN0QWxsKCJnLnRyYWNlLmNob3JvcGxldGgiKS5kYXRhKGUsZnVuY3Rpb24odCl7cmV0dXJuIHQudWlkfSk7cC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2UgY2hvcm9wbGV0aCIpLHAuZXhpdCgpLnJlbW92ZSgpLHAuZWFjaChmdW5jdGlvbihlKXtmdW5jdGlvbiByKGUscil7aWYodC5zaG93SG92ZXIpe3ZhciBuPXQucHJvamVjdGlvbihlLnByb3BlcnRpZXMuY3QpO3UoZSkscy5sb25lSG92ZXIoe3g6blswXSx5Om5bMV0sbmFtZTplLm5hbWVMYWJlbCx0ZXh0OmUudGV4dExhYmVsfSx7Y29udGFpbmVyOnQuaG92ZXJDb250YWluZXIubm9kZSgpfSksaD1jKGUsciksdC5ncmFwaERpdi5lbWl0KCJwbG90bHlfaG92ZXIiLGgpfX1mdW5jdGlvbiBhKGUscil7dC5ncmFwaERpdi5lbWl0KCJwbG90bHlfY2xpY2siLGMoZSxyKSl9dmFyIGw9di5jYWxjR2VvSlNPTihlLHQudG9wb2pzb24pLHU9bih0LGUpLGM9aShlKSxoPW51bGwsZj1vLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGguY2hvcm9wbGV0aGxvY2F0aW9uIikuZGF0YShsKTtmLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgiY2hvcm9wbGV0aGxvY2F0aW9uIiwhMCkub24oIm1vdXNlb3ZlciIscikub24oImNsaWNrIixhKS5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7cy5sb25lVW5ob3Zlcih0LmhvdmVyQ29udGFpbmVyKSx0LmdyYXBoRGl2LmVtaXQoInBsb3RseV91bmhvdmVyIixoKX0pLm9uKCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cy5sb25lVW5ob3Zlcih0LmhvdmVyQ29udGFpbmVyKX0pLm9uKCJtb3VzZXVwIixyKSxmLmV4aXQoKS5yZW1vdmUoKX0pLGguc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7Zm9yKHZhciBkPTA7ZDxmLmxlbmd0aDtkKyspYT1mW2RdLGMuc2VsZWN0KCJnLiIrYSkucmVtb3ZlKCksdC5kcmF3VG9wbyhoLGEsciksdC5zdHlsZUxheWVyKGgsYSxyKTt2LnN0eWxlKHQpfSx2LnN0eWxlPWZ1bmN0aW9uKHQpe3QuZnJhbWV3b3JrLnNlbGVjdEFsbCgiZy50cmFjZS5jaG9yb3BsZXRoIikuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1vLnNlbGVjdCh0aGlzKSxyPXQubWFya2VyfHx7fSxuPXIubGluZXx8e30saT10LnptaW4sYT10LnptYXgscz1jKHQuY29sb3JzY2FsZSksZj1oKHMsaSxhKTtlLnNlbGVjdEFsbCgicGF0aC5jaG9yb3BsZXRobG9jYXRpb24iKS5lYWNoKGZ1bmN0aW9uKHQpe28uc2VsZWN0KHRoaXMpLmF0dHIoImZpbGwiLGZ1bmN0aW9uKHQpe3JldHVybiBmKHQueil9KS5jYWxsKGwuc3Ryb2tlLHQubWxjfHxuLmNvbG9yKS5jYWxsKHUuZGFzaExpbmUsIiIsdC5tbHd8fG4ud2lkdGgpfSl9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZ2V0X3NjYWxlIjo1MTgsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9tYWtlX3NjYWxlX2Z1bmN0aW9uIjo1MjMsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NTI5LCIuLi8uLi9saWIvYXJyYXlfdG9fY2FsY19pdGVtIjo1ODIsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjU4OCwiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIjo2MDUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCI6NjIyLCIuLi8uLi9wbG90cy9nZW8vY29uc3RhbnRzIjo2MzQsIi4vYXR0cmlidXRlcyI6NzE0LGQzOjEyNH1dLDcxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9aS5saW5lO2UuZXhwb3J0cz1hKHt9LHt6Om4ueix4Om4ueCx4MDpuLngwLGR4Om4uZHgseTpuLnkseTA6bi55MCxkeTpuLmR5LHRleHQ6bi50ZXh0LHRyYW5zcG9zZTpuLnRyYW5zcG9zZSx4dHlwZTpuLnh0eXBlLHl0eXBlOm4ueXR5cGUsY29ubmVjdGdhcHM6bi5jb25uZWN0Z2FwcyxhdXRvY29udG91cjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sbmNvbnRvdXJzOnt2YWxUeXBlOiJpbnRlZ2VyIixkZmx0OjB9LGNvbnRvdXJzOntzdGFydDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGx9LGVuZDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGx9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsfSxjb2xvcmluZzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmlsbCIsImhlYXRtYXAiLCJsaW5lcyIsIm5vbmUiXSxkZmx0OiJmaWxsIn0sc2hvd2xpbmVzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfX0sbGluZTp7Y29sb3I6YSh7fSxzLmNvbG9yLHt9KSx3aWR0aDpzLndpZHRoLGRhc2g6cy5kYXNoLHNtb290aGluZzphKHt9LHMuc21vb3RoaW5nLHt9KX0sX25lc3RlZE1vZHVsZXM6e2NvbG9yYmFyOiJDb2xvcmJhciJ9fSxvLHthdXRvY29sb3JzY2FsZTphKHt9LG8uYXV0b2NvbG9yc2NhbGUse2RmbHQ6ITF9KX0pfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1MTIsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vaGVhdG1hcC9hdHRyaWJ1dGVzIjo3MjksIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6NzczfV0sNzIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi9oZWF0bWFwL2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKHQsZSksbz1lLmNvbnRvdXJzO2lmKGUuYXV0b2NvbnRvdXIhPT0hMSl7dmFyIGE9e3R5cGU6ImxpbmVhciIscmFuZ2U6W2Uuem1pbixlLnptYXhdfTtuLmF1dG9UaWNrcyhhLChlLnptYXgtZS56bWluKS8oZS5uY29udG91cnN8fDE1KSksby5zdGFydD1uLnRpY2tGaXJzdChhKSxvLnNpemU9YS5kdGljayxhLnJhbmdlLnJldmVyc2UoKSxvLmVuZD1uLnRpY2tGaXJzdChhKSxvLnN0YXJ0PT09ZS56bWluJiYoby5zdGFydCs9by5zaXplKSxvLmVuZD09PWUuem1heCYmKG8uZW5kLT1vLnNpemUpLG8uZW5kKz1vLnNpemUvMTAwLGUuX2lucHV0LmNvbnRvdXJzPW99cmV0dXJuIHJ9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4uL2hlYXRtYXAvY2FsYyI6NzMwfV0sNzIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yYmFyL2RyYXciKSxvPXQoIi4vbWFrZV9jb2xvcl9tYXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLnRyYWNlLGE9ImNiIityLnVpZDtpZih0Ll9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCIuIithKS5yZW1vdmUoKSxyLnNob3dzY2FsZT09PSExKXJldHVybiB2b2lkIG4uYXV0b01hcmdpbih0LGEpO3ZhciBzPWkodCxhKTtlWzBdLnQuY2I9czt2YXIgbD1yLmNvbnRvdXJzLHU9ci5saW5lLGM9bC5zaXplfHwxLGg9bC5jb2xvcmluZyxmPW8ocix7aXNDb2xvcmJhcjohMH0pOyJoZWF0bWFwIj09PWgmJnMuZmlsbGxldmVscyh7c3RhcnQ6ci56bWluLGVuZDpyLnptYXgsc2l6ZTooci56bWF4LXIuem1pbikvMjU0fSkscy5maWxsY29sb3IoImZpbGwiPT09aHx8ImhlYXRtYXAiPT09aD9mOiIiKS5saW5lKHtjb2xvcjoibGluZXMiPT09aD9mOnUuY29sb3Isd2lkdGg6bC5zaG93bGluZXMhPT0hMT91LndpZHRoOjAsZGFzaDp1LmRhc2h9KS5sZXZlbHMoe3N0YXJ0Omwuc3RhcnQsZW5kOmwuZW5kLHNpemU6Y30pLm9wdGlvbnMoci5jb2xvcmJhcikoKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcmJhci9kcmF3Ijo1MDksIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2NzEsIi4vbWFrZV9jb2xvcl9tYXAiOjcyNX1dLDcyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2hlYXRtYXAvaGFzX2NvbHVtbnMiKSxvPXQoIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIiksYT10KCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIikscz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gdShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGkpfXZhciBjPW8odCxlLHUpO2lmKCFjKXJldHVybiB2b2lkKGUudmlzaWJsZT0hMSk7dSgidGV4dCIpLHUoImNvbm5lY3RnYXBzIixpKGUpKTt2YXIgaD1uLmNvZXJjZTIodCxlLHMsImNvbnRvdXJzLnN0YXJ0IiksZj1uLmNvZXJjZTIodCxlLHMsImNvbnRvdXJzLmVuZCIpLHA9dSgiYXV0b2NvbnRvdXIiLCEoaCYmZikpO3UocD8ibmNvbnRvdXJzIjoiY29udG91cnMuc2l6ZSIpLGEodCxlLHUsbCl9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIjo3MjgsIi4uL2hlYXRtYXAvaGFzX2NvbHVtbnMiOjczNCwiLi4vaGVhdG1hcC94eXpfZGVmYXVsdHMiOjc0MCwiLi9hdHRyaWJ1dGVzIjo3MTl9XSw3MjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vaGVhdG1hcC9ob3ZlciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXtyZXR1cm4gbih0LGUscixpLCEwKX19LHsiLi4vaGVhdG1hcC9ob3ZlciI6NzM1fV0sNzI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O24uYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxuLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLmNhbGM9dCgiLi9jYWxjIiksbi5wbG90PXQoIi4vcGxvdCIpLG4uc3R5bGU9dCgiLi9zdHlsZSIpLG4uY29sb3JiYXI9dCgiLi9jb2xvcmJhciIpLG4uaG92ZXJQb2ludHM9dCgiLi9ob3ZlciIpLG4ubW9kdWxlVHlwZT0idHJhY2UiLG4ubmFtZT0iY29udG91ciIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCIyZE1hcCIsImNvbnRvdXIiXSxuLm1ldGE9e30sZS5leHBvcnRzPW59LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo2MjMsIi4vYXR0cmlidXRlcyI6NzE5LCIuL2NhbGMiOjcyMCwiLi9jb2xvcmJhciI6NzIxLCIuL2RlZmF1bHRzIjo3MjIsIi4vaG92ZXIiOjcyMywiLi9wbG90Ijo3MjYsIi4vc3R5bGUiOjcyN31dLDcyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLG89dC5jb250b3VycyxhPW8uc3RhcnQscz1vLmVuZCxsPW8uc2l6ZXx8MSx1PU1hdGguZmxvb3IoKHMrbC8xMC1hKS9sKSsxLGM9ImxpbmVzIj09PW8uY29sb3Jpbmc/MDoxLGg9aSh0LmNvbG9yc2NhbGUpLGY9aC5sZW5ndGgscD1uZXcgQXJyYXkoZiksZD1uZXcgQXJyYXkoZik7aWYoImhlYXRtYXAiPT09by5jb2xvcmluZyl7Zm9yKHQuemF1dG8mJnQuYXV0b2NvbnRvdXI9PT0hMSYmKHQuem1pbj1hLWwvMix0LnptYXg9dC56bWluK3UqbCkscj0wO2Y+cjtyKyspZT1oW3JdLHBbcl09ZVswXSoodC56bWF4LXQuem1pbikrdC56bWluLGRbcl09ZVsxXTt2YXIgbT1uLmV4dGVudChbdC56bWluLHQuem1heCxvLnN0YXJ0LG8uc3RhcnQrbCoodS0xKV0pLGc9bVt0LnptaW48dC56bWF4PzA6MV0sdj1tW3Quem1pbjx0LnptYXg/MTowXTtnIT09dC56bWluJiYocC5zcGxpY2UoMCwwLGcpLGQuc3BsaWNlKDAsMCxSYW5nZVswXSkpLHYhPT10LnptYXgmJihwLnB1c2godiksZC5wdXNoKGRbZC5sZW5ndGgtMV0pKX1lbHNlIGZvcihyPTA7Zj5yO3IrKyllPWhbcl0scFtyXT0oZVswXSoodStjLTEpLWMvMikqbCthLGRbcl09ZVsxXTt2YXIgeT1uLnNjYWxlLmxpbmVhcigpLmludGVycG9sYXRlKG4uaW50ZXJwb2xhdGVSZ2IpLmRvbWFpbihwKS5yYW5nZShkKTtyZXR1cm4geX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSI6NTE4LGQzOjEyNH1dLDcyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1yWzBdLnRyYWNlLG89clswXS54LHM9clswXS55LHU9bi5jb250b3VycyxjPW4udWlkLGg9ZS54KCksZj1lLnkoKSxnPXQuX2Z1bGxMYXlvdXQsYj0iY29udG91ciIrYyx4PWkodSxlLHJbMF0pO2lmKG4udmlzaWJsZSE9PSEwKXJldHVybiBnLl9wYXBlci5zZWxlY3RBbGwoIi4iK2IrIiwuaG0iK2MpLnJlbW92ZSgpLHZvaWQgZy5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmNiIitjKS5yZW1vdmUoKTsiaGVhdG1hcCI9PT11LmNvbG9yaW5nPyhuLnphdXRvJiZuLmF1dG9jb250b3VyPT09ITEmJihuLl9pbnB1dC56bWluPW4uem1pbj11LnN0YXJ0LXUuc2l6ZS8yLG4uX2lucHV0LnptYXg9bi56bWF4PW4uem1pbit4Lmxlbmd0aCp1LnNpemUpLE0odCxlLFtyXSkpOmcuX3BhcGVyLnNlbGVjdEFsbCgiLmhtIitjKS5yZW1vdmUoKSxhKHgpLGwoeCk7dmFyIF89aC5jMnAob1swXSwhMCksdz1oLmMycChvW28ubGVuZ3RoLTFdLCEwKSxrPWYuYzJwKHNbMF0sITApLEE9Zi5jMnAoc1tzLmxlbmd0aC0xXSwhMCksVD1bW18sQV0sW3csQV0sW3csa10sW18sa11dLEU9cChlLHIsYik7ZChFLFQsdSksbShFLHgsVCx1KSx2KEUseCx1KSx5KEUsZSxyWzBdLFQpfWZ1bmN0aW9uIGkodCxlLHIpe2Zvcih2YXIgbj10LnNpemV8fDEsaT1bXSxvPXQuc3RhcnQ7bzx0LmVuZCtuLzEwO28rPW4paS5wdXNoKHtsZXZlbDpvLGNyb3NzaW5nczp7fSxzdGFydHM6W10sZWRnZXBhdGhzOltdLHBhdGhzOltdLHhheGlzOmUueCgpLHlheGlzOmUueSgpLHg6ci54LHk6ci55LHo6ci56LHNtb290aGluZzpyLnRyYWNlLmxpbmUuc21vb3RoaW5nfSk7cmV0dXJuIGl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPShlWzBdWzBdPnQ/MDoxKSsoZVswXVsxXT50PzA6MikrKGVbMV1bMV0+dD8wOjQpKyhlWzFdWzBdPnQ/MDo4KTtpZig1PT09cnx8MTA9PT1yKXt2YXIgbj0oZVswXVswXStlWzBdWzFdK2VbMV1bMF0rZVsxXVsxXSkvNDtyZXR1cm4gdD5uPzU9PT1yPzcxMzoxMTE0OjU9PT1yPzEwNDoyMDh9cmV0dXJuIDE1PT09cj8wOnJ9ZnVuY3Rpb24gYSh0KXt2YXIgZSxyLG4saSxhLHMsbCx1LGMsaD10WzBdLnosZj1oLmxlbmd0aCxwPWhbMF0ubGVuZ3RoLGQ9Mj09PWZ8fDI9PT1wO2ZvcihyPTA7Zi0xPnI7cisrKWZvcihpPVtdLDA9PT1yJiYoaT1pLmNvbmNhdChrKSkscj09PWYtMiYmKGk9aS5jb25jYXQoQSkpLGU9MDtwLTE+ZTtlKyspZm9yKG49aS5zbGljZSgpLDA9PT1lJiYobj1uLmNvbmNhdChUKSksZT09PXAtMiYmKG49bi5jb25jYXQoRSkpLGE9ZSsiLCIrcixzPVtbaFtyXVtlXSxoW3JdW2UrMV1dLFtoW3IrMV1bZV0saFtyKzFdW2UrMV1dXSxjPTA7Yzx0Lmxlbmd0aDtjKyspdT10W2NdLGw9byh1LmxldmVsLHMpLGwmJih1LmNyb3NzaW5nc1thXT1sLC0xIT09bi5pbmRleE9mKGwpJiYodS5zdGFydHMucHVzaChbZSxyXSksZCYmLTEhPT1uLmluZGV4T2YobCxuLmluZGV4T2YobCkrMSkmJnUuc3RhcnRzLnB1c2goW2Uscl0pKSl9ZnVuY3Rpb24gcyh0LGUscil7ZnVuY3Rpb24gbih0KXtyZXR1cm4gcFt0JXAubGVuZ3RoXX12YXIgaSxvPWUuam9pbigiLCIpLGE9byxzPXQuY3Jvc3NpbmdzW2FdLGw9dShzLHIsZSkscD1bZih0LGUsWy1sWzBdLC1sWzFdXSldLGQ9bC5qb2luKCIsIiksbT10LnoubGVuZ3RoLGc9dC56WzBdLmxlbmd0aDtmb3IoaT0wOzFlND5pO2krKyl7aWYocz4yMD8ocz1MW3NdWyhsWzBdfHxsWzFdKTwwPzA6MV0sdC5jcm9zc2luZ3NbYV09eltzXSk6ZGVsZXRlIHQuY3Jvc3NpbmdzW2FdLGw9U1tzXSwhbCl7Xy5sb2coIkZvdW5kIGJhZCBtYXJjaGluZyBpbmRleDoiLHMsZSx0LmxldmVsKTticmVha31pZihwLnB1c2goZih0LGUsbCkpLGVbMF0rPWxbMF0sZVsxXSs9bFsxXSxjKHBbcC5sZW5ndGgtMV0scFtwLmxlbmd0aC0yXSkmJnAucG9wKCksYT1lLmpvaW4oIiwiKSxhPT09byYmbC5qb2luKCIsIik9PT1kfHxyJiYobFswXSYmKGVbMF08MHx8ZVswXT5nLTIpfHxsWzFdJiYoZVsxXTwwfHxlWzFdPm0tMikpKWJyZWFrO3M9dC5jcm9zc2luZ3NbYV19MWU0PT09aSYmXy5sb2coIkluZmluaXRlIGxvb3AgaW4gY29udG91cj8iKTt2YXIgdix5LGIseCx3LE0sayxBPWMocFswXSxwW3AubGVuZ3RoLTFdKSxUPTAsRT0uMip0LnNtb290aGluZyxJPVtdLFA9MDtmb3IoaT0xO2k8cC5sZW5ndGg7aSsrKWs9aChwW2ldLHBbaS0xXSksVCs9ayxJLnB1c2goayk7dmFyIEM9VC9JLmxlbmd0aCpFO2ZvcihpPXAubGVuZ3RoLTI7aT49UDtpLS0paWYodj1JW2ldLEM+dil7Zm9yKGI9MCx5PWktMTt5Pj1QJiZ2K0lbeV08Qzt5LS0pdis9SVt5XTtpZihBJiZpPT09cC5sZW5ndGgtMilmb3IoYj0wO3k+YiYmditJW2JdPEM7YisrKXYrPUlbYl07dz1pLXkrYisxLE09TWF0aC5mbG9vcigoaSt5K2IrMikvMikseD1BfHxpIT09cC5sZW5ndGgtMj9BfHwtMSE9PXk/dyUyP24oTSk6WyhuKE0pWzBdK24oTSsxKVswXSkvMiwobihNKVsxXStuKE0rMSlbMV0pLzJdOnBbMF06cFtwLmxlbmd0aC0xXSxwLnNwbGljZSh5KzEsaS15KzEseCksaT15KzEsYiYmKFA9YiksQSYmKGk9PT1wLmxlbmd0aC0yP3BbYl09cFtwLmxlbmd0aC0xXTowPT09aSYmKHBbcC5sZW5ndGgtMV09cFswXSkpfWlmKHAuc3BsaWNlKDAsUCksIShwLmxlbmd0aDwyKSlpZihBKXAucG9wKCksdC5wYXRocy5wdXNoKHApO2Vsc2V7cnx8Xy5sb2coIlVuY2xvc2VkIGludGVyaW9yIGNvbnRvdXI/Iix0LmxldmVsLG8scC5qb2luKCJMIikpO3ZhciBSPSExO3QuZWRnZXBhdGhzLmZvckVhY2goZnVuY3Rpb24oZSxyKXtpZighUiYmYyhlWzBdLHBbcC5sZW5ndGgtMV0pKXtwLnBvcCgpLFI9ITA7dmFyIG49ITE7dC5lZGdlcGF0aHMuZm9yRWFjaChmdW5jdGlvbihlLGkpeyFuJiZjKGVbZS5sZW5ndGgtMV0scFswXSkmJihuPSEwLHAuc3BsaWNlKDAsMSksdC5lZGdlcGF0aHMuc3BsaWNlKHIsMSksaT09PXI/dC5wYXRocy5wdXNoKHAuY29uY2F0KGUpKTp0LmVkZ2VwYXRoc1tpXT10LmVkZ2VwYXRoc1tpXS5jb25jYXQocCxlKSl9KSxufHwodC5lZGdlcGF0aHNbcl09cC5jb25jYXQoZSkpfX0pLHQuZWRnZXBhdGhzLmZvckVhY2goZnVuY3Rpb24oZSxyKXshUiYmYyhlW2UubGVuZ3RoLTFdLHBbMF0pJiYocC5zcGxpY2UoMCwxKSx0LmVkZ2VwYXRoc1tyXT1lLmNvbmNhdChwKSxSPSEwKX0pLFJ8fHQuZWRnZXBhdGhzLnB1c2gocCl9fWZ1bmN0aW9uIGwodCl7dmFyIGUscixuLGksbztmb3Iobj0wO248dC5sZW5ndGg7bisrKXtmb3IoaT10W25dLG89MDtvPGkuc3RhcnRzLmxlbmd0aDtvKyspcj1pLnN0YXJ0c1tvXSxzKGksciwiZWRnZSIpO2ZvcihlPTA7T2JqZWN0LmtleXMoaS5jcm9zc2luZ3MpLmxlbmd0aCYmMWU0PmU7KWUrKyxyPU9iamVjdC5rZXlzKGkuY3Jvc3NpbmdzKVswXS5zcGxpdCgiLCIpLm1hcChOdW1iZXIpLHMoaSxyKTsxZTQ9PT1lJiZfLmxvZygiSW5maW5pdGUgbG9vcCBpbiBjb250b3VyPyIpfX1mdW5jdGlvbiB1KHQsZSxyKXt2YXIgbj0wLGk9MDtyZXR1cm4gdD4yMCYmZT8yMDg9PT10fHwxMTE0PT09dD9uPTA9PT1yWzBdPzE6LTE6aT0wPT09clsxXT8xOi0xOi0xIT09ay5pbmRleE9mKHQpP2k9MTotMSE9PVQuaW5kZXhPZih0KT9uPTE6LTEhPT1BLmluZGV4T2YodCk/aT0tMTpuPS0xLFtuLGldfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gTWF0aC5hYnModFswXS1lWzBdKTwuMDEmJk1hdGguYWJzKHRbMV0tZVsxXSk8LjAxfWZ1bmN0aW9uIGgodCxlKXt2YXIgcj10WzBdLWVbMF0sbj10WzFdLWVbMV07cmV0dXJuIE1hdGguc3FydChyKnIrbipuKX1mdW5jdGlvbiBmKHQsZSxyKXt2YXIgbj1lWzBdK01hdGgubWF4KHJbMF0sMCksaT1lWzFdK01hdGgubWF4KHJbMV0sMCksbz10LnpbaV1bbl0sYT10LnhheGlzLHM9dC55YXhpcztpZihyWzFdKXt2YXIgbD0odC5sZXZlbC1vKS8odC56W2ldW24rMV0tbyk7cmV0dXJuW2EuYzJwKCgxLWwpKnQueFtuXStsKnQueFtuKzFdLCEwKSxzLmMycCh0LnlbaV0sITApXX12YXIgdT0odC5sZXZlbC1vKS8odC56W2krMV1bbl0tbyk7cmV0dXJuW2EuYzJwKHQueFtuXSwhMCkscy5jMnAoKDEtdSkqdC55W2ldK3UqdC55W2krMV0sITApXX1mdW5jdGlvbiBwKHQsZSxyKXt2YXIgbj10LnBsb3Quc2VsZWN0KCIubWFwbGF5ZXIiKS5zZWxlY3RBbGwoImcuY29udG91ci4iK3IpLmRhdGEoZSk7cmV0dXJuIG4uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJjb250b3VyIiwhMCkuY2xhc3NlZChyLCEwKSxuLmV4aXQoKS5yZW1vdmUoKSxufWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBuPXQuc2VsZWN0QWxsKCJnLmNvbnRvdXJiZyIpLmRhdGEoWzBdKTtuLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiY29udG91cmJnIiwhMCk7dmFyIGk9bi5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKCJmaWxsIj09PXIuY29sb3Jpbmc/WzBdOltdKTtpLmVudGVyKCkuYXBwZW5kKCJwYXRoIiksaS5leGl0KCkucmVtb3ZlKCksaS5hdHRyKCJkIiwiTSIrZS5qb2luKCJMIikrIloiKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpfWZ1bmN0aW9uIG0odCxlLHIsbil7dmFyIGk9dC5zZWxlY3RBbGwoImcuY29udG91cmZpbGwiKS5kYXRhKFswXSk7aS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJmaWxsIiwhMCk7dmFyIG89aS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKCJmaWxsIj09PW4uY29sb3Jpbmc/ZTpbXSk7by5lbnRlcigpLmFwcGVuZCgicGF0aCIpLG8uZXhpdCgpLnJlbW92ZSgpLG8uZWFjaChmdW5jdGlvbih0KXt2YXIgZT1nKHQscik7ZT94LnNlbGVjdCh0aGlzKS5hdHRyKCJkIixlKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpOnguc2VsZWN0KHRoaXMpLnJlbW92ZSgpfSl9ZnVuY3Rpb24gZyh0LGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIE1hdGguYWJzKHRbMV0tZVswXVsxXSk8LjAxfWZ1bmN0aW9uIG4odCl7cmV0dXJuIE1hdGguYWJzKHRbMV0tZVsyXVsxXSk8LjAxfWZ1bmN0aW9uIGkodCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tZVswXVswXSk8LjAxfWZ1bmN0aW9uIG8odCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tZVsyXVswXSk8LjAxfWZvcih2YXIgYSxzLGwsdSxjLGgsZj10LmVkZ2VwYXRocy5sZW5ndGh8fHQuelswXVswXTx0LmxldmVsPyIiOiJNIitlLmpvaW4oIkwiKSsiWiIscD0wLGQ9dC5lZGdlcGF0aHMubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSxtPSEwO2QubGVuZ3RoOyl7Zm9yKGg9dy5zbW9vdGhvcGVuKHQuZWRnZXBhdGhzW3BdLHQuc21vb3RoaW5nKSxmKz1tP2g6aC5yZXBsYWNlKC9eTS8sIkwiKSxkLnNwbGljZShkLmluZGV4T2YocCksMSksYT10LmVkZ2VwYXRoc1twXVt0LmVkZ2VwYXRoc1twXS5sZW5ndGgtMV0sdT0tMSxsPTA7ND5sO2wrKyl7aWYoIWEpe18ubG9nKCJNaXNzaW5nIGVuZD8iLHAsdCk7YnJlYWt9Zm9yKHIoYSkmJiFvKGEpP3M9ZVsxXTppKGEpP3M9ZVswXTpuKGEpP3M9ZVszXTpvKGEpJiYocz1lWzJdKSxjPTA7Yzx0LmVkZ2VwYXRocy5sZW5ndGg7YysrKXt2YXIgZz10LmVkZ2VwYXRoc1tjXVswXTtNYXRoLmFicyhhWzBdLXNbMF0pPC4wMT9NYXRoLmFicyhhWzBdLWdbMF0pPC4wMSYmKGdbMV0tYVsxXSkqKHNbMV0tZ1sxXSk+PTAmJihzPWcsdT1jKTpNYXRoLmFicyhhWzFdLXNbMV0pPC4wMT9NYXRoLmFicyhhWzFdLWdbMV0pPC4wMSYmKGdbMF0tYVswXSkqKHNbMF0tZ1swXSk+PTAmJihzPWcsdT1jKTpfLmxvZygiZW5kcHQgdG8gbmV3ZW5kcHQgaXMgbm90IHZlcnQuIG9yIGhvcnouIixhLHMsZyl9aWYoYT1zLHU+PTApYnJlYWs7Zis9IkwiK3N9aWYodT09PXQuZWRnZXBhdGhzLmxlbmd0aCl7Xy5sb2coInVuY2xvc2VkIHBlcmltZXRlciBwYXRoIik7YnJlYWt9cD11LG09LTE9PT1kLmluZGV4T2YocCksbSYmKHA9ZFswXSxmKz0iWiIpfWZvcihwPTA7cDx0LnBhdGhzLmxlbmd0aDtwKyspZis9dy5zbW9vdGhjbG9zZWQodC5wYXRoc1twXSx0LnNtb290aGluZyk7cmV0dXJuIGZ9ZnVuY3Rpb24gdih0LGUscil7dmFyIG49ZVswXS5zbW9vdGhpbmcsaT10LnNlbGVjdEFsbCgiZy5jb250b3VybGV2ZWwiKS5kYXRhKHIuc2hvd2xpbmVzPT09ITE/W106ZSk7aS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsZXZlbCIsITApLGkuZXhpdCgpLnJlbW92ZSgpO3ZhciBvPWkuc2VsZWN0QWxsKCJwYXRoLm9wZW5saW5lIikuZGF0YShmdW5jdGlvbih0KXtyZXR1cm4gdC5lZGdlcGF0aHN9KTtvLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgib3BlbmxpbmUiLCEwKSxvLmV4aXQoKS5yZW1vdmUoKSxvLmF0dHIoImQiLGZ1bmN0aW9uKHQpe3JldHVybiB3LnNtb290aG9wZW4odCxuKX0pLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSk7dmFyIGE9aS5zZWxlY3RBbGwoInBhdGguY2xvc2VkbGluZSIpLmRhdGEoZnVuY3Rpb24odCl7cmV0dXJuIHQucGF0aHN9KTthLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgiY2xvc2VkbGluZSIsITApLGEuZXhpdCgpLnJlbW92ZSgpLGEuYXR0cigiZCIsZnVuY3Rpb24odCl7cmV0dXJuIHcuc21vb3RoY2xvc2VkKHQsbil9KS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDEpfWZ1bmN0aW9uIHkodCxlLHIsbil7dmFyIGk9ImNsaXAiK3IudHJhY2UudWlkLG89ZS5wbG90LnNlbGVjdEFsbCgiZGVmcyIpLmRhdGEoWzBdKTtvLmVudGVyKCkuYXBwZW5kKCJkZWZzIik7dmFyIHM9by5zZWxlY3RBbGwoIiMiK2kpLmRhdGEoci50cmFjZS5jb25uZWN0Z2Fwcz9bXTpbMF0pO2lmKHMuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLGkpLHMuZXhpdCgpLnJlbW92ZSgpLHIudHJhY2UuY29ubmVjdGdhcHM9PT0hMSl7dmFyIHU9e2xldmVsOi45LGNyb3NzaW5nczp7fSxzdGFydHM6W10sZWRnZXBhdGhzOltdLHBhdGhzOltdLHhheGlzOmUueCgpLHlheGlzOmUueSgpLHg6ci54LHk6ci55LHo6YihyKSxzbW9vdGhpbmc6MH07YShbdV0pLGwoW3VdKTt2YXIgYz1nKHUsbiksaD1zLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEoWzBdKTtoLmVudGVyKCkuYXBwZW5kKCJwYXRoIiksaC5hdHRyKCJkIixjKX1lbHNlIGk9bnVsbDt0LmNhbGwody5zZXRDbGlwVXJsLGkpLGUucGxvdC5zZWxlY3RBbGwoIi5obSIrci50cmFjZS51aWQpLmNhbGwody5zZXRDbGlwVXJsLGkpfWZ1bmN0aW9uIGIodCl7dmFyIGUscixuPXQudHJhY2UuX2VtcHR5cG9pbnRzLGk9W10sbz10LnoubGVuZ3RoLGE9dC56WzBdLmxlbmd0aCxzPVtdO2ZvcihlPTA7YT5lO2UrKylzLnB1c2goMSk7Zm9yKGU9MDtvPmU7ZSsrKWkucHVzaChzLnNsaWNlKCkpO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspcj1uW2VdLGlbclswXV1bclsxXV09MDtyZXR1cm4gdC56bWFzaz1pLGl9dmFyIHg9dCgiZDMiKSxfPXQoIi4uLy4uL2xpYiIpLHc9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksTT10KCIuLi9oZWF0bWFwL3Bsb3QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKW4odCxlLHJbaV0pfTt2YXIgaz1bMSw5LDEzLDEwNCw3MTNdLEE9WzQsNiw3LDEwNCw3MTNdLFQ9WzgsMTIsMTQsMjA4LDExMTRdLEU9WzIsMywxMSwyMDgsMTExNF0sUz1bbnVsbCxbLTEsMF0sWzAsLTFdLFstMSwwXSxbMSwwXSxudWxsLFswLC0xXSxbLTEsMF0sWzAsMV0sWzAsMV0sbnVsbCxbMCwxXSxbMSwwXSxbMSwwXSxbMCwtMV1dLEw9ezEwNDpbNCwxXSwyMDg6WzIsOF0sNzEzOls3LDEzXSwxMTE0OlsxMSwxNF19LHo9ezE6NCwyOjgsNDoxLDc6MTMsODoyLDExOjE0LDEzOjcsMTQ6MTF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NTI5LCIuLi8uLi9saWIiOjU5MSwiLi4vaGVhdG1hcC9wbG90Ijo3MzgsZDM6MTI0fV0sNzI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uL2hlYXRtYXAvc3R5bGUiKSxhPXQoIi4vbWFrZV9jb2xvcl9tYXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLmNvbnRvdXIiKTtlLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC50cmFjZS5vcGFjaXR5fSksZS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9dC50cmFjZSxvPXIuY29udG91cnMscz1yLmxpbmUsbD1vLnNpemV8fDEsdT1vLnN0YXJ0LGM9YShyKTtlLnNlbGVjdEFsbCgiZy5jb250b3VybGV2ZWwiKS5lYWNoKGZ1bmN0aW9uKHQsZSl7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIikuY2FsbChpLmxpbmVHcm91cFN0eWxlLHMud2lkdGgsImxpbmVzIj09PW8uY29sb3Jpbmc/Yyh1K2UqbCk6cy5jb2xvcixzLmRhc2gpfSksZS5zZWxlY3RBbGwoImcuY29udG91cmJnIHBhdGgiKS5zdHlsZSgiZmlsbCIsYyh1LWwvMikpLGUuc2VsZWN0QWxsKCJnLmNvbnRvdXJmaWxsIHBhdGgiKS5zdHlsZSgiZmlsbCIsZnVuY3Rpb24odCxlKXtyZXR1cm4gYyh1KyhlKy41KSpsKX0pfSksbyh0KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uL2hlYXRtYXAvc3R5bGUiOjczOSwiLi9tYWtlX2NvbG9yX21hcCI6NzI1LGQzOjEyNH1dLDcyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG8sYT1yKCJjb250b3Vycy5jb2xvcmluZyIpOyJmaWxsIj09PWEmJihvPXIoImNvbnRvdXJzLnNob3dsaW5lcyIpKSxvIT09ITEmJigibGluZXMiIT09YSYmcigibGluZS5jb2xvciIsIiMwMDAiKSxyKCJsaW5lLndpZHRoIiwuNSkscigibGluZS5kYXNoIikpLHIoImxpbmUuc21vb3RoaW5nIiksIm5vbmUiIT09KGUuY29udG91cnN8fHt9KS5jb2xvcmluZyYmbih0LGUsaSxyLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo1MTZ9XSw3Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPW8oe30se3o6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx4Om4ueCx4MDpuLngwLGR4Om4uZHgseTpuLnkseTA6bi55MCxkeTpuLmR5LHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0cmFuc3Bvc2U6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHh0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhcnJheSIsInNjYWxlZCJdfSx5dHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXJyYXkiLCJzY2FsZWQiXX0senNtb290aDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZmFzdCIsImJlc3QiLCExXSxkZmx0OiExfSxjb25uZWN0Z2Fwczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sX25lc3RlZE1vZHVsZXM6e2NvbG9yYmFyOiJDb2xvcmJhciJ9fSxpLHthdXRvY29sb3JzY2FsZTpvKHt9LGkuYXV0b2NvbG9yc2NhbGUse2RmbHQ6ITF9KX0pfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1MTIsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo3NzN9XSw3MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtmdW5jdGlvbiBlKHQpe3JldHVybiB1KHQpPyt0OnZvaWQgMH12YXIgcixuLGksbyxhLHMsbD10Lno7aWYodC50cmFuc3Bvc2Upe2ZvcihyPTAsYT0wO2E8bC5sZW5ndGg7YSsrKXI9TWF0aC5tYXgocixsW2FdLmxlbmd0aCk7aWYoMD09PXIpcmV0dXJuITE7aT1mdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGh9LG89ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0W3JdW2VdfX1lbHNlIHI9bC5sZW5ndGgsaT1mdW5jdGlvbih0LGUpe3JldHVybiB0W2VdLmxlbmd0aH0sbz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbZV1bcl19O3ZhciBjPW5ldyBBcnJheShyKTtmb3IoYT0wO3I+YTthKyspZm9yKG49aShsLGEpLGNbYV09bmV3IEFycmF5KG4pLHM9MDtuPnM7cysrKWNbYV1bc109ZShvKGwsYSxzKSk7cmV0dXJuIGN9ZnVuY3Rpb24gaSh0LGUscixuLGksbyl7dmFyIGEscyxsLHU9W10sYz1mLnRyYWNlSXModCwiY29udG91ciIpLGg9Zi50cmFjZUlzKHQsImhpc3RvZ3JhbSIpLHA9Zi50cmFjZUlzKHQsImdsMmQiKSxkPUFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjE7aWYoZCYmIWgmJiJjYXRlZ29yeSIhPT1vLnR5cGUpe2U9ZS5tYXAoby5kMmMpO3ZhciBtPWUubGVuZ3RoO2lmKCEoaT49bSkpcmV0dXJuIGM/ZS5zbGljZSgwLGkpOmUuc2xpY2UoMCxpKzEpO2lmKGN8fHApdT1lLnNsaWNlKDAsaSk7ZWxzZSBpZigxPT09aSl1PVtlWzBdLS41LGVbMF0rLjVdO2Vsc2V7Zm9yKHU9WzEuNSplWzBdLS41KmVbMV1dLGw9MTttPmw7bCsrKXUucHVzaCguNSooZVtsLTFdK2VbbF0pKTt1LnB1c2goMS41KmVbbS0xXS0uNSplW20tMl0pfWlmKGk+bSl7dmFyIGc9dVt1Lmxlbmd0aC0xXSx2PWctdVt1Lmxlbmd0aC0yXTtmb3IobD1tO2k+bDtsKyspZys9dix1LnB1c2goZyl9fWVsc2UgZm9yKHM9bnx8MSxhPWh8fCJjYXRlZ29yeSI9PT1vLnR5cGU/cnx8MDpBcnJheS5pc0FycmF5KGUpJiYxPT09ZS5sZW5ndGg/ZVswXTp2b2lkIDA9PT1yPzA6by5kMmMociksbD1jfHxwPzA6LS41O2k+bDtsKyspdS5wdXNoKGErcypsKTtyZXR1cm4gdX1mdW5jdGlvbiBvKHQpe3JldHVybi41LS4yNSpNYXRoLm1pbigxLC41KnQpfWZ1bmN0aW9uIGEodCxlLHIpe3ZhciBuLGksYT0xO2lmKEFycmF5LmlzQXJyYXkocikpZm9yKG49MDtuPGUubGVuZ3RoO24rKylpPWVbbl0sdFtpWzBdXVtpWzFdXT1yW2lbMF1dW2lbMV1dO2Vsc2UgbCh0LGUpO2ZvcihuPTA7bjxlLmxlbmd0aCYmIShlW25dWzJdPDQpO24rKyk7Zm9yKGU9ZS5zbGljZShuKSxuPTA7MTAwPm4mJmE+eTtuKyspYT1sKHQsZSxvKGEpKTtyZXR1cm4gYT55JiZjLmxvZygiaW50ZXJwMmQgZGlkbid0IGNvbnZlcmdlIHF1aWNrbHkiLGEpLHR9ZnVuY3Rpb24gcyh0KXt2YXIgZSxyLG4saSxvLGEscyxsLHU9W10sYz17fSxoPVtdLGY9dFswXSxwPVtdLGQ9WzAsMCwwXSxtPXYodCk7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKylmb3IoZT1wLHA9ZixmPXRbcisxXXx8W10sbj0wO20+bjtuKyspdm9pZCAwPT09cFtuXSYmKGE9KHZvaWQgMCE9PXBbbi0xXT8xOjApKyh2b2lkIDAhPT1wW24rMV0/MTowKSsodm9pZCAwIT09ZVtuXT8xOjApKyh2b2lkIDAhPT1mW25dPzE6MCksYT8oMD09PXImJmErKywwPT09biYmYSsrLHI9PT10Lmxlbmd0aC0xJiZhKyssbj09PXAubGVuZ3RoLTEmJmErKyw0PmEmJihjW1tyLG5dXT1bcixuLGFdKSx1LnB1c2goW3IsbixhXSkpOmgucHVzaChbcixuXSkpO2Zvcig7aC5sZW5ndGg7KXtmb3Iocz17fSxsPSExLG89aC5sZW5ndGgtMTtvPj0wO28tLSlpPWhbb10scj1pWzBdLG49aVsxXSxhPSgoY1tbci0xLG5dXXx8ZClbMl0rKGNbW3IrMSxuXV18fGQpWzJdKyhjW1tyLG4tMV1dfHxkKVsyXSsoY1tbcixuKzFdXXx8ZClbMl0pLzIwLGEmJihzW2ldPVtyLG4sYV0saC5zcGxpY2UobywxKSxsPSEwKTtpZighbCl0aHJvdyJmaW5kRW1wdGllcyBpdGVyYXRlZCB3aXRoIG5vIG5ldyBuZWlnaGJvcnMiO2ZvcihpIGluIHMpY1tpXT1zW2ldLHUucHVzaChzW2ldKX1yZXR1cm4gdS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMl0tdFsyXX0pfWZ1bmN0aW9uIGwodCxlLHIpe3ZhciBuLGksbyxhLHMsbCx1LGMsaCxmLHAsZCxtLGc9MDtmb3IoYT0wO2E8ZS5sZW5ndGg7YSsrKXtmb3Iobj1lW2FdLGk9blswXSxvPW5bMV0scD10W2ldW29dLGY9MCxoPTAscz0wOzQ+cztzKyspbD1iW3NdLHU9dFtpK2xbMF1dLHUmJihjPXVbbytsWzFdXSx2b2lkIDAhPT1jJiYoMD09PWY/ZD1tPWM6KGQ9TWF0aC5taW4oZCxjKSxtPU1hdGgubWF4KG0sYykpLGgrKyxmKz1jKSk7aWYoMD09PWgpdGhyb3ciaXRlcmF0ZUludGVycDJkIG9yZGVyIGlzIHdyb25nOiBubyBkZWZpbmVkIG5laWdoYm9ycyI7dFtpXVtvXT1mL2gsdm9pZCAwPT09cD80PmgmJihnPTEpOih0W2ldW29dPSgxK3IpKnRbaV1bb10tcipwLG0+ZCYmKGc9TWF0aC5tYXgoZyxNYXRoLmFicyh0W2ldW29dLXApLyhtLWQpKSkpfXJldHVybiBnfXZhciB1PXQoImZhc3QtaXNudW1lcmljIiksYz10KCIuLi8uLi9saWIiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksZj10KCIuLi8uLi9wbG90cy9wbG90cyIpLHA9dCgiLi4vaGlzdG9ncmFtMmQvY2FsYyIpLGQ9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxtPXQoIi4vaGFzX2NvbHVtbnMiKSxnPXQoIi4vY29udmVydF9jb2x1bW5feHl6Iiksdj10KCIuL21heF9yb3dfbGVuZ3RoIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0KXtTPWUuX2lucHV0LnpzbW9vdGg9ZS56c21vb3RoPSExLGMubm90aWZpZXIoImNhbm5vdCBmYXN0LXpzbW9vdGg6ICIrdCl9dmFyIG8sbCx1LHksYix4LF8sdyxNPWguZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxrPWguZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxBPWYudHJhY2VJcyhlLCJjb250b3VyIiksVD1mLnRyYWNlSXMoZSwiaGlzdG9ncmFtIiksRT1mLnRyYWNlSXMoZSwiZ2wyZCIpLFM9QT8iYmVzdCI6ZS56c21vb3RoO2lmKE0uX21pbkR0aWNrPTAsay5fbWluRHRpY2s9MCxUKXt2YXIgTD1wKHQsZSk7bz1MLngsbD1MLngwLHU9TC5keCx5PUwueSxiPUwueTAseD1MLmR5LF89TC56fWVsc2UgbShlKSYmZyhlLE0sayksbz1lLng/TS5tYWtlQ2FsY2RhdGEoZSwieCIpOltdLHk9ZS55P2subWFrZUNhbGNkYXRhKGUsInkiKTpbXSxsPWUueDB8fDAsdT1lLmR4fHwxLGI9ZS55MHx8MCx4PWUuZHl8fDEsXz1uKGUpLChBfHxlLmNvbm5lY3RnYXBzKSYmKGUuX2VtcHR5cG9pbnRzPXMoXyksZS5faW50ZXJwej1hKF8sZS5fZW1wdHlwb2ludHMsZS5faW50ZXJweikpO2lmKCJmYXN0Ij09PVMpaWYoImxvZyI9PT1NLnR5cGV8fCJsb2ciPT09ay50eXBlKXIoImxvZyBheGlzIGZvdW5kIik7ZWxzZSBpZighVCl7aWYoby5sZW5ndGgpe3ZhciB6PShvW28ubGVuZ3RoLTFdLW9bMF0pLyhvLmxlbmd0aC0xKSxJPU1hdGguYWJzKHovMTAwKTtmb3Iodz0wO3c8by5sZW5ndGgtMTt3KyspaWYoTWF0aC5hYnMob1t3KzFdLW9bd10teik+SSl7cigieCBzY2FsZSBpcyBub3QgbGluZWFyIik7YnJlYWt9fWlmKHkubGVuZ3RoJiYiZmFzdCI9PT1TKXt2YXIgUD0oeVt5Lmxlbmd0aC0xXS15WzBdKS8oeS5sZW5ndGgtMSksQz1NYXRoLmFicyhQLzEwMCk7Zm9yKHc9MDt3PHkubGVuZ3RoLTE7dysrKWlmKE1hdGguYWJzKHlbdysxXS15W3ddLVApPkMpe3IoInkgc2NhbGUgaXMgbm90IGxpbmVhciIpO2JyZWFrfX19dmFyIFI9dihfKSxqPSJzY2FsZWQiPT09ZS54dHlwZT8iIjplLngsRD1pKGUsaixsLHUsUixNKSxPPSJzY2FsZWQiPT09ZS55dHlwZT8iIjplLnksRj1pKGUsTyxiLHgsXy5sZW5ndGgsayk7RXx8KGguZXhwYW5kKE0sRCksaC5leHBhbmQoayxGKSk7dmFyIE49e3g6RCx5OkYsejpffTtpZihkKGUsXywiIiwieiIpLEEmJmUuY29udG91cnMmJiJoZWF0bWFwIj09PWUuY29udG91cnMuY29sb3Jpbmcpe3ZhciBCPSJjb250b3VyIj09PWUudHlwZT8iaGVhdG1hcCI6Imhpc3RvZ3JhbTJkIjtOLnhmaWxsPWkoQixqLGwsdSxSLE0pLE4ueWZpbGw9aShCLE8sYix4LF8ubGVuZ3RoLGspfXJldHVybltOXX07dmFyIHk9LjAxLGI9W1stMSwwXSxbMSwwXSxbMCwtMV0sWzAsMV1dfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo1MTMsIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuLi9oaXN0b2dyYW0yZC9jYWxjIjo3NTAsIi4vY29udmVydF9jb2x1bW5feHl6Ijo3MzIsIi4vaGFzX2NvbHVtbnMiOjczNCwiLi9tYXhfcm93X2xlbmd0aCI6NzM3LCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNzMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLG89dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcmJhci9kcmF3Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS50cmFjZSx1PSJjYiIrci51aWQsYz1zKHIuY29sb3JzY2FsZSksaD1yLnptaW4sZj1yLnptYXg7aWYoaShoKXx8KGg9by5hZ2dOdW1zKE1hdGgubWluLG51bGwsci56KSksaShmKXx8KGY9by5hZ2dOdW1zKE1hdGgubWF4LG51bGwsci56KSksdC5fZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdEFsbCgiLiIrdSkucmVtb3ZlKCksIXIuc2hvd3NjYWxlKXJldHVybiB2b2lkIGEuYXV0b01hcmdpbih0LHUpO3ZhciBwPWVbMF0udC5jYj1sKHQsdSk7cC5maWxsY29sb3Iobi5zY2FsZS5saW5lYXIoKS5kb21haW4oYy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGgrdFswXSooZi1oKX0pKS5yYW5nZShjLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFsxXX0pKSkuZmlsbGxldmVscyh7c3RhcnQ6aCxlbmQ6ZixzaXplOihmLWgpLzI1NH0pLm9wdGlvbnMoci5jb2xvcmJhcikoKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcmJhci9kcmF3Ijo1MDksIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9nZXRfc2NhbGUiOjUxOCwiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo2NzEsZDM6MTI0LCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNzMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGksbz10Lnguc2xpY2UoKSxhPXQueS5zbGljZSgpLHM9dC56LGw9dC50ZXh0LHU9TWF0aC5taW4oby5sZW5ndGgsYS5sZW5ndGgscy5sZW5ndGgpLGM9dm9pZCAwIT09bCYmIUFycmF5LmlzQXJyYXkobFswXSk7Zm9yKHU8by5sZW5ndGgmJihvPW8uc2xpY2UoMCx1KSksdTxhLmxlbmd0aCYmKGE9YS5zbGljZSgwLHUpKSxpPTA7dT5pO2krKylvW2ldPWUuZDJjKG9baV0pLGFbaV09ci5kMmMoYVtpXSk7dmFyIGgsZixwLGQ9bi5kaXN0aW5jdFZhbHMobyksbT1kLnZhbHMsZz1uLmRpc3RpbmN0VmFscyhhKSx2PWcudmFscyx5PW4uaW5pdDJkQXJyYXkodi5sZW5ndGgsbS5sZW5ndGgpO2ZvcihjJiYocD1uLmluaXQyZEFycmF5KHYubGVuZ3RoLG0ubGVuZ3RoKSksaT0wO3U+aTtpKyspaD1uLmZpbmRCaW4ob1tpXStkLm1pbkRpZmYvMixtKSxmPW4uZmluZEJpbihhW2ldK2cubWluRGlmZi8yLHYpLHlbZl1baF09c1tpXSxjJiYocFtmXVtoXT1sW2ldKTt0Lng9bSx0Lnk9dix0Lno9eSxjJiYodC50ZXh0PXApfX0seyIuLi8uLi9saWIiOjU5MX1dLDczMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vaGFzX2NvbHVtbnMiKSxvPXQoIi4veHl6X2RlZmF1bHRzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiB1KHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxzLHIsaSl9dmFyIGM9byh0LGUsdSk7cmV0dXJuIGM/KHUoInRleHQiKSx1KCJ6c21vb3RoIiksdSgiY29ubmVjdGdhcHMiLGkoZSkmJmUuenNtb290aCE9PSExKSx2b2lkIGEodCxlLGwsdSx7cHJlZml4OiIiLGNMZXR0ZXI6InoifSkpOnZvaWQoZS52aXNpYmxlPSExKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo1MTYsIi4uLy4uL2xpYiI6NTkxLCIuL2F0dHJpYnV0ZXMiOjcyOSwiLi9oYXNfY29sdW1ucyI6NzM0LCIuL3h5el9kZWZhdWx0cyI6NzQwfV0sNzM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4hQXJyYXkuaXNBcnJheSh0LnpbMF0pfX0se31dLDczNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLk1BWERJU1Q7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEscyl7aWYoISh0LmRpc3RhbmNlPG8pKXt2YXIgbCx1LGMsaCxmPXQuY2RbMF0scD1mLnRyYWNlLGQ9dC54YSxtPXQueWEsZz1mLngsdj1mLnkseT1mLnosYj1mLnptYXNrLHg9ZyxfPXY7aWYodC5pbmRleCE9PSExKXt0cnl7Yz1NYXRoLnJvdW5kKHQuaW5kZXhbMV0pLGg9TWF0aC5yb3VuZCh0LmluZGV4WzBdKX1jYXRjaCh3KXtyZXR1cm4gdm9pZCBpLmVycm9yKCJFcnJvciBob3ZlcmluZyBvbiBoZWF0bWFwLCBwb2ludE51bWJlciBtdXN0IGJlIFtyb3csY29sXSwgZm91bmQ6Iix0LmluZGV4KX1pZigwPmN8fGM+PXlbMF0ubGVuZ3RofHwwPmh8fGg+eS5sZW5ndGgpcmV0dXJufWVsc2V7aWYobi5pbmJveChlLWdbMF0sZS1nW2cubGVuZ3RoLTFdKT5vfHxuLmluYm94KHItdlswXSxyLXZbdi5sZW5ndGgtMV0pPm8pcmV0dXJuO2lmKHMpe3ZhciBNO2Zvcih4PVsyKmdbMF0tZ1sxXV0sTT0xO008Zy5sZW5ndGg7TSsrKXgucHVzaCgoZ1tNXStnW00tMV0pLzIpO2Zvcih4LnB1c2goWzIqZ1tnLmxlbmd0aC0xXS1nW2cubGVuZ3RoLTJdXSksXz1bMip2WzBdLXZbMV1dLE09MTtNPHYubGVuZ3RoO00rKylfLnB1c2goKHZbTV0rdltNLTFdKS8yKTtfLnB1c2goWzIqdlt2Lmxlbmd0aC0xXS12W3YubGVuZ3RoLTJdXSl9Yz1NYXRoLm1heCgwLE1hdGgubWluKHgubGVuZ3RoLTIsaS5maW5kQmluKGUseCkpKSxoPU1hdGgubWF4KDAsTWF0aC5taW4oXy5sZW5ndGgtMixpLmZpbmRCaW4ocixfKSkpfXZhciBrPWQuYzJwKGdbY10pLEE9ZC5jMnAoZ1tjKzFdKSxUPW0uYzJwKHZbaF0pLEU9bS5jMnAodltoKzFdKTtzPyhBPWssbD1nW2NdLEU9VCx1PXZbaF0pOihsPShnW2NdK2dbYysxXSkvMix1PSh2W2hdK3ZbaCsxXSkvMixwLnpzbW9vdGgmJihrPUE9KGsrQSkvMixUPUU9KFQrRSkvMikpO3ZhciBTPXlbaF1bY107YiYmIWJbaF1bY10mJihTPXZvaWQgMCk7dmFyIEw7cmV0dXJuIEFycmF5LmlzQXJyYXkocC50ZXh0KSYmQXJyYXkuaXNBcnJheShwLnRleHRbaF0pJiYoTD1wLnRleHRbaF1bY10pLFtpLmV4dGVuZEZsYXQodCx7aW5kZXg6W2gsY10sZGlzdGFuY2U6bysxMCx4MDprLHgxOkEseTA6VCx5MTpFLHhMYWJlbFZhbDpsLHlMYWJlbFZhbDp1LHpMYWJlbFZhbDpTLHRleHQ6TH0pXX19fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo2MjAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCI6NjIyfV0sNzM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O24uYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxuLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLmNhbGM9dCgiLi9jYWxjIiksbi5wbG90PXQoIi4vcGxvdCIpLG4uY29sb3JiYXI9dCgiLi9jb2xvcmJhciIpLG4uc3R5bGU9dCgiLi9zdHlsZSIpLG4uaG92ZXJQb2ludHM9dCgiLi9ob3ZlciIpLG4ubW9kdWxlVHlwZT0idHJhY2UiLG4ubmFtZT0iaGVhdG1hcCIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCIyZE1hcCJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjYyMywiLi9hdHRyaWJ1dGVzIjo3MjksIi4vY2FsYyI6NzMwLCIuL2NvbG9yYmFyIjo3MzEsIi4vZGVmYXVsdHMiOjczMywiLi9ob3ZlciI6NzM1LCIuL3Bsb3QiOjczOCwiLi9zdHlsZSI6NzM5fV0sNzM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aDtyKyspZT1NYXRoLm1heChlLHRbcl0ubGVuZ3RoKTtyZXR1cm4gZX19LHt9XSw3Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7ZnVuY3Rpb24gbih0LGUpe3ZhciByPWUubGVuZ3RoLTIsbj1hLmNvbnN0cmFpbihhLmZpbmRCaW4odCxlKSwwLHIpLGk9ZVtuXSxvPWVbbisxXSxzPWEuY29uc3RyYWluKG4rKHQtaSkvKG8taSktLjUsMCxyKSxsPU1hdGgucm91bmQocyksdT1NYXRoLmFicyhzLWwpO3JldHVybiBzJiZzIT09ciYmdT97YmluMDpsLGZyYWM6dSxiaW4xOk1hdGgucm91bmQobCt1LyhzLWwpKX06e2JpbjA6bCxiaW4xOmwsZnJhYzowfX1mdW5jdGlvbiBoKHQsZSl7aWYodm9pZCAwIT09dCl7dmFyIHI9WigodC1FKS8oUy1FKSk7cmV0dXJuIHJbMF09TWF0aC5yb3VuZChyWzBdKSxyWzFdPU1hdGgucm91bmQoclsxXSksclsyXT1NYXRoLnJvdW5kKHJbMl0pLGF0Kz1lLHN0Kz1yWzBdKmUsbHQrPXJbMV0qZSx1dCs9clsyXSplLHJ9cmV0dXJuWzAsMCwwLDBdfWZ1bmN0aW9uIGYodCxlLHIpe3RbZV09clswXSx0W2UrMV09clsxXSx0W2UrMl09clsyXSx0W2UrM109TWF0aC5yb3VuZCgyNTUqclszXSl9ZnVuY3Rpb24gcCh0LGUscixuKXt2YXIgaT10W3IuYmluMF07aWYodm9pZCAwPT09aSlyZXR1cm4gaCh2b2lkIDAsMSk7dmFyIG8sYT10W3IuYmluMV0scz1lW3IuYmluMF0sbD1lW3IuYmluMV0sdT1hLWl8fDAsYz1zLWl8fDA7cmV0dXJuIG89dm9pZCAwPT09YT92b2lkIDA9PT1sPzA6dm9pZCAwPT09cz8yKihsLWkpOjIqKDIqbC1zLWkpLzM6dm9pZCAwPT09bD92b2lkIDA9PT1zPzA6MiooMippLWEtcykvMzp2b2lkIDA9PT1zPzIqKDIqbC1hLWkpLzM6bCtpLWEtcyxoKGkrci5mcmFjKnUrbi5mcmFjKihjK3IuZnJhYypvKSl9dmFyIGQ9clswXS50cmFjZSxtPWQudWlkLGc9ZS54KCksdj1lLnkoKSx5PXQuX2Z1bGxMYXlvdXQsYj0iaG0iK207aWYoeS5fcGFwZXIuc2VsZWN0QWxsKCIuY29udG91ciIrbSkucmVtb3ZlKCksZC52aXNpYmxlIT09ITApcmV0dXJuIHkuX3BhcGVyLnNlbGVjdEFsbCgiLiIrYikucmVtb3ZlKCksdm9pZCB5Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCIuY2IiK20pLnJlbW92ZSgpO3ZhciB4LF8sdyxNLGssQSxUPXJbMF0ueixFPWQuem1pbixTPWQuem1heCxMPWwoZC5jb2xvcnNjYWxlKSx6PXJbMF0ueCxJPXJbMF0ueSxQPXMudHJhY2VJcyhkLCJjb250b3VyIiksQz1QPyJiZXN0IjpkLnpzbW9vdGgsUj1ULmxlbmd0aCxqPWMoVCksRD0hMSxPPSExO2ZvcihBPTA7dm9pZCAwPT09eCYmQTx6Lmxlbmd0aC0xOyl4PWcuYzJwKHpbQV0pLEErKztmb3IoQT16Lmxlbmd0aC0xO3ZvaWQgMD09PV8mJkE+MDspXz1nLmMycCh6W0FdKSxBLS07Zm9yKHg+XyYmKHc9XyxfPXgseD13LEQ9ITApLEE9MDt2b2lkIDA9PT1NJiZBPEkubGVuZ3RoLTE7KU09di5jMnAoSVtBXSksQSsrO2ZvcihBPUkubGVuZ3RoLTE7dm9pZCAwPT09ayYmQT4wOylrPXYuYzJwKElbQV0pLEEtLTtpZihNPmsmJih3PU0sTT1rLGs9dyxPPSEwKSxQJiYoej1yWzBdLnhmaWxsLEk9clswXS55ZmlsbCksImZhc3QiIT09Qyl7dmFyIEY9ImJlc3QiPT09Qz8wOi41O3g9TWF0aC5tYXgoLUYqZy5fbGVuZ3RoLHgpLF89TWF0aC5taW4oKDErRikqZy5fbGVuZ3RoLF8pLE09TWF0aC5tYXgoLUYqdi5fbGVuZ3RoLE0pLGs9TWF0aC5taW4oKDErRikqdi5fbGVuZ3RoLGspfXZhciBOPU1hdGgucm91bmQoXy14KSxCPU1hdGgucm91bmQoay1NKSxVPTA+PU58fDA+PUIsVj1lLnBsb3Quc2VsZWN0KCIuaW1hZ2VsYXllciIpLnNlbGVjdEFsbCgiZy5obS4iK2IpLmRhdGEoVT9bXTpbMF0pO2lmKFYuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJobSIsITApLmNsYXNzZWQoYiwhMCksVi5leGl0KCkucmVtb3ZlKCksIVUpe3ZhciBxLEc7ImZhc3QiPT09Qz8ocT1qLEc9Uik6KHE9TixHPUIpO3ZhciBIPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0gud2lkdGg9cSxILmhlaWdodD1HO3ZhciBYLFksVz1ILmdldENvbnRleHQoIjJkIiksWj1pLnNjYWxlLmxpbmVhcigpLmRvbWFpbihMLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pKS5yYW5nZShMLm1hcChmdW5jdGlvbih0KXt2YXIgZT1vKHRbMV0pLnRvUmdiKCk7cmV0dXJuW2UucixlLmcsZS5iLGUuYV19KSkuY2xhbXAoITApOyJmYXN0Ij09PUM/KFg9RD9mdW5jdGlvbih0KXtyZXR1cm4gai0xLXR9OmEuaWRlbnRpdHksWT1PP2Z1bmN0aW9uKHQpe3JldHVybiBSLTEtdH06YS5pZGVudGl0eSk6KFg9ZnVuY3Rpb24odCl7cmV0dXJuIGEuY29uc3RyYWluKE1hdGgucm91bmQoZy5jMnAoelt0XSkteCksMCxOKX0sWT1mdW5jdGlvbih0KXtyZXR1cm4gYS5jb25zdHJhaW4oTWF0aC5yb3VuZCh2LmMycChJW3RdKS1NKSwwLEIpfSk7dmFyIFEsSyxKLCQsdHQsZXQscnQ9WSgwKSxudD1bcnQscnRdLGl0PUQ/MDoxLG90PU8/MDoxLGF0PTAsc3Q9MCxsdD0wLHV0PTA7aWYoQyl7dmFyIGN0PTAsaHQ9bmV3IFVpbnQ4QXJyYXkoTipCKjQpO2lmKCJiZXN0Ij09PUMpe3ZhciBmdCxwdCxkdCxtdD1uZXcgQXJyYXkoei5sZW5ndGgpLGd0PW5ldyBBcnJheShJLmxlbmd0aCksdnQ9bmV3IEFycmF5KE4pO2ZvcihBPTA7QTx6Lmxlbmd0aDtBKyspbXRbQV09TWF0aC5yb3VuZChnLmMycCh6W0FdKS14KTtmb3IoQT0wO0E8SS5sZW5ndGg7QSsrKWd0W0FdPU1hdGgucm91bmQodi5jMnAoSVtBXSktTSk7Zm9yKEE9MDtOPkE7QSsrKXZ0W0FdPW4oQSxtdCk7Zm9yKEs9MDtCPks7SysrKWZvcihmdD1uKEssZ3QpLHB0PVRbZnQuYmluMF0sZHQ9VFtmdC5iaW4xXSxBPTA7Tj5BO0ErKyxjdCs9NClldD1wKHB0LGR0LHZ0W0FdLGZ0KSxmKGh0LGN0LGV0KX1lbHNlIGZvcihLPTA7Uj5LO0srKylmb3IodHQ9VFtLXSxudD1ZKEspLEE9MDtOPkE7QSsrKWV0PWgodHRbQV0sMSksY3Q9NCoobnQqTitYKEEpKSxmKGh0LGN0LGV0KTt2YXIgeXQ9Vy5jcmVhdGVJbWFnZURhdGEoTixCKTt5dC5kYXRhLnNldChodCksVy5wdXRJbWFnZURhdGEoeXQsMCwwKX1lbHNlIGZvcihLPTA7Uj5LO0srKylpZih0dD1UW0tdLG50LnJldmVyc2UoKSxudFtvdF09WShLKzEpLG50WzBdIT09bnRbMV0mJnZvaWQgMCE9PW50WzBdJiZ2b2lkIDAhPT1udFsxXSlmb3IoSj1YKDApLFE9W0osSl0sQT0wO2o+QTtBKyspUS5yZXZlcnNlKCksUVtpdF09WChBKzEpLFFbMF0hPT1RWzFdJiZ2b2lkIDAhPT1RWzBdJiZ2b2lkIDAhPT1RWzFdJiYoJD10dFtBXSxldD1oKCQsKFFbMV0tUVswXSkqKG50WzFdLW50WzBdKSksVy5maWxsU3R5bGU9InJnYmEoIitldC5qb2luKCIsIikrIikiLFcuZmlsbFJlY3QoUVswXSxudFswXSxRWzFdLVFbMF0sbnRbMV0tbnRbMF0pKTtzdD1NYXRoLnJvdW5kKHN0L2F0KSxsdD1NYXRoLnJvdW5kKGx0L2F0KSx1dD1NYXRoLnJvdW5kKHV0L2F0KTt2YXIgYnQ9bygicmdiKCIrc3QrIiwiK2x0KyIsIit1dCsiKSIpO3QuX2htcGl4Y291bnQ9KHQuX2htcGl4Y291bnR8fDApK2F0LHQuX2htbHVtY291bnQ9KHQuX2htbHVtY291bnR8fDApK2F0KmJ0LmdldEx1bWluYW5jZSgpO3ZhciB4dD1WLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKHIpO3h0LmVudGVyKCkuYXBwZW5kKCJzdmc6aW1hZ2UiKS5hdHRyKHt4bWxuczp1LnN2ZyxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pLHh0LmF0dHIoe2hlaWdodDpCLHdpZHRoOk4seDp4LHk6TSwieGxpbms6aHJlZiI6SC50b0RhdGFVUkwoImltYWdlL3BuZyIpfSkseHQuZXhpdCgpLnJlbW92ZSgpfX12YXIgaT10KCJkMyIpLG89dCgidGlueWNvbG9yMiIpLGE9dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9wbG90cy9wbG90cyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSIpLHU9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxjPXQoIi4vbWF4X3Jvd19sZW5ndGgiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKW4odCxlLHJbaV0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZ2V0X3NjYWxlIjo1MTgsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo1NzksIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9wbG90cyI6NjcxLCIuL21heF9yb3dfbGVuZ3RoIjo3MzcsZDM6MTI0LHRpbnljb2xvcjI6NDc3fV0sNzM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe24uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLmhtIGltYWdlIikuc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybiB0LnRyYWNlLm9wYWNpdHl9KX19LHtkMzoxMjR9XSw3NDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3ZhciByPWUodCksbj1yP2UodCsidHlwZSIsImFycmF5Iik6InNjYWxlZCI7cmV0dXJuInNjYWxlZCI9PT1uJiYoZSh0KyIwIiksZSgiZCIrdCkpLHJ9ZnVuY3Rpb24gaSh0KXtmb3IodmFyIGUscj0hMCxuPSExLGk9ITEsYT0wO2E8dC5sZW5ndGg7YSsrKXsKaWYoZT10W2FdLCFBcnJheS5pc0FycmF5KGUpKXtyPSExO2JyZWFrfWUubGVuZ3RoPjAmJihuPSEwKTtmb3IodmFyIHM9MDtzPGUubGVuZ3RoO3MrKylpZihvKGVbc10pKXtpPSEwO2JyZWFrfX1yZXR1cm4gciYmbiYmaX12YXIgbz10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi9oYXNfY29sdW1ucyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG8scyxsPXIoInoiKTtpZih2b2lkIDA9PT1sfHwhbC5sZW5ndGgpcmV0dXJuIDA7aWYoYSh0KSl7aWYobz1yKCJ4Iikscz1yKCJ5IiksIW98fCFzKXJldHVybiAwfWVsc2V7aWYobz1uKCJ4IixyKSxzPW4oInkiLHIpLCFpKGwpKXJldHVybiAwO3IoInRyYW5zcG9zZSIpfXJldHVybiBlLnoubGVuZ3RofX0seyIuL2hhc19jb2x1bW5zIjo3MzQsImZhc3QtaXNudW1lcmljIjoxMjh9XSw3NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXtyZXR1cm57c3RhcnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsfSxlbmQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsfSxzaXplOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MX19fXZhciBpPXQoIi4uL2Jhci9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHRleHQ6aS50ZXh0LG9yaWVudGF0aW9uOmkub3JpZW50YXRpb24saGlzdGZ1bmM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNvdW50Iiwic3VtIiwiYXZnIiwibWluIiwibWF4Il0sZGZsdDoiY291bnQifSxoaXN0bm9ybTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiIiwicGVyY2VudCIsInByb2JhYmlsaXR5IiwiZGVuc2l0eSIsInByb2JhYmlsaXR5IGRlbnNpdHkiXSxkZmx0OiIifSxhdXRvYmlueDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sbmJpbnN4Ont2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjB9LHhiaW5zOm4oIngiKSxhdXRvYmlueTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sbmJpbnN5Ont2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjB9LHliaW5zOm4oInkiKSxtYXJrZXI6aS5tYXJrZXIsX25lc3RlZE1vZHVsZXM6e2Vycm9yX3k6IkVycm9yQmFycyIsZXJyb3JfeDoiRXJyb3JCYXJzIiwibWFya2VyLmNvbG9yYmFyIjoiQ29sb3JiYXIifSxfZGVwcmVjYXRlZDp7YmFyZGlyOmkuX2RlcHJlY2F0ZWQuYmFyZGlyfX19LHsiLi4vYmFyL2F0dHJpYnV0ZXMiOjY5M31dLDc0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj0wLGk9MDtyPmk7aSsrKWVbaV0/KHRbaV0vPWVbaV0sbis9dFtpXSk6dFtpXT1udWxsO3JldHVybiBufX0se31dLDc0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHIoImhpc3Rub3JtIiksbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXIodCsiYmlucy5zdGFydCIpLG49cih0KyJiaW5zLmVuZCIpLGk9cigiYXV0b2JpbiIrdCwhKGUmJm4pKTtyKGk/Im5iaW5zIit0OnQrImJpbnMuc2l6ZSIpfSksZX19LHt9XSw3NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKTtlLmV4cG9ydHM9e2NvdW50OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gclt0XSsrLDF9LHN1bTpmdW5jdGlvbih0LGUscixpKXt2YXIgbz1pW2VdO3JldHVybiBuKG8pPyhvPU51bWJlcihvKSxyW3RdKz1vLG8pOjB9LGF2ZzpmdW5jdGlvbih0LGUscixpLG8pe3ZhciBhPWlbZV07cmV0dXJuIG4oYSkmJihhPU51bWJlcihhKSxyW3RdKz1hLG9bdF0rKyksMH0sbWluOmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPWlbZV07aWYobihvKSl7aWYobz1OdW1iZXIobyksIW4oclt0XSkpcmV0dXJuIHJbdF09byxvO2lmKHJbdF0+bylyZXR1cm4gclt0XT1vLG8tclt0XX1yZXR1cm4gMH0sbWF4OmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvPWlbZV07aWYobihvKSl7aWYobz1OdW1iZXIobyksIW4oclt0XSkpcmV0dXJuIHJbdF09byxvO2lmKHJbdF08bylyZXR1cm4gclt0XT1vLG8tclt0XX1yZXR1cm4gMH19fSx7ImZhc3QtaXNudW1lcmljIjoxMjh9XSw3NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4vYmluX2Z1bmN0aW9ucyIpLHM9dCgiLi9ub3JtX2Z1bmN0aW9ucyIpLGw9dCgiLi9hdmVyYWdlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoZS52aXNpYmxlPT09ITApe3ZhciByLHU9W10sYz1bXSxoPW8uZ2V0RnJvbUlkKHQsImgiPT09ZS5vcmllbnRhdGlvbj9lLnlheGlzfHwieSI6ZS54YXhpc3x8IngiKSxmPSJoIj09PWUub3JpZW50YXRpb24/InkiOiJ4IixwPXt4OiJ5Iix5OiJ4In1bZl0sZD1oLm1ha2VDYWxjZGF0YShlLGYpO2VbImF1dG9iaW4iK2ZdPT09ITEmJmYrImJpbnMiaW4gZXx8KGVbZisiYmlucyJdPW8uYXV0b0JpbihkLGgsZVsibmJpbnMiK2ZdKSxlLl9pbnB1dFtmKyJiaW5zIl09ZVtmKyJiaW5zIl0pO3ZhciBtLGcsdix5LGI9ZVtmKyJiaW5zIl0seD0ic3RyaW5nIj09dHlwZW9mIGIuc2l6ZSxfPXg/W106Yix3PVtdLE09W10saz0wLEE9ZS5oaXN0bm9ybSxUPWUuaGlzdGZ1bmMsRT0tMSE9PUEuaW5kZXhPZigiZGVuc2l0eSIpLFM9Im1heCI9PT1UfHwibWluIj09PVQsTD1TP251bGw6MCx6PWEuY291bnQsST1zW0FdLFA9ITE7Zm9yKEFycmF5LmlzQXJyYXkoZVtwXSkmJiJjb3VudCIhPT1UJiYoeT1lW3BdLFA9ImF2ZyI9PT1ULHo9YVtUXSkscj1iLnN0YXJ0LGc9Yi5lbmQrKGIuc3RhcnQtby50aWNrSW5jcmVtZW50KGIuc3RhcnQsYi5zaXplKSkvMWU2O2c+ciYmdS5sZW5ndGg8NWUzOyltPW8udGlja0luY3JlbWVudChyLGIuc2l6ZSksdS5wdXNoKChyK20pLzIpLGMucHVzaChMKSx4JiZfLnB1c2gociksRSYmdy5wdXNoKDEvKG0tcikpLFAmJk0ucHVzaCgwKSxyPW07dmFyIEM9Yy5sZW5ndGg7Zm9yKHI9MDtyPGQubGVuZ3RoO3IrKyl2PWkuZmluZEJpbihkW3JdLF8pLHY+PTAmJkM+diYmKGsrPXoodixyLGMseSxNKSk7UCYmKGs9bChjLE0pKSxJJiZJKGMsayx3KTt2YXIgUj1NYXRoLm1pbih1Lmxlbmd0aCxjLmxlbmd0aCksaj1bXSxEPTAsTz1SLTE7Zm9yKHI9MDtSPnI7cisrKWlmKGNbcl0pe0Q9cjticmVha31mb3Iocj1SLTE7cj5EO3ItLSlpZihjW3JdKXtPPXI7YnJlYWt9Zm9yKHI9RDtPPj1yO3IrKyluKHVbcl0pJiZuKGNbcl0pJiZqLnB1c2goe3A6dVtyXSxzOmNbcl0sYjowfSk7cmV0dXJuIGp9fX0seyIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi9hdmVyYWdlIjo3NDIsIi4vYmluX2Z1bmN0aW9ucyI6NzQ0LCIuL25vcm1fZnVuY3Rpb25zIjo3NDgsImZhc3QtaXNudW1lcmljIjoxMjh9XSw3NDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuL2Jpbl9kZWZhdWx0cyIpLGE9dCgiLi4vYmFyL3N0eWxlX2RlZmF1bHRzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycy9kZWZhdWx0cyIpLGw9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixpKX12YXIgaD1jKCJ4IiksZj1jKCJ5Iik7YygidGV4dCIpO3ZhciBwPWMoIm9yaWVudGF0aW9uIixmJiYhaD8iaCI6InYiKSxkPWVbInYiPT09cD8ieCI6InkiXTtpZighZHx8IWQubGVuZ3RoKXJldHVybiB2b2lkKGUudmlzaWJsZT0hMSk7dmFyIG09ZVsiaCI9PT1wPyJ4IjoieSJdO20mJmMoImhpc3RmdW5jIik7dmFyIGc9ImgiPT09cD9bInkiXTpbIngiXTtvKHQsZSxjLGcpLGEodCxlLGMscix1KSxzKHQsZSxpLmRlZmF1bHRMaW5lLHtheGlzOiJ5In0pLHModCxlLGkuZGVmYXVsdExpbmUse2F4aXM6IngiLGluaGVyaXQ6InkifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMvZGVmYXVsdHMiOjUzNCwiLi4vLi4vbGliIjo1OTEsIi4uL2Jhci9zdHlsZV9kZWZhdWx0cyI6NzAzLCIuL2F0dHJpYnV0ZXMiOjc0MSwiLi9iaW5fZGVmYXVsdHMiOjc0M31dLDc0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTtuLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbi5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4uL2Jhci9sYXlvdXRfYXR0cmlidXRlcyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi4vYmFyL2xheW91dF9kZWZhdWx0cyIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLnNldFBvc2l0aW9ucz10KCIuLi9iYXIvc2V0X3Bvc2l0aW9ucyIpLG4ucGxvdD10KCIuLi9iYXIvcGxvdCIpLG4uc3R5bGU9dCgiLi4vYmFyL3N0eWxlIiksbi5jb2xvcmJhcj10KCIuLi9zY2F0dGVyL2NvbG9yYmFyIiksbi5ob3ZlclBvaW50cz10KCIuLi9iYXIvaG92ZXIiKSxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9Imhpc3RvZ3JhbSIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCJiYXIiLCJoaXN0b2dyYW0iLCJvcmllbnRlZCIsImVycm9yQmFyc09LIiwic2hvd0xlZ2VuZCJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjYyMywiLi4vYmFyL2hvdmVyIjo2OTYsIi4uL2Jhci9sYXlvdXRfYXR0cmlidXRlcyI6Njk4LCIuLi9iYXIvbGF5b3V0X2RlZmF1bHRzIjo2OTksIi4uL2Jhci9wbG90Ijo3MDAsIi4uL2Jhci9zZXRfcG9zaXRpb25zIjo3MDEsIi4uL2Jhci9zdHlsZSI6NzAyLCIuLi9zY2F0dGVyL2NvbG9yYmFyIjo3NzYsIi4vYXR0cmlidXRlcyI6NzQxLCIuL2NhbGMiOjc0NSwiLi9kZWZhdWx0cyI6NzQ2fV0sNzQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17cGVyY2VudDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTEwMC9lLGk9MDtyPmk7aSsrKXRbaV0qPW59LHByb2JhYmlsaXR5OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49MDtyPm47bisrKXRbbl0vPWV9LGRlbnNpdHk6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5sZW5ndGg7bj1ufHwxO2Zvcih2YXIgbz0wO2k+bztvKyspdFtvXSo9cltvXSpufSwicHJvYmFiaWxpdHkgZGVuc2l0eSI6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5sZW5ndGg7biYmKGUvPW4pO2Zvcih2YXIgbz0wO2k+bztvKyspdFtvXSo9cltvXS9lfX19LHt9XSw3NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vaGlzdG9ncmFtL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz1hKHt9LHt4Om4ueCx5Om4ueSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sbWFya2VyOntjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSJ9fSxoaXN0bm9ybTpuLmhpc3Rub3JtLGhpc3RmdW5jOm4uaGlzdGZ1bmMsYXV0b2Jpbng6bi5hdXRvYmlueCxuYmluc3g6bi5uYmluc3gseGJpbnM6bi54YmlucyxhdXRvYmlueTpuLmF1dG9iaW55LG5iaW5zeTpuLm5iaW5zeSx5YmluczpuLnliaW5zLHpzbW9vdGg6aS56c21vb3RoLF9uZXN0ZWRNb2R1bGVzOntjb2xvcmJhcjoiQ29sb3JiYXIifX0sbyx7YXV0b2NvbG9yc2NhbGU6YSh7fSxvLmF1dG9jb2xvcnNjYWxlLHtkZmx0OiExfSl9KX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTEyLCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uL2hlYXRtYXAvYXR0cmlidXRlcyI6NzI5LCIuLi9oaXN0b2dyYW0vYXR0cmlidXRlcyI6NzQxfV0sNzUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uL2hpc3RvZ3JhbS9iaW5fZnVuY3Rpb25zIiksYT10KCIuLi9oaXN0b2dyYW0vbm9ybV9mdW5jdGlvbnMiKSxzPXQoIi4uL2hpc3RvZ3JhbS9hdmVyYWdlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbCx1LGMsaCxmLHA9aS5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLGQ9ZS54P3AubWFrZUNhbGNkYXRhKGUsIngiKTpbXSxtPWkuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxnPWUueT9tLm1ha2VDYWxjZGF0YShlLCJ5Iik6W10sdj1NYXRoLm1pbihkLmxlbmd0aCxnLmxlbmd0aCk7ZC5sZW5ndGg+diYmZC5zcGxpY2UodixkLmxlbmd0aC12KSxnLmxlbmd0aD52JiZnLnNwbGljZSh2LGcubGVuZ3RoLXYpLCFlLmF1dG9iaW54JiYieGJpbnMiaW4gZXx8KGUueGJpbnM9aS5hdXRvQmluKGQscCxlLm5iaW5zeCwiMmQiKSwiaGlzdG9ncmFtMmRjb250b3VyIj09PWUudHlwZSYmKGUueGJpbnMuc3RhcnQtPWUueGJpbnMuc2l6ZSxlLnhiaW5zLmVuZCs9ZS54Ymlucy5zaXplKSxlLl9pbnB1dC54Ymlucz1lLnhiaW5zKSwhZS5hdXRvYmlueSYmInliaW5zImluIGV8fChlLnliaW5zPWkuYXV0b0JpbihnLG0sZS5uYmluc3ksIjJkIiksImhpc3RvZ3JhbTJkY29udG91ciI9PT1lLnR5cGUmJihlLnliaW5zLnN0YXJ0LT1lLnliaW5zLnNpemUsZS55Ymlucy5lbmQrPWUueWJpbnMuc2l6ZSksZS5faW5wdXQueWJpbnM9ZS55YmlucyksaD1bXTt2YXIgeSxiLHg9W10sXz1bXSx3PSJzdHJpbmciPT10eXBlb2YgZS54Ymlucy5zaXplP1tdOmUueGJpbnMsTT0ic3RyaW5nIj09dHlwZW9mIGUueGJpbnMuc2l6ZT9bXTplLnliaW5zLGs9MCxBPVtdLFQ9ZS5oaXN0bm9ybSxFPWUuaGlzdGZ1bmMsUz0tMSE9PVQuaW5kZXhPZigiZGVuc2l0eSIpLEw9Im1heCI9PT1FfHwibWluIj09PUUsej1MP251bGw6MCxJPW8uY291bnQsUD1hW1RdLEM9ITEsUj1bXSxqPVtdLEQ9InoiaW4gZT9lLno6Im1hcmtlciJpbiBlJiZBcnJheS5pc0FycmF5KGUubWFya2VyLmNvbG9yKT9lLm1hcmtlci5jb2xvcjoiIjtEJiYiY291bnQiIT09RSYmKEM9ImF2ZyI9PT1FLEk9b1tFXSk7dmFyIE89ZS54YmlucyxGPU8uZW5kKyhPLnN0YXJ0LWkudGlja0luY3JlbWVudChPLnN0YXJ0LE8uc2l6ZSkpLzFlNjtmb3IoZj1PLnN0YXJ0O0Y+ZjtmPWkudGlja0luY3JlbWVudChmLE8uc2l6ZSkpeC5wdXNoKHopLEFycmF5LmlzQXJyYXkodykmJncucHVzaChmKSxDJiZfLnB1c2goMCk7QXJyYXkuaXNBcnJheSh3KSYmdy5wdXNoKGYpO3ZhciBOPXgubGVuZ3RoO2ZvcihyPWUueGJpbnMuc3RhcnQsbD0oZi1yKS9OLHIrPWwvMixPPWUueWJpbnMsRj1PLmVuZCsoTy5zdGFydC1pLnRpY2tJbmNyZW1lbnQoTy5zdGFydCxPLnNpemUpKS8xZTYsZj1PLnN0YXJ0O0Y+ZjtmPWkudGlja0luY3JlbWVudChmLE8uc2l6ZSkpaC5wdXNoKHguY29uY2F0KCkpLEFycmF5LmlzQXJyYXkoTSkmJk0ucHVzaChmKSxDJiZBLnB1c2goXy5jb25jYXQoKSk7QXJyYXkuaXNBcnJheShNKSYmTS5wdXNoKGYpO3ZhciBCPWgubGVuZ3RoO2Zvcih1PWUueWJpbnMuc3RhcnQsYz0oZi11KS9CLHUrPWMvMixTJiYoUj14Lm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHcpPzEvKHdbZSsxXS13W2VdKToxL2x9KSxqPWgubWFwKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoTSk/MS8oTVtlKzFdLU1bZV0pOjEvY30pKSxmPTA7dj5mO2YrKyl5PW4uZmluZEJpbihkW2ZdLHcpLGI9bi5maW5kQmluKGdbZl0sTSkseT49MCYmTj55JiZiPj0wJiZCPmImJihrKz1JKHksZixoW2JdLEQsQVtiXSkpO2lmKEMpZm9yKGI9MDtCPmI7YisrKWsrPXMoaFtiXSxBW2JdKTtpZihQKWZvcihiPTA7Qj5iO2IrKylQKGhbYl0sayxSLGpbYl0pO3JldHVybnt4OmQseDA6cixkeDpsLHk6Zyx5MDp1LGR5OmMsejpofX19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo2MTUsIi4uL2hpc3RvZ3JhbS9hdmVyYWdlIjo3NDIsIi4uL2hpc3RvZ3JhbS9iaW5fZnVuY3Rpb25zIjo3NDQsIi4uL2hpc3RvZ3JhbS9ub3JtX2Z1bmN0aW9ucyI6NzQ4fV0sNzUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9zYW1wbGVfZGVmYXVsdHMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9aSh0LGUscykscygienNtb290aCIpLG8odCxlLHIscyx7cHJlZml4OiIiLGNMZXR0ZXI6InoifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NTE2LCIuLi8uLi9saWIiOjU5MSwiLi9hdHRyaWJ1dGVzIjo3NDksIi4vc2FtcGxlX2RlZmF1bHRzIjo3NTN9XSw3NTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307bi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uY2FsYz10KCIuLi9oZWF0bWFwL2NhbGMiKSxuLnBsb3Q9dCgiLi4vaGVhdG1hcC9wbG90Iiksbi5jb2xvcmJhcj10KCIuLi9oZWF0bWFwL2NvbG9yYmFyIiksbi5zdHlsZT10KCIuLi9oZWF0bWFwL3N0eWxlIiksbi5ob3ZlclBvaW50cz10KCIuLi9oZWF0bWFwL2hvdmVyIiksbi5tb2R1bGVUeXBlPSJ0cmFjZSIsbi5uYW1lPSJoaXN0b2dyYW0yZCIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCIyZE1hcCIsImhpc3RvZ3JhbSJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjYyMywiLi4vaGVhdG1hcC9jYWxjIjo3MzAsIi4uL2hlYXRtYXAvY29sb3JiYXIiOjczMSwiLi4vaGVhdG1hcC9ob3ZlciI6NzM1LCIuLi9oZWF0bWFwL3Bsb3QiOjczOCwiLi4vaGVhdG1hcC9zdHlsZSI6NzM5LCIuL2F0dHJpYnV0ZXMiOjc0OSwiLi9kZWZhdWx0cyI6NzUxfV0sNzUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hpc3RvZ3JhbS9iaW5fZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXIoIngiKSxvPXIoInkiKTtpZighKGkmJmkubGVuZ3RoJiZvJiZvLmxlbmd0aCkpcmV0dXJuIHZvaWQoZS52aXNpYmxlPSExKTt2YXIgYT1yKCJ6Iil8fHIoIm1hcmtlci5jb2xvciIpO2EmJnIoImhpc3RmdW5jIik7dmFyIHM9WyJ4IiwieSJdO24odCxlLHIscyl9fSx7Ii4uL2hpc3RvZ3JhbS9iaW5fZGVmYXVsdHMiOjc0M31dLDc1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9oaXN0b2dyYW0yZC9hdHRyaWJ1dGVzIiksaT10KCIuLi9jb250b3VyL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9YSh7fSx7eDpuLngseTpuLnksejpuLnosbWFya2VyOm4ubWFya2VyLGhpc3Rub3JtOm4uaGlzdG5vcm0saGlzdGZ1bmM6bi5oaXN0ZnVuYyxhdXRvYmlueDpuLmF1dG9iaW54LG5iaW5zeDpuLm5iaW5zeCx4YmluczpuLnhiaW5zLGF1dG9iaW55Om4uYXV0b2JpbnksbmJpbnN5Om4ubmJpbnN5LHliaW5zOm4ueWJpbnMsYXV0b2NvbnRvdXI6aS5hdXRvY29udG91cixuY29udG91cnM6aS5uY29udG91cnMsY29udG91cnM6aS5jb250b3VycyxsaW5lOmkubGluZSxfbmVzdGVkTW9kdWxlczp7Y29sb3JiYXI6IkNvbG9yYmFyIn19LG8pfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo1MTIsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vY29udG91ci9hdHRyaWJ1dGVzIjo3MTksIi4uL2hpc3RvZ3JhbTJkL2F0dHJpYnV0ZXMiOjc0OX1dLDc1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2hpc3RvZ3JhbTJkL3NhbXBsZV9kZWZhdWx0cyIpLG89dCgiLi4vY29udG91ci9zdHlsZV9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX1pKHQsZSxsKTt2YXIgdT1uLmNvZXJjZTIodCxlLGEsImNvbnRvdXJzLnN0YXJ0IiksYz1uLmNvZXJjZTIodCxlLGEsImNvbnRvdXJzLmVuZCIpLGg9bCgiYXV0b2NvbnRvdXIiLCEodSYmYykpO2woaD8ibmNvbnRvdXJzIjoiY29udG91cnMuc2l6ZSIpLG8odCxlLGwscyl9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIjo3MjgsIi4uL2hpc3RvZ3JhbTJkL3NhbXBsZV9kZWZhdWx0cyI6NzUzLCIuL2F0dHJpYnV0ZXMiOjc1NH1dLDc1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTtuLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbi5zdXBwbHlEZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksbi5jYWxjPXQoIi4uL2NvbnRvdXIvY2FsYyIpLG4ucGxvdD10KCIuLi9jb250b3VyL3Bsb3QiKSxuLnN0eWxlPXQoIi4uL2NvbnRvdXIvc3R5bGUiKSxuLmNvbG9yYmFyPXQoIi4uL2NvbnRvdXIvY29sb3JiYXIiKSxuLmhvdmVyUG9pbnRzPXQoIi4uL2NvbnRvdXIvaG92ZXIiKSxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9Imhpc3RvZ3JhbTJkY29udG91ciIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCIyZE1hcCIsImNvbnRvdXIiLCJoaXN0b2dyYW0iXSxuLm1ldGE9e30sZS5leHBvcnRzPW59LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo2MjMsIi4uL2NvbnRvdXIvY2FsYyI6NzIwLCIuLi9jb250b3VyL2NvbG9yYmFyIjo3MjEsIi4uL2NvbnRvdXIvaG92ZXIiOjcyMywiLi4vY29udG91ci9wbG90Ijo3MjYsIi4uL2NvbnRvdXIvc3R5bGUiOjcyNywiLi9hdHRyaWJ1dGVzIjo3NTQsIi4vZGVmYXVsdHMiOjc1NX1dLDc1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vc3VyZmFjZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sejp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxqOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sazp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGRlbGF1bmF5YXhpczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsieCIsInkiLCJ6Il0sZGZsdDoieiJ9LGFscGhhaHVsbDp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi0xfSxpbnRlbnNpdHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxjb2xvcjp7dmFsVHlwZToiY29sb3IifSx2ZXJ0ZXhjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGZhY2Vjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LG9wYWNpdHk6byh7fSxpLm9wYWNpdHkpLGZsYXRzaGFkaW5nOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxjb250b3VyOntzaG93Om8oe30saS5jb250b3Vycy54LnNob3cse30pLGNvbG9yOm8oe30saS5jb250b3Vycy54LmNvbG9yKSx3aWR0aDpvKHt9LGkuY29udG91cnMueC53aWR0aCl9LGNvbG9yc2NhbGU6bi5jb2xvcnNjYWxlLHJldmVyc2VzY2FsZTpuLnJldmVyc2VzY2FsZSxzaG93c2NhbGU6bi5zaG93c2NhbGUsbGlnaHRwb3NpdGlvbjp7eDpvKHt9LGkubGlnaHRwb3NpdGlvbi54LHtkZmx0OjFlNX0pLHk6byh7fSxpLmxpZ2h0cG9zaXRpb24ueSx7ZGZsdDoxZTV9KSx6Om8oe30saS5saWdodHBvc2l0aW9uLnose2RmbHQ6MH0pfSxsaWdodGluZzpvKHt9LHt2ZXJ0ZXhub3JtYWxzZXBzaWxvbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjFlLTEyfSxmYWNlbm9ybWFsc2Vwc2lsb246e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxZS02fX0saS5saWdodGluZyksX25lc3RlZE1vZHVsZXM6e2NvbG9yYmFyOiJDb2xvcmJhciJ9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTEyLCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uL3N1cmZhY2UvYXR0cmlidXRlcyI6ODI1fV0sNzU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1yLHRoaXMubWVzaD1lLHRoaXMubmFtZT0iIix0aGlzLmNvbG9yPSIjZmZmIix0aGlzLmRhdGE9bnVsbCx0aGlzLnNob3dDb250b3VyPSExfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHQubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj11KHRbMV0pLG49ci50b1JnYigpO3JldHVybntpbmRleDplLHJnYjpbbi5yLG4uZyxuLmIsMV19fSl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdC5tYXAocCl9ZnVuY3Rpb24gYSh0LGUscil7Zm9yKHZhciBuPW5ldyBBcnJheSh0Lmxlbmd0aCksaT0wO2k8dC5sZW5ndGg7KytpKW5baV09W3RbaV0sZVtpXSxyW2ldXTtyZXR1cm4gbn1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsaT1sKHtnbDpyfSksbz1uZXcgbih0LGksZS51aWQpO3JldHVybiBvLnVwZGF0ZShlKSx0LmdscGxvdC5hZGQoaSksb312YXIgbD10KCJnbC1tZXNoM2QiKSx1PXQoInRpbnljb2xvcjIiKSxjPXQoImRlbGF1bmF5LXRyaWFuZ3VsYXRlIiksaD10KCJhbHBoYS1zaGFwZSIpLGY9dCgiY29udmV4LWh1bGwiKSxwPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxkPW4ucHJvdG90eXBlO2QuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMubWVzaCl7dmFyIGU9dC5kYXRhLmluZGV4O3JldHVybiB0LnRyYWNlQ29vcmRpbmF0ZT1bdGhpcy5kYXRhLnhbZV0sdGhpcy5kYXRhLnlbZV0sdGhpcy5kYXRhLnpbZV1dLCEwfX0sZC51cGRhdGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUscil7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmQybChlKSpyfSl9dmFyIHI9dGhpcy5zY2VuZSxuPXIuZnVsbFNjZW5lTGF5b3V0O3RoaXMuZGF0YT10O3ZhciBzLGw9YShlKG4ueGF4aXMsdC54LHIuZGF0YVNjYWxlWzBdKSxlKG4ueWF4aXMsdC55LHIuZGF0YVNjYWxlWzFdKSxlKG4uemF4aXMsdC56LHIuZGF0YVNjYWxlWzJdKSk7aWYodC5pJiZ0LmomJnQuaylzPWEodC5pLHQuaix0LmspO2Vsc2UgaWYoMD09PXQuYWxwaGFodWxsKXM9ZihsKTtlbHNlIGlmKHQuYWxwaGFodWxsPjApcz1oKHQuYWxwaGFodWxsLGwpO2Vsc2V7dmFyIHU9WyJ4IiwieSIsInoiXS5pbmRleE9mKHQuZGVsYXVuYXlheGlzKTtzPWMobC5tYXAoZnVuY3Rpb24odCl7cmV0dXJuW3RbKHUrMSklM10sdFsodSsyKSUzXV19KSl9dmFyIGQ9e3Bvc2l0aW9uczpsLGNlbGxzOnMsbGlnaHRQb3NpdGlvbjpbdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdLGFtYmllbnQ6dC5saWdodGluZy5hbWJpZW50LGRpZmZ1c2U6dC5saWdodGluZy5kaWZmdXNlLHNwZWN1bGFyOnQubGlnaHRpbmcuc3BlY3VsYXIscm91Z2huZXNzOnQubGlnaHRpbmcucm91Z2huZXNzLGZyZXNuZWw6dC5saWdodGluZy5mcmVzbmVsLHZlcnRleE5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24sZmFjZU5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uLG9wYWNpdHk6dC5vcGFjaXR5LGNvbnRvdXJFbmFibGU6dC5jb250b3VyLnNob3csY29udG91ckNvbG9yOnAodC5jb250b3VyLmNvbG9yKS5zbGljZSgwLDMpLGNvbnRvdXJXaWR0aDp0LmNvbnRvdXIud2lkdGgsdXNlRmFjZXROb3JtYWxzOnQuZmxhdHNoYWRpbmd9O3QuaW50ZW5zaXR5Pyh0aGlzLmNvbG9yPSIjZmZmIixkLnZlcnRleEludGVuc2l0eT10LmludGVuc2l0eSxkLmNvbG9ybWFwPWkodC5jb2xvcnNjYWxlKSk6dC52ZXJ0ZXhjb2xvcj8odGhpcy5jb2xvcj10LnZlcnRleGNvbG9yc1swXSxkLnZlcnRleENvbG9ycz1vKHQudmVydGV4Y29sb3IpKTp0LmZhY2Vjb2xvcj8odGhpcy5jb2xvcj10LmZhY2Vjb2xvclswXSxkLmNlbGxDb2xvcnM9byh0LmZhY2Vjb2xvcikpOih0aGlzLmNvbG9yPXQuY29sb3IsZC5tZXNoQ29sb3I9cCh0LmNvbG9yKSksdGhpcy5tZXNoLnVwZGF0ZShkKX0sZC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubWVzaCksdGhpcy5tZXNoLmRpc3Bvc2UoKX0sZS5leHBvcnRzPXN9LHsiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NjAzLCJhbHBoYS1zaGFwZSI6NDEsImNvbnZleC1odWxsIjoxMTMsImRlbGF1bmF5LXRyaWFuZ3VsYXRlIjoxMjUsImdsLW1lc2gzZCI6MTYxLHRpbnljb2xvcjI6NDc3fV0sNzU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcmJhci9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe2Z1bmN0aW9uIHMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX1mdW5jdGlvbiBsKHQpe3ZhciBlPXQubWFwKGZ1bmN0aW9uKHQpe3ZhciBlPXModCk7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZSk/ZTpudWxsfSk7cmV0dXJuIGUuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQubGVuZ3RoPT09ZVswXS5sZW5ndGh9KSYmZX12YXIgdT1sKFsieCIsInkiLCJ6Il0pLGM9bChbImkiLCJqIiwiayJdKTtyZXR1cm4gdT8oYyYmYy5mb3JFYWNoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7KytlKXRbZV18PTB9KSxbImxpZ2h0aW5nLmFtYmllbnQiLCJsaWdodGluZy5kaWZmdXNlIiwibGlnaHRpbmcuc3BlY3VsYXIiLCJsaWdodGluZy5yb3VnaG5lc3MiLCJsaWdodGluZy5mcmVzbmVsIiwibGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24iLCJsaWdodGluZy5mYWNlbm9ybWFsc2Vwc2lsb24iLCJsaWdodHBvc2l0aW9uLngiLCJsaWdodHBvc2l0aW9uLnkiLCJsaWdodHBvc2l0aW9uLnoiLCJjb250b3VyLnNob3ciLCJjb250b3VyLmNvbG9yIiwiY29udG91ci53aWR0aCIsImNvbG9yc2NhbGUiLCJyZXZlcnNlc2NhbGUiLCJmbGF0c2hhZGluZyIsImFscGhhaHVsbCIsImRlbGF1bmF5YXhpcyIsIm9wYWNpdHkiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ModCl9KSwiaW50ZW5zaXR5ImluIHQ/KHMoImludGVuc2l0eSIpLHMoInNob3dzY2FsZSIsITApKTooZS5zaG93c2NhbGU9ITEsInZlcnRleGNvbG9yImluIHQ/cygidmVydGV4Y29sb3IiKToiZmFjZWNvbG9yImluIHQ/cygiZmFjZWNvbG9yIik6cygiY29sb3IiLHIpKSxlLnJldmVyc2VzY2FsZSYmKGUuY29sb3JzY2FsZT1lLmNvbG9yc2NhbGUubWFwKGZ1bmN0aW9uKHQpe3JldHVyblsxLXRbMF0sdFsxXV19KS5yZXZlcnNlKCkpLHZvaWQoZS5zaG93c2NhbGUmJmkodCxlLGEpKSk6dm9pZChlLnZpc2libGU9ITEpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yYmFyL2RlZmF1bHRzIjo1MDgsIi4uLy4uL2xpYiI6NTkxLCIuL2F0dHJpYnV0ZXMiOjc1N31dLDc2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTtuLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbi5zdXBwbHlEZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksbi5jb2xvcmJhcj10KCIuLi9oZWF0bWFwL2NvbG9yYmFyIiksbi5wbG90PXQoIi4vY29udmVydCIpLG4ubW9kdWxlVHlwZT0idHJhY2UiLG4ubmFtZT0ibWVzaDNkIixuLmJhc2VQbG90TW9kdWxlPXQoIi4uLy4uL3Bsb3RzL2dsM2QiKSxuLmNhdGVnb3JpZXM9WyJnbDNkIl0sbi5tZXRhPXt9LGUuZXhwb3J0cz1ufSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjY1MSwiLi4vaGVhdG1hcC9jb2xvcmJhciI6NzMxLCIuL2F0dHJpYnV0ZXMiOjc1NywiLi9jb252ZXJ0Ijo3NTgsIi4vZGVmYXVsdHMiOjc1OX1dLDc2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXtsYWJlbHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxsYWJlbDA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxkbGFiZWw6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxfSx2YWx1ZXM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxtYXJrZXI6e2NvbG9yczp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lLGFycmF5T2s6ITB9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxhcnJheU9rOiEwfX19LHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxzY2FsZWdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJ2YWx1ZSIsInBlcmNlbnQiXSxleHRyYXM6WyJub25lIl19LGhvdmVyaW5mbzphKHt9LG8uaG92ZXJpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwicGVyY2VudCIsIm5hbWUiXX0pLHRleHRwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5zaWRlIiwib3V0c2lkZSIsImF1dG8iLCJub25lIl0sZGZsdDoiYXV0byIsYXJyYXlPazohMH0sdGV4dGZvbnQ6YSh7fSxpLHt9KSxpbnNpZGV0ZXh0Zm9udDphKHt9LGkse30pLG91dHNpZGV0ZXh0Zm9udDphKHt9LGkse30pLGRvbWFpbjp7eDp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxfSx7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX1dLGRmbHQ6WzAsMV19LHk6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MX0se3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjF9XSxkZmx0OlswLDFdfX0saG9sZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjB9LHNvcnQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdLGRmbHQ6ImNvdW50ZXJjbG9ja3dpc2UifSxyb3RhdGlvbjp7dmFsVHlwZToibnVtYmVyIixtaW46LTM2MCxtYXg6MzYwLGRmbHQ6MH0scHVsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsYXJyYXlPazohMH19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NTA1LCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjYxMywiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo2MzN9XSw3NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0sbz1pWzBdLnRyYWNlO28uX21vZHVsZT09PWUmJm8udmlzaWJsZT09PSEwJiZyLnB1c2goaSl9cmV0dXJuIHJ9dmFyIGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKTtyLm5hbWU9InBpZSIsci5wbG90PWZ1bmN0aW9uKHQpe3ZhciBlPWkuZ2V0TW9kdWxlKCJwaWUiKSxyPW4odC5jYWxjZGF0YSxlKTtyLmxlbmd0aCYmZS5wbG90KHQscil9LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bi5faGFzJiZuLl9oYXMoInBpZSIpLG89ZS5faGFzJiZlLl9oYXMoInBpZSIpO2kmJiFvJiZuLl9waWVsYXllci5zZWxlY3RBbGwoImcudHJhY2UiKS5yZW1vdmUoKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MX1dLDc2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe2lmKCFsKXt2YXIgZT1hLmRlZmF1bHRzO2w9ZS5zbGljZSgpO3ZhciByO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspbC5wdXNoKG8oZVtyXSkubGlnaHRlbigyMCkudG9IZXhTdHJpbmcoKSk7Zm9yKHI9MDtyPGEuZGVmYXVsdHMubGVuZ3RoO3IrKylsLnB1c2gobyhlW3JdKS5kYXJrZW4oMjApLnRvSGV4U3RyaW5nKCkpfXJldHVybiBsW3QlbC5sZW5ndGhdfXZhciBpPXQoImZhc3QtaXNudW1lcmljIiksbz10KCJ0aW55Y29sb3IyIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikscz10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixsLHUsYyxoLGYscD1lLnZhbHVlcyxkPWUubGFiZWxzLG09W10sZz10Ll9mdWxsTGF5b3V0LHY9Zy5fcGllY29sb3JtYXAseT17fSxiPSExLHg9MCxfPWcuaGlkZGVubGFiZWxzfHxbXTtpZihlLmRsYWJlbClmb3IoZD1uZXcgQXJyYXkocC5sZW5ndGgpLHI9MDtyPHAubGVuZ3RoO3IrKylkW3JdPVN0cmluZyhlLmxhYmVsMCtyKmUuZGxhYmVsKTtmb3Iocj0wO3I8cC5sZW5ndGg7cisrKWw9cFtyXSxpKGwpJiYobD0rbCwwPmx8fCh1PWRbcl0sdm9pZCAwIT09dSYmIiIhPT11fHwodT1yKSx1PVN0cmluZyh1KSx2b2lkIDA9PT15W3VdJiYoeVt1XT0hMCxjPW8oZS5tYXJrZXIuY29sb3JzW3JdKSxjLmlzVmFsaWQoKT8oYz1hLmFkZE9wYWNpdHkoYyxjLmdldEFscGhhKCkpLHZbdV18fCh2W3VdPWMpKTp2W3VdP2M9dlt1XTooYz0hMSxiPSEwKSxoPS0xIT09Xy5pbmRleE9mKHUpLGh8fCh4Kz1sKSxtLnB1c2goe3Y6bCxsYWJlbDp1LGNvbG9yOmMsaTpyLGhpZGRlbjpofSkpKSk7aWYoZS5zb3J0JiZtLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS52LXQudn0pLGIpZm9yKHI9MDtyPG0ubGVuZ3RoO3IrKylmPW1bcl0sZi5jb2xvcj09PSExJiYodltmLmxhYmVsXT1mLmNvbG9yPW4oZy5fcGllZGVmYXVsdGNvbG9yY291bnQpLGcuX3BpZWRlZmF1bHRjb2xvcmNvdW50KyspO2lmKG1bMF0mJihtWzBdLnZUb3RhbD14KSxlLnRleHRpbmZvJiYibm9uZSIhPT1lLnRleHRpbmZvKXt2YXIgdyxNPS0xIT09ZS50ZXh0aW5mby5pbmRleE9mKCJsYWJlbCIpLGs9LTEhPT1lLnRleHRpbmZvLmluZGV4T2YoInRleHQiKSxBPS0xIT09ZS50ZXh0aW5mby5pbmRleE9mKCJ2YWx1ZSIpLFQ9LTEhPT1lLnRleHRpbmZvLmluZGV4T2YoInBlcmNlbnQiKSxFPWcuc2VwYXJhdG9ycztmb3Iocj0wO3I8bS5sZW5ndGg7cisrKWY9bVtyXSx3PU0/W2YubGFiZWxdOltdLGsmJmUudGV4dFtmLmldJiZ3LnB1c2goZS50ZXh0W2YuaV0pLEEmJncucHVzaChzLmZvcm1hdFBpZVZhbHVlKGYudixFKSksVCYmdy5wdXNoKHMuZm9ybWF0UGllUGVyY2VudChmLnYveCxFKSksZi50ZXh0PXcuam9pbigiPGJyPiIpfXJldHVybiBtfTt2YXIgbH0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4vaGVscGVycyI6NzY1LCJmYXN0LWlzbnVtZXJpYyI6MTI4LHRpbnljb2xvcjI6NDc3fV0sNzY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIGEocixvKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixvKX12YXIgcz1uLmNvZXJjZUZvbnQsbD1hKCJ2YWx1ZXMiKTtpZighQXJyYXkuaXNBcnJheShsKXx8IWwubGVuZ3RoKXJldHVybiB2b2lkKGUudmlzaWJsZT0hMSk7dmFyIHU9YSgibGFiZWxzIik7QXJyYXkuaXNBcnJheSh1KXx8KGEoImxhYmVsMCIpLGEoImRsYWJlbCIpKTt2YXIgYz1hKCJtYXJrZXIubGluZS53aWR0aCIpO2MmJmEoIm1hcmtlci5saW5lLmNvbG9yIik7dmFyIGg9YSgibWFya2VyLmNvbG9ycyIpO0FycmF5LmlzQXJyYXkoaCl8fChlLm1hcmtlci5jb2xvcnM9W10pLGEoInNjYWxlZ3JvdXAiKTt2YXIgZj1hKCJ0ZXh0IikscD1hKCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheShmKT8idGV4dCtwZXJjZW50IjoicGVyY2VudCIpO2lmKGEoImhvdmVyaW5mbyIsMT09PW8uX2RhdGFMZW5ndGg/ImxhYmVsK3RleHQrdmFsdWUrcGVyY2VudCI6dm9pZCAwKSxwJiYibm9uZSIhPT1wKXt2YXIgZD1hKCJ0ZXh0cG9zaXRpb24iKSxtPUFycmF5LmlzQXJyYXkoZCl8fCJhdXRvIj09PWQsZz1tfHwiaW5zaWRlIj09PWQsdj1tfHwib3V0c2lkZSI9PT1kO2lmKGd8fHYpe3ZhciB5PXMoYSwidGV4dGZvbnQiLG8uZm9udCk7ZyYmcyhhLCJpbnNpZGV0ZXh0Zm9udCIseSksdiYmcyhhLCJvdXRzaWRldGV4dGZvbnQiLHkpfX1hKCJkb21haW4ueCIpLGEoImRvbWFpbi55IiksYSgiaG9sZSIpLGEoInNvcnQiKSxhKCJkaXJlY3Rpb24iKSxhKCJyb3RhdGlvbiIpLGEoInB1bGwiKX19LHsiLi4vLi4vbGliIjo1OTEsIi4vYXR0cmlidXRlcyI6NzYxfV0sNzY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO3IuZm9ybWF0UGllUGVyY2VudD1mdW5jdGlvbih0LGUpe3ZhciByPSgxMDAqdCkudG9QcmVjaXNpb24oMyk7cmV0dXJuLTEhPT1yLmxhc3RJbmRleE9mKCIuIikmJihyPXIucmVwbGFjZSgvWy5dPzArJC8sIiIpKSxuLm51bVNlcGFyYXRlKHIsZSkrIiUifSxyLmZvcm1hdFBpZVZhbHVlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC50b1ByZWNpc2lvbigxMCk7cmV0dXJuLTEhPT1yLmxhc3RJbmRleE9mKCIuIikmJihyPXIucmVwbGFjZSgvWy5dPzArJC8sIiIpKSxuLm51bVNlcGFyYXRlKHIsZSl9fSx7Ii4uLy4uL2xpYiI6NTkxfV0sNzY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O24uYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxuLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLnN1cHBseUxheW91dERlZmF1bHRzPXQoIi4vbGF5b3V0X2RlZmF1bHRzIiksbi5sYXlvdXRBdHRyaWJ1dGVzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxuLmNhbGM9dCgiLi9jYWxjIiksbi5wbG90PXQoIi4vcGxvdCIpLG4uc3R5bGU9dCgiLi9zdHlsZSIpLG4uc3R5bGVPbmU9dCgiLi9zdHlsZV9vbmUiKSxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9InBpZSIsbi5iYXNlUGxvdE1vZHVsZT10KCIuL2Jhc2VfcGxvdCIpLG4uY2F0ZWdvcmllcz1bInBpZSIsInNob3dMZWdlbmQiXSxuLm1ldGE9e30sZS5leHBvcnRzPW59LHsiLi9hdHRyaWJ1dGVzIjo3NjEsIi4vYmFzZV9wbG90Ijo3NjIsIi4vY2FsYyI6NzYzLCIuL2RlZmF1bHRzIjo3NjQsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjc2NywiLi9sYXlvdXRfZGVmYXVsdHMiOjc2OCwiLi9wbG90Ijo3NjksIi4vc3R5bGUiOjc3MCwiLi9zdHlsZV9vbmUiOjc3MX1dLDc2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2hpZGRlbmxhYmVsczp7dmFsVHlwZToiZGF0YV9hcnJheSJ9fX0se31dLDc2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsbyl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsbyl9cigiaGlkZGVubGFiZWxzIil9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo3Njd9XSw3Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49TWF0aC5zcXJ0KHQud2lkdGgqdC53aWR0aCt0LmhlaWdodCp0LmhlaWdodCksbz10LndpZHRoL3QuaGVpZ2h0LGE9TWF0aC5QSSpNYXRoLm1pbihlLnYvci52VG90YWwsLjUpLHM9MS1yLnRyYWNlLmhvbGUsbD1pKGUsciksdT17c2NhbGU6bCpyLnIqMi9uLHJDZW50ZXI6MS1sLHJvdGF0ZTowfTtpZih1LnNjYWxlPj0xKXJldHVybiB1O3ZhciBjPW8rMS8oMipNYXRoLnRhbihhKSksaD1yLnIqTWF0aC5taW4oMS8oTWF0aC5zcXJ0KGMqYysuNSkrYykscy8oTWF0aC5zcXJ0KG8qbytzLzIpK28pKSxmPXtzY2FsZToyKmgvdC5oZWlnaHQsckNlbnRlcjpNYXRoLmNvcyhoL3IuciktaCpvL3Iucixyb3RhdGU6KDE4MC9NYXRoLlBJKmUubWlkYW5nbGUrNzIwKSUxODAtOTB9LHA9MS9vLGQ9cCsxLygyKk1hdGgudGFuKGEpKSxtPXIucipNYXRoLm1pbigxLyhNYXRoLnNxcnQoZCpkKy41KStkKSxzLyhNYXRoLnNxcnQocCpwK3MvMikrcCkpLGc9e3NjYWxlOjIqbS90LndpZHRoLHJDZW50ZXI6TWF0aC5jb3MobS9yLnIpLW0vby9yLnIscm90YXRlOigxODAvTWF0aC5QSSplLm1pZGFuZ2xlKzgxMCklMTgwLTkwfSx2PWcuc2NhbGU+Zi5zY2FsZT9nOmY7cmV0dXJuIHUuc2NhbGU8MSYmdi5zY2FsZT51LnNjYWxlP3Y6dX1mdW5jdGlvbiBpKHQsZSl7aWYodC52PT09ZS52VG90YWwmJiFlLnRyYWNlLmhvbGUpcmV0dXJuIDE7dmFyIHI9TWF0aC5QSSpNYXRoLm1pbih0LnYvZS52VG90YWwsLjUpO3JldHVybiBNYXRoLm1pbigxLygxKzEvTWF0aC5zaW4ocikpLCgxLWUudHJhY2UuaG9sZSkvMil9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPWUucHhtaWRbMF0sbj1lLnB4bWlkWzFdLGk9dC53aWR0aC8yLG89dC5oZWlnaHQvMjtyZXR1cm4gMD5yJiYoaSo9LTEpLDA+biYmKG8qPS0xKSx7c2NhbGU6MSxyQ2VudGVyOjEscm90YXRlOjAseDppK01hdGguYWJzKG8pKihpPjA/MTotMSkvMix5Om8vKDErcipyLyhuKm4pKSxvdXRzaWRlOiEwfX1mdW5jdGlvbiBhKHQsZSl7ZnVuY3Rpb24gcih0LGUpe3JldHVybiB0LnB4bWlkWzFdLWUucHhtaWRbMV19ZnVuY3Rpb24gbih0LGUpe3JldHVybiBlLnB4bWlkWzFdLXQucHhtaWRbMV19ZnVuY3Rpb24gaSh0LHIpe3J8fChyPXt9KTt2YXIgbixpLG8scyxmLHAsbT1yLmxhYmVsRXh0cmFZKyhhP3IueUxhYmVsTWF4OnIueUxhYmVsTWluKSxnPWE/dC55TGFiZWxNaW46dC55TGFiZWxNYXgsdj1hP3QueUxhYmVsTWF4OnQueUxhYmVsTWluLHk9dC5jeUZpbmFsK3UodC5weDBbMV0sdC5weDFbMV0pLGI9bS1nO2lmKGIqaD4wJiYodC5sYWJlbEV4dHJhWT1iKSxBcnJheS5pc0FycmF5KGUucHVsbCkpZm9yKGk9MDtpPGQubGVuZ3RoO2krKylvPWRbaV0sbz09PXR8fChlLnB1bGxbdC5pXXx8MCk+PWUucHVsbFtvLmldfHwoKHQucHhtaWRbMV0tby5weG1pZFsxXSkqaD4wPyhzPW8uY3lGaW5hbCt1KG8ucHgwWzFdLG8ucHgxWzFdKSxiPXMtZy10LmxhYmVsRXh0cmFZLGIqaD4wJiYodC5sYWJlbEV4dHJhWSs9YikpOih2K3QubGFiZWxFeHRyYVkteSkqaD4wJiYobj0zKmMqTWF0aC5hYnMoaS1kLmluZGV4T2YodCkpLGY9by5jeEZpbmFsK2woby5weDBbMF0sby5weDFbMF0pLHA9ZituLSh0LmN4RmluYWwrdC5weG1pZFswXSktdC5sYWJlbEV4dHJhWCxwKmM+MCYmKHQubGFiZWxFeHRyYVgrPXApKSl9dmFyIG8sYSxzLGwsdSxjLGgsZixwLGQsbSxnLHY7Zm9yKGE9MDsyPmE7YSsrKWZvcihzPWE/cjpuLHU9YT9NYXRoLm1heDpNYXRoLm1pbixoPWE/MTotMSxvPTA7Mj5vO28rKyl7Zm9yKGw9bz9NYXRoLm1heDpNYXRoLm1pbixjPW8/MTotMSxmPXRbYV1bb10sZi5zb3J0KHMpLHA9dFsxLWFdW29dLGQ9cC5jb25jYXQoZiksZz1bXSxtPTA7bTxmLmxlbmd0aDttKyspdm9pZCAwIT09ZlttXS55TGFiZWxNaWQmJmcucHVzaChmW21dKTtmb3Iodj0hMSxtPTA7YSYmbTxwLmxlbmd0aDttKyspaWYodm9pZCAwIT09cFttXS55TGFiZWxNaWQpe3Y9cFttXTticmVha31mb3IobT0wO208Zy5sZW5ndGg7bSsrKXt2YXIgeT1tJiZnW20tMV07diYmIW0mJih5PXYpLGkoZ1ttXSx5KX19fWZ1bmN0aW9uIHModCxlKXt2YXIgcixuLGksbyxhLHMsbCxjLGgsZixwPVtdO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe2lmKGE9dFtpXVswXSxzPWEudHJhY2Uscj1lLncqKHMuZG9tYWluLnhbMV0tcy5kb21haW4ueFswXSksbj1lLmgqKHMuZG9tYWluLnlbMV0tcy5kb21haW4ueVswXSksbD1zLnRpbHRheGlzKk1hdGguUEkvMTgwLGM9cy5wdWxsLEFycmF5LmlzQXJyYXkoYykpZm9yKGM9MCxvPTA7bzxzLnB1bGwubGVuZ3RoO28rKylzLnB1bGxbb10+YyYmKGM9cy5wdWxsW29dKTthLnI9TWF0aC5taW4oci91KHMudGlsdCxNYXRoLnNpbihsKSxzLmRlcHRoKSxuL3Uocy50aWx0LE1hdGguY29zKGwpLHMuZGVwdGgpKS8oMisyKmMpLGEuY3g9ZS5sK2Uudyoocy5kb21haW4ueFsxXStzLmRvbWFpbi54WzBdKS8yLGEuY3k9ZS50K2UuaCooMi1zLmRvbWFpbi55WzFdLXMuZG9tYWluLnlbMF0pLzIscy5zY2FsZWdyb3VwJiYtMT09PXAuaW5kZXhPZihzLnNjYWxlZ3JvdXApJiZwLnB1c2gocy5zY2FsZWdyb3VwKX1mb3Iobz0wO288cC5sZW5ndGg7bysrKXtmb3IoZj0xLzAsaD1wW29dLGk9MDtpPHQubGVuZ3RoO2krKylhPXRbaV1bMF0sYS50cmFjZS5zY2FsZWdyb3VwPT09aCYmKGY9TWF0aC5taW4oZixhLnIqYS5yL2EudlRvdGFsKSk7Zm9yKGk9MDtpPHQubGVuZ3RoO2krKylhPXRbaV1bMF0sYS50cmFjZS5zY2FsZWdyb3VwPT09aCYmKGEucj1NYXRoLnNxcnQoZiphLnZUb3RhbCkpfX1mdW5jdGlvbiBsKHQpe2Z1bmN0aW9uIGUodCl7dmFyIGU9aC5yKk1hdGguc2luKHQpLHI9LWgucipNYXRoLmNvcyh0KTtyZXR1cm4gcD9bZSooMS1zKm4qbikrciphKnMsZSphKnMrciooMS1zKmkqaSksTWF0aC5zaW4obykqKHIqaS1lKm4pXTpbZSxyXX12YXIgcixuLGksbyxhLHMsbCx1LGMsaD10WzBdLGY9aC50cmFjZSxwPWYudGlsdCxkPWYucm90YXRpb24qTWF0aC5QSS8xODAsbT0yKk1hdGguUEkvaC52VG90YWwsZz0icHgwIix2PSJweDEiO2lmKCJjb3VudGVyY2xvY2t3aXNlIj09PWYuZGlyZWN0aW9uKXtmb3IobD0wO2w8dC5sZW5ndGgmJnRbbF0uaGlkZGVuO2wrKyk7aWYobD09PXQubGVuZ3RoKXJldHVybjtkKz1tKnRbbF0udixtKj0tMSxnPSJweDEiLHY9InB4MCJ9Zm9yKHAmJihvPXAqTWF0aC5QSS8xODAscj1mLnRpbHRheGlzKk1hdGguUEkvMTgwLGE9TWF0aC5zaW4ocikqTWF0aC5jb3Mocikscz0xLU1hdGguY29zKG8pLG49TWF0aC5zaW4ociksaT1NYXRoLmNvcyhyKSksYz1lKGQpLGw9MDtsPHQubGVuZ3RoO2wrKyl1PXRbbF0sdS5oaWRkZW58fCh1W2ddPWMsZCs9bSp1LnYvMix1LnB4bWlkPWUoZCksdS5taWRhbmdsZT1kLGQrPW0qdS52LzIsYz1lKGQpLHVbdl09Yyx1LmxhcmdlQXJjPXUudj5oLnZUb3RhbC8yPzE6MCl9ZnVuY3Rpb24gdSh0LGUscil7aWYoIXQpcmV0dXJuIDE7dmFyIG49TWF0aC5zaW4odCpNYXRoLlBJLzE4MCk7cmV0dXJuIE1hdGgubWF4KC4wMSxyKm4qTWF0aC5hYnMoZSkrMipNYXRoLnNxcnQoMS1uKm4qZSplKSl9dmFyIGM9dCgiZDMiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCIpLGY9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHA9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksZD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxtPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQ7cyhlLHIuX3NpemUpO3ZhciB1PXIuX3BpZWxheWVyLnNlbGVjdEFsbCgiZy50cmFjZSIpLmRhdGEoZSk7dS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoeyJzdHJva2UtbGluZWpvaW4iOiJyb3VuZCIsImNsYXNzIjoidHJhY2UifSksdS5leGl0KCkucmVtb3ZlKCksdS5vcmRlcigpLHUuZWFjaChmdW5jdGlvbihlKXt2YXIgcz1jLnNlbGVjdCh0aGlzKSx1PWVbMF0sZz11LnRyYWNlLHY9MCx5PShnLmRlcHRofHwwKSp1LnIqTWF0aC5zaW4odikvMixiPWcudGlsdGF4aXN8fDAseD1iKk1hdGguUEkvMTgwLF89W3kqTWF0aC5zaW4oeCkseSpNYXRoLmNvcyh4KV0sdz11LnIqTWF0aC5jb3ModiksTT1zLnNlbGVjdEFsbCgiZy5wYXJ0IikuZGF0YShnLnRpbHQ/WyJ0b3AiLCJzaWRlcyJdOlsidG9wIl0pO00uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsZnVuY3Rpb24odCl7cmV0dXJuIHQrIiBwYXJ0In0pLE0uZXhpdCgpLnJlbW92ZSgpLE0ub3JkZXIoKSxsKGUpLHMuc2VsZWN0QWxsKCIudG9wIikuZWFjaChmdW5jdGlvbigpe3ZhciBzPWMuc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5zbGljZSIpLmRhdGEoZSk7cy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNlIiwhMCkscy5leGl0KCkucmVtb3ZlKCk7dmFyIGw9W1tbXSxbXV0sW1tdLFtdXV0sdj0hMTtzLmVhY2goZnVuY3Rpb24oYSl7ZnVuY3Rpb24gcyhlKXt2YXIgbj10Ll9mdWxsTGF5b3V0LG89dC5fZnVsbERhdGFbZy5pbmRleF0scz1vLmhvdmVyaW5mbztpZigiYWxsIj09PXMmJihzPSJsYWJlbCt0ZXh0K3ZhbHVlK3BlcmNlbnQrbmFtZSIpLCF0Ll9kcmFnZ2luZyYmbi5ob3Zlcm1vZGUhPT0hMSYmIm5vbmUiIT09cyYmcyl7dmFyIGw9aShhLHUpLGM9TSthLnB4bWlkWzBdKigxLWwpLGY9aythLnB4bWlkWzFdKigxLWwpLHA9ci5zZXBhcmF0b3JzLGQ9W107LTEhPT1zLmluZGV4T2YoImxhYmVsIikmJmQucHVzaChhLmxhYmVsKSxvLnRleHQmJm8udGV4dFthLmldJiYtMSE9PXMuaW5kZXhPZigidGV4dCIpJiZkLnB1c2goby50ZXh0W2EuaV0pLC0xIT09cy5pbmRleE9mKCJ2YWx1ZSIpJiZkLnB1c2gobS5mb3JtYXRQaWVWYWx1ZShhLnYscCkpLC0xIT09cy5pbmRleE9mKCJwZXJjZW50IikmJmQucHVzaChtLmZvcm1hdFBpZVBlcmNlbnQoYS52L3UudlRvdGFsLHApKSxoLmxvbmVIb3Zlcih7eDA6Yy1sKnUucix4MTpjK2wqdS5yLHk6Zix0ZXh0OmQuam9pbigiPGJyPiIpLG5hbWU6LTEhPT1zLmluZGV4T2YoIm5hbWUiKT9vLm5hbWU6dm9pZCAwLGNvbG9yOmEuY29sb3IsaWRlYWxBbGlnbjphLnB4bWlkWzBdPDA/ImxlZnQiOiJyaWdodCJ9LHtjb250YWluZXI6bi5faG92ZXJsYXllci5ub2RlKCksb3V0ZXJDb250YWluZXI6bi5fcGFwZXIubm9kZSgpfSksaC5ob3Zlcih0LGUsInBpZSIpLEU9ITB9fWZ1bmN0aW9uIGYoZSl7dC5lbWl0KCJwbG90bHlfdW5ob3ZlciIse3BvaW50czpbZV19KSxFJiYoaC5sb25lVW5ob3ZlcihyLl9ob3ZlcmxheWVyLm5vZGUoKSksRT0hMSl9ZnVuY3Rpb24geSgpe3QuX2hvdmVyZGF0YT1bYV0sdC5faG92ZXJkYXRhLnRyYWNlPWUudHJhY2UsaC5jbGljayh0LHt0YXJnZXQ6ITB9KX1mdW5jdGlvbiB4KHQsZSxyLG4pe3JldHVybiJhIituKnUucisiLCIrbip3KyIgIitiKyIgIithLmxhcmdlQXJjKyhyPyIgMSAiOiIgMCAiKStuKihlWzBdLXRbMF0pKyIsIituKihlWzFdLXRbMV0pfWlmKGEuaGlkZGVuKXJldHVybiB2b2lkIGMuc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aCxnIikucmVtb3ZlKCk7bFthLnB4bWlkWzFdPDA/MDoxXVthLnB4bWlkWzBdPDA/MDoxXS5wdXNoKGEpO3ZhciBNPXUuY3grX1swXSxrPXUuY3krX1sxXSxBPWMuc2VsZWN0KHRoaXMpLFQ9QS5zZWxlY3RBbGwoInBhdGguc3VyZmFjZSIpLmRhdGEoW2FdKSxFPSExO2lmKFQuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJzdXJmYWNlIiwhMCkuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KSxBLnNlbGVjdCgicGF0aC50ZXh0bGluZSIpLnJlbW92ZSgpLEEub24oIm1vdXNlb3ZlciIscykub24oIm1vdXNlb3V0IixmKS5vbigiY2xpY2siLHkpLGcucHVsbCl7dmFyIFM9KyhBcnJheS5pc0FycmF5KGcucHVsbCk/Zy5wdWxsW2EuaV06Zy5wdWxsKXx8MDtTPjAmJihNKz1TKmEucHhtaWRbMF0says9UyphLnB4bWlkWzFdKX1hLmN4RmluYWw9TSxhLmN5RmluYWw9azt2YXIgTD1nLmhvbGU7aWYoYS52PT09dS52VG90YWwpe3ZhciB6PSJNIisoTSthLnB4MFswXSkrIiwiKyhrK2EucHgwWzFdKSt4KGEucHgwLGEucHhtaWQsITAsMSkreChhLnB4bWlkLGEucHgwLCEwLDEpKyJaIjtMP1QuYXR0cigiZCIsIk0iKyhNK0wqYS5weDBbMF0pKyIsIisoaytMKmEucHgwWzFdKSt4KGEucHgwLGEucHhtaWQsITEsTCkreChhLnB4bWlkLGEucHgwLCExLEwpKyJaIit6KTpULmF0dHIoImQiLHopfWVsc2V7dmFyIEk9eChhLnB4MCxhLnB4MSwhMCwxKTtpZihMKXt2YXIgUD0xLUw7VC5hdHRyKCJkIiwiTSIrKE0rTCphLnB4MVswXSkrIiwiKyhrK0wqYS5weDFbMV0pK3goYS5weDEsYS5weDAsITEsTCkrImwiK1AqYS5weDBbMF0rIiwiK1AqYS5weDBbMV0rSSsiWiIpfWVsc2UgVC5hdHRyKCJkIiwiTSIrTSsiLCIraysibCIrYS5weDBbMF0rIiwiK2EucHgwWzFdK0krIloiKX12YXIgQz1BcnJheS5pc0FycmF5KGcudGV4dHBvc2l0aW9uKT9nLnRleHRwb3NpdGlvblthLmldOmcudGV4dHBvc2l0aW9uLFI9QS5zZWxlY3RBbGwoImcuc2xpY2V0ZXh0IikuZGF0YShhLnRleHQmJiJub25lIiE9PUM/WzBdOltdKTtSLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2V0ZXh0IiwhMCksUi5leGl0KCkucmVtb3ZlKCksUi5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9Yy5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJ0ZXh0IikuZGF0YShbMF0pO3QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKCJkYXRhLW5vdGV4IiwxKSx0LmV4aXQoKS5yZW1vdmUoKSx0LnRleHQoYS50ZXh0KS5hdHRyKHsiY2xhc3MiOiJzbGljZXRleHQiLHRyYW5zZm9ybToiIiwiZGF0YS1iYiI6IiIsInRleHQtYW5jaG9yIjoibWlkZGxlIix4OjAseTowfSkuY2FsbChwLmZvbnQsIm91dHNpZGUiPT09Qz9nLm91dHNpZGV0ZXh0Zm9udDpnLmluc2lkZXRleHRmb250KS5jYWxsKGQuY29udmVydFRvVHNwYW5zKSx0LnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLmF0dHIoe3g6MCx5OjB9KTt2YXIgZSxyPXAuYkJveCh0Lm5vZGUoKSk7Im91dHNpZGUiPT09Qz9lPW8ocixhKTooZT1uKHIsYSx1KSwiYXV0byI9PT1DJiZlLnNjYWxlPDEmJih0LmNhbGwocC5mb250LGcub3V0c2lkZXRleHRmb250KSxnLm91dHNpZGV0ZXh0Zm9udC5mYW1pbHk9PT1nLmluc2lkZXRleHRmb250LmZhbWlseSYmZy5vdXRzaWRldGV4dGZvbnQuc2l6ZT09PWcuaW5zaWRldGV4dGZvbnQuc2l6ZXx8KHQuYXR0cih7ImRhdGEtYmIiOiIifSkscj1wLmJCb3godC5ub2RlKCkpKSxlPW8ocixhKSkpO3ZhciBpPU0rYS5weG1pZFswXSplLnJDZW50ZXIrKGUueHx8MCkscz1rK2EucHhtaWRbMV0qZS5yQ2VudGVyKyhlLnl8fDApO2Uub3V0c2lkZSYmKGEueUxhYmVsTWluPXMtci5oZWlnaHQvMixhLnlMYWJlbE1pZD1zLGEueUxhYmVsTWF4PXMrci5oZWlnaHQvMixhLmxhYmVsRXh0cmFYPTAsYS5sYWJlbEV4dHJhWT0wLHY9ITApLHQuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIraSsiLCIrcysiKSIrKGUuc2NhbGU8MT8ic2NhbGUoIitlLnNjYWxlKyIpIjoiIikrKGUucm90YXRlPyJyb3RhdGUoIitlLnJvdGF0ZSsiKSI6IiIpKyJ0cmFuc2xhdGUoIistKHIubGVmdCtyLnJpZ2h0KS8yKyIsIistKHIudG9wK3IuYm90dG9tKS8yKyIpIil9KX0pLHYmJmEobCxnKSxzLmVhY2goZnVuY3Rpb24odCl7aWYodC5sYWJlbEV4dHJhWHx8dC5sYWJlbEV4dHJhWSl7dmFyIGU9Yy5zZWxlY3QodGhpcykscj1lLnNlbGVjdCgiZy5zbGljZXRleHQgdGV4dCIpO3IuYXR0cigidHJhbnNmb3JtIiwidHJhbnNsYXRlKCIrdC5sYWJlbEV4dHJhWCsiLCIrdC5sYWJlbEV4dHJhWSsiKSIrci5hdHRyKCJ0cmFuc2Zvcm0iKSk7dmFyIG49dC5jeEZpbmFsK3QucHhtaWRbMF0saT10LmN5RmluYWwrdC5weG1pZFsxXSxvPSJNIituKyIsIitpLGE9KHQueUxhYmVsTWF4LXQueUxhYmVsTWluKSoodC5weG1pZFswXTwwPy0xOjEpLzQ7aWYodC5sYWJlbEV4dHJhWCl7dmFyIHM9dC5sYWJlbEV4dHJhWCp0LnB4bWlkWzFdL3QucHhtaWRbMF0sbD10LnlMYWJlbE1pZCt0LmxhYmVsRXh0cmFZLSh0LmN5RmluYWwrdC5weG1pZFsxXSk7bys9TWF0aC5hYnMocyk+TWF0aC5hYnMobCk/ImwiK2wqdC5weG1pZFswXS90LnB4bWlkWzFdKyIsIitsKyJIIisobit0LmxhYmVsRXh0cmFYK2EpOiJsIit0LmxhYmVsRXh0cmFYKyIsIitzKyJ2IisobC1zKSsiaCIrYX1lbHNlIG8rPSJWIisodC55TGFiZWxNaWQrdC5sYWJlbEV4dHJhWSkrImgiK2E7ZS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJ0ZXh0bGluZSIsITApLmNhbGwoZi5zdHJva2UsZy5vdXRzaWRldGV4dGZvbnQuY29sb3IpLmF0dHIoeyJzdHJva2Utd2lkdGgiOk1hdGgubWluKDIsZy5vdXRzaWRldGV4dGZvbnQuc2l6ZS84KSxkOm8sZmlsbDoibm9uZSJ9KX19KX0pfSksc2V0VGltZW91dChmdW5jdGlvbigpe3Uuc2VsZWN0QWxsKCJ0c3BhbiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1jLnNlbGVjdCh0aGlzKTt0LmF0dHIoImR5IikmJnQuYXR0cigiZHkiLHQuYXR0cigiZHkiKSl9KX0sMCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6NjA0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMiwiLi9oZWxwZXJzIjo3NjUsZDM6MTI0fV0sNzcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzIiksaT10KCIuL3N0eWxlX29uZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt0Ll9mdWxsTGF5b3V0Ll9waWVsYXllci5zZWxlY3RBbGwoIi50cmFjZSIpLmVhY2goZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPWUudHJhY2Usbz1uLnNlbGVjdCh0aGlzKTtvLnN0eWxlKHtvcGFjaXR5OnIub3BhY2l0eX0pLG8uc2VsZWN0QWxsKCIudG9wIHBhdGguc3VyZmFjZSIpLmVhY2goZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuY2FsbChpLHQscil9KX0pfX0seyIuL3N0eWxlX29uZSI6NzcxLGQzOjEyNH1dLDc3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1yLm1hcmtlci5saW5lLmNvbG9yO0FycmF5LmlzQXJyYXkoaSkmJihpPWlbZS5pXXx8bi5kZWZhdWx0TGluZSk7dmFyIG89ci5tYXJrZXIubGluZS53aWR0aHx8MDtBcnJheS5pc0FycmF5KG8pJiYobz1vW2UuaV18fDApLHQuc3R5bGUoeyJzdHJva2Utd2lkdGgiOm8sZmlsbDplLmNvbG9yfSkuY2FsbChuLnN0cm9rZSxpKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2fV0sNzcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZS5tYXJrZXI7aWYobi5tZXJnZUFycmF5KGUudGV4dCx0LCJ0eCIpLG4ubWVyZ2VBcnJheShlLnRleHRwb3NpdGlvbix0LCJ0cCIpLGUudGV4dGZvbnQmJihuLm1lcmdlQXJyYXkoZS50ZXh0Zm9udC5zaXplLHQsInRzIiksbi5tZXJnZUFycmF5KGUudGV4dGZvbnQuY29sb3IsdCwidGMiKSxuLm1lcmdlQXJyYXkoZS50ZXh0Zm9udC5mYW1pbHksdCwidGYiKSksciYmci5saW5lKXt2YXIgaT1yLmxpbmU7bi5tZXJnZUFycmF5KHIub3BhY2l0eSx0LCJtbyIpLG4ubWVyZ2VBcnJheShyLnN5bWJvbCx0LCJteCIpLG4ubWVyZ2VBcnJheShyLmNvbG9yLHQsIm1jIiksbi5tZXJnZUFycmF5KGkuY29sb3IsdCwibWxjIiksbi5tZXJnZUFycmF5KGkud2lkdGgsdCwibWx3Iil9fX0seyIuLi8uLi9saWIiOjU5MX1dLDc3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY29sb3JfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz0odCgiLi9jb25zdGFudHMiKSx0KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCk7ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seDA6e3ZhbFR5cGU6ImFueSIsZGZsdDowfSxkeDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjF9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx5MDp7dmFsVHlwZToiYW55IixkZmx0OjB9LGR5Ont2YWxUeXBlOiJudW1iZXIiLApkZmx0OjF9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwfSxtb2RlOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsaW5lcyIsIm1hcmtlcnMiLCJ0ZXh0Il0sZXh0cmFzOlsibm9uZSJdfSxob3Zlcm9uOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJwb2ludHMiLCJmaWxscyJdfSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjJ9LHNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJzcGxpbmUiLCJodiIsInZoIiwiaHZoIiwidmh2Il0sZGZsdDoibGluZWFyIn0sc21vb3RoaW5nOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLjMsZGZsdDoxfSxkYXNoOnt2YWxUeXBlOiJzdHJpbmciLHZhbHVlczpbInNvbGlkIiwiZG90IiwiZGFzaCIsImxvbmdkYXNoIiwiZGFzaGRvdCIsImxvbmdkYXNoZG90Il0sZGZsdDoic29saWQifX0sY29ubmVjdGdhcHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vbmUiLCJ0b3plcm95IiwidG96ZXJveCIsInRvbmV4dHkiLCJ0b25leHR4IiwidG9zZWxmIiwidG9uZXh0Il0sZGZsdDoibm9uZSJ9LGZpbGxjb2xvcjp7dmFsVHlwZToiY29sb3IifSxtYXJrZXI6byh7fSx7c3ltYm9sOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6aS5zeW1ib2xMaXN0LGRmbHQ6ImNpcmNsZSIsYXJyYXlPazohMH0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxhcnJheU9rOiEwfSxzaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6NixhcnJheU9rOiEwfSxtYXhkaXNwbGF5ZWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowfSxzaXplcmVmOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MX0sc2l6ZW1pbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjB9LHNpemVtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJkaWFtZXRlciIsImFyZWEiXSxkZmx0OiJkaWFtZXRlciJ9LHNob3dzY2FsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbGluZTpvKHt9LHt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxhcnJheU9rOiEwfX0sbigibWFya2VyLmxpbmUiKSl9LG4oIm1hcmtlciIpKSx0ZXh0cG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBsZWZ0IiwibWlkZGxlIGNlbnRlciIsIm1pZGRsZSByaWdodCIsImJvdHRvbSBsZWZ0IiwiYm90dG9tIGNlbnRlciIsImJvdHRvbSByaWdodCJdLGRmbHQ6Im1pZGRsZSBjZW50ZXIiLGFycmF5T2s6ITB9LHRleHRmb250OntmYW1pbHk6e3ZhbFR5cGU6InN0cmluZyIsbm9CbGFuazohMCxzdHJpY3Q6ITAsYXJyYXlPazohMH0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MSxhcnJheU9rOiEwfSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITB9fSxyOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sdDp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LF9uZXN0ZWRNb2R1bGVzOntlcnJvcl95OiJFcnJvckJhcnMiLGVycm9yX3g6IkVycm9yQmFycyIsIm1hcmtlci5jb2xvcmJhciI6IkNvbG9yYmFyIn19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jb2xvcl9hdHRyaWJ1dGVzIjo1MTQsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NTI5LCIuLi8uLi9saWIvZXh0ZW5kIjo1ODYsIi4vY29uc3RhbnRzIjo3Nzh9XSw3NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4vc3VidHlwZXMiKSxzPXQoIi4vY29sb3JzY2FsZV9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbCx1LGM9aS5nZXRGcm9tSWQodCxlLnhheGlzfHwieCIpLGg9aS5nZXRGcm9tSWQodCxlLnlheGlzfHwieSIpLGY9Yy5tYWtlQ2FsY2RhdGEoZSwieCIpLHA9aC5tYWtlQ2FsY2RhdGEoZSwieSIpLGQ9TWF0aC5taW4oZi5sZW5ndGgscC5sZW5ndGgpO2MuX21pbkR0aWNrPTAsaC5fbWluRHRpY2s9MCxmLmxlbmd0aD5kJiZmLnNwbGljZShkLGYubGVuZ3RoLWQpLHAubGVuZ3RoPmQmJnAuc3BsaWNlKGQscC5sZW5ndGgtZCk7dmFyIG09e3BhZGRlZDohMH0sZz17cGFkZGVkOiEwfTtpZihhLmhhc01hcmtlcnMoZSkpe2lmKHI9ZS5tYXJrZXIsbD1yLnNpemUsQXJyYXkuaXNBcnJheShsKSl7dmFyIHY9e3R5cGU6ImxpbmVhciJ9O2kuc2V0Q29udmVydCh2KSxsPXYubWFrZUNhbGNkYXRhKGUubWFya2VyLCJzaXplIiksbC5sZW5ndGg+ZCYmbC5zcGxpY2UoZCxsLmxlbmd0aC1kKX12YXIgeSxiPTEuNiooZS5tYXJrZXIuc2l6ZXJlZnx8MSk7eT0iYXJlYSI9PT1lLm1hcmtlci5zaXplbW9kZT9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KCh0fHwwKS9iKSwzKX06ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KCh0fHwwKS9iLDMpfSxtLnBwYWQ9Zy5wcGFkPUFycmF5LmlzQXJyYXkobCk/bC5tYXAoeSk6eShsKX1zKGUpLCEoInRvemVyb3giPT09ZS5maWxsfHwidG9uZXh0eCI9PT1lLmZpbGwmJnQuZmlyc3RzY2F0dGVyKXx8ZlswXT09PWZbZC0xXSYmcFswXT09PXBbZC0xXT9lLmVycm9yX3kudmlzaWJsZXx8LTE9PT1bInRvbmV4dHkiLCJ0b3plcm95Il0uaW5kZXhPZihlLmZpbGwpJiYoYS5oYXNNYXJrZXJzKGUpfHxhLmhhc1RleHQoZSkpfHwobS5wYWRkZWQ9ITEsbS5wcGFkPTApOm0udG96ZXJvPSEwLCEoInRvemVyb3kiPT09ZS5maWxsfHwidG9uZXh0eSI9PT1lLmZpbGwmJnQuZmlyc3RzY2F0dGVyKXx8ZlswXT09PWZbZC0xXSYmcFswXT09PXBbZC0xXT8tMSE9PVsidG9uZXh0eCIsInRvemVyb3giXS5pbmRleE9mKGUuZmlsbCkmJihnLnBhZGRlZD0hMSk6Zy50b3plcm89ITAsaS5leHBhbmQoYyxmLG0pLGkuZXhwYW5kKGgscCxnKTt2YXIgeD1uZXcgQXJyYXkoZCk7Zm9yKHU9MDtkPnU7dSsrKXhbdV09bihmW3VdKSYmbihwW3VdKT97eDpmW3VdLHk6cFt1XX06e3g6ITEseTohMX07cmV0dXJuIHZvaWQgMCE9PXR5cGVvZiBsJiZvLm1lcmdlQXJyYXkobCx4LCJtcyIpLHQuZmlyc3RzY2F0dGVyPSExLHh9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuL2NvbG9yc2NhbGVfY2FsYyI6Nzc3LCIuL3N1YnR5cGVzIjo3OTIsImZhc3QtaXNudW1lcmljIjoxMjh9XSw3NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLG87Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKylpZihyPXRbZV0sbj1yLmZpbGwsIm5vbmUiIT09biYmInNjYXR0ZXIiPT09ci50eXBlJiYoci5vcGFjaXR5PXZvaWQgMCwidG9uZXh0eSI9PT1ufHwidG9uZXh0eCI9PT1uKSlmb3IoaT1lLTE7aT49MDtpLS0paWYobz10W2ldLCJzY2F0dGVyIj09PW8udHlwZSYmby54YXhpcz09PXIueGF4aXMmJm8ueWF4aXM9PT1yLnlheGlzKXtvLm9wYWNpdHk9dm9pZCAwO2JyZWFrfX19LHt9XSw3NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZ2V0X3NjYWxlIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yYmFyL2RyYXciKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLnRyYWNlLHU9ci5tYXJrZXIsYz0iY2IiK3IudWlkO2lmKHQuX2Z1bGxMYXlvdXQuX2luZm9sYXllci5zZWxlY3RBbGwoIi4iK2MpLnJlbW92ZSgpLHZvaWQgMD09PXV8fCF1LnNob3dzY2FsZSlyZXR1cm4gdm9pZCBhLmF1dG9NYXJnaW4odCxjKTt2YXIgaD1zKHUuY29sb3JzY2FsZSksZj11LmNvbG9yLHA9dS5jbWluLGQ9dS5jbWF4O2kocCl8fChwPW8uYWdnTnVtcyhNYXRoLm1pbixudWxsLGYpKSxpKGQpfHwoZD1vLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxmKSk7dmFyIG09ZVswXS50LmNiPWwodCxjKTttLmZpbGxjb2xvcihuLnNjYWxlLmxpbmVhcigpLmRvbWFpbihoLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gcCt0WzBdKihkLXApfSkpLnJhbmdlKGgubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzFdfSkpKS5maWxsbGV2ZWxzKHtzdGFydDpwLGVuZDpkLHNpemU6KGQtcCkvMjU0fSkub3B0aW9ucyh1LmNvbG9yYmFyKSgpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yYmFyL2RyYXciOjUwOSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSI6NTE4LCIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSxkMzoxMjQsImZhc3QtaXNudW1lcmljIjoxMjh9XSw3Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hhc19jb2xvcnNjYWxlIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLG89dCgiLi9zdWJ0eXBlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtvLmhhc0xpbmVzKHQpJiZuKHQsImxpbmUiKSYmaSh0LHQubGluZS5jb2xvciwibGluZSIsImMiKSxvLmhhc01hcmtlcnModCkmJihuKHQsIm1hcmtlciIpJiZpKHQsdC5tYXJrZXIuY29sb3IsIm1hcmtlciIsImMiKSxuKHQsIm1hcmtlci5saW5lIikmJmkodCx0Lm1hcmtlci5saW5lLmNvbG9yLCJtYXJrZXIubGluZSIsImMiKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo1MTMsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oYXNfY29sb3JzY2FsZSI6NTE5LCIuL3N1YnR5cGVzIjo3OTJ9XSw3Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtQVFNfTElORVNPTkxZOjIwfX0se31dLDc3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi9jb25zdGFudHMiKSxhPXQoIi4vc3VidHlwZXMiKSxzPXQoIi4veHlfZGVmYXVsdHMiKSxsPXQoIi4vbWFya2VyX2RlZmF1bHRzIiksdT10KCIuL2xpbmVfZGVmYXVsdHMiKSxjPXQoIi4vbGluZV9zaGFwZV9kZWZhdWx0cyIpLGg9dCgiLi90ZXh0X2RlZmF1bHRzIiksZj10KCIuL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLHA9dCgiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMvZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsZCl7ZnVuY3Rpb24gbShyLG8pe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLG8pfXZhciBnPXModCxlLG0pLHY9ZzxvLlBUU19MSU5FU09OTFk/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyI7aWYoIWcpcmV0dXJuIHZvaWQoZS52aXNpYmxlPSExKTttKCJ0ZXh0IiksbSgibW9kZSIsdiksYS5oYXNMaW5lcyhlKSYmKHUodCxlLHIsZCxtKSxjKHQsZSxtKSxtKCJjb25uZWN0Z2FwcyIpKSxhLmhhc01hcmtlcnMoZSkmJmwodCxlLHIsZCxtKSxhLmhhc1RleHQoZSkmJmgodCxlLGQsbSk7dmFyIHk9W107KGEuaGFzTWFya2VycyhlKXx8YS5oYXNUZXh0KGUpKSYmKG0oIm1hcmtlci5tYXhkaXNwbGF5ZWQiKSx5LnB1c2goInBvaW50cyIpKSxtKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiYoZih0LGUscixtKSxhLmhhc0xpbmVzKGUpfHxjKHQsZSxtKSksInRvbmV4dCIhPT1lLmZpbGwmJiJ0b3NlbGYiIT09ZS5maWxsfHx5LnB1c2goImZpbGxzIiksbSgiaG92ZXJvbiIseS5qb2luKCIrIil8fCJwb2ludHMiKSxwKHQsZSxyLHtheGlzOiJ5In0pLHAodCxlLHIse2F4aXM6IngiLGluaGVyaXQ6InkifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZXJyb3JiYXJzL2RlZmF1bHRzIjo1MzQsIi4uLy4uL2xpYiI6NTkxLCIuL2F0dHJpYnV0ZXMiOjc3MywiLi9jb25zdGFudHMiOjc3OCwiLi9maWxsY29sb3JfZGVmYXVsdHMiOjc4MCwiLi9saW5lX2RlZmF1bHRzIjo3ODQsIi4vbGluZV9zaGFwZV9kZWZhdWx0cyI6Nzg2LCIuL21hcmtlcl9kZWZhdWx0cyI6Nzg4LCIuL3N1YnR5cGVzIjo3OTIsIi4vdGV4dF9kZWZhdWx0cyI6NzkzLCIuL3h5X2RlZmF1bHRzIjo3OTR9XSw3ODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbz0hMTtpZihlLm1hcmtlcil7dmFyIGE9ZS5tYXJrZXIuY29sb3Iscz0oZS5tYXJrZXIubGluZXx8e30pLmNvbG9yO2EmJiFBcnJheS5pc0FycmF5KGEpP289YTpzJiYhQXJyYXkuaXNBcnJheShzKSYmKG89cyl9aSgiZmlsbGNvbG9yIixuLmFkZE9wYWNpdHkoKGUubGluZXx8e30pLmNvbG9yfHxvfHxyLC41KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNn1dLDc4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbztpZigibGluZXMiPT09dC5tb2RlKXJldHVybiByPXQubGluZS5jb2xvcixyJiZuLm9wYWNpdHkocik/cjp0LmZpbGxjb2xvcjtpZigibm9uZSI9PT10Lm1vZGUpcmV0dXJuIHQuZmlsbD90LmZpbGxjb2xvcjoiIjt2YXIgYT1lLm1jY3x8KHQubWFya2VyfHx7fSkuY29sb3Iscz1lLm1sY2N8fCgodC5tYXJrZXJ8fHt9KS5saW5lfHx7fSkuY29sb3I7cmV0dXJuIG89YSYmbi5vcGFjaXR5KGEpP2E6cyYmbi5vcGFjaXR5KHMpJiYoZS5tbHd8fCgodC5tYXJrZXJ8fHt9KS5saW5lfHx7fSkud2lkdGgpP3M6IiIsbz9uLm9wYWNpdHkobyk8LjM/bi5hZGRPcGFjaXR5KG8sLjMpOm86KHI9KHQubGluZXx8e30pLmNvbG9yLHImJm4ub3BhY2l0eShyKSYmaS5oYXNMaW5lcyh0KSYmdC5saW5lLndpZHRoP3I6dC5maWxsY29sb3IpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo1MDYsIi4vc3VidHlwZXMiOjc5Mn1dLDc4MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKSxzPXQoIi4vZ2V0X3RyYWNlX2NvbG9yIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUpe3ZhciBjPXQuY2QsaD1jWzBdLnRyYWNlLGY9dC54YSxwPXQueWEsZD1mLmMycChlKSxtPXAuYzJwKHIpLGc9W2QsbV07aWYoLTEhPT1oLmhvdmVyb24uaW5kZXhPZigicG9pbnRzIikpe3ZhciB2PWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLmFicyhmLmMycCh0LngpLWQpLWUsMS0zL2UpfSx5PWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLmFicyhwLmMycCh0LnkpLW0pLWUsMS0zL2UpfSxiPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDMsdC5tcmN8fDApLHI9Zi5jMnAodC54KS1kLG49cC5jMnAodC55KS1tO3JldHVybiBNYXRoLm1heChNYXRoLnNxcnQocipyK24qbiktZSwxLTMvZSl9LHg9aS5nZXREaXN0YW5jZUZ1bmN0aW9uKHUsdix5LGIpO2lmKGkuZ2V0Q2xvc2VzdChjLHgsdCksdC5pbmRleCE9PSExKXt2YXIgXz1jW3QuaW5kZXhdLHc9Zi5jMnAoXy54LCEwKSxNPXAuYzJwKF8ueSwhMCksaz1fLm1yY3x8MTtyZXR1cm4gbi5leHRlbmRGbGF0KHQse2NvbG9yOnMoaCxfKSx4MDp3LWsseDE6dytrLHhMYWJlbFZhbDpfLngseTA6TS1rLHkxOk0rayx5TGFiZWxWYWw6Xy55fSksXy50eD90LnRleHQ9Xy50eDpoLnRleHQmJih0LnRleHQ9aC50ZXh0KSxhLmhvdmVySW5mbyhfLGgsdCksW3RdfX1pZigtMSE9PWguaG92ZXJvbi5pbmRleE9mKCJmaWxscyIpJiZoLl9wb2x5Z29ucyl7dmFyIEEsVCxFLFMsTCx6LEksUCxDLFI9aC5fcG9seWdvbnMsaj1bXSxEPSExLE89MS8wLEY9LSgxLzApLE49MS8wLEI9LSgxLzApO2ZvcihBPTA7QTxSLmxlbmd0aDtBKyspRT1SW0FdLEUuY29udGFpbnMoZykmJihEPSFELGoucHVzaChFKSxOPU1hdGgubWluKE4sRS55bWluKSxCPU1hdGgubWF4KEIsRS55bWF4KSk7aWYoRCl7Tj1NYXRoLm1heChOLDApLEI9TWF0aC5taW4oQixwLl9sZW5ndGgpO3ZhciBVPShOK0IpLzI7Zm9yKEE9MDtBPGoubGVuZ3RoO0ErKylmb3IoUz1qW0FdLnB0cyxUPTE7VDxTLmxlbmd0aDtUKyspUD1TW1QtMV1bMV0sQz1TW1RdWzFdLFA+VSE9Qz49VSYmKHo9U1tULTFdWzBdLEk9U1tUXVswXSxMPXorKEkteikqKFUtUCkvKEMtUCksTz1NYXRoLm1pbihPLEwpLEY9TWF0aC5tYXgoRixMKSk7Tz1NYXRoLm1heChPLDApLEY9TWF0aC5taW4oRixmLl9sZW5ndGgpO3ZhciBWPWwuZGVmYXVsdExpbmU7cmV0dXJuIGwub3BhY2l0eShoLmZpbGxjb2xvcik/Vj1oLmZpbGxjb2xvcjpsLm9wYWNpdHkoKGgubGluZXx8e30pLmNvbG9yKSYmKFY9aC5saW5lLmNvbG9yKSxuLmV4dGVuZEZsYXQodCx7ZGlzdGFuY2U6by5NQVhESVNUKzEwLHgwOk8seDE6Rix5MDpVLHkxOlUsY29sb3I6Vn0pLGRlbGV0ZSB0LmluZGV4LGgudGV4dCYmIUFycmF5LmlzQXJyYXkoaC50ZXh0KT90LnRleHQ9U3RyaW5nKGgudGV4dCk6dC50ZXh0PWgubmFtZSxbdF19fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycyI6NTM1LCIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6NjIwLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMiwiLi9nZXRfdHJhY2VfY29sb3IiOjc4MX1dLDc4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fSxpPXQoIi4vc3VidHlwZXMiKTtuLmhhc0xpbmVzPWkuaGFzTGluZXMsbi5oYXNNYXJrZXJzPWkuaGFzTWFya2VycyxuLmhhc1RleHQ9aS5oYXNUZXh0LG4uaXNCdWJibGU9aS5pc0J1YmJsZSxuLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbi5zdXBwbHlEZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksbi5jbGVhbkRhdGE9dCgiLi9jbGVhbl9kYXRhIiksbi5jYWxjPXQoIi4vY2FsYyIpLG4uYXJyYXlzVG9DYWxjZGF0YT10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLG4ucGxvdD10KCIuL3Bsb3QiKSxuLmNvbG9yYmFyPXQoIi4vY29sb3JiYXIiKSxuLnN0eWxlPXQoIi4vc3R5bGUiKSxuLmhvdmVyUG9pbnRzPXQoIi4vaG92ZXIiKSxuLnNlbGVjdFBvaW50cz10KCIuL3NlbGVjdCIpLG4ubW9kdWxlVHlwZT0idHJhY2UiLG4ubmFtZT0ic2NhdHRlciIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxuLmNhdGVnb3JpZXM9WyJjYXJ0ZXNpYW4iLCJzeW1ib2xzIiwibWFya2VyQ29sb3JzY2FsZSIsImVycm9yQmFyc09LIiwic2hvd0xlZ2VuZCJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjYyMywiLi9hcnJheXNfdG9fY2FsY2RhdGEiOjc3MiwiLi9hdHRyaWJ1dGVzIjo3NzMsIi4vY2FsYyI6Nzc0LCIuL2NsZWFuX2RhdGEiOjc3NSwiLi9jb2xvcmJhciI6Nzc2LCIuL2RlZmF1bHRzIjo3NzksIi4vaG92ZXIiOjc4MiwiLi9wbG90Ijo3ODksIi4vc2VsZWN0Ijo3OTAsIi4vc3R5bGUiOjc5MSwiLi9zdWJ0eXBlcyI6NzkyfV0sNzg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oYXNfY29sb3JzY2FsZSIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8sYSl7dmFyIHM9KHQubWFya2VyfHx7fSkuY29sb3I7aWYoYSgibGluZS5jb2xvciIsciksbih0LCJsaW5lIikpaSh0LGUsbyxhLHtwcmVmaXg6ImxpbmUuIixjTGV0dGVyOiJjIn0pO2Vsc2V7dmFyIGw9KEFycmF5LmlzQXJyYXkocyk/ITE6cyl8fHI7YSgibGluZS5jb2xvciIsbCl9YSgibGluZS53aWR0aCIpLGEoImxpbmUuZGFzaCIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjUxNiwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hhc19jb2xvcnNjYWxlIjo1MTl9XSw3ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKGUpe3ZhciByPXcuYzJwKHRbZV0ueCksbj1NLmMycCh0W2VdLnkpO3JldHVybiByPT09U3x8bj09PVM/ITE6W3Isbl19ZnVuY3Rpb24gaSh0KXt2YXIgZT10WzBdL3cuX2xlbmd0aCxyPXRbMV0vTS5fbGVuZ3RoO3JldHVybigxKzEwKk1hdGgubWF4KDAsLWUsZS0xLC1yLHItMSkpKkF9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPXRbMF0tZVswXSxuPXRbMV0tZVsxXTtyZXR1cm4gTWF0aC5zcXJ0KHIqcituKm4pfXZhciBhLHMsbCx1LGMsaCxmLHAsZCxtLGcsdix5LGIseCxfLHc9ZS54YXhpcyxNPWUueWF4aXMsaz1lLmNvbm5lY3RHYXBzLEE9ZS5iYXNlVG9sZXJhbmNlLFQ9ZS5saW5lYXIsRT1bXSxTPW4uQkFETlVNLEw9LjIsej1uZXcgQXJyYXkodC5sZW5ndGgpLEk9MDtmb3IoYT0wO2E8dC5sZW5ndGg7YSsrKWlmKHM9cihhKSl7Zm9yKEk9MCx6W0krK109cyxhKys7YTx0Lmxlbmd0aDthKyspe2lmKHU9cihhKSwhdSl7aWYoayljb250aW51ZTticmVha31pZihUKXtpZihmPW8odSxzKSwhKGY8aSh1KSpMKSl7Zm9yKGQ9Wyh1WzBdLXNbMF0pL2YsKHVbMV0tc1sxXSkvZl0sYz1zLGc9Zix2PWI9eD0wLHA9ITEsbD11LGErKzthPHQubGVuZ3RoO2ErKyl7aWYoaD1yKGEpLCFoKXtpZihrKWNvbnRpbnVlO2JyZWFrfWlmKG09W2hbMF0tc1swXSxoWzFdLXNbMV1dLF89bVswXSpkWzFdLW1bMV0qZFswXSxiPU1hdGgubWluKGIsXykseD1NYXRoLm1heCh4LF8pLHgtYj5pKGgpKWJyZWFrO2w9aCx5PW1bMF0qZFswXSttWzFdKmRbMV0seT5nPyhnPXksdT1oLHA9ITEpOnY+eSYmKHY9eSxjPWgscD0hMCl9aWYocD8oeltJKytdPXUsbCE9PWMmJih6W0krK109YykpOihjIT09cyYmKHpbSSsrXT1jKSxsIT09dSYmKHpbSSsrXT11KSkseltJKytdPWwsYT49dC5sZW5ndGh8fCFoKWJyZWFrO3pbSSsrXT1oLHM9aH19ZWxzZSB6W0krK109dX1FLnB1c2goei5zbGljZSgwLEkpKX1yZXR1cm4gRX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNX1dLDc4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIoImxpbmUuc2hhcGUiKTsic3BsaW5lIj09PW4mJnIoImxpbmUuc21vb3RoaW5nIil9fSx7fV0sNzg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWFya2VyLHI9ZS5zaXplcmVmfHwxLGk9ZS5zaXplbWlufHwwLG89ImFyZWEiPT09ZS5zaXplbW9kZT9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KHQvcil9OmZ1bmN0aW9uKHQpe3JldHVybiB0L3J9O3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1vKHQvMik7cmV0dXJuIG4oZSkmJmU+MD9NYXRoLm1heChlLGkpOjB9fX0seyJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sNzg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oYXNfY29sb3JzY2FsZSIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksYT10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCl7dmFyIHUsYz1hLmlzQnViYmxlKHQpLGg9KHQubGluZXx8e30pLmNvbG9yO2gmJihyPWgpLGwoIm1hcmtlci5zeW1ib2wiKSxsKCJtYXJrZXIub3BhY2l0eSIsYz8uNzoxKSxsKCJtYXJrZXIuc2l6ZSIpLGwoIm1hcmtlci5jb2xvciIsciksaSh0LCJtYXJrZXIiKSYmbyh0LGUscyxsLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSksdT1oJiYhQXJyYXkuaXNBcnJheShoKSYmZS5tYXJrZXIuY29sb3IhPT1oP2g6Yz9uLmJhY2tncm91bmQ6bi5kZWZhdWx0TGluZSxsKCJtYXJrZXIubGluZS5jb2xvciIsdSksaSh0LCJtYXJrZXIubGluZSIpJiZvKHQsZSxzLGwse3ByZWZpeDoibWFya2VyLmxpbmUuIixjTGV0dGVyOiJjIn0pLGwoIm1hcmtlci5saW5lLndpZHRoIixjPzE6MCksYyYmKGwoIm1hcmtlci5zaXplcmVmIiksbCgibWFya2VyLnNpemVtaW4iKSxsKCJtYXJrZXIuc2l6ZW1vZGUiKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjUwNiwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo1MTYsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oYXNfY29sb3JzY2FsZSI6NTE5LCIuL3N1YnR5cGVzIjo3OTJ9XSw3ODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49ZS54KCksbz1lLnkoKSxhPWkuZXh0ZW50KG4ucmFuZ2UubWFwKG4ubDJjKSkscz1pLmV4dGVudChvLnJhbmdlLm1hcChvLmwyYykpO3IuZm9yRWFjaChmdW5jdGlvbih0LGUpe3ZhciBuPXRbMF0udHJhY2U7aWYodS5oYXNNYXJrZXJzKG4pKXt2YXIgaT1uLm1hcmtlci5tYXhkaXNwbGF5ZWQ7aWYoMCE9PWkpe3ZhciBvPXQuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lng+PWFbMF0mJnQueDw9YVsxXSYmdC55Pj1zWzBdJiZ0Lnk8PXNbMV19KSxsPU1hdGguY2VpbChvLmxlbmd0aC9pKSxjPTA7ci5mb3JFYWNoKGZ1bmN0aW9uKHQscil7dmFyIG49dFswXS50cmFjZTt1Lmhhc01hcmtlcnMobikmJm4ubWFya2VyLm1heGRpc3BsYXllZD4wJiZlPnImJmMrK30pO3ZhciBoPU1hdGgucm91bmQoYypsLzMrTWF0aC5mbG9vcihjLzMpKmwvNy4xKTt0LmZvckVhY2goZnVuY3Rpb24odCl7ZGVsZXRlIHQudmlzfSksby5mb3JFYWNoKGZ1bmN0aW9uKHQsZSl7MD09PU1hdGgucm91bmQoKGUraCklbCkmJih0LnZpcz0hMCl9KX19fSl9dmFyIGk9dCgiZDMiKSxvPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscz10KCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycyIpLGw9dCgiLi4vLi4vbGliL3BvbHlnb24iKS50ZXN0ZXIsdT10KCIuL3N1YnR5cGVzIiksYz10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLGg9dCgiLi9saW5lX3BvaW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gZih0KXtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzfSl9bih0LGUscik7dmFyIHA9ZS54KCksZD1lLnkoKSxtPWUucGxvdC5zZWxlY3QoIi5zY2F0dGVybGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2Uuc2NhdHRlciIpLmRhdGEocik7bS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2Ugc2NhdHRlciIpLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMiksbS5jYWxsKHMucGxvdCxlKTt2YXIgZyx2LHksYix4PSIiLF89W107bS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1lLmxpbmUsbj1pLnNlbGVjdCh0aGlzKTtpZihlLnZpc2libGU9PT0hMCYmKHY9ZS5maWxsLmNoYXJBdChlLmZpbGwubGVuZ3RoLTEpLCJ4IiE9PXYmJiJ5IiE9PXYmJih2PSIiKSx0WzBdLm5vZGUzPW4sYyh0KSx1Lmhhc0xpbmVzKGUpfHwibm9uZSIhPT1lLmZpbGwpKXt2YXIgbyxzLGYsbSx3LE09IiIsaz0iIjtnPSJ0b3plcm8iPT09ZS5maWxsLnN1YnN0cigwLDYpfHwidG9zZWxmIj09PWUuZmlsbHx8InRvIj09PWUuZmlsbC5zdWJzdHIoMCwyKSYmIXg/bi5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJqcy1maWxsIiwhMCk6bnVsbCxiJiYoeT1iLmRhdHVtKHQpKSxiPW4uYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtZmlsbCIsITApLC0xIT09WyJodiIsInZoIiwiaHZoIiwidmh2Il0uaW5kZXhPZihyLnNoYXBlKT8oZj1hLnN0ZXBzKHIuc2hhcGUpLG09YS5zdGVwcyhyLnNoYXBlLnNwbGl0KCIiKS5yZXZlcnNlKCkuam9pbigiIikpKTpmPW09InNwbGluZSI9PT1yLnNoYXBlP2Z1bmN0aW9uKHQpe3ZhciBlPXRbdC5sZW5ndGgtMV07cmV0dXJuIHRbMF1bMF09PT1lWzBdJiZ0WzBdWzFdPT09ZVsxXT9hLnNtb290aGNsb3NlZCh0LnNsaWNlKDEpLHIuc21vb3RoaW5nKTphLnNtb290aG9wZW4odCxyLnNtb290aGluZyl9OmZ1bmN0aW9uKHQpe3JldHVybiJNIit0LmpvaW4oIkwiKX0sdz1mdW5jdGlvbih0KXtyZXR1cm4gbSh0LnJldmVyc2UoKSl9O3ZhciBBLFQ9aCh0LHt4YXhpczpwLHlheGlzOmQsY29ubmVjdEdhcHM6ZS5jb25uZWN0Z2FwcyxiYXNlVG9sZXJhbmNlOk1hdGgubWF4KHIud2lkdGh8fDEsMykvNCxsaW5lYXI6ImxpbmVhciI9PT1yLnNoYXBlfSksRT1lLl9wb2x5Z29ucz1uZXcgQXJyYXkoVC5sZW5ndGgpO2ZvcihBPTA7QTxULmxlbmd0aDtBKyspZS5fcG9seWdvbnNbQV09bChUW0FdKTtpZihULmxlbmd0aCl7dmFyIFM9VFswXVswXSxMPVRbVC5sZW5ndGgtMV0sej1MW0wubGVuZ3RoLTFdO2ZvcihBPTA7QTxULmxlbmd0aDtBKyspe3ZhciBJPVRbQV07bz1mKEkpLHM9dyhJKSxNP3Y/KE0rPSJMIitvLnN1YnN0cigxKSxrPXMrKCJMIitrLnN1YnN0cigxKSkpOihNKz0iWiIrbyxrPXMrIloiK2spOihNPW8saz1zKSx1Lmhhc0xpbmVzKGUpJiZJLmxlbmd0aD4xJiZuLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImpzLWxpbmUiLCEwKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLmF0dHIoImQiLG8pfWc/UyYmeiYmKHY/KCJ5Ij09PXY/U1sxXT16WzFdPWQuYzJwKDAsITApOiJ4Ij09PXYmJihTWzBdPXpbMF09cC5jMnAoMCwhMCkpLGcuYXR0cigiZCIsTSsiTCIreisiTCIrUysiWiIpKTpnLmF0dHIoImQiLE0rIloiKSk6InRvbmV4dCI9PT1lLmZpbGwuc3Vic3RyKDAsNikmJk0mJngmJigidG9uZXh0Ij09PWUuZmlsbD95LmF0dHIoImQiLE0rIloiK3grIloiKTp5LmF0dHIoImQiLE0rIkwiK3guc3Vic3RyKDEpKyJaIiksZS5fcG9seWdvbnM9ZS5fcG9seWdvbnMuY29uY2F0KF8pKSx4PWssXz1FfX19KSxtLnNlbGVjdEFsbCgicGF0aDpub3QoW2RdKSIpLnJlbW92ZSgpLG0uYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwb2ludHMiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1pLnNlbGVjdCh0aGlzKSxuPXUuaGFzTWFya2VycyhlKSxzPXUuaGFzVGV4dChlKTshbiYmIXN8fGUudmlzaWJsZSE9PSEwP3IucmVtb3ZlKCk6KG4mJnIuc2VsZWN0QWxsKCJwYXRoLnBvaW50IikuZGF0YShlLm1hcmtlci5tYXhkaXNwbGF5ZWQ/ZjpvLmlkZW50aXR5KS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInBvaW50IiwhMCkuY2FsbChhLnRyYW5zbGF0ZVBvaW50cyxwLGQpLHMmJnIuc2VsZWN0QWxsKCJnIikuZGF0YShlLm1hcmtlci5tYXhkaXNwbGF5ZWQ/ZjpvLmlkZW50aXR5KS5lbnRlcigpLmFwcGVuZCgiZyIpLmFwcGVuZCgidGV4dCIpLmNhbGwoYS50cmFuc2xhdGVQb2ludHMscCxkKSl9KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo1MjksIi4uLy4uL2NvbXBvbmVudHMvZXJyb3JiYXJzIjo1MzUsIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvcG9seWdvbiI6NTk3LCIuL2FycmF5c190b19jYWxjZGF0YSI6NzcyLCIuL2xpbmVfcG9pbnRzIjo3ODUsIi4vc3VidHlwZXMiOjc5MixkMzoxMjR9XSw3OTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zdWJ0eXBlcyIpLGk9LjI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbyxhLHMsbD10LmNkLHU9dC54YXhpcyxjPXQueWF4aXMsaD1bXSxmPWxbMF0udHJhY2UscD1mLmluZGV4LGQ9Zi5tYXJrZXIsbT0hbi5oYXNNYXJrZXJzKGYpJiYhbi5oYXNUZXh0KGYpO2lmKGYudmlzaWJsZT09PSEwJiYhbSl7dmFyIGc9QXJyYXkuaXNBcnJheShkLm9wYWNpdHkpPzE6ZC5vcGFjaXR5O2lmKGU9PT0hMSlmb3Iocj0wO3I8bC5sZW5ndGg7cisrKWxbcl0uZGltPTA7ZWxzZSBmb3Iocj0wO3I8bC5sZW5ndGg7cisrKW89bFtyXSxhPXUuYzJwKG8ueCkscz1jLmMycChvLnkpLGUuY29udGFpbnMoW2Esc10pPyhoLnB1c2goe2N1cnZlTnVtYmVyOnAscG9pbnROdW1iZXI6cix4Om8ueCx5Om8ueX0pLG8uZGltPTApOm8uZGltPTE7cmV0dXJuIGxbMF0ubm9kZTMuc2VsZWN0QWxsKCJwYXRoLnBvaW50Iikuc3R5bGUoIm9wYWNpdHkiLGZ1bmN0aW9uKHQpe3JldHVybigodC5tbysxfHxnKzEpLTEpKih0LmRpbT9pOjEpfSksbFswXS5ub2RlMy5zZWxlY3RBbGwoInRleHQiKS5zdHlsZSgib3BhY2l0eSIsZnVuY3Rpb24odCl7cmV0dXJuIHQuZGltP2k6MX0pLGh9fX0seyIuL3N1YnR5cGVzIjo3OTJ9XSw3OTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLnNjYXR0ZXIiKTtlLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSksZS5zZWxlY3RBbGwoImcucG9pbnRzIikuZWFjaChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgucG9pbnQiKS5jYWxsKGkucG9pbnRTdHlsZSx0LnRyYWNlfHx0WzBdLnRyYWNlKSxuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInRleHQiKS5jYWxsKGkudGV4dFBvaW50U3R5bGUsdC50cmFjZXx8dFswXS50cmFjZSl9KSxlLnNlbGVjdEFsbCgiZy50cmFjZSBwYXRoLmpzLWxpbmUiKS5jYWxsKGkubGluZUdyb3VwU3R5bGUpLGUuc2VsZWN0QWxsKCJnLnRyYWNlIHBhdGguanMtZmlsbCIpLmNhbGwoaS5maWxsR3JvdXBTdHlsZSksZS5jYWxsKG8uc3R5bGUpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjUyOSwiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMiOjUzNSxkMzoxMjR9XSw3OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPXtoYXNMaW5lczpmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlJiZ0Lm1vZGUmJi0xIT09dC5tb2RlLmluZGV4T2YoImxpbmVzIil9LGhhc01hcmtlcnM6ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZSYmdC5tb2RlJiYtMSE9PXQubW9kZS5pbmRleE9mKCJtYXJrZXJzIil9LGhhc1RleHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZSYmdC5tb2RlJiYtMSE9PXQubW9kZS5pbmRleE9mKCJ0ZXh0Iil9LGlzQnViYmxlOmZ1bmN0aW9uKHQpe3JldHVybiBuLmlzUGxhaW5PYmplY3QodC5tYXJrZXIpJiZBcnJheS5pc0FycmF5KHQubWFya2VyLnNpemUpfX19LHsiLi4vLi4vbGliIjo1OTF9XSw3OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe2koInRleHRwb3NpdGlvbiIpLG4uY29lcmNlRm9udChpLCJ0ZXh0Zm9udCIsci5mb250KX19LHsiLi4vLi4vbGliIjo1OTF9XSw3OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPXIoIngiKSxvPXIoInkiKTtpZihpKW8/KG49TWF0aC5taW4oaS5sZW5ndGgsby5sZW5ndGgpLG48aS5sZW5ndGgmJihlLng9aS5zbGljZSgwLG4pKSxuPG8ubGVuZ3RoJiYoZS55PW8uc2xpY2UoMCxuKSkpOihuPWkubGVuZ3RoLHIoInkwIikscigiZHkiKSk7ZWxzZXtpZighbylyZXR1cm4gMDtuPWUueS5sZW5ndGgscigieDAiKSxyKCJkeCIpfXJldHVybiBufX0se31dLDc5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEwLGRmbHQ6Mi8zfX19dmFyIGk9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY29sb3JfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL2dsX21hcmtlcnMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGw9aS5saW5lLHU9aS5tYXJrZXIsYz11LmxpbmU7ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx0ZXh0OnMoe30saS50ZXh0LHt9KSxtb2RlOnMoe30saS5tb2RlLHtkZmx0OiJsaW5lcyttYXJrZXJzIn0pLHN1cmZhY2VheGlzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6Wy0xLDAsMSwyXSxkZmx0Oi0xfSxzdXJmYWNlY29sb3I6e3ZhbFR5cGU6ImNvbG9yIn0scHJvamVjdGlvbjp7eDpuKCJ4IikseTpuKCJ5IiksejpuKCJ6Iil9LGNvbm5lY3RnYXBzOmkuY29ubmVjdGdhcHMsbGluZTpzKHt9LHt3aWR0aDpsLndpZHRoLGRhc2g6bC5kYXNoLHNob3dzY2FsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX19LG8oImxpbmUiKSksbWFya2VyOnMoe30se3N5bWJvbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGEpLGRmbHQ6ImNpcmNsZSIsYXJyYXlPazohMH0sc2l6ZTpzKHt9LHUuc2l6ZSx7ZGZsdDo4fSksc2l6ZXJlZjp1LnNpemVyZWYsc2l6ZW1pbjp1LnNpemVtaW4sc2l6ZW1vZGU6dS5zaXplbW9kZSxvcGFjaXR5OnMoe30sdS5vcGFjaXR5LHthcnJheU9rOiExfSksc2hvd3NjYWxlOnUuc2hvd3NjYWxlLGxpbmU6cyh7fSx7d2lkdGg6cyh7fSxjLndpZHRoLHthcnJheU9rOiExfSl9LG8oIm1hcmtlci5saW5lIikpfSxvKCJtYXJrZXIiKSksdGV4dHBvc2l0aW9uOnMoe30saS50ZXh0cG9zaXRpb24se2RmbHQ6InRvcCBjZW50ZXIifSksdGV4dGZvbnQ6aS50ZXh0Zm9udCxfbmVzdGVkTW9kdWxlczp7ZXJyb3JfeDoiRXJyb3JCYXJzIixlcnJvcl95OiJFcnJvckJhcnMiLGVycm9yX3o6IkVycm9yQmFycyIsIm1hcmtlci5jb2xvcmJhciI6IkNvbG9yYmFyIn19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jb2xvcl9hdHRyaWJ1dGVzIjo1MTQsIi4uLy4uL2NvbnN0YW50cy9nbF9tYXJrZXJzIjo1NzcsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo3NzN9XSw3OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiKSxpPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W3t4OiExLHk6ITEsdHJhY2U6ZSx0Ont9fV07cmV0dXJuIG4ociksaShlKSxyfX0seyIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6NzcyLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6Nzc3fV0sNzk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe2lmKCFlfHwhZS52aXNpYmxlKXJldHVybiBudWxsO2Zvcih2YXIgbj1hKGUpLGk9bmV3IEFycmF5KHQubGVuZ3RoKSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPW4oK3Rbb10sbyk7aVtvXT1bLXNbMF0qcixzWzFdKnJdfXJldHVybiBpfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXSlyZXR1cm4gdFtlXS5sZW5ndGg7cmV0dXJuIDB9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPVtuKHQueCx0LmVycm9yX3gsZVswXSksbih0LnksdC5lcnJvcl95LGVbMV0pLG4odC56LHQuZXJyb3JfeixlWzJdKV0sbz1pKHIpO2lmKDA9PT1vKXJldHVybiBudWxsO2Zvcih2YXIgYT1uZXcgQXJyYXkobykscz0wO28+cztzKyspe2Zvcih2YXIgbD1bWzAsMCwwXSxbMCwwLDBdXSx1PTA7Mz51O3UrKylpZihyW3VdKWZvcih2YXIgYz0wOzI+YztjKyspbFtjXVt1XT1yW3VdW3NdW2NdO2Fbc109bH1yZXR1cm4gYX12YXIgYT10KCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycy9jb21wdXRlX2Vycm9yIik7ZS5leHBvcnRzPW99LHsiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMvY29tcHV0ZV9lcnJvciI6NTMzfV0sNzk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLmxpbmVQbG90PW51bGwsdGhpcy5zY2F0dGVyUGxvdD1udWxsLHRoaXMuZXJyb3JCYXJzPW51bGwsdGhpcy50ZXh0TWFya2Vycz1udWxsLHRoaXMuZGVsYXVuYXlNZXNoPW51bGwsdGhpcy5jb2xvcj1udWxsLHRoaXMubW9kZT0iIix0aGlzLmRhdGFQb2ludHM9W10sdGhpcy5heGVzQm91bmRzPVtbLSgxLzApLC0oMS8wKSwtKDEvMCldLFsxLzAsMS8wLDEvMF1dLHRoaXMudGV4dExhYmVscz1udWxsLHRoaXMuZGF0YT1udWxsfWZ1bmN0aW9uIGkodCxlLHIpe3ZhciBuLGk9KHIrMSklMyxvPShyKzIpJTMsYT1bXSxzPVtdO2ZvcihuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBsPXRbbl07IWlzTmFOKGxbaV0pJiZpc0Zpbml0ZShsW2ldKSYmIWlzTmFOKGxbb10pJiZpc0Zpbml0ZShsW29dKSYmKGEucHVzaChbbFtpXSxsW29dXSkscy5wdXNoKG4pKX12YXIgdT12KGEpO2ZvcihuPTA7bjx1Lmxlbmd0aDsrK24pZm9yKHZhciBjPXVbbl0saD0wO2g8Yy5sZW5ndGg7KytoKWNbaF09c1tjW2hdXTtyZXR1cm57cG9zaXRpb25zOnQsY2VsbHM6dSxtZXNoQ29sb3I6ZX19ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9WzAsMCwwXSxyPVtbMCwwLDBdLFswLDAsMF0sWzAsMCwwXV0sbj1bMCwwLDBdLGk9MDszPmk7aSsrKXt2YXIgbz10W2ldO28mJm8uY29weV96c3R5bGUhPT0hMSYmKG89dFsyXSksbyYmKGVbaV09by53aWR0aC8yLHJbaV09YihvLmNvbG9yKSxuPW8udGhpY2tuZXNzKX1yZXR1cm57Y2FwU2l6ZTplLGNvbG9yOnIsbGluZVdpZHRoOm59fWZ1bmN0aW9uIGEodCl7dmFyIGU9WzAsMF07cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/WzAsLTFdOih0LmluZGV4T2YoImJvdHRvbSIpPj0wJiYoZVsxXSs9MSksdC5pbmRleE9mKCJ0b3AiKT49MCYmKGVbMV0tPTEpLHQuaW5kZXhPZigibGVmdCIpPj0wJiYoZVswXS09MSksdC5pbmRleE9mKCJyaWdodCIpPj0wJiYoZVswXSs9MSksZSl9ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBlKDQqdCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gTVt0XX1mdW5jdGlvbiB1KHQsZSxyLG4saSl7dmFyIG89bnVsbDtpZihBcnJheS5pc0FycmF5KHQpKXtvPVtdO2Zvcih2YXIgYT0wO2U+YTthKyspdm9pZCAwPT09dFthXT9vW2FdPW46b1thXT1yKHRbYV0saSl9ZWxzZSBvPXIodCx5LmlkZW50aXR5KTtyZXR1cm4gb31mdW5jdGlvbiBjKHQsZSl7dmFyIHIsbixpLGMsaCxmLHA9W10sZD10LmZ1bGxTY2VuZUxheW91dCxtPXQuZGF0YVNjYWxlLGc9ZC54YXhpcyx2PWQueWF4aXMsdz1kLnpheGlzLE09ZS5tYXJrZXIsQT1lLmxpbmUsVD1lLnh8fFtdLEU9ZS55fHxbXSxTPWUuenx8W10sTD1ULmxlbmd0aDtmb3Iobj0wO0w+bjtuKyspaT1nLmQybChUW25dKSptWzBdLGM9di5kMmwoRVtuXSkqbVsxXSxoPXcuZDJsKFNbbl0pKm1bMl0scFtuXT1baSxjLGhdO2lmKEFycmF5LmlzQXJyYXkoZS50ZXh0KSlmPWUudGV4dDtlbHNlIGlmKHZvaWQgMCE9PWUudGV4dClmb3IoZj1uZXcgQXJyYXkoTCksbj0wO0w+bjtuKyspZltuXT1lLnRleHQ7aWYocj17cG9zaXRpb246cCxtb2RlOmUubW9kZSx0ZXh0OmZ9LCJsaW5lImluIGUmJihyLmxpbmVDb2xvcj14KEEsMSxMKSxyLmxpbmVXaWR0aD1BLndpZHRoLHIubGluZURhc2hlcz1BLmRhc2gpLCJtYXJrZXIiaW4gZSl7dmFyIHo9XyhlKTtyLnNjYXR0ZXJDb2xvcj14KE0sMSxMKSxyLnNjYXR0ZXJTaXplPXUoTS5zaXplLEwscywyMCx6KSxyLnNjYXR0ZXJNYXJrZXI9dShNLnN5bWJvbCxMLGwsIlx1MjVjZiIpLHIuc2NhdHRlckxpbmVXaWR0aD1NLmxpbmUud2lkdGgsci5zY2F0dGVyTGluZUNvbG9yPXgoTS5saW5lLDEsTCksci5zY2F0dGVyQW5nbGU9MH0idGV4dHBvc2l0aW9uImluIGUmJihyLnRleHRPZmZzZXQ9YShlLnRleHRwb3NpdGlvbiksci50ZXh0Q29sb3I9eChlLnRleHRmb250LDEsTCksci50ZXh0U2l6ZT11KGUudGV4dGZvbnQuc2l6ZSxMLHkuaWRlbnRpdHksMTIpLHIudGV4dEZvbnQ9ZS50ZXh0Zm9udC5mYW1pbHksci50ZXh0QW5nbGU9MCk7dmFyIEk9WyJ4IiwieSIsInoiXTtmb3Ioci5wcm9qZWN0PVshMSwhMSwhMV0sci5wcm9qZWN0U2NhbGU9WzEsMSwxXSxyLnByb2plY3RPcGFjaXR5PVsxLDEsMV0sbj0wOzM+bjsrK24pe3ZhciBQPWUucHJvamVjdGlvbltJW25dXTsoci5wcm9qZWN0W25dPVAuc2hvdykmJihyLnByb2plY3RPcGFjaXR5W25dPVAub3BhY2l0eSxyLnByb2plY3RTY2FsZVtuXT1QLnNjYWxlKX1yLmVycm9yQm91bmRzPWsoZSxtKTt2YXIgQz1vKFtlLmVycm9yX3gsZS5lcnJvcl95LGUuZXJyb3Jfel0pO3JldHVybiByLmVycm9yQ29sb3I9Qy5jb2xvcixyLmVycm9yTGluZVdpZHRoPUMubGluZVdpZHRoLHIuZXJyb3JDYXBTaXplPUMuY2FwU2l6ZSxyLmRlbGF1bmF5QXhpcz1lLnN1cmZhY2VheGlzLHIuZGVsYXVuYXlDb2xvcj1iKGUuc3VyZmFjZWNvbG9yKSxyfWZ1bmN0aW9uIGgodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7dmFyIGU9dFswXTtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmKHQ9ZSksInJnYigiK3Quc2xpY2UoMCwzKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQoMjU1KnQpfSkrIikifXJldHVybiBudWxsfWZ1bmN0aW9uIGYodCxlKXt2YXIgcj1uZXcgbih0LGUudWlkKTtyZXR1cm4gci51cGRhdGUoZSkscn12YXIgcD10KCJnbC1saW5lM2QiKSxkPXQoImdsLXNjYXR0ZXIzZCIpLG09dCgiZ2wtZXJyb3IzZCIpLGc9dCgiZ2wtbWVzaDNkIiksdj10KCJkZWxhdW5heS10cmlhbmd1bGF0ZSIpLHk9dCgiLi4vLi4vbGliIiksYj10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IikseD10KCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIiksXz10KCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpLHc9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfZGFzaGVzIiksTT10KCIuLi8uLi9jb25zdGFudHMvZ2xfbWFya2VycyIpLGs9dCgiLi9jYWxjX2Vycm9ycyIpLEE9bi5wcm90b3R5cGU7QS5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0JiYodC5vYmplY3Q9PT10aGlzLmxpbmVQbG90fHx0Lm9iamVjdD09PXRoaXMuZGVsYXVuYXlNZXNofHx0Lm9iamVjdD09PXRoaXMudGV4dE1hcmtlcnN8fHQub2JqZWN0PT09dGhpcy5zY2F0dGVyUGxvdCkpe3Qub2JqZWN0LmhpZ2hsaWdodCYmdC5vYmplY3QuaGlnaGxpZ2h0KG51bGwpLHRoaXMuc2NhdHRlclBsb3QmJih0Lm9iamVjdD10aGlzLnNjYXR0ZXJQbG90LHRoaXMuc2NhdHRlclBsb3QuaGlnaGxpZ2h0KHQuZGF0YSkpLHRoaXMudGV4dExhYmVscyYmdm9pZCAwIT09dGhpcy50ZXh0TGFiZWxzW3QuZGF0YS5pbmRleF0/dC50ZXh0TGFiZWw9dGhpcy50ZXh0TGFiZWxzW3QuZGF0YS5pbmRleF06dC50ZXh0TGFiZWw9IiI7dmFyIGU9dC5kYXRhLmluZGV4O3JldHVybiB0LnRyYWNlQ29vcmRpbmF0ZT1bdGhpcy5kYXRhLnhbZV0sdGhpcy5kYXRhLnlbZV0sdGhpcy5kYXRhLnpbZV1dLCEwfX0sQS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUscixuLG8sYT10aGlzLnNjZW5lLmdscGxvdC5nbCxzPXcuc29saWQ7dGhpcy5kYXRhPXQ7dmFyIGw9Yyh0aGlzLnNjZW5lLHQpOyJtb2RlImluIGwmJih0aGlzLm1vZGU9bC5tb2RlKSwibGluZURhc2hlcyJpbiBsJiZsLmxpbmVEYXNoZXMgaW4gdyYmKHM9d1tsLmxpbmVEYXNoZXNdKSx0aGlzLmNvbG9yPWgobC5zY2F0dGVyQ29sb3IpfHxoKGwubGluZUNvbG9yKSx0aGlzLmRhdGFQb2ludHM9bC5wb3NpdGlvbixlPXtnbDphLHBvc2l0aW9uOmwucG9zaXRpb24sY29sb3I6bC5saW5lQ29sb3IsbGluZVdpZHRoOmwubGluZVdpZHRofHwxLGRhc2hlczpzWzBdLGRhc2hTY2FsZTpzWzFdLG9wYWNpdHk6dC5vcGFjaXR5LGNvbm5lY3RHYXBzOnQuY29ubmVjdGdhcHN9LC0xIT09dGhpcy5tb2RlLmluZGV4T2YoImxpbmVzIik/dGhpcy5saW5lUGxvdD90aGlzLmxpbmVQbG90LnVwZGF0ZShlKToodGhpcy5saW5lUGxvdD1wKGUpLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLmxpbmVQbG90KSk6dGhpcy5saW5lUGxvdCYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmxpbmVQbG90KSx0aGlzLmxpbmVQbG90LmRpc3Bvc2UoKSx0aGlzLmxpbmVQbG90PW51bGwpO3ZhciB1PXQub3BhY2l0eTtpZih0Lm1hcmtlciYmdC5tYXJrZXIub3BhY2l0eSYmKHUqPXQubWFya2VyLm9wYWNpdHkpLHI9e2dsOmEscG9zaXRpb246bC5wb3NpdGlvbixjb2xvcjpsLnNjYXR0ZXJDb2xvcixzaXplOmwuc2NhdHRlclNpemUsZ2x5cGg6bC5zY2F0dGVyTWFya2VyLG9wYWNpdHk6dSxvcnRob2dyYXBoaWM6ITAsbGluZVdpZHRoOmwuc2NhdHRlckxpbmVXaWR0aCxsaW5lQ29sb3I6bC5zY2F0dGVyTGluZUNvbG9yLHByb2plY3Q6bC5wcm9qZWN0LHByb2plY3RTY2FsZTpsLnByb2plY3RTY2FsZSxwcm9qZWN0T3BhY2l0eTpsLnByb2plY3RPcGFjaXR5fSwtMSE9PXRoaXMubW9kZS5pbmRleE9mKCJtYXJrZXJzIik/dGhpcy5zY2F0dGVyUGxvdD90aGlzLnNjYXR0ZXJQbG90LnVwZGF0ZShyKToodGhpcy5zY2F0dGVyUGxvdD1kKHIpLHRoaXMuc2NhdHRlclBsb3QuaGlnaGxpZ2h0U2NhbGU9MSx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5zY2F0dGVyUGxvdCkpOnRoaXMuc2NhdHRlclBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5zY2F0dGVyUGxvdCksdGhpcy5zY2F0dGVyUGxvdC5kaXNwb3NlKCksdGhpcy5zY2F0dGVyUGxvdD1udWxsKSxvPXtnbDphLHBvc2l0aW9uOmwucG9zaXRpb24sZ2x5cGg6bC50ZXh0LGNvbG9yOmwudGV4dENvbG9yLHNpemU6bC50ZXh0U2l6ZSxhbmdsZTpsLnRleHRBbmdsZSxhbGlnbm1lbnQ6bC50ZXh0T2Zmc2V0LGZvbnQ6bC50ZXh0Rm9udCxvcnRob2dyYXBoaWM6ITAsbGluZVdpZHRoOjAscHJvamVjdDohMSxvcGFjaXR5OnQub3BhY2l0eX0sdGhpcy50ZXh0TGFiZWxzPWwudGV4dCwtMSE9PXRoaXMubW9kZS5pbmRleE9mKCJ0ZXh0Iik/dGhpcy50ZXh0TWFya2Vycz90aGlzLnRleHRNYXJrZXJzLnVwZGF0ZShvKToodGhpcy50ZXh0TWFya2Vycz1kKG8pLHRoaXMudGV4dE1hcmtlcnMuaGlnaGxpZ2h0U2NhbGU9MSx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy50ZXh0TWFya2VycykpOnRoaXMudGV4dE1hcmtlcnMmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy50ZXh0TWFya2VycyksdGhpcy50ZXh0TWFya2Vycy5kaXNwb3NlKCksdGhpcy50ZXh0TWFya2Vycz1udWxsKSxuPXtnbDphLHBvc2l0aW9uOmwucG9zaXRpb24sY29sb3I6bC5lcnJvckNvbG9yLGVycm9yOmwuZXJyb3JCb3VuZHMsbGluZVdpZHRoOmwuZXJyb3JMaW5lV2lkdGgsY2FwU2l6ZTpsLmVycm9yQ2FwU2l6ZSxvcGFjaXR5OnQub3BhY2l0eX0sdGhpcy5lcnJvckJhcnM/bC5lcnJvckJvdW5kcz90aGlzLmVycm9yQmFycy51cGRhdGUobik6KHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmVycm9yQmFycyksdGhpcy5lcnJvckJhcnMuZGlzcG9zZSgpLHRoaXMuZXJyb3JCYXJzPW51bGwpOmwuZXJyb3JCb3VuZHMmJih0aGlzLmVycm9yQmFycz1tKG4pLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLmVycm9yQmFycykpLGwuZGVsYXVuYXlBeGlzPj0wKXt2YXIgZj1pKGwucG9zaXRpb24sbC5kZWxhdW5heUNvbG9yLGwuZGVsYXVuYXlBeGlzKTtmLm9wYWNpdHk9dC5vcGFjaXR5LHRoaXMuZGVsYXVuYXlNZXNoP3RoaXMuZGVsYXVuYXlNZXNoLnVwZGF0ZShmKTooZi5nbD1hLHRoaXMuZGVsYXVuYXlNZXNoPWcoZiksdGhpcy5zY2VuZS5nbHBsb3QuYWRkKHRoaXMuZGVsYXVuYXlNZXNoKSl9ZWxzZSB0aGlzLmRlbGF1bmF5TWVzaCYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmRlbGF1bmF5TWVzaCksdGhpcy5kZWxhdW5heU1lc2guZGlzcG9zZSgpLHRoaXMuZGVsYXVuYXlNZXNoPW51bGwpfSxBLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmxpbmVQbG90JiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubGluZVBsb3QpLHRoaXMubGluZVBsb3QuZGlzcG9zZSgpKSx0aGlzLnNjYXR0ZXJQbG90JiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuc2NhdHRlclBsb3QpLHRoaXMuc2NhdHRlclBsb3QuZGlzcG9zZSgpKSx0aGlzLmVycm9yQmFycyYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmVycm9yQmFycyksdGhpcy5lcnJvckJhcnMuZGlzcG9zZSgpKSx0aGlzLnRleHRNYXJrZXJzJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMudGV4dE1hcmtlcnMpLHRoaXMudGV4dE1hcmtlcnMuZGlzcG9zZSgpKSx0aGlzLmRlbGF1bmF5TWVzaCYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmRlbGF1bmF5TWVzaCksdGhpcy5kZWxhdW5heU1lc2guZGlzcG9zZSgpKX0sZS5leHBvcnRzPWZ9LHsiLi4vLi4vY29uc3RhbnRzL2dsM2RfZGFzaGVzIjo1NzYsIi4uLy4uL2NvbnN0YW50cy9nbF9tYXJrZXJzIjo1NzcsIi4uLy4uL2xpYiI6NTkxLCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo1ODksIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjYwMywiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjc4NywiLi9jYWxjX2Vycm9ycyI6Nzk3LCJkZWxhdW5heS10cmlhbmd1bGF0ZSI6MTI1LCJnbC1lcnJvcjNkIjoxMzIsImdsLWxpbmUzZCI6MTM4LCJnbC1tZXNoM2QiOjE2MSwiZ2wtc2NhdHRlcjNkIjoyMDR9XSw3OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49MCxpPXIoIngiKSxvPXIoInkiKSxhPXIoInoiKTtyZXR1cm4gaSYmbyYmYSYmKG49TWF0aC5taW4oaS5sZW5ndGgsby5sZW5ndGgsYS5sZW5ndGgpLG48aS5sZW5ndGgmJihlLng9aS5zbGljZSgwLG4pKSxuPG8ubGVuZ3RoJiYoZS55PW8uc2xpY2UoMCxuKSksbjxhLmxlbmd0aCYmKGUuej1hLnNsaWNlKDAsbikpKSxufXZhciBpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksdT10KCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycy9kZWZhdWx0cyIpLGM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgpe2Z1bmN0aW9uIGYocixuKXtyZXR1cm4gaS5jb2VyY2UodCxlLGMscixuKX12YXIgcD1uKHQsZSxmKTtpZighcClyZXR1cm4gdm9pZChlLnZpc2libGU9ITEpO2YoInRleHQiKSxmKCJtb2RlIiksby5oYXNMaW5lcyhlKSYmKGYoImNvbm5lY3RnYXBzIikscyh0LGUscixoLGYpKSxvLmhhc01hcmtlcnMoZSkmJmEodCxlLHIsaCxmKSxvLmhhc1RleHQoZSkmJmwodCxlLGgsZik7dmFyIGQ9KGUubGluZXx8e30pLmNvbG9yLG09KGUubWFya2VyfHx7fSkuY29sb3I7Zigic3VyZmFjZWF4aXMiKT49MCYmZigic3VyZmFjZWNvbG9yIixkfHxtKTtmb3IodmFyIGc9WyJ4IiwieSIsInoiXSx2PTA7Mz52Oysrdil7dmFyIHk9InByb2plY3Rpb24uIitnW3ZdO2YoeSsiLnNob3ciKSYmKGYoeSsiLm9wYWNpdHkiKSxmKHkrIi5zY2FsZSIpKX11KHQsZSxyLHtheGlzOiJ6In0pLHUodCxlLHIse2F4aXM6InkiLGluaGVyaXQ6InoifSksdSh0LGUscix7YXhpczoieCIsaW5oZXJpdDoieiJ9KX19LHsiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMvZGVmYXVsdHMiOjUzNCwiLi4vLi4vbGliIjo1OTEsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6Nzg0LCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6Nzg4LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo3OTIsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6NzkzLCIuL2F0dHJpYnV0ZXMiOjc5NX1dLDgwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTtuLnBsb3Q9dCgiLi9jb252ZXJ0Iiksbi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4ubWFya2VyU3ltYm9scz10KCIuLi8uLi9jb25zdGFudHMvZ2xfbWFya2VycyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uY29sb3JiYXI9dCgiLi4vc2NhdHRlci9jb2xvcmJhciIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9InNjYXR0ZXIzZCIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9nbDNkIiksbi5jYXRlZ29yaWVzPVsiZ2wzZCIsInN5bWJvbHMiLCJtYXJrZXJDb2xvcnNjYWxlIiwic2hvd0xlZ2VuZCJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9jb25zdGFudHMvZ2xfbWFya2VycyI6NTc3LCIuLi8uLi9wbG90cy9nbDNkIjo2NTEsIi4uL3NjYXR0ZXIvY29sb3JiYXIiOjc3NiwiLi9hdHRyaWJ1dGVzIjo3OTUsIi4vY2FsYyI6Nzk2LCIuL2NvbnZlcnQiOjc5OCwiLi9kZWZhdWx0cyI6Nzk5fV0sODAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NvbG9yX2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9bi5tYXJrZXIsbD1uLmxpbmUsdT1zLmxpbmU7ZS5leHBvcnRzPXtsb246e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxsYXQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxsb2NhdGlvbnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxsb2NhdGlvbm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIklTTy0zIiwiVVNBLXN0YXRlcyIsImNvdW50cnkgbmFtZXMiXSxkZmx0OiJJU08tMyJ9LG1vZGU6YSh7fSxuLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDphKHt9LG4udGV4dCx7fSksbGluZTp7Y29sb3I6bC5jb2xvcix3aWR0aDpsLndpZHRoLGRhc2g6bC5kYXNofSxtYXJrZXI6YSh7fSx7c3ltYm9sOnMuc3ltYm9sLG9wYWNpdHk6cy5vcGFjaXR5LHNpemU6cy5zaXplLHNpemVyZWY6cy5zaXplcmVmLHNpemVtaW46cy5zaXplbWluLHNpemVtb2RlOnMuc2l6ZW1vZGUsc2hvd3NjYWxlOnMuc2hvd3NjYWxlLGxpbmU6YSh7fSx7d2lkdGg6dS53aWR0aH0sbygibWFya2VyLmxpbmUiKSl9LG8oIm1hcmtlciIpKSx0ZXh0Zm9udDpuLnRleHRmb250LHRleHRwb3NpdGlvbjpuLnRleHRwb3NpdGlvbixob3ZlcmluZm86YSh7fSxpLmhvdmVyaW5mbyx7ZmxhZ3M6WyJsb24iLCJsYXQiLCJsb2NhdGlvbiIsInRleHQiLCJuYW1lIl19KSxfbmVzdGVkTW9kdWxlczp7Im1hcmtlci5jb2xvcmJhciI6IkNvbG9yYmFyIn19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jb2xvcl9hdHRyaWJ1dGVzIjo1MTQsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NjEzLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjc3M31dLDgwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVt7eDohMSx5OiExLHRyYWNlOmUsdDp7fX1dO3JldHVybiBuKGUpLHJ9fSx7Ii4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIjo3Nzd9XSw4MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG4saSxvPTAsYT1yKCJsb2NhdGlvbnMiKTtyZXR1cm4gYT8ocigibG9jYXRpb25tb2RlIiksbz1hLmxlbmd0aCk6KG49cigibG9uIil8fFtdLGk9cigibGF0Iil8fFtdLG89TWF0aC5taW4obi5sZW5ndGgsaS5sZW5ndGgpLG88bi5sZW5ndGgmJihlLmxvbj1uLnNsaWNlKDAsbykpLG88aS5sZW5ndGgmJihlLmxhdD1pLnNsaWNlKDAsbykpLG8pfXZhciBpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksdT10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gaChyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsdSxyLG4pfXZhciBmPW4odCxlLGgpO3JldHVybiBmPyhoKCJ0ZXh0IiksaCgibW9kZSIpLG8uaGFzTGluZXMoZSkmJnModCxlLHIsYyxoKSxvLmhhc01hcmtlcnMoZSkmJmEodCxlLHIsYyxoKSxvLmhhc1RleHQoZSkmJmwodCxlLGMsaCksdm9pZCBoKCJob3ZlcmluZm8iLDE9PT1jLl9kYXRhTGVuZ3RoPyJsb24rbGF0K2xvY2F0aW9uK3RleHQiOnZvaWQgMCkpOnZvaWQoZS52aXNpYmxlPSExKX19LHsiLi4vLi4vbGliIjo1OTEsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6Nzg0LCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6Nzg4LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo3OTIsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6NzkzLCIuL2F0dHJpYnV0ZXMiOjgwMX1dLDgwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17fTtuLmF0dHJpYnV0ZXM9dCgiLi9hdHRyaWJ1dGVzIiksbi5zdXBwbHlEZWZhdWx0cz10KCIuL2RlZmF1bHRzIiksbi5jb2xvcmJhcj10KCIuLi9zY2F0dGVyL2NvbG9yYmFyIiksbi5jYWxjPXQoIi4vY2FsYyIpLG4ucGxvdD10KCIuL3Bsb3QiKS5wbG90LG4ubW9kdWxlVHlwZT0idHJhY2UiLG4ubmFtZT0ic2NhdHRlcmdlbyIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9nZW8iKSxuLmNhdGVnb3JpZXM9WyJnZW8iLCJzeW1ib2xzIiwibWFya2VyQ29sb3JzY2FsZSIsInNob3dMZWdlbmQiXSxuLm1ldGE9e30sZS5leHBvcnRzPW59LHsiLi4vLi4vcGxvdHMvZ2VvIjo2MzYsIi4uL3NjYXR0ZXIvY29sb3JiYXIiOjc3NiwiLi9hdHRyaWJ1dGVzIjo4MDEsIi4vY2FsYyI6ODAyLCIuL2RlZmF1bHRzIjo4MDMsIi4vcGxvdCI6ODA1fV0sODA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlLHIpe2Z1bmN0aW9uIG4odCxuKXtmKHQsZSxuLHIpfXZhciBpPXQubWFya2VyO2lmKG4odC50ZXh0LCJ0eCIpLG4odC50ZXh0cG9zaXRpb24sInRwIiksdC50ZXh0Zm9udCYmKG4odC50ZXh0Zm9udC5zaXplLCJ0cyIpLG4odC50ZXh0Zm9udC5jb2xvciwidGMiKSxuKHQudGV4dGZvbnQuZmFtaWx5LCJ0ZiIpKSxpJiZpLmxpbmUpe3ZhciBvPWkubGluZTtuKGkub3BhY2l0eSwibW8iKSxuKGkuc3ltYm9sLCJteCIpLG4oaS5jb2xvciwibWMiKSxuKGkuc2l6ZSwibXMiKSxuKG8uY29sb3IsIm1sYyIpLG4oby53aWR0aCwibWx3Iil9fWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPXQubG9uLmxlbmd0aCxyPW5ldyBBcnJheShlKSxuPTA7ZT5uO24rKylyW25dPVt0LmxvbltuXSx0LmxhdFtuXV07cmV0dXJue3R5cGU6IkxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOnIsdHJhY2U6dH19ZnVuY3Rpb24gbyh0LGUpe2Z1bmN0aW9uIHIoZSl7dmFyIHI9dC5tb2NrQXhpcztyZXR1cm4gdS50aWNrVGV4dChyLHIuYzJsKGUpLCJob3ZlciIpLnRleHQrIlx4YjAifXZhciBuPWUuaG92ZXJpbmZvO2lmKCJub25lIj09PW4pcmV0dXJuIGZ1bmN0aW9uKHQpe2RlbGV0ZSB0LnRleHRMYWJlbH07dmFyIGk9ImFsbCI9PT1uP2cuaG92ZXJpbmZvLmZsYWdzOm4uc3BsaXQoIisiKSxvPS0xIT09aS5pbmRleE9mKCJsb2NhdGlvbiIpJiZBcnJheS5pc0FycmF5KGUubG9jYXRpb25zKSxhPS0xIT09aS5pbmRleE9mKCJsb24iKSxzPS0xIT09aS5pbmRleE9mKCJsYXQiKSxsPS0xIT09aS5pbmRleE9mKCJ0ZXh0Iik7CnJldHVybiBmdW5jdGlvbih0KXt2YXIgbj1bXTtvP24ucHVzaCh0LmxvY2F0aW9uKTphJiZzP24ucHVzaCgiKCIrcih0LmxvbikrIiwgIityKHQubGF0KSsiKSIpOmE/bi5wdXNoKCJsb246ICIrcih0LmxvbikpOnMmJm4ucHVzaCgibGF0OiAiK3IodC5sYXQpKSxsJiZuLnB1c2godC50eHx8ZS50ZXh0KSx0LnRleHRMYWJlbD1uLmpvaW4oIjxicj4iKX19ZnVuY3Rpb24gYSh0KXt2YXIgZT1BcnJheS5pc0FycmF5KHQubG9jYXRpb25zKTtyZXR1cm4gZnVuY3Rpb24ocixuKXtyZXR1cm57cG9pbnRzOlt7ZGF0YTp0Ll9pbnB1dCxmdWxsRGF0YTp0LGN1cnZlTnVtYmVyOnQuaW5kZXgscG9pbnROdW1iZXI6bixsb246ci5sb24sbGF0OnIubGF0LGxvY2F0aW9uOmU/ci5sb2NhdGlvbjpudWxsfV19fX12YXIgcz10KCJkMyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0IiksdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGM9dCgiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIikuZ2V0VG9wb2pzb25GZWF0dXJlcyxoPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKS5sb2NhdGlvblRvRmVhdHVyZSxmPXQoIi4uLy4uL2xpYi9hcnJheV90b19jYWxjX2l0ZW0iKSxwPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxkPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG09dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGc9dCgiLi9hdHRyaWJ1dGVzIiksdj1lLmV4cG9ydHM9e307di5jYWxjR2VvSlNPTj1mdW5jdGlvbih0LGUpe3ZhciByLGksbyxhLHM9W10sbD1BcnJheS5pc0FycmF5KHQubG9jYXRpb25zKTtsPyhhPXQubG9jYXRpb25zLHI9YS5sZW5ndGgsaT1jKHQsZSksbz1mdW5jdGlvbih0LGUpe3ZhciByPWgodC5sb2NhdGlvbm1vZGUsYVtlXSxpKTtyZXR1cm4gdm9pZCAwIT09cj9yLnByb3BlcnRpZXMuY3Q6dm9pZCAwfSk6KHI9dC5sb24ubGVuZ3RoLG89ZnVuY3Rpb24odCxlKXtyZXR1cm5bdC5sb25bZV0sdC5sYXRbZV1dfSk7Zm9yKHZhciB1PTA7cj51O3UrKyl7dmFyIGY9byh0LHUpO2lmKGYpe3ZhciBwPXtsb246ZlswXSxsYXQ6ZlsxXSxsb2NhdGlvbjpsP3QubG9jYXRpb25zW3VdOm51bGx9O24odCxwLHUpLHMucHVzaChwKX19cmV0dXJuIHMubGVuZ3RoPjAmJihzWzBdLnRyYWNlPXQpLHN9LHYucGxvdD1mdW5jdGlvbih0LGUpe3ZhciByPXQuZnJhbWV3b3JrLnNlbGVjdCgiLnNjYXR0ZXJnZW9sYXllciIpLnNlbGVjdEFsbCgiZy50cmFjZS5zY2F0dGVyZ2VvIikuZGF0YShlLGZ1bmN0aW9uKHQpe3JldHVybiB0LnVpZH0pO3IuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRyYWNlIHNjYXR0ZXJnZW8iKSxyLmV4aXQoKS5yZW1vdmUoKSxyLnNlbGVjdEFsbCgiKiIpLnJlbW92ZSgpLHIuZWFjaChmdW5jdGlvbih0KXt2YXIgZT1zLnNlbGVjdCh0aGlzKTttLmhhc0xpbmVzKHQpJiZlLnNlbGVjdEFsbCgicGF0aC5qcy1saW5lIikuZGF0YShbaSh0KV0pLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtbGluZSIsITApfSksci5lYWNoKGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocixuKXtpZih0LnNob3dIb3Zlcil7dmFyIGk9dC5wcm9qZWN0aW9uKFtyLmxvbixyLmxhdF0pO2YociksbC5sb25lSG92ZXIoe3g6aVswXSx5OmlbMV0sbmFtZTpnP2UubmFtZTp2b2lkIDAsdGV4dDpyLnRleHRMYWJlbCxjb2xvcjpyLm1jfHwoZS5tYXJrZXJ8fHt9KS5jb2xvcn0se2NvbnRhaW5lcjp0LmhvdmVyQ29udGFpbmVyLm5vZGUoKX0pLHk9cChyLG4pLHQuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2hvdmVyIix5KX19ZnVuY3Rpb24gbihlLHIpe3QuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X2NsaWNrIixwKGUscikpfXZhciBpPXMuc2VsZWN0KHRoaXMpLHU9bS5oYXNNYXJrZXJzKGUpLGM9bS5oYXNUZXh0KGUpO2lmKHV8fGMpe3ZhciBoPXYuY2FsY0dlb0pTT04oZSx0LnRvcG9qc29uKSxmPW8odCxlKSxwPWEoZSksZD1lLmhvdmVyaW5mbyxnPSJhbGwiPT09ZHx8LTEhPT1kLmluZGV4T2YoIm5hbWUiKSx5PW51bGw7dSYmaS5zZWxlY3RBbGwoInBhdGgucG9pbnQiKS5kYXRhKGgpLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgicG9pbnQiLCEwKS5vbigibW91c2VvdmVyIixyKS5vbigiY2xpY2siLG4pLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtsLmxvbmVVbmhvdmVyKHQuaG92ZXJDb250YWluZXIpLHQuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHkpfSkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oKXtsLmxvbmVVbmhvdmVyKHQuaG92ZXJDb250YWluZXIpfSkub24oIm1vdXNldXAiLHIpLGMmJmkuc2VsZWN0QWxsKCJnIikuZGF0YShoKS5lbnRlcigpLmFwcGVuZCgiZyIpLmFwcGVuZCgidGV4dCIpfX0pLHYuc3R5bGUodCl9LHYuc3R5bGU9ZnVuY3Rpb24odCl7dmFyIGU9dC5mcmFtZXdvcmsuc2VsZWN0QWxsKCJnLnRyYWNlLnNjYXR0ZXJnZW8iKTtlLnN0eWxlKCJvcGFjaXR5IixmdW5jdGlvbih0KXtyZXR1cm4gdC5vcGFjaXR5fSksZS5lYWNoKGZ1bmN0aW9uKHQpe3Muc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpLmNhbGwoZC5wb2ludFN0eWxlLHQpLHMuc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgidGV4dCIpLmNhbGwoZC50ZXh0UG9pbnRTdHlsZSx0KX0pLGUuc2VsZWN0QWxsKCJwYXRoLmpzLWxpbmUiKS5zdHlsZSgiZmlsbCIsIm5vbmUiKS5lYWNoKGZ1bmN0aW9uKHQpe3ZhciBlPXQudHJhY2Uscj1lLmxpbmV8fHt9O3Muc2VsZWN0KHRoaXMpLmNhbGwocC5zdHJva2Usci5jb2xvcikuY2FsbChkLmRhc2hMaW5lLHIuZGFzaHx8IiIsci53aWR0aHx8MCl9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjUyOSwiLi4vLi4vbGliL2FycmF5X3RvX2NhbGNfaXRlbSI6NTgyLCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIjo1ODgsIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyI6NjA1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiOjYyMiwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6NzkyLCIuL2F0dHJpYnV0ZXMiOjgwMSxkMzoxMjR9XSw4MDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY29sb3JfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL2dsMmRfZGFzaGVzIiksYT10KCIuLi8uLi9jb25zdGFudHMvZ2xfbWFya2VycyIpLHM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRGVlcCx1PW4ubGluZSxjPW4ubWFya2VyLGg9Yy5saW5lO2UuZXhwb3J0cz17eDpuLngseDA6bi54MCxkeDpuLmR4LHk6bi55LHkwOm4ueTAsZHk6bi5keSx0ZXh0OnMoe30sbi50ZXh0LHt9KSxtb2RlOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsaW5lcyIsIm1hcmtlcnMiXSxleHRyYXM6WyJub25lIl19LGxpbmU6e2NvbG9yOnUuY29sb3Isd2lkdGg6dS53aWR0aCxkYXNoOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6T2JqZWN0LmtleXMobyksZGZsdDoic29saWQifX0sbWFya2VyOmwoe30saSgibWFya2VyIikse3N5bWJvbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOk9iamVjdC5rZXlzKGEpLGRmbHQ6ImNpcmNsZSIsYXJyYXlPazohMH0sc2l6ZTpjLnNpemUsc2l6ZXJlZjpjLnNpemVyZWYsc2l6ZW1pbjpjLnNpemVtaW4sc2l6ZW1vZGU6Yy5zaXplbW9kZSxvcGFjaXR5OmMub3BhY2l0eSxzaG93c2NhbGU6Yy5zaG93c2NhbGUsbGluZTpsKHt9LGkoIm1hcmtlci5saW5lIikse3dpZHRoOmgud2lkdGh9KX0pLGNvbm5lY3RnYXBzOm4uY29ubmVjdGdhcHMsZmlsbDpzKHt9LG4uZmlsbCx7dmFsdWVzOlsibm9uZSIsInRvemVyb3kiLCJ0b3plcm94Il19KSxmaWxsY29sb3I6bi5maWxsY29sb3IsX25lc3RlZE1vZHVsZXM6e2Vycm9yX3g6IkVycm9yQmFycyIsZXJyb3JfeToiRXJyb3JCYXJzIiwibWFya2VyLmNvbG9yYmFyIjoiQ29sb3JiYXIifX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NvbG9yX2F0dHJpYnV0ZXMiOjUxNCwiLi4vLi4vY29uc3RhbnRzL2dsMmRfZGFzaGVzIjo1NzUsIi4uLy4uL2NvbnN0YW50cy9nbF9tYXJrZXJzIjo1NzcsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo3NzN9XSw4MDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1lLHRoaXMudHlwZT0ic2NhdHRlcmdsIix0aGlzLnBpY2tYRGF0YT1bXSx0aGlzLnBpY2tZRGF0YT1bXSx0aGlzLnhEYXRhPVtdLHRoaXMueURhdGE9W10sdGhpcy50ZXh0TGFiZWxzPVtdLHRoaXMuY29sb3I9InJnYigwLCAwLCAwKSIsdGhpcy5uYW1lPSIiLHRoaXMuaG92ZXJpbmZvPSJhbGwiLHRoaXMuY29ubmVjdGdhcHM9ITAsdGhpcy5pZFRvSW5kZXg9W10sdGhpcy5ib3VuZHM9WzAsMCwwLDBdLHRoaXMuaGFzTGluZXM9ITEsdGhpcy5saW5lT3B0aW9ucz17cG9zaXRpb25zOm5ldyBGbG9hdDMyQXJyYXkoMCksY29sb3I6WzAsMCwwLDFdLHdpZHRoOjEsZmlsbDpbITEsITEsITEsITFdLGZpbGxDb2xvcjpbWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSxkYXNoZXM6WzFdfSx0aGlzLmxpbmU9cCh0LmdscGxvdCx0aGlzLmxpbmVPcHRpb25zKSx0aGlzLmxpbmUuX3RyYWNlPXRoaXMsdGhpcy5oYXNFcnJvclg9ITEsdGhpcy5lcnJvclhPcHRpb25zPXtwb3NpdGlvbnM6bmV3IEZsb2F0MzJBcnJheSgwKSxlcnJvcnM6bmV3IEZsb2F0MzJBcnJheSgwKSxsaW5lV2lkdGg6MSxjYXBTaXplOjAsY29sb3I6WzAsMCwwLDFdfSx0aGlzLmVycm9yWD1kKHQuZ2xwbG90LHRoaXMuZXJyb3JYT3B0aW9ucyksdGhpcy5lcnJvclguX3RyYWNlPXRoaXMsdGhpcy5oYXNFcnJvclk9ITEsdGhpcy5lcnJvcllPcHRpb25zPXtwb3NpdGlvbnM6bmV3IEZsb2F0MzJBcnJheSgwKSxlcnJvcnM6bmV3IEZsb2F0MzJBcnJheSgwKSxsaW5lV2lkdGg6MSxjYXBTaXplOjAsY29sb3I6WzAsMCwwLDFdfSx0aGlzLmVycm9yWT1kKHQuZ2xwbG90LHRoaXMuZXJyb3JZT3B0aW9ucyksdGhpcy5lcnJvclkuX3RyYWNlPXRoaXMsdGhpcy5oYXNNYXJrZXJzPSExLHRoaXMuc2NhdHRlck9wdGlvbnM9e3Bvc2l0aW9uczpuZXcgRmxvYXQzMkFycmF5KDApLHNpemVzOltdLGNvbG9yczpbXSxnbHlwaHM6W10sYm9yZGVyV2lkdGhzOltdLGJvcmRlckNvbG9yczpbXSxzaXplOjEyLGNvbG9yOlswLDAsMCwxXSxib3JkZXJTaXplOjEsYm9yZGVyQ29sb3I6WzAsMCwwLDFdfSx0aGlzLnNjYXR0ZXI9aCh0LmdscGxvdCx0aGlzLnNjYXR0ZXJPcHRpb25zKSx0aGlzLnNjYXR0ZXIuX3RyYWNlPXRoaXMsdGhpcy5mYW5jeVNjYXR0ZXI9Zih0LmdscGxvdCx0aGlzLnNjYXR0ZXJPcHRpb25zKSx0aGlzLmZhbmN5U2NhdHRlci5fdHJhY2U9dGhpc31mdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKSxvKHQsZSxyKX1mdW5jdGlvbiBvKHQsZSxyKXtmb3IodmFyIG49bmV3IEFycmF5KHIpLGk9ZVswXSxvPTA7cj5vOysrbyluW29dPXQobz49ZS5sZW5ndGg/aTplW29dKTtyZXR1cm4gbn1mdW5jdGlvbiBhKHQsZSxyKXtyZXR1cm4gbChMKHQsciksUyhlLHIpLHIpfWZ1bmN0aW9uIHModCxlLHIsbil7dmFyIGk9eCh0LGUsbik7cmV0dXJuIGk9QXJyYXkuaXNBcnJheShpWzBdKT9pOm8oZy5pZGVudGl0eSxbaV0sbiksbChpLFMocixuKSxuKX1mdW5jdGlvbiBsKHQsZSxyKXtmb3IodmFyIG49bmV3IEFycmF5KDQqciksaT0wO3I+aTsrK2kpe2Zvcih2YXIgbz0wOzM+bzsrK28pbls0Kmkrb109dFtpXVtvXTtuWzQqaSszXT10W2ldWzNdKmVbaV19cmV0dXJuIG59ZnVuY3Rpb24gdSh0LGUpe2lmKHZvaWQgMD09PUZsb2F0MzJBcnJheS5zbGljZSl7Zm9yKHZhciByPW5ldyBGbG9hdDMyQXJyYXkoZSksbj0wO2U+bjtuKyspcltuXT10W25dO3JldHVybiByfXJldHVybiB0LnNsaWNlKDAsZSl9ZnVuY3Rpb24gYyh0LGUpe3ZhciByPW5ldyBuKHQsZS51aWQpO3JldHVybiByLnVwZGF0ZShlKSxyfXZhciBoPXQoImdsLXNjYXR0ZXIyZCIpLGY9dCgiZ2wtc2NhdHRlcjJkLWZhbmN5IikscD10KCJnbC1saW5lMmQiKSxkPXQoImdsLWVycm9yMmQiKSxtPXQoImZhc3QtaXNudW1lcmljIiksZz10KCIuLi8uLi9saWIiKSx2PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikseT10KCIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycyIpLGI9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLHg9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLF89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLHc9dCgiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiKSxNPXQoIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIiksaz10KCIuLi8uLi9jb25zdGFudHMvZ2xfbWFya2VycyIpLEE9dCgiLi4vLi4vY29uc3RhbnRzL2dsMmRfZGFzaGVzIiksVD1bInhheGlzIiwieWF4aXMiXSxFPW4ucHJvdG90eXBlO0UuaGFuZGxlUGljaz1mdW5jdGlvbih0KXt2YXIgZT10LnBvaW50SWQ7cmV0dXJuKHQub2JqZWN0IT09dGhpcy5saW5lfHx0aGlzLmNvbm5lY3RnYXBzKSYmKGU9dGhpcy5pZFRvSW5kZXhbdC5wb2ludElkXSkse3RyYWNlOnRoaXMsZGF0YUNvb3JkOnQuZGF0YUNvb3JkLHRyYWNlQ29vcmQ6W3RoaXMucGlja1hEYXRhW2VdLHRoaXMucGlja1lEYXRhW2VdXSx0ZXh0TGFiZWw6QXJyYXkuaXNBcnJheSh0aGlzLnRleHRMYWJlbHMpP3RoaXMudGV4dExhYmVsc1tlXTp0aGlzLnRleHRMYWJlbHMsY29sb3I6QXJyYXkuaXNBcnJheSh0aGlzLmNvbG9yKT90aGlzLmNvbG9yW2VdOnRoaXMuY29sb3IsbmFtZTp0aGlzLm5hbWUsaG92ZXJpbmZvOnRoaXMuaG92ZXJpbmZvfX0sRS5pc0ZhbmN5PWZ1bmN0aW9uKHQpe2lmKCJsaW5lYXIiIT09dGhpcy5zY2VuZS54YXhpcy50eXBlKXJldHVybiEwO2lmKCJsaW5lYXIiIT09dGhpcy5zY2VuZS55YXhpcy50eXBlKXJldHVybiEwO2lmKCF0Lnh8fCF0LnkpcmV0dXJuITA7aWYodGhpcy5oYXNNYXJrZXJzKXt2YXIgZT10Lm1hcmtlcnx8e307aWYoQXJyYXkuaXNBcnJheShlLnN5bWJvbCl8fCJjaXJjbGUiIT09ZS5zeW1ib2x8fEFycmF5LmlzQXJyYXkoZS5zaXplKXx8QXJyYXkuaXNBcnJheShlLmNvbG9yKXx8QXJyYXkuaXNBcnJheShlLmxpbmUud2lkdGgpfHxBcnJheS5pc0FycmF5KGUubGluZS5jb2xvcil8fEFycmF5LmlzQXJyYXkoZS5vcGFjaXR5KSlyZXR1cm4hMH1yZXR1cm4gdGhpcy5oYXNMaW5lcyYmIXRoaXMuY29ubmVjdGdhcHM/ITA6dGhpcy5oYXNFcnJvclg/ITA6ISF0aGlzLmhhc0Vycm9yWX07dmFyIFM9aS5iaW5kKG51bGwsZnVuY3Rpb24odCl7cmV0dXJuK3R9KSxMPWkuYmluZChudWxsLGIpLHo9aS5iaW5kKG51bGwsZnVuY3Rpb24odCl7cmV0dXJuIGtbdF18fCJcdTI1Y2YifSk7RS51cGRhdGU9ZnVuY3Rpb24odCl7dC52aXNpYmxlIT09ITA/KHRoaXMuaGFzTGluZXM9ITEsdGhpcy5oYXNFcnJvclg9ITEsdGhpcy5oYXNFcnJvclk9ITEsdGhpcy5oYXNNYXJrZXJzPSExKToodGhpcy5oYXNMaW5lcz1fLmhhc0xpbmVzKHQpLHRoaXMuaGFzRXJyb3JYPXQuZXJyb3JfeC52aXNpYmxlPT09ITAsdGhpcy5oYXNFcnJvclk9dC5lcnJvcl95LnZpc2libGU9PT0hMCx0aGlzLmhhc01hcmtlcnM9Xy5oYXNNYXJrZXJzKHQpKSx0aGlzLnRleHRMYWJlbHM9dC50ZXh0LHRoaXMubmFtZT10Lm5hbWUsdGhpcy5ob3ZlcmluZm89dC5ob3ZlcmluZm8sdGhpcy5ib3VuZHM9WzEvMCwxLzAsLSgxLzApLC0oMS8wKV0sdGhpcy5jb25uZWN0Z2Fwcz0hIXQuY29ubmVjdGdhcHMsdGhpcy5pc0ZhbmN5KHQpP3RoaXMudXBkYXRlRmFuY3kodCk6dGhpcy51cGRhdGVGYXN0KHQpLHRoaXMuY29sb3I9TSh0LHt9KX0sRS51cGRhdGVGYXN0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49dGhpcy54RGF0YT10aGlzLnBpY2tYRGF0YT10LngsaT10aGlzLnlEYXRhPXRoaXMucGlja1lEYXRhPXQueSxvPW4ubGVuZ3RoLGE9bmV3IEFycmF5KG8pLHM9bmV3IEZsb2F0MzJBcnJheSgyKm8pLGw9dGhpcy5ib3VuZHMsYz0wLGg9MCxmPTA7bz5mOysrZillPW5bZl0scj1pW2ZdLG0oZSkmJm0ocikmJihhW2MrK109ZixzW2grK109ZSxzW2grK109cixsWzBdPU1hdGgubWluKGxbMF0sZSksbFsxXT1NYXRoLm1pbihsWzFdLHIpLGxbMl09TWF0aC5tYXgobFsyXSxlKSxsWzNdPU1hdGgubWF4KGxbM10scikpO3M9dShzLGgpLHRoaXMuaWRUb0luZGV4PWEsdGhpcy51cGRhdGVMaW5lcyh0LHMpLHRoaXMudXBkYXRlRXJyb3IoIlgiLHQpLHRoaXMudXBkYXRlRXJyb3IoIlkiLHQpO3ZhciBwO2lmKHRoaXMuaGFzTWFya2Vycyl7dGhpcy5zY2F0dGVyT3B0aW9ucy5wb3NpdGlvbnM9czt2YXIgZD1iKHQubWFya2VyLmNvbG9yKSxnPWIodC5tYXJrZXIubGluZS5jb2xvciksdj10Lm9wYWNpdHkqdC5tYXJrZXIub3BhY2l0eTtkWzNdKj12LHRoaXMuc2NhdHRlck9wdGlvbnMuY29sb3I9ZCxnWzNdKj12LHRoaXMuc2NhdHRlck9wdGlvbnMuYm9yZGVyQ29sb3I9ZyxwPXQubWFya2VyLnNpemUsdGhpcy5zY2F0dGVyT3B0aW9ucy5zaXplPXAsdGhpcy5zY2F0dGVyT3B0aW9ucy5ib3JkZXJTaXplPXQubWFya2VyLmxpbmUud2lkdGgsdGhpcy5zY2F0dGVyLnVwZGF0ZSh0aGlzLnNjYXR0ZXJPcHRpb25zKX1lbHNlIHRoaXMuc2NhdHRlck9wdGlvbnMucG9zaXRpb25zPW5ldyBGbG9hdDMyQXJyYXkoMCksdGhpcy5zY2F0dGVyT3B0aW9ucy5nbHlwaHM9W10sdGhpcy5zY2F0dGVyLnVwZGF0ZSh0aGlzLnNjYXR0ZXJPcHRpb25zKTt0aGlzLnNjYXR0ZXJPcHRpb25zLnBvc2l0aW9ucz1uZXcgRmxvYXQzMkFycmF5KDApLHRoaXMuc2NhdHRlck9wdGlvbnMuZ2x5cGhzPVtdLHRoaXMuZmFuY3lTY2F0dGVyLnVwZGF0ZSh0aGlzLnNjYXR0ZXJPcHRpb25zKSx0aGlzLmV4cGFuZEF4ZXNGYXN0KGwscCl9LEUudXBkYXRlRmFuY3k9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY2VuZSxyPWUueGF4aXMsbj1lLnlheGlzLG89dGhpcy5ib3VuZHMsYT10aGlzLnBpY2tYRGF0YT1yLm1ha2VDYWxjZGF0YSh0LCJ4Iikuc2xpY2UoKSxsPXRoaXMucGlja1lEYXRhPW4ubWFrZUNhbGNkYXRhKHQsInkiKS5zbGljZSgpO3RoaXMueERhdGE9YS5zbGljZSgpLHRoaXMueURhdGE9bC5zbGljZSgpO3ZhciBjLGgsZixwLGQsbSxnLHYsYj15LmNhbGNGcm9tVHJhY2UodCxlLmZ1bGxMYXlvdXQpLHg9YS5sZW5ndGgsXz1uZXcgQXJyYXkoeCksTT1uZXcgRmxvYXQzMkFycmF5KDIqeCksaz1uZXcgRmxvYXQzMkFycmF5KDQqeCksQT1uZXcgRmxvYXQzMkFycmF5KDQqeCksVD0wLEU9MCxMPTAsST0wLFA9ImxvZyI9PT1yLnR5cGU/ZnVuY3Rpb24odCl7cmV0dXJuIHIuZDJsKHQpfTpmdW5jdGlvbih0KXtyZXR1cm4gdH0sQz0ibG9nIj09PW4udHlwZT9mdW5jdGlvbih0KXtyZXR1cm4gbi5kMmwodCl9OmZ1bmN0aW9uKHQpe3JldHVybiB0fTtmb3IoYz0wO3g+YzsrK2MpdGhpcy54RGF0YVtjXT1mPVAoYVtjXSksdGhpcy55RGF0YVtjXT1wPUMobFtjXSksaXNOYU4oZil8fGlzTmFOKHApfHwoX1tUKytdPWMsTVtFKytdPWYsTVtFKytdPXAsZD1rW0wrK109Zi1iW2NdLnhzfHwwLG09a1tMKytdPWJbY10ueGgtZnx8MCxrW0wrK109MCxrW0wrK109MCxBW0krK109MCxBW0krK109MCxnPUFbSSsrXT1wLWJbY10ueXN8fDAsdj1BW0krK109YltjXS55aC1wfHwwLG9bMF09TWF0aC5taW4ob1swXSxmLWQpLG9bMV09TWF0aC5taW4ob1sxXSxwLWcpLG9bMl09TWF0aC5tYXgob1syXSxmK20pLG9bM109TWF0aC5tYXgob1szXSxwK3YpKTtNPXUoTSxFKSx0aGlzLmlkVG9JbmRleD1fLHRoaXMudXBkYXRlTGluZXModCxNKSx0aGlzLnVwZGF0ZUVycm9yKCJYIix0LE0sayksdGhpcy51cGRhdGVFcnJvcigiWSIsdCxNLEEpO3ZhciBSO2lmKHRoaXMuaGFzTWFya2Vycyl7dGhpcy5zY2F0dGVyT3B0aW9ucy5wb3NpdGlvbnM9TSx0aGlzLnNjYXR0ZXJPcHRpb25zLnNpemVzPW5ldyBBcnJheShUKSx0aGlzLnNjYXR0ZXJPcHRpb25zLmdseXBocz1uZXcgQXJyYXkoVCksdGhpcy5zY2F0dGVyT3B0aW9ucy5ib3JkZXJXaWR0aHM9bmV3IEFycmF5KFQpLHRoaXMuc2NhdHRlck9wdGlvbnMuY29sb3JzPW5ldyBBcnJheSg0KlQpLHRoaXMuc2NhdHRlck9wdGlvbnMuYm9yZGVyQ29sb3JzPW5ldyBBcnJheSg0KlQpO3ZhciBqLEQ9dyh0KSxPPXQubWFya2VyLEY9Ty5vcGFjaXR5LE49dC5vcGFjaXR5LEI9cyhPLEYsTix4KSxVPXooTy5zeW1ib2wseCksVj1TKE8ubGluZS53aWR0aCx4KSxxPXMoTy5saW5lLEYsTix4KTtmb3IoUj1pKEQsTy5zaXplLHgpLGM9MDtUPmM7KytjKWZvcihqPV9bY10sdGhpcy5zY2F0dGVyT3B0aW9ucy5zaXplc1tjXT00KlJbal0sdGhpcy5zY2F0dGVyT3B0aW9ucy5nbHlwaHNbY109VVtqXSx0aGlzLnNjYXR0ZXJPcHRpb25zLmJvcmRlcldpZHRoc1tjXT0uNSpWW2pdLGg9MDs0Pmg7KytoKXRoaXMuc2NhdHRlck9wdGlvbnMuY29sb3JzWzQqYytoXT1CWzQqaitoXSx0aGlzLnNjYXR0ZXJPcHRpb25zLmJvcmRlckNvbG9yc1s0KmMraF09cVs0KmoraF07dGhpcy5mYW5jeVNjYXR0ZXIudXBkYXRlKHRoaXMuc2NhdHRlck9wdGlvbnMpfWVsc2UgdGhpcy5zY2F0dGVyT3B0aW9ucy5wb3NpdGlvbnM9bmV3IEZsb2F0MzJBcnJheSgwKSx0aGlzLnNjYXR0ZXJPcHRpb25zLmdseXBocz1bXSx0aGlzLmZhbmN5U2NhdHRlci51cGRhdGUodGhpcy5zY2F0dGVyT3B0aW9ucyk7dGhpcy5zY2F0dGVyT3B0aW9ucy5wb3NpdGlvbnM9bmV3IEZsb2F0MzJBcnJheSgwKSx0aGlzLnNjYXR0ZXJPcHRpb25zLmdseXBocz1bXSx0aGlzLnNjYXR0ZXIudXBkYXRlKHRoaXMuc2NhdHRlck9wdGlvbnMpLHRoaXMuZXhwYW5kQXhlc0ZhbmN5KGEsbCxSKX0sRS51cGRhdGVMaW5lcz1mdW5jdGlvbih0LGUpe3ZhciByO2lmKHRoaXMuaGFzTGluZXMpe3ZhciBuPWU7aWYoIXQuY29ubmVjdGdhcHMpe3ZhciBpPTAsbz10aGlzLnhEYXRhLHM9dGhpcy55RGF0YTtmb3Iobj1uZXcgRmxvYXQzMkFycmF5KDIqby5sZW5ndGgpLHI9MDtyPG8ubGVuZ3RoOysrciluW2krK109b1tyXSxuW2krK109c1tyXX10aGlzLmxpbmVPcHRpb25zLnBvc2l0aW9ucz1uO3ZhciBsPWEodC5saW5lLmNvbG9yLHQub3BhY2l0eSwxKSx1PU1hdGgucm91bmQoLjUqdGhpcy5saW5lT3B0aW9ucy53aWR0aCksYz0oQVt0LmxpbmUuZGFzaF18fFsxXSkuc2xpY2UoKTtmb3Iocj0wO3I8Yy5sZW5ndGg7KytyKWNbcl0qPXU7c3dpdGNoKHQuZmlsbCl7Y2FzZSJ0b3plcm95Ijp0aGlzLmxpbmVPcHRpb25zLmZpbGw9WyExLCEwLCExLCExXTticmVhaztjYXNlInRvemVyb3giOnRoaXMubGluZU9wdGlvbnMuZmlsbD1bITAsITEsITEsITFdO2JyZWFrO2RlZmF1bHQ6dGhpcy5saW5lT3B0aW9ucy5maWxsPVshMSwhMSwhMSwhMV19dmFyIGg9Yih0LmZpbGxjb2xvcik7dGhpcy5saW5lT3B0aW9ucy5jb2xvcj1sLHRoaXMubGluZU9wdGlvbnMud2lkdGg9Mip0LmxpbmUud2lkdGgsdGhpcy5saW5lT3B0aW9ucy5kYXNoZXM9Yyx0aGlzLmxpbmVPcHRpb25zLmZpbGxDb2xvcj1baCxoLGgsaF19ZWxzZSB0aGlzLmxpbmVPcHRpb25zLnBvc2l0aW9ucz1uZXcgRmxvYXQzMkFycmF5KDApO3RoaXMubGluZS51cGRhdGUodGhpcy5saW5lT3B0aW9ucyl9LEUudXBkYXRlRXJyb3I9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpc1siZXJyb3IiK3RdLG89ZVsiZXJyb3JfIit0LnRvTG93ZXJDYXNlKCldLHM9dGhpc1siZXJyb3IiK3QrIk9wdGlvbnMiXTsieCI9PT10LnRvTG93ZXJDYXNlKCkmJm8uY29weV95c3R5bGUmJihvPWUuZXJyb3JfeSksdGhpc1siaGFzRXJyb3IiK3RdPyhzLnBvc2l0aW9ucz1yLHMuZXJyb3JzPW4scy5jYXBTaXplPW8ud2lkdGgscy5saW5lV2lkdGg9by50aGlja25lc3MvMixzLmNvbG9yPWEoby5jb2xvciwxLDEpKTpzLnBvc2l0aW9ucz1uZXcgRmxvYXQzMkFycmF5KDApLGkudXBkYXRlKHMpfSxFLmV4cGFuZEF4ZXNGYXN0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG4saSxvPWV8fDEwLGE9MDsyPmE7YSsrKXI9dGhpcy5zY2VuZVtUW2FdXSxuPXIuX21pbixufHwobj1bXSksbi5wdXNoKHt2YWw6dFthXSxwYWQ6b30pLGk9ci5fbWF4LGl8fChpPVtdKSxpLnB1c2goe3ZhbDp0W2ErMl0scGFkOm99KX0sRS5leHBhbmRBeGVzRmFuY3k9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuc2NlbmUsaT17cGFkZGVkOiEwLHBwYWQ6cn07di5leHBhbmQobi54YXhpcyx0LGkpLHYuZXhwYW5kKG4ueWF4aXMsZSxpKX0sRS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5saW5lLmRpc3Bvc2UoKSx0aGlzLmVycm9yWC5kaXNwb3NlKCksdGhpcy5lcnJvclkuZGlzcG9zZSgpLHRoaXMuc2NhdHRlci5kaXNwb3NlKCksdGhpcy5mYW5jeVNjYXR0ZXIuZGlzcG9zZSgpfSxlLmV4cG9ydHM9Y30seyIuLi8uLi9jb21wb25lbnRzL2Vycm9yYmFycyI6NTM1LCIuLi8uLi9jb25zdGFudHMvZ2wyZF9kYXNoZXMiOjU3NSwiLi4vLi4vY29uc3RhbnRzL2dsX21hcmtlcnMiOjU3NywiLi4vLi4vbGliIjo1OTEsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjU4OSwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6NjAzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6NzgxLCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyI6Nzg3LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo3OTIsImZhc3QtaXNudW1lcmljIjoxMjgsImdsLWVycm9yMmQiOjEzMCwiZ2wtbGluZTJkIjoxMzYsImdsLXNjYXR0ZXIyZCI6MjAxLCJnbC1zY2F0dGVyMmQtZmFuY3kiOjE5Nn1dLDgwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIiksbz10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksYT10KCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9lcnJvcmJhcnMvZGVmYXVsdHMiKSxoPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXtmdW5jdGlvbiBwKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxoLHIsaSl9dmFyIGQ9YSh0LGUscCk7cmV0dXJuIGQ/KHAoInRleHQiKSxwKCJtb2RlIixkPGkuUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIiksby5oYXNMaW5lcyhlKSYmKHAoImNvbm5lY3RnYXBzIiksbCh0LGUscixmLHApKSxvLmhhc01hcmtlcnMoZSkmJnModCxlLHIsZixwKSxwKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiZ1KHQsZSxyLHApLGModCxlLHIse2F4aXM6InkifSksdm9pZCBjKHQsZSxyLHtheGlzOiJ4Iixpbmhlcml0OiJ5In0pKTp2b2lkKGUudmlzaWJsZT0hMSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZXJyb3JiYXJzL2RlZmF1bHRzIjo1MzQsIi4uLy4uL2xpYiI6NTkxLCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6Nzc4LCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6NzgwLCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjc4NCwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjc4OCwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6NzkyLCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIjo3OTQsIi4vYXR0cmlidXRlcyI6ODA2fV0sODA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O24uYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxuLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLmNvbG9yYmFyPXQoIi4uL3NjYXR0ZXIvY29sb3JiYXIiKSxuLmNhbGM9dCgiLi4vc2NhdHRlcjNkL2NhbGMiKSxuLnBsb3Q9dCgiLi9jb252ZXJ0Iiksbi5tb2R1bGVUeXBlPSJ0cmFjZSIsbi5uYW1lPSJzY2F0dGVyZ2wiLG4uYmFzZVBsb3RNb2R1bGU9dCgiLi4vLi4vcGxvdHMvZ2wyZCIpLG4uY2F0ZWdvcmllcz1bImdsMmQiLCJzeW1ib2xzIiwiZXJyb3JCYXJzT0siLCJtYXJrZXJDb2xvcnNjYWxlIiwic2hvd0xlZ2VuZCJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9nbDJkIjo2NDgsIi4uL3NjYXR0ZXIvY29sb3JiYXIiOjc3NiwiLi4vc2NhdHRlcjNkL2NhbGMiOjc5NiwiLi9hdHRyaWJ1dGVzIjo4MDYsIi4vY29udmVydCI6ODA3LCIuL2RlZmF1bHRzIjo4MDh9XSw4MTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIiksaT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9sYXlvdXRfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbD1uLmxpbmUsdT1uLm1hcmtlcjtlLmV4cG9ydHM9e2xvbjpuLmxvbixsYXQ6bi5sYXQsbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsibGluZXMiLCJtYXJrZXJzIiwidGV4dCJdLGRmbHQ6Im1hcmtlcnMiLGV4dHJhczpbIm5vbmUiXX0sdGV4dDpzKHt9LGkudGV4dCx7fSksbGluZTp7Y29sb3I6bC5jb2xvcix3aWR0aDpsLndpZHRoLGRhc2g6bC5kYXNofSxjb25uZWN0Z2FwczppLmNvbm5lY3RnYXBzLG1hcmtlcjp7c3ltYm9sOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6ImNpcmNsZSIsYXJyYXlPazohMH0sb3BhY2l0eTpzKHt9LHUub3BhY2l0eSx7YXJyYXlPazohMX0pLHNpemU6dS5zaXplLHNpemVyZWY6dS5zaXplcmVmLHNpemVtaW46dS5zaXplbWluLHNpemVtb2RlOnUuc2l6ZW1vZGUsY29sb3I6dS5jb2xvcixjb2xvcnNjYWxlOnUuY29sb3JzY2FsZSxjYXV0bzp1LmNhdXRvLGNtYXg6dS5jbWF4LGNtaW46dS5jbWluLGF1dG9jb2xvcnNjYWxlOnUuYXV0b2NvbG9yc2NhbGUscmV2ZXJzZXNjYWxlOnUucmV2ZXJzZXNjYWxlLHNob3dzY2FsZTp1LnNob3dzY2FsZX0sZmlsbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9uZSIsInRvc2VsZiJdLGRmbHQ6Im5vbmUifSxmaWxsY29sb3I6aS5maWxsY29sb3IsdGV4dGZvbnQ6by5sYXllcnMuc3ltYm9sLnRleHRmb250LHRleHRwb3NpdGlvbjpvLmxheWVycy5zeW1ib2wudGV4dHBvc2l0aW9uLGhvdmVyaW5mbzpzKHt9LGEuaG92ZXJpbmZvLHtmbGFnczpbImxvbiIsImxhdCIsInRleHQiLCJuYW1lIl19KSxfbmVzdGVkTW9kdWxlczp7Im1hcmtlci5jb2xvcmJhciI6IkNvbG9yYmFyIn19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NjEzLCIuLi8uLi9wbG90cy9tYXBib3gvbGF5b3V0X2F0dHJpYnV0ZXMiOjY2OCwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjo3NzMsIi4uL3NjYXR0ZXJnZW8vYXR0cmlidXRlcyI6ODAxfV0sODExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oYXNfY29sb3JzY2FsZSIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL21ha2Vfc2NhbGVfZnVuY3Rpb24iKSxzPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxsPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksdT10KCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUubG9uLmxlbmd0aCxjPWUubWFya2VyLGg9cy5oYXNNYXJrZXJzKGUpLGY9aCYmQXJyYXkuaXNBcnJheShjLmNvbG9yKSxwPWgmJkFycmF5LmlzQXJyYXkoYy5zaXplKSxkPWgmJkFycmF5LmlzQXJyYXkoYy5zeW1ib2wpLG09QXJyYXkuaXNBcnJheShlLnRleHQpO2woZSk7Zm9yKHZhciBnPW8oZSwibWFya2VyIik/YShjLmNvbG9yc2NhbGUsYy5jbWluLGMuY21heCk6aS5pZGVudGl0eSx2PXMuaXNCdWJibGUoZSk/dShlKTppLmlkZW50aXR5LHk9W10sYj0wLHg9MDtyPng7eCsrKXt2YXIgXz1lLmxvblt4XSx3PWUubGF0W3hdO2lmKG4oXykmJm4odykpe3ZhciBNPXt9O2lmKGIrKyxNLmxvbmxhdD1bK18sK3ddLGgpe2lmKGYpe3ZhciBrPWMuY29sb3JbeF07TS5tYz1rLE0ubWNjPWcoayl9aWYocCl7dmFyIEE9Yy5zaXplW3hdO00ubXM9QSxNLm1yYz12KEEpfWlmKGQpe3ZhciBUPWMuc3ltYm9sW3hdO00ubXg9InN0cmluZyI9PXR5cGVvZiBUP1Q6ImNpcmNsZSJ9fWlmKG0pe3ZhciBFPWUudGV4dFt4XTtNLnR4PSJzdHJpbmciPT10eXBlb2YgRT9FOiIifXkucHVzaChNKX1lbHNlIGI+MCYmKHlbYi0xXS5nYXBBZnRlcj0hMCl9cmV0dXJuIHl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oYXNfY29sb3JzY2FsZSI6NTE5LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvbWFrZV9zY2FsZV9mdW5jdGlvbiI6NTIzLCIuLi8uLi9saWIiOjU5MSwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjc3NywiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjc4NywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6NzkyLCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sODEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXtyZXR1cm57Z2VvanNvbjppKCksbGF5b3V0Ont2aXNpYmlsaXR5OiJub25lIn0scGFpbnQ6e319fWZ1bmN0aW9uIGkoKXtyZXR1cm57dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOltdfX1mdW5jdGlvbiBvKHQsZSl7aWYoMT09PWUubGVuZ3RoKXJldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczplfTtmb3IodmFyIHI9bmV3IEFycmF5KGUubGVuZ3RoKSxuPTA7bjxlLmxlbmd0aDtuKyspcltuXT1bZVtuXV07cmV0dXJue3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6cn19ZnVuY3Rpb24gYSh0LGUpe3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOmV9fWZ1bmN0aW9uIHModCxlKXtmdW5jdGlvbiByKHQscixuLGkpe3ZvaWQgMD09PWVbcl1bbl0mJihlW3JdW25dPWkpLHRbcl09ZVtyXVtuXX1mb3IodmFyIG49dFswXS50cmFjZSxpPW4ubWFya2VyLG89QXJyYXkuaXNBcnJheShpLmNvbG9yKSxhPUFycmF5LmlzQXJyYXkoaS5zaXplKSxzPVtdLGw9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIHU9dFtsXSxjPXt9O28mJnIoYyx2LHUubWNjLGwpLGEmJnIoYyx5LHUubXJjLGwpLHMucHVzaCh7dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczp1LmxvbmxhdH0scHJvcGVydGllczpjfSl9cmV0dXJue3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczpzfX1mdW5jdGlvbiBsKHQpe2Zvcih2YXIgZT10WzBdLnRyYWNlLHI9ZS5tYXJrZXJ8fHt9LG49ci5zeW1ib2wsaT1lLnRleHQsbz0iY2lyY2xlIiE9PW4/ZihuKTpwLGE9bS5oYXNUZXh0KGUpP2YoaSk6cCxzPVtdLGw9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIHU9dFtsXTtzLnB1c2goe3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6dS5sb25sYXR9LHByb3BlcnRpZXM6e3N5bWJvbDpvKHUubXgpLHRleHQ6YSh1LnR4KX19KX1yZXR1cm57dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOnN9fWZ1bmN0aW9uIHUodCxlKXt2YXIgcixuPXQubWFya2VyO2lmKEFycmF5LmlzQXJyYXkobi5jb2xvcikpe2Zvcih2YXIgaT1PYmplY3Qua2V5cyhlW3ZdKSxvPVtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIHM9aVthXTtvLnB1c2goW2Vbdl1bc10sc10pfXI9e3Byb3BlcnR5OnYsc3RvcHM6b319ZWxzZSByPW4uY29sb3I7cmV0dXJuIHJ9ZnVuY3Rpb24gYyh0LGUpe3ZhciByLG49dC5tYXJrZXI7aWYoQXJyYXkuaXNBcnJheShuLnNpemUpKXtmb3IodmFyIGk9T2JqZWN0LmtleXMoZVt5XSksbz1bXSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBzPWlbYV07by5wdXNoKFtlW3ldW3NdLCtzXSl9by5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0tZVswXX0pLHI9e3Byb3BlcnR5Onksc3RvcHM6b319ZWxzZSByPW4uc2l6ZS8yO3JldHVybiByfWZ1bmN0aW9uIGgodCl7Zm9yKHZhciBlPXRbMF0udHJhY2Uscj1lLmNvbm5lY3RnYXBzLG49W10saT1bXSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBhPXRbb107aS5wdXNoKGEubG9ubGF0KSwhciYmYS5nYXBBZnRlciYmaS5sZW5ndGg+MCYmKG4ucHVzaChpKSxpPVtdKX1yZXR1cm4gbi5wdXNoKGkpLG59ZnVuY3Rpb24gZih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9mdW5jdGlvbih0KXtyZXR1cm4gdH06dD9mdW5jdGlvbigpe3JldHVybiB0fTpwfWZ1bmN0aW9uIHAoKXtyZXR1cm4iIn12YXIgZD10KCIuLi8uLi9saWIiKSxtPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxnPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9jb252ZXJ0X3RleHRfb3B0cyIpLHY9ImNpcmNsZS1jb2xvciIseT0iY2lyY2xlLXJhZGl1cyI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1lLnZpc2libGU9PT0hMCxpPSJub25lIiE9PWUuZmlsbCxmPW0uaGFzTGluZXMoZSkscD1tLmhhc01hcmtlcnMoZSksYj1tLmhhc1RleHQoZSkseD1wJiYiY2lyY2xlIj09PWUubWFya2VyLnN5bWJvbCxfPXAmJiJjaXJjbGUiIT09ZS5tYXJrZXIuc3ltYm9sLHc9bigpLE09bigpLGs9bigpLEE9bigpLFQ9e2ZpbGw6dyxsaW5lOk0sY2lyY2xlOmssc3ltYm9sOkF9O2lmKCFyKXJldHVybiBUO3ZhciBFO2lmKChpfHxmKSYmKEU9aCh0KSksaSYmKHcuZ2VvanNvbj1vKHQsRSksdy5sYXlvdXQudmlzaWJpbGl0eT0idmlzaWJsZSIsZC5leHRlbmRGbGF0KHcucGFpbnQseyJmaWxsLWNvbG9yIjplLmZpbGxjb2xvcn0pKSxmJiYoTS5nZW9qc29uPWEodCxFKSxNLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixkLmV4dGVuZEZsYXQoTS5wYWludCx7ImxpbmUtd2lkdGgiOmUubGluZS53aWR0aCwibGluZS1jb2xvciI6ZS5saW5lLmNvbG9yLCJsaW5lLW9wYWNpdHkiOmUub3BhY2l0eX0pKSx4KXt2YXIgUz17fTtTW3ZdPXt9LFNbeV09e30say5nZW9qc29uPXModCxTKSxrLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixkLmV4dGVuZEZsYXQoay5wYWludCx7ImNpcmNsZS1vcGFjaXR5IjplLm9wYWNpdHkqZS5tYXJrZXIub3BhY2l0eSwiY2lyY2xlLWNvbG9yIjp1KGUsUyksImNpcmNsZS1yYWRpdXMiOmMoZSxTKX0pfWlmKChffHxiKSYmKEEuZ2VvanNvbj1sKHQpLGQuZXh0ZW5kRmxhdChBLmxheW91dCx7dmlzaWJpbGl0eToidmlzaWJsZSIsImljb24taW1hZ2UiOiJ7c3ltYm9sfS0xNSIsInRleHQtZmllbGQiOiJ7dGV4dH0ifSksXyYmKGQuZXh0ZW5kRmxhdChBLmxheW91dCx7Imljb24tc2l6ZSI6ZS5tYXJrZXIuc2l6ZS8xMH0pLGQuZXh0ZW5kRmxhdChBLnBhaW50LHsiaWNvbi1vcGFjaXR5IjplLm9wYWNpdHkqZS5tYXJrZXIub3BhY2l0eSwiaWNvbi1jb2xvciI6ZS5tYXJrZXIuY29sb3J9KSksYikpe3ZhciBMPShlLm1hcmtlcnx8e30pLnNpemUsej1nKGUudGV4dHBvc2l0aW9uLEwpO2QuZXh0ZW5kRmxhdChBLmxheW91dCx7InRleHQtc2l6ZSI6ZS50ZXh0Zm9udC5zaXplLCJ0ZXh0LWFuY2hvciI6ei5hbmNob3IsInRleHQtb2Zmc2V0Ijp6Lm9mZnNldH0pLGQuZXh0ZW5kRmxhdChBLnBhaW50LHsidGV4dC1jb2xvciI6ZS50ZXh0Zm9udC5jb2xvciwidGV4dC1vcGFjaXR5IjplLm9wYWNpdHl9KX1yZXR1cm4gVH19LHsiLi4vLi4vbGliIjo1OTEsIi4uLy4uL3Bsb3RzL21hcGJveC9jb252ZXJ0X3RleHRfb3B0cyI6NjY1LCIuLi9zY2F0dGVyL3N1YnR5cGVzIjo3OTJ9XSw4MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dmFyIG49cigibG9uIil8fFtdLGk9cigibGF0Iil8fFtdLG89TWF0aC5taW4obi5sZW5ndGgsaS5sZW5ndGgpO3JldHVybiBvPG4ubGVuZ3RoJiYoZS5sb249bi5zbGljZSgwLG8pKSxvPGkubGVuZ3RoJiYoZS5sYXQ9aS5zbGljZSgwLG8pKSxvfXZhciBpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGM9dCgiLi9hdHRyaWJ1dGVzIiksaD10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsZil7ZnVuY3Rpb24gcChyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYyxyLG4pfWZ1bmN0aW9uIGQocixuKXt2YXIgbz0tMT09PXIuaW5kZXhPZigiLmxpbmUiKT9jOmg7cmV0dXJuIGkuY29lcmNlKHQsZSxvLHIsbil9dmFyIG09bih0LGUscCk7aWYoIW0pcmV0dXJuIHZvaWQoZS52aXNpYmxlPSExKTtpZihwKCJ0ZXh0IikscCgibW9kZSIpLG8uaGFzTGluZXMoZSkmJihzKHQsZSxyLGYscCkscCgiY29ubmVjdGdhcHMiKSksby5oYXNNYXJrZXJzKGUpKXthKHQsZSxyLGYsZCk7dmFyIGc9ZS5tYXJrZXI7ImNpcmNsZSIhPT1nLnN5bWJvbCYmKEFycmF5LmlzQXJyYXkoZy5zaXplKSYmKGcuc2l6ZT1nLnNpemVbMF0pLEFycmF5LmlzQXJyYXkoZy5jb2xvcikmJihnLmNvbG9yPWcuY29sb3JbMF0pKX1vLmhhc1RleHQoZSkmJmwodCxlLGYscCkscCgiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmdSh0LGUscixwKSxwKCJob3ZlcmluZm8iLDE9PT1mLl9kYXRhTGVuZ3RoPyJsb24rbGF0K3RleHQiOnZvaWQgMCl9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjc3MywiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjc4MCwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjo3ODQsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjo3ODgsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjc5MiwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjo3OTMsIi4vYXR0cmlidXRlcyI6ODEwfV0sODE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXtmdW5jdGlvbiByKHQpe3JldHVybiB0KyJceGIwIn12YXIgbj10LmhvdmVyaW5mby5zcGxpdCgiKyIpLGk9LTEhPT1uLmluZGV4T2YoImFsbCIpLG89LTEhPT1uLmluZGV4T2YoImxvbiIpLGE9LTEhPT1uLmluZGV4T2YoImxhdCIpLHM9ZS5sb25sYXQsbD1bXTtyZXR1cm4gaXx8byYmYT9sLnB1c2goIigiK3Ioc1swXSkrIiwgIityKHNbMV0pKyIpIik6bz9sLnB1c2goImxvbjogIityKHNbMF0pKTphJiZsLnB1c2goImxhdDogIityKHNbMV0pKSwoaXx8LTEhPT1uLmluZGV4T2YoInRleHQiKSkmJmwucHVzaChlLnR4fHx0LnRleHQpLGwuam9pbigiPGJyPiIpfXZhciBpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9ncmFwaF9pbnRlcmFjdCIpLG89dCgiLi4vc2NhdHRlci9nZXRfdHJhY2VfY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIGEodCl7dmFyIGU9dC5sb25sYXQsbj1NYXRoLmFicyh1LmMycChlKS11LmMycChbcCxlWzFdXSkpLGk9TWF0aC5hYnMoYy5jMnAoZSktYy5jMnAoW2VbMF0scl0pKSxvPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLnNxcnQobipuK2kqaSktbywxLTMvbyl9dmFyIHM9dC5jZCxsPXNbMF0udHJhY2UsdT10LnhhLGM9dC55YSxoPWU+PTA/TWF0aC5mbG9vcigoZSsxODApLzM2MCk6TWF0aC5jZWlsKChlLTE4MCkvMzYwKSxmPTM2MCpoLHA9ZS1mO2lmKGkuZ2V0Q2xvc2VzdChzLGEsdCksdC5pbmRleCE9PSExKXt2YXIgZD1zW3QuaW5kZXhdLG09ZC5sb25sYXQsZz1bbVswXStmLG1bMV1dLHY9dS5jMnAoZykseT1jLmMycChnKSxiPWQubXJjfHwxO3JldHVybiB0LngwPXYtYix0LngxPXYrYix0LnkwPXktYix0LnkxPXkrYix0LmNvbG9yPW8obCxkKSx0LmV4dHJhVGV4dD1uKGwsZCksW3RdfX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Ijo2MjIsIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIjo3ODF9XSw4MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307bi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uY29sb3JiYXI9dCgiLi4vc2NhdHRlci9jb2xvcmJhciIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLmhvdmVyUG9pbnRzPXQoIi4vaG92ZXIiKSxuLnBsb3Q9dCgiLi9wbG90Iiksbi5tb2R1bGVUeXBlPSJ0cmFjZSIsbi5uYW1lPSJzY2F0dGVybWFwYm94IixuLmJhc2VQbG90TW9kdWxlPXQoIi4uLy4uL3Bsb3RzL21hcGJveCIpLG4uY2F0ZWdvcmllcz1bIm1hcGJveCIsImdsIiwic3ltYm9scyIsIm1hcmtlckNvbG9yc2NhbGUiLCJzaG93TGVnZW5kIl0sbi5tZXRhPXt9LGUuZXhwb3J0cz1ufSx7Ii4uLy4uL3Bsb3RzL21hcGJveCI6NjY2LCIuLi9zY2F0dGVyL2NvbG9yYmFyIjo3NzYsIi4vYXR0cmlidXRlcyI6ODEwLCIuL2NhbGMiOjgxMSwiLi9kZWZhdWx0cyI6ODEzLCIuL2hvdmVyIjo4MTQsIi4vcGxvdCI6ODE2fV0sODE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt0aGlzLm1hcGJveD10LHRoaXMubWFwPXQubWFwLHRoaXMudWlkPWUsdGhpcy5pZFNvdXJjZUZpbGw9ZSsiLXNvdXJjZS1maWxsIix0aGlzLmlkU291cmNlTGluZT1lKyItc291cmNlLWxpbmUiLHRoaXMuaWRTb3VyY2VDaXJjbGU9ZSsiLXNvdXJjZS1jaXJjbGUiLHRoaXMuaWRTb3VyY2VTeW1ib2w9ZSsiLXNvdXJjZS1zeW1ib2wiLHRoaXMuaWRMYXllckZpbGw9ZSsiLWxheWVyLWZpbGwiLHRoaXMuaWRMYXllckxpbmU9ZSsiLWxheWVyLWxpbmUiLHRoaXMuaWRMYXllckNpcmNsZT1lKyItbGF5ZXItY2lyY2xlIix0aGlzLmlkTGF5ZXJTeW1ib2w9ZSsiLWxheWVyLXN5bWJvbCIsdGhpcy5tYXBib3guaW5pdFNvdXJjZSh0aGlzLmlkU291cmNlRmlsbCksdGhpcy5tYXBib3guaW5pdFNvdXJjZSh0aGlzLmlkU291cmNlTGluZSksdGhpcy5tYXBib3guaW5pdFNvdXJjZSh0aGlzLmlkU291cmNlQ2lyY2xlKSx0aGlzLm1hcGJveC5pbml0U291cmNlKHRoaXMuaWRTb3VyY2VTeW1ib2wpLHRoaXMubWFwLmFkZExheWVyKHtpZDp0aGlzLmlkTGF5ZXJGaWxsLHNvdXJjZTp0aGlzLmlkU291cmNlRmlsbCx0eXBlOiJmaWxsIn0pLHRoaXMubWFwLmFkZExheWVyKHtpZDp0aGlzLmlkTGF5ZXJMaW5lLHNvdXJjZTp0aGlzLmlkU291cmNlTGluZSx0eXBlOiJsaW5lIn0pLHRoaXMubWFwLmFkZExheWVyKHtpZDp0aGlzLmlkTGF5ZXJDaXJjbGUsc291cmNlOnRoaXMuaWRTb3VyY2VDaXJjbGUsdHlwZToiY2lyY2xlIn0pLHRoaXMubWFwLmFkZExheWVyKHtpZDp0aGlzLmlkTGF5ZXJTeW1ib2wsc291cmNlOnRoaXMuaWRTb3VyY2VTeW1ib2wsdHlwZToic3ltYm9sIn0pfWZ1bmN0aW9uIGkodCl7cmV0dXJuInZpc2libGUiPT09dC5sYXlvdXQudmlzaWJpbGl0eX12YXIgbz10KCIuL2NvbnZlcnQiKSxhPW4ucHJvdG90eXBlO2EudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwYm94LHI9byh0KTtlLnNldE9wdGlvbnModGhpcy5pZExheWVyRmlsbCwic2V0TGF5b3V0UHJvcGVydHkiLHIuZmlsbC5sYXlvdXQpLGUuc2V0T3B0aW9ucyh0aGlzLmlkTGF5ZXJMaW5lLCJzZXRMYXlvdXRQcm9wZXJ0eSIsci5saW5lLmxheW91dCksZS5zZXRPcHRpb25zKHRoaXMuaWRMYXllckNpcmNsZSwic2V0TGF5b3V0UHJvcGVydHkiLHIuY2lyY2xlLmxheW91dCksZS5zZXRPcHRpb25zKHRoaXMuaWRMYXllclN5bWJvbCwic2V0TGF5b3V0UHJvcGVydHkiLHIuc3ltYm9sLmxheW91dCksaShyLmZpbGwpJiYoZS5zZXRTb3VyY2VEYXRhKHRoaXMuaWRTb3VyY2VGaWxsLHIuZmlsbC5nZW9qc29uKSxlLnNldE9wdGlvbnModGhpcy5pZExheWVyRmlsbCwic2V0UGFpbnRQcm9wZXJ0eSIsci5maWxsLnBhaW50KSksaShyLmxpbmUpJiYoZS5zZXRTb3VyY2VEYXRhKHRoaXMuaWRTb3VyY2VMaW5lLHIubGluZS5nZW9qc29uKSxlLnNldE9wdGlvbnModGhpcy5pZExheWVyTGluZSwic2V0UGFpbnRQcm9wZXJ0eSIsci5saW5lLnBhaW50KSksaShyLmNpcmNsZSkmJihlLnNldFNvdXJjZURhdGEodGhpcy5pZFNvdXJjZUNpcmNsZSxyLmNpcmNsZS5nZW9qc29uKSxlLnNldE9wdGlvbnModGhpcy5pZExheWVyQ2lyY2xlLCJzZXRQYWludFByb3BlcnR5IixyLmNpcmNsZS5wYWludCkpLGkoci5zeW1ib2wpJiYoZS5zZXRTb3VyY2VEYXRhKHRoaXMuaWRTb3VyY2VTeW1ib2wsci5zeW1ib2wuZ2VvanNvbiksZS5zZXRPcHRpb25zKHRoaXMuaWRMYXllclN5bWJvbCwic2V0UGFpbnRQcm9wZXJ0eSIsci5zeW1ib2wucGFpbnQpKX0sYS5kaXNwb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXA7dC5yZW1vdmVMYXllcih0aGlzLmlkTGF5ZXJGaWxsKSx0LnJlbW92ZUxheWVyKHRoaXMuaWRMYXllckxpbmUpLHQucmVtb3ZlTGF5ZXIodGhpcy5pZExheWVyQ2lyY2xlKSx0LnJlbW92ZUxheWVyKHRoaXMuaWRMYXllclN5bWJvbCksdC5yZW1vdmVTb3VyY2UodGhpcy5pZFNvdXJjZUZpbGwpLHQucmVtb3ZlU291cmNlKHRoaXMuaWRTb3VyY2VMaW5lKSx0LnJlbW92ZVNvdXJjZSh0aGlzLmlkU291cmNlQ2lyY2xlKSx0LnJlbW92ZVNvdXJjZSh0aGlzLmlkU291cmNlU3ltYm9sKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS50cmFjZSxpPW5ldyBuKHQsci51aWQpO3JldHVybiBpLnVwZGF0ZShlKSxpfX0seyIuL2NvbnZlcnQiOjgxMn1dLDgxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jb2xvcl9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxzPW4ubWFya2VyLGw9bi5saW5lLHU9cy5saW5lO2UuZXhwb3J0cz17YTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGI6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSxjOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sc3VtOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MH0sbW9kZTphKHt9LG4ubW9kZSx7ZGZsdDoibWFya2VycyJ9KSx0ZXh0OmEoe30sbi50ZXh0LHt9KSxsaW5lOntjb2xvcjpsLmNvbG9yLHdpZHRoOmwud2lkdGgsZGFzaDpsLmRhc2gsc2hhcGU6YSh7fSxsLnNoYXBlLHt2YWx1ZXM6WyJsaW5lYXIiLCJzcGxpbmUiXX0pLHNtb290aGluZzpsLnNtb290aGluZ30sY29ubmVjdGdhcHM6bi5jb25uZWN0Z2FwcyxmaWxsOmEoe30sbi5maWxsLHt2YWx1ZXM6WyJub25lIiwidG9zZWxmIiwidG9uZXh0Il19KSxmaWxsY29sb3I6bi5maWxsY29sb3IsbWFya2VyOmEoe30se3N5bWJvbDpzLnN5bWJvbCxvcGFjaXR5OnMub3BhY2l0eSxtYXhkaXNwbGF5ZWQ6cy5tYXhkaXNwbGF5ZWQsc2l6ZTpzLnNpemUsc2l6ZXJlZjpzLnNpemVyZWYsc2l6ZW1pbjpzLnNpemVtaW4sc2l6ZW1vZGU6cy5zaXplbW9kZSxzaG93c2NhbGU6cy5zaG93c2NhbGUsbGluZTphKHt9LHt3aWR0aDp1LndpZHRofSxvKCJtYXJrZXIiLmxpbmUpKX0sbygibWFya2VyIikpLHRleHRmb250Om4udGV4dGZvbnQsdGV4dHBvc2l0aW9uOm4udGV4dHBvc2l0aW9uLGhvdmVyaW5mbzphKHt9LGkuaG92ZXJpbmZvLHtmbGFnczpbImEiLCJiIiwiYyIsInRleHQiLCJuYW1lIl19KSxob3Zlcm9uOm4uaG92ZXJvbixfbmVzdGVkTW9kdWxlczp7Im1hcmtlci5jb2xvcmJhciI6IkNvbG9yYmFyIn19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jb2xvcl9hdHRyaWJ1dGVzIjo1MTQsIi4uLy4uL2xpYi9leHRlbmQiOjU4NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6NjEzLCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjc3M31dLDgxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLHM9dCgiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiKSxsPVsiYSIsImIiLCJjIl0sdT17YTpbImIiLCJjIl0sYjpbImEiLCJjIl0sYzpbImEiLCJiIl19O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGMsaCxmLHAsZCxtPXQuX2Z1bGxMYXlvdXRbZS5zdWJwbG90XSxnPW0uc3VtLHY9ZS5zdW18fGc7Zm9yKHI9MDtyPGwubGVuZ3RoO3IrKylpZihoPWxbcl0sIWVbaF0pe2ZvcihwPWVbdVtoXVswXV0sZD1lW3VbaF1bMV1dLGY9bmV3IEFycmF5KHAubGVuZ3RoKSxjPTA7YzxwLmxlbmd0aDtjKyspZltjXT12LXBbY10tZFtjXTtlW2hdPWZ9dmFyIHksYix4LF8sdyxNLGs9ZS5hLmxlbmd0aCxBPW5ldyBBcnJheShrKTtmb3Iocj0wO2s+cjtyKyspeT1lLmFbcl0sYj1lLmJbcl0seD1lLmNbcl0sbih5KSYmbihiKSYmbih4KT8oeT0reSxiPStiLHg9K3gsXz1nLyh5K2IreCksMSE9PV8mJih5Kj1fLGIqPV8seCo9XyksTT15LHc9eC1iLEFbcl09e3g6dyx5Ok0sYTp5LGI6YixjOnh9KTpBW3JdPXt4OiExLHk6ITF9O3ZhciBULEU7aWYoYS5oYXNNYXJrZXJzKGUpJiYoVD1lLm1hcmtlcixFPVQuc2l6ZSxBcnJheS5pc0FycmF5KEUpKSl7dmFyIFM9e3R5cGU6ImxpbmVhciJ9O2kuc2V0Q29udmVydChTKSxFPVMubWFrZUNhbGNkYXRhKGUubWFya2VyLCJzaXplIiksRS5sZW5ndGg+ayYmRS5zcGxpY2UoayxFLmxlbmd0aC1rKX1yZXR1cm4gcyhlKSx2b2lkIDAhPT10eXBlb2YgRSYmby5tZXJnZUFycmF5KEUsQSwibXMiKSxBfX0seyIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjYxNSwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjc3NywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6NzkyLCJmYXN0LWlzbnVtZXJpYyI6MTI4fV0sODE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9jb25zdGFudHMiKSxvPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyIpLHU9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksYz10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGg9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGYpe2Z1bmN0aW9uIHAocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGgscixpKX12YXIgZCxtPXAoImEiKSxnPXAoImIiKSx2PXAoImMiKTtpZihtPyhkPW0ubGVuZ3RoLGc/KGQ9TWF0aC5taW4oZCxnLmxlbmd0aCksdiYmKGQ9TWF0aC5taW4oZCx2Lmxlbmd0aCkpKTpkPXY/TWF0aC5taW4oZCx2Lmxlbmd0aCk6MCk6ZyYmdiYmKGQ9TWF0aC5taW4oZy5sZW5ndGgsdi5sZW5ndGgpKSwhZClyZXR1cm4gdm9pZChlLnZpc2libGU9ITEpO20mJmQ8bS5sZW5ndGgmJihlLmE9bS5zbGljZSgwLGQpKSxnJiZkPGcubGVuZ3RoJiYoZS5iPWcuc2xpY2UoMCxkKSksdiYmZDx2Lmxlbmd0aCYmKGUuYz12LnNsaWNlKDAsZCkpLHAoInN1bSIpLHAoInRleHQiKTt2YXIgeT1kPGkuUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIjtwKCJtb2RlIix5KSxvLmhhc0xpbmVzKGUpJiYocyh0LGUscixmLHApLGwodCxlLHApLHAoImNvbm5lY3RnYXBzIikpLG8uaGFzTWFya2VycyhlKSYmYSh0LGUscixmLHApLG8uaGFzVGV4dChlKSYmdSh0LGUsZixwKTt2YXIgYj1bXTsoby5oYXNNYXJrZXJzKGUpfHxvLmhhc1RleHQoZSkpJiYocCgibWFya2VyLm1heGRpc3BsYXllZCIpLGIucHVzaCgicG9pbnRzIikpLHAoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJihjKHQsZSxyLHApLG8uaGFzTGluZXMoZSl8fGwodCxlLHApKSxwKCJob3ZlcmluZm8iLDE9PT1mLl9kYXRhTGVuZ3RoPyJhK2IrYyt0ZXh0Ijp2b2lkIDApLCJ0b25leHQiIT09ZS5maWxsJiYidG9zZWxmIiE9PWUuZmlsbHx8Yi5wdXNoKCJmaWxscyIpLHAoImhvdmVyb24iLGIuam9pbigiKyIpfHwicG9pbnRzIil9fSx7Ii4uLy4uL2xpYiI6NTkxLCIuLi9zY2F0dGVyL2NvbnN0YW50cyI6Nzc4LCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6NzgwLCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjc4NCwiLi4vc2NhdHRlci9saW5lX3NoYXBlX2RlZmF1bHRzIjo3ODYsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjo3ODgsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjc5MiwiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIjo3OTMsIi4vYXR0cmlidXRlcyI6ODE3fV0sODIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvaG92ZXIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIGEodCxlKXt2LnB1c2godC5faG92ZXJ0aXRsZSsiOiAiK2kudGlja1RleHQodCxlLCJob3ZlciIpLnRleHQpfXZhciBzPW4odCxlLHIsbyk7aWYocyYmc1swXS5pbmRleCE9PSExKXt2YXIgbD1zWzBdO2lmKHZvaWQgMD09PWwuaW5kZXgpe3ZhciB1PTEtbC55MC90LnlhLl9sZW5ndGgsYz10LnhhLl9sZW5ndGgsaD1jKnUvMixmPWMtaDtyZXR1cm4gbC54MD1NYXRoLm1heChNYXRoLm1pbihsLngwLGYpLGgpLGwueDE9TWF0aC5tYXgoTWF0aC5taW4obC54MSxmKSxoKSxzfXZhciBwPWwuY2RbbC5pbmRleF07bC5hPXAuYSxsLmI9cC5iLGwuYz1wLmMsbC54TGFiZWxWYWw9dm9pZCAwLGwueUxhYmVsVmFsPXZvaWQgMDt2YXIgZD1sLnRyYWNlLG09ZC5fdGVybmFyeSxnPWQuaG92ZXJpbmZvLnNwbGl0KCIrIiksdj1bXTtyZXR1cm4tMSE9PWcuaW5kZXhPZigiYWxsIikmJihnPVsiYSIsImIiLCJjIl0pLC0xIT09Zy5pbmRleE9mKCJhIikmJmEobS5hYXhpcyxwLmEpLC0xIT09Zy5pbmRleE9mKCJiIikmJmEobS5iYXhpcyxwLmIpLC0xIT09Zy5pbmRleE9mKCJjIikmJmEobS5jYXhpcyxwLmMpLGwuZXh0cmFUZXh0PXYuam9pbigiPGJyPiIpLHN9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6NjE1LCIuLi9zY2F0dGVyL2hvdmVyIjo3ODJ9XSw4MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307bi5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLG4uc3VwcGx5RGVmYXVsdHM9dCgiLi9kZWZhdWx0cyIpLG4uY29sb3JiYXI9dCgiLi4vc2NhdHRlci9jb2xvcmJhciIpLG4uY2FsYz10KCIuL2NhbGMiKSxuLnBsb3Q9dCgiLi9wbG90Iiksbi5zdHlsZT10KCIuL3N0eWxlIiksbi5ob3ZlclBvaW50cz10KCIuL2hvdmVyIiksbi5zZWxlY3RQb2ludHM9dCgiLi9zZWxlY3QiKSxuLm1vZHVsZVR5cGU9InRyYWNlIixuLm5hbWU9InNjYXR0ZXJ0ZXJuYXJ5IixuLmJhc2VQbG90TW9kdWxlPXQoIi4uLy4uL3Bsb3RzL3Rlcm5hcnkiKSxuLmNhdGVnb3JpZXM9WyJ0ZXJuYXJ5Iiwic3ltYm9scyIsIm1hcmtlckNvbG9yc2NhbGUiLCJzaG93TGVnZW5kIl0sbi5tZXRhPXt9LGUuZXhwb3J0cz1ufSx7Ii4uLy4uL3Bsb3RzL3Rlcm5hcnkiOjY3OCwiLi4vc2NhdHRlci9jb2xvcmJhciI6Nzc2LCIuL2F0dHJpYnV0ZXMiOjgxNywiLi9jYWxjIjo4MTgsIi4vZGVmYXVsdHMiOjgxOSwiLi9ob3ZlciI6ODIwLCIuL3Bsb3QiOjgyMiwiLi9zZWxlY3QiOjgyMywiLi9zdHlsZSI6ODI0fV0sODIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvcGxvdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQucGxvdENvbnRhaW5lcjtyLnNlbGVjdCgiLnNjYXR0ZXJsYXllciIpLnNlbGVjdEFsbCgiKiIpLnJlbW92ZSgpO2Zvcih2YXIgaT17eDpmdW5jdGlvbigpe3JldHVybiB0LnhheGlzfSx5OmZ1bmN0aW9uKCl7cmV0dXJuIHQueWF4aXN9LHBsb3Q6cn0sbz1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9dC5ncmFwaERpdi5jYWxjZGF0YSxzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPWUuaW5kZXhPZihhW3NdWzBdLnRyYWNlKTstMSE9PWwmJihvW2xdPWFbc10sZVtsXS5fdGVybmFyeT10KX1uKHQuZ3JhcGhEaXYsaSxvKX19LHsiLi4vc2NhdHRlci9wbG90Ijo3ODl9XSw4MjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9zZWxlY3QiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQsZSk7aWYocil7dmFyIGksbyxhLHM9dC5jZDtmb3IoYT0wO2E8ci5sZW5ndGg7YSsrKWk9clthXSxvPXNbaS5wb2ludE51bWJlcl0saS5hPW8uYSxpLmI9by5iLGkuYz1vLmMsZGVsZXRlIGkueCxkZWxldGUgaS55O3JldHVybiByfX19LHsiLi4vc2NhdHRlci9zZWxlY3QiOjc5MH1dLDgyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL3N0eWxlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0Ll9tb2R1bGVzLHI9MDtyPGUubGVuZ3RoO3IrKylpZigic2NhdHRlciI9PT1lW3JdLm5hbWUpcmV0dXJuO24odCl9fSx7Ii4uL3NjYXR0ZXIvc3R5bGUiOjc5MX1dLDgyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfX1mdW5jdGlvbiBpKHQpe3JldHVybntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxwcm9qZWN0Ont4Om4oIngiKSx5Om4oInkiKSx6Om4oInoiKX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om8uZGVmYXVsdExpbmV9LHVzZWNvbG9ybWFwOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxtYXg6MTYsZGZsdDoyfSxoaWdobGlnaHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGhpZ2hsaWdodGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpvLmRlZmF1bHRMaW5lfSxoaWdobGlnaHR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxtYXg6MTYsZGZsdDoyfX19dmFyIG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17ejp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHg6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sdGV4dDp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHN1cmZhY2Vjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGNhdXRvOmEuemF1dG8sY21pbjphLnptaW4sY21heDphLnptYXgsY29sb3JzY2FsZTphLmNvbG9yc2NhbGUsYXV0b2NvbG9yc2NhbGU6cyh7fSxhLmF1dG9jb2xvcnNjYWxlLHtkZmx0OiExfSkscmV2ZXJzZXNjYWxlOmEucmV2ZXJzZXNjYWxlLHNob3dzY2FsZTphLnNob3dzY2FsZSxjb250b3Vyczp7eDppKCJ4IikseTppKCJ5IiksejppKCJ6Iil9LGhpZGVzdXJmYWNlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsaWdodHBvc2l0aW9uOnt4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDoxMH0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTFlNSxtYXg6MWU1LGRmbHQ6MWU0fSx6Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDowfX0sbGlnaHRpbmc6e2FtYmllbnQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouOH0sZGlmZnVzZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi44fSxzcGVjdWxhcjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MixkZmx0Oi4wNX0scm91Z2huZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjV9LGZyZXNuZWw6e3ZhbFR5cGU6Im51bWJlciIsCm1pbjowLG1heDo1LGRmbHQ6LjJ9fSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0sX25lc3RlZE1vZHVsZXM6e2NvbG9yYmFyOiJDb2xvcmJhciJ9LF9kZXByZWNhdGVkOnt6YXV0bzpzKHt9LGEuemF1dG8se30pLHptaW46cyh7fSxhLnptaW4se30pLHptYXg6cyh7fSxhLnptYXgse30pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NTA2LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NTEyLCIuLi8uLi9saWIvZXh0ZW5kIjo1ODZ9XSw4MjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlLnN1cmZhY2Vjb2xvcj9uKGUsZS5zdXJmYWNlY29sb3IsIiIsImMiKTpuKGUsZS56LCIiLCJjIil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo1MTN9XSw4Mjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksbz10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZ2V0X3NjYWxlIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yYmFyL2RyYXciKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLnRyYWNlLHU9ImNiIityLnVpZCxjPXMoci5jb2xvcnNjYWxlKSxoPXIuY21pbixmPXIuY21heCxwPXIuc3VyZmFjZWNvbG9yfHxyLno7aWYoaShoKXx8KGg9by5hZ2dOdW1zKE1hdGgubWluLG51bGwscCkpLGkoZil8fChmPW8uYWdnTnVtcyhNYXRoLm1heCxudWxsLHApKSx0Ll9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCIuIit1KS5yZW1vdmUoKSwhci5zaG93c2NhbGUpcmV0dXJuIHZvaWQgYS5hdXRvTWFyZ2luKHQsdSk7dmFyIGQ9ZVswXS50LmNiPWwodCx1KTtkLmZpbGxjb2xvcihuLnNjYWxlLmxpbmVhcigpLmRvbWFpbihjLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaCt0WzBdKihmLWgpfSkpLnJhbmdlKGMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0WzFdfSkpKS5maWxsbGV2ZWxzKHtzdGFydDpoLGVuZDpmLHNpemU6KGYtaCkvMjU0fSkub3B0aW9ucyhyLmNvbG9yYmFyKSgpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yYmFyL2RyYXciOjUwOSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2dldF9zY2FsZSI6NTE4LCIuLi8uLi9saWIiOjU5MSwiLi4vLi4vcGxvdHMvcGxvdHMiOjY3MSxkMzoxMjQsImZhc3QtaXNudW1lcmljIjoxMjh9XSw4Mjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dGhpcy5zY2VuZT10LHRoaXMudWlkPXIsdGhpcy5zdXJmYWNlPWUsdGhpcy5kYXRhPW51bGwsdGhpcy5zaG93Q29udG91cj1bITEsITEsITFdLHRoaXMuZGF0YVNjYWxlPTF9ZnVuY3Rpb24gaSh0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT0xKSx0Lm1hcChmdW5jdGlvbih0KXt2YXIgcj10WzBdLG49cCh0WzFdKSxpPW4udG9SZ2IoKTtyZXR1cm57aW5kZXg6cixyZ2I6W2kucixpLmcsaS5iLGVdfX0pfWZ1bmN0aW9uIG8odCl7dmFyIGU9dC5zaGFwZSxyPVtlWzBdKzIsZVsxXSsyXSxuPXUobmV3IEZsb2F0MzJBcnJheShyWzBdKnJbMV0pLHIpO3JldHVybiBmLmFzc2lnbihuLmxvKDEsMSkuaGkoZVswXSxlWzFdKSx0KSxmLmFzc2lnbihuLmxvKDEpLmhpKGVbMF0sMSksdC5oaShlWzBdLDEpKSxmLmFzc2lnbihuLmxvKDEsclsxXS0xKS5oaShlWzBdLDEpLHQubG8oMCxlWzFdLTEpLmhpKGVbMF0sMSkpLGYuYXNzaWduKG4ubG8oMCwxKS5oaSgxLGVbMV0pLHQuaGkoMSkpLGYuYXNzaWduKG4ubG8oclswXS0xLDEpLmhpKDEsZVsxXSksdC5sbyhlWzBdLTEpKSxuLnNldCgwLDAsdC5nZXQoMCwwKSksbi5zZXQoMCxyWzFdLTEsdC5nZXQoMCxlWzFdLTEpKSxuLnNldChyWzBdLTEsMCx0LmdldChlWzBdLTEsMCkpLG4uc2V0KHJbMF0tMSxyWzFdLTEsdC5nZXQoZVswXS0xLGVbMV0tMSkpLG59ZnVuY3Rpb24gYSh0KXt2YXIgZT1NYXRoLm1heCh0WzBdLnNoYXBlWzBdLHRbMF0uc2hhcGVbMV0pO2lmKG0+ZSl7Zm9yKHZhciByPW0vZSxuPVswfE1hdGguZmxvb3IodFswXS5zaGFwZVswXSpyKzEpLDB8TWF0aC5mbG9vcih0WzBdLnNoYXBlWzFdKnIrMSldLGk9blswXSpuWzFdLGE9MDthPHQubGVuZ3RoOysrYSl7dmFyIHM9byh0W2FdKSxsPXUobmV3IEZsb2F0MzJBcnJheShpKSxuKTtjKGwscyxbciwwLDAsMCxyLDAsMCwwLDFdKSx0W2FdPWx9cmV0dXJuIHJ9cmV0dXJuIDF9ZnVuY3Rpb24gcyh0LGUpe3ZhciByPXQuZ2xwbG90LmdsLGk9bCh7Z2w6cn0pLG89bmV3IG4odCxpLGUudWlkKTtyZXR1cm4gby51cGRhdGUoZSksdC5nbHBsb3QuYWRkKGkpLG99dmFyIGw9dCgiZ2wtc3VyZmFjZTNkIiksdT10KCJuZGFycmF5IiksYz10KCJuZGFycmF5LWhvbW9ncmFwaHkiKSxoPXQoIm5kYXJyYXktZmlsbCIpLGY9dCgibmRhcnJheS1vcHMiKSxwPXQoInRpbnljb2xvcjIiKSxkPXQoIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiKSxtPTEyOCxnPW4ucHJvdG90eXBlO2cuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMuc3VyZmFjZSl7dmFyIGU9W01hdGgubWluKDB8TWF0aC5yb3VuZCh0LmRhdGEuaW5kZXhbMF0vdGhpcy5kYXRhU2NhbGUtMSksdGhpcy5kYXRhLnpbMF0ubGVuZ3RoLTEpLE1hdGgubWluKDB8TWF0aC5yb3VuZCh0LmRhdGEuaW5kZXhbMV0vdGhpcy5kYXRhU2NhbGUtMSksdGhpcy5kYXRhLnoubGVuZ3RoLTEpXSxyPVswLDAsMF07QXJyYXkuaXNBcnJheSh0aGlzLmRhdGEueFswXSk/clswXT10aGlzLmRhdGEueFtlWzFdXVtlWzBdXTpyWzBdPXRoaXMuZGF0YS54W2VbMF1dLEFycmF5LmlzQXJyYXkodGhpcy5kYXRhLnlbMF0pP3JbMV09dGhpcy5kYXRhLnlbZVsxXV1bZVswXV06clsxXT10aGlzLmRhdGEueVtlWzFdXSxyWzJdPXRoaXMuZGF0YS56W2VbMV1dW2VbMF1dLHQudHJhY2VDb29yZGluYXRlPXI7dmFyIG49dGhpcy5zY2VuZS5mdWxsU2NlbmVMYXlvdXQ7dC5kYXRhQ29vcmRpbmF0ZT1bbi54YXhpcy5kMmwoclswXSkqdGhpcy5zY2VuZS5kYXRhU2NhbGVbMF0sbi55YXhpcy5kMmwoclsxXSkqdGhpcy5zY2VuZS5kYXRhU2NhbGVbMV0sbi56YXhpcy5kMmwoclsyXSkqdGhpcy5zY2VuZS5kYXRhU2NhbGVbMl1dO3ZhciBpPXRoaXMuZGF0YS50ZXh0O3JldHVybiBpJiZpW2VbMV1dJiZ2b2lkIDAhPT1pW2VbMV1dW2VbMF1dP3QudGV4dExhYmVsPWlbZVsxXV1bZVswXV06dC50ZXh0TGFiZWw9IiIsdC5kYXRhLmRhdGFDb29yZGluYXRlPXQuZGF0YUNvb3JkaW5hdGUuc2xpY2UoKSx0aGlzLnN1cmZhY2UuaGlnaGxpZ2h0KHQuZGF0YSksdGhpcy5zY2VuZS5nbHBsb3Quc3Bpa2VzLnBvc2l0aW9uPXQuZGF0YUNvb3JkaW5hdGUsITB9fSxnLnNldENvbnRvdXJMZXZlbHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W1tdLFtdLFtdXSxlPSExLHI9MDszPnI7KytyKXRoaXMuc2hvd0NvbnRvdXJbcl0mJihlPSEwLHRbcl09dGhpcy5zY2VuZS5jb250b3VyTGV2ZWxzW3JdKTtlJiZ0aGlzLnN1cmZhY2UudXBkYXRlKHtsZXZlbHM6dH0pfSxnLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMuc2NlbmUsbj1yLmZ1bGxTY2VuZUxheW91dCxvPXRoaXMuc3VyZmFjZSxzPXQub3BhY2l0eSxsPWkodC5jb2xvcnNjYWxlLHMpLGM9dC56LGY9dC54LHA9dC55LG09bi54YXhpcyxnPW4ueWF4aXMsdj1uLnpheGlzLHk9ci5kYXRhU2NhbGUsYj1jWzBdLmxlbmd0aCx4PWMubGVuZ3RoLF89W3UobmV3IEZsb2F0MzJBcnJheShiKngpLFtiLHhdKSx1KG5ldyBGbG9hdDMyQXJyYXkoYip4KSxbYix4XSksdShuZXcgRmxvYXQzMkFycmF5KGIqeCksW2IseF0pXSx3PV9bMF0sTT1fWzFdLGs9ci5jb250b3VyTGV2ZWxzO3RoaXMuZGF0YT10LGgoX1syXSxmdW5jdGlvbih0LGUpe3JldHVybiB2LmQybChjW2VdW3RdKSp5WzJdfSksQXJyYXkuaXNBcnJheShmWzBdKT9oKHcsZnVuY3Rpb24odCxlKXtyZXR1cm4gbS5kMmwoZltlXVt0XSkqeVswXX0pOmgodyxmdW5jdGlvbih0KXtyZXR1cm4gbS5kMmwoZlt0XSkqeVswXX0pLEFycmF5LmlzQXJyYXkocFswXSk/aChNLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGcuZDJsKHBbZV1bdF0pKnlbMV19KTpoKE0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZy5kMmwocFtlXSkqeVsxXX0pO3ZhciBBPXtjb2xvcm1hcDpsLGxldmVsczpbW10sW10sW11dLHNob3dDb250b3VyOlshMCwhMCwhMF0sc2hvd1N1cmZhY2U6IXQuaGlkZXN1cmZhY2UsY29udG91clByb2plY3Q6W1shMSwhMSwhMV0sWyExLCExLCExXSxbITEsITEsITFdXSxjb250b3VyV2lkdGg6WzEsMSwxXSxjb250b3VyQ29sb3I6W1sxLDEsMSwxXSxbMSwxLDEsMV0sWzEsMSwxLDFdXSxjb250b3VyVGludDpbMSwxLDFdLGR5bmFtaWNDb2xvcjpbWzEsMSwxLDFdLFsxLDEsMSwxXSxbMSwxLDEsMV1dLGR5bmFtaWNXaWR0aDpbMSwxLDFdLGR5bmFtaWNUaW50OlsxLDEsMV0sb3BhY2l0eToxfTtpZihBLmludGVuc2l0eUJvdW5kcz1bdC5jbWluLHQuY21heF0sdC5zdXJmYWNlY29sb3Ipe3ZhciBUPXUobmV3IEZsb2F0MzJBcnJheShiKngpLFtiLHhdKTtoKFQsZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5zdXJmYWNlY29sb3Jbcl1bZV19KSxfLnB1c2goVCl9ZWxzZSBBLmludGVuc2l0eUJvdW5kc1swXSo9eVsyXSxBLmludGVuc2l0eUJvdW5kc1sxXSo9eVsyXTt0aGlzLmRhdGFTY2FsZT1hKF8pLHQuc3VyZmFjZWNvbG9yJiYoQS5pbnRlbnNpdHk9Xy5wb3AoKSksIm9wYWNpdHkiaW4gdCYmdC5vcGFjaXR5PDEmJihBLm9wYWNpdHk9LjI1KnQub3BhY2l0eSk7dmFyIEU9WyEwLCEwLCEwXSxTPVsieCIsInkiLCJ6Il07Zm9yKGU9MDszPmU7KytlKXt2YXIgTD10LmNvbnRvdXJzW1NbZV1dO0VbZV09TC5oaWdobGlnaHQsQS5zaG93Q29udG91cltlXT1MLnNob3d8fEwuaGlnaGxpZ2h0LEEuc2hvd0NvbnRvdXJbZV0mJihBLmNvbnRvdXJQcm9qZWN0W2VdPVtMLnByb2plY3QueCxMLnByb2plY3QueSxMLnByb2plY3Quel0sTC5zaG93Pyh0aGlzLnNob3dDb250b3VyW2VdPSEwLEEubGV2ZWxzW2VdPWtbZV0sby5oaWdobGlnaHRDb2xvcltlXT1BLmNvbnRvdXJDb2xvcltlXT1kKEwuY29sb3IpLEwudXNlY29sb3JtYXA/by5oaWdobGlnaHRUaW50W2VdPUEuY29udG91clRpbnRbZV09MDpvLmhpZ2hsaWdodFRpbnRbZV09QS5jb250b3VyVGludFtlXT0xLEEuY29udG91cldpZHRoW2VdPUwud2lkdGgpOnRoaXMuc2hvd0NvbnRvdXJbZV09ITEsTC5oaWdobGlnaHQmJihBLmR5bmFtaWNDb2xvcltlXT1kKEwuaGlnaGxpZ2h0Y29sb3IpLEEuZHluYW1pY1dpZHRoW2VdPUwuaGlnaGxpZ2h0d2lkdGgpKX1BLmNvb3Jkcz1fLG8udXBkYXRlKEEpLG8udmlzaWJsZT10LnZpc2libGUsby5lbmFibGVEeW5hbWljPUUsby5zbmFwVG9EYXRhPSEwLCJsaWdodGluZyJpbiB0JiYoby5hbWJpZW50TGlnaHQ9dC5saWdodGluZy5hbWJpZW50LG8uZGlmZnVzZUxpZ2h0PXQubGlnaHRpbmcuZGlmZnVzZSxvLnNwZWN1bGFyTGlnaHQ9dC5saWdodGluZy5zcGVjdWxhcixvLnJvdWdobmVzcz10LmxpZ2h0aW5nLnJvdWdobmVzcyxvLmZyZXNuZWw9dC5saWdodGluZy5mcmVzbmVsKSwibGlnaHRwb3NpdGlvbiJpbiB0JiYoby5saWdodFBvc2l0aW9uPVt0LmxpZ2h0cG9zaXRpb24ueCx0LmxpZ2h0cG9zaXRpb24ueSx0LmxpZ2h0cG9zaXRpb24uel0pLHMmJjE+cyYmKG8uc3VwcG9ydHNUcmFuc3BhcmVuY3k9ITApfSxnLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5zdXJmYWNlKSx0aGlzLnN1cmZhY2UuZGlzcG9zZSgpfSxlLmV4cG9ydHM9c30seyIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo2MDMsImdsLXN1cmZhY2UzZCI6MjMyLG5kYXJyYXk6NDU2LCJuZGFycmF5LWZpbGwiOjQ0OSwibmRhcnJheS1ob21vZ3JhcGh5Ijo0NTQsIm5kYXJyYXktb3BzIjo0NTUsdGlueWNvbG9yMjo0Nzd9XSw4Mjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7ZSBpbiB0JiYhKHIgaW4gdCkmJih0W3JdPXRbZV0pfXZhciBpPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksYT10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7ZnVuY3Rpb24gbChyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYSxyLG4pfXZhciB1LGMsaD1sKCJ6Iik7aWYoIWgpcmV0dXJuIHZvaWQoZS52aXNpYmxlPSExKTt2YXIgZj1oWzBdLmxlbmd0aCxwPWgubGVuZ3RoO2lmKGwoIngiKSxsKCJ5IiksIUFycmF5LmlzQXJyYXkoZS54KSlmb3IoZS54PVtdLHU9MDtmPnU7Kyt1KWUueFt1XT11O2lmKGwoInRleHQiKSwhQXJyYXkuaXNBcnJheShlLnkpKWZvcihlLnk9W10sdT0wO3A+dTsrK3UpZS55W3VdPXU7WyJsaWdodGluZy5hbWJpZW50IiwibGlnaHRpbmcuZGlmZnVzZSIsImxpZ2h0aW5nLnNwZWN1bGFyIiwibGlnaHRpbmcucm91Z2huZXNzIiwibGlnaHRpbmcuZnJlc25lbCIsImxpZ2h0cG9zaXRpb24ueCIsImxpZ2h0cG9zaXRpb24ueSIsImxpZ2h0cG9zaXRpb24ueiIsImhpZGVzdXJmYWNlIiwib3BhY2l0eSJdLmZvckVhY2goZnVuY3Rpb24odCl7bCh0KX0pO3ZhciBkPWwoInN1cmZhY2Vjb2xvciIpO2woImNvbG9yc2NhbGUiKTt2YXIgbT1bIngiLCJ5IiwieiJdO2Zvcih1PTA7Mz51OysrdSl7dmFyIGc9ImNvbnRvdXJzLiIrbVt1XSx2PWwoZysiLnNob3ciKSx5PWwoZysiLmhpZ2hsaWdodCIpO2lmKHZ8fHkpZm9yKGM9MDszPmM7KytjKWwoZysiLnByb2plY3QuIittW2NdKTt2JiYobChnKyIuY29sb3IiKSxsKGcrIi53aWR0aCIpLGwoZysiLnVzZWNvbG9ybWFwIikpLHkmJihsKGcrIi5oaWdobGlnaHRjb2xvciIpLGwoZysiLmhpZ2hsaWdodHdpZHRoIikpfWR8fChuKHQsInptaW4iLCJjbWluIiksbih0LCJ6bWF4IiwiY21heCIpLG4odCwiemF1dG8iLCJjYXV0byIpKSxvKHQsZSxzLGwse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjUxNiwiLi4vLi4vbGliIjo1OTEsIi4vYXR0cmlidXRlcyI6ODI1fV0sODMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O24uYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxuLnN1cHBseURlZmF1bHRzPXQoIi4vZGVmYXVsdHMiKSxuLmNvbG9yYmFyPXQoIi4vY29sb3JiYXIiKSxuLmNhbGM9dCgiLi9jYWxjIiksbi5wbG90PXQoIi4vY29udmVydCIpLG4ubW9kdWxlVHlwZT0idHJhY2UiLG4ubmFtZT0ic3VyZmFjZSIsbi5iYXNlUGxvdE1vZHVsZT10KCIuLi8uLi9wbG90cy9nbDNkIiksbi5jYXRlZ29yaWVzPVsiZ2wzZCIsIm5vT3BhY2l0eSJdLG4ubWV0YT17fSxlLmV4cG9ydHM9bn0seyIuLi8uLi9wbG90cy9nbDNkIjo2NTEsIi4vYXR0cmlidXRlcyI6ODI1LCIuL2NhbGMiOjgyNiwiLi9jb2xvcmJhciI6ODI3LCIuL2NvbnZlcnQiOjgyOCwiLi9kZWZhdWx0cyI6ODI5fV19LHt9LFsxMl0pKDEyKX0pOw=="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
36 <script src="data:application/x-javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCiAgCiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgIC8vIHdoZW4gdXBncmFkaW5nIHBsb3RseS5qcywKICAgIC8vIHVuY29tbWVudCB0aGlzIGNvbnNvbGUubG9nKCksIHRoZW4gZG8gYGxvYWRfYWxsKCk7IHBsb3RfbHkoKWAgCiAgICAvLyBvcGVuIGluIGNocm9tZSwgcmlnaHQtY2xpY2sgb24gY29uc29sZSBvdXRwdXQ6ICJzYXZlLWFzIiAtPiAic2NoZW1hLmpzb24iCiAgICAvLyBTY2hlbWEgPC0ganNvbmxpdGU6OmZyb21KU09OKCJ+L0Rvd25sb2Fkcy9zY2hlbWEuanNvbiIpCiAgICAvLyBkZXZ0b29sczo6dXNlX2RhdGEoU2NoZW1hLCBvdmVyd3JpdGUgPSBULCBpbnRlcm5hbCA9IFQpCiAgICAvLyBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShQbG90bHkuUGxvdFNjaGVtYS5nZXQoKSkpOwogICAgcmV0dXJuIHt9OwogIH0sCiAgCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICBQbG90bHkucmVsYXlvdXQoZWwuaWQsIHt3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0fSk7CiAgICB9CiAgfSwgIAogIAogIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgIAogICAgdmFyIHNoaW55TW9kZTsKICAgIGlmICh0eXBlb2Yod2luZG93KSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgLy8gbWFrZSBzdXJlIHBsb3RzIGRvbid0IGdldCBjcmVhdGVkIG91dHNpZGUgdGhlIG5ldHdvcmsKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICBzaGlueU1vZGUgPSAhIXdpbmRvdy5TaGlueTsKICAgIH0KICAgIAogICAgdmFyIGdyYXBoRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWwuaWQpOwogICAgCiAgICAvLyBpZiBubyBwbG90IGV4aXN0cyB5ZXQsIGNyZWF0ZSBvbmUgd2l0aCBhIHBhcnRpY3VsYXIgY29uZmlndXJhdGlvbgogICAgaWYgKCFpbnN0YW5jZS5wbG90bHkpIHsKICAgICAgdmFyIHBsb3QgPSBQbG90bHkucGxvdChncmFwaERpdiwgeC5kYXRhLCB4LmxheW91dCwgeC5jb25maWcpOwogICAgICBpbnN0YW5jZS5wbG90bHkgPSB0cnVlOwogICAgICBpbnN0YW5jZS5hdXRvc2l6ZSA9IHgubGF5b3V0LmF1dG9zaXplOwogICAgfSBlbHNlIHsKICAgICAgdmFyIHBsb3QgPSBQbG90bHkubmV3UGxvdChncmFwaERpdiwgeC5kYXRhLCB4LmxheW91dCk7CiAgICB9CiAgICAKICAgIHNlbmRFdmVudERhdGEgPSBmdW5jdGlvbihldmVudFR5cGUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGV2ZW50RGF0YSkgewogICAgICAgIGlmIChldmVudERhdGEgPT09IHVuZGVmaW5lZCB8fCAhZXZlbnREYXRhLmhhc093blByb3BlcnR5KCJwb2ludHMiKSkgewogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIHZhciBkID0gZXZlbnREYXRhLnBvaW50cy5tYXAoZnVuY3Rpb24ocHQpIHsKICAgICAgICAgIHZhciBvYmogPSB7CiAgICAgICAgICAgICAgICBjdXJ2ZU51bWJlcjogcHQuY3VydmVOdW1iZXIsIAogICAgICAgICAgICAgICAgcG9pbnROdW1iZXI6IHB0LnBvaW50TnVtYmVyLCAKICAgICAgICAgICAgICAgIHg6IHB0LngsCiAgICAgICAgICAgICAgICB5OiBwdC55CiAgICAgICAgICB9OwogICAgICAgICAgLy8gZ3JhYiB0aGUgdHJhY2UgY29ycmVzcG9uZGluZyB0byB0aGlzIHBvaW50CiAgICAgICAgICB2YXIgdHIgPSB4LmRhdGFbcHQuY3VydmVOdW1iZXJdOwogICAgICAgICAgLy8gYWRkIG9uIGFkZGl0aW9uYWwgdHJhY2UgaW5mbywgaWYgaXQgZXhpc3RzCiAgICAgICAgICBhdHRhY2hLZXkgPSBmdW5jdGlvbihrZXlOYW1lKSB7CiAgICAgICAgICAgIGlmICh0ci5oYXNPd25Qcm9wZXJ0eShrZXlOYW1lKSAmJiB0cltrZXlOYW1lXSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIGlmICh0eXBlb2YgcHQucG9pbnROdW1iZXIgPT09ICJudW1iZXIiKSB7CiAgICAgICAgICAgICAgICBvYmpba2V5TmFtZV0gPSB0cltrZXlOYW1lXVtwdC5wb2ludE51bWJlcl07CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIG9ialtrZXlOYW1lXSA9IHRyW2tleU5hbWVdW3B0LnBvaW50TnVtYmVyWzBdXVtwdC5wb2ludE51bWJlclsxXV07CiAgICAgICAgICAgICAgfS8vIFRPRE86IGNhbiBwb2ludE51bWJlciBiZSAzRD8KICAgICAgICAgICAgfQogICAgICAgICAgfTsKICAgICAgICAgIGF0dGFjaEtleSgieiIpOwogICAgICAgICAgYXR0YWNoS2V5KCJrZXkiKTsKICAgICAgICAgIHJldHVybiBvYmo7IAogICAgICAgIH0pOwogICAgICAgIHZhciBzcmMgPSAiLmNsaWVudFZhbHVlLSIgKyBldmVudFR5cGUgKyAiLSIgKyB4LnNvdXJjZTsKICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKHNyYywgSlNPTi5zdHJpbmdpZnkoZCkpOwogICAgICB9OwogICAgfTsKICAgIAogICAgLy8gc2VuZCB1c2VyIGlucHV0IGV2ZW50IGRhdGEgdG8gc2hpbnkKICAgIGlmIChzaGlueU1vZGUpIHsKICAgICAgLy8gaHR0cHM6Ly9wbG90Lmx5L2phdmFzY3JpcHQvem9vbS1ldmVudHMvCiAgICAgIGdyYXBoRGl2Lm9uKCdwbG90bHlfcmVsYXlvdXQnLCBmdW5jdGlvbihkKSB7CiAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZSgKICAgICAgICAgICIuY2xpZW50VmFsdWUtIiArICJwbG90bHlfcmVsYXlvdXQiICsgIi0iICsgeC5zb3VyY2UsIAogICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZCkKICAgICAgICApOwogICAgICB9KTsKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV9ob3ZlcicsIHNlbmRFdmVudERhdGEoJ3Bsb3RseV9ob3ZlcicpKTsKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV9jbGljaycsIHNlbmRFdmVudERhdGEoJ3Bsb3RseV9jbGljaycpKTsKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV9zZWxlY3RlZCcsIHNlbmRFdmVudERhdGEoJ3Bsb3RseV9zZWxlY3RlZCcpKTsKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV91bmhvdmVyJywgZnVuY3Rpb24oZXZlbnREYXRhKSB7CiAgICAgICAgU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLXBsb3RseV9ob3Zlci0iICsgeC5zb3VyY2UsIG51bGwpOwogICAgICB9KTsKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV9kb3VibGVjbGljaycsIGZ1bmN0aW9uKGV2ZW50RGF0YSkgewogICAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UoIi5jbGllbnRWYWx1ZS1wbG90bHlfY2xpY2stIiArIHguc291cmNlLCBudWxsKTsKICAgICAgfSk7CiAgICAgIC8vICdwbG90bHlfZGVzZWxlY3QnIGlzIGNvZGUgZm9yIGRvdWJsZWNsaWNrIHdoZW4gaW4gc2VsZWN0IG1vZGUKICAgICAgZ3JhcGhEaXYub24oJ3Bsb3RseV9kZXNlbGVjdCcsIGZ1bmN0aW9uKGV2ZW50RGF0YSkgewogICAgICAgIFNoaW55Lm9uSW5wdXRDaGFuZ2UoIi5jbGllbnRWYWx1ZS1wbG90bHlfc2VsZWN0ZWQtIiArIHguc291cmNlLCBudWxsKTsKICAgICAgICBTaGlueS5vbklucHV0Q2hhbmdlKCIuY2xpZW50VmFsdWUtcGxvdGx5X2NsaWNrLSIgKyB4LnNvdXJjZSwgbnVsbCk7CiAgICAgIH0pOwogICAgfSAKICAgIAogIH0gCiAgCn0pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
37 <script src="data:application/x-javascript;base64,LyohCgpKU1ppcCAtIEEgSmF2YXNjcmlwdCBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgcmVhZGluZyB6aXAgZmlsZXMKPGh0dHA6Ly9zdHVhcnRrLmNvbS9qc3ppcD4KCihjKSAyMDA5LTIwMTQgU3R1YXJ0IEtuaWdodGxleSA8c3R1YXJ0IFthdF0gc3R1YXJ0ay5jb20+CkR1YWwgbGljZW5jZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIG9yIEdQTHYzLiBTZWUgaHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9TdHVrL2pzemlwL21hc3Rlci9MSUNFTlNFLm1hcmtkb3duLgoKSlNaaXAgdXNlcyB0aGUgbGlicmFyeSBwYWtvIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSA6Cmh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrby9ibG9iL21hc3Rlci9MSUNFTlNFCiovCiFmdW5jdGlvbihhKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPWEoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKFtdLGEpO2Vsc2V7dmFyIGI7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/Yj13aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Yj1nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYoYj1zZWxmKSxiLkpTWmlwPWEoKX19KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpfXZhciBqPWNbZ109e2V4cG9ydHM6e319O2JbZ11bMF0uY2FsbChqLmV4cG9ydHMsZnVuY3Rpb24oYSl7dmFyIGM9YltnXVsxXVthXTtyZXR1cm4gZShjP2M6YSl9LGosai5leHBvcnRzLGEsYixjLGQpfXJldHVybiBjW2ddLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGc9MDtnPGQubGVuZ3RoO2crKyllKGRbZ10pO3JldHVybiBlfSh7MTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO2MuZW5jb2RlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGUsZixnLGgsaSxqPSIiLGs9MDtrPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChrKyspLGM9YS5jaGFyQ29kZUF0KGsrKyksZT1hLmNoYXJDb2RlQXQoaysrKSxmPWI+PjIsZz0oMyZiKTw8NHxjPj40LGg9KDE1JmMpPDwyfGU+PjYsaT02MyZlLGlzTmFOKGMpP2g9aT02NDppc05hTihlKSYmKGk9NjQpLGo9aitkLmNoYXJBdChmKStkLmNoYXJBdChnKStkLmNoYXJBdChoKStkLmNoYXJBdChpKTtyZXR1cm4gan0sYy5kZWNvZGU9ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoLGksaj0iIixrPTA7Zm9yKGE9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7azxhLmxlbmd0aDspZj1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksZz1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaD1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaT1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksYj1mPDwyfGc+PjQsYz0oMTUmZyk8PDR8aD4+MixlPSgzJmgpPDw2fGksais9U3RyaW5nLmZyb21DaGFyQ29kZShiKSw2NCE9aCYmKGorPVN0cmluZy5mcm9tQ2hhckNvZGUoYykpLDY0IT1pJiYoais9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7cmV0dXJuIGp9fSx7fV0sMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe3RoaXMuY29tcHJlc3NlZFNpemU9MCx0aGlzLnVuY29tcHJlc3NlZFNpemU9MCx0aGlzLmNyYzMyPTAsdGhpcy5jb21wcmVzc2lvbk1ldGhvZD1udWxsLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9bnVsbH1jLnByb3RvdHlwZT17Z2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxnZXRDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHt9XSwzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuU1RPUkU9e21hZ2ljOiJceDAwXHgwMCIsY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHVuY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNvbXByZXNzSW5wdXRUeXBlOm51bGwsdW5jb21wcmVzc0lucHV0VHlwZTpudWxsfSxjLkRFRkxBVEU9YSgiLi9mbGF0ZSIpfSx7Ii4vZmxhdGUiOjh9XSw0OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3V0aWxzIiksZD1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTczOTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIzMCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQyNTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4NywzNTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkwMDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIwMTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAzNzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDczMywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMxMTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0NzgxNjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkwMzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUsMjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgsMjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQxMjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIwMjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcyLDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwxOTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkzNTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQwNiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgyOSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMyNzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8IWEubGVuZ3RoKXJldHVybiAwO3ZhciBlPSJzdHJpbmciIT09Yy5nZXRUeXBlT2YoYSk7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0wKTt2YXIgZj0wLGc9MCxoPTA7Yj0tMV5iO2Zvcih2YXIgaT0wLGo9YS5sZW5ndGg7aj5pO2krKyloPWU/YVtpXTphLmNoYXJDb2RlQXQoaSksZz0yNTUmKGJeaCksZj1kW2ddLGI9Yj4+PjheZjtyZXR1cm4tMV5ifX0seyIuL3V0aWxzIjoyMX1dLDU6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9e2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleCh0aGlzLmluZGV4K2EpfSxjaGVja0luZGV4OmZ1bmN0aW9uKGEpe2lmKHRoaXMubGVuZ3RoPGF8fDA+YSl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIrYSsiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleChhKSx0aGlzLmluZGV4PWF9LHNraXA6ZnVuY3Rpb24oYSl7dGhpcy5zZXRJbmRleCh0aGlzLmluZGV4K2EpfSxieXRlQXQ6ZnVuY3Rpb24oKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0wO2Zvcih0aGlzLmNoZWNrT2Zmc2V0KGEpLGI9dGhpcy5pbmRleCthLTE7Yj49dGhpcy5pbmRleDtiLS0pYz0oYzw8OCkrdGhpcy5ieXRlQXQoYik7cmV0dXJuIHRoaXMuaW5kZXgrPWEsY30scmVhZFN0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKGEpKX0scmVhZERhdGE6ZnVuY3Rpb24oKXt9LGxhc3RJbmRleE9mU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoKGE+PjI1JjEyNykrMTk4MCwoYT4+MjEmMTUpLTEsYT4+MTYmMzEsYT4+MTEmMzEsYT4+NSY2MywoMzEmYSk8PDEpfX0sYi5leHBvcnRzPWN9LHsiLi91dGlscyI6MjF9XSw2OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuYmFzZTY0PSExLGMuYmluYXJ5PSExLGMuZGlyPSExLGMuY3JlYXRlRm9sZGVycz0hMSxjLmRhdGU9bnVsbCxjLmNvbXByZXNzaW9uPW51bGwsYy5jb21wcmVzc2lvbk9wdGlvbnM9bnVsbCxjLmNvbW1lbnQ9bnVsbCxjLnVuaXhQZXJtaXNzaW9ucz1udWxsLGMuZG9zUGVybWlzc2lvbnM9bnVsbH0se31dLDc6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9YSgiLi91dGlscyIpO2Muc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihhKXtyZXR1cm4gZC5zdHJpbmcyYmluYXJ5KGEpfSxjLnN0cmluZzJVaW50OEFycmF5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKX0sYy51aW50OEFycmF5MlN0cmluZz1mdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIixhKX0sYy5zdHJpbmcyQmxvYj1mdW5jdGlvbihhKXt2YXIgYj1kLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIsYSk7cmV0dXJuIGQuYXJyYXlCdWZmZXIyQmxvYihiKX0sYy5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmFycmF5QnVmZmVyMkJsb2IoYSl9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZC50cmFuc2Zvcm1UbyhhLGIpfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4gZC5nZXRUeXBlT2YoYSl9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3JldHVybiBkLmNoZWNrU3VwcG9ydChhKX0sYy5NQVhfVkFMVUVfMTZCSVRTPWQuTUFYX1ZBTFVFXzE2QklUUyxjLk1BWF9WQUxVRV8zMkJJVFM9ZC5NQVhfVkFMVUVfMzJCSVRTLGMucHJldHR5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnByZXR0eShhKX0sYy5maW5kQ29tcHJlc3Npb249ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZmluZENvbXByZXNzaW9uKGEpfSxjLmlzUmVnRXhwPWZ1bmN0aW9uKGEpe3JldHVybiBkLmlzUmVnRXhwKGEpfX0seyIuL3V0aWxzIjoyMX1dLDg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQzMkFycmF5LGU9YSgicGFrbyIpO2MudW5jb21wcmVzc0lucHV0VHlwZT1kPyJ1aW50OGFycmF5IjoiYXJyYXkiLGMuY29tcHJlc3NJbnB1dFR5cGU9ZD8idWludDhhcnJheSI6ImFycmF5IixjLm1hZ2ljPSJcYlx4MDAiLGMuY29tcHJlc3M9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZS5kZWZsYXRlUmF3KGEse2xldmVsOmIubGV2ZWx8fC0xfSl9LGMudW5jb21wcmVzcz1mdW5jdGlvbihhKXtyZXR1cm4gZS5pbmZsYXRlUmF3KGEpfX0se3Bha286MjR9XSw5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBjPyh0aGlzLmZpbGVzPXt9LHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9vdD0iIixhJiZ0aGlzLmxvYWQoYSxiKSx2b2lkKHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgYztmb3IodmFyIGIgaW4gdGhpcykiZnVuY3Rpb24iIT10eXBlb2YgdGhpc1tiXSYmKGFbYl09dGhpc1tiXSk7cmV0dXJuIGF9KSk6bmV3IGMoYSxiKX12YXIgZD1hKCIuL2Jhc2U2NCIpO2MucHJvdG90eXBlPWEoIi4vb2JqZWN0IiksYy5wcm90b3R5cGUubG9hZD1hKCIuL2xvYWQiKSxjLnN1cHBvcnQ9YSgiLi9zdXBwb3J0IiksYy5kZWZhdWx0cz1hKCIuL2RlZmF1bHRzIiksYy51dGlscz1hKCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyIpLGMuYmFzZTY0PXtlbmNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZW5jb2RlKGEpfSxkZWNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZGVjb2RlKGEpfX0sYy5jb21wcmVzc2lvbnM9YSgiLi9jb21wcmVzc2lvbnMiKSxiLmV4cG9ydHM9Y30seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2lvbnMiOjMsIi4vZGVmYXVsdHMiOjYsIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIjo3LCIuL2xvYWQiOjEwLCIuL29iamVjdCI6MTMsIi4vc3VwcG9ydCI6MTd9XSwxMDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9iYXNlNjQiKSxkPWEoIi4vemlwRW50cmllcyIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBlLGYsZyxoO2ZvcihiPWJ8fHt9LGIuYmFzZTY0JiYoYT1jLmRlY29kZShhKSksZj1uZXcgZChhLGIpLGU9Zi5maWxlcyxnPTA7ZzxlLmxlbmd0aDtnKyspaD1lW2ddLHRoaXMuZmlsZShoLmZpbGVOYW1lLGguZGVjb21wcmVzc2VkLHtiaW5hcnk6ITAsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiEwLGRhdGU6aC5kYXRlLGRpcjpoLmRpcixjb21tZW50OmguZmlsZUNvbW1lbnQubGVuZ3RoP2guZmlsZUNvbW1lbnQ6bnVsbCx1bml4UGVybWlzc2lvbnM6aC51bml4UGVybWlzc2lvbnMsZG9zUGVybWlzc2lvbnM6aC5kb3NQZXJtaXNzaW9ucyxjcmVhdGVGb2xkZXJzOmIuY3JlYXRlRm9sZGVyc30pO3JldHVybiBmLnppcENvbW1lbnQubGVuZ3RoJiYodGhpcy5jb21tZW50PWYuemlwQ29tbWVudCksdGhpc319LHsiLi9iYXNlNjQiOjEsIi4vemlwRW50cmllcyI6MjJ9XSwxMTpbZnVuY3Rpb24oYSxiKXsoZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2IuZXhwb3J0cz1mdW5jdGlvbihiLGMpe3JldHVybiBuZXcgYShiLGMpfSxiLmV4cG9ydHMudGVzdD1mdW5jdGlvbihiKXtyZXR1cm4gYS5pc0J1ZmZlcihiKX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXt0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKTtjLnByb3RvdHlwZT1uZXcgZCxjLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNoZWNrT2Zmc2V0KGEpO3ZhciBiPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi91aW50OEFycmF5UmVhZGVyIjoxOH1dLDEzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3N1cHBvcnQiKSxkPWEoIi4vdXRpbHMiKSxlPWEoIi4vY3JjMzIiKSxmPWEoIi4vc2lnbmF0dXJlIiksZz1hKCIuL2RlZmF1bHRzIiksaD1hKCIuL2Jhc2U2NCIpLGk9YSgiLi9jb21wcmVzc2lvbnMiKSxqPWEoIi4vY29tcHJlc3NlZE9iamVjdCIpLGs9YSgiLi9ub2RlQnVmZmVyIiksbD1hKCIuL3V0ZjgiKSxtPWEoIi4vc3RyaW5nV3JpdGVyIiksbj1hKCIuL3VpbnQ4QXJyYXlXcml0ZXIiKSxvPWZ1bmN0aW9uKGEpe2lmKGEuX2RhdGEgaW5zdGFuY2VvZiBqJiYoYS5fZGF0YT1hLl9kYXRhLmdldENvbnRlbnQoKSxhLm9wdGlvbnMuYmluYXJ5PSEwLGEub3B0aW9ucy5iYXNlNjQ9ITEsInVpbnQ4YXJyYXkiPT09ZC5nZXRUeXBlT2YoYS5fZGF0YSkpKXt2YXIgYj1hLl9kYXRhO2EuX2RhdGE9bmV3IFVpbnQ4QXJyYXkoYi5sZW5ndGgpLDAhPT1iLmxlbmd0aCYmYS5fZGF0YS5zZXQoYiwwKX1yZXR1cm4gYS5fZGF0YX0scD1mdW5jdGlvbihhKXt2YXIgYj1vKGEpLGU9ZC5nZXRUeXBlT2YoYik7cmV0dXJuInN0cmluZyI9PT1lPyFhLm9wdGlvbnMuYmluYXJ5JiZjLm5vZGVidWZmZXI/ayhiLCJ1dGYtOCIpOmEuYXNCaW5hcnkoKTpifSxxPWZ1bmN0aW9uKGEpe3ZhciBiPW8odGhpcyk7cmV0dXJuIG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGI/IiI6KHRoaXMub3B0aW9ucy5iYXNlNjQmJihiPWguZGVjb2RlKGIpKSxiPWEmJnRoaXMub3B0aW9ucy5iaW5hcnk/RC51dGY4ZGVjb2RlKGIpOmQudHJhbnNmb3JtVG8oInN0cmluZyIsYiksYXx8dGhpcy5vcHRpb25zLmJpbmFyeXx8KGI9ZC50cmFuc2Zvcm1Ubygic3RyaW5nIixELnV0ZjhlbmNvZGUoYikpKSxiKX0scj1mdW5jdGlvbihhLGIsYyl7dGhpcy5uYW1lPWEsdGhpcy5kaXI9Yy5kaXIsdGhpcy5kYXRlPWMuZGF0ZSx0aGlzLmNvbW1lbnQ9Yy5jb21tZW50LHRoaXMudW5peFBlcm1pc3Npb25zPWMudW5peFBlcm1pc3Npb25zLHRoaXMuZG9zUGVybWlzc2lvbnM9Yy5kb3NQZXJtaXNzaW9ucyx0aGlzLl9kYXRhPWIsdGhpcy5vcHRpb25zPWMsdGhpcy5faW5pdGlhbE1ldGFkYXRhPXtkaXI6Yy5kaXIsZGF0ZTpjLmRhdGV9fTtyLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHEuY2FsbCh0aGlzLCEwKX0sYXNCaW5hcnk6ZnVuY3Rpb24oKXtyZXR1cm4gcS5jYWxsKHRoaXMsITEpfSxhc05vZGVCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgYT1wKHRoaXMpO3JldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIGE9cCh0aGlzKTtyZXR1cm4gZC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYSl9LGFzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hc1VpbnQ4QXJyYXkoKS5idWZmZXJ9fTt2YXIgcz1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9IiI7Zm9yKGM9MDtiPmM7YysrKWQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEpLGE+Pj49ODtyZXR1cm4gZH0sdD1mdW5jdGlvbigpe3ZhciBhLGIsYz17fTtmb3IoYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZm9yKGIgaW4gYXJndW1lbnRzW2FdKWFyZ3VtZW50c1thXS5oYXNPd25Qcm9wZXJ0eShiKSYmInVuZGVmaW5lZCI9PXR5cGVvZiBjW2JdJiYoY1tiXT1hcmd1bWVudHNbYV1bYl0pO3JldHVybiBjfSx1PWZ1bmN0aW9uKGEpe3JldHVybiBhPWF8fHt9LGEuYmFzZTY0IT09ITB8fG51bGwhPT1hLmJpbmFyeSYmdm9pZCAwIT09YS5iaW5hcnl8fChhLmJpbmFyeT0hMCksYT10KGEsZyksYS5kYXRlPWEuZGF0ZXx8bmV3IERhdGUsbnVsbCE9PWEuY29tcHJlc3Npb24mJihhLmNvbXByZXNzaW9uPWEuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSksYX0sdj1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZj1kLmdldFR5cGVPZihiKTtpZihjPXUoYyksInN0cmluZyI9PXR5cGVvZiBjLnVuaXhQZXJtaXNzaW9ucyYmKGMudW5peFBlcm1pc3Npb25zPXBhcnNlSW50KGMudW5peFBlcm1pc3Npb25zLDgpKSxjLnVuaXhQZXJtaXNzaW9ucyYmMTYzODQmYy51bml4UGVybWlzc2lvbnMmJihjLmRpcj0hMCksYy5kb3NQZXJtaXNzaW9ucyYmMTYmYy5kb3NQZXJtaXNzaW9ucyYmKGMuZGlyPSEwKSxjLmRpciYmKGE9eChhKSksYy5jcmVhdGVGb2xkZXJzJiYoZT13KGEpKSYmeS5jYWxsKHRoaXMsZSwhMCksYy5kaXJ8fG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGIpYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITEsYj1udWxsLGY9bnVsbDtlbHNlIGlmKCJzdHJpbmciPT09ZiljLmJpbmFyeSYmIWMuYmFzZTY0JiZjLm9wdGltaXplZEJpbmFyeVN0cmluZyE9PSEwJiYoYj1kLnN0cmluZzJiaW5hcnkoYikpO2Vsc2V7aWYoYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITAsIShmfHxiIGluc3RhbmNlb2YgaikpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBvZiAnIithKyInIGlzIGluIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCAhIik7ImFycmF5YnVmZmVyIj09PWYmJihiPWQudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGIpKX12YXIgZz1uZXcgcihhLGIsYyk7cmV0dXJuIHRoaXMuZmlsZXNbYV09ZyxnfSx3PWZ1bmN0aW9uKGEpeyIvIj09YS5zbGljZSgtMSkmJihhPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkpO3ZhciBiPWEubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gYj4wP2Euc3Vic3RyaW5nKDAsYik6IiJ9LHg9ZnVuY3Rpb24oYSl7cmV0dXJuIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYX0seT1mdW5jdGlvbihhLGIpe3JldHVybiBiPSJ1bmRlZmluZWQiIT10eXBlb2YgYj9iOiExLGE9eChhKSx0aGlzLmZpbGVzW2FdfHx2LmNhbGwodGhpcyxhLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOmJ9KSx0aGlzLmZpbGVzW2FdfSx6PWZ1bmN0aW9uKGEsYixjKXt2YXIgZixnPW5ldyBqO3JldHVybiBhLl9kYXRhIGluc3RhbmNlb2Ygaj8oZy51bmNvbXByZXNzZWRTaXplPWEuX2RhdGEudW5jb21wcmVzc2VkU2l6ZSxnLmNyYzMyPWEuX2RhdGEuY3JjMzIsMD09PWcudW5jb21wcmVzc2VkU2l6ZXx8YS5kaXI/KGI9aS5TVE9SRSxnLmNvbXByZXNzZWRDb250ZW50PSIiLGcuY3JjMzI9MCk6YS5fZGF0YS5jb21wcmVzc2lvbk1ldGhvZD09PWIubWFnaWM/Zy5jb21wcmVzc2VkQ29udGVudD1hLl9kYXRhLmdldENvbXByZXNzZWRDb250ZW50KCk6KGY9YS5fZGF0YS5nZXRDb250ZW50KCksZy5jb21wcmVzc2VkQ29udGVudD1iLmNvbXByZXNzKGQudHJhbnNmb3JtVG8oYi5jb21wcmVzc0lucHV0VHlwZSxmKSxjKSkpOihmPXAoYSksKCFmfHwwPT09Zi5sZW5ndGh8fGEuZGlyKSYmKGI9aS5TVE9SRSxmPSIiKSxnLnVuY29tcHJlc3NlZFNpemU9Zi5sZW5ndGgsZy5jcmMzMj1lKGYpLGcuY29tcHJlc3NlZENvbnRlbnQ9Yi5jb21wcmVzcyhkLnRyYW5zZm9ybVRvKGIuY29tcHJlc3NJbnB1dFR5cGUsZiksYykpLGcuY29tcHJlc3NlZFNpemU9Zy5jb21wcmVzc2VkQ29udGVudC5sZW5ndGgsZy5jb21wcmVzc2lvbk1ldGhvZD1iLm1hZ2ljLGd9LEE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hO3JldHVybiBhfHwoYz1iPzE2ODkzOjMzMjA0KSwoNjU1MzUmYyk8PDE2fSxCPWZ1bmN0aW9uKGEpe3JldHVybiA2MyYoYXx8MCl9LEM9ZnVuY3Rpb24oYSxiLGMsZyxoKXt2YXIgaSxqLGssbSxuPShjLmNvbXByZXNzZWRDb250ZW50LGQudHJhbnNmb3JtVG8oInN0cmluZyIsbC51dGY4ZW5jb2RlKGIubmFtZSkpKSxvPWIuY29tbWVudHx8IiIscD1kLnRyYW5zZm9ybVRvKCJzdHJpbmciLGwudXRmOGVuY29kZShvKSkscT1uLmxlbmd0aCE9PWIubmFtZS5sZW5ndGgscj1wLmxlbmd0aCE9PW8ubGVuZ3RoLHQ9Yi5vcHRpb25zLHU9IiIsdj0iIix3PSIiO2s9Yi5faW5pdGlhbE1ldGFkYXRhLmRpciE9PWIuZGlyP2IuZGlyOnQuZGlyLG09Yi5faW5pdGlhbE1ldGFkYXRhLmRhdGUhPT1iLmRhdGU/Yi5kYXRlOnQuZGF0ZTt2YXIgeD0wLHk9MDtrJiYoeHw9MTYpLCJVTklYIj09PWg/KHk9Nzk4LHh8PUEoYi51bml4UGVybWlzc2lvbnMsaykpOih5PTIwLHh8PUIoYi5kb3NQZXJtaXNzaW9ucyxrKSksaT1tLmdldEhvdXJzKCksaTw8PTYsaXw9bS5nZXRNaW51dGVzKCksaTw8PTUsaXw9bS5nZXRTZWNvbmRzKCkvMixqPW0uZ2V0RnVsbFllYXIoKS0xOTgwLGo8PD00LGp8PW0uZ2V0TW9udGgoKSsxLGo8PD01LGp8PW0uZ2V0RGF0ZSgpLHEmJih2PXMoMSwxKStzKGUobiksNCkrbix1Kz0idXAiK3Modi5sZW5ndGgsMikrdiksciYmKHc9cygxLDEpK3ModGhpcy5jcmMzMihwKSw0KStwLHUrPSJ1YyIrcyh3Lmxlbmd0aCwyKSt3KTt2YXIgej0iIjt6Kz0iXG5ceDAwIix6Kz1xfHxyPyJceDAwXGIiOiJceDAwXHgwMCIseis9Yy5jb21wcmVzc2lvbk1ldGhvZCx6Kz1zKGksMikseis9cyhqLDIpLHorPXMoYy5jcmMzMiw0KSx6Kz1zKGMuY29tcHJlc3NlZFNpemUsNCkseis9cyhjLnVuY29tcHJlc3NlZFNpemUsNCkseis9cyhuLmxlbmd0aCwyKSx6Kz1zKHUubGVuZ3RoLDIpO3ZhciBDPWYuTE9DQUxfRklMRV9IRUFERVIreituK3UsRD1mLkNFTlRSQUxfRklMRV9IRUFERVIrcyh5LDIpK3orcyhwLmxlbmd0aCwyKSsiXHgwMFx4MDBceDAwXHgwMCIrcyh4LDQpK3MoZyw0KStuK3UrcDtyZXR1cm57ZmlsZVJlY29yZDpDLGRpclJlY29yZDpELGNvbXByZXNzZWRPYmplY3Q6Y319LEQ9e2xvYWQ6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkxvYWQgbWV0aG9kIGlzIG5vdCBkZWZpbmVkLiBJcyB0aGUgZmlsZSBqc3ppcC1sb2FkLmpzIGluY2x1ZGVkID8iKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGY9W107Zm9yKGIgaW4gdGhpcy5maWxlcyl0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGIpJiYoZD10aGlzLmZpbGVzW2JdLGU9bmV3IHIoZC5uYW1lLGQuX2RhdGEsdChkLm9wdGlvbnMpKSxjPWIuc2xpY2UodGhpcy5yb290Lmxlbmd0aCxiLmxlbmd0aCksYi5zbGljZSgwLHRoaXMucm9vdC5sZW5ndGgpPT09dGhpcy5yb290JiZhKGMsZSkmJmYucHVzaChlKSk7cmV0dXJuIGZ9LGZpbGU6ZnVuY3Rpb24oYSxiLGMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihkLmlzUmVnRXhwKGEpKXt2YXIgZT1hO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihhLGIpe3JldHVybiFiLmRpciYmZS50ZXN0KGEpfSl9cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGIsYyl7cmV0dXJuIWMuZGlyJiZiPT09YX0pWzBdfHxudWxsfXJldHVybiBhPXRoaXMucm9vdCthLHYuY2FsbCh0aGlzLGEsYixjKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIHRoaXM7aWYoZC5pc1JlZ0V4cChhKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5kaXImJmEudGVzdChiKX0pO3ZhciBiPXRoaXMucm9vdCthLGM9eS5jYWxsKHRoaXMsYiksZT10aGlzLmNsb25lKCk7cmV0dXJuIGUucm9vdD1jLm5hbWUsZX0scmVtb3ZlOmZ1bmN0aW9uKGEpe2E9dGhpcy5yb290K2E7dmFyIGI9dGhpcy5maWxlc1thXTtpZihifHwoIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYj10aGlzLmZpbGVzW2FdKSxiJiYhYi5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbYV07ZWxzZSBmb3IodmFyIGM9dGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5uYW1lLnNsaWNlKDAsYS5sZW5ndGgpPT09YX0pLGQ9MDtkPGMubGVuZ3RoO2QrKylkZWxldGUgdGhpcy5maWxlc1tjW2RdLm5hbWVdO3JldHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbihhKXthPXQoYXx8e30se2Jhc2U2NDohMCxjb21wcmVzc2lvbjoiU1RPUkUiLGNvbXByZXNzaW9uT3B0aW9uczpudWxsLHR5cGU6ImJhc2U2NCIscGxhdGZvcm06IkRPUyIsY29tbWVudDpudWxsLG1pbWVUeXBlOiJhcHBsaWNhdGlvbi96aXAifSksZC5jaGVja1N1cHBvcnQoYS50eXBlKSwoImRhcndpbiI9PT1hLnBsYXRmb3JtfHwiZnJlZWJzZCI9PT1hLnBsYXRmb3JtfHwibGludXgiPT09YS5wbGF0Zm9ybXx8InN1bm9zIj09PWEucGxhdGZvcm0pJiYoYS5wbGF0Zm9ybT0iVU5JWCIpLCJ3aW4zMiI9PT1hLnBsYXRmb3JtJiYoYS5wbGF0Zm9ybT0iRE9TIik7dmFyIGIsYyxlPVtdLGc9MCxqPTAsaz1kLnRyYW5zZm9ybVRvKCJzdHJpbmciLHRoaXMudXRmOGVuY29kZShhLmNvbW1lbnR8fHRoaXMuY29tbWVudHx8IiIpKTtmb3IodmFyIGwgaW4gdGhpcy5maWxlcylpZih0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGwpKXt2YXIgbz10aGlzLmZpbGVzW2xdLHA9by5vcHRpb25zLmNvbXByZXNzaW9ufHxhLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkscT1pW3BdO2lmKCFxKXRocm93IG5ldyBFcnJvcihwKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTt2YXIgcj1vLm9wdGlvbnMuY29tcHJlc3Npb25PcHRpb25zfHxhLmNvbXByZXNzaW9uT3B0aW9uc3x8e30sdT16LmNhbGwodGhpcyxvLHEsciksdj1DLmNhbGwodGhpcyxsLG8sdSxnLGEucGxhdGZvcm0pO2crPXYuZmlsZVJlY29yZC5sZW5ndGgrdS5jb21wcmVzc2VkU2l6ZSxqKz12LmRpclJlY29yZC5sZW5ndGgsZS5wdXNoKHYpfXZhciB3PSIiO3c9Zi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlx4MDBceDAwXHgwMFx4MDAiK3MoZS5sZW5ndGgsMikrcyhlLmxlbmd0aCwyKStzKGosNCkrcyhnLDQpK3Moay5sZW5ndGgsMikrazt2YXIgeD1hLnR5cGUudG9Mb3dlckNhc2UoKTtmb3IoYj0idWludDhhcnJheSI9PT14fHwiYXJyYXlidWZmZXIiPT09eHx8ImJsb2IiPT09eHx8Im5vZGVidWZmZXIiPT09eD9uZXcgbihnK2ordy5sZW5ndGgpOm5ldyBtKGcrait3Lmxlbmd0aCksYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZmlsZVJlY29yZCksYi5hcHBlbmQoZVtjXS5jb21wcmVzc2VkT2JqZWN0LmNvbXByZXNzZWRDb250ZW50KTtmb3IoYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZGlyUmVjb3JkKTtiLmFwcGVuZCh3KTt2YXIgeT1iLmZpbmFsaXplKCk7c3dpdGNoKGEudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlInVpbnQ4YXJyYXkiOmNhc2UiYXJyYXlidWZmZXIiOmNhc2Uibm9kZWJ1ZmZlciI6cmV0dXJuIGQudHJhbnNmb3JtVG8oYS50eXBlLnRvTG93ZXJDYXNlKCkseSk7Y2FzZSJibG9iIjpyZXR1cm4gZC5hcnJheUJ1ZmZlcjJCbG9iKGQudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIix5KSxhLm1pbWVUeXBlKTtjYXNlImJhc2U2NCI6cmV0dXJuIGEuYmFzZTY0P2guZW5jb2RlKHkpOnk7ZGVmYXVsdDpyZXR1cm4geX19LGNyYzMyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGUoYSxiKX0sdXRmOGVuY29kZTpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIixsLnV0ZjhlbmNvZGUoYSkpfSx1dGY4ZGVjb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBsLnV0ZjhkZWNvZGUoYSl9fTtiLmV4cG9ydHM9RH0seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9kZWZhdWx0cyI6NiwiLi9ub2RlQnVmZmVyIjoxMSwiLi9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1dyaXRlciI6MTYsIi4vc3VwcG9ydCI6MTcsIi4vdWludDhBcnJheVdyaXRlciI6MTksIi4vdXRmOCI6MjAsIi4vdXRpbHMiOjIxfV0sMTQ6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7Yy5MT0NBTF9GSUxFX0hFQURFUj0iUEsDBCIsYy5DRU5UUkFMX0ZJTEVfSEVBREVSPSJQSwECIixjLkNFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsFBiIsYy5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SPSJQSwYHIixjLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsGBiIsYy5EQVRBX0RFU0NSSVBUT1I9IlBLB1xiIn0se31dLDE1OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7dGhpcy5kYXRhPWEsYnx8KHRoaXMuZGF0YT1lLnN0cmluZzJiaW5hcnkodGhpcy5kYXRhKSksdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9dmFyIGQ9YSgiLi9kYXRhUmVhZGVyIiksZT1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdChhKX0sYy5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YS5sYXN0SW5kZXhPZihhKX0sYy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaGVja09mZnNldChhKTt2YXIgYj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1jfSx7Ii4vZGF0YVJlYWRlciI6NSwiLi91dGlscyI6MjF9XSwxNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi91dGlscyIpLGQ9ZnVuY3Rpb24oKXt0aGlzLmRhdGE9W119O2QucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oYSl7YT1jLnRyYW5zZm9ybVRvKCJzdHJpbmciLGEpLHRoaXMuZGF0YS5wdXNoKGEpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEuam9pbigiIil9fSxiLmV4cG9ydHM9ZH0seyIuL3V0aWxzIjoyMX1dLDE3OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtpZihjLmJhc2U2ND0hMCxjLmFycmF5PSEwLGMuc3RyaW5nPSEwLGMuYXJyYXlidWZmZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5LGMubm9kZWJ1ZmZlcj0idW5kZWZpbmVkIiE9dHlwZW9mIGEsYy51aW50OGFycmF5PSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSwidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyKWMuYmxvYj0hMTtlbHNle3ZhciBiPW5ldyBBcnJheUJ1ZmZlcigwKTt0cnl7Yy5ibG9iPTA9PT1uZXcgQmxvYihbYl0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KS5zaXplfWNhdGNoKGQpe3RyeXt2YXIgZT13aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcixmPW5ldyBlO2YuYXBwZW5kKGIpLGMuYmxvYj0wPT09Zi5nZXRCbG9iKCJhcHBsaWNhdGlvbi96aXAiKS5zaXplfWNhdGNoKGQpe2MuYmxvYj0hMX19fX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcj9CdWZmZXI6dm9pZCAwKX0se31dLDE4OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEpe2EmJih0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MCl9dmFyIGQ9YSgiLi9kYXRhUmVhZGVyIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGFbYV19LGMucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLmNoYXJDb2RlQXQoMCksYz1hLmNoYXJDb2RlQXQoMSksZD1hLmNoYXJDb2RlQXQoMiksZT1hLmNoYXJDb2RlQXQoMyksZj10aGlzLmxlbmd0aC00O2Y+PTA7LS1mKWlmKHRoaXMuZGF0YVtmXT09PWImJnRoaXMuZGF0YVtmKzFdPT09YyYmdGhpcy5kYXRhW2YrMl09PT1kJiZ0aGlzLmRhdGFbZiszXT09PWUpcmV0dXJuIGY7cmV0dXJuLTF9LGMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hlY2tPZmZzZXQoYSksMD09PWEpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3ZhciBiPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi9kYXRhUmVhZGVyIjo1fV0sMTk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4vdXRpbHMiKSxkPWZ1bmN0aW9uKGEpe3RoaXMuZGF0YT1uZXcgVWludDhBcnJheShhKSx0aGlzLmluZGV4PTB9O2QucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oYSl7MCE9PWEubGVuZ3RoJiYoYT1jLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSx0aGlzLmRhdGEuc2V0KGEsdGhpcy5pbmRleCksdGhpcy5pbmRleCs9YS5sZW5ndGgpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9fSxiLmV4cG9ydHM9ZH0seyIuL3V0aWxzIjoyMX1dLDIwOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Zvcih2YXIgZD1hKCIuL3V0aWxzIiksZT1hKCIuL3N1cHBvcnQiKSxmPWEoIi4vbm9kZUJ1ZmZlciIpLGc9bmV3IEFycmF5KDI1NiksaD0wOzI1Nj5oO2grKylnW2hdPWg+PTI1Mj82Omg+PTI0OD81Omg+PTI0MD80Omg+PTIyND8zOmg+PTE5Mj8yOjE7Z1syNTRdPWdbMjU0XT0xO3ZhciBpPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxmLGcsaD1hLmxlbmd0aCxpPTA7Zm9yKGY9MDtoPmY7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLGkrPTEyOD5jPzE6MjA0OD5jPzI6NjU1MzY+Yz8zOjQ7Zm9yKGI9ZS51aW50OGFycmF5P25ldyBVaW50OEFycmF5KGkpOm5ldyBBcnJheShpKSxnPTAsZj0wO2k+ZztmKyspYz1hLmNoYXJDb2RlQXQoZiksNTUyOTY9PT0oNjQ1MTImYykmJmg+ZisxJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksMTI4PmM/YltnKytdPWM6MjA0OD5jPyhiW2crK109MTkyfGM+Pj42LGJbZysrXT0xMjh8NjMmYyk6NjU1MzY+Yz8oYltnKytdPTIyNHxjPj4+MTIsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpOihiW2crK109MjQwfGM+Pj4xOCxiW2crK109MTI4fGM+Pj4xMiY2MyxiW2crK109MTI4fGM+Pj42JjYzLGJbZysrXT0xMjh8NjMmYyk7cmV0dXJuIGJ9LGo9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiAwPmM/YjowPT09Yz9iOmMrZ1thW2NdXT5iP2M6Yn0saz1mdW5jdGlvbihhKXt2YXIgYixjLGUsZixoPWEubGVuZ3RoLGk9bmV3IEFycmF5KDIqaCk7Zm9yKGM9MCxiPTA7aD5iOylpZihlPWFbYisrXSwxMjg+ZSlpW2MrK109ZTtlbHNlIGlmKGY9Z1tlXSxmPjQpaVtjKytdPTY1NTMzLGIrPWYtMTtlbHNle2ZvcihlJj0yPT09Zj8zMTozPT09Zj8xNTo3O2Y+MSYmaD5iOyllPWU8PDZ8NjMmYVtiKytdLGYtLTtmPjE/aVtjKytdPTY1NTMzOjY1NTM2PmU/aVtjKytdPWU6KGUtPTY1NTM2LGlbYysrXT01NTI5NnxlPj4xMCYxMDIzLGlbYysrXT01NjMyMHwxMDIzJmUpfXJldHVybiBpLmxlbmd0aCE9PWMmJihpLnN1YmFycmF5P2k9aS5zdWJhcnJheSgwLGMpOmkubGVuZ3RoPWMpLGQuYXBwbHlGcm9tQ2hhckNvZGUoaSl9O2MudXRmOGVuY29kZT1mdW5jdGlvbihhKXtyZXR1cm4gZS5ub2RlYnVmZmVyP2YoYSwidXRmLTgiKTppKGEpfSxjLnV0ZjhkZWNvZGU9ZnVuY3Rpb24oYSl7aWYoZS5ub2RlYnVmZmVyKXJldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKS50b1N0cmluZygidXRmLTgiKTthPWQudHJhbnNmb3JtVG8oZS51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLGEpO2Zvcih2YXIgYj1bXSxjPTAsZj1hLmxlbmd0aCxnPTY1NTM2O2Y+Yzspe3ZhciBoPWooYSxNYXRoLm1pbihjK2csZikpO2IucHVzaChlLnVpbnQ4YXJyYXk/ayhhLnN1YmFycmF5KGMsaCkpOmsoYS5zbGljZShjLGgpKSksYz1ofXJldHVybiBiLmpvaW4oIiIpfX0seyIuL25vZGVCdWZmZXIiOjExLCIuL3N1cHBvcnQiOjE3LCIuL3V0aWxzIjoyMX1dLDIxOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gZShhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7KytjKWJbY109MjU1JmEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn1mdW5jdGlvbiBmKGEpe3ZhciBiPTY1NTM2LGQ9W10sZT1hLmxlbmd0aCxmPWMuZ2V0VHlwZU9mKGEpLGc9MCxoPSEwO3RyeXtzd2l0Y2goZil7Y2FzZSJ1aW50OGFycmF5IjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMCkpO2JyZWFrO2Nhc2Uibm9kZWJ1ZmZlciI6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGooMCkpfX1jYXRjaChpKXtoPSExfWlmKCFoKXtmb3IodmFyIGs9IiIsbD0wO2w8YS5sZW5ndGg7bCsrKWsrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVtsXSk7cmV0dXJuIGt9Zm9yKDtlPmcmJmI+MTspdHJ5e2QucHVzaCgiYXJyYXkiPT09Znx8Im5vZGVidWZmZXIiPT09Zj9TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zbGljZShnLE1hdGgubWluKGcrYixlKSkpOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLnN1YmFycmF5KGcsTWF0aC5taW4oZytiLGUpKSkpLGcrPWJ9Y2F0Y2goaSl7Yj1NYXRoLmZsb29yKGIvMil9cmV0dXJuIGQuam9pbigiIil9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YVtjXTtyZXR1cm4gYn12YXIgaD1hKCIuL3N1cHBvcnQiKSxpPWEoIi4vY29tcHJlc3Npb25zIiksaj1hKCIuL25vZGVCdWZmZXIiKTtjLnN0cmluZzJiaW5hcnk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZhLmNoYXJDb2RlQXQoYykpO3JldHVybiBifSxjLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oYSxiKXtjLmNoZWNrU3VwcG9ydCgiYmxvYiIpLGI9Ynx8ImFwcGxpY2F0aW9uL3ppcCI7dHJ5e3JldHVybiBuZXcgQmxvYihbYV0se3R5cGU6Yn0pfWNhdGNoKGQpe3RyeXt2YXIgZT13aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcixmPW5ldyBlO3JldHVybiBmLmFwcGVuZChhKSxmLmdldEJsb2IoYil9Y2F0Y2goZCl7dGhyb3cgbmV3IEVycm9yKCJCdWcgOiBjYW4ndCBjb25zdHJ1Y3QgdGhlIEJsb2IuIil9fX0sYy5hcHBseUZyb21DaGFyQ29kZT1mO3ZhciBrPXt9O2suc3RyaW5nPXtzdHJpbmc6ZCxhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5zdHJpbmcudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEsaihhLmxlbmd0aCkpfX0say5hcnJheT17c3RyaW5nOmYsYXJyYXk6ZCxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihhKX19LGsuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZihuZXcgVWludDhBcnJheShhKSl9LGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKG5ldyBVaW50OEFycmF5KGEpLG5ldyBBcnJheShhLmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZmZXI6ZCx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihuZXcgVWludDhBcnJheShhKSl9fSxrLnVpbnQ4YXJyYXk9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLmJ1ZmZlcn0sdWludDhhcnJheTpkLG5vZGVidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGooYSl9fSxrLm5vZGVidWZmZXI9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrLm5vZGVidWZmZXIudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmR9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtpZihifHwoYj0iIiksIWEpcmV0dXJuIGI7Yy5jaGVja1N1cHBvcnQoYSk7dmFyIGQ9Yy5nZXRUeXBlT2YoYiksZT1rW2RdW2FdKGIpO3JldHVybiBlfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGE/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT8iYXJyYXkiOmgubm9kZWJ1ZmZlciYmai50ZXN0KGEpPyJub2RlYnVmZmVyIjpoLnVpbnQ4YXJyYXkmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5PyJ1aW50OGFycmF5IjpoLmFycmF5YnVmZmVyJiZhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ImFycmF5YnVmZmVyIjp2b2lkIDB9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3ZhciBiPWhbYS50b0xvd2VyQ2FzZSgpXTtpZighYil0aHJvdyBuZXcgRXJyb3IoYSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyIil9LGMuTUFYX1ZBTFVFXzE2QklUUz02NTUzNSxjLk1BWF9WQUxVRV8zMkJJVFM9LTEsYy5wcmV0dHk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPSIiO2ZvcihjPTA7YzwoYXx8IiIpLmxlbmd0aDtjKyspYj1hLmNoYXJDb2RlQXQoYyksZCs9IlxceCIrKDE2PmI/IjAiOiIiKStiLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBkfSxjLmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gaSlpZihpLmhhc093blByb3BlcnR5KGIpJiZpW2JdLm1hZ2ljPT09YSlyZXR1cm4gaVtiXTtyZXR1cm4gbnVsbH0sYy5pc1JlZ0V4cD1mdW5jdGlvbihhKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX19LHsiLi9jb21wcmVzc2lvbnMiOjMsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTd9XSwyMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1iLGEmJnRoaXMubG9hZChhKX12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi9ub2RlQnVmZmVyUmVhZGVyIiksZj1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKSxnPWEoIi4vdXRpbHMiKSxoPWEoIi4vc2lnbmF0dXJlIiksaT1hKCIuL3ppcEVudHJ5Iiksaj1hKCIuL3N1cHBvcnQiKSxrPWEoIi4vb2JqZWN0Iik7Yy5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk7aWYoYiE9PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZyA6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK2cucHJldHR5KGIpKyIsIGV4cGVjdGVkICIrZy5wcmV0dHkoYSkrIikiKX0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLnppcENvbW1lbnQ9dGhpcy5yZWFkZXIucmVhZFN0cmluZyh0aGlzLnppcENvbW1lbnRMZW5ndGgpLHRoaXMuemlwQ29tbWVudD1rLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgYSxiLGMsZD10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00NCxlPTA7ZD5lOylhPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksYj10aGlzLnJlYWRlci5yZWFkSW50KDQpLGM9dGhpcy5yZWFkZXIucmVhZFN0cmluZyhiKSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbYV09e2lkOmEsbGVuZ3RoOmIsdmFsdWU6Y319LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rpb24oKXt2YXIgYSxiO2ZvcihhPTA7YTx0aGlzLmZpbGVzLmxlbmd0aDthKyspYj10aGlzLmZpbGVzW2FdLHRoaXMucmVhZGVyLnNldEluZGV4KGIubG9jYWxIZWFkZXJPZmZzZXQpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5MT0NBTF9GSUxFX0hFQURFUiksYi5yZWFkTG9jYWxQYXJ0KHRoaXMucmVhZGVyKSxiLmhhbmRsZVVURjgoKSxiLnByb2Nlc3NBdHRyaWJ1dGVzKCl9LHJlYWRDZW50cmFsRGlyOmZ1bmN0aW9uKCl7dmFyIGE7Zm9yKHRoaXMucmVhZGVyLnNldEluZGV4KHRoaXMuY2VudHJhbERpck9mZnNldCk7dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KT09PWguQ0VOVFJBTF9GSUxFX0hFQURFUjspYT1uZXcgaSh7emlwNjQ6dGhpcy56aXA2NH0sdGhpcy5sb2FkT3B0aW9ucyksYS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChhKX0scmVhZEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGguQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKTtpZigtMT09PWEpe3ZhciBiPSEwO3RyeXt0aGlzLnJlYWRlci5zZXRJbmRleCgwKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguTE9DQUxfRklMRV9IRUFERVIpLGI9ITF9Y2F0Y2goYyl7fXRocm93IG5ldyBFcnJvcihiPyJDYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSA6IGlzIHRoaXMgYSB6aXAgZmlsZSA/IElmIGl0IGlzLCBzZWUgaHR0cDovL3N0dWsuZ2l0aHViLmlvL2pzemlwL2RvY3VtZW50YXRpb24vaG93dG8vcmVhZF96aXAuaHRtbCI6IkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpfWlmKHRoaXMucmVhZGVyLnNldEluZGV4KGEpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PWcuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09Zy5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLGE9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSwtMT09PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTt0aGlzLnJlYWRlci5zZXRJbmRleChhKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSx0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oYSl7dmFyIGI9Zy5nZXRUeXBlT2YoYSk7dGhpcy5yZWFkZXI9InN0cmluZyIhPT1ifHxqLnVpbnQ4YXJyYXk/Im5vZGVidWZmZXIiPT09Yj9uZXcgZShhKTpuZXcgZihnLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSk6bmV3IGQoYSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVuY3Rpb24oYSl7dGhpcy5wcmVwYXJlUmVhZGVyKGEpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxiLmV4cG9ydHM9Y30seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMub3B0aW9ucz1hLHRoaXMubG9hZE9wdGlvbnM9Yn12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi91dGlscyIpLGY9YSgiLi9jb21wcmVzc2VkT2JqZWN0IiksZz1hKCIuL29iamVjdCIpLGg9MCxpPTM7Yy5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLmJpdEZsYWcpfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJuIDIwNDg9PT0oMjA0OCZ0aGlzLmJpdEZsYWcpfSxwcmVwYXJlQ29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBkPWEuaW5kZXg7YS5zZXRJbmRleChiKTt2YXIgZT1hLnJlYWREYXRhKGMpO3JldHVybiBhLnNldEluZGV4KGQpLGV9fSxwcmVwYXJlQ29udGVudDpmdW5jdGlvbihhLGIsYyxkLGYpe3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWUudHJhbnNmb3JtVG8oZC51bmNvbXByZXNzSW5wdXRUeXBlLHRoaXMuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKSksYj1kLnVuY29tcHJlc3MoYSk7aWYoYi5sZW5ndGghPT1mKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiBifX0scmVhZExvY2FsUGFydDpmdW5jdGlvbihhKXt2YXIgYixjO2lmKGEuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD1hLnJlYWRJbnQoMiksYz1hLnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT1hLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksYS5za2lwKGMpLC0xPT10aGlzLmNvbXByZXNzZWRTaXplfHwtMT09dGhpcy51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcigiQnVnIG9yIGNvcnJ1cHRlZCB6aXAgOiBkaWRuJ3QgZ2V0IGVub3VnaCBpbmZvcm1hdGlvbnMgZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnkgKGNvbXByZXNzZWRTaXplID09IC0xIHx8IHVuY29tcHJlc3NlZFNpemUgPT0gLTEpIik7aWYoYj1lLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSxudWxsPT09Yil0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjb21wcmVzc2lvbiAiK2UucHJldHR5KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKyIgdW5rbm93biAoaW5uZXIgZmlsZSA6ICIrdGhpcy5maWxlTmFtZSsiKSIpO2lmKHRoaXMuZGVjb21wcmVzc2VkPW5ldyBmLHRoaXMuZGVjb21wcmVzc2VkLmNvbXByZXNzZWRTaXplPXRoaXMuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQudW5jb21wcmVzc2VkU2l6ZT10aGlzLnVuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQuY3JjMzI9dGhpcy5jcmMzMix0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2lvbk1ldGhvZD10aGlzLmNvbXByZXNzaW9uTWV0aG9kLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbXByZXNzZWRDb250ZW50PXRoaXMucHJlcGFyZUNvbXByZXNzZWRDb250ZW50KGEsYS5pbmRleCx0aGlzLmNvbXByZXNzZWRTaXplLGIpLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbnRlbnQ9dGhpcy5wcmVwYXJlQ29udGVudChhLGEuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxiLHRoaXMudW5jb21wcmVzc2VkU2l6ZSksdGhpcy5sb2FkT3B0aW9ucy5jaGVja0NSQzMyJiYodGhpcy5kZWNvbXByZXNzZWQ9ZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50KCkpLGcuY3JjMzIodGhpcy5kZWNvbXByZXNzZWQpIT09dGhpcy5jcmMzMikpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogQ1JDMzIgbWlzbWF0Y2giKX0scmVhZENlbnRyYWxQYXJ0OmZ1bmN0aW9uKGEpe2lmKHRoaXMudmVyc2lvbk1hZGVCeT1hLnJlYWRJbnQoMiksdGhpcy52ZXJzaW9uTmVlZGVkPWEucmVhZEludCgyKSx0aGlzLmJpdEZsYWc9YS5yZWFkSW50KDIpLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9YS5yZWFkU3RyaW5nKDIpLHRoaXMuZGF0ZT1hLnJlYWREYXRlKCksdGhpcy5jcmMzMj1hLnJlYWRJbnQoNCksdGhpcy5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoNCksdGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg0KSx0aGlzLmZpbGVOYW1lTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmV4dHJhRmllbGRzTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmZpbGVDb21tZW50TGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmRpc2tOdW1iZXJTdGFydD1hLnJlYWRJbnQoMiksdGhpcy5pbnRlcm5hbEZpbGVBdHRyaWJ1dGVzPWEucmVhZEludCgyKSx0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM9YS5yZWFkSW50KDQpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9YS5yZWFkSW50KDQpLHRoaXMuaXNFbmNyeXB0ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRlZCB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLmZpbGVOYW1lPWEucmVhZFN0cmluZyh0aGlzLmZpbGVOYW1lTGVuZ3RoKSx0aGlzLnJlYWRFeHRyYUZpZWxkcyhhKSx0aGlzLnBhcnNlWklQNjRFeHRyYUZpZWxkKGEpLHRoaXMuZmlsZUNvbW1lbnQ9YS5yZWFkU3RyaW5nKHRoaXMuZmlsZUNvbW1lbnRMZW5ndGgpfSxwcm9jZXNzQXR0cmlidXRlczpmdW5jdGlvbigpe3RoaXMudW5peFBlcm1pc3Npb25zPW51bGwsdGhpcy5kb3NQZXJtaXNzaW9ucz1udWxsO3ZhciBhPXRoaXMudmVyc2lvbk1hZGVCeT4+ODt0aGlzLmRpcj0xNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM/ITA6ITEsYT09PWgmJih0aGlzLmRvc1Blcm1pc3Npb25zPTYzJnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksYT09PWkmJih0aGlzLnVuaXhQZXJtaXNzaW9ucz10aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM+PjE2JjY1NTM1KSx0aGlzLmRpcnx8Ii8iIT09dGhpcy5maWxlTmFtZS5zbGljZSgtMSl8fCh0aGlzLmRpcj0hMCl9LHBhcnNlWklQNjRFeHRyYUZpZWxkOmZ1bmN0aW9uKCl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIGE9bmV3IGQodGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PWUuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3NlZFNpemU9YS5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1hLnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9YS5yZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1hLmluZGV4O2Zvcih0aGlzLmV4dHJhRmllbGRzPXRoaXMuZXh0cmFGaWVsZHN8fHt9O2EuaW5kZXg8ZSt0aGlzLmV4dHJhRmllbGRzTGVuZ3RoOyliPWEucmVhZEludCgyKSxjPWEucmVhZEludCgyKSxkPWEucmVhZFN0cmluZyhjKSx0aGlzLmV4dHJhRmllbGRzW2JdPXtpZDpiLGxlbmd0aDpjLHZhbHVlOmR9fSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7aWYodGhpcy51c2VVVEY4KCkpdGhpcy5maWxlTmFtZT1nLnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29tbWVudD1nLnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7ZWxzZXt2YXIgYT10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtudWxsIT09YSYmKHRoaXMuZmlsZU5hbWU9YSk7dmFyIGI9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7bnVsbCE9PWImJih0aGlzLmZpbGVDb21tZW50PWIpfX0sZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVOYW1lKSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpCn1yZXR1cm4gbnVsbH0sZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjU0NjFdO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVDb21tZW50KSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpfXJldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL29iamVjdCI6MTMsIi4vc3RyaW5nUmVhZGVyIjoxNSwiLi91dGlscyI6MjF9XSwyNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9saWIvdXRpbHMvY29tbW9uIikuYXNzaWduLGQ9YSgiLi9saWIvZGVmbGF0ZSIpLGU9YSgiLi9saWIvaW5mbGF0ZSIpLGY9YSgiLi9saWIvemxpYi9jb25zdGFudHMiKSxnPXt9O2MoZyxkLGUsZiksYi5leHBvcnRzPWd9LHsiLi9saWIvZGVmbGF0ZSI6MjUsIi4vbGliL2luZmxhdGUiOjI2LCIuL2xpYi91dGlscy9jb21tb24iOjI3LCIuL2xpYi96bGliL2NvbnN0YW50cyI6MzB9XSwyNTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7dmFyIGM9bmV3IHMoYik7aWYoYy5wdXNoKGEsITApLGMuZXJyKXRocm93IGMubXNnO3JldHVybiBjLnJlc3VsdH1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGI9Ynx8e30sYi5yYXc9ITAsZChhLGIpfWZ1bmN0aW9uIGYoYSxiKXtyZXR1cm4gYj1ifHx7fSxiLmd6aXA9ITAsZChhLGIpfXZhciBnPWEoIi4vemxpYi9kZWZsYXRlLmpzIiksaD1hKCIuL3V0aWxzL2NvbW1vbiIpLGk9YSgiLi91dGlscy9zdHJpbmdzIiksaj1hKCIuL3psaWIvbWVzc2FnZXMiKSxrPWEoIi4vemxpYi96c3RyZWFtIiksbD0wLG09NCxuPTAsbz0xLHA9LTEscT0wLHI9OCxzPWZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucz1oLmFzc2lnbih7bGV2ZWw6cCxtZXRob2Q6cixjaHVua1NpemU6MTYzODQsd2luZG93Qml0czoxNSxtZW1MZXZlbDo4LHN0cmF0ZWd5OnEsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIud2luZG93Qml0cz4wP2Iud2luZG93Qml0cz0tYi53aW5kb3dCaXRzOmIuZ3ppcCYmYi53aW5kb3dCaXRzPjAmJmIud2luZG93Qml0czwxNiYmKGIud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGssdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWcuZGVmbGF0ZUluaXQyKHRoaXMuc3RybSxiLmxldmVsLGIubWV0aG9kLGIud2luZG93Qml0cyxiLm1lbUxldmVsLGIuc3RyYXRlZ3kpO2lmKGMhPT1uKXRocm93IG5ldyBFcnJvcihqW2NdKTtiLmhlYWRlciYmZy5kZWZsYXRlU2V0SGVhZGVyKHRoaXMuc3RybSxiLmhlYWRlcil9O3MucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9dGhpcy5zdHJtLGY9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO2Q9Yj09PX5+Yj9iOmI9PT0hMD9tOmwsZS5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIGE/aS5zdHJpbmcyYnVmKGEpOmEsZS5uZXh0X2luPTAsZS5hdmFpbF9pbj1lLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09ZS5hdmFpbF9vdXQmJihlLm91dHB1dD1uZXcgaC5CdWY4KGYpLGUubmV4dF9vdXQ9MCxlLmF2YWlsX291dD1mKSxjPWcuZGVmbGF0ZShlLGQpLGMhPT1vJiZjIT09bilyZXR1cm4gdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLCExOygwPT09ZS5hdmFpbF9vdXR8fDA9PT1lLmF2YWlsX2luJiZkPT09bSkmJnRoaXMub25EYXRhKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP2kuYnVmMmJpbnN0cmluZyhoLnNocmlua0J1ZihlLm91dHB1dCxlLm5leHRfb3V0KSk6aC5zaHJpbmtCdWYoZS5vdXRwdXQsZS5uZXh0X291dCkpfXdoaWxlKChlLmF2YWlsX2luPjB8fDA9PT1lLmF2YWlsX291dCkmJmMhPT1vKTtyZXR1cm4gZD09PW0/KGM9Zy5kZWZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLGM9PT1uKTohMH0scy5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2goYSl9LHMucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1uJiYodGhpcy5yZXN1bHQ9InN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5jaHVua3Muam9pbigiIik6aC5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9YSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxjLkRlZmxhdGU9cyxjLmRlZmxhdGU9ZCxjLmRlZmxhdGVSYXc9ZSxjLmd6aXA9Zn0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9kZWZsYXRlLmpzIjozMiwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjY6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe3ZhciBjPW5ldyBtKGIpO2lmKGMucHVzaChhLCEwKSxjLmVycil0aHJvdyBjLm1zZztyZXR1cm4gYy5yZXN1bHR9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBiPWJ8fHt9LGIucmF3PSEwLGQoYSxiKX12YXIgZj1hKCIuL3psaWIvaW5mbGF0ZS5qcyIpLGc9YSgiLi91dGlscy9jb21tb24iKSxoPWEoIi4vdXRpbHMvc3RyaW5ncyIpLGk9YSgiLi96bGliL2NvbnN0YW50cyIpLGo9YSgiLi96bGliL21lc3NhZ2VzIiksaz1hKCIuL3psaWIvenN0cmVhbSIpLGw9YSgiLi96bGliL2d6aGVhZGVyIiksbT1mdW5jdGlvbihhKXt0aGlzLm9wdGlvbnM9Zy5hc3NpZ24oe2NodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjAsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2JiYoYi53aW5kb3dCaXRzPS1iLndpbmRvd0JpdHMsMD09PWIud2luZG93Qml0cyYmKGIud2luZG93Qml0cz0tMTUpKSwhKGIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2KXx8YSYmYS53aW5kb3dCaXRzfHwoYi53aW5kb3dCaXRzKz0zMiksYi53aW5kb3dCaXRzPjE1JiZiLndpbmRvd0JpdHM8NDgmJjA9PT0oMTUmYi53aW5kb3dCaXRzKSYmKGIud2luZG93Qml0c3w9MTUpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGssdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWYuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSxiLndpbmRvd0JpdHMpO2lmKGMhPT1pLlpfT0spdGhyb3cgbmV3IEVycm9yKGpbY10pO3RoaXMuaGVhZGVyPW5ldyBsLGYuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpfTttLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGosayxsPXRoaXMuc3RybSxtPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtkPWI9PT1+fmI/YjpiPT09ITA/aS5aX0ZJTklTSDppLlpfTk9fRkxVU0gsbC5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIGE/aC5iaW5zdHJpbmcyYnVmKGEpOmEsbC5uZXh0X2luPTAsbC5hdmFpbF9pbj1sLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09bC5hdmFpbF9vdXQmJihsLm91dHB1dD1uZXcgZy5CdWY4KG0pLGwubmV4dF9vdXQ9MCxsLmF2YWlsX291dD1tKSxjPWYuaW5mbGF0ZShsLGkuWl9OT19GTFVTSCksYyE9PWkuWl9TVFJFQU1fRU5EJiZjIT09aS5aX09LKXJldHVybiB0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsITE7bC5uZXh0X291dCYmKDA9PT1sLmF2YWlsX291dHx8Yz09PWkuWl9TVFJFQU1fRU5EfHwwPT09bC5hdmFpbF9pbiYmZD09PWkuWl9GSU5JU0gpJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KGU9aC51dGY4Ym9yZGVyKGwub3V0cHV0LGwubmV4dF9vdXQpLGo9bC5uZXh0X291dC1lLGs9aC5idWYyc3RyaW5nKGwub3V0cHV0LGUpLGwubmV4dF9vdXQ9aixsLmF2YWlsX291dD1tLWosaiYmZy5hcnJheVNldChsLm91dHB1dCxsLm91dHB1dCxlLGosMCksdGhpcy5vbkRhdGEoaykpOnRoaXMub25EYXRhKGcuc2hyaW5rQnVmKGwub3V0cHV0LGwubmV4dF9vdXQpKSl9d2hpbGUobC5hdmFpbF9pbj4wJiZjIT09aS5aX1NUUkVBTV9FTkQpO3JldHVybiBjPT09aS5aX1NUUkVBTV9FTkQmJihkPWkuWl9GSU5JU0gpLGQ9PT1pLlpfRklOSVNIPyhjPWYuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoYyksdGhpcy5lbmRlZD0hMCxjPT09aS5aX09LKTohMH0sbS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2goYSl9LG0ucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1pLlpfT0smJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpnLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1hLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LGMuSW5mbGF0ZT1tLGMuaW5mbGF0ZT1kLGMuaW5mbGF0ZVJhdz1lLGMudW5nemlwPWR9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvY29uc3RhbnRzIjozMCwiLi96bGliL2d6aGVhZGVyIjozMywiLi96bGliL2luZmxhdGUuanMiOjM1LCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgSW50MzJBcnJheTtjLmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2IubGVuZ3RoOyl7dmFyIGM9Yi5zaGlmdCgpO2lmKGMpe2lmKCJvYmplY3QiIT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKGMrIm11c3QgYmUgbm9uLW9iamVjdCIpO2Zvcih2YXIgZCBpbiBjKWMuaGFzT3duUHJvcGVydHkoZCkmJihhW2RdPWNbZF0pfX1yZXR1cm4gYX0sYy5zaHJpbmtCdWY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5sZW5ndGg9PT1iP2E6YS5zdWJhcnJheT9hLnN1YmFycmF5KDAsYik6KGEubGVuZ3RoPWIsYSl9O3ZhciBlPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGIuc3ViYXJyYXkmJmEuc3ViYXJyYXkpcmV0dXJuIHZvaWQgYS5zZXQoYi5zdWJhcnJheShjLGMrZCksZSk7Zm9yKHZhciBmPTA7ZD5mO2YrKylhW2UrZl09YltjK2ZdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZztmb3IoZD0wLGI9MCxjPWEubGVuZ3RoO2M+YjtiKyspZCs9YVtiXS5sZW5ndGg7Zm9yKGc9bmV3IFVpbnQ4QXJyYXkoZCksZT0wLGI9MCxjPWEubGVuZ3RoO2M+YjtiKyspZj1hW2JdLGcuc2V0KGYsZSksZSs9Zi5sZW5ndGg7cmV0dXJuIGd9fSxmPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgZj0wO2Q+ZjtmKyspYVtlK2ZdPWJbYytmXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihhKXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sYSl9fTtjLnNldFR5cGVkPWZ1bmN0aW9uKGEpe2E/KGMuQnVmOD1VaW50OEFycmF5LGMuQnVmMTY9VWludDE2QXJyYXksYy5CdWYzMj1JbnQzMkFycmF5LGMuYXNzaWduKGMsZSkpOihjLkJ1Zjg9QXJyYXksYy5CdWYxNj1BcnJheSxjLkJ1ZjMyPUFycmF5LGMuYXNzaWduKGMsZikpfSxjLnNldFR5cGVkKGQpfSx7fV0sMjg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKDY1NTM3PmImJihhLnN1YmFycmF5JiZnfHwhYS5zdWJhcnJheSYmZikpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlLnNocmlua0J1ZihhLGIpKTtmb3IodmFyIGM9IiIsZD0wO2I+ZDtkKyspYys9U3RyaW5nLmZyb21DaGFyQ29kZShhW2RdKTtyZXR1cm4gY312YXIgZT1hKCIuL2NvbW1vbiIpLGY9ITAsZz0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2goaCl7Zj0hMX10cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaChoKXtnPSExfWZvcih2YXIgaT1uZXcgZS5CdWY4KDI1Niksaj0wOzI1Nj5qO2orKylpW2pdPWo+PTI1Mj82Omo+PTI0OD81Omo+PTI0MD80Omo+PTIyND8zOmo+PTE5Mj8yOjE7aVsyNTRdPWlbMjU0XT0xLGMuc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXt2YXIgYixjLGQsZixnLGg9YS5sZW5ndGgsaT0wO2ZvcihmPTA7aD5mO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmaD5mKzEmJihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxmKyspKSxpKz0xMjg+Yz8xOjIwNDg+Yz8yOjY1NTM2PmM/Mzo0O2ZvcihiPW5ldyBlLkJ1ZjgoaSksZz0wLGY9MDtpPmc7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLDEyOD5jP2JbZysrXT1jOjIwNDg+Yz8oYltnKytdPTE5MnxjPj4+NixiW2crK109MTI4fDYzJmMpOjY1NTM2PmM/KGJbZysrXT0yMjR8Yz4+PjEyLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTooYltnKytdPTI0MHxjPj4+MTgsYltnKytdPTEyOHxjPj4+MTImNjMsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpO3JldHVybiBifSxjLmJ1ZjJiaW5zdHJpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSxhLmxlbmd0aCl9LGMuYmluc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3IGUuQnVmOChhLmxlbmd0aCksYz0wLGQ9Yi5sZW5ndGg7ZD5jO2MrKyliW2NdPWEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn0sYy5idWYyc3RyaW5nPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaD1ifHxhLmxlbmd0aCxqPW5ldyBBcnJheSgyKmgpO2ZvcihlPTAsYz0wO2g+YzspaWYoZj1hW2MrK10sMTI4PmYpaltlKytdPWY7ZWxzZSBpZihnPWlbZl0sZz40KWpbZSsrXT02NTUzMyxjKz1nLTE7ZWxzZXtmb3IoZiY9Mj09PWc/MzE6Mz09PWc/MTU6NztnPjEmJmg+YzspZj1mPDw2fDYzJmFbYysrXSxnLS07Zz4xP2pbZSsrXT02NTUzMzo2NTUzNj5mP2pbZSsrXT1mOihmLT02NTUzNixqW2UrK109NTUyOTZ8Zj4+MTAmMTAyMyxqW2UrK109NTYzMjB8MTAyMyZmKX1yZXR1cm4gZChqLGUpfSxjLnV0Zjhib3JkZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiAwPmM/YjowPT09Yz9iOmMraVthW2NdXT5iP2M6Yn19LHsiLi9jb21tb24iOjI3fV0sMjk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSxiLGMsZCl7Zm9yKHZhciBlPTY1NTM1JmF8MCxmPWE+Pj4xNiY2NTUzNXwwLGc9MDswIT09Yzspe2c9Yz4yZTM/MmUzOmMsYy09ZztkbyBlPWUrYltkKytdfDAsZj1mK2V8MDt3aGlsZSgtLWcpO2UlPTY1NTIxLGYlPTY1NTIxfXJldHVybiBlfGY8PDE2fDB9Yi5leHBvcnRzPWN9LHt9XSwzMDpbZnVuY3Rpb24oYSxiKXtiLmV4cG9ydHM9e1pfTk9fRkxVU0g6MCxaX1BBUlRJQUxfRkxVU0g6MSxaX1NZTkNfRkxVU0g6MixaX0ZVTExfRkxVU0g6MyxaX0ZJTklTSDo0LFpfQkxPQ0s6NSxaX1RSRUVTOjYsWl9PSzowLFpfU1RSRUFNX0VORDoxLFpfTkVFRF9ESUNUOjIsWl9FUlJOTzotMSxaX1NUUkVBTV9FUlJPUjotMixaX0RBVEFfRVJST1I6LTMsWl9CVUZfRVJST1I6LTUsWl9OT19DT01QUkVTU0lPTjowLFpfQkVTVF9TUEVFRDoxLFpfQkVTVF9DT01QUkVTU0lPTjo5LFpfREVGQVVMVF9DT01QUkVTU0lPTjotMSxaX0ZJTFRFUkVEOjEsWl9IVUZGTUFOX09OTFk6MixaX1JMRTozLFpfRklYRUQ6NCxaX0RFRkFVTFRfU1RSQVRFR1k6MCxaX0JJTkFSWTowLFpfVEVYVDoxLFpfVU5LTk9XTjoyLFpfREVGTEFURUQ6OH19LHt9XSwzMTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe2Zvcih2YXIgYSxiPVtdLGM9MDsyNTY+YztjKyspe2E9Yztmb3IodmFyIGQ9MDs4PmQ7ZCsrKWE9MSZhPzM5ODgyOTIzODReYT4+PjE6YT4+PjE7YltjXT1hfXJldHVybiBifWZ1bmN0aW9uIGQoYSxiLGMsZCl7dmFyIGY9ZSxnPWQrYzthPS0xXmE7Zm9yKHZhciBoPWQ7Zz5oO2grKylhPWE+Pj44XmZbMjU1JihhXmJbaF0pXTtyZXR1cm4tMV5hfXZhciBlPWMoKTtiLmV4cG9ydHM9ZH0se31dLDMyOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtyZXR1cm4gYS5tc2c9R1tiXSxifWZ1bmN0aW9uIGUoYSl7cmV0dXJuKGE8PDEpLShhPjQ/OTowKX1mdW5jdGlvbiBmKGEpe2Zvcih2YXIgYj1hLmxlbmd0aDstLWI+PTA7KWFbYl09MH1mdW5jdGlvbiBnKGEpe3ZhciBiPWEuc3RhdGUsYz1iLnBlbmRpbmc7Yz5hLmF2YWlsX291dCYmKGM9YS5hdmFpbF9vdXQpLDAhPT1jJiYoQy5hcnJheVNldChhLm91dHB1dCxiLnBlbmRpbmdfYnVmLGIucGVuZGluZ19vdXQsYyxhLm5leHRfb3V0KSxhLm5leHRfb3V0Kz1jLGIucGVuZGluZ19vdXQrPWMsYS50b3RhbF9vdXQrPWMsYS5hdmFpbF9vdXQtPWMsYi5wZW5kaW5nLT1jLDA9PT1iLnBlbmRpbmcmJihiLnBlbmRpbmdfb3V0PTApKX1mdW5jdGlvbiBoKGEsYil7RC5fdHJfZmx1c2hfYmxvY2soYSxhLmJsb2NrX3N0YXJ0Pj0wP2EuYmxvY2tfc3RhcnQ6LTEsYS5zdHJzdGFydC1hLmJsb2NrX3N0YXJ0LGIpLGEuYmxvY2tfc3RhcnQ9YS5zdHJzdGFydCxnKGEuc3RybSl9ZnVuY3Rpb24gaShhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWJ9ZnVuY3Rpb24gaihhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWI+Pj44JjI1NSxhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYn1mdW5jdGlvbiBrKGEsYixjLGQpe3ZhciBlPWEuYXZhaWxfaW47cmV0dXJuIGU+ZCYmKGU9ZCksMD09PWU/MDooYS5hdmFpbF9pbi09ZSxDLmFycmF5U2V0KGIsYS5pbnB1dCxhLm5leHRfaW4sZSxjKSwxPT09YS5zdGF0ZS53cmFwP2EuYWRsZXI9RShhLmFkbGVyLGIsZSxjKToyPT09YS5zdGF0ZS53cmFwJiYoYS5hZGxlcj1GKGEuYWRsZXIsYixlLGMpKSxhLm5leHRfaW4rPWUsYS50b3RhbF9pbis9ZSxlKX1mdW5jdGlvbiBsKGEsYil7dmFyIGMsZCxlPWEubWF4X2NoYWluX2xlbmd0aCxmPWEuc3Ryc3RhcnQsZz1hLnByZXZfbGVuZ3RoLGg9YS5uaWNlX21hdGNoLGk9YS5zdHJzdGFydD5hLndfc2l6ZS1qYj9hLnN0cnN0YXJ0LShhLndfc2l6ZS1qYik6MCxqPWEud2luZG93LGs9YS53X21hc2ssbD1hLnByZXYsbT1hLnN0cnN0YXJ0K2liLG49altmK2ctMV0sbz1qW2YrZ107YS5wcmV2X2xlbmd0aD49YS5nb29kX21hdGNoJiYoZT4+PTIpLGg+YS5sb29rYWhlYWQmJihoPWEubG9va2FoZWFkKTtkbyBpZihjPWIsaltjK2ddPT09byYmaltjK2ctMV09PT1uJiZqW2NdPT09altmXSYmalsrK2NdPT09altmKzFdKXtmKz0yLGMrKztkbzt3aGlsZShqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmbT5mKTtpZihkPWliLShtLWYpLGY9bS1pYixkPmcpe2lmKGEubWF0Y2hfc3RhcnQ9YixnPWQsZD49aClicmVhaztuPWpbZitnLTFdLG89altmK2ddfX13aGlsZSgoYj1sW2Ima10pPmkmJjAhPT0tLWUpO3JldHVybiBnPD1hLmxvb2thaGVhZD9nOmEubG9va2FoZWFkfWZ1bmN0aW9uIG0oYSl7dmFyIGIsYyxkLGUsZixnPWEud19zaXplO2Rve2lmKGU9YS53aW5kb3dfc2l6ZS1hLmxvb2thaGVhZC1hLnN0cnN0YXJ0LGEuc3Ryc3RhcnQ+PWcrKGctamIpKXtDLmFycmF5U2V0KGEud2luZG93LGEud2luZG93LGcsZywwKSxhLm1hdGNoX3N0YXJ0LT1nLGEuc3Ryc3RhcnQtPWcsYS5ibG9ja19zdGFydC09ZyxjPWEuaGFzaF9zaXplLGI9YztkbyBkPWEuaGVhZFstLWJdLGEuaGVhZFtiXT1kPj1nP2QtZzowO3doaWxlKC0tYyk7Yz1nLGI9YztkbyBkPWEucHJldlstLWJdLGEucHJldltiXT1kPj1nP2QtZzowO3doaWxlKC0tYyk7ZSs9Z31pZigwPT09YS5zdHJtLmF2YWlsX2luKWJyZWFrO2lmKGM9ayhhLnN0cm0sYS53aW5kb3csYS5zdHJzdGFydCthLmxvb2thaGVhZCxlKSxhLmxvb2thaGVhZCs9YyxhLmxvb2thaGVhZCthLmluc2VydD49aGIpZm9yKGY9YS5zdHJzdGFydC1hLmluc2VydCxhLmluc19oPWEud2luZG93W2ZdLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1tmKzFdKSZhLmhhc2hfbWFzazthLmluc2VydCYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1tmK2hiLTFdKSZhLmhhc2hfbWFzayxhLnByZXZbZiZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1mLGYrKyxhLmluc2VydC0tLCEoYS5sb29rYWhlYWQrYS5pbnNlcnQ8aGIpKTspO313aGlsZShhLmxvb2thaGVhZDxqYiYmMCE9PWEuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gbihhLGIpe3ZhciBjPTY1NTM1O2ZvcihjPmEucGVuZGluZ19idWZfc2l6ZS01JiYoYz1hLnBlbmRpbmdfYnVmX3NpemUtNSk7Oyl7aWYoYS5sb29rYWhlYWQ8PTEpe2lmKG0oYSksMD09PWEubG9va2FoZWFkJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWEuc3Ryc3RhcnQrPWEubG9va2FoZWFkLGEubG9va2FoZWFkPTA7dmFyIGQ9YS5ibG9ja19zdGFydCtjO2lmKCgwPT09YS5zdHJzdGFydHx8YS5zdHJzdGFydD49ZCkmJihhLmxvb2thaGVhZD1hLnN0cnN0YXJ0LWQsYS5zdHJzdGFydD1kLGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYjtpZihhLnN0cnN0YXJ0LWEuYmxvY2tfc3RhcnQ+PWEud19zaXplLWpiJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifXJldHVybiBhLmluc2VydD0wLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLnN0cnN0YXJ0PmEuYmxvY2tfc3RhcnQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjpzYn1mdW5jdGlvbiBvKGEsYil7Zm9yKHZhciBjLGQ7Oyl7aWYoYS5sb29rYWhlYWQ8amIpe2lmKG0oYSksYS5sb29rYWhlYWQ8amImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYz0wLGEubG9va2FoZWFkPj1oYiYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpLDAhPT1jJiZhLnN0cnN0YXJ0LWM8PWEud19zaXplLWpiJiYoYS5tYXRjaF9sZW5ndGg9bChhLGMpKSxhLm1hdGNoX2xlbmd0aD49aGIpaWYoZD1ELl90cl90YWxseShhLGEuc3Ryc3RhcnQtYS5tYXRjaF9zdGFydCxhLm1hdGNoX2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPD1hLm1heF9sYXp5X21hdGNoJiZhLmxvb2thaGVhZD49aGIpe2EubWF0Y2hfbGVuZ3RoLS07ZG8gYS5zdHJzdGFydCsrLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQ7d2hpbGUoMCE9PS0tYS5tYXRjaF9sZW5ndGgpO2Euc3Ryc3RhcnQrK31lbHNlIGEuc3Ryc3RhcnQrPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPTAsYS5pbnNfaD1hLndpbmRvd1thLnN0cnN0YXJ0XSxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCsxXSkmYS5oYXNoX21hc2s7ZWxzZSBkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0Kys7aWYoZCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1yZXR1cm4gYS5pbnNlcnQ9YS5zdHJzdGFydDxoYi0xP2Euc3Ryc3RhcnQ6aGItMSxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnRifWZ1bmN0aW9uIHAoYSxiKXtmb3IodmFyIGMsZCxlOzspe2lmKGEubG9va2FoZWFkPGpiKXtpZihtKGEpLGEubG9va2FoZWFkPGpiJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWlmKGM9MCxhLmxvb2thaGVhZD49aGImJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCtoYi0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KSxhLnByZXZfbGVuZ3RoPWEubWF0Y2hfbGVuZ3RoLGEucHJldl9tYXRjaD1hLm1hdGNoX3N0YXJ0LGEubWF0Y2hfbGVuZ3RoPWhiLTEsMCE9PWMmJmEucHJldl9sZW5ndGg8YS5tYXhfbGF6eV9tYXRjaCYmYS5zdHJzdGFydC1jPD1hLndfc2l6ZS1qYiYmKGEubWF0Y2hfbGVuZ3RoPWwoYSxjKSxhLm1hdGNoX2xlbmd0aDw9NSYmKGEuc3RyYXRlZ3k9PT1TfHxhLm1hdGNoX2xlbmd0aD09PWhiJiZhLnN0cnN0YXJ0LWEubWF0Y2hfc3RhcnQ+NDA5NikmJihhLm1hdGNoX2xlbmd0aD1oYi0xKSksYS5wcmV2X2xlbmd0aD49aGImJmEubWF0Y2hfbGVuZ3RoPD1hLnByZXZfbGVuZ3RoKXtlPWEuc3Ryc3RhcnQrYS5sb29rYWhlYWQtaGIsZD1ELl90cl90YWxseShhLGEuc3Ryc3RhcnQtMS1hLnByZXZfbWF0Y2gsYS5wcmV2X2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEucHJldl9sZW5ndGgtMSxhLnByZXZfbGVuZ3RoLT0yO2RvKythLnN0cnN0YXJ0PD1lJiYoYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQraGItMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydCk7d2hpbGUoMCE9PS0tYS5wcmV2X2xlbmd0aCk7aWYoYS5tYXRjaF9hdmFpbGFibGU9MCxhLm1hdGNoX2xlbmd0aD1oYi0xLGEuc3Ryc3RhcnQrKyxkJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifWVsc2UgaWYoYS5tYXRjaF9hdmFpbGFibGUpe2lmKGQ9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnQtMV0pLGQmJmgoYSwhMSksYS5zdHJzdGFydCsrLGEubG9va2FoZWFkLS0sMD09PWEuc3RybS5hdmFpbF9vdXQpcmV0dXJuIHNifWVsc2UgYS5tYXRjaF9hdmFpbGFibGU9MSxhLnN0cnN0YXJ0KyssYS5sb29rYWhlYWQtLX1yZXR1cm4gYS5tYXRjaF9hdmFpbGFibGUmJihkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0LTFdKSxhLm1hdGNoX2F2YWlsYWJsZT0wKSxhLmluc2VydD1hLnN0cnN0YXJ0PGhiLTE/YS5zdHJzdGFydDpoYi0xLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6dGJ9ZnVuY3Rpb24gcShhLGIpe2Zvcih2YXIgYyxkLGUsZixnPWEud2luZG93Ozspe2lmKGEubG9va2FoZWFkPD1pYil7aWYobShhKSxhLmxvb2thaGVhZDw9aWImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYS5tYXRjaF9sZW5ndGg9MCxhLmxvb2thaGVhZD49aGImJmEuc3Ryc3RhcnQ+MCYmKGU9YS5zdHJzdGFydC0xLGQ9Z1tlXSxkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdKSl7Zj1hLnN0cnN0YXJ0K2liO2RvO3doaWxlKGQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmY+ZSk7YS5tYXRjaF9sZW5ndGg9aWItKGYtZSksYS5tYXRjaF9sZW5ndGg+YS5sb29rYWhlYWQmJihhLm1hdGNoX2xlbmd0aD1hLmxvb2thaGVhZCl9aWYoYS5tYXRjaF9sZW5ndGg+PWhiPyhjPUQuX3RyX3RhbGx5KGEsMSxhLm1hdGNoX2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEubWF0Y2hfbGVuZ3RoLGEuc3Ryc3RhcnQrPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPTApOihjPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0KyspLGMmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiByKGEsYil7Zm9yKHZhciBjOzspe2lmKDA9PT1hLmxvb2thaGVhZCYmKG0oYSksMD09PWEubG9va2FoZWFkKSl7aWYoYj09PUgpcmV0dXJuIHNiO2JyZWFrfWlmKGEubWF0Y2hfbGVuZ3RoPTAsYz1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEubG9va2FoZWFkLS0sYS5zdHJzdGFydCsrLGMmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiBzKGEpe2Eud2luZG93X3NpemU9MiphLndfc2l6ZSxmKGEuaGVhZCksYS5tYXhfbGF6eV9tYXRjaD1CW2EubGV2ZWxdLm1heF9sYXp5LGEuZ29vZF9tYXRjaD1CW2EubGV2ZWxdLmdvb2RfbGVuZ3RoLGEubmljZV9tYXRjaD1CW2EubGV2ZWxdLm5pY2VfbGVuZ3RoLGEubWF4X2NoYWluX2xlbmd0aD1CW2EubGV2ZWxdLm1heF9jaGFpbixhLnN0cnN0YXJ0PTAsYS5ibG9ja19zdGFydD0wLGEubG9va2FoZWFkPTAsYS5pbnNlcnQ9MCxhLm1hdGNoX2xlbmd0aD1hLnByZXZfbGVuZ3RoPWhiLTEsYS5tYXRjaF9hdmFpbGFibGU9MCxhLmluc19oPTB9ZnVuY3Rpb24gdCgpe3RoaXMuc3RybT1udWxsLHRoaXMuc3RhdHVzPTAsdGhpcy5wZW5kaW5nX2J1Zj1udWxsLHRoaXMucGVuZGluZ19idWZfc2l6ZT0wLHRoaXMucGVuZGluZ19vdXQ9MCx0aGlzLnBlbmRpbmc9MCx0aGlzLndyYXA9MCx0aGlzLmd6aGVhZD1udWxsLHRoaXMuZ3ppbmRleD0wLHRoaXMubWV0aG9kPVksdGhpcy5sYXN0X2ZsdXNoPS0xLHRoaXMud19zaXplPTAsdGhpcy53X2JpdHM9MCx0aGlzLndfbWFzaz0wLHRoaXMud2luZG93PW51bGwsdGhpcy53aW5kb3dfc2l6ZT0wLHRoaXMucHJldj1udWxsLHRoaXMuaGVhZD1udWxsLHRoaXMuaW5zX2g9MCx0aGlzLmhhc2hfc2l6ZT0wLHRoaXMuaGFzaF9iaXRzPTAsdGhpcy5oYXNoX21hc2s9MCx0aGlzLmhhc2hfc2hpZnQ9MCx0aGlzLmJsb2NrX3N0YXJ0PTAsdGhpcy5tYXRjaF9sZW5ndGg9MCx0aGlzLnByZXZfbWF0Y2g9MCx0aGlzLm1hdGNoX2F2YWlsYWJsZT0wLHRoaXMuc3Ryc3RhcnQ9MCx0aGlzLm1hdGNoX3N0YXJ0PTAsdGhpcy5sb29rYWhlYWQ9MCx0aGlzLnByZXZfbGVuZ3RoPTAsdGhpcy5tYXhfY2hhaW5fbGVuZ3RoPTAsdGhpcy5tYXhfbGF6eV9tYXRjaD0wLHRoaXMubGV2ZWw9MCx0aGlzLnN0cmF0ZWd5PTAsdGhpcy5nb29kX21hdGNoPTAsdGhpcy5uaWNlX21hdGNoPTAsdGhpcy5keW5fbHRyZWU9bmV3IEMuQnVmMTYoMipmYiksdGhpcy5keW5fZHRyZWU9bmV3IEMuQnVmMTYoMiooMipkYisxKSksdGhpcy5ibF90cmVlPW5ldyBDLkJ1ZjE2KDIqKDIqZWIrMSkpLGYodGhpcy5keW5fbHRyZWUpLGYodGhpcy5keW5fZHRyZWUpLGYodGhpcy5ibF90cmVlKSx0aGlzLmxfZGVzYz1udWxsLHRoaXMuZF9kZXNjPW51bGwsdGhpcy5ibF9kZXNjPW51bGwsdGhpcy5ibF9jb3VudD1uZXcgQy5CdWYxNihnYisxKSx0aGlzLmhlYXA9bmV3IEMuQnVmMTYoMipjYisxKSxmKHRoaXMuaGVhcCksdGhpcy5oZWFwX2xlbj0wLHRoaXMuaGVhcF9tYXg9MCx0aGlzLmRlcHRoPW5ldyBDLkJ1ZjE2KDIqY2IrMSksZih0aGlzLmRlcHRoKSx0aGlzLmxfYnVmPTAsdGhpcy5saXRfYnVmc2l6ZT0wLHRoaXMubGFzdF9saXQ9MCx0aGlzLmRfYnVmPTAsdGhpcy5vcHRfbGVuPTAsdGhpcy5zdGF0aWNfbGVuPTAsdGhpcy5tYXRjaGVzPTAsdGhpcy5pbnNlcnQ9MCx0aGlzLmJpX2J1Zj0wLHRoaXMuYmlfdmFsaWQ9MH1mdW5jdGlvbiB1KGEpe3ZhciBiO3JldHVybiBhJiZhLnN0YXRlPyhhLnRvdGFsX2luPWEudG90YWxfb3V0PTAsYS5kYXRhX3R5cGU9WCxiPWEuc3RhdGUsYi5wZW5kaW5nPTAsYi5wZW5kaW5nX291dD0wLGIud3JhcDwwJiYoYi53cmFwPS1iLndyYXApLGIuc3RhdHVzPWIud3JhcD9sYjpxYixhLmFkbGVyPTI9PT1iLndyYXA/MDoxLGIubGFzdF9mbHVzaD1ILEQuX3RyX2luaXQoYiksTSk6ZChhLE8pfWZ1bmN0aW9uIHYoYSl7dmFyIGI9dShhKTtyZXR1cm4gYj09PU0mJnMoYS5zdGF0ZSksYn1mdW5jdGlvbiB3KGEsYil7cmV0dXJuIGEmJmEuc3RhdGU/MiE9PWEuc3RhdGUud3JhcD9POihhLnN0YXRlLmd6aGVhZD1iLE0pOk99ZnVuY3Rpb24geChhLGIsYyxlLGYsZyl7aWYoIWEpcmV0dXJuIE87dmFyIGg9MTtpZihiPT09UiYmKGI9NiksMD5lPyhoPTAsZT0tZSk6ZT4xNSYmKGg9MixlLT0xNiksMT5mfHxmPlp8fGMhPT1ZfHw4PmV8fGU+MTV8fDA+Ynx8Yj45fHwwPmd8fGc+VilyZXR1cm4gZChhLE8pOzg9PT1lJiYoZT05KTt2YXIgaT1uZXcgdDtyZXR1cm4gYS5zdGF0ZT1pLGkuc3RybT1hLGkud3JhcD1oLGkuZ3poZWFkPW51bGwsaS53X2JpdHM9ZSxpLndfc2l6ZT0xPDxpLndfYml0cyxpLndfbWFzaz1pLndfc2l6ZS0xLGkuaGFzaF9iaXRzPWYrNyxpLmhhc2hfc2l6ZT0xPDxpLmhhc2hfYml0cyxpLmhhc2hfbWFzaz1pLmhhc2hfc2l6ZS0xLGkuaGFzaF9zaGlmdD1+figoaS5oYXNoX2JpdHMraGItMSkvaGIpLGkud2luZG93PW5ldyBDLkJ1ZjgoMippLndfc2l6ZSksaS5oZWFkPW5ldyBDLkJ1ZjE2KGkuaGFzaF9zaXplKSxpLnByZXY9bmV3IEMuQnVmMTYoaS53X3NpemUpLGkubGl0X2J1ZnNpemU9MTw8Zis2LGkucGVuZGluZ19idWZfc2l6ZT00KmkubGl0X2J1ZnNpemUsaS5wZW5kaW5nX2J1Zj1uZXcgQy5CdWY4KGkucGVuZGluZ19idWZfc2l6ZSksaS5kX2J1Zj1pLmxpdF9idWZzaXplPj4xLGkubF9idWY9MyppLmxpdF9idWZzaXplLGkubGV2ZWw9YixpLnN0cmF0ZWd5PWcsaS5tZXRob2Q9Yyx2KGEpfWZ1bmN0aW9uIHkoYSxiKXtyZXR1cm4geChhLGIsWSwkLF8sVyl9ZnVuY3Rpb24geihhLGIpe3ZhciBjLGgsayxsO2lmKCFhfHwhYS5zdGF0ZXx8Yj5MfHwwPmIpcmV0dXJuIGE/ZChhLE8pOk87aWYoaD1hLnN0YXRlLCFhLm91dHB1dHx8IWEuaW5wdXQmJjAhPT1hLmF2YWlsX2lufHxoLnN0YXR1cz09PXJiJiZiIT09SylyZXR1cm4gZChhLDA9PT1hLmF2YWlsX291dD9ROk8pO2lmKGguc3RybT1hLGM9aC5sYXN0X2ZsdXNoLGgubGFzdF9mbHVzaD1iLGguc3RhdHVzPT09bGIpaWYoMj09PWgud3JhcClhLmFkbGVyPTAsaShoLDMxKSxpKGgsMTM5KSxpKGgsOCksaC5nemhlYWQ/KGkoaCwoaC5nemhlYWQudGV4dD8xOjApKyhoLmd6aGVhZC5oY3JjPzI6MCkrKGguZ3poZWFkLmV4dHJhPzQ6MCkrKGguZ3poZWFkLm5hbWU/ODowKSsoaC5nemhlYWQuY29tbWVudD8xNjowKSksaShoLDI1NSZoLmd6aGVhZC50aW1lKSxpKGgsaC5nemhlYWQudGltZT4+OCYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4xNiYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4yNCYyNTUpLGkoaCw5PT09aC5sZXZlbD8yOmguc3RyYXRlZ3k+PVR8fGgubGV2ZWw8Mj80OjApLGkoaCwyNTUmaC5nemhlYWQub3MpLGguZ3poZWFkLmV4dHJhJiZoLmd6aGVhZC5leHRyYS5sZW5ndGgmJihpKGgsMjU1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCksaShoLGguZ3poZWFkLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxoLmd6aGVhZC5oY3JjJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmcsMCkpLGguZ3ppbmRleD0wLGguc3RhdHVzPW1iKTooaShoLDApLGkoaCwwKSxpKGgsMCksaShoLDApLGkoaCwwKSxpKGgsOT09PWgubGV2ZWw/MjpoLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/NDowKSxpKGgsd2IpLGguc3RhdHVzPXFiKTtlbHNle3ZhciBtPVkrKGgud19iaXRzLTg8PDQpPDw4LG49LTE7bj1oLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/MDpoLmxldmVsPDY/MTo2PT09aC5sZXZlbD8yOjMsbXw9bjw8NiwwIT09aC5zdHJzdGFydCYmKG18PWtiKSxtKz0zMS1tJTMxLGguc3RhdHVzPXFiLGooaCxtKSwwIT09aC5zdHJzdGFydCYmKGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFkbGVyKSksYS5hZGxlcj0xfWlmKGguc3RhdHVzPT09bWIpaWYoaC5nemhlYWQuZXh0cmEpe2ZvcihrPWgucGVuZGluZztoLmd6aW5kZXg8KDY1NTM1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihoLnBlbmRpbmchPT1oLnBlbmRpbmdfYnVmX3NpemV8fChoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGcoYSksaz1oLnBlbmRpbmcsaC5wZW5kaW5nIT09aC5wZW5kaW5nX2J1Zl9zaXplKSk7KWkoaCwyNTUmaC5nemhlYWQuZXh0cmFbaC5nemluZGV4XSksaC5nemluZGV4Kys7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxoLmd6aW5kZXg9PT1oLmd6aGVhZC5leHRyYS5sZW5ndGgmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1uYil9ZWxzZSBoLnN0YXR1cz1uYjtpZihoLnN0YXR1cz09PW5iKWlmKGguZ3poZWFkLm5hbWUpe2s9aC5wZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQubmFtZS5sZW5ndGg/MjU1JmguZ3poZWFkLm5hbWUuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksMD09PWwmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1vYil9ZWxzZSBoLnN0YXR1cz1vYjtpZihoLnN0YXR1cz09PW9iKWlmKGguZ3poZWFkLmNvbW1lbnQpe2s9aC5wZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1JmguZ3poZWFkLmNvbW1lbnQuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksMD09PWwmJihoLnN0YXR1cz1wYil9ZWxzZSBoLnN0YXR1cz1wYjtpZihoLnN0YXR1cz09PXBiJiYoaC5nemhlYWQuaGNyYz8oaC5wZW5kaW5nKzI+aC5wZW5kaW5nX2J1Zl9zaXplJiZnKGEpLGgucGVuZGluZysyPD1oLnBlbmRpbmdfYnVmX3NpemUmJihpKGgsMjU1JmEuYWRsZXIpLGkoaCxhLmFkbGVyPj44JjI1NSksYS5hZGxlcj0wLGguc3RhdHVzPXFiKSk6aC5zdGF0dXM9cWIpLDAhPT1oLnBlbmRpbmcpe2lmKGcoYSksMD09PWEuYXZhaWxfb3V0KXJldHVybiBoLmxhc3RfZmx1c2g9LTEsTX1lbHNlIGlmKDA9PT1hLmF2YWlsX2luJiZlKGIpPD1lKGMpJiZiIT09SylyZXR1cm4gZChhLFEpO2lmKGguc3RhdHVzPT09cmImJjAhPT1hLmF2YWlsX2luKXJldHVybiBkKGEsUSk7aWYoMCE9PWEuYXZhaWxfaW58fDAhPT1oLmxvb2thaGVhZHx8YiE9PUgmJmguc3RhdHVzIT09cmIpe3ZhciBvPWguc3RyYXRlZ3k9PT1UP3IoaCxiKTpoLnN0cmF0ZWd5PT09VT9xKGgsYik6QltoLmxldmVsXS5mdW5jKGgsYik7aWYoKG89PT11Ynx8bz09PXZiKSYmKGguc3RhdHVzPXJiKSxvPT09c2J8fG89PT11YilyZXR1cm4gMD09PWEuYXZhaWxfb3V0JiYoaC5sYXN0X2ZsdXNoPS0xKSxNO2lmKG89PT10YiYmKGI9PT1JP0QuX3RyX2FsaWduKGgpOmIhPT1MJiYoRC5fdHJfc3RvcmVkX2Jsb2NrKGgsMCwwLCExKSxiPT09SiYmKGYoaC5oZWFkKSwwPT09aC5sb29rYWhlYWQmJihoLnN0cnN0YXJ0PTAsaC5ibG9ja19zdGFydD0wLGguaW5zZXJ0PTApKSksZyhhKSwwPT09YS5hdmFpbF9vdXQpKXJldHVybiBoLmxhc3RfZmx1c2g9LTEsTX1yZXR1cm4gYiE9PUs/TTpoLndyYXA8PTA/TjooMj09PWgud3JhcD8oaShoLDI1NSZhLmFkbGVyKSxpKGgsYS5hZGxlcj4+OCYyNTUpLGkoaCxhLmFkbGVyPj4xNiYyNTUpLGkoaCxhLmFkbGVyPj4yNCYyNTUpLGkoaCwyNTUmYS50b3RhbF9pbiksaShoLGEudG90YWxfaW4+PjgmMjU1KSxpKGgsYS50b3RhbF9pbj4+MTYmMjU1KSxpKGgsYS50b3RhbF9pbj4+MjQmMjU1KSk6KGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFkbGVyKSksZyhhKSxoLndyYXA+MCYmKGgud3JhcD0taC53cmFwKSwwIT09aC5wZW5kaW5nP006Til9ZnVuY3Rpb24gQShhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYj1hLnN0YXRlLnN0YXR1cyxiIT09bGImJmIhPT1tYiYmYiE9PW5iJiZiIT09b2ImJmIhPT1wYiYmYiE9PXFiJiZiIT09cmI/ZChhLE8pOihhLnN0YXRlPW51bGwsYj09PXFiP2QoYSxQKTpNKSk6T312YXIgQixDPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEQ9YSgiLi90cmVlcyIpLEU9YSgiLi9hZGxlcjMyIiksRj1hKCIuL2NyYzMyIiksRz1hKCIuL21lc3NhZ2VzIiksSD0wLEk9MSxKPTMsSz00LEw9NSxNPTAsTj0xLE89LTIsUD0tMyxRPS01LFI9LTEsUz0xLFQ9MixVPTMsVj00LFc9MCxYPTIsWT04LFo9OSwkPTE1LF89OCxhYj0yOSxiYj0yNTYsY2I9YmIrMSthYixkYj0zMCxlYj0xOSxmYj0yKmNiKzEsZ2I9MTUsaGI9MyxpYj0yNTgsamI9aWIraGIrMSxrYj0zMixsYj00MixtYj02OSxuYj03MyxvYj05MSxwYj0xMDMscWI9MTEzLHJiPTY2NixzYj0xLHRiPTIsdWI9Myx2Yj00LHdiPTMseGI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmdvb2RfbGVuZ3RoPWEsdGhpcy5tYXhfbGF6eT1iLHRoaXMubmljZV9sZW5ndGg9Yyx0aGlzLm1heF9jaGFpbj1kLHRoaXMuZnVuYz1lfTtCPVtuZXcgeGIoMCwwLDAsMCxuKSxuZXcgeGIoNCw0LDgsNCxvKSxuZXcgeGIoNCw1LDE2LDgsbyksbmV3IHhiKDQsNiwzMiwzMixvKSxuZXcgeGIoNCw0LDE2LDE2LHApLG5ldyB4Yig4LDE2LDMyLDMyLHApLG5ldyB4Yig4LDE2LDEyOCwxMjgscCksbmV3IHhiKDgsMzIsMTI4LDI1NixwKSxuZXcgeGIoMzIsMTI4LDI1OCwxMDI0LHApLG5ldyB4YigzMiwyNTgsMjU4LDQwOTYscCldLGMuZGVmbGF0ZUluaXQ9eSxjLmRlZmxhdGVJbml0Mj14LGMuZGVmbGF0ZVJlc2V0PXYsYy5kZWZsYXRlUmVzZXRLZWVwPXUsYy5kZWZsYXRlU2V0SGVhZGVyPXcsYy5kZWZsYXRlPXosYy5kZWZsYXRlRW5kPUEsYy5kZWZsYXRlSW5mbz0icGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSJ9LHsiLi4vdXRpbHMvY29tbW9uIjoyNywiLi9hZGxlcjMyIjoyOSwiLi9jcmMzMiI6MzEsIi4vbWVzc2FnZXMiOjM3LCIuL3RyZWVzIjozOH1dLDMzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9Yi5leHBvcnRzPWN9LHt9XSwzNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9MzAsZD0xMjtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyx4LHkseixBLEIsQztlPWEuc3RhdGUsZj1hLm5leHRfaW4sQj1hLmlucHV0LGc9ZisoYS5hdmFpbF9pbi01KSxoPWEubmV4dF9vdXQsQz1hLm91dHB1dCxpPWgtKGItYS5hdmFpbF9vdXQpLGo9aCsoYS5hdmFpbF9vdXQtMjU3KSxrPWUuZG1heCxsPWUud3NpemUsbT1lLndoYXZlLG49ZS53bmV4dCxvPWUud2luZG93LHA9ZS5ob2xkLHE9ZS5iaXRzLHI9ZS5sZW5jb2RlLHM9ZS5kaXN0Y29kZSx0PSgxPDxlLmxlbmJpdHMpLTEsdT0oMTw8ZS5kaXN0Yml0cyktMTthOmRvezE1PnEmJihwKz1CW2YrK108PHEscSs9OCxwKz1CW2YrK108PHEscSs9OCksdj1yW3AmdF07Yjpmb3IoOzspe2lmKHc9dj4+PjI0LHA+Pj49dyxxLT13LHc9dj4+PjE2JjI1NSwwPT09dylDW2grK109NjU1MzUmdjtlbHNle2lmKCEoMTYmdykpe2lmKDA9PT0oNjQmdykpe3Y9clsoNjU1MzUmdikrKHAmKDE8PHcpLTEpXTtjb250aW51ZSBifWlmKDMyJncpe2UubW9kZT1kO2JyZWFrIGF9YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsZS5tb2RlPWM7YnJlYWsgYX14PTY1NTM1JnYsdyY9MTUsdyYmKHc+cSYmKHArPUJbZisrXTw8cSxxKz04KSx4Kz1wJigxPDx3KS0xLHA+Pj49dyxxLT13KSwxNT5xJiYocCs9QltmKytdPDxxLHErPTgscCs9QltmKytdPDxxLHErPTgpLHY9c1twJnVdO2M6Zm9yKDs7KXtpZih3PXY+Pj4yNCxwPj4+PXcscS09dyx3PXY+Pj4xNiYyNTUsISgxNiZ3KSl7aWYoMD09PSg2NCZ3KSl7dj1zWyg2NTUzNSZ2KSsocCYoMTw8dyktMSldO2NvbnRpbnVlIGN9YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsZS5tb2RlPWM7YnJlYWsgYX1pZih5PTY1NTM1JnYsdyY9MTUsdz5xJiYocCs9QltmKytdPDxxLHErPTgsdz5xJiYocCs9QltmKytdPDxxLHErPTgpKSx5Kz1wJigxPDx3KS0xLHk+ayl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixlLm1vZGU9YzticmVhayBhfWlmKHA+Pj49dyxxLT13LHc9aC1pLHk+dyl7aWYodz15LXcsdz5tJiZlLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsZS5tb2RlPWM7YnJlYWsgYX1pZih6PTAsQT1vLDA9PT1uKXtpZih6Kz1sLXcseD53KXt4LT13O2RvIENbaCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9fWVsc2UgaWYodz5uKXtpZih6Kz1sK24tdyx3LT1uLHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7aWYoej0wLHg+bil7dz1uLHgtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO3o9aC15LEE9Q319fWVsc2UgaWYoeis9bi13LHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7ej1oLXksQT1DfWZvcig7eD4yOylDW2grK109QVt6KytdLENbaCsrXT1BW3orK10sQ1toKytdPUFbeisrXSx4LT0zO3gmJihDW2grK109QVt6KytdLHg+MSYmKENbaCsrXT1BW3orK10pKX1lbHNle3o9aC15O2RvIENbaCsrXT1DW3orK10sQ1toKytdPUNbeisrXSxDW2grK109Q1t6KytdLHgtPTM7d2hpbGUoeD4yKTt4JiYoQ1toKytdPUNbeisrXSx4PjEmJihDW2grK109Q1t6KytdKSl9YnJlYWt9fWJyZWFrfX13aGlsZShnPmYmJmo+aCk7eD1xPj4zLGYtPXgscS09eDw8MyxwJj0oMTw8cSktMSxhLm5leHRfaW49ZixhLm5leHRfb3V0PWgsYS5hdmFpbF9pbj1nPmY/NSsoZy1mKTo1LShmLWcpLGEuYXZhaWxfb3V0PWo+aD8yNTcrKGotaCk6MjU3LShoLWopLGUuaG9sZD1wLGUuYml0cz1xfX0se31dLDM1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuKGE+Pj4yNCYyNTUpKyhhPj4+OCY2NTI4MCkrKCg2NTI4MCZhKTw8OCkrKCgyNTUmYSk8PDI0KX1mdW5jdGlvbiBlKCl7dGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyByLkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyByLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIGYoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxhLnRvdGFsX2luPWEudG90YWxfb3V0PWIudG90YWw9MCxhLm1zZz0iIixiLndyYXAmJihhLmFkbGVyPTEmYi53cmFwKSxiLm1vZGU9SyxiLmxhc3Q9MCxiLmhhdmVkaWN0PTAsYi5kbWF4PTMyNzY4LGIuaGVhZD1udWxsLGIuaG9sZD0wLGIuYml0cz0wLGIubGVuY29kZT1iLmxlbmR5bj1uZXcgci5CdWYzMihvYiksYi5kaXN0Y29kZT1iLmRpc3RkeW49bmV3IHIuQnVmMzIocGIpLGIuc2FuZT0xLGIuYmFjaz0tMSxDKTpGfWZ1bmN0aW9uIGcoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxiLndzaXplPTAsYi53aGF2ZT0wLGIud25leHQ9MCxmKGEpKTpGfWZ1bmN0aW9uIGgoYSxiKXt2YXIgYyxkO3JldHVybiBhJiZhLnN0YXRlPyhkPWEuc3RhdGUsMD5iPyhjPTAsYj0tYik6KGM9KGI+PjQpKzEsNDg+YiYmKGImPTE1KSksYiYmKDg+Ynx8Yj4xNSk/RjoobnVsbCE9PWQud2luZG93JiZkLndiaXRzIT09YiYmKGQud2luZG93PW51bGwpLGQud3JhcD1jLGQud2JpdHM9YixnKGEpKSk6Rn1mdW5jdGlvbiBpKGEsYil7dmFyIGMsZDtyZXR1cm4gYT8oZD1uZXcgZSxhLnN0YXRlPWQsZC53aW5kb3c9bnVsbCxjPWgoYSxiKSxjIT09QyYmKGEuc3RhdGU9bnVsbCksYyk6Rn1mdW5jdGlvbiBqKGEpe3JldHVybiBpKGEscmIpfWZ1bmN0aW9uIGsoYSl7aWYoc2Ipe3ZhciBiO2ZvcihwPW5ldyByLkJ1ZjMyKDUxMikscT1uZXcgci5CdWYzMigzMiksYj0wOzE0ND5iOylhLmxlbnNbYisrXT04O2Zvcig7MjU2PmI7KWEubGVuc1tiKytdPTk7Zm9yKDsyODA+YjspYS5sZW5zW2IrK109Nztmb3IoOzI4OD5iOylhLmxlbnNbYisrXT04O2Zvcih2KHgsYS5sZW5zLDAsMjg4LHAsMCxhLndvcmsse2JpdHM6OX0pLGI9MDszMj5iOylhLmxlbnNbYisrXT01O3YoeSxhLmxlbnMsMCwzMixxLDAsYS53b3JrLHtiaXRzOjV9KSxzYj0hMX1hLmxlbmNvZGU9cCxhLmxlbmJpdHM9OSxhLmRpc3Rjb2RlPXEsYS5kaXN0Yml0cz01fWZ1bmN0aW9uIGwoYSxiLGMsZCl7dmFyIGUsZj1hLnN0YXRlO3JldHVybiBudWxsPT09Zi53aW5kb3cmJihmLndzaXplPTE8PGYud2JpdHMsZi53bmV4dD0wLGYud2hhdmU9MCxmLndpbmRvdz1uZXcgci5CdWY4KGYud3NpemUpKSxkPj1mLndzaXplPyhyLmFycmF5U2V0KGYud2luZG93LGIsYy1mLndzaXplLGYud3NpemUsMCksZi53bmV4dD0wLGYud2hhdmU9Zi53c2l6ZSk6KGU9Zi53c2l6ZS1mLnduZXh0LGU+ZCYmKGU9ZCksci5hcnJheVNldChmLndpbmRvdyxiLGMtZCxlLGYud25leHQpLGQtPWUsZD8oci5hcnJheVNldChmLndpbmRvdyxiLGMtZCxkLDApLGYud25leHQ9ZCxmLndoYXZlPWYud3NpemUpOihmLnduZXh0Kz1lLGYud25leHQ9PT1mLndzaXplJiYoZi53bmV4dD0wKSxmLndoYXZlPGYud3NpemUmJihmLndoYXZlKz1lKSkpLDB9ZnVuY3Rpb24gbShhLGIpe3ZhciBjLGUsZixnLGgsaSxqLG0sbixvLHAscSxvYixwYixxYixyYixzYix0Yix1Yix2Yix3Yix4Yix5Yix6YixBYj0wLEJiPW5ldyByLkJ1ZjgoNCksQ2I9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdO2lmKCFhfHwhYS5zdGF0ZXx8IWEub3V0cHV0fHwhYS5pbnB1dCYmMCE9PWEuYXZhaWxfaW4pcmV0dXJuIEY7Yz1hLnN0YXRlLGMubW9kZT09PVYmJihjLm1vZGU9VyksaD1hLm5leHRfb3V0LGY9YS5vdXRwdXQsaj1hLmF2YWlsX291dCxnPWEubmV4dF9pbixlPWEuaW5wdXQsaT1hLmF2YWlsX2luLG09Yy5ob2xkLG49Yy5iaXRzLG89aSxwPWoseGI9QzthOmZvcig7Oylzd2l0Y2goYy5tb2RlKXtjYXNlIEs6aWYoMD09PWMud3JhcCl7Yy5tb2RlPVc7YnJlYWt9Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoMiZjLndyYXAmJjM1NjE1PT09bSl7Yy5jaGVjaz0wLEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiwyLDApLG09MCxuPTAsYy5tb2RlPUw7YnJlYWt9aWYoYy5mbGFncz0wLGMuaGVhZCYmKGMuaGVhZC5kb25lPSExKSwhKDEmYy53cmFwKXx8KCgoMjU1Jm0pPDw4KSsobT4+OCkpJTMxKXthLm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfWlmKCgxNSZtKSE9PUope2EubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsYy5tb2RlPWxiO2JyZWFrfWlmKG0+Pj49NCxuLT00LHdiPSgxNSZtKSs4LDA9PT1jLndiaXRzKWMud2JpdHM9d2I7ZWxzZSBpZih3Yj5jLndiaXRzKXthLm1zZz0iaW52YWxpZCB3aW5kb3cgc2l6ZSIsYy5tb2RlPWxiO2JyZWFrfWMuZG1heD0xPDx3YixhLmFkbGVyPWMuY2hlY2s9MSxjLm1vZGU9NTEyJm0/VDpWLG09MCxuPTA7YnJlYWs7Y2FzZSBMOmZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKGMuZmxhZ3M9bSwoMjU1JmMuZmxhZ3MpIT09Sil7YS5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixjLm1vZGU9bGI7YnJlYWt9aWYoNTczNDQmYy5mbGFncyl7YS5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWMuaGVhZCYmKGMuaGVhZC50ZXh0PW0+PjgmMSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsMiwwKSksbT0wLG49MCxjLm1vZGU9TTtjYXNlIE06Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5oZWFkJiYoYy5oZWFkLnRpbWU9bSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsQmJbMl09bT4+PjE2JjI1NSxCYlszXT1tPj4+MjQmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDQsMCkpLG09MCxuPTAsYy5tb2RlPU47Y2FzZSBOOmZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMuaGVhZCYmKGMuaGVhZC54ZmxhZ3M9MjU1Jm0sYy5oZWFkLm9zPW0+PjgpLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTAsYy5tb2RlPU87Y2FzZSBPOmlmKDEwMjQmYy5mbGFncyl7Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5sZW5ndGg9bSxjLmhlYWQmJihjLmhlYWQuZXh0cmFfbGVuPW0pLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTB9ZWxzZSBjLmhlYWQmJihjLmhlYWQuZXh0cmE9bnVsbCk7Yy5tb2RlPVA7Y2FzZSBQOmlmKDEwMjQmYy5mbGFncyYmKHE9Yy5sZW5ndGgscT5pJiYocT1pKSxxJiYoYy5oZWFkJiYod2I9Yy5oZWFkLmV4dHJhX2xlbi1jLmxlbmd0aCxjLmhlYWQuZXh0cmF8fChjLmhlYWQuZXh0cmE9bmV3IEFycmF5KGMuaGVhZC5leHRyYV9sZW4pKSxyLmFycmF5U2V0KGMuaGVhZC5leHRyYSxlLGcscSx3YikpLDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsYy5sZW5ndGgtPXEpLGMubGVuZ3RoKSlicmVhayBhO2MubGVuZ3RoPTAsYy5tb2RlPVE7Y2FzZSBROmlmKDIwNDgmYy5mbGFncyl7aWYoMD09PWkpYnJlYWsgYTtxPTA7ZG8gd2I9ZVtnK3ErK10sYy5oZWFkJiZ3YiYmYy5sZW5ndGg8NjU1MzYmJihjLmhlYWQubmFtZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh3YikpO3doaWxlKHdiJiZpPnEpO2lmKDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsd2IpYnJlYWsgYX1lbHNlIGMuaGVhZCYmKGMuaGVhZC5uYW1lPW51bGwpO2MubGVuZ3RoPTAsYy5tb2RlPVI7Y2FzZSBSOmlmKDQwOTYmYy5mbGFncyl7aWYoMD09PWkpYnJlYWsgYTtxPTA7ZG8gd2I9ZVtnK3ErK10sYy5oZWFkJiZ3YiYmYy5sZW5ndGg8NjU1MzYmJihjLmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZSh3YikpO3doaWxlKHdiJiZpPnEpO2lmKDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsd2IpYnJlYWsgYX1lbHNlIGMuaGVhZCYmKGMuaGVhZC5jb21tZW50PW51bGwpO2MubW9kZT1TO2Nhc2UgUzppZig1MTImYy5mbGFncyl7Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg2NTUzNSZjLmNoZWNrKSl7YS5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMuaGVhZCYmKGMuaGVhZC5oY3JjPWMuZmxhZ3M+PjkmMSxjLmhlYWQuZG9uZT0hMCksYS5hZGxlcj1jLmNoZWNrPTAsYy5tb2RlPVY7YnJlYWs7Y2FzZSBUOmZvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWEuYWRsZXI9Yy5jaGVjaz1kKG0pLG09MCxuPTAsYy5tb2RlPVU7Y2FzZSBVOmlmKDA9PT1jLmhhdmVkaWN0KXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sRTthLmFkbGVyPWMuY2hlY2s9MSxjLm1vZGU9VjtjYXNlIFY6aWYoYj09PUF8fGI9PT1CKWJyZWFrIGE7Y2FzZSBXOmlmKGMubGFzdCl7bT4+Pj03Jm4sbi09NyZuLGMubW9kZT1pYjticmVha31mb3IoOzM+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fXN3aXRjaChjLmxhc3Q9MSZtLG0+Pj49MSxuLT0xLDMmbSl7Y2FzZSAwOmMubW9kZT1YO2JyZWFrO2Nhc2UgMTppZihrKGMpLGMubW9kZT1iYixiPT09Qil7bT4+Pj0yLG4tPTI7YnJlYWsgYX1icmVhaztjYXNlIDI6Yy5tb2RlPSQ7YnJlYWs7Y2FzZSAzOmEubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLGMubW9kZT1sYn1tPj4+PTIsbi09MjticmVhaztjYXNlIFg6Zm9yKG0+Pj49NyZuLG4tPTcmbjszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoKDY1NTM1Jm0pIT09KG0+Pj4xNl42NTUzNSkpe2EubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIixjLm1vZGU9bGI7YnJlYWt9aWYoYy5sZW5ndGg9NjU1MzUmbSxtPTAsbj0wLGMubW9kZT1ZLGI9PT1CKWJyZWFrIGE7Y2FzZSBZOmMubW9kZT1aO2Nhc2UgWjppZihxPWMubGVuZ3RoKXtpZihxPmkmJihxPWkpLHE+aiYmKHE9aiksMD09PXEpYnJlYWsgYTtyLmFycmF5U2V0KGYsZSxnLHEsaCksaS09cSxnKz1xLGotPXEsaCs9cSxjLmxlbmd0aC09cTticmVha31jLm1vZGU9VjticmVhaztjYXNlICQ6Zm9yKDsxND5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoYy5ubGVuPSgzMSZtKSsyNTcsbT4+Pj01LG4tPTUsYy5uZGlzdD0oMzEmbSkrMSxtPj4+PTUsbi09NSxjLm5jb2RlPSgxNSZtKSs0LG0+Pj49NCxuLT00LGMubmxlbj4yODZ8fGMubmRpc3Q+MzApe2EubXNnPSJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scyIsYy5tb2RlPWxiO2JyZWFrfWMuaGF2ZT0wLGMubW9kZT1fO2Nhc2UgXzpmb3IoO2MuaGF2ZTxjLm5jb2RlOyl7Zm9yKDszPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbnNbQ2JbYy5oYXZlKytdXT03Jm0sbT4+Pj0zLG4tPTN9Zm9yKDtjLmhhdmU8MTk7KWMubGVuc1tDYltjLmhhdmUrK11dPTA7aWYoYy5sZW5jb2RlPWMubGVuZHluLGMubGVuYml0cz03LHliPXtiaXRzOmMubGVuYml0c30seGI9dih3LGMubGVucywwLDE5LGMubGVuY29kZSwwLGMud29yayx5YiksYy5sZW5iaXRzPXliLmJpdHMseGIpe2EubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLGMubW9kZT1sYjticmVha31jLmhhdmU9MCxjLm1vZGU9YWI7Y2FzZSBhYjpmb3IoO2MuaGF2ZTxjLm5sZW4rYy5uZGlzdDspe2Zvcig7QWI9Yy5sZW5jb2RlW20mKDE8PGMubGVuYml0cyktMV0scWI9QWI+Pj4yNCxyYj1BYj4+PjE2JjI1NSxzYj02NTUzNSZBYiwhKG4+PXFiKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKDE2PnNiKW0+Pj49cWIsbi09cWIsYy5sZW5zW2MuaGF2ZSsrXT1zYjtlbHNle2lmKDE2PT09c2Ipe2Zvcih6Yj1xYisyO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihtPj4+PXFiLG4tPXFiLDA9PT1jLmhhdmUpe2EubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixjLm1vZGU9bGI7YnJlYWt9d2I9Yy5sZW5zW2MuaGF2ZS0xXSxxPTMrKDMmbSksbT4+Pj0yLG4tPTJ9ZWxzZSBpZigxNz09PXNiKXtmb3IoemI9cWIrMzt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj1xYixuLT1xYix3Yj0wLHE9MysoNyZtKSxtPj4+PTMsbi09M31lbHNle2Zvcih6Yj1xYis3O3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXFiLG4tPXFiLHdiPTAscT0xMSsoMTI3Jm0pLG0+Pj49NyxuLT03fWlmKGMuaGF2ZStxPmMubmxlbitjLm5kaXN0KXthLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsYy5tb2RlPWxiO2JyZWFrfWZvcig7cS0tOyljLmxlbnNbYy5oYXZlKytdPXdifX1pZihjLm1vZGU9PT1sYilicmVhaztpZigwPT09Yy5sZW5zWzI1Nl0pe2EubXNnPSJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2siLGMubW9kZT1sYjticmVha31pZihjLmxlbmJpdHM9OSx5Yj17Yml0czpjLmxlbmJpdHN9LHhiPXYoeCxjLmxlbnMsMCxjLm5sZW4sYy5sZW5jb2RlLDAsYy53b3JrLHliKSxjLmxlbmJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWlmKGMuZGlzdGJpdHM9NixjLmRpc3Rjb2RlPWMuZGlzdGR5bix5Yj17Yml0czpjLmRpc3RiaXRzfSx4Yj12KHksYy5sZW5zLGMubmxlbixjLm5kaXN0LGMuZGlzdGNvZGUsMCxjLndvcmsseWIpLGMuZGlzdGJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWlmKGMubW9kZT1iYixiPT09QilicmVhayBhO2Nhc2UgYmI6Yy5tb2RlPWNiO2Nhc2UgY2I6aWYoaT49NiYmaj49MjU4KXthLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sdShhLHApLGg9YS5uZXh0X291dCxmPWEub3V0cHV0LGo9YS5hdmFpbF9vdXQsZz1hLm5leHRfaW4sZT1hLmlucHV0LGk9YS5hdmFpbF9pbixtPWMuaG9sZCxuPWMuYml0cyxjLm1vZGU9PT1WJiYoYy5iYWNrPS0xKTsKYnJlYWt9Zm9yKGMuYmFjaz0wO0FiPWMubGVuY29kZVttJigxPDxjLmxlbmJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihyYiYmMD09PSgyNDAmcmIpKXtmb3IodGI9cWIsdWI9cmIsdmI9c2I7QWI9Yy5sZW5jb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLGMubGVuZ3RoPXNiLDA9PT1yYil7Yy5tb2RlPWhiO2JyZWFrfWlmKDMyJnJiKXtjLmJhY2s9LTEsYy5tb2RlPVY7YnJlYWt9aWYoNjQmcmIpe2EubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGMubW9kZT1sYjticmVha31jLmV4dHJhPTE1JnJiLGMubW9kZT1kYjtjYXNlIGRiOmlmKGMuZXh0cmEpe2Zvcih6Yj1jLmV4dHJhO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aCs9bSYoMTw8Yy5leHRyYSktMSxtPj4+PWMuZXh0cmEsbi09Yy5leHRyYSxjLmJhY2srPWMuZXh0cmF9Yy53YXM9Yy5sZW5ndGgsYy5tb2RlPWViO2Nhc2UgZWI6Zm9yKDtBYj1jLmRpc3Rjb2RlW20mKDE8PGMuZGlzdGJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigwPT09KDI0MCZyYikpe2Zvcih0Yj1xYix1Yj1yYix2Yj1zYjtBYj1jLmRpc3Rjb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLDY0JnJiKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixjLm1vZGU9bGI7YnJlYWt9Yy5vZmZzZXQ9c2IsYy5leHRyYT0xNSZyYixjLm1vZGU9ZmI7Y2FzZSBmYjppZihjLmV4dHJhKXtmb3IoemI9Yy5leHRyYTt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5vZmZzZXQrPW0mKDE8PGMuZXh0cmEpLTEsbT4+Pj1jLmV4dHJhLG4tPWMuZXh0cmEsYy5iYWNrKz1jLmV4dHJhfWlmKGMub2Zmc2V0PmMuZG1heCl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9bGI7YnJlYWt9Yy5tb2RlPWdiO2Nhc2UgZ2I6aWYoMD09PWopYnJlYWsgYTtpZihxPXAtaixjLm9mZnNldD5xKXtpZihxPWMub2Zmc2V0LXEscT5jLndoYXZlJiZjLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsYy5tb2RlPWxiO2JyZWFrfXE+Yy53bmV4dD8ocS09Yy53bmV4dCxvYj1jLndzaXplLXEpOm9iPWMud25leHQtcSxxPmMubGVuZ3RoJiYocT1jLmxlbmd0aCkscGI9Yy53aW5kb3d9ZWxzZSBwYj1mLG9iPWgtYy5vZmZzZXQscT1jLmxlbmd0aDtxPmomJihxPWopLGotPXEsYy5sZW5ndGgtPXE7ZG8gZltoKytdPXBiW29iKytdO3doaWxlKC0tcSk7MD09PWMubGVuZ3RoJiYoYy5tb2RlPWNiKTticmVhaztjYXNlIGhiOmlmKDA9PT1qKWJyZWFrIGE7ZltoKytdPWMubGVuZ3RoLGotLSxjLm1vZGU9Y2I7YnJlYWs7Y2FzZSBpYjppZihjLndyYXApe2Zvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG18PWVbZysrXTw8bixuKz04fWlmKHAtPWosYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxwJiYoYS5hZGxlcj1jLmNoZWNrPWMuZmxhZ3M/dChjLmNoZWNrLGYscCxoLXApOnMoYy5jaGVjayxmLHAsaC1wKSkscD1qLChjLmZsYWdzP206ZChtKSkhPT1jLmNoZWNrKXthLm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMubW9kZT1qYjtjYXNlIGpiOmlmKGMud3JhcCYmYy5mbGFncyl7Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg0Mjk0OTY3Mjk1JmMudG90YWwpKXthLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfW09MCxuPTB9Yy5tb2RlPWtiO2Nhc2Uga2I6eGI9RDticmVhayBhO2Nhc2UgbGI6eGI9RzticmVhayBhO2Nhc2UgbWI6cmV0dXJuIEg7Y2FzZSBuYjpkZWZhdWx0OnJldHVybiBGfXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sKGMud3NpemV8fHAhPT1hLmF2YWlsX291dCYmYy5tb2RlPGxiJiYoYy5tb2RlPGlifHxiIT09eikpJiZsKGEsYS5vdXRwdXQsYS5uZXh0X291dCxwLWEuYXZhaWxfb3V0KT8oYy5tb2RlPW1iLEgpOihvLT1hLmF2YWlsX2luLHAtPWEuYXZhaWxfb3V0LGEudG90YWxfaW4rPW8sYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxjLndyYXAmJnAmJihhLmFkbGVyPWMuY2hlY2s9Yy5mbGFncz90KGMuY2hlY2ssZixwLGEubmV4dF9vdXQtcCk6cyhjLmNoZWNrLGYscCxhLm5leHRfb3V0LXApKSxhLmRhdGFfdHlwZT1jLmJpdHMrKGMubGFzdD82NDowKSsoYy5tb2RlPT09Vj8xMjg6MCkrKGMubW9kZT09PWJifHxjLm1vZGU9PT1ZPzI1NjowKSwoMD09PW8mJjA9PT1wfHxiPT09eikmJnhiPT09QyYmKHhiPUkpLHhiKX1mdW5jdGlvbiBuKGEpe2lmKCFhfHwhYS5zdGF0ZSlyZXR1cm4gRjt2YXIgYj1hLnN0YXRlO3JldHVybiBiLndpbmRvdyYmKGIud2luZG93PW51bGwpLGEuc3RhdGU9bnVsbCxDfWZ1bmN0aW9uIG8oYSxiKXt2YXIgYztyZXR1cm4gYSYmYS5zdGF0ZT8oYz1hLnN0YXRlLDA9PT0oMiZjLndyYXApP0Y6KGMuaGVhZD1iLGIuZG9uZT0hMSxDKSk6Rn12YXIgcCxxLHI9YSgiLi4vdXRpbHMvY29tbW9uIikscz1hKCIuL2FkbGVyMzIiKSx0PWEoIi4vY3JjMzIiKSx1PWEoIi4vaW5mZmFzdCIpLHY9YSgiLi9pbmZ0cmVlcyIpLHc9MCx4PTEseT0yLHo9NCxBPTUsQj02LEM9MCxEPTEsRT0yLEY9LTIsRz0tMyxIPS00LEk9LTUsSj04LEs9MSxMPTIsTT0zLE49NCxPPTUsUD02LFE9NyxSPTgsUz05LFQ9MTAsVT0xMSxWPTEyLFc9MTMsWD0xNCxZPTE1LFo9MTYsJD0xNyxfPTE4LGFiPTE5LGJiPTIwLGNiPTIxLGRiPTIyLGViPTIzLGZiPTI0LGdiPTI1LGhiPTI2LGliPTI3LGpiPTI4LGtiPTI5LGxiPTMwLG1iPTMxLG5iPTMyLG9iPTg1MixwYj01OTIscWI9MTUscmI9cWIsc2I9ITA7Yy5pbmZsYXRlUmVzZXQ9ZyxjLmluZmxhdGVSZXNldDI9aCxjLmluZmxhdGVSZXNldEtlZXA9ZixjLmluZmxhdGVJbml0PWosYy5pbmZsYXRlSW5pdDI9aSxjLmluZmxhdGU9bSxjLmluZmxhdGVFbmQ9bixjLmluZmxhdGVHZXRIZWFkZXI9byxjLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9pbmZmYXN0IjozNCwiLi9pbmZ0cmVlcyI6MzZ9XSwzNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi4vdXRpbHMvY29tbW9uIiksZD0xNSxlPTg1MixmPTU5MixnPTAsaD0xLGk9MixqPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0saz1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLGw9WzEsMiwzLDQsNSw3LDksMTMsMTcsMjUsMzMsNDksNjUsOTcsMTI5LDE5MywyNTcsMzg1LDUxMyw3NjksMTAyNSwxNTM3LDIwNDksMzA3Myw0MDk3LDYxNDUsODE5MywxMjI4OSwxNjM4NSwyNDU3NywwLDBdLG09WzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiLG4sbyxwLHEscixzKXt2YXIgdCx1LHYsdyx4LHkseixBLEIsQz1zLmJpdHMsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49bnVsbCxPPTAsUD1uZXcgYy5CdWYxNihkKzEpLFE9bmV3IGMuQnVmMTYoZCsxKSxSPW51bGwsUz0wO2ZvcihEPTA7ZD49RDtEKyspUFtEXT0wO2ZvcihFPTA7bz5FO0UrKylQW2JbbitFXV0rKztmb3IoSD1DLEc9ZDtHPj0xJiYwPT09UFtHXTtHLS0pO2lmKEg+RyYmKEg9RyksMD09PUcpcmV0dXJuIHBbcSsrXT0yMDk3MTUyMCxwW3ErK109MjA5NzE1MjAscy5iaXRzPTEsMDtmb3IoRj0xO0c+RiYmMD09PVBbRl07RisrKTtmb3IoRj5IJiYoSD1GKSxLPTEsRD0xO2Q+PUQ7RCsrKWlmKEs8PD0xLEstPVBbRF0sMD5LKXJldHVybi0xO2lmKEs+MCYmKGE9PT1nfHwxIT09RykpcmV0dXJuLTE7Zm9yKFFbMV09MCxEPTE7ZD5EO0QrKylRW0QrMV09UVtEXStQW0RdO2ZvcihFPTA7bz5FO0UrKykwIT09YltuK0VdJiYocltRW2JbbitFXV0rK109RSk7aWYoYT09PWc/KE49Uj1yLHk9MTkpOmE9PT1oPyhOPWosTy09MjU3LFI9ayxTLT0yNTcseT0yNTYpOihOPWwsUj1tLHk9LTEpLE09MCxFPTAsRD1GLHg9cSxJPUgsSj0wLHY9LTEsTD0xPDxILHc9TC0xLGE9PT1oJiZMPmV8fGE9PT1pJiZMPmYpcmV0dXJuIDE7Zm9yKHZhciBUPTA7Oyl7VCsrLHo9RC1KLHJbRV08eT8oQT0wLEI9cltFXSk6cltFXT55PyhBPVJbUytyW0VdXSxCPU5bTytyW0VdXSk6KEE9OTYsQj0wKSx0PTE8PEQtSix1PTE8PEksRj11O2RvIHUtPXQscFt4KyhNPj5KKSt1XT16PDwyNHxBPDwxNnxCfDA7d2hpbGUoMCE9PXUpO2Zvcih0PTE8PEQtMTtNJnQ7KXQ+Pj0xO2lmKDAhPT10PyhNJj10LTEsTSs9dCk6TT0wLEUrKywwPT09LS1QW0RdKXtpZihEPT09RylicmVhaztEPWJbbityW0VdXX1pZihEPkgmJihNJncpIT09dil7Zm9yKDA9PT1KJiYoSj1IKSx4Kz1GLEk9RC1KLEs9MTw8STtHPkkrSiYmKEstPVBbSStKXSwhKDA+PUspKTspSSsrLEs8PD0xO2lmKEwrPTE8PEksYT09PWgmJkw+ZXx8YT09PWkmJkw+ZilyZXR1cm4gMTt2PU0mdyxwW3ZdPUg8PDI0fEk8PDE2fHgtcXwwfX1yZXR1cm4gMCE9PU0mJihwW3grTV09RC1KPDwyNHw2NDw8MTZ8MCkscy5iaXRzPUgsMH19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM3OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0se31dLDM4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIDI1Nj5hP2diW2FdOmdiWzI1NisoYT4+PjcpXX1mdW5jdGlvbiBmKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmIsYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yj4+PjgmMjU1fWZ1bmN0aW9uIGcoYSxiLGMpe2EuYmlfdmFsaWQ+Vi1jPyhhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxmKGEsYS5iaV9idWYpLGEuYmlfYnVmPWI+PlYtYS5iaV92YWxpZCxhLmJpX3ZhbGlkKz1jLVYpOihhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxhLmJpX3ZhbGlkKz1jKX1mdW5jdGlvbiBoKGEsYixjKXtnKGEsY1syKmJdLGNbMipiKzFdKX1mdW5jdGlvbiBpKGEsYil7dmFyIGM9MDtkbyBjfD0xJmEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9ZnVuY3Rpb24gaihhKXsxNj09PWEuYmlfdmFsaWQ/KGYoYSxhLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTApOmEuYmlfdmFsaWQ+PTgmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYS5iaV9idWYsYS5iaV9idWY+Pj04LGEuYmlfdmFsaWQtPTgpfWZ1bmN0aW9uIGsoYSxiKXt2YXIgYyxkLGUsZixnLGgsaT1iLmR5bl90cmVlLGo9Yi5tYXhfY29kZSxrPWIuc3RhdF9kZXNjLnN0YXRpY190cmVlLGw9Yi5zdGF0X2Rlc2MuaGFzX3N0cmVlLG09Yi5zdGF0X2Rlc2MuZXh0cmFfYml0cyxuPWIuc3RhdF9kZXNjLmV4dHJhX2Jhc2Usbz1iLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLHA9MDtmb3IoZj0wO1U+PWY7ZisrKWEuYmxfY291bnRbZl09MDtmb3IoaVsyKmEuaGVhcFthLmhlYXBfbWF4XSsxXT0wLGM9YS5oZWFwX21heCsxO1Q+YztjKyspZD1hLmhlYXBbY10sZj1pWzIqaVsyKmQrMV0rMV0rMSxmPm8mJihmPW8scCsrKSxpWzIqZCsxXT1mLGQ+anx8KGEuYmxfY291bnRbZl0rKyxnPTAsZD49biYmKGc9bVtkLW5dKSxoPWlbMipkXSxhLm9wdF9sZW4rPWgqKGYrZyksbCYmKGEuc3RhdGljX2xlbis9aCooa1syKmQrMV0rZykpKTtpZigwIT09cCl7ZG97Zm9yKGY9by0xOzA9PT1hLmJsX2NvdW50W2ZdOylmLS07YS5ibF9jb3VudFtmXS0tLGEuYmxfY291bnRbZisxXSs9MixhLmJsX2NvdW50W29dLS0scC09Mn13aGlsZShwPjApO2ZvcihmPW87MCE9PWY7Zi0tKWZvcihkPWEuYmxfY291bnRbZl07MCE9PWQ7KWU9YS5oZWFwWy0tY10sZT5qfHwoaVsyKmUrMV0hPT1mJiYoYS5vcHRfbGVuKz0oZi1pWzIqZSsxXSkqaVsyKmVdLGlbMiplKzFdPWYpLGQtLSl9fWZ1bmN0aW9uIGwoYSxiLGMpe3ZhciBkLGUsZj1uZXcgQXJyYXkoVSsxKSxnPTA7Zm9yKGQ9MTtVPj1kO2QrKylmW2RdPWc9ZytjW2QtMV08PDE7Zm9yKGU9MDtiPj1lO2UrKyl7dmFyIGg9YVsyKmUrMV07MCE9PWgmJihhWzIqZV09aShmW2hdKyssaCkpfX1mdW5jdGlvbiBtKCl7dmFyIGEsYixjLGQsZSxmPW5ldyBBcnJheShVKzEpO2ZvcihjPTAsZD0wO08tMT5kO2QrKylmb3IoaWJbZF09YyxhPTA7YTwxPDxfW2RdO2ErKyloYltjKytdPWQ7Zm9yKGhiW2MtMV09ZCxlPTAsZD0wOzE2PmQ7ZCsrKWZvcihqYltkXT1lLGE9MDthPDE8PGFiW2RdO2ErKylnYltlKytdPWQ7Zm9yKGU+Pj03O1I+ZDtkKyspZm9yKGpiW2RdPWU8PDcsYT0wO2E8MTw8YWJbZF0tNzthKyspZ2JbMjU2K2UrK109ZDtmb3IoYj0wO1U+PWI7YisrKWZbYl09MDtmb3IoYT0wOzE0Mz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IoOzI1NT49YTspZWJbMiphKzFdPTksYSsrLGZbOV0rKztmb3IoOzI3OT49YTspZWJbMiphKzFdPTcsYSsrLGZbN10rKztmb3IoOzI4Nz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IobChlYixRKzEsZiksYT0wO1I+YTthKyspZmJbMiphKzFdPTUsZmJbMiphXT1pKGEsNSk7a2I9bmV3IG5iKGViLF8sUCsxLFEsVSksbGI9bmV3IG5iKGZiLGFiLDAsUixVKSxtYj1uZXcgbmIobmV3IEFycmF5KDApLGJiLDAsUyxXKX1mdW5jdGlvbiBuKGEpe3ZhciBiO2ZvcihiPTA7UT5iO2IrKylhLmR5bl9sdHJlZVsyKmJdPTA7Zm9yKGI9MDtSPmI7YisrKWEuZHluX2R0cmVlWzIqYl09MDtmb3IoYj0wO1M+YjtiKyspYS5ibF90cmVlWzIqYl09MDthLmR5bl9sdHJlZVsyKlhdPTEsYS5vcHRfbGVuPWEuc3RhdGljX2xlbj0wLGEubGFzdF9saXQ9YS5tYXRjaGVzPTB9ZnVuY3Rpb24gbyhhKXthLmJpX3ZhbGlkPjg/ZihhLGEuYmlfYnVmKTphLmJpX3ZhbGlkPjAmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1hLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gcChhLGIsYyxkKXtvKGEpLGQmJihmKGEsYyksZihhLH5jKSksRS5hcnJheVNldChhLnBlbmRpbmdfYnVmLGEud2luZG93LGIsYyxhLnBlbmRpbmcpLGEucGVuZGluZys9Y31mdW5jdGlvbiBxKGEsYixjLGQpe3ZhciBlPTIqYixmPTIqYztyZXR1cm4gYVtlXTxhW2ZdfHxhW2VdPT09YVtmXSYmZFtiXTw9ZFtjXX1mdW5jdGlvbiByKGEsYixjKXtmb3IodmFyIGQ9YS5oZWFwW2NdLGU9Yzw8MTtlPD1hLmhlYXBfbGVuJiYoZTxhLmhlYXBfbGVuJiZxKGIsYS5oZWFwW2UrMV0sYS5oZWFwW2VdLGEuZGVwdGgpJiZlKyssIXEoYixkLGEuaGVhcFtlXSxhLmRlcHRoKSk7KWEuaGVhcFtjXT1hLmhlYXBbZV0sYz1lLGU8PD0xO2EuaGVhcFtjXT1kfWZ1bmN0aW9uIHMoYSxiLGMpe3ZhciBkLGYsaSxqLGs9MDtpZigwIT09YS5sYXN0X2xpdClkbyBkPWEucGVuZGluZ19idWZbYS5kX2J1ZisyKmtdPDw4fGEucGVuZGluZ19idWZbYS5kX2J1ZisyKmsrMV0sZj1hLnBlbmRpbmdfYnVmW2EubF9idWYra10saysrLDA9PT1kP2goYSxmLGIpOihpPWhiW2ZdLGgoYSxpK1ArMSxiKSxqPV9baV0sMCE9PWomJihmLT1pYltpXSxnKGEsZixqKSksZC0tLGk9ZShkKSxoKGEsaSxjKSxqPWFiW2ldLDAhPT1qJiYoZC09amJbaV0sZyhhLGQsaikpKTt3aGlsZShrPGEubGFzdF9saXQpO2goYSxYLGIpfWZ1bmN0aW9uIHQoYSxiKXt2YXIgYyxkLGUsZj1iLmR5bl90cmVlLGc9Yi5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsaD1iLnN0YXRfZGVzYy5oYXNfc3RyZWUsaT1iLnN0YXRfZGVzYy5lbGVtcyxqPS0xO2ZvcihhLmhlYXBfbGVuPTAsYS5oZWFwX21heD1ULGM9MDtpPmM7YysrKTAhPT1mWzIqY10/KGEuaGVhcFsrK2EuaGVhcF9sZW5dPWo9YyxhLmRlcHRoW2NdPTApOmZbMipjKzFdPTA7Zm9yKDthLmhlYXBfbGVuPDI7KWU9YS5oZWFwWysrYS5oZWFwX2xlbl09Mj5qPysrajowLGZbMiplXT0xLGEuZGVwdGhbZV09MCxhLm9wdF9sZW4tLSxoJiYoYS5zdGF0aWNfbGVuLT1nWzIqZSsxXSk7Zm9yKGIubWF4X2NvZGU9aixjPWEuaGVhcF9sZW4+PjE7Yz49MTtjLS0pcihhLGYsYyk7ZT1pO2RvIGM9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS5oZWFwX2xlbi0tXSxyKGEsZiwxKSxkPWEuaGVhcFsxXSxhLmhlYXBbLS1hLmhlYXBfbWF4XT1jLGEuaGVhcFstLWEuaGVhcF9tYXhdPWQsZlsyKmVdPWZbMipjXStmWzIqZF0sYS5kZXB0aFtlXT0oYS5kZXB0aFtjXT49YS5kZXB0aFtkXT9hLmRlcHRoW2NdOmEuZGVwdGhbZF0pKzEsZlsyKmMrMV09ZlsyKmQrMV09ZSxhLmhlYXBbMV09ZSsrLHIoYSxmLDEpO3doaWxlKGEuaGVhcF9sZW4+PTIpO2EuaGVhcFstLWEuaGVhcF9tYXhdPWEuaGVhcFsxXSxrKGEsYiksbChmLGosYS5ibF9jb3VudCl9ZnVuY3Rpb24gdShhLGIsYyl7dmFyIGQsZSxmPS0xLGc9YlsxXSxoPTAsaT03LGo9NDtmb3IoMD09PWcmJihpPTEzOCxqPTMpLGJbMiooYysxKSsxXT02NTUzNSxkPTA7Yz49ZDtkKyspZT1nLGc9YlsyKihkKzEpKzFdLCsraDxpJiZlPT09Z3x8KGo+aD9hLmJsX3RyZWVbMiplXSs9aDowIT09ZT8oZSE9PWYmJmEuYmxfdHJlZVsyKmVdKyssYS5ibF90cmVlWzIqWV0rKyk6MTA+PWg/YS5ibF90cmVlWzIqWl0rKzphLmJsX3RyZWVbMiokXSsrLGg9MCxmPWUsMD09PWc/KGk9MTM4LGo9Myk6ZT09PWc/KGk9NixqPTMpOihpPTcsaj00KSl9ZnVuY3Rpb24gdihhLGIsYyl7dmFyIGQsZSxmPS0xLGk9YlsxXSxqPTAsaz03LGw9NDtmb3IoMD09PWkmJihrPTEzOCxsPTMpLGQ9MDtjPj1kO2QrKylpZihlPWksaT1iWzIqKGQrMSkrMV0sISgrK2o8ayYmZT09PWkpKXtpZihsPmope2RvIGgoYSxlLGEuYmxfdHJlZSk7d2hpbGUoMCE9PS0tail9ZWxzZSAwIT09ZT8oZSE9PWYmJihoKGEsZSxhLmJsX3RyZWUpLGotLSksaChhLFksYS5ibF90cmVlKSxnKGEsai0zLDIpKToxMD49aj8oaChhLFosYS5ibF90cmVlKSxnKGEsai0zLDMpKTooaChhLCQsYS5ibF90cmVlKSxnKGEsai0xMSw3KSk7aj0wLGY9ZSwwPT09aT8oaz0xMzgsbD0zKTplPT09aT8oaz02LGw9Myk6KGs9NyxsPTQpfX1mdW5jdGlvbiB3KGEpe3ZhciBiO2Zvcih1KGEsYS5keW5fbHRyZWUsYS5sX2Rlc2MubWF4X2NvZGUpLHUoYSxhLmR5bl9kdHJlZSxhLmRfZGVzYy5tYXhfY29kZSksdChhLGEuYmxfZGVzYyksYj1TLTE7Yj49MyYmMD09PWEuYmxfdHJlZVsyKmNiW2JdKzFdO2ItLSk7cmV0dXJuIGEub3B0X2xlbis9MyooYisxKSs1KzUrNCxifWZ1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGU7Zm9yKGcoYSxiLTI1Nyw1KSxnKGEsYy0xLDUpLGcoYSxkLTQsNCksZT0wO2Q+ZTtlKyspZyhhLGEuYmxfdHJlZVsyKmNiW2VdKzFdLDMpO3YoYSxhLmR5bl9sdHJlZSxiLTEpLHYoYSxhLmR5bl9kdHJlZSxjLTEpfWZ1bmN0aW9uIHkoYSl7dmFyIGIsYz00MDkzNjI0NDQ3O2ZvcihiPTA7MzE+PWI7YisrLGM+Pj49MSlpZigxJmMmJjAhPT1hLmR5bl9sdHJlZVsyKmJdKXJldHVybiBHO2lmKDAhPT1hLmR5bl9sdHJlZVsxOF18fDAhPT1hLmR5bl9sdHJlZVsyMF18fDAhPT1hLmR5bl9sdHJlZVsyNl0pcmV0dXJuIEg7Zm9yKGI9MzI7UD5iO2IrKylpZigwIT09YS5keW5fbHRyZWVbMipiXSlyZXR1cm4gSDtyZXR1cm4gR31mdW5jdGlvbiB6KGEpe3BifHwobSgpLHBiPSEwKSxhLmxfZGVzYz1uZXcgb2IoYS5keW5fbHRyZWUsa2IpLGEuZF9kZXNjPW5ldyBvYihhLmR5bl9kdHJlZSxsYiksYS5ibF9kZXNjPW5ldyBvYihhLmJsX3RyZWUsbWIpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0wLG4oYSl9ZnVuY3Rpb24gQShhLGIsYyxkKXtnKGEsKEo8PDEpKyhkPzE6MCksMykscChhLGIsYywhMCl9ZnVuY3Rpb24gQihhKXtnKGEsSzw8MSwzKSxoKGEsWCxlYiksaihhKX1mdW5jdGlvbiBDKGEsYixjLGQpe3ZhciBlLGYsaD0wO2EubGV2ZWw+MD8oYS5zdHJtLmRhdGFfdHlwZT09PUkmJihhLnN0cm0uZGF0YV90eXBlPXkoYSkpLHQoYSxhLmxfZGVzYyksdChhLGEuZF9kZXNjKSxoPXcoYSksZT1hLm9wdF9sZW4rMys3Pj4+MyxmPWEuc3RhdGljX2xlbiszKzc+Pj4zLGU+PWYmJihlPWYpKTplPWY9Yys1LGU+PWMrNCYmLTEhPT1iP0EoYSxiLGMsZCk6YS5zdHJhdGVneT09PUZ8fGY9PT1lPyhnKGEsKEs8PDEpKyhkPzE6MCksMykscyhhLGViLGZiKSk6KGcoYSwoTDw8MSkrKGQ/MTowKSwzKSx4KGEsYS5sX2Rlc2MubWF4X2NvZGUrMSxhLmRfZGVzYy5tYXhfY29kZSsxLGgrMSkscyhhLGEuZHluX2x0cmVlLGEuZHluX2R0cmVlKSksbihhKSxkJiZvKGEpfWZ1bmN0aW9uIEQoYSxiLGMpe3JldHVybiBhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiphLmxhc3RfbGl0XT1iPj4+OCYyNTUsYS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqYS5sYXN0X2xpdCsxXT0yNTUmYixhLnBlbmRpbmdfYnVmW2EubF9idWYrYS5sYXN0X2xpdF09MjU1JmMsYS5sYXN0X2xpdCsrLDA9PT1iP2EuZHluX2x0cmVlWzIqY10rKzooYS5tYXRjaGVzKyssYi0tLGEuZHluX2x0cmVlWzIqKGhiW2NdK1ArMSldKyssYS5keW5fZHRyZWVbMiplKGIpXSsrKSxhLmxhc3RfbGl0PT09YS5saXRfYnVmc2l6ZS0xfXZhciBFPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEY9NCxHPTAsSD0xLEk9MixKPTAsSz0xLEw9MixNPTMsTj0yNTgsTz0yOSxQPTI1NixRPVArMStPLFI9MzAsUz0xOSxUPTIqUSsxLFU9MTUsVj0xNixXPTcsWD0yNTYsWT0xNixaPTE3LCQ9MTgsXz1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxhYj1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sYmI9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLGNiPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxkYj01MTIsZWI9bmV3IEFycmF5KDIqKFErMikpO2QoZWIpO3ZhciBmYj1uZXcgQXJyYXkoMipSKTtkKGZiKTt2YXIgZ2I9bmV3IEFycmF5KGRiKTtkKGdiKTt2YXIgaGI9bmV3IEFycmF5KE4tTSsxKTtkKGhiKTt2YXIgaWI9bmV3IEFycmF5KE8pO2QoaWIpO3ZhciBqYj1uZXcgQXJyYXkoUik7ZChqYik7dmFyIGtiLGxiLG1iLG5iPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5zdGF0aWNfdHJlZT1hLHRoaXMuZXh0cmFfYml0cz1iLHRoaXMuZXh0cmFfYmFzZT1jLHRoaXMuZWxlbXM9ZCx0aGlzLm1heF9sZW5ndGg9ZSx0aGlzLmhhc19zdHJlZT1hJiZhLmxlbmd0aH0sb2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmR5bl90cmVlPWEsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPWJ9LHBiPSExO2MuX3RyX2luaXQ9eixjLl90cl9zdG9yZWRfYmxvY2s9QSxjLl90cl9mbHVzaF9ibG9jaz1DLGMuX3RyX3RhbGx5PUQsYy5fdHJfYWxpZ249Qn0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfWIuZXhwb3J0cz1jfSx7fV19LHt9LFs5XSkoOSl9KTs="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
38 <script src="data:application/x-javascript;base64,IWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUocil7aWYobltyXSlyZXR1cm4gbltyXS5leHBvcnRzO3ZhciBpPW5bcl09e2V4cG9ydHM6e30saWQ6cixsb2FkZWQ6ITF9O3JldHVybiB0W3JdLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLGUpLGkubG9hZGVkPSEwLGkuZXhwb3J0c312YXIgbj17fTtyZXR1cm4gZS5tPXQsZS5jPW4sZS5wPSIiLGUoMCl9KFtmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3QuZXhwb3J0cz1lLnBkZk1ha2U9bigxKX0pLmNhbGwoZSxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUsbil7dGhpcy5kb2NEZWZpbml0aW9uPXQsdGhpcy5mb250cz1lfHxhLHRoaXMudmZzPW59dmFyIGk9bigyKSxvPW4oMyksYT17Um9ib3RvOntub3JtYWw6IlJvYm90by1SZWd1bGFyLnR0ZiIsYm9sZDoiUm9ib3RvLU1lZGl1bS50dGYiLGl0YWxpY3M6IlJvYm90by1JdGFsaWMudHRmIixib2xkaXRhbGljczoiUm9ib3RvLUl0YWxpYy50dGYifX07ci5wcm90b3R5cGUuX2NyZWF0ZURvYz1mdW5jdGlvbih0LG4pe3ZhciByPW5ldyBpKHRoaXMuZm9udHMpO3IuZnMuYmluZEZTKHRoaXMudmZzKTt2YXIgbyxhPXIuY3JlYXRlUGRmS2l0RG9jdW1lbnQodGhpcy5kb2NEZWZpbml0aW9uLHQpLHM9W107YS5vbigiZGF0YSIsZnVuY3Rpb24odCl7cy5wdXNoKHQpfSksYS5vbigiZW5kIixmdW5jdGlvbigpe289ZS5jb25jYXQocyksbihvLGEuX3BkZk1ha2VQYWdlcyl9KSxhLmVuZCgpfSxyLnByb3RvdHlwZS5fZ2V0UGFnZXM9ZnVuY3Rpb24odCxlKXtpZighZSl0aHJvdyJnZXRCdWZmZXIgaXMgYW4gYXN5bmMgbWV0aG9kIGFuZCBuZWVkcyBhIGNhbGxiYWNrIGFyZ3VtZW50Ijt0aGlzLl9jcmVhdGVEb2ModCxmdW5jdGlvbih0LG4pe2Uobil9KX0sci5wcm90b3R5cGUub3Blbj1mdW5jdGlvbih0KXt2YXIgZT13aW5kb3cub3BlbigiIiwiX2JsYW5rIik7dHJ5e3RoaXMuZ2V0RGF0YVVybChmdW5jdGlvbih0KXtlLmxvY2F0aW9uLmhyZWY9dH0pfWNhdGNoKG4pe3Rocm93IGUuY2xvc2UoKSxufX0sci5wcm90b3R5cGUucHJpbnQ9ZnVuY3Rpb24oKXt0aGlzLmdldERhdGFVcmwoZnVuY3Rpb24odCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7ZS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGUuc3R5bGUubGVmdD0iLTk5OTk5cHgiLGUuc3JjPXQsZS5vbmxvYWQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdCl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHQsITEpfSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpfSx7YXV0b1ByaW50OiEwfSl9LHIucHJvdG90eXBlLmRvd25sb2FkPWZ1bmN0aW9uKHQsZSl7ImZ1bmN0aW9uIj09dHlwZW9mIHQmJihlPXQsdD1udWxsKSx0PXR8fCJmaWxlLnBkZiIsdGhpcy5nZXRCdWZmZXIoZnVuY3Rpb24obil7byhuZXcgQmxvYihbbl0se3R5cGU6ImFwcGxpY2F0aW9uL3BkZiJ9KSx0KSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfSl9LHIucHJvdG90eXBlLmdldEJhc2U2ND1mdW5jdGlvbih0LGUpe2lmKCF0KXRocm93ImdldEJhc2U2NCBpcyBhbiBhc3luYyBtZXRob2QgYW5kIG5lZWRzIGEgY2FsbGJhY2sgYXJndW1lbnQiO3RoaXMuX2NyZWF0ZURvYyhlLGZ1bmN0aW9uKGUpe3QoZS50b1N0cmluZygiYmFzZTY0IikpfSl9LHIucHJvdG90eXBlLmdldERhdGFVcmw9ZnVuY3Rpb24odCxlKXtpZighdCl0aHJvdyJnZXREYXRhVXJsIGlzIGFuIGFzeW5jIG1ldGhvZCBhbmQgbmVlZHMgYSBjYWxsYmFjayBhcmd1bWVudCI7dGhpcy5fY3JlYXRlRG9jKGUsZnVuY3Rpb24oZSl7dCgiZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LCIrZS50b1N0cmluZygiYmFzZTY0IikpfSl9LHIucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbih0LGUpe2lmKCF0KXRocm93ImdldEJ1ZmZlciBpcyBhbiBhc3luYyBtZXRob2QgYW5kIG5lZWRzIGEgY2FsbGJhY2sgYXJndW1lbnQiO3RoaXMuX2NyZWF0ZURvYyhlLGZ1bmN0aW9uKGUpe3QoZSl9KX0sdC5leHBvcnRzPXtjcmVhdGVQZGY6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyByKHQsd2luZG93LnBkZk1ha2UuZm9udHMsd2luZG93LnBkZk1ha2UudmZzKX19fSkuY2FsbChlLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3RoaXMuZm9udERlc2NyaXB0b3JzPXR9ZnVuY3Rpb24gaSh0KXtpZighdClyZXR1cm4gbnVsbDtpZigibnVtYmVyIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBOdW1iZXIpdD17bGVmdDp0LHJpZ2h0OnQsdG9wOnQsYm90dG9tOnR9O2Vsc2UgaWYodCBpbnN0YW5jZW9mIEFycmF5KWlmKDI9PT10Lmxlbmd0aCl0PXtsZWZ0OnRbMF0sdG9wOnRbMV0scmlnaHQ6dFswXSxib3R0b206dFsxXX07ZWxzZXtpZig0IT09dC5sZW5ndGgpdGhyb3ciSW52YWxpZCBwYWdlTWFyZ2lucyBkZWZpbml0aW9uIjt0PXtsZWZ0OnRbMF0sdG9wOnRbMV0scmlnaHQ6dFsyXSxib3R0b206dFszXX19cmV0dXJuIHR9ZnVuY3Rpb24gbyh0KXt0LnJlZ2lzdGVyVGFibGVMYXlvdXRzKHtub0JvcmRlcnM6e2hMaW5lV2lkdGg6ZnVuY3Rpb24odCl7cmV0dXJuIDB9LHZMaW5lV2lkdGg6ZnVuY3Rpb24odCl7cmV0dXJuIDB9LHBhZGRpbmdMZWZ0OmZ1bmN0aW9uKHQpe3JldHVybiB0JiY0fHwwfSxwYWRkaW5nUmlnaHQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDxlLnRhYmxlLndpZHRocy5sZW5ndGgtMT80OjB9fSxoZWFkZXJMaW5lT25seTp7aExpbmVXaWR0aDpmdW5jdGlvbih0LGUpe3JldHVybiAwPT09dHx8dD09PWUudGFibGUuYm9keS5sZW5ndGg/MDp0PT09ZS50YWJsZS5oZWFkZXJSb3dzPzI6MH0sdkxpbmVXaWR0aDpmdW5jdGlvbih0KXtyZXR1cm4gMH0scGFkZGluZ0xlZnQ6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10PzA6OH0scGFkZGluZ1JpZ2h0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lLnRhYmxlLndpZHRocy5sZW5ndGgtMT8wOjh9fSxsaWdodEhvcml6b250YWxMaW5lczp7aExpbmVXaWR0aDpmdW5jdGlvbih0LGUpe3JldHVybiAwPT09dHx8dD09PWUudGFibGUuYm9keS5sZW5ndGg/MDp0PT09ZS50YWJsZS5oZWFkZXJSb3dzPzI6MX0sdkxpbmVXaWR0aDpmdW5jdGlvbih0KXtyZXR1cm4gMH0saExpbmVDb2xvcjpmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQ/ImJsYWNrIjoiI2FhYSJ9LHBhZGRpbmdMZWZ0OmZ1bmN0aW9uKHQpe3JldHVybiAwPT09dD8wOjh9LHBhZGRpbmdSaWdodDpmdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZS50YWJsZS53aWR0aHMubGVuZ3RoLTE/MDo4fX19KX1mdW5jdGlvbiBhKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZyl7dmFyIGU9eVt0LnRvVXBwZXJDYXNlKCldO2lmKCFlKXRocm93IlBhZ2Ugc2l6ZSAiK3QrIiBub3QgcmVjb2duaXplZCI7cmV0dXJue3dpZHRoOmVbMF0saGVpZ2h0OmVbMV19fXJldHVybiB0fWZ1bmN0aW9uIHModCl7dGhpcy5pc1N0cmluZz0hMCx0aGlzLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIGgodCxlKXt2YXIgbj1lLm9wdGlvbnMuc2l6ZVswXT5lLm9wdGlvbnMuc2l6ZVsxXT8ibGFuZHNjYXBlIjoicG9ydHJhaXQiO2lmKHQucGFnZVNpemUub3JpZW50YXRpb24hPT1uKXt2YXIgcj1lLm9wdGlvbnMuc2l6ZVswXSxpPWUub3B0aW9ucy5zaXplWzFdO2Uub3B0aW9ucy5zaXplPVtpLHJdfX1mdW5jdGlvbiB1KHQsZSxuKXtuLl9wZGZNYWtlUGFnZXM9dDtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7cj4wJiYoaCh0W3JdLG4pLG4uYWRkUGFnZShuLm9wdGlvbnMpKTtmb3IodmFyIGk9dFtyXSxvPTAsYT1pLml0ZW1zLmxlbmd0aDthPm87bysrKXt2YXIgcz1pLml0ZW1zW29dO3N3aXRjaChzLnR5cGUpe2Nhc2UidmVjdG9yIjpmKHMuaXRlbSxuKTticmVhaztjYXNlImxpbmUiOmwocy5pdGVtLHMuaXRlbS54LHMuaXRlbS55LG4pO2JyZWFrO2Nhc2UiaW1hZ2UiOmQocy5pdGVtLHMuaXRlbS54LHMuaXRlbS55LG4pfX1pLndhdGVybWFyayYmYyhpLG4pLGUuc2V0Rm9udFJlZnNUb1BkZkRvYygpfX1mdW5jdGlvbiBsKHQsZSxuLHIpe2U9ZXx8MCxuPW58fDA7dmFyIGk9dC5nZXRBc2NlbmRlckhlaWdodCgpO18uZHJhd0JhY2tncm91bmQodCxlLG4scik7Zm9yKHZhciBvPTAsYT10LmlubGluZXMubGVuZ3RoO2E+bztvKyspe3ZhciBzPXQuaW5saW5lc1tvXTtyLmZpbGwocy5jb2xvcnx8ImJsYWNrIiksci5zYXZlKCksci50cmFuc2Zvcm0oMSwwLDAsLTEsMCxyLnBhZ2UuaGVpZ2h0KTt2YXIgaD1zLmZvbnQuZW5jb2RlKHMudGV4dCk7ci5hZGRDb250ZW50KCJCVCIpLHIuYWRkQ29udGVudCgiIisoZStzLngpKyIgIisoci5wYWdlLmhlaWdodC1uLWkpKyIgVGQiKSxyLmFkZENvbnRlbnQoIi8iK2guZm9udElkKyIgIitzLmZvbnRTaXplKyIgVGYiKSxyLmFkZENvbnRlbnQoIjwiK2guZW5jb2RlZFRleHQrIj4gVGoiKSxyLmFkZENvbnRlbnQoIkVUIiksci5yZXN0b3JlKCl9Xy5kcmF3RGVjb3JhdGlvbnModCxlLG4scil9ZnVuY3Rpb24gYyh0LGUpe3ZhciBuPXQud2F0ZXJtYXJrO2UuZmlsbCgiYmxhY2siKSxlLm9wYWNpdHkoLjYpLGUuc2F2ZSgpLGUudHJhbnNmb3JtKDEsMCwwLC0xLDAsZS5wYWdlLmhlaWdodCk7dmFyIHI9MTgwKk1hdGguYXRhbjIoZS5wYWdlLmhlaWdodCxlLnBhZ2Uud2lkdGgpL01hdGguUEk7ZS5yb3RhdGUocix7b3JpZ2luOltlLnBhZ2Uud2lkdGgvMixlLnBhZ2UuaGVpZ2h0LzJdfSk7dmFyIGk9bi5mb250LmVuY29kZShuLnRleHQpO2UuYWRkQ29udGVudCgiQlQiKSxlLmFkZENvbnRlbnQoIiIrKGUucGFnZS53aWR0aC8yLW4uc2l6ZS5zaXplLndpZHRoLzIpKyIgIisoZS5wYWdlLmhlaWdodC8yLW4uc2l6ZS5zaXplLmhlaWdodC80KSsiIFRkIiksZS5hZGRDb250ZW50KCIvIitpLmZvbnRJZCsiICIrbi5zaXplLmZvbnRTaXplKyIgVGYiKSxlLmFkZENvbnRlbnQoIjwiK2kuZW5jb2RlZFRleHQrIj4gVGoiKSxlLmFkZENvbnRlbnQoIkVUIiksZS5yZXN0b3JlKCl9ZnVuY3Rpb24gZih0LGUpe3N3aXRjaChlLmxpbmVXaWR0aCh0LmxpbmVXaWR0aHx8MSksdC5kYXNoP2UuZGFzaCh0LmRhc2gubGVuZ3RoLHtzcGFjZTp0LmRhc2guc3BhY2V8fHQuZGFzaC5sZW5ndGh9KTplLnVuZGFzaCgpLGUuZmlsbE9wYWNpdHkodC5maWxsT3BhY2l0eXx8MSksZS5zdHJva2VPcGFjaXR5KHQuc3Ryb2tlT3BhY2l0eXx8MSksZS5saW5lSm9pbih0LmxpbmVKb2lufHwibWl0ZXIiKSx0LnR5cGUpe2Nhc2UiZWxsaXBzZSI6ZS5lbGxpcHNlKHQueCx0LnksdC5yMSx0LnIyKTticmVhaztjYXNlInJlY3QiOnQucj9lLnJvdW5kZWRSZWN0KHQueCx0LnksdC53LHQuaCx0LnIpOmUucmVjdCh0LngsdC55LHQudyx0LmgpO2JyZWFrO2Nhc2UibGluZSI6ZS5tb3ZlVG8odC54MSx0LnkxKSxlLmxpbmVUbyh0LngyLHQueTIpO2JyZWFrO2Nhc2UicG9seWxpbmUiOmlmKDA9PT10LnBvaW50cy5sZW5ndGgpYnJlYWs7ZS5tb3ZlVG8odC5wb2ludHNbMF0ueCx0LnBvaW50c1swXS55KTtmb3IodmFyIG49MSxyPXQucG9pbnRzLmxlbmd0aDtyPm47bisrKWUubGluZVRvKHQucG9pbnRzW25dLngsdC5wb2ludHNbbl0ueSk7aWYodC5wb2ludHMubGVuZ3RoPjEpe3ZhciBpPXQucG9pbnRzWzBdLG89dC5wb2ludHNbdC5wb2ludHMubGVuZ3RoLTFdOyh0LmNsb3NlUGF0aHx8aS54PT09by54JiZpLnk9PT1vLnkpJiZlLmNsb3NlUGF0aCgpfX10LmNvbG9yJiZ0LmxpbmVDb2xvcj9lLmZpbGxBbmRTdHJva2UodC5jb2xvcix0LmxpbmVDb2xvcik6dC5jb2xvcj9lLmZpbGwodC5jb2xvcik6ZS5zdHJva2UodC5saW5lQ29sb3J8fCJibGFjayIpfWZ1bmN0aW9uIGQodCxlLG4scil7ci5pbWFnZSh0LmltYWdlLHQueCx0Lnkse3dpZHRoOnQuX3dpZHRoLGhlaWdodDp0Ll9oZWlnaHR9KX12YXIgcD0obigxMSksbig1KSksZz1uKDYpLHY9bigyOCksbT1uKDEyKSx5PW4oNyksdz1uKDgpLF89big5KSxwPW4oNSk7ci5wcm90b3R5cGUuY3JlYXRlUGRmS2l0RG9jdW1lbnQ9ZnVuY3Rpb24odCxlKXtlPWV8fHt9O3ZhciBuPWEodC5wYWdlU2l6ZXx8ImE0Iik7ImxhbmRzY2FwZSI9PT10LnBhZ2VPcmllbnRhdGlvbiYmKG49e3dpZHRoOm4uaGVpZ2h0LGhlaWdodDpuLndpZHRofSksbi5vcmllbnRhdGlvbj0ibGFuZHNjYXBlIj09PXQucGFnZU9yaWVudGF0aW9uP3QucGFnZU9yaWVudGF0aW9uOiJwb3J0cmFpdCIsdGhpcy5wZGZLaXREb2M9bmV3IHYoe3NpemU6W24ud2lkdGgsbi5oZWlnaHRdLGNvbXByZXNzOiExfSksdGhpcy5wZGZLaXREb2MuaW5mby5Qcm9kdWNlcj0icGRmbWFrZSIsdGhpcy5wZGZLaXREb2MuaW5mby5DcmVhdG9yPSJwZGZtYWtlIix0aGlzLmZvbnRQcm92aWRlcj1uZXcgcCh0aGlzLmZvbnREZXNjcmlwdG9ycyx0aGlzLnBkZktpdERvYyksdC5pbWFnZXM9dC5pbWFnZXN8fHt9O3ZhciByPW5ldyBnKG4saSh0LnBhZ2VNYXJnaW5zfHw0MCksbmV3IHcodGhpcy5wZGZLaXREb2MsdC5pbWFnZXMpKTtvKHIpLGUudGFibGVMYXlvdXRzJiZyLnJlZ2lzdGVyVGFibGVMYXlvdXRzKGUudGFibGVMYXlvdXRzKTt2YXIgaD1yLmxheW91dERvY3VtZW50KHQuY29udGVudCx0aGlzLmZvbnRQcm92aWRlcix0LnN0eWxlc3x8e30sdC5kZWZhdWx0U3R5bGV8fHtmb250U2l6ZToxMixmb250OiJSb2JvdG8ifSx0LmJhY2tncm91bmQsdC5oZWFkZXIsdC5mb290ZXIsdC5pbWFnZXMsdC53YXRlcm1hcmssdC5wYWdlQnJlYWtCZWZvcmUpO2lmKHUoaCx0aGlzLmZvbnRQcm92aWRlcix0aGlzLnBkZktpdERvYyksZS5hdXRvUHJpbnQpe3ZhciBsPXRoaXMucGRmS2l0RG9jLnJlZih7UzoiSmF2YVNjcmlwdCIsSlM6bmV3IHMoInRoaXMucHJpbnRcXCh0cnVlXFwpOyIpfSksYz10aGlzLnBkZktpdERvYy5yZWYoe05hbWVzOltuZXcgcygiRW1iZWRkZWRKUyIpLG5ldyBtKHRoaXMucGRmS2l0RG9jLGwuaWQpXX0pO2wuZW5kKCksYy5lbmQoKSx0aGlzLnBkZktpdERvYy5fcm9vdC5kYXRhLk5hbWVzPXtKYXZhU2NyaXB0Om5ldyBtKHRoaXMucGRmS2l0RG9jLGMuaWQpfX1yZXR1cm4gdGhpcy5wZGZLaXREb2N9O3QuZXhwb3J0cz1yLHIucHJvdG90eXBlLmZzPW4oMTApfSxmdW5jdGlvbih0LGUsbil7dmFyIHIsaTsoZnVuY3Rpb24odCl7LyohIEBzb3VyY2UgaHR0cDovL3B1cmwuZWxpZ3JleS5jb20vZ2l0aHViL0ZpbGVTYXZlci5qcy9ibG9iL21hc3Rlci9GaWxlU2F2ZXIuanMgKi8KdmFyIG89b3x8InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYi5iaW5kKG5hdmlnYXRvcil8fGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtpZigidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IS9NU0lFIFsxLTldXC4vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpe3ZhciBlPXQuZG9jdW1lbnQsbj1mdW5jdGlvbigpe3JldHVybiB0LlVSTHx8dC53ZWJraXRVUkx8fHR9LHI9ZS5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJhIiksaT0iZG93bmxvYWQiaW4gcixvPWZ1bmN0aW9uKG4pe3ZhciByPWUuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnRzIik7ci5pbml0TW91c2VFdmVudCgiY2xpY2siLCEwLCExLHQsMCwwLDAsMCwwLCExLCExLCExLCExLDAsbnVsbCksbi5kaXNwYXRjaEV2ZW50KHIpfSxhPXQud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0scz10LnJlcXVlc3RGaWxlU3lzdGVtfHxhfHx0Lm1velJlcXVlc3RGaWxlU3lzdGVtLGg9ZnVuY3Rpb24oZSl7KHQuc2V0SW1tZWRpYXRlfHx0LnNldFRpbWVvdXQpKGZ1bmN0aW9uKCl7dGhyb3cgZX0sMCl9LHU9ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsbD0wLGM9MTAsZj1mdW5jdGlvbihlKXt2YXIgcj1mdW5jdGlvbigpeyJzdHJpbmciPT10eXBlb2YgZT9uKCkucmV2b2tlT2JqZWN0VVJMKGUpOmUucmVtb3ZlKCl9O3QuY2hyb21lP3IoKTpzZXRUaW1lb3V0KHIsYyl9LGQ9ZnVuY3Rpb24odCxlLG4pe2U9W10uY29uY2F0KGUpO2Zvcih2YXIgcj1lLmxlbmd0aDtyLS07KXt2YXIgaT10WyJvbiIrZVtyXV07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGkpdHJ5e2kuY2FsbCh0LG58fHQpfWNhdGNoKG8pe2gobyl9fX0scD1mdW5jdGlvbihlLGgpe3ZhciBjLHAsZyx2PXRoaXMsbT1lLnR5cGUseT0hMSx3PWZ1bmN0aW9uKCl7ZCh2LCJ3cml0ZXN0YXJ0IHByb2dyZXNzIHdyaXRlIHdyaXRlZW5kIi5zcGxpdCgiICIpKX0sXz1mdW5jdGlvbigpe2lmKCh5fHwhYykmJihjPW4oKS5jcmVhdGVPYmplY3RVUkwoZSkpLHApcC5sb2NhdGlvbi5ocmVmPWM7ZWxzZXt2YXIgcj10Lm9wZW4oYywiX2JsYW5rIik7dm9pZCAwPT1yJiYidW5kZWZpbmVkIiE9dHlwZW9mIHNhZmFyaSYmKHQubG9jYXRpb24uaHJlZj1jKX12LnJlYWR5U3RhdGU9di5ET05FLHcoKSxmKGMpfSxiPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB2LnJlYWR5U3RhdGUhPT12LkRPTkU/dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0seD17Y3JlYXRlOiEwLGV4Y2x1c2l2ZTohMX07cmV0dXJuIHYucmVhZHlTdGF0ZT12LklOSVQsaHx8KGg9ImRvd25sb2FkIiksaT8oYz1uKCkuY3JlYXRlT2JqZWN0VVJMKGUpLHIuaHJlZj1jLHIuZG93bmxvYWQ9aCxvKHIpLHYucmVhZHlTdGF0ZT12LkRPTkUsdygpLHZvaWQgZihjKSk6KHQuY2hyb21lJiZtJiZtIT09dSYmKGc9ZS5zbGljZXx8ZS53ZWJraXRTbGljZSxlPWcuY2FsbChlLDAsZS5zaXplLHUpLHk9ITApLGEmJiJkb3dubG9hZCIhPT1oJiYoaCs9Ii5kb3dubG9hZCIpLChtPT09dXx8YSkmJihwPXQpLHM/KGwrPWUuc2l6ZSx2b2lkIHModC5URU1QT1JBUlksbCxiKGZ1bmN0aW9uKHQpe3Qucm9vdC5nZXREaXJlY3RvcnkoInNhdmVkIix4LGIoZnVuY3Rpb24odCl7dmFyIG49ZnVuY3Rpb24oKXt0LmdldEZpbGUoaCx4LGIoZnVuY3Rpb24odCl7dC5jcmVhdGVXcml0ZXIoYihmdW5jdGlvbihuKXtuLm9ud3JpdGVlbmQ9ZnVuY3Rpb24oZSl7cC5sb2NhdGlvbi5ocmVmPXQudG9VUkwoKSx2LnJlYWR5U3RhdGU9di5ET05FLGQodiwid3JpdGVlbmQiLGUpLGYodCl9LG4ub25lcnJvcj1mdW5jdGlvbigpe3ZhciB0PW4uZXJyb3I7dC5jb2RlIT09dC5BQk9SVF9FUlImJl8oKX0sIndyaXRlc3RhcnQgcHJvZ3Jlc3Mgd3JpdGUgYWJvcnQiLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbih0KXtuWyJvbiIrdF09dlsib24iK3RdfSksbi53cml0ZShlKSx2LmFib3J0PWZ1bmN0aW9uKCl7bi5hYm9ydCgpLHYucmVhZHlTdGF0ZT12LkRPTkV9LHYucmVhZHlTdGF0ZT12LldSSVRJTkd9KSxfKX0pLF8pfTt0LmdldEZpbGUoaCx7Y3JlYXRlOiExfSxiKGZ1bmN0aW9uKHQpe3QucmVtb3ZlKCksbigpfSksYihmdW5jdGlvbih0KXt0LmNvZGU9PT10Lk5PVF9GT1VORF9FUlI/bigpOl8oKX0pKX0pLF8pfSksXykpOnZvaWQgXygpKX0sZz1wLnByb3RvdHlwZSx2PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBwKHQsZSl9O3JldHVybiBnLmFib3J0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0LnJlYWR5U3RhdGU9dC5ET05FLGQodCwiYWJvcnQiKX0sZy5yZWFkeVN0YXRlPWcuSU5JVD0wLGcuV1JJVElORz0xLGcuRE9ORT0yLGcuZXJyb3I9Zy5vbndyaXRlc3RhcnQ9Zy5vbnByb2dyZXNzPWcub253cml0ZT1nLm9uYWJvcnQ9Zy5vbmVycm9yPWcub253cml0ZWVuZD1udWxsLHZ9fSgidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fHRoaXMuY29udGVudCk7InVuZGVmaW5lZCIhPXR5cGVvZiB0JiZudWxsIT09dD90LmV4cG9ydHM9bzpudWxsIT09bigxMykmJm51bGwhPW4oMTQpJiYocj1bXSxpPWZ1bmN0aW9uKCl7cmV0dXJuIG99LmFwcGx5KGUsciksISh2b2lkIDAhPT1pJiYodC5leHBvcnRzPWkpKSl9KS5jYWxsKGUsbigxNSkodCkpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIHQoZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiB0Pyh0aGlzLmxlbmd0aD0wLHRoaXMucGFyZW50PXZvaWQgMCwibnVtYmVyIj09dHlwZW9mIGU/cih0aGlzLGUpOiJzdHJpbmciPT10eXBlb2YgZT9pKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOiJ1dGY4Iik6byh0aGlzLGUpKTphcmd1bWVudHMubGVuZ3RoPjE/bmV3IHQoZSxhcmd1bWVudHNbMV0pOm5ldyB0KGUpfWZ1bmN0aW9uIHIoZSxuKXtpZihlPWMoZSwwPm4/MDowfGYobikpLCF0LlRZUEVEX0FSUkFZX1NVUFBPUlQpZm9yKHZhciByPTA7bj5yO3IrKyllW3JdPTA7cmV0dXJuIGV9ZnVuY3Rpb24gaSh0LGUsbil7KCJzdHJpbmciIT10eXBlb2Ygbnx8IiI9PT1uKSYmKG49InV0ZjgiKTt2YXIgcj0wfHAoZSxuKTtyZXR1cm4gdD1jKHQsciksdC53cml0ZShlLG4pLHR9ZnVuY3Rpb24gbyhlLG4pe2lmKHQuaXNCdWZmZXIobikpcmV0dXJuIGEoZSxuKTtpZihHKG4pKXJldHVybiBzKGUsbik7aWYobnVsbD09bil0aHJvdyBuZXcgVHlwZUVycm9yKCJtdXN0IHN0YXJ0IHdpdGggbnVtYmVyLCBidWZmZXIsIGFycmF5IG9yIHN0cmluZyIpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJm4uYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/aChlLG4pOm4ubGVuZ3RoP3UoZSxuKTpsKGUsbil9ZnVuY3Rpb24gYSh0LGUpe3ZhciBuPTB8ZihlLmxlbmd0aCk7cmV0dXJuIHQ9Yyh0LG4pLGUuY29weSh0LDAsMCxuKSx0fWZ1bmN0aW9uIHModCxlKXt2YXIgbj0wfGYoZS5sZW5ndGgpO3Q9Yyh0LG4pO2Zvcih2YXIgcj0wO24+cjtyKz0xKXRbcl09MjU1JmVbcl07cmV0dXJuIHR9ZnVuY3Rpb24gaCh0LGUpe3ZhciBuPTB8ZihlLmxlbmd0aCk7dD1jKHQsbik7Zm9yKHZhciByPTA7bj5yO3IrPTEpdFtyXT0yNTUmZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiB1KHQsZSl7dmFyIG49MHxmKGUubGVuZ3RoKTt0PWModCxuKTtmb3IodmFyIHI9MDtuPnI7cis9MSl0W3JdPTI1NSZlW3JdO3JldHVybiB0fWZ1bmN0aW9uIGwodCxlKXt2YXIgbixyPTA7IkJ1ZmZlciI9PT1lLnR5cGUmJkcoZS5kYXRhKSYmKG49ZS5kYXRhLHI9MHxmKG4ubGVuZ3RoKSksdD1jKHQscik7Zm9yKHZhciBpPTA7cj5pO2krPTEpdFtpXT0yNTUmbltpXTtyZXR1cm4gdH1mdW5jdGlvbiBjKGUsbil7dC5UWVBFRF9BUlJBWV9TVVBQT1JUP2U9dC5fYXVnbWVudChuZXcgVWludDhBcnJheShuKSk6KGUubGVuZ3RoPW4sZS5faXNCdWZmZXI9ITApO3ZhciByPTAhPT1uJiZuPD10LnBvb2xTaXplPj4+MTtyZXR1cm4gciYmKGUucGFyZW50PVkpLGV9ZnVuY3Rpb24gZih0KXtpZih0Pj1xKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitxLnRvU3RyaW5nKDE2KSsiIGJ5dGVzIik7cmV0dXJuIDB8dH1mdW5jdGlvbiBkKGUsbil7aWYoISh0aGlzIGluc3RhbmNlb2YgZCkpcmV0dXJuIG5ldyBkKGUsbik7dmFyIHI9bmV3IHQoZSxuKTtyZXR1cm4gZGVsZXRlIHIucGFyZW50LHJ9ZnVuY3Rpb24gcCh0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdCYmKHQ9U3RyaW5nKHQpKSwwPT09dC5sZW5ndGgpcmV0dXJuIDA7c3dpdGNoKGV8fCJ1dGY4Iil7Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UicmF3IjpyZXR1cm4gdC5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKnQubGVuZ3RoO2Nhc2UiaGV4IjpyZXR1cm4gdC5sZW5ndGg+Pj4xO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFAodCkubGVuZ3RoO2Nhc2UiYmFzZTY0IjpyZXR1cm4gVyh0KS5sZW5ndGg7ZGVmYXVsdDpyZXR1cm4gdC5sZW5ndGh9fWZ1bmN0aW9uIGcodCxlLG4scil7bj1OdW1iZXIobil8fDA7dmFyIGk9dC5sZW5ndGgtbjtyPyhyPU51bWJlcihyKSxyPmkmJihyPWkpKTpyPWk7dmFyIG89ZS5sZW5ndGg7aWYobyUyIT09MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaGV4IHN0cmluZyIpO3I+by8yJiYocj1vLzIpO2Zvcih2YXIgYT0wO3I+YTthKyspe3ZhciBzPXBhcnNlSW50KGUuc3Vic3RyKDIqYSwyKSwxNik7aWYoaXNOYU4ocykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGhleCBzdHJpbmciKTt0W24rYV09c31yZXR1cm4gYX1mdW5jdGlvbiB2KHQsZSxuLHIpe3JldHVybiBOKFAoZSx0Lmxlbmd0aC1uKSx0LG4scil9ZnVuY3Rpb24gbSh0LGUsbixyKXtyZXR1cm4gTihGKGUpLHQsbixyKX1mdW5jdGlvbiB5KHQsZSxuLHIpe3JldHVybiBtKHQsZSxuLHIpfWZ1bmN0aW9uIHcodCxlLG4scil7cmV0dXJuIE4oVyhlKSx0LG4scil9ZnVuY3Rpb24gXyh0LGUsbixyKXtyZXR1cm4gTih6KGUsdC5sZW5ndGgtbiksdCxuLHIpfWZ1bmN0aW9uIGIodCxlLG4pe3JldHVybiBILmZyb21CeXRlQXJyYXkoMD09PWUmJm49PT10Lmxlbmd0aD90OnQuc2xpY2UoZSxuKSl9ZnVuY3Rpb24geCh0LGUsbil7dmFyIHI9IiIsaT0iIjtuPU1hdGgubWluKHQubGVuZ3RoLG4pO2Zvcih2YXIgbz1lO24+bztvKyspdFtvXTw9MTI3PyhyKz1qKGkpK1N0cmluZy5mcm9tQ2hhckNvZGUodFtvXSksaT0iIik6aSs9IiUiK3Rbb10udG9TdHJpbmcoMTYpO3JldHVybiByK2ooaSl9ZnVuY3Rpb24gUyh0LGUsbil7dmFyIHI9IiI7bj1NYXRoLm1pbih0Lmxlbmd0aCxuKTtmb3IodmFyIGk9ZTtuPmk7aSsrKXIrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbaV0pO3JldHVybiByfWZ1bmN0aW9uIGsodCxlLG4pe3ZhciByPSIiO249TWF0aC5taW4odC5sZW5ndGgsbik7Zm9yKHZhciBpPWU7bj5pO2krKylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbaV0pO3JldHVybiByfWZ1bmN0aW9uIEUodCxlLG4pe3ZhciByPXQubGVuZ3RoOyghZXx8MD5lKSYmKGU9MCksKCFufHwwPm58fG4+cikmJihuPXIpO2Zvcih2YXIgaT0iIixvPWU7bj5vO28rKylpKz1VKHRbb10pO3JldHVybiBpfWZ1bmN0aW9uIEModCxlLG4pe2Zvcih2YXIgcj10LnNsaWNlKGUsbiksaT0iIixvPTA7bzxyLmxlbmd0aDtvKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUocltvXSsyNTYqcltvKzFdKTtyZXR1cm4gaX1mdW5jdGlvbiBJKHQsZSxuKXtpZih0JTEhPT0wfHwwPnQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKHQrZT5uKXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gQShlLG4scixpLG8sYSl7aWYoIXQuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYnVmZmVyIG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UiKTtpZihuPm98fGE+bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmFsdWUgaXMgb3V0IG9mIGJvdW5kcyIpO2lmKHIraT5lLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiaW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gTCh0LGUsbixyKXswPmUmJihlPTY1NTM1K2UrMSk7Zm9yKHZhciBpPTAsbz1NYXRoLm1pbih0Lmxlbmd0aC1uLDIpO28+aTtpKyspdFtuK2ldPShlJjI1NTw8OCoocj9pOjEtaSkpPj4+OCoocj9pOjEtaSl9ZnVuY3Rpb24gUih0LGUsbixyKXswPmUmJihlPTQyOTQ5NjcyOTUrZSsxKTtmb3IodmFyIGk9MCxvPU1hdGgubWluKHQubGVuZ3RoLW4sNCk7bz5pO2krKyl0W24raV09ZT4+PjgqKHI/aTozLWkpJjI1NX1mdW5jdGlvbiBCKHQsZSxuLHIsaSxvKXtpZihlPml8fG8+ZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidmFsdWUgaXMgb3V0IG9mIGJvdW5kcyIpO2lmKG4rcj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiaW5kZXggb3V0IG9mIHJhbmdlIik7aWYoMD5uKXRocm93IG5ldyBSYW5nZUVycm9yKCJpbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBUKHQsZSxuLHIsaSl7cmV0dXJuIGl8fEIodCxlLG4sNCwzLjQwMjgyMzQ2NjM4NTI4ODZlMzgsLTMuNDAyODIzNDY2Mzg1Mjg4NmUzOCksWi53cml0ZSh0LGUsbixyLDIzLDQpLG4rNH1mdW5jdGlvbiBNKHQsZSxuLHIsaSl7cmV0dXJuIGl8fEIodCxlLG4sOCwxLjc5NzY5MzEzNDg2MjMxNTdlMzA4LC0xLjc5NzY5MzEzNDg2MjMxNTdlMzA4KSxaLndyaXRlKHQsZSxuLHIsNTIsOCksbis4fWZ1bmN0aW9uIE8odCl7aWYodD1EKHQpLnJlcGxhY2UoWCwiIiksdC5sZW5ndGg8MilyZXR1cm4iIjtmb3IoO3QubGVuZ3RoJTQhPT0wOyl0Kz0iPSI7cmV0dXJuIHR9ZnVuY3Rpb24gRCh0KXtyZXR1cm4gdC50cmltP3QudHJpbSgpOnQucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfWZ1bmN0aW9uIFUodCl7cmV0dXJuIDE2PnQ/IjAiK3QudG9TdHJpbmcoMTYpOnQudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIFAodCxlKXtlPWV8fDEvMDtmb3IodmFyIG4scj10Lmxlbmd0aCxpPW51bGwsbz1bXSxhPTA7cj5hO2ErKyl7aWYobj10LmNoYXJDb2RlQXQoYSksbj41NTI5NSYmNTczNDQ+bil7aWYoIWkpe2lmKG4+NTYzMTkpeyhlLT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pZihhKzE9PT1yKXsoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSk7Y29udGludWV9aT1uO2NvbnRpbnVlfWlmKDU2MzIwPm4peyhlLT0zKT4tMSYmby5wdXNoKDIzOSwxOTEsMTg5KSxpPW47Y29udGludWV9bj1pLTU1Mjk2PDwxMHxuLTU2MzIwfDY1NTM2LGk9bnVsbH1lbHNlIGkmJigoZS09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSksaT1udWxsKTtpZigxMjg+bil7aWYoKGUtPTEpPDApYnJlYWs7by5wdXNoKG4pfWVsc2UgaWYoMjA0OD5uKXtpZigoZS09Mik8MClicmVhaztvLnB1c2gobj4+NnwxOTIsNjMmbnwxMjgpfWVsc2UgaWYoNjU1MzY+bil7aWYoKGUtPTMpPDApYnJlYWs7by5wdXNoKG4+PjEyfDIyNCxuPj42JjYzfDEyOCw2MyZufDEyOCl9ZWxzZXtpZighKDIwOTcxNTI+bikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoZS09NCk8MClicmVhaztvLnB1c2gobj4+MTh8MjQwLG4+PjEyJjYzfDEyOCxuPj42JjYzfDEyOCw2MyZufDEyOCl9fXJldHVybiBvfWZ1bmN0aW9uIEYodCl7Zm9yKHZhciBlPVtdLG49MDtuPHQubGVuZ3RoO24rKyllLnB1c2goMjU1JnQuY2hhckNvZGVBdChuKSk7cmV0dXJuIGV9ZnVuY3Rpb24geih0LGUpe2Zvcih2YXIgbixyLGksbz1bXSxhPTA7YTx0Lmxlbmd0aCYmISgoZS09Mik8MCk7YSsrKW49dC5jaGFyQ29kZUF0KGEpLHI9bj4+OCxpPW4lMjU2LG8ucHVzaChpKSxvLnB1c2gocik7cmV0dXJuIG99ZnVuY3Rpb24gVyh0KXtyZXR1cm4gSC50b0J5dGVBcnJheShPKHQpKX1mdW5jdGlvbiBOKHQsZSxuLHIpe2Zvcih2YXIgaT0wO3I+aSYmIShpK24+PWUubGVuZ3RofHxpPj10Lmxlbmd0aCk7aSsrKWVbaStuXT10W2ldO3JldHVybiBpfWZ1bmN0aW9uIGoodCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQodCl9Y2F0Y2goZSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoNjU1MzMpfX0vKiEKCSAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgoJICoKCSAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPgoJICogQGxpY2Vuc2UgIE1JVAoJICovCnZhciBIPW4oMzEpLFo9bigyOSksRz1uKDMwKTtlLkJ1ZmZlcj10LGUuU2xvd0J1ZmZlcj1kLGUuSU5TUEVDVF9NQVhfQllURVM9NTAsdC5wb29sU2l6ZT04MTkyO3ZhciBxPTEwNzM3NDE4MjMsWT17fTt0LlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9bmV3IEFycmF5QnVmZmVyKDApLGU9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIGUuZm9vPWZ1bmN0aW9uKCl7cmV0dXJuIDQyfSw0Mj09PWUuZm9vKCkmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnN1YmFycmF5JiYwPT09bmV3IFVpbnQ4QXJyYXkoMSkuc3ViYXJyYXkoMSwxKS5ieXRlTGVuZ3RofWNhdGNoKG4pe3JldHVybiExfX0oKSx0LmlzQnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiEobnVsbD09dHx8IXQuX2lzQnVmZmVyKX0sdC5jb21wYXJlPWZ1bmN0aW9uKGUsbil7aWYoIXQuaXNCdWZmZXIoZSl8fCF0LmlzQnVmZmVyKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMiKTtpZihlPT09bilyZXR1cm4gMDtmb3IodmFyIHI9ZS5sZW5ndGgsaT1uLmxlbmd0aCxvPTAsYT1NYXRoLm1pbihyLGkpO2E+byYmZVtvXT09PW5bb107KSsrbztyZXR1cm4gbyE9PWEmJihyPWVbb10saT1uW29dKSxpPnI/LTE6cj5pPzE6MH0sdC5pc0VuY29kaW5nPWZ1bmN0aW9uKHQpe3N3aXRjaChTdHJpbmcodCkudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInJhdyI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSx0LmNvbmNhdD1mdW5jdGlvbihlLG4pe2lmKCFHKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoImxpc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzLiIpO2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbmV3IHQoMCk7aWYoMT09PWUubGVuZ3RoKXJldHVybiBlWzBdO3ZhciByO2lmKHZvaWQgMD09PW4pZm9yKG49MCxyPTA7cjxlLmxlbmd0aDtyKyspbis9ZVtyXS5sZW5ndGg7dmFyIGk9bmV3IHQobiksbz0wO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBhPWVbcl07YS5jb3B5KGksbyksbys9YS5sZW5ndGh9cmV0dXJuIGl9LHQuYnl0ZUxlbmd0aD1wLHQucHJvdG90eXBlLmxlbmd0aD12b2lkIDAsdC5wcm90b3R5cGUucGFyZW50PXZvaWQgMCx0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih0LGUsbil7dmFyIHI9ITE7aWYoZT0wfGUsbj12b2lkIDA9PT1ufHxuPT09MS8wP3RoaXMubGVuZ3RoOjB8bix0fHwodD0idXRmOCIpLDA+ZSYmKGU9MCksbj50aGlzLmxlbmd0aCYmKG49dGhpcy5sZW5ndGgpLGU+PW4pcmV0dXJuIiI7Zm9yKDs7KXN3aXRjaCh0KXtjYXNlImhleCI6cmV0dXJuIEUodGhpcyxlLG4pO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHgodGhpcyxlLG4pO2Nhc2UiYXNjaWkiOnJldHVybiBTKHRoaXMsZSxuKTtjYXNlImJpbmFyeSI6cmV0dXJuIGsodGhpcyxlLG4pO2Nhc2UiYmFzZTY0IjpyZXR1cm4gYih0aGlzLGUsbik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBDKHRoaXMsZSxuKTtkZWZhdWx0OmlmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0KTt0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLHI9ITB9fSx0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oZSl7aWYoIXQuaXNCdWZmZXIoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09ZT8hMDowPT09dC5jb21wYXJlKHRoaXMsZSl9LHQucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdD0iIixuPWUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHRoaXMubGVuZ3RoPjAmJih0PXRoaXMudG9TdHJpbmcoImhleCIsMCxuKS5tYXRjaCgvLnsyfS9nKS5qb2luKCIgIiksdGhpcy5sZW5ndGg+biYmKHQrPSIgLi4uICIpKSwiPEJ1ZmZlciAiK3QrIj4ifSx0LnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKGUpe2lmKCF0LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIiKTtyZXR1cm4gdGhpcz09PWU/MDp0LmNvbXBhcmUodGhpcyxlKX0sdC5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihlLG4pe2Z1bmN0aW9uIHIodCxlLG4pe2Zvcih2YXIgcj0tMSxpPTA7bitpPHQubGVuZ3RoO2krKylpZih0W24raV09PT1lWy0xPT09cj8wOmktcl0pe2lmKC0xPT09ciYmKHI9aSksaS1yKzE9PT1lLmxlbmd0aClyZXR1cm4gbityfWVsc2Ugcj0tMTtyZXR1cm4tMX1pZihuPjIxNDc0ODM2NDc/bj0yMTQ3NDgzNjQ3Oi0yMTQ3NDgzNjQ4Pm4mJihuPS0yMTQ3NDgzNjQ4KSxuPj49MCwwPT09dGhpcy5sZW5ndGgpcmV0dXJuLTE7aWYobj49dGhpcy5sZW5ndGgpcmV0dXJuLTE7aWYoMD5uJiYobj1NYXRoLm1heCh0aGlzLmxlbmd0aCtuLDApKSwic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIDA9PT1lLmxlbmd0aD8tMTpTdHJpbmcucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLGUsbik7aWYodC5pc0J1ZmZlcihlKSlyZXR1cm4gcih0aGlzLGUsbik7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiB0LlRZUEVEX0FSUkFZX1NVUFBPUlQmJiJmdW5jdGlvbiI9PT1VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP1VpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2YuY2FsbCh0aGlzLGUsbik6cih0aGlzLFtlXSxuKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX0sdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlYWRVSW50OCh0KX0sdC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMud3JpdGVVSW50OCh0LGUpfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUsbixyKXtpZih2b2lkIDA9PT1lKXI9InV0ZjgiLG49dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09biYmInN0cmluZyI9PXR5cGVvZiBlKXI9ZSxuPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKGlzRmluaXRlKGUpKWU9MHxlLGlzRmluaXRlKG4pPyhuPTB8bix2b2lkIDA9PT1yJiYocj0idXRmOCIpKToocj1uLG49dm9pZCAwKTtlbHNle3ZhciBpPXI7cj1lLGU9MHxuLG49aX12YXIgbz10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1ufHxuPm8pJiYobj1vKSx0Lmxlbmd0aD4wJiYoMD5ufHwwPmUpfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJhdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO3J8fChyPSJ1dGY4Iik7Zm9yKHZhciBhPSExOzspc3dpdGNoKHIpe2Nhc2UiaGV4IjpyZXR1cm4gZyh0aGlzLHQsZSxuKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB2KHRoaXMsdCxlLG4pO2Nhc2UiYXNjaWkiOnJldHVybiBtKHRoaXMsdCxlLG4pO2Nhc2UiYmluYXJ5IjpyZXR1cm4geSh0aGlzLHQsZSxuKTtjYXNlImJhc2U2NCI6cmV0dXJuIHcodGhpcyx0LGUsbik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBfKHRoaXMsdCxlLG4pO2RlZmF1bHQ6aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3IpO3I9KCIiK3IpLnRvTG93ZXJDYXNlKCksYT0hMH19LHQucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX0sdC5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzLmxlbmd0aDtlPX5+ZSxuPXZvaWQgMD09PW4/cjp+fm4sMD5lPyhlKz1yLDA+ZSYmKGU9MCkpOmU+ciYmKGU9ciksMD5uPyhuKz1yLDA+biYmKG49MCkpOm4+ciYmKG49ciksZT5uJiYobj1lKTt2YXIgaTtpZih0LlRZUEVEX0FSUkFZX1NVUFBPUlQpaT10Ll9hdWdtZW50KHRoaXMuc3ViYXJyYXkoZSxuKSk7ZWxzZXt2YXIgbz1uLWU7aT1uZXcgdChvLHZvaWQgMCk7Zm9yKHZhciBhPTA7bz5hO2ErKylpW2FdPXRoaXNbYStlXX1yZXR1cm4gaS5sZW5ndGgmJihpLnBhcmVudD10aGlzLnBhcmVudHx8dGhpcyksaX0sdC5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0LGUsbil7dD0wfHQsZT0wfGUsbnx8SSh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgcj10aGlzW3RdLGk9MSxvPTA7KytvPGUmJihpKj0yNTYpOylyKz10aGlzW3Qrb10qaTtyZXR1cm4gcn0sdC5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbih0LGUsbil7dD0wfHQsZT0wfGUsbnx8SSh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgcj10aGlzW3QrLS1lXSxpPTE7ZT4wJiYoaSo9MjU2KTspcis9dGhpc1t0Ky0tZV0qaTtyZXR1cm4gcn0sdC5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEkodCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSx0LnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8SSh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSx0LnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8SSh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDh8dGhpc1t0KzFdfSx0LnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8SSh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LHQucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxJKHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sdC5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKHQsZSxuKXt0PTB8dCxlPTB8ZSxufHxJKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciByPXRoaXNbdF0saT0xLG89MDsrK288ZSYmKGkqPTI1Nik7KXIrPXRoaXNbdCtvXSppO3JldHVybiBpKj0xMjgscj49aSYmKHItPU1hdGgucG93KDIsOCplKSkscn0sdC5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHQsZSxuKXt0PTB8dCxlPTB8ZSxufHxJKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciByPWUsaT0xLG89dGhpc1t0Ky0tcl07cj4wJiYoaSo9MjU2KTspbys9dGhpc1t0Ky0tcl0qaTtyZXR1cm4gaSo9MTI4LG8+PWkmJihvLT1NYXRoLnBvdygyLDgqZSkpLG99LHQucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEkodCwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1t0XT8tMSooMjU1LXRoaXNbdF0rMSk6dGhpc1t0XX0sdC5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odCxlKXtlfHxJKHQsMix0aGlzLmxlbmd0aCk7dmFyIG49dGhpc1t0XXx0aGlzW3QrMV08PDg7cmV0dXJuIDMyNzY4Jm4/NDI5NDkwMTc2MHxuOm59LHQucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7ZXx8SSh0LDIsdGhpcy5sZW5ndGgpO3ZhciBuPXRoaXNbdCsxXXx0aGlzW3RdPDw4O3JldHVybiAzMjc2OCZuPzQyOTQ5MDE3NjB8bjpufSx0LnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxJKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fSx0LnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxJKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XTw8MjR8dGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdfSx0LnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxJKHQsNCx0aGlzLmxlbmd0aCksWi5yZWFkKHRoaXMsdCwhMCwyMyw0KX0sdC5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8SSh0LDQsdGhpcy5sZW5ndGgpLFoucmVhZCh0aGlzLHQsITEsMjMsNCl9LHQucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbih0LGUpe3JldHVybiBlfHxJKHQsOCx0aGlzLmxlbmd0aCksWi5yZWFkKHRoaXMsdCwhMCw1Miw4KX0sdC5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV8fEkodCw4LHRoaXMubGVuZ3RoKSxaLnJlYWQodGhpcyx0LCExLDUyLDgpfSx0LnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbih0LGUsbixyKXt0PSt0LGU9MHxlLG49MHxuLHJ8fEEodGhpcyx0LGUsbixNYXRoLnBvdygyLDgqbiksMCk7dmFyIGk9MSxvPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KytvPG4mJihpKj0yNTYpOyl0aGlzW2Urb109dC9pJjI1NTtyZXR1cm4gZStufSx0LnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbih0LGUsbixyKXt0PSt0LGU9MHxlLG49MHxuLHJ8fEEodGhpcyx0LGUsbixNYXRoLnBvdygyLDgqbiksMCk7dmFyIGk9bi0xLG89MTtmb3IodGhpc1tlK2ldPTI1NSZ0Oy0taT49MCYmKG8qPTI1Nik7KXRoaXNbZStpXT10L28mMjU1O3JldHVybiBlK259LHQucHJvdG90eXBlLndyaXRlVUludDg9ZnVuY3Rpb24oZSxuLHIpe3JldHVybiBlPStlLG49MHxuLHJ8fEEodGhpcyxlLG4sMSwyNTUsMCksdC5UWVBFRF9BUlJBWV9TVVBQT1JUfHwoZT1NYXRoLmZsb29yKGUpKSx0aGlzW25dPWUsbisxfSx0LnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gZT0rZSxuPTB8bixyfHxBKHRoaXMsZSxuLDIsNjU1MzUsMCksdC5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW25dPWUsdGhpc1tuKzFdPWU+Pj44KTpMKHRoaXMsZSxuLCEwKSxuKzJ9LHQucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oZSxuLHIpe3JldHVybiBlPStlLG49MHxuLHJ8fEEodGhpcyxlLG4sMiw2NTUzNSwwKSx0LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbbl09ZT4+PjgsdGhpc1tuKzFdPWUpOkwodGhpcyxlLG4sITEpLG4rMn0sdC5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihlLG4scil7cmV0dXJuIGU9K2Usbj0wfG4scnx8QSh0aGlzLGUsbiw0LDQyOTQ5NjcyOTUsMCksdC5UWVBFRF9BUlJBWV9TVVBQT1JUPyh0aGlzW24rM109ZT4+PjI0LHRoaXNbbisyXT1lPj4+MTYsdGhpc1tuKzFdPWU+Pj44LHRoaXNbbl09ZSk6Uih0aGlzLGUsbiwhMCksbis0fSx0LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gZT0rZSxuPTB8bixyfHxBKHRoaXMsZSxuLDQsNDI5NDk2NzI5NSwwKSx0LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbbl09ZT4+PjI0LHRoaXNbbisxXT1lPj4+MTYsdGhpc1tuKzJdPWU+Pj44LHRoaXNbbiszXT1lKTpSKHRoaXMsZSxuLCExKSxuKzR9LHQucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odCxlLG4scil7aWYodD0rdCxlPTB8ZSwhcil7dmFyIGk9TWF0aC5wb3coMiw4Km4tMSk7QSh0aGlzLHQsZSxuLGktMSwtaSl9dmFyIG89MCxhPTEscz0wPnQ/MTowO2Zvcih0aGlzW2VdPTI1NSZ0OysrbzxuJiYoYSo9MjU2KTspdGhpc1tlK29dPSh0L2E+PjApLXMmMjU1O3JldHVybiBlK259LHQucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odCxlLG4scil7aWYodD0rdCxlPTB8ZSwhcil7dmFyIGk9TWF0aC5wb3coMiw4Km4tMSk7QSh0aGlzLHQsZSxuLGktMSwtaSl9dmFyIG89bi0xLGE9MSxzPTA+dD8xOjA7Zm9yKHRoaXNbZStvXT0yNTUmdDstLW8+PTAmJihhKj0yNTYpOyl0aGlzW2Urb109KHQvYT4+MCktcyYyNTU7cmV0dXJuIGUrbn0sdC5wcm90b3R5cGUud3JpdGVJbnQ4PWZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gZT0rZSxuPTB8bixyfHxBKHRoaXMsZSxuLDEsMTI3LC0xMjgpLHQuVFlQRURfQVJSQVlfU1VQUE9SVHx8KGU9TWF0aC5mbG9vcihlKSksMD5lJiYoZT0yNTUrZSsxKSx0aGlzW25dPWUsbisxfSx0LnByb3RvdHlwZS53cml0ZUludDE2TEU9ZnVuY3Rpb24oZSxuLHIpe3JldHVybiBlPStlLG49MHxuLHJ8fEEodGhpcyxlLG4sMiwzMjc2NywtMzI3NjgpLHQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tuXT1lLHRoaXNbbisxXT1lPj4+OCk6TCh0aGlzLGUsbiwhMCksbisyfSx0LnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24oZSxuLHIpe3JldHVybiBlPStlLG49MHxuLHJ8fEEodGhpcyxlLG4sMiwzMjc2NywtMzI3NjgpLHQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tuXT1lPj4+OCx0aGlzW24rMV09ZSk6TCh0aGlzLGUsbiwhMSksbisyfSx0LnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24oZSxuLHIpe3JldHVybiBlPStlLG49MHxuLHJ8fEEodGhpcyxlLG4sNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0LlRZUEVEX0FSUkFZX1NVUFBPUlQ/KHRoaXNbbl09ZSx0aGlzW24rMV09ZT4+PjgsdGhpc1tuKzJdPWU+Pj4xNix0aGlzW24rM109ZT4+PjI0KTpSKHRoaXMsZSxuLCEwKSxuKzR9LHQucHJvdG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbihlLG4scil7cmV0dXJuIGU9K2Usbj0wfG4scnx8QSh0aGlzLGUsbiw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLDA+ZSYmKGU9NDI5NDk2NzI5NStlKzEpLHQuVFlQRURfQVJSQVlfU1VQUE9SVD8odGhpc1tuXT1lPj4+MjQsdGhpc1tuKzFdPWU+Pj4xNix0aGlzW24rMl09ZT4+PjgsdGhpc1tuKzNdPWUpOlIodGhpcyxlLG4sITEpLG4rNH0sdC5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVCh0aGlzLHQsZSwhMCxuKX0sdC5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVCh0aGlzLHQsZSwhMSxuKX0sdC5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIE0odGhpcyx0LGUsITAsbil9LHQucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNKHRoaXMsdCxlLCExLG4pfSx0LnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKGUsbixyLGkpe2lmKHJ8fChyPTApLGl8fDA9PT1pfHwoaT10aGlzLmxlbmd0aCksbj49ZS5sZW5ndGgmJihuPWUubGVuZ3RoKSxufHwobj0wKSxpPjAmJnI+aSYmKGk9ciksaT09PXIpcmV0dXJuIDA7aWYoMD09PWUubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoMD5uKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYoMD5yfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcyIpO2lmKDA+aSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtpPnRoaXMubGVuZ3RoJiYoaT10aGlzLmxlbmd0aCksZS5sZW5ndGgtbjxpLXImJihpPWUubGVuZ3RoLW4rcik7dmFyIG89aS1yO2lmKDFlMz5vfHwhdC5UWVBFRF9BUlJBWV9TVVBQT1JUKWZvcih2YXIgYT0wO28+YTthKyspZVthK25dPXRoaXNbYStyXTtlbHNlIGUuX3NldCh0aGlzLnN1YmFycmF5KHIscitvKSxuKTtyZXR1cm4gb30sdC5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbih0LGUsbil7aWYodHx8KHQ9MCksZXx8KGU9MCksbnx8KG49dGhpcy5sZW5ndGgpLGU+bil0aHJvdyBuZXcgUmFuZ2VFcnJvcigiZW5kIDwgc3RhcnQiKTtpZihuIT09ZSYmMCE9PXRoaXMubGVuZ3RoKXtpZigwPmV8fGU+PXRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJzdGFydCBvdXQgb2YgYm91bmRzIik7aWYoMD5ufHxuPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJlbmQgb3V0IG9mIGJvdW5kcyIpO3ZhciByO2lmKCJudW1iZXIiPT10eXBlb2YgdClmb3Iocj1lO24+cjtyKyspdGhpc1tyXT10O2Vsc2V7dmFyIGk9UCh0LnRvU3RyaW5nKCkpLG89aS5sZW5ndGg7Zm9yKHI9ZTtuPnI7cisrKXRoaXNbcl09aVtyJW9dfXJldHVybiB0aGlzfX0sdC5wcm90b3R5cGUudG9BcnJheUJ1ZmZlcj1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSl7aWYodC5UWVBFRF9BUlJBWV9TVVBQT1JUKXJldHVybiBuZXcgdCh0aGlzKS5idWZmZXI7Zm9yKHZhciBlPW5ldyBVaW50OEFycmF5KHRoaXMubGVuZ3RoKSxuPTAscj1lLmxlbmd0aDtyPm47bis9MSllW25dPXRoaXNbbl07cmV0dXJuIGUuYnVmZmVyfXRocm93IG5ldyBUeXBlRXJyb3IoIkJ1ZmZlci50b0FycmF5QnVmZmVyIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyIil9O3ZhciBLPXQucHJvdG90eXBlO3QuX2F1Z21lbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuY29uc3RydWN0b3I9dCxlLl9pc0J1ZmZlcj0hMCxlLl9zZXQ9ZS5zZXQsZS5nZXQ9Sy5nZXQsZS5zZXQ9Sy5zZXQsZS53cml0ZT1LLndyaXRlLGUudG9TdHJpbmc9Sy50b1N0cmluZyxlLnRvTG9jYWxlU3RyaW5nPUsudG9TdHJpbmcsZS50b0pTT049Sy50b0pTT04sZS5lcXVhbHM9Sy5lcXVhbHMsZS5jb21wYXJlPUsuY29tcGFyZSxlLmluZGV4T2Y9Sy5pbmRleE9mLGUuY29weT1LLmNvcHksZS5zbGljZT1LLnNsaWNlLGUucmVhZFVJbnRMRT1LLnJlYWRVSW50TEUsZS5yZWFkVUludEJFPUsucmVhZFVJbnRCRSxlLnJlYWRVSW50OD1LLnJlYWRVSW50OCxlLnJlYWRVSW50MTZMRT1LLnJlYWRVSW50MTZMRSxlLnJlYWRVSW50MTZCRT1LLnJlYWRVSW50MTZCRSxlLnJlYWRVSW50MzJMRT1LLnJlYWRVSW50MzJMRSxlLnJlYWRVSW50MzJCRT1LLnJlYWRVSW50MzJCRSxlLnJlYWRJbnRMRT1LLnJlYWRJbnRMRSxlLnJlYWRJbnRCRT1LLnJlYWRJbnRCRSxlLnJlYWRJbnQ4PUsucmVhZEludDgsZS5yZWFkSW50MTZMRT1LLnJlYWRJbnQxNkxFLGUucmVhZEludDE2QkU9Sy5yZWFkSW50MTZCRSxlLnJlYWRJbnQzMkxFPUsucmVhZEludDMyTEUsZS5yZWFkSW50MzJCRT1LLnJlYWRJbnQzMkJFLGUucmVhZEZsb2F0TEU9Sy5yZWFkRmxvYXRMRSxlLnJlYWRGbG9hdEJFPUsucmVhZEZsb2F0QkUsZS5yZWFkRG91YmxlTEU9Sy5yZWFkRG91YmxlTEUsZS5yZWFkRG91YmxlQkU9Sy5yZWFkRG91YmxlQkUsZS53cml0ZVVJbnQ4PUsud3JpdGVVSW50OCxlLndyaXRlVUludExFPUsud3JpdGVVSW50TEUsZS53cml0ZVVJbnRCRT1LLndyaXRlVUludEJFLGUud3JpdGVVSW50MTZMRT1LLndyaXRlVUludDE2TEUsZS53cml0ZVVJbnQxNkJFPUsud3JpdGVVSW50MTZCRSxlLndyaXRlVUludDMyTEU9Sy53cml0ZVVJbnQzMkxFLGUud3JpdGVVSW50MzJCRT1LLndyaXRlVUludDMyQkUsZS53cml0ZUludExFPUsud3JpdGVJbnRMRSxlLndyaXRlSW50QkU9Sy53cml0ZUludEJFLGUud3JpdGVJbnQ4PUsud3JpdGVJbnQ4LGUud3JpdGVJbnQxNkxFPUsud3JpdGVJbnQxNkxFLGUud3JpdGVJbnQxNkJFPUsud3JpdGVJbnQxNkJFLGUud3JpdGVJbnQzMkxFPUsud3JpdGVJbnQzMkxFLGUud3JpdGVJbnQzMkJFPUsud3JpdGVJbnQzMkJFLGUud3JpdGVGbG9hdExFPUsud3JpdGVGbG9hdExFLGUud3JpdGVGbG9hdEJFPUsud3JpdGVGbG9hdEJFLGUud3JpdGVEb3VibGVMRT1LLndyaXRlRG91YmxlTEUsZS53cml0ZURvdWJsZUJFPUsud3JpdGVEb3VibGVCRSxlLmZpbGw9Sy5maWxsLGUuaW5zcGVjdD1LLmluc3BlY3QsZS50b0FycmF5QnVmZmVyPUsudG9BcnJheUJ1ZmZlcixlfTt2YXIgWD0vW14rXC8wLTlBLXpcLV0vZ30pLmNhbGwoZSxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe3ZhciBuPSJub3JtYWwiO3JldHVybiB0JiZlP249ImJvbGRpdGFsaWNzIjp0P249ImJvbGQiOmUmJihuPSJpdGFsaWNzIiksbn1mdW5jdGlvbiBpKHQsZSl7dGhpcy5mb250cz17fSx0aGlzLnBkZkRvYz1lLHRoaXMuZm9udFdyYXBwZXJzPXt9O2Zvcih2YXIgbiBpbiB0KWlmKHQuaGFzT3duUHJvcGVydHkobikpe3ZhciByPXRbbl07dGhpcy5mb250c1tuXT17bm9ybWFsOnIubm9ybWFsLGJvbGQ6ci5ib2xkLGl0YWxpY3M6ci5pdGFsaWNzLGJvbGRpdGFsaWNzOnIuYm9sZGl0YWxpY3N9fX12YXIgbz1uKDExKSxhPW4oMTYpO2kucHJvdG90eXBlLnByb3ZpZGVGb250PWZ1bmN0aW9uKHQsZSxuKXtpZighdGhpcy5mb250c1t0XSlyZXR1cm4gdGhpcy5wZGZEb2MuX2ZvbnQ7dmFyIGk9cihlLG4pO3JldHVybiB0aGlzLmZvbnRXcmFwcGVyc1t0XT10aGlzLmZvbnRXcmFwcGVyc1t0XXx8e30sdGhpcy5mb250V3JhcHBlcnNbdF1baV18fCh0aGlzLmZvbnRXcmFwcGVyc1t0XVtpXT1uZXcgYSh0aGlzLnBkZkRvYyx0aGlzLmZvbnRzW3RdW2ldLHQrIigiK2krIikiKSksdGhpcy5mb250V3JhcHBlcnNbdF1baV19LGkucHJvdG90eXBlLnNldEZvbnRSZWZzVG9QZGZEb2M9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO28uZWFjaCh0LmZvbnRXcmFwcGVycyxmdW5jdGlvbihlKXtvLmVhY2goZSxmdW5jdGlvbihlKXtvLmVhY2goZS5wZGZGb250cyxmdW5jdGlvbihlKXt0LnBkZkRvYy5wYWdlLmZvbnRzW2UuaWRdfHwodC5wZGZEb2MucGFnZS5mb250c1tlLmlkXT1lLnJlZigpKX0pfSl9KX0sdC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe2EuZWFjaChlLGZ1bmN0aW9uKGUpe3QucHVzaChlKX0pfWZ1bmN0aW9uIGkodCxlLG4pe3RoaXMucGFnZVNpemU9dCx0aGlzLnBhZ2VNYXJnaW5zPWUsdGhpcy50cmFja2VyPW5ldyBzLHRoaXMuaW1hZ2VNZWFzdXJlPW4sdGhpcy50YWJsZUxheW91dHM9e319ZnVuY3Rpb24gbyh0KXt2YXIgZT10Lngsbj10Lnk7dC5wb3NpdGlvbnM9W10sYS5lYWNoKHQuY2FudmFzLGZ1bmN0aW9uKHQpe3ZhciBlPXQueCxuPXQueTt0LnJlc2V0WFk9ZnVuY3Rpb24oKXt0Lng9ZSx0Lnk9bn19KSx0LnJlc2V0WFk9ZnVuY3Rpb24oKXt0Lng9ZSx0Lnk9bixhLmVhY2godC5jYW52YXMsZnVuY3Rpb24odCl7dC5yZXNldFhZKCl9KX19dmFyIGE9bigxMSkscz1uKDE4KSxoPW4oMTkpLHU9bigyMCksbD1uKDIxKSxjPW4oMjIpLGY9bigyMyksZD1uKDI0KSxwPW4oMjUpLnBhY2ssZz1uKDI1KS5vZmZzZXRWZWN0b3Isdj1uKDI1KS5mb250U3RyaW5naWZ5LG09bigyNSkuaXNGdW5jdGlvbix5PW4oMjYpLHc9bigyNyk7aS5wcm90b3R5cGUucmVnaXN0ZXJUYWJsZUxheW91dHM9ZnVuY3Rpb24odCl7dGhpcy50YWJsZUxheW91dHM9cCh0aGlzLnRhYmxlTGF5b3V0cyx0KX0saS5wcm90b3R5cGUubGF5b3V0RG9jdW1lbnQ9ZnVuY3Rpb24odCxlLG4scixpLG8scyx1LGwsYyl7ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0PWEucmVqZWN0KHQsZnVuY3Rpb24odCl7cmV0dXJuIGEuaXNFbXB0eSh0LnBvc2l0aW9ucyl9KSxhLmVhY2godCxmdW5jdGlvbih0KXt2YXIgbj1hLnBpY2sodCxbImlkIiwidGV4dCIsInVsIiwib2wiLCJ0YWJsZSIsImltYWdlIiwicXIiLCJjYW52YXMiLCJjb2x1bW5zIiwiaGVhZGxpbmVMZXZlbCIsInN0eWxlIiwicGFnZUJyZWFrIiwicGFnZU9yaWVudGF0aW9uIiwid2lkdGgiLCJoZWlnaHQiXSk7bi5zdGFydFBvc2l0aW9uPWEuZmlyc3QodC5wb3NpdGlvbnMpLG4ucGFnZU51bWJlcnM9YS5jaGFpbih0LnBvc2l0aW9ucykubWFwKCJwYWdlTnVtYmVyIikudW5pcSgpLnZhbHVlKCksbi5wYWdlcz1lLmxlbmd0aCxuLnN0YWNrPWEuaXNBcnJheSh0LnN0YWNrKSx0Lm5vZGVJbmZvPW59KSxhLmFueSh0LGZ1bmN0aW9uKHQsZSxuKXtpZigiYmVmb3JlIiE9PXQucGFnZUJyZWFrJiYhdC5wYWdlQnJlYWtDYWxjdWxhdGVkKXt0LnBhZ2VCcmVha0NhbGN1bGF0ZWQ9ITA7dmFyIHI9YS5maXJzdCh0Lm5vZGVJbmZvLnBhZ2VOdW1iZXJzKSxpPWEuY2hhaW4obikuZHJvcChlKzEpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gYS5jb250YWlucyh0Lm5vZGVJbmZvLnBhZ2VOdW1iZXJzLHIpfSkudmFsdWUoKSxvPWEuY2hhaW4obikuZHJvcChlKzEpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gYS5jb250YWlucyh0Lm5vZGVJbmZvLnBhZ2VOdW1iZXJzLHIrMSl9KS52YWx1ZSgpLHM9YS5jaGFpbihuKS50YWtlKGUpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gYS5jb250YWlucyh0Lm5vZGVJbmZvLnBhZ2VOdW1iZXJzLHIpfSkudmFsdWUoKTtpZihjKHQubm9kZUluZm8sYS5tYXAoaSwibm9kZUluZm8iKSxhLm1hcChvLCJub2RlSW5mbyIpLGEubWFwKHMsIm5vZGVJbmZvIikpKXJldHVybiB0LnBhZ2VCcmVhaz0iYmVmb3JlIiwhMH19KX1mdW5jdGlvbiBkKHQpe2EuZWFjaCh0LmxpbmVhck5vZGVMaXN0LGZ1bmN0aW9uKHQpe3QucmVzZXRYWSgpfSl9bShjKXx8KGM9ZnVuY3Rpb24oKXtyZXR1cm4hMX0pLHRoaXMuZG9jTWVhc3VyZT1uZXcgaChlLG4scix0aGlzLmltYWdlTWVhc3VyZSx0aGlzLnRhYmxlTGF5b3V0cyx1KTtmb3IodmFyIHA9dGhpcy50cnlMYXlvdXREb2N1bWVudCh0LGUsbixyLGksbyxzLHUsbCk7ZihwLmxpbmVhck5vZGVMaXN0LHAucGFnZXMpOylkKHApLHA9dGhpcy50cnlMYXlvdXREb2N1bWVudCh0LGUsbixyLGksbyxzLHUsbCk7cmV0dXJuIHAucGFnZXN9LGkucHJvdG90eXBlLnRyeUxheW91dERvY3VtZW50PWZ1bmN0aW9uKHQsZSxuLHIsaSxvLGEscyxoLGMpe3RoaXMubGluZWFyTm9kZUxpc3Q9W10sdD10aGlzLmRvY01lYXN1cmUubWVhc3VyZURvY3VtZW50KHQpLHRoaXMud3JpdGVyPW5ldyBsKG5ldyB1KHRoaXMucGFnZVNpemUsdGhpcy5wYWdlTWFyZ2lucyksdGhpcy50cmFja2VyKTt2YXIgZj10aGlzO3JldHVybiB0aGlzLndyaXRlci5jb250ZXh0KCkudHJhY2tlci5zdGFydFRyYWNraW5nKCJwYWdlQWRkZWQiLGZ1bmN0aW9uKCl7Zi5hZGRCYWNrZ3JvdW5kKGkpfSksdGhpcy5hZGRCYWNrZ3JvdW5kKGkpLHRoaXMucHJvY2Vzc05vZGUodCksdGhpcy5hZGRIZWFkZXJzQW5kRm9vdGVycyhvLGEpLG51bGwhPWgmJnRoaXMuYWRkV2F0ZXJtYXJrKGgsZSkse3BhZ2VzOnRoaXMud3JpdGVyLmNvbnRleHQoKS5wYWdlcyxsaW5lYXJOb2RlTGlzdDp0aGlzLmxpbmVhck5vZGVMaXN0fX0saS5wcm90b3R5cGUuYWRkQmFja2dyb3VuZD1mdW5jdGlvbih0KXt2YXIgZT1tKHQpP3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sbj1lKHRoaXMud3JpdGVyLmNvbnRleHQoKS5wYWdlKzEpO2lmKG4pe3ZhciByPXRoaXMud3JpdGVyLmNvbnRleHQoKS5nZXRDdXJyZW50UGFnZSgpLnBhZ2VTaXplO3RoaXMud3JpdGVyLmJlZ2luVW5icmVha2FibGVCbG9jayhyLndpZHRoLHIuaGVpZ2h0KSx0aGlzLnByb2Nlc3NOb2RlKHRoaXMuZG9jTWVhc3VyZS5tZWFzdXJlRG9jdW1lbnQobikpLHRoaXMud3JpdGVyLmNvbW1pdFVuYnJlYWthYmxlQmxvY2soMCwwKX19LGkucHJvdG90eXBlLmFkZFN0YXRpY1JlcGVhdGFibGU9ZnVuY3Rpb24odCxlKXt0aGlzLmFkZER5bmFtaWNSZXBlYXRhYmxlKGZ1bmN0aW9uKCl7cmV0dXJuIHR9LGUpfSxpLnByb3RvdHlwZS5hZGREeW5hbWljUmVwZWF0YWJsZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj10aGlzLndyaXRlci5jb250ZXh0KCkucGFnZXMscj0wLGk9bi5sZW5ndGg7aT5yO3IrKyl7dGhpcy53cml0ZXIuY29udGV4dCgpLnBhZ2U9cjt2YXIgbz10KHIrMSxpKTtpZihvKXt2YXIgYT1lKHRoaXMud3JpdGVyLmNvbnRleHQoKS5nZXRDdXJyZW50UGFnZSgpLnBhZ2VTaXplLHRoaXMucGFnZU1hcmdpbnMpO3RoaXMud3JpdGVyLmJlZ2luVW5icmVha2FibGVCbG9jayhhLndpZHRoLGEuaGVpZ2h0KSx0aGlzLnByb2Nlc3NOb2RlKHRoaXMuZG9jTWVhc3VyZS5tZWFzdXJlRG9jdW1lbnQobykpLHRoaXMud3JpdGVyLmNvbW1pdFVuYnJlYWthYmxlQmxvY2soYS54LGEueSl9fX0saS5wcm90b3R5cGUuYWRkSGVhZGVyc0FuZEZvb3RlcnM9ZnVuY3Rpb24odCxlKXt2YXIgbj1mdW5jdGlvbih0LGUpe3JldHVybnt4OjAseTowLHdpZHRoOnQud2lkdGgsaGVpZ2h0OmUudG9wfX0scj1mdW5jdGlvbih0LGUpe3JldHVybnt4OjAseTp0LmhlaWdodC1lLmJvdHRvbSx3aWR0aDp0LndpZHRoLGhlaWdodDplLmJvdHRvbX19O20odCk/dGhpcy5hZGREeW5hbWljUmVwZWF0YWJsZSh0LG4pOnQmJnRoaXMuYWRkU3RhdGljUmVwZWF0YWJsZSh0LG4pLG0oZSk/dGhpcy5hZGREeW5hbWljUmVwZWF0YWJsZShlLHIpOmUmJnRoaXMuYWRkU3RhdGljUmVwZWF0YWJsZShlLHIpfSxpLnByb3RvdHlwZS5hZGRXYXRlcm1hcms9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKHQsZSxuKXtmb3IodmFyIHIsaT10LndpZHRoLG89dC5oZWlnaHQsYT0uOCpNYXRoLnNxcnQoaSppK28qbykscz1uZXcgeShuKSxoPW5ldyB3LHU9MCxsPTFlMyxjPSh1K2wpLzI7TWF0aC5hYnModS1sKT4xOyloLnB1c2goe2ZvbnRTaXplOmN9KSxyPXMuc2l6ZU9mU3RyaW5nKGUsaCksci53aWR0aD5hPyhsPWMsYz0odStsKS8yKTpyLndpZHRoPGEmJih1PWMsYz0odStsKS8yKSxoLnBvcCgpO3JldHVybntzaXplOnIsZm9udFNpemU6Y319Zm9yKHZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUuZm9udHMpWzBdLGk9e3RleHQ6dCxmb250OmUucHJvdmlkZUZvbnQoZVtyXSwhMSwhMSksc2l6ZTpuKHRoaXMucGFnZVNpemUsdCxlKX0sbz10aGlzLndyaXRlci5jb250ZXh0KCkucGFnZXMsYT0wLHM9by5sZW5ndGg7cz5hO2ErKylvW2FdLndhdGVybWFyaz1pfSxpLnByb3RvdHlwZS5wcm9jZXNzTm9kZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3ZhciByPXQuX21hcmdpbjsiYmVmb3JlIj09PXQucGFnZUJyZWFrJiZuLndyaXRlci5tb3ZlVG9OZXh0UGFnZSh0LnBhZ2VPcmllbnRhdGlvbiksciYmKG4ud3JpdGVyLmNvbnRleHQoKS5tb3ZlRG93bihyWzFdKSxuLndyaXRlci5jb250ZXh0KCkuYWRkTWFyZ2luKHJbMF0sclsyXSkpLGUoKSxyJiYobi53cml0ZXIuY29udGV4dCgpLmFkZE1hcmdpbigtclswXSwtclsyXSksbi53cml0ZXIuY29udGV4dCgpLm1vdmVEb3duKHJbM10pKSwiYWZ0ZXIiPT09dC5wYWdlQnJlYWsmJm4ud3JpdGVyLm1vdmVUb05leHRQYWdlKHQucGFnZU9yaWVudGF0aW9uKX12YXIgbj10aGlzO3RoaXMubGluZWFyTm9kZUxpc3QucHVzaCh0KSxvKHQpLGUoZnVuY3Rpb24oKXt2YXIgZT10LmFic29sdXRlUG9zaXRpb247aWYoZSYmKG4ud3JpdGVyLmNvbnRleHQoKS5iZWdpbkRldGFjaGVkQmxvY2soKSxuLndyaXRlci5jb250ZXh0KCkubW92ZVRvKGUueHx8MCxlLnl8fDApKSx0LnN0YWNrKW4ucHJvY2Vzc1ZlcnRpY2FsQ29udGFpbmVyKHQpO2Vsc2UgaWYodC5jb2x1bW5zKW4ucHJvY2Vzc0NvbHVtbnModCk7ZWxzZSBpZih0LnVsKW4ucHJvY2Vzc0xpc3QoITEsdCk7ZWxzZSBpZih0Lm9sKW4ucHJvY2Vzc0xpc3QoITAsdCk7ZWxzZSBpZih0LnRhYmxlKW4ucHJvY2Vzc1RhYmxlKHQpO2Vsc2UgaWYodm9pZCAwIT09dC50ZXh0KW4ucHJvY2Vzc0xlYWYodCk7ZWxzZSBpZih0LmltYWdlKW4ucHJvY2Vzc0ltYWdlKHQpO2Vsc2UgaWYodC5jYW52YXMpbi5wcm9jZXNzQ2FudmFzKHQpO2Vsc2UgaWYodC5xciluLnByb2Nlc3NRcih0KTtlbHNlIGlmKCF0Ll9zcGFuKXRocm93IlVucmVjb2duaXplZCBkb2N1bWVudCBzdHJ1Y3R1cmU6ICIrSlNPTi5zdHJpbmdpZnkodCx2KTtlJiZuLndyaXRlci5jb250ZXh0KCkuZW5kRGV0YWNoZWRCbG9jaygpfSl9LGkucHJvdG90eXBlLnByb2Nlc3NWZXJ0aWNhbENvbnRhaW5lcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzO3Quc3RhY2suZm9yRWFjaChmdW5jdGlvbihuKXtlLnByb2Nlc3NOb2RlKG4pLHIodC5wb3NpdGlvbnMsbi5wb3NpdGlvbnMpfSl9LGkucHJvdG90eXBlLnByb2Nlc3NDb2x1bW5zPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIGU9W107ZS5wdXNoKDApO2Zvcih2YXIgcj1uLmxlbmd0aC0xO3I+MDtyLS0pZS5wdXNoKHQpO3JldHVybiBlfXZhciBuPXQuY29sdW1ucyxpPXRoaXMud3JpdGVyLmNvbnRleHQoKS5hdmFpbGFibGVXaWR0aCxvPWUodC5fZ2FwKTtvJiYoaS09KG8ubGVuZ3RoLTEpKnQuX2dhcCksYy5idWlsZENvbHVtbldpZHRocyhuLGkpO3ZhciBhPXRoaXMucHJvY2Vzc1JvdyhuLG4sbyk7cih0LnBvc2l0aW9ucyxhLnBvc2l0aW9ucyl9LGkucHJvdG90eXBlLnByb2Nlc3NSb3c9ZnVuY3Rpb24odCxlLG4saSxvKXtmdW5jdGlvbiBhKHQpe2Zvcih2YXIgZSxuPTAscj1sLmxlbmd0aDtyPm47bisrKXt2YXIgaT1sW25dO2lmKGkucHJldlBhZ2U9PT10LnByZXZQYWdlKXtlPWk7YnJlYWt9fWV8fChlPXQsbC5wdXNoKGUpKSxlLnByZXZZPU1hdGgubWF4KGUucHJldlksdC5wcmV2WSksZS55PU1hdGgubWluKGUueSx0LnkpfWZ1bmN0aW9uIHModCl7cmV0dXJuIG4mJm4ubGVuZ3RoPnQ/blt0XTowfWZ1bmN0aW9uIGgodCxlKXtpZih0LnJvd1NwYW4mJnQucm93U3Bhbj4xKXt2YXIgbj1vK3Qucm93U3Bhbi0xO2lmKG4+PWkubGVuZ3RoKXRocm93IlJvdyBzcGFuIGZvciBjb2x1bW4gIitlKyIgKHdpdGggaW5kZXhlcyBzdGFydGluZyBmcm9tIDApIGV4Y2VlZGVkIHJvdyBjb3VudCI7cmV0dXJuIGlbbl1bZV19cmV0dXJuIG51bGx9dmFyIHU9dGhpcyxsPVtdLGM9W107cmV0dXJuIHRoaXMudHJhY2tlci5hdXRvKCJwYWdlQ2hhbmdlZCIsYSxmdW5jdGlvbigpe2U9ZXx8dCx1LndyaXRlci5jb250ZXh0KCkuYmVnaW5Db2x1bW5Hcm91cCgpO2Zvcih2YXIgaT0wLG89dC5sZW5ndGg7bz5pO2krKyl7dmFyIGE9dFtpXSxsPWVbaV0uX2NhbGNXaWR0aCxmPXMoaSk7aWYoYS5jb2xTcGFuJiZhLmNvbFNwYW4+MSlmb3IodmFyIGQ9MTtkPGEuY29sU3BhbjtkKyspbCs9ZVsrK2ldLl9jYWxjV2lkdGgrbltpXTt1LndyaXRlci5jb250ZXh0KCkuYmVnaW5Db2x1bW4obCxmLGgoYSxpKSksYS5fc3Bhbj9hLl9jb2x1bW5FbmRpbmdDb250ZXh0JiZ1LndyaXRlci5jb250ZXh0KCkubWFya0VuZGluZyhhKToodS5wcm9jZXNzTm9kZShhKSxyKGMsYS5wb3NpdGlvbnMpKX11LndyaXRlci5jb250ZXh0KCkuY29tcGxldGVDb2x1bW5Hcm91cCgpfSkse3BhZ2VCcmVha3M6bCxwb3NpdGlvbnM6Y319LGkucHJvdG90eXBlLnByb2Nlc3NMaXN0PWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbih0KXtpZihzKXt2YXIgZT1zO2lmKHM9bnVsbCxlLmNhbnZhcyl7dmFyIG49ZS5jYW52YXNbMF07ZyhuLC1lLl9taW5XaWR0aCwwKSxpLndyaXRlci5hZGRWZWN0b3Iobil9ZWxzZXt2YXIgcj1uZXcgZChpLnBhZ2VTaXplLndpZHRoKTtyLmFkZElubGluZShlLl9pbmxpbmVzWzBdKSxyLng9LWUuX21pbldpZHRoLHIueT10LmdldEFzY2VuZGVySGVpZ2h0KCktci5nZXRBc2NlbmRlckhlaWdodCgpLGkud3JpdGVyLmFkZExpbmUociwhMCl9fX12YXIgaT10aGlzLG89dD9lLm9sOmUudWwsYT1lLl9nYXBTaXplO3RoaXMud3JpdGVyLmNvbnRleHQoKS5hZGRNYXJnaW4oYS53aWR0aCk7dmFyIHM7dGhpcy50cmFja2VyLmF1dG8oImxpbmVBZGRlZCIsbixmdW5jdGlvbigpe28uZm9yRWFjaChmdW5jdGlvbih0KXtzPXQubGlzdE1hcmtlcixpLnByb2Nlc3NOb2RlKHQpLHIoZS5wb3NpdGlvbnMsdC5wb3NpdGlvbnMpfSl9KSx0aGlzLndyaXRlci5jb250ZXh0KCkuYWRkTWFyZ2luKC1hLndpZHRoKX0saS5wcm90b3R5cGUucHJvY2Vzc1RhYmxlPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBmKHQpO2UuYmVnaW5UYWJsZSh0aGlzLndyaXRlcik7Zm9yKHZhciBuPTAsaT10LnRhYmxlLmJvZHkubGVuZ3RoO2k+bjtuKyspe2UuYmVnaW5Sb3cobix0aGlzLndyaXRlcik7dmFyIG89dGhpcy5wcm9jZXNzUm93KHQudGFibGUuYm9keVtuXSx0LnRhYmxlLndpZHRocyx0Ll9vZmZzZXRzLm9mZnNldHMsdC50YWJsZS5ib2R5LG4pO3IodC5wb3NpdGlvbnMsby5wb3NpdGlvbnMpLGUuZW5kUm93KG4sdGhpcy53cml0ZXIsby5wYWdlQnJlYWtzKX1lLmVuZFRhYmxlKHRoaXMud3JpdGVyKX0saS5wcm90b3R5cGUucHJvY2Vzc0xlYWY9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuYnVpbGROZXh0TGluZSh0KTtlOyl7dmFyIG49dGhpcy53cml0ZXIuYWRkTGluZShlKTt0LnBvc2l0aW9ucy5wdXNoKG4pLGU9dGhpcy5idWlsZE5leHRMaW5lKHQpfX0saS5wcm90b3R5cGUuYnVpbGROZXh0TGluZT1mdW5jdGlvbih0KXtpZighdC5faW5saW5lc3x8MD09PXQuX2lubGluZXMubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgZT1uZXcgZCh0aGlzLndyaXRlci5jb250ZXh0KCkuYXZhaWxhYmxlV2lkdGgpO3QuX2lubGluZXMmJnQuX2lubGluZXMubGVuZ3RoPjAmJmUuaGFzRW5vdWdoU3BhY2VGb3JJbmxpbmUodC5faW5saW5lc1swXSk7KWUuYWRkSW5saW5lKHQuX2lubGluZXMuc2hpZnQoKSk7cmV0dXJuIGUubGFzdExpbmVJblBhcmFncmFwaD0wPT09dC5faW5saW5lcy5sZW5ndGgsZX0saS5wcm90b3R5cGUucHJvY2Vzc0ltYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMud3JpdGVyLmFkZEltYWdlKHQpO3QucG9zaXRpb25zLnB1c2goZSl9LGkucHJvdG90eXBlLnByb2Nlc3NDYW52YXM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fbWluSGVpZ2h0O3RoaXMud3JpdGVyLmNvbnRleHQoKS5hdmFpbGFibGVIZWlnaHQ8ZSYmdGhpcy53cml0ZXIubW92ZVRvTmV4dFBhZ2UoKSx0LmNhbnZhcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPXRoaXMud3JpdGVyLmFkZFZlY3RvcihlKTt0LnBvc2l0aW9ucy5wdXNoKG4pfSx0aGlzKSx0aGlzLndyaXRlci5jb250ZXh0KCkubW92ZURvd24oZSl9LGkucHJvdG90eXBlLnByb2Nlc3NRcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLndyaXRlci5hZGRRcih0KTt0LnBvc2l0aW9ucy5wdXNoKGUpfSx0LmV4cG9ydHM9aX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz17IjRBMCI6WzQ3NjcuODcsNjc0MC43OV0sIjJBMCI6WzMzNzAuMzksNDc2Ny44N10sQTA6WzIzODMuOTQsMzM3MC4zOV0sQTE6WzE2ODMuNzgsMjM4My45NF0sQTI6WzExOTAuNTUsMTY4My43OF0sQTM6Wzg0MS44OSwxMTkwLjU1XSxBNDpbNTk1LjI4LDg0MS44OV0sQTU6WzQxOS41Myw1OTUuMjhdLEE2OlsyOTcuNjQsNDE5LjUzXSxBNzpbMjA5Ljc2LDI5Ny42NF0sQTg6WzE0Ny40LDIwOS43Nl0sQTk6WzEwNC44OCwxNDcuNF0sQTEwOls3My43LDEwNC44OF0sQjA6WzI4MzQuNjUsNDAwOC4xOV0sQjE6WzIwMDQuMDksMjgzNC42NV0sQjI6WzE0MTcuMzIsMjAwNC4wOV0sQjM6WzEwMDAuNjMsMTQxNy4zMl0sQjQ6WzcwOC42NiwxMDAwLjYzXSxCNTpbNDk4LjksNzA4LjY2XSxCNjpbMzU0LjMzLDQ5OC45XSxCNzpbMjQ5LjQ1LDM1NC4zM10sQjg6WzE3NS43NSwyNDkuNDVdLEI5OlsxMjQuNzIsMTc1Ljc1XSxCMTA6Wzg3Ljg3LDEyNC43Ml0sQzA6WzI1OTkuMzcsMzY3Ni41NF0sQzE6WzE4MzYuODUsMjU5OS4zN10sQzI6WzEyOTguMjcsMTgzNi44NV0sQzM6WzkxOC40MywxMjk4LjI3XSxDNDpbNjQ5LjEzLDkxOC40M10sQzU6WzQ1OS4yMSw2NDkuMTNdLEM2OlszMjMuMTUsNDU5LjIxXSxDNzpbMjI5LjYxLDMyMy4xNV0sQzg6WzE2MS41NywyMjkuNjFdLEM5OlsxMTMuMzksMTYxLjU3XSxDMTA6Wzc5LjM3LDExMy4zOV0sUkEwOlsyNDM3LjgsMzQ1OC4yN10sUkExOlsxNzI5LjEzLDI0MzcuOF0sUkEyOlsxMjE4LjksMTcyOS4xM10sUkEzOls4NjQuNTcsMTIxOC45XSxSQTQ6WzYwOS40NSw4NjQuNTddLFNSQTA6WzI1NTEuMTgsMzYyOC4zNV0sU1JBMTpbMTgxNC4xNywyNTUxLjE4XSxTUkEyOlsxMjc1LjU5LDE4MTQuMTddLFNSQTM6WzkwNy4wOSwxMjc1LjU5XSxTUkE0Ols2MzcuOCw5MDcuMDldLEVYRUNVVElWRTpbNTIxLjg2LDc1Nl0sRk9MSU86WzYxMiw5MzZdLExFR0FMOls2MTIsMTAwOF0sTEVUVEVSOls2MTIsNzkyXSxUQUJMT0lEOls3OTIsMTIyNF19fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7dGhpcy5wZGZEb2M9dCx0aGlzLmltYWdlRGljdGlvbmFyeT1lfHx7fX12YXIgaT0obigyOCksbigxNykpO3IucHJvdG90eXBlLm1lYXN1cmVJbWFnZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBuKHQpe3ZhciBuPWEuaW1hZ2VEaWN0aW9uYXJ5W3RdO2lmKCFuKXJldHVybiB0O3ZhciByPW4uaW5kZXhPZigiYmFzZTY0LCIpO2lmKDA+cil0aHJvdyJpbnZhbGlkIGltYWdlIGZvcm1hdCwgaW1hZ2VzIGRpY3Rpb25hcnkgc2hvdWxkIGNvbnRhaW4gZGF0YVVSTCBlbnRyaWVzIjtyZXR1cm4gbmV3IGUobi5zdWJzdHJpbmcocis3KSwiYmFzZTY0Iil9dmFyIHIsbyxhPXRoaXM7cmV0dXJuIHRoaXMucGRmRG9jLl9pbWFnZVJlZ2lzdHJ5W3RdP3I9dGhpcy5wZGZEb2MuX2ltYWdlUmVnaXN0cnlbdF06KG89IkkiKyArK3RoaXMucGRmRG9jLl9pbWFnZUNvdW50LHI9aS5vcGVuKG4odCksbyksci5lbWJlZCh0aGlzLnBkZkRvYyksdGhpcy5wZGZEb2MuX2ltYWdlUmVnaXN0cnlbdF09cikse3dpZHRoOnIud2lkdGgsaGVpZ2h0OnIuaGVpZ2h0fX0sdC5leHBvcnRzPXJ9KS5jYWxsKGUsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7Zm9yKHZhciBlPVtdLG49bnVsbCxyPTAsaT10LmlubGluZXMubGVuZ3RoO2k+cjtyKyspe3ZhciBvPXQuaW5saW5lc1tyXSxhPW8uZGVjb3JhdGlvbjtpZihhKXt2YXIgcz1vLmRlY29yYXRpb25Db2xvcnx8by5jb2xvcnx8ImJsYWNrIixoPW8uZGVjb3JhdGlvblN0eWxlfHwic29saWQiO2E9QXJyYXkuaXNBcnJheShhKT9hOlthXTtmb3IodmFyIHU9MCxsPWEubGVuZ3RoO2w+dTt1Kyspe3ZhciBjPWFbdV07biYmYz09PW4uZGVjb3JhdGlvbiYmaD09PW4uZGVjb3JhdGlvblN0eWxlJiZzPT09bi5kZWNvcmF0aW9uQ29sb3ImJiJsaW5lVGhyb3VnaCIhPT1jP24uaW5saW5lcy5wdXNoKG8pOihuPXtsaW5lOnQsZGVjb3JhdGlvbjpjLGRlY29yYXRpb25Db2xvcjpzLGRlY29yYXRpb25TdHlsZTpoLGlubGluZXM6W29dfSxlLnB1c2gobikpfX1lbHNlIG49bnVsbH1yZXR1cm4gZX1mdW5jdGlvbiBpKHQsZSxuLHIpe2Z1bmN0aW9uIGkoKXtmb3IodmFyIGU9MCxuPTAscj10LmlubGluZXMubGVuZ3RoO3I+bjtuKyspe3ZhciBpPXQuaW5saW5lc1tuXTtlPWkuZm9udFNpemU+ZT9uOmV9cmV0dXJuIHQuaW5saW5lc1tlXX1mdW5jdGlvbiBvKCl7Zm9yKHZhciBlPTAsbj0wLHI9dC5pbmxpbmVzLmxlbmd0aDtyPm47bisrKWUrPXQuaW5saW5lc1tuXS53aWR0aDtyZXR1cm4gZX12YXIgYT10LmlubGluZXNbMF0scz1pKCksaD1vKCksdT10LmxpbmUuZ2V0QXNjZW5kZXJIZWlnaHQoKSxsPXMuZm9udC5hc2NlbmRlci8xZTMqcy5mb250U2l6ZSxjPXMuaGVpZ2h0LGY9Yy1sLGQ9LjUrLjEyKk1hdGguZmxvb3IoTWF0aC5tYXgocy5mb250U2l6ZS04LDApLzIpO3N3aXRjaCh0LmRlY29yYXRpb24pe2Nhc2UidW5kZXJsaW5lIjpuKz11Ky40NSpmO2JyZWFrO2Nhc2Uib3ZlcmxpbmUiOm4rPXUtLjg1Kmw7YnJlYWs7Y2FzZSJsaW5lVGhyb3VnaCI6bis9dS0uMjUqbDticmVhaztkZWZhdWx0OnRocm93IlVua293biBkZWNvcmF0aW9uIDogIit0LmRlY29yYXRpb259aWYoci5zYXZlKCksImRvdWJsZSI9PT10LmRlY29yYXRpb25TdHlsZSl7dmFyIHA9TWF0aC5tYXgoLjUsMipkKTtyLmZpbGxDb2xvcih0LmRlY29yYXRpb25Db2xvcikucmVjdChlK2EueCxuLWQvMixoLGQvMikuZmlsbCgpLnJlY3QoZSthLngsbitwLWQvMixoLGQvMikuZmlsbCgpfWVsc2UgaWYoImRhc2hlZCI9PT10LmRlY29yYXRpb25TdHlsZSl7dmFyIGc9TWF0aC5jZWlsKGgvNi44KSx2PWUrYS54O3IucmVjdCh2LG4saCxkKS5jbGlwKCksci5maWxsQ29sb3IodC5kZWNvcmF0aW9uQ29sb3IpO2Zvcih2YXIgbT0wO2c+bTttKyspci5yZWN0KHYsbi1kLzIsMy45NixkKS5maWxsKCksdis9Ni44fWVsc2UgaWYoImRvdHRlZCI9PT10LmRlY29yYXRpb25TdHlsZSl7dmFyIHk9TWF0aC5jZWlsKGgvKDMqZCkpLHc9ZSthLng7ci5yZWN0KHcsbixoLGQpLmNsaXAoKSxyLmZpbGxDb2xvcih0LmRlY29yYXRpb25Db2xvcik7Zm9yKHZhciBfPTA7eT5fO18rKylyLnJlY3QodyxuLWQvMixkLGQpLmZpbGwoKSx3Kz0zKmR9ZWxzZSBpZigid2F2eSI9PT10LmRlY29yYXRpb25TdHlsZSl7dmFyIGI9LjcseD0xLFM9TWF0aC5jZWlsKGgvKDIqYikpKzEsaz1lK2EueC0xO3IucmVjdChlK2EueCxuLXgsaCxuK3gpLmNsaXAoKSxyLmxpbmVXaWR0aCguMjQpLHIubW92ZVRvKGssbik7Zm9yKHZhciBFPTA7Uz5FO0UrKylyLmJlemllckN1cnZlVG8oaytiLG4teCxrKzIqYixuLXgsayszKmIsbikuYmV6aWVyQ3VydmVUbyhrKzQqYixuK3gsays1KmIsbit4LGsrNipiLG4pLGsrPTYqYjtyLnN0cm9rZSh0LmRlY29yYXRpb25Db2xvcil9ZWxzZSByLmZpbGxDb2xvcih0LmRlY29yYXRpb25Db2xvcikucmVjdChlK2EueCxuLWQvMixoLGQpLmZpbGwoKTtyLnJlc3RvcmUoKX1mdW5jdGlvbiBvKHQsZSxuLG8pe2Zvcih2YXIgYT1yKHQpLHM9MCxoPWEubGVuZ3RoO2g+cztzKyspaShhW3NdLGUsbixvKX1mdW5jdGlvbiBhKHQsZSxuLHIpe2Zvcih2YXIgaT10LmdldEhlaWdodCgpLG89MCxhPXQuaW5saW5lcy5sZW5ndGg7YT5vO28rKyl7dmFyIHM9dC5pbmxpbmVzW29dO3MuYmFja2dyb3VuZCYmci5maWxsQ29sb3Iocy5iYWNrZ3JvdW5kKS5yZWN0KGUrcy54LG4scy53aWR0aCxpKS5maWxsKCl9fXQuZXhwb3J0cz17ZHJhd0JhY2tncm91bmQ6YSxkcmF3RGVjb3JhdGlvbnM6b319LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe3RoaXMuZmlsZVN5c3RlbT17fSx0aGlzLmJhc2VTeXN0ZW09e319ZnVuY3Rpb24gaSh0KXtyZXR1cm4gMD09PXQuaW5kZXhPZihuKSYmKHQ9dC5zdWJzdHJpbmcobi5sZW5ndGgpKSwwPT09dC5pbmRleE9mKCIvIikmJih0PXQuc3Vic3RyaW5nKDEpKSx0fXIucHJvdG90eXBlLnJlYWRGaWxlU3luYz1mdW5jdGlvbih0KXt0PWkodCk7dmFyIG49dGhpcy5iYXNlU3lzdGVtW3RdO3JldHVybiBuP25ldyBlKG4sImJhc2U2NCIpOnRoaXMuZmlsZVN5c3RlbVt0XX0sci5wcm90b3R5cGUud3JpdGVGaWxlU3luYz1mdW5jdGlvbih0LGUpe3RoaXMuZmlsZVN5c3RlbVtpKHQpXT1lfSxyLnByb3RvdHlwZS5iaW5kRlM9ZnVuY3Rpb24odCl7dGhpcy5iYXNlU3lzdGVtPXR9LHQuZXhwb3J0cz1uZXcgcn0pLmNhbGwoZSxuKDQpLkJ1ZmZlciwiLyIpfSxmdW5jdGlvbih0LGUsbil7dmFyIHI7KGZ1bmN0aW9uKHQsaSl7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyh0LGUpe2lmKHQhPT1lKXt2YXIgbj10PT09dCxyPWU9PT1lO2lmKHQ+ZXx8IW58fCJ1bmRlZmluZWQiPT10eXBlb2YgdCYmcilyZXR1cm4gMTtpZihlPnR8fCFyfHwidW5kZWZpbmVkIj09dHlwZW9mIGUmJm4pcmV0dXJuLTF9cmV0dXJuIDB9ZnVuY3Rpb24gYSh0LGUsbil7aWYoZSE9PWUpcmV0dXJuIG0odCxuKTtmb3IodmFyIHI9KG58fDApLTEsaT10Lmxlbmd0aDsrK3I8aTspaWYodFtyXT09PWUpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gcyh0LGUpe3ZhciBuPXQubGVuZ3RoO2Zvcih0LnNvcnQoZSk7bi0tOyl0W25dPXRbbl0udmFsdWU7cmV0dXJuIHR9ZnVuY3Rpb24gaCh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dDpudWxsPT10PyIiOnQrIiJ9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC5jaGFyQ29kZUF0KDApfWZ1bmN0aW9uIGwodCxlKXtmb3IodmFyIG49LTEscj10Lmxlbmd0aDsrK248ciYmZS5pbmRleE9mKHQuY2hhckF0KG4pKT4tMTspO3JldHVybiBufWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIG49dC5sZW5ndGg7bi0tJiZlLmluZGV4T2YodC5jaGFyQXQobikpPi0xOyk7cmV0dXJuIG59ZnVuY3Rpb24gZih0LGUpe3JldHVybiBvKHQuY3JpdGVyaWEsZS5jcml0ZXJpYSl8fHQuaW5kZXgtZS5pbmRleH1mdW5jdGlvbiBkKHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5jcml0ZXJpYSxpPWUuY3JpdGVyaWEsYT1yLmxlbmd0aDsrK248YTspe3ZhciBzPW8ocltuXSxpW25dKTtpZihzKXJldHVybiBzfXJldHVybiB0LmluZGV4LWUuaW5kZXh9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gSHRbdF19ZnVuY3Rpb24gZyh0KXtyZXR1cm4gWnRbdF19ZnVuY3Rpb24gdih0KXtyZXR1cm4iXFwiK1l0W3RdfWZ1bmN0aW9uIG0odCxlLG4pe2Zvcih2YXIgcj10Lmxlbmd0aCxpPW4/ZXx8cjooZXx8MCktMTtuP2ktLTorK2k8cjspe3ZhciBvPXRbaV07aWYobyE9PW8pcmV0dXJuIGl9cmV0dXJuLTF9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0fHwhMX1mdW5jdGlvbiB3KHQpe3JldHVybiAxNjA+PXQmJnQ+PTkmJjEzPj10fHwzMj09dHx8MTYwPT10fHw1NzYwPT10fHw2MTU4PT10fHx0Pj04MTkyJiYoODIwMj49dHx8ODIzMj09dHx8ODIzMz09dHx8ODIzOT09dHx8ODI4Nz09dHx8MTIyODg9PXR8fDY1Mjc5PT10KX1mdW5jdGlvbiBfKHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGgsaT0tMSxvPVtdOysrbjxyOyl0W25dPT09ZSYmKHRbbl09RyxvWysraV09bik7cmV0dXJuIG99ZnVuY3Rpb24gYih0LGUpe2Zvcih2YXIgbixyPS0xLGk9dC5sZW5ndGgsbz0tMSxhPVtdOysrcjxpOyl7dmFyIHM9dFtyXSxoPWU/ZShzLHIsdCk6cztyJiZuPT09aHx8KG49aCxhWysrb109cyl9cmV0dXJuIGF9ZnVuY3Rpb24geCh0KXtmb3IodmFyIGU9LTEsbj10Lmxlbmd0aDsrK2U8biYmdyh0LmNoYXJDb2RlQXQoZSkpOyk7cmV0dXJuIGV9ZnVuY3Rpb24gUyh0KXtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tJiZ3KHQuY2hhckNvZGVBdChlKSk7KTtyZXR1cm4gZX1mdW5jdGlvbiBrKHQpe3JldHVybiBHdFt0XX1mdW5jdGlvbiBFKHQpe2Z1bmN0aW9uIGUodCl7aWYoeSh0KSYmIWphKHQpKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4gdDtpZihxby5jYWxsKHQsIl9fd3JhcHBlZF9fIikpcmV0dXJuIG5ldyBuKHQuX193cmFwcGVkX18sdC5fX2NoYWluX18sVnQodC5fX2FjdGlvbnNfXykpfXJldHVybiBuZXcgbih0KX1mdW5jdGlvbiBuKHQsZSxuKXt0aGlzLl9fYWN0aW9uc19fPW58fFtdLHRoaXMuX19jaGFpbl9fPSEhZSx0aGlzLl9fd3JhcHBlZF9fPXR9ZnVuY3Rpb24gcih0KXt0aGlzLmFjdGlvbnM9bnVsbCx0aGlzLmRpcj0xLHRoaXMuZHJvcENvdW50PTAsdGhpcy5maWx0ZXJlZD0hMSx0aGlzLml0ZXJhdGVlcz1udWxsLHRoaXMudGFrZUNvdW50PXhhLHRoaXMudmlld3M9bnVsbCx0aGlzLndyYXBwZWQ9dH1mdW5jdGlvbiBpKCl7dmFyIHQ9dGhpcy5hY3Rpb25zLGU9dGhpcy5pdGVyYXRlZXMsbj10aGlzLnZpZXdzLGk9bmV3IHIodGhpcy53cmFwcGVkKTtyZXR1cm4gaS5hY3Rpb25zPXQ/VnQodCk6bnVsbCxpLmRpcj10aGlzLmRpcixpLmRyb3BDb3VudD10aGlzLmRyb3BDb3VudCxpLmZpbHRlcmVkPXRoaXMuZmlsdGVyZWQsaS5pdGVyYXRlZXM9ZT9WdChlKTpudWxsLGkudGFrZUNvdW50PXRoaXMudGFrZUNvdW50LGkudmlld3M9bj9WdChuKTpudWxsLGl9ZnVuY3Rpb24gdygpe2lmKHRoaXMuZmlsdGVyZWQpe3ZhciB0PW5ldyByKHRoaXMpO3QuZGlyPS0xLHQuZmlsdGVyZWQ9ITB9ZWxzZSB0PXRoaXMuY2xvbmUoKSx0LmRpcio9LTE7cmV0dXJuIHR9ZnVuY3Rpb24gSigpe3ZhciB0PXRoaXMud3JhcHBlZC52YWx1ZSgpO2lmKCFqYSh0KSlyZXR1cm4gcWUodCx0aGlzLmFjdGlvbnMpO3ZhciBlPXRoaXMuZGlyLG49MD5lLHI9dm4oMCx0Lmxlbmd0aCx0aGlzLnZpZXdzKSxpPXIuc3RhcnQsbz1yLmVuZCxhPW8taSxzPXRoaXMuZHJvcENvdW50LGg9dmEoYSx0aGlzLnRha2VDb3VudC1zKSx1PW4/bzppLTEsbD10aGlzLml0ZXJhdGVlcyxjPWw/bC5sZW5ndGg6MCxmPTAsZD1bXTt0OmZvcig7YS0tJiZoPmY7KXt1Kz1lO2Zvcih2YXIgcD0tMSxnPXRbdV07KytwPGM7KXt2YXIgdj1sW3BdLG09di5pdGVyYXRlZSx5PW0oZyx1LHQpLHc9di50eXBlO2lmKHc9PWopZz15O2Vsc2UgaWYoIXkpe2lmKHc9PU4pY29udGludWUgdDticmVhayB0fX1zP3MtLTpkW2YrK109Z31yZXR1cm4gZH1mdW5jdGlvbiBudCgpe3RoaXMuX19kYXRhX189e319ZnVuY3Rpb24gaXQodCl7cmV0dXJuIHRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XX1mdW5jdGlvbiBIdCh0KXtyZXR1cm4iX19wcm90b19fIj09dD9DOnRoaXMuX19kYXRhX19bdF19ZnVuY3Rpb24gWnQodCl7cmV0dXJuIl9fcHJvdG9fXyIhPXQmJnFvLmNhbGwodGhpcy5fX2RhdGFfXyx0KX1mdW5jdGlvbiBHdCh0LGUpe3JldHVybiJfX3Byb3RvX18iIT10JiYodGhpcy5fX2RhdGFfX1t0XT1lKSx0aGlzfWZ1bmN0aW9uIHF0KHQpe3ZhciBlPXQ/dC5sZW5ndGg6MDtmb3IodGhpcy5kYXRhPXtoYXNoOmZhKG51bGwpLHNldDpuZXcgb2F9O2UtLTspdGhpcy5wdXNoKHRbZV0pfWZ1bmN0aW9uIFl0KHQsZSl7dmFyIG49dC5kYXRhLHI9InN0cmluZyI9PXR5cGVvZiBlfHxfaShlKT9uLnNldC5oYXMoZSk6bi5oYXNoW2VdO3JldHVybiByPzA6LTF9ZnVuY3Rpb24gWHQodCl7dmFyIGU9dGhpcy5kYXRhOyJzdHJpbmciPT10eXBlb2YgdHx8X2kodCk/ZS5zZXQuYWRkKHQpOmUuaGFzaFt0XT0hMH1mdW5jdGlvbiBWdCh0LGUpe3ZhciBuPS0xLHI9dC5sZW5ndGg7Zm9yKGV8fChlPUJvKHIpKTsrK248cjspZVtuXT10W25dO3JldHVybiBlfWZ1bmN0aW9uICR0KHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGg7KytuPHImJmUodFtuXSxuLHQpIT09ITE7KTtyZXR1cm4gdH1mdW5jdGlvbiBRdCh0LGUpe2Zvcih2YXIgbj10Lmxlbmd0aDtuLS0mJmUodFtuXSxuLHQpIT09ITE7KTtyZXR1cm4gdH1mdW5jdGlvbiB0ZSh0LGUpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoOysrbjxyOylpZighZSh0W25dLG4sdCkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gZWUodCxlKXtmb3IodmFyIG49LTEscj10Lmxlbmd0aCxpPS0xLG89W107KytuPHI7KXt2YXIgYT10W25dO2UoYSxuLHQpJiYob1srK2ldPWEpfXJldHVybiBvfWZ1bmN0aW9uIG5lKHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGgsaT1CbyhyKTsrK248cjspaVtuXT1lKHRbbl0sbix0KTtyZXR1cm4gaX1mdW5jdGlvbiByZSh0KXtmb3IodmFyIGU9LTEsbj10Lmxlbmd0aCxyPWJhOysrZTxuOyl7dmFyIGk9dFtlXTtpPnImJihyPWkpfXJldHVybiByfWZ1bmN0aW9uIGllKHQpe2Zvcih2YXIgZT0tMSxuPXQubGVuZ3RoLHI9eGE7KytlPG47KXt2YXIgaT10W2VdO3I+aSYmKHI9aSl9cmV0dXJuIHJ9ZnVuY3Rpb24gb2UodCxlLG4scil7dmFyIGk9LTEsbz10Lmxlbmd0aDtmb3IociYmbyYmKG49dFsrK2ldKTsrK2k8bzspbj1lKG4sdFtpXSxpLHQpO3JldHVybiBufWZ1bmN0aW9uIGFlKHQsZSxuLHIpe3ZhciBpPXQubGVuZ3RoO2ZvcihyJiZpJiYobj10Wy0taV0pO2ktLTspbj1lKG4sdFtpXSxpLHQpO3JldHVybiBufWZ1bmN0aW9uIHNlKHQsZSl7Zm9yKHZhciBuPS0xLHI9dC5sZW5ndGg7KytuPHI7KWlmKGUodFtuXSxuLHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGhlKHQsZSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB0P2U6dH1mdW5jdGlvbiB1ZSh0LGUsbixyKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHQmJnFvLmNhbGwocixuKT90OmV9ZnVuY3Rpb24gbGUodCxlLG4pe3ZhciByPXFhKGUpO2lmKCFuKXJldHVybiBmZShlLHQscik7Zm9yKHZhciBpPS0xLG89ci5sZW5ndGg7KytpPG87KXt2YXIgYT1yW2ldLHM9dFthXSxoPW4ocyxlW2FdLGEsdCxlKTsoaD09PWg/aD09PXM6cyE9PXMpJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBzfHxhIGluIHQpfHwodFthXT1oKX1yZXR1cm4gdH1mdW5jdGlvbiBjZSh0LGUpe2Zvcih2YXIgbj0tMSxyPXQubGVuZ3RoLGk9U24ociksbz1lLmxlbmd0aCxhPUJvKG8pOysrbjxvOyl7dmFyIHM9ZVtuXTtpPyhzPXBhcnNlRmxvYXQocyksYVtuXT1ibihzLHIpP3Rbc106Qyk6YVtuXT10W3NdfXJldHVybiBhfWZ1bmN0aW9uIGZlKHQsZSxuKXtufHwobj1lLGU9e30pO2Zvcih2YXIgcj0tMSxpPW4ubGVuZ3RoOysrcjxpOyl7dmFyIG89bltyXTtlW29dPXRbb119cmV0dXJuIGV9ZnVuY3Rpb24gZGUodCxlKXtmb3IodmFyIG49LTEscj1lLmxlbmd0aDsrK248cjspe3ZhciBpPWVbbl07dFtpXT11bih0W2ldLEEsdCl9cmV0dXJuIHR9ZnVuY3Rpb24gcGUodCxlLG4pe3ZhciByPXR5cGVvZiB0O3JldHVybiJmdW5jdGlvbiI9PXI/InVuZGVmaW5lZCIhPXR5cGVvZiBlJiZfbih0KT9YZSh0LGUsbik6dDpudWxsPT10P2JvOiJvYmplY3QiPT1yP0RlKHQpOkZlKHQrIiIpfWZ1bmN0aW9uIGdlKHQsZSxuLHIsaSxvLGEpe3ZhciBzO2lmKG4mJihzPWk/bih0LHIsaSk6bih0KSksInVuZGVmaW5lZCIhPXR5cGVvZiBzKXJldHVybiBzO2lmKCFfaSh0KSlyZXR1cm4gdDt2YXIgaD1qYSh0KTtpZihoKXtpZihzPW1uKHQpLCFlKXJldHVybiBWdCh0LHMpfWVsc2V7dmFyIHU9S28uY2FsbCh0KSxsPXU9PSQ7aWYodSE9dHQmJnUhPXEmJighbHx8aSkpcmV0dXJuIE50W3VdP3duKHQsdSxlKTppP3Q6e307aWYocz15bihsP3t9OnQpLCFlKXJldHVybiBmZSh0LHMscWEodCkpfW98fChvPVtdKSxhfHwoYT1bXSk7Zm9yKHZhciBjPW8ubGVuZ3RoO2MtLTspaWYob1tjXT09dClyZXR1cm4gYVtjXTtyZXR1cm4gby5wdXNoKHQpLGEucHVzaChzKSwoaD8kdDpJZSkodCxmdW5jdGlvbihyLGkpe3NbaV09Z2UocixlLG4saSx0LG8sYSl9KSxzfWZ1bmN0aW9uIHZlKHQsZSxuLHIpe2lmKCF3aSh0KSl0aHJvdyBuZXcgV28oWik7cmV0dXJuIGFhKGZ1bmN0aW9uKCl7dC5hcHBseShDLGplKG4scikpfSxlKX1mdW5jdGlvbiBtZSh0LGUpe3ZhciBuPXQ/dC5sZW5ndGg6MCxyPVtdO2lmKCFuKXJldHVybiByO3ZhciBpPS0xLG89Z24oKSxzPW89PWEsaD1zJiZlLmxlbmd0aD49MjAwJiZUYShlKSx1PWUubGVuZ3RoO2gmJihvPVl0LHM9ITEsZT1oKTt0OmZvcig7KytpPG47KXt2YXIgbD10W2ldO2lmKHMmJmw9PT1sKXtmb3IodmFyIGM9dTtjLS07KWlmKGVbY109PT1sKWNvbnRpbnVlIHQ7ci5wdXNoKGwpfWVsc2UgbyhlLGwpPDAmJnIucHVzaChsKX1yZXR1cm4gcn1mdW5jdGlvbiB5ZSh0LGUpe3ZhciBuPXQ/dC5sZW5ndGg6MDtpZighU24obikpcmV0dXJuIEllKHQsZSk7Zm9yKHZhciByPS0xLGk9VG4odCk7KytyPG4mJmUoaVtyXSxyLGkpIT09ITE7KTtyZXR1cm4gdH1mdW5jdGlvbiB3ZSh0LGUpe3ZhciBuPXQ/dC5sZW5ndGg6MDtpZighU24obikpcmV0dXJuIEFlKHQsZSk7Zm9yKHZhciByPVRuKHQpO24tLSYmZShyW25dLG4scikhPT0hMTspO3JldHVybiB0fWZ1bmN0aW9uIF9lKHQsZSl7dmFyIG49ITA7cmV0dXJuIHllKHQsZnVuY3Rpb24odCxyLGkpe3JldHVybiBuPSEhZSh0LHIsaSl9KSxufWZ1bmN0aW9uIGJlKHQsZSl7dmFyIG49W107cmV0dXJuIHllKHQsZnVuY3Rpb24odCxyLGkpe2UodCxyLGkpJiZuLnB1c2godCl9KSxufWZ1bmN0aW9uIHhlKHQsZSxuLHIpe3ZhciBpO3JldHVybiBuKHQsZnVuY3Rpb24odCxuLG8pe3JldHVybiBlKHQsbixvKT8oaT1yP246dCwhMSk6dm9pZCAwfSksaX1mdW5jdGlvbiBTZSh0LGUsbixyKXtmb3IodmFyIGk9KHJ8fDApLTEsbz10Lmxlbmd0aCxhPS0xLHM9W107KytpPG87KXt2YXIgaD10W2ldO2lmKHkoaCkmJlNuKGgubGVuZ3RoKSYmKGphKGgpfHxmaShoKSkpe2UmJihoPVNlKGgsZSxuKSk7dmFyIHU9LTEsbD1oLmxlbmd0aDtmb3Iocy5sZW5ndGgrPWw7Kyt1PGw7KXNbKythXT1oW3VdfWVsc2Ugbnx8KHNbKythXT1oKX1yZXR1cm4gc31mdW5jdGlvbiBrZSh0LGUsbil7Zm9yKHZhciByPS0xLGk9VG4odCksbz1uKHQpLGE9by5sZW5ndGg7KytyPGE7KXt2YXIgcz1vW3JdO2lmKGUoaVtzXSxzLGkpPT09ITEpYnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gRWUodCxlLG4pe2Zvcih2YXIgcj1Ubih0KSxpPW4odCksbz1pLmxlbmd0aDtvLS07KXt2YXIgYT1pW29dO2lmKGUoclthXSxhLHIpPT09ITEpYnJlYWt9cmV0dXJuIHR9ZnVuY3Rpb24gQ2UodCxlKXtyZXR1cm4ga2UodCxlLEhpKX1mdW5jdGlvbiBJZSh0LGUpe3JldHVybiBrZSh0LGUscWEpfWZ1bmN0aW9uIEFlKHQsZSl7cmV0dXJuIEVlKHQsZSxxYSl9ZnVuY3Rpb24gTGUodCxlKXtmb3IodmFyIG49LTEscj1lLmxlbmd0aCxpPS0xLG89W107KytuPHI7KXt2YXIgYT1lW25dO3dpKHRbYV0pJiYob1srK2ldPWEpfXJldHVybiBvfWZ1bmN0aW9uIFJlKHQsZSxuKXt2YXIgcj0tMSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBlLG89dD90Lmxlbmd0aDowLGE9U24obyk/Qm8obyk6W107cmV0dXJuIHllKHQsZnVuY3Rpb24odCl7CnZhciBvPWk/ZTpudWxsIT10JiZ0W2VdO2FbKytyXT1vP28uYXBwbHkodCxuKTpDfSksYX1mdW5jdGlvbiBCZSh0LGUsbixyLGksbyl7aWYodD09PWUpcmV0dXJuIDAhPT10fHwxL3Q9PTEvZTt2YXIgYT10eXBlb2YgdCxzPXR5cGVvZiBlO3JldHVybiJmdW5jdGlvbiIhPWEmJiJvYmplY3QiIT1hJiYiZnVuY3Rpb24iIT1zJiYib2JqZWN0IiE9c3x8bnVsbD09dHx8bnVsbD09ZT90IT09dCYmZSE9PWU6VGUodCxlLEJlLG4scixpLG8pfWZ1bmN0aW9uIFRlKHQsZSxuLHIsaSxvLGEpe3ZhciBzPWphKHQpLGg9amEoZSksdT1ZLGw9WTtzfHwodT1Lby5jYWxsKHQpLHU9PXE/dT10dDp1IT10dCYmKHM9QWkodCkpKSxofHwobD1Lby5jYWxsKGUpLGw9PXE/bD10dDpsIT10dCYmKGg9QWkoZSkpKTt2YXIgYz11PT10dCxmPWw9PXR0LGQ9dT09bDtpZihkJiYhcyYmIWMpcmV0dXJuIGNuKHQsZSx1KTt2YXIgcD1jJiZxby5jYWxsKHQsIl9fd3JhcHBlZF9fIiksZz1mJiZxby5jYWxsKGUsIl9fd3JhcHBlZF9fIik7aWYocHx8ZylyZXR1cm4gbihwP3QudmFsdWUoKTp0LGc/ZS52YWx1ZSgpOmUscixpLG8sYSk7aWYoIWQpcmV0dXJuITE7b3x8KG89W10pLGF8fChhPVtdKTtmb3IodmFyIHY9by5sZW5ndGg7di0tOylpZihvW3ZdPT10KXJldHVybiBhW3ZdPT1lO28ucHVzaCh0KSxhLnB1c2goZSk7dmFyIG09KHM/bG46Zm4pKHQsZSxuLHIsaSxvLGEpO3JldHVybiBvLnBvcCgpLGEucG9wKCksbX1mdW5jdGlvbiBNZSh0LGUsbixyLGkpe3ZhciBvPWUubGVuZ3RoO2lmKG51bGw9PXQpcmV0dXJuIW87Zm9yKHZhciBhPS0xLHM9IWk7KythPG87KWlmKHMmJnJbYV0/blthXSE9PXRbZVthXV06IXFvLmNhbGwodCxlW2FdKSlyZXR1cm4hMTtmb3IoYT0tMTsrK2E8bzspe3ZhciBoPWVbYV07aWYocyYmclthXSl2YXIgdT1xby5jYWxsKHQsaCk7ZWxzZXt2YXIgbD10W2hdLGM9blthXTt1PWk/aShsLGMsaCk6QywidW5kZWZpbmVkIj09dHlwZW9mIHUmJih1PUJlKGMsbCxpLCEwKSl9aWYoIXUpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gT2UodCxlKXt2YXIgbj1bXTtyZXR1cm4geWUodCxmdW5jdGlvbih0LHIsaSl7bi5wdXNoKGUodCxyLGkpKX0pLG59ZnVuY3Rpb24gRGUodCl7dmFyIGU9cWEodCksbj1lLmxlbmd0aDtpZigxPT1uKXt2YXIgcj1lWzBdLGk9dFtyXTtpZihrbihpKSlyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG51bGwhPXQmJmk9PT10W3JdJiZxby5jYWxsKHQscil9fWZvcih2YXIgbz1CbyhuKSxhPUJvKG4pO24tLTspaT10W2Vbbl1dLG9bbl09aSxhW25dPWtuKGkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gTWUodCxlLG8sYSl9fWZ1bmN0aW9uIFVlKHQsZSxuLHIsaSl7dmFyIG89U24oZS5sZW5ndGgpJiYoamEoZSl8fEFpKGUpKTtyZXR1cm4obz8kdDpJZSkoZSxmdW5jdGlvbihlLGEscyl7aWYoeShlKSlyZXR1cm4gcnx8KHI9W10pLGl8fChpPVtdKSxQZSh0LHMsYSxVZSxuLHIsaSk7dmFyIGg9dFthXSx1PW4/bihoLGUsYSx0LHMpOkMsbD0idW5kZWZpbmVkIj09dHlwZW9mIHU7bCYmKHU9ZSksIW8mJiJ1bmRlZmluZWQiPT10eXBlb2YgdXx8IWwmJih1PT09dT91PT09aDpoIT09aCl8fCh0W2FdPXUpfSksdH1mdW5jdGlvbiBQZSh0LGUsbixyLGksbyxhKXtmb3IodmFyIHM9by5sZW5ndGgsaD1lW25dO3MtLTspaWYob1tzXT09aClyZXR1cm4gdm9pZCh0W25dPWFbc10pO3ZhciB1PXRbbl0sbD1pP2kodSxoLG4sdCxlKTpDLGM9InVuZGVmaW5lZCI9PXR5cGVvZiBsO2MmJihsPWgsU24oaC5sZW5ndGgpJiYoamEoaCl8fEFpKGgpKT9sPWphKHUpP3U6dT9WdCh1KTpbXTpaYShoKXx8ZmkoaCk/bD1maSh1KT9CaSh1KTpaYSh1KT91Ont9OmM9ITEpLG8ucHVzaChoKSxhLnB1c2gobCksYz90W25dPXIobCxoLGksbyxhKToobD09PWw/bCE9PXU6dT09PXUpJiYodFtuXT1sKX1mdW5jdGlvbiBGZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/QzplW3RdfX1mdW5jdGlvbiB6ZSh0LGUpe3ZhciBuPWUubGVuZ3RoLHI9Y2UodCxlKTtmb3IoZS5zb3J0KG8pO24tLTspe3ZhciBpPXBhcnNlRmxvYXQoZVtuXSk7aWYoaSE9YSYmYm4oaSkpe3ZhciBhPWk7c2EuY2FsbCh0LGksMSl9fXJldHVybiByfWZ1bmN0aW9uIFdlKHQsZSl7cmV0dXJuIHQrZWEoX2EoKSooZS10KzEpKX1mdW5jdGlvbiBOZSh0LGUsbixyLGkpe3JldHVybiBpKHQsZnVuY3Rpb24odCxpLG8pe249cj8ocj0hMSx0KTplKG4sdCxpLG8pfSksbn1mdW5jdGlvbiBqZSh0LGUsbil7dmFyIHI9LTEsaT10Lmxlbmd0aDtlPW51bGw9PWU/MDorZXx8MCwwPmUmJihlPS1lPmk/MDppK2UpLG49InVuZGVmaW5lZCI9PXR5cGVvZiBufHxuPmk/aTorbnx8MCwwPm4mJihuKz1pKSxpPWU+bj8wOm4tZT4+PjAsZT4+Pj0wO2Zvcih2YXIgbz1CbyhpKTsrK3I8aTspb1tyXT10W3IrZV07cmV0dXJuIG99ZnVuY3Rpb24gSGUodCxlKXt2YXIgbjtyZXR1cm4geWUodCxmdW5jdGlvbih0LHIsaSl7cmV0dXJuIG49ZSh0LHIsaSksIW59KSwhIW59ZnVuY3Rpb24gWmUodCxlKXt2YXIgbj0tMSxyPWduKCksaT10Lmxlbmd0aCxvPXI9PWEscz1vJiZpPj0yMDAsaD1zJiZUYSgpLHU9W107aD8ocj1ZdCxvPSExKToocz0hMSxoPWU/W106dSk7dDpmb3IoOysrbjxpOyl7dmFyIGw9dFtuXSxjPWU/ZShsLG4sdCk6bDtpZihvJiZsPT09bCl7Zm9yKHZhciBmPWgubGVuZ3RoO2YtLTspaWYoaFtmXT09PWMpY29udGludWUgdDtlJiZoLnB1c2goYyksdS5wdXNoKGwpfWVsc2UgcihoLGMpPDAmJigoZXx8cykmJmgucHVzaChjKSx1LnB1c2gobCkpfXJldHVybiB1fWZ1bmN0aW9uIEdlKHQsZSl7Zm9yKHZhciBuPS0xLHI9ZS5sZW5ndGgsaT1CbyhyKTsrK248cjspaVtuXT10W2Vbbl1dO3JldHVybiBpfWZ1bmN0aW9uIHFlKHQsZSl7dmFyIG49dDtuIGluc3RhbmNlb2YgciYmKG49bi52YWx1ZSgpKTtmb3IodmFyIGk9LTEsbz1lLmxlbmd0aDsrK2k8bzspe3ZhciBhPVtuXSxzPWVbaV07cmEuYXBwbHkoYSxzLmFyZ3MpLG49cy5mdW5jLmFwcGx5KHMudGhpc0FyZyxhKX1yZXR1cm4gbn1mdW5jdGlvbiBZZSh0LGUsbil7dmFyIHI9MCxpPXQ/dC5sZW5ndGg6cjtpZigibnVtYmVyIj09dHlwZW9mIGUmJmU9PT1lJiZFYT49aSl7Zm9yKDtpPnI7KXt2YXIgbz1yK2k+Pj4xLGE9dFtvXTsobj9lPj1hOmU+YSk/cj1vKzE6aT1vfXJldHVybiBpfXJldHVybiBLZSh0LGUsYm8sbil9ZnVuY3Rpb24gS2UodCxlLG4scil7ZT1uKGUpO2Zvcih2YXIgaT0wLG89dD90Lmxlbmd0aDowLGE9ZSE9PWUscz0idW5kZWZpbmVkIj09dHlwZW9mIGU7bz5pOyl7dmFyIGg9ZWEoKGkrbykvMiksdT1uKHRbaF0pLGw9dT09PXU7aWYoYSl2YXIgYz1sfHxyO2Vsc2UgYz1zP2wmJihyfHwidW5kZWZpbmVkIiE9dHlwZW9mIHUpOnI/ZT49dTplPnU7Yz9pPWgrMTpvPWh9cmV0dXJuIHZhKG8sa2EpfWZ1bmN0aW9uIFhlKHQsZSxuKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdClyZXR1cm4gYm87aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlKXJldHVybiB0O3N3aXRjaChuKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0LmNhbGwoZSxuKX07Y2FzZSAzOnJldHVybiBmdW5jdGlvbihuLHIsaSl7cmV0dXJuIHQuY2FsbChlLG4scixpKX07Y2FzZSA0OnJldHVybiBmdW5jdGlvbihuLHIsaSxvKXtyZXR1cm4gdC5jYWxsKGUsbixyLGksbyl9O2Nhc2UgNTpyZXR1cm4gZnVuY3Rpb24obixyLGksbyxhKXtyZXR1cm4gdC5jYWxsKGUsbixyLGksbyxhKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZSxhcmd1bWVudHMpfX1mdW5jdGlvbiBWZSh0KXtyZXR1cm4gSm8uY2FsbCh0LDApfWZ1bmN0aW9uICRlKHQsZSxuKXtmb3IodmFyIHI9bi5sZW5ndGgsaT0tMSxvPWdhKHQubGVuZ3RoLXIsMCksYT0tMSxzPWUubGVuZ3RoLGg9Qm8obytzKTsrK2E8czspaFthXT1lW2FdO2Zvcig7KytpPHI7KWhbbltpXV09dFtpXTtmb3IoO28tLTspaFthKytdPXRbaSsrXTtyZXR1cm4gaH1mdW5jdGlvbiBKZSh0LGUsbil7Zm9yKHZhciByPS0xLGk9bi5sZW5ndGgsbz0tMSxhPWdhKHQubGVuZ3RoLWksMCkscz0tMSxoPWUubGVuZ3RoLHU9Qm8oYStoKTsrK288YTspdVtvXT10W29dO2Zvcih2YXIgbD1vOysrczxoOyl1W2wrc109ZVtzXTtmb3IoOysrcjxpOyl1W2wrbltyXV09dFtvKytdO3JldHVybiB1fWZ1bmN0aW9uIFFlKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXt2YXIgbz1lP2UoKTp7fTtpZihyPXBuKHIsaSwzKSxqYShuKSlmb3IodmFyIGE9LTEscz1uLmxlbmd0aDsrK2E8czspe3ZhciBoPW5bYV07dChvLGgscihoLGEsbiksbil9ZWxzZSB5ZShuLGZ1bmN0aW9uKGUsbixpKXt0KG8sZSxyKGUsbixpKSxpKX0pO3JldHVybiBvfX1mdW5jdGlvbiB0bih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49YXJndW1lbnRzWzBdO2lmKDI+ZXx8bnVsbD09bilyZXR1cm4gbjtpZihlPjMmJnhuKGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl0sYXJndW1lbnRzWzNdKSYmKGU9MiksZT4zJiYiZnVuY3Rpb24iPT10eXBlb2YgYXJndW1lbnRzW2UtMl0pdmFyIHI9WGUoYXJndW1lbnRzWy0tZS0xXSxhcmd1bWVudHNbZS0tXSw1KTtlbHNlIGU+MiYmImZ1bmN0aW9uIj09dHlwZW9mIGFyZ3VtZW50c1tlLTFdJiYocj1hcmd1bWVudHNbLS1lXSk7Zm9yKHZhciBpPTA7KytpPGU7KXt2YXIgbz1hcmd1bWVudHNbaV07byYmdChuLG8scil9cmV0dXJuIG59fWZ1bmN0aW9uIGVuKHQsZSl7ZnVuY3Rpb24gbigpe3JldHVybih0aGlzIGluc3RhbmNlb2Ygbj9yOnQpLmFwcGx5KGUsYXJndW1lbnRzKX12YXIgcj1ybih0KTtyZXR1cm4gbn1mdW5jdGlvbiBubih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBuPS0xLHI9bW8odG8oZSkpLGk9ci5sZW5ndGgsbz0iIjsrK248aTspbz10KG8scltuXSxuKTtyZXR1cm4gb319ZnVuY3Rpb24gcm4odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9UmEodC5wcm90b3R5cGUpLG49dC5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIF9pKG4pP246ZX19ZnVuY3Rpb24gb24odCxlKXtyZXR1cm4gZnVuY3Rpb24obixyLGkpe2kmJnhuKG4scixpKSYmKHI9bnVsbCk7dmFyIG89cG4oKSxhPW51bGw9PXI7aWYobz09PXBlJiZhfHwoYT0hMSxyPW8ocixpLDMpKSxhKXt2YXIgcz1qYShuKTtpZihzfHwhSWkobikpcmV0dXJuIHQocz9uOkJuKG4pKTtyPXV9cmV0dXJuIGRuKG4scixlKX19ZnVuY3Rpb24gYW4odCxlLG4scixpLG8sYSxzLGgsdSl7ZnVuY3Rpb24gbCgpe2Zvcih2YXIgdz1hcmd1bWVudHMubGVuZ3RoLGI9dyx4PUJvKHcpO2ItLTspeFtiXT1hcmd1bWVudHNbYl07aWYociYmKHg9JGUoeCxyLGkpKSxvJiYoeD1KZSh4LG8sYSkpLHB8fHYpe3ZhciBTPWwucGxhY2Vob2xkZXIsaz1fKHgsUyk7aWYody09ay5sZW5ndGgsdT53KXt2YXIgRT1zP1Z0KHMpOm51bGwsQz1nYSh1LXcsMCksST1wP2s6bnVsbCxSPXA/bnVsbDprLEI9cD94Om51bGwsVD1wP251bGw6eDtlfD1wP006TyxlJj1+KHA/TzpNKSxnfHwoZSY9fihBfEwpKTt2YXIgRD1hbih0LGUsbixCLEksVCxSLEUsaCxDKTtyZXR1cm4gRC5wbGFjZWhvbGRlcj1TLER9fXZhciBVPWY/bjp0aGlzO3JldHVybiBkJiYodD1VW3ldKSxzJiYoeD1Bbih4LHMpKSxjJiZoPHgubGVuZ3RoJiYoeC5sZW5ndGg9aCksKHRoaXMgaW5zdGFuY2VvZiBsP218fHJuKHQpOnQpLmFwcGx5KFUseCl9dmFyIGM9ZSZVLGY9ZSZBLGQ9ZSZMLHA9ZSZCLGc9ZSZSLHY9ZSZULG09IWQmJnJuKHQpLHk9dDtyZXR1cm4gbH1mdW5jdGlvbiBzbih0LGUsbil7dmFyIHI9dC5sZW5ndGg7aWYoZT0rZSxyPj1lfHwhZGEoZSkpcmV0dXJuIiI7dmFyIGk9ZS1yO3JldHVybiBuPW51bGw9PW4/IiAiOm4rIiIsaG8obixRbyhpL24ubGVuZ3RoKSkuc2xpY2UoMCxpKX1mdW5jdGlvbiBobih0LGUsbixyKXtmdW5jdGlvbiBpKCl7Zm9yKHZhciBlPS0xLHM9YXJndW1lbnRzLmxlbmd0aCxoPS0xLHU9ci5sZW5ndGgsbD1CbyhzK3UpOysraDx1OylsW2hdPXJbaF07Zm9yKDtzLS07KWxbaCsrXT1hcmd1bWVudHNbKytlXTtyZXR1cm4odGhpcyBpbnN0YW5jZW9mIGk/YTp0KS5hcHBseShvP246dGhpcyxsKX12YXIgbz1lJkEsYT1ybih0KTtyZXR1cm4gaX1mdW5jdGlvbiB1bih0LGUsbixyLGksbyxhLHMpe3ZhciBoPWUmTDtpZighaCYmIXdpKHQpKXRocm93IG5ldyBXbyhaKTt2YXIgdT1yP3IubGVuZ3RoOjA7aWYodXx8KGUmPX4oTXxPKSxyPWk9bnVsbCksdS09aT9pLmxlbmd0aDowLGUmTyl7dmFyIGw9cixjPWk7cj1pPW51bGx9dmFyIGY9IWgmJk1hKHQpLGQ9W3QsZSxuLHIsaSxsLGMsbyxhLHNdO2lmKGYmJmYhPT0hMCYmKEVuKGQsZiksZT1kWzFdLHM9ZFs5XSksZFs5XT1udWxsPT1zP2g/MDp0Lmxlbmd0aDpnYShzLXUsMCl8fDAsZT09QSl2YXIgcD1lbihkWzBdLGRbMl0pO2Vsc2UgcD1lIT1NJiZlIT0oQXxNKXx8ZFs0XS5sZW5ndGg/YW4uYXBwbHkobnVsbCxkKTpobi5hcHBseShudWxsLGQpO3ZhciBnPWY/QmE6T2E7cmV0dXJuIGcocCxkKX1mdW5jdGlvbiBsbih0LGUsbixyLGksbyxhKXt2YXIgcz0tMSxoPXQubGVuZ3RoLHU9ZS5sZW5ndGgsbD0hMDtpZihoIT11JiYhKGkmJnU+aCkpcmV0dXJuITE7Zm9yKDtsJiYrK3M8aDspe3ZhciBjPXRbc10sZj1lW3NdO2lmKGw9QyxyJiYobD1pP3IoZixjLHMpOnIoYyxmLHMpKSwidW5kZWZpbmVkIj09dHlwZW9mIGwpaWYoaSlmb3IodmFyIGQ9dTtkLS0mJihmPWVbZF0sIShsPWMmJmM9PT1mfHxuKGMsZixyLGksbyxhKSkpOyk7ZWxzZSBsPWMmJmM9PT1mfHxuKGMsZixyLGksbyxhKX1yZXR1cm4hIWx9ZnVuY3Rpb24gY24odCxlLG4pe3N3aXRjaChuKXtjYXNlIEs6Y2FzZSBYOnJldHVybit0PT0rZTtjYXNlIFY6cmV0dXJuIHQubmFtZT09ZS5uYW1lJiZ0Lm1lc3NhZ2U9PWUubWVzc2FnZTtjYXNlIFE6cmV0dXJuIHQhPSt0P2UhPStlOjA9PXQ/MS90PT0xL2U6dD09K2U7Y2FzZSBldDpjYXNlIHJ0OnJldHVybiB0PT1lKyIifXJldHVybiExfWZ1bmN0aW9uIGZuKHQsZSxuLHIsaSxvLGEpe3ZhciBzPXFhKHQpLGg9cy5sZW5ndGgsdT1xYShlKSxsPXUubGVuZ3RoO2lmKGghPWwmJiFpKXJldHVybiExO2Zvcih2YXIgYyxmPS0xOysrZjxoOyl7dmFyIGQ9c1tmXSxwPXFvLmNhbGwoZSxkKTtpZihwKXt2YXIgZz10W2RdLHY9ZVtkXTtwPUMsciYmKHA9aT9yKHYsZyxkKTpyKGcsdixkKSksInVuZGVmaW5lZCI9PXR5cGVvZiBwJiYocD1nJiZnPT09dnx8bihnLHYscixpLG8sYSkpfWlmKCFwKXJldHVybiExO2N8fChjPSJjb25zdHJ1Y3RvciI9PWQpfWlmKCFjKXt2YXIgbT10LmNvbnN0cnVjdG9yLHk9ZS5jb25zdHJ1Y3RvcjtpZihtIT15JiYiY29uc3RydWN0b3IiaW4gdCYmImNvbnN0cnVjdG9yImluIGUmJiEoImZ1bmN0aW9uIj09dHlwZW9mIG0mJm0gaW5zdGFuY2VvZiBtJiYiZnVuY3Rpb24iPT10eXBlb2YgeSYmeSBpbnN0YW5jZW9mIHkpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGRuKHQsZSxuKXt2YXIgcj1uP3hhOmJhLGk9cixvPWk7cmV0dXJuIHllKHQsZnVuY3Rpb24odCxhLHMpe3ZhciBoPWUodCxhLHMpOygobj9pPmg6aD5pKXx8aD09PXImJmg9PT1vKSYmKGk9aCxvPXQpfSksb31mdW5jdGlvbiBwbih0LG4scil7dmFyIGk9ZS5jYWxsYmFja3x8d287cmV0dXJuIGk9aT09PXdvP3BlOmkscj9pKHQsbixyKTppfWZ1bmN0aW9uIGduKHQsbixyKXt2YXIgaT1lLmluZGV4T2Z8fEduO3JldHVybiBpPWk9PT1Hbj9hOmksdD9pKHQsbixyKTppfWZ1bmN0aW9uIHZuKHQsZSxuKXtmb3IodmFyIHI9LTEsaT1uP24ubGVuZ3RoOjA7KytyPGk7KXt2YXIgbz1uW3JdLGE9by5zaXplO3N3aXRjaChvLnR5cGUpe2Nhc2UiZHJvcCI6dCs9YTticmVhaztjYXNlImRyb3BSaWdodCI6ZS09YTticmVhaztjYXNlInRha2UiOmU9dmEoZSx0K2EpO2JyZWFrO2Nhc2UidGFrZVJpZ2h0Ijp0PWdhKHQsZS1hKX19cmV0dXJue3N0YXJ0OnQsZW5kOmV9fWZ1bmN0aW9uIG1uKHQpe3ZhciBlPXQubGVuZ3RoLG49bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgdFswXSYmcW8uY2FsbCh0LCJpbmRleCIpJiYobi5pbmRleD10LmluZGV4LG4uaW5wdXQ9dC5pbnB1dCksbn1mdW5jdGlvbiB5bih0KXt2YXIgZT10LmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlIGluc3RhbmNlb2YgZXx8KGU9UG8pLG5ldyBlfWZ1bmN0aW9uIHduKHQsZSxuKXt2YXIgcj10LmNvbnN0cnVjdG9yO3N3aXRjaChlKXtjYXNlIG90OnJldHVybiBWZSh0KTtjYXNlIEs6Y2FzZSBYOnJldHVybiBuZXcgcigrdCk7Y2FzZSBhdDpjYXNlIHN0OmNhc2UgaHQ6Y2FzZSB1dDpjYXNlIGx0OmNhc2UgY3Q6Y2FzZSBmdDpjYXNlIGR0OmNhc2UgcHQ6dmFyIGk9dC5idWZmZXI7cmV0dXJuIG5ldyByKG4/VmUoaSk6aSx0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpO2Nhc2UgUTpjYXNlIHJ0OnJldHVybiBuZXcgcih0KTtjYXNlIGV0OnZhciBvPW5ldyByKHQuc291cmNlLEN0LmV4ZWModCkpO28ubGFzdEluZGV4PXQubGFzdEluZGV4fXJldHVybiBvfWZ1bmN0aW9uIF9uKHQpe3ZhciBuPWUuc3VwcG9ydCxyPSEobi5mdW5jTmFtZXM/dC5uYW1lOm4uZnVuY0RlY29tcCk7aWYoIXIpe3ZhciBpPVpvLmNhbGwodCk7bi5mdW5jTmFtZXN8fChyPSFJdC50ZXN0KGkpKSxyfHwocj1PdC50ZXN0KGkpfHxTaSh0KSxCYSh0LHIpKX1yZXR1cm4gcn1mdW5jdGlvbiBibih0LGUpe3JldHVybiB0PSt0LGU9bnVsbD09ZT9JYTplLHQ+LTEmJnQlMT09MCYmZT50fWZ1bmN0aW9uIHhuKHQsZSxuKXtpZighX2kobikpcmV0dXJuITE7dmFyIHI9dHlwZW9mIGU7aWYoIm51bWJlciI9PXIpdmFyIGk9bi5sZW5ndGgsbz1TbihpKSYmYm4oZSxpKTtlbHNlIG89InN0cmluZyI9PXImJmUgaW4gbjtyZXR1cm4gbyYmbltlXT09PXR9ZnVuY3Rpb24gU24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJklhPj10fWZ1bmN0aW9uIGtuKHQpe3JldHVybiB0PT09dCYmKDA9PT10PzEvdD4wOiFfaSh0KSl9ZnVuY3Rpb24gRW4odCxlKXt2YXIgbj10WzFdLHI9ZVsxXSxpPW58cixvPVV8RCxhPUF8TCxzPW98YXxSfFQsaD1uJlUmJiEociZVKSx1PW4mRCYmIShyJkQpLGw9KHU/dDplKVs3XSxjPShoP3Q6ZSlbOF0sZj0hKG4+PUQmJnI+YXx8bj5hJiZyPj1EKSxkPWk+PW8mJnM+PWkmJihEPm58fCh1fHxoKSYmbC5sZW5ndGg8PWMpO2lmKCFmJiYhZClyZXR1cm4gdDtyJkEmJih0WzJdPWVbMl0saXw9biZBPzA6Uik7dmFyIHA9ZVszXTtpZihwKXt2YXIgZz10WzNdO3RbM109Zz8kZShnLHAsZVs0XSk6VnQocCksdFs0XT1nP18odFszXSxHKTpWdChlWzRdKX1yZXR1cm4gcD1lWzVdLHAmJihnPXRbNV0sdFs1XT1nP0plKGcscCxlWzZdKTpWdChwKSx0WzZdPWc/Xyh0WzVdLEcpOlZ0KGVbNl0pKSxwPWVbN10scCYmKHRbN109VnQocCkpLHImVSYmKHRbOF09bnVsbD09dFs4XT9lWzhdOnZhKHRbOF0sZVs4XSkpLG51bGw9PXRbOV0mJih0WzldPWVbOV0pLHRbMF09ZVswXSx0WzFdPWksdH1mdW5jdGlvbiBDbih0LGUpe3Q9VG4odCk7Zm9yKHZhciBuPS0xLHI9ZS5sZW5ndGgsaT17fTsrK248cjspe3ZhciBvPWVbbl07byBpbiB0JiYoaVtvXT10W29dKX1yZXR1cm4gaX1mdW5jdGlvbiBJbih0LGUpe3ZhciBuPXt9O3JldHVybiBDZSh0LGZ1bmN0aW9uKHQscixpKXtlKHQscixpKSYmKG5bcl09dCl9KSxufWZ1bmN0aW9uIEFuKHQsZSl7Zm9yKHZhciBuPXQubGVuZ3RoLHI9dmEoZS5sZW5ndGgsbiksaT1WdCh0KTtyLS07KXt2YXIgbz1lW3JdO3Rbcl09Ym4obyxuKT9pW29dOkN9cmV0dXJuIHR9ZnVuY3Rpb24gTG4odCl7e3ZhciBuO2Uuc3VwcG9ydH1pZigheSh0KXx8S28uY2FsbCh0KSE9dHR8fCFxby5jYWxsKHQsImNvbnN0cnVjdG9yIikmJihuPXQuY29uc3RydWN0b3IsImZ1bmN0aW9uIj09dHlwZW9mIG4mJiEobiBpbnN0YW5jZW9mIG4pKSlyZXR1cm4hMTt2YXIgcjtyZXR1cm4gQ2UodCxmdW5jdGlvbih0LGUpe3I9ZX0pLCJ1bmRlZmluZWQiPT10eXBlb2Ygcnx8cW8uY2FsbCh0LHIpfWZ1bmN0aW9uIFJuKHQpe2Zvcih2YXIgbj1IaSh0KSxyPW4ubGVuZ3RoLGk9ciYmdC5sZW5ndGgsbz1lLnN1cHBvcnQsYT1pJiZTbihpKSYmKGphKHQpfHxvLm5vbkVudW1BcmdzJiZmaSh0KSkscz0tMSxoPVtdOysrczxyOyl7dmFyIHU9bltzXTsoYSYmYm4odSxpKXx8cW8uY2FsbCh0LHUpKSYmaC5wdXNoKHUpfXJldHVybiBofWZ1bmN0aW9uIEJuKHQpe3JldHVybiBudWxsPT10P1tdOlNuKHQubGVuZ3RoKT9faSh0KT90OlBvKHQpOlZpKHQpfWZ1bmN0aW9uIFRuKHQpe3JldHVybiBfaSh0KT90OlBvKHQpfWZ1bmN0aW9uIE1uKHQsZSxuKXtlPShuP3huKHQsZSxuKTpudWxsPT1lKT8xOmdhKCtlfHwxLDEpO2Zvcih2YXIgcj0wLGk9dD90Lmxlbmd0aDowLG89LTEsYT1CbyhRbyhpL2UpKTtpPnI7KWFbKytvXT1qZSh0LHIscis9ZSk7cmV0dXJuIGF9ZnVuY3Rpb24gT24odCl7Zm9yKHZhciBlPS0xLG49dD90Lmxlbmd0aDowLHI9LTEsaT1bXTsrK2U8bjspe3ZhciBvPXRbZV07byYmKGlbKytyXT1vKX1yZXR1cm4gaX1mdW5jdGlvbiBEbigpe2Zvcih2YXIgdD0tMSxlPWFyZ3VtZW50cy5sZW5ndGg7Kyt0PGU7KXt2YXIgbj1hcmd1bWVudHNbdF07aWYoamEobil8fGZpKG4pKWJyZWFrfXJldHVybiBtZShuLFNlKGFyZ3VtZW50cywhMSwhMCwrK3QpKX1mdW5jdGlvbiBVbih0LGUsbil7dmFyIHI9dD90Lmxlbmd0aDowO3JldHVybiByPygobj94bih0LGUsbik6bnVsbD09ZSkmJihlPTEpLGplKHQsMD5lPzA6ZSkpOltdfWZ1bmN0aW9uIFBuKHQsZSxuKXt2YXIgcj10P3QubGVuZ3RoOjA7cmV0dXJuIHI/KChuP3huKHQsZSxuKTpudWxsPT1lKSYmKGU9MSksZT1yLSgrZXx8MCksamUodCwwLDA+ZT8wOmUpKTpbXX1mdW5jdGlvbiBGbih0LGUsbil7dmFyIHI9dD90Lmxlbmd0aDowO2lmKCFyKXJldHVybltdO2ZvcihlPXBuKGUsbiwzKTtyLS0mJmUodFtyXSxyLHQpOyk7cmV0dXJuIGplKHQsMCxyKzEpfWZ1bmN0aW9uIHpuKHQsZSxuKXt2YXIgcj10P3QubGVuZ3RoOjA7aWYoIXIpcmV0dXJuW107dmFyIGk9LTE7Zm9yKGU9cG4oZSxuLDMpOysraTxyJiZlKHRbaV0saSx0KTspO3JldHVybiBqZSh0LGkpfWZ1bmN0aW9uIFduKHQsZSxuKXt2YXIgcj0tMSxpPXQ/dC5sZW5ndGg6MDtmb3IoZT1wbihlLG4sMyk7KytyPGk7KWlmKGUodFtyXSxyLHQpKXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIE5uKHQsZSxuKXt2YXIgcj10P3QubGVuZ3RoOjA7Zm9yKGU9cG4oZSxuLDMpO3ItLTspaWYoZSh0W3JdLHIsdCkpcmV0dXJuIHI7cmV0dXJuLTF9ZnVuY3Rpb24gam4odCl7cmV0dXJuIHQ/dFswXTpDfWZ1bmN0aW9uIEhuKHQsZSxuKXt2YXIgcj10P3QubGVuZ3RoOjA7cmV0dXJuIG4mJnhuKHQsZSxuKSYmKGU9ITEpLHI/U2UodCxlKTpbXX1mdW5jdGlvbiBabih0KXt2YXIgZT10P3QubGVuZ3RoOjA7cmV0dXJuIGU/U2UodCwhMCk6W119ZnVuY3Rpb24gR24odCxlLG4pe3ZhciByPXQ/dC5sZW5ndGg6MDtpZighcilyZXR1cm4tMTtpZigibnVtYmVyIj09dHlwZW9mIG4pbj0wPm4/Z2EocituLDApOm58fDA7ZWxzZSBpZihuKXt2YXIgaT1ZZSh0LGUpLG89dFtpXTtyZXR1cm4oZT09PWU/ZT09PW86byE9PW8pP2k6LTF9cmV0dXJuIGEodCxlLG4pfWZ1bmN0aW9uIHFuKHQpe3JldHVybiBQbih0LDEpfWZ1bmN0aW9uIFluKCl7Zm9yKHZhciB0PVtdLGU9LTEsbj1hcmd1bWVudHMubGVuZ3RoLHI9W10saT1nbigpLG89aT09YTsrK2U8bjspe3ZhciBzPWFyZ3VtZW50c1tlXTsoamEocyl8fGZpKHMpKSYmKHQucHVzaChzKSxyLnB1c2gobyYmcy5sZW5ndGg+PTEyMCYmVGEoZSYmcykpKX1uPXQubGVuZ3RoO3ZhciBoPXRbMF0sdT0tMSxsPWg/aC5sZW5ndGg6MCxjPVtdLGY9clswXTt0OmZvcig7Kyt1PGw7KWlmKHM9aFt1XSwoZj9ZdChmLHMpOmkoYyxzKSk8MCl7Zm9yKGU9bjstLWU7KXt2YXIgZD1yW2VdO2lmKChkP1l0KGQscyk6aSh0W2VdLHMpKTwwKWNvbnRpbnVlIHR9ZiYmZi5wdXNoKHMpLGMucHVzaChzKX1yZXR1cm4gY31mdW5jdGlvbiBLbih0KXt2YXIgZT10P3QubGVuZ3RoOjA7cmV0dXJuIGU/dFtlLTFdOkN9ZnVuY3Rpb24gWG4odCxlLG4pe3ZhciByPXQ/dC5sZW5ndGg6MDtpZighcilyZXR1cm4tMTt2YXIgaT1yO2lmKCJudW1iZXIiPT10eXBlb2YgbilpPSgwPm4/Z2EocituLDApOnZhKG58fDAsci0xKSkrMTtlbHNlIGlmKG4pe2k9WWUodCxlLCEwKS0xO3ZhciBvPXRbaV07cmV0dXJuKGU9PT1lP2U9PT1vOm8hPT1vKT9pOi0xfWlmKGUhPT1lKXJldHVybiBtKHQsaSwhMCk7Zm9yKDtpLS07KWlmKHRbaV09PT1lKXJldHVybiBpO3JldHVybi0xfWZ1bmN0aW9uIFZuKCl7dmFyIHQ9YXJndW1lbnRzWzBdO2lmKCF0fHwhdC5sZW5ndGgpcmV0dXJuIHQ7Zm9yKHZhciBlPTAsbj1nbigpLHI9YXJndW1lbnRzLmxlbmd0aDsrK2U8cjspZm9yKHZhciBpPTAsbz1hcmd1bWVudHNbZV07KGk9bih0LG8saSkpPi0xOylzYS5jYWxsKHQsaSwxKTtyZXR1cm4gdH1mdW5jdGlvbiAkbih0KXtyZXR1cm4gemUodHx8W10sU2UoYXJndW1lbnRzLCExLCExLDEpKX1mdW5jdGlvbiBKbih0LGUsbil7dmFyIHI9LTEsaT10P3QubGVuZ3RoOjAsbz1bXTtmb3IoZT1wbihlLG4sMyk7KytyPGk7KXt2YXIgYT10W3JdO2UoYSxyLHQpJiYoby5wdXNoKGEpLHNhLmNhbGwodCxyLS0sMSksaS0tKX1yZXR1cm4gb31mdW5jdGlvbiBRbih0KXtyZXR1cm4gVW4odCwxKX1mdW5jdGlvbiB0cih0LGUsbil7dmFyIHI9dD90Lmxlbmd0aDowO3JldHVybiByPyhuJiYibnVtYmVyIiE9dHlwZW9mIG4mJnhuKHQsZSxuKSYmKGU9MCxuPXIpLGplKHQsZSxuKSk6W119ZnVuY3Rpb24gZXIodCxlLG4scil7dmFyIGk9cG4obik7cmV0dXJuIGk9PT1wZSYmbnVsbD09bj9ZZSh0LGUpOktlKHQsZSxpKG4sciwxKSl9ZnVuY3Rpb24gbnIodCxlLG4scil7dmFyIGk9cG4obik7cmV0dXJuIGk9PT1wZSYmbnVsbD09bj9ZZSh0LGUsITApOktlKHQsZSxpKG4sciwxKSwhMCl9ZnVuY3Rpb24gcnIodCxlLG4pe3ZhciByPXQ/dC5sZW5ndGg6MDtyZXR1cm4gcj8oKG4/eG4odCxlLG4pOm51bGw9PWUpJiYoZT0xKSxqZSh0LDAsMD5lPzA6ZSkpOltdfWZ1bmN0aW9uIGlyKHQsZSxuKXt2YXIgcj10P3QubGVuZ3RoOjA7cmV0dXJuIHI/KChuP3huKHQsZSxuKTpudWxsPT1lKSYmKGU9MSksZT1yLSgrZXx8MCksamUodCwwPmU/MDplKSk6W119ZnVuY3Rpb24gb3IodCxlLG4pe3ZhciByPXQ/dC5sZW5ndGg6MDtpZighcilyZXR1cm5bXTtmb3IoZT1wbihlLG4sMyk7ci0tJiZlKHRbcl0scix0KTspO3JldHVybiBqZSh0LHIrMSl9ZnVuY3Rpb24gYXIodCxlLG4pe3ZhciByPXQ/dC5sZW5ndGg6MDtpZighcilyZXR1cm5bXTt2YXIgaT0tMTtmb3IoZT1wbihlLG4sMyk7KytpPHImJmUodFtpXSxpLHQpOyk7cmV0dXJuIGplKHQsMCxpKX1mdW5jdGlvbiBzcigpe3JldHVybiBaZShTZShhcmd1bWVudHMsITEsITApKX1mdW5jdGlvbiBocih0LGUsbixyKXt2YXIgaT10P3QubGVuZ3RoOjA7aWYoIWkpcmV0dXJuW107ImJvb2xlYW4iIT10eXBlb2YgZSYmbnVsbCE9ZSYmKHI9bixuPXhuKHQsZSxyKT9udWxsOmUsZT0hMSk7dmFyIG89cG4oKTtyZXR1cm4obyE9PXBlfHxudWxsIT1uKSYmKG49byhuLHIsMykpLGUmJmduKCk9PWE/Yih0LG4pOlplKHQsbil9ZnVuY3Rpb24gdXIodCl7Zm9yKHZhciBlPS0xLG49KHQmJnQubGVuZ3RoJiZyZShuZSh0LEdvKSkpPj4+MCxyPUJvKG4pOysrZTxuOylyW2VdPW5lKHQsRmUoZSkpO3JldHVybiByfWZ1bmN0aW9uIGxyKHQpe3JldHVybiBtZSh0LGplKGFyZ3VtZW50cywxKSl9ZnVuY3Rpb24gY3IoKXtmb3IodmFyIHQ9LTEsZT1hcmd1bWVudHMubGVuZ3RoOysrdDxlOyl7dmFyIG49YXJndW1lbnRzW3RdO2lmKGphKG4pfHxmaShuKSl2YXIgcj1yP21lKHIsbikuY29uY2F0KG1lKG4scikpOm59cmV0dXJuIHI/WmUocik6W119ZnVuY3Rpb24gZnIoKXtmb3IodmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxlPUJvKHQpO3QtLTspZVt0XT1hcmd1bWVudHNbdF07cmV0dXJuIHVyKGUpfWZ1bmN0aW9uIGRyKHQsZSl7dmFyIG49LTEscj10P3QubGVuZ3RoOjAsaT17fTtmb3IoIXJ8fGV8fGphKHRbMF0pfHwoZT1bXSk7KytuPHI7KXt2YXIgbz10W25dO2U/aVtvXT1lW25dOm8mJihpW29bMF1dPW9bMV0pfXJldHVybiBpfWZ1bmN0aW9uIHByKHQpe3ZhciBuPWUodCk7cmV0dXJuIG4uX19jaGFpbl9fPSEwLG59ZnVuY3Rpb24gZ3IodCxlLG4pe3JldHVybiBlLmNhbGwobix0KSx0fWZ1bmN0aW9uIHZyKHQsZSxuKXtyZXR1cm4gZS5jYWxsKG4sdCl9ZnVuY3Rpb24gbXIoKXtyZXR1cm4gcHIodGhpcyl9ZnVuY3Rpb24geXIoKXt2YXIgdD10aGlzLl9fd3JhcHBlZF9fO3JldHVybiB0IGluc3RhbmNlb2Ygcj8odGhpcy5fX2FjdGlvbnNfXy5sZW5ndGgmJih0PW5ldyByKHRoaXMpKSxuZXcgbih0LnJldmVyc2UoKSkpOnRoaXMudGhydShmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXZlcnNlKCl9KX1mdW5jdGlvbiB3cigpe3JldHVybiB0aGlzLnZhbHVlKCkrIiJ9ZnVuY3Rpb24gX3IoKXtyZXR1cm4gcWUodGhpcy5fX3dyYXBwZWRfXyx0aGlzLl9fYWN0aW9uc19fKX1mdW5jdGlvbiBicih0KXt2YXIgZT10P3QubGVuZ3RoOjA7cmV0dXJuIFNuKGUpJiYodD1Cbih0KSksY2UodCxTZShhcmd1bWVudHMsITEsITEsMSkpfWZ1bmN0aW9uIHhyKHQsZSxuKXt2YXIgcj10P3QubGVuZ3RoOjA7cmV0dXJuIFNuKHIpfHwodD1WaSh0KSxyPXQubGVuZ3RoKSxyPyhuPSJudW1iZXIiPT10eXBlb2Ygbj8wPm4/Z2EocituLDApOm58fDA6MCwic3RyaW5nIj09dHlwZW9mIHR8fCFqYSh0KSYmSWkodCk/cj5uJiZ0LmluZGV4T2YoZSxuKT4tMTpnbih0LGUsbik+LTEpOiExfWZ1bmN0aW9uIFNyKHQsZSxuKXt2YXIgcj1qYSh0KT90ZTpfZTtyZXR1cm4oImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbikmJihlPXBuKGUsbiwzKSkscih0LGUpfWZ1bmN0aW9uIGtyKHQsZSxuKXt2YXIgcj1qYSh0KT9lZTpiZTtyZXR1cm4gZT1wbihlLG4sMykscih0LGUpfWZ1bmN0aW9uIEVyKHQsZSxuKXtpZihqYSh0KSl7dmFyIHI9V24odCxlLG4pO3JldHVybiByPi0xP3Rbcl06Q31yZXR1cm4gZT1wbihlLG4sMykseGUodCxlLHllKX1mdW5jdGlvbiBDcih0LGUsbil7cmV0dXJuIGU9cG4oZSxuLDMpLHhlKHQsZSx3ZSl9ZnVuY3Rpb24gSXIodCxlKXtyZXR1cm4gRXIodCxEZShlKSl9ZnVuY3Rpb24gQXIodCxlLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYidW5kZWZpbmVkIj09dHlwZW9mIG4mJmphKHQpPyR0KHQsZSk6eWUodCxYZShlLG4sMykpfWZ1bmN0aW9uIExyKHQsZSxuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmInVuZGVmaW5lZCI9PXR5cGVvZiBuJiZqYSh0KT9RdCh0LGUpOndlKHQsWGUoZSxuLDMpKX1mdW5jdGlvbiBScih0LGUpe3JldHVybiBSZSh0LGUsamUoYXJndW1lbnRzLDIpKX1mdW5jdGlvbiBCcih0LGUsbil7dmFyIHI9amEodCk/bmU6T2U7cmV0dXJuIGU9cG4oZSxuLDMpLHIodCxlKX1mdW5jdGlvbiBUcih0LGUpe3JldHVybiBCcih0LEZlKGUrIiIpKX1mdW5jdGlvbiBNcih0LGUsbixyKXt2YXIgaT1qYSh0KT9vZTpOZTtyZXR1cm4gaSh0LHBuKGUsciw0KSxuLGFyZ3VtZW50cy5sZW5ndGg8Myx5ZSl9ZnVuY3Rpb24gT3IodCxlLG4scil7dmFyIGk9amEodCk/YWU6TmU7cmV0dXJuIGkodCxwbihlLHIsNCksbixhcmd1bWVudHMubGVuZ3RoPDMsd2UpfWZ1bmN0aW9uIERyKHQsZSxuKXt2YXIgcj1qYSh0KT9lZTpiZTtyZXR1cm4gZT1wbihlLG4sMykscih0LGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4hZSh0LG4scil9KX1mdW5jdGlvbiBVcih0LGUsbil7aWYobj94bih0LGUsbik6bnVsbD09ZSl7dD1Cbih0KTt2YXIgcj10Lmxlbmd0aDtyZXR1cm4gcj4wP3RbV2UoMCxyLTEpXTpDfXZhciBpPVByKHQpO3JldHVybiBpLmxlbmd0aD12YSgwPmU/MDorZXx8MCxpLmxlbmd0aCksaX1mdW5jdGlvbiBQcih0KXt0PUJuKHQpO2Zvcih2YXIgZT0tMSxuPXQubGVuZ3RoLHI9Qm8obik7KytlPG47KXt2YXIgaT1XZSgwLGUpO2UhPWkmJihyW2VdPXJbaV0pLHJbaV09dFtlXX1yZXR1cm4gcn1mdW5jdGlvbiBGcih0KXt2YXIgZT10P3QubGVuZ3RoOjA7cmV0dXJuIFNuKGUpP2U6cWEodCkubGVuZ3RofWZ1bmN0aW9uIHpyKHQsZSxuKXt2YXIgcj1qYSh0KT9zZTpIZTtyZXR1cm4oImZ1bmN0aW9uIiE9dHlwZW9mIGV8fCJ1bmRlZmluZWQiIT10eXBlb2YgbikmJihlPXBuKGUsbiwzKSkscih0LGUpfWZ1bmN0aW9uIFdyKHQsZSxuKXt2YXIgcj0tMSxpPXQ/dC5sZW5ndGg6MCxvPVNuKGkpP0JvKGkpOltdO3JldHVybiBuJiZ4bih0LGUsbikmJihlPW51bGwpLGU9cG4oZSxuLDMpLHllKHQsZnVuY3Rpb24odCxuLGkpe29bKytyXT17Y3JpdGVyaWE6ZSh0LG4saSksaW5kZXg6cix2YWx1ZTp0fX0pLHMobyxmKX1mdW5jdGlvbiBOcih0KXt2YXIgZT1hcmd1bWVudHM7ZS5sZW5ndGg+MyYmeG4oZVsxXSxlWzJdLGVbM10pJiYoZT1bdCxlWzFdXSk7dmFyIG49LTEscj10P3QubGVuZ3RoOjAsaT1TZShlLCExLCExLDEpLG89U24ocik/Qm8ocik6W107cmV0dXJuIHllKHQsZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1pLmxlbmd0aCxzPUJvKGEpO2EtLTspc1thXT1udWxsPT10P0M6dFtpW2FdXTtvWysrbl09e2NyaXRlcmlhOnMsaW5kZXg6bix2YWx1ZTp0fX0pLHMobyxkKX1mdW5jdGlvbiBqcih0LGUpe3JldHVybiBrcih0LERlKGUpKX1mdW5jdGlvbiBIcih0LGUpe2lmKCF3aShlKSl7aWYoIXdpKHQpKXRocm93IG5ldyBXbyhaKTt2YXIgbj10O3Q9ZSxlPW59cmV0dXJuIHQ9ZGEodD0rdCk/dDowLGZ1bmN0aW9uKCl7cmV0dXJuLS10PDE/ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX1mdW5jdGlvbiBacih0LGUsbil7cmV0dXJuIG4mJnhuKHQsZSxuKSYmKGU9bnVsbCksZT10JiZudWxsPT1lP3QubGVuZ3RoOmdhKCtlfHwwLDApLHVuKHQsVSxudWxsLG51bGwsbnVsbCxudWxsLGUpfWZ1bmN0aW9uIEdyKHQsZSl7dmFyIG47aWYoIXdpKGUpKXtpZighd2kodCkpdGhyb3cgbmV3IFdvKFopO3ZhciByPXQ7dD1lLGU9cn1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4tLXQ+MD9uPWUuYXBwbHkodGhpcyxhcmd1bWVudHMpOmU9bnVsbCxufX1mdW5jdGlvbiBxcih0LGUpe3ZhciBuPUE7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXt2YXIgcj1qZShhcmd1bWVudHMsMiksaT1fKHIscXIucGxhY2Vob2xkZXIpO258PU19cmV0dXJuIHVuKHQsbixlLHIsaSl9ZnVuY3Rpb24gWXIodCl7cmV0dXJuIGRlKHQsYXJndW1lbnRzLmxlbmd0aD4xP1NlKGFyZ3VtZW50cywhMSwhMSwxKTpXaSh0KSl9ZnVuY3Rpb24gS3IodCxlKXt2YXIgbj1BfEw7aWYoYXJndW1lbnRzLmxlbmd0aD4yKXt2YXIgcj1qZShhcmd1bWVudHMsMiksaT1fKHIsS3IucGxhY2Vob2xkZXIpO258PU19cmV0dXJuIHVuKGUsbix0LHIsaSl9ZnVuY3Rpb24gWHIodCxlLG4pe24mJnhuKHQsZSxuKSYmKGU9bnVsbCk7dmFyIHI9dW4odCxCLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxlKTtyZXR1cm4gci5wbGFjZWhvbGRlcj1Yci5wbGFjZWhvbGRlcixyfWZ1bmN0aW9uIFZyKHQsZSxuKXtuJiZ4bih0LGUsbikmJihlPW51bGwpO3ZhciByPXVuKHQsVCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsZSk7cmV0dXJuIHIucGxhY2Vob2xkZXI9VnIucGxhY2Vob2xkZXIscn1mdW5jdGlvbiAkcih0LGUsbil7ZnVuY3Rpb24gcigpe2YmJnRhKGYpLGgmJnRhKGgpLGg9Zj1kPUN9ZnVuY3Rpb24gaSgpe3ZhciBuPWUtKE5hKCktbCk7aWYoMD49bnx8bj5lKXtoJiZ0YShoKTt2YXIgcj1kO2g9Zj1kPUMsciYmKHA9TmEoKSx1PXQuYXBwbHkoYyxzKSxmfHxofHwocz1jPW51bGwpKX1lbHNlIGY9YWEoaSxuKX1mdW5jdGlvbiBvKCl7ZiYmdGEoZiksaD1mPWQ9Qywodnx8ZyE9PWUpJiYocD1OYSgpLHU9dC5hcHBseShjLHMpLGZ8fGh8fChzPWM9bnVsbCkpfWZ1bmN0aW9uIGEoKXtpZihzPWFyZ3VtZW50cyxsPU5hKCksYz10aGlzLGQ9diYmKGZ8fCFtKSxnPT09ITEpdmFyIG49bSYmIWY7ZWxzZXtofHxtfHwocD1sKTt2YXIgcj1nLShsLXApLGE9MD49cnx8cj5nO2E/KGgmJihoPXRhKGgpKSxwPWwsdT10LmFwcGx5KGMscykpOmh8fChoPWFhKG8scikpfXJldHVybiBhJiZmP2Y9dGEoZik6Znx8ZT09PWd8fChmPWFhKGksZSkpLG4mJihhPSEwLHU9dC5hcHBseShjLHMpKSwhYXx8Znx8aHx8KHM9Yz1udWxsKSx1fXZhciBzLGgsdSxsLGMsZixkLHA9MCxnPSExLHY9ITA7aWYoIXdpKHQpKXRocm93IG5ldyBXbyhaKTtpZihlPTA+ZT8wOmUsbj09PSEwKXt2YXIgbT0hMDt2PSExfWVsc2UgX2kobikmJihtPW4ubGVhZGluZyxnPSJtYXhXYWl0ImluIG4mJmdhKCtuLm1heFdhaXR8fDAsZSksdj0idHJhaWxpbmciaW4gbj9uLnRyYWlsaW5nOnYpO3JldHVybiBhLmNhbmNlbD1yLGF9ZnVuY3Rpb24gSnIodCl7cmV0dXJuIHZlKHQsMSxhcmd1bWVudHMsMSl9ZnVuY3Rpb24gUXIodCxlKXtyZXR1cm4gdmUodCxlLGFyZ3VtZW50cywyKX1mdW5jdGlvbiB0aSgpe3ZhciB0PWFyZ3VtZW50cyxlPXQubGVuZ3RoO2lmKCFlKXJldHVybiBmdW5jdGlvbigpe307aWYoIXRlKHQsd2kpKXRocm93IG5ldyBXbyhaKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49MCxyPXRbbl0uYXBwbHkodGhpcyxhcmd1bWVudHMpOysrbjxlOylyPXRbbl0uY2FsbCh0aGlzLHIpO3JldHVybiByfX1mdW5jdGlvbiBlaSgpe3ZhciB0PWFyZ3VtZW50cyxlPXQubGVuZ3RoLTE7aWYoMD5lKXJldHVybiBmdW5jdGlvbigpe307aWYoIXRlKHQsd2kpKXRocm93IG5ldyBXbyhaKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49ZSxyPXRbbl0uYXBwbHkodGhpcyxhcmd1bWVudHMpO24tLTspcj10W25dLmNhbGwodGhpcyxyKTtyZXR1cm4gcn19ZnVuY3Rpb24gbmkodCxlKXtpZighd2kodCl8fGUmJiF3aShlKSl0aHJvdyBuZXcgV28oWik7dmFyIG49ZnVuY3Rpb24oKXt2YXIgcj1uLmNhY2hlLGk9ZT9lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTphcmd1bWVudHNbMF07aWYoci5oYXMoaSkpcmV0dXJuIHIuZ2V0KGkpO3ZhciBvPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByLnNldChpLG8pLG99O3JldHVybiBuLmNhY2hlPW5ldyBuaS5DYWNoZSxufWZ1bmN0aW9uIHJpKHQpe2lmKCF3aSh0KSl0aHJvdyBuZXcgV28oWik7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBpaSh0KXtyZXR1cm4gR3IodCwyKX1mdW5jdGlvbiBvaSh0KXt2YXIgZT1qZShhcmd1bWVudHMsMSksbj1fKGUsb2kucGxhY2Vob2xkZXIpO3JldHVybiB1bih0LE0sbnVsbCxlLG4pfWZ1bmN0aW9uIGFpKHQpe3ZhciBlPWplKGFyZ3VtZW50cywxKSxuPV8oZSxhaS5wbGFjZWhvbGRlcik7cmV0dXJuIHVuKHQsTyxudWxsLGUsbil9ZnVuY3Rpb24gc2kodCl7dmFyIGU9U2UoYXJndW1lbnRzLCExLCExLDEpO3JldHVybiB1bih0LEQsbnVsbCxudWxsLG51bGwsZSl9ZnVuY3Rpb24gaGkodCxlLG4pe3ZhciByPSEwLGk9ITA7aWYoIXdpKHQpKXRocm93IG5ldyBXbyhaKTtyZXR1cm4gbj09PSExP3I9ITE6X2kobikmJihyPSJsZWFkaW5nImluIG4/ISFuLmxlYWRpbmc6cixpPSJ0cmFpbGluZyJpbiBuPyEhbi50cmFpbGluZzppKSxqdC5sZWFkaW5nPXIsanQubWF4V2FpdD0rZSxqdC50cmFpbGluZz1pLCRyKHQsZSxqdCl9ZnVuY3Rpb24gdWkodCxlKXtyZXR1cm4gZT1udWxsPT1lP2JvOmUsdW4oZSxNLG51bGwsW3RdLFtdKX1mdW5jdGlvbiBsaSh0LGUsbixyKXtyZXR1cm4iYm9vbGVhbiIhPXR5cGVvZiBlJiZudWxsIT1lJiYocj1uLG49eG4odCxlLHIpP251bGw6ZSxlPSExKSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBuJiZYZShuLHIsMSksZ2UodCxlLG4pfWZ1bmN0aW9uIGNpKHQsZSxuKXtyZXR1cm4gZT0iZnVuY3Rpb24iPT10eXBlb2YgZSYmWGUoZSxuLDEpLGdlKHQsITAsZSl9ZnVuY3Rpb24gZmkodCl7dmFyIGU9eSh0KT90Lmxlbmd0aDpDO3JldHVybiBTbihlKSYmS28uY2FsbCh0KT09cXx8ITF9ZnVuY3Rpb24gZGkodCl7cmV0dXJuIHQ9PT0hMHx8dD09PSExfHx5KHQpJiZLby5jYWxsKHQpPT1LfHwhMX1mdW5jdGlvbiBwaSh0KXtyZXR1cm4geSh0KSYmS28uY2FsbCh0KT09WHx8ITF9ZnVuY3Rpb24gZ2kodCl7cmV0dXJuIHQmJjE9PT10Lm5vZGVUeXBlJiZ5KHQpJiZLby5jYWxsKHQpLmluZGV4T2YoIkVsZW1lbnQiKT4tMXx8ITF9ZnVuY3Rpb24gdmkodCl7aWYobnVsbD09dClyZXR1cm4hMDt2YXIgZT10Lmxlbmd0aDtyZXR1cm4gU24oZSkmJihqYSh0KXx8SWkodCl8fGZpKHQpfHx5KHQpJiZ3aSh0LnNwbGljZSkpPyFlOiFxYSh0KS5sZW5ndGh9ZnVuY3Rpb24gbWkodCxlLG4scil7aWYobj0iZnVuY3Rpb24iPT10eXBlb2YgbiYmWGUobixyLDMpLCFuJiZrbih0KSYma24oZSkpcmV0dXJuIHQ9PT1lO3ZhciBpPW4/bih0LGUpOkM7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBpP0JlKHQsZSxuKTohIWl9ZnVuY3Rpb24geWkodCl7cmV0dXJuIHkodCkmJiJzdHJpbmciPT10eXBlb2YgdC5tZXNzYWdlJiZLby5jYWxsKHQpPT1WfHwhMX1mdW5jdGlvbiB3aSh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdHx8ITF9ZnVuY3Rpb24gX2kodCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuImZ1bmN0aW9uIj09ZXx8dCYmIm9iamVjdCI9PWV8fCExfWZ1bmN0aW9uIGJpKHQsZSxuLHIpe3ZhciBpPXFhKGUpLG89aS5sZW5ndGg7aWYobj0iZnVuY3Rpb24iPT10eXBlb2YgbiYmWGUobixyLDMpLCFuJiYxPT1vKXt2YXIgYT1pWzBdLHM9ZVthXTtpZihrbihzKSlyZXR1cm4gbnVsbCE9dCYmcz09PXRbYV0mJnFvLmNhbGwodCxhKX1mb3IodmFyIGg9Qm8obyksdT1CbyhvKTtvLS07KXM9aFtvXT1lW2lbb11dLHVbb109a24ocyk7cmV0dXJuIE1lKHQsaSxoLHUsbil9ZnVuY3Rpb24geGkodCl7cmV0dXJuIEVpKHQpJiZ0IT0rdH1mdW5jdGlvbiBTaSh0KXtyZXR1cm4gbnVsbD09dD8hMTpLby5jYWxsKHQpPT0kP1ZvLnRlc3QoWm8uY2FsbCh0KSk6eSh0KSYmTHQudGVzdCh0KXx8ITF9ZnVuY3Rpb24ga2kodCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIEVpKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8eSh0KSYmS28uY2FsbCh0KT09UXx8ITF9ZnVuY3Rpb24gQ2kodCl7cmV0dXJuIHkodCkmJktvLmNhbGwodCk9PWV0fHwhMX1mdW5jdGlvbiBJaSh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fHkodCkmJktvLmNhbGwodCk9PXJ0fHwhMX1mdW5jdGlvbiBBaSh0KXtyZXR1cm4geSh0KSYmU24odC5sZW5ndGgpJiZXdFtLby5jYWxsKHQpXXx8ITF9ZnVuY3Rpb24gTGkodCl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiB0fWZ1bmN0aW9uIFJpKHQpe3ZhciBlPXQ/dC5sZW5ndGg6MDtyZXR1cm4gU24oZSk/ZT9WdCh0KTpbXTpWaSh0KX1mdW5jdGlvbiBCaSh0KXtyZXR1cm4gZmUodCxIaSh0KSl9ZnVuY3Rpb24gVGkodCxlLG4pe3ZhciByPVJhKHQpO3JldHVybiBuJiZ4bih0LGUsbikmJihlPW51bGwpLGU/ZmUoZSxyLHFhKGUpKTpyfWZ1bmN0aW9uIE1pKHQpe2lmKG51bGw9PXQpcmV0dXJuIHQ7dmFyIGU9VnQoYXJndW1lbnRzKTtyZXR1cm4gZS5wdXNoKGhlKSxHYS5hcHBseShDLGUpfWZ1bmN0aW9uIE9pKHQsZSxuKXtyZXR1cm4gZT1wbihlLG4sMykseGUodCxlLEllLCEwKX1mdW5jdGlvbiBEaSh0LGUsbil7cmV0dXJuIGU9cG4oZSxuLDMpLHhlKHQsZSxBZSwhMCl9ZnVuY3Rpb24gVWkodCxlLG4pe3JldHVybigiZnVuY3Rpb24iIT10eXBlb2YgZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuKSYmKGU9WGUoZSxuLDMpKSxrZSh0LGUsSGkpfWZ1bmN0aW9uIFBpKHQsZSxuKXtyZXR1cm4gZT1YZShlLG4sMyksRWUodCxlLEhpKX1mdW5jdGlvbiBGaSh0LGUsbil7cmV0dXJuKCJmdW5jdGlvbiIhPXR5cGVvZiBlfHwidW5kZWZpbmVkIiE9dHlwZW9mIG4pJiYoZT1YZShlLG4sMykpLEllKHQsZSl9ZnVuY3Rpb24gemkodCxlLG4pe3JldHVybiBlPVhlKGUsbiwzKSxFZSh0LGUscWEpfWZ1bmN0aW9uIFdpKHQpe3JldHVybiBMZSh0LEhpKHQpKX1mdW5jdGlvbiBOaSh0LGUpe3JldHVybiB0P3FvLmNhbGwodCxlKTohMX1mdW5jdGlvbiBqaSh0LGUsbil7biYmeG4odCxlLG4pJiYoZT1udWxsKTtmb3IodmFyIHI9LTEsaT1xYSh0KSxvPWkubGVuZ3RoLGE9e307KytyPG87KXt2YXIgcz1pW3JdLGg9dFtzXTtlP3FvLmNhbGwoYSxoKT9hW2hdLnB1c2gocyk6YVtoXT1bc106YVtoXT1zfXJldHVybiBhfWZ1bmN0aW9uIEhpKHQpe2lmKG51bGw9PXQpcmV0dXJuW107X2kodCl8fCh0PVBvKHQpKTt2YXIgZT10Lmxlbmd0aDtlPWUmJlNuKGUpJiYoamEodCl8fExhLm5vbkVudW1BcmdzJiZmaSh0KSkmJmV8fDA7Zm9yKHZhciBuPXQuY29uc3RydWN0b3Iscj0tMSxpPSJmdW5jdGlvbiI9PXR5cGVvZiBuJiZuLnByb3RvdHlwZT09dCxvPUJvKGUpLGE9ZT4wOysrcjxlOylvW3JdPXIrIiI7Zm9yKHZhciBzIGluIHQpYSYmYm4ocyxlKXx8ImNvbnN0cnVjdG9yIj09cyYmKGl8fCFxby5jYWxsKHQscykpfHxvLnB1c2gocyk7cmV0dXJuIG99ZnVuY3Rpb24gWmkodCxlLG4pe3ZhciByPXt9O3JldHVybiBlPXBuKGUsbiwzKSxJZSh0LGZ1bmN0aW9uKHQsbixpKXtyW25dPWUodCxuLGkpfSkscn1mdW5jdGlvbiBHaSh0LGUsbil7aWYobnVsbD09dClyZXR1cm57fTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl7dmFyIHI9bmUoU2UoYXJndW1lbnRzLCExLCExLDEpLHpvKTtyZXR1cm4gQ24odCxtZShIaSh0KSxyKSl9cmV0dXJuIGU9WGUoZSxuLDMpLEluKHQsZnVuY3Rpb24odCxuLHIpe3JldHVybiFlKHQsbixyKX0pfWZ1bmN0aW9uIHFpKHQpe2Zvcih2YXIgZT0tMSxuPXFhKHQpLHI9bi5sZW5ndGgsaT1CbyhyKTsrK2U8cjspe3ZhciBvPW5bZV07aVtlXT1bbyx0W29dXX1yZXR1cm4gaX1mdW5jdGlvbiBZaSh0LGUsbil7cmV0dXJuIG51bGw9PXQ/e306ImZ1bmN0aW9uIj09dHlwZW9mIGU/SW4odCxYZShlLG4sMykpOkNuKHQsU2UoYXJndW1lbnRzLCExLCExLDEpKX1mdW5jdGlvbiBLaSh0LGUsbil7dmFyIHI9bnVsbD09dD9DOnRbZV07cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiByJiYocj1uKSx3aShyKT9yLmNhbGwodCk6cn1mdW5jdGlvbiBYaSh0LGUsbixyKXt2YXIgaT1qYSh0KXx8QWkodCk7aWYoZT1wbihlLHIsNCksbnVsbD09bilpZihpfHxfaSh0KSl7dmFyIG89dC5jb25zdHJ1Y3RvcjtuPWk/amEodCk/bmV3IG86W106UmEoImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8ucHJvdG90eXBlKX1lbHNlIG49e307cmV0dXJuKGk/JHQ6SWUpKHQsZnVuY3Rpb24odCxyLGkpe3JldHVybiBlKG4sdCxyLGkpfSksbn1mdW5jdGlvbiBWaSh0KXtyZXR1cm4gR2UodCxxYSh0KSl9ZnVuY3Rpb24gJGkodCl7cmV0dXJuIEdlKHQsSGkodCkpfWZ1bmN0aW9uIEppKHQsZSxuKXtuJiZ4bih0LGUsbikmJihlPW49bnVsbCk7dmFyIHI9bnVsbD09dCxpPW51bGw9PWU7aWYobnVsbD09biYmKGkmJiJib29sZWFuIj09dHlwZW9mIHQ/KG49dCx0PTEpOiJib29sZWFuIj09dHlwZW9mIGUmJihuPWUsaT0hMCkpLHImJmkmJihlPTEsaT0hMSksdD0rdHx8MCxpPyhlPXQsdD0wKTplPStlfHwwLG58fHQlMXx8ZSUxKXt2YXIgbz1fYSgpO3JldHVybiB2YSh0K28qKGUtdCtwYXJzZUZsb2F0KCIxZS0iKygobysiIikubGVuZ3RoLTEpKSksZSl9cmV0dXJuIFdlKHQsZSl9ZnVuY3Rpb24gUWkodCl7cmV0dXJuIHQ9aCh0KSx0JiZ0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9ZnVuY3Rpb24gdG8odCl7cmV0dXJuIHQ9aCh0KSx0JiZ0LnJlcGxhY2UoUnQscCl9ZnVuY3Rpb24gZW8odCxlLG4pe3Q9aCh0KSxlKz0iIjt2YXIgcj10Lmxlbmd0aDtyZXR1cm4gbj0oInVuZGVmaW5lZCI9PXR5cGVvZiBuP3I6dmEoMD5uPzA6K258fDAscikpLWUubGVuZ3RoLG4+PTAmJnQuaW5kZXhPZihlLG4pPT1ufWZ1bmN0aW9uIG5vKHQpe3JldHVybiB0PWgodCksdCYmYnQudGVzdCh0KT90LnJlcGxhY2Uod3QsZyk6dH1mdW5jdGlvbiBybyh0KXtyZXR1cm4gdD1oKHQpLHQmJk10LnRlc3QodCk/dC5yZXBsYWNlKFR0LCJcXCQmIik6dH1mdW5jdGlvbiBpbyh0LGUsbil7dD1oKHQpLGU9K2U7dmFyIHI9dC5sZW5ndGg7aWYocj49ZXx8IWRhKGUpKXJldHVybiB0O3ZhciBpPShlLXIpLzIsbz1lYShpKSxhPVFvKGkpO3JldHVybiBuPXNuKCIiLGEsbiksbi5zbGljZSgwLG8pK3Qrbn1mdW5jdGlvbiBvbyh0LGUsbil7cmV0dXJuIHQ9aCh0KSx0JiZzbih0LGUsbikrdH1mdW5jdGlvbiBhbyh0LGUsbil7cmV0dXJuIHQ9aCh0KSx0JiZ0K3NuKHQsZSxuKX1mdW5jdGlvbiBzbyh0LGUsbil7cmV0dXJuIG4mJnhuKHQsZSxuKSYmKGU9MCksd2EodCxlKX1mdW5jdGlvbiBobyh0LGUpe3ZhciBuPSIiO2lmKHQ9aCh0KSxlPStlLDE+ZXx8IXR8fCFkYShlKSlyZXR1cm4gbjtkbyBlJTImJihuKz10KSxlPWVhKGUvMiksdCs9dDt3aGlsZShlKTtyZXR1cm4gbn1mdW5jdGlvbiB1byh0LGUsbil7cmV0dXJuIHQ9aCh0KSxuPW51bGw9PW4/MDp2YSgwPm4/MDorbnx8MCx0Lmxlbmd0aCksdC5sYXN0SW5kZXhPZihlLG4pPT1ufWZ1bmN0aW9uIGxvKHQsbixyKXt2YXIgaT1lLnRlbXBsYXRlU2V0dGluZ3M7ciYmeG4odCxuLHIpJiYobj1yPW51bGwpLHQ9aCh0KSxuPWxlKGxlKHt9LHJ8fG4pLGksdWUpO3ZhciBvLGEscz1sZShsZSh7fSxuLmltcG9ydHMpLGkuaW1wb3J0cyx1ZSksdT1xYShzKSxsPUdlKHMsdSksYz0wLGY9bi5pbnRlcnBvbGF0ZXx8QnQsZD0iX19wICs9ICciLHA9Rm8oKG4uZXNjYXBlfHxCdCkuc291cmNlKyJ8IitmLnNvdXJjZSsifCIrKGY9PT1rdD9FdDpCdCkuc291cmNlKyJ8Iisobi5ldmFsdWF0ZXx8QnQpLnNvdXJjZSsifCQiLCJnIiksZz0iLy8jIHNvdXJjZVVSTD0iKygic291cmNlVVJMImluIG4/bi5zb3VyY2VVUkw6ImxvZGFzaC50ZW1wbGF0ZVNvdXJjZXNbIisgKyt6dCsiXSIpKyJcbiI7dC5yZXBsYWNlKHAsZnVuY3Rpb24oZSxuLHIsaSxzLGgpe3JldHVybiByfHwocj1pKSxkKz10LnNsaWNlKGMsaCkucmVwbGFjZShEdCx2KSxuJiYobz0hMCxkKz0iJyArXG5fX2UoIituKyIpICtcbiciKSxzJiYoYT0hMCxkKz0iJztcbiIrcysiO1xuX19wICs9ICciKSxyJiYoZCs9IicgK1xuKChfX3QgPSAoIityKyIpKSA9PSBudWxsID8gJycgOiBfX3QpICtcbiciKSxjPWgrZS5sZW5ndGgsZX0pLGQrPSInO1xuIjt2YXIgbT1uLnZhcmlhYmxlO218fChkPSJ3aXRoIChvYmopIHtcbiIrZCsiXG59XG4iKSxkPShhP2QucmVwbGFjZShndCwiIik6ZCkucmVwbGFjZSh2dCwiJDEiKS5yZXBsYWNlKG10LCIkMTsiKSxkPSJmdW5jdGlvbigiKyhtfHwib2JqIikrIikge1xuIisobT8iIjoib2JqIHx8IChvYmogPSB7fSk7XG4iKSsidmFyIF9fdCwgX19wID0gJyciKyhvPyIsIF9fZSA9IF8uZXNjYXBlIjoiIikrKGE/IiwgX19qID0gQXJyYXkucHJvdG90eXBlLmpvaW47XG5mdW5jdGlvbiBwcmludCgpIHsgX19wICs9IF9fai5jYWxsKGFyZ3VtZW50cywgJycpIH1cbiI6IjtcbiIpK2QrInJldHVybiBfX3Bcbn0iO3ZhciB5PXlvKGZ1bmN0aW9uKCl7cmV0dXJuIE9vKHUsZysicmV0dXJuICIrZCkuYXBwbHkoQyxsKX0pO2lmKHkuc291cmNlPWQseWkoeSkpdGhyb3cgeTtyZXR1cm4geX1mdW5jdGlvbiBjbyh0LGUsbil7dmFyIHI9dDtyZXR1cm4odD1oKHQpKT8obj94bihyLGUsbik6bnVsbD09ZSk/dC5zbGljZSh4KHQpLFModCkrMSk6KGUrPSIiLHQuc2xpY2UobCh0LGUpLGModCxlKSsxKSk6dH1mdW5jdGlvbiBmbyh0LGUsbil7dmFyIHI9dDtyZXR1cm4gdD1oKHQpLHQ/dC5zbGljZSgobj94bihyLGUsbik6bnVsbD09ZSk/eCh0KTpsKHQsZSsiIikpOnR9ZnVuY3Rpb24gcG8odCxlLG4pe3ZhciByPXQ7cmV0dXJuIHQ9aCh0KSx0PyhuP3huKHIsZSxuKTpudWxsPT1lKT90LnNsaWNlKDAsUyh0KSsxKTp0LnNsaWNlKDAsYyh0LGUrIiIpKzEpOnR9ZnVuY3Rpb24gZ28odCxlLG4pe24mJnhuKHQsZSxuKSYmKGU9bnVsbCk7dmFyIHI9UCxpPUY7aWYobnVsbCE9ZSlpZihfaShlKSl7dmFyIG89InNlcGFyYXRvciJpbiBlP2Uuc2VwYXJhdG9yOm87cj0ibGVuZ3RoImluIGU/K2UubGVuZ3RofHwwOnIsaT0ib21pc3Npb24iaW4gZT9oKGUub21pc3Npb24pOml9ZWxzZSByPStlfHwwO2lmKHQ9aCh0KSxyPj10Lmxlbmd0aClyZXR1cm4gdDt2YXIgYT1yLWkubGVuZ3RoO2lmKDE+YSlyZXR1cm4gaTt2YXIgcz10LnNsaWNlKDAsYSk7aWYobnVsbD09bylyZXR1cm4gcytpO2lmKENpKG8pKXtpZih0LnNsaWNlKGEpLnNlYXJjaChvKSl7dmFyIHUsbCxjPXQuc2xpY2UoMCxhKTtmb3Ioby5nbG9iYWx8fChvPUZvKG8uc291cmNlLChDdC5leGVjKG8pfHwiIikrImciKSksby5sYXN0SW5kZXg9MDt1PW8uZXhlYyhjKTspbD11LmluZGV4O3M9cy5zbGljZSgwLG51bGw9PWw/YTpsKX19ZWxzZSBpZih0LmluZGV4T2YobyxhKSE9YSl7dmFyIGY9cy5sYXN0SW5kZXhPZihvKTtmPi0xJiYocz1zLnNsaWNlKDAsZikpfXJldHVybiBzK2l9ZnVuY3Rpb24gdm8odCl7cmV0dXJuIHQ9aCh0KSx0JiZfdC50ZXN0KHQpP3QucmVwbGFjZSh5dCxrKTp0fWZ1bmN0aW9uIG1vKHQsZSxuKXtyZXR1cm4gbiYmeG4odCxlLG4pJiYoZT1udWxsKSx0PWgodCksdC5tYXRjaChlfHxVdCl8fFtdfWZ1bmN0aW9uIHlvKHQpe3RyeXtyZXR1cm4gdCgpfWNhdGNoKGUpe3JldHVybiB5aShlKT9lOk1vKGUpfX1mdW5jdGlvbiB3byh0LGUsbil7cmV0dXJuIG4mJnhuKHQsZSxuKSYmKGU9bnVsbCkseSh0KT94byh0KTpwZSh0LGUpfWZ1bmN0aW9uIF9vKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBibyh0KXtyZXR1cm4gdH1mdW5jdGlvbiB4byh0KXtyZXR1cm4gRGUoZ2UodCwhMCkpfWZ1bmN0aW9uIFNvKHQsZSxuKXtpZihudWxsPT1uKXt2YXIgcj1faShlKSxpPXImJnFhKGUpLG89aSYmaS5sZW5ndGgmJkxlKGUsaSk7KG8/by5sZW5ndGg6cil8fChvPSExLG49ZSxlPXQsdD10aGlzKX1vfHwobz1MZShlLHFhKGUpKSk7dmFyIGE9ITAscz0tMSxoPXdpKHQpLHU9by5sZW5ndGg7bj09PSExP2E9ITE6X2kobikmJiJjaGFpbiJpbiBuJiYoYT1uLmNoYWluKTtmb3IoOysrczx1Oyl7dmFyIGw9b1tzXSxjPWVbbF07dFtsXT1jLGgmJih0LnByb3RvdHlwZVtsXT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLl9fY2hhaW5fXztpZihhfHxuKXt2YXIgcj10KHRoaXMuX193cmFwcGVkX18pO3JldHVybihyLl9fYWN0aW9uc19fPVZ0KHRoaXMuX19hY3Rpb25zX18pKS5wdXNoKHtmdW5jOmUsYXJnczphcmd1bWVudHMsdGhpc0FyZzp0fSksci5fX2NoYWluX189bixyfXZhciBpPVt0aGlzLnZhbHVlKCldO3JldHVybiByYS5hcHBseShpLGFyZ3VtZW50cyksZS5hcHBseSh0LGkpfX0oYykpfXJldHVybiB0fWZ1bmN0aW9uIGtvKCl7cmV0dXJuIHQuXz1Ybyx0aGlzfWZ1bmN0aW9uIEVvKCl7fWZ1bmN0aW9uIENvKHQpe3JldHVybiBGZSh0KyIiKX1mdW5jdGlvbiBJbyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PXQ/Qzp0W2VdfX1mdW5jdGlvbiBBbyh0LGUsbil7biYmeG4odCxlLG4pJiYoZT1uPW51bGwpLHQ9K3R8fDAsbj1udWxsPT1uPzE6K258fDAsbnVsbD09ZT8oZT10LHQ9MCk6ZT0rZXx8MDtmb3IodmFyIHI9LTEsaT1nYShRbygoZS10KS8obnx8MSkpLDApLG89Qm8oaSk7KytyPGk7KW9bcl09dCx0Kz1uO3JldHVybiBvfWZ1bmN0aW9uIExvKHQsZSxuKXtpZih0PSt0LDE+dHx8IWRhKHQpKXJldHVybltdO3ZhciByPS0xLGk9Qm8odmEodCxTYSkpO2ZvcihlPVhlKGUsbiwxKTsrK3I8dDspU2E+cj9pW3JdPWUocik6ZShyKTtyZXR1cm4gaX1mdW5jdGlvbiBSbyh0KXt2YXIgZT0rK1lvO3JldHVybiBoKHQpK2V9dD10P0p0LmRlZmF1bHRzKEt0Lk9iamVjdCgpLHQsSnQucGljayhLdCxGdCkpOkt0O3ZhciBCbz10LkFycmF5LFRvPXQuRGF0ZSxNbz10LkVycm9yLE9vPXQuRnVuY3Rpb24sRG89dC5NYXRoLFVvPXQuTnVtYmVyLFBvPXQuT2JqZWN0LEZvPXQuUmVnRXhwLHpvPXQuU3RyaW5nLFdvPXQuVHlwZUVycm9yLE5vPUJvLnByb3RvdHlwZSxqbz1Qby5wcm90b3R5cGUsSG89KEhvPXQud2luZG93KSYmSG8uZG9jdW1lbnQsWm89T28ucHJvdG90eXBlLnRvU3RyaW5nLEdvPUZlKCJsZW5ndGgiKSxxbz1qby5oYXNPd25Qcm9wZXJ0eSxZbz0wLEtvPWpvLnRvU3RyaW5nLFhvPXQuXyxWbz1GbygiXiIrcm8oS28pLnJlcGxhY2UoL3RvU3RyaW5nfChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKSwkbz1TaSgkbz10LkFycmF5QnVmZmVyKSYmJG8sSm89U2koSm89JG8mJm5ldyAkbygwKS5zbGljZSkmJkpvLFFvPURvLmNlaWwsdGE9dC5jbGVhclRpbWVvdXQsZWE9RG8uZmxvb3IsbmE9U2kobmE9UG8uZ2V0UHJvdG90eXBlT2YpJiZuYSxyYT1Oby5wdXNoLGlhPWpvLnByb3BlcnR5SXNFbnVtZXJhYmxlLG9hPVNpKG9hPXQuU2V0KSYmb2EsYWE9dC5zZXRUaW1lb3V0LHNhPU5vLnNwbGljZSxoYT1TaShoYT10LlVpbnQ4QXJyYXkpJiZoYSx1YT0oTm8udW5zaGlmdCxTaSh1YT10LldlYWtNYXApJiZ1YSksbGE9ZnVuY3Rpb24oKXt0cnl7dmFyIGU9U2koZT10LkZsb2F0NjRBcnJheSkmJmUsbj1uZXcgZShuZXcgJG8oMTApLDAsMSkmJmV9Y2F0Y2gocil7fXJldHVybiBufSgpLGNhPVNpKGNhPUJvLmlzQXJyYXkpJiZjYSxmYT1TaShmYT1Qby5jcmVhdGUpJiZmYSxkYT10LmlzRmluaXRlLHBhPVNpKHBhPVBvLmtleXMpJiZwYSxnYT1Eby5tYXgsdmE9RG8ubWluLG1hPVNpKG1hPVRvLm5vdykmJm1hLHlhPVNpKHlhPVVvLmlzRmluaXRlKSYmeWEsd2E9dC5wYXJzZUludCxfYT1Eby5yYW5kb20sYmE9VW8uTkVHQVRJVkVfSU5GSU5JVFkseGE9VW8uUE9TSVRJVkVfSU5GSU5JVFksU2E9RG8ucG93KDIsMzIpLTEsa2E9U2EtMSxFYT1TYT4+PjEsQ2E9bGE/bGEuQllURVNfUEVSX0VMRU1FTlQ6MCxJYT1Eby5wb3coMiw1MyktMSxBYT11YSYmbmV3IHVhLExhPWUuc3VwcG9ydD17fTshZnVuY3Rpb24oZSl7TGEuZnVuY0RlY29tcD0hU2kodC5XaW5SVEVycm9yKSYmT3QudGVzdChFKSxMYS5mdW5jTmFtZXM9InN0cmluZyI9PXR5cGVvZiBPby5uYW1lO3RyeXtMYS5kb209MTE9PT1Iby5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkubm9kZVR5cGV9Y2F0Y2gobil7TGEuZG9tPSExfXRyeXtMYS5ub25FbnVtQXJncz0haWEuY2FsbChhcmd1bWVudHMsMSl9Y2F0Y2gobil7TGEubm9uRW51bUFyZ3M9ITB9fSgwLDApLGUudGVtcGxhdGVTZXR0aW5ncz17ZXNjYXBlOnh0LGV2YWx1YXRlOlN0LGludGVycG9sYXRlOmt0LHZhcmlhYmxlOiIiLGltcG9ydHM6e186ZX19O3ZhciBSYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGZ1bmN0aW9uKG4pe2lmKF9pKG4pKXtlLnByb3RvdHlwZT1uO3ZhciByPW5ldyBlO2UucHJvdG90eXBlPW51bGx9cmV0dXJuIHJ8fHQuT2JqZWN0KCl9fSgpLEJhPUFhP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIEFhLnNldCh0LGUpLHR9OmJvO0pvfHwoVmU9JG8mJmhhP2Z1bmN0aW9uKHQpe3ZhciBlPXQuYnl0ZUxlbmd0aCxuPWxhP2VhKGUvQ2EpOjAscj1uKkNhLGk9bmV3ICRvKGUpO2lmKG4pe3ZhciBvPW5ldyBsYShpLDAsbik7by5zZXQobmV3IGxhKHQsMCxuKSl9cmV0dXJuIGUhPXImJihvPW5ldyBoYShpLHIpLG8uc2V0KG5ldyBoYSh0LHIpKSksaX06X28obnVsbCkpO3ZhciBUYT1mYSYmb2E/ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxdCh0KX06X28obnVsbCksTWE9QWE/ZnVuY3Rpb24odCl7cmV0dXJuIEFhLmdldCh0KX06RW8sT2E9ZnVuY3Rpb24oKXt2YXIgdD0wLGU9MDtyZXR1cm4gZnVuY3Rpb24obixyKXt2YXIgaT1OYSgpLG89Vy0oaS1lKTtpZihlPWksbz4wKXtpZigrK3Q+PXopcmV0dXJuIG59ZWxzZSB0PTA7cmV0dXJuIEJhKG4scil9fSgpLERhPVFlKGZ1bmN0aW9uKHQsZSxuKXtxby5jYWxsKHQsbik/Kyt0W25dOnRbbl09MX0pLFVhPVFlKGZ1bmN0aW9uKHQsZSxuKXtxby5jYWxsKHQsbik/dFtuXS5wdXNoKGUpOnRbbl09W2VdfSksUGE9UWUoZnVuY3Rpb24odCxlLG4pe3Rbbl09ZX0pLEZhPW9uKHJlKSx6YT1vbihpZSwhMCksV2E9UWUoZnVuY3Rpb24odCxlLG4pe3Rbbj8wOjFdLnB1c2goZSl9LGZ1bmN0aW9uKCl7cmV0dXJuW1tdLFtdXX0pLE5hPW1hfHxmdW5jdGlvbigpe3JldHVybihuZXcgVG8pLmdldFRpbWUoKX0samE9Y2F8fGZ1bmN0aW9uKHQpe3JldHVybiB5KHQpJiZTbih0Lmxlbmd0aCkmJktvLmNhbGwodCk9PVl8fCExfTtMYS5kb218fChnaT1mdW5jdGlvbih0KXtyZXR1cm4gdCYmMT09PXQubm9kZVR5cGUmJnkodCkmJiFaYSh0KXx8ITF9KTt2YXIgSGE9eWF8fGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmZGEodCl9Oyh3aSgveC8pfHxoYSYmIXdpKGhhKSkmJih3aT1mdW5jdGlvbih0KXtyZXR1cm4gS28uY2FsbCh0KT09JH0pO3ZhciBaYT1uYT9mdW5jdGlvbih0KXtpZighdHx8S28uY2FsbCh0KSE9dHQpcmV0dXJuITE7dmFyIGU9dC52YWx1ZU9mLG49U2koZSkmJihuPW5hKGUpKSYmbmEobik7cmV0dXJuIG4/dD09bnx8bmEodCk9PW46TG4odCl9OkxuLEdhPXRuKGxlKSxxYT1wYT9mdW5jdGlvbih0KXtpZih0KXZhciBlPXQuY29uc3RydWN0b3Isbj10Lmxlbmd0aDtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5wcm90b3R5cGU9PT10fHwiZnVuY3Rpb24iIT10eXBlb2YgdCYmbiYmU24obik/Um4odCk6X2kodCk/cGEodCk6W119OlJuLFlhPXRuKFVlKSxLYT1ubihmdW5jdGlvbih0LGUsbil7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLHQrKG4/ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpOmUpfSksWGE9bm4oZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyItIjoiIikrZS50b0xvd2VyQ2FzZSgpfSk7OCE9d2EoUHQrIjA4IikmJihzbz1mdW5jdGlvbih0LGUsbil7cmV0dXJuKG4/eG4odCxlLG4pOm51bGw9PWUpP2U9MDplJiYoZT0rZSksdD1jbyh0KSx3YSh0LGV8fChBdC50ZXN0KHQpPzE2OjEwKSl9KTt2YXIgVmE9bm4oZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyJfIjoiIikrZS50b0xvd2VyQ2FzZSgpfSksJGE9bm4oZnVuY3Rpb24odCxlLG4pe3JldHVybiB0KyhuPyIgIjoiIikrKGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSl9KTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsbnQucHJvdG90eXBlWyJkZWxldGUiXT1pdCxudC5wcm90b3R5cGUuZ2V0PUh0LG50LnByb3RvdHlwZS5oYXM9WnQsbnQucHJvdG90eXBlLnNldD1HdCxxdC5wcm90b3R5cGUucHVzaD1YdCxuaS5DYWNoZT1udCxlLmFmdGVyPUhyLGUuYXJ5PVpyLGUuYXNzaWduPUdhLGUuYXQ9YnIsZS5iZWZvcmU9R3IsZS5iaW5kPXFyLGUuYmluZEFsbD1ZcixlLmJpbmRLZXk9S3IsZS5jYWxsYmFjaz13byxlLmNoYWluPXByLGUuY2h1bms9TW4sZS5jb21wYWN0PU9uLGUuY29uc3RhbnQ9X28sZS5jb3VudEJ5PURhLGUuY3JlYXRlPVRpLGUuY3Vycnk9WHIsZS5jdXJyeVJpZ2h0PVZyLGUuZGVib3VuY2U9JHIsZS5kZWZhdWx0cz1NaSxlLmRlZmVyPUpyLGUuZGVsYXk9UXIsZS5kaWZmZXJlbmNlPURuLGUuZHJvcD1VbixlLmRyb3BSaWdodD1QbixlLmRyb3BSaWdodFdoaWxlPUZuLGUuZHJvcFdoaWxlPXpuLGUuZmlsdGVyPWtyLGUuZmxhdHRlbj1IbixlLmZsYXR0ZW5EZWVwPVpuLGUuZmxvdz10aSxlLmZsb3dSaWdodD1laSxlLmZvckVhY2g9QXIsZS5mb3JFYWNoUmlnaHQ9THIsZS5mb3JJbj1VaSxlLmZvckluUmlnaHQ9UGksZS5mb3JPd249RmksZS5mb3JPd25SaWdodD16aSxlLmZ1bmN0aW9ucz1XaSxlLmdyb3VwQnk9VWEsZS5pbmRleEJ5PVBhLGUuaW5pdGlhbD1xbixlLmludGVyc2VjdGlvbj1ZbixlLmludmVydD1qaSxlLmludm9rZT1ScixlLmtleXM9cWEsZS5rZXlzSW49SGksZS5tYXA9QnIsZS5tYXBWYWx1ZXM9WmksZS5tYXRjaGVzPXhvLGUubWVtb2l6ZT1uaSxlLm1lcmdlPVlhLGUubWl4aW49U28sZS5uZWdhdGU9cmksZS5vbWl0PUdpLGUub25jZT1paSxlLnBhaXJzPXFpLGUucGFydGlhbD1vaSxlLnBhcnRpYWxSaWdodD1haSxlLnBhcnRpdGlvbj1XYSxlLnBpY2s9WWksCmUucGx1Y2s9VHIsZS5wcm9wZXJ0eT1DbyxlLnByb3BlcnR5T2Y9SW8sZS5wdWxsPVZuLGUucHVsbEF0PSRuLGUucmFuZ2U9QW8sZS5yZWFyZz1zaSxlLnJlamVjdD1EcixlLnJlbW92ZT1KbixlLnJlc3Q9UW4sZS5zaHVmZmxlPVByLGUuc2xpY2U9dHIsZS5zb3J0Qnk9V3IsZS5zb3J0QnlBbGw9TnIsZS50YWtlPXJyLGUudGFrZVJpZ2h0PWlyLGUudGFrZVJpZ2h0V2hpbGU9b3IsZS50YWtlV2hpbGU9YXIsZS50YXA9Z3IsZS50aHJvdHRsZT1oaSxlLnRocnU9dnIsZS50aW1lcz1MbyxlLnRvQXJyYXk9UmksZS50b1BsYWluT2JqZWN0PUJpLGUudHJhbnNmb3JtPVhpLGUudW5pb249c3IsZS51bmlxPWhyLGUudW56aXA9dXIsZS52YWx1ZXM9VmksZS52YWx1ZXNJbj0kaSxlLndoZXJlPWpyLGUud2l0aG91dD1scixlLndyYXA9dWksZS54b3I9Y3IsZS56aXA9ZnIsZS56aXBPYmplY3Q9ZHIsZS5iYWNrZmxvdz1laSxlLmNvbGxlY3Q9QnIsZS5jb21wb3NlPWVpLGUuZWFjaD1BcixlLmVhY2hSaWdodD1McixlLmV4dGVuZD1HYSxlLml0ZXJhdGVlPXdvLGUubWV0aG9kcz1XaSxlLm9iamVjdD1kcixlLnNlbGVjdD1rcixlLnRhaWw9UW4sZS51bmlxdWU9aHIsU28oZSxlKSxlLmF0dGVtcHQ9eW8sZS5jYW1lbENhc2U9S2EsZS5jYXBpdGFsaXplPVFpLGUuY2xvbmU9bGksZS5jbG9uZURlZXA9Y2ksZS5kZWJ1cnI9dG8sZS5lbmRzV2l0aD1lbyxlLmVzY2FwZT1ubyxlLmVzY2FwZVJlZ0V4cD1ybyxlLmV2ZXJ5PVNyLGUuZmluZD1FcixlLmZpbmRJbmRleD1XbixlLmZpbmRLZXk9T2ksZS5maW5kTGFzdD1DcixlLmZpbmRMYXN0SW5kZXg9Tm4sZS5maW5kTGFzdEtleT1EaSxlLmZpbmRXaGVyZT1JcixlLmZpcnN0PWpuLGUuaGFzPU5pLGUuaWRlbnRpdHk9Ym8sZS5pbmNsdWRlcz14cixlLmluZGV4T2Y9R24sZS5pc0FyZ3VtZW50cz1maSxlLmlzQXJyYXk9amEsZS5pc0Jvb2xlYW49ZGksZS5pc0RhdGU9cGksZS5pc0VsZW1lbnQ9Z2ksZS5pc0VtcHR5PXZpLGUuaXNFcXVhbD1taSxlLmlzRXJyb3I9eWksZS5pc0Zpbml0ZT1IYSxlLmlzRnVuY3Rpb249d2ksZS5pc01hdGNoPWJpLGUuaXNOYU49eGksZS5pc05hdGl2ZT1TaSxlLmlzTnVsbD1raSxlLmlzTnVtYmVyPUVpLGUuaXNPYmplY3Q9X2ksZS5pc1BsYWluT2JqZWN0PVphLGUuaXNSZWdFeHA9Q2ksZS5pc1N0cmluZz1JaSxlLmlzVHlwZWRBcnJheT1BaSxlLmlzVW5kZWZpbmVkPUxpLGUua2ViYWJDYXNlPVhhLGUubGFzdD1LbixlLmxhc3RJbmRleE9mPVhuLGUubWF4PUZhLGUubWluPXphLGUubm9Db25mbGljdD1rbyxlLm5vb3A9RW8sZS5ub3c9TmEsZS5wYWQ9aW8sZS5wYWRMZWZ0PW9vLGUucGFkUmlnaHQ9YW8sZS5wYXJzZUludD1zbyxlLnJhbmRvbT1KaSxlLnJlZHVjZT1NcixlLnJlZHVjZVJpZ2h0PU9yLGUucmVwZWF0PWhvLGUucmVzdWx0PUtpLGUucnVuSW5Db250ZXh0PUUsZS5zaXplPUZyLGUuc25ha2VDYXNlPVZhLGUuc29tZT16cixlLnNvcnRlZEluZGV4PWVyLGUuc29ydGVkTGFzdEluZGV4PW5yLGUuc3RhcnRDYXNlPSRhLGUuc3RhcnRzV2l0aD11byxlLnRlbXBsYXRlPWxvLGUudHJpbT1jbyxlLnRyaW1MZWZ0PWZvLGUudHJpbVJpZ2h0PXBvLGUudHJ1bmM9Z28sZS51bmVzY2FwZT12byxlLnVuaXF1ZUlkPVJvLGUud29yZHM9bW8sZS5hbGw9U3IsZS5hbnk9enIsZS5jb250YWlucz14cixlLmRldGVjdD1FcixlLmZvbGRsPU1yLGUuZm9sZHI9T3IsZS5oZWFkPWpuLGUuaW5jbHVkZT14cixlLmluamVjdD1NcixTbyhlLGZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIEllKGUsZnVuY3Rpb24obixyKXtlLnByb3RvdHlwZVtyXXx8KHRbcl09bil9KSx0fSgpLCExKSxlLnNhbXBsZT1VcixlLnByb3RvdHlwZS5zYW1wbGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19jaGFpbl9ffHxudWxsIT10P3RoaXMudGhydShmdW5jdGlvbihlKXtyZXR1cm4gVXIoZSx0KX0pOlVyKHRoaXMudmFsdWUoKSl9LGUuVkVSU0lPTj1JLCR0KFsiYmluZCIsImJpbmRLZXkiLCJjdXJyeSIsImN1cnJ5UmlnaHQiLCJwYXJ0aWFsIiwicGFydGlhbFJpZ2h0Il0sZnVuY3Rpb24odCl7ZVt0XS5wbGFjZWhvbGRlcj1lfSksJHQoWyJmaWx0ZXIiLCJtYXAiLCJ0YWtlV2hpbGUiXSxmdW5jdGlvbih0LGUpe3ZhciBuPWU9PU47ci5wcm90b3R5cGVbdF09ZnVuY3Rpb24odCxyKXt2YXIgaT10aGlzLmNsb25lKCksbz1pLmZpbHRlcmVkLGE9aS5pdGVyYXRlZXN8fChpLml0ZXJhdGVlcz1bXSk7cmV0dXJuIGkuZmlsdGVyZWQ9b3x8bnx8ZT09SCYmaS5kaXI8MCxhLnB1c2goe2l0ZXJhdGVlOnBuKHQsciwzKSx0eXBlOmV9KSxpfX0pLCR0KFsiZHJvcCIsInRha2UiXSxmdW5jdGlvbih0LGUpe3ZhciBuPXQrIkNvdW50IixpPXQrIldoaWxlIjtyLnByb3RvdHlwZVt0XT1mdW5jdGlvbihyKXtyPW51bGw9PXI/MTpnYSgrcnx8MCwwKTt2YXIgaT10aGlzLmNsb25lKCk7aWYoaS5maWx0ZXJlZCl7dmFyIG89aVtuXTtpW25dPWU/dmEobyxyKTpvK3J9ZWxzZXt2YXIgYT1pLnZpZXdzfHwoaS52aWV3cz1bXSk7YS5wdXNoKHtzaXplOnIsdHlwZTp0KyhpLmRpcjwwPyJSaWdodCI6IiIpfSl9cmV0dXJuIGl9LHIucHJvdG90eXBlW3QrIlJpZ2h0Il09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpW3RdKGUpLnJldmVyc2UoKX0sci5wcm90b3R5cGVbdCsiUmlnaHRXaGlsZSJdPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMucmV2ZXJzZSgpW2ldKHQsZSkucmV2ZXJzZSgpfX0pLCR0KFsiZmlyc3QiLCJsYXN0Il0sZnVuY3Rpb24odCxlKXt2YXIgbj0idGFrZSIrKGU/IlJpZ2h0IjoiIik7ci5wcm90b3R5cGVbdF09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tuXSgxKS52YWx1ZSgpWzBdfX0pLCR0KFsiaW5pdGlhbCIsInJlc3QiXSxmdW5jdGlvbih0LGUpe3ZhciBuPSJkcm9wIisoZT8iIjoiUmlnaHQiKTtyLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3JldHVybiB0aGlzW25dKDEpfX0pLCR0KFsicGx1Y2siLCJ3aGVyZSJdLGZ1bmN0aW9uKHQsZSl7dmFyIG49ZT8iZmlsdGVyIjoibWFwIixpPWU/RGU6RmU7ci5wcm90b3R5cGVbdF09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXNbbl0oaShlP3Q6dCsiIikpfX0pLHIucHJvdG90eXBlLmRyb3BXaGlsZT1mdW5jdGlvbih0LGUpe3ZhciBuLHIsaT10aGlzLmRpcjwwO3JldHVybiB0PXBuKHQsZSwzKSx0aGlzLmZpbHRlcihmdW5jdGlvbihlLG8sYSl7cmV0dXJuIG49biYmKGk/cj5vOm8+cikscj1vLG58fChuPSF0KGUsbyxhKSl9KX0sci5wcm90b3R5cGUucmVqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9cG4odCxlLDMpLHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4hdChlLG4scil9KX0sci5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24odCxlKXt0PW51bGw9PXQ/MDordHx8MDt2YXIgbj0wPnQ/dGhpcy50YWtlUmlnaHQoLXQpOnRoaXMuZHJvcCh0KTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGUmJihlPStlfHwwLG49MD5lP24uZHJvcFJpZ2h0KC1lKTpuLnRha2UoZS10KSksbn0sSWUoci5wcm90b3R5cGUsZnVuY3Rpb24odCxpKXt2YXIgbz1lW2ldLGE9L14oPzpmaXJzdHxsYXN0KSQvLnRlc3QoaSk7ZS5wcm90b3R5cGVbaV09ZnVuY3Rpb24oKXt2YXIgaT10aGlzLl9fd3JhcHBlZF9fLHM9YXJndW1lbnRzLGg9dGhpcy5fX2NoYWluX18sdT0hIXRoaXMuX19hY3Rpb25zX18ubGVuZ3RoLGw9aSBpbnN0YW5jZW9mIHIsYz1sJiYhdTtpZihhJiYhaClyZXR1cm4gYz90LmNhbGwoaSk6by5jYWxsKGUsdGhpcy52YWx1ZSgpKTt2YXIgZj1mdW5jdGlvbih0KXt2YXIgbj1bdF07cmV0dXJuIHJhLmFwcGx5KG4scyksby5hcHBseShlLG4pfTtpZihsfHxqYShpKSl7dmFyIGQ9Yz9pOm5ldyByKHRoaXMpLHA9dC5hcHBseShkLHMpO2lmKCFhJiYodXx8cC5hY3Rpb25zKSl7dmFyIGc9cC5hY3Rpb25zfHwocC5hY3Rpb25zPVtdKTtnLnB1c2goe2Z1bmM6dnIsYXJnczpbZl0sdGhpc0FyZzplfSl9cmV0dXJuIG5ldyBuKHAsaCl9cmV0dXJuIHRoaXMudGhydShmKX19KSwkdChbImNvbmNhdCIsImpvaW4iLCJwb3AiLCJwdXNoIiwic2hpZnQiLCJzb3J0Iiwic3BsaWNlIiwidW5zaGlmdCJdLGZ1bmN0aW9uKHQpe3ZhciBuPU5vW3RdLHI9L14oPzpwdXNofHNvcnR8dW5zaGlmdCkkLy50ZXN0KHQpPyJ0YXAiOiJ0aHJ1IixpPS9eKD86am9pbnxwb3B8c2hpZnQpJC8udGVzdCh0KTtlLnByb3RvdHlwZVt0XT1mdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cztyZXR1cm4gaSYmIXRoaXMuX19jaGFpbl9fP24uYXBwbHkodGhpcy52YWx1ZSgpLHQpOnRoaXNbcl0oZnVuY3Rpb24oZSl7cmV0dXJuIG4uYXBwbHkoZSx0KX0pfX0pLHIucHJvdG90eXBlLmNsb25lPWksci5wcm90b3R5cGUucmV2ZXJzZT13LHIucHJvdG90eXBlLnZhbHVlPUosZS5wcm90b3R5cGUuY2hhaW49bXIsZS5wcm90b3R5cGUucmV2ZXJzZT15cixlLnByb3RvdHlwZS50b1N0cmluZz13cixlLnByb3RvdHlwZS50b0pTT049ZS5wcm90b3R5cGUudmFsdWVPZj1lLnByb3RvdHlwZS52YWx1ZT1fcixlLnByb3RvdHlwZS5jb2xsZWN0PWUucHJvdG90eXBlLm1hcCxlLnByb3RvdHlwZS5oZWFkPWUucHJvdG90eXBlLmZpcnN0LGUucHJvdG90eXBlLnNlbGVjdD1lLnByb3RvdHlwZS5maWx0ZXIsZS5wcm90b3R5cGUudGFpbD1lLnByb3RvdHlwZS5yZXN0LGV9dmFyIEMsST0iMy4xLjAiLEE9MSxMPTIsUj00LEI9OCxUPTE2LE09MzIsTz02NCxEPTEyOCxVPTI1NixQPTMwLEY9Ii4uLiIsej0xNTAsVz0xNixOPTAsaj0xLEg9MixaPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIixHPSJfX2xvZGFzaF9wbGFjZWhvbGRlcl9fIixxPSJbb2JqZWN0IEFyZ3VtZW50c10iLFk9IltvYmplY3QgQXJyYXldIixLPSJbb2JqZWN0IEJvb2xlYW5dIixYPSJbb2JqZWN0IERhdGVdIixWPSJbb2JqZWN0IEVycm9yXSIsJD0iW29iamVjdCBGdW5jdGlvbl0iLEo9IltvYmplY3QgTWFwXSIsUT0iW29iamVjdCBOdW1iZXJdIix0dD0iW29iamVjdCBPYmplY3RdIixldD0iW29iamVjdCBSZWdFeHBdIixudD0iW29iamVjdCBTZXRdIixydD0iW29iamVjdCBTdHJpbmddIixpdD0iW29iamVjdCBXZWFrTWFwXSIsb3Q9IltvYmplY3QgQXJyYXlCdWZmZXJdIixhdD0iW29iamVjdCBGbG9hdDMyQXJyYXldIixzdD0iW29iamVjdCBGbG9hdDY0QXJyYXldIixodD0iW29iamVjdCBJbnQ4QXJyYXldIix1dD0iW29iamVjdCBJbnQxNkFycmF5XSIsbHQ9IltvYmplY3QgSW50MzJBcnJheV0iLGN0PSJbb2JqZWN0IFVpbnQ4QXJyYXldIixmdD0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLGR0PSJbb2JqZWN0IFVpbnQxNkFycmF5XSIscHQ9IltvYmplY3QgVWludDMyQXJyYXldIixndD0vXGJfX3AgXCs9ICcnOy9nLHZ0PS9cYihfX3AgXCs9KSAnJyBcKy9nLG10PS8oX19lXCguKj9cKXxcYl9fdFwpKSBcK1xuJyc7L2cseXQ9LyYoPzphbXB8bHR8Z3R8cXVvdHwjMzl8Izk2KTsvZyx3dD0vWyY8PiInYF0vZyxfdD1SZWdFeHAoeXQuc291cmNlKSxidD1SZWdFeHAod3Quc291cmNlKSx4dD0vPCUtKFtcc1xTXSs/KSU+L2csU3Q9LzwlKFtcc1xTXSs/KSU+L2csa3Q9LzwlPShbXHNcU10rPyklPi9nLEV0PS9cJFx7KFteXFx9XSooPzpcXC5bXlxcfV0qKSopXH0vZyxDdD0vXHcqJC8sSXQ9L15ccypmdW5jdGlvblsgXG5cclx0XStcdy8sQXQ9L14wW3hYXS8sTHQ9L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sUnQ9L1tceGMwLVx4ZDZceGQ4LVx4ZGVceGRmLVx4ZjZceGY4LVx4ZmZdL2csQnQ9LygkXikvLFR0PS9bLiorP14ke30oKXxbXF1cL1xcXS9nLE10PVJlZ0V4cChUdC5zb3VyY2UpLE90PS9cYnRoaXNcYi8sRHQ9L1snXG5cclx1MjAyOFx1MjAyOVxcXS9nLFV0PWZ1bmN0aW9uKCl7dmFyIHQ9IltBLVpcXHhjMC1cXHhkNlxceGQ4LVxceGRlXSIsZT0iW2EtelxceGRmLVxceGY2XFx4ZjgtXFx4ZmZdKyI7cmV0dXJuIFJlZ0V4cCh0KyJ7Mix9KD89Iit0K2UrIil8Iit0KyI/IitlKyJ8Iit0KyIrfFswLTldKyIsImciKX0oKSxQdD0iIAkLXGbCoFx1ZmVmZlxuXHJcdTIwMjhcdTIwMjnhmoDhoI7igIDigIHigILigIPigITigIXigIbigIfigIjigInigIrigK/igZ/jgIAiLEZ0PVsiQXJyYXkiLCJBcnJheUJ1ZmZlciIsIkRhdGUiLCJFcnJvciIsIkZsb2F0MzJBcnJheSIsIkZsb2F0NjRBcnJheSIsIkZ1bmN0aW9uIiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJNYXRoIiwiTnVtYmVyIiwiT2JqZWN0IiwiUmVnRXhwIiwiU2V0IiwiU3RyaW5nIiwiXyIsImNsZWFyVGltZW91dCIsImRvY3VtZW50IiwiaXNGaW5pdGUiLCJwYXJzZUludCIsInNldFRpbWVvdXQiLCJUeXBlRXJyb3IiLCJVaW50OEFycmF5IiwiVWludDhDbGFtcGVkQXJyYXkiLCJVaW50MTZBcnJheSIsIlVpbnQzMkFycmF5IiwiV2Vha01hcCIsIndpbmRvdyIsIldpblJURXJyb3IiXSx6dD0tMSxXdD17fTtXdFthdF09V3Rbc3RdPVd0W2h0XT1XdFt1dF09V3RbbHRdPVd0W2N0XT1XdFtmdF09V3RbZHRdPVd0W3B0XT0hMCxXdFtxXT1XdFtZXT1XdFtvdF09V3RbS109V3RbWF09V3RbVl09V3RbJF09V3RbSl09V3RbUV09V3RbdHRdPVd0W2V0XT1XdFtudF09V3RbcnRdPVd0W2l0XT0hMTt2YXIgTnQ9e307TnRbcV09TnRbWV09TnRbb3RdPU50W0tdPU50W1hdPU50W2F0XT1OdFtzdF09TnRbaHRdPU50W3V0XT1OdFtsdF09TnRbUV09TnRbdHRdPU50W2V0XT1OdFtydF09TnRbY3RdPU50W2Z0XT1OdFtkdF09TnRbcHRdPSEwLE50W1ZdPU50WyRdPU50W0pdPU50W250XT1OdFtpdF09ITE7dmFyIGp0PXtsZWFkaW5nOiExLG1heFdhaXQ6MCx0cmFpbGluZzohMX0sSHQ9eyLDgCI6IkEiLCLDgSI6IkEiLCLDgiI6IkEiLCLDgyI6IkEiLCLDhCI6IkEiLCLDhSI6IkEiLCLDoCI6ImEiLCLDoSI6ImEiLCLDoiI6ImEiLCLDoyI6ImEiLCLDpCI6ImEiLCLDpSI6ImEiLCLDhyI6IkMiLCLDpyI6ImMiLCLDkCI6IkQiLCLDsCI6ImQiLCLDiCI6IkUiLCLDiSI6IkUiLCLDiiI6IkUiLCLDiyI6IkUiLCLDqCI6ImUiLCLDqSI6ImUiLCLDqiI6ImUiLCLDqyI6ImUiLCLDjCI6IkkiLCLDjSI6IkkiLCLDjiI6IkkiLCLDjyI6IkkiLCLDrCI6ImkiLCLDrSI6ImkiLCLDriI6ImkiLCLDryI6ImkiLCLDkSI6Ik4iLCLDsSI6Im4iLCLDkiI6Ik8iLCLDkyI6Ik8iLCLDlCI6Ik8iLCLDlSI6Ik8iLCLDliI6Ik8iLCLDmCI6Ik8iLCLDsiI6Im8iLCLDsyI6Im8iLCLDtCI6Im8iLCLDtSI6Im8iLCLDtiI6Im8iLCLDuCI6Im8iLCLDmSI6IlUiLCLDmiI6IlUiLCLDmyI6IlUiLCLDnCI6IlUiLCLDuSI6InUiLCLDuiI6InUiLCLDuyI6InUiLCLDvCI6InUiLCLDnSI6IlkiLCLDvSI6InkiLCLDvyI6InkiLCLDhiI6IkFlIiwiw6YiOiJhZSIsIsOeIjoiVGgiLCLDviI6InRoIiwiw58iOiJzcyJ9LFp0PXsiJiI6IiZhbXA7IiwiPCI6IiZsdDsiLCI+IjoiJmd0OyIsJyInOiImcXVvdDsiLCInIjoiJiMzOTsiLCJgIjoiJiM5NjsifSxHdD17IiZhbXA7IjoiJiIsIiZsdDsiOiI8IiwiJmd0OyI6Ij4iLCImcXVvdDsiOiciJywiJiMzOTsiOiInIiwiJiM5NjsiOiJgIn0scXQ9eyJmdW5jdGlvbiI6ITAsb2JqZWN0OiEwfSxZdD17IlxcIjoiXFwiLCInIjoiJyIsIlxuIjoibiIsIlxyIjoiciIsIlx1MjAyOCI6InUyMDI4IiwiXHUyMDI5IjoidTIwMjkifSxLdD1xdFt0eXBlb2Ygd2luZG93XSYmd2luZG93IT09KHRoaXMmJnRoaXMud2luZG93KT93aW5kb3c6dGhpcyxYdD1xdFt0eXBlb2YgZV0mJmUmJiFlLm5vZGVUeXBlJiZlLFZ0PXF0W3R5cGVvZiB0XSYmdCYmIXQubm9kZVR5cGUmJnQsJHQ9WHQmJlZ0JiYib2JqZWN0Ij09dHlwZW9mIGkmJmk7ISR0fHwkdC5nbG9iYWwhPT0kdCYmJHQud2luZG93IT09JHQmJiR0LnNlbGYhPT0kdHx8KEt0PSR0KTt2YXIgSnQ9KFZ0JiZWdC5leHBvcnRzPT09WHQmJlh0LEUoKSk7S3QuXz1KdCxyPWZ1bmN0aW9uKCl7cmV0dXJuIEp0fS5jYWxsKGUsbixlLHQpLCEociE9PUMmJih0LmV4cG9ydHM9cikpfSkuY2FsbCh0aGlzKX0pLmNhbGwoZSxuKDE1KSh0KSxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXt2YXIgcixpLG8sYT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KGUsYXJndW1lbnRzKX19O289big0NSksaT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlLG4pe3RoaXMuZG9jdW1lbnQ9dCx0aGlzLmlkPWUsdGhpcy5kYXRhPW51bGwhPW4/bjp7fSx0aGlzLmZpbmFsaXplPWEodGhpcy5maW5hbGl6ZSx0aGlzKSx0aGlzLmdlbj0wLHRoaXMuZGVmbGF0ZT1udWxsLHRoaXMuY29tcHJlc3M9dGhpcy5kb2N1bWVudC5jb21wcmVzcyYmIXRoaXMuZGF0YS5GaWx0ZXIsdGhpcy51bmNvbXByZXNzZWRMZW5ndGg9MCx0aGlzLmNodW5rcz1bXX1yZXR1cm4gdC5wcm90b3R5cGUuaW5pdERlZmxhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLkZpbHRlcj0iRmxhdGVEZWNvZGUiLHRoaXMuZGVmbGF0ZT1vLmNyZWF0ZURlZmxhdGUoKSx0aGlzLmRlZmxhdGUub24oImRhdGEiLGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdC5jaHVua3MucHVzaChlKSx0LmRhdGEuTGVuZ3RoKz1lLmxlbmd0aH19KHRoaXMpKSx0aGlzLmRlZmxhdGUub24oImVuZCIsdGhpcy5maW5hbGl6ZSl9LHQucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQpe3ZhciBuO3JldHVybiBlLmlzQnVmZmVyKHQpfHwodD1uZXcgZSh0KyJcbiIsImJpbmFyeSIpKSx0aGlzLnVuY29tcHJlc3NlZExlbmd0aCs9dC5sZW5ndGgsbnVsbD09KG49dGhpcy5kYXRhKS5MZW5ndGgmJihuLkxlbmd0aD0wKSx0aGlzLmNvbXByZXNzPyh0aGlzLmRlZmxhdGV8fHRoaXMuaW5pdERlZmxhdGUoKSx0aGlzLmRlZmxhdGUud3JpdGUodCkpOih0aGlzLmNodW5rcy5wdXNoKHQpLHRoaXMuZGF0YS5MZW5ndGgrPXQubGVuZ3RoKX0sdC5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQpe3JldHVybigic3RyaW5nIj09dHlwZW9mIHR8fGUuaXNCdWZmZXIodCkpJiZ0aGlzLndyaXRlKHQpLHRoaXMuZGVmbGF0ZT90aGlzLmRlZmxhdGUuZW5kKCk6dGhpcy5maW5hbGl6ZSgpfSx0LnByb3RvdHlwZS5maW5hbGl6ZT1mdW5jdGlvbigpe3ZhciB0LGUsbixpO2lmKHRoaXMub2Zmc2V0PXRoaXMuZG9jdW1lbnQuX29mZnNldCx0aGlzLmRvY3VtZW50Ll93cml0ZSgiIit0aGlzLmlkKyIgIit0aGlzLmdlbisiIG9iaiIpLHRoaXMuZG9jdW1lbnQuX3dyaXRlKHIuY29udmVydCh0aGlzLmRhdGEpKSx0aGlzLmNodW5rcy5sZW5ndGgpe2Zvcih0aGlzLmRvY3VtZW50Ll93cml0ZSgic3RyZWFtIiksaT10aGlzLmNodW5rcyxlPTAsbj1pLmxlbmd0aDtuPmU7ZSsrKXQ9aVtlXSx0aGlzLmRvY3VtZW50Ll93cml0ZSh0KTt0aGlzLmNodW5rcy5sZW5ndGg9MCx0aGlzLmRvY3VtZW50Ll93cml0ZSgiXG5lbmRzdHJlYW0iKX1yZXR1cm4gdGhpcy5kb2N1bWVudC5fd3JpdGUoImVuZG9iaiIpLHRoaXMuZG9jdW1lbnQuX3JlZkVuZCh0aGlzKX0sdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLmlkKyIgIit0aGlzLmdlbisiIFIifSx0fSgpLHQuZXhwb3J0cz1pLHI9bigzMil9KS5jYWxsKHRoaXMpfSkuY2FsbChlLG4oNCkuQnVmZmVyKX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiZGVmaW5lIGNhbm5vdCBiZSB1c2VkIGluZGlyZWN0Iil9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe3QuZXhwb3J0cz1lfSkuY2FsbChlLHt9KX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC53ZWJwYWNrUG9seWZpbGx8fCh0LmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sdC5wYXRocz1bXSx0LmNoaWxkcmVuPVtdLHQud2VicGFja1BvbHlmaWxsPTEpLHR9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlLG4pe3RoaXMuTUFYX0NIQVJfVFlQRVM9OTIsdGhpcy5wZGZraXREb2M9dCx0aGlzLnBhdGg9ZSx0aGlzLnBkZkZvbnRzPVtdLHRoaXMuY2hhckNhdGFsb2d1ZT1bXSx0aGlzLm5hbWU9bix0aGlzLl9fZGVmaW5lR2V0dGVyX18oImFzY2VuZGVyIixmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0Rm9udCgwKTtyZXR1cm4gdC5hc2NlbmRlcn0pLHRoaXMuX19kZWZpbmVHZXR0ZXJfXygiZGVjZW5kZXIiLGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRGb250KDApO3JldHVybiB0LmRlY2VuZGVyfSl9dmFyIGk9bigxMSk7ci5wcm90b3R5cGUuZ2V0Rm9udD1mdW5jdGlvbih0KXtpZighdGhpcy5wZGZGb250c1t0XSl7dmFyIGU9dGhpcy5uYW1lK3Q7dGhpcy5wb3N0c2NyaXB0TmFtZSYmZGVsZXRlIHRoaXMucGRma2l0RG9jLl9mb250RmFtaWxpZXNbdGhpcy5wb3N0c2NyaXB0TmFtZV0sdGhpcy5wZGZGb250c1t0XT10aGlzLnBkZmtpdERvYy5mb250KHRoaXMucGF0aCxlKS5fZm9udCx0aGlzLnBvc3RzY3JpcHROYW1lfHwodGhpcy5wb3N0c2NyaXB0TmFtZT10aGlzLnBkZkZvbnRzW3RdLm5hbWUpfXJldHVybiB0aGlzLnBkZkZvbnRzW3RdfSxyLnByb3RvdHlwZS53aWR0aE9mU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRGb250KDApO3JldHVybiB0LndpZHRoT2ZTdHJpbmcuYXBwbHkodCxhcmd1bWVudHMpfSxyLnByb3RvdHlwZS5saW5lSGVpZ2h0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nZXRGb250KDApO3JldHVybiB0LmxpbmVIZWlnaHQuYXBwbHkodCxhcmd1bWVudHMpfSxyLnByb3RvdHlwZS5yZWY9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdldEZvbnQoMCk7cmV0dXJuIHQucmVmLmFwcGx5KHQsYXJndW1lbnRzKX07dmFyIG89ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2hhckNvZGVBdCgwKX07ci5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj1pLmNoYWluKHQuc3BsaXQoIiIpKS5tYXAobykudW5pcSgpLnZhbHVlKCk7aWYobi5sZW5ndGg+ZS5NQVhfQ0hBUl9UWVBFUyl0aHJvdyBuZXcgRXJyb3IoIklubGluZSBoYXMgbW9yZSB0aGFuICIrZS5NQVhfQ0hBUl9UWVBFUysiOiAiK3QrIiBkaWZmZXJlbnQgY2hhcmFjdGVyIHR5cGVzIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIHByb3Blcmx5IGVtYmVkZGVkIGludG8gcGRmLiIpO3ZhciByPWZ1bmN0aW9uKHQpe3JldHVybiBpLnVuaXEodC5jb25jYXQobikpLmxlbmd0aDw9ZS5NQVhfQ0hBUl9UWVBFU30sYT1pLmZpbmRJbmRleChlLmNoYXJDYXRhbG9ndWUscik7MD5hJiYoYT1lLmNoYXJDYXRhbG9ndWUubGVuZ3RoLGUuY2hhckNhdGFsb2d1ZVthXT1bXSk7dmFyIHM9dGhpcy5nZXRGb250KGEpO3MudXNlKHQpLGkuZWFjaChuLGZ1bmN0aW9uKHQpe2kuaW5jbHVkZXMoZS5jaGFyQ2F0YWxvZ3VlW2FdLHQpfHxlLmNoYXJDYXRhbG9ndWVbYV0ucHVzaCh0KX0pO3ZhciBoPWkubWFwKHMuZW5jb2RlKHQpLGZ1bmN0aW9uKHQpe3JldHVybiB0LmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpfSkuam9pbigiIik7cmV0dXJue2VuY29kZWRUZXh0OmgsZm9udElkOnMuaWR9fSx0LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXt2YXIgcixpLG8sYSxzO3M9bigxMCkscj1uKDM0KSxpPW4oMzUpLGE9bigzNiksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIHQub3Blbj1mdW5jdGlvbih0LG4pe3ZhciByLG87aWYoZS5pc0J1ZmZlcih0KSlyPXQ7ZWxzZSBpZihvPS9eZGF0YTouKztiYXNlNjQsKC4qKSQvLmV4ZWModCkpcj1uZXcgZShvWzFdLCJiYXNlNjQiKTtlbHNlIGlmKHI9cy5yZWFkRmlsZVN5bmModCksIXIpcmV0dXJuO2lmKDI1NT09PXJbMF0mJjIxNj09PXJbMV0pcmV0dXJuIG5ldyBpKHIsbik7aWYoMTM3PT09clswXSYmIlBORyI9PT1yLnRvU3RyaW5nKCJhc2NpaSIsMSw0KSlyZXR1cm4gbmV3IGEocixuKTt0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gaW1hZ2UgZm9ybWF0LiIpfSx0fSgpLHQuZXhwb3J0cz1vfSkuY2FsbCh0aGlzKX0pLmNhbGwoZSxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe3RoaXMuZXZlbnRzPXt9fXIucHJvdG90eXBlLnN0YXJ0VHJhY2tpbmc9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmV2ZW50c1t0XXx8KHRoaXMuZXZlbnRzW3RdPVtdKTtuLmluZGV4T2YoZSk8MCYmbi5wdXNoKGUpfSxyLnByb3RvdHlwZS5zdG9wVHJhY2tpbmc9ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmV2ZW50c1t0XTtpZihuKXt2YXIgcj1uLmluZGV4T2YoZSk7cj49MCYmbi5zcGxpY2UociwxKX19LHIucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24odCl7dmFyIGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLG49dGhpcy5ldmVudHNbdF07biYmbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuYXBwbHkodGhpcyxlKX0pfSxyLnByb3RvdHlwZS5hdXRvPWZ1bmN0aW9uKHQsZSxuKXt0aGlzLnN0YXJ0VHJhY2tpbmcodCxlKSxuKCksdGhpcy5zdG9wVHJhY2tpbmcodCxlKX0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUsbixyLGEscyl7dGhpcy50ZXh0VG9vbHM9bmV3IGkodCksdGhpcy5zdHlsZVN0YWNrPW5ldyBvKGUsbiksdGhpcy5pbWFnZU1lYXN1cmU9cix0aGlzLnRhYmxlTGF5b3V0cz1hLHRoaXMuaW1hZ2VzPXMsdGhpcy5hdXRvSW1hZ2VJbmRleD0xfXZhciBpPW4oMjYpLG89bigyNyksYT1uKDIyKSxzPW4oMjUpLmZvbnRTdHJpbmdpZnksaD1uKDI1KS5wYWNrLHU9bigzMyk7ci5wcm90b3R5cGUubWVhc3VyZURvY3VtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1lYXN1cmVOb2RlKHQpfSxyLnByb3RvdHlwZS5tZWFzdXJlTm9kZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBlPXQuX21hcmdpbjtyZXR1cm4gZSYmKHQuX21pbldpZHRoKz1lWzBdK2VbMl0sdC5fbWF4V2lkdGgrPWVbMF0rZVsyXSksdH1mdW5jdGlvbiBuKCl7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0Lm1hcmdpbkxlZnR8fHQubWFyZ2luVG9wfHx0Lm1hcmdpblJpZ2h0fHx0Lm1hcmdpbkJvdHRvbT9bdC5tYXJnaW5MZWZ0fHxlWzBdfHwwLHQubWFyZ2luVG9wfHxlWzFdfHwwLHQubWFyZ2luUmlnaHR8fGVbMl18fDAsdC5tYXJnaW5Cb3R0b218fGVbM118fDBdOmV9ZnVuY3Rpb24gbih0KXtmb3IodmFyIGU9e30sbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dLG89ci5zdHlsZVN0YWNrLnN0eWxlRGljdGlvbmFyeVtpXTtmb3IodmFyIGEgaW4gbylvLmhhc093blByb3BlcnR5KGEpJiYoZVthXT1vW2FdKX1yZXR1cm4gZX1mdW5jdGlvbiBpKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIE51bWJlcj90PVt0LHQsdCx0XTp0IGluc3RhbmNlb2YgQXJyYXkmJjI9PT10Lmxlbmd0aCYmKHQ9W3RbMF0sdFsxXSx0WzBdLHRbMV1dKSx0fXZhciBvPVt2b2lkIDAsdm9pZCAwLHZvaWQgMCx2b2lkIDBdO2lmKHQuc3R5bGUpe3ZhciBhPXQuc3R5bGUgaW5zdGFuY2VvZiBBcnJheT90LnN0eWxlOlt0LnN0eWxlXSxzPW4oYSk7cyYmKG89ZShzLG8pKSxzLm1hcmdpbiYmKG89aShzLm1hcmdpbikpfXJldHVybiBvPWUodCxvKSx0Lm1hcmdpbiYmKG89aSh0Lm1hcmdpbikpLHZvaWQgMD09PW9bMF0mJnZvaWQgMD09PW9bMV0mJnZvaWQgMD09PW9bMl0mJnZvaWQgMD09PW9bM10/bnVsbDpvfXQgaW5zdGFuY2VvZiBBcnJheT90PXtzdGFjazp0fTooInN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nKSYmKHQ9e3RleHQ6dH0pO3ZhciByPXRoaXM7cmV0dXJuIHRoaXMuc3R5bGVTdGFjay5hdXRvKHQsZnVuY3Rpb24oKXtpZih0Ll9tYXJnaW49bih0KSx0LmNvbHVtbnMpcmV0dXJuIGUoci5tZWFzdXJlQ29sdW1ucyh0KSk7aWYodC5zdGFjaylyZXR1cm4gZShyLm1lYXN1cmVWZXJ0aWNhbENvbnRhaW5lcih0KSk7aWYodC51bClyZXR1cm4gZShyLm1lYXN1cmVMaXN0KCExLHQpKTtpZih0Lm9sKXJldHVybiBlKHIubWVhc3VyZUxpc3QoITAsdCkpO2lmKHQudGFibGUpcmV0dXJuIGUoci5tZWFzdXJlVGFibGUodCkpO2lmKHZvaWQgMCE9PXQudGV4dClyZXR1cm4gZShyLm1lYXN1cmVMZWFmKHQpKTtpZih0LmltYWdlKXJldHVybiBlKHIubWVhc3VyZUltYWdlKHQpKTtpZih0LmNhbnZhcylyZXR1cm4gZShyLm1lYXN1cmVDYW52YXModCkpO2lmKHQucXIpcmV0dXJuIGUoci5tZWFzdXJlUXIodCkpO3Rocm93IlVucmVjb2duaXplZCBkb2N1bWVudCBzdHJ1Y3R1cmU6ICIrSlNPTi5zdHJpbmdpZnkodCxzKX0pfSxyLnByb3RvdHlwZS5jb252ZXJ0SWZCYXNlNjRJbWFnZT1mdW5jdGlvbih0KXtpZigvXmRhdGE6aW1hZ2VcLyhqcGVnfGpwZ3xwbmcpO2Jhc2U2NCwvLnRlc3QodC5pbWFnZSkpe3ZhciBlPSIkJHBkZm1ha2UkJCIrdGhpcy5hdXRvSW1hZ2VJbmRleCsrO3RoaXMuaW1hZ2VzW2VdPXQuaW1hZ2UsdC5pbWFnZT1lfX0sci5wcm90b3R5cGUubWVhc3VyZUltYWdlPWZ1bmN0aW9uKHQpe3RoaXMuaW1hZ2VzJiZ0aGlzLmNvbnZlcnRJZkJhc2U2NEltYWdlKHQpO3ZhciBlPXRoaXMuaW1hZ2VNZWFzdXJlLm1lYXN1cmVJbWFnZSh0LmltYWdlKTtpZih0LmZpdCl7dmFyIG49ZS53aWR0aC9lLmhlaWdodD50LmZpdFswXS90LmZpdFsxXT90LmZpdFswXS9lLndpZHRoOnQuZml0WzFdL2UuaGVpZ2h0O3QuX3dpZHRoPXQuX21pbldpZHRoPXQuX21heFdpZHRoPWUud2lkdGgqbix0Ll9oZWlnaHQ9ZS5oZWlnaHQqbn1lbHNlIHQuX3dpZHRoPXQuX21pbldpZHRoPXQuX21heFdpZHRoPXQud2lkdGh8fGUud2lkdGgsdC5faGVpZ2h0PXQuaGVpZ2h0fHxlLmhlaWdodCp0Ll93aWR0aC9lLndpZHRoO3JldHVybiB0Ll9hbGlnbm1lbnQ9dGhpcy5zdHlsZVN0YWNrLmdldFByb3BlcnR5KCJhbGlnbm1lbnQiKSx0fSxyLnByb3RvdHlwZS5tZWFzdXJlTGVhZj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnRleHRUb29scy5idWlsZElubGluZXModC50ZXh0LHRoaXMuc3R5bGVTdGFjayk7cmV0dXJuIHQuX2lubGluZXM9ZS5pdGVtcyx0Ll9taW5XaWR0aD1lLm1pbldpZHRoLHQuX21heFdpZHRoPWUubWF4V2lkdGgsdH0sci5wcm90b3R5cGUubWVhc3VyZVZlcnRpY2FsQ29udGFpbmVyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhY2s7dC5fbWluV2lkdGg9MCx0Ll9tYXhXaWR0aD0wO2Zvcih2YXIgbj0wLHI9ZS5sZW5ndGg7cj5uO24rKyllW25dPXRoaXMubWVhc3VyZU5vZGUoZVtuXSksdC5fbWluV2lkdGg9TWF0aC5tYXgodC5fbWluV2lkdGgsZVtuXS5fbWluV2lkdGgpLHQuX21heFdpZHRoPU1hdGgubWF4KHQuX21heFdpZHRoLGVbbl0uX21heFdpZHRoKTtyZXR1cm4gdH0sci5wcm90b3R5cGUuZ2FwU2l6ZUZvckxpc3Q9ZnVuY3Rpb24odCxlKXtpZih0KXt2YXIgbj1lLmxlbmd0aC50b1N0cmluZygpLnJlcGxhY2UoLy4vZywiOSIpO3JldHVybiB0aGlzLnRleHRUb29scy5zaXplT2ZTdHJpbmcobisiLiAiLHRoaXMuc3R5bGVTdGFjayl9cmV0dXJuIHRoaXMudGV4dFRvb2xzLnNpemVPZlN0cmluZygiOS4gIix0aGlzLnN0eWxlU3RhY2spfSxyLnByb3RvdHlwZS5idWlsZE1hcmtlcj1mdW5jdGlvbih0LGUsbixyKXt2YXIgaTtpZih0KWk9e19pbmxpbmVzOnRoaXMudGV4dFRvb2xzLmJ1aWxkSW5saW5lcyhlLG4pLml0ZW1zfTtlbHNle3ZhciBvPXIuZm9udFNpemUvNjtpPXtjYW52YXM6W3t4Om8seTpyLmhlaWdodC9yLmxpbmVIZWlnaHQrci5kZWNlbmRlci1yLmZvbnRTaXplLzMscjE6byxyMjpvLHR5cGU6ImVsbGlwc2UiLGNvbG9yOiJibGFjayJ9XX19cmV0dXJuIGkuX21pbldpZHRoPWkuX21heFdpZHRoPXIud2lkdGgsaS5fbWluSGVpZ2h0PWkuX21heEhlaWdodD1yLmhlaWdodCxpfSxyLnByb3RvdHlwZS5tZWFzdXJlTGlzdD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuc3R5bGVTdGFjay5jbG9uZSgpLHI9dD9lLm9sOmUudWw7ZS5fZ2FwU2l6ZT10aGlzLmdhcFNpemVGb3JMaXN0KHQsciksZS5fbWluV2lkdGg9MCxlLl9tYXhXaWR0aD0wO2Zvcih2YXIgaT0xLG89MCxhPXIubGVuZ3RoO2E+bztvKyspe3ZhciBzPXJbb109dGhpcy5tZWFzdXJlTm9kZShyW29dKSxoPWkrKyArIi4gIjtzLm9sfHxzLnVsfHwocy5saXN0TWFya2VyPXRoaXMuYnVpbGRNYXJrZXIodCxzLmNvdW50ZXJ8fGgsbixlLl9nYXBTaXplKSksZS5fbWluV2lkdGg9TWF0aC5tYXgoZS5fbWluV2lkdGgscltvXS5fbWluV2lkdGgrZS5fZ2FwU2l6ZS53aWR0aCksZS5fbWF4V2lkdGg9TWF0aC5tYXgoZS5fbWF4V2lkdGgscltvXS5fbWF4V2lkdGgrZS5fZ2FwU2l6ZS53aWR0aCl9cmV0dXJuIGV9LHIucHJvdG90eXBlLm1lYXN1cmVDb2x1bW5zPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sdW1uczt0Ll9nYXA9dGhpcy5zdHlsZVN0YWNrLmdldFByb3BlcnR5KCJjb2x1bW5HYXAiKXx8MDtmb3IodmFyIG49MCxyPWUubGVuZ3RoO3I+bjtuKyspZVtuXT10aGlzLm1lYXN1cmVOb2RlKGVbbl0pO3ZhciBpPWEubWVhc3VyZU1pbk1heChlKTtyZXR1cm4gdC5fbWluV2lkdGg9aS5taW4rdC5fZ2FwKihlLmxlbmd0aC0xKSx0Ll9tYXhXaWR0aD1pLm1heCt0Ll9nYXAqKGUubGVuZ3RoLTEpLHR9LHIucHJvdG90eXBlLm1lYXN1cmVUYWJsZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJihlLmZpbGxDb2xvcj10LnN0eWxlU3RhY2suZ2V0UHJvcGVydHkoImZpbGxDb2xvciIpKSx0Lm1lYXN1cmVOb2RlKGUpfX1mdW5jdGlvbiBuKGUpe3ZhciBuPXQubGF5b3V0Oygic3RyaW5nIj09dHlwZW9mIHQubGF5b3V0fHx0IGluc3RhbmNlb2YgU3RyaW5nKSYmKG49ZVtuXSk7dmFyIHI9e2hMaW5lV2lkdGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gMX0sdkxpbmVXaWR0aDpmdW5jdGlvbih0LGUpe3JldHVybiAxfSxoTGluZUNvbG9yOmZ1bmN0aW9uKHQsZSl7cmV0dXJuImJsYWNrIn0sdkxpbmVDb2xvcjpmdW5jdGlvbih0LGUpe3JldHVybiJibGFjayJ9LHBhZGRpbmdMZWZ0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDR9LHBhZGRpbmdSaWdodDpmdW5jdGlvbih0LGUpe3JldHVybiA0fSxwYWRkaW5nVG9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDJ9LHBhZGRpbmdCb3R0b206ZnVuY3Rpb24odCxlKXtyZXR1cm4gMn19O3JldHVybiBoKHIsbil9ZnVuY3Rpb24gcihlKXtmb3IodmFyIG49W10scj0wLGk9MCxvPTAsYT10LnRhYmxlLndpZHRocy5sZW5ndGg7YT5vO28rKyl7dmFyIHM9aStlLnZMaW5lV2lkdGgobyx0KStlLnBhZGRpbmdMZWZ0KG8sdCk7bi5wdXNoKHMpLHIrPXMsaT1lLnBhZGRpbmdSaWdodChvLHQpfXJldHVybiByKz1pK2UudkxpbmVXaWR0aCh0LnRhYmxlLndpZHRocy5sZW5ndGgsdCkse3RvdGFsOnIsb2Zmc2V0czpufX1mdW5jdGlvbiBpKCl7Zm9yKHZhciBlLG4scj0wLGk9Zy5sZW5ndGg7aT5yO3IrKyl7dmFyIGE9Z1tyXSxzPW8oYS5jb2wsYS5zcGFuLHQuX29mZnNldHMpLGg9YS5taW5XaWR0aC1zLm1pbldpZHRoLHU9YS5tYXhXaWR0aC1zLm1heFdpZHRoO2lmKGg+MClmb3IoZT1oL2Euc3BhbixuPTA7bjxhLnNwYW47bisrKXQudGFibGUud2lkdGhzW2EuY29sK25dLl9taW5XaWR0aCs9ZTtpZih1PjApZm9yKGU9dS9hLnNwYW4sbj0wO248YS5zcGFuO24rKyl0LnRhYmxlLndpZHRoc1thLmNvbCtuXS5fbWF4V2lkdGgrPWV9fWZ1bmN0aW9uIG8oZSxuLHIpe2Zvcih2YXIgaT17bWluV2lkdGg6MCxtYXhXaWR0aDowfSxvPTA7bj5vO28rKylpLm1pbldpZHRoKz10LnRhYmxlLndpZHRoc1tlK29dLl9taW5XaWR0aCsobz9yLm9mZnNldHNbZStvXTowKSxpLm1heFdpZHRoKz10LnRhYmxlLndpZHRoc1tlK29dLl9tYXhXaWR0aCsobz9yLm9mZnNldHNbZStvXTowKTtyZXR1cm4gaX1mdW5jdGlvbiBzKHQsZSxuKXtmb3IodmFyIHI9MTtuPnI7cisrKXRbZStyXT17X3NwYW46ITAsX21pbldpZHRoOjAsX21heFdpZHRoOjAscm93U3Bhbjp0W2VdLnJvd1NwYW59fWZ1bmN0aW9uIHUodCxlLG4scil7Zm9yKHZhciBpPTE7cj5pO2krKyl0LmJvZHlbZStpXVtuXT17X3NwYW46ITAsX21pbldpZHRoOjAsX21heFdpZHRoOjAsZmlsbENvbG9yOnQuYm9keVtlXVtuXS5maWxsQ29sb3J9fWZ1bmN0aW9uIGwodCl7aWYodC50YWJsZS53aWR0aHN8fCh0LnRhYmxlLndpZHRocz0iYXV0byIpLCJzdHJpbmciPT10eXBlb2YgdC50YWJsZS53aWR0aHN8fHQudGFibGUud2lkdGhzIGluc3RhbmNlb2YgU3RyaW5nKWZvcih0LnRhYmxlLndpZHRocz1bdC50YWJsZS53aWR0aHNdO3QudGFibGUud2lkdGhzLmxlbmd0aDx0LnRhYmxlLmJvZHlbMF0ubGVuZ3RoOyl0LnRhYmxlLndpZHRocy5wdXNoKHQudGFibGUud2lkdGhzW3QudGFibGUud2lkdGhzLmxlbmd0aC0xXSk7Zm9yKHZhciBlPTAsbj10LnRhYmxlLndpZHRocy5sZW5ndGg7bj5lO2UrKyl7dmFyIHI9dC50YWJsZS53aWR0aHNbZV07KCJudW1iZXIiPT10eXBlb2Ygcnx8ciBpbnN0YW5jZW9mIE51bWJlcnx8InN0cmluZyI9PXR5cGVvZiByfHxyIGluc3RhbmNlb2YgU3RyaW5nKSYmKHQudGFibGUud2lkdGhzW2VdPXt3aWR0aDpyfSl9fWwodCksdC5fbGF5b3V0PW4odGhpcy50YWJsZUxheW91dHMpLHQuX29mZnNldHM9cih0Ll9sYXlvdXQpO3ZhciBjLGYsZCxwLGc9W107Zm9yKGM9MCxkPXQudGFibGUuYm9keVswXS5sZW5ndGg7ZD5jO2MrKyl7dmFyIHY9dC50YWJsZS53aWR0aHNbY107Zm9yKHYuX21pbldpZHRoPTAsdi5fbWF4V2lkdGg9MCxmPTAscD10LnRhYmxlLmJvZHkubGVuZ3RoO3A+ZjtmKyspe3ZhciBtPXQudGFibGUuYm9keVtmXSx5PW1bY107aWYoIXkuX3NwYW4pe3k9bVtjXT10aGlzLnN0eWxlU3RhY2suYXV0byh5LGUodGhpcyx5KSkseS5jb2xTcGFuJiZ5LmNvbFNwYW4+MT8ocyhtLGMseS5jb2xTcGFuKSxnLnB1c2goe2NvbDpjLHNwYW46eS5jb2xTcGFuLG1pbldpZHRoOnkuX21pbldpZHRoLG1heFdpZHRoOnkuX21heFdpZHRofSkpOih2Ll9taW5XaWR0aD1NYXRoLm1heCh2Ll9taW5XaWR0aCx5Ll9taW5XaWR0aCksdi5fbWF4V2lkdGg9TWF0aC5tYXgodi5fbWF4V2lkdGgseS5fbWF4V2lkdGgpKX15LnJvd1NwYW4mJnkucm93U3Bhbj4xJiZ1KHQudGFibGUsZixjLHkucm93U3Bhbil9fWkoKTt2YXIgdz1hLm1lYXN1cmVNaW5NYXgodC50YWJsZS53aWR0aHMpO3JldHVybiB0Ll9taW5XaWR0aD13Lm1pbit0Ll9vZmZzZXRzLnRvdGFsLHQuX21heFdpZHRoPXcubWF4K3QuX29mZnNldHMudG90YWwsdH0sci5wcm90b3R5cGUubWVhc3VyZUNhbnZhcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPTAscj0wLGk9dC5jYW52YXMubGVuZ3RoO2k+cjtyKyspe3ZhciBvPXQuY2FudmFzW3JdO3N3aXRjaChvLnR5cGUpe2Nhc2UiZWxsaXBzZSI6ZT1NYXRoLm1heChlLG8ueCtvLnIxKSxuPU1hdGgubWF4KG4sby55K28ucjIpO2JyZWFrO2Nhc2UicmVjdCI6ZT1NYXRoLm1heChlLG8ueCtvLncpLG49TWF0aC5tYXgobixvLnkrby5oKTticmVhaztjYXNlImxpbmUiOmU9TWF0aC5tYXgoZSxvLngxLG8ueDIpLG49TWF0aC5tYXgobixvLnkxLG8ueTIpO2JyZWFrO2Nhc2UicG9seWxpbmUiOmZvcih2YXIgYT0wLHM9by5wb2ludHMubGVuZ3RoO3M+YTthKyspZT1NYXRoLm1heChlLG8ucG9pbnRzW2FdLngpLG49TWF0aC5tYXgobixvLnBvaW50c1thXS55KX19cmV0dXJuIHQuX21pbldpZHRoPXQuX21heFdpZHRoPWUsdC5fbWluSGVpZ2h0PXQuX21heEhlaWdodD1uLHR9LHIucHJvdG90eXBlLm1lYXN1cmVRcj1mdW5jdGlvbih0KXtyZXR1cm4gdD11Lm1lYXN1cmUodCksdC5fYWxpZ25tZW50PXRoaXMuc3R5bGVTdGFjay5nZXRQcm9wZXJ0eSgiYWxpZ25tZW50IiksdH0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe3RoaXMucGFnZXM9W10sdGhpcy5wYWdlTWFyZ2lucz1lLHRoaXMueD1lLmxlZnQsdGhpcy5hdmFpbGFibGVXaWR0aD10LndpZHRoLWUubGVmdC1lLnJpZ2h0LHRoaXMuYXZhaWxhYmxlSGVpZ2h0PTAsdGhpcy5wYWdlPS0xLHRoaXMuc25hcHNob3RzPVtdLHRoaXMuZW5kaW5nQ2VsbD1udWxsLHRoaXMudHJhY2tlcj1uZXcgYSx0aGlzLmFkZFBhZ2UodCl9ZnVuY3Rpb24gaSh0LGUpe3JldHVybiB2b2lkIDA9PT10P2U6ImxhbmRzY2FwZSI9PT10PyJsYW5kc2NhcGUiOiJwb3J0cmFpdCJ9ZnVuY3Rpb24gbyh0LGUpe3ZhciBuO3JldHVybiBuPXQucGFnZT5lLnBhZ2U/dDplLnBhZ2U+dC5wYWdlP2U6dC55PmUueT90OmUse3BhZ2U6bi5wYWdlLHg6bi54LHk6bi55LGF2YWlsYWJsZUhlaWdodDpuLmF2YWlsYWJsZUhlaWdodCxhdmFpbGFibGVXaWR0aDpuLmF2YWlsYWJsZVdpZHRofX12YXIgYT1uKDE4KTtyLnByb3RvdHlwZS5iZWdpbkNvbHVtbkdyb3VwPWZ1bmN0aW9uKCl7dGhpcy5zbmFwc2hvdHMucHVzaCh7eDp0aGlzLngseTp0aGlzLnksYXZhaWxhYmxlSGVpZ2h0OnRoaXMuYXZhaWxhYmxlSGVpZ2h0LGF2YWlsYWJsZVdpZHRoOnRoaXMuYXZhaWxhYmxlV2lkdGgscGFnZTp0aGlzLnBhZ2UsYm90dG9tTW9zdDp7eTp0aGlzLnkscGFnZTp0aGlzLnBhZ2V9LGVuZGluZ0NlbGw6dGhpcy5lbmRpbmdDZWxsLGxhc3RDb2x1bW5XaWR0aDp0aGlzLmxhc3RDb2x1bW5XaWR0aH0pLHRoaXMubGFzdENvbHVtbldpZHRoPTB9LHIucHJvdG90eXBlLmJlZ2luQ29sdW1uPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLnNuYXBzaG90c1t0aGlzLnNuYXBzaG90cy5sZW5ndGgtMV07dGhpcy5jYWxjdWxhdGVCb3R0b21Nb3N0KHIpLHRoaXMuZW5kaW5nQ2VsbD1uLHRoaXMucGFnZT1yLnBhZ2UsdGhpcy54PXRoaXMueCt0aGlzLmxhc3RDb2x1bW5XaWR0aCsoZXx8MCksdGhpcy55PXIueSx0aGlzLmF2YWlsYWJsZVdpZHRoPXQsdGhpcy5hdmFpbGFibGVIZWlnaHQ9ci5hdmFpbGFibGVIZWlnaHQsdGhpcy5sYXN0Q29sdW1uV2lkdGg9dH0sci5wcm90b3R5cGUuY2FsY3VsYXRlQm90dG9tTW9zdD1mdW5jdGlvbih0KXt0aGlzLmVuZGluZ0NlbGw/KHRoaXMuc2F2ZUNvbnRleHRJbkVuZGluZ0NlbGwodGhpcy5lbmRpbmdDZWxsKSx0aGlzLmVuZGluZ0NlbGw9bnVsbCk6dC5ib3R0b21Nb3N0PW8odGhpcyx0LmJvdHRvbU1vc3QpfSxyLnByb3RvdHlwZS5tYXJrRW5kaW5nPWZ1bmN0aW9uKHQpe3RoaXMucGFnZT10Ll9jb2x1bW5FbmRpbmdDb250ZXh0LnBhZ2UsdGhpcy54PXQuX2NvbHVtbkVuZGluZ0NvbnRleHQueCx0aGlzLnk9dC5fY29sdW1uRW5kaW5nQ29udGV4dC55LHRoaXMuYXZhaWxhYmxlV2lkdGg9dC5fY29sdW1uRW5kaW5nQ29udGV4dC5hdmFpbGFibGVXaWR0aCx0aGlzLmF2YWlsYWJsZUhlaWdodD10Ll9jb2x1bW5FbmRpbmdDb250ZXh0LmF2YWlsYWJsZUhlaWdodCx0aGlzLmxhc3RDb2x1bW5XaWR0aD10Ll9jb2x1bW5FbmRpbmdDb250ZXh0Lmxhc3RDb2x1bW5XaWR0aH0sci5wcm90b3R5cGUuc2F2ZUNvbnRleHRJbkVuZGluZ0NlbGw9ZnVuY3Rpb24odCl7dC5fY29sdW1uRW5kaW5nQ29udGV4dD17cGFnZTp0aGlzLnBhZ2UseDp0aGlzLngseTp0aGlzLnksYXZhaWxhYmxlSGVpZ2h0OnRoaXMuYXZhaWxhYmxlSGVpZ2h0LGF2YWlsYWJsZVdpZHRoOnRoaXMuYXZhaWxhYmxlV2lkdGgsbGFzdENvbHVtbldpZHRoOnRoaXMubGFzdENvbHVtbldpZHRofX0sci5wcm90b3R5cGUuY29tcGxldGVDb2x1bW5Hcm91cD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc25hcHNob3RzLnBvcCgpO3RoaXMuY2FsY3VsYXRlQm90dG9tTW9zdCh0KSx0aGlzLmVuZGluZ0NlbGw9bnVsbCx0aGlzLng9dC54LHRoaXMueT10LmJvdHRvbU1vc3QueSx0aGlzLnBhZ2U9dC5ib3R0b21Nb3N0LnBhZ2UsdGhpcy5hdmFpbGFibGVXaWR0aD10LmF2YWlsYWJsZVdpZHRoLHRoaXMuYXZhaWxhYmxlSGVpZ2h0PXQuYm90dG9tTW9zdC5hdmFpbGFibGVIZWlnaHQsdGhpcy5sYXN0Q29sdW1uV2lkdGg9dC5sYXN0Q29sdW1uV2lkdGh9LHIucHJvdG90eXBlLmFkZE1hcmdpbj1mdW5jdGlvbih0LGUpe3RoaXMueCs9dCx0aGlzLmF2YWlsYWJsZVdpZHRoLT10KyhlfHwwKX0sci5wcm90b3R5cGUubW92ZURvd249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueSs9dCx0aGlzLmF2YWlsYWJsZUhlaWdodC09dCx0aGlzLmF2YWlsYWJsZUhlaWdodD4wfSxyLnByb3RvdHlwZS5pbml0aWFsaXplUGFnZT1mdW5jdGlvbigpe3RoaXMueT10aGlzLnBhZ2VNYXJnaW5zLnRvcCx0aGlzLmF2YWlsYWJsZUhlaWdodD10aGlzLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUuaGVpZ2h0LXRoaXMucGFnZU1hcmdpbnMudG9wLXRoaXMucGFnZU1hcmdpbnMuYm90dG9tLHRoaXMucGFnZVNuYXBzaG90KCkuYXZhaWxhYmxlV2lkdGg9dGhpcy5nZXRDdXJyZW50UGFnZSgpLnBhZ2VTaXplLndpZHRoLXRoaXMucGFnZU1hcmdpbnMubGVmdC10aGlzLnBhZ2VNYXJnaW5zLnJpZ2h0fSxyLnByb3RvdHlwZS5wYWdlU25hcHNob3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbmFwc2hvdHNbMF0/dGhpcy5zbmFwc2hvdHNbMF06dGhpc30sci5wcm90b3R5cGUubW92ZVRvPWZ1bmN0aW9uKHQsZSl7dm9pZCAwIT09dCYmbnVsbCE9PXQmJih0aGlzLng9dCx0aGlzLmF2YWlsYWJsZVdpZHRoPXRoaXMuZ2V0Q3VycmVudFBhZ2UoKS5wYWdlU2l6ZS53aWR0aC10aGlzLngtdGhpcy5wYWdlTWFyZ2lucy5yaWdodCksdm9pZCAwIT09ZSYmbnVsbCE9PWUmJih0aGlzLnk9ZSx0aGlzLmF2YWlsYWJsZUhlaWdodD10aGlzLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUuaGVpZ2h0LXRoaXMueS10aGlzLnBhZ2VNYXJnaW5zLmJvdHRvbSl9LHIucHJvdG90eXBlLmJlZ2luRGV0YWNoZWRCbG9jaz1mdW5jdGlvbigpe3RoaXMuc25hcHNob3RzLnB1c2goe3g6dGhpcy54LHk6dGhpcy55LGF2YWlsYWJsZUhlaWdodDp0aGlzLmF2YWlsYWJsZUhlaWdodCxhdmFpbGFibGVXaWR0aDp0aGlzLmF2YWlsYWJsZVdpZHRoLHBhZ2U6dGhpcy5wYWdlLGVuZGluZ0NlbGw6dGhpcy5lbmRpbmdDZWxsLGxhc3RDb2x1bW5XaWR0aDp0aGlzLmxhc3RDb2x1bW5XaWR0aH0pfSxyLnByb3RvdHlwZS5lbmREZXRhY2hlZEJsb2NrPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zbmFwc2hvdHMucG9wKCk7dGhpcy54PXQueCx0aGlzLnk9dC55LHRoaXMuYXZhaWxhYmxlV2lkdGg9dC5hdmFpbGFibGVXaWR0aCx0aGlzLmF2YWlsYWJsZUhlaWdodD10LmF2YWlsYWJsZUhlaWdodCx0aGlzLnBhZ2U9dC5wYWdlLHRoaXMuZW5kaW5nQ2VsbD10LmVuZGluZ0NlbGwsdGhpcy5sYXN0Q29sdW1uV2lkdGg9dC5sYXN0Q29sdW1uV2lkdGh9O3ZhciBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9aShlLHQucGFnZVNpemUub3JpZW50YXRpb24pLGUhPT10LnBhZ2VTaXplLm9yaWVudGF0aW9uP3tvcmllbnRhdGlvbjplLHdpZHRoOnQucGFnZVNpemUuaGVpZ2h0LGhlaWdodDp0LnBhZ2VTaXplLndpZHRofTp7b3JpZW50YXRpb246dC5wYWdlU2l6ZS5vcmllbnRhdGlvbix3aWR0aDp0LnBhZ2VTaXplLndpZHRoLGhlaWdodDp0LnBhZ2VTaXplLmhlaWdodH19O3IucHJvdG90eXBlLm1vdmVUb05leHRQYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGFnZSsxLG49dGhpcy5wYWdlLHI9dGhpcy55LGk9ZT49dGhpcy5wYWdlcy5sZW5ndGg7cmV0dXJuIGk/dGhpcy5hZGRQYWdlKHModGhpcy5nZXRDdXJyZW50UGFnZSgpLHQpKToodGhpcy5wYWdlPWUsdGhpcy5pbml0aWFsaXplUGFnZSgpKSx7bmV3UGFnZUNyZWF0ZWQ6aSxwcmV2UGFnZTpuLHByZXZZOnIseTp0aGlzLnl9fSxyLnByb3RvdHlwZS5hZGRQYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXtpdGVtczpbXSxwYWdlU2l6ZTp0fTtyZXR1cm4gdGhpcy5wYWdlcy5wdXNoKGUpLHRoaXMucGFnZT10aGlzLnBhZ2VzLmxlbmd0aC0xLHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKSx0aGlzLnRyYWNrZXIuZW1pdCgicGFnZUFkZGVkIiksZX0sci5wcm90b3R5cGUuZ2V0Q3VycmVudFBhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYWdlPDB8fHRoaXMucGFnZT49dGhpcy5wYWdlcy5sZW5ndGg/bnVsbDp0aGlzLnBhZ2VzW3RoaXMucGFnZV19LHIucHJvdG90eXBlLmdldEN1cnJlbnRQb3NpdGlvbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0Q3VycmVudFBhZ2UoKS5wYWdlU2l6ZSxlPXQuaGVpZ2h0LXRoaXMucGFnZU1hcmdpbnMudG9wLXRoaXMucGFnZU1hcmdpbnMuYm90dG9tLG49dC53aWR0aC10aGlzLnBhZ2VNYXJnaW5zLmxlZnQtdGhpcy5wYWdlTWFyZ2lucy5yaWdodDtyZXR1cm57cGFnZU51bWJlcjp0aGlzLnBhZ2UrMSxwYWdlT3JpZW50YXRpb246dC5vcmllbnRhdGlvbixwYWdlSW5uZXJIZWlnaHQ6ZSxwYWdlSW5uZXJXaWR0aDpuLGxlZnQ6dGhpcy54LHRvcDp0aGlzLnksdmVydGljYWxSYXRpbzoodGhpcy55LXRoaXMucGFnZU1hcmdpbnMudG9wKS9lLGhvcml6b250YWxSYXRpbzoodGhpcy54LXRoaXMucGFnZU1hcmdpbnMubGVmdCkvbn19LHQuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlKXt0aGlzLnRyYW5zYWN0aW9uTGV2ZWw9MCx0aGlzLnJlcGVhdGFibGVzPVtdLHRoaXMudHJhY2tlcj1lLHRoaXMud3JpdGVyPW5ldyBvKHQsZSl9ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPWUodCk7cmV0dXJuIG58fCh0Lm1vdmVUb05leHRQYWdlKCksbj1lKHQpKSxufXZhciBvPW4oMzcpO3IucHJvdG90eXBlLmFkZExpbmU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBpKHRoaXMsZnVuY3Rpb24ocil7cmV0dXJuIHIud3JpdGVyLmFkZExpbmUodCxlLG4pfSl9LHIucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkodGhpcyxmdW5jdGlvbihuKXtyZXR1cm4gbi53cml0ZXIuYWRkSW1hZ2UodCxlKX0pfSxyLnByb3RvdHlwZS5hZGRRcj1mdW5jdGlvbih0LGUpe3JldHVybiBpKHRoaXMsZnVuY3Rpb24obil7cmV0dXJuIG4ud3JpdGVyLmFkZFFyKHQsZSl9KX0sci5wcm90b3R5cGUuYWRkVmVjdG9yPWZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiB0aGlzLndyaXRlci5hZGRWZWN0b3IodCxlLG4scil9LHIucHJvdG90eXBlLmFkZEZyYWdtZW50PWZ1bmN0aW9uKHQsZSxuLHIpe3RoaXMud3JpdGVyLmFkZEZyYWdtZW50KHQsZSxuLHIpfHwodGhpcy5tb3ZlVG9OZXh0UGFnZSgpLHRoaXMud3JpdGVyLmFkZEZyYWdtZW50KHQsZSxuLHIpKX0sci5wcm90b3R5cGUubW92ZVRvTmV4dFBhZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy53cml0ZXIuY29udGV4dC5tb3ZlVG9OZXh0UGFnZSh0KTtlLm5ld1BhZ2VDcmVhdGVkP3RoaXMucmVwZWF0YWJsZXMuZm9yRWFjaChmdW5jdGlvbih0KXt0aGlzLndyaXRlci5hZGRGcmFnbWVudCh0LCEwKX0sdGhpcyk6dGhpcy5yZXBlYXRhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3RoaXMud3JpdGVyLmNvbnRleHQubW92ZURvd24odC5oZWlnaHQpfSx0aGlzKSx0aGlzLndyaXRlci50cmFja2VyLmVtaXQoInBhZ2VDaGFuZ2VkIix7cHJldlBhZ2U6ZS5wcmV2UGFnZSxwcmV2WTplLnByZXZZLHk6ZS55fSl9LHIucHJvdG90eXBlLmJlZ2luVW5icmVha2FibGVCbG9jaz1mdW5jdGlvbih0LGUpezA9PT10aGlzLnRyYW5zYWN0aW9uTGV2ZWwrKyYmKHRoaXMub3JpZ2luYWxYPXRoaXMud3JpdGVyLmNvbnRleHQueCx0aGlzLndyaXRlci5wdXNoQ29udGV4dCh0LGUpKX0sci5wcm90b3R5cGUuY29tbWl0VW5icmVha2FibGVCbG9jaz1mdW5jdGlvbih0LGUpe2lmKDA9PT0tLXRoaXMudHJhbnNhY3Rpb25MZXZlbCl7dmFyIG49dGhpcy53cml0ZXIuY29udGV4dDt0aGlzLndyaXRlci5wb3BDb250ZXh0KCk7dmFyIHI9bi5wYWdlcy5sZW5ndGg7aWYocj4wKXt2YXIgaT1uLnBhZ2VzWzBdO2lmKGkueE9mZnNldD10LGkueU9mZnNldD1lLHI+MSlpZih2b2lkIDAhPT10fHx2b2lkIDAhPT1lKWkuaGVpZ2h0PW4uZ2V0Q3VycmVudFBhZ2UoKS5wYWdlU2l6ZS5oZWlnaHQtbi5wYWdlTWFyZ2lucy50b3Atbi5wYWdlTWFyZ2lucy5ib3R0b207ZWxzZXtpLmhlaWdodD10aGlzLndyaXRlci5jb250ZXh0LmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUuaGVpZ2h0LXRoaXMud3JpdGVyLmNvbnRleHQucGFnZU1hcmdpbnMudG9wLXRoaXMud3JpdGVyLmNvbnRleHQucGFnZU1hcmdpbnMuYm90dG9tO2Zvcih2YXIgbz0wLGE9dGhpcy5yZXBlYXRhYmxlcy5sZW5ndGg7YT5vO28rKylpLmhlaWdodC09dGhpcy5yZXBlYXRhYmxlc1tvXS5oZWlnaHR9ZWxzZSBpLmhlaWdodD1uLnk7dm9pZCAwIT09dHx8dm9pZCAwIT09ZT90aGlzLndyaXRlci5hZGRGcmFnbWVudChpLCEwLCEwLCEwKTp0aGlzLmFkZEZyYWdtZW50KGkpfX19LHIucHJvdG90eXBlLmN1cnJlbnRCbG9ja1RvUmVwZWF0YWJsZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMud3JpdGVyLmNvbnRleHQsZT17aXRlbXM6W119O3JldHVybiB0LnBhZ2VzWzBdLml0ZW1zLmZvckVhY2goZnVuY3Rpb24odCl7ZS5pdGVtcy5wdXNoKHQpfSksZS54T2Zmc2V0PXRoaXMub3JpZ2luYWxYLGUuaGVpZ2h0PXQueSxlfSxyLnByb3RvdHlwZS5wdXNoVG9SZXBlYXRhYmxlcz1mdW5jdGlvbih0KXt0aGlzLnJlcGVhdGFibGVzLnB1c2godCl9LHIucHJvdG90eXBlLnBvcEZyb21SZXBlYXRhYmxlcz1mdW5jdGlvbigpe3RoaXMucmVwZWF0YWJsZXMucG9wKCl9LHIucHJvdG90eXBlLmNvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53cml0ZXIuY29udGV4dH0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe3ZhciBuPVtdLHI9MCxhPTAscz1bXSxoPTAsdT0wLGw9W10sYz1lO3QuZm9yRWFjaChmdW5jdGlvbih0KXtpKHQpPyhuLnB1c2godCkscis9dC5fbWluV2lkdGgsYSs9dC5fbWF4V2lkdGgpOm8odCk/KHMucHVzaCh0KSxoPU1hdGgubWF4KGgsdC5fbWluV2lkdGgpLHU9TWF0aC5tYXgodSx0Ll9tYXhXaWR0aCkpOmwucHVzaCh0KX0pLGwuZm9yRWFjaChmdW5jdGlvbih0KXsic3RyaW5nIj09dHlwZW9mIHQud2lkdGgmJi9cZCslLy50ZXN0KHQud2lkdGgpJiYodC53aWR0aD1wYXJzZUZsb2F0KHQud2lkdGgpKmMvMTAwKSx0Ll9jYWxjV2lkdGg9dC53aWR0aDx0Ll9taW5XaWR0aCYmdC5lbGFzdGljV2lkdGg/dC5fbWluV2lkdGg6dC53aWR0aCxlLT10Ll9jYWxjV2lkdGh9KTt2YXIgZj1yK2gqcy5sZW5ndGgsZD1hK3Uqcy5sZW5ndGg7aWYoZj49ZSluLmZvckVhY2goZnVuY3Rpb24odCl7dC5fY2FsY1dpZHRoPXQuX21pbldpZHRofSkscy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX2NhbGNXaWR0aD1ofSk7ZWxzZXtpZihlPmQpbi5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX2NhbGNXaWR0aD10Ll9tYXhXaWR0aCxlLT10Ll9jYWxjV2lkdGh9KTtlbHNle3ZhciBwPWUtZixnPWQtZjtuLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC5fbWF4V2lkdGgtdC5fbWluV2lkdGg7dC5fY2FsY1dpZHRoPXQuX21pbldpZHRoK24qcC9nLGUtPXQuX2NhbGNXaWR0aH0pfWlmKHMubGVuZ3RoPjApe3ZhciB2PWUvcy5sZW5ndGg7cy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuX2NhbGNXaWR0aD12fSl9fX1mdW5jdGlvbiBpKHQpe3JldHVybiJhdXRvIj09PXQud2lkdGh9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbnVsbD09PXQud2lkdGh8fHZvaWQgMD09PXQud2lkdGh8fCIqIj09PXQud2lkdGh8fCJzdGFyIj09PXQud2lkdGh9ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9e21pbjowLG1heDowfSxuPXttaW46MCxtYXg6MH0scj0wLGE9MCxzPXQubGVuZ3RoO3M+YTthKyspe3ZhciBoPXRbYV07byhoKT8obi5taW49TWF0aC5tYXgobi5taW4saC5fbWluV2lkdGgpLG4ubWF4PU1hdGgubWF4KG4ubWF4LGguX21heFdpZHRoKSxyKyspOmkoaCk/KGUubWluKz1oLl9taW5XaWR0aCxlLm1heCs9aC5fbWF4V2lkdGgpOihlLm1pbis9dm9pZCAwIT09aC53aWR0aCYmaC53aWR0aHx8aC5fbWluV2lkdGgsZS5tYXgrPXZvaWQgMCE9PWgud2lkdGgmJmgud2lkdGh8fGguX21heFdpZHRoKX1yZXR1cm4gciYmKGUubWluKz1yKm4ubWluLGUubWF4Kz1yKm4ubWF4KSxlfXQuZXhwb3J0cz17YnVpbGRDb2x1bW5XaWR0aHM6cixtZWFzdXJlTWluTWF4OmEsaXNBdXRvQ29sdW1uOmksaXNTdGFyQ29sdW1uOm99fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7dGhpcy50YWJsZU5vZGU9dH12YXIgaT1uKDIyKTtyLnByb3RvdHlwZS5iZWdpblRhYmxlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt2YXIgdD0wO3JldHVybiByLnRhYmxlLndpZHRocy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QrPWUuX2NhbGNXaWR0aH0pLHR9ZnVuY3Rpb24gbigpe3ZhciB0PVtdLGU9MCxuPTA7dC5wdXNoKHtsZWZ0OjAscm93U3BhbjowfSk7Zm9yKHZhciByPTAsaT1hLnRhYmxlTm9kZS50YWJsZS5ib2R5WzBdLmxlbmd0aDtpPnI7cisrKXt2YXIgbz1hLmxheW91dC5wYWRkaW5nTGVmdChyLGEudGFibGVOb2RlKSthLmxheW91dC5wYWRkaW5nUmlnaHQocixhLnRhYmxlTm9kZSkscz1hLmxheW91dC52TGluZVdpZHRoKHIsYS50YWJsZU5vZGUpO249bytzK2EudGFibGVOb2RlLnRhYmxlLndpZHRoc1tyXS5fY2FsY1dpZHRoLHRbdC5sZW5ndGgtMV0ud2lkdGg9bixlKz1uLHQucHVzaCh7bGVmdDplLHJvd1NwYW46MCx3aWR0aDowfSl9cmV0dXJuIHR9dmFyIHIsbyxhPXRoaXM7cj10aGlzLnRhYmxlTm9kZSx0aGlzLm9mZnNldHM9ci5fb2Zmc2V0cyx0aGlzLmxheW91dD1yLl9sYXlvdXQsbz10LmNvbnRleHQoKS5hdmFpbGFibGVXaWR0aC10aGlzLm9mZnNldHMudG90YWwsaS5idWlsZENvbHVtbldpZHRocyhyLnRhYmxlLndpZHRocyxvKSx0aGlzLnRhYmxlV2lkdGg9ci5fb2Zmc2V0cy50b3RhbCtlKCksdGhpcy5yb3dTcGFuRGF0YT1uKCksdGhpcy5jbGVhblVwUmVwZWF0YWJsZXM9ITEsdGhpcy5oZWFkZXJSb3dzPXIudGFibGUuaGVhZGVyUm93c3x8MCx0aGlzLnJvd3NXaXRob3V0UGFnZUJyZWFrPXRoaXMuaGVhZGVyUm93cysoci50YWJsZS5rZWVwV2l0aEhlYWRlclJvd3N8fDApLHRoaXMuZG9udEJyZWFrUm93cz1yLnRhYmxlLmRvbnRCcmVha1Jvd3N8fCExLHRoaXMucm93c1dpdGhvdXRQYWdlQnJlYWsmJnQuYmVnaW5VbmJyZWFrYWJsZUJsb2NrKCksdGhpcy5kcmF3SG9yaXpvbnRhbExpbmUoMCx0KX0sci5wcm90b3R5cGUub25Sb3dCcmVhaz1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9bi5yb3dQYWRkaW5nVG9wKyhuLmhlYWRlclJvd3M/MDpuLnRvcExpbmVXaWR0aCk7ZS5jb250ZXh0KCkubW92ZURvd24odCl9fSxyLnByb3RvdHlwZS5iZWdpblJvdz1mdW5jdGlvbih0LGUpe3RoaXMudG9wTGluZVdpZHRoPXRoaXMubGF5b3V0LmhMaW5lV2lkdGgodCx0aGlzLnRhYmxlTm9kZSksdGhpcy5yb3dQYWRkaW5nVG9wPXRoaXMubGF5b3V0LnBhZGRpbmdUb3AodCx0aGlzLnRhYmxlTm9kZSksdGhpcy5ib3R0b21MaW5lV2lkdGg9dGhpcy5sYXlvdXQuaExpbmVXaWR0aCh0KzEsdGhpcy50YWJsZU5vZGUpLHRoaXMucm93UGFkZGluZ0JvdHRvbT10aGlzLmxheW91dC5wYWRkaW5nQm90dG9tKHQsdGhpcy50YWJsZU5vZGUpLHRoaXMucm93Q2FsbGJhY2s9dGhpcy5vblJvd0JyZWFrKHQsZSksZS50cmFja2VyLnN0YXJ0VHJhY2tpbmcoInBhZ2VDaGFuZ2VkIix0aGlzLnJvd0NhbGxiYWNrKSx0aGlzLmRvbnRCcmVha1Jvd3MmJmUuYmVnaW5VbmJyZWFrYWJsZUJsb2NrKCksdGhpcy5yb3dUb3BZPWUuY29udGV4dCgpLnksdGhpcy5yZXNlcnZlZEF0Qm90dG9tPXRoaXMuYm90dG9tTGluZVdpZHRoK3RoaXMucm93UGFkZGluZ0JvdHRvbSxlLmNvbnRleHQoKS5hdmFpbGFibGVIZWlnaHQtPXRoaXMucmVzZXJ2ZWRBdEJvdHRvbSxlLmNvbnRleHQoKS5tb3ZlRG93bih0aGlzLnJvd1BhZGRpbmdUb3ApfSxyLnByb3RvdHlwZS5kcmF3SG9yaXpvbnRhbExpbmU9ZnVuY3Rpb24odCxlLG4pe3ZhciByPXRoaXMubGF5b3V0LmhMaW5lV2lkdGgodCx0aGlzLnRhYmxlTm9kZSk7aWYocil7Zm9yKHZhciBpPXIvMixvPW51bGwsYT0wLHM9dGhpcy5yb3dTcGFuRGF0YS5sZW5ndGg7cz5hO2ErKyl7dmFyIGg9dGhpcy5yb3dTcGFuRGF0YVthXSx1PSFoLnJvd1NwYW47IW8mJnUmJihvPXtsZWZ0OmgubGVmdCx3aWR0aDowfSksdSYmKG8ud2lkdGgrPWgud2lkdGh8fDApO3ZhciBsPShufHwwKStpO3UmJmEhPT1zLTF8fG8mJihlLmFkZFZlY3Rvcih7dHlwZToibGluZSIseDE6by5sZWZ0LHgyOm8ubGVmdCtvLndpZHRoLHkxOmwseTI6bCxsaW5lV2lkdGg6cixsaW5lQ29sb3I6ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMubGF5b3V0LmhMaW5lQ29sb3I/dGhpcy5sYXlvdXQuaExpbmVDb2xvcih0LHRoaXMudGFibGVOb2RlKTp0aGlzLmxheW91dC5oTGluZUNvbG9yfSwhMSxuKSxvPW51bGwpfWUuY29udGV4dCgpLm1vdmVEb3duKHIpfX0sci5wcm90b3R5cGUuZHJhd1ZlcnRpY2FsTGluZT1mdW5jdGlvbih0LGUsbixyLGkpe3ZhciBvPXRoaXMubGF5b3V0LnZMaW5lV2lkdGgocix0aGlzLnRhYmxlTm9kZSk7MCE9PW8mJmkuYWRkVmVjdG9yKHt0eXBlOiJsaW5lIix4MTp0K28vMix4Mjp0K28vMix5MTplLHkyOm4sbGluZVdpZHRoOm8sbGluZUNvbG9yOiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLmxheW91dC52TGluZUNvbG9yP3RoaXMubGF5b3V0LnZMaW5lQ29sb3Iocix0aGlzLnRhYmxlTm9kZSk6dGhpcy5sYXlvdXQudkxpbmVDb2xvcn0sITEsITApfSxyLnByb3RvdHlwZS5lbmRUYWJsZT1mdW5jdGlvbih0KXt0aGlzLmNsZWFuVXBSZXBlYXRhYmxlcyYmdC5wb3BGcm9tUmVwZWF0YWJsZXMoKX0sci5wcm90b3R5cGUuZW5kUm93PWZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7Zm9yKHZhciBlPVtdLG49MCxyPTAsaT1hLnRhYmxlTm9kZS50YWJsZS5ib2R5W3RdLmxlbmd0aDtpPnI7cisrKXtpZighbil7ZS5wdXNoKHt4OmEucm93U3BhbkRhdGFbcl0ubGVmdCxpbmRleDpyfSk7dmFyIG89YS50YWJsZU5vZGUudGFibGUuYm9keVt0XVtyXTtuPW8uX2NvbFNwYW58fG8uY29sU3Bhbnx8MH1uPjAmJm4tLX1yZXR1cm4gZS5wdXNoKHt4OmEucm93U3BhbkRhdGFbYS5yb3dTcGFuRGF0YS5sZW5ndGgtMV0ubGVmdCxpbmRleDphLnJvd1NwYW5EYXRhLmxlbmd0aC0xfSksZX12YXIgaSxvLGE9dGhpcztlLnRyYWNrZXIuc3RvcFRyYWNraW5nKCJwYWdlQ2hhbmdlZCIsdGhpcy5yb3dDYWxsYmFjayksZS5jb250ZXh0KCkubW92ZURvd24odGhpcy5sYXlvdXQucGFkZGluZ0JvdHRvbSh0LHRoaXMudGFibGVOb2RlKSksZS5jb250ZXh0KCkuYXZhaWxhYmxlSGVpZ2h0Kz10aGlzLnJlc2VydmVkQXRCb3R0b207dmFyIHM9ZS5jb250ZXh0KCkucGFnZSxoPWUuY29udGV4dCgpLnksdT1yKCksbD1bXSxjPW4mJm4ubGVuZ3RoPjA7aWYobC5wdXNoKHt5MDp0aGlzLnJvd1RvcFkscGFnZTpjP25bMF0ucHJldlBhZ2U6c30pLGMpZm9yKG89MCxpPW4ubGVuZ3RoO2k+bztvKyspe3ZhciBmPW5bb107bFtsLmxlbmd0aC0xXS55MT1mLnByZXZZLGwucHVzaCh7eTA6Zi55LHBhZ2U6Zi5wcmV2UGFnZSsxfSl9bFtsLmxlbmd0aC0xXS55MT1oO2Zvcih2YXIgZD1sWzBdLnkxLWxbMF0ueTA9PT10aGlzLnJvd1BhZGRpbmdUb3AscD1kPzE6MCxnPWwubGVuZ3RoO2c+cDtwKyspe3ZhciB2PXA8bC5sZW5ndGgtMSxtPXA+MCYmIXRoaXMuaGVhZGVyUm93cyx5PW0/MDp0aGlzLnRvcExpbmVXaWR0aCx3PWxbcF0ueTAsXz1sW3BdLnkxO2Zvcih2JiYoXys9dGhpcy5yb3dQYWRkaW5nQm90dG9tKSxlLmNvbnRleHQoKS5wYWdlIT1sW3BdLnBhZ2UmJihlLmNvbnRleHQoKS5wYWdlPWxbcF0ucGFnZSx0aGlzLnJlc2VydmVkQXRCb3R0b209MCksbz0wLGk9dS5sZW5ndGg7aT5vO28rKylpZih0aGlzLmRyYXdWZXJ0aWNhbExpbmUodVtvXS54LHcteSxfK3RoaXMuYm90dG9tTGluZVdpZHRoLHVbb10uaW5kZXgsZSksaS0xPm8pe3ZhciBiPXVbb10uaW5kZXgseD10aGlzLnRhYmxlTm9kZS50YWJsZS5ib2R5W3RdW2JdLmZpbGxDb2xvcjtpZih4KXt2YXIgUz10aGlzLmxheW91dC52TGluZVdpZHRoKGIsdGhpcy50YWJsZU5vZGUpLGs9dVtvXS54K1MsRT13LXk7ZS5hZGRWZWN0b3Ioe3R5cGU6InJlY3QiLHg6ayx5OkUsdzp1W28rMV0ueC1rLGg6Xyt0aGlzLmJvdHRvbUxpbmVXaWR0aC1FLGxpbmVXaWR0aDowLGNvbG9yOnh9LCExLCEwLDApfX12JiZ0aGlzLmxheW91dC5oTGluZVdoZW5Ccm9rZW4hPT0hMSYmdGhpcy5kcmF3SG9yaXpvbnRhbExpbmUodCsxLGUsXyksbSYmdGhpcy5sYXlvdXQuaExpbmVXaGVuQnJva2VuIT09ITEmJnRoaXMuZHJhd0hvcml6b250YWxMaW5lKHQsZSx3KTsKCn1lLmNvbnRleHQoKS5wYWdlPXMsZS5jb250ZXh0KCkueT1oO3ZhciBDPXRoaXMudGFibGVOb2RlLnRhYmxlLmJvZHlbdF07Zm9yKG89MCxpPUMubGVuZ3RoO2k+bztvKyspe2lmKENbb10ucm93U3BhbiYmKHRoaXMucm93U3BhbkRhdGFbb10ucm93U3Bhbj1DW29dLnJvd1NwYW4sQ1tvXS5jb2xTcGFuJiZDW29dLmNvbFNwYW4+MSkpZm9yKHZhciBJPTE7STxDW29dLnJvd1NwYW47SSsrKXRoaXMudGFibGVOb2RlLnRhYmxlLmJvZHlbdCtJXVtvXS5fY29sU3Bhbj1DW29dLmNvbFNwYW47dGhpcy5yb3dTcGFuRGF0YVtvXS5yb3dTcGFuPjAmJnRoaXMucm93U3BhbkRhdGFbb10ucm93U3Bhbi0tfXRoaXMuZHJhd0hvcml6b250YWxMaW5lKHQrMSxlKSx0aGlzLmhlYWRlclJvd3MmJnQ9PT10aGlzLmhlYWRlclJvd3MtMSYmKHRoaXMuaGVhZGVyUmVwZWF0YWJsZT1lLmN1cnJlbnRCbG9ja1RvUmVwZWF0YWJsZSgpKSx0aGlzLmRvbnRCcmVha1Jvd3MmJmUudHJhY2tlci5hdXRvKCJwYWdlQ2hhbmdlZCIsZnVuY3Rpb24oKXthLmRyYXdIb3Jpem9udGFsTGluZSh0LGUpfSxmdW5jdGlvbigpe2UuY29tbWl0VW5icmVha2FibGVCbG9jaygpLGEuZHJhd0hvcml6b250YWxMaW5lKHQsZSl9KSwhdGhpcy5oZWFkZXJSZXBlYXRhYmxlfHx0IT09dGhpcy5yb3dzV2l0aG91dFBhZ2VCcmVhay0xJiZ0IT09dGhpcy50YWJsZU5vZGUudGFibGUuYm9keS5sZW5ndGgtMXx8KGUuY29tbWl0VW5icmVha2FibGVCbG9jaygpLGUucHVzaFRvUmVwZWF0YWJsZXModGhpcy5oZWFkZXJSZXBlYXRhYmxlKSx0aGlzLmNsZWFuVXBSZXBlYXRhYmxlcz0hMCx0aGlzLmhlYWRlclJlcGVhdGFibGU9bnVsbCl9LHQuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7dGhpcy5tYXhXaWR0aD10LHRoaXMubGVhZGluZ0N1dD0wLHRoaXMudHJhaWxpbmdDdXQ9MCx0aGlzLmlubGluZVdpZHRocz0wLHRoaXMuaW5saW5lcz1bXX1yLnByb3RvdHlwZS5nZXRBc2NlbmRlckhlaWdodD1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMuaW5saW5lcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3Q9TWF0aC5tYXgodCxlLmZvbnQuYXNjZW5kZXIvMWUzKmUuZm9udFNpemUpfSksdH0sci5wcm90b3R5cGUuaGFzRW5vdWdoU3BhY2VGb3JJbmxpbmU9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10aGlzLmlubGluZXMubGVuZ3RoPyEwOnRoaXMubmV3TGluZUZvcmNlZD8hMTp0aGlzLmlubGluZVdpZHRocyt0LndpZHRoLXRoaXMubGVhZGluZ0N1dC0odC50cmFpbGluZ0N1dHx8MCk8PXRoaXMubWF4V2lkdGh9LHIucHJvdG90eXBlLmFkZElubGluZT1mdW5jdGlvbih0KXswPT09dGhpcy5pbmxpbmVzLmxlbmd0aCYmKHRoaXMubGVhZGluZ0N1dD10LmxlYWRpbmdDdXR8fDApLHRoaXMudHJhaWxpbmdDdXQ9dC50cmFpbGluZ0N1dHx8MCx0Lng9dGhpcy5pbmxpbmVXaWR0aHMtdGhpcy5sZWFkaW5nQ3V0LHRoaXMuaW5saW5lcy5wdXNoKHQpLHRoaXMuaW5saW5lV2lkdGhzKz10LndpZHRoLHQubGluZUVuZCYmKHRoaXMubmV3TGluZUZvcmNlZD0hMCl9LHIucHJvdG90eXBlLmdldFdpZHRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5saW5lV2lkdGhzLXRoaXMubGVhZGluZ0N1dC10aGlzLnRyYWlsaW5nQ3V0fSxyLnByb3RvdHlwZS5nZXRIZWlnaHQ9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiB0aGlzLmlubGluZXMuZm9yRWFjaChmdW5jdGlvbihlKXt0PU1hdGgubWF4KHQsZS5oZWlnaHR8fDApfSksdH0sdC5leHBvcnRzPXJ9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD17fSxlPTAsbj1hcmd1bWVudHMubGVuZ3RoO24+ZTtlKyspe3ZhciByPWFyZ3VtZW50c1tlXTtpZihyKWZvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJih0W2ldPXJbaV0pfXJldHVybiB0fWZ1bmN0aW9uIGkodCxlLG4pe3N3aXRjaCh0LnR5cGUpe2Nhc2UiZWxsaXBzZSI6Y2FzZSJyZWN0Ijp0LngrPWUsdC55Kz1uO2JyZWFrO2Nhc2UibGluZSI6dC54MSs9ZSx0LngyKz1lLHQueTErPW4sdC55Mis9bjticmVhaztjYXNlInBvbHlsaW5lIjpmb3IodmFyIHI9MCxpPXQucG9pbnRzLmxlbmd0aDtpPnI7cisrKXQucG9pbnRzW3JdLngrPWUsdC5wb2ludHNbcl0ueSs9bn19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiJmb250Ij09PXQ/ImZvbnQiOmV9ZnVuY3Rpb24gYSh0KXt2YXIgZT17fTtyZXR1cm4gdCYmIltvYmplY3QgRnVuY3Rpb25dIj09PWUudG9TdHJpbmcuY2FsbCh0KX10LmV4cG9ydHM9e3BhY2s6cixmb250U3RyaW5naWZ5Om8sb2Zmc2V0VmVjdG9yOmksaXNGdW5jdGlvbjphfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3RoaXMuZm9udFByb3ZpZGVyPXR9ZnVuY3Rpb24gaSh0KXt2YXIgZT1bXTt0PXQucmVwbGFjZSgiCSIsIiAgICAiKTtmb3IodmFyIG49dC5tYXRjaChsKSxyPTAsaT1uLmxlbmd0aDtpLTE+cjtyKyspe3ZhciBvPW5bcl0sYT0wPT09by5sZW5ndGg7aWYoYSl7dmFyIHM9MD09PWUubGVuZ3RofHxlW2UubGVuZ3RoLTFdLmxpbmVFbmQ7cz9lLnB1c2goe3RleHQ6IiIsbGluZUVuZDohMH0pOmVbZS5sZW5ndGgtMV0ubGluZUVuZD0hMH1lbHNlIGUucHVzaCh7dGV4dDpvfSl9cmV0dXJuIGV9ZnVuY3Rpb24gbyh0LGUpe2U9ZXx8e30sdD10fHx7fTtmb3IodmFyIG4gaW4gdCkidGV4dCIhPW4mJnQuaGFzT3duUHJvcGVydHkobikmJihlW25dPXRbbl0pO3JldHVybiBlfWZ1bmN0aW9uIGEodCl7dmFyIGU9W107KCJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZykmJih0PVt0XSk7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtyPm47bisrKXt2YXIgYSxzPXRbbl0saD1udWxsOyJzdHJpbmciPT10eXBlb2Ygc3x8cyBpbnN0YW5jZW9mIFN0cmluZz9hPWkocyk6KGE9aShzLnRleHQpLGg9byhzKSk7Zm9yKHZhciB1PTAsbD1hLmxlbmd0aDtsPnU7dSsrKXt2YXIgYz17dGV4dDphW3VdLnRleHR9O2FbdV0ubGluZUVuZCYmKGMubGluZUVuZD0hMCksbyhoLGMpLGUucHVzaChjKX19cmV0dXJuIGV9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC5yZXBsYWNlKC9bXkEtWmEtejAtOVxbXF0gXS9nLGZ1bmN0aW9uKHQpe3JldHVybiBkW3RdfHx0fSl9ZnVuY3Rpb24gaCh0LGUsbixyKXt2YXIgaTtyZXR1cm4gdm9pZCAwIT09dFtuXSYmbnVsbCE9PXRbbl0/dFtuXTplPyhlLmF1dG8odCxmdW5jdGlvbigpe2k9ZS5nZXRQcm9wZXJ0eShuKX0pLG51bGwhPT1pJiZ2b2lkIDAhPT1pP2k6cik6cn1mdW5jdGlvbiB1KHQsZSxuKXt2YXIgcj1hKGUpO3JldHVybiByLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHI9aChlLG4sImZvbnQiLCJSb2JvdG8iKSxpPWgoZSxuLCJmb250U2l6ZSIsMTIpLG89aChlLG4sImJvbGQiLCExKSxhPWgoZSxuLCJpdGFsaWNzIiwhMSksdT1oKGUsbiwiY29sb3IiLCJibGFjayIpLGw9aChlLG4sImRlY29yYXRpb24iLG51bGwpLGQ9aChlLG4sImRlY29yYXRpb25Db2xvciIsbnVsbCkscD1oKGUsbiwiZGVjb3JhdGlvblN0eWxlIixudWxsKSxnPWgoZSxuLCJiYWNrZ3JvdW5kIixudWxsKSx2PWgoZSxuLCJsaW5lSGVpZ2h0IiwxKSxtPXQucHJvdmlkZUZvbnQocixvLGEpO2Uud2lkdGg9bS53aWR0aE9mU3RyaW5nKHMoZS50ZXh0KSxpKSxlLmhlaWdodD1tLmxpbmVIZWlnaHQoaSkqdjt2YXIgeT1lLnRleHQubWF0Y2goYyksdz1lLnRleHQubWF0Y2goZik7ZS5sZWFkaW5nQ3V0PXk/bS53aWR0aE9mU3RyaW5nKHlbMF0saSk6MCxlLnRyYWlsaW5nQ3V0PXc/bS53aWR0aE9mU3RyaW5nKHdbMF0saSk6MCxlLmFsaWdubWVudD1oKGUsbiwiYWxpZ25tZW50IiwibGVmdCIpLGUuZm9udD1tLGUuZm9udFNpemU9aSxlLmNvbG9yPXUsZS5kZWNvcmF0aW9uPWwsZS5kZWNvcmF0aW9uQ29sb3I9ZCxlLmRlY29yYXRpb25TdHlsZT1wLGUuYmFja2dyb3VuZD1nfSkscn12YXIgbD0vKFteICxcLyEuPzo7XC1cbl0qWyAsXC8hLj86O1wtXSopfFxuL2csYz0vXihccykrL2csZj0vKFxzKSskL2c7ci5wcm90b3R5cGUuYnVpbGRJbmxpbmVzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbih0KXtyZXR1cm4gTWF0aC5tYXgoMCx0LndpZHRoLXQubGVhZGluZ0N1dC10LnRyYWlsaW5nQ3V0KX12YXIgcixpPXUodGhpcy5mb250UHJvdmlkZXIsdCxlKSxvPTAsYT0wO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7bz1NYXRoLm1heChvLHQud2lkdGgtdC5sZWFkaW5nQ3V0LXQudHJhaWxpbmdDdXQpLHJ8fChyPXt3aWR0aDowLGxlYWRpbmdDdXQ6dC5sZWFkaW5nQ3V0LHRyYWlsaW5nQ3V0OjB9KSxyLndpZHRoKz10LndpZHRoLHIudHJhaWxpbmdDdXQ9dC50cmFpbGluZ0N1dCxhPU1hdGgubWF4KGEsbihyKSksdC5saW5lRW5kJiYocj1udWxsKX0pLHtpdGVtczppLG1pbldpZHRoOm8sbWF4V2lkdGg6YX19LHIucHJvdG90eXBlLnNpemVPZlN0cmluZz1mdW5jdGlvbih0LGUpe3Q9dC5yZXBsYWNlKCIJIiwiICAgICIpO3ZhciBuPWgoe30sZSwiZm9udCIsIlJvYm90byIpLHI9aCh7fSxlLCJmb250U2l6ZSIsMTIpLGk9aCh7fSxlLCJib2xkIiwhMSksbz1oKHt9LGUsIml0YWxpY3MiLCExKSxhPWgoe30sZSwibGluZUhlaWdodCIsMSksdT10aGlzLmZvbnRQcm92aWRlci5wcm92aWRlRm9udChuLGksbyk7cmV0dXJue3dpZHRoOnUud2lkdGhPZlN0cmluZyhzKHQpLHIpLGhlaWdodDp1LmxpbmVIZWlnaHQocikqYSxmb250U2l6ZTpyLGxpbmVIZWlnaHQ6YSxhc2NlbmRlcjp1LmFzY2VuZGVyLzFlMypyLGRlY2VuZGVyOnUuZGVjZW5kZXIvMWUzKnJ9fTt2YXIgZD17IsSEIjoiQSIsIsSGIjoiQyIsIsSYIjoiRSIsIsWBIjoiTCIsIsWDIjoiTiIsIsOTIjoiTyIsIsWaIjoiUyIsIsW5IjoiWiIsIsW7IjoiWiIsIsSFIjoiYSIsIsSHIjoiYyIsIsSZIjoiZSIsIsWCIjoibCIsIsWEIjoibiIsIsOzIjoibyIsIsWbIjoicyIsIsW6IjoieiIsIsW8IjoieiJ9O3QuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlKXt0aGlzLmRlZmF1bHRTdHlsZT1lfHx7fSx0aGlzLnN0eWxlRGljdGlvbmFyeT10LHRoaXMuc3R5bGVPdmVycmlkZXM9W119ci5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgcih0aGlzLnN0eWxlRGljdGlvbmFyeSx0aGlzLmRlZmF1bHRTdHlsZSk7cmV0dXJuIHRoaXMuc3R5bGVPdmVycmlkZXMuZm9yRWFjaChmdW5jdGlvbihlKXt0LnN0eWxlT3ZlcnJpZGVzLnB1c2goZSl9KSx0fSxyLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQpe3RoaXMuc3R5bGVPdmVycmlkZXMucHVzaCh0KX0sci5wcm90b3R5cGUucG9wPWZ1bmN0aW9uKHQpe2Zvcih0PXR8fDE7dC0tPjA7KXRoaXMuc3R5bGVPdmVycmlkZXMucG9wKCl9LHIucHJvdG90eXBlLmF1dG9wdXNoPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIFN0cmluZylyZXR1cm4gMDt2YXIgZT1bXTt0LnN0eWxlJiYoZT10LnN0eWxlIGluc3RhbmNlb2YgQXJyYXk/dC5zdHlsZTpbdC5zdHlsZV0pO2Zvcih2YXIgbj0wLHI9ZS5sZW5ndGg7cj5uO24rKyl0aGlzLnB1c2goZVtuXSk7dmFyIGk9e30sbz0hMTtyZXR1cm5bImZvbnQiLCJmb250U2l6ZSIsImJvbGQiLCJpdGFsaWNzIiwiYWxpZ25tZW50IiwiY29sb3IiLCJjb2x1bW5HYXAiLCJmaWxsQ29sb3IiLCJkZWNvcmF0aW9uIiwiZGVjb3JhdGlvblN0eWxlIiwiZGVjb3JhdGlvbkNvbG9yIiwiYmFja2dyb3VuZCIsImxpbmVIZWlnaHQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMCE9PXRbZV0mJm51bGwhPT10W2VdJiYoaVtlXT10W2VdLG89ITApfSksbyYmdGhpcy5wdXNoKGkpLGUubGVuZ3RoKyhvPzE6MCl9LHIucHJvdG90eXBlLmF1dG89ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLmF1dG9wdXNoKHQpLHI9ZSgpO3JldHVybiBuPjAmJnRoaXMucG9wKG4pLHJ9LHIucHJvdG90eXBlLmdldFByb3BlcnR5PWZ1bmN0aW9uKHQpe2lmKHRoaXMuc3R5bGVPdmVycmlkZXMpZm9yKHZhciBlPXRoaXMuc3R5bGVPdmVycmlkZXMubGVuZ3RoLTE7ZT49MDtlLS0pe3ZhciBuPXRoaXMuc3R5bGVPdmVycmlkZXNbZV07aWYoInN0cmluZyI9PXR5cGVvZiBufHxuIGluc3RhbmNlb2YgU3RyaW5nKXt2YXIgcj10aGlzLnN0eWxlRGljdGlvbmFyeVtuXTtpZihyJiZudWxsIT09clt0XSYmdm9pZCAwIT09clt0XSlyZXR1cm4gclt0XX1lbHNlIGlmKHZvaWQgMCE9PW5bdF0mJm51bGwhPT1uW3RdKXJldHVybiBuW3RdfXJldHVybiB0aGlzLmRlZmF1bHRTdHlsZSYmdGhpcy5kZWZhdWx0U3R5bGVbdF19LHQuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbigpe3ZhciByLGksbyxhLHMsaCx1PXt9Lmhhc093blByb3BlcnR5LGw9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWZvcih2YXIgciBpbiBlKXUuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IG4sdC5fX3N1cGVyX189ZS5wcm90b3R5cGUsdH07aD1uKDQ2KSxzPW4oMTApLGk9bigzMiksYT1uKDEyKSxvPW4oMzgpLHI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gcih0KXt2YXIgZSxuLGksbztpZih0aGlzLm9wdGlvbnM9bnVsbCE9dD90Ont9LHIuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLnZlcnNpb249MS4zLHRoaXMuY29tcHJlc3M9bnVsbCE9KGk9dGhpcy5vcHRpb25zLmNvbXByZXNzKT9pOiEwLHRoaXMuX3BhZ2VCdWZmZXI9W10sdGhpcy5fcGFnZUJ1ZmZlclN0YXJ0PTAsdGhpcy5fb2Zmc2V0cz1bXSx0aGlzLl93YWl0aW5nPTAsdGhpcy5fZW5kZWQ9ITEsdGhpcy5fb2Zmc2V0PTAsdGhpcy5fcm9vdD10aGlzLnJlZih7VHlwZToiQ2F0YWxvZyIsUGFnZXM6dGhpcy5yZWYoe1R5cGU6IlBhZ2VzIixDb3VudDowLEtpZHM6W119KX0pLHRoaXMucGFnZT1udWxsLHRoaXMuaW5pdENvbG9yKCksdGhpcy5pbml0VmVjdG9yKCksdGhpcy5pbml0Rm9udHMoKSx0aGlzLmluaXRUZXh0KCksdGhpcy5pbml0SW1hZ2VzKCksdGhpcy5pbmZvPXtQcm9kdWNlcjoiUERGS2l0IixDcmVhdG9yOiJQREZLaXQiLENyZWF0aW9uRGF0ZTpuZXcgRGF0ZX0sdGhpcy5vcHRpb25zLmluZm8pe289dGhpcy5vcHRpb25zLmluZm87Zm9yKGUgaW4gbyluPW9bZV0sdGhpcy5pbmZvW2VdPW59dGhpcy5fd3JpdGUoIiVQREYtIit0aGlzLnZlcnNpb24pLHRoaXMuX3dyaXRlKCIlw7/Dv8O/w78iKSx0aGlzLmFkZFBhZ2UoKX12YXIgaDtyZXR1cm4gbChyLHQpLGg9ZnVuY3Rpb24odCl7dmFyIGUsbixpO2k9W107Zm9yKG4gaW4gdCllPXRbbl0saS5wdXNoKHIucHJvdG90eXBlW25dPWUpO3JldHVybiBpfSxoKG4oNDEpKSxoKG4oMzkpKSxoKG4oNDQpKSxoKG4oNDApKSxoKG4oNDIpKSxoKG4oNDMpKSxyLnByb3RvdHlwZS5hZGRQYWdlPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT10JiYodD10aGlzLm9wdGlvbnMpLHRoaXMub3B0aW9ucy5idWZmZXJQYWdlc3x8dGhpcy5mbHVzaFBhZ2VzKCksdGhpcy5wYWdlPW5ldyBvKHRoaXMsdCksdGhpcy5fcGFnZUJ1ZmZlci5wdXNoKHRoaXMucGFnZSksZT10aGlzLl9yb290LmRhdGEuUGFnZXMuZGF0YSxlLktpZHMucHVzaCh0aGlzLnBhZ2UuZGljdGlvbmFyeSksZS5Db3VudCsrLHRoaXMueD10aGlzLnBhZ2UubWFyZ2lucy5sZWZ0LHRoaXMueT10aGlzLnBhZ2UubWFyZ2lucy50b3AsdGhpcy5fY3RtPVsxLDAsMCwxLDAsMF0sdGhpcy50cmFuc2Zvcm0oMSwwLDAsLTEsMCx0aGlzLnBhZ2UuaGVpZ2h0KSx0aGlzfSxyLnByb3RvdHlwZS5idWZmZXJlZFBhZ2VSYW5nZT1mdW5jdGlvbigpe3JldHVybntzdGFydDp0aGlzLl9wYWdlQnVmZmVyU3RhcnQsY291bnQ6dGhpcy5fcGFnZUJ1ZmZlci5sZW5ndGh9fSxyLnByb3RvdHlwZS5zd2l0Y2hUb1BhZ2U9ZnVuY3Rpb24odCl7dmFyIGU7aWYoIShlPXRoaXMuX3BhZ2VCdWZmZXJbdC10aGlzLl9wYWdlQnVmZmVyU3RhcnRdKSl0aHJvdyBuZXcgRXJyb3IoInN3aXRjaFRvUGFnZSgiK3QrIikgb3V0IG9mIGJvdW5kcywgY3VycmVudCBidWZmZXIgY292ZXJzIHBhZ2VzICIrdGhpcy5fcGFnZUJ1ZmZlclN0YXJ0KyIgdG8gIisodGhpcy5fcGFnZUJ1ZmZlclN0YXJ0K3RoaXMuX3BhZ2VCdWZmZXIubGVuZ3RoLTEpKTtyZXR1cm4gdGhpcy5wYWdlPWV9LHIucHJvdG90eXBlLmZsdXNoUGFnZXM9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scjtmb3IoZT10aGlzLl9wYWdlQnVmZmVyLHRoaXMuX3BhZ2VCdWZmZXI9W10sdGhpcy5fcGFnZUJ1ZmZlclN0YXJ0Kz1lLmxlbmd0aCxuPTAscj1lLmxlbmd0aDtyPm47bisrKXQ9ZVtuXSx0LmVuZCgpfSxyLnByb3RvdHlwZS5yZWY9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGU9bmV3IGEodGhpcyx0aGlzLl9vZmZzZXRzLmxlbmd0aCsxLHQpLHRoaXMuX29mZnNldHMucHVzaChudWxsKSx0aGlzLl93YWl0aW5nKyssZX0sci5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oKXt9LHIucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0KXtyZXR1cm4gZS5pc0J1ZmZlcih0KXx8KHQ9bmV3IGUodCsiXG4iLCJiaW5hcnkiKSksdGhpcy5wdXNoKHQpLHRoaXMuX29mZnNldCs9dC5sZW5ndGh9LHIucHJvdG90eXBlLmFkZENvbnRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGFnZS53cml0ZSh0KSx0aGlzfSxyLnByb3RvdHlwZS5fcmVmRW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9vZmZzZXRzW3QuaWQtMV09dC5vZmZzZXQsMD09PS0tdGhpcy5fd2FpdGluZyYmdGhpcy5fZW5kZWQ/KHRoaXMuX2ZpbmFsaXplKCksdGhpcy5fZW5kZWQ9ITEpOnZvaWQgMH0sci5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbj1uZXcgRXJyb3IoIlBERkRvY3VtZW50I3dyaXRlIGlzIGRlcHJlY2F0ZWQsIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBQREZLaXQuIFBsZWFzZSBwaXBlIHRoZSBkb2N1bWVudCBpbnRvIGEgTm9kZSBzdHJlYW0uIiksdGhpcy5waXBlKHMuY3JlYXRlV3JpdGVTdHJlYW0odCkpLHRoaXMuZW5kKCksdGhpcy5vbmNlKCJlbmQiLGUpfSxyLnByb3RvdHlwZS5vdXRwdXQ9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJQREZEb2N1bWVudCNvdXRwdXQgaXMgZGVwcmVjYXRlZCwgYW5kIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBQREZLaXQuIFBsZWFzZSBwaXBlIHRoZSBkb2N1bWVudCBpbnRvIGEgTm9kZSBzdHJlYW0uIil9LHIucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe3ZhciB0LGUsbixyLGksbzt0aGlzLmZsdXNoUGFnZXMoKSx0aGlzLl9pbmZvPXRoaXMucmVmKCksaT10aGlzLmluZm87Zm9yKGUgaW4gaSlyPWlbZV0sInN0cmluZyI9PXR5cGVvZiByJiYocj1uZXcgU3RyaW5nKHIpKSx0aGlzLl9pbmZvLmRhdGFbZV09cjt0aGlzLl9pbmZvLmVuZCgpLG89dGhpcy5fZm9udEZhbWlsaWVzO2ZvcihuIGluIG8pdD1vW25dLHQuZW1iZWQoKTtyZXR1cm4gdGhpcy5fcm9vdC5lbmQoKSx0aGlzLl9yb290LmRhdGEuUGFnZXMuZW5kKCksMD09PXRoaXMuX3dhaXRpbmc/dGhpcy5fZmluYWxpemUoKTp0aGlzLl9lbmRlZD0hMH0sci5wcm90b3R5cGUuX2ZpbmFsaXplPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixvLGE7Zm9yKG49dGhpcy5fb2Zmc2V0LHRoaXMuX3dyaXRlKCJ4cmVmIiksdGhpcy5fd3JpdGUoIjAgIisodGhpcy5fb2Zmc2V0cy5sZW5ndGgrMSkpLHRoaXMuX3dyaXRlKCIwMDAwMDAwMDAwIDY1NTM1IGYgIiksYT10aGlzLl9vZmZzZXRzLHI9MCxvPWEubGVuZ3RoO28+cjtyKyspZT1hW3JdLGU9KCIwMDAwMDAwMDAwIitlKS5zbGljZSgtMTApLHRoaXMuX3dyaXRlKGUrIiAwMDAwMCBuICIpO3JldHVybiB0aGlzLl93cml0ZSgidHJhaWxlciIpLHRoaXMuX3dyaXRlKGkuY29udmVydCh7U2l6ZTp0aGlzLl9vZmZzZXRzLmxlbmd0aCsxLFJvb3Q6dGhpcy5fcm9vdCxJbmZvOnRoaXMuX2luZm99KSksdGhpcy5fd3JpdGUoInN0YXJ0eHJlZiIpLHRoaXMuX3dyaXRlKCIiK24pLHRoaXMuX3dyaXRlKCIlJUVPRiIpLHRoaXMucHVzaChudWxsKX0sci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCBQREZEb2N1bWVudF0ifSxyfShoLlJlYWRhYmxlKSx0LmV4cG9ydHM9cn0pLmNhbGwodGhpcyl9KS5jYWxsKGUsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7ZS5yZWFkPWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzPTgqaS1yLTEsaD0oMTw8cyktMSx1PWg+PjEsbD0tNyxjPW4/aS0xOjAsZj1uPy0xOjEsZD10W2UrY107Zm9yKGMrPWYsbz1kJigxPDwtbCktMSxkPj49LWwsbCs9cztsPjA7bz0yNTYqbyt0W2UrY10sYys9ZixsLT04KTtmb3IoYT1vJigxPDwtbCktMSxvPj49LWwsbCs9cjtsPjA7YT0yNTYqYSt0W2UrY10sYys9ZixsLT04KTtpZigwPT09bylvPTEtdTtlbHNle2lmKG89PT1oKXJldHVybiBhPzAvMDooZD8tMToxKSooMS8wKTthKz1NYXRoLnBvdygyLHIpLG8tPXV9cmV0dXJuKGQ/LTE6MSkqYSpNYXRoLnBvdygyLG8tcil9LGUud3JpdGU9ZnVuY3Rpb24odCxlLG4scixpLG8pe3ZhciBhLHMsaCx1PTgqby1pLTEsbD0oMTw8dSktMSxjPWw+PjEsZj0yMz09PWk/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLGQ9cj8wOm8tMSxwPXI/MTotMSxnPTA+ZXx8MD09PWUmJjA+MS9lPzE6MDtmb3IoZT1NYXRoLmFicyhlKSxpc05hTihlKXx8ZT09PTEvMD8ocz1pc05hTihlKT8xOjAsYT1sKTooYT1NYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4yKSxlKihoPU1hdGgucG93KDIsLWEpKTwxJiYoYS0tLGgqPTIpLGUrPWErYz49MT9mL2g6ZipNYXRoLnBvdygyLDEtYyksZSpoPj0yJiYoYSsrLGgvPTIpLGErYz49bD8ocz0wLGE9bCk6YStjPj0xPyhzPShlKmgtMSkqTWF0aC5wb3coMixpKSxhKz1jKToocz1lKk1hdGgucG93KDIsYy0xKSpNYXRoLnBvdygyLGkpLGE9MCkpO2k+PTg7dFtuK2RdPTI1NSZzLGQrPXAscy89MjU2LGktPTgpO2ZvcihhPWE8PGl8cyx1Kz1pO3U+MDt0W24rZF09MjU1JmEsZCs9cCxhLz0yNTYsdS09OCk7dFtuK2QtcF18PTEyOCpnfX0sZnVuY3Rpb24odCxlLG4pe3ZhciByPUFycmF5LmlzQXJyYXksaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3QuZXhwb3J0cz1yfHxmdW5jdGlvbih0KXtyZXR1cm4hIXQmJiJbb2JqZWN0IEFycmF5XSI9PWkuY2FsbCh0KX19LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7IWZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQpe3ZhciBlPXQuY2hhckNvZGVBdCgwKTtyZXR1cm4gZT09PWF8fGU9PT1jPzYyOmU9PT1zfHxlPT09Zj82MzpoPmU/LTE6aCsxMD5lP2UtaCsyNisyNjpsKzI2PmU/ZS1sOnUrMjY+ZT9lLXUrMjY6dm9pZCAwfWZ1bmN0aW9uIG4odCl7ZnVuY3Rpb24gbih0KXt1W2MrK109dH12YXIgcixpLGEscyxoLHU7aWYodC5sZW5ndGglND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBsPXQubGVuZ3RoO2g9Ij0iPT09dC5jaGFyQXQobC0yKT8yOiI9Ij09PXQuY2hhckF0KGwtMSk/MTowLHU9bmV3IG8oMyp0Lmxlbmd0aC80LWgpLGE9aD4wP3QubGVuZ3RoLTQ6dC5sZW5ndGg7dmFyIGM9MDtmb3Iocj0wLGk9MDthPnI7cis9NCxpKz0zKXM9ZSh0LmNoYXJBdChyKSk8PDE4fGUodC5jaGFyQXQocisxKSk8PDEyfGUodC5jaGFyQXQocisyKSk8PDZ8ZSh0LmNoYXJBdChyKzMpKSxuKCgxNjcxMTY4MCZzKT4+MTYpLG4oKDY1MjgwJnMpPj44KSxuKDI1NSZzKTtyZXR1cm4gMj09PWg/KHM9ZSh0LmNoYXJBdChyKSk8PDJ8ZSh0LmNoYXJBdChyKzEpKT4+NCxuKDI1NSZzKSk6MT09PWgmJihzPWUodC5jaGFyQXQocikpPDwxMHxlKHQuY2hhckF0KHIrMSkpPDw0fGUodC5jaGFyQXQocisyKSk+PjIsbihzPj44JjI1NSksbigyNTUmcykpLHV9ZnVuY3Rpb24gaSh0KXtmdW5jdGlvbiBlKHQpe3JldHVybiByLmNoYXJBdCh0KX1mdW5jdGlvbiBuKHQpe3JldHVybiBlKHQ+PjE4JjYzKStlKHQ+PjEyJjYzKStlKHQ+PjYmNjMpK2UoNjMmdCl9dmFyIGksbyxhLHM9dC5sZW5ndGglMyxoPSIiO2ZvcihpPTAsYT10Lmxlbmd0aC1zO2E+aTtpKz0zKW89KHRbaV08PDE2KSsodFtpKzFdPDw4KSt0W2krMl0saCs9bihvKTtzd2l0Y2gocyl7Y2FzZSAxOm89dFt0Lmxlbmd0aC0xXSxoKz1lKG8+PjIpLGgrPWUobzw8NCY2MyksaCs9Ij09IjticmVhaztjYXNlIDI6bz0odFt0Lmxlbmd0aC0yXTw8OCkrdFt0Lmxlbmd0aC0xXSxoKz1lKG8+PjEwKSxoKz1lKG8+PjQmNjMpLGgrPWUobzw8MiY2MyksaCs9Ij0ifXJldHVybiBofXZhciBvPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LGE9IisiLmNoYXJDb2RlQXQoMCkscz0iLyIuY2hhckNvZGVBdCgwKSxoPSIwIi5jaGFyQ29kZUF0KDApLHU9ImEiLmNoYXJDb2RlQXQoMCksbD0iQSIuY2hhckNvZGVBdCgwKSxjPSItIi5jaGFyQ29kZUF0KDApLGY9Il8iLmNoYXJDb2RlQXQoMCk7dC50b0J5dGVBcnJheT1uLHQuZnJvbUJ5dGVBcnJheT1pfShlKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXt2YXIgcixpO3I9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXZhciBuLHIsbyxhO3JldHVybiBvPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKEFycmF5KGUrMSkuam9pbigiMCIpK3QpLnNsaWNlKC1lKX0scj0vW1xuXHJcdFxiXGZcKFwpXFxdL2csbj17IlxuIjoiXFxuIiwiXHIiOiJcXHIiLCIJIjoiXFx0IiwiXGIiOiJcXGIiLCJcZiI6IlxcZiIsIlxcIjoiXFxcXCIsIigiOiJcXCgiLCIpIjoiXFwpIn0sYT1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvO2lmKHI9dC5sZW5ndGgsMSZyKXRocm93IG5ldyBFcnJvcigiQnVmZmVyIGxlbmd0aCBtdXN0IGJlIGV2ZW4iKTtmb3Iobj1pPTAsbz1yLTE7bz5pO249aSs9MillPXRbbl0sdFtuXT10W24rMV0sdFtuKzFdPWU7cmV0dXJuIHR9LHQuY29udmVydD1mdW5jdGlvbihzKXt2YXIgaCx1LGwsYyxmLGQscCxnLHYsbTtpZigic3RyaW5nIj09dHlwZW9mIHMpcmV0dXJuIi8iK3M7aWYocyBpbnN0YW5jZW9mIFN0cmluZyl7Zm9yKHA9cy5yZXBsYWNlKHIsZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19KSxsPSExLHU9dj0wLG09cC5sZW5ndGg7bT52O3U9dis9MSlpZihwLmNoYXJDb2RlQXQodSk+MTI3KXtsPSEwO2JyZWFrfXJldHVybiBsJiYocD1hKG5ldyBlKCJcdWZlZmYiK3AsInV0ZjE2bGUiKSkudG9TdHJpbmcoImJpbmFyeSIpKSwiKCIrcCsiKSJ9aWYoZS5pc0J1ZmZlcihzKSlyZXR1cm4iPCIrcy50b1N0cmluZygiaGV4IikrIj4iO2lmKHMgaW5zdGFuY2VvZiBpKXJldHVybiBzLnRvU3RyaW5nKCk7aWYocyBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIihEOiIrbyhzLmdldFVUQ0Z1bGxZZWFyKCksNCkrbyhzLmdldFVUQ01vbnRoKCksMikrbyhzLmdldFVUQ0RhdGUoKSwyKStvKHMuZ2V0VVRDSG91cnMoKSwyKStvKHMuZ2V0VVRDTWludXRlcygpLDIpK28ocy5nZXRVVENTZWNvbmRzKCksMikrIlopIjtpZihBcnJheS5pc0FycmF5KHMpKXJldHVybiBjPWZ1bmN0aW9uKCl7dmFyIGUsbixyO2ZvcihyPVtdLGU9MCxuPXMubGVuZ3RoO24+ZTtlKyspaD1zW2VdLHIucHVzaCh0LmNvbnZlcnQoaCkpO3JldHVybiByfSgpLmpvaW4oIiAiKSwiWyIrYysiXSI7aWYoIltvYmplY3QgT2JqZWN0XSI9PT17fS50b1N0cmluZy5jYWxsKHMpKXtkPVsiPDwiXTtmb3IoZiBpbiBzKWc9c1tmXSxkLnB1c2goIi8iK2YrIiAiK3QuY29udmVydChnKSk7cmV0dXJuIGQucHVzaCgiPj4iKSxkLmpvaW4oIlxuIil9cmV0dXJuIiIrc30sdH0oKSx0LmV4cG9ydHM9cixpPW4oMTIpfSkuY2FsbCh0aGlzKX0pLmNhbGwoZSxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUpe3ZhciBuPXtudW1lcmljOmgsYWxwaGFudW1lcmljOnUsb2N0ZXQ6bH0scj17TDpnLE06dixROm0sSDp5fTtlPWV8fHt9O3ZhciBpPWUudmVyc2lvbnx8LTEsbz1yWyhlLmVjY0xldmVsfHwiTCIpLnRvVXBwZXJDYXNlKCldLGE9ZS5tb2RlP25bZS5tb2RlLnRvTG93ZXJDYXNlKCldOi0xLHM9Im1hc2siaW4gZT9lLm1hc2s6LTE7aWYoMD5hKWE9InN0cmluZyI9PXR5cGVvZiB0P3QubWF0Y2goZik/aDp0Lm1hdGNoKHApP3U6bDpsO2Vsc2UgaWYoYSE9aCYmYSE9dSYmYSE9bCl0aHJvdyJpbnZhbGlkIG9yIHVuc3VwcG9ydGVkIG1vZGUiO2lmKHQ9UChhLHQpLG51bGw9PT10KXRocm93ImludmFsaWQgZGF0YSBmb3JtYXQiO2lmKDA+b3x8bz4zKXRocm93ImludmFsaWQgRUNDIGxldmVsIjtpZigwPmkpe2ZvcihpPTE7NDA+PWkmJiEodC5sZW5ndGg8PVUoaSxhLG8pKTsrK2kpO2lmKGk+NDApdGhyb3cidG9vIGxhcmdlIGRhdGEgZm9yIHRoZSBRciBmb3JtYXQifWVsc2UgaWYoMT5pfHxpPjQwKXRocm93ImludmFsaWQgUXIgdmVyc2lvbiEgc2hvdWxkIGJlIGJldHdlZW4gMSBhbmQgNDAiO2lmKC0xIT1zJiYoMD5zfHxzPjgpKXRocm93ImludmFsaWQgbWFzayI7cmV0dXJuIFkodCxpLGEsbyxzKX1mdW5jdGlvbiBpKHQsZSl7dmFyIG49W10saT10LmJhY2tncm91bmR8fCIjZmZmIixvPXQuZm9yZWdyb3VuZHx8IiMwMDAiLGE9cih0LGUpLHM9YS5sZW5ndGgsaD1NYXRoLmZsb29yKGUuZml0P2UuZml0L3M6NSksdT1zKmg7bi5wdXNoKHt0eXBlOiJyZWN0Iix4OjAseTowLHc6dSxoOnUsbGluZVdpZHRoOjAsY29sb3I6aX0pO2Zvcih2YXIgbD0wO3M+bDsrK2wpZm9yKHZhciBjPTA7cz5jOysrYylhW2xdW2NdJiZuLnB1c2goe3R5cGU6InJlY3QiLHg6aCpsLHk6aCpjLHc6aCxoOmgsbGluZVdpZHRoOjAsY29sb3I6b30pO3JldHVybntjYW52YXM6bixzaXplOnV9fWZ1bmN0aW9uIG8odCl7dmFyIGU9aSh0LnFyLHQpO3JldHVybiB0Ll9jYW52YXM9ZS5jYW52YXMsdC5fd2lkdGg9dC5faGVpZ2h0PXQuX21pbldpZHRoPXQuX21heFdpZHRoPXQuX21pbkhlaWdodD10Ll9tYXhIZWlnaHQ9ZS5zaXplLHR9Zm9yKHZhciBhPVtudWxsLFtbMTAsNywxNywxM10sWzEsMSwxLDFdLFtdXSxbWzE2LDEwLDI4LDIyXSxbMSwxLDEsMV0sWzQsMTZdXSxbWzI2LDE1LDIyLDE4XSxbMSwxLDIsMl0sWzQsMjBdXSxbWzE4LDIwLDE2LDI2XSxbMiwxLDQsMl0sWzQsMjRdXSxbWzI0LDI2LDIyLDE4XSxbMiwxLDQsNF0sWzQsMjhdXSxbWzE2LDE4LDI4LDI0XSxbNCwyLDQsNF0sWzQsMzJdXSxbWzE4LDIwLDI2LDE4XSxbNCwyLDUsNl0sWzQsMjAsMzZdXSxbWzIyLDI0LDI2LDIyXSxbNCwyLDYsNl0sWzQsMjIsNDBdXSxbWzIyLDMwLDI0LDIwXSxbNSwyLDgsOF0sWzQsMjQsNDRdXSxbWzI2LDE4LDI4LDI0XSxbNSw0LDgsOF0sWzQsMjYsNDhdXSxbWzMwLDIwLDI0LDI4XSxbNSw0LDExLDhdLFs0LDI4LDUyXV0sW1syMiwyNCwyOCwyNl0sWzgsNCwxMSwxMF0sWzQsMzAsNTZdXSxbWzIyLDI2LDIyLDI0XSxbOSw0LDE2LDEyXSxbNCwzMiw2MF1dLFtbMjQsMzAsMjQsMjBdLFs5LDQsMTYsMTZdLFs0LDI0LDQ0LDY0XV0sW1syNCwyMiwyNCwzMF0sWzEwLDYsMTgsMTJdLFs0LDI0LDQ2LDY4XV0sW1syOCwyNCwzMCwyNF0sWzEwLDYsMTYsMTddLFs0LDI0LDQ4LDcyXV0sW1syOCwyOCwyOCwyOF0sWzExLDYsMTksMTZdLFs0LDI4LDUyLDc2XV0sW1syNiwzMCwyOCwyOF0sWzEzLDYsMjEsMThdLFs0LDI4LDU0LDgwXV0sW1syNiwyOCwyNiwyNl0sWzE0LDcsMjUsMjFdLFs0LDI4LDU2LDg0XV0sW1syNiwyOCwyOCwzMF0sWzE2LDgsMjUsMjBdLFs0LDMyLDYwLDg4XV0sW1syNiwyOCwzMCwyOF0sWzE3LDgsMjUsMjNdLFs0LDI2LDQ4LDcwLDkyXV0sW1syOCwyOCwyNCwzMF0sWzE3LDksMzQsMjNdLFs0LDI0LDQ4LDcyLDk2XV0sW1syOCwzMCwzMCwzMF0sWzE4LDksMzAsMjVdLFs0LDI4LDUyLDc2LDEwMF1dLFtbMjgsMzAsMzAsMzBdLFsyMCwxMCwzMiwyN10sWzQsMjYsNTIsNzgsMTA0XV0sW1syOCwyNiwzMCwzMF0sWzIxLDEyLDM1LDI5XSxbNCwzMCw1Niw4MiwxMDhdXSxbWzI4LDI4LDMwLDI4XSxbMjMsMTIsMzcsMzRdLFs0LDI4LDU2LDg0LDExMl1dLFtbMjgsMzAsMzAsMzBdLFsyNSwxMiw0MCwzNF0sWzQsMzIsNjAsODgsMTE2XV0sW1syOCwzMCwzMCwzMF0sWzI2LDEzLDQyLDM1XSxbNCwyNCw0OCw3Miw5NiwxMjBdXSxbWzI4LDMwLDMwLDMwXSxbMjgsMTQsNDUsMzhdLFs0LDI4LDUyLDc2LDEwMCwxMjRdXSxbWzI4LDMwLDMwLDMwXSxbMjksMTUsNDgsNDBdLFs0LDI0LDUwLDc2LDEwMiwxMjhdXSxbWzI4LDMwLDMwLDMwXSxbMzEsMTYsNTEsNDNdLFs0LDI4LDU0LDgwLDEwNiwxMzJdXSxbWzI4LDMwLDMwLDMwXSxbMzMsMTcsNTQsNDVdLFs0LDMyLDU4LDg0LDExMCwxMzZdXSxbWzI4LDMwLDMwLDMwXSxbMzUsMTgsNTcsNDhdLFs0LDI4LDU2LDg0LDExMiwxNDBdXSxbWzI4LDMwLDMwLDMwXSxbMzcsMTksNjAsNTFdLFs0LDMyLDYwLDg4LDExNiwxNDRdXSxbWzI4LDMwLDMwLDMwXSxbMzgsMTksNjMsNTNdLFs0LDI4LDUyLDc2LDEwMCwxMjQsMTQ4XV0sW1syOCwzMCwzMCwzMF0sWzQwLDIwLDY2LDU2XSxbNCwyMiw0OCw3NCwxMDAsMTI2LDE1Ml1dLFtbMjgsMzAsMzAsMzBdLFs0MywyMSw3MCw1OV0sWzQsMjYsNTIsNzgsMTA0LDEzMCwxNTZdXSxbWzI4LDMwLDMwLDMwXSxbNDUsMjIsNzQsNjJdLFs0LDMwLDU2LDgyLDEwOCwxMzQsMTYwXV0sW1syOCwzMCwzMCwzMF0sWzQ3LDI0LDc3LDY1XSxbNCwyNCw1Miw4MCwxMDgsMTM2LDE2NF1dLFtbMjgsMzAsMzAsMzBdLFs0OSwyNSw4MSw2OF0sWzQsMjgsNTYsODQsMTEyLDE0MCwxNjhdXV0scz0wLGg9MSx1PTIsbD00LGM9OCxmPS9eXGQqJC8sZD0vXltBLVphLXowLTkgJCUqK1wtLi86XSokLyxwPS9eW0EtWjAtOSAkJSorXC0uLzpdKiQvLGc9MSx2PTAsbT0zLHk9Mix3PVtdLF89Wy0xXSxiPTAseD0xOzI1NT5iOysrYil3LnB1c2goeCksX1t4XT1iLHg9Mip4Xih4Pj0xMjg/Mjg1OjApO2Zvcih2YXIgUz1bW11dLGI9MDszMD5iOysrYil7Zm9yKHZhciBrPVNbYl0sRT1bXSxDPTA7Yj49QzsrK0Mpe3ZhciBJPWI+Qz93W2tbQ11dOjAsQT13WyhiKyhrW0MtMV18fDApKSUyNTVdO0UucHVzaChfW0leQV0pfVMucHVzaChFKX1mb3IodmFyIEw9e30sYj0wOzQ1PmI7KytiKUxbIjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiAkJSorLS4vOiIuY2hhckF0KGIpXT1iO3ZhciBSPVtmdW5jdGlvbih0LGUpe3JldHVybih0K2UpJTI9PT0wfSxmdW5jdGlvbih0LGUpe3JldHVybiB0JTI9PT0wfSxmdW5jdGlvbih0LGUpe3JldHVybiBlJTM9PT0wfSxmdW5jdGlvbih0LGUpe3JldHVybih0K2UpJTM9PT0wfSxmdW5jdGlvbih0LGUpe3JldHVybigodC8yfDApKyhlLzN8MCkpJTI9PT0wfSxmdW5jdGlvbih0LGUpe3JldHVybiB0KmUlMit0KmUlMz09PTB9LGZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQqZSUyK3QqZSUzKSUyPT09MH0sZnVuY3Rpb24odCxlKXtyZXR1cm4oKHQrZSklMit0KmUlMyklMj09PTB9XSxCPWZ1bmN0aW9uKHQpe3JldHVybiB0PjZ9LFQ9ZnVuY3Rpb24odCl7cmV0dXJuIDQqdCsxN30sTT1mdW5jdGlvbih0KXt2YXIgZT1hW3RdLG49MTYqdCp0KzEyOCp0KzY0O3JldHVybiBCKHQpJiYobi09MzYpLGVbMl0ubGVuZ3RoJiYobi09MjUqZVsyXS5sZW5ndGgqZVsyXS5sZW5ndGgtMTAqZVsyXS5sZW5ndGgtNTUpLG59LE89ZnVuY3Rpb24odCxlKXt2YXIgbj0tOCZNKHQpLHI9YVt0XTtyZXR1cm4gbi09OCpyWzBdW2VdKnJbMV1bZV19LEQ9ZnVuY3Rpb24odCxlKXtzd2l0Y2goZSl7Y2FzZSBoOnJldHVybiAxMD50PzEwOjI3PnQ/MTI6MTQ7Y2FzZSB1OnJldHVybiAxMD50Pzk6Mjc+dD8xMToxMztjYXNlIGw6cmV0dXJuIDEwPnQ/ODoxNjtjYXNlIGM6cmV0dXJuIDEwPnQ/ODoyNz50PzEwOjEyfX0sVT1mdW5jdGlvbih0LGUsbil7dmFyIHI9Tyh0LG4pLTQtRCh0LGUpO3N3aXRjaChlKXtjYXNlIGg6cmV0dXJuIDMqKHIvMTB8MCkrKDQ+ciUxMD8wOjc+ciUxMD8xOjIpO2Nhc2UgdTpyZXR1cm4gMiooci8xMXwwKSsoNj5yJTExPzA6MSk7Y2FzZSBsOnJldHVybiByLzh8MDtjYXNlIGM6cmV0dXJuIHIvMTN8MH19LFA9ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSBoOnJldHVybiBlLm1hdGNoKGYpP2U6bnVsbDtjYXNlIHU6cmV0dXJuIGUubWF0Y2goZCk/ZS50b1VwcGVyQ2FzZSgpOm51bGw7Y2FzZSBsOmlmKCJzdHJpbmciPT10eXBlb2YgZSl7Zm9yKHZhciBuPVtdLHI9MDtyPGUubGVuZ3RoOysrcil7dmFyIGk9ZS5jaGFyQ29kZUF0KHIpOzEyOD5pP24ucHVzaChpKToyMDQ4Pmk/bi5wdXNoKDE5MnxpPj42LDEyOHw2MyZpKTo2NTUzNj5pP24ucHVzaCgyMjR8aT4+MTIsMTI4fGk+PjYmNjMsMTI4fDYzJmkpOm4ucHVzaCgyNDB8aT4+MTgsMTI4fGk+PjEyJjYzLDEyOHxpPj42JjYzLDEyOHw2MyZpKX1yZXR1cm4gbn1yZXR1cm4gZX19LEY9ZnVuY3Rpb24odCxlLG4scil7dmFyIGk9W10sbz0wLGE9OCxjPW4ubGVuZ3RoLGY9ZnVuY3Rpb24odCxlKXtpZihlPj1hKXtmb3IoaS5wdXNoKG98dD4+KGUtPWEpKTtlPj04OylpLnB1c2godD4+KGUtPTgpJjI1NSk7bz0wLGE9OH1lPjAmJihvfD0odCYoMTw8ZSktMSk8PChhLT1lKSl9LGQ9RCh0LGUpO3N3aXRjaChmKGUsNCksZihjLGQpLGUpe2Nhc2UgaDpmb3IodmFyIHA9MjtjPnA7cCs9MylmKHBhcnNlSW50KG4uc3Vic3RyaW5nKHAtMixwKzEpLDEwKSwxMCk7ZihwYXJzZUludChuLnN1YnN0cmluZyhwLTIpLDEwKSxbMCw0LDddW2MlM10pO2JyZWFrO2Nhc2UgdTpmb3IodmFyIHA9MTtjPnA7cCs9MilmKDQ1Kkxbbi5jaGFyQXQocC0xKV0rTFtuLmNoYXJBdChwKV0sMTEpO2MlMj09MSYmZihMW24uY2hhckF0KHAtMSldLDYpO2JyZWFrO2Nhc2UgbDpmb3IodmFyIHA9MDtjPnA7KytwKWYobltwXSw4KX1mb3IoZihzLDQpLDg+YSYmaS5wdXNoKG8pO2kubGVuZ3RoKzE8cjspaS5wdXNoKDIzNiwxNyk7cmV0dXJuIGkubGVuZ3RoPHImJmkucHVzaCgyMzYpLGl9LHo9ZnVuY3Rpb24odCxlKXtmb3IodmFyIG49dC5zbGljZSgwKSxyPXQubGVuZ3RoLGk9ZS5sZW5ndGgsbz0wO2k+bzsrK28pbi5wdXNoKDApO2Zvcih2YXIgbz0wO3I+bzspe3ZhciBhPV9bbltvKytdXTtpZihhPj0wKWZvcih2YXIgcz0wO2k+czsrK3MpbltvK3NdXj13WyhhK2Vbc10pJTI1NV19cmV0dXJuIG4uc2xpY2Uocil9LFc9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgcj1bXSxpPXQubGVuZ3RoL2V8MCxvPTAsYT1lLXQubGVuZ3RoJWUscz0wO2E+czsrK3Mpci5wdXNoKG8pLG8rPWk7Zm9yKHZhciBzPWE7ZT5zOysrcylyLnB1c2gobyksbys9aSsxO3IucHVzaChvKTtmb3IodmFyIGg9W10scz0wO2U+czsrK3MpaC5wdXNoKHoodC5zbGljZShyW3NdLHJbcysxXSksbikpO2Zvcih2YXIgdT1bXSxsPXQubGVuZ3RoL2V8MCxzPTA7bD5zOysrcylmb3IodmFyIGM9MDtlPmM7KytjKXUucHVzaCh0W3JbY10rc10pO2Zvcih2YXIgYz1hO2U+YzsrK2MpdS5wdXNoKHRbcltjKzFdLTFdKTtmb3IodmFyIHM9MDtzPG4ubGVuZ3RoOysrcylmb3IodmFyIGM9MDtlPmM7KytjKXUucHVzaChoW2NdW3NdKTtyZXR1cm4gdX0sTj1mdW5jdGlvbih0LGUsbixyKXtmb3IodmFyIGk9dDw8cixvPWUtMTtvPj0wOy0tbylpPj5yK28mMSYmKGlePW48PG8pO3JldHVybiB0PDxyfGl9LGo9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWFbdF0sbj1UKHQpLHI9W10saT1bXSxvPTA7bj5vOysrbylyLnB1c2goW10pLGkucHVzaChbXSk7dmFyIHM9ZnVuY3Rpb24odCxlLG4sbyxhKXtmb3IodmFyIHM9MDtuPnM7KytzKWZvcih2YXIgaD0wO28+aDsrK2gpclt0K3NdW2UraF09YVtzXT4+aCYxLGlbdCtzXVtlK2hdPTF9O3MoMCwwLDksOSxbMTI3LDY1LDkzLDkzLDkzLDY1LDM4MywwLDY0XSkscyhuLTgsMCw4LDksWzI1NiwxMjcsNjUsOTMsOTMsOTMsNjUsMTI3XSkscygwLG4tOCw5LDgsWzI1NCwxMzAsMTg2LDE4NiwxODYsMTMwLDI1NCwwLDBdKTtmb3IodmFyIG89OTtuLTg+bzsrK28pcls2XVtvXT1yW29dWzZdPTEmfm8saVs2XVtvXT1pW29dWzZdPTE7Zm9yKHZhciBoPWVbMl0sdT1oLmxlbmd0aCxvPTA7dT5vOysrbylmb3IodmFyIGw9MD09PW98fG89PT11LTE/MTowLGM9MD09PW8/dS0xOnUsZj1sO2M+ZjsrK2YpcyhoW29dLGhbZl0sNSw1LFszMSwxNywyMSwxNywzMV0pO2lmKEIodCkpZm9yKHZhciBkPU4odCw2LDc5NzMsMTIpLHA9MCxvPTA7Nj5vOysrbylmb3IodmFyIGY9MDszPmY7KytmKXJbb11bbi0xMStmXT1yW24tMTErZl1bb109ZD4+cCsrJjEsaVtvXVtuLTExK2ZdPWlbbi0xMStmXVtvXT0xO3JldHVybnttYXRyaXg6cixyZXNlcnZlZDppfX0sSD1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPXQubGVuZ3RoLGk9MCxvPS0xLGE9ci0xO2E+PTA7YS09Mil7Nj09YSYmLS1hO2Zvcih2YXIgcz0wPm8/ci0xOjAsaD0wO3I+aDsrK2gpe2Zvcih2YXIgdT1hO3U+YS0yOy0tdSllW3NdW3VdfHwodFtzXVt1XT1uW2k+PjNdPj4oNyZ+aSkmMSwrK2kpO3MrPW99bz0tb31yZXR1cm4gdH0sWj1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciByPVJbbl0saT10Lmxlbmd0aCxvPTA7aT5vOysrbylmb3IodmFyIGE9MDtpPmE7KythKWVbb11bYV18fCh0W29dW2FdXj1yKG8sYSkpO3JldHVybiB0fSxHPWZ1bmN0aW9uKHQsZSxuLHIpe2Zvcih2YXIgaT10Lmxlbmd0aCxvPTIxNTIyXk4objw8M3xyLDUsMTMzNSwxMCksYT0wOzE1PmE7KythKXt2YXIgcz1bMCwxLDIsMyw0LDUsNyw4LGktNyxpLTYsaS01LGktNCxpLTMsaS0yLGktMV1bYV0saD1baS0xLGktMixpLTMsaS00LGktNSxpLTYsaS03LGktOCw3LDUsNCwzLDIsMSwwXVthXTt0W3NdWzhdPXRbOF1baF09bz4+YSYxfXJldHVybiB0fSxxPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0zLG49MyxyPTQwLGk9MTAsbz1mdW5jdGlvbih0KXtmb3IodmFyIG49MCxpPTA7aTx0Lmxlbmd0aDsrK2kpdFtpXT49NSYmKG4rPWUrKHRbaV0tNSkpO2Zvcih2YXIgaT01O2k8dC5sZW5ndGg7aSs9Mil7dmFyIG89dFtpXTt0W2ktMV09PW8mJnRbaS0yXT09MypvJiZ0W2ktM109PW8mJnRbaS00XT09byYmKHRbaS01XT49NCpvfHx0W2krMV0+PTQqbykmJihuKz1yKX1yZXR1cm4gbn0sYT10Lmxlbmd0aCxzPTAsaD0wLHU9MDthPnU7Kyt1KXt2YXIgbCxjPXRbdV07bD1bMF07Zm9yKHZhciBmPTA7YT5mOyl7dmFyIGQ7Zm9yKGQ9MDthPmYmJmNbZl07KytkKSsrZjtmb3IobC5wdXNoKGQpLGQ9MDthPmYmJiFjW2ZdOysrZCkrK2Y7bC5wdXNoKGQpfXMrPW8obCksbD1bMF07Zm9yKHZhciBmPTA7YT5mOyl7dmFyIGQ7Zm9yKGQ9MDthPmYmJnRbZl1bdV07KytkKSsrZjtmb3IobC5wdXNoKGQpLGQ9MDthPmYmJiF0W2ZdW3VdOysrZCkrK2Y7bC5wdXNoKGQpfXMrPW8obCk7dmFyIHA9dFt1KzFdfHxbXTtoKz1jWzBdO2Zvcih2YXIgZj0xO2E+ZjsrK2Ype3ZhciBnPWNbZl07aCs9ZyxjW2YtMV09PWcmJnBbZl09PT1nJiZwW2YtMV09PT1nJiYocys9bil9fXJldHVybiBzKz1pKihNYXRoLmFicyhoL2EvYS0uNSkvLjA1fDApfSxZPWZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG89YVtlXSxzPUYoZSxuLHQsTyhlLHIpPj4zKTtzPVcocyxvWzFdW3JdLFNbb1swXVtyXV0pO3ZhciBoPWooZSksdT1oLm1hdHJpeCxsPWgucmVzZXJ2ZWQ7aWYoSCh1LGwscyksMD5pKXtaKHUsbCwwKSxHKHUsbCxyLDApO3ZhciBjPTAsZj1xKHUpO2ZvcihaKHUsbCwwKSxpPTE7OD5pOysraSl7Wih1LGwsaSksRyh1LGwscixpKTt2YXIgZD1xKHUpO2Y+ZCYmKGY9ZCxjPWkpLFoodSxsLGkpfWk9Y31yZXR1cm4gWih1LGwsaSksRyh1LGwscixpKSx1fTt0LmV4cG9ydHM9e21lYXN1cmU6b319LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgZTtlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLmRhdGE9bnVsbCE9dD90OltdLHRoaXMucG9zPTAsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aH1yZXR1cm4gdC5wcm90b3R5cGUucmVhZEJ5dGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhW3RoaXMucG9zKytdfSx0LnByb3RvdHlwZS53cml0ZUJ5dGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGF0YVt0aGlzLnBvcysrXT10fSx0LnByb3RvdHlwZS5ieXRlQXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGF0YVt0XX0sdC5wcm90b3R5cGUucmVhZEJvb2w9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMucmVhZEJ5dGUoKX0sdC5wcm90b3R5cGUud3JpdGVCb29sPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndyaXRlQnl0ZSh0PzE6MCl9LHQucHJvdG90eXBlLnJlYWRVSW50MzI9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scjtyZXR1cm4gdD0xNjc3NzIxNip0aGlzLnJlYWRCeXRlKCksZT10aGlzLnJlYWRCeXRlKCk8PDE2LG49dGhpcy5yZWFkQnl0ZSgpPDw4LHI9dGhpcy5yZWFkQnl0ZSgpLHQrZStuK3J9LHQucHJvdG90eXBlLndyaXRlVUludDMyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndyaXRlQnl0ZSh0Pj4+MjQmMjU1KSx0aGlzLndyaXRlQnl0ZSh0Pj4xNiYyNTUpLHRoaXMud3JpdGVCeXRlKHQ+PjgmMjU1KSx0aGlzLndyaXRlQnl0ZSgyNTUmdCl9LHQucHJvdG90eXBlLnJlYWRJbnQzMj1mdW5jdGlvbigpe3ZhciB0O3JldHVybiB0PXRoaXMucmVhZFVJbnQzMigpLHQ+PTIxNDc0ODM2NDg/dC00Mjk0OTY3Mjk2OnR9LHQucHJvdG90eXBlLndyaXRlSW50MzI9ZnVuY3Rpb24odCl7cmV0dXJuIDA+dCYmKHQrPTQyOTQ5NjcyOTYpLHRoaXMud3JpdGVVSW50MzIodCl9LHQucHJvdG90eXBlLnJlYWRVSW50MTY9ZnVuY3Rpb24oKXt2YXIgdCxlO3JldHVybiB0PXRoaXMucmVhZEJ5dGUoKTw8OCxlPXRoaXMucmVhZEJ5dGUoKSx0fGV9LHQucHJvdG90eXBlLndyaXRlVUludDE2PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndyaXRlQnl0ZSh0Pj44JjI1NSksdGhpcy53cml0ZUJ5dGUoMjU1JnQpfSx0LnByb3RvdHlwZS5yZWFkSW50MTY9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gdD10aGlzLnJlYWRVSW50MTYoKSx0Pj0zMjc2OD90LTY1NTM2OnR9LHQucHJvdG90eXBlLndyaXRlSW50MTY9ZnVuY3Rpb24odCl7cmV0dXJuIDA+dCYmKHQrPTY1NTM2KSx0aGlzLndyaXRlVUludDE2KHQpfSx0LnByb3RvdHlwZS5yZWFkU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLG4scjtmb3Iobj1bXSxlPXI9MDt0Pj0wP3Q+cjpyPnQ7ZT10Pj0wPysrcjotLXIpbltlXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMucmVhZEJ5dGUoKSk7cmV0dXJuIG4uam9pbigiIil9LHQucHJvdG90eXBlLndyaXRlU3RyaW5nPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpO2ZvcihpPVtdLGU9bj0wLHI9dC5sZW5ndGg7cj49MD9yPm46bj5yO2U9cj49MD8rK246LS1uKWkucHVzaCh0aGlzLndyaXRlQnl0ZSh0LmNoYXJDb2RlQXQoZSkpKTtyZXR1cm4gaX0sdC5wcm90b3R5cGUuc3RyaW5nQXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wb3M9dCx0aGlzLnJlYWRTdHJpbmcoZSl9LHQucHJvdG90eXBlLnJlYWRTaG9ydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlYWRJbnQxNigpfSx0LnByb3RvdHlwZS53cml0ZVNob3J0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndyaXRlSW50MTYodCl9LHQucHJvdG90eXBlLnJlYWRMb25nTG9uZz1mdW5jdGlvbigpe3ZhciB0LGUsbixyLGksbyxhLHM7cmV0dXJuIHQ9dGhpcy5yZWFkQnl0ZSgpLGU9dGhpcy5yZWFkQnl0ZSgpLG49dGhpcy5yZWFkQnl0ZSgpLHI9dGhpcy5yZWFkQnl0ZSgpLGk9dGhpcy5yZWFkQnl0ZSgpLG89dGhpcy5yZWFkQnl0ZSgpLGE9dGhpcy5yZWFkQnl0ZSgpLHM9dGhpcy5yZWFkQnl0ZSgpLDEyOCZ0Py0xKig3MjA1NzU5NDAzNzkyNzk0MCooMjU1XnQpKzI4MTQ3NDk3NjcxMDY1NiooMjU1XmUpKzEwOTk1MTE2Mjc3NzYqKDI1NV5uKSs0Mjk0OTY3Mjk2KigyNTVecikrMTY3NzcyMTYqKDI1NV5pKSs2NTUzNiooMjU1Xm8pKzI1NiooMjU1XmEpKygyNTVecykrMSk6NzIwNTc1OTQwMzc5Mjc5NDAqdCsyODE0NzQ5NzY3MTA2NTYqZSsxMDk5NTExNjI3Nzc2Km4rNDI5NDk2NzI5NipyKzE2Nzc3MjE2KmkrNjU1MzYqbysyNTYqYStzfSx0LnByb3RvdHlwZS53cml0ZUxvbmdMb25nPWZ1bmN0aW9uKHQpe3ZhciBlLG47cmV0dXJuIGU9TWF0aC5mbG9vcih0LzQyOTQ5NjcyOTYpLG49NDI5NDk2NzI5NSZ0LHRoaXMud3JpdGVCeXRlKGU+PjI0JjI1NSksdGhpcy53cml0ZUJ5dGUoZT4+MTYmMjU1KSx0aGlzLndyaXRlQnl0ZShlPj44JjI1NSksdGhpcy53cml0ZUJ5dGUoMjU1JmUpLHRoaXMud3JpdGVCeXRlKG4+PjI0JjI1NSksdGhpcy53cml0ZUJ5dGUobj4+MTYmMjU1KSx0aGlzLndyaXRlQnl0ZShuPj44JjI1NSksdGhpcy53cml0ZUJ5dGUoMjU1Jm4pfSx0LnByb3RvdHlwZS5yZWFkSW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZEludDMyKCl9LHQucHJvdG90eXBlLndyaXRlSW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndyaXRlSW50MzIodCl9LHQucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuZGF0YS5zbGljZSh0LGUpfSx0LnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHQpe3ZhciBlLG4scjtmb3IoZT1bXSxuPXI9MDt0Pj0wP3Q+cjpyPnQ7bj10Pj0wPysrcjotLXIpZS5wdXNoKHRoaXMucmVhZEJ5dGUoKSk7cmV0dXJuIGV9LHQucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpO2ZvcihpPVtdLG49MCxyPXQubGVuZ3RoO3I+bjtuKyspZT10W25dLGkucHVzaCh0aGlzLndyaXRlQnl0ZShlKSk7cmV0dXJuIGl9LHR9KCksdC5leHBvcnRzPWV9KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUscixpPVtdLmluZGV4T2Z8fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLG49dGhpcy5sZW5ndGg7bj5lO2UrKylpZihlIGluIHRoaXMmJnRoaXNbZV09PT10KXJldHVybiBlO3JldHVybi0xfTtyPW4oMTApLGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsbil7dmFyIHIsbyxhO2lmKHRoaXMuZGF0YT10LHRoaXMubGFiZWw9biw2NTQ5NiE9PXRoaXMuZGF0YS5yZWFkVUludDE2QkUoMCkpdGhyb3ciU09JIG5vdCBmb3VuZCBpbiBKUEVHIjtmb3IoYT0yO2E8dGhpcy5kYXRhLmxlbmd0aCYmKG89dGhpcy5kYXRhLnJlYWRVSW50MTZCRShhKSxhKz0yLCEoaS5jYWxsKGUsbyk+PTApKTspYSs9dGhpcy5kYXRhLnJlYWRVSW50MTZCRShhKTtpZihpLmNhbGwoZSxvKTwwKXRocm93IkludmFsaWQgSlBFRy4iO2ErPTIsdGhpcy5iaXRzPXRoaXMuZGF0YVthKytdLHRoaXMuaGVpZ2h0PXRoaXMuZGF0YS5yZWFkVUludDE2QkUoYSksYSs9Mix0aGlzLndpZHRoPXRoaXMuZGF0YS5yZWFkVUludDE2QkUoYSksYSs9MixyPXRoaXMuZGF0YVthKytdLHRoaXMuY29sb3JTcGFjZT1mdW5jdGlvbigpe3N3aXRjaChyKXtjYXNlIDE6cmV0dXJuIkRldmljZUdyYXkiO2Nhc2UgMzpyZXR1cm4iRGV2aWNlUkdCIjtjYXNlIDQ6cmV0dXJuIkRldmljZUNNWUsifX0oKSx0aGlzLm9iaj1udWxsfXZhciBlO3JldHVybiBlPVs2NTQ3Miw2NTQ3Myw2NTQ3NCw2NTQ3NSw2NTQ3Nyw2NTQ3OCw2NTQ3OSw2NTQ4MCw2NTQ4MSw2NTQ4Miw2NTQ4Myw2NTQ4NCw2NTQ4NSw2NTQ4Niw2NTQ4N10sdC5wcm90b3R5cGUuZW1iZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMub2JqP3ZvaWQgMDoodGhpcy5vYmo9dC5yZWYoe1R5cGU6IlhPYmplY3QiLFN1YnR5cGU6IkltYWdlIixCaXRzUGVyQ29tcG9uZW50OnRoaXMuYml0cyxXaWR0aDp0aGlzLndpZHRoLEhlaWdodDp0aGlzLmhlaWdodCxDb2xvclNwYWNlOnRoaXMuY29sb3JTcGFjZSxGaWx0ZXI6IkRDVERlY29kZSJ9KSwiRGV2aWNlQ01ZSyI9PT10aGlzLmNvbG9yU3BhY2UmJih0aGlzLm9iai5kYXRhLkRlY29kZT1bMSwwLDEsMCwxLDAsMSwwXSksdGhpcy5vYmouZW5kKHRoaXMuZGF0YSksdGhpcy5kYXRhPW51bGwpfSx0fSgpLHQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXt2YXIgcixpLG87bz1uKDQ1KSxyPW4oNTEpLGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5sYWJlbD1lLHRoaXMuaW1hZ2U9bmV3IHIodCksdGhpcy53aWR0aD10aGlzLmltYWdlLndpZHRoLHRoaXMuaGVpZ2h0PXRoaXMuaW1hZ2UuaGVpZ2h0LHRoaXMuaW1nRGF0YT10aGlzLmltYWdlLmltZ0RhdGEsdGhpcy5vYmo9bnVsbH1yZXR1cm4gdC5wcm90b3R5cGUuZW1iZWQ9ZnVuY3Rpb24odCl7dmFyIG4scixpLG8sYSxzLGgsdTtpZih0aGlzLmRvY3VtZW50PXQsIXRoaXMub2JqKXtpZih0aGlzLm9iaj10LnJlZih7VHlwZToiWE9iamVjdCIsU3VidHlwZToiSW1hZ2UiLEJpdHNQZXJDb21wb25lbnQ6dGhpcy5pbWFnZS5iaXRzLFdpZHRoOnRoaXMud2lkdGgsSGVpZ2h0OnRoaXMuaGVpZ2h0LEZpbHRlcjoiRmxhdGVEZWNvZGUifSksdGhpcy5pbWFnZS5oYXNBbHBoYUNoYW5uZWx8fChpPXQucmVmKHtQcmVkaWN0b3I6MTUsQ29sb3JzOnRoaXMuaW1hZ2UuY29sb3JzLEJpdHNQZXJDb21wb25lbnQ6dGhpcy5pbWFnZS5iaXRzLENvbHVtbnM6dGhpcy53aWR0aH0pLHRoaXMub2JqLmRhdGEuRGVjb2RlUGFybXM9aSxpLmVuZCgpKSwwPT09dGhpcy5pbWFnZS5wYWxldHRlLmxlbmd0aD90aGlzLm9iai5kYXRhLkNvbG9yU3BhY2U9dGhpcy5pbWFnZS5jb2xvclNwYWNlOihyPXQucmVmKCksci5lbmQobmV3IGUodGhpcy5pbWFnZS5wYWxldHRlKSksdGhpcy5vYmouZGF0YS5Db2xvclNwYWNlPVsiSW5kZXhlZCIsIkRldmljZVJHQiIsdGhpcy5pbWFnZS5wYWxldHRlLmxlbmd0aC8zLTEscl0pLHRoaXMuaW1hZ2UudHJhbnNwYXJlbmN5LmdyYXlzY2FsZSlyZXR1cm4gYT10aGlzLmltYWdlLnRyYW5zcGFyZW5jeS5ncmV5c2NhbGUsdGhpcy5vYmouZGF0YS5NYXNrPVthLGFdO2lmKHRoaXMuaW1hZ2UudHJhbnNwYXJlbmN5LnJnYil7Zm9yKG89dGhpcy5pbWFnZS50cmFuc3BhcmVuY3kucmdiLG49W10saD0wLHU9by5sZW5ndGg7dT5oO2grKylzPW9baF0sbi5wdXNoKHMscyk7cmV0dXJuIHRoaXMub2JqLmRhdGEuTWFzaz1ufXJldHVybiB0aGlzLmltYWdlLnRyYW5zcGFyZW5jeS5pbmRleGVkP3RoaXMubG9hZEluZGV4ZWRBbHBoYUNoYW5uZWwoKTp0aGlzLmltYWdlLmhhc0FscGhhQ2hhbm5lbD90aGlzLnNwbGl0QWxwaGFDaGFubmVsKCk6dGhpcy5maW5hbGl6ZSgpfX0sdC5wcm90b3R5cGUuZmluYWxpemU9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gdGhpcy5hbHBoYUNoYW5uZWwmJih0PXRoaXMuZG9jdW1lbnQucmVmKHtUeXBlOiJYT2JqZWN0IixTdWJ0eXBlOiJJbWFnZSIsSGVpZ2h0OnRoaXMuaGVpZ2h0LFdpZHRoOnRoaXMud2lkdGgsQml0c1BlckNvbXBvbmVudDo4LEZpbHRlcjoiRmxhdGVEZWNvZGUiLENvbG9yU3BhY2U6IkRldmljZUdyYXkiLERlY29kZTpbMCwxXX0pLHQuZW5kKHRoaXMuYWxwaGFDaGFubmVsKSx0aGlzLm9iai5kYXRhLlNNYXNrPXQpLHRoaXMub2JqLmVuZCh0aGlzLmltZ0RhdGEpLHRoaXMuaW1hZ2U9bnVsbCx0aGlzLmltZ0RhdGE9bnVsbH0sdC5wcm90b3R5cGUuc3BsaXRBbHBoYUNoYW5uZWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbWFnZS5kZWNvZGVQaXhlbHMoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciByLGksYSxzLGgsdSxsLGMsZjtmb3IoYT10LmltYWdlLmNvbG9ycyp0LmltYWdlLmJpdHMvOCxmPXQud2lkdGgqdC5oZWlnaHQsdT1uZXcgZShmKmEpLGk9bmV3IGUoZiksaD1jPXI9MCxsPW4ubGVuZ3RoO2w+aDspdVtjKytdPW5baCsrXSx1W2MrK109bltoKytdLHVbYysrXT1uW2grK10saVtyKytdPW5baCsrXTtyZXR1cm4gcz0wLG8uZGVmbGF0ZSh1LGZ1bmN0aW9uKGUsbil7aWYodC5pbWdEYXRhPW4sZSl0aHJvdyBlO3JldHVybiAyPT09KytzP3QuZmluYWxpemUoKTp2b2lkIDB9KSxvLmRlZmxhdGUoaSxmdW5jdGlvbihlLG4pe2lmKHQuYWxwaGFDaGFubmVsPW4sZSl0aHJvdyBlO3JldHVybiAyPT09KytzP3QuZmluYWxpemUoKTp2b2lkIDB9KX19KHRoaXMpKX0sdC5wcm90b3R5cGUubG9hZEluZGV4ZWRBbHBoYUNoYW5uZWw9ZnVuY3Rpb24odCl7dmFyIG47cmV0dXJuIG49dGhpcy5pbWFnZS50cmFuc3BhcmVuY3kuaW5kZXhlZCx0aGlzLmltYWdlLmRlY29kZVBpeGVscyhmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIGksYSxzLGgsdTtmb3IoaT1uZXcgZSh0LndpZHRoKnQuaGVpZ2h0KSxhPTAscz1oPTAsdT1yLmxlbmd0aDt1Pmg7cz1oKz0xKWlbYSsrXT1uW3Jbc11dO3JldHVybiBvLmRlZmxhdGUoaSxmdW5jdGlvbihlLG4pe2lmKHQuYWxwaGFDaGFubmVsPW4sZSl0aHJvdyBlO3JldHVybiB0LmZpbmFsaXplKCl9KX19KHRoaXMpKX0sdH0oKSx0LmV4cG9ydHM9aX0pLmNhbGwodGhpcyl9KS5jYWxsKGUsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCxlKXt0aGlzLmNvbnRleHQ9dCx0aGlzLmNvbnRleHRTdGFjaz1bXSx0aGlzLnRyYWNrZXI9ZX1mdW5jdGlvbiBpKHQsZSxuKXtudWxsPT09bnx8dm9pZCAwPT09bnx8MD5ufHxuPnQuaXRlbXMubGVuZ3RoP3QuaXRlbXMucHVzaChlKTp0Lml0ZW1zLnNwbGljZShuLDAsZSl9ZnVuY3Rpb24gbyh0KXt2YXIgZT1uZXcgYSh0Lm1heFdpZHRoKTtmb3IodmFyIG4gaW4gdCl0Lmhhc093blByb3BlcnR5KG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZX12YXIgYT1uKDI0KSxzPW4oMjUpLnBhY2ssaD1uKDI1KS5vZmZzZXRWZWN0b3IsdT1uKDIwKTtyLnByb3RvdHlwZS5hZGRMaW5lPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10LmdldEhlaWdodCgpLG89dGhpcy5jb250ZXh0LGE9by5nZXRDdXJyZW50UGFnZSgpLHM9dGhpcy5nZXRDdXJyZW50UG9zaXRpb25PblBhZ2UoKTtyZXR1cm4gby5hdmFpbGFibGVIZWlnaHQ8cnx8IWE/ITE6KHQueD1vLngrKHQueHx8MCksdC55PW8ueSsodC55fHwwKSx0aGlzLmFsaWduTGluZSh0KSxpKGEse3R5cGU6ImxpbmUiLGl0ZW06dH0sbiksdGhpcy50cmFja2VyLmVtaXQoImxpbmVBZGRlZCIsdCksZXx8by5tb3ZlRG93bihyKSxzKX0sci5wcm90b3R5cGUuYWxpZ25MaW5lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29udGV4dC5hdmFpbGFibGVXaWR0aCxuPXQuZ2V0V2lkdGgoKSxyPXQuaW5saW5lcyYmdC5pbmxpbmVzLmxlbmd0aD4wJiZ0LmlubGluZXNbMF0uYWxpZ25tZW50LGk9MDtzd2l0Y2gocil7Y2FzZSJyaWdodCI6aT1lLW47YnJlYWs7Y2FzZSJjZW50ZXIiOmk9KGUtbikvMn1pZihpJiYodC54PSh0Lnh8fDApK2kpLCJqdXN0aWZ5Ij09PXImJiF0Lm5ld0xpbmVGb3JjZWQmJiF0Lmxhc3RMaW5lSW5QYXJhZ3JhcGgmJnQuaW5saW5lcy5sZW5ndGg+MSlmb3IodmFyIG89KGUtbikvKHQuaW5saW5lcy5sZW5ndGgtMSksYT0xLHM9dC5pbmxpbmVzLmxlbmd0aDtzPmE7YSsrKWk9YSpvLHQuaW5saW5lc1thXS54Kz1pfSxyLnByb3RvdHlwZS5hZGRJbWFnZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuY29udGV4dCxyPW4uZ2V0Q3VycmVudFBhZ2UoKSxvPXRoaXMuZ2V0Q3VycmVudFBvc2l0aW9uT25QYWdlKCk7cmV0dXJuIG4uYXZhaWxhYmxlSGVpZ2h0PHQuX2hlaWdodHx8IXI/ITE6KHQueD1uLngrKHQueHx8MCksdC55PW4ueSx0aGlzLmFsaWduSW1hZ2UodCksaShyLHt0eXBlOiJpbWFnZSIsaXRlbTp0fSxlKSxuLm1vdmVEb3duKHQuX2hlaWdodCksbyl9LHIucHJvdG90eXBlLmFkZFFyPWZ1bmN0aW9uKHQsZSl7dmFyIG49dGhpcy5jb250ZXh0LHI9bi5nZXRDdXJyZW50UGFnZSgpLGk9dGhpcy5nZXRDdXJyZW50UG9zaXRpb25PblBhZ2UoKTtpZihuLmF2YWlsYWJsZUhlaWdodDx0Ll9oZWlnaHR8fCFyKXJldHVybiExO3QueD1uLngrKHQueHx8MCksdC55PW4ueSx0aGlzLmFsaWduSW1hZ2UodCk7Zm9yKHZhciBvPTAsYT10Ll9jYW52YXMubGVuZ3RoO2E+bztvKyspe3ZhciBzPXQuX2NhbnZhc1tvXTtzLngrPXQueCxzLnkrPXQueSx0aGlzLmFkZFZlY3RvcihzLCEwLCEwLGUpfXJldHVybiBuLm1vdmVEb3duKHQuX2hlaWdodCksaX0sci5wcm90b3R5cGUuYWxpZ25JbWFnZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQuYXZhaWxhYmxlV2lkdGgsbj10Ll9taW5XaWR0aCxyPTA7c3dpdGNoKHQuX2FsaWdubWVudCl7Y2FzZSJyaWdodCI6cj1lLW47YnJlYWs7Y2FzZSJjZW50ZXIiOnI9KGUtbikvMn1yJiYodC54PSh0Lnh8fDApK3IpfSxyLnByb3RvdHlwZS5hZGRWZWN0b3I9ZnVuY3Rpb24odCxlLG4scil7dmFyIG89dGhpcy5jb250ZXh0LGE9by5nZXRDdXJyZW50UGFnZSgpLHM9dGhpcy5nZXRDdXJyZW50UG9zaXRpb25PblBhZ2UoKTtyZXR1cm4gYT8oaCh0LGU/MDpvLngsbj8wOm8ueSksaShhLHt0eXBlOiJ2ZWN0b3IiLGl0ZW06dH0scikscyk6dm9pZCAwfSxyLnByb3RvdHlwZS5hZGRGcmFnbWVudD1mdW5jdGlvbih0LGUsbixyKXt2YXIgaT10aGlzLmNvbnRleHQsYT1pLmdldEN1cnJlbnRQYWdlKCk7cmV0dXJuIWUmJnQuaGVpZ2h0PmkuYXZhaWxhYmxlSGVpZ2h0PyExOih0Lml0ZW1zLmZvckVhY2goZnVuY3Rpb24ocil7c3dpdGNoKHIudHlwZSl7Y2FzZSJsaW5lIjp2YXIgdT1vKHIuaXRlbSk7dS54PSh1Lnh8fDApKyhlP3QueE9mZnNldHx8MDppLngpLHUueT0odS55fHwwKSsobj90LnlPZmZzZXR8fDA6aS55KSxhLml0ZW1zLnB1c2goe3R5cGU6ImxpbmUiLGl0ZW06dX0pO2JyZWFrO2Nhc2UidmVjdG9yIjp2YXIgbD1zKHIuaXRlbSk7aChsLGU/dC54T2Zmc2V0fHwwOmkueCxuP3QueU9mZnNldHx8MDppLnkpLGEuaXRlbXMucHVzaCh7dHlwZToidmVjdG9yIixpdGVtOmx9KTticmVhaztjYXNlImltYWdlIjp2YXIgYz1zKHIuaXRlbSk7Yy54PShjLnh8fDApKyhlP3QueE9mZnNldHx8MDppLngpLGMueT0oYy55fHwwKSsobj90LnlPZmZzZXR8fDA6aS55KSxhLml0ZW1zLnB1c2goe3R5cGU6ImltYWdlIixpdGVtOmN9KX19KSxyfHxpLm1vdmVEb3duKHQuaGVpZ2h0KSwhMCl9LHIucHJvdG90eXBlLnB1c2hDb250ZXh0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKGU9dGhpcy5jb250ZXh0LmdldEN1cnJlbnRQYWdlKCkuaGVpZ2h0LXRoaXMuY29udGV4dC5wYWdlTWFyZ2lucy50b3AtdGhpcy5jb250ZXh0LnBhZ2VNYXJnaW5zLmJvdHRvbSx0PXRoaXMuY29udGV4dC5hdmFpbGFibGVXaWR0aCksKCJudW1iZXIiPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIE51bWJlcikmJih0PW5ldyB1KHt3aWR0aDp0LGhlaWdodDplfSx7bGVmdDowLHJpZ2h0OjAsdG9wOjAsYm90dG9tOjB9KSksdGhpcy5jb250ZXh0U3RhY2sucHVzaCh0aGlzLmNvbnRleHQpLHRoaXMuY29udGV4dD10fSxyLnByb3RvdHlwZS5wb3BDb250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0PXRoaXMuY29udGV4dFN0YWNrLnBvcCgpfSxyLnByb3RvdHlwZS5nZXRDdXJyZW50UG9zaXRpb25PblBhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5jb250ZXh0U3RhY2tbMF18fHRoaXMuY29udGV4dCkuZ2V0Q3VycmVudFBvc2l0aW9uKCl9LHQuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGU7ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxyKXt2YXIgaTt0aGlzLmRvY3VtZW50PXQsbnVsbD09ciYmKHI9e30pLHRoaXMuc2l6ZT1yLnNpemV8fCJsZXR0ZXIiLHRoaXMubGF5b3V0PXIubGF5b3V0fHwicG9ydHJhaXQiLHRoaXMubWFyZ2lucz0ibnVtYmVyIj09dHlwZW9mIHIubWFyZ2luP3t0b3A6ci5tYXJnaW4sbGVmdDpyLm1hcmdpbixib3R0b206ci5tYXJnaW4scmlnaHQ6ci5tYXJnaW59OnIubWFyZ2luc3x8ZSxpPUFycmF5LmlzQXJyYXkodGhpcy5zaXplKT90aGlzLnNpemU6blt0aGlzLnNpemUudG9VcHBlckNhc2UoKV0sdGhpcy53aWR0aD1pWyJwb3J0cmFpdCI9PT10aGlzLmxheW91dD8wOjFdLHRoaXMuaGVpZ2h0PWlbInBvcnRyYWl0Ij09PXRoaXMubGF5b3V0PzE6MF0sdGhpcy5jb250ZW50PXRoaXMuZG9jdW1lbnQucmVmKCksdGhpcy5yZXNvdXJjZXM9dGhpcy5kb2N1bWVudC5yZWYoe1Byb2NTZXQ6WyJQREYiLCJUZXh0IiwiSW1hZ2VCIiwiSW1hZ2VDIiwiSW1hZ2VJIl19KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHtmb250czp7Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpewp2YXIgZTtyZXR1cm4gbnVsbCE9KGU9dC5yZXNvdXJjZXMuZGF0YSkuRm9udD9lLkZvbnQ6ZS5Gb250PXt9fX0odGhpcyl9LHhvYmplY3RzOntnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIG51bGwhPShlPXQucmVzb3VyY2VzLmRhdGEpLlhPYmplY3Q/ZS5YT2JqZWN0OmUuWE9iamVjdD17fX19KHRoaXMpfSxleHRfZ3N0YXRlczp7Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBlO3JldHVybiBudWxsIT0oZT10LnJlc291cmNlcy5kYXRhKS5FeHRHU3RhdGU/ZS5FeHRHU3RhdGU6ZS5FeHRHU3RhdGU9e319fSh0aGlzKX0scGF0dGVybnM6e2dldDpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gbnVsbCE9KGU9dC5yZXNvdXJjZXMuZGF0YSkuUGF0dGVybj9lLlBhdHRlcm46ZS5QYXR0ZXJuPXt9fX0odGhpcyl9LGFubm90YXRpb25zOntnZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIG51bGwhPShlPXQuZGljdGlvbmFyeS5kYXRhKS5Bbm5vdHM/ZS5Bbm5vdHM6ZS5Bbm5vdHM9W119fSh0aGlzKX19KSx0aGlzLmRpY3Rpb25hcnk9dGhpcy5kb2N1bWVudC5yZWYoe1R5cGU6IlBhZ2UiLFBhcmVudDp0aGlzLmRvY3VtZW50Ll9yb290LmRhdGEuUGFnZXMsTWVkaWFCb3g6WzAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XSxDb250ZW50czp0aGlzLmNvbnRlbnQsUmVzb3VyY2VzOnRoaXMucmVzb3VyY2VzfSl9dmFyIGUsbjtyZXR1cm4gdC5wcm90b3R5cGUubWF4WT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhlaWdodC10aGlzLm1hcmdpbnMuYm90dG9tfSx0LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb250ZW50LndyaXRlKHQpfSx0LnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaWN0aW9uYXJ5LmVuZCgpLHRoaXMucmVzb3VyY2VzLmVuZCgpLHRoaXMuY29udGVudC5lbmQoKX0sZT17dG9wOjcyLGxlZnQ6NzIsYm90dG9tOjcyLHJpZ2h0OjcyfSxuPXsiNEEwIjpbNDc2Ny44Nyw2NzQwLjc5XSwiMkEwIjpbMzM3MC4zOSw0NzY3Ljg3XSxBMDpbMjM4My45NCwzMzcwLjM5XSxBMTpbMTY4My43OCwyMzgzLjk0XSxBMjpbMTE5MC41NSwxNjgzLjc4XSxBMzpbODQxLjg5LDExOTAuNTVdLEE0Ols1OTUuMjgsODQxLjg5XSxBNTpbNDE5LjUzLDU5NS4yOF0sQTY6WzI5Ny42NCw0MTkuNTNdLEE3OlsyMDkuNzYsMjk3LjY0XSxBODpbMTQ3LjQsMjA5Ljc2XSxBOTpbMTA0Ljg4LDE0Ny40XSxBMTA6WzczLjcsMTA0Ljg4XSxCMDpbMjgzNC42NSw0MDA4LjE5XSxCMTpbMjAwNC4wOSwyODM0LjY1XSxCMjpbMTQxNy4zMiwyMDA0LjA5XSxCMzpbMTAwMC42MywxNDE3LjMyXSxCNDpbNzA4LjY2LDEwMDAuNjNdLEI1Ols0OTguOSw3MDguNjZdLEI2OlszNTQuMzMsNDk4LjldLEI3OlsyNDkuNDUsMzU0LjMzXSxCODpbMTc1Ljc1LDI0OS40NV0sQjk6WzEyNC43MiwxNzUuNzVdLEIxMDpbODcuODcsMTI0LjcyXSxDMDpbMjU5OS4zNywzNjc2LjU0XSxDMTpbMTgzNi44NSwyNTk5LjM3XSxDMjpbMTI5OC4yNywxODM2Ljg1XSxDMzpbOTE4LjQzLDEyOTguMjddLEM0Ols2NDkuMTMsOTE4LjQzXSxDNTpbNDU5LjIxLDY0OS4xM10sQzY6WzMyMy4xNSw0NTkuMjFdLEM3OlsyMjkuNjEsMzIzLjE1XSxDODpbMTYxLjU3LDIyOS42MV0sQzk6WzExMy4zOSwxNjEuNTddLEMxMDpbNzkuMzcsMTEzLjM5XSxSQTA6WzI0MzcuOCwzNDU4LjI3XSxSQTE6WzE3MjkuMTMsMjQzNy44XSxSQTI6WzEyMTguOSwxNzI5LjEzXSxSQTM6Wzg2NC41NywxMjE4LjldLFJBNDpbNjA5LjQ1LDg2NC41N10sU1JBMDpbMjU1MS4xOCwzNjI4LjM1XSxTUkExOlsxODE0LjE3LDI1NTEuMThdLFNSQTI6WzEyNzUuNTksMTgxNC4xN10sU1JBMzpbOTA3LjA5LDEyNzUuNTldLFNSQTQ6WzYzNy44LDkwNy4wOV0sRVhFQ1VUSVZFOls1MjEuODYsNzU2XSxGT0xJTzpbNjEyLDkzNl0sTEVHQUw6WzYxMiwxMDA4XSxMRVRURVI6WzYxMiw3OTJdLFRBQkxPSUQ6Wzc5MiwxMjI0XX0sdH0oKSx0LmV4cG9ydHM9ZX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgZSxyLGk9W10uc2xpY2U7cj1uKDQ3KSxlPTQqKChNYXRoLnNxcnQoMiktMSkvMyksdC5leHBvcnRzPXtpbml0VmVjdG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N0bT1bMSwwLDAsMSwwLDBdLHRoaXMuX2N0bVN0YWNrPVtdfSxzYXZlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N0bVN0YWNrLnB1c2godGhpcy5fY3RtLnNsaWNlKCkpLHRoaXMuYWRkQ29udGVudCgicSIpfSxyZXN0b3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N0bT10aGlzLl9jdG1TdGFjay5wb3AoKXx8WzEsMCwwLDEsMCwwXSx0aGlzLmFkZENvbnRlbnQoIlEiKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkQ29udGVudCgiaCIpfSxsaW5lV2lkdGg6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWRkQ29udGVudCgiIit0KyIgdyIpfSxfQ0FQX1NUWUxFUzp7QlVUVDowLFJPVU5EOjEsU1FVQVJFOjJ9LGxpbmVDYXA6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYodD10aGlzLl9DQVBfU1RZTEVTW3QudG9VcHBlckNhc2UoKV0pLHRoaXMuYWRkQ29udGVudCgiIit0KyIgSiIpfSxfSk9JTl9TVFlMRVM6e01JVEVSOjAsUk9VTkQ6MSxCRVZFTDoyfSxsaW5lSm9pbjpmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXRoaXMuX0pPSU5fU1RZTEVTW3QudG9VcHBlckNhc2UoKV0pLHRoaXMuYWRkQ29udGVudCgiIit0KyIgaiIpfSxtaXRlckxpbWl0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmFkZENvbnRlbnQoIiIrdCsiIE0iKX0sZGFzaDpmdW5jdGlvbih0LGUpe3ZhciBuLHIsaTtyZXR1cm4gbnVsbD09ZSYmKGU9e30pLG51bGw9PXQ/dGhpczoocj1udWxsIT0oaT1lLnNwYWNlKT9pOnQsbj1lLnBoYXNlfHwwLHRoaXMuYWRkQ29udGVudCgiWyIrdCsiICIrcisiXSAiK24rIiBkIikpfSx1bmRhc2g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGRDb250ZW50KCJbXSAwIGQiKX0sbW92ZVRvOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkQ29udGVudCgiIit0KyIgIitlKyIgbSIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hZGRDb250ZW50KCIiK3QrIiAiK2UrIiBsIil9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLG4scixpLG8pe3JldHVybiB0aGlzLmFkZENvbnRlbnQoIiIrdCsiICIrZSsiICIrbisiICIrcisiICIraSsiICIrbysiIGMiKX0scXVhZHJhdGljQ3VydmVUbzpmdW5jdGlvbih0LGUsbixyKXtyZXR1cm4gdGhpcy5hZGRDb250ZW50KCIiK3QrIiAiK2UrIiAiK24rIiAiK3IrIiB2Iil9LHJlY3Q6ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHRoaXMuYWRkQ29udGVudCgiIit0KyIgIitlKyIgIituKyIgIityKyIgcmUiKX0scm91bmRlZFJlY3Q6ZnVuY3Rpb24odCxlLG4scixpKXtyZXR1cm4gbnVsbD09aSYmKGk9MCksdGhpcy5tb3ZlVG8odCtpLGUpLHRoaXMubGluZVRvKHQrbi1pLGUpLHRoaXMucXVhZHJhdGljQ3VydmVUbyh0K24sZSx0K24sZStpKSx0aGlzLmxpbmVUbyh0K24sZStyLWkpLHRoaXMucXVhZHJhdGljQ3VydmVUbyh0K24sZStyLHQrbi1pLGUrciksdGhpcy5saW5lVG8odCtpLGUrciksdGhpcy5xdWFkcmF0aWNDdXJ2ZVRvKHQsZStyLHQsZStyLWkpLHRoaXMubGluZVRvKHQsZStpKSx0aGlzLnF1YWRyYXRpY0N1cnZlVG8odCxlLHQraSxlKX0sZWxsaXBzZTpmdW5jdGlvbih0LG4scixpKXt2YXIgbyxhLHMsaCx1LGw7cmV0dXJuIG51bGw9PWkmJihpPXIpLHQtPXIsbi09aSxvPXIqZSxhPWkqZSxzPXQrMipyLHU9bisyKmksaD10K3IsbD1uK2ksdGhpcy5tb3ZlVG8odCxsKSx0aGlzLmJlemllckN1cnZlVG8odCxsLWEsaC1vLG4saCxuKSx0aGlzLmJlemllckN1cnZlVG8oaCtvLG4scyxsLWEscyxsKSx0aGlzLmJlemllckN1cnZlVG8ocyxsK2EsaCtvLHUsaCx1KSx0aGlzLmJlemllckN1cnZlVG8oaC1vLHUsdCxsK2EsdCxsKSx0aGlzLmNsb3NlUGF0aCgpfSxjaXJjbGU6ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0aGlzLmVsbGlwc2UodCxlLG4pfSxwb2x5Z29uOmZ1bmN0aW9uKCl7dmFyIHQsZSxuLHI7Zm9yKGU9MTw9YXJndW1lbnRzLmxlbmd0aD9pLmNhbGwoYXJndW1lbnRzLDApOltdLHRoaXMubW92ZVRvLmFwcGx5KHRoaXMsZS5zaGlmdCgpKSxuPTAscj1lLmxlbmd0aDtyPm47bisrKXQ9ZVtuXSx0aGlzLmxpbmVUby5hcHBseSh0aGlzLHQpO3JldHVybiB0aGlzLmNsb3NlUGF0aCgpfSxwYXRoOmZ1bmN0aW9uKHQpe3JldHVybiByLmFwcGx5KHRoaXMsdCksdGhpc30sX3dpbmRpbmdSdWxlOmZ1bmN0aW9uKHQpe3JldHVybi9ldmVuLT9vZGQvLnRlc3QodCk/IioiOiIifSxmaWxsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuLyhldmVuLT9vZGQpfChub24tP3plcm8pLy50ZXN0KHQpJiYoZT10LHQ9bnVsbCksdCYmdGhpcy5maWxsQ29sb3IodCksdGhpcy5hZGRDb250ZW50KCJmIit0aGlzLl93aW5kaW5nUnVsZShlKSl9LHN0cm9rZTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmdGhpcy5zdHJva2VDb2xvcih0KSx0aGlzLmFkZENvbnRlbnQoIlMiKX0sZmlsbEFuZFN0cm9rZTpmdW5jdGlvbih0LGUsbil7dmFyIHI7cmV0dXJuIG51bGw9PWUmJihlPXQpLHI9LyhldmVuLT9vZGQpfChub24tP3plcm8pLyxyLnRlc3QodCkmJihuPXQsdD1udWxsKSxyLnRlc3QoZSkmJihuPWUsZT10KSx0JiYodGhpcy5maWxsQ29sb3IodCksdGhpcy5zdHJva2VDb2xvcihlKSksdGhpcy5hZGRDb250ZW50KCJCIit0aGlzLl93aW5kaW5nUnVsZShuKSl9LGNsaXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuYWRkQ29udGVudCgiVyIrdGhpcy5fd2luZGluZ1J1bGUodCkrIiBuIil9LHRyYW5zZm9ybTpmdW5jdGlvbih0LGUsbixyLGksbyl7dmFyIGEscyxoLHUsbCxjLGYsZCxwO3JldHVybiBhPXRoaXMuX2N0bSxzPWFbMF0saD1hWzFdLHU9YVsyXSxsPWFbM10sYz1hWzRdLGY9YVs1XSxhWzBdPXMqdCt1KmUsYVsxXT1oKnQrbCplLGFbMl09cypuK3UqcixhWzNdPWgqbitsKnIsYVs0XT1zKmkrdSpvK2MsYVs1XT1oKmkrbCpvK2YscD1mdW5jdGlvbigpe3ZhciBhLHMsaCx1O2ZvcihoPVt0LGUsbixyLGksb10sdT1bXSxhPTAscz1oLmxlbmd0aDtzPmE7YSsrKWQ9aFthXSx1LnB1c2goK2QudG9GaXhlZCg1KSk7cmV0dXJuIHV9KCkuam9pbigiICIpLHRoaXMuYWRkQ29udGVudCgiIitwKyIgY20iKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudHJhbnNmb3JtKDEsMCwwLDEsdCxlKX0scm90YXRlOmZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLG8sYSxzLGgsdTtyZXR1cm4gbnVsbD09ZSYmKGU9e30pLHI9dCpNYXRoLlBJLzE4MCxuPU1hdGguY29zKHIpLGk9TWF0aC5zaW4ociksbz1zPTAsbnVsbCE9ZS5vcmlnaW4mJih1PWUub3JpZ2luLG89dVswXSxzPXVbMV0sYT1vKm4tcyppLGg9byppK3MqbixvLT1hLHMtPWgpLHRoaXMudHJhbnNmb3JtKG4saSwtaSxuLG8scyl9LHNjYWxlOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG87cmV0dXJuIG51bGw9PWUmJihlPXQpLG51bGw9PW4mJihuPXt9KSwyPT09YXJndW1lbnRzLmxlbmd0aCYmKGU9dCxuPWUpLHI9aT0wLG51bGwhPW4ub3JpZ2luJiYobz1uLm9yaWdpbixyPW9bMF0saT1vWzFdLHItPXQqcixpLT1lKmkpLHRoaXMudHJhbnNmb3JtKHQsMCwwLGUscixpKX19fSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlO2U9big0OCksdC5leHBvcnRzPXtpbml0VGV4dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLng9MCx0aGlzLnk9MCx0aGlzLl9saW5lR2FwPTB9LGxpbmVHYXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2xpbmVHYXA9dCx0aGlzfSxtb3ZlRG93bjpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dCYmKHQ9MSksdGhpcy55Kz10aGlzLmN1cnJlbnRMaW5lSGVpZ2h0KCEwKSp0K3RoaXMuX2xpbmVHYXAsdGhpc30sbW92ZVVwOmZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10JiYodD0xKSx0aGlzLnktPXRoaXMuY3VycmVudExpbmVIZWlnaHQoITApKnQrdGhpcy5fbGluZUdhcCx0aGlzfSxfdGV4dDpmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhLHMsaCx1LGw7aWYoaT10aGlzLl9pbml0T3B0aW9ucyhuLHIsaSksdD0iIit0LGkud29yZFNwYWNpbmcmJih0PXQucmVwbGFjZSgvXHN7Mix9L2csIiAiKSksaS53aWR0aClzPXRoaXMuX3dyYXBwZXIsc3x8KHM9bmV3IGUodGhpcyxpKSxzLm9uKCJsaW5lIixvKSksdGhpcy5fd3JhcHBlcj1pLmNvbnRpbnVlZD9zOm51bGwsdGhpcy5fdGV4dE9wdGlvbnM9aS5jb250aW51ZWQ/aTpudWxsLHMud3JhcCh0LGkpO2Vsc2UgZm9yKGw9dC5zcGxpdCgiXG4iKSxoPTAsdT1sLmxlbmd0aDt1Pmg7aCsrKWE9bFtoXSxvKGEsaSk7cmV0dXJuIHRoaXN9LHRleHQ6ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIHRoaXMuX3RleHQodCxlLG4scix0aGlzLl9saW5lLmJpbmQodGhpcykpfSx3aWR0aE9mU3RyaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PWUmJihlPXt9KSx0aGlzLl9mb250LndpZHRoT2ZTdHJpbmcodCx0aGlzLl9mb250U2l6ZSkrKGUuY2hhcmFjdGVyU3BhY2luZ3x8MCkqKHQubGVuZ3RoLTEpfSxoZWlnaHRPZlN0cmluZzpmdW5jdGlvbih0LGUpe3ZhciBuLHIsaSxvO3JldHVybiBudWxsPT1lJiYoZT17fSksaT10aGlzLngsbz10aGlzLnksZT10aGlzLl9pbml0T3B0aW9ucyhlKSxlLmhlaWdodD0xLzAscj1lLmxpbmVHYXB8fHRoaXMuX2xpbmVHYXB8fDAsdGhpcy5fdGV4dCh0LHRoaXMueCx0aGlzLnksZSxmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtyZXR1cm4gdC55Kz10LmN1cnJlbnRMaW5lSGVpZ2h0KCEwKStyfX0odGhpcykpLG49dGhpcy55LW8sdGhpcy54PWksdGhpcy55PW8sbn0sbGlzdDpmdW5jdGlvbih0LG4scixpLG8pe3ZhciBhLHMsaCx1LGwsYyxmLGQ7cmV0dXJuIGk9dGhpcy5faW5pdE9wdGlvbnMobixyLGkpLGQ9TWF0aC5yb3VuZCh0aGlzLl9mb250LmFzY2VuZGVyLzFlMyp0aGlzLl9mb250U2l6ZS8zKSxoPWkudGV4dEluZGVudHx8NSpkLHU9aS5idWxsZXRJbmRlbnR8fDgqZCxjPTEsbD1bXSxmPVtdLGE9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbztmb3Iobz1bXSxlPXI9MCxpPXQubGVuZ3RoO2k+cjtlPSsrciluPXRbZV0sQXJyYXkuaXNBcnJheShuKT8oYysrLGEobiksby5wdXNoKGMtLSkpOihsLnB1c2gobiksby5wdXNoKGYucHVzaChjKSkpO3JldHVybiBvfSxhKHQpLG89bmV3IGUodGhpcyxpKSxvLm9uKCJsaW5lIix0aGlzLl9saW5lLmJpbmQodGhpcykpLGM9MSxzPTAsby5vbigiZmlyc3RMaW5lIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZSxuO3JldHVybihuPWZbcysrXSkhPT1jJiYoZT11KihuLWMpLHQueCs9ZSxvLmxpbmVXaWR0aC09ZSxjPW4pLHQuY2lyY2xlKHQueC1oK2QsdC55K2QrZC8yLGQpLHQuZmlsbCgpfX0odGhpcykpLG8ub24oInNlY3Rpb25TdGFydCIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU7cmV0dXJuIGU9aCt1KihjLTEpLHQueCs9ZSxvLmxpbmVXaWR0aC09ZX19KHRoaXMpKSxvLm9uKCJzZWN0aW9uRW5kIixmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gZT1oK3UqKGMtMSksdC54LT1lLG8ubGluZVdpZHRoKz1lfX0odGhpcykpLG8ud3JhcChsLmpvaW4oIlxuIiksaSksdGhpc30sX2luaXRPcHRpb25zOmZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpLG8sYTtpZihudWxsPT10JiYodD17fSksbnVsbD09biYmKG49e30pLCJvYmplY3QiPT10eXBlb2YgdCYmKG49dCx0PW51bGwpLG49ZnVuY3Rpb24oKXt2YXIgdCxlLHI7ZT17fTtmb3IodCBpbiBuKXI9blt0XSxlW3RdPXI7cmV0dXJuIGV9KCksdGhpcy5fdGV4dE9wdGlvbnMpe2E9dGhpcy5fdGV4dE9wdGlvbnM7Zm9yKHIgaW4gYSlvPWFbcl0sImNvbnRpbnVlZCIhPT1yJiZudWxsPT1uW3JdJiYobltyXT1vKX1yZXR1cm4gbnVsbCE9dCYmKHRoaXMueD10KSxudWxsIT1lJiYodGhpcy55PWUpLG4ubGluZUJyZWFrIT09ITEmJihpPXRoaXMucGFnZS5tYXJnaW5zLG51bGw9PW4ud2lkdGgmJihuLndpZHRoPXRoaXMucGFnZS53aWR0aC10aGlzLngtaS5yaWdodCkpLG4uY29sdW1uc3x8KG4uY29sdW1ucz0wKSxudWxsPT1uLmNvbHVtbkdhcCYmKG4uY29sdW1uR2FwPTE4KSxufSxfbGluZTpmdW5jdGlvbih0LGUsbil7dmFyIHI7cmV0dXJuIG51bGw9PWUmJihlPXt9KSx0aGlzLl9mcmFnbWVudCh0LHRoaXMueCx0aGlzLnksZSkscj1lLmxpbmVHYXB8fHRoaXMuX2xpbmVHYXB8fDAsbj90aGlzLnkrPXRoaXMuY3VycmVudExpbmVIZWlnaHQoITApK3I6dGhpcy54Kz10aGlzLndpZHRoT2ZTdHJpbmcodCl9LF9mcmFnbWVudDpmdW5jdGlvbih0LGUsbixyKXt2YXIgaSxvLGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdyxfLGIseDtpZih0PSIiK3QsMCE9PXQubGVuZ3RoKXtpZihpPXIuYWxpZ258fCJsZWZ0IixtPXIud29yZFNwYWNpbmd8fDAsbz1yLmNoYXJhY3RlclNwYWNpbmd8fDAsci53aWR0aClzd2l0Y2goaSl7Y2FzZSJyaWdodCI6Zz10aGlzLndpZHRoT2ZTdHJpbmcodC5yZXBsYWNlKC9ccyskLywiIiksciksZSs9ci5saW5lV2lkdGgtZzticmVhaztjYXNlImNlbnRlciI6ZSs9ci5saW5lV2lkdGgvMi1yLnRleHRXaWR0aC8yO2JyZWFrO2Nhc2UianVzdGlmeSI6eT10LnRyaW0oKS5zcGxpdCgvXHMrLyksZz10aGlzLndpZHRoT2ZTdHJpbmcodC5yZXBsYWNlKC9ccysvZywiIikscikscD10aGlzLndpZHRoT2ZTdHJpbmcoIiAiKStvLG09TWF0aC5tYXgoMCwoci5saW5lV2lkdGgtZykvTWF0aC5tYXgoMSx5Lmxlbmd0aC0xKS1wKX1pZihkPXIudGV4dFdpZHRoK20qKHIud29yZENvdW50LTEpK28qKHQubGVuZ3RoLTEpLHIubGluayYmdGhpcy5saW5rKGUsbixkLHRoaXMuY3VycmVudExpbmVIZWlnaHQoKSxyLmxpbmspLChyLnVuZGVybGluZXx8ci5zdHJpa2UpJiYodGhpcy5zYXZlKCksci5zdHJva2V8fHRoaXMuc3Ryb2tlQ29sb3IuYXBwbHkodGhpcyx0aGlzLl9maWxsQ29sb3IpLGw9dGhpcy5fZm9udFNpemU8MTA/LjU6TWF0aC5mbG9vcih0aGlzLl9mb250U2l6ZS8xMCksdGhpcy5saW5lV2lkdGgobCkscz1yLnVuZGVybGluZT8xOjIsYz1uK3RoaXMuY3VycmVudExpbmVIZWlnaHQoKS9zLHIudW5kZXJsaW5lJiYoYy09bCksdGhpcy5tb3ZlVG8oZSxjKSx0aGlzLmxpbmVUbyhlK2QsYyksdGhpcy5zdHJva2UoKSx0aGlzLnJlc3RvcmUoKSksdGhpcy5zYXZlKCksdGhpcy50cmFuc2Zvcm0oMSwwLDAsLTEsMCx0aGlzLnBhZ2UuaGVpZ2h0KSxuPXRoaXMucGFnZS5oZWlnaHQtbi10aGlzLl9mb250LmFzY2VuZGVyLzFlMyp0aGlzLl9mb250U2l6ZSxudWxsPT0odz10aGlzLnBhZ2UuZm9udHMpW3g9dGhpcy5fZm9udC5pZF0mJih3W3hdPXRoaXMuX2ZvbnQucmVmKCkpLHRoaXMuX2ZvbnQudXNlKHQpLHRoaXMuYWRkQ29udGVudCgiQlQiKSx0aGlzLmFkZENvbnRlbnQoIiIrZSsiICIrbisiIFRkIiksdGhpcy5hZGRDb250ZW50KCIvIit0aGlzLl9mb250LmlkKyIgIit0aGlzLl9mb250U2l6ZSsiIFRmIiksZj1yLmZpbGwmJnIuc3Ryb2tlPzI6ci5zdHJva2U/MTowLGYmJnRoaXMuYWRkQ29udGVudCgiIitmKyIgVHIiKSxvJiZ0aGlzLmFkZENvbnRlbnQoIiIrbysiIFRjIiksbSl7Zm9yKHk9dC50cmltKCkuc3BsaXQoL1xzKy8pLG0rPXRoaXMud2lkdGhPZlN0cmluZygiICIpK28sbSo9MWUzL3RoaXMuX2ZvbnRTaXplLGE9W10sXz0wLGI9eS5sZW5ndGg7Yj5fO18rKyl2PXlbX10saD10aGlzLl9mb250LmVuY29kZSh2KSxoPWZ1bmN0aW9uKCl7dmFyIHQsZSxuO2ZvcihuPVtdLHU9dD0wLGU9aC5sZW5ndGg7ZT50O3U9dCs9MSluLnB1c2goaC5jaGFyQ29kZUF0KHUpLnRvU3RyaW5nKDE2KSk7cmV0dXJuIG59KCkuam9pbigiIiksYS5wdXNoKCI8IitoKyI+ICIrLW0pO3RoaXMuYWRkQ29udGVudCgiWyIrYS5qb2luKCIgIikrIl0gVEoiKX1lbHNlIGg9dGhpcy5fZm9udC5lbmNvZGUodCksaD1mdW5jdGlvbigpe3ZhciB0LGUsbjtmb3Iobj1bXSx1PXQ9MCxlPWgubGVuZ3RoO2U+dDt1PXQrPTEpbi5wdXNoKGguY2hhckNvZGVBdCh1KS50b1N0cmluZygxNikpO3JldHVybiBufSgpLmpvaW4oIiIpLHRoaXMuYWRkQ29udGVudCgiPCIraCsiPiBUaiIpO3JldHVybiB0aGlzLmFkZENvbnRlbnQoIkVUIiksdGhpcy5yZXN0b3JlKCl9fX19KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUscixpLG8sYTthPW4oNDkpLGU9YS5QREZHcmFkaWVudCxyPWEuUERGTGluZWFyR3JhZGllbnQsaT1hLlBERlJhZGlhbEdyYWRpZW50LHQuZXhwb3J0cz17aW5pdENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29wYWNpdHlSZWdpc3RyeT17fSx0aGlzLl9vcGFjaXR5Q291bnQ9MCx0aGlzLl9ncmFkQ291bnQ9MH0sX25vcm1hbGl6ZUNvbG9yOmZ1bmN0aW9uKHQpe3ZhciBuLHI7cmV0dXJuIHQgaW5zdGFuY2VvZiBlP3Q6KCJzdHJpbmciPT10eXBlb2YgdCYmKCIjIj09PXQuY2hhckF0KDApPyg0PT09dC5sZW5ndGgmJih0PXQucmVwbGFjZSgvIyhbMC05QS1GXSkoWzAtOUEtRl0pKFswLTlBLUZdKS9pLCIjJDEkMSQyJDIkMyQzIikpLG49cGFyc2VJbnQodC5zbGljZSgxKSwxNiksdD1bbj4+MTYsbj4+OCYyNTUsMjU1Jm5dKTpvW3RdJiYodD1vW3RdKSksQXJyYXkuaXNBcnJheSh0KT8oMz09PXQubGVuZ3RoP3Q9ZnVuY3Rpb24oKXt2YXIgZSxuLGk7Zm9yKGk9W10sZT0wLG49dC5sZW5ndGg7bj5lO2UrKylyPXRbZV0saS5wdXNoKHIvMjU1KTtyZXR1cm4gaX0oKTo0PT09dC5sZW5ndGgmJih0PWZ1bmN0aW9uKCl7dmFyIGUsbixpO2ZvcihpPVtdLGU9MCxuPXQubGVuZ3RoO24+ZTtlKyspcj10W2VdLGkucHVzaChyLzEwMCk7cmV0dXJuIGl9KCkpLHQpOm51bGwpfSxfc2V0Q29sb3I6ZnVuY3Rpb24odCxuKXt2YXIgcixpLG8sYTtyZXR1cm4odD10aGlzLl9ub3JtYWxpemVDb2xvcih0KSk/KHRoaXMuX3NNYXNrZWQmJihyPXRoaXMucmVmKHtUeXBlOiJFeHRHU3RhdGUiLFNNYXNrOiJOb25lIn0pLHIuZW5kKCksaT0iR3MiKyArK3RoaXMuX29wYWNpdHlDb3VudCx0aGlzLnBhZ2UuZXh0X2dzdGF0ZXNbaV09cix0aGlzLmFkZENvbnRlbnQoIi8iK2krIiBncyIpLHRoaXMuX3NNYXNrZWQ9ITEpLG89bj8iU0NOIjoic2NuIix0IGluc3RhbmNlb2YgZT8odGhpcy5fc2V0Q29sb3JTcGFjZSgiUGF0dGVybiIsbiksdC5hcHBseShvKSk6KGE9ND09PXQubGVuZ3RoPyJEZXZpY2VDTVlLIjoiRGV2aWNlUkdCIix0aGlzLl9zZXRDb2xvclNwYWNlKGEsbiksdD10LmpvaW4oIiAiKSx0aGlzLmFkZENvbnRlbnQoIiIrdCsiICIrbykpLCEwKTohMX0sX3NldENvbG9yU3BhY2U6ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbj1lPyJDUyI6ImNzIix0aGlzLmFkZENvbnRlbnQoIi8iK3QrIiAiK24pfSxmaWxsQ29sb3I6ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbnVsbD09ZSYmKGU9MSksbj10aGlzLl9zZXRDb2xvcih0LCExKSxuJiZ0aGlzLmZpbGxPcGFjaXR5KGUpLHRoaXMuX2ZpbGxDb2xvcj1bdCxlXSx0aGlzfSxzdHJva2VDb2xvcjpmdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBudWxsPT1lJiYoZT0xKSxuPXRoaXMuX3NldENvbG9yKHQsITApLG4mJnRoaXMuc3Ryb2tlT3BhY2l0eShlKSx0aGlzfSxvcGFjaXR5OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kb09wYWNpdHkodCx0KSx0aGlzfSxmaWxsT3BhY2l0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZG9PcGFjaXR5KHQsbnVsbCksdGhpc30sc3Ryb2tlT3BhY2l0eTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZG9PcGFjaXR5KG51bGwsdCksdGhpc30sX2RvT3BhY2l0eTpmdW5jdGlvbih0LGUpe3ZhciBuLHIsaSxvLGE7aWYobnVsbCE9dHx8bnVsbCE9ZSlyZXR1cm4gbnVsbCE9dCYmKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHQpKSksbnVsbCE9ZSYmKGU9TWF0aC5tYXgoMCxNYXRoLm1pbigxLGUpKSksaT0iIit0KyJfIitlLHRoaXMuX29wYWNpdHlSZWdpc3RyeVtpXT8oYT10aGlzLl9vcGFjaXR5UmVnaXN0cnlbaV0sbj1hWzBdLG89YVsxXSk6KG49e1R5cGU6IkV4dEdTdGF0ZSJ9LG51bGwhPXQmJihuLmNhPXQpLG51bGwhPWUmJihuLkNBPWUpLG49dGhpcy5yZWYobiksbi5lbmQoKSxyPSsrdGhpcy5fb3BhY2l0eUNvdW50LG89IkdzIityLHRoaXMuX29wYWNpdHlSZWdpc3RyeVtpXT1bbixvXSksdGhpcy5wYWdlLmV4dF9nc3RhdGVzW29dPW4sdGhpcy5hZGRDb250ZW50KCIvIitvKyIgZ3MiKX0sbGluZWFyR3JhZGllbnQ6ZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuIG5ldyByKHRoaXMsdCxlLG4saSl9LHJhZGlhbEdyYWRpZW50OmZ1bmN0aW9uKHQsZSxuLHIsbyxhKXtyZXR1cm4gbmV3IGkodGhpcyx0LGUsbixyLG8sYSl9fSxvPXthbGljZWJsdWU6WzI0MCwyNDgsMjU1XSxhbnRpcXVld2hpdGU6WzI1MCwyMzUsMjE1XSxhcXVhOlswLDI1NSwyNTVdLGFxdWFtYXJpbmU6WzEyNywyNTUsMjEyXSxhenVyZTpbMjQwLDI1NSwyNTVdLGJlaWdlOlsyNDUsMjQ1LDIyMF0sYmlzcXVlOlsyNTUsMjI4LDE5Nl0sYmxhY2s6WzAsMCwwXSxibGFuY2hlZGFsbW9uZDpbMjU1LDIzNSwyMDVdLGJsdWU6WzAsMCwyNTVdLGJsdWV2aW9sZXQ6WzEzOCw0MywyMjZdLGJyb3duOlsxNjUsNDIsNDJdLGJ1cmx5d29vZDpbMjIyLDE4NCwxMzVdLGNhZGV0Ymx1ZTpbOTUsMTU4LDE2MF0sY2hhcnRyZXVzZTpbMTI3LDI1NSwwXSxjaG9jb2xhdGU6WzIxMCwxMDUsMzBdLGNvcmFsOlsyNTUsMTI3LDgwXSxjb3JuZmxvd2VyYmx1ZTpbMTAwLDE0OSwyMzddLGNvcm5zaWxrOlsyNTUsMjQ4LDIyMF0sY3JpbXNvbjpbMjIwLDIwLDYwXSxjeWFuOlswLDI1NSwyNTVdLGRhcmtibHVlOlswLDAsMTM5XSxkYXJrY3lhbjpbMCwxMzksMTM5XSxkYXJrZ29sZGVucm9kOlsxODQsMTM0LDExXSxkYXJrZ3JheTpbMTY5LDE2OSwxNjldLGRhcmtncmVlbjpbMCwxMDAsMF0sZGFya2dyZXk6WzE2OSwxNjksMTY5XSxkYXJra2hha2k6WzE4OSwxODMsMTA3XSxkYXJrbWFnZW50YTpbMTM5LDAsMTM5XSxkYXJrb2xpdmVncmVlbjpbODUsMTA3LDQ3XSxkYXJrb3JhbmdlOlsyNTUsMTQwLDBdLGRhcmtvcmNoaWQ6WzE1Myw1MCwyMDRdLGRhcmtyZWQ6WzEzOSwwLDBdLGRhcmtzYWxtb246WzIzMywxNTAsMTIyXSxkYXJrc2VhZ3JlZW46WzE0MywxODgsMTQzXSxkYXJrc2xhdGVibHVlOls3Miw2MSwxMzldLGRhcmtzbGF0ZWdyYXk6WzQ3LDc5LDc5XSxkYXJrc2xhdGVncmV5Ols0Nyw3OSw3OV0sZGFya3R1cnF1b2lzZTpbMCwyMDYsMjA5XSxkYXJrdmlvbGV0OlsxNDgsMCwyMTFdLGRlZXBwaW5rOlsyNTUsMjAsMTQ3XSxkZWVwc2t5Ymx1ZTpbMCwxOTEsMjU1XSxkaW1ncmF5OlsxMDUsMTA1LDEwNV0sZGltZ3JleTpbMTA1LDEwNSwxMDVdLGRvZGdlcmJsdWU6WzMwLDE0NCwyNTVdLGZpcmVicmljazpbMTc4LDM0LDM0XSxmbG9yYWx3aGl0ZTpbMjU1LDI1MCwyNDBdLGZvcmVzdGdyZWVuOlszNCwxMzksMzRdLGZ1Y2hzaWE6WzI1NSwwLDI1NV0sZ2FpbnNib3JvOlsyMjAsMjIwLDIyMF0sZ2hvc3R3aGl0ZTpbMjQ4LDI0OCwyNTVdLGdvbGQ6WzI1NSwyMTUsMF0sZ29sZGVucm9kOlsyMTgsMTY1LDMyXSxncmF5OlsxMjgsMTI4LDEyOF0sZ3JleTpbMTI4LDEyOCwxMjhdLGdyZWVuOlswLDEyOCwwXSxncmVlbnllbGxvdzpbMTczLDI1NSw0N10saG9uZXlkZXc6WzI0MCwyNTUsMjQwXSxob3RwaW5rOlsyNTUsMTA1LDE4MF0saW5kaWFucmVkOlsyMDUsOTIsOTJdLGluZGlnbzpbNzUsMCwxMzBdLGl2b3J5OlsyNTUsMjU1LDI0MF0sa2hha2k6WzI0MCwyMzAsMTQwXSxsYXZlbmRlcjpbMjMwLDIzMCwyNTBdLGxhdmVuZGVyYmx1c2g6WzI1NSwyNDAsMjQ1XSxsYXduZ3JlZW46WzEyNCwyNTIsMF0sbGVtb25jaGlmZm9uOlsyNTUsMjUwLDIwNV0sbGlnaHRibHVlOlsxNzMsMjE2LDIzMF0sbGlnaHRjb3JhbDpbMjQwLDEyOCwxMjhdLGxpZ2h0Y3lhbjpbMjI0LDI1NSwyNTVdLGxpZ2h0Z29sZGVucm9keWVsbG93OlsyNTAsMjUwLDIxMF0sbGlnaHRncmF5OlsyMTEsMjExLDIxMV0sbGlnaHRncmVlbjpbMTQ0LDIzOCwxNDRdLGxpZ2h0Z3JleTpbMjExLDIxMSwyMTFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTNdLGxpZ2h0c2FsbW9uOlsyNTUsMTYwLDEyMl0sbGlnaHRzZWFncmVlbjpbMzIsMTc4LDE3MF0sbGlnaHRza3libHVlOlsxMzUsMjA2LDI1MF0sbGlnaHRzbGF0ZWdyYXk6WzExOSwxMzYsMTUzXSxsaWdodHNsYXRlZ3JleTpbMTE5LDEzNiwxNTNdLGxpZ2h0c3RlZWxibHVlOlsxNzYsMTk2LDIyMl0sbGlnaHR5ZWxsb3c6WzI1NSwyNTUsMjI0XSxsaW1lOlswLDI1NSwwXSxsaW1lZ3JlZW46WzUwLDIwNSw1MF0sbGluZW46WzI1MCwyNDAsMjMwXSxtYWdlbnRhOlsyNTUsMCwyNTVdLG1hcm9vbjpbMTI4LDAsMF0sbWVkaXVtYXF1YW1hcmluZTpbMTAyLDIwNSwxNzBdLG1lZGl1bWJsdWU6WzAsMCwyMDVdLG1lZGl1bW9yY2hpZDpbMTg2LDg1LDIxMV0sbWVkaXVtcHVycGxlOlsxNDcsMTEyLDIxOV0sbWVkaXVtc2VhZ3JlZW46WzYwLDE3OSwxMTNdLG1lZGl1bXNsYXRlYmx1ZTpbMTIzLDEwNCwyMzhdLG1lZGl1bXNwcmluZ2dyZWVuOlswLDI1MCwxNTRdLG1lZGl1bXR1cnF1b2lzZTpbNzIsMjA5LDIwNF0sbWVkaXVtdmlvbGV0cmVkOlsxOTksMjEsMTMzXSxtaWRuaWdodGJsdWU6WzI1LDI1LDExMl0sbWludGNyZWFtOlsyNDUsMjU1LDI1MF0sbWlzdHlyb3NlOlsyNTUsMjI4LDIyNV0sbW9jY2FzaW46WzI1NSwyMjgsMTgxXSxuYXZham93aGl0ZTpbMjU1LDIyMiwxNzNdLG5hdnk6WzAsMCwxMjhdLG9sZGxhY2U6WzI1MywyNDUsMjMwXSxvbGl2ZTpbMTI4LDEyOCwwXSxvbGl2ZWRyYWI6WzEwNywxNDIsMzVdLG9yYW5nZTpbMjU1LDE2NSwwXSxvcmFuZ2VyZWQ6WzI1NSw2OSwwXSxvcmNoaWQ6WzIxOCwxMTIsMjE0XSxwYWxlZ29sZGVucm9kOlsyMzgsMjMyLDE3MF0scGFsZWdyZWVuOlsxNTIsMjUxLDE1Ml0scGFsZXR1cnF1b2lzZTpbMTc1LDIzOCwyMzhdLHBhbGV2aW9sZXRyZWQ6WzIxOSwxMTIsMTQ3XSxwYXBheWF3aGlwOlsyNTUsMjM5LDIxM10scGVhY2hwdWZmOlsyNTUsMjE4LDE4NV0scGVydTpbMjA1LDEzMyw2M10scGluazpbMjU1LDE5MiwyMDNdLHBsdW06WzIyMSwxNjAsMjIxXSxwb3dkZXJibHVlOlsxNzYsMjI0LDIzMF0scHVycGxlOlsxMjgsMCwxMjhdLHJlZDpbMjU1LDAsMF0scm9zeWJyb3duOlsxODgsMTQzLDE0M10scm95YWxibHVlOls2NSwxMDUsMjI1XSxzYWRkbGVicm93bjpbMTM5LDY5LDE5XSxzYWxtb246WzI1MCwxMjgsMTE0XSxzYW5keWJyb3duOlsyNDQsMTY0LDk2XSxzZWFncmVlbjpbNDYsMTM5LDg3XSxzZWFzaGVsbDpbMjU1LDI0NSwyMzhdLHNpZW5uYTpbMTYwLDgyLDQ1XSxzaWx2ZXI6WzE5MiwxOTIsMTkyXSxza3libHVlOlsxMzUsMjA2LDIzNV0sc2xhdGVibHVlOlsxMDYsOTAsMjA1XSxzbGF0ZWdyYXk6WzExMiwxMjgsMTQ0XSxzbGF0ZWdyZXk6WzExMiwxMjgsMTQ0XSxzbm93OlsyNTUsMjUwLDI1MF0sc3ByaW5nZ3JlZW46WzAsMjU1LDEyN10sc3RlZWxibHVlOls3MCwxMzAsMTgwXSx0YW46WzIxMCwxODAsMTQwXSx0ZWFsOlswLDEyOCwxMjhdLHRoaXN0bGU6WzIxNiwxOTEsMjE2XSx0b21hdG86WzI1NSw5OSw3MV0sdHVycXVvaXNlOls2NCwyMjQsMjA4XSx2aW9sZXQ6WzIzOCwxMzAsMjM4XSx3aGVhdDpbMjQ1LDIyMiwxNzldLHdoaXRlOlsyNTUsMjU1LDI1NV0sd2hpdGVzbW9rZTpbMjQ1LDI0NSwyNDVdLHllbGxvdzpbMjU1LDI1NSwwXSx5ZWxsb3dncmVlbjpbMTU0LDIwNSw1MF19fSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXt2YXIgcjtyPW4oMTcpLHQuZXhwb3J0cz17aW5pdEltYWdlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbWFnZVJlZ2lzdHJ5PXt9LHRoaXMuX2ltYWdlQ291bnQ9MH0saW1hZ2U6ZnVuY3Rpb24odCxuLGksbyl7dmFyIGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdztyZXR1cm4gbnVsbD09byYmKG89e30pLCJvYmplY3QiPT10eXBlb2YgbiYmKG89bixuPW51bGwpLG49bnVsbCE9KG09bnVsbCE9bj9uOm8ueCk/bTp0aGlzLngsaT1udWxsIT0oeT1udWxsIT1pP2k6by55KT95OnRoaXMueSxlLmlzQnVmZmVyKHQpfHwoYz10aGlzLl9pbWFnZVJlZ2lzdHJ5W3RdKSxjfHwoYz1yLm9wZW4odCwiSSIrICsrdGhpcy5faW1hZ2VDb3VudCksYy5lbWJlZCh0aGlzKSxlLmlzQnVmZmVyKHQpfHwodGhpcy5faW1hZ2VSZWdpc3RyeVt0XT1jKSksbnVsbD09KGc9dGhpcy5wYWdlLnhvYmplY3RzKVt2PWMubGFiZWxdJiYoZ1t2XT1jLm9iaiksZD1vLndpZHRofHxjLndpZHRoLHU9by5oZWlnaHR8fGMuaGVpZ2h0LG8ud2lkdGgmJiFvLmhlaWdodD8ocD1kL2Mud2lkdGgsZD1jLndpZHRoKnAsdT1jLmhlaWdodCpwKTpvLmhlaWdodCYmIW8ud2lkdGg/KGw9dS9jLmhlaWdodCxkPWMud2lkdGgqbCx1PWMuaGVpZ2h0KmwpOm8uc2NhbGU/KGQ9Yy53aWR0aCpvLnNjYWxlLHU9Yy5oZWlnaHQqby5zY2FsZSk6by5maXQmJih3PW8uZml0LGg9d1swXSxhPXdbMV0scz1oL2EsZj1jLndpZHRoL2MuaGVpZ2h0LGY+cz8oZD1oLHU9aC9mKToodT1hLGQ9YSpmKSwiY2VudGVyIj09PW8uYWxpZ24/bj1uK2gvMi1kLzI6InJpZ2h0Ij09PW8uYWxpZ24mJihuPW4raC1kKSwiY2VudGVyIj09PW8udmFsaWduP2k9aSthLzItdS8yOiJib3R0b20iPT09by52YWxpZ24mJihpPWkrYS11KSksdGhpcy55PT09aSYmKHRoaXMueSs9dSksdGhpcy5zYXZlKCksdGhpcy50cmFuc2Zvcm0oZCwwLDAsLXUsbixpK3UpLHRoaXMuYWRkQ29udGVudCgiLyIrYy5sYWJlbCsiIERvIiksdGhpcy5yZXN0b3JlKCksdGhpc319fSkuY2FsbCh0aGlzKX0pLmNhbGwoZSxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt0LmV4cG9ydHM9e2Fubm90YXRlOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzO2kuVHlwZT0iQW5ub3QiLGkuUmVjdD10aGlzLl9jb252ZXJ0UmVjdCh0LGUsbixyKSxpLkJvcmRlcj1bMCwwLDBdLCJMaW5rIiE9PWkuU3VidHlwZSYmbnVsbD09aS5DJiYoaS5DPXRoaXMuX25vcm1hbGl6ZUNvbG9yKGkuY29sb3J8fFswLDAsMF0pKSxkZWxldGUgaS5jb2xvciwic3RyaW5nIj09dHlwZW9mIGkuRGVzdCYmKGkuRGVzdD1uZXcgU3RyaW5nKGkuRGVzdCkpO2ZvcihvIGluIGkpcz1pW29dLGlbb1swXS50b1VwcGVyQ2FzZSgpK28uc2xpY2UoMSldPXM7cmV0dXJuIGE9dGhpcy5yZWYoaSksdGhpcy5wYWdlLmFubm90YXRpb25zLnB1c2goYSksYS5lbmQoKSx0aGlzfSxub3RlOmZ1bmN0aW9uKHQsZSxuLHIsaSxvKXtyZXR1cm4gbnVsbD09byYmKG89e30pLG8uU3VidHlwZT0iVGV4dCIsby5Db250ZW50cz1uZXcgU3RyaW5nKGkpLG8uTmFtZT0iQ29tbWVudCIsbnVsbD09by5jb2xvciYmKG8uY29sb3I9WzI0MywyMjMsOTJdKSx0aGlzLmFubm90YXRlKHQsZSxuLHIsbyl9LGxpbms6ZnVuY3Rpb24odCxlLG4scixpLG8pe3JldHVybiBudWxsPT1vJiYobz17fSksby5TdWJ0eXBlPSJMaW5rIixvLkE9dGhpcy5yZWYoe1M6IlVSSSIsVVJJOm5ldyBTdHJpbmcoaSl9KSxvLkEuZW5kKCksdGhpcy5hbm5vdGF0ZSh0LGUsbixyLG8pfSxfbWFya3VwOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzLGgsdTtyZXR1cm4gbnVsbD09aSYmKGk9e30pLHU9dGhpcy5fY29udmVydFJlY3QodCxlLG4sciksbz11WzBdLHM9dVsxXSxhPXVbMl0saD11WzNdLGkuUXVhZFBvaW50cz1bbyxoLGEsaCxvLHMsYSxzXSxpLkNvbnRlbnRzPW5ldyBTdHJpbmcsdGhpcy5hbm5vdGF0ZSh0LGUsbixyLGkpfSxoaWdobGlnaHQ6ZnVuY3Rpb24odCxlLG4scixpKXtyZXR1cm4gbnVsbD09aSYmKGk9e30pLGkuU3VidHlwZT0iSGlnaGxpZ2h0IixudWxsPT1pLmNvbG9yJiYoaS5jb2xvcj1bMjQxLDIzOCwxNDhdKSx0aGlzLl9tYXJrdXAodCxlLG4scixpKX0sdW5kZXJsaW5lOmZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIG51bGw9PWkmJihpPXt9KSxpLlN1YnR5cGU9IlVuZGVybGluZSIsdGhpcy5fbWFya3VwKHQsZSxuLHIsaSl9LHN0cmlrZTpmdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBudWxsPT1pJiYoaT17fSksaS5TdWJ0eXBlPSJTdHJpa2VPdXQiLHRoaXMuX21hcmt1cCh0LGUsbixyLGkpfSxsaW5lQW5ub3RhdGlvbjpmdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBudWxsPT1pJiYoaT17fSksaS5TdWJ0eXBlPSJMaW5lIixpLkNvbnRlbnRzPW5ldyBTdHJpbmcsaS5MPVt0LHRoaXMucGFnZS5oZWlnaHQtZSxuLHRoaXMucGFnZS5oZWlnaHQtcl0sdGhpcy5hbm5vdGF0ZSh0LGUsbixyLGkpfSxyZWN0QW5ub3RhdGlvbjpmdW5jdGlvbih0LGUsbixyLGkpe3JldHVybiBudWxsPT1pJiYoaT17fSksaS5TdWJ0eXBlPSJTcXVhcmUiLGkuQ29udGVudHM9bmV3IFN0cmluZyx0aGlzLmFubm90YXRlKHQsZSxuLHIsaSl9LGVsbGlwc2VBbm5vdGF0aW9uOmZ1bmN0aW9uKHQsZSxuLHIsaSl7cmV0dXJuIG51bGw9PWkmJihpPXt9KSxpLlN1YnR5cGU9IkNpcmNsZSIsaS5Db250ZW50cz1uZXcgU3RyaW5nLHRoaXMuYW5ub3RhdGUodCxlLG4scixpKX0sdGV4dEFubm90YXRpb246ZnVuY3Rpb24odCxlLG4scixpLG8pe3JldHVybiBudWxsPT1vJiYobz17fSksby5TdWJ0eXBlPSJGcmVlVGV4dCIsby5Db250ZW50cz1uZXcgU3RyaW5nKGkpLG8uREE9bmV3IFN0cmluZyx0aGlzLmFubm90YXRlKHQsZSxuLHIsbyl9LF9jb252ZXJ0UmVjdDpmdW5jdGlvbih0LGUsbixyKXt2YXIgaSxvLGEscyxoLHUsbCxjLGY7cmV0dXJuIGM9ZSxlKz1yLGw9dCtuLGY9dGhpcy5fY3RtLGk9ZlswXSxvPWZbMV0sYT1mWzJdLHM9ZlszXSxoPWZbNF0sdT1mWzVdLHQ9aSp0K2EqZStoLGU9byp0K3MqZSt1LGw9aSpsK2EqYytoLGM9bypsK3MqYyt1LFt0LGUsbCxjXX19fSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlO2U9big1MiksdC5leHBvcnRzPXtpbml0Rm9udHM6ZnVuY3Rpb24oKXt0aGlzLl9mb250RmFtaWxpZXM9e30sdGhpcy5fZm9udENvdW50PTAsdGhpcy5fZm9udFNpemU9MTIsdGhpcy5fZm9udD1udWxsLHRoaXMuX3JlZ2lzdGVyZWRGb250cz17fX0sZm9udDpmdW5jdGlvbih0LG4scil7dmFyIGksbyxhLHM7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBuJiYocj1uLG49bnVsbCksInN0cmluZyI9PXR5cGVvZiB0JiZ0aGlzLl9yZWdpc3RlcmVkRm9udHNbdF0/KGk9dCxzPXRoaXMuX3JlZ2lzdGVyZWRGb250c1t0XSx0PXMuc3JjLG49cy5mYW1pbHkpOihpPW58fHQsInN0cmluZyIhPXR5cGVvZiBpJiYoaT1udWxsKSksbnVsbCE9ciYmdGhpcy5mb250U2l6ZShyKSwobz10aGlzLl9mb250RmFtaWxpZXNbaV0pPyh0aGlzLl9mb250PW8sdGhpcyk6KGE9IkYiKyArK3RoaXMuX2ZvbnRDb3VudCx0aGlzLl9mb250PW5ldyBlKHRoaXMsdCxuLGEpLChvPXRoaXMuX2ZvbnRGYW1pbGllc1t0aGlzLl9mb250Lm5hbWVdKT8odGhpcy5fZm9udD1vLHRoaXMpOihpJiYodGhpcy5fZm9udEZhbWlsaWVzW2ldPXRoaXMuX2ZvbnQpLHRoaXMuX2ZvbnRGYW1pbGllc1t0aGlzLl9mb250Lm5hbWVdPXRoaXMuX2ZvbnQsdGhpcykpfSxmb250U2l6ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZm9udFNpemU9dCx0aGlzfSxjdXJyZW50TGluZUhlaWdodDpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dCYmKHQ9ITEpLHRoaXMuX2ZvbnQubGluZUhlaWdodCh0aGlzLl9mb250U2l6ZSx0KX0scmVnaXN0ZXJGb250OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdGhpcy5fcmVnaXN0ZXJlZEZvbnRzW3RdPXtzcmM6ZSxmYW1pbHk6bn0sdGhpc319fSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIGkoZSxuLHIpe2Z1bmN0aW9uIGkoKXtmb3IodmFyIHQ7bnVsbCE9PSh0PWUucmVhZCgpKTspcy5wdXNoKHQpLGgrPXQubGVuZ3RoO2Uub25jZSgicmVhZGFibGUiLGkpfWZ1bmN0aW9uIG8odCl7ZS5yZW1vdmVMaXN0ZW5lcigiZW5kIixhKSxlLnJlbW92ZUxpc3RlbmVyKCJyZWFkYWJsZSIsaSkscih0KX1mdW5jdGlvbiBhKCl7dmFyIG49dC5jb25jYXQocyxoKTtzPVtdLHIobnVsbCxuKSxlLmNsb3NlKCl9dmFyIHM9W10saD0wO2Uub24oImVycm9yIixvKSxlLm9uKCJlbmQiLGEpLGUuZW5kKG4pLGkoKX1mdW5jdGlvbiBvKGUsbil7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYobj1uZXcgdChuKSksIXQuaXNCdWZmZXIobikpdGhyb3cgbmV3IFR5cGVFcnJvcigiTm90IGEgc3RyaW5nIG9yIGJ1ZmZlciIpO3ZhciByPWcuWl9GSU5JU0g7cmV0dXJuIGUuX3Byb2Nlc3NDaHVuayhuLHIpfWZ1bmN0aW9uIGEodCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBhP3ZvaWQgZC5jYWxsKHRoaXMsdCxnLkRFRkxBVEUpOm5ldyBhKHQpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBzP3ZvaWQgZC5jYWxsKHRoaXMsdCxnLklORkxBVEUpOm5ldyBzKHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBoP3ZvaWQgZC5jYWxsKHRoaXMsdCxnLkdaSVApOm5ldyBoKHQpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiB1P3ZvaWQgZC5jYWxsKHRoaXMsdCxnLkdVTlpJUCk6bmV3IHUodCl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGw/dm9pZCBkLmNhbGwodGhpcyx0LGcuREVGTEFURVJBVyk6bmV3IGwodCl9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGM/dm9pZCBkLmNhbGwodGhpcyx0LGcuSU5GTEFURVJBVyk6bmV3IGModCl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIGY/dm9pZCBkLmNhbGwodGhpcyx0LGcuVU5aSVApOm5ldyBmKHQpfWZ1bmN0aW9uIGQobixyKXtpZih0aGlzLl9vcHRzPW49bnx8e30sdGhpcy5fY2h1bmtTaXplPW4uY2h1bmtTaXplfHxlLlpfREVGQVVMVF9DSFVOSyxwLmNhbGwodGhpcyxuKSxuLmZsdXNoJiZuLmZsdXNoIT09Zy5aX05PX0ZMVVNIJiZuLmZsdXNoIT09Zy5aX1BBUlRJQUxfRkxVU0gmJm4uZmx1c2ghPT1nLlpfU1lOQ19GTFVTSCYmbi5mbHVzaCE9PWcuWl9GVUxMX0ZMVVNIJiZuLmZsdXNoIT09Zy5aX0ZJTklTSCYmbi5mbHVzaCE9PWcuWl9CTE9DSyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZmx1c2ggZmxhZzogIituLmZsdXNoKTtpZih0aGlzLl9mbHVzaEZsYWc9bi5mbHVzaHx8Zy5aX05PX0ZMVVNILG4uY2h1bmtTaXplJiYobi5jaHVua1NpemU8ZS5aX01JTl9DSFVOS3x8bi5jaHVua1NpemU+ZS5aX01BWF9DSFVOSykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNodW5rIHNpemU6ICIrbi5jaHVua1NpemUpO2lmKG4ud2luZG93Qml0cyYmKG4ud2luZG93Qml0czxlLlpfTUlOX1dJTkRPV0JJVFN8fG4ud2luZG93Qml0cz5lLlpfTUFYX1dJTkRPV0JJVFMpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB3aW5kb3dCaXRzOiAiK24ud2luZG93Qml0cyk7aWYobi5sZXZlbCYmKG4ubGV2ZWw8ZS5aX01JTl9MRVZFTHx8bi5sZXZlbD5lLlpfTUFYX0xFVkVMKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29tcHJlc3Npb24gbGV2ZWw6ICIrbi5sZXZlbCk7aWYobi5tZW1MZXZlbCYmKG4ubWVtTGV2ZWw8ZS5aX01JTl9NRU1MRVZFTHx8bi5tZW1MZXZlbD5lLlpfTUFYX01FTUxFVkVMKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbWVtTGV2ZWw6ICIrbi5tZW1MZXZlbCk7aWYobi5zdHJhdGVneSYmbi5zdHJhdGVneSE9ZS5aX0ZJTFRFUkVEJiZuLnN0cmF0ZWd5IT1lLlpfSFVGRk1BTl9PTkxZJiZuLnN0cmF0ZWd5IT1lLlpfUkxFJiZuLnN0cmF0ZWd5IT1lLlpfRklYRUQmJm4uc3RyYXRlZ3khPWUuWl9ERUZBVUxUX1NUUkFURUdZKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJhdGVneTogIituLnN0cmF0ZWd5KTtpZihuLmRpY3Rpb25hcnkmJiF0LmlzQnVmZmVyKG4uZGljdGlvbmFyeSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRpY3Rpb25hcnk6IGl0IHNob3VsZCBiZSBhIEJ1ZmZlciBpbnN0YW5jZSIpO3RoaXMuX2JpbmRpbmc9bmV3IGcuWmxpYihyKTt2YXIgaT10aGlzO3RoaXMuX2hhZEVycm9yPSExLHRoaXMuX2JpbmRpbmcub25lcnJvcj1mdW5jdGlvbih0LG4pe2kuX2JpbmRpbmc9bnVsbCxpLl9oYWRFcnJvcj0hMDt2YXIgcj1uZXcgRXJyb3IodCk7ci5lcnJubz1uLHIuY29kZT1lLmNvZGVzW25dLGkuZW1pdCgiZXJyb3IiLHIpfTt2YXIgbz1lLlpfREVGQVVMVF9DT01QUkVTU0lPTjsibnVtYmVyIj09dHlwZW9mIG4ubGV2ZWwmJihvPW4ubGV2ZWwpO3ZhciBhPWUuWl9ERUZBVUxUX1NUUkFURUdZOyJudW1iZXIiPT10eXBlb2Ygbi5zdHJhdGVneSYmKGE9bi5zdHJhdGVneSksdGhpcy5fYmluZGluZy5pbml0KG4ud2luZG93Qml0c3x8ZS5aX0RFRkFVTFRfV0lORE9XQklUUyxvLG4ubWVtTGV2ZWx8fGUuWl9ERUZBVUxUX01FTUxFVkVMLGEsbi5kaWN0aW9uYXJ5KSx0aGlzLl9idWZmZXI9bmV3IHQodGhpcy5fY2h1bmtTaXplKSx0aGlzLl9vZmZzZXQ9MCx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5fbGV2ZWw9byx0aGlzLl9zdHJhdGVneT1hLHRoaXMub25jZSgiZW5kIix0aGlzLmNsb3NlKX12YXIgcD1uKDU1KSxnPW4oNTApLHY9big2MCksbT1uKDUzKS5vaztnLlpfTUlOX1dJTkRPV0JJVFM9OCxnLlpfTUFYX1dJTkRPV0JJVFM9MTUsZy5aX0RFRkFVTFRfV0lORE9XQklUUz0xNSxnLlpfTUlOX0NIVU5LPTY0LGcuWl9NQVhfQ0hVTks9MS8wLGcuWl9ERUZBVUxUX0NIVU5LPTE2Mzg0LGcuWl9NSU5fTUVNTEVWRUw9MSxnLlpfTUFYX01FTUxFVkVMPTksZy5aX0RFRkFVTFRfTUVNTEVWRUw9OCxnLlpfTUlOX0xFVkVMPS0xLGcuWl9NQVhfTEVWRUw9OSxnLlpfREVGQVVMVF9MRVZFTD1nLlpfREVGQVVMVF9DT01QUkVTU0lPTixPYmplY3Qua2V5cyhnKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QubWF0Y2goL15aLykmJihlW3RdPWdbdF0pfSksZS5jb2Rlcz17Wl9PSzpnLlpfT0ssWl9TVFJFQU1fRU5EOmcuWl9TVFJFQU1fRU5ELFpfTkVFRF9ESUNUOmcuWl9ORUVEX0RJQ1QsWl9FUlJOTzpnLlpfRVJSTk8sWl9TVFJFQU1fRVJST1I6Zy5aX1NUUkVBTV9FUlJPUixaX0RBVEFfRVJST1I6Zy5aX0RBVEFfRVJST1IsWl9NRU1fRVJST1I6Zy5aX01FTV9FUlJPUixaX0JVRl9FUlJPUjpnLlpfQlVGX0VSUk9SLFpfVkVSU0lPTl9FUlJPUjpnLlpfVkVSU0lPTl9FUlJPUn0sT2JqZWN0LmtleXMoZS5jb2RlcykuZm9yRWFjaChmdW5jdGlvbih0KXtlLmNvZGVzW2UuY29kZXNbdF1dPXR9KSxlLkRlZmxhdGU9YSxlLkluZmxhdGU9cyxlLkd6aXA9aCxlLkd1bnppcD11LGUuRGVmbGF0ZVJhdz1sLGUuSW5mbGF0ZVJhdz1jLGUuVW56aXA9ZixlLmNyZWF0ZURlZmxhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhKHQpfSxlLmNyZWF0ZUluZmxhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBzKHQpfSxlLmNyZWF0ZURlZmxhdGVSYXc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsKHQpfSxlLmNyZWF0ZUluZmxhdGVSYXc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBjKHQpfSxlLmNyZWF0ZUd6aXA9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBoKHQpfSxlLmNyZWF0ZUd1bnppcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHUodCl9LGUuY3JlYXRlVW56aXA9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBmKHQpfSxlLmRlZmxhdGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9e30pLGkobmV3IGEoZSksdCxuKX0sZS5kZWZsYXRlU3luYz1mdW5jdGlvbih0LGUpe3JldHVybiBvKG5ldyBhKGUpLHQpfSxlLmd6aXA9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9e30pLGkobmV3IGgoZSksdCxuKX0sZS5nemlwU3luYz1mdW5jdGlvbih0LGUpe3JldHVybiBvKG5ldyBoKGUpLHQpfSxlLmRlZmxhdGVSYXc9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9e30pLGkobmV3IGwoZSksdCxuKX0sZS5kZWZsYXRlUmF3U3luYz1mdW5jdGlvbih0LGUpe3JldHVybiBvKG5ldyBsKGUpLHQpfSxlLnVuemlwPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPXt9KSxpKG5ldyBmKGUpLHQsbil9LGUudW56aXBTeW5jPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8obmV3IGYoZSksdCl9LGUuaW5mbGF0ZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJihuPWUsZT17fSksaShuZXcgcyhlKSx0LG4pfSxlLmluZmxhdGVTeW5jPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8obmV3IHMoZSksdCl9LGUuZ3VuemlwPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPXt9KSxpKG5ldyB1KGUpLHQsbil9LGUuZ3VuemlwU3luYz1mdW5jdGlvbih0LGUpe3JldHVybiBvKG5ldyB1KGUpLHQpfSxlLmluZmxhdGVSYXc9ZnVuY3Rpb24odCxlLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9e30pLGkobmV3IGMoZSksdCxuKX0sZS5pbmZsYXRlUmF3U3luYz1mdW5jdGlvbih0LGUpe3JldHVybiBvKG5ldyBjKGUpLHQpfSx2LmluaGVyaXRzKGQscCksZC5wcm90b3R5cGUucGFyYW1zPWZ1bmN0aW9uKHQsbixpKXtpZih0PGUuWl9NSU5fTEVWRUx8fHQ+ZS5aX01BWF9MRVZFTCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW52YWxpZCBjb21wcmVzc2lvbiBsZXZlbDogIit0KTtpZihuIT1lLlpfRklMVEVSRUQmJm4hPWUuWl9IVUZGTUFOX09OTFkmJm4hPWUuWl9STEUmJm4hPWUuWl9GSVhFRCYmbiE9ZS5aX0RFRkFVTFRfU1RSQVRFR1kpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBzdHJhdGVneTogIituKTtpZih0aGlzLl9sZXZlbCE9PXR8fHRoaXMuX3N0cmF0ZWd5IT09bil7dmFyIG89dGhpczt0aGlzLmZsdXNoKGcuWl9TWU5DX0ZMVVNILGZ1bmN0aW9uKCl7by5fYmluZGluZy5wYXJhbXModCxuKSxvLl9oYWRFcnJvcnx8KG8uX2xldmVsPXQsby5fc3RyYXRlZ3k9bixpJiZpKCkpfSl9ZWxzZSByLm5leHRUaWNrKGkpfSxkLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9iaW5kaW5nLnJlc2V0KCl9LGQucHJvdG90eXBlLl9mbHVzaD1mdW5jdGlvbihlKXt0aGlzLl90cmFuc2Zvcm0obmV3IHQoMCksIiIsZSl9LGQucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKGUsbil7dmFyIGk9dGhpcy5fd3JpdGFibGVTdGF0ZTtpZigoImZ1bmN0aW9uIj09dHlwZW9mIGV8fHZvaWQgMD09PWUmJiFuKSYmKG49ZSxlPWcuWl9GVUxMX0ZMVVNIKSxpLmVuZGVkKW4mJnIubmV4dFRpY2sobik7ZWxzZSBpZihpLmVuZGluZyluJiZ0aGlzLm9uY2UoImVuZCIsbik7ZWxzZSBpZihpLm5lZWREcmFpbil7dmFyIG89dGhpczt0aGlzLm9uY2UoImRyYWluIixmdW5jdGlvbigpe28uZmx1c2gobil9KX1lbHNlIHRoaXMuX2ZsdXNoRmxhZz1lLHRoaXMud3JpdGUobmV3IHQoMCksIiIsbil9LGQucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKHQpe2lmKHQmJnIubmV4dFRpY2sodCksIXRoaXMuX2Nsb3NlZCl7dGhpcy5fY2xvc2VkPSEwLHRoaXMuX2JpbmRpbmcuY2xvc2UoKTt2YXIgZT10aGlzO3IubmV4dFRpY2soZnVuY3Rpb24oKXtlLmVtaXQoImNsb3NlIil9KX19LGQucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oZSxuLHIpe3ZhciBpLG89dGhpcy5fd3JpdGFibGVTdGF0ZSxhPW8uZW5kaW5nfHxvLmVuZGVkLHM9YSYmKCFlfHxvLmxlbmd0aD09PWUubGVuZ3RoKTtpZihudWxsPT09IWUmJiF0LmlzQnVmZmVyKGUpKXJldHVybiByKG5ldyBFcnJvcigiaW52YWxpZCBpbnB1dCIpKTtzP2k9Zy5aX0ZJTklTSDooaT10aGlzLl9mbHVzaEZsYWcsZS5sZW5ndGg+PW8ubGVuZ3RoJiYodGhpcy5fZmx1c2hGbGFnPXRoaXMuX29wdHMuZmx1c2h8fGcuWl9OT19GTFVTSCkpO3RoaXMuX3Byb2Nlc3NDaHVuayhlLGkscil9LGQucHJvdG90eXBlLl9wcm9jZXNzQ2h1bms9ZnVuY3Rpb24oZSxuLHIpe2Z1bmN0aW9uIGkobCxkKXtpZighaC5faGFkRXJyb3Ipe3ZhciBwPWEtZDtpZihtKHA+PTAsImhhdmUgc2hvdWxkIG5vdCBnbyBkb3duIikscD4wKXt2YXIgZz1oLl9idWZmZXIuc2xpY2UoaC5fb2Zmc2V0LGguX29mZnNldCtwKTtoLl9vZmZzZXQrPXAsdT9oLnB1c2goZyk6KGMucHVzaChnKSxmKz1nLmxlbmd0aCl9aWYoKDA9PT1kfHxoLl9vZmZzZXQ+PWguX2NodW5rU2l6ZSkmJihhPWguX2NodW5rU2l6ZSxoLl9vZmZzZXQ9MCxoLl9idWZmZXI9bmV3IHQoaC5fY2h1bmtTaXplKSksMD09PWQpe2lmKHMrPW8tbCxvPWwsIXUpcmV0dXJuITA7dmFyIHY9aC5fYmluZGluZy53cml0ZShuLGUscyxvLGguX2J1ZmZlcixoLl9vZmZzZXQsaC5fY2h1bmtTaXplKTtyZXR1cm4gdi5jYWxsYmFjaz1pLHZvaWQodi5idWZmZXI9ZSl9cmV0dXJuIHU/dm9pZCByKCk6ITF9fXZhciBvPWUmJmUubGVuZ3RoLGE9dGhpcy5fY2h1bmtTaXplLXRoaXMuX29mZnNldCxzPTAsaD10aGlzLHU9ImZ1bmN0aW9uIj09dHlwZW9mIHI7aWYoIXUpe3ZhciBsLGM9W10sZj0wO3RoaXMub24oImVycm9yIixmdW5jdGlvbih0KXtsPXR9KTtkbyB2YXIgZD10aGlzLl9iaW5kaW5nLndyaXRlU3luYyhuLGUscyxvLHRoaXMuX2J1ZmZlcix0aGlzLl9vZmZzZXQsYSk7d2hpbGUoIXRoaXMuX2hhZEVycm9yJiZpKGRbMF0sZFsxXSkpO2lmKHRoaXMuX2hhZEVycm9yKXRocm93IGw7dmFyIHA9dC5jb25jYXQoYyxmKTtyZXR1cm4gdGhpcy5jbG9zZSgpLHB9dmFyIGc9dGhpcy5fYmluZGluZy53cml0ZShuLGUscyxvLHRoaXMuX2J1ZmZlcix0aGlzLl9vZmZzZXQsYSk7Zy5idWZmZXI9ZSxnLmNhbGxiYWNrPWl9LHYuaW5oZXJpdHMoYSxkKSx2LmluaGVyaXRzKHMsZCksdi5pbmhlcml0cyhoLGQpLHYuaW5oZXJpdHModSxkKSx2LmluaGVyaXRzKGwsZCksdi5pbmhlcml0cyhjLGQpLHYuaW5oZXJpdHMoZixkKX0pLmNhbGwoZSxuKDQpLkJ1ZmZlcixuKDYxKSl9LGZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKCl7aS5jYWxsKHRoaXMpfXQuZXhwb3J0cz1yO3ZhciBpPW4oNTQpLkV2ZW50RW1pdHRlcixvPW4oNjIpO28ocixpKSxyLlJlYWRhYmxlPW4oNTYpLHIuV3JpdGFibGU9big1Nyksci5EdXBsZXg9big1OCksci5UcmFuc2Zvcm09big1NSksci5QYXNzVGhyb3VnaD1uKDU5KSxyLlN0cmVhbT1yLHIucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKGUpe3Qud3JpdGFibGUmJiExPT09dC53cml0ZShlKSYmdS5wYXVzZSYmdS5wYXVzZSgpfWZ1bmN0aW9uIHIoKXt1LnJlYWRhYmxlJiZ1LnJlc3VtZSYmdS5yZXN1bWUoKX1mdW5jdGlvbiBvKCl7bHx8KGw9ITAsdC5lbmQoKSl9ZnVuY3Rpb24gYSgpe2x8fChsPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlc3Ryb3kmJnQuZGVzdHJveSgpKX1mdW5jdGlvbiBzKHQpe2lmKGgoKSwwPT09aS5saXN0ZW5lckNvdW50KHRoaXMsImVycm9yIikpdGhyb3cgdH1mdW5jdGlvbiBoKCl7dS5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsbiksdC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLHIpLHUucmVtb3ZlTGlzdGVuZXIoImVuZCIsbyksdS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGEpLHUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixzKSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscyksdS5yZW1vdmVMaXN0ZW5lcigiZW5kIixoKSx1LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsaCksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGgpfXZhciB1PXRoaXM7dS5vbigiZGF0YSIsbiksdC5vbigiZHJhaW4iLHIpLHQuX2lzU3RkaW98fGUmJmUuZW5kPT09ITF8fCh1Lm9uKCJlbmQiLG8pLHUub24oImNsb3NlIixhKSk7dmFyIGw9ITE7cmV0dXJuIHUub24oImVycm9yIixzKSx0Lm9uKCJlcnJvciIscyksdS5vbigiZW5kIixoKSx1Lm9uKCJjbG9zZSIsaCksdC5vbigiY2xvc2UiLGgpLHQuZW1pdCgicGlwZSIsdSksdH19LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgZTtlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe312YXIgZSxuLHIsaSxvLGEscyxoLHUsbCxjLGYsZDtyZXR1cm4gdC5hcHBseT1mdW5jdGlvbih0LG4pe3ZhciByO3JldHVybiByPWEobiksZShyLHQpfSxvPXtBOjcsYTo3LEM6NixjOjYsSDoxLGg6MSxMOjIsbDoyLE06MixtOjIsUTo0LHE6NCxTOjQsczo0LFQ6Mix0OjIsVjoxLHY6MSxaOjAsejowfSxhPWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLGEscyxoLHUsbDtmb3IoaD1bXSxlPVtdLGk9IiIsYT0hMSxzPTAsdT0wLGw9dC5sZW5ndGg7bD51O3UrKylpZihuPXRbdV0sbnVsbCE9b1tuXSlzPW9bbl0sciYmKGkubGVuZ3RoPjAmJihlW2UubGVuZ3RoXT0raSksaFtoLmxlbmd0aF09e2NtZDpyLGFyZ3M6ZX0sZT1bXSxpPSIiLGE9ITEpLHI9bjtlbHNlIGlmKCIgIj09PW58fCIsIj09PW58fCItIj09PW4mJmkubGVuZ3RoPjAmJiJlIiE9PWlbaS5sZW5ndGgtMV18fCIuIj09PW4mJmEpe2lmKDA9PT1pLmxlbmd0aCljb250aW51ZTtlLmxlbmd0aD09PXM/KGhbaC5sZW5ndGhdPXtjbWQ6cixhcmdzOmV9LGU9WytpXSwiTSI9PT1yJiYocj0iTCIpLCJtIj09PXImJihyPSJsIikpOmVbZS5sZW5ndGhdPStpLGE9Ii4iPT09bixpPSItIj09PW58fCIuIj09PW4/bjoiIn1lbHNlIGkrPW4sIi4iPT09biYmKGE9ITApO3JldHVybiBpLmxlbmd0aD4wJiYoZS5sZW5ndGg9PT1zPyhoW2gubGVuZ3RoXT17Y21kOnIsYXJnczplfSxlPVsraV0sIk0iPT09ciYmKHI9IkwiKSwibSI9PT1yJiYocj0ibCIpKTplW2UubGVuZ3RoXT0raSksaFtoLmxlbmd0aF09e2NtZDpyLGFyZ3M6ZX0saH0scj1pPXM9aD1mPWQ9MCxlPWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxhLGwsYztmb3Iocj1pPXM9aD1mPWQ9MCxvPWE9MCxsPXQubGVuZ3RoO2w+YTtvPSsrYSluPXRbb10sImZ1bmN0aW9uIj09dHlwZW9mIHVbYz1uLmNtZF0mJnVbY10oZSxuLmFyZ3MpO3JldHVybiByPWk9cz1oPTB9LHU9e006ZnVuY3Rpb24odCxlKXtyZXR1cm4gcj1lWzBdLGk9ZVsxXSxzPWg9bnVsbCxmPXIsZD1pLHQubW92ZVRvKHIsaSl9LG06ZnVuY3Rpb24odCxlKXtyZXR1cm4gcis9ZVswXSxpKz1lWzFdLHM9aD1udWxsLGY9cixkPWksdC5tb3ZlVG8ocixpKX0sQzpmdW5jdGlvbih0LGUpe3JldHVybiByPWVbNF0saT1lWzVdLHM9ZVsyXSxoPWVbM10sdC5iZXppZXJDdXJ2ZVRvLmFwcGx5KHQsZSl9LGM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5iZXppZXJDdXJ2ZVRvKGVbMF0rcixlWzFdK2ksZVsyXStyLGVbM10raSxlWzRdK3IsZVs1XStpKSxzPXIrZVsyXSxoPWkrZVszXSxyKz1lWzRdLGkrPWVbNV19LFM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09PXMmJihzPXIsaD1pKSx0LmJlemllckN1cnZlVG8oci0ocy1yKSxpLShoLWkpLGVbMF0sZVsxXSxlWzJdLGVbM10pLHM9ZVswXSxoPWVbMV0scj1lWzJdLGk9ZVszXX0sczpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT09cyYmKHM9cixoPWkpLHQuYmV6aWVyQ3VydmVUbyhyLShzLXIpLGktKGgtaSkscitlWzBdLGkrZVsxXSxyK2VbMl0saStlWzNdKSxzPXIrZVswXSxoPWkrZVsxXSxyKz1lWzJdLGkrPWVbM119LFE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcz1lWzBdLGg9ZVsxXSxyPWVbMl0saT1lWzNdLHQucXVhZHJhdGljQ3VydmVUbyhlWzBdLGVbMV0scixpKX0scTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnF1YWRyYXRpY0N1cnZlVG8oZVswXStyLGVbMV0raSxlWzJdK3IsZVszXStpKSxzPXIrZVswXSxoPWkrZVsxXSxyKz1lWzJdLGkrPWVbM119LFQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09PXM/KHM9cixoPWkpOihzPXItKHMtciksaD1pLShoLWkpKSx0LnF1YWRyYXRpY0N1cnZlVG8ocyxoLGVbMF0sZVsxXSkscz1yLShzLXIpLGg9aS0oaC1pKSxyPWVbMF0saT1lWzFdfSx0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PT1zPyhzPXIsaD1pKToocz1yLShzLXIpLGg9aS0oaC1pKSksdC5xdWFkcmF0aWNDdXJ2ZVRvKHMsaCxyK2VbMF0saStlWzFdKSxyKz1lWzBdLGkrPWVbMV19LEE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gYyh0LHIsaSxlKSxyPWVbNV0saT1lWzZdfSxhOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbNV0rPXIsZVs2XSs9aSxjKHQscixpLGUpLHI9ZVs1XSxpPWVbNl19LEw6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcj1lWzBdLGk9ZVsxXSxzPWg9bnVsbCx0LmxpbmVUbyhyLGkpfSxsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIrPWVbMF0saSs9ZVsxXSxzPWg9bnVsbCx0LmxpbmVUbyhyLGkpfSxIOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHI9ZVswXSxzPWg9bnVsbCx0LmxpbmVUbyhyLGkpfSxoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIrPWVbMF0scz1oPW51bGwsdC5saW5lVG8ocixpKX0sVjpmdW5jdGlvbih0LGUpe3JldHVybiBpPWVbMF0scz1oPW51bGwsdC5saW5lVG8ocixpKX0sdjpmdW5jdGlvbih0LGUpe3JldHVybiBpKz1lWzBdLHM9aD1udWxsLHQubGluZVRvKHIsaSl9LFo6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xvc2VQYXRoKCkscj1mLGk9ZH0sejpmdW5jdGlvbih0KXtyZXR1cm4gdC5jbG9zZVBhdGgoKSxyPWYsaT1kfX0sYz1mdW5jdGlvbih0LGUscixpKXt2YXIgbyxhLHMsaCx1LGMsZixkLHAsZyx2LG0seTtmb3IoYz1pWzBdLGY9aVsxXSx1PWlbMl0saD1pWzNdLGc9aVs0XSxhPWlbNV0scz1pWzZdLHA9bihhLHMsYyxmLGgsZyx1LGUscikseT1bXSx2PTAsbT1wLmxlbmd0aDttPnY7disrKWQ9cFt2XSxvPWwuYXBwbHkobnVsbCxkKSx5LnB1c2godC5iZXppZXJDdXJ2ZVRvLmFwcGx5KHQsbykpO3JldHVybiB5fSxuPWZ1bmN0aW9uKHQsZSxuLHIsaSxvLGEsdSxsKXt2YXIgYyxmLGQscCxnLHYsbSx5LHcsXyxiLHgsUyxrLEUsQyxJLEEsTCxSLEIsVCxNLE8sRCxVO2ZvcihrPWEqKE1hdGguUEkvMTgwKSxTPU1hdGguc2luKGspLGc9TWF0aC5jb3Moayksbj1NYXRoLmFicyhuKSxyPU1hdGguYWJzKHIpLHM9ZyoodS10KSouNStTKihsLWUpKi41LGg9ZyoobC1lKSouNS1TKih1LXQpKi41LHk9cypzLyhuKm4pK2gqaC8ocipyKSx5PjEmJih5PU1hdGguc3FydCh5KSxuKj15LHIqPXkpLGM9Zy9uLGY9Uy9uLGQ9LVMvcixwPWcvcixSPWMqdStmKmwsTT1kKnUrcCpsLEI9Yyp0K2YqZSxPPWQqdCtwKmUsdj0oQi1SKSooQi1SKSsoTy1NKSooTy1NKSx4PTEvdi0uMjUsMD54JiYoeD0wKSxiPU1hdGguc3FydCh4KSxvPT09aSYmKGI9LWIpLFQ9LjUqKFIrQiktYiooTy1NKSxEPS41KihNK08pK2IqKEItUiksRT1NYXRoLmF0YW4yKE0tRCxSLVQpLEM9TWF0aC5hdGFuMihPLUQsQi1UKSxMPUMtRSwwPkwmJjE9PT1vP0wrPTIqTWF0aC5QSTpMPjAmJjA9PT1vJiYoTC09MipNYXRoLlBJKSxfPU1hdGguY2VpbChNYXRoLmFicyhMLyguNSpNYXRoLlBJKy4wMDEpKSksdz1bXSxtPVU9MDtfPj0wP18+VTpVPl87bT1fPj0wPysrVTotLVUpST1FK20qTC9fLEE9RSsobSsxKSpML18sd1ttXT1bVCxELEksQSxuLHIsUyxnXTtyZXR1cm4gd30sbD1mdW5jdGlvbih0LGUsbixyLGksbyxhLHMpe3ZhciBoLHUsbCxjLGYsZCxwLGcsdixtLHksdztyZXR1cm4gaD1zKmksdT0tYSpvLGw9YSppLGM9cypvLGQ9LjUqKHItbiksZj04LzMqTWF0aC5zaW4oLjUqZCkqTWF0aC5zaW4oLjUqZCkvTWF0aC5zaW4oZCkscD10K01hdGguY29zKG4pLWYqTWF0aC5zaW4obiksbT1lK01hdGguc2luKG4pK2YqTWF0aC5jb3Mobiksdj10K01hdGguY29zKHIpLHc9ZStNYXRoLnNpbihyKSxnPXYrZipNYXRoLnNpbihyKSx5PXctZipNYXRoLmNvcyhyKSxbaCpwK3UqbSxsKnArYyptLGgqZyt1KnksbCpnK2MqeSxoKnYrdSp3LGwqditjKnddfSx0fSgpLHQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLHIsaSxvPXt9Lmhhc093blByb3BlcnR5LGE9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWZvcih2YXIgciBpbiBlKW8uY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IG4sdC5fX3N1cGVyX189ZS5wcm90b3R5cGUsCnR9O2U9big1NCkuRXZlbnRFbWl0dGVyLHI9big2NiksaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7dmFyIG47dGhpcy5kb2N1bWVudD10LHRoaXMuaW5kZW50PWUuaW5kZW50fHwwLHRoaXMuY2hhcmFjdGVyU3BhY2luZz1lLmNoYXJhY3RlclNwYWNpbmd8fDAsdGhpcy53b3JkU3BhY2luZz0wPT09ZS53b3JkU3BhY2luZyx0aGlzLmNvbHVtbnM9ZS5jb2x1bW5zfHwxLHRoaXMuY29sdW1uR2FwPW51bGwhPShuPWUuY29sdW1uR2FwKT9uOjE4LHRoaXMubGluZVdpZHRoPShlLndpZHRoLXRoaXMuY29sdW1uR2FwKih0aGlzLmNvbHVtbnMtMSkpL3RoaXMuY29sdW1ucyx0aGlzLnNwYWNlTGVmdD10aGlzLmxpbmVXaWR0aCx0aGlzLnN0YXJ0WD10aGlzLmRvY3VtZW50LngsdGhpcy5zdGFydFk9dGhpcy5kb2N1bWVudC55LHRoaXMuY29sdW1uPTEsdGhpcy5lbGxpcHNpcz1lLmVsbGlwc2lzLHRoaXMuY29udGludWVkWD0wLG51bGwhPWUuaGVpZ2h0Pyh0aGlzLmhlaWdodD1lLmhlaWdodCx0aGlzLm1heFk9dGhpcy5zdGFydFkrZS5oZWlnaHQpOnRoaXMubWF4WT10aGlzLmRvY3VtZW50LnBhZ2UubWF4WSgpLHRoaXMub24oImZpcnN0TGluZSIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiBuPXQuY29udGludWVkWHx8dC5pbmRlbnQsdC5kb2N1bWVudC54Kz1uLHQubGluZVdpZHRoLT1uLHQub25jZSgibGluZSIsZnVuY3Rpb24oKXtyZXR1cm4gdC5kb2N1bWVudC54LT1uLHQubGluZVdpZHRoKz1uLGUuY29udGludWVkJiYhdC5jb250aW51ZWRYJiYodC5jb250aW51ZWRYPXQuaW5kZW50KSxlLmNvbnRpbnVlZD92b2lkIDA6dC5jb250aW51ZWRYPTB9KX19KHRoaXMpKSx0aGlzLm9uKCJsYXN0TGluZSIsZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiBuPWUuYWxpZ24sImp1c3RpZnkiPT09biYmKGUuYWxpZ249ImxlZnQiKSx0Lmxhc3RMaW5lPSEwLHQub25jZSgibGluZSIsZnVuY3Rpb24oKXtyZXR1cm4gdC5kb2N1bWVudC55Kz1lLnBhcmFncmFwaEdhcHx8MCxlLmFsaWduPW4sdC5sYXN0TGluZT0hMX0pfX0odGhpcykpfXJldHVybiBhKGUsdCksZS5wcm90b3R5cGUud29yZFdpZHRoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRvY3VtZW50LndpZHRoT2ZTdHJpbmcodCx0aGlzKSt0aGlzLmNoYXJhY3RlclNwYWNpbmcrdGhpcy53b3JkU3BhY2luZ30sZS5wcm90b3R5cGUuZWFjaFdvcmQ9ZnVuY3Rpb24odCxlKXt2YXIgbixpLG8sYSxzLGgsdSxsLGMsZjtmb3IoaT1uZXcgcih0KSxzPW51bGwsZj17fTtuPWkubmV4dEJyZWFrKCk7KXtpZihjPXQuc2xpY2UoKG51bGwhPXM/cy5wb3NpdGlvbjp2b2lkIDApfHwwLG4ucG9zaXRpb24pLGw9bnVsbCE9ZltjXT9mW2NdOmZbY109dGhpcy53b3JkV2lkdGgoYyksbD50aGlzLmxpbmVXaWR0aCt0aGlzLmNvbnRpbnVlZFgpZm9yKGg9cyxvPXt9O2MubGVuZ3RoOyl7Zm9yKGE9Yy5sZW5ndGg7bD50aGlzLnNwYWNlTGVmdDspbD10aGlzLndvcmRXaWR0aChjLnNsaWNlKDAsLS1hKSk7aWYoby5yZXF1aXJlZD1hPGMubGVuZ3RoLHU9ZShjLnNsaWNlKDAsYSksbCxvLGgpLGg9e3JlcXVpcmVkOiExfSxjPWMuc2xpY2UoYSksbD10aGlzLndvcmRXaWR0aChjKSx1PT09ITEpYnJlYWt9ZWxzZSB1PWUoYyxsLG4scyk7aWYodT09PSExKWJyZWFrO3M9bn19LGUucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24odCxlKXt2YXIgbixyLGksbyxhLHMsaDtyZXR1cm4gbnVsbCE9ZS5pbmRlbnQmJih0aGlzLmluZGVudD1lLmluZGVudCksbnVsbCE9ZS5jaGFyYWN0ZXJTcGFjaW5nJiYodGhpcy5jaGFyYWN0ZXJTcGFjaW5nPWUuY2hhcmFjdGVyU3BhY2luZyksbnVsbCE9ZS53b3JkU3BhY2luZyYmKHRoaXMud29yZFNwYWNpbmc9ZS53b3JkU3BhY2luZyksbnVsbCE9ZS5lbGxpcHNpcyYmKHRoaXMuZWxsaXBzaXM9ZS5lbGxpcHNpcyksbz10aGlzLmRvY3VtZW50LnkrdGhpcy5kb2N1bWVudC5jdXJyZW50TGluZUhlaWdodCghMCksKHRoaXMuZG9jdW1lbnQueT50aGlzLm1heFl8fG8+dGhpcy5tYXhZKSYmdGhpcy5uZXh0U2VjdGlvbigpLG49IiIsYT0wLHM9MCxpPTAsaD10aGlzLmRvY3VtZW50Lnkscj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS50ZXh0V2lkdGg9YSt0LndvcmRTcGFjaW5nKihzLTEpLGUud29yZENvdW50PXMsZS5saW5lV2lkdGg9dC5saW5lV2lkdGgsaD10LmRvY3VtZW50LnksdC5lbWl0KCJsaW5lIixuLGUsdCksaSsrfX0odGhpcyksdGhpcy5lbWl0KCJzZWN0aW9uU3RhcnQiLGUsdGhpcyksdGhpcy5lYWNoV29yZCh0LGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLG8saCx1KXt2YXIgbCxjO2lmKChudWxsPT11fHx1LnJlcXVpcmVkKSYmKHQuZW1pdCgiZmlyc3RMaW5lIixlLHQpLHQuc3BhY2VMZWZ0PXQubGluZVdpZHRoKSxvPD10LnNwYWNlTGVmdCYmKG4rPWksYSs9byxzKyspLGgucmVxdWlyZWR8fG8+dC5zcGFjZUxlZnQpe2lmKGgucmVxdWlyZWQmJnQuZW1pdCgibGFzdExpbmUiLGUsdCksbD10LmRvY3VtZW50LmN1cnJlbnRMaW5lSGVpZ2h0KCEwKSxudWxsIT10LmhlaWdodCYmdC5lbGxpcHNpcyYmdC5kb2N1bWVudC55KzIqbD50Lm1heFkmJnQuY29sdW1uPj10LmNvbHVtbnMpe2Zvcih0LmVsbGlwc2lzPT09ITAmJih0LmVsbGlwc2lzPSLigKYiKSxuPW4ucmVwbGFjZSgvXHMrJC8sIiIpLGE9dC53b3JkV2lkdGgobit0LmVsbGlwc2lzKTthPnQubGluZVdpZHRoOyluPW4uc2xpY2UoMCwtMSkucmVwbGFjZSgvXHMrJC8sIiIpLGE9dC53b3JkV2lkdGgobit0LmVsbGlwc2lzKTtuKz10LmVsbGlwc2lzfXJldHVybiByKCksdC5kb2N1bWVudC55K2w+dC5tYXhZJiYoYz10Lm5leHRTZWN0aW9uKCksIWMpPyhzPTAsbj0iIiwhMSk6aC5yZXF1aXJlZD8obz50LnNwYWNlTGVmdCYmKG49aSxhPW8scz0xLHIoKSksdC5zcGFjZUxlZnQ9dC5saW5lV2lkdGgsbj0iIixhPTAscz0wKToodC5zcGFjZUxlZnQ9dC5saW5lV2lkdGgtbyxuPWksYT1vLHM9MSl9cmV0dXJuIHQuc3BhY2VMZWZ0LT1vfX0odGhpcykpLHM+MCYmKHRoaXMuZW1pdCgibGFzdExpbmUiLGUsdGhpcykscigpKSx0aGlzLmVtaXQoInNlY3Rpb25FbmQiLGUsdGhpcyksZS5jb250aW51ZWQ9PT0hMD8oaT4xJiYodGhpcy5jb250aW51ZWRYPTApLHRoaXMuY29udGludWVkWCs9ZS50ZXh0V2lkdGgsdGhpcy5kb2N1bWVudC55PWgpOnRoaXMuZG9jdW1lbnQueD10aGlzLnN0YXJ0WH0sZS5wcm90b3R5cGUubmV4dFNlY3Rpb249ZnVuY3Rpb24odCl7dmFyIGU7aWYodGhpcy5lbWl0KCJzZWN0aW9uRW5kIix0LHRoaXMpLCsrdGhpcy5jb2x1bW4+dGhpcy5jb2x1bW5zKXtpZihudWxsIT10aGlzLmhlaWdodClyZXR1cm4hMTt0aGlzLmRvY3VtZW50LmFkZFBhZ2UoKSx0aGlzLmNvbHVtbj0xLHRoaXMuc3RhcnRZPXRoaXMuZG9jdW1lbnQucGFnZS5tYXJnaW5zLnRvcCx0aGlzLm1heFk9dGhpcy5kb2N1bWVudC5wYWdlLm1heFkoKSx0aGlzLmRvY3VtZW50Lng9dGhpcy5zdGFydFgsdGhpcy5kb2N1bWVudC5fZmlsbENvbG9yJiYoZT10aGlzLmRvY3VtZW50KS5maWxsQ29sb3IuYXBwbHkoZSx0aGlzLmRvY3VtZW50Ll9maWxsQ29sb3IpLHRoaXMuZW1pdCgicGFnZUJyZWFrIix0LHRoaXMpfWVsc2UgdGhpcy5kb2N1bWVudC54Kz10aGlzLmxpbmVXaWR0aCt0aGlzLmNvbHVtbkdhcCx0aGlzLmRvY3VtZW50Lnk9dGhpcy5zdGFydFksdGhpcy5lbWl0KCJjb2x1bW5CcmVhayIsdCx0aGlzKTtyZXR1cm4gdGhpcy5lbWl0KCJzZWN0aW9uU3RhcnQiLHQsdGhpcyksITB9LGV9KGUpLHQuZXhwb3J0cz1pfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLG4scixpPXt9Lmhhc093blByb3BlcnR5LG89ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWZvcih2YXIgciBpbiBlKWkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IG4sdC5fX3N1cGVyX189ZS5wcm90b3R5cGUsdH07ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5kb2M9dCx0aGlzLnN0b3BzPVtdLHRoaXMuZW1iZWRkZWQ9ITEsdGhpcy50cmFuc2Zvcm09WzEsMCwwLDEsMCwwXSx0aGlzLl9jb2xvclNwYWNlPSJEZXZpY2VSR0IifXJldHVybiB0LnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbnVsbD09biYmKG49MSksbj1NYXRoLm1heCgwLE1hdGgubWluKDEsbikpLHRoaXMuc3RvcHMucHVzaChbdCx0aGlzLmRvYy5fbm9ybWFsaXplQ29sb3IoZSksbl0pLHRoaXN9LHQucHJvdG90eXBlLmVtYmVkPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLHIsaSxvLGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdyxfLGIseCxTLGssRSxDLEksQSxMLFIsQixULE0sTyxEO2lmKCF0aGlzLmVtYmVkZGVkJiYwIT09dGhpcy5zdG9wcy5sZW5ndGgpe2Zvcih0aGlzLmVtYmVkZGVkPSEwLGw9dGhpcy5zdG9wc1t0aGlzLnN0b3BzLmxlbmd0aC0xXSxsWzBdPDEmJnRoaXMuc3RvcHMucHVzaChbMSxsWzFdLGxbMl1dKSx0PVtdLHI9W10sQT1bXSx1PVI9MCxNPXRoaXMuc3RvcHMubGVuZ3RoLTE7TT49MD9NPlI6Uj5NO3U9TT49MD8rK1I6LS1SKXIucHVzaCgwLDEpLHUrMiE9PXRoaXMuc3RvcHMubGVuZ3RoJiZ0LnB1c2godGhpcy5zdG9wc1t1KzFdWzBdKSxpPXRoaXMuZG9jLnJlZih7RnVuY3Rpb25UeXBlOjIsRG9tYWluOlswLDFdLEMwOnRoaXMuc3RvcHNbdSswXVsxXSxDMTp0aGlzLnN0b3BzW3UrMV1bMV0sTjoxfSksQS5wdXNoKGkpLGkuZW5kKCk7aWYoMT09PUEubGVuZ3RoP2k9QVswXTooaT10aGlzLmRvYy5yZWYoe0Z1bmN0aW9uVHlwZTozLERvbWFpbjpbMCwxXSxGdW5jdGlvbnM6QSxCb3VuZHM6dCxFbmNvZGU6cn0pLGkuZW5kKCkpLHRoaXMuaWQ9IlNoIisgKyt0aGlzLmRvYy5fZ3JhZENvdW50LGM9dGhpcy5kb2MuX2N0bS5zbGljZSgpLGY9Y1swXSxkPWNbMV0sdj1jWzJdLHc9Y1szXSxfPWNbNF0sYj1jWzVdLE89dGhpcy50cmFuc2Zvcm0scD1PWzBdLGc9T1sxXSxtPU9bMl0seT1PWzNdLGU9T1s0XSxuPU9bNV0sY1swXT1mKnArdipnLGNbMV09ZCpwK3cqZyxjWzJdPWYqbSt2KnksY1szXT1kKm0rdyp5LGNbNF09ZiplK3YqbitfLGNbNV09ZCplK3cqbitiLEM9dGhpcy5zaGFkZXIoaSksQy5lbmQoKSxTPXRoaXMuZG9jLnJlZih7VHlwZToiUGF0dGVybiIsUGF0dGVyblR5cGU6MixTaGFkaW5nOkMsTWF0cml4OmZ1bmN0aW9uKCl7dmFyIHQsZSxuO2ZvcihuPVtdLHQ9MCxlPWMubGVuZ3RoO2U+dDt0KyspTD1jW3RdLG4ucHVzaCgrTC50b0ZpeGVkKDUpKTtyZXR1cm4gbn0oKX0pLHRoaXMuZG9jLnBhZ2UucGF0dGVybnNbdGhpcy5pZF09UyxTLmVuZCgpLHRoaXMuc3RvcHMuc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdFsyXTwxfSkpe2ZvcihhPXRoaXMub3BhY2l0eUdyYWRpZW50KCksYS5fY29sb3JTcGFjZT0iRGV2aWNlR3JheSIsRD10aGlzLnN0b3BzLEI9MCxUPUQubGVuZ3RoO1Q+QjtCKyspST1EW0JdLGEuc3RvcChJWzBdLFtJWzJdXSk7YT1hLmVtYmVkKCkscz10aGlzLmRvYy5yZWYoe1R5cGU6Ikdyb3VwIixTOiJUcmFuc3BhcmVuY3kiLENTOiJEZXZpY2VHcmF5In0pLHMuZW5kKCksaz10aGlzLmRvYy5yZWYoe1Byb2NTZXQ6WyJQREYiLCJUZXh0IiwiSW1hZ2VCIiwiSW1hZ2VDIiwiSW1hZ2VJIl0sU2hhZGluZzp7U2gxOmEuZGF0YS5TaGFkaW5nfX0pLGsuZW5kKCksbz10aGlzLmRvYy5yZWYoe1R5cGU6IlhPYmplY3QiLFN1YnR5cGU6IkZvcm0iLEZvcm1UeXBlOjEsQkJveDpbMCwwLHRoaXMuZG9jLnBhZ2Uud2lkdGgsdGhpcy5kb2MucGFnZS5oZWlnaHRdLEdyb3VwOnMsUmVzb3VyY2VzOmt9KSxvLmVuZCgiL1NoMSBzaCIpLEU9dGhpcy5kb2MucmVmKHtUeXBlOiJNYXNrIixTOiJMdW1pbm9zaXR5IixHOm99KSxFLmVuZCgpLGg9dGhpcy5kb2MucmVmKHtUeXBlOiJFeHRHU3RhdGUiLFNNYXNrOkV9KSx0aGlzLm9wYWNpdHlfaWQ9Kyt0aGlzLmRvYy5fb3BhY2l0eUNvdW50LHg9IkdzIit0aGlzLm9wYWNpdHlfaWQsdGhpcy5kb2MucGFnZS5leHRfZ3N0YXRlc1t4XT1oLGguZW5kKCl9cmV0dXJuIFN9fSx0LnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lbWJlZGRlZHx8dGhpcy5lbWJlZCgpLHRoaXMuZG9jLmFkZENvbnRlbnQoIi8iK3RoaXMuaWQrIiAiK3QpLHRoaXMub3BhY2l0eV9pZD8odGhpcy5kb2MuYWRkQ29udGVudCgiL0dzIit0aGlzLm9wYWNpdHlfaWQrIiBncyIpLHRoaXMuZG9jLl9zTWFza2VkPSEwKTp2b2lkIDB9LHR9KCksbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsbixyLGksbyl7dGhpcy5kb2M9dCx0aGlzLngxPW4sdGhpcy55MT1yLHRoaXMueDI9aSx0aGlzLnkyPW8sZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBvKGUsdCksZS5wcm90b3R5cGUuc2hhZGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRvYy5yZWYoe1NoYWRpbmdUeXBlOjIsQ29sb3JTcGFjZTp0aGlzLl9jb2xvclNwYWNlLENvb3JkczpbdGhpcy54MSx0aGlzLnkxLHRoaXMueDIsdGhpcy55Ml0sRnVuY3Rpb246dCxFeHRlbmQ6WyEwLCEwXX0pfSxlLnByb3RvdHlwZS5vcGFjaXR5R3JhZGllbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUodGhpcy5kb2MsdGhpcy54MSx0aGlzLnkxLHRoaXMueDIsdGhpcy55Mil9LGV9KGUpLHI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LG4scixpLG8sYSxzKXt0aGlzLmRvYz10LHRoaXMueDE9bix0aGlzLnkxPXIsdGhpcy5yMT1pLHRoaXMueDI9byx0aGlzLnkyPWEsdGhpcy5yMj1zLGUuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gbyhlLHQpLGUucHJvdG90eXBlLnNoYWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb2MucmVmKHtTaGFkaW5nVHlwZTozLENvbG9yU3BhY2U6dGhpcy5fY29sb3JTcGFjZSxDb29yZHM6W3RoaXMueDEsdGhpcy55MSx0aGlzLnIxLHRoaXMueDIsdGhpcy55Mix0aGlzLnIyXSxGdW5jdGlvbjp0LEV4dGVuZDpbITAsITBdfSl9LGUucHJvdG90eXBlLm9wYWNpdHlHcmFkaWVudD1mdW5jdGlvbigpe3JldHVybiBuZXcgZSh0aGlzLmRvYyx0aGlzLngxLHRoaXMueTEsdGhpcy5yMSx0aGlzLngyLHRoaXMueTIsdGhpcy5yMil9LGV9KGUpLHQuZXhwb3J0cz17UERGR3JhZGllbnQ6ZSxQREZMaW5lYXJHcmFkaWVudDpuLFBERlJhZGlhbEdyYWRpZW50OnJ9fSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIGkodCl7aWYodDxlLkRFRkxBVEV8fHQ+ZS5VTlpJUCl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQgYXJndW1lbnQiKTt0aGlzLm1vZGU9dCx0aGlzLmluaXRfZG9uZT0hMSx0aGlzLndyaXRlX2luX3Byb2dyZXNzPSExLHRoaXMucGVuZGluZ19jbG9zZT0hMSx0aGlzLndpbmRvd0JpdHM9MCx0aGlzLmxldmVsPTAsdGhpcy5tZW1MZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmRpY3Rpb25hcnk9bnVsbH1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpc1tlK25dPXRbbl19dmFyIGE9big3Mykscz1uKDc3KSxoPW4oNzQpLHU9big3NSksbD1uKDc2KTtmb3IodmFyIGMgaW4gbCllW2NdPWxbY107ZS5OT05FPTAsZS5ERUZMQVRFPTEsZS5JTkZMQVRFPTIsZS5HWklQPTMsZS5HVU5aSVA9NCxlLkRFRkxBVEVSQVc9NSxlLklORkxBVEVSQVc9NixlLlVOWklQPTcsaS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbih0LG4scixpLG8pe3N3aXRjaCh0aGlzLndpbmRvd0JpdHM9dCx0aGlzLmxldmVsPW4sdGhpcy5tZW1MZXZlbD1yLHRoaXMuc3RyYXRlZ3k9aSwodGhpcy5tb2RlPT09ZS5HWklQfHx0aGlzLm1vZGU9PT1lLkdVTlpJUCkmJih0aGlzLndpbmRvd0JpdHMrPTE2KSx0aGlzLm1vZGU9PT1lLlVOWklQJiYodGhpcy53aW5kb3dCaXRzKz0zMiksKHRoaXMubW9kZT09PWUuREVGTEFURVJBV3x8dGhpcy5tb2RlPT09ZS5JTkZMQVRFUkFXKSYmKHRoaXMud2luZG93Qml0cz0tdGhpcy53aW5kb3dCaXRzKSx0aGlzLnN0cm09bmV3IHMsdGhpcy5tb2RlKXtjYXNlIGUuREVGTEFURTpjYXNlIGUuR1pJUDpjYXNlIGUuREVGTEFURVJBVzp2YXIgYT1oLmRlZmxhdGVJbml0Mih0aGlzLnN0cm0sdGhpcy5sZXZlbCxlLlpfREVGTEFURUQsdGhpcy53aW5kb3dCaXRzLHRoaXMubWVtTGV2ZWwsdGhpcy5zdHJhdGVneSk7YnJlYWs7Y2FzZSBlLklORkxBVEU6Y2FzZSBlLkdVTlpJUDpjYXNlIGUuSU5GTEFURVJBVzpjYXNlIGUuVU5aSVA6dmFyIGE9dS5pbmZsYXRlSW5pdDIodGhpcy5zdHJtLHRoaXMud2luZG93Qml0cyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbW9kZSAiK3RoaXMubW9kZSl9cmV0dXJuIGEhPT1lLlpfT0s/dm9pZCB0aGlzLl9lcnJvcihhKToodGhpcy53cml0ZV9pbl9wcm9ncmVzcz0hMSx2b2lkKHRoaXMuaW5pdF9kb25lPSEwKSl9LGkucHJvdG90eXBlLnBhcmFtcz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiZGVmbGF0ZVBhcmFtcyBOb3Qgc3VwcG9ydGVkIil9LGkucHJvdG90eXBlLl93cml0ZUNoZWNrPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaW5pdF9kb25lKXRocm93IG5ldyBFcnJvcigid3JpdGUgYmVmb3JlIGluaXQiKTtpZih0aGlzLm1vZGU9PT1lLk5PTkUpdGhyb3cgbmV3IEVycm9yKCJhbHJlYWR5IGZpbmFsaXplZCIpO2lmKHRoaXMud3JpdGVfaW5fcHJvZ3Jlc3MpdGhyb3cgbmV3IEVycm9yKCJ3cml0ZSBhbHJlYWR5IGluIHByb2dyZXNzIik7aWYodGhpcy5wZW5kaW5nX2Nsb3NlKXRocm93IG5ldyBFcnJvcigiY2xvc2UgaXMgcGVuZGluZyIpfSxpLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLG4scixpLG8sYSxzKXt0aGlzLl93cml0ZUNoZWNrKCksdGhpcy53cml0ZV9pbl9wcm9ncmVzcz0hMDt2YXIgaD10aGlzO3JldHVybiB0Lm5leHRUaWNrKGZ1bmN0aW9uKCl7aC53cml0ZV9pbl9wcm9ncmVzcz0hMTt2YXIgdD1oLl93cml0ZShlLG4scixpLG8sYSxzKTtoLmNhbGxiYWNrKHRbMF0sdFsxXSksaC5wZW5kaW5nX2Nsb3NlJiZoLmNsb3NlKCl9KSx0aGlzfSxpLnByb3RvdHlwZS53cml0ZVN5bmM9ZnVuY3Rpb24odCxlLG4scixpLG8sYSl7cmV0dXJuIHRoaXMuX3dyaXRlQ2hlY2soKSx0aGlzLl93cml0ZSh0LGUsbixyLGksbyxhKX0saS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsbixpLGEscyxsLGMpe2lmKHRoaXMud3JpdGVfaW5fcHJvZ3Jlc3M9ITAsdCE9PWUuWl9OT19GTFVTSCYmdCE9PWUuWl9QQVJUSUFMX0ZMVVNIJiZ0IT09ZS5aX1NZTkNfRkxVU0gmJnQhPT1lLlpfRlVMTF9GTFVTSCYmdCE9PWUuWl9GSU5JU0gmJnQhPT1lLlpfQkxPQ0spdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGZsdXNoIHZhbHVlIik7bnVsbD09biYmKG49bmV3IHIoMCksYT0wLGk9MCkscy5zZXQ9cy5fc2V0P3MuX3NldDpvO3ZhciBmPXRoaXMuc3RybTtzd2l0Y2goZi5hdmFpbF9pbj1hLGYuaW5wdXQ9bixmLm5leHRfaW49aSxmLmF2YWlsX291dD1jLGYub3V0cHV0PXMsZi5uZXh0X291dD1sLHRoaXMubW9kZSl7Y2FzZSBlLkRFRkxBVEU6Y2FzZSBlLkdaSVA6Y2FzZSBlLkRFRkxBVEVSQVc6dmFyIGQ9aC5kZWZsYXRlKGYsdCk7YnJlYWs7Y2FzZSBlLlVOWklQOmNhc2UgZS5JTkZMQVRFOmNhc2UgZS5HVU5aSVA6Y2FzZSBlLklORkxBVEVSQVc6dmFyIGQ9dS5pbmZsYXRlKGYsdCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbW9kZSAiK3RoaXMubW9kZSl9cmV0dXJuIGQhPT1lLlpfU1RSRUFNX0VORCYmZCE9PWUuWl9PSyYmdGhpcy5fZXJyb3IoZCksdGhpcy53cml0ZV9pbl9wcm9ncmVzcz0hMSxbZi5hdmFpbF9pbixmLmF2YWlsX291dF19LGkucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3JpdGVfaW5fcHJvZ3Jlc3M/dm9pZCh0aGlzLnBlbmRpbmdfY2xvc2U9ITApOih0aGlzLnBlbmRpbmdfY2xvc2U9ITEsdGhpcy5tb2RlPT09ZS5ERUZMQVRFfHx0aGlzLm1vZGU9PT1lLkdaSVB8fHRoaXMubW9kZT09PWUuREVGTEFURVJBVz9oLmRlZmxhdGVFbmQodGhpcy5zdHJtKTp1LmluZmxhdGVFbmQodGhpcy5zdHJtKSx2b2lkKHRoaXMubW9kZT1lLk5PTkUpKX0saS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5tb2RlKXtjYXNlIGUuREVGTEFURTpjYXNlIGUuREVGTEFURVJBVzp2YXIgdD1oLmRlZmxhdGVSZXNldCh0aGlzLnN0cm0pO2JyZWFrO2Nhc2UgZS5JTkZMQVRFOmNhc2UgZS5JTkZMQVRFUkFXOnZhciB0PXUuaW5mbGF0ZVJlc2V0KHRoaXMuc3RybSl9dCE9PWUuWl9PSyYmdGhpcy5fZXJyb3IodCl9LGkucHJvdG90eXBlLl9lcnJvcj1mdW5jdGlvbih0KXt0aGlzLm9uZXJyb3IoYVt0XSsiOiAiK3RoaXMuc3RybS5tc2csdCksdGhpcy53cml0ZV9pbl9wcm9ncmVzcz0hMSx0aGlzLnBlbmRpbmdfY2xvc2UmJnRoaXMuY2xvc2UoKX0sZS5abGliPWl9KS5jYWxsKGUsbig2MSksbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbigpe3ZhciByLGksbztpPW4oMTApLG89big0NSksdC5leHBvcnRzPXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBuLHIsaSxvLGEscyxoLHUsbCxjLGY7Zm9yKHRoaXMuZGF0YT10LHRoaXMucG9zPTgsdGhpcy5wYWxldHRlPVtdLHRoaXMuaW1nRGF0YT1bXSx0aGlzLnRyYW5zcGFyZW5jeT17fSx0aGlzLnRleHQ9e307Oyl7c3dpdGNoKG49dGhpcy5yZWFkVUludDMyKCkscz1mdW5jdGlvbigpe3ZhciB0LGU7Zm9yKGU9W10saT10PTA7ND50O2k9Kyt0KWUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuZGF0YVt0aGlzLnBvcysrXSkpO3JldHVybiBlfS5jYWxsKHRoaXMpLmpvaW4oIiIpKXtjYXNlIklIRFIiOnRoaXMud2lkdGg9dGhpcy5yZWFkVUludDMyKCksdGhpcy5oZWlnaHQ9dGhpcy5yZWFkVUludDMyKCksdGhpcy5iaXRzPXRoaXMuZGF0YVt0aGlzLnBvcysrXSx0aGlzLmNvbG9yVHlwZT10aGlzLmRhdGFbdGhpcy5wb3MrK10sdGhpcy5jb21wcmVzc2lvbk1ldGhvZD10aGlzLmRhdGFbdGhpcy5wb3MrK10sdGhpcy5maWx0ZXJNZXRob2Q9dGhpcy5kYXRhW3RoaXMucG9zKytdLHRoaXMuaW50ZXJsYWNlTWV0aG9kPXRoaXMuZGF0YVt0aGlzLnBvcysrXTticmVhaztjYXNlIlBMVEUiOnRoaXMucGFsZXR0ZT10aGlzLnJlYWQobik7YnJlYWs7Y2FzZSJJREFUIjpmb3IoaT1sPTA7bj5sO2k9bCs9MSl0aGlzLmltZ0RhdGEucHVzaCh0aGlzLmRhdGFbdGhpcy5wb3MrK10pO2JyZWFrO2Nhc2UidFJOUyI6c3dpdGNoKHRoaXMudHJhbnNwYXJlbmN5PXt9LHRoaXMuY29sb3JUeXBlKXtjYXNlIDM6aWYodGhpcy50cmFuc3BhcmVuY3kuaW5kZXhlZD10aGlzLnJlYWQobiksaD0yNTUtdGhpcy50cmFuc3BhcmVuY3kuaW5kZXhlZC5sZW5ndGgsaD4wKWZvcihpPWM9MDtoPj0wP2g+YzpjPmg7aT1oPj0wPysrYzotLWMpdGhpcy50cmFuc3BhcmVuY3kuaW5kZXhlZC5wdXNoKDI1NSk7YnJlYWs7Y2FzZSAwOnRoaXMudHJhbnNwYXJlbmN5LmdyYXlzY2FsZT10aGlzLnJlYWQobilbMF07YnJlYWs7Y2FzZSAyOnRoaXMudHJhbnNwYXJlbmN5LnJnYj10aGlzLnJlYWQobil9YnJlYWs7Y2FzZSJ0RVh0Ijp1PXRoaXMucmVhZChuKSxvPXUuaW5kZXhPZigwKSxhPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHUuc2xpY2UoMCxvKSksdGhpcy50ZXh0W2FdPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHUuc2xpY2UobysxKSk7YnJlYWs7Y2FzZSJJRU5EIjpyZXR1cm4gdGhpcy5jb2xvcnM9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5jb2xvclR5cGUpe2Nhc2UgMDpjYXNlIDM6Y2FzZSA0OnJldHVybiAxO2Nhc2UgMjpjYXNlIDY6cmV0dXJuIDN9fS5jYWxsKHRoaXMpLHRoaXMuaGFzQWxwaGFDaGFubmVsPTQ9PT0oZj10aGlzLmNvbG9yVHlwZSl8fDY9PT1mLHI9dGhpcy5jb2xvcnMrKHRoaXMuaGFzQWxwaGFDaGFubmVsPzE6MCksdGhpcy5waXhlbEJpdGxlbmd0aD10aGlzLmJpdHMqcix0aGlzLmNvbG9yU3BhY2U9ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5jb2xvcnMpe2Nhc2UgMTpyZXR1cm4iRGV2aWNlR3JheSI7Y2FzZSAzOnJldHVybiJEZXZpY2VSR0IifX0uY2FsbCh0aGlzKSx2b2lkKHRoaXMuaW1nRGF0YT1uZXcgZSh0aGlzLmltZ0RhdGEpKTtkZWZhdWx0OnRoaXMucG9zKz1ufWlmKHRoaXMucG9zKz00LHRoaXMucG9zPnRoaXMuZGF0YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJJbmNvbXBsZXRlIG9yIGNvcnJ1cHQgUE5HIGZpbGUiKX19cmV0dXJuIHQuZGVjb2RlPWZ1bmN0aW9uKGUsbil7cmV0dXJuIGkucmVhZEZpbGUoZSxmdW5jdGlvbihlLHIpe3ZhciBpO3JldHVybiBpPW5ldyB0KHIpLGkuZGVjb2RlKGZ1bmN0aW9uKHQpe3JldHVybiBuKHQpfSl9KX0sdC5sb2FkPWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiBuPWkucmVhZEZpbGVTeW5jKGUpLG5ldyB0KG4pfSx0LnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHQpe3ZhciBlLG4scjtmb3Iocj1bXSxlPW49MDt0Pj0wP3Q+bjpuPnQ7ZT10Pj0wPysrbjotLW4pci5wdXNoKHRoaXMuZGF0YVt0aGlzLnBvcysrXSk7cmV0dXJuIHJ9LHQucHJvdG90eXBlLnJlYWRVSW50MzI9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scjtyZXR1cm4gdD10aGlzLmRhdGFbdGhpcy5wb3MrK108PDI0LGU9dGhpcy5kYXRhW3RoaXMucG9zKytdPDwxNixuPXRoaXMuZGF0YVt0aGlzLnBvcysrXTw8OCxyPXRoaXMuZGF0YVt0aGlzLnBvcysrXSx0fGV8bnxyfSx0LnByb3RvdHlwZS5yZWFkVUludDE2PWZ1bmN0aW9uKCl7dmFyIHQsZTtyZXR1cm4gdD10aGlzLmRhdGFbdGhpcy5wb3MrK108PDgsZT10aGlzLmRhdGFbdGhpcy5wb3MrK10sdHxlfSx0LnByb3RvdHlwZS5kZWNvZGVQaXhlbHM9ZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gby5pbmZsYXRlKHRoaXMuaW1nRGF0YSxmdW5jdGlvbihyLGkpe3ZhciBvLGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdyxfLGIseCxTLGssRSxDLEk7aWYocil0aHJvdyByO2Zvcih2PW4ucGl4ZWxCaXRsZW5ndGgvOCxfPXYqbi53aWR0aCxtPW5ldyBlKF8qbi5oZWlnaHQpLGw9aS5sZW5ndGgsdz0wLHk9MCxhPTA7bD55Oyl7c3dpdGNoKGlbeSsrXSl7Y2FzZSAwOmZvcihoPVM9MDtfPlM7aD1TKz0xKW1bYSsrXT1pW3krK107YnJlYWs7Y2FzZSAxOmZvcihoPWs9MDtfPms7aD1rKz0xKW89aVt5KytdLHU9dj5oPzA6bVthLXZdLG1bYSsrXT0obyt1KSUyNTY7YnJlYWs7Y2FzZSAyOmZvcihoPUU9MDtfPkU7aD1FKz0xKW89aVt5KytdLHM9KGgtaCV2KS92LGI9dyYmbVsody0xKSpfK3MqditoJXZdLG1bYSsrXT0oYitvKSUyNTY7YnJlYWs7Y2FzZSAzOmZvcihoPUM9MDtfPkM7aD1DKz0xKW89aVt5KytdLHM9KGgtaCV2KS92LHU9dj5oPzA6bVthLXZdLGI9dyYmbVsody0xKSpfK3MqditoJXZdLG1bYSsrXT0obytNYXRoLmZsb29yKCh1K2IpLzIpKSUyNTY7YnJlYWs7Y2FzZSA0OmZvcihoPUk9MDtfPkk7aD1JKz0xKW89aVt5KytdLHM9KGgtaCV2KS92LHU9dj5oPzA6bVthLXZdLDA9PT13P2I9eD0wOihiPW1bKHctMSkqXytzKnYraCV2XSx4PXMmJm1bKHctMSkqXysocy0xKSp2K2gldl0pLGM9dStiLXgsZj1NYXRoLmFicyhjLXUpLHA9TWF0aC5hYnMoYy1iKSxnPU1hdGguYWJzKGMteCksZD1wPj1mJiZnPj1mP3U6Zz49cD9iOngsbVthKytdPShvK2QpJTI1NjticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiSW52YWxpZCBmaWx0ZXIgYWxnb3JpdGhtOiAiK2lbeS0xXSl9dysrfXJldHVybiB0KG0pfSl9LHQucHJvdG90eXBlLmRlY29kZVBhbGV0dGU9ZnVuY3Rpb24oKXt2YXIgdCxuLHIsaSxvLGEscyxoLHUsbDtmb3IoaT10aGlzLnBhbGV0dGUscz10aGlzLnRyYW5zcGFyZW5jeS5pbmRleGVkfHxbXSxhPW5ldyBlKHMubGVuZ3RoK2kubGVuZ3RoKSxvPTAscj1pLmxlbmd0aCx0PTAsbj1oPTAsdT1pLmxlbmd0aDt1Pmg7bj1oKz0zKWFbbysrXT1pW25dLGFbbysrXT1pW24rMV0sYVtvKytdPWlbbisyXSxhW28rK109bnVsbCE9KGw9c1t0KytdKT9sOjI1NTtyZXR1cm4gYX0sdC5wcm90b3R5cGUuY29weVRvSW1hZ2VEYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIG4scixpLG8sYSxzLGgsdSxsLGMsZjtpZihyPXRoaXMuY29sb3JzLGw9bnVsbCxuPXRoaXMuaGFzQWxwaGFDaGFubmVsLHRoaXMucGFsZXR0ZS5sZW5ndGgmJihsPW51bGwhPShmPXRoaXMuX2RlY29kZWRQYWxldHRlKT9mOnRoaXMuX2RlY29kZWRQYWxldHRlPXRoaXMuZGVjb2RlUGFsZXR0ZSgpLHI9NCxuPSEwKSxpPShudWxsIT10P3QuZGF0YTp2b2lkIDApfHx0LHU9aS5sZW5ndGgsYT1sfHxlLG89cz0wLDE9PT1yKWZvcig7dT5vOyloPWw/NCplW28vNF06cyxjPWFbaCsrXSxpW28rK109YyxpW28rK109YyxpW28rK109YyxpW28rK109bj9hW2grK106MjU1LHM9aDtlbHNlIGZvcig7dT5vOyloPWw/NCplW28vNF06cyxpW28rK109YVtoKytdLGlbbysrXT1hW2grK10saVtvKytdPWFbaCsrXSxpW28rK109bj9hW2grK106MjU1LHM9aH0sdC5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQpe3ZhciBuLHI9dGhpcztyZXR1cm4gbj1uZXcgZSh0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KjQpLHRoaXMuZGVjb2RlUGl4ZWxzKGZ1bmN0aW9uKGUpe3JldHVybiByLmNvcHlUb0ltYWdlRGF0YShuLGUpLHQobil9KX0sdH0oKX0pLmNhbGwodGhpcyl9KS5jYWxsKGUsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUscil7KGZ1bmN0aW9uKCl7dmFyIGksbyxhLHMsaDtzPW4oNjQpLGk9big2MyksYT1uKDY1KSxoPW4oMTApLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQscixvLGgpe2lmKHRoaXMuZG9jdW1lbnQ9dCx0aGlzLmlkPWgsInN0cmluZyI9PXR5cGVvZiByKXtpZihyIGluIG4pcmV0dXJuIHRoaXMuaXNBRk09ITAsdGhpcy5mb250PW5ldyBpKG5bcl0oKSksdm9pZCB0aGlzLnJlZ2lzdGVyQUZNKHIpO2lmKC9cLih0dGZ8dHRjKSQvaS50ZXN0KHIpKXRoaXMuZm9udD1zLm9wZW4ocixvKTtlbHNle2lmKCEvXC5kZm9udCQvaS50ZXN0KHIpKXRocm93IG5ldyBFcnJvcigiTm90IGEgc3VwcG9ydGVkIGZvbnQgZm9ybWF0IG9yIHN0YW5kYXJkIFBERiBmb250LiIpO3RoaXMuZm9udD1zLmZyb21ERm9udChyLG8pfX1lbHNlIGlmKGUuaXNCdWZmZXIocikpdGhpcy5mb250PXMuZnJvbUJ1ZmZlcihyLG8pO2Vsc2UgaWYociBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpdGhpcy5mb250PXMuZnJvbUJ1ZmZlcihuZXcgZShyKSxvKTtlbHNle2lmKCEociBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJvdyBuZXcgRXJyb3IoIk5vdCBhIHN1cHBvcnRlZCBmb250IGZvcm1hdCBvciBzdGFuZGFyZCBQREYgZm9udC4iKTt0aGlzLmZvbnQ9cy5mcm9tQnVmZmVyKG5ldyBlKG5ldyBVaW50OEFycmF5KHIpKSxvKX10aGlzLnN1YnNldD1uZXcgYSh0aGlzLmZvbnQpLHRoaXMucmVnaXN0ZXJUVEYoKX12YXIgbixvO3JldHVybiBuPXtDb3VyaWVyOmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVhZEZpbGVTeW5jKHIrIi9mb250L2RhdGEvQ291cmllci5hZm0iLCJ1dGY4Iil9LCJDb3VyaWVyLUJvbGQiOmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVhZEZpbGVTeW5jKHIrIi9mb250L2RhdGEvQ291cmllci1Cb2xkLmFmbSIsInV0ZjgiKX0sIkNvdXJpZXItT2JsaXF1ZSI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWFkRmlsZVN5bmMocisiL2ZvbnQvZGF0YS9Db3VyaWVyLU9ibGlxdWUuYWZtIiwidXRmOCIpfSwiQ291cmllci1Cb2xkT2JsaXF1ZSI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWFkRmlsZVN5bmMocisiL2ZvbnQvZGF0YS9Db3VyaWVyLUJvbGRPYmxpcXVlLmFmbSIsInV0ZjgiKX0sSGVsdmV0aWNhOmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVhZEZpbGVTeW5jKHIrIi9mb250L2RhdGEvSGVsdmV0aWNhLmFmbSIsInV0ZjgiKX0sIkhlbHZldGljYS1Cb2xkIjpmdW5jdGlvbigpe3JldHVybiBoLnJlYWRGaWxlU3luYyhyKyIvZm9udC9kYXRhL0hlbHZldGljYS1Cb2xkLmFmbSIsInV0ZjgiKX0sIkhlbHZldGljYS1PYmxpcXVlIjpmdW5jdGlvbigpe3JldHVybiBoLnJlYWRGaWxlU3luYyhyKyIvZm9udC9kYXRhL0hlbHZldGljYS1PYmxpcXVlLmFmbSIsInV0ZjgiKX0sIkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWFkRmlsZVN5bmMocisiL2ZvbnQvZGF0YS9IZWx2ZXRpY2EtQm9sZE9ibGlxdWUuYWZtIiwidXRmOCIpfSwiVGltZXMtUm9tYW4iOmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVhZEZpbGVTeW5jKHIrIi9mb250L2RhdGEvVGltZXMtUm9tYW4uYWZtIiwidXRmOCIpfSwiVGltZXMtQm9sZCI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWFkRmlsZVN5bmMocisiL2ZvbnQvZGF0YS9UaW1lcy1Cb2xkLmFmbSIsInV0ZjgiKX0sIlRpbWVzLUl0YWxpYyI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWFkRmlsZVN5bmMocisiL2ZvbnQvZGF0YS9UaW1lcy1JdGFsaWMuYWZtIiwidXRmOCIpfSwiVGltZXMtQm9sZEl0YWxpYyI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5yZWFkRmlsZVN5bmMocisiL2ZvbnQvZGF0YS9UaW1lcy1Cb2xkSXRhbGljLmFmbSIsInV0ZjgiKX0sU3ltYm9sOmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVhZEZpbGVTeW5jKHIrIi9mb250L2RhdGEvU3ltYm9sLmFmbSIsInV0ZjgiKX0sWmFwZkRpbmdiYXRzOmZ1bmN0aW9uKCl7cmV0dXJuIGgucmVhZEZpbGVTeW5jKHIrIi9mb250L2RhdGEvWmFwZkRpbmdiYXRzLmFmbSIsInV0ZjgiKX19LHQucHJvdG90eXBlLnVzZT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gbnVsbCE9KGU9dGhpcy5zdWJzZXQpP2UudXNlKHQpOnZvaWQgMH0sdC5wcm90b3R5cGUuZW1iZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbWJlZGRlZHx8bnVsbD09dGhpcy5kaWN0aW9uYXJ5P3ZvaWQgMDoodGhpcy5pc0FGTT90aGlzLmVtYmVkQUZNKCk6dGhpcy5lbWJlZFRURigpLHRoaXMuZW1iZWRkZWQ9ITApfSx0LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHRoaXMuaXNBRk0/dGhpcy5mb250LmVuY29kZVRleHQodCk6KG51bGwhPShlPXRoaXMuc3Vic2V0KT9lLmVuY29kZVRleHQodCk6dm9pZCAwKXx8dH0sdC5wcm90b3R5cGUucmVmPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPXRoaXMuZGljdGlvbmFyeT90aGlzLmRpY3Rpb25hcnk6dGhpcy5kaWN0aW9uYXJ5PXRoaXMuZG9jdW1lbnQucmVmKCl9LHQucHJvdG90eXBlLnJlZ2lzdGVyVFRGPWZ1bmN0aW9uKCl7dmFyIHQsZSxuLHIsaTtpZih0aGlzLm5hbWU9dGhpcy5mb250Lm5hbWUucG9zdHNjcmlwdE5hbWUsdGhpcy5zY2FsZUZhY3Rvcj0xZTMvdGhpcy5mb250LmhlYWQudW5pdHNQZXJFbSx0aGlzLmJib3g9ZnVuY3Rpb24oKXt2YXIgZSxuLHIsaTtmb3Iocj10aGlzLmZvbnQuYmJveCxpPVtdLGU9MCxuPXIubGVuZ3RoO24+ZTtlKyspdD1yW2VdLGkucHVzaChNYXRoLnJvdW5kKHQqdGhpcy5zY2FsZUZhY3RvcikpO3JldHVybiBpfS5jYWxsKHRoaXMpLHRoaXMuc3RlbVY9MCx0aGlzLmZvbnQucG9zdC5leGlzdHM/KHI9dGhpcy5mb250LnBvc3QuaXRhbGljX2FuZ2xlLGU9cj4+MTYsbj0yNTUmcixlJiEwJiYoZT0tKCg2NTUzNV5lKSsxKSksdGhpcy5pdGFsaWNBbmdsZT0rKCIiK2UrIi4iK24pKTp0aGlzLml0YWxpY0FuZ2xlPTAsdGhpcy5hc2NlbmRlcj1NYXRoLnJvdW5kKHRoaXMuZm9udC5hc2NlbmRlcip0aGlzLnNjYWxlRmFjdG9yKSx0aGlzLmRlY2VuZGVyPU1hdGgucm91bmQodGhpcy5mb250LmRlY2VuZGVyKnRoaXMuc2NhbGVGYWN0b3IpLHRoaXMubGluZUdhcD1NYXRoLnJvdW5kKHRoaXMuZm9udC5saW5lR2FwKnRoaXMuc2NhbGVGYWN0b3IpLHRoaXMuY2FwSGVpZ2h0PXRoaXMuZm9udC5vczIuZXhpc3RzJiZ0aGlzLmZvbnQub3MyLmNhcEhlaWdodHx8dGhpcy5hc2NlbmRlcix0aGlzLnhIZWlnaHQ9dGhpcy5mb250Lm9zMi5leGlzdHMmJnRoaXMuZm9udC5vczIueEhlaWdodHx8MCx0aGlzLmZhbWlseUNsYXNzPSh0aGlzLmZvbnQub3MyLmV4aXN0cyYmdGhpcy5mb250Lm9zMi5mYW1pbHlDbGFzc3x8MCk+PjgsdGhpcy5pc1NlcmlmPTE9PT0oaT10aGlzLmZhbWlseUNsYXNzKXx8Mj09PWl8fDM9PT1pfHw0PT09aXx8NT09PWl8fDc9PT1pLHRoaXMuaXNTY3JpcHQ9MTA9PT10aGlzLmZhbWlseUNsYXNzLHRoaXMuZmxhZ3M9MCx0aGlzLmZvbnQucG9zdC5pc0ZpeGVkUGl0Y2gmJih0aGlzLmZsYWdzfD0xKSx0aGlzLmlzU2VyaWYmJih0aGlzLmZsYWdzfD0yKSx0aGlzLmlzU2NyaXB0JiYodGhpcy5mbGFnc3w9OCksMCE9PXRoaXMuaXRhbGljQW5nbGUmJih0aGlzLmZsYWdzfD02NCksdGhpcy5mbGFnc3w9MzIsIXRoaXMuZm9udC5jbWFwLnVuaWNvZGUpdGhyb3cgbmV3IEVycm9yKCJObyB1bmljb2RlIGNtYXAgZm9yIGZvbnQiKX0sdC5wcm90b3R5cGUuZW1iZWRUVEY9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scixpLGEscyxoO3JldHVybiByPXRoaXMuc3Vic2V0LmVuY29kZSgpLHM9dGhpcy5kb2N1bWVudC5yZWYoKSxzLndyaXRlKHIpLHMuZGF0YS5MZW5ndGgxPXMudW5jb21wcmVzc2VkTGVuZ3RoLHMuZW5kKCksaT10aGlzLmRvY3VtZW50LnJlZih7VHlwZToiRm9udERlc2NyaXB0b3IiLEZvbnROYW1lOnRoaXMuc3Vic2V0LnBvc3RzY3JpcHROYW1lLEZvbnRGaWxlMjpzLEZvbnRCQm94OnRoaXMuYmJveCxGbGFnczp0aGlzLmZsYWdzLFN0ZW1WOnRoaXMuc3RlbVYsSXRhbGljQW5nbGU6dGhpcy5pdGFsaWNBbmdsZSxBc2NlbnQ6dGhpcy5hc2NlbmRlcixEZXNjZW50OnRoaXMuZGVjZW5kZXIsQ2FwSGVpZ2h0OnRoaXMuY2FwSGVpZ2h0LFhIZWlnaHQ6dGhpcy54SGVpZ2h0fSksaS5lbmQoKSxhPStPYmplY3Qua2V5cyh0aGlzLnN1YnNldC5jbWFwKVswXSx0PWZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMuc3Vic2V0LmNtYXAsZT1bXTtmb3IobiBpbiB0KWg9dFtuXSxlLnB1c2goTWF0aC5yb3VuZCh0aGlzLmZvbnQud2lkdGhPZkdseXBoKGgpKSk7cmV0dXJuIGV9LmNhbGwodGhpcyksZT10aGlzLmRvY3VtZW50LnJlZigpLGUuZW5kKG8odGhpcy5zdWJzZXQuc3Vic2V0KSksdGhpcy5kaWN0aW9uYXJ5LmRhdGE9e1R5cGU6IkZvbnQiLEJhc2VGb250OnRoaXMuc3Vic2V0LnBvc3RzY3JpcHROYW1lLFN1YnR5cGU6IlRydWVUeXBlIixGb250RGVzY3JpcHRvcjppLEZpcnN0Q2hhcjphLExhc3RDaGFyOmErdC5sZW5ndGgtMSxXaWR0aHM6dCxFbmNvZGluZzoiTWFjUm9tYW5FbmNvZGluZyIsVG9Vbmljb2RlOmV9LHRoaXMuZGljdGlvbmFyeS5lbmQoKX0sbz1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscztmb3Iobz0iL0NJREluaXQgL1Byb2NTZXQgZmluZHJlc291cmNlIGJlZ2luXG4xMiBkaWN0IGJlZ2luXG5iZWdpbmNtYXBcbi9DSURTeXN0ZW1JbmZvIDw8XG4gIC9SZWdpc3RyeSAoQWRvYmUpXG4gIC9PcmRlcmluZyAoVUNTKVxuICAvU3VwcGxlbWVudCAwXG4+PiBkZWZcbi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZlxuL0NNYXBUeXBlIDIgZGVmXG4xIGJlZ2luY29kZXNwYWNlcmFuZ2VcbjwwMD48ZmY+XG5lbmRjb2Rlc3BhY2VyYW5nZSIsbj1PYmplY3Qua2V5cyh0KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pLHI9W10sYT0wLHM9bi5sZW5ndGg7cz5hO2ErKyllPW5bYV0sci5sZW5ndGg+PTEwMCYmKG8rPSJcbiIrci5sZW5ndGgrIiBiZWdpbmJmY2hhclxuIityLmpvaW4oIlxuIikrIlxuZW5kYmZjaGFyIixyPVtdKSxpPSgiMDAwMCIrdFtlXS50b1N0cmluZygxNikpLnNsaWNlKC00KSxlPSgrZSkudG9TdHJpbmcoMTYpLHIucHVzaCgiPCIrZSsiPjwiK2krIj4iKTtyZXR1cm4gci5sZW5ndGgmJihvKz0iXG4iK3IubGVuZ3RoKyIgYmVnaW5iZmNoYXJcbiIrci5qb2luKCJcbiIpKyJcbmVuZGJmY2hhclxuIiksbys9ImVuZGNtYXBcbkNNYXBOYW1lIGN1cnJlbnRkaWN0IC9DTWFwIGRlZmluZXJlc291cmNlIHBvcFxuZW5kXG5lbmQifSx0LnByb3RvdHlwZS5yZWdpc3RlckFGTT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5uYW1lPXQsZT10aGlzLmZvbnQsdGhpcy5hc2NlbmRlcj1lLmFzY2VuZGVyLHRoaXMuZGVjZW5kZXI9ZS5kZWNlbmRlcix0aGlzLmJib3g9ZS5iYm94LHRoaXMubGluZUdhcD1lLmxpbmVHYXAsZX0sdC5wcm90b3R5cGUuZW1iZWRBRk09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaWN0aW9uYXJ5LmRhdGE9e1R5cGU6IkZvbnQiLEJhc2VGb250OnRoaXMubmFtZSxTdWJ0eXBlOiJUeXBlMSIsRW5jb2Rpbmc6IldpbkFuc2lFbmNvZGluZyJ9LHRoaXMuZGljdGlvbmFyeS5lbmQoKX0sdC5wcm90b3R5cGUud2lkdGhPZlN0cmluZz1mdW5jdGlvbih0LGUpe3ZhciBuLHIsaSxvLGEscztmb3IodD0iIit0LG89MCxyPWE9MCxzPXQubGVuZ3RoO3M+PTA/cz5hOmE+cztyPXM+PTA/KythOi0tYSluPXQuY2hhckNvZGVBdChyKSxvKz10aGlzLmZvbnQud2lkdGhPZkdseXBoKHRoaXMuZm9udC5jaGFyYWN0ZXJUb0dseXBoKG4pKXx8MDtyZXR1cm4gaT1lLzFlMyxvKml9LHQucHJvdG90eXBlLmxpbmVIZWlnaHQ9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbnVsbD09ZSYmKGU9ITEpLG49ZT90aGlzLmxpbmVHYXA6MCwodGhpcy5hc2NlbmRlcituLXRoaXMuZGVjZW5kZXIpLzFlMyp0fSx0fSgpLHQuZXhwb3J0cz1vfSkuY2FsbCh0aGlzKX0pLmNhbGwoZSxuKDQpLkJ1ZmZlciwiLyIpfSxmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0LGUpe3JldHVybiBkLmlzVW5kZWZpbmVkKGUpPyIiK2U6ZC5pc051bWJlcihlKSYmIWlzRmluaXRlKGUpP2UudG9TdHJpbmcoKTpkLmlzRnVuY3Rpb24oZSl8fGQuaXNSZWdFeHAoZSk/ZS50b1N0cmluZygpOmV9ZnVuY3Rpb24gaSh0LGUpe3JldHVybiBkLmlzU3RyaW5nKHQpP3QubGVuZ3RoPGU/dDp0LnNsaWNlKDAsZSk6dH1mdW5jdGlvbiBvKHQpe3JldHVybiBpKEpTT04uc3RyaW5naWZ5KHQuYWN0dWFsLHIpLDEyOCkrIiAiK3Qub3BlcmF0b3IrIiAiK2koSlNPTi5zdHJpbmdpZnkodC5leHBlY3RlZCxyKSwxMjgpfWZ1bmN0aW9uIGEodCxlLG4scixpKXt0aHJvdyBuZXcgdi5Bc3NlcnRpb25FcnJvcih7bWVzc2FnZTpuLGFjdHVhbDp0LGV4cGVjdGVkOmUsb3BlcmF0b3I6cixzdGFja1N0YXJ0RnVuY3Rpb246aX0pfWZ1bmN0aW9uIHModCxlKXt0fHxhKHQsITAsZSwiPT0iLHYub2spfWZ1bmN0aW9uIGgodCxlKXtpZih0PT09ZSlyZXR1cm4hMDtpZihkLmlzQnVmZmVyKHQpJiZkLmlzQnVmZmVyKGUpKXtpZih0Lmxlbmd0aCE9ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSE9PWVbbl0pcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIGQuaXNEYXRlKHQpJiZkLmlzRGF0ZShlKT90LmdldFRpbWUoKT09PWUuZ2V0VGltZSgpOmQuaXNSZWdFeHAodCkmJmQuaXNSZWdFeHAoZSk/dC5zb3VyY2U9PT1lLnNvdXJjZSYmdC5nbG9iYWw9PT1lLmdsb2JhbCYmdC5tdWx0aWxpbmU9PT1lLm11bHRpbGluZSYmdC5sYXN0SW5kZXg9PT1lLmxhc3RJbmRleCYmdC5pZ25vcmVDYXNlPT09ZS5pZ25vcmVDYXNlOmQuaXNPYmplY3QodCl8fGQuaXNPYmplY3QoZSk/bCh0LGUpOnQ9PWV9ZnVuY3Rpb24gdSh0KXtyZXR1cm4iW29iamVjdCBBcmd1bWVudHNdIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGwodCxlKXtpZihkLmlzTnVsbE9yVW5kZWZpbmVkKHQpfHxkLmlzTnVsbE9yVW5kZWZpbmVkKGUpKXJldHVybiExO2lmKHQucHJvdG90eXBlIT09ZS5wcm90b3R5cGUpcmV0dXJuITE7aWYoZC5pc1ByaW1pdGl2ZSh0KXx8ZC5pc1ByaW1pdGl2ZShlKSlyZXR1cm4gdD09PWU7dmFyIG49dSh0KSxyPXUoZSk7aWYobiYmIXJ8fCFuJiZyKXJldHVybiExO2lmKG4pcmV0dXJuIHQ9cC5jYWxsKHQpLGU9cC5jYWxsKGUpLGgodCxlKTt2YXIgaSxvLGE9bSh0KSxzPW0oZSk7aWYoYS5sZW5ndGghPXMubGVuZ3RoKXJldHVybiExO2ZvcihhLnNvcnQoKSxzLnNvcnQoKSxvPWEubGVuZ3RoLTE7bz49MDtvLS0paWYoYVtvXSE9c1tvXSlyZXR1cm4hMTtmb3Iobz1hLmxlbmd0aC0xO28+PTA7by0tKWlmKGk9YVtvXSwhaCh0W2ldLGVbaV0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdCYmZT8iW29iamVjdCBSZWdFeHBdIj09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpP2UudGVzdCh0KTp0IGluc3RhbmNlb2YgZT8hMDplLmNhbGwoe30sdCk9PT0hMD8hMDohMTohMX1mdW5jdGlvbiBmKHQsZSxuLHIpe3ZhciBpO2QuaXNTdHJpbmcobikmJihyPW4sbj1udWxsKTt0cnl7ZSgpfWNhdGNoKG8pe2k9b31pZihyPShuJiZuLm5hbWU/IiAoIituLm5hbWUrIikuIjoiLiIpKyhyPyIgIityOiIuIiksdCYmIWkmJmEoaSxuLCJNaXNzaW5nIGV4cGVjdGVkIGV4Y2VwdGlvbiIrciksIXQmJmMoaSxuKSYmYShpLG4sIkdvdCB1bndhbnRlZCBleGNlcHRpb24iK3IpLHQmJmkmJm4mJiFjKGksbil8fCF0JiZpKXRocm93IGl9dmFyIGQ9big2MCkscD1BcnJheS5wcm90b3R5cGUuc2xpY2UsZz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHY9dC5leHBvcnRzPXM7di5Bc3NlcnRpb25FcnJvcj1mdW5jdGlvbih0KXt0aGlzLm5hbWU9IkFzc2VydGlvbkVycm9yIix0aGlzLmFjdHVhbD10LmFjdHVhbCx0aGlzLmV4cGVjdGVkPXQuZXhwZWN0ZWQsdGhpcy5vcGVyYXRvcj10Lm9wZXJhdG9yLHQubWVzc2FnZT8odGhpcy5tZXNzYWdlPXQubWVzc2FnZSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITEpOih0aGlzLm1lc3NhZ2U9byh0aGlzKSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITApO3ZhciBlPXQuc3RhY2tTdGFydEZ1bmN0aW9ufHxhO2lmKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKUVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsZSk7ZWxzZXt2YXIgbj1uZXcgRXJyb3I7aWYobi5zdGFjayl7dmFyIHI9bi5zdGFjayxpPWUubmFtZSxzPXIuaW5kZXhPZigiXG4iK2kpO2lmKHM+PTApe3ZhciBoPXIuaW5kZXhPZigiXG4iLHMrMSk7cj1yLnN1YnN0cmluZyhoKzEpfXRoaXMuc3RhY2s9cn19fSxkLmluaGVyaXRzKHYuQXNzZXJ0aW9uRXJyb3IsRXJyb3IpLHYuZmFpbD1hLHYub2s9cyx2LmVxdWFsPWZ1bmN0aW9uKHQsZSxuKXt0IT1lJiZhKHQsZSxuLCI9PSIsdi5lcXVhbCl9LHYubm90RXF1YWw9ZnVuY3Rpb24odCxlLG4pe3Q9PWUmJmEodCxlLG4sIiE9Iix2Lm5vdEVxdWFsKX0sdi5kZWVwRXF1YWw9ZnVuY3Rpb24odCxlLG4pe2godCxlKXx8YSh0LGUsbiwiZGVlcEVxdWFsIix2LmRlZXBFcXVhbCl9LHYubm90RGVlcEVxdWFsPWZ1bmN0aW9uKHQsZSxuKXtoKHQsZSkmJmEodCxlLG4sIm5vdERlZXBFcXVhbCIsdi5ub3REZWVwRXF1YWwpfSx2LnN0cmljdEVxdWFsPWZ1bmN0aW9uKHQsZSxuKXt0IT09ZSYmYSh0LGUsbiwiPT09Iix2LnN0cmljdEVxdWFsKX0sdi5ub3RTdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUsbil7dD09PWUmJmEodCxlLG4sIiE9PSIsdi5ub3RTdHJpY3RFcXVhbCl9LHZbInRocm93cyJdPWZ1bmN0aW9uKHQsZSxuKXtmLmFwcGx5KHRoaXMsWyEwXS5jb25jYXQocC5jYWxsKGFyZ3VtZW50cykpKX0sdi5kb2VzTm90VGhyb3c9ZnVuY3Rpb24odCxlKXtmLmFwcGx5KHRoaXMsWyExXS5jb25jYXQocC5jYWxsKGFyZ3VtZW50cykpKX0sdi5pZkVycm9yPWZ1bmN0aW9uKHQpe2lmKHQpdGhyb3cgdH07dmFyIG09T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgbiBpbiB0KWcuY2FsbCh0LG4pJiZlLnB1c2gobik7cmV0dXJuIGV9fSxmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcigpe3RoaXMuX2V2ZW50cz10aGlzLl9ldmVudHN8fHt9LHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH1mdW5jdGlvbiBpKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIG8odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dH1mdW5jdGlvbiBzKHQpe3JldHVybiB2b2lkIDA9PT10fXQuZXhwb3J0cz1yLHIuRXZlbnRFbWl0dGVyPXIsci5wcm90b3R5cGUuX2V2ZW50cz12b2lkIDAsci5wcm90b3R5cGUuX21heExpc3RlbmVycz12b2lkIDAsci5kZWZhdWx0TWF4TGlzdGVuZXJzPTEwLHIucHJvdG90eXBlLnNldE1heExpc3RlbmVycz1mdW5jdGlvbih0KXtpZighbyh0KXx8MD50fHxpc05hTih0KSl0aHJvdyBUeXBlRXJyb3IoIm4gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpO3JldHVybiB0aGlzLl9tYXhMaXN0ZW5lcnM9dCx0aGlzfSxyLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKHQpe3ZhciBlLG4scixvLGgsdTtpZih0aGlzLl9ldmVudHN8fCh0aGlzLl9ldmVudHM9e30pLCJlcnJvciI9PT10JiYoIXRoaXMuX2V2ZW50cy5lcnJvcnx8YSh0aGlzLl9ldmVudHMuZXJyb3IpJiYhdGhpcy5fZXZlbnRzLmVycm9yLmxlbmd0aCkpe2lmKGU9YXJndW1lbnRzWzFdLGUgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBlO3Rocm93IFR5cGVFcnJvcignVW5jYXVnaHQsIHVuc3BlY2lmaWVkICJlcnJvciIgZXZlbnQuJyl9aWYobj10aGlzLl9ldmVudHNbdF0scyhuKSlyZXR1cm4hMTtpZihpKG4pKXN3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6bi5jYWxsKHRoaXMpO2JyZWFrO2Nhc2UgMjpuLmNhbGwodGhpcyxhcmd1bWVudHNbMV0pO2JyZWFrO2Nhc2UgMzpuLmNhbGwodGhpcyxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdKTticmVhaztkZWZhdWx0OmZvcihyPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkoci0xKSxoPTE7cj5oO2grKylvW2gtMV09YXJndW1lbnRzW2hdO24uYXBwbHkodGhpcyxvKX1lbHNlIGlmKGEobikpe2ZvcihyPWFyZ3VtZW50cy5sZW5ndGgsbz1uZXcgQXJyYXkoci0xKSxoPTE7cj5oO2grKylvW2gtMV09YXJndW1lbnRzW2hdO2Zvcih1PW4uc2xpY2UoKSxyPXUubGVuZ3RoLGg9MDtyPmg7aCsrKXVbaF0uYXBwbHkodGhpcyxvKX1yZXR1cm4hMH0sci5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24odCxlKXt2YXIgbjtpZighaShlKSl0aHJvdyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO2lmKHRoaXMuX2V2ZW50c3x8KHRoaXMuX2V2ZW50cz17fSksdGhpcy5fZXZlbnRzLm5ld0xpc3RlbmVyJiZ0aGlzLmVtaXQoIm5ld0xpc3RlbmVyIix0LGkoZS5saXN0ZW5lcik/ZS5saXN0ZW5lcjplKSx0aGlzLl9ldmVudHNbdF0/YSh0aGlzLl9ldmVudHNbdF0pP3RoaXMuX2V2ZW50c1t0XS5wdXNoKGUpOnRoaXMuX2V2ZW50c1t0XT1bdGhpcy5fZXZlbnRzW3RdLGVdOnRoaXMuX2V2ZW50c1t0XT1lLGEodGhpcy5fZXZlbnRzW3RdKSYmIXRoaXMuX2V2ZW50c1t0XS53YXJuZWQpe3ZhciBuO249cyh0aGlzLl9tYXhMaXN0ZW5lcnMpP3IuZGVmYXVsdE1heExpc3RlbmVyczp0aGlzLl9tYXhMaXN0ZW5lcnMsbiYmbj4wJiZ0aGlzLl9ldmVudHNbdF0ubGVuZ3RoPm4mJih0aGlzLl9ldmVudHNbdF0ud2FybmVkPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLnRyYWNlKX1yZXR1cm4gdGhpc30sci5wcm90b3R5cGUub249ci5wcm90b3R5cGUuYWRkTGlzdGVuZXIsci5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLnJlbW92ZUxpc3RlbmVyKHQsbikscnx8KHI9ITAsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfWlmKCFpKGUpKXRocm93IFR5cGVFcnJvcigibGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dmFyIHI9ITE7cmV0dXJuIG4ubGlzdGVuZXI9ZSx0aGlzLm9uKHQsbiksdGhpc30sci5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8scztpZighaShlKSl0aHJvdyBUeXBlRXJyb3IoImxpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbiIpO2lmKCF0aGlzLl9ldmVudHN8fCF0aGlzLl9ldmVudHNbdF0pcmV0dXJuIHRoaXM7aWYobj10aGlzLl9ldmVudHNbdF0sbz1uLmxlbmd0aCxyPS0xLG49PT1lfHxpKG4ubGlzdGVuZXIpJiZuLmxpc3RlbmVyPT09ZSlkZWxldGUgdGhpcy5fZXZlbnRzW3RdLHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxlKTtlbHNlIGlmKGEobikpe2ZvcihzPW87cy0tPjA7KWlmKG5bc109PT1lfHxuW3NdLmxpc3RlbmVyJiZuW3NdLmxpc3RlbmVyPT09ZSl7cj1zO2JyZWFrfWlmKDA+cilyZXR1cm4gdGhpczsxPT09bi5sZW5ndGg/KG4ubGVuZ3RoPTAsZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSk6bi5zcGxpY2UociwxKSx0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLHQsZSl9cmV0dXJuIHRoaXN9LHIucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbih0KXt2YXIgZSxuO2lmKCF0aGlzLl9ldmVudHMpcmV0dXJuIHRoaXM7aWYoIXRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fZXZlbnRzPXt9OnRoaXMuX2V2ZW50c1t0XSYmZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXtmb3IoZSBpbiB0aGlzLl9ldmVudHMpInJlbW92ZUxpc3RlbmVyIiE9PWUmJnRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKGUpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9e30sdGhpc31pZihuPXRoaXMuX2V2ZW50c1t0XSxpKG4pKXRoaXMucmVtb3ZlTGlzdGVuZXIodCxuKTtlbHNlIGZvcig7bi5sZW5ndGg7KXRoaXMucmVtb3ZlTGlzdGVuZXIodCxuW24ubGVuZ3RoLTFdKTtyZXR1cm4gZGVsZXRlIHRoaXMuX2V2ZW50c1t0XSx0aGlzfSxyLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGU9dGhpcy5fZXZlbnRzJiZ0aGlzLl9ldmVudHNbdF0/aSh0aGlzLl9ldmVudHNbdF0pP1t0aGlzLl9ldmVudHNbdF1dOnRoaXMuX2V2ZW50c1t0XS5zbGljZSgpOltdfSxyLmxpc3RlbmVyQ291bnQ9ZnVuY3Rpb24odCxlKXt2YXIgbjtyZXR1cm4gbj10Ll9ldmVudHMmJnQuX2V2ZW50c1tlXT9pKHQuX2V2ZW50c1tlXSk/MTp0Ll9ldmVudHNbZV0ubGVuZ3RoOjB9fSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPW4oNzApfSxmdW5jdGlvbih0LGUsbil7ZT10LmV4cG9ydHM9big3MSksZS5TdHJlYW09big0NiksZS5SZWFkYWJsZT1lLGUuV3JpdGFibGU9big2NyksZS5EdXBsZXg9big2OSksZS5UcmFuc2Zvcm09big3MCksZS5QYXNzVGhyb3VnaD1uKDY4KX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKDY3KX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKDY5KX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1uKDY4KX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIGkodCxuKXt2YXIgcj17c2VlbjpbXSxzdHlsaXplOmF9O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPj0zJiYoci5kZXB0aD1hcmd1bWVudHNbMl0pLGFyZ3VtZW50cy5sZW5ndGg+PTQmJihyLmNvbG9ycz1hcmd1bWVudHNbM10pLGcobik/ci5zaG93SGlkZGVuPW46biYmZS5fZXh0ZW5kKHIsbiksYihyLnNob3dIaWRkZW4pJiYoci5zaG93SGlkZGVuPSExKSxiKHIuZGVwdGgpJiYoci5kZXB0aD0yKSxiKHIuY29sb3JzKSYmKHIuY29sb3JzPSExKSxiKHIuY3VzdG9tSW5zcGVjdCkmJihyLmN1c3RvbUluc3BlY3Q9ITApLHIuY29sb3JzJiYoci5zdHlsaXplPW8pLGgocix0LHIuZGVwdGgpfWZ1bmN0aW9uIG8odCxlKXt2YXIgbj1pLnN0eWxlc1tlXTtyZXR1cm4gbj8iG1siK2kuY29sb3JzW25dWzBdKyJtIit0KyIbWyIraS5jb2xvcnNbbl1bMV0rIm0iOnR9ZnVuY3Rpb24gYSh0LGUpe3JldHVybiB0fWZ1bmN0aW9uIHModCl7dmFyIGU9e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbih0LG4pe2VbdF09ITB9KSxlfWZ1bmN0aW9uIGgodCxuLHIpe2lmKHQuY3VzdG9tSW5zcGVjdCYmbiYmQyhuLmluc3BlY3QpJiZuLmluc3BlY3QhPT1lLmluc3BlY3QmJighbi5jb25zdHJ1Y3Rvcnx8bi5jb25zdHJ1Y3Rvci5wcm90b3R5cGUhPT1uKSl7dmFyIGk9bi5pbnNwZWN0KHIsdCk7cmV0dXJuIHcoaSl8fChpPWgodCxpLHIpKSxpfXZhciBvPXUodCxuKTtpZihvKXJldHVybiBvO3ZhciBhPU9iamVjdC5rZXlzKG4pLGc9cyhhKTtpZih0LnNob3dIaWRkZW4mJihhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG4pKSxFKG4pJiYoYS5pbmRleE9mKCJtZXNzYWdlIik+PTB8fGEuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIGwobik7aWYoMD09PWEubGVuZ3RoKXtpZihDKG4pKXt2YXIgdj1uLm5hbWU/IjogIituLm5hbWU6IiI7cmV0dXJuIHQuc3R5bGl6ZSgiW0Z1bmN0aW9uIit2KyJdIiwic3BlY2lhbCIpfWlmKHgobikpcmV0dXJuIHQuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobiksInJlZ2V4cCIpO2lmKGsobikpcmV0dXJuIHQuc3R5bGl6ZShEYXRlLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pLCJkYXRlIik7aWYoRShuKSlyZXR1cm4gbChuKX12YXIgbT0iIix5PSExLF89WyJ7IiwifSJdO2lmKHAobikmJih5PSEwLF89WyJbIiwiXSJdKSxDKG4pKXt2YXIgYj1uLm5hbWU/IjogIituLm5hbWU6IiI7bT0iIFtGdW5jdGlvbiIrYisiXSJ9aWYoeChuKSYmKG09IiAiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuKSksayhuKSYmKG09IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwobikpLEUobikmJihtPSIgIitsKG4pKSwwPT09YS5sZW5ndGgmJigheXx8MD09bi5sZW5ndGgpKXJldHVybiBfWzBdK20rX1sxXTtpZigwPnIpcmV0dXJuIHgobik/dC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuKSwicmVnZXhwIik6dC5zdHlsaXplKCJbT2JqZWN0XSIsInNwZWNpYWwiKTt0LnNlZW4ucHVzaChuKTt2YXIgUztyZXR1cm4gUz15P2ModCxuLHIsZyxhKTphLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZih0LG4scixnLGUseSl9KSx0LnNlZW4ucG9wKCksZChTLG0sXyl9ZnVuY3Rpb24gdSh0LGUpe2lmKGIoZSkpcmV0dXJuIHQuc3R5bGl6ZSgidW5kZWZpbmVkIiwidW5kZWZpbmVkIik7aWYodyhlKSl7dmFyIG49IiciK0pTT04uc3RyaW5naWZ5KGUpLnJlcGxhY2UoL14ifCIkL2csIiIpLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIHQuc3R5bGl6ZShuLCJzdHJpbmciKX1yZXR1cm4geShlKT90LnN0eWxpemUoIiIrZSwibnVtYmVyIik6ZyhlKT90LnN0eWxpemUoIiIrZSwiYm9vbGVhbiIpOnYoZSk/dC5zdHlsaXplKCJudWxsIiwibnVsbCIpOnZvaWQgMH1mdW5jdGlvbiBsKHQpe3JldHVybiJbIitFcnJvci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KSsiXSJ9ZnVuY3Rpb24gYyh0LGUsbixyLGkpe2Zvcih2YXIgbz1bXSxhPTAscz1lLmxlbmd0aDtzPmE7KythKW8ucHVzaChMKGUsU3RyaW5nKGEpKT9mKHQsZSxuLHIsU3RyaW5nKGEpLCEwKToiIik7cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihpKXtpLm1hdGNoKC9eXGQrJC8pfHxvLnB1c2goZih0LGUsbixyLGksITApKX0pLG99ZnVuY3Rpb24gZih0LGUsbixyLGksbyl7dmFyIGEscyx1O2lmKHU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpfHx7dmFsdWU6ZVtpXX0sdS5nZXQ/cz11LnNldD90LnN0eWxpemUoIltHZXR0ZXIvU2V0dGVyXSIsInNwZWNpYWwiKTp0LnN0eWxpemUoIltHZXR0ZXJdIiwic3BlY2lhbCIpOnUuc2V0JiYocz10LnN0eWxpemUoIltTZXR0ZXJdIiwic3BlY2lhbCIpKSxMKHIsaSl8fChhPSJbIitpKyJdIiksc3x8KHQuc2Vlbi5pbmRleE9mKHUudmFsdWUpPDA/KHM9dihuKT9oKHQsdS52YWx1ZSxudWxsKTpoKHQsdS52YWx1ZSxuLTEpLHMuaW5kZXhPZigiXG4iKT4tMSYmKHM9bz9zLnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4iICAiK3R9KS5qb2luKCJcbiIpLnN1YnN0cigyKToiXG4iK3Muc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKHQpe3JldHVybiIgICAiK3R9KS5qb2luKCJcbiIpKSk6cz10LnN0eWxpemUoIltDaXJjdWxhcl0iLCJzcGVjaWFsIikpLGIoYSkpe2lmKG8mJmkubWF0Y2goL15cZCskLykpcmV0dXJuIHM7YT1KU09OLnN0cmluZ2lmeSgiIitpKSxhLm1hdGNoKC9eIihbYS16QS1aX11bYS16QS1aXzAtOV0qKSIkLyk/KGE9YS5zdWJzdHIoMSxhLmxlbmd0aC0yKSxhPXQuc3R5bGl6ZShhLCJuYW1lIikpOihhPWEucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLGE9dC5zdHlsaXplKGEsInN0cmluZyIpKX1yZXR1cm4gYSsiOiAiK3N9ZnVuY3Rpb24gZCh0LGUsbil7dmFyIHI9MCxpPXQucmVkdWNlKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIrKyxlLmluZGV4T2YoIlxuIik+PTAmJnIrKyx0K2UucmVwbGFjZSgvXHUwMDFiXFtcZFxkP20vZywiIikubGVuZ3RoKzF9LDApO3JldHVybiBpPjYwP25bMF0rKCIiPT09ZT8iIjplKyJcbiAiKSsiICIrdC5qb2luKCIsXG4gICIpKyIgIituWzFdOm5bMF0rZSsiICIrdC5qb2luKCIsICIpKyIgIituWzFdfWZ1bmN0aW9uIHAodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gZyh0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIHYodCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIG0odCl7cmV0dXJuIG51bGw9PXR9ZnVuY3Rpb24geSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR9ZnVuY3Rpb24gdyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9ZnVuY3Rpb24gXyh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9ZnVuY3Rpb24gYih0KXtyZXR1cm4gdm9pZCAwPT09dH1mdW5jdGlvbiB4KHQpe3JldHVybiBTKHQpJiYiW29iamVjdCBSZWdFeHBdIj09PUEodCl9ZnVuY3Rpb24gUyh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fWZ1bmN0aW9uIGsodCl7cmV0dXJuIFModCkmJiJbb2JqZWN0IERhdGVdIj09PUEodCl9ZnVuY3Rpb24gRSh0KXtyZXR1cm4gUyh0KSYmKCJbb2JqZWN0IEVycm9yXSI9PT1BKHQpfHx0IGluc3RhbmNlb2YgRXJyb3IpfWZ1bmN0aW9uIEModCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gbnVsbD09PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fHwic3ltYm9sIj09dHlwZW9mIHR8fCJ1bmRlZmluZWQiPT10eXBlb2YgdH1mdW5jdGlvbiBBKHQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gTCh0LGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKX12YXIgUj0vJVtzZGolXS9nO2UuZm9ybWF0PWZ1bmN0aW9uKHQpe2lmKCF3KHQpKXtmb3IodmFyIGU9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDtuKyspZS5wdXNoKGkoYXJndW1lbnRzW25dKSk7cmV0dXJuIGUuam9pbigiICIpfWZvcih2YXIgbj0xLHI9YXJndW1lbnRzLG89ci5sZW5ndGgsYT1TdHJpbmcodCkucmVwbGFjZShSLGZ1bmN0aW9uKHQpe2lmKCIlJSI9PT10KXJldHVybiIlIjtpZihuPj1vKXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIiVzIjpyZXR1cm4gU3RyaW5nKHJbbisrXSk7Y2FzZSIlZCI6cmV0dXJuIE51bWJlcihyW24rK10pO2Nhc2UiJWoiOnRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkocltuKytdKX1jYXRjaChlKXtyZXR1cm4iW0NpcmN1bGFyXSJ9ZGVmYXVsdDpyZXR1cm4gdH19KSxzPXJbbl07bz5uO3M9clsrK25dKWErPXYocyl8fCFTKHMpPyIgIitzOiIgIitpKHMpO3JldHVybiBhfSxlLmRlcHJlY2F0ZT1mdW5jdGlvbihuLGkpe2Z1bmN0aW9uIG8oKXtpZighYSl7aWYoci50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihpKTtyLnRyYWNlRGVwcmVjYXRpb24sYT0hMH1yZXR1cm4gbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9aWYoYih0LnByb2Nlc3MpKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmRlcHJlY2F0ZShuLGkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsKCn07aWYoci5ub0RlcHJlY2F0aW9uPT09ITApcmV0dXJuIG47dmFyIGE9ITE7cmV0dXJuIG99O3ZhciBCLFQ9e307ZS5kZWJ1Z2xvZz1mdW5jdGlvbih0KXtpZihiKEIpJiYoQj1yLmVudi5OT0RFX0RFQlVHfHwiIiksdD10LnRvVXBwZXJDYXNlKCksIVRbdF0paWYobmV3IFJlZ0V4cCgiXFxiIit0KyJcXGIiLCJpIikudGVzdChCKSl7e3IucGlkfVRbdF09ZnVuY3Rpb24oKXtlLmZvcm1hdC5hcHBseShlLGFyZ3VtZW50cyl9fWVsc2UgVFt0XT1mdW5jdGlvbigpe307cmV0dXJuIFRbdF19LGUuaW5zcGVjdD1pLGkuY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxpLnN0eWxlcz17c3BlY2lhbDoiY3lhbiIsbnVtYmVyOiJ5ZWxsb3ciLCJib29sZWFuIjoieWVsbG93Iix1bmRlZmluZWQ6ImdyZXkiLCJudWxsIjoiYm9sZCIsc3RyaW5nOiJncmVlbiIsZGF0ZToibWFnZW50YSIscmVnZXhwOiJyZWQifSxlLmlzQXJyYXk9cCxlLmlzQm9vbGVhbj1nLGUuaXNOdWxsPXYsZS5pc051bGxPclVuZGVmaW5lZD1tLGUuaXNOdW1iZXI9eSxlLmlzU3RyaW5nPXcsZS5pc1N5bWJvbD1fLGUuaXNVbmRlZmluZWQ9YixlLmlzUmVnRXhwPXgsZS5pc09iamVjdD1TLGUuaXNEYXRlPWssZS5pc0Vycm9yPUUsZS5pc0Z1bmN0aW9uPUMsZS5pc1ByaW1pdGl2ZT1JLGUuaXNCdWZmZXI9big3Mik7ZS5sb2c9ZnVuY3Rpb24oKXt9LGUuaW5oZXJpdHM9big5NCksZS5fZXh0ZW5kPWZ1bmN0aW9uKHQsZSl7aWYoIWV8fCFTKGUpKXJldHVybiB0O2Zvcih2YXIgbj1PYmplY3Qua2V5cyhlKSxyPW4ubGVuZ3RoO3ItLTspdFtuW3JdXT1lW25bcl1dO3JldHVybiB0fX0pLmNhbGwoZSxmdW5jdGlvbigpe3JldHVybiB0aGlzfSgpLG4oNjEpKX0sZnVuY3Rpb24odCxlLG4pe2Z1bmN0aW9uIHIoKXtpZighcyl7cz0hMDtmb3IodmFyIHQsZT1hLmxlbmd0aDtlOyl7dD1hLGE9W107Zm9yKHZhciBuPS0xOysrbjxlOyl0W25dKCk7ZT1hLmxlbmd0aH1zPSExfX1mdW5jdGlvbiBpKCl7fXZhciBvPXQuZXhwb3J0cz17fSxhPVtdLHM9ITE7by5uZXh0VGljaz1mdW5jdGlvbih0KXthLnB1c2godCksc3x8c2V0VGltZW91dChyLDApfSxvLnRpdGxlPSJicm93c2VyIixvLmJyb3dzZXI9ITAsby5lbnY9e30sby5hcmd2PVtdLG8udmVyc2lvbj0iIixvLnZlcnNpb25zPXt9LG8ub249aSxvLmFkZExpc3RlbmVyPWksby5vbmNlPWksby5vZmY9aSxvLnJlbW92ZUxpc3RlbmVyPWksby5yZW1vdmVBbGxMaXN0ZW5lcnM9aSxvLmVtaXQ9aSxvLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxvLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sby5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxvLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSxmdW5jdGlvbih0LGUsbil7dC5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKHQsZSl7dC5zdXBlcl89ZSx0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KX06ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lO3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLHI7cj1uKDEwKSxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZSxyO3RoaXMuY29udGVudHM9dCx0aGlzLmF0dHJpYnV0ZXM9e30sdGhpcy5nbHlwaFdpZHRocz17fSx0aGlzLmJvdW5kaW5nQm94ZXM9e30sdGhpcy5wYXJzZSgpLHRoaXMuY2hhcldpZHRocz1mdW5jdGlvbigpe3ZhciB0LGU7Zm9yKGU9W10scj10PTA7MjU1Pj10O3I9Kyt0KWUucHVzaCh0aGlzLmdseXBoV2lkdGhzW25bcl1dKTtyZXR1cm4gZX0uY2FsbCh0aGlzKSx0aGlzLmJib3g9ZnVuY3Rpb24oKXt2YXIgdCxuLHIsaTtmb3Iocj10aGlzLmF0dHJpYnV0ZXMuRm9udEJCb3guc3BsaXQoL1xzKy8pLGk9W10sdD0wLG49ci5sZW5ndGg7bj50O3QrKyllPXJbdF0saS5wdXNoKCtlKTtyZXR1cm4gaX0uY2FsbCh0aGlzKSx0aGlzLmFzY2VuZGVyPSsodGhpcy5hdHRyaWJ1dGVzLkFzY2VuZGVyfHwwKSx0aGlzLmRlY2VuZGVyPSsodGhpcy5hdHRyaWJ1dGVzLkRlc2NlbmRlcnx8MCksdGhpcy5saW5lR2FwPXRoaXMuYmJveFszXS10aGlzLmJib3hbMV0tKHRoaXMuYXNjZW5kZXItdGhpcy5kZWNlbmRlcil9dmFyIGUsbjtyZXR1cm4gdC5vcGVuPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdChyLnJlYWRGaWxlU3luYyhlLCJ1dGY4IikpfSx0LnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbigpe3ZhciB0LGUsbixyLGksbyxhLHMsaCx1O2ZvcihvPSIiLHU9dGhpcy5jb250ZW50cy5zcGxpdCgiXG4iKSxzPTAsaD11Lmxlbmd0aDtoPnM7cysrKWlmKG49dVtzXSxyPW4ubWF0Y2goL15TdGFydChcdyspLykpbz1yWzFdO2Vsc2UgaWYocj1uLm1hdGNoKC9eRW5kKFx3KykvKSlvPSIiO2Vsc2Ugc3dpdGNoKG8pe2Nhc2UiRm9udE1ldHJpY3MiOnI9bi5tYXRjaCgvKF5cdyspXHMrKC4qKS8pLGU9clsxXSxhPXJbMl0sKHQ9dGhpcy5hdHRyaWJ1dGVzW2VdKT8oQXJyYXkuaXNBcnJheSh0KXx8KHQ9dGhpcy5hdHRyaWJ1dGVzW2VdPVt0XSksdC5wdXNoKGEpKTp0aGlzLmF0dHJpYnV0ZXNbZV09YTticmVhaztjYXNlIkNoYXJNZXRyaWNzIjppZighL15DSD9ccy8udGVzdChuKSljb250aW51ZTtpPW4ubWF0Y2goL1xiTlxzKyhcLj9cdyspXHMqOy8pWzFdLHRoaXMuZ2x5cGhXaWR0aHNbaV09K24ubWF0Y2goL1xiV1hccysoXGQrKVxzKjsvKVsxXX19LGU9ezQwMjoxMzEsODIxMToxNTAsODIxMjoxNTEsODIxNjoxNDUsODIxNzoxNDYsODIxODoxMzAsODIyMDoxNDcsODIyMToxNDgsODIyMjoxMzIsODIyNDoxMzQsODIyNToxMzUsODIyNjoxNDksODIzMDoxMzMsODM2NDoxMjgsODI0MDoxMzcsODI0OToxMzksODI1MDoxNTUsNzEwOjEzNiw4NDgyOjE1MywzMzg6MTQwLDMzOToxNTYsNzMyOjE1MiwzNTI6MTM4LDM1MzoxNTQsMzc2OjE1OSwzODE6MTQyLDM4MjoxNTh9LHQucHJvdG90eXBlLmVuY29kZVRleHQ9ZnVuY3Rpb24odCl7dmFyIG4scixpLG8sYTtmb3IoaT0iIixyPW89MCxhPXQubGVuZ3RoO2E+PTA/YT5vOm8+YTtyPWE+PTA/KytvOi0tbyluPXQuY2hhckNvZGVBdChyKSxuPWVbbl18fG4saSs9U3RyaW5nLmZyb21DaGFyQ29kZShuKTtyZXR1cm4gaX0sdC5wcm90b3R5cGUuY2hhcmFjdGVyVG9HbHlwaD1mdW5jdGlvbih0KXtyZXR1cm4gbltlW3RdfHx0XX0sdC5wcm90b3R5cGUud2lkdGhPZkdseXBoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdseXBoV2lkdGhzW3RdfSxuPSIubm90ZGVmICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWZcbi5ub3RkZWYgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZlxuLm5vdGRlZiAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmXG4ubm90ZGVmICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWZcbi5ub3RkZWYgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZlxuLm5vdGRlZiAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmXG4ubm90ZGVmICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWZcbi5ub3RkZWYgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZlxuXG5zcGFjZSAgICAgICAgIGV4Y2xhbSAgICAgICAgIHF1b3RlZGJsICAgICAgIG51bWJlcnNpZ25cbmRvbGxhciAgICAgICAgcGVyY2VudCAgICAgICAgYW1wZXJzYW5kICAgICAgcXVvdGVzaW5nbGVcbnBhcmVubGVmdCAgICAgcGFyZW5yaWdodCAgICAgYXN0ZXJpc2sgICAgICAgcGx1c1xuY29tbWEgICAgICAgICBoeXBoZW4gICAgICAgICBwZXJpb2QgICAgICAgICBzbGFzaFxuemVybyAgICAgICAgICBvbmUgICAgICAgICAgICB0d28gICAgICAgICAgICB0aHJlZVxuZm91ciAgICAgICAgICBmaXZlICAgICAgICAgICBzaXggICAgICAgICAgICBzZXZlblxuZWlnaHQgICAgICAgICBuaW5lICAgICAgICAgICBjb2xvbiAgICAgICAgICBzZW1pY29sb25cbmxlc3MgICAgICAgICAgZXF1YWwgICAgICAgICAgZ3JlYXRlciAgICAgICAgcXVlc3Rpb25cblxuYXQgICAgICAgICAgICBBICAgICAgICAgICAgICBCICAgICAgICAgICAgICBDXG5EICAgICAgICAgICAgIEUgICAgICAgICAgICAgIEYgICAgICAgICAgICAgIEdcbkggICAgICAgICAgICAgSSAgICAgICAgICAgICAgSiAgICAgICAgICAgICAgS1xuTCAgICAgICAgICAgICBNICAgICAgICAgICAgICBOICAgICAgICAgICAgICBPXG5QICAgICAgICAgICAgIFEgICAgICAgICAgICAgIFIgICAgICAgICAgICAgIFNcblQgICAgICAgICAgICAgVSAgICAgICAgICAgICAgViAgICAgICAgICAgICAgV1xuWCAgICAgICAgICAgICBZICAgICAgICAgICAgICBaICAgICAgICAgICAgICBicmFja2V0bGVmdFxuYmFja3NsYXNoICAgICBicmFja2V0cmlnaHQgICBhc2NpaWNpcmN1bSAgICB1bmRlcnNjb3JlXG5cbmdyYXZlICAgICAgICAgYSAgICAgICAgICAgICAgYiAgICAgICAgICAgICAgY1xuZCAgICAgICAgICAgICBlICAgICAgICAgICAgICBmICAgICAgICAgICAgICBnXG5oICAgICAgICAgICAgIGkgICAgICAgICAgICAgIGogICAgICAgICAgICAgIGtcbmwgICAgICAgICAgICAgbSAgICAgICAgICAgICAgbiAgICAgICAgICAgICAgb1xucCAgICAgICAgICAgICBxICAgICAgICAgICAgICByICAgICAgICAgICAgICBzXG50ICAgICAgICAgICAgIHUgICAgICAgICAgICAgIHYgICAgICAgICAgICAgIHdcbnggICAgICAgICAgICAgeSAgICAgICAgICAgICAgeiAgICAgICAgICAgICAgYnJhY2VsZWZ0XG5iYXIgICAgICAgICAgIGJyYWNlcmlnaHQgICAgIGFzY2lpdGlsZGUgICAgIC5ub3RkZWZcblxuRXVybyAgICAgICAgICAubm90ZGVmICAgICAgICBxdW90ZXNpbmdsYmFzZSBmbG9yaW5cbnF1b3RlZGJsYmFzZSAgZWxsaXBzaXMgICAgICAgZGFnZ2VyICAgICAgICAgZGFnZ2VyZGJsXG5jaXJjdW1mbGV4ICAgIHBlcnRob3VzYW5kICAgIFNjYXJvbiAgICAgICAgIGd1aWxzaW5nbGxlZnRcbk9FICAgICAgICAgICAgLm5vdGRlZiAgICAgICAgWmNhcm9uICAgICAgICAgLm5vdGRlZlxuLm5vdGRlZiAgICAgICBxdW90ZWxlZnQgICAgICBxdW90ZXJpZ2h0ICAgICBxdW90ZWRibGxlZnRcbnF1b3RlZGJscmlnaHQgYnVsbGV0ICAgICAgICAgZW5kYXNoICAgICAgICAgZW1kYXNoXG50aWxkZSAgICAgICAgIHRyYWRlbWFyayAgICAgIHNjYXJvbiAgICAgICAgIGd1aWxzaW5nbHJpZ2h0XG5vZSAgICAgICAgICAgIC5ub3RkZWYgICAgICAgIHpjYXJvbiAgICAgICAgIHlkaWVyZXNpc1xuXG5zcGFjZSAgICAgICAgIGV4Y2xhbWRvd24gICAgIGNlbnQgICAgICAgICAgIHN0ZXJsaW5nXG5jdXJyZW5jeSAgICAgIHllbiAgICAgICAgICAgIGJyb2tlbmJhciAgICAgIHNlY3Rpb25cbmRpZXJlc2lzICAgICAgY29weXJpZ2h0ICAgICAgb3JkZmVtaW5pbmUgICAgZ3VpbGxlbW90bGVmdFxubG9naWNhbG5vdCAgICBoeXBoZW4gICAgICAgICByZWdpc3RlcmVkICAgICBtYWNyb25cbmRlZ3JlZSAgICAgICAgcGx1c21pbnVzICAgICAgdHdvc3VwZXJpb3IgICAgdGhyZWVzdXBlcmlvclxuYWN1dGUgICAgICAgICBtdSAgICAgICAgICAgICBwYXJhZ3JhcGggICAgICBwZXJpb2RjZW50ZXJlZFxuY2VkaWxsYSAgICAgICBvbmVzdXBlcmlvciAgICBvcmRtYXNjdWxpbmUgICBndWlsbGVtb3RyaWdodFxub25lcXVhcnRlciAgICBvbmVoYWxmICAgICAgICB0aHJlZXF1YXJ0ZXJzICBxdWVzdGlvbmRvd25cblxuQWdyYXZlICAgICAgICBBYWN1dGUgICAgICAgICBBY2lyY3VtZmxleCAgICBBdGlsZGVcbkFkaWVyZXNpcyAgICAgQXJpbmcgICAgICAgICAgQUUgICAgICAgICAgICAgQ2NlZGlsbGFcbkVncmF2ZSAgICAgICAgRWFjdXRlICAgICAgICAgRWNpcmN1bWZsZXggICAgRWRpZXJlc2lzXG5JZ3JhdmUgICAgICAgIElhY3V0ZSAgICAgICAgIEljaXJjdW1mbGV4ICAgIElkaWVyZXNpc1xuRXRoICAgICAgICAgICBOdGlsZGUgICAgICAgICBPZ3JhdmUgICAgICAgICBPYWN1dGVcbk9jaXJjdW1mbGV4ICAgT3RpbGRlICAgICAgICAgT2RpZXJlc2lzICAgICAgbXVsdGlwbHlcbk9zbGFzaCAgICAgICAgVWdyYXZlICAgICAgICAgVWFjdXRlICAgICAgICAgVWNpcmN1bWZsZXhcblVkaWVyZXNpcyAgICAgWWFjdXRlICAgICAgICAgVGhvcm4gICAgICAgICAgZ2VybWFuZGJsc1xuXG5hZ3JhdmUgICAgICAgIGFhY3V0ZSAgICAgICAgIGFjaXJjdW1mbGV4ICAgIGF0aWxkZVxuYWRpZXJlc2lzICAgICBhcmluZyAgICAgICAgICBhZSAgICAgICAgICAgICBjY2VkaWxsYVxuZWdyYXZlICAgICAgICBlYWN1dGUgICAgICAgICBlY2lyY3VtZmxleCAgICBlZGllcmVzaXNcbmlncmF2ZSAgICAgICAgaWFjdXRlICAgICAgICAgaWNpcmN1bWZsZXggICAgaWRpZXJlc2lzXG5ldGggICAgICAgICAgIG50aWxkZSAgICAgICAgIG9ncmF2ZSAgICAgICAgIG9hY3V0ZVxub2NpcmN1bWZsZXggICBvdGlsZGUgICAgICAgICBvZGllcmVzaXMgICAgICBkaXZpZGVcbm9zbGFzaCAgICAgICAgdWdyYXZlICAgICAgICAgdWFjdXRlICAgICAgICAgdWNpcmN1bWZsZXhcbnVkaWVyZXNpcyAgICAgeWFjdXRlICAgICAgICAgdGhvcm4gICAgICAgICAgeWRpZXJlc2lzIi5zcGxpdCgvXHMrLyksdH0oKSx0LmV4cG9ydHM9ZX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgQ21hcFRhYmxlLGUscixpLEdseWZUYWJsZSxIZWFkVGFibGUsSGhlYVRhYmxlLEhtdHhUYWJsZSxMb2NhVGFibGUsTWF4cFRhYmxlLE5hbWVUYWJsZSxPUzJUYWJsZSxQb3N0VGFibGUsbyxhO2E9bigxMCkscj1uKDM0KSxlPW4oNzgpLGk9big3OSksTmFtZVRhYmxlPW4oODApLEhlYWRUYWJsZT1uKDgxKSxDbWFwVGFibGU9big4MiksSG10eFRhYmxlPW4oODMpLEhoZWFUYWJsZT1uKDg0KSxNYXhwVGFibGU9big4NSksUG9zdFRhYmxlPW4oODYpLE9TMlRhYmxlPW4oODcpLExvY2FUYWJsZT1uKDg4KSxHbHlmVGFibGU9big5MCksbz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2YXIgbixpLG8sYSxzLGgsdSxsLGM7aWYodGhpcy5yYXdEYXRhPXQsbj10aGlzLmNvbnRlbnRzPW5ldyByKHRoaXMucmF3RGF0YSksInR0Y2YiPT09bi5yZWFkU3RyaW5nKDQpKXtpZighZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIGZvbnQgbmFtZSBmb3IgVFRDIGZpbGVzLiIpO2ZvcihoPW4ucmVhZEludCgpLG89bi5yZWFkSW50KCkscz1bXSxpPXU9MDtvPj0wP28+dTp1Pm87aT1vPj0wPysrdTotLXUpc1tpXT1uLnJlYWRJbnQoKTtmb3IoaT1sPTAsYz1zLmxlbmd0aDtjPmw7aT0rK2wpaWYoYT1zW2ldLG4ucG9zPWEsdGhpcy5wYXJzZSgpLHRoaXMubmFtZS5wb3N0c2NyaXB0TmFtZT09PWUpcmV0dXJuO3Rocm93IG5ldyBFcnJvcigiRm9udCAiK2UrIiBub3QgZm91bmQgaW4gVFRDIGZpbGUuIil9bi5wb3M9MCx0aGlzLnBhcnNlKCl9cmV0dXJuIHQub3Blbj1mdW5jdGlvbihlLG4pe3ZhciByO3JldHVybiByPWEucmVhZEZpbGVTeW5jKGUpLG5ldyB0KHIsbil9LHQuZnJvbURGb250PWZ1bmN0aW9uKG4scil7dmFyIGk7cmV0dXJuIGk9ZS5vcGVuKG4pLG5ldyB0KGkuZ2V0TmFtZWRGb250KHIpKX0sdC5mcm9tQnVmZmVyPWZ1bmN0aW9uKG4scil7dmFyIGksbyxhO3RyeXtpZihhPW5ldyB0KG4sciksIShhLmhlYWQuZXhpc3RzJiZhLm5hbWUuZXhpc3RzJiZhLmNtYXAuZXhpc3RzfHwoaT1uZXcgZShuKSxhPW5ldyB0KGkuZ2V0TmFtZWRGb250KHIpKSxhLmhlYWQuZXhpc3RzJiZhLm5hbWUuZXhpc3RzJiZhLmNtYXAuZXhpc3RzKSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFRURiBmaWxlIGluIERGb250Iik7cmV0dXJuIGF9Y2F0Y2gocyl7dGhyb3cgbz1zLG5ldyBFcnJvcigiVW5rbm93biBmb250IGZvcm1hdCBpbiBidWZmZXI6ICIrby5tZXNzYWdlKX19LHQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlyZWN0b3J5PW5ldyBpKHRoaXMuY29udGVudHMpLHRoaXMuaGVhZD1uZXcgSGVhZFRhYmxlKHRoaXMpLHRoaXMubmFtZT1uZXcgTmFtZVRhYmxlKHRoaXMpLHRoaXMuY21hcD1uZXcgQ21hcFRhYmxlKHRoaXMpLHRoaXMuaGhlYT1uZXcgSGhlYVRhYmxlKHRoaXMpLHRoaXMubWF4cD1uZXcgTWF4cFRhYmxlKHRoaXMpLHRoaXMuaG10eD1uZXcgSG10eFRhYmxlKHRoaXMpLHRoaXMucG9zdD1uZXcgUG9zdFRhYmxlKHRoaXMpLHRoaXMub3MyPW5ldyBPUzJUYWJsZSh0aGlzKSx0aGlzLmxvY2E9bmV3IExvY2FUYWJsZSh0aGlzKSx0aGlzLmdseWY9bmV3IEdseWZUYWJsZSh0aGlzKSx0aGlzLmFzY2VuZGVyPXRoaXMub3MyLmV4aXN0cyYmdGhpcy5vczIuYXNjZW5kZXJ8fHRoaXMuaGhlYS5hc2NlbmRlcix0aGlzLmRlY2VuZGVyPXRoaXMub3MyLmV4aXN0cyYmdGhpcy5vczIuZGVjZW5kZXJ8fHRoaXMuaGhlYS5kZWNlbmRlcix0aGlzLmxpbmVHYXA9dGhpcy5vczIuZXhpc3RzJiZ0aGlzLm9zMi5saW5lR2FwfHx0aGlzLmhoZWEubGluZUdhcCx0aGlzLmJib3g9W3RoaXMuaGVhZC54TWluLHRoaXMuaGVhZC55TWluLHRoaXMuaGVhZC54TWF4LHRoaXMuaGVhZC55TWF4XX0sdC5wcm90b3R5cGUuY2hhcmFjdGVyVG9HbHlwaD1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4obnVsbCE9KGU9dGhpcy5jbWFwLnVuaWNvZGUpP2UuY29kZU1hcFt0XTp2b2lkIDApfHwwfSx0LnByb3RvdHlwZS53aWR0aE9mR2x5cGg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIGU9MWUzL3RoaXMuaGVhZC51bml0c1BlckVtLHRoaXMuaG10eC5mb3JHbHlwaCh0KS5hZHZhbmNlKmV9LHR9KCksdC5leHBvcnRzPW99KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIENtYXBUYWJsZSxlLHIsaT1bXS5pbmRleE9mfHxmdW5jdGlvbih0KXtmb3IodmFyIGU9MCxuPXRoaXMubGVuZ3RoO24+ZTtlKyspaWYoZSBpbiB0aGlzJiZ0aGlzW2VdPT09dClyZXR1cm4gZTtyZXR1cm4tMX07Q21hcFRhYmxlPW4oODIpLHI9big4OSksZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5mb250PXQsdGhpcy5zdWJzZXQ9e30sdGhpcy51bmljb2Rlcz17fSx0aGlzLm5leHQ9MzN9cmV0dXJuIHQucHJvdG90eXBlLnVzZT1mdW5jdGlvbih0KXt2YXIgZSxuLHI7e2lmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gdGhpcy51bmljb2Rlc1t0XT92b2lkIDA6KHRoaXMuc3Vic2V0W3RoaXMubmV4dF09dCx0aGlzLnVuaWNvZGVzW3RdPXRoaXMubmV4dCsrKTtmb3IoZT1uPTAscj10Lmxlbmd0aDtyPj0wP3I+bjpuPnI7ZT1yPj0wPysrbjotLW4pdGhpcy51c2UodC5jaGFyQ29kZUF0KGUpKX19LHQucHJvdG90eXBlLmVuY29kZVRleHQ9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbztmb3Iocj0iIixuPWk9MCxvPXQubGVuZ3RoO28+PTA/bz5pOmk+bztuPW8+PTA/KytpOi0taSllPXRoaXMudW5pY29kZXNbdC5jaGFyQ29kZUF0KG4pXSxyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpO3JldHVybiByfSx0LnByb3RvdHlwZS5nZW5lcmF0ZUNtYXA9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scixpO3I9dGhpcy5mb250LmNtYXAudGFibGVzWzBdLmNvZGVNYXAsdD17fSxpPXRoaXMuc3Vic2V0O2ZvcihlIGluIGkpbj1pW2VdLHRbZV09cltuXTtyZXR1cm4gdH0sdC5wcm90b3R5cGUuZ2x5cGhJRHM9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scixvLGE7cj10aGlzLmZvbnQuY21hcC50YWJsZXNbMF0uY29kZU1hcCx0PVswXSxhPXRoaXMuc3Vic2V0O2ZvcihlIGluIGEpbj1hW2VdLG89cltuXSxudWxsIT1vJiZpLmNhbGwodCxvKTwwJiZ0LnB1c2gobyk7cmV0dXJuIHQuc29ydCgpfSx0LnByb3RvdHlwZS5nbHlwaHNGb3I9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHM7Zm9yKHI9e30sbz0wLGE9dC5sZW5ndGg7YT5vO28rKylpPXRbb10scltpXT10aGlzLmZvbnQuZ2x5Zi5nbHlwaEZvcihpKTtlPVtdO2ZvcihpIGluIHIpbj1yW2ldLChudWxsIT1uP24uY29tcG91bmQ6dm9pZCAwKSYmZS5wdXNoLmFwcGx5KGUsbi5nbHlwaElEcyk7aWYoZS5sZW5ndGg+MCl7cz10aGlzLmdseXBoc0ZvcihlKTtmb3IoaSBpbiBzKW49c1tpXSxyW2ldPW59cmV0dXJuIHJ9LHQucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbigpe3ZhciB0LGUsbixpLG8sYSxzLGgsdSxsLGMsZixkLHAsZyx2LG07dD1DbWFwVGFibGUuZW5jb2RlKHRoaXMuZ2VuZXJhdGVDbWFwKCksInVuaWNvZGUiKSxpPXRoaXMuZ2x5cGhzRm9yKHRoaXMuZ2x5cGhJRHMoKSksZj17MDowfSx2PXQuY2hhck1hcDtmb3IoZSBpbiB2KWE9dltlXSxmW2Eub2xkXT1hWyJuZXciXTtjPXQubWF4R2x5cGhJRDtmb3IoZCBpbiBpKWQgaW4gZnx8KGZbZF09YysrKTt1PXIuaW52ZXJ0KGYpLGw9T2JqZWN0LmtleXModSkuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSxwPWZ1bmN0aW9uKCl7dmFyIHQsZSxuO2ZvcihuPVtdLHQ9MCxlPWwubGVuZ3RoO2U+dDt0Kyspbz1sW3RdLG4ucHVzaCh1W29dKTtyZXR1cm4gbn0oKSxuPXRoaXMuZm9udC5nbHlmLmVuY29kZShpLHAsZikscz10aGlzLmZvbnQubG9jYS5lbmNvZGUobi5vZmZzZXRzKSxoPXRoaXMuZm9udC5uYW1lLmVuY29kZSgpLHRoaXMucG9zdHNjcmlwdE5hbWU9aC5wb3N0c2NyaXB0TmFtZSx0aGlzLmNtYXA9e30sbT10LmNoYXJNYXA7Zm9yKGUgaW4gbSlhPW1bZV0sdGhpcy5jbWFwW2VdPWEub2xkO3JldHVybiBnPXtjbWFwOnQudGFibGUsZ2x5ZjpuLnRhYmxlLGxvY2E6cy50YWJsZSxobXR4OnRoaXMuZm9udC5obXR4LmVuY29kZShwKSxoaGVhOnRoaXMuZm9udC5oaGVhLmVuY29kZShwKSxtYXhwOnRoaXMuZm9udC5tYXhwLmVuY29kZShwKSxwb3N0OnRoaXMuZm9udC5wb3N0LmVuY29kZShwKSxuYW1lOmgudGFibGUsaGVhZDp0aGlzLmZvbnQuaGVhZC5lbmNvZGUocyl9LHRoaXMuZm9udC5vczIuZXhpc3RzJiYoZ1siT1MvMiJdPXRoaXMuZm9udC5vczIucmF3KCkpLHRoaXMuZm9udC5kaXJlY3RvcnkuZW5jb2RlKGcpfSx0fSgpLHQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLHIsaSxvLGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdyxfLGIseCxTLGssRSxDLEksQSxMO3g9bigxMDApLEM9bmV3IHgobigxMDYpKSxBPW4oOTIpLG89QS5CSyxsPUEuQ1IscD1BLkxGLHY9QS5OTCxhPUEuQ0IsaT1BLkJBLGI9QS5TUCxTPUEuV0osYj1BLlNQLG89QS5CSyxwPUEuTEYsdj1BLk5MLGU9QS5BSSxyPUEuQUwsdz1BLlNBLF89QS5TRyxrPUEuWFgsaD1BLkNKLGY9QS5JRCxtPUEuTlMsRT1BLmNoYXJhY3RlckNsYXNzZXMsTD1uKDkxKSxjPUwuRElfQlJLLGQ9TC5JTl9CUksscz1MLkNJX0JSSyx1PUwuQ1BfQlJLLHk9TC5QUl9CUkssST1MLnBhaXJUYWJsZSxnPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt0aGlzLnN0cmluZz10LHRoaXMucG9zPTAsdGhpcy5sYXN0UG9zPTAsdGhpcy5jdXJDbGFzcz1udWxsLHRoaXMubmV4dENsYXNzPW51bGx9dmFyIG4sZixnO3JldHVybiB0LnByb3RvdHlwZS5uZXh0Q29kZVBvaW50PWZ1bmN0aW9uKCl7dmFyIHQsZTtyZXR1cm4gdD10aGlzLnN0cmluZy5jaGFyQ29kZUF0KHRoaXMucG9zKyspLGU9dGhpcy5zdHJpbmcuY2hhckNvZGVBdCh0aGlzLnBvcyksdD49NTUyOTYmJjU2MzE5Pj10JiZlPj01NjMyMCYmNTczNDM+PWU/KHRoaXMucG9zKyssMTAyNCoodC01NTI5NikrKGUtNTYzMjApKzY1NTM2KTp0fSxmPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIGU6cmV0dXJuIHI7Y2FzZSB3OmNhc2UgXzpjYXNlIGs6cmV0dXJuIHI7Y2FzZSBoOnJldHVybiBtO2RlZmF1bHQ6cmV0dXJuIHR9fSxnPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIHA6Y2FzZSB2OnJldHVybiBvO2Nhc2UgYTpyZXR1cm4gaTtjYXNlIGI6cmV0dXJuIFM7ZGVmYXVsdDpyZXR1cm4gdH19LHQucHJvdG90eXBlLm5leHRDaGFyQ2xhc3M9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQmJih0PSExKSxmKEMuZ2V0KHRoaXMubmV4dENvZGVQb2ludCgpKSl9LG49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5wb3NpdGlvbj10LHRoaXMucmVxdWlyZWQ9bnVsbCE9ZT9lOiExfXJldHVybiB0fSgpLHQucHJvdG90eXBlLm5leHRCcmVhaz1mdW5jdGlvbigpe3ZhciB0LGUscjtmb3IobnVsbD09dGhpcy5jdXJDbGFzcyYmKHRoaXMuY3VyQ2xhc3M9Zyh0aGlzLm5leHRDaGFyQ2xhc3MoKSkpO3RoaXMucG9zPHRoaXMuc3RyaW5nLmxlbmd0aDspe2lmKHRoaXMubGFzdFBvcz10aGlzLnBvcyxlPXRoaXMubmV4dENsYXNzLHRoaXMubmV4dENsYXNzPXRoaXMubmV4dENoYXJDbGFzcygpLHRoaXMuY3VyQ2xhc3M9PT1vfHx0aGlzLmN1ckNsYXNzPT09bCYmdGhpcy5uZXh0Q2xhc3MhPT1wKXJldHVybiB0aGlzLmN1ckNsYXNzPWcoZih0aGlzLm5leHRDbGFzcykpLG5ldyBuKHRoaXMubGFzdFBvcywhMCk7aWYodD1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLm5leHRDbGFzcyl7Y2FzZSBiOnJldHVybiB0aGlzLmN1ckNsYXNzO2Nhc2UgbzpjYXNlIHA6Y2FzZSB2OnJldHVybiBvO2Nhc2UgbDpyZXR1cm4gbDtjYXNlIGE6cmV0dXJuIGl9fS5jYWxsKHRoaXMpLG51bGw9PXQpe3N3aXRjaChyPSExLElbdGhpcy5jdXJDbGFzc11bdGhpcy5uZXh0Q2xhc3NdKXtjYXNlIGM6cj0hMDticmVhaztjYXNlIGQ6cj1lPT09YjticmVhaztjYXNlIHM6aWYocj1lPT09Yiwhciljb250aW51ZTticmVhaztjYXNlIHU6aWYoZSE9PWIpY29udGludWV9aWYodGhpcy5jdXJDbGFzcz10aGlzLm5leHRDbGFzcyxyKXJldHVybiBuZXcgbih0aGlzLmxhc3RQb3MpfWVsc2UgaWYodGhpcy5jdXJDbGFzcz10LHRoaXMubmV4dENsYXNzPT09YSlyZXR1cm4gbmV3IG4odGhpcy5sYXN0UG9zKX1yZXR1cm4gdGhpcy5wb3M+PXRoaXMuc3RyaW5nLmxlbmd0aD90aGlzLmxhc3RQb3M8dGhpcy5zdHJpbmcubGVuZ3RoPyh0aGlzLmxhc3RQb3M9dGhpcy5zdHJpbmcubGVuZ3RoLG5ldyBuKHRoaXMuc3RyaW5nLmxlbmd0aCkpOm51bGw6dm9pZCAwfSx0fSgpLHQuZXhwb3J0cz1nfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXtmdW5jdGlvbiByKHQsZSxuKXt0aGlzLmNodW5rPXQsdGhpcy5lbmNvZGluZz1lLHRoaXMuY2FsbGJhY2s9bn1mdW5jdGlvbiBpKHQsZSl7dmFyIHI9big2OSk7dD10fHx7fTt2YXIgaT10LmhpZ2hXYXRlck1hcmssbz10Lm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPWl8fDA9PT1pP2k6byx0aGlzLm9iamVjdE1vZGU9ISF0Lm9iamVjdE1vZGUsZSBpbnN0YW5jZW9mIHImJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIXQud3JpdGFibGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9fn50aGlzLmhpZ2hXYXRlck1hcmssdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExO3ZhciBhPXQuZGVjb2RlU3RyaW5ncz09PSExO3RoaXMuZGVjb2RlU3RyaW5ncz0hYSx0aGlzLmRlZmF1bHRFbmNvZGluZz10LmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24odCl7ZChlLHQpfSx0aGlzLndyaXRlY2I9bnVsbCx0aGlzLndyaXRlbGVuPTAsdGhpcy5idWZmZXI9W10sdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExfWZ1bmN0aW9uIG8odCl7dmFyIGU9big2OSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBvfHx0aGlzIGluc3RhbmNlb2YgZT8odGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgaSh0LHRoaXMpLHRoaXMud3JpdGFibGU9ITAsdm9pZCBTLmNhbGwodGhpcykpOm5ldyBvKHQpfWZ1bmN0aW9uIGEodCxuLHIpe3ZhciBpPW5ldyBFcnJvcigid3JpdGUgYWZ0ZXIgZW5kIik7dC5lbWl0KCJlcnJvciIsaSksZS5uZXh0VGljayhmdW5jdGlvbigpe3IoaSl9KX1mdW5jdGlvbiBzKHQsbixyLGkpe3ZhciBvPSEwO2lmKCEoeC5pc0J1ZmZlcihyKXx8eC5pc1N0cmluZyhyKXx8eC5pc051bGxPclVuZGVmaW5lZChyKXx8bi5vYmplY3RNb2RlKSl7dmFyIGE9bmV3IFR5cGVFcnJvcigiSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuayIpO3QuZW1pdCgiZXJyb3IiLGEpLGUubmV4dFRpY2soZnVuY3Rpb24oKXtpKGEpfSksbz0hMX1yZXR1cm4gb31mdW5jdGlvbiBoKHQsZSxuKXtyZXR1cm4hdC5vYmplY3RNb2RlJiZ0LmRlY29kZVN0cmluZ3MhPT0hMSYmeC5pc1N0cmluZyhlKSYmKGU9bmV3IGIoZSxuKSksZX1mdW5jdGlvbiB1KHQsZSxuLGksbyl7bj1oKGUsbixpKSx4LmlzQnVmZmVyKG4pJiYoaT0iYnVmZmVyIik7dmFyIGE9ZS5vYmplY3RNb2RlPzE6bi5sZW5ndGg7ZS5sZW5ndGgrPWE7dmFyIHM9ZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrO3JldHVybiBzfHwoZS5uZWVkRHJhaW49ITApLGUud3JpdGluZ3x8ZS5jb3JrZWQ/ZS5idWZmZXIucHVzaChuZXcgcihuLGksbykpOmwodCxlLCExLGEsbixpLG8pLHN9ZnVuY3Rpb24gbCh0LGUsbixyLGksbyxhKXtlLndyaXRlbGVuPXIsZS53cml0ZWNiPWEsZS53cml0aW5nPSEwLGUuc3luYz0hMCxuP3QuX3dyaXRldihpLGUub253cml0ZSk6dC5fd3JpdGUoaSxvLGUub253cml0ZSksZS5zeW5jPSExfWZ1bmN0aW9uIGModCxuLHIsaSxvKXtyP2UubmV4dFRpY2soZnVuY3Rpb24oKXtuLnBlbmRpbmdjYi0tLG8oaSl9KToobi5wZW5kaW5nY2ItLSxvKGkpKSx0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCx0LmVtaXQoImVycm9yIixpKX1mdW5jdGlvbiBmKHQpe3Qud3JpdGluZz0hMSx0LndyaXRlY2I9bnVsbCx0Lmxlbmd0aC09dC53cml0ZWxlbix0LndyaXRlbGVuPTB9ZnVuY3Rpb24gZCh0LG4pe3ZhciByPXQuX3dyaXRhYmxlU3RhdGUsaT1yLnN5bmMsbz1yLndyaXRlY2I7aWYoZihyKSxuKWModCxyLGksbixvKTtlbHNle3ZhciBhPW0odCxyKTthfHxyLmNvcmtlZHx8ci5idWZmZXJQcm9jZXNzaW5nfHwhci5idWZmZXIubGVuZ3RofHx2KHQsciksaT9lLm5leHRUaWNrKGZ1bmN0aW9uKCl7cCh0LHIsYSxvKX0pOnAodCxyLGEsbyl9fWZ1bmN0aW9uIHAodCxlLG4scil7bnx8Zyh0LGUpLGUucGVuZGluZ2NiLS0scigpLHcodCxlKX1mdW5jdGlvbiBnKHQsZSl7MD09PWUubGVuZ3RoJiZlLm5lZWREcmFpbiYmKGUubmVlZERyYWluPSExLHQuZW1pdCgiZHJhaW4iKSl9ZnVuY3Rpb24gdih0LGUpe2lmKGUuYnVmZmVyUHJvY2Vzc2luZz0hMCx0Ll93cml0ZXYmJmUuYnVmZmVyLmxlbmd0aD4xKXtmb3IodmFyIG49W10scj0wO3I8ZS5idWZmZXIubGVuZ3RoO3IrKyluLnB1c2goZS5idWZmZXJbcl0uY2FsbGJhY2spO2UucGVuZGluZ2NiKyssbCh0LGUsITAsZS5sZW5ndGgsZS5idWZmZXIsIiIsZnVuY3Rpb24odCl7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspZS5wZW5kaW5nY2ItLSxuW3JdKHQpfSksZS5idWZmZXI9W119ZWxzZXtmb3IodmFyIHI9MDtyPGUuYnVmZmVyLmxlbmd0aDtyKyspe3ZhciBpPWUuYnVmZmVyW3JdLG89aS5jaHVuayxhPWkuZW5jb2Rpbmcscz1pLmNhbGxiYWNrLGg9ZS5vYmplY3RNb2RlPzE6by5sZW5ndGg7aWYobCh0LGUsITEsaCxvLGEscyksZS53cml0aW5nKXtyKys7YnJlYWt9fXI8ZS5idWZmZXIubGVuZ3RoP2UuYnVmZmVyPWUuYnVmZmVyLnNsaWNlKHIpOmUuYnVmZmVyLmxlbmd0aD0wfWUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuIGUuZW5kaW5nJiYwPT09ZS5sZW5ndGgmJiFlLmZpbmlzaGVkJiYhZS53cml0aW5nfWZ1bmN0aW9uIHkodCxlKXtlLnByZWZpbmlzaGVkfHwoZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpKX1mdW5jdGlvbiB3KHQsZSl7dmFyIG49bSh0LGUpO3JldHVybiBuJiYoMD09PWUucGVuZGluZ2NiPyh5KHQsZSksZS5maW5pc2hlZD0hMCx0LmVtaXQoImZpbmlzaCIpKTp5KHQsZSkpLG59ZnVuY3Rpb24gXyh0LG4scil7bi5lbmRpbmc9ITAsdyh0LG4pLHImJihuLmZpbmlzaGVkP2UubmV4dFRpY2socik6dC5vbmNlKCJmaW5pc2giLHIpKSxuLmVuZGVkPSEwfXQuZXhwb3J0cz1vO3ZhciBiPW4oNCkuQnVmZmVyO28uV3JpdGFibGVTdGF0ZT1pO3ZhciB4PW4oMTA1KTt4LmluaGVyaXRzPW4oMTA0KTt2YXIgUz1uKDQ2KTt4LmluaGVyaXRzKG8sUyksby5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigiQ2Fubm90IHBpcGUuIE5vdCByZWFkYWJsZS4iKSl9LG8ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLl93cml0YWJsZVN0YXRlLGk9ITE7cmV0dXJuIHguaXNGdW5jdGlvbihlKSYmKG49ZSxlPW51bGwpLHguaXNCdWZmZXIodCk/ZT0iYnVmZmVyIjplfHwoZT1yLmRlZmF1bHRFbmNvZGluZykseC5pc0Z1bmN0aW9uKG4pfHwobj1mdW5jdGlvbigpe30pLHIuZW5kZWQ/YSh0aGlzLHIsbik6cyh0aGlzLHIsdCxuKSYmKHIucGVuZGluZ2NiKyssaT11KHRoaXMscix0LGUsbikpLGl9LG8ucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl93cml0YWJsZVN0YXRlO3QuY29ya2VkKyt9LG8ucHJvdG90eXBlLnVuY29yaz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3dyaXRhYmxlU3RhdGU7dC5jb3JrZWQmJih0LmNvcmtlZC0tLHQud3JpdGluZ3x8dC5jb3JrZWR8fHQuZmluaXNoZWR8fHQuYnVmZmVyUHJvY2Vzc2luZ3x8IXQuYnVmZmVyLmxlbmd0aHx8dih0aGlzLHQpKX0sby5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsZSxuKXtuKG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIikpfSxvLnByb3RvdHlwZS5fd3JpdGV2PW51bGwsby5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLl93cml0YWJsZVN0YXRlO3guaXNGdW5jdGlvbih0KT8obj10LHQ9bnVsbCxlPW51bGwpOnguaXNGdW5jdGlvbihlKSYmKG49ZSxlPW51bGwpLHguaXNOdWxsT3JVbmRlZmluZWQodCl8fHRoaXMud3JpdGUodCxlKSxyLmNvcmtlZCYmKHIuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksci5lbmRpbmd8fHIuZmluaXNoZWR8fF8odGhpcyxyLG4pfX0pLmNhbGwoZSxuKDYxKSl9LGZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQpe3JldHVybiB0aGlzIGluc3RhbmNlb2Ygcj92b2lkIGkuY2FsbCh0aGlzLHQpOm5ldyByKHQpfXQuZXhwb3J0cz1yO3ZhciBpPW4oNzApLG89bigxMDUpO28uaW5oZXJpdHM9bigxMDQpLG8uaW5oZXJpdHMocixpKSxyLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXtuKG51bGwsdCl9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiByPyhoLmNhbGwodGhpcyx0KSx1LmNhbGwodGhpcyx0KSx0JiZ0LnJlYWRhYmxlPT09ITEmJih0aGlzLnJlYWRhYmxlPSExKSx0JiZ0LndyaXRhYmxlPT09ITEmJih0aGlzLndyaXRhYmxlPSExKSx0aGlzLmFsbG93SGFsZk9wZW49ITAsdCYmdC5hbGxvd0hhbGZPcGVuPT09ITEmJih0aGlzLmFsbG93SGFsZk9wZW49ITEpLHZvaWQgdGhpcy5vbmNlKCJlbmQiLGkpKTpuZXcgcih0KX1mdW5jdGlvbiBpKCl7dGhpcy5hbGxvd0hhbGZPcGVufHx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxlLm5leHRUaWNrKHRoaXMuZW5kLmJpbmQodGhpcykpfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIG49MCxyPXQubGVuZ3RoO3I+bjtuKyspZSh0W25dLG4pfXQuZXhwb3J0cz1yO3ZhciBhPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIG4gaW4gdCllLnB1c2gobik7cmV0dXJuIGV9LHM9bigxMDUpO3MuaW5oZXJpdHM9bigxMDQpO3ZhciBoPW4oNzEpLHU9big2Nyk7cy5pbmhlcml0cyhyLGgpLG8oYSh1LnByb3RvdHlwZSksZnVuY3Rpb24odCl7ci5wcm90b3R5cGVbdF18fChyLnByb3RvdHlwZVt0XT11LnByb3RvdHlwZVt0XSl9KX0pLmNhbGwoZSxuKDYxKSl9LGZ1bmN0aW9uKHQsZSxuKXtmdW5jdGlvbiByKHQsZSl7dGhpcy5hZnRlclRyYW5zZm9ybT1mdW5jdGlvbih0LG4pe3JldHVybiBpKGUsdCxuKX0sdGhpcy5uZWVkVHJhbnNmb3JtPSExLHRoaXMudHJhbnNmb3JtaW5nPSExLHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVjaHVuaz1udWxsfWZ1bmN0aW9uIGkodCxlLG4pe3ZhciByPXQuX3RyYW5zZm9ybVN0YXRlO3IudHJhbnNmb3JtaW5nPSExO3ZhciBpPXIud3JpdGVjYjtpZighaSlyZXR1cm4gdC5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJubyB3cml0ZWNiIGluIFRyYW5zZm9ybSBjbGFzcyIpKTtyLndyaXRlY2h1bms9bnVsbCxyLndyaXRlY2I9bnVsbCxoLmlzTnVsbE9yVW5kZWZpbmVkKG4pfHx0LnB1c2gobiksaSYmaShlKTt2YXIgbz10Ll9yZWFkYWJsZVN0YXRlO28ucmVhZGluZz0hMSwoby5uZWVkUmVhZGFibGV8fG8ubGVuZ3RoPG8uaGlnaFdhdGVyTWFyaykmJnQuX3JlYWQoby5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiBvKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG8pKXJldHVybiBuZXcgbyh0KTtzLmNhbGwodGhpcyx0KSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT1uZXcgcih0LHRoaXMpO3ZhciBlPXRoaXM7dGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLHRoaXMub25jZSgicHJlZmluaXNoIixmdW5jdGlvbigpe2guaXNGdW5jdGlvbih0aGlzLl9mbHVzaCk/dGhpcy5fZmx1c2goZnVuY3Rpb24odCl7YShlLHQpfSk6YShlKX0pfWZ1bmN0aW9uIGEodCxlKXtpZihlKXJldHVybiB0LmVtaXQoImVycm9yIixlKTt2YXIgbj10Ll93cml0YWJsZVN0YXRlLHI9dC5fdHJhbnNmb3JtU3RhdGU7aWYobi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gd3MubGVuZ3RoICE9IDAiKTtpZihyLnRyYW5zZm9ybWluZyl0aHJvdyBuZXcgRXJyb3IoImNhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiBzdGlsbCB0cmFuc2Zvcm1pbmciKTtyZXR1cm4gdC5wdXNoKG51bGwpfXQuZXhwb3J0cz1vO3ZhciBzPW4oNjkpLGg9bigxMDUpO2guaW5oZXJpdHM9bigxMDQpLGguaW5oZXJpdHMobyxzKSxvLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRUcmFuc2Zvcm09ITEscy5wcm90b3R5cGUucHVzaC5jYWxsKHRoaXMsdCxlKX0sby5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbih0LGUsbil7dGhyb3cgbmV3IEVycm9yKCJub3QgaW1wbGVtZW50ZWQiKX0sby5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihyLndyaXRlY2I9bixyLndyaXRlY2h1bms9dCxyLndyaXRlZW5jb2Rpbmc9ZSwhci50cmFuc2Zvcm1pbmcpe3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7KHIubmVlZFRyYW5zZm9ybXx8aS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX19LG8ucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO2guaXNOdWxsKGUud3JpdGVjaHVuayl8fCFlLndyaXRlY2J8fGUudHJhbnNmb3JtaW5nP2UubmVlZFRyYW5zZm9ybT0hMDooZS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKGUud3JpdGVjaHVuayxlLndyaXRlZW5jb2RpbmcsZS5hZnRlclRyYW5zZm9ybSkpfX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXtmdW5jdGlvbiByKHQsZSl7dmFyIHI9big2OSk7dD10fHx7fTt2YXIgaT10LmhpZ2hXYXRlck1hcmssbz10Lm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPWl8fDA9PT1pP2k6byx0aGlzLmhpZ2hXYXRlck1hcms9fn50aGlzLmhpZ2hXYXRlck1hcmssdGhpcy5idWZmZXI9W10sdGhpcy5sZW5ndGg9MCx0aGlzLnBpcGVzPW51bGwsdGhpcy5waXBlc0NvdW50PTAsdGhpcy5mbG93aW5nPW51bGwsdGhpcy5lbmRlZD0hMSx0aGlzLmVuZEVtaXR0ZWQ9ITEsdGhpcy5yZWFkaW5nPSExLHRoaXMuc3luYz0hMCx0aGlzLm5lZWRSZWFkYWJsZT0hMSx0aGlzLmVtaXR0ZWRSZWFkYWJsZT0hMSx0aGlzLnJlYWRhYmxlTGlzdGVuaW5nPSExLHRoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxlIGluc3RhbmNlb2YgciYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhdC5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMuZGVmYXVsdEVuY29kaW5nPXQuZGVmYXVsdEVuY29kaW5nfHwidXRmOCIsdGhpcy5yYW5PdXQ9ITEsdGhpcy5hd2FpdERyYWluPTAsdGhpcy5yZWFkaW5nTW9yZT0hMSx0aGlzLmRlY29kZXI9bnVsbCx0aGlzLmVuY29kaW5nPW51bGwsdC5lbmNvZGluZyYmKEF8fChBPW4oMTAxKS5TdHJpbmdEZWNvZGVyKSx0aGlzLmRlY29kZXI9bmV3IEEodC5lbmNvZGluZyksdGhpcy5lbmNvZGluZz10LmVuY29kaW5nKX1mdW5jdGlvbiBpKHQpe24oNjkpO3JldHVybiB0aGlzIGluc3RhbmNlb2YgaT8odGhpcy5fcmVhZGFibGVTdGF0ZT1uZXcgcih0LHRoaXMpLHRoaXMucmVhZGFibGU9ITAsdm9pZCBDLmNhbGwodGhpcykpOm5ldyBpKHQpfWZ1bmN0aW9uIG8odCxlLG4scixpKXt2YXIgbz11KGUsbik7aWYobyl0LmVtaXQoImVycm9yIixvKTtlbHNlIGlmKEkuaXNOdWxsT3JVbmRlZmluZWQobikpZS5yZWFkaW5nPSExLGUuZW5kZWR8fGwodCxlKTtlbHNlIGlmKGUub2JqZWN0TW9kZXx8biYmbi5sZW5ndGg+MClpZihlLmVuZGVkJiYhaSl7dmFyIHM9bmV3IEVycm9yKCJzdHJlYW0ucHVzaCgpIGFmdGVyIEVPRiIpO3QuZW1pdCgiZXJyb3IiLHMpfWVsc2UgaWYoZS5lbmRFbWl0dGVkJiZpKXt2YXIgcz1uZXcgRXJyb3IoInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50Iik7dC5lbWl0KCJlcnJvciIscyl9ZWxzZSFlLmRlY29kZXJ8fGl8fHJ8fChuPWUuZGVjb2Rlci53cml0ZShuKSksaXx8KGUucmVhZGluZz0hMSksZS5mbG93aW5nJiYwPT09ZS5sZW5ndGgmJiFlLnN5bmM/KHQuZW1pdCgiZGF0YSIsbiksdC5yZWFkKDApKTooZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOm4ubGVuZ3RoLGk/ZS5idWZmZXIudW5zaGlmdChuKTplLmJ1ZmZlci5wdXNoKG4pLGUubmVlZFJlYWRhYmxlJiZjKHQpKSxkKHQsZSk7ZWxzZSBpfHwoZS5yZWFkaW5nPSExKTtyZXR1cm4gYShlKX1mdW5jdGlvbiBhKHQpe3JldHVybiF0LmVuZGVkJiYodC5uZWVkUmVhZGFibGV8fHQubGVuZ3RoPHQuaGlnaFdhdGVyTWFya3x8MD09PXQubGVuZ3RoKX1mdW5jdGlvbiBzKHQpe2lmKHQ+PVIpdD1SO2Vsc2V7dC0tO2Zvcih2YXIgZT0xOzMyPmU7ZTw8PTEpdHw9dD4+ZTt0Kyt9cmV0dXJuIHR9ZnVuY3Rpb24gaCh0LGUpe3JldHVybiAwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/MDplLm9iamVjdE1vZGU/MD09PXQ/MDoxOmlzTmFOKHQpfHxJLmlzTnVsbCh0KT9lLmZsb3dpbmcmJmUuYnVmZmVyLmxlbmd0aD9lLmJ1ZmZlclswXS5sZW5ndGg6ZS5sZW5ndGg6MD49dD8wOih0PmUuaGlnaFdhdGVyTWFyayYmKGUuaGlnaFdhdGVyTWFyaz1zKHQpKSx0PmUubGVuZ3RoP2UuZW5kZWQ/ZS5sZW5ndGg6KGUubmVlZFJlYWRhYmxlPSEwLDApOnQpfWZ1bmN0aW9uIHUodCxlKXt2YXIgbj1udWxsO3JldHVybiBJLmlzQnVmZmVyKGUpfHxJLmlzU3RyaW5nKGUpfHxJLmlzTnVsbE9yVW5kZWZpbmVkKGUpfHx0Lm9iamVjdE1vZGV8fChuPW5ldyBUeXBlRXJyb3IoIkludmFsaWQgbm9uLXN0cmluZy9idWZmZXIgY2h1bmsiKSksbn1mdW5jdGlvbiBsKHQsZSl7aWYoZS5kZWNvZGVyJiYhZS5lbmRlZCl7dmFyIG49ZS5kZWNvZGVyLmVuZCgpO24mJm4ubGVuZ3RoJiYoZS5idWZmZXIucHVzaChuKSxlLmxlbmd0aCs9ZS5vYmplY3RNb2RlPzE6bi5sZW5ndGgpfWUuZW5kZWQ9ITAsYyh0KX1mdW5jdGlvbiBjKHQpe3ZhciBuPXQuX3JlYWRhYmxlU3RhdGU7bi5uZWVkUmVhZGFibGU9ITEsbi5lbWl0dGVkUmVhZGFibGV8fChMKCJlbWl0UmVhZGFibGUiLG4uZmxvd2luZyksbi5lbWl0dGVkUmVhZGFibGU9ITAsbi5zeW5jP2UubmV4dFRpY2soZnVuY3Rpb24oKXtmKHQpfSk6Zih0KSl9ZnVuY3Rpb24gZih0KXtMKCJlbWl0IHJlYWRhYmxlIiksdC5lbWl0KCJyZWFkYWJsZSIpLHkodCl9ZnVuY3Rpb24gZCh0LG4pe24ucmVhZGluZ01vcmV8fChuLnJlYWRpbmdNb3JlPSEwLGUubmV4dFRpY2soZnVuY3Rpb24oKXtwKHQsbil9KSl9ZnVuY3Rpb24gcCh0LGUpe2Zvcih2YXIgbj1lLmxlbmd0aDshZS5yZWFkaW5nJiYhZS5mbG93aW5nJiYhZS5lbmRlZCYmZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrJiYoTCgibWF5YmVSZWFkTW9yZSByZWFkIDAiKSx0LnJlYWQoMCksbiE9PWUubGVuZ3RoKTspbj1lLmxlbmd0aDtlLnJlYWRpbmdNb3JlPSExfWZ1bmN0aW9uIGcodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtMKCJwaXBlT25EcmFpbiIsZS5hd2FpdERyYWluKSxlLmF3YWl0RHJhaW4mJmUuYXdhaXREcmFpbi0tLDA9PT1lLmF3YWl0RHJhaW4mJkUubGlzdGVuZXJDb3VudCh0LCJkYXRhIikmJihlLmZsb3dpbmc9ITAseSh0KSl9fWZ1bmN0aW9uIHYodCxuKXtuLnJlc3VtZVNjaGVkdWxlZHx8KG4ucmVzdW1lU2NoZWR1bGVkPSEwLGUubmV4dFRpY2soZnVuY3Rpb24oKXttKHQsbil9KSl9ZnVuY3Rpb24gbSh0LGUpe2UucmVzdW1lU2NoZWR1bGVkPSExLHQuZW1pdCgicmVzdW1lIikseSh0KSxlLmZsb3dpbmcmJiFlLnJlYWRpbmcmJnQucmVhZCgwKX1mdW5jdGlvbiB5KHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7aWYoTCgiZmxvdyIsZS5mbG93aW5nKSxlLmZsb3dpbmcpZG8gdmFyIG49dC5yZWFkKCk7d2hpbGUobnVsbCE9PW4mJmUuZmxvd2luZyl9ZnVuY3Rpb24gdyh0LGUpe3ZhciBuLHI9ZS5idWZmZXIsaT1lLmxlbmd0aCxvPSEhZS5kZWNvZGVyLGE9ISFlLm9iamVjdE1vZGU7aWYoMD09PXIubGVuZ3RoKXJldHVybiBudWxsO2lmKDA9PT1pKW49bnVsbDtlbHNlIGlmKGEpbj1yLnNoaWZ0KCk7ZWxzZSBpZighdHx8dD49aSluPW8/ci5qb2luKCIiKTprLmNvbmNhdChyLGkpLHIubGVuZ3RoPTA7ZWxzZSBpZih0PHJbMF0ubGVuZ3RoKXt2YXIgcz1yWzBdO249cy5zbGljZSgwLHQpLHJbMF09cy5zbGljZSh0KX1lbHNlIGlmKHQ9PT1yWzBdLmxlbmd0aCluPXIuc2hpZnQoKTtlbHNle249bz8iIjpuZXcgayh0KTtmb3IodmFyIGg9MCx1PTAsbD1yLmxlbmd0aDtsPnUmJnQ+aDt1Kyspe3ZhciBzPXJbMF0sYz1NYXRoLm1pbih0LWgscy5sZW5ndGgpO28/bis9cy5zbGljZSgwLGMpOnMuY29weShuLGgsMCxjKSxjPHMubGVuZ3RoP3JbMF09cy5zbGljZShjKTpyLnNoaWZ0KCksaCs9Y319cmV0dXJuIG59ZnVuY3Rpb24gXyh0KXt2YXIgbj10Ll9yZWFkYWJsZVN0YXRlO2lmKG4ubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCJlbmRSZWFkYWJsZSBjYWxsZWQgb24gbm9uLWVtcHR5IHN0cmVhbSIpO24uZW5kRW1pdHRlZHx8KG4uZW5kZWQ9ITAsZS5uZXh0VGljayhmdW5jdGlvbigpe24uZW5kRW1pdHRlZHx8MCE9PW4ubGVuZ3RofHwobi5lbmRFbWl0dGVkPSEwLHQucmVhZGFibGU9ITEsdC5lbWl0KCJlbmQiKSl9KSl9ZnVuY3Rpb24gYih0LGUpe2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7cj5uO24rKyllKHRbbl0sbil9ZnVuY3Rpb24geCh0LGUpe2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7cj5uO24rKylpZih0W25dPT09ZSlyZXR1cm4gbjtyZXR1cm4tMX10LmV4cG9ydHM9aTt2YXIgUz1uKDEwNyksaz1uKDQpLkJ1ZmZlcjtpLlJlYWRhYmxlU3RhdGU9cjt2YXIgRT1uKDU0KS5FdmVudEVtaXR0ZXI7RS5saXN0ZW5lckNvdW50fHwoRS5saXN0ZW5lckNvdW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGlzdGVuZXJzKGUpLmxlbmd0aH0pO3ZhciBDPW4oNDYpLEk9bigxMDUpO0kuaW5oZXJpdHM9bigxMDQpO3ZhciBBLEw9big5Myk7TD1MJiZMLmRlYnVnbG9nP0wuZGVidWdsb2coInN0cmVhbSIpOmZ1bmN0aW9uKCl7fSxJLmluaGVyaXRzKGksQyksaS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIEkuaXNTdHJpbmcodCkmJiFuLm9iamVjdE1vZGUmJihlPWV8fG4uZGVmYXVsdEVuY29kaW5nLGUhPT1uLmVuY29kaW5nJiYodD1uZXcgayh0LGUpLGU9IiIpKSxvKHRoaXMsbix0LGUsITEpfSxpLnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIG8odGhpcyxlLHQsIiIsITApfSxpLnByb3RvdHlwZS5zZXRFbmNvZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gQXx8KEE9bigxMDEpLlN0cmluZ0RlY29kZXIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1uZXcgQSh0KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXQsdGhpc307dmFyIFI9ODM4ODYwODtpLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHQpe0woInJlYWQiLHQpO3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGUsbj10O2lmKCghSS5pc051bWJlcih0KXx8dD4wKSYmKGUuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09dCYmZS5uZWVkUmVhZGFibGUmJihlLmxlbmd0aD49ZS5oaWdoV2F0ZXJNYXJrfHxlLmVuZGVkKSlyZXR1cm4gTCgicmVhZDogZW1pdFJlYWRhYmxlIixlLmxlbmd0aCxlLmVuZGVkKSwwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/Xyh0aGlzKTpjKHRoaXMpLG51bGw7aWYodD1oKHQsZSksMD09PXQmJmUuZW5kZWQpcmV0dXJuIDA9PT1lLmxlbmd0aCYmXyh0aGlzKSxudWxsO3ZhciByPWUubmVlZFJlYWRhYmxlO0woIm5lZWQgcmVhZGFibGUiLHIpLCgwPT09ZS5sZW5ndGh8fGUubGVuZ3RoLXQ8ZS5oaWdoV2F0ZXJNYXJrKSYmKHI9ITAsTCgibGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsiLHIpKSwoZS5lbmRlZHx8ZS5yZWFkaW5nKSYmKHI9ITEsTCgicmVhZGluZyBvciBlbmRlZCIscikpLHImJihMKCJkbyByZWFkIiksZS5yZWFkaW5nPSEwLGUuc3luYz0hMCwwPT09ZS5sZW5ndGgmJihlLm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChlLmhpZ2hXYXRlck1hcmspLGUuc3luYz0hMSksciYmIWUucmVhZGluZyYmKHQ9aChuLGUpKTt2YXIgaTtyZXR1cm4gaT10PjA/dyh0LGUpOm51bGwsSS5pc051bGwoaSkmJihlLm5lZWRSZWFkYWJsZT0hMCx0PTApLGUubGVuZ3RoLT10LDAhPT1lLmxlbmd0aHx8ZS5lbmRlZHx8KGUubmVlZFJlYWRhYmxlPSEwKSxuIT09dCYmZS5lbmRlZCYmMD09PWUubGVuZ3RoJiZfKHRoaXMpLEkuaXNOdWxsKGkpfHx0aGlzLmVtaXQoImRhdGEiLGkpLGl9LGkucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3RoaXMuZW1pdCgiZXJyb3IiLG5ldyBFcnJvcigibm90IGltcGxlbWVudGVkIikpfSxpLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gcih0KXtMKCJvbnVucGlwZSIpLHQ9PT1jJiZvKCl9ZnVuY3Rpb24gaSgpe0woIm9uZW5kIiksdC5lbmQoKX1mdW5jdGlvbiBvKCl7TCgiY2xlYW51cCIpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixoKSx0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHUpLHQucmVtb3ZlTGlzdGVuZXIoImRyYWluIix2KSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscyksdC5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixyKSxjLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGkpLGMucmVtb3ZlTGlzdGVuZXIoImVuZCIsbyksYy5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsYSksIWYuYXdhaXREcmFpbnx8dC5fd3JpdGFibGVTdGF0ZSYmIXQuX3dyaXRhYmxlU3RhdGUubmVlZERyYWlufHx2KCl9ZnVuY3Rpb24gYShlKXtMKCJvbmRhdGEiKTt2YXIgbj10LndyaXRlKGUpOyExPT09biYmKEwoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsYy5fcmVhZGFibGVTdGF0ZS5hd2FpdERyYWluKSxjLl9yZWFkYWJsZVN0YXRlLmF3YWl0RHJhaW4rKyxjLnBhdXNlKCkpfWZ1bmN0aW9uIHMoZSl7TCgib25lcnJvciIsZSksbCgpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixzKSwwPT09RS5saXN0ZW5lckNvdW50KHQsImVycm9yIikmJnQuZW1pdCgiZXJyb3IiLGUpfWZ1bmN0aW9uIGgoKXt0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHUpLGwoKX1mdW5jdGlvbiB1KCl7TCgib25maW5pc2giKSx0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsaCksbCgpfWZ1bmN0aW9uIGwoKXtMKCJ1bnBpcGUiKSxjLnVucGlwZSh0KX12YXIgYz10aGlzLGY9dGhpcy5fcmVhZGFibGVTdGF0ZTtzd2l0Y2goZi5waXBlc0NvdW50KXtjYXNlIDA6Zi5waXBlcz10O2JyZWFrO2Nhc2UgMTpmLnBpcGVzPVtmLnBpcGVzLHRdO2JyZWFrO2RlZmF1bHQ6Zi5waXBlcy5wdXNoKHQpfWYucGlwZXNDb3VudCs9MSxMKCJwaXBlIGNvdW50PSVkIG9wdHM9JWoiLGYucGlwZXNDb3VudCxuKTt2YXIgZD0oIW58fG4uZW5kIT09ITEpJiZ0IT09ZS5zdGRvdXQmJnQhPT1lLnN0ZGVycixwPWQ/aTpvO2YuZW5kRW1pdHRlZD9lLm5leHRUaWNrKHApOmMub25jZSgiZW5kIixwKSx0Lm9uKCJ1bnBpcGUiLHIpO3ZhciB2PWcoYyk7cmV0dXJuIHQub24oImRyYWluIix2KSxjLm9uKCJkYXRhIixhKSx0Ll9ldmVudHMmJnQuX2V2ZW50cy5lcnJvcj9TKHQuX2V2ZW50cy5lcnJvcik/dC5fZXZlbnRzLmVycm9yLnVuc2hpZnQocyk6dC5fZXZlbnRzLmVycm9yPVtzLHQuX2V2ZW50cy5lcnJvcl06dC5vbigiZXJyb3IiLHMpLHQub25jZSgiY2xvc2UiLGgpLHQub25jZSgiZmluaXNoIix1KSx0LmVtaXQoInBpcGUiLGMpLGYuZmxvd2luZ3x8KEwoInBpcGUgcmVzdW1lIiksYy5yZXN1bWUoKSksdH0saS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGU7aWYoMD09PWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09ZS5waXBlc0NvdW50KXJldHVybiB0JiZ0IT09ZS5waXBlcz90aGlzOih0fHwodD1lLnBpcGVzKSxlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExLHQmJnQuZW1pdCgidW5waXBlIix0aGlzKSx0aGlzKTtpZighdCl7dmFyIG49ZS5waXBlcyxyPWUucGlwZXNDb3VudDtlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExO2Zvcih2YXIgaT0wO3I+aTtpKyspbltpXS5lbWl0KCJ1bnBpcGUiLHRoaXMpO3JldHVybiB0aGlzfXZhciBpPXgoZS5waXBlcyx0KTtyZXR1cm4tMT09PWk/dGhpczooZS5waXBlcy5zcGxpY2UoaSwxKSxlLnBpcGVzQ291bnQtPTEsMT09PWUucGlwZXNDb3VudCYmKGUucGlwZXM9ZS5waXBlc1swXSksdC5lbWl0KCJ1bnBpcGUiLHRoaXMpLHRoaXMpfSxpLnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LG4pe3ZhciByPUMucHJvdG90eXBlLm9uLmNhbGwodGhpcyx0LG4pO2lmKCJkYXRhIj09PXQmJiExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiZ0aGlzLnJlc3VtZSgpLCJyZWFkYWJsZSI9PT10JiZ0aGlzLnJlYWRhYmxlKXt2YXIgaT10aGlzLl9yZWFkYWJsZVN0YXRlO2lmKCFpLnJlYWRhYmxlTGlzdGVuaW5nKWlmKGkucmVhZGFibGVMaXN0ZW5pbmc9ITAsaS5lbWl0dGVkUmVhZGFibGU9ITEsaS5uZWVkUmVhZGFibGU9ITAsaS5yZWFkaW5nKWkubGVuZ3RoJiZjKHRoaXMsaSk7ZWxzZXt2YXIgbz10aGlzO2UubmV4dFRpY2soZnVuY3Rpb24oKXtMKCJyZWFkYWJsZSBuZXh0dGljayByZWFkIDAiKSxvLnJlYWQoMCl9KX19cmV0dXJuIHJ9LGkucHJvdG90eXBlLmFkZExpc3RlbmVyPWkucHJvdG90eXBlLm9uLGkucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIHQuZmxvd2luZ3x8KEwoInJlc3VtZSIpLHQuZmxvd2luZz0hMCx0LnJlYWRpbmd8fChMKCJyZXN1bWUgcmVhZCAwIiksdGhpcy5yZWFkKDApKSx2KHRoaXMsdCkpLHRoaXN9LGkucHJvdG90eXBlLnBhdXNlPWZ1bmN0aW9uKCl7cmV0dXJuIEwoImNhbGwgcGF1c2UgZmxvd2luZz0laiIsdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKSwhMSE9PXRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyYmKEwoInBhdXNlIiksdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nPSExLHRoaXMuZW1pdCgicGF1c2UiKSksdGhpc30saS5wcm90b3R5cGUud3JhcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yZWFkYWJsZVN0YXRlLG49ITEscj10aGlzO3Qub24oImVuZCIsZnVuY3Rpb24oKXtpZihMKCJ3cmFwcGVkIGVuZCIpLGUuZGVjb2RlciYmIWUuZW5kZWQpe3ZhciB0PWUuZGVjb2Rlci5lbmQoKTt0JiZ0Lmxlbmd0aCYmci5wdXNoKHQpfXIucHVzaChudWxsKX0pLHQub24oImRhdGEiLGZ1bmN0aW9uKGkpe2lmKEwoIndyYXBwZWQgZGF0YSIpLGUuZGVjb2RlciYmKGk9ZS5kZWNvZGVyLndyaXRlKGkpKSxpJiYoZS5vYmplY3RNb2RlfHxpLmxlbmd0aCkpe3ZhciBvPXIucHVzaChpKTtvfHwobj0hMCx0LnBhdXNlKCkpfX0pO2Zvcih2YXIgaSBpbiB0KUkuaXNGdW5jdGlvbih0W2ldKSYmSS5pc1VuZGVmaW5lZCh0aGlzW2ldKSYmKHRoaXNbaV09ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRbZV0uYXBwbHkodCxhcmd1bWVudHMpfX0oaSkpO3ZhciBvPVsiZXJyb3IiLCJjbG9zZSIsImRlc3Ryb3kiLCJwYXVzZSIsInJlc3VtZSJdO3JldHVybiBiKG8sZnVuY3Rpb24oZSl7dC5vbihlLHIuZW1pdC5iaW5kKHIsZSkpfSksci5fcmVhZD1mdW5jdGlvbihlKXtMKCJ3cmFwcGVkIF9yZWFkIixlKSxuJiYobj0hMSx0LnJlc3VtZSgpKX0scn0saS5fZnJvbUxpc3Q9d30pLmNhbGwoZSxuKDYxKSl9LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY29weSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuZmlsbCYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZFVJbnQ4fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7cmV0dXJuIHQubXNnPVRbZV0sZX1mdW5jdGlvbiBpKHQpe3JldHVybih0PDwxKS0odD40Pzk6MCl9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9dC5sZW5ndGg7LS1lPj0wOyl0W2VdPTB9ZnVuY3Rpb24gYSh0KXt2YXIgZT10LnN0YXRlLG49ZS5wZW5kaW5nO24+dC5hdmFpbF9vdXQmJihuPXQuYXZhaWxfb3V0KSwwIT09biYmKEEuYXJyYXlTZXQodC5vdXRwdXQsZS5wZW5kaW5nX2J1ZixlLnBlbmRpbmdfb3V0LG4sdC5uZXh0X291dCksdC5uZXh0X291dCs9bixlLnBlbmRpbmdfb3V0Kz1uLHQudG90YWxfb3V0Kz1uLHQuYXZhaWxfb3V0LT1uLGUucGVuZGluZy09biwwPT09ZS5wZW5kaW5nJiYoZS5wZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24gcyh0LGUpe0wuX3RyX2ZsdXNoX2Jsb2NrKHQsdC5ibG9ja19zdGFydD49MD90LmJsb2NrX3N0YXJ0Oi0xLHQuc3Ryc3RhcnQtdC5ibG9ja19zdGFydCxlKSx0LmJsb2NrX3N0YXJ0PXQuc3Ryc3RhcnQsYSh0LnN0cm0pfWZ1bmN0aW9uIGgodCxlKXt0LnBlbmRpbmdfYnVmW3QucGVuZGluZysrXT1lfWZ1bmN0aW9uIHUodCxlKXt0LnBlbmRpbmdfYnVmW3QucGVuZGluZysrXT1lPj4+OCYyNTUsdC5wZW5kaW5nX2J1Zlt0LnBlbmRpbmcrK109MjU1JmV9ZnVuY3Rpb24gbCh0LGUsbixyKXt2YXIgaT10LmF2YWlsX2luO3JldHVybiBpPnImJihpPXIpLDA9PT1pPzA6KHQuYXZhaWxfaW4tPWksQS5hcnJheVNldChlLHQuaW5wdXQsdC5uZXh0X2luLGksbiksMT09PXQuc3RhdGUud3JhcD90LmFkbGVyPVIodC5hZGxlcixlLGksbik6Mj09PXQuc3RhdGUud3JhcCYmKHQuYWRsZXI9Qih0LmFkbGVyLGUsaSxuKSksdC5uZXh0X2luKz1pLHQudG90YWxfaW4rPWksaSl9ZnVuY3Rpb24gYyh0LGUpe3ZhciBuLHIsaT10Lm1heF9jaGFpbl9sZW5ndGgsbz10LnN0cnN0YXJ0LGE9dC5wcmV2X2xlbmd0aCxzPXQubmljZV9tYXRjaCxoPXQuc3Ryc3RhcnQ+dC53X3NpemUtdXQ/dC5zdHJzdGFydC0odC53X3NpemUtdXQpOjAsdT10LndpbmRvdyxsPXQud19tYXNrLGM9dC5wcmV2LGY9dC5zdHJzdGFydCtodCxkPXVbbythLTFdLHA9dVtvK2FdO3QucHJldl9sZW5ndGg+PXQuZ29vZF9tYXRjaCYmKGk+Pj0yKSxzPnQubG9va2FoZWFkJiYocz10Lmxvb2thaGVhZCk7ZG8gaWYobj1lLHVbbithXT09PXAmJnVbbithLTFdPT09ZCYmdVtuXT09PXVbb10mJnVbKytuXT09PXVbbysxXSl7bys9MixuKys7ZG87d2hpbGUodVsrK29dPT09dVsrK25dJiZ1Wysrb109PT11Wysrbl0mJnVbKytvXT09PXVbKytuXSYmdVsrK29dPT09dVsrK25dJiZ1Wysrb109PT11Wysrbl0mJnVbKytvXT09PXVbKytuXSYmdVsrK29dPT09dVsrK25dJiZ1Wysrb109PT11Wysrbl0mJmY+byk7aWYocj1odC0oZi1vKSxvPWYtaHQscj5hKXtpZih0Lm1hdGNoX3N0YXJ0PWUsYT1yLHI+PXMpYnJlYWs7ZD11W28rYS0xXSxwPXVbbythXX19d2hpbGUoKGU9Y1tlJmxdKT5oJiYwIT09LS1pKTtyZXR1cm4gYTw9dC5sb29rYWhlYWQ/YTp0Lmxvb2thaGVhZH1mdW5jdGlvbiBmKHQpe3ZhciBlLG4scixpLG8sYT10Lndfc2l6ZTtkb3tpZihpPXQud2luZG93X3NpemUtdC5sb29rYWhlYWQtdC5zdHJzdGFydCx0LnN0cnN0YXJ0Pj1hKyhhLXV0KSl7QS5hcnJheVNldCh0LndpbmRvdyx0LndpbmRvdyxhLGEsMCksdC5tYXRjaF9zdGFydC09YSx0LnN0cnN0YXJ0LT1hLHQuYmxvY2tfc3RhcnQtPWEsbj10Lmhhc2hfc2l6ZSxlPW47ZG8gcj10LmhlYWRbLS1lXSx0LmhlYWRbZV09cj49YT9yLWE6MDt3aGlsZSgtLW4pO249YSxlPW47ZG8gcj10LnByZXZbLS1lXSx0LnByZXZbZV09cj49YT9yLWE6MDt3aGlsZSgtLW4pO2krPWF9aWYoMD09PXQuc3RybS5hdmFpbF9pbilicmVhaztpZihuPWwodC5zdHJtLHQud2luZG93LHQuc3Ryc3RhcnQrdC5sb29rYWhlYWQsaSksdC5sb29rYWhlYWQrPW4sdC5sb29rYWhlYWQrdC5pbnNlcnQ+PXN0KWZvcihvPXQuc3Ryc3RhcnQtdC5pbnNlcnQsdC5pbnNfaD10LndpbmRvd1tvXSx0Lmluc19oPSh0Lmluc19oPDx0Lmhhc2hfc2hpZnRedC53aW5kb3dbbysxXSkmdC5oYXNoX21hc2s7dC5pbnNlcnQmJih0Lmluc19oPSh0Lmluc19oPDx0Lmhhc2hfc2hpZnRedC53aW5kb3dbbytzdC0xXSkmdC5oYXNoX21hc2ssdC5wcmV2W28mdC53X21hc2tdPXQuaGVhZFt0Lmluc19oXSx0LmhlYWRbdC5pbnNfaF09byxvKyssdC5pbnNlcnQtLSwhKHQubG9va2FoZWFkK3QuaW5zZXJ0PHN0KSk7KTt9d2hpbGUodC5sb29rYWhlYWQ8dXQmJjAhPT10LnN0cm0uYXZhaWxfaW4pfWZ1bmN0aW9uIGQodCxlKXt2YXIgbj02NTUzNTtmb3Iobj50LnBlbmRpbmdfYnVmX3NpemUtNSYmKG49dC5wZW5kaW5nX2J1Zl9zaXplLTUpOzspe2lmKHQubG9va2FoZWFkPD0xKXtpZihmKHQpLDA9PT10Lmxvb2thaGVhZCYmZT09PU0pcmV0dXJuIHl0O2lmKDA9PT10Lmxvb2thaGVhZClicmVha310LnN0cnN0YXJ0Kz10Lmxvb2thaGVhZCx0Lmxvb2thaGVhZD0wO3ZhciByPXQuYmxvY2tfc3RhcnQrbjtpZigoMD09PXQuc3Ryc3RhcnR8fHQuc3Ryc3RhcnQ+PXIpJiYodC5sb29rYWhlYWQ9dC5zdHJzdGFydC1yLAp0LnN0cnN0YXJ0PXIscyh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHl0O2lmKHQuc3Ryc3RhcnQtdC5ibG9ja19zdGFydD49dC53X3NpemUtdXQmJihzKHQsITEpLDA9PT10LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4geXR9cmV0dXJuIHQuaW5zZXJ0PTAsZT09PVU/KHModCwhMCksMD09PXQuc3RybS5hdmFpbF9vdXQ/X3Q6YnQpOnQuc3Ryc3RhcnQ+dC5ibG9ja19zdGFydCYmKHModCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpP3l0Onl0fWZ1bmN0aW9uIHAodCxlKXtmb3IodmFyIG4scjs7KXtpZih0Lmxvb2thaGVhZDx1dCl7aWYoZih0KSx0Lmxvb2thaGVhZDx1dCYmZT09PU0pcmV0dXJuIHl0O2lmKDA9PT10Lmxvb2thaGVhZClicmVha31pZihuPTAsdC5sb29rYWhlYWQ+PXN0JiYodC5pbnNfaD0odC5pbnNfaDw8dC5oYXNoX3NoaWZ0XnQud2luZG93W3Quc3Ryc3RhcnQrc3QtMV0pJnQuaGFzaF9tYXNrLG49dC5wcmV2W3Quc3Ryc3RhcnQmdC53X21hc2tdPXQuaGVhZFt0Lmluc19oXSx0LmhlYWRbdC5pbnNfaF09dC5zdHJzdGFydCksMCE9PW4mJnQuc3Ryc3RhcnQtbjw9dC53X3NpemUtdXQmJih0Lm1hdGNoX2xlbmd0aD1jKHQsbikpLHQubWF0Y2hfbGVuZ3RoPj1zdClpZihyPUwuX3RyX3RhbGx5KHQsdC5zdHJzdGFydC10Lm1hdGNoX3N0YXJ0LHQubWF0Y2hfbGVuZ3RoLXN0KSx0Lmxvb2thaGVhZC09dC5tYXRjaF9sZW5ndGgsdC5tYXRjaF9sZW5ndGg8PXQubWF4X2xhenlfbWF0Y2gmJnQubG9va2FoZWFkPj1zdCl7dC5tYXRjaF9sZW5ndGgtLTtkbyB0LnN0cnN0YXJ0KyssdC5pbnNfaD0odC5pbnNfaDw8dC5oYXNoX3NoaWZ0XnQud2luZG93W3Quc3Ryc3RhcnQrc3QtMV0pJnQuaGFzaF9tYXNrLG49dC5wcmV2W3Quc3Ryc3RhcnQmdC53X21hc2tdPXQuaGVhZFt0Lmluc19oXSx0LmhlYWRbdC5pbnNfaF09dC5zdHJzdGFydDt3aGlsZSgwIT09LS10Lm1hdGNoX2xlbmd0aCk7dC5zdHJzdGFydCsrfWVsc2UgdC5zdHJzdGFydCs9dC5tYXRjaF9sZW5ndGgsdC5tYXRjaF9sZW5ndGg9MCx0Lmluc19oPXQud2luZG93W3Quc3Ryc3RhcnRdLHQuaW5zX2g9KHQuaW5zX2g8PHQuaGFzaF9zaGlmdF50LndpbmRvd1t0LnN0cnN0YXJ0KzFdKSZ0Lmhhc2hfbWFzaztlbHNlIHI9TC5fdHJfdGFsbHkodCwwLHQud2luZG93W3Quc3Ryc3RhcnRdKSx0Lmxvb2thaGVhZC0tLHQuc3Ryc3RhcnQrKztpZihyJiYocyh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHl0fXJldHVybiB0Lmluc2VydD10LnN0cnN0YXJ0PHN0LTE/dC5zdHJzdGFydDpzdC0xLGU9PT1VPyhzKHQsITApLDA9PT10LnN0cm0uYXZhaWxfb3V0P190OmJ0KTp0Lmxhc3RfbGl0JiYocyh0LCExKSwwPT09dC5zdHJtLmF2YWlsX291dCk/eXQ6d3R9ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgbixyLGk7Oyl7aWYodC5sb29rYWhlYWQ8dXQpe2lmKGYodCksdC5sb29rYWhlYWQ8dXQmJmU9PT1NKXJldHVybiB5dDtpZigwPT09dC5sb29rYWhlYWQpYnJlYWt9aWYobj0wLHQubG9va2FoZWFkPj1zdCYmKHQuaW5zX2g9KHQuaW5zX2g8PHQuaGFzaF9zaGlmdF50LndpbmRvd1t0LnN0cnN0YXJ0K3N0LTFdKSZ0Lmhhc2hfbWFzayxuPXQucHJldlt0LnN0cnN0YXJ0JnQud19tYXNrXT10LmhlYWRbdC5pbnNfaF0sdC5oZWFkW3QuaW5zX2hdPXQuc3Ryc3RhcnQpLHQucHJldl9sZW5ndGg9dC5tYXRjaF9sZW5ndGgsdC5wcmV2X21hdGNoPXQubWF0Y2hfc3RhcnQsdC5tYXRjaF9sZW5ndGg9c3QtMSwwIT09biYmdC5wcmV2X2xlbmd0aDx0Lm1heF9sYXp5X21hdGNoJiZ0LnN0cnN0YXJ0LW48PXQud19zaXplLXV0JiYodC5tYXRjaF9sZW5ndGg9Yyh0LG4pLHQubWF0Y2hfbGVuZ3RoPD01JiYodC5zdHJhdGVneT09PVp8fHQubWF0Y2hfbGVuZ3RoPT09c3QmJnQuc3Ryc3RhcnQtdC5tYXRjaF9zdGFydD40MDk2KSYmKHQubWF0Y2hfbGVuZ3RoPXN0LTEpKSx0LnByZXZfbGVuZ3RoPj1zdCYmdC5tYXRjaF9sZW5ndGg8PXQucHJldl9sZW5ndGgpe2k9dC5zdHJzdGFydCt0Lmxvb2thaGVhZC1zdCxyPUwuX3RyX3RhbGx5KHQsdC5zdHJzdGFydC0xLXQucHJldl9tYXRjaCx0LnByZXZfbGVuZ3RoLXN0KSx0Lmxvb2thaGVhZC09dC5wcmV2X2xlbmd0aC0xLHQucHJldl9sZW5ndGgtPTI7ZG8rK3Quc3Ryc3RhcnQ8PWkmJih0Lmluc19oPSh0Lmluc19oPDx0Lmhhc2hfc2hpZnRedC53aW5kb3dbdC5zdHJzdGFydCtzdC0xXSkmdC5oYXNoX21hc2ssbj10LnByZXZbdC5zdHJzdGFydCZ0LndfbWFza109dC5oZWFkW3QuaW5zX2hdLHQuaGVhZFt0Lmluc19oXT10LnN0cnN0YXJ0KTt3aGlsZSgwIT09LS10LnByZXZfbGVuZ3RoKTtpZih0Lm1hdGNoX2F2YWlsYWJsZT0wLHQubWF0Y2hfbGVuZ3RoPXN0LTEsdC5zdHJzdGFydCsrLHImJihzKHQsITEpLDA9PT10LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4geXR9ZWxzZSBpZih0Lm1hdGNoX2F2YWlsYWJsZSl7aWYocj1MLl90cl90YWxseSh0LDAsdC53aW5kb3dbdC5zdHJzdGFydC0xXSksciYmcyh0LCExKSx0LnN0cnN0YXJ0KyssdC5sb29rYWhlYWQtLSwwPT09dC5zdHJtLmF2YWlsX291dClyZXR1cm4geXR9ZWxzZSB0Lm1hdGNoX2F2YWlsYWJsZT0xLHQuc3Ryc3RhcnQrKyx0Lmxvb2thaGVhZC0tfXJldHVybiB0Lm1hdGNoX2F2YWlsYWJsZSYmKHI9TC5fdHJfdGFsbHkodCwwLHQud2luZG93W3Quc3Ryc3RhcnQtMV0pLHQubWF0Y2hfYXZhaWxhYmxlPTApLHQuaW5zZXJ0PXQuc3Ryc3RhcnQ8c3QtMT90LnN0cnN0YXJ0OnN0LTEsZT09PVU/KHModCwhMCksMD09PXQuc3RybS5hdmFpbF9vdXQ/X3Q6YnQpOnQubGFzdF9saXQmJihzKHQsITEpLDA9PT10LnN0cm0uYXZhaWxfb3V0KT95dDp3dH1mdW5jdGlvbiB2KHQsZSl7Zm9yKHZhciBuLHIsaSxvLGE9dC53aW5kb3c7Oyl7aWYodC5sb29rYWhlYWQ8PWh0KXtpZihmKHQpLHQubG9va2FoZWFkPD1odCYmZT09PU0pcmV0dXJuIHl0O2lmKDA9PT10Lmxvb2thaGVhZClicmVha31pZih0Lm1hdGNoX2xlbmd0aD0wLHQubG9va2FoZWFkPj1zdCYmdC5zdHJzdGFydD4wJiYoaT10LnN0cnN0YXJ0LTEscj1hW2ldLHI9PT1hWysraV0mJnI9PT1hWysraV0mJnI9PT1hWysraV0pKXtvPXQuc3Ryc3RhcnQraHQ7ZG87d2hpbGUocj09PWFbKytpXSYmcj09PWFbKytpXSYmcj09PWFbKytpXSYmcj09PWFbKytpXSYmcj09PWFbKytpXSYmcj09PWFbKytpXSYmcj09PWFbKytpXSYmcj09PWFbKytpXSYmbz5pKTt0Lm1hdGNoX2xlbmd0aD1odC0oby1pKSx0Lm1hdGNoX2xlbmd0aD50Lmxvb2thaGVhZCYmKHQubWF0Y2hfbGVuZ3RoPXQubG9va2FoZWFkKX1pZih0Lm1hdGNoX2xlbmd0aD49c3Q/KG49TC5fdHJfdGFsbHkodCwxLHQubWF0Y2hfbGVuZ3RoLXN0KSx0Lmxvb2thaGVhZC09dC5tYXRjaF9sZW5ndGgsdC5zdHJzdGFydCs9dC5tYXRjaF9sZW5ndGgsdC5tYXRjaF9sZW5ndGg9MCk6KG49TC5fdHJfdGFsbHkodCwwLHQud2luZG93W3Quc3Ryc3RhcnRdKSx0Lmxvb2thaGVhZC0tLHQuc3Ryc3RhcnQrKyksbiYmKHModCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpKXJldHVybiB5dH1yZXR1cm4gdC5pbnNlcnQ9MCxlPT09VT8ocyh0LCEwKSwwPT09dC5zdHJtLmF2YWlsX291dD9fdDpidCk6dC5sYXN0X2xpdCYmKHModCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpP3l0Ond0fWZ1bmN0aW9uIG0odCxlKXtmb3IodmFyIG47Oyl7aWYoMD09PXQubG9va2FoZWFkJiYoZih0KSwwPT09dC5sb29rYWhlYWQpKXtpZihlPT09TSlyZXR1cm4geXQ7YnJlYWt9aWYodC5tYXRjaF9sZW5ndGg9MCxuPUwuX3RyX3RhbGx5KHQsMCx0LndpbmRvd1t0LnN0cnN0YXJ0XSksdC5sb29rYWhlYWQtLSx0LnN0cnN0YXJ0KyssbiYmKHModCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpKXJldHVybiB5dH1yZXR1cm4gdC5pbnNlcnQ9MCxlPT09VT8ocyh0LCEwKSwwPT09dC5zdHJtLmF2YWlsX291dD9fdDpidCk6dC5sYXN0X2xpdCYmKHModCwhMSksMD09PXQuc3RybS5hdmFpbF9vdXQpP3l0Ond0fWZ1bmN0aW9uIHkodCl7dC53aW5kb3dfc2l6ZT0yKnQud19zaXplLG8odC5oZWFkKSx0Lm1heF9sYXp5X21hdGNoPUlbdC5sZXZlbF0ubWF4X2xhenksdC5nb29kX21hdGNoPUlbdC5sZXZlbF0uZ29vZF9sZW5ndGgsdC5uaWNlX21hdGNoPUlbdC5sZXZlbF0ubmljZV9sZW5ndGgsdC5tYXhfY2hhaW5fbGVuZ3RoPUlbdC5sZXZlbF0ubWF4X2NoYWluLHQuc3Ryc3RhcnQ9MCx0LmJsb2NrX3N0YXJ0PTAsdC5sb29rYWhlYWQ9MCx0Lmluc2VydD0wLHQubWF0Y2hfbGVuZ3RoPXQucHJldl9sZW5ndGg9c3QtMSx0Lm1hdGNoX2F2YWlsYWJsZT0wLHQuaW5zX2g9MH1mdW5jdGlvbiB3KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9Vix0aGlzLmxhc3RfZmx1c2g9LTEsdGhpcy53X3NpemU9MCx0aGlzLndfYml0cz0wLHRoaXMud19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRvd19zaXplPTAsdGhpcy5wcmV2PW51bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNoX2JpdHM9MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMuaGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3RhcnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMucHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZhaWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVhZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9sYXp5X21hdGNoPTAsdGhpcy5sZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgQS5CdWYxNigyKm90KSx0aGlzLmR5bl9kdHJlZT1uZXcgQS5CdWYxNigyKigyKnJ0KzEpKSx0aGlzLmJsX3RyZWU9bmV3IEEuQnVmMTYoMiooMippdCsxKSksbyh0aGlzLmR5bl9sdHJlZSksbyh0aGlzLmR5bl9kdHJlZSksbyh0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rlc2M9bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBBLkJ1ZjE2KGF0KzEpLHRoaXMuaGVhcD1uZXcgQS5CdWYxNigyKm50KzEpLG8odGhpcy5oZWFwKSx0aGlzLmhlYXBfbGVuPTAsdGhpcy5oZWFwX21heD0wLHRoaXMuZGVwdGg9bmV3IEEuQnVmMTYoMipudCsxKSxvKHRoaXMuZGVwdGgpLHRoaXMubF9idWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIF8odCl7dmFyIGU7cmV0dXJuIHQmJnQuc3RhdGU/KHQudG90YWxfaW49dC50b3RhbF9vdXQ9MCx0LmRhdGFfdHlwZT1YLGU9dC5zdGF0ZSxlLnBlbmRpbmc9MCxlLnBlbmRpbmdfb3V0PTAsZS53cmFwPDAmJihlLndyYXA9LWUud3JhcCksZS5zdGF0dXM9ZS53cmFwP2N0OnZ0LHQuYWRsZXI9Mj09PWUud3JhcD8wOjEsZS5sYXN0X2ZsdXNoPU0sTC5fdHJfaW5pdChlKSxGKTpyKHQsVyl9ZnVuY3Rpb24gYih0KXt2YXIgZT1fKHQpO3JldHVybiBlPT09RiYmeSh0LnN0YXRlKSxlfWZ1bmN0aW9uIHgodCxlKXtyZXR1cm4gdCYmdC5zdGF0ZT8yIT09dC5zdGF0ZS53cmFwP1c6KHQuc3RhdGUuZ3poZWFkPWUsRik6V31mdW5jdGlvbiBTKHQsZSxuLGksbyxhKXtpZighdClyZXR1cm4gVzt2YXIgcz0xO2lmKGU9PT1IJiYoZT02KSwwPmk/KHM9MCxpPS1pKTppPjE1JiYocz0yLGktPTE2KSwxPm98fG8+JHx8biE9PVZ8fDg+aXx8aT4xNXx8MD5lfHxlPjl8fDA+YXx8YT5ZKXJldHVybiByKHQsVyk7OD09PWkmJihpPTkpO3ZhciBoPW5ldyB3O3JldHVybiB0LnN0YXRlPWgsaC5zdHJtPXQsaC53cmFwPXMsaC5nemhlYWQ9bnVsbCxoLndfYml0cz1pLGgud19zaXplPTE8PGgud19iaXRzLGgud19tYXNrPWgud19zaXplLTEsaC5oYXNoX2JpdHM9bys3LGguaGFzaF9zaXplPTE8PGguaGFzaF9iaXRzLGguaGFzaF9tYXNrPWguaGFzaF9zaXplLTEsaC5oYXNoX3NoaWZ0PX5+KChoLmhhc2hfYml0cytzdC0xKS9zdCksaC53aW5kb3c9bmV3IEEuQnVmOCgyKmgud19zaXplKSxoLmhlYWQ9bmV3IEEuQnVmMTYoaC5oYXNoX3NpemUpLGgucHJldj1uZXcgQS5CdWYxNihoLndfc2l6ZSksaC5saXRfYnVmc2l6ZT0xPDxvKzYsaC5wZW5kaW5nX2J1Zl9zaXplPTQqaC5saXRfYnVmc2l6ZSxoLnBlbmRpbmdfYnVmPW5ldyBBLkJ1ZjgoaC5wZW5kaW5nX2J1Zl9zaXplKSxoLmRfYnVmPWgubGl0X2J1ZnNpemU+PjEsaC5sX2J1Zj0zKmgubGl0X2J1ZnNpemUsaC5sZXZlbD1lLGguc3RyYXRlZ3k9YSxoLm1ldGhvZD1uLGIodCl9ZnVuY3Rpb24gayh0LGUpe3JldHVybiBTKHQsZSxWLEosUSxLKX1mdW5jdGlvbiBFKHQsZSl7dmFyIG4scyxsLGM7aWYoIXR8fCF0LnN0YXRlfHxlPlB8fDA+ZSlyZXR1cm4gdD9yKHQsVyk6VztpZihzPXQuc3RhdGUsIXQub3V0cHV0fHwhdC5pbnB1dCYmMCE9PXQuYXZhaWxfaW58fHMuc3RhdHVzPT09bXQmJmUhPT1VKXJldHVybiByKHQsMD09PXQuYXZhaWxfb3V0P2o6Vyk7aWYocy5zdHJtPXQsbj1zLmxhc3RfZmx1c2gscy5sYXN0X2ZsdXNoPWUscy5zdGF0dXM9PT1jdClpZigyPT09cy53cmFwKXQuYWRsZXI9MCxoKHMsMzEpLGgocywxMzkpLGgocyw4KSxzLmd6aGVhZD8oaChzLChzLmd6aGVhZC50ZXh0PzE6MCkrKHMuZ3poZWFkLmhjcmM/MjowKSsocy5nemhlYWQuZXh0cmE/NDowKSsocy5nemhlYWQubmFtZT84OjApKyhzLmd6aGVhZC5jb21tZW50PzE2OjApKSxoKHMsMjU1JnMuZ3poZWFkLnRpbWUpLGgocyxzLmd6aGVhZC50aW1lPj44JjI1NSksaChzLHMuZ3poZWFkLnRpbWU+PjE2JjI1NSksaChzLHMuZ3poZWFkLnRpbWU+PjI0JjI1NSksaChzLDk9PT1zLmxldmVsPzI6cy5zdHJhdGVneT49R3x8cy5sZXZlbDwyPzQ6MCksaChzLDI1NSZzLmd6aGVhZC5vcykscy5nemhlYWQuZXh0cmEmJnMuZ3poZWFkLmV4dHJhLmxlbmd0aCYmKGgocywyNTUmcy5nemhlYWQuZXh0cmEubGVuZ3RoKSxoKHMscy5nemhlYWQuZXh0cmEubGVuZ3RoPj44JjI1NSkpLHMuZ3poZWFkLmhjcmMmJih0LmFkbGVyPUIodC5hZGxlcixzLnBlbmRpbmdfYnVmLHMucGVuZGluZywwKSkscy5nemluZGV4PTAscy5zdGF0dXM9ZnQpOihoKHMsMCksaChzLDApLGgocywwKSxoKHMsMCksaChzLDApLGgocyw5PT09cy5sZXZlbD8yOnMuc3RyYXRlZ3k+PUd8fHMubGV2ZWw8Mj80OjApLGgocyx4dCkscy5zdGF0dXM9dnQpO2Vsc2V7dmFyIGY9Visocy53X2JpdHMtODw8NCk8PDgsZD0tMTtkPXMuc3RyYXRlZ3k+PUd8fHMubGV2ZWw8Mj8wOnMubGV2ZWw8Nj8xOjY9PT1zLmxldmVsPzI6MyxmfD1kPDw2LDAhPT1zLnN0cnN0YXJ0JiYoZnw9bHQpLGYrPTMxLWYlMzEscy5zdGF0dXM9dnQsdShzLGYpLDAhPT1zLnN0cnN0YXJ0JiYodShzLHQuYWRsZXI+Pj4xNiksdShzLDY1NTM1JnQuYWRsZXIpKSx0LmFkbGVyPTF9aWYocy5zdGF0dXM9PT1mdClpZihzLmd6aGVhZC5leHRyYSl7Zm9yKGw9cy5wZW5kaW5nO3MuZ3ppbmRleDwoNjU1MzUmcy5nemhlYWQuZXh0cmEubGVuZ3RoKSYmKHMucGVuZGluZyE9PXMucGVuZGluZ19idWZfc2l6ZXx8KHMuZ3poZWFkLmhjcmMmJnMucGVuZGluZz5sJiYodC5hZGxlcj1CKHQuYWRsZXIscy5wZW5kaW5nX2J1ZixzLnBlbmRpbmctbCxsKSksYSh0KSxsPXMucGVuZGluZyxzLnBlbmRpbmchPT1zLnBlbmRpbmdfYnVmX3NpemUpKTspaChzLDI1NSZzLmd6aGVhZC5leHRyYVtzLmd6aW5kZXhdKSxzLmd6aW5kZXgrKztzLmd6aGVhZC5oY3JjJiZzLnBlbmRpbmc+bCYmKHQuYWRsZXI9Qih0LmFkbGVyLHMucGVuZGluZ19idWYscy5wZW5kaW5nLWwsbCkpLHMuZ3ppbmRleD09PXMuZ3poZWFkLmV4dHJhLmxlbmd0aCYmKHMuZ3ppbmRleD0wLHMuc3RhdHVzPWR0KX1lbHNlIHMuc3RhdHVzPWR0O2lmKHMuc3RhdHVzPT09ZHQpaWYocy5nemhlYWQubmFtZSl7bD1zLnBlbmRpbmc7ZG97aWYocy5wZW5kaW5nPT09cy5wZW5kaW5nX2J1Zl9zaXplJiYocy5nemhlYWQuaGNyYyYmcy5wZW5kaW5nPmwmJih0LmFkbGVyPUIodC5hZGxlcixzLnBlbmRpbmdfYnVmLHMucGVuZGluZy1sLGwpKSxhKHQpLGw9cy5wZW5kaW5nLHMucGVuZGluZz09PXMucGVuZGluZ19idWZfc2l6ZSkpe2M9MTticmVha31jPXMuZ3ppbmRleDxzLmd6aGVhZC5uYW1lLmxlbmd0aD8yNTUmcy5nemhlYWQubmFtZS5jaGFyQ29kZUF0KHMuZ3ppbmRleCsrKTowLGgocyxjKX13aGlsZSgwIT09Yyk7cy5nemhlYWQuaGNyYyYmcy5wZW5kaW5nPmwmJih0LmFkbGVyPUIodC5hZGxlcixzLnBlbmRpbmdfYnVmLHMucGVuZGluZy1sLGwpKSwwPT09YyYmKHMuZ3ppbmRleD0wLHMuc3RhdHVzPXB0KX1lbHNlIHMuc3RhdHVzPXB0O2lmKHMuc3RhdHVzPT09cHQpaWYocy5nemhlYWQuY29tbWVudCl7bD1zLnBlbmRpbmc7ZG97aWYocy5wZW5kaW5nPT09cy5wZW5kaW5nX2J1Zl9zaXplJiYocy5nemhlYWQuaGNyYyYmcy5wZW5kaW5nPmwmJih0LmFkbGVyPUIodC5hZGxlcixzLnBlbmRpbmdfYnVmLHMucGVuZGluZy1sLGwpKSxhKHQpLGw9cy5wZW5kaW5nLHMucGVuZGluZz09PXMucGVuZGluZ19idWZfc2l6ZSkpe2M9MTticmVha31jPXMuZ3ppbmRleDxzLmd6aGVhZC5jb21tZW50Lmxlbmd0aD8yNTUmcy5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KHMuZ3ppbmRleCsrKTowLGgocyxjKX13aGlsZSgwIT09Yyk7cy5nemhlYWQuaGNyYyYmcy5wZW5kaW5nPmwmJih0LmFkbGVyPUIodC5hZGxlcixzLnBlbmRpbmdfYnVmLHMucGVuZGluZy1sLGwpKSwwPT09YyYmKHMuc3RhdHVzPWd0KX1lbHNlIHMuc3RhdHVzPWd0O2lmKHMuc3RhdHVzPT09Z3QmJihzLmd6aGVhZC5oY3JjPyhzLnBlbmRpbmcrMj5zLnBlbmRpbmdfYnVmX3NpemUmJmEodCkscy5wZW5kaW5nKzI8PXMucGVuZGluZ19idWZfc2l6ZSYmKGgocywyNTUmdC5hZGxlciksaChzLHQuYWRsZXI+PjgmMjU1KSx0LmFkbGVyPTAscy5zdGF0dXM9dnQpKTpzLnN0YXR1cz12dCksMCE9PXMucGVuZGluZyl7aWYoYSh0KSwwPT09dC5hdmFpbF9vdXQpcmV0dXJuIHMubGFzdF9mbHVzaD0tMSxGfWVsc2UgaWYoMD09PXQuYXZhaWxfaW4mJmkoZSk8PWkobikmJmUhPT1VKXJldHVybiByKHQsaik7aWYocy5zdGF0dXM9PT1tdCYmMCE9PXQuYXZhaWxfaW4pcmV0dXJuIHIodCxqKTtpZigwIT09dC5hdmFpbF9pbnx8MCE9PXMubG9va2FoZWFkfHxlIT09TSYmcy5zdGF0dXMhPT1tdCl7dmFyIHA9cy5zdHJhdGVneT09PUc/bShzLGUpOnMuc3RyYXRlZ3k9PT1xP3YocyxlKTpJW3MubGV2ZWxdLmZ1bmMocyxlKTtpZigocD09PV90fHxwPT09YnQpJiYocy5zdGF0dXM9bXQpLHA9PT15dHx8cD09PV90KXJldHVybiAwPT09dC5hdmFpbF9vdXQmJihzLmxhc3RfZmx1c2g9LTEpLEY7aWYocD09PXd0JiYoZT09PU8/TC5fdHJfYWxpZ24ocyk6ZSE9PVAmJihMLl90cl9zdG9yZWRfYmxvY2socywwLDAsITEpLGU9PT1EJiYobyhzLmhlYWQpLDA9PT1zLmxvb2thaGVhZCYmKHMuc3Ryc3RhcnQ9MCxzLmJsb2NrX3N0YXJ0PTAscy5pbnNlcnQ9MCkpKSxhKHQpLDA9PT10LmF2YWlsX291dCkpcmV0dXJuIHMubGFzdF9mbHVzaD0tMSxGfXJldHVybiBlIT09VT9GOnMud3JhcDw9MD96OigyPT09cy53cmFwPyhoKHMsMjU1JnQuYWRsZXIpLGgocyx0LmFkbGVyPj44JjI1NSksaChzLHQuYWRsZXI+PjE2JjI1NSksaChzLHQuYWRsZXI+PjI0JjI1NSksaChzLDI1NSZ0LnRvdGFsX2luKSxoKHMsdC50b3RhbF9pbj4+OCYyNTUpLGgocyx0LnRvdGFsX2luPj4xNiYyNTUpLGgocyx0LnRvdGFsX2luPj4yNCYyNTUpKToodShzLHQuYWRsZXI+Pj4xNiksdShzLDY1NTM1JnQuYWRsZXIpKSxhKHQpLHMud3JhcD4wJiYocy53cmFwPS1zLndyYXApLDAhPT1zLnBlbmRpbmc/Rjp6KX1mdW5jdGlvbiBDKHQpe3ZhciBlO3JldHVybiB0JiZ0LnN0YXRlPyhlPXQuc3RhdGUuc3RhdHVzLGUhPT1jdCYmZSE9PWZ0JiZlIT09ZHQmJmUhPT1wdCYmZSE9PWd0JiZlIT09dnQmJmUhPT1tdD9yKHQsVyk6KHQuc3RhdGU9bnVsbCxlPT09dnQ/cih0LE4pOkYpKTpXfXZhciBJLEE9big5OCksTD1uKDk1KSxSPW4oOTYpLEI9big5NyksVD1uKDczKSxNPTAsTz0xLEQ9MyxVPTQsUD01LEY9MCx6PTEsVz0tMixOPS0zLGo9LTUsSD0tMSxaPTEsRz0yLHE9MyxZPTQsSz0wLFg9MixWPTgsJD05LEo9MTUsUT04LHR0PTI5LGV0PTI1NixudD1ldCsxK3R0LHJ0PTMwLGl0PTE5LG90PTIqbnQrMSxhdD0xNSxzdD0zLGh0PTI1OCx1dD1odCtzdCsxLGx0PTMyLGN0PTQyLGZ0PTY5LGR0PTczLHB0PTkxLGd0PTEwMyx2dD0xMTMsbXQ9NjY2LHl0PTEsd3Q9MixfdD0zLGJ0PTQseHQ9MyxTdD1mdW5jdGlvbih0LGUsbixyLGkpe3RoaXMuZ29vZF9sZW5ndGg9dCx0aGlzLm1heF9sYXp5PWUsdGhpcy5uaWNlX2xlbmd0aD1uLHRoaXMubWF4X2NoYWluPXIsdGhpcy5mdW5jPWl9O0k9W25ldyBTdCgwLDAsMCwwLGQpLG5ldyBTdCg0LDQsOCw0LHApLG5ldyBTdCg0LDUsMTYsOCxwKSxuZXcgU3QoNCw2LDMyLDMyLHApLG5ldyBTdCg0LDQsMTYsMTYsZyksbmV3IFN0KDgsMTYsMzIsMzIsZyksbmV3IFN0KDgsMTYsMTI4LDEyOCxnKSxuZXcgU3QoOCwzMiwxMjgsMjU2LGcpLG5ldyBTdCgzMiwxMjgsMjU4LDEwMjQsZyksbmV3IFN0KDMyLDI1OCwyNTgsNDA5NixnKV0sZS5kZWZsYXRlSW5pdD1rLGUuZGVmbGF0ZUluaXQyPVMsZS5kZWZsYXRlUmVzZXQ9YixlLmRlZmxhdGVSZXNldEtlZXA9XyxlLmRlZmxhdGVTZXRIZWFkZXI9eCxlLmRlZmxhdGU9RSxlLmRlZmxhdGVFbmQ9QyxlLmRlZmxhdGVJbmZvPSJwYWtvIGRlZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQpe3JldHVybih0Pj4+MjQmMjU1KSsodD4+PjgmNjUyODApKygoNjUyODAmdCk8PDgpKygoMjU1JnQpPDwyNCl9ZnVuY3Rpb24gaSgpe3RoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXplPTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRoaXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgbS5CdWYxNigzMjApLHRoaXMud29yaz1uZXcgbS5CdWYxNigyODgpLHRoaXMubGVuZHluPW51bGwsdGhpcy5kaXN0ZHluPW51bGwsdGhpcy5zYW5lPTAsdGhpcy5iYWNrPTAsdGhpcy53YXM9MH1mdW5jdGlvbiBvKHQpe3ZhciBlO3JldHVybiB0JiZ0LnN0YXRlPyhlPXQuc3RhdGUsdC50b3RhbF9pbj10LnRvdGFsX291dD1lLnRvdGFsPTAsdC5tc2c9IiIsZS53cmFwJiYodC5hZGxlcj0xJmUud3JhcCksZS5tb2RlPVUsZS5sYXN0PTAsZS5oYXZlZGljdD0wLGUuZG1heD0zMjc2OCxlLmhlYWQ9bnVsbCxlLmhvbGQ9MCxlLmJpdHM9MCxlLmxlbmNvZGU9ZS5sZW5keW49bmV3IG0uQnVmMzIocHQpLGUuZGlzdGNvZGU9ZS5kaXN0ZHluPW5ldyBtLkJ1ZjMyKGd0KSxlLnNhbmU9MSxlLmJhY2s9LTEsQSk6Qn1mdW5jdGlvbiBhKHQpe3ZhciBlO3JldHVybiB0JiZ0LnN0YXRlPyhlPXQuc3RhdGUsZS53c2l6ZT0wLGUud2hhdmU9MCxlLnduZXh0PTAsbyh0KSk6Qn1mdW5jdGlvbiBzKHQsZSl7dmFyIG4scjtyZXR1cm4gdCYmdC5zdGF0ZT8ocj10LnN0YXRlLDA+ZT8obj0wLGU9LWUpOihuPShlPj40KSsxLDQ4PmUmJihlJj0xNSkpLGUmJig4PmV8fGU+MTUpP0I6KG51bGwhPT1yLndpbmRvdyYmci53Yml0cyE9PWUmJihyLndpbmRvdz1udWxsKSxyLndyYXA9bixyLndiaXRzPWUsYSh0KSkpOkJ9ZnVuY3Rpb24gaCh0LGUpe3ZhciBuLHI7cmV0dXJuIHQ/KHI9bmV3IGksdC5zdGF0ZT1yLHIud2luZG93PW51bGwsbj1zKHQsZSksbiE9PUEmJih0LnN0YXRlPW51bGwpLG4pOkJ9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gaCh0LG10KX1mdW5jdGlvbiBsKHQpe2lmKHl0KXt2YXIgZTtmb3IoZz1uZXcgbS5CdWYzMig1MTIpLHY9bmV3IG0uQnVmMzIoMzIpLGU9MDsxNDQ+ZTspdC5sZW5zW2UrK109ODtmb3IoOzI1Nj5lOyl0LmxlbnNbZSsrXT05O2Zvcig7MjgwPmU7KXQubGVuc1tlKytdPTc7Zm9yKDsyODg+ZTspdC5sZW5zW2UrK109ODtmb3IoYihTLHQubGVucywwLDI4OCxnLDAsdC53b3JrLHtiaXRzOjl9KSxlPTA7MzI+ZTspdC5sZW5zW2UrK109NTtiKGssdC5sZW5zLDAsMzIsdiwwLHQud29yayx7Yml0czo1fSkseXQ9ITF9dC5sZW5jb2RlPWcsdC5sZW5iaXRzPTksdC5kaXN0Y29kZT12LHQuZGlzdGJpdHM9NX1mdW5jdGlvbiBjKHQsZSxuLHIpe3ZhciBpLG89dC5zdGF0ZTtyZXR1cm4gbnVsbD09PW8ud2luZG93JiYoby53c2l6ZT0xPDxvLndiaXRzLG8ud25leHQ9MCxvLndoYXZlPTAsby53aW5kb3c9bmV3IG0uQnVmOChvLndzaXplKSkscj49by53c2l6ZT8obS5hcnJheVNldChvLndpbmRvdyxlLG4tby53c2l6ZSxvLndzaXplLDApLG8ud25leHQ9MCxvLndoYXZlPW8ud3NpemUpOihpPW8ud3NpemUtby53bmV4dCxpPnImJihpPXIpLG0uYXJyYXlTZXQoby53aW5kb3csZSxuLXIsaSxvLnduZXh0KSxyLT1pLHI/KG0uYXJyYXlTZXQoby53aW5kb3csZSxuLXIsciwwKSxvLnduZXh0PXIsby53aGF2ZT1vLndzaXplKTooby53bmV4dCs9aSxvLnduZXh0PT09by53c2l6ZSYmKG8ud25leHQ9MCksby53aGF2ZTxvLndzaXplJiYoby53aGF2ZSs9aSkpKSwwfWZ1bmN0aW9uIGYodCxlKXt2YXIgbixpLG8sYSxzLGgsdSxmLGQscCxnLHYscHQsZ3QsdnQsbXQseXQsd3QsX3QsYnQseHQsU3Qsa3QsRXQsQ3Q9MCxJdD1uZXcgbS5CdWY4KDQpLEF0PVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XTtpZighdHx8IXQuc3RhdGV8fCF0Lm91dHB1dHx8IXQuaW5wdXQmJjAhPT10LmF2YWlsX2luKXJldHVybiBCO249dC5zdGF0ZSxuLm1vZGU9PT1ZJiYobi5tb2RlPUspLHM9dC5uZXh0X291dCxvPXQub3V0cHV0LHU9dC5hdmFpbF9vdXQsYT10Lm5leHRfaW4saT10LmlucHV0LGg9dC5hdmFpbF9pbixmPW4uaG9sZCxkPW4uYml0cyxwPWgsZz11LFN0PUE7dDpmb3IoOzspc3dpdGNoKG4ubW9kZSl7Y2FzZSBVOmlmKDA9PT1uLndyYXApe24ubW9kZT1LO2JyZWFrfWZvcig7MTY+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fWlmKDImbi53cmFwJiYzNTYxNT09PWYpe24uY2hlY2s9MCxJdFswXT0yNTUmZixJdFsxXT1mPj4+OCYyNTUsbi5jaGVjaz13KG4uY2hlY2ssSXQsMiwwKSxmPTAsZD0wLG4ubW9kZT1QO2JyZWFrfWlmKG4uZmxhZ3M9MCxuLmhlYWQmJihuLmhlYWQuZG9uZT0hMSksISgxJm4ud3JhcCl8fCgoKDI1NSZmKTw8OCkrKGY+PjgpKSUzMSl7dC5tc2c9ImluY29ycmVjdCBoZWFkZXIgY2hlY2siLG4ubW9kZT1jdDticmVha31pZigoMTUmZikhPT1EKXt0Lm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLG4ubW9kZT1jdDticmVha31pZihmPj4+PTQsZC09NCx4dD0oMTUmZikrOCwwPT09bi53Yml0cyluLndiaXRzPXh0O2Vsc2UgaWYoeHQ+bi53Yml0cyl7dC5tc2c9ImludmFsaWQgd2luZG93IHNpemUiLG4ubW9kZT1jdDticmVha31uLmRtYXg9MTw8eHQsdC5hZGxlcj1uLmNoZWNrPTEsbi5tb2RlPTUxMiZmP0c6WSxmPTAsZD0wO2JyZWFrO2Nhc2UgUDpmb3IoOzE2PmQ7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1pZihuLmZsYWdzPWYsKDI1NSZuLmZsYWdzKSE9PUQpe3QubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsbi5tb2RlPWN0O2JyZWFrfWlmKDU3MzQ0Jm4uZmxhZ3Mpe3QubXNnPSJ1bmtub3duIGhlYWRlciBmbGFncyBzZXQiLG4ubW9kZT1jdDticmVha31uLmhlYWQmJihuLmhlYWQudGV4dD1mPj44JjEpLDUxMiZuLmZsYWdzJiYoSXRbMF09MjU1JmYsSXRbMV09Zj4+PjgmMjU1LG4uY2hlY2s9dyhuLmNoZWNrLEl0LDIsMCkpLGY9MCxkPTAsbi5tb2RlPUY7Y2FzZSBGOmZvcig7MzI+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fW4uaGVhZCYmKG4uaGVhZC50aW1lPWYpLDUxMiZuLmZsYWdzJiYoSXRbMF09MjU1JmYsSXRbMV09Zj4+PjgmMjU1LEl0WzJdPWY+Pj4xNiYyNTUsSXRbM109Zj4+PjI0JjI1NSxuLmNoZWNrPXcobi5jaGVjayxJdCw0LDApKSxmPTAsZD0wLG4ubW9kZT16O2Nhc2Ugejpmb3IoOzE2PmQ7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1uLmhlYWQmJihuLmhlYWQueGZsYWdzPTI1NSZmLG4uaGVhZC5vcz1mPj44KSw1MTImbi5mbGFncyYmKEl0WzBdPTI1NSZmLEl0WzFdPWY+Pj44JjI1NSxuLmNoZWNrPXcobi5jaGVjayxJdCwyLDApKSxmPTAsZD0wLG4ubW9kZT1XO2Nhc2UgVzppZigxMDI0Jm4uZmxhZ3Mpe2Zvcig7MTY+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fW4ubGVuZ3RoPWYsbi5oZWFkJiYobi5oZWFkLmV4dHJhX2xlbj1mKSw1MTImbi5mbGFncyYmKEl0WzBdPTI1NSZmLEl0WzFdPWY+Pj44JjI1NSxuLmNoZWNrPXcobi5jaGVjayxJdCwyLDApKSxmPTAsZD0wfWVsc2Ugbi5oZWFkJiYobi5oZWFkLmV4dHJhPW51bGwpO24ubW9kZT1OO2Nhc2UgTjppZigxMDI0Jm4uZmxhZ3MmJih2PW4ubGVuZ3RoLHY+aCYmKHY9aCksdiYmKG4uaGVhZCYmKHh0PW4uaGVhZC5leHRyYV9sZW4tbi5sZW5ndGgsbi5oZWFkLmV4dHJhfHwobi5oZWFkLmV4dHJhPW5ldyBBcnJheShuLmhlYWQuZXh0cmFfbGVuKSksbS5hcnJheVNldChuLmhlYWQuZXh0cmEsaSxhLHYseHQpKSw1MTImbi5mbGFncyYmKG4uY2hlY2s9dyhuLmNoZWNrLGksdixhKSksaC09dixhKz12LG4ubGVuZ3RoLT12KSxuLmxlbmd0aCkpYnJlYWsgdDtuLmxlbmd0aD0wLG4ubW9kZT1qO2Nhc2UgajppZigyMDQ4Jm4uZmxhZ3Mpe2lmKDA9PT1oKWJyZWFrIHQ7dj0wO2RvIHh0PWlbYSt2KytdLG4uaGVhZCYmeHQmJm4ubGVuZ3RoPDY1NTM2JiYobi5oZWFkLm5hbWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoeHQpKTt3aGlsZSh4dCYmaD52KTtpZig1MTImbi5mbGFncyYmKG4uY2hlY2s9dyhuLmNoZWNrLGksdixhKSksaC09dixhKz12LHh0KWJyZWFrIHR9ZWxzZSBuLmhlYWQmJihuLmhlYWQubmFtZT1udWxsKTtuLmxlbmd0aD0wLG4ubW9kZT1IO2Nhc2UgSDppZig0MDk2Jm4uZmxhZ3Mpe2lmKDA9PT1oKWJyZWFrIHQ7dj0wO2RvIHh0PWlbYSt2KytdLG4uaGVhZCYmeHQmJm4ubGVuZ3RoPDY1NTM2JiYobi5oZWFkLmNvbW1lbnQrPVN0cmluZy5mcm9tQ2hhckNvZGUoeHQpKTt3aGlsZSh4dCYmaD52KTtpZig1MTImbi5mbGFncyYmKG4uY2hlY2s9dyhuLmNoZWNrLGksdixhKSksaC09dixhKz12LHh0KWJyZWFrIHR9ZWxzZSBuLmhlYWQmJihuLmhlYWQuY29tbWVudD1udWxsKTtuLm1vZGU9WjtjYXNlIFo6aWYoNTEyJm4uZmxhZ3Mpe2Zvcig7MTY+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fWlmKGYhPT0oNjU1MzUmbi5jaGVjaykpe3QubXNnPSJoZWFkZXIgY3JjIG1pc21hdGNoIixuLm1vZGU9Y3Q7YnJlYWt9Zj0wLGQ9MH1uLmhlYWQmJihuLmhlYWQuaGNyYz1uLmZsYWdzPj45JjEsbi5oZWFkLmRvbmU9ITApLHQuYWRsZXI9bi5jaGVjaz0wLG4ubW9kZT1ZO2JyZWFrO2Nhc2UgRzpmb3IoOzMyPmQ7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH10LmFkbGVyPW4uY2hlY2s9cihmKSxmPTAsZD0wLG4ubW9kZT1xO2Nhc2UgcTppZigwPT09bi5oYXZlZGljdClyZXR1cm4gdC5uZXh0X291dD1zLHQuYXZhaWxfb3V0PXUsdC5uZXh0X2luPWEsdC5hdmFpbF9pbj1oLG4uaG9sZD1mLG4uYml0cz1kLFI7dC5hZGxlcj1uLmNoZWNrPTEsbi5tb2RlPVk7Y2FzZSBZOmlmKGU9PT1DfHxlPT09SSlicmVhayB0O2Nhc2UgSzppZihuLmxhc3Qpe2Y+Pj49NyZkLGQtPTcmZCxuLm1vZGU9aHQ7YnJlYWt9Zm9yKDszPmQ7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1zd2l0Y2gobi5sYXN0PTEmZixmPj4+PTEsZC09MSwzJmYpe2Nhc2UgMDpuLm1vZGU9WDticmVhaztjYXNlIDE6aWYobChuKSxuLm1vZGU9ZXQsZT09PUkpe2Y+Pj49MixkLT0yO2JyZWFrIHR9YnJlYWs7Y2FzZSAyOm4ubW9kZT1KO2JyZWFrO2Nhc2UgMzp0Lm1zZz0iaW52YWxpZCBibG9jayB0eXBlIixuLm1vZGU9Y3R9Zj4+Pj0yLGQtPTI7YnJlYWs7Y2FzZSBYOmZvcihmPj4+PTcmZCxkLT03JmQ7MzI+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fWlmKCg2NTUzNSZmKSE9PShmPj4+MTZeNjU1MzUpKXt0Lm1zZz0iaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocyIsbi5tb2RlPWN0O2JyZWFrfWlmKG4ubGVuZ3RoPTY1NTM1JmYsZj0wLGQ9MCxuLm1vZGU9VixlPT09SSlicmVhayB0O2Nhc2UgVjpuLm1vZGU9JDtjYXNlICQ6aWYodj1uLmxlbmd0aCl7aWYodj5oJiYodj1oKSx2PnUmJih2PXUpLDA9PT12KWJyZWFrIHQ7bS5hcnJheVNldChvLGksYSx2LHMpLGgtPXYsYSs9dix1LT12LHMrPXYsbi5sZW5ndGgtPXY7YnJlYWt9bi5tb2RlPVk7YnJlYWs7Y2FzZSBKOmZvcig7MTQ+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fWlmKG4ubmxlbj0oMzEmZikrMjU3LGY+Pj49NSxkLT01LG4ubmRpc3Q9KDMxJmYpKzEsZj4+Pj01LGQtPTUsbi5uY29kZT0oMTUmZikrNCxmPj4+PTQsZC09NCxuLm5sZW4+Mjg2fHxuLm5kaXN0PjMwKXt0Lm1zZz0idG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMiLG4ubW9kZT1jdDticmVha31uLmhhdmU9MCxuLm1vZGU9UTtjYXNlIFE6Zm9yKDtuLmhhdmU8bi5uY29kZTspe2Zvcig7Mz5kOyl7aWYoMD09PWgpYnJlYWsgdDtoLS0sZis9aVthKytdPDxkLGQrPTh9bi5sZW5zW0F0W24uaGF2ZSsrXV09NyZmLGY+Pj49MyxkLT0zfWZvcig7bi5oYXZlPDE5OyluLmxlbnNbQXRbbi5oYXZlKytdXT0wO2lmKG4ubGVuY29kZT1uLmxlbmR5bixuLmxlbmJpdHM9NyxrdD17Yml0czpuLmxlbmJpdHN9LFN0PWIoeCxuLmxlbnMsMCwxOSxuLmxlbmNvZGUsMCxuLndvcmssa3QpLG4ubGVuYml0cz1rdC5iaXRzLFN0KXt0Lm1zZz0iaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0IixuLm1vZGU9Y3Q7YnJlYWt9bi5oYXZlPTAsbi5tb2RlPXR0O2Nhc2UgdHQ6Zm9yKDtuLmhhdmU8bi5ubGVuK24ubmRpc3Q7KXtmb3IoO0N0PW4ubGVuY29kZVtmJigxPDxuLmxlbmJpdHMpLTFdLHZ0PUN0Pj4+MjQsbXQ9Q3Q+Pj4xNiYyNTUseXQ9NjU1MzUmQ3QsIShkPj12dCk7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1pZigxNj55dClmPj4+PXZ0LGQtPXZ0LG4ubGVuc1tuLmhhdmUrK109eXQ7ZWxzZXtpZigxNj09PXl0KXtmb3IoRXQ9dnQrMjtFdD5kOyl7aWYoMD09PWgpYnJlYWsgdDtoLS0sZis9aVthKytdPDxkLGQrPTh9aWYoZj4+Pj12dCxkLT12dCwwPT09bi5oYXZlKXt0Lm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsbi5tb2RlPWN0O2JyZWFrfXh0PW4ubGVuc1tuLmhhdmUtMV0sdj0zKygzJmYpLGY+Pj49MixkLT0yfWVsc2UgaWYoMTc9PT15dCl7Zm9yKEV0PXZ0KzM7RXQ+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGYrPWlbYSsrXTw8ZCxkKz04fWY+Pj49dnQsZC09dnQseHQ9MCx2PTMrKDcmZiksZj4+Pj0zLGQtPTN9ZWxzZXtmb3IoRXQ9dnQrNztFdD5kOyl7aWYoMD09PWgpYnJlYWsgdDtoLS0sZis9aVthKytdPDxkLGQrPTh9Zj4+Pj12dCxkLT12dCx4dD0wLHY9MTErKDEyNyZmKSxmPj4+PTcsZC09N31pZihuLmhhdmUrdj5uLm5sZW4rbi5uZGlzdCl7dC5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLG4ubW9kZT1jdDticmVha31mb3IoO3YtLTspbi5sZW5zW24uaGF2ZSsrXT14dH19aWYobi5tb2RlPT09Y3QpYnJlYWs7aWYoMD09PW4ubGVuc1syNTZdKXt0Lm1zZz0iaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrIixuLm1vZGU9Y3Q7YnJlYWt9aWYobi5sZW5iaXRzPTksa3Q9e2JpdHM6bi5sZW5iaXRzfSxTdD1iKFMsbi5sZW5zLDAsbi5ubGVuLG4ubGVuY29kZSwwLG4ud29yayxrdCksbi5sZW5iaXRzPWt0LmJpdHMsU3Qpe3QubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQiLG4ubW9kZT1jdDticmVha31pZihuLmRpc3RiaXRzPTYsbi5kaXN0Y29kZT1uLmRpc3RkeW4sa3Q9e2JpdHM6bi5kaXN0Yml0c30sU3Q9YihrLG4ubGVucyxuLm5sZW4sbi5uZGlzdCxuLmRpc3Rjb2RlLDAsbi53b3JrLGt0KSxuLmRpc3RiaXRzPWt0LmJpdHMsU3Qpe3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlcyBzZXQiLG4ubW9kZT1jdDticmVha31pZihuLm1vZGU9ZXQsZT09PUkpYnJlYWsgdDtjYXNlIGV0Om4ubW9kZT1udDtjYXNlIG50OmlmKGg+PTYmJnU+PTI1OCl7dC5uZXh0X291dD1zLHQuYXZhaWxfb3V0PXUsdC5uZXh0X2luPWEsdC5hdmFpbF9pbj1oLG4uaG9sZD1mLG4uYml0cz1kLF8odCxnKSxzPXQubmV4dF9vdXQsbz10Lm91dHB1dCx1PXQuYXZhaWxfb3V0LGE9dC5uZXh0X2luLGk9dC5pbnB1dCxoPXQuYXZhaWxfaW4sZj1uLmhvbGQsZD1uLmJpdHMsbi5tb2RlPT09WSYmKG4uYmFjaz0tMSk7YnJlYWt9Zm9yKG4uYmFjaz0wO0N0PW4ubGVuY29kZVtmJigxPDxuLmxlbmJpdHMpLTFdLHZ0PUN0Pj4+MjQsbXQ9Q3Q+Pj4xNiYyNTUseXQ9NjU1MzUmQ3QsIShkPj12dCk7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1pZihtdCYmMD09PSgyNDAmbXQpKXtmb3Iod3Q9dnQsX3Q9bXQsYnQ9eXQ7Q3Q9bi5sZW5jb2RlW2J0KygoZiYoMTw8d3QrX3QpLTEpPj53dCldLHZ0PUN0Pj4+MjQsbXQ9Q3Q+Pj4xNiYyNTUseXQ9NjU1MzUmQ3QsIShkPj13dCt2dCk7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1mPj4+PXd0LGQtPXd0LG4uYmFjays9d3R9aWYoZj4+Pj12dCxkLT12dCxuLmJhY2srPXZ0LG4ubGVuZ3RoPXl0LDA9PT1tdCl7bi5tb2RlPXN0O2JyZWFrfWlmKDMyJm10KXtuLmJhY2s9LTEsbi5tb2RlPVk7YnJlYWt9aWYoNjQmbXQpe3QubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLG4ubW9kZT1jdDticmVha31uLmV4dHJhPTE1Jm10LG4ubW9kZT1ydDtjYXNlIHJ0OmlmKG4uZXh0cmEpe2ZvcihFdD1uLmV4dHJhO0V0PmQ7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1uLmxlbmd0aCs9ZiYoMTw8bi5leHRyYSktMSxmPj4+PW4uZXh0cmEsZC09bi5leHRyYSxuLmJhY2srPW4uZXh0cmF9bi53YXM9bi5sZW5ndGgsbi5tb2RlPWl0O2Nhc2UgaXQ6Zm9yKDtDdD1uLmRpc3Rjb2RlW2YmKDE8PG4uZGlzdGJpdHMpLTFdLHZ0PUN0Pj4+MjQsbXQ9Q3Q+Pj4xNiYyNTUseXQ9NjU1MzUmQ3QsIShkPj12dCk7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1pZigwPT09KDI0MCZtdCkpe2Zvcih3dD12dCxfdD1tdCxidD15dDtDdD1uLmRpc3Rjb2RlW2J0KygoZiYoMTw8d3QrX3QpLTEpPj53dCldLHZ0PUN0Pj4+MjQsbXQ9Q3Q+Pj4xNiYyNTUseXQ9NjU1MzUmQ3QsIShkPj13dCt2dCk7KXtpZigwPT09aClicmVhayB0O2gtLSxmKz1pW2ErK108PGQsZCs9OH1mPj4+PXd0LGQtPXd0LG4uYmFjays9d3R9aWYoZj4+Pj12dCxkLT12dCxuLmJhY2srPXZ0LDY0Jm10KXt0Lm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixuLm1vZGU9Y3Q7YnJlYWt9bi5vZmZzZXQ9eXQsbi5leHRyYT0xNSZtdCxuLm1vZGU9b3Q7Y2FzZSBvdDppZihuLmV4dHJhKXtmb3IoRXQ9bi5leHRyYTtFdD5kOyl7aWYoMD09PWgpYnJlYWsgdDtoLS0sZis9aVthKytdPDxkLGQrPTh9bi5vZmZzZXQrPWYmKDE8PG4uZXh0cmEpLTEsZj4+Pj1uLmV4dHJhLGQtPW4uZXh0cmEsbi5iYWNrKz1uLmV4dHJhfWlmKG4ub2Zmc2V0Pm4uZG1heCl7dC5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixuLm1vZGU9Y3Q7YnJlYWt9bi5tb2RlPWF0O2Nhc2UgYXQ6aWYoMD09PXUpYnJlYWsgdDtpZih2PWctdSxuLm9mZnNldD52KXtpZih2PW4ub2Zmc2V0LXYsdj5uLndoYXZlJiZuLnNhbmUpe3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsbi5tb2RlPWN0O2JyZWFrfXY+bi53bmV4dD8odi09bi53bmV4dCxwdD1uLndzaXplLXYpOnB0PW4ud25leHQtdix2Pm4ubGVuZ3RoJiYodj1uLmxlbmd0aCksZ3Q9bi53aW5kb3d9ZWxzZSBndD1vLHB0PXMtbi5vZmZzZXQsdj1uLmxlbmd0aDt2PnUmJih2PXUpLHUtPXYsbi5sZW5ndGgtPXY7ZG8gb1tzKytdPWd0W3B0KytdO3doaWxlKC0tdik7MD09PW4ubGVuZ3RoJiYobi5tb2RlPW50KTticmVhaztjYXNlIHN0OmlmKDA9PT11KWJyZWFrIHQ7b1tzKytdPW4ubGVuZ3RoLHUtLSxuLm1vZGU9bnQ7YnJlYWs7Y2FzZSBodDppZihuLndyYXApe2Zvcig7MzI+ZDspe2lmKDA9PT1oKWJyZWFrIHQ7aC0tLGZ8PWlbYSsrXTw8ZCxkKz04fWlmKGctPXUsdC50b3RhbF9vdXQrPWcsbi50b3RhbCs9ZyxnJiYodC5hZGxlcj1uLmNoZWNrPW4uZmxhZ3M/dyhuLmNoZWNrLG8sZyxzLWcpOnkobi5jaGVjayxvLGcscy1nKSksZz11LChuLmZsYWdzP2Y6cihmKSkhPT1uLmNoZWNrKXt0Lm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLG4ubW9kZT1jdDticmVha31mPTAsZD0wfW4ubW9kZT11dDtjYXNlIHV0OmlmKG4ud3JhcCYmbi5mbGFncyl7Zm9yKDszMj5kOyl7aWYoMD09PWgpYnJlYWsgdDtoLS0sZis9aVthKytdPDxkLGQrPTh9aWYoZiE9PSg0Mjk0OTY3Mjk1Jm4udG90YWwpKXt0Lm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsbi5tb2RlPWN0O2JyZWFrfWY9MCxkPTB9bi5tb2RlPWx0O2Nhc2UgbHQ6U3Q9TDticmVhayB0O2Nhc2UgY3Q6U3Q9VDticmVhayB0O2Nhc2UgZnQ6cmV0dXJuIE07Y2FzZSBkdDpkZWZhdWx0OnJldHVybiBCfXJldHVybiB0Lm5leHRfb3V0PXMsdC5hdmFpbF9vdXQ9dSx0Lm5leHRfaW49YSx0LmF2YWlsX2luPWgsbi5ob2xkPWYsbi5iaXRzPWQsKG4ud3NpemV8fGchPT10LmF2YWlsX291dCYmbi5tb2RlPGN0JiYobi5tb2RlPGh0fHxlIT09RSkpJiZjKHQsdC5vdXRwdXQsdC5uZXh0X291dCxnLXQuYXZhaWxfb3V0KT8obi5tb2RlPWZ0LE0pOihwLT10LmF2YWlsX2luLGctPXQuYXZhaWxfb3V0LHQudG90YWxfaW4rPXAsdC50b3RhbF9vdXQrPWcsbi50b3RhbCs9ZyxuLndyYXAmJmcmJih0LmFkbGVyPW4uY2hlY2s9bi5mbGFncz93KG4uY2hlY2ssbyxnLHQubmV4dF9vdXQtZyk6eShuLmNoZWNrLG8sZyx0Lm5leHRfb3V0LWcpKSx0LmRhdGFfdHlwZT1uLmJpdHMrKG4ubGFzdD82NDowKSsobi5tb2RlPT09WT8xMjg6MCkrKG4ubW9kZT09PWV0fHxuLm1vZGU9PT1WPzI1NjowKSwoMD09PXAmJjA9PT1nfHxlPT09RSkmJlN0PT09QSYmKFN0PU8pLFN0KX1mdW5jdGlvbiBkKHQpe2lmKCF0fHwhdC5zdGF0ZSlyZXR1cm4gQjt2YXIgZT10LnN0YXRlO3JldHVybiBlLndpbmRvdyYmKGUud2luZG93PW51bGwpLHQuc3RhdGU9bnVsbCxBfWZ1bmN0aW9uIHAodCxlKXt2YXIgbjtyZXR1cm4gdCYmdC5zdGF0ZT8obj10LnN0YXRlLDA9PT0oMiZuLndyYXApP0I6KG4uaGVhZD1lLGUuZG9uZT0hMSxBKSk6Qn12YXIgZyx2LG09big5OCkseT1uKDk2KSx3PW4oOTcpLF89bigxMDIpLGI9bigxMDMpLHg9MCxTPTEsaz0yLEU9NCxDPTUsST02LEE9MCxMPTEsUj0yLEI9LTIsVD0tMyxNPS00LE89LTUsRD04LFU9MSxQPTIsRj0zLHo9NCxXPTUsTj02LGo9NyxIPTgsWj05LEc9MTAscT0xMSxZPTEyLEs9MTMsWD0xNCxWPTE1LCQ9MTYsSj0xNyxRPTE4LHR0PTE5LGV0PTIwLG50PTIxLHJ0PTIyLGl0PTIzLG90PTI0LGF0PTI1LHN0PTI2LGh0PTI3LHV0PTI4LGx0PTI5LGN0PTMwLGZ0PTMxLGR0PTMyLHB0PTg1MixndD01OTIsdnQ9MTUsbXQ9dnQseXQ9ITA7ZS5pbmZsYXRlUmVzZXQ9YSxlLmluZmxhdGVSZXNldDI9cyxlLmluZmxhdGVSZXNldEtlZXA9byxlLmluZmxhdGVJbml0PXUsZS5pbmZsYXRlSW5pdDI9aCxlLmluZmxhdGU9ZixlLmluZmxhdGVFbmQ9ZCxlLmluZmxhdGVHZXRIZWFkZXI9cCxlLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz17Wl9OT19GTFVTSDowLFpfUEFSVElBTF9GTFVTSDoxLFpfU1lOQ19GTFVTSDoyLFpfRlVMTF9GTFVTSDozLFpfRklOSVNIOjQsWl9CTE9DSzo1LFpfVFJFRVM6NixaX09LOjAsWl9TVFJFQU1fRU5EOjEsWl9ORUVEX0RJQ1Q6MixaX0VSUk5POi0xLFpfU1RSRUFNX0VSUk9SOi0yLFpfREFUQV9FUlJPUjotMyxaX0JVRl9FUlJPUjotNSxaX05PX0NPTVBSRVNTSU9OOjAsWl9CRVNUX1NQRUVEOjEsWl9CRVNUX0NPTVBSRVNTSU9OOjksWl9ERUZBVUxUX0NPTVBSRVNTSU9OOi0xLFpfRklMVEVSRUQ6MSxaX0hVRkZNQU5fT05MWToyLFpfUkxFOjMsWl9GSVhFRDo0LFpfREVGQVVMVF9TVFJBVEVHWTowLFpfQklOQVJZOjAsWl9URVhUOjEsWl9VTktOT1dOOjIsWl9ERUZMQVRFRDo4fX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPSIiLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0yLHRoaXMuYWRsZXI9MH10LmV4cG9ydHM9cn0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLHIsaSxOYW1lVGFibGUsbztvPW4oMTApLHI9bigzNCksaT1uKDc5KSxOYW1lVGFibGU9big4MCksZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5jb250ZW50cz1uZXcgcih0KSx0aGlzLnBhcnNlKHRoaXMuY29udGVudHMpfXJldHVybiB0Lm9wZW49ZnVuY3Rpb24oZSl7dmFyIG47cmV0dXJuIG49by5yZWFkRmlsZVN5bmMoZSksbmV3IHQobil9LHQucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciBlLG4sbyxhLHMsaCx1LGwsYyxmLGQscCxnLHYsbSx5LHcsXyxiLHgsUyxrLEUsQyxJLEEsTCxSLEI7Zm9yKGg9dC5yZWFkSW50KCksdz10LnJlYWRJbnQoKSxzPXQucmVhZEludCgpLHk9dC5yZWFkSW50KCksdGhpcy5tYXA9e30sdC5wb3M9dysyNCxMPXQucmVhZFNob3J0KCkrdyxTPXQucmVhZFNob3J0KCkrdyx0LnBvcz1MLF89dC5yZWFkU2hvcnQoKSxkPVI9MDtfPj1SO2Q9Uis9MSl7Zm9yKEE9dC5yZWFkU3RyaW5nKDQpLGI9dC5yZWFkU2hvcnQoKSxJPXQucmVhZFNob3J0KCksdGhpcy5tYXBbQV09e2xpc3Q6W10sbmFtZWQ6e319LEM9dC5wb3MsdC5wb3M9TCtJLGc9Qj0wO2I+PUI7Zz1CKz0xKXA9dC5yZWFkU2hvcnQoKSxrPXQucmVhZFNob3J0KCksZT10LnJlYWRCeXRlKCksbj10LnJlYWRCeXRlKCk8PDE2LG89dC5yZWFkQnl0ZSgpPDw4LGE9dC5yZWFkQnl0ZSgpLHU9aCsoMHxufG98YSksZj10LnJlYWRVSW50MzIoKSxsPXtpZDpwLGF0dHJpYnV0ZXM6ZSxvZmZzZXQ6dSxoYW5kbGU6Zn0sRT10LnBvcywtMSE9PWsmJncreT5TK2s/KHQucG9zPVMrayx2PXQucmVhZEJ5dGUoKSxsLm5hbWU9dC5yZWFkU3RyaW5nKHYpKToic2ZudCI9PT1BJiYodC5wb3M9bC5vZmZzZXQsbT10LnJlYWRVSW50MzIoKSxjPXt9LGMuY29udGVudHM9bmV3IHIodC5zbGljZSh0LnBvcyx0LnBvcyttKSksYy5kaXJlY3Rvcnk9bmV3IGkoYy5jb250ZW50cykseD1uZXcgTmFtZVRhYmxlKGMpLGwubmFtZT14LmZvbnROYW1lWzBdLnJhdyksdC5wb3M9RSx0aGlzLm1hcFtBXS5saXN0LnB1c2gobCksbC5uYW1lJiYodGhpcy5tYXBbQV0ubmFtZWRbbC5uYW1lXT1sKTt0LnBvcz1DfX0sdC5wcm90b3R5cGUuZ2V0TmFtZWRGb250PWZ1bmN0aW9uKHQpe3ZhciBlLG4scixpLG8sYTtpZihlPXRoaXMuY29udGVudHMsaT1lLnBvcyxuPW51bGwhPShhPXRoaXMubWFwLnNmbnQpP2EubmFtZWRbdF06dm9pZCAwLCFuKXRocm93IG5ldyBFcnJvcigiRm9udCAiK3QrIiBub3QgZm91bmQgaW4gREZvbnQgZmlsZS4iKTtyZXR1cm4gZS5wb3M9bi5vZmZzZXQscj1lLnJlYWRVSW50MzIoKSxvPWUuc2xpY2UoZS5wb3MsZS5wb3MrciksZS5wb3M9aSxvfSx0fSgpLHQuZXhwb3J0cz1lfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbihlKXsoZnVuY3Rpb24oKXt2YXIgcixpLG89W10uc2xpY2U7cj1uKDM0KSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZSxuLHIsaTtmb3IodGhpcy5zY2FsYXJUeXBlPXQucmVhZEludCgpLHRoaXMudGFibGVDb3VudD10LnJlYWRTaG9ydCgpLHRoaXMuc2VhcmNoUmFuZ2U9dC5yZWFkU2hvcnQoKSx0aGlzLmVudHJ5U2VsZWN0b3I9dC5yZWFkU2hvcnQoKSx0aGlzLnJhbmdlU2hpZnQ9dC5yZWFkU2hvcnQoKSx0aGlzLnRhYmxlcz17fSxuPXI9MCxpPXRoaXMudGFibGVDb3VudDtpPj0wP2k+cjpyPmk7bj1pPj0wPysrcjotLXIpZT17dGFnOnQucmVhZFN0cmluZyg0KSxjaGVja3N1bTp0LnJlYWRJbnQoKSxvZmZzZXQ6dC5yZWFkSW50KCksbGVuZ3RoOnQucmVhZEludCgpfSx0aGlzLnRhYmxlc1tlLnRhZ109ZX12YXIgbjtyZXR1cm4gdC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBpLG8sYSxzLGgsdSxsLGMsZixkLHAsZyx2LG07Zz1PYmplY3Qua2V5cyh0KS5sZW5ndGgsdT1NYXRoLmxvZygyKSxmPTE2Kk1hdGguZmxvb3IoTWF0aC5sb2coZykvdSkscz1NYXRoLmZsb29yKGYvdSksYz0xNipnLWYsbz1uZXcgcixvLndyaXRlSW50KHRoaXMuc2NhbGFyVHlwZSksby53cml0ZVNob3J0KGcpLG8ud3JpdGVTaG9ydChmKSxvLndyaXRlU2hvcnQocyksby53cml0ZVNob3J0KGMpLGE9MTYqZyxsPW8ucG9zK2EsaD1udWxsLHY9W107Zm9yKG0gaW4gdClmb3IocD10W21dLG8ud3JpdGVTdHJpbmcobSksby53cml0ZUludChuKHApKSxvLndyaXRlSW50KGwpLG8ud3JpdGVJbnQocC5sZW5ndGgpLHY9di5jb25jYXQocCksImhlYWQiPT09bSYmKGg9bCksbCs9cC5sZW5ndGg7bCU0Oyl2LnB1c2goMCksbCsrO3JldHVybiBvLndyaXRlKHYpLGQ9bihvLmRhdGEpLGk9Mjk4MTE0NjU1NC1kLG8ucG9zPWgrOCxvLndyaXRlVUludDMyKGkpLG5ldyBlKG8uZGF0YSl9LG49ZnVuY3Rpb24odCl7dmFyIGUsbixpLGEscztmb3IodD1vLmNhbGwodCk7dC5sZW5ndGglNDspdC5wdXNoKDApO2ZvcihpPW5ldyByKHQpLG49MCxlPWE9MCxzPXQubGVuZ3RoO3M+YTtlPWErPTQpbis9aS5yZWFkVUludDMyKCk7cmV0dXJuIDQyOTQ5NjcyOTUmbn0sdH0oKSx0LmV4cG9ydHM9aX0pLmNhbGwodGhpcyl9KS5jYWxsKGUsbig0KS5CdWZmZXIpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUscixOYW1lVGFibGUsaSxvLGE9e30uaGFzT3duUHJvcGVydHkscz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9Zm9yKHZhciByIGluIGUpYS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiBuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0Ll9fc3VwZXJfXz1lLnByb3RvdHlwZSx0fTtpPW4oOTkpLGU9bigzNCksbz1uKDg5KSxOYW1lVGFibGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gTmFtZVRhYmxlKCl7cmV0dXJuIE5hbWVUYWJsZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBuO3JldHVybiBzKE5hbWVUYWJsZSx0KSxOYW1lVGFibGUucHJvdG90eXBlLnRhZz0ibmFtZSIsTmFtZVRhYmxlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxuLGksbyxhLHMsaCx1LGwsYyxmLGQscDtmb3IodC5wb3M9dGhpcy5vZmZzZXQsbz10LnJlYWRTaG9ydCgpLGU9dC5yZWFkU2hvcnQoKSxoPXQucmVhZFNob3J0KCksbj1bXSxhPWM9MDtlPj0wP2U+YzpjPmU7YT1lPj0wPysrYzotLWMpbi5wdXNoKHtwbGF0Zm9ybUlEOnQucmVhZFNob3J0KCksZW5jb2RpbmdJRDp0LnJlYWRTaG9ydCgpLGxhbmd1YWdlSUQ6dC5yZWFkU2hvcnQoKSxuYW1lSUQ6dC5yZWFkU2hvcnQoKSxsZW5ndGg6dC5yZWFkU2hvcnQoKSxvZmZzZXQ6dGhpcy5vZmZzZXQraCt0LnJlYWRTaG9ydCgpfSk7Zm9yKHU9e30sYT1mPTAsZD1uLmxlbmd0aDtkPmY7YT0rK2YpaT1uW2FdLHQucG9zPWkub2Zmc2V0LGw9dC5yZWFkU3RyaW5nKGkubGVuZ3RoKSxzPW5ldyByKGwsaSksbnVsbD09dVtwPWkubmFtZUlEXSYmKHVbcF09W10pLHVbaS5uYW1lSURdLnB1c2gocyk7cmV0dXJuIHRoaXMuc3RyaW5ncz11LHRoaXMuY29weXJpZ2h0PXVbMF0sdGhpcy5mb250RmFtaWx5PXVbMV0sdGhpcy5mb250U3ViZmFtaWx5PXVbMl0sdGhpcy51bmlxdWVTdWJmYW1pbHk9dVszXSx0aGlzLmZvbnROYW1lPXVbNF0sdGhpcy52ZXJzaW9uPXVbNV0sdGhpcy5wb3N0c2NyaXB0TmFtZT11WzZdWzBdLnJhdy5yZXBsYWNlKC9bXHgwMC1ceDE5XHg4MC1ceGZmXS9nLCIiKSx0aGlzLnRyYWRlbWFyaz11WzddLHRoaXMubWFudWZhY3R1cmVyPXVbOF0sdGhpcy5kZXNpZ25lcj11WzldLHRoaXMuZGVzY3JpcHRpb249dVsxMF0sdGhpcy52ZW5kb3JVcmw9dVsxMV0sdGhpcy5kZXNpZ25lclVybD11WzEyXSx0aGlzLmxpY2Vuc2U9dVsxM10sdGhpcy5saWNlbnNlVXJsPXVbMTRdLHRoaXMucHJlZmVycmVkRmFtaWx5PXVbMTVdLHRoaXMucHJlZmVycmVkU3ViZmFtaWx5PXVbMTddLHRoaXMuY29tcGF0aWJsZUZ1bGw9dVsxOF0sdGhpcy5zYW1wbGVUZXh0PXVbMTldfSxuPSJBQUFBQUEiLE5hbWVUYWJsZS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKCl7dmFyIHQsaSxhLHMsaCx1LGwsYyxmLGQscCxnLHYsbTtmPXt9LG09dGhpcy5zdHJpbmdzO2Zvcih0IGluIG0pcD1tW3RdLGZbdF09cDtoPW5ldyByKCIiK24rIisiK3RoaXMucG9zdHNjcmlwdE5hbWUse3BsYXRmb3JtSUQ6MSxlbmNvZGluZ0lEOjAsbGFuZ3VhZ2VJRDowfSksZls2XT1baF0sbj1vLnN1Y2Nlc3Nvck9mKG4pLHU9MDtmb3IodCBpbiBmKWk9Zlt0XSxudWxsIT1pJiYodSs9aS5sZW5ndGgpO2Q9bmV3IGUsbD1uZXcgZSxkLndyaXRlU2hvcnQoMCksZC53cml0ZVNob3J0KHUpLGQud3JpdGVTaG9ydCg2KzEyKnUpO2ZvcihhIGluIGYpaWYoaT1mW2FdLG51bGwhPWkpZm9yKGc9MCx2PWkubGVuZ3RoO3Y+ZztnKyspYz1pW2ddLGQud3JpdGVTaG9ydChjLnBsYXRmb3JtSUQpLGQud3JpdGVTaG9ydChjLmVuY29kaW5nSUQpLGQud3JpdGVTaG9ydChjLmxhbmd1YWdlSUQpLGQud3JpdGVTaG9ydChhKSxkLndyaXRlU2hvcnQoYy5sZW5ndGgpLGQud3JpdGVTaG9ydChsLnBvcyksbC53cml0ZVN0cmluZyhjLnJhdyk7cmV0dXJuIHM9e3Bvc3RzY3JpcHROYW1lOmgucmF3LHRhYmxlOmQuZGF0YS5jb25jYXQobC5kYXRhKX19LE5hbWVUYWJsZX0oaSksdC5leHBvcnRzPU5hbWVUYWJsZSxyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUpe3RoaXMucmF3PXQsdGhpcy5sZW5ndGg9dGhpcy5yYXcubGVuZ3RoLHRoaXMucGxhdGZvcm1JRD1lLnBsYXRmb3JtSUQsdGhpcy5lbmNvZGluZ0lEPWUuZW5jb2RpbmdJRCx0aGlzLmxhbmd1YWdlSUQ9ZS5sYW5ndWFnZUlEfXJldHVybiB0fSgpfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLEhlYWRUYWJsZSxyLGk9e30uaGFzT3duUHJvcGVydHksbz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9Zm9yKHZhciByIGluIGUpaS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiBuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0Ll9fc3VwZXJfXz1lLnByb3RvdHlwZSx0fTtyPW4oOTkpLGU9bigzNCksSGVhZFRhYmxlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIEhlYWRUYWJsZSgpe3JldHVybiBIZWFkVGFibGUuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gbyhIZWFkVGFibGUsdCksSGVhZFRhYmxlLnByb3RvdHlwZS50YWc9ImhlYWQiLEhlYWRUYWJsZS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQucG9zPXRoaXMub2Zmc2V0LHRoaXMudmVyc2lvbj10LnJlYWRJbnQoKSx0aGlzLnJldmlzaW9uPXQucmVhZEludCgpLHRoaXMuY2hlY2tTdW1BZGp1c3RtZW50PXQucmVhZEludCgpLHRoaXMubWFnaWNOdW1iZXI9dC5yZWFkSW50KCksdGhpcy5mbGFncz10LnJlYWRTaG9ydCgpLHRoaXMudW5pdHNQZXJFbT10LnJlYWRTaG9ydCgpLHRoaXMuY3JlYXRlZD10LnJlYWRMb25nTG9uZygpLHRoaXMubW9kaWZpZWQ9dC5yZWFkTG9uZ0xvbmcoKSx0aGlzLnhNaW49dC5yZWFkU2hvcnQoKSx0aGlzLnlNaW49dC5yZWFkU2hvcnQoKSx0aGlzLnhNYXg9dC5yZWFkU2hvcnQoKSx0aGlzLnlNYXg9dC5yZWFkU2hvcnQoKSx0aGlzLm1hY1N0eWxlPXQucmVhZFNob3J0KCksdGhpcy5sb3dlc3RSZWNQUEVNPXQucmVhZFNob3J0KCksdGhpcy5mb250RGlyZWN0aW9uSGludD10LnJlYWRTaG9ydCgpLHRoaXMuaW5kZXhUb0xvY0Zvcm1hdD10LnJlYWRTaG9ydCgpLHRoaXMuZ2x5cGhEYXRhRm9ybWF0PXQucmVhZFNob3J0KCl9LEhlYWRUYWJsZS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBuO3JldHVybiBuPW5ldyBlLG4ud3JpdGVJbnQodGhpcy52ZXJzaW9uKSxuLndyaXRlSW50KHRoaXMucmV2aXNpb24pLG4ud3JpdGVJbnQodGhpcy5jaGVja1N1bUFkanVzdG1lbnQpLG4ud3JpdGVJbnQodGhpcy5tYWdpY051bWJlciksbi53cml0ZVNob3J0KHRoaXMuZmxhZ3MpLG4ud3JpdGVTaG9ydCh0aGlzLnVuaXRzUGVyRW0pLG4ud3JpdGVMb25nTG9uZyh0aGlzLmNyZWF0ZWQpLG4ud3JpdGVMb25nTG9uZyh0aGlzLm1vZGlmaWVkKSxuLndyaXRlU2hvcnQodGhpcy54TWluKSxuLndyaXRlU2hvcnQodGhpcy55TWluKSxuLndyaXRlU2hvcnQodGhpcy54TWF4KSxuLndyaXRlU2hvcnQodGhpcy55TWF4KSxuLndyaXRlU2hvcnQodGhpcy5tYWNTdHlsZSksbi53cml0ZVNob3J0KHRoaXMubG93ZXN0UmVjUFBFTSksbi53cml0ZVNob3J0KHRoaXMuZm9udERpcmVjdGlvbkhpbnQpLG4ud3JpdGVTaG9ydCh0LnR5cGUpLG4ud3JpdGVTaG9ydCh0aGlzLmdseXBoRGF0YUZvcm1hdCksbi5kYXRhfSxIZWFkVGFibGV9KHIpLHQuZXhwb3J0cz1IZWFkVGFibGV9KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUsQ21hcFRhYmxlLHIsaSxvPXt9Lmhhc093blByb3BlcnR5LGE9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWZvcih2YXIgciBpbiBlKW8uY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IG4sdC5fX3N1cGVyX189ZS5wcm90b3R5cGUsdH07aT1uKDk5KSxyPW4oMzQpLENtYXBUYWJsZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBDbWFwVGFibGUoKXtyZXR1cm4gQ21hcFRhYmxlLl9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGEoQ21hcFRhYmxlLHQpLENtYXBUYWJsZS5wcm90b3R5cGUudGFnPSJjbWFwIixDbWFwVGFibGUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3ZhciBuLHIsaSxvO2Zvcih0LnBvcz10aGlzLm9mZnNldCx0aGlzLnZlcnNpb249dC5yZWFkVUludDE2KCksaT10LnJlYWRVSW50MTYoKSx0aGlzLnRhYmxlcz1bXSx0aGlzLnVuaWNvZGU9bnVsbCxyPW89MDtpPj0wP2k+bzpvPmk7cj1pPj0wPysrbzotLW8pbj1uZXcgZSh0LHRoaXMub2Zmc2V0KSx0aGlzLnRhYmxlcy5wdXNoKG4pLG4uaXNVbmljb2RlJiZudWxsPT10aGlzLnVuaWNvZGUmJih0aGlzLnVuaWNvZGU9bik7cmV0dXJuITB9LENtYXBUYWJsZS5lbmNvZGU9ZnVuY3Rpb24odCxuKXt2YXIgaSxvO3JldHVybiBudWxsPT1uJiYobj0ibWFjcm9tYW4iKSxpPWUuZW5jb2RlKHQsbiksbz1uZXcgcixvLndyaXRlVUludDE2KDApLG8ud3JpdGVVSW50MTYoMSksaS50YWJsZT1vLmRhdGEuY29uY2F0KGkuc3VidGFibGUpLGl9LENtYXBUYWJsZX0oaSksZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCxlKXt2YXIgbixyLGksbyxhLHMsaCx1LGwsYyxmLGQscCxnLHYsbSx5LHcsXztzd2l0Y2godGhpcy5wbGF0Zm9ybUlEPXQucmVhZFVJbnQxNigpLHRoaXMuZW5jb2RpbmdJRD10LnJlYWRTaG9ydCgpLHRoaXMub2Zmc2V0PWUrdC5yZWFkSW50KCksYz10LnBvcyx0LnBvcz10aGlzLm9mZnNldCx0aGlzLmZvcm1hdD10LnJlYWRVSW50MTYoKSx0aGlzLmxlbmd0aD10LnJlYWRVSW50MTYoKSx0aGlzLmxhbmd1YWdlPXQucmVhZFVJbnQxNigpLHRoaXMuaXNVbmljb2RlPTM9PT10aGlzLnBsYXRmb3JtSUQmJjE9PT10aGlzLmVuY29kaW5nSUQmJjQ9PT10aGlzLmZvcm1hdHx8MD09PXRoaXMucGxhdGZvcm1JRCYmND09PXRoaXMuZm9ybWF0LHRoaXMuY29kZU1hcD17fSx0aGlzLmZvcm1hdCl7Y2FzZSAwOmZvcihzPW09MDsyNTY+bTtzPSsrbSl0aGlzLmNvZGVNYXBbc109dC5yZWFkQnl0ZSgpO2JyZWFrO2Nhc2UgNDpmb3IoZD10LnJlYWRVSW50MTYoKSxmPWQvMix0LnBvcys9NixpPWZ1bmN0aW9uKCl7dmFyIGUsbjtmb3Iobj1bXSxzPWU9MDtmPj0wP2Y+ZTplPmY7cz1mPj0wPysrZTotLWUpbi5wdXNoKHQucmVhZFVJbnQxNigpKTtyZXR1cm4gbn0oKSx0LnBvcys9MixnPWZ1bmN0aW9uKCl7dmFyIGUsbjtmb3Iobj1bXSxzPWU9MDtmPj0wP2Y+ZTplPmY7cz1mPj0wPysrZTotLWUpbi5wdXNoKHQucmVhZFVJbnQxNigpKTtyZXR1cm4gbn0oKSxoPWZ1bmN0aW9uKCl7dmFyIGUsbjtmb3Iobj1bXSxzPWU9MDtmPj0wP2Y+ZTplPmY7cz1mPj0wPysrZTotLWUpbi5wdXNoKHQucmVhZFVJbnQxNigpKTtyZXR1cm4gbn0oKSx1PWZ1bmN0aW9uKCl7dmFyIGUsbjtmb3Iobj1bXSxzPWU9MDtmPj0wP2Y+ZTplPmY7cz1mPj0wPysrZTotLWUpbi5wdXNoKHQucmVhZFVJbnQxNigpKTtyZXR1cm4gbn0oKSxyPSh0aGlzLmxlbmd0aC10LnBvcyt0aGlzLm9mZnNldCkvMixhPWZ1bmN0aW9uKCl7dmFyIGUsbjtmb3Iobj1bXSxzPWU9MDtyPj0wP3I+ZTplPnI7cz1yPj0wPysrZTotLWUpbi5wdXNoKHQucmVhZFVJbnQxNigpKTtyZXR1cm4gbn0oKSxzPXk9MCxfPWkubGVuZ3RoO18+eTtzPSsreSlmb3Iodj1pW3NdLHA9Z1tzXSxuPXc9cDt2Pj1wP3Y+PXc6dz49djtuPXY+PXA/Kyt3Oi0tdykwPT09dVtzXT9vPW4raFtzXToobD11W3NdLzIrKG4tcCktKGYtcyksbz1hW2xdfHwwLDAhPT1vJiYobys9aFtzXSkpLHRoaXMuY29kZU1hcFtuXT02NTUzNSZvfXQucG9zPWN9cmV0dXJuIHQuZW5jb2RlPWZ1bmN0aW9uKHQsZSl7dmFyIG4saSxvLGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdyxfLGIseCxTLGssRSxDLEksQSxMLFIsQixULE0sTyxELFUsUCxGLHosVyxOLGosSCxaLEcscSxZLEssWDtzd2l0Y2goQj1uZXcgcixhPU9iamVjdC5rZXlzKHQpLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSksZSl7Y2FzZSJtYWNyb21hbiI6Zm9yKGc9MCx2PWZ1bmN0aW9uKCl7dmFyIHQsZTtmb3IoZT1bXSxwPXQ9MDsyNTY+dDtwPSsrdCllLnB1c2goMCk7cmV0dXJuIGV9KCkseT17MDowfSxvPXt9LFQ9MCxVPWEubGVuZ3RoO1U+VDtUKyspaT1hW1RdLG51bGw9PXlbcT10W2ldXSYmKHlbcV09KytnKSxvW2ldPXtvbGQ6dFtpXSwibmV3Ijp5W3RbaV1dfSx2W2ldPXlbdFtpXV07cmV0dXJuIEIud3JpdGVVSW50MTYoMSksQi53cml0ZVVJbnQxNigwKSxCLndyaXRlVUludDMyKDEyKSxCLndyaXRlVUludDE2KDApLApCLndyaXRlVUludDE2KDI2MiksQi53cml0ZVVJbnQxNigwKSxCLndyaXRlKHYpLGs9e2NoYXJNYXA6byxzdWJ0YWJsZTpCLmRhdGEsbWF4R2x5cGhJRDpnKzF9O2Nhc2UidW5pY29kZSI6Zm9yKEw9W10sYz1bXSx3PTAseT17fSxuPXt9LG09dT1udWxsLE09MCxQPWEubGVuZ3RoO1A+TTtNKyspaT1hW01dLGI9dFtpXSxudWxsPT15W2JdJiYoeVtiXT0rK3cpLG5baV09e29sZDpiLCJuZXciOnlbYl19LHM9eVtiXS1pLChudWxsPT1tfHxzIT09dSkmJihtJiZjLnB1c2gobSksTC5wdXNoKGkpLHU9cyksbT1pO2ZvcihtJiZjLnB1c2gobSksYy5wdXNoKDY1NTM1KSxMLnB1c2goNjU1MzUpLEM9TC5sZW5ndGgsST0yKkMsRT0yKk1hdGgucG93KE1hdGgubG9nKEMpL01hdGguTE4yLDIpLGY9TWF0aC5sb2coRS8yKS9NYXRoLkxOMixTPTIqQy1FLGg9W10seD1bXSxkPVtdLHA9Tz0wLEY9TC5sZW5ndGg7Rj5PO3A9KytPKXtpZihBPUxbcF0sbD1jW3BdLDY1NTM1PT09QSl7aC5wdXNoKDApLHgucHVzaCgwKTticmVha31pZihSPW5bQV1bIm5ldyJdLEEtUj49MzI3NjgpZm9yKGgucHVzaCgwKSx4LnB1c2goMiooZC5sZW5ndGgrQy1wKSksaT1EPUE7bD49QT9sPj1EOkQ+PWw7aT1sPj1BPysrRDotLUQpZC5wdXNoKG5baV1bIm5ldyJdKTtlbHNlIGgucHVzaChSLUEpLHgucHVzaCgwKX1mb3IoQi53cml0ZVVJbnQxNigzKSxCLndyaXRlVUludDE2KDEpLEIud3JpdGVVSW50MzIoMTIpLEIud3JpdGVVSW50MTYoNCksQi53cml0ZVVJbnQxNigxNis4KkMrMipkLmxlbmd0aCksQi53cml0ZVVJbnQxNigwKSxCLndyaXRlVUludDE2KEkpLEIud3JpdGVVSW50MTYoRSksQi53cml0ZVVJbnQxNihmKSxCLndyaXRlVUludDE2KFMpLFo9MCx6PWMubGVuZ3RoO3o+WjtaKyspaT1jW1pdLEIud3JpdGVVSW50MTYoaSk7Zm9yKEIud3JpdGVVSW50MTYoMCksRz0wLFc9TC5sZW5ndGg7Vz5HO0crKylpPUxbR10sQi53cml0ZVVJbnQxNihpKTtmb3IoWT0wLE49aC5sZW5ndGg7Tj5ZO1krKylzPWhbWV0sQi53cml0ZVVJbnQxNihzKTtmb3IoSz0wLGo9eC5sZW5ndGg7aj5LO0srKylfPXhbS10sQi53cml0ZVVJbnQxNihfKTtmb3IoWD0wLEg9ZC5sZW5ndGg7SD5YO1grKylnPWRbWF0sQi53cml0ZVVJbnQxNihnKTtyZXR1cm4gaz17Y2hhck1hcDpuLHN1YnRhYmxlOkIuZGF0YSxtYXhHbHlwaElEOncrMX19fSx0fSgpLHQuZXhwb3J0cz1DbWFwVGFibGV9KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUsSG10eFRhYmxlLHIsaT17fS5oYXNPd25Qcm9wZXJ0eSxvPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1mb3IodmFyIHIgaW4gZSlpLmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIG4ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQuX19zdXBlcl9fPWUucHJvdG90eXBlLHR9O3I9big5OSksZT1uKDM0KSxIbXR4VGFibGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gSG10eFRhYmxlKCl7cmV0dXJuIEhtdHhUYWJsZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBvKEhtdHhUYWJsZSx0KSxIbXR4VGFibGUucHJvdG90eXBlLnRhZz0iaG10eCIsSG10eFRhYmxlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyxoO2Zvcih0LnBvcz10aGlzLm9mZnNldCx0aGlzLm1ldHJpY3M9W10sZT1vPTAscz10aGlzLmZpbGUuaGhlYS5udW1iZXJPZk1ldHJpY3M7cz49MD9zPm86bz5zO2U9cz49MD8rK286LS1vKXRoaXMubWV0cmljcy5wdXNoKHthZHZhbmNlOnQucmVhZFVJbnQxNigpLGxzYjp0LnJlYWRJbnQxNigpfSk7Zm9yKHI9dGhpcy5maWxlLm1heHAubnVtR2x5cGhzLXRoaXMuZmlsZS5oaGVhLm51bWJlck9mTWV0cmljcyx0aGlzLmxlZnRTaWRlQmVhcmluZ3M9ZnVuY3Rpb24oKXt2YXIgbixpO2ZvcihpPVtdLGU9bj0wO3I+PTA/cj5uOm4+cjtlPXI+PTA/KytuOi0tbilpLnB1c2godC5yZWFkSW50MTYoKSk7cmV0dXJuIGl9KCksdGhpcy53aWR0aHM9ZnVuY3Rpb24oKXt2YXIgdCxlLG4scjtmb3Iobj10aGlzLm1ldHJpY3Mscj1bXSx0PTAsZT1uLmxlbmd0aDtlPnQ7dCsrKWk9blt0XSxyLnB1c2goaS5hZHZhbmNlKTtyZXR1cm4gcn0uY2FsbCh0aGlzKSxuPXRoaXMud2lkdGhzW3RoaXMud2lkdGhzLmxlbmd0aC0xXSxoPVtdLGU9YT0wO3I+PTA/cj5hOmE+cjtlPXI+PTA/KythOi0tYSloLnB1c2godGhpcy53aWR0aHMucHVzaChuKSk7cmV0dXJuIGh9LEhtdHhUYWJsZS5wcm90b3R5cGUuZm9yR2x5cGg9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHQgaW4gdGhpcy5tZXRyaWNzP3RoaXMubWV0cmljc1t0XTplPXthZHZhbmNlOnRoaXMubWV0cmljc1t0aGlzLm1ldHJpY3MubGVuZ3RoLTFdLmFkdmFuY2UsbHNiOnRoaXMubGVmdFNpZGVCZWFyaW5nc1t0LXRoaXMubWV0cmljcy5sZW5ndGhdfX0sSG10eFRhYmxlLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7dmFyIG4scixpLG8sYTtmb3IoaT1uZXcgZSxvPTAsYT10Lmxlbmd0aDthPm87bysrKW49dFtvXSxyPXRoaXMuZm9yR2x5cGgobiksaS53cml0ZVVJbnQxNihyLmFkdmFuY2UpLGkud3JpdGVVSW50MTYoci5sc2IpO3JldHVybiBpLmRhdGF9LEhtdHhUYWJsZX0ociksdC5leHBvcnRzPUhtdHhUYWJsZX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgZSxIaGVhVGFibGUscixpPXt9Lmhhc093blByb3BlcnR5LG89ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWZvcih2YXIgciBpbiBlKWkuY2FsbChlLHIpJiYodFtyXT1lW3JdKTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IG4sdC5fX3N1cGVyX189ZS5wcm90b3R5cGUsdH07cj1uKDk5KSxlPW4oMzQpLEhoZWFUYWJsZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBIaGVhVGFibGUoKXtyZXR1cm4gSGhlYVRhYmxlLl9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG8oSGhlYVRhYmxlLHQpLEhoZWFUYWJsZS5wcm90b3R5cGUudGFnPSJoaGVhIixIaGVhVGFibGUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnBvcz10aGlzLm9mZnNldCx0aGlzLnZlcnNpb249dC5yZWFkSW50KCksdGhpcy5hc2NlbmRlcj10LnJlYWRTaG9ydCgpLHRoaXMuZGVjZW5kZXI9dC5yZWFkU2hvcnQoKSx0aGlzLmxpbmVHYXA9dC5yZWFkU2hvcnQoKSx0aGlzLmFkdmFuY2VXaWR0aE1heD10LnJlYWRTaG9ydCgpLHRoaXMubWluTGVmdFNpZGVCZWFyaW5nPXQucmVhZFNob3J0KCksdGhpcy5taW5SaWdodFNpZGVCZWFyaW5nPXQucmVhZFNob3J0KCksdGhpcy54TWF4RXh0ZW50PXQucmVhZFNob3J0KCksdGhpcy5jYXJldFNsb3BlUmlzZT10LnJlYWRTaG9ydCgpLHRoaXMuY2FyZXRTbG9wZVJ1bj10LnJlYWRTaG9ydCgpLHRoaXMuY2FyZXRPZmZzZXQ9dC5yZWFkU2hvcnQoKSx0LnBvcys9OCx0aGlzLm1ldHJpY0RhdGFGb3JtYXQ9dC5yZWFkU2hvcnQoKSx0aGlzLm51bWJlck9mTWV0cmljcz10LnJlYWRVSW50MTYoKX0sSGhlYVRhYmxlLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7dmFyIG4scixpLG87Zm9yKHI9bmV3IGUsci53cml0ZUludCh0aGlzLnZlcnNpb24pLHIud3JpdGVTaG9ydCh0aGlzLmFzY2VuZGVyKSxyLndyaXRlU2hvcnQodGhpcy5kZWNlbmRlciksci53cml0ZVNob3J0KHRoaXMubGluZUdhcCksci53cml0ZVNob3J0KHRoaXMuYWR2YW5jZVdpZHRoTWF4KSxyLndyaXRlU2hvcnQodGhpcy5taW5MZWZ0U2lkZUJlYXJpbmcpLHIud3JpdGVTaG9ydCh0aGlzLm1pblJpZ2h0U2lkZUJlYXJpbmcpLHIud3JpdGVTaG9ydCh0aGlzLnhNYXhFeHRlbnQpLHIud3JpdGVTaG9ydCh0aGlzLmNhcmV0U2xvcGVSaXNlKSxyLndyaXRlU2hvcnQodGhpcy5jYXJldFNsb3BlUnVuKSxyLndyaXRlU2hvcnQodGhpcy5jYXJldE9mZnNldCksbj1pPTAsbz04O28+PTA/bz5pOmk+bztuPW8+PTA/KytpOi0taSlyLndyaXRlQnl0ZSgwKTtyZXR1cm4gci53cml0ZVNob3J0KHRoaXMubWV0cmljRGF0YUZvcm1hdCksci53cml0ZVVJbnQxNih0Lmxlbmd0aCksci5kYXRhfSxIaGVhVGFibGV9KHIpLHQuZXhwb3J0cz1IaGVhVGFibGV9KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUsTWF4cFRhYmxlLHIsaT17fS5oYXNPd25Qcm9wZXJ0eSxvPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1mb3IodmFyIHIgaW4gZSlpLmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIG4ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQuX19zdXBlcl9fPWUucHJvdG90eXBlLHR9O3I9big5OSksZT1uKDM0KSxNYXhwVGFibGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gTWF4cFRhYmxlKCl7cmV0dXJuIE1heHBUYWJsZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBvKE1heHBUYWJsZSx0KSxNYXhwVGFibGUucHJvdG90eXBlLnRhZz0ibWF4cCIsTWF4cFRhYmxlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5wb3M9dGhpcy5vZmZzZXQsdGhpcy52ZXJzaW9uPXQucmVhZEludCgpLHRoaXMubnVtR2x5cGhzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4UG9pbnRzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4Q29udG91cnM9dC5yZWFkVUludDE2KCksdGhpcy5tYXhDb21wb3NpdGVQb2ludHM9dC5yZWFkVUludDE2KCksdGhpcy5tYXhDb21wb25lbnRDb250b3Vycz10LnJlYWRVSW50MTYoKSx0aGlzLm1heFpvbmVzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4VHdpbGlnaHRQb2ludHM9dC5yZWFkVUludDE2KCksdGhpcy5tYXhTdG9yYWdlPXQucmVhZFVJbnQxNigpLHRoaXMubWF4RnVuY3Rpb25EZWZzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4SW5zdHJ1Y3Rpb25EZWZzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4U3RhY2tFbGVtZW50cz10LnJlYWRVSW50MTYoKSx0aGlzLm1heFNpemVPZkluc3RydWN0aW9ucz10LnJlYWRVSW50MTYoKSx0aGlzLm1heENvbXBvbmVudEVsZW1lbnRzPXQucmVhZFVJbnQxNigpLHRoaXMubWF4Q29tcG9uZW50RGVwdGg9dC5yZWFkVUludDE2KCl9LE1heHBUYWJsZS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBuO3JldHVybiBuPW5ldyBlLG4ud3JpdGVJbnQodGhpcy52ZXJzaW9uKSxuLndyaXRlVUludDE2KHQubGVuZ3RoKSxuLndyaXRlVUludDE2KHRoaXMubWF4UG9pbnRzKSxuLndyaXRlVUludDE2KHRoaXMubWF4Q29udG91cnMpLG4ud3JpdGVVSW50MTYodGhpcy5tYXhDb21wb3NpdGVQb2ludHMpLG4ud3JpdGVVSW50MTYodGhpcy5tYXhDb21wb25lbnRDb250b3Vycyksbi53cml0ZVVJbnQxNih0aGlzLm1heFpvbmVzKSxuLndyaXRlVUludDE2KHRoaXMubWF4VHdpbGlnaHRQb2ludHMpLG4ud3JpdGVVSW50MTYodGhpcy5tYXhTdG9yYWdlKSxuLndyaXRlVUludDE2KHRoaXMubWF4RnVuY3Rpb25EZWZzKSxuLndyaXRlVUludDE2KHRoaXMubWF4SW5zdHJ1Y3Rpb25EZWZzKSxuLndyaXRlVUludDE2KHRoaXMubWF4U3RhY2tFbGVtZW50cyksbi53cml0ZVVJbnQxNih0aGlzLm1heFNpemVPZkluc3RydWN0aW9ucyksbi53cml0ZVVJbnQxNih0aGlzLm1heENvbXBvbmVudEVsZW1lbnRzKSxuLndyaXRlVUludDE2KHRoaXMubWF4Q29tcG9uZW50RGVwdGgpLG4uZGF0YX0sTWF4cFRhYmxlfShyKSx0LmV4cG9ydHM9TWF4cFRhYmxlfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlLFBvc3RUYWJsZSxyLGk9e30uaGFzT3duUHJvcGVydHksbz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIG4oKXt0aGlzLmNvbnN0cnVjdG9yPXR9Zm9yKHZhciByIGluIGUpaS5jYWxsKGUscikmJih0W3JdPWVbcl0pO3JldHVybiBuLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgbix0Ll9fc3VwZXJfXz1lLnByb3RvdHlwZSx0fTtyPW4oOTkpLGU9bigzNCksUG9zdFRhYmxlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIFBvc3RUYWJsZSgpe3JldHVybiBQb3N0VGFibGUuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX12YXIgbjtyZXR1cm4gbyhQb3N0VGFibGUsdCksUG9zdFRhYmxlLnByb3RvdHlwZS50YWc9InBvc3QiLFBvc3RUYWJsZS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbztzd2l0Y2godC5wb3M9dGhpcy5vZmZzZXQsdGhpcy5mb3JtYXQ9dC5yZWFkSW50KCksdGhpcy5pdGFsaWNBbmdsZT10LnJlYWRJbnQoKSx0aGlzLnVuZGVybGluZVBvc2l0aW9uPXQucmVhZFNob3J0KCksdGhpcy51bmRlcmxpbmVUaGlja25lc3M9dC5yZWFkU2hvcnQoKSx0aGlzLmlzRml4ZWRQaXRjaD10LnJlYWRJbnQoKSx0aGlzLm1pbk1lbVR5cGU0Mj10LnJlYWRJbnQoKSx0aGlzLm1heE1lbVR5cGU0Mj10LnJlYWRJbnQoKSx0aGlzLm1pbk1lbVR5cGUxPXQucmVhZEludCgpLHRoaXMubWF4TWVtVHlwZTE9dC5yZWFkSW50KCksdGhpcy5mb3JtYXQpe2Nhc2UgNjU1MzY6YnJlYWs7Y2FzZSAxMzEwNzI6Zm9yKHI9dC5yZWFkVUludDE2KCksdGhpcy5nbHlwaE5hbWVJbmRleD1bXSxlPWk9MDtyPj0wP3I+aTppPnI7ZT1yPj0wPysraTotLWkpdGhpcy5nbHlwaE5hbWVJbmRleC5wdXNoKHQucmVhZFVJbnQxNigpKTtmb3IodGhpcy5uYW1lcz1bXSxvPVtdO3QucG9zPHRoaXMub2Zmc2V0K3RoaXMubGVuZ3RoOyluPXQucmVhZEJ5dGUoKSxvLnB1c2godGhpcy5uYW1lcy5wdXNoKHQucmVhZFN0cmluZyhuKSkpO3JldHVybiBvO2Nhc2UgMTUxNTUyOnJldHVybiByPXQucmVhZFVJbnQxNigpLHRoaXMub2Zmc2V0cz10LnJlYWQocik7Y2FzZSAxOTY2MDg6YnJlYWs7Y2FzZSAyNjIxNDQ6cmV0dXJuIHRoaXMubWFwPWZ1bmN0aW9uKCl7dmFyIG4scixpO2ZvcihpPVtdLGU9bj0wLHI9dGhpcy5maWxlLm1heHAubnVtR2x5cGhzO3I+PTA/cj5uOm4+cjtlPXI+PTA/KytuOi0tbilpLnB1c2godC5yZWFkVUludDMyKCkpO3JldHVybiBpfS5jYWxsKHRoaXMpfX0sUG9zdFRhYmxlLnByb3RvdHlwZS5nbHlwaEZvcj1mdW5jdGlvbih0KXt2YXIgZTtzd2l0Y2godGhpcy5mb3JtYXQpe2Nhc2UgNjU1MzY6cmV0dXJuIG5bdF18fCIubm90ZGVmIjtjYXNlIDEzMTA3MjpyZXR1cm4gZT10aGlzLmdseXBoTmFtZUluZGV4W3RdLDI1Nz49ZT9uW2VdOnRoaXMubmFtZXNbZS0yNThdfHwiLm5vdGRlZiI7Y2FzZSAxNTE1NTI6cmV0dXJuIG5bdCt0aGlzLm9mZnNldHNbdF1dfHwiLm5vdGRlZiI7Y2FzZSAxOTY2MDg6cmV0dXJuIi5ub3RkZWYiO2Nhc2UgMjYyMTQ0OnJldHVybiB0aGlzLm1hcFt0XXx8NjU1MzV9fSxQb3N0VGFibGUucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0KXt2YXIgcixpLG8sYSxzLGgsdSxsLGMsZixkLHAsZyx2LG07aWYoIXRoaXMuZXhpc3RzKXJldHVybiBudWxsO2lmKGg9dGhpcy5yYXcoKSwxOTY2MDg9PT10aGlzLmZvcm1hdClyZXR1cm4gaDtmb3IoYz1uZXcgZShoLnNsaWNlKDAsMzIpKSxjLndyaXRlVUludDMyKDEzMTA3MiksYy5wb3M9MzIsbz1bXSxsPVtdLGY9MCxnPXQubGVuZ3RoO2c+ZjtmKyspcj10W2ZdLHM9dGhpcy5nbHlwaEZvcihyKSxhPW4uaW5kZXhPZihzKSwtMSE9PWE/by5wdXNoKGEpOihvLnB1c2goMjU3K2wubGVuZ3RoKSxsLnB1c2gocykpO2ZvcihjLndyaXRlVUludDE2KE9iamVjdC5rZXlzKHQpLmxlbmd0aCksZD0wLHY9by5sZW5ndGg7dj5kO2QrKylpPW9bZF0sYy53cml0ZVVJbnQxNihpKTtmb3IocD0wLG09bC5sZW5ndGg7bT5wO3ArKyl1PWxbcF0sYy53cml0ZUJ5dGUodS5sZW5ndGgpLGMud3JpdGVTdHJpbmcodSk7cmV0dXJuIGMuZGF0YX0sbj0iLm5vdGRlZiAubnVsbCBub25tYXJraW5ncmV0dXJuIHNwYWNlIGV4Y2xhbSBxdW90ZWRibCBudW1iZXJzaWduIGRvbGxhciBwZXJjZW50XG5hbXBlcnNhbmQgcXVvdGVzaW5nbGUgcGFyZW5sZWZ0IHBhcmVucmlnaHQgYXN0ZXJpc2sgcGx1cyBjb21tYSBoeXBoZW4gcGVyaW9kIHNsYXNoXG56ZXJvIG9uZSB0d28gdGhyZWUgZm91ciBmaXZlIHNpeCBzZXZlbiBlaWdodCBuaW5lIGNvbG9uIHNlbWljb2xvbiBsZXNzIGVxdWFsIGdyZWF0ZXJcbnF1ZXN0aW9uIGF0IEEgQiBDIEQgRSBGIEcgSCBJIEogSyBMIE0gTiBPIFAgUSBSIFMgVCBVIFYgVyBYIFkgWlxuYnJhY2tldGxlZnQgYmFja3NsYXNoIGJyYWNrZXRyaWdodCBhc2NpaWNpcmN1bSB1bmRlcnNjb3JlIGdyYXZlXG5hIGIgYyBkIGUgZiBnIGggaSBqIGsgbCBtIG4gbyBwIHEgciBzIHQgdSB2IHcgeCB5IHpcbmJyYWNlbGVmdCBiYXIgYnJhY2VyaWdodCBhc2NpaXRpbGRlIEFkaWVyZXNpcyBBcmluZyBDY2VkaWxsYSBFYWN1dGUgTnRpbGRlIE9kaWVyZXNpc1xuVWRpZXJlc2lzIGFhY3V0ZSBhZ3JhdmUgYWNpcmN1bWZsZXggYWRpZXJlc2lzIGF0aWxkZSBhcmluZyBjY2VkaWxsYSBlYWN1dGUgZWdyYXZlXG5lY2lyY3VtZmxleCBlZGllcmVzaXMgaWFjdXRlIGlncmF2ZSBpY2lyY3VtZmxleCBpZGllcmVzaXMgbnRpbGRlIG9hY3V0ZSBvZ3JhdmVcbm9jaXJjdW1mbGV4IG9kaWVyZXNpcyBvdGlsZGUgdWFjdXRlIHVncmF2ZSB1Y2lyY3VtZmxleCB1ZGllcmVzaXMgZGFnZ2VyIGRlZ3JlZSBjZW50XG5zdGVybGluZyBzZWN0aW9uIGJ1bGxldCBwYXJhZ3JhcGggZ2VybWFuZGJscyByZWdpc3RlcmVkIGNvcHlyaWdodCB0cmFkZW1hcmsgYWN1dGVcbmRpZXJlc2lzIG5vdGVxdWFsIEFFIE9zbGFzaCBpbmZpbml0eSBwbHVzbWludXMgbGVzc2VxdWFsIGdyZWF0ZXJlcXVhbCB5ZW4gbXVcbnBhcnRpYWxkaWZmIHN1bW1hdGlvbiBwcm9kdWN0IHBpIGludGVncmFsIG9yZGZlbWluaW5lIG9yZG1hc2N1bGluZSBPbWVnYSBhZSBvc2xhc2hcbnF1ZXN0aW9uZG93biBleGNsYW1kb3duIGxvZ2ljYWxub3QgcmFkaWNhbCBmbG9yaW4gYXBwcm94ZXF1YWwgRGVsdGEgZ3VpbGxlbW90bGVmdFxuZ3VpbGxlbW90cmlnaHQgZWxsaXBzaXMgbm9uYnJlYWtpbmdzcGFjZSBBZ3JhdmUgQXRpbGRlIE90aWxkZSBPRSBvZSBlbmRhc2ggZW1kYXNoXG5xdW90ZWRibGxlZnQgcXVvdGVkYmxyaWdodCBxdW90ZWxlZnQgcXVvdGVyaWdodCBkaXZpZGUgbG96ZW5nZSB5ZGllcmVzaXMgWWRpZXJlc2lzXG5mcmFjdGlvbiBjdXJyZW5jeSBndWlsc2luZ2xsZWZ0IGd1aWxzaW5nbHJpZ2h0IGZpIGZsIGRhZ2dlcmRibCBwZXJpb2RjZW50ZXJlZFxucXVvdGVzaW5nbGJhc2UgcXVvdGVkYmxiYXNlIHBlcnRob3VzYW5kIEFjaXJjdW1mbGV4IEVjaXJjdW1mbGV4IEFhY3V0ZSBFZGllcmVzaXNcbkVncmF2ZSBJYWN1dGUgSWNpcmN1bWZsZXggSWRpZXJlc2lzIElncmF2ZSBPYWN1dGUgT2NpcmN1bWZsZXggYXBwbGUgT2dyYXZlIFVhY3V0ZVxuVWNpcmN1bWZsZXggVWdyYXZlIGRvdGxlc3NpIGNpcmN1bWZsZXggdGlsZGUgbWFjcm9uIGJyZXZlIGRvdGFjY2VudCByaW5nIGNlZGlsbGFcbmh1bmdhcnVtbGF1dCBvZ29uZWsgY2Fyb24gTHNsYXNoIGxzbGFzaCBTY2Fyb24gc2Nhcm9uIFpjYXJvbiB6Y2Fyb24gYnJva2VuYmFyIEV0aFxuZXRoIFlhY3V0ZSB5YWN1dGUgVGhvcm4gdGhvcm4gbWludXMgbXVsdGlwbHkgb25lc3VwZXJpb3IgdHdvc3VwZXJpb3IgdGhyZWVzdXBlcmlvclxub25laGFsZiBvbmVxdWFydGVyIHRocmVlcXVhcnRlcnMgZnJhbmMgR2JyZXZlIGdicmV2ZSBJZG90YWNjZW50IFNjZWRpbGxhIHNjZWRpbGxhXG5DYWN1dGUgY2FjdXRlIENjYXJvbiBjY2Fyb24gZGNyb2F0Ii5zcGxpdCgvXHMrL2cpLFBvc3RUYWJsZX0ociksdC5leHBvcnRzPVBvc3RUYWJsZX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgT1MyVGFibGUsZSxyPXt9Lmhhc093blByb3BlcnR5LGk9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBuKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fWZvcih2YXIgaSBpbiBlKXIuY2FsbChlLGkpJiYodFtpXT1lW2ldKTtyZXR1cm4gbi5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IG4sdC5fX3N1cGVyX189ZS5wcm90b3R5cGUsdH07ZT1uKDk5KSxPUzJUYWJsZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBPUzJUYWJsZSgpe3JldHVybiBPUzJUYWJsZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBpKE9TMlRhYmxlLHQpLE9TMlRhYmxlLnByb3RvdHlwZS50YWc9Ik9TLzIiLE9TMlRhYmxlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdC5wb3M9dGhpcy5vZmZzZXQsdGhpcy52ZXJzaW9uPXQucmVhZFVJbnQxNigpLHRoaXMuYXZlcmFnZUNoYXJXaWR0aD10LnJlYWRTaG9ydCgpLHRoaXMud2VpZ2h0Q2xhc3M9dC5yZWFkVUludDE2KCksdGhpcy53aWR0aENsYXNzPXQucmVhZFVJbnQxNigpLHRoaXMudHlwZT10LnJlYWRTaG9ydCgpLHRoaXMueVN1YnNjcmlwdFhTaXplPXQucmVhZFNob3J0KCksdGhpcy55U3Vic2NyaXB0WVNpemU9dC5yZWFkU2hvcnQoKSx0aGlzLnlTdWJzY3JpcHRYT2Zmc2V0PXQucmVhZFNob3J0KCksdGhpcy55U3Vic2NyaXB0WU9mZnNldD10LnJlYWRTaG9ydCgpLHRoaXMueVN1cGVyc2NyaXB0WFNpemU9dC5yZWFkU2hvcnQoKSx0aGlzLnlTdXBlcnNjcmlwdFlTaXplPXQucmVhZFNob3J0KCksdGhpcy55U3VwZXJzY3JpcHRYT2Zmc2V0PXQucmVhZFNob3J0KCksdGhpcy55U3VwZXJzY3JpcHRZT2Zmc2V0PXQucmVhZFNob3J0KCksdGhpcy55U3RyaWtlb3V0U2l6ZT10LnJlYWRTaG9ydCgpLHRoaXMueVN0cmlrZW91dFBvc2l0aW9uPXQucmVhZFNob3J0KCksdGhpcy5mYW1pbHlDbGFzcz10LnJlYWRTaG9ydCgpLHRoaXMucGFub3NlPWZ1bmN0aW9uKCl7dmFyIG4scjtmb3Iocj1bXSxlPW49MDsxMD5uO2U9KytuKXIucHVzaCh0LnJlYWRCeXRlKCkpO3JldHVybiByfSgpLHRoaXMuY2hhclJhbmdlPWZ1bmN0aW9uKCl7dmFyIG4scjtmb3Iocj1bXSxlPW49MDs0Pm47ZT0rK24pci5wdXNoKHQucmVhZEludCgpKTtyZXR1cm4gcn0oKSx0aGlzLnZlbmRvcklEPXQucmVhZFN0cmluZyg0KSx0aGlzLnNlbGVjdGlvbj10LnJlYWRTaG9ydCgpLHRoaXMuZmlyc3RDaGFySW5kZXg9dC5yZWFkU2hvcnQoKSx0aGlzLmxhc3RDaGFySW5kZXg9dC5yZWFkU2hvcnQoKSx0aGlzLnZlcnNpb24+MCYmKHRoaXMuYXNjZW50PXQucmVhZFNob3J0KCksdGhpcy5kZXNjZW50PXQucmVhZFNob3J0KCksdGhpcy5saW5lR2FwPXQucmVhZFNob3J0KCksdGhpcy53aW5Bc2NlbnQ9dC5yZWFkU2hvcnQoKSx0aGlzLndpbkRlc2NlbnQ9dC5yZWFkU2hvcnQoKSx0aGlzLmNvZGVQYWdlUmFuZ2U9ZnVuY3Rpb24oKXt2YXIgbixyO2ZvcihyPVtdLGU9bj0wOzI+bjtlPSsrbilyLnB1c2godC5yZWFkSW50KCkpO3JldHVybiByfSgpLHRoaXMudmVyc2lvbj4xKT8odGhpcy54SGVpZ2h0PXQucmVhZFNob3J0KCksdGhpcy5jYXBIZWlnaHQ9dC5yZWFkU2hvcnQoKSx0aGlzLmRlZmF1bHRDaGFyPXQucmVhZFNob3J0KCksdGhpcy5icmVha0NoYXI9dC5yZWFkU2hvcnQoKSx0aGlzLm1heENvbnRleHQ9dC5yZWFkU2hvcnQoKSk6dm9pZCAwfSxPUzJUYWJsZS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmF3KCl9LE9TMlRhYmxlfShlKSx0LmV4cG9ydHM9T1MyVGFibGV9KS5jYWxsKHRoaXMpfSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKCl7dmFyIGUsTG9jYVRhYmxlLHIsaT17fS5oYXNPd25Qcm9wZXJ0eSxvPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1mb3IodmFyIHIgaW4gZSlpLmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIG4ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQuX19zdXBlcl9fPWUucHJvdG90eXBlLHR9O3I9big5OSksZT1uKDM0KSxMb2NhVGFibGU9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gTG9jYVRhYmxlKCl7cmV0dXJuIExvY2FUYWJsZS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBvKExvY2FUYWJsZSx0KSxMb2NhVGFibGUucHJvdG90eXBlLnRhZz0ibG9jYSIsTG9jYVRhYmxlLnByb3RvdHlwZS5wYXJzZT1mdW5jdGlvbih0KXt2YXIgZSxuO3JldHVybiB0LnBvcz10aGlzLm9mZnNldCxlPXRoaXMuZmlsZS5oZWFkLmluZGV4VG9Mb2NGb3JtYXQsdGhpcy5vZmZzZXRzPTA9PT1lP2Z1bmN0aW9uKCl7dmFyIGUscixpO2ZvcihpPVtdLG49ZT0wLHI9dGhpcy5sZW5ndGg7cj5lO249ZSs9MilpLnB1c2goMip0LnJlYWRVSW50MTYoKSk7cmV0dXJuIGl9LmNhbGwodGhpcyk6ZnVuY3Rpb24oKXt2YXIgZSxyLGk7Zm9yKGk9W10sbj1lPTAscj10aGlzLmxlbmd0aDtyPmU7bj1lKz00KWkucHVzaCh0LnJlYWRVSW50MzIoKSk7cmV0dXJuIGl9LmNhbGwodGhpcyl9LExvY2FUYWJsZS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vZmZzZXRzW3RdfSxMb2NhVGFibGUucHJvdG90eXBlLmxlbmd0aE9mPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9mZnNldHNbdCsxXS10aGlzLm9mZnNldHNbdF19LExvY2FUYWJsZS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBuLHIsaSxvLGEscyxoLHUsbCxjLGY7Zm9yKG89bmV3IGUsYT0wLHU9dC5sZW5ndGg7dT5hO2ErKylpZihyPXRbYV0scj42NTUzNSl7Zm9yKGY9dGhpcy5vZmZzZXRzLHM9MCxsPWYubGVuZ3RoO2w+cztzKyspbj1mW3NdLG8ud3JpdGVVSW50MzIobik7cmV0dXJuIGk9e2Zvcm1hdDoxLHRhYmxlOm8uZGF0YX19Zm9yKGg9MCxjPXQubGVuZ3RoO2M+aDtoKyspbj10W2hdLG8ud3JpdGVVSW50MTYobi8yKTtyZXR1cm4gaT17Zm9ybWF0OjAsdGFibGU6by5kYXRhfX0sTG9jYVRhYmxlfShyKSx0LmV4cG9ydHM9TG9jYVRhYmxlfSkuY2FsbCh0aGlzKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe2Uuc3VjY2Vzc29yT2Y9ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsaCx1LGw7Zm9yKG49ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IixoPW4ubGVuZ3RoLGw9dCxpPXQubGVuZ3RoO2k+PTA7KXtpZihzPXQuY2hhckF0KC0taSksaXNOYU4ocykpe2lmKG89bi5pbmRleE9mKHMudG9Mb3dlckNhc2UoKSksLTE9PT1vKXU9cyxyPSEwO2Vsc2UgaWYodT1uLmNoYXJBdCgobysxKSVoKSxhPXM9PT1zLnRvVXBwZXJDYXNlKCksYSYmKHU9dS50b1VwcGVyQ2FzZSgpKSxyPW8rMT49aCxyJiYwPT09aSl7ZT1hPyJBIjoiYSIsbD1lK3UrbC5zbGljZSgxKTticmVha319ZWxzZSBpZih1PStzKzEscj11PjksciYmKHU9MCksciYmMD09PWkpe2w9IjEiK3UrbC5zbGljZSgxKTticmVha31pZihsPWwuc2xpY2UoMCxpKSt1K2wuc2xpY2UoaSsxKSwhcilicmVha31yZXR1cm4gbH0sZS5pbnZlcnQ9ZnVuY3Rpb24odCl7dmFyIGUsbixyO249e307Zm9yKGUgaW4gdClyPXRbZV0sbltyXT1lO3JldHVybiBufX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgZSxyLEdseWZUYWJsZSxpLG8sYT17fS5oYXNPd25Qcm9wZXJ0eSxzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gbigpe3RoaXMuY29uc3RydWN0b3I9dH1mb3IodmFyIHIgaW4gZSlhLmNhbGwoZSxyKSYmKHRbcl09ZVtyXSk7cmV0dXJuIG4ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQuX19zdXBlcl9fPWUucHJvdG90eXBlLHR9LGg9W10uc2xpY2U7bz1uKDk5KSxyPW4oMzQpLEdseWZUYWJsZT1mdW5jdGlvbih0KXtmdW5jdGlvbiBHbHlmVGFibGUoKXtyZXR1cm4gR2x5ZlRhYmxlLl9fc3VwZXJfXy5jb25zdHJ1Y3Rvci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHMoR2x5ZlRhYmxlLHQpLEdseWZUYWJsZS5wcm90b3R5cGUudGFnPSJnbHlmIixHbHlmVGFibGUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNhY2hlPXt9fSxHbHlmVGFibGUucHJvdG90eXBlLmdseXBoRm9yPWZ1bmN0aW9uKHQpe3ZhciBuLG8sYSxzLGgsdSxsLGMsZixkO3JldHVybiB0IGluIHRoaXMuY2FjaGU/dGhpcy5jYWNoZVt0XToocz10aGlzLmZpbGUubG9jYSxuPXRoaXMuZmlsZS5jb250ZW50cyxvPXMuaW5kZXhPZih0KSxhPXMubGVuZ3RoT2YodCksMD09PWE/dGhpcy5jYWNoZVt0XT1udWxsOihuLnBvcz10aGlzLm9mZnNldCtvLHU9bmV3IHIobi5yZWFkKGEpKSxoPXUucmVhZFNob3J0KCksYz11LnJlYWRTaG9ydCgpLGQ9dS5yZWFkU2hvcnQoKSxsPXUucmVhZFNob3J0KCksZj11LnJlYWRTaG9ydCgpLHRoaXMuY2FjaGVbdF09LTE9PT1oP25ldyBlKHUsYyxkLGwsZik6bmV3IGkodSxoLGMsZCxsLGYpLHRoaXMuY2FjaGVbdF0pKX0sR2x5ZlRhYmxlLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCxlLG4pe3ZhciByLGksbyxhLHMsaDtmb3IoYT1bXSxvPVtdLHM9MCxoPWUubGVuZ3RoO2g+cztzKyspaT1lW3NdLHI9dFtpXSxvLnB1c2goYS5sZW5ndGgpLHImJihhPWEuY29uY2F0KHIuZW5jb2RlKG4pKSk7cmV0dXJuIG8ucHVzaChhLmxlbmd0aCkse3RhYmxlOmEsb2Zmc2V0czpvfX0sR2x5ZlRhYmxlfShvKSxpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbixyLGksbyl7dGhpcy5yYXc9dCx0aGlzLm51bWJlck9mQ29udG91cnM9ZSx0aGlzLnhNaW49bix0aGlzLnlNaW49cix0aGlzLnhNYXg9aSx0aGlzLnlNYXg9byx0aGlzLmNvbXBvdW5kPSExfXJldHVybiB0LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yYXcuZGF0YX0sdH0oKSxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LHIscyxoLHUpe3ZhciBsLGM7Zm9yKHRoaXMucmF3PXQsdGhpcy54TWluPXIsdGhpcy55TWluPXMsdGhpcy54TWF4PWgsdGhpcy55TWF4PXUsdGhpcy5jb21wb3VuZD0hMCx0aGlzLmdseXBoSURzPVtdLHRoaXMuZ2x5cGhPZmZzZXRzPVtdLGw9dGhpcy5yYXc7Oyl7aWYoYz1sLnJlYWRTaG9ydCgpLHRoaXMuZ2x5cGhPZmZzZXRzLnB1c2gobC5wb3MpLHRoaXMuZ2x5cGhJRHMucHVzaChsLnJlYWRTaG9ydCgpKSwhKGMmbikpYnJlYWs7bC5wb3MrPWMmZT80OjIsYyZhP2wucG9zKz04OmMmaT9sLnBvcys9NDpjJm8mJihsLnBvcys9Mil9fXZhciBlLG4saSxvLGEscztyZXR1cm4gZT0xLG89OCxuPTMyLGk9NjQsYT0xMjgscz0yNTYsdC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKHQpe3ZhciBlLG4saSxvLGEscztmb3IoaT1uZXcgcihoLmNhbGwodGhpcy5yYXcuZGF0YSkpLHM9dGhpcy5nbHlwaElEcyxlPW89MCxhPXMubGVuZ3RoO2E+bztlPSsrbyluPXNbZV0saS5wb3M9dGhpcy5nbHlwaE9mZnNldHNbZV0saS53cml0ZVNob3J0KHRbbl0pO3JldHVybiBpLmRhdGF9LHR9KCksdC5leHBvcnRzPUdseWZUYWJsZX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgdCxuLHIsaSxvO2UuRElfQlJLPXI9MCxlLklOX0JSSz1pPTEsZS5DSV9CUks9dD0yLGUuQ1BfQlJLPW49MyxlLlBSX0JSSz1vPTQsZS5wYWlyVGFibGU9W1tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxuLG8sbyxvLG8sbyxvLG9dLFtyLG8sbyxpLGksbyxvLG8sbyxpLGkscixyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLGksbyxvLG8sbyxpLGksaSxpLGkscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtvLG8sbyxpLGksaSxvLG8sbyxpLGksaSxpLGksaSxpLGksaSxpLGksbyx0LG8saSxpLGksaSxpLGldLFtpLG8sbyxpLGksaSxvLG8sbyxpLGksaSxpLGksaSxpLGksaSxpLGksbyx0LG8saSxpLGksaSxpLGldLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIscixyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIscixyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxpLGkscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxpLGksaSxyLGksaSxyLHIsbyx0LG8saSxpLGksaSxpLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxpLGkscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxpLGksaSxpLGkscixpLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxpLGkscixpLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxpLGkscixpLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLGkscixyLHIscixpLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIscixyLHIscixpLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLHIsaSxvLG8sbyxyLHIsaSxyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtyLG8sbyxpLHIsaSxvLG8sbyxyLHIscixyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxpLGksaSxpLGksaSxpLGksaSxpLGksbyx0LG8saSxpLGksaSxpLGldLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIscixyLHIscixyLGksaSxyLG8sbyx0LG8scixyLHIscixyLHJdLFtyLHIscixyLHIscixyLHIscixyLHIscixyLHIscixyLHIscixyLHIsbyxyLHIscixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxyLHIsaSxpLGkscixpLGksaSxyLHIsbyx0LG8scixyLHIscixyLHJdLFtpLG8sbyxpLGksaSxvLG8sbyxpLGksaSxpLGksaSxpLGksaSxpLGksbyx0LG8saSxpLGksaSxpLGldLFtyLG8sbyxpLGksaSxvLG8sbyxyLGkscixyLHIscixpLGksaSxyLHIsbyx0LG8scixyLHIsaSxpLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLGkscixyLHIscixpLGksaSxyLHIsbyx0LG8scixyLHIscixpLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLGkscixyLHIscixpLGksaSxyLHIsbyx0LG8saSxpLGksaSxyLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLGkscixyLHIscixpLGksaSxyLHIsbyx0LG8scixyLHIsaSxpLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLGkscixyLHIscixpLGksaSxyLHIsbyx0LG8scixyLHIscixpLHJdLFtyLG8sbyxpLGksaSxvLG8sbyxyLHIscixyLHIscixyLGksaSxyLHIsbyx0LG8scixyLHIscixyLGldXX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXsoZnVuY3Rpb24oKXt2YXIgdCxuLHIsaSxvLGEscyxoLHUsbCxjLGYsZCxwLGcsdixtLHksdyxfLGIseCxTLGssRSxDLEksQSxMLFIsQixULE0sTyxELFUsUCxGLHosVztlLk9QPUw9MCxlLkNMPXU9MSxlLkNQPWM9MixlLlFVPVQ9MyxlLkdMPXA9NCxlLk5TPUk9NSxlLkVYPWQ9NixlLlNZPVA9NyxlLklTPWI9OCxlLlBSPUI9OSxlLlBPPVI9MTAsZS5OVT1BPTExLGUuQUw9bj0xMixlLkhMPW09MTMsZS5JRD13PTE0LGUuSU49Xz0xNSxlLkhZPXk9MTYsZS5CQT1pPTE3LGUuQkI9bz0xOCxlLkIyPXI9MTksZS5aVz1XPTIwLGUuQ009bD0yMSxlLldKPUY9MjIsZS5IMj1nPTIzLGUuSDM9dj0yNCxlLkpMPXg9MjUsZS5KVj1rPTI2LGUuSlQ9Uz0yNyxlLlJJPU09MjgsZS5BST10PTI5LGUuQks9YT0zMCxlLkNCPXM9MzEsZS5DSj1oPTMyLGUuQ1I9Zj0zMyxlLkxGPUU9MzQsZS5OTD1DPTM1LGUuU0E9Tz0zNixlLlNHPUQ9MzcsZS5TUD1VPTM4LGUuWFg9ej0zOX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXt9LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTpmdW5jdGlvbih0LGUpe3Quc3VwZXJfPWU7dmFyIG49ZnVuY3Rpb24oKXt9O24ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7Zm9yKHZhciBlPXQubGVuZ3RoOy0tZT49MDspdFtlXT0wfWZ1bmN0aW9uIGkodCl7cmV0dXJuIDI1Nj50P2F0W3RdOmF0WzI1NisodD4+PjcpXX1mdW5jdGlvbiBvKHQsZSl7dC5wZW5kaW5nX2J1Zlt0LnBlbmRpbmcrK109MjU1JmUsdC5wZW5kaW5nX2J1Zlt0LnBlbmRpbmcrK109ZT4+PjgmMjU1fWZ1bmN0aW9uIGEodCxlLG4pe3QuYmlfdmFsaWQ+WS1uPyh0LmJpX2J1Znw9ZTw8dC5iaV92YWxpZCY2NTUzNSxvKHQsdC5iaV9idWYpLHQuYmlfYnVmPWU+PlktdC5iaV92YWxpZCx0LmJpX3ZhbGlkKz1uLVkpOih0LmJpX2J1Znw9ZTw8dC5iaV92YWxpZCY2NTUzNSx0LmJpX3ZhbGlkKz1uKX1mdW5jdGlvbiBzKHQsZSxuKXthKHQsblsyKmVdLG5bMiplKzFdKX1mdW5jdGlvbiBoKHQsZSl7dmFyIG49MDtkbyBufD0xJnQsdD4+Pj0xLG48PD0xO3doaWxlKC0tZT4wKTtyZXR1cm4gbj4+PjF9ZnVuY3Rpb24gdSh0KXsxNj09PXQuYmlfdmFsaWQ/KG8odCx0LmJpX2J1ZiksdC5iaV9idWY9MCx0LmJpX3ZhbGlkPTApOnQuYmlfdmFsaWQ+PTgmJih0LnBlbmRpbmdfYnVmW3QucGVuZGluZysrXT0yNTUmdC5iaV9idWYsdC5iaV9idWY+Pj04LHQuYmlfdmFsaWQtPTgpfWZ1bmN0aW9uIGwodCxlKXt2YXIgbixyLGksbyxhLHMsaD1lLmR5bl90cmVlLHU9ZS5tYXhfY29kZSxsPWUuc3RhdF9kZXNjLnN0YXRpY190cmVlLGM9ZS5zdGF0X2Rlc2MuaGFzX3N0cmVlLGY9ZS5zdGF0X2Rlc2MuZXh0cmFfYml0cyxkPWUuc3RhdF9kZXNjLmV4dHJhX2Jhc2UscD1lLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLGc9MDtmb3Iobz0wO3E+PW87bysrKXQuYmxfY291bnRbb109MDtmb3IoaFsyKnQuaGVhcFt0LmhlYXBfbWF4XSsxXT0wLG49dC5oZWFwX21heCsxO0c+bjtuKyspcj10LmhlYXBbbl0sbz1oWzIqaFsyKnIrMV0rMV0rMSxvPnAmJihvPXAsZysrKSxoWzIqcisxXT1vLHI+dXx8KHQuYmxfY291bnRbb10rKyxhPTAscj49ZCYmKGE9ZltyLWRdKSxzPWhbMipyXSx0Lm9wdF9sZW4rPXMqKG8rYSksYyYmKHQuc3RhdGljX2xlbis9cyoobFsyKnIrMV0rYSkpKTtpZigwIT09Zyl7ZG97Zm9yKG89cC0xOzA9PT10LmJsX2NvdW50W29dOylvLS07dC5ibF9jb3VudFtvXS0tLHQuYmxfY291bnRbbysxXSs9Mix0LmJsX2NvdW50W3BdLS0sZy09Mn13aGlsZShnPjApO2ZvcihvPXA7MCE9PW87by0tKWZvcihyPXQuYmxfY291bnRbb107MCE9PXI7KWk9dC5oZWFwWy0tbl0saT51fHwoaFsyKmkrMV0hPT1vJiYodC5vcHRfbGVuKz0oby1oWzIqaSsxXSkqaFsyKmldLGhbMippKzFdPW8pLHItLSl9fWZ1bmN0aW9uIGModCxlLG4pe3ZhciByLGksbz1uZXcgQXJyYXkocSsxKSxhPTA7Zm9yKHI9MTtxPj1yO3IrKylvW3JdPWE9YStuW3ItMV08PDE7Zm9yKGk9MDtlPj1pO2krKyl7dmFyIHM9dFsyKmkrMV07MCE9PXMmJih0WzIqaV09aChvW3NdKysscykpfX1mdW5jdGlvbiBmKCl7dmFyIHQsZSxuLHIsaSxvPW5ldyBBcnJheShxKzEpO2ZvcihuPTAscj0wO1ctMT5yO3IrKylmb3IoaHRbcl09bix0PTA7dDwxPDxRW3JdO3QrKylzdFtuKytdPXI7Zm9yKHN0W24tMV09cixpPTAscj0wOzE2PnI7cisrKWZvcih1dFtyXT1pLHQ9MDt0PDE8PHR0W3JdO3QrKylhdFtpKytdPXI7Zm9yKGk+Pj03O0g+cjtyKyspZm9yKHV0W3JdPWk8PDcsdD0wO3Q8MTw8dHRbcl0tNzt0KyspYXRbMjU2K2krK109cjtmb3IoZT0wO3E+PWU7ZSsrKW9bZV09MDtmb3IodD0wOzE0Mz49dDspaXRbMip0KzFdPTgsdCsrLG9bOF0rKztmb3IoOzI1NT49dDspaXRbMip0KzFdPTksdCsrLG9bOV0rKztmb3IoOzI3OT49dDspaXRbMip0KzFdPTcsdCsrLG9bN10rKztmb3IoOzI4Nz49dDspaXRbMip0KzFdPTgsdCsrLG9bOF0rKztmb3IoYyhpdCxqKzEsbyksdD0wO0g+dDt0Kyspb3RbMip0KzFdPTUsb3RbMip0XT1oKHQsNSk7bHQ9bmV3IGR0KGl0LFEsTisxLGoscSksY3Q9bmV3IGR0KG90LHR0LDAsSCxxKSxmdD1uZXcgZHQobmV3IEFycmF5KDApLGV0LDAsWixLKX1mdW5jdGlvbiBkKHQpe3ZhciBlO2ZvcihlPTA7aj5lO2UrKyl0LmR5bl9sdHJlZVsyKmVdPTA7Zm9yKGU9MDtIPmU7ZSsrKXQuZHluX2R0cmVlWzIqZV09MDtmb3IoZT0wO1o+ZTtlKyspdC5ibF90cmVlWzIqZV09MDt0LmR5bl9sdHJlZVsyKlhdPTEsdC5vcHRfbGVuPXQuc3RhdGljX2xlbj0wLHQubGFzdF9saXQ9dC5tYXRjaGVzPTB9ZnVuY3Rpb24gcCh0KXt0LmJpX3ZhbGlkPjg/byh0LHQuYmlfYnVmKTp0LmJpX3ZhbGlkPjAmJih0LnBlbmRpbmdfYnVmW3QucGVuZGluZysrXT10LmJpX2J1ZiksdC5iaV9idWY9MCx0LmJpX3ZhbGlkPTB9ZnVuY3Rpb24gZyh0LGUsbixyKXtwKHQpLHImJihvKHQsbiksbyh0LH5uKSksUi5hcnJheVNldCh0LnBlbmRpbmdfYnVmLHQud2luZG93LGUsbix0LnBlbmRpbmcpLHQucGVuZGluZys9bn1mdW5jdGlvbiB2KHQsZSxuLHIpe3ZhciBpPTIqZSxvPTIqbjtyZXR1cm4gdFtpXTx0W29dfHx0W2ldPT09dFtvXSYmcltlXTw9cltuXX1mdW5jdGlvbiBtKHQsZSxuKXtmb3IodmFyIHI9dC5oZWFwW25dLGk9bjw8MTtpPD10LmhlYXBfbGVuJiYoaTx0LmhlYXBfbGVuJiZ2KGUsdC5oZWFwW2krMV0sdC5oZWFwW2ldLHQuZGVwdGgpJiZpKyssIXYoZSxyLHQuaGVhcFtpXSx0LmRlcHRoKSk7KXQuaGVhcFtuXT10LmhlYXBbaV0sbj1pLGk8PD0xO3QuaGVhcFtuXT1yfWZ1bmN0aW9uIHkodCxlLG4pe3ZhciByLG8saCx1LGw9MDtpZigwIT09dC5sYXN0X2xpdClkbyByPXQucGVuZGluZ19idWZbdC5kX2J1ZisyKmxdPDw4fHQucGVuZGluZ19idWZbdC5kX2J1ZisyKmwrMV0sbz10LnBlbmRpbmdfYnVmW3QubF9idWYrbF0sbCsrLDA9PT1yP3ModCxvLGUpOihoPXN0W29dLHModCxoK04rMSxlKSx1PVFbaF0sMCE9PXUmJihvLT1odFtoXSxhKHQsbyx1KSksci0tLGg9aShyKSxzKHQsaCxuKSx1PXR0W2hdLDAhPT11JiYoci09dXRbaF0sYSh0LHIsdSkpKTt3aGlsZShsPHQubGFzdF9saXQpO3ModCxYLGUpfWZ1bmN0aW9uIHcodCxlKXt2YXIgbixyLGksbz1lLmR5bl90cmVlLGE9ZS5zdGF0X2Rlc2Muc3RhdGljX3RyZWUscz1lLnN0YXRfZGVzYy5oYXNfc3RyZWUsaD1lLnN0YXRfZGVzYy5lbGVtcyx1PS0xO2Zvcih0LmhlYXBfbGVuPTAsdC5oZWFwX21heD1HLG49MDtoPm47bisrKTAhPT1vWzIqbl0/KHQuaGVhcFsrK3QuaGVhcF9sZW5dPXU9bix0LmRlcHRoW25dPTApOm9bMipuKzFdPTA7Zm9yKDt0LmhlYXBfbGVuPDI7KWk9dC5oZWFwWysrdC5oZWFwX2xlbl09Mj51PysrdTowLG9bMippXT0xLHQuZGVwdGhbaV09MCx0Lm9wdF9sZW4tLSxzJiYodC5zdGF0aWNfbGVuLT1hWzIqaSsxXSk7Zm9yKGUubWF4X2NvZGU9dSxuPXQuaGVhcF9sZW4+PjE7bj49MTtuLS0pbSh0LG8sbik7aT1oO2RvIG49dC5oZWFwWzFdLHQuaGVhcFsxXT10LmhlYXBbdC5oZWFwX2xlbi0tXSxtKHQsbywxKSxyPXQuaGVhcFsxXSx0LmhlYXBbLS10LmhlYXBfbWF4XT1uLHQuaGVhcFstLXQuaGVhcF9tYXhdPXIsb1syKmldPW9bMipuXStvWzIqcl0sdC5kZXB0aFtpXT0odC5kZXB0aFtuXT49dC5kZXB0aFtyXT90LmRlcHRoW25dOnQuZGVwdGhbcl0pKzEsb1syKm4rMV09b1syKnIrMV09aSx0LmhlYXBbMV09aSsrLG0odCxvLDEpO3doaWxlKHQuaGVhcF9sZW4+PTIpO3QuaGVhcFstLXQuaGVhcF9tYXhdPXQuaGVhcFsxXSxsKHQsZSksYyhvLHUsdC5ibF9jb3VudCl9ZnVuY3Rpb24gXyh0LGUsbil7dmFyIHIsaSxvPS0xLGE9ZVsxXSxzPTAsaD03LHU9NDtmb3IoMD09PWEmJihoPTEzOCx1PTMpLGVbMioobisxKSsxXT02NTUzNSxyPTA7bj49cjtyKyspaT1hLGE9ZVsyKihyKzEpKzFdLCsrczxoJiZpPT09YXx8KHU+cz90LmJsX3RyZWVbMippXSs9czowIT09aT8oaSE9PW8mJnQuYmxfdHJlZVsyKmldKyssdC5ibF90cmVlWzIqVl0rKyk6MTA+PXM/dC5ibF90cmVlWzIqJF0rKzp0LmJsX3RyZWVbMipKXSsrLHM9MCxvPWksMD09PWE/KGg9MTM4LHU9Myk6aT09PWE/KGg9Nix1PTMpOihoPTcsdT00KSl9ZnVuY3Rpb24gYih0LGUsbil7dmFyIHIsaSxvPS0xLGg9ZVsxXSx1PTAsbD03LGM9NDtmb3IoMD09PWgmJihsPTEzOCxjPTMpLHI9MDtuPj1yO3IrKylpZihpPWgsaD1lWzIqKHIrMSkrMV0sISgrK3U8bCYmaT09PWgpKXtpZihjPnUpe2RvIHModCxpLHQuYmxfdHJlZSk7d2hpbGUoMCE9PS0tdSl9ZWxzZSAwIT09aT8oaSE9PW8mJihzKHQsaSx0LmJsX3RyZWUpLHUtLSkscyh0LFYsdC5ibF90cmVlKSxhKHQsdS0zLDIpKToxMD49dT8ocyh0LCQsdC5ibF90cmVlKSxhKHQsdS0zLDMpKToocyh0LEosdC5ibF90cmVlKSxhKHQsdS0xMSw3KSk7dT0wLG89aSwwPT09aD8obD0xMzgsYz0zKTppPT09aD8obD02LGM9Myk6KGw9NyxjPTQpfX1mdW5jdGlvbiB4KHQpe3ZhciBlO2ZvcihfKHQsdC5keW5fbHRyZWUsdC5sX2Rlc2MubWF4X2NvZGUpLF8odCx0LmR5bl9kdHJlZSx0LmRfZGVzYy5tYXhfY29kZSksdyh0LHQuYmxfZGVzYyksZT1aLTE7ZT49MyYmMD09PXQuYmxfdHJlZVsyKm50W2VdKzFdO2UtLSk7cmV0dXJuIHQub3B0X2xlbis9MyooZSsxKSs1KzUrNCxlfWZ1bmN0aW9uIFModCxlLG4scil7dmFyIGk7Zm9yKGEodCxlLTI1Nyw1KSxhKHQsbi0xLDUpLGEodCxyLTQsNCksaT0wO3I+aTtpKyspYSh0LHQuYmxfdHJlZVsyKm50W2ldKzFdLDMpO2IodCx0LmR5bl9sdHJlZSxlLTEpLGIodCx0LmR5bl9kdHJlZSxuLTEpfWZ1bmN0aW9uIGsodCl7dmFyIGUsbj00MDkzNjI0NDQ3O2ZvcihlPTA7MzE+PWU7ZSsrLG4+Pj49MSlpZigxJm4mJjAhPT10LmR5bl9sdHJlZVsyKmVdKXJldHVybiBUO2lmKDAhPT10LmR5bl9sdHJlZVsxOF18fDAhPT10LmR5bl9sdHJlZVsyMF18fDAhPT10LmR5bl9sdHJlZVsyNl0pcmV0dXJuIE07Zm9yKGU9MzI7Tj5lO2UrKylpZigwIT09dC5keW5fbHRyZWVbMiplXSlyZXR1cm4gTTtyZXR1cm4gVH1mdW5jdGlvbiBFKHQpe2d0fHwoZigpLGd0PSEwKSx0LmxfZGVzYz1uZXcgcHQodC5keW5fbHRyZWUsbHQpLHQuZF9kZXNjPW5ldyBwdCh0LmR5bl9kdHJlZSxjdCksdC5ibF9kZXNjPW5ldyBwdCh0LmJsX3RyZWUsZnQpLHQuYmlfYnVmPTAsdC5iaV92YWxpZD0wLGQodCl9ZnVuY3Rpb24gQyh0LGUsbixyKXthKHQsKEQ8PDEpKyhyPzE6MCksMyksZyh0LGUsbiwhMCl9ZnVuY3Rpb24gSSh0KXthKHQsVTw8MSwzKSxzKHQsWCxpdCksdSh0KX1mdW5jdGlvbiBBKHQsZSxuLHIpe3ZhciBpLG8scz0wO3QubGV2ZWw+MD8odC5zdHJtLmRhdGFfdHlwZT09PU8mJih0LnN0cm0uZGF0YV90eXBlPWsodCkpLHcodCx0LmxfZGVzYyksdyh0LHQuZF9kZXNjKSxzPXgodCksaT10Lm9wdF9sZW4rMys3Pj4+MyxvPXQuc3RhdGljX2xlbiszKzc+Pj4zLGk+PW8mJihpPW8pKTppPW89bis1LGk+PW4rNCYmLTEhPT1lP0ModCxlLG4scik6dC5zdHJhdGVneT09PUJ8fG89PT1pPyhhKHQsKFU8PDEpKyhyPzE6MCksMykseSh0LGl0LG90KSk6KGEodCwoUDw8MSkrKHI/MTowKSwzKSxTKHQsdC5sX2Rlc2MubWF4X2NvZGUrMSx0LmRfZGVzYy5tYXhfY29kZSsxLHMrMSkseSh0LHQuZHluX2x0cmVlLHQuZHluX2R0cmVlKSksZCh0KSxyJiZwKHQpfWZ1bmN0aW9uIEwodCxlLG4pe3JldHVybiB0LnBlbmRpbmdfYnVmW3QuZF9idWYrMip0Lmxhc3RfbGl0XT1lPj4+OCYyNTUsdC5wZW5kaW5nX2J1Zlt0LmRfYnVmKzIqdC5sYXN0X2xpdCsxXT0yNTUmZSx0LnBlbmRpbmdfYnVmW3QubF9idWYrdC5sYXN0X2xpdF09MjU1Jm4sdC5sYXN0X2xpdCsrLDA9PT1lP3QuZHluX2x0cmVlWzIqbl0rKzoodC5tYXRjaGVzKyssZS0tLHQuZHluX2x0cmVlWzIqKHN0W25dK04rMSldKyssdC5keW5fZHRyZWVbMippKGUpXSsrKSx0Lmxhc3RfbGl0PT09dC5saXRfYnVmc2l6ZS0xfXZhciBSPW4oOTgpLEI9NCxUPTAsTT0xLE89MixEPTAsVT0xLFA9MixGPTMsej0yNTgsVz0yOSxOPTI1NixqPU4rMStXLEg9MzAsWj0xOSxHPTIqaisxLHE9MTUsWT0xNixLPTcsWD0yNTYsVj0xNiwkPTE3LEo9MTgsUT1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSx0dD1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sZXQ9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLG50PVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxydD01MTIsaXQ9bmV3IEFycmF5KDIqKGorMikpO3IoaXQpO3ZhciBvdD1uZXcgQXJyYXkoMipIKTtyKG90KTt2YXIgYXQ9bmV3IEFycmF5KHJ0KTtyKGF0KTt2YXIgc3Q9bmV3IEFycmF5KHotRisxKTtyKHN0KTt2YXIgaHQ9bmV3IEFycmF5KFcpO3IoaHQpO3ZhciB1dD1uZXcgQXJyYXkoSCk7cih1dCk7dmFyIGx0LGN0LGZ0LGR0PWZ1bmN0aW9uKHQsZSxuLHIsaSl7dGhpcy5zdGF0aWNfdHJlZT10LHRoaXMuZXh0cmFfYml0cz1lLHRoaXMuZXh0cmFfYmFzZT1uLHRoaXMuZWxlbXM9cix0aGlzLm1heF9sZW5ndGg9aSx0aGlzLmhhc19zdHJlZT10JiZ0Lmxlbmd0aH0scHQ9ZnVuY3Rpb24odCxlKXt0aGlzLmR5bl90cmVlPXQsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPWV9LGd0PSExO2UuX3RyX2luaXQ9RSxlLl90cl9zdG9yZWRfYmxvY2s9QyxlLl90cl9mbHVzaF9ibG9jaz1BLGUuX3RyX3RhbGx5PUwsZS5fdHJfYWxpZ249SX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSxuLHIpe2Zvcih2YXIgaT02NTUzNSZ0fDAsbz10Pj4+MTYmNjU1MzV8MCxhPTA7MCE9PW47KXthPW4+MmUzPzJlMzpuLG4tPWE7ZG8gaT1pK2VbcisrXXwwLG89bytpfDA7d2hpbGUoLS1hKTtpJT02NTUyMSxvJT02NTUyMX1yZXR1cm4gaXxvPDwxNnwwfXQuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQsZT1bXSxuPTA7MjU2Pm47bisrKXt0PW47Zm9yKHZhciByPTA7OD5yO3IrKyl0PTEmdD8zOTg4MjkyMzg0XnQ+Pj4xOnQ+Pj4xO2Vbbl09dH1yZXR1cm4gZX1mdW5jdGlvbiBpKHQsZSxuLHIpe3ZhciBpPW8sYT1yK247dD0tMV50O2Zvcih2YXIgcz1yO2E+cztzKyspdD10Pj4+OF5pWzI1NSYodF5lW3NdKV07cmV0dXJuLTFedH12YXIgbz1yKCk7dC5leHBvcnRzPWl9LGZ1bmN0aW9uKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIEludDMyQXJyYXk7ZS5hc3NpZ249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtlLmxlbmd0aDspe3ZhciBuPWUuc2hpZnQoKTtpZihuKXtpZigib2JqZWN0IiE9dHlwZW9mIG4pdGhyb3cgbmV3IFR5cGVFcnJvcihuKyJtdXN0IGJlIG5vbi1vYmplY3QiKTtmb3IodmFyIHIgaW4gbiluLmhhc093blByb3BlcnR5KHIpJiYodFtyXT1uW3JdKX19cmV0dXJuIHR9LGUuc2hyaW5rQnVmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPT09ZT90OnQuc3ViYXJyYXk/dC5zdWJhcnJheSgwLGUpOih0Lmxlbmd0aD1lLHQpfTt2YXIgaT17YXJyYXlTZXQ6ZnVuY3Rpb24odCxlLG4scixpKXtpZihlLnN1YmFycmF5JiZ0LnN1YmFycmF5KXJldHVybiB2b2lkIHQuc2V0KGUuc3ViYXJyYXkobixuK3IpLGkpO2Zvcih2YXIgbz0wO3I+bztvKyspdFtpK29dPWVbbitvXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGE7Zm9yKHI9MCxlPTAsbj10Lmxlbmd0aDtuPmU7ZSsrKXIrPXRbZV0ubGVuZ3RoO2ZvcihhPW5ldyBVaW50OEFycmF5KHIpLGk9MCxlPTAsbj10Lmxlbmd0aDtuPmU7ZSsrKW89dFtlXSxhLnNldChvLGkpLGkrPW8ubGVuZ3RoO3JldHVybiBhfX0sbz17YXJyYXlTZXQ6ZnVuY3Rpb24odCxlLG4scixpKXtmb3IodmFyIG89MDtyPm87bysrKXRbaStvXT1lW24rb119LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24odCl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLHQpfX07ZS5zZXRUeXBlZD1mdW5jdGlvbih0KXt0PyhlLkJ1Zjg9VWludDhBcnJheSxlLkJ1ZjE2PVVpbnQxNkFycmF5LGUuQnVmMzI9SW50MzJBcnJheSxlLmFzc2lnbihlLGkpKTooZS5CdWY4PUFycmF5LGUuQnVmMTY9QXJyYXksZS5CdWYzMj1BcnJheSxlLmFzc2lnbihlLG8pKX0sZS5zZXRUeXBlZChyKX0sZnVuY3Rpb24odCxlLG4peyhmdW5jdGlvbigpe3ZhciBlO2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlO3RoaXMuZmlsZT10LGU9dGhpcy5maWxlLmRpcmVjdG9yeS50YWJsZXNbdGhpcy50YWddLHRoaXMuZXhpc3RzPSEhZSxlJiYodGhpcy5vZmZzZXQ9ZS5vZmZzZXQsdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5wYXJzZSh0aGlzLmZpbGUuY29udGVudHMpKX1yZXR1cm4gdC5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oKXt9LHQucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbigpe30sdC5wcm90b3R5cGUucmF3PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXhpc3RzPyh0aGlzLmZpbGUuY29udGVudHMucG9zPXRoaXMub2Zmc2V0LHRoaXMuZmlsZS5jb250ZW50cy5yZWFkKHRoaXMubGVuZ3RoKSk6bnVsbH0sdH0oKSx0LmV4cG9ydHM9ZX0pLmNhbGwodGhpcyl9LGZ1bmN0aW9uKHQsZSxuKXt2YXIgcixpPVtdLnNsaWNlO3I9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlLG47bnVsbD09dCYmKHQ9e30pLHRoaXMuZGF0YT10LmRhdGF8fFtdLHRoaXMuaGlnaFN0YXJ0PW51bGwhPShlPXQuaGlnaFN0YXJ0KT9lOjAsdGhpcy5lcnJvclZhbHVlPW51bGwhPShuPXQuZXJyb3JWYWx1ZSk/bjotMX12YXIgZSxuLHIsbyxhLHMsaCx1LGwsYyxmLGQscCxnLHYsbTtyZXR1cm4gZD0xMSxnPTUscD1kLWcsZj02NTUzNj4+ZCxhPTE8PHAsaD1hLTEsdT0yLGU9MTw8ZyxyPWUtMSxjPTY1NTM2Pj5nLGw9MTAyND4+ZyxzPWMrbCxtPXMsdj0zMixvPW0rdixuPTE8PHUsdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiAwPnR8fHQ+MTExNDExMT90aGlzLmVycm9yVmFsdWU6NTUyOTY+dHx8dD41NjMxOSYmNjU1MzU+PXQ/KGU9KHRoaXMuZGF0YVt0Pj5nXTw8dSkrKHQmciksdGhpcy5kYXRhW2VdKTo2NTUzNT49dD8oZT0odGhpcy5kYXRhW2MrKHQtNTUyOTY+PmcpXTw8dSkrKHQmciksdGhpcy5kYXRhW2VdKTp0PHRoaXMuaGlnaFN0YXJ0PyhlPXRoaXMuZGF0YVtvLWYrKHQ+PmQpXSxlPXRoaXMuZGF0YVtlKyh0Pj5nJmgpXSxlPShlPDx1KSsodCZyKSx0aGlzLmRhdGFbZV0pOnRoaXMuZGF0YVt0aGlzLmRhdGEubGVuZ3RoLW5dfSx0LnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gdD17ZGF0YTppLmNhbGwodGhpcy5kYXRhKSxoaWdoU3RhcnQ6dGhpcy5oaWdoU3RhcnQsZXJyb3JWYWx1ZTp0aGlzLmVycm9yVmFsdWV9fSx0fSgpLHQuZXhwb3J0cz1yfSxmdW5jdGlvbih0LGUsbil7ZnVuY3Rpb24gcih0KXtpZih0JiYhaCh0KSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrdCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBvKHQpe3RoaXMuY2hhclJlY2VpdmVkPXQubGVuZ3RoJTIsdGhpcy5jaGFyTGVuZ3RoPXRoaXMuY2hhclJlY2VpdmVkPzI6MH1mdW5jdGlvbiBhKHQpe3RoaXMuY2hhclJlY2VpdmVkPXQubGVuZ3RoJTMsdGhpcy5jaGFyTGVuZ3RoPXRoaXMuY2hhclJlY2VpdmVkPzM6MH12YXIgcz1uKDQpLkJ1ZmZlcixoPXMuaXNFbmNvZGluZ3x8ZnVuY3Rpb24odCl7c3dpdGNoKHQmJnQudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSx1PWUuU3RyaW5nRGVjb2Rlcj1mdW5jdGlvbih0KXtzd2l0Y2godGhpcy5lbmNvZGluZz0odHx8InV0ZjgiKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1stX10vLCIiKSxyKHQpLHRoaXMuZW5jb2Rpbmcpe2Nhc2UidXRmOCI6dGhpcy5zdXJyb2dhdGVTaXplPTM7YnJlYWs7Y2FzZSJ1Y3MyIjpjYXNlInV0ZjE2bGUiOnRoaXMuc3Vycm9nYXRlU2l6ZT0yLHRoaXMuZGV0ZWN0SW5jb21wbGV0ZUNoYXI9bzticmVhaztjYXNlImJhc2U2NCI6dGhpcy5zdXJyb2dhdGVTaXplPTMsdGhpcy5kZXRlY3RJbmNvbXBsZXRlQ2hhcj1hO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHZvaWQodGhpcy53cml0ZT1pKX10aGlzLmNoYXJCdWZmZXI9bmV3IHMoNiksdGhpcy5jaGFyUmVjZWl2ZWQ9MCx0aGlzLmNoYXJMZW5ndGg9MH07dS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiO3RoaXMuY2hhckxlbmd0aDspe3ZhciBuPXQubGVuZ3RoPj10aGlzLmNoYXJMZW5ndGgtdGhpcy5jaGFyUmVjZWl2ZWQ/dGhpcy5jaGFyTGVuZ3RoLXRoaXMuY2hhclJlY2VpdmVkOnQubGVuZ3RoO2lmKHQuY29weSh0aGlzLmNoYXJCdWZmZXIsdGhpcy5jaGFyUmVjZWl2ZWQsMCxuKSx0aGlzLmNoYXJSZWNlaXZlZCs9bix0aGlzLmNoYXJSZWNlaXZlZDx0aGlzLmNoYXJMZW5ndGgpcmV0dXJuIiI7dD10LnNsaWNlKG4sdC5sZW5ndGgpLGU9dGhpcy5jaGFyQnVmZmVyLnNsaWNlKDAsdGhpcy5jaGFyTGVuZ3RoKS50b1N0cmluZyh0aGlzLmVuY29kaW5nKTt2YXIgcj1lLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSk7aWYoIShyPj01NTI5NiYmNTYzMTk+PXIpKXtpZih0aGlzLmNoYXJSZWNlaXZlZD10aGlzLmNoYXJMZW5ndGg9MCwwPT09dC5sZW5ndGgpcmV0dXJuIGU7YnJlYWt9dGhpcy5jaGFyTGVuZ3RoKz10aGlzLnN1cnJvZ2F0ZVNpemUsZT0iIn10aGlzLmRldGVjdEluY29tcGxldGVDaGFyKHQpO3ZhciBpPXQubGVuZ3RoO3RoaXMuY2hhckxlbmd0aCYmKHQuY29weSh0aGlzLmNoYXJCdWZmZXIsMCx0Lmxlbmd0aC10aGlzLmNoYXJSZWNlaXZlZCxpKSxpLT10aGlzLmNoYXJSZWNlaXZlZCksZSs9dC50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsaSk7dmFyIGk9ZS5sZW5ndGgtMSxyPWUuY2hhckNvZGVBdChpKTtpZihyPj01NTI5NiYmNTYzMTk+PXIpe3ZhciBvPXRoaXMuc3Vycm9nYXRlU2l6ZTtyZXR1cm4gdGhpcy5jaGFyTGVuZ3RoKz1vLHRoaXMuY2hhclJlY2VpdmVkKz1vLHRoaXMuY2hhckJ1ZmZlci5jb3B5KHRoaXMuY2hhckJ1ZmZlcixvLDAsbyksdC5jb3B5KHRoaXMuY2hhckJ1ZmZlciwwLDAsbyksZS5zdWJzdHJpbmcoMCxpKX1yZXR1cm4gZX0sdS5wcm90b3R5cGUuZGV0ZWN0SW5jb21wbGV0ZUNoYXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoPj0zPzM6dC5sZW5ndGg7ZT4wO2UtLSl7dmFyIG49dFt0Lmxlbmd0aC1lXTtpZigxPT1lJiZuPj41PT02KXt0aGlzLmNoYXJMZW5ndGg9MjticmVha31pZigyPj1lJiZuPj40PT0xNCl7dGhpcy5jaGFyTGVuZ3RoPTM7YnJlYWt9aWYoMz49ZSYmbj4+Mz09MzApe3RoaXMuY2hhckxlbmd0aD00O2JyZWFrfX10aGlzLmNoYXJSZWNlaXZlZD1lfSx1LnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24odCl7dmFyIGU9IiI7aWYodCYmdC5sZW5ndGgmJihlPXRoaXMud3JpdGUodCkpLHRoaXMuY2hhclJlY2VpdmVkKXt2YXIgbj10aGlzLmNoYXJSZWNlaXZlZCxyPXRoaXMuY2hhckJ1ZmZlcixpPXRoaXMuZW5jb2Rpbmc7ZSs9ci5zbGljZSgwLG4pLnRvU3RyaW5nKGkpfXJldHVybiBlfX0sZnVuY3Rpb24odCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj0zMCxpPTEyO3QuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciBuLG8sYSxzLGgsdSxsLGMsZixkLHAsZyx2LG0seSx3LF8sYix4LFMsayxFLEMsSSxBO249dC5zdGF0ZSxvPXQubmV4dF9pbixJPXQuaW5wdXQsYT1vKyh0LmF2YWlsX2luLTUpLHM9dC5uZXh0X291dCxBPXQub3V0cHV0LGg9cy0oZS10LmF2YWlsX291dCksdT1zKyh0LmF2YWlsX291dC0yNTcpLGw9bi5kbWF4LGM9bi53c2l6ZSxmPW4ud2hhdmUsZD1uLnduZXh0LHA9bi53aW5kb3csZz1uLmhvbGQsdj1uLmJpdHMsbT1uLmxlbmNvZGUseT1uLmRpc3Rjb2RlLHc9KDE8PG4ubGVuYml0cyktMSxfPSgxPDxuLmRpc3RiaXRzKS0xO3Q6ZG97MTU+diYmKGcrPUlbbysrXTw8dix2Kz04LGcrPUlbbysrXTw8dix2Kz04KSxiPW1bZyZ3XTtlOmZvcig7Oyl7aWYoeD1iPj4+MjQsZz4+Pj14LHYtPXgseD1iPj4+MTYmMjU1LDA9PT14KUFbcysrXT02NTUzNSZiO2Vsc2V7aWYoISgxNiZ4KSl7aWYoMD09PSg2NCZ4KSl7Yj1tWyg2NTUzNSZiKSsoZyYoMTw8eCktMSldO2NvbnRpbnVlIGV9aWYoMzImeCl7bi5tb2RlPWk7YnJlYWsgdH10Lm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixuLm1vZGU9cjticmVhayB0fVM9NjU1MzUmYix4Jj0xNSx4JiYoeD52JiYoZys9SVtvKytdPDx2LHYrPTgpLFMrPWcmKDE8PHgpLTEsZz4+Pj14LHYtPXgpLDE1PnYmJihnKz1JW28rK108PHYsdis9OCxnKz1JW28rK108PHYsdis9OCksYj15W2cmX107bjpmb3IoOzspe2lmKHg9Yj4+PjI0LGc+Pj49eCx2LT14LHg9Yj4+PjE2JjI1NSwhKDE2JngpKXtpZigwPT09KDY0JngpKXtiPXlbKDY1NTM1JmIpKyhnJigxPDx4KS0xKV07Y29udGludWUgbn10Lm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixuLm1vZGU9cjticmVhayB0fWlmKGs9NjU1MzUmYix4Jj0xNSx4PnYmJihnKz1JW28rK108PHYsdis9OCx4PnYmJihnKz1JW28rK108PHYsdis9OCkpLGsrPWcmKDE8PHgpLTEsaz5sKXt0Lm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLG4ubW9kZT1yO2JyZWFrIHR9aWYoZz4+Pj14LHYtPXgseD1zLWgsaz54KXtpZih4PWsteCx4PmYmJm4uc2FuZSl7dC5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixuLm1vZGU9cjticmVhayB0fWlmKEU9MCxDPXAsMD09PWQpe2lmKEUrPWMteCxTPngpe1MtPXg7ZG8gQVtzKytdPXBbRSsrXTt3aGlsZSgtLXgpO0U9cy1rLEM9QX19ZWxzZSBpZih4PmQpe2lmKEUrPWMrZC14LHgtPWQsUz54KXtTLT14O2RvIEFbcysrXT1wW0UrK107d2hpbGUoLS14KTtpZihFPTAsUz5kKXt4PWQsUy09eDtkbyBBW3MrK109cFtFKytdO3doaWxlKC0teCk7RT1zLWssQz1BfX19ZWxzZSBpZihFKz1kLXgsUz54KXtTLT14O2RvIEFbcysrXT1wW0UrK107d2hpbGUoLS14KTtFPXMtayxDPUF9Zm9yKDtTPjI7KUFbcysrXT1DW0UrK10sQVtzKytdPUNbRSsrXSxBW3MrK109Q1tFKytdLFMtPTM7UyYmKEFbcysrXT1DW0UrK10sUz4xJiYoQVtzKytdPUNbRSsrXSkpfWVsc2V7RT1zLWs7ZG8gQVtzKytdPUFbRSsrXSxBW3MrK109QVtFKytdLEFbcysrXT1BW0UrK10sUy09Mzt3aGlsZShTPjIpO1MmJihBW3MrK109QVtFKytdLFM+MSYmKEFbcysrXT1BW0UrK10pKX1icmVha319YnJlYWt9fXdoaWxlKGE+byYmdT5zKTtTPXY+PjMsby09Uyx2LT1TPDwzLGcmPSgxPDx2KS0xLHQubmV4dF9pbj1vLHQubmV4dF9vdXQ9cyx0LmF2YWlsX2luPWE+bz81KyhhLW8pOjUtKG8tYSksdC5hdmFpbF9vdXQ9dT5zPzI1NysodS1zKToyNTctKHMtdSksbi5ob2xkPWcsbi5iaXRzPXZ9fSxmdW5jdGlvbih0LGUsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oOTgpLGk9MTUsbz04NTIsYT01OTIscz0wLGg9MSx1PTIsbD1bMyw0LDUsNiw3LDgsOSwxMCwxMSwxMywxNSwxNywxOSwyMywyNywzMSwzNSw0Myw1MSw1OSw2Nyw4Myw5OSwxMTUsMTMxLDE2MywxOTUsMjI3LDI1OCwwLDBdLGM9WzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSxmPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSxkPVsxNiwxNiwxNiwxNiwxNywxNywxOCwxOCwxOSwxOSwyMCwyMCwyMSwyMSwyMiwyMiwyMywyMywyNCwyNCwyNSwyNSwyNiwyNiwyNywyNywyOCwyOCwyOSwyOSw2NCw2NF07Cgp0LmV4cG9ydHM9ZnVuY3Rpb24odCxlLG4scCxnLHYsbSx5KXt2YXIgdyxfLGIseCxTLGssRSxDLEksQT15LmJpdHMsTD0wLFI9MCxCPTAsVD0wLE09MCxPPTAsRD0wLFU9MCxQPTAsRj0wLHo9bnVsbCxXPTAsTj1uZXcgci5CdWYxNihpKzEpLGo9bmV3IHIuQnVmMTYoaSsxKSxIPW51bGwsWj0wO2ZvcihMPTA7aT49TDtMKyspTltMXT0wO2ZvcihSPTA7cD5SO1IrKylOW2VbbitSXV0rKztmb3IoTT1BLFQ9aTtUPj0xJiYwPT09TltUXTtULS0pO2lmKE0+VCYmKE09VCksMD09PVQpcmV0dXJuIGdbdisrXT0yMDk3MTUyMCxnW3YrK109MjA5NzE1MjAseS5iaXRzPTEsMDtmb3IoQj0xO1Q+QiYmMD09PU5bQl07QisrKTtmb3IoQj5NJiYoTT1CKSxVPTEsTD0xO2k+PUw7TCsrKWlmKFU8PD0xLFUtPU5bTF0sMD5VKXJldHVybi0xO2lmKFU+MCYmKHQ9PT1zfHwxIT09VCkpcmV0dXJuLTE7Zm9yKGpbMV09MCxMPTE7aT5MO0wrKylqW0wrMV09altMXStOW0xdO2ZvcihSPTA7cD5SO1IrKykwIT09ZVtuK1JdJiYobVtqW2VbbitSXV0rK109Uik7aWYodD09PXM/KHo9SD1tLGs9MTkpOnQ9PT1oPyh6PWwsVy09MjU3LEg9YyxaLT0yNTcsaz0yNTYpOih6PWYsSD1kLGs9LTEpLEY9MCxSPTAsTD1CLFM9dixPPU0sRD0wLGI9LTEsUD0xPDxNLHg9UC0xLHQ9PT1oJiZQPm98fHQ9PT11JiZQPmEpcmV0dXJuIDE7Zm9yKHZhciBHPTA7Oyl7RysrLEU9TC1ELG1bUl08az8oQz0wLEk9bVtSXSk6bVtSXT5rPyhDPUhbWittW1JdXSxJPXpbVyttW1JdXSk6KEM9OTYsST0wKSx3PTE8PEwtRCxfPTE8PE8sQj1fO2RvIF8tPXcsZ1tTKyhGPj5EKStfXT1FPDwyNHxDPDwxNnxJfDA7d2hpbGUoMCE9PV8pO2Zvcih3PTE8PEwtMTtGJnc7KXc+Pj0xO2lmKDAhPT13PyhGJj13LTEsRis9dyk6Rj0wLFIrKywwPT09LS1OW0xdKXtpZihMPT09VClicmVhaztMPWVbbittW1JdXX1pZihMPk0mJihGJngpIT09Yil7Zm9yKDA9PT1EJiYoRD1NKSxTKz1CLE89TC1ELFU9MTw8TztUPk8rRCYmKFUtPU5bTytEXSwhKDA+PVUpKTspTysrLFU8PD0xO2lmKFArPTE8PE8sdD09PWgmJlA+b3x8dD09PXUmJlA+YSlyZXR1cm4gMTtiPUYmeCxnW2JdPU08PDI0fE88PDE2fFMtdnwwfX1yZXR1cm4gMCE9PUYmJihnW1MrRl09TC1EPDwyNHw2NDw8MTZ8MCkseS5iaXRzPU0sMH19LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24odCxlKXt0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTpmdW5jdGlvbih0LGUpe3Quc3VwZXJfPWU7dmFyIG49ZnVuY3Rpb24oKXt9O24ucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyBuLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9fSxmdW5jdGlvbih0LGUsbil7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG4odCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gcih0KXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiB0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIG51bGw9PT10fWZ1bmN0aW9uIG8odCl7cmV0dXJuIG51bGw9PXR9ZnVuY3Rpb24gYSh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR9ZnVuY3Rpb24gcyh0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9ZnVuY3Rpb24gaCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdm9pZCAwPT09dH1mdW5jdGlvbiBsKHQpe3JldHVybiBjKHQpJiYiW29iamVjdCBSZWdFeHBdIj09PW0odCl9ZnVuY3Rpb24gYyh0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fWZ1bmN0aW9uIGYodCl7cmV0dXJuIGModCkmJiJbb2JqZWN0IERhdGVdIj09PW0odCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gYyh0KSYmKCJbb2JqZWN0IEVycm9yXSI9PT1tKHQpfHx0IGluc3RhbmNlb2YgRXJyb3IpfWZ1bmN0aW9uIHAodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gZyh0KXtyZXR1cm4gbnVsbD09PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fHwic3ltYm9sIj09dHlwZW9mIHR8fCJ1bmRlZmluZWQiPT10eXBlb2YgdH1mdW5jdGlvbiB2KGUpe3JldHVybiB0LmlzQnVmZmVyKGUpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1lLmlzQXJyYXk9bixlLmlzQm9vbGVhbj1yLGUuaXNOdWxsPWksZS5pc051bGxPclVuZGVmaW5lZD1vLGUuaXNOdW1iZXI9YSxlLmlzU3RyaW5nPXMsZS5pc1N5bWJvbD1oLGUuaXNVbmRlZmluZWQ9dSxlLmlzUmVnRXhwPWwsZS5pc09iamVjdD1jLGUuaXNEYXRlPWYsZS5pc0Vycm9yPWQsZS5pc0Z1bmN0aW9uPXAsZS5pc1ByaW1pdGl2ZT1nLGUuaXNCdWZmZXI9dn0pLmNhbGwoZSxuKDQpLkJ1ZmZlcil9LGZ1bmN0aW9uKHQsZSxuKXt0LmV4cG9ydHM9e2RhdGE6WzE5NjEsMTk2OSwxOTc3LDE5ODUsMjAyNSwyMDMzLDIwNDEsMjA0OSwyMDU3LDIwNjUsMjA3MywyMDgxLDIwODksMjA5NywyMTA1LDIxMTMsMjEyMSwyMTI5LDIxMzcsMjE0NSwyMTUzLDIxNjEsMjE2OSwyMTc3LDIxODUsMjE5MywyMjAxLDIyMDksMjIxNywyMjI1LDIyMzMsMjI0MSwyMjQ5LDIyNTcsMjI2NSwyMjczLDIyODEsMjI4OSwyMjk3LDIzMDUsMjMxMywyMzIxLDIzMjksMjMzNywyMzQ1LDIzNTMsMjM2MSwyMzY5LDIzNzcsMjM4NSwyMzkzLDI0MDEsMjQwOSwyNDE3LDI0MjUsMjQzMywyNDQxLDI0NDksMjQ1NywyNDY1LDI0NzMsMjQ4MSwyNDg5LDI0OTcsMjUwNSwyNTEzLDI1MjEsMjUyOSwyNTI5LDI1MzcsMjAwOSwyNTQ1LDI1NTMsMjU2MSwyNTY5LDI1NzcsMjU4NSwyNTkzLDI2MDEsMjYwOSwyNjE3LDI2MjUsMjYzMywyNjQxLDI2NDksMjY1NywyNjY1LDI2NzMsMjY4MSwyNjg5LDI2OTcsMjcwNSwyNzEzLDI3MjEsMjcyOSwyNzM3LDI3NDUsMjc1MywyNzYxLDI3NjksMjc3NywyNzg1LDI3OTMsMjgwMSwyODA5LDI4MTcsMjgyNSwyODMzLDI4NDEsMjg0OSwyODU3LDI4NjUsMjg3MywyODgxLDI4ODksMjAwOSwyODk3LDI5MDUsMjkxMywyMDA5LDI5MjEsMjkyOSwyOTM3LDI5NDUsMjk1MywyOTYxLDI5NjksMjAwOSwyOTc3LDI5NzcsMjk4NSwyOTkzLDMwMDEsMzAwOSwzMDA5LDMwMDksMzAxNywzMDE3LDMwMTcsMzAyNSwzMDI1LDMwMzMsMzA0MSwzMDQxLDMwNDksMzA0OSwzMDQ5LDMwNDksMzA0OSwzMDQ5LDMwNDksMzA0OSwzMDQ5LDMwNDksMzA1NywzMDY1LDMwNzMsMzA3MywzMDczLDMwODEsMzA4OSwzMDk3LDMwOTcsMzA5NywzMDk3LDMwOTcsMzA5NywzMDk3LDMwOTcsMzA5NywzMDk3LDMwOTcsMzA5NywzMDk3LDMwOTcsMzA5NywzMDk3LDMwOTcsMzA5NywzMDk3LDMxMDUsMzExMywzMTEzLDMxMjEsMzEyOSwzMTM3LDMxNDUsMzE1MywzMTYxLDMxNjEsMzE2OSwzMTc3LDMxODUsMzE5MywzMTkzLDMxOTMsMzE5MywzMjAxLDMyMDksMzIwOSwzMjE3LDMyMjUsMzIzMywzMjQxLDMyNDEsMzI0MSwzMjQ5LDMyNTcsMzI2NSwzMjczLDMyNzMsMzI4MSwzMjg5LDMyOTcsMjAwOSwyMDA5LDMzMDUsMzMxMywzMzIxLDMzMjksMzMzNywzMzQ1LDMzNTMsMzM2MSwzMzY5LDMzNzcsMzM4NSwzMzkzLDIwMDksMjAwOSwzNDAxLDM0MDksMzQxNywzNDE3LDM0MTcsMzQxNywzNDE3LDM0MTcsMzQyNSwzNDI1LDM0MzMsMzQzMywzNDMzLDM0MzMsMzQzMywzNDMzLDM0MzMsMzQzMywzNDMzLDM0MzMsMzQzMywzNDMzLDM0MzMsMzQzMywzNDMzLDM0NDEsMzQ0OSwzNDU3LDM0NjUsMzQ3MywzNDgxLDM0ODksMzQ5NywzNTA1LDM1MTMsMzUyMSwzNTI5LDM1MzcsMzU0NSwzNTUzLDM1NjEsMzU2OSwzNTc3LDM1ODUsMzU5MywzNjAxLDM2MDksMzYxNywzNjI1LDM2MjUsMzYzMywzNjQxLDM2NDksMzY0OSwzNjQ5LDM2NDksMzY0OSwzNjU3LDM2NjUsMzY2NSwzNjczLDM2ODEsMzY4MSwzNjgxLDM2ODEsMzY4OSwzNjk3LDM2OTcsMzcwNSwzNzEzLDM3MjEsMzcyOSwzNzM3LDM3NDUsMzc1MywzNzYxLDM3NjksMzc3NywzNzg1LDM3OTMsMzgwMSwzODA5LDM4MTcsMzgyNSwzODMzLDM4NDEsMzg0OSwzODU3LDM4NjUsMzg3MywzODgxLDM4ODEsMzg4MSwzODgxLDM4ODEsMzg4MSwzODgxLDM4ODEsMzg4MSwzODgxLDM4ODEsMzg4MSwzODg5LDM4OTcsMzkwNSwzOTEzLDM5MjEsMzkyMSwzOTIxLDM5MjEsMzkyMSwzOTIxLDM5MjEsMzkyMSwzOTIxLDM5MjEsMzkyOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMzkzNywzOTM3LDM5MzcsMzkzNywzOTM3LDM5MzcsMzkzNywzOTQ1LDM5NTMsMzk1MywzOTUzLDM5NjEsMzk2OSwzOTY5LDM5NzcsMzk4NSwzOTkzLDQwMDEsMjAwOSwyMDA5LDQwMDksNDAwOSw0MDA5LDQwMDksNDAwOSw0MDA5LDQwMDksNDAwOSw0MDA5LDQwMDksNDAwOSw0MDA5LDQwMTcsNDAyNSw0MDMzLDQwNDEsNDA0OSw0MDU3LDQwNjUsNDA3Myw0MDgxLDQwODEsNDA4MSw0MDgxLDQwODEsNDA4MSw0MDgxLDQwODksNDA5Nyw0MDk3LDQxMDUsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDExMyw0MTEzLDQxMTMsNDEyMSw0MTIxLDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTI5LDQxMjksNDEyOSw0MTM3LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE0NSw0MTQ1LDQxNDUsNDE1Myw0MTYxLDQxNjksNDE2OSw0MTY5LDQxNjksNDE2OSw0MTY5LDQxNjksNDE2OSw0MTc3LDQxODUsNDE5Myw0MjAxLDQyMDksNDIxNyw0MjE3LDQyMjUsNDIzMyw0MjMzLDQyMzMsNDIzMyw0MjMzLDQyMzMsNDIzMyw0MjMzLDQyNDEsNDI0OSw0MjU3LDQyNjUsNDI3Myw0MjgxLDQyODksNDI5Nyw0MzA1LDQzMTMsNDMyMSw0MzI5LDQzMzcsNDM0NSw0MzUzLDQzNjEsNDM2MSw0MzY5LDQzNzcsNDM4NSw0Mzg1LDQzODUsNDM4NSw0MzkzLDQ0MDEsNDQwOSw0NDA5LDQ0MDksNDQwOSw0NDA5LDQ0MDksNDQxNyw0NDI1LDQ0MzMsNDQ0MSw0NDQ5LDQ0NTcsNDQ2NSw0NDczLDQ0ODEsNDQ4OSw0NDk3LDQ1MDUsNDUxMyw0NTIxLDQ1MjksNDUzNyw0NTQ1LDQ1NTMsNDU2MSw0NTY5LDQ1NzcsNDU4NSw0NTkzLDQ2MDEsNDYwOSw0NjE3LDQ2MjUsNDYzMyw0NjQxLDQ2NDksNDY1Nyw0NjY1LDQ2NzMsNDY4MSw0Njg5LDQ2OTcsNDcwNSw0NzEzLDQ3MjEsNDcyOSw0NzM3LDQ3NDUsNDc1Myw0NzYxLDQ3NjksNDc3Nyw0Nzg1LDQ3OTMsNDgwMSw0ODA5LDQ4MTcsNDgyNSw0ODMzLDQ4NDEsNDg0OSw0ODU3LDQ4NjUsNDg3Myw0ODgxLDQ4ODksNDg5Nyw0OTA1LDQ5MTMsNDkyMSw0OTI5LDQ5MzcsNDk0NSw0OTUzLDQ5NjEsNDk2OSw0OTc3LDQ5ODUsNDk5Myw1MDAxLDUwMDksNTAxNyw1MDI1LDUwMzMsNTA0MSw1MDQ5LDUwNTcsNTA2NSw1MDczLDUwODEsNTA4OSw1MDk3LDUxMDUsNTExMyw1MTIxLDUxMjksNTEzNyw1MTQ1LDUxNTMsNTE2MSw1MTY5LDUxNzcsNTE4NSw1MTkzLDUyMDEsNTIwOSw1MjE3LDUyMjUsNTIzMyw1MjQxLDUyNDksNTI1Nyw1MjY1LDUyNzMsNTI4MSw1Mjg5LDUyOTcsNTMwNSw1MzEzLDUzMjEsNTMyOSw1MzM3LDUzNDUsNTM1Myw1MzYxLDUzNjksNTM3Nyw1Mzg1LDUzOTMsNTQwMSw1NDA5LDU0MTcsNTQyNSw1NDMzLDU0NDEsNTQ0OSw1NDU3LDU0NjUsNTQ3Myw1NDgxLDU0ODksNTQ5Nyw1NTA1LDU1MTMsNTUyMSw1NTI5LDU1MzcsNTU0NSw1NTUzLDU1NjEsNTU2OSw1NTc3LDU1ODUsNTU5Myw1NjAxLDU2MDksNTYxNyw1NjI1LDU2MzMsNTY0MSw1NjQ5LDU2NTcsNTY2NSw1NjczLDU2ODEsNTY4OSw1Njk3LDU3MDUsNTcxMyw1NzIxLDU3MjksNTczNyw1NzQ1LDU3NTMsNTc2MSw1NzY5LDU3NzcsNTc4NSw1NzkzLDU4MDEsNTgwOSw1ODE3LDU4MjUsNTgzMyw1ODQxLDU4NDksNTg1Nyw1ODY1LDU4NzMsNTg4MSw1ODg5LDU4OTcsNTkwNSw1OTEzLDU5MjEsNTkyOSw1OTM3LDU5NDUsNTk1Myw1OTYxLDU5NjksNTk3Nyw1OTg1LDU5OTMsNjAwMSw2MDA5LDYwMTcsNjAyNSw2MDMzLDYwNDEsNjA0OSw2MDU3LDYwNjUsNjA3Myw2MDgxLDYwODksNjA5Nyw2MTA1LDYxMTMsNjEyMSw2MTI5LDYxMzcsNjE0NSw2MTUzLDYxNjEsNjE2OSw2MTc3LDYxODUsNjE5Myw2MjAxLDYyMDksNjIxNyw2MjI1LDYyMzMsNjI0MSw2MjQ5LDYyNTcsNjI2NSw2MjczLDYyODEsNjI4OSw2Mjk3LDYzMDUsNjMxMyw2MzIxLDYzMjksNjMzNyw2MzQ1LDYzNTMsNjM2MSw2MzY5LDYzNzcsNjM4NSw2MzkzLDY0MDEsNjQwOSw2NDE3LDY0MjUsNjQzMyw2NDQxLDY0NDksNjQ1Nyw2NDY1LDY0NzMsNjQ4MSw2NDg5LDY0OTcsNjUwNSw2NTEzLDY1MjEsNjUyOSw2NTM3LDY1NDUsNjU1Myw2NTYxLDY1NjksNjU3Nyw2NTg1LDY1OTMsNjYwMSw2NjA5LDY2MTcsNjYyNSw2NjMzLDY2NDEsNjY0OSw2NjU3LDY2NjUsNjY3Myw2NjgxLDY2ODksNjY5Nyw2NzA1LDY3MTMsNjcyMSw2NzI5LDY3MzcsNjc0NSw2NzUzLDY3NjEsNjc2OSw2Nzc3LDY3ODUsNjc5Myw2ODAxLDY4MDksNjgxNyw2ODI1LDY4MzMsNjg0MSw2ODQ5LDY4NTcsNjg2NSw2ODczLDY4ODEsNjg4OSw2ODk3LDY5MDUsNjkxMyw2OTIxLDY5MjksNjkzNyw2OTQ1LDY5NTMsNjk2MSw2OTY5LDY5NzcsNjk4NSw2OTkzLDcwMDEsNzAwOSw3MDE3LDcwMjUsNzAzMyw3MDQxLDcwNDksNzA1Nyw3MDY1LDcwNzMsNzA4MSw3MDg5LDcwOTcsNzEwNSw3MTEzLDcxMjEsNzEyOSw3MTM3LDcxNDUsNzE1Myw3MTYxLDcxNjksNzE3Nyw3MTg1LDcxOTMsNzIwMSw3MjA5LDcyMTcsNzIyNSw3MjMzLDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDcyNDksNzI0OSw3MjQ5LDcyNDksNzI0OSw3MjQ5LDcyNDksNzI0OSw3MjQ5LDcyNDksNzI0OSw3MjQ5LDcyNDksNzI0OSw3MjQ5LDcyNDksNzI1Nyw3MjY1LDcyNzMsNzI4MSw3MjgxLDcyODEsNzI4MSw3MjgxLDcyODEsNzI4MSw3MjgxLDcyODEsNzI4MSw3MjgxLDcyODEsNzI4MSw3MjgxLDcyODksNzI5Nyw3MzA1LDczMDUsNzMwNSw3MzA1LDczMTMsNzMyMSw3MzI5LDczMzcsNzM0NSw3MzUzLDczNTMsNzM1Myw3MzYxLDczNjksNzM3Nyw3Mzg1LDczOTMsNzQwMSw3NDA5LDc0MTcsNzQyNSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzI0MSw3MjQxLDcyNDEsNzk3Miw3OTcyLDgxMDAsODE2NCw4MjI4LDgyOTIsODM1Niw4NDIwLDg0ODQsODU0OCw4NjEyLDg2NzYsODc0MCw4ODA0LDg4NjgsODkzMiw4OTk2LDkwNjAsOTEyNCw5MTg4LDkyNTIsOTMxNiw5MzgwLDk0NDQsOTUwOCw5NTcyLDk2MzYsOTcwMCw5NzY0LDk4MjgsOTg5Miw5OTU2LDI1OTMsMjY1NywyNzIxLDI1MjksMjc4NSwyNTI5LDI4NDksMjkxMywyOTc3LDMwNDEsMzEwNSwzMTY5LDMyMzMsMzI5NywyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMzM2MSwyNTI5LDI1MjksMjUyOSwzNDI1LDI1MjksMjUyOSwzNDg5LDM1NTMsMjUyOSwzNjE3LDM2ODEsMzc0NSwzODA5LDM4NzMsMzkzNyw0MDAxLDQwNjUsNDEyOSw0MTkzLDQyNTcsNDMyMSw0Mzg1LDQ0NDksNDUxMyw0NTc3LDQ2NDEsNDcwNSw0NzY5LDQ4MzMsNDg5Nyw0OTYxLDUwMjUsNTA4OSw1MTUzLDUyMTcsNTI4MSw1MzQ1LDU0MDksNTQ3Myw1NTM3LDU2MDEsNTY2NSw1NzI5LDU3OTMsNTg1Nyw1OTIxLDU5ODUsNjA0OSw2MTEzLDYxNzcsNjI0MSw2MzA1LDYzNjksNjQzMyw2NDk3LDY1NjEsNjYyNSw2Njg5LDY3NTMsNjgxNyw2ODgxLDY5NDUsNzAwOSw3MDczLDcxMzcsNzIwMSw3MjY1LDczMjksNzM5Myw3NDU3LDc1MjEsNzU4NSw3NjQ5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSwyNTI5LDI1MjksMjUyOSw3NzEzLDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksNzQzMyw3NDMzLDc0MzMsNzQzMyw3NDMzLDc0MzMsNzQzMyw3NDQxLDc0NDksNzQ1Nyw3NDU3LDc0NTcsNzQ1Nyw3NDU3LDc0NTcsNzQ2NSwyMDA5LDIwMDksMjAwOSwyMDA5LDc0NzMsNzQ3Myw3NDczLDc0NzMsNzQ3Myw3NDczLDc0NzMsNzQ3Myw3NDgxLDc0ODksNzQ5Nyw3NTA1LDc1MDUsNzUwNSw3NTA1LDc1MDUsNzUxMyw3NTIxLDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSw3NTI5LDc1MjksNzUzNyw3NTQ1LDc1NDUsNzU0NSw3NTQ1LDc1NDUsNzU1Myw3NTYxLDc1NjEsNzU2MSw3NTYxLDc1NjEsNzU2MSw3NTYxLDc1NjksNzU3Nyw3NTg1LDc1OTMsNzU5Myw3NTkzLDc1OTMsNzU5Myw3NTkzLDc2MDEsNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjA5LDc2MDksNzYwOSw3NjE3LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDc2MjUsNzYzMyw3NjQxLDc2NDksNzY1Nyw3NjY1LDc2NzMsNzY4MSw3Njg5LDc2OTcsNzcwNSwyMDA5LDc3MTMsNzcyMSw3NzI5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksNzczNyw3NzQ1LDc3NTMsMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjEsNzc2MSw3NzYxLDc3NjksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSw3Nzc3LDc3NzcsNzc3Nyw3Nzc3LDc3NzcsNzc3Nyw3Nzc3LDc3NzcsNzc3Nyw3Nzc3LDc3NzcsNzc3Nyw3Nzc3LDc3NzcsNzc3Nyw3Nzc3LDc3NzcsNzc3Nyw3Nzg1LDc3OTMsNzgwMSw3ODA5LDc4MDksNzgwOSw3ODA5LDc4MDksNzgwOSw3ODE3LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgyNSw3ODI1LDc4MjUsNzgzMyw3ODQxLDc4NDksMjAwOSwyMDA5LDIwMDksNzg1NywyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSw3ODY1LDc4NjUsNzg2NSw3ODY1LDc4NjUsNzg2NSw3ODY1LDc4NjUsNzg2NSw3ODY1LDc4NjUsNzg3Myw3ODgxLDc4ODksNzg5Nyw3ODk3LDc4OTcsNzg5Nyw3OTA1LDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkxMyw3OTEzLDc5MTMsNzkyMSw3OTI5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDc5MzcsNzkzNyw3OTM3LDc5MzcsNzkzNyw3OTM3LDc5MzcsNzk0NSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksNzk1Myw3OTUzLDc5NTMsNzk1Myw3OTUzLDc5NTMsNzk1MywyMDA5LDc5NjEsNzk2OSw3OTc3LDc5ODUsNzk5MywyMDA5LDIwMDksODAwMSw4MDA5LDgwMDksODAwOSw4MDA5LDgwMDksODAwOSw4MDA5LDgwMDksODAwOSw4MDA5LDgwMDksODAwOSw4MDA5LDgwMTcsODAyNSw4MDI1LDgwMjUsODAyNSw4MDI1LDgwMjUsODAyNSw4MDMzLDgwNDEsODA0OSw4MDU3LDgwNjUsODA3Myw4MDgxLDgwODEsODA4MSw4MDgxLDgwODEsODA4MSw4MDgxLDgwODEsODA4MSw4MDgxLDgwODEsODA4OSwyMDA5LDgwOTcsODA5Nyw4MDk3LDgxMDUsMjAwOSwyMDA5LDIwMDksMjAwOSw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTEzLDgxMTMsODExMyw4MTIxLDgxMjksODEzNyw4MTM3LDgxMzcsODEzNyw4MTM3LDgxMzcsODEzNyw4MTM3LDgxMzcsODEzNyw4MTM3LDgxMzcsODEzNyw4MTM3LDgxNDUsMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSwyMDA5LDIwMDksMjAwOSw2NzQ5Niw2NzQ5Niw2NzQ5NiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxNywzNCwzMCwzMCwzMywyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOCw2LDMsMTIsOSwxMCwxMiwzLDAsMiwxMiw5LDgsMTYsOCw3LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDgsOCwxMiwxMiwxMiw2LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsOSwyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsMTcsMSwxMiwyMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDIxLDIxLDM1LDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDQsMCwxMCw5LDksOSwxMiwyOSwyOSwxMiwyOSwzLDEyLDE3LDEyLDEyLDEwLDksMjksMjksMTgsMTIsMjksMjksMjksMjksMjksMywyOSwyOSwyOSwwLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDE4LDI5LDI5LDI5LDE4LDI5LDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDI5LDI5LDI5LDEyLDI5LDEyLDE4LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDQsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsNCw0LDQsNCw0LDQsNCwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiw4LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDgsMTcsMzksMzksMzksMzksOSwzOSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxNywyMSwxMiwyMSwyMSwxMiwyMSwyMSw2LDIxLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEzLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEwLDEwLDEwLDgsOCwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSw2LDYsNiw2LDYsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTAsMTEsMTEsMTIsMTIsMTIsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsNiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwyMSwyMSwxMiwyMSwyMSwyMSwyMSwxMiwxMiwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiw4LDYsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMjEsMjEsMjEsMTIsMjEsMjEsMjEsMjEsMjEsMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMTcsMTcsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMjEsMjEsMjEsMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMjEsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMzksMzksMzksMzksMzksMzksMzksMzksMjEsMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMzksMzksMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTIsMTIsMTAsMTAsMTIsMTIsMTIsMTIsMTIsMTAsMTIsOSwzOSwzOSwzOSwzOSwzOSwyMSwyMSwyMSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwyMSwyMSwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwyMSwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMiw5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDIxLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDM5LDM5LDEyLDM5LDM5LDM5LDM5LDM5LDM5LDIxLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDksMTIsMzksMzksMzksMzksMzksMzksMjEsMjEsMjEsMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMzksMzksMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMjEsMjEsMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMjEsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMjEsMjEsMzksMzksMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMzksMTIsMTIsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMjEsMjEsMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMzksMzksMzksMzksMzksMzksMzksMzksMjEsMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMjEsMjEsMzksMzksMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMzksMTAsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMjEsMjEsMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMzksMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzksMzksMzksMzksOSwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwxMiwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxNywxNywzOSwzOSwzOSwzOSwzOSwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzOSwzOSwzNiwzNiwzNiwzNiwxMiwxOCwxOCwxOCwxOCwxMiwxOCwxOCw0LDE4LDE4LDE3LDQsNiw2LDYsNiw2LDQsMTIsNiwxMiwxMiwxMiwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNywyMSwxMiwyMSwxMiwyMSwwLDEsMCwxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDE3LDIxLDIxLDIxLDIxLDIxLDE3LDIxLDIxLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDM5LDE3LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDE4LDE4LDE3LDE4LDEyLDEyLDEyLDEyLDEyLDQsNCwzOSwzOSwzOSwzOSwzOSwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxNywxNywxMiwxMiwxMiwxMiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzNiwzNiwzNiwzNiwzNiwzNiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwyMSwyMSwyMSwxMiwxNywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxNywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwwLDEsMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTcsMTcsMTcsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMTcsMTcsMzksMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMjEsMjEsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMTcsMTcsNSwzNiwxNywxMiwxNyw5LDM2LDM2LDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDYsNiwxNywxNywxOCwxMiw2LDYsMTIsMjEsMjEsMjEsNCwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwzOSwzOSwxMiwzOSwzOSwzOSw2LDYsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzksMzksMzksMzksMzksMzksMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMzYsMzYsMzYsMzYsMzYsMzYsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMzksMzksMTIsMTIsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzksMzksMjEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMzksMzksMzksMzksMzksMzksMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzYsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMzksMzksMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTcsMTcsMTIsMTcsMTcsMTcsMTcsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMzksMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMzksMzksMzksMTcsMTcsMTcsMTcsMTcsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMzksMzksMzksMTIsMTIsMTIsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTcsMTcsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMzksMzksMzksMzksMzksMzksMzksMjEsMjEsMjEsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMjEsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTgsMTIsMzksMTcsMTcsMTcsMTcsMTcsMTcsMTcsNCwxNywxNywxNywyMCwyMSwyMSwyMSwyMSwxNyw0LDE3LDE3LDE5LDI5LDI5LDEyLDMsMywwLDMsMywzLDAsMywyOSwyOSwxMiwxMiwxNSwxNSwxNSwxNywzMCwzMCwyMSwyMSwyMSwyMSwyMSw0LDEwLDEwLDEwLDEwLDEwLDEwLDEwLDEwLDEyLDMsMywyOSw1LDUsMTIsMTIsMTIsMTIsMTIsMTIsOCwwLDEsNSw1LDUsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTcsMTIsMTcsMTcsMTcsMTcsMTIsMTcsMTcsMTcsMjIsMTIsMTIsMTIsMTIsMzksMzksMzksMzksMzksMjEsMjEsMjEsMjEsMjEsMjEsMTIsMTIsMzksMzksMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMCwxLDI5LDEyLDI5LDI5LDI5LDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsMSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSw5LDksOSw5LDksOSw5LDEwLDksOSw5LDksOSw5LDksOSw5LDksOSw5LDksOSwxMCw5LDksOSw5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEwLDEyLDI5LDEyLDEyLDEyLDEwLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjksMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjksMjksMTIsMTIsMTIsMTIsMTIsMjksMTIsMTIsMjksMTIsMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMTIsMTIsMTIsMTIsMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjksMTIsMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMjksMTIsMjksMjksMTIsMTIsMTIsMjksMjksMTIsMTIsMjksMTIsMTIsMTIsMjksMTIsMjksOSw5LDEyLDI5LDEyLDEyLDEyLDEyLDI5LDEyLDEyLDI5LDI5LDI5LDI5LDEyLDEyLDI5LDEyLDI5LDEyLDI5LDI5LDI5LDI5LDI5LDI5LDEyLDI5LDEyLDEyLDEyLDEyLDEyLDI5LDI5LDI5LDI5LDEyLDEyLDEyLDEyLDI5LDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDI5LDEyLDEyLDI5LDI5LDI5LDI5LDEyLDEyLDI5LDI5LDEyLDEyLDI5LDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDI5LDEyLDEyLDI5LDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDI5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDE0LDE0LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwxNCwxNCwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwxMiwxMiwxMiwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwxMiwyOSwyOSwyOSwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwxMiwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwxMiwxMiwyOSwyOSwxMiwxMiwxMiwxMiwyOSwyOSwxMiwxMiwyOSwyOSwxMiwxMiwxMiwxMiwyOSwyOSwyOSwxMiwxMiwyOSwxMiwxMiwyOSwyOSwyOSwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwyOSwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwxNCwxNCwxMiwyOSwyOSwxMiwxMiwyOSwxMiwxMiwxMiwxMiwyOSwyOSwxMiwxMiwxMiwxMiwxNCwxNCwyOSwyOSwxNCwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwxNCwxMiwxMiwxMiwxMiwyOSwxMiwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwxMiwyOSwyOSwyOSwxMiwyOSwxNCwyOSwyOSwxMiwyOSwyOSwxMiwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwyOSwyOSwyOSwyOSwxNCwxMiwxNCwxNCwxNCwyOSwxNCwxNCwyOSwyOSwyOSwxNCwxNCwyOSwyOSwxNCwyOSwyOSwxNCwxNCwxNCwxMiwyOSwxMiwxMiwxMiwxMiwyOSwyOSwxNCwyOSwyOSwyOSwyOSwyOSwyOSwxNCwxNCwxNCwxNCwxNCwyOSwxNCwxNCwxNCwxNCwyOSwyOSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwxMiwxMiwxMiwzLDMsMywzLDEyLDEyLDEyLDYsNiwxMiwxMiwxMiwxMiwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMjksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMCwxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsMSwwLDEsMCwxLDAsMSwwLDEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwwLDEsMCwxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyOSwyOSwyOSwyOSwyOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwxMiwxMiwzOSwzOSwzOSwzOSwzOSw2LDE3LDE3LDE3LDEyLDYsMTcsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTcsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMjEsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMzksMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMywzLDMsMywzLDMsMywzLDMsMywzLDMsMywzLDE3LDE3LDE3LDE3LDE3LDE3LDE3LDE3LDEyLDE3LDAsMTcsMTIsMTIsMywzLDEyLDEyLDMsMywwLDEsMCwxLDAsMSwwLDEsMTcsMTcsMTcsMTcsNiwxMiwxNywxNywxMiwxNywxNywxMiwxMiwxMiwxMiwxMiwxOSwxOSwzOSwzOSwzOSwzOSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxLDEsMTQsMTQsNSwxNCwxNCwwLDEsMCwxLDAsMSwwLDEsMCwxLDE0LDE0LDAsMSwwLDEsMCwxLDAsMSw1LDAsMSwxLDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDIxLDIxLDIxLDIxLDIxLDIxLDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDE0LDUsNSwxNCwxNCwxNCwzOSwzMiwxNCwzMiwxNCwzMiwxNCwzMiwxNCwzMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwzMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwzMiwxNCwzMiwxNCwzMiwxNCwxNCwxNCwxNCwxNCwxNCwzMiwxNCwxNCwxNCwxNCwxNCwxNCwzMiwzMiwzOSwzOSwyMSwyMSw1LDUsNSw1LDE0LDUsMzIsMTQsMzIsMTQsMzIsMTQsMzIsMTQsMzIsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMzIsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMzIsMTQsMzIsMTQsMzIsMTQsMTQsMTQsMTQsMTQsMTQsMzIsMTQsMTQsMTQsMTQsMTQsMTQsMzIsMzIsMTQsMTQsMTQsMTQsNSwzMiw1LDUsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMjksMjksMjksMjksMjksMjksMjksMjksMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsNSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNywxNywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNyw2LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDEyLDE3LDE3LDE3LDE3LDE3LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDEyLDEyLDEyLDIxLDEyLDEyLDEyLDEyLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEwLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDE4LDE4LDYsNiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxNywxNywxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzOSwzOSwzOSwzOSwzOSwzOSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxNywxNywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwyNSwzOSwzOSwzOSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxNywxNywxNywxMiwxMiwxMiwxMiwxMiwxMiwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzOSwzOSwxMiwxNywxNywxNywzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwzNiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwxNywxNywxMiwxMiwxMiwyMSwyMSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxNywyMSwyMSwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwzOSwzOSwzOSwzOSwzOSwzOSwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyMywyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwyNCwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwyNiwzOSwzOSwzOSwzOSwyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywyNywzOSwzOSwzOSwzOSwzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywzNywxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwxMywyMSwxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMiwxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMywxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwwLDEsMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMzksMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTAsMTIsMzksMzksMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsMjEsOCwxLDEsOCw4LDYsNiwwLDEsMTUsMzksMzksMzksMzksMzksMzksMjEsMjEsMjEsMjEsMjEsMjEsMjEsMzksMzksMzksMzksMzksMzksMzksMzksMzksMTQsMTQsMTQsMTQsMTQsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwxNCwxNCwwLDEsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMSwxNCwxLDM5LDUsNSw2LDYsMTQsMCwxLDAsMSwwLDEsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsOSwxMCwxNCwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwyMiwzOSw2LDE0LDE0LDksMTAsMTQsMTQsMCwxLDE0LDE0LDEsMTQsMSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCw1LDUsMTQsMTQsMTQsNiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwwLDE0LDEsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMTQsMCwxNCwxLDE0LDAsMSwxLDAsMSwxLDUsMTIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsMTIsNSw1LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDEwLDksMTQsMTQsMTQsOSw5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDMxLDI5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDE3LDE3LDE3LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDE3LDE3LDE3LDE3LDE3LDE3LDE3LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDE3LDE3LDE3LDE3LDE3LDE3LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDE3LDE3LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDE3LDE3LDE3LDE3LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDE3LDE3LDE3LDE3LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDIxLDIxLDIxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDEyLDEyLDEyLDEyLDE3LDE3LDEyLDE3LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDIxLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDExLDExLDExLDExLDExLDExLDExLDExLDExLDExLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDE3LDE3LDE3LDE3LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDM5LDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDAsMCwwLDEsMSwxLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEyLDEsMTIsMTIsMTIsMCwxLDAsMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwwLDEsMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwyMSwyMSwyMSwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwyMSwyMSwyMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwzOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwxMiwxMiwzOSwzOSwzOSwzOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwyOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwyOCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxNCwxNCwxNCwxNCwxNCwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxNCwxMiwxNCwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxNCwxMiwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwxMiwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwxNCwzOSwzOSwzOSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwyMSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOSwzOV0sCmhpZ2hTdGFydDo5MTk1NTIsZXJyb3JWYWx1ZTowfX0sZnVuY3Rpb24odCxlLG4pe3QuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9fV0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1wZGZtYWtlLm1pbi5qcy5tYXA="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
39 <script src="data:application/x-javascript;base64,d2luZG93LnBkZk1ha2UgPSB3aW5kb3cucGRmTWFrZSB8fCB7fTsgd2luZG93LnBkZk1ha2UudmZzID0geyJMSUNFTlNFLnR4dCI6IkRRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCQmNHRmphR1VnVEdsalpXNXpaUTBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnVm1WeWMybHZiaUF5TGpBc0lFcGhiblZoY25rZ01qQXdOQTBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdhSFIwY0RvdkwzZDNkeTVoY0dGamFHVXViM0puTDJ4cFkyVnVjMlZ6THcwS0RRb2dJQ0JVUlZKTlV5QkJUa1FnUTA5T1JFbFVTVTlPVXlCR1QxSWdWVk5GTENCU1JWQlNUMFJWUTFSSlQwNHNJRUZPUkNCRVNWTlVVa2xDVlZSSlQwNE5DZzBLSUNBZ01TNGdSR1ZtYVc1cGRHbHZibk11RFFvTkNpQWdJQ0FnSUNKTWFXTmxibk5sSWlCemFHRnNiQ0J0WldGdUlIUm9aU0IwWlhKdGN5QmhibVFnWTI5dVpHbDBhVzl1Y3lCbWIzSWdkWE5sTENCeVpYQnliMlIxWTNScGIyNHNEUW9nSUNBZ0lDQmhibVFnWkdsemRISnBZblYwYVc5dUlHRnpJR1JsWm1sdVpXUWdZbmtnVTJWamRHbHZibk1nTVNCMGFISnZkV2RvSURrZ2IyWWdkR2hwY3lCa2IyTjFiV1Z1ZEM0TkNnMEtJQ0FnSUNBZ0lreHBZMlZ1YzI5eUlpQnphR0ZzYkNCdFpXRnVJSFJvWlNCamIzQjVjbWxuYUhRZ2IzZHVaWElnYjNJZ1pXNTBhWFI1SUdGMWRHaHZjbWw2WldRZ1lua05DaUFnSUNBZ0lIUm9aU0JqYjNCNWNtbG5hSFFnYjNkdVpYSWdkR2hoZENCcGN5Qm5jbUZ1ZEdsdVp5QjBhR1VnVEdsalpXNXpaUzROQ2cwS0lDQWdJQ0FnSWt4bFoyRnNJRVZ1ZEdsMGVTSWdjMmhoYkd3Z2JXVmhiaUIwYUdVZ2RXNXBiMjRnYjJZZ2RHaGxJR0ZqZEdsdVp5QmxiblJwZEhrZ1lXNWtJR0ZzYkEwS0lDQWdJQ0FnYjNSb1pYSWdaVzUwYVhScFpYTWdkR2hoZENCamIyNTBjbTlzTENCaGNtVWdZMjl1ZEhKdmJHeGxaQ0JpZVN3Z2IzSWdZWEpsSUhWdVpHVnlJR052YlcxdmJnMEtJQ0FnSUNBZ1kyOXVkSEp2YkNCM2FYUm9JSFJvWVhRZ1pXNTBhWFI1TGlCR2IzSWdkR2hsSUhCMWNuQnZjMlZ6SUc5bUlIUm9hWE1nWkdWbWFXNXBkR2x2Yml3TkNpQWdJQ0FnSUNKamIyNTBjbTlzSWlCdFpXRnVjeUFvYVNrZ2RHaGxJSEJ2ZDJWeUxDQmthWEpsWTNRZ2IzSWdhVzVrYVhKbFkzUXNJSFJ2SUdOaGRYTmxJSFJvWlEwS0lDQWdJQ0FnWkdseVpXTjBhVzl1SUc5eUlHMWhibUZuWlcxbGJuUWdiMllnYzNWamFDQmxiblJwZEhrc0lIZG9aWFJvWlhJZ1lua2dZMjl1ZEhKaFkzUWdiM0lOQ2lBZ0lDQWdJRzkwYUdWeWQybHpaU3dnYjNJZ0tHbHBLU0J2ZDI1bGNuTm9hWEFnYjJZZ1ptbG1kSGtnY0dWeVkyVnVkQ0FvTlRBbEtTQnZjaUJ0YjNKbElHOW1JSFJvWlEwS0lDQWdJQ0FnYjNWMGMzUmhibVJwYm1jZ2MyaGhjbVZ6TENCdmNpQW9hV2xwS1NCaVpXNWxabWxqYVdGc0lHOTNibVZ5YzJocGNDQnZaaUJ6ZFdOb0lHVnVkR2wwZVM0TkNnMEtJQ0FnSUNBZ0lsbHZkU0lnS0c5eUlDSlpiM1Z5SWlrZ2MyaGhiR3dnYldWaGJpQmhiaUJwYm1ScGRtbGtkV0ZzSUc5eUlFeGxaMkZzSUVWdWRHbDBlUTBLSUNBZ0lDQWdaWGhsY21OcGMybHVaeUJ3WlhKdGFYTnphVzl1Y3lCbmNtRnVkR1ZrSUdKNUlIUm9hWE1nVEdsalpXNXpaUzROQ2cwS0lDQWdJQ0FnSWxOdmRYSmpaU0lnWm05eWJTQnphR0ZzYkNCdFpXRnVJSFJvWlNCd2NtVm1aWEp5WldRZ1ptOXliU0JtYjNJZ2JXRnJhVzVuSUcxdlpHbG1hV05oZEdsdmJuTXNEUW9nSUNBZ0lDQnBibU5zZFdScGJtY2dZblYwSUc1dmRDQnNhVzFwZEdWa0lIUnZJSE52Wm5SM1lYSmxJSE52ZFhKalpTQmpiMlJsTENCa2IyTjFiV1Z1ZEdGMGFXOXVEUW9nSUNBZ0lDQnpiM1Z5WTJVc0lHRnVaQ0JqYjI1bWFXZDFjbUYwYVc5dUlHWnBiR1Z6TGcwS0RRb2dJQ0FnSUNBaVQySnFaV04wSWlCbWIzSnRJSE5vWVd4c0lHMWxZVzRnWVc1NUlHWnZjbTBnY21WemRXeDBhVzVuSUdaeWIyMGdiV1ZqYUdGdWFXTmhiQTBLSUNBZ0lDQWdkSEpoYm5ObWIzSnRZWFJwYjI0Z2IzSWdkSEpoYm5Oc1lYUnBiMjRnYjJZZ1lTQlRiM1Z5WTJVZ1ptOXliU3dnYVc1amJIVmthVzVuSUdKMWRBMEtJQ0FnSUNBZ2JtOTBJR3hwYldsMFpXUWdkRzhnWTI5dGNHbHNaV1FnYjJKcVpXTjBJR052WkdVc0lHZGxibVZ5WVhSbFpDQmtiMk4xYldWdWRHRjBhVzl1TEEwS0lDQWdJQ0FnWVc1a0lHTnZiblpsY25OcGIyNXpJSFJ2SUc5MGFHVnlJRzFsWkdsaElIUjVjR1Z6TGcwS0RRb2dJQ0FnSUNBaVYyOXlheUlnYzJoaGJHd2diV1ZoYmlCMGFHVWdkMjl5YXlCdlppQmhkWFJvYjNKemFHbHdMQ0IzYUdWMGFHVnlJR2x1SUZOdmRYSmpaU0J2Y2cwS0lDQWdJQ0FnVDJKcVpXTjBJR1p2Y20wc0lHMWhaR1VnWVhaaGFXeGhZbXhsSUhWdVpHVnlJSFJvWlNCTWFXTmxibk5sTENCaGN5QnBibVJwWTJGMFpXUWdZbmtnWVEwS0lDQWdJQ0FnWTI5d2VYSnBaMmgwSUc1dmRHbGpaU0IwYUdGMElHbHpJR2x1WTJ4MVpHVmtJR2x1SUc5eUlHRjBkR0ZqYUdWa0lIUnZJSFJvWlNCM2IzSnJEUW9nSUNBZ0lDQW9ZVzRnWlhoaGJYQnNaU0JwY3lCd2NtOTJhV1JsWkNCcGJpQjBhR1VnUVhCd1pXNWthWGdnWW1Wc2IzY3BMZzBLRFFvZ0lDQWdJQ0FpUkdWeWFYWmhkR2wyWlNCWGIzSnJjeUlnYzJoaGJHd2diV1ZoYmlCaGJua2dkMjl5YXl3Z2QyaGxkR2hsY2lCcGJpQlRiM1Z5WTJVZ2IzSWdUMkpxWldOMERRb2dJQ0FnSUNCbWIzSnRMQ0IwYUdGMElHbHpJR0poYzJWa0lHOXVJQ2h2Y2lCa1pYSnBkbVZrSUdaeWIyMHBJSFJvWlNCWGIzSnJJR0Z1WkNCbWIzSWdkMmhwWTJnZ2RHaGxEUW9nSUNBZ0lDQmxaR2wwYjNKcFlXd2djbVYyYVhOcGIyNXpMQ0JoYm01dmRHRjBhVzl1Y3l3Z1pXeGhZbTl5WVhScGIyNXpMQ0J2Y2lCdmRHaGxjaUJ0YjJScFptbGpZWFJwYjI1ekRRb2dJQ0FnSUNCeVpYQnlaWE5sYm5Rc0lHRnpJR0VnZDJodmJHVXNJR0Z1SUc5eWFXZHBibUZzSUhkdmNtc2diMllnWVhWMGFHOXljMmhwY0M0Z1JtOXlJSFJvWlNCd2RYSndiM05sY3cwS0lDQWdJQ0FnYjJZZ2RHaHBjeUJNYVdObGJuTmxMQ0JFWlhKcGRtRjBhWFpsSUZkdmNtdHpJSE5vWVd4c0lHNXZkQ0JwYm1Oc2RXUmxJSGR2Y210eklIUm9ZWFFnY21WdFlXbHVEUW9nSUNBZ0lDQnpaWEJoY21GaWJHVWdabkp2YlN3Z2IzSWdiV1Z5Wld4NUlHeHBibXNnS0c5eUlHSnBibVFnWW5rZ2JtRnRaU2tnZEc4Z2RHaGxJR2x1ZEdWeVptRmpaWE1nYjJZc0RRb2dJQ0FnSUNCMGFHVWdWMjl5YXlCaGJtUWdSR1Z5YVhaaGRHbDJaU0JYYjNKcmN5QjBhR1Z5Wlc5bUxnMEtEUW9nSUNBZ0lDQWlRMjl1ZEhKcFluVjBhVzl1SWlCemFHRnNiQ0J0WldGdUlHRnVlU0IzYjNKcklHOW1JR0YxZEdodmNuTm9hWEFzSUdsdVkyeDFaR2x1WncwS0lDQWdJQ0FnZEdobElHOXlhV2RwYm1Gc0lIWmxjbk5wYjI0Z2IyWWdkR2hsSUZkdmNtc2dZVzVrSUdGdWVTQnRiMlJwWm1sallYUnBiMjV6SUc5eUlHRmtaR2wwYVc5dWN3MEtJQ0FnSUNBZ2RHOGdkR2hoZENCWGIzSnJJRzl5SUVSbGNtbDJZWFJwZG1VZ1YyOXlhM01nZEdobGNtVnZaaXdnZEdoaGRDQnBjeUJwYm5SbGJuUnBiMjVoYkd4NURRb2dJQ0FnSUNCemRXSnRhWFIwWldRZ2RHOGdUR2xqWlc1emIzSWdabTl5SUdsdVkyeDFjMmx2YmlCcGJpQjBhR1VnVjI5eWF5QmllU0IwYUdVZ1kyOXdlWEpwWjJoMElHOTNibVZ5RFFvZ0lDQWdJQ0J2Y2lCaWVTQmhiaUJwYm1ScGRtbGtkV0ZzSUc5eUlFeGxaMkZzSUVWdWRHbDBlU0JoZFhSb2IzSnBlbVZrSUhSdklITjFZbTFwZENCdmJpQmlaV2hoYkdZZ2IyWU5DaUFnSUNBZ0lIUm9aU0JqYjNCNWNtbG5hSFFnYjNkdVpYSXVJRVp2Y2lCMGFHVWdjSFZ5Y0c5elpYTWdiMllnZEdocGN5QmtaV1pwYm1sMGFXOXVMQ0FpYzNWaWJXbDBkR1ZrSWcwS0lDQWdJQ0FnYldWaGJuTWdZVzU1SUdadmNtMGdiMllnWld4bFkzUnliMjVwWXl3Z2RtVnlZbUZzTENCdmNpQjNjbWwwZEdWdUlHTnZiVzExYm1sallYUnBiMjRnYzJWdWRBMEtJQ0FnSUNBZ2RHOGdkR2hsSUV4cFkyVnVjMjl5SUc5eUlHbDBjeUJ5WlhCeVpYTmxiblJoZEdsMlpYTXNJR2x1WTJ4MVpHbHVaeUJpZFhRZ2JtOTBJR3hwYldsMFpXUWdkRzhOQ2lBZ0lDQWdJR052YlcxMWJtbGpZWFJwYjI0Z2IyNGdaV3hsWTNSeWIyNXBZeUJ0WVdsc2FXNW5JR3hwYzNSekxDQnpiM1Z5WTJVZ1kyOWtaU0JqYjI1MGNtOXNJSE41YzNSbGJYTXNEUW9nSUNBZ0lDQmhibVFnYVhOemRXVWdkSEpoWTJ0cGJtY2djM2x6ZEdWdGN5QjBhR0YwSUdGeVpTQnRZVzVoWjJWa0lHSjVMQ0J2Y2lCdmJpQmlaV2hoYkdZZ2IyWXNJSFJvWlEwS0lDQWdJQ0FnVEdsalpXNXpiM0lnWm05eUlIUm9aU0J3ZFhKd2IzTmxJRzltSUdScGMyTjFjM05wYm1jZ1lXNWtJR2x0Y0hKdmRtbHVaeUIwYUdVZ1YyOXlheXdnWW5WMERRb2dJQ0FnSUNCbGVHTnNkV1JwYm1jZ1kyOXRiWFZ1YVdOaGRHbHZiaUIwYUdGMElHbHpJR052Ym5Od2FXTjFiM1Z6YkhrZ2JXRnlhMlZrSUc5eUlHOTBhR1Z5ZDJselpRMEtJQ0FnSUNBZ1pHVnphV2R1WVhSbFpDQnBiaUIzY21sMGFXNW5JR0o1SUhSb1pTQmpiM0I1Y21sbmFIUWdiM2R1WlhJZ1lYTWdJazV2ZENCaElFTnZiblJ5YVdKMWRHbHZiaTRpRFFvTkNpQWdJQ0FnSUNKRGIyNTBjbWxpZFhSdmNpSWdjMmhoYkd3Z2JXVmhiaUJNYVdObGJuTnZjaUJoYm1RZ1lXNTVJR2x1WkdsMmFXUjFZV3dnYjNJZ1RHVm5ZV3dnUlc1MGFYUjVEUW9nSUNBZ0lDQnZiaUJpWldoaGJHWWdiMllnZDJodmJTQmhJRU52Ym5SeWFXSjFkR2x2YmlCb1lYTWdZbVZsYmlCeVpXTmxhWFpsWkNCaWVTQk1hV05sYm5OdmNpQmhibVFOQ2lBZ0lDQWdJSE4xWW5ObGNYVmxiblJzZVNCcGJtTnZjbkJ2Y21GMFpXUWdkMmwwYUdsdUlIUm9aU0JYYjNKckxnMEtEUW9nSUNBeUxpQkhjbUZ1ZENCdlppQkRiM0I1Y21sbmFIUWdUR2xqWlc1elpTNGdVM1ZpYW1WamRDQjBieUIwYUdVZ2RHVnliWE1nWVc1a0lHTnZibVJwZEdsdmJuTWdiMllOQ2lBZ0lDQWdJSFJvYVhNZ1RHbGpaVzV6WlN3Z1pXRmphQ0JEYjI1MGNtbGlkWFJ2Y2lCb1pYSmxZbmtnWjNKaGJuUnpJSFJ2SUZsdmRTQmhJSEJsY25CbGRIVmhiQ3dOQ2lBZ0lDQWdJSGR2Y214a2QybGtaU3dnYm05dUxXVjRZMngxYzJsMlpTd2dibTh0WTJoaGNtZGxMQ0J5YjNsaGJIUjVMV1p5WldVc0lHbHljbVYyYjJOaFlteGxEUW9nSUNBZ0lDQmpiM0I1Y21sbmFIUWdiR2xqWlc1elpTQjBieUJ5WlhCeWIyUjFZMlVzSUhCeVpYQmhjbVVnUkdWeWFYWmhkR2wyWlNCWGIzSnJjeUJ2Wml3TkNpQWdJQ0FnSUhCMVlteHBZMng1SUdScGMzQnNZWGtzSUhCMVlteHBZMng1SUhCbGNtWnZjbTBzSUhOMVlteHBZMlZ1YzJVc0lHRnVaQ0JrYVhOMGNtbGlkWFJsSUhSb1pRMEtJQ0FnSUNBZ1YyOXlheUJoYm1RZ2MzVmphQ0JFWlhKcGRtRjBhWFpsSUZkdmNtdHpJR2x1SUZOdmRYSmpaU0J2Y2lCUFltcGxZM1FnWm05eWJTNE5DZzBLSUNBZ015NGdSM0poYm5RZ2IyWWdVR0YwWlc1MElFeHBZMlZ1YzJVdUlGTjFZbXBsWTNRZ2RHOGdkR2hsSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1EUW9nSUNBZ0lDQjBhR2x6SUV4cFkyVnVjMlVzSUdWaFkyZ2dRMjl1ZEhKcFluVjBiM0lnYUdWeVpXSjVJR2R5WVc1MGN5QjBieUJaYjNVZ1lTQndaWEp3WlhSMVlXd3NEUW9nSUNBZ0lDQjNiM0pzWkhkcFpHVXNJRzV2YmkxbGVHTnNkWE5wZG1Vc0lHNXZMV05vWVhKblpTd2djbTk1WVd4MGVTMW1jbVZsTENCcGNuSmxkbTlqWVdKc1pRMEtJQ0FnSUNBZ0tHVjRZMlZ3ZENCaGN5QnpkR0YwWldRZ2FXNGdkR2hwY3lCelpXTjBhVzl1S1NCd1lYUmxiblFnYkdsalpXNXpaU0IwYnlCdFlXdGxMQ0JvWVhabElHMWhaR1VzRFFvZ0lDQWdJQ0IxYzJVc0lHOW1abVZ5SUhSdklITmxiR3dzSUhObGJHd3NJR2x0Y0c5eWRDd2dZVzVrSUc5MGFHVnlkMmx6WlNCMGNtRnVjMlpsY2lCMGFHVWdWMjl5YXl3TkNpQWdJQ0FnSUhkb1pYSmxJSE4xWTJnZ2JHbGpaVzV6WlNCaGNIQnNhV1Z6SUc5dWJIa2dkRzhnZEdodmMyVWdjR0YwWlc1MElHTnNZV2x0Y3lCc2FXTmxibk5oWW14bERRb2dJQ0FnSUNCaWVTQnpkV05vSUVOdmJuUnlhV0oxZEc5eUlIUm9ZWFFnWVhKbElHNWxZMlZ6YzJGeWFXeDVJR2x1Wm5KcGJtZGxaQ0JpZVNCMGFHVnBjZzBLSUNBZ0lDQWdRMjl1ZEhKcFluVjBhVzl1S0hNcElHRnNiMjVsSUc5eUlHSjVJR052YldKcGJtRjBhVzl1SUc5bUlIUm9aV2x5SUVOdmJuUnlhV0oxZEdsdmJpaHpLUTBLSUNBZ0lDQWdkMmwwYUNCMGFHVWdWMjl5YXlCMGJ5QjNhR2xqYUNCemRXTm9JRU52Ym5SeWFXSjFkR2x2YmloektTQjNZWE1nYzNWaWJXbDBkR1ZrTGlCSlppQlpiM1VOQ2lBZ0lDQWdJR2x1YzNScGRIVjBaU0J3WVhSbGJuUWdiR2wwYVdkaGRHbHZiaUJoWjJGcGJuTjBJR0Z1ZVNCbGJuUnBkSGtnS0dsdVkyeDFaR2x1WnlCaERRb2dJQ0FnSUNCamNtOXpjeTFqYkdGcGJTQnZjaUJqYjNWdWRHVnlZMnhoYVcwZ2FXNGdZU0JzWVhkemRXbDBLU0JoYkd4bFoybHVaeUIwYUdGMElIUm9aU0JYYjNKckRRb2dJQ0FnSUNCdmNpQmhJRU52Ym5SeWFXSjFkR2x2YmlCcGJtTnZjbkJ2Y21GMFpXUWdkMmwwYUdsdUlIUm9aU0JYYjNKcklHTnZibk4wYVhSMWRHVnpJR1JwY21WamRBMEtJQ0FnSUNBZ2IzSWdZMjl1ZEhKcFluVjBiM0o1SUhCaGRHVnVkQ0JwYm1aeWFXNW5aVzFsYm5Rc0lIUm9aVzRnWVc1NUlIQmhkR1Z1ZENCc2FXTmxibk5sY3cwS0lDQWdJQ0FnWjNKaGJuUmxaQ0IwYnlCWmIzVWdkVzVrWlhJZ2RHaHBjeUJNYVdObGJuTmxJR1p2Y2lCMGFHRjBJRmR2Y21zZ2MyaGhiR3dnZEdWeWJXbHVZWFJsRFFvZ0lDQWdJQ0JoY3lCdlppQjBhR1VnWkdGMFpTQnpkV05vSUd4cGRHbG5ZWFJwYjI0Z2FYTWdabWxzWldRdURRb05DaUFnSURRdUlGSmxaR2x6ZEhKcFluVjBhVzl1TGlCWmIzVWdiV0Y1SUhKbGNISnZaSFZqWlNCaGJtUWdaR2x6ZEhKcFluVjBaU0JqYjNCcFpYTWdiMllnZEdobERRb2dJQ0FnSUNCWGIzSnJJRzl5SUVSbGNtbDJZWFJwZG1VZ1YyOXlhM01nZEdobGNtVnZaaUJwYmlCaGJua2diV1ZrYVhWdExDQjNhWFJvSUc5eUlIZHBkR2h2ZFhRTkNpQWdJQ0FnSUcxdlpHbG1hV05oZEdsdmJuTXNJR0Z1WkNCcGJpQlRiM1Z5WTJVZ2IzSWdUMkpxWldOMElHWnZjbTBzSUhCeWIzWnBaR1ZrSUhSb1lYUWdXVzkxRFFvZ0lDQWdJQ0J0WldWMElIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pvTkNnMEtJQ0FnSUNBZ0tHRXBJRmx2ZFNCdGRYTjBJR2RwZG1VZ1lXNTVJRzkwYUdWeUlISmxZMmx3YVdWdWRITWdiMllnZEdobElGZHZjbXNnYjNJTkNpQWdJQ0FnSUNBZ0lDQkVaWEpwZG1GMGFYWmxJRmR2Y210eklHRWdZMjl3ZVNCdlppQjBhR2x6SUV4cFkyVnVjMlU3SUdGdVpBMEtEUW9nSUNBZ0lDQW9ZaWtnV1c5MUlHMTFjM1FnWTJGMWMyVWdZVzU1SUcxdlpHbG1hV1ZrSUdacGJHVnpJSFJ2SUdOaGNuSjVJSEJ5YjIxcGJtVnVkQ0J1YjNScFkyVnpEUW9nSUNBZ0lDQWdJQ0FnYzNSaGRHbHVaeUIwYUdGMElGbHZkU0JqYUdGdVoyVmtJSFJvWlNCbWFXeGxjenNnWVc1a0RRb05DaUFnSUNBZ0lDaGpLU0JaYjNVZ2JYVnpkQ0J5WlhSaGFXNHNJR2x1SUhSb1pTQlRiM1Z5WTJVZ1ptOXliU0J2WmlCaGJua2dSR1Z5YVhaaGRHbDJaU0JYYjNKcmN3MEtJQ0FnSUNBZ0lDQWdJSFJvWVhRZ1dXOTFJR1JwYzNSeWFXSjFkR1VzSUdGc2JDQmpiM0I1Y21sbmFIUXNJSEJoZEdWdWRDd2dkSEpoWkdWdFlYSnJMQ0JoYm1RTkNpQWdJQ0FnSUNBZ0lDQmhkSFJ5YVdKMWRHbHZiaUJ1YjNScFkyVnpJR1p5YjIwZ2RHaGxJRk52ZFhKalpTQm1iM0p0SUc5bUlIUm9aU0JYYjNKckxBMEtJQ0FnSUNBZ0lDQWdJR1Y0WTJ4MVpHbHVaeUIwYUc5elpTQnViM1JwWTJWeklIUm9ZWFFnWkc4Z2JtOTBJSEJsY25SaGFXNGdkRzhnWVc1NUlIQmhjblFnYjJZTkNpQWdJQ0FnSUNBZ0lDQjBhR1VnUkdWeWFYWmhkR2wyWlNCWGIzSnJjenNnWVc1a0RRb05DaUFnSUNBZ0lDaGtLU0JKWmlCMGFHVWdWMjl5YXlCcGJtTnNkV1JsY3lCaElDSk9UMVJKUTBVaUlIUmxlSFFnWm1sc1pTQmhjeUJ3WVhKMElHOW1JR2wwY3cwS0lDQWdJQ0FnSUNBZ0lHUnBjM1J5YVdKMWRHbHZiaXdnZEdobGJpQmhibmtnUkdWeWFYWmhkR2wyWlNCWGIzSnJjeUIwYUdGMElGbHZkU0JrYVhOMGNtbGlkWFJsSUcxMWMzUU5DaUFnSUNBZ0lDQWdJQ0JwYm1Oc2RXUmxJR0VnY21WaFpHRmliR1VnWTI5d2VTQnZaaUIwYUdVZ1lYUjBjbWxpZFhScGIyNGdibTkwYVdObGN5QmpiMjUwWVdsdVpXUU5DaUFnSUNBZ0lDQWdJQ0IzYVhSb2FXNGdjM1ZqYUNCT1QxUkpRMFVnWm1sc1pTd2daWGhqYkhWa2FXNW5JSFJvYjNObElHNXZkR2xqWlhNZ2RHaGhkQ0JrYnlCdWIzUU5DaUFnSUNBZ0lDQWdJQ0J3WlhKMFlXbHVJSFJ2SUdGdWVTQndZWEowSUc5bUlIUm9aU0JFWlhKcGRtRjBhWFpsSUZkdmNtdHpMQ0JwYmlCaGRDQnNaV0Z6ZENCdmJtVU5DaUFnSUNBZ0lDQWdJQ0J2WmlCMGFHVWdabTlzYkc5M2FXNW5JSEJzWVdObGN6b2dkMmwwYUdsdUlHRWdUazlVU1VORklIUmxlSFFnWm1sc1pTQmthWE4wY21saWRYUmxaQTBLSUNBZ0lDQWdJQ0FnSUdGeklIQmhjblFnYjJZZ2RHaGxJRVJsY21sMllYUnBkbVVnVjI5eWEzTTdJSGRwZEdocGJpQjBhR1VnVTI5MWNtTmxJR1p2Y20wZ2IzSU5DaUFnSUNBZ0lDQWdJQ0JrYjJOMWJXVnVkR0YwYVc5dUxDQnBaaUJ3Y205MmFXUmxaQ0JoYkc5dVp5QjNhWFJvSUhSb1pTQkVaWEpwZG1GMGFYWmxJRmR2Y210ek95QnZjaXdOQ2lBZ0lDQWdJQ0FnSUNCM2FYUm9hVzRnWVNCa2FYTndiR0Y1SUdkbGJtVnlZWFJsWkNCaWVTQjBhR1VnUkdWeWFYWmhkR2wyWlNCWGIzSnJjeXdnYVdZZ1lXNWtEUW9nSUNBZ0lDQWdJQ0FnZDJobGNtVjJaWElnYzNWamFDQjBhR2x5WkMxd1lYSjBlU0J1YjNScFkyVnpJRzV2Y20xaGJHeDVJR0Z3Y0dWaGNpNGdWR2hsSUdOdmJuUmxiblJ6RFFvZ0lDQWdJQ0FnSUNBZ2IyWWdkR2hsSUU1UFZFbERSU0JtYVd4bElHRnlaU0JtYjNJZ2FXNW1iM0p0WVhScGIyNWhiQ0J3ZFhKd2IzTmxjeUJ2Ym14NUlHRnVaQTBLSUNBZ0lDQWdJQ0FnSUdSdklHNXZkQ0J0YjJScFpua2dkR2hsSUV4cFkyVnVjMlV1SUZsdmRTQnRZWGtnWVdSa0lGbHZkWElnYjNkdUlHRjBkSEpwWW5WMGFXOXVEUW9nSUNBZ0lDQWdJQ0FnYm05MGFXTmxjeUIzYVhSb2FXNGdSR1Z5YVhaaGRHbDJaU0JYYjNKcmN5QjBhR0YwSUZsdmRTQmthWE4wY21saWRYUmxMQ0JoYkc5dVozTnBaR1VOQ2lBZ0lDQWdJQ0FnSUNCdmNpQmhjeUJoYmlCaFpHUmxibVIxYlNCMGJ5QjBhR1VnVGs5VVNVTkZJSFJsZUhRZ1puSnZiU0IwYUdVZ1YyOXlheXdnY0hKdmRtbGtaV1FOQ2lBZ0lDQWdJQ0FnSUNCMGFHRjBJSE4xWTJnZ1lXUmthWFJwYjI1aGJDQmhkSFJ5YVdKMWRHbHZiaUJ1YjNScFkyVnpJR05oYm01dmRDQmlaU0JqYjI1emRISjFaV1FOQ2lBZ0lDQWdJQ0FnSUNCaGN5QnRiMlJwWm5scGJtY2dkR2hsSUV4cFkyVnVjMlV1RFFvTkNpQWdJQ0FnSUZsdmRTQnRZWGtnWVdSa0lGbHZkWElnYjNkdUlHTnZjSGx5YVdkb2RDQnpkR0YwWlcxbGJuUWdkRzhnV1c5MWNpQnRiMlJwWm1sallYUnBiMjV6SUdGdVpBMEtJQ0FnSUNBZ2JXRjVJSEJ5YjNacFpHVWdZV1JrYVhScGIyNWhiQ0J2Y2lCa2FXWm1aWEpsYm5RZ2JHbGpaVzV6WlNCMFpYSnRjeUJoYm1RZ1kyOXVaR2wwYVc5dWN3MEtJQ0FnSUNBZ1ptOXlJSFZ6WlN3Z2NtVndjbTlrZFdOMGFXOXVMQ0J2Y2lCa2FYTjBjbWxpZFhScGIyNGdiMllnV1c5MWNpQnRiMlJwWm1sallYUnBiMjV6TENCdmNnMEtJQ0FnSUNBZ1ptOXlJR0Z1ZVNCemRXTm9JRVJsY21sMllYUnBkbVVnVjI5eWEzTWdZWE1nWVNCM2FHOXNaU3dnY0hKdmRtbGtaV1FnV1c5MWNpQjFjMlVzRFFvZ0lDQWdJQ0J5WlhCeWIyUjFZM1JwYjI0c0lHRnVaQ0JrYVhOMGNtbGlkWFJwYjI0Z2IyWWdkR2hsSUZkdmNtc2diM1JvWlhKM2FYTmxJR052YlhCc2FXVnpJSGRwZEdnTkNpQWdJQ0FnSUhSb1pTQmpiMjVrYVhScGIyNXpJSE4wWVhSbFpDQnBiaUIwYUdseklFeHBZMlZ1YzJVdURRb05DaUFnSURVdUlGTjFZbTFwYzNOcGIyNGdiMllnUTI5dWRISnBZblYwYVc5dWN5NGdWVzVzWlhOeklGbHZkU0JsZUhCc2FXTnBkR3g1SUhOMFlYUmxJRzkwYUdWeWQybHpaU3dOQ2lBZ0lDQWdJR0Z1ZVNCRGIyNTBjbWxpZFhScGIyNGdhVzUwWlc1MGFXOXVZV3hzZVNCemRXSnRhWFIwWldRZ1ptOXlJR2x1WTJ4MWMybHZiaUJwYmlCMGFHVWdWMjl5YXcwS0lDQWdJQ0FnWW5rZ1dXOTFJSFJ2SUhSb1pTQk1hV05sYm5OdmNpQnphR0ZzYkNCaVpTQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ1lXNWtJR052Ym1ScGRHbHZibk1nYjJZTkNpQWdJQ0FnSUhSb2FYTWdUR2xqWlc1elpTd2dkMmwwYUc5MWRDQmhibmtnWVdSa2FYUnBiMjVoYkNCMFpYSnRjeUJ2Y2lCamIyNWthWFJwYjI1ekxnMEtJQ0FnSUNBZ1RtOTBkMmwwYUhOMFlXNWthVzVuSUhSb1pTQmhZbTkyWlN3Z2JtOTBhR2x1WnlCb1pYSmxhVzRnYzJoaGJHd2djM1Z3WlhKelpXUmxJRzl5SUcxdlpHbG1lUTBLSUNBZ0lDQWdkR2hsSUhSbGNtMXpJRzltSUdGdWVTQnpaWEJoY21GMFpTQnNhV05sYm5ObElHRm5jbVZsYldWdWRDQjViM1VnYldGNUlHaGhkbVVnWlhobFkzVjBaV1FOQ2lBZ0lDQWdJSGRwZEdnZ1RHbGpaVzV6YjNJZ2NtVm5ZWEprYVc1bklITjFZMmdnUTI5dWRISnBZblYwYVc5dWN5NE5DZzBLSUNBZ05pNGdWSEpoWkdWdFlYSnJjeTRnVkdocGN5Qk1hV05sYm5ObElHUnZaWE1nYm05MElHZHlZVzUwSUhCbGNtMXBjM05wYjI0Z2RHOGdkWE5sSUhSb1pTQjBjbUZrWlEwS0lDQWdJQ0FnYm1GdFpYTXNJSFJ5WVdSbGJXRnlhM01zSUhObGNuWnBZMlVnYldGeWEzTXNJRzl5SUhCeWIyUjFZM1FnYm1GdFpYTWdiMllnZEdobElFeHBZMlZ1YzI5eUxBMEtJQ0FnSUNBZ1pYaGpaWEIwSUdGeklISmxjWFZwY21Wa0lHWnZjaUJ5WldGemIyNWhZbXhsSUdGdVpDQmpkWE4wYjIxaGNua2dkWE5sSUdsdUlHUmxjMk55YVdKcGJtY2dkR2hsRFFvZ0lDQWdJQ0J2Y21sbmFXNGdiMllnZEdobElGZHZjbXNnWVc1a0lISmxjSEp2WkhWamFXNW5JSFJvWlNCamIyNTBaVzUwSUc5bUlIUm9aU0JPVDFSSlEwVWdabWxzWlM0TkNnMEtJQ0FnTnk0Z1JHbHpZMnhoYVcxbGNpQnZaaUJYWVhKeVlXNTBlUzRnVlc1c1pYTnpJSEpsY1hWcGNtVmtJR0o1SUdGd2NHeHBZMkZpYkdVZ2JHRjNJRzl5RFFvZ0lDQWdJQ0JoWjNKbFpXUWdkRzhnYVc0Z2QzSnBkR2x1Wnl3Z1RHbGpaVzV6YjNJZ2NISnZkbWxrWlhNZ2RHaGxJRmR2Y21zZ0tHRnVaQ0JsWVdOb0RRb2dJQ0FnSUNCRGIyNTBjbWxpZFhSdmNpQndjbTkyYVdSbGN5QnBkSE1nUTI5dWRISnBZblYwYVc5dWN5a2diMjRnWVc0Z0lrRlRJRWxUSWlCQ1FWTkpVeXdOQ2lBZ0lDQWdJRmRKVkVoUFZWUWdWMEZTVWtGT1ZFbEZVeUJQVWlCRFQwNUVTVlJKVDA1VElFOUdJRUZPV1NCTFNVNUVMQ0JsYVhSb1pYSWdaWGh3Y21WemN5QnZjZzBLSUNBZ0lDQWdhVzF3YkdsbFpDd2dhVzVqYkhWa2FXNW5MQ0IzYVhSb2IzVjBJR3hwYldsMFlYUnBiMjRzSUdGdWVTQjNZWEp5WVc1MGFXVnpJRzl5SUdOdmJtUnBkR2x2Ym5NTkNpQWdJQ0FnSUc5bUlGUkpWRXhGTENCT1QwNHRTVTVHVWtsT1IwVk5SVTVVTENCTlJWSkRTRUZPVkVGQ1NVeEpWRmtzSUc5eUlFWkpWRTVGVTFNZ1JrOVNJRUVOQ2lBZ0lDQWdJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSUzRnV1c5MUlHRnlaU0J6YjJ4bGJIa2djbVZ6Y0c5dWMybGliR1VnWm05eUlHUmxkR1Z5YldsdWFXNW5JSFJvWlEwS0lDQWdJQ0FnWVhCd2NtOXdjbWxoZEdWdVpYTnpJRzltSUhWemFXNW5JRzl5SUhKbFpHbHpkSEpwWW5WMGFXNW5JSFJvWlNCWGIzSnJJR0Z1WkNCaGMzTjFiV1VnWVc1NURRb2dJQ0FnSUNCeWFYTnJjeUJoYzNOdlkybGhkR1ZrSUhkcGRHZ2dXVzkxY2lCbGVHVnlZMmx6WlNCdlppQndaWEp0YVhOemFXOXVjeUIxYm1SbGNpQjBhR2x6SUV4cFkyVnVjMlV1RFFvTkNpQWdJRGd1SUV4cGJXbDBZWFJwYjI0Z2IyWWdUR2xoWW1sc2FYUjVMaUJKYmlCdWJ5QmxkbVZ1ZENCaGJtUWdkVzVrWlhJZ2JtOGdiR1ZuWVd3Z2RHaGxiM0o1TEEwS0lDQWdJQ0FnZDJobGRHaGxjaUJwYmlCMGIzSjBJQ2hwYm1Oc2RXUnBibWNnYm1WbmJHbG5aVzVqWlNrc0lHTnZiblJ5WVdOMExDQnZjaUJ2ZEdobGNuZHBjMlVzRFFvZ0lDQWdJQ0IxYm14bGMzTWdjbVZ4ZFdseVpXUWdZbmtnWVhCd2JHbGpZV0pzWlNCc1lYY2dLSE4xWTJnZ1lYTWdaR1ZzYVdKbGNtRjBaU0JoYm1RZ1ozSnZjM05zZVEwS0lDQWdJQ0FnYm1WbmJHbG5aVzUwSUdGamRITXBJRzl5SUdGbmNtVmxaQ0IwYnlCcGJpQjNjbWwwYVc1bkxDQnphR0ZzYkNCaGJua2dRMjl1ZEhKcFluVjBiM0lnWW1VTkNpQWdJQ0FnSUd4cFlXSnNaU0IwYnlCWmIzVWdabTl5SUdSaGJXRm5aWE1zSUdsdVkyeDFaR2x1WnlCaGJua2daR2x5WldOMExDQnBibVJwY21WamRDd2djM0JsWTJsaGJDd05DaUFnSUNBZ0lHbHVZMmxrWlc1MFlXd3NJRzl5SUdOdmJuTmxjWFZsYm5ScFlXd2daR0Z0WVdkbGN5QnZaaUJoYm5rZ1kyaGhjbUZqZEdWeUlHRnlhWE5wYm1jZ1lYTWdZUTBLSUNBZ0lDQWdjbVZ6ZFd4MElHOW1JSFJvYVhNZ1RHbGpaVzV6WlNCdmNpQnZkWFFnYjJZZ2RHaGxJSFZ6WlNCdmNpQnBibUZpYVd4cGRIa2dkRzhnZFhObElIUm9aUTBLSUNBZ0lDQWdWMjl5YXlBb2FXNWpiSFZrYVc1bklHSjFkQ0J1YjNRZ2JHbHRhWFJsWkNCMGJ5QmtZVzFoWjJWeklHWnZjaUJzYjNOeklHOW1JR2R2YjJSM2FXeHNMQTBLSUNBZ0lDQWdkMjl5YXlCemRHOXdjR0ZuWlN3Z1kyOXRjSFYwWlhJZ1ptRnBiSFZ5WlNCdmNpQnRZV3htZFc1amRHbHZiaXdnYjNJZ1lXNTVJR0Z1WkNCaGJHd05DaUFnSUNBZ0lHOTBhR1Z5SUdOdmJXMWxjbU5wWVd3Z1pHRnRZV2RsY3lCdmNpQnNiM056WlhNcExDQmxkbVZ1SUdsbUlITjFZMmdnUTI5dWRISnBZblYwYjNJTkNpQWdJQ0FnSUdoaGN5QmlaV1Z1SUdGa2RtbHpaV1FnYjJZZ2RHaGxJSEJ2YzNOcFltbHNhWFI1SUc5bUlITjFZMmdnWkdGdFlXZGxjeTROQ2cwS0lDQWdPUzRnUVdOalpYQjBhVzVuSUZkaGNuSmhiblI1SUc5eUlFRmtaR2wwYVc5dVlXd2dUR2xoWW1sc2FYUjVMaUJYYUdsc1pTQnlaV1JwYzNSeWFXSjFkR2x1WncwS0lDQWdJQ0FnZEdobElGZHZjbXNnYjNJZ1JHVnlhWFpoZEdsMlpTQlhiM0pyY3lCMGFHVnlaVzltTENCWmIzVWdiV0Y1SUdOb2IyOXpaU0IwYnlCdlptWmxjaXdOQ2lBZ0lDQWdJR0Z1WkNCamFHRnlaMlVnWVNCbVpXVWdabTl5TENCaFkyTmxjSFJoYm1ObElHOW1JSE4xY0hCdmNuUXNJSGRoY25KaGJuUjVMQ0JwYm1SbGJXNXBkSGtzRFFvZ0lDQWdJQ0J2Y2lCdmRHaGxjaUJzYVdGaWFXeHBkSGtnYjJKc2FXZGhkR2x2Ym5NZ1lXNWtMMjl5SUhKcFoyaDBjeUJqYjI1emFYTjBaVzUwSUhkcGRHZ2dkR2hwY3cwS0lDQWdJQ0FnVEdsalpXNXpaUzRnU0c5M1pYWmxjaXdnYVc0Z1lXTmpaWEIwYVc1bklITjFZMmdnYjJKc2FXZGhkR2x2Ym5Nc0lGbHZkU0J0WVhrZ1lXTjBJRzl1YkhrTkNpQWdJQ0FnSUc5dUlGbHZkWElnYjNkdUlHSmxhR0ZzWmlCaGJtUWdiMjRnV1c5MWNpQnpiMnhsSUhKbGMzQnZibk5wWW1sc2FYUjVMQ0J1YjNRZ2IyNGdZbVZvWVd4bURRb2dJQ0FnSUNCdlppQmhibmtnYjNSb1pYSWdRMjl1ZEhKcFluVjBiM0lzSUdGdVpDQnZibXg1SUdsbUlGbHZkU0JoWjNKbFpTQjBieUJwYm1SbGJXNXBabmtzRFFvZ0lDQWdJQ0JrWldabGJtUXNJR0Z1WkNCb2IyeGtJR1ZoWTJnZ1EyOXVkSEpwWW5WMGIzSWdhR0Z5Yld4bGMzTWdabTl5SUdGdWVTQnNhV0ZpYVd4cGRIa05DaUFnSUNBZ0lHbHVZM1Z5Y21Wa0lHSjVMQ0J2Y2lCamJHRnBiWE1nWVhOelpYSjBaV1FnWVdkaGFXNXpkQ3dnYzNWamFDQkRiMjUwY21saWRYUnZjaUJpZVNCeVpXRnpiMjROQ2lBZ0lDQWdJRzltSUhsdmRYSWdZV05qWlhCMGFXNW5JR0Z1ZVNCemRXTm9JSGRoY25KaGJuUjVJRzl5SUdGa1pHbDBhVzl1WVd3Z2JHbGhZbWxzYVhSNUxnMEtEUW9nSUNCRlRrUWdUMFlnVkVWU1RWTWdRVTVFSUVOUFRrUkpWRWxQVGxNTkNnMEtJQ0FnUVZCUVJVNUVTVmc2SUVodmR5QjBieUJoY0hCc2VTQjBhR1VnUVhCaFkyaGxJRXhwWTJWdWMyVWdkRzhnZVc5MWNpQjNiM0pyTGcwS0RRb2dJQ0FnSUNCVWJ5QmhjSEJzZVNCMGFHVWdRWEJoWTJobElFeHBZMlZ1YzJVZ2RHOGdlVzkxY2lCM2IzSnJMQ0JoZEhSaFkyZ2dkR2hsSUdadmJHeHZkMmx1WncwS0lDQWdJQ0FnWW05cGJHVnljR3hoZEdVZ2JtOTBhV05sTENCM2FYUm9JSFJvWlNCbWFXVnNaSE1nWlc1amJHOXpaV1FnWW5rZ1luSmhZMnRsZEhNZ0lsdGRJZzBLSUNBZ0lDQWdjbVZ3YkdGalpXUWdkMmwwYUNCNWIzVnlJRzkzYmlCcFpHVnVkR2xtZVdsdVp5QnBibVp2Y20xaGRHbHZiaTRnS0VSdmJpZDBJR2x1WTJ4MVpHVU5DaUFnSUNBZ0lIUm9aU0JpY21GamEyVjBjeUVwSUNCVWFHVWdkR1Y0ZENCemFHOTFiR1FnWW1VZ1pXNWpiRzl6WldRZ2FXNGdkR2hsSUdGd2NISnZjSEpwWVhSbERRb2dJQ0FnSUNCamIyMXRaVzUwSUhONWJuUmhlQ0JtYjNJZ2RHaGxJR1pwYkdVZ1ptOXliV0YwTGlCWFpTQmhiSE52SUhKbFkyOXRiV1Z1WkNCMGFHRjBJR0VOQ2lBZ0lDQWdJR1pwYkdVZ2IzSWdZMnhoYzNNZ2JtRnRaU0JoYm1RZ1pHVnpZM0pwY0hScGIyNGdiMllnY0hWeWNHOXpaU0JpWlNCcGJtTnNkV1JsWkNCdmJpQjBhR1VOQ2lBZ0lDQWdJSE5oYldVZ0luQnlhVzUwWldRZ2NHRm5aU0lnWVhNZ2RHaGxJR052Y0hseWFXZG9kQ0J1YjNScFkyVWdabTl5SUdWaGMybGxjZzBLSUNBZ0lDQWdhV1JsYm5ScFptbGpZWFJwYjI0Z2QybDBhR2x1SUhSb2FYSmtMWEJoY25SNUlHRnlZMmhwZG1WekxnMEtEUW9nSUNCRGIzQjVjbWxuYUhRZ1czbDVlWGxkSUZ0dVlXMWxJRzltSUdOdmNIbHlhV2RvZENCdmQyNWxjbDBOQ2cwS0lDQWdUR2xqWlc1elpXUWdkVzVrWlhJZ2RHaGxJRUZ3WVdOb1pTQk1hV05sYm5ObExDQldaWEp6YVc5dUlESXVNQ0FvZEdobElDSk1hV05sYm5ObElpazdEUW9nSUNCNWIzVWdiV0Y1SUc1dmRDQjFjMlVnZEdocGN5Qm1hV3hsSUdWNFkyVndkQ0JwYmlCamIyMXdiR2xoYm1ObElIZHBkR2dnZEdobElFeHBZMlZ1YzJVdURRb2dJQ0JaYjNVZ2JXRjVJRzlpZEdGcGJpQmhJR052Y0hrZ2IyWWdkR2hsSUV4cFkyVnVjMlVnWVhRTkNnMEtJQ0FnSUNBZ0lHaDBkSEE2THk5M2QzY3VZWEJoWTJobExtOXlaeTlzYVdObGJuTmxjeTlNU1VORlRsTkZMVEl1TUEwS0RRb2dJQ0JWYm14bGMzTWdjbVZ4ZFdseVpXUWdZbmtnWVhCd2JHbGpZV0pzWlNCc1lYY2diM0lnWVdkeVpXVmtJSFJ2SUdsdUlIZHlhWFJwYm1jc0lITnZablIzWVhKbERRb2dJQ0JrYVhOMGNtbGlkWFJsWkNCMWJtUmxjaUIwYUdVZ1RHbGpaVzV6WlNCcGN5QmthWE4wY21saWRYUmxaQ0J2YmlCaGJpQWlRVk1nU1ZNaUlFSkJVMGxUTEEwS0lDQWdWMGxVU0U5VlZDQlhRVkpTUVU1VVNVVlRJRTlTSUVOUFRrUkpWRWxQVGxNZ1QwWWdRVTVaSUV0SlRrUXNJR1ZwZEdobGNpQmxlSEJ5WlhOeklHOXlJR2x0Y0d4cFpXUXVEUW9nSUNCVFpXVWdkR2hsSUV4cFkyVnVjMlVnWm05eUlIUm9aU0J6Y0dWamFXWnBZeUJzWVc1bmRXRm5aU0JuYjNabGNtNXBibWNnY0dWeWJXbHpjMmx2Ym5NZ1lXNWtEUW9nSUNCc2FXMXBkR0YwYVc5dWN5QjFibVJsY2lCMGFHVWdUR2xqWlc1elpTNE5DZz09IiwiUm9ib3RvLUl0YWxpYy50dGYiOiJBQUVBQUFBT0FJQUFBd0JnUjBSRlJnc3VDeThBQVRtWUFBQUFTRWRRVDFPQzNUNG9BQUU1NEFBQWtQaEhVMVZDZW9sdkx3QUJ5dGdBQUFOc1QxTXZNcml2S1M0QUFBRm9BQUFBWUZaRVRWaHU2blpQQUFBU1BBQUFCZUJqYldGd2cvQ0Zud0FBR0J3QUFBN3laMng1WnF1Z1luQUFBQ2NRQUFEaGpHaGxZV1FWbCtUSEFBQUE3QUFBQURab2FHVmhLM1RtSWdBQUFTUUFBQUFrYUcxMGVIN3REbzhBQUFISUFBQVFkR3h2WTJIL0N6YXlBQUVJbkFBQUNEeHRZWGh3QkR3QTlnQUFBVWdBQUFBZ2JtRnRaVzNBcmNBQUFSRFlBQUFFYjNCdmMzUUp5OWRiQUFFVlNBQUFKRTBBQVFBQUFBRUFBRVJGTnRKZkR6ejFBQWtJQUFBQUFBREU4QkV1QUFBQUFNMkNzbHo2dDlQZEtVOElZZ0FDQUFrQUFnQUFBQUFBQUFBQkFBQUhiUDRNQUFBSkEvcTMydlVwVHdBQkFBQUFBQUFBQUFBQUFBQUFBQUFFSFFBQkFBQUVIUUNXQUJZQVhnQUZBQUVBQUFBQUFBQUFBQUFBQUFBQUF3QUJBQU1FUVFHUUFBVUFBQVdhQlRNQUFBRWZCWm9GTXdBQUE5RUFaZ0lBQUFBQUFBQUFBQUFBQUFBQTRBQUMvMUFBSUZzQUFBQWdBQUFBQUhCNWNuTUFBUUFBLy8wR0FQNEFBR1lIbWdJQUlBQUJuMDhCQUFBRU9nV3dBQUFBSUFBQ0FlTUFBQUFBQUFBQjR3QUFBZU1BQUFKMUFNVUVyQUJEQkRvQVJ3VjdBTk1FckFBYkFWY0F4Z0tCQUZjQ2lQK01BMEFBb1FSQ0FISUJnZitZQWhVQVBnSUdBRVlESC8rbUJEb0FVQVE2QVhBRU9nQXRCRG9BTlFRNkFDY0VPZ0JvQkRvQVp3UTZBTmdFT2dBMUJEb0Fmd0hwQUVZQjhmL0dBOUVBWlFRNkFJNEQ3Z0JXQTVJQXdnYTBBQk1FL3YvVkJNc0FXQVRCQUdJRThBQllCR0lBV0FSZkFGZ0ZKZ0JvQlZnQVdBSWtBR0lFSlFBUEJINEFQZ1FnQUZnR2tnQllCVmtBV0FVY0FGNEV6UUJZQlRzQVhnVDRBRmNFalFCREJIb0E3QVVTQUdjRTNRRE5CcFVBN0FTOS8vd0VwZ0R1QkRJQUlBSUtBQklESEFEM0Fnci9sd01uQUh3RGEvK1dBbDBBOHdRZ0FEb0VSQUExQS93QVJ3UkVBRVFEK1FCSEFwc0FpZ1JEQURjRVJBQTFBZWdBUkFIMi94MEQyUUEyQWVnQVJBYUxBRFVFUkFBMUJFUUFSZ1JFLytJRVJBQkVBcVFBTlFQdUFEc0NhUUJ2QkVRQVdnUElBSmNGckFDeUE4ai82UVBJLzd3RHlBQUlBcEVBVVFIaEFEWUNrZitwQlJnQWdnSGgvK3NFSFFCWEJHQUFMUVZWQUNZRWpnQnhBZGtBQVFTYy84Z0R2d0VuQmQ0QVVnTmVBTUlEakFCd0JDc0FwZ1hmQUZJRGV3RURBdEFCQlFRR0FFNERNUUNuQXpnQXFnSm9BUHNFUlAvckE3RUFod0gvQU1NQjQvL09BZzhCQkFOdEFNOERpd0ExQmRVQkRnWTdBUnNHZ1FDNkE3Zi84d2NGLzU0RUJBQklCUjBBSmdSdkFFZ0VlUUF3QmxJQUJBUm5BQ1lFU2dCcUJFVUFUQVJZLytzRlJBQlZBZWdBUGdReEFENEQ4d0JKQWhFQVJ3VXdBRVlFUkFBMUJ5Z0FUd2JIQUVRQjZBQkVBcGIvWmdVakFGa0VUZ0JHQlRvQVp3U3VBRm9CNy84YkEva0FQQU9XQVVnRFlnRmVBemdCQ3dJTkFVRUNrUUVpQWhQL3R3T1hBUWdDendFSEFub0FIUUFLL2ZJQUN2NUJBQXI5V0FBSy9rWUFDdjFMQUFyODNBSHpBV1FEMUFGQkFnQUF3d1F1QUZjRlMvL01CUjBBVHdUcy85NEVUUUFpQlZvQVdBUk4vL0VGWHdCWEJTOEFpZ1VBQUIwRVB3QkFCSEwvOVFQSUFMTUVSQUJCQkFzQUtRUHNBSXNFUkFBMUJFWUFWZ0o1QUg0RUt2L1JBN0FBT2dSNkFIQUVSUC9pQkFzQVNRUkVBRU1EN2dDM0JCd0FXZ1ZOQUQ4RlJBQkRCaXNBWFFTaUFGb0Qvd0N6QmVFQVpBV2ZBTnNGRWdCbUNBai8zZ2dUQUZjR0dnRHlCVm9BVndTN0FFZ0ZxditXQnRQL3lnUjBBQ0FGV1FCWUJVLy8zZ1MzQUtNRjBRQmJCWDhBVndVbkFORUhEZ0JYQjBjQVZ3V3JBTWtHZ2dCWEJMa0FTQVVSQUljR3JBQmlCTTRBREFRbkFFUUVUZ0JBQXlnQVBnU1EvNW9GdlAvREE5SUFIZ1JhQUVBRUZRQkFCRnYvMVFXU0FFQUVXUUJBQkZvQVFBT2ZBSkFGYndCQUJIa0FRQVFZQUg4R0VnQkFCam9BTlFTbEFJWUYyQUJBQkJZQVFBUUxBRE1HSGdCQUJDSC8xUVJGQURVRURBQlJCbGovMVFaekFFQUVSUUExQkZvQVFBYVJBR2dGdHdCRkJCUUFQZ2EyQUdNRm1RQThCSWIvMkFRRi83d0dtQUIwQmFvQVhRWnJBRG9GaWdBNkNIc0FZZ2RkQUQ0RDVmL0hBNS8veGdVZEFGMEVSUUJHQkw0QTZBUElBTE1GSFFCUEJFVUFSZ2FMQUd3RnR3QklCcElBYUFXNEFFVUU1QUJrQkFnQVNnU3lBRlVBQ3YwOUFBcjlaQUFLL204QUN2NlFBQXI2dHdBSyt0WUVGQUErQk1zQVZ3UkQvK0lFSHdCSUExd0FOUVNYQUZjRHlRQTFCTDBBU0FRK0FENEdKQUR6QlRRQXBRZEVBRmNGVlFBMUI2a0FWd2FHQURVRmpRQmxCSWtBVGdhL0FPZ0ZDd0NJQlIwQTBRUW1BSmNGSFFEUUJjOEFyZ1IwQUNVRXZRQklCQnNBUGdWWUFGY0VSQUExQlNzQVJnUmdBRFlFWVAvdEJISUFDZ01ZLy9zRXRRQTJCalFBTmdaekFFQUY3d0RvQk5rQWlBUUlBTThEeXdDOEIwSC84UVlNLyt3SGZRQk9CalVBTlFTb0FHQUQzZ0JHQlZJQTF3VFBBS3dGRVFCcUE5VUFBQWVoQUFBRDFRQUFCNkVBQUFLU0FBQUI3d0FBQVU0QUFBUTRBQUFDRXdBQUFZOEFBQURNQUFBQUNnQUFCUzhBNlFZU0FRQURiLzlvQVkwQTFnR05BTEVCalAra0FZNy9ZUUs3QU5ZQ3dnQzlBcW4vcEFRa0FKVUVTUUFRQXBBQXJ3T1BBRWNGREFCSEJ5WUFyZ0pHQUlBQ1JnQWhBMjRBQ1FOMEFJc0RMZ0NqQkdBQUxRWW1BRWtEL2dCZ0JZa0E0d09YQUdjSU9BQk9CTFFCSXdUR0FId0dVQUQrQnR3QXJBY0lBS29HYlFFZUJGa0FKZ1UvQURrRVovKzdCRW9BendTSUFHZ0hxQUJKQWZML093UTdBRkFEN3dDT0EvWUFTQVA5QUVjRHlRQm5BallBandKMUFKUUI3Zi9tQkMwQWFBQUtBQUFIcS8rMUI2d0Fod1BmQUI4RFhBQW5CRG9BVVFMZy8rQUI2UDhkQWhIL2VnRisvOElEYlFFM0Eyd0JOd05zQVRjRHlBRVBBOUFCQ3dQSUFGOER4d0VYQTIwQkRRSHJBUzhFYi8vVUJESUFQZ1JKQUUwRVlBQStCQVFBUGdQZkFENEVoZ0JLQktzQVBnSG9BRDREendBTEJCd0FQZ09FQUQ0Rmx3QStCTW9BUGdSL0FFMEVsUUJOQkdNQVBnUXJBQ01EN2dDOUJMTUFXQVJ3QUw0Rm9RRFVCRUgvNHdRY0FMVUQvdi81QkRNQVNnSk5BS3dEcVFBUEE5WUFJQVFqQUNVRUpRQWVBKzhBVGdPRUFMMEQ3Z0FqQStjQWJRSVBBSDhES0FBaUF6Z0FKUUxUQU8wRFJ3QXJBMGdBUUFMakFJOERUd0F1QXpnQVpBTnRBRDREWndDNUFwRUJLd01iQVBVRU9nQXVCRG9BSndRNkFHRUVTd0JrQS9uL2tRUUJBT3NFTVAvT0JEb0FOUVI3QUVBRVJBQkJCUEFBV0FRZ0FEY0UzZ0JYQk5NQVdBUFpBRFlFN0FCWUE5Z0FOZ1E2QUgwRU1nQStBemdCQ3dIakFBQUNGUUErQlRNQVhnVXpBRjRFWWdCVEJIb0E3QUpwQUFjRS92L1ZCUDcvMVFUKy85VUUvdi9WQlA3LzFRVCsvOVVFL3YvVkJNc0FZZ1JpQUZnRVlnQllCR0lBV0FSaUFGZ0NKQUJpQWlRQVlnSWtBR0lDSkFCaUJWa0FXQVU3QUY0Rk93QmVCVHNBWGdVN0FGNEZPd0JlQlJJQVp3VVNBR2NGRWdCbkJSSUFad1NtQU80RUlBQTZCQ0FBT2dRZ0FEb0VJQUE2QkNBQU9nUWdBRG9FSUFBNkEvd0FSd1A1QUVjRCtRQkhBL2tBUndQNUFFY0I2QUErQWVnQVBnSG9BRDRCNkFBK0JFUUFOUVJFQUVZRVJBQkdCRVFBUmdSRUFFWUVSQUJHQkVRQVdnUkVBRm9FUkFCYUJFUUFXZ1BJLzd3RHlQKzhCUDcvMVFRZ0FEb0Uvdi9WQkNBQU9nVCsvOVVFSUFBNkJNc0FZZ1A4QUVjRXl3QmlBL3dBUndUTEFHSUQvQUJIQk1zQVlnUDhBRWNGRlFCWUJOb0FSQVJpQUZnRCtRQkhCR0lBV0FQNUFFY0VZZ0JZQS9rQVJ3UmlBRmdEK1FCSEJHSUFXQVA1QUVjRkpnQm9CRU1BTndVbUFHZ0VRd0EzQlNZQWFBUkRBRGNGSmdCb0JFTUFOd1ZZQUZnRVJBQTFBaVFBWWdIb0FENENKQUJpQWVnQVBnSWtBR0lCNkFBK0FpVC9tZ0hvLzNzQ0pBQmlCa2tBWWdQZUFFUUVKUUFQQWUvL0d3VFRBRDREMlFBMkJDQUFXQUhvQUVRRUlBQllBZWovcUFRZ0FGZ0NmZ0JFQkNBQVdBTEVBRVFGV1FCWUJFUUFOUVZaQUZnRVJBQTFCVmtBV0FSRUFEVUVSQUExQlRzQVhnUkVBRVlGT3dCZUJFUUFSZ1U3QUY0RVJBQkdCUGdBVndLa0FEVUUrQUJYQXFUL3BnVDRBRmNDcEFBMUJKZ0FRd1B1QURzRW1BQkRBKzRBT3dTWUFFTUQ3Z0E3QkpnQVF3UHVBRHNFbUFCREErNEFPd1I2QU93Q2FRQkZCSG9BN0FKcEFHOEVlZ0RzQXBFQWJ3VVNBR2NFUkFCYUJSSUFad1JFQUZvRkVnQm5CRVFBV2dVU0FHY0VSQUJhQlJJQVp3UkVBRm9GRWdCbkJFUUFXZ2FWQU93RnJBQ3lCS1lBN2dQSS83d0VwZ0R1QkgwQUlBUElBQWdFZlFBZ0E4Z0FDQVI5QUNBRHlBQUlCd1gvbmdaU0FBUUZIUUFtQkVVQVRBUmdBQXNFWUFBTEErNEF2UVJ2LzlRRWIvL1VCRy8vMUFSdi85UUViLy9VQkcvLzFBUnYvOVFFU1FCTkJBUUFQZ1FFQUQ0RUJBQStCQVFBUGdIb0FENEI2QUErQWVnQVBnSG9BRDRFeWdBK0JIOEFUUVIvQUUwRWZ3Qk5CSDhBVFFSL0FFMEVzd0JZQkxNQVdBU3pBRmdFc3dCWUJCd0F0UVJ2LzlRRWIvL1VCRy8vMUFSSkFFMEVTUUJOQkVrQVRRUkpBRTBFWUFBK0JBUUFQZ1FFQUQ0RUJBQStCQVFBUGdRRUFENEVoZ0JLQklZQVNnU0dBRW9FaGdCS0JLc0FQZ0hvQUQ0QjZBQStBZWdBUGdIby8zTUI2QUErQTg4QUN3UWNBRDREaEFBK0E0UUFQZ09FQUQ0RGhBQStCTW9BUGdUS0FENEV5Z0ErQkg4QVRRUi9BRTBFZndCTkJHTUFQZ1JqQUQ0RVl3QStCQ3NBSXdRckFDTUVLd0FqQkNzQUl3UHVBSmNEN2dDOUJMTUFXQVN6QUZnRXN3QllCTE1BV0FTekFGZ0Vzd0JZQmFFQTFBUWNBTFVFSEFDMUEvNy8rUVArLy9rRC92LzVDRllBSXdUKy85VUV4Z0NiQmJ3QXZBS0lBTVlGVHdCeUJRb0FTUVVVQURFQ2VRQnNCUDcvMVFUTEFGZ0VZZ0JZQkgwQUlBVllBRmdDSkFCaUJOTUFQZ2FTQUZnRldRQllCVHNBWGdUTkFGZ0VlZ0RzQktZQTdnUzkvL3dDSkFCaUJLWUE3Z1EvQUVBRUN3QXBCRVFBTlFKNUFINEVIQUJhQkRFQVBnUkVBRVlFUlAvckE4Z0Fsd1BJLytrQ2VRQitCQndBV2dSRUFFWUVIQUJhQmlzQVhRUmlBRmdFTGdCWEJKZ0FRd0lrQUdJQ0pBQmlCQ1VBRHdUVEFENEUwd0ErQkxjQW93VCsvOVVFeXdCWUJDNEFWd1JpQUZnRldRQllCcElBV0FWWUFGZ0ZPd0JlQlZvQVdBVE5BRmdFeXdCaUJIb0E3QVM5Ly93RUlBQTZBL2tBUndSYUFFQUVSQUJHQkVULzRnUDhBRWNEeVArOEE4ai82UVA1QUVjREtBQStBKzRBT3dIb0FFUUI2QUErQWZiL0hRUVZBRUFEeVArOEJwVUE3QVdzQUxJR2xRRHNCYXdBc2dhVkFPd0ZyQUN5QktZQTdnUEkvN3dCVndER0FuVUF4UVA2QUU4RWd3Q0tBZS8vR3dHTkFMRUdrZ0JZQm9zQU5RVCsvOVVFSUFBNkJUc0FBUWJJQUlvSEhnQ0tCR0lBV0FWWkFGZ0QrUUJIQkZvQVFBVXZBSW9GUkFCREJMNEE2QVBJQUxNSURBQkdDUU1BWGdSMEFDQUQwZ0FlQk1zQVlnUDhBRWNFcGdEdUE4Z0Fzd0lrQUdJRzAvL0tCYnovd3dJa0FHSUUvdi9WQkNBQU9nVCsvOVVFSUFBNkJ3WC9uZ1pTQUFRRVlnQllBL2tBUndVckFFWUQrUUE4QS9rQVBBYlQvOG9GdlAvREJIUUFJQVBTQUI0RldRQllCRm9BUUFWWkFGZ0VXZ0JBQlRzQVhnUkVBRVlGSFFCZEJFVUFSZ1VkQUYwRVJRQkdCUkVBaHdRTEFETUV0d0NqQThqL3ZBUzNBS01EeVArOEJMY0Fvd1BJLzd3Rkp3RFJCQmdBZndhQ0FGY0YyQUJBQkwzLy9BUEkvK2tFUkFCRUJVLy8zZ1JiLzlVRS92L1ZCQ0FBT2dUKy85VUVJQUE2QlA3LzFRUWdBRG9FL3YvVkJDQUFPZ1QrLzlVRUlBQTZCUDcvMVFRZ0FEb0Uvdi9WQkNBQU9nVCsvOVVFSUFBNkJQNy8xUVFnQURvRS92L1ZCQ0FBT2dUKy85VUVJQUE2QlA3LzFRUWdBRG9FWWdCWUEva0FSd1JpQUZnRCtRQkhCR0lBV0FQNUFFY0VZZ0JZQS9rQVJ3UmlBRmdEK1FCSEJHSUFXQVA1QUVjRVlnQllBL2tBUndSaUFGZ0QrUUJIQWlRQVlnSG9BRDRDSkFBWEFlai8rZ1U3QUY0RVJBQkdCVHNBWGdSRUFFWUZPd0JlQkVRQVJnVTdBRjRFUkFCR0JUc0FYZ1JFQUVZRk93QmVCRVFBUmdVN0FGNEVSQUJHQlNNQVdRUk9BRVlGSXdCWkJFNEFSZ1VqQUZrRVRnQkdCU01BV1FST0FFWUZJd0JaQkU0QVJnVVNBR2NFUkFCYUJSSUFad1JFQUZvRk9nQm5CSzRBV2dVNkFHY0VyZ0JhQlRvQVp3U3VBRm9GT2dCbkJLNEFXZ1U2QUdjRXJnQmFCS1lBN2dQSS83d0VwZ0R1QThqL3ZBU21BTzREeVArOEJHSUFSQVJpQUJNRTB3QStCQlVBUUFWWUFGZ0VXUUJBQkhvQTdBT2ZBSkFFdmYvOEE4ai82UVVuQU5FRUdBQi9CU2NBMFFRWUFIOEVMZ0JYQXlnQVBnYlQvOG9GdlAvREJjOEFyZ1IwQUNVRVJBQTFCTGtBU0FTNUFFZ0VMZ0EwQXlnQUNnVG5BRklEN1FCS0JWa0FXQVJhQUVBRldBQllCRmtBUUFhU0FGZ0ZrZ0JBQlUvLzNnUmIvOVVFcGdEdUE4Z0FiUVM5Ly93RHlQL3BCQXNBS1FSZi8vd0dFZ0VBQUFvQUFBQUtBQUFCL1FCUEFBQUFBUUFCQVFFQkFRQU1BUGdJL3dBSUFBai8vZ0FKQUFuLy9RQUtBQXIvL1FBTEFBdi8vUUFNQUF6Ly9RQU5BQTMvL0FBT0FBNy8vQUFQQUEvLy9BQVFBQkQvL0FBUkFCSC8rd0FTQUJMLyt3QVRBQlAvK3dBVUFCVC8rd0FWQUJULytnQVdBQlgvK2dBWEFCYi8rZ0FZQUJmLytnQVpBQmovK1FBYUFCbi8rUUFiQUJyLytRQWNBQnYvK1FBZEFCei8rQUFlQUIzLytBQWZBQjcvK0FBZ0FCLy8rQUFoQUNELzl3QWlBQ0gvOXdBakFDTC85d0FrQUNQLzl3QWxBQ1QvOWdBbUFDWC85Z0FuQUNiLzlnQW9BQ2YvOWdBcEFDZi85UUFxQUNqLzlRQXJBQ24vOVFBc0FDci85UUF0QUN2LzlBQXVBQ3ovOUFBdkFDMy85QUF3QUM3LzlBQXhBQy8vOHdBeUFERC84d0F6QURILzh3QTBBREwvOHdBMUFEUC84Z0EyQURULzhnQTNBRFgvOGdBNEFEYi84Z0E1QURmLzhRQTZBRGovOFFBN0FEbi84UUE4QURyLzhRQTlBRHIvOEFBK0FEdi84QUEvQUR6LzhBQkFBRDMvOEFCQkFENy83d0JDQUQvLzd3QkRBRUQvN3dCRUFFSC83d0JGQUVMLzdnQkdBRVAvN2dCSEFFVC83Z0JJQUVYLzdnQkpBRWIvN1FCS0FFZi83UUJMQUVqLzdRQk1BRW4vN1FCTkFFci83QUJPQUV2LzdBQlBBRXovN0FCUUFFMy83QUJSQUUzLzZ3QlNBRTcvNndCVEFFLy82d0JVQUZELzZ3QlZBRkgvNmdCV0FGTC82Z0JYQUZQLzZnQllBRlQvNmdCWkFGWC82UUJhQUZiLzZRQmJBRmYvNlFCY0FGai82UUJkQUZuLzZBQmVBRnIvNkFCZkFGdi82QUJnQUZ6LzZBQmhBRjMvNXdCaUFGNy81d0JqQUYvLzV3QmtBR0QvNXdCbEFHRC81Z0JtQUdILzVnQm5BR0wvNWdCb0FHUC81Z0JwQUdULzVRQnFBR1gvNVFCckFHYi81UUJzQUdmLzVRQnRBR2ovNUFCdUFHbi81QUJ2QUdyLzVBQndBR3YvNUFCeEFHei80d0J5QUczLzR3QnpBRzcvNHdCMEFHLy80d0IxQUhELzRnQjJBSEgvNGdCM0FITC80Z0I0QUhQLzRnQjVBSFAvNFFCNkFIVC80UUI3QUhYLzRRQjhBSGIvNFFCOUFIZi80QUIrQUhqLzRBQi9BSG4vNEFDQUFIci80QUNCQUh2LzN3Q0NBSHovM3dDREFIMy8zd0NFQUg3LzN3Q0ZBSC8vM2dDR0FJRC8zZ0NIQUlILzNnQ0lBSUwvM2dDSkFJUC8zUUNLQUlULzNRQ0xBSVgvM1FDTUFJYi8zUUNOQUliLzNBQ09BSWYvM0FDUEFJai8zQUNRQUluLzNBQ1JBSXIvMndDU0FJdi8yd0NUQUl6LzJ3Q1VBSTMvMndDVkFJNy8yZ0NXQUkvLzJnQ1hBSkQvMmdDWUFKSC8yZ0NaQUpMLzJRQ2FBSlAvMlFDYkFKVC8yUUNjQUpYLzJRQ2RBSmIvMkFDZUFKZi8yQUNmQUpqLzJBQ2dBSm4vMkFDaEFKbi8xd0NpQUpyLzF3Q2pBSnYvMXdDa0FKei8xd0NsQUozLzFnQ21BSjcvMWdDbkFKLy8xZ0NvQUtELzFnQ3BBS0gvMVFDcUFLTC8xUUNyQUtQLzFRQ3NBS1QvMVFDdEFLWC8xQUN1QUtiLzFBQ3ZBS2YvMUFDd0FLai8xQUN4QUtuLzB3Q3lBS3IvMHdDekFLdi8wd0MwQUt6LzB3QzFBS3ovMGdDMkFLMy8wZ0MzQUs3LzBnQzRBSy8vMGdDNUFMRC8wUUM2QUxILzBRQzdBTEwvMFFDOEFMUC8wUUM5QUxULzBBQytBTFgvMEFDL0FMYi8wQURBQUxmLzBBREJBTGovendEQ0FMbi96d0REQUxyL3p3REVBTHYvendERkFMei96Z0RHQUwzL3pnREhBTDcvemdESUFMLy96Z0RKQUwvL3pRREtBTUQvelFETEFNSC96UURNQU1ML3pRRE5BTVAvekFET0FNVC96QURQQU1YL3pBRFFBTWIvekFEUkFNZi95d0RTQU1qL3l3RFRBTW4veXdEVUFNci95d0RWQU12L3lnRFdBTXoveWdEWEFNMy95Z0RZQU03L3lnRFpBTS8veVFEYUFORC95UURiQU5IL3lRRGNBTkwveVFEZEFOTC95QURlQU5QL3lBRGZBTlQveUFEZ0FOWC95QURoQU5iL3h3RGlBTmYveHdEakFOai94d0RrQU5uL3h3RGxBTnIveGdEbUFOdi94Z0RuQU56L3hnRG9BTjMveGdEcEFONy94UURxQU4vL3hRRHJBT0QveFFEc0FPSC94UUR0QU9ML3hBRHVBT1AveEFEdkFPVC94QUR3QU9YL3hBRHhBT1gvd3dEeUFPYi93d0R6QU9mL3d3RDBBT2ovd3dEMUFPbi93Z0QyQU9yL3dnRDNBT3Yvd2dENEFPei93Z0Q1QU8zL3dRRDZBTzcvd1FEN0FPLy93UUQ4QVBEL3dRRDlBUEgvd0FEK0FQTC93QUQvQVBQL3dBQUFBQU1BQUFBREFBQUlqQUFCQUFBQUFBQWNBQU1BQVFBQUFpWUFCZ0lLQUFBQUFBRUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUlBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFEQkJ3QUJBQUZBQVlBQndBSUFBa0FDZ0FMQUF3QURRQU9BQThBRUFBUkFCSUFFd0FVQUJVQUZnQVhBQmdBR1FBYUFCc0FIQUFkQUI0QUh3QWdBQ0VBSWdBakFDUUFKUUFtQUNjQUtBQXBBQ29BS3dBc0FDMEFMZ0F2QURBQU1RQXlBRE1BTkFBMUFEWUFOd0E0QURrQU9nQTdBRHdBUFFBK0FEOEFRQUJCQUVJQVF3QkVBRVVBUmdCSEFFZ0FTUUJLQUVzQVRBQk5BRTRBVHdCUUFGRUFVZ0JUQUZRQVZRQldBRmNBV0FCWkFGb0FXd0JjQUYwQVhnQmZBR0FBQUFIMUFmWUIrQUg2QWdFQ0JnSUtBZzBDREFJT0FoQUNEd0lSQWhNQ0ZRSVVBaFlDRndJWkFoZ0NHZ0liQWh3Q0hnSWRBaDhDSVFJZ0FpTUNJZ0lrQWlVQmJBQnZBR0lBWXdCbkFXNEFkUUNEQUcwQWFRRjlBSE1BYUFHTEFIOEFnUUdJQUhBQmpBR05BR1VBZEFHREFZVUJoQURCQVlrQWFnQjVBTFVBaEFDSEFINEFZUUJzQVljQWt3R0tBSzBBYXdCNkFYQUFBd0h4QWZRQ0JRQ1FBSkVCWWdGakFXa0JhZ0ZsQVdZQWhnR09BaWNDbGdGMEFYa0JjZ0Z6QVpJRFVBRnRBSFlCWndGckFYRUI4d0g3QWZJQi9BSDVBZjRCL3dJQUFmMENBd0lFQUFBQ0FnSUlBZ2tDQndDS0FKb0FvQUJ1QUp3QW5RQ2VBSGNBb1FDZkFKc0FCQVptQUFBQTdBQ0FBQVlBYkFBQUFBSUFDUUFOQUNFQWZnQ2dBS3dBclFDL0FNWUF6d0RtQU84QS9nRVBBUkVCSlFFbkFUQUJPQUZBQVZNQlh3Rm5BWDRCZndHU0FhRUJzQUh3QWZzQi93SVpBaHNDTndKWkFyd0N4d0xKQXQwQzh3TUJBd01EQ1FNUEF5TURpZ09NQTVJRG9RT3dBN2tEeVFQT0E5SUQxZ1FsQkM4RVJRUlBCR0lFYndSNUJJWUV6Z1RYQk9FRTlRVUJCUkFGRXg0QkhqOGVoUjd4SHZNZStSOU5JQXNnRlNBZUlDSWdKaUF3SURNZ09pQThJRVFnZENCL0lLUWdweUNzSVFVaEV5RVdJU0loSmlFdUlWNGlBaUlHSWc4aUVpSWFJaDRpS3lKSUltQWlaU1hLN2dMMncvc0Uvdi8vL2YvL0FBQUFBQUFDQUFrQURRQWdBQ0lBb0FDaEFLMEFyZ0RBQU1jQTBBRG5BUEFBL3dFUUFSSUJKZ0VvQVRFQk9RRkJBVlFCWUFGb0FYOEJrZ0dnQWE4QjhBSDZBZndDR0FJYUFqY0NXUUs4QXNZQ3lRTFlBdk1EQUFNREF3a0REd01qQTRRRGpBT09BNU1Eb3dPeEE3b0R5Z1BSQTlZRUFBUW1CREFFUmdSUUJHTUVjQVI2QklnRXp3VFlCT0lFOWdVQ0JSRWVBQjQrSG9BZW9CN3lIdlFmVFNBQUlCTWdGeUFnSUNVZ01DQXlJRGtnUENCRUlIUWdmeUNqSUtjZ3F5RUZJUk1oRmlFaUlTWWhMaUZiSWdJaUJpSVBJaEVpR2lJZUlpc2lTQ0pnSW1RbHl1NEI5c1A3QWY3Ly8vei8vd0FCQkJnRUV2LzFBQUQvNGdBQS84QUFBUCsvQUFBQk1RQUFBU3dBQUFFb0FBQUJKZ0FBQVNRQUFBRWlBQUFCSEFBQUFSNEFBUDhCL3ZUKzV3RmhBQUFBb1FCa0FHYitZZjVBQUpiOTFQMmwvY1Q5ci8yai9hTDluZjJZL1lVQUFQOXcvMjhBQUFBQS9RVUFBUDlRL1BuODlnQUEvTFVBQVB5dEFBRDhvZ0FBL0p3QUFQNmVBQUQrbXdBQS9FVUFBT1ZWNVJYa3hlVDQ1Rm5rOXVRSzRWWUFBT0ZONFV6aFN1RkI0eHZoT2VNVDRURGhBZUQzQUFEZzBRQUE0SFhnYU9CbTRGdmZqK0JRNENUZmdkNm4zM1hmZE45dDMycmZYdDlDM3l2ZktOdkVFNDRLemdBQUFwUUJtQUFCQUFBQUFBQUFBQUFBNUFBQUFPUUFBQURpQUFBQTRBQUFBT29BQUFFVUFBQUJMZ0FBQVM0QUFBRXVBQUFCT2dBQUFWd0FBQUZvQUFBQUFBQUFBQUFCWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVBQUFBQUFGTUFXZ0FBQUdBQUFBQUFBQUFBWmdBQUFIZ0FBQUNDQUFBQWlvQUFBSTZBQUFDeEFBQUF0UUFBQUxvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3pBQUFBc3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFxWUFBQUFBQUFBQUF3UWNBZW9CNndIeEFmSUI4d0gwQWZVQjlnQi9BZTBDQVFJQ0FnTUNCQUlGQWdZQWdBQ0JBZ2NDQ0FJSkFnb0NDd0NDQUlNQ0RBSU5BZzRDRHdJUUFoRUFoQUNGQWh3Q0hRSWVBaDhDSUFJaEFJWUFod0lpQWlNQ0pBSWxBaVlBaUFIc0EvQUFpUUh1QUlvQ1ZRSldBbGNDV0FKWkFsb0Fpd0NNQUkwQ1l3SmtBbVVDWmdKbkFtZ0NhUUNPQUk4Q2FnSnJBbXdDYlFKdUFtOEFrQUNSQW40Q2Z3S0NBb01DaEFLRkFlOEI4QUNTQWZjQ0VnQ3BBS29DK0FDckF2a0MrZ0w3QUt3QXJRTUNBd01EQkFDdUF3VURCZ0N2QXdjRENBQ3dBd2tBc1FNS0FMSURDd01NQUxNRERRQzBBTFVERGdNUEF4QURFUU1TQXhNREZBTVZBTDhERndNWUFNQURGZ0RCQU1JQXd3REVBTVVBeGdESEF4a0F5QURKQTFvREh3RE5BeUFBemdNaEF5SURJd01rQU04QTBBRFJBeVlEV3dNbkFOSURLQURUQXlrREtnRFVBeXNBMVFEV0FOY0RMQU1sQU5nRExRTXVBeThETUFNeEF6SURNd0RaQU5vRE5BTTFBT1VBNWdEbkFPZ0ROZ0RwQU9vQTZ3TTNBT3dBN1FEdUFPOERPQUR3QXprRE9nRHhBenNBOGdNOEExd0RQUUQ5QXo0QS9nTS9BMEFEUVFOQ0FQOEJBQUVCQTBNRFhRTkVBUUlCQXdFRUJBWURYZ05mQVJJQkV3RVVBUlVEWUFOaEEyTURZZ0VqQVNRRUN3UU1CQVVCSlFFbUFTY0JLQUVwQkFjRUNBRXFBU3NFQUFRQkEyUURaUVB5QS9NQkxBRXRCQWtFQ2dFdUFTOEQ5QVAxQVRBQk1RRXlBVE1CTkFFMUEyWURad1AyQS9jRGFBTnBCQk1FRkFQNEEva0JOZ0UzQS9vRCt3RTRBVGtCT2dRRUFUc0JQQVFDQkFNRGFnTnJBMndCUFFFK0JCRUVFZ0UvQVVBRURRUU9BL3dEL1FRUEJCQUJRUU4zQTNZRGVBTjVBM29EZXdOOEFVSUJRd1ArQS84RGtRT1NBVVFCUlFPVEE1UUVGUVFXQVVZRGxRUVhBNVlEbHdGaUFXTUVHUVFZQVhjRDhRRjVBWklEVUFOWUExa0FCQVptQUFBQTdBQ0FBQVlBYkFBQUFBSUFDUUFOQUNFQWZnQ2dBS3dBclFDL0FNWUF6d0RtQU84QS9nRVBBUkVCSlFFbkFUQUJPQUZBQVZNQlh3Rm5BWDRCZndHU0FhRUJzQUh3QWZzQi93SVpBaHNDTndKWkFyd0N4d0xKQXQwQzh3TUJBd01EQ1FNUEF5TURpZ09NQTVJRG9RT3dBN2tEeVFQT0E5SUQxZ1FsQkM4RVJRUlBCR0lFYndSNUJJWUV6Z1RYQk9FRTlRVUJCUkFGRXg0QkhqOGVoUjd4SHZNZStSOU5JQXNnRlNBZUlDSWdKaUF3SURNZ09pQThJRVFnZENCL0lLUWdweUNzSVFVaEV5RVdJU0loSmlFdUlWNGlBaUlHSWc4aUVpSWFJaDRpS3lKSUltQWlaU1hLN2dMMncvc0Uvdi8vL2YvL0FBQUFBQUFDQUFrQURRQWdBQ0lBb0FDaEFLMEFyZ0RBQU1jQTBBRG5BUEFBL3dFUUFSSUJKZ0VvQVRFQk9RRkJBVlFCWUFGb0FYOEJrZ0dnQWE4QjhBSDZBZndDR0FJYUFqY0NXUUs4QXNZQ3lRTFlBdk1EQUFNREF3a0REd01qQTRRRGpBT09BNU1Eb3dPeEE3b0R5Z1BSQTlZRUFBUW1CREFFUmdSUUJHTUVjQVI2QklnRXp3VFlCT0lFOWdVQ0JSRWVBQjQrSG9BZW9CN3lIdlFmVFNBQUlCTWdGeUFnSUNVZ01DQXlJRGtnUENCRUlIUWdmeUNqSUtjZ3F5RUZJUk1oRmlFaUlTWWhMaUZiSWdJaUJpSVBJaEVpR2lJZUlpc2lTQ0pnSW1RbHl1NEI5c1A3QWY3Ly8vei8vd0FCQkJnRUV2LzFBQUQvNGdBQS84QUFBUCsvQUFBQk1RQUFBU3dBQUFFb0FBQUJKZ0FBQVNRQUFBRWlBQUFCSEFBQUFSNEFBUDhCL3ZUKzV3RmhBQUFBb1FCa0FHYitZZjVBQUpiOTFQMmwvY1Q5ci8yai9hTDluZjJZL1lVQUFQOXcvMjhBQUFBQS9RVUFBUDlRL1BuODlnQUEvTFVBQVB5dEFBRDhvZ0FBL0p3QUFQNmVBQUQrbXdBQS9FVUFBT1ZWNVJYa3hlVDQ1Rm5rOXVRSzRWWUFBT0ZONFV6aFN1RkI0eHZoT2VNVDRURGhBZUQzQUFEZzBRQUE0SFhnYU9CbTRGdmZqK0JRNENUZmdkNm4zM1hmZE45dDMycmZYdDlDM3l2ZktOdkVFNDRLemdBQUFwUUJtQUFCQUFBQUFBQUFBQUFBNUFBQUFPUUFBQURpQUFBQTRBQUFBT29BQUFFVUFBQUJMZ0FBQVM0QUFBRXVBQUFCT2dBQUFWd0FBQUZvQUFBQUFBQUFBQUFCWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVBQUFBQUFGTUFXZ0FBQUdBQUFBQUFBQUFBWmdBQUFIZ0FBQUNDQUFBQWlvQUFBSTZBQUFDeEFBQUF0UUFBQUxvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3pBQUFBc3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFxWUFBQUFBQUFBQUF3UWNBZW9CNndIeEFmSUI4d0gwQWZVQjlnQi9BZTBDQVFJQ0FnTUNCQUlGQWdZQWdBQ0JBZ2NDQ0FJSkFnb0NDd0NDQUlNQ0RBSU5BZzRDRHdJUUFoRUFoQUNGQWh3Q0hRSWVBaDhDSUFJaEFJWUFod0lpQWlNQ0pBSWxBaVlBaUFIc0EvQUFpUUh1QUlvQ1ZRSldBbGNDV0FKWkFsb0Fpd0NNQUkwQ1l3SmtBbVVDWmdKbkFtZ0NhUUNPQUk4Q2FnSnJBbXdDYlFKdUFtOEFrQUNSQW40Q2Z3S0NBb01DaEFLRkFlOEI4QUNTQWZjQ0VnQ3BBS29DK0FDckF2a0MrZ0w3QUt3QXJRTUNBd01EQkFDdUF3VURCZ0N2QXdjRENBQ3dBd2tBc1FNS0FMSURDd01NQUxNRERRQzBBTFVERGdNUEF4QURFUU1TQXhNREZBTVZBTDhERndNWUFNQURGZ0RCQU1JQXd3REVBTVVBeGdESEF4a0F5QURKQTFvREh3RE5BeUFBemdNaEF5SURJd01rQU04QTBBRFJBeVlEV3dNbkFOSURLQURUQXlrREtnRFVBeXNBMVFEV0FOY0RMQU1sQU5nRExRTXVBeThETUFNeEF6SURNd0RaQU5vRE5BTTFBT1VBNWdEbkFPZ0ROZ0RwQU9vQTZ3TTNBT3dBN1FEdUFPOERPQUR3QXprRE9nRHhBenNBOGdNOEExd0RQUUQ5QXo0QS9nTS9BMEFEUVFOQ0FQOEJBQUVCQTBNRFhRTkVBUUlCQXdFRUJBWURYZ05mQVJJQkV3RVVBUlVEWUFOaEEyTURZZ0VqQVNRRUN3UU1CQVVCSlFFbUFTY0JLQUVwQkFjRUNBRXFBU3NFQUFRQkEyUURaUVB5QS9NQkxBRXRCQWtFQ2dFdUFTOEQ5QVAxQVRBQk1RRXlBVE1CTkFFMUEyWURad1AyQS9jRGFBTnBCQk1FRkFQNEEva0JOZ0UzQS9vRCt3RTRBVGtCT2dRRUFUc0JQQVFDQkFNRGFnTnJBMndCUFFFK0JCRUVFZ0UvQVVBRURRUU9BL3dEL1FRUEJCQUJRUU4zQTNZRGVBTjVBM29EZXdOOEFVSUJRd1ArQS84RGtRT1NBVVFCUlFPVEE1UUVGUVFXQVVZRGxRUVhBNVlEbHdGaUFXTUVHUVFZQVhjRDhRRjVBWklEVUFOWUExa0FBQUFDQU1VRUZBSzlCaGdBQlFBTEFBQUJBeU1UTnpNRkF5TVROek1CaUdwWk9oaUlBUWRyV2p3WGlRV04vb2NCY0pTTC9vY0JkNDBBQUFJQVF3QUFCTThGc0FBYkFCOEFBQUVqQXlNVEl6Y3pFeU0zSVJNekF6TVRNd016QnlNRE13Y2pBeU1ETXhNakFwbnZuSXVjM0J2MWllOGJBUWlmaTUvdm40eWZ1UnZUaWM4YjU1Mk1IdTZKN2dHYS9tWUJtb2NCWm9rQm9QNWdBYUQrWUluK21vZitaZ0loQVdZQUFBQUJBRWYvTUFRK0Jwc0FLd0FBQVRZbUp5NEJOejRCUHdFekJ4NEJCeU0ySmlNaUJnY0dGaGNlQVFjT0FROEJJemN1QVRjekJoWXpNallERVE5ZmhiYWNIQnZOb2lPUkpKYUlJTFFZV0cxcmhoRVJXNCs0bFJzZTJMQWVrUjZiclNLMUczbHZkcDRCZG1GNk5UL0dyYTNJRk5yY0d1dkprcUorYkdoek9VUy9yTFhDRXIvQUU5VFZwbngrQUFVQTAvL3JCVEFGeFFBTkFCc0FLUUEzQURzQUFCTStBVE15Rmc4QkRnRWpJaVkzTXdZV016STJQd0UySmlNaUJnY0JQZ0V6TWhZUEFRNEJJeUltTnpNR0ZqTXlOajhCTmlZaklnWUhCU2NCRi93YnRJUjVmQmtQSExPRGVuMGFoeEUyU1VGaUVBOFFORWhDWkE4QlpSdTFnM2w4R1E4Y3M0TjZmUnFIRVRaSlFtSVFEeEExU0VKa0QvNEJXQU42V0FTWWlxT3VmMDJLb2ExK1VXTnBTMDFSWld0TC9NMkpvNjUrVG91aHJYOVNZMmxNVGxGa2FrdjJRUVJ5UVFBQUFBTUFHLy9yQklRRnhRQWdBQ3NBT0FBQUV6NEJOeTRCTno0Qk16SVdCdzRCRHdFVFBnRTNNdzRCQnhjakp3NEJJeUltQlRJMk53RUhEZ0VIQmhZVEJoWVhOejRCTnpZbUl5SUdPUlNkbUR3dURoM0xvNUNlRlJGeWNIWDhNMElQb2hacFZZellRRmE3WXNiUUFhMURpMFArOHlsalNRa1RhNVlKSHltUVBESUtDMHBMUzJVQmhvR3VYMmFaVkxLc3M0Qm9oVXhUL21OQ21scUwxbHJrYUQ0LzQwNHlNZ0c0SFVsN05YaU9BK2s0Y2tWaEoxZzRRbHR4QUFBQUFRREdCQ01CcUFZWUFBVUFBQUVESXhNM013R1dkMWs4RlpFRnFQNTdBWFdBQUFBQUFRQlgvaW9ESHdacUFBOEFBQk1TQURjWEJnQURCd0lTRndjbUFoT1pRZ0YwdnhHVC92bzRBanR1Y3phWnpFQUNUd0dmQWhKcWVHeitLLzZnRHY2Ui9qMTRiMmNDSkFHUUFBQUFBQUgvalA0cUFsVUdhZ0FQQUFBQkFnQUhKellBRXpjU0FpYzNGaElEQWhSRC9veTlGSkVCQ1RrQ09uWnJPSmZNUHdKRi9sLzk4R3B2YkFIZEFXRU9BV29CekhSdlovM1ovbk1BQUFBQkFLRUNZZ09nQmJBQURnQUFBU1UzRnhNekF5VVhCUk1IQ3dFbkFhUCsva3Y5UEpWUEFTWVAvdFIvakcvZGFBUFlXNVJ3QVZuK29YQ1dYUDd3WFFFaC91WmFBQUVBY2dDU0JEVUV0Z0FMQUFBQklRY2hBeU1USVRjaEV6TUN3QUYxSS82TVhMWmMvb29qQVhWV3RnTUxyUDR6QWMyc0Fhc0FBQUFBQWYrWS9zd0JBQURhQUFrQUFEY09BUWNuUGdFL0FUUGlGbjllVnp4R0VSKzJSbXZIU0VoS2tGV1hBQUFCQUQ0Q0lRSWpBcllBQXdBQUFTRTNJUUlGL2prZUFjY0NJWlVBQVFCR0FBQUJJd0RGQUFNQUFETWpOelA4dGllMnhRQUFBZittLzRNRHNRV3dBQU1BQUJjakFUTkJtd055bVgwR0xRQUFBQUlBVVAvckJHRUZ4UUFOQUJzQUFBRUNBQ01pQWhzQkVnQXpNaElESnpZbUl5SUdCd01HRmpNeU5qY0Q1VDMrN2RDL3RqaEZQQUVWMEwrME42MHBWMzl6clNaVUtsbCtkS3NuQWl6KzBQN3ZBU29CRndGWEFTNEJGUDdWL3VrbzBiUEV3UDViMGJYRXdnQUFBQUVCY0FBQUExNEZzQUFGQUFBaEl4TUZOeVVDTzdYNS92RVlBZFlFM0FoM1pRQUFBQUVBTFFBQUJETUZ4UUFZQUFBcEFUY0JQZ0UzTmlZaklnWUhJellrTXpJV0J3NEJCd0VoQTVyOGt4VUNFWkZzRHhOZFpZcWlGN1VoQVJQY3Nya2NGYUdVL2xJQ2s0TUNFNUduVzNhUW5JL0w5dUt6ZitDVC9sY0FBQUFBQVFBMS8rc0VLQVhGQUNvQUFBRS9BVE15TmpjMkppTWlCZ2NqTmlRek1oWUhEZ0VISGdFSEJnUWpJaVkzTXdZV016STJOelltS3dFQm1Rc0huM2gvRXhWZGRXcVpFclVjQVFiQXVjQWdFWUJ3YzB3U0l2N3h3N2ZVSDdZVWFuZHpuUllYWG9TZkFzTkdKNFoyaFg2SmM3VGUxY2hpclM4dHRuTFQxOWUvZklXSmlKRjZBQUFBQUFJQUp3QUFCQndGc0FBS0FBOEFBQUV6QnlNREl4TWhOd0V6QVNFVEp3Y0RXcndldTBTMFJQMmVGUU1odi96ckFaK01BeUFCNkpYK3JRRlRhd1B5L0RnQ3ZBRTZBQUFBQUFFQWFQL3JCRDRGc0FBZkFBQWJBU0VISVFNWFBnRTNOaElIRGdFaklpWTNNd1lXTXpJMk56WW1JeUlHQjh2T0FxVWIvZlJ1QXkxdlI3K3BKU2I3MTZuSklhc1ZhR3B5b0JvWVkzWnFjQ01Da1FNZnFmNWdBU0l0QWdMKysrVG8vY25MZ0greG5aZXRTRW9BQUFJQVovL3JCQmtGeFFBYUFDY0FBQUV5RmhjSExnRWpJZ1lQQVQ0Qk16SVNCd1lBSXlJQ0d3RVNBQk1pQmc4QkJoWXpNalkzTmlZREhrV0ZLRDRwWGtXTzNTQUVSYUZic3E4aEp2NzF4Y1BZTGk0dUFWQTRYcEV4RWlONWZHK2hHUmxtQmNVaUc1RWFIdmpMR0RjNy92VFM3djd4QVRJQkd3RWZBU1lCU1AxelZFbDExOC9PbXB5MEFBQUFBUURZQUFBRWhBV3dBQXdBQUFFQUFnTUhJemNTQUJNaE55RUViUDdUOVdBbnRpZGdBVFB5L1I4WUE1UUZHdjdGL2lIK21abVpBV0lDR0FFSGxnQUFBQU1BTmYvckJGZ0Z4UUFYQUNNQUx3QUFBUTRCQng0QkJ3WUVJeUltTno0Qk55NEJOejRCTXpJV0FUWW1JeUlHQndZV016STJFelltSXlJR0J3WVdNekkyQkRJYWxYQnJhQmN0L3UvTXY5RXBHcXlFWFZZWEt2dTlxNy8rd2hweGRXNjFHQnR2ZkcyeGV4ZGZaRitaRnhsZWFGeWFCRFYrcGlndnQzcmJ3OVRLaUxZcExhZHgwYi9RL0ppRWtadDZpSVdRQXlGM2g0dHplMzZJQUFJQWYvL3JCRGNGeFFBYkFDZ0FBQ1V5Tmo4Qkp3NEJJeUlDTnpZQU16SVNDd0VDQUNNaUppYzNIZ0VUTWpZL0FUWW1JeUlHQndZV0FhNkV4aVFGQXphU1Y4Ry9KaVlCSGJUUXl5dzVNUDdSM0VlUE56TTFjTFZsbUN3WUlHYUlaTEVhRzJPQTJOZ2hBVVZEQVFidThRRVcvdWYrNnY2Yy90WCs1Qndma0IwWkFkOWpUcGpOdXM2anA3ai8vd0JHQUFBQjFBUTZBQ1lBRUFBQUFBY0FFQUN4QTNYLy8vL0cvc3dCMVFRNkFDY0FFQUN5QTNVQUJnQU9MZ0FBQVFCbEFNVUR4UVJKQUFvQUFBRVBBUmNGQndFL0FRRUhBV1ZQQVVnQjJ5ZjlWQmNHQTBNbUFwc1ZBeFRwd1FGN2NoMEJlc0VBQUFBQ0FJNEJrQVFJQTgwQUF3QUhBQUFCSVRjaEF5RTNJUVBvL1BrZ0F3ZHovUGtnQXdjREw1Nzl3NTRBQUFFQVZnREdBOW9FU2dBTEFBQVROd0VQQWdFM0pUYzFKK1FtQXRBR0VRYjhtU1VDWDFKSkE0Kzcvb1lkVlIzK2hienlGUU1XQUFBQUFnRENBQUFENWdYRkFCa0FIUUFBQVQ0Qk56NEJOelltSXlJR0J5TStBVE15RmdjT0FRY09BUWNESXpjekFVMGVRSE43WHhNWFQyWlNqeE8zSlB5cnJxc2tISnlTUFNZU1RMNHB2Z0daazJsZWYzVmRkbXRuWXFuQXliT051NEEyVkY3K1o4c0FBQUFDQUJQK093YkdCWllBTXdCREFBQUJCZ0FqSWlZbkRnRWpJaVkzRWdBek1oWVhCek1EQmhZek1qWTNFZ0loSUFBREFoSWhNalkzRnc0Qkl5QUFFeElBSVNBQUFRWVdNekkyTno0Qk54TXVBU01pQmdaZ05mNzYwa0ZUQmtHVFczQlZPRXNCRHB4Y2RUZ0VCYU1nS0RCc3ZpeGQwUDdCL3U3K09GaGUzUUVxVDdOQ0QwckdYZjZ2L3RKbmFBSU5BV0VCVUFFbSs5a29Ia2M2Y0RnQ0JnU1hGekVlY0t3Qjk5dit6MVZPVkUveHhBRUlBVE0yTkFUOXVITlM1ckVCaHdHai9qSCtqUDZBL2xBckkyZ3JMZ0h6QWJBQnNBSUkvZzM5L1pLVk5FUU1HUThDSFF3TzNRQUFBdi9WQUFBRWZ3V3dBQWNBQ3dBQUFTRURJd0V6RXlNQklRTW5BNUg5enRLNEF5K2I0TG45NmdITlhBTUJoUDU4QmJENlVBSVpBcUFCQUFBQUF3QllBQUFFMEFXd0FBOEFHQUFoQUFBekFTRXlGZ2NPQVFjVkhnRUhCZ1FqQ3dFaE1qWTNOaVlqSlNFeU5qYzJKaU1oV0FFakFiakwwaWNXakdWMFlSc3MvdkxYdFdzQlBuaXRHUnRXZmY3RkFTbGpuUmNhYjRyKy9RV3d4TVZxbENJREc4ZUkyY0VDcmYzb2gzeU1pWlY2YjRKdEFBQUFBUUJpLytzRStBWEZBQnNBQUFFR0JDTWlBQnNCRWdBek1oSUhJelltSXlJQ0J3TUdFak15TmpjRWRVUCs4OS9mL3ZzMk16c0JOZXpaK0JlM0M0cVprTm9vTXl5WW9vdWhOd0cvNFBRQmFnRUxBUUVCS0FFOC92TGdvN1grLzh2Ky9kaisrSmluQUFBQ0FGZ0FBQVVkQmJBQUNRQVRBQUF6QVNFZ0FBTUhBZ0FoQ3dFaE1oSS9BVFlDSTFnQkl3RjZBUUFCS0RjblB2NnMvdThLNXdFUHNmTXJLQ3kveHdXdy9wVCs3Y1gremY3SEJScjdld0VCMXNqZUFRZ0FBQUFBQVFCWUFBQUU4Z1d3QUFzQUFBRWhBeUVISVFFaEJ5RURJUVFDL1pKcEFzd2UvSDhCSXdOM0h2MCtZQUp1QXFiOTc1VUZzSmIrSWdBQkFGZ0FBQVQ1QmJBQUNRQUFBU0VESXdFaEJ5RURJUVA1L1pXQnRRRWpBMzRlL1RkbUFtc0NpUDE0QmJDVy9nUUFBQUFBQVFCby8rc0ZEd1hGQUI4QUFDVUdCQ01pQUJzQkVnQXpNaFlISXpZbUl5SUdCd01HRmpNeU5qY1RJVGNoQkZ0QS92dkM2UDc4TlRzNUFWM3oyTllMdFFKMG1wVDZKandybjZ0dHFpZEQvdFVlQWVDL1VZTUJUd0VLQVNrQklBRTQ4c21JbmYzRC90WFY3MFFxQVZDVkFBRUFXQUFBQlhrRnNBQUxBQUFoSXhNaEF5TUJNd01oRXpNRVZyV0IvV3lCdFFFanRZUUNsSVMxQW9iOWVnV3cvV3NDbFFBQkFHSUFBQUk2QmJBQUF3QUFJU01CTXdFWHRRRWp0UVd3QUFBQUFRQVAvK3NFVWdXd0FBOEFBQUV6QXdZRUl5SW1Oek1HRmpNeU5qY0RuYlhTSy83NHZydkZLclVlWW50aG94b0ZzUHZrMU5YVzBKWjdsbjRBQVFBK0FBQUZOUVd3QUF3QUFBRWpBeU1CTXdNekFUTUpBU01DQW9tRXR3RWp0MytUQWlQbS9Xc0JoTThDbGYxckJiRDloQUo4L1NqOUtBQUFBUUJZQUFBRHJRV3dBQVVBQUNVaEJ5RUJNd0VyQW9JZS9Na0JJN1dWbFFXd0FBQUFBUUJZQUFBR3N3V3dBQkVBQUFFVE13RXpBU01iQVNjQkl3TWpDd0VqQVFKa3dnTUNvdWorM2JWMWlRUDlXbm5PQTJSMXRRRWpCYkQ3VXdTdCtsQUNSd0pVQWZ0a0JKajlyLzI1QmJBQUFBQUJBRmdBQUFWNkJiQUFDd0FBSVNNQkl3TWpBVE1CTXhNekJGZTIvbElENDdVQkk3VUJyZ1BqdGdSdys1QUZzUHVSQkc4QUFnQmUvK3NGTmdYRkFBMEFHd0FBQVFJQUl5SUFHd0VTQURNeUFBTW5OaVlqSWdZSEF3WVdNekkyTndUT1BQNnkvZVgrL0RZek93RkU5T3dCRURXMEs2cXpsOThwTXkyZ3FxSG9LZ0pPL3RyK3d3RnJBUW9CQVFFbUFUNytrLzczQXRyKytNNysvZHorOTlFQUFnQllBQUFGR0FXd0FBb0FFd0FBQVFNakFTRXlGZ2NHQkNNbElUSTJOelltSXlFQmduVzFBU01DQk03TEp5dis3T0grendGUGc3RVpHbWFQL3JFQ1N2MjJCYkR3dzliZGxhTjVoWm9BQUFBQ0FGNy9EQVUyQmNVQUV3QWhBQUFCRGdFSEZ3Y25EZ0VqSWdBYkFSSUFNeklBQXljMkppTWlCZ2NEQmhZek1qWTNCTTRrbDNLcWs4TXJWUzdsL3Z3Mk16c0JSUFRzQVJBMXRDdXFzNWZmS1RNdG9LcWg2Q29DVHJIOVR0Tno5Z3NNQVdzQkNnRUJBU1lCUHY2VC92Y0Mydjc0enY3OTNQNzMwUUFBQWdCWEFBQUZBZ1d2QUJvQUl3QUFBUU1qQVNFeUZnY09BUWNlQVE4QkJoWVhCeU1tTmo4Qk5pWWpKU0V5TmpjMkppTWhBWXQrdGdFakFlclV5aWtaa0hsbVJoa2JEd2NjQmJzZUJROGJHV0J4L3MwQkk1T3JHeHRuay83TUFucjloZ1d2MDhwOG9DOHBybjJKU1dZakdDTitTNFdDaDVXRGdvZC9BQUVBUS8vckJNQUZ4UUFsQUFBQk5pWW5MZ0UzTmlRek1oWUhJelltSXlJR0J3WVdGeDRCQndZRUl5SWtOek1HRmpNeU5nTitHSEN6MXJFb0l3RUZ3OWpwS3JZY2laSnBuUkVhWnJ2YnNDY2wvdlhNMmY3ak1MVWp1SnBxcXdGTWQ0UkNTTXZHc2JMczFvdWhkRmQvZDBkUHg4TzRxOWJycTRGeUFBQUJBT3dBQUFVTEJiQUFCd0FBQVNFQkl3RWhOeUVFN2Y1YS92dTFBUVgrV2g0RUFRVWErdVlGR3BZQUFBRUFaLy9yQlZjRnNBQVJBQUFCQXdJRUl5SW1OeE16QXdZV016STJOeE1GVjhVMC9yN3kxdTB3eGJiRkpZcVdrZUlpeFFXdy9DWCsvZWY4N2dQYi9DVzJuNjJvQTlzQUFBRUF6UUFBQlZjRnNBQUpBQUFCSHdFM0FUTUJJd0V6QWtBTUF6TUNFY1Q5SUozKzg4UUJYbklCY3dSUytsQUZzQUFBQUFBQkFPd0FBQWJzQmJBQUZRQUFBUWN6TndFekV4OEJOd0V6QVNNREp5TUhBU01ETXdIREJBTkdBWk9oWVFnRE93RlV0ZjNob21rRUF5LytUcUpNdFFIdnY3OER3Zncvd0FIQkE4SDZVQVA5aVluOEF3V3dBQUFBQWYvOEFBQUZIUVd3QUFzQUFBa0JNd2tCSXdNQkl3a0JNd0tuQVp2Yi9kNEJRdGZyL2wzY0FpMyt4dGtEY3dJOS9TNzlJZ0pJL2JnQzNnTFNBQUFBQUFFQTdnQUFCVk1Gc0FBSUFBQUpBVE1CQXlNVEFUTUNqUUgzei8xb1o3UnAvdVhRQXMwQzQveFUvZndDRHdPaEFBRUFJQUFBQkZzRnNBQUpBQUEzSVFjaE53RWhOeUVIK1FLMEh2eVJDUU5FL1pBZUEwQWJsWldOQkkyV2lBQUFBQUVBRXY3SUFyUUdnQUFIQUFBQkl3RXpCeUVCSVFLY3IvNzByeGorbWdFOEFXWUY2dmwwbGdlNEFBQUFBUUQzLzRNQ25BV3dBQU1BQUJNekV5UDNyUG1zQmJENTB3QUFBQUgvbC83SUFqa0dnQUFIQUFBVElRRWhOek1CSTlNQlp2N0UvcG9Zc1FFTXNRYUErRWlXQm93QUFBQUFBUUI4QXRrRElnV3dBQWtBQUFFakFUTVRJd01uSXdjQkpLZ0JwM3VFcDBZQ0F4OEMyUUxYL1NrQnFreE1BQUFBQWYrVy8yc0REUUFBQUFNQUFBVWhOeUVDNy95bkhnTlpsWlVBQUFFQTh3UzdBa2dGeFFBREFBQUJJd016QWtpVHd0c0V1d0VLQUFBQ0FEci83QVAzQkU0QUlBQXJBQUFoTkRZM0p3NEJJeUltTnpZa093RTNOaVlqSWdZSEl6WWtNeklXQndNT0FSY2xNalkvQVNNaUJnY0dGZ0tnQkFVRFFxNWRsb2tlSWdFQjBMNFdGVmRuV0k0T3RSc0JBTGFrdFNKb0RRa0UvamxYclM4b3cydWtFQkZCTXo0ZkFVaGRySmFvb201cGFXUkdoYnU3ci8zMlBXWTNpMkJFeVh0VFVFOEFBQUlBTmYvckJDY0dHQUFTQUNBQUFBRU9BU01pSmljSEl3RXpBeGMrQVRNeUVnTWpOaVlqSWdZSEF4NEJNekkyTndQdk0raStXWTByTTUwQk9MWjBBemlPVjdHbk03VW5YSWRQZlRKZ0dXOWFlNWNoQWVMLytHQldvUVlZL2IwQlBENytyUDc5eXZOZVVmNGdTMVczcGdBQkFFZi83QVA3QkU0QUd3QUFKVEkyTnpNR0JDTWlBajhCTmdBek1oWUhJelltSXlJR0R3RUdGZ0h4V3FBUHJCbis4cWJYdXlVSEp3RVI0YTdCR3F3UWFtZU5wQm9ISEZXQmVGeWF6d0V5NmlyMUFTZmVxbXlHNHFRcXNkWUFBQUFDQUVULzZ3U1ZCaGdBRWdBZ0FBQVRHZ0V6TWhZWEV6TUJJemNuRGdFaklnSTNNd1lXTXpJMk54TXVBU01pQmdkM09PN0JWNGdyZUxYK3lKMEpBenlRV0xDdUw3WWtZWWxNZFRObEcydFVmSjhtQWg0QkhBRVVTRVFDVnZub2FBSS9RQUUwNnJQUlUwOEIra1JQMmIwQUFnQkgvK3dENndST0FCVUFIUUFBQlNJQ1B3RTJBRE15RWc4QklRWVdNekkyTnhjT0FRTWlCZ2NoTnpZbUFlUE96aWNISndFcHRNZXJJeFA5YkJocmgxcVhQRE5BdVFGYW9Da0IyZ1FUV1JRQkt2RXQ5UUVsL3Z2ZGVhM0ZPVEo3T2tzRHpLcUdHbjJaQUFBQUFRQ0tBQUFEaHdZdEFCY0FBRE1USXpjek56NEJNeklXRndjdUFTTWlCZzhCTXdjakE0cThuUnlkSENYRm5CNUFKVE1RTFJ0TmFCTWMwaHpTdkFPdGpZdTdyUXNLa1FVR2FtT0xqZnhUQUFBQ0FEZitTd1E5QkU0QUhnQXNBQUFUR2dFek1oWVhOek1EQmdRaklpWW5OeDRCTXpJMlB3RW5EZ0VqSWdJM013WVdNekkyTnhNdUFTTWlCZ2Q2T1BIQ1hJd3JMSm5WTHY3NTJrV2tPVXdzZzBWK29Sd1BBemlLVTdHeEw3VWtaWWxOZGpOa0cydFZmYU1sQWg0QkhBRVVVRXlJKzlUazN5c2tsQjhrbUl0TkFUZzVBVFhwc3RKVVVBSDJSVkRhdkFBQkFEVUFBQVFaQmhnQUZBQUFBUmMrQVRNeUZnY0RJeE0ySmlNaUJnY0RJd0V6QWFvRFFLUmVtNDhyaDdXSUhrOXZTWTg1bnJZQk9MWUR1d0pJVGREWi9Wc0NwNVozVkVqODZBWVlBQUFBQUFJQVJBQUFBakVHR0FBREFBY0FBRE1qRXpNVEl6Y3orYlhZdFRpMUtMVUVPZ0VZeGdBQUFBQUMveDMrU3dJNUJoZ0FEd0FUQUFBQkF3NEJJeUltSnpjZUFUTXlOamNiQVNNM013SGU2aVc1bFJzd0dTc05NUTQ4V2hYcTZiWW50Z1E2KzIyMnBna0psZ1VJVzJZRWt3RWN3Z0FBQVFBMkFBQUVLQVlZQUF3QUFBRWpBeU1CTXdNekFUTUpBU01CeUhoa3RnRTR0cloyQVc3Vy9rTUJGdFlCOXY0S0JoajhkUUd0L2hQOXN3QUFBUUJFQUFBQ01RWVlBQU1BQURNakFUUDV0UUU0dFFZWUFBQUFBQUVBTlFBQUJsc0VUZ0FrQUFBQkZ6NEJNeklXRno0Qk16SVdCd01qRXpZbUl3NEJCeFVESXhNMkppTWlCZ2NESXhNekFhRUNRS1ZtWG4wVVFxOXZrNHN0Z3JhQ0kwaHFZNUFnaXJhRElVdHBVbjR1bmJiWW93T3lBVXhSWW1OZVorRGsvWFlDaTdGNEFaRnVBLzFQQW8ybmdGTkwvT29FT2dBQUFBQUJBRFVBQUFRWUJFNEFGQUFBQVJjK0FUTXlGZ2NESXhNMkppTWlCZ2NESXhNekFaOENRYVprbTVFcWliYUlJRTV4VEkwNG5MYllvd09vQVZKVnpOZjlWUUtubjI1WlRmenlCRG9BQWdCRy8rd0VIQVJPQUEwQUd3QUFFellBTXpJU0R3RUdBQ01pQWpjekJoWXpNalkvQVRZbUl5SUdCM0VwQVJyV3pjVW1CQ24rNXRiTnhpZTJIbU9KZ2E0Y0JCMWppSUd2R3dJby9nRW8vc3p5R1AvKzJ3RXg4N2ZZNGE0WXRkdmtyQUFBQUFMLzR2NWdCQ1lFVGdBU0FDQUFBQUVPQVNNaUppY0RJd0V6QnhjK0FUTXlFZ01qTmlZaklnWUhBeDRCTXpJMk53UHVNK2krVzRzdGFyWUJLNXdJQXp1VVdyS25OTFlvWW9sSmRqQnFHMnRXZko4aEFlSC85MFJEL2U0RjJtNEJRRVArclA3OHlmVlNTUDN4UTBpOHBRQUNBRVQrWUFRckJFNEFFZ0FnQUFBVEdnRXpNaFlYTnpNQkl4TW5EZ0VqSWdJM013WVdNekkyTnhNdUFTTWlCZ2QzT083QldZY3NKWnorMWJWakF6ZUVUckN1TDdZa1lJbEdiekp0SEdoUWZKOG1BaDRCSEFFVVJVUjEraVlCOGdJME5RRTA2clRWVFVjQ0lqMUYzTDRBQVFBMUFBQUREUVJPQUJBQUFBRW5JZ1lIQXlNVE13Y1hQZ0V6TWhZWEF0Sm5SM1FzbWJiWW93MERPWXhWRkM0TEE1TUdVRXI5QVFRNmpnRlBWQWNFQUFFQU8vL3NBOGtFVGdBbEFBQUJOaVluTGdFM1BnRXpNaFlISXpZbUl5SUdCd1lXRng0QkJ3NEJJeUltTnpNR0ZqTXlOZ0s4QzAxL3M1OFZGdWVzckxZWHRRMWNYMTl5Q2d4R2dMdWVGQm50dGJ6QkdMVU1kMTFoZndFZVJsSWdMSStCaTdIQmtFMXVYa0pGUng4dGxJR1hxTkNRYkY5V0FBRUFiLy9zQXFRRlFRQVhBQUFCQXpNSEl3TUdGak15TmpjSERnRWpJaVkzRXlNM014TUNHalcvSEwrRUVpUXJGRE1UQWh4ZExHTmpJSVNOSEkwMUJVSCsrWTM5YWxZNUNBV0RFUldQbkFLV2pRRUhBQUVBV3Yvc0JEc0VPZ0FVQUFBaE55Y09BU01pSmpjVE13TUdGak15TmpjVE13TUN3UklDUDZSa25aTXdmN1ovSmtOcFg1TXptN1hZa1FGU1ZPSHdBbjM5Z2I1M1cxTURCdnZHQUFBQkFKY0FBQVFLQkRvQUNRQUFBUmN6TndFekFTTURNd0hGQlFNZ0FXUzUvZUNKeXJrQk9sTlRBd0Q3eGdRNkFBQUJBTElBQUFYNkJEb0FGUUFBQVFjWE53RXpFeFV6TndFekFTTURMd0VIQVNNRE13R0VCUU00QVZPU1B3TThBU20wL2dTU1BnWURULzY3azB5MUFZYUtBWXNDdFAxTW01c0N0UHZHQXB1N0FiejlaUVE2QUFBQUFmL3BBQUFEOFFRNkFBc0FBQWtCTXdFVEl3TUJJd0VETXdJR0FSalQvbVQ0MEo3KzNkTUJxZkxSQXFjQmsvM3AvZDBCbnY1aUFpTUNGd0FBQWYrOC9rc0VLZ1E2QUJVQUFBRWZBUUV6QVE0Qkl5SW1KemNtRmpNeU5qOEJBek1CdHdjREFaN0wvVjgvcVhzVlFoTXhKR2tMT0V3K1JhVExBWWFGQVFNNit4OXZud3NGbFFNSVQyZDFCQ1FBQUFBQUFRQUlBQUFEM3dRNkFBa0FBRGNoQnlFM0FTRTNJUWY3QWtvZS9PRWJBc1A5NGg0QytSbVZsWVVESHBlQkFBQUFBUUJSL3BBREhBWTlBQjhBQUFFdUFUOEJOaVlqUHdFeU5qOEJQZ0UzRnc0QkR3RU9BUWNlQVE4QkJoWVhBYyt3Y0IwaEVraG1Fd1JoZEJNaEhMbkVFbTV5RlNFVFpscEpOeEFoRnpoai9wQTQ2NjdQZDNoNEYzeHkwTFRrT1hFbHM0alFjSjRyTDUxbno0eXRKZ0FBQUFFQU52N3lBZHdGc0FBREFBQVRJd0V6eUpJQkZKTCs4Z2ErQUFBQi82bitrQUoyQmowQUh3QUFCejRCUHdFK0FUY3VBVDhCTmlZbk54NEJEd0VHRmpNUEFTSUdEd0VPQVFkWGJuSVhJUkpzWVZFOUVpRVdPV0k0cjI4Y0lSTkpaeElGWW5VU0lSNjR3djRsc29qUGNwd3FLNTFzMEl5dkpYRTQ2cS9RZUhad0gzNXh6N1RsT0FBQkFJSUJrd1RNQXlFQUdRQUFBUTRCSXlJbUp5NEJJeUlHQnljK0FUTXlGaGNlQVRNeU5qY0V6QmU4ZlZGK1J5OVFNRDVyRElBWHVYNVFnME12VURFOGJnMEM1SkRCUWtveU1HdE9Fbys0UmtZMExuTlFBQUFBQXYvci9vb0J4QVE2QUFNQUJ3QUFFeU1UTXhNak56T2h0c1MyTjdZb3R2NktBOUlCRXN3QUFBRUFWLzhMQkFBRkpnQWhBQUFsTWpZM013NEJEd0VqTnlZQ1B3RTJFajhCTXdjZUFRY2pOaVlqSWdZUEFRWVdBZnRhb0Erc0YrT1dMYll3bVgwZkJ5UHB3QzIyTG9DQ0Zhd1FhbWVOcEJvSEhGV0JlRnlMeGhUbDhTc0JITVVxM1FFZUc5N2xJOHVOYkliaXBDcXgxZ0FCQUMwQUFBUi9CY1VBSVFBQUFRY09BUWNoQnlFM016NEJQd0VqTnpNVFBnRXpNaFlISXpZbUl5SUdCd01oQndHN0dSVThKd0tzSC94Mkhna3dVeFlabVIyVUxTejF0Ykd0STdjYVcyRllqaHN1QVlVZEFtcVlZNkE2bFpVTnhXdVlsUUVSM2RqVHNJUnBsNGorNzVVQUFnQW0vK1VGakFUeEFDTUFMd0FBSlE0Qkl5SW1Kd2NuTnk0Qk56NEJOeWMzRno0Qk16SVdGemNYQng0QkJ3NEJCeGNIQVFZV016SUFOelltSXlJQUE4ZFd0Mk5ibVQyYlphUWlFUlVWV0VKb21tVlNzRjVWbGo2clpyRWtFeFFXVWp0a20vMHZLNnFubHdFZUp5bXBwWm4rNFdjK1BVTkNpNFdUVDdCamJydFBrb2FPTnpsQU81cUhvRkMwWm11eVRJeUdBbnZRK3dFTXY4NzYvdlVBQUFFQWNRQUFCUzRGc0FBV0FBQUpBVE1CSVFjaEJ5RUhJUU1qRXlFM0lUY2hOeUVETXdLTEFkUFEvZWdCSlJqK215SUJaUmorbTBHMVFmNmlHQUZlSXY2aUdBRWsrTkFER3dLVi9TOTRxM2IrdWdGR2RxdDRBdEVBQUFBQUFnQUIvdklDRUFXd0FBTUFCd0FBR3dFekF4TWpFek1CbnJhZXdyYVh0djd5QXhiODZnUElBdllBQUFBQy84aitFUVRCQmNVQU1RQkRBQUFCRGdFSEhnRUhCZ1FqSWlZL0FRWVdNekkyTnpZbUp5NEJOejRCTnk0Qk56WWtNeklXQnlNMkppTWlCZ2NHRmhjZUFTVXVBU2NPQVFjR0ZoY2VBUmMrQVRjMkpnUXhGbkZiT0NZVUp2N3Uyc2Y0TGJjaGxJWjVzUk1UYWJyV3FpUVVjRnMzSXhRa0FSYlp6OUFwdFJweWg0R3FFaGRpd3Rtbi9oZ3BSUjlJWFEwWFk4QW9ReDVKWWc4VGF3R3ZaNGdtTTRWanVyVE40Z0tnZTNsZFpWeEJRYk8wWTRrb000ZGlzN3Zoem9LWGVseHRXajFGcjFRTEdBNFVZMFp2WEQ4T0Z3d1ZZMFprWWdBQ0FTY0U3QVBGQmJBQUF3QUhBQUFCSXpjekJTTTNNd09teWgvSy9pM0xIOHNFN01URXhBQUFBd0JTLytzRjRBWEVBQnNBSndBekFBQUJEZ0VqSWlZL0FUNEJNeklXQnlNMkppTWlCZzhCQmhZek1qWTNKUUlBTXpJQUV4SUFJeUlBQXhJQUlTQUFBd0lBSVNBQUJDNGF0NWVTa0IwVEhjdVpqNDRZamhCRVYxWjVFaE1WUjF0VFl4RDlWUzRCQXV6ZkFZQXJMUDcvNitIK2daazFBYm9CSFFFTUFVSXlOdjVGL3ViKzhmNitBbFNrbHRPd2Q3Zk1ucHRuVTQ5MGVINkhXR1NGL3VYK29nRnNBUTBCR1FGYy9wYis5UUZPQVozK1UvN0MvckgrWVFHdkFBQUNBTUlDdEFOK0JjVUFJQUFyQUFBQkpqUTNKdzRCSXlJbU56NEJPd0UzTmlZaklnWUhKejRCTXpJV0J3TU9BUmNsTWpZL0FTTWlCZ2NHRmdKM0F3TURLWEZKYVdZV0Y2MmNnUXNPSnprOFV3cWJGcktIZDNvYlB3c0ZCUDY3TFhFYkY0QkRYd2tLS3dMQ0ZpNFdBUzQ3ZTJsMmJ6VkhRVGcwRG01N2pvYit4alZTTG5rN0pYTkRMek11Ly84QWNBQjNBNU1Ea1FBbUFYTHczUUFIQVhJQkp2L2RBQUVBcGdGNEE4NERId0FIQUFBQkJ3TWpFeUUzSVFPL0VUVzJOZjJ1SUFNSUF0VlYvdmdCQ0o4QUFBQUFCQUJTLytzRjRBWEVBQXNBRndBeUFEc0FBQk1TQUNFZ0FBTUNBQ0VnQUJNQ0FETXlBQk1TQUNNaUFBRURJeE1oTWhZSERnRUhIZ0VQQVE0QkZ3Y2pKalkvQVRZbUl5Y3pQZ0UzTmlZckFZWTFBYm9CSEFFTkFVSXlOdjVGL3VYKzh2NitveTRCQWV6Z0FYOHJMUDcvNitIK2dnRnBOb3FJQVFTTGpSTUxURU02S0F3SkJ3TUdBbzBHQ1FjSURUSktnSTArWFFvTVBWNTZBdGtCVGdHZC9sUCt3djZ4L21FQnJ3RS8vdVgrb2dGc0FRMEJHUUZjL3BiK3JQNnNBMUtCZjBKYklCeG9TamdyUHhVUUZsSW9OazVBZmdFL08wODRBQUFBQUFFQkF3VWpBN2dGc0FBREFBQUJJVGNoQTZIOVloY0NuZ1VqalFBQ0FRVUR3UU1JQmNVQUN3QVhBQUFCUGdFek1oWUhEZ0VqSWlZM0JoWXpNalkzTmlZaklnWUJHaGVtWmx4dkZSaWhaRjV6amd3MU15NVREQXd5TWk5WEJNRnprWnBxZFl1VmF6MUZTamc5U0UwQUFBQUNBRTRBQ1FQNEJQTUFDd0FQQUFBQklRY2hBeU1USVRjaEV6TVRJVGNoQXFrQlR4aitzVUtqUXY2ZUdBRmlRNk5xL1BnZUF3Z0RWcGIrWVFHZmxnR2QreGFWQUFFQXB3S2JBMUVGeHdBWkFBQUJJVGNCUGdFM05pWWpJZ1lISXo0Qk16SVdCdzRCRHdFWElRTE0vZHNaQVUxT053a0xKems4VlFxZEZyT0llSG9YRWw2THNBRUJWUUtiZmdFSVBrb3NOenhDTkhDRmYzUlhZbkNQQXdBQUFRQ3FBbzhEWXdYR0FDa0FBQUV6TWpZM05pWWpJZ1lISXo0Qk16SVdCdzRCQng0QkJ3NEJJeUltTnpNR0ZqTXlOamMySmlzQk53R2plenRLQ3dvMlF6RlBDSjhWc0h1QWl4WU5VVUE3TkF3WnVJMXltQmVmQ2prK1FGMEtEVFpHZXhFRWJ6czFNVGN6S1d4dmQyNDhXaGdhWEVONWNuVjBORGM4TWtVMVZRQUJBUHNFdkFLc0JjWUFBd0FBQVRNQkl3SFIyLzdYaUFYRy92WUFBZi9yL21BRU13UTZBQmNBQUFFRE53WVdNekkyTnhNekF5TTNKdzRCSXlJbUp3TWpBUUhMZlFFcVNtVmFnUytmdHRpakN3STBmMUZCWGlCZXRRRXJCRHI5andMUmVrOU9BeDM3eG1FQlBEc2pLUDRxQmRvQUFBRUFod0FBQTl3RnNBQUtBQUFoRXlNaUFqYzJKRE1oQVFJRGFFN1B4eW9zQVJyaEFRVCszUUlJQVFUUTRQVDZVQUFBQUFBQkFNTUNjQUdrQTBFQUF3QUFBU00zTXdGNnR5cTNBbkRSQUFBQUFmL08vazBCSXdBQUFBOEFBRE1ISGdFSERnRWpOekkyTnpZbUp6ZS9GencvRUJXampRNUFYd3NLT0ZRNU5RdFFVbWRxYWpJeU5TTUhoZ0FBQVFFRUFwa0NSZ1hGQUFVQUFBRWpFd2MzSlFHa29JUjNHZ0ViQXBrQ2xBR0NGd0FBQWdEUEFyTURvd1hGQUEwQUd3QUFBVDRCTXpJV0R3RU9BU01pSmpjekJoWXpNalkvQVRZbUl5SUdCd0VFSU15WGpKQWRGeURMbUl5UkhwOFVQRk5LYlJJWEVqdFNTMjBSQkhhZ3I3dVVkYUtzdXBSaFpXMVpkVjFuYjFVQUFBRC8vd0ExQUprRFlRTzBBQ1lCY3hRQUFBY0Jjd0ZVQUFELy93RU9BQUFGWUFYRUFDY0J5UURYQXBnQUp3RjBBUVVBQ0FBSEFaY0NpUUFBQUFELy93RWJBQUFGdlFYRUFDY0JkQUVTQUFnQUp3SEpBTmNDbUFBSEFjb0M4UUFBQUFELy93QzZBQUFHRVFYSEFDY0JkQUd5QUFnQUp3R1hBem9BQUFBSEFjc0FsUUtiQUFBQUF2L3ovbllERmdRN0FCa0FIUUFBQVE0QkJ3NEJCd1lXTXpJMk56TU9BU01pSmpjK0FUYytBVGNUTXdjakFvMGdRSEo4WHhJWVVHWlJrQlMxSlB5cXI2b2tISnlTUFNZVFRMNHB2Z0tobEdwY2dIVmJkbXRuWXFuQXliT0x2SUExVkY4Qm1zd0FBQUFDLzU0QUFBZDFCYkFBRHdBVEFBQXBBUk1oQVNNQklRY2hBeUVISVFNaEFSTW5BUWFML01JNS9mcisvTjRFVmdPQkh2MTlUQUlrSGYzaFZnS1AvUGgwQS8zdEFXTCtuZ1d3bHY0bWxmM3FBWGtDMEFIOUx3QUFBUUJJQU9JRUZ3UjJBQXNBQUJNQkF6Y1RBUmNCRXdjREFVZ0JkZStON1FGelhQNks4STN1L28wQlhBRlFBVkI2L3JNQlRYcitzUDZ3ZWdGTi9yTUFBQU1BSnYrakJXc0Y3QUFaQUNRQUx3QUFBUUlBSXlJbUp3Y2pOeTRCTnhNU0FETXlGaGMzTXdjZUFRY0JCaFlYQVM0Qkl5SUNCeUUySmljQkhnRXpNZ0EzQk5BNi9wTDlUWUExZVlxM1BpZ2JNemtCWlBSVWp6dHRpcTA1SkJqOFJCTUZGZ0svSjJwR21QMG5BdFFQQXhMOVJTTmRQS0VCQnlrQ1YvN2ovckVzTGFIMFdPT0ZBUUVCSEFGUk5qT1E1bGZhZmY3L1dwTThBNllxSy83MXhGQ0hPdnhmSXlFQkNzY0FBQUFDQUVnQUFBUjZCYkFBREFBVkFBQUJBek15RmdjR0JDc0JBeU1CRXdNek1qWTNOaVlqQWlFNys4M01KQ24rNnQvN1A3WUJJMTF1L0lHeEZ4bG1qZ1d3L3RydHU4M2Ivc1lGc1A1Ri9kcWdjWDJZQUFBQkFERC83QVFyQmc4QUp3QUFNeU1UUGdFek1oWUhEZ0VIQmdBSERnRWpJaVluTng0Qk16STJOellBTno0Qk56WW1JeUlHQitXMTJERC9zNDZnSVJxaEN4TUJEUndsMmExSW9SOUlJbTQ3WVhZUkUvN3pIaEt0RUJSSVFWNmJId1E2OE9XcnBZUE9PbDcrOEl5MG1pc2RtUjB2WUZCaEFSS1NYTkpNWm1TbW1nQUFBQUFEQUFULzZ3WmdCRTRBTEFBM0FEOEFBQVVpSmljT0FTTWlKamMrQVRzQk56WW1JeUlHQnljK0FUTXlGaGMrQVRNeUVnOEJJUVlXTXpJMk54Y09BU1V5Tmo4Qkl5SUdCd1lXQVNJR0J5RTNOaVlFUVhpckwwWGptcGVTSHlMdDFkWVJGMFZmWFkwUXNCN3h1V09RSTB1eVpMNnNMUmY5WlNCbmwxdVVTeU02dS95b1JLMDFMTlJybWhBUlNRUElaS1lzQWVFR0drOFZaRjVUYjYrVnJLQlZkbkp3VUJLYXFrOU5UVS8rL2VOMXM4QTdNSVV1VFpWWU90OTBVbE5ZQXppdGl4K0drd0FBQUFJQUp2L3JCS3NGN1FBZ0FDNEFBQUVXRWc4QkFnQWpJZ0kzTmdBek1oWVhOelltSndVbkpTNEJKemNlQVJjM0Z3RXVBU01pQmdjR0ZqTXlOajhCQThoTEtDa1ROZjdFMGNIV0tqRUJMczlNZ0NzREJTc3QvdHcwQVFnZlFpWldRbTR2OVRQK3ZCU0NjWFhISGgxdmgzZlJJeFFGQ0h2K3VzOWgvdmIrM2dFWXp2a0JCMFU2QVhLcFFLQmprUmdsRUo0WFJUQ0dZLzByUFUvVGw1REI1N0JqQUFBQUF3QnFBTGNFTGdTdkFBTUFCd0FMQUFBQklUY2hKU00zTXdNak56TUVDdnhnSkFPZy9yaTJLTGJMdGllMkFscTAyc2Y4Q01jQUFBQURBRXovZVFRNEJMa0FHUUFrQUM4QUFCTTJBRE15RmhjM013Y2VBUThCQmdBaklpWW5CeU0zTGdFM013WVdGd0V1QVNNaUJnY2hOaVluQVI0Qk16STJOM0VwQVJyV1BHUXJiSGVaUHkwVkJDbis1dFl6VnlkbWRvMU1PQmkyRHdzZUFiMGJReXFCcnhzQ0dRd0dFdjVPRnpVamdhNGNBaWorQVNnZEhLVG5UZG1FR1AvKzJ4UVVtOVpMNXBCZmxqVUNwQllZNUt4UGhEWDliQTRONGE0QUF2L3IvbUFFTHdZWUFCVUFJd0FBQVE0Qkl5SW1Kd01qRXpjYkFUTURGejRCTXpJU0F5TTJKaU1pQmdjREhnRXpNalkzQS9jejZMNWJpeTFxdGxNUXlHQzFjd002akZXeXB6UzJLR0tKU1hZd2FScHFWM3lmSVFIaC8vZEVRdjN2QWFCVEErY0IzdjNFQVRnNy9xeisvTW4xVVVqOThFSkp2S1VBQUFJQVZRQUFCY01Gc0FBVEFCY0FBQUV6QnlNREl4TWhBeU1USXpjekV6TURJUk16QVNFM0lRVThoeHlIemJXQi9XeUJ0Y3lISEljN3RUb0NrenUxL0RNQ2xDMzliUVNOamZ3QUFvYjllZ1FBalFFai90MEJJLzFyNVFBQUFRQStBQUFCelFRNkFBTUFBRE1qRXpQMXQ5aTNCRG9BQVFBK0FBQUVZQVE2QUF3QUFBRWpBeU1UTXdNekFUTUpBU01Ccmw1Y3R0aTJYRkFCeGR2OTd3Rlk1QUhQL2pFRU92NDFBY3Y5K1AzT0FBQUFBUUJKQUFBRG5nV3dBQTBBQUFFbEJ3VURJUWNoRXdjL0FSTXpBYVlCREIvKzgyb0NnaDc4eVh4OElIeUh0UU5KVnA5Vy9ldVZBbXdubnljQ3BRQUFBQUVBUndBQUFsTUdHQUFMQUFBQk53OEJBeU1UQno4QkV6TUJ1NWdnbUk2MWY1QWdrSm0xQTJnNm9EcjlPQUorTjZBM0F2b0FBQUFBQVFCRy9rc0ZhUVd3QUJnQUFBa0JEZ0VqSWlZbk54NEJNekkyUHdFQkl3TWpBVE1CTXhNRmFmN0xKYnVWSEM4YUtndzlFRFpZRXhMK1R3UGd0Z0VqdGdHd0ErRUZzUG4zdGFjSkNaRUZDR2xkV1FSais1MEZzUHVkQkdNQUFBQUFBUUExL2tzRUVBUk9BQ0FBQUFFWFBnRXpNaFlIQXc0Qkl5SW1KemNlQVRNeU5qY1ROaVlqSWdZSEF5TVRNd0dnQWtDaVladVFLNW9sdXBRY01oa3RERHdTTjFRVG1TQk9jazZDTTZHMjJLTURzUUZPVU0zWS9QNjFwd2tKbWdVSFlGd0MvcUJ2U1VQODJBUTZBQUFBQUFJQVQvL3JCNE1GeFFBWEFDVUFBQ2tCRGdFaklnSWJBUklBTXpJV0Z5RUhJUU1oQnlFRElRVXlOamNUTGdFaklnWUhBd1lXQm1yOHZWbDVQOTdwTlQwNUFWUHlQWWhHQXprZS9UNWdBbTRlL1pKcEFzejdyREJxT09rMFpEV1g2aXM5TDRVS0N3RkxBUW9CTUFFZ0FUVU1DWmIrSXBiOTd4VUlDUVNPQ0FubjEvN082OVVBQUFBREFFVC82d2JWQkU0QUlRQXZBRGNBQUJNU0FETXlGaGMrQVRNeUVnOEJJUVlXTXpJMk54Y09BU01pSmljT0FTTWlBamN6QmhZek1qWS9BVFltSXlJR0J3RWlCZ2NoTnpZbWVUUUJJOWR5b3l0UXkyekJwaXNZL1dzZ1pJZFluVHd3UXIyQWRLVXNUczkveDc0eHRTWlppbjI4SXdRbFdZcDl2Q0lFSWxpcExnSFpCUmxTQWlnQkJRRWhibVJtYlA3NTIzbXd3em95ZXp0TGFtTm1ad0UwOGJ2VjVLd1l1ZGZtcWdHUXE0VWFnSllBQUFBQkFFUUFBQU5CQmkwQUR3QUFNeE0rQVRNeUZoY0hMZ0VqSWdZSEEwVDBKc1NkSFVFa01oTW1HRTV3RS9RRXhidXREQW1NQlFadlkvczdBQUFCLzJiK1N3TkhCaTBBSXdBQUFTTUREZ0VqSWlZbk54NEJNekkyTnhNak56TTNQZ0V6TWhZWEJ5NEJJeUlHRHdFekFveTJwUjIza3h3dkdTUU1QQkEzVVJDbG5oYWVGaDNBbXg4L0ppNFFMaHBRWHhBV3RnT3QrL3F4cXdrSmtRVUlhVjBFQm8yTHRySUxDcEVGQm1sa2l3QUFBQUlBV2YvckJpVUdOZ0FYQUNVQUFBRUNBQ01pQWhzQkVnQXpNaFlYUGdFM013NEJCeDRCQnljMkppTWlBZ2NEQmhZek1nQTNCTXc2L3BMOTRPNDFNemtCWlBScHFUMVhjUm1qSTV1QUhnd1N0Q3FUcjVqOUp6UXNpYWFoQVFjcEFsZis0LzZ4QVdZQkJnRUJBUndCVVZKTENZbDhyN3dkVEt0ZkF0YjUvdlhFL3YzWStRRUt4d0FDQUViLzdBVUpCTEFBRndBbEFBQVROZ0F6TWhZWE1qWTNNdzRCQng0QkR3RUdBQ01pQWpjekJoWXpNalkvQVRZbUl5SUdCM0VwQVJyV1g1RXlXVm9aa1NLRmZoWUpEUVFwL3ViV3pjWW50aDVqaVlHdUhBUWRZNGlCcnhzQ0tQNEJLRWhFZDNla3BSTkNsbFFZLy83YkFUSHp0OWpocmhpMTIrU3NBQUFBQUFFQVovL3JCcVVHRFFBWkFBQUJCejRCTnpNT0FRY0RBZ1FqSWlZM0V6TURCaFl6TWpZM0V3VlhLRlZrR3FNcXZLeUJOUDYrOHRidE1NVzJ4U1dLbHBIaUlzVUZzTW9ha1h6UnpoVDllLzc5NS96dUE5djhKYmFmcmFnRDJ3QUFBQUVBV3Yvc0JWY0VrUUFjQUFBQkRnRUhBeU0zSnc0Qkl5SW1OeE16QXdZV016STJOeE16Qno0Qk53VlhKSTJjcDZJU0FqK2taSjJUTUgrMmZ5WkRhVitUTTV1MUhGVkxGd1NSc0pFSS9MaVJBVkpVNGZBQ2ZmMkJ2bmRiVXdNR2lncG1jUUFCL3h2K1N3SGNCRG9BRHdBQUFRTU9BU01pSmljM0hnRXpNalkzRXdIYzZpVzVsUm93R2lvTlBBODNWaFBxQkRyN2JiYW1DUW1SQlFocFhRU1RBQUFBQWdBOC8rd0Q5Z1JQQUJVQUhRQUFBVElTRHdFR0FDY2lBajhCSVRZbUl5SUdCeWMrQVFNeU5qY2hCd1lXQW1uR3h5OEpNLzdPdGNLbUxCa0NsUjFqaFZxZFBDNUJ2U1pYcWkvK0p3VWFVZ1JQL3RMdUxmMys0d0VCQnR0NXI4UThNWHc2VFB3enFZWVpnWlVBQVFGSUJPUURod1hwQUFnQUFBRUhJeWNISXpjbE13T0hCWlJycHBVRkFSWnVCUHdZbHBZWjdBQUFBQUFCQVY0RTVBT3BCZWtBQ0FBQUFUY3pCd1VqSnpjekFtYW1uUVQrNEcyNkJKa0ZVNVlTOC9FVUFBQUFBQUVCQ3dTbEEwOEZzQUFOQUFBQkRnRWpJaVkzTXdZV016STJOd05QRkt1RWZvTVVrd3N4UjBKUkN3V3dmNHlTZVVaUVZFSUFBQUFBQVFGQkJPb0NNUVd3QUFNQUFBRWpOek1DQ3NrbnlRVHF4Z0FBQUFJQklnUmZBc0VGNEFBTEFCY0FBQUUrQVRNeUZnY09BU01pSmpjR0ZqTXlOamMySmlNaUJnRXpFWUpVUzF3UUUzNVRUVjV3Q1N3cEpVWUpDU29wSjBjRkhscG9iMU5jWTJwVkx6ZzdMREE1UFFBQUFBSC90LzVRQVNjQU53QVRBQUFoRGdFSEJoWXpNalkzQnc0Qkl5SW1OejRCTndFblYySUpCaHNvR1RBWEJ5Qk1NazlYRGcrT2pENWtQQ1VsRVF0NEV4bGpXbG1WUEFBQUFBRUJDQVRpQTY4RjhRQVRBQUFCRGdFaklpWWpJZ1lISno0Qk16SVdNekkyTndPdkVJQldRSUF5SmtJSFlBOS9Wek9OTWlaRENBWFNZbnhmUWk4YVlvRmdRVEVBQWdFSEJPUUQ3d1h1QUFRQUNBQUFBVE1YQVNNRE13RWpBeGpXQWY2eHBCTEovdVdSQmU0RC92a0JDdjcyQUFBQUFnQWQvb2NCVi8rckFBc0FGd0FBRno0Qk16SVdCdzRCSXlJbU53WVdNekkyTnpZbUl5SUdLZzVqUHpoRkRRNWVQanBKWUFZZEhCY3JCZ1lhR2hvdTZVVlBWRUJFVEZFL0hTTWxHeUFrSmdBQi9mSUV1djdLQmhNQUF3QUFBU01ETS83S2VHQ3NCTG9CV1FBQUFmNUJCTHYvb3dZVUFBTUFBQUV6QXlQKys2anpid1lVL3FjQS8vLzlXQVRpLy84RjhRQUhBS0Q4VUFBQUFBQUFBZjVHQk5uL2xRWnpBQThBQUFFM1BnRTNOaVlqTnpJV0J3NEJEd0grUmgxTlB3Y0pUVUljam5zVERsNUJEd1RabHdVZEtTZ25hVjVkU0VnSlJnQUFBQUw5U3dUay84c0Y3Z0FEQUFjQUFBRWpBek1CSXdNei90YWs1OXNCcFpHdXlBVGtBUXIrOWdFS0FBQUFBZnpjL3JIOXkvOTJBQU1BQUFFak56UDlwTWdueVA2eHhRQUFBQUVCWkFUNEFxb0dlQUFEQUFBQk13TWpBZW5COEZZR2VQNkFBQUFEQVVFRTdRUDVCb2dBQXdBSEFBc0FBQUVqTnpNRkl6Y3pOek1ESXdQU3R5ZTMvZ0c1SjdtZHlxcUNCTzNEdzhQWS92ai8vd0REQW5BQnBBTkJBQVlBZGdBQUFBRUFWd0FBQkxrRnNBQUZBQUFCSVFFakFTRUVtLzEzL3Z1MkFTTURQd1VhK3VZRnNBQUFBQUFDLzh3QUFBUytCYkFBQXdBSEFBQUJFeUVKQVNFREl3UEo5ZnNPQTJIOXNBTVFwQU1Gc1BwUUJiRDY1UVFrQUFBREFFLy82d1VuQmNVQUF3QVJBQjhBQUFFaE55RVhBZ0FqSWdBYkFSSUFNeklBQXljMkppTWlCZ2NEQmhZek1qWTNBN0QrSlI0QjIvRTgvckw5NWY3OE5qTTdBVVQwN0FFUU5iUXJxck9YM3lrekxhQ3FvZWdxQXBTVzNQN2Evc01CYXdFS0FRRUJKZ0UrL3BQKzl3TGEvdmpPL3YzYy92ZlJBQUFBQWYvZUFBQUVYUVd3QUFjQUFBRW5BU01CTXhNakF3b0QvWkc2QXhTZHpyb0VtQUg3WndXdytsQUFBQUFEQUNJQUFBU2hCYkFBQXdBSEFBc0FBRGNoQnlFVElRY2hFeUVISVVBRFp4NzhtZlFDd3g3OVBVNERXeDc4cFpXVkF6eVdBd3FXQUFFQVdBQUFCWHNGc0FBSEFBQWhJd0VoQVNNQklRUll0UUVGL1dyKys3VUJJd1FBQlJyNjVnV3dBQUFBQWYveEFBQUVvQVd3QUF3QUFBa0JJUWNoTndrQk55RUhJUUVEQVAzbkF1SWUvRVljQWpYK3Rod0RqQjc5VFFFMkFzNzl5SmFPQWswQ1I0NlcvYzBBQUFNQVZ3QUFCWDBGc0FBVkFCNEFKd0FBQVRNeUVnY0NBQ3NCQnlNM0l5SUNOeElBT3dFM013RWlCZ2NHRmpzQkV6TURNekkyTnpZbUl3T3pCZEgwTHpYK3FlVUZJN1lqQjlMeU1UTUJWdVVISmJiL0FKamhJeWlBcFFlZnRwOEhsdUVsSjRHakJQYit6dS8rKy83aHNiRUJNZkVCQXdFZ3V2NngyTGJIeGdNYi9PWFl0OFRJQUFBQkFJb0FBQVdTQmJBQUZ3QUFBVDRCTnhNekF3SUFCd01qRXlZQ054TXpBd1lXRnhNekF2S08wU0pxdFdvMS9zZm5TTFpJeU1zeGFyUnFKbTZFdmJZQ0F4dlVyQUlTL2U3Kzl2N3JGZjZXQVdzY0FTWHlBaEw5N3J2S0Z3T3VBQUFCQUIwQUFBVUlCY1VBS0FBQUpUOEJOaElUTnpZbUl5SUdEd0VDRWhjUEFpRTNNeVlDUHdFU0FETXlFZ01IQmdJSEZ6TUhJUUpqRndHTHlUUVhNNENsbCswdUZ6aGJod0VYQi80ekh0OVpPeU1YUFFGWThkM2xPQmNsclhrQjJCNytNeUp6QmhzQkd3RUNkdjdvL09wMi91eis5eHNHY3lLVll3RXZySFFCTkFGSy9wNys1SFMyL3RoZEE1VUFBQUFDQUVELzZ3UTBCRTRBSEFBcUFBQUJBd1lXTXpJMk53Y09BU01pSmljT0FTTWlBajhCRWdBek1oWVhOd0VHRmpNeU5qY1RMZ0VqSWdZSEJEU2RFeGdqQnhJR0JTQTVJa0JJQkVLZVk2K2dMd1E0QVFUQ1duMGtMdjJMSlZTSFQ0RTVYQlJiVUgyMkpRUTYvT3hkT3dNRGlCTU9TMVJRVHdFZzZoVUJHd0VwVTFDUC9idTF3R0JZQWMxVlh2SzhBQUFDLy9YK2Z3UndCY1FBRkFBckFBQUJNaFlIRGdFSEhnRUhCZ1FqSWlZbkF5TUJOaVFEUHdFek1qWTNOaVlqSWdZSEF4NEJNekkyTnpZbUl3TUxyTGtpRkhsZVpGY1lMdjd6eEVxRk1GeTNBU01rQVIwNEVBNU1iSXdYRkZkcVlLZ1dxQjkzVlhPeEdoaFdiQVhFMjYxa2xpMHZ3SC9pMlM4dy9qUUZzYlhmL1A5UVJYeHNhSWFSYmZ5Nk5EV2dnbnVsQUFBQUFRQ3ovbUFFSmdRNkFBc0FBQUV6QVFNakV3TXpFeGN6TndOdHVmM1hZTFpobGJsWEFRTWtCRHI4QlA0aUFlUUQ5djBBVTFNQUFBQUNBRUgvN0FRcUJod0FJUUF2QUFBQlBnRXpNaFlYQnk0Qkl5SUdCd1lXRnhZU0R3RUdBQ01pQWo4QlBnRS9BUzRCQXdZV016STJQd0UySmljaUJnY0JmQjNUckVPTlFrSXhma1JLYXd3TFJYRzZpU2tFTS83ZjE4akJMd1FtMW8wR1UwZENKVnlLZkxraEJCMWxkbjI4SUFUMms1TXRLSUFYSkVrL05sb3NTLzd1emhmOC91d0JLT2dYdk9zakN5ZU0vV0d5eXRpa0Y1SFNHdHloQUFBQUFRQXAvKzBEL1FSTUFDa0FBQk0rQVRjdUFUYytBVE15Rmdjak5pWWpJZ1lIQmhZN0FROEJJeUlHQndZV016STJOek1HQkNNaUprZ1RlV1pLUlE4aDdzU2l6aHkxRDJwaGFJc05FRkZ3d2dnVndteUlFUkZwYzJTakVMVWsvdSswdE5BQk1HUjlIeVYyU0tPV3NJOU9YbUpFVWxFbWFsZFpVbDl5VHJTZXJBQUJBSXYrZ1FSWUJiQUFJQUFBQVFjQkRnRUhCaFlmQVI0QkJ3NEJCeWMrQVRjMkppOEJMZ0UzTmhJM0FTRTNCRmdYL211YWxCd1dLVXB6aGxjVkVZcEdUems3Q2djM1NVNmFYQ0VhdUswQlJmMnZIZ1d3ZHY1U25kNlFhbHNUSml4RGJVcXBNMU0zVXkwbkx4WVhMNTZoZ0FFdnJ3RkFsZ0FCQURYK1lRUVNCRTRBRkFBQUFSYytBVE15RmdjREl4TTJKaU1pQmdjREl4TXpBYUFDUUtKaG5vOHQyN1hhSUU1eVRvRXpvcmJZb3dPeEFVNVF4T0g3dUFSRW9ITktSUHpXQkRvQUF3QlcvK3NFWndYRkFBMEFGZ0FmQUFBQkFnQWpJZ0liQVJJQU16SVNBd1VoTnpZbUl5SUdCd0VoQndZV016STJOd1ByUGY3dDBMKzJPRVU4QVJYUXY3UTMvVVFCOHh3cFYzOXpyU1lCdWY0TkdpcFpmblNySndJcy90RCs3d0VxQVJjQlZ3RXVBUlQrMWY3cFk0dlJzOFRBL3VDRjBiWEV3Z0FBQUFFQWZ2L3JBZndFT1FBUEFBQUJBd1lXTXpJMk54Y09BU01pSmpjVEFmU2lFU1V0RlRBV0RqQlVNMnRjSWFBRU9melVWRFFPQzRBZUZZNmVBeUlBQUFBQi85SC84QU8zQmU0QUlRQUFNeU1CSnk0Qkl5SUdJemMrQVRNeUZoY1RIZ0V6T2dFM0J3NEJJeUltSndNakI1dktBamdzQ2lVbkNSd0lIQkZHR1ZWUENic0hIeDhMRVFnWkRpa1ZWVllUWkFNekJBTHVPaTRDakFRSVUxWDdxRFVyQXBRRkIxRjlBbDV6QUFBQkFEcitkd1FiQmNNQU13QUFBUzRCSXlJR0J3WVdPd0VITXdjaklnWUhCaFlmQVI0QkJ3NEJCeWMrQVRjMkppOEJMZ0UzUGdFM05TNEJOellrTXpJV0Z3UGpPRjR6Z3FnUUZuU2ZoQWdCRjRTbzNDQWNiVzFqZ0Y0VkVZbEdUejh5REFrMVRqTElwU3NndlpWalhoUWlBUTdjUElFb0JRb1JFMjFRY1dzbmI2Q2ppWXNkRnlOS2JVbW1ORk04UmpjdUp4TU5OTURVb3NFckF5dVVYYStuRnhBQUFBRUFjUC9yQkpjRU9nQVhBQUFCSXdNR0ZqTXlOamNYRGdFaklpWTNFeUVESXhNak55RUVlWEdFRVNVdEZUQVdEakJVTTJ0Y0lZTCtqYnEydW5jZUE4WURwUDFwVkRRT0M0QWVGWTZlQW8zOFhBT2tsZ0FBQUFBQy8rTCtZQVFtQkU0QUVBQWVBQUFCQ2dFaklpWW5BeU1UTlJJa016SVNBeU0ySmlNaUJnY0RIZ0V6TWpZM0ErMHorYjlZZ0Nwb3RzYzFBUm04eWFvMXRTbEpoMjJ1R3o0WFhsTjhzaUVCOWY4QS92Yy9RUDMxQStJQ0FReisvc1ArK2M3ZzY0dit6VVZKejZVQUFBQUFBUUJKL29vRC93Uk9BQ0VBQUFFeUZnY2pOaVlqSWdZUEFRWVdGeDRCQnc0QkJ5YytBVGMySmljdUFUOEJOZ0FDb2FlM0pLc1hWVzk2dUI4SUgzaWhpV1FXRUlwR1RqNHlEQWt6VU5tdEt3Z3hBU0FFVHRHM2MzL3FuQ3FXclRFc1RXNUlxRE5UUFVRM01DY1VOUDdXS3ZZQkpnQUNBRVAvN0FTekJEb0FFQUFlQUFBQklSNEJEd0VHQUNNaUFqOEJOZ0EzSVFFR0ZqTXlOajhCTmlZaklnWUhCSlgrL0V3ekdnVXUvdHJVeDc4eEJESUJJZGNDRWZ4M0psbUtmYndqQkNOY2lYMjZJQU9qU3RHRkYrWCs1UUUwOEJqN0FSWUIvZGE3MU9Pc0dLL00ycUVBQVFDMy8rc0VIZ1E2QUJNQUFBRWhBd1lXTXpJMk54Y09BU01pSmpjVElUY2hCQUgrcW9RUkpTMFZNQllPTUZRemExd2hndjdCSFFOS0E2YjlaMVEwRGd1QUhoV09uZ0tQbEFBQUFBRUFXdi9yQS9RRU9nQVZBQUFCQXdZV016SVNOelltSnpNZUFRY0NBQ01pSmpjVEFjR0RJa1JaZHM4aUZna1l2aHNHSHpiKzVOK3JueTZEQkRyOWI2aUJBUW1vZ2Z1TmJmMmYvdlQreHR2bEFvOEFBQUlBUC80aUJVQUVPZ0FaQUNNQUFBVW1BamMrQVRjWERnRUhCaFlYRXo0Qk16SVNCd1lBQlFNakFUNEJOelltSXlJR0J3SHE3YjR2SktTTlNWNXZHeU5ub1pBV2xYRzAxeTB5L3RQKzdGeTJBVENvMlI0Y1lZRWFLQVVRSEFGQjVyZjJXb05LeUhLcTVod0MwWEJ5L3N2bDlmN2JGLzR6QW1ZYzZaT2g0aWtjQUFBQUFBRUFRLzRwQlM0RU9nQWJBQUFCQXo0Qk56WW1Kek1lQVFjQ0FBVURJeE1tQWhzQk13TUdGaGNUQTNPOXFOc2dGZ29hdlJ3S0h6WCsxZjdvV3JaYjJzVTVZYlpoTDNHTXZRUTUvRThmOVp5QSs0ZHMrcHorL1A3UEZmNDdBY2djQVN3Qkd3SG0vaGptMEJZRHN3QUFBQUFCQUYzLzZ3WHNCRG9BS1FBQUFRNEJCd1lXTXpJMk54TXpBd1lXTXpJMk56WUNKek1lQVFjS0FTTWlKaThCRGdFaklnSTNQZ0UzQWpOWmVCMHFNR3BZa0NROHR6d25TbUZnbFNjV0VpTy9JeEVmT09qRmFJRVJBejJzZGJaNk1pSnhVd1E2aVArRXp1R2tzd0VyL3RYQ2xmRytoQUVBaDIvOW4vN3UvczUxY2dGNGNBRkorNnZ3Y0FBQUFBSUFXdi9yQlFvRnhRQVpBQ1FBQUNVeU5qY3VBVDhCUGdFek1oWUhBd0lBSXlJQ0d3RTNBd1lXQVFZV0Z4TTJKaU1pQmdjQ0paUG9LOEROSmcwbDBKS0xoeU5tUGY2eThOUFpOb1MzaFN4MEFZd2Jhb0ZJRnl4RU8ySVZodkRUQ3ZxL1ByeS95ckgrQXY3VC9zd0JXUUVJQXBnQy9XYmE3QU9FaFprSUFXWjRaM0J2QUFFQXN3QUFCTmdGdXdBakFBQUJQZ0V6TWhZWEJ5NEJJeUlHQndFREl4TURMZ0VqSWdZSE56NEJNeklXRnhNWE16Y0RXMG1FVFI0dkZqUUZFd3dlT3huK2FYUzBkSllJS3g4T0ZnUUpHVEFnUjJFWVZRUURJZ1RYZm1ZS0RwSURCU1VzL1g3OXVnSkVBb1F0SkFVRGtnNEtaMzMrYUVwS0FBSUFaUC9yQmpRRU9nQVhBQzBBQUFFakZnWUhDZ0VqSWlZdkFRNEJJeUlDTno0Qk55TTNJUUUySmljaERnRUhCaFl6TWpZL0FUTUhCaFl6TWpZR0ZuNE1CUlU0MkxGcGdCQURQYXQxcEdneUZrRXRhUjRGWmY2Z0VBRVAvUXMyU2hRcUlGWlhrU1F6dHpNblNXSk5nd09qVkxacS91Lyt6WFp5QVhsd0FVbjdjYkpSbC8zMVhiZGdZclpjemVLa3Mvejh3cFh5QUFBQUFRRGIvL1VGZndXd0FCc0FBQUVoQXo0Qk16SVdCd1lFSXpjeU5qYzJKaU1pQmdjREl3RWhOeUVFOS80ZVhWR1FNOXJaTEMvKzgra2FqNm9jSEhXWU41UklpYllCQmY1OEhnUWNCUnIrTFJjZDhOdm4xSStja0phV0doYjlWQVVhbGdBQUFBRUFadi9zQlB3RnhnQWZBQUFCQmdRaklnQWJBUklBTXpJU0J5TTJKaU1pQWc4QklRY2hCd1lTTXpJMk53UjVRLzd6MzkvKyt6WXpPd0UxN05uNEY3Y0xpcG1RMmlnTEFoa2UvZWNLTEppaWk2RTNBY0RnOUFGcUFRc0JBUUVvQVR6Kzh1Q2p0ZjcveXptVk5kaisrSmluQUFBQUF2L2VBQUFINHdXd0FCWUFId0FBQVFNaE1oWUhCZ1FqSVFFaEF3SUFLd0UzTXpJU0d3RUJBeUV5TmpjMkppTUZjWElCVHMzSkp5dis2dC85K3dFRi9pdHJWZjcxN1RFZUpvVzZSb2tDc1hVQlRvRzBHUnBtalFXdy9jWDN4TmJrQlJyOTYvNWsvcGVWQVI4QlVRS3IvVEQ5dGF4N2dxSUFBZ0JYQUFBSDZBV3dBQklBR3dBQUFTRVRNd01oTWhZSEJnUWpJUk1oQXlNQk13RURJVEkyTnpZbUl3R3hBcFYvdG53QlQ4N01KU24rN09EOS9JYjlhNGEyQVNPMkFySnFBVTZEcnhjWWFJOEROd0o1L1pia3U4emJBcUw5WGdXdy9RSDk3cGh5ZTQwQUFBQUFBUUR5QUFBRnFnV3dBQmNBQUFFaEF6NEJNeklXQndNakV6WW1JeUlHQndNakFTRTNJUVVQL2hSWlQ1Umgxc1l2VzdWYkpHU1dUNkZVanJVQkJmNkVIZ1FkQlJyK1JSUVUwKzMrT1FISHRuUVdGUDA1QlJxV0FBRUFWLzZhQlhzRnNBQUxBQUFCTXdFaEFUTUJJUU1qRXlFQmVyYisrd0tWQVFXMi90MytZVWkxU1A1VEJiRDY1UVViK2xEK21nRm1BQUFBQUFJQVNBQUFCS29Gc0FBTUFCWUFBQUVoQXlFeUZnY0dCQ01oQVNFQkJ3TWhNalkzTmlZakJJejlkMW9CVHMvTUp5dis3ZUg5L0FFakF6Lzg0UjlRQVU2RHNCa1paNDhGR3Y0KzVzTFUzQVd3L1JPZS9uQ2plb0NSQUFBQUF2K1cvcG9GaFFXd0FBNEFGUUFBQVNNVElRTWpFek0yRWhzQklRRXpBUVlDQnlFVElRVFR0VWY4TGtpMVpuTmF1a0tUQXkzKys3ajlSRHFuWlFLVjUvNDEvcHNCWmY2YUFmdFlBVkFCTFFKRyt1VUMxZmorbG5NRWhRQUIvOG9BQUFkZEJiQUFGUUFBQVNNREl4TWpBU01KQVRNVE14TXpBek1CTXdrQkl3U0prSWExaHBYOS91TUNZZjdvMU9LWmY3Vi9rZ0hnMVAzVkFTN2lBcC85WVFLZi9XRURBUUt2L1lRQ2ZQMkVBbno5VS96OUFBQUFBQUVBSVAvckJMQUZ4UUFwQUFBQkRnRUhIZ0VIQmdRaklpWTNNd1lXTXpJMk56WW1Ld0UvQVRNeU5qYzJKaU1pQmdjak5pUXpNaFlFaVJlVWRHeGNHQ3oremVpNytDdTFHb0tKamMwWUhYcWRtQTBSbUlxc0Z4aDFsM0RCRmJVbkFTakswOThFSjNDakxTeXFmTm5SMXROL2xaZDZrM2MvVjRaMGU0bVFiTVhOMXdBQUFBRUFXQUFBQlhvRnNBQUxBQUFCTXdFakV5Y0JJd0V6QXhjRXhMYiszYmJnQS95UHRRRWp0ZUFEQmJENlVBUmZBZnVnQmJEN29RRUFBZi9lQUFBRmNRV3dBQThBQUFrQkl3RWhBd29CS3dFM016SVNHd0VGY2Y3ZHR3RUYvaVI1WWZqZ01CNGxlYWxQbXdXdytsQUZHdjNyL2w3K25aVUJHUUZYQXFzQUFBQUFBUUNqLytzRlJRV3dBQlVBQUFFWE13RXpBUTRCSXlJbUp6Y2VBVE15Tmo4QkF6TUNiQjhEQWVUVC9UTlZsbzhXUGdjaENUMFFQbEF5TnU3TEF2dTRBMjM3UUlaL0JnT1FBZ0pPVGxRRVFBQURBRnYveEFYMkJld0FGUUFlQUNjQUFBRXpNZ0FEQWdBckFRY2pOeU1pQUJNU0FEc0JOek1CSWdZSEJoWTdBUk16QXpNeU5qYzJKaU1EK1JuZ0FRUXpPUDZSOUJvbnRTY2E0Zjc5TkRjQmJ2VWJLYlgrNmFqNUp5Mk91QnV2dGE4YnB2Z3BLNDYxQlI3K3VQOEEvdWorek1iR0FVZ0JBZ0VXQVRUTy9wM3V4OXpaQTJyOGx1M0syTnNBQUFFQVYvNmhCWG9Gc0FBTEFBQUJNd0VoQVRNQk13TWpFeUVCZXJYKyt3S1dBUVcxL3Z1TmQ2RkcvQ2NGc1BybEJSdjY2ZjRJQVY4QUFRRFJBQUFGU0FXd0FCTUFBQWtCSXhNT0FTTWlKamNUTXdNR0ZqTXlOamNUQlVqKzNiVjZZcWR5MThjd1c3ZGJKV09YVzcxaml3V3crbEFDWVIwYTB1NEJ4djQ2dDNNY0hBSzRBQUVBVndBQUJ6QUZzQUFMQUFBSkFTRUJNd0VoQVRNQklRRUNNUDc3QWN3QkJiWCsrd0hKQVFXMi90MzZTZ0VqQmJENjVRVWIrdVVGRy9wUUJiQUFBQUFCQUZmK29RY3dCYkFBRHdBQUNRRWhBVE1CSVFFekFUTURJeE1oQVFJdy92c0J6QUVGdGY3N0Fja0JCYmIrKzVCMm8wYjZid0VqQmJENjVRVWIrdVVGRy9ybC9nd0JYd1d3QUFBQUFnREpBQUFGZ1FXd0FBd0FGUUFBRXlFRElUSVdCd1lFSXlFQklRRURJVEkyTnpZbUkrY0NLWGdCVHMvTUp5dis3ZUg5L0FFRi9vMEJzVzhCVG9Pd0dSbG5qd1d3L2FqbXd0VGNCUnY5cVAzU28zcUFrUUFBQUFNQVZ3QUFCcUlGc0FBS0FCTUFGd0FBQVNFeUZnY0dCQ01oQVRNTEFTRXlOamMySmlNQkl3RXpBYmdCVHMvTUp5dis3ZUg5L0FFanRwWnZBVTZEc0JrWlo0OENsN1VCSTdVRFdPYkMxTndGc1AwVC9kS2plb0NSL1QwRnNBQUFBQUlBU0FBQUJKSUZzQUFLQUJNQUFBRWhNaFlIQmdRaklRRXpDd0VoTWpZM05pWWpBYWtCVHMvTUp5dis3ZUg5L0FFanRwWnZBVTZEc0JrWlo0OERXT2JDMU53RnNQMFQvZEtqZW9DUkFBQUFBUUNILyt3Rk5BWEdBQjhBQUFFMkFETXlFZ3NCQWdBaklnSTNNd1lXTXpJU1B3RWhOeUUzTmlZaklnWUhBUjB0QVVEcjIrUTJNenYrcU8vYzVpMjFJNEdna2ZVcEMvM29IZ0lYQ3l0K241UFRId1BmNHdFRS9xRCs4LzcvL3R2K3VRRUYzNnFsQVF6Sk9KVTIyL3kwblFBQUFBQUNBR0wvNndibEJjVUFGUUFqQUFBQkFnQWpJZ0FUTnlNREl3RXpBek0zRWdBek1nQURKelltSXlJR0J3TUdGak15TmpjR2ZUeitzdjNsL3Z3MkJyTi90UUVqdFlheUVEc0JSUFRzQVJBMXRDdXFzNWZmS1RNdG9LcWg2Q29DVHY3YS9zTUJhd0VLSC8yQkJiRDlaRTBCSmdFKy9wUCs5d0xhL3ZqTy92M2MvdmZSQUFBQ0FBd0FBQVR4QmJBQURRQVdBQUF6SXdFdUFUYzJKRE1oQVNNVElRRWpJZ1lIQmhZN0FjM0JBYnQrWHlBcEFUYldBYkwrM2JkeS90RUJ3dnVYcmgwYmY0ajhBbTgydXB2UjVmcFFBandDM28yUmhLWUFBQUFBQWdCRS8rc0VVQVlSQUJ3QUtnQUFBVElTRHdFR0FDTWlBajhDRWdBM1BnRTNNdzRCQnc0QkJ4YytBUmNpQmc4QkJoWXpNalkvQVRZbUFxRzh1Q0lFS1A3bzFzekpKZ0VWTmdFbzRIMTFESlFlcnJpRHpUY0NTNjhrZ0tvWEJCeGppWUd1R3dRWWFBUDcvdS9ZR1BYKzVnRW02UWlBQVZZQmFpd1pRRXE0YUNBWXBLUUJRRXVWdzVFWXJjM1ZwUmlhdWdBQUFBTUFRQUFBQkNvRU9nQVBBQmdBSVFBQU14TWhNaFlIRGdFSEZSNEJCdzRCSXdzQklUSTJOelltSXljelBnRTNOaVlyQVVEWUFZeS94eDRSYUZSWVN4SWg0c0czUWdFV1luOFFFVlZyK2VGc2hoQVJaSHZXQkRxVWxWSnpIUU1ZaDFxa2p3SGMvcmRXVDFWUGtnRk5URlZKQUFBQUFRQStBQUFEbFFRNkFBVUFBQUVoQXlNVElRTjMvamU2dHRnQ2Z3T2ovRjBFT2dBQUF2K2Evc0lFVGdRNkFBNEFGUUFBTno0Qk54TWhBek1ESXhNaEF5TVRBUTRCQnlFVElVaGllVHRnQXBDN2hsNjFRUDFLUUxaZkFob3ZmbEFCeVpuKzA1Vml6dUFCbGZ4Yi9pMEJQdjdDQWRNQ0VMdjhXUUw4QUFIL3d3QUFCZ0VFT2dBVkFBQUJJd01qRXlNQkl3RURNeE16RXpNRE13RXpBUk1qQTdSMVhyWmVkZjZVNVFIZDVOdWdjbHEyV25NQlZOditVUGpsQWRqK0tBSFkvaWdDUGdIOC9qOEJ3ZjQvQWNIK0EvM0RBQUFCQUI3LzdRUEVCRXdBS3dBQUFUTXlOamMySmlNaUJnY2pQZ0V6TWhZSERnRUhIZ0VIRGdFaklpWTNNd1lXTXpJMk56WW1Ld0UvQWdGdHIxeHBFQTlLWlZPUURyUWYrYXFvcmg0UWFWTk9ReEloOGJtZTBpSzFFbU5sWDRrUEUwMXJyd2dKQlFKMVVreExXMlJJbktPaWwxRjNJaUo5V3FTZnE2ZFViR1ZNWVVvcUxSZ0FBQUFBQVFCQUFBQUVSd1E2QUFzQUFBRXpBeU1USndFakV6TURGd09SdHRpMm13UDlwTFhZdFpzREJEcjd4Z01KQWZ6MkJEcjg5d0VBQUFBQkFFQUFBQVJoQkRvQURBQUFBU01ESXhNekF6TUJNd2tCSXdIS2VGeTIyTFpjYkFHcDJ2NEpBVC9tQWMvK01RUTYvalVCeS8zNi9jd0FBQUFCLzlVQUFBUkpCRG9BRHdBQUFRTWpFeUVEQ2dFckFUOEJNalliQVFSSjJMZTYvclpLVXNlK05DUW1XM00rYmdRNis4WURvLzdIL3JIKzVhSUJ4d0VBQWRBQUFBRUFRQUFBQlg4RU9nQU9BQUFsQVRNREl4TW5BU01ESXdNakV6TUNwd0gxNDlpMW1BTCtMWDJqQTV5MjJPdnlBMGo3eGdMOEFmMERBd3Y4OVFRNkFBQUJBRUFBQUFSR0JEb0FDd0FBSVNNVElRTWpFek1ESVJNekEyNjJYUDQrWExiWXRsNEJ3bDYyQWREK01BUTYvaW9CMWdBQUFRQkFBQUFFUndRNkFBY0FBQ0VqRXlFREl4TWhBMisydXY0OXVyYllBeThEby94ZEJEb0FBQUVBa0FBQUEvY0VPZ0FIQUFBQklRTWpFeUUzSVFQYS9ySzZ0YnIrdVIwRFNnT20vRm9EcHBRQUFBQUFBd0JBL21BRlZ3WVlBQjhBTFFBN0FBQVRHZ0V6TWhZWEV6TURQZ0V6TWhJREJ3b0JJeUltSndNakV3NEJJeUlDTnlVMkppTWlCZ2NESGdFek1qWTNJUVlXTXpJMk54TXVBU01pQmdkek9mSzNKa0FiWXJWaUkwd3RxSWcxQkRQdHRTeElIbFcxVkNGRktLYU5Md1A5S1VSK0hERVhuaE11SDNPaklmeTlKVU45R2kwV25oSXJHWE9qSmdJS0FSMEJKdzhPQWVmK0Z3OFEvc0wrK2hYL0FQNzJFUkQrVkFHbERRMEJIdXdWemVFTENmenJDQWZQcHJlK0NBZ0RHUWNJOEw0QUFBRUFRUDYvQkVjRU9nQUxBQUFCTXdNaEV6TURNd01qRXlFQkdMYTZBY082dHJ0N2NLSkEvUXNFT3Z4YkE2WDhXLzRxQVVFQUFBQUFBUUIvQUFBRUJnUTdBQk1BQUNFakV3NEJJeUltTnhNekF3WVdNekkyTnhNekF5NjJUamx3UWErdUtqKzFQeDVPYkRwMFBXdTJBWWdRRDh6TUFUcit4cEZ3RUJBQ0dnQUFBUUJBQUFBR0FnUTZBQXNBQUFFRElSTXpBeUVUTXdNaEV3SE91Z0ZrdXJhNkFXUzZ0dGo3RnRnRU92eGJBNlg4V3dPbCs4WUVPZ0FCQURYK3Z3WDNCRG9BRHdBQUFRTWhFek1ESVJNekF6TURJeE1oRXdIRHVnRmt1cmE2QVdTNnRydVJjS0ZBK3puWUJEcjhXd09sL0ZzRHBmeGIvaW9CUVFRNkFBSUFoZ0FBQklFRU9nQU1BQlVBQUJNaEF6TXlGZ2NPQVNNaEV5RUJBek15TmpjMkppT2pBZDFMKzZxbkhpUG11UDVRdXY3YUFaRlIrbDk3RVJKRVp3UTYvb3JEbTZxOEE2WCtpdjVtZFZWYmRRQUFBQU1BUUFBQUJhc0VPZ0FLQUE0QUZ3QUFBVE15RmdjT0FTTWhFek1CSXhNekFRTXpNalkzTmlZakFZUDdxcWNlSSthNC9sRFl0Z01GdDlpMys3cFIrbDk3RVJKRVp3TEV3NXVxdkFRNis4WUVPdjMxL21aMVZWdDFBQUFBQWdCQUFBQUR6d1E2QUFvQUV3QUFBVE15RmdjT0FTTWhFek1MQVRNeU5qYzJKaU1CZy91cXB4NGo1cmorVU5pMmFWSDZYM3NSRWtSbkFzVERtNnE4QkRyOTlmNW1kVlZiZFFBQUFBRUFNLy9yQStrRVRnQWRBQUFCSWdZSEl6WWtNeklTRHdFR0FDTWlKamN6QmhZek1qWTNJVGNoTmlZQ1VsT2hFcTBmQVJHaHdiZ3RDREwrNE5LanVpS3RGMkJqYjY4by9wSWVBVzBTV1FPNGVsdWV6ZjdHNGlyNC90dmZxSENDeXBLVmxMTUFBQUFBQWdCQS8rd0Y5UVJPQUJNQUlRQUFBVE0ySkRNeUVnOEJCZ0FqSWdJM0l3TWpFek1CQmhZek1qWS9BVFltSXlJR0J3Rno1VFVCRU1iTnhTWUVLZjdtMXNESEZPcGV0OWkzQVMwZVk0bUJyaHdFSFdPSWdhOGJBbTdoLy83TThoai8vdHNCRHQ3K0tBUTYvZGEzMk9HdUdMWGI1S3dBQUFBQUF2L1ZBQUFFRGdRNkFBMEFGZ0FBQVFNakV5TUJJd0V1QVRjK0FUTUJCaFl6SVJNaklnWUVEdGkyVlBmK3ZNUUJYRmhNRmgvcHUvN3pFRVZlQVFaSjhtQ0NCRHI3eGdHbS9sb0J4U2liYUoydC9yUlJZZ0ZyYmdBQUFBQUJBRFgrU3dRWkJoZ0FMQUFBQVNFSEZ6NEJNeklXRHdFekF3NEJJeUltSnpjZUFUTXlOajhCRXpjMkppTWlCZ2NESXhNak56TTNNd2NoQXQ3Ky96TURRS1JlbTQ4ckxRSnRKYnFVSFRNWExBczlFRFpYRXhKYkxSNVBiMG1QT1o2Mjhwd2VuQ2kyS0FFQkJMci9Ba2hOME5uZi9lRzFwd2dKa2dVSmFsMVpBY2JobG5kVVNQem9CTHFWeWNrQUFBQUJBRkgvN0FRRkJFNEFIUUFBSlRJMk56TUdCQ01pQWo4Qk5nQXpNaFlISXpZbUl5SUdCeUVISVFZV0FmdGFvQStzR2Y3eXB0ZTdKUWNuQVJIaHJzRWFyQkJxWjRHZklRRnhIdjZWRVY2QmVGeWF6d0V5NmlyMUFTZmVxbXlHdnBPVm03WUFBdi9WQUFBR0lRUTZBQllBSHdBQUFRTXpNaFlIRGdFaklSTWhBd29CS3dFL0FUSTJOeE1CQXpNeU5qYzJKaU1FSlZQN3Fxb2RJT1c0L2srNi90YytSdFRITXlFblg0VXlYQUlsU3ZwZWZCQVBSMmNFT3Y1anVaS2dzZ09qL3NmK3FmN3RtQUhiOWdIUS9jNytpM05PVVdNQUFBQUNBRUFBQUFaQ0JEb0FFZ0FiQUFBQklSTXpBek15RmdjT0FTTWhFeUVESXhNekFRTXpNalkzTmlZakFYd0J3bEsyVS91cXFoMGc1TG4rVUdqK1BtaTIyTFlDQjByNlhud1FEMGRuQXFBQm12NWl1Sktnc2dJTS9mUUVPdjNPL290elRsRmpBQUFBQUFFQU5RQUFCQmtHR0FBY0FBQUJJUU1YUGdFek1oWUhBeU1UTmlZaklnWUhBeU1USXpjek56TUhJUUwxL3VrMEEwQ2tYcHVQSzRlMWlCNVBiMG1QT1o2Mjg0WWVoaWUySndFWEJMLysvQUpJVGREWi9Wc0NwNVozVkVqODZBUy9sY1RFQUFBQkFFRCtuQVJIQkRvQUN3QUFBUU1oRXpNRElRTWpFeUVUQWM2NkFjTzZ0dGoreGtlMlIvN0IyQVE2L0ZzRHBmdkcvcHdCWkFRNkFBRUFhUC9yQnNrRnNBQWdBQUFCQXc0Qkl5SW1KdzRCSXlJbU54TXpBd1lXTXpJMk54TXpBd1lXTXpJMk54TUd5ZFF0OUxWZ2loNUJzM0docVNuVXR0UWRURnBobWh2VXU5UWRWbU5Za0J2VUJiRDcyZHpDVmxoY1V0UExCQ2Y3MlkxOGg0SUVKL3Zaalh5SGdnUW5BQUFCQUVYLzZ3WElCRG9BSUFBQUFRTU9BU01pSmljT0FTTWlKamNUTXdNR0ZqTXlOamNUTXdNR0ZqTXlOamNUQmNpUktONmtVbmdkT3B0aWtwZ21rYldSR1R4S1VJSVhrYmFSR1VaU1NIZ1hrUVE2L1NuSXNFZElURU8vdVFMWC9TbDVhbk53QXRmOUtYbHFjM0FDMXdBQUFnQStBQUFEMUFZWUFCSUFHd0FBQVNFRE16SVdCdzRCSXlFVEl6Y3pFek1ESVFFRE16STJOelltSXdMMy90WkQrYXVtSVNUb3VmNVEyTEFlc0VLM1FnRXEvbGRaK1Y5OUV4TkNad1E2L3E3TXBMTEdCRHFWQVVuK3QvMkUva0ovWFdLQUFBRUFZLy9zQnA4RnhnQW5BQUFCTXpjU0FETXlFZ2NqTmlZaklnSVBBU0VISVFjR0VqTXlOamN6QmdRaklnQVROeU1ESXdFekFiNnRCenNCTmV6WitCZTNDNHFaa05vb0J3SUJIdjMvRGl5WW9vdWhON2REL3ZQZjMvNzdOZzZ0aUxVQkk3VURRQ0lCS0FFOC92TGdvN1grLzhza2xrblkvdmlZcCtEMEFXb0JDMG45VmdXd0FBQUJBRHovN0FXUkJFNEFJd0FBQVRNMkFETXlGZ2NqTmlZaklnWUhJUWNoQmhZek1qWTNNd1lFSXlJQ055TURJeE16QVc2bE1BRUwxSzdCR3F3UWFtZUJueUVCbHg3K2J4RmVpVnFnRDZ3Wi92S215YjRUcTEyMzJMY0NaOThCQ042cWJJYStrNVdidG5oY21zOEJEOWYrTGdRNkFBTC8yQUFBQkRzRnNBQUxBQThBQUFFakF5TVRJd01qQVRNVEl3RWhBeU1EVHBkWXRGaUw1N2tEREp1OHVmNUlBWEpDQXdHNi9rWUJ1djVHQmJENlVBSllBandBQXYrOEFBQURqZ1E2QUFzQUVRQUFBU01ESXhNakF5TUJNeE1qQVNFREp5TUhBcUJrTzdVN2FhbTVBbktjeExyK253RVROZ1FESWdFci90VUJLLzdWQkRyN3hnSEJBVDFLU2dBQUFBSUFkQUFBQmljRnNBQVRBQmNBQUFFaEFUTVRJd01qQXlNVEl3TWpFeUVESXdFekFTRURJd0doQVdVQnlwdTh1VFNYV0xSWWkrZTU3ZjdRV0xVQkk3VUJhd0Z4UWdNQ1dRTlgrbEFCdXY1R0FicitSZ0c2L2tZRnNQeW9BandBQUFJQVhRQUFCUzRFT2dBVEFCa0FBQUV6QVRNVEl3TWpBeU1USXdNakV5TURJeE16QVNFREp5TUhBVzN6QVc2Y3hMbzBaRHUxTzJtcHVhMjZPN2ZZdHdFbkFSTTJCQU1pQWNFQ2VmdkdBU3YrMVFFci90VUJLLzdWQkRyOWh3RTlTa29BQUFBQ0FEb0FBQVk4QmJBQUlRQWxBQUFCTXpjaEFUTXlGZ2NESXhNMkppc0JCd01qRXljaklnWUhBeU1UTmlRN0FRTXpFek1CSVFLdEF3TURpZjRRR2RYR0wwcTFTaU5qbFc4ZWZMVi9DbnVKb0NCS3Rrb3lBUUhxSnU3UTN3UUJjZjNnQmFNTi9Ydk82ZjZNQVhTeGNDajlrd0o3R242ai9vd0JkUHk3QW9YOWV3SHZBQUFDQURvQUFBVU9CRG9BR3dBZUFBQUJIZ0VQQVNNM05pWXJBUWNESXhNbkl5SUdEd0VqTno0Qk53TWhBUk1oQTZLd255c2h0aUVqVW9FdURsZTFXUU00ZDQ0Z0liWWhNT1hKckFPQi9lSG8vckVDV2dyUDNLV2xzWEFTL2t3QnZnaCtvNldsOUx3R0FkLytKd0ZEQUFBQUFnQmlBQUFJU2dXd0FDa0FMUUFBSVJNK0FUY2hBeU1CTXdNaE93RURNeGN6TnlFQk16SVdCd01qRXpZbUt3RUhBeU1USnlNaUJnY0RBVE1CSVFKSVNoTTlMZjZNaExVQkk3V0JBdUVWSnU3UUJBTURBNG4rRUJuVnhpOUt0VW9qWTVWdkhueTFmd3A3aWFBZ1NnS1lCQUZ4L2VBQmRHR05OUDFxQmJEOWV3S0ZEUTM5ZTg3cC9vd0JkTEZ3S1AyVEFuc2FmcVArakFNckFlOEFBZ0ErQUFBRzRnUTZBQ0lBSlFBQUlUYytBVGNoQXlNVE13TWhBeUVCSGdFUEFTTTNOaVlyQVFjREl4TW5JdzRCRHdFQkV5RUNEaUVUT3lyK3FGcTMyTGRnQXArckE0SCtsTENmS3lHMklTTlNnUzRPVjdWWkEwTnpoeUFoQWYvby9yR2xZWXcwL2pvRU92NGlBZDcrSUFyUDNLV2xzWEFTL2t3QnZnZ0RmNStsQW1FQlF3QUFBQUwveC81SEJFY0hjQUF0QURZQUFBRXlGZ2NPQVFjZUFRY0dCQ3NCSWdZSEJoWVhCeTRCTno0Qk93RXlOamMySmlzQlB3RXpNalkzTmlZaklUY0JOek1IQlNNbk56TUNaYnpYSkJlWGQyNWdHU3YrNk0wdlJFOEtFRU03WVY5dkZSeTJuU2R6c1JnZGVwcUZCeGFGaWFvWEYyaUcvdVllQWJtbW5RVCs0RzI2QkprRnNOUzFjYUVxTEt4OTJORThOVXhPSUhzdm4zQ0tjNWQ1a24wamNvSnpjWCtWQVNxV0V2UHhGQUFDLzhiK1J3TytCaHNBTFFBMkFBQUJNaFlIRGdFSEhnRUhEZ0VyQVNJR0J3WVdGd2N1QVRjK0FUc0JNalkzTmlZckFUOEJNekkyTnpZbUl5RTNBVGN6QndVakp6Y3pBaGlxeXh3UmRWOWFVUkFoK3JzdFJGQUtFRU04WVY5dkZSeTFuU1ppanhBU2NJZUZCeGVGZG8wUURtQncvdWNlQVh5bW5RVCs0RzI2QkprRU9xYU9VWFVpSTNkVW82QThOVXhOSVhzdm4zQ0tjMTVNVzB3amNsWk1TRktXQVV1V0V2UHhGQUFBQXdCZC8rc0ZOd1hGQUEwQUZnQWZBQUFCQWdBaklnSWJBUklBTXpJU0F3VWhOelltSXlJQ0J3VWhCd1lXTXpJQU53VFFPdjZTL2VEdU5UTTVBV1QwNlBrMC9Hc0MxQTBxazYrWS9TY0NxZjBzQ1N5SnBxRUJCeWtDVi83ai9yRUJaZ0VHQVFFQkhBRlIvcG4rK2o1QTF2bis5Y1RXTGRqNUFRckhBQU1BUnYvc0JCd0VUZ0FOQUJRQUd3QUFFellBTXpJU0R3RUdBQ01pQWpjQk1qWTNJUVlXRXlJR0J5RTJKbkVwQVJyV3pjVW1CQ24rNXRiTnhpY0JoSFdtSmYzckVHZi9kS1FsQWhNTFp3SW8vZ0VvL3N6eUdQLysyd0V4OC81eHZwbWd0d00zdUpPWnNnQUFBQUVBNkFBQUJWd0Z4QUFSQUFBQkZ6TTNBVDRCTXhjSEl5SUdCd0VqQXpNQ0ZRY0RPUUdSVHBCbUx5SU1MVWNxL2FxYnQ4UUJjWHQ3QXpTZWdRR2pQMVQ3Y3dXd0FBQUFBQUVBc3dBQUJFc0VUUUFWQUFBQkZ6TTNFejRCTXpJV0Z3Y3VBU01pQmdjQkl3TXpBYTRDQXlUNVFZNU5IUzhUTVFVU0RCMUNGZjVFaW9xNUFUcFZWUUlqZm5JS0RwSURCVElyL0xJRU9nQUFCQUJQLzNNRkp3WTFBQU1BQndBVkFDTUFBQUVqRXpNQkl4TXpBUUlBSXlJQUd3RVNBRE15QUFNbk5pWWpJZ1lIQXdZV016STJOd09GdFUyMS9xYTFUclVCK1R6K3N2M2wvdncyTXpzQlJQVHNBUkExdEN1cXM1ZmZLVE10b0txaDZDb0V0UUdBK1Q0QmlRRlMvdHIrd3dGckFRb0JBUUVtQVQ3K2svNzNBdHIrK003Ky9keis5OUVBQUFBRUFFYi9pQVFjQkxZQUF3QUhBQlVBSXdBQUFTTVRNd0VqRXpNQk5nQXpNaElQQVFZQUl5SUNOek1HRmpNeU5qOEJOaVlqSWdZSEF0QzFTYlgrOTdWSnRmNFlLUUVhMXMzRkpnUXAvdWJXemNZbnRoNWppWUd1SEFRZFk0aUJyeHNEU0FGdSt0SUJiZ0V5L2dFby9zenlHUC8rMndFeDg3Zlk0YTRZdGR2a3JBQUFBQUFEQUd6LzZ3YVZCMVFBTEFBK0FFUUFBQUV5RmdjRERnRWpJaVluRGdFaklpWTNFejRCTXdjaUJnY0RCaFl6TWpZM0V6TURCaFl6TWpZM0V6WW1JeE1ISXlJa0l5SUdEd0VqTno0Qk16SVdNd0VuUHdFekJ3VlJuNlVyY3pIdXJtU1JJVUd4Y0tHbExITXY3N0FlVW9zZGN5QklXbUdhRzFlMlZ4MWVhMUdMSG5NZlNGbTRHU3R3L3YwckxVUUtCSHNJRm9OdVBmcHQvZzg5VFJ5dEdRV3Y1OXY5d083VVZWWmJVT2JjQWtEdDFaV2FrLzNBb0kySGdnRzAva3lOZkptVUFrQ2ZqZ0c3Zlg4NU5oSWtkV1YvL2xKQWRJeDhBQUFEQUVqLzZ3V2ZCZkVBTEFBK0FFUUFBQUV5RmdjRERnRWpJaVluRGdFaklpWTNFejRCTXdjaUJnY0RCaFl6TWpZL0FUTUhCaFl6TWpZM0V6WW1JeE1ISXlJa0l5SUdEd0VqTno0Qk16SVdNd1VISno4Qk13UjZrSlVvT2l6WG5sZC9JRHFjWXBLVUtUb3IxNThkUkhJWk9odzRTbENDRnkrMUx4aFBXVUp4R2pvYk4wajdHU3R4L3Y0cUxVUUtCSHdIRjROdlBQcHUvczdBUGs0YnJnUkUwOG4rMzl2QlNFbE5STkxLQVNIWnc1V0hnUDdmalhwemNPdnJlV3FGZ2dFaGpIc0J3bjEvT0RZU0kzVm1nT3JFUUhTTUFBSUFhUC9yQnNrSEF3QUhBQ2dBQUFFM0lRY2hCeU0zQlFNT0FTTWlKamNUSXdNT0FTTWlKamNUSXdNR0ZqTXlOamNlQVRNeU5qY1RBcmNWQXZzVi9zMFpwUmtDT3RRYmtGaGpWaDNVdTlRYm1tRmFUQjNVdHRRcHFhRnhzMEVlaW1DMTlDM1VCcGxxYW4xOTZmdlpnb2Q4alFRbis5bUNoM3lOQkNmNzJjdlRVbHhZVnNMY0JDY0FBQUFBQWdCRi8rc0Z5QVd4QUFjQUtBQUFBVGNoQnlFSEl6Y0JBdzRCSXlJbU54TWpBdzRCSXlJbU54TWpBd1lXTXpJMk54NEJNekkyTnhNQ0lSVUMraEwreWhta0dRSFBrUmQ0U0ZKR0daRzJrUmVDVUVvOEdaRzFrU2FZa21LYk9oMTRVcVRlS0pFRlIycHFnSUQrOC8wcGNITnFlUUxYL1Nsd2MycDVBdGY5S2JtL1EweElSN0RJQXRjQUFBQUJBR1QrZ3dVTkJjVUFHQUFBQVNNVEpnSTNFeElBTXpJU0J5TTJKaU1pQWdjREJoWTdBUUpEdFVtOHR6SXpPd0ZaNzl2bUxMWWlnSitTOVNnMExJQ2dhdjZEQVc0ZkFWTDFBUUVCSlFGSS92bmVxYWIrODhqKy9kdjhBQUVBU3Y2REEvc0VUZ0FZQUFBQkl4TW1BajhCTmdBek1oWUhJelltSXlJR0R3RUdGanNCQWR1MlNweUpLUWd4QVNIVW9ia2hxeFppWUhxNUh3Z2pVb2RpL29NQmNpSUJLTWtxOWdFbTRhZHZnK3FjS3E3YUFBQUJBRlVBQUFUQ0JUNEFFd0FBQVJjSEp3TWpBU2MzRndFbk54Y1RNd0VYQnljQ091dGE3ZW1nQVNIcldlOEJCZXRjN2U2ZS90cnRYZWtCdmF4NXF2NitBWTZyZWFzQmI2dDdxd0ZOL21lcmVLb0FBQUFCL1QwRXB3QWNCZnNBQndBQUFRY25OeUUzRndmOStCbWlNQUg1RktJckJTVitBZWRzQWRVQUFmMWtCUmNBUXdZVkFCRUFBQUV5SkRNeUZnOEJJemMySmlNaUJDc0JOLzJtYlFFclBHOWFGZ2Q4QXdzdExTdit6SEFyR1FXVmdHWjFJeEkyT0g5OUFBSCtid1VZL3pjR1dBQUZBQUFCTnpNSEZ3ZitieG1zSEI5WEJkeDhqSFJBQUFBQUFBSCtrQVVZLzZjR1dBQUZBQUFCSno4Qk13Zit6VDFORzY4WkJSaEFkSXg4QUFBQUFBajZ0LzdFQWRvRnJ3QU5BQnNBS1FBM0FFVUFVd0JoQUc4QUFBRStBVE15Rmdjak5pWWpJZ1lIQVQ0Qk16SVdCeU0ySmlNaUJnY0RQZ0V6TWhZSEl6WW1JeUlHQndFK0FUTXlGZ2NqTmlZaklnWUhBVDRCTXpJV0J5TTJKaU1pQmdjQlBnRXpNaFlISXpZbUl5SUdCd0UrQVRNeUZnY2pOaVlqSWdZSEF6NEJNeklXQnlNMkppTWlCZ2YrREJONVhWWlpFV2dLSURFck93a0JoUko2WEZaYUVHa0pJVEVyT2dnaEVucGRWbGtRYVFrZk1TdzdDUDU2RW5sY1Zsa1FhQWtnTVNzNkNmMUhFM2xkVmxvUmFBa2dNU3M3Q2Y2REUzcGRWbGtSYUFvaE1TczVDdjZORTNwY1Yxa1JhUW9mTWlzN0NUWVNlMXhXV3hGcENpQXlLem9KQlBOYVltbFRMelk2Sy83cldtSnBVeTgyT2l2K0NWcGlhVk12Tmpvci9mbGFZbWxUTHpZN0t2N2tXMkZvVkRBMU9pc0ZHbHBpYVZNdk5qb3IvZ2xhWW1sVEx6WTZLLzM1V21KcFV5ODJPeW9BQUFBSSt0YitZd0dPQmNZQUJBQUpBQTRBRXdBWkFCNEFJd0FvQUFBRkZ3TWpHd0VuRXpNREFUY0ZCeVVGQnlVM0JRRTNKUmNHQlFFSEJTY2xFeWNETnhNQkZ4TUhBLzRZQjdWYWliY0p0bG1JQVpRUEFSMFUvc3o3dkEvKzR4UUJNd094QmdGSE15ais3L3g1QmY2M01nRTZiQkJJU24wQ2doQktUSHM4RHY2dEFXRUVvZzRCVXY2Zy9oRU1mR0pIT3d4OFlrY0JyaENaUkJleC9JNFJtVVhJQXVRQ0FVWkYvdFg4NHdMK3UwY0JLd0FBQUFBQ0FENEFBQVBVQm5BQUVnQWJBQUFCSVFNek1oWUhEZ0VqSVFFak56TTNNd2NoQVFNek1qWTNOaVlqQXlUKzFuRDVxNlloSk9pNS9sQUJCYkFlc0NlM0p3RXEvaXBaK1Y5OUV4TkNad1VhL2M3TXBMTEdCUnFXd01EOG8vNUNmMTFpZ0FBQUF3QlhBQUFGRndXd0FBTUFEZ0FYQUFBQkJ3RTNBUU1qQVNFeUZnY0dCQ01sSVRJMk56WW1JeUVFcjMvKzluLzkzSFcxQVNNQ0JNN0xKeXYrN09IK3p3RlBnN0VaR21hUC9yRUNQbVFCazJYK2VQMjJCYkR3dzliZGxhTjVoWm9BQS8vaS9tQUVKZ1JPQUFNQUZnQWtBQUFsQndNM0pRNEJJeUltSndNakFUTUhGejRCTXpJU0F5TTJKaU1pQmdjREhnRXpNalkzQTVPQTduOEJTalBvdmx1TExXcTJBU3VjQ0FNN2xGcXlwelMyS0dLSlNYWXdhaHRyVm55ZklRMWxBWFZsWC8vM1JFUDk3Z1hhYmdGQVEvNnMvdnpKOVZKSS9mRkRTTHlsQUFBQkFFZ0FBQVR3QndFQUNRQUFBU01WSVFFakFTRVRNd1NPQXYxMy92dTJBU01DakVTMUJSc0IrdVlGc0FGUkFBQUJBRFVBQUFQUkJYZ0FDUUFBQVNNVklRTWpFeUVUTXdOekJmNDN1cmJZQWM1QXRnT2tBZnhkQkRvQlBnQUFBQUFCQUZmKzNnUzVCYkFBRlFBQUFTRURNeklTQXdJQUl6Y3lOamMySmlzQkF5TUJJUVNiL1hkZnF2djBOamorOE44Ymhhc21LWTIvcW9hMkFTTURQd1VhL2liKzBQN3YvdWYrK0pIU3Z0TFEvVjhGc0FBQkFEWCs1UU9NQkRvQUZRQUFBU0VETXpJV0J3WUNCeWMrQVRjMkppc0JBeU1USVFOdS9qYzVhTW5mTEI3b3ZCT0NoeGNkZllkb1liYllBbjhEby83aS90Mk0vdXNra0NLZWRabWovaG9FT2dBQUFBQUJBRWdBQUFWUUJiQUFGQUFBQ1FJakF5TUhJemNqQXlNQk13TXpFek1ETXdFRlVQNENBUUxpdTBneGtURmNoTFlCSTdhQlhEU1JORVlCcWdXdy9VLzlBUUtWOS9mOWF3V3cvWG9CQXY3K0FvWUFBQUFCQUQ0QUFBU2ZCRG9BRkFBQUNRRVRJd01qQnlNM0l3TWpFek1ETXpjekJ6TUJCSi8rWGV2bG9Da25rQ2RaWExiWXRseFpLNUFySkFGSEJEcjkvLzNIQWMvRXhQNHhCRHIrTmRiV0Fjc0FBQUVBOHdBQUJvWUZzQUFPQUFBQkl3TWpBU0UzSVFNekFUTUpBU01EVTRtRXR3RUYvbDhlQWxoL2t3SWo1djFyQVlUUEFwWDlhd1VibGYyRUFuejlLUDBvQUFBQUFRQ2xBQUFGakFRNkFBNEFBQUVqQXlNVElUY2hBek1CTXdrQkl3TDFlRnkydXY2QUhnSTJYR3dCcWRyK0NRRS81Z0hQL2pFRHBKYitOUUhML2ZyOXpBQUFBQUFCQUZjQUFBZklCYkFBRFFBQUFTRVRJUWNoQVNNVElRTWpBVE1CcXdLVWhBTUZIdjJ3L3Z1MWdmMXNnYlVCSTdVREd3S1ZsZnJsQW9iOWVnV3dBQUFBQVFBMUFBQUZqZ1E2QUEwQUFBRWhFeUVISVFNakV5RURJeE16QVdVQndsNENDUjcrcmJxMlhQNCtYTGJZdGdKa0FkYVcvRndCMFA0d0JEb0FBUUJYL3Q4SFdnV3dBQmNBQUFFek1oSURBZ0FqTnpJMk56WW1Ld0VESXdFaEFTTUJJUVQ5YnZ2ME5qais4TjhiaGFzbUtZMi9ib2ExQVFYOWF2Nzd0UUVqQkFBRFFmN1EvdS8rNS83NGtkSyswdEQ5WGdVYSt1WUZzQUFCQURYKzVRWThCRG9BRndBQUFUTXlGZ2NHQWdjblBnRTNOaVlyQVFNakV5RURJeE1oQStTZDB1a3NIdWk5RW9LR0Z4MkdrSnhodHJyK1BicTIyQU12QW9YKzNZeis2eVNRSXA1MW1hUCtHZ09qL0YwRU9nQUFBZ0JsLytJRnhBWEZBQ2tBTndBQUJTSW1KdzRCSXlJQ0V6Y1NBRE1ISWdJUEFRSVNNekkyTnlZQ1B3RTJBRE15RWc4QkJnSUhIZ0V6QVFZV0Z6NEJQd0UySmlNaUJnY0U0R0NvU2t1ZFZmTDZQQ0k2QVNmREhtcStLQ00wbHJnaVJDSmtTeUl1TWdFSnNLT2RNRElpbVhJc1lqeitJU0U0V1d5VUhUTWxQMkZYbnlBZUpTWWlJQUdPQVN5cUFTVUJVWnorOU15cy92Lys0Z2tMWlFFUnFPYi9BU1QrenZINnEvNzRYUTBLQWptazVraEw1by85dk1yZ3BnQUNBRTcvNndSOEJFOEFLUUE0QUFBRklpWW5EZ0VqSWdJVE56WVNNd2NpQmc4QkJoWXpNalkzTGdFL0FUNEJNeklXRHdFT0FRY2VBVE1ETnpZbUl5SUdEd0VHRmhjK0FUY0QrMW1UUGoxNlA5UzVPQXNwOUlzZlJtNGVEQ2RzZVJRbkZFY3VIQlVsMklHTWJTb1ZGMmRMSkZJdmtSVVpIalE2VmhvVkZTbzhOVWtVREJ3ZElTRUJPZ0VUTzgwQkRwdW1tRDI4OWdRRlRkYUtaNzN2N3ROcGNMOU5EZzBCbDJ4K3BZcUZhMmVqT3plWFlnQUJBT2orb1Faa0JiQUFEd0FBQVNFM0lRY2hBeUVCTXdFekF5TVRJUUpHL3FJZUEzY2UvcHpuQXBZQkJiWCsrNDEzb1ViOEp3VWJsWlg3ZWdVYit1bitDQUZmQUFFQWlQNi9CTThFT3dBUEFBQUJJemNoQnlNRElSTXpBek1ESXhNaEFZTDZIZ0tUSHVPY0FjTzZ0cnQ3Y0tKQS9Rc0RwcFdWL084RHBmeGIvaW9CUVFBQ0FORUFBQVZJQmJBQUF3QVhBQUFCSXhNekNRRWpFdzRCSXlJbU54TXpBd1lXTXpJMk54TUMxWkdNa1FIbi90MjFlbUtuY3RmSE1GdTNXeVZqbDF1OVk0c0JRQUs4QWJUNlVBSmhIUnJTN2dIRy9qcTNjeHdjQXJnQUFBSUFsd0FBQkI0RU93QURBQmNBQUNVakV6TVRJeE1PQVNNaUpqY1RNd01HRmpNeU5qY1RNd0kza1hHUm5yWk9PWEJCcjY0cVA3VS9IazVzT25ROWE3Ym1Balg4NVFHSUVBL016QUU2L3NhUmNCQVFBaG9BQUFBQkFOQUFBQVZHQmJBQUV3QUFNd0V6QXo0Qk16SVdCd01qRXpZbUl5SUdCd1BRQVNPMWVsK29kTmJITDF1M1d5UmpsbDI3WTRzRnNQMmVIQnpUN2Y0NkFjYTJkQjBiL1VnQUFBQUFBZ0N1LytrRjdnWERBQjRBSndBQUJTQUNFemN1QVRjekJoWVhOeElBTXpJU0F3Y2hCd1lXTXpJMk54Y09BUUVoTnpZbUl5SUNCd05hL3Y3NE9CYUpkeUNSRlRKTUFqc0JYZDNxeFQwVi9NY1VMb25PWDZWR0V6YTkvcHNDaEFZdFk3Q082aWdYQVZnQkdXd1h3WnRsZGhJSEFTWUJTdjZlL3N0dFplWDNNU2FHSmtBRFdTSGg2Zjd3eWdBQ0FDWC83QVJSQkU0QUhBQWtBQUFGSWdJL0FTNEJOek1HRmhjMkpETXlFZzhCSVFZV016STJOeGNPQVFNaUJnY2hOelltQWtuT3ppY0NZazhha0E0U0l6MEJFSnpIcXlNVC9Xd1lhNGRhbHp3elFMa0JXcUFwQWRvRUUxa1VBU3J4RUNHcGdVZGNHY1hqL3Z2ZGVhM0ZPVEo3T2tzRHpLcUdHbjJaQUFBQUFBRUFTUDdaQlZBRnNBQVdBQUF6SXdFekF6TUJNd0VXRWdjQ0FDTTNNalkzTmlZckFmNjJBU08yZm5jQ1k5UDlrdHJLTWpuKzhkOGJoYXdtS0kzQTl3V3cvWXNDZGYySEdQN1gvUDduL3ZpUjByN1IwQUFBQUFBQkFENysvUVJmQkRvQUZnQUFBUjRCQndZQ0J5YytBVGMySmlzQkF5TVRNd016QVRNQ2dLT2lKUjNsdXhLQWhCY2NpSk9kWExiWXRseFFBY1hhQW1JZjNMbUgvdmtqa0NHU2JwYUwvakVFT3Y0MUFjc0FBQUFBQVFCWC9rc0ZlZ1d3QUJjQUFBRURJUk16QVE0Qkl5SW1KemNlQVRNeU5qY1RJUU1qQVFJd2hBS1RoTGYreXlXN2xCd3dHaXNNUEJFMlZoT1QvVzJCdGdFakJiRDlhd0tWK2ZlMXB3a0prUVVJYVYwQzMvMTZCYkFBQUFBQkFEWCtTd1E3QkRvQUZ3QUFBUU1oRXpNRERnRWpJaVluTng0Qk16STJOeE1oQXlNVEFjTmVBY0pldHVvbHVwVWNNQm9yRER3Uk5sY1RiLzQrWGJiWUJEcitLZ0hXKzIyMXB3a0prUVVJYVYwQ0tmNHdCRG9BQWdCRy8rc0ZRQVhGQUJZQUhnQUFBU0FBQXdjQ0FDTWdBaE0zSVRjMkFpTWlCZ2NuUGdFRE1oSTNJUWNHRmdNbUFSTUJCenNoUVA2TDdmN3o3ejRXQTZvTU1abmdaSzVLRWpmR041bi9NZjBOQnkyRkJjWCtqLzdWby83RC9xSUJZQUUyYnpuNEFRNHlKWVlsUXZxN0FSZldJK0xvQUFBQUFRQTIvK3NFaFFXd0FCc0FBQWtCSVRjaEJ3RWVBUWNHQkNNaUpqY3pCaFl6TWpZM05pWXJBVGNCMHdHLy9hMGVBeWdXL2h6RHZTZ3MvdURWck9BcnR4cHNkbnU1R0NGMW5JY2RBMU1CeDVaMS9oRU80c2ZaMGRiVGY1V1hlcXFEa0FBQUFBSC83ZjUxQkRvRU9nQWNBQUFKQVNFM0lRY0JIZ0VIQmdRaklpWTNNd1lXTXpJMk56WW1Ld0UvQVFHR0FhMzl3UjRES0JiK0tiMjFKeXYrMzlXczNpbTNHbXgyZTdrWUluYWRpQWNXQWR3Qng1ZDEvZzhSNGNUWDB0ZlJmWldYZUtxREkyMEFBQUQvL3dBSy9rc0UvUVd3QUNZQXJFUUFBQ1lCMDhCQUFBY0JtZ0R0QUFBQUFQLy8vL3YrU3dQa0JEb0FKZ0RuVHdBQUpnSFRuWTRBQndHYUFONEFBQUFBQUFJQU5nQUFCUE1Gc0FBS0FCTUFBQUVUTXdFaElpWTNOaVF6R3dFaElnWUhCaFl6QThwMHRmN2QvZjNQeUNjckFSSGp2WFArc29Td0Z4eGxqd05zQWtUNlVQWEYxZDM5S1FKQ3BIZUhvQUFBQWdBMkFBQUdDd1d3QUJnQUlRQUFJU0ltTnpZa015RVRNd0UzUGdFM1BnRW5NeDRCQndZRUl5Y1RJU0lHQndZV013SE56OGduS3dFUjR3Rk9kTFgrK2xCbGhoMFJCQXl3Q2dNUkx2NzVwdVp6L3JLRXNCY2NaWS8xeGRYZEFrVDY1QUVCaklKT3BWSnBra3JQMVpVQ1FxUjNoNkFBQUFBQUFnQkEvK2tHTUFZWUFDSUFNd0FBRXhJQU16SVdGeE16QXdZV016NEJOejRCSnpjV0JnY0NBQ01HSmljT0FTTWlBamNCTGdFaklnWVBBUVlXTXpJMk56NEJOM000QVFUQ1VuVW1kcmJ6Rmp4S2diRXBGUXNJcndjRkZEbit6TUZ4Z3hWRXBHbXZvQzhDMFJoY1MzMjJKUVFrVTRoTWZUUUNBd01DQ2dFYkFTbERRUUpPKzBGa2RRSFJ2MlRHYUFGNnUxNys4ZjdwQWxSZVdWY0JJT29CUGoxRTc3c1Z0THhNUmhVY0VRQUFBQUFCQU9qLzZBV2JCYkFBTFFBQUFUYzJKaXNCTnpNeU5qYzJKaU1oTnlFeUZnY09BUWNlQVE4QkJoWXpQZ0UzUGdFbk14WUdCd0lBSXdZbU53SjdEUnBnY0xJZWY1T3NHeHBvbFA2ekhnRk4xTXdvR294M1pVUVpEaEUzUUc2aEtCVUxDTEFHQkJNNi90K3htSUVjQVRKQmdvaVdnSVdFZnBiU3lINmdMeW11ZlVWUVlBSFZ1MlRIYUlhd1hmN3ovdWNEbXE0QUFRQ0kvK01FcFFRNkFDNEFBQ1VHRmpNK0FUYytBU2N6SGdFSEJnUWpCaVkvQVRZbUt3RTNNekkyTnpZbUt3RTNNeklXQnc0QkJ4VWVBUThCQXBJS0dpMW1paUFQQkF5d0N3UVFNZjcxcDRObkZBOFBUMS9FRzZ0cWdCQVJWSFB6Ri9tMnVSNFNiR0JUUFJFUDFpMHZBcG1PVHFGUWJJdEkyK0lEYjRSTVQwcVVWazVZVzVTcWwxbHRJZ01jZVZaT0FBQUFBQUlBei83RUE3c0ZzQUFoQUNzQUFCTTNNekkyTnpZbUt3RTNNeklXQnc0QkJ4NEJEd0VHRmhjSEl5WTJQd0UySmlNQkRnRUhKejRCUHdFenp4NldsYXNiRzJhVS94Ny8wOHNvR290NFpVWVpHdzhJSEFXNkh3VVBHeGxnY1FHdUZuOWVWenhHRVIrMkFucVdnb0tJZjVYVXlYMmZMeW12ZlloSlpTUVpKSHhOaElLSC9jUnJ4MGhJU3BCVmx3QUFBQUlBdlA2MUEyMEVPZ0FpQUN3QUFCTTNNekkyTnpZbUl5RTNJVElXQnc0QkJ4VWVBUThCQmhZWEJ5TW1OajhCTmlZakFRNEJCeWMrQVQ4Qk03d2V3MnQvRUJKVGRQNzdIQUVHdHJnZUVtNWlWRDBTRkFvS0hBUzdIZ0lMRXhGT1lBR2NGbjllVnp4R0VSKzJBYnFVVms5YVdaU29tRnR1SWdNZWcxNWhNVklXRXhkak0xOVlWdjUxYThkSVNFcVFWWmNBQUFBQi8vSC82QWNmQmJBQUlRQUFBU0VEQWdBckFUY3pNaEliQVNFREJoWXpQZ0UzUGdFbk54WUdCd0lBSXdZbU53U1Eva2RyVi83KzhURWVKb1M4UW9rREpONFZQRXFBc1NrVkN3aXZCd1VVT2Y3TXdLS0ZIZ1VhL2ViK1V2NnVsUUVpQVVrQ3NQdXBaWFFCMGI5a3htZ0JlcnRlL3ZIKzZRT3R4QUFBQWYvcy8rZ0Y4d1E2QUNFQUFBRURCaFl6UGdFM1BnRW5NeFlHQndZQUl3WW1OeE1oQXdvQkt3RS9BVEkyTnhNRU1wTVZPMGxsa1NVVUNRbXZCd0lUTmY3dnFLQ0dIM1grNEQ1RjFNWTFJeWhmaERGY0JEcjlIMlIxQWJtcFhyeGplSzFZK1A4QUE2M0VBa3IreS82by91cWlBZGYwQWN3QUFRQk8vK2dISmdXd0FCMEFBQUVEQmhZelBnRTNQZ0VuTnhZR0J3SUFJd1ltTnhNaEF5TUJNd01oRXdWcTNoVTdTb0d4S2hRTEI2OEhCQlE2L3N2Qm9JWWZQUDF5Z2JZQkk3YUVBbzZFQmJEN3FXUjFBZEcvWThacEFYeTVYdjd4L3VrRHJjUUJMZjE2QmJEOWF3S1ZBQUVBTmYvb0JnVUVPZ0FkQUFBQklRTWpFek1ESVJNekF3WVdNejRCTno0Qkp6TVdCZ2NHQUNNR0pqY0RFdjQwWExYWXRWNEJ6RjYya3hVN1NXYVJKUk1KQ0s0SEFSTTEvdStwb0lZZkFjLytNUVE2L2lrQjEvMGZaSFVCdWFsZHZHUjdxbGo0L3dBRHJjUUFBQUVBWVAvckJKc0Z4UUFoQUFBRklnSWJBUklBTXpJV0Z3Y3VBU01pQUFjREJoWXpQZ0UzUGdFbk14WUdCd1lFQWpYazhUVTFPZ0ZqK1dPaE4xTTRmbENjL3dBbk5TeUxxb0duSHhJTEJMQUJBeEV3L3RZVkFWNEJEQUVHQVNJQlNDMHFneUlpL3ZQRi92alovQUdhamxXeFk1MThVTnppQUFFQVJ2L3JBNW9FVGdBaEFBQWxQZ0UzUGdFM013NEJCdzRCSXlJQ1B3RTJBRE15RmhjSExnRWpJZ1lQQVFZV0FmSmJXUlFNRFFPdkFRb0xKTnFkeThNdUNERUJJTk5UZ2lWR0oycEJlYmtmQ0NOY2dBRlZWejF6UEVWeE5xS2dBVHZpS3ZRQktDTWZqUnNlN0pvcXJOd0FBQUFBQVFEWC8rZ0ZKQVd3QUJrQUFBRWhOeUVISVFNR0ZqTStBVGMrQVNjM0ZnWUhBZ0FqQmlZM0FvNytTUjRFTHg3K1BzQVdQRXFCc0NzVUN3aXZCd1FWT2Y3TXdhQ0dIZ1VhbHBiOFAyUjFBZEcvWThacEFYMjRYdjd4L3VrRHJjUUFBUUNzLytnRWZBUTZBQmtBQUFFaE55RUhJUU1HRmpNK0FUYytBU2N6SGdFSEJnUWpCaVkzQWZUK3VCMERUQjMrc25VV08weGxpaUFRQmd5dUN3UVJNUDcxcUtHR0hnT21sSlQ5czJ0dUFadVBVS1pRYUpSSzNlTURyY1FBQUFBQUFRQnEvK3NGUXdYRkFDMEFBQUVISXlJR0J3WVdNekkyTnpNR0JDTWlKRGMrQVRjdUFUYzJKRE15Rmdjak5pWWpJZ1lIQmhZN0FRY3pEd0VEZ0FhcW9zd2JHNXFzaStFWXRTNyt0TjNsL3Zzb0c2V01aMkVWS2dFeCtjZjlKTFlYbFlxZHpSY1pmYXFxQndFS0J3SzdJSU9IaEkyZmRlVEY0c2lMcUNjeG8yVFl4dDIxZFllVGNYNThJaThsQUFELy93RHBBb3dGQUFNaEFFWUJodHdBVXpOQUFQLy9BUUFDakFZSkF5RUFSZ0dHdFFCbVprQUEvLy8vYVA1dUF4RUFBQUFuQUVILzB2OERBQVlBUVFRQUFBRUExZ1FDQWtVR0t3QUpBQUFUUGdFM0Z3NEJEd0VqK1JWL1gxazlTQkVrdFFTeGE4ZElSMHFRVnJJQUFRQ3hBK2NDSUFZWUFBa0FBQUVPQVFjblBnRS9BVE1CK3hWK1gxZzdSeElsdGdWaGJNZEhTRWlSVnJvQUFBQUFBZitrL3RZQkVBRDZBQWtBQURjT0FRY25QZ0UvQVRQdUZuOWVWenRHRWlPMlQydkhSMGRJa1ZhdUFQLy8vMkVENXdEUUJoZ0FSd0ZtQVlFQUFNQUJRQUFBQVAvL0FOWUVBZ055QmlzQUpnRmxBQUFBQndGbEFTMEFBUC8vQUwwRDV3TlNCaGdBSmdGbURBQUFCd0ZtQVRJQUFBQUMvNlQrMWdJdEFQb0FDUUFUQUFBM0RnRUhKejRCUHdFekZ3NEJCeWMrQVQ4Qk0rNFdmMTVYTzBZU0k3YjdGbjlmVnp0SEVpTzJUMnZIUjBkSWtWYXVxMnZIUjBkSmtWV3VBQUFBQVFDVkFBQUVSZ1d3QUFzQUFBRWhBeU1USVRjaEV6TURJUVF1L295VnRwWCtrUmdCYnp5MlBBRjBBNlA4WFFPamx3RjIvb29BQUFBQkFCRCtZQVJWQmJBQUV3QUFLUUVESXhNaE55RVRJVGNoRXpNRElRY2hBeUVEcVA2TFFyWkMvcE1ZQVcxKy9wSVlBVzQ4dGp3QmRCaitqSDRCZGY1Z0FhQ1ZBdzZYQVhiK2lwZjg4Z0FBQUFFQXJ3SVlBbDhEM2dBTkFBQVRQZ0V6TWhZUEFRNEJJeUltTjgwU2UxdFVWaEVNRkhoY1UxZ1NBeGhlYUc5WFBWOWtiRmNBQUFELy93QkhBQUFDdmdERkFDWUFFQUVBQUFjQUVBR2JBQUQvL3dCSEFBQUVSQURGQUNZQUVBRUFBQ2NBRUFHYkFBQUFCd0FRQXlFQUFBQUdBSzcvNndiaEJjVUFHUUFuQURVQVF3QlJBRlVBQUFFK0FUTXlGaGMrQVRNeUZnOEJEZ0VqSWlZbkRnRWpJaVkzQVQ0Qk16SVdEd0VPQVNNaUpqY0JCaFl6TWpZL0FUWW1JeUlHQndVR0ZqTXlOajhCTmlZaklnWUhBUVlXTXpJMlB3RTJKaU1pQmdjVEp3RVhBdkVidFlOQlhob3RlRXA1ZkJrUEhMT0RRbDhaTG5oSWVuMGEvZlVidElSNWZCa1BITE9EZW4wYUFxRVJOa2xDWWhBUEVEVklRbVFQQVprUk5rbEJZeEFQRURWSVFtUVAvQzhSTmtsQ1loQVBFRFZJUW1RUEVsZ0RlbGdCWlltalB6YzVQYTUrVG91aFBUZzVQSzEvQTRHS282NS9UWXFoclg3OHpGSmphVXhPVVdScVMwNVNZMmxNVGxGa2Frc0M1bEZqYVV0TlVtUnJTL3ZYUVFSeVFRQUFBQUVBZ0FDYUFtMER0QUFIQUFBQkV5TURQd0VCTXdFdm40akdBd0VCWVlnQ0ovNXpBWVFOQmdHREFBQUFBUUFoQUprQ0RRTzBBQWdBQUFFVEJ6TUhBU01CQXdGSnhBSUJBLzZoaVFFOG5RTzAvbndHRGY1OEFZMEJqZ0FBQVFBSkFHOEQyd1VpQUFNQUFEY25BUmRoV0FONldHOUJCSEpCQUFJQWl3SXdBM1VGeFFBS0FBOEFBQUV6QnlNSEl6Y2hOd0V6QVRNVEp3Y0M2b3NaaXlXZkpmNVpEd0ltby8zdCswNERGQU5tZmJtNVhnSisvYUVCaGdJZUFBQUFBUUNqQW9zRGV3VzZBQlFBQUFFZkFUNEJNeklXQndNakV6WW1JeUlHQndNakV3SEFCQU1zY2tWdFpCOW1wbUFXTGtBd1VSNXdwcUFGcTI4QlBrR1duZjRFQWQxeFV6czEvYzhESUFBQUFBQUJBQzBBQUFSL0JjVUFKd0FBQVE0QkJ5RUhJVGN6UGdFM0l6Y3pOeU0zTXpjK0FUTXlGZ2NqTmlZaklnWVBBU0VISVFjaEJ3R2VGVGttQXF3Zi9IWWVDUzVQR0o4ZW1oaVVIbzRaTFBXMXNhMGp0eHBiWVZpT0d4a0JpQjcrZlJrQmZ4NEJ2bDJWTjVXVkRiSnFscEdXbGQzWTA3Q0VhWmVJbFphUmxnQUFBQU1BU2Yvc0JpRUZzQUFLQUJNQUt3QUFBUU1qQVNFeUZnY0dCQ01uTXpJMk56WW1Ld0VsQXpNSEl3TUdGak15TmpjSERnRWpJaVkzRXlNM014TUJiM0cxQVNNQlNjM0tKeXYrNmVCMmxJS3pHUnRsanBRRGxEVy9ITCtFRWlRckZETVRBaHhkTEdOaklJU05ISTAxQWpiOXlnV3crTVhYNXBhcmVvYWtKdjc1amYxcVZqa0lCWU1SRlkrY0FwYU5BUWNBQUFBQkFHRC82d1JpQmNVQUtRQUFBU0VHRmpNeU5qY0hEZ0VqSWdJM0l6Y3pOeU0zTXpjU0FETXlGaGNITGdFaklnWVBBU0VISVFjaEEybitOU2QyampOdE5BdzZjanJOMlRLSkdJa2hpQmlJQkRVQk5OODFiRHN4TUdNMmc4NGpCQUhMR1A0MUlnSExBZ0svd3hFUm1BOFFBU0wxZUtsNkVRRUpBUTRRRDVvUUU5Q3ZFM3FwQUFBQUJBRGovK3NGTUFYRkFCc0FLUUEzQURzQUFBRU9BU01pSmo4QlBnRXpNaFlISXpZbUl5SUdEd0VHRmpNeU5qY1RCaFl6TWpZL0FUWW1JeUlHQnpNK0FUTXlGZzhCRGdFaklpWTNBU2NCRndML0ZyQnZmV29jRHhtM2NYcHVGNGNNTXpvL1ZCQVBFREU3UFUwTVlScDllb096SEE4WmZIbUR0UnVIRDJSQ1NEVVFEeEJpUWtrMkVRRi9XUHlHV0FRZWJKS2hpazEvcm90ME9VOWtVazFLYWt3Ny9QbC9yYUdMVG42dW80bExhbVJSVGt4cFkxSUR5a0g3amtFQUFBQUFBZ0JuLytzRDZ3WEZBQm9BSmdBQUJTSW1Qd0VPQVNNM01qWTNFejRCTXpJV0R3RUdBQThCQmhZekV6YzJKaU1pQmdjRFBnRTNBa2pFalM0RE1GOHlJelJlTDJBandYdDJheDhJSVA4QXRoUWRRbWluQ1E4YklESkNGMDFsZmhnVjMrVVFEZzJ1REEwQjM3SEtuNTBxbS82NmFXYVJtQVBYTEU5UlpubitnRXJRZVFBQUJBQk9BQUFJYVFYQUFBTUFFUUFmQUNzQUFBRWhOeUVCUGdFek1oWVBBUTRCSXlJbU56TUdGak15Tmo4Qk5pWWpJZ1lIQVNNQkl3TWpBVE1CTXhNekIzWDkrUndDQi80NklNdVlqSThkRnlETGw0MlFIcDhVUEZSSmJSSVhFanhSUzJ3Uy9lTzIvbElENDdVQkk3VUJyZ1BqdGdGcmpRSjVvYTY3bEhXaXJMbVZZV1J0V0hWZVptNVcrNDhFY1B1UUJiRDdrUVJ2QUFBQ0FTTURsd1RrQmJBQURnQVdBQUFCRXpNREl4TW5BeU1ESXdNakV6TUhJd01qRXlNM0lRT1U2bVpyVmtVQzFTOUtBMGxYYTJ6RWgxdFhXNGNRQVdVRUlBR1EvZWNCWHdIK29BRnMvcFFDR1ZIK09BSElVUUFBQWdCOC8rd0Vqd1JPQUJVQUhnQUFKUTRCSXlJQ056WUFNeklTRHdFaEF4NEJNekkyTndNaUJnY0RJUk11QVFPUVhyZGF3ZVF1TVFGanc3ZlhMZ245TmtJcmRFbFV2bDIwUXBSQk53SDJPU2h5WGpnNkFVbm85Z0U3L3NybkwvNjROamc4UGdNcVFUbis2d0VlTmpzQS8vOEEvdi8xQmdVRnNnQW5BY2tBamdLR0FDY0JkQUQxQUFBQUJ3SFFBeEFBQUFBQS8vOEFyUC8xQnBBRndBQW5BY3NBaHdLVUFDY0JkQUdmQUFBQUJ3SFFBNXNBQUFBQS8vOEFxdi8xQnIwRnJ3QW5BYzBBZndLT0FDY0JkQUhUQUFBQUJ3SFFBOGdBQUFBQS8vOEJIdi8xQmlNRnJ3QW5BYzhBandLT0FDY0JkQUVoQUFBQUJ3SFFBeTRBQUFBQUFBSUFKdi9yQkZvRjdRQVVBQ0VBQUFFV0VnTUhBZ0FqSWdJM05nQXpNaFlYTnpZbUp3TXlOajhCTGdFaklnWUhCaFlDcE92TFJSWTEvc1RSd2RZcU1nRVYwMUtOTGdNSm9KVnZkOUVqRlJHSmVYbXVIeDF2QmUxTC9qMytxSEQrOXY3ZUFSak8vUUVEUVRzQjJlTTkrekhuc0dwUmFjMmRrTUVBQUFBQkFEbi9LZ1ZCQmJBQUJ3QUFCU01USVFNakFTRUVOclh6L1c3enRnRUxBLzNXQmZENkVBYUdBQUFBQUFIL3UvN3pCT1FGc0FBTUFBQUpBU0VISVRjSkFUY2hCeUVCQTF6OVVnTkVIdnZuSEFMSC9sb2NBOUFlL1FRQmx3SkIvVWlXalFMT0F0U09sdjFBQUFBQkFNOENqQVAxQXlFQUF3QUFBU0UzSVFQWC9QZ2VBd2dDakpVQUFRQm9BQUFGS1FXd0FBc0FBQUVWRnpjQk13RWpBeU0zSVFIMUF5VUNVN244MzRscXJSNEJNQUZQV0FGWkJHSDZVQUoxbHdBQUFBQURBRW4vNndlQUJFNEFHUUFuQURVQUFBRUdBQ01pSmljR0JDTWlBajhCTmdBek1oWVhOaVF6TWhJSEJRWVdNeklBUHdFbUFpTWlCZ2NoTmlZaklnQVBBUllTTXpJMk53ZEdNZjdueFpHeU1XcisrSjIzdEMwT01BRVl4cEd6TVd3QkI1KzBzeXo1MXlWUmUzZ0JCeThJQm9xRWI2c2hCV1lqVUhkNi92a3dDQVdLaEcrcklnSDY4LzdrMnArZzJRRXczMFR5QVI3Y25xRGEvczdlUkxmREFTQm9LbXdCR3RPbnRjWCs0V2NxYi83bjBha0FBQUFBQWY4Ny9rc0RIUVl0QUJ3QUFBVU9BU01pSmljM0hnRXpNalkzRXo0Qk16SVdGd2N1QVNNaUJnY0RBUVVkdFpRYk1Ca2tEVHdQT0ZFUTBSM0FteDlBSlM0Ukp4bFBhUkRSV2JHckNRbVJCUWhwWFFVZXRySUxDb3dGQm01ayt1SUFBZ0JRQVJvRVBnUDdBQnNBTndBQUV6NEJNellXRng0Qk16STJOeGNIRGdFaklpWW5MZ0VISWdZSEp3TStBVE0yRmhjZUFUTXlOamNYQnc0Qkl5SW1KeTRCQnlJR0J5ZkZQSUErUVROV1NqVStPWVE0QXhnOGdEdzZRMEZVTlVFNmhUWURSenlBUFVFMFZrNHdQam1GTndNWFBZQTlPa0JDV3k1Q09vUTJBd05vUmt3QkZ6TXVGMHhDQWFOSFN4d3BNaGdCVFVFQi92cEdUQUVYTXpBV1RVSUJwRWRMSENrMkZRRk5RZ0VBQUFBQkFJNEFwQVFJQk44QUV3QUFBVE1ISVFNaEJ5RUhKemNqTnlFVElUY2hFeGNEUzcwZy92V3lBWW9nL2lpa1IzdS9JQUVOcy81eklBSGF2MGNEelo3Ky81N3NPcktlQVFHZUFSSTdBQUFBLy84QVNBQUNCRGtFalFCbkFCNEFkQUN5UUFBNW1nQUhBWWIvZWYxMkFBRC8vd0JIQUFBRUVnU2dBR2NBSUFBNEFNUkFBRG1hQUFjQmh2OTQvWFFBQUFBQ0FHY0FBQVBhQmJBQUJRQVBBQUFCTXhNQkl3TWhBeThCQndFVEh3RTNBbTJJNWYzOGllWUN1b2tHQXg3K3NJa0dBeDRGc1Awbi9Ta0Mxd0lETndFNC9mMzkvamNCT1AvL0FJOEFzZ0liQk9zQUp3QVFBRWtBc2dBSEFCQUErQVFtQUFBQUFnQ1VBbm9DbmdRNkFBTUFCd0FBQVNNVE14TWpFek1CSFlsWmljK0pXWWtDZWdIQS9rQUJ3QUFBQUFBQi8rYi9Md0VqQU93QUNRQUFKUTRCQnljK0FUOEJNd0VPRkdwU1dEQTZFQmF0Z0dLdlFFZy9lMHh2QUFJQWFBQUFCQmNHTFFBWEFCc0FBRE1USXpjek56NEJNeklXRndjdUFTTWlCZzhCTXdjakF5RWpFek5vdko0Y25oZ241TGM3ZWtjK0xHazhhSHNXR01rY3lid0NJYmJZdGdPdGpYZkZ0eUFkbWhZZGEyMTNqZnhUQkRvQUZ2KzEvbklJTXdXdUFBMEFIUUFyQURzQVFRQkhBRTBBVXdCY0FHQUFaQUJvQUd3QWNBQjBBSDBBZ1FDRkFJa0FqUUNSQUpVQUFBRTJKaU1pQmc4QkJoWXpNalkzRnpJMk56WW1Md0UrQVRjMkppc0JBeWNPQVNNaUpqOEJQZ0V6TWhZSEJRNEJJeUltTnlNR0ZqTXlOamNUSXdFVE13Y3pCeUUzTXpjekF3RVRJUWNqQnlVM0lRTWpOd0V5RmdjT0FTc0JOd0UzSVFjaE55RUhJVGNoQnhNM0lRY2hOeUVISVRjaEJ3RXpNaFlIRGdFSEl3VWpOek0zSXpjekF5TTNNeVVqTnpNM0l6Y3pBeU0zTXdNa0UyUmFaSWtWRmhSalhXS0pGdDlhYkJFSklpY0JKekVKRDF4YXIyNW9EMVk0UURRUEZnMVlPVDQwRGdOWUNUOGtNU2dMVmhGVlVrOXdFVXhXK1VNL2FTaTJGd1RNRjdrb1p6LzZMemtCSHhlMklnV2tGd0VnT1djaS9Ha3hKZ2dJUEMxMUlnSGdGd0VDRi8yTEZ3RUJGLzJNRndFQUY0b1hBUUlYL1lzWEFRRVgvWXdYQVFBWEFZNVhPeXdJQ0R3dllmMEthVE5wR1dreWFjbHBNbWtHdTJjelp4bG5NbWZKWnpKbkFrUmdlM0pwY0dKNWNXcllTRk10UkEwRERqb3JTMHY5MjloRlRraExjRVJQU1VxYkxEWXBNbEpTVmxVQmV2dFBBVHZLY1hISy9zVUdId0VkZEttcGRQN2pxZnkyS3lzb0s2a0RTblIwZEhSMGRQazRjWEZ4Y1hGeEJGc2RLaVlwQVpiOGZ2cjhGZmwrL0g3Ni9CWDVBQUFBQlFDSC9kVUhmQWhpQUFNQUhRQWhBQ1VBS1FBQUNRTUZQZ0UzUGdFM05pWWpJZ1lITXo0Qk16SVdCdzRCQnc0QkJ4Y2pCek1ETXdjakFUTUhJd1REQXJuN3dmMUtBNVVMSWl4TWNCRWJlNDU2dkJ5OUMwQXBNQ3dLQ3pzd1ZVY1Rxcndpdk5BRUFRUUNHZ1FCQkFaUy9ESDhNUVBQOFRvM0d5aUFVSXlMZzRjME0wQTBOa2dkT1ZaYVc2cjlUQVFLalFRQUFBRUFILy92QTg0RWpRQWVBQUFiQVNFSElRTStBVGMyRmdjT0FTTWlKajhCQmhZek1qWTNOaVlqSWdZSGs4WUNkU0QrS0Y0cGNEYXRraVluNHRLZ3hpRzRFMXhoYVlrWEYwMWlXMjRnQWZrQ2xKNyt3Um9tQWdQR3ZNSERvYUlPWFdGK2NYWjJQRFVBQWdBbkFBQUMxd01oQUFvQUR3QUFBVE1ISXdjak55RTNBVE1CTXhNbkJ3SmhkaGwySDUwZi9ud01BZmFnL2hqalFBTVVBUmgrbXBwaUFpWDk5d0ZDQVJzQUFBQUNBRkgvNndSaUJjVUFEUUFiQUFBQkFnQWpJZ0liQVJJQU16SVNBeWMySmlNaUJnY0RCaFl6TWpZM0ErWTkvdXpRdnJZNFJUd0JGTkRBdERldUtWZC9jNndtVkNwWWZuU3JKd0lzL3RIKzdnRXFBUmNCVndFdUFSVCsxZjdwS05HenhNRCtXOUcxeGNFQUFBQUIvK0QrM3dLekEwRUFEd0FBRVRNeUVnTUNBQ00zTWpZM05pWXJBY1Q3OURZNC92RGZHNFdySmltTnY4UURRZjdRL3UvKzUvNzRrZEsrMHRBQUFBQUFBZjhkL2tzQkpBQ1lBQThBQUNVSERnRWpJaVluTng0Qk16STJQd0VCSkRBbHVaVWJNQmtzRERzUk9GTVRNSmp4dHFZSkNab0ZCMkJjOFFBQUFmOTYvbVlCUGdCQUFCTUFBRGNlQVFjT0FTTWlKaWMzSGdFek1qWTNOaVlucEZoQ0R4YUtZenBaSHpZZExCODJQd2tLTERKQU5JeE5hV1FhRW5jTUR6RXBOazh6QUFBQUFmL0MvcGtBM3dDYUFBTUFBQk1qRXpONHRtZTIvcGtDQVFBQUFBSUJOd1RaQTZFR3pnQU5BQ0VBQUFFT0FTTWlKamN6QmhZek1qWTNFdzRCSXlJbUl5SUdCeWMrQVRNeUZqTXlOamNEZFJXb2czbUZFNU1NTVVZL1VRdStFV3BGTUdjb0hqY0hTdzlxUlNkdktSMDRDQVd1YUcxMlh6aEFSRFFCQ1ZGaVREUWxGVTVuVERNbUFBSUJOd1RnQTJ3SEFnQU5BQjBBQUFFT0FTTWlKamNqQmhZek1qWTNKVGMrQVRjMkppTTNNaFlIRGdFUEFRTGRDbEErUmpJTGpoT0VlSUdrRlA2OEdFZzhCd1pMUHhlSWVRNExWajBPQmJBelFUMDNYWE5yWlJCOEF4Y2dIeDFRU0VjM05nZytBQUFBQWdFM0JOOERnUWFKQUEwQUVRQUFBUTRCSXlJbU56TUdGak15Tmpjbk13Y2pBNEVVcTRaOWlCT1VDelJJUUZNS0s1Uy9Zd1d3Wld4elhqYytRalBaeGdBQUFBQUNBUThFNUFQQUJ0SUFCd0FiQUFBQkl5Y0hJeWNsTXpjT0FTTWlKaU1pQmdjblBnRXpNaFl6TWpZM0E4Q2tsOWVlQVFGSWYrRU9hVUF0WFNVY1BBVkZEV3BBSTJjbEd6b0dCT1NmbndQdzVVUllTREFjRTBKZVJpd2RBQUlCQ3dUa0JLa0d6Z0FHQUJZQUFBRWpBVE0zRnpNbk56NEJOelltSXpjeUZnY09BUThCQXZXMi9zeWozWkdrTnhsQ05RZ0dRamNXZW1zUURWQTNEUVhwL3Z1NnVvbURCUllrSWlGY1VWQS9QZ2M4QUFJQVh3VFNBNzBHZ0FBSEFBc0FBQUVqSndjakp3RXpCU01ETXdPOXYzeTh1UUVCUVpMK2tJZUp3Z1RTbjU4REFRSllBUUVBQUFBQUFnRVhCT1FGSGdhU0FBY0FDd0FBQVRNVEl5Y0hJeWNCTXdNakFscVQyNzk2dkxzQkEwVEQ4SWtGNmY3N241OERBYXYrL3dBQUFBQUNBUTBFcHdPZkJua0FEUUFSQUFBQkRnRWpJaVkzTXdZV016STJOd2NqSnpNRG54ckNsb3FXR0pJT1FGeFNadzVja1p6UkJiQ0JpSkozUjAxVFFRWE9BQUFBQUFFQkx3U1FBa1lHRndBRkFBQUJOek1QQVNNQlRLQmFSeHUxQlNQMC9Zb0FBdi9VQUFBRDZBU05BQWNBQ3dBQUFTRURJd0V6RXlNQklRTW5Bd0grSjVpOEFwNnJ5N3YrVFFGd1VRTUJFUDd3QkkzN2N3R2tBZnNCQUFBQUF3QStBQUFFR2dTTkFBOEFHQUFoQUFBekV5RXlGZ2NPQVFjVkhnRUhEZ0VqQ3dFek1qWTNOaVlqSnpNeU5qYzJKaXNCUHVrQmNyekZIeE50VmxwS0V5VGp2NUpNKzJHQUV4TlNhZUM3YjQ4U0VsOS91d1NObnA5YmZoNERHWkpqc0pnQ0MvNklZRnBnWG9sYlYxOUJBQUVBVGYvdkJFSUVuUUFiQUFBQkJnUWpJZ0kvQVRZQU16SVdCeU0ySmlNaUJnOEJCaFl6TWpZM0E5dzQvdlBBdU5JdUl6QUJNTWk1d3h1MkRWOTJic2tlSXlKdGVHNmFLZ0dPME04QkgrS3M5QUVOMHN1S2Y5R2JyYXJFZ29vQUFBSUFQZ0FBQkVrRWpRQUpBQk1BQURNVElUSVNEd0VHQkNNTEFUTXlOajhCTmlZalB1a0JpTHJnS2lvdS9zdk1CcTdSY05BY0t4MThlZ1NOL3ZQUjB1VDVBL244bXIyTjA1ZXlBQUFCQUQ0QUFBUWRCSTBBQ3dBQUFTRURJUWNoRXlFSElRTWhBMC8rRUUwQ1B4MzlDdWtDOWg3OXdVTUI3d0lWL242VEJJMlUvckFBQUFFQVBnQUFCQjhFalFBSkFBQUJJUU1qRXlFSElRTWhBMHIrRUdXMzZRTDRIdjIvU0FId0FmaitDQVNObFA2VUFBRUFTdi92QkY0RW5RQWZBQUFsRGdFaklnSS9BVFlrTXpJV0R3RTJKaU1pQmc4QkJoWXpNalkvQVNNM0lRUE5PUEtyemVFcU1TMEJOOXJCdWhHMENHVjJmZE1iTVNCOWpsMlFJVEx4SGdHbG5VSnNBUW5WOCtYNHhxUUJiV3E3amZTY3J5MGMvSlVBQVFBK0FBQUVwQVNOQUFzQUFDRWpFeUVESXhNekF5RVRNd083dG1QOThHTzM2YmRwQWhCcHRnSHUvaElFamYzMUFnc0FBQUVBUGdBQUFkMEVqUUFEQUFBekl4TXo5TGJwdGdTTkFBRUFDLy92QTlFRWpRQVBBQUFCTXdNT0FTTWlKamN6QmhZek1qWTNBeDIwb2lYeHFhNjNJN1lYVjJsUGloVUVqZnpVdUxxeXIzRmRlMlFBQUFFQVBnQUFCSEVFalFBTUFBQUJJd01qRXpNRE13RXpDUUVqQWJSYVpiZnB0MlpPQWRIYS9lUUJVK1VCK1A0SUJJMytBZ0grL2RIOW9nQUFBQUVBUGdBQUF2c0VqUUFGQUFBbElRY2hFek1CRWdIcEhmMWc2YmVUa3dTTkFBQUFBQUVBUGdBQUJZNEVqUUFQQUFBbEZ3RXpBeU1USndFakF5TURJeE16QXFRREFnVGo2YldrQS80aWZaY0RwN2ZwNi9jQkE1Zjdjd00xQWZ6S0EwVDh2QVNOQUFBQUFRQStBQUFFdmdTTkFBc0FBQ0VqQVNNREl4TXpBVE1UTXdQVnRQNkVBNjIzNmJjQmV3T3V0QU5oL0o4RWpmeWRBMk1BQUFJQVRmL3ZCRzhFblFBTkFCc0FBQUVHQUNNaUFqOEJOZ0F6TWhJSEp6WW1JeUlHRHdFR0ZqTXlOamNFSHpMKzA5akgxQzRqTVFFdTJNYlVMYlVsYjR0K3hDSWpKbStMZjhNakFmRDYvdmtCRythcytBRUovdVRsQWJxeXdhdXR2TExCclFBQ0FFMy9pd1J2QkowQUV3QWhBQUFCRGdFSEZ3Y25EZ0VqSWdJL0FUWUFNeklTQnljMkppTWlCZzhCQmhZek1qWTNCQjhXVVR4N2tudzdmMGZIMUM0ak1RRXUyTWJVTGJVbGI0dCt4Q0lqSm0rTGY4TWpBZkJzcDBHaWI2QWZIUUViNXF6NEFRbis1T1VCdXJMQnE2Mjhzc0d0QUFJQVBnQUFCRDhFalFBYUFDTUFBQUVESXhNaE1oWUhEZ0VISGdFUEFRNEJGd2NqSmpZL0FUWW1JeWN6TWpZM05pWXJBUUZWWUxmcEFhMjF0aUFWY21WWVBoUVVEQUVUQkxzU0NRd1VFMHRmOWZacmdSSVVVWFQyQWVMK0hnU05zNkpqZUNZZ2ptZGxObHdZRXhwcE8yTmpYcFZoV1dSa0FBRUFJLy92QkRJRW5RQWxBQUFCTmlZbkxnRTNQZ0V6TWhZSEl6WW1JeUlHQndZV0Z4NEJCd1lFSXlJbU56TUdGak15TmdNQUQxMld4NXdlSVBySHVzQWl0UlJoYzIrUkR4QldwTUdiSFNMKy90TzI1U2ExR0lGMGRLRUJMMDVSTER1Umw1K2h1NnhsYm1CTFVFc3VPNWVUcDVxcXZYaGNZUUFBQUFBQkFMMEFBQVFsQkkwQUJ3QUFBU0VESXhNaE55RUVCLzZ6eTdYTC9yZ2VBMG9EK2Z3SEEvbVVBQUFBQUFFQVdQL3ZCTHdFalFBUkFBQUJBd1lFSXlJbU54TXpBd1lXTXpJMk54TUV2SmtyL3QvWnhlRW9tYlNaSEgrRWU3OGFtUVNOL1FIVnl0ekRBdi85QVlpRWpuNEMvd0FBQUFFQXZnQUFCTW9FalFBSkFBQUJId0UzQVRNQkl3TXpBZjBHQXljQjI4TDlaYW5Jd3dFZ1ZRRlVBMi83Y3dTTkFBRUExQUFBQmZJRWpRQVRBQUFCTnpNSEFUTVROek1IQVRNQkl3TWpBU01ETXdHTUFnSUNBWUdwR2dJQ0FnRmJ3LzRGcUNjRC9uNm1LY0lCQ1FrSEE0TDhmQWtIQTRMN2N3TmQvS01FalFBQUFmL2pBQUFFaFFTTkFBc0FBQWtCTXdFVEl3TUJJd0VETXdKVEFWelcvaUgvMUxUK250Z0I3ZnpXQXRjQnR2Mi8vYlFCdi81QkFrd0NRUUFBQVFDMUFBQUVnUVNOQUFnQUFBa0JNd0VESXhNRE13SW9BWTdML2R0U3RWVDB5d0pOQWtEOUR2NWxBYVVDNkFBQUFmLzVBQUFFRmdTTkFBa0FBRGNoQnlFM0FTRTNJUWZ2QW5FZC9MWVhBdzc5eGg0REZCYVRrM0lEaDVSdUFBQUFBZ0JLLys4RUlBU2RBQTBBR3dBQUFRWUVJeUltTnhNMkpETXlGZ2NuTmlZaklnWUhBd1lXTXpJMk53TzBLLzc2dzdUQ0tFVXFBUWpFc3NFbnRSdGVjV2lqR1VVY1lYRm5vaGtCbTlmVjU4VUJWOVRYNThRQmlZMllmdjZvaW8rWmdBQUFBQUVBckFBQUFrMEVuUUFGQUFBaEl4TUhOeVVCWWJYRXdCc0JnZ1BUQTRoRkFBQUFBQUVBRHdBQUE2WUVuUUFZQUFBcEFUY0JQZ0UzTmlZaklnWUhJejRCTXpJV0J3NEJCd0VoQXVYOUtoMEJ6SFZWRFJJOVZGdUdFYllnOGJTYm5pSVlkOFgrM1FIMWt3R1laWEZBWFd0MVZxQy90cWgzZjdEKytnQUJBQ0QvN3dQSkJKMEFLUUFBQVRNeU5qYzJKaU1pQmdjalBnRXpNaFlIRGdFSEhnRUhEZ0VqSWlZM013WVdNekkyTnpZbUt3RTNBWFdjWEhVU0VFOWxUSVFPdFIvdW82bXpIeE55V1ZKSEV5UDN1cGZISXJRUldGNWZqeElXVW11Y0ZRS2FZbFZVWkdKS25hT3JvRm1ESkNXSFlhK25xNmhYYVc5VWJWaHBBQUlBSlFBQUE4a0VqUUFLQUE0QUFBRXpCeU1ISXpjaE53RXpBUk1uQVFNU3R4NjNMN1V2L2VZVUFycTcvcTlwQS81RUFZS1Y3ZTEyQXlyODlRSUpBZjMyQUFBQUFRQWVBQUFFVlFYRkFCZ0FBQ2tCTndFK0FUYzJKaU1pQmdjak5pUXpNaFlIRGdFSEFTRURpL3lUR2dJbWwzTVRGMVptaHEwYnRTa0JHdDZ0dENNYXBwMytRUUtUZ3dJVGthZGJlWTJlamREeDVMR0MycGIrVndBQUFBQUNBRTcvN3dPN0JKMEFHd0FvQUFBQk1oWVhCeTRCSXlJR0R3RVhQZ0V6TWhZSERnRWpJaVkzRXpZa0V5SUdEd0VHRmpNeU5qYzJKZ0xCTzRjNE9qSmpSbXU0R1JRRE5veFVwSm9qSmYyNHByd25QeW9CSWl0UGdTZ0lIRnBrWFpjVUYwOEVuUnNZanhrVnBZQmhBakUweDdLNXhmakVBVGZVNS8yMFFqb3FpcCtJWTNSd0FBQUFBUUM5QUFBRHd3U05BQXdBQUFFR0FnTUhJemNTQURjaE55RURwZVBVT0NXMUpUc0JBc1Q5dXg0QzZBUDU3ZjdJL3VXNXVRRXBBVmJCbEFBQUF3QWovKzhEM3dTZEFCY0FJd0F2QUFBQkRnRUhIZ0VIRGdFaklpWTNQZ0UzTGdFM1BnRXpNaFlCTmlZaklnWUhCaFl6TWpZVE5pWWpJZ1lIQmhZek1qWUR3QlIyVzFoVkV5UCt0S3pSSVJTT2JrNUpFU0h3cjVtNC91RVNhRjVlcEJBVWIyaFltVnNRV0ZCVGl4QVNZRmxLaFFOZFlJRWpLWXhlc0tlMW9taU5KQ2VCVnFhYXAvMVVYV3B4Vm1GbmJnSnBVMTFnVUZaZVpRQUFBZ0J0Lys4RHlBU2RBQnNBS0FBQUpUSTJQd0VuRGdFaklpWTNOaVF6TWhZSEF3WUVJeUltSnpjZUFSTXlOajhCTmlZaklnWUhCaFlCaG1DcUZ4VURNWHhGcmF3akpBRUN0NlMySmtVby92QzhQSWM1T0RSbHEwMkdKUXNiV0dGYW1oTVhVSUtYY0dvQ0x5M1ByclhTOThUK3FNWFdHaGlRR2hVQnBVMDNONG1lbGwxd2Z3QUFBQUVBZndBQUFjRURMQUFGQUFBaEl4TUhOeVVCSDZDRWR4b0JHd0tVQVlJWEFBQUFBQUVBSWdBQUFzd0RMQUFaQUFBcEFUY0JQZ0UzTmlZaklnWUhJejRCTXpJV0J3NEJEd0VYSVFKSC9kc1pBVTFPTndrTEp6azhWUXFkRnJPSWVIb1hFbDZMc0FFQlZYNEJDRDVLTERjOFFqUndoWDkwVjJKd2p3TUFBQUFBQVFBbC8vVUMzZ01zQUNrQUFBRXpNalkzTmlZaklnWUhJejRCTXpJV0J3NEJCeDRCQnc0Qkl5SW1Oek1HRmpNeU5qYzJKaXNCTndFZWV6dEtDd28yUXpGUENKOFZzSHVBaXhZTlVVQTdOQXdadUkxeW1CZWZDamsrUUYwS0RUWkdleEVCMVRzMU1UY3pLV3h2ZDI0OFdoZ2FYRU41Y25WME5EYzhNa1UxVlFBQkFPMEFBQUxTQmJBQUJRQUFJU01UQlRjbEFhKzErZjc2R0FITkJOd0lkMlVBQUFBQkFDdi85UUxvQXlFQUhnQUFHd0VoQnlFSFBnRTNOaFlIRGdFaklpWS9BUVlXTXpJMk56WW1JeUlHQjMyTEFlQWEvcXc4SGs0cGZtd2FHNmlnZXBzWG53eEJRMFpZRGc0MVFUcEtGQUZhQWNlQnZ4SVpBUUtPZ29TR2JtOExOek5IUkVwTUpCOEFBQUlBUVAvMUFzY0RMQUFiQUNnQUFBRXlGaGNITGdFaklnWVBBUmMrQVRNeUZnY09BU01pSmo4QlBnRVRJZ1lQQVFZV016STJOelltQWc0dlpDUXpJMGN4U1hvUURBTWxZejExY2hnWnZvdDlrQnNySGRjcE9Wa1hBUkk5UWo5aERBNDFBeXdURUhzUUQyQlFPd0lnSW94NmY0aXFoOWFUbmY1Wkx5Z0lWbDFOUEVkQ0FBRUFqd0FBQXN3RElRQU1BQUFCRGdFUEFTTTNQZ0UzSVRjaEFyT2dqaVVabmhrb3RuTCtmUmtDSkFLaW9jYThmMy9JOTJSL0FBQUFBd0F1Ly9VQzlRTXNBQmNBSXdBdkFBQUJEZ0VISGdFSERnRWpJaVkzUGdFM0xnRTNQZ0V6TWhZRE5pWWpJZ1lIQmhZek1qWVROaVlqSWdZSEJoWXpNallDNEExVlFqOCtEQmk4aVlLZ0Z3MW1UemsxREJlemhIU081QXRHUHo1ckN3eE1SanBqT2dvNk5qWllDUXRBT2pCVUFsQkJXUmtkWVQ1NmNueHdSV0ViSEZnNmNtcHovaTQ2UDBRMU9qbytBWmN6TWpVd016YzZBQUFBQWdCay8vVUM1Z01zQUJzQUtBQUFKVEkyUHdFbkRnRWpJaVkzUGdFek1oWVBBUTRCSXlJbUp6Y2VBUk15Tmo4Qk5pWWpJZ1lIQmhZQlFVQnVEZ3dESUZFdWdZSVpHTUNLZW8wYUx4dk1qaTFsS3pJbFNYMDFWeE1GRVR4QVBHQUtEelZ6VmtVL0FoNGNrSHA4a2F5RzY0ZVRFaEI3RWcwQkdETWxGMVZlVlRsSVRBQUFBZ0ErLy9VREdBTXNBQTBBR3dBQUFRNEJJeUltUHdFK0FUTXlGZ2NuTmlZaklnWVBBUVlXTXpJMk53TFBIc1dTaDVVY0x4M0Vrb2VWR3FBUVFFdEdadzh2RWtCTlJHY1JBUnVUazU2STY1R1ZvSVlCVkZKWVR1eFhVVmhRQUFBQUFRQzVBb3dES2dNaEFBTUFBQUVoTnlFRERQMnRIZ0pUQW95VkFBTUJLd1JDQXowR2N3QUVBQkFBSEFBQUFUTVhCeU1IUGdFek1oWUhEZ0VqSWlZM0JoWXpNalkzTmlZaklnWUNpcklCOEc2bEQyOUhQa3NPRDJwRVFWRmhDQ1lqSFRrSENDSWhJRHdHY3dPMTEwMVpYMGROVlZ0SEp5MHdKQ2d3TXdBQUFBQUNBUFVFY0FOdUJkWUFCUUFQQUFBQkV6TUhBU01uUGdFM0Z3NEJEd0VqQWdXcHdBVCs3Vlg4RW5CZU96STREaENrQklNQlFoWCt3bFJjaFM4NkxtZEhVQUFBQUFFQUx2L3JCRXNGeFFBckFBQUJQd0l6TWpZM05pWWpJZ1lISXpZa016SVdCdzRCQng0QkJ3WUVJeUltTnpNR0ZqTXlOamMySmlzQkFhWUxBd2lmZElrWUcxaDJaNkVYdFNRQkRNSzB2Q2NWaDNSdVNCVXMvdXpGc3RBbXRocG1lSENsR3g1WmhaOEN3emNQSjRkMWlIdUtjcmphMXNkbHJTNHV0bS9ZMHRpK2Y0S0toNVYyQUFBQ0FDY0FBQVFjQmJBQUNnQVBBQUFCTXdjakF5TVRJVGNCTXdFaEV5Y0hBMXE4SHJ0RXRFVDluaFVESWIvODZ3R2ZqQU1nQWVpVi9xMEJVMnNEOHZ3NEFyd0JPZ0FBQUFBQkFHSC82d1JwQmJBQUh3QUFHd0VoQnlFREZ6NEJOellTQndZRUl5SW1Oek1HRmpNeU5qYzJKaU1pQmdmVzdnS2xJdjMwZndNd2NFZStueTB3L3YzWnBNVXBxeHRqYTIrcElCOWNkMmQySlFLUkF4K3AvbUFCSXl3Q0F2Nzc1TzM0eXNxRWU3S2NtNmxKU1FBQ0FHVC82d1E1QmNVQUd3QW9BQUFCTWhZWEJ5NEJJeUlHRHdFWFBnRXpNaElIQmdBaklnSWJBUklBRXlJR0R3RUdGak15TmpjMkpnTktRNFltUXlsY1JZdnFLQVFEUktKYnJLc3BNZjd0eDc3UU9UazhBVmtnWEpjekZ5eHhmV3V0SHg5ZUJjVWpHcEVhSHZuS0VnRTBPZjd5MFBQKzlnRTBBUmtCSHdFdEFVSDljMVpLY3R6SzBKaWdzQUFBQUFBRC81SCtTZ1JUQkU0QUx3QS9BRTBBQUFFakhnRVBBUVlFSXlJbUp3NEJCd1lXT3dFeUZnY0dCQ01pSmpjK0FUY3VBVGMrQVRjdUFUOEJQZ0V6TWhZWElRRWlKaWNPQVFjR0ZqTXlOamMySmlNREJoWXpNalkvQVRZbUl5SUdCd1E0bGhVTkNnVWgvd0MxSmtJZUd5VUhDalU2b0xLeUhoeit5ZWZDMEJjVWMxTVdFUWtQVUR4Rk9oTUZJZjY1SXo4Z0FXSDg0eFFqRUROTkN4QnNnWWpSRGc5S2RMRVNZbVZhbUJFRkVtRmtYWmdRQTZvcllUWVdvOElLREJRMEpERWprcE9JektKMFpIOG5GanNtVGw4bE1wVllGcW05Q2dyNzlBSUVGMTA5VFZkNlJVOUJBcVJhZG4xVEZsMXplbFlBQUFBQUFRRHJBQUFFaXdXd0FBd0FBQUVJQVFNSEl6Y1NBQk1oTnlFRWJmN1Evd0J0TGJZdGJRRkE4LzB4SGdPQ0JScit4ZjRpL3BpWm1RRmhBaGdCQ0pZQUFBSC96djVNQkZvRVNRQWpBQUFCTWhZZkFRRXpBUk1lQVRNeU5qY0hEZ0VqSWlZbkF3RWpBUU11QVNNaUJpTTNQZ0VCUlc5WkdqTUJTcmIrTEdJUExDa01EQlFoQ3lNTlkxMGVRUDZRd0FJRVRRMDhPUW8wQWh3V09RUkpsSGY3QWZmOUwvNGhTMDBDQTV3R0NYK1FBVDM5eVFNVEFZRlVaQVdTQlFvQUFBQUFBd0ExLytzRVdBWEZBQmNBSXdBdkFBQUJEZ0VISGdFSEJnUWpJaVkzUGdFM0xnRTNQZ0V6TWhZQk5pWWpJZ1lIQmhZek1qWVROaVlqSWdZSEJoWXpNallFTWhxVmNHdG9GeTMrNzh5LzBTa2FySVJkVmhjcSs3MnJ2LzdDR25GMWJyVVlHMjk4YmJGN0YxOWtYNWtYR1Y1b1hKb0VOWDZtS0MrM2V0dkQxTXFJdGlrdHAzSFJ2OUQ4bUlTUm0zcUloWkFESVhlSGkzTjdmb2dBQWdCQS8rc0VrUVJPQUJRQUlnQUFKU2NPQVNNaUFqOEJFZ0F6TWhZWE16Y3pDd0VqQVFZV016STJQd0UySmlNaUJnY0RId05KdzRHdm9DOEVPQUVFd25lUkhRTk1yTkFDclA0U0pWU0haYWxDQ0FwUGJYMjJKZUFCZVgwQklPb1ZBUnNCS1lCNTVmM2kvZVFCOWJYQTJMQW1yTjd5dkFBQUFnQkIwOTBwVHdXd0FCb0FLd0FBQVFjaEZnQUJGaElQQVFZQUl5SUNQd0UySkRjNkFSY21BaWMzQXdZV016STJQd0UySmljdUFTTWlCZ2NFUlIzK1hnOG11dG5OaVhNZkJEUCszOWpId1M4RUtRRU8wZ2dQQ2diWEtoZUlKVnlLZkxzaEJCazZQaE1uR0liREh3V3draDNPM0RCOG52NzNuaGo5L3V3QktlZ1l6UGtaQVFjQkJVRnkvRXl5eXRtakdIMnFOZ1lHMEprQUFBQUFBZ0JZQUFBRStRV3dBQWtBRXdBQU13RWhJQklEQndJQUlSTURNekkyUHdFMkppTllBU01CWGdFdThqd3hRdjYyL3JaYzU2blgvaTR4TVpUcUJiRCt6LzdTOC82Mi91d0ZHdnQ3NCtiMjk4OEFBQUFBQWdBMy8rc0QvUVJPQUNBQUt3QUFJVFEyTnljT0FTTWlKamMrQVRzQk56WW1JeUlHQnlNK0FUTXlGZ2NERGdFWEpUSTJQd0VqSWdZSEJoWUNvQU1EQWtHdFhacUlJU1QvMmJVY0ZGZHNaWUFQdFJ6aTA3V3FJMjBOQ1FUK09WZXJMQzY3ZTVzVEVEb3NOeHNCUUZTZ29iYVdpV1pSWVVtT3NwK3cvZHM5WmplS1VUbmtibUpUU3dBQUFBQUNBRmNBQUFUdUJhOEFEZ0FYQUFBQkRnRUhFd2NqQXlFREl3RWhNaFlCSVRJMk56WW1JeUVFeGgyZWZjUUV5NnYrc0h1MkFTTUIyTkxLL0xnQkpJR3NHaHRua2Y3ZUJBdUx1eS85ZkJJQ2F2MldCYS9hL2lxT2dJaUZBQUVBV0FBQUJWZ0ZzQUFOQUFBQkJ3TWpBVE1ERnpjQk13a0JJd0l1dTJhMUFTTzFrQU80QWkzUS9Xa0J0dU1DcTYzK0FnV3cvVEVDclFJay9ZUDh6UUFCQURZQUFBUXhCaGdBRFFBQUFRY0RJd0V6QXhjM0FUTUpBU01CdklWTHRnRTR0cjREZGdGNTJmNGJBVFhXQWZCNC9vZ0dHUHhMQVhJQlp2NDUvWTBBQVFCWUFBQUZWZ1d3QUFzQUFBRURJd0V6QXpNQk13a0JJd0dYaXJVQkk3V0NEQUs3NGYwSkFmcmZBckw5VGdXdy9YZ0NpUDA1L1JjQUFBQUFBUUEyQUFBRUZBWVlBQXdBQUFFakF5TUJNd01YQVRNSkFTTUJWQVJrdGdFNHRyVURBYmZyL2VvQlp0OEI5UDRNQmhqOGVBRUJxLzRPL2JnQUFnQjkvK3NFVndYRkFCc0FLQUFBSlRJMlB3RW5EZ0VqSWdJM05nQXpNaElMQVFJQUl5SW1KemNlQVJNeU5qOEJOaVlqSWdZSEJoWUJwWURUS3dZRE9aTlh2TG93TVFFa3RzdkVOa2crL3N2ZlJaQTFPRFJ3eDJLZU1CNHFYNGxpdXlBaldvRFoxeDBCUkVBQkNPejNBUkQrNWY3cy9weit6ZjdzSEIrUUhSa0IzMlJObU5LMXo2S3Nzd0FDQUQ0QUFBUkRCSTBBQ2dBVEFBQUJBeU1USVRJV0J3NEJJeWN6TWpZM05pWXJBUUZKVkxmcEFiS3l1Q0FsOThQZS9HaVFFaFJVY2ZzQnB2NWFCSTNRcExQQWxJSmJaWDBBQUFELy93RUxCS1VEVHdXd0FnWUFuQUFBLy84QUFBQUFBQUFBQUFJR0FBTUFBUC8vQUQ0Q0lRSWpBcllDQmdBUEFBQUFBZ0JlQUFBRk93V3dBQTBBR3dBQU14TWpOek1USVNBQUF3Y0NBQ0VUSVFNaE1oSS9BVFlDS3dFRElYYUZuUjZkZ0FGNkFRQUJLRGNuUHY2cy91OTMvdjluQVEreDh5c29MTC9IeFdJQkFRS2FsUUtCL3BUKzdjWCt6ZjdIQXByOSt3RUIxc2plQVFqK0ZRQUFBZ0JlQUFBRk93V3dBQTBBR3dBQU14TWpOek1USVNBQUF3Y0NBQ0VUSVFNaE1oSS9BVFlDS3dFRElYYUZuUjZkZ0FGNkFRQUJLRGNuUHY2cy91OTMvdjluQVEreDh5c29MTC9IeFdJQkFRS2FsUUtCL3BUKzdjWCt6ZjdIQXByOSt3RUIxc2plQVFqK0ZRQUFBUUJUQUFBRU53WVlBQndBQUFFakF4YytBVE15RmdjREl4TTJKaU1pQmdjREl4TWpOek0zTXdjekF2ejhPQU5BcEY2Ymp5dUh0WWdlVDI5Smp6bWV0dmVoSHFBa3RpVDlCTkwrNlFKSVRkRFovVnNDcDVaM1ZFajg2QVRTbGJHeEFBQUFBQUVBN0FBQUJRc0ZzQUFQQUFBQkl3TWpFeU0zTXhNaE55RUhJUU16QTdITHBMV2sweDdUUS81YUhnUUJIdjVhUThzRE52ektBemFWQVUrV2x2NnhBQUFCQUFmLzdBS2tCVUVBSHdBQUFRTXpCeU1ITXdjakF3WVdNekkyTndjT0FTTWlKamNUSXpjek55TTNNeE1DR2pXL0hMOG0xUjdWUUJJa0t4UXpFd0ljWFN4all5QkF5QjdJSm8wY2pUVUZRZjc1amI2Vi9yMVdPUWdGZ3hFVmo1d0JRNVcralFFSC8vLy8xUUFBQkg4SElnSW1BQ01BQUFBSEFFSUJhd0ZkLy8vLzFRQUFCTU1ISHdJbUFDTUFBQUFIQUhNQ0Z3RlovLy8vMVFBQUJJMEhSZ0ltQUNNQUFBQUhBSm9CQmdGZC8vLy8xUUFBQk5RSFVRSW1BQ01BQUFBSEFLQUJKUUZnLy8vLzFRQUFCTXdIREFJbUFDTUFBQUFIQUdnQkJ3RmMvLy8vMVFBQUJIOEhpQUltQUNNQUFBQUhBSjRCa2dHby8vLy8xUUFBQk1ZSG53SW1BQ01BQUFBSEFkUUJpUUVzLy84QVl2NUVCUGdGeFFBbUFDVUFBQUFIQUhjQnQvLzMvLzhBV0FBQUJQSUhJZ0ltQUNjQUFBQUhBRUlCTndGZC8vOEFXQUFBQlBJSEh3SW1BQ2NBQUFBSEFITUI0d0ZaLy84QVdBQUFCUElIUmdJbUFDY0FBQUFIQUpvQTBnRmQvLzhBV0FBQUJQSUhEQUltQUNjQUFBQUhBR2dBMHdGYy8vOEFZZ0FBQWtRSElnSW1BQ3NBQUFBSEFFTC8vQUZkLy84QVlnQUFBMU1ISHdJbUFDc0FBQUFIQUhNQXB3RlovLzhBWWdBQUF4NEhSZ0ltQUNzQUFBQUhBSnIvbHdGZC8vOEFZZ0FBQTEwSERBSW1BQ3NBQUFBSEFHai9tQUZjLy84QVdBQUFCWG9IVVFJbUFEQUFBQUFIQUtBQlRnRmcvLzhBWHYvckJUWUhOd0FtQURFQUFBQUhBRUlCakFGeS8vOEFYdi9yQlRZSE5BQW1BREVBQUFBSEFITUNPQUZ1Ly84QVh2L3JCVFlIV3dBbUFERUFBQUFIQUpvQkp3RnkvLzhBWHYvckJUWUhaZ0FtQURFQUFBQUhBS0FCUmdGMS8vOEFYdi9yQlRZSElRQW1BREVBQUFBSEFHZ0JLQUZ4Ly84QVovL3JCVmNISWdJbUFEY0FBQUFIQUVJQmR3RmQvLzhBWi8vckJWY0hId0ltQURjQUFBQUhBSE1DSXdGWi8vOEFaLy9yQlZjSFJnSW1BRGNBQUFBSEFKb0JFZ0ZkLy84QVovL3JCVmNIREFJbUFEY0FBQUFIQUdnQkV3RmMvLzhBN2dBQUJWTUhIUUltQURzQUFBQUhBSE1CNlFGWC8vOEFPdi9zQS9jRjRBSW1BRU1BQUFBSEFFSUFzd0FiLy84QU92L3NCQXNGM1FJbUFFTUFBQUFIQUhNQlh3QVgvLzhBT3Yvc0EvY0dCQUltQUVNQUFBQUdBSnBPR3dBQS8vOEFPdi9zQkJ3R0R3SW1BRU1BQUFBR0FLQnRIZ0FBLy84QU92L3NCQlFGeWdJbUFFTUFBQUFHQUdoUEdnQUEvLzhBT3Yvc0EvY0dSZ0ltQUVNQUFBQUhBSjRBMmdCbS8vOEFPdi9zQkE0R1hnSW1BRU1BQUFBSEFkUUEwZi9yLy84QVIvNUVBL3NFVGdJbUFFVUFBQUFIQUhjQk9mLzMvLzhBUi8vc0Erc0Y0UUltQUVjQUFBQUhBRUlBa1FBYy8vOEFSLy9zQStzRjNnSW1BRWNBQUFBSEFITUJQUUFZLy84QVIvL3NBK3NHQlFJbUFFY0FBQUFHQUpvc0hBQUEvLzhBUi8vc0EvSUZ5d0ltQUVjQUFBQUdBR2d0R3dBQS8vOEFQZ0FBQWQwRnl3SW1BSW9BQUFBR0FFS1ZCZ0FBLy84QVBnQUFBdXdGeUFJbUFJb0FBQUFHQUhOQUFnQUEvLzhBUGdBQUFyY0Y3d0ltQUlvQUFBQUhBSnIvTUFBRy8vOEFQZ0FBQXZZRnRRSW1BSW9BQUFBSEFHai9NUUFGLy84QU5RQUFCRElHRHdJbUFGQUFBQUFIQUtBQWd3QWUvLzhBUnYvc0JCd0Y0QUltQUZFQUFBQUhBRUlBcHdBYi8vOEFSdi9zQkJ3RjNRSW1BRkVBQUFBSEFITUJVd0FYLy84QVJ2L3NCQndHQkFJbUFGRUFBQUFHQUpwQ0d3QUEvLzhBUnYvc0JCd0dEd0ltQUZFQUFBQUdBS0JoSGdBQS8vOEFSdi9zQkJ3RnlnSW1BRkVBQUFBR0FHaERHZ0FBLy84QVd2L3NCRHNGeXdJbUFGY0FBQUFIQUVJQXhnQUcvLzhBV3Yvc0JEc0Z5QUltQUZjQUFBQUhBSE1CY2dBQy8vOEFXdi9zQkRzRjd3SW1BRmNBQUFBR0FKcGhCZ0FBLy84QVd2L3NCRHNGdFFJbUFGY0FBQUFHQUdoaUJRQUEvLy8vdlA1TEJDb0Z5QUltQUZzQUFBQUhBSE1CTlFBQy8vLy92UDVMQkNvRnRRSW1BRnNBQUFBR0FHZ2xCUUFBLy8vLzFRQUFCTjRHK2dJbUFDTUFBQUFIQUc0QkpnRksvLzhBT3Yvc0JDWUZ1QUltQUVNQUFBQUdBRzV1Q0FBQS8vLy8xUUFBQkxBSFRBSW1BQ01BQUFBSEFKd0JZUUdjLy84QU92L3NBL2dHQ2dJbUFFTUFBQUFIQUp3QXFRQmFBQUwvMWY1UUJIOEZzQUFhQUI0QUFBRXpFeU1PQVFjR0ZqTXlOamNIRGdFaklpWTNQZ0UzQXlFREl3RWhBeWNEQkp2Z0pWZGlDUVliS0Jrd0Z3Y2dUREpQV0E4TFkxODAvYzdTdUFIYkFjMWNBd1d3K2xBK1pEd2xKUkVMZUJNWlkxcEpmVFlCZS81OEFoa0NvQUVBQUFBQ0FEcitVQVAzQkU0QU5BQS9BQUFoTkRZM0p3NEJJeUltTnpZa093RTNOaVlqSWdZSEl6WWtNeklXQndNT0FSY2pEZ0VIQmhZek1qWTNCdzRCSXlJbU56NEJOeVV5Tmo4Qkl5SUdCd1lXQXFBRUJRTkNybDJXaVI0aUFRSFF2aFlWVjJkWWpnNjFHd0VBdHFTMUltZ05DUVFUVjJJSkJoc29HVEFYQnlCTU1rOVlEd3RiV1A3d1Y2MHZLTU5ycEJBUlFUTStId0ZJWGF5V3FLSnVhV2xrUm9XN3U2Lzk5ajFtTno1a1BDVWxFUXQ0RXhsaldrWjVOSXRnUk1sN1UxQlBBQUQvL3dCaS8rc0UrQWMwQUNZQUpRQUFBQWNBY3dJaEFXNy8vd0JILyt3RCt3WGRBaVlBUlFBQUFBY0Fjd0VxQUJmLy93QmkvK3NFK0FkYkFDWUFKUUFBQUFjQW1nRVFBWEwvL3dCSC8rd0Qrd1lFQWlZQVJRQUFBQVlBbWhrYkFBRC8vd0JpLytzRStBY2lBQ1lBSlFBQUFBY0FuUUhSQVhMLy93QkgvK3dEK3dYTEFpWUFSUUFBQUFjQW5RRGFBQnYvL3dCaS8rc0UrQWRjQUNZQUpRQUFBQWNBbXdFbUFYUC8vd0JILyt3RCt3WUZBaVlBUlFBQUFBWUFteThjQUFELy93QllBQUFGSFFkSEFDWUFKZ0FBQUFjQW13RGdBVjcvL3dCRS8rc0Z3d1lZQUNZQVJnQUFBQWNCa1FTZ0JTei8vd0JZQUFBRThnYjZBaVlBSndBQUFBY0FiZ0R5QVVyLy93QkgvK3dFQkFXNUFpWUFSd0FBQUFZQWJrd0pBQUQvL3dCWUFBQUU4Z2RNQWlZQUp3QUFBQWNBbkFFdEFaei8vd0JILyt3RDZ3WUxBaVlBUndBQUFBY0FuQUNIQUZ2Ly93QllBQUFFOGdjTkFpWUFKd0FBQUFjQW5RR1RBVjMvL3dCSC8rd0Q2d1hNQWlZQVJ3QUFBQWNBblFEdEFCd0FBUUJZL2xBRThnV3dBQ0FBQUFFaEF5RUhJdzRCQndZV016STJOd2NPQVNNaUpqYytBVGNuSVFFaEJ5RURJUVFDL1pKcEFzd2VORmRpQ1FZYktCa3dGd2NnVERKUFdBOExXbFFCL1YwQkl3TjNIdjArWUFKdUFxYjk3NVUrWkR3bEpSRUxlQk1aWTFwR2VESURCYkNXL2lJQUFBQUNBRWYrWkFQckJFNEFLUUF4QUFBbERnRUhEZ0VIQmhZek1qWTNCdzRCSXlJbU56NEJOeWNtQWo4Qk5nQXpNaElQQVNFR0ZqTXlOamNESWdZSElUYzJKZ05iSVZNMFUxNElCaHNvR1RBWEJ5Qk1NazlZRHdnL09RSEl5aWNISndFcHRNZXJJeFA5YkJocmgxcVhQTWRhb0NrQjJnUVRXWEVlTXhJN1lqc2xKUkVMZUJNWlkxbzVZeXdEQXdFcDd5MzFBU1grKzkxNXJjVTVNZ0xNcW9ZYWZaa0EvLzhBV0FBQUJQSUhSd0ltQUNjQUFBQUhBSnNBNkFGZS8vOEFSLy9zQStzR0JnSW1BRWNBQUFBR0FKdENIUUFBLy84QWFQL3JCUThIV3dJbUFDa0FBQUFIQUpvQkJnRnkvLzhBTi81TEJEMEdCQUltQUVrQUFBQUdBSnBXR3dBQS8vOEFhUC9yQlE4SFlRSW1BQ2tBQUFBSEFKd0JZUUd4Ly84QU4vNUxCRDBHQ2dJbUFFa0FBQUFIQUp3QXNRQmEvLzhBYVAvckJROEhJZ0ltQUNrQUFBQUhBSjBCeHdGeS8vOEFOLzVMQkQwRnl3SW1BRWtBQUFBSEFKMEJGd0FiLy84QWFQM2xCUThGeFFJbUFDa0FBQUFIQVpFQlJ2NjIvLzhBTi81TEJEMEdiUUltQUVrQUFBQUhBYVVCS0FCVy8vOEFXQUFBQlhrSFJnSW1BQ29BQUFBSEFKb0JLUUZkLy84QU5RQUFCQmtIUlFJbUFFb0FBQUFIQUpvQVl3RmMvLzhBWWdBQUEyVUhVUUltQUNzQUFBQUhBS0QvdGdGZy8vOEFQZ0FBQXY0RitnSW1BSW9BQUFBSEFLRC9Ud0FKLy84QVlnQUFBMjhHK2dJbUFDc0FBQUFIQUc3L3R3RksvLzhBUGdBQUF3Z0ZwQUltQUlvQUFBQUhBRzcvVVAvMC8vOEFZZ0FBQTBFSFRBSW1BQ3NBQUFBSEFKei84Z0djLy84QVBnQUFBdG9GOVFJbUFJb0FBQUFHQUp5TFJRQUEvLy8vbXY1WUFqb0ZzQUltQUNzQUFBQUdBSi9qQ0FBQS8vLy9lLzVRQWpFR0dBSW1BRXNBQUFBR0FKL0VBQUFBLy84QVlnQUFBb2dIRFFJbUFDc0FBQUFIQUowQVZ3RmQvLzhBWXYvckJuWUZzQUFtQUNzQUFBQUhBQ3dDSkFBQS8vOEFSUDVMQkNFR0dBQW1BRXNBQUFBSEFFd0I2QUFBLy84QUQvL3JCU3dIT1FJbUFDd0FBQUFIQUpvQnBRRlEvLy8vRy81TEFzUUYzQUltQUpnQUFBQUhBSnIvUGYvei8vOEFQdjMxQlRVRnNBQW1BQzBBQUFBSEFaRUJJUDdHLy84QU52MzNCQ2dHR0FJbUFFMEFBQUFIQVpFQXhQN0kvLzhBV0FBQUE2MEc0QUltQUM0QUFBQUhBSE1BandFYS8vOEFSQUFBQTBNSFhBSW1BRTRBQUFBSEFITUFsd0dXLy84QVdQMzNBNjBGc0FJbUFDNEFBQUFIQVpFQkd2N0kvLy8vcVAzM0FqRUdHQUltQUU0QUFBQUhBWkgvd3Y3SS8vOEFXQUFBQTlVRnNRSW1BQzRBQUFBSEFaRUNzZ1RGLy84QVJBQUFBM0lHR0FBbUFFNEFBQUFIQVpFQ1R3VXMvLzhBV0FBQUE2MEZzQUltQUM0QUFBQUhBSjBCTlAzRi8vOEFSQUFBQXVrR0dBQW1BRTRBQUFBSEFKMEF1UDIzLy84QVdBQUFCWG9ISHdJbUFEQUFBQUFIQUhNQ1FBRlovLzhBTlFBQUJDRUYzUUltQUZBQUFBQUhBSE1CZFFBWC8vOEFXUDMzQlhvRnNBSW1BREFBQUFBSEFaRUJkLzdJLy84QU5mMzNCQmdFVGdJbUFGQUFBQUFIQVpFQTdQN0kvLzhBV0FBQUJYb0hSd0ltQURBQUFBQUhBSnNCUlFGZS8vOEFOUUFBQkNNR0JRSW1BRkFBQUFBR0FKdDZIQUFBLy84QU5RQUFCQmdHR0FJbUFGQUFBQUFIQVpFQWl3VXMvLzhBWHYvckJUWUhEd0FtQURFQUFBQUhBRzRCUndGZi8vOEFSdi9zQkJ3RnVBSW1BRkVBQUFBR0FHNWlDQUFBLy84QVh2L3JCVFlIWVFBbUFERUFBQUFIQUp3QmdnR3gvLzhBUnYvc0JCd0dDZ0ltQUZFQUFBQUhBSndBblFCYS8vOEFYdi9yQlprSFlBQW1BREVBQUFBSEFLRUJxZ0Z5Ly84QVJ2L3NCTFFHQ1FJbUFGRUFBQUFIQUtFQXhRQWIvLzhBVndBQUJRSUhId0ltQURRQUFBQUhBSE1CM0FGWi8vOEFOUUFBQTRjRjNRSW1BRlFBQUFBSEFITUEyd0FYLy84QVYvMzNCUUlGcndJbUFEUUFBQUFIQVpFQkUvN0kvLy8vcHYzM0F3MEVUZ0ltQUZRQUFBQUhBWkgvd1A3SS8vOEFWd0FBQlFJSFJ3SW1BRFFBQUFBSEFKc0E0UUZlLy84QU5RQUFBNG9HQlFJbUFGUUFBQUFHQUp2aEhBQUEvLzhBUS8vckJNQUhOQUFtQURVQUFBQUhBSE1CMWdGdS8vOEFPLy9zQTlNRjNRSW1BRlVBQUFBSEFITUJKd0FYLy84QVEvL3JCTUFIV3dBbUFEVUFBQUFIQUpvQXhRRnkvLzhBTy8vc0E4a0dCQUltQUZVQUFBQUdBSm9XR3dBQS8vOEFRLzVFQk1BRnhRQW1BRFVBQUFBSEFIY0JiUC8zLy84QU8vNUZBOGtFVGdJbUFGVUFBQUFIQUhjQk4vLzQvLzhBUS8zakJNQUZ4UUFtQURVQUFBQUhBWkVCQlA2MC8vOEFPLzNrQThrRVRnSW1BRlVBQUFBSEFaRUF6LzYxLy84QVEvL3JCTUFIWEFBbUFEVUFBQUFIQUpzQTJ3RnovLzhBTy8vc0E5VUdCUUltQUZVQUFBQUdBSnNzSEFBQS8vOEE3UDMxQlFzRnNBSW1BRFlBQUFBSEFaRUJEUDdHLy84QVJmM3RBcVFGUVFJbUFGWUFBQUFIQVpFQVgvNisvLzhBN1A1VkJRc0ZzQUltQURZQUFBQUhBSGNCZEFBSS8vOEFiLzVOQXFRRlFRSW1BRllBQUFBSEFIY0F4d0FBLy84QTdBQUFCUXNIUmdJbUFEWUFBQUFIQUpzQTJnRmQvLzhBYi8vc0E3UUdNUUFtQUZZQUFBQUhBWkVDa1FWRi8vOEFaLy9yQlZjSFVRSW1BRGNBQUFBSEFLQUJNUUZnLy84QVd2L3NCRHNGK2dJbUFGY0FBQUFIQUtBQWdBQUovLzhBWi8vckJWY0crZ0ltQURjQUFBQUhBRzRCTWdGSy8vOEFXdi9zQkRzRnBBSW1BRmNBQUFBSEFHNEFnZi8wLy84QVovL3JCVmNIVEFJbUFEY0FBQUFIQUp3QmJRR2MvLzhBV3Yvc0JEc0Y5UUltQUZjQUFBQUhBSndBdkFCRi8vOEFaLy9yQlZjSGlBSW1BRGNBQUFBSEFKNEJuZ0dvLy84QVd2L3NCRHNHTVFJbUFGY0FBQUFIQUo0QTdRQlIvLzhBWi8vckJZUUhTd0ltQURjQUFBQUhBS0VCbFFGZC8vOEFXdi9zQk5NRjlBSW1BRmNBQUFBSEFLRUE1QUFHQUFFQVovNXVCVmNGc0FBb0FBQUJBdzRCQnc0QkJ3WVdNekkyTndjT0FTTWlKamMrQVRjbklnWWpJaVkzRXpNREJoWXpNalkzRXdWWHhTVzRqRTVjQ1FZYktCa3dGd2NnVERKUFdBOElPVFFCQkJZRzF1MHd4YmJGSllxV2tlSWl4UVd3L0NXMjJqSTNZemtsSlJFTGVCTVpZMW8yWGlvREFmenVBOXY4SmJhZnJhZ0Qyd0FBQUFBQkFGcitVQVE3QkRvQUp3QUFJUTRCQndZV016STJOd2NPQVNNaUpqYytBVDhCSnc0Qkl5SW1OeE16QXdZV016STJOeE16QXdOaVYySUpCaHNvR1RBWEJ5Qk1NazlZRHdwZVdSSURQNkpsblpNd2Y3Wi9Ka05wWDVNem03WFlQbVE4SlNVUkMzZ1RHV05hUm5vMWp3RlNWT0h3QW4zOWdiNTNXMU1EQnZ2Ry8vOEE3QUFBQnV3SFJnSW1BRGtBQUFBSEFKb0JuQUZkLy84QXNnQUFCZm9GN3dJbUFGa0FBQUFIQUpvQkZRQUcvLzhBN2dBQUJWTUhSQUltQURzQUFBQUhBSm9BMkFGYi8vLy92UDVMQkNvRjd3SW1BRnNBQUFBR0FKb2tCZ0FBLy84QTdnQUFCVk1IQ2dJbUFEc0FBQUFIQUdnQTJRRmEvLzhBSUFBQUJIMEhId0FtQUR3QUFBQUhBSE1CMFFGWi8vOEFDQUFBQStvRnlBSW1BRndBQUFBSEFITUJQZ0FDLy84QUlBQUFCRnNIRFFBbUFEd0FBQUFIQUowQmdRRmQvLzhBQ0FBQUE5OEZ0Z0ltQUZ3QUFBQUhBSjBBN2dBRy8vOEFJQUFBQkg4SFJ3QW1BRHdBQUFBSEFKc0ExZ0ZlLy84QUNBQUFBK3dGOEFJbUFGd0FBQUFHQUp0REJ3QUEvLy8vbmdBQUIzVUhId0ltQUg4QUFBQUhBSE1EQVFGWi8vOEFCUC9yQm1BRjNnSW1BSVFBQUFBSEFITUNlZ0FZLy84QUp2K2pCV3NIWFFJbUFJRUFBQUFIQUhNQ01RR1gvLzhBVFA5NUJEZ0YzQUltQUljQUFBQUhBSE1CVUFBVy8vOEFDd0FBQkVrRWpRSW1BYWtBQUFBSEFkUC9Vdjk3Ly84QUN3QUFCRWtFalFJbUFha0FBQUFIQWRQL1V2OTcvLzhBdlFBQUJDVUVqUUltQWJnQUFBQUdBZE1vOXdBQS8vLy8xQUFBQStnRjN3SW1BYVlBQUFBSEFFSUEyUUFhLy8vLzFBQUFCREVGM0FJbUFhWUFBQUFIQUhNQmhRQVcvLy8vMUFBQUEvc0dBd0ltQWFZQUFBQUdBSnAwR2dBQS8vLy8xQUFBQkVJR0RnSW1BYVlBQUFBSEFLQUFrd0FkLy8vLzFBQUFCRG9GeVFJbUFhWUFBQUFHQUdoMUdRQUEvLy8vMUFBQUErZ0dSUUltQWFZQUFBQUhBSjRCQUFCbC8vLy8xQUFBQkRRR1hRSW1BYVlBQUFBSEFkUUE5Ly9xLy84QVRmNUhCRUlFblFJbUFhZ0FBQUFIQUhjQlUvLzYvLzhBUGdBQUJCMEYzd0ltQWFvQUFBQUhBRUlBcWdBYS8vOEFQZ0FBQkIwRjNBSW1BYW9BQUFBSEFITUJWZ0FXLy84QVBnQUFCQjBHQXdJbUFhb0FBQUFHQUpwRkdnQUEvLzhBUGdBQUJCMEZ5UUltQWFvQUFBQUdBR2hHR1FBQS8vOEFQZ0FBQWQ4RjN3SW1BYTRBQUFBR0FFS1hHZ0FBLy84QVBnQUFBdTRGM0FJbUFhNEFBQUFHQUhOQ0ZnQUEvLzhBUGdBQUFya0dBd0ltQWE0QUFBQUhBSnIvTWdBYS8vOEFQZ0FBQXZnRnlRSW1BYTRBQUFBSEFHai9Nd0FaLy84QVBnQUFCTDRHRGdJbUFiTUFBQUFIQUtBQXNRQWQvLzhBVGYvdkJHOEY3d0ltQWJRQUFBQUhBRUlBM1FBcS8vOEFUZi92Qkc4RjdBSW1BYlFBQUFBSEFITUJpUUFtLy84QVRmL3ZCRzhHRXdJbUFiUUFBQUFHQUpwNEtnQUEvLzhBVGYvdkJHOEdIZ0ltQWJRQUFBQUhBS0FBbHdBdC8vOEFUZi92Qkc4RjJRSW1BYlFBQUFBR0FHaDVLUUFBLy84QVdQL3ZCTHdGNEFJbUFia0FBQUFIQUVJQTlRQWIvLzhBV1AvdkJMd0YzUUltQWJrQUFBQUhBSE1Cb1FBWC8vOEFXUC92Qkx3R0JBSW1BYmtBQUFBSEFKb0FrQUFiLy84QVdQL3ZCTHdGeWdJbUFia0FBQUFIQUdnQWtRQWEvLzhBdFFBQUJJRUYyd0ltQWIwQUFBQUhBSE1CV0FBVi8vLy8xQUFBQkV3RnR3SW1BYVlBQUFBSEFHNEFsQUFILy8vLzFBQUFCQjRHQ1FJbUFhWUFBQUFIQUp3QXp3QlpBQUwvMVA1UUErZ0VqUUFhQUI0QUFBRVRJdzRCQndZV016STJOd2NPQVNNaUpqYytBVGNuSVFNakFRTWhBeWNESGNzM1YySUpCaHNvR1RBWEJ5Qk1NazlZRHd0cVppbitKNWk4QXA3NEFYQlJBd1NOKzNNK1pEd2xKUkVMZUJNWlkxcE1nRGovL3ZBRWpmMFhBZnNCQVAvL0FFMy83d1JDQmV3Q0pnR29BQUFBQndCekFYb0FKdi8vQUUzLzd3UkNCaE1DSmdHb0FBQUFCZ0NhYVNvQUFQLy9BRTMvN3dSQ0Jkb0NKZ0dvQUFBQUJ3Q2RBU29BS3YvL0FFMy83d1JDQmhRQ0pnR29BQUFBQmdDYmZ5c0FBUC8vQUQ0QUFBUkpCZ1FDSmdHcEFBQUFCZ0NiTGhzQUFQLy9BRDRBQUFRZEJiY0NKZ0dxQUFBQUJnQnVaUWNBQVAvL0FENEFBQVFkQmdrQ0pnR3FBQUFBQndDY0FLQUFXZi8vQUQ0QUFBUWRCY29DSmdHcUFBQUFCd0NkQVFZQUdnQUJBRDcrVUFRZEJJMEFJQUFBQVNFRElRY2pEZ0VIQmhZek1qWTNCdzRCSXlJbU56NEJOeWNoRXlFSElRTWhBMC8rRUUwQ1B4MUNWMklKQmhzb0dUQVhCeUJNTWs5WUR3dGFWQUg5OXVrQzloNzl3VU1CN3dJVi9uNlRQbVE4SlNVUkMzZ1RHV05hUm5neUF3U05sUDZ3QUFBQS8vOEFQZ0FBQkIwR0JBSW1BYW9BQUFBR0FKdGJHd0FBLy84QVN2L3ZCRjRHRXdJbUFhd0FBQUFHQUpwektnQUEvLzhBU3YvdkJGNEdHUUltQWF3QUFBQUhBSndBemdCcC8vOEFTdi92QkY0RjJnSW1BYXdBQUFBSEFKMEJOQUFxLy84QVN2M25CRjRFblFJbUFhd0FBQUFIQVpFQTkvNjQvLzhBUGdBQUJLUUdBd0ltQWEwQUFBQUdBSnA3R2dBQS8vOEFQZ0FBQXdBR0RnSW1BYTRBQUFBSEFLRC9VUUFkLy84QVBnQUFBd29GdHdJbUFhNEFBQUFIQUc3L1VnQUgvLzhBUGdBQUF0d0dDUUltQWE0QUFBQUdBSnlOV1FBQS8vLy9jLzVRQWQwRWpRSW1BYTRBQUFBR0FKKzhBQUFBLy84QVBnQUFBaVFGeWdJbUFhNEFBQUFHQUozekdnQUEvLzhBQy8vdkJLWUYrUUltQWE4QUFBQUhBSm9CSHdBUS8vOEFQdjN6QkhFRWpRSW1BYkFBQUFBSEFaRUFyUDdFLy84QVBnQUFBdnNGd1FJbUFiRUFBQUFHQUhORCt3QUEvLzhBUHYzMUF2c0VqUUltQWJFQUFBQUhBWkVBalA3Ry8vOEFQZ0FBQXhBRWpnSW1BYkVBQUFBSEFaRUI3UU9pLy84QVBnQUFBdnNFalFJbUFiRUFBQUFIQUowQWlmMG0vLzhBUGdBQUJMNEYzQUltQWJNQUFBQUhBSE1Cb3dBVy8vOEFQdjMxQkw0RWpRSW1BYk1BQUFBSEFaRUJHdjdHLy84QVBnQUFCTDRHQkFJbUFiTUFBQUFIQUpzQXFBQWIvLzhBVGYvdkJHOEZ4d0ltQWJRQUFBQUhBRzRBbUFBWC8vOEFUZi92Qkc4R0dRSW1BYlFBQUFBSEFKd0Ewd0JwLy84QVRmL3ZCT29HR0FJbUFiUUFBQUFIQUtFQSt3QXEvLzhBUGdBQUJEOEYzQUltQWJZQUFBQUhBSE1CT1FBVy8vOEFQdjMxQkQ4RWpRSW1BYllBQUFBSEFaRUFzUDdHLy84QVBnQUFCRDhHQkFJbUFiWUFBQUFHQUpzK0d3QUEvLzhBSS8vdkJESUY3QUltQWJjQUFBQUhBSE1CWkFBbS8vOEFJLy92QkRJR0V3SW1BYmNBQUFBR0FKcFRLZ0FBLy84QUkvNUhCRElFblFJbUFiY0FBQUFIQUhjQlBmLzYvLzhBSS8vdkJESUdGQUltQWJjQUFBQUdBSnRwS3dBQS8vOEFsLzMxQkNVRWpRSW1BYmdBQUFBSEFaRUFzZjdHLy84QXZRQUFCQ1VHQXdJbUFiZ0FBQUFHQUpzL0dnQUEvLzhBV1AvdkJMd0dEd0ltQWJrQUFBQUhBS0FBcndBZS8vOEFXUC92Qkx3RnVBSW1BYmtBQUFBSEFHNEFzQUFJLy84QVdQL3ZCTHdHQ2dJbUFia0FBQUFIQUp3QTZ3QmEvLzhBV1AvdkJMd0dSZ0ltQWJrQUFBQUhBSjRCSEFCbS8vOEFXUC92QlFJR0NRSW1BYmtBQUFBSEFLRUJFd0FiQUFFQVdQNTdCTHdFalFBb0FBQUJBdzRCQnc0QkJ3WVdNekkyTndjT0FTTWlKamMrQVRjbklnWWpJaVkzRXpNREJoWXpNalkzRXdTOG1SMlFjRkJiQ0FZYktCa3dGd2NnVERKUFdBOEhOQzRCQlEwTHhlRW9tYlNaSEgrRWU3OGFtUVNOL1FHTHN6QTVZRG9sSlJFTGVCTVpZMW96V2lnREFkekRBdi85QVlpRWpuNEMvd0FBQVAvL0FOUUFBQVh5QmdNQ0pnRzdBQUFBQndDYUFRd0FHdi8vQUxVQUFBU0JCZ0lDSmdHOUFBQUFCZ0NhUnhrQUFQLy9BTFVBQUFTQkJjZ0NKZ0c5QUFBQUJnQm9TQmdBQVAvLy8va0FBQVFXQmR3Q0pnRytBQUFBQndCekFUY0FGdi8vLy9rQUFBUVdCY29DSmdHK0FBQUFCd0NkQU9jQUd2Ly8vL2tBQUFRV0JnUUNKZ0crQUFBQUJnQ2JQQnNBQVAvL0FDUC83d2hkQkowQUpnRzNBQUFBQndHM0JDc0FBUC8vLzlVQUFBUi9CbmdDSmdBakFBQUFCZ0NwUEFBQUFQLy9BSnNBQUFWV0Jub0FKZ0FuWkFBQUJ3Q3AvemNBQXYvL0FMd0FBQVhkQm5vQUpnQXFaQUFBQndDcC8yTUFBdi8vQU1ZQUFBS2VCbmtBSmdBclpBQUFCd0NwLzJjQUFmLy9BSEwvNndWS0JuZ0FKZ0F4RkFBQUJnQ3BtZ0FBQVAvL0FFa0FBQVczQm5nQUpnQTdaQUFBQndDcC91VUFBUC8vQURFQUFBVWNCbmdBSmdDMUZBQUFCZ0NwaEFBQUFQLy9BR3ovNndNa0JqOENKZ0MrQUFBQUJ3Q3EveXYvdC8vLy85VUFBQVIvQmJBQ0JnQWpBQUQvL3dCWUFBQUUwQVd3QWdZQUpBQUEvLzhBV0FBQUJQSUZzQUlHQUNjQUFQLy9BQ0FBQUFSYkJiQUFCZ0E4QUFELy93QllBQUFGZVFXd0FnWUFLZ0FBLy84QVlnQUFBam9Gc0FJR0FDc0FBUC8vQUQ0QUFBVTFCYkFBQmdBdEFBRC8vd0JZQUFBR3N3V3dBZ1lBTHdBQS8vOEFXQUFBQlhvRnNBSUdBREFBQVAvL0FGNy82d1UyQmNVQUJnQXhBQUQvL3dCWUFBQUZHQVd3QWdZQU1nQUEvLzhBN0FBQUJRc0ZzQUlHQURZQUFQLy9BTzRBQUFWVEJiQUNCZ0E3QUFELy8vLzhBQUFGSFFXd0FnWUFPZ0FBLy84QVlnQUFBMTBIREFJbUFDc0FBQUFIQUdqL21BRmMvLzhBN2dBQUJWTUhDZ0ltQURzQUFBQUhBR2dBMlFGYS8vOEFRUC9yQkRRR2VnSW1BTFlBQUFBSEFLa0JXd0FDLy84QUtmL3RBLzBHZVFJbUFMb0FBQUFIQUtrQkZnQUIvLzhBTmY1aEJCSUdlZ0ltQUx3QUFBQUhBS2tCTUFBQy8vOEFmdi9yQXRRR1pnSW1BTDRBQUFBR0FLa3E3Z0FBLy84QVd2L3JCQVVHUHdJbUFNWUFBQUFHQUtvTXR3QUEvLzhBUGdBQUJHQUVPZ0lHQUlzQUFQLy9BRWIvN0FRY0JFNENCZ0JSQUFELy8vL3IvbUFFTXdRNkFnWUFkQUFBLy84QWx3QUFCQW9FT2dJR0FGZ0FBUC8vLytrQUFBUHhCRG9DQmdCYUFBRC8vd0IrLytzREpRVzFBaVlBdmdBQUFBY0FhUDlnQUFYLy93QmEvK3NFQmdXMUFpWUF4Z0FBQUFZQWFFRUZBQUQvL3dCRy8rd0VIQVo2QWlZQVVRQUFBQWNBcVFFT0FBTC8vd0JhLytzRDlBWm1BaVlBeGdBQUFBY0FxUUVNLys3Ly93QmQvK3NGN0FaakFpWUF5UUFBQUFjQXFRSWovK3YvL3dCWUFBQUU4Z2NNQWlZQUp3QUFBQWNBYUFEVEFWei8vd0JYQUFBRXVRY2ZBaVlBckFBQUFBY0Fjd0hoQVZrQUFRQkQvK3NFd0FYRkFDVUFBQUUySmljdUFUYzJKRE15Rmdjak5pWWpJZ1lIQmhZWEhnRUhCZ1FqSWlRM013WVdNekkyQTM0WWNMUFdzU2dqQVFYRDJPa3F0aHlKa21tZEVScG11OXV3SnlYKzljelovdU13dFNPNG1tcXJBVXgzaEVKSXk4YXhzdXpXaTZGMFYzOTNSMC9IdzdpcjF1dXJnWElBLy84QVlnQUFBam9Gc0FJR0FDc0FBUC8vQUdJQUFBTmRCd3dDSmdBckFBQUFCd0JvLzVnQlhQLy9BQS8vNndSU0JiQUNCZ0FzQUFELy93QStBQUFGTlFXd0FBWUFMUUFBLy84QVBnQUFCVFVHeHdBbUFDMEFBQUFIQUhNQnhRRUIvLzhBby8vckJVVUhUQUltQU5rQUFBQUhBSndCUGdHYy8vLy8xUUFBQkg4RnNBSUdBQ01BQVAvL0FGZ0FBQVRRQmJBQ0JnQWtBQUQvL3dCWEFBQUV1UVd3QWdZQXJBQUEvLzhBV0FBQUJQSUZzQUlHQUNjQUFQLy9BRmdBQUFWNkIwd0NKZ0RYQUFBQUJ3Q2NBWTRCblAvL0FGZ0FBQWF6QmJBQ0JnQXZBQUQvL3dCWUFBQUZlUVd3QWdZQUtnQUEvLzhBWHYvckJUWUZ4UUFHQURFQUFQLy9BRmdBQUFWN0JiQUNCZ0N4QUFELy93QllBQUFGR0FXd0FnWUFNZ0FBLy84QVl2L3JCUGdGeFFBR0FDVUFBUC8vQU93QUFBVUxCYkFDQmdBMkFBRC8vLy84QUFBRkhRV3dBZ1lBT2dBQS8vOEFPdi9zQS9jRVRnSUdBRU1BQVAvL0FFZi83QVByQkU0Q0JnQkhBQUQvL3dCQUFBQUVSd1gxQWlZQTZ3QUFBQWNBbkFESUFFWC8vd0JHLyt3RUhBUk9BZ1lBVVFBQS8vLy80djVnQkNZRVRnSUdBRklBQUFBQkFFZi83QVA3QkU0QUd3QUFKVEkyTnpNR0JDTWlBajhCTmdBek1oWUhJelltSXlJR0R3RUdGZ0h4V3FBUHJCbis4cWJYdXlVSEp3RVI0YTdCR3F3UWFtZU5wQm9ISEZXQmVGeWF6d0V5NmlyMUFTZmVxbXlHNHFRcXNkWUFBUC8vLzd6K1N3UXFCRG9DQmdCYkFBRC8vLy9wQUFBRDhRUTZBZ1lBV2dBQS8vOEFSLy9zQS9JRnl3SW1BRWNBQUFBR0FHZ3RHd0FBLy84QVBnQUFBNVVGeUFJbUFPY0FBQUFIQUhNQTV3QUMvLzhBTy8vc0E4a0VUZ0lHQUZVQUFQLy9BRVFBQUFJeEJoZ0NCZ0JMQUFELy93QStBQUFDOWdXMUFpWUFpZ0FBQUFjQWFQOHhBQVgvLy84ZC9rc0NPUVlZQWdZQVRBQUEvLzhBUUFBQUJHRUZ4d0ltQU93QUFBQUhBSE1CVFFBQi8vLy92UDVMQkNvRjlRSW1BRnNBQUFBR0FKeC9SUUFBLy84QTdBQUFCdXdISWdJbUFEa0FBQUFIQUVJQ0FRRmQvLzhBc2dBQUJmb0Z5d0ltQUZrQUFBQUhBRUlCZWdBRy8vOEE3QUFBQnV3SEh3SW1BRGtBQUFBSEFITUNyUUZaLy84QXNnQUFCZm9GeUFJbUFGa0FBQUFIQUhNQ0pnQUMvLzhBN0FBQUJ1d0hEQUltQURrQUFBQUhBR2dCblFGYy8vOEFzZ0FBQmZvRnRRSW1BRmtBQUFBSEFHZ0JGZ0FGLy84QTdnQUFCVk1ISUFJbUFEc0FBQUFIQUVJQlBRRmIvLy8vdlA1TEJDb0Z5d0ltQUZzQUFBQUhBRUlBaVFBRy8vOEF4Z1FqQWFnR0dBSUdBQWtBQVAvL0FNVUVGQUs5QmhnQ0JnQUVBQUQvL3dCUEFBQUVKUVd3QUNZRUhBQUFBQWNFSEFIOUFBRC8vd0NLQUFBRXpBWXRBQ1lBU0FBQUFBY0FUZ0tiQUFELy8vOGIva3NDL0FYZEFpWUFtQUFBQUFjQW0vOVQvL1QvL3dDeEErY0NJQVlZQWdZQlpnQUEvLzhBV0FBQUJyTUhId0ltQUM4QUFBQUhBSE1DM3dGWi8vOEFOUUFBQmxzRjNRSW1BRThBQUFBSEFITUNyd0FYLy8vLzFmNkhCSDhGc0FJbUFDTUFBQUFIQUtJQk9RQUEvLzhBT3Y2SEEvY0VUZ0ltQUVNQUFBQUhBS0lBa2dBQS8vOEFBZi9yQlRZR29nQW1BREVBQUFBSEFkWC9EQURNLy84QWlnQUFCcklHTFFBbUFFZ0FBQUFIQVpJQ213QUEvLzhBaWdBQUIyY0dMUUFtQUVnQUFBQW5BRWdDbXdBQUFBY0FUZ1UyQUFELy93QllBQUFFOGdjaUFpWUFKd0FBQUFjQVFnRTNBVjMvL3dCWUFBQUZlZ2NpQWlZQTF3QUFBQWNBUWdHWUFWMy8vd0JILyt3RDZ3WGhBaVlBUndBQUFBY0FRZ0NSQUJ6Ly93QkFBQUFFUndYTEFpWUE2d0FBQUFjQVFnRFNBQWIvL3dDS0FBQUZrZ1d3QWdZQXRBQUEvLzhBUS80cEJTNEVPZ0lHQU1nQUFQLy9BT2dBQUFWY0IwY0NKZ0VVQUFBQUJ3Q25CREVCV2YvL0FMTUFBQVJMQmg4Q0pnRVZBQUFBQndDbkE1Z0FNZi8vQUViK1N3aHVCRTRBSmdCUkFBQUFCd0JiQkVRQUFQLy9BRjcrU3dsbEJjVUFKZ0F4QUFBQUJ3QmJCVHNBQVAvL0FDRCtVUVN3QmNVQ0pnRFdBQUFBQndHY0FYRC91UC8vQUI3K1VnUEVCRXdDSmdEcUFBQUFCd0djQVNEL3VmLy9BR0wrVVFUNEJjVUFKZ0FsQUFBQUJ3R2NBYi8vdVAvL0FFZitVUVA3QkU0Q0pnQkZBQUFBQndHY0FVSC91UC8vQU80QUFBVlRCYkFDQmdBN0FBRC8vd0N6L21BRUpnUTZBZ1lBdUFBQS8vOEFZZ0FBQWpvRnNBSUdBQ3NBQVAvLy84b0FBQWRkQjB3Q0pnRFZBQUFBQndDY0Frd0JuUC8vLzhNQUFBWUJCZlVDSmdEcEFBQUFCd0NjQWFRQVJmLy9BR0lBQUFJNkJiQUNCZ0FyQUFELy8vL1ZBQUFFc0FkTUFpWUFJd0FBQUFjQW5BRmhBWnovL3dBNi8rd0QrQVlLQWlZQVF3QUFBQWNBbkFDcEFGci8vLy9WQUFBRXpBY01BaVlBSXdBQUFBY0FhQUVIQVZ6Ly93QTYvK3dFRkFYS0FpWUFRd0FBQUFZQWFFOGFBQUQvLy8rZUFBQUhkUVd3QWdZQWZ3QUEvLzhBQlAvckJtQUVUZ0lHQUlRQUFQLy9BRmdBQUFUeUIwd0NKZ0FuQUFBQUJ3Q2NBUzBCblAvL0FFZi83QVByQmdzQ0pnQkhBQUFBQndDY0FJY0FXLy8vQUViLzZ3VkFCdDRDSmdGQkFBQUFCd0JvQU1zQkx2Ly9BRHovN0FQMkJFOENCZ0NaQUFELy93QTgvK3dFRmdYTEFpWUFtUUFBQUFZQWFGRWJBQUQvLy8vS0FBQUhYUWNNQWlZQTFRQUFBQWNBYUFIeUFWei8vLy9EQUFBR0FRVzFBaVlBNlFBQUFBY0FhQUZLQUFYLy93QWcvK3NFc0FjaEFpWUExZ0FBQUFjQWFBRENBWEgvL3dBZS8rMEQ4Z1hKQWlZQTZnQUFBQVlBYUMwWkFBRC8vd0JZQUFBRmVnYjZBaVlBMXdBQUFBY0FiZ0ZUQVVyLy93QkFBQUFFUndXa0FpWUE2d0FBQUFjQWJnQ04vL1QvL3dCWUFBQUZlZ2NNQWlZQTF3QUFBQWNBYUFFMEFWei8vd0JBQUFBRVJ3VzFBaVlBNndBQUFBWUFhRzRGQUFELy93QmUvK3NGTmdjaEFDWUFNUUFBQUFjQWFBRW9BWEgvL3dCRy8rd0VIQVhLQWlZQVVRQUFBQVlBYUVNYUFBRC8vd0JkLytzRk53WEZBZ1lCRWdBQS8vOEFSdi9zQkJ3RVRnSUdBUk1BQVAvL0FGMy82d1UzQndjQ0pnRVNBQUFBQndCb0FTY0JWLy8vQUViLzdBUWVCZVlDSmdFVEFBQUFCZ0JvV1RZQUFQLy9BSWYvN0FVMEJ5SUNKZ0RpQUFBQUJ3Qm9BUlFCY3YvL0FEUC82d1FOQmNvQ0pnRDZBQUFBQmdCb1NCb0FBUC8vQUtQLzZ3VkZCdm9DSmdEWkFBQUFCd0J1QVFNQlN2Ly8vN3orU3dRcUJhUUNKZ0JiQUFBQUJnQnVSUFFBQVAvL0FLUC82d1ZGQnd3Q0pnRFpBQUFBQndCb0FPUUJYUC8vLzd6K1N3UXFCYlVDSmdCYkFBQUFCZ0JvSlFVQUFQLy9BS1AvNndWVkIwc0NKZ0RaQUFBQUJ3Q2hBV1lCWGYvLy83eitTd1NXQmZRQ0pnQmJBQUFBQndDaEFLY0FCdi8vQU5FQUFBVklCd3dDSmdEY0FBQUFCd0JvQVFzQlhQLy9BSDhBQUFRR0JiVUNKZ0QwQUFBQUJnQm9Md1VBQVAvL0FGY0FBQWFpQnd3QUpnRGhEd0FBSndBckJHZ0FBQUFIQUdnQnlBRmMvLzhBUUFBQUJhc0Z0UUFtQVBrQUFBQW5BSW9EM2dBQUFBY0FhQUVqQUFYLy8vLzgva3NGSFFXd0FpWUFPZ0FBQUFjQm1nTitBQUQvLy8vcC9rc0Q4UVE2QWlZQVdnQUFBQWNCbWdLV0FBRC8vd0JFLytzRWxRWVlBZ1lBUmdBQS8vLy8zdjVMQlhFRnNBSW1BTmdBQUFBSEFab0QvQUFBLy8vLzFmNUxCRWtFT2dJbUFPMEFBQUFIQVpvREh3QUEvLy8vMWY2eEJIOEZzQUltQUNNQUFBQUhBS2dFckFBQS8vOEFPdjZ4QS9jRVRnSW1BRU1BQUFBSEFLZ0VCUUFBLy8vLzFRQUFCSDhIeGdJbUFDTUFBQUFIQUtZRTVRRlQvLzhBT3Yvc0EvY0doQUltQUVNQUFBQUhBS1lFTFFBUi8vLy8xUUFBQmc0SHFBSW1BQ01BQUFBSEFhTUE4QUVXLy84QU92L3NCVllHWndJbUFFTUFBQUFHQWFNNDFRQUEvLy8vMVFBQUJMY0hwUUltQUNNQUFBQUhBYUlBK2dFbC8vOEFPdi9zQS84R1pBSW1BRU1BQUFBR0FhSkM1QUFBLy8vLzFRQUFCWjRIMndJbUFDTUFBQUFIQWFFQTlRRU4vLzhBT3Yvc0JPWUdtZ0ltQUVNQUFBQUdBYUU5ekFBQS8vLy8xUUFBQkxZSDVRSW1BQ01BQUFBSEFhQUE5Z0VULy84QU92L3NBLzRHcEFJbUFFTUFBQUFHQWFBKzBnQUEvLy8vMWY2eEJJMEhSZ0ltQUNNQUFBQW5BSm9CQmdGZEFBY0FxQVNzQUFELy93QTYvckVEOXdZRUFpWUFRd0FBQUNZQW1rNGJBQWNBcUFRRkFBQUFBUC8vLzlVQUFBU3FCOTBDSmdBakFBQUFCd0dmQVNrQlZQLy9BRHIvN0FQM0Jwc0NKZ0JEQUFBQUJnR2ZjUklBQVAvLy85VUFBQVRPQitBQ0pnQWpBQUFBQndHa0FTOEJaLy8vQURyLzdBUVdCcDRDSmdCREFBQUFCZ0drZHlVQUFQLy8vOVVBQUFTVkNFc0NKZ0FqQUFBQUJ3R2VBU2tCU2YvL0FEci83QVAzQndrQ0pnQkRBQUFBQmdHZWNRY0FBUC8vLzlVQUFBVE1DQjhDSmdBakFBQUFCd0dkQVNzQlVmLy9BRHIvN0FRVUJ0MENKZ0JEQUFBQUJnR2RjdzhBQVAvLy85WCtzUVN3QjB3Q0pnQWpBQUFBSndDY0FXRUJuQUFIQUtnRXJBQUEvLzhBT3Y2eEEvZ0dDZ0ltQUVNQUFBQW5BSndBcVFCYUFBY0FxQVFGQUFELy93QlkvcnNFOGdXd0FpWUFKd0FBQUFjQXFBUjNBQXIvL3dCSC9yRUQ2d1JPQWlZQVJ3QUFBQWNBcUFSUkFBRC8vd0JZQUFBRThnZkdBaVlBSndBQUFBY0FwZ1N4QVZQLy93QkgvK3dENndhRkFpWUFSd0FBQUFjQXBnUUxBQkwvL3dCWUFBQUU4Z2RSQWlZQUp3QUFBQWNBb0FEeEFXRC8vd0JILyt3RCtnWVFBaVlBUndBQUFBWUFvRXNmQUFELy93QllBQUFGMmdlb0FpWUFKd0FBQUFjQm93QzhBUmIvL3dCSC8rd0ZOQVpvQWlZQVJ3QUFBQVlCb3hiV0FBRC8vd0JZQUFBRThnZWxBaVlBSndBQUFBY0JvZ0RHQVNYLy93QkgvK3dENndabEFpWUFSd0FBQUFZQm9pRGxBQUQvL3dCWUFBQUZhZ2ZiQWlZQUp3QUFBQWNCb1FEQkFRMy8vd0JILyt3RXhBYWJBaVlBUndBQUFBWUJvUnZOQUFELy93QllBQUFFOGdmbEFpWUFKd0FBQUFjQm9BRENBUlAvL3dCSC8rd0Q2d2FsQWlZQVJ3QUFBQVlCb0J6VEFBRC8vd0JZL3JzRThnZEdBaVlBSndBQUFDY0FtZ0RTQVYwQUJ3Q29CSGNBQ3YvL0FFZitzUVByQmdVQ0pnQkhBQUFBSmdDYUxCd0FCd0NvQkZFQUFBQUEvLzhBWWdBQUF3b0h4Z0ltQUNzQUFBQUhBS1lEZFFGVC8vOEFQZ0FBQXFNR2NBSW1BSW9BQUFBSEFLWUREdi85Ly84QUYvNjVBam9Gc0FJbUFDc0FBQUFIQUtnRE93QUkvLy8vK3Y2N0FqRUdHQUltQUVzQUFBQUhBS2dESGdBSy8vOEFYdjZwQlRZRnhRQW1BREVBQUFBSEFLZ0V3Ly80Ly84QVJ2Nm9CQndFVGdJbUFGRUFBQUFIQUtnRVYvLzMvLzhBWHYvckJUWUgyd0FtQURFQUFBQUhBS1lGQmdGby8vOEFSdi9zQkJ3R2hBSW1BRkVBQUFBSEFLWUVJUUFSLy84QVh2L3JCaThIdlFBbUFERUFBQUFIQWFNQkVRRXIvLzhBUnYvc0JVb0dad0ltQUZFQUFBQUdBYU1zMVFBQS8vOEFYdi9yQlRZSHVnQW1BREVBQUFBSEFhSUJHd0U2Ly84QVJ2L3NCQndHWkFJbUFGRUFBQUFHQWFJMjVBQUEvLzhBWHYvckJiOEg4QUFtQURFQUFBQUhBYUVCRmdFaS8vOEFSdi9zQk5vR21nSW1BRkVBQUFBR0FhRXh6QUFBLy84QVh2L3JCVFlIK2dBbUFERUFBQUFIQWFBQkZ3RW8vLzhBUnYvc0JCd0dwQUltQUZFQUFBQUdBYUF5MGdBQS8vOEFYdjZwQlRZSFd3QW1BREVBQUFBbkFKb0JKd0Z5QUFjQXFBVEQvL2ovL3dCRy9xZ0VIQVlFQWlZQVVRQUFBQ1lBbWtJYkFBY0FxQVJYLy9jQUFQLy9BRm4vNndZbEJ3OENKZ0NVQUFBQUJ3QnpBaVFCU2YvL0FFYi83QVVKQmQwQ0pnQ1ZBQUFBQndCekFYZ0FGLy8vQUZuLzZ3WWxCeElDSmdDVUFBQUFCd0JDQVhnQlRmLy9BRWIvN0FVSkJlQUNKZ0NWQUFBQUJ3QkNBTXdBRy8vL0FGbi82d1lsQjdZQ0pnQ1VBQUFBQndDbUJQSUJRLy8vQUViLzdBVUpCb1FDSmdDVkFBQUFCd0NtQkVZQUVmLy9BRm4vNndZbEIwRUNKZ0NVQUFBQUJ3Q2dBVElCVVAvL0FFYi83QVVKQmc4Q0pnQ1ZBQUFBQndDZ0FJWUFIdi8vQUZuK3NRWWxCallDSmdDVUFBQUFCd0NvQkxFQUFQLy9BRWIrcUFVSkJMQUNKZ0NWQUFBQUJ3Q29CRWovOS8vL0FHZitxZ1ZYQmJBQ0pnQTNBQUFBQndDb0JMTC8rZi8vQUZyK3NRUTdCRG9DSmdCWEFBQUFCd0NvQkFzQUFQLy9BR2YvNndWWEI4WUNKZ0EzQUFBQUJ3Q21CUEVCVS8vL0FGci83QVE3Qm5BQ0pnQlhBQUFBQndDbUJFRC8vZi8vQUdmLzZ3YWxCeDhDSmdDV0FBQUFCd0J6QWlJQldmLy9BRnIvN0FWWEJjZ0NKZ0NYQUFBQUJ3QnpBWElBQXYvL0FHZi82d2FsQnlJQ0pnQ1dBQUFBQndCQ0FYWUJYZi8vQUZyLzdBVlhCY3NDSmdDWEFBQUFCd0JDQU1ZQUJ2Ly9BR2YvNndhbEI4WUNKZ0NXQUFBQUJ3Q21CUEFCVS8vL0FGci83QVZYQm5BQ0pnQ1hBQUFBQndDbUJFRC8vZi8vQUdmLzZ3YWxCMUVDSmdDV0FBQUFCd0NnQVRBQllQLy9BRnIvN0FWWEJmb0NKZ0NYQUFBQUJ3Q2dBSUFBQ2YvL0FHZitxUWFsQmcwQ0pnQ1dBQUFBQndDb0JMSC8rUC8vQUZyK3NRVlhCSkVDSmdDWEFBQUFCd0NvQkFzQUFQLy9BTzcrdXdWVEJiQUNKZ0E3QUFBQUJ3Q29CSDBBQ3YvLy83eitGQVFxQkRvQ0pnQmJBQUFBQndDb0JLai9ZLy8vQU80QUFBVlRCOFFDSmdBN0FBQUFCd0NtQkxjQlVmLy8vN3orU3dRcUJuQUNKZ0JiQUFBQUJ3Q21CQVAvL2YvL0FPNEFBQVZUQjA4Q0pnQTdBQUFBQndDZ0FQY0JYdi8vLzd6K1N3UXFCZm9DSmdCYkFBQUFCZ0NnUXdrQUFBQUNBRVQvNndVbUJoZ0FHZ0FvQUFBQkl3TWpOeWNPQVNNaUFqOEJHZ0V6TWhZWEV5TTNNemN6QnpNQkJoWXpNalkzRXk0Qkl5SUdCd1VJdFBlZENRTThrRml3cmk4RU9PN0JXSWNyTitvZTZTUzFKTFg4QXlSaGlVeDFNMlViYTFSOG55WUUwdnN1YUFJL1FBRTA2aFVCSEFFVVNFVUJFWld4c2Z5aXM5RlRUd0g2UkUvWnZRRC8vd0FUL3U0RkpnWVlBQ1lBUmdBQUFDY0Iwd0g4QWtZQUJnQkJmWU1BQVAvL0FENyttUVUxQmJBQUpnQXRBQUFBQndHY0EvUUFBUC8vQUVEK21RUmhCRG9DSmdEc0FBQUFCd0djQXhNQUFQLy9BRmorbVFWNUJiQUNKZ0FxQUFBQUJ3R2NCQndBQVAvL0FFRCttUVJHQkRvQ0pnRHZBQUFBQndHY0F6UUFBUC8vQU96K21RVUxCYkFDSmdBMkFBQUFCd0djQWdnQUFQLy9BSkQrbVFQM0JEb0NKZ0R4QUFBQUJ3R2NBWmdBQVAvLy8veittUVVkQmJBQ0pnQTZBQUFBQndHY0E1WUFBUC8vLytuK21RUHhCRG9DSmdCYUFBQUFCd0djQXE0QUFQLy9BTkgrbVFWSUJiQUNKZ0RjQUFBQUJ3R2NBK3NBQVAvL0FILyttUVFHQkRzQ0pnRDBBQUFBQndHY0F2TUFBUC8vQU5IK21RVklCYkFDSmdEY0FBQUFCd0djQXQ4QUFQLy9BSC8rbVFRR0JEc0NKZ0QwQUFBQUJ3R2NBZVlBQVAvL0FGZittUVM1QmJBQ0pnQ3NBQUFBQndHY0FOTUFBUC8vQUQ3K21RT1ZCRG9DSmdEbkFBQUFCd0djQUpzQUFQLy8vOHIrbVFkZEJiQUNKZ0RWQUFBQUJ3R2NCZUVBQVAvLy84UCttUVlCQkRvQ0pnRHBBQUFBQndHY0JLb0FBUC8vQUs3K1ZBWHVCY01DSmdFN0FBQUFCd0djQXNuL3UvLy9BQ1grV0FSUkJFNENKZ0U4QUFBQUJ3R2NBZEwvdi8vL0FEVUFBQVFaQmhnQ0JnQktBQUFBQWdCSUFBQUVrZ1d3QUJJQUd3QUFBU01ISVRJV0J3WUVJeUVUSXpjek56TUhNd0VESVRJMk56WW1Jd0t2MVRFQlRzL01KeXYrN2VIOS9OeklIc2dwdGluVi9yNXZBVTZEc0JrWlo0OEVVUGptd3RUY0JGQ1Z5OHY5M3YzU28zcUFrUUFBQUFJQVNBQUFCSklGc0FBU0FCc0FBQUVqQnlFeUZnY0dCQ01oRXlNM016Y3pCek1CQXlFeU5qYzJKaU1DcjlVeEFVN1B6Q2NyL3UzaC9memN5QjdJS2JZcDFmNitid0ZPZzdBWkdXZVBCRkQ0NXNMVTNBUlFsY3ZML2Q3OTBxTjZnSkVBQUFBQkFEUUFBQVM1QmJBQURRQUFBU01ESXhNak56TVRJUWNoQXpNQ2gvS0l0b2lySHF0OUF6OGUvWGRmOGdLcy9WUUNySlVDYjViK0p3QUFBQUFCQUFvQUFBT1ZCRG9BRFFBQUFTRURJeE1qTnpNVElRY2hBeUVDWGY3Mlg3WmZreDZUV3dKL0h2NDNQUUVLQWQvK0lRSGZsUUhHbC83UkFBQUJBRklBQUFWSkJiQUFGQUFBQVNNREl4TWpOek0zTXdjekJ5TURNd0V6Q1FFakFoYUpoTGZuckI2c0hyY2U4Qjd3UkpRQ0krYjlhd0dFendLVi9Xc0VoWldXbHBYK3J3SjgvU2o5S0FBQUFBRUFTZ0FBQkR3R0dBQVVBQUFCSXdNakV5TTNNemN6QnpNSEl3TXpBVE1KQVNNQjNIaGt0dlBHSHNZbnRpZlhIdGR4ZGdGdTF2NURBUmJXQWZiK0NnVEJsY0xDbGYzTUFhMytFLzJ6QUFELy93Qlkvb29GZWdkTUFpWUExd0FBQUNjQW5BR09BWndBQndBT0JDei92di8vQUVEK2lnUkhCZlVDSmdEckFBQUFKd0NjQU1nQVJRQUhBQTREUlArKy8vOEFXUDZLQlhrRnNBSW1BQ29BQUFBSEFBNEVLLysrLy84QVFQNktCRVlFT2dJbUFPOEFBQUFIQUE0RFEvKysvLzhBV1A2S0JyTUZzQUltQUM4QUFBQUhBQTRGWmYrKy8vOEFRUDZLQlg4RU9nSW1BTzRBQUFBSEFBNEVmUCsrLy8vLzN2NktCWEVGc0FJbUFOZ0FBQUFIQUE0RUkvKysvLy8vMWY2S0JFa0VPZ0ltQU8wQUFBQUhBQTREUnYrK0FBRUE3Z0FBQlZNRnNBQVFBQUFKQVRNQk13Y2pCd01qRXljak56TURNd0tOQWZmUC9kcHlIcjBKWjdScUFkc2VrTzdRQXMwQzQvejJsUTM5L0FJUUFaVURDZ0FBQVFCdC9tQUVKZ1E2QUJFQUFBVWpBeU1USXpjekF6TVRGek0zQVRNQk13TEEwbEcyVWNzZXM0dTVWd0VESkFHQ3VmMy91UXorYkFHVWxRT3gvUUJUVXdNQS9FOEFBQUFBQWYvOEFBQUZIUVd3QUJFQUFBRWpBU01EQVNNQkl6Y3pBVE1UQVRNQk13TzBuUUVtMSt2K1hkd0IvSmNlaGY3cjJkOEJtOXYrSHBjQ252MWlBa2o5dUFLZWxRSjkvY01DUGYyREFBSC82UUFBQS9FRU9nQVJBQUFCSXhNakF3RWpBU00zTXdNekV3RXpBVE1ERHB2YTBKNyszZE1CZGFNZWs4elJsUUVZMC82a2x3SGgvaDhCbnY1aUFlR1ZBY1QrYlFHVC9qd0FBUC8vQUNuLzdRUDlCRXdDQmdDNkFBRC8vLy84QUFBRStRV3dBaVlBS0FBQUFBY0IwLzlEL243Ly93RUFBb3dHQ1FNaEFFWUJoclVBWm1aQUFBQUNBRThBQUFJb0JiQUFBd0FIQUFBQkl4TXpBU00zTXdGbHRzTzIvdDIyS0xZQjNnUFMrbERJQUFBQUFBQUFBQUFBQUFBQUFBQWNBRlFBbWdENkFWZ0JhZ0dRQWJZQjJBSDBBZ29DR0FJa0FqSUNhQUo2QXFnQzdBTVFBMFlEakFPc0Evb0VRQVJNQkZnRWRBU0tCS1lFMmdWT0JXd0ZxQVhjQmdnR0pBWStCbllHa0FhZUJyd0cyZ2JzQnhRSExnZGtCNHdIeWdnSUNFWUlYQWlBQ0pvSXhnam1DUDRKRmdrc0NUb0pVQWxvQ1hZSmhBbktDZ0lLTWdwcUNxQUt5QXNRQ3pnTFRBdHlDNUFMbmd2Y0RBSU1OQXhzREtRTXhBMEFEU29OVUExb0RaUU5zZzNjRGZRT0xBNDZEbkFPbkE2d0R1Z1BJQTl3RDU0UHRCQWdFRFFRa2hEWUVPUVEraEZvRVhZUm9CSENFZkFTTUJJK0Vtb1NoQktTRXJBU3doTHlFdjRURUJNaUV6UVRhQk9VRTdRVUNoUTBGSFlVMmhVc0ZVZ1ZtQlhXRmdRV0VCWXVGazRXYWhhYUZ0SVhGaGR3RjQ0WHlCZ01HRXdZZkJpdUdNNFpCQmthR1RBWlRCbGFHWVFacUJuS0dlSWFDaG9ZR2lZYU1CcFFHbVlhZEJxQ0dwd2FwQnE0R3RBYkRoc2tHMEFiVmh0Mkc3b2I2aHd5SEhvY3hCemdIVEFkY0Iyc0hkSWVFQjR3SG1ZZXVCN2tIeHdmVmgrT0g3UWYzaUFnSUZnZ25pRGdJUndoYUNHYUlkUWlFQ0pHSW5JaWtDSytJdXdqR2lOY0kzZ2puQ1BFSkFva0ppUk1KR3dra2lTK0pPNGxGaVZRSlpJbHZpWUlKa0ltVkNhQUpxd204Q2NNSnlvblRDZHNKNFlubWlld0tCSW9MaWhTS0c0b2tDaTZLT2dwRGlsQ0tYNHByQ24wS2lZcVlDcVVLc1lxNGlzYUsxSXJoQ3ZJTEFJc0pDeEtMSG9zckN6dUxTWXRkQzI0TGc0dVpDNmlMdGd1L0M4a0wyb3ZyREFZTUlJd3lERU9NVHd4YURHU01hWXh4akhZTWVveWxETHVNeUF6VURPUU02Z3p3RFBxTkJRMFBqUm1OSWcwcWpUS05PZzFGalZDTmFBMStqWWNOancyYWphV05ydzNBamRDTjI0M21qZklOL1E0TURoaU9KWTRwamkyT040NUdqbHlPYnc2QmpwT09wZzYxanNTTzBvN2dEdThPL1k4Smp4V1BKNDhuanllUEo0OG5qeWVQSjQ4bmp5ZVBKNDhuanllUEo0OHFEeXlQTDQ4MUR6c1BRSTlEajBhUFNZOVREMW9QWkE5ckQyNFBjZytVRDVtUG40K2pENnVQdFkvRmo5Z1A2UkFCRUJHUUpKQXZrRDJRUWhCR2tFc1FUNUJmRUdTUWJKQndFSGNRamhDYUVMQVF1aEMrRU1JUXl4RE9rTlFRMlpEbEVPVVJJcEUxRVVJUlNwRllFV0FSWjVGd2tYUVJnWkdPa1pjUm9wR3RFYlFSdXhIRGtjZVJ6eEhkRWVrUjhwSDVrZitTREpJVEVoWVNIWklsRWltU01oSTRra1VTVTVKaWtuSVNkNUtBa29hU2tKS1lFcDRTcEJLd2tyVVN3QkxRRXRpUzVCTDFFdnlURUJNaEV5V1RNUk5CRTBXVFVwTmpFMm9UZlpPT0U1b1RuWk9xRTdLVHc1UE1rOW9UN0JRS2xCS1VJcFEyRkVVVVdKUmpGSFNVZ0JTSUZKQVVsNVNmRkxDVXVoUzhGTDRVd0JUTmxOc1U1NVR2bFB5VS81VUNsUVdWQ0pVTGxRNlZFWlVVbFJlVkdwVWRsU0NWSTVVbWxTbVZMSlV2bFRLVk5aVTRsVHVWUHBWQmxVU1ZSNVZLbFUyVlVKVlRsVmFWV1pWY2xWK1ZZcFZsbFdpVmE1VnVsWEdWZEpWM2xYcVZmWldBbFlPVmhwV0psWXlWajVXU2xaV1ZtSldibFo2Vm9aV2tsYWVWcXBXdGxidVYxQlhYRmRvVjNSWGdGZU1WNWhYcEZld1Y3eFh5RmZVVitCWDdGZjRXQVJZRUZoS1dKeFlxRmkwV01CWXpGallXT1JZOEZqOFdRaFpGRmtnV1N4Wk9GbEVXVkJaWEZsb1dYUlpnRm1NV1poWnBGbXdXYnhaeUZuVVdlQlo3Rm40V2dSYUVGb2NXaWhhTkZwQVdreGFXRnBrV25CYWZGcUlXcFJhb0Zxc1dyaGF4RnJRV3R4YTZGcjBXd0JiREZzWVd5UmJNRnM4VzBoYlZGdGdXMnhiZUZ1RVc1QmJuRnVvVzdSYndGdk1XOWhiNUZ2d1cveGNDRndVWENCY0xGdzRYRVJjVUZ4Y1hLQmM0RnpzWFBoZEJGMFFYUnhkS0YwMFhVQmRURjFZWFdSZGNGMThYWWhkbEYyZ1hheGR1RjNFWGRCZDNGM29YZlJlQUY0TVhoaGVKRjR3WGp4ZVNGNVVYbUJlYkY1NFhvUmVrRjZjWHFoZXRGN0FYc3hlMkY3a1h2QmUvRjhJWHhSZlRGOVlYMlJmY0Y5OFg0aGZsRitnWDZ4ZjVsL3lYLzVnQ21BV1lDSmdMbUE2WUVaZ1VtQmVZR3BnZG1DQ1lJNWdtbUNtWUxKZ3ZtREtZTlpnNG1EdVlQcGhCbUVTWVI1aEttRTJZVUpoVG1GYVlXWmhjbUYrWVlwaGxtR2lZZVpoOG1IK1lncGlGbUlpWWk1aU9tSkdZbEppWG1KcVluWmlnbUtPWXBwaW9tS3FZckppdW1MQ1lzcGkwbUxhWXVKaTZtTHlZdnBqQW1NS1l4WmpJbU11WXpwalJtTlNZMTVqWm1OdVkzWmpmbU9HWTVKam5tT3FZN1pqd21QT1k5cGtHR1FnWkN4a05HUThaRWhrVkdSY1pHUmtiR1IwWklCa2lHU1FaSmhrb0dTb1pMQmt1R1RBWk1oazBHVGNaT1JrN0dVY1pTUmxMR1U0WlVSbFRHVlVaV0JsYUdWMFpZQmxqR1dZWmFSbHNHVzhaY2hsMUdYZ1plaGw4R1g4WmdobUZHWWNaaWhtTkdaQVpreG1XR1prWm5SbWdHYU1acGhtcEdhc1pyUm13R2JNWnRobTVHYndadnhuQ0djVVp4eG5KR2NzWnpoblJHZE1aMWhuWkdkd1ozeG5oR2VNWjVobnBHZXdaN2hueEdmUVo5eG42R2YwYUFCb0RHZ1lhQ1JvTUdnOGFFUm9UR2hZYUdSb2NHaDhhSWhvbEdpZ2FLeG91R2pFYU5CbzNHanNhUHhwQ0drVWFSeHBLR2swYVVCcFRHbFlhV1JwY0dsOGFZaHBsR21nYWF4cHVHbkVhZFJwNUdud2FmeHFDR29VYWlCcUxHbzRha1JxVkdwa2FuQnFmR3FJYXBScW9HcXNhcmhxeEdyUWF0eHE2R3IwYXdCckRHc2NheXhyT0d0RWExQnJYR3RvYTNScmdHdU1hNWhycEd1d2E3eHJ5R3ZVYStCcjdHdjhiQXhzR0d3a2JEQnNQR3hJYkZSc1lHeHNiSGhzaEd5UWJKeHNxR3kwYk1Cc3pHelliT1JzOEd6OGJRaHRGRzBnYlN4dE9HMUViVkJ0WEcxb2JYUnR1RzNJYmRSdDRHM3NiZmh1Qkc0UWJoeHVLRzQwYmtCdVRHNVlibVJ1Y0c1OGJvaHVsRzZnYnFodTJtOE1ieXB2U0c5d2I1aHZxRys0YjhSdjBHL2NiK2h2OUhBQWNDSndSbkJzY0pKd21uQ21jTEJ3c0hDd2NNWUFBQUFiQVVvQUFRQUFBQUFBQUFBZkFBQUFBUUFBQUFBQUFRQUdBQjhBQVFBQUFBQUFBZ0FHQUNVQUFRQUFBQUFBQXdBU0FDc0FBUUFBQUFBQUJBQU5BRDBBQVFBQUFBQUFCUUFXQUVvQUFRQUFBQUFBQmdBTkFHQUFBUUFBQUFBQUJ3QWdBRzBBQVFBQUFBQUFDUUFHQUkwQUFRQUFBQUFBQ3dBS0FKTUFBUUFBQUFBQURBQVRBSjBBQVFBQUFBQUFEUUF1QUxBQUFRQUFBQUFBRGdBcUFONEFBUUFBQUFBQUVnQU5BUWdBQXdBQkJBa0FBQUErQVJVQUF3QUJCQWtBQVFBTUFWTUFBd0FCQkFrQUFnQU1BVjhBQXdBQkJBa0FBd0FrQVdzQUF3QUJCQWtBQkFBYUFZOEFBd0FCQkFrQUJRQXNBYWtBQXdBQkJBa0FCZ0FhQWRVQUF3QUJCQWtBQndCQUFlOEFBd0FCQkFrQUNRQU1BaThBQXdBQkJBa0FDd0FVQWpzQUF3QUJCQWtBREFBbUFrOEFBd0FCQkFrQURRQmNBblVBQXdBQkJBa0FEZ0JVQXRGR2IyNTBJR1JoZEdFZ1kyOXdlWEpwWjJoMElFZHZiMmRzWlNBeU1ERXpVbTlpYjNSdlNYUmhiR2xqUjI5dloyeGxPbEp2WW05MGJ6b3lNREV6VW05aWIzUnZJRWwwWVd4cFkxWmxjbk5wYjI0Z01TNHlNREF6TVRBN0lESXdNVE5TYjJKdmRHOHRTWFJoYkdsalVtOWliM1J2SUdseklHRWdkSEpoWkdWdFlYSnJJRzltSUVkdmIyZHNaUzVIYjI5bmJHVkhiMjluYkdVdVkyOXRRMmh5YVhOMGFXRnVJRkp2WW1WeWRITnZia3hwWTJWdWMyVmtJSFZ1WkdWeUlIUm9aU0JCY0dGamFHVWdUR2xqWlc1elpTd2dWbVZ5YzJsdmJpQXlMakJvZEhSd09pOHZkM2QzTG1Gd1lXTm9aUzV2Y21jdmJHbGpaVzV6WlhNdlRFbERSVTVUUlMweUxqQlNiMkp2ZEc4Z1NYUmhiR2xqQUVZQWJ3QnVBSFFBSUFCa0FHRUFkQUJoQUNBQVl3QnZBSEFBZVFCeUFHa0Fad0JvQUhRQUlBQkhBRzhBYndCbkFHd0FaUUFnQURJQU1BQXhBRE1BVWdCdkFHSUFid0IwQUc4QVNRQjBBR0VBYkFCcEFHTUFSd0J2QUc4QVp3QnNBR1VBT2dCU0FHOEFZZ0J2QUhRQWJ3QTZBRElBTUFBeEFETUFVZ0J2QUdJQWJ3QjBBRzhBSUFCSkFIUUFZUUJzQUdrQVl3QldBR1VBY2dCekFHa0Fid0J1QUNBQU1RQXVBRElBTUFBd0FETUFNUUF3QURzQUlBQXlBREFBTVFBekFGSUFid0JpQUc4QWRBQnZBQzBBU1FCMEFHRUFiQUJwQUdNQVVnQnZBR0lBYndCMEFHOEFJQUJwQUhNQUlBQmhBQ0FBZEFCeUFHRUFaQUJsQUcwQVlRQnlBR3NBSUFCdkFHWUFJQUJIQUc4QWJ3Qm5BR3dBWlFBdUFFY0Fid0J2QUdjQWJBQmxBRWNBYndCdkFHY0FiQUJsQUM0QVl3QnZBRzBBUXdCb0FISUFhUUJ6QUhRQWFRQmhBRzRBSUFCU0FHOEFZZ0JsQUhJQWRBQnpBRzhBYmdCTUFHa0FZd0JsQUc0QWN3QmxBR1FBSUFCMUFHNEFaQUJsQUhJQUlBQjBBR2dBWlFBZ0FFRUFjQUJoQUdNQWFBQmxBQ0FBVEFCcEFHTUFaUUJ1QUhNQVpRQXNBQ0FBVmdCbEFISUFjd0JwQUc4QWJnQWdBRElBTGdBd0FHZ0FkQUIwQUhBQU9nQXZBQzhBZHdCM0FIY0FMZ0JoQUhBQVlRQmpBR2dBWlFBdUFHOEFjZ0JuQUM4QWJBQnBBR01BWlFCdUFITUFaUUJ6QUM4QVRBQkpBRU1BUlFCT0FGTUFSUUF0QURJQUxnQXdBQUFDQUFBQUFBQUEvMm9BWkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJCMEFBQUVDQUFJQUF3QUZBQVlBQndBSUFBa0FDZ0FMQUF3QURRQU9BQThBRUFBUkFCSUFFd0FVQUJVQUZnQVhBQmdBR1FBYUFCc0FIQUFkQUI0QUh3QWdBQ0VBSWdBakFDUUFKUUFtQUNjQUtBQXBBQ29BS3dBc0FDMEFMZ0F2QURBQU1RQXlBRE1BTkFBMUFEWUFOd0E0QURrQU9nQTdBRHdBUFFBK0FEOEFRQUJCQUVJQVF3QkVBRVVBUmdCSEFFZ0FTUUJLQUVzQVRBQk5BRTRBVHdCUUFGRUFVZ0JUQUZRQVZRQldBRmNBV0FCWkFGb0FXd0JjQUYwQVhnQmZBR0FBWVFDakFJUUFoUUM5QUpZQTZBQ0dBSTRBaXdDZEFLa0FwQUNLQVFNQWd3Q1RBUElBOHdDTkFKY0FpQUVFQU40QThRQ2VBS29BOVFEMEFQWUFvZ0NRQVBBQWtRRHRBSWtBb0FEcUFMZ0FvUUR1QVFVQTF3RUdBT0lBNHdFSEFRZ0FzQUN4QVFrQXBnRUtBUXNCREFFTkFRNEJEd0RZQU9FQTJ3RGNBTjBBNEFEWkFOOEJFQUVSQVJJQkV3RVVBUlVCRmdFWEFSZ0JHUUVhQVJzQkhBRWRBUjRCSHdFZ0FTRUJJZ0NmQVNNQkpBRWxBU1lCSndFb0FTa0JLZ0VyQVN3QkxRQ2JBUzRCTHdFd0FURUJNZ0V6QVRRQk5RRTJBVGNCT0FFNUFUb0JPd0U4QVQwQlBnRS9BVUFCUVFGQ0FVTUJSQUZGQVVZQlJ3RklBVWtCU2dGTEFVd0JUUUZPQVU4QlVBRlJBVklCVXdGVUFWVUJWZ0ZYQVZnQldRRmFBVnNCWEFGZEFWNEJYd0ZnQVdFQllnRmpBV1FCWlFGbUFXY0JhQUZwQVdvQmF3RnNBVzBCYmdGdkFYQUJjUUZ5QVhNQmRBRjFBWFlCZHdGNEFYa0JlZ0Y3QVh3QmZRRitBWDhCZ0FHQkFZSUJnd0dFQVlVQmhnR0hBWWdCaVFHS0FZc0JqQUdOQVk0Qmp3R1FBWkVCa2dHVEFaUUJsUUdXQVpjQm1BR1pBWm9CbXdHY0FaMEJuZ0dmQWFBQm9RR2lBYU1CcEFHbEFhWUJwd0dvQWFrQnFnR3JBYXdCclFHdUFhOEJzQUd4QWJJQnN3RzBBYlVCdGdHM0FiZ0J1UUc2QWJzQnZBRzlBYjRCdndIQUFjRUJ3Z0hEQWNRQnhRSEdBY2NCeUFISkFjb0J5d0hNQWMwQXNnQ3pBYzRBdGdDM0FNUUJ6d0MwQUxVQXhRQ0NBTUlBaHdIUUFLc0F4Z0MrQUw4QXZBSFJBZElCMHdIVUFkVUIxZ0hYQWRnQWpBSFpBZG9CMndIY0FkMEFtQUNhQUprQTd3Q2xBSklBbkFDbkFJOEFsQUNWQUxrQjNnSGZBZUFBd0FIaEFlSUI0d0hrQWVVQjVnSG5BZWdCNlFIcUFlc0I3QUh0QWU0Qjd3SHdBZkVCOGdIekFmUUI5UUgyQWZjQitBSDVBZm9CK3dIOEFmMEIvZ0gvQWdBQ0FRSUNBZ01DQkFJRkFnWUNCd0lJQWdrQ0NnSUxBZ3dDRFFJT0FnOENFQUlSQWhJQ0V3SVVBaFVDRmdJWEFoZ0NHUUlhQWhzQ0hBSWRBaDRDSHdJZ0FpRUNJZ0lqQWlRQ0pRSW1BaWNDS0FJcEFpb0NLd0lzQWkwQ0xnSXZBakFDTVFJeUFqTUNOQUkxQWpZQ053Q3NBamdDT1FEcEFqb0NPd0k4QUswQXlRREhBSzRBWWdCakFqMEFaQURMQUdVQXlBREtBTThBekFETkFNNEFaZ0RUQU5BQTBRQ3ZBR2NBMWdEVUFOVUFhQURyQUdvQWFRQnJBRzBBYkFCdUFqNEFid0J4QUhBQWNnQnpBSFVBZEFCMkFIY0FlQUI2QUhrQWV3QjlBSHdBZndCK0FJQUFnUURzQUxvQ1B3SkFBa0VDUWdKREFrUUEvUUQrQWtVQ1JnSkhBa2dBL3dFQUFra0NTZ0pMQWt3Q1RRSk9BazhDVUFKUkFsSUNVd0pVQWxVQ1ZnRDRBUGtDVndKWUFsa0NXZ0piQWx3Q1hRSmVBbDhDWUFKaEFtSUNZd0prQW1VQ1pnSm5BbWdDYVFKcUFtc0NiQUp0QW00Q2J3SndBbkVDY2dKekFuUUNkUUoyQW5jQ2VBSjVBbm9DZXdKOEFuMENmZ0ovQW9BQ2dRS0NBb01DaEFLRkFvWUNod0tJQW9rQ2lnRDdBUHdDaXdLTUFPUUE1UUtOQW80Q2p3S1FBcEVDa2dLVEFwUUNsUUtXQXBjQ21BS1pBcG9DbXdLY0FwMENuZ0tmQXFBQ29RS2lBTHNDb3dLa0FxVUNwZ0RtQU9jQ3B3S29BcWtDcWdLckFxd0NyUUt1QXE4Q3NBS3hBcklDc3dLMEFyVUN0Z0szQXJnQ3VRSzZBcnNDdkFLOUFyNEN2d0xBQXNFQ3dnTERBc1FDeFFMR0FzY0N5QUxKQXNvQ3l3TE1BczBDemdMUEF0QUMwUUxTQXRNQzFBTFZBdFlDMXdMWUF0a0MyZ0xiQXR3QzNRTGVBdDhDNEFMaEF1SUM0d0xrQXVVQzVnTG5BdWdDNlFMcUF1c0M3QUx0QXU0Qzd3THdBdkVDOGdMekF2UUM5UUwyQXZjQytBTDVBdm9DK3dMOEF2MEMvZ0wvQXdBREFRTUNBd01EQkFNRkF3WURCd01JQXdrRENnTUxBd3dERFFNT0F3OERFQU1SQXhJREV3TVVBeFVERmdNWEF4Z0RHUU1hQXhzREhBTWRBeDRESHdNZ0F5RURJZ01qQXlRREpRTW1BeWNES0FNcEF5b0RLd01zQXkwRExnTXZBekFETVFNeUF6TUROQU0xQXpZRE53TTRBemtET2dNN0F6d0RQUU0rQXo4RFFBTkJBMElEUXdORUEwVURSZ05IQTBnRFNRTktBMHNEVEFOTkEwNERUd05RQTFFRFVnTlRBMVFEVlFOV0ExY0RXQU5aQTFvRFd3TmNBMTBEWGdOZkEyQURZUU5pQTJNRFpBTmxBMllEWndOb0Eya0RhZ05yQTJ3RGJRTnVBMjhEY0FOeEEzSURjd04wQTNVRGRnTjNBM2dEZVFONkEzc0RmQU45QTM0RGZ3T0FBNEVEZ2dPREE0UURoUU9HQTRjRGlBT0pBNG9EaXdPTUE0MERqZ09QQTVBRGtRT1NBNU1EbEFPVkE1WURsd09ZQTVrRG1nT2JBNXdEblFPZUE1OERvQU9oQTZJRG93T2tBNlVEcGdPbkE2Z0RxUU9xQTZzRHJBT3RBNjREcndPd0E3RURzZ096QTdRRHRRTzJBN2NEdUFPNUE3b0R1d084QTcwRHZnTy9BOEFEd1FQQ0E4TUR4QVBGQThZRHh3UElBOGtEeWdQTEE4d0R6UVBPQTg4RDBBUFJBOUlEMHdQVUE5VUQxZ1BYQTlnRDJRUGFBOXNEM0FQZEE5NEQzd1BnQStFRDRnUGpBK1FENVFQbUErY0Q2QVBwQStvRDZ3UHNBKzBEN2dQdkEvQUQ4UVB5QS9NRDlBUDFBL1lEOXdQNEEva0QrZ1A3QS93RC9RUCtBLzhFQUFRQkJBSUVBd1FFQkFVRUJnUUhCQWdFQ1FRS0JBc0VEQVFOQkE0RUR3UVFCQkVFRWdRVEJCUUVGUVFXQkJjRUdBUVpCQm9FR3dRY0JCMEVIZ1FmQkNBRUlRRDNCQ0lFSXdRa0FBUUVUbFZNVEFadFlXTnliMjRPY0dWeWFXOWtZMlZ1ZEdWeVpXUUVTR0poY2d4clozSmxaVzVzWVc1a2FXTURSVzVuQTJWdVp3VnNiMjVuY3dWUGFHOXliZ1Z2YUc5eWJnVlZhRzl5YmdWMWFHOXliZ2QxYm1rd01qTTNCWE5qYUhkaEIzVnVhVEF5UmpNSlozSmhkbVZqYjIxaUNXRmpkWFJsWTI5dFlnbDBhV3hrWldOdmJXSUVhRzl2YXdkMWJta3dNekJHQ0dSdmRHSmxiRzkzQlhSdmJtOXpEV1JwWlhKbGMybHpkRzl1YjNNSllXNXZkR1ZzWldsaEJVZGhiVzFoQlVSbGJIUmhCVlJvWlhSaEJreGhiV0prWVFKWWFRSlFhUVZUYVdkdFlRTlFhR2tEVUhOcEJXRnNjR2hoQkdKbGRHRUZaMkZ0YldFRlpHVnNkR0VIWlhCemFXeHZiZ1I2WlhSaEEyVjBZUVYwYUdWMFlRUnBiM1JoQm14aGJXSmtZUUo0YVFOeWFHOEdjMmxuYldFeEJYTnBaMjFoQTNSaGRRZDFjSE5wYkc5dUEzQm9hUU53YzJrRmIyMWxaMkVIZFc1cE1ETkVNUWQxYm1rd00wUXlCM1Z1YVRBelJEWUhkVzVwTURRd01nZDFibWt3TkRBMEIzVnVhVEEwTURrSGRXNXBNRFF3UVFkMWJta3dOREJDQjNWdWFUQTBNRVlIZFc1cE1EUXhNUWQxYm1rd05ERTBCM1Z1YVRBME1UWUhkVzVwTURReE53ZDFibWt3TkRFNEIzVnVhVEEwTVVJSGRXNXBNRFF5TXdkMWJta3dOREkwQjNWdWFUQTBNallIZFc1cE1EUXlOd2QxYm1rd05ESTRCM1Z1YVRBME1qa0hkVzVwTURReVFRZDFibWt3TkRKQ0IzVnVhVEEwTWtNSGRXNXBNRFF5UkFkMWJta3dOREpGQjNWdWFUQTBNa1lIZFc1cE1EUXpNUWQxYm1rd05ETXlCM1Z1YVRBME16TUhkVzVwTURRek5BZDFibWt3TkRNMkIzVnVhVEEwTXpjSGRXNXBNRFF6T0FkMWJta3dORE5CQjNWdWFUQTBNMElIZFc1cE1EUXpRd2QxYm1rd05ETkVCM1Z1YVRBME0wWUhkVzVwTURRME1nZDFibWt3TkRRMEIzVnVhVEEwTkRZSGRXNXBNRFEwTndkMWJta3dORFE0QjNWdWFUQTBORGtIZFc1cE1EUTBRUWQxYm1rd05EUkNCM1Z1YVRBME5FTUhkVzVwTURRMFJBZDFibWt3TkRSRkIzVnVhVEEwTkVZSGRXNXBNRFExTWdkMWJta3dORFUwQjNWdWFUQTBOVGtIZFc1cE1EUTFRUWQxYm1rd05EVkNCM1Z1YVRBME5VWUhkVzVwTURRMk1BZDFibWt3TkRZeEIzVnVhVEEwTmpNSGRXNXBNRFEyTkFkMWJta3dORFkxQjNWdWFUQTBOallIZFc1cE1EUTJOd2QxYm1rd05EWTRCM1Z1YVRBME5qa0hkVzVwTURRMlFRZDFibWt3TkRaQ0IzVnVhVEEwTmtNSGRXNXBNRFEyUkFkMWJta3dORFpGQjNWdWFUQTBOa1lIZFc1cE1EUTNNZ2QxYm1rd05EY3pCM1Z1YVRBME56UUhkVzVwTURRM05RZDFibWt3TkRkQkIzVnVhVEEwTjBJSGRXNXBNRFEzUXdkMWJta3dORGRFQjNWdWFUQTBOMFVIZFc1cE1EUTNSZ2QxYm1rd05EZ3dCM1Z1YVRBME9ERUhkVzVwTURRNE1nZDFibWt3TkRnekIzVnVhVEEwT0RRSGRXNXBNRFE0TlFkMWJta3dORGcyQjNWdWFUQTBPRGdIZFc1cE1EUTRPUWQxYm1rd05EaEVCM1Z1YVRBME9FVUhkVzVwTURRNFJnZDFibWt3TkRrd0IzVnVhVEEwT1RFSGRXNXBNRFE1TkFkMWJta3dORGsxQjNWdWFUQTBPVU1IZFc1cE1EUTVSQWQxYm1rd05FRXdCM1Z1YVRBMFFURUhkVzVwTURSQk5BZDFibWt3TkVFMUIzVnVhVEEwUVRZSGRXNXBNRFJCTndkMWJta3dORUU0QjNWdWFUQTBRVGtIZFc1cE1EUkNOQWQxYm1rd05FSTFCM1Z1YVRBMFFqZ0hkVzVwTURSQ09RZDFibWt3TkVKQkIzVnVhVEEwUWtNSGRXNXBNRFJDUkFkMWJta3dORU16QjNWdWFUQTBRelFIZFc1cE1EUkROd2QxYm1rd05FTTRCM1Z1YVRBMFJEZ0hkVzVwTURSRk1BZDFibWt3TkVVeEIzVnVhVEEwUmtFSGRXNXBNRFJHUWdkMWJta3dOVEF3QjNWdWFUQTFNRElIZFc1cE1EVXdNd2QxYm1rd05UQTBCM1Z1YVRBMU1EVUhkVzVwTURVd05nZDFibWt3TlRBM0IzVnVhVEExTURnSGRXNXBNRFV3T1FkMWJta3dOVEJCQjNWdWFUQTFNRUlIZFc1cE1EVXdRd2QxYm1rd05UQkVCM1Z1YVRBMU1FVUhkVzVwTURVd1JnZDFibWt3TlRFd0IzVnVhVEl3TURBSGRXNXBNakF3TVFkMWJta3lNREF5QjNWdWFUSXdNRE1IZFc1cE1qQXdOQWQxYm1reU1EQTFCM1Z1YVRJd01EWUhkVzVwTWpBd053ZDFibWt5TURBNEIzVnVhVEl3TURrSGRXNXBNakF3UVFkMWJta3lNREJDRFhWdVpHVnljMk52Y21Wa1ltd05jWFZ2ZEdWeVpYWmxjbk5sWkFkMWJta3lNREkxQjNWdWFUSXdOelFKYm5OMWNHVnlhVzl5Qkd4cGNtRUdjR1Z6WlhSaEJFVjFjbThIZFc1cE1qRXdOUWQxYm1reU1URXpCM1Z1YVRJeE1UWUpaWE4wYVcxaGRHVmtDVzl1WldWcFoyaDBhQXgwYUhKbFpXVnBaMmgwYUhNTFptbDJaV1ZwWjJoMGFITU1jMlYyWlc1bGFXZG9kR2h6Q21OdmJHOXVMbXh1ZFcwSmNYVnZkR1ZrWW14NEMyTnZiVzFoWVdOalpXNTBCM1Z1YVVaRlJrWUhkVzVwUmtaR1F3ZDFibWxHUmtaRUNXWnBkbVV1YzIxamNBaG1iM1Z5TG5OMWNBbDZaWEp2TG14dWRXME9iR0Z5WjJWeWFXZG9kR2h2YjJzTVkzbHlhV3hzYVdOb2IyOXJFR041Y21sc2JHbGphRzl2YTJ4bFpuUUxZM2x5YVd4c2FXTjBhV01PWW5KbGRtVjBhV3hrWldOdmJXSU5ZbkpsZG1Wb2IyOXJZMjl0WWc1aWNtVjJaV0ZqZFhSbFkyOXRZaE5qYVhKamRXMW1iR1Y0ZEdsc1pHVmpiMjFpRW1OcGNtTjFiV1pzWlhob2IyOXJZMjl0WWhOamFYSmpkVzFtYkdWNFozSmhkbVZqYjIxaUUyTnBjbU4xYldac1pYaGhZM1YwWldOdmJXSU9ZbkpsZG1WbmNtRjJaV052YldJUlkyOXRiV0ZoWTJObGJuUnliM1JoZEdVR1FTNXpiV053QmtJdWMyMWpjQVpETG5OdFkzQUdSQzV6YldOd0JrVXVjMjFqY0FaR0xuTnRZM0FHUnk1emJXTndCa2d1YzIxamNBWkpMbk50WTNBR1NpNXpiV053QmtzdWMyMWpjQVpNTG5OdFkzQUdUUzV6YldOd0JrNHVjMjFqY0FaUExuTnRZM0FHVVM1emJXTndCbEl1YzIxamNBWlRMbk50WTNBR1ZDNXpiV053QmxVdWMyMWpjQVpXTG5OdFkzQUdWeTV6YldOd0JsZ3VjMjFqY0FaWkxuTnRZM0FHV2k1emJXTndDWHBsY204dWMyMWpjQWh2Ym1VdWMyMWpjQWgwZDI4dWMyMWpjQXAwYUhKbFpTNXpiV053Q1dadmRYSXVjMjFqY0FoMGQyOHViRzUxYlFoemFYZ3VjMjFqY0FwelpYWmxiaTV6YldOd0NtVnBaMmgwTG5OdFkzQUpibWx1WlM1emJXTndCMjl1WlM1emRYQUhkSGR2TG5OMWNBbDBhSEpsWlM1emRYQUliMjVsTG14dWRXMElabWwyWlM1emRYQUhjMmw0TG5OMWNBbHpaWFpsYmk1emRYQUpaV2xuYUhRdWMzVndDRzVwYm1VdWMzVndDSHBsY204dWMzVndDR055YjNOelltRnlDWEpwYm1kaFkzVjBaUWxrWVhOcFlXOTRhV0VLZEdoeVpXVXViRzUxYlFsbWIzVnlMbXh1ZFcwSlptbDJaUzVzYm5WdENITnBlQzVzYm5WdEJXY3VZV3gwQ25ObGRtVnVMbXh1ZFcwSFkyaHBMbUZzZEFwbGFXZG9kQzVzYm5WdENXRnNjR2hoTG1Gc2RBbGtaV3gwWVM1aGJIUUVSQzVqYmdSaExtTnVCVkl1WVd4MEJVc3VZV3gwQldzdVlXeDBCa3N1WVd4ME1nWnJMbUZzZERJSmJtbHVaUzVzYm5WdEJsQXVjMjFqY0ExamVYSnBiR3hwWTJKeVpYWmxCM1Z1YVRBd1FVUUdSR055YjJGMEJHaGlZWElFVkdKaGNnUjBZbUZ5Q2tGeWFXNW5ZV04xZEdVS1lYSnBibWRoWTNWMFpRZEJiV0ZqY205dUIyRnRZV055YjI0R1FXSnlaWFpsQm1GaWNtVjJaUWRCYjJkdmJtVnJCMkZ2WjI5dVpXc0xRMk5wY21OMWJXWnNaWGdMWTJOcGNtTjFiV1pzWlhnSGRXNXBNREV3UVFkMWJta3dNVEJDQmtSallYSnZiZ1prWTJGeWIyNEhSVzFoWTNKdmJnZGxiV0ZqY205dUJrVmljbVYyWlFabFluSmxkbVVLUldSdmRHRmpZMlZ1ZEFwbFpHOTBZV05qWlc1MEIwVnZaMjl1WldzSFpXOW5iMjVsYXdaRlkyRnliMjRHWldOaGNtOXVDMGRqYVhKamRXMW1iR1Y0QzJkamFYSmpkVzFtYkdWNEIzVnVhVEF4TWpBSGRXNXBNREV5TVF4SFkyOXRiV0ZoWTJObGJuUU1aMk52YlcxaFlXTmpaVzUwQzBoamFYSmpkVzFtYkdWNEMyaGphWEpqZFcxbWJHVjRCa2wwYVd4a1pRWnBkR2xzWkdVSFNXMWhZM0p2YmdkcGJXRmpjbTl1QmtsaWNtVjJaUVpwWW5KbGRtVUhTVzluYjI1bGF3ZHBiMmR2Ym1WckNrbGtiM1JoWTJObGJuUUNTVW9DYVdvTFNtTnBjbU4xYldac1pYZ0xhbU5wY21OMWJXWnNaWGdNUzJOdmJXMWhZV05qWlc1MERHdGpiMjF0WVdGalkyVnVkQVpNWVdOMWRHVUdiR0ZqZFhSbERFeGpiMjF0WVdGalkyVnVkQXhzWTI5dGJXRmhZMk5sYm5RR1RHTmhjbTl1Qm14allYSnZiZ1JNWkc5MEJHeGtiM1FHVG1GamRYUmxCbTVoWTNWMFpReE9ZMjl0YldGaFkyTmxiblFNYm1OdmJXMWhZV05qWlc1MEJrNWpZWEp2YmdadVkyRnliMjRMYm1Gd2IzTjBjbTl3YUdVSFQyMWhZM0p2YmdkdmJXRmpjbTl1Qms5aWNtVjJaUVp2WW5KbGRtVU5UMmgxYm1kaGNuVnRiR0YxZEExdmFIVnVaMkZ5ZFcxc1lYVjBCbEpoWTNWMFpRWnlZV04xZEdVTVVtTnZiVzFoWVdOalpXNTBESEpqYjIxdFlXRmpZMlZ1ZEFaU1kyRnliMjRHY21OaGNtOXVCbE5oWTNWMFpRWnpZV04xZEdVTFUyTnBjbU4xYldac1pYZ0xjMk5wY21OMWJXWnNaWGdIZFc1cE1ESXhPQWQxYm1rd01qRTVCM1Z1YVRBeU1VRUhkVzVwTURJeFFnZDFibWt3TVRZeUIzVnVhVEF4TmpNR1ZHTmhjbTl1Qm5SallYSnZiZ1pWZEdsc1pHVUdkWFJwYkdSbEIxVnRZV055YjI0SGRXMWhZM0p2YmdaVlluSmxkbVVHZFdKeVpYWmxCVlZ5YVc1bkJYVnlhVzVuRFZWb2RXNW5ZWEoxYld4aGRYUU5kV2gxYm1kaGNuVnRiR0YxZEFkVmIyZHZibVZyQjNWdloyOXVaV3NMVjJOcGNtTjFiV1pzWlhnTGQyTnBjbU4xYldac1pYZ0xXV05wY21OMWJXWnNaWGdMZVdOcGNtTjFiV1pzWlhnR1dtRmpkWFJsQm5waFkzVjBaUXBhWkc5MFlXTmpaVzUwQ25wa2IzUmhZMk5sYm5RSFFVVmhZM1YwWlFkaFpXRmpkWFJsQzA5emJHRnphR0ZqZFhSbEMyOXpiR0Z6YUdGamRYUmxDMFJqY205aGRDNXpiV053Q0VWMGFDNXpiV053Q1ZSaVlYSXVjMjFqY0F0QlozSmhkbVV1YzIxamNBdEJZV04xZEdVdWMyMWpjQkJCWTJseVkzVnRabXhsZUM1emJXTndDMEYwYVd4a1pTNXpiV053RGtGa2FXVnlaWE5wY3k1emJXTndDa0Z5YVc1bkxuTnRZM0FQUVhKcGJtZGhZM1YwWlM1emJXTndEVU5qWldScGJHeGhMbk50WTNBTFJXZHlZWFpsTG5OdFkzQUxSV0ZqZFhSbExuTnRZM0FRUldOcGNtTjFiV1pzWlhndWMyMWpjQTVGWkdsbGNtVnphWE11YzIxamNBdEpaM0poZG1VdWMyMWpjQXRKWVdOMWRHVXVjMjFqY0JCSlkybHlZM1Z0Wm14bGVDNXpiV053RGtsa2FXVnlaWE5wY3k1emJXTndDMDUwYVd4a1pTNXpiV053QzA5bmNtRjJaUzV6YldOd0MwOWhZM1YwWlM1emJXTndFRTlqYVhKamRXMW1iR1Y0TG5OdFkzQUxUM1JwYkdSbExuTnRZM0FPVDJScFpYSmxjMmx6TG5OdFkzQUxWV2R5WVhabExuTnRZM0FMVldGamRYUmxMbk50WTNBUVZXTnBjbU4xYldac1pYZ3VjMjFqY0E1VlpHbGxjbVZ6YVhNdWMyMWpjQXRaWVdOMWRHVXVjMjFqY0F4QmJXRmpjbTl1TG5OdFkzQUxRV0p5WlhabExuTnRZM0FNUVc5bmIyNWxheTV6YldOd0MwTmhZM1YwWlM1emJXTndFRU5qYVhKamRXMW1iR1Y0TG5OdFkzQU1kVzVwTURFd1FTNXpiV053QzBOallYSnZiaTV6YldOd0MwUmpZWEp2Ymk1emJXTndERVZ0WVdOeWIyNHVjMjFqY0F0RlluSmxkbVV1YzIxamNBOUZaRzkwWVdOalpXNTBMbk50WTNBTVJXOW5iMjVsYXk1emJXTndDMFZqWVhKdmJpNXpiV053RUVkamFYSmpkVzFtYkdWNExuTnRZM0FMUjJKeVpYWmxMbk50WTNBTWRXNXBNREV5TUM1emJXTndFVWRqYjIxdFlXRmpZMlZ1ZEM1emJXTndFRWhqYVhKamRXMW1iR1Y0TG5OdFkzQUxTWFJwYkdSbExuTnRZM0FNU1cxaFkzSnZiaTV6YldOd0MwbGljbVYyWlM1emJXTndERWx2WjI5dVpXc3VjMjFqY0E5SlpHOTBZV05qWlc1MExuTnRZM0FRU21OcGNtTjFiV1pzWlhndWMyMWpjQkZMWTI5dGJXRmhZMk5sYm5RdWMyMWpjQXRNWVdOMWRHVXVjMjFqY0JGTVkyOXRiV0ZoWTJObGJuUXVjMjFqY0F0TVkyRnliMjR1YzIxamNBbE1aRzkwTG5OdFkzQUxUbUZqZFhSbExuTnRZM0FSVG1OdmJXMWhZV05qWlc1MExuTnRZM0FMVG1OaGNtOXVMbk50WTNBTVQyMWhZM0p2Ymk1emJXTndDMDlpY21WMlpTNXpiV053RWs5b2RXNW5ZWEoxYld4aGRYUXVjMjFqY0F0U1lXTjFkR1V1YzIxamNCRlNZMjl0YldGaFkyTmxiblF1YzIxamNBdFNZMkZ5YjI0dWMyMWpjQXRUWVdOMWRHVXVjMjFqY0JCVFkybHlZM1Z0Wm14bGVDNXpiV053RFZOalpXUnBiR3hoTG5OdFkzQUxVMk5oY205dUxuTnRZM0FSVkdOdmJXMWhZV05qWlc1MExuTnRZM0FMVkdOaGNtOXVMbk50WTNBTFZYUnBiR1JsTG5OdFkzQU1WVzFoWTNKdmJpNXpiV053QzFWaWNtVjJaUzV6YldOd0NsVnlhVzVuTG5OdFkzQVNWV2gxYm1kaGNuVnRiR0YxZEM1emJXTndERlZ2WjI5dVpXc3VjMjFqY0JCWFkybHlZM1Z0Wm14bGVDNXpiV053RUZsamFYSmpkVzFtYkdWNExuTnRZM0FPV1dScFpYSmxjMmx6TG5OdFkzQUxXbUZqZFhSbExuTnRZM0FQV21SdmRHRmpZMlZ1ZEM1emJXTndDMXBqWVhKdmJpNXpiV053RDJkbGNtMWhibVJpYkhNdWMyMWpjQXBCYkhCb1lYUnZibTl6REVWd2MybHNiMjUwYjI1dmN3aEZkR0YwYjI1dmN3bEpiM1JoZEc5dWIzTU1UMjFwWTNKdmJuUnZibTl6REZWd2MybHNiMjUwYjI1dmN3cFBiV1ZuWVhSdmJtOXpFV2x2ZEdGa2FXVnlaWE5wYzNSdmJtOXpCVUZzY0doaEJFSmxkR0VIUlhCemFXeHZiZ1JhWlhSaEEwVjBZUVJKYjNSaEJVdGhjSEJoQWsxMUFrNTFCMDl0YVdOeWIyNERVbWh2QTFSaGRRZFZjSE5wYkc5dUEwTm9hUXhKYjNSaFpHbGxjbVZ6YVhNUFZYQnphV3h2Ym1ScFpYSmxjMmx6Q21Gc2NHaGhkRzl1YjNNTVpYQnphV3h2Ym5SdmJtOXpDR1YwWVhSdmJtOXpDV2x2ZEdGMGIyNXZjeFIxY0hOcGJHOXVaR2xsY21WemFYTjBiMjV2Y3dWcllYQndZUWR2YldsamNtOXVCM1Z1YVRBelFrTUNiblVEWTJocERHbHZkR0ZrYVdWeVpYTnBjdzkxY0hOcGJHOXVaR2xsY21WemFYTU1iMjFwWTNKdmJuUnZibTl6REhWd2MybHNiMjUwYjI1dmN3cHZiV1ZuWVhSdmJtOXpCM1Z1YVRBME1ERUhkVzVwTURRd013ZDFibWt3TkRBMUIzVnVhVEEwTURZSGRXNXBNRFF3TndkMWJta3dOREE0QjNWdWFUQTBNVUVIZFc1cE1EUXdRd2QxYm1rd05EQkZCM1Z1YVRBME1UQUhkVzVwTURReE1nZDFibWt3TkRFekIzVnVhVEEwTVRVSGRXNXBNRFF4T1FkMWJta3dOREZEQjNWdWFUQTBNVVFIZFc1cE1EUXhSUWQxYm1rd05ERkdCM1Z1YVRBME1qQUhkVzVwTURReU1RZDFibWt3TkRJeUIzVnVhVEEwTWpVSGRXNXBNRFF6TUFkMWJta3dORE0xQjNWdWFUQTBNemtIZFc1cE1EUXpSUWQxYm1rd05EUXdCM1Z1YVRBME5ERUhkVzVwTURRME13ZDFibWt3TkRRMUIzVnVhVEEwTlRFSGRXNXBNRFExTXdkMWJta3dORFUxQjNWdWFUQTBOVFlIZFc1cE1EUTFOd2QxYm1rd05EVTRCM1Z1YVRBME5VTUhkVzVwTURRMVJRWlhaM0poZG1VR2QyZHlZWFpsQmxkaFkzVjBaUVozWVdOMWRHVUpWMlJwWlhKbGMybHpDWGRrYVdWeVpYTnBjd1paWjNKaGRtVUdlV2R5WVhabEJtMXBiblYwWlFaelpXTnZibVFKWlhoamJHRnRaR0pzQjNWdWFVWkNNRElIZFc1cE1ERkdNQWQxYm1rd01rSkRCM1Z1YVRGRk0wVUhkVzVwTVVVelJnZDFibWt4UlRBd0IzVnVhVEZGTURFSGRXNXBNVVkwUkFkMWJtbEdRakF6QjNWdWFVWkNNRFFIZFc1cE1EUXdNQWQxYm1rd05EQkVCM1Z1YVRBME5UQUhkVzVwTURRMVJBZDFibWt3TkRjd0IzVnVhVEEwTnpFSGRXNXBNRFEzTmdkMWJta3dORGMzQjNWdWFUQTBOemtIZFc1cE1EUTNPQWQxYm1rd05EazRCM1Z1YVRBME9Ua0hkVzVwTURSQlFRZDFibWt3TkVGQ0IzVnVhVEEwUVVVSGRXNXBNRFJCUmdkMWJta3dORU13QjNWdWFUQTBRekVIZFc1cE1EUkRNZ2QxYm1rd05FTkdCM1Z1YVRBMFJEQUhkVzVwTURSRU1RZDFibWt3TkVReUIzVnVhVEEwUkRNSGRXNXBNRFJFTkFkMWJta3dORVExQjNWdWFUQTBSRFlIZFc1cE1EUkVOd2QxYm1rd05FUkJCM1Z1YVRBMFJEa0hkVzVwTURSRVFnZDFibWt3TkVSREIzVnVhVEEwUkVRSGRXNXBNRFJFUlFkMWJta3dORVJHQjNWdWFUQTBSVElIZFc1cE1EUkZNd2QxYm1rd05FVTBCM1Z1YVRBMFJUVUhkVzVwTURSRk5nZDFibWt3TkVVM0IzVnVhVEEwUlRnSGRXNXBNRFJGT1FkMWJta3dORVZCQjNWdWFUQTBSVUlIZFc1cE1EUkZRd2QxYm1rd05FVkVCM1Z1YVRBMFJVVUhkVzVwTURSRlJnZDFibWt3TkVZd0IzVnVhVEEwUmpFSGRXNXBNRFJHTWdkMWJta3dORVl6QjNWdWFUQTBSalFIZFc1cE1EUkdOUWQxYm1rd05FWTRCM1Z1YVRBMFJqa0hkVzVwTURSR1F3ZDFibWt3TkVaRUIzVnVhVEExTURFSGRXNXBNRFV4TWdkMWJta3dOVEV6QjNWdWFURkZRVEFIZFc1cE1VVkJNUWQxYm1reFJVRXlCM1Z1YVRGRlFUTUhkVzVwTVVWQk5BZDFibWt4UlVFMUIzVnVhVEZGUVRZSGRXNXBNVVZCTndkMWJta3hSVUU0QjNWdWFURkZRVGtIZFc1cE1VVkJRUWQxYm1reFJVRkNCM1Z1YVRGRlFVTUhkVzVwTVVWQlJBZDFibWt4UlVGRkIzVnVhVEZGUVVZSGRXNXBNVVZDTUFkMWJta3hSVUl4QjNWdWFURkZRaklIZFc1cE1VVkNNd2QxYm1reFJVSTBCM1Z1YVRGRlFqVUhkVzVwTVVWQ05nZDFibWt4UlVJM0IzVnVhVEZGUWpnSGRXNXBNVVZDT1FkMWJta3hSVUpCQjNWdWFURkZRa0lIZFc1cE1VVkNRd2QxYm1reFJVSkVCM1Z1YVRGRlFrVUhkVzVwTVVWQ1JnZDFibWt4UlVNd0IzVnVhVEZGUXpFSGRXNXBNVVZETWdkMWJta3hSVU16QjNWdWFURkZRelFIZFc1cE1VVkROUWQxYm1reFJVTTJCM1Z1YVRGRlF6Y0hkVzVwTVVWRE9BZDFibWt4UlVNNUIzVnVhVEZGUTBFSGRXNXBNVVZEUWdkMWJta3hSVU5EQjNWdWFURkZRMFFIZFc1cE1VVkRSUWQxYm1reFJVTkdCM1Z1YVRGRlJEQUhkVzVwTVVWRU1RZDFibWt4UlVReUIzVnVhVEZGUkRNSGRXNXBNVVZFTkFkMWJta3hSVVExQjNWdWFURkZSRFlIZFc1cE1VVkVOd2QxYm1reFJVUTRCM1Z1YVRGRlJEa0hkVzVwTVVWRVFRZDFibWt4UlVSQ0IzVnVhVEZGUkVNSGRXNXBNVVZFUkFkMWJta3hSVVJGQjNWdWFURkZSRVlIZFc1cE1VVkZNQWQxYm1reFJVVXhCM1Z1YVRGRlJUSUhkVzVwTVVWRk13ZDFibWt4UlVVMEIzVnVhVEZGUlRVSGRXNXBNVVZGTmdkMWJta3hSVVUzQjNWdWFURkZSVGdIZFc1cE1VVkZPUWQxYm1reFJVVkJCM1Z1YVRGRlJVSUhkVzVwTVVWRlF3ZDFibWt4UlVWRUIzVnVhVEZGUlVVSGRXNXBNVVZGUmdkMWJta3hSVVl3QjNWdWFURkZSakVIZFc1cE1VVkdOQWQxYm1reFJVWTFCM1Z1YVRGRlJqWUhkVzVwTVVWR053ZDFibWt4UlVZNEIzVnVhVEZGUmprR1pHTnliMkYwQjNWdWFUSXdRVUlIZFc1cE1EUTVRUWQxYm1rd05EbENCM1Z1YVRBMFFUSUhkVzVwTURSQk13ZDFibWt3TkVGREIzVnVhVEEwUVVRSGRXNXBNRFJDTWdkMWJta3dORUl6QjNWdWFUQTBRallIZFc1cE1EUkNOd2QxYm1rd05FTkNCM1Z1YVRBMFEwTUhkVzVwTURSR05nZDFibWt3TkVZM0IzVnVhVEEwT1RZSGRXNXBNRFE1TndkMWJta3dORUpGQjNWdWFUQTBRa1lIZFc1cE1EUkNRZ2QxYm1rd05EaERCM1Z1YVRBME5qSUhkVzVwTURRNU1nZDFibWt3TkRrekIzVnVhVEEwT1VVSGRXNXBNRFE1UmdkMWJta3dORGhCQjNWdWFUQTBPRUlIZFc1cE1EUkRPUWQxYm1rd05FTkJCM1Z1YVRBMFEwUUhkVzVwTURSRFJRZDFibWt3TkVNMUIzVnVhVEEwUXpZSGRXNXBNRFJDTUFkMWJta3dORUl4QjNWdWFUQTBSa1VIZFc1cE1EUkdSZ2QxYm1rd05URXhCM1Z1YVRJd01UVUhkVzVwTURBd01nZDFibWt3TURBNUFBQUFBQUVBQUFBTUFBQUFBQUFBQUFJQUNBREtBTW9BQVFFZUFTUUFBUUZXQVdFQUFRRjJBWFlBQVFGN0FYd0FBUUYrQVg0QUFRR1RBWlVBQVFIVkFkVUFBUUFBQUFBQUFBQUFBQUVBQUFBS0FCNEFMQUFCUkVaTVZBQUlBQVFBQUFBQS8vOEFBUUFBQUFGclpYSnVBQWdBQUFBQkFBQUFBUUFFQUFJQUFBQUVBQTVOYUZVR2Mxd0FBWHJZQUFRQUFBR3RBMlFEYWdOd0EzWUQ2QVB5QkFRRUtnUkFCRW9FYkFTT0JKUUU0Z1VRQlRJRlZBVjZCYUFGcGdhTUJwSUd1QWJlQjBBSDBnZjBDQklJTEFneUNFQUlSZ2hNQ0ZJSWVBaVNDS0FJdmdqRUNPSUkvQWtDQ2NRS05ncGNDczRLMUFyZUN1UUs2Z3J3Q3c0TEhBdEdDMHdMWWd0OEM0SUxuQXVpQzZnTDNndmtDKzRNSEF4Q0RHZ01pZ3lzRE00TS9BMWVEWFFObGcyNERnSU9KQTVHRG5nT25nN0VEczRPMkE3eUR3UVBEZzhvRHk0UFJBK1NENndQeGcvY0QvNFFJQkE2RUVBUVloQ0VFS1lSR0JFK0VXUVJnaEdjRWw0U2FCSzJFd1FURGhNVUV4b1RJQk1tRXl3VFVoTmNFMklUZEJPZUU3UVR4aFBZRS80VUJCUWFGQ1FVTmhSY0ZISVVlQlIrRkpnVW5oVEVGT29WMEJaQ0ZyUVhKaGVZR0FvWWZCanVHUUFaRmhrc0dVSVpXQmw2R1p3WnZobmdHZ0lhS0JwT0duUWFtaHJBR3NZYXpCclNHdGdiYWh1SUc2WWJ4QnZpSEFBY0hodzhIRUljU0J4T0hGUWNXaHlBSEtZY3pCenlIUmdkTmgxVUhjWWQ1QjVXSG5RZTVoOEVIeFlmS0I4Nkgwd2ZjaCtJSDQ0ZnBCK3FIOEFmeGgvY0grSWYrQi8rSUNBZ0ppQklJR29nakNDdUlOQWcxaUVrSVZJaGdDR3VJZHdoL2lJRUlpWWlMQ0pPSWxRaVdpS0FJcVlpekNMeUl4Z2pQaU5NSTFvamFDUk9KVFFtR2lZZ0ppWW1MQ1l5SmpnbVBpWmtKdlluRkNlbUo4Z242aWdNS0g0b2xDaTJLTmdvL2ltUUtnSXFEQ29pS2tRcVppcUlLdFlxK0NzYUswQXJaaXhNTE40dFFDMWlMZlF0K2k0Z0xqNHVaQzU2THp3dlhpK0FMNFl2MURBaU1Hd3czakRvTWFveHdESGlNZ1F5S2pKUU1tSXpTRE9xTThnenpqUDBOQTQwTERReU5EZzBRalJnTklZMHJEVFNOV1ExZ2pXSU5ZNDFsRFcyTmJ3MkxqWk1ObkkyaURhT05yUTIwamJrTjNZM2xEZTJPQmc0SGpoQU9MSTQwRGxDT1dBNWRqbDhPWUk1aURucU9mQTZGam84T21JNmZEckdPdVE3TGp0TU81WTd0RHdXUEJ3OGpqeXNQUjQ5UEQydVBjdytQajVjUHM0KzdEOWVQM3cvN2tBTVFINUFuRUVPUVN4Qm5rRzhRaTVDVEVLK1F0eEM4a0w0UXc1REZFTXFRekJEUmtOTVEySkRhRU4rUTRSRG1rT2dRN1pEdkVQZVJBQkVKa1JNUkhKRW1FUytST1JGQ2tVd1JWWkZmRVdpUmNoRjdrWVVSanBHUUVaR1J0aEc5a2VJUjZaSU9FaFdTS1JJeGttc1NnNUtGRXJXU3VCTFFrdElTMDVMZEV3MlRJUk1wa3pJQUFFQVdRQUxBQUVBV1FBTEFBRUFFZjhnQUJ3QUlmL0RBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdFdi81OEJPUDlSQVRuL2V3RTcvOG9CUFAvZEFVSC84Z0ZKLzNVQlMvL0tBVlAvVHdGVS80d0JyZi8xQWJYLzlRRzUvOGNCdXYveEFidi96UUc4LzkwQnZ2L0VBQUlCREFBTEFWUC81Z0FFQUF2LzVnQS8vL1FBWC8vdkFUei83UUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFVQVNQL3VBRm4vNmdHNy8vQUJ2UC90QWI3LzhBQUNBRlQvNWdHbi84QUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBQkFhZi82d0FUQUZuL3dRQ3ovOFVBeGYrMEFPWC8xd0R4LzdrQkJQK3lBUmYvMGdFYi84Z0JMLytnQVRuL3hRRkIvK1FCU3YvTUFVei96QUZVLzhzQlZmL3ZBYW4vNkFHdC8rWUJ0Zi9uQWJiLzV3QUxBRm4vcEFHbkFCTUJxZi96QWEzLzhRRzEvL0lCdHYveEFibi9Pd0c2LzlvQnUvOVVBYnova1FHKy96OEFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0FWZ0FPQUgvL253Qy8vOTRBd3YvbEFOVC9xQURvLzhvQlJ2L2pBYWYveGdIZi8vVUFBUUduQUE0QU9RQlUvN1VBV2YvSEFHdit1QUI2L3lnQWYvOU5BSVQvamdDSC82RUFzLyt1QUxyL2ZnQysvMmNBd2YrSEFNTC9aUURGLzU0QXgvOXFBTWovY3dESi8xNEExUCtsQU9FQUR3RGwvK1FBNXYrZ0FPai9kQURxLzRBQThmK3lBUGovZlFENi80QUEvUDk1QVFML2ZRRUUvMzhCRi8rWUFSdi8yZ0VuLzRFQktmK1lBUzMvZlFFdi83TUJNLytnQVRuL2ZBRTcvNW9CUFA5c0FVSC81Z0ZHLzJzQlN2K1NBVXovclFGUS8zc0JVd0FQQVZUL2tRRlYvL0lCcC8rdkFhbi91UUd0LzdrQnRmKzVBYmIvdVFHNC83d0J1Zi94QWJ6LzhRRzkvKzBCM1ArcEFkLy95UUFCQWFmLzZ3QUpBQXNBRkFBL0FCRUFWUC9pQUY4QUV3R24vN1FCcWYvWkFhMy8yUUcxLzlrQnR2L1pBQWtBQ3dBUEFEOEFEQUJVLytzQVh3QU9BYWYveXdHcC8ra0JyZi9uQWJYLzV3RzIvK2NBR0FDei85UUF2Zi90QUw4QUVRREYvK0FBeC8vbkFNai81UURKLys0QTFBQVNBT1gvNlFEeC85Y0JMLy9YQVRuLzB3RTcvOVlCUFAvRkFVSC81d0ZKQUEwQlN3QU1BVlQvMWdGVi8vSUJxZi9wQWEzLzV3RzEvK2NCdHYvcEFkLy84QUFrQUFqLzRnQUxBQlFBRFAvUEFEOEFFZ0JJLytvQVZQL1lBRmIvNmdCZkFCTUFhLyt1QUhyL3pRQi8vNkFBaFAvQkFJZi93QUN6LzlBQXQvL3FBTHIveGdDN0FBMEF2Zi9wQUw3LzFnREIvK2dBd3YrNkFNWC82UURILzhzQXlQL2FBTW4veHdGdS85TUJwLytyQWFuL3pRR3QvOHNCdGYvTEFiYi95d0c1Ly9NQnZQL3pBYjMvN3dIYy8rZ0IzLy91QUFnQVdmL2xBTFAveXdESS8rUUJwd0FOQWFuLzdRR3QvK3NCdGYvc0FiYi83QUFIQVBILzhBRUUvL0VCRy8vekFTLy84UUZLLy9NQlRQL3BBVlQvMHdBR0FNWC82Z0RvLys0QThmK3dBUy8vN0FGVS8rd0IzUC9vQUFFQThmLzFBQU1BQ3dBVUFEOEFFZ0JmQUJNQUFRRHgvOEFBQVFEeC84QUFBUUR4LzhBQUNRREYvK29BNlArNEFQSC82Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUdBTVgvNmdEby8rNEE4Zit3QVMvLzdBRlUvK3dCM1Avb0FBTUFTQUFQQUZZQUlBQlpBQkVBQndCSUFBMEF3UUFMQU1MLzZnREZBQXdBNlAvSUFSZi84UUhmLy9VQUFRRVgvL0VBQndCSUFBMEF3UUFMQU1MLzZnREZBQXdBNlAvSUFSZi84UUhmLy9VQUJnREYvK29BNlAvdUFQSC9zQUV2Lyt3QlZQL3NBZHovNkFBQkFQSC85UUF3QUZUL2JRQlovNHdBYS8yL0FIcitmUUIvL3J3QWhQOHJBSWYvU3dDei8yRUF1djhQQUw3KzZBREIveDhBd3Y3bEFNWC9SZ0RIL3UwQXlQNzlBTW4rMlFEVS8xSUE0UUFGQU9YL3ZRRG0vMGtBNlA3K0FPci9Fd0R4LzJnQStQOE9BUHIvRXdEOC93Y0JBdjhPQVFUL0VRRVgvendCRy8rc0FTZi9GUUVwL3p3QkxmOE9BUy8vYWdFei8wa0JPZjhNQVR2L1B3RTgvdkVCUWYvQUFVYis3d0ZLL3pFQlRQOWZBVkQvQ2dGVEFBVUJWUDh3QVZYLzFRSGMvMWtCMy8rUEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhZi83UUc5Ly9VQUhBQWgvOE1BVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FTLy9ud0U0LzFFQk9mOTdBVHYveWdFOC85MEJRZi95QVVuL2RRRkwvOG9CVS85UEFWVC9qQUd0Ly9VQnRmLzFBYm4veHdHNi8vRUJ1Ly9OQWJ6LzNRRysvOFFBQVFDL0FBMEFBZ0N6LzhJQXZ3QVFBQUVBdi8vaUFBRUF3di95QUFFQXZ3QU9BQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUFNQXhmL3RBUEgvd0FIYy8rd0FDZ0M2LytZQXZmL3JBTDcvNlFEQS8vQUF3Zi9uQU1YLzR3REgvODRBeVAvVUFNbi8yd0hmLys0QUFRRHgvOEFBQlFDOS8rd0F2d0FQQU1ILzZnREYvOFFBeC8vbkFBWUFTUC9wQUwzLzdnQy9BQkFBd2Yvc0FNWC9JQUhjLzlvQUFRQy9BQThBQmdERi8rb0E2UC91QVBIL3F3RXYvK3dCVlAvc0Fkei82QUFCQVBILzFRQUJBTVVBQ3dBTkFFZ0FEQURCQUFzQXhRQU1BYWYvdndHcC8rNEJyZi9zQWJYLzdRRzIvK3dCdVAvMUFia0FEZ0c3QUEwQnZnQU5BZC8vN1FBQkFQSC8yQUFDQVBIL3FnSGMvK0VBQ3dEaC85UUE4Zi9KQVFULzVRRWIvK01CTC8vRUFUai80UUZKLzlRQlN2LzFBVXYvNXdGVC85SUJWUC9KQUFrQTRmL0RBUEgvendFdi84NEJPUC9uQVR2LzN3RkovOUVCUy8vc0FWUC9vQUZVLzlFQUNRRGgvOE1BOGYvUEFTLy96Z0U0LytjQk8vL2ZBVW4vMFFGTC8rd0JVLytnQVZULzBRQUlBT0gveVFEeC85OEJCUC90QVJ2LzZ3RXYvOThCTy8vcEFVci85UUZVLytBQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTRmL21BUEgvMEFFdi84NEJPUC9vQVVuLzV3RkwvKzBCVS8vbUFWVC8wQUFMQU5RQUZBRGgvK0FBNkFBVEFUai80UUU1LytBQlBQL2hBVUgvNlFGSi85OEJTLy9lQVZQLzN3RlYvL0lBR0FDei85UUF2Zi90QUw4QUVRREYvK0FBeC8vbkFNai81UURKLys0QTFBQVNBT1gvNlFEeC85Y0JMLy9YQVRuLzB3RTcvOVlCUFAvRkFVSC81d0ZKQUEwQlN3QU1BVlQvMWdGVi8vSUJxZi9wQWEzLzV3RzEvK2NCdHYvcEFkLy84QUFGQUJuLzhnRGgvL0VCU2YveUFVdi84Z0ZULy9JQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFTQU5UL3JnRGhBQklBNXYvZ0FPai9yUURxLzlZQStQL2ZBUHovMGdFQy8rQUJGLy9PQVNmLzNRRXAvK0lCTGYvZ0FUUC80QUU1LytrQlBQL2FBVWIvdlFGUS85OEJVd0FSQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFEQURVQUJNQTRmL21BT0wvOUFEb0FCSUE4Zi9uQVMvLzV3RTQvK1VCT2Yvb0FVbi81Z0ZMLytZQlUvL21BVlQvNXdBSkFPSC93d0R4Lzg4QkwvL09BVGovNXdFNy85OEJTZi9SQVV2LzdBRlQvNkFCVlAvUkFBa0E0Zi9EQVBIL3p3RXYvODRCT1AvbkFUdi8zd0ZKLzlFQlMvL3NBVlAvb0FGVS85RUFBZ0RVLytJQlUvL2tBQUlBMVAvaEFPai81QUFHQU9qLzdnRHgvKzRCQlAvMEFSdi84UUV2Lys4QlZQL3ZBQVFBOGYvMEFRVC85UUV2Ly9VQlZQLzFBQUlBNlAvSkFSZi83Z0FHQU9nQUZBRHgvKzBBOS8vaUFTLy83UUU1LyswQlZQL3RBQUVCRi8veEFBVUJGLy9yQWFuLzZ3R3QvK2tCdGYvckFiYi82d0FUQUVnQURRREMvNnNBdy8vQUFNZi8xUURvLzZvQkYvL2lBUnNBREFGS0FBc0JUQUFMQWFmL3Z3R3AvKzRCcmYvc0FiWC83UUcyLyt3QnVQLzFBYmtBRGdHN0FBMEJ2Z0FOQWQvL3NBQUdBTVgvNmdEby8rNEE4Zit3QVMvLzdBRlUvK3dCM1Avb0FBWUE2QUFVQVBILzhBRDhBQXdCTC8vd0FUbi81Z0ZVLy9BQUJRRG9BRG9BOGYvakFTLy80Z0U1LytNQlZQL2pBQWdBOGYrNkFRVC96d0ViLzlzQkwvOVFBVG4vblFGSy8vQUJUUC95QVZUL1RBQUlBUEgvdWdFRS84OEJHLy9iQVMvL1VBRTUvNTBCU3Yvd0FVei84Z0ZVLzB3QUJnREYvK29BNlAvdUFQSC9zQUV2Lyt3QlZQL3NBZHovNkFBQkFPai83d0FJQVBIL3VnRUUvODhCRy8vYkFTLy9VQUU1LzUwQlN2L3dBVXovOGdGVS8wd0FDQUR4LzdvQkJQL1BBUnYvMndFdi8xQUJPZitkQVVyLzhBRk0vL0lCVlA5TUFBZ0E4Zis2QVFUL3p3RWIvOXNCTC85UUFUbi9uUUZLLy9BQlRQL3lBVlQvVEFBY0FDSC93d0JXLys4QVdmL2ZBSmIvN2dDei8rVUF0UC9SQUw4QUVRREYvOGdBMUFBVEFPSC94UUR4LzhvQkwvK2ZBVGovVVFFNS8zc0JPLy9LQVR6LzNRRkIvL0lCU2Y5MUFVdi95Z0ZULzA4QlZQK01BYTMvOVFHMS8vVUJ1Zi9IQWJyLzhRRzcvODBCdlAvZEFiNy94QUFKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFrQUN3QVVBRDhBRVFCVS8rSUFYd0FUQWFmL3RBR3AvOWtCcmYvWkFiWC8yUUcyLzlrQUJ3QklBQTBBd1FBTEFNTC82Z0RGQUF3QTZQL0lBUmYvOFFIZi8vVUFCZ0RGLytvQTZQL3VBUEgvc0FFdi8rd0JWUC9zQWR6LzZBQXdBRlQvYlFCWi80d0FhLzIvQUhyK2ZRQi8vcndBaFA4ckFJZi9Td0N6LzJFQXV2OFBBTDcrNkFEQi94OEF3djdsQU1YL1JnREgvdTBBeVA3OUFNbisyUURVLzFJQTRRQUZBT1gvdlFEbS8wa0E2UDcrQU9yL0V3RHgvMmdBK1A4T0FQci9Fd0Q4L3djQkF2OE9BUVQvRVFFWC96d0JHLytzQVNmL0ZRRXAvendCTGY4T0FTLy9hZ0V6LzBrQk9mOE1BVHYvUHdFOC92RUJRZi9BQVViKzd3RksvekVCVFA5ZkFWRC9DZ0ZUQUFVQlZQOHdBVlgvMVFIYy8xa0IzLytQQUFJQTZQL0pBUmYvN2dBVEFGbi93UUN6LzhVQXhmKzBBT1gvMXdEeC83a0JCUCt5QVJmLzBnRWIvOGdCTC8rZ0FUbi94UUZCLytRQlN2L01BVXovekFGVS84c0JWZi92QWFuLzZBR3QvK1lCdGYvbkFiYi81d0FUQUZuL3dRQ3ovOFVBeGYrMEFPWC8xd0R4LzdrQkJQK3lBUmYvMGdFYi84Z0JMLytnQVRuL3hRRkIvK1FCU3YvTUFVei96QUZVLzhzQlZmL3ZBYW4vNkFHdC8rWUJ0Zi9uQWJiLzV3QUNBT2oveVFFWC8rNEFBUUJaQUFzQUFRQlpBQXNBQVFCWkFBc0FBUUJaQUFzQUFRQlpBQXNBQ1FHcC8vSUJyZi95QWJYLzhnRzIvL0lCdWYvQUFici83QUc3LzhjQnZQL1lBYjcvdndBQ0Fidi83Z0c4Ly9VQUFRR24vOUlBQkFHcC8rc0JyZi9wQWJYLzZ3RzIvK3NBQ2dHbkFCRUJxZi93QWEzLzdnRzEvKzhCdHYvd0Fibi91d0c2Lyt3QnUvKzNBYnovMVFHKy83UUFCUUduLy9NQnVmL3VBYnYvOFFHOS8rd0J2di9xQUFRQnVmL3BBYnYvNndHOC8vRUJ2di9sQUFRQnVmL3lBYnYvOFFHOC8vVUJ2di91QUFrQnAvKy9BYW4vN2dHdC8rd0J0Zi90QWJiLzdBRzQvL1VCdVFBT0Fic0FEUUcrQUEwQUFRR24vKzhBQlFHbi84Y0JxZi95QWEzLzhBRzEvL0FCdHYvd0FBSUJwLy9jQWJrQURnQUVBYW4vN1FHdC8rc0J0Zi9yQWJiLzZ3QUpBYWYvd0FHcC8rMEJyZi9yQWJYLzZ3RzIvK3NCdVFBUEFic0FFQUc4QUEwQnZnQVFBQVVCcHdBTUFhbi84QUd0Ly9BQnRmL3dBYmIvOEFBQkFkZi9hZ0FCQWRmL0ZRQUdBRWdBQ3dDNi8vSUF4Ly94QU1uLzd3SGNBQThCMy8vdUFBRUJwLy9WQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhZi83UUc5Ly9VQUNRQi8vOThBc1AvekFMTC84QUMvLytvQTFQL2ZBT0gvNEFGVC8rQUJwLy90QWIzLzlRQTVBRlQvdFFCWi84Y0FhLzY0QUhyL0tBQi8vMDBBaFArT0FJZi9vUUN6LzY0QXV2OStBTDcvWndEQi80Y0F3djlsQU1YL25nREgvMm9BeVA5ekFNbi9YZ0RVLzZVQTRRQVBBT1gvNUFEbS82QUE2UDkwQU9yL2dBRHgvN0lBK1A5OUFQci9nQUQ4LzNrQkF2OTlBUVQvZndFWC81Z0JHLy9hQVNmL2dRRXAvNWdCTGY5OUFTLy9zd0V6LzZBQk9mOThBVHYvbWdFOC8yd0JRZi9tQVViL2F3RksvNUlCVFArdEFWRC9ld0ZUQUE4QlZQK1JBVlgvOGdHbi82OEJxZis1QWEzL3VRRzEvN2tCdHYrNUFiai92QUc1Ly9FQnZQL3hBYjMvN1FIYy82a0IzLy9KQUJ3QUlmL0RBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdFdi81OEJPUDlSQVRuL2V3RTcvOG9CUFAvZEFVSC84Z0ZKLzNVQlMvL0tBVlAvVHdGVS80d0JyZi8xQWJYLzlRRzUvOGNCdXYveEFidi96UUc4LzkwQnZ2L0VBQndBSWYvREFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0V2LzU4Qk9QOVJBVG4vZXdFNy84b0JQUC9kQVVILzhnRkovM1VCUy8vS0FWUC9Ud0ZVLzR3QnJmLzFBYlgvOVFHNS84Y0J1di94QWJ2L3pRRzgvOTBCdnYvRUFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUJ3QUlmL0RBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdFdi81OEJPUDlSQVRuL2V3RTcvOG9CUFAvZEFVSC84Z0ZKLzNVQlMvL0tBVlAvVHdGVS80d0JyZi8xQWJYLzlRRzUvOGNCdXYveEFidi96UUc4LzkwQnZ2L0VBQndBSWYvREFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0V2LzU4Qk9QOVJBVG4vZXdFNy84b0JQUC9kQVVILzhnRkovM1VCUy8vS0FWUC9Ud0ZVLzR3QnJmLzFBYlgvOVFHNS84Y0J1di94QWJ2L3pRRzgvOTBCdnYvRUFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUJ3QUlmL0RBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdFdi81OEJPUDlSQVRuL2V3RTcvOG9CUFAvZEFVSC84Z0ZKLzNVQlMvL0tBVlAvVHdGVS80d0JyZi8xQWJYLzlRRzUvOGNCdXYveEFidi96UUc4LzkwQnZ2L0VBQVFBQy8vbUFELy85QUJmLys4QlBQL3RBQVVBU1AvdUFGbi82Z0c3Ly9BQnZQL3RBYjcvOEFBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFVQVNQL3VBRm4vNmdHNy8vQUJ2UC90QWI3LzhBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWYvN1FHOS8vVUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhZi83UUc5Ly9VQUNRQi8vOThBc1AvekFMTC84QUMvLytvQTFQL2ZBT0gvNEFGVC8rQUJwLy90QWIzLzlRQUJBYWYvNndBQkFhZi82d0FCQWFmLzZ3QUJBYWYvNndBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFBY0E4Zi93QVFULzhRRWIvL01CTC8veEFVci84d0ZNLytrQlZQL1RBQWNBOGYvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8ra0JWUC9UQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFBY0E4Zi93QVFULzhRRWIvL01CTC8veEFVci84d0ZNLytrQlZQL1RBQWNBOGYvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8ra0JWUC9UQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFBY0E4Zi93QVFULzhRRWIvL01CTC8veEFVci84d0ZNLytrQlZQL1RBQUVBOGYvMUFBRUE4Zi8xQUFFQThmLzFBQUVBOGYvMUFBRUE4Zi9BQUFrQXhmL3FBT2ovdUFEeC8rb0JCUC93QVJ2LzhRRXYvK3NCU3YvMUFWVC83QUhjLytvQUNRREYvK29BNlArNEFQSC82Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWtBeGYvcUFPai91QUR4LytvQkJQL3dBUnYvOFFFdi8rc0JTdi8xQVZULzdBSGMvK29BQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQUhBRWdBRFFEQkFBc0F3di9xQU1VQURBRG8vOGdCRi8veEFkLy85UUFjQUNIL3d3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9CTC8rZkFUai9VUUU1LzNzQk8vL0tBVHovM1FGQi8vSUJTZjkxQVV2L3lnRlQvMDhCVlArTUFhMy85UUcxLy9VQnVmL0hBYnIvOFFHNy84MEJ2UC9kQWI3L3hBQUhBUEgvOEFFRS8vRUJHLy96QVMvLzhRRksvL01CVFAvcEFWVC8wd0FjQUNIL3d3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9CTC8rZkFUai9VUUU1LzNzQk8vL0tBVHovM1FGQi8vSUJTZjkxQVV2L3lnRlQvMDhCVlArTUFhMy85UUcxLy9VQnVmL0hBYnIvOFFHNy84MEJ2UC9kQWI3L3hBQUhBUEgvOEFFRS8vRUJHLy96QVMvLzhRRksvL01CVFAvcEFWVC8wd0FjQUNIL3d3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9CTC8rZkFUai9VUUU1LzNzQk8vL0tBVHovM1FGQi8vSUJTZjkxQVV2L3lnRlQvMDhCVlArTUFhMy85UUcxLy9VQnVmL0hBYnIvOFFHNy84MEJ2UC9kQWI3L3hBQUhBUEgvOEFFRS8vRUJHLy96QVMvLzhRRksvL01CVFAvcEFWVC8wd0FFQUF2LzVnQS8vL1FBWC8vdkFUei83UUFFQUF2LzVnQS8vL1FBWC8vdkFUei83UUFFQUF2LzVnQS8vL1FBWC8vdkFUei83UUFFQUF2LzVnQS8vL1FBWC8vdkFUei83UUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFVQVNQL3VBRm4vNmdHNy8vQUJ2UC90QWI3LzhBQUJBUEgvOVFBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFBUUR4Ly9VQUJRQkkvKzRBV2YvcUFidi84QUc4LyswQnZ2L3dBQUVBOGYvMUFBVUFTUC91QUZuLzZnRzcvL0FCdlAvdEFiNy84QUFCQVBILzlRQUZBRWovN2dCWi8rb0J1Ly93QWJ6LzdRRysvL0FBQVFEeC8vVUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBRUE4Zi9BQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQVFHbi8rc0FFd0JaLzhFQXMvL0ZBTVgvdEFEbC85Y0E4Zis1QVFUL3NnRVgvOUlCRy8vSUFTLy9vQUU1LzhVQlFmL2tBVXIvekFGTS84d0JWUC9MQVZYLzd3R3AvK2dCcmYvbUFiWC81d0cyLytjQUN3QlovNlFCcHdBVEFhbi84d0d0Ly9FQnRmL3lBYmIvOFFHNS96c0J1di9hQWJ2L1ZBRzgvNUVCdnY4L0FBc0FXZitrQWFjQUV3R3AvL01CcmYveEFiWC84Z0cyLy9FQnVmODdBYnIvMmdHNy8xUUJ2UCtSQWI3L1B3QUxBRm4vcEFHbkFCTUJxZi96QWEzLzhRRzEvL0lCdHYveEFibi9Pd0c2LzlvQnUvOVVBYnova1FHKy96OEFDd0JaLzZRQnB3QVRBYW4vOHdHdC8vRUJ0Zi95QWJiLzhRRzUvenNCdXYvYUFidi9WQUc4LzVFQnZ2OC9BQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUJBUEgvd0FBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQVFEeC84QUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBRUE4Zi9BQUFFQThmL0FBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFmLzdRRzkvL1VBQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFNQVNBQVBBRllBSUFCWkFCRUFBd0JJQUE4QVZnQWdBRmtBRVFBREFFZ0FEd0JXQUNBQVdRQVJBRGtBVlArMUFGbi94d0JyL3JnQWV2OG9BSC8vVFFDRS80NEFoLytoQUxQL3JnQzYvMzRBdnY5bkFNSC9od0RDLzJVQXhmK2VBTWYvYWdESS8zTUF5ZjllQU5UL3BRRGhBQThBNWYva0FPYi9vQURvLzNRQTZ2K0FBUEgvc2dENC8zMEErditBQVB6L2VRRUMvMzBCQlA5L0FSZi9tQUViLzlvQkovK0JBU24vbUFFdC8zMEJMLyt6QVRQL29BRTUvM3dCTy8rYUFUei9iQUZCLytZQlJ2OXJBVXIva2dGTS82MEJVUDk3QVZNQUR3RlUvNUVCVmYveUFhZi9yd0dwLzdrQnJmKzVBYlgvdVFHMi83a0J1UCs4QWJuLzhRRzgvL0VCdmYvdEFkei9xUUhmLzhrQU9RQlUvN1VBV2YvSEFHdit1QUI2L3lnQWYvOU5BSVQvamdDSC82RUFzLyt1QUxyL2ZnQysvMmNBd2YrSEFNTC9aUURGLzU0QXgvOXFBTWovY3dESi8xNEExUCtsQU9FQUR3RGwvK1FBNXYrZ0FPai9kQURxLzRBQThmK3lBUGovZlFENi80QUEvUDk1QVFML2ZRRUUvMzhCRi8rWUFSdi8yZ0VuLzRFQktmK1lBUzMvZlFFdi83TUJNLytnQVRuL2ZBRTcvNW9CUFA5c0FVSC81Z0ZHLzJzQlN2K1NBVXovclFGUS8zc0JVd0FQQVZUL2tRRlYvL0lCcC8rdkFhbi91UUd0LzdrQnRmKzVBYmIvdVFHNC83d0J1Zi94QWJ6LzhRRzkvKzBCM1ArcEFkLy95UUE1QUZUL3RRQlovOGNBYS82NEFIci9LQUIvLzAwQWhQK09BSWYvb1FDei82NEF1djkrQUw3L1p3REIvNGNBd3Y5bEFNWC9uZ0RILzJvQXlQOXpBTW4vWGdEVS82VUE0UUFQQU9YLzVBRG0vNkFBNlA5MEFPci9nQUR4LzdJQStQOTlBUHIvZ0FEOC8za0JBdjk5QVFUL2Z3RVgvNWdCRy8vYUFTZi9nUUVwLzVnQkxmOTlBUy8vc3dFei82QUJPZjk4QVR2L21nRTgvMndCUWYvbUFVYi9hd0ZLLzVJQlRQK3RBVkQvZXdGVEFBOEJWUCtSQVZYLzhnR24vNjhCcWYrNUFhMy91UUcxLzdrQnR2KzVBYmovdkFHNS8vRUJ2UC94QWIzLzdRSGMvNmtCMy8vSkFBRUJwLy9yQUFFQnAvL3JBQUVCcC8vckFBRUJwLy9yQUFFQnAvL3JBQUVCcC8vckFBa0FDd0FQQUQ4QURBQlUvK3NBWHdBT0FhZi95d0dwLytrQnJmL25BYlgvNXdHMi8rY0FKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFBZ0FXZi9sQUxQL3l3REkvK1FCcHdBTkFhbi83UUd0LytzQnRmL3NBYmIvN0FBSUFGbi81UUN6LzhzQXlQL2tBYWNBRFFHcC8rMEJyZi9yQWJYLzdBRzIvK3dBQ0FCWi8rVUFzLy9MQU1qLzVBR25BQTBCcWYvdEFhMy82d0cxLyt3QnR2L3NBQndBSWYvREFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0V2LzU4Qk9QOVJBVG4vZXdFNy84b0JQUC9kQVVILzhnRkovM1VCUy8vS0FWUC9Ud0ZVLzR3QnJmLzFBYlgvOVFHNS84Y0J1di94QWJ2L3pRRzgvOTBCdnYvRUFBVUFTUC91QUZuLzZnRzcvL0FCdlAvdEFiNy84QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWYvN1FHOS8vVUFKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FjQUNIL3d3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9CTC8rZkFUai9VUUU1LzNzQk8vL0tBVHovM1FGQi8vSUJTZjkxQVV2L3lnRlQvMDhCVlArTUFhMy85UUcxLy9VQnVmL0hBYnIvOFFHNy84MEJ2UC9kQWI3L3hBQUNBUXdBQ3dGVC8rWUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFnQVdmL2xBTFAveXdESS8rUUJwd0FOQWFuLzdRR3QvK3NCdGYvc0FiYi83QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FCTUFXZi9CQUxQL3hRREYvN1FBNWYvWEFQSC91UUVFLzdJQkYvL1NBUnYveUFFdi82QUJPZi9GQVVILzVBRksvOHdCVFAvTUFWVC95d0ZWLys4QnFmL29BYTMvNWdHMS8rY0J0di9uQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQUZZQURnQi8vNThBdi8vZUFNTC81UURVLzZnQTZQL0tBVWIvNHdHbi84WUIzLy8xQURrQVZQKzFBRm4veHdCci9yZ0FldjhvQUgvL1RRQ0UvNDRBaC8raEFMUC9yZ0M2LzM0QXZ2OW5BTUgvaHdEQy8yVUF4ZitlQU1mL2FnREkvM01BeWY5ZUFOVC9wUURoQUE4QTVmL2tBT2Ivb0FEby8zUUE2ditBQVBIL3NnRDQvMzBBK3YrQUFQei9lUUVDLzMwQkJQOS9BUmYvbUFFYi85b0JKLytCQVNuL21BRXQvMzBCTC8rekFUUC9vQUU1LzN3Qk8vK2FBVHovYkFGQi8rWUJSdjlyQVVyL2tnRk0vNjBCVVA5N0FWTUFEd0ZVLzVFQlZmL3lBYWYvcndHcC83a0JyZis1QWJYL3VRRzIvN2tCdVArOEFibi84UUc4Ly9FQnZmL3RBZHovcVFIZi84a0FKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FZQUxQLzFBQzkvKzBBdndBUkFNWC80QURILytjQXlQL2xBTW4vN2dEVUFCSUE1Zi9wQVBILzF3RXYvOWNCT2YvVEFUdi8xZ0U4LzhVQlFmL25BVWtBRFFGTEFBd0JWUC9XQVZYLzhnR3AvK2tCcmYvbkFiWC81d0cyLytrQjMvL3dBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQWtBQWovNGdBTEFCUUFEUC9QQUQ4QUVnQkkvK29BVlAvWUFGYi82Z0JmQUJNQWEvK3VBSHIvelFCLy82QUFoUC9CQUlmL3dBQ3ovOUFBdC8vcUFMci94Z0M3QUEwQXZmL3BBTDcvMWdEQi8rZ0F3dis2QU1YLzZRREgvOHNBeVAvYUFNbi94d0Z1LzlNQnAvK3JBYW4velFHdC84c0J0Zi9MQWJiL3l3RzUvL01CdlAvekFiMy83d0hjLytnQjMvL3VBQUVBOGYvQUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FCd0JJQUEwQXdRQUxBTUwvNmdERkFBd0E2UC9JQVJmLzhRSGYvL1VBQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFNQUJVLzIwQVdmK01BR3Y5dndCNi9uMEFmLzY4QUlUL0t3Q0gvMHNBcy85aEFMci9Ed0MrL3VnQXdmOGZBTUwrNVFERi8wWUF4Lzd0QU1qKy9RREovdGtBMVA5U0FPRUFCUURsLzcwQTV2OUpBT2orL2dEcS94TUE4ZjlvQVBqL0RnRDYveE1BL1A4SEFRTC9EZ0VFL3hFQkYvODhBUnYvckFFbi94VUJLZjg4QVMzL0RnRXYvMm9CTS85SkFUbi9EQUU3L3o4QlBQN3hBVUgvd0FGRy91OEJTdjh4QVV6L1h3RlEvd29CVXdBRkFWVC9NQUZWLzlVQjNQOVpBZC8vandBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQUVCcC8vckFCTUFXZi9CQUxQL3hRREYvN1FBNWYvWEFQSC91UUVFLzdJQkYvL1NBUnYveUFFdi82QUJPZi9GQVVILzVBRksvOHdCVFAvTUFWVC95d0ZWLys4QnFmL29BYTMvNWdHMS8rY0J0di9uQUJNQVdmL0JBTFAveFFERi83UUE1Zi9YQVBIL3VRRUUvN0lCRi8vU0FSdi95QUV2LzZBQk9mL0ZBVUgvNUFGSy84d0JUUC9NQVZUL3l3RlYvKzhCcWYvb0FhMy81Z0cxLytjQnR2L25BQklBMVArdUFPRUFFZ0RtLytBQTZQK3RBT3IvMWdENC85OEEvUC9TQVFMLzRBRVgvODRCSi8vZEFTbi80Z0V0LytBQk0vL2dBVG4vNlFFOC85b0JSdis5QVZELzN3RlRBQkVBSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFBZ0VNQUFzQlUvL21BREFBVlA5dEFGbi9qQUJyL2I4QWV2NTlBSC8rdkFDRS95c0FoLzlMQUxQL1lRQzYvdzhBdnY3b0FNSC9Id0RDL3VVQXhmOUdBTWYrN1FESS92MEF5ZjdaQU5UL1VnRGhBQVVBNWYrOUFPYi9TUURvL3Y0QTZ2OFRBUEgvYUFENC93NEErdjhUQVB6L0J3RUMvdzRCQlA4UkFSZi9QQUViLzZ3QkovOFZBU24vUEFFdC93NEJMLzlxQVRQL1NRRTUvd3dCTy84L0FUeis4UUZCLzhBQlJ2N3ZBVXIvTVFGTS8xOEJVUDhLQVZNQUJRRlUvekFCVmYvVkFkei9XUUhmLzQ4QUJRQkkvKzRBV2YvcUFidi84QUc4LyswQnZ2L3dBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUNRQi8vOThBc1AvekFMTC84QUMvLytvQTFQL2ZBT0gvNEFGVC8rQUJwLy90QWIzLzlRQUpBRllBRGdCLy81OEF2Ly9lQU1MLzVRRFUvNmdBNlAvS0FVYi80d0duLzhZQjMvLzFBQVFBQy8vbUFELy85QUJmLys4QlBQL3RBRGtBVlArMUFGbi94d0JyL3JnQWV2OG9BSC8vVFFDRS80NEFoLytoQUxQL3JnQzYvMzRBdnY5bkFNSC9od0RDLzJVQXhmK2VBTWYvYWdESS8zTUF5ZjllQU5UL3BRRGhBQThBNWYva0FPYi9vQURvLzNRQTZ2K0FBUEgvc2dENC8zMEErditBQVB6L2VRRUMvMzBCQlA5L0FSZi9tQUViLzlvQkovK0JBU24vbUFFdC8zMEJMLyt6QVRQL29BRTUvM3dCTy8rYUFUei9iQUZCLytZQlJ2OXJBVXIva2dGTS82MEJVUDk3QVZNQUR3RlUvNUVCVmYveUFhZi9yd0dwLzdrQnJmKzVBYlgvdVFHMi83a0J1UCs4QWJuLzhRRzgvL0VCdmYvdEFkei9xUUhmLzhrQUdBQ3ovOVFBdmYvdEFMOEFFUURGLytBQXgvL25BTWovNVFESi8rNEExQUFTQU9YLzZRRHgvOWNCTC8vWEFUbi8wd0U3LzlZQlBQL0ZBVUgvNXdGSkFBMEJTd0FNQVZULzFnRlYvL0lCcWYvcEFhMy81d0cxLytjQnR2L3BBZC8vOEFBSEFQSC84QUVFLy9FQkcvL3pBUy8vOFFGSy8vTUJUUC9wQVZULzB3QUJBUEgvOVFBSkFNWC82Z0RvLzdnQThmL3FBUVQvOEFFYi8vRUJMLy9yQVVyLzlRRlUvK3dCM1AvcUFBWUF4Zi9xQU9qLzdnRHgvN0FCTC8vc0FWVC83QUhjLytnQUJ3QklBQTBBd1FBTEFNTC82Z0RGQUF3QTZQL0lBUmYvOFFIZi8vVUFBUUVYLy9FQUFRRHgvL1VBQWdEby84a0JGLy91QUFjQVNBQU5BTUVBQ3dEQy8rb0F4UUFNQU9qL3lBRVgvL0VCMy8vMUFBa0FDd0FQQUQ4QURBQlUvK3NBWHdBT0FhZi95d0dwLytrQnJmL25BYlgvNXdHMi8rY0FDUUFMQUE4QVB3QU1BRlQvNndCZkFBNEJwLy9MQWFuLzZRR3QvK2NCdGYvbkFiYi81d0FKQUFzQUR3QS9BQXdBVlAvckFGOEFEZ0duLzhzQnFmL3BBYTMvNXdHMS8rY0J0di9uQUNRQUNQL2lBQXNBRkFBTS84OEFQd0FTQUVqLzZnQlUvOWdBVnYvcUFGOEFFd0JyLzY0QWV2L05BSC8vb0FDRS84RUFoLy9BQUxQLzBBQzMvK29BdXYvR0FMc0FEUUM5LytrQXZ2L1dBTUgvNkFEQy83b0F4Zi9wQU1mL3l3REkvOW9BeWYvSEFXNy8wd0duLzZzQnFmL05BYTMveXdHMS84c0J0di9MQWJuLzh3RzgvL01CdmYvdkFkei82QUhmLys0QUJ3QklBQTBBd1FBTEFNTC82Z0RGQUF3QTZQL0lBUmYvOFFIZi8vVUFBUUJaQUFzQUFRQlpBQXNBQVFCWkFBc0FDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBRUE4Zi9BQUJ3QUlmL0RBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdFdi81OEJPUDlSQVRuL2V3RTcvOG9CUFAvZEFVSC84Z0ZKLzNVQlMvL0tBVlAvVHdGVS80d0JyZi8xQWJYLzlRRzUvOGNCdXYveEFidi96UUc4LzkwQnZ2L0VBQWNBOGYvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8ra0JWUC9UQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhZi83UUc5Ly9VQUJRQkkvKzRBV2YvcUFidi84QUc4LyswQnZ2L3dBQUVBOGYvMUFBa0FDd0FVQUQ4QUVRQlUvK0lBWHdBVEFhZi90QUdwLzlrQnJmL1pBYlgvMlFHMi85a0FCd0JJQUEwQXdRQUxBTUwvNmdERkFBd0E2UC9JQVJmLzhRSGYvL1VBQkFBTC8rWUFQLy8wQUYvLzd3RTgvKzBBSkFBSS8rSUFDd0FVQUF6L3p3QS9BQklBU1AvcUFGVC8yQUJXLytvQVh3QVRBR3YvcmdCNi84MEFmLytnQUlUL3dRQ0gvOEFBcy8vUUFMZi82Z0M2LzhZQXV3QU5BTDMvNlFDKy85WUF3Zi9vQU1ML3VnREYvK2tBeC8vTEFNai8yZ0RKLzhjQmJ2L1RBYWYvcXdHcC84MEJyZi9MQWJYL3l3RzIvOHNCdWYvekFiei84d0c5Lys4QjNQL29BZC8vN2dBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUdBQ3ovOVFBdmYvdEFMOEFFUURGLytBQXgvL25BTWovNVFESi8rNEExQUFTQU9YLzZRRHgvOWNCTC8vWEFUbi8wd0U3LzlZQlBQL0ZBVUgvNXdGSkFBMEJTd0FNQVZULzFnRlYvL0lCcWYvcEFhMy81d0cxLytjQnR2L3BBZC8vOEFBQkFSZi84UUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUJ3RHgvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovNlFGVS85TUFIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUJ3RHgvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovNlFGVS85TUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFFQThmLzFBQUVBOGYvMUFBRUE4Zi8xQUJnQXMvL1VBTDMvN1FDL0FCRUF4Zi9nQU1mLzV3REkvK1VBeWYvdUFOUUFFZ0RsLytrQThmL1hBUy8vMXdFNS85TUJPLy9XQVR6L3hRRkIvK2NCU1FBTkFVc0FEQUZVLzlZQlZmL3lBYW4vNlFHdC8rY0J0Zi9uQWJiLzZRSGYvL0FBQVFFWC8vRUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFrQXhmL3FBT2ovdUFEeC8rb0JCUC93QVJ2LzhRRXYvK3NCU3YvMUFWVC83QUhjLytvQUJnREYvK29BNlAvdUFQSC9zQUV2Lyt3QlZQL3NBZHovNkFBU0FOVC9yZ0RoQUJJQTV2L2dBT2ovclFEcS85WUErUC9mQVB6LzBnRUMvK0FCRi8vT0FTZi8zUUVwLytJQkxmL2dBVFAvNEFFNS8ra0JQUC9hQVViL3ZRRlEvOThCVXdBUkFBY0FTQUFOQU1FQUN3REMvK29BeFFBTUFPai95QUVYLy9FQjMvLzFBQklBMVArdUFPRUFFZ0RtLytBQTZQK3RBT3IvMWdENC85OEEvUC9TQVFMLzRBRVgvODRCSi8vZEFTbi80Z0V0LytBQk0vL2dBVG4vNlFFOC85b0JSdis5QVZELzN3RlRBQkVBQndCSUFBMEF3UUFMQU1MLzZnREZBQXdBNlAvSUFSZi84UUhmLy9VQUVnRFUvNjRBNFFBU0FPYi80QURvLzYwQTZ2L1dBUGovM3dEOC85SUJBdi9nQVJmL3pnRW4vOTBCS2YvaUFTMy80QUV6LytBQk9mL3BBVHovMmdGRy83MEJVUC9mQVZNQUVRQUhBRWdBRFFEQkFBc0F3di9xQU1VQURBRG8vOGdCRi8veEFkLy85UUFZQUxQLzFBQzkvKzBBdndBUkFNWC80QURILytjQXlQL2xBTW4vN2dEVUFCSUE1Zi9wQVBILzF3RXYvOWNCT2YvVEFUdi8xZ0U4LzhVQlFmL25BVWtBRFFGTEFBd0JWUC9XQVZYLzhnR3AvK2tCcmYvbkFiWC81d0cyLytrQjMvL3dBQUVCRi8veEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFBVUFTUC91QUZuLzZnRzcvL0FCdlAvdEFiNy84QUFCQVBILzlRQUZBRWovN2dCWi8rb0J1Ly93QWJ6LzdRRysvL0FBQVFEeC8vVUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFFQThmLzFBQVVBU1AvdUFGbi82Z0c3Ly9BQnZQL3RBYjcvOEFBQkFQSC85UUFGQUVqLzdnQlovK29CdS8vd0Fiei83UUcrLy9BQUFRRHgvL1VBQlFCSS8rNEFXZi9xQWJ2LzhBRzgvKzBCdnYvd0FBRUE4Zi8xQUFVQVNQL3VBRm4vNmdHNy8vQUJ2UC90QWI3LzhBQUJBUEgvOVFBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFBUUR4Ly9VQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFrQXhmL3FBT2ovdUFEeC8rb0JCUC93QVJ2LzhRRXYvK3NCU3YvMUFWVC83QUhjLytvQUNRQi8vOThBc1AvekFMTC84QUMvLytvQTFQL2ZBT0gvNEFGVC8rQUJwLy90QWIzLzlRQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFmLzdRRzkvL1VBQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhZi83UUc5Ly9VQUNRREYvK29BNlArNEFQSC82Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBSC8vM3dDdy8vTUFzdi93QUwvLzZnRFUvOThBNGYvZ0FWUC80QUduLyswQnZmLzFBQWtBeGYvcUFPai91QUR4LytvQkJQL3dBUnYvOFFFdi8rc0JTdi8xQVZULzdBSGMvK29BQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBQkFhZi82d0FCQWFmLzZ3QWtBQWovNGdBTEFCUUFEUC9QQUQ4QUVnQkkvK29BVlAvWUFGYi82Z0JmQUJNQWEvK3VBSHIvelFCLy82QUFoUC9CQUlmL3dBQ3ovOUFBdC8vcUFMci94Z0M3QUEwQXZmL3BBTDcvMWdEQi8rZ0F3dis2QU1YLzZRREgvOHNBeVAvYUFNbi94d0Z1LzlNQnAvK3JBYW4velFHdC84c0J0Zi9MQWJiL3l3RzUvL01CdlAvekFiMy83d0hjLytnQjMvL3VBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUNRQUNQL2lBQXNBRkFBTS84OEFQd0FTQUVqLzZnQlUvOWdBVnYvcUFGOEFFd0JyLzY0QWV2L05BSC8vb0FDRS84RUFoLy9BQUxQLzBBQzMvK29BdXYvR0FMc0FEUUM5LytrQXZ2L1dBTUgvNkFEQy83b0F4Zi9wQU1mL3l3REkvOW9BeWYvSEFXNy8wd0duLzZzQnFmL05BYTMveXdHMS84c0J0di9MQWJuLzh3RzgvL01CdmYvdkFkei82QUhmLys0QUJ3QklBQTBBd1FBTEFNTC82Z0RGQUF3QTZQL0lBUmYvOFFIZi8vVUFKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBVEFGbi93UUN6LzhVQXhmKzBBT1gvMXdEeC83a0JCUCt5QVJmLzBnRWIvOGdCTC8rZ0FUbi94UUZCLytRQlN2L01BVXovekFGVS84c0JWZi92QWFuLzZBR3QvK1lCdGYvbkFiYi81d0FJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFPUUJVLzdVQVdmL0hBR3YrdUFCNi95Z0FmLzlOQUlUL2pnQ0gvNkVBcy8rdUFMci9mZ0MrLzJjQXdmK0hBTUwvWlFERi81NEF4LzlxQU1qL2N3REovMTRBMVArbEFPRUFEd0RsLytRQTV2K2dBT2ovZEFEcS80QUE4Zit5QVBqL2ZRRDYvNEFBL1A5NUFRTC9mUUVFLzM4QkYvK1lBUnYvMmdFbi80RUJLZitZQVMzL2ZRRXYvN01CTS8rZ0FUbi9mQUU3LzVvQlBQOXNBVUgvNWdGRy8yc0JTditTQVV6L3JRRlEvM3NCVXdBUEFWVC9rUUZWLy9JQnAvK3ZBYW4vdVFHdC83a0J0Zis1QWJiL3VRRzQvN3dCdWYveEFiei84UUc5LyswQjNQK3BBZC8veVFBWUFMUC8xQUM5LyswQXZ3QVJBTVgvNEFESC8rY0F5UC9sQU1uLzdnRFVBQklBNWYvcEFQSC8xd0V2LzljQk9mL1RBVHYvMWdFOC84VUJRZi9uQVVrQURRRkxBQXdCVlAvV0FWWC84Z0dwLytrQnJmL25BYlgvNXdHMi8ra0IzLy93QUFFQkYvL3hBREFBVlA5dEFGbi9qQUJyL2I4QWV2NTlBSC8rdkFDRS95c0FoLzlMQUxQL1lRQzYvdzhBdnY3b0FNSC9Id0RDL3VVQXhmOUdBTWYrN1FESS92MEF5ZjdaQU5UL1VnRGhBQVVBNWYrOUFPYi9TUURvL3Y0QTZ2OFRBUEgvYUFENC93NEErdjhUQVB6L0J3RUMvdzRCQlA4UkFSZi9QQUViLzZ3QkovOFZBU24vUEFFdC93NEJMLzlxQVRQL1NRRTUvd3dCTy84L0FUeis4UUZCLzhBQlJ2N3ZBVXIvTVFGTS8xOEJVUDhLQVZNQUJRRlUvekFCVmYvVkFkei9XUUhmLzQ4QUFnRG8vOGtCRi8vdUFCZ0FzLy9VQUwzLzdRQy9BQkVBeGYvZ0FNZi81d0RJLytVQXlmL3VBTlFBRWdEbC8ra0E4Zi9YQVMvLzF3RTUvOU1CTy8vV0FUei94UUZCLytjQlNRQU5BVXNBREFGVS85WUJWZi95QWFuLzZRR3QvK2NCdGYvbkFiYi82UUhmLy9BQUFRRVgvL0VBQVFEeC84QUFDUURoLzhNQThmL1BBUy8vemdFNC8rY0JPLy9mQVVuLzBRRkwvK3dCVS8rZ0FWVC8wUUF3QUZUL2JRQlovNHdBYS8yL0FIcitmUUIvL3J3QWhQOHJBSWYvU3dDei8yRUF1djhQQUw3KzZBREIveDhBd3Y3bEFNWC9SZ0RIL3UwQXlQNzlBTW4rMlFEVS8xSUE0UUFGQU9YL3ZRRG0vMGtBNlA3K0FPci9Fd0R4LzJnQStQOE9BUHIvRXdEOC93Y0JBdjhPQVFUL0VRRVgvendCRy8rc0FTZi9GUUVwL3p3QkxmOE9BUy8vYWdFei8wa0JPZjhNQVR2L1B3RTgvdkVCUWYvQUFVYis3d0ZLL3pFQlRQOWZBVkQvQ2dGVEFBVUJWUDh3QVZYLzFRSGMvMWtCMy8rUEFCTUFXZi9CQUxQL3hRREYvN1FBNWYvWEFQSC91UUVFLzdJQkYvL1NBUnYveUFFdi82QUJPZi9GQVVILzVBRksvOHdCVFAvTUFWVC95d0ZWLys4QnFmL29BYTMvNWdHMS8rY0J0di9uQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FCTUxJQUJBQUFBQW9BSGdCMEE2WUVKQVNPQk5BRjdnYmtCMElIWEFBVkFEZ0FGQUE1QUJJQU93QVdBUlFBRkFJTEFCWUNrZ0FTQXBRQUZnS1dBQllDL1FBV0F3d0FGZ01QQUJZRFJRQVNBMGNBRWdOSkFCSURTd0FXQTJBQUZBTm9BQllENmdBV0Erd0FGZ1B1QUJZRUV3QVdBTXdBRHY4V0FCRC9GZ0FqLzFZQUxQNzRBRFlBRkFCRC85NEFSZi9yQUViLzZ3QkgvK3NBU2YvckFGSC82d0JULytzQVYvL3FBRmovNkFCYi8rZ0FrZi9yQUpYLzZ3Q1gvK29BcmY5V0FLLy9WZ0MyLytzQXVQL29BTVAvNndERS8rc0F4di9xQU0wQUZBRFJBQlFBOHYvckFQNy82d0VJLzFZQkUvL3JBUlgvNkFFWi8rc0JIZi9yQVM0QUZBRTEvK3NCTmdBVUFVZi82d0ZJLytzQlV2L3JBV2YvRmdGci94WUJiLzhXQVhEL0ZnSHgvMVlCOHY5V0FmUC9WZ0gwLzFZQjlmOVdBZmIvVmdIMy8xWUNEUC9lQWczLzNnSU8vOTRDRC8vZUFoRC8zZ0lSLzk0Q0V2L2VBaFAvNndJVS8rc0NGZi9yQWhiLzZ3SVgvK3NDSGYvckFoNy82d0lmLytzQ0lQL3JBaUgvNndJaS8rb0NJLy9xQWlULzZnSWwvK29DSnYvb0FpZi82QUlvLzFZQ0tmL2VBaXIvVmdJci85NENMUDlXQWkzLzNnSXYvK3NDTWYvckFqUC82d0kxLytzQ04vL3JBam4vNndJNy8rc0NQZi9yQWovLzZ3SkIvK3NDUS8vckFrWC82d0pILytzQ1NmL3JBbGYrK0FKci8rc0NiZi9yQW0vLzZ3S0FBQlFDZ2dBVUFvUUFGQUtILytvQ2lmL3FBb3YvNmdLTi8rb0NqLy9xQXBILzZnS1YvK2dDK1A5V0F3RC9WZ01RLytzREZQL3FBeGIvNndNWS8rZ0RHLy9xQXh6LzZ3TWQvK29ESlA3NEF5ai9WZ016QUJRRE5mL2VBemIvNndNNC8rc0RPdi9yQXp2LzZBTTkvK3NEUlAvb0Ewei82QU5WLzFZRFZ2L2VBMXovNndOaC8rZ0RZdi9yQTJmLzZ3TnAvK2dEYnY5V0EyLy8zZ053LzFZRGNmL2VBM1gvNndOMy8rc0RlUC9yQTRMLzZ3T0UvK3NEaHYvckE0ci82QU9NLytnRGp2L29BNVgvNndPWS8xWURtZi9lQTVyL1ZnT2IvOTREblA5V0E1My8zZ09lLzFZRG4vL2VBNkQvVmdPaC85NERvdjlXQTZQLzNnT2svMVlEcGYvZUE2Yi9WZ09uLzk0RHFQOVdBNm4vM2dPcS8xWURxLy9lQTZ6L1ZnT3QvOTREcnY5V0E2Ly8zZ094LytzRHMvL3JBN1gvNndPMy8rc0R1Zi9yQTd2LzZ3TzkvK3NEdi8vckE4WC82d1BILytzRHlmL3JBOHYvNndQTi8rc0R6Ly9yQTlILzZ3UFQvK3NEMWYvckE5Zi82d1BaLytzRDIvL3JBOTMvNmdQZi8rb0Q0Zi9xQStQLzZnUGwvK29ENS8vcUErbi82Z1ByLytnRDdmL29BKy8vNkFQMkFCUUFId0EyLzlVQU9QL2tBRG4vN0FBNy85MEF6Zi9WQU5ILzFRRVUvK1FCTHYvVkFUYi8xUUlMLzkwQ2dQL1ZBb0wvMVFLRS85VUNrdi9zQXBULzNRS1cvOTBDL2YvZEF3ei8zUU1QLzkwRE0vL1ZBMFgvN0FOSC8rd0RTZi9zQTB2LzNRTmcvK1FEYVAvZEErci8zUVBzLzkwRDd2L2RBL2IvMVFRVC85MEFHZ0EyLzdBQU9QL3RBRHYvMEFETi83QUEwZit3QVJULzdRRXUvN0FCTnYrd0Fndi8wQUtBLzdBQ2d2K3dBb1Qvc0FLVS85QUNsdi9RQXYzLzBBTU0vOUFERC8vUUF6UC9zQU5MLzlBRFlQL3RBMmovMEFQcS85QUQ3UC9RQSs3LzBBUDIvN0FFRS8vUUFCQUFMUC91QURmLzdnSUgvKzRDQ1AvdUFnbi83Z0lLLys0Q1YvL3VBb2IvN2dLSS8rNENpdi91QW96LzdnS08vKzRDa1AvdUF5VC83Z1BjLys0RDN2L3VBRWNBQkFBUUFBa0FFQUJGLytnQVJ2L29BRWYvNkFCSi8rZ0FVLy9vQUpILzZBQ1YvK2dBdHYvb0FNUC82QURFLytnQTh2L29BUDcvNkFFWi8rZ0JIZi9vQVRYLzZBRkgvK2dCU1Avb0FWTC82QUZsQUJBQlpnQVFBV2dBRUFGcEFCQUJhZ0FRQWhQLzZBSVUvK2dDRmYvb0FoYi82QUlYLytnQ0wvL29BakgvNkFJei8rZ0NOZi9vQWpmLzZBSTUvK2dDTy8vb0FqMy82QUkvLytnQ1FmL29Ba1AvNkFKRi8rZ0NSLy9vQWtuLzZBTVEvK2dETnYvb0F6ci82QU05LytnRFRRQVFBMDRBRUFOU0FCQURYUC9vQTJMLzZBTm4vK2dEZGYvb0EzZi82QU40LytnRGhQL29BNVgvNkFPeC8rZ0RzLy9vQTdYLzZBTzMvK2dEdWYvb0E3di82QU85LytnRHYvL29BOVAvNkFQVi8rZ0QxLy9vQTl2LzZBQTlBRVgvN0FCRy8rd0FSLy9zQUVuLzdBQlQvK3dBa2Yvc0FKWC83QUMyLyt3QXcvL3NBTVQvN0FEeS8rd0Evdi9zQVJuLzdBRWQvK3dCTmYvc0FVZi83QUZJLyt3QlV2L3NBaFAvN0FJVS8rd0NGZi9zQWhiLzdBSVgvK3dDTC8vc0FqSC83QUl6Lyt3Q05mL3NBamYvN0FJNS8rd0NPLy9zQWozLzdBSS8vK3dDUWYvc0FrUC83QUpGLyt3Q1IvL3NBa24vN0FNUS8rd0ROdi9zQXpyLzdBTTkvK3dEWFAvc0EyTC83QU5uLyt3RGRmL3NBM2YvN0FONC8rd0RoUC9zQTVYLzdBT3gvK3dEcy8vc0E3WC83QU8zLyt3RHVmL3NBN3YvN0FPOS8rd0R2Ly9zQTlQLzdBUFYvK3dEMS8vc0E5di83QUFYQUZILzdBRVQvK3dDSGYvc0FoNy83QUlmLyt3Q0lQL3NBaUgvN0FKci8rd0NiZi9zQW0vLzdBTVcvK3dESFAvc0F6ai83QU9DLyt3RGh2L3NBOFgvN0FQSC8rd0R5Zi9zQTh2LzdBUE4vK3dEei8vc0E5SC83QVBaLyt3QUJnQU8vNFFBRVArRUFXZi9oQUZyLzRRQmIvK0VBWEQvaEFBUUFDei83QUEzLyt3Q0IvL3NBZ2ovN0FJSi8rd0NDdi9zQWxmLzdBS0cvK3dDaVAvc0Fvci83QUtNLyt3Q2p2L3NBcEQvN0FNay8rd0QzUC9zQTk3LzdBQUJLU3dBQkFBQUFDSUFUZ0RFQWFvQ2tBTnFCQVFHbmdoa0NUWUtMQXZ5RENRTVZnelVEcm9QTUJBQ0VoUVN5aFF3Rk9vVmNCWE9GcEFYQmhjWUYwSVlsQnJTR3ZRY0NoeUlITEljM0FBZEFBVC84Z0FKLy9JQVdQL3pBRnYvOHdDNC8vTUJGZi96QVdYLzhnRm0vL0lCYVAveUFXbi84Z0ZxLy9JQ0p2L3pBaWYvOHdLVi8vTURHUC96QXp2Lzh3TkUvL01EVFAvekEwMy84Z05PLy9JRFV2L3lBMkgvOHdOcC8vTURpdi96QTR6Lzh3T08vL01ENi8vekErMy84d1B2Ly9NQU9RQWwvL01BS2YvekFESC84d0F6Ly9NQWdmL3pBSkQvOHdDVS8vTUFydi96QU03Lzh3RUQvL01CRXYvekFSYi84d0VZLy9NQkd2L3pBUnovOHdFMC8vTUJVZi96QWZqLzh3SUMvL01DQS8vekFnVC84d0lGLy9NQ0J2L3pBaTcvOHdJdy8vTUNNdi96QWpULzh3SkMvL01DUlAvekFrYi84d0pJLy9NQ2F2L3pBbXovOHdKdS8vTUNuLy96QXZ6Lzh3TUovL01ETC8vekF6TC84d05YLy9NRFkvL3pBMmIvOHdPQi8vTURnLy96QTRYLzh3UEUvL01EeHYvekE4ai84d1BLLy9NRHpQL3pBODcvOHdQUS8vTUQwdi96QTlULzh3UFcvL01EMlAvekE5ci84d0E1QUNYLzVnQXAvK1lBTWYvbUFEUC81Z0NCLytZQWtQL21BSlQvNWdDdS8rWUF6di9tQVFQLzVnRVMvK1lCRnYvbUFSai81Z0VhLytZQkhQL21BVFQvNWdGUi8rWUIrUC9tQWdMLzVnSUQvK1lDQlAvbUFnWC81Z0lHLytZQ0x2L21BakQvNWdJeS8rWUNOUC9tQWtMLzVnSkUvK1lDUnYvbUFrai81Z0pxLytZQ2JQL21BbTcvNWdLZi8rWUMvUC9tQXduLzVnTXYvK1lETXYvbUExZi81Z05qLytZRFp2L21BNEgvNWdPRC8rWURoZi9tQThULzVnUEcvK1lEeVAvbUE4ci81Z1BNLytZRHp2L21BOUQvNWdQUy8rWUQxUC9tQTliLzVnUFkvK1lEMnYvbUFEWUFJLy9rQURyLzBnQTcvOU1BcmYva0FLLy81QURWLzlJQkNQL2tBZkgvNUFIeS8rUUI4Ly9rQWZULzVBSDEvK1FCOXYva0FmZi81QUlMLzlNQ0tQL2tBaXIvNUFJcy8rUUNsUC9UQXBiLzB3TDQvK1FDL2YvVEF3RC81QU1NLzlNRERmL1NBdy8vMHdNby8rUUROUC9TQTB2LzB3TlYvK1FEYVAvVEEydi8wZ051LytRRGNQL2tBM24vMGdPVC85SURtUC9rQTVyLzVBT2MvK1FEbnYva0E2RC81QU9pLytRRHBQL2tBNmIvNUFPby8rUURxdi9rQTZ6LzVBT3UvK1FENnYvVEErei8wd1B1LzlNRCtQL1NCQUQvMGdRVC85TUFKZ0FPL3g0QUVQOGVBQ1AvelFDdC84MEFyLy9OQVFqL3pRRm4veDRCYS84ZUFXLy9IZ0Z3L3g0QjhmL05BZkwvelFIei84MEI5UC9OQWZYL3pRSDIvODBCOS8vTkFpai96UUlxLzgwQ0xQL05BdmovelFNQS84MERLUC9OQTFYL3pRTnUvODBEY1AvTkE1ai96UU9hLzgwRG5QL05BNTcvelFPZy84MERvdi9OQTZUL3pRT20vODBEcVAvTkE2ci96UU9zLzgwRHJ2L05BS1lBUmYvY0FFYi8zQUJILzl3QVNmL2NBRS8vOHdCUS8vTUFVZi9XQUZMLzh3QlQvOXdBVi8vZEFGai80UUJiLytFQWtmL2NBSlgvM0FDWC85MEF0di9jQUxqLzRRQzgvL01Bdy8vY0FNVC8zQURHLzkwQTUvL3pBT3YvOHdEcy8vTUE3di96QU8vLzh3RHcvL01BOHYvY0FQUC84d0QxLy9NQTl2L3pBUG4vOHdENy8vTUEvdi9jQVFELzh3RVQvOVlCRmYvaEFSbi8zQUVkLzl3Qk1mL3pBVFgvM0FGQS8vTUJSZi96QVVmLzNBRkkvOXdCVXYvY0FoUC8zQUlVLzl3Q0ZmL2NBaGIvM0FJWC85d0NIUC96QWgzLzFnSWUvOVlDSC8vV0FpRC8xZ0loLzlZQ0l2L2RBaVAvM1FJay85MENKZi9kQWliLzRRSW4vK0VDTC8vY0FqSC8zQUl6Lzl3Q05mL2NBamYvM0FJNS85d0NPLy9jQWozLzNBSS8vOXdDUWYvY0FrUC8zQUpGLzl3Q1IvL2NBa24vM0FKay8vTUNadi96QW1qLzh3SnAvL01DYS8vV0FtMy8xZ0p2LzlZQ2gvL2RBb24vM1FLTC85MENqZi9kQW8vLzNRS1IvOTBDbGYvaEF4RC8zQU1TLy9NREZQL2RBeGIvMWdNWS8rRURHLy9kQXh6LzFnTWQvOTBETnYvY0F6Zi84d000LzlZRE9mL3pBenIvM0FNNy8rRURQZi9jQXo3Lzh3TkQvL01EUlAvaEEwei80UU5VLy9NRFhQL2NBMTMvOHdOaC8rRURZdi9jQTJmLzNBTnAvK0VEZGYvY0EzZi8zQU40Lzl3RGZ2L3pBNEQvOHdPQy85WURoUC9jQTRiLzFnT0svK0VEalAvaEE0Ny80UU9TLy9NRGxmL2NBN0gvM0FPei85d0R0Zi9jQTdmLzNBTzUvOXdEdS8vY0E3My8zQU8vLzl3RHhmL1dBOGYvMWdQSi85WUR5Ly9XQTgzLzFnUFAvOVlEMGYvV0E5UC8zQVBWLzl3RDEvL2NBOW4vMWdQYi85d0QzZi9kQTkvLzNRUGgvOTBENC8vZEErWC8zUVBuLzkwRDZmL2RBK3YvNFFQdC8rRUQ3Ly9oQS9QLzh3UDEvL01ELy8vekJBei84d1FPLy9NRUVQL3pBSEVBQlAvYUFBbi8yZ0JGLy9BQVJ2L3dBRWYvOEFCSi8vQUFVLy93QUZmLzd3QlkvOXdBVy8vY0FKSC84QUNWLy9BQWwvL3ZBTGIvOEFDNC85d0F3Ly93QU1ULzhBREcvKzhBOHYvd0FQNy84QUVWLzl3QkdmL3dBUjMvOEFFMS8vQUJSLy93QVVqLzhBRlMvL0FCWmYvYUFXYi8yZ0ZvLzlvQmFmL2FBV3IvMmdJVC8vQUNGUC93QWhYLzhBSVcvL0FDRi8vd0FpTC83d0lqLys4Q0pQL3ZBaVgvN3dJbS85d0NKLy9jQWkvLzhBSXgvL0FDTS8vd0FqWC84QUkzLy9BQ09mL3dBanYvOEFJOS8vQUNQLy93QWtILzhBSkQvL0FDUmYvd0FrZi84QUpKLy9BQ2gvL3ZBb24vN3dLTC8rOENqZi92QW8vLzd3S1IvKzhDbGYvY0F4RC84QU1VLys4REdQL2NBeHYvN3dNZC8rOEROdi93QXpyLzhBTTcvOXdEUGYvd0EwVC8zQU5NLzl3RFRmL2FBMDcvMmdOUy85b0RYUC93QTJILzNBTmkvL0FEWi8vd0Eybi8zQU4xLy9BRGQvL3dBM2ovOEFPRS8vQURpdi9jQTR6LzNBT08vOXdEbGYvd0E3SC84QU96Ly9BRHRmL3dBN2YvOEFPNS8vQUR1Ly93QTczLzhBTy8vL0FEMC8vd0E5WC84QVBYLy9BRDIvL3dBOTMvN3dQZi8rOEQ0Zi92QStQLzd3UGwvKzhENS8vdkErbi83d1ByLzl3RDdmL2NBKy8vM0FBMEFBVC9vQUFKLzZBQVYvL3hBRmoveFFCYi84VUFsLy94QUxqL3hRREcvL0VCRmYvRkFXWC9vQUZtLzZBQmFQK2dBV24vb0FGcS82QUNJdi94QWlQLzhRSWsvL0VDSmYveEFpYi94UUluLzhVQ2gvL3hBb24vOFFLTC8vRUNqZi94QW8vLzhRS1IvL0VDbGYvRkF4VC84UU1ZLzhVREcvL3hBeDMvOFFNNy84VURSUC9GQTB6L3hRTk4vNkFEVHYrZ0ExTC9vQU5oLzhVRGFmL0ZBNHIveFFPTS84VURqdi9GQTkzLzhRUGYvL0VENGYveEErUC84UVBsLy9FRDUvL3hBK24vOFFQci84VUQ3Zi9GQSsvL3hRQTlBRVgvNXdCRy8rY0FSLy9uQUVuLzV3QlQvK2NBa2YvbkFKWC81d0MyLytjQXcvL25BTVQvNXdEeS8rY0Evdi9uQVJuLzV3RWQvK2NCTmYvbkFVZi81d0ZJLytjQlV2L25BaFAvNXdJVS8rY0NGZi9uQWhiLzV3SVgvK2NDTC8vbkFqSC81d0l6LytjQ05mL25BamYvNXdJNS8rY0NPLy9uQWozLzV3SS8vK2NDUWYvbkFrUC81d0pGLytjQ1IvL25Ba24vNXdNUS8rY0ROdi9uQXpyLzV3TTkvK2NEWFAvbkEyTC81d05uLytjRGRmL25BM2YvNXdONC8rY0RoUC9uQTVYLzV3T3gvK2NEcy8vbkE3WC81d08zLytjRHVmL25BN3YvNXdPOS8rY0R2Ly9uQTlQLzV3UFYvK2NEMS8vbkE5di81d0J4QUFRQURBQUpBQXdBUmYvb0FFYi82QUJILytnQVNmL29BRkgvNmdCVC8rZ0FXQUFMQUZzQUN3Q1IvK2dBbGYvb0FMYi82QUM0QUFzQXcvL29BTVQvNkFEeS8rZ0Evdi9vQVJQLzZnRVZBQXNCR2Yvb0FSMy82QUUxLytnQlIvL29BVWovNkFGUy8rZ0JaUUFNQVdZQURBRm9BQXdCYVFBTUFXb0FEQUlULytnQ0ZQL29BaFgvNkFJVy8rZ0NGLy9vQWgzLzZnSWUvK29DSC8vcUFpRC82Z0loLytvQ0pnQUxBaWNBQ3dJdi8rZ0NNZi9vQWpQLzZBSTEvK2dDTi8vb0Fqbi82QUk3LytnQ1BmL29Bai8vNkFKQi8rZ0NRLy9vQWtYLzZBSkgvK2dDU2Yvb0Ftdi82Z0p0LytvQ2IvL3FBcFVBQ3dNUS8rZ0RGdi9xQXhnQUN3TWMvK29ETnYvb0F6ai82Z002LytnRE93QUxBejMvNkFORUFBc0RUQUFMQTAwQURBTk9BQXdEVWdBTUExei82QU5oQUFzRFl2L29BMmYvNkFOcEFBc0RkZi9vQTNmLzZBTjQvK2dEZ3YvcUE0VC82QU9HLytvRGlnQUxBNHdBQ3dPT0FBc0RsZi9vQTdILzZBT3ovK2dEdGYvb0E3Zi82QU81LytnRHUvL29BNzMvNkFPLy8rZ0R4Zi9xQThmLzZnUEovK29EeS8vcUE4My82Z1BQLytvRDBmL3FBOVAvNkFQVi8rZ0QxLy9vQTluLzZnUGIvK2dENndBTEErMEFDd1B2QUFzQURBQmEvKzBBWFAvdEFPbi83UUtZLyswQ212L3RBcHovN1FNOC8rMERiUC90QTNyLzdRT1UvKzBEK2YvdEJBSC83UUFNQUZyLzhnQmMvL0lBNmYveUFwai84Z0thLy9JQ25QL3lBenovOGdOcy8vSURldi95QTVULzhnUDUvL0lFQWYveUFCOEFXUC8wQUZyLzhnQmIvL1FBWFAvekFMai85QURwLy9JQkZmLzBBaWIvOUFJbi8vUUNsZi8wQXBqLzh3S2EvL01DblAvekF4ai85QU03Ly9RRFBQL3lBMFQvOUFOTS8vUURZZi8wQTJuLzlBTnMvL0lEZXYveUE0ci85QU9NLy9RRGp2LzBBNVQvOGdQci8vUUQ3Zi8wQSsvLzlBUDUvL0lFQWYveUFIa0FCUC9LQUFuL3lnQTIvOUlBT1AvVUFEci85QUE3LzlNQVQvL1JBRkQvMFFCUy85RUFXUC9tQUZyLzd3QmIvK1lBdVAvbUFMei8wUUROLzlJQTBmL1NBTlgvOUFEWi8rMEEzUC9oQU9mLzBRRHAvKzhBNi8vUkFPei8wUUR1LzlFQTcvL1JBUEQvMFFEei85RUE5Zi9SQVBiLzBRRDUvOUVBKy8vUkFRRC8wUUVVLzlRQkZmL21BUzcvMGdFeC85RUJOdi9TQVVELzBRRkYvOUVCWmYvS0FXYi95Z0ZvLzhvQmFmL0tBV3IveWdJTC85TUNIUC9SQWliLzVnSW4vK1lDWlAvUkFtYi8wUUpvLzlFQ2FmL1JBb0QvMGdLQy85SUNoUC9TQXBULzB3S1YvK1lDbHYvVEF2My8wd01NLzlNRERmLzBBdy8vMHdNUy85RURHUC9tQXlmLzdRTXovOUlETlAvMEF6Zi8wUU01LzlFRE8vL21BenovN3dNKy85RURRLy9SQTBULzVnTkwvOU1EVFAvbUEwMy95Z05PLzhvRFV2L0tBMVQvMFFOZC85RURZUC9VQTJILzVnTm8vOU1EYWYvbUEydi85QU5zLys4RGVmLzBBM3IvN3dOKy85RURnUC9SQTRuLzdRT0svK1lEaS8vdEE0ei81Z09OLyswRGp2L21BNC8vNFFPUy85RURrLy8wQTVULzd3UHEvOU1ENi8vbUErei8wd1B0LytZRDd2L1RBKy8vNWdQei85RUQ5Zi9SQS9iLzBnUDQvL1FEK2YvdkEvci80UVA4LytFRC8vL1JCQUQvOUFRQi8rOEVEUC9SQkE3LzBRUVEvOUVFRS8vVEFCMEFOdisrQUZqLzd3QmIvKzhBdVAvdkFNMy92Z0RSLzc0QkZmL3ZBUzcvdmdFMi83NENKdi92QWlmLzd3S0EvNzRDZ3YrK0FvVC92Z0tWLys4REdQL3ZBelAvdmdNNy8rOERSUC92QTB6Lzd3TmgvKzhEYWYvdkE0ci83d09NLys4RGp2L3ZBK3YvN3dQdC8rOEQ3Ly92QS9iL3ZnQTBBRGIvNWdBNC8rY0FPdi95QUR2LzV3QmEvL0VBemYvbUFOSC81Z0RWLy9JQTJmL3VBTnovNkFEcC8vRUJGUC9uQVM3LzVnRTIvK1lDQy8vbkFvRC81Z0tDLytZQ2hQL21BcFQvNXdLVy8rY0MvZi9uQXd6LzV3TU4vL0lERC8vbkF5Zi83Z016LytZRE5QL3lBenovOFFOTC8rY0RZUC9uQTJqLzV3TnIvL0lEYlAveEEzbi84Z042Ly9FRGlmL3VBNHYvN2dPTi8rNERqLy9vQTVQLzhnT1UvL0VENnYvbkErei81d1B1LytjRDl2L21BL2ovOGdQNS8vRUQrdi9vQS96LzZBUUEvL0lFQWYveEJCUC81d0NFQUNNQUVBQWwvK2dBS2Yvb0FESC82QUF6LytnQU52L2dBRGovNEFBNy85OEFnZi9vQUpELzZBQ1UvK2dBclFBUUFLNy82QUN2QUJBQXpmL2dBTTcvNkFEUEFCQUEwZi9nQU5nQUVBRGMvK0VBN1FBUUFQVC80QUQvQUJBQkEvL29BUWdBRUFFUy8rZ0JGUC9nQVJiLzZBRVkvK2dCR3Yvb0FSei82QUV1LytBQk5QL29BVGIvNEFGTkFCQUJVZi9vQWZFQUVBSHlBQkFCOHdBUUFmUUFFQUgxQUJBQjlnQVFBZmNBRUFINC8rZ0NBdi9vQWdQLzZBSUUvK2dDQmYvb0FnYi82QUlMLzk4Q0tBQVFBaW9BRUFJc0FCQUNMdi9vQWpELzZBSXkvK2dDTlAvb0FrTC82QUpFLytnQ1J2L29Ba2ovNkFKcS8rZ0NiUC9vQW03LzZBS0EvK0FDZ3YvZ0FvVC80QUtVLzk4Q2x2L2ZBcC8vNkFMNEFCQUMvUC9vQXYzLzN3TUFBQkFEQ2Yvb0F3ei8zd01QLzk4REtBQVFBeS8vNkFNeS8rZ0RNLy9nQTB2LzN3TlZBQkFEVi8vb0EyRC80QU5qLytnRFp2L29BMmovM3dOdUFCQURjQUFRQTRILzZBT0QvK2dEaGYvb0E0Ly80UU9RLytBRGxnQVFBNWNBRUFPWUFCQURtZ0FRQTV3QUVBT2VBQkFEb0FBUUE2SUFFQU9rQUJBRHBnQVFBNmdBRUFPcUFCQURyQUFRQTY0QUVBUEUvK2dEeHYvb0E4ai82QVBLLytnRHpQL29BODcvNkFQUS8rZ0Qwdi9vQTlULzZBUFcvK2dEMlAvb0E5ci82QVBxLzk4RDdQL2ZBKzcvM3dQMi8rQUQrdi9oQS92LzRBUDgvK0VEL2YvZ0JCRUFFQVFTQUJBRUUvL2ZBQzBBTnYveEFEai85QUE2Ly9RQU8vL3dBTTMvOFFEUC8vVUEwZi94QU5YLzlBRFkvL1VBMmYvekFSVC85QUV1Ly9FQk52L3hBVTMvOVFJTC8vQUNnUC94QW9MLzhRS0UvL0VDbFAvd0FwYi84QUw5Ly9BRERQL3dBdzMvOUFNUC8vQURKLy96QXpQLzhRTTAvL1FEUy8vd0EyRC85QU5vLy9BRGEvLzBBM24vOUFPSi8vTURpLy96QTQzLzh3T1QvL1FEbHYvMUErci84QVBzLy9BRDd2L3dBL2IvOFFQNC8vUUVBUC8wQkJILzlRUVQvL0FBV1FBakFBOEFOdi9tQURqLzVnQTZBQTRBTy8vbUFLMEFEd0N2QUE4QXpmL21BTThBRGdEUi8rWUExUUFPQU5nQURnRFpBQXNBM1AvbEFPMEFEd0QwLytnQS93QVBBUWdBRHdFVS8rWUJMdi9tQVRiLzVnRk5BQTRCOFFBUEFmSUFEd0h6QUE4QjlBQVBBZlVBRHdIMkFBOEI5d0FQQWd2LzVnSW9BQThDS2dBUEFpd0FEd0tBLytZQ2d2L21Bb1QvNWdLVS8rWUNsdi9tQXZnQUR3TDkvK1lEQUFBUEF3ei81Z01OQUE0REQvL21BeWNBQ3dNb0FBOERNLy9tQXpRQURnTkwvK1lEVlFBUEEyRC81Z05vLytZRGF3QU9BMjRBRHdOd0FBOERlUUFPQTRrQUN3T0xBQXNEalFBTEE0Ly81UU9RLytnRGt3QU9BNVlBRGdPWEFBOERtQUFQQTVvQUR3T2NBQThEbmdBUEE2QUFEd09pQUE4RHBBQVBBNllBRHdPb0FBOERxZ0FQQTZ3QUR3T3VBQThENnYvbUErei81Z1B1LytZRDl2L21BL2dBRGdQNi8rVUQrLy9vQS96LzVRUDkvK2dFQUFBT0JCRUFEZ1FTQUE4RUUvL21BQzRBTnYvakFEci81UUE3LytRQXpmL2pBTS8vNVFEUi8rTUExZi9sQU5qLzVRRFovK2tBN2YvcUFQLy82Z0V1LytNQk52L2pBVTMvNVFJTC8rUUNnUC9qQW9MLzR3S0UvK01DbFAva0FwYi81QUw5LytRRERQL2tBdzMvNVFNUC8rUURKLy9wQXpQLzR3TTAvK1VEUy8va0Eyai81QU5yLytVRGVmL2xBNG4vNlFPTC8ra0RqZi9wQTVQLzVRT1cvK1VEbC8vcUErci81QVBzLytRRDd2L2tBL2IvNHdQNC8rVUVBUC9sQkJILzVRUVMvK29FRS8va0FDRUFOdi9pQURyLzVBRE4vK0lBei8va0FOSC80Z0RWLytRQTJQL2tBTm4vNlFEdC8rc0EvLy9yQVM3LzRnRTIvK0lCVGYva0FvRC80Z0tDLytJQ2hQL2lBdzMvNUFNbi8ra0RNLy9pQXpULzVBTnIvK1FEZWYva0E0bi82UU9MLytrRGpmL3BBNVAvNUFPVy8rUURsLy9yQS9iLzRnUDQvK1FFQVAva0JCSC81QVFTLytzQUZ3QTIvK3NBTy8vekFNMy82d0RSLytzQkx2L3JBVGIvNndJTC8vTUNnUC9yQW9MLzZ3S0UvK3NDbFAvekFwYi84d0w5Ly9NRERQL3pBdy8vOHdNei8rc0RTLy96QTJqLzh3UHEvL01EN1AvekErNy84d1AyLytzRUUvL3pBREFBVC8vdkFGRC83d0JTLys4QVd2L3dBTHovN3dEbi8rOEE2Zi93QU92Lzd3RHMvKzhBN3YvdkFPLy83d0R3Lys4QTgvL3ZBUFgvN3dEMi8rOEErZi92QVB2Lzd3RUEvKzhCTWYvdkFVRC83d0ZGLys4Q0hQL3ZBbVQvN3dKbS8rOENhUC92QW1uLzd3TVMvKzhETi8vdkF6bi83d004Ly9BRFB2L3ZBMFAvN3dOVS8rOERYZi92QTJ6LzhBTjYvL0FEZnYvdkE0RC83d09TLys4RGxQL3dBL1AvN3dQMS8rOEQrZi93QS8vLzd3UUIvL0FFRFAvdkJBNy83d1FRLys4QUhRQUUvL0lBQ2YveUFGai85UUJiLy9VQXVQLzFBUlgvOVFGbC8vSUJadi95QVdqLzhnRnAvL0lCYXYveUFpYi85UUluLy9VQ2xmLzFBeGovOVFNNy8vVURSUC8xQTB6LzlRTk4vL0lEVHYveUExTC84Z05oLy9VRGFmLzFBNHIvOVFPTS8vVURqdi8xQSt2LzlRUHQvL1VENy8vMUFBUUE5UC90QTVELzdRUDcvKzBEL2YvdEFBb0FCUC8xQUFuLzlRRmwvL1VCWnYvMUFXai85UUZwLy9VQmF2LzFBMDMvOVFOTy8vVURVdi8xQUZRQVJmL3dBRWIvOEFCSC8vQUFTZi93QUZILzZ3QlQvL0FBa2Yvd0FKWC84QUMyLy9BQXcvL3dBTVQvOEFEeS8vQUEvdi93QVJQLzZ3RVovL0FCSGYvd0FUWC84QUZILy9BQlNQL3dBVkwvOEFJVC8vQUNGUC93QWhYLzhBSVcvL0FDRi8vd0FoMy82d0llLytzQ0gvL3JBaUQvNndJaC8rc0NMLy93QWpILzhBSXovL0FDTmYvd0FqZi84QUk1Ly9BQ08vL3dBajMvOEFJLy8vQUNRZi93QWtQLzhBSkYvL0FDUi8vd0Frbi84QUpyLytzQ2JmL3JBbS8vNndNUS8vQURGdi9yQXh6LzZ3TTIvL0FET1AvckF6ci84QU05Ly9BRFhQL3dBMkwvOEFObi8vQURkZi93QTNmLzhBTjQvL0FEZ3YvckE0VC84QU9HLytzRGxmL3dBN0gvOEFPei8vQUR0Zi93QTdmLzhBTzUvL0FEdS8vd0E3My84QU8vLy9BRHhmL3JBOGYvNndQSi8rc0R5Ly9yQTgzLzZ3UFAvK3NEMGYvckE5UC84QVBWLy9BRDEvL3dBOW4vNndQYi8vQUFqd0FFQUEwQUNRQU5BRVAvOEFCRi83QUFSdit3QUVmL3NBQkovN0FBVWYvV0FGUC9zQUJZQUFzQVd3QUxBSkgvc0FDVi83QUF0dit3QUxnQUN3REUvN0FBN2YrdkFQTC9zQUQrLzdBQS8vK3ZBUlAvMWdFVkFBc0JHZit3QVIzL3NBRTEvN0FCUi8rd0FVai9zQUZTLzdBQlpRQU5BV1lBRFFGb0FBMEJhUUFOQVdvQURRSU0vL0FDRGYvd0FnNy84QUlQLy9BQ0VQL3dBaEgvOEFJUy8vQUNFLyt3QWhUL3NBSVYvN0FDRnYrd0FoZi9zQUlkLzlZQ0h2L1dBaC8vMWdJZy85WUNJZi9XQWlZQUN3SW5BQXNDS2Yvd0Fpdi84QUl0Ly9BQ0wvK3dBakgvc0FJei83QUNOZit3QWpmL3NBSTUvN0FDTy8rd0FqMy9zQUkvLzdBQ1FmK3dBa1Avc0FKRi83QUNSLyt3QWtuL3NBSnIvOVlDYmYvV0FtLy8xZ0tWQUFzREVQK3dBeGIvMWdNWUFBc0RIUC9XQXpYLzhBTTIvN0FET1AvV0F6ci9zQU03QUFzRFBmK3dBMFFBQ3dOTUFBc0RUUUFOQTA0QURRTlNBQTBEVnYvd0Exei9zQU5oQUFzRFl2K3dBMmYvc0FOcEFBc0RiLy93QTNILzhBTjEvN0FEZC8rd0Ezai9zQU9DLzlZRGhQK3dBNGIvMWdPS0FBc0RqQUFMQTQ0QUN3T1YvN0FEbC8rdkE1bi84QU9iLy9BRG5mL3dBNS8vOEFPaC8vQURvLy93QTZYLzhBT24vL0FEcWYvd0E2di84QU90Ly9BRHIvL3dBN0gvc0FPei83QUR0Zit3QTdmL3NBTzUvN0FEdS8rd0E3My9zQU8vLzdBRHhmL1dBOGYvMWdQSi85WUR5Ly9XQTgzLzFnUFAvOVlEMGYvV0E5UC9zQVBWLzdBRDEvK3dBOW4vMWdQYi83QUQ2d0FMQSswQUN3UHZBQXNFRXYrdkFBZ0E3UUFRQVBULzhBRC9BQkFEa1Avd0E1Y0FFQVA3Ly9BRC9mL3dCQklBRUFCRkFFVUFEQUJHQUF3QVJ3QU1BRWtBREFCVEFBd0FrUUFNQUpVQURBQzJBQXdBd3dBTUFNUUFEQUR0QUJnQThnQU1BUFQvOXdEK0FBd0Evd0FZQVJrQURBRWRBQXdCTlFBTUFVY0FEQUZJQUF3QlVnQU1BaE1BREFJVUFBd0NGUUFNQWhZQURBSVhBQXdDTHdBTUFqRUFEQUl6QUF3Q05RQU1BamNBREFJNUFBd0NPd0FNQWowQURBSS9BQXdDUVFBTUFrTUFEQUpGQUF3Q1J3QU1Ba2tBREFNUUFBd0ROZ0FNQXpvQURBTTlBQXdEWEFBTUEySUFEQU5uQUF3RGRRQU1BM2NBREFONEFBd0RoQUFNQTVELzl3T1ZBQXdEbHdBWUE3RUFEQU96QUF3RHRRQU1BN2NBREFPNUFBd0R1d0FNQTcwQURBTy9BQXdEMHdBTUE5VUFEQVBYQUF3RDJ3QU1BL3YvOXdQOS8vY0VFZ0FZQUI4QVdQLzBBRnIvOEFCYi8vUUF1UC8wQU9uLzhBRHQvL01BLy8vekFSWC85QUltLy9RQ0ovLzBBcFgvOUFNWS8vUURPLy8wQXp6LzhBTkUvL1FEVFAvMEEySC85QU5wLy9RRGJQL3dBM3IvOEFPSy8vUURqUC8wQTQ3LzlBT1UvL0FEbC8vekErdi85QVB0Ly9RRDcvLzBBL24vOEFRQi8vQUVFdi96QUFvQUJQL1dBQW4vMWdGbC85WUJadi9XQVdqLzFnRnAvOVlCYXYvV0EwMy8xZ05PLzlZRFV2L1dBQW9BQlAvMUFBbi85UUZsLy9VQlp2LzFBV2ovOVFGcC8vVUJhdi8xQTAzLzlRTk8vL1VEVXYvMUFGNEFCQUFMQUFrQUN3QkYvK3NBUnYvckFFZi82d0JKLytzQVVmL3BBRlAvNndDUi8rc0FsZi9yQUxiLzZ3REQvK3NBeFAvckFQTC82d0QrLytzQkUvL3BBUm4vNndFZC8rc0JOZi9yQVVmLzZ3RkkvK3NCVXYvckFXVUFDd0ZtQUFzQmFBQUxBV2tBQ3dGcUFBc0NFLy9yQWhULzZ3SVYvK3NDRnYvckFoZi82d0lkLytrQ0h2L3BBaC8vNlFJZy8ra0NJZi9wQWkvLzZ3SXgvK3NDTS8vckFqWC82d0kzLytzQ09mL3JBanYvNndJOS8rc0NQLy9yQWtILzZ3SkQvK3NDUmYvckFrZi82d0pKLytzQ2EvL3BBbTMvNlFKdi8ra0RFUC9yQXhiLzZRTWMvK2tETnYvckF6ai82UU02LytzRFBmL3JBMDBBQ3dOT0FBc0RVZ0FMQTF6LzZ3TmkvK3NEWi8vckEzWC82d04zLytzRGVQL3JBNEwvNlFPRS8rc0Rodi9wQTVYLzZ3T3gvK3NEcy8vckE3WC82d08zLytzRHVmL3JBN3YvNndPOS8rc0R2Ly9yQThYLzZRUEgvK2tEeWYvcEE4di82UVBOLytrRHovL3BBOUgvNlFQVC8rc0QxZi9yQTlmLzZ3UFovK2tEMi8vckFBSUxIZ0FFQUFBTjVoVTZBQ0VBSFFBQUFCSC96ditQQUJMLzlmL3YvNGovOVArNy8zLy85UUFNLzZuL292L0pBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9sQUFBQUFQL28vOGtBQVAvekFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVRQUEvK1VBRVFBQUFBQUFBQUFBQUFELzR3QUFBQUFBQVAvay8rUUFBQUFTQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK0VBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK1VBQUFBQS8rci8xUUFBQUFELzYvL3EvNXIvNlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvakFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9tQUFBQUFBQUFBQUFBQVAvdEFBQUFGUC92QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLyswQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzh2L3VQOTgvMzcvNUFBQUFBRC9uUUFQQUJEL29mL0VBQkFBRUFBQUFBRC9zUUFBL3lZQUFQK2QvN1AvR1ArVC8vRC9qLytNL3hBQUFQK1MvM0wvRFA4UC83MEFBQUFBLzBRQUJRQUgvMHYvaGdBSEFBY0FBQUFBL3o0QUFQNTZBQUQvUlA5cS9tTC9NLy9SL3l6L0p3QUFBQUFBQUFBQUFBRC8yQUFBQUFBQUFQL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8yUCtqQUFELzRRQUFBQUQvNVFBQUFBRC82UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9tQUFEL3dQL3BBQUFBQUFBQUFBQUFBQUFBLzNzQUFBQUEvNy8veXY5MkFBRC9jZjd0LzlRQUFQOVIveEVBQUFBQUFCTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL3lRQVBBQUQvMlFBQUFBQUFBUC96QUFBQUFBQUFBQUFBQUFBQUFBQUFBUDkyLytIK3ZQL20vL01BQUFBQUFBQUFBUC8xQUFEL09BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vVUFBQUFBLy9NQUFBQUEvOUlBQUFBQS8rUUFBQUFBQUFBQUFBQUEvN1VBQVA4ZkFBRC8xQUFBLzlzQUFBQUEvOUlBQUFBQUFBQUFFZi9oLzlFQUVmL25BQUFBQVAvckFBQUFBUC9yQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBLytZQUFQL1NBQUFBQUFBQUFBQUFBQUFBQUFELzdBQUFBQUQvNC8rZ0FBRC92d0FSQUJILzJmL2lBQklBRWdBQUFBRC9vZ0FOL3kwQUFQKy8vK24velAvWS8vRC90Ly9HLzZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLytFQUFBQU8vKzBBQUFBQUFBQUFBQUFBLzlVQUFQK0ZBQUQvNFFBQS84UUFBQUFBLzk4QUFBQUFBQUFBQVAvbEFBQUFBUC9tQUFBQUFQL3JBQUFBQVAvdEFBQUFBQUFBQUFBQUFBQU5BQUFBQUFBQS8rc0FBQUFBQUFBQUFBQUFBQUFBQUFBQS84b0FBUC9wLzd2LzZRQUFBQUQvdlFBQUFCSUFBQUFBQUFBQUVnQUFBQUQvcFFBQS9tMEFBUCs5QUFEL2lmK2FBQUQva2YvU0FBQUFBQUFBLy9FQUFBQUFBQUFBQVArOUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC85UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOVFBQS8vSUFBQUFBLytNQUFBQUFBQUFBQVAveEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vRUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vTUFBQUFBQUFBQUFQL3lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzhRQUEvL0FBQUFBQS8rd0FBQUFBQUFBQUFQL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvWEFBQUFBQUFQLy9FQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK1ZBQUQvOHdBQUFBQUFBQUFBLy9FQUFBQUFBQUFBQUFBU0FBQUFBQUFBQUFBQUVQL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvaFFBQS8rMEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC9sZi9EQUFBQUFBQUFBQUFBQUFBQUFBQUFBUCtJQUFBQUFBQUEvOFVBQUFBQS8rd0FBUC9PLzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzFZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvMUFBQUFBQUFBQUFBQUFQL0FBQUFBQVA3MUFBQUFBUC9JLzYzLzUvL3JBQUQvOEFBQUFBQUFBUC9KQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9kLzlrQUFBQUFBQUQvZVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzlRQUFBQUFBQUFBQUFBQUFBQUFDQUlnQUJBQUVBQUFBQ1FBSkFBRUFFUUFSQUFJQUl3QW9BQU1BS2dBekFBa0FOZ0E4QUJNQVF3QkVBQm9BUndCSUFCd0FTZ0JLQUI0QVR3QlNBQjhBVkFCVUFDTUFXQUJZQUNRQVdnQmJBQ1VBaUFDSUFDY0FtUUNaQUNnQXJBQ3dBQ2tBc2dDMEFDNEF0Z0MyQURFQXVBQzVBRElBdXdDOEFEUUF2Z0RBQURZQXdnREhBRGtBelFETkFEOEF6d0RaQUVBQTJ3RGJBRXNBM1FEZkFFd0E0UURqQUU4QTVRRHBBRklBN0FEc0FGY0E4UUR6QUZnQTlnRDNBRnNBK1FEN0FGMEEvd0VBQUdBQkJRRUZBR0lCQ0FFSUFHTUJFd0VWQUdRQkp3RXBBR2NCTEFFc0FHb0JMZ0V1QUdzQlJRRkZBR3dCWlFGbUFHMEJhQUZxQUc4QnBnR21BSElCcVFHcEFITUJxd0dyQUhRQnNBR3hBSFVCdEFHMkFIY0J1QUcrQUhvQnhBSEVBSUVCMndIY0FJSUI2QUhvQUlRQjdBSHRBSVVCN3dIdkFJY0I4UUlTQUlnQ0ZBSVhBS29DSEFJaEFLNENKZ0l1QUxRQ01BSXdBTDBDTWdJeUFMNENOQUkwQUw4Q05nSTJBTUFDT0FKQkFNRUNTZ0pNQU1zQ1RnSk9BTTRDVUFKUUFNOENVZ0pTQU5BQ1ZBSlVBTkVDVndKWEFOSUNXUUpaQU5NQ1d3SmJBTlFDWFFKZEFOVUNYd0pmQU5ZQ1lRSmhBTmNDWXdKdkFOZ0NjUUp4QU9VQ2N3SnpBT1lDZFFKMUFPY0NnQUtBQU9nQ2dnS0NBT2tDaEFLRUFPb0NoZ0tHQU9zQ2lBS0lBT3dDaWdLS0FPMENqQUtNQU80Q2pnS09BTzhDa0FLUUFQQUNrZ0tTQVBFQ2xBS1hBUElDbVFLWkFQWUNtd0tiQVBjQytBTDlBUGdEQUFNUEFQNERFZ01TQVE0REZnTVdBUThER0FNWUFSQURIQU1jQVJFREh3TWdBUklESWdNckFSUURMUU12QVI0RE1RTTJBU0VET0FNNUFTY0RPd00rQVNrRFJBTkZBUzBEUndOSEFTOERTUU5KQVRBRFN3Tk9BVEVEVWdOWEFUVURXZ05hQVRzRFhBTmNBVHdEWUFOaEFUMERaZ05tQVQ4RGFBTnhBVUFEZEFOMUFVb0Rkd042QVV3RGdRT0NBVkFEaGdPR0FWSURpQU9PQVZNRGt3T1VBVm9EbUFQQUFWd0R3Z1BDQVlVRHhBUFJBWVlEMlFQWkFaUUQzQVBjQVpVRDNnUGVBWllENmdQdkFaY0Q4Z1B5QVowRDlBUDBBWjREOWdQMkFaOEQrQVA1QWFBRC9nUUJBYUlFQkFRRUFhWUVCZ1FIQWFjRUNRUUpBYWtFRFFRTkFhb0VEd1FQQWFzRUV3UVRBYXdBQVFBS0FBb0FLQUF6QURRQVBRQklBRTBBVmdCWkFGMEFBUUFpQUprQXNBQ3lBTE1BdEFDN0FMNEF2d0RBQU1VQXh3RElBTWtBelFEUkFOTUExQURXQU40QTRnRGpBT1FBNVFEbUFPZ0E2Z0RzQVBFQTh3RDJBUHNBL2dFZEFkd0FBZ0IyQUFRQUJBQUFBQWtBQ1FBQkFBNEFEZ0FDQUJBQUVBQURBQ01BSndBRUFDb0FNZ0FKQURZQVBBQVNBRU1BUlFBWkFFY0FSd0FjQUVvQVNnQWRBRThBVWdBZUFGUUFWQUFpQUZnQVdBQWpBRm9BWEFBa0FJZ0FpQUFuQUt3QXJ3QW9BTGdBdUFBc0FMd0F2QUF0QU1JQXdnQXVBTThBMEFBdkFOSUEwZ0F4QU5VQTFRQXlBTmNBMlFBekFOc0Eyd0EyQU4wQTNRQTNBTjhBM3dBNEFPRUE0UUE1QU9jQTV3QTZBT2tBNlFBN0FQSUE4Z0E4QVBjQTl3QTlBUGtBK2dBK0FQOEJBQUJBQVFVQkJRQkNBUWdCQ0FCREFSTUJGUUJFQVNjQktRQkhBU3dCTEFCS0FTNEJMZ0JMQVVVQlJRQk1BV1VCYXdCTkFXOEJjQUJVQWV3QjdRQldBZThCN3dCWUFmRUNGd0JaQWh3Q0lRQ0FBaVlDTmdDR0FqZ0NRUUNYQWtvQ1RBQ2hBazRDVGdDa0FsQUNVQUNsQWxJQ1VnQ21BbFFDVkFDbkFsY0NWd0NvQWxrQ1dRQ3BBbHNDV3dDcUFsMENYUUNyQWw4Q1h3Q3NBbUVDWVFDdEFtTUNid0N1QW5FQ2NRQzdBbk1DY3dDOEFuVUNkUUM5QW9BQ2dBQytBb0lDZ2dDL0FvUUNoQURBQW9ZQ2hnREJBb2dDaUFEQ0Fvb0NpZ0REQW93Q2pBREVBbzRDamdERkFwQUNrQURHQXBJQ2tnREhBcFFDbkFESUF2Z0MvUURSQXdBRER3RFhBeElERWdEbkF4WURGZ0RvQXhnREdBRHBBeHdESEFEcUF4OERJQURyQXlJREt3RHRBeTBETHdEM0F6RUROZ0Q2QXpnRFBnRUFBMFFEUlFFSEEwY0RSd0VKQTBrRFNRRUtBMHNEVGdFTEExSURWd0VQQTFvRFdnRVZBMXdEWEFFV0EyQURZUUVYQTJZRGNRRVpBM1FEZFFFbEEzY0RlZ0VuQTRFRGdnRXJBNFlEaGdFdEE0Z0RqZ0V1QTVNRGxBRTFBNWdEd0FFM0E4SUR3Z0ZnQThRRDBRRmhBOWtEMlFGdkE5d0QzQUZ3QTk0RDNnRnhBK29EN3dGeUEvSUQ4Z0Y0QS9RRDlBRjVBL1lEOWdGNkEvZ0QrUUY3QS80RUFRRjlCQVFFQkFHQkJBWUVCd0dDQkFrRUNRR0VCQTBFRFFHRkJBOEVEd0dHQkJNRUV3R0hBQUlCT0FBRUFBUUFIUUFKQUFrQUhRQU9BQTRBSGdBUUFCQUFIZ0FrQUNRQUFRQWxBQ1VBQkFBbUFDWUFBd0FuQUNjQUJRQXFBQ3NBQWdBc0FDd0FEQUF0QUMwQUNRQXVBQzRBQ2dBdkFEQUFBZ0F4QURFQUF3QXlBRElBQ3dBMkFEWUFCZ0EzQURjQURBQTRBRGdBRFFBNUFEa0FFQUE2QURvQURnQTdBRHNBRHdBOEFEd0FFUUJEQUVNQUV3QkVBRVFBRlFCRkFFVUFGQUJIQUVjQUZnQktBRW9BRndCUEFGQUFGd0JSQUZFQUdBQlNBRklBRlFCVUFGUUFHZ0JZQUZnQUdRQmFBRm9BR3dCYkFGc0FHUUJjQUZ3QUhBQ0lBSWdBRlFDc0FLd0FCd0N1QUs0QUF3QzRBTGdBR1FDOEFMd0FGd0RDQU1JQUZRRFBBTkFBSHdEU0FOSUFBZ0RWQU5VQURnRFhBTmdBQWdEWkFOa0FFZ0RiQU5zQUFnRGRBTjBBQWdEZkFOOEFId0RoQU9FQUh3RG5BT2NBQ0FEcEFPa0FHd0R5QVBJQUZRRDNBUGNBSUFENUFQa0FJQUQ2QVBvQUZRRC9BUUFBSUFFRkFRVUFJQUVUQVJNQUdBRVVBUlFBRFFFVkFSVUFHUUVuQVNjQUZRRW9BU2dBQndFcEFTa0FDQUVzQVN3QUNRRXVBUzRBQ1FGRkFVVUFDQUZsQVdZQUhRRm5BV2NBSGdGb0FXb0FIUUZyQVdzQUhnRnZBWEFBSGdIc0FlMEFBd0h2QWU4QUJnSDRBZmdBQkFINUFmd0FCUUg5QWdFQUFnSUNBZ1lBQXdJSEFnb0FEQUlMQWdzQUR3SU1BaElBRXdJVEFoTUFGQUlVQWhjQUZnSWNBaHdBRndJZEFpRUFHQUltQWljQUdRSXBBaWtBRXdJckFpc0FFd0l0QWkwQUV3SXVBaTRBQkFJdkFpOEFGQUl3QWpBQUJBSXhBakVBRkFJeUFqSUFCQUl6QWpNQUZBSTBBalFBQkFJMUFqVUFGQUkyQWpZQUF3STRBamdBQlFJNUFqa0FGZ0k2QWpvQUJRSTdBanNBRmdJOEFqd0FCUUk5QWowQUZnSStBajRBQlFJL0FqOEFGZ0pBQWtBQUJRSkJBa0VBRmdKS0Frb0FBZ0pMQWtzQUZ3Sk1Ba3dBQWdKT0FrNEFBZ0pRQWxBQUFnSlNBbElBQWdKVUFsUUFBZ0pYQWxjQURBSlpBbGtBQ1FKYkFsc0FDZ0pkQWwwQUNnSmZBbDhBQ2dKaEFtRUFDZ0pqQW1NQUFnSmtBbVFBRndKbEFtVUFBZ0ptQW1ZQUZ3Sm5BbWNBQWdKb0Fta0FGd0pxQW1vQUF3SnJBbXNBR0FKc0Ftd0FBd0p0QW0wQUdBSnVBbTRBQXdKdkFtOEFHQUp4QW5FQUdnSnpBbk1BR2dKMUFuVUFHZ0tBQW9BQUJnS0NBb0lBQmdLRUFvUUFCZ0tHQW9ZQURBS0lBb2dBREFLS0Fvb0FEQUtNQW93QURBS09BbzRBREFLUUFwQUFEQUtTQXBJQUVBS1VBcFFBRHdLVkFwVUFHUUtXQXBZQUR3S1hBcGNBRVFLWUFwZ0FIQUtaQXBrQUVRS2FBcG9BSEFLYkFwc0FFUUtjQXB3QUhBTDVBdmtBQlFMNkF2c0FBZ0w4QXZ3QUF3TDlBdjBBRHdNQkF3RUFBUU1DQXdJQUJRTURBd01BRVFNRUF3VUFBZ01HQXdZQUNRTUhBd2dBQWdNSkF3a0FBd01LQXdvQUN3TUxBd3NBQmdNTUF3d0FEd01OQXcwQURnTU9BdzRBQWdNUEF3OEFEd01TQXhJQUZ3TVdBeFlBR0FNWUF4Z0FHUU1jQXh3QUdBTWZBeDhBQlFNZ0F5QUFCd01pQXlNQUFnTWtBeVFBREFNbEF5WUFDUU1uQXljQUVnTXBBeWtBQVFNcUF5b0FCd01yQXlzQUJRTXRBeTRBQWdNdkF5OEFBd014QXpFQUN3TXlBeklBQkFNekF6TUFCZ00wQXpRQURnTTFBelVBRXdNMkF6WUFGZ000QXpnQUdBTTVBemtBRlFNNkF6b0FGQU03QXpzQUdRTThBendBR3dNOUF6MEFGZ00rQXo0QUNBTkVBMFFBR1FORkEwVUFFQU5IQTBjQUVBTkpBMGtBRUFOTEEwc0FEd05NQTB3QUdRTk5BMDRBSFFOU0ExSUFIUU5UQTFNQUFnTlVBMVFBRndOV0ExWUFFd05YQTFjQUF3TmFBMW9BQlFOY0Exd0FGZ05nQTJBQURRTmhBMkVBR1FObUEyWUFCQU5uQTJjQUZBTm9BMmdBRHdOcEEya0FHUU5xQTJvQUFnTnJBMnNBRGdOc0Eyd0FHd050QTIwQUFnTnZBMjhBRXdOeEEzRUFFd04wQTNRQUJRTjFBM1VBRmdOM0EzZ0FGZ041QTNrQURnTjZBM29BR3dPQkE0RUFBd09DQTRJQUdBT0dBNFlBR0FPSUE0Z0FGUU9KQTRrQUVnT0tBNG9BR1FPTEE0c0FFZ09NQTR3QUdRT05BNDBBRWdPT0E0NEFHUU9UQTVNQURnT1VBNVFBR3dPWkE1a0FFd09iQTVzQUV3T2RBNTBBRXdPZkE1OEFFd09oQTZFQUV3T2pBNk1BRXdPbEE2VUFFd09uQTZjQUV3T3BBNmtBRXdPckE2c0FFd090QTYwQUV3T3ZBNjhBRXdPd0E3QUFCUU94QTdFQUZnT3lBN0lBQlFPekE3TUFGZ08wQTdRQUJRTzFBN1VBRmdPMkE3WUFCUU8zQTdjQUZnTzRBN2dBQlFPNUE3a0FGZ082QTdvQUJRTzdBN3NBRmdPOEE3d0FCUU85QTcwQUZnTytBNzRBQlFPL0E3OEFGZ1BBQThBQUFnUENBOElBQWdQRUE4UUFBd1BGQThVQUdBUEdBOFlBQXdQSEE4Y0FHQVBJQThnQUF3UEpBOGtBR0FQS0E4b0FBd1BMQThzQUdBUE1BOHdBQXdQTkE4MEFHQVBPQTg0QUF3UFBBODhBR0FQUUE5QUFBd1BSQTlFQUdBUFpBOWtBR0FQY0E5d0FEQVBlQTk0QURBUHFBK29BRHdQckErc0FHUVBzQSt3QUR3UHRBKzBBR1FQdUErNEFEd1B2QSs4QUdRUHlBL0lBQ1FQMEEvUUFBZ1AyQS9ZQUJnUDRBL2dBRGdQNUEva0FHd1ArQS80QUJ3UC9BLzhBQ0FRQUJBQUFEZ1FCQkFFQUd3UUVCQVFBRndRR0JBWUFId1FIQkFjQUJ3UUpCQWtBQ1FRTkJBMEFBZ1FQQkE4QUFnUVRCQk1BRHdBQkFBUUVGZ0FIQUFBQUFBQUFBQUFBQndBQUFBQUFBQUFBQUJNQUZ3QVRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkVBQUFBRkFBQUFBQUFBQUFVQUFBQUFBQndBQUFBQUFBQUFBQUFGQUFBQUJRQUFBQmtBQ2dBR0FBMEFDUUFTQUE0QUZBQUFBQUFBQUFBQUFBQUFBQUFhQUFBQUZRQVZBQlVBQUFBVkFBQUFBQUFBQUFBQUFBQVlBQmdBQ0FBWUFCVUFBQUFiQUFBQUN3QUNBQUFBRmdBQ0FBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBVkFBQUFBQUFGQUJVQUFBQUxBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFCUUFSQUFBQUFBQUFBQUFBQUFBQUFCVUFBQUFDQUFBQUFBQUFBQmdBQUFBQUFBQUFBQUFBQUFBQUZRQVZBQUFBQ3dBQUFBQUFBQUFBQUFBQUFBQUtBQVVBQVFBQUFBb0FBQUFBQUFBQUVnQUFBQUFBQVFBUUFBQUFBQUFQQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQUFBQllBQUFBWUFCZ0FCQUFZQUJnQUdBQUFBQlVBR0FBREFCZ0FHQUFBQUFBQUdBQUFBQmdBQUFBQUFCVUFCQUFZQUFBQUFBQUZBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGQUFnQURRQUNBQVVBQUFBRkFCVUFCUUFBQUFVQUZRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFvQUFBQUFBQmdBQUFBQUFBVUFGUUFLQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJnQUFBQUFBQUFBQUFBWUFBQUFGUUFWQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFGQUJVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGd0FYQUFBQUJ3QUhBQk1BQndBSEFBY0FFd0FBQUFBQUFBQVRBQk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJjQUFBQUFBQUFBQUFBQUFCRUFFUUFSQUJFQUVRQVJBQkVBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBVUFCUUFGQUFVQUJnQUdBQVlBQmdBT0FCb0FHZ0FhQUJvQUdnQWFBQm9BRlFBVkFCVUFGUUFWQUFBQUFBQUFBQUFBR0FBSUFBZ0FDQUFJQUFnQUN3QUxBQXNBQ3dBQ0FBSUFFUUFhQUJFQUdnQVJBQm9BQlFBVkFBVUFGUUFGQUJVQUJRQVZBQUFBRlFBQUFCVUFBQUFWQUFBQUZRQUFBQlVBQUFBVkFBVUFGUUFGQUJVQUJRQVZBQVVBRlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR0FBQUFCZ0FBQUFZQUJnQUJRQUlBQVVBQ0FBRkFBZ0FBQUFBQUFBQUFBQUFBQUFBR1FBYkFCa0FHd0FaQUJzQUdRQWJBQmtBR3dBS0FBQUFDZ0FBQUFvQUFBQUdBQXNBQmdBTEFBWUFDd0FHQUFzQUJnQUxBQVlBQ3dBSkFBQUFEZ0FDQUE0QUZBQU1BQlFBREFBVUFBd0FBQUFBQUFVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFBQUFBQUFBQVVBRGdBQUFBQUFFUUFBQUFBQUZBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQURnQVNBQUFBRGdBVkFBQUFHQUFBQUFzQUFBQUlBQUFBQWdBQUFBQUFDd0FJQUFzQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUVBQVJBQUFBQUFBQUFBQUFBQUFBQUFVQUFBQUFBQVVBQ2dBU0FCb0FGUUFZQUFnQUdBQVZBQUlBRmdBVkFCZ0FHd0FBQUFBQUFBQVlBQUlBQ1FBQUFBa0FBQUFKQUFBQURnQUNBQWNBQndBQUFBQUFBQUFIQUFBQUdBQVJBQm9BQlFBQUFBQUFBQUFBQUJVQUdBQUFBQUFBRFFBQ0FCVUFCUUFBQUFBQUJRQVZBQTRBQWdBQUFCSUFGZ0FBQUJFQUdnQVJBQm9BQUFBQUFBQUFGUUFBQUJVQUZRQVNBQllBQUFBQUFBQUFHQUFBQUJnQUJRQUlBQVVBRlFBRkFBZ0FBQUFBQUJBQUFnQVFBQUlBRUFBQ0FBOEFBd0FBQUJnQUVnQVdBQlVBQVFBRUFCRUFHZ0FSQUJvQUVRQWFBQkVBR2dBUkFCb0FFUUFhQUJFQUdnQVJBQm9BRVFBYUFCRUFHZ0FSQUJvQUVRQWFBQUFBRlFBQUFCVUFBQUFWQUFBQUZRQUFBQlVBQUFBVkFBQUFGUUFBQUJVQUFBQUFBQUFBQUFBRkFBZ0FCUUFJQUFVQUNBQUZBQWdBQlFBSUFBVUFDQUFGQUFnQUJRQVZBQVVBRlFBRkFCVUFCUUFJQUFVQUZRQUdBQXNBQmdBTEFBQUFDd0FBQUFzQUFBQUxBQUFBQ3dBQUFBc0FEZ0FDQUE0QUFnQU9BQUlBQUFBQUFBQUFHQUFBQUJnQUNnQUFBQklBRmdBUEFBTUFEd0FEQUFBQUdBQVNBQllBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFHQUFBQUJnQUFRQUVBQTRBQUFBQUFBQUFBQUFBQUJjQUFRQUFBQW9BTEFDT0FBRkVSa3hVQUFnQUJBQUFBQUQvL3dBSUFBQUFBUUFDQUFNQUJBQUZBQVlBQndBSWJHbG5ZUUF5Ykc1MWJRQTRjMjFqY0FBK2MzTXdNUUJFYzNNd01nQktjM013TXdCUWMzTXdOQUJXYzNNd05RQmNBQUFBQVFBQkFBQUFBUUFDQUFBQUFRQUFBQUFBQVFBREFBQUFBUUFFQUFBQUFRQUZBQUFBQVFBR0FBQUFBUUFIQUFnQUVnQWFBQ0lBS2dBeUFEb0FRZ0JLQUFFQUFBQUJBRUFBQkFBQUFBRUI5Z0FCQUFBQUFRSUFBQUVBQUFBQkFoSUFBUUFBQUFFQ0VBQUJBQUFBQVFJT0FBRUFBQUFCQWd3QUFRQUFBQUVDRGdBQ0FoQUEzQUdtQWFjQnFBR3BBYW9CcXdHc0FhMEJyZ0d2QWJBQnNRR3lBYk1CdEFIb0FiVUJ0Z0czQWJnQnVRRzZBYnNCdkFHOUFiNEJwZ0duQWFnQnFRR3FBYXNCckFHdEFhNEJyd0d3QWJFQnNnR3pBYlFCNkFHMUFiWUJ0d0c0QWJrQnVnRzdBYndCdlFHK0F2Y0NvZ0toQXFJQ293S2pBcVFDcFFLbUFxY0NxQUtwQXFvQ3F3S3NBcTBDcmdLdkFyQUNzUUt5QXJNQ3RBSzFBcllDdHdLNEFya0N1Z0s3QXJ3Q3ZRSytBcVFDcFFLbUFxY0NxQUtwQXFvQ3F3S3NBcTBDcmdLdkFyQUNzUUt5QXJNQ3RBSzFBcllDdHdLNEFya0N1Z0s3QXJ3Q3ZRSytBdk1DdndLL0FzQUN3QUxCQXNFQ3dnTENBc01Dd3dMRkFzVUN4Z0xHQXNjQ3h3TElBc2dDeVFMSkFzb0N5Z0xMQXNzQ3pBTE1BczBDelFMUEFzOEMwQUxRQXRFQzBRTFNBdElDMHdMVEF0UUMxQUxWQXRZQzFnTFhBdGNDMkFMWUF0a0MyUUxhQXRvQzJ3TGJBdHdDM0FMZEF0MEMzZ0xlQXQ4QzN3TGdBdUFDNFFMaEF1SUM0Z0xqQXVNQzVBTGtBdVVDNVFMbUF1WUM1d0xuQXVnQzZQLy8vLzhDNmdMcUF1c0M2d0xzQXV3QzdRTHRBdTRDN2dMdkF1OEM4QUx3QXZFQzhRTHlBdklDOHdMMEF2UUM5UUwxQXZZQzlnS2hBQUVBcEFBQkFBZ0FBUUFFQVpJQUFnQkxBQUlBbUFBS0FaZ0J6QUhFQWRZQjF3SFlBZGtCMndIZEFlY0FBUUNJQVpFQUFRQ0lBU2dBQVFDSUFhNEFBZ0NJQUFJQjR3SGtBQUlBZmdBQ0FlVUI1Z0FDQUEwQUl3QThBQUFBUXdCY0FCb0Fnd0NEQURRQWhRQ0ZBRFVCN0FIdEFEWUI3d0l4QURnQ05BSkZBSHNDU0FKVUFJMENWd0pvQUpvQ2FnSjdBS3dDZmdKL0FMNENnZ0tjQU1BRDhBUHdBTnNBQVFBQkFFZ0FBZ0FCQUJJQUd3QUFBQUVBQVFCSkFBRUFBUUMyQUFFQUFRQTBBQUVBQWdBdEFFMD0iLCJSb2JvdG8tTWVkaXVtLnR0ZiI6IkFBRUFBQUFPQUlBQUF3QmdSMFJGUmdzdUN5OEFBU3hnQUFBQVNFZFFUMU9RZXlPUEFBRXNxQUFBbC9wSFUxVkNlb2x2THdBQnhLUUFBQU5zVDFNdk1ya1RLY29BQUFGb0FBQUFZRlpFVFZodTZuWlBBQUFTT0FBQUJlQmpiV0Z3Zjc2QlpnQUFHQmdBQUE3aVoyeDVabTh6cVE0QUFDYjhBQURVUUdobFlXVDFQdzdWQUFBQTdBQUFBRFpvYUdWaEN4NEpJd0FBQVNRQUFBQWthRzEwZUxwTk5DY0FBQUhJQUFBUWNHeHZZMkVFbXM3UUFBRDdQQUFBQ0RwdFlYaHdCRHNBOWdBQUFVZ0FBQUFnYm1GdFpiMTBYd01BQVFONEFBQUVuM0J2YzNUZmI1eGlBQUVJR0FBQUpFWUFBUUFBQUFFQUFGNVNNc3RmRHp6MUFBa0lBQUFBQUFERThCRXVBQUFBQU0yQ3NuTDZKUDNWQ1lzSVlnQUFBQWtBQWdBQUFBQUFBQUFCQUFBSGJQNE1BQUFKbmZvay9WMEppd0FCQUFBQUFBQUFBQUFBQUFBQUFBQUVIQUFCQUFBRUhBQ1hBQllBWFFBRkFBRUFBQUFBQUFBQUFBQUFBQUFBQXdBQkFBTUUzZ0gwQUFVQUFBV2FCVE1BQUFFZkJab0ZNd0FBQTlFQVpnSUFBQUFBQUFBQUFBQUFBQUFBNEFBQy8xQUFJRnNBQUFBZ0FBQUFBSEI1Y25NQUFBQUEvLzBHQVA0QUFHWUhtZ0lBSUFBQm4wOEJBQUFFT2dXd0FBQUFJQUFDQWY0QUFBQUFBQUFCL2dBQUFmNEFBQUtZQUZJRTRnQThCSXdBWkFYZ0FHUUZIUUErQVZvQVVnSzNBSUFDdkFBUkEzOEFHd1IxQUVRQndnQW5BcUFBUndJOEFKa0RLZ0FDQkl3QWFBU01BTW9FakFCUkJJd0FUd1NNQURnRWpBQ0JCSXdBZEFTTUFFVUVqQUJoQkl3QVVnSWxBSmtDSUFCUkJCRUFQd1NPQUpFRUtnQ0FBK1FBS1FjaEFFb0ZRZ0FhQlNBQW53VWdBSFFGWWdDZkJLTUFud1NoQUo4RmJRQjBCYkFBbndKTkFLMEVmQUE2QlNnQW53UmtBSjhIQWdDZkJiQUFud1dQQUhRRkt3Q2ZCWkFBZEFWRkFKOEU4d0JUQk9vQU5RVjBBSVlGS3dBYUJ3SUFSQVVVQUM4RkF3QVRCTUFBV0FJeEFJUURWd0FWQWpFQURBTnJBRFVEbkFBREFwUUFTZ1JhQUY0RWlBQ0FCRE1BVVFTSUFGTUVQQUJaQXM4QU1RU0lBRlFFaUFCOUFoTUFrQUlaLzdBRU1BQ0JBaE1Ba0FiMUFJQUVpQUIrQklnQVV3U0lBSUFFaUFCVEF0b0FnQVFwQUZFQ25RQVpCSWdBZXdRT0FDQUYrZ0FsQkE0QUlRUU9BQkFFRGdCVkFxOEFPQUlDQUs0Q3J3QWJCVkVBZFFJZUFJOEVmUUJvQkxVQVVRV2RBRjBFNEFBYUFmd0FpQVQ0QUZvRUhnQ2tCa1FBVndPUkFIUUQ0Z0JVQkcwQWZ3WkVBRmNEMndDSEF3b0Fmd1JMQUY4RFlRQnRBMk1BWVFLeEFIZ0V1d0NTQkJBQVBnSkNBS0FDRUFCdEFqVUFaQU9uQUhjRDRnQmNCZ3dBbXdabUFKTUcwd0JtQkFFQVlBZUYvL1lFUkFCTkJYb0FhUVRLQUpRRTV3Q0lCc0VBTkFTNkFEd0VrUUJEQklrQVV3U1hBSWNGb2dBWUFob0Fqd1NZQUk0RUpBQWJBajhBR3dXU0FKTUVpQUIrQjdRQVpRYzZBRnNDREFDTEF0RC8zUVdKQUdZRW53QlNCYVVBaGdUeUFIc0NKdisxQkR3QVdRUG1BSnNEc0FCNUEzd0FkUUpQQUpvQ3NnQ0NBazBBS1FQWUFJQURMd0I2QXB3QXF3QUEvTnNBQVAwMkFBRDhlUUFBL1Q0QUFQd01BQUQ5SWdKZEFOY0VQQUNkQWtJQW9BUjFBSjhGdlFBYUJYc0FaZ1U1QUNNRWtRQndCYkVBbndTUkFFY0Y2d0JMQmFjQVNBVmJBR3dFaEFCV0JNWUFsZ1FPQUNBRWlBQlVCR0FBWUFRYUFHRUVpQUIrQktJQWN3S21BS2tFYWdBV0JCTUFaQVQzQUU4RWlBQ0FCRGNBVWdTUUFGSUVMZ0JBQkdBQWdBWFFBRVFGeVFCUEJwUUFaZ1V1QUhVRWRmL3VCbkVBTXdYL0FDUUZQZ0J5Q0lvQUxnaVJBSjhHWHdBMUJhc0FtUVVJQUpRR0J3QW1CNW9BR0FUVEFFb0ZxZ0NhQmFrQUxnVUtBRDhHWUFCUEJmWUFtUVdJQUk4SG1nQ2VCL29BbmdZYUFCZ0crUUNmQlFjQWxBVThBSWdIVkFDcUJQc0FMUVI5QUZzRWp3Q1BBMW9BaFFUMkFDY0dkZ0FYQkJZQVRRU1lBSVlFYmdDUEJKb0FId1lEQUk4RWx3Q0dCSmdBaGdQMUFDTUYwd0JVQk5NQWhnUm1BRjhHamdDR0J1d0FmZ1VZQUI4R2J3Q1BCR2dBandROEFGRUdoQUNRQkhBQUp3U0ovK0VFUFFCWUJ0RUFId2JrQUlZRWlmLzFCSmdBaGdkREFJMEdUd0J3QkdmLzRBY3BBS0lHQVFDR0JRY0FJQVJnQUFvSFFnQzJCallBblFidEFJUUY1Z0NDQ1RJQXJRZjVBSThFSVFBcEEvQUFNd1Y3QUdvRWlRQlNCUmtBRVFRT0FDQUZld0JxQklrQVV3YytBSTBHUkFCMEIwTUFqUVpRQUhBRkhRQnFCRW9BWEFUL0FHMEFBUHhtQUFEOGN3QUEvWHNBQVAybEFBRDZKUDdwK2swRVovL2dCUlFBbndTSEFJQUVhZ0NVQTZJQWZnUzNBSjhFSUFCK0JTb0FsQVNyQUk0R2xnQTBCYVFBUGdmUkFKOEZxd0IrQ0VjQW53YjFBSDRHSlFCcEJQOEFZUWN5QUM0RmNRQW1CWFVBZ2dSekFIUUZod0NLQmlZQUlBVEUvODRGSHdDVUJIZ0FqZ1d3QUo4RWlBQitCWWdBVXdTbUFGMEVwZ0JkQk1jQU93TlRBRFFGQndCVUJ1c0FaZ2JkQUY0R1V3QTdCU2dBTHdSN0FFa0VQd0IxQjc0QVF3YWRBRDhIL2dDWUJwNEFkd1VEQUdJRUxBQlZCYW9BSWdVZEFFUUZWd0NIQkJRQUFBZ3BBQUFFRkFBQUNDa0FBQUs1QUFBQ0NnQUFBVndBQUFSL0FBQUNNQUFBQWFJQUFBRFJBQUFBQUFBQUJZY0FyUWFCQUxJRG5RQUVBY0FBWUFHOEFETUJ6Z0F5QWFnQVJ3TVVBR0lER3dCQUF3Z0FNZ1JkQUVBRW1RQmNBc3NBaUFQNkFKd0ZwZ0NjQjZnQVN3SnlBR3dDYVFCVUE1d0FMUU9wQUQ4RFhBQnBCTFVBVHdhNEFKa0VUUUJMQmVVQWNRUGlBRVVJeUFDWUJRa0FaQVVVQUpZR3lRQnBCMkVBYWdlUkFHb0c3d0JxQkxzQVF3V1dBS1lFMlFCQUJJTUFuZ1N5QURzSVJRQmtBaUgvc2dTT0FHVUVUQUNZQkVZQXFnUkxBS0FFR2dBa0Fsc0Fzd0tZQUdNQjhRQkZCS2dBR0FBQUFBQUlNQUJaQ0RVQVhBUXlBRTBEaXdCTkJKTUFiQU1uLzU4Q0VQK3dBazBBR0FHekFGd0RvUUIxQTZFQWRRT2hBSFVFQ3dCNUJBc0FkUVFMLzB3RUN3QjZBNkVBV3dJRkFKQUV5QUFjQkl3QWpnU1VBR2dFcndDT0JFY0FqZ1FxQUk0RTJ3Qm9CUklBamdJVkFJNEVGd0F1QkhjQWpnTzlBSTRHQmdDT0JTRUFqZ1RLQUdZRTNRQm9CS2dBamdSd0FFOEVNZ0E4QlFBQWZnU3hBQndHRGdBMEJJd0FMQVJWQUJNRVRRQktCSVlBYlFLRkFENEQvd0JTQkNJQVRRUmxBRGtFZkFCUkJEMEFiUU92QUR3RVF3QlNCQ29BUHdJekFGY0RWUUJyQTJZQVlBTDlBRGdEZGdCb0EzWUFjQU1BQUZJRGd3Qm9BMllBWUFPZkFIQUR1UUNYQXJJQWxnTkNBR3dFakFCUEJJd0FPQVNNQUlFRW1BQjBCRHNBQ2dRMEFESUVZZ0ErQkl3QVlRUzdBRllFaUFCVEJVa0Fud1JhQUdBRk1nQ2ZCU2dBbndRd0FJRUZPZ0NmQkMwQWdRU05BRklFakFDT0Ezd0FkUUgrQUFBQ29BQkhCWUFBSkFXQUFDUUVwdi85Qk9vQU5RS2QvK2NGUWdBYUJVSUFHZ1ZDQUJvRlFnQWFCVUlBR2dWQ0FCb0ZRZ0FhQlNBQWRBU2pBSjhFb3dDZkJLTUFud1NqQUo4Q1RmL01BazBBclFKTi85Z0NUZis5QmJBQW53V1BBSFFGandCMEJZOEFkQVdQQUhRRmp3QjBCWFFBaGdWMEFJWUZkQUNHQlhRQWhnVURBQk1FV2dCZUJGb0FYZ1JhQUY0RVdnQmVCRm9BWGdSYUFGNEVXZ0JlQkRNQVVRUThBRmtFUEFCWkJEd0FXUVE4QUZrQ0d2K3ZBaG9BandJYS83c0NHditnQklnQWZnU0lBRk1FaUFCVEJJZ0FVd1NJQUZNRWlBQlRCSWdBZXdTSUFIc0VpQUI3QklnQWV3UU9BQkFFRGdBUUJVSUFHZ1JhQUY0RlFnQWFCRm9BWGdWQ0FCb0VXZ0JlQlNBQWRBUXpBRkVGSUFCMEJETUFVUVVnQUhRRU13QlJCU0FBZEFRekFGRUZZZ0NmQlI0QVV3U2pBSjhFUEFCWkJLTUFud1E4QUZrRW93Q2ZCRHdBV1FTakFKOEVQQUJaQktNQW53UThBRmtGYlFCMEJJZ0FWQVZ0QUhRRWlBQlVCVzBBZEFTSUFGUUZiUUIwQklnQVZBV3dBSjhFaUFCOUFrMy92d0lhLzZJQ1RmKy9BaHIvb2dKTi8rVUNHdi9JQWswQUhBSVQvLzRDVFFDakJza0FyUVFzQUpBRWZBQTZBaWIvdFFVb0FKOEVNQUNCQkdRQW53SVRBSkFFWkFDZkFoTUFXQVJrQUo4Q3FRQ1FCR1FBbndMdkFKQUZzQUNmQklnQWZnV3dBSjhFaUFCK0JiQUFud1NJQUg0RWlQL1ZCWThBZEFTSUFGTUZqd0IwQklnQVV3V1BBSFFFaUFCVEJVVUFud0xhQUlBRlJRQ2ZBdG9BVmdWRkFKOEMyZ0JEQlBNQVV3UXBBRkVFOHdCVEJDa0FVUVR6QUZNRUtRQlJCUE1BVXdRcEFGRUU4d0JUQkNrQVVRVHFBRFVDblFBWkJPb0FOUUtkQUJrRTZnQTFBc1VBR1FWMEFJWUVpQUI3QlhRQWhnU0lBSHNGZEFDR0JJZ0Fld1YwQUlZRWlBQjdCWFFBaGdTSUFIc0ZkQUNHQklnQWV3Y0NBRVFGK2dBbEJRTUFFd1FPQUJBRkF3QVRCTUFBV0FRT0FGVUV3QUJZQkE0QVZRVEFBRmdFRGdCVkI0WC85Z2JCQURRRmVnQnBCSWtBVXdTdi8rb0VyLy9xQkRJQVBBVElBQndFeUFBY0JNZ0FIQVRJQUJ3RXlBQWNCTWdBSEFUSUFCd0VsQUJvQkVjQWpnUkhBSTRFUndDT0JFY0FqZ0lWLzZ3Q0ZRQ09BaFgvdUFJVi81MEZJUUNPQk1vQVpnVEtBR1lFeWdCbUJNb0FaZ1RLQUdZRkFBQitCUUFBZmdVQUFINEZBQUIrQkZVQUV3VElBQndFeUFBY0JNZ0FIQVNVQUdnRWxBQm9CSlFBYUFTVUFHZ0Vyd0NPQkVjQWpnUkhBSTRFUndDT0JFY0FqZ1JIQUk0RTJ3Qm9CTnNBYUFUYkFHZ0Uyd0JvQlJJQWpnSVYvNThDRmYrZkFoWC94UUlWLy9rQ0ZRQ0VCQmNBTGdSM0FJNER2UUNPQTcwQWpnTzlBSTREdlFDT0JTRUFqZ1VoQUk0RklRQ09CTW9BWmdUS0FHWUV5Z0JtQktnQWpnU29BSTRFcUFDT0JIQUFUd1J3QUU4RWNBQlBCSEFBVHdReUFEd0VNZ0E4QlFBQWZnVUFBSDRGQUFCK0JRQUFmZ1VBQUg0RkFBQitCZzRBTkFSVkFCTUVWUUFUQkUwQVNnUk5BRW9FVFFCS0NPQUFUd1ZDQUJvRkIvK3ZCaFQvM0FLeC8rTUZvd0FxQldmL1p3VnZBQk1DcHYrd0JVSUFHZ1VnQUo4RW93Q2ZCTUFBV0FXd0FKOENUUUN0QlNnQW53Y0NBSjhGc0FDZkJZOEFkQVVyQUo4RTZnQTFCUU1BRXdVVUFDOENUZis5QlFNQUV3U0VBRllFWUFCZ0JJZ0FmZ0ttQUtrRVlBQ0FCSmdBamdTSUFGTUV1d0NTQkE0QUlBUU9BQ0VDcHYvRUJHQUFnQVNJQUZNRVlBQ0FCcFFBWmdTakFKOEVkUUNmQlBNQVV3Sk5BSzBDVGYrOUJId0FPZ1VvQUo4RktBQ2ZCUW9BUHdWQ0FCb0ZJQUNmQkhVQW53U2pBSjhGcWdDYUJ3SUFud1d3QUo4Rmp3QjBCYkVBbndVckFKOEZJQUIwQk9vQU5RVVVBQzhFV2dCZUJEd0FXUVNZQUlZRWlBQlRCSWdBZ0FRekFGRUVEZ0FRQkE0QUlRUThBRmtEV2dDRkJDa0FVUUlUQUpBQ0d2K2dBaG4vc0FSdUFJOEVEZ0FRQndJQVJBWDZBQ1VIQWdCRUJmb0FKUWNDQUVRRitnQWxCUU1BRXdRT0FCQUJXZ0JTQXBnQVVnUktBSm9FNGdBeEFpYi90UUc4QURNSEFnQ2ZCdlVBZ0FWQ0FCb0VXZ0JlQlkvL1BRZDNBREVIc1FBeEJLTUFud1dxQUpvRVBBQlpCSmdBaGdXbkFFZ0Z5UUJQQlJrQUVRUU8vK01JbGdCVENaMEFkQVRUQUVvRUZnQk5CU0FBZEFRekFGRUZBd0FUQkE0QUlBSk5BSzBIbWdBWUJuWUFGd0pOQUswRlFnQWFCRm9BWGdWQ0FCb0VXZ0JlQjRYLzlnYkJBRFFFb3dDZkJEd0FXUVdJQUZNRVBBQlpCRHdBV1FlYUFCZ0dkZ0FYQk5NQVNnUVdBRTBGcWdDYUJKZ0FoZ1dxQUpvRW1BQ0dCWThBZEFTSUFGTUZld0JxQklrQVVnVjdBR29FaVFCU0JUd0FpQVE4QUZFRkNnQS9CQTRBRUFVS0FEOEVEZ0FRQlFvQVB3UU9BQkFGaUFDUEJHWUFYd2I1QUo4R2J3Q1BCUlFBTHdRT0FDRUVpQUJUQmFrQUxnU2FBQjhGUWdBYUJGb0FYZ1ZDQUJvRVdnQmVCVUlBR2dSYUFGNEZRZ0FFQkZyL2lRVkNBQm9FV2dCZUJVSUFHZ1JhQUY0RlFnQWFCRm9BWGdWQ0FCb0VXZ0JlQlVJQUdnUmFBRjRGUWdBYUJGb0FYZ1ZDQUJvRVdnQmVCVUlBR2dSYUFGNEVvd0NmQkR3QVdRU2pBSjhFUEFCWkJLTUFud1E4QUZrRW93Q2ZCRHdBV1FTai84d0VQUCtMQktNQW53UThBRmtFb3dDZkJEd0FXUVNqQUo4RVBBQlpBazBBclFJYUFJOENUUUNmQWhNQWdnV1BBSFFFaUFCVEJZOEFkQVNJQUZNRmp3QjBCSWdBVXdXUEFDc0VpUCttQlk4QWRBU0lBRk1GandCMEJJZ0FVd1dQQUhRRWlBQlRCWWtBWmdTZkFGSUZpUUJtQko4QVVnV0pBR1lFbndCU0JZa0FaZ1NmQUZJRmlRQm1CSjhBVWdWMEFJWUVpQUI3QlhRQWhnU0lBSHNGcFFDR0JQSUFld1dsQUlZRThnQjdCYVVBaGdUeUFIc0ZwUUNHQlBJQWV3V2xBSVlFOGdCN0JRTUFFd1FPQUJBRkF3QVRCQTRBRUFVREFCTUVEZ0FRQktZQVV3U21BRk1GS0FDZkJHNEFqd1d3QUo4RWx3Q0dCT29BTlFQMUFDTUZGQUF2QkE0QUlRV0lBSThFWmdCZkJZZ0Fqd1JtQUY4RWRRQ2ZBMW9BaFFlYUFCZ0dkZ0FYQmlZQUlBVEUvODRFaUFCOUJRZi8xd1VILzljRWRmLzNBMXIvNlFVOC85MEVSUC9NQmFvQW1nU1lBSVlGc0FDZkJKY0FoZ2NDQUo4R0F3Q1BCYWtBTGdTYUFCOEZBd0FUQkE0QUlBVVVBQzhFRGdBaEJHQUFZQVNoQUJZR2dRQ3lBQUFBQUFJbEFKb0FBQUFCQUFFQkFRRUJBQXdBK0FqL0FBZ0FDUC8rQUFrQUNmLzlBQW9BQ3YvOUFBc0FDLy85QUF3QURQLzlBQTBBRGYvOEFBNEFEdi84QUE4QUQvLzhBQkFBRVAvOEFCRUFFZi83QUJJQUV2LzdBQk1BRS8vN0FCUUFGUC83QUJVQUZQLzZBQllBRmYvNkFCY0FGdi82QUJnQUYvLzZBQmtBR1AvNUFCb0FHZi81QUJzQUd2LzVBQndBRy8vNUFCMEFIUC80QUI0QUhmLzRBQjhBSHYvNEFDQUFILy80QUNFQUlQLzNBQ0lBSWYvM0FDTUFJdi8zQUNRQUkvLzNBQ1VBSlAvMkFDWUFKZi8yQUNjQUp2LzJBQ2dBSi8vMkFDa0FKLy8xQUNvQUtQLzFBQ3NBS2YvMUFDd0FLdi8xQUMwQUsvLzBBQzRBTFAvMEFDOEFMZi8wQURBQUx2LzBBREVBTC8vekFESUFNUC96QURNQU1mL3pBRFFBTXYvekFEVUFNLy95QURZQU5QL3lBRGNBTmYveUFEZ0FOdi95QURrQU4vL3hBRG9BT1AveEFEc0FPZi94QUR3QU92L3hBRDBBT3Yvd0FENEFPLy93QUQ4QVBQL3dBRUFBUGYvd0FFRUFQdi92QUVJQVAvL3ZBRU1BUVAvdkFFUUFRZi92QUVVQVF2L3VBRVlBUS8vdUFFY0FSUC91QUVnQVJmL3VBRWtBUnYvdEFFb0FSLy90QUVzQVNQL3RBRXdBU2YvdEFFMEFTdi9zQUU0QVMvL3NBRThBVFAvc0FGQUFUZi9zQUZFQVRmL3JBRklBVHYvckFGTUFULy9yQUZRQVVQL3JBRlVBVWYvcUFGWUFVdi9xQUZjQVUvL3FBRmdBVlAvcUFGa0FWZi9wQUZvQVZ2L3BBRnNBVi8vcEFGd0FXUC9wQUYwQVdmL29BRjRBV3Yvb0FGOEFXLy9vQUdBQVhQL29BR0VBWGYvbkFHSUFYdi9uQUdNQVgvL25BR1FBWVAvbkFHVUFZUC9tQUdZQVlmL21BR2NBWXYvbUFHZ0FZLy9tQUdrQVpQL2xBR29BWmYvbEFHc0Fadi9sQUd3QVovL2xBRzBBYVAva0FHNEFhZi9rQUc4QWF2L2tBSEFBYS8va0FIRUFiUC9qQUhJQWJmL2pBSE1BYnYvakFIUUFiLy9qQUhVQWNQL2lBSFlBY2YvaUFIY0Fjdi9pQUhnQWMvL2lBSGtBYy8vaEFIb0FkUC9oQUhzQWRmL2hBSHdBZHYvaEFIMEFkLy9nQUg0QWVQL2dBSDhBZWYvZ0FJQUFldi9nQUlFQWUvL2ZBSUlBZlAvZkFJTUFmZi9mQUlRQWZ2L2ZBSVVBZi8vZUFJWUFnUC9lQUljQWdmL2VBSWdBZ3YvZUFJa0FnLy9kQUlvQWhQL2RBSXNBaGYvZEFJd0Fodi9kQUkwQWh2L2NBSTRBaC8vY0FJOEFpUC9jQUpBQWlmL2NBSkVBaXYvYkFKSUFpLy9iQUpNQWpQL2JBSlFBamYvYkFKVUFqdi9hQUpZQWovL2FBSmNBa1AvYUFKZ0FrZi9hQUprQWt2L1pBSm9Bay8vWkFKc0FsUC9aQUp3QWxmL1pBSjBBbHYvWUFKNEFsLy9ZQUo4QW1QL1lBS0FBbWYvWUFLRUFtZi9YQUtJQW12L1hBS01BbS8vWEFLUUFuUC9YQUtVQW5mL1dBS1lBbnYvV0FLY0FuLy9XQUtnQW9QL1dBS2tBb2YvVkFLb0Fvdi9WQUtzQW8vL1ZBS3dBcFAvVkFLMEFwZi9VQUs0QXB2L1VBSzhBcC8vVUFMQUFxUC9VQUxFQXFmL1RBTElBcXYvVEFMTUFxLy9UQUxRQXJQL1RBTFVBclAvU0FMWUFyZi9TQUxjQXJ2L1NBTGdBci8vU0FMa0FzUC9SQUxvQXNmL1JBTHNBc3YvUkFMd0FzLy9SQUwwQXRQL1FBTDRBdGYvUUFMOEF0di9RQU1BQXQvL1FBTUVBdVAvUEFNSUF1Zi9QQU1NQXV2L1BBTVFBdS8vUEFNVUF2UC9PQU1ZQXZmL09BTWNBdnYvT0FNZ0F2Ly9PQU1rQXYvL05BTW9Bd1AvTkFNc0F3Zi9OQU13QXd2L05BTTBBdy8vTUFNNEF4UC9NQU04QXhmL01BTkFBeHYvTUFORUF4Ly9MQU5JQXlQL0xBTk1BeWYvTEFOUUF5di9MQU5VQXkvL0tBTllBelAvS0FOY0F6Zi9LQU5nQXp2L0tBTmtBei8vSkFOb0EwUC9KQU5zQTBmL0pBTndBMHYvSkFOMEEwdi9JQU40QTAvL0lBTjhBMVAvSUFPQUExZi9JQU9FQTF2L0hBT0lBMS8vSEFPTUEyUC9IQU9RQTJmL0hBT1VBMnYvR0FPWUEyLy9HQU9jQTNQL0dBT2dBM2YvR0FPa0Ezdi9GQU9vQTMvL0ZBT3NBNFAvRkFPd0E0Zi9GQU8wQTR2L0VBTzRBNC8vRUFPOEE1UC9FQVBBQTVmL0VBUEVBNWYvREFQSUE1di9EQVBNQTUvL0RBUFFBNlAvREFQVUE2Zi9DQVBZQTZ2L0NBUGNBNi8vQ0FQZ0E3UC9DQVBrQTdmL0JBUG9BN3YvQkFQc0E3Ly9CQVB3QThQL0JBUDBBOGYvQUFQNEE4di9BQVA4QTgvL0FBQUFBQXdBQUFBTUFBQWlFQUFFQUFBQUFBQndBQXdBQkFBQUNKZ0FHQWdvQUFBQUFBUUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQWdBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFNRUd3QUVBQVVBQmdBSEFBZ0FDUUFLQUFzQURBQU5BQTRBRHdBUUFCRUFFZ0FUQUJRQUZRQVdBQmNBR0FBWkFCb0FHd0FjQUIwQUhnQWZBQ0FBSVFBaUFDTUFKQUFsQUNZQUp3QW9BQ2tBS2dBckFDd0FMUUF1QUM4QU1BQXhBRElBTXdBMEFEVUFOZ0EzQURnQU9RQTZBRHNBUEFBOUFENEFQd0JBQUVFQVFnQkRBRVFBUlFCR0FFY0FTQUJKQUVvQVN3Qk1BRTBBVGdCUEFGQUFVUUJTQUZNQVZBQlZBRllBVndCWUFGa0FXZ0JiQUZ3QVhRQmVBRjhBWUFBQUFmVUI5Z0g0QWZvQ0FRSUdBZ29DRFFJTUFnNENFQUlQQWhFQ0V3SVZBaFFDRmdJWEFoa0NHQUlhQWhzQ0hBSWVBaDBDSHdJaEFpQUNJd0lpQWlRQ0pRRnNBRzhBWWdCakFHY0JiZ0IxQUlNQWJRQnBBWDBBY3dCb0FZc0Fmd0NCQVlnQWNBR01BWTBBWlFCMEFZTUJoUUdFQU1FQmlRQnFBSGtBdFFDRUFJY0FmZ0JoQUd3Qmh3Q1RBWW9BclFCckFIb0JjQUFEQWZFQjlBSUZBSkFBa1FGaUFXTUJhUUZxQVdVQlpnQ0dBWTRDSndLV0FYUUJlUUZ5QVhNQmtnTlFBVzBBZGdGbkFXc0JjUUh6QWZzQjhnSDhBZmtCL2dIL0FnQUIvUUlEQWdRQUFBSUNBZ2dDQ1FJSEFJb0FtZ0NnQUc0QW5BQ2RBSjRBZHdDaEFKOEFtd0FFQmw0QUFBRHFBSUFBQmdCcUFBQUFBZ0FOQUNFQWZnQ2dBS3dBclFDL0FNWUF6d0RtQU84QS9nRVBBUkVCSlFFbkFUQUJPQUZBQVZNQlh3Rm5BWDRCZndHU0FhRUJzQUh3QWZzQi93SVpBaHNDTndKWkFyd0N4d0xKQXQwQzh3TUJBd01EQ1FNUEF5TURpZ09NQTVJRG9RT3dBN2tEeVFQT0E5SUQxZ1FsQkM4RVJRUlBCR0lFYndSNUJJWUV6Z1RYQk9FRTlRVUJCUkFGRXg0QkhqOGVoUjd4SHZNZStSOU5JQXNnRlNBZUlDSWdKaUF3SURNZ09pQThJRVFnZENCL0lLUWdweUNzSVFVaEV5RVdJU0loSmlFdUlWNGlBaUlHSWc4aUVpSWFJaDRpS3lKSUltQWlaU1hLN2dMMncvc0Uvdi8vL2YvL0FBQUFBQUFDQUEwQUlBQWlBS0FBb1FDdEFLNEF3QURIQU5BQTV3RHdBUDhCRUFFU0FTWUJLQUV4QVRrQlFRRlVBV0FCYUFGL0FaSUJvQUd2QWZBQitnSDhBaGdDR2dJM0Fsa0N2QUxHQXNrQzJBTHpBd0FEQXdNSkF3OERJd09FQTR3RGpnT1RBNk1Ec1FPNkE4b0QwUVBXQkFBRUpnUXdCRVlFVUFSakJIQUVlZ1NJQk04RTJBVGlCUFlGQWdVUkhnQWVQaDZBSHFBZThoNzBIMDBnQUNBVElCY2dJQ0FsSURBZ01pQTVJRHdnUkNCMElIOGdveUNuSUtzaEJTRVRJUlloSWlFbUlTNGhXeUlDSWdZaUR5SVJJaG9pSGlJcklrZ2lZQ0prSmNydUFmYkQrd0grLy8vOC8vOEFBUVFZLy9VQUFQL2lBQUQvd0FBQS83OEFBQUV4QUFBQkxBQUFBU2dBQUFFbUFBQUJKQUFBQVNJQUFBRWNBQUFCSGdBQS93SCs5UDduQVdFQUFBQ2hBR1FBWnY1aC9rQUFsdjNVL2FYOXhQMnYvYVA5b3YyZC9aajloUUFBLzNEL2J3QUFBQUQ5QlFBQS8xRDgrZnoyQUFEOHRRQUEvSzBBQVB5aUFBRDhuQUFBL3A0QUFQNmJBQUQ4UlFBQTVWWGxGZVRGNVBqa1dlVDI1QXJoVmdBQTRVM2hUT0ZLNFVIakcrRTU0eFBoTU9FQjRQY0FBT0RSQUFEZ2RlQm80R2JnVzkrUDRGRGdKTitCM3FmZmRkOTAzMjNmYXQ5ZTMwTGZLOThvMjhRVGpnck9BQUFDbEFHWUFBRUFBQUFBQUFBQTVBQUFBT1FBQUFEaUFBQUE0QUFBQU9vQUFBRVVBQUFCTGdBQUFTNEFBQUV1QUFBQk9nQUFBVndBQUFGb0FBQUFBQUFBQUFBQllBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZFQUFBQUFBRk1BV2dBQUFHQUFBQUFBQUFBQVpnQUFBSGdBQUFDQ0FBQUFpb0FBQUk2QUFBQ3hBQUFBdFFBQUFMb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFMY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUN6QUFBQXN3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBcVlBQUFBQUFBQUFBd1FiQWVvQjZ3SHhBZklCOHdIMEFmVUI5Z0IvQWUwQ0FRSUNBZ01DQkFJRkFnWUFnQUNCQWdjQ0NBSUpBZ29DQ3dDQ0FJTUNEQUlOQWc0Q0R3SVFBaEVBaEFDRkFod0NIUUllQWg4Q0lBSWhBSVlBaHdJaUFpTUNKQUlsQWlZQWlBSHNBL0FBaVFIdUFJb0NWUUpXQWxjQ1dBSlpBbG9BaXdDTUFJMENZd0prQW1VQ1pnSm5BbWdDYVFDT0FJOENhZ0pyQW13Q2JRSnVBbThBa0FDUkFuNENmd0tDQW9NQ2hBS0ZBZThCOEFDU0FmY0NFZ0NwQUtvQytBQ3JBdmtDK2dMN0FLd0FyUU1DQXdNREJBQ3VBd1VEQmdDdkF3Y0RDQUN3QXdrQXNRTUtBTElEQ3dNTUFMTUREUUMwQUxVRERnTVBBeEFERVFNU0F4TURGQU1WQUw4REZ3TVlBTUFERmdEQkFNSUF3d0RFQU1VQXhnREhBeGtBeUFESkExb0RId0ROQXlBQXpnTWhBeUlESXdNa0FNOEEwQURSQXlZRFd3TW5BTklES0FEVEF5a0RLZ0RVQXlzQTFRRFdBTmNETEFNbEFOZ0RMUU11QXk4RE1BTXhBeklETXdEWkFOb0ROQU0xQU9VQTVnRG5BT2dETmdEcEFPb0E2d00zQU93QTdRRHVBTzhET0FEd0F6a0RPZ0R4QXpzQThnTThBMXdEUFFEOUF6NEEvZ00vQTBBRFFRTkNBUDhCQUFFQkEwTURYUU5FQVFJQkF3RUVCQVlEWGdOZkFSSUJFd0VVQVJVRFlBTmhBMk1EWWdFakFTUUVDd1FNQkFVQkpRRW1BU2NCS0FFcEJBY0VDQUVxQVNzRUFBUUJBMlFEWlFQeUEvTUJMQUV0QkFrRUNnRXVBUzhEOUFQMUFUQUJNUUV5QVRNQk5BRTFBMllEWndQMkEvY0RhQU5wQkJNRUZBUDRBL2tCTmdFM0Evb0Qrd0U0QVRrQk9nUUVBVHNCUEFRQ0JBTURhZ05yQTJ3QlBRRStCQkVFRWdFL0FVQUVEUVFPQS93RC9RUVBCQkFCUVFOM0EzWURlQU41QTNvRGV3TjhBVUlCUXdQK0EvOERrUU9TQVVRQlJRT1RBNVFFRlFRV0FVWURsUVFYQTVZRGx3RmlBV01FR1FRWUFYY0Q4UUY1QVpJRFVBTllBMWtBQkFaZUFBQUE2Z0NBQUFZQWFnQUFBQUlBRFFBaEFINEFvQUNzQUswQXZ3REdBTThBNWdEdkFQNEJEd0VSQVNVQkp3RXdBVGdCUUFGVEFWOEJad0YrQVg4QmtnR2hBYkFCOEFIN0FmOENHUUliQWpjQ1dRSzhBc2NDeVFMZEF2TURBUU1EQXdrRER3TWpBNG9EakFPU0E2RURzQU81QThrRHpnUFNBOVlFSlFRdkJFVUVUd1JpQkc4RWVRU0dCTTRFMXdUaEJQVUZBUVVRQlJNZUFSNC9Ib1VlOFI3ekh2a2ZUU0FMSUJVZ0hpQWlJQ1lnTUNBeklEb2dQQ0JFSUhRZ2Z5Q2tJS2NnckNFRklSTWhGaUVpSVNZaExpRmVJZ0lpQmlJUEloSWlHaUllSWlzaVNDSmdJbVVseXU0QzlzUDdCUDcvLy8zLy93QUFBQUFBQWdBTkFDQUFJZ0NnQUtFQXJRQ3VBTUFBeHdEUUFPY0E4QUQvQVJBQkVnRW1BU2dCTVFFNUFVRUJWQUZnQVdnQmZ3R1NBYUFCcndId0Fmb0IvQUlZQWhvQ053SlpBcndDeGdMSkF0Z0M4d01BQXdNRENRTVBBeU1EaEFPTUE0NERrd09qQTdFRHVnUEtBOUVEMWdRQUJDWUVNQVJHQkZBRVl3UndCSG9FaUFUUEJOZ0U0Z1QyQlFJRkVSNEFIajRlZ0I2Z0h2SWU5QjlOSUFBZ0V5QVhJQ0FnSlNBd0lESWdPU0E4SUVRZ2RDQi9JS01ncHlDcklRVWhFeUVXSVNJaEppRXVJVnNpQWlJR0lnOGlFU0lhSWg0aUt5SklJbUFpWkNYSzdnSDJ3L3NCL3YvLy9QLy9BQUVFR1AvMUFBRC80Z0FBLzhBQUFQKy9BQUFCTVFBQUFTd0FBQUVvQUFBQkpnQUFBU1FBQUFFaUFBQUJIQUFBQVI0QUFQOEIvdlQrNXdGaEFBQUFvUUJrQUdiK1lmNUFBSmI5MVAybC9jVDlyLzJqL2FMOW5mMlkvWVVBQVA5dy8yOEFBQUFBL1FVQUFQOVEvUG44OWdBQS9MVUFBUHl0QUFEOG9nQUEvSndBQVA2ZUFBRCttd0FBL0VVQUFPVlY1UlhreGVUNDVGbms5dVFLNFZZQUFPRk40VXpoU3VGQjR4dmhPZU1UNFREaEFlRDNBQURnMFFBQTRIWGdhT0JtNEZ2ZmorQlE0Q1RmZ2Q2bjMzWGZkTjl0MzJyZlh0OUMzeXZmS052RUU0NEt6Z0FBQXBRQm1BQUJBQUFBQUFBQUFPUUFBQURrQUFBQTRnQUFBT0FBQUFEcUFBQUJGQUFBQVM0QUFBRXVBQUFCTGdBQUFUb0FBQUZjQUFBQmFBQUFBQUFBQUFBQUFXQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUkFBQUFBQUJUQUZvQUFBQmdBQUFBQUFBQUFHWUFBQUI0QUFBQWdnQUFBSXFBQUFDT2dBQUFzUUFBQUxVQUFBQzZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQzNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBc3dBQUFMTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUttQUFBQUFBQUFBQU1FR3dIcUFlc0I4UUh5QWZNQjlBSDFBZllBZndIdEFnRUNBZ0lEQWdRQ0JRSUdBSUFBZ1FJSEFnZ0NDUUlLQWdzQWdnQ0RBZ3dDRFFJT0FnOENFQUlSQUlRQWhRSWNBaDBDSGdJZkFpQUNJUUNHQUljQ0lnSWpBaVFDSlFJbUFJZ0I3QVB3QUlrQjdnQ0tBbFVDVmdKWEFsZ0NXUUphQUlzQWpBQ05BbU1DWkFKbEFtWUNad0pvQW1rQWpnQ1BBbW9DYXdKc0FtMENiZ0p2QUpBQWtRSitBbjhDZ2dLREFvUUNoUUh2QWZBQWtnSDNBaElBcVFDcUF2Z0Fxd0w1QXZvQyt3Q3NBSzBEQWdNREF3UUFyZ01GQXdZQXJ3TUhBd2dBc0FNSkFMRURDZ0N5QXdzRERBQ3pBdzBBdEFDMUF3NEREd01RQXhFREVnTVRBeFFERlFDL0F4Y0RHQURBQXhZQXdRRENBTU1BeEFERkFNWUF4d01aQU1nQXlRTmFBeDhBelFNZ0FNNERJUU1pQXlNREpBRFBBTkFBMFFNbUExc0RKd0RTQXlnQTB3TXBBeW9BMUFNckFOVUExZ0RYQXl3REpRRFlBeTBETGdNdkF6QURNUU15QXpNQTJRRGFBelFETlFEbEFPWUE1d0RvQXpZQTZRRHFBT3NETndEc0FPMEE3Z0R2QXpnQThBTTVBem9BOFFNN0FQSURQQU5jQXowQS9RTStBUDREUHdOQUEwRURRZ0QvQVFBQkFRTkRBMTBEUkFFQ0FRTUJCQVFHQTE0RFh3RVNBUk1CRkFFVkEyQURZUU5qQTJJQkl3RWtCQXNFREFRRkFTVUJKZ0VuQVNnQktRUUhCQWdCS2dFckJBQUVBUU5rQTJVRDhnUHpBU3dCTFFRSkJBb0JMZ0V2QS9RRDlRRXdBVEVCTWdFekFUUUJOUU5tQTJjRDlnUDNBMmdEYVFRVEJCUUQrQVA1QVRZQk53UDZBL3NCT0FFNUFUb0VCQUU3QVR3RUFnUURBMm9EYXdOc0FUMEJQZ1FSQkJJQlB3RkFCQTBFRGdQOEEvMEVEd1FRQVVFRGR3TjJBM2dEZVFONkEzc0RmQUZDQVVNRC9nUC9BNUVEa2dGRUFVVURrd09VQkJVRUZnRkdBNVVFRndPV0E1Y0JZZ0ZqQkJrRUdBRjNBL0VCZVFHU0ExQURXQU5aQUFBQUFnQlNBL3dDUHdZWUFBUUFDUUFBQVFNakVUTUZBeU1STXdFQk9IZXZBVDQ0ZDY4RmovNXRBaHlKL20wQ0hBQUFBZ0E4QUFBRW1BV3dBQnNBSHdBQUFTTURJeE1qTlNFVEl6VWhFek1ETXhNekF6TVZJd016RlNNREl3TXpFeU1DcStGTXAwem5BUVU2OHdFUlRxZE80RTZvVHREdU90MzdUS2QzNFRyaEFacitaZ0dhbmdFNW53R2cvbUFCb1A1Z24vN0hudjVtQWpnQk9RQUFBUUJrL3kwRUpnYWJBQ3NBQUFFMEppY3VBVFUwTmpjMU14VWVBUlVqTkNZaklnWVZGQllYSGdFVkZBWUhGU00xTGdFMU14UVdNekkyQXpOc2hkZlB4N0NncjczeWJtUm9aR2lPMThyUHVaKzI1Zk9KYW5GNEFYeFhiUzlKeHJPcTBSWGEzQnJ0eTRDUGExNVlhVEpOdzdLd3l4UER3aFBiM3BGM2FnQUFBQUFGQUdULzZ3V0pCY1VBRFFBYkFDa0FOd0E3QUFBVE5EWXpNaFlkQVJRR0l5SW1OVE1VRmpNeU5qMEJOQ1lqSWdZVkFUUTJNeklXSFFFVUJpTWlKalV6RkJZek1qWTlBVFFtSXlJR0ZRVW5BUmRrb3BLVG9xS1JrNk9wU0VWRFJrZEVSRWNDRTZPUmtxT2lrWktrcVVwRFIwTklSRVJIL2dWOUFzZDlCSmlEcXFxRFRZT29xWUpDVjFkQ1RVSlpXVUw4ellLcXFvSk9nNm1wZzBGWlZVVk9RVmxaUWZoSUJISklBQUFBQXdBKy8rc0UrQVhGQUNBQUt3QTRBQUFUTkRZM0xnRTFORFl6TWhZVkZBWVBBUUUrQVRVekZBWUhGeUVuRGdFaklpWUZNalkzQVFjT0FSVVVGZ01VRmhjM1BnRTFOQ1lqSWdZK2hZdExSc3F6b3NSbFlHUUJNU2tzeFVoTHlmN25VVk80YXQ3OUFlSkFkemordUI1S0xud01NREZ5T2laVVJrdE9BWWw2clZ4aGwxR3Z3YnlLWkpaR1NQNldRSk5XaStKYzdWODdPZUlnSXlRQmd4WTVaakZtZmdPck1XUS9UQ1pQTWpkVVlRQUJBRklFQkFFTEJoZ0FCQUFBQVFNakVUTUJDMEozdVFXYi9ta0NGQUFBQUFFQWdQNHhBcUlHWHdBUEFBQVRFQUEzRndZQ0VSVVFFaGNISmdBUmdBRTF2VENKdkx1S01MMyt5d0pRQVpFQ0lWMk9hUDVIL3FJVS9xTCtSMitIWGdJZkFaSUFBUUFSL2pFQ093WmZBQThBQUFFUUFBY25OaElSTlJBQ0p6Y1dBQkVDTy83RXZUR0h2c0tETWIwQlBBSkEvblA5M0Y2SGFBRy9BVjhVQVZvQndXcUlYZjNaL25VQUFBQUFBUUFiQWs4RFlnV3dBQTRBQUFFbE53VURNd01sRndVVEJ3c0JKd0ZGL3RZMUFTZ05yZzhCSXpYKzBjT05zYTZQQTh4WnFYVUJWLzZpYzZ0WS92WnBBUi8rNldZQUFBQUFBUUJFQUpJRUtnUzJBQXNBQUFFaEZTRVJJeEVoTlNFUk13S3VBWHoraE96K2dnRis3QU1oM3Y1UEFiSGVBWlVBQVFBbi9xc0JaQURyQUFrQUFDVVVCZ2NuUGdFOUFUTUJZMmhWZnl3czVUZG4zRWxPU0pOYnZBQUFBQUFCQUVjQ0NRSlVBczBBQXdBQUFTRTFJUUpVL2ZNQ0RRSUp4QUFBQVFDWkFBQUJpd0RwQUFNQUFDRWpOVE1CaS9MeTZRQUFBUUFDLzRNQy9nV3dBQU1BQUJjakFUUEJ2d0k5djMwR0xRQUFBQUlBYVAvckJDTUZ4UUFOQUJzQUFBRVFBaU1pQWhrQkVCSXpNaElSSnpRbUl5SUdGUkVVRmpNeU5qVUVJL3ZoNGY3ODRlSDk4M1oxZFhWM2RYVjBBakgrM3Y3Y0FTVUJJUUZOQVNFQkp2N2EvdDhsdHFtcHR2NXJ1S21vdVFBQUFBRUF5Z0FBQXQ0RnNBQUZBQUFoSXhFaE5TVUMzdlArM3dJVUJLQ2ZjUUFBQVFCUkFBQUVOQVhGQUJnQUFDa0JOUUUrQVRVMEppTWlCaFVqTkFBek1oWVZGQVlIQVNFRU5QdzVBZHAyVm5CamducnpBUVhxMXZDS2wvNjNBcGluQWdXQ24wOWtnbzJCeWdFSDVMK0EzcWIrcEFBQUFRQlAvK3NFRmdYRkFDZ0FBQUV6TWpZMU5DWWpJZ1lWSXpRa016SVdGUlFHQng0QkZSUUVJeUlrTlRNVUZqTXlOalUwSmlzQkFZYXBlV1Z1YjJWNzh3RUN6dG42YjJ4L2N2N3gyczcrOFBPQWJuT0FkWCtwQTBaemJXdHhiMTZ2NGRUTFg2c3hMYkIyek9IVXgyTjJlSEorY2dBQ0FEZ0FBQVJaQmJBQUNnQVBBQUFCTXhVakVTTVJJU2NCTXdFaEVTY0hBNkc0dVBMOWp3WUNiL3I5aHdHSEF4Y0NCOFQrdlFGRGxRUFkvRmNDVmdFeEFBQUFBQUVBZ2YvckJDWUZzQUFlQUFBYkFTRVZJUU0rQVRjMkVoVVVBaU1pSkRVM0ZCWXpNalkxTkNZaklnWUhuRlFEQWYzSkxDeHZTTkhrOE92RS92cnJlbVZ6ZFhoelpsNFhBb3NESmRMK2t5QXBBZ1ArL09yYS92VFJ5UWhzZEoyRmhxTS9Qd0FDQUhULzZ3UkdCY1VBR2dBbkFBQUJNaFlYQnk0Qkl5SUdIUUUrQVRNeUVoVVVBaU1pQUJrQkVBQVRJZ1lIRlJRV016STJOVFFtQXFoUWpUb3VPV2RJbEs4OW5XREgzLy9ZNHY3bkFUeTBYWDRqa25kdGQzNEZ4U0FjdkJnYjNjTUhPRHYrODlmay91Y0JNZ0VlQVJZQklnRlMvVXBBT1dpOXhMT0loYUlBQUFFQVJRQUFCRE1Gc0FBTUFBQUJBQUlEQnlNM0dnRTNJVFVoQkRQL0FLc29EL01QSitiTy9QMEQ3Z1R0L3RQK012Nm9tcG9CVUFJUDlNTUFBQU1BWWYvckJDb0Z4UUFYQUNNQUx3QUFBUlFHQng0QkZSUUVJeUlrTlRRMk55NEJOVFEyTXpJV0F6UW1JeUlHRlJRV016STJBelFtSXlJR0ZSUVdNekkyQkFWMWFucUsvdm5jMy83NWlIeHFkUEhOeS9YTmgyeHVnNEp4YllRbWNGMWZiRzFnWFc0RU1IR21MaSsxZXMvVDA4OTd0REF0cG5IR3o4LzhvMjJFZzI1d2ZIMEMvV0o1ZFdabGRYVUFBQUlBVXYvckJCY0Z4UUFiQUNnQUFDVXlOajBCSnc0Qkl5SUNOVFFBTXpJQUdRRVFBQ01pSmljM0hnRVRNalkzTlRRbUl5SUdGUlFXQWdPRm5RTXdpbFhWN0FFS3krY0JDZjdjOEV5ZVJDQkFmWGhkZlNHQWVtU0NkcTI5dlNNQlFVSUJCUEhtQVNMKzNQN2svcXYrNXY3VkhoNjRHeGNCMkVZN25MR3Z0NDZTcGdBQS8vOEFtUUFBQVlzRU9nQW1BQkFBQUFBSEFCQUFBQU5SLy84QVVmNnJBWTRFT2dBbkFCRC8vUU5SQUFZQURpb0FBQUVBUHdDa0E0UUVUZ0FKQUFBQkJ4VVhCUlVCTlFFVkFVSVJFUUpDL0xzRFJRSjlCQVFFMnZNQmRjRUJkUE1BQUFJQWtRRmtBKzhEMWdBREFBY0FBQUVoTlNFUklUVWhBKy84b2dOZS9LSURYZ01NeXYyT3lRQUJBSUFBcFFQZ0JFNEFDUUFBRXpVQkZRRTFKVDhCSjRBRFlQeWdBbDBRQVJFRFgrLytqTUgrak8vaUJBTUZBQUFDQUNrQUFBT2dCY1VBR1FBZEFBQUJQZ0UzUGdFMU5DWWpJZ1lWSXo0Qk16SVdGUlFHQnc0QkZSTWpOVE1CVkFFK2NGQmFaMk5WY3ZNQzhzYlc1NUZ5T2h3RStQZ0JuSkoyWDA2SFZtTnBXVnU1eHRQQmdkVmNNMWhZL21UcEFBQUNBRXIrT3diVEJaQUFNd0JEQUFBQkJnSWpJaVluRGdFaklpWTNHZ0V6TWhZWEJ6TURCaFl6TWpZM0VnQWhJQUFEQWdBaE1qWTNGdzRCSXlBQUV4SUFJU0FBQVFZV016STJOendCTnhNdUFTTWlCZ2JEQ2VIcVRHc1pNSWRlaDQ0VEdlU3FjSU5TQXdVekNETXNlWXdKRWY3Ti9yTCt5UDZYRHhJQlJRRThXYkZCSmtUTVpmNTEvbUlSRXdITEFZTUJoZ0dSKy80S09rYzlZU2dDTFJnekhIbDVBZnZjL3N4U1QxSk42OGdCQmdFd016Y0UvYjFuU3RxdEFYY0JrdjVOL28zK2pQNWpLQ0dDS3k0QjZnRzVBYkVDQWY0Yy9mU0loekJBQ0E4TkFnTUpDOGtBQUFBQUFnQWFBQUFGS0FXd0FBY0FDd0FBQVNFREl3RXpBU01CSVFNakE3cjl6M2ozQWhmbkFoRDMvWnNCck5RREFWeitwQVd3K2xBQ0h3SnJBQUFBQXdDZkFBQUV2QVd3QUE4QUdBQWhBQUF6RVNFeUJCVVVCZ2NWSGdFVkZBUWpBUkVoTWpZMU5DWWpKU0V5TmpVMEppc0Jud0hvOVFFSmIyT0JpUDc5OGY3S0FUWitoSEI2L3JJQkQzTitoSWYxQmJERHltU1pKZ01jdm9IUjBRS1cvaXgwYkhaK3RXaGxibWNBQVFCMC8rc0UyQVhGQUJzQUFBRUdBQ01nQUJrQkVBQWhJQUFYSXk0Qkl5SUdGUkVVRmpNeU5qY0UxeGIrNWYzKy9mN09BVFVCQUFFQ0FSVVk4eE9QbXBpcnFacVhrUk1CMk9iKytRRlJBUkVCRlFFUEFWVCsvZkNZbU9pMi91bTU1NVNYQUFJQW53QUFCTzRGc0FBSkFCTUFBRE1SSVNBQUVSVVFBQ0VERVRNeU5qMEJOQ1lqbndIS0FTb0JXLzZpL3N6S3c5bk55czhGc1A2bS91TEIvdUQrcVFUdCs5WHF5OFBONWdBQUFBQUJBSjhBQUFSMUJiQUFDd0FBQVNFUklSVWhFU0VWSVJFaEJBLzlnd0xqL0NvRHovMGtBbjBDai80endnV3d3LzVsQUFBQUFRQ2ZBQUFFY2dXd0FBa0FBQUVoRVNNUklSVWhFU0VFRFAyRzh3UFQvU0FDZWdKdC9aTUZzTVArUXdBQkFIVC82d1RpQmNVQUh3QUFKUVlFSXlBQUdRRVFBQ0VnQkJjakxnRWpJZ1lWRVJRV016STJOeEVoTlNFRTRqeisvTlArOC82eUFUd0JBZ0VHQVFzZjd4aVBscHEyeGFSMGlpTCszZ0lWdmxLQkFVZ0JEUUV3QVEwQlNQVGFnSXZlc3Y3T3ROODBKUUVrdGdBQkFKOEFBQVVRQmJBQUN3QUFJU01SSVJFakVUTVJJUkV6QlJEeS9YVHo4d0tNOGdKdC9aTUZzUDJBQW9BQUFBQUJBSzBBQUFHZ0JiQUFBd0FBSVNNUk13R2c4L01Gc0FBQkFEci82d1BtQmJBQUR3QUFBVE1SRkFRaklpWTFNeFFXTXpJMk5RTHo4LzhBME4vOTgzVjBabmNGc1B2MTBPclgyMzl4Z25ZQUFBRUFud0FBQlM4RnNBQU1BQUFCSXhFakVUTVJNd0VoQ1FFaEFqcW84L09MQWNrQklQMzBBalgrMXdKMi9Zb0ZzUDJYQW1uOVNmMEhBQUFBQUFFQW53QUFCQzhGc0FBRkFBQWxJUlVoRVRNQmtnS2QvSER6d3NJRnNBQUFBUUNmQUFBR1lnV3dBQkFBQUFrQ0lSRWpFUk1qQVNNQkl4TVJJeEVCMmdHbUFhY0JPL01aQS81TW8vNU9BeG56QmJEN21BUm8rbEFCOEFLQSs1QUViZjJEL2hBRnNBQUFBUUNmQUFBRkVBV3dBQXNBQUNFakFRY1JJeEV6QVRjUk13VVE4djEzQS9QekFva0Q4Z1FyQWZ2V0JiRDcxZ0VFS1FBQUFBSUFkUC9yQlJzRnhRQU5BQnNBQUFFUUFDRWdBQmtCRUFBaElBQVJKelFtSXlJR0ZSRVVGak15TmpVRkcvNjEvdkgrOXY2OUFVSUJDZ0VQQVV6endLaWp0N2lqcWI0Q1ZmN3ovcU1CWGdFTUFRWUJDd0ZmL3FIKzlRSzE2K3EyL3ZpNDYrdTRBQUFBQWdDZkFBQUUyZ1d3QUFvQUV3QUFBUkVqRVNFeUJCVVVCQ01sSVRJMk5UUW1JeUVCa3ZNQ09mWUJEUDcwOXY2NkFVYUtoWVdLL3JvQ0tQM1lCYkQxejlIenc0NXhjWklBQWdCMC93a0ZKd1hGQUJNQUlRQUFBUlFHQnhjSEpRNEJJeUFBR1FFUUFDRWdBQkVuTkNZaklnWVZFUlFXTXpJMk5RVWJkR3Zyb1A3dExGZ3YvdmIrdlFGQ0FRb0JEd0ZNODhDb283ZTRvNm0rQWxXWisxZlNqL29MRFFGZUFRd0JCZ0VMQVYvK29mNzFBclhyNnJiKytManI2N2dBQUFBQUFnQ2ZBQUFFOEFXd0FCb0FJd0FBQVJFakVTRXlGaFVVQmdjZUFSMEJGQllYRlNNdUFUMEJOQ1lqSlNFeU5qVTBKaU1oQVpMekFpWDMvSHQ1Zm1rZkova3BGbnR4L3NZQkdwV0Rmb24rMVFKYy9hUUZzTlhRZHA0eUtheUdlVUYwSWhvaWkwWjFjNEhEYm5WeGVnQUFBQUVBVS8vckJLQUZ4UUFsQUFBQk5DWW5KaVExTkNRek1nQVZJelFtSXlJR0ZSUVdGeDRCRlJRRUl5SWtOVE1VRmpNeU5nT3RnNjc2L3Y0QkgrcjBBU0x6bG8rSGpaZTQ3Ky8rNGZIcC9xenp0SmFKbEFGMlhITXVRczZ1cytIL0FMMXlpWE5kVldzeVFkaXd1ZFR1MjRlQmF3QUFBUUExQUFBRXRRV3dBQWNBQUFFaEVTTVJJVFVoQkxYK09mUCtPZ1NBQk8zN0V3VHR3d0FBQUFFQWh2L3JCUEVGc0FBUkFBQUJFUlFFSVNJa05SRXpFUlFXTXpJMk5SRUU4ZjdKL3Z6Ly9zL3pxWlNacndXdy9ERDMvdi8yQTlEOE1KeVhsNXdEMEFBQkFCb0FBQVVRQmJBQUNRQUFBUmN6TndFaEFTTUJJUUo0SEFNYkFWc0JBLzM1NS8zNEFRUUJmVzFyQkRYNlVBV3dBQUFBQVFCRUFBQUd1d1d3QUJNQUFBRTFNelVCTXdFVlB3RVRNd0VqQVNNQkl3RXpBZ01EQVJuQUFSd0RBYzd1L3I3Yy91UUQvdVRjL3I3dUFZUUNBUVFwKzlRREFRVUVLZnBRQkJ6NzVBV3dBQUFCQUM4QUFBVHFCYkFBQ3dBQUNRRWhDUUVoQ1FFaENRRWhBb1lCTkFFZi9rRUIwUDdkL3NQK3hQN2hBY24rUVFFZEE1WUNHdjB1L1NJQ0kvM2RBdDRDMGdBQUFBRUFFd0FBQk84RnNBQUlBQUFKQVNFQkVTTVJBU0VDZ0FGZ0FRLytCL0wrRHdFUEF1d0N4UHhOL2dNQ0RBT2tBQUVBV0FBQUJIRUZzQUFKQUFBbElSVWhOUUVoTlNFVkFYa0MrUHZuQXR2OUt3UDZ3c0tZQkZYRGtnQUFBUUNFL3J3Q0hBYU9BQWNBQUFFakVUTVZJUkVoQWh5bHBmNW9BWmdGMFBtcHZRZlNBQUFBQUFFQUZmK0RBMkVGc0FBREFBQVRNd0VqRmV3Q1lPd0ZzUG5UQUFBQkFBeit2QUdtQm80QUJ3QUFFeUVSSVRVekVTTU1BWnIrWnFlbkJvNzRMcjBHVndBQkFEVUMyUU0xQmJBQUNRQUFBU01CTXdFakF5Y2pCd0VEemdFcnF3RXF6YVVOQkEwQzJRTFgvU2tCblR3OEFBQUJBQVAvUVFPWUFBQUFBd0FBQlNFMUlRT1kvR3NEbGIrL0FBQUFBUUJLQkx3Q0Z3WEdBQU1BQUFFakFTRUNGOFQrOXdFVUJMd0JDZ0FBQUFBQ0FGNy83QVFCQkU0QUh3QXFBQUFoTGdFbkRnRWpJaVkxTkRZN0FUVTBKaU1pQmhVak5EWXpNaFlWRVJRV0Z5VXlOamMxSXlJR0ZSUVdBd3NMRHdRM25HS25zL1Rsc1dSZ1dHVHo5Y25CNXhFVi9leFVoU0sxYlhWT0lrUWtSbGlybXFDc1gxWmZUMENJeEwyMy9oOUZlRHl2U0RhNFoway9Sd0FBQWdDQS8rd0VOZ1lZQUJJQUlBQUFBUlFDSXlJbUp3Y2pFVE1SRno0Qk16SVNFU00wSmlNaUJnY1JIZ0V6TWpZMUJEYlp6V2FSTXhUUzh3TXhpVjdQMmZOeGdWSnNJQ0Z0VW9GdkFmbnkvdVZQVDRvR0dQMnNBVVJIL3NuKzk2M01SMEgrTjBCRXJab0FBQUFBQVFCUi8rd0Q5d1JPQUJzQUFDVXlOalV6RkFRaklnSTlBVFFTTXpJV0ZTTTBKaU1pQmgwQkZCWUNPMXQ4NWY3L3VQVDUrZlBIOCtWMVlvdHNhcTVuVWFEYUFTN3hJL0FCTU9HM1czckRtaU9kd0FBQUFnQlQvK3dFQXdZWUFCSUFJQUFBRXhBU016SVdGemNSTXhFakp3NEJJeUlDTlRNVUZqTXlOamNSTGdFaklnWVZVOXJOV29jeUEvUFNGRFdQWWN2YTgzRi9UbWtqSTJsTWYzTUNEZ0VJQVRoRVFRRUNUdm5vaEV4TUFSenhtYTVBUGdIWVBVTE9xd0FDQUZuLzdBUDRCRThBRlFBZEFBQUZJZ0E5QVRRQUZ6SVNIUUVoSGdFek1qWTNGdzRCQXlJR0J5RTFOQ1lDVU9yKzh3RUwwT0RrL1ZZS2lYNWtpVUpIUGNLaVczUVNBYlJuRkFFbzhDanhBVElCL3Z2amo0ZWlMeTJtTlVNRG40MTFHV21BQUFBQUFBRUFNUUFBQXVBR0xRQVhBQUF6RVNNMU16VTBOak15RmhjSExnRWpJZ1lkQVRNVkl4SFdwYVcvc3lSSExSZ1dMeDFSVE56Y0E0YTBmcmEvQ3dxOEJBWllWbjYwL0hvQUFBSUFWUDVNQkFnRVRnQWVBQ3dBQUJNUUVqTXlGaGMzTXhFVUJDTWlKaWMzSGdFek1qWTlBU2NPQVNNaUFqVXpGQll6TWpZM0VTNEJJeUlHRlZUZXpXS1BOQlRRL3dEc1ZiZFBORU9QVElSK0F6S0lXOHZlODNTQVVHa2hJbWxOZ0hZQ0RnRUhBVGxRVFluNzNkanpMU3F3SVNhTmYxTUJRRUFCSGZDWXJ6OCtBZG85UWMrcUFBQUJBSDBBQUFRTUJoZ0FGQUFBQVJjK0FUTXlGaFVSSXhFMEppTWlCZ2NSSXhFekFYQUROWmRnc0wzelpHaEpiaWJ6OHdPekFVdFIxT2Y5YlFLVmduQTZOZnpvQmhnQUFBQUNBSkFBQUFHREJoZ0FBd0FIQUFBaEl4RXpFU00xTXdHRDgvUHo4d1E2QVFuVkFBQUMvN0QrU3dHT0JoZ0FEd0FUQUFBQkVSUUdJeUltSnpjZUFUTXlOalVSRXlNMU13R090NmtsT0NFT0VqRVZQMGJ0OC9NRU92dUh0NzhJQ2NJRkIxTmNCSGtCRE5JQUFBQUJBSUVBQUFRMUJoZ0FEQUFBQVNNUkl4RXpFVE1CSVFrQklRSGliL0x5YVFFUEFSeitud0dQL3VZQjJmNG5CaGo4aEFHZS9oSDl0UUFBQUFBQkFKQUFBQUdEQmhnQUF3QUFJU01STXdHRDgvTUdHQUFCQUlBQUFBWjFCRTRBSmdBQUFSY3pQZ0V6TWhZWFBnRXpNaFlWRVNNUk5DWWpJZ1lIRkJZVkVTTVJOQ1lqSWdZSEVTTVJBVjROQWpTZGEyeVZKek9oY0tlNTgxNWdVR2taQXZOZ1gwdG1Idk1FT29sTVVWNWlXMlhiNS8xMEFvMk5iVkpKRHhZSy9VTUNqWWR6T0RYODVnUTZBQUVBZmdBQUJBc0VUZ0FVQUFBQkh3RStBVE15RmhVUkl4RTBKaU1pQmdjUkl4RUJYQTRDTlo1bXJibnpZMmxKYlNYekJEcVhBVkpheWQzOVdBS21mV1ErT1B6dkJEb0FBQUlBVS8vc0JEUUVUZ0FOQUJzQUFCTTBBRE15QUIwQkZBQWpJZ0ExTXhRV016STJQUUUwSmlNaUJoVlRBUVRyN1FFRi92enM3Zjc4ODNxRWdueDhoSUo2QWlmMkFUSCswUGNWK1A3U0FTNzRvc0xEb1JXZXhzYWVBQUFBQWdDQS9tQUVOQVJPQUJJQUlBQUFBUlFDSXlJbUp3Y1JJeEV6Rno0Qk16SVNFU00wSmlNaUJnY1JIZ0V6TWpZMUJEVGF5bDZLTWdQejJSQTBqMkhNMi9KNmYwMXBJQ0JvVUg5NEFmbngvdVEvUHdIOTl3WGFna3BNL3NqKytLblFRRHYrRnpvN3M1Z0FBQUFBQWdCVC9tQUQvQVJPQUJJQUlBQUFFeEFTTXpJV0Z6Y3pFU01SSnc0Qkl5SUNOVE1VRmpNeU5qY1JMZ0VqSWdZVlU5ck5Yb3MwRTlMekF6R0VXY3ZhODNGL1MyWWlJMlZKZjNNQ0RnRUlBVGhKU0gzNkpnSURBVHc4QVJ6eG1iSTZPQUg0Tnp6UnJBQUJBSUFBQUFMREJFNEFFQUFBQVNjaUJnY1JJeEV6RnpNK0FUTXlGaGNDcG5OSVhocnozZzhES1g1VkdEQVBBMXdFT2pmOUVRUTZtRkZiQndVQUFBQUFBUUJSLyt3RHp3Uk9BQ1VBQUFFMEppY3VBVFUwTmpNeUZoVWpOQ1lqSWdZVkZCWVhIZ0VWRkFZaklpWTFNeDRCTXpJMkF1QmRoc2JENDcvSzUvSmtXMXBhVklqUXdlM0oxL0hyQkg1ZVlHUUJKamxJSFNxVWhJdTl3WmhFWDA0Nk9rRWJLNVdIbGJMV2syQlRSZ0FBQUFFQUdmL3NBbkFGUVFBWEFBQUJFVE1WSXhFVUZqTXlOamNYRGdFaklpWTFFU00xTXhFQm9jUERNU3NaTEJRYUlWNHhnNCtWbFFWQi92bTAvYXBGTmdjR3NoQVVtYXNDVnJRQkJ3QUJBSHYvN0FRS0JEb0FGQUFBSlNjT0FTTWlKalVSTXhFVUZqTXlOamNSTXhFakF5SUNOSmhuc3NEeVdsOVpkU1B6MkpBQlVWVFk3d0tIL1hlUmJqNDhBdzc3eGdBQUFBQUJBQ0FBQUFQMUJEb0FDUUFBQVJjek54TXpBU01CTXdINEZBTVUxL3YrZ05QK2Z2c0JibDlmQXN6N3hnUTZBQUFCQUNVQUFBWFFCRG9BRlFBQUFSY3pOeE16RXhjek54TXpBU01ESnlNSEF5TUJNd0d6Q2dNTjFiSFdEZ01QbnVuKzJNZlBGd01XenNmKzJPa0Jka2hHQXNiOU9sTmFBci83eGdLYmFHZjlaQVE2QUFBQkFDRUFBQVB0QkRvQUN3QUFBUk1oQ1FFaEN3RWhDUUVoQWdUSUFSZityQUZlL3V6UjBmN3FBVjcrckFFVUFzY0JjLzNwL2QwQmZQNkVBaU1DRndBQUFRQVEva3NEL0FRNkFCVUFBQUVYTXhNaEFRNEJJeUltSnpjZUFUTXlOajhCQVNFQjV4a0Q3d0VLL2tBcW1wSWVSU0FiRGk0TlJVQWxLUDUzQVFrQnNuRUMrZnNpY2FBTUNMd0JCRUJWWWdRdEFBQUFBUUJWQUFBRHhBUTZBQWtBQUNVaEZTRTFBU0UxSVJVQmdnSkMvSkVDSXYzcEEwckN3cDhDMThTYUFBQUJBRGorbUFLUkJqMEFIZ0FBQVM0QlBRRTBKaU0xTWpZOUFUUTJOeGNPQVIwQkZBWUhIZ0VkQVJRV0Z3Smh4NkZkWkdSZG9jY3daRTlVV1ZsVVQyVCttRGpzcnN0cWNySnliTXV1NnppTUlxUi95MnFlTGpDZWFNdC9wQ0lBQUFBQkFLNys4Z0ZWQmJBQUF3QUFBU01STXdGVnA2Zis4Z2ErQUFBQUFRQWIvcGdDZFFZOUFCNEFBQmMrQVQwQk5EWTNMZ0U5QVRRbUp6Y2VBUjBCRkJZekZTSUdIUUVVQmdjYlkxRlhYMTlYVVdNd3hxSmNabVpjb3NiYklxUi95MnVkTFN5ZWJjdC9wQ0tNT09xdnkyeHlzbkpxeTYvck9BQUJBSFVCZ3dUY0F5OEFHUUFBQVJRR0l5SW1KeTRCSXlJR0ZTYzBOak15RmhjZUFUTXlOalVFM0sySVdZMVZPVlV2UFZPcXFvbFhsRkkzVkRBOFZRTHVtdEUvU1M0c1pVb1dtY3BDUlRBcWEwd0FBQUFDQUkvK2lnR0NCRG9BQXdBSEFBQUJJeEV6RVNNMU13R0M4L1B6OC82S0E4UUJBZXNBQUFBQUFRQm8vd3NFRGdVbUFDRUFBQ1V5TmpVekZBWUhGU00xSmdJOUFUUVNOelV6RlI0QkZTTTBKaU1pQmgwQkZCWUNVbHQ4NWNhWnlML0F3TC9Jb3IzbGRXS0xiR3F1WjFHTHpCdnA2eU1CSDlNajBRRWhKT0xmRzllZlczckRtaU9kd0FBQUFBRUFVUUFBQkdzRnhRQWhBQUFCRnhRR0J5RUhJVFV6UGdFMUp5TTFNeWMwTmpNeUZoVWpOQ1lqSWdZVkZ5RVZBZWNGTENzQzFnSDhKZ293TGdXaW13bmt4OVBpODJ0WFYyRUpBWVVDVjNGVGxqdkN3ZzJ2WUhuRTd0UHAxN3ByWTRGNDdzUUFBQUFBQWdCZC8rVUZUd1R4QUNNQUx3QUFKUTRCSXlJbUp3Y25OeTRCTlRRMk55YzNGejRCTXpJV0Z6Y1hCeDRCRlJRR0J4Y0hBUlFXTXpJMk5UUW1JeUlHQkQxT3RtWm50RTJCalljeU1qYzJrSTJPVEt4allxNU5rWTZVTkRjeU1JdU8vSGpzcnEzczdLMnY2MnMvUUVBK2hKQ0pUcTlrWjdaUWs1Q1JPRHM4T1pTUmwwKzBabU90VFkyUkFudTkvdjY5dS8zOUFBRUFHZ0FBQkw0RnNBQVdBQUFKQVNFQklSVWhGU0VWSVJFakVTRTFJVFVoTlNFQklRSnNBVU1CRC81ekFSVCtuUUZqL3Azei9wc0JaZjZiQVIvK2NRRVFBekFDZ1AwMms0K1MvczRCTXBLUGt3TEtBQUlBaVA3eUFXMEZzQUFEQUFjQUFCTVJNeGtCSXhFemlPWGw1Zjd5QXh2ODVRUElBdllBQUFBQ0FGcitKQVNNQmNVQU1RQkRBQUFCRkFZSEhnRVZGQVFqSWlRMU54UVdNekkyTlRRbUp5NEJOVFEyTnk0Qk5UUWtNeklFRlNNMEppTWlCaFVVRmhjZUFTVXVBU2NPQVJVVUZoY2VBUmMrQVRVMEpnU01WMVJFUS83MDdPZiswZktvZkgySmdyLzM0RlpUUkVFQkR1dnpBUW56aW4rRmdYYkkrZUQ5elNwT0pUZzBlTVkyUkNFNE80VUJ4MStIS3pPSFk3UEN4K01CZkd4aFQwOVhPVUcxc2x5SkxUT0lZNjNLM2RGbmhHTlBXRk0xUkxRcEN4Z09GVlE3V2xrNEVCVUxGbFE2VVY4QUFBSUFwQVRrQTNrRnNBQURBQWNBQUFFak5UTUZJelV6QTNueTh2NGM4ZkVFNU16TXpBQUFBQUFEQUZmLzZ3WGlCY1FBR3dBbkFETUFBQUVVQmlNaUpqMEJORFl6TWhZVkl6UW1JeUlHSFFFVUZqTXlOalVsRUFBek1nQVJFQUFqSWdBREVBQWhJQUFSRUFBaElBQUVYcTZocExtNm82Q3duRmhjWUdOallGeFgvUThCVXZyNUFWTCtydm43L3E5NkFaZ0JMZ0VzQVpuK1ovN1UvdEwrYUFKVW5welJzbmV3MDU2Y1gxU0ljM2gyaGxGaWhmN3ovcHdCWkFFTkFRd0JZdjZlL3ZRQlFRR3EvbGIrdi82Ky9sUUJxd0FBQWdCMEFyUURFUVhGQUI4QUtnQUFBUzRCSnc0Qkl5SW1OVFEyT3dFMU5DWWpJZ1lWSnpRMk16SVdGUkVVRmhjbE1qWTNOU01pQmhVVUZnSmdDQW9ESW0xUGVZQ21wWWs1TzBOSHJhaVBpWm9MRC82SE5Ha1RpRXhST1FMQ0ZTOGFNRHg0YkhGMk16OUFNekFPYUlHTWlQN0dORllyZ2pra2FUOHZMQ3dBQVAvL0FGUUFkQU9GQTVNQUpnRnk2TjBBQndGeUFWTC8zUUFCQUg4QmRnUENBeVVBQlFBQUFTTVJJVFVoQThMSS9ZVURRd0YyQVFTckFBUUFWLy9yQmVJRnhBQUxBQmNBTWdBN0FBQVRFQUFoSUFBUkVBQWhJQUFURUFBek1nQVJFQUFqSWdBQkVTTVJJVElXRlJRR0J4NEJIUUVVRmhjVkl5NEJQUUUwSmlNbk16STJOVFFtS3dGWEFaZ0JMZ0VzQVpuK1ovN1UvdEwrYUhvQlV2cjVBVkwrcnZuNy9xOEJ2SmNCR1pxclBEdy9OZ2NLbXdrRVFVNmVqMFZkVEdPQ0F0a0JRUUdxL2xiK3YvNisvbFFCcXdGRC92UCtuQUZrQVEwQkRBRmkvcDcrcVA2dkExS0RnVHhaSHgxcVREZ3FRQlVRRms4ck5rbENoanc0U2pnQUFBQUFBUUNIQlJJRFhnV3dBQU1BQUFFaE5TRURYdjBwQXRjRkVwNEFBQUlBZndPd0Fvc0Z4UUFMQUJjQUFCTTBOak15RmhVVUJpTWlKamNVRmpNeU5qVTBKaU1pQm4rWmIyMlhsMjF2bVl0SU5UUkdSalExU0FTNGNKMmRjSEdYbUhBMlJrVTNOMGxKQUFBQ0FGOEFBQVB6QlFvQUN3QVBBQUFCSVJVaEVTTVJJVFVoRVRNQklUVWhBcHdCVi82cDEvNmFBV2JYQVNqOHZRTkRBNHJIL25VQmk4Y0JnUHIyeEFBQUFRQnRBcHNDMXdYSEFCZ0FBQUVoTlFFK0FUVTBKaU1pQmhVak5EWXpNaFlWRkFZUEFTRUMxLzJoQVRGQ0pqSTNQaisrcXBTT21GOTZpQUZuQXB1UkFRQTNSQ290TnpzeGJaR0FkMU55YTNRQUFBQUFBUUJoQW84QzdBWEdBQ2dBQUFFeU5qVTBKaU1pQmhVak5EWXpNaFlWRkFZSEhnRVZGQVlqSWlZMU14UVdNekkyTlRRbUt3RTFBYUpDUEVBL05qNi9xNFdZcVVZK1IwcXhtSXE0djBRK1FrcEZSM3NFY3pReEtEUXNJbWg0ZFhBNFdSb1lYa1Z5ZW5oM0xESXpMamsyZ3dBQUFBQUJBSGdFdkFKTUJjWUFBd0FBQVNFQkl3RTNBUlgrNmIwRnh2NzJBQUFBQUFFQWt2NWdCQjhFT2dBVkFBQUJFUlFXTXpJMk54RXpFU01uRGdFaklpWW5FU01SQVlSaVkxbHNIdlBmQnk1MFRUOWdKL0lFT3YyVXFuVThQUU1TKzhaV05qVWFIZjQrQmRvQUFBQUJBRDRBQUFOd0JiQUFDZ0FBSVJFaklpWTFOQkl6SVJFQ2ZWUHUvdi90QVVZQ0NQL1Ywd0VCK2xBQUFBRUFvQUpTQVpJRFFnQURBQUFCSXpVekFaTHk4Z0pTOEFBQUFBQUJBRzMrUVFISkFBTUFEd0FBSlFjZUFSVVVCaU1uTWpZMU5DWW5Od0UrQzBGVnBxRUhQMHBEVkNBRE5ndFJVV2gzaVN3dExTTUZpd0FBQUFBQkFHUUNtUUdqQmNVQUJRQUFBU01SSXpVbEFhUEFmd0UvQXBrQ2Y1WVhBQUlBZHdLekF5d0Z4UUFOQUJzQUFCTTBOak15RmgwQkZBWWpJaVkxTXhRV016STJQUUUwSmlNaUJoVjN1YUdpdWJtZ29ycXZWbGRVVmxkVlZWWUVkcGU0dUpkMW1MYTJtRmRsWlZkMVZHZG5WQUFBLy84QVhBQ1hBNWtEdGdBbUFYTUlBQUFIQVhNQmZnQUEvLzhBbXdBQUJjY0Z4QUFuQWNrQVJBS1lBQ2NCZEFEOEFBZ0FCd0dYQXFJQUFBQUEvLzhBa3dBQUJka0Z4QUFuQVhRQkFRQUlBQ2NCeVFBOEFwZ0FCd0hLQXdRQUFBQUEvLzhBWmdBQUJvTUZ4d0FuQVhRQndnQUlBQ2NCbHdOZUFBQUFCd0hMQUFZQ213QUFBQUlBWVA1MkE5Z0VPZ0FaQUIwQUFBRU9BUWNPQVJVVUZqTXlOamN6RGdFaklpWTFORFkzUGdFMUF6TVZJd0tzQWoxd1VsaG1aVk55QXZNRDg4VFk1cEJ6T1I0RStQZ0NuWk4xWGxHRlZXTnBXbHU2eGRMQWdkWmJNbGhaQVozcEFBTC85Z0FBQjFjRnNBQVBBQk1BQUNrQkF5RURJUUVoRlNFVElSVWhFeUVCSVFNbkIxZjhmZy8rQ3JqKzNnTkRBK0Q5ZWhFQ0pQM2tGQUtYK3UwQmVSc0RBVlQrckFXd3hmNW94ZjQyQVdjQ2dnRUFBQUVBVFFEV0Erd0VoZ0FMQUFBVENRRTNDUUVYQ1FFSENRRk5BVHoreEpRQk93RThsUDdFQVR5VS9zVCt4UUZzQVVJQlFwYit2Z0ZDbHY2Ky9yNldBVUgrdndBQUF3QnAvNkVGRUFYdUFCa0FKQUF2QUFBQkVBQWhJaVluQnlNM0xnRTFFUkFBSVRJV0Z6Y3pCeDRCRlFFVUZoY0JMZ0VqSWdZVklUUW1Kd0VlQVRNeU5qVUZFUDYxL3ZGVmtrRllsSVZkWVFGQ0FRcGhwa2xSbElKU1Z2eExJU0lCK2k5d1JLTzNBc0laR2Y0TktGNDRxYjRDVmY3ei9xTW1KcGJpVisyT0FRWUJDd0ZmTVMrSjNGZmVndjc2VFlNMkExd29LdXEyUG5BeS9LOGRIZXU0QUFJQWxBQUFCSDRGc0FBTUFCVUFBQUVSTXpJRUZSUUVLd0VSSXhFVEVUTXlOalUwSmlNQmgvYjNBUXIrOXZmMjgvUDJpb1NFaWdXdy91anZ4OGp1L3RRRnNQNGwvaHFKYUdxTEFBQUJBSWovN0FTYkJoOEFKd0FBSVNNUk5EWXpNaFlWRkFZVkZBQVZGQVlqSWlZbk54NEJNekkyTlRRQU5UUTJOVFFtSXlJR0ZRRjY4dkxPcmRoMkFVVFd5VkdvS0RFc2RrQmZYUDY3Zmw1QVhXMEVSZVgxdExCMHl6OUYvdWlOdDdBakc4UWFKbEZJVFFFUmxGYlBUVkZna29jQUFBTUFOUC9yQm9RRVRnQXNBRGNBUHdBQUJTSW1KdzRCSXlJbU5UUTJPd0UxTkNZaklnWVZKelEyTXpJV0Z6NEJNeklTSFFFaEhnRXpNalkzRnc0QkpUSTJOelVqSWdZVkZCWUJJZ1lISVRVMEpnVG1oOGhFUGRHWXVNSHQ2ODViV0Y1cTh1L05icWM1UUtWbTJ1ajlVQWlLam1SNlUwazZ4dnh1UlpBcHpHOTRXUU5DYW5NT0FiMWtGVmRWUzJHd25hR3BSMTFsV1VJVGs3aEJRVUJDL3Y3b2pZdWZMUytsTGt1NVNESzlZRWRDVGdMbmpuc2ViSDhBQUFBQUFnQTgvK3NFVGdYdEFDRUFNUUFBQVJZU0hRRVFBQ01pQURVMEFETXlGaGMzTGdFbkJ5YzNMZ0VuTng0QkZ6TTNGd00wSmpVdUFTTWlCaFVVRmpNeU5qVURjV3R5L3RqbDZQN2pBUTNpVUlzNEF4ZFFPZnhPMkNOSUowdFJqMElCMms3WUFTU09hSUNSbElKL2x3VURlZjdFeFZmKyt2Ni9BUlhVNXdFU05TNENXWTg2am0xNkZDRU54QlZGTVh0dC9Sc0REd1F4UDdLTGU2ellyUUFBQUFNQVF3Q3FCRGNFdGdBREFBY0FDd0FBQVNFMUlTVWpOVE1SSXpVekJEZjhEQVAwL29IejgvUHpBa2JVdjkzNzlOMEFBQUFEQUZQL2RnUTBCTHdBR1FBa0FDOEFBQk0wQURNeUZoYzNNd2NlQVIwQkZBQWpJaVluQnlNM0xnRTFNeFFXRndFdUFTTWlCaFVoTkNZbkFSNEJNekkyTlZNQkJPczJZUzVJa0doZFlQNzg3REZaS2tpUVptVm04eDBnQVNvWU5SNkNlZ0g4R2hyKzJ4TXRHNEo4QWlmMkFURVRFWkxUUytXU0ZmaiswZzhPazg5SjY1bFBnREFDWUFzTnhwNUdkeS85cXdrSHc2RUFBQUlBaC81Z0JEc0dHQUFUQUNFQUFBRVVBaU1pSmljSEVTTVJNeEVYUGdFek1oSVJJelFtSXlJR0J4RWVBVE15TmpVRU85cktYb295QS9QekF6R0tYTXpiOG5wL1RXa2dJR2hRZjNnQitmSCs1RDgvQWYzM0I3ajlzZ0ZCUlA3SS92aXAwRUE3L2hjNk83T1lBQUlBR0FBQUJaWUZzQUFUQUJjQUFBRXpGU01SSXhFaEVTTVJJelV6RVRNUklSRXpBU0UxSVFVUGg0ZnkvWFR6aG9iekFvenkvSUlDalAxMEJLU2krLzRDYmYyVEJBS2lBUXorOUFFTS9ZRFNBQUFBQUFFQWp3QUFBWUlFT2dBREFBQWhJeEV6QVlMejh3UTZBQUVBamdBQUJHc0VPZ0FNQUFBQkl4RWpFVE1STXdFaENRRWhBZTl2OHZKVkFWQUJMUDVjQWI3K3l3R3MvbFFFT3Y1UUFiRDkrdjNNQUFBQUFBRUFHd0FBQkNBRnNBQU5BQUFCSlJVRkVTRVZJUkVITlRjUk13R0RBUUwrL2dLZC9IQjFkZk1EWVU2NFR2NFp3Z0pmSTdnakFwa0FBUUFiQUFBQ0tBWVlBQXNBQUFFM0ZRY1JJeEVITlRjUk13R1hrWkh6aVluekEzczB1RFQ5UFFKdE1iZ3hBdk1BQVFDVC9rc0ZCQVd3QUJnQUFBRVJGQVlqSWlZbk54NEJNekkyUFFFQkJ4RWpFVE1CTnhFRkJMaXBKVGtoRGhFOEZqeEEvWGdEOC9NQ2lBTUZzUG9SdHNBSUNiOEZDRjFXUHdRZEFmdmtCYkQ3NHdFRUhBQUFBQUVBZnY1TEJBWUVUZ0FnQUFBQkh3RStBVE15RmhVUkZBWWpJaVluTng0Qk16STJOUkUwSmlNaUJnY1JJeEVCWEEwRE5adGtyYm00cVNRNklRNFNPeFk4UUdCbVRHd2s4d1E2a1FGUFY4dmkvU0Myd0FnSnhnVUhWbFVDM29Cb05UTDg0QVE2QUFBQUFnQmwvK3NIVmdYRkFCY0FKUUFBS1FFT0FTTWdBQmtCRUFBaE1oWVhJUlVoRVNFVklSRWhCVEkyTnhFdUFTTWlCaFVSRkJZSFZ2eDFYWDlFL3ZmK3d3RTdBUWxHakZBRGhQMGtBbjM5Z3dMaisxVTNhVFU3WnpXanI3RUtDd0ZHQVE4Qk1BRU9BVWNNQ2NQK1pjUCtNeFFJQ0FRMEJ3bkp4LzdPeU1vQUFBQURBRnYvNndieUJFNEFJUUF2QURjQUFCTTBBRE15RmhjK0FUTXlFaDBCSVI0Qk16STJOeGNPQVNNaUppY09BU01pQURVekZCWXpNalk5QVRRbUl5SUdGUUVpQmdjaE5UUW1Xd0VEN0g2L1FrSzFidURrL1ZZS2lYNWtpa0ZQUU1TSWZzRkVRcjU4N2Y3ODhudUVnbnQ4ZzRKN0ErRmJkQklCdFdnQ0ovY0JNRnRXVmx2KysrT1BoNk12THA4NFNGbFZWVmtCTC9paXc4U2hGWjdHeHA0QlpJNTBHV2lCQUFBQkFJc0FBQUtWQmkwQUR3QUFNeEUwTmpNeUZoY0hMZ0VqSWdZVkVZdS9zeVJITFJrWEtSeFJVZ1M0dHI4TENya0ZCbHhXKzBnQUFBSC8zZjVMQXRNR0xRQWpBQUFCSXhFVUJpTWlKaWMzSGdFek1qWTFFU00xTXpVME5qTXlGaGNITGdFaklnWWRBVE1DaE1tM3FTVTVJQThST2hZN1FLV2x3TE1rUmk0WkZERWNVVTNKQTRiOE83ZS9DQW0vQlFoZFZnUEZ0SDYydndzS3ZBUUdXRlorQUFBQUFBSUFadi9yQmE4R0xnQVhBQ1VBQUFFUUFDRWdBQmtCRUFBaE1oWVhQZ0UxTXhRR0J4NEJGU2MwSmlNaUJoVVJGQll6TWpZMUJRMyt0Zjd4L3ZiK3ZRRkNBUXFCMUZOVFJyeDJlaVlvODhDb283ZTRvNm0rQWxYKzgvNmpBVjRCREFFR0FRc0JYMWRSRFlaK3A4c2xTSjFYQXJYcjZyYisrTGpyNjdnQUFBQUFBZ0JTLyt3RXZBU3BBQmNBSlFBQUV6UUFNeklXRno0Qk5UTVVCZ2NlQVIwQkZBQWpJZ0ExTXhRV016STJQUUUwSmlNaUJoVlNBUVRyYzdOQ1FDdW9YbWtlSVA3ODdPMysvUE42aElKOGZJU0NlZ0luOWdFeFRVZ1RjbXVRcmlKQ2oxRVYrUDdTQVM3NG9zTERvUldleHNhZUFBQUJBSWIvNndaTEJoQUFHUUFBQVJVK0FUVXpGQVlIRVJRRUlTSWtOUkV6RVJRV016STJOUkVFOFYxQnZLQzYvc24rL1AvK3ovT3BsSm12QmJETkZvNkowZUFWL1piMy92LzJBOUQ4TUp5WGw1d0QwQUFCQUh2LzdBVXBCSlFBSEFBQUFSUUdCeEVqTHdFT0FTTWlKalVSTXhFVUZqTXlOamNSTXhVK0FUVUZLWDZoMkJBQ05KaG5zc0R5V2w5WmRTUHpWREFFbEt1bkR2ek1rQUZSVk5qdkFvZjlkNUZ1UGp3RERvc05aWE1BQUFIL3RmNUxBWk1FT2dBUEFBQUJFUlFHSXlJbUp6Y2VBVE15TmpVUkFaTzNxU1E1SVE4U09SWTdRUVE2KzRlM3Z3Z0p2d1VJWFZZRWVRQUFBQUlBV2Yvc0EvZ0VVQUFWQUIwQUFBRXlBQjBCRkFBbklnSTlBU0V1QVNNaUJnY25QZ0VUTWpZM0lSVVVGZ0lBNmdFTy92VFA0ZU1DcWd5SmZHV0pRVTgveGFWWmRCVCtTMmNFVVA3VzhDankvdEFCQVFQa2o0YWtNQzJmTjByOFg0eDJHV21BQUFBQUFRQ2JCT1FEUEFYdUFBZ0FBQUVWSXljSEl6VWxNd004dkphVnVnRUlqd1Q4R0pLU0d2QUFBQUVBZVFUa0F5MEY4UUFJQUFBQk56TVZCU01sTlRNQjBvdlEvdlNkL3ZYT0JXS1BFZno2RXdBQkFIVUVsUUw3QmJBQURRQUFBUlFHSXlJbU5UTVVGak15TmpVQys2MldsNnkyUTBwSlF3V3dncG1aZ2o5TVREOEFBQUFBQVFDYUJOY0JuUVcyQUFNQUFBRWhOU0VCbmY3OUFRTUUxOThBQUFJQWdnUlVBaVlGM0FBTEFCY0FBQk0wTmpNeUZoVVVCaU1pSmpjVUZqTXlOalUwSmlNaUJvSjZXbGg0ZDFsYmVXNDZMQ3MzTnlzc09nVVdWbkJ3VmxkcmExY3NPVGd0TGpvN0FBQUJBQ24rVWdHaEFEd0FFd0FBSVE0QkZSUVdNekkyTnhjT0FTTWlKalUwTmpjQmpGQlJJQ2NhS2hZVklVMDNYblY2aGpOY09DRWpEUXFPRXhscFlGV1JPd0FBQUFFQWdBVFdBMUVGOXdBVEFBQUJGQVlqSWlZaklnWVZKelEyTXpJV016STJOUU5SZGx4Sm9qUW9OWU4xWERxd05TYzNCZEJoaEZsQUxpTmdpVmsvTHdBQ0FIb0U1QU9iQmU0QUF3QUhBQUFCSVFFakF6TURJd0tiQVFEKzFjcHU4dlc3QmU3KzlnRUsvdllBQUFJQXEvNStBZnIvdUFBTEFCY0FBQmMwTmpNeUZoVVVCaU1pSmpjVUZqTXlOalUwSmlNaUJxdGhTVVpmWGtkS1lHVW5IaHNtSmhzZUorZEdXVmxHUlZaV1JSMG1KeHdmSnljQUFBQUIvTnNFcy80cUJmMEFBd0FBQVNNRE0vNHFtYmJRQkxNQlNnQUFBZjAyQkxiK2hnWUJBQU1BQUFFekF5UDl1TTYra2dZQi9yVUEvLy84ZVFUVy8wb0Y5d0FIQUtENytRQUFBQUFBQWYwK0JPYittUVovQUE4QUFBRW5QZ0UxTkNZak56SVdGUlFHQnhYOVVRZE5QVTVJQjZtclZVRUU1cElFSFNNbklYdGxXMFZIQ0VVQUFBQUFBdndNQk9UL05BWHVBQU1BQndBQUFTTUJJUUVqQXpQK0I5RCsxUUVHQWlMRDlmb0U1QUVLL3ZZQkNnQUIvU0wrcGY0dy80UUFBd0FBQVNFMUlmNHcvdklCRHY2bDN3QUFBUURYQlBZQ0RRWndBQU1BQUFFekF5TUJHL0xBZGdady9vWUFBQU1BblFUa0E0NEdwQUFEQUFjQUN3QUFBU00xTXdVak5UTTNNd01qQTQ3YTJ2M3AydHA0K0pXU0JPVE16TXowL3RjQUFQLy9BS0FDVWdHU0EwSUNCZ0IyQUFBQUFRQ2ZBQUFFTndXd0FBVUFBQUVoRVNNUklRUTMvVnZ6QTVnRTdmc1RCYkFBQUFBQUFnQWFBQUFGbUFXd0FBTUFCZ0FBQVRNQklTVWhBUUp6NXdJKytvSUJTQUx5L3BBRnNQcFF3Z1BPQUFBREFHYi82d1VOQmNVQUF3QVJBQjhBQUFFaE5TRUZFQUFoSUFBWkFSQUFJU0FBRVNjMEppTWlCaFVSRkJZek1qWTFBNlArUUFIQUFXcit0Zjd4L3ZiK3ZRRkNBUW9CRHdGTTg4Q29vN2U0bzZtK0FubkQ1Lzd6L3FNQlhnRU1BUVlCQ3dGZi9xSCs5UUsxNitxMi92aTQ2K3U0QUFFQUl3QUFCUkVGc0FBSEFBQUJJd0VqQVRNQkl3S2JBLzZHK3dJRDV3SUUvQVIwKzR3RnNQcFFBQUFBQXdCd0FBQUVMUVd3QUFNQUJ3QUxBQUEzSVJVaEV5RVZJUU1oRlNGd0E3MzhRMkFDOS8wSlZnT2EvR2JDd2dOTXZ3TWp3d0FBQUFBQkFKOEFBQVVSQmJBQUJ3QUFJU01SSVJFakVTRUZFZkw5Yy9NRWNnVHQreE1Gc0FBQkFFY0FBQVJNQmJBQURBQUFDUUVoRlNFMUNRRTFJUlVoQVFNVy9tMEN5ZnY3QWM3K01nUGYvVjRCa2dMUC9mVERtQUpCQWorWXcvMzJBQUFEQUVzQUFBV2pCYkFBRVFBWUFCOEFBQUVXQUJVVUFBY1ZJelVtQURVMEFEYzFNd0VVRmhjUkRnRUZOQ1luRVQ0QkEzSDVBVG4reC9ueS9QN0lBVGo4OHYzSnFKMmRxQU41cDV1YXFBVCtCUDdTK3ZyKzFBS3FxZ0VCSy9yN0FUQURzdjBncHJRQkFyNEN1S2VvdGdQOVFnRzJBQUVBU0FBQUJWRUZzQUFYQUFBQlBnRTFFVE1SRUFBSEVTTVJKZ0FaQVRNUkZCWVhFVE1EUW9xUzgvN205Zkx6L3V2eWtZWHlBamdYd2FrQjkvNEovdjcrMVJuK2pRRnlHQUVyQVFRQjkvNEpwc0VaQTNjQUFBQUJBR3dBQUFUYUJjVUFKQUFBSlRZU1BRRTBKaU1pQmgwQkZCSVhGU0UxTXpjbUFqMEJFQUFoSUFBUkZSUUNCek1WSVFMZmVZR2lsWldnaEh6K0RPY0Jjb01CTlFFQkFRRUJONFZ5OGY0THlCMEJEUGhwMXRqWTFtbjUvdlFjeU1RRFhnRWhvMmNCSEFGWi9xZis1R2VrL3VCaHhBQUFBQUFDQUZiLzZ3UjVCRTRBSEFBckFBQUJFUlFXTXpJMk54Y09BU01pSmljT0FTTWlBajBCRUJJek1oWVhOd0VVRmpNeU5qYzFFUzRCSXlJR0ZRUDlKU1FIRGdZWUh6b21VbXNhTTVCa3k5dmJ6VjZLTkJQK0hIRi9UR1FpSW1SS2YzTUVPZjBLVHpzQ0FyUVJEVTFVVVZBQkhmRVZBUWdCT0UxTGcvM0FtYk5HUXcwQnVrVkowYXdBQWdDVy9uY0VhZ1hFQUJRQUtnQUFBVElXRlJRR0J4NEJGUlFHSXlJbUp4RWpFVFFrRXpJMk5UUW1JeUlHRlJFZUFUTXlOalUwSmlzQk5RSnAwZkJoV25xQjh0RlFrajN5QVEzQ2JtUnJZMk4rS254UGRvUjNiSGtGeE5LNFlKb3hMYnFEMWVRb0svNDRCYWkzN3YyWmJXZFhlWDVrL09Fb0tvZHZicEs1QUFBQkFDRCtYd1AxQkRvQUN3QUFBVE1CRVNNUkFUTVRGek0zQXZyNy9vL3ovby83M1JRREZBUTYrL0QrTlFIUUJBdjlORjlmQUFBQUFBSUFWUC9zQkRnR0lBQWhBQzhBQUJNME5qTXlGaGNITGdFaklnWVZGQllYRmhJZEFSUUFJeUlBUFFFME5qOEJMZ0VURkJZek1qWTlBVFFtSnlJR0ZkRFJ3RXlZVWl3NmgwWlFXRkJ2NU5uKyt1cnUvdnF5aVFSZVpYWi9nMzkvakhLQmdRVHFrNk1zS0tNV0lqMDBLbEFtVWY3czB4VHcvdGdCSk80VXF2TWpDeW1JL1gyY3dzS2NGSGpLR01PWEFBRUFZUC9zQkF3RVRRQW9BQUFUTkRZM0xnRTFORFl6TWhZVkl6UW1JeUlHRlJRV093RVZJeUlHRlJRV016STJOVE1VQkNNaUpHQm1aVmxmOU5iQS92SjRXMmhvWW1mSHgyNXVkMnhvZlBMKzhjRFcvdmtCTWx4OUlpUjNTcG1pc0pZOVRsSTZRRWV0U0U1QVZscEJxcXVzQUFBQUFRQmgvbjREeWdXd0FDQUFBQUVWQVE0QkZSUVdId0VlQVJVT0FRY25QZ0UxTkNZdkFTNEJOVFFTTnhNaE5RUEsvcU42WlVSUmJKdDVBWDVOZlRBdFBVbFNzNUNHa092OXhBV3drZjVianNxTFhsa1RJQzVSY1U2MVBHVTJVeVFqTUJJVkw2aWVqUUVvcXdFT3d3QUFBQUVBZnY1aEJBWUVUZ0FVQUFBQkh3RStBVE15RmhVUkl4RTBKaU1pQmdjUkl4RUJYQTBETlp0a3I3ZnpZV1ZNYkNUekJEcVJBVTlYeGVqN3dBUStnV3MzTS96ZkJEb0FBQU1BYy8vckJDNEZ4UUFOQUJZQUh3QUFBUkFDSXlJQ0dRRVFFak15RWhFRElSVVVGak15TmpVQklUVTBKaU1pQmhVRUx2dmg0Zjc4NGVIOTgvNHJkM1YxZFA0ckFkVjJkWFYxQWpIKzN2N2NBU1VCSVFGTkFTRUJKdjdhL3QvKy9HeTRxYWk1QVNwcnRxbXB0Z0FBQUFBQkFLbi82d0orQkRrQUR3QUFBUkVVRmpNeU5qY1hEZ0VqSWlZMUVRR2NNQzRiS1JvbUwxWTNpNDRFT2Z6dlJESUxDN0VaRTVxcUF3b0FBQUFCQUJiLzdnUktCZlFBSVFBQUtRRUJKeTRCSXlJR0J5YytBVE15RmhjQkhnRXpPZ0UzRnc0Qkl5SW1Kd01qQndFZi92Y0JnVllXT0NzUkdBc0RHRlVoWjJzZkFiQVVMQ01NRUFjRUZEQWFiM1l0endNWEJBN0lNU29CQWJVR0NrNVYrOFF4TFFIQUJBWllmQUlrWndBQUFRQmsvbllEMUFYRUFERUFBQUV1QVNNaUJoVVVGanNCRlNNaUJoVVVGaDhCSGdFVkRnRUhKejRCTlRRbUx3RXVBVFUwTmpjMUxnRTFOQ1F6TWhZWEE0TktZRGVEZjRPUWtvK3dyNHR5YXBTQ0FuOU1mVFFwTzBzdTd1R2NrMjkzQVFIa1VvYzlCTnNURVZwSVdHREdqSkZ2Z0JnWUlscHpUclk2WkRwSkxTa3FFUXN6dnRhUndTOERKNDFocmI0WEZBQUFBQUVBVC8vckJPb0VPZ0FYQUFBQkl4RVVGak15TmpjWERnRWpJaVkxRVNFUkl4RWpOU0VFajRjd0xoc3BHaVl2VmplTGp2NjI4b29FUUFOOS9hdEVNZ3NMc1JrVG1xb0NUdnlEQTMyOUFBQUFBZ0NBL21BRU1RUk9BQThBSFFBQUFSUUNJeUltSnhFakVUUUFNeklTRVNNMEppTWlCaFVSSGdFek1qWTFCREhZeVYyTE5mTUJBdFRwOHZOeGZYQnRJR2hRZm5VQitmTCs1VHM4L2YwRDMvWUJHZjdLL3ZhdDBNdU4vdkE2TzdLWkFBQUFBQUVBVXY2S0Era0VUZ0FoQUFBQk1oWVZJelFtSXlJR0hRRVVGaGNlQVJjT0FRY25QZ0UxTkNZbkxnRTlBVFFTQWpqRzYrUm5abjkxajUrbGZnTUJmVTEvTkNrOFJ2TGwvUVJPMXNKZWQ4bVVJNFdaTERCVmMwNjJPMlU2U2kwb0t3ODY5OWdqN1FFekFBQUFBQUlBVXYvc0JIMEVPZ0FSQUI4QUFBRWhCeDRCSFFFVUFDTWlBRDBCTkFBeklRRVVGak15TmowQk5DWWpJZ1lWQkgzKyt3RlZZZjc4NWUzKyt3RUU3QUk3L01oNmhYNTRlWCtEZWdOMkEwUy9jaFhiL3Q0Qkx2Z1Y3Z0VsL2RpaXdzT2hGWlc2dXBVQUFRQkEvK3NEN1FRNkFCTUFBQUVoRVJRV016STJOeGNPQVNNaUpqVVJJVFVoQSszK2xUQXVHeWthSmk5V040dU8vckVEclFONS9hOUVNZ3NMc1JrVG1xb0NTc0VBQUFBQUFRQ0EvK3NFQ0FRNkFCVUFBQUVSRkJZek1qWTFMZ0VuTXg0QkZSQUNJeUltTlJFQmNsVk1lSW9ET2pUeE5ELzA5OG5VQkRyOWJZWjA3SjEvKzRwcS9weisvUDY1MStjQ2tRQUFBQUlBUlA0aUJZVUVRUUFaQUNNQUFBVWtBRFUwRWpjWERnRUhGQllYRVRRMk16SUFGUlFBQlJFakV6NEJOUzRCSXlJR0ZRSmwvdUQrLzN0Mm1FeEhBNHlpbTMvcUFSeisrUDdiOC9PbWxBT0dlaDRaRGg4QlF2R2tBUU5Wa2ttN1pwalVJQUtFZFpEK3grSGwvc3NjL2pFQ2xCM0lqSlRDSWhjQUFBQUJBRS8rSWdWK0JEb0FHd0FBQVJFK0FUVXVBU2N6SGdFVkZBQUZFU01SSkFBWkFUTVJGQllYRVFOU3BaVURQVFh1TjBMKysvN1o4LzcrL3ZMemxZZ0VPdng5SDlhWWZQU0dhUGVYOWY2OUhQNHlBZEFlQVNVQkhBSHAvaFc2d1J3RGdnQUFBUUJtLytzR0xRUTZBQ2dBQUFFT0FRY1VGak15TmpVUk14RVVGak15TmpVdUFTY3pIZ0VWRUFJaklpWW5EZ0VqSWdJUk5EWTNBZVZDU0FOWFlsZGsrMlJYWWxjRVNFRHhRRTNDM25TaUxpK2djK0RCVEVFRU9vZjhnYkRaa0tNQlJmNjdvNURZc1lEOWgycituUDcwL3NGdmIyOXZBVDhCREp6K2FnQUFBQUFDQUhYLzdBVGhCY1FBR1FBa0FBQWxNalkzTGdFOUFUUTJNeklXRlJFUUFDRWdBQmtCTnhFVUZoTVVGaGNSTkNZaklnWVZBcW1WcGdUSjlydWJwN3YrelA3OC93RCt6UHFtOG5Wc09EazBQTGJIdGd6dnVWdTB6czI4L2dUKzdmN0FBVTBCQmdLbEF2MVpzZGdETDJXRUN3RlpWbEpVVkFBQi8rNEFBQVNGQmNJQUl3QUFBVDRCTXpJV0Z3Y3VBU01pQmdjQkVTTVJBUzRCSXlJR0J5YytBVE15RmhjVEZ6TTNBdkk1aFdvZ014Z1lCQnNOSXpjUi90dnkvdHdTTmlJUEdnTVhGekVpYW9RNXBSTUVFd1RFam5BSkRNQUNBeXNuL1czOTh3SVNBbzRuS3dNQ3dBd0piWTcrZDFWVkFBQUNBRFAvNndaVUJEb0FGZ0FzQUFBQkl4NEJGUkFDSXlJbUp3NEJJeUlDRVRRMk55TTFJUUV1QVNjaERnRUhGQll6TWpZOUFUTVZGQll6TWpZR1ZJQWFIYmJRZUtVdExxVjMwTFViRzI4R0lmN0ZBeUFlL01ZZUlBSktWRnBwK21kYlUwc0RnMDJqWGY3MC9zRnhjbkp4QVQ4QkRGMmtUTGY5L0ZPalYxZWtVckRaa0tQaTRxT1EyQUFBQUFFQUpQL3hCYnNGc0FBYkFBQUJJUkUrQVRNeUJCVVVCaUVuTWpZMUxnRWpJZ1lIRVNNUklUVWhCSkgrRDA2RU9Qd0JGZi8rOVFHZ2VBR1Bqa0tGUS9QK2R3UnRCTzMrWmhNWTZkL1U4YnFJZkgySEVCRDliUVR0d3dBQUFRQnkvK3dFMWdYR0FCOEFBQUVHQUNNZ0FCa0JFQUFoSUFBWEl5NEJJeUlHSFFFaEZTRVZGQll6TWpZM0JOVVcvdVg5L3YzK3pnRTFBUUFCQWdFVkdQTVRqNXFZcXdJQi9mK3BtcGVSRXdIWjV2NzVBVkVCRVFFVkFROEJWUDc5OEppWTZMWW13eTY1NTVTWEFBQUFBQUlBTGdBQUNFTUZzQUFXQUI4QUFBRVJJVElFRlJRRUl5RVJJUkVRQWlFak5UTXlFaGtCQVJFaE1qWTFOQ1lqQlFvQk5QVUJFUDd3OWYzWi9rRHMvdk13S0poM0E2VUJOSW1LaVlvRnNQM3IvZEhSL0FUdC9pRCtYZjZXd2dFREFVZ0NvLzBvL2VxYWMzR1lBQUlBbndBQUNFb0ZzQUFTQUJzQUFBRWhFVE1SSVRJRUZSUUVJeUVSSVJFakVUTUJFU0V5TmpVMEppTUJrZ0tNOHdFMDlnRVAvdkgyL2RuOWRQUHpBMzhCTklxSmlZb0RSQUpzL2Nud3ljejBBb0g5ZndXdy9RYitGSXR0YW9vQUFBRUFOUUFBQmNzRnNBQVhBQUFCSVJFK0FUTWdCQlVSSXhFMEppTWlCZ2NSSXhFaE5TRUVtUDRMUTR4UEFRRUJDZktDbGtlUVIvUCtoUVJqQk8zK2p3NFAydlgrTmdIS21uRVFEdjFKQk8zREFBQUFBQUVBbWY2WUJRc0ZzQUFMQUFBVE14RWhFVE1SSVJFakVTR1o4d0tNOC81SzgvNDNCYkQ3RWdUdStsRCttQUZvQUFJQWxBQUFCTUVGc0FBTUFCVUFBQUVoRVNFeUJCVVVCQ01oRVNFQkVTRXlOalUwSmlNRUxQMWJBVFQ0QVE3KzhmZjkyUU9ZL1ZzQk5JcUppSXNFN2Y2UTdNN1E4d1d3L1FyK0NKRnlib2NBQWdBbS9wa0Yyd1d3QUE0QUZRQUFBU01SSVJFakF6TTJFaHNCSVJFekFRWUNCeUVSSVFYUjZmd3g3QWQzVDNnSUpRT1B1L3lHQ1Z0TEFuditTLzZhQVdiK21RSXBUZ0V0QVI4Q1ZQc1NBcHJvL3I1d0JDc0FBQUVBR0FBQUI0a0ZzQUFWQUFBQkl4RWpFU01CSVFrQklRRXpFVE1STXdFaENRRWhCUENpOHFuK2svN1NBZGYrU2dFa0FXR2U4cGdCWGdFay9rMEIxUDdTQW52OWhRSjcvWVVEQndLcC9ad0NaUDJjQW1UOVdQejRBQUFBQVFCSy8rc0Vld1hGQUNnQUFBRXlOalUwSmlNaUJoVWpOQ1F6TWdRVkZBWUhIZ0VWRkFRaklpUTFNeFFXTXpJMk5UUW1Ld0UxQW1pS2dJMk5jcFR6QVNEWitBRVZlRzU4Z1A3VitOcit6UE9jZjVDZ2pwS3FBMGR6YTJGOGQxNjczZFRNWnFNd0xLbC96ZURVMVdTRGdXbDljc0VBQUFBQUFRQ2FBQUFGQ3dXd0FBc0FBQUV6RVNNUkl3RWpFVE1STXdRWTgvTUQvWGp6OHdNRnNQcFFCQmo3NkFXdysra0FBUUF1QUFBRkNnV3dBQThBQUFFUkl4RWhBd29CS3dFMU16NEJHd0VGQ3ZQK09SRVB6dlkrS0lsaURCZ0ZzUHBRQk8zK0lQNVcvcDNDQmZZQlVBS2pBQUVBUC8vckJOa0ZzQUFWQUFBQkZ6TUJJUUVPQVNNaUppYzNIZ0V6TWpZL0FRRWhBbWd6QXdFdkFReitDajZXbnhsQ0RBSUtQQkZNUkNBZi9nNEJDZ01la2dNaysxS01pd1FDd0FJQ1JrcEZCQzRBQUFNQVQvL0VCaGtGN0FBVkFCNEFKd0FBQVRNZ0FCRVFBQ0VqRlNNMUl5QUFFUkFBSVRNMU13RWlCaFVVRmpzQkVUTVJNekkyTlRRbUl3T3ZEd0VMQVZEK3IvNzJEL01UL3ZYK3NRRlBBUXNUOC83NnI3dTZzQlB6RWEyOHU2NEZKdjY2L3ZMKzlQNjl2NzhCUVFFTUFROEJSOGIrY002K3U4Z0REL3p4eXJ1OXpRQUFBQUVBbWY2aEJiWUZzQUFMQUFBVE14RWhFVE1STXdNakVTR1o4d0tNODZzVTNmdlVCYkQ3RWdUdSt4WDkzQUZmQUFFQWp3QUFCT2tGc0FBVEFBQUJFU01SRGdFaklDUTFFVE1SRkJZek1qWTNFUVRwODFDcllmNysvdmZ6Z1pkVnMxUUZzUHBRQWtFV0ZkcjFBY3YrTlp0d0ZoWUNxZ0FBQUFFQW5nQUFCdndGc0FBTEFBQUJFU0VSTXhFaEVUTVJJUkVCa1FIRjhnSEI4L21pQmJEN0VnVHUreElFN3ZwUUJiQUFBQUFCQUo3K29RZXRCYkFBRHdBQUFSRWhFVE1SSVJFekVUTURJeEVoRVFHUkFjWHlBY0h6c1JUZCtlSUZzUHNTQk83N0VnVHUreFA5M2dGZkJiQUFBQUFBQWdBWUFBQUYwd1d3QUF3QUZRQUFFeUVSSVRJRUZSUUVJeUVSSVFFUklUSTJOVFFtSXhnQ2dRRTArQUVPL3ZIMy9kbitjZ0tCQVRTS2lZaUxCYkQ5emV6TzBQTUU3ZjNOL2dpUmNtNkhBQUFEQUo4QUFBWlpCYkFBQ2dBT0FCY0FBQUVoTWdRVkZBUWpJUkV6QVNNUk13RVJJVEkyTlRRbUl3R1NBVFQ0QVE3KzhmZjkyZk1FeC9Qeit6a0JOSXFKaUlzRGZlek8wUE1Gc1BwUUJiRDlDdjRJa1hKdWh3QUFBZ0NVQUFBRXdRV3dBQW9BRXdBQUFTRXlCQlVVQkNNaEVUTVpBU0V5TmpVMEppTUJod0UwK0FFTy92SDMvZG56QVRTS2lZaUxBMzNzenREekJiRDlDdjRJa1hKdWh3QUFBUUNJLyt3RTF3WEdBQjhBQUJNMEFETXlBQmtCRUFBaklBQTFNeFFXTXpJMlBRRWhOU0UxTkNZaklnWVZpQUVqLy80QkwvN1Ivdjc5L3VIeWw1bVZwUDN6QWcya2xaaVhBOVRrQVE3K3JmN3cvdXYrNy82dkFRSHVsWmptdUNuREs3am9tcFVBQUFBQ0FLci82d2NBQmNVQUZRQWpBQUFCRUFBaElBQVJOU01SSXhFekVUTTFFQUFoSUFBUkp6UW1JeUlHRlJFVUZqTXlOalVIQVA2MS92SCs5djY5dlBQenZBRkNBUW9CRHdGTTg4Q29vN2U0bzZtK0FsWCs4LzZqQVY0QkRBajlvd1d3L1hFNkFRc0JYLzZoL3ZVQ3RldnF0djc0dU92cnVBQUNBQzBBQUFSaUJiQUFEUUFXQUFBcEFRRXVBVFUwSkRNaEVTTVJJUUVqSWdZVkZCWTdBUUV4L3Z3QlNJT0JBUkw3QWVUei90NEJJdkdQakkyTzhRSnNPc0dPMmVMNlVBSWxBc2lGZklDS0FBSUFXLy9yQkR3R0V3QWJBQ2tBQUFFeUVoMEJGQUFqSWdBOUFSQUFOejRCTlRNVUJnY09BUWNYUGdFWElnWWRBUlFXTXpJMlBRRTBKZ0p6MmZEKy9PenQvdndCQnVONlpzUzB6bk9mSXdORm56S0NlbnFFZ254OUEvNys3ZDhWN2Y3aEFTVHZad0ZsQVkwc0Z6WkR4WG9qRkkrR0FqaEF3Nm1HRlpXMXRaVVZocWtBQUFNQWp3QUFCRG9FT2dBUEFCZ0FJUUFBTXhFaE1oWVZGQVlIRlI0QkZSUUdJd0VSSVRJMk5UUW1JeVV6TWpZMU5DWXJBWThCdDl2clhGZHVjOXpTL3ZZQkNtQmJXbUgrOXNocVpXaHJ4QVE2bEpoTmRCOERHSVJhbTVvQnpmN3pRME5CUnE0OFBrUkFBQUFBQUFFQWhRQUFBMDBFT2dBRkFBQUJJUkVqRVNFRFRmNHE4Z0xJQTNiOGlnUTZBQUFBQUFJQUovNitCTVVFT2dBT0FCVUFBRGMrQVRjVElSRXpFU01SSVJFakV3RU9BUWNoRVNHQlhFMExDd0x2bHZMOVN2WUJBZ0FKUmp3Qm9QN3d3MmJIeVFHQi9JajkvQUZDL3I0Q0JRSDJyUE5ZQXFjQUFBRUFGd0FBQmw4RU9nQVZBQUFCSXhFakVTTURJUWtCSVJNekVUTVJNeE1oQ1FFaEJEU0E4NEQyL3N3QmIvNnJBU3p5Y3ZOejhnRXQvcW9CYi83TEFiUCtUUUd6L2swQ1FRSDUvbGNCcWY1WEFhbitCLzIvQUFBQkFFMy83QVBFQkUwQUtBQUFBUlFHQng0QkZSUUdJeUlrTlRNVUZqTXlOalUwSmlzQk5UTXlOalUwSmlNaUJoVWpORFl6TWhZRHNGWlFYRjd5eTdqKy92SndZR0JpV21LdXJsdE9WRnhVYXZMeHVNdmVBeEpLZHlRaGZWMmJxNnVxUVZwVlFVOUdyMFJDUEZCT1BaYXdvUUFBQUFFQWhnQUFCQklFT2dBTEFBQUJNeEVqRVNjQkl4RXpFUmNESVBMeUEvNWI4dklEQkRyN3hnTFVBZjByQkRyOUxnRUFBQUFCQUk4QUFBUmxCRG9BREFBQUFTTVJJeEV6RVRNQklRa0JJUUg5ZS9QemF3RXJBU3orZVFHby9zUUJyUDVVQkRyK1VBR3cvZnI5ekFBQUFBQUJBQjhBQUFRVUJEb0FEd0FBQVJFakVTRURDZ0VyQVRjek1qWTNFd1FVOC83UUN3K20zalFCSkdZK0N4UUVPdnZHQTNiKzkvNnkvdUhOcWZjQnpRQUFBUUNQQUFBRmJ3UTZBQTRBQUFrQklSRWpFU2NCSXdFSEVTTVJJUUwvQVVBQk1QTUQvdG1sL3RnRDh3RXlBU3NERC92R0FzUUIvVHNDeVFIOU9BUTZBQUVBaGdBQUJCRUVPZ0FMQUFBaEl4RWhFU01STXhFaEVUTUVFZlArVy9QekFhWHpBYlgrU3dRNi9qMEJ3d0FBQUFFQWhnQUFCQklFT2dBSEFBQWhJeEVoRVNNUklRUVM4LzVhOHdPTUEzYjhpZ1E2QUFFQUl3QUFBOUFFT2dBSEFBQUJJUkVqRVNFMUlRUFEvcUh6L3FVRHJRTjUvSWNEZWNFQUFBQURBRlQrWUFWL0JoZ0FId0F0QURzQUFCTVFFak15RmhjUk14RStBVE15RWhFVkZBSWpJaVluRVNNUkRnRWpJZ0kxSlRRbUl5SUdCeEVlQVRNeU5qVWhGQll6TWpZM0VTNEJJeUlHRlZUS3dpZERJUElnU1MzQ3k4dkFMVW9oOGg5RktNREtCRGhxZEJnb0VoRXBHbk5wL0xwaWRCY2xFaElsRlhSa0FnNEJDUUUzRGc0QjV2NFdFQkQreWY3M0ZmTCs1QkFPL2xjQnBRME5BUnp5RmF6UkJ3YjlPUVlFczVtYnNRUUdBc29FQnMrdUFBQUJBSWIrdndTbEJEb0FDd0FBRXpNUklSRXpFVE1ESXhFaGh2TUJwdk9URk4zODBnUTYvSWdEZVB5SS9mMEJRUUFCQUY4QUFBUGdCRHNBRXdBQUlTTVJEZ0VqSWlZMUVUTVJGQll6TWpZM0VUTUQ0UE14WWpQZDYvTmxjRFZmTXZNQmFRc0x5dElCVFA2MGRtSUxEQUlNQUFBQUFBRUFoZ0FBQmdNRU9nQUxBQUFCRVNFUk14RWhFVE1SSVJFQmVRRlM4d0ZUOHZxREJEcjhpQU40L0lnRGVQdkdCRG9BQUFBQkFINyt2d2ExQkRvQUR3QUFBUkVoRVRNUklSRXpFVE1ESXhFaEVRRnhBVkx6QVZQeXVoVGQrcm9FT3Z5SUEzajhpQU40L0lqOS9RRkJCRG9BQUFBQUFnQWZBQUFFNmdRNkFBd0FGUUFBQVRNeUZoVVVCaU1oRVNFMUlSa0JNekkyTlRRbUl3Sks3ZERqNU0vK0lQN0lBaXZ0WkZ4Y1pBTGl5S2ltekFOM3cvM2wvcU5nUzB4bUFBQUFBQU1BandBQUJja0VPZ0FLQUE0QUZ3QUFBVE15RmhVVUJpTWhFVE1CSXhFekFSRXpNalkxTkNZakFZTHQwT1Brei80Zzh3Ukg4L1A3dWUxa1hGeGtBdUxJcUtiTUJEcjd4Z1E2L2VYK28yQkxUR1lBQUFJQWp3QUFCQ0lFT2dBS0FCTUFBQUV6TWhZVkZBWWpJUkV6R1FFek1qWTFOQ1lqQVlMdDBPUGt6LzRnOCsxa1hGeGtBdUxJcUtiTUJEcjk1ZjZqWUV0TVpnQUFBUUJSLytzRDZBUk9BQjBBQUFFaUJoVWpORFl6TWhJZEFSUUNJeUltTlRNVUZqTXlOamNoTlNFdUFRSUJWM1RsL0xUby8vL253KzdsY0Z4d2RRdityQUZURDNNRGkyaFFuOXoremUwajd2N080TGRiZXFLQnFIeVhBQUFDQUpELzdBWXZCRTRBRXdBaEFBQUJNejRCTXpJQUhRRVVBQ01pSmljakVTTVJNd0VVRmpNeU5qMEJOQ1lqSWdZVkFZUFJHdjNTN1FFRi92enMyZjhWei9QekFiNTZoSUo4ZklTQ2VnS0kwUGIrMFBjVitQN1MvOW4rUEFRNi9kaWl3c09oRlo3R3hwNEFBQUFDQUNjQUFBUGZCRG9BRFFBV0FBQUJFU01SSXdNakV5NEJOVFEyTXdNVUZqc0JFU01pQmdQZjh1UG4vUDltYWVmUHcxdGI3ZUJpWVFRNis4WUJqZjV6QWJVcW1tZWJ2LzZnUUZrQk9GNEFBQUgvNGY1TEJBd0dHQUFvQUFBQklSVVhQZ0V6TWhZVkVSUUdJeUltSnpjZUFUTXlOalVSTkNZaklnWUhFU01SSXpVek5UTVZJUUp3L3dBRE5aZGdzTDIycVNVNklROFJPeFk3UUdSb1NXNG04NXljOHdFQUJLNzdBVXRSMU9mOUxyZS9DQW0vQlFoY1Z3TFVnbkE2TmZ6b0JLNnF3TUFBQUFFQVdQL3NBLzRFVGdBZEFBQWxNalkxTXhRRUl5SUNQUUUwRWpNeUZoVWpOQ1lqSWdZSElSVWhIZ0VDUWx0ODVmNy91UFQ1K2ZQSDgrVjFZbnh3Q1FGVy9xc0xicTVuVWFEYUFTN3hJL0FCTU9HM1czcWVncWlBbFFBQUFnQWZBQUFHbWdRNkFCWUFId0FBQVJFek1oWVZGQVlqSVJFaEVSQUNLd0UvQVRJMk5SRUJFVE15TmpVMEppTUQrdTNRNCtQUS9pRCs3YjdqTkFFa1pGa0MrZTFqWFZ4a0JEcitoNytmb01NRGR2NzMvcjMrMXNVQnlOOEJ6ZjNGL3NGZVIwTlhBQUFDQUlZQUFBYXhCRG9BRWdBYkFBQUJJUkV6RVRNeUZoVVVCaU1oRVNFUkl4RXpBUkV6TWpZMU5DWWpBWGtCcGZQdDBPUGowUDRnL2x2ejh3S1k3V05kWFdNQ253R2Ivb2UvbjZEREFkMytJd1E2L2NYK3dWOUdRMWNBQUFILzlRQUFCQXdHR0FBY0FBQUJJUkVYUGdFek1oWVZFU01STkNZaklnWUhFU01SSXpVek5UTVZJUUtFL3V3RE5aZGdzTDN6WkdoSmJpYnppSWp6QVJRRXRmNytBVXRSMU9mOWJRS1ZnbkE2TmZ6b0JMV3F1YmtBQUFBQUFRQ0cvcG9FRWdRNkFBc0FBQUVSSVJFekVTRVJJeEVoRVFGNUFhYnovclh6L3JJRU92eUlBM2o3eHY2YUFXWUVPZ0FBQUFFQWpmL3JCcklGc0FBZ0FBQUJFUlFHSXlJbUp3NEJJeUltTlJFekVSUVdNekkyTlJFekVSUVdNekkyTlJFR3N2Yk9jS28yT0xCeHllL3phVnhvZC9kd1kySnZCYkQ3OWRyZ1VsUlVVdURhQkF2NzlYMTdlbjRFQy92MWZYdDZmZ1FMQUFBQkFIRC82d1h0QkRvQUlBQUFBUkVVQmlNaUppY09BU01pSmpVUk14RVVGak15TmpVUk14RVVGak15TmpVUkJlM2R1MktWTURTYVk3Zlc4MUJLVjJMMFdGTk9Wd1E2L1ZITjAwWklTRWJTemdLdi9WRnliRzF4QXEvOVVYSnNiWEVDcndBQUF2L2dBQUFFSVFZWUFCSUFHd0FBQVNFUk16SVdGUlFHSXlFUkl6VXpFVE1SSVFFUk16STJOVFFtSXdLai90N3QwT1BqMFA0Z3JxN3pBU0wrM3Uxa1hGMWpCRG4reXRHdXI5VUVPYXNCTlA3TS9WeitnbXBVVVc4QUFBQUJBS0wvN0FhMkJjWUFKd0FBQVRNMUVBQWhJQUFYSXk0Qkl5SUdIUUVoRlNFVkZCWXpNalkzTXdZQUl5QUFFVFVqRVNNUk13R1Z2UUUxQVFBQkFnRVZHUE1UajVxWXF3SHMvaFNwbXBlUkUvTVcvdVg5L3YzK3pyM3o4d05RRXdFUEFWVCsvZkNZbU9pMkZjUSt1ZWVVbCtiKytRRlJBUkUrL1hRRnNBQUFBQUVBaHYvc0JiNEVUZ0FqQUFBQk16WVNNeklXRlNNMEppTWlCZ2NoRlNFZUFUTXlOalV6RkFRaklnSW5JeEVqRVRNQmVhRVM5K0hIOCtWMVlucHdDZ0Y0L29jS2IzeGJmT1grLzdqaTl4S2g4L01DY3RjQkJlRzNXM3FhZjZ1Q2wyZFJvTm9CQk5mK09RUTZBQUlBSUFBQUJRNEZzQUFMQUE4QUFBRWpFU01SSXdNakFUTUJJd0VoQXlNRGhJVGRkNUg3QWdmbkFnRDcvZGdCVzZzREFheitWQUdzL2xRRnNQcFFBbWNCL3dBQUFnQUtBQUFFUlFRNkFBc0FFUUFBQVNNUkl4RWpBeU1CTXdFakFUTURKeU1IQXVSZHcxdG85d0dwNXdHcjkvNWMrR1FYQkJjQkYvN3BBUmYrNlFRNis4WUJ4QUVHWGw0QUFnQzJBQUFISndXd0FCTUFGd0FBQVNFQk13RWpBeU1SSXhFakF5TVRJUkVqRVRNQklRTWpBYWtCYXdFczV3SUErNCtFM1hlUis1aisyUFB6QWxzQlc2c0RBbWNEU2ZwUUFheitWQUdzL2xRQnJQNVVCYkQ4dHdIL0FBQUNBSjBBQUFZWUJEb0FFd0FaQUFBQk14TXpBU01ESXhFakVTTURJeE1qRVNNUk13RXpBeWNqQndHUS92am5BYXYzYWwzRFcyajNiYnJ6OHdIdCtHUVhCQmNCeEFKMis4WUJGLzdwQVJmKzZRRVgvdWtFT3YyS0FRWmVYZ0FBQUFBQ0FJUUFBQVpwQmJBQUhBQWZBQUFCSGdFVkVTTVJOQ1lyQVFjUkl4RW5JeUlHRlJFakVUUTJJVE1CSVFFVElRUjArdnZ6ZlpCcENmSUNnSkI4OC84QkFBeitoUVRjL1pMeS9od0RLd1BTOHY2Y0FXU1ZiUkg5cXdKakEyMlYvcHdCWlBYU0FvWDloZ0cxQUFBQ0FJSUFBQVZrQkRvQUdnQWRBQUF6TlRRMk53RWhBUjRCSFFFak5UUW1Ld0VIRVNNUkl5SUdIUUVCRXlHQ3ljcis2d1AwL3VyQ3hQTm1kaVFCOGkxM1pRR0ZsZjdXcWQzTURRSGIvaVFRek5tcHFaQnJBLzVmQWFScmtLa0NhUUVpQUFBQUFnQ3RBQUFJcmdXd0FDUUFKd0FBSVJFME5qY2hFU01STXhFaE93RUJJUUVlQVJVUkl4RTBKaXNCQnhFakVTY2pJZ1lWRVFFVElRTEpHeDcrbnZQekF4QVlEUDZGQk56K2hQcjc4MzJRYVFueUFvQ1FmQUlMOHY0Y0FXUlJmalQ5bVFXdy9Yc0NoZjE3QTlMeS9wd0JaSlZ0RWYyckFtTURiWlgrbkFNMkFiVUFBQUFBQWdDUEFBQUhkd1E2QUNFQUpBQUFJVFUwTmpjaEVTTVJNeEVoQVNFQkhnRWRBU00xTkNZckFRY1JJeEVqSWdZZEFRRVRJUUtWR2h6K3QvUHpBcVQrN1FQMC91ckN4UE5tZGlRQjhpMTNaUUdGbGY3V3FWQjhNLzVZQkRyK0tBSFkvaVFRek5tcHFaQnJBLzVmQWFScmtLa0NhUUVpQUFBQUFnQXAva0FEcWdkNEFDMEFOZ0FBQVRJMk5UUW1JeUUxSVRJRUZSUUdCeFVlQVJVVUJDc0JJZ1lWRkJZWEJ5NEJKelEyT3dFeU5qVTBKaXNCTlFFM014VUZJeVUxTXdHUWlINS9nUDdsQVJ2bUFReDViNEtIL3ZmZ05VVTlWa0pSaHFFQnRLa3plSWFXbFk4QkJZdlEvdlNkL3ZYT0EwNXZaRnR1eHNlOWNhQXNBeXFxZ003Zk5qRkNTeDZaS2JPQmpZaDhabnA1eHdPYmp4SDgraE1BQUFJQU0vNUhBNGdHQ3dBdEFEWUFBQUV5TmpVMEppTWhOU0V5RmhVVUJnY1ZIZ0VWRkFZckFTSUdGUlFXRndjdUFTYzBOanNCTWpZMU5DWXJBVFVUTnpNVkJTTWxOVE1CbDNScWIyLys1UUViMXZwZVYybHQ4ODB4U1VCVFBsSjZud0d1b1RCcmVJR0FsOWVMMFA3MG5mNzF6Z0p2UzBROFI3bWRsRkIySXdNaGQxV2Jxall4UWtzZWtpK3VlWVdCVDBGS1Nha0REWThSL1BvVEFBTUFhdi9yQlJFRnhRQU5BQllBSHdBQUFSQUFJU0FBR1FFUUFDRWdBQkVGSVRVMEppTWlCaFVGSVJVVUZqTXlOalVGRWY2MS92SCs5djY5QVVJQkNnRVBBVXo4U3dMQ3dLaWp0d0xDL1Q2NG82bStBbFgrOC82akFWNEJEQUVHQVFzQlgvNmgvdlV4TTdYcjZyYmVLcmpyNjdnQUF3QlMvK3dFTXdST0FBMEFGQUFiQUFBVE5BQXpNZ0FkQVJRQUl5SUFOUUV5TmpjaEhnRVRJZ1lISVM0QlVnRUU2KzBCQmY3ODdPMysvQUh4Y25vTy9nc05lbkp4ZVE0Qjh3OTdBaWYyQVRIKzBQY1YrUDdTQVM3NC9weVhoSVNYQXQyWGdJQ1hBQUFCQUJFQUFBVHZCY01BRVFBQUFSY3pOeE0rQVRNWEJ5TWlCZ2NCSXdFaEFsd2JBeHZwTkpKOUxnRVVMenNXL3BMbi9nd0JCQUdMY0c0Qy9haVZBZEE5UlB1UEJiQUFBQUFCQUNBQUFBUVlCRTRBRlFBQUFSY3pOeE0rQVRNeUZoY0hMZ0VqSWdZSEFTTUJNd0hqRWdRU2VpNlNhU0V4R0JjRUd3MGpPZzMrOXRQK2t2c0JibHBhQWI2VWpna053QUlFTmlyODRnUTZBQVFBYXY5MkJSRUdMZ0FEQUFjQUZRQWpBQUFCSXhFekV5TVJNd0VRQUNFZ0FCa0JFQUFoSUFBUkp6UW1JeUlHRlJFVUZqTXlOalVESU1iR0FjWEZBZkQrdGY3eC92Yit2UUZDQVFvQkR3Rk04OENvbzdlNG82bStCSVFCcXZsSUFiUUJLLzd6L3FNQlhnRU1BUVlCQ3dGZi9xSCs5UUsxNitxMi92aTQ2K3U0QUFBQUFBUUFVLytJQkRRRXRBQURBQWNBRlFBakFBQUJJeEV6QXlNUk15VTBBRE15QUIwQkZBQWpJZ0ExTXhRV016STJQUUUwSmlNaUJoVUNvcmk0QTdlMy9iUUJCT3Z0QVFYKy9PenQvdnp6ZW9TQ2ZIeUVnbm9ER3dHWit0UUJvUC8yQVRIKzBQY1YrUDdTQVM3NG9zTERvUldleHNhZUFBQUFBQU1BamYvckJxY0hSQUFzQUQ0QVJBQUFBVElXRlJFVUJpTWlKaWNPQVNNaUpqVVJORFl6RlNJR0ZSRVVGak15TmpVUk14RVVGak15TmpVUk5DWWpFeFVqSWlRaklnWWRBU00xTkRZek1nUXpBU2MzSnpNVkJPN0o4UERKY0swM09hMXZ5ZS92eVZ4cGFWeG9kK3gxYVZ4cWFseHFKSVQrMENveU40WjRjMGdCS25MK04xRTZBYm9Gc08vbS9lVG03azlSVVUvdTVnSWM1ZkREaUlyOTVJdUhlbjRCaS81MWZucUhpd0ljaW9nQjM0WjRNalFTSlc5cWVQNUxQWENQZlFBQUFBQURBSFQvNndYUkJlTUFMQUErQUVRQUFBRXlGaDBCRkFZaklpWW5EZ0VqSWlZOUFUUTJNeFVpQmgwQkZCWXpNalk5QVRNVkZCWXpNalk5QVRRbUl4TVZJeUlrSXlJR0hRRWpOVFEyTXpJRU13VUhKemNuTXdRNnVkN1dzMkdVTVRLVVg3WFUzTHRPVms5SFVWN3NYVk5HVUZkTnZTU0YvdEFxTWphSGVITkpBU2x5L3RtaVVUb0J1Z1JIM3RiMTE5eEhTa2xJM05mMTF0N0RkM3IxZTNadGNjYkdjVzEzZXZWNmR3SG5obmd5TkJJbGIycDQ4TDQ5YjRrQUFBSUFqZi9yQnJJSEJ3QUhBQ2dBQUFFMUlSY2hGU00xQlJFVUJpTWlKalVSSXhFVUJpTWlKalVSSXhFVUZqTXlOamNlQVRNeU5qVVJBZXNEVlFIK3ByVUNqVzlpWTNEM2QyaGNhZlB2eVhHd09EYXFjTTcyQnBkd2NIOS81L3YxZm5wN2ZRUUwrL1YrZW50OUJBdjc5ZHJnVWxSVVV1RGFCQXNBQUFBQ0FIRC82d1h0QmJFQUJ3QW9BQUFCTlNFWElSVWpOUUVSRkFZaklpWTFFU01SRkFZaklpWTFFU01SRkJZek1qWTNIZ0V6TWpZMUVRR1hBemdGL3JHMUFpcFhUbE5ZOUdKWFNsRHoxcmRqbWpRd2xXSzczUVZCY0hCL2YvNzUvVkZ4Yld4eUFxLzlVWEZ0YkhJQ3IvMVJ6dEpHU0VoRzA4MENyd0FBQVFCcS9vb0V1QVhGQUJnQUFBRWpFU1lDTlJFUUFDRWdBQlVqTkNZaklnWVZFUlFXT3dFRE1QTGErZ0V3QVFBQkFRRWQ4NU9ZbDZlbmw1YitpZ0ZvSUFGRjlnRVZBUkFCVS83OTdaV1k1N2YrNmJubkFBQUFBQUVBWFA2SkEvTUVUZ0FZQUFBQkl4RW1BajBCTkJJek1oWVZJelFtSXlJR0hRRVVGanNCQXRYenZjbis2TUx2NVhCY2YzUnpnWkwraVFGcUlRRWsweVB0QVRQaXRsdDZ5WlFqbU1ZQUFBQUFBUUJ0QUFBRWt3VStBQk1BQUFFRkJ5VURJeE1sTndVVEpUY0ZFek1EQlFjbEFsc0JJVWorM2JXdjRmN2ZSd0VseXY3ZVNRRWp1YXprQVNWTS91QUJ3YXlBcXY3QkFZNnJnS3NCYUt1Q3F3RkcvbXVyZjZvQUFBSDhaZ1NpL3prRi9RQUhBQUFCRlNjM0lTY1hGZjBYc1FFQ0lnR3hCU0IrQWU1c0Fkd0FBQUFCL0hNRkYvOXRCaFVBRVFBQUFUSWtNeklXSFFFak5UUW1JeUlFS3dFMS9KVjBBUzFKZFhtSU9ESXIvczJHSkFXZGVHcHZKUkkwTW5pR0FBQUIvWHNGRnY1eUJtQUFCUUFBQVRVekJ4Y0gvWHU5QVR0U0JkeUVsbkJFQUFIOXBRVVcvcHdHWUFBRkFBQUJKemNuTXhYOTkxSTdBYjBGRmtSd2xvUUFDUG9rL3NRQnZ3V3ZBQTBBR3dBcEFEY0FSUUJUQUdFQWJ3QUFBVFEyTXpJV0ZTTTBKaU1pQmhVQk5EWXpNaFlWSXpRbUl5SUdGUk0wTmpNeUZoVWpOQ1lqSWdZVkFUUTJNeklXRlNNMEppTWlCaFVCTkRZek1oWVZJelFtSXlJR0ZRRTBOak15RmhVak5DWWpJZ1lWQVRRMk16SVdGU00wSmlNaUJoVVRORFl6TWhZVkl6UW1JeUlHRmYwUmNHSmpjSEF2TkRJdkFkNXhZR0p5Y1M4ME1TNUljR0ppY1hBdk5ETXUvc3R4WUdKeGNDODBNUy85VDNCaVkzQndMelF5TC8xTmNXSmpjSEF2TkRJdi90NXhZV053Y0M0MU1pODFjV0ZqY1hFdU5USXVCUE5WWjJkVkxEazVMUDdyVldkblZTdzVPU3orQ1ZWbloxVXNPVGtzL2ZsVloyZFZMRGs1TFA3a1ZtWm1WaTA0T0MwRkdsVm5aMVVzT1Rrcy9nbFZaMmRWTERrNUxQMzVWV2RuVlN3NU9Td0FBQUFJK2szK1l3R01CY1lBQkFBSkFBNEFFd0FaQUI0QUl3QW9BQUFGRndNakV3TW5Fek1EQVRjRkZTVUZCeVUxQlFFM0pSY0dCUUVIQlNjbEF5Y0ROeE1CRnhNSEEvNVFDM3BnUmpvTWVtQkdBaDBOQVUzK3B2dDFEZjZ6QVZvRG5BSUJRRVFsL3dEODh3TCt3RVVCSmlzUmxFSEdBMkFSbEVMRVBBNytyUUZoQktJT0FWTCtvUDRSREh4aVJ6c01mR0pIQWE0UW1VUVhzZnlPRVpsRnlBTGtBZ0ZHUmY3Vi9PTUMvcnRIQVNzQUFBTC80QUFBQkNFR1lnQVNBQnNBQUFFaEVUTXlGaFVVQmlNaEVTTTFNelV6RlNFQkVUTXlOalUwSmlNQ28vN2U3ZERqNDlEK0lLNnU4d0VpL3Q3dFpGeGRZd1VGL2Y3UnJxL1ZCUVdyc3JMOGtQNkNhbFJSYndBREFKOEFBQVRhQmJBQUF3QU9BQmNBQUFFSEFUY0JFU01SSVRJRUZSUUVJeVVoTWpZMU5DWWpJUVRhYnY1c2J2NU04d0k1OWdFTS92VDIvcm9CUm9xRmhZcit1Z0lqWkFHL1pQNUcvZGdGc1BYUDBmUERqbkZ4a2dBQUFBTUFnUDVnQkRRRVRnQURBQllBSkFBQUpRY0JOeVVVQWlNaUppY0hFU01STXhjK0FUTXlFaEVqTkNZaklnWUhFUjRCTXpJMk5RUXRiLzZYYndGdzJzcGVpaklEODlrUU5JOWh6TnZ5ZW45TmFTQWdhRkIvZUExakFhRmtTdkgrNUQ4L0FmMzNCZHFDU2t6K3lQNzRxZEJBTy80WE9qdXptQUFBQUFBQkFKUUFBQVEwQnhBQUJ3QUFBU0VSSXhFaEVUTUVOUDFUOHdLdDh3VHQreE1Gc0FGZ0FBQUFBUUIrQUFBRFhBVjBBQWNBQUFFaEVTTVJJUkV6QTF6K0ZQSUI2L01EZHZ5S0JEb0JPZ0FBQUFFQW4vN0dCSjBGc0FBVkFBQUJJUkV6SUFBUkVBSWhKekkyTlM0Qkt3RVJJeEVoQkRmOVc3RUJJQUU2K2Y3OEFaaHpBYkMyc2ZNRG1BVHQvbGIrMWY3ay92dit6N3JLcThQQi9ZY0ZzQUFBQVFCKy91SUQyd1E2QUJVQUFBRWhGVE15QkJVVUFnY25QZ0UxTkNZckFSRWpFU0VEUnY0cVUvVUJJNzYrVkhWb25JbFQ4Z0xJQTNibCt1bUwvdkF4clNpTGJJbVEvamtFT2dBQUFBRUFsQUFBQlN3RnNBQVVBQUFKQWlFQkl4VWpOU01SSXhFekVUTTFNeFV6QVFVRS9uc0JyZjdPL3MxRG8xcno4MXFqT3dFaEJiRDlXZnozQW5UcTZ2Mk1CYkQ5bGY3K0Ftc0FBQUFCQUk0QUFBU3VCRG9BRkFBQUNRSWhBeU1WSXpVakVTTVJNeEV6TlRNVk14TUVsUDdFQVZiK3k5Z3ZtMWZ5OGxlYko4OEVPdjMrL2NnQnJMS3kvbFFFT3Y1UXg4Y0JzQUFCQURRQUFBYWhCYkFBRGdBQUFTTVJJeEVoTlNFUk13RWhDUUVoQTZ5bzgvNGpBdENMQWNrQklQMzBBalgrMXdKMi9Zb0U3Y1A5bHdKcC9VbjlCd0FBQVFBK0FBQUZxUVE2QUE0QUFBRWpFU01SSVRVaEVUTUJJUWtCSVFOQmUvUCthd0tJYXdFckFTeitlUUdvL3NRQnJQNVVBM2JFL2xBQnNQMzYvY3dBQUFFQW53QUFCNFFGc0FBTkFBQUJJUkVoRlNFUkl4RWhFU01STXdHU0Fvd0RadjJNOHYxMDgvTURNQUtBdy9zVEFtMzlrd1d3QUFBQUFRQitBQUFGWndRNkFBMEFBQUVoRVNFVklSRWpFU0VSSXhFekFYRUJwUUpSL3FMei9sdno4d0ozQWNQRS9Jb0J0ZjVMQkRvQUFBQUJBSi8reEFmdkJiQUFGd0FBQVRNZ0FCRVFBaUVuTWpZMUxnRXJBUkVqRVNFUkl4RWhCUkdFQVNBQk92bisvQUdZY3dHd3RvVHkvWFB6QkhJRFFmN1YvdVQrKy83UHVzcXJ3OEg5aVFUdCt4TUZzQUFCQUg3KzVRYTdCRG9BRndBQUFUTXlCQlVVQWdjblBnRTFMZ0VyQVJFakVTRVJJeEVoQkFxRS93RXV2cjVWZEdvQnBwT0U4LzVhOHdPTUFwWDY2WXorOERHdUo0eHNpWS8rTmdOMi9Jb0VPZ0FBQUFBQ0FHbi82QVhNQmNVQUtRQTNBQUFGSWlZbkRnRWpJQUFSTlJBQU14VWlCaDBCRkJJek1qWTNKZ0k5QVRRU016SVNFUlVVQmdjZUFUTUJGQllYUGdFOUFUUW1JeUlHRlFYTWNzWmFTNkZhL3RuK25BRUkyMjE4MWJ3WUxoaHhkT1creGV4aFhpNWtPUDJOWm1kU1ZtRmRXRjhZSXlVaklnR0VBUysyQVJFQllNenB1cmpiL3ZNRUJHTUJCNkxVOFFFMC9zYisvOVNYL0dFTENnSWRpOVZKUnM2QjVhNnl0cU1BQUFBQUFnQmgvK3NFeVFST0FDa0FPQUFBQlNJbUp3NEJJeUlBUFFFMEVqTVZEZ0VkQVJRV016STJOeTRCUFFFME5qTXlGaDBCRkFZSEhnRXpBVFUwSmlNaUJoMEJGQllYUGdFMUJNbGhwRWc5ZzBydi90N1ZzRUpKbElNSUVReElSN0dabTdoQ1B5WlJMdjdwT2pRMU9EdzhNVElTR2h3ZEhBRkIvRXZSQVFyS0JKTjRUYWJNQVFGS3VtNS92T24reDM1cnRFZ0pDQUdBZ0dxSWVtV0VWb3MxTUlSVEFBQUJBQzcrb1FheEJiQUFEd0FBQVNFMUlSVWhFU0VSTXhFekF5TVJJUUdVL3BvRHZmNmNBb3p6cXhUZCs5UUU3Y1BEKzlVRTd2c1YvZHdCWHdBQkFDYit2d1U2QkRzQUR3QUFBU00xSVJVakVTRVJNeEV6QXlNUklRRWI5UUxFM0FHbTg1TVUzZnpTQTNmRXhQMUxBM2o4aVAzOUFVRUFBQUFDQUlJQUFBVGNCYkFBQXdBWEFBQUJJeEV6QVJFakVRNEJJeUFrTlJFekVSUVdNekkyTnhFRExxT2pBYTd6VUt0aC92Nys5L09CbDFXelZBRXNBdHNCcWZwUUFrRVdGZHIxQWN2K05adHdGaFlDcWdBQ0FIUUFBQVAxQkRzQUF3QVhBQUFsSXhFekFTTVJEZ0VqSWlZMUVUTVJGQll6TWpZM0VUTUNqYVNrQVdqek1XSXozZXZ6WlhBMVh6THp6QUpmL05VQmFRc0x5dElCVFA2MGRtSUxEQUlNQUFFQWlnQUFCT1FGc0FBVEFBQXpFVE1SUGdFeklBUVZFU01STkNZaklnWUhFWXJ6VUt0aEFRRUJDdk9DbGxlelVnV3cvYjRWRjl2MC9qVUJ5NXB4R0JUOVZnQUFBZ0FnLytrRndBWEVBQjBBSmdBQUJTQUFFVFV1QVRVekZCWVhFQUFYSUFBUkZTRVZGQll6TWpZM0Z3NEJBU0UxTkNZaklnWVZBK0wreWY2M29LS3lSVXNCUWZVQkVRRVgvSlc5MEc2ZVR6RTF4ZjNoQW5pUHBwdW9Gd0ZVQVNKS0Y4NnNXbklWQVJNQldBSCtuZjYvaER6RDZDZ2h2Q0E0QTJrZnRkSHB0d0FDLzg3LzdBUjJCRThBR3dBakFBQUZJZ0FuTGdFMU14UVdGejRCRnpJU0hRRWhIZ0V6TWpZM0Z3NEJBeUlHQnlFMU5DWUN6dWIrOUFXRWhhb3lOaUg4dGVEay9WWUtpWDVraVVKSFBjS2lXM1FTQWJSbkZBRWQ2UjY4bDBwakdNWHNBZjc3NDQrSG9pOHRwalZEQTUrTmRSbHBnQUFBQUFBQkFKVCt4QVRuQmJBQUdBQUFBU01SSXhFekVUTUJJUUVXRWhVUUFpRW5NalkxTGdFckFRR1lFZlB6Y3dIQ0FTVCtHdTcvK2Y3OEFaaDBBYkcyOVFKNC9ZZ0ZzUDJoQWwvOWl4NyszUDcrKy83T3VzcXN3OEFBQVFDTy91b0VRd1E2QUJZQUFBRWVBUlVVQWdjblBnRTFMZ0VuSXhFakVUTVJNd0VoQXMydHZyMitWWFZwQVpHR3J2THlWUUZCQVMwQ1lTbmJ0WWorK1MrdEpvUm5mbjRJL2xRRU92NVFBYkFBQUFBQUFRQ2Yva3NGRUFXd0FCY0FBQUVSSVJFekVSUUdJeUltSnpjZUFUTXlOalVSSVJFakVRR1NBb3p5dDZrbE9pQU9FVHNXUEVIOWRQTUZzUDJBQW9ENkViYkFDQW0vQlFoZFZnS3MvWk1Gc0FBQkFINytTd1FKQkRvQUZ3QUFBUkVoRVRNUkZBWWpJaVluTng0Qk16STJOUkVoRVNNUkFYRUJwZk80cVNRNklROFJPeFk3UWY1Yjh3UTYvajBCdy91SHRzQUlDYjhGQ0YxV0FmVCtTd1E2QUFJQVUvL3FCUnNGeFFBV0FCNEFBQUVnQUJFVkVBQWxJQUFSTlNFMU5DWWpJZ1lISno0QkV6STJOeUVWRkJZQ2N3RktBVjcrcS83Ky9zbit4Z1BXMHVSMnAxSXhOOC9yb2JnTC9SNndCY1grbHY3TW92N1gvbzRCQVdFQlFvUVYwLzhwSUx3Zk92cng2TDBmdHRBQUFBQUJBRjMvNndSR0JiQUFHZ0FBQVJjQkhnRVZGQVFqSWlRMU14UVdNekkyTlRRbUt3RTFBU0UxQkJzQi9uL1EyLzdvNmN6KzVQT0diMytQbEptT0FXcjlrQVd3bS81RkdPUEh6ZURVMVdTRGdXbVZoYXNCa2NNQUFRQmQvblVFUmdRNkFCb0FBQUVoTlNFWEFSNEJGUlFFSXlJa05UTVVGak15TmpVMEppc0JOUUwwL1pzRGpBSCtpTXpXL3VqcHpQN2s4NFp2ZjQrVW1ZOERkc1NiL2tNWjQ4WEw0ZFRVWW9PQ1o1V0Vxd0FBLy84QU8vNUxCSWtGc0FBbUFLeFNBQUFtQWRPa0tRQUhBWm9CTlFBQUFBRC8vd0EwL2trRG9nUTZBQ1lBNTFVQUFDY0IwLytkLzNvQUJ3R2FBUXYvL2dBQ0FGUUFBQVNBQmJBQUNnQVRBQUFCRVRNUklTSWtOVFFrTXdFUklTSUdGUlFXTXdPTzh2M1o5djd4QVE3M0FUWCt5NHVIaUlvRGxBSWMrbEQ4MGREMy9TNENENUp3YzVvQUFBQUFBZ0JtQUFBR3BRV3dBQmdBSVFBQUlTSWtOVFFrTXlFUk14RTNQZ0UzTmlZbk14NEJCd1lFSXlVUklTSUdGUlFXTXdKcjl2N3hBUTczQVRYeVRHVnBCQUVmSHV3aUl3SUUvd0RCL3NMK3k0dUhpSXI4MGREM0FoejdFZ0VCZG05T29sQmxra25SMk1JQ0Q1SndjNW9BQUFJQVh2L3BCbjRHR0FBaUFETUFBQk1RRWpNeUZoY1JNeEVHRmpNK0FUYzJKaWN6SGdFSEFnQWpCaVluRGdFaklnSTFBUzRCSXlJR0hRRVVGak15TmpjdUFUVmUyczFVZ1RQekFrMUVkMzhFQVI0ZjdDSWpBZ1QrNnRPQXFpdzFsMnJMMmdLdkkyTkVmM054ZjBsbUl3TURBZzRCQ0FFNFBUc0NRdnRQVTJVQnVhaGp5R2lCdFYzKzhmN3BBbFZnV1ZvQkhmRUJKakkyenFzVm1hODZPQThpRXdBQUFRQTcvK2dGNFFXd0FDMEFBQUUwSmlzQk5UTXlOalUwSmlNaE5TRXlCQlVVQmdjWEhnRWRBUVlXTXo0Qk56WW1Kek1lQVFjQ0FDTUdKaWNDcG50cjFKdWVoWUNQL3FBQllQNEJCSHg2QVlKdkFUNDJhbklFQVI0ZjdDTWlBZ1QrOWN1bnNBZ0JlRzJCeFc1NWFYREYwYzkwb2pBREphaUFSRDFLQWJpcFk4aG9pSzljL3ZEKzZnT2RzUUFCQUMvLzRnVC9CRG9BTGdBQUpRWVdNejRCTnpZbUp6TWVBUWNPQVNNR0ppYzFOQ1lyQVNjek1qWTFOQ1lqSVNjaE1oWVZGQVlIRng0QkhRRURBUUVoTEZwZkJBRWZIK3dqSXdJRjc3V2ptd2hSVHVrQ3QyZGRYbWIrK2dZQkROYmhWbFlCWkZickt5MEJqWUpOb1ZGb2owamI0d053aEVzOFFMMUVRMFpRdzZlY1VXOGpBeHAxV1Q0QUFBSUFTZjZzQkNRRnNBQWhBQ3NBQUJNbk16STJOVFFtSXlFbklUSUVGUlFHQng0QkhRRVVGaGNWSXk0QlBRRTBKaU1CRkFZSEp6NEJQUUV6bHdISWxZU0JpdjdnQXdFajl3RUdjM04rYWlBbStpa1dmWElDbW1oVmZ5d3M1UUpjdzI5MWIzdkQyTTl6b0RNb3JZUjRRWGdpRnlLTFIzUnpnZjNjWjl4SlRraVRXN3dBQUFJQWRmNmNCQXNFT2dBaEFDc0FBQk0xTXpJMk5UUW1JeUVuSVRJV0ZSUUdCeDRCSFFFVUZoY1ZJeTRCUFFFMEppTUJGQVlISno0QlBRRXpzK1ZwWkdabi91RUVBU1BXNjFkWFlWTVhIZnNkRG1KZkFsNW9WWDhzTE9VQm5MTkpSVWRWd2ErZ1VuTW9JWUpoVlNkWkZCRVVZVEZUVDFUK2pHZmNTVTVJazF1OEFBQUFBQUVBUS8vb0IzNEZzQUFoQUFBQklSRVFBaUVqTlRNeUVoa0JJUkVHRmpNK0FUYzJKaWN6SGdFSEFnQWpCaVluQkEzK1ZOMys5RFVwakhjRGtRRk5SSGQrQkFFZUgrd2lJd0lFL3V2VHVNSUpCT3YrRmY1cS9wYkVBUVVCTndLdys3ZFVaQUc1cUdQSWFJRzFYZjd4L3VrRHRNc0FBUUEvLytnR1dRUTZBQ0VBQUFFUkJoWXpQZ0UzTmlZbk14NEJCd1lDSXdZbUp4RWhFUkFDS3dFL0FUSTJOUkVFQ2dGUlIxMWlCQUVlSCt3aUl3SUU5N3U3eGduKy83amZRQVFwWkZNRU92MHRWR1FCb3BaZXZXSjZxMWo3L3Y0RHRNc0NEZjc2L3J6KzF0TUJ1OThCekFBQUFBQUJBSmovNkFlRkJiQUFIUUFBQVJFR0ZqTStBVGMySmljekhnRUhBZ0FqQmlZbkVTRVJJeEV6RVNFUkJRWUJUVVI0ZmdRQkh4L3NJaVFDQmY3cjA3ZkNDZjEzOC9NQ2lRV3crN2RUWlFHNHFXUEhhWCsyWHY3eC91a0R0TXNCQnYyVEJiRDlnQUtBQUFFQWQvL29CbHdFT2dBZEFBQUJJUkVqRVRNUklSRXpFUVlXTXo0Qk56WW1Kek1lQVFjR0FpTUdKaWNER3Y1UTgvTUJzUE1DVUVoZVl3UUJIeDdySXlJQ0JQZTh1c1lKQWJyK1JnUTYva01CdmYwdFUyVUJvcFpkdldPQnBWZjcvdjREdE1zQUFBQUFBUUJpLytzRXRnWEZBQ0VBQUFVZ0FCa0JFQUFoTWhZWEJ5NEJJeUlHRlJFVUZqTStBVGMySmljekhnRUhCZ1FDdS83dy9yY0JTUUVRZEsxR1AwU09WcWUvdjZkL2hRUUJHaG5ySmhRQkJQN2pGUUZZQVJJQkJnRVJBVmtzTGJBaUl1NjEvdmk1N1FHRmUxT3RZcXBxVHVEbEFBQUJBRlgvNndQbEJFNEFJUUFBSlQ0Qk56UW1Kek1lQVJVT0FTTWlBRDBCTkFBek1oWVhCeTRCSXlJR0hRRVVGZ0phVTBJRENnbnJEUTRFMWJMMS92QUJCdXBnaXpBdU1IaEZnSDJHcndGRVJ6ZHhOa1puTWFtbkFUWG9LdWNCTlNJZ3ZSd2V5NHdxajhvQUFBQUJBQ0wvNkFWWUJiQUFHUUFBQVNFMUlSVWhFUVlXTXo0Qk56WW1Kek1lQVFjQ0FDTUdKaWNCNS80N0JJRCtPQUZOUkhkL0JBRWZIK3dqSWdJRS91dlR0OE1KQk92RnhmeDhVMlVCdUtsangybC90MTMrOGY3cEE3VExBQUVBUlAvb0JNd0VPZ0FaQUFBQklUVWhGU0VSQmhZelBnRTNOaVluTXg0QkJ3NEJJd1ltSndHSi9yc0RpLzZ0QVZGSFhXTUVBUjhlNnlNakFnVDR1N3JHQ2dOM3c4UDk4RlJrQVlGNFNwdE1ZNGxGMitNRHRNc0FBQUFBQVFDSC8rc0ZBUVhGQUNrQUFBRWlCaFVVRmpNeU5qVXpGQVFqSUNRMU5EWTNOUzRCTlRRa0lUSUVGU00wSmlNaUJoVVVGanNCRlFMQ3A2RzBwSTJ2OC82NTZQNzAvc0dHaEhTQUFTb0JDK1lCTmZPcGY2S2drcUMrQW9aeWZXbUJnMlRWMU9ETmY2a3JBeTZqWnN6VTNidGVkM3hoYTNQQkFBQUEvLzhBclFKdEJPb0RNUUJHQVliZ0FGTXpRQUQvL3dDeUFtMEY2Z014QUVZQmhyWUFabVpBQVAvL0FBVCtQd09aQUFBQUp3QkJBQUgrL2dBR0FFRUJBQUFCQUdBRDh3R1dCaklBQ1FBQUV6UTJOeGNPQVIwQkkyQmtVb0F1SzkwRXJHYllTRTFJazF5N0FBQUFBQUVBTXdQV0FXa0dHQUFKQUFBQkZBWUhKejRCUFFFekFXbGxVbjh0TE4wRlhHZllSMDFIazEyK0FBQUFBUUF5L3NJQmFBRU5BQWtBQUNVVUJnY25QZ0U5QVRNQloyUlNmeXdzM2tkbDJFaE9TSk5ieHdBQUFQLy9BRWNEMWdGOUJoZ0FSd0ZtQWJBQUFNQUJRQUFBQVAvL0FHSUQ4d0xsQmpJQUpnRmxBZ0FBQndGbEFVOEFBUC8vQUVBRDFnTEFCaGdBSmdGbURRQUFCd0ZtQVZjQUFBQUNBREwrd2dLcUFRMEFDUUFUQUFBbEZBWUhKejRCUFFFekJSUUdCeWMrQVQwQk13Rm5aRkovTEN6ZUFVSmxVbjhzTE41SFpkaElUa2lUVzhmR1pkaElUa2lUVzhjQUFBQUJBRUFBQUFRZUJiQUFDd0FBQVNFUkl4RWhOU0VSTXhFaEJCNytpUFAralFGejh3RjRBM0w4amdOeXlBRjIvb29BQUFBQUFRQmMvbUFFT1FXd0FCTUFBQ2tCRVNNUklUVWhFU0UxSVJFekVTRVZJUkVoQkRuK2lQUCtqZ0Z5L280QmN2TUJlUDZJQVhqK1lBR2d3Z0sweEFGMi9vckUvVXdBQUFBQUFRQ0lBZjhDUkFQNEFBMEFBQk0wTmpNeUZoMEJGQVlqSWlZMWlIWm5hSGQyYUdoMkF5RmdkM1poVFdGMGRHSC8vd0NjQUFBRFdBRHBBQ1lBRUFNQUFBY0FFQUhOQUFELy93Q2NBQUFGRVFEcEFDWUFFQU1BQUNjQUVBSE5BQUFBQndBUUE0WUFBQUFHQUV2LzZ3ZGdCY1VBR1FBbkFEVUFRd0JSQUZVQUFBRTBOak15RmhjK0FUTXlGaDBCRkFZaklpWW5EZ0VqSWlZMUFUUTJNeklXSFFFVUJpTWlKalVCRkJZek1qWTlBVFFtSXlJR0ZRVVVGak15TmowQk5DWWpJZ1lWQVJRV016STJQUUUwSmlNaUJoVVRKd0VYQXpDbGowdHlKaVp5VEkrbXBZNU5kQ1VtY1VxUnBmMGJvWXlRcGFXT2phSURqa2xFUjBKSFJFVkdBY2RLUTBaRFIwUkZSdnROUjBaRFIwaEVSVWJxZlFMSGZRRmxnYXM2TlRVNnE0Rk9ncW81TlRVNXFvSURnWUtycTRKTmdxbXBndnpNUWxoVlJVNUJXVmxCVGtGWlZrUk9RVmxaUVFMbVFsZFhRazFDV1ZsQys5VklCSEpJQUFBQUFBRUFiQUNYQWpNRHRnQUdBQUFCRXlNQk5RRXpBVHozcC83Z0FTQ25BaWIrY1FHR0V3R0dBQUFCQUZRQWx3SWJBN1lBQmdBQUV3RVZBU01UQS9zQklQN2dwL2YzQTdiK2VoUCtlZ0dQQVpBQUFRQXRBRzBEY1FVbkFBTUFBRGNuQVJlcWZRTEhmVzFJQkhKSUFBSUFQd0l3QTFZRnhRQUtBQTRBQUFFekZTTVZJelVoSndFekF4RW5Bd0xVZ29MRS9qTUVBY3pKeEFQM0EzaVlzTEJ3QW5YOXN3Rk9BZjZ4QUFFQWFRS01BdjhGdWdBVEFBQUJGejRCTXpJV0ZSRWpFVFFtSXlJR0J4RWpFUUVCSUNSdVNYNkZ4VUZCTkVNVHhRV3NlVUZHazZEK0JRSEpaMWN2S3YzU0F5QUFBUUJQQUFBRWF3WEZBQ2NBQUFFT0FRY2hCeUUxTXo0Qk55TTFNeWNqTlRNbk5EWXpNaFlWSXpRbUl5SUdGUmNoRlNFWElSVUI2d0lnSHdMQkFmd21DaTh0QXFlaEJaNllCT1RIMCtMemExZFhZUVFCaVA1K0JRRi9BY0JOZnpMQ3dnMlZYS2FBcDN6VDZkZTZhMk9CZUh5bmdLWUFBQUFBQXdDWi8rd0dTUVd3QUFvQUV3QXJBQUFCRVNNUklUSUVGUlFFSXljek1qWTFOQ1lyQVNVUk14VWpFUlFXTXpJMk54Y09BU01pSmpVUkl6VXpFUUdUK2dGNDl3RUwvdlgzZm42R2dvS0dmZ1BudzhNeEt4a3NGQm9oWGpHRGo1V1ZBaHo5NUFXdytjM1QrOHlTYm15UVhmNzV0UDJxUlRZSEJySVFGSm1yQWxhMEFRY0FBUUJMLytzRDRBWEZBQ3NBQUFFaEZSUVdNekkyTnhjT0FTTWlBRDBCSXpVek5TTTFNelUwQURNeUZoY0hMZ0VqSWdZZEFTRVZJUlVoQTV6K05KZUlPMjAxRkRwNFAvTCs0SktTa3BJQkgvRTlja1FVTjI0Nmg1WUJ6UDQwQWN3QjhBS2FweEVSeFE4UUFSTHhBbzZjamd6MkFSc1FEOGNRRTdDY0RvNmNBQUFFQUhILzZ3V0pCY1VBR3dBcEFEY0FPd0FBQVJRR0l5SW1QUUUwTmpNeUZoVWpOQ1lqSWdZZEFSUVdNekkyTlFFVUZqTXlOajBCTkNZaklnWVZNelEyTXpJV0hRRVVCaU1pSmpVVEp3RVhBckdYaDRtWm1JaUltS2s5T2pzOFBUdzVQQUVZcEpLUm9xT1NrYU9wUjBSRVNFTkhRMHJCZmYwNWZRUWxjWlNwZ2syRHFwWnhNVVJaUWsxQ1YwUXYvUEtEcWFtRFRvS3Fxb0pCV1ZsQlRrVlZXVUVEeUVqN2prZ0FBQUFBQWdCRi8rc0RrQVhGQUJvQUpnQUFCU0ltUFFFT0FTTTFNalkzRVRRMk16SVdIUUVVQWdjVkZCWXpBelUwSmlNaUJoVVJQZ0UxQXR2cTVERmlOVGRoTUxDZmk2blB1bDEzTUNraUxTeFNVaFhzMkFjTENic0xDd0d5eHRxeG1pcVkvc0JuUlllQkE0b3NQVUpkWWY2elI3WmpBQUFFQUpnQUFBaFBCY0FBQXdBUkFCOEFLd0FBQVNFMUlRRTBOak15RmgwQkZBWWpJaVkxTXhRV016STJQUUUwSmlNaUJoVUJJd0VIRVNNUk13RTNFVE1JRVAzR0Fqcjlpcm1ob3JtNW9LSzZyMVpYVkZaWFZWVlcvc0R5L1hjRDgvTUNpUVB5QVh5VkFtQ1h1TGlYZFppMnRwaFhaV1ZYZFZSbloxVDdqd1FyQWZ2V0JiRDcxZ0VFS1FBQUFBSUFaQU9VQkdJRnNBQU9BQllBQUFFbkF5TURCeEVqRVRNYkFUTVJJd0VqRVNNUkl6VWhBL1FEaEQySkEyK0prSkdEYnYzM2luV0lBWWNFMlFIK3VnRlNBZjZ2QWh6K2d3RjkvZVFCdmY1RkFidGZBQUlBbHYvc0JKRUVUZ0FWQUI0QUFDVU9BU01pQURVMEFETXlBQjBCSVJFZUFUTXlOamNCSWdZSEVTRVJMZ0VFRkZtNFlkNyswZ0UvemRNQkhQMEFPWWxQWWJaWi9wQkxpenNDSERlSVhqZzZBVVR0NWdGTC9zN3JMLzY0TmpnN1B3TXFRRHIrNndFZU5qc0EvLzhBYWYvMUJsOEZzZ0FuQWNrQUVnS0dBQ2NCZEFFTUFBQUFCd0hRQTFFQUFBQUEvLzhBYXYvMUJ2WUZ3QUFuQWNzQUNnS1VBQ2NCZEFIRkFBQUFCd0hRQStnQUFBQUEvLzhBYXYvMUJ5WUZyd0FuQWMwQUFnS09BQ2NCZEFIOUFBQUFCd0hRQkJnQUFBQUEvLzhBYXYvMUJvVUZyd0FuQWM4QUdBS09BQ2NCZEFGQ0FBQUFCd0hRQTNjQUFBQUFBQUlBUS8vckJFNEY3UUFVQUNJQUFBRUVBQkVWRkFBaklnQTFOQkl6TWhZWE55NEJKd0V1QVNNaUJoVVVGak15TmowQkFlZ0JHUUZOL3RqbDVmN24rT0pTa1RrREw5bVhBYjRsbFcrQWZKQi9lNXNGN1ViK052NmtaUDMreXdFVjFPb0JEeThyQXFuTk1mMXJQRTZ0a0hxdHo2Rm1BQUFBQUFFQXB2OGJCUFFGc0FBSEFBQUZJeEVoRVNNUklRVDAxLzFmMWdSTzVRWFUraXdHbFFBQUFBQUJBRUQrOHdUQkJiQUFEQUFBQ1FFaEZTRTFDUUUxSVJVaEFRT1AvZTREUlB0L0FrLzlzUVJIL1BZQ0VnSkQvWFBEbHdMSUFzYVl3LzF6QUFBQkFKNENiUVBoQXpFQUF3QUFBU0UxSVFQaC9MMERRd0p0eEFBQUFRQTdBQUFFaXdXd0FBc0FBQUVYTXpjQk13RWpBeU0xSVFJaUhRTWNBVnZTL2hlKzJORUJZd0Y4aFlVRU5QcFFBa0hGQUFNQVpQL3JCOWtFVGdBWkFDY0FOUUFBQVJRQUl5SW1KdzRCSXlJQVBRRTBBRE15RmhjK0FUTXlBQlVqTkNZaklnWUhGUjRCTXpJMk5TRVVGak15TmpjMUxnRWpJZ1lWQjluKyt1R2k0MDlQNUtIaS92d0JBK0dpNVU5TzVhUGdBUVh6ZW5pSHVoZ1Z2SVo1ZS9weGVIdUZ2QllYdTRkNWVBSC82LzdYd0phV3dBRXA2enJxQVN1K2s1TysvdFhxbXJqNFlTUmkvN1dkbmJYL1lpUmcrYmViQUFBQUFmK3kva3NDcUFZdEFCd0FBQVVVQmlNaUppYzNIZ0V6TWpZMUVUUTJNeklXRndjdUFTTWlCaFVSQVpDM3FTVTRJUThTT1JZN1FiK3pKRWN0R1JjcEhGRlNQN2UvQ0FtL0JRaGRWZ1QzdHI4TENya0ZCbHhXK3drQUFBQUNBR1VBL1FRaUJBRUFHd0EzQUFBVFBnRXpOaFlYSGdFek1qWTNId0VPQVNNaUppY3VBUWNpQmdjbkJ6NEJNellXRng0Qk16STJOeDhCRGdFaklpWW5MZ0VISWdZSEoyOHdlVU5IU2w5UlRFUkJlUzhEQ2pGNVFrUk1VVjlLUjBKNUxnTVVNSGxEUjBwZlVVeEVRWGt2QXdveGVVSkVURkZmU2tkQ2VTNERBMjFHVEFJY0x5b2JTa1FCd1VkTEd5b3ZIQUpMUXdIdFJrd0NIQzhxRzBwRUFjRkhTeHNxTHh3Q1MwTUJBQUFBQUFFQW1BQ0JBL1lFd2dBVEFBQUJNeFVoQnlFVklRY25OeU0xSVRjaE5TRTNGd002dlA3VGZBR3AvZWgrWkZxK0FTMTgvbGNDR29Oa0E5YkszOG5qUWFMSjM4cnNRUUFBLy84QXFnQVZCQllFcndCbkFCNEFrZ0RRUUFBNW1nQUhBWVlBRFAyb0FBRC8vd0NnQUJNRUFBVERBR2NBSUFBZ0FPUkFBRG1hQUFjQmhnQUkvYVlBQUFBQ0FDUUFBQVA1QmJBQUJRQVBBQUFCTXdrQkl3RWhBeWNqQndNVEZ6TTNBYVRTQVlQK2dOUCtmZ0xaM0JRREZOZmRFd01VQmJEOUovMHBBdGNCMzBGQi9pSCtJa0JBQVAvL0FMTUF0Z0dsQlBBQUp3QVFBQm9BdGdBSEFCQUFHZ1FIQUFBQUFnQmpBbjhDUGdRNUFBTUFCd0FBQVNNUk13RWpFVE1CQUoyZEFUNmRuUUovQWJyK1JnRzZBQUVBUmY4M0FWb0JCZ0FKQUFBbEZBWUhKejRCUFFFekFWcFFSWUFtSnNtYllNTkJUajkvVUhNQUFBQUFBZ0FZQUFBRUZ3WXRBQmNBR3dBQU14RWpOVE0xTkRZek1oWVhCeTRCSXlJR0hRRXpGU01SSVNNUk03MmxwZUxUU29wZUpUOTJSM0JqMWRVQ1ovUHpBNGEwWE1mUUhoN0pGaHBmWTF5MC9Ib0VPZ0FBRmdCWi9uSUg3QVd1QUEwQUhRQXJBRHNBUVFCSEFFMEFVd0JkQUdFQVpRQnBBRzBBY1FCMUFINEFnZ0NHQUlvQWpnQ1NBSllBQUFFMEppTWlCaDBCRkJZek1qWTFCVEkyTlRRbUp6VStBVFUwSmlzQkVTY1VCaU1pSmowQk5EWXpNaFlWQlJRR0l5SW1OU01VRmpNeU5qVVJJd0VSTXhVekZTRTFNelV6RVFFUklSVWpGU1UxSVJFak5RRXpIZ0VWRkFZckFUVUJOU0VWSVRVaEZTRTFJUlVCTlNFVklUVWhGU0UxSVJVVE16SVdGUlFHS3dFRkl6VXpOU00xTXhFak5UTWxJelV6TlNNMU14RWpOVE1ETjM5b2FINSthbWg5QVNCZVp6UXRKU3B0Wjd5ZlNFRkRTVWhDUVVvRHVqWXBNelZkYUYxVGFGejV4SEhFQlNqSGIvaHRBVFhFQmV3Qk5tLzgyZ1V3TWpRemZnRk9BUmI5V3dFVi9Wd0JGQUlLQVJiOVd3RVYvVndCRkx4ZFBqZzZQRjM4OFhGeGNYRnhjUWNpYjI5dmIyOXZBa1JpZVhsaWNHUjNkMlRZVGswdVJBMEREandvVEVyOTI5aEhURXhIY0VWT1RrV2JMRFlzTDFOUlcxQUJldnRQQVR2S2NYSEsvc1VHSHdFZGRLbXBkUDdqcWZ5MkFpMG5LU3FwQTBwMGRIUjBkSFQ1T0hGeGNYRnhjUVJiSHlncEo1YjhmdnI4RmZsKy9INzYvQlg1QUFBQUFBVUFYUDNWQjljSVlnQURBQjBBSVFBbEFDa0FBQWtEQlRRMk56NEJOVFFtSXlJR0J6TStBVE15RmhVVUJnY09BUlVYSXhVekF6TVZJd016RlNNRUdBTy8vRUg4UkFRUEdTbEpYYWFXaTZVQ3l3RTZMRGM2TWl0UU9zckt5a3NFQkFJRUJBWlMvREg4TVFQUDhUWTdHeWlBVUlPVWdZazBNejQyTWswY09WWmFXNnI5VEFRS2pRUUFBQUFBQVFCTi8rOER5Z1NOQUI0QUFCc0JJUlVoQXo0Qk56WVdGUlFHSXlJbU5UY1VGak15TmpVMEppTWlCZ2Q4UndMSi9nd2RKbW83dXNyWTU4TDg4bTlkYVdObFhGbFlGQUg0QXBYRy92TVdJQUlEeDd1MXo2S25FRVpUYW1CZGF5NG9BQUFBQUFJQVRRQUFBeVVESVFBS0FBOEFBQUV6RlNNVkl6VWhKd0V6QVRNUkl3Y0NzM0p5di81akNnR213UDVnNFFNUEFTS1JrWkYwQWh6K0FRRWJHQUFBQUFBQ0FHei82d1FuQmNVQURRQWJBQUFCRUFJaklnSVpBUkFTTXpJU0VTYzBKaU1pQmhVUkZCWXpNalkxQkNmNzRlSCsvT0hoL2ZOMmRYVjFkbloxZEFJeC90NyszQUVsQVNFQlRRRWhBU2IrMnY3ZkpiYXBxYmIrYTdpcHFMa0FBQUFCLzUvK3hRTHRBMElBRHdBQUF6TWdBQkVRQWlFbk1qWTFMZ0VyQVdIMEFTQUJPdm4rL0FHWWN3R3d0dlFEUXY3Vi91VCsrLzdQdXNxcnc4RUFBQUFBQWYrdy9rc0JqZ0ROQUE4QUFDVVJGQVlqSWlZbk54NEJNekkyTlJFQmpyZXBKVGdoRGhFNUZ6eEF6ZjcwdDc4SUNjWUZCMVpWQVF3QUFBQUFBUUFZL2w4QjB3QkNBQk1BQUNVZUFSVVVCaU1pSmljM0hnRXpNalkxTkNZbkFROWxYNGxzUTF3bkl4MHZJVG91T2poQ05ZdE5aMjhaRTQ0S0RTMGpNRTB4QUFBQkFGeittZ0ZQQUxZQUF3QUFBU01STXdGUDgvUCttZ0ljQUFBQUFnQjFCTkFDOXdiY0FBMEFJUUFBQVJRR0l5SW1OVE1VRmpNeU5qVVRGQVlqSWlZaklnWVZKelEyTXpJV016STJOUUwzckpXV3E2OUVUa3hHa0Y1SU9ZRXBJQ2xvWFVrdGl5c2VMQVd3WjNsNlpqSTlQVElCRDAxcFJ6SWxHMHR1UnpFbEFBSUFkUVRWQXZZSENBQU5BQjBBQUFFVUJpTWlKalVqRkJZek1qWTFKU2MrQVRVMEppTTNNaFlWRkFZUEFRSklSMHROUjYycWw1V3Ivbk1JU1Q1TlJRZWNvVkpBQVFXd01UdzhNV1YyZG1VWmRnSVdHeDBaWUU1R05UVUhPZ0FBQUFJQWRRVFRBd0FHZmdBTkFCRUFBQUVVQmlNaUpqVXpGQll6TWpZMUp6TUhJd01BcjVhWnJiRkdUMHhIWmJhcGdBV3daWGg0WlRJK1BqTE93QUFBQUFBQ0FIa0U1d05ZQnRFQUNBQWNBQUFCQnlNbkJ5TW5KVE0zRkFZaklpWWpJZ1lWSnpRMk16SVdNekkyTlFOWUFieXpzcndCQVNhVHVsYy9NM2dsSENoYVZFRW9naVViS3dUcUE0Nk9BK3JmUDE1Q0xCc1lQMkZCTFJ3QUFBSUFkUVRuQkFvR3l3QUdBQllBQUFFakJUTTNGek12QVQ0Qk5UUW1JemN5RmhVVUJnOEJBa2E3L3VyQnNyUEJYUWRCTmtROUI0aU5TVGdCQmVINm9xS0dmUVFaSFNFZGFWZE5PejBIT3dBQUF2OU1CTm9EWEFhREFBWUFDZ0FBQVNNbkJ5TWxNd1VqQXpNRFhOV2ZuOVFCSTZIK2g1M1gzUVRham83NlhBRUxBQUFBQUFJQWVnVG5CSXNHa0FBR0FBb0FBQUV6QlNNbkJ5TUJNd01qQVoyaEFTUFVuNS9WQXpQZTJKMEY0ZnFPamdHcC92VUFBQUFDQUZzRWxRTVZCcGdBRFFBUkFBQUJGQVlqSWlZMU14UVdNekkyTlNjakp6TURGYnVpbzdxMVVGaFdVRHEvMHZzRnNJS1ptWUk3U1VrN0ZkTUFBQUFBQVFDUUJHa0JoUVlNQUFVQUFCTTNNd01WSTVCM2ZodmFCUTMvL3ZlYUFBQUNBQndBQUFTc0JJMEFCd0FLQUFBbElRY2pBVE1CSXdFaEF3TlgvaGxXL2dITStBSE0vdjRLQVZlczZla0VqZnR6QWFzQnpRQUFBQU1BamdBQUJDNEVqUUFQQUJnQUlRQUFNeEVoTWhZVkZBWUhGUjRCRlJRR0l3RVJJVEkyTlRRbUl5VXpNalkxTkNZckFZNEJyZHZyWUZweGR0elMvd0FCQUdKWldtSC9BTHRxYVdWdXV3U05ucU5VZ0NBREdvNWpwcVFCK3Y3R1MwMVBVNmhJU0U0K0FBQUFBQUVBYVAvdkJESUVuUUFiQUFBQkRnRWpJZ0E5QVRRQU16SVdGeU11QVNNaUJoMEJGQll6TWpZM0JERVArTlhiL3U0QkV0dlo5QkR6RUcxdGM0aUpjbkZvRUFHVTFORUJGT1MrNHdFVjBkSjNhNjJKdjRxdWFYd0FBQUFBQWdDT0FBQUVRZ1NOQUFrQUV3QUFNeEVoTWdBZEFSUUFJd01STXpJMlBRRTBKaU9PQWJmZUFSLys0ZDdGeFhTV2xuUUVqZjc0MXRMWC92b0R6UHowb0gzVGU2RUFBQUFBQVFDT0FBQUR6Z1NOQUFzQUFBRWhFU0VWSVJFaEZTRVJJUU40L2dnQ1R2ekFBMEQ5c2dINEFmeit4TUFFamNIKzhnQUFBQUVBamdBQUE5b0VqUUFKQUFBQklSRWpFU0VWSVJFaEE0UDkvZklEVFAybUFnTUIzdjRpQkkzQi90UUFBUUJvLys4RVh3U2RBQjhBQUNVT0FTTWlBRDBCTkFBek1oWVhJeTRCSXlJR0hRRVVGak15TmpjMUl6VWhCRjg1Nzcvdi90OEJIK25oN2hQeURuTnZmNWVZaG1KMEgrOEI0WjlJYUFFRjJmUFhBUWJDdEYxWW5uMzBnSjRmRjlTeEFBQUFBQUVBamdBQUJIb0VqUUFMQUFBaEl4RWhFU01STXhFaEVUTUVldlQ5K3ZMeUFnYjBBZGorS0FTTi9nMEI4d0FBQUFFQWpnQUFBWUFFalFBREFBQWhJeEV6QVlEeThnU05BQUVBTHYvdUE0d0VqUUFQQUFBQk14RVVCaU1pSmpVekZCWXpNalkxQXByeTZiM1A2Zk5wWEU5bEJJMzg1YlhQdWJwYldHcGFBQUFBQVFDT0FBQUVYUVNOQUF3QUFBRWpFU01STXhFekFTRUpBU0VCNjJ2eThsVUJRUUV0L21RQnR2N0xBZFgrS3dTTi9pQUI0UDNWL1o0QUFBQUFBUUNPQUFBRGVRU05BQVVBQUNVaEZTRVJNd0dBQWZuOUZmTEF3QVNOQUFBQkFJNEFBQVZ1QkkwQURnQUFDUUVoRVNNUkl3RWpBU01SSXhFaEF2NEJRQUV3OHdQKzJLWCsyQVB5QVRJQkt3TmkrM01DL3YwQ0F3SDgvd1NOQUFBQUFRQ09BQUFFaFFTTkFBc0FBQ0VqQVFjUkl4RXpBVGNSTXdTRjh2M3dBL0x5QWhBRDhnTWVBZnpqQkkzODVBRURHd0FBQUFJQVp2L3VCR1FFblFBTkFCc0FBQUVVQUNNaUFEMEJOQUF6TWdBVkp6UW1JeUlHSFFFVUZqTXlOalVFWlA3cDZPZis2QUVXNk9jQkdmT09mNENMalg5L2pRSG41ZjdzQVJUbHZ1UUJGUDdzNUFHUHA2ZVB2NUdvcUpFQUFnQm8vMzhFbEFTZEFCTUFJUUFBQVJRR0J4Y0hKdzRCSXlJQVBRRTBBRE15QUJVbk5DWWpJZ1lkQVJRV016STJOUVJtT0RhY29hRTNjMEhuL3VnQkZ1am5BUm56am4rQWpJMkFmNDBCNTJPbFFaMkNvQmtZQVJUbHZ1UUJGUDdzNUFHUHA2YVF2NUdvcUpFQUFnQ09BQUFFU1FTTkFCc0FKQUFBQVJFakVTRXlGaFVVQmdjVkhnRWRBUlFXRnhVakxnRTlBVFFtSXljek1qWTFOQ1lyQVFHQThnSE8xdXBoWUd4Y0VSWDZGUXBnWVBEY2FXUmxhTndCdmY1REJJMjJwbDZDS1FNZWpXdFdMR1lYRUJac09GUldXY0pVVDA1Y0FBQUFBQUVBVC8vdUJCa0VuUUFsQUFBQk5DWW5MZ0UxTkRZek1oWVZJelFtSXlJR0ZSUVdGeDRCRlJRRUl5SWtOVE1lQVRNeU5nTW5iSlBseWZMVjJ1L3lhbTF1WjJTajI4di9BTi9kL3ZMeUFZbHZkM1lCT3o1TklUU1dvSmEydjY5UlhFdytRVWdrTTV1YW5yRzR1VjlTVFFBQkFEd0FBQVBwQkkwQUJ3QUFBU0VSSXhFaE5TRUQ2ZjZnOC82bUE2MER6UHcwQTh6QkFBQUFBUUIrLys0RWV3U05BQkVBQUFFUkZBUWpJaVExRVRNUkZCWXpNalkxRVFSNy91dnA2ZjdxOG81L2Y0MEVqZjBLek4zZHpBTDIvUXB5ZDNkeUF2WUFBQUVBSEFBQUJJc0VqUUFKQUFBQkZ6TTNBU0VCSXdFaEFrQVJBeEVCSlFFQi9rUDMva1VCQVFFMVIwUURXL3R6QkkwQUFBQUJBRFFBQUFYWEJJMEFEd0FBQVRNVElRRWpBeU1ESXdFaEV6TVRNd1E0QTVzQkFmN2o1ODBEek9mKzVBRUFuQVBLMGdGWkF6VDdjd01NL1BRRWpmekpBemNBQUFFQUxBQUFCRkVFalFBTEFBQUJFeUVKQVNFTEFTRUpBU0VDUFBFQkcvNktBWC8rNS9uNC91VUJnUDZKQVJrQytBR1YvYi85dEFHZC9tTUNUQUpCQUFBQkFCTUFBQVE4QkkwQUNBQUFDUUVoQVJFakVRRWhBaWdCQ1FFTC9tTHovbWdCQ3dKdkFoNzlDdjVwQWFJQzZ3QUJBRW9BQUFQckJJMEFDUUFBSlNFVklUVUJJVFVoRlFGK0FtMzhYd0paL2NnRGNNREFlZ05Td1hVQUFBSUFiZi92QkJNRW5RQU5BQnNBQUFFVUJpTWlKalVSTkRZek1oWVZKelFtSXlJR0ZSRVVGak15TmpVRUUvM1Yxdjc4MXRYLzgzZHFhWFozYW1sMkFadkk1T1RJQVZmSDVPVEhBV3g5Zm12K3FHNStmVzhBQUFBQkFENEFBQUh6QkowQUJRQUFJU01SSXpVbEFmUHp3Z0cxQTZlNlBBQUFBQUVBVWdBQUE1SUVuUUFZQUFBcEFUVUJQZ0UxTkNZaklnWVZJelEyTXpJV0ZSUUdEd0VoQTVMODBRR2VWa05NVGxwaDgrYkl2YzZEbnRNQis4QUJnMUZyT0VaZlpFNmowTG10ZUt1Tnh3QUFBUUJOLys4RHV3U2RBQ2dBQUFFeU5qVTBKaU1pQmhVak5EWXpNaFlWRkFZSEhnRVZGQVlqSWlZMU14UVdNekkyTlRRbUt3RTFBZ1pjVkZ4YVRtTHk2TFBMNUY1V1ltWDJ6TFA1OFdwWVhXdGZZN2tDcTA5TFFGZE1QcG15cWFOU2dpY2poMldsczZ5dFFWaGRSVnBQc1FBQUFBQUNBRGtBQUFRWUJJMEFDZ0FQQUFBQk14VWpGU00xSVNjQk13RWhFU2NIQTNHbnAvTDl4UXNDUS9YOXlRRkZBd0lCbThQWTJKOERGdjBPQWJvQkJBQUFBUUJSQUFBRU5BWEZBQmdBQUNrQk5RRStBVFUwSmlNaUJoVWpOQUF6TWhZVkZBWUhBU0VFTlB3NUFkcDJWbkJqZ25yekFRWHExdkNLbC82M0FwaW5BZ1dDbjA5a2dvMkJ5Z0VINUwrQTNxYitwQUFBQWdCdC8rOEQ4QVNkQUJvQUp3QUFBVElXRndjdUFTTWlCaDBCUGdFek1oWVZGQVlqSWlZMUVUUWtFeUlHQnhVVUZqTXlOalUwSmdKY1NvdERKemx0U0hLTk1vZFZ2Y1gxek1YOUFSZXhUMnNiZVY1YmEyQUVuUm9ZdWhjVWkzVldNVFRDc3JMVytNb0JLYzcxL1pJeUxoNXdrbTVVVzJNQUFRQThBQUFEWmdTTkFBd0FBQUVHQWhFVkl6VVFFamNoTlNFRFpyaVc4K09FL2JBREtnUE01ZjdlL3ZTNXVRRUhBWXFDd1FBQUFBQURBRkwvN3dQbkJKMEFGd0FqQUM4QUFBRVVCZ2NlQVJVVUJpTWlKRFUwTmpjdUFUVTBOak15RmdNMEppTWlCaFVVRmpNeU5nTTBKaU1pQmhVVUZqTXlOZ1BFWkZscGQvM0Z6Zjc2ZW0xZVp2Qy90K25RZVZkZ2YzOWhXSGNqWkVsU2EyMVJTV01EWEZlQ0p5bU1YNlcwdEtWZmpDa25nVmljcGFYOVhVbGNYRWxMVzFzQ1JFQk9URUpCVVZFQUFBQUNBRC8vN3dPMUJKMEFHZ0FuQUFBbE1qWTlBUTRCSXlJbU5UUTJNeklXRlJFVUJDTWlKaWMzSGdFVE1qWTNOVFFtSXlJR0ZSUVdBZUZpZnkxeFFzamI5OG5BOXY3OXlraWFSeVkrYzJKS1pSdDBXbGxxWmE5L1lWb3FLczIwcWQ3NXl2NjJ1K1lhR0xnWEV3R1VOQ3BBYlk1N1VGdHpBQUFCQUZjQUFBR1dBeXdBQlFBQUlTTVJJelVsQVpiQWZ3RS9BbitXRndBQUFBRUFhd0FBQXRVRExBQVlBQUFwQVRVQlBnRTFOQ1lqSWdZVkl6UTJNeklXRlJRR0R3RWhBdFg5b1FFeFFpWXlOejQvdnFxVWpwaGZlb2dCWjVFQkFEZEVLaTAzT3pGdGtZQjNVM0pyZEFBQUFRQmcvL1VDNndNc0FDZ0FBQUV5TmpVMEppTWlCaFVqTkRZek1oWVZGQVlISGdFVkZBWWpJaVkxTXhRV016STJOVFFtS3dFMUFhRkNQRUEvTmo2L3E0V1lxVVkrUjBxeG1JcTR2MFErUWtwRlIzc0IyVFF4S0RRc0ltaDRkWEE0V1JvWVhrVnllbmgzTERJekxqazJnd0FBQUFBQkFEZ0FBQUpHQmJBQUJRQUFJU01SSVRVbEFrYnovdVVDRGdTZ3Btb0FBQUVBYVAvMUF3RURJUUFlQUFBYkFTRVZJUWMrQVRjMkZoVVVCaU1pSmpVM0ZCWXpNalkxTkNZaklnWUhpVFFDRlA2VkZSeE1MSWVWb2F5UnU3NU5RVXBFUmowK1B3OEJXZ0hIa3FvUkZnRUNpNENBajI5MERDMHhQancvU1I0WkFBSUFjUC8xQXdvRExBQWFBQ2NBQUFFeUZoY0hMZ0VqSWdZZEFUNEJNeklXRlJRR0l5SW1QUUUwTmhNaUJnY1ZGQll6TWpZMU5DWUI0RGRuTGlBcFR6SlJZaVZpUDRpTnRwZVR1czZETmtvU1VrQkNTVVFETEJJUmpROFBXRTB6SUNLSGVYdVVxbzNJajZuK1N4OGNFRXRiUVRjNlB3QUFBQUVBVWdBQUFxUURJUUFNQUFBQkRnRWRBU00xTkJJM0lUVWhBcVNIYUwrYVdmNXBBbElDajZDN3RYOS90QUVMVVpJQUFBQURBR2ovOVFNT0F5d0FGd0FqQUM4QUFBRVVCZ2NlQVJVVUJpTWlKalUwTmpjdUFUVTBOak15RmdNMEppTWlCaFVVRmpNeU5nTTBKaU1pQmhVVUZqTXlOZ0wyU1VCTFZycVNtTUpZVDBSTHM0NklyYVpUUEVOWVdFUTlVUnBETWpsSVNqZ3hRd0pRTzFvYkhXRkFjbnQ3Y2tCaEhSdGFPMnR4Y2Y0d01EczdNQzgyTmdHSUtDNHRLU295TWdBQUFBQUNBR0QvOVFMd0F5d0FHZ0FuQUFBbE1qWTlBUTRCSXlJbU5UUTJNeklXSFFFVUJpTWlKaWMzSGdFVE1qWTNOVFFtSXlJR0ZSUVdBWlZFV0NCUkxaT2dzNUtSdXNPWU5XNDBJQ3RUU3pWR0QxRStQVWRGaGs1QU95QWZrSDkxbUsyTTNvS2VFUkdPRVE0QkVTVWVHVXBkU3pVN1NBQUFBQUFDQUhELzlRTWtBeXdBRFFBYkFBQUJGQVlqSWlZOUFUUTJNeklXRlNjMEppTWlCaDBCRkJZek1qWTFBeVM3bjUrN3VwK2V2YjlTU2twUVVFdEpVZ0Vua0tLaWtOR1BwYVdQQWt0VlZVdlRUbE5UVGdBQkFKY0Nod01tQXpFQUF3QUFBU0UxSVFNbS9YRUNqd0tIcWdBQUF3Q1dCRWdDbmdhVkFBUUFFQUFjQUFBQk14Y0hJd2MwTmpNeUZoVVVCaU1pSmpjVUZqTXlOalUwSmlNaUJnRzg0UUh4bFlKclVVNXFhVTlSYTJNekppUXdNQ1FtTXdhVkE3L2VUV1ZrVGsxZ1lFMG1NREFtSnpNekFBQUNBR3dFYndMTUJkY0FCUUFQQUFBQkV6TVZBeU1sTkRZM0Z3NEJIUUVqQVlwdjArWmMvdUpiVlZBcUpiRUVoUUZBRmY3QlZscUtMRWdwWVVSU0FBQUFBUUJQLytzRUZnWEZBQ2dBQUFFek1qWTFOQ1lqSWdZVkl6UWtNeklXRlJRR0J4NEJGUlFFSXlJa05UTVVGak15TmpVMEppc0JBWWFwZVdWdWIyVjc4d0VDenRuNmIyeC9jdjd4MnM3KzhQT0Fibk9BZFgrcEEwWnpiV3R4YjE2djRkVExYNnN4TGJCMnpPSFV4Mk4yZUhKK2NnQUNBRGdBQUFSWkJiQUFDZ0FQQUFBQk14VWpFU01SSVNjQk13RWhFU2NIQTZHNHVQTDlqd1lDYi9yOWh3R0hBeGNDQjhUK3ZRRkRsUVBZL0ZjQ1ZnRXhBQUFBQUFFQWdmL3JCQ1lGc0FBZUFBQWJBU0VWSVFNK0FUYzJFaFVVQWlNaUpEVTNGQll6TWpZMU5DWWpJZ1lIbkZRREFmM0pMQ3h2U05IazhPdkUvdnJyZW1WemRYaHpabDRYQW9zREpkTCtreUFwQWdQKy9PcmEvdlRSeVFoc2RKMkZocU0vUHdBQ0FIVC82d1JHQmNVQUdnQW5BQUFCTWhZWEJ5NEJJeUlHSFFFK0FUTXlFaFVVQWlNaUFCa0JFQUFUSWdZSEZSUVdNekkyTlRRbUFxaFFqVG91T1dkSWxLODluV0RIMy8vWTR2N25BVHkwWFg0amtuZHRkMzRGeFNBY3ZCZ2IzY01IT0R2Kzg5ZmsvdWNCTWdFZUFSWUJJZ0ZTL1VwQU9XaTl4TE9JaGFJQUFBTUFDdjVLQkJzRVRnQXZBRDhBVFFBQUFTTWVBUjBCRkFZaklpWW5EZ0VWRkJZN0FUSVdGUlFFSXlJbU5UUTJOeTRCTlRRMk55NEJQUUUwTmpNeUZoY2hBU0ltSnc0QkZSUVdNekkyTlRRbUl3RVVGak15TmowQk5DWWpJZ1lWQkJ1S0hCNzN5aXBKSXhJVFFqMnh4YzMrMXZuby9HTlRHUmsvTmx4aTlzMHJUaWNCY2YyR0dDb1VKeTU5ZlpDaVVHWCt6SE5nWFhKelhsOXlBNkFxWHpVV25jOElDaEVvR1NzaWxKV0YyNTUyV1h3cEZ6d25RMThtTVp4aEZxUEpDZ3I3M2dNRUZVWXdQbEZpUERvN0FyUkphR2hKRmt0bFpVc0FBQUFCQURJQUFBUDNCYkFBREFBQUFRb0JBd2NqTnhvQk55RTFJUVAzK0tRbkQvTVBKOXpIL1NjRHhRVHQvdFArTlA2bW1wb0JVZ0lPODhNQUFBQUJBRDcrVFFSRUJFb0FJd0FBRXpJV0h3RVRNd0VUSGdFWE9nRTNCdzRCSnk0Qkx3RURJd0VETGdFaklnWUhKejRCd1l4elBWdmg5ZjZmeFJvOUt4QVJEd2NUTmhkeGVUOWwrUGdCZktjY1dUd01LQThDSDBJRVNvcUd6Z0hPL1NqK1FUMUVCUUxHQmdZQkJaU1Q1djRBQXd3QmdFVlJCQUc2Q0FzQUF3QmgvK3NFS2dYRkFCY0FJd0F2QUFBQkZBWUhIZ0VWRkFRaklpUTFORFkzTGdFMU5EWXpNaFlETkNZaklnWVZGQll6TWpZRE5DWWpJZ1lWRkJZek1qWUVCWFZxZW9yKytkemYvdm1JZkdwMDhjM0w5YzJIYkc2RGduRnRoQ1p3WFY5c2JXQmRiZ1F3Y2FZdUw3VjZ6OVBUejN1ME1DMm1jY2JQei95amJZU0RibkI4ZlFMOVlubDFabVYxZFFBQUFnQlcvK3NFWHdST0FCUUFJZ0FBSlNjT0FTTWlBajBCRUJJek1oWVhQd0V6QXhNakFSUVdNekkyTnpVdUFTTWlCaFVEWkFNMnFuN08zOTdSZXFjM0F4dmRiSFBkL2NkeGYyMXZGeEZ6Ylg5enZ3RnBiQUVkOFJVQkNBRTRiR2NCdnYzaS9lUUIrWm16dDVvdm04UFJyQUFBQUFBQ0FGUC82d1EwQmJBQUdnQXJBQUFCRlNFZUFSY1dFaDBCRkFBaklnQTlBVFFTTnpJMk15NEJKelVURkJZek1qWTlBVFFtSnk0Qkl5SUdGUVBEL2xRYVp6cXZzLzc4N096KysrYkhDUXdNZ1pJM2IzcUVnbnhnU0JNakZZbUFCYkRCRzFndWwvNzdueFh3L3QwQkhlZ1Z3d0VISEFGMGlEK0ovRTZadUxtWUZXNnBNQVFFdXBVQUFnQ2ZBQUFFeUFXd0FBa0FFd0FBTXhFaElBQVJGUkFBSVFNUk16STJQUUUwSmlPZkFaNEJVd0U0L3NqK3JhdWs1N2k0NXdXdy90SCt6L0grei83U0JPMzcxY1hZODlYR0FBQUFBQUlBWVAvckEvNEVUZ0FmQUNvQUFDRXVBU2NPQVNNaUpqVTBOanNCTlRRbUl5SUdGU00wTmpNeUZoVVJGQllYSlRJMk56VWpJZ1lWRkJZRENBa01BemVmWXF5czgrcXJYMlZqV2ZQZDRkSFhEeFQ5OGxTRElhOTZiVWNkTlJ3NlNhS2lxcVI2VkVaTVE1UzRvTG4rQkVaNE82NDdLOUZkVlVKREFBQUNBSjhBQUFUK0JiQUFEZ0FYQUFBQkZBWUhBUlVoQVNFUkl4RWhNZ1FCSVRJMk5UUW1JeUVFcW45M0FVcis5ZjdkL3NMekFnMzRBUWI4NkFFYmhvU0NpZjdtQkFhR3dEWDlpQk1DUy8yMUJiRGEvamg3ZFhCL0FBQUFBQUVBbndBQUJTOEZzQUFNQUFBQkJ4RWpFVE1STndFaENRRWhBaWVWOC9PU0Fhc0JJUDNlQW1MK3pBS0FwZjRsQmJEOVg2c0I5djJKL01jQUFBRUFnUUFBQkR3R0dBQU5BQUFCQnhFakVUTVJGemNCSVFrQklRSGdiZkx5QTFBQkxRRWUvbTBCdnY3bUFjOXovcVFHR1B4eEFXRUJVZjVBL1lZQUFBQUJBSjhBQUFVUkJiQUFDd0FBQVJFakVUTVJNd0VoQ1FFaEFaTHo4d2NDSmdFdC9ac0NpdjdUQXAvOVlRV3cvWDhDZ2YwMi9Sb0FBQUVBZ1FBQUJDSUdHQUFNQUFBQkJ4RWpFVE1SRndFaENRRWhBWFlEOHZJREFWWUJLdjVRQWR6KzJ3SG5BZjRhQmhqOGlBRUJtLzRNL2JvQUFBSUFVdi9yQkJjRnhRQWJBQ2dBQUNVeU5qMEJKdzRCSXlJQ05UUUFNeklBR1FFUUFDTWlKaWMzSGdFVE1qWTNOVFFtSXlJR0ZSUVdBZ09GblFNd2lsWFY3QUVLeStjQkNmN2M4RXllUkNCQWZYaGRmU0dBZW1TQ2RxMjl2U01CUVVJQkJQSG1BU0wrM1A3ay9xdis1djdWSGg2NEd4Y0IyRVk3bkxHdnQ0NlNwZ0FBQUFJQWpnQUFCRUFFalFBS0FCTUFBQUVSSXhFaE1oWVZGQVlqSnpNeU5qVTBKaXNCQVlEeUFlUFk5L2ZZOGZGc2NIQnM4UUdHL25vRWpkYXVyOVRDYmxGVGNnRC8vd0IxQkpVQyt3V3dBZ1lBbkFBQS8vOEFBQUFBQUFBQUFBSUdBQU1BQVAvL0FFY0NDUUpVQXMwQ0JnQVBBQUFBQWdBa0FBQUZEQVd3QUEwQUd3QUFNeEVqTlRNUklTQUFFUlVRQUNFVElSRXpNalk5QVRRbUt3RVJJYjJabVFIS0FTb0JXLzZpL3N3NS92M0QyYzNLejlBQkF3S1JxZ0oxL3FiKzRzSCs0UDZwQXBIK01lckx3ODNtL2s0QUFBQUFBZ0FrQUFBRkRBV3dBQTBBR3dBQU14RWpOVE1SSVNBQUVSVVFBQ0VUSVJFek1qWTlBVFFtS3dFUkliMlptUUhLQVNvQlcvNmkvc3c1L3YzRDJjM0t6OUFCQXdLUnFnSjEvcWIrNHNIKzRQNnBBcEgrTWVyTHc4M20vazRBQUFBQUFmLzlBQUFFS2dZWUFCd0FBQUVqRVJjK0FUTXlGaFVSSXhFMEppTWlCZ2NSSXhFak5UTTFNeFV6QW96K0F6V1hZTEM5ODJSb1NXNG04NTZlOC80RXgvN3NBVXRSMU9mOWJRS1ZnbkE2TmZ6b0JNZXFwNmNBQUFFQU5RQUFCTFVGc0FBUEFBQUJJeEVqRVNNMU14RWhOU0VWSVJFekE3M1A4ODNOL2pvRWdQNDV6d01TL080REVxb0JNY1BEL3M4QUFmL24vK3dDZGdWQkFCOEFBQUVSTXhVakZUTVZJeEVVRmpNeU5qY1hEZ0VqSWlZMUVTTTFNelVqTlRNUkFhSER3OVhWTVNzWkxCUWFJVjR4ZzQvSHg1V1ZCVUgrK2JTbHF2NzVSVFlIQnJJUUZKbXJBUWVxcGJRQkIvLy9BQm9BQUFVb0J5SUNKZ0FqQUFBQUJ3QkNBUHdCWFAvL0FCb0FBQVVvQnlFQ0pnQWpBQUFBQndCekFiTUJXLy8vQUJvQUFBVW9CMGNDSmdBakFBQUFCd0NhQUxjQldmLy9BQm9BQUFVb0IyTUNKZ0FqQUFBQUJ3Q2dBTGtCYlAvL0FCb0FBQVVvQncwQ0pnQWpBQUFBQndCb0FKTUJYZi8vQUJvQUFBVW9CNDhDSmdBakFBQUFCd0NlQVV3QnMvLy9BQm9BQUFVb0I3MENKZ0FqQUFBQUJ3SFVBVklCS1AvL0FIVCtQQVRZQmNVQ0pnQWxBQUFBQndCM0FjYi8rLy8vQUo4QUFBUjFCeUlDSmdBbkFBQUFCd0JDQU1RQlhQLy9BSjhBQUFSMUJ5RUNKZ0FuQUFBQUJ3QnpBWHNCVy8vL0FKOEFBQVIxQjBjQ0pnQW5BQUFBQndDYUFIOEJXZi8vQUo4QUFBUjFCdzBDSmdBbkFBQUFCd0JvQUZzQlhmLy8vOHdBQUFHZ0J5SUNKZ0FyQUFBQUJ3QkMvNElCWFAvL0FLMEFBQUtFQnlFQ0pnQXJBQUFBQndCekFEZ0JXLy8vLzlnQUFBSjVCMGNDSmdBckFBQUFCd0NhL3owQldmLy8vNzBBQUFLU0J3MENKZ0FyQUFBQUJ3Qm8veGtCWGYvL0FKOEFBQVVRQjJNQ0pnQXdBQUFBQndDZ0FPNEJiUC8vQUhULzZ3VWJCemNDSmdBeEFBQUFCd0JDQVNNQmNmLy9BSFQvNndVYkJ6WUNKZ0F4QUFBQUJ3QnpBZG9CY1AvL0FIVC82d1ViQjF3Q0pnQXhBQUFBQndDYUFONEJidi8vQUhULzZ3VWJCM2dDSmdBeEFBQUFCd0NnQU9BQmdmLy9BSFQvNndVYkJ5SUNKZ0F4QUFBQUJ3Qm9BTG9CY3YvL0FJYi82d1R4QnlJQ0pnQTNBQUFBQndCQ0FSY0JYUC8vQUliLzZ3VHhCeUVDSmdBM0FBQUFCd0J6QWM0QlcvLy9BSWIvNndUeEIwY0NKZ0EzQUFBQUJ3Q2FBTklCV2YvL0FJYi82d1R4QncwQ0pnQTNBQUFBQndCb0FLNEJYZi8vQUJNQUFBVHZCeUVDSmdBN0FBQUFCd0J6QVpZQlcvLy9BRjcvN0FRQkJlQUNKZ0JEQUFBQUJ3QkNBSUVBR3YvL0FGNy83QVFCQmQ4Q0pnQkRBQUFBQndCekFUZ0FHZi8vQUY3LzdBUUJCZ1VDSmdCREFBQUFCZ0NhUEJjQUFQLy9BRjcvN0FRQkJpRUNKZ0JEQUFBQUJnQ2dQaW9BQVAvL0FGNy83QVFCQmNzQ0pnQkRBQUFBQmdCb0dCc0FBUC8vQUY3LzdBUUJCazBDSmdCREFBQUFCd0NlQU5FQWNmLy9BRjcvN0FRQkJud0NKZ0JEQUFBQUJ3SFVBTmYvNS8vL0FGSCtQQVAzQkU0Q0pnQkZBQUFBQndCM0FUNy8rLy8vQUZuLzdBUDRCZUVDSmdCSEFBQUFCd0JDQUlNQUcvLy9BRm4vN0FQNEJlQUNKZ0JIQUFBQUJ3QnpBVG9BR3YvL0FGbi83QVA0QmdZQ0pnQkhBQUFBQmdDYVBoZ0FBUC8vQUZuLzdBUDRCY3dDSmdCSEFBQUFCZ0JvR2h3QUFQLy8vNjhBQUFHQ0Jjc0NKZ0NLQUFBQUJ3QkMvMlVBQmYvL0FJOEFBQUpuQmNvQ0pnQ0tBQUFBQmdCekd3UUFBUC8vLzdzQUFBSmNCZkFDSmdDS0FBQUFCd0NhL3lBQUF2Ly8vNkFBQUFKMUJiWUNKZ0NLQUFBQUJ3Qm8vdndBQnYvL0FINEFBQVFMQmlFQ0pnQlFBQUFBQmdDZ1dTb0FBUC8vQUZQLzdBUTBCZUFDSmdCUkFBQUFCd0JDQUo0QUd2Ly9BRlAvN0FRMEJkOENKZ0JSQUFBQUJ3QnpBVlVBR2YvL0FGUC83QVEwQmdVQ0pnQlJBQUFBQmdDYVdSY0FBUC8vQUZQLzdBUTBCaUVDSmdCUkFBQUFCZ0NnV3lvQUFQLy9BRlAvN0FRMEJjc0NKZ0JSQUFBQUJnQm9OUnNBQVAvL0FIdi83QVFLQmNzQ0pnQlhBQUFBQndCQ0FKMEFCZi8vQUh2LzdBUUtCY29DSmdCWEFBQUFCd0J6QVZRQUJQLy9BSHYvN0FRS0JmQUNKZ0JYQUFBQUJnQ2FXQUlBQVAvL0FIdi83QVFLQmJZQ0pnQlhBQUFBQmdCb05BWUFBUC8vQUJEK1N3UDhCY29DSmdCYkFBQUFCd0J6QVJnQUJQLy9BQkQrU3dQOEJiWUNKZ0JiQUFBQUJnQm8rUVlBQVAvL0FCb0FBQVVvQnZZQ0pnQWpBQUFBQndCdUFMSUJSdi8vQUY3LzdBUUJCYlFDSmdCREFBQUFCZ0J1TndRQUFQLy9BQm9BQUFVb0Ixd0NKZ0FqQUFBQUJ3Q2NBT29CclAvL0FGNy83QVFCQmhvQ0pnQkRBQUFBQmdDY2Iyb0FBQUFDQUJyK1VnVW9CYkFBR2dBZUFBQUpBU01PQVJVVUZqTXlOamNYRGdFaklpWTFORFkzQXlFREl3RURJUU1qQXhnQ0VFUlFVU0FuR2lvV0ZTRk5OMTUxVVZseC9jOTQ5d0lYWlFHczFBTUZzUHBRTTF3NElTTU5DbzRUR1dsZ1JubzFBVXorcEFXdy9HOENhd0FDQUY3K1VnUUJCRTRBTXdBK0FBQWhMZ0VuRGdFaklpWTFORFk3QVRVMEppTWlCaFVqTkRZek1oWVZFUlFXRnlNT0FSVVVGak15TmpjWERnRWpJaVkxTkRZM0pUSTJOelVqSWdZVkZCWURDd3NQQkRlY1lxZXo5T1d4WkdCWVpQUDF5Y0huRVJVaVVGRWdKeG9xRmhVaFRUZGVkVVZNL3VCVWhTSzFiWFZPSWtRa1JsaXJtcUNzWDFaZlQwQ0l4TDIzL2g5RmVEd3pYRGdoSXcwS2poTVphV0JCY1RPdlNEYTRaMGsvUndBQS8vOEFkUC9yQk5nSE5nSW1BQ1VBQUFBSEFITUJ2d0Z3Ly84QVVmL3NBL2NGM3dJbUFFVUFBQUFIQUhNQktBQVovLzhBZFAvckJOZ0hYQUltQUNVQUFBQUhBSm9Bd3dGdS8vOEFVZi9zQS9jR0JRSW1BRVVBQUFBR0FKb3NGd0FBLy84QWRQL3JCTmdITmdJbUFDVUFBQUFIQUowQmtBR0EvLzhBVWYvc0EvY0Yzd0ltQUVVQUFBQUhBSjBBK1FBcC8vOEFkUC9yQk5nSFl3SW1BQ1VBQUFBSEFKc0EyZ0Z5Ly84QVVmL3NBL2NHREFJbUFFVUFBQUFHQUp0REd3QUEvLzhBbndBQUJPNEhUZ0ltQUNZQUFBQUhBSnNBalFGZC8vOEFVLy9zQlZjR0dBQW1BRVlBQUFBSEFaRUQvUVVTLy84QW53QUFCSFVHOWdJbUFDY0FBQUFIQUc0QWVnRkcvLzhBV2Yvc0EvZ0Z0UUltQUVjQUFBQUdBRzQ1QlFBQS8vOEFud0FBQkhVSFhBSW1BQ2NBQUFBSEFKd0FzZ0dzLy84QVdmL3NBL2dHR3dJbUFFY0FBQUFHQUp4eGF3QUEvLzhBbndBQUJIVUhJUUltQUNjQUFBQUhBSjBCVEFGci8vOEFXZi9zQS9nRjRBSW1BRWNBQUFBSEFKMEJDd0FxQUFFQW4vNVNCSFVGc0FBZ0FBQUJJUkVoRlNNT0FSVVVGak15TmpjWERnRWpJaVkxTkRZM0p5RVJJUlVoRVNFRUQvMkRBdU5BVUZFZ0p4b3FGaFVoVFRkZWRVUkpBZjFCQTgvOUpBSjlBby8rTThJelhEZ2hJdzBLamhNWmFXQkFjVEVEQmJERC9tVUFBZ0JaL21BRCtBUlBBQ2tBTVFBQUpRNEJCek1PQVJVVUZqTXlOamNYRGdFaklpWTFORFkzSmdBOUFUUUFGeklTSFFFaEhnRXpNalkzQVNJR0J5RTFOQ1lEMVI1T01nRlFVU0FuR2lvV0ZTRk5OMTUxTURYaC93QUJDOURnNVAxV0NvbCtaSWxDL3FaYmRCSUJ0R2RrR2l3UU0xdzRJU01OQ280VEdXbGdObUV0Q0FFazZ5anhBVElCL3Z2amo0ZWlMeTBDZ1kxMUdXbUFBQUQvL3dDZkFBQUVkUWRPQWlZQUp3QUFBQWNBbXdDV0FWMy8vd0JaLyt3RCtBWU5BaVlBUndBQUFBWUFtMVVjQUFELy93QjAvK3NFNGdkY0FpWUFLUUFBQUFjQW1nQzZBVzcvL3dCVS9rd0VDQVlGQWlZQVNRQUFBQVlBbWtZWEFBRC8vd0IwLytzRTRnZHhBaVlBS1FBQUFBY0FuQUR0QWNILy93QlUva3dFQ0FZYUFpWUFTUUFBQUFZQW5IbHFBQUQvL3dCMC8rc0U0Z2MyQWlZQUtRQUFBQWNBblFHSEFZRC8vd0JVL2t3RUNBWGZBaVlBU1FBQUFBY0FuUUVUQUNuLy93QjAvZUlFNGdYRkFpWUFLUUFBQUFjQmtRRzIvcXYvL3dCVS9rd0VDQWFLQWlZQVNRQUFBQWNCcFFFdEFINy8vd0NmQUFBRkVBZEhBaVlBS2dBQUFBY0FtZ0RvQVZuLy93QjlBQUFFREFkaUFpWUFTZ0FBQUFjQW1nQWJBWFQvLy8rL0FBQUNrQWRqQWlZQUt3QUFBQWNBb1A4L0FXei8vLytpQUFBQ2N3WU1BaVlBaWdBQUFBY0FvUDhpQUJYLy8vKy9BQUFDbGdiMkFpWUFLd0FBQUFjQWJ2ODRBVWIvLy8raUFBQUNlUVdnQWlZQWlnQUFBQWNBYnY4Yi8vRC8vLy9sQUFBQ2F3ZGNBaVlBS3dBQUFBY0FuUDl3QWF6Ly8vL0lBQUFDVGdZRkFpWUFpZ0FBQUFjQW5QOVRBRlgvL3dBYy9sd0JvQVd3QWlZQUt3QUFBQVlBbi9NS0FBRC8vLy8rL2xJQmd3WVlBaVlBU3dBQUFBWUFuOVVBQUFELy93Q2pBQUFCcGdjaEFpWUFLd0FBQUFjQW5RQUpBV3YvL3dDdC8rc0dNd1d3QUNZQUt3QUFBQWNBTEFKTkFBRC8vd0NRL2tzRG9RWVlBQ1lBU3dBQUFBY0FUQUlUQUFELy93QTYvK3NFc2djL0FpWUFMQUFBQUFjQW1nRjJBVkgvLy8rMS9rc0NaQVhqQWlZQW1BQUFBQWNBbXY4by8vWC8vd0NmL2ZBRkx3V3dBaVlBTFFBQUFBY0JrUUdLL3JuLy93Q0IvZklFTlFZWUFpWUFUUUFBQUFjQmtRRXYvcnYvL3dDZkFBQUVMd2I0QWlZQUxnQUFBQWNBY3dBcUFUTC8vd0NRQUFBQ1p3ZGZBaVlBVGdBQUFBY0Fjd0FiQVpuLy93Q2YvZklFTHdXd0FpWUFMZ0FBQUFjQmtRRjEvcnYvL3dCWS9mSUJnd1lZQWlZQVRnQUFBQWNCa1FBVC9ydi8vd0NmQUFBRUx3V3lBaVlBTGdBQUFBY0JrUUlFQkt6Ly93Q1FBQUFDNkFZWUFDWUFUZ0FBQUFjQmtRR09CUkwvL3dDZkFBQUVMd1d3QWlZQUxnQUFBQWNBblFHNy9kVC8vd0NRQUFBQzl3WVlBQ1lBVGdBQUFBY0FuUUZhL2EvLy93Q2ZBQUFGRUFjaEFpWUFNQUFBQUFjQWN3SG9BVnYvL3dCK0FBQUVDd1hmQWlZQVVBQUFBQWNBY3dGVEFCbi8vd0NmL2ZJRkVBV3dBaVlBTUFBQUFBY0JrUUhnL3J2Ly93QisvZklFQ3dST0FpWUFVQUFBQUFjQmtRRkwvcnYvL3dDZkFBQUZFQWRPQWlZQU1BQUFBQWNBbXdFREFWMy8vd0IrQUFBRUN3WU1BaVlBVUFBQUFBWUFtMjRiQUFELy8vL1ZBQUFFQ3dZWUFpWUFVQUFBQUFjQmtmK1FCUkwvL3dCMC8rc0ZHd2NMQWlZQU1RQUFBQWNBYmdEWkFWdi8vd0JULyt3RU5BVzBBaVlBVVFBQUFBWUFibFFFQUFELy93QjAvK3NGR3dkeEFpWUFNUUFBQUFjQW5BRVJBY0gvL3dCVC8rd0VOQVlhQWlZQVVRQUFBQWNBbkFDTUFHci8vd0IwLytzRkd3ZGdBaVlBTVFBQUFBY0FvUUZEQVhMLy93QlQvK3dFV1FZSkFpWUFVUUFBQUFjQW9RQytBQnYvL3dDZkFBQUU4QWNoQWlZQU5BQUFBQWNBY3dHREFWdi8vd0NBQUFBQytnWGZBaVlBVkFBQUFBY0Fjd0N1QUJuLy93Q2YvZklFOEFXd0FpWUFOQUFBQUFjQmtRRjcvcnYvL3dCVy9mSUN3d1JPQWlZQVZBQUFBQWNCa1FBUi9ydi8vd0NmQUFBRThBZE9BaVlBTkFBQUFBY0Ftd0NlQVYzLy93QkRBQUFDOXdZTUFpWUFWQUFBQUFZQW04b2JBQUQvL3dCVC8rc0VvQWMyQWlZQU5RQUFBQWNBY3dHQkFYRC8vd0JSLyt3RHp3WGZBaVlBVlFBQUFBY0Fjd0VpQUJuLy93QlQvK3NFb0FkY0FpWUFOUUFBQUFjQW1nQ0ZBVzcvL3dCUi8rd0R6d1lGQWlZQVZRQUFBQVlBbWlZWEFBRC8vd0JUL2pnRW9BWEZBaVlBTlFBQUFBY0Fkd0dXLy9mLy93QlIvamdEendST0FpWUFWUUFBQUFjQWR3RXYvL2YvL3dCVC9kNEVvQVhGQWlZQU5RQUFBQWNCa1FHQi9xZi8vd0JSL2Q0RHp3Uk9BaVlBVlFBQUFBY0JrUUVhL3FmLy93QlQvK3NFb0FkakFpWUFOUUFBQUFjQW13Q2NBWEwvL3dCUi8rd0R6d1lNQWlZQVZRQUFBQVlBbXowYkFBRC8vd0ExL2ZJRXRRV3dBaVlBTmdBQUFBY0JrUUdCL3J2Ly93QVovZWdDY0FWQkFpWUFWZ0FBQUFjQmtRQzUvckgvL3dBMS9rc0V0UVd3QWlZQU5nQUFBQWNBZHdHV0FBci8vd0FaL2tFQ2x3VkJBaVlBVmdBQUFBY0Fkd0RPQUFELy93QTFBQUFFdFFkT0FpWUFOZ0FBQUFjQW13Q2tBVjMvL3dBWi8rd0RMd1kyQUNZQVZnQUFBQWNCa1FIVkJURC8vd0NHLytzRThRZGpBaVlBTndBQUFBY0FvQURVQVd6Ly93QjcvK3dFQ2dZTUFpWUFWd0FBQUFZQW9Gb1ZBQUQvL3dDRy8rc0U4UWIyQWlZQU53QUFBQWNBYmdETkFVYi8vd0I3Lyt3RUNnV2dBaVlBVndBQUFBWUFibFB3QUFELy93Q0cvK3NFOFFkY0FpWUFOd0FBQUFjQW5BRUZBYXovL3dCNy8rd0VDZ1lGQWlZQVZ3QUFBQWNBbkFDTEFGWC8vd0NHLytzRThRZVBBaVlBTndBQUFBY0FuZ0ZuQWJQLy93QjcvK3dFQ2dZNEFpWUFWd0FBQUFjQW5nRHRBRnovL3dDRy8rc0U4UWRMQWlZQU53QUFBQWNBb1FFM0FWMy8vd0I3Lyt3RVdBWDBBaVlBVndBQUFBY0FvUUM5QUFZQUFRQ0cvbmtFOFFXd0FDY0FBQUVSRkFZSERnRVZGQll6TWpZM0Z3NEJJeUltTlRRMk55SUdJeUlrTlJFekVSUVdNekkyTlJFRThZeUJVRkVnSnhvcUZoVWhUVGRlZFNNbkJBNEQvLzdQODZtVW1hOEZzUHd3bzlvOE0xdzRJU01OQ280VEdXbGdMbFFvQWYvMkE5RDhNSnlYbDV3RDBBQUFBUUI3L2xJRUVBUTZBQ2NBQUNFT0FSVVVGak15TmpjWERnRWpJaVkxTkRZM0x3RU9BU01pSmpVUk14RVVGak15TmpjUk14RUQrMUJSSUNjYUtoWVZJVTAzWG5WSlVBOENOSmhuc3NEeVdsOVpkU1B6TTF3NElTTU5DbzRUR1dsZ1FuVXppd0ZSVk5qdkFvZjlkNUZ1UGp3RER2dkdBQUQvL3dCRUFBQUd1d2RIQWlZQU9RQUFBQWNBbWdHVkFWbi8vd0FsQUFBRjBBWHdBaVlBV1FBQUFBY0FtZ0VSQUFMLy93QVRBQUFFN3dkSEFpWUFPd0FBQUFjQW1nQ2FBVm4vL3dBUS9rc0QvQVh3QWlZQVd3QUFBQVlBbWh3Q0FBRC8vd0FUQUFBRTd3Y05BaVlBT3dBQUFBY0FhQUIyQVYzLy93QllBQUFFY1FjaUFpWUFQQUFBQUFjQWN3RnZBVnovL3dCVkFBQUR4QVhLQWlZQVhBQUFBQWNBY3dFZUFBVC8vd0JZQUFBRWNRY2lBaVlBUEFBQUFBY0FuUUZBQVd6Ly93QlZBQUFEeEFYS0FpWUFYQUFBQUFjQW5RRHZBQlQvL3dCWUFBQUVjUWRQQWlZQVBBQUFBQWNBbXdDS0FWNy8vd0JWQUFBRHhBWDNBaVlBWEFBQUFBWUFtemtHQUFELy8vLzJBQUFIVndjaEFpWUFmd0FBQUFjQWN3SzRBVnYvL3dBMC8rc0doQVhnQWlZQWhBQUFBQWNBY3dKdUFCci8vd0JwLzZFRkVBZGZBaVlBZ1FBQUFBY0Fjd0hTQVpuLy93QlQvM1lFTkFYY0FpWUFod0FBQUFjQWN3RXVBQmIvLy8vcUFBQUVRZ1NOQWlZQnFRQUFBQWNCMC85VC8zZi8vLy9xQUFBRVFnU05BaVlCcVFBQUFBY0IwLzlULzNmLy93QThBQUFENlFTTkFpWUJ1QUFBQUFZQjB5M2VBQUQvL3dBY0FBQUVyQVhmQWlZQnBnQUFBQWNBUWdDNkFCbi8vd0FjQUFBRXJBWGVBaVlCcGdBQUFBY0Fjd0Z4QUJqLy93QWNBQUFFckFZRUFpWUJwZ0FBQUFZQW1uVVdBQUQvL3dBY0FBQUVyQVlnQWlZQnBnQUFBQVlBb0hjcEFBRC8vd0FjQUFBRXJBWEtBaVlCcGdBQUFBWUFhRkVhQUFELy93QWNBQUFFckFaTUFpWUJwZ0FBQUFjQW5nRUtBSEQvL3dBY0FBQUVyQVo3QWlZQnBnQUFBQWNCMUFFUS8rYi8vd0JvL2o0RU1nU2RBaVlCcUFBQUFBY0Fkd0ZpLy8zLy93Q09BQUFEemdYZkFpWUJxZ0FBQUFZQVFuc1pBQUQvL3dDT0FBQUR6Z1hlQWlZQnFnQUFBQWNBY3dFeUFCai8vd0NPQUFBRHpnWUVBaVlCcWdBQUFBWUFtallXQUFELy93Q09BQUFEemdYS0FpWUJxZ0FBQUFZQWFCSWFBQUQvLy8rc0FBQUJnQVhmQWlZQnJnQUFBQWNBUXY5aUFCbi8vd0NPQUFBQ1pBWGVBaVlCcmdBQUFBWUFjeGdZQUFELy8vKzRBQUFDV1FZRUFpWUJyZ0FBQUFjQW12OGRBQmIvLy8rZEFBQUNjZ1hLQWlZQnJnQUFBQWNBYVA3NUFCci8vd0NPQUFBRWhRWWdBaVlCc3dBQUFBY0FvQUNRQUNuLy93Qm0vKzRFWkFYd0FpWUJ0QUFBQUFjQVFnQ3hBQ3IvL3dCbS8rNEVaQVh2QWlZQnRBQUFBQWNBY3dGb0FDbi8vd0JtLys0RVpBWVZBaVlCdEFBQUFBWUFtbXduQUFELy93Qm0vKzRFWkFZeEFpWUJ0QUFBQUFZQW9HNDZBQUQvL3dCbS8rNEVaQVhiQWlZQnRBQUFBQVlBYUVnckFBRC8vd0IrLys0RWV3WGhBaVlCdVFBQUFBY0FRZ0RLQUJ2Ly93QisvKzRFZXdYZ0FpWUJ1UUFBQUFjQWN3R0JBQnIvL3dCKy8rNEVld1lHQWlZQnVRQUFBQWNBbWdDRkFCai8vd0IrLys0RWV3WE1BaVlCdVFBQUFBWUFhR0VjQUFELy93QVRBQUFFUEFYZUFpWUJ2UUFBQUFjQWN3RTRBQmovL3dBY0FBQUVyQVd6QWlZQnBnQUFBQVlBYm5BREFBRC8vd0FjQUFBRXJBWVpBaVlCcGdBQUFBY0FuQUNvQUdrQUFnQWMvbElFckFTTkFCb0FIUUFBQVRNQkl3NEJGUlFXTXpJMk54Y09BU01pSmpVME5qY25JUWNqQVNFREFlajRBY3hRVUZFZ0p4b3FGaFVoVFRkZWRWTmJVUDRaVnY0Qm5BRlhyQVNOKzNNelhEZ2hJdzBLamhNWmFXQkhlelhYNlFHckFjMEFBUC8vQUdqLzd3UXlCZTRDSmdHb0FBQUFCd0J6QVZvQUtQLy9BR2ovN3dReUJoUUNKZ0dvQUFBQUJnQ2FYaVlBQVAvL0FHai83d1F5QmU0Q0pnR29BQUFBQndDZEFTc0FPUC8vQUdqLzd3UXlCaHNDSmdHb0FBQUFCZ0NiZFNvQUFQLy9BSTRBQUFSQ0Jnc0NKZ0dwQUFBQUJnQ2JKUm9BQVAvL0FJNEFBQVBPQmJNQ0pnR3FBQUFBQmdCdU1RTUFBUC8vQUk0QUFBUE9CaGtDSmdHcUFBQUFCZ0NjYVdrQUFQLy9BSTRBQUFQT0JkNENKZ0dxQUFBQUJ3Q2RBUU1BS0FBQkFJNytVZ1BPQkkwQUlBQUFBU0VSSVJVakRnRVZGQll6TWpZM0Z3NEJJeUltTlRRMk55Y2hFU0VWSVJFaEEzaitDQUpPUTFCUklDY2FLaFlWSVUwM1huVkVTUUg5MmdOQS9iSUIrQUg4L3NUQU0xdzRJU01OQ280VEdXbGdRSEV4QXdTTndmN3kvLzhBamdBQUE4NEdDd0ltQWFvQUFBQUdBSnROR2dBQS8vOEFhUC92QkY4R0ZBSW1BYXdBQUFBR0FKcHVKZ0FBLy84QWFQL3ZCRjhHS1FJbUFhd0FBQUFIQUp3QW9RQjUvLzhBYVAvdkJGOEY3Z0ltQWF3QUFBQUhBSjBCT3dBNC8vOEFhUDNrQkY4RW5RSW1BYXdBQUFBSEFaRUJhZjZ0Ly84QWpnQUFCSG9HQkFJbUFhMEFBQUFIQUpvQWdnQVcvLy8vbndBQUFuQUdJQUltQWE0QUFBQUhBS0QvSHdBcC8vLy9ud0FBQW5ZRnN3SW1BYTRBQUFBSEFHNy9HQUFELy8vL3hRQUFBa3NHR1FJbUFhNEFBQUFIQUp6L1VBQnAvLy8vK2Y1U0FZQUVqUUltQWE0QUFBQUdBSi9RQUFBQS8vOEFoQUFBQVljRjNnSW1BYTRBQUFBR0FKM3FLQUFBLy84QUx2L3VCRjRHQUFJbUFhOEFBQUFIQUpvQklnQVMvLzhBanYzdUJGMEVqUUltQWJBQUFBQUhBWkVCRy82My8vOEFqZ0FBQTNrRnl3SW1BYkVBQUFBR0FITVhCUUFBLy84QWp2M3dBM2tFalFJbUFiRUFBQUFIQVpFQTdmNjUvLzhBamdBQUEza0Vqd0ltQWJFQUFBQUhBWkVCa0FPSi8vOEFqZ0FBQTNrRWpRSW1BYkVBQUFBSEFKMEJTdjB5Ly84QWpnQUFCSVVGM2dJbUFiTUFBQUFIQUhNQmlnQVkvLzhBanYzd0JJVUVqUUltQWJNQUFBQUhBWkVCZ3Y2NS8vOEFqZ0FBQklVR0N3SW1BYk1BQUFBSEFKc0FwUUFhLy84QVp2L3VCR1FGeEFJbUFiUUFBQUFHQUc1bkZBQUEvLzhBWnYvdUJHUUdLZ0ltQWJRQUFBQUhBSndBbndCNi8vOEFadi91Qkd3R0dRSW1BYlFBQUFBSEFLRUEwUUFyLy84QWpnQUFCRWtGM2dJbUFiWUFBQUFIQUhNQklRQVkvLzhBanYzd0JFa0VqUUltQWJZQUFBQUhBWkVCR2Y2NS8vOEFqZ0FBQkVrR0N3SW1BYllBQUFBR0FKczhHZ0FBLy84QVQvL3VCQmtGOEFJbUFiY0FBQUFIQUhNQlBRQXEvLzhBVC8vdUJCa0dGZ0ltQWJjQUFBQUdBSnBCS0FBQS8vOEFULzQ3QkJrRW5RSW1BYmNBQUFBSEFIY0JTdi82Ly84QVQvL3VCQmtHSFFJbUFiY0FBQUFHQUp0WUxBQUEvLzhBUFAzd0Era0VqUUltQWJnQUFBQUhBWkVCRnY2NS8vOEFQQUFBQStrR0N3SW1BYmdBQUFBR0FKczVHZ0FBLy84QWZ2L3VCSHNHSWdJbUFia0FBQUFIQUtBQWh3QXIvLzhBZnYvdUJIc0Z0UUltQWJrQUFBQUhBRzRBZ0FBRi8vOEFmdi91QkhzR0d3SW1BYmtBQUFBSEFKd0F1QUJyLy84QWZ2L3VCSHNHVGdJbUFia0FBQUFIQUo0QkdnQnkvLzhBZnYvdUJJVUdDZ0ltQWJrQUFBQUhBS0VBNmdBY0FBRUFmdjU4QkhzRWpRQW1BQUFCRVJRR0J6TU9BUlVVRmpNeU5qY1hEZ0VqSWlZMU5EWTNJeUlrTlJFekVSUVdNekkyTlJFRWUzTnNBVkJSSUNjYUtoWVZJVTAzWG5VakpnYnAvdXJ5am45L2pRU04vUXFCdGpZelhEZ2hJdzBLamhNWmFXQXVWQ2ZkekFMMi9RcHlkM2R5QXZiLy93QTBBQUFGMXdZRUFpWUJ1d0FBQUFjQW1nRVdBQmIvL3dBVEFBQUVQQVlFQWlZQnZRQUFBQVlBbWp3V0FBRC8vd0FUQUFBRVBBWEtBaVlCdlFBQUFBWUFhQmdhQUFELy93QktBQUFENndYZkFpWUJ2Z0FBQUFjQWN3RW9BQm4vL3dCS0FBQUQ2d1hmQWlZQnZnQUFBQWNBblFENUFDbi8vd0JLQUFBRDZ3WU1BaVlCdmdBQUFBWUFtME1iQUFELy93QlAvKzRJaVFTZEFDWUJ0d0FBQUFjQnR3UndBQUQvL3dBYUFBQUZLQVp3QWlZQUl3QUFBQVlBcWVVQUFBRC8vLyt2QUFBRTJRWnlBQ1lBSjJRQUFBY0FxZjdZQUFMLy8vL2NBQUFGZEFad0FDWUFLbVFBQUFjQXFmOEZBQUQvLy8vakFBQUNCQVp5QUNZQUsyUUFBQWNBcWY4TUFBTC8vd0FxLytzRkx3WndBQ1lBTVJRQUFBY0FxZjlUQUFELy8vOW5BQUFGVXdad0FDWUFPMlFBQUFjQXFmNlFBQUQvL3dBVEFBQUU3Z1p3QUNZQXRSUUFBQWNBcWY4OEFBRC8vLyt3LytzQ29RWmZBaVlBdmdBQUFBY0FxdjhULzd2Ly93QWFBQUFGS0FXd0FnWUFJd0FBLy84QW53QUFCTHdGc0FJR0FDUUFBUC8vQUo4QUFBUjFCYkFDQmdBbkFBRC8vd0JZQUFBRWNRV3dBZ1lBUEFBQS8vOEFud0FBQlJBRnNBSUdBQ29BQVAvL0FLMEFBQUdnQmJBQ0JnQXJBQUQvL3dDZkFBQUZMd1d3QWdZQUxRQUEvLzhBbndBQUJtSUZzQUlHQUM4QUFQLy9BSjhBQUFVUUJiQUNCZ0F3QUFELy93QjAvK3NGR3dYRkFnWUFNUUFBLy84QW53QUFCTm9Gc0FJR0FESUFBUC8vQURVQUFBUzFCYkFDQmdBMkFBRC8vd0FUQUFBRTd3V3dBZ1lBT3dBQS8vOEFMd0FBQk9vRnNBSUdBRG9BQVAvLy83MEFBQUtTQncwQ0pnQXJBQUFBQndCby94a0JYZi8vQUJNQUFBVHZCdzBDSmdBN0FBQUFCd0JvQUhZQlhmLy9BRmIvNndSNUJsd0NKZ0MyQUFBQUJ3Q3BBVVQvN1AvL0FHRC83QVFNQmxzQ0pnQzZBQUFBQndDcEFRMy82Ly8vQUg3K1lRUUdCbHdDSmdDOEFBQUFCd0NwQVJmLzdQLy9BS24vNndKK0JrWUNKZ0MrQUFBQUJnQ3BBOVlBQVAvL0FJRC82d1FJQm1BQ0pnREdBQUFBQmdDcUdMd0FBUC8vQUk0QUFBUnJCRG9DQmdDTEFBRC8vd0JULyt3RU5BUk9BZ1lBVVFBQS8vOEFrdjVnQkI4RU9nSUdBSFFBQVAvL0FDQUFBQVAxQkRvQ0JnQllBQUQvL3dBaEFBQUQ3UVE2QWdZQVdnQUEvLy8veFAvckFwa0Z0UUltQUw0QUFBQUhBR2ovSUFBRi8vOEFnUC9yQkFnRnRnSW1BTVlBQUFBR0FHZ2xCZ0FBLy84QVUvL3NCRFFHWEFJbUFGRUFBQUFIQUtrQkdmL3MvLzhBZ1AvckJBZ0dSd0ltQU1ZQUFBQUhBS2tCQ2YvWC8vOEFadi9yQmkwR1JRSW1BTWtBQUFBSEFLa0NJZi9WLy84QW53QUFCSFVIRFFJbUFDY0FBQUFIQUdnQVd3RmQvLzhBbndBQUJEY0hJUUltQUt3QUFBQUhBSE1CZlFGYkFBRUFVLy9yQktBRnhRQWxBQUFCTkNZbkppUTFOQ1F6TWdBVkl6UW1JeUlHRlJRV0Z4NEJGUlFFSXlJa05UTVVGak15TmdPdGc2NzYvdjRCSCtyMEFTTHpsbytIalplNDcrLys0ZkhwL3F6enRKYUpsQUYyWEhNdVFzNnVzK0gvQUwxeWlYTmRWV3N5UWRpd3VkVHUyNGVCYXdELy93Q3RBQUFCb0FXd0FnWUFLd0FBLy8vL3ZRQUFBcElIRFFJbUFDc0FBQUFIQUdqL0dRRmQvLzhBT3YvckErWUZzQUlHQUN3QUFQLy9BSjhBQUFVdkJiQUNCZ0F0QUFELy93Q2ZBQUFGTHdiSkFpWUFMUUFBQUFjQWN3RnpBUVAvL3dBLy8rc0UyUWRjQWlZQTJRQUFBQWNBbkFEUEFhei8vd0FhQUFBRktBV3dBZ1lBSXdBQS8vOEFud0FBQkx3RnNBSUdBQ1FBQVAvL0FKOEFBQVEzQmJBQ0JnQ3NBQUQvL3dDZkFBQUVkUVd3QWdZQUp3QUEvLzhBbWdBQUJRc0hYQUltQU5jQUFBQUhBSndCSFFHcy8vOEFud0FBQm1JRnNBSUdBQzhBQVAvL0FKOEFBQVVRQmJBQ0JnQXFBQUQvL3dCMC8rc0ZHd1hGQWdZQU1RQUEvLzhBbndBQUJSRUZzQUlHQUxFQUFQLy9BSjhBQUFUYUJiQUNCZ0F5QUFELy93QjAvK3NFMkFYRkFnWUFKUUFBLy84QU5RQUFCTFVGc0FJR0FEWUFBUC8vQUM4QUFBVHFCYkFDQmdBNkFBRC8vd0JlLyt3RUFRUk9BZ1lBUXdBQS8vOEFXZi9zQS9nRVR3SUdBRWNBQVAvL0FJWUFBQVFTQmdVQ0pnRHJBQUFBQndDY0FKVUFWZi8vQUZQLzdBUTBCRTRDQmdCUkFBRC8vd0NBL21BRU5BUk9BZ1lBVWdBQUFBRUFVZi9zQS9jRVRnQWJBQUFsTWpZMU14UUVJeUlDUFFFMEVqTXlGaFVqTkNZaklnWWRBUlFXQWp0YmZPWCsvN2owK2ZuengvUGxkV0tMYkdxdVoxR2cyZ0V1OFNQd0FURGh0MXQ2dzVvam5jQUEvLzhBRVA1TEEvd0VPZ0lHQUZzQUFQLy9BQ0VBQUFQdEJEb0NCZ0JhQUFELy93QlovK3dEK0FYTUFpWUFSd0FBQUFZQWFCb2NBQUQvL3dDRkFBQURUUVhLQWlZQTV3QUFBQWNBY3dDK0FBVC8vd0JSLyt3RHp3Uk9BZ1lBVlFBQS8vOEFrQUFBQVlNR0dBSUdBRXNBQVAvLy82QUFBQUoxQmJZQ0pnQ0tBQUFBQndCby92d0FCdi8vLzdEK1N3R09CaGdDQmdCTUFBRC8vd0NQQUFBRVpRWEpBaVlBN0FBQUFBY0Fjd0U4QUFQLy93QVEva3NEL0FZRkFpWUFXd0FBQUFZQW5FOVZBQUQvL3dCRUFBQUd1d2NpQWlZQU9RQUFBQWNBUWdIYUFWei8vd0FsQUFBRjBBWExBaVlBV1FBQUFBY0FRZ0ZXQUFYLy93QkVBQUFHdXdjaEFpWUFPUUFBQUFjQWN3S1JBVnYvL3dBbEFBQUYwQVhLQWlZQVdRQUFBQWNBY3dJTkFBVC8vd0JFQUFBR3V3Y05BaVlBT1FBQUFBY0FhQUZ4QVYzLy93QWxBQUFGMEFXMkFpWUFXUUFBQUFjQWFBRHRBQWIvL3dBVEFBQUU3d2NpQWlZQU93QUFBQWNBUWdEZkFWei8vd0FRL2tzRC9BWExBaVlBV3dBQUFBWUFRbUVGQUFELy93QlNCQVFCQ3dZWUFnWUFDUUFBLy84QVVnUDhBajhHR0FJR0FBUUFBUC8vQUpvQUFBT3lCYkFBSmdRYkFBQUFCd1FiQWlVQUFQLy9BREVBQUFSU0JpMEFKZ0JJQUFBQUJ3Qk9BczhBQVAvLy83WCtTd0pzQmVvQ0pnQ1lBQUFBQndDYi96Ly8rZi8vQURNRDFnRnBCaGdDQmdGbUFBRC8vd0NmQUFBR1lnY2hBaVlBTHdBQUFBY0Fjd0tTQVZ2Ly93Q0FBQUFHZFFYZkFpWUFUd0FBQUFjQWN3S2hBQm4vL3dBYS9uNEZLQVd3QWlZQUl3QUFBQWNBb2dGSUFBRC8vd0JlL29VRUFRUk9BaVlBUXdBQUFBY0FvZ0NRQUFmLy8vODkvK3NGR3dhc0FpWUFNUUFBQUFjQjFmN1JBTlgvL3dBeEFBQUc1Z1l0QUNZQVNBQUFBQWNCa2dMUEFBRC8vd0F4QUFBSElRWXRBQ1lBU0FBQUFDY0FTQUxQQUFBQUJ3Qk9CWjRBQVAvL0FKOEFBQVIxQnlJQ0pnQW5BQUFBQndCQ0FNUUJYUC8vQUpvQUFBVUxCeUlDSmdEWEFBQUFCd0JDQVM4QlhQLy9BRm4vN0FQNEJlRUNKZ0JIQUFBQUJ3QkNBSU1BRy8vL0FJWUFBQVFTQmNzQ0pnRHJBQUFBQndCQ0FLY0FCZi8vQUVnQUFBVlJCYkFDQmdDMEFBRC8vd0JQL2lJRmZnUTZBZ1lBeUFBQS8vOEFFUUFBQk84SFJBSW1BUlFBQUFBSEFLY0VPd0ZXLy8vLzR3QUFCQmdHTWdJbUFSVUFBQUFIQUtjRDF3QkUvLzhBVS81TENJUUVUZ0FtQUZFQUFBQUhBRnNFaUFBQS8vOEFkUDVMQ1lzRnhRQW1BREVBQUFBSEFGc0Zqd0FBLy84QVN2NDZCSHNGeFFJbUFOWUFBQUFIQVp3Qmt2K2cvLzhBVGY0N0E4UUVUUUltQU9vQUFBQUhBWndCT2YraC8vOEFkUDQrQk5nRnhRSW1BQ1VBQUFBSEFad0IwLytrLy84QVVmNCtBL2NFVGdJbUFFVUFBQUFIQVp3QlMvK2svLzhBRXdBQUJPOEZzQUlHQURzQUFQLy9BQ0QrWHdQMUJEb0NCZ0M0QUFELy93Q3RBQUFCb0FXd0FnWUFLd0FBLy84QUdBQUFCNGtIWEFJbUFOVUFBQUFIQUp3Q0hBR3MvLzhBRndBQUJsOEdCUUltQU9rQUFBQUhBSndCcFFCVi8vOEFyUUFBQWFBRnNBSUdBQ3NBQVAvL0FCb0FBQVVvQjF3Q0pnQWpBQUFBQndDY0FPb0JyUC8vQUY3LzdBUUJCaG9DSmdCREFBQUFCZ0NjYjJvQUFQLy9BQm9BQUFVb0J3MENKZ0FqQUFBQUJ3Qm9BSk1CWGYvL0FGNy83QVFCQmNzQ0pnQkRBQUFBQmdCb0dCc0FBUC8vLy9ZQUFBZFhCYkFDQmdCL0FBRC8vd0EwLytzR2hBUk9BZ1lBaEFBQS8vOEFud0FBQkhVSFhBSW1BQ2NBQUFBSEFKd0FzZ0dzLy84QVdmL3NBL2dHR3dJbUFFY0FBQUFHQUp4eGF3QUEvLzhBVS8vcUJSc0cyZ0ltQVVFQUFBQUhBR2dBY3dFcS8vOEFXZi9zQS9nRVVBSUdBSmtBQVAvL0FGbi83QVA0QmN3Q0pnQ1pBQUFBQmdCb0dod0FBUC8vQUJnQUFBZUpCdzBDSmdEVkFBQUFCd0JvQWNVQlhmLy9BQmNBQUFaZkJiWUNKZ0RwQUFBQUJ3Qm9BVTRBQnYvL0FFci82d1I3QnlJQ0pnRFdBQUFBQndCb0FGZ0Jjdi8vQUUzLzdBUEVCY29DSmdEcUFBQUFCZ0JvQUJvQUFQLy9BSm9BQUFVTEJ2WUNKZ0RYQUFBQUJ3QnVBT1VCUnYvL0FJWUFBQVFTQmFBQ0pnRHJBQUFBQmdCdVhmQUFBUC8vQUpvQUFBVUxCdzBDSmdEWEFBQUFCd0JvQU1ZQlhmLy9BSVlBQUFRU0JiWUNKZ0RyQUFBQUJnQm9QZ1lBQVAvL0FIVC82d1ViQnlJQ0pnQXhBQUFBQndCb0FMb0Jjdi8vQUZQLzdBUTBCY3NDSmdCUkFBQUFCZ0JvTlJzQUFQLy9BR3IvNndVUkJjVUNCZ0VTQUFELy93QlMvK3dFTXdST0FnWUJFd0FBLy84QWF2L3JCUkVIQ0FJbUFSSUFBQUFIQUdnQXhnRlkvLzhBVXYvc0JETUY1d0ltQVJNQUFBQUdBR2doTndBQS8vOEFpUC9zQk5jSEl3SW1BT0lBQUFBSEFHZ0Fqd0Z6Ly84QVVmL3JBK2dGeXdJbUFQb0FBQUFHQUdnUEd3QUEvLzhBUC8vckJOa0c5Z0ltQU5rQUFBQUhBRzRBbHdGRy8vOEFFUDVMQS93Rm9BSW1BRnNBQUFBR0FHNFg4QUFBLy84QVAvL3JCTmtIRFFJbUFOa0FBQUFIQUdnQWVBRmQvLzhBRVA1TEEvd0Z0Z0ltQUZzQUFBQUdBR2o1QmdBQS8vOEFQLy9yQk5rSFN3SW1BTmtBQUFBSEFLRUJBUUZkLy84QUVQNUxCQndGOUFJbUFGc0FBQUFIQUtFQWdRQUcvLzhBandBQUJPa0hEUUltQU53QUFBQUhBR2dBd2dGZC8vOEFYd0FBQStBRnRnSW1BUFFBQUFBR0FHZ05CZ0FBLy84QW53QUFCbGtIRFFBbUFPRUxBQUFuQUNzRXVRQUFBQWNBYUFGdUFWMy8vd0NQQUFBRnlRVzJBQ1lBK1FBQUFDY0FpZ1JIQUFBQUJ3Qm9BUjhBQnYvL0FDLytTd1ZVQmJBQ0pnQTZBQUFBQndHYUE4WUFBUC8vQUNIK1N3UllCRG9DSmdCYUFBQUFCd0dhQXNvQUFQLy9BRlAvN0FRREJoZ0NCZ0JHQUFELy93QXUva3NGL1FXd0FpWUEyQUFBQUFjQm1nUnZBQUQvL3dBZi9rc0ZCd1E2QWlZQTdRQUFBQWNCbWdONUFBRC8vd0FhL3FVRktBV3dBaVlBSXdBQUFBY0FxQVQ4QUFELy93QmUvcXdFQVFST0FpWUFRd0FBQUFjQXFBUkVBQWYvL3dBYUFBQUZLQWZIQWlZQUl3QUFBQWNBcGdUNUFVai8vd0JlLyt3RUFRYUZBaVlBUXdBQUFBY0FwZ1IrQUFiLy93QWFBQUFGUGdlakFpWUFJd0FBQUFjQm93Q3pBUlAvL3dCZS8rd0V3d1ppQWlZQVF3QUFBQVlCb3pqU0FBRC8vd0FFQUFBRktBZWdBaVlBSXdBQUFBY0JvZ0M0QVIzLy8vK0ovK3dFQVFaZkFpWUFRd0FBQUFZQm9qM2NBQUQvL3dBYUFBQUZLQWZXQWlZQUl3QUFBQWNCb1FDM0FRdi8vd0JlLyt3RVJnYVZBaVlBUXdBQUFBWUJvVHpLQUFELy93QWFBQUFGS0FmaUFpWUFJd0FBQUFjQm9BQzRBUkgvL3dCZS8rd0VBUWFoQWlZQVF3QUFBQVlCb0QzUUFBRC8vd0FhL3FVRktBZEhBaVlBSXdBQUFDY0FtZ0MzQVZrQUJ3Q29CUHdBQVAvL0FGNytyQVFCQmdVQ0pnQkRBQUFBSmdDYVBCY0FCd0NvQkVRQUJ3QUEvLzhBR2dBQUJTZ0h6Z0ltQUNNQUFBQUhBWjhBNHdGUS8vOEFYdi9zQkFFR2pBSW1BRU1BQUFBR0FaOW9EZ0FBLy84QUdnQUFCU2dJRndJbUFDTUFBQUFIQWFRQTZBRi8vLzhBWHYvc0JBRUcxUUltQUVNQUFBQUdBYVJ0UFFBQS8vOEFHZ0FBQlNnSVNnSW1BQ01BQUFBSEFaNEE0Z0ZDLy84QVh2L3NCQUVIQ0FJbUFFTUFBQUFHQVo1bkFBQUEvLzhBR2dBQUJTZ0lKQUltQUNNQUFBQUhBWjBBNVFGSS8vOEFYdi9zQkFFRzRnSW1BRU1BQUFBR0FaMXFCZ0FBLy84QUd2NmxCU2dIWEFJbUFDTUFBQUFuQUp3QTZnR3NBQWNBcUFUOEFBRC8vd0JlL3F3RUFRWWFBaVlBUXdBQUFDWUFuRzlxQUFjQXFBUkVBQWNBQVAvL0FKLytyd1IxQmJBQ0pnQW5BQUFBQndDb0JNQUFDdi8vQUZuK3BRUDRCRThDSmdCSEFBQUFCd0NvQkpVQUFQLy9BSjhBQUFSMUI4Y0NKZ0FuQUFBQUJ3Q21CTUVCU1AvL0FGbi83QVA0Qm9ZQ0pnQkhBQUFBQndDbUJJQUFCLy8vQUo4QUFBUjFCMk1DSmdBbkFBQUFCd0NnQUlFQmJQLy9BRm4vN0FQNEJpSUNKZ0JIQUFBQUJnQ2dRQ3NBQVAvL0FKOEFBQVVHQjZNQ0pnQW5BQUFBQndHakFIc0JFLy8vQUZuLzdBVEZCbU1DSmdCSEFBQUFCZ0dqT3RNQUFQLy8vOHdBQUFSMUI2QUNKZ0FuQUFBQUJ3R2lBSUFCSGYvLy80di83QVA0Qm1BQ0pnQkhBQUFBQmdHaVA5MEFBUC8vQUo4QUFBU0pCOVlDSmdBbkFBQUFCd0doQUg4QkMvLy9BRm4vN0FSSUJwWUNKZ0JIQUFBQUJnR2hQc3NBQVAvL0FKOEFBQVIxQitJQ0pnQW5BQUFBQndHZ0FJQUJFZi8vQUZuLzdBUDRCcUlDSmdCSEFBQUFCZ0dnUDlFQUFQLy9BSi8rcndSMUIwY0NKZ0FuQUFBQUp3Q2FBSDhCV1FBSEFLZ0V3QUFLLy84QVdmNmxBL2dHQmdJbUFFY0FBQUFtQUpvK0dBQUhBS2dFbFFBQUFBRC8vd0N0QUFBQ0Z3ZkhBaVlBS3dBQUFBY0FwZ04rQVVqLy93Q1BBQUFCK2daeEFpWUFpZ0FBQUFjQXBnTmgvL0wvL3dDZi9xOEJyUVd3QWlZQUt3QUFBQWNBcUFOOUFBci8vd0NDL3E4QmtBWVlBaVlBU3dBQUFBY0FxQU5nQUFyLy93QjAvcHdGR3dYRkFpWUFNUUFBQUFjQXFBVWYvL2YvL3dCVC9wd0VOQVJPQWlZQVVRQUFBQWNBcUFTYi8vZi8vd0IwLytzRkd3ZmNBaVlBTVFBQUFBY0FwZ1VnQVYzLy93QlQvK3dFTkFhRkFpWUFVUUFBQUFjQXBnU2JBQWIvL3dCMC8rc0ZaUWU0QWlZQU1RQUFBQWNCb3dEYUFTai8vd0JULyt3RTRBWmlBaVlBVVFBQUFBWUJvMVhTQUFELy93QXIvK3NGR3dlMUFpWUFNUUFBQUFjQm9nRGZBVEwvLy8rbS8rd0VOQVpmQWlZQVVRQUFBQVlCb2xyY0FBRC8vd0IwLytzRkd3ZnJBaVlBTVFBQUFBY0JvUURlQVNELy93QlQvK3dFWXdhVkFpWUFVUUFBQUFZQm9WbktBQUQvL3dCMC8rc0ZHd2YzQWlZQU1RQUFBQWNCb0FEZkFTYi8vd0JULyt3RU5BYWhBaVlBVVFBQUFBWUJvRnJRQUFELy93QjAvcHdGR3dkY0FpWUFNUUFBQUNjQW1nRGVBVzRBQndDb0JSLy85Ly8vQUZQK25BUTBCZ1VDSmdCUkFBQUFKZ0NhV1JjQUJ3Q29CSnYvOXdBQS8vOEFadi9yQmE4SEV3SW1BSlFBQUFBSEFITUIxUUZOLy84QVV2L3NCTHdGM3dJbUFKVUFBQUFIQUhNQlZnQVovLzhBWnYvckJhOEhGQUltQUpRQUFBQUhBRUlCSGdGTy8vOEFVdi9zQkx3RjRBSW1BSlVBQUFBSEFFSUFud0FhLy84QVp2L3JCYThIdVFJbUFKUUFBQUFIQUtZRkd3RTYvLzhBVXYvc0JMd0doUUltQUpVQUFBQUhBS1lFbkFBRy8vOEFadi9yQmE4SFZRSW1BSlFBQUFBSEFLQUEyd0ZlLy84QVV2L3NCTHdHSVFJbUFKVUFBQUFHQUtCY0tnQUEvLzhBWnY2bEJhOEdMZ0ltQUpRQUFBQUhBS2dGQ3dBQS8vOEFVdjZjQkx3RXFRSW1BSlVBQUFBSEFLZ0VtLy8zLy84QWh2NmNCUEVGc0FJbUFEY0FBQUFIQUtnRkUvLzMvLzhBZS82bEJBb0VPZ0ltQUZjQUFBQUhBS2dFUlFBQS8vOEFodi9yQlBFSHh3SW1BRGNBQUFBSEFLWUZGQUZJLy84QWUvL3NCQW9HY1FJbUFGY0FBQUFIQUtZRW12L3kvLzhBaHYvckJrc0hJUUltQUpZQUFBQUhBSE1CMUFGYi8vOEFlLy9zQlNrRnlnSW1BSmNBQUFBSEFITUJWQUFFLy84QWh2L3JCa3NISWdJbUFKWUFBQUFIQUVJQkhRRmMvLzhBZS8vc0JTa0Z5d0ltQUpjQUFBQUhBRUlBblFBRi8vOEFodi9yQmtzSHh3SW1BSllBQUFBSEFLWUZHZ0ZJLy84QWUvL3NCU2tHY1FJbUFKY0FBQUFIQUtZRW12L3kvLzhBaHYvckJrc0hZd0ltQUpZQUFBQUhBS0FBMmdGcy8vOEFlLy9zQlNrR0RBSW1BSmNBQUFBR0FLQmFGUUFBLy84QWh2NmNCa3NHRUFJbUFKWUFBQUFIQUtnRkdmLzMvLzhBZS82bEJTa0VsQUltQUpjQUFBQUhBS2dFUlFBQS8vOEFFLzZ2Qk84RnNBSW1BRHNBQUFBSEFLZ0Uyd0FLLy84QUVQMy9BL3dFT2dJbUFGc0FBQUFIQUtnRk92OWEvLzhBRXdBQUJPOEh4d0ltQURzQUFBQUhBS1lFM0FGSS8vOEFFUDVMQS93R2NRSW1BRnNBQUFBSEFLWUVYdi95Ly84QUV3QUFCTzhIWXdJbUFEc0FBQUFIQUtBQW5BRnMvLzhBRVA1TEEvd0dEQUltQUZzQUFBQUdBS0FlRlFBQUFBSUFVLy9zQks4R0dBQWFBQ2dBQUFFakVTTW5EZ0VqSWdJOUFSQVNNeklXRnpjMUl6VXpOVE1WTXdFVUZqTXlOamNSTGdFaklnWVZCSytzMGhRMWoySEwydHJOV29jeUEvRHc4Nno4bDNGL1Rta2pJMmxNZjNNRXlmczNoRXhNQVJ6eEZRRUlBVGhFUVFIL3FxV2wvSWFacmtBK0FkZzlRczZyQVAvL0FGUCt4QVN2QmhnQUpnQkdBQUFBSndIVEFZa0NRZ0FIQUVFQW0vK0QvLzhBbi82YUJXY0ZzQUltQUMwQUFBQUhBWndFR0FBQS8vOEFqLzZhQktFRU9nSW1BT3dBQUFBSEFad0RVZ0FBLy84QW4vNmFCYk1Gc0FJbUFDb0FBQUFIQVp3RVpBQUEvLzhBaHY2YUJMUUVPZ0ltQU84QUFBQUhBWndEWlFBQS8vOEFOZjZhQkxVRnNBSW1BRFlBQUFBSEFad0NRZ0FBLy84QUkvNmFBOUFFT2dJbUFQRUFBQUFIQVp3QnhRQUEvLzhBTC82YUJRUUZzQUltQURvQUFBQUhBWndEdFFBQS8vOEFJZjZhQkFnRU9nSW1BRm9BQUFBSEFad0N1UUFBLy84QWovNmFCWXdGc0FJbUFOd0FBQUFIQVp3RVBRQUEvLzhBWC82YUJJTUVPd0ltQVBRQUFBQUhBWndETkFBQS8vOEFqLzZhQk9rRnNBSW1BTndBQUFBSEFad0M4UUFBLy84QVgvNmFBK0FFT3dJbUFQUUFBQUFIQVp3QjZBQUEvLzhBbi82YUJEY0ZzQUltQUt3QUFBQUhBWndBNWdBQS8vOEFoZjZhQTAwRU9nSW1BT2NBQUFBSEFad0FwUUFBLy84QUdQNmFCK1FGc0FJbUFOVUFBQUFIQVp3R2xRQUEvLzhBRi82YUJwTUVPZ0ltQU9rQUFBQUhBWndGUkFBQS8vOEFJUDVEQmNBRnhBSW1BVHNBQUFBSEFad0M3ZitwLy8vL3p2NUhCSFlFVHdJbUFUd0FBQUFIQVp3QjlmK3QvLzhBZlFBQUJBd0dHQUlHQUVvQUFBQUMvOWNBQUFUQkJiQUFFZ0FiQUFBQkl4VWhNZ1FWRkFRaklSRWpOVE0xTXhVekF4RWhNalkxTkNZakFtYmZBVFQ0QVE3KzhmZjkyYjI5ODkvZkFUU0tpWWlMQkVmSzdNN1E4d1JIcXIrLy9jbitDSkZ5Ym9jQUF2L1hBQUFFd1FXd0FCSUFHd0FBQVNNVklUSUVGUlFFSXlFUkl6VXpOVE1WTXdNUklUSTJOVFFtSXdKbTN3RTArQUVPL3ZIMy9kbTl2ZlBmM3dFMGlvbUlpd1JIeXV6TzBQTUVSNnEvdi8zSi9naVJjbTZIQUFILzl3QUFCRGNGc0FBTkFBQUJJeEVqRVNNMU14RWhGU0VSTXdLRzlQT29xQU9ZL1Z2MEFwLzlZUUtmcWdKbncvNWNBQUFCLytrQUFBTk5CRG9BRFFBQUFTRVJJeEVqTlRNUklSVWhGU0VDZVA3LzhweWNBc2orS2dFQkFkSCtMd0hScWdHL3hQc0FBZi9kQUFBRlF3V3dBQlFBQUFFakVTTVJJelV6TlRNVk14VWpFVE1CSVFrQklRSk9xUFBXMXZQR3hvc0J5UUVnL2ZRQ05mN1hBbmI5aWdSNnFveU1xdjdOQW1uOVNmMEhBQUFBQUFIL3pBQUFCRWtHR0FBVUFBQUJJeEVqRVNNMU16VXpGVE1WSXhFekFTRUpBU0VCOW0veXljbnkxTlJwQVE4QkhQNmZBWS8rNWdIWi9pY0V1NnF6czZyOTRRR2UvaEg5dFFBQUFQLy9BSnIrYndYM0Ixd0NKZ0RYQUFBQUp3Q2NBUjBCckFBSEFBNEVrLy9FLy84QWh2NXZCUDRHQlFJbUFPc0FBQUFuQUp3QWxRQlZBQWNBRGdPYS84VC8vd0NmL204Ri9BV3dBaVlBS2dBQUFBY0FEZ1NZLzhULy93Q0cvbThFL1FRNkFpWUE3d0FBQUFjQURnT1ovOFQvL3dDZi9tOEhUZ1d3QWlZQUx3QUFBQWNBRGdYcS84VC8vd0NQL204R1d3UTZBaVlBN2dBQUFBY0FEZ1QzLzhULy93QXUvbThGOWdXd0FpWUEyQUFBQUFjQURnU1MvOFQvL3dBZi9tOEZBQVE2QWlZQTdRQUFBQWNBRGdPYy84UUFBUUFUQUFBRTd3V3dBQThBQUFrQklRRXpGU01IRVNNUkl6VXpBU0VDZ0FGZ0FRLythV3pIQi9MUGRmNXBBUThDN0FMRS9RV3FEdjREQWd1cUF2c0FBQUVBSVA1ZkEvVUVPZ0FSQUFBRkl4RWpFU00xTXdFekV4Y3pOeE16QVRNRFdkWHp4NXYrdS92ZEZBTVUxL3YrdktnQi9tQUJvS29Ea2YwMFgxOEN6UHh2QUFBQUFRQXZBQUFFNmdXd0FCRUFBQUVqQVNFSkFTRUJJelV6QVNFSkFTRUJNd1BYandHaS90Myt3LzdFL3VFQm00SjAvbjBCSFFFd0FUUUJILzU5Z1FLVi9Xc0NJLzNkQXBXcUFuSDk1Z0lhL1k4QUFBQUFBUUFoQUFBRDdRUTZBQkVBQUFFakFTRUxBU0VCSXpVekFTRWJBU0VCTXdOUmtnRXUvdXpSMGY3cUFTMk1nZjdvQVJURnlBRVgvdWVIQWRmK0tRRjgvb1FCMTZvQnVmNk5BWFArUndBQUFQLy9BR0QvN0FRTUJFMENCZ0M2QUFELy93QVdBQUFFY2dXd0FpWUFLQUFBQUFjQjAvOS8vbTcvL3dDeUFtMEY2Z014QUVZQmhyWUFabVpBQUFBQ0FKb0FBQUdOQmJBQUF3QUhBQUFCSXhFekVTTTFNd0dOOC9Qejh3SHJBOFg2VU9vQUFBQUFBQUFBQUFBQUFBQUFBQmdBVGdDT0FPUUJQQUZNQVc0QmtnRzJBYzRCNUFIeUFmNENEQUk4QWt3Q2RnS3dBdElEQkFORUEySURxZ1BzQS9nRUJBUWNCREFFU0FSNEJPd0ZDZ1ZBQlhJRm1BV3lCY2dGL2dZV0JpSUdQZ1pjQm13R2tBYXFCdDRIQWdjK0IzWUhzQWZFQitRSC9nZ21DRWdJWUFoMkNJb0ltQWlxQ01JSTBBamdDUjRKVkFsK0NiSUo1Z29LQ2s0S2NncUVDcWdLeGdyU0N3d0xNQXRlQzVRTHlBdm9EQ0FNUmd4cURJSU1yQXpNRFBZTkRBMDhEVW9OZUEyaURiWU42QTRjRG1ZT2tBNmtEd2dQSEE5eUQ3SVB2Zy9PRURJUVFCQm1FSVlRc0JEcUVQb1JJQkUyRVVRUlloRnlFWndScUJHNkVjd1IzaElPRWpnU1doS3FFdEFUQ2hOb0U3Z1QwaFFlRkZRVWZoU0tGS2dVeEJUY0ZRZ1ZQQlY4RmRBVjdCWWlGbUlXbkJiR0Z2UVhFaGRHRjFvWGJoZUlGNVlYdkJmZUYvNFlGQmc2R0VnWVZoaGdHSDRZbEJpaUdMQVl5aGpTR09RWStoazBHVW9aWmhsNEdaWVowQm44R2pnYWZCcThHdGdiSUJ0YUc1SWJ0aHZ1SEF3Y1JCeU9ITFljNkIwZUhWSWRkaDJjSGRvZURCNU1Ib2dleEI4S0h6Z2ZjQittSDlZZ0FDQVlJRUFnYkNDYUlOWWc3aUVPSVRnaGVpR1NJYlloMENId0loZ2lSQ0pvSXB3aTJDTUFJMElqZUNPS0k3UWo0Q1FhSkRRa1VpUnlKSklrcWlTOEpOQWxLaVZDSldRbGZpV2VKY1FsN2lZUUpqNG1kQ2FjSnRnbkJpYzZKMmdubGlld0orSW9GQ2hDS0lJb3VDamFLUDRwTENsY0taSXB4Q29HS2tJcWtpcmdLeG9yVGl0eUs1b3IzQ3dZTEhvczJDMFdMVlF0Z0Myb0xkUXQ2QzRHTGhZdUppN0FMeGd2UkM5eUw3QXZ4Qy9ZTUFBd0pqQk1NSEF3a0RDd01Nd3c2REVTTVR3eGtqSGtNZ0l5SURKS01uSXlsRExVTXhBelBETm1NNDR6dGpQdU5CbzBSalJXTkdZMGpEVEVOUlkxWERXaU5lUTJKalpnTnBvMnpqY0NOenczY2plZ044NDRERGdNT0F3NEREZ01PQXc0RERnTU9BdzRERGdNT0F3NEREZ1dPQ0E0TERoQ09GZzRiamg2T0lZNGtqaTJPTkE0OURrTU9SZzVLRG1rT2JnNXpEbmFPZmc2R2pwV09wZzYyRHN1TzJnN3JqdllQQTQ4SUR3eVBFUThWanlTUEtZOHhEelNQT3c5UGoxc1BjUTk2RDM0UGdnK0xENDZQazQrWkQ2T1BvNC9hRCt1UCtCQUFFQXdRRkJBYmtDUVFKNUEwRUVBUVNCQlRrRjJRWkJCcWtIS1FkcEI5a0lzUWxwQ2ZrS1lRcTVDNEVMNFF3UkRJRU0rUTA1RGJrT0lRN1pEN0VRa1JGeEVjRVNRUktwRXpFVHNSUVJGR2tWR1JWWkZma1c0UmRoR0FrWStSbHBHb2tiZVJ1NUhGa2RRUjJCSGtFZk1SK1pJTGtocVNKUklva2pRU1BCSktrbE1TWDVKdmtvc1NrcEtpRXJRU3dwTFRrdDBTN0pMNEV2K1RCNU1Pa3hZVEpwTXZFekVUTXhNMUUwRVRUUk5ZRTE4VGFwTnRrM0NUYzVOMmszbVRmSk4vazRLVGhaT0lrNHVUanBPUms1U1RsNU9hazUyVG9KT2prNmFUcVpPc2s2K1RzcE8xazdpVHU1TytrOEdUeEpQSGs4cVR6WlBRazlPVDFwUFprOXlUMzVQaWsrV1Q2SlByays2VDhaUDBrL2VUK3BQOWxBQ1VBNVFHbEFtVURKUVBsQktVRlpRWWxCdVVLUlEvRkVJVVJSUklGRXNVVGhSUkZGUVVWeFJhRkYwVVlCUmpGR1lVYVJSc0ZHOFVmQlNQbEpLVWxaU1lsSnVVbnBTaGxLU1VwNVNxbEsyVXNKU3psTGFVdVpTOGxMK1V3cFRGbE1pVXk1VE9sTkdVMUpUWGxOcVUzWlRnbE9PVTVwVHBsT3lVNzVUeWxQV1UrSlQ3bFA2VkFaVUVsUWVWQ3BVTmxSQ1ZFNVVXbFJtVkhKVWZsU0tWSlpVb2xTdVZMcFV4bFRTVk41VTZsVDJWUUpWRGxVYVZTWlZNbFUrVlVwVlZsVmlWVzVWZWxXR1ZaSlZubFdxVmJaVndsWE9WZHBWNWxYeVZmNVdPbFoyVm9KV2psYWFWcVpXc2xhK1ZzcFcxbGJpVnU1VytsY0dWeEpYSGxjcVZ6WlhRbGRPVjFwWFpsZHlWMzVYaWxlV1Y2SlhybGU2VjhaWDBsZmVWK3BYOWxnQ1dBNVlHbGdtV0RKWVBsaEtXRlpZWWxodVdIcFlobGlTV0o1WXFsamVXT3BZOWxrQ1dRNVpHbGttV1RKWlBsbHlXWDVaaWxtV1dhSlpybG02V2NaWjBsbmVXZXBaOWxvQ1dnNWFHbG9tV2pKYVBscEtXbFphWWxwdVducGFobHFTV3A1YXFscTJXc0phemxyYVd1WmE4bHIrV3dwYkZsc2lXeTViYUZ0MFc0QmJqRnVZVzZSYnNGdThXOGhiMUZ2Z1creGIrRndFWEJCY0hGd2tYQ3hjTkZ3OFhFUmNURnhVWEZ4Y1pGeHNYSFJjZkZ5RVhJeGNtRnlrWExCY3ZGeklYTlJjNEZ6b1hQQmMrRjBBWFFoZEZGMGdYU3hkT0YxRVhWQmRYRjJXWFo1ZHFsMnlYYnBkeGwzU1hkcGQ0bDNxWGZKZC9sNEdYZzVlRmw0ZVhpWmVMbDQyWGo1ZVJsNU9YbHBlWWw1cVhwUmVuRjZrWHJCZXZGN0VYc3hlMkY3Z1h1eGUrRjhFWHhCZkhGOG9YelJmUUY5TVgxaGZZRjlvWDNSZmdGK01YNVJmb0Yrc1g3aGZ4Ri9RWDl4ZjdGLzRZQVJnRUdBY1lDUmdMR0E0WUVSZ1VHQmNZR2hnZEdDQVlJeGdsR0NjWUtSZ3NHQzhZTVJnMEdEY1lPaGc5R0Q4WVFSaEVHRWNZU2hoTUdFOFlVaGhWR0ZnWVd4aGVHR0VZWkJobkdHb1liUmh2R0hFWWRCaDNHSG9ZZlJpQUdJTVloaGlKR0l3WWp4aVNHSlVZbVJpZEdLQVlveGlsR0tnWXF4aXVHTEVZdEJpM0dMb1l2UmpBR01NWXhoakpHTXdZenhqVEdOY1kyaGpkR09BWTR4am1HT2tZN0JqdkdQTVk5eGo2R1AwWkFCa0RHUVlaQ1JrTUdROFpFaGtWR1JnWkd4a2VHU0VaSlJrcEdTd1pMeGt5R1RVWk9CazdHVDRaUVJsRUdVY1pTaGxOR1ZBWlV4bFdHVmtaWFJsaEdXUVpaeGxxR1cwWmNCbHpHWFlaZVJsOEdYOFpnaG1GR1lnWml4bU9HWkVabEJtWEdab1puUm1nR2FNWnBobXBHYXdacnhteUdiVVp1Qm03R2NxWnpwblJtZFNaMTVuYW1kMlo0Sm5qbWVhWjZabnNtZStaOHBuMW1maVorNW4rbWdHYUJKb0dtaEdhSEpvakdpbWFNeG84bWtDYVJKcEhta3FhVFpwUW1sT2FWcHBlbW1jYWNacDdtbjJhZ0pxREdvTWFpQUFBQUFBQUIwQllnQUJBQUFBQUFBQUFCOEFBQUFCQUFBQUFBQUJBQVlBSHdBQkFBQUFBQUFDQUFZQUpRQUJBQUFBQUFBREFCSUFLd0FCQUFBQUFBQUVBQTBBUFFBQkFBQUFBQUFGQUJZQVNnQUJBQUFBQUFBR0FBMEFZQUFCQUFBQUFBQUhBQ0FBYlFBQkFBQUFBQUFKQUFZQWpRQUJBQUFBQUFBTEFBb0Frd0FCQUFBQUFBQU1BQk1BblFBQkFBQUFBQUFOQUM0QXNBQUJBQUFBQUFBT0FDb0EzZ0FCQUFBQUFBQVNBQTBCQ0FBREFBRUVDUUFBQUQ0QkZRQURBQUVFQ1FBQkFBd0JVd0FEQUFFRUNRQUNBQXdCWHdBREFBRUVDUUFEQUNRQmF3QURBQUVFQ1FBRUFCb0Jqd0FEQUFFRUNRQUZBQ3dCcVFBREFBRUVDUUFHQUJvQjFRQURBQUVFQ1FBSEFFQUI3d0FEQUFFRUNRQUpBQXdDTHdBREFBRUVDUUFMQUJRQ093QURBQUVFQ1FBTUFDWUNUd0FEQUFFRUNRQU5BRndDZFFBREFBRUVDUUFPQUZRQzBRQURBQUVFQ1FBUUFBd0RKUUFEQUFFRUNRQVJBQXdETVVadmJuUWdaR0YwWVNCamIzQjVjbWxuYUhRZ1IyOXZaMnhsSURJd01UTlNiMkp2ZEc5TlpXUnBkVzFIYjI5bmJHVTZVbTlpYjNSdk9qSXdNVE5TYjJKdmRHOGdUV1ZrYVhWdFZtVnljMmx2YmlBeExqSXdNRE14TURzZ01qQXhNMUp2WW05MGJ5MU5aV1JwZFcxU2IySnZkRzhnYVhNZ1lTQjBjbUZrWlcxaGNtc2diMllnUjI5dloyeGxMa2R2YjJkc1pVZHZiMmRzWlM1amIyMURhSEpwYzNScFlXNGdVbTlpWlhKMGMyOXVUR2xqWlc1elpXUWdkVzVrWlhJZ2RHaGxJRUZ3WVdOb1pTQk1hV05sYm5ObExDQldaWEp6YVc5dUlESXVNR2gwZEhBNkx5OTNkM2N1WVhCaFkyaGxMbTl5Wnk5c2FXTmxibk5sY3k5TVNVTkZUbE5GTFRJdU1GSnZZbTkwYnlCTlpXUnBkVzBBUmdCdkFHNEFkQUFnQUdRQVlRQjBBR0VBSUFCakFHOEFjQUI1QUhJQWFRQm5BR2dBZEFBZ0FFY0Fid0J2QUdjQWJBQmxBQ0FBTWdBd0FERUFNd0JTQUc4QVlnQnZBSFFBYndCTkFHVUFaQUJwQUhVQWJRQkhBRzhBYndCbkFHd0FaUUE2QUZJQWJ3QmlBRzhBZEFCdkFEb0FNZ0F3QURFQU13QlNBRzhBWWdCdkFIUUFid0FnQUUwQVpRQmtBR2tBZFFCdEFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeEFDNEFNZ0F3QURBQU13QXhBREFBT3dBZ0FESUFNQUF4QURNQVVnQnZBR0lBYndCMEFHOEFMUUJOQUdVQVpBQnBBSFVBYlFCU0FHOEFZZ0J2QUhRQWJ3QWdBR2tBY3dBZ0FHRUFJQUIwQUhJQVlRQmtBR1VBYlFCaEFISUFhd0FnQUc4QVpnQWdBRWNBYndCdkFHY0FiQUJsQUM0QVJ3QnZBRzhBWndCc0FHVUFSd0J2QUc4QVp3QnNBR1VBTGdCakFHOEFiUUJEQUdnQWNnQnBBSE1BZEFCcEFHRUFiZ0FnQUZJQWJ3QmlBR1VBY2dCMEFITUFid0J1QUV3QWFRQmpBR1VBYmdCekFHVUFaQUFnQUhVQWJnQmtBR1VBY2dBZ0FIUUFhQUJsQUNBQVFRQndBR0VBWXdCb0FHVUFJQUJNQUdrQVl3QmxBRzRBY3dCbEFDd0FJQUJXQUdVQWNnQnpBR2tBYndCdUFDQUFNZ0F1QURBQWFBQjBBSFFBY0FBNkFDOEFMd0IzQUhjQWR3QXVBR0VBY0FCaEFHTUFhQUJsQUM0QWJ3QnlBR2NBTHdCc0FHa0FZd0JsQUc0QWN3QmxBSE1BTHdCTUFFa0FRd0JGQUU0QVV3QkZBQzBBTWdBdUFEQUFVZ0J2QUdJQWJ3QjBBRzhBVFFCbEFHUUFhUUIxQUcwQUFBSUFBQUFBQUFEL2FnQmtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFSEFBQUFRSUFBZ0FEQUFVQUJnQUhBQWdBQ1FBS0FBc0FEQUFOQUE0QUR3QVFBQkVBRWdBVEFCUUFGUUFXQUJjQUdBQVpBQm9BR3dBY0FCMEFIZ0FmQUNBQUlRQWlBQ01BSkFBbEFDWUFKd0FvQUNrQUtnQXJBQ3dBTFFBdUFDOEFNQUF4QURJQU13QTBBRFVBTmdBM0FEZ0FPUUE2QURzQVBBQTlBRDRBUHdCQUFFRUFRZ0JEQUVRQVJRQkdBRWNBU0FCSkFFb0FTd0JNQUUwQVRnQlBBRkFBVVFCU0FGTUFWQUJWQUZZQVZ3QllBRmtBV2dCYkFGd0FYUUJlQUY4QVlBQmhBS01BaEFDRkFMMEFsZ0RvQUlZQWpnQ0xBSjBBcVFDa0FJb0JBd0NEQUpNQThnRHpBSTBBbHdDSUFRUUEzZ0R4QUo0QXFnRDFBUFFBOWdDaUFKQUE4QUNSQU8wQWlRQ2dBT29BdUFDaEFPNEJCUURYQVFZQTRnRGpBUWNCQ0FDd0FMRUJDUUNtQVFvQkN3RU1BUTBCRGdFUEFOZ0E0UURiQU53QTNRRGdBTmtBM3dFUUFSRUJFZ0VUQVJRQkZRRVdBUmNCR0FFWkFSb0JHd0VjQVIwQkhnRWZBU0FCSVFFaUFKOEJJd0VrQVNVQkpnRW5BU2dCS1FFcUFTc0JMQUV0QUpzQkxnRXZBVEFCTVFFeUFUTUJOQUUxQVRZQk53RTRBVGtCT2dFN0FUd0JQUUUrQVQ4QlFBRkJBVUlCUXdGRUFVVUJSZ0ZIQVVnQlNRRktBVXNCVEFGTkFVNEJUd0ZRQVZFQlVnRlRBVlFCVlFGV0FWY0JXQUZaQVZvQld3RmNBVjBCWGdGZkFXQUJZUUZpQVdNQlpBRmxBV1lCWndGb0FXa0JhZ0ZyQVd3QmJRRnVBVzhCY0FGeEFYSUJjd0YwQVhVQmRnRjNBWGdCZVFGNkFYc0JmQUY5QVg0QmZ3R0FBWUVCZ2dHREFZUUJoUUdHQVljQmlBR0pBWW9CaXdHTUFZMEJqZ0dQQVpBQmtRR1NBWk1CbEFHVkFaWUJsd0dZQVprQm1nR2JBWndCblFHZUFaOEJvQUdoQWFJQm93R2tBYVVCcGdHbkFhZ0JxUUdxQWFzQnJBR3RBYTRCcndHd0FiRUJzZ0d6QWJRQnRRRzJBYmNCdUFHNUFib0J1d0c4QWIwQnZnRy9BY0FCd1FIQ0FjTUJ4QUhGQWNZQnh3SElBY2tCeWdITEFjd0J6UUN5QUxNQnpnQzJBTGNBeEFIUEFMUUF0UURGQUlJQXdnQ0hBZEFBcXdER0FMNEF2d0M4QWRFQjBnSFRBZFFCMVFIV0FkY0IyQUNNQWRrQjJnSGJBZHdCM1FDWUFKb0FtUUR2QUtVQWtnQ2NBS2NBandDVUFKVUF1UUhlQWQ4QjRBREFBZUVCNGdIakFlUUI1UUhtQWVjQjZBSHBBZW9CNndIc0FlMEI3Z0h2QWZBQjhRSHlBZk1COUFIMUFmWUI5d0g0QWZrQitnSDdBZndCL1FIK0FmOENBQUlCQWdJQ0F3SUVBZ1VDQmdJSEFnZ0NDUUlLQWdzQ0RBSU5BZzRDRHdJUUFoRUNFZ0lUQWhRQ0ZRSVdBaGNDR0FJWkFob0NHd0ljQWgwQ0hnSWZBaUFDSVFJaUFpTUNKQUlsQWlZQ0p3SW9BaWtDS2dJckFpd0NMUUl1QWk4Q01BSXhBaklDTXdJMEFqVUNOZ0kzQUt3Q09BSTVBT2tDT2dJN0Fqd0FyUURKQU1jQXJnQmlBR01DUFFCa0FNc0FaUURJQU1vQXp3RE1BTTBBemdCbUFOTUEwQURSQUs4QVp3RFdBTlFBMVFCb0FPc0FhZ0JwQUdzQWJRQnNBRzRDUGdCdkFIRUFjQUJ5QUhNQWRRQjBBSFlBZHdCNEFIb0FlUUI3QUgwQWZBQi9BSDRBZ0FDQkFPd0F1Z0kvQWtBQ1FRSkNBa01DUkFEOUFQNENSUUpHQWtjQ1NBRC9BUUFDU1FKS0Frc0NUQUpOQWs0Q1R3SlFBbEVDVWdKVEFsUUNWUUpXQVBnQStRSlhBbGdDV1FKYUFsc0NYQUpkQWw0Q1h3SmdBbUVDWWdKakFtUUNaUUptQW1jQ2FBSnBBbW9DYXdKc0FtMENiZ0p2QW5BQ2NRSnlBbk1DZEFKMUFuWUNkd0o0QW5rQ2VnSjdBbndDZlFKK0FuOENnQUtCQW9JQ2d3S0VBb1VDaGdLSEFvZ0NpUUtLQVBzQS9BS0xBb3dBNUFEbEFvMENqZ0tQQXBBQ2tRS1NBcE1DbEFLVkFwWUNsd0tZQXBrQ21nS2JBcHdDblFLZUFwOENvQUtoQXFJQXV3S2pBcVFDcFFLbUFPWUE1d0tuQXFnQ3FRS3FBcXNDckFLdEFxNENyd0t3QXJFQ3NnS3pBclFDdFFLMkFyY0N1QUs1QXJvQ3V3SzhBcjBDdmdLL0FzQUN3UUxDQXNNQ3hBTEZBc1lDeHdMSUFza0N5Z0xMQXN3Q3pRTE9BczhDMEFMUkF0SUMwd0xVQXRVQzFnTFhBdGdDMlFMYUF0c0MzQUxkQXQ0QzN3TGdBdUVDNGdMakF1UUM1UUxtQXVjQzZBTHBBdW9DNndMc0F1MEM3Z0x2QXZBQzhRTHlBdk1DOUFMMUF2WUM5d0w0QXZrQytnTDdBdndDL1FMK0F2OERBQU1CQXdJREF3TUVBd1VEQmdNSEF3Z0RDUU1LQXdzRERBTU5BdzRERHdNUUF4RURFZ01UQXhRREZRTVdBeGNER0FNWkF4b0RHd01jQXgwREhnTWZBeUFESVFNaUF5TURKQU1sQXlZREp3TW9BeWtES2dNckF5d0RMUU11QXk4RE1BTXhBeklETXdNMEF6VUROZ00zQXpnRE9RTTZBenNEUEFNOUF6NERQd05BQTBFRFFnTkRBMFFEUlFOR0EwY0RTQU5KQTBvRFN3Tk1BMDBEVGdOUEExQURVUU5TQTFNRFZBTlZBMVlEVndOWUExa0RXZ05iQTF3RFhRTmVBMThEWUFOaEEySURZd05rQTJVRFpnTm5BMmdEYVFOcUEyc0RiQU50QTI0RGJ3TndBM0VEY2dOekEzUURkUU4yQTNjRGVBTjVBM29EZXdOOEEzMERmZ04vQTRBRGdRT0NBNE1EaEFPRkE0WURod09JQTRrRGlnT0xBNHdEalFPT0E0OERrQU9SQTVJRGt3T1VBNVVEbGdPWEE1Z0RtUU9hQTVzRG5BT2RBNTREbndPZ0E2RURvZ09qQTZRRHBRT21BNmNEcUFPcEE2b0Rxd09zQTYwRHJnT3ZBN0FEc1FPeUE3TUR0QU8xQTdZRHR3TzRBN2tEdWdPN0E3d0R2UU8rQTc4RHdBUEJBOElEd3dQRUE4VUR4Z1BIQThnRHlRUEtBOHNEekFQTkE4NER6d1BRQTlFRDBnUFRBOVFEMVFQV0E5Y0QyQVBaQTlvRDJ3UGNBOTBEM2dQZkErQUQ0UVBpQStNRDVBUGxBK1lENXdQb0Era0Q2Z1ByQSt3RDdRUHVBKzhEOEFQeEEvSUQ4d1AwQS9VRDlnUDNBL2dEK1FQNkEvc0QvQVA5QS80RC93UUFCQUVFQWdRREJBUUVCUVFHQkFjRUNBUUpCQW9FQ3dRTUJBMEVEZ1FQQkJBRUVRUVNCQk1FRkFRVkJCWUVGd1FZQkJrRUdnUWJCQndFSFFRZUJCOEVJQVFoQVBjRUlnUWpBQVFIZFc1cE1EQXdPUVp0WVdOeWIyNE9jR1Z5YVc5a1kyVnVkR1Z5WldRRVNHSmhjZ3hyWjNKbFpXNXNZVzVrYVdNRFJXNW5BMlZ1WndWc2IyNW5jd1ZQYUc5eWJnVnZhRzl5YmdWVmFHOXliZ1YxYUc5eWJnZDFibWt3TWpNM0JYTmphSGRoQjNWdWFUQXlSak1KWjNKaGRtVmpiMjFpQ1dGamRYUmxZMjl0WWdsMGFXeGtaV052YldJRWFHOXZhd2QxYm1rd016QkdDR1J2ZEdKbGJHOTNCWFJ2Ym05ekRXUnBaWEpsYzJsemRHOXViM01KWVc1dmRHVnNaV2xoQlVkaGJXMWhCVVJsYkhSaEJWUm9aWFJoQmt4aGJXSmtZUUpZYVFKUWFRVlRhV2R0WVFOUWFHa0RVSE5wQldGc2NHaGhCR0psZEdFRloyRnRiV0VGWkdWc2RHRUhaWEJ6YVd4dmJnUjZaWFJoQTJWMFlRVjBhR1YwWVFScGIzUmhCbXhoYldKa1lRSjRhUU55YUc4R2MybG5iV0V4QlhOcFoyMWhBM1JoZFFkMWNITnBiRzl1QTNCb2FRTndjMmtGYjIxbFoyRUhkVzVwTURORU1RZDFibWt3TTBReUIzVnVhVEF6UkRZSGRXNXBNRFF3TWdkMWJta3dOREEwQjNWdWFUQTBNRGtIZFc1cE1EUXdRUWQxYm1rd05EQkNCM1Z1YVRBME1FWUhkVzVwTURReE1RZDFibWt3TkRFMEIzVnVhVEEwTVRZSGRXNXBNRFF4TndkMWJta3dOREU0QjNWdWFUQTBNVUlIZFc1cE1EUXlNd2QxYm1rd05ESTBCM1Z1YVRBME1qWUhkVzVwTURReU53ZDFibWt3TkRJNEIzVnVhVEEwTWprSGRXNXBNRFF5UVFkMWJta3dOREpDQjNWdWFUQTBNa01IZFc1cE1EUXlSQWQxYm1rd05ESkZCM1Z1YVRBME1rWUhkVzVwTURRek1RZDFibWt3TkRNeUIzVnVhVEEwTXpNSGRXNXBNRFF6TkFkMWJta3dORE0yQjNWdWFUQTBNemNIZFc1cE1EUXpPQWQxYm1rd05ETkJCM1Z1YVRBME0wSUhkVzVwTURRelF3ZDFibWt3TkRORUIzVnVhVEEwTTBZSGRXNXBNRFEwTWdkMWJta3dORFEwQjNWdWFUQTBORFlIZFc1cE1EUTBOd2QxYm1rd05EUTRCM1Z1YVRBME5Ea0hkVzVwTURRMFFRZDFibWt3TkRSQ0IzVnVhVEEwTkVNSGRXNXBNRFEwUkFkMWJta3dORFJGQjNWdWFUQTBORVlIZFc1cE1EUTFNZ2QxYm1rd05EVTBCM1Z1YVRBME5Ua0hkVzVwTURRMVFRZDFibWt3TkRWQ0IzVnVhVEEwTlVZSGRXNXBNRFEyTUFkMWJta3dORFl4QjNWdWFUQTBOak1IZFc1cE1EUTJOQWQxYm1rd05EWTFCM1Z1YVRBME5qWUhkVzVwTURRMk53ZDFibWt3TkRZNEIzVnVhVEEwTmprSGRXNXBNRFEyUVFkMWJta3dORFpDQjNWdWFUQTBOa01IZFc1cE1EUTJSQWQxYm1rd05EWkZCM1Z1YVRBME5rWUhkVzVwTURRM01nZDFibWt3TkRjekIzVnVhVEEwTnpRSGRXNXBNRFEzTlFkMWJta3dORGRCQjNWdWFUQTBOMElIZFc1cE1EUTNRd2QxYm1rd05EZEVCM1Z1YVRBME4wVUhkVzVwTURRM1JnZDFibWt3TkRnd0IzVnVhVEEwT0RFSGRXNXBNRFE0TWdkMWJta3dORGd6QjNWdWFUQTBPRFFIZFc1cE1EUTROUWQxYm1rd05EZzJCM1Z1YVRBME9EZ0hkVzVwTURRNE9RZDFibWt3TkRoRUIzVnVhVEEwT0VVSGRXNXBNRFE0UmdkMWJta3dORGt3QjNWdWFUQTBPVEVIZFc1cE1EUTVOQWQxYm1rd05EazFCM1Z1YVRBME9VTUhkVzVwTURRNVJBZDFibWt3TkVFd0IzVnVhVEEwUVRFSGRXNXBNRFJCTkFkMWJta3dORUUxQjNWdWFUQTBRVFlIZFc1cE1EUkJOd2QxYm1rd05FRTRCM1Z1YVRBMFFUa0hkVzVwTURSQ05BZDFibWt3TkVJMUIzVnVhVEEwUWpnSGRXNXBNRFJDT1FkMWJta3dORUpCQjNWdWFUQTBRa01IZFc1cE1EUkNSQWQxYm1rd05FTXpCM1Z1YVRBMFF6UUhkVzVwTURSRE53ZDFibWt3TkVNNEIzVnVhVEEwUkRnSGRXNXBNRFJGTUFkMWJta3dORVV4QjNWdWFUQTBSa0VIZFc1cE1EUkdRZ2QxYm1rd05UQXdCM1Z1YVRBMU1ESUhkVzVwTURVd013ZDFibWt3TlRBMEIzVnVhVEExTURVSGRXNXBNRFV3TmdkMWJta3dOVEEzQjNWdWFUQTFNRGdIZFc1cE1EVXdPUWQxYm1rd05UQkJCM1Z1YVRBMU1FSUhkVzVwTURVd1F3ZDFibWt3TlRCRUIzVnVhVEExTUVVSGRXNXBNRFV3UmdkMWJta3dOVEV3QjNWdWFUSXdNREFIZFc1cE1qQXdNUWQxYm1reU1EQXlCM1Z1YVRJd01ETUhkVzVwTWpBd05BZDFibWt5TURBMUIzVnVhVEl3TURZSGRXNXBNakF3TndkMWJta3lNREE0QjNWdWFUSXdNRGtIZFc1cE1qQXdRUWQxYm1reU1EQkNEWFZ1WkdWeWMyTnZjbVZrWW13TmNYVnZkR1Z5WlhabGNuTmxaQWQxYm1reU1ESTFCM1Z1YVRJd056UUpibk4xY0dWeWFXOXlCR3hwY21FR2NHVnpaWFJoQkVWMWNtOEhkVzVwTWpFd05RZDFibWt5TVRFekIzVnVhVEl4TVRZSlpYTjBhVzFoZEdWa0NXOXVaV1ZwWjJoMGFBeDBhSEpsWldWcFoyaDBhSE1MWm1sMlpXVnBaMmgwYUhNTWMyVjJaVzVsYVdkb2RHaHpDbU52Ykc5dUxteHVkVzBKY1hWdmRHVmtZbXg0QzJOdmJXMWhZV05qWlc1MEIzVnVhVVpGUmtZSGRXNXBSa1pHUXdkMWJtbEdSa1pFQ1dacGRtVXVjMjFqY0FobWIzVnlMbk4xY0FsNlpYSnZMbXh1ZFcwT2JHRnlaMlZ5YVdkb2RHaHZiMnNNWTNseWFXeHNhV05vYjI5ckVHTjVjbWxzYkdsamFHOXZhMnhsWm5RTFkzbHlhV3hzYVdOMGFXTU9ZbkpsZG1WMGFXeGtaV052YldJTlluSmxkbVZvYjI5clkyOXRZZzVpY21WMlpXRmpkWFJsWTI5dFloTmphWEpqZFcxbWJHVjRkR2xzWkdWamIyMWlFbU5wY21OMWJXWnNaWGhvYjI5clkyOXRZaE5qYVhKamRXMW1iR1Y0WjNKaGRtVmpiMjFpRTJOcGNtTjFiV1pzWlhoaFkzVjBaV052YldJT1luSmxkbVZuY21GMlpXTnZiV0lSWTI5dGJXRmhZMk5sYm5SeWIzUmhkR1VHUVM1emJXTndCa0l1YzIxamNBWkRMbk50WTNBR1JDNXpiV053QmtVdWMyMWpjQVpHTG5OdFkzQUdSeTV6YldOd0JrZ3VjMjFqY0FaSkxuTnRZM0FHU2k1emJXTndCa3N1YzIxamNBWk1Mbk50WTNBR1RTNXpiV053Qms0dWMyMWpjQVpQTG5OdFkzQUdVUzV6YldOd0JsSXVjMjFqY0FaVExuTnRZM0FHVkM1emJXTndCbFV1YzIxamNBWldMbk50WTNBR1Z5NXpiV053QmxndWMyMWpjQVpaTG5OdFkzQUdXaTV6YldOd0NYcGxjbTh1YzIxamNBaHZibVV1YzIxamNBaDBkMjh1YzIxamNBcDBhSEpsWlM1emJXTndDV1p2ZFhJdWMyMWpjQWgwZDI4dWJHNTFiUWh6YVhndWMyMWpjQXB6WlhabGJpNXpiV053Q21WcFoyaDBMbk50WTNBSmJtbHVaUzV6YldOd0IyOXVaUzV6ZFhBSGRIZHZMbk4xY0FsMGFISmxaUzV6ZFhBSWIyNWxMbXh1ZFcwSVptbDJaUzV6ZFhBSGMybDRMbk4xY0FselpYWmxiaTV6ZFhBSlpXbG5hSFF1YzNWd0NHNXBibVV1YzNWd0NIcGxjbTh1YzNWd0NHTnliM056WW1GeUNYSnBibWRoWTNWMFpRbGtZWE5wWVc5NGFXRUtkR2h5WldVdWJHNTFiUWxtYjNWeUxteHVkVzBKWm1sMlpTNXNiblZ0Q0hOcGVDNXNiblZ0QldjdVlXeDBDbk5sZG1WdUxteHVkVzBIWTJocExtRnNkQXBsYVdkb2RDNXNiblZ0Q1dGc2NHaGhMbUZzZEFsa1pXeDBZUzVoYkhRRVJDNWpiZ1JoTG1OdUJWSXVZV3gwQlVzdVlXeDBCV3N1WVd4MEJrc3VZV3gwTWdackxtRnNkRElKYm1sdVpTNXNiblZ0QmxBdWMyMWpjQTFqZVhKcGJHeHBZMkp5WlhabEIzVnVhVEF3UVVRR1JHTnliMkYwQkdoaVlYSUVWR0poY2dSMFltRnlDa0Z5YVc1bllXTjFkR1VLWVhKcGJtZGhZM1YwWlFkQmJXRmpjbTl1QjJGdFlXTnliMjRHUVdKeVpYWmxCbUZpY21WMlpRZEJiMmR2Ym1WckIyRnZaMjl1WldzTFEyTnBjbU4xYldac1pYZ0xZMk5wY21OMWJXWnNaWGdIZFc1cE1ERXdRUWQxYm1rd01UQkNCa1JqWVhKdmJnWmtZMkZ5YjI0SFJXMWhZM0p2YmdkbGJXRmpjbTl1QmtWaWNtVjJaUVpsWW5KbGRtVUtSV1J2ZEdGalkyVnVkQXBsWkc5MFlXTmpaVzUwQjBWdloyOXVaV3NIWlc5bmIyNWxhd1pGWTJGeWIyNEdaV05oY205dUMwZGphWEpqZFcxbWJHVjRDMmRqYVhKamRXMW1iR1Y0QjNWdWFUQXhNakFIZFc1cE1ERXlNUXhIWTI5dGJXRmhZMk5sYm5RTVoyTnZiVzFoWVdOalpXNTBDMGhqYVhKamRXMW1iR1Y0QzJoamFYSmpkVzFtYkdWNEJrbDBhV3hrWlFacGRHbHNaR1VIU1cxaFkzSnZiZ2RwYldGamNtOXVCa2xpY21WMlpRWnBZbkpsZG1VSFNXOW5iMjVsYXdkcGIyZHZibVZyQ2tsa2IzUmhZMk5sYm5RQ1NVb0NhV29MU21OcGNtTjFiV1pzWlhnTGFtTnBjbU4xYldac1pYZ01TMk52YlcxaFlXTmpaVzUwREd0amIyMXRZV0ZqWTJWdWRBWk1ZV04xZEdVR2JHRmpkWFJsREV4amIyMXRZV0ZqWTJWdWRBeHNZMjl0YldGaFkyTmxiblFHVEdOaGNtOXVCbXhqWVhKdmJnUk1aRzkwQkd4a2IzUUdUbUZqZFhSbEJtNWhZM1YwWlF4T1kyOXRiV0ZoWTJObGJuUU1ibU52YlcxaFlXTmpaVzUwQms1allYSnZiZ1p1WTJGeWIyNExibUZ3YjNOMGNtOXdhR1VIVDIxaFkzSnZiZ2R2YldGamNtOXVCazlpY21WMlpRWnZZbkpsZG1VTlQyaDFibWRoY25WdGJHRjFkQTF2YUhWdVoyRnlkVzFzWVhWMEJsSmhZM1YwWlFaeVlXTjFkR1VNVW1OdmJXMWhZV05qWlc1MERISmpiMjF0WVdGalkyVnVkQVpTWTJGeWIyNEdjbU5oY205dUJsTmhZM1YwWlFaellXTjFkR1VMVTJOcGNtTjFiV1pzWlhnTGMyTnBjbU4xYldac1pYZ0hkVzVwTURJeE9BZDFibWt3TWpFNUIzVnVhVEF5TVVFSGRXNXBNREl4UWdkMWJta3dNVFl5QjNWdWFUQXhOak1HVkdOaGNtOXVCblJqWVhKdmJnWlZkR2xzWkdVR2RYUnBiR1JsQjFWdFlXTnliMjRIZFcxaFkzSnZiZ1pWWW5KbGRtVUdkV0p5WlhabEJWVnlhVzVuQlhWeWFXNW5EVlZvZFc1bllYSjFiV3hoZFhRTmRXaDFibWRoY25WdGJHRjFkQWRWYjJkdmJtVnJCM1Z2WjI5dVpXc0xWMk5wY21OMWJXWnNaWGdMZDJOcGNtTjFiV1pzWlhnTFdXTnBjbU4xYldac1pYZ0xlV05wY21OMWJXWnNaWGdHV21GamRYUmxCbnBoWTNWMFpRcGFaRzkwWVdOalpXNTBDbnBrYjNSaFkyTmxiblFIUVVWaFkzVjBaUWRoWldGamRYUmxDMDl6YkdGemFHRmpkWFJsQzI5emJHRnphR0ZqZFhSbEMwUmpjbTloZEM1emJXTndDRVYwYUM1emJXTndDVlJpWVhJdWMyMWpjQXRCWjNKaGRtVXVjMjFqY0F0QllXTjFkR1V1YzIxamNCQkJZMmx5WTNWdFpteGxlQzV6YldOd0MwRjBhV3hrWlM1emJXTndEa0ZrYVdWeVpYTnBjeTV6YldOd0NrRnlhVzVuTG5OdFkzQVBRWEpwYm1kaFkzVjBaUzV6YldOd0RVTmpaV1JwYkd4aExuTnRZM0FMUldkeVlYWmxMbk50WTNBTFJXRmpkWFJsTG5OdFkzQVFSV05wY21OMWJXWnNaWGd1YzIxamNBNUZaR2xsY21WemFYTXVjMjFqY0F0SlozSmhkbVV1YzIxamNBdEpZV04xZEdVdWMyMWpjQkJKWTJseVkzVnRabXhsZUM1emJXTndEa2xrYVdWeVpYTnBjeTV6YldOd0MwNTBhV3hrWlM1emJXTndDMDluY21GMlpTNXpiV053QzA5aFkzVjBaUzV6YldOd0VFOWphWEpqZFcxbWJHVjRMbk50WTNBTFQzUnBiR1JsTG5OdFkzQU9UMlJwWlhKbGMybHpMbk50WTNBTFZXZHlZWFpsTG5OdFkzQUxWV0ZqZFhSbExuTnRZM0FRVldOcGNtTjFiV1pzWlhndWMyMWpjQTVWWkdsbGNtVnphWE11YzIxamNBdFpZV04xZEdVdWMyMWpjQXhCYldGamNtOXVMbk50WTNBTFFXSnlaWFpsTG5OdFkzQU1RVzluYjI1bGF5NXpiV053QzBOaFkzVjBaUzV6YldOd0VFTmphWEpqZFcxbWJHVjRMbk50WTNBTWRXNXBNREV3UVM1emJXTndDME5qWVhKdmJpNXpiV053QzBSallYSnZiaTV6YldOd0RFVnRZV055YjI0dWMyMWpjQXRGWW5KbGRtVXVjMjFqY0E5RlpHOTBZV05qWlc1MExuTnRZM0FNUlc5bmIyNWxheTV6YldOd0MwVmpZWEp2Ymk1emJXTndFRWRqYVhKamRXMW1iR1Y0TG5OdFkzQUxSMkp5WlhabExuTnRZM0FNZFc1cE1ERXlNQzV6YldOd0VVZGpiMjF0WVdGalkyVnVkQzV6YldOd0VFaGphWEpqZFcxbWJHVjRMbk50WTNBTFNYUnBiR1JsTG5OdFkzQU1TVzFoWTNKdmJpNXpiV053QzBsaWNtVjJaUzV6YldOd0RFbHZaMjl1WldzdWMyMWpjQTlKWkc5MFlXTmpaVzUwTG5OdFkzQVFTbU5wY21OMWJXWnNaWGd1YzIxamNCRkxZMjl0YldGaFkyTmxiblF1YzIxamNBdE1ZV04xZEdVdWMyMWpjQkZNWTI5dGJXRmhZMk5sYm5RdWMyMWpjQXRNWTJGeWIyNHVjMjFqY0FsTVpHOTBMbk50WTNBTFRtRmpkWFJsTG5OdFkzQVJUbU52YlcxaFlXTmpaVzUwTG5OdFkzQUxUbU5oY205dUxuTnRZM0FNVDIxaFkzSnZiaTV6YldOd0MwOWljbVYyWlM1emJXTndFazlvZFc1bllYSjFiV3hoZFhRdWMyMWpjQXRTWVdOMWRHVXVjMjFqY0JGU1kyOXRiV0ZoWTJObGJuUXVjMjFqY0F0U1kyRnliMjR1YzIxamNBdFRZV04xZEdVdWMyMWpjQkJUWTJseVkzVnRabXhsZUM1emJXTndEVk5qWldScGJHeGhMbk50WTNBTFUyTmhjbTl1TG5OdFkzQVJWR052YlcxaFlXTmpaVzUwTG5OdFkzQUxWR05oY205dUxuTnRZM0FMVlhScGJHUmxMbk50WTNBTVZXMWhZM0p2Ymk1emJXTndDMVZpY21WMlpTNXpiV053Q2xWeWFXNW5Mbk50WTNBU1ZXaDFibWRoY25WdGJHRjFkQzV6YldOd0RGVnZaMjl1WldzdWMyMWpjQkJYWTJseVkzVnRabXhsZUM1emJXTndFRmxqYVhKamRXMW1iR1Y0TG5OdFkzQU9XV1JwWlhKbGMybHpMbk50WTNBTFdtRmpkWFJsTG5OdFkzQVBXbVJ2ZEdGalkyVnVkQzV6YldOd0MxcGpZWEp2Ymk1emJXTndEMmRsY20xaGJtUmliSE11YzIxamNBcEJiSEJvWVhSdmJtOXpERVZ3YzJsc2IyNTBiMjV2Y3doRmRHRjBiMjV2Y3dsSmIzUmhkRzl1YjNNTVQyMXBZM0p2Ym5SdmJtOXpERlZ3YzJsc2IyNTBiMjV2Y3dwUGJXVm5ZWFJ2Ym05ekVXbHZkR0ZrYVdWeVpYTnBjM1J2Ym05ekJVRnNjR2hoQkVKbGRHRUhSWEJ6YVd4dmJnUmFaWFJoQTBWMFlRUkpiM1JoQlV0aGNIQmhBazExQWs1MUIwOXRhV055YjI0RFVtaHZBMVJoZFFkVmNITnBiRzl1QTBOb2FReEpiM1JoWkdsbGNtVnphWE1QVlhCemFXeHZibVJwWlhKbGMybHpDbUZzY0doaGRHOXViM01NWlhCemFXeHZiblJ2Ym05ekNHVjBZWFJ2Ym05ekNXbHZkR0YwYjI1dmN4UjFjSE5wYkc5dVpHbGxjbVZ6YVhOMGIyNXZjd1ZyWVhCd1lRZHZiV2xqY205dUIzVnVhVEF6UWtNQ2JuVURZMmhwREdsdmRHRmthV1Z5WlhOcGN3OTFjSE5wYkc5dVpHbGxjbVZ6YVhNTWIyMXBZM0p2Ym5SdmJtOXpESFZ3YzJsc2IyNTBiMjV2Y3dwdmJXVm5ZWFJ2Ym05ekIzVnVhVEEwTURFSGRXNXBNRFF3TXdkMWJta3dOREExQjNWdWFUQTBNRFlIZFc1cE1EUXdOd2QxYm1rd05EQTRCM1Z1YVRBME1VRUhkVzVwTURRd1F3ZDFibWt3TkRCRkIzVnVhVEEwTVRBSGRXNXBNRFF4TWdkMWJta3dOREV6QjNWdWFUQTBNVFVIZFc1cE1EUXhPUWQxYm1rd05ERkRCM1Z1YVRBME1VUUhkVzVwTURReFJRZDFibWt3TkRGR0IzVnVhVEEwTWpBSGRXNXBNRFF5TVFkMWJta3dOREl5QjNWdWFUQTBNalVIZFc1cE1EUXpNQWQxYm1rd05ETTFCM1Z1YVRBME16a0hkVzVwTURRelJRZDFibWt3TkRRd0IzVnVhVEEwTkRFSGRXNXBNRFEwTXdkMWJta3dORFExQjNWdWFUQTBOVEVIZFc1cE1EUTFNd2QxYm1rd05EVTFCM1Z1YVRBME5UWUhkVzVwTURRMU53ZDFibWt3TkRVNEIzVnVhVEEwTlVNSGRXNXBNRFExUlFaWFozSmhkbVVHZDJkeVlYWmxCbGRoWTNWMFpRWjNZV04xZEdVSlYyUnBaWEpsYzJsekNYZGthV1Z5WlhOcGN3WlpaM0poZG1VR2VXZHlZWFpsQm0xcGJuVjBaUVp6WldOdmJtUUpaWGhqYkdGdFpHSnNCM1Z1YVVaQ01ESUhkVzVwTURGR01BZDFibWt3TWtKREIzVnVhVEZGTTBVSGRXNXBNVVV6UmdkMWJta3hSVEF3QjNWdWFURkZNREVIZFc1cE1VWTBSQWQxYm1sR1FqQXpCM1Z1YVVaQ01EUUhkVzVwTURRd01BZDFibWt3TkRCRUIzVnVhVEEwTlRBSGRXNXBNRFExUkFkMWJta3dORGN3QjNWdWFUQTBOekVIZFc1cE1EUTNOZ2QxYm1rd05EYzNCM1Z1YVRBME56a0hkVzVwTURRM09BZDFibWt3TkRrNEIzVnVhVEEwT1RrSGRXNXBNRFJCUVFkMWJta3dORUZDQjNWdWFUQTBRVVVIZFc1cE1EUkJSZ2QxYm1rd05FTXdCM1Z1YVRBMFF6RUhkVzVwTURSRE1nZDFibWt3TkVOR0IzVnVhVEEwUkRBSGRXNXBNRFJFTVFkMWJta3dORVF5QjNWdWFUQTBSRE1IZFc1cE1EUkVOQWQxYm1rd05FUTFCM1Z1YVRBMFJEWUhkVzVwTURSRU53ZDFibWt3TkVSQkIzVnVhVEEwUkRrSGRXNXBNRFJFUWdkMWJta3dORVJEQjNWdWFUQTBSRVFIZFc1cE1EUkVSUWQxYm1rd05FUkdCM1Z1YVRBMFJUSUhkVzVwTURSRk13ZDFibWt3TkVVMEIzVnVhVEEwUlRVSGRXNXBNRFJGTmdkMWJta3dORVUzQjNWdWFUQTBSVGdIZFc1cE1EUkZPUWQxYm1rd05FVkJCM1Z1YVRBMFJVSUhkVzVwTURSRlF3ZDFibWt3TkVWRUIzVnVhVEEwUlVVSGRXNXBNRFJGUmdkMWJta3dORVl3QjNWdWFUQTBSakVIZFc1cE1EUkdNZ2QxYm1rd05FWXpCM1Z1YVRBMFJqUUhkVzVwTURSR05RZDFibWt3TkVZNEIzVnVhVEEwUmprSGRXNXBNRFJHUXdkMWJta3dORVpFQjNWdWFUQTFNREVIZFc1cE1EVXhNZ2QxYm1rd05URXpCM1Z1YVRGRlFUQUhkVzVwTVVWQk1RZDFibWt4UlVFeUIzVnVhVEZGUVRNSGRXNXBNVVZCTkFkMWJta3hSVUUxQjNWdWFURkZRVFlIZFc1cE1VVkJOd2QxYm1reFJVRTRCM1Z1YVRGRlFUa0hkVzVwTVVWQlFRZDFibWt4UlVGQ0IzVnVhVEZGUVVNSGRXNXBNVVZCUkFkMWJta3hSVUZGQjNWdWFURkZRVVlIZFc1cE1VVkNNQWQxYm1reFJVSXhCM1Z1YVRGRlFqSUhkVzVwTVVWQ013ZDFibWt4UlVJMEIzVnVhVEZGUWpVSGRXNXBNVVZDTmdkMWJta3hSVUkzQjNWdWFURkZRamdIZFc1cE1VVkNPUWQxYm1reFJVSkJCM1Z1YVRGRlFrSUhkVzVwTVVWQ1F3ZDFibWt4UlVKRUIzVnVhVEZGUWtVSGRXNXBNVVZDUmdkMWJta3hSVU13QjNWdWFURkZRekVIZFc1cE1VVkRNZ2QxYm1reFJVTXpCM1Z1YVRGRlF6UUhkVzVwTVVWRE5RZDFibWt4UlVNMkIzVnVhVEZGUXpjSGRXNXBNVVZET0FkMWJta3hSVU01QjNWdWFURkZRMEVIZFc1cE1VVkRRZ2QxYm1reFJVTkRCM1Z1YVRGRlEwUUhkVzVwTVVWRFJRZDFibWt4UlVOR0IzVnVhVEZGUkRBSGRXNXBNVVZFTVFkMWJta3hSVVF5QjNWdWFURkZSRE1IZFc1cE1VVkVOQWQxYm1reFJVUTFCM1Z1YVRGRlJEWUhkVzVwTVVWRU53ZDFibWt4UlVRNEIzVnVhVEZGUkRrSGRXNXBNVVZFUVFkMWJta3hSVVJDQjNWdWFURkZSRU1IZFc1cE1VVkVSQWQxYm1reFJVUkZCM1Z1YVRGRlJFWUhkVzVwTVVWRk1BZDFibWt4UlVVeEIzVnVhVEZGUlRJSGRXNXBNVVZGTXdkMWJta3hSVVUwQjNWdWFURkZSVFVIZFc1cE1VVkZOZ2QxYm1reFJVVTNCM1Z1YVRGRlJUZ0hkVzVwTVVWRk9RZDFibWt4UlVWQkIzVnVhVEZGUlVJSGRXNXBNVVZGUXdkMWJta3hSVVZFQjNWdWFURkZSVVVIZFc1cE1VVkZSZ2QxYm1reFJVWXdCM1Z1YVRGRlJqRUhkVzVwTVVWR05BZDFibWt4UlVZMUIzVnVhVEZGUmpZSGRXNXBNVVZHTndkMWJta3hSVVk0QjNWdWFURkZSamtHWkdOeWIyRjBCM1Z1YVRJd1FVSUhkVzVwTURRNVFRZDFibWt3TkRsQ0IzVnVhVEEwUVRJSGRXNXBNRFJCTXdkMWJta3dORUZEQjNWdWFUQTBRVVFIZFc1cE1EUkNNZ2QxYm1rd05FSXpCM1Z1YVRBMFFqWUhkVzVwTURSQ053ZDFibWt3TkVOQ0IzVnVhVEEwUTBNSGRXNXBNRFJHTmdkMWJta3dORVkzQjNWdWFUQTBPVFlIZFc1cE1EUTVOd2QxYm1rd05FSkZCM1Z1YVRBMFFrWUhkVzVwTURSQ1FnZDFibWt3TkRoREIzVnVhVEEwTmpJSGRXNXBNRFE1TWdkMWJta3dORGt6QjNWdWFUQTBPVVVIZFc1cE1EUTVSZ2QxYm1rd05EaEJCM1Z1YVRBME9FSUhkVzVwTURSRE9RZDFibWt3TkVOQkIzVnVhVEEwUTBRSGRXNXBNRFJEUlFkMWJta3dORU0xQjNWdWFUQTBRellIZFc1cE1EUkNNQWQxYm1rd05FSXhCM1Z1YVRBMFJrVUhkVzVwTURSR1JnZDFibWt3TlRFeEIzVnVhVEl3TVRVSGRXNXBNREF3TWdBQUFBRUFBQUFNQUFBQUFBQUFBQUlBQ0FES0FNb0FBUUVlQVNRQUFRRldBV0VBQVFGMkFYWUFBUUY3QVh3QUFRRitBWDRBQVFHVEFaVUFBUUhWQWRVQUFRQUFBQUFBQUFBQUFBRUFBQUFLQUI0QUxBQUJSRVpNVkFBSUFBUUFBQUFBLy84QUFRQUFBQUZyWlhKdUFBZ0FBQUFCQUFBQUFRQUVBQUlBQUFBRUFBNVBVRlVPZWtBQUFZRzhBQVFBQUFHdEEyUURhZ053QTNZRDdBUDJCQWdFTGdSRUJFNEVjQVNTQkpnRTZnVVlCVG9GWEFXQ0JhZ0ZyZ2FjQnFJR3lBYnVCMUFINGdnRUNDWUlSQWhLQ0ZnSVhnaGtDR29Ja0FpdUNMd0kyZ2pnQ1A0SkhBa2lDZXdLWWdxSUN2NExCQXNPQ3hRTEdnc2dDejRMYUF0dUM0UUxpZ3VvQzY0THRBdnVDL1FML2d3d0RGb01oQXlxRE13TThnMGdEWUlObUEyNkRkd09KZzVJRG1vT29BN0tEdlFPL2c4SUR5WVBQQTlHRDJRUGFnK0FEODRQN0JBS0VDZ1FUaEIwRUpJUW5CRENFT2dSRGhHRUVhb1IwQkh1RWd3UzFoTGdFeklUaEJPT0U1UVRtaE9nRTZZVHJCUFNFOXdUNGhQMEZCNFVOQlJHRkZnVWZoU0VGSm9VcEJTMkZOd1U4aFQ0RlA0VkJCVWVGU3dWTWhWWUZYNFdiQmJpRjFnWHpoaEVHTG9aTUJtbUdiZ1p6aG5rR2ZvYUVCb3lHbFFhZGhxWUdyb2E0QnNHR3l3YlVodDRHMzRiaEJ1S0c1QWNJaHhFSEdZY2lCeXFITXdjN2gwUUhSWWRIQjBpSFNnZExoMVVIWG9kb0IzR0hld2VDaDRvSHA0ZXdCODJIMWdmemgvd0lBSWdGQ0FtSURnZ1hpQjBJSG9na0NDV0lLd2dzaURJSU00ZzVDRHFJUXdoRWlFMElWWWhlQ0dhSWJ3aHdpSVVJa0lpY0NLZUlzd2k3aUwwSXhZakhDTStJMFFqU2lOd0k1WWp2Q1BpSkFna0xpUThKRW9rV0NWR0pqUW5JaWNvSnk0bk5DYzZKMEFuUmlkc0ovNG9IQ2l1S05Bbzhpa1VLWW9wb0NuQ0tlUXFDaXFjS3hJckhDc3lLMVFyZGl1WUsrb3NEQ3d1TEZRc2VpMW9MZm91WEM1K0x4QXZGaTg4TDFvdmdDK1dNR0F3Z2pDa01Lb3cvREZPTVpneURqSVlNdUl5K0RNYU16d3pZak9JTTVvMGlEVHFOUXcxRWpVNE5WWTFkRFY2TllBMWlqV29OYzQxOURZYU5xdzJ5amJRTnRZMjNEYitOd1EzZWplY044STMyRGZlT0FRNElqZzBPTVk0NURrR09XZzViam1RT2dZNktEcWVPc0E2MWpyY091STY2RHRLTzFBN2RqdWNPOEk3NER3cVBFZzhranl3UFBvOUdEMTZQWUE5OWo0WVBvNCtzRDhtUDBnL3ZqL2dRRlpBZUVEdVFSQkJoa0dvUWg1Q1FFSzJRdGhEVGtOd1ErWkVDRVIrUktCRXRrUzhSTkpFMkVUdVJQUkZDa1VRUlNaRkxFVkNSVWhGWGtWa1JYcEZnRVdpUmNSRjZrWVFSalpHWEVhQ1JxaEd6a2IwUnhwSFFFZG1SNHhIc2tmWVIvNUlCRWdLU0p4SXVrbE1TV3BKL0VvYVNteEtqa3Q4Uzk1TDVFeXVUTGhOR2swZ1RTWk5VRTRhVG14T2prNndBQUVBV1FBTEFBRUFXUUFMQUFFQUVmOElBQjBBSWYrdkFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0Q1LzlBQkwvK0JBVGovWlFFNS80VUJPLzltQVR6LzNRRkIvL0lCU2YreEFVdi95Z0ZULzZrQlZQL0lBYXovOVFHMC8vVUJ1UC9IQWJuLzhRRzYvODBCdS8vZEFiMy94QUFDQVF3QUN3RlQvK1lBQkFBTC8rWUFQLy8wQUYvLzd3RTgvKzBBQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnB2L3RBYnovOVFBRkFFai83Z0JaLytvQnV2L3dBYnYvN1FHOS8vQUFBZ0JVLytZQnB2L0FBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUFRR20vK3NBRkFCWi84RUFzLy9GQU1YL3RBRGwvOWNBOGYrNUFQbi82UUVFLzdJQkYvL1NBUnYveUFFdi82QUJPZi9GQVVILzVBRksvOHdCVFAvTUFWVC95d0ZWLys4QnFQL29BYXovNWdHMC8rY0J0Zi9uQUFzQVdmL01BYVlBRXdHby8vTUJyUC94QWJULzhnRzEvL0lCdVArOUFibi83Z0c2LzdnQnUvL1hBYjMvdHdBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFiLzdRRzgvL1VBQ1FCV0FBNEFmLzdYQUwvL21BREMvOGNBMVA4U0FPai9VZ0ZHLzg4QnB2K0FBZC8vMXdBQkFhWUFEZ0E3QUZUL3Z3QlovOUVBYS85c0FIci9iZ0IvLzBNQWhQK3NBSWYvb1FDei83Z0F1djkrQUw3L2V3REIvNXNBd3Y5NUFNWC9zZ0RILzM0QXlQOTlBTW4vZkFEVS82OEE0UUFQQU9YLzVBRG0vNkFBNlA5MEFPci9nQUR4LzdJQStQOTlBUG4vc2dENi80QUEvUDk1QVAwQUtBRUMvMzBCQlA5L0FSZi9aZ0ViLzlvQkovK0JBU24vbUFFdC8zMEJMLyt6QVRQL29BRTUvM3dCTy8rYUFUei9iQUZCLytZQlJ2OXJBVXIva2dGTS82MEJVUDk3QVZNQUR3RlUvNUVCVmYveUFhYi9yd0dvLzdrQnJQKzVBYlQvdVFHMS83a0J0Lys4QWJqLzhRRzcvL0VCdlAvdEFkei9zd0hmLy9FQUFRR20vK3NBQ1FBTEFCUUFQd0FSQUZULzRnQmZBQk1CcHYrMEFhai8yUUdzLzlrQnRQL1pBYlgvMlFBSkFBc0FEd0EvQUF3QVZQL3JBRjhBRGdHbS84c0JxUC9wQWF6LzV3RzAvK2NCdGYvbkFCZ0FzLy9VQUwzLzdRQy9BQkVBeGYvZ0FNZi81d0RJLytVQXlmL3VBTlFBRWdEbC8ra0E4Zi9YQVMvLzF3RTUvOU1CTy8vV0FUei94UUZCLytjQlNRQU5BVXNBREFGVS85WUJWZi95QWFqLzZRR3MvK2NCdFAvbkFiWC82UUhmLy9BQUpBQUkvK0lBQ3dBVUFBei96d0EvQUJJQVNQL3FBRlQvMkFCVy8rb0FYd0FUQUd2L3JnQjYvODBBZi8rZ0FJVC93UUNILzhBQXMvL1FBTGYvNmdDNi84WUF1d0FOQUwzLzZRQysvOVlBd2Yvb0FNTC91Z0RGLytrQXgvL0xBTWovMmdESi84Y0Jidi9UQWFiL3F3R28vODBCclAvTEFiVC95d0cxLzhzQnVQL3pBYnYvOHdHOC8rOEIzUC9BQWQvLzdnQUlBRm4vNVFDei84c0F5UC9rQWFZQURRR28vKzBCclAvckFiVC83QUcxLyt3QUNBRHgvL0FBK2Yvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8vTUJWUC94QUFjQXhmL3FBT2ovN2dEeC85WUErZi90QVMvLzdBRlUvK3dCM1Avb0FBRUE4Zi8xQUFNQUN3QVVBRDhBRWdCZkFCTUFBUUR4LzlZQUFRRHgvOVlBQVFEeC85WUFDUURGLytvQTZQKzRBUEgvNGdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FIQU1YLzZnRG8vKzRBOGYvV0FQbi83UUV2Lyt3QlZQL3NBZHovNkFBREFFZ0FGQUJXQUJnQVdRQVJBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUFFQkYvL3hBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUFjQXhmL3FBT2ovN2dEeC85WUErZi90QVMvLzdBRlUvK3dCM1Avb0FBRUE4Zi8xQURJQVZQOStBRm4vblFCci92RUFldjcwQUgvK3F3Q0UvMTRBaC85TEFMUC9jZ0M2L3c4QXZ2OEtBTUgvUVFEQy93Y0F4ZjlvQU1mL0R3REkvdzRBeWY4TUFOVC9Zd0RoQUFVQTVmKzlBT2IvU1FEby92NEE2djhUQVBIL2FBRDQvdzRBK2Y5b0FQci9Fd0Q4L3djQS9RQXdBUUwvRGdFRS94RUJGLzduQVJ2L3JBRW4veFVCS2Y4OEFTMy9EZ0V2LzJvQk0vOUpBVG4vREFFNy96OEJQUDd4QVVIL3dBRkcvdThCU3Y4eEFVei9Yd0ZRL3dvQlV3QUZBVlQvTUFGVi85VUIzUDlxQWQvLzB3QWRBQ0gvcndCVy8rOEFXZi9mQUpiLzdnQ3ovK1VBdFAvUkFMOEFFUURGLzhnQTFBQVRBT0gveFFEeC84b0ErZi9RQVMvL2dRRTQvMlVCT2YrRkFUdi9aZ0U4LzkwQlFmL3lBVW4vc1FGTC84b0JVLytwQVZUL3lBR3MvL1VCdFAvMUFiai94d0c1Ly9FQnV2L05BYnYvM1FHOS84UUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcHYvdEFiei85UUFkQUNIL3J3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9BK2YvUUFTLy9nUUU0LzJVQk9mK0ZBVHYvWmdFOC85MEJRZi95QVVuL3NRRkwvOG9CVS8rcEFWVC95QUdzLy9VQnRQLzFBYmoveHdHNS8vRUJ1di9OQWJ2LzNRRzkvOFFBQVFDL0FBMEFBZ0N6LzhJQXZ3QVFBQUVBdi8vaUFBRUF3di95QUFFQXZ3QU9BQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUFvQXV2L21BTDMvNndDKy8ra0F3UC93QU1ILzV3REYvK01BeC8vT0FNai8xQURKLzlzQjMvL3VBQUVBOGYvV0FBVUF2Zi9zQUw4QUR3REIvK29BeGYvT0FNZi81d0FCQUw4QUR3QUhBTVgvNmdEby8rNEE4Zi9WQVBuLzdRRXYvK3dCVlAvc0Fkei82QUFCQVBIL3dBQUJBTVVBSUFBT0FFZ0FEQUMvLzVBQXdRQUxBTVVBREFHbS83OEJxUC91QWF6LzdBRzAvKzBCdGYvc0FiZi85UUc0QUE0QnVnQU5BYjBBRFFIZi8rMEFBUUR4LytJQUFnRHgvOEFCM1AvaEFBd0E0Zi9VQVBIL3lRRDUvOUVCQlAvbEFSdi80d0V2LzhRQk9QL2hBVW4vMUFGSy8vVUJTLy9uQVZQL1pBRlUvOGtBQ2dEaC84RUE4Zi9OQVBuLzBnRXYvOHdCT1AvbEFUdi8zd0ZKLzg0QlMvL3FBVlAvbmdGVS84NEFDZ0RoLzhJQThmL0dBUG4vendFdi84QUJPUC9oQVR2LzN3RkovODBCUy8vb0FWUC9ud0ZVLzhZQUNRRGgvOGtBOGYvZkFQbi80UUVFLyswQkcvL3JBUy8vM3dFNy8ra0JTdi8xQVZULzRBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUNRRGgvK1lBOGYvUUFQbi8xZ0V2Lzg0Qk9QL29BVW4vNXdGTC8rMEJVLy9tQVZULzBBQUxBTlFBRkFEaC8rQUE2QUFUQVRqLzRRRTUvK0FCUFAvaEFVSC82UUZKLzk4QlMvL2VBVlAvM3dGVi8vSUFHQUN6LzlRQXZmL3RBTDhBRVFERi8rQUF4Ly9uQU1qLzVRREovKzRBMUFBU0FPWC82UUR4LzljQkwvL1hBVG4vMHdFNy85WUJQUC9GQVVILzV3RkpBQTBCU3dBTUFWVC8xZ0ZWLy9JQnFQL3BBYXovNXdHMC8rY0J0Zi9wQWQvLzhBQUZBQm4vOGdEaC8vRUJTZi95QVV2LzhnRlQvL0lBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQVNBTlQvcmdEaEFCSUE1di9nQU9qL3JRRHEvOVlBK1AvZkFQei8wZ0VDLytBQkYvL09BU2YvM1FFcC8rSUJMZi9nQVRQLzRBRTUvK2tCUFAvYUFVYi92UUZRLzk4QlV3QVJBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQURRRFVBQk1BNGYvbUFPTC85QURvQUJJQThmL25BUG4vNXdFdi8rY0JPUC9sQVRuLzZBRkovK1lCUy8vbUFWUC81Z0ZVLytjQUNnRGgvOFFBOGYvTkFQbi8xUUV2Lzh3Qk9QL21BVHYvM3dGSi85RUJTLy9zQVZQL29RRlUvODhBQ2dEaC84TUE4Zi9QQVBuLzFBRXYvODRCT1AvbkFUdi8zd0ZKLzlFQlMvL3NBVlAvb0FGVS85RUFBZ0RVLytJQlUvL2tBQUlBMVAvaEFPai81QUFIQU9qLzdnRHgvKzRBK2YvdkFRVC85QUViLy9FQkwvL3ZBVlQvN3dBRkFQSC85QUQ1Ly9RQkJQLzFBUy8vOVFGVS8vVUFBZ0RvLzJnQkYvL3VBQWNBNkFBVUFQSC83UUQzLzlBQStmL3VBUy8vN1FFNS8rMEJWUC90QUFFQkYvL3hBQVVCRi8vckFhai82d0dzLytrQnRQL3JBYlgvNndBVEFFZ0FEUURDLzlZQXcvL0FBTWYvMVFEby84Z0JGLy9zQVJzQURBRktBQXNCVEFBTEFhYi92d0dvLys0QnJQL3NBYlQvN1FHMS8rd0J0Ly8xQWJnQURnRzZBQTBCdlFBTkFkLy94QUFIQU1YLzZnRG8vKzRBOGYvV0FQbi83UUV2Lyt3QlZQL3NBZHovNkFBSEFPZ0FGQUR4Ly9BQStmL3dBUHdBRmdFdi8rWUJPZi9jQVZULzhBQUhBT2dBRWdEeC8rTUE5Lys0QVBuLzR3RXYvN29CT2YvWkFWVC80d0FKQVBIL2dBRDUvL0FCQlAvYkFSdi8zQUV2LzBjQk9mL3VBVW9BQndGTS8vUUJWUDkvQUFrQThmOXFBUG4veGdFRS85a0JHLy9iQVMvL0hnRTUvKzBCU3Yvd0FVei84Z0ZVLzFZQUJ3REYvK29BNlAvdUFQSC8xZ0Q1LyswQkwvL3NBVlQvN0FIYy8rZ0FBZ0RvLys4QStmL3VBQWtBOGY5MkFQbi8wd0VFLzlrQkcvL2JBUy8vSGdFNS8rMEJTdi93QVV6LzhnRlUvMVlBQ1FEeC8yUUErZi9aQVFULzJRRWIvOXNCTC84ZUFUbi83UUZLLy9BQlRQL3lBVlQvVmdBSkFQSC9hZ0Q1LzhZQkJQL1pBUnYvMndFdi94NEJPZi90QVVyLzhBRk0vL0lCVlA5V0FCMEFJZit2QUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRDUvOUFCTC8rQkFUai9aUUU1LzRVQk8vOW1BVHovM1FGQi8vSUJTZit4QVV2L3lnRlQvNmtCVlAvSUFhei85UUcwLy9VQnVQL0hBYm4vOFFHNi84MEJ1Ly9kQWIzL3hBQUpBTVgvNmdEby83Z0E4Zi9pQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWtBQ3dBVUFEOEFFUUJVLytJQVh3QVRBYWIvdEFHby85a0JyUC9aQWJULzJRRzEvOWtBQndCSUFBMEF3UUFMQU1MLzZnREZBQXdBNlAvSUFSZi84UUhmLy9VQUJ3REYvK29BNlAvdUFQSC8xZ0Q1LyswQkwvL3NBVlQvN0FIYy8rZ0FNZ0JVLzM0QVdmK2RBR3YrOFFCNi92UUFmLzZyQUlUL1hnQ0gvMHNBcy85eUFMci9Ed0MrL3dvQXdmOUJBTUwvQndERi8yZ0F4LzhQQU1qL0RnREovd3dBMVA5akFPRUFCUURsLzcwQTV2OUpBT2orL2dEcS94TUE4ZjlvQVBqL0RnRDUvMmdBK3Y4VEFQei9Cd0Q5QURBQkF2OE9BUVQvRVFFWC91Y0JHLytzQVNmL0ZRRXAvendCTGY4T0FTLy9hZ0V6LzBrQk9mOE1BVHYvUHdFOC92RUJRZi9BQVViKzd3RksvekVCVFA5ZkFWRC9DZ0ZUQUFVQlZQOHdBVlgvMVFIYy8yb0IzLy9UQUFJQTZQOW9BUmYvN2dBVUFGbi93UUN6LzhVQXhmKzBBT1gvMXdEeC83a0ErZi9wQVFUL3NnRVgvOUlCRy8vSUFTLy9vQUU1LzhVQlFmL2tBVXIvekFGTS84d0JWUC9MQVZYLzd3R28vK2dCclAvbUFiVC81d0cxLytjQUZBQlovOEVBcy8vRkFNWC90QURsLzljQThmKzVBUG4vNlFFRS83SUJGLy9TQVJ2L3lBRXYvNkFCT2YvRkFVSC81QUZLLzh3QlRQL01BVlQveXdGVi8rOEJxUC9vQWF6LzVnRzAvK2NCdGYvbkFBSUE2UDlvQVJmLzdnQUJBRmtBQ3dBQkFGa0FDd0FCQUZrQUN3QUJBRmtBQ3dBQkFGa0FDd0FKQWFqLzhnR3MvL0lCdFAveUFiWC84Z0c0LzhBQnVmL3NBYnIveHdHNy85Z0J2ZisvQUFJQnV2L3VBYnYvOVFBQkFhYi8wZ0FFQWFqLzZ3R3MvK2tCdFAvckFiWC82d0FLQWFZQUVRR28vL0FCclAvdUFiVC83d0cxLy9BQnVQKzdBYm4vN0FHNi83Y0J1Ly9WQWIzL3RBQUZBYWIvOHdHNC8rNEJ1di94QWJ6LzdBRzkvK29BQkFHNC8ra0J1di9yQWJ2LzhRRzkvK1VBQkFHNC8vSUJ1di94QWJ2LzlRRzkvKzRBQ1FHbS83OEJxUC91QWF6LzdBRzAvKzBCdGYvc0FiZi85UUc0QUE0QnVnQU5BYjBBRFFBQkFhYi83d0FGQWFiL3h3R28vL0lCclAvd0FiVC84QUcxLy9BQUFnR20vOXdCdUFBT0FBUUJxUC90QWF6LzZ3RzAvK3NCdGYvckFBa0Jwdi9BQWFqLzdRR3MvK3NCdFAvckFiWC82d0c0QUE4QnVnQVFBYnNBRFFHOUFCQUFCUUdtQUF3QnFQL3dBYXovOEFHMC8vQUJ0Zi93QUFFQjEvL1ZBQUVCeFAvVkFBRUIxLzlBQUFZQVNBQUxBTHIvOGdESC8vRUF5Zi92QWR3QUR3SGYvKzRBQXdERi8rMEE4Zi9WQWR6LzdBQUJBYWIvMVFBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR20vKzBCdlAvMUFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWIvN1FHOC8vVUFPd0JVLzc4QVdmL1JBR3YvYkFCNi8yNEFmLzlEQUlUL3JBQ0gvNkVBcy8rNEFMci9mZ0MrLzNzQXdmK2JBTUwvZVFERi83SUF4LzkrQU1qL2ZRREovM3dBMVArdkFPRUFEd0RsLytRQTV2K2dBT2ovZEFEcS80QUE4Zit5QVBqL2ZRRDUvN0lBK3YrQUFQei9lUUQ5QUNnQkF2OTlBUVQvZndFWC8yWUJHLy9hQVNmL2dRRXAvNWdCTGY5OUFTLy9zd0V6LzZBQk9mOThBVHYvbWdFOC8yd0JRZi9tQVViL2F3RksvNUlCVFArdEFWRC9ld0ZUQUE4QlZQK1JBVlgvOGdHbS82OEJxUCs1QWF6L3VRRzAvN2tCdGYrNUFiZi92QUc0Ly9FQnUvL3hBYnovN1FIYy83TUIzLy94QUIwQUlmK3ZBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdENS85QUJMLytCQVRqL1pRRTUvNFVCTy85bUFUei8zUUZCLy9JQlNmK3hBVXYveWdGVC82a0JWUC9JQWF6LzlRRzAvL1VCdVAvSEFibi84UUc2LzgwQnUvL2RBYjMveEFBZEFDSC9yd0JXLys4QVdmL2ZBSmIvN2dDei8rVUF0UC9SQUw4QUVRREYvOGdBMUFBVEFPSC94UUR4LzhvQStmL1FBUy8vZ1FFNC8yVUJPZitGQVR2L1pnRTgvOTBCUWYveUFVbi9zUUZMLzhvQlUvK3BBVlQveUFHcy8vVUJ0UC8xQWJqL3h3RzUvL0VCdXYvTkFidi8zUUc5LzhRQUhRQWgvNjhBVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FQbi8wQUV2LzRFQk9QOWxBVG4vaFFFNy8yWUJQUC9kQVVILzhnRkovN0VCUy8vS0FWUC9xUUZVLzhnQnJQLzFBYlQvOVFHNC84Y0J1Zi94QWJyL3pRRzcvOTBCdmYvRUFCMEFJZit2QUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRDUvOUFCTC8rQkFUai9aUUU1LzRVQk8vOW1BVHovM1FGQi8vSUJTZit4QVV2L3lnRlQvNmtCVlAvSUFhei85UUcwLy9VQnVQL0hBYm4vOFFHNi84MEJ1Ly9kQWIzL3hBQWRBQ0gvcndCVy8rOEFXZi9mQUpiLzdnQ3ovK1VBdFAvUkFMOEFFUURGLzhnQTFBQVRBT0gveFFEeC84b0ErZi9RQVMvL2dRRTQvMlVCT2YrRkFUdi9aZ0U4LzkwQlFmL3lBVW4vc1FGTC84b0JVLytwQVZUL3lBR3MvL1VCdFAvMUFiai94d0c1Ly9FQnV2L05BYnYvM1FHOS84UUFIUUFoLzY4QVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUG4vMEFFdi80RUJPUDlsQVRuL2hRRTcvMllCUFAvZEFVSC84Z0ZKLzdFQlMvL0tBVlAvcVFGVS84Z0JyUC8xQWJULzlRRzQvOGNCdWYveEFici96UUc3LzkwQnZmL0VBQjBBSWYrdkFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0Q1LzlBQkwvK0JBVGovWlFFNS80VUJPLzltQVR6LzNRRkIvL0lCU2YreEFVdi95Z0ZULzZrQlZQL0lBYXovOVFHMC8vVUJ1UC9IQWJuLzhRRzYvODBCdS8vZEFiMy94QUFFQUF2LzVnQS8vL1FBWC8vdkFUei83UUFGQUVqLzdnQlovK29CdXYvd0Fidi83UUc5Ly9BQUJRQkkvKzRBV2YvcUFici84QUc3LyswQnZmL3dBQVVBU1AvdUFGbi82Z0c2Ly9BQnUvL3RBYjMvOEFBRkFFai83Z0JaLytvQnV2L3dBYnYvN1FHOS8vQUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUpBSC8vM3dDdy8vTUFzdi93QUwvLzZnRFUvOThBNGYvZ0FWUC80QUdtLyswQnZQLzFBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFiLzdRRzgvL1VBQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnB2L3RBYnovOVFBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR20vKzBCdlAvMUFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWIvN1FHOC8vVUFBUUdtLytzQUFRR20vK3NBQVFHbS8rc0FBUUdtLytzQUpBQUkvK0lBQ3dBVUFBei96d0EvQUJJQVNQL3FBRlQvMkFCVy8rb0FYd0FUQUd2L3JnQjYvODBBZi8rZ0FJVC93UUNILzhBQXMvL1FBTGYvNmdDNi84WUF1d0FOQUwzLzZRQysvOVlBd2Yvb0FNTC91Z0RGLytrQXgvL0xBTWovMmdESi84Y0Jidi9UQWFiL3F3R28vODBCclAvTEFiVC95d0cxLzhzQnVQL3pBYnYvOHdHOC8rOEIzUC9BQWQvLzdnQUlBUEgvOEFENS8vQUJCUC94QVJ2Lzh3RXYvL0VCU3YvekFVei84d0ZVLy9FQUNBRHgvL0FBK2Yvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8vTUJWUC94QUFnQThmL3dBUG4vOEFFRS8vRUJHLy96QVMvLzhRRksvL01CVFAvekFWVC84UUFJQVBILzhBRDUvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovOHdGVS8vRUFDQUR4Ly9BQStmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vL01CVlAveEFBZ0E4Zi93QVBuLzhBRUUvL0VCRy8vekFTLy84UUZLLy9NQlRQL3pBVlQvOFFBSUFQSC84QUQ1Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6Lzh3RlUvL0VBQVFEeC8vVUFBUUR4Ly9VQUFRRHgvL1VBQVFEeC8vVUFBUUR4LzlZQUNRREYvK29BNlArNEFQSC80Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBTVgvNmdEby83Z0E4Zi9pQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWtBeGYvcUFPai91QUR4LytJQkJQL3dBUnYvOFFFdi8rc0JTdi8xQVZULzdBSGMvK29BQ1FERi8rb0E2UCs0QVBILzRnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSkFNWC82Z0RvLzdnQThmL2lBUVQvOEFFYi8vRUJMLy9yQVVyLzlRRlUvK3dCM1AvcUFBY0FTQUFOQU1FQUN3REMvK29BeFFBTUFPai95QUVYLy9FQjMvLzFBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUIwQUlmK3ZBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdENS85QUJMLytCQVRqL1pRRTUvNFVCTy85bUFUei8zUUZCLy9JQlNmK3hBVXYveWdGVC82a0JWUC9JQWF6LzlRRzAvL1VCdVAvSEFibi84UUc2LzgwQnUvL2RBYjMveEFBSUFQSC84QUQ1Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6Lzh3RlUvL0VBSFFBaC82OEFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVBuLzBBRXYvNEVCT1A5bEFUbi9oUUU3LzJZQlBQL2RBVUgvOGdGSi83RUJTLy9LQVZQL3FRRlUvOGdCclAvMUFiVC85UUc0LzhjQnVmL3hBYnIvelFHNy85MEJ2Zi9FQUFnQThmL3dBUG4vOEFFRS8vRUJHLy96QVMvLzhRRksvL01CVFAvekFWVC84UUFkQUNIL3J3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9BK2YvUUFTLy9nUUU0LzJVQk9mK0ZBVHYvWmdFOC85MEJRZi95QVVuL3NRRkwvOG9CVS8rcEFWVC95QUdzLy9VQnRQLzFBYmoveHdHNS8vRUJ1di9OQWJ2LzNRRzkvOFFBQ0FEeC8vQUErZi93QVFULzhRRWIvL01CTC8veEFVci84d0ZNLy9NQlZQL3hBQVFBQy8vbUFELy85QUJmLys4QlBQL3RBQVFBQy8vbUFELy85QUJmLys4QlBQL3RBQVFBQy8vbUFELy85QUJmLys4QlBQL3RBQVFBQy8vbUFELy85QUJmLys4QlBQL3RBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFiLzdRRzgvL1VBQlFCSS8rNEFXZi9xQWJyLzhBRzcvKzBCdmYvd0FBRUE4Zi8xQUFVQVNQL3VBRm4vNmdHNi8vQUJ1Ly90QWIzLzhBQUJBUEgvOVFBRkFFai83Z0JaLytvQnV2L3dBYnYvN1FHOS8vQUFBUUR4Ly9VQUJRQkkvKzRBV2YvcUFici84QUc3LyswQnZmL3dBQUVBOGYvMUFBVUFTUC91QUZuLzZnRzYvL0FCdS8vdEFiMy84QUFCQVBILzlRQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUFRRHgvOVlBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFCQWFiLzZ3QVVBRm4vd1FDei84VUF4ZiswQU9YLzF3RHgvN2tBK2YvcEFRVC9zZ0VYLzlJQkcvL0lBUy8vb0FFNS84VUJRZi9rQVVyL3pBRk0vOHdCVlAvTEFWWC83d0dvLytnQnJQL21BYlQvNXdHMS8rY0FDd0JaLzh3QnBnQVRBYWovOHdHcy8vRUJ0UC95QWJYLzhnRzQvNzBCdWYvdUFici91QUc3LzljQnZmKzNBQXNBV2YvTUFhWUFFd0dvLy9NQnJQL3hBYlQvOGdHMS8vSUJ1UCs5QWJuLzdnRzYvN2dCdS8vWEFiMy90d0FMQUZuL3pBR21BQk1CcVAvekFhei84UUcwLy9JQnRmL3lBYmovdlFHNS8rNEJ1dis0QWJ2LzF3RzkvN2NBQ3dCWi84d0JwZ0FUQWFqLzh3R3MvL0VCdFAveUFiWC84Z0c0LzcwQnVmL3VBYnIvdUFHNy85Y0J2ZiszQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFCQVBILzFnQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUFRRHgvOVlBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQUVBOGYvV0FBRUE4Zi9XQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhYi83UUc4Ly9VQUNRREYvK29BNlArNEFQSC80Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBSC8vM3dDdy8vTUFzdi93QUwvLzZnRFUvOThBNGYvZ0FWUC80QUdtLyswQnZQLzFBQWtBeGYvcUFPai91QUR4LytJQkJQL3dBUnYvOFFFdi8rc0JTdi8xQVZULzdBSGMvK29BQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnB2L3RBYnovOVFBSkFNWC82Z0RvLzdnQThmL2lBUVQvOEFFYi8vRUJMLy9yQVVyLzlRRlUvK3dCM1AvcUFBTUFTQUFVQUZZQUdBQlpBQkVBQXdCSUFCUUFWZ0FZQUZrQUVRQURBRWdBRkFCV0FCZ0FXUUFSQURzQVZQKy9BRm4vMFFCci8yd0Fldjl1QUgvL1F3Q0UvNndBaC8raEFMUC91QUM2LzM0QXZ2OTdBTUgvbXdEQy8za0F4Zit5QU1mL2ZnREkvMzBBeWY5OEFOVC9yd0RoQUE4QTVmL2tBT2Ivb0FEby8zUUE2ditBQVBIL3NnRDQvMzBBK2YreUFQci9nQUQ4LzNrQS9RQW9BUUwvZlFFRS8zOEJGLzltQVJ2LzJnRW4vNEVCS2YrWUFTMy9mUUV2LzdNQk0vK2dBVG4vZkFFNy81b0JQUDlzQVVILzVnRkcvMnNCU3YrU0FVei9yUUZRLzNzQlV3QVBBVlQva1FGVi8vSUJwdit2QWFqL3VRR3MvN2tCdFArNUFiWC91UUczLzd3QnVQL3hBYnYvOFFHOC8rMEIzUCt6QWQvLzhRQTdBRlQvdndCWi85RUFhLzlzQUhyL2JnQi8vME1BaFArc0FJZi9vUUN6LzdnQXV2OStBTDcvZXdEQi81c0F3djk1QU1YL3NnREgvMzRBeVA5OUFNbi9mQURVLzY4QTRRQVBBT1gvNUFEbS82QUE2UDkwQU9yL2dBRHgvN0lBK1A5OUFQbi9zZ0Q2LzRBQS9QOTVBUDBBS0FFQy8zMEJCUDkvQVJmL1pnRWIvOW9CSi8rQkFTbi9tQUV0LzMwQkwvK3pBVFAvb0FFNS8zd0JPLythQVR6L2JBRkIvK1lCUnY5ckFVci9rZ0ZNLzYwQlVQOTdBVk1BRHdGVS81RUJWZi95QWFiL3J3R28vN2tCclArNUFiVC91UUcxLzdrQnQvKzhBYmovOFFHNy8vRUJ2UC90QWR6L3N3SGYvL0VBT3dCVS83OEFXZi9SQUd2L2JBQjYvMjRBZi85REFJVC9yQUNILzZFQXMvKzRBTHIvZmdDKy8zc0F3ZitiQU1ML2VRREYvN0lBeC85K0FNai9mUURKLzN3QTFQK3ZBT0VBRHdEbC8rUUE1ditnQU9qL2RBRHEvNEFBOGYreUFQai9mUUQ1LzdJQSt2K0FBUHovZVFEOUFDZ0JBdjk5QVFUL2Z3RVgvMllCRy8vYUFTZi9nUUVwLzVnQkxmOTlBUy8vc3dFei82QUJPZjk4QVR2L21nRTgvMndCUWYvbUFVYi9hd0ZLLzVJQlRQK3RBVkQvZXdGVEFBOEJWUCtSQVZYLzhnR20vNjhCcVArNUFhei91UUcwLzdrQnRmKzVBYmYvdkFHNC8vRUJ1Ly94QWJ6LzdRSGMvN01CMy8veEFBRUJwdi9yQUFFQnB2L3JBQUVCcHYvckFBRUJwdi9yQUFFQnB2L3JBQUVCcHYvckFBa0FDd0FQQUQ4QURBQlUvK3NBWHdBT0FhYi95d0dvLytrQnJQL25BYlQvNXdHMS8rY0FKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhYi9xd0dvLzgwQnJQL0xBYlQveXdHMS84c0J1UC96QWJ2Lzh3RzgvKzhCM1AvQUFkLy83Z0FIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcHYrckFhai96UUdzLzhzQnRQL0xBYlgveXdHNC8vTUJ1Ly96QWJ6Lzd3SGMvOEFCMy8vdUFBZ0FXZi9sQUxQL3l3REkvK1FCcGdBTkFhai83UUdzLytzQnRQL3NBYlgvN0FBSUFGbi81UUN6LzhzQXlQL2tBYVlBRFFHby8rMEJyUC9yQWJULzdBRzEvK3dBQ0FCWi8rVUFzLy9MQU1qLzVBR21BQTBCcVAvdEFhei82d0cwLyt3QnRmL3NBQjBBSWYrdkFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0Q1LzlBQkwvK0JBVGovWlFFNS80VUJPLzltQVR6LzNRRkIvL0lCU2YreEFVdi95Z0ZULzZrQlZQL0lBYXovOVFHMC8vVUJ1UC9IQWJuLzhRRzYvODBCdS8vZEFiMy94QUFGQUVqLzdnQlovK29CdXYvd0Fidi83UUc5Ly9BQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbS8rMEJ2UC8xQUNRQUNQL2lBQXNBRkFBTS84OEFQd0FTQUVqLzZnQlUvOWdBVnYvcUFGOEFFd0JyLzY0QWV2L05BSC8vb0FDRS84RUFoLy9BQUxQLzBBQzMvK29BdXYvR0FMc0FEUUM5LytrQXZ2L1dBTUgvNkFEQy83b0F4Zi9wQU1mL3l3REkvOW9BeWYvSEFXNy8wd0dtLzZzQnFQL05BYXoveXdHMC84c0J0Zi9MQWJqLzh3RzcvL01CdlAvdkFkei93QUhmLys0QUhRQWgvNjhBVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FQbi8wQUV2LzRFQk9QOWxBVG4vaFFFNy8yWUJQUC9kQVVILzhnRkovN0VCUy8vS0FWUC9xUUZVLzhnQnJQLzFBYlQvOVFHNC84Y0J1Zi94QWJyL3pRRzcvOTBCdmYvRUFBSUJEQUFMQVZQLzVnQUZBRWovN2dCWi8rb0J1di93QWJ2LzdRRzkvL0FBQ0FCWi8rVUFzLy9MQU1qLzVBR21BQTBCcVAvdEFhei82d0cwLyt3QnRmL3NBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUZBQlovOEVBcy8vRkFNWC90QURsLzljQThmKzVBUG4vNlFFRS83SUJGLy9TQVJ2L3lBRXYvNkFCT2YvRkFVSC81QUZLLzh3QlRQL01BVlQveXdGVi8rOEJxUC9vQWF6LzVnRzAvK2NCdGYvbkFBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnB2L3RBYnovOVFBSkFGWUFEZ0IvL3RjQXYvK1lBTUwveHdEVS94SUE2UDlTQVViL3p3R20vNEFCMy8vWEFEc0FWUCsvQUZuLzBRQnIvMndBZXY5dUFILy9Rd0NFLzZ3QWgvK2hBTFAvdUFDNi8zNEF2djk3QU1IL213REMvM2tBeGYreUFNZi9mZ0RJLzMwQXlmOThBTlQvcndEaEFBOEE1Zi9rQU9iL29BRG8vM1FBNnYrQUFQSC9zZ0Q0LzMwQStmK3lBUHIvZ0FEOC8za0EvUUFvQVFML2ZRRUUvMzhCRi85bUFSdi8yZ0VuLzRFQktmK1lBUzMvZlFFdi83TUJNLytnQVRuL2ZBRTcvNW9CUFA5c0FVSC81Z0ZHLzJzQlN2K1NBVXovclFGUS8zc0JVd0FQQVZUL2tRRlYvL0lCcHYrdkFhai91UUdzLzdrQnRQKzVBYlgvdVFHMy83d0J1UC94QWJ2LzhRRzgvKzBCM1ArekFkLy84UUFrQUFqLzRnQUxBQlFBRFAvUEFEOEFFZ0JJLytvQVZQL1lBRmIvNmdCZkFCTUFhLyt1QUhyL3pRQi8vNkFBaFAvQkFJZi93QUN6LzlBQXQvL3FBTHIveGdDN0FBMEF2Zi9wQUw3LzFnREIvK2dBd3YrNkFNWC82UURILzhzQXlQL2FBTW4veHdGdS85TUJwdityQWFqL3pRR3MvOHNCdFAvTEFiWC95d0c0Ly9NQnUvL3pBYnovN3dIYy84QUIzLy91QUJnQXMvL1VBTDMvN1FDL0FCRUF4Zi9nQU1mLzV3REkvK1VBeWYvdUFOUUFFZ0RsLytrQThmL1hBUy8vMXdFNS85TUJPLy9XQVR6L3hRRkIvK2NCU1FBTkFVc0FEQUZVLzlZQlZmL3lBYWovNlFHcy8rY0J0UC9uQWJYLzZRSGYvL0FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQ1FBQ1AvaUFBc0FGQUFNLzg4QVB3QVNBRWovNmdCVS85Z0FWdi9xQUY4QUV3QnIvNjRBZXYvTkFILy9vQUNFLzhFQWgvL0FBTFAvMEFDMy8rb0F1di9HQUxzQURRQzkvK2tBdnYvV0FNSC82QURDLzdvQXhmL3BBTWYveXdESS85b0F5Zi9IQVc3LzB3R20vNnNCcVAvTkFhei95d0cwLzhzQnRmL0xBYmovOHdHNy8vTUJ2UC92QWR6L3dBSGYvKzRBQVFEeC85WUFDUURGLytvQTZQKzRBUEgvNGdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBSkFNWC82Z0RvLzdnQThmL2lBUVQvOEFFYi8vRUJMLy9yQVVyLzlRRlUvK3dCM1AvcUFBVUFTUC91QUZuLzZnRzYvL0FCdS8vdEFiMy84QUF5QUZUL2ZnQlovNTBBYS83eEFIcis5QUIvL3FzQWhQOWVBSWYvU3dDei8zSUF1djhQQUw3L0NnREIvMEVBd3Y4SEFNWC9hQURIL3c4QXlQOE9BTW4vREFEVS8yTUE0UUFGQU9YL3ZRRG0vMGtBNlA3K0FPci9Fd0R4LzJnQStQOE9BUG4vYUFENi94TUEvUDhIQVAwQU1BRUMvdzRCQlA4UkFSZis1d0ViLzZ3QkovOFZBU24vUEFFdC93NEJMLzlxQVRQL1NRRTUvd3dCTy84L0FUeis4UUZCLzhBQlJ2N3ZBVXIvTVFGTS8xOEJVUDhLQVZNQUJRRlUvekFCVmYvVkFkei9hZ0hmLzlNQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFCQWFiLzZ3QVVBRm4vd1FDei84VUF4ZiswQU9YLzF3RHgvN2tBK2YvcEFRVC9zZ0VYLzlJQkcvL0lBUy8vb0FFNS84VUJRZi9rQVVyL3pBRk0vOHdCVlAvTEFWWC83d0dvLytnQnJQL21BYlQvNXdHMS8rY0FGQUJaLzhFQXMvL0ZBTVgvdEFEbC85Y0E4Zis1QVBuLzZRRUUvN0lCRi8vU0FSdi95QUV2LzZBQk9mL0ZBVUgvNUFGSy84d0JUUC9NQVZUL3l3RlYvKzhCcVAvb0Fhei81Z0cwLytjQnRmL25BQklBMVArdUFPRUFFZ0RtLytBQTZQK3RBT3IvMWdENC85OEEvUC9TQVFMLzRBRVgvODRCSi8vZEFTbi80Z0V0LytBQk0vL2dBVG4vNlFFOC85b0JSdis5QVZELzN3RlRBQkVBSFFBaC82OEFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVBuLzBBRXYvNEVCT1A5bEFUbi9oUUU3LzJZQlBQL2RBVUgvOGdGSi83RUJTLy9LQVZQL3FRRlUvOGdCclAvMUFiVC85UUc0LzhjQnVmL3hBYnIvelFHNy85MEJ2Zi9FQUFJQkRBQUxBVlAvNWdBeUFGVC9mZ0JaLzUwQWEvN3hBSHIrOUFCLy9xc0FoUDllQUlmL1N3Q3ovM0lBdXY4UEFMNy9DZ0RCLzBFQXd2OEhBTVgvYUFESC93OEF5UDhPQU1uL0RBRFUvMk1BNFFBRkFPWC92UURtLzBrQTZQNytBT3IvRXdEeC8yZ0ErUDhPQVBuL2FBRDYveE1BL1A4SEFQMEFNQUVDL3c0QkJQOFJBUmYrNXdFYi82d0JKLzhWQVNuL1BBRXQvdzRCTC85cUFUUC9TUUU1L3d3Qk8vOC9BVHorOFFGQi84QUJSdjd2QVVyL01RRk0vMThCVVA4S0FWTUFCUUZVL3pBQlZmL1ZBZHovYWdIZi85TUFCUUJJLys0QVdmL3FBYnIvOEFHNy8rMEJ2Zi93QUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcHYvdEFiei85UUFKQUZZQURnQi8vdGNBdi8rWUFNTC94d0RVL3hJQTZQOVNBVWIvendHbS80QUIzLy9YQUFRQUMvL21BRC8vOUFCZi8rOEJQUC90QURzQVZQKy9BRm4vMFFCci8yd0Fldjl1QUgvL1F3Q0UvNndBaC8raEFMUC91QUM2LzM0QXZ2OTdBTUgvbXdEQy8za0F4Zit5QU1mL2ZnREkvMzBBeWY5OEFOVC9yd0RoQUE4QTVmL2tBT2Ivb0FEby8zUUE2ditBQVBIL3NnRDQvMzBBK2YreUFQci9nQUQ4LzNrQS9RQW9BUUwvZlFFRS8zOEJGLzltQVJ2LzJnRW4vNEVCS2YrWUFTMy9mUUV2LzdNQk0vK2dBVG4vZkFFNy81b0JQUDlzQVVILzVnRkcvMnNCU3YrU0FVei9yUUZRLzNzQlV3QVBBVlQva1FGVi8vSUJwdit2QWFqL3VRR3MvN2tCdFArNUFiWC91UUczLzd3QnVQL3hBYnYvOFFHOC8rMEIzUCt6QWQvLzhRQVlBTFAvMUFDOS8rMEF2d0FSQU1YLzRBREgvK2NBeVAvbEFNbi83Z0RVQUJJQTVmL3BBUEgvMXdFdi85Y0JPZi9UQVR2LzFnRTgvOFVCUWYvbkFVa0FEUUZMQUF3QlZQL1dBVlgvOGdHby8ra0JyUC9uQWJULzV3RzEvK2tCMy8vd0FBZ0E4Zi93QVBuLzhBRUUvL0VCRy8vekFTLy84UUZLLy9NQlRQL3pBVlQvOFFBQkFQSC85UUFKQU1YLzZnRG8vN2dBOGYvaUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFjQXhmL3FBT2ovN2dEeC85WUErZi90QVMvLzdBRlUvK3dCM1Avb0FBY0FTQUFOQU1FQUN3REMvK29BeFFBTUFPai95QUVYLy9FQjMvLzFBQUVCRi8veEFBRUE4Zi8xQUFJQTZQOW9BUmYvN2dBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQUpBQXNBRHdBL0FBd0FWUC9yQUY4QURnR20vOHNCcVAvcEFhei81d0cwLytjQnRmL25BQWtBQ3dBUEFEOEFEQUJVLytzQVh3QU9BYWIveXdHby8ra0JyUC9uQWJULzV3RzEvK2NBQ1FBTEFBOEFQd0FNQUZULzZ3QmZBQTRCcHYvTEFhai82UUdzLytjQnRQL25BYlgvNXdBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcHYrckFhai96UUdzLzhzQnRQL0xBYlgveXdHNC8vTUJ1Ly96QWJ6Lzd3SGMvOEFCMy8vdUFBY0FTQUFOQU1FQUN3REMvK29BeFFBTUFPai95QUVYLy9FQjMvLzFBQUVBV1FBTEFBRUFXUUFMQUFFQVdRQUxBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUJBUEgvMWdBZEFDSC9yd0JXLys4QVdmL2ZBSmIvN2dDei8rVUF0UC9SQUw4QUVRREYvOGdBMUFBVEFPSC94UUR4LzhvQStmL1FBUy8vZ1FFNC8yVUJPZitGQVR2L1pnRTgvOTBCUWYveUFVbi9zUUZMLzhvQlUvK3BBVlQveUFHcy8vVUJ0UC8xQWJqL3h3RzUvL0VCdXYvTkFidi8zUUc5LzhRQUNBRHgvL0FBK2Yvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8vTUJWUC94QUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhYi83UUc4Ly9VQUJRQkkvKzRBV2YvcUFici84QUc3LyswQnZmL3dBQUVBOGYvMUFBa0FDd0FVQUQ4QUVRQlUvK0lBWHdBVEFhYi90QUdvLzlrQnJQL1pBYlQvMlFHMS85a0FCd0JJQUEwQXdRQUxBTUwvNmdERkFBd0E2UC9JQVJmLzhRSGYvL1VBQkFBTC8rWUFQLy8wQUYvLzd3RTgvKzBBSkFBSS8rSUFDd0FVQUF6L3p3QS9BQklBU1AvcUFGVC8yQUJXLytvQVh3QVRBR3YvcmdCNi84MEFmLytnQUlUL3dRQ0gvOEFBcy8vUUFMZi82Z0M2LzhZQXV3QU5BTDMvNlFDKy85WUF3Zi9vQU1ML3VnREYvK2tBeC8vTEFNai8yZ0RKLzhjQmJ2L1RBYWIvcXdHby84MEJyUC9MQWJUL3l3RzEvOHNCdVAvekFidi84d0c4Lys4QjNQL0FBZC8vN2dBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUdBQ3ovOVFBdmYvdEFMOEFFUURGLytBQXgvL25BTWovNVFESi8rNEExQUFTQU9YLzZRRHgvOWNCTC8vWEFUbi8wd0U3LzlZQlBQL0ZBVUgvNXdGSkFBMEJTd0FNQVZULzFnRlYvL0lCcVAvcEFhei81d0cwLytjQnRmL3BBZC8vOEFBQkFSZi84UUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFIUUFoLzY4QVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUG4vMEFFdi80RUJPUDlsQVRuL2hRRTcvMllCUFAvZEFVSC84Z0ZKLzdFQlMvL0tBVlAvcVFGVS84Z0JyUC8xQWJULzlRRzQvOGNCdWYveEFici96UUc3LzkwQnZmL0VBQWdBOGYvd0FQbi84QUVFLy9FQkcvL3pBUy8vOFFGSy8vTUJUUC96QVZULzhRQWRBQ0gvcndCVy8rOEFXZi9mQUpiLzdnQ3ovK1VBdFAvUkFMOEFFUURGLzhnQTFBQVRBT0gveFFEeC84b0ErZi9RQVMvL2dRRTQvMlVCT2YrRkFUdi9aZ0U4LzkwQlFmL3lBVW4vc1FGTC84b0JVLytwQVZUL3lBR3MvL1VCdFAvMUFiai94d0c1Ly9FQnV2L05BYnYvM1FHOS84UUFDQUR4Ly9BQStmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vL01CVlAveEFBVUFTUC91QUZuLzZnRzYvL0FCdS8vdEFiMy84QUFCQVBILzlRQUJBUEgvOVFBQkFQSC85UUFZQUxQLzFBQzkvKzBBdndBUkFNWC80QURILytjQXlQL2xBTW4vN2dEVUFCSUE1Zi9wQVBILzF3RXYvOWNCT2YvVEFUdi8xZ0U4LzhVQlFmL25BVWtBRFFGTEFBd0JWUC9XQVZYLzhnR28vK2tCclAvbkFiVC81d0cxLytrQjMvL3dBQUVCRi8veEFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWIvN1FHOC8vVUFDUURGLytvQTZQKzRBUEgvNGdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FKQU1YLzZnRG8vN2dBOGYvaUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFjQXhmL3FBT2ovN2dEeC85WUErZi90QVMvLzdBRlUvK3dCM1Avb0FCSUExUCt1QU9FQUVnRG0vK0FBNlArdEFPci8xZ0Q0Lzk4QS9QL1NBUUwvNEFFWC84NEJKLy9kQVNuLzRnRXQvK0FCTS8vZ0FUbi82UUU4LzlvQlJ2KzlBVkQvM3dGVEFCRUFCd0JJQUEwQXdRQUxBTUwvNmdERkFBd0E2UC9JQVJmLzhRSGYvL1VBRWdEVS82NEE0UUFTQU9iLzRBRG8vNjBBNnYvV0FQai8zd0Q4LzlJQkF2L2dBUmYvemdFbi85MEJLZi9pQVMzLzRBRXovK0FCT2YvcEFUei8yZ0ZHLzcwQlVQL2ZBVk1BRVFBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQVNBTlQvcmdEaEFCSUE1di9nQU9qL3JRRHEvOVlBK1AvZkFQei8wZ0VDLytBQkYvL09BU2YvM1FFcC8rSUJMZi9nQVRQLzRBRTUvK2tCUFAvYUFVYi92UUZRLzk4QlV3QVJBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUJnQXMvL1VBTDMvN1FDL0FCRUF4Zi9nQU1mLzV3REkvK1VBeWYvdUFOUUFFZ0RsLytrQThmL1hBUy8vMXdFNS85TUJPLy9XQVR6L3hRRkIvK2NCU1FBTkFVc0FEQUZVLzlZQlZmL3lBYWovNlFHcy8rY0J0UC9uQWJYLzZRSGYvL0FBQVFFWC8vRUFIUUFoLzY4QVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUG4vMEFFdi80RUJPUDlsQVRuL2hRRTcvMllCUFAvZEFVSC84Z0ZKLzdFQlMvL0tBVlAvcVFGVS84Z0JyUC8xQWJULzlRRzQvOGNCdWYveEFici96UUc3LzkwQnZmL0VBQWdBOGYvd0FQbi84QUVFLy9FQkcvL3pBUy8vOFFGSy8vTUJUUC96QVZULzhRQWRBQ0gvcndCVy8rOEFXZi9mQUpiLzdnQ3ovK1VBdFAvUkFMOEFFUURGLzhnQTFBQVRBT0gveFFEeC84b0ErZi9RQVMvL2dRRTQvMlVCT2YrRkFUdi9aZ0U4LzkwQlFmL3lBVW4vc1FGTC84b0JVLytwQVZUL3lBR3MvL1VCdFAvMUFiai94d0c1Ly9FQnV2L05BYnYvM1FHOS84UUFDQUR4Ly9BQStmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vL01CVlAveEFCMEFJZit2QUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRDUvOUFCTC8rQkFUai9aUUU1LzRVQk8vOW1BVHovM1FGQi8vSUJTZit4QVV2L3lnRlQvNmtCVlAvSUFhei85UUcwLy9VQnVQL0hBYm4vOFFHNi84MEJ1Ly9kQWIzL3hBQUlBUEgvOEFENS8vQUJCUC94QVJ2Lzh3RXYvL0VCU3YvekFVei84d0ZVLy9FQUhRQWgvNjhBVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FQbi8wQUV2LzRFQk9QOWxBVG4vaFFFNy8yWUJQUC9kQVVILzhnRkovN0VCUy8vS0FWUC9xUUZVLzhnQnJQLzFBYlQvOVFHNC84Y0J1Zi94QWJyL3pRRzcvOTBCdmYvRUFBZ0E4Zi93QVBuLzhBRUUvL0VCRy8vekFTLy84UUZLLy9NQlRQL3pBVlQvOFFBZEFDSC9yd0JXLys4QVdmL2ZBSmIvN2dDei8rVUF0UC9SQUw4QUVRREYvOGdBMUFBVEFPSC94UUR4LzhvQStmL1FBUy8vZ1FFNC8yVUJPZitGQVR2L1pnRTgvOTBCUWYveUFVbi9zUUZMLzhvQlUvK3BBVlQveUFHcy8vVUJ0UC8xQWJqL3h3RzUvL0VCdXYvTkFidi8zUUc5LzhRQUNBRHgvL0FBK2Yvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8vTUJWUC94QUIwQUlmK3ZBRmIvN3dCWi85OEFsdi91QUxQLzVRQzAvOUVBdndBUkFNWC95QURVQUJNQTRmL0ZBUEgveWdENS85QUJMLytCQVRqL1pRRTUvNFVCTy85bUFUei8zUUZCLy9JQlNmK3hBVXYveWdGVC82a0JWUC9JQWF6LzlRRzAvL1VCdVAvSEFibi84UUc2LzgwQnUvL2RBYjMveEFBSUFQSC84QUQ1Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6Lzh3RlUvL0VBSFFBaC82OEFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVBuLzBBRXYvNEVCT1A5bEFUbi9oUUU3LzJZQlBQL2RBVUgvOGdGSi83RUJTLy9LQVZQL3FRRlUvOGdCclAvMUFiVC85UUc0LzhjQnVmL3hBYnIvelFHNy85MEJ2Zi9FQUFnQThmL3dBUG4vOEFFRS8vRUJHLy96QVMvLzhRRksvL01CVFAvekFWVC84UUFkQUNIL3J3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9BK2YvUUFTLy9nUUU0LzJVQk9mK0ZBVHYvWmdFOC85MEJRZi95QVVuL3NRRkwvOG9CVS8rcEFWVC95QUdzLy9VQnRQLzFBYmoveHdHNS8vRUJ1di9OQWJ2LzNRRzkvOFFBQ0FEeC8vQUErZi93QVFULzhRRWIvL01CTC8veEFVci84d0ZNLy9NQlZQL3hBQjBBSWYrdkFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0Q1LzlBQkwvK0JBVGovWlFFNS80VUJPLzltQVR6LzNRRkIvL0lCU2YreEFVdi95Z0ZULzZrQlZQL0lBYXovOVFHMC8vVUJ1UC9IQWJuLzhRRzYvODBCdS8vZEFiMy94QUFJQVBILzhBRDUvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovOHdGVS8vRUFIUUFoLzY4QVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUG4vMEFFdi80RUJPUDlsQVRuL2hRRTcvMllCUFAvZEFVSC84Z0ZKLzdFQlMvL0tBVlAvcVFGVS84Z0JyUC8xQWJULzlRRzQvOGNCdWYveEFici96UUc3LzkwQnZmL0VBQWdBOGYvd0FQbi84QUVFLy9FQkcvL3pBUy8vOFFGSy8vTUJUUC96QVZULzhRQWRBQ0gvcndCVy8rOEFXZi9mQUpiLzdnQ3ovK1VBdFAvUkFMOEFFUURGLzhnQTFBQVRBT0gveFFEeC84b0ErZi9RQVMvL2dRRTQvMlVCT2YrRkFUdi9aZ0U4LzkwQlFmL3lBVW4vc1FGTC84b0JVLytwQVZUL3lBR3MvL1VCdFAvMUFiai94d0c1Ly9FQnV2L05BYnYvM1FHOS84UUFDQUR4Ly9BQStmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vL01CVlAveEFCMEFJZit2QUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRDUvOUFCTC8rQkFUai9aUUU1LzRVQk8vOW1BVHovM1FGQi8vSUJTZit4QVV2L3lnRlQvNmtCVlAvSUFhei85UUcwLy9VQnVQL0hBYm4vOFFHNi84MEJ1Ly9kQWIzL3hBQUlBUEgvOEFENS8vQUJCUC94QVJ2Lzh3RXYvL0VCU3YvekFVei84d0ZVLy9FQUJRQkkvKzRBV2YvcUFici84QUc3LyswQnZmL3dBQUVBOGYvMUFBVUFTUC91QUZuLzZnRzYvL0FCdS8vdEFiMy84QUFCQVBILzlRQUZBRWovN2dCWi8rb0J1di93QWJ2LzdRRzkvL0FBQVFEeC8vVUFCUUJJLys0QVdmL3FBYnIvOEFHNy8rMEJ2Zi93QUFFQThmLzFBQVVBU1AvdUFGbi82Z0c2Ly9BQnUvL3RBYjMvOEFBQkFQSC85UUFGQUVqLzdnQlovK29CdXYvd0Fidi83UUc5Ly9BQUFRRHgvL1VBQlFCSS8rNEFXZi9xQWJyLzhBRzcvKzBCdmYvd0FBRUE4Zi8xQUFVQVNQL3VBRm4vNmdHNi8vQUJ1Ly90QWIzLzhBQUJBUEgvOVFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFiLzdRRzgvL1VBQ1FERi8rb0E2UCs0QVBILzRnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR20vKzBCdlAvMUFBa0F4Zi9xQU9qL3VBRHgvK0lCQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcHYvdEFiei85UUFKQU1YLzZnRG8vN2dBOGYvaUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhYi83UUc4Ly9VQUNRREYvK29BNlArNEFQSC80Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBSC8vM3dDdy8vTUFzdi93QUwvLzZnRFUvOThBNGYvZ0FWUC80QUdtLyswQnZQLzFBQWtBeGYvcUFPai91QUR4LytJQkJQL3dBUnYvOFFFdi8rc0JTdi8xQVZULzdBSGMvK29BQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnB2L3RBYnovOVFBSkFNWC82Z0RvLzdnQThmL2lBUVQvOEFFYi8vRUJMLy9yQVVyLzlRRlUvK3dCM1AvcUFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWIvN1FHOC8vVUFDUURGLytvQTZQKzRBUEgvNGdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FKQU1YLzZnRG8vN2dBOGYvaUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFFQnB2L3JBQUVCcHYvckFDUUFDUC9pQUFzQUZBQU0vODhBUHdBU0FFai82Z0JVLzlnQVZ2L3FBRjhBRXdCci82NEFldi9OQUgvL29BQ0UvOEVBaC8vQUFMUC8wQUMzLytvQXV2L0dBTHNBRFFDOS8ra0F2di9XQU1ILzZBREMvN29BeGYvcEFNZi95d0RJLzlvQXlmL0hBVzcvMHdHbS82c0JxUC9OQWF6L3l3RzAvOHNCdGYvTEFiai84d0c3Ly9NQnZQL3ZBZHovd0FIZi8rNEFCd0JJQUEwQXdRQUxBTUwvNmdERkFBd0E2UC9JQVJmLzhRSGYvL1VBSkFBSS8rSUFDd0FVQUF6L3p3QS9BQklBU1AvcUFGVC8yQUJXLytvQVh3QVRBR3YvcmdCNi84MEFmLytnQUlUL3dRQ0gvOEFBcy8vUUFMZi82Z0M2LzhZQXV3QU5BTDMvNlFDKy85WUF3Zi9vQU1ML3VnREYvK2tBeC8vTEFNai8yZ0RKLzhjQmJ2L1RBYWIvcXdHby84MEJyUC9MQWJUL3l3RzEvOHNCdVAvekFidi84d0c4Lys4QjNQL0FBZC8vN2dBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQWtBQWovNGdBTEFCUUFEUC9QQUQ4QUVnQkkvK29BVlAvWUFGYi82Z0JmQUJNQWEvK3VBSHIvelFCLy82QUFoUC9CQUlmL3dBQ3ovOUFBdC8vcUFMci94Z0M3QUEwQXZmL3BBTDcvMWdEQi8rZ0F3dis2QU1YLzZRREgvOHNBeVAvYUFNbi94d0Z1LzlNQnB2K3JBYWovelFHcy84c0J0UC9MQWJYL3l3RzQvL01CdS8vekFiei83d0hjLzhBQjMvL3VBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUJRQVdmL0JBTFAveFFERi83UUE1Zi9YQVBIL3VRRDUvK2tCQlAreUFSZi8wZ0ViLzhnQkwvK2dBVG4veFFGQi8rUUJTdi9NQVV6L3pBRlUvOHNCVmYvdkFhai82QUdzLytZQnRQL25BYlgvNXdBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBT3dCVS83OEFXZi9SQUd2L2JBQjYvMjRBZi85REFJVC9yQUNILzZFQXMvKzRBTHIvZmdDKy8zc0F3ZitiQU1ML2VRREYvN0lBeC85K0FNai9mUURKLzN3QTFQK3ZBT0VBRHdEbC8rUUE1ditnQU9qL2RBRHEvNEFBOGYreUFQai9mUUQ1LzdJQSt2K0FBUHovZVFEOUFDZ0JBdjk5QVFUL2Z3RVgvMllCRy8vYUFTZi9nUUVwLzVnQkxmOTlBUy8vc3dFei82QUJPZjk4QVR2L21nRTgvMndCUWYvbUFVYi9hd0ZLLzVJQlRQK3RBVkQvZXdGVEFBOEJWUCtSQVZYLzhnR20vNjhCcVArNUFhei91UUcwLzdrQnRmKzVBYmYvdkFHNC8vRUJ1Ly94QWJ6LzdRSGMvN01CMy8veEFCZ0FzLy9VQUwzLzdRQy9BQkVBeGYvZ0FNZi81d0RJLytVQXlmL3VBTlFBRWdEbC8ra0E4Zi9YQVMvLzF3RTUvOU1CTy8vV0FUei94UUZCLytjQlNRQU5BVXNBREFGVS85WUJWZi95QWFqLzZRR3MvK2NCdFAvbkFiWC82UUhmLy9BQUFRRVgvL0VBTWdCVS8zNEFXZitkQUd2KzhRQjYvdlFBZi82ckFJVC9YZ0NILzBzQXMvOXlBTHIvRHdDKy93b0F3ZjlCQU1ML0J3REYvMmdBeC84UEFNai9EZ0RKL3d3QTFQOWpBT0VBQlFEbC83MEE1djlKQU9qKy9nRHEveE1BOGY5b0FQai9EZ0Q1LzJnQSt2OFRBUHovQndEOUFEQUJBdjhPQVFUL0VRRVgvdWNCRy8rc0FTZi9GUUVwL3p3QkxmOE9BUy8vYWdFei8wa0JPZjhNQVR2L1B3RTgvdkVCUWYvQUFVYis3d0ZLL3pFQlRQOWZBVkQvQ2dGVEFBVUJWUDh3QVZYLzFRSGMvMm9CMy8vVEFBSUE2UDlvQVJmLzdnQVlBTFAvMUFDOS8rMEF2d0FSQU1YLzRBREgvK2NBeVAvbEFNbi83Z0RVQUJJQTVmL3BBUEgvMXdFdi85Y0JPZi9UQVR2LzFnRTgvOFVCUWYvbkFVa0FEUUZMQUF3QlZQL1dBVlgvOGdHby8ra0JyUC9uQWJULzV3RzEvK2tCMy8vd0FBRUJGLy94QUFFQThmL1dBQW9BNGYvREFQSC96d0Q1LzlRQkwvL09BVGovNXdFNy85OEJTZi9SQVV2LzdBRlQvNkFCVlAvUkFESUFWUDkrQUZuL25RQnIvdkVBZXY3MEFILytxd0NFLzE0QWgvOUxBTFAvY2dDNi93OEF2djhLQU1IL1FRREMvd2NBeGY5b0FNZi9Ed0RJL3c0QXlmOE1BTlQvWXdEaEFBVUE1Zis5QU9iL1NRRG8vdjRBNnY4VEFQSC9hQUQ0L3c0QStmOW9BUHIvRXdEOC93Y0EvUUF3QVFML0RnRUUveEVCRi83bkFSdi9yQUVuL3hVQktmODhBUzMvRGdFdi8yb0JNLzlKQVRuL0RBRTcvejhCUFA3eEFVSC93QUZHL3U4QlN2OHhBVXovWHdGUS93b0JVd0FGQVZUL01BRlYvOVVCM1A5cUFkLy8wd0FVQUZuL3dRQ3ovOFVBeGYrMEFPWC8xd0R4LzdrQStmL3BBUVQvc2dFWC85SUJHLy9JQVMvL29BRTUvOFVCUWYva0FVci96QUZNLzh3QlZQL0xBVlgvN3dHby8rZ0JyUC9tQWJULzV3RzEvK2NBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQWtBQWovNGdBTEFCUUFEUC9QQUQ4QUVnQkkvK29BVlAvWUFGYi82Z0JmQUJNQWEvK3VBSHIvelFCLy82QUFoUC9CQUlmL3dBQ3ovOUFBdC8vcUFMci94Z0M3QUEwQXZmL3BBTDcvMWdEQi8rZ0F3dis2QU1YLzZRREgvOHNBeVAvYUFNbi94d0Z1LzlNQnB2K3JBYWovelFHcy84c0J0UC9MQWJYL3l3RzQvL01CdS8vekFiei83d0hjLzhBQjMvL3VBQUUxd0FBRUFBQUFCZ0FXQUd3RG5nUWNCSVlFeUFBVkFEZ0FGQUE1QUNZQU93QVdBUlFBRkFJTEFCWUNrZ0FtQXBRQUZnS1dBQllDL1FBV0F3d0FGZ01QQUJZRFJRQW1BMGNBSmdOSkFDWURTd0FXQTJBQUZBTm9BQllENmdBV0Erd0FGZ1B1QUJZRUV3QVdBTXdBRHY3dUFCRCs3Z0FqLzBBQUxQOHdBRFlBRkFCRC85NEFSZi9yQUViLzZ3QkgvK3NBU2YvckFGSC82d0JULytzQVYvL3FBRmovNkFCYi8rZ0FrZi9yQUpYLzZ3Q1gvK29BcmY5QUFLLy9RQUMyLytzQXVQL29BTVAvNndERS8rc0F4di9xQU0wQUZBRFJBQlFBOHYvckFQNy82d0VJLzBBQkUvL3JBUlgvNkFFWi8rc0JIZi9yQVM0QUZBRTEvK3NCTmdBVUFVZi82d0ZJLytzQlV2L3JBV2YrN2dGci91NEJiLzd1QVhEKzdnSHgvMEFCOHY5QUFmUC9RQUgwLzBBQjlmOUFBZmIvUUFIMy8wQUNEUC9lQWczLzNnSU8vOTRDRC8vZUFoRC8zZ0lSLzk0Q0V2L2VBaFAvNndJVS8rc0NGZi9yQWhiLzZ3SVgvK3NDSGYvckFoNy82d0lmLytzQ0lQL3JBaUgvNndJaS8rb0NJLy9xQWlULzZnSWwvK29DSnYvb0FpZi82QUlvLzBBQ0tmL2VBaXIvUUFJci85NENMUDlBQWkzLzNnSXYvK3NDTWYvckFqUC82d0kxLytzQ04vL3JBam4vNndJNy8rc0NQZi9yQWovLzZ3SkIvK3NDUS8vckFrWC82d0pILytzQ1NmL3JBbGYvTUFKci8rc0NiZi9yQW0vLzZ3S0FBQlFDZ2dBVUFvUUFGQUtILytvQ2lmL3FBb3YvNmdLTi8rb0NqLy9xQXBILzZnS1YvK2dDK1A5QUF3RC9RQU1RLytzREZQL3FBeGIvNndNWS8rZ0RHLy9xQXh6LzZ3TWQvK29ESlA4d0F5ai9RQU16QUJRRE5mL2VBemIvNndNNC8rc0RPdi9yQXp2LzZBTTkvK3NEUlAvb0Ewei82QU5WLzBBRFZ2L2VBMXovNndOaC8rZ0RZdi9yQTJmLzZ3TnAvK2dEYnY5QUEyLy8zZ053LzBBRGNmL2VBM1gvNndOMy8rc0RlUC9yQTRMLzZ3T0UvK3NEaHYvckE0ci82QU9NLytnRGp2L29BNVgvNndPWS8wQURtZi9lQTVyL1FBT2IvOTREblA5QUE1My8zZ09lLzBBRG4vL2VBNkQvUUFPaC85NERvdjlBQTZQLzNnT2svMEFEcGYvZUE2Yi9RQU9uLzk0RHFQOUFBNm4vM2dPcS8wQURxLy9lQTZ6L1FBT3QvOTREcnY5QUE2Ly8zZ094LytzRHMvL3JBN1gvNndPMy8rc0R1Zi9yQTd2LzZ3TzkvK3NEdi8vckE4WC82d1BILytzRHlmL3JBOHYvNndQTi8rc0R6Ly9yQTlILzZ3UFQvK3NEMWYvckE5Zi82d1BaLytzRDIvL3JBOTMvNmdQZi8rb0Q0Zi9xQStQLzZnUGwvK29ENS8vcUErbi82Z1ByLytnRDdmL29BKy8vNkFQMkFCUUFId0EyLzk4QU9QL2tBRG4vN0FBNy85MEF6Zi9mQU5ILzN3RVUvK1FCTHYvZkFUYi8zd0lMLzkwQ2dQL2ZBb0wvM3dLRS85OENrdi9zQXBULzNRS1cvOTBDL2YvZEF3ei8zUU1QLzkwRE0vL2ZBMFgvN0FOSC8rd0RTZi9zQTB2LzNRTmcvK1FEYVAvZEErci8zUVBzLzkwRDd2L2RBL2IvM3dRVC85MEFHZ0EyLzg0QU9QL3RBRHYvMEFETi84NEEwZi9PQVJULzdRRXUvODRCTnYvT0Fndi8wQUtBLzg0Q2d2L09Bb1QvemdLVS85QUNsdi9RQXYzLzBBTU0vOUFERC8vUUF6UC96Z05MLzlBRFlQL3RBMmovMEFQcS85QUQ3UC9RQSs3LzBBUDIvODRFRS8vUUFCQUFMUC91QURmLzdnSUgvKzRDQ1AvdUFnbi83Z0lLLys0Q1YvL3VBb2IvN2dLSS8rNENpdi91QW96LzdnS08vKzRDa1AvdUF5VC83Z1BjLys0RDN2L3VBRDBBUmYvb0FFYi82QUJILytnQVNmL29BRlAvNkFDUi8rZ0FsZi9vQUxiLzZBREQvK2dBeFAvb0FQTC82QUQrLytnQkdmL29BUjMvNkFFMS8rZ0JSLy9vQVVqLzZBRlMvK2dDRS8vb0FoVC82QUlWLytnQ0Z2L29BaGYvNkFJdi8rZ0NNZi9vQWpQLzZBSTEvK2dDTi8vb0Fqbi82QUk3LytnQ1BmL29Bai8vNkFKQi8rZ0NRLy9vQWtYLzZBSkgvK2dDU2Yvb0F4RC82QU0yLytnRE92L29BejMvNkFOYy8rZ0RZdi9vQTJmLzZBTjEvK2dEZC8vb0Ezai82QU9FLytnRGxmL29BN0gvNkFPei8rZ0R0Zi9vQTdmLzZBTzUvK2dEdS8vb0E3My82QU8vLytnRDAvL29BOVgvNkFQWC8rZ0QyLy9vQUFFd0VnQUVBQUFBTEFCaUFJd0JnZ0hnQWZvQ1BBS3lBNWdFZmdWWUJmSUlqQXBTQzJBTkpnMVlEWW9PQ0E5T0VOZ1NiaE9BRk80WEFCZTJHUndaMGhxTUd4SWJjQnd1SEtRZFVoMThIczRoRENFdUlrUWlvaU1nSTBvamZDT09JN2dBQ2dBRUFCQUFDUUFRQVdVQUVBRm1BQkFCYUFBUUFXa0FFQUZxQUJBRFRRQVFBMDRBRUFOU0FCQUFQUUJGLyt3QVJ2L3NBRWYvN0FCSi8rd0FVLy9zQUpILzdBQ1YvK3dBdHYvc0FNUC83QURFLyt3QTh2L3NBUDcvN0FFWi8rd0JIZi9zQVRYLzdBRkgvK3dCU1Avc0FWTC83QUlULyt3Q0ZQL3NBaFgvN0FJVy8rd0NGLy9zQWkvLzdBSXgvK3dDTS8vc0FqWC83QUkzLyt3Q09mL3NBanYvN0FJOS8rd0NQLy9zQWtILzdBSkQvK3dDUmYvc0FrZi83QUpKLyt3REVQL3NBemIvN0FNNi8rd0RQZi9zQTF6LzdBTmkvK3dEWi8vc0EzWC83QU4zLyt3RGVQL3NBNFQvN0FPVi8rd0RzZi9zQTdQLzdBTzEvK3dEdC8vc0E3bi83QU83Lyt3RHZmL3NBNy8vN0FQVC8rd0QxZi9zQTlmLzdBUGIvK3dBRndCUi8rSUJFLy9pQWgzLzRnSWUvK0lDSC8vaUFpRC80Z0loLytJQ2EvL2lBbTMvNGdKdi8rSURGdi9pQXh6LzRnTTQvK0lEZ3YvaUE0Yi80Z1BGLytJRHgvL2lBOG4vNGdQTC8rSUR6Zi9pQTgvLzRnUFIvK0lEMmYvaUFBWUFEditFQUJEL2hBRm4vNFFCYS8rRUFXLy9oQUZ3LzRRQUVBQXMvK3dBTi8vc0FnZi83QUlJLyt3Q0NmL3NBZ3IvN0FKWC8rd0Nodi9zQW9qLzdBS0svK3dDalAvc0FvNy83QUtRLyt3REpQL3NBOXovN0FQZS8rd0FIUUFFLy9JQUNmL3lBRmovOHdCYi8vTUF1UC96QVJYLzh3RmwvL0lCWnYveUFXai84Z0ZwLy9JQmF2L3lBaWIvOHdJbi8vTUNsZi96QXhqLzh3TTcvL01EUlAvekEwei84d05OLy9JRFR2L3lBMUwvOGdOaC8vTURhZi96QTRyLzh3T00vL01EanYvekErdi84d1B0Ly9NRDcvL3pBRGtBSmYvekFDbi84d0F4Ly9NQU0vL3pBSUgvOHdDUS8vTUFsUC96QUs3Lzh3RE8vL01CQS8vekFSTC84d0VXLy9NQkdQL3pBUnIvOHdFYy8vTUJOUC96QVZILzh3SDQvL01DQXYvekFnUC84d0lFLy9NQ0JmL3pBZ2IvOHdJdS8vTUNNUC96QWpMLzh3STAvL01DUXYvekFrVC84d0pHLy9NQ1NQL3pBbXIvOHdKcy8vTUNidi96QXAvLzh3TDgvL01EQ2YvekF5Ly84d015Ly9NRFYvL3pBMlAvOHdObS8vTURnZi96QTRQLzh3T0YvL01EeFAvekE4Yi84d1BJLy9NRHl2L3pBOHovOHdQTy8vTUQwUC96QTlMLzh3UFUvL01EMXYvekE5ai84d1BhLy9NQU9RQWwvK1lBS2YvbUFESC81Z0F6LytZQWdmL21BSkQvNWdDVS8rWUFydi9tQU03LzVnRUQvK1lCRXYvbUFSYi81Z0VZLytZQkd2L21BUnovNWdFMC8rWUJVZi9tQWZqLzVnSUMvK1lDQS8vbUFnVC81Z0lGLytZQ0J2L21BaTcvNWdJdy8rWUNNdi9tQWpULzVnSkMvK1lDUlAvbUFrYi81Z0pJLytZQ2F2L21BbXovNWdKdS8rWUNuLy9tQXZ6LzVnTUovK1lETC8vbUF6TC81Z05YLytZRFkvL21BMmIvNWdPQi8rWURnLy9tQTRYLzVnUEUvK1lEeHYvbUE4ai81Z1BLLytZRHpQL21BODcvNWdQUS8rWUQwdi9tQTlULzVnUFcvK1lEMlAvbUE5ci81Z0EyQUNQLzVBQTYvOUlBTy8vVEFLMy81QUN2LytRQTFmL1NBUWovNUFIeC8rUUI4di9rQWZQLzVBSDAvK1FCOWYva0FmYi81QUgzLytRQ0MvL1RBaWovNUFJcS8rUUNMUC9rQXBULzB3S1cvOU1DK1Ava0F2My8wd01BLytRRERQL1RBdzMvMGdNUC85TURLUC9rQXpULzBnTkwvOU1EVmYva0Eyai8wd05yLzlJRGJ2L2tBM0QvNUFONS85SURrLy9TQTVqLzVBT2EvK1FEblAva0E1Ny81QU9nLytRRG92L2tBNlQvNUFPbS8rUURxUC9rQTZyLzVBT3MvK1FEcnYva0Erci8wd1BzLzlNRDd2L1RBL2ovMGdRQS85SUVFLy9UQUNZQUR2OUdBQkQvUmdBai84MEFyZi9OQUsvL3pRRUkvODBCWi85R0FXdi9SZ0Z2LzBZQmNQOUdBZkgvelFIeS84MEI4Ly9OQWZUL3pRSDEvODBCOXYvTkFmZi96UUlvLzgwQ0t2L05BaXovelFMNC84MERBUC9OQXlqL3pRTlYvODBEYnYvTkEzRC96UU9ZLzgwRG12L05BNXovelFPZS84MERvUC9OQTZML3pRT2svODBEcHYvTkE2ai96UU9xLzgwRHJQL05BNjcvelFDbUFFWC8zQUJHLzl3QVIvL2NBRW4vM0FCUC84RUFVUC9CQUZILzFnQlMvOEVBVS8vY0FGZi8zUUJZLytFQVcvL2hBSkgvM0FDVi85d0FsLy9kQUxiLzNBQzQvK0VBdlAvQkFNUC8zQURFLzl3QXh2L2RBT2Yvd1FEci84RUE3UC9CQU83L3dRRHYvOEVBOFAvQkFQTC8zQUR6LzhFQTlmL0JBUGIvd1FENS84RUErLy9CQVA3LzNBRUEvOEVCRS8vV0FSWC80UUVaLzl3QkhmL2NBVEgvd1FFMS85d0JRUC9CQVVYL3dRRkgvOXdCU1AvY0FWTC8zQUlULzl3Q0ZQL2NBaFgvM0FJVy85d0NGLy9jQWh6L3dRSWQvOVlDSHYvV0FoLy8xZ0lnLzlZQ0lmL1dBaUwvM1FJai85MENKUC9kQWlYLzNRSW0vK0VDSi8vaEFpLy8zQUl4Lzl3Q00vL2NBalgvM0FJMy85d0NPZi9jQWp2LzNBSTkvOXdDUC8vY0FrSC8zQUpELzl3Q1JmL2NBa2YvM0FKSi85d0NaUC9CQW1iL3dRSm8vOEVDYWYvQkFtdi8xZ0p0LzlZQ2IvL1dBb2YvM1FLSi85MENpLy9kQW8zLzNRS1AvOTBDa2YvZEFwWC80UU1RLzl3REV2L0JBeFQvM1FNVy85WURHUC9oQXh2LzNRTWMvOVlESGYvZEF6Yi8zQU0zLzhFRE9QL1dBem4vd1FNNi85d0RPLy9oQXozLzNBTSsvOEVEUS8vQkEwVC80UU5NLytFRFZQL0JBMXovM0FOZC84RURZZi9oQTJMLzNBTm4vOXdEYWYvaEEzWC8zQU4zLzl3RGVQL2NBMzcvd1FPQS84RURndi9XQTRULzNBT0cvOVlEaXYvaEE0ei80UU9PLytFRGt2L0JBNVgvM0FPeC85d0RzLy9jQTdYLzNBTzMvOXdEdWYvY0E3di8zQU85Lzl3RHYvL2NBOFgvMWdQSC85WUR5Zi9XQTh2LzFnUE4vOVlEei8vV0E5SC8xZ1BULzl3RDFmL2NBOWYvM0FQWi85WUQyLy9jQTkzLzNRUGYvOTBENGYvZEErUC8zUVBsLzkwRDUvL2RBK24vM1FQci8rRUQ3Zi9oQSsvLzRRUHovOEVEOWYvQkEvLy93UVFNLzhFRUR2L0JCQkQvd1FCeEFBVC8yZ0FKLzlvQVJmL3dBRWIvOEFCSC8vQUFTZi93QUZQLzhBQlgvKzhBV1AvY0FGdi8zQUNSLy9BQWxmL3dBSmYvN3dDMi8vQUF1UC9jQU1QLzhBREUvL0FBeHYvdkFQTC84QUQrLy9BQkZmL2NBUm4vOEFFZC8vQUJOZi93QVVmLzhBRkkvL0FCVXYvd0FXWC8yZ0ZtLzlvQmFQL2FBV24vMmdGcS85b0NFLy93QWhULzhBSVYvL0FDRnYvd0FoZi84QUlpLys4Q0kvL3ZBaVQvN3dJbC8rOENKdi9jQWlmLzNBSXYvL0FDTWYvd0FqUC84QUkxLy9BQ04vL3dBam4vOEFJNy8vQUNQZi93QWovLzhBSkIvL0FDUS8vd0FrWC84QUpILy9BQ1NmL3dBb2YvN3dLSi8rOENpLy92QW8zLzd3S1AvKzhDa2YvdkFwWC8zQU1RLy9BREZQL3ZBeGovM0FNYi8rOERIZi92QXpiLzhBTTYvL0FETy8vY0F6My84QU5FLzl3RFRQL2NBMDMvMmdOTy85b0RVdi9hQTF6LzhBTmgvOXdEWXYvd0EyZi84QU5wLzl3RGRmL3dBM2YvOEFONC8vQURoUC93QTRyLzNBT00vOXdEanYvY0E1WC84QU94Ly9BRHMvL3dBN1gvOEFPMy8vQUR1Zi93QTd2LzhBTzkvL0FEdi8vd0E5UC84QVBWLy9BRDEvL3dBOXYvOEFQZC8rOEQzLy92QStILzd3UGovKzhENWYvdkErZi83d1BwLys4RDYvL2NBKzMvM0FQdi85d0FRd0FPQUF3QUVBQU1BRVgvNXdCRy8rY0FSLy9uQUVuLzV3QlQvK2NBa2YvbkFKWC81d0MyLytjQXcvL25BTVQvNXdEeS8rY0Evdi9uQVJuLzV3RWQvK2NCTmYvbkFVZi81d0ZJLytjQlV2L25BV2NBREFGckFBd0Jid0FNQVhBQURBSVQvK2NDRlAvbkFoWC81d0lXLytjQ0YvL25BaS8vNXdJeC8rY0NNLy9uQWpYLzV3STMvK2NDT2YvbkFqdi81d0k5LytjQ1AvL25Ba0gvNXdKRC8rY0NSZi9uQWtmLzV3SkovK2NERVAvbkF6Yi81d002LytjRFBmL25BMXovNXdOaS8rY0RaLy9uQTNYLzV3TjMvK2NEZVAvbkE0VC81d09WLytjRHNmL25BN1AvNXdPMS8rY0R0Ly9uQTduLzV3TzcvK2NEdmYvbkE3Ly81d1BULytjRDFmL25BOWYvNXdQYi8rY0FjUUFFQUF3QUNRQU1BRVgvNkFCRy8rZ0FSLy9vQUVuLzZBQlIvK29BVS8vb0FGZ0FDd0JiQUFzQWtmL29BSlgvNkFDMi8rZ0F1QUFMQU1QLzZBREUvK2dBOHYvb0FQNy82QUVULytvQkZRQUxBUm4vNkFFZC8rZ0JOZi9vQVVmLzZBRkkvK2dCVXYvb0FXVUFEQUZtQUF3QmFBQU1BV2tBREFGcUFBd0NFLy9vQWhULzZBSVYvK2dDRnYvb0FoZi82QUlkLytvQ0h2L3FBaC8vNmdJZy8rb0NJZi9xQWlZQUN3SW5BQXNDTC8vb0FqSC82QUl6LytnQ05mL29BamYvNkFJNS8rZ0NPLy9vQWozLzZBSS8vK2dDUWYvb0FrUC82QUpGLytnQ1IvL29Ba24vNkFKci8rb0NiZi9xQW0vLzZnS1ZBQXNERVAvb0F4Yi82Z01ZQUFzREhQL3FBemIvNkFNNC8rb0RPdi9vQXpzQUN3TTkvK2dEUkFBTEEwd0FDd05OQUF3RFRnQU1BMUlBREFOYy8rZ0RZUUFMQTJMLzZBTm4vK2dEYVFBTEEzWC82QU4zLytnRGVQL29BNEwvNmdPRS8rZ0Rodi9xQTRvQUN3T01BQXNEamdBTEE1WC82QU94LytnRHMvL29BN1gvNkFPMy8rZ0R1Zi9vQTd2LzZBTzkvK2dEdi8vb0E4WC82Z1BILytvRHlmL3FBOHYvNmdQTi8rb0R6Ly9xQTlILzZnUFQvK2dEMWYvb0E5Zi82QVBaLytvRDIvL29BK3NBQ3dQdEFBc0Q3d0FMQUF3QVd2L3RBRnovN1FEcC8rMENtUC90QXByLzdRS2MvKzBEUFAvdEEyei83UU42LyswRGxQL3RBL24vN1FRQi8rMEFEQUJhLy9JQVhQL3lBT24vOGdLWS8vSUNtdi95QXB6LzhnTTgvL0lEYlAveUEzci84Z09VLy9JRCtmL3lCQUgvOGdBZkFGai85QUJhLy9JQVcvLzBBRnovOHdDNC8vUUE2Zi95QVJYLzlBSW0vL1FDSi8vMEFwWC85QUtZLy9NQ212L3pBcHovOHdNWS8vUURPLy8wQXp6LzhnTkUvL1FEVFAvMEEySC85QU5wLy9RRGJQL3lBM3IvOGdPSy8vUURqUC8wQTQ3LzlBT1UvL0lENi8vMEErMy85QVB2Ly9RRCtmL3lCQUgvOGdCUkFBVC95Z0FKLzhvQU52L1NBRGovMUFBNi8vUUFPLy9UQUZqLzVnQmEvKzhBVy8vbUFMai81Z0ROLzlJQTBmL1NBTlgvOUFEWi8rMEEzUC9oQU9uLzd3RVUvOVFCRmYvbUFTNy8wZ0UyLzlJQlpmL0tBV2IveWdGby84b0JhZi9LQVdyL3lnSUwvOU1DSnYvbUFpZi81Z0tBLzlJQ2d2L1NBb1QvMGdLVS85TUNsZi9tQXBiLzB3TDkvOU1ERFAvVEF3My85QU1QLzlNREdQL21BeWYvN1FNei85SUROUC8wQXp2LzVnTTgvKzhEUlAvbUEwdi8wd05NLytZRFRmL0tBMDcveWdOUy84b0RZUC9VQTJILzVnTm8vOU1EYWYvbUEydi85QU5zLys4RGVmLzBBM3IvN3dPSi8rMERpdi9tQTR2LzdRT00vK1lEamYvdEE0Ny81Z09QLytFRGsvLzBBNVQvN3dQcS85TUQ2Ly9tQSt6LzB3UHQvK1lEN3YvVEErLy81Z1AyLzlJRCtQLzBBL24vN3dQNi8rRUQvUC9oQkFELzlBUUIvKzhFRS8vVEFHSUFCUC9BQUFuL3dBQTIvNTBBT1AvSEFEci84QUE3LzZzQVQvL1NBRkQvMGdCUy85SUF2UC9TQU0zL25RRFAvL1VBMGYrZEFOWC84QURZLy9VQTJmL3FBTnovNVFEbi85SUE2Ly9TQU96LzBnRHUvOUlBNy8vU0FQRC8wZ0R6LzlJQTlmL1NBUGIvMGdENy85SUJBUC9TQVJUL3h3RXUvNTBCTWYvU0FUYi9uUUZBLzlJQlJmL1NBVTMvOVFGbC84QUJadi9BQVdqL3dBRnAvOEFCYXYvQUFndi9xd0ljLzlJQ1pQL1NBbWIvMGdKby85SUNhZi9TQW9EL25RS0MvNTBDaFArZEFwVC9xd0tXLzZzQy9mK3JBd3ovcXdNTi8vQURELytyQXhMLzBnTW4vK29ETS8rZEF6VC84QU0zLzlJRE9mL1NBejcvMGdORC85SURTLytyQTAzL3dBTk8vOEFEVXYvQUExVC8wZ05kLzlJRFlQL0hBMmovcXdOci8vQURlZi93QTM3LzBnT0EvOUlEaWYvcUE0di82Z09OLytvRGovL2xBNUwvMGdPVC8vQURsdi8xQStyL3F3UHMvNnNEN3YrckEvUC8wZ1AxLzlJRDl2K2RBL2ovOEFQNi8rVUQvUC9sQS8vLzBnUUEvL0FFRFAvU0JBNy8wZ1FRLzlJRUVmLzFCQlAvcXdCbEFBVC9zUUFKLzdFQU52K2VBRGoveFFBNi8vSUFPLytvQUUvL3p3QlEvODhBVXYvUEFGci83d0M4Lzg4QXpmK2VBTkgvbmdEVi8vSUEyZi9zQU56LzRRRG4vODhBNmYvdkFPdi96d0RzLzg4QTd2L1BBTy8vendEdy84OEE4Ly9QQVBYL3p3RDIvODhBKy8vUEFRRC96d0VVLzhVQkx2K2VBVEgvendFMi81NEJRUC9QQVVYL3p3RmwvN0VCWnYreEFXai9zUUZwLzdFQmF2K3hBZ3YvcUFJYy84OENaUC9QQW1iL3p3Sm8vODhDYWYvUEFvRC9uZ0tDLzU0Q2hQK2VBcFQvcUFLVy82Z0MvZitvQXd6L3FBTU4vL0lERC8rb0F4TC96d01uLyt3RE0vK2VBelQvOGdNMy84OERPZi9QQXp6Lzd3TSsvODhEUS8vUEEwdi9xQU5OLzdFRFR2K3hBMUwvc1FOVS84OERYZi9QQTJEL3hRTm8vNmdEYS8veUEyei83d041Ly9JRGV2L3ZBMzcvendPQS84OERpZi9zQTR2LzdBT04vK3dEai8vaEE1TC96d09ULy9JRGxQL3ZBK3IvcUFQcy82Z0Q3ditvQS9QL3p3UDEvODhEOXYrZUEvai84Z1A1Lys4RCt2L2hBL3ovNFFQLy84OEVBUC95QkFILzd3UU0vODhFRHYvUEJCRC96d1FULzZnQVJBQTIvNzRBVC8vaEFGRC80UUJTLytFQVdQL3ZBRnYvN3dDNC8rOEF2UC9oQU0zL3ZnRFIvNzRBNS8vaEFPdi80UURzLytFQTd2L2hBTy8vNFFEdy8rRUE4Ly9oQVBYLzRRRDIvK0VBKy8vaEFRRC80UUVWLys4Qkx2KytBVEgvNFFFMi83NEJRUC9oQVVYLzRRSWMvK0VDSnYvdkFpZi83d0prLytFQ1p2L2hBbWovNFFKcC8rRUNnUCsrQW9ML3ZnS0UvNzRDbGYvdkF4TC80UU1ZLys4RE0vKytBemYvNFFNNS8rRURPLy92QXo3LzRRTkQvK0VEUlAvdkEwei83d05VLytFRFhmL2hBMkgvN3dOcC8rOERmdi9oQTRELzRRT0svKzhEalAvdkE0Ny83d09TLytFRDYvL3ZBKzMvN3dQdi8rOEQ4Ly9oQS9YLzRRUDIvNzRELy8vaEJBei80UVFPLytFRUVQL2hBRnNBTnYvbUFEai81d0E2Ly9JQU8vL25BRS8vMWdCUS85WUFVdi9XQUZyLzhRQzgvOVlBemYvbUFOSC81Z0RWLy9JQTJmL3VBTnovNkFEbi85WUE2Zi94QU92LzFnRHMvOVlBN3YvV0FPLy8xZ0R3LzlZQTgvL1dBUFgvMWdEMi85WUErLy9XQVFELzFnRVUvK2NCTHYvbUFUSC8xZ0UyLytZQlFQL1dBVVgvMWdJTC8rY0NIUC9XQW1ULzFnSm0vOVlDYVAvV0Ftbi8xZ0tBLytZQ2d2L21Bb1QvNWdLVS8rY0Nsdi9uQXYzLzV3TU0vK2NERGYveUF3Ly81d01TLzlZREovL3VBelAvNWdNMC8vSUROLy9XQXpuLzFnTTgvL0VEUHYvV0EwUC8xZ05MLytjRFZQL1dBMTMvMWdOZy8rY0RhUC9uQTJ2LzhnTnMvL0VEZWYveUEzci84UU4rLzlZRGdQL1dBNG4vN2dPTC8rNERqZi91QTQvLzZBT1MvOVlEay8veUE1VC84UVBxLytjRDdQL25BKzcvNXdQei85WUQ5Zi9XQS9iLzVnUDQvL0lEK2YveEEvci82QVA4LytnRC8vL1dCQUQvOGdRQi8vRUVEUC9XQkE3LzFnUVEvOVlFRS8vbkFJUUFJd0FRQUNYLzZBQXAvK2dBTWYvb0FEUC82QUEyLytBQU9QL2dBRHYvM3dDQi8rZ0FrUC9vQUpULzZBQ3RBQkFBcnYvb0FLOEFFQUROLytBQXp2L29BTThBRUFEUi8rQUEyQUFRQU56LzRRRHRBQkFBOVAvZ0FQOEFFQUVELytnQkNBQVFBUkwvNkFFVS8rQUJGdi9vQVJqLzZBRWEvK2dCSFAvb0FTNy80QUUwLytnQk52L2dBVTBBRUFGUi8rZ0I4UUFRQWZJQUVBSHpBQkFCOUFBUUFmVUFFQUgyQUJBQjl3QVFBZmovNkFJQy8rZ0NBLy9vQWdULzZBSUYvK2dDQnYvb0Fndi8zd0lvQUJBQ0tnQVFBaXdBRUFJdS8rZ0NNUC9vQWpMLzZBSTAvK2dDUXYvb0FrVC82QUpHLytnQ1NQL29BbXIvNkFKcy8rZ0Nidi9vQW9ELzRBS0MvK0FDaFAvZ0FwVC8zd0tXLzk4Q24vL29BdmdBRUFMOC8rZ0MvZi9mQXdBQUVBTUovK2dERFAvZkF3Ly8zd01vQUJBREwvL29BekwvNkFNei8rQURTLy9mQTFVQUVBTlgvK2dEWVAvZ0EyUC82QU5tLytnRGFQL2ZBMjRBRUFOd0FCQURnZi9vQTRQLzZBT0YvK2dEai8vaEE1RC80QU9XQUJBRGx3QVFBNWdBRUFPYUFCQURuQUFRQTU0QUVBT2dBQkFEb2dBUUE2UUFFQU9tQUJBRHFBQVFBNm9BRUFPc0FCQURyZ0FRQThULzZBUEcvK2dEeVAvb0E4ci82QVBNLytnRHp2L29BOUQvNkFQUy8rZ0QxUC9vQTliLzZBUFkvK2dEMnYvb0Erci8zd1BzLzk4RDd2L2ZBL2IvNEFQNi8rRUQrLy9nQS96LzRRUDkvK0FFRVFBUUJCSUFFQVFULzk4QUxRQTIvL0VBT1AvMEFEci85QUE3Ly9BQXpmL3hBTS8vOVFEUi8vRUExZi8wQU5qLzlRRFovL01CRlAvMEFTNy84UUUyLy9FQlRmLzFBZ3YvOEFLQS8vRUNndi94QW9ULzhRS1UvL0FDbHYvd0F2My84QU1NLy9BRERmLzBBdy8vOEFNbi8vTURNLy94QXpULzlBTkwvL0FEWVAvMEEyai84QU5yLy9RRGVmLzBBNG4vOHdPTC8vTURqZi96QTVQLzlBT1cvL1VENnYvd0Erei84QVB1Ly9BRDl2L3hBL2ovOUFRQS8vUUVFZi8xQkJQLzhBQlpBQ01BRHdBMi8rWUFPUC9tQURvQURnQTcvK1lBclFBUEFLOEFEd0ROLytZQXp3QU9BTkgvNWdEVkFBNEEyQUFPQU5rQUN3RGMvK1VBN1FBUEFQVC82QUQvQUE4QkNBQVBBUlQvNWdFdS8rWUJOdi9tQVUwQURnSHhBQThCOGdBUEFmTUFEd0gwQUE4QjlRQVBBZllBRHdIM0FBOENDLy9tQWlnQUR3SXFBQThDTEFBUEFvRC81Z0tDLytZQ2hQL21BcFQvNWdLVy8rWUMrQUFQQXYzLzVnTUFBQThERFAvbUF3MEFEZ01QLytZREp3QUxBeWdBRHdNei8rWUROQUFPQTB2LzVnTlZBQThEWVAvbUEyai81Z05yQUE0RGJnQVBBM0FBRHdONUFBNERpUUFMQTRzQUN3T05BQXNEai8vbEE1RC82QU9UQUE0RGxnQU9BNWNBRHdPWUFBOERtZ0FQQTV3QUR3T2VBQThEb0FBUEE2SUFEd09rQUE4RHBnQVBBNmdBRHdPcUFBOERyQUFQQTY0QUR3UHEvK1lEN1AvbUErNy81Z1AyLytZRCtBQU9BL3IvNVFQNy8rZ0QvUC9sQS8zLzZBUUFBQTRFRVFBT0JCSUFEd1FULytZQUxRQUUvNzhBQ2YrL0FEYi9ud0E0LzhrQU8vK3RBTTMvbndEUi81OEEyZi9zQU56LzVnRVUvOGtCTHYrZkFUYi9ud0ZsLzc4Qlp2Ky9BV2ovdndGcC83OEJhdisvQWd2L3JRS0EvNThDZ3YrZkFvVC9ud0tVLzYwQ2x2K3RBdjMvclFNTS82MERELyt0QXlmLzdBTXovNThEUy8rdEEwMy92d05PLzc4RFV2Ky9BMkQveVFOby82MERpZi9zQTR2LzdBT04vK3dEai8vbUErci9yUVBzLzYwRDd2K3RBL2IvbndQNi8rWUQvUC9tQkJQL3JRQXVBRGIvNHdBNi8rVUFPLy9rQU0zLzR3RFAvK1VBMGYvakFOWC81UURZLytVQTJmL3BBTzMvNmdELy8rb0JMdi9qQVRiLzR3Rk4vK1VDQy8va0FvRC80d0tDLytNQ2hQL2pBcFQvNUFLVy8rUUMvZi9rQXd6LzVBTU4vK1VERC8va0F5Zi82UU16LytNRE5QL2xBMHYvNUFOby8rUURhLy9sQTNuLzVRT0ovK2tEaS8vcEE0My82UU9ULytVRGx2L2xBNWYvNmdQcS8rUUQ3UC9rQSs3LzVBUDIvK01EK1AvbEJBRC81UVFSLytVRUV2L3FCQlAvNUFBaEFEYi80Z0E2LytRQXpmL2lBTS8vNUFEUi8rSUExZi9rQU5qLzVBRFovK2tBN2YvckFQLy82d0V1LytJQk52L2lBVTMvNUFLQS8rSUNndi9pQW9ULzRnTU4vK1FESi8vcEF6UC80Z00wLytRRGEvL2tBM24vNUFPSi8ra0RpLy9wQTQzLzZRT1QvK1FEbHYva0E1Zi82d1AyLytJRCtQL2tCQUQvNUFRUi8rUUVFdi9yQUJjQU52L3JBRHYvOHdETi8rc0EwZi9yQVM3LzZ3RTIvK3NDQy8vekFvRC82d0tDLytzQ2hQL3JBcFQvOHdLVy8vTUMvZi96QXd6Lzh3TVAvL01ETS8vckEwdi84d05vLy9NRDZ2L3pBK3ovOHdQdS8vTUQ5di9yQkJQLzh3QXZBRS8vN3dCUS8rOEFVdi92QUZyLzhBQzgvKzhBNS8vdkFPbi84QURyLys4QTdQL3ZBTzcvN3dEdi8rOEE4UC92QVBQLzd3RDEvKzhBOXYvdkFQdi83d0VBLys4Qk1mL3ZBVUQvN3dGRi8rOENIUC92QW1ULzd3Sm0vKzhDYVAvdkFtbi83d01TLys4RE4vL3ZBem4vN3dNOC8vQURQdi92QTBQLzd3TlUvKzhEWGYvdkEyei84QU42Ly9BRGZ2L3ZBNEQvN3dPUy8rOERsUC93QS9QLzd3UDEvKzhEK2Yvd0EvLy83d1FCLy9BRURQL3ZCQTcvN3dRUS8rOEFIUUFFLy9JQUNmL3lBRmovOVFCYi8vVUF1UC8xQVJYLzlRRmwvL0lCWnYveUFXai84Z0ZwLy9JQmF2L3lBaWIvOVFJbi8vVUNsZi8xQXhqLzlRTTcvL1VEUlAvMUEwei85UU5OLy9JRFR2L3lBMUwvOGdOaC8vVURhZi8xQTRyLzlRT00vL1VEanYvMUErdi85UVB0Ly9VRDcvLzFBQ3NBVC8vdUFGRC83Z0JTLys0QXZQL3VBT2YvN2dEci8rNEE3UC91QU83LzdnRHYvKzRBOFAvdUFQUC83Z0QwLyswQTlmL3VBUGIvN2dENy8rNEJBUC91QVRILzdnRkEvKzRCUmYvdUFoei83Z0prLys0Q1p2L3VBbWovN2dKcC8rNERFdi91QXpmLzdnTTUvKzREUHYvdUEwUC83Z05VLys0RFhmL3VBMzcvN2dPQS8rNERrUC90QTVMLzdnUHovKzREOWYvdUEvdi83UVA5LyswRC8vL3VCQXovN2dRTy8rNEVFUC91QUFvQUJQLzFBQW4vOVFGbC8vVUJadi8xQVdqLzlRRnAvL1VCYXYvMUEwMy85UU5PLy9VRFV2LzFBRlFBUmYvd0FFYi84QUJILy9BQVNmL3dBRkgveHdCVC8vQUFrZi93QUpYLzhBQzIvL0FBdy8vd0FNVC84QUR5Ly9BQS92L3dBUlAveHdFWi8vQUJIZi93QVRYLzhBRkgvL0FCU1Avd0FWTC84QUlULy9BQ0ZQL3dBaFgvOEFJVy8vQUNGLy93QWgzL3h3SWUvOGNDSC8vSEFpRC94d0loLzhjQ0wvL3dBakgvOEFJei8vQUNOZi93QWpmLzhBSTUvL0FDTy8vd0FqMy84QUkvLy9BQ1FmL3dBa1AvOEFKRi8vQUNSLy93QWtuLzhBSnIvOGNDYmYvSEFtLy94d01RLy9BREZ2L0hBeHoveHdNMi8vQURPUC9IQXpyLzhBTTkvL0FEWFAvd0EyTC84QU5uLy9BRGRmL3dBM2YvOEFONC8vQURndi9IQTRULzhBT0cvOGNEbGYvd0E3SC84QU96Ly9BRHRmL3dBN2YvOEFPNS8vQUR1Ly93QTczLzhBTy8vL0FEeGYvSEE4Zi94d1BKLzhjRHkvL0hBODMveHdQUC84Y0QwZi9IQTlQLzhBUFYvL0FEMS8vd0E5bi94d1BiLy9BQWp3QUVBQTBBQ1FBTkFFUC84QUJGLzhBQVJ2L0FBRWYvd0FCSi84QUFVZi9pQUZQL3dBQllBQXNBV3dBTEFKSC93QUNWLzhBQXR2L0FBTGdBQ3dERS84QUE3Zi9YQVBML3dBRCsvOEFBLy8vWEFSUC80Z0VWQUFzQkdmL0FBUjMvd0FFMS84QUJSLy9BQVVqL3dBRlMvOEFCWlFBTkFXWUFEUUZvQUEwQmFRQU5BV29BRFFJTS8vQUNEZi93QWc3LzhBSVAvL0FDRVAvd0FoSC84QUlTLy9BQ0UvL0FBaFQvd0FJVi84QUNGdi9BQWhmL3dBSWQvK0lDSHYvaUFoLy80Z0lnLytJQ0lmL2lBaVlBQ3dJbkFBc0NLZi93QWl2LzhBSXQvL0FDTC8vQUFqSC93QUl6LzhBQ05mL0FBamYvd0FJNS84QUNPLy9BQWozL3dBSS8vOEFDUWYvQUFrUC93QUpGLzhBQ1IvL0FBa24vd0FKci8rSUNiZi9pQW0vLzRnS1ZBQXNERVAvQUF4Yi80Z01ZQUFzREhQL2lBelgvOEFNMi84QURPUC9pQXpyL3dBTTdBQXNEUGYvQUEwUUFDd05NQUFzRFRRQU5BMDRBRFFOU0FBMERWdi93QTF6L3dBTmhBQXNEWXYvQUEyZi93QU5wQUFzRGIvL3dBM0gvOEFOMS84QURkLy9BQTNqL3dBT0MvK0lEaFAvQUE0Yi80Z09LQUFzRGpBQUxBNDRBQ3dPVi84QURsLy9YQTVuLzhBT2IvL0FEbmYvd0E1Ly84QU9oLy9BRG8vL3dBNlgvOEFPbi8vQURxZi93QTZ2LzhBT3QvL0FEci8vd0E3SC93QU96LzhBRHRmL0FBN2Yvd0FPNS84QUR1Ly9BQTczL3dBTy8vOEFEeGYvaUE4Zi80Z1BKLytJRHkvL2lBODMvNGdQUC8rSUQwZi9pQTlQL3dBUFYvOEFEMS8vQUE5bi80Z1BiLzhBRDZ3QUxBKzBBQ3dQdkFBc0VFdi9YQUFnQTdRQVFBUFQvOEFEL0FCQURrUC93QTVjQUVBUDcvL0FEL2Yvd0JCSUFFQUJGQUVYLzdnQkcvKzRBUi8vdUFFbi83Z0JULys0QWtmL3VBSlgvN2dDMi8rNEF3Ly91QU1ULzdnRHRBQTRBOHYvdUFQVC80d0QrLys0QS93QU9BUm4vN2dFZC8rNEJOZi91QVVmLzdnRkkvKzRCVXYvdUFoUC83Z0lVLys0Q0ZmL3VBaGIvN2dJWC8rNENMLy91QWpILzdnSXovKzRDTmYvdUFqZi83Z0k1Lys0Q08vL3VBajMvN2dJLy8rNENRZi91QWtQLzdnSkYvKzRDUi8vdUFrbi83Z01RLys0RE52L3VBenIvN2dNOS8rNERYUC91QTJMLzdnTm4vKzREZGYvdUEzZi83Z040Lys0RGhQL3VBNUQvNHdPVi8rNERsd0FPQTdILzdnT3ovKzREdGYvdUE3Zi83Z081Lys0RHUvL3VBNzMvN2dPLy8rNEQwLy91QTlYLzdnUFgvKzREMi8vdUEvdi80d1A5LytNRUVnQU9BQmNBV1AvQUFGdi93QUM0LzhBQTlQL3VBUlgvd0FJbS84QUNKLy9BQXBYL3dBTVkvOEFETy8vQUEwVC93QU5NLzhBRFlmL0FBMm4vd0FPSy84QURqUC9BQTQ3L3dBT1EvKzRENi8vQUErMy93QVB2LzhBRCsvL3VBLzMvN2dBZkFGai85QUJhLy9BQVcvLzBBTGovOUFEcC8vQUE3Zi96QVAvLzh3RVYvL1FDSnYvMEFpZi85QUtWLy9RREdQLzBBenYvOUFNOC8vQURSUC8wQTB6LzlBTmgvL1FEYWYvMEEyei84QU42Ly9BRGl2LzBBNHovOUFPTy8vUURsUC93QTVmLzh3UHIvL1FEN2YvMEErLy85QVA1Ly9BRUFmL3dCQkwvOHdBS0FBVC8xZ0FKLzlZQlpmL1dBV2IvMWdGby85WUJhZi9XQVdyLzFnTk4vOVlEVHYvV0ExTC8xZ0FNQUZyLzRBRHAvK0FBOVAvQ0F6ei80QU5zLytBRGV2L2dBNUQvd2dPVS8rQUQrZi9nQS92L3dnUDkvOElFQWYvZ0FBUUE5UC9TQTVELzBnUDcvOUlEL2YvU0FBb0FCUC9YQUFuLzF3RmwvOWNCWnYvWEFXai8xd0ZwLzljQmF2L1hBMDMvMXdOTy85Y0RVdi9YQUY0QUJBQUxBQWtBQ3dCRi8rc0FSdi9yQUVmLzZ3QkovK3NBVWYvcEFGUC82d0NSLytzQWxmL3JBTGIvNndERC8rc0F4UC9yQVBMLzZ3RCsvK3NCRS8vcEFSbi82d0VkLytzQk5mL3JBVWYvNndGSS8rc0JVdi9yQVdVQUN3Rm1BQXNCYUFBTEFXa0FDd0ZxQUFzQ0UvL3JBaFQvNndJVi8rc0NGdi9yQWhmLzZ3SWQvK2tDSHYvcEFoLy82UUlnLytrQ0lmL3BBaS8vNndJeC8rc0NNLy9yQWpYLzZ3STMvK3NDT2YvckFqdi82d0k5LytzQ1AvL3JBa0gvNndKRC8rc0NSZi9yQWtmLzZ3SkovK3NDYS8vcEFtMy82UUp2LytrREVQL3JBeGIvNlFNYy8ra0ROdi9yQXpqLzZRTTYvK3NEUGYvckEwMEFDd05PQUFzRFVnQUxBMXovNndOaS8rc0RaLy9yQTNYLzZ3TjMvK3NEZVAvckE0TC82UU9FLytzRGh2L3BBNVgvNndPeC8rc0RzLy9yQTdYLzZ3TzMvK3NEdWYvckE3di82d085LytzRHYvL3JBOFgvNlFQSC8ra0R5Zi9wQTh2LzZRUE4vK2tEei8vcEE5SC82UVBULytzRDFmL3JBOWYvNndQWi8ra0QyLy9yQUFJTFBBQUVBQUFPQkJWWUFDRUFIUUFBQUF3QUVmL2YvL1QvenYvMS83UC83Ly9RLzJyL2lQK24vL1gveWYvWkFCSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9vQUFBQUFQL0pBQUQvNVFBQUFBQUFBQUFBLy9NQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUi8rVUFBQUFBQUFBQUFBQUFBQUQvNUFBQS8rTUFBUC9rQUFBQUVRQUFBQklBRVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC80UUFBQUFBQUFBQUEvK29BQUFBQS85VUFBUC9sQUFBQUFBQUFBQUFBQVAvci8rci82ZitHQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzR3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN2YvbUFBQUFBQUFBQUFBQUFBQUFBQlQvN3dBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN1FBQUFBQUFBQUFBQUFBQUFBQUEvOFQveS85OC83SC9ydi9rQUJBQUFQK25BQkFBQUFBUS83OEFBQUFQLzM0QUFQK1RBQUFBQVA3Ky82Zi9zLyswL3ZELzhQK3QveWdBQVArRy81TC9EUDltLzJIL3ZRQUhBQUQvVlFBSEFBQUFCLzkrQUFBQUJmOFBBQUQvTXdBQUFBRCtOdjlWLzJyL2EvNGUvOUgvWHdBQUFBQUFBQUFBQUFELzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvMkFBQUFBQUFBQUFBQUFELzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK2ovK1gvMlAvaEFBQUFBQUFBQUFBQUFBQUEvK2tBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK1lBQUFBQS8xd0FBQUFBQUFBQUFBQUFBQUFBQUFBQS80WC81Lzh5LytnQUFQN3AvdjcvTS8veUFBRC9vd0FBQUFBQUV3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA5dkFBRC84d0FQQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL3B3QUEvMDcvemYvYy9tei84d0FBQUFBQUFBQUEvL1gvU0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL1MvL1gvOHdBQUFBQUFBQUFBQUFBQUFQL2tBQUFBQUFBQUFBRC90UUFBQUFEL0tmL1VBQUFBQVA5akFBRC8wZ0FBQUFBQUFBQVIvOUgvNi8vaC8rY0FEZ0FBQUFBQUFBQUFBQUQvNndBQUFBQUFFUUFBQUFBQUFBQUFBQUQvNWdBQUFBRC9aQUFBQUFBQUFBQUEvK0lBQUFBQS83Ly83UC9qQUJML29QL1lBQklBQUFBUi85a0FBQUFSQUFBQUFQOXFBQTBBQVA4Wi83Ly82Zi9HLzJqLzhQL0IvNkFBQUFBQUFBQUFBUC9oQUFBQUFBQUFBQUFBQUFBQUFBQUFEdi90QUFBQUFBQUFBQUQvMVFBQUFBRC9jZi9oQUFBQUFQL0VBQUQvM3dBQUFBQUFBQUFBQUFELzYvL2wvK1lBQUFBQUFBQUFBQUFBQUFELzdRQUFBQUFBQUFBQUFBMEFBQUFBQUFELzZ3QUFBQUFBQUFBQUFBQUFBQUFBQUFEL3l2L3AvNzBBQVAvcEFBQUFBUCt1QUJJQUFBQVNBQUFBQUFBQS83c0FBUCtsQUFBQUFQNTMvNzBBQVAvUy96a0FBUCt2QUFBQUFBQUFBQUFBQUFBQS8vRUFBQUFBQUFBQUFBQUEvKzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvMUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vRUFBQUFBQUFELzlRQUFBQUFBQUFBQUFBRC80d0FBQUFBQUFBQUEvL0lBQUFBQUFBQUFBQUFBQUFELzhRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL01BQUFBQUFBQUFBQUFBLy9JQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL0FBQUFBQUFBRC84UUFBQUFBQUFBQUFBQUQvN0FBQUFBQUFBQUFBLy9BQUFBQUFBQUFBQUFBQUFBRC82d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC94QUFBQUFBQUFBQUFBQUFBQUFBOEFBQUFBQUFBQUFQL1hBQUFBQUFBQUFBRC9XZi96QUFBQUFBQUFBQUQvOFFBQUFBQUFBQUFBQUFELzdBQVNBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzFQLzdRQUFBQUFBQUFBQS8rd0FBQUFBQUFBQUFBQUEvOWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC9wUUFBQUFBQUFBQUEvK3dBQVAvYkFBQUFBQUFBQUFBQUFBQUEvNGdBQUFBQUFBRC94UUFBLzZRQUFBQUEvODRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRCs0d0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvSUFBQUFBUCt0LzhEL253QUEvK2NBQUFBQS8rc0FBQUFBQUFBQUFBQUEvOGtBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK01BQVArMUFBQUFBQUFBQUFBQUFQOTVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvckFBQUFBQUFBQUFBQUFBQUNBSXNBQkFBRUFBQUFDUUFKQUFFQUVRQVJBQUlBSXdBb0FBTUFLZ0F6QUFrQU5nQThBQk1BUXdCRUFCb0FSd0JJQUJ3QVNnQktBQjRBVHdCU0FCOEFWQUJVQUNNQVdBQllBQ1FBV2dCYkFDVUFpQUNJQUNjQW1RQ1pBQ2dBckFDd0FDa0FzZ0MwQUM0QXRnQzJBREVBdUFDNEFESUF1d0M4QURNQXZnQytBRFVBd0FEQUFEWUF3Z0RIQURjQXpRRE5BRDBBendEWkFENEEyd0RiQUVrQTNRRGZBRW9BNFFEakFFMEE1UURwQUZBQTdBRHNBRlVBOFFEekFGWUE5Z0QzQUZrQStRRDdBRnNBL3dFQUFGNEJCUUVGQUdBQkNBRUlBR0VCRXdFVkFHSUJKd0VwQUdVQkxBRXNBR2dCTGdFdUFHa0JSUUZGQUdvQlpRRm1BR3NCYUFGcUFHMEJwZ0dtQUhBQnFRR3BBSEVCcXdHckFISUJzQUd4QUhNQnRBRzJBSFVCdUFHK0FIZ0J4QUhFQUg4QjF3SFhBSUFCMndIY0FJRUIzd0hmQUlNQjZBSG9BSVFCN0FIdEFJVUI3d0h2QUljQjhRSVNBSWdDRkFJWEFLb0NIQUloQUs0Q0pnSXVBTFFDTUFJd0FMMENNZ0l5QUw0Q05BSTBBTDhDTmdJMkFNQUNPQUpCQU1FQ1NnSk1BTXNDVGdKT0FNNENVQUpRQU04Q1VnSlNBTkFDVkFKVUFORUNWd0pYQU5JQ1dRSlpBTk1DV3dKYkFOUUNYUUpkQU5VQ1h3SmZBTllDWVFKaEFOY0NZd0p2QU5nQ2NRSnhBT1VDY3dKekFPWUNkUUoxQU9jQ2dBS0FBT2dDZ2dLQ0FPa0NoQUtFQU9vQ2hnS0dBT3NDaUFLSUFPd0NpZ0tLQU8wQ2pBS01BTzRDamdLT0FPOENrQUtRQVBBQ2tnS1NBUEVDbEFLWEFQSUNtUUtaQVBZQ213S2JBUGNDK0FMOUFQZ0RBQU1QQVA0REVnTVNBUTRERmdNV0FROERHQU1ZQVJBREhBTWNBUkVESHdNZ0FSSURJZ01yQVJRRExRTXZBUjRETVFNMkFTRURPQU01QVNjRE93TStBU2tEUkFORkFTMERSd05IQVM4RFNRTkpBVEFEU3dOT0FURURVZ05YQVRVRFdnTmFBVHNEWEFOY0FUd0RZQU5oQVQwRFpnTm1BVDhEYUFOeEFVQURkQU4xQVVvRGR3TjZBVXdEZ1FPQ0FWQURoZ09HQVZJRGlBT09BVk1Ea3dPVUFWb0RtQVBBQVZ3RHdnUENBWVVEeEFQUkFZWUQyUVBaQVpRRDNBUGNBWlVEM2dQZUFaWUQ2Z1B2QVpjRDhnUHlBWjBEOUFQMEFaNEQ5Z1AyQVo4RCtBUDVBYUFEL2dRQkFhSUVCQVFFQWFZRUJnUUhBYWNFQ1FRSkFha0VEUVFOQWFvRUR3UVBBYXNFRXdRVEFhd0FBUUFHQUFvQUtBQXpBRFFBUFFCSUFBRUFMQUJJQUUwQVZnQlpBRjBBbVFDd0FMSUFzd0MwQUxzQXZnREFBTVVBeHdESUFNa0F6UURQQU5BQTBRRFRBTlFBMWdEZUFOOEE0Z0RqQU9RQTVRRG1BT2dBNmdEc0FQRUE4d0QyQVBjQSt3RCtBUDhCQUFFZEFkd0FBZ0IyQUFRQUJBQUFBQWtBQ1FBQkFBNEFEZ0FDQUJBQUVBQURBQ01BSndBRUFDb0FNZ0FKQURZQVBBQVNBRU1BUlFBWkFFY0FSd0FjQUVvQVNnQWRBRThBVWdBZUFGUUFWQUFpQUZnQVdBQWpBRm9BWEFBa0FJZ0FpQUFuQUt3QXJ3QW9BTGdBdUFBc0FMd0F2QUF0QU1JQXdnQXVBTThBMEFBdkFOSUEwZ0F4QU5VQTFRQXlBTmNBMlFBekFOc0Eyd0EyQU4wQTNRQTNBTjhBM3dBNEFPRUE0UUE1QU9jQTV3QTZBT2tBNlFBN0FQSUE4Z0E4QVBjQTl3QTlBUGtBK2dBK0FQOEJBQUJBQVFVQkJRQkNBUWdCQ0FCREFSTUJGUUJFQVNjQktRQkhBU3dCTEFCS0FTNEJMZ0JMQVVVQlJRQk1BV1VCYXdCTkFXOEJjQUJVQWV3QjdRQldBZThCN3dCWUFmRUNGd0JaQWh3Q0lRQ0FBaVlDTmdDR0FqZ0NRUUNYQWtvQ1RBQ2hBazRDVGdDa0FsQUNVQUNsQWxJQ1VnQ21BbFFDVkFDbkFsY0NWd0NvQWxrQ1dRQ3BBbHNDV3dDcUFsMENYUUNyQWw4Q1h3Q3NBbUVDWVFDdEFtTUNid0N1QW5FQ2NRQzdBbk1DY3dDOEFuVUNkUUM5QW9BQ2dBQytBb0lDZ2dDL0FvUUNoQURBQW9ZQ2hnREJBb2dDaUFEQ0Fvb0NpZ0REQW93Q2pBREVBbzRDamdERkFwQUNrQURHQXBJQ2tnREhBcFFDbkFESUF2Z0MvUURSQXdBRER3RFhBeElERWdEbkF4WURGZ0RvQXhnREdBRHBBeHdESEFEcUF4OERJQURyQXlJREt3RHRBeTBETHdEM0F6RUROZ0Q2QXpnRFBnRUFBMFFEUlFFSEEwY0RSd0VKQTBrRFNRRUtBMHNEVGdFTEExSURWd0VQQTFvRFdnRVZBMXdEWEFFV0EyQURZUUVYQTJZRGNRRVpBM1FEZFFFbEEzY0RlZ0VuQTRFRGdnRXJBNFlEaGdFdEE0Z0RqZ0V1QTVNRGxBRTFBNWdEd0FFM0E4SUR3Z0ZnQThRRDBRRmhBOWtEMlFGdkE5d0QzQUZ3QTk0RDNnRnhBK29EN3dGeUEvSUQ4Z0Y0QS9RRDlBRjVBL1lEOWdGNkEvZ0QrUUY3QS80RUFRRjlCQVFFQkFHQkJBWUVCd0dDQkFrRUNRR0VCQTBFRFFHRkJBOEVEd0dHQkJNRUV3R0hBQUlCT0FBRUFBUUFIUUFKQUFrQUhRQU9BQTRBSGdBUUFCQUFIZ0FrQUNRQUFRQWxBQ1VBQkFBbUFDWUFBd0FuQUNjQUJRQXFBQ3NBQWdBc0FDd0FEQUF0QUMwQUNRQXVBQzRBQ2dBdkFEQUFBZ0F4QURFQUF3QXlBRElBQ3dBMkFEWUFCZ0EzQURjQURBQTRBRGdBRFFBNUFEa0FFQUE2QURvQURnQTdBRHNBRHdBOEFEd0FFUUJEQUVNQUV3QkVBRVFBRlFCRkFFVUFGQUJIQUVjQUZnQktBRW9BRndCUEFGQUFGd0JSQUZFQUdBQlNBRklBRlFCVUFGUUFHZ0JZQUZnQUdRQmFBRm9BR3dCYkFGc0FHUUJjQUZ3QUhBQ0lBSWdBRlFDc0FLd0FCd0N1QUs0QUF3QzRBTGdBR1FDOEFMd0FGd0RDQU1JQUZRRFBBTkFBSHdEU0FOSUFBZ0RWQU5VQURnRFhBTmdBQWdEWkFOa0FFZ0RiQU5zQUFnRGRBTjBBQWdEZkFOOEFId0RoQU9FQUh3RG5BT2NBQ0FEcEFPa0FHd0R5QVBJQUZRRDNBUGNBSUFENUFQa0FJQUQ2QVBvQUZRRC9BUUFBSUFFRkFRVUFJQUVUQVJNQUdBRVVBUlFBRFFFVkFSVUFHUUVuQVNjQUZRRW9BU2dBQndFcEFTa0FDQUVzQVN3QUNRRXVBUzRBQ1FGRkFVVUFDQUZsQVdZQUhRRm5BV2NBSGdGb0FXb0FIUUZyQVdzQUhnRnZBWEFBSGdIc0FlMEFBd0h2QWU4QUJnSDRBZmdBQkFINUFmd0FCUUg5QWdFQUFnSUNBZ1lBQXdJSEFnb0FEQUlMQWdzQUR3SU1BaElBRXdJVEFoTUFGQUlVQWhjQUZnSWNBaHdBRndJZEFpRUFHQUltQWljQUdRSXBBaWtBRXdJckFpc0FFd0l0QWkwQUV3SXVBaTRBQkFJdkFpOEFGQUl3QWpBQUJBSXhBakVBRkFJeUFqSUFCQUl6QWpNQUZBSTBBalFBQkFJMUFqVUFGQUkyQWpZQUF3STRBamdBQlFJNUFqa0FGZ0k2QWpvQUJRSTdBanNBRmdJOEFqd0FCUUk5QWowQUZnSStBajRBQlFJL0FqOEFGZ0pBQWtBQUJRSkJBa0VBRmdKS0Frb0FBZ0pMQWtzQUZ3Sk1Ba3dBQWdKT0FrNEFBZ0pRQWxBQUFnSlNBbElBQWdKVUFsUUFBZ0pYQWxjQURBSlpBbGtBQ1FKYkFsc0FDZ0pkQWwwQUNnSmZBbDhBQ2dKaEFtRUFDZ0pqQW1NQUFnSmtBbVFBRndKbEFtVUFBZ0ptQW1ZQUZ3Sm5BbWNBQWdKb0Fta0FGd0pxQW1vQUF3SnJBbXNBR0FKc0Ftd0FBd0p0QW0wQUdBSnVBbTRBQXdKdkFtOEFHQUp4QW5FQUdnSnpBbk1BR2dKMUFuVUFHZ0tBQW9BQUJnS0NBb0lBQmdLRUFvUUFCZ0tHQW9ZQURBS0lBb2dBREFLS0Fvb0FEQUtNQW93QURBS09BbzRBREFLUUFwQUFEQUtTQXBJQUVBS1VBcFFBRHdLVkFwVUFHUUtXQXBZQUR3S1hBcGNBRVFLWUFwZ0FIQUtaQXBrQUVRS2FBcG9BSEFLYkFwc0FFUUtjQXB3QUhBTDVBdmtBQlFMNkF2c0FBZ0w4QXZ3QUF3TDlBdjBBRHdNQkF3RUFBUU1DQXdJQUJRTURBd01BRVFNRUF3VUFBZ01HQXdZQUNRTUhBd2dBQWdNSkF3a0FBd01LQXdvQUN3TUxBd3NBQmdNTUF3d0FEd01OQXcwQURnTU9BdzRBQWdNUEF3OEFEd01TQXhJQUZ3TVdBeFlBR0FNWUF4Z0FHUU1jQXh3QUdBTWZBeDhBQlFNZ0F5QUFCd01pQXlNQUFnTWtBeVFBREFNbEF5WUFDUU1uQXljQUVnTXBBeWtBQVFNcUF5b0FCd01yQXlzQUJRTXRBeTRBQWdNdkF5OEFBd014QXpFQUN3TXlBeklBQkFNekF6TUFCZ00wQXpRQURnTTFBelVBRXdNMkF6WUFGZ000QXpnQUdBTTVBemtBRlFNNkF6b0FGQU03QXpzQUdRTThBendBR3dNOUF6MEFGZ00rQXo0QUNBTkVBMFFBR1FORkEwVUFFQU5IQTBjQUVBTkpBMGtBRUFOTEEwc0FEd05NQTB3QUdRTk5BMDRBSFFOU0ExSUFIUU5UQTFNQUFnTlVBMVFBRndOV0ExWUFFd05YQTFjQUF3TmFBMW9BQlFOY0Exd0FGZ05nQTJBQURRTmhBMkVBR1FObUEyWUFCQU5uQTJjQUZBTm9BMmdBRHdOcEEya0FHUU5xQTJvQUFnTnJBMnNBRGdOc0Eyd0FHd050QTIwQUFnTnZBMjhBRXdOeEEzRUFFd04wQTNRQUJRTjFBM1VBRmdOM0EzZ0FGZ041QTNrQURnTjZBM29BR3dPQkE0RUFBd09DQTRJQUdBT0dBNFlBR0FPSUE0Z0FGUU9KQTRrQUVnT0tBNG9BR1FPTEE0c0FFZ09NQTR3QUdRT05BNDBBRWdPT0E0NEFHUU9UQTVNQURnT1VBNVFBR3dPWkE1a0FFd09iQTVzQUV3T2RBNTBBRXdPZkE1OEFFd09oQTZFQUV3T2pBNk1BRXdPbEE2VUFFd09uQTZjQUV3T3BBNmtBRXdPckE2c0FFd090QTYwQUV3T3ZBNjhBRXdPd0E3QUFCUU94QTdFQUZnT3lBN0lBQlFPekE3TUFGZ08wQTdRQUJRTzFBN1VBRmdPMkE3WUFCUU8zQTdjQUZnTzRBN2dBQlFPNUE3a0FGZ082QTdvQUJRTzdBN3NBRmdPOEE3d0FCUU85QTcwQUZnTytBNzRBQlFPL0E3OEFGZ1BBQThBQUFnUENBOElBQWdQRUE4UUFBd1BGQThVQUdBUEdBOFlBQXdQSEE4Y0FHQVBJQThnQUF3UEpBOGtBR0FQS0E4b0FBd1BMQThzQUdBUE1BOHdBQXdQTkE4MEFHQVBPQTg0QUF3UFBBODhBR0FQUUE5QUFBd1BSQTlFQUdBUFpBOWtBR0FQY0E5d0FEQVBlQTk0QURBUHFBK29BRHdQckErc0FHUVBzQSt3QUR3UHRBKzBBR1FQdUErNEFEd1B2QSs4QUdRUHlBL0lBQ1FQMEEvUUFBZ1AyQS9ZQUJnUDRBL2dBRGdQNUEva0FHd1ArQS80QUJ3UC9BLzhBQ0FRQUJBQUFEZ1FCQkFFQUd3UUVCQVFBRndRR0JBWUFId1FIQkFjQUJ3UUpCQWtBQ1FRTkJBMEFBZ1FQQkE4QUFnUVRCQk1BRHdBQkFBUUVGZ0FMQUFBQUFBQUFBQUFBQ3dBQUFBQUFBQUFBQUJVQUdRQVZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQklBQUFBR0FBQUFBQUFBQUFZQUFBQUFBQndBQUFBQUFBQUFBQUFHQUFBQUJnQUFBQm9BREFBSUFBY0FEd0FUQUFvQUZBQUFBQUFBQUFBQUFBQUFBQUFiQUFBQUZnQVdBQllBQUFBV0FBQUFBQUFBQUFBQUFBQUpBQWtBQkFBSkFCWUFBQUFZQUFBQURRQUZBQUFBRndBRkFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdBV0FBQUFBQUFHQUJZQUFBQU5BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSUFCZ0FTQUFBQUFBQUFBQUFBQUFBQUFCWUFBQUFGQUFBQUFBQUFBQWtBQUFBQUFBQUFBQUFBQUFBQUZnQVdBQUFBRFFBQUFBQUFBQUFBQUFBQUFBQU1BQVlBQWdBQUFBd0FBQUFBQUFBQUV3QUFBQUFBQWdBUkFBQUFBQUFPQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNRQUFBQmNBQUFBSkFBa0FFQUFKQUFrQUNRQUFBQllBQ1FBREFBa0FDUUFBQUFBQUNRQUFBQWtBQUFBQUFCWUFFQUFKQUFBQUFBQUdBQUFBQUFBQUFBQUFFZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHQUFRQUJ3QUZBQVlBQUFBR0FCWUFCZ0FBQUFZQUZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQUFBQWtBQUFBQUFBWUFGZ0FNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFrQUFBQUFBQUFBQUFBSkFBQUFGZ0FXQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFHQUJZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHUUFaQUFBQUN3QUxBQlVBQ3dBTEFBc0FGUUFBQUFBQUFBQVZBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrQUFBQUFBQUFBQUFBQUFCSUFFZ0FTQUJJQUVnQVNBQklBQmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR0FBWUFCZ0FHQUFZQUNBQUlBQWdBQ0FBS0FCc0FHd0FiQUJzQUd3QWJBQnNBRmdBV0FCWUFGZ0FXQUFBQUFBQUFBQUFBQ1FBRUFBUUFCQUFFQUFRQURRQU5BQTBBRFFBRkFBVUFFZ0FiQUJJQUd3QVNBQnNBQmdBV0FBWUFGZ0FHQUJZQUJnQVdBQUFBRmdBQUFCWUFBQUFXQUFBQUZnQUFBQllBQUFBV0FBWUFGZ0FHQUJZQUJnQVdBQVlBRmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ1FBQUFBa0FBQUFKQUFrQUJnQUVBQVlBQkFBR0FBUUFBQUFBQUFBQUFBQUFBQUFBR2dBWUFCb0FHQUFhQUJnQUdnQVlBQm9BR0FBTUFBQUFEQUFBQUF3QUFBQUlBQTBBQ0FBTkFBZ0FEUUFJQUEwQUNBQU5BQWdBRFFBUEFBQUFDZ0FGQUFvQUZBQUJBQlFBQVFBVUFBRUFBQUFBQUFZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFTQUFBQUFBQUFBQVlBQ2dBQUFBQUFFZ0FBQUFBQUZBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUNnQVRBQUFBQ2dBV0FBQUFDUUFBQUEwQUFBQUVBQUFBQlFBQUFBQUFEUUFFQUEwQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUVRQVNBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUFBQVlBREFBVEFCc0FGZ0FKQUFRQUNRQVdBQVVBRndBV0FBa0FHQUFBQUFBQUFBQUpBQVVBRHdBQUFBOEFBQUFQQUFBQUNnQUZBQXNBQ3dBQUFBQUFBQUFMQUFBQUNRQVNBQnNBQmdBQUFBQUFBQUFBQUJZQUNRQUFBQUFBQndBRkFCWUFCZ0FBQUFBQUJnQVdBQW9BQlFBQUFCTUFGd0FBQUJJQUd3QVNBQnNBQUFBQUFBQUFGZ0FBQUJZQUZnQVRBQmNBQUFBQUFBQUFDUUFBQUFrQUJnQUVBQVlBRmdBR0FBUUFBQUFBQUJFQUJRQVJBQVVBRVFBRkFBNEFBd0FBQUFrQUV3QVhBQllBQWdBUUFCSUFHd0FTQUJzQUVnQWJBQklBR3dBU0FCc0FFZ0FiQUJJQUd3QVNBQnNBRWdBYkFCSUFHd0FTQUJzQUVnQWJBQUFBRmdBQUFCWUFBQUFXQUFBQUZnQUFBQllBQUFBV0FBQUFGZ0FBQUJZQUFBQUFBQUFBQUFBR0FBUUFCZ0FFQUFZQUJBQUdBQVFBQmdBRUFBWUFCQUFHQUFRQUJnQVdBQVlBRmdBR0FCWUFCZ0FFQUFZQUZnQUlBQTBBQ0FBTkFBQUFEUUFBQUEwQUFBQU5BQUFBRFFBQUFBMEFDZ0FGQUFvQUJRQUtBQVVBQUFBQUFBQUFDUUFBQUFrQURBQUFBQk1BRndBT0FBTUFEZ0FEQUFBQUNRQVRBQmNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSkFBQUFDUUFBQUFrQUFnQVFBQW9BQUFBQUFBQUFBQUFBQUJrQUFBQUJBQUFBQ2dBc0FJNEFBVVJHVEZRQUNBQUVBQUFBQVAvL0FBZ0FBQUFCQUFJQUF3QUVBQVVBQmdBSEFBaHNhV2RoQURKc2JuVnRBRGh6YldOd0FENXpjekF4QUVSemN6QXlBRXB6Y3pBekFGQnpjekEwQUZaemN6QTFBRndBQUFBQkFBRUFBQUFCQUFJQUFBQUJBQUFBQUFBQkFBTUFBQUFCQUFRQUFBQUJBQVVBQUFBQkFBWUFBQUFCQUFjQUNBQVNBQm9BSWdBcUFESUFPZ0JDQUVvQUFRQUFBQUVBUUFBRUFBQUFBUUgyQUFFQUFBQUJBZ0FBQVFBQUFBRUNFZ0FCQUFBQUFRSVFBQUVBQUFBQkFnNEFBUUFBQUFFQ0RBQUJBQUFBQVFJT0FBSUNFQURjQWFZQnB3R29BYWtCcWdHckFhd0JyUUd1QWE4QnNBR3hBYklCc3dHMEFlZ0J0UUcyQWJjQnVBRzVBYm9CdXdHOEFiMEJ2Z0dtQWFjQnFBR3BBYW9CcXdHc0FhMEJyZ0d2QWJBQnNRR3lBYk1CdEFIb0FiVUJ0Z0czQWJnQnVRRzZBYnNCdkFHOUFiNEM5d0tpQXFFQ29nS2pBcU1DcEFLbEFxWUNwd0tvQXFrQ3FnS3JBcXdDclFLdUFxOENzQUt4QXJJQ3N3SzBBclVDdGdLM0FyZ0N1UUs2QXJzQ3ZBSzlBcjRDcEFLbEFxWUNwd0tvQXFrQ3FnS3JBcXdDclFLdUFxOENzQUt4QXJJQ3N3SzBBclVDdGdLM0FyZ0N1UUs2QXJzQ3ZBSzlBcjRDOHdLL0FyOEN3QUxBQXNFQ3dRTENBc0lDd3dMREFzVUN4UUxHQXNZQ3h3TEhBc2dDeUFMSkFza0N5Z0xLQXNzQ3l3TE1Bc3dDelFMTkFzOEN6d0xRQXRBQzBRTFJBdElDMGdMVEF0TUMxQUxVQXRVQzFnTFdBdGNDMXdMWUF0Z0MyUUxaQXRvQzJnTGJBdHNDM0FMY0F0MEMzUUxlQXQ0QzN3TGZBdUFDNEFMaEF1RUM0Z0xpQXVNQzR3TGtBdVFDNVFMbEF1WUM1Z0xuQXVjQzZBTG8vLy8vL3dMcUF1b0M2d0xyQXV3QzdBTHRBdTBDN2dMdUF1OEM3d0x3QXZBQzhRTHhBdklDOGdMekF2UUM5QUwxQXZVQzlnTDJBcUVBQVFDa0FBRUFDQUFCQUFRQmtnQUNBRXNBQWdDWUFBb0JtQUhNQWNRQjFnSFhBZGdCMlFIYkFkMEI1d0FCQUlnQmtRQUJBSWdCS0FBQkFJZ0JyZ0FDQUlnQUFnSGpBZVFBQWdCK0FBSUI1UUhtQUFJQURRQWpBRHdBQUFCREFGd0FHZ0NEQUlNQU5BQ0ZBSVVBTlFIc0FlMEFOZ0h2QWpFQU9BSTBBa1VBZXdKSUFsUUFqUUpYQW1nQW1nSnFBbnNBckFKK0FuOEF2Z0tDQXB3QXdBUHdBL0FBMndBQkFBRUFTQUFDQUFFQUVnQWJBQUFBQVFBQkFFa0FBUUFCQUxZQUFRQUJBRFFBQVFBQ0FDMEFUUT09IiwiUm9ib3RvLVJlZ3VsYXIudHRmIjoiQUFFQUFBQU9BSUFBQXdCZ1IwUkZSZ3N1Q3k4QUFTeDBBQUFBU0VkUVQxT0MzVDRvQUFFc3ZBQUFrUGhIVTFWQ2VvbHZMd0FCdmJRQUFBTnNUMU12TXJpdktjTUFBQUZvQUFBQVlGWkVUVmh1Nm5aUEFBQVNPQUFBQmVCamJXRndmNzZCWmdBQUdCZ0FBQTdpWjJ4NVp1c0U5V01BQUNiOEFBRFVlR2hsWVdUMWtRN0VBQUFBN0FBQUFEWm9hR1ZoQzNBSmt3QUFBU1FBQUFBa2FHMTBlSmFEYWFjQUFBSElBQUFRY0d4dlkyRXZydm5HQUFEN2RBQUFDRHB0WVhod0JEc0E5Z0FBQVVnQUFBQWdibUZ0WmJzODNiUUFBUU93QUFBRWVYQnZjM1RmYjV4aUFBRUlMQUFBSkVZQUFRQUFBQUVBQUhkRnN5VmZEenoxQUFrSUFBQUFBQURFOEJFdUFBQUFBTTJDc21INmpmM1ZDWFFJWWdBQUFBa0FBZ0FBQUFBQUFBQUJBQUFIYlA0TUFBQUprdnFOL2RnSmRBQUJBQUFBQUFBQUFBQUFBQUFBQUFBRUhBQUJBQUFFSEFDWEFCWUFYUUFGQUFFQUFBQUFBQUFBQUFBQUFBQUFBd0FCQUFNRWx3R1FBQVVBQUFXYUJUTUFBQUVmQlpvRk13QUFBOUVBWmdJQUFBQUFBQUFBQUFBQUFBQUE0QUFDLzFBQUlGc0FBQUFnQUFBQUFIQjVjbk1BUUFBQS8vMEdBUDRBQUdZSG1nSUFJQUFCbjA4QkFBQUVPZ1d3QUFBQUlBQUNBZnNBQUFBQUFBQUIrd0FBQWZzQUFBS1BBR2tFK3dCR0JINEFiZ1hjQUdrRStRQkVBV1VBWndLaEFJVUNxZ0FJQTNJQUhBU0pBRTRCa2dBZEFqVUFKUUliQUtJRFRBQVNCSDRBY2dSK0FOY0VmZ0JkQkg0QVhnUitBRGtFZmdDYUJINEFod1IrQUUwRWZnQm1CSDRBVkFINEFLQUNBQUJLQkJFQVNBU0FBSmdFTGdDR0E4Y0FPZ2N2QUdFRlNnQW5CUmNBdGdVZUFJTUZhUUMyQktvQXRnU25BTFlGZmdDRkJiTUF0Z0kvQU1NRWFnQS9CU1FBdGdSZ0FMWUhBd0MyQmJRQXRnV1FBSUlGR1FDMkJaQUFnZ1ZNQUxVRTR3QmFCTVlBT3dWb0FKWUZLUUFuQncwQVNBVUpBRUVFOGdBZUJNa0FZUUlmQUpJRFNBQW9BaDhBQ1FOWUFFQURuQUFFQW5rQVR3UmlBSElFaUFDUkJEc0FZUVNJQUdRRU53QmlBcjRBUWdTSUFHWUVpQUNSQWZ3QW9RSUwvN1lFRXdDU0Fmd0FvUWNDQUpBRWlBQ1JCSWdBWUFTSUFKRUVpQUJrQXNvQWtRUXJBR1lDakFBZEJJZ0FqUVFDQUM0R0RnQXdCQUlBTGdRQ0FCc0VBZ0JlQXJVQVFBSHpBSzhDdFFBVEJYRUFnZ0h6QUpBRVlRQnVCS1lBUmdXMEFHa0UyQUFnQWVzQWt3VG9BRm9EOUFDcEJra0FXd09UQUhvRHdRQm1CRzRBZndaS0FGb0RxZ0I0QXYwQWdnUkhBR0VEWHdCeEEyZ0FhUUtDQUlFRWlBQ2FBK2tBUWdJV0FLSUIrd0IwQWlZQVhnT2pBSG9Ed0FCdkJqWUF0QWFXQUxRRzZ3QjdBKzBBY1FkNi8vSUVSQUJaQlhJQWN3UzZBS1lFd2dDTEJzRUFQUVN3QUV3RWtRQkhCSWtBWUFTY0FKb0Ztd0FlQWZvQW13UnpBSm9FTXdBbUFpb0FJd1dMQUtRRWlBQ1JCNkVBYVFkRUFHRUIvQUNnQXJuLzVBVi9BSEVFa3dCZ0JaQUFsZ1R6QUkwQ0EvKzBCRGNBWWdQRUFLa0RqUUNNQTJvQWdRSWhBS0FDdFFDTEFpb0FNZ1BHQUlJQy9BQm9BcDBBdGdBQS9Ob0FBUDEzQUFEOGt3QUEvVjRBQVB3bkFBRDlRd0lOQU1NRUN3Q2hBaGNBb2dSekFMVUZwQUFnQlhJQWN3VStBRFFFa1FCNkJiVUF0Z1NSQUVVRnV3Qk9CWWtBWFFWU0FISUVoUUJrQkwwQW9BUUNBQzRFaUFCZ0JGQUFZd1FsQUcwRWlBQ1JCSThBZWdLWEFNTUViZ0FsQSt3QVpRVEZBRThFaUFDUkJFMEFaUVNJQUdBRUxBQlJCRjBBandXakFGY0ZtZ0JmQnBjQWVnVHdBSFFFUXYvbkJrZ0FTZ1gvQUNzRlpRQ0hDSmtBTWdpa0FMVUdnZ0JBQmJRQXRRVUxBS1lHQkFBMEIwTUFHd1MvQUZFRnRBQzJCYWtBTUFVSEFGRUdMUUJUQmRrQXRBVjZBSmNIaHdDMEI4QUF0QVlTQUJFRzZ3QzFCUVVBcGdWa0FMRUhKd0REQlJnQVl3UnNBR0VFa2dDZEExc0FtZ1RVQUM0R0lBQVZCQkFBV0FTZUFKd0VVZ0NjQktBQUtBWHZBSjBFblFDY0JKNEFuQVBZQUNnRnpRQmtCTDBBbkFSWkFHY0dlQUNjQnA4QWtRVDNBQjRHTmdDZEJGZ0FuUVJOQUdRR2lBQ2RCR1FBTHdTSi8rY0VUZ0JzQnNrQUp3YmtBSndFaWYvOUJKNEFuQWNJQUo4R0t3Q0JCRmIvM0Fjc0FNUUYrUUNaQk5JQUtnUkdBQThIREFEV0Jnd0F2QWJSQUpZRjRRQ1dDUVVBd3dmUkFKc0VKQUJRQTlzQVRBVnlBSE1FakFCZ0JRb0FGd1FEQUM0RmNnQnpCSWtBWUFjQkFKOEdKQUIrQndrQW53WXNBSUVGTWdCNEJFY0FaQVQ5QUhRQUFQeG5BQUQ4Y1FBQS9XWUFBUDJrQUFENmpRQUErcVFFVnYvY0JSc0F0UVNLQUpFRVpBQ21BNUFBa1FUYkFMVUVCZ0NSQlFrQXBnUitBSm9HakFCRkJZUUFQZ2ZQQUxVRnRBQ1JDREVBdEFiMEFKRUY3Z0J6Qk5NQWJRY3RBRFFGWEFBZkJYQUFsd1JyQUlNRmNBQ09CaThBUndTKy8rTUZDUUNtQkZvQW1nV3lBTFVFaUFDUkJZY0FYd1NvQUdrRXFBQnBCTGNBT2dOSkFEc0U5Z0JaQnBRQVdRYmtBR1FHVmdBMkJTc0FNUVJLQUZNRUNBQjVCOEVBUlFaMUFEOEgrd0N0QnFFQWtBVDJBSGtFSFFCbEJhMEFKQVVnQUVZRlpBQ2JCQlFBQUFncEFBQUVGQUFBQ0NrQUFBSzVBQUFDQ2dBQUFWd0FBQVIvQUFBQ01BQUFBYUlBQUFEUkFBQUFBQUFBQllnQXN3WjlBTHNEcGdBTkFaa0FZQUdaQURBQmx3QWtBWm9BVUFMVUFHQUMyd0E4QXNFQUpBUnBBRVlFandCWEFySUFpZ1BFQUtZRldnQ21CNm9BUkFKbUFHd0NaZ0JaQTZNQU93T3JBRWdEWUFCNkJLWUFSZ2FSQUtjRVBnQlBCZWdBZXdQT0FHZ0l5d0NyQlFFQVpnVVhBSmdHdXdCdkIxQUFhd2QvQUd3RzJ3QnJCS0lBVEFXT0FLa0Vyd0JGQkpJQXFBVEZBRDhJT2dCckFnei90QVNDQUdVRUxRQ1lCRFlBbmdROEFKa0VDQUFyQWt3QXh3S1BBRzRDQXdCY0JHNEFId0FBQUFBSU13QmJDRFVBWEFRY0FGd0RqUUJYQklBQWN3TUwvNklCL1ArMkFpVUFHd0dSQUdjRHBBQ0RBNTRBZ1FPZkFJRUQ5QUJ0QkE0QWFRUHovMTREN3dCdUE2UUFXd0g5QUo4RXRRQXBCSFVBbXdTUEFISUVwZ0NiQkVNQW13UWRBSnNFendCeUJQWUFtd0g2QUpzRUN3QkJCRjBBbXdPNUFKc0Y5QUNiQlJrQW13VExBSElFNFFCeUJLa0Ftd1J2QUYwRUxBQkhCUUlBakFTNEFDb0dCUUJCQklRQU9BUmVBQ0FFUGdCT0JIY0Fld0pwQUVJRDRRQmFCQklBV1FSa0FFY0VhUUJkQkMwQWVnTzVBRWNFTFFCY0JDY0FTd0luQUY0RFZRQnhBMmdBYVFMOEFFb0RlUUJ5QTNvQWV3TU1BRjREZ2dCeUEyc0FhUU9rQUh3RGxnQ1BBclVBbmdOSEFHOEVmZ0JlQkg0QU9RUitBSm9FandDSEJEb0FIZ1JDQURzRWJ3QmFCSDRBWmdUREFHUUVpQUJnQlVRQXRnUmlBSElGTHdDMUJTUUF0Z1FUQUpJRlBRQzJCQThBa2dSK0FGUUVkUUNiQTJvQWdRSDdBQUFDTlFBbEJZY0FMZ1dIQUM0RXBnQUdCTVlBT3dLTS8rTUZTZ0FuQlVvQUp3VktBQ2NGU2dBbkJVb0FKd1ZLQUNjRlNnQW5CUjRBZ3dTcUFMWUVxZ0MyQktvQXRnU3FBTFlDUC8vY0FqOEF3d0kvLy9JQ1AvL01CYlFBdGdXUUFJSUZrQUNDQlpBQWdnV1FBSUlGa0FDQ0JXZ0FsZ1ZvQUpZRmFBQ1dCV2dBbGdUeUFCNEVZZ0J5QkdJQWNnUmlBSElFWWdCeUJHSUFjZ1JpQUhJRVlnQnlCRHNBWVFRM0FHSUVOd0JpQkRjQVlnUTNBR0lCK3YrMUFmb0Ftd0g2LzhzQit2K2xCSWdBa1FTSUFHQUVpQUJnQklnQVlBU0lBR0FFaUFCZ0JJZ0FqUVNJQUkwRWlBQ05CSWdBalFRQ0FCc0VBZ0FiQlVvQUp3UmlBSElGU2dBbkJHSUFjZ1ZLQUNjRVlnQnlCUjRBZ3dRN0FHRUZIZ0NEQkRzQVlRVWVBSU1FT3dCaEJSNEFnd1E3QUdFRmFRQzJCUjRBWkFTcUFMWUVOd0JpQktvQXRnUTNBR0lFcWdDMkJEY0FZZ1NxQUxZRU53QmlCS29BdGdRM0FHSUZmZ0NGQklnQVpnVitBSVVFaUFCbUJYNEFoUVNJQUdZRmZnQ0ZCSWdBWmdXekFMWUVpQUNSQWovL3hRSDYvNTRDUC8rL0Fmci9tQUkvLy9VQit2L09BajhBSVFIOEFBQUNQd0MzQnFrQXd3UUhBS0VFYWdBL0FnUC90QVVrQUxZRUV3Q1NCR0FBdGdIOEFLRUVZQUMyQWZ3QVd3UmdBTFlDa2dDaEJHQUF0Z0xZQUtFRnRBQzJCSWdBa1FXMEFMWUVpQUNSQmJRQXRnU0lBSkVFaVAvU0JaQUFnZ1NJQUdBRmtBQ0NCSWdBWUFXUUFJSUVpQUJnQlV3QXRRTEtBSkVGVEFDMUFzb0FXQVZNQUxVQ3lnQnBCT01BV2dRckFHWUU0d0JhQkNzQVpnVGpBRm9FS3dCbUJPTUFXZ1FyQUdZRTR3QmFCQ3NBWmdUR0FEc0NqQUFkQk1ZQU93S01BQjBFeGdBN0FyUUFIUVZvQUpZRWlBQ05CV2dBbGdTSUFJMEZhQUNXQklnQWpRVm9BSllFaUFDTkJXZ0FsZ1NJQUkwRmFBQ1dCSWdBalFjTkFFZ0dEZ0F3QlBJQUhnUUNBQnNFOGdBZUJNa0FZUVFDQUY0RXlRQmhCQUlBWGdUSkFHRUVBZ0JlQjNyLzhnYkJBRDBGY2dCekJJa0FZQVNtLy9NRXB2L3pCQ3dBUndTMUFDa0V0UUFwQkxVQUtRUzFBQ2tFdFFBcEJMVUFLUVMxQUNrRWp3QnlCRU1BbXdSREFKc0VRd0NiQkVNQW13SDYvN01CK2dDYkFmci95UUg2LzZNRkdRQ2JCTXNBY2dUTEFISUV5d0J5Qk1zQWNnVExBSElGQWdDTUJRSUFqQVVDQUl3RkFnQ01CRjRBSUFTMUFDa0V0UUFwQkxVQUtRU1BBSElFandCeUJJOEFjZ1NQQUhJRXBnQ2JCRU1BbXdSREFKc0VRd0NiQkVNQW13UkRBSnNFendCeUJNOEFjZ1RQQUhJRXp3QnlCUFlBbXdINi81d0IrditXQWZyL3pBSDYvL2NCK2dDUEJBc0FRUVJkQUpzRHVRQ2JBN2tBbXdPNUFKc0R1UUNiQlJrQW13VVpBSnNGR1FDYkJNc0FjZ1RMQUhJRXl3QnlCS2tBbXdTcEFKc0VxUUNiQkc4QVhRUnZBRjBFYndCZEJHOEFYUVFzQUVjRUxBQkhCUUlBakFVQ0FJd0ZBZ0NNQlFJQWpBVUNBSXdGQWdDTUJnVUFRUVJlQUNBRVhnQWdCRDRBVGdRK0FFNEVQZ0JPQ040QVhRVktBQ2NGRHYvbUJoY0FFd0tqQUJrRnBBQlNCVmIvalFWbUFEOENsLy9JQlVvQUp3VVhBTFlFcWdDMkJNa0FZUVd6QUxZQ1B3RERCU1FBdGdjREFMWUZ0QUMyQlpBQWdnVVpBTFlFeGdBN0JQSUFIZ1VKQUVFQ1AvL01CUElBSGdTRkFHUUVVQUJqQklnQWtRS1hBTU1FWFFDUEJITUFtZ1NJQUdBRWlBQ2FCQUlBTGdRQ0FDNENsLy9UQkYwQWp3U0lBR0FFWFFDUEJwY0FlZ1NxQUxZRWN3QzFCT01BV2dJL0FNTUNQLy9NQkdvQVB3VWtBTFlGSkFDMkJRY0FVUVZLQUNjRkZ3QzJCSE1BdFFTcUFMWUZ0QUMyQndNQXRnV3pBTFlGa0FDQ0JiVUF0Z1VaQUxZRkhnQ0RCTVlBT3dVSkFFRUVZZ0J5QkRjQVlnU2VBSndFaUFCZ0JJZ0FrUVE3QUdFRUFnQWJCQUlBTGdRM0FHSURXd0NhQkNzQVpnSDhBS0VCK3YrbEFndi90Z1JTQUp3RUFnQWJCdzBBU0FZT0FEQUhEUUJJQmc0QU1BY05BRWdHRGdBd0JQSUFIZ1FDQUJzQlpRQm5BbzhBYVFRZUFLa0V1Z0JDQWdQL3RBR1pBREFIQXdDMkJ3SUFrQVZLQUNjRVlnQnlCWkQvUGdjc0FFSUhlQUJDQktvQXRnVzBBTFlFTndCaUJKNEFuQVdKQUYwRm1nQmZCUW9BRndRRC8va0lpZ0JnQ1pJQWdnUy9BRkVFRUFCWUJSNEFnd1E3QUdFRThnQWVCQUlBTGdJL0FNTUhRd0FiQmlBQUZRSS9BTU1GU2dBbkJHSUFjZ1ZLQUNjRVlnQnlCM3IvOGdiQkFEMEVxZ0MyQkRjQVlnV0hBRjhFTndCaUJEY0FZZ2REQUJzR0lBQVZCTDhBVVFRUUFGZ0Z0QUMyQko0QW5BVzBBTFlFbmdDY0JaQUFnZ1NJQUdBRmNnQnpCSXdBWUFWeUFITUVqQUJnQldRQXNRUk5BR1FGQndCUkJBSUFHd1VIQUZFRUFnQWJCUWNBVVFRQ0FCc0ZlZ0NYQkZrQVp3YnJBTFVHTmdDZEJRa0FRUVFDQUM0RWlBQmtCYWtBTUFTZ0FDZ0ZTZ0FuQkdJQWNnVktBQ2NFWWdCeUJVb0FKd1JpQUhJRlNnQW5CR0wvcmdWS0FDY0VZZ0J5QlVvQUp3UmlBSElGU2dBbkJHSUFjZ1ZLQUNjRVlnQnlCVW9BSndSaUFISUZTZ0FuQkdJQWNnVktBQ2NFWWdCeUJVb0FKd1JpQUhJRXFnQzJCRGNBWWdTcUFMWUVOd0JpQktvQXRnUTNBR0lFcWdDMkJEY0FZZ1NxLy9nRU4vK3pCS29BdGdRM0FHSUVxZ0MyQkRjQVlnU3FBTFlFTndCaUFqOEF3d0g2QUpzQ1B3QzNBZndBbGdXUUFJSUVpQUJnQlpBQWdnU0lBR0FGa0FDQ0JJZ0FZQVdRQUV3RWlQL0xCWkFBZ2dTSUFHQUZrQUNDQklnQVlBV1FBSUlFaUFCZ0JYOEFjUVNUQUdBRmZ3QnhCSk1BWUFWL0FIRUVrd0JnQlg4QWNRU1RBR0FGZndCeEJKTUFZQVZvQUpZRWlBQ05CV2dBbGdTSUFJMEZrQUNXQlBNQWpRV1FBSllFOHdDTkJaQUFsZ1R6QUkwRmtBQ1dCUE1BalFXUUFKWUU4d0NOQlBJQUhnUUNBQnNFOGdBZUJBSUFHd1R5QUI0RUFnQWJCS1lBWkFTbUFHUUZKQUMyQkZJQW5BV3pBTFlFblFDY0JNWUFPd1BZQUNnRkNRQkJCQUlBTGdWNkFKY0VXUUJuQlhvQWx3UlpBR2NFY3dDMUExc0FtZ2REQUJzR0lBQVZCaThBUndTKy8rTUVpQUNSQlFYLzFBVUYvOVFFY3dBREExdi8vQVU0Ly9VRUovL1lCYlFBdGdTZUFKd0Zzd0MyQkowQW5BY0RBTFlGN3dDZEJha0FNQVNnQUNnRThnQWVCQUlBTGdVSkFFRUVBZ0F1QkZBQVl3U25BQnNHZlFDN0FBQUFBQUlQQUtrQUFBQUJBQUVCQVFFQkFBd0ErQWovQUFnQUNQLytBQWtBQ2YvOUFBb0FDdi85QUFzQUMvLzlBQXdBRFAvOUFBMEFEZi84QUE0QUR2LzhBQThBRC8vOEFCQUFFUC84QUJFQUVmLzdBQklBRXYvN0FCTUFFLy83QUJRQUZQLzdBQlVBRlAvNkFCWUFGZi82QUJjQUZ2LzZBQmdBRi8vNkFCa0FHUC81QUJvQUdmLzVBQnNBR3YvNUFCd0FHLy81QUIwQUhQLzRBQjRBSGYvNEFCOEFIdi80QUNBQUgvLzRBQ0VBSVAvM0FDSUFJZi8zQUNNQUl2LzNBQ1FBSS8vM0FDVUFKUC8yQUNZQUpmLzJBQ2NBSnYvMkFDZ0FKLy8yQUNrQUovLzFBQ29BS1AvMUFDc0FLZi8xQUN3QUt2LzFBQzBBSy8vMEFDNEFMUC8wQUM4QUxmLzBBREFBTHYvMEFERUFMLy96QURJQU1QL3pBRE1BTWYvekFEUUFNdi96QURVQU0vL3lBRFlBTlAveUFEY0FOZi95QURnQU52L3lBRGtBTi8veEFEb0FPUC94QURzQU9mL3hBRHdBT3YveEFEMEFPdi93QUQ0QU8vL3dBRDhBUFAvd0FFQUFQZi93QUVFQVB2L3ZBRUlBUC8vdkFFTUFRUC92QUVRQVFmL3ZBRVVBUXYvdUFFWUFRLy91QUVjQVJQL3VBRWdBUmYvdUFFa0FSdi90QUVvQVIvL3RBRXNBU1AvdEFFd0FTZi90QUUwQVN2L3NBRTRBUy8vc0FFOEFUUC9zQUZBQVRmL3NBRkVBVGYvckFGSUFUdi9yQUZNQVQvL3JBRlFBVVAvckFGVUFVZi9xQUZZQVV2L3FBRmNBVS8vcUFGZ0FWUC9xQUZrQVZmL3BBRm9BVnYvcEFGc0FWLy9wQUZ3QVdQL3BBRjBBV2Yvb0FGNEFXdi9vQUY4QVcvL29BR0FBWFAvb0FHRUFYZi9uQUdJQVh2L25BR01BWC8vbkFHUUFZUC9uQUdVQVlQL21BR1lBWWYvbUFHY0FZdi9tQUdnQVkvL21BR2tBWlAvbEFHb0FaZi9sQUdzQVp2L2xBR3dBWi8vbEFHMEFhUC9rQUc0QWFmL2tBRzhBYXYva0FIQUFhLy9rQUhFQWJQL2pBSElBYmYvakFITUFidi9qQUhRQWIvL2pBSFVBY1AvaUFIWUFjZi9pQUhjQWN2L2lBSGdBYy8vaUFIa0FjLy9oQUhvQWRQL2hBSHNBZGYvaEFId0Fkdi9oQUgwQWQvL2dBSDRBZVAvZ0FIOEFlZi9nQUlBQWV2L2dBSUVBZS8vZkFJSUFmUC9mQUlNQWZmL2ZBSVFBZnYvZkFJVUFmLy9lQUlZQWdQL2VBSWNBZ2YvZUFJZ0Fndi9lQUlrQWcvL2RBSW9BaFAvZEFJc0FoZi9kQUl3QWh2L2RBSTBBaHYvY0FJNEFoLy9jQUk4QWlQL2NBSkFBaWYvY0FKRUFpdi9iQUpJQWkvL2JBSk1BalAvYkFKUUFqZi9iQUpVQWp2L2FBSllBai8vYUFKY0FrUC9hQUpnQWtmL2FBSmtBa3YvWkFKb0FrLy9aQUpzQWxQL1pBSndBbGYvWkFKMEFsdi9ZQUo0QWwvL1lBSjhBbVAvWUFLQUFtZi9ZQUtFQW1mL1hBS0lBbXYvWEFLTUFtLy9YQUtRQW5QL1hBS1VBbmYvV0FLWUFudi9XQUtjQW4vL1dBS2dBb1AvV0FLa0FvZi9WQUtvQW92L1ZBS3NBby8vVkFLd0FwUC9WQUswQXBmL1VBSzRBcHYvVUFLOEFwLy9VQUxBQXFQL1VBTEVBcWYvVEFMSUFxdi9UQUxNQXEvL1RBTFFBclAvVEFMVUFyUC9TQUxZQXJmL1NBTGNBcnYvU0FMZ0FyLy9TQUxrQXNQL1JBTG9Bc2YvUkFMc0Fzdi9SQUx3QXMvL1JBTDBBdFAvUUFMNEF0Zi9RQUw4QXR2L1FBTUFBdC8vUUFNRUF1UC9QQU1JQXVmL1BBTU1BdXYvUEFNUUF1Ly9QQU1VQXZQL09BTVlBdmYvT0FNY0F2di9PQU1nQXYvL09BTWtBdi8vTkFNb0F3UC9OQU1zQXdmL05BTXdBd3YvTkFNMEF3Ly9NQU00QXhQL01BTThBeGYvTUFOQUF4di9NQU5FQXgvL0xBTklBeVAvTEFOTUF5Zi9MQU5RQXl2L0xBTlVBeS8vS0FOWUF6UC9LQU5jQXpmL0tBTmdBenYvS0FOa0F6Ly9KQU5vQTBQL0pBTnNBMGYvSkFOd0Ewdi9KQU4wQTB2L0lBTjRBMC8vSUFOOEExUC9JQU9BQTFmL0lBT0VBMXYvSEFPSUExLy9IQU9NQTJQL0hBT1FBMmYvSEFPVUEydi9HQU9ZQTIvL0dBT2NBM1AvR0FPZ0EzZi9HQU9rQTN2L0ZBT29BMy8vRkFPc0E0UC9GQU93QTRmL0ZBTzBBNHYvRUFPNEE0Ly9FQU84QTVQL0VBUEFBNWYvRUFQRUE1Zi9EQVBJQTV2L0RBUE1BNS8vREFQUUE2UC9EQVBVQTZmL0NBUFlBNnYvQ0FQY0E2Ly9DQVBnQTdQL0NBUGtBN2YvQkFQb0E3di9CQVBzQTcvL0JBUHdBOFAvQkFQMEE4Zi9BQVA0QTh2L0FBUDhBOC8vQUFBQUFBd0FBQUFNQUFBaUVBQUVBQUFBQUFCd0FBd0FCQUFBQ0pnQUdBZ29BQUFBQUFRQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBZ0FBQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQU1FR3dBRUFBVUFCZ0FIQUFnQUNRQUtBQXNBREFBTkFBNEFEd0FRQUJFQUVnQVRBQlFBRlFBV0FCY0FHQUFaQUJvQUd3QWNBQjBBSGdBZkFDQUFJUUFpQUNNQUpBQWxBQ1lBSndBb0FDa0FLZ0FyQUN3QUxRQXVBQzhBTUFBeEFESUFNd0EwQURVQU5nQTNBRGdBT1FBNkFEc0FQQUE5QUQ0QVB3QkFBRUVBUWdCREFFUUFSUUJHQUVjQVNBQkpBRW9BU3dCTUFFMEFUZ0JQQUZBQVVRQlNBRk1BVkFCVkFGWUFWd0JZQUZrQVdnQmJBRndBWFFCZUFGOEFZQUFBQWZVQjlnSDRBZm9DQVFJR0Fnb0NEUUlNQWc0Q0VBSVBBaEVDRXdJVkFoUUNGZ0lYQWhrQ0dBSWFBaHNDSEFJZUFoMENId0loQWlBQ0l3SWlBaVFDSlFGc0FHOEFZZ0JqQUdjQmJnQjFBSU1BYlFCcEFYMEFjd0JvQVlzQWZ3Q0JBWWdBY0FHTUFZMEFaUUIwQVlNQmhRR0VBTUVCaVFCcUFIa0F0UUNFQUljQWZnQmhBR3dCaHdDVEFZb0FyUUJyQUhvQmNBQURBZkVCOUFJRkFKQUFrUUZpQVdNQmFRRnFBV1VCWmdDR0FZNENKd0tXQVhRQmVRRnlBWE1Ca2dOUUFXMEFkZ0ZuQVdzQmNRSHpBZnNCOGdIOEFma0IvZ0gvQWdBQi9RSURBZ1FBQUFJQ0FnZ0NDUUlIQUlvQW1nQ2dBRzRBbkFDZEFKNEFkd0NoQUo4QW13QUVCbDRBQUFEcUFJQUFCZ0JxQUFBQUFnQU5BQ0VBZmdDZ0FLd0FyUUMvQU1ZQXp3RG1BTzhBL2dFUEFSRUJKUUVuQVRBQk9BRkFBVk1CWHdGbkFYNEJmd0dTQWFFQnNBSHdBZnNCL3dJWkFoc0NOd0paQXJ3Q3h3TEpBdDBDOHdNQkF3TURDUU1QQXlNRGlnT01BNUlEb1FPd0E3a0R5UVBPQTlJRDFnUWxCQzhFUlFSUEJHSUVid1I1QklZRXpnVFhCT0VFOVFVQkJSQUZFeDRCSGo4ZWhSN3hIdk1lK1I5TklBc2dGU0FlSUNJZ0ppQXdJRE1nT2lBOElFUWdkQ0IvSUtRZ3B5Q3NJUVVoRXlFV0lTSWhKaUV1SVY0aUFpSUdJZzhpRWlJYUloNGlLeUpJSW1BaVpTWEs3Z0wydy9zRS92Ly8vZi8vQUFBQUFBQUNBQTBBSUFBaUFLQUFvUUN0QUs0QXdBREhBTkFBNXdEd0FQOEJFQUVTQVNZQktBRXhBVGtCUVFGVUFXQUJhQUYvQVpJQm9BR3ZBZkFCK2dIOEFoZ0NHZ0kzQWxrQ3ZBTEdBc2tDMkFMekF3QURBd01KQXc4REl3T0VBNHdEamdPVEE2TURzUU82QThvRDBRUFdCQUFFSmdRd0JFWUVVQVJqQkhBRWVnU0lCTThFMkFUaUJQWUZBZ1VSSGdBZVBoNkFIcUFlOGg3MEgwMGdBQ0FUSUJjZ0lDQWxJREFnTWlBNUlEd2dSQ0IwSUg4Z295Q25JS3NoQlNFVElSWWhJaUVtSVM0aFd5SUNJZ1lpRHlJUklob2lIaUlySWtnaVlDSmtKY3J1QWZiRCt3SCsvLy84Ly84QUFRUVkvL1VBQVAvaUFBRC93QUFBLzc4QUFBRXhBQUFCTEFBQUFTZ0FBQUVtQUFBQkpBQUFBU0lBQUFFY0FBQUJIZ0FBL3dIKzlQN25BV0VBQUFDaEFHUUFadjVoL2tBQWx2M1UvYVg5eFAydi9hUDlvdjJkL1pqOWhRQUEvM0QvYndBQUFBRDlCUUFBLzFEOCtmejJBQUQ4dFFBQS9LMEFBUHlpQUFEOG5BQUEvcDRBQVA2YkFBRDhSUUFBNVZYbEZlVEY1UGprV2VUMjVBcmhWZ0FBNFUzaFRPRks0VUhqRytFNTR4UGhNT0VCNFBjQUFPRFJBQURnZGVCbzRHYmdXOStQNEZEZ0pOK0IzcWZmZGQ5MDMyM2ZhdDllMzBMZks5OG8yOFFUamdyT0FBQUNsQUdZQUFFQUFBQUFBQUFBNUFBQUFPUUFBQURpQUFBQTRBQUFBT29BQUFFVUFBQUJMZ0FBQVM0QUFBRXVBQUFCT2dBQUFWd0FBQUZvQUFBQUFBQUFBQUFCWUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkVBQUFBQUFGTUFXZ0FBQUdBQUFBQUFBQUFBWmdBQUFIZ0FBQUNDQUFBQWlvQUFBSTZBQUFDeEFBQUF0UUFBQUxvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUxjQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3pBQUFBc3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFxWUFBQUFBQUFBQUF3UWJBZW9CNndIeEFmSUI4d0gwQWZVQjlnQi9BZTBDQVFJQ0FnTUNCQUlGQWdZQWdBQ0JBZ2NDQ0FJSkFnb0NDd0NDQUlNQ0RBSU5BZzRDRHdJUUFoRUFoQUNGQWh3Q0hRSWVBaDhDSUFJaEFJWUFod0lpQWlNQ0pBSWxBaVlBaUFIc0EvQUFpUUh1QUlvQ1ZRSldBbGNDV0FKWkFsb0Fpd0NNQUkwQ1l3SmtBbVVDWmdKbkFtZ0NhUUNPQUk4Q2FnSnJBbXdDYlFKdUFtOEFrQUNSQW40Q2Z3S0NBb01DaEFLRkFlOEI4QUNTQWZjQ0VnQ3BBS29DK0FDckF2a0MrZ0w3QUt3QXJRTUNBd01EQkFDdUF3VURCZ0N2QXdjRENBQ3dBd2tBc1FNS0FMSURDd01NQUxNRERRQzBBTFVERGdNUEF4QURFUU1TQXhNREZBTVZBTDhERndNWUFNQURGZ0RCQU1JQXd3REVBTVVBeGdESEF4a0F5QURKQTFvREh3RE5BeUFBemdNaEF5SURJd01rQU04QTBBRFJBeVlEV3dNbkFOSURLQURUQXlrREtnRFVBeXNBMVFEV0FOY0RMQU1sQU5nRExRTXVBeThETUFNeEF6SURNd0RaQU5vRE5BTTFBT1VBNWdEbkFPZ0ROZ0RwQU9vQTZ3TTNBT3dBN1FEdUFPOERPQUR3QXprRE9nRHhBenNBOGdNOEExd0RQUUQ5QXo0QS9nTS9BMEFEUVFOQ0FQOEJBQUVCQTBNRFhRTkVBUUlCQXdFRUJBWURYZ05mQVJJQkV3RVVBUlVEWUFOaEEyTURZZ0VqQVNRRUN3UU1CQVVCSlFFbUFTY0JLQUVwQkFjRUNBRXFBU3NFQUFRQkEyUURaUVB5QS9NQkxBRXRCQWtFQ2dFdUFTOEQ5QVAxQVRBQk1RRXlBVE1CTkFFMUEyWURad1AyQS9jRGFBTnBCQk1FRkFQNEEva0JOZ0UzQS9vRCt3RTRBVGtCT2dRRUFUc0JQQVFDQkFNRGFnTnJBMndCUFFFK0JCRUVFZ0UvQVVBRURRUU9BL3dEL1FRUEJCQUJRUU4zQTNZRGVBTjVBM29EZXdOOEFVSUJRd1ArQS84RGtRT1NBVVFCUlFPVEE1UUVGUVFXQVVZRGxRUVhBNVlEbHdGaUFXTUVHUVFZQVhjRDhRRjVBWklEVUFOWUExa0FCQVplQUFBQTZnQ0FBQVlBYWdBQUFBSUFEUUFoQUg0QW9BQ3NBSzBBdndER0FNOEE1Z0R2QVA0QkR3RVJBU1VCSndFd0FUZ0JRQUZUQVY4Qlp3RitBWDhCa2dHaEFiQUI4QUg3QWY4Q0dRSWJBamNDV1FLOEFzY0N5UUxkQXZNREFRTURBd2tERHdNakE0b0RqQU9TQTZFRHNBTzVBOGtEemdQU0E5WUVKUVF2QkVVRVR3UmlCRzhFZVFTR0JNNEUxd1RoQlBVRkFRVVFCUk1lQVI0L0hvVWU4Ujd6SHZrZlRTQUxJQlVnSGlBaUlDWWdNQ0F6SURvZ1BDQkVJSFFnZnlDa0lLY2dyQ0VGSVJNaEZpRWlJU1loTGlGZUlnSWlCaUlQSWhJaUdpSWVJaXNpU0NKZ0ltVWx5dTRDOXNQN0JQNy8vLzMvL3dBQUFBQUFBZ0FOQUNBQUlnQ2dBS0VBclFDdUFNQUF4d0RRQU9jQThBRC9BUkFCRWdFbUFTZ0JNUUU1QVVFQlZBRmdBV2dCZndHU0FhQUJyd0h3QWZvQi9BSVlBaG9DTndKWkFyd0N4Z0xKQXRnQzh3TUFBd01EQ1FNUEF5TURoQU9NQTQ0RGt3T2pBN0VEdWdQS0E5RUQxZ1FBQkNZRU1BUkdCRkFFWXdSd0JIb0VpQVRQQk5nRTRnVDJCUUlGRVI0QUhqNGVnQjZnSHZJZTlCOU5JQUFnRXlBWElDQWdKU0F3SURJZ09TQThJRVFnZENCL0lLTWdweUNySVFVaEV5RVdJU0loSmlFdUlWc2lBaUlHSWc4aUVTSWFJaDRpS3lKSUltQWlaQ1hLN2dIMncvc0Ivdi8vL1AvL0FBRUVHUC8xQUFELzRnQUEvOEFBQVArL0FBQUJNUUFBQVN3QUFBRW9BQUFCSmdBQUFTUUFBQUVpQUFBQkhBQUFBUjRBQVA4Qi92VCs1d0ZoQUFBQW9RQmtBR2IrWWY1QUFKYjkxUDJsL2NUOXIvMmovYUw5bmYyWS9ZVUFBUDl3LzI4QUFBQUEvUVVBQVA5US9Qbjg5Z0FBL0xVQUFQeXRBQUQ4b2dBQS9Kd0FBUDZlQUFEK213QUEvRVVBQU9WVjVSWGt4ZVQ0NUZuazl1UUs0VllBQU9GTjRVemhTdUZCNHh2aE9lTVQ0VERoQWVEM0FBRGcwUUFBNEhYZ2FPQm00RnZmaitCUTRDVGZnZDZuMzNYZmROOXQzMnJmWHQ5QzN5dmZLTnZFRTQ0S3pnQUFBcFFCbUFBQkFBQUFBQUFBQU9RQUFBRGtBQUFBNGdBQUFPQUFBQURxQUFBQkZBQUFBUzRBQUFFdUFBQUJMZ0FBQVRvQUFBRmNBQUFCYUFBQUFBQUFBQUFBQVdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJSQUFBQUFBQlRBRm9BQUFCZ0FBQUFBQUFBQUdZQUFBQjRBQUFBZ2dBQUFJcUFBQUNPZ0FBQXNRQUFBTFVBQUFDNkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDM0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFzd0FBQUxNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS21BQUFBQUFBQUFBTUVHd0hxQWVzQjhRSHlBZk1COUFIMUFmWUFmd0h0QWdFQ0FnSURBZ1FDQlFJR0FJQUFnUUlIQWdnQ0NRSUtBZ3NBZ2dDREFnd0NEUUlPQWc4Q0VBSVJBSVFBaFFJY0FoMENIZ0lmQWlBQ0lRQ0dBSWNDSWdJakFpUUNKUUltQUlnQjdBUHdBSWtCN2dDS0FsVUNWZ0pYQWxnQ1dRSmFBSXNBakFDTkFtTUNaQUpsQW1ZQ1p3Sm9BbWtBamdDUEFtb0Nhd0pzQW0wQ2JnSnZBSkFBa1FKK0FuOENnZ0tEQW9RQ2hRSHZBZkFBa2dIM0FoSUFxUUNxQXZnQXF3TDVBdm9DK3dDc0FLMERBZ01EQXdRQXJnTUZBd1lBcndNSEF3Z0FzQU1KQUxFRENnQ3lBd3NEREFDekF3MEF0QUMxQXc0RER3TVFBeEVERWdNVEF4UURGUUMvQXhjREdBREFBeFlBd1FEQ0FNTUF4QURGQU1ZQXh3TVpBTWdBeVFOYUF4OEF6UU1nQU00RElRTWlBeU1ESkFEUEFOQUEwUU1tQTFzREp3RFNBeWdBMHdNcEF5b0ExQU1yQU5VQTFnRFhBeXdESlFEWUF5MERMZ012QXpBRE1RTXlBek1BMlFEYUF6UUROUURsQU9ZQTV3RG9BellBNlFEcUFPc0ROd0RzQU8wQTdnRHZBemdBOEFNNUF6b0E4UU03QVBJRFBBTmNBejBBL1FNK0FQNERQd05BQTBFRFFnRC9BUUFCQVFOREExMERSQUVDQVFNQkJBUUdBMTREWHdFU0FSTUJGQUVWQTJBRFlRTmpBMklCSXdFa0JBc0VEQVFGQVNVQkpnRW5BU2dCS1FRSEJBZ0JLZ0VyQkFBRUFRTmtBMlVEOGdQekFTd0JMUVFKQkFvQkxnRXZBL1FEOVFFd0FURUJNZ0V6QVRRQk5RTm1BMmNEOWdQM0EyZ0RhUVFUQkJRRCtBUDVBVFlCTndQNkEvc0JPQUU1QVRvRUJBRTdBVHdFQWdRREEyb0Rhd05zQVQwQlBnUVJCQklCUHdGQUJBMEVEZ1A4QS8wRUR3UVFBVUVEZHdOMkEzZ0RlUU42QTNzRGZBRkNBVU1EL2dQL0E1RURrZ0ZFQVVVRGt3T1VCQlVFRmdGR0E1VUVGd09XQTVjQllnRmpCQmtFR0FGM0EvRUJlUUdTQTFBRFdBTlpBQUFBQWdCcEJCUUNId1lZQUFVQUNnQUFBUU1qRXpVekJRTWpFVE1DSHk5ZUFZeisxaTlkakFXTi9vY0JkNDJML29jQ0JBQUFBQUlBUmdBQUJLSUZzQUFiQUI4QUFBRWhBeU1USXpVaEV5RTFJUk16QXlFVE13TXpGU01ETXhVakF5TURJUk1oQXN6KytGQ1BVTzhCQ1ViKy9RRWVVWTlSQVFoUmtGSEw1a2JoKzFDUW5nRUlSdjc0QVpyK1pnR2Fod0ZtaVFHZy9tQUJvUDVnaWY2YWgvNW1BaUVCWmdBQkFHNy9NQVFSQnBzQUt3QUFBVFFtSnk0Qk5UUTJOelV6RlI0QkZTTTBKaU1pQmhVVUZoY2VBUlVVQmdjVkl6VXVBVFV6RkJZek1qWURXSCtiejhtOHFwV3N0N2lBZUh4NWVhYlJ3c3UzbExEZHVhQjRocE1CZGwxL05EL0dyYWpNRmRyYkdPbk9qS2g4Ym1WM09FUy9ySy9JRXIrL0VkUFpvSUo4QUFBQUFBVUFhZi9yQllNRnhRQU5BQnNBS1FBM0FEc0FBQk0wTmpNeUZoMEJGQVlqSWlZMU14UVdNekkyUFFFMEppTWlCaFVCTkRZek1oWWRBUlFHSXlJbU5UTVVGak15TmowQk5DWWpJZ1lWQlNjQkYybWdpb3Fob0ltTG9ZdFNUMDFSVWs1T1VRSTZvSXFLb2FDSmk2R0xVazlPVVZKUFRsSCtFbWdDeDJnRW1JS3JxNEpOZ2FxcWdVMW5aMDFOVFdscFRmek5nYXVyZ1U2Q3FxcUNUV2huVGs1TmFHaE45a0VFY2tFQUFBQURBRVQvNndUUkJjVUFJQUFyQURnQUFCTTBOamN1QVRVME5qTXlGaFVVQmc4QkFUNEJOVE1VQmdjWEl5Y09BU01pSmdVeU5qY0JCdzRCRlJRV0F4UVdGemMrQVRVMEppTWlCa1NNajFCS3ZheWZ2bVZtY3dGY0xDK21URXUrM1Z0VHYyemMrd0hYVEk1QS9vOHFZVHlRRHpjNGtEb3BZRkpYV1FHR2ZMUmdZcHRVcTdPeGdtT0xTMVgrWGtTZFhJWGNXK05zUUVIZ1N6SXlBYm9mU1h3MGRKSUQ2VGQwUjJRbldUZEFYWEFBQUFFQVp3UWpBUDBHR0FBRkFBQVRBeU1UTlRQOU9WMEJsUVdvL25zQmRZQUFBUUNGL2lvQ2xRWnFBQThBQUJNUUFEY1hCZ0lSRlJBU0Z3Y21BQkdGQVRXMUpvM0t5WTRtdHY3TUFrOEJqd0luWlhocy9peitudzcrbi80c2RXOW1BaVFCa1FBQkFBaitLZ0lZQm1vQUR3QUFBUkFBQnljMkVoRTFFQUluTnhZQUVRSVkvc3UwSjR2TTBvVW50QUUxQWtYK2IvM2NabTlyQWQwQllnNEJYQUhmYjI5bS9kbitjZ0FBQUFBQkFCd0NZZ05WQmJBQURnQUFBU1UzQlFNekF5VVhCUk1IQ3dFbkFVciswaTRCTGdtWkNnRXBMdjdOeG55NnRIMEQyRnVVY0FGWi9xRndsbHorOEYwQklmN21XZ0FBQUFBQkFFNEFrZ1EwQkxZQUN3QUFBU0VWSVJFakVTRTFJUkV6QXA0Qmx2NXF1djVxQVphNkF3dXMvak1CemF3QnF3QUJBQjMrekFFMEFOb0FDUUFBSlJRR0J5YytBVDBCTXdFMFhGSnBNQzY1Um1UUFIwaEprVldYQUFBQUFBRUFKUUloQWcwQ3RnQURBQUFCSVRVaEFnMytHQUhvQWlHVkFBQUJBS0lBQUFGZUFNVUFBd0FBSVNNMU13RmV2THpGQUFBQkFCTC9nd01RQmJBQUF3QUFGeU1CTTdHZkFtQ2VmUVl0QUFBQUFnQnkvK3NFREFYRkFBMEFHd0FBQVJBQ0l5SUNHUUVRRWpNeUVoRW5OQ1lqSWdZVkVSUVdNekkyTlFRTThkdmE5UExhMi9PNWk0cUppb3lKaW9rQ0xQN2ovdHdCSlFFY0FWY0JIQUVtL3RyKzVDakV3TURFL2x2RXdzREdBQUFBQVFEWEFBQUN1UVd3QUFVQUFDRWpFUVUxSlFLNXVmN1hBZUlFM0FoM1pRQUJBRjBBQUFRakJjVUFHQUFBS1FFMUFUNEJOVFFtSXlJR0ZTTTBOak15RmhVVUJnY0JJUVFqL0ZZQjNZUmFnWENja2JuKzZNYmxqSVArZVFMTGd3SVRrcWRhY3BTYWtjUCs0TFY1NlpEK1Z3QUFBQUFCQUY3LzZ3UDZCY1VBS0FBQUFUTXlOalUwSmlNaUJoVWpORFl6TWhZVkZBWUhIZ0VWRkFRaklpUTFNeFFXTXpJMk5UUW1Ld0VCaHFlS2MzNkJlWTY1OXNyTzZtNXdoMjcvQU03Sy92eTZrb0tGa0lTUXB3TXdoSGlCZ29oMHJlWFR5bDJ3TUN1MmRjdmYxY0YzaW9lS2k0QUFBQUlBT1FBQUJGRUZzQUFLQUE4QUFBRXpGU01SSXhFaE5RRXpBU0VSSXdjRGhNM051UDF0QW9mRS9YMEJ5d01iQWVpVi9xMEJVMnNEOHZ3NEFzbEdBQUFCQUpyLzZ3UVJCYkFBSGdBQUd3RWhGU0VEUGdFM05oSVZGQUlqSWlZMU14UVdNekkyTlRRbUl5SUdCN0ZVQXRYOXh6QXdjbEhLNCtUbHZQS3ZpM1NFakkyQWVtd2FBcEVESDZuK1hDVXRBZ0wrKytUZy92dkh6WHlEcjUrUnMwWk1BQUFBQWdDSC8rc0VNd1hGQUJvQUp3QUFBVElXRndjdUFTTWlCaDBCUGdFek1oSVZGQUlqSWdBWkFSQUFFeUlHQnhVVUZqTXlOalUwSmdLZlRKRXlLRFJwU3FDL1FhVmp4K1B6ME5qKzd3RXdxV3FSSmFxR2dJcVNCY1VpRzVFYUh2WE9JanRCL3ZmVjVmN29BUzhCSGdFZkFSc0JVLzF6VlVwenp0ak1uSmE2QUFBQkFFMEFBQVFpQmJBQURBQUFBUUFDQXdjak54b0JFeUUxSVFRaS92ZStLUSs2RHl2dzJQemlBOVVGR3Y3Qi9oditvNW1aQVdJQ0Z3RUlsZ0FEQUdiLzZ3UVlCY1VBR0FBa0FEQUFBQUVVQmdjZUFSVVVCQ01pSkRVME5qYzFMZ0UxTkRZek1oWUROQ1lqSWdZVkZCWXpNallETkNZaklnWVZGQll6TWpZRDhIOXZnWlgrL3RiYS93Q1JmMjE2NmNiRDc1R2lmNEtkbTRhQm5pbUtibkNHaDNGdmh3UTFkYWtyTGJoK3pkSFF6bjY1TEFNcHFYVEV6TTM4bFh1YW1YeUFqWTRESTNDT2lYVnpob1lBQUFBQUFnQlUvK3NEL1FYRkFCc0FLQUFBSlRJMlBRRW5EZ0VqSWdJMU5BQXpNZ0FaQVJBQUl5SW1KemNlQVJNeU5qYzFOQ1lqSWdZVkZCWUIvNWF1QXpDV1h0ZnhBUUxBNWdFQi91cm9UNXRDSFQ5K2IzS1VJWldTZEpxT2dOYmFMQUZKU2dFRDhlZ0JILzdxL3VmK25QN2cvdGtjSDVBZUdBSGZZRTJjeGNMTXBhRytBQUQvL3dDZ0FBQUJYUVE2QUNZQUVQNEFBQWNBRVAvL0EzWC8vd0JLL3N3QllRUTZBQ2NBRUFBQUEzVUFCZ0FPTFFBQUFRQklBTVVEZWdSSkFBa0FBQUVIRlJjRkZRRTFBUlVCUWs5UEFqajh6Z015QXBzVUJCVHB3UUY3andGNndRQUFBZ0NZQVpBRDJnUE5BQU1BQndBQUFTRTFJUkVoTlNFRDJ2eStBMEw4dmdOQ0F5K2UvY09lQUFFQWhnREdBOXdFU2dBSkFBQVROUUVWQVRVbE56VW5oZ05XL0tvQ1hGSlNBNCs3L29hUC9vVzg4aFVERmdBQUFBSUFPZ0FBQTI4RnhRQVpBQjBBQUFFK0FUYytBVFUwSmlNaUJoVWpQZ0V6TWhZVkZBWUhEZ0VWRXlNMU13Rm5BUzFtWmxSeWJtR0F1Z0xqdHNiVWlYZzRGZ2pFeEFHWmsycGRkbjVkYjNKbFpLbkF4YmVFMEhRMlZGNytaOHNBQUFJQVlmNDdCdGdGbGdBekFFTUFBQUVHQWlNaUppY09BU01pSmpjYUFUTXlGaGNITXdNR0ZqTXlOamNTQUNFZ0FBTUNBQ0V5TmpjWERnRWpJQUFURWdBaElBQUJCaFl6TWpZM1BBRTNFeTRCSXlJR0JzY0oyZDlMYVJZMGptS0JoeElZNHFocWVrd0VCak1KUHpTQWxBa1Ivc1ArcHY3RS9vZ1FFZ0ZPQVVSYXNVQWxSY3RrL24zK2FCSVRBY1lCZkFHRUFZejc4QXhEVDBSdUxnSXZHendpZ1lnQjk5cit6bFJPVTAvdHlBRUlBVE16TndUOXVISlQ0clVCaHdHai9qaitoZjZBL2xBcUpHZ3JMZ0hxQWJrQnJ3SUovaGY5ODVLVk5VWVFGUXdDR2cwUTJRQUFBQUFDQUNjQUFBVWlCYkFBQndBS0FBQUJJUU1qQVRNQkl3RWhBd1BZL1p1UHZRSXlvQUlwdmYxRkFmajZBWVQrZkFXdytsQUNHUUt5QUFNQXRnQUFCS2tGc0FBUEFCZ0FJUUFBTXhFaE1oWVZGQVlIRlI0QkZSUUdJd0VSSVRJMk5UUW1JeVVoUGdFMU5DWWpJYllCMCtqOWVXT0RsUDdoL3FVQlc0MlpnWW4raVFGTWM0ZVhsZjdtQmJEQnlHU1lKQU1ieDRqTHp3S3QvZWlGZm9PU2xRTjNiM3AxQUFFQWcvL3JCTWtGeFFBYkFBQUJCZ0FqSWdBWkFSQUFNeklFRnlNdUFTTWlBaFVSRkJJek1qWTNCTWtZL3UveC9QN1FBVEQ4OVFFTkdMa1pvNldzeDhlc3BxSVpBYzNjL3ZvQldBRVVBUUVCRXdGYS9laW1xZjczelA3OXp2NzNwS2tBQUFBQ0FMWUFBQVRuQmJBQUNRQVRBQUF6RVNFZ0FCRVZFQUFoQXhFek1oSTlBVFFtSTdZQnV3RWlBVlQrcVA3UThQRG81dUxhQmJEK3B2N2t4ZjdpL3FrRkd2dDdBUVhieDkvL0FBQUFBUUMyQUFBRWRRV3dBQXNBQUFFaEVTRVZJUkVoRlNFUklRUVAvV0FEQnZ4QkE3WDlCQUtnQXFiOTc1VUZzSmIrSWdBQUFBRUF0Z0FBQkhNRnNBQUpBQUFCSVJFakVTRVZJUkVoQkEzOVlya0R2Zno4QXA0Q2lQMTRCYkNXL2dRQUFRQ0YvK3NFMndYRkFCOEFBQ1VPQVNNZ0FCa0JFQUFoTWdRWEl5NEJJeUlHRlJFVUZqTXlOamNSSVRVaEJOczAvYy8rOS82ekFUY0JBUGdCQ0IrNUdxT3ByODdrdUlLaUkvNjJBZ08vVUlRQlNnRVBBU2tCRHdGSjdjNkhudm5IL3RYSiswSXNBVkNWQUFBQUFRQzJBQUFFL1FXd0FBc0FBQ0VqRVNFUkl4RXpFU0VSTXdUOXVmMHJ1YmtDMWJrQ2h2MTZCYkQ5YXdLVkFBQUFBUUREQUFBQmZBV3dBQU1BQUNFakVUTUJmTG01QmJBQUFRQS8vK3NEd0FXd0FBOEFBQUV6RVJRR0l5SW1OVE1VRmpNeU5qVURCN255eDlYenVZcUZjbzRGc1B2a3lPSFMxSXlGbElBQUFBQUJBTFlBQUFVY0JiQUFEQUFBQVNNUkl4RXpFVE1CTXdrQkl3SWZzTG01bndJUjFQM0RBbWJqQXBUOWJBV3cvWGtDaC8wKy9SSUFBQUVBdGdBQUJDVUZzQUFGQUFBbElSVWhFVE1CYndLMi9KRzVsWlVGc0FBQUFRQzJBQUFHVFFXd0FCQUFBQWtDTXhFakVSTWpBU01CSXhNUkl4RUJwQUhkQWQ3dXVSTUQvaHQ4L2h3REU3a0ZzUHRQQkxINlVBSkhBbVA3VmdTby9aLzl1UVd3QUFBQUFRQzJBQUFFL2dXd0FBc0FBQ0VqQVNNUkl4RXpBVE1STXdUK3VmMHRBN201QXRNRHVRUjcrNFVGc1B1R0JIb0FBZ0NDLytzRkRRWEZBQTBBR3dBQUFSQUFJU0FBR1FFUUFDRWdBQkVuTkFJaklnSVZFUlFTTXpJU05RVU4vcnYrOXY3Ky9zWUJPZ0VDQVFvQlJibmF2TFRQejdTOTJRSlgvdlQrb0FGZ0FRd0JBUUVMQVdMK252NzFBc2tCQnY3NnlmNzl5Lzc2QVFYTUFBQUFBZ0MyQUFBRXhBV3dBQW9BRXdBQUFSRWpFU0V5RmhVVUJpTWxJVEkyTlRRbUl5RUJiN2tDSk8zOS9lMytsUUZybkpXVm5QNlZBa3I5dGdXdzY4aks2WldmZlg2aEFBQUFBZ0NDL3d3RkRRWEZBQk1BSVFBQUFSUUNCeGNISlE0Qkl5QUFHUUVRQUNFZ0FCRW5OQUlqSWdJVkVSUVNNeklTTlFVTmZIUHVmLzd5TDE4ei92Nyt4Z0U2QVFJQkNnRkZ1ZHE4dE0vUHRMM1pBbGVoL3Z0VzNIUDlEaEFCWUFFTUFRRUJDd0ZpL3A3KzlRTEpBUWIrK3NuKy9jdisrZ0VGekFBQUFBSUF0UUFBQk9JRnJ3QWFBQ01BQUFFUkl4RWhNaFlWRkFZSEhnRWRBUlFXRnhVakxnRTlBVFFtSXlVaE1qWTFOQ1lqSVFGdXVRSUs4L2Q1ZFh0cEhpVy9LQmFNZlA2UkFUNnZsWktmL3E4Q2V2MkdCYS9Qem5La01paXJoSWxHYVNNWUk0TkdoWHFQbFlDRmY0Y0FBQUFCQUZyLzZ3U0tCY1VBSlFBQUFUUW1KeTRCTlRRa016SUFGU00wSmlNaUJoVVVGaGNlQVJVVUJDTWlKRFV6RkJZek1qWUQwSmJIN1A0QkUrSHhBUmk1cktTYm9Lbkk2dTMrNWV2Zi9yVzUwNTZjc0FGdWFJVXhPTkNscmQvKy9yYUVub1Z1WW44eE85aW5zOUxvejVHUmZnQUFBQUVBT3dBQUJJb0ZzQUFIQUFBQklSRWpFU0UxSVFTSy9qVzUvalVFVHdVYSt1WUZHcFlBQUFBQkFKYi82d1RYQmJBQUVRQUFBUkVVQkNNaUpEVVJNeEVVRmpNeU5qVVJCTmYrMHZ2MC90eTZ2YUdweHdXdy9DWHkrUGp5QTl2OEphdXFxcXNEMndBQUFRQW5BQUFGQWdXd0FBa0FBQUVYTXpjQk13RWpBVE1DY2lFRUlRR0N5UDNqb2YzanlRRmVkbllFVXZwUUJiQUFBUUJJQUFBR3dnV3dBQlVBQUFFWE16Y0JNd0VYTXpjVE13RWpBU2NqQndFakFUTUIweDhETEFFUnBRRVRLd01oejdyK3JxYisyeDBESGY3WHB2NnZ1UUh2eXNvRHdmdy96TXdEd2ZwUUEvMlJrZndEQmJBQUFBRUFRUUFBQk5BRnNBQUxBQUFKQVRNSkFTTUpBU01KQVRNQ2hnRmczLzR2QWR6Yy9wYitsK0FCM1A0djNnTnpBajM5THYwaUFrajl1QUxlQXRJQUFBQUJBQjRBQUFUVEJiQUFDQUFBQ1FFekFSRWpFUUV6QW5nQmg5VDkvcmorQmRRQ3ZnTHkvRkw5L2dJUEE2RUFBQUFCQUdFQUFBUnRCYkFBQ1FBQUpTRVZJVFVCSVRVaEZRRTFBemo3OUFNVS9Qa0QzcFdWalFTTmxvZ0FBQUVBa3Y3SUFnc0dnQUFIQUFBQkl4RXpGU0VSSVFJTHY3Lytod0Y1QmVyNWRKWUh1QUFBQUFBQkFDai9nd000QmJBQUF3QUFFek1CSXlpd0FtQ3dCYkQ1MHdBQUFRQUovc2dCZ3dhQUFBY0FBQk1oRVNFMU14RWpDUUY2L29iQndRYUErRWlXQm93QUFRQkFBdGtERkFXd0FBa0FBQk1qQVRNQkl3TW5Jd2ZzckFFcmZ3RXFxNnNUQkJNQzJRTFgvU2tCcWxWVkFBQUFBUUFFLzJzRG1BQUFBQU1BQUFVaE5TRURtUHhzQTVTVmxRQUFBQUVBVHdTN0FlUUZ4UUFEQUFBQkl3TXpBZVNZL2VJRXV3RUtBQUFDQUhMLzdBUHNCRTRBSHdBcUFBQWhMZ0VuRGdFaklpWTFORFk3QVRVMEppTWlCaFVqTkRZek1oWVZFUlFXRnlVeU5qYzFJeUlHRlJRV0F5MEtDZ0k2ckdlcnJmamMwWHB4YVlHNTdyKzczd3dRL2Zsb3BTWFhnWlJkTTBJa1RHR3BtWjZzYm1OdlkwZDl3N2l5L2ZZNmFqYUxZRWJIZVZWTFZBQUFBZ0NSLyt3RUpRWVlBQklBSUFBQUFSUUNJeUltSndjakVUTVJGejRCTXpJU0VTTTBKaU1pQmdjUkhnRXpNalkxQkNYYnlXMmNOUktndWdNeWxtbkwyN21La1dGL0ppZC9ZcEdJQWZYdy91ZFNVcEFHR1AyZ0FVcE4vc2IrOXNEcVdrLytKVkJheHFrQUFBQUFBUUJoLyt3RDhnUk9BQnNBQUNVeU5qY3pEZ0VqSWdJOUFUUVNNeklXRnlNdUFTTWlCaDBCRkJZQ1EyZVhBYkFCLzYvdTlQVHV2KzhCc0FHT2NLR0hob0Y0WEpUVkFTL3RLdXdCTU55c2FJcmZweXFyM0FBQUFBSUFaUC9zQS9BR0dBQVNBQ0FBQUJNUUVqTXlGaGMzRVRNUkl5Y09BU01pQWpVekZCWXpNalkzRVM0Qkl5SUdGV1RhekdTU05BTzVvUkEybUduSjI3bUhrbDU2S1NoOFc1T0lBZ29CQ2dFNlNFWUJBbGY1NklkT1RRRWE3NnJGVWt3QjlraFM2c0FBQWdCaS8rd0Q2UVJPQUJVQUhRQUFCU0lBUFFFMEFETXlFaDBCSVI0Qk16STJOeGNPQVFNaUJnY2hOVFFtQWs3ay92Z0JENy9jM2YwekJKMlJaWk03U1R1NXBtbVJGQUlPZ0JRQkovUXQ3QUV1L3Y3Z2VhYk1PRE43T2tzRHpLbUhHbm1kQUFFQVFnQUFBczRHTFFBWEFBQXpFU00xTXpVME5qTXlGaGNITGdFaklnWWRBVE1WSXhIc3FxcXZveUpES3hjVE1oMWFWZWJtQTYyTmk2KzVDd3FSQlFab1pZdU4vRk1BQUFJQVp2NU1BL2NFVGdBZUFDd0FBQk1RRWpNeUZoYzNNeEVVQmlNaUppYzNIZ0V6TWpZOUFTY09BU01pQWpVekZCWXpNalkzRVM0Qkl5SUdGV2JleldxWU5oS2M4dVJVczAwdlFwVk1rNHdETkpSa3l0KzVpcE5lZXlrbmZGMlRqQUlLQVFvQk9sSlJqL3ZVMXV3c0tvb2hLWjJQYVFGR1JnRWE3Nm5HVTA0QjhFcFQ2NzhBQUFBQkFKRUFBQVA2QmhnQUZBQUFBUmMrQVRNeUZoVVJJeEUwSmlNaUJnY1JJeEV6QVVzRE42Sm5zYnU1ZEhkWGlDeTZ1Z09uQVZCWXpOMzlXd0tuallCU1NQem1CaGdBQUFBQ0FLRUFBQUZhQmhnQUF3QUhBQUFoSXhFekVTTTFNd0ZhdWJtNXVRUTZBUmpHQUFBQy83YitTd0ZuQmhnQUR3QVRBQUFCRVJRR0l5SW1KemNlQVRNeU5qVVJFeU0xTXdGbnA1c2dNaDBPRHpVUlJrK3p1YmtFT3Z0dHFySUpDWllGQ0ZwbkJKTUJITUlBQUFBQkFKSUFBQVFVQmhnQURBQUFBU01SSXhFekVUTUJNd2tCSXdITmdicTZmZ0U3Mi82R0FhN2JBZmIrQ2dZWS9IVUJyZjRUL2JNQUFBRUFvUUFBQVZvR0dBQURBQUFoSXhFekFWcTV1UVlZQUFFQWtBQUFCbklFVGdBa0FBQUJId0UrQVRNeUZoYytBVE15RmhVUkl4RTBKaU1PQVFjVkVTTVJOQ1lqSWdZSEVTTVJBVGNOQXpTaGNIR2FKelNuZGFtN3VtOXhiNEFMdW5Kd1lYY2d1Z1E2a0FGUFZtVnFZVzdjNlAxMkFvdWxoQUdTYndIOVR3S05uWXBRU3Z6bUJEb0FBQUFBQVFDUkFBQUQrQVJPQUJRQUFBRWZBVDRCTXpJV0ZSRWpFVFFtSXlJR0J4RWpFUUU0RFFNMW8ydXh2THB4ZVZ1Rktib0VPcUlCVjJESTIvMVZBcWVWZUZaTi9POEVPZ0FBQWdCZy8rd0VKd1JPQUEwQUd3QUFFelFBTXpJQUhRRVVBQ01pQURVekZCWXpNalk5QVRRbUl5SUdGV0FCQU9Ma0FRSC9BT1BrL3dDNmxKYVVscGVWbEpRQ0tQVUJNZjdQOVJqMi90SUJMdmF4M3Qrd0dLN2k0cTRBQUFBQ0FKSCtZQVFrQkU0QUVnQWdBQUFCRkFJaklpWW5CeEVqRVRNWFBnRXpNaElSSXpRbUl5SUdCeEVlQVRNeU5qVUVKTnZKWjVZMUE3cWZFamFhYTh6YnVwQ1RXM3NtS0hsZGtvOEI5ZkQrNTBOREFmM3ZCZHFLVGxEK3gvNzF2K3RRUnYzMlIwekxxUUFBQUFBQ0FHVCtZQVBtQkU0QUVnQWdBQUFURUJJek1oWVhOek1SSXhFbkRnRWpJZ0kxTXhRV016STJOeEV1QVNNaUJoVmsyc3hra3pZUG9Ma0ROSTVneWR1NWg1SllkaWtwZDFXVGlBSUtBUW9CT2tsSWZmb21BZ29CUUQ4Qkd1K3F5a3BHQWhwQ1MrM0JBQUVBa1FBQUFyRUVUZ0FRQUFBQkp5SUdCeEVqRVRNZkFUNEJNeklXRndLWWJGVnVIcnFtRWdNdGlGd1lMdzBEa3daT1NmeitCRHFkQVZSZUJ3UUFBQUFCQUdiLzdBUENCRTRBSlFBQUFUUW1KeTRCTlRRMk16SVdGU00wSmlNaUJoVVVGaGNlQVJVVUJpTWlKalV6SGdFek1qWURDV1NSeU1IYXRzRGN1WHBwYm1sYWtzL0Q0Ny9SNmJrR2xHZHdlUUVlUkZVZks1Q0JocmEva2tweFhVTkRTUjh0bElHU3JjMlRiVjVWQUFBQUFRQWQvK3dDVGdWQkFCY0FBQUVSTXhVakVSUVdNekkyTnhjT0FTTWlKalVSSXpVekVRRnkwTkEyTHhneEZSa2FYUzV4Z0p1YkJVSCsrWTM5YWxBL0J3YURFUldObmdLV2pRRUhBQUVBamYvc0EvWUVPZ0FVQUFBbEp3NEJJeUltTlJFekVSUVdNekkyTnhFekVTTURRd015bm0yMHdycG9jWENKSkxtbW5nRlhYTjMwQW4zOWdiS0RWMU1EQ3Z2R0FBQUFBQUVBTGdBQUE5OEVPZ0FKQUFBQkZ6TTNBVE1CSXdFekFmSVdBeGNCQUwzK2NJMytiTDBCT2wxZEF3RDd4Z1E2QUFFQU1BQUFCZGdFT2dBVkFBQUJId0UzRXpNVEZ6TTNFek1CSXdNbkl3Y0RJd0V6QWFBYkF5SGFsdG9qQXlLdnVQN0dsdFl2QXkzU2wvN0d1UUdHbGdHWEFyVDlUS1NrQXJUN3hnS2J3Y0g5WlFRNkFBRUFMZ0FBQTg4RU9nQUxBQUFCRXpNSkFTTUxBU01KQVRNQi9QRFkvcDhCYk5YNit0Z0JiZjZlMWdLbkFaUDk2ZjNkQVo3K1lnSWpBaGNBQUFFQUcvNUxBK1FFT2dBVkFBQUJGek1CTXdFT0FTTWlKaWMzSmhZek1qWS9BUUV6QWRrbUF3RVR6LzQyS1pTRUdFWVVFd05PQzBNK0xqSCthODhCaHBBRFJQc2ZiNThMQlpVQkJrdHJkUVFrQUFBQUFBRUFYZ0FBQTdnRU9nQUpBQUFsSVJVaE5RRWhOU0VWQVQ0Q2V2eW1BbEg5dHdNdWxaV0ZBeDZYZ1FBQUFRQkEvcEFDbmdZOUFCNEFBQUV1QVQwQk5DWWpOVEkyUFFFME5qY1hEZ0VkQVJRR0J4NEJIUUVVRmhjQ2VNU2dabTV1WnAvRkpuTmVVbGRYVWw1ei9wQTQ2NjdQYzN5UGVuVFFydXM0Y1NXemlOQnJuaTB1bm1yUGg3TWxBQUFBQVFDdi92SUJSQVd3QUFNQUFBRWpFVE1CUkpXVi92SUd2Z0FBQUFFQUUvNlFBbklHUFFBZUFBQVhQZ0U5QVRRMk55NEJQUUUwSmljM0hnRWRBUlFXTXhVaUJoMEJGQVlIRTNKZ1YxOWZWMTl5SnNTZ1pXOXZaYURFL2lXemg4OXVuQ3Nxbm0vUWlMTWxjVGpxcjlCMGVvOThjOCt1NnpnQUFRQ0NBWk1FN3dNaEFCa0FBQUVVQmlNaUppY3VBU01pQmhVbk5EWXpNaFlYSGdFek1qWTFCTytxZzF1T1dqeGhORVpmaDZlRldwSlhQR0ExUldFQzVJdkdRVXN5TUdwUEVvcTlSRWcxTFhKUkFBQUFBZ0NRL29vQlRRUTZBQU1BQndBQUFTTVJNeE1qTlRNQlM3bTVBcjI5L29vRDBnRVN6QUFBQUFFQWJ2OExBLzhGSmdBaEFBQWxNalkzTXc0QkJ4VWpOU1lDUFFFMEVqYzFNeFVlQVJjakxnRWpJZ1lkQVJRV0FsQm5sd0d3QWNxV3VycTh2THE2b01BQnNBR09jS0dIaG9GNFhJTElHT2pzSXdFZnp5ck5BUjhsNDk0WTBwaG9pdCtuS3F2Y0FBQUFBUUJHQUFBRVVRWEZBQ0VBQUFFWEZBWUhJUWNoTlRNK0FUVW5JelV6QXpRMk16SVdGU00wSmlNaUJoVVRJUlVCcVFZaElBTGpBZncyQ2pReUJxcWtDdHUreXRXNmZXaHBkZ29CcHdKcW1GMmpQWldWRGNWcm1KVUJFZERsejdSOGNaU0wvdStWQUFBQ0FHbi81UVZiQlBFQUl3QXZBQUFsRGdFaklpWW5CeWMzTGdFMU5EWTNKemNYUGdFek1oWVhOeGNISGdFVkZBWUhGd2NCRkJJek1oSTFOQUlqSWdJRVQwKzVhR20zVG9hQ2pEUTFPVGlVZ3BOTXNXUmtzVTZWaEpnMk9UVXhqNFQ4WVBTMHN2VDBzclQwY0VGRFFrQ0loWTVPczJacHVWR1hocFk3UFQ0N21JZWJVTGRvWkxKT2tZWUNlOFArK0FFSXc4RUJCLzc1QUFFQUlBQUFCS3NGc0FBV0FBQUpBVE1CSVJVaEZTRVZJUkVqRVNFMUlUVWhOU0VCTXdKbUFYSFUvbG9CUC81N0FZWCtlN24rZ3dGOS9vTUJQdjVaMVFNTkFxUDlMM2lyZHY2NkFVWjJxM2dDMFFBQUFBSUFrLzd5QVUwRnNBQURBQWNBQUJNUk14a0JJeEV6azdxNnV2N3lBeGI4NmdQSUF2WUFBQUFDQUZyK0VRUjRCY1VBTVFCREFBQUJGQVlISGdFVkZBUWpJaVExTnhRV016STJOVFFtSnk0Qk5UUTJOeTRCTlRRa016SUVGU00wSmlNaUJoVVVGaGNlQVNVdUFTY09BUlVVRmhjZUFSYytBVFUwSmdSNFlGdEpSdjc4NU9IKzE3ckRqWStmamRMMTNsNWFSMFFCQnVQc0FRQzVvWktabG9QYStkdjk0alJPSWxCTWg5c3hUQ05QVkpJQnIyQ0pLVFNGWmE3QXkrUUNsWVozWDE5alFFR3p0RjJMS2pPSFpLakczZEo3bm5kZloyRThSYTlVRFJnT0UyTkphR1U5RGhnTUZHTklYbW9BQUFJQXFRVHNBMUlGc0FBREFBY0FBQUVqTlRNRkl6VXpBMUxUMC80cjFOUUU3TVRFeEFBQUFBQURBRnYvNndYbUJjUUFHd0FuQURNQUFBRVVCaU1pSmowQk5EWXpNaFlWSXpRbUl5SUdIUUVVRmpNeU5qVWxFQUF6TWdBUkVBQWpJZ0FERUFBaElBQVJFQUFoSUFBRVg2MmVvcmk0b3A2dWtsdGZZMmRuWTE5YS9RRUJWdjM3QVZmK3FmdjkvcXB6QVpnQkxnRXNBWm4rWi83VS90TCthQUpVbnB6UnNuZXcwNTJjWTFlTmRuaDVqRlptaGY3dy9wY0JhUUVRQVE0QlovNlovdklCUVFHcS9sYit2LzYrL2xRQnF3QUFBZ0I2QXJRRER3WEZBQjhBS2dBQUFTNEJKdzRCSXlJbU5UUTJPd0UxTkNZaklnWVZKelEyTXpJV0ZSRVVGaGNsTWpZM05TTWlCaFVVRmdKcUNBb0RJbkJRZVlDa281RTlQMGhNb2FlT2g1Z01EdjZMTjI0VGtFOVdQQUxDRlRBYU1UeDRiRzkyTlVORk56VU9hSUdNaVA3R00xY3JlVHNtY2tJd01ERUFBUC8vQUdZQWR3TmtBNUVBSmdGeSt0MEFCd0Z5QVVULzNRQUJBSDhCZUFPK0F4OEFCUUFBQVNNUklUVWhBNzY2L1hzRFB3RjRBUWlmQUFRQVd2L3JCZVVGeEFBTEFCY0FNZ0E3QUFBVEVBQWhJQUFSRUFBaElBQVRFQUF6TWdBUkVBQWpJZ0FCRVNNUklUSVdGUlFHQng0QkhRRVVGaGNWSXk0QlBRRTBKaU1uTXo0Qk5UUW1Ld0ZhQVpnQkxnRXNBWm4rWi83VS90TCthSE1CVnYzOEFWYitxdno5L3FvQndJMEJGSnFvUWtCRE9nY0trUW9FUTFDam5FVmJUbWVIQXRrQlFRR3EvbGIrdi82Ky9sUUJxd0ZEL3ZEK2x3RnBBUkFCRGdGbi9wbitxZjZzQTFLQWdEOWRJQnRvVERncVFCVVFGazhyTmt0RGZnRS9PMHc3QUFBQUFRQjRCU01EUWdXd0FBTUFBQUVoTlNFRFF2MDJBc29GSTQwQUFBSUFnZ1BCQW53RnhRQUxBQmNBQUJNME5qTXlGaFVVQmlNaUpqY1VGak15TmpVMEppTWlCb0tVYTJtU2ttbHJsSDFLT0RkSlNUYzNTd1RCYkppWWJHMlRrMjA1U1VnNk9rdE1BQUFDQUdFQUNRUDFCUE1BQ3dBUEFBQUJJUlVoRVNNUklUVWhFVE1CSVRVaEFvb0JhLzZWcC81K0FZS25BVXo4dlFOREExYVcvbUVCbjVZQm5mc1dsUUFBQVFCeEFwc0N4Z1hIQUJnQUFBRWhOUUUrQVRVMEppTWlCaFVqTkRZek1oWVZGQVlQQVNFQ3h2MjBBUzlJTERvL1NFcWhwSStJbEZkMXFBRjZBcHQrQVFnK1NpdzBQMEUxYVl4OWRsQnRiSklBQUFBQUFRQnBBbzhDNEFYR0FDZ0FBQUV5TmpVMEppTWlCaFVqTkRZek1oWVZGQVlISGdFVkZBWWpJaVkxTXhRV016STJOVFFtS3dFMUFhZElRVWxLTzBxaXA0Q1NvMFUvU0Vxd2s0QzBvMDFFVFZSS1RZTUViem8yTGpveUttVjJkWEE0V2hvWVhVWnhlblIxTVRvN00wRTVlZ0FBQUFBQkFJRUV2QUllQmNZQUF3QUFBVE1CSXdFOTRmN3dqUVhHL3ZZQUFRQ2EvbUFEN2dRNkFCWUFBQUVSRkJZek1qWTNFVE1SSXk4QkRnRWpJaVluRVNNUkFWTnhhMnA3SUxxbUNnTXJnVmhNYmlxNUJEcjlrY09JVFV3RElmdkdiZ0ZCUXlJby9pc0YyZ0FBQUFBQkFFSUFBQU0vQmJBQUNnQUFJUkVqSWlZMU5CSXpJUkVDaFZmdS92L3RBUkVDQ1AvVjB3RUIrbEFBQUFFQW9nSndBV0VEUVFBREFBQUJJelV6QVdHL3Z3SncwUUFBQUFBQkFIVCtUUUdxQUFBQUR3QUFJUWNlQVJVVUJpTW5NalkxTkNZbk53RWRERU5XbTVRSFNseElXaUExQzFCU1lYQnFNVE15SmdlR0FBRUFYZ0taQVlRRnhRQUZBQUFCSXhFSE5TVUJoS1NDQVNZQ21RS1VBWUlYQUFBQUFBSUFlZ0t6QXljRnhRQU5BQnNBQUJNME5qTXlGaDBCRkFZaklpWTFNeFFXTXpJMlBRRTBKaU1pQmhWNnQ1K2d0N2Fmb0xpaldsdFlXbHRaV1ZvRWRwYTV1SmQxbUxhM2wxdHJhMXQxV0d4c1dBQUEvLzhBYndDWkEzZ0R0QUFtQVhNV0FBQUhBWE1CYWdBQS8vOEF0QUFBQmR3RnhBQW5BY2tBVmdLWUFDY0JkQUVWQUFnQUJ3R1hBcmdBQUFBQS8vOEF0QUFBQmU0RnhBQW5BWFFCSWdBSUFDY0J5UUJXQXBnQUJ3SEtBeWdBQUFBQS8vOEFld0FBQnAwRnh3QW5BWFFCMFFBSUFDY0Jsd041QUFBQUJ3SExBQklDbXdBQUFBSUFjZjUyQTZZRU93QVpBQjBBQUFFT0FRY09BUlVVRmpNeU5qY3pEZ0VqSWlZMU5EWTNQZ0UxQXpNVkl3SjZBaTFtWjFOeGIyQ0JBYmtENDdYSDA0aDVOeGNJeE1RQ29aUnBYWGQ5WEc5eVpXU3B3TVczZ3RCMU5WUmZBWnJNQUFMLzhnQUFCMWNGc0FBUEFCTUFBQ2tCQXlFREl3RWhGU0VUSVJVaEV5RUJJUU1qQjFmOGpRLzl6TTNpQTNBRHQvMU5GQUpPL2JnWEFzRDZyUUhLSHdNQll2NmVCYkNXL2lhVi9lb0JlUUxjQUFBQUFBRUFXUURpQTkwRWRnQUxBQUFUQ1FFM0NRRVhDUUVIQ1FGWkFVcit1SGNCU1FGSmQvNjNBVXQzL3JYK3RRRmNBVkVCVDNyK3NRRlBldjZ4L3E5NkFWSCtyd0FBQXdCei82TUUvZ1hzQUJrQUpBQXZBQUFCRUFBaElpWW5CeU0zTGdFMUVSQUFJVElXRnpjekJ4NEJGUUVVRmhjQkxnRWpJZ0lWSVRRbUp3RWVBVE15RWpVRS92NjcvdlpXbFVKZGo0eFdXUUU2QVFKaXAwbFVqNFpPVXZ3dUtTb0NMRFI5UzdUUEF4a2tJdjNYTG10QXZka0NWLzcwL3FBcUtwenFWK2lMQVFFQkN3RmlOVEtPNEZmY2dmNy9XSmc5QTZVc0x2NzZ5VTJKTy94aEl5TUJCY3dBQUFBQ0FLWUFBQVJkQmJBQURBQVZBQUFCRVNFeUZoVVVCaU1oRVNNUkV4RWhNalkxTkNZakFXQUJGZXIrL3VyKzY3cTZBUldabFpXWkJiRCsydWpBd2VmK3hnV3cva1g5MnB4MWRwOEFBUUNMLyt3RWFnWVBBQ2NBQUNFakVUUTJNeklXRlJRR0ZSUUFGUlFHSXlJbUp6Y2VBVE15TmpVMEFEVTBOalUwSmlNaUJoVUJSTG5pdXFIRWdBRmV6N0pUc1NncktvTkFjbXIrb29wblJXNS9CRHJoOUtpb2Q5ZzhWUDdvanFtbEt4MlpIUzllVWxjQkdwUlQyVTVmYTZTY0FBQURBRDMvNndaOEJFNEFMQUEzQUQ4QUFBVWlKaWNPQVNNaUpqVTBOanNCTlRRbUl5SUdGU2MwTmpNeUZoYytBVE15RmgwQklSNEJNekkyTnhjT0FTVXlOamMxSXlJR0ZSUVdBU0lHQnlFMU5DWUU3b3ZLUXpuYW82MjI0ZC9xYVdkdmZiaml3bldzTWtHdWFkamkvUzRFbmFOcWhreEFPYlg4U0ZDbkxPaUFpV2NEWlhlTkVBSVZleFZoWFZKc3E1bWlxbFZ3ZUc1U0VwQzBVbEpRVlAvbmRhckpPRE9GTDB5VldEcmZjVlZPWFFNNHE0MGZmcHNBQWdCTS8rc0VMUVh0QUNBQU1BQUFBUllTSFFFVUFDTWlBRFUwQURNeUZoYzNMZ0VuQlNjM0xnRW5OeDRCRnpjWEF6UW1OUzRCSXlJR0ZSUVdNekkyTlFOVGFuRCs1OXJkL3U4QkR0cFhsemtERjFZKy91dEoraVpQS3psTWhqM3NTYmdCSktCN2pLT25rb3lxQlFkOC9ydk9ZZnIremdFVDArb0JGa0EzQVdxbVFaNWpqeGduRUo0WFJUR0hZL3oyQ0NJSlBWSFBtNGpKNDdRQUF3QkhBTGNFTFFTdkFBTUFCd0FMQUFBQklUVWhKU00xTXhFak5UTUVMZndhQStiK2JiMjl2YjBDV3JUYXgvd0l4d0FBQUFNQVlQOTVCQ2NFdVFBWkFDUUFMd0FBRXpRQU16SVdGemN6Qng0QkhRRVVBQ01pSmljSEl6Y3VBVFV6RkJZWEFTNEJJeUlHRlNFMEppY0JIZ0V6TWpZMVlBRUE0anBtTUVwN2FGcGUvd0RqTlZzclNYdGtaR1c2TEM4QlZ4OUVKNVNVQWxRbkovNnVHamtqbEpZQ0tQVUJNUmNWbDlKTDVKQVk5djdTRVJHVnkwbnFtV0NiTndLM0VSTGlybGFST1AxU0RRdmZzQUFBQWdDYS9tQUVMUVlZQUJNQUlRQUFBUlFDSXlJbUp3Y1JJeEV6RVJjK0FUTXlFaEVqTkNZaklnWUhFUjRCTXpJMk5RUXQyOGxubGpVRHVya0ROSlptek51NmtKTmJlaWNvZVYyU2p3SDE4UDduUTBNQi9lOEh1UDJvQVVaSi9zZis5Yi9yVUViOTlrZE15NmtBQWdBZUFBQUZpUVd3QUJNQUZ3QUFBVE1WSXhFakVTRVJJeEVqTlRNUk14RWhFVE1CSVRVaEJQZVNrcm45SzdtU2tya0MxYm44Y2dMVi9Tc0VqWTM4QUFLRy9Yb0VBSTBCSS83ZEFTUDlhK1VBQUFBQUFRQ2JBQUFCVlFRNkFBTUFBQ0VqRVRNQlZicTZCRG9BQVFDYUFBQUVQd1E2QUF3QUFBRWpFU01STXhFekFUTUpBU01Cdm1xNnVsc0JqZC8rTndIdDZRSFAvakVFT3Y0MUFjdjkrUDNPQUFBQkFDWUFBQVFWQmJBQURRQUFBU1VWQlJFaEZTRVJCelUzRVRNQlh3RVUvdXdDdHZ5UmdJQzVBMGRZbjFqOTdaVUNiU2lmS0FLa0FBRUFJd0FBQWdzR0dBQUxBQUFCTnhVSEVTTVJCelUzRVRNQmNacWF1WldWdVFObk82QTcvVGtDZ0RtZ09RTDRBQUVBcFA1TEJPMEZzQUFZQUFBQkVSUUdJeUltSnpjZUFUTXlOajBCQVNNUkl4RXpBVE1SQk8yb215QXpIUTRPUWhKQ1NQMHRBN3E2QXRNREJiRDU5NnF5Q1FtUkJRaG5YMWtFYi91UkJiRDdrUVJ2QUFFQWtmNUxBL0FFVGdBZ0FBQUJId0UrQVRNeUZoVVJGQVlqSWlZbk54NEJNekkyTlJFMEppTWlCZ2NSSXhFQk53MEROWjVwc2J5bm15QTFIZzRPUXhSQ1IzTjVYSDBudWdRNmxRRlJXY25jL1A2cXNna0ptZ1VIWDEwQy9wWjVSa0g4MHdRNkFBQUFBZ0JwLytzSE9BWEZBQmNBSlFBQUtRRU9BU01pQUJrQkVBQXpNaFlYSVJVaEVTRVZJUkVoQlRJMk54RXVBU01pQmhVUkZCWUhPUHlDWG9GRi9mN1FBUzc5UjQ1UkEzVDlCQUtnL1dBREJ2dGVPSEU2T25FNnNjSERDZ3NCUmdFUEFUQUJEZ0ZIREFtVy9pS1cvZThWQ0FrRWpRZ0s0OXYrenR6a0FBTUFZZi9yQndBRVRnQWhBQzhBTndBQUV6UVNNeklXRno0Qk16SVNIUUVoSGdFek1qWTNGdzRCSXlJbUp3NEJJeUlBTlRNVUZqTXlOajBCTkNZaklnWVZBU0lHQnlFMU5DWmgvK09IeUVCQ3duSGMzZjB5QkoyUVo1VTRTank2aUlmTVFFSEZoZVQvQUxtVmxwU1ZscFdWbEFRdGFwRVVBZzZBQWlqMUFURnhhR2R5L3YzZmVhYk5PVE43TzB0dFoyZHRBUy8yc2QvZnNSaXY0ZUt1QVpDcGh4cDVuUUFBQUFFQW9BQUFBb0lHTFFBUEFBQXpFVFEyTXpJV0Z3Y3VBU01pQmhVUm9MQ2pJa01xRnhVc0dsdGNCTVd3dUFzS2pBVUdiV1g3T3dBQUFmL2sva3NDdkFZdEFDTUFBQUVqRVJRR0l5SW1KemNlQVRNeU5qVVJJelV6TlRRMk16SVdGd2N1QVNNaUJoMEJNd0pneTZlYklETWNEZzVBRTBGSHE2dXZveUpES2hZVU1oeGFWY3NEcmZ2NnFySUpDWkVGQ0dkZkJBYU5pNis1Q3dxUkJRWm9aWXNBQUFBQUFnQngvK3NGblFZMkFCY0FKUUFBQVJBQUlTQUFHUUVRQUNFeUZoYytBVFV6RkFZSEhnRVZKelFDSXlJQ0ZSRVVFak15RWpVRS9QNjcvdmIrL3Y3R0FUb0JBbnJLVUdGVXAzMkFMUys1MnJ5MHo4KzB2ZGtDVi83MC9xQUJZQUVNQVFFQkN3RmlVVXdLaG42and5Qk1yR0FDeVFFRy92ckovdjNML3ZvQkJjd0FBQUFBQWdCZy8rd0V1Z1N3QUJjQUpRQUFFelFBTXpJV0Z6NEJOVE1VQmdjZUFSMEJGQUFqSWdBMU14UVdNekkyUFFFMEppTWlCaFZnQVFEaWE2aEJWemlWWkhVakkvOEE0K1QvQUxxVWxwU1dsNVdVbEFJbzlRRXhSMFFJY25PVXFScENtRmNZOXY3U0FTNzJzZDdmc0JpdTR1S3VBQUFCQUpiLzZ3WW1CZzBBR1FBQUFSVStBVFV6RkFZSEVSUUVJeUlrTlJFekVSUVdNekkyTlJFRTExNUtwNSt3L3RMNzlQN2N1cjJocWNjRnNNMFdrSVRHMXhiOWUvTDQrUElEMi93bHE2cXFxd1BiQUFBQkFJMy83QVVRQkpFQUhBQUFBUlFHQnhFakx3RU9BU01pSmpVUk14RVVGak15TmpjUk14VStBVFVGRUhxZ3BnMERNcDV0dE1LNmFIRndpU1M1WURVRWthV2JDZnk0bmdGWFhOMzBBbjM5Z2JLRFYxTURDb29KWW5ZQUFBSC90UDVMQVdVRU9nQVBBQUFCRVJRR0l5SW1KemNlQVRNeU5qVVJBV1dubXg4eUhnNE9RQk5CU0FRNisyMnFzZ2tKa1FVSWFGNEVrd0FBQUFJQVl2L3NBK2tFVHdBVkFCMEFBQUV5QUIwQkZBQW5JZ0k5QVNFdUFTTWlCZ2NuUGdFVE1qWTNJUlVVRmdILzRnRUkvdkcvM2R3Q3pRV2RqbW1VT0VrN3VxVnBrQlg5ODM4RVQvN1g4eTN0L3RNQkFRSGdlYVhPT2pOOE9rejhNNmVJR1hxY0FBQUFBUUNwQk9RREJnWHBBQWdBQUFFVkl5Y0hJelUzTXdNR21aYVZtZlIwQlB3WWxwWVo3QUFBQUFFQWpBVGtBdmNGNlFBSUFBQUJOek1WQnlNbk5UTUJ3SldpL25QNm5nVlRsaEx6OFJRQUFBQUJBSUVFcFFMWUJiQUFEUUFBQVJRR0l5SW1OVE1VRmpNeU5qVUMyS0NMaktDWFJrOU5TQVd3ZXBHUmVrUlNVME1BQUFBQUFRQ2dCT29CYndXd0FBTUFBQUVqTlRNQmI4L1BCT3JHQUFBQUFBSUFpd1JmQWh3RjRBQUxBQmNBQUJNME5qTXlGaFVVQmlNaUpqY1VGak15TmpVMEppTWlCb3QwVmxSemNsVlhjMk04S3lzNU9Tc3JQQVVlVkc1dVZGWnBhVllzT3pvdExUdzhBQUFCQURMK1VBR1NBRGNBRXdBQUlRNEJGUlFXTXpJMk54Y09BU01pSmpVME5qY0JmbE5ZSXlzZEx4Z05JRW8yVjJtQWh6MWxQQ1FtRUF4NEV4bGlXMWFZUEFBQUFBRUFnZ1RpQXpRRjhRQVRBQUFCRkFZaklpWWpJZ1lWSnpRMk16SVdNekkyTlFNMGRGdEpselVzT21oeVhEdWtOaXM4QmRKZmYxOUJNQnBlaFdCQk1RQUNBR2dFNUFOSUJlNEFBd0FIQUFBQk13RWpBek1ESXdKbjRmN09xVWZPOXBZRjd2NzJBUXIrOWdBQUFBSUF0djZIQWVuL3F3QUxBQmNBQUJjME5qTXlGaFVVQmlNaUpqY1VGak15TmpVMEppTWlCclpaUTBCWFYwQkRXVmNuSGhzbUpoc2VKK2xCVTFOQlFGQlFRQnNsSkJ3ZUppWUFBQUFCL05vRXV2NEhCaE1BQXdBQUFTTURNLzRIZmJDeEJMb0JXUUFBQWYxM0JMditwQVlVQUFNQUFBRXpBeVA5OTYyNWRBWVUvcWNBLy8vOGt3VGkvMFVGOFFBSEFLRDhFUUFBQUFBQUFmMWVCTm4rbEFaekFBOEFBQUVuUGdFMU5DWWpOeklXRlJRR0R3SDlkQUZRUVZwTUI1U2JWa1VCQk5tWEJSOG5LU1pwWkZkSVNBbEdBQUFBQXZ3bkJPVC9Cd1h1QUFNQUJ3QUFBU01CTXdFakF6UCtBcW4renVFQi81YjJ6Z1RrQVFyKzlnRUtBQUFCL1VQK3NmNFMvM1lBQXdBQUFTTTFNLzRTejgvK3NjVUFBQUFBQVFEREJQZ0J5Z1o0QUFNQUFBRXpBeU1CQXNpdFdnWjQvb0FBQUFNQW9RVHRBMXdHaUFBREFBY0FDd0FBQVNNMU13VWpOVE0zTXdNakExekF3UDRHd2NGLzAzNkZCTzNEdzhQWS92Z0FBUC8vQUtJQ2NBRmhBMEVBQmdCMkFBQUFBUUMxQUFBRU1BV3dBQVVBQUFFaEVTTVJJUVF3L1Q2NUEzc0ZHdnJtQmJBQUFBQUFBZ0FnQUFBRmJRV3dBQU1BQmdBQUFUTUJJVGNoQVFLSm9RSkQrclA3QTF2K1lRV3crbENWQkRjQUFBQURBSFAvNndUK0JjVUFBd0FSQUI4QUFBRWhOU0VGRUFBaElBQVpBUkFBSVNBQUVTYzBBaU1pQWhVUkZCSXpNaEkxQThEOS9BSUVBVDcrdS83Mi92Nyt4Z0U2QVFJQkNnRkZ1ZHE4dE0vUHRMM1pBcFNXMC83MC9xQUJZQUVNQVFFQkN3RmkvcDcrOVFMSkFRYisrc24rL2N2KytnRUZ6QUFCQURRQUFBVUNCYkFBQndBQUFTTUJJd0V6QVNNQ25RVCtXYjRDRnFJQ0ZyNEVxUHRZQmJENlVBQUFBQU1BZWdBQUJDQUZzQUFEQUFjQUN3QUFOeUVWSVJNaEZTRURJUlVoZWdPbS9GcFZBdlA5RFZNRGx2eHFsWlVEUEpZRENwWUFBQUFBQVFDMkFBQUUvd1d3QUFjQUFDRWpFU0VSSXhFaEJQKzUvU201QkVrRkd2cm1CYkFBQVFCRkFBQUVSQVd3QUF3QUFBa0JJUlVoTlFrQk5TRVZJUUVDN3Y0NkF4ejhBUUhsL2hzRHpmMFhBY1VDenYzSWxvNENUUUpIanBiOXpRQUFBd0JPQUFBRmJBV3dBQlVBSGdBbkFBQUJNeklBRlJRQUt3RVZJelVqSWdBMU5BQTdBVFV6QXlJR0ZSUVdPd0VSTXhFek1qWTFOQ1lqQXpvRjlBRTUvc2J6QmJvSDlQN0pBVGYwQjdyQnRMKyt0UWU2QjdMQXdMSUU5djdUOVBYKzBiR3hBUzMxOUFFdnV2NngxTHE3MGdNYi9PWFV1N25UQUFBQUFBRUFYUUFBQlJnRnNBQVhBQUFCUGdFMUVUTVJGQUFIRVNNUkpnQTFFVE1SRkJZWEVUTURENTJ6dWY3bjhMcnAvdkc0cXBhNkFnRVgxTElDRXYzdSt2N2RGLzZXQVdvWUFTTDZBaEw5N3JIVEdRT3ZBQUVBY2dBQUJNMEZ4UUFqQUFBbE5oSVJOVFFtSXlJR0hRRVFFaGNWSVRVekpnSTlBUkFBTXpJQUVSVVVBZ2N6RlNFQzRaQ2Z3N0N4d2FPVC9oWHdjNEVCTHYzOEFUR0JjdmIrRkpzYkFSd0JBWGJ1K1BqdWR2Ny8vdU1hbTVWakFTK3NkQUVoQVYzK28vN2ZkS3orMFdPVkFBQUFBZ0JrLytzRWR3Uk9BQndBS2dBQUFSRVVGak15TmpjWERnRWpJaVluRGdFaklnSTlBUkFTTXpJV0Z6Y0JGQll6TWpZM0VTNEJJeUlHRlFQdUtpWUpFZ2NYSFRra1Nsc1VOcHBzeWR2YXpHaVlOaEg5ekllU1hYa3BLWGxiazRnRU92enNWMEVEQTRnVERreFlVbElCRys4VkFRb0JPbEZQalAyN3FzdGdXZ0hCV21QdHdRQUFBQUlBb1A1L0JFMEZ4QUFVQUNvQUFBRXlGaFVVQmdjZUFSVVVCaU1pSmljUkl4RTBKQk15TmpVMEppTWlCaFVSSGdFek1qWTFOQ1lyQVRVQ1hjWG5ZbGw3aFBqT1Zwczh1Z0VEdG9GMmYzUnhraTJRWFltWGlIaVBCY1RYc1YyWEx5ekNoTlRuTGpIK05BV3hxdXI5bEhwdVlveVBiL3pFTnp5ZGhYV3JsUUFBQVFBdS9tQUQzd1E2QUFzQUFBRXpBUkVqRVFFekFSY3pOd01pdmY2RnV2NkV2UUVIRmdNWEJEcjcvLzRuQWVBRCt2MEFYVjBBQUFBQ0FHRC83QVFuQmh3QUlRQXZBQUFUTkRZek1oWVhCeTRCSXlJR0ZSUVdGeFlTSFFFVUFDTWlBRDBCTkRZL0FTNEJFeFFXTXpJMlBRRTBKaWNpQmhYZHhyUk5tMUFwUFl4S1dHTmloZGpRL3dEaTVmOEF1NHdFWldrK2xKYVRsYU9EbFpjRTlvcWNMU2lBR0NOSVFETmRMRXYrN3M0WDdmN2RBU1B0RjdENElnc25pLzFpcU5UVXFCZUgzQnJYcGdBQkFHUC83UVBzQkV3QUtRQUFBU0lHRlJRV016STJOVE1VQkNNaUpqVTBOamMxTGdFMU5EWXpNaFlWSXpRbUl5SUdGUlFXT3dFVkFodUJmSXg5ZUpTNS92YTd6ZmRsWkZkZjVNMjYrYm1QYTN4N2NIdk5BZUJWVzAxa2NGQ3BxYW1hWG4wZ0F5TjNTNW1nclpKS1ltQkdUVmFRQUFFQWJmNkJBOE1Gc0FBZ0FBQUJGUUVPQVJVVUZoOEJIZ0VWRGdFSEp6NEJOVFFtTHdFdUFUVTBFamNCSVRVRHcvNmlnbTVIV1lHWGJBSnZRR0l6TDBkU1dyS0hoWklCR2YyQkJiQjIvbEthNEpGa1lSTW1MRU50U3FnMFV6cFJMQ1F5Rmhjdm42QjZBVGlzQVVDV0FBQUJBSkgrWVFQd0JFNEFGQUFBQVI4QlBnRXpNaFlWRVNNUk5DWWpJZ1lIRVNNUkFUY05BeldlYWJTNXVYUjRYSDBudWdRNmxRRlJXY0RsKzdnRVJKZDhTRUw4MGdRNkFBQURBSHIvNndRVUJjVUFEUUFXQUI4QUFBRVFBaU1pQWhrQkVCSXpNaElSQlNFMU5DWWpJZ1lWQVNFVkZCWXpNalkxQkJUeDI5cjA4dHJiOC8wZkFpaUxpb21LQWlqOTJJeUppb2tDTFA3ai90d0JKUUVjQVZjQkhBRW0vdHIrNUdPTHhNREF4UDdnaGNUQ3dNWUFBQUFBQVFERC8rc0Nhd1E1QUE4QUFBRVJGQll6TWpZM0Z3NEJJeUltTlJFQmZEY3lHUzRXS1MxVU5IdDRCRG44MUU4NURReUFIaFdMb1FNaUFBQUFBUUFsLy9BRU93WHVBQ0VBQURNakFTY3VBU01pQmlNblBnRXpNaFlYQVI0Qk16b0JOeGNPQVNNaUppY0RJd2Z6emdHS1lCZzBMUW9jQ1FFUlJocGxYaDBCc3hRdEpBMFNCd1lPS2haaVppL3ZBeUFFQmVzNkxnS01CQWhRV1B1b05Tc0NsQVFJVDM4Q1ozd0FBUUJsL25jRHFRWERBREVBQUFFdUFTTWlCaFVVRmpzQkZTTWlCaFVVRmg4QkhnRVZEZ0VISno0Qk5UUW1Md0V1QVRVME5qOEJMZ0UxTkNRek1oWVhBM0kvYXplYWw1cXJqWTNDeEo1OWE1QjBBVzlBWWprb1JWWTM1TjJobFFGMmdBRUQ1MFNJTVFVS0VSTnJVbXB5bHAybWdKVWNGeUpMYlVta05sTkNRVFlyS3hJTk5NRFVsc1l1QXltV1lhU3lGaEVBQUFFQVQvL3JCTTRFT2dBWEFBQUJJeEVVRmpNeU5qY1hEZ0VqSWlZMUVTRVJJeEVqTlNFRVhYNDNNaGt1RmlrdFZEUjdlUDVsdW9JRURnT2svV2xQT1EwTWdCNFZpNkVDamZ4Y0E2U1dBQUFBQWdDUi9tQUVId1JPQUJFQUh3QUFBUlFDSXlJbUp4RWpFVE1uTkJJek1oSVJJelFtSXlJR0ZSRWVBVE15TmpVRUg5ZklacGM0dWdFQis4VGw2cm1Ga1lPQ0tIbGRrWXdCOWZEKzV6MC8vZmdENGdMN0FRLyt5Zjd6d3V6bGtmN1NSMHpMcVFBQUFBQUJBR1graWdQaEJFNEFJUUFBQVRJV0ZTTTBKaU1pQmgwQkZCWVhIZ0VWRGdFSEp6NEJOVFFtSnk0QlBRRTBFZ0k5dnVhdmZuZVFqNjYxbTNvQ2JqOWlPQ2hEV2ZUdytnUk96cnBzaHVXaEtvMjNNQ3RPYmtpbk5GTkJRVFl0S2hRMC90WXE2QUUwQUFJQVlQL3NCSGtFT2dBUkFDQUFBQUVoQng0QkhRRVVBQ01pQUQwQk5BQXpJUUVVRmpNeU5qMEJOQ1lyQVE0QkZRUjUvdXNCWDJYKy9OL2svd0FCQU9JQ04veWhsSmFVbHBlVkFaU1RBNk1EU05DRkY5aisyQUV1OWhqc0FTYjkxckhlMzdBWXBkWUIxYVVBQUFFQVVmL3JBOWtFT2dBVEFBQUJJUkVVRmpNeU5qY1hEZ0VqSWlZMUVTRTFJUVBaL28wM01oa3VGaWt0VkRSN2VQNmtBNGdEcHYxblR6a05ESUFlRll1aEFvK1VBQUFBQUFFQWovL3JBL1lFT2dBVkFBQUJFUlFXTXpJU05TNEJKek1lQVJVVUFpTWlKalVSQVVscVg0MmVBMEE0d3pNKzhPdkJ5d1E2L1crZGpBRURyb0g4akc3OW52Myt0OWZwQW84QUFBQUNBRmYrSWdWTUJEb0FHUUFqQUFBRkpBSTFOQkkzRnc0QkJ4UVdGeEUwTmpNeUFCVVVBQVVSSXhNK0FUVXVBU01pQmhVQ2JQN3AvbitCWlZkUUJLUzNpSFBNQVJuKzkvN2l1Ym05c1FTY2pDQWlFUmtCTy9Dc0FRTllnMHZJY2FMd0d3TFNhSHIreitubi9zMFgvak1DWkJubm1xSGlLUndBQUFBQUFRQmYvaWtGUXdRNkFCc0FBQUVSUGdFMUxnRW5NeDRCRlJRQUJSRWpFU1lBR1FFekVSUVdGeEVESEwrdkEwSTZ3alZCL3Z2KzNybjgvdmk2clowRU9meE5Hdk9sZ1BtSmJmbWM5djdDRnY0N0FjY1pBU2dCSXdIbS9oaloyaGdEc2dBQUFBRUFldi9yQmhrRU9nQXBBQUFCRGdFSEZCWXpNalkxRVRNUkZCWXpNalkxTGdFbk14NEJGUkFDSXlJbUp5TU9BU01pQWhFME5qY0J4RU5MQTJoMFozYTdkV2h6YVFSTFFzTTlTcnpQZWFJb0F5bWllTkM3U1Q0RU9vbi9nOEx0b2JZQksvN1Z0cUhzdzRQL2lXLzluLzcrL3I1MWRYVjFBVUlCQXAvL2JRQUFBZ0IwLytzRXFRWEZBQmtBSkFBQUpUSTJOeVlrUFFFME5qTXlGaFVSRUFBaklnQVpBVGNSRkJZVEZCWVhFVFFtSXlJR0ZRS0ZyTDRCM3Y3NnVKZWVzUDdYKy9EKzM3cTI0cHVQU2t0R1Q0YnIyQW4yeEQ2d3k4ZTAvZ0wrNWY2NkFWUUJEUUtZQXYxbXpma0RoSDJoQ0FGbWNXNXVjUUFBQWYvbkFBQUVXUVc3QUNNQUFBRStBVE15RmhjSExnRWpJZ1lIQVJFakVRRXVBU01pQmdjblBnRXpNaFlYRXhjek53THNOSGhUSWpJYUZ3WVhEeVE1RlA3WHVQN1dGVGtqRUJZRkZ4Z3hJMU4zTnJRWEF4Y0UxMzlsQ2c2U0F3VWtMZjE4L2J3Q1JBS0VMU1FGQTVJT0NtVi8vbWhVVkFBQUFnQksvK3NHR3dRNkFCY0FMUUFBQVNNZUFSVVFBaU1pSmljakRnRWpJZ0lSTkRZM0l6VWhBUzRCSnlFT0FRY1VGak15TmowQk14VVVGak15TmdZYmlSOGlyTHQ1b2ljRUtLRjR2S3NoSUhVRjBmNytBeWdrL0x3bEtBSllZR2QxdTNScFhsZ0RvMVcxYXY3Ky9yNTJkWFYyQVVJQkFtcTFWWmY5OVYyM1lHSzJYTUx0b2JiOC9MYWg3QUFCQUN2LzlRV3dCYkFBR3dBQUFTRVJQZ0V6TWdRVkZBWWpKekkyTlM0Qkl5SUdCeEVqRVNFMUlRU1YvZk5TbVRuNEFRejQ5UUtvamdLa3BVS2FTTHIrWFFScUJScitMQmNlN04vWjRvK1prNWFXR2hmOVZRVWFsZ0FBQUFFQWgvL3NCTTBGeGdBZkFBQUJCZ0FqSWdBWkFSQUFNeklFRnlNdUFTTWlBaDBCSVJVaEZSUVNNekkyTndUTkdQN3Y4ZnorMEFFdy9QVUJEUmk1R2FPbHJNY0NPLzNGeDZ5bW9oa0J6dHorK2dGWUFSUUJBUUVUQVZyOTZLYXAvdmZNTUpVK3p2NzNwS2tBQUFJQU1nQUFDRVVGc0FBV0FCOEFBQUVSSVRJV0ZSUUdJeUVSSVFNS0FTc0JOVE15RWhzQkFSRWhNalkxTkNZakJQUUJhT3o5L2V6OTN2My9Bd1RPL3pNb25JTUVCQU56QVdpYWxwYWFCYkQ5eGZMSnlmRUZHdjNyL21QK21KVUJGd0ZaQXF2OU1QMjFxSDk4cUFBQUFBQUNBTFVBQUFoUEJiQUFFZ0FiQUFBQklSRXpFU0V5RmhVVUJpTWhFU0VSSXhFekFSRWhNalkxTkNZakFXNEMxN2tCYU8zOC9lejkzLzBwdWJrRGtBRm9uSldWbkFNM0FubjlsdC9Bd09jQ292MWVCYkQ5QWYzdWxYVjBsQUFBQUFBQkFFQUFBQVhXQmJBQUZ3QUFBU0VSUGdFek1oWVZFU01STkNZaklnWUhFU01SSVRVaEJLdjk2MUNlYXZUMHVZNmhYS1JZdWY1akJHc0ZHdjVERlJYUDhmNDVBY2VxZ0JZVi9Ub0ZHcFlBQUFFQXRmNmFCUDRGc0FBTEFBQVRNeEVoRVRNUklSRWpFU0cxdVFMWHVmNC91ZjR4QmJENjVRVWIrbEQrbWdGbUFBSUFwZ0FBQkxFRnNBQU1BQlVBQUFFaEVTRXlGaFVVQmlNaEVTRUJFU0V5TmpVMEppTUVJZjArQVdqdS9QM3QvZDhEZS8wK0FXaWNsSlNjQlJyK1B1SEh5T2dGc1AwVC9kS2Zmbm1ZQUFBQUFnQTAvcG9GeVFXd0FBNEFGUUFBSlRNUkl4RWhFU01STXpZU0d3RWhBUVlDQnlFUklRVUl3Ym43M2JsNVQ0TUlJQU5oL1RvSmFGUUMwdjRKbGY0R0FXWCttZ0g3V2dGT0FTMENSdjI2OS82V2RBU0ZBQUFBQUFFQUd3QUFCeWdGc0FBVkFBQUJJeEVqRVNNQkl3a0JNd0V6RVRNUk13RXpDUUVqQkoyYnVhTCtYT2dCN3Y0NzJRR0dwcm1mQVliWi9qb0I3dWNDbi8xaEFwLzlZUU1BQXJEOWhBSjgvWVFDZlAxUi9QOEFBQUFCQUZILzZ3Um5CY1VBS0FBQUFUSTJOVFFtSXlJR0ZTTTBKRE15QkJVVUJnY2VBUlVVQkNNaUpEVXpGQll6TWpZMU5DWXJBVFVDWHFTV29xV0VycmtCR05QeUFRNThjb0dEL3QzejFmN1Z1Yk9VcHJlbnFhVURNWU4zZEpDT2JyamEwOHRvcERBcnFvSE0zdFRWZDUyVmZJcUFsZ0FBQUFBQkFMWUFBQVQrQmJBQUN3QUFBVE1SSXhFakFTTVJNeEV6QkVXNXVRUDlMYm01QXdXdytsQUViL3VSQmJEN2tnQUJBREFBQUFUMEJiQUFEd0FBQVJFakVTRURDZ0VyQVRVek1oSWJBUVQwdXYzeEVRNjc3ak1vakhFTUZnV3crbEFGR3Yzci9sMytucFVCRVFGZkFxc0FBUUJSLytzRXlBV3dBQlFBQUFFWEFUTUJEZ0VqSWlZbk54NEJNekkyUHdFQk13Sk9Td0ZZMS8zOFBJaWFHVUVLQmdwQUVrdENLQ3IrRHRBQys4TURlUHRBaElFR0E1QUNBa3BTVmdRK0FBQURBRlAveEFYakJld0FGUUFlQUNjQUFBRXpJQUFSRUFBaEl4VWpOU01nQUJFUUFDRXpOVE1ESWdZVkZCWTdBUkV6RVRNeU5qVTBKaU1EZUJzQkFnRk8vckwrL2h1NUhmNzkvclFCVEFFREhibld4dEhSeGgyNUhjVFMwc1FGSHY2OS92disrZjY3eHNZQlF3RUhBUVVCUmM3K25lbk16dWNEYXZ5VzZjN0w2QUFBQUFBQkFMVCtvUVdTQmJBQUN3QUFFek1SSVJFekVUTURJeEVodExrQzE3bVZFcVg3MlFXdyt1VUZHL3JwL2dnQlh3QUJBSmNBQUFURUJiQUFFd0FBQVJFakVRNEJJeUltTlJFekVSUVdNekkyTnhFRXhMbGhzSHYxODdxTW9tbThad1d3K2xBQ1lSMGF6dklCeHY0NnEzOGNIQUs0QUFFQXRBQUFCdElGc0FBTEFBQUJFU0VSTXhFaEVUTVJJUkVCYmdINnVRSDR1Zm5pQmJENjVRVWIrdVVGRy9wUUJiQUFBQUFCQUxUK29RZHJCYkFBRHdBQUFSRWhFVE1SSVJFekVUTURJeEVoRVFGdUFmcTVBZmk1bVJLbStnRUZzUHJsQlJ2NjVRVWIrdVgrREFGZkJiQUFBQUFBQWdBUkFBQUZ1QVd3QUF3QUZRQUFFeUVSSVRJV0ZSUUdJeUVSSVFFUklUSTJOVFFtSXhFQ1ZRRm83dno5N2YzZi9tUUNWUUZvbkpTVW5BV3cvYWpoeDhqb0JSdjlxUDNTbjM1NW1BQUFBQUFEQUxVQUFBWTFCYkFBQ2dBVEFCY0FBQUVoTWhZVkZBWWpJUkV6R1FFaE1qWTFOQ1lqQVNNUk13RnVBV2p1L1AzdC9kKzVBV2ljbEpTY0ExKzV1UU5ZNGNmSTZBV3cvUlA5MHA5K2VaajlQUVd3QUFBQ0FLWUFBQVN4QmJBQUNnQVRBQUFCSVRJV0ZSUUdJeUVSTXhrQklUSTJOVFFtSXdGZkFXanUvUDN0L2QrNUFXaWNsSlNjQTFqaHg4am9CYkQ5RS8zU24zNTVtQUFBQUFBQkFMSC83QVQyQmNZQUh3QUFFelFBTXpJQUdRRVFBQ01pQURVekZCWXpNaEk5QVNFMUlUVTBBaU1pQmhXeEFTVDIrd0V3L3RENysvN2h1YldzcThmOXV3SkZ4NnVzdFFQZjFRRVMvcWIrN2Y3Ly91eitxQUVCNDZDdkFRak5PSlUyemdFSnNLRUFBQUlBdy8vckJ0NEZ4UUFWQUNNQUFBRVFBQ0VnQUJFMUl4RWpFVE1STXpVUUFDRWdBQkVuTkFJaklnSVZFUlFTTXpJU05RYmUvcnYrOXY3Ky9zYlh1Ym5YQVRvQkFnRUtBVVc1MnJ5MHo4KzB2ZGtDVi83MC9xQUJZQUVNS1AyQkJiRDlaRVFCQ3dGaS9wNys5UUxKQVFiKytzbisvY3YrK2dFRnpBQUNBR01BQUFSbkJiQUFEUUFXQUFBaEl3RXVBVFUwSkRNaEVTTVJJUUVoSWdZVkZCWXpJUUVveFFGVmtKQUJDL1VCejdyK3F3RlYvdXVqcEtTZEFSc0NiemJEa3RUaStsQUNQQUxlbG9pSG93QUFBQUFDQUdILzZ3UW9CaEVBR3dBcEFBQUJNaElkQVJRQUl5SUFQUUVRQURjK0FUVXpGQVlIRGdFSEZ6NEJGeUlHSFFFVUZqTXlOajBCTkNZQ1o5UHUvd0RqNVA4QUFRUG1obk9Zc0xxTnd4NERSckpGbEpTVmxaU1dsd1A3L3ZMYkdPeiszUUVqN0lnQlNnRjNLeGxBU3JGeEhoaXBxZ0pHVVpYQWxCaW4wOU9uR0pUQUFBQURBSjBBQUFRcEJEb0FEd0FZQUNFQUFETVJJVElXRlJRR0J4VWVBUlVVQmlNQkVTRXlOalUwSmlNbE16NEJOVFFtS3dHZEFhYlk1MWxVWlcvWXlmN09BVEowYzNOMC9zNzdmWHVDaE8wRU9wS1hUblVmQXhpSFdwcVpBZHordDFSUlVGU1NBVXhOVUU0QUFBQUJBSm9BQUFOSEJEb0FCUUFBQVNFUkl4RWhBMGYrRGJvQ3JRT2ovRjBFT2dBQUFBQUNBQzcrd2dTVEJEb0FEZ0FWQUFBM1BnRTNFeUVSTXhFakVTRVJJeE1CRGdFSElSRWhnMVZZRHhBQ3VZdTUvUTI1QVFISkMxQkNBZlQrczVWa3pkOEJsZnhiL2kwQlB2N0NBZE1DRUx2OVdBTDhBQUFCQUJVQUFBWUVCRG9BRlFBQUFTTVJJeEVqQVNNSkFUTUJNeEV6RVRNQk13a0JJd1BxZ2JtQy90SHFBWXorbWVBQkYzKzVmZ0VaNFA2WUFZenFBZGorS0FIWS9pZ0NPd0gvL2o4QndmNC9BY0grQWYzRkFBQUFBUUJZLyswRHJBUk1BQ2dBQUFFVUJnY2VBUlVVQmlNaUpqVXpGQll6TWpZMU5DWXJBVFV6TWpZMU5DWWpJZ1lWSXpRMk16SVdBNWhYVWw1ZjVNS3orN2lJYm5KNmFuYTV1WEJkYVhCaWc3anNzY0hSQXhOTGVDUWhmVjZhcWFxb1VIQmpUbHRRbWxCT1NGNWpTWkd1bndBQUFBQUJBSndBQUFRQkJEb0FDd0FBQVRNUkl4RWpBU01STXhFekEwaTV1UVArRUxtNUF3UTYrOFlERi96cEJEcjg2Z0FCQUp3QUFBUS9CRG9BREFBQUFTTVJJeEV6RVRNQk13a0JJd0hkaDdxNmVRRnM0UDVTQWRMckFjLytNUVE2L2pVQnkvMzUvYzBBQUFFQUtBQUFCQU1FT2dBUEFBQUJFU01SSVFNS0FTc0JQd0V5TmhzQkJBTzYvcEVORDVmSk5nUW9hVW9ORkFRNis4WURvLzdIL3JMKzVLSUJ3UUVHQWRBQUFBQUFBUUNkQUFBRlVnUTZBQTRBQUNVQk14RWpFU01CSXdFakVTTVJNd0w3QVhEbnVRUCtwWUQrbmdPNThQSURTUHZHQXd6ODlBTWQvT01FT2dBQUFRQ2NBQUFFQUFRNkFBc0FBQ0VqRVNFUkl4RXpFU0VSTXdRQXVmNFB1cm9COGJrQjBQNHdCRHIrS2dIV0FBQUFBUUNjQUFBRUFRUTZBQWNBQUNFakVTRVJJeEVoQkFHNS9nNjZBMlVEby94ZEJEb0FBUUFvQUFBRHNBUTZBQWNBQUFFaEVTTVJJVFVoQTdEK2xibituQU9JQTZiOFdnT21sQUFBQUFNQVpQNWdCV2tHR0FBZkFDMEFPd0FBRXhBU016SVdGeEV6RVQ0Qk16SVNFUlVVQWlNaUppY1JJeEVPQVNNaUFqVWxOQ1lqSWdZSEVSNEJNekkyTlNFVUZqTXlOamNSTGdFaklnWVZaTWpCSzBraHVTSlFNc0hKeWI4eVVTTzVJVW9zdnNrRVRJQ0hJallXRmpjamgzNzhiWFdISHpNWEZ6SWVpSFlDQ2dFTUFUZ1BEZ0huL2hNUkV2N0kvdlFWOGY3bkVRLytWUUdvRGc4QkdmRVZ3ZTBMQ2Z6dENRaktxNjNJQ1FrREZRZ0o2c1FBQUFFQW5QNi9CSUlFT2dBTEFBQVRNeEVoRVRNUk13TWpFU0djdWdIeXVZRVNwdnpTQkRyOFd3T2wvRnYrS2dGQkFBRUFad0FBQTcwRU93QVRBQUFoSXhFT0FTTWlKalVSTXhFVUZqTXlOamNSTXdPOXVqNTNSY3JZdVhKM1JYazh1Z0dLRVJESTBBRTYvc2FKZUJBUkFoa0FBQUFBQVFDY0FBQUY0QVE2QUFzQUFBRVJJUkV6RVNFUk14RWhFUUZXQVl5NUFZdTYrcndFT3Z4YkE2WDhXd09sKzhZRU9nQUFBQUVBa2Y2L0JtMEVPZ0FQQUFBQkVTRVJNeEVoRVRNUk13TWpFU0VSQVVzQmpMa0JpN3FZRXFYNjJ3UTYvRnNEcGZ4YkE2WDhXLzRxQVVFRU9nQUFBQUFDQUI0QUFBUy9CRG9BREFBVkFBQVRJUkVoTWhZVkZBWWpJUkVoQVJFaE1qWTFOQ1lqSGdINkFSUEQwZExDL2pUK3Z3SDZBUk55YUdseEJEcitpcitmb01ZRHBmNksvbVp5V0ZaNkFBQUFBQU1BblFBQUJYOEVPZ0FLQUE0QUZ3QUFBU0V5RmhVVUJpTWhFVE1CSXhFekFSRWhNalkxTkNZakFWWUJFOFBSMHNMK05Ma0VLYnE2KzljQkUzSm9hWEVDeEwrZm9NWUVPdnZHQkRyOTlmNW1jbGhXZWdBQUFBQUNBSjBBQUFQOUJEb0FDZ0FUQUFBQklUSVdGUlFHSXlFUk14a0JJVEkyTlRRbUl3RldBUlBEMGRMQy9qUzVBUk55YUdseEFzUy9uNkRHQkRyOTlmNW1jbGhXZWdBQUFBQUJBR1QvNndQZ0JFNEFIUUFBQVNJR0ZTTTBOak15RWgwQkZBSWpJaVkxTXhRV016STJOeUUxSVM0QkFnaGlrckQ3cWQ3Nit0NjU2N0NLYW9XTkMvNXFBWlVQakFPNGVWeVUxLzdNNkNycC9zemNxMm1KeDVXVmpya0FBQUlBbmYvc0JpTUVUZ0FUQUNFQUFBRWhOaEl6TWdBZEFSUUFJeUlDSnlFUkl4RXpBUlFXTXpJMlBRRTBKaU1pQmhVQlZ3RUlFL3pRNUFFQi93RGoxdjBQL3ZtNnVnRy9sSmFVbHBlVmxKUUNidGtCQi83UDlSajIvdElCRE9EK0tBUTYvZGF4M3Qrd0dLN2k0cTRBQUFBQ0FDOEFBQVBIQkRvQURRQVdBQUFCRVNNUklRRWpBUzRCTlRRMk13TVVGak1oRVNFaUJnUEh1djdxL3dESUFSRnFidGZFNFdObkFTSCs5bkp2QkRyN3hnR20vbG9Cd1NXZGJaUzIvclJNWndGcmF3QUIvK2YrU3dQN0JoZ0FLZ0FBQVNFUkZ6NEJNeklXSFFFekVSUUdJeUltSnpjZUFUTXlOalVSTkNZaklnWUhFU01SSXpVek5UTVZJUUpqL3VnRE42Sm5zYnNCcDVzaU5Sd1BEVVFUUVVkMGQxZUlMTHFxcXJvQkdBUzYvdTBCVUZqTTNkLzk0YXF5Q0FtU0JRbG9Yd01BallCU1NQem1CTHFWeWNrQUFRQnMvK3dEL1FST0FCMEFBQ1V5TmpjekRnRWpJZ0k5QVRRU016SVdGeU11QVNNaUJnY2hGU0VlQVFKT1o1Y0JzQUgvcis3MDlPNi83d0d3QVk1d2s0b0tBWkQrY1FxSWdYaGNsTlVCTCswcTdBRXczS3hvaXJ5VmxaZTZBQUFBQWdBbkFBQUdoZ1E2QUJZQUh3QUFBUkVoTWhZVkZBWWpJUkVoRVJBQ0t3RS9BVEkyTlJFQkVTRXlOalUwSmlNRDN3RVR3OUhTd3Y0ei9yQ3F6allES1cxY0FzTUJFM0JxYVhFRU92NWp0WmFYdXdPai9zZit2UDdhbUFIVyt3SFEvYzcraTNGUVRHZ0FBQUFBQWdDY0FBQUdwd1E2QUJJQUd3QUFBU0VSTXhFaE1oWVZGQVlqSVJFaEVTTVJNd0VSSVRJMk5UUW1Jd0ZXQWZHNUFSUEQwZExDL2pUK0Q3cTZBcW9CRTNCcWFYRUNvQUdhL21LMGxwZTdBZ3o5OUFRNi9jNytpM0ZRVEdnQUFBQUFBZi85QUFBRCtnWVlBQndBQUFFaEVSYytBVE15RmhVUkl4RTBKaU1pQmdjUkl4RWpOVE0xTXhVaEFubiswZ00zb21leHU3bDBkMWVJTExxVWxMb0JMZ1MvL3VnQlVGak0zZjFiQXFlTmdGSkkvT1lFdjVYRXhBQUFBQUFCQUp6K25BUUJCRG9BQ3dBQUFSRWhFVE1SSVJFakVTRVJBVllCOHJuK3Jibitwd1E2L0ZzRHBmdkcvcHdCWkFRNkFBQUFBUUNmLytzR2FRV3dBQ0FBQUFFUkZBWWpJaVluRGdFaklpWTFFVE1SRkJZek1qWTFFVE1SRkJZek1qWTFFUVpwNGIxeHB6QXpyblczMTdweVluR0h2MzFxYVh3RnNQdlp6dEJZV2xwWTBNNEVKL3ZaaElXRmhBUW4rOW1FaFlXRUJDY0FBQUVBZ2YvckJhMEVPZ0FnQUFBQkVSUUdJeUltSnc0Qkl5SW1OUkV6RVJRV016STJOUkV6RVJRV016STJOUkVGcmMycllwRXNNSmhscHNLNVhWSmZjcnBuV2xkb0JEcjlLYnU5U1V4TVNieThBdGY5S1hKeGNuRUMxLzBwY25GeWNRTFhBQUFDLzl3QUFBUDhCaGdBRWdBYkFBQUJJUkVoTWhZVkZBWWpJUkVqTlRNUk14RWhBUkVoTWpZMU5DWWpBcGIrdndFU3hOSFR3djQwdjcrNkFVSCt2d0VTY21ocGNRUTYvcTdKcDZqUUJEcVZBVW4rdC8yRS9rSjhZRjJGQUFFQXhQL3NCcEVGeGdBbkFBQUJNelVRQURNeUJCY2pMZ0VqSWdJZEFTRVZJUlVVRWpNeU5qY3pCZ0FqSWdBUk5TTVJJeEV6QVgzT0FURDg5UUVOR0xrWm82V3N4d0lhL2ViSHJLYWlHYmtZL3UveC9QN1F6cm01QTBBWkFSTUJXdjNvcHFuKzk4d2JsbExPL3Zla3FkeisrZ0ZZQVJSUy9WWUZzQUFCQUpuLzdBV25CRTRBSXdBQUFUTTJFak15RmhjakxnRWpJZ1lISVJVaEhnRXpNalkzTXc0Qkl5SUNKeU1SSXhFekFWUEVEdlRmdis4QnNBR09jSk9LQ2dHeC9sQUtpSlJubHdHd0FmK3Y0UElQeExxNkFtZllBUS9jckdpS3ZKV1ZsN3A0WEpUVkFRemEvaTRFT2dBQUFnQXFBQUFFM2dXd0FBc0FEd0FBQVNNUkl4RWpBeU1CTXdFakFTRURJd09KcnJpaG1yNENENkFDQmIzOW1BR2F5Z01CdXY1R0FicitSZ1d3K2xBQ1dBSk5BQUFDQUE4QUFBUWxCRG9BQ3dBUkFBQUJJeEVqRVNNREl3RXpBU01CSVFNbkl3Y0M3WFc1ZTNpOUFicWZBYjIrL2hrQk1JRVdCQllCSy83VkFTdisxUVE2KzhZQndRRTlVMU1BQUFBQUFnRFdBQUFHN3dXd0FCTUFGd0FBQVNFQk13RWpBeU1SSXhFakF5TVRJUkVqRVRNQklRTWpBWThCaFFFMm9BSUZ2Wml1dUtHYXZxRCt0TG01QWpzQm1zb0RBbGtEVi9wUUFicitSZ0c2L2tZQnV2NUdCYkQ4cUFKTkFBQUNBTHdBQUFYa0JEb0FFd0FaQUFBQklRRXpBU01ESXhFakVTTURJeE1qRVNNUk13RWhBeWNqQndGMkFROEJBNThCdmI1NmRibDdlTDE2MHJxNkFja0JNSUVXQkJZQndRSjUrOFlCSy83VkFTdisxUUVyL3RVRU92MkhBVDFUVXdBQ0FKWUFBQVk3QmJBQUlRQWxBQUFCTnpVaEFUTXlGaFVSSXhFMEppc0JCeEVqRVNjaklnWVZFU01STkRZN0FRRXpBVE1CSVFIekF3UFEvblVmOGZDNWlwNTdGN2tSaDUrSXV1L3lLLzUyMVFGNkVRRWkvYXNGcFFFSy9Ydks3ZjZNQVhTbWV5ZjlrZ0o2RzN1bS9vd0JkTzNLQW9YOWV3SHZBQUFBQWdDV0FBQUZTd1E2QUJzQUh3QUFBUjRCSFFFak5UUW1Ld0VIRVNNUkp5TWlCaDBCSXpVME5qY0JJUUV6RXlFRHRjbk51bmlMTXd1NUJqNk1kN3JSMGY3ZkE3LytIZ1c0L29vQ1dnbk00S1dscG5zVC9rMEJ2UWw3cHFXbDVjb0dBZUQrSVFGSkFBQUNBTU1BQUFodUJiQUFLUUF0QUFBaEVUUTJOeUVSSXhFekVTRTdBUUV6RnpjMUlRRXpNaFlWRVNNUk5DWXJBUWNSSXhFbkl5SUdGUkVCTXdFaEFza25LZjVqdWJrREZ4Y3IvbmJWQmdNRDBQNTFIL0h3dVlxZWV4ZTVFWWVmaUFJWEVRRWkvYXNCZEYrTk52MXFCYkQ5ZXdLRkN3RUsvWHZLN2Y2TUFYU21leWY5a2dKNkczdW0vb3dES3dIdkFBQUNBSnNBQUFjN0JEb0FJZ0FtQUFBaE5UUTJOeUVSSXhFekVTRUJJUUVlQVIwQkl6VTBKaXNCQnhFakVTY2pJZ1lkQVFFVElSTUNoaVFtL29XNnVnTFMvdUFEdi83ZnljMjZlSXN6QzdrR1BveDNBYW01L29tNXBWNk5OdjQ2QkRyK0lnSGUvaUFKek9DbHBhWjdFLzVOQWIwSmU2YWxBbHNCU2Y2M0FBQUFBQUlBVVA1SEE2b0hjQUF0QURZQUFBRXlOalUwSmlNaE5TRXlCQlVVQmdjVkhnRVZGQVFyQVNJR0ZSUVdGd2N1QVNjME5qc0JNalkxTkNZckFUVUJOek1WQnlNbk5UTUJvcU9Wa3BMK3pnRXkyQUVHZjNPQ2h2NzQyRFZRUlY1RFNtNllBYXFqTFlxZHFLZU5BUXFWb3Y1eitwNERObjkyYTRXVjBMbHBvaXNES2F5RHl0ODZOMGRWSG5zdm9HK0JmSlY3aW9XVkE2U1dFdlB4RkFBQUFBQUNBRXorUndOM0Joc0FMUUEyQUFBQk1qWTFOQ1lqSVRVaE1oWVZGQVlIRlI0QkZSUUdLd0VpQmhVVUZoY0hMZ0VuTkRZN0FUSTJOVFFtS3dFMUV6Y3pGUWNqSnpVekFacU5nSDE4L3RNQkxjVHZaRnBvYlBIRk1GQkZYa05LYnBnQnFxSXBkb2FSa28zQmxhTCtjL3FlQW1oVVRrUldscVNRUzNVakF5QjVWNW1xT2pkSFZSNTdMNkJ2Z1h4Y1RsWlJsUU1kbGhMejhSUUFBQUFEQUhQLzZ3VCtCY1VBRFFBV0FCOEFBQUVRQUNFZ0FCa0JFQUFoSUFBUkJTRTFOQUlqSWdJVkJTRVZGQkl6TWhJMUJQNyt1LzcyL3Y3K3hnRTZBUUlCQ2dGRi9DNERHZHE4dE04REdmem56N1M5MlFKWC92VCtvQUZnQVF3QkFRRUxBV0wrbnY3MVBrREpBUWIrK3NuV0xjdisrZ0VGekFBREFHRC83QVFuQkU0QURRQVVBQnNBQUJNMEFETXlBQjBCRkFBaklnQTFBVEkyTnlFZUFSTWlCZ2NoTGdGZ0FRRGk1QUVCL3dEajVQOEFBZVNIa3czOXNReVRoNFNTRHdKTkQ1UUNLUFVCTWY3UDlSajIvdElCTHZiK2NieWJtN3dETjdhVmxiWUFBQUVBRndBQUJOb0Z4QUFSQUFBQkZ6TTNBVDRCTXhjSEl5SUdCd0VqQVRNQ1B5SURJZ0VGTVlGdUx3RU1OVUVkL25pZy9nWEpBWEYrZmdNMG5vRUJvejVWKzNNRnNBQUFBQUVBTGdBQUJBc0VUUUFWQUFBQkZ6TTNFejRCTXpJV0Z3Y3VBU01pQmdjQkl3RXpBZHNXQXhlZEtYNVNJakFZRlFVWURTRTdELzdYamY2RHZRRTZYVjBDSTM1eUNnNlNBd1V4TFB5eUJEb0FCQUJ6LzNNRS9nWTFBQU1BQndBVkFDTUFBQUVqRVRNUkl4RXpBUkFBSVNBQUdRRVFBQ0VnQUJFbk5BSWpJZ0lWRVJRU016SVNOUU1XdWJtNXVRSG8vcnYrOXY3Ky9zWUJPZ0VDQVFvQlJibmF2TFRQejdTOTJRUzFBWUQ1UGdHSkFWdis5UDZnQVdBQkRBRUJBUXNCWXY2ZS92VUN5UUVHL3ZySi92M0wvdm9CQmN3QUJBQmcvNGdFSndTMkFBTUFCd0FWQUNNQUFBRWpFVE1SSXhFekFUUUFNeklBSFFFVUFDTWlBRFV6RkJZek1qWTlBVFFtSXlJR0ZRS2h1Ym01dWYyL0FRRGk1QUVCL3dEajVQOEF1cFNXbEphWGxaU1VBMGdCYnZyU0FXNEJNdlVCTWY3UDlSajIvdElCTHZheDN0K3dHSzdpNHE0QUFBQUFBd0NmLytzR1pBZFVBQ3dBUGdCRUFBQUJNaFlWRVJRR0l5SW1KdzRCSXlJbU5SRTBOak1WSWdZVkVSUVdNekkyTlJFekVSUVdNekkyTlJFMEppTVRGU01pSkNNaUJoMEJJelUwTmpNeUJETUJKemMxTXhVRTFyYlkyTFoxclRNMHJYTzMxOWUzWW5KeVluR0h1b1Z5WVhSMFlXZ3NoZjdkTGpZOGYzbDBTd0VlYy81QlREcTBCYS9rM3YzQTMrTldXVmxXNDk4Q1FON2tsWmlWL2NDV2w0V0VBYlQrVElTRmw1WUNRSldZQWJ0OWZ6ZzNFaVJ1YkgvK1VrQjBqSHdBQXdCKy8rc0ZxZ1h4QUN3QVBnQkVBQUFCTWhZVkVSUUdJeUltSnc0Qkl5SW1OUkUwTmpNVklnWVZFUlFXTXpJMlBRRXpGUlFXTXpJMk5SRTBKaU1URlNNaUpDTWlCaDBCSXpVME5qTXlCRE1GQnljM0p6TUVRcVhEdzZWbm1TOHZtV1dtd3NLbVVsMWRVbDl5dVhKZ1VGNWVVS29zaGY3ZExUYzdnSHAwU2dFZWRQN2lvVTA3QWJRRVJORE0vdC9OejBwTVRFclB6UUVoek5DVmhJUCszNFNEY25IcjYzRnlnNFFCSVlPRUFjSjlmemMzRWlOdWJZRHF4RUIwakFBQUFnQ2YvK3NHYVFjREFBY0FLQUFBQVRVaEZ5RVZJelVGRVJRR0l5SW1OUkVqRVJRR0l5SW1OUkVqRVJRV016STJOeDRCTXpJMk5SRUIzUU1yQWY2MXFBS2FmR2xxZmIrSGNXSnl1dGUzZGE0ek1LZHh2ZUVHbVdwcWZYM3ArOW1FaFlXRUJDZjcyWVNGaFlRRUovdlp6dEJZV2xwWTBNNEVKd0FBQUFJQWdmL3JCYTBGc1FBSEFDZ0FBQUUxSVJjaEZTTTFBUkVVQmlNaUpqVVJJeEVVQmlNaUpqVVJJeEVVRmpNeU5qY2VBVE15TmpVUkFZZ0RLd1ArczZnQ00yaFhXbWU2Y2w5U1hibkNwbVdZTUN5Ullxdk5CVWRxYW9DQS92UDlLWEZ5Y1hJQzEvMHBjWEp4Y2dMWC9TbTh2RWxNVEVtOXV3TFhBQUFCQUhqK2d3UytCY1VBR0FBQUFTTVJKZ0ExRVJBQU16SUFGU00wSmlNaUFoVVJGQkk3QVFNUnVkMysvUUV3L1BvQklMcTFxNnpIeDZ4dC9vTUJiUndCVHYwQkFRRVRBVnIrL2VLZnNQNzN6UDc5enY3M0FBQUFBUUJrL29NRDRBUk9BQmdBQUFFakVTWUNQUUUwRWpNeUZoVWpOQ1lqSWdZZEFSUVdPd0VDb3JtN3l2cmZ1T3V2akdpUmo0NlNaZjZEQVc4ZkFTYlJLdWdCTk4ycmFJcmxvU3FrNUFBQUFBQUJBSFFBQUFTUUJUNEFFd0FBQVFVSEpRTWpFeVUzQlJNbE53VVRNd01GQnlVQ1dBRWhSUDdkdHFqaC90OUVBU1hOL3Q1R0FTTzhwZWNCSlVqKzRBRzlySG1xL3I0QmpxdDVxd0Z2cTN1ckFVMytaNnQ0cWdBQUFmeG5CS2YvSndYN0FBY0FBQUVWSnpjaEp4Y1YvUTJtQVFJYkFhVUZKWDRCNTJ3QjFRQUFBQUg4Y1FVWC8yUUdGUUFSQUFBQk1pUXpNaFlkQVNNMU5DWWpJZ1FyQVRYOG0zTUJIa3AwZW9BN055MyszWVVzQlpXQWJXNGpFamMzZjMwQUFBSDlaZ1VZL2xRR1dBQUZBQUFCTlRNVkZ3Zjlack03VFFYY2ZJeDBRQUFBQWYya0JSaitrd1pZQUFVQUFBRW5OeWN6RmYzeFRUc0J0UVVZUUhTTWZBQUkrbzMreEFJb0JhOEFEUUFiQUNrQU53QkZBRk1BWVFCdkFBQUJORFl6TWhZVkl6UW1JeUlHRlFFME5qTXlGaFVqTkNZaklnWVZFelEyTXpJV0ZTTTBKaU1pQmhVQk5EWXpNaFlWSXpRbUl5SUdGUUUwTmpNeUZoVWpOQ1lqSWdZVkFUUTJNeklXRlNNMEppTWlCaFVCTkRZek1oWVZJelFtSXlJR0ZSTTBOak15RmhVak5DWWpJZ1lWL1hwd1ltTndjQzgwTWk4QjNtOWlZbkp4THpRekxVbHdZbUp4Y0M4ME15Nyt5MjlpWW5Gd0x6UXpMdjFRY0dKamNIQXZOREl2L1UxeFltTndjQzgwTWkvKzNuRmhZM0J3TGpVeUx6VnhZV054Y1M0MU1pNEU4MVZuWjFVc09Ua3MvdXRWWjJkVkxEazVMUDRKVldkblZTdzVPU3o5K1ZWbloxVXNPVGtzL3VSV1ptWldMVGc0TFFVYVZXZG5WU3c1T1N6K0NWVm5aMVVzT1Rrcy9mbFZaMmRWTERrNUxBQUFBQWo2cFA1akFlTUZ4Z0FFQUFrQURnQVRBQmtBSGdBakFDZ0FBQVVYQXlNVEF5Y1RNd01CTndVVkpRVUhKVFVGQVRjbEZ3WUZBUWNGSnlVREp3TTNFd0VYRXdjRC9xY0xlbUJHT2d4NllFWUNIUTBCVGY2bSszVU4vck1CV2dPY0FnRkFSQ1gvQVB6ekF2N0FSUUVtS3hHVVFjWURYeEdWUXNROER2NnRBV0VFb2c0QlV2NmcvaEVNZkdKSE93eDhZa2NCcmhDWlJCZXgvSTRSbVVYSUF1UUNBVVpGL3RYODR3TCt1MGNCS3dBQUF2L2NBQUFEL0Fad0FCSUFHd0FBQVNFUklUSVdGUlFHSXlFUkl6VXpOVE1WSVFFUklUSTJOVFFtSXdLVy9yOEJFc1RSMDhMK05MKy91Z0ZCL3I4QkVuSm9hWEVGR3YzT3lhZW8wQVVhbHNEQS9LUCtRbnhnWFlVQUFBQURBTFVBQUFUWUJiQUFBd0FPQUJjQUFBRUhBVGNCRVNNUklUSVdGUlFHSXlVaE1qWTFOQ1lqSVFUWWJ2NlJiZjRHdVFJazdmMzk3ZjZWQVd1Y2xaV2MvcFVDUG1RQmsyWCtlUDIyQmJEcnlNcnBsWjk5ZnFFQUF3Q1IvbUFFSkFST0FBTUFGZ0FrQUFBbEJ3RTNKUlFDSXlJbUp3Y1JJeEV6Rno0Qk16SVNFU00wSmlNaUJnY1JIZ0V6TWpZMUJDTnUvclp1QVV2YnlXZVdOUU82bnhJMm1tdk0yN3FRazF0N0ppaDVYWktQRFdVQmRXVno4UDduUTBNQi9lOEYyb3BPVVA3SC92Vy82MUJHL2ZaSFRNdXBBQUFBQUFFQXBnQUFCQ01IQVFBSkFBQUJJeFVoRVNNUklSRXpCQ01DL1Q2NUFzUzVCUnNCK3VZRnNBRlJBQUFBQVFDUkFBQURRd1Y0QUFrQUFBRWpGU0VSSXhFaEVUTURRd1grRGJvQitMb0RwQUg4WFFRNkFUNEFBQUFCQUxYKzNnUjhCYkFBRlFBQUFTRVJNeUFBRVJBQ0l5Y3lOalV1QVNzQkVTTVJJUVF3L1Q2NUFSOEJOdS9xQXB5RkFjdlB1YmtEZXdVYS9pYisxZjdxL3ZmKzZKSE53OUhSL1Y4RnNBQUFBQUVBa2Y3bEE3NEVPZ0FWQUFBQklSRXpNZ1FWQmdJSEp6NEJOUzRCS3dFUkl4RWhBejcrRFhUbkFSZ0J2Y0l4aDNFQnNKVjB1Z0t0QTZQKzR2cmhqUDdySkpBaW5uV1pvLzRhQkRvQUFBQUFBUUNtQUFBRStBV3dBQlFBQUFrQ0l3RWpGU00xSXhFakVUTVJNeEV6RVRNQkJNditiZ0cvNS82Y1VKVnB1YmxwbFU4QlJ3V3cvVTc5QWdLVjkvZjlhd1d3L1hvQkF2NytBb1lBQUFFQW1nQUFCSDhFT2dBVUFBQUpBaU1CSXhVak5TTVJJeEV6RVRNMU14VXpBUVJhL3EwQmVPdis2akdVWmJxNlpaUXFBUU1FT3YzKy9jZ0J6OFRFL2pFRU92NDExdFlCeXdBQUFBQUJBRVVBQUFhSkJiQUFEZ0FBQVNNUkl4RWhOU0VSTXdFekNRRWpBNHl3dWY0aUFwZWZBaEhVL2NNQ1p1TUNsUDFzQlJ1Vi9Ya0NoLzArL1JJQUFBQUFBUUErQUFBRmZBUTZBQTRBQUFFakVTTVJJVFVoRVRNQk13a0JJd01haDdyK1pRSlZlUUZzNFA1U0FkTHJBYy8rTVFPa2x2NDFBY3Y5K2YzTkFBQUFBQUVBdFFBQUI0UUZzQUFOQUFBQklSRWhGU0VSSXhFaEVTTVJNd0Z1QXRVRFFmMTR1ZjBydWJrREd3S1ZsZnJsQW9iOWVnV3dBQUFBQVFDUkFBQUZhZ1E2QUEwQUFBRWhFU0VWSVJFakVTRVJJeEV6QVVzQjhRSXUvb3U1L2crNnVnSmtBZGFXL0Z3QjBQNHdCRG9BQUFBQkFMVCszd2ZOQmJBQUZ3QUFBVE1nQUJFUUFpTW5NalkxTGdFckFSRWpFU0VSSXhFaEJQMTdBUjhCTnUvcUFweUZBY3ZQZTduOUtia0VTUU5CL3RYKzZ2NzMvdWlSemNQUjBmMWVCUnI2NWdXd0FBQUJBSkgrNVFhd0JEb0FGd0FBQVRNeUJCVUdBZ2NuUGdFMUxnRXJBUkVqRVNFUkl4RWhBL2FvOEFFaUFiM0RNSWR4QWJxZXFMbitEcm9EWlFLRit1R00vdXNra0NLZGRwbWovaG9Eby94ZEJEb0FBQUFDQUhQLzRnV2FCY1VBS1FBM0FBQUZJaVluRGdFaklBQVJOUkFTTXhjaUFoMEJGQkl6TWpZM0pnSTlBVFFTTXpJU0hRRVVBZ2NlQVRNQkZCWVhQZ0U5QVRRbUl5SUdGUVdhYjhGWlI1cFgvdW4rc2ZqT0FYNlE1c2NrUVNCK2c5KzV1dDl3YWpOeFF2MThlSGxsYVhacWFIY2VKU1VoSUFHSUFUS3FBUk1CWTV6KytkR3M4djdUQndoakFSU3M1dkFCTS83VDl2cWkvdmRoRGcwQ09aL3NTa25tbFAyeDFkdXJBQUFBQWdCdC8rc0VuQVJQQUNrQU9BQUFCU0ltSnc0Qkl5SUFFVFUwRWpNVklnWWRBUlFXTXpJMk55NEJQUUUwTmpNeUZoMEJGQVlISGdFekF6VTBKaU1pQmgwQkZCWVhQZ0UxQkp4Ym5FYzdnVW5mL3ZQQW9FMVpvNDhZTFJkaFlxaVVrNnRDUUNoWU11bEdQMEZDVDA4ME5nd2NIU0VoQVVvQkF6dlJBUXFic1kwOXdmRUZCMURYZzJmQjYvdkdhWFBCVGdzS0FaZHNnS09TZld0cnB6bzVuV0VBQUFBQkFEVCtvUWFPQmJBQUR3QUFBU0UxSVJVaEVTRVJNeEV6QXlNUklRR3cvb1FEdWY1OEF0ZTVsUktsKzlrRkc1V1YrM29GRy9ycC9nZ0JYd0FCQUIvK3Z3VVhCRHNBRHdBQUFTRTFJUlVqRVNFUk14RXpBeU1SSVFFeC91NEN4UGdCOHJtQkVxYjgwZ09tbFpYODd3T2wvRnYrS2dGQkFBQUNBSmNBQUFURUJiQUFBd0FYQUFBQkl4RXpBUkVqRVE0Qkl5SW1OUkV6RVJRV016STJOeEVERjVXVkFhMjVZYkI3OWZPNmpLSnB2R2NCUUFLOEFiVDZVQUpoSFJyTzhnSEcvanFyZnh3Y0FyZ0FBQUFDQUlNQUFBUFpCRHNBQXdBWEFBQWxJeEV6QVNNUkRnRWpJaVkxRVRNUkZCWXpNalkzRVRNQ2hwV1ZBVk82UG5kRnl0aTVjbmRGZVR5NjVnSTEvT1VCaWhFUXlOQUJPdjdHaVhnUUVRSVpBQUVBamdBQUJMc0ZzQUFUQUFBekVUTVJQZ0V6TWhZVkVTTVJOQ1lqSWdZSEVZNjVZYTk4OVBTNmphRnF2R1lGc1AyZUhCelA4ZjQ2QWNhcWdCMGMvVWtBQUFBQUFnQkgvK2tGd0FYREFCNEFKd0FBQlNBQUVUVXVBVFV6RkJZWE5SQUFNeUFBRVJVaEZSUVNNekkyTnhjT0FRRWhOVFFtSXlJQ0ZRUHQvdGord2FDZmxWSllBVFRwQVF3QkVmeUF6OTV3blVvd09Mejl3QUxIcHI2cHVoY0JVZ0VmYXhTL29XQjVGQWNCRkFGYy9xWCt4RzFsMmY3OUx5aUdKejhEV1NIVTl2NzF6d0FBQXYvai8rd0VXUVJPQUJ3QUpBQUFCU0lBUFFFdUFUVXpGQllYUGdFek1oSWRBU0VlQVRNeU5qY1hEZ0VESWdZSElUVTBKZ0srNVA3NGVIZVVNRFFnL3FmYzNmMHpCSjJSWlpNN1NUdTVwbW1SRkFJT2dCUUJKL1FNSEtxSlNXRVp3dTMrL3VCNXBzdzRNM3M2U3dQTXFZY2FlWjBBQUFBQUFRQ20vdGtFeXdXd0FCWUFBQUVXQUJFUUFpTW5NalkxTGdFaklSRWpFVE1STXdFekFycjlBUTN1NndLZGhRTEswUDd3dWJtSEFnM1lBemdWL3RuKy92NzMvdWlSemNQUTBmMWxCYkQ5aXdKMUFBQUFBUUNhL3YwRUdRUTZBQllBQUFFZUFSVUdBZ2NuUGdFMUxnRXJBUkVqRVRNUk13RXpBbjI5MWdHOHd6Q0hjUUcyb3F1NnVsc0JpdUFDWkIzYXY0ZisrU09RSVpKdWxvditNUVE2L2pVQnl3QUJBTFgrU3dUOUJiQUFGd0FBQVJFaEVUTVJGQVlqSWlZbk54NEJNekkyTlJFaEVTTVJBVzRDMWJxb214ODBIUTRPUWhKQ1IvMHJ1UVd3L1dzQ2xmbjNxcklKQ1pFRkNHZGZBdC85ZWdXd0FBRUFrZjVMQS9VRU9nQVhBQUFCRVNFUk14RVVCaU1pSmljM0hnRXpNalkxRVNFUkl4RUJTd0h4dWFpYkh6UWREdzFDRWtKSS9nKzZCRHIrS2dIVysyMnFzZ2tKa1FVSVoxOENLZjR3QkRvQUFnQmYvK3NGRUFYRkFCWUFIZ0FBQVNBQUVSVVFBQ01nQUJFMUlUVTBBaU1pQmdjblBnRVRNaEkzSVJVVUZnS0NBVG9CVlA2MCtmN04vc2NEK09UeGRxZE9MenJHNDdYUEIvekR5UVhGL3BiK3pxUCsxLzZPQVZvQlBHODU2Z0VjTUNlR0prSDZ1d0VTMnlQVjlRQUFBQUVBYWYvckJDZ0ZzQUFhQUFBQklUVWhGd0VlQVJVVUJDTWlKRFV6RkJZek1qWTFOQ1lyQVRVRElQMTBBMlVCL21UZzZ2NzAzc1ArN3JxYmdKR2dvYWFPQlJxV2RmNFNEZC9NeTkvVTFYZWRsWHlmanBVQUFBQUJBR24rZFFRb0JEb0FHZ0FBQVNFMUlSY0JIZ0VWRkFRaklpUTFNeFFXTXpJMk5UUW1Ld0UxQXd6OWlBTmxBZjV4MmVUKzlON0QvdTY2bTRDUm9LU21qUU9qbDNYK0VCSGV5TW5nMWROMW5aVjZuNDZWQUFELy93QTYva3NFZEFXd0FDWUFyRVFBQUNZQjA2dEFBQWNCbWdEd0FBQUFBUC8vQUR2K1N3T1dCRG9BSmdEblR3QUFKZ0hUckk0QUJ3R2FBT0VBQUFBQUFBSUFXUUFBQkdNRnNBQUtBQk1BQUFFUk14RWhJaVkxTkRZekFSRWhJZ1lWRkJZekE2cTUvZC90L1B2dUFXaittSnlVbEp3RGJBSkUrbER4eWNqcS9Ta0NRcUI3ZjZnQUFBSUFXUUFBQmw0RnNBQVlBQ0VBQUNFaUpqVTBOak1oRVRNUk56NEJOelltSnpNZUFRY09BU01sRVNFaUJoVVVGak1DUXUzOCsrNEJhTGxhYjNNRUFSOGVzeUVqQWdUcnNQN3QvcGljbEpTYzhjbkk2Z0pFK3VRQkFZeUNUNlZSWnBWS3o5V1ZBa0tnZTMrb0FBSUFaUC9wQm00R0dBQWpBRFFBQUJNUUVqTXlGaGMzRVRNUkJoWXpQZ0UzTmlZbk54NEJCd0lBSXdZbUp3NEJJeUlDTlFFdUFTTWlCaDBCRkJZek1qWTNMZ0UxWk5yTVhvMHpBN2tDWEZHTWxBUUJIeCt6SWlNQ0JQNzF6bm1mS0RhZ2NjbmJBc2NvZGxXVGlJZVNXbmNwQXdJQ0NnRUtBVHBCUGdFQ1NQdEJaSFVCMGI5anhta0JmTGxlL3ZIKzZRSldZVnRhQVJ2dkFUaEFSK3JBRmFyR1RFY1ZIQkFBQUFFQU52L29CZElGc0FBc0FBQUJOQ1lyQVRVek1qWTFOQ1lqSVRVaE1oWVZGQVlISGdFZEFRWVdNejRCTnpZbUp6TWVBUWNLQVNNR0ppY0N3NGg1djR5c2xaS2gvcGtCWi9QNWRYUjRaQUZTU0hxREJBRWZIN1FqSWdJRStiNmdxZ2dCYzNxUWxuMklmWVdXenN4MHBURW9ySU5GVUdBQjFidGp4Mm1JcjF6KzgvN25BNXF1QUFBQkFESC80d1RwQkRvQUxnQUFKUVlXTXo0Qk56WW1Kek1lQVFjT0FTTUdKaWMxTkNZckFTY3pNalkxTkNZaklTY2hNaFlWRkFZSEZSNEJIUUVDNXdFcE5YQjFCQUVnSDdRakl3SUY3TEtMaGdaclo5TUN1M3R5ZG52KytnWUJETkRjWFZ0aFZkVXRMZ0taamsyaVVHaVBTTnZpQTIrRVRFcFBsRlZQVTJDVXBwdFRjU0lESEhkYVRnQUFBQUlBVS83RUE5QUZzQUFoQUNzQUFCTTFNekkyTlRRbUl5RTFJVElXRlJRR0J4NEJIUUVVRmhjVkl5NEJQUUUwSmlNQkZBWUhKejRCUFFFenNLS3ZscEdnL3UwQkUvUDNkSE43YUI4bHZpa1dqSHdDUlZ4U2FUQXV1UUo2bG4rRmdJZVZ6ODV6cERFb3JJU0lSV29qR1NTQ1I0UjZqLzNFWk05SFNFbVJWWmNBQWdCNS9yVUR1UVE2QUNJQUxBQUFFelV6TWpZMU5DWWpJVFVoTWhZVkZBWUhGUjRCSFFFVUZoY1ZJeTRCUFFFMEppTUJGQVlISno0QlBRRXp3dFIrY25KKy91TUJIYy9iWGwxa1Zob2l2eVFTYTJnQ0JseFNhVEF1dVFHNmxGUlJWVjZVcFp0VWN5SURIWUZqWVM5VUZoTVhZalJmVTF2K2RXVFBSMGhKa1ZXWEFBQUFBUUJGLytnSGJ3V3dBQ0VBQUFFUkJoWXpQZ0UzTmlZbk54NEJCd0lBSXdZbUp4RWhFUkFDS3dFMU16SVNHUUVFNVFGY1VZeVRCQUVmSDdNaUl3SUUvdlhOcXJNSS9oblErelVwbW9RRnNQdXBaSFVCMGI5anhta0JmTGxlL3ZIKzZRT3R4QVBCL2ViK2F2NldsUUViQVZBQ3NBQUJBRC8vNkFZNUJEb0FJUUFBQVJFR0ZqTStBVGMySmljekhnRUhEZ0VqQmlZbkVTRVJFQUlyQVQ4Qk1qWTFFUVBxQVZwUWNYWUVBUjhmc3lJakFnVHN0S2l5Q1A2OXFzdzVBeXB1V3dRNi9SOWtkUUc1cVY2OFkzcXJXUG4vQTYzRUFrcit5LzY5L3RXaUFkTDVBY3dBQVFDdC8rZ0hjUVd3QUIwQUFBRVJCaFl6UGdFM05pWW5OeDRCQndJQUl3WW1KeEVoRVNNUk14RWhFUVRtQVZ0UmpKUUVBUjhmc3lJa0FnWCs5YzZwc3dqOU9ibTVBc2NGc1B1cFpYUUIwYjlpeFdzQmY3WmUvdkQrNmdPdHhBRXQvWG9Gc1AxckFwVUFBQUFBQVFDUS8rZ0dUQVE2QUIwQUFBRWhFU01STXhFaEVUTVJCaFl6UGdFM05pWW5NeDRCQnc0Qkl3WW1Kd05EL2dhNXVRSDZ1UUZhVUhGM0JBRWZIN0lqSXdJRTdMV29zZ2dCei80eEJEcitLUUhYL1I5a2RRRzVxVjI4WkgycFYvbi9BNjNFQUFFQWVmL3JCSjBGeFFBaEFBQUZJQUFaQVJBQUlUSVdGd2N1QVNNaUFoVVJGQkl6UGdFM05pWW5NeDRCQndZRUFybisrLzdGQVRzQkJYS3NSVHRFamxhMjBkQzNqNVlFQVJvWnRDWVRBUVQrOEJVQldBRVNBUVlCRVFGWkxDdURJaUwrOThuKytNMysrQUdhamxXeFk3VmxUOXppQUFBQUFBRUFaZi9yQThZRVRnQWhBQUFsUGdFM05DWW5NeDRCRlE0Qkl5SUFQUUUwRWpNeUZoY0hMZ0VqSWdZZEFSUVdBbEZuVWdNTENiSU5EZ1RJcWVuKy9mbmVYNG93TERCM1JwQ09sNEFCVlZjNWVUcEdjRGFpb0FFMTZDcm5BVFVpSUkwYkh1ZWZLcVBsQUFBQUFBRUFKUC9vQlVVRnNBQVpBQUFCSVRVaEZTRVJCaFl6UGdFM05pWW5OeDRCQndJQUl3WW1Kd0lDL2lJRWdQNFlBbHhSakpRRUFTQWZzeU1pQWdUKzljMnB0QWdGR3BhVy9EOWtkUUhSdjJMR2FnRi90MTMrOGY3cEE2M0VBQUFBQUFFQVJ2L29CTGdFT2dBWkFBQUJJVFVoRlNFUkJoWXpQZ0UzTmlZbk14NEJCdzRCSXdZbUp3R3MvcG9EaS82VkFWdFJjWFlFQVI4ZXNpTWpBZ1R0dEttMENBT21sSlQ5czJWMEFadVBUcVZUYXBKSzNlTURyY1FBQUFBQUFRQ2IvK3NGQUFYRkFDa0FBQUVpQmhVVUZqTXlOalV6RkFRaklDUTFORFkzTlM0Qk5UUWtJVElFRlNNMEppTWlCaFVVRmpzQkZRTE12N25MdXFYSnVmNis1Zjc2L3NpS2lYbUVBU01CQmVRQkw3bkdsTHExcWJtM0FwdUFpbnlWblhmVjFON01nYW9xQXk2a2FNclUycmh1anBCMGQ0T1dBQUFBLy84QXN3S01CUEFESVFCR0FZYlpBRk16UUFELy93QzdBb3dGOHdNaEFFWUJocThBWm1aQUFQLy9BQTMrYmdPaEFBQUFKd0JCQUFuL0F3QUdBRUVKQUFBQkFHQUVBZ0Y0QmlzQUNRQUFFelEyTnhjT0FSMEJJMkJjVW1veUxia0VzV1RQUjBkS2tGYXlBQUFBQUFFQU1BUG5BVWNHR0FBSkFBQUJGQVlISno0QlBRRXpBVWRjVW1rd0xya0ZZV1hQUmtoSWtWYTZBQUFBQVFBay90WUJPd0Q2QUFrQUFDVVVCZ2NuUGdFOUFUTUJPMXhTYVRBdXVVOWt6MFpIU1pGVnJnQUFBUC8vQUZBRDV3Rm5CaGdBUndGbUFaY0FBTUFCUUFBQUFQLy9BR0FFQWdLeUJpc0FKZ0ZsQUFBQUJ3RmxBVG9BQVAvL0FEd0Q1d0tHQmhnQUpnRm1EQUFBQndGbUFUOEFBQUFDQUNUKzFnSmtBUG9BQ1FBVEFBQWxGQVlISno0QlBRRXpCUlFHQnljK0FUMEJNd0U3WEZKcE1DNjVBU2xkVW1rd0xycFBaTTlHUjBtUlZhNnJaTTlHUjBtUlZhNEFBQUFCQUVZQUFBUWtCYkFBQ3dBQUFTRVJJeEVoTlNFUk14RWhCQ1QrYkxyK2NBR1F1Z0dVQTZQOFhRT2psd0YyL29vQUFBQUFBUUJYL21BRU5BV3dBQk1BQUNrQkVTTVJJVFVoRVNFMUlSRXpFU0VWSVJFaEJEVCthcnIrY3dHTi9uTUJqYm9CbHY1cUFaYitZQUdnbFFNT2x3RjIvb3FYL1BJQUFBQUFBUUNLQWhnQ0lnUGVBQTBBQUJNME5qTXlGaDBCRkFZaklpWTFpbTFlWUcxdFgxOXRBeGhaYlcxWlBWbHFhbG4vL3dDbUFBQURGd0RGQUNZQUVBUUFBQWNBRUFHNUFBRC8vd0NtQUFBRXRnREZBQ1lBRUFRQUFDY0FFQUc1QUFBQUJ3QVFBMWdBQUFBR0FFVC82d2RYQmNVQUdRQW5BRFVBUXdCUkFGVUFBQUUwTmpNeUZoYytBVE15RmgwQkZBWWpJaVluRGdFaklpWTFBVFEyTXpJV0hRRVVCaU1pSmpVQkZCWXpNalk5QVRRbUl5SUdGUVVVRmpNeU5qMEJOQ1lqSWdZVkFSUVdNekkyUFFFMEppTWlCaFVUSndFWEF6ZWdpa3gwSmlWelRZcWhvSWxPZENVbGMweUxvZjBOb0lxS29aK0tpNkVEZmxKUFRsRlNUMDVSQWNwU1QwMVNVazlPVWZ0RFVrOU9VVk5PVGxIOGFBTEhhQUZsZ2F0QU9UbEFxNEZPZ3FvK09qbytxb0lEZ1lLcnE0Sk5ncW1xZ2Z6TVRXaG5UazVOYUdoTlRrMW9aMDVPVFdob1RRTG1UV2RuVFUxTmFXbE4rOWRCQkhKQkFBQUFBQUVBYkFDYUFpQUR0QUFHQUFBSkFTTUJOUUV6QVI0QkFvMysyUUVualFJbi9uTUJoQk1CZ3dBQkFGa0FtUUlPQTdRQUJnQUFFd0VWQVNNSkFlY0JKLzdaamdFQy92NER0UDU4RS81OEFZMEJqZ0FBQUFFQU93QnZBMm9GSWdBREFBQTNKd0VYbzJnQ3gyaHZRUVJ5UVFBQ0FFZ0NNQU5TQmNVQUNnQVBBQUFCTXhVakZTTTFJU2NCTXdFaEVTY0hBcnFZbUtQK05RUUJ5YW4rUWdFYkF4RURabjI1dVY0Q2Z2MmhBWXNCSWdBQUFRQjZBb3NDK0FXNkFCTUFBQk1YUGdFek1oWVZFU01STkNZaklnWUhFU01SK2g0bGJrbCtocXBLUmpsTUZhb0ZxM3BDUjVPZy9nUUIzV3BhT1RQOXl3TWdBQUFCQUVZQUFBUlJCY1VBSndBQUFRNEJCeUVISVRVelBnRTNJelV6SnlNMU15YzBOak15RmhVak5DWWpJZ1lWRnlFVklSY2hGUUd2QXlBZUF1TUIvRFlLTVRJRHNLc0dwSjRGMjc3SzFicDlhR2wyQlFHbS9tQUZBWndCdmxpWU9aV1ZEYk5wbHBHV2xkRGx6N1I4Y1pTTGxaYVJsZ0FBQUFBREFLZi83QVlNQmJBQUNnQVRBQ3NBQUFFUkl4RWhNaFlWRkFZakp6TXlOalUwSmlzQkpSRXpGU01SRkJZek1qWTNGdzRCSXlJbU5SRWpOVE1SQVdDNUFWL3MvdjdzcHFhYmxaV2JwZ1BRME5BMkx4Z3hGUmthWFM1eGdKdWJBamI5eWdXdzlNbks4NWFuZm4rckp2NzVqZjFxVUQ4SEJvTVJGWTJlQXBhTkFRY0FBQUFCQUUvLzZ3UFVCY1VBS1FBQUFTRVVGak15TmpjWERnRWpJZ0ExSXpVek5TTTFNelUwQURNeUZoY0hMZ0VqSWdZZEFTRVZJUlVoQTVMK0RLNlpPMjAxRWpwM1B1cis2cGFXbHBZQkZPbzhjVVFTTjI0Nm1hd0I5UDRNQWZRQ0FyVE9FUkdZRHhBQkhmcDRxWG9SK1FFZUVBK2FFQlBNc3hONnFRQUFCQUI3LytzRmd3WEZBQnNBS1FBM0FEc0FBQUVVQmlNaUpqMEJORFl6TWhZVkl6UW1JeUlHSFFFVUZqTXlOalVCRkJZek1qWTlBVFFtSXlJR0ZUTTBOak15RmgwQkZBWWpJaVkxRXljQkZ3S3BsWCtDbUplQmdKYUxSMFJGU0VwRlEwWUJFS0dMaWFDaGlvcWdpMUZPVDFKUlRrOVN5Mmo5T1dnRUhtNlFxb0ZOZ2F5U2JUcE9hVTFOVEdoUE9QejVncXFxZ2s2QnE2dUJUV2hvVFU1T1oyaE5BOHBCKzQ1QkFBQUFBQUlBYVAvckEyb0Z4UUFhQUNZQUFBVWlKajBCRGdFak5USTJOeEUwTmpNeUZoMEJGQUlIRlJRV013TTFOQ1lqSWdZVkVUNEJOUUxNek1nelpUZzZaakNZaTNxVng3SmhlaHN1S0RZMFlHQVY3TmdQRGd5dURnNEIzTFRIcVpNcXBQNnpaVnFWbEFQWExGRlBibkgrZ2t6U2N3QUFCQUNyQUFBSVNnWEFBQU1BRVFBZkFDc0FBQUVoTlNFQk5EWXpNaFlkQVJRR0l5SW1OVE1VRmpNeU5qMEJOQ1lqSWdZVkFTTUJJeEVqRVRNQk14RXpDQXo5MHdJdC9aSzNuNSszdHA2aHQ2TmFXMWhhVzFsYVdmNnl1ZjB0QTdtNUF0TUR1UUZyalFKNWw3aTRsM1dZdHJhWVcycHFXM1ZZYkd0Wis0OEVlL3VGQmJEN2hnUjZBQUlBWmdPWEJGd0ZzQUFPQUJZQUFBRWpBeU1ESXhFakVUTWJBVE1SSXdFakVTTVJJelVoQkFJRG16T2dBMXB4cGFkcld2M2trbHVUQVlBRS9QNmJBWEwramdJWi9uQUJrUDNuQWNqK09BSElVUUFBQUFJQW1QL3NCSk1FVGdBVkFCNEFBQ1VPQVNNaUFEVTBBRE15QUIwQklSRWVBVE15TmpjQklnWUhFU0VSTGdFRUZsbTRZZDcrMGdFL3pkTUJIUDBBT1lsUFliWlovcEJMaXpzQ0hEZUlYamc2QVVUdDVnRkwvczdyTC82NE5qZzdQd01xUURyKzZ3RWVOanNBLy84QWIvLzFCazhGc2dBbkFja0FFUUtHQUNjQmRBRUpBQUFBQndIUUEwd0FBQUFBLy84QWEvLzFCdUlGd0FBbkFjc0FBZ0tVQUNjQmRBRzhBQUFBQndIUUE5OEFBQUFBLy84QWJQLzFCeElGcndBbkFjMy8rZ0tPQUNjQmRBSDBBQUFBQndIUUJBOEFBQUFBLy84QWEvLzFCbThGcndBbkFjOEFEUUtPQUNjQmRBRTNBQUFBQndIUUEyd0FBQUFBQUFJQVRQL3JCQzBGN1FBVUFDRUFBQUVFQUJFVkZBQWpJZ0ExTkJJek1oWVhOeTRCSnhNeU5qMEJMZ0VqSWdZVkZCWUI2QUVOQVRqKzU5cmQvdS8xM2w2alBBTXA0cVdQaktvbHJJU1FpcWNGN1V2K1B2Nm5jUHIremdFVDArOEJFVHc1QXNud09Qc3g0N1JsVW0zSm9ZakpBQUFBQVFDcC95b0U1UVd3QUFjQUFBVWpFU0VSSXhFaEJPVzUvVGE1QkR6V0JmRDZFQWFHQUFBQUFBRUFSZjd6QktzRnNBQU1BQUFKQVNFVklUVUpBVFVoRlNFQkEydjl1UU9IKzVvQ1lmMmZCQm44eFFKSUFrSDlTSmFOQXM0QzFJNlcvVUFBQUFFQXFBS01BK3NESVFBREFBQUJJVFVoQSt2OHZRTkRBb3lWQUFBQkFEOEFBQVNZQmJBQUN3QUFBUmN6TndFekFTTURJelVoQWg0VkF4Y0JqcjM5NG8zMnVBRTdBVTlpWWdSaCtsQUNkWmNBQXdCci8rc0h3Z1JPQUJrQUp3QTFBQUFCRkFJaklpWW5EZ0VqSWdJOUFUUVNNeklXRno0Qk16SVNGUVVVRmpNeUVqYzFKZ0lqSWdZVklUUW1JeUlDQnhVV0VqTXlOalVId3ZYUnErdFFVT3VwMC9UMDBhcnNVVkRzcTgvMStXS0hoNVBTSEIzVGs0V0hCZVdJZzVYVEhCdlRsSVdJQWZyay90WFpvYUhaQVNybFJPTUJMZHFnb05yKzArTkVyYzBCR1c4cWJRRVp6NnVyei83bmJTcHYvdWZOclFBQi83VCtTd0tPQmkwQUhBQUFCUlFHSXlJbUp6Y2VBVE15TmpVUk5EWXpNaFlYQnk0Qkl5SUdGUkVCWmFlYklESWREZzVBRTBGSXI2TWlSQ29ZRkN3YldseFpxcklKQ1pFRkNHaGVCUjZ2dVFzS2pBVUdiV1g2NGdBQUFBSUFaUUVhQkJRRCt3QWJBRGNBQUJNK0FUTTJGaGNlQVRNeU5qY2ZBUTRCSXlJbUp5NEJCeUlHQnljRFBnRXpOaFlYSGdFek1qWTNId0VPQVNNaUppY3VBUWNpQmdjbmJ6QjVRMFk5WjFnL1EwRjVMd01KTVhsQ1F6OVlaejFHUW5rdUF4TXdlVU5HUFdkYlBFTkJlUzhEQ1RGNVFrTS9XR3M1UmtKNUxnTURhRVpNQVJjekxSaEtSQUdqUjBzWUxUTVhBVXREQWY3NlJrd0JGek12RjB0RUFhUkhTeGd0TlJZQlRFTUJBQUFBQVFDWUFLUUQyZ1RmQUJNQUFBRXpGU0VESVJVaEJ5YzNJelVoRXlFMUlSTVhBdy9ML3QyT0FiSDk5NE5UWThZQkhZLytWQUlFbUZNRHpaNysvNTdzT3JLZUFRR2VBUkk3QUFBQS8vOEFuZ0FDQStZRWpRQm5BQjRBVmdDeVFBQTVtZ0FIQVliLysvMTJBQUQvL3dDWkFBQUQ3d1NnQUdjQUlBQVRBTVJBQURtYUFBY0Jodi82L1hRQUFBQUNBQ3NBQUFQY0JiQUFCUUFQQUFBQk13a0JJd0VoQVNjakJ3a0JGek0zQWJ5TUFaVCtjSTMrYkFMMC92a1dBeGIvQUFFR0ZnTVdCYkQ5Si8wcEF0Y0NBejQrL2YzOS9qOC9BQUQvL3dESEFMSUJnd1RyQUNjQUVBQWxBTElBQndBUUFDVUVKZ0FBQUFJQWJnSjZBak1FT2dBREFBY0FBQk1qRVRNQkl4RXorNDJOQVRpTmpRSjZBY0QrUUFIQUFBQUJBRnovTHdGWEFPd0FDUUFBSlJRR0J5YytBVDBCTXdGWFMwZHBKaVN4Z0Z5MlAwZy9lMHh2QUFBQUFBSUFId0FBQTgwR0xRQVhBQnNBQURNUkl6VXpOVFEyTXpJV0Z3Y3VBU01pQmgwQk14VWpFU0VqRVRQS3E2dk92a1NDVlI4M2RVSjRhTjNkQWttNnVnT3RqWGU1d3g4ZW1oWWRhSEIzamZ4VEJEb0FBQllBVy81eUIrNEZyZ0FOQUIwQUt3QTdBRUVBUndCTkFGTUFYUUJoQUdVQWFRQnRBSEVBZFFCK0FJSUFoZ0NLQUk0QWtnQ1dBQUFCTkNZaklnWWRBUlFXTXpJMk5RVXlOalUwSmljMVBnRTFOQ1lyQVJFbkZBWWpJaVk5QVRRMk16SVdGUVVVQmlNaUpqVWpGQll6TWpZMUVTTUJFVE1WTXhVaE5UTTFNeEVCRVNFVkl4VWxOU0VSSXpVQk14NEJGUlFHS3dFMUFUVWhGU0UxSVJVaE5TRVZBVFVoRlNFMUlSVWhOU0VWRXpNeUZoVVVCaXNCQlNNMU16VWpOVE1SSXpVekpTTTFNelVqTlRNUkl6VXpBemwvYUdoK2ZtcG9mUUVnWG1jMExTVXFiV2U4bjBoQlEwbElRa0ZLQTdvMktUTTFYV2hkVTJoYytjUnh4QVVveDIvNGJRRTF4QVhzQVRadi9Ob0ZNREkwTTM0QlRnRVcvVnNCRmYxY0FSUUNDZ0VXL1ZzQkZmMWNBUlM4WFQ0NE9qeGQvUEZ4Y1hGeGNYRUhJbTl2YjI5dmJ3SkVZbmw1WW5Ca2QzZGsyRTVOTGtRTkF3NDhLRXhLL2R2WVIweE1SM0JGVGs1Rm15dzJMQzlUVVZ0UUFYcjdUd0U3eW5GeHl2N0ZCaDhCSFhTcHFYVCs0Nm44dGdJdEp5a3FxUU5LZEhSMGRIUjArVGh4Y1hGeGNYRUVXeDhvS1NlVy9INzYvQlg1ZnZ4Kyt2d1YrUUFBQUFBRkFGejkxUWZYQ0dJQUF3QWRBQ0VBSlFBcEFBQUpBd1UwTmpjK0FUVTBKaU1pQmdjelBnRXpNaFlWRkFZSERnRVZGeU1WTXdNekZTTURNeFVqQkJnRHYveEIvRVFFRHhrcFNWMm1sb3VsQXNzQk9pdzNPaklyVURyS3lzcExCQVFDQkFRR1V2d3gvREVEei9FMk94c29nRkNEbElHSk5ETStOakpOSERsV1dsdXEvVXdFQ28wRUFBQUFBQUVBWFAvdkE2UUVqUUFlQUFBYkFTRVZJUU0rQVRjMkZoVVVCaU1pSmpVM0ZCWXpNalkxTkNZaklnWUhpRWNDb2Y0QUl5aHhQN2ZJek4yMTZybDlhWHgwY21wc1pSa0IrUUtVbnY3Qkd5VUNBOGE4dHM2ZnBBNVhaM3h6YjMwNU9BQUFBQUFDQUZjQUFBTWtBeUVBQ2dBUEFBQUJNeFVqRlNNMUlTY0JNd0V6RVNjSEFxS0NncUgrWFFjQnBxWCtZL3dERWdFWWZwcWFZZ0lsL2ZjQlJnRWZBQUFBQWdCei8rc0VEUVhGQUEwQUd3QUFBUkFDSXlJQ0dRRVFFak15RWhFbk5DWWpJZ1lWRVJRV016STJOUVFOOGR2YTlQTGEyL082aTRtSmlveUppWWtDTFA3ai90d0JKUUVjQVZjQkhBRW0vdHIrNUNqRXdNREUvbHZFd3NER0FBQUFBZitpL3Q4Q3pBTkJBQThBQUFNeklBQVJFQUlqSnpJMk5TNEJLd0ZlMVFFZkFUYnY2Z0tjaFFITHo5VURRZjdWL3VyKzkvN29rYzNEMGRFQUFmKzIva3NCWndDWUFBOEFBQ1VWRkFZaklpWW5OeDRCTXpJMlBRRUJaNmViSURJZERnNC9GRUpIbVBHcXNna0ptZ1VIWDEzeEFBQUJBQnYrWmdIQ0FFQUFFd0FBTng0QkZSUUdJeUltSnpjZUFUTXlOalUwSmlmNFptUi9aRU5iSmg4ak1DTTlORVE5UURTTVRXSnJHUk4zRFE0d0tqSldNQUFBQUFFQVovNlpBU0VBbWdBREFBQUJJeEV6QVNHNnV2NlpBZ0VBQUFBQ0FJTUUyUUxTQnM0QURRQWhBQUFCRkFZaklpWTFNeFFXTXpJMk5STVVCaU1pSmlNaUJoVW5ORFl6TWhZek1qWTFBdEtlaVlxZWxrVk5TMGFOWGtnNmVTb2pMMU5jU1MrREt5SXhCYTVoZEhSaE5rSkROUUVKVEdkTU15WVZTbXRNTXlZQUFnQ0JCT0FDeWdjQ0FBMEFIUUFBQVJRR0l5SW1OU01VRmpNeU5qVWxKejRCTlRRbUl6Y3lGaFVVQmc4QkFqZEdTMDFHa3B5SmlKeitwQUZNUUZkSkI0K1ZVMElCQmJBMFFFQTBYM0Z4WHhCOEF4a2VIeDFRVEVNM053YytBQUFBQWdDQkJOOEM0QWFKQUEwQUVRQUFBUlFHSXlJbU5UTVVGak15TmpVbk13Y2pBdUNpalkraG1FaFFUVWxnbWFSbUJiQmdjWEZnTlVCQk5ObkdBQUFBQUFJQWJRVGtBMElHMGdBSUFCd0FBQUVISXljSEl5Y2xNemNVQmlNaUppTWlCaFVuTkRZek1oWXpNalkxQTBJQnBjWEZwQUVCS1lQRFhrTTJieWNnTTAxZFF5dDVLQjgwQk9jRG41OEQ4T1UvWFVnd0hCTStZa1lzSFFBQUFnQnBCT1FEN0FiT0FBWUFGZ0FBQVNNQk16Y1hNeThCUGdFMU5DWWpOeklXRlJRR0R3RUNOYnorOEtuRnhhcFRBVVUzVFVBRmY0ZExPd0VGNmY3N3VycUpnd1FaSWlNZ1hGWkxQejRIUEFBQy8xNEUwZ05HQm9BQUJnQUtBQUFCSXljSEl3RXpCU01ETXdOR3hhcXF4QUVpbVA2UGpNakhCTktmbndFRldBRUJBQUFBQWdCdUJPUUVXQWFTQUFZQUNnQUFBVE1CSXljSEl3RXpBeU1Ca3BnQklzV3Bxc1lESXNqSmpRWHAvdnVmbndHdS92OEFBQUlBV3dTbkF2OEdlUUFOQUJFQUFBRVVCaU1pSmpVekZCWXpNalkxQnlNbk13TC90WjJldEpaWVpHRmFaNWZTMkFXd2VaQ1FlVU5SVWtJRnpnQUFBQUFCQUo4RWtBRndCaGNBQlFBQUV6Y3pCeFVqbjNOZUdMa0ZJL1Q5aWdBQUFBSUFLUUFBQklNRWpRQUhBQW9BQUFFaEF5TUJNd0VqQVNFREExcjkrR25BQWRhdkFkVy8vY2NCbHN3QkVQN3dCSTM3Y3dHa0FnMEFBd0NiQUFBRUNRU05BQThBR0FBaEFBQXpFU0V5RmhVVUJnY1ZIZ0VWRkFZakFSRWhNalkxTkNZakpUTXlOalUwSmlzQm13R0sxK2RjVm1aeTJNZis2d0VWYzNKemN2N3IwSUtEZllqUUJJMmNvVmFCSUFNWWxHS2twQUlML29oZlcxcGtpVmxaV1VjQUFBQUFBUUJ5Lys4RUpBU2RBQnNBQUFFT0FTTWlBRDBCTkFBek1oWVhJeTRCSXlJR0hRRVVGak15TmpjRUl3NzB6dEwrOFFFUDB0VHZEcm9PaG9PQ3BhV0NnNFVPQVk3UXp3RWI1cXpsQVJ6T3o0cC96Wit0b001L2pRQUFBQUFDQUpzQUFBUXRCSTBBQ1FBVEFBQXpFU0V5QUIwQkZBQWpBeEV6TWpZOUFUUW1JNXNCb3RVQkcvN2wxZWpvaExLeWhBU04vdmZWMHRiKytRUDUvSnE3ajlPT3V3QUFBQUFCQUpzQUFBUEhCSTBBQ3dBQUFTRVJJUlVoRVNFVklSRWhBM0Q5NVFKeS9OUURMUDJPQWhzQ0ZmNStrd1NObFA2d0FBQUFBUUNiQUFBRHlBU05BQWtBQUFFaEVTTVJJUlVoRVNFRGNmM2t1Z010L1kwQ0hBSDQvZ2dFalpUK2xBQUJBSEwvN3dSSEJKMEFId0FBSlE0Qkl5SUFQUUUwQURNeUZoY0hMZ0VqSWdZZEFSUVdNekkyTnpVaE5TRUVSeTdzdCtyKzVnRWI1TjdoRXJnT2g0U1NzN0daYjRzZi92Z0J3SjFDYkFFRjJmUFhBUWJCcVFGdGFyaVE5Sk80TEIzOGxRQUFBUUNiQUFBRVZRU05BQXNBQUNFakVTRVJJeEV6RVNFUk13UlZ1djI2dXJvQ1Jyb0I3djRTQkkzOTlRSUxBQUFBQVFDYkFBQUJWQVNOQUFNQUFDRWpFVE1CVkxtNUJJMEFBUUJCLys4RGNRU05BQThBQUFFekVSUUdJeUltTlRNVUZqTXlOalVDdWJqZHNjWGR1blp5WFhrRWpmelVyY1d2c21wa2VXWUFBQUFCQUpzQUFBUkFCSTBBREFBQUFTTVJJeEV6RVRNQk13a0JJd0crYWJxNld3R04zLzR6QWZIcUFmaitDQVNOL2dJQi92M1AvYVFBQUFFQW13QUFBMm9FalFBRkFBQWxJUlVoRVRNQlZRSVYvVEc2azVNRWpRQUFBUUNiQUFBRlVBU05BQTRBQUNVQk14RWpFU2NCSXdFSEVTTVJNd0w1QVhEbnVRUCtwWUQrbndPNjhQSURtL3R6QTBZQi9Ma0RXUUg4cUFTTkFBQUFBQUVBbXdBQUJISUVqUUFMQUFBaEl3RUhFU01STXdFM0VUTUVjcmo5bmdPNnVnSmlBN2dEYndIOGtnU04vSkFCQTI4QUFBQUNBSEwvN3dSWEJKMEFEUUFiQUFBQkZBQWpJZ0E5QVRRQU16SUFGU2MwSmlNaUJoMEJGQll6TWpZMUJGZis4ZVBqL3ZBQkQrTGpBUkc1cHBXVW82U1ZsYVFCOE92KzZnRVg2cXpwQVJqKzZPa0JyNzIrcnEyd3ZyMnhBQUlBY3YrTEJKb0VuUUFUQUNFQUFBRVVCZ2NYQnljT0FTTWlBRDBCTkFBek1nQVZKelFtSXlJR0hRRVVGak15TmpVRVZ6WTByWCt1TzRKTDQvN3dBUS9pNHdFUnVhYVZsS09rbFpXa0FmQmxwMEtvYjZjaUlRRVg2cXpwQVJqKzZPa0JyNzIrcnEyd3ZyMnhBQUlBbXdBQUJEb0VqUUFiQUNRQUFBRVJJeEVoTWhZVkZBWUhGUjRCSFFFVUZoY1ZJeTRCUFFFMEppTWxJVEkyTlRRbUl5RUJWYm9CeTgvYllGOW5XQklZdnhnTWEyZiswQUVSZjNGeWZ2N3ZBZUwrSGdTTnNLVmJmU1VESG8xclpUTmZHQk1hYXpsalhXU1ZYbHhmYVFBQkFGMy83d1FOQkowQUpRQUFBVFFtSnk0Qk5UUTJNeklXRlNNMEppTWlCaFVVRmhjZUFSVVVCaU1pSkRVekZCWXpNallEVkh1cjRzYnQwTlhvdVlkOWhJQnl1ZHpIK2QzTi92TzVwbnVLa3dFdlNWY3JQSkNYbGF1NHIyQnpYazFNVUMwN2w1T2NwYWkvY0dSZkFBQUFBUUJIQUFBRHp3U05BQWNBQUFFaEVTTVJJVFVoQTgvK2xibituQU9JQS9uOEJ3UDVsQUFBQUFFQWpQL3ZCSEFFalFBUkFBQUJFUlFFSXlJa05SRXpFUlFXTXpJMk5SRUVjUDd3NHVIKzc3aXNqcENxQkkzOUFjZlkyTWNDLy8wQmdJeU1nQUwvQUFBQkFDb0FBQVI5QkkwQUNRQUFBUmN6TndFekFTTUJNd0k2R1FNWUFVbkcvaTJ1L2k3SEFTQlpWd052KzNNRWpRQUJBRUVBQUFYQUJJMEFFd0FBQVJjek54TXpFeGN6TnhNekFTTURJd01qQVRNQnd3TURBOSt0NEFNREE3akgvdGVzNlFQcXEvN1h4Z0VKRkJZRGd2eDhGQllEZ3Z0ekEyejhsQVNOQUFBQUFBRUFPQUFBQkQ0RWpRQUxBQUFKQVRNSkFTTUpBU01KQVRNQ09RRWcyLzUxQVpYWi90YisyZHdCbHY1ejJnTFhBYmI5di8yMEFiLytRUUpNQWtFQUFBQUJBQ0FBQUFRd0JJMEFDQUFBQ1FFekFSRWpFUUV6QWlnQk9ORCtVcm4rVjlBQ1FnSkwvUTMrWmdHakF1b0FBQUFCQUU0QUFBUFlCSTBBQ1FBQUpTRVZJVFVCSVRVaEZRRXlBcWI4ZGdLTS9aWURVSk9UY2dPSGxHNEFBQUlBZS8vdkEvWUVuUUFOQUJzQUFBRVVCaU1pSmpVUk5EWXpNaFlWSnpRbUl5SUdGUkVVRmpNeU5qVUQ5dkhMemZMd3pjenl1WXA3ZW9xTWVucUpBWnZKNCtQSkFWZkk0K1RIQVlHVmxZSCtxSUtYbDRJQUFBQUJBRUlBQUFITEJKMEFCUUFBSVNNUkJ6VWxBY3U1MEFHSkE5TURpRVVBQUFFQVdnQUFBM0FFblFBWUFBQXBBVFVCUGdFMU5DWWpJZ1lWSXpRMk16SVdGUlFHQndFaEEzRDg5UUdiYVVSZVhXeHp1ZHU5c2NSMG52NzRBaU9UQVpobGNVQlljSE5ZbDhpenEyK1dvZjc2QUFBQUFBRUFXZi92QTUwRW5RQW9BQUFCTWpZMU5DWWpJZ1lWSXpRMk16SVdGUlFHQng0QkZSUUdJeUltTlRNVUZqTXlOalUwSmlzQk5RSCtibVZ2YjF0MXVkK3F3TmhmVjJObDZjR3I3N2g4Wm5GL2NYU25BcHBnVjFCb1lVdVRyYW1pVTRNbklvaG1wTEtwcWxKdWJWWm1YNUFBQUFBQUFnQkhBQUFFRVFTTkFBb0FEZ0FBQVRNVkl4VWpOU0VuQVRNREVTY0JBMG5JeUxuOXV3UUNRc0M1QS82SUFZS1Y3ZTEyQXlyODlRSVJBZjN1QUFBQUFBRUFYUUFBQkNNRnhRQVlBQUFwQVRVQlBnRTFOQ1lqSWdZVkl6UTJNeklXRlJRR0J3RWhCQ1A4VmdIZGhGcUJjSnlSdWY3b3h1V01nLzU1QXN1REFoT1NwMXB5bEpxUncvN2d0WG5wa1A1WEFBQUFBQUlBZXYvdkE5SUVuUUFhQUNjQUFBRXlGaGNITGdFaklnWWRBVDRCTXpJV0ZSUUdJeUltTlJFMEpCTWlCZ2NWRkJZek1qWTFOQ1lDVFVTUlFoODdiMHgrblRPUFhMM0Q2c0M5OFFFS3BseDlIWWhzYjRKekJKMGJHSThaRmFPQ2NUYzh3N2F0MGZUSUFUZkg5UDIwUWpvcWdxZUdaVzEzQUFFQVJ3QUFBMk1FalFBTUFBQUJCZ0lSRlNNMUVCSTNJVFVoQTJQQm9ybmtrZjJMQXh3RCtldit4djdsdWJrQkZRR1NtWlFBQUFBQUF3QmMvKzhEeFFTZEFCY0FJd0F2QUFBQkZBWUhIZ0VWRkFZaklpWTFORFkzTGdFMU5EWXpNaFlETkNZaklnWVZGQll6TWpZRE5DWWpJZ1lWRkJZek1qWURvbVJaYVhmeHU4VDVlVzFkWitTMXJkNlhqV2R1bEpOeFo0c2plbGRpZm9CaVdIY0RYVm1ESlNlT1lhU3pzNlJoamljbGcxbWJwYVg5VWxkd2IxaGJiVzBDYWs1aVgxRlFaR1FBQUFBQUFnQkwvKzhEblFTZEFCb0FKd0FBSlRJMlBRRU9BU01pSmpVME5qTXlGaFVSRkFZaklpWW5OeDRCRXpJMk56VTBKaU1pQmhVVUZnSGVjNUl2Z0UzRzF1ckF2T3o2eFVTUlJCMDljbHhkZlJ5SGFXeUNkb0tVYzNvMU5jeXhxdDMweC82b3VPTWFHSkFhRlFHbFNqZzVnS2VUWUdxRkFBQUFBUUJlQUFBQmhBTXNBQVVBQUNFakVRYzFKUUdFcElJQkpnS1VBWUlYQUFBQkFIRUFBQUxHQXl3QUdBQUFLUUUxQVQ0Qk5UUW1JeUlHRlNNME5qTXlGaFVVQmc4QklRTEcvYlFCTDBnc09qOUlTcUdrajRpVVYzV29BWHArQVFnK1NpdzBQMEUxYVl4OWRsQnRiSklBQUFFQWFmLzFBdUFETEFBb0FBQUJNalkxTkNZaklnWVZJelEyTXpJV0ZSUUdCeDRCRlJRR0l5SW1OVE1VRmpNeU5qVTBKaXNCTlFHblNFRkpTanRLb3FlQWtxTkZQMGhLc0pPQXRLTk5SRTFVU2syREFkVTZOaTQ2TWlwbGRuVndPRm9hR0YxR2NYcDBkVEU2T3pOQk9Yb0FBQUFBQVFCS0FBQUNJd1d3QUFVQUFDRWpFUVUxSlFJanVmN2dBZGtFM0FoM1pRQUJBSEwvOVFMeEF5RUFIZ0FBR3dFaEZTRUhQZ0UzTmhZVkZBWWpJaVkxTnhRV016STJOVFFtSXlJR0I1TXpBZ0Qra0JrZFVDNkdrNXVuaXJPaFZFaFVURTVIUlVVUUFWb0J4NEcvRWhrQkFvNkNmWTF0Y0Fzek4wVkdSVkVqSUFBQ0FIdi85UU1BQXl3QUdnQW5BQUFCTWhZWEJ5NEJJeUlHSFFFK0FUTXlGaFVVQmlNaUpqMEJORFlUSWdZSEZSUVdNekkyTlRRbUFkMDJhaXdkS0ZBMVYyc2taa0tHa2JHUmo3VElna05XRDFsSVMxWk1BeXdURUhzUUQxOVJSeVFvaVgxM2tLZUsxb3FtL2xrdEtBcFJZa3MrUTBZQUFBQUJBRjRBQUFLb0F5RUFEQUFBQVE0QkhRRWpOVFFTTnlFMUlRS29pbTZpbUYzK1d3SktBcUtneDd4L2Y3c0JFVmQvQUFBQUF3QnkvL1VEQXdNc0FCY0FJd0F2QUFBQkZBWUhIZ0VWRkFZaklpWTFORFkzTGdFMU5EWXpNaFlETkNZaklnWVZGQll6TWpZRE5DWWpJZ1lWRkJZek1qWUM2MGhBU2xhMGpwUzdXRTVEU3F5SmhLZUpYa1JLWTJKTVJWd2FUVHRCVWxSQU9VNENVRHhhR3h4aVFISjZlbkpBWWh3YldqeHJjWEgrTERaRFF6WTNQVDBCbUM4Mk5ERXdPam9BQUFBQUFnQnAvL1VDNkFNc0FCb0FKd0FBSlRJMlBRRU9BU01pSmpVME5qTXlGaDBCRkFZaklpWW5OeDRCRXpJMk56VTBKaU1pQmhVVUZnR1dUV0VnVmpLVG9MQ1JpN08rbEROc014c3JVMGcvVWc1WlJrZFRUWE5WUmt3aklvNThkWmlwaWV0L214RVJleEVPQVJnd0pCdFFZMVE2UkZBQUFBQUFBZ0I4Ly9VREd3TXNBQTBBR3dBQUFSUUdJeUltUFFFME5qTXlGaFVuTkNZaklnWWRBUlFXTXpJMk5RTWJ0cG1hdHJXWm1yZWpYRkpTV2x0VFVsb0JHNHFjbklycmlaMmRpUUZQVjFkUDdGRlhWMUVBQVFDUEFvd0RDd01oQUFNQUFBRWhOU0VEQy8yRUFud0NqSlVBQUFNQW5nUkNBbXNHY3dBRUFCQUFIQUFBQVRNWEJ5TUhORFl6TWhZVkZBWWpJaVkzRkJZek1qWTFOQ1lqSWdZQnNia0IyWEtDWTBsSFlHQkhTV05WTWlVak1EQWpKVElHY3dPMTEwaGVYVWxKV1ZwSUpEQXdKQ1l5TXdBQUFnQnZCSEFDdmdYV0FBVUFEd0FBQVJNekZRTWpKVFEyTnhjT0FSMEJJd0dHZE1UZldmN3BXbGhKTENlb0JJTUJRaFgrd2xSWGl5NDZMbWRIVUFBQUFBRUFYdi9yQS9vRnhRQW9BQUFCTXpJMk5UUW1JeUlHRlNNME5qTXlGaFVVQmdjZUFSVVVCQ01pSkRVekZCWXpNalkxTkNZckFRR0dwNHB6Zm9GNWpybjJ5czdxYm5DSGJ2OEF6c3IrL0xxU2dvV1FoSkNuQXpDRWVJR0NpSFN0NWRQS1hiQXdLN1oxeTkvVndYZUtoNHFMZ0FBQUFnQTVBQUFFVVFXd0FBb0FEd0FBQVRNVkl4RWpFU0UxQVRNQklSRWpCd09FemMyNC9XMENoOFQ5ZlFITEF4c0I2SlgrclFGVGF3UHkvRGdDeVVZQUFBRUFtdi9yQkJFRnNBQWVBQUFiQVNFVklRTStBVGMyRWhVVUFpTWlKalV6RkJZek1qWTFOQ1lqSWdZSHNWUUMxZjNITURCeVVjcmo1T1c4OHErTGRJU01qWUI2YkJvQ2tRTWZxZjVjSlMwQ0F2Nzc1T0QrKzhmTmZJT3ZuNUd6Umt3QUFBQUNBSWYvNndRekJjVUFHZ0FuQUFBQk1oWVhCeTRCSXlJR0hRRStBVE15RWhVVUFpTWlBQmtCRUFBVElnWUhGUlFXTXpJMk5UUW1BcDlNa1RJb05HbEtvTDlBcFdUSDQvUFEyUDd2QVRDcGFwRWxxb2FBaXBJRnhTSWJrUm9lOWM0alBFSCs5OVhsL3VnQkx3RWVBUjhCR3dGVC9YTlZTblBPMk15Y2xyb0FBQU1BSHY1S0JCRUVUZ0F2QUQ4QVRRQUFBU01lQVIwQkZBWWpJaVluRGdFVkZCWTdBVElXRlJRRUl5SW1OVFEyTnk0Qk5UUTJOeTRCUFFFME5qTXlGaGNoQVNJbUp3NEJGUlFXTXpJMk5UUW1Jd0VVRmpNeU5qMEJOQ1lqSWdZVkJCR1pIaC90dlN0Skl4a2NRenl0eXRIKzNQVGU4bUZTSEIwL05WVmE2OEVvU3lRQmIvMk1GU1lUTlVHTGpLQy9aSDcrcTRkdWE0YUdiVzZGQTZvcllEY1dtY3dLQ3hRMEl5NG1qNWFBMUo1NFhJRXFGenNvUm1FbU1aZGNGcC9IQ2dyNzlBSUVHRnc5U0Z4NFIwdEZBcVJWZTN0VkZsaDRlRmdBQUFBQkFEc0FBQVA4QmJBQURBQUFBUW9CQXdjak54b0JFeUUxSVFQOC83WW5EN29QS2VmUC9QWUR3UVVhL3NIK0cvNmptWmtCWWdJWEFRaVdBQUFCQUZyK1RBUkhCRWtBSXdBQUV6SVdGeHNCTXdFVEhnRXpNalkzQnc0Qkl5SW1Kd01CSXdFRExnRWpJZ1lqSno0QnduOXVPM1AvdS82ZzBTRkJMUTRPRkFJTEpBNXZjMEtQL3VmRUFZT29JMU0rQ3pjQ0FSVThCRW1KZ3Y3NEFnVDlMLzRoUzAwQ0E1d0dDWG1XQVVmOXZ3TVFBWVJXWWdXU0JRb0FBd0JtLytzRUdBWEZBQmdBSkFBd0FBQUJGQVlISGdFVkZBUWpJaVExTkRZM05TNEJOVFEyTXpJV0F6UW1JeUlHRlJRV016STJBelFtSXlJR0ZSUVdNekkyQS9CL2I0R1YvdjdXMnY4QWtYOXRldW5HdysrUm9uK0NuWnVHZ1o0cGltNXdob2R4YjRjRU5YV3BLeTI0ZnMzUjBNNSt1U3dES2FsMHhNek4vSlY3bXBsOGdJMk9BeU53am9sMWM0YUdBQUFBQUFJQVpQL3JCRmdFVGdBVUFDSUFBQ1VqRGdFaklnSTlBUkFTTXpJV0Z6OEJNd01USXdFVUZqTXlOamMxTGdFaklnWVZBNE1ETmJlTXlkdmF6SW0xTlFNaHNHcHhzUDExaDVKM2dpSWFobm1UaU90K2dnRWI3eFVCQ2dFNmdIc0I1djNpL2VRQjlhckwwN1Vtck43dHdRQUNBR0QvNndRbkJiQUFHd0FzQUFBQkZTRWVBUmNXRWgwQkZBQWpJZ0E5QVRRU056b0JNemNtSkNjMUV4UVdNekkyUFFFMEppY3VBU01pQmhVRHRQNDBISFJNc2JML0FPUGsvd0R6MmdrVUNnRVcvdWc1TEpXVmxKWm5TeGN3SEorZ0JiQ1NIMlpBbmY3M254anQvdHdCSk8wWXdBRUdHQUlVOWtCeS9FeW8xTlduR0hPMU5RWUd6SjBBQUFJQXRnQUFCTFlGc0FBSkFCTUFBRE1SSVNBQUVSVVFBQ0VERVRNeU5qMEJOQ1lqdGdGM0FWZ0JNZjdQL3FpK3Z2blgxL2tGc1A3Vy9zdnovc3YrMXdVYSszdmU2L2JvM2dBQUFBQUNBSEwvNndQc0JFNEFId0FxQUFBaExnRW5EZ0VqSWlZMU5EWTdBVFUwSmlNaUJoVWpORFl6TWhZVkVSUVdGeVV5TmpjMUl5SUdGUlFXQXkwSkNRSTdyR2l2cWZyanlIWjFkM081MGR6TnpRd1EvZmxvcGlUT2tveFZLenNmUkZhZHBLdWhpV0JYWDB1RnU1eXovZHM2YWphS1VUdmlhMlZPVUFBQUFnQzFBQUFFOGdXdkFBNEFGd0FBQVJRR0J3RVZJd0VoRVNNUklUSVdBU0V5TmpVMEppTWhCSmVIZkFGZXovN0Evb3U1QWZyditmelhBVWFXbEpPYy9yOEVDNExETVAxOEVnSnEvWllGcjliK0pvdURmNDRBQUFFQXRnQUFCUjBGc0FBTUFBQUJCeEVqRVRNUk53RXpDUUVqQWhhbnVibW9BZXZWL2J3Q2l1Z0NyYkgrQkFXdy9TYTJBaVQ5Zy96TkFBQUFBQUVBa2dBQUJCUUdHQUFNQUFBQkJ4RWpFVE1STndFekNRRWpBY04zdXJwckFWVGUvbFFCMTlzQjhueitpZ1lZL0VONUFXYitPZjJOQUFBQUFBRUF0Z0FBQlBrRnNBQUxBQUFCRVNNUk14RXpBVE1KQVNNQmI3bTVEQUp1NS8xakFzYmtBcmY5U1FXdy9YZ0NpUDA4L1JRQUFBQUFBUUNTQUFBRDhRWVlBQXdBQUFFakVTTVJNeEV6QVRNSkFTTUJVUVc2dWdFQml2RCtLZ0lBNUFIMC9nd0dHUHh6QWEvK0RmMjVBQUFDQUZULzZ3UDlCY1VBR3dBb0FBQWxNalk5QVNjT0FTTWlBalUwQURNeUFCa0JFQUFqSWlZbk54NEJFekkyTnpVMEppTWlCaFVVRmdIL2xxNERNSlplMS9FQkFzRG1BUUgrNnVoUG0wSWRQMzV2Y3BRaGxaSjBtbzZBMXRvc0FVbEtBUVB4NkFFZi91cis1LzZjL3VEKzJSd2ZrQjRZQWQ5Z1RaekZ3c3lsb2I0QUFBQUNBSnNBQUFRWkJJMEFDZ0FUQUFBQkVTTVJJVElXRlJRR0l5VWhNalkxTkNZaklRRlZ1Z0hQek9QaXpmN3JBUlY3ZW5wNy91c0JwdjVhQkkzTnA2bktsSDllWUlJQUFQLy9BSUVFcFFMWUJiQUNCZ0NjQUFELy93QUFBQUFBQUFBQUFnWUFBd0FBLy84QUpRSWhBZzBDdGdJR0FBOEFBQUFDQUM0QUFBVUZCYkFBRFFBYkFBQXpFU00xTXhFaElBQVJGUkFBSVJNaEVUTXlFajBCTkNZaklSRWgxS2FtQWJzQklnRlUvcWorMEMzKzQvRG81dUxhL3Y0QkhRS2FsUUtCL3FiKzVNWCs0djZwQXByOSt3RUYyOGZmLy80VkFBQUNBQzRBQUFVRkJiQUFEUUFiQUFBekVTTTFNeEVoSUFBUkZSQUFJUk1oRVRNeUVqMEJOQ1lqSVJFaDFLYW1BYnNCSWdGVS9xaiswQzMrNC9EbzV1TGEvdjRCSFFLYWxRS0IvcWIrNU1YKzR2NnBBcHI5K3dFRjI4ZmYvLzRWQUFBQkFBWUFBQVFZQmhnQUhBQUFBU0VSRno0Qk16SVdGUkVqRVRRbUl5SUdCeEVqRVNNMU16VXpGU0VDZ3Y3bkF6ZWlaN0c3dVhSM1Y0Z3N1cW1wdWdFWkJOTCsxUUZRV016ZC9Wc0NwNDJBVWtqODVnVFNsYkd4QUFBQUFBRUFPd0FBQklvRnNBQVBBQUFCSXhFakVTTTFNeEVoTlNFVklSRXpBNXpkdWVibS9qVUVULzQxM1FNMi9Nb0ROcFVCVDVhVy9yRUFBZi9qLyt3Q1h3VkJBQjhBQUFFUk14VWpGVE1WSXhFVUZqTXlOamNYRGdFaklpWTFFU00xTXpVak5UTVJBWExRME8zdE5pOFlNUlVaR2wwdWNZRFYxWnViQlVIKytZMitsZjY5VUQ4SEJvTVJGWTJlQVVPVnZvMEJCLy8vQUNjQUFBVWlCeUlDSmdBakFBQUFCd0JDQVJRQlhmLy9BQ2NBQUFVaUJ4OENKZ0FqQUFBQUJ3QnpBYzRCV2YvL0FDY0FBQVVpQjBZQ0pnQWpBQUFBQndDYUFOQUJYZi8vQUNjQUFBVWlCMUVDSmdBakFBQUFCd0NnQU1vQllQLy9BQ2NBQUFVaUJ3d0NKZ0FqQUFBQUJ3Qm9BS29CWFAvL0FDY0FBQVVpQjRnQ0pnQWpBQUFBQndDZUFWRUJxUC8vQUNjQUFBVWlCNThDSmdBakFBQUFCd0hVQVdFQkxQLy9BSVArUkFUSkJjVUNKZ0FsQUFBQUJ3QjNBZHYvOS8vL0FMWUFBQVIxQnlJQ0pnQW5BQUFBQndCQ0FPQUJYZi8vQUxZQUFBUjFCeDhDSmdBbkFBQUFCd0J6QVpvQldmLy9BTFlBQUFSMUIwWUNKZ0FuQUFBQUJ3Q2FBSndCWGYvL0FMWUFBQVIxQnd3Q0pnQW5BQUFBQndCb0FIWUJYUC8vLzl3QUFBRjhCeUlDSmdBckFBQUFCd0JDLzQwQlhmLy9BTU1BQUFKa0J4OENKZ0FyQUFBQUJ3QnpBRVlCV2YvLy8vSUFBQUpQQjBZQ0pnQXJBQUFBQndDYS8wa0JYZi8vLzh3QUFBSjFCd3dDSmdBckFBQUFCd0JvL3lNQlhQLy9BTFlBQUFUK0IxRUNKZ0F3QUFBQUJ3Q2dBUHNCWVAvL0FJTC82d1VOQnpjQ0pnQXhBQUFBQndCQ0FUUUJjdi8vQUlMLzZ3VU5CelFDSmdBeEFBQUFCd0J6QWU0QmJ2Ly9BSUwvNndVTkIxc0NKZ0F4QUFBQUJ3Q2FBUEFCY3YvL0FJTC82d1VOQjJZQ0pnQXhBQUFBQndDZ0FPb0JkZi8vQUlMLzZ3VU5CeUVDSmdBeEFBQUFCd0JvQU1vQmNmLy9BSmIvNndUWEJ5SUNKZ0EzQUFBQUJ3QkNBU1lCWGYvL0FKYi82d1RYQng4Q0pnQTNBQUFBQndCekFlQUJXZi8vQUpiLzZ3VFhCMFlDSmdBM0FBQUFCd0NhQU9JQlhmLy9BSmIvNndUWEJ3d0NKZ0EzQUFBQUJ3Qm9BTHdCWFAvL0FCNEFBQVRUQngwQ0pnQTdBQUFBQndCekFhQUJWLy8vQUhMLzdBUHNCZUFDSmdCREFBQUFCd0JDQUpZQUcvLy9BSEwvN0FQc0JkMENKZ0JEQUFBQUJ3QnpBVkFBRi8vL0FITC83QVBzQmdRQ0pnQkRBQUFBQmdDYVVoc0FBUC8vQUhMLzdBUHNCZzhDSmdCREFBQUFCZ0NnVEI0QUFQLy9BSEwvN0FQc0Jjb0NKZ0JEQUFBQUJnQm9MQm9BQVAvL0FITC83QVBzQmtZQ0pnQkRBQUFBQndDZUFOTUFadi8vQUhMLzdBUHNCbDRDSmdCREFBQUFCd0hVQU9QLzYvLy9BR0grUkFQeUJFNENKZ0JGQUFBQUJ3QjNBVVgvOS8vL0FHTC83QVBwQmVFQ0pnQkhBQUFBQndCQ0FKc0FIUC8vQUdMLzdBUHBCZDRDSmdCSEFBQUFCd0J6QVZVQUdQLy9BR0wvN0FQcEJnVUNKZ0JIQUFBQUJnQ2FWeHdBQVAvL0FHTC83QVBwQmNzQ0pnQkhBQUFBQmdCb01Sc0FBUC8vLzdVQUFBRlZCY3NDSmdDS0FBQUFCd0JDLzJZQUJ2Ly9BSnNBQUFJOUJjZ0NKZ0NLQUFBQUJnQnpId0lBQVAvLy84c0FBQUlvQmU4Q0pnQ0tBQUFBQndDYS95SUFCdi8vLzZVQUFBSk9CYlVDSmdDS0FBQUFCd0JvL3Z3QUJmLy9BSkVBQUFQNEJnOENKZ0JRQUFBQUJnQ2daUjRBQVAvL0FHRC83QVFuQmVBQ0pnQlJBQUFBQndCQ0FMTUFHLy8vQUdELzdBUW5CZDBDSmdCUkFBQUFCd0J6QVcwQUYvLy9BR0QvN0FRbkJnUUNKZ0JSQUFBQUJnQ2FieHNBQVAvL0FHRC83QVFuQmc4Q0pnQlJBQUFBQmdDZ2FSNEFBUC8vQUdELzdBUW5CY29DSmdCUkFBQUFCZ0JvU1JvQUFQLy9BSTMvN0FQMkJjc0NKZ0JYQUFBQUJ3QkNBTEVBQnYvL0FJMy83QVAyQmNnQ0pnQlhBQUFBQndCekFXc0FBdi8vQUkzLzdBUDJCZThDSmdCWEFBQUFCZ0NhYlFZQUFQLy9BSTMvN0FQMkJiVUNKZ0JYQUFBQUJnQm9Sd1VBQVAvL0FCditTd1BrQmNnQ0pnQmJBQUFBQndCekFTa0FBdi8vQUJ2K1N3UGtCYlVDSmdCYkFBQUFCZ0JvQlFVQUFQLy9BQ2NBQUFVaUJ2b0NKZ0FqQUFBQUJ3QnVBTTRCU3YvL0FITC83QVBzQmJnQ0pnQkRBQUFBQmdCdVVBZ0FBUC8vQUNjQUFBVWlCMHdDSmdBakFBQUFCd0NjQVBzQm5QLy9BSEwvN0FQc0Jnb0NKZ0JEQUFBQUJnQ2NmVm9BQUFBQ0FDZitVQVVpQmJBQUdnQWRBQUFCTXdFakRnRVZGQll6TWpZM0Z3NEJJeUltTlRRMk53TWhBeU1CSVFNQ1dhQUNLU1ZUV0NNckhTOFlEU0JLTmxkcFZWdUovWnVQdlFHREFmajZCYkQ2VUQxbFBDUW1FQXg0RXhsaVcwZCtOd0Y3L253Q0dRS3lBQUlBY3Y1UUErMEVUZ0F6QUQ0QUFDRXVBU2NPQVNNaUpqVTBOanNCTlRRbUl5SUdGU00wTmpNeUZoVVJGQllYSXc0QkZSUVdNekkyTnhjT0FTTWlKalUwTmpjbE1qWTNOU01pQmhVVUZnTXRDZ29DT3F4bnE2MzQzTkY2Y1dtQnVlNi91OThNRUJOVFdDTXJIUzhZRFNCS05sZHBUbFArdDJpbEpkZUJsRjB6UWlSTVlhbVpucXh1WTI5alIzM0R1TEw5OWpwcU5qMWxQQ1FtRUF4NEV4bGlXMFI2Tll0Z1JzZDVWVXRVQUFELy93Q0QvK3NFeVFjMEFpWUFKUUFBQUFjQWN3SFhBVzcvL3dCaC8rd0Q4Z1hkQWlZQVJRQUFBQWNBY3dGQkFCZi8vd0NELytzRXlRZGJBaVlBSlFBQUFBY0FtZ0RaQVhMLy93QmgvK3dEOGdZRUFpWUFSUUFBQUFZQW1rTWJBQUQvL3dDRC8rc0V5UWNpQWlZQUpRQUFBQWNBblFHb0FYTC8vd0JoLyt3RDhnWExBaVlBUlFBQUFBY0FuUUVTQUJ2Ly93Q0QvK3NFeVFkY0FpWUFKUUFBQUFjQW13RHZBWFAvL3dCaC8rd0Q4Z1lGQWlZQVJRQUFBQVlBbTFrY0FBRC8vd0MyQUFBRTV3ZEhBaVlBSmdBQUFBY0Ftd0NvQVY3Ly93QmsvK3dGTUFZWUFDWUFSZ0FBQUFjQmtRUFpCU3ovL3dDMkFBQUVkUWI2QWlZQUp3QUFBQWNBYmdDYUFVci8vd0JpLyt3RDZRVzVBaVlBUndBQUFBWUFibFVKQUFELy93QzJBQUFFZFFkTUFpWUFKd0FBQUFjQW5BREhBWnovL3dCaS8rd0Q2UVlMQWlZQVJ3QUFBQWNBbkFDQ0FGdi8vd0MyQUFBRWRRY05BaVlBSndBQUFBY0FuUUZyQVYzLy93QmkvK3dENlFYTUFpWUFSd0FBQUFjQW5RRW1BQndBQVFDMi9sQUVkUVd3QUNBQUFBRWhFU0VWSXc0QkZSUVdNekkyTnhjT0FTTWlKalUwTmpjbklSRWhGU0VSSVFRUC9XQURCamhUV0NNckhTOFlEU0JLTmxkcFRWQUIvU2tEdGYwRUFxQUNwdjN2bFQxbFBDUW1FQXg0RXhsaVcwTjZNd01Gc0piK0lnQUNBR0wrWkFQcEJFNEFLUUF4QUFBRklnQTlBVFFBTXpJU0hRRWhIZ0V6TWpZM0Z3NEJCdzRCRlJRV016STJOeGNPQVNNaUpqVTBOamNESWdZSElUVTBKZ0pPNVA3NEFRKy8zTjM5TXdTZGtXV1RPMGtlU3pCUlZ5TXJIUzhZRFNCS05sZHBORGdrYVpFVUFnNkFGQUVuOUMzc0FTNysvdUI1cHN3NE0zc2RNUkU3WlR3a0poQU1lQk1aWWxzM1pTOER6S21IR25tZC8vOEF0Z0FBQkhVSFJ3SW1BQ2NBQUFBSEFKc0FzZ0ZlLy84QVl2L3NBK2tHQmdJbUFFY0FBQUFHQUp0dEhRQUEvLzhBaGYvckJOc0hXd0ltQUNrQUFBQUhBSm9BMFFGeS8vOEFadjVNQS9jR0JBSW1BRWtBQUFBR0FKcGRHd0FBLy84QWhmL3JCTnNIWVFJbUFDa0FBQUFIQUp3QS9BR3gvLzhBWnY1TUEvY0dDZ0ltQUVrQUFBQUhBSndBaUFCYS8vOEFoZi9yQk5zSElnSW1BQ2tBQUFBSEFKMEJvQUZ5Ly84QVp2NU1BL2NGeXdJbUFFa0FBQUFIQUowQkxBQWIvLzhBaGYzbEJOc0Z4UUltQUNrQUFBQUhBWkVCcS82Mi8vOEFadjVNQS9jR2JRSW1BRWtBQUFBSEFhVUJNd0JXLy84QXRnQUFCUDBIUmdJbUFDb0FBQUFIQUpvQStnRmQvLzhBa1FBQUEvb0hSUUltQUVvQUFBQUhBSm9BSXdGYy8vLy94UUFBQW5jSFVRSW1BQ3NBQUFBSEFLRC9Rd0ZnLy8vL25nQUFBbEFGK2dJbUFJb0FBQUFIQUtEL0hBQUovLy8vdndBQUFva0crZ0ltQUNzQUFBQUhBRzcvUndGSy8vLy9tQUFBQW1JRnBBSW1BSW9BQUFBSEFHNy9JUC8wLy8vLzlRQUFBa3dIVEFJbUFDc0FBQUFIQUp6L2RBR2MvLy8vemdBQUFpVUY5UUltQUlvQUFBQUhBSnovVFFCRi8vOEFJZjVZQVlFRnNBSW1BQ3NBQUFBR0FKL3ZDQUFBLy84QUFQNVFBV0FHR0FJbUFFc0FBQUFHQUovT0FBQUEvLzhBdHdBQUFZWUhEUUltQUNzQUFBQUhBSjBBRndGZC8vOEF3Ly9yQmY4RnNBQW1BQ3NBQUFBSEFDd0NQd0FBLy84QW9mNUxBMk1HR0FBbUFFc0FBQUFIQUV3Qi9BQUEvLzhBUC8vckJJc0hPUUltQUN3QUFBQUhBSm9CaFFGUS8vLy90UDVMQWprRjNBSW1BSmdBQUFBSEFKci9NLy96Ly84QXR2MzFCUndGc0FJbUFDMEFBQUFIQVpFQmV2N0cvLzhBa3YzM0JCUUdHQUltQUUwQUFBQUhBWkVCR1A3SS8vOEF0Z0FBQkNVRzRBSW1BQzRBQUFBSEFITUFOd0VhLy84QW9RQUFBa01IWEFJbUFFNEFBQUFIQUhNQUpRR1cvLzhBdHYzM0JDVUZzQUltQUM0QUFBQUhBWkVCZFA3SS8vOEFXLzMzQVZvR0dBSW1BRTRBQUFBSEFaSC8vLzdJLy84QXRnQUFCQ1VGc1FJbUFDNEFBQUFIQVpFQjJRVEYvLzhBb1FBQUFxMEdHQUFtQUU0QUFBQUhBWkVCVmdVcy8vOEF0Z0FBQkNVRnNBSW1BQzRBQUFBSEFKMEJ4ZjNGLy84QW9RQUFBcTBHR0FBbUFFNEFBQUFIQUowQlB2MjMvLzhBdGdBQUJQNEhId0ltQURBQUFBQUhBSE1CL3dGWi8vOEFrUUFBQS9nRjNRSW1BRkFBQUFBSEFITUJhUUFYLy84QXR2MzNCUDRGc0FJbUFEQUFBQUFIQVpFQjJQN0kvLzhBa2YzM0EvZ0VUZ0ltQUZBQUFBQUhBWkVCUXY3SS8vOEF0Z0FBQlA0SFJ3SW1BREFBQUFBSEFKc0JGd0ZlLy84QWtRQUFBL2dHQlFJbUFGQUFBQUFIQUpzQWdRQWMvLy8vMGdBQUEvZ0dHQUltQUZBQUFBQUhBWkgvZGdVcy8vOEFndi9yQlEwSER3SW1BREVBQUFBSEFHNEE3Z0ZmLy84QVlQL3NCQ2NGdUFJbUFGRUFBQUFHQUc1dENBQUEvLzhBZ3YvckJRMEhZUUltQURFQUFBQUhBSndCR3dHeC8vOEFZUC9zQkNjR0NnSW1BRkVBQUFBSEFKd0FtZ0JhLy84QWd2L3JCUTBIWUFJbUFERUFBQUFIQUtFQmR3RnkvLzhBWVAvc0JENEdDUUltQUZFQUFBQUhBS0VBOWdBYi8vOEF0UUFBQk9JSEh3SW1BRFFBQUFBSEFITUJrZ0ZaLy84QWtRQUFBdUlGM1FJbUFGUUFBQUFIQUhNQXhBQVgvLzhBdGYzM0JPSUZyd0ltQURRQUFBQUhBWkVCYS83SS8vOEFXUDMzQXJFRVRnSW1BRlFBQUFBSEFaSC8vUDdJLy84QXRRQUFCT0lIUndJbUFEUUFBQUFIQUpzQXFnRmUvLzhBYVFBQUF0UUdCUUltQUZRQUFBQUdBSnZkSEFBQS8vOEFXdi9yQklvSE5BSW1BRFVBQUFBSEFITUJpUUZ1Ly84QVp2L3NBOElGM1FJbUFGVUFBQUFIQUhNQlBBQVgvLzhBV3YvckJJb0hXd0ltQURVQUFBQUhBSm9BaXdGeS8vOEFadi9zQThJR0JBSW1BRlVBQUFBR0FKbytHd0FBLy84QVd2NUVCSW9GeFFJbUFEVUFBQUFIQUhjQmpmLzMvLzhBWnY1RkE4SUVUZ0ltQUZVQUFBQUhBSGNCUVAvNC8vOEFXdjNqQklvRnhRSW1BRFVBQUFBSEFaRUJZdjYwLy84QVp2M2tBOElFVGdJbUFGVUFBQUFIQVpFQkZmNjEvLzhBV3YvckJJb0hYQUltQURVQUFBQUhBSnNBb1FGei8vOEFadi9zQThJR0JRSW1BRlVBQUFBR0FKdFVIQUFBLy84QU8vMzFCSW9Gc0FJbUFEWUFBQUFIQVpFQlpmN0cvLzhBSGYzdEFrNEZRUUltQUZZQUFBQUhBWkVBclA2Ky8vOEFPLzVWQklvRnNBSW1BRFlBQUFBSEFIY0JrQUFJLy84QUhmNU5Bb0VGUVFJbUFGWUFBQUFIQUhjQTF3QUEvLzhBT3dBQUJJb0hSZ0ltQURZQUFBQUhBSnNBcEFGZC8vOEFIZi9zQXV3R01RQW1BRllBQUFBSEFaRUJsUVZGLy84QWx2L3JCTmNIVVFJbUFEY0FBQUFIQUtBQTNBRmcvLzhBamYvc0EvWUYrZ0ltQUZjQUFBQUdBS0JuQ1FBQS8vOEFsdi9yQk5jRytnSW1BRGNBQUFBSEFHNEE0QUZLLy84QWpmL3NBL1lGcEFJbUFGY0FBQUFHQUc1cjlBQUEvLzhBbHYvckJOY0hUQUltQURjQUFBQUhBSndCRFFHYy8vOEFqZi9zQS9ZRjlRSW1BRmNBQUFBSEFKd0FtQUJGLy84QWx2L3JCTmNIaUFJbUFEY0FBQUFIQUo0Qll3R28vLzhBamYvc0EvWUdNUUltQUZjQUFBQUhBSjRBN2dCUi8vOEFsdi9yQk5jSFN3SW1BRGNBQUFBSEFLRUJhUUZkLy84QWpmL3NCRHdGOUFJbUFGY0FBQUFIQUtFQTlBQUdBQUVBbHY1dUJOY0ZzQUFuQUFBQkVSUUdCdzRCRlJRV016STJOeGNPQVNNaUpqVTBOamNpQmlNaUpEVVJNeEVVRmpNeU5qVVJCTmVSaEZOWUl5c2RMeGdOSUVvMlYya3VNZ2NiQnZUKzNMcTlvYW5IQmJEOEphWGFPRDFsUENRbUVBeDRFeGxpV3pSaExBSDQ4Z1BiL0NXcnFxcXJBOXNBQUFFQWpmNVFCQWtFT2dBbkFBQWhEZ0VWRkJZek1qWTNGdzRCSXlJbU5UUTJOeThCRGdFaklpWTFFVE1SRkJZek1qWTNFVE1SQS9WVFdDTXJIUzhZRFNCS05sZHBVRllNQXpLZWJiVEN1bWh4Y0lra3VUMWxQQ1FtRUF4NEV4bGlXMFI4TnBzQlYxemQ5QUo5L1lHeWcxZFRBd3I3eGdBQS8vOEFTQUFBQnNJSFJnSW1BRGtBQUFBSEFKb0JyUUZkLy84QU1BQUFCZGdGN3dJbUFGa0FBQUFIQUpvQkxnQUcvLzhBSGdBQUJOTUhSQUltQURzQUFBQUhBSm9Bb2dGYi8vOEFHLzVMQStRRjd3SW1BRnNBQUFBR0FKb3JCZ0FBLy84QUhnQUFCTk1IQ2dJbUFEc0FBQUFIQUdnQWZBRmEvLzhBWVFBQUJHMEhId0ltQUR3QUFBQUhBSE1CaUFGWi8vOEFYZ0FBQTdnRnlBSW1BRndBQUFBSEFITUJNd0FDLy84QVlRQUFCRzBIRFFJbUFEd0FBQUFIQUowQldRRmQvLzhBWGdBQUE3Z0Z0Z0ltQUZ3QUFBQUhBSjBCQkFBRy8vOEFZUUFBQkcwSFJ3SW1BRHdBQUFBSEFKc0FvQUZlLy84QVhnQUFBN2dGOEFJbUFGd0FBQUFHQUp0TEJ3QUEvLy8vOGdBQUIxY0hId0ltQUg4QUFBQUhBSE1DMFFGWi8vOEFQZi9yQm53RjNnSW1BSVFBQUFBSEFITUNnZ0FZLy84QWMvK2pCUDRIWFFJbUFJRUFBQUFIQUhNQjRnR1gvLzhBWVA5NUJDY0YzQUltQUljQUFBQUhBSE1CUUFBVy8vLy84d0FBQkMwRWpRSW1BYWtBQUFBSEFkUC9aUDk3Ly8vLzh3QUFCQzBFalFJbUFha0FBQUFIQWRQL1pQOTcvLzhBUndBQUE4OEVqUUltQWJnQUFBQUdBZE14OXdBQS8vOEFLUUFBQklNRjN3SW1BYVlBQUFBSEFFSUF2d0FhLy84QUtRQUFCSU1GM0FJbUFhWUFBQUFIQUhNQmVRQVcvLzhBS1FBQUJJTUdBd0ltQWFZQUFBQUdBSnA3R2dBQS8vOEFLUUFBQklNR0RnSW1BYVlBQUFBR0FLQjFIUUFBLy84QUtRQUFCSU1GeVFJbUFhWUFBQUFHQUdoVkdRQUEvLzhBS1FBQUJJTUdSUUltQWFZQUFBQUhBSjRBL0FCbC8vOEFLUUFBQklNR1hRSW1BYVlBQUFBSEFkUUJEUC9xLy84QWN2NUhCQ1FFblFJbUFhZ0FBQUFIQUhjQmIvLzYvLzhBbXdBQUE4Y0Yzd0ltQWFvQUFBQUhBRUlBamdBYS8vOEFtd0FBQThjRjNBSW1BYW9BQUFBSEFITUJTQUFXLy84QW13QUFBOGNHQXdJbUFhb0FBQUFHQUpwS0dnQUEvLzhBbXdBQUE4Y0Z5UUltQWFvQUFBQUdBR2drR1FBQS8vLy9zd0FBQVZRRjN3SW1BYTRBQUFBSEFFTC9aQUFhLy84QW13QUFBanNGM0FJbUFhNEFBQUFHQUhNZEZnQUEvLy8veVFBQUFpWUdBd0ltQWE0QUFBQUhBSnIvSUFBYS8vLy9vd0FBQWt3RnlRSW1BYTRBQUFBSEFHaisrZ0FaLy84QW13QUFCSElHRGdJbUFiTUFBQUFIQUtBQWxnQWQvLzhBY3YvdkJGY0Y3d0ltQWJRQUFBQUhBRUlBd0FBcS8vOEFjdi92QkZjRjdBSW1BYlFBQUFBSEFITUJlZ0FtLy84QWN2L3ZCRmNHRXdJbUFiUUFBQUFHQUpwOEtnQUEvLzhBY3YvdkJGY0dIZ0ltQWJRQUFBQUdBS0IyTFFBQS8vOEFjdi92QkZjRjJRSW1BYlFBQUFBR0FHaFdLUUFBLy84QWpQL3ZCSEFGNEFJbUFia0FBQUFIQUVJQTRBQWIvLzhBalAvdkJIQUYzUUltQWJrQUFBQUhBSE1CbWdBWC8vOEFqUC92QkhBR0JBSW1BYmtBQUFBSEFKb0FuQUFiLy84QWpQL3ZCSEFGeWdJbUFia0FBQUFHQUdoMkdnQUEvLzhBSUFBQUJEQUYyd0ltQWIwQUFBQUhBSE1CU1FBVi8vOEFLUUFBQklNRnR3SW1BYVlBQUFBR0FHNTVCd0FBLy84QUtRQUFCSU1HQ1FJbUFhWUFBQUFIQUp3QXBnQlpBQUlBS2Y1UUJJTUVqUUFhQUIwQUFBRXpBU01PQVJVVUZqTXlOamNYRGdFaklpWTFORFkzSnlFREl3RWhBd0gvcndIVk4xTllJeXNkTHhnTklFbzJWMmxjWVdQOStHbkFBV0lCbHN3RWpmdHpQV1U4SkNZUURIZ1RHV0piU1lNNC8vN3dBYVFDRFFELy93QnkvKzhFSkFYc0FpWUJxQUFBQUFjQWN3RnJBQ2IvL3dCeS8rOEVKQVlUQWlZQnFBQUFBQVlBbW0wcUFBRC8vd0J5Lys4RUpBWGFBaVlCcUFBQUFBY0FuUUU4QUNyLy93QnkvKzhFSkFZVUFpWUJxQUFBQUFjQW13Q0RBQ3YvL3dDYkFBQUVMUVlFQWlZQnFRQUFBQVlBbXk4YkFBRC8vd0NiQUFBRHh3VzNBaVlCcWdBQUFBWUFia2dIQUFELy93Q2JBQUFEeHdZSkFpWUJxZ0FBQUFZQW5IVlpBQUQvL3dDYkFBQUR4d1hLQWlZQnFnQUFBQWNBblFFWkFCb0FBUUNiL2xBRHh3U05BQ0FBQUFFaEVTRVZJdzRCRlJRV016STJOeGNPQVNNaUpqVTBOamNuSVJFaEZTRVJJUU53L2VVQ2NraFRXQ01ySFM4WURTQktObGRwVFZBQi9jd0RMUDJPQWhzQ0ZmNStrejFsUENRbUVBeDRFeGxpVzBONk13TUVqWlQrc1AvL0FKc0FBQVBIQmdRQ0pnR3FBQUFBQmdDYllCc0FBUC8vQUhMLzd3UkhCaE1DSmdHc0FBQUFCZ0NhZFNvQUFQLy9BSEwvN3dSSEJoa0NKZ0dzQUFBQUJ3Q2NBS0FBYWYvL0FITC83d1JIQmRvQ0pnR3NBQUFBQndDZEFVUUFLdi8vQUhMOTV3UkhCSjBDSmdHc0FBQUFCd0dSQVZMK3VQLy9BSnNBQUFSVkJnTUNKZ0d0QUFBQUJ3Q2FBSU1BR3YvLy81d0FBQUpPQmc0Q0pnR3VBQUFBQndDZy94b0FIZi8vLzVZQUFBSmdCYmNDSmdHdUFBQUFCd0J1L3g0QUIvLy8vOHdBQUFJakJna0NKZ0d1QUFBQUJ3Q2MvMHNBV2YvLy8vZitVQUZYQkkwQ0pnR3VBQUFBQmdDZnhRQUFBUC8vQUk4QUFBRmVCY29DSmdHdUFBQUFCZ0NkN3hvQUFQLy9BRUgvN3dROUJma0NKZ0d2QUFBQUJ3Q2FBVGNBRVAvL0FKdjk4d1JBQkkwQ0pnR3dBQUFBQndHUkFQLyt4UC8vQUpzQUFBTnFCY0VDSmdHeEFBQUFCZ0J6SS9zQUFQLy9BSnY5OVFOcUJJMENKZ0d4QUFBQUJ3R1JBTnoreHYvL0FKc0FBQU5xQkk0Q0pnR3hBQUFBQndHUkFVVURvdi8vQUpzQUFBTnFCSTBDSmdHeEFBQUFCd0NkQVRIOUp2Ly9BSnNBQUFSeUJkd0NKZ0d6QUFBQUJ3QnpBWm9BRnYvL0FKdjk5UVJ5QkkwQ0pnR3pBQUFBQndHUkFYUCt4di8vQUpzQUFBUnlCZ1FDSmdHekFBQUFCd0NiQUxJQUcvLy9BSEwvN3dSWEJjY0NKZ0cwQUFBQUJnQnVlaGNBQVAvL0FITC83d1JYQmhrQ0pnRzBBQUFBQndDY0FLY0FhZi8vQUhMLzd3UlhCaGdDSmdHMEFBQUFCd0NoQVFNQUt2Ly9BSnNBQUFRNkJkd0NKZ0cyQUFBQUJ3QnpBU1lBRnYvL0FKdjk5UVE2QkkwQ0pnRzJBQUFBQndHUkFQLyt4di8vQUpzQUFBUTZCZ1FDSmdHMkFBQUFCZ0NiUGhzQUFQLy9BRjMvN3dRTkJld0NKZ0czQUFBQUJ3QnpBVlFBSnYvL0FGMy83d1FOQmhNQ0pnRzNBQUFBQmdDYVZpb0FBUC8vQUYzK1J3UU5CSjBDSmdHM0FBQUFCd0IzQVZqLyt2Ly9BRjMvN3dRTkJoUUNKZ0czQUFBQUJnQ2JiQ3NBQVAvL0FFZjk5UVBQQkkwQ0pnRzRBQUFBQndHUkFRUCt4di8vQUVjQUFBUFBCZ01DSmdHNEFBQUFCZ0NiUWhvQUFQLy9BSXovN3dSd0JnOENKZ0c1QUFBQUJ3Q2dBSllBSHYvL0FJei83d1J3QmJnQ0pnRzVBQUFBQndCdUFKb0FDUC8vQUl6Lzd3UndCZ29DSmdHNUFBQUFCd0NjQU1jQVd2Ly9BSXovN3dSd0JrWUNKZ0c1QUFBQUJ3Q2VBUjBBWnYvL0FJei83d1J3QmdrQ0pnRzVBQUFBQndDaEFTTUFHd0FCQUl6K2V3UndCSTBBSndBQUFSRVVCZ2NPQVJVVUZqTXlOamNYRGdFaklpWTFORFkzSWdZaklpUTFFVE1SRkJZek1qWTFFUVJ3Y0doVFdDTXJIUzhZRFNCS05sZHBLaTBIR0FiaC91KzRySTZRcWdTTi9RRjlzalE5WlR3a0poQU1lQk1aWWxzeVd5c0IyTWNDLy8wQmdJeU1nQUwvQVAvL0FFRUFBQVhBQmdNQ0pnRzdBQUFBQndDYUFTRUFHdi8vQUNBQUFBUXdCZ0lDSmdHOUFBQUFCZ0NhU3hrQUFQLy9BQ0FBQUFRd0JjZ0NKZ0c5QUFBQUJnQm9KUmdBQVAvL0FFNEFBQVBZQmR3Q0pnRytBQUFBQndCekFTY0FGdi8vQUU0QUFBUFlCY29DSmdHK0FBQUFCd0NkQVBnQUd2Ly9BRTRBQUFQWUJnUUNKZ0crQUFBQUJnQ2JQeHNBQVAvL0FGMy83d2g4QkowQUpnRzNBQUFBQndHM0JHOEFBUC8vQUNjQUFBVWlCbmdDSmdBakFBQUFCZ0NwT2dBQUFQLy8vK1lBQUFUWkJub0FKZ0FuWkFBQUJ3Q3AveU1BQXYvL0FCTUFBQVZoQm5vQUpnQXFaQUFBQndDcC8xQUFBdi8vQUJrQUFBSGdCbmtBSmdBclpBQUFCd0NwLzFZQUFmLy9BRkwvNndVaEJuZ0FKZ0F4RkFBQUJnQ3Bqd0FBQVAvLy80MEFBQVUzQm5nQUpnQTdaQUFBQndDcC9zb0FBUC8vQUQ4QUFBVGhCbmdBSmdDMUZBQUFCd0NwLzN3QUFQLy8vOGovNndLREJqOENKZ0MrQUFBQUJ3Q3EveWYvdC8vL0FDY0FBQVVpQmJBQ0JnQWpBQUQvL3dDMkFBQUVxUVd3QWdZQUpBQUEvLzhBdGdBQUJIVUZzQUlHQUNjQUFQLy9BR0VBQUFSdEJiQUNCZ0E4QUFELy93QzJBQUFFL1FXd0FnWUFLZ0FBLy84QXd3QUFBWHdGc0FJR0FDc0FBUC8vQUxZQUFBVWNCYkFDQmdBdEFBRC8vd0MyQUFBR1RRV3dBZ1lBTHdBQS8vOEF0Z0FBQlA0RnNBSUdBREFBQVAvL0FJTC82d1VOQmNVQ0JnQXhBQUQvL3dDMkFBQUV4QVd3QWdZQU1nQUEvLzhBT3dBQUJJb0ZzQUlHQURZQUFQLy9BQjRBQUFUVEJiQUNCZ0E3QUFELy93QkJBQUFFMEFXd0FnWUFPZ0FBLy8vL3pBQUFBblVIREFJbUFDc0FBQUFIQUdqL0l3RmMvLzhBSGdBQUJOTUhDZ0ltQURzQUFBQUhBR2dBZkFGYS8vOEFaUC9yQkhjR2VnSW1BTFlBQUFBSEFLa0JkUUFDLy84QVkvL3RBK3dHZVFJbUFMb0FBQUFIQUtrQkt3QUIvLzhBa2Y1aEEvQUdlZ0ltQUx3QUFBQUhBS2tCUmdBQy8vOEF3Ly9yQW1zR1pnSW1BTDRBQUFBR0FLa3E3Z0FBLy84QWovL3JBL1lHUHdJbUFNWUFBQUFHQUtvZXR3QUEvLzhBbWdBQUJEOEVPZ0lHQUlzQUFQLy9BR0QvN0FRbkJFNENCZ0JSQUFELy93Q2EvbUFEN2dRNkFnWUFkQUFBLy84QUxnQUFBOThFT2dJR0FGZ0FBUC8vQUM0QUFBUFBCRG9DQmdCYUFBRC8vLy9ULytzQ2ZBVzFBaVlBdmdBQUFBY0FhUDhxQUFYLy93Q1AvK3NEOWdXMUFpWUF4Z0FBQUFZQWFDRUZBQUQvL3dCZy8rd0VKd1o2QWlZQVVRQUFBQWNBcVFGS0FBTC8vd0NQLytzRDlnWm1BaVlBeGdBQUFBY0FxUUVpLys3Ly93QjYvK3NHR1FaakFpWUF5UUFBQUFjQXFRSlQvK3YvL3dDMkFBQUVkUWNNQWlZQUp3QUFBQWNBYUFCMkFWei8vd0MxQUFBRU1BY2ZBaVlBckFBQUFBY0Fjd0dZQVZrQUFRQmEvK3NFaWdYRkFDVUFBQUUwSmljdUFUVTBKRE15QUJVak5DWWpJZ1lWRkJZWEhnRVZGQVFqSWlRMU14UVdNekkyQTlDV3greitBUlBoOFFFWXVheWttNkNweU9ydC91WHIzLzYxdWRPZW5MQUJibWlGTVRqUXBhM2YvdjYyaEo2RmJtSi9NVHZZcDdQUzZNK1JrWDRBQVAvL0FNTUFBQUY4QmJBQ0JnQXJBQUQvLy8vTUFBQUNkUWNNQWlZQUt3QUFBQWNBYVA4akFWei8vd0EvLytzRHdBV3dBZ1lBTEFBQS8vOEF0Z0FBQlJ3RnNBSUdBQzBBQVAvL0FMWUFBQVVjQnNjQ0pnQXRBQUFBQndCekFZd0JBZi8vQUZILzZ3VElCMHdDSmdEWkFBQUFCd0NjQU5vQm5QLy9BQ2NBQUFVaUJiQUNCZ0FqQUFELy93QzJBQUFFcVFXd0FnWUFKQUFBLy84QXRRQUFCREFGc0FJR0FLd0FBUC8vQUxZQUFBUjFCYkFDQmdBbkFBRC8vd0MyQUFBRS9nZE1BaVlBMXdBQUFBY0FuQUV4QVp6Ly93QzJBQUFHVFFXd0FnWUFMd0FBLy84QXRnQUFCUDBGc0FJR0FDb0FBUC8vQUlMLzZ3VU5CY1VDQmdBeEFBRC8vd0MyQUFBRS93V3dBZ1lBc1FBQS8vOEF0Z0FBQk1RRnNBSUdBRElBQVAvL0FJUC82d1RKQmNVQ0JnQWxBQUQvL3dBN0FBQUVpZ1d3QWdZQU5nQUEvLzhBUVFBQUJOQUZzQUlHQURvQUFQLy9BSEwvN0FQc0JFNENCZ0JEQUFELy93QmkvK3dENlFST0FnWUFSd0FBLy84QW5BQUFCQUVGOVFJbUFPc0FBQUFIQUp3QW9nQkYvLzhBWVAvc0JDY0VUZ0lHQUZFQUFQLy9BSkgrWUFRa0JFNENCZ0JTQUFBQUFRQmgvK3dEOGdST0FCc0FBQ1V5TmpjekRnRWpJZ0k5QVRRU016SVdGeU11QVNNaUJoMEJGQllDUTJlWEFiQUIvNi91OVBUdXYrOEJzQUdPY0tHSGhvRjRYSlRWQVMvdEt1d0JNTnlzYUlyZnB5cXIzQUFBLy84QUcvNUxBK1FFT2dJR0FGc0FBUC8vQUM0QUFBUFBCRG9DQmdCYUFBRC8vd0JpLyt3RDZRWExBaVlBUndBQUFBWUFhREViQUFELy93Q2FBQUFEUndYSUFpWUE1d0FBQUFjQWN3RFZBQUwvL3dCbS8rd0R3Z1JPQWdZQVZRQUEvLzhBb1FBQUFWb0dHQUlHQUVzQUFQLy8vNlVBQUFKT0JiVUNKZ0NLQUFBQUJ3Qm8vdndBQmYvLy83YitTd0ZuQmhnQ0JnQk1BQUQvL3dDY0FBQUVQd1hIQWlZQTdBQUFBQWNBY3dGREFBSC8vd0FiL2tzRDVBWDFBaVlBV3dBQUFBWUFuRlpGQUFELy93QklBQUFHd2djaUFpWUFPUUFBQUFjQVFnSHhBVjMvL3dBd0FBQUYyQVhMQWlZQVdRQUFBQWNBUWdGeUFBYi8vd0JJQUFBR3dnY2ZBaVlBT1FBQUFBY0Fjd0tyQVZuLy93QXdBQUFGMkFYSUFpWUFXUUFBQUFjQWN3SXNBQUwvL3dCSUFBQUd3Z2NNQWlZQU9RQUFBQWNBYUFHSEFWei8vd0F3QUFBRjJBVzFBaVlBV1FBQUFBY0FhQUVJQUFYLy93QWVBQUFFMHdjZ0FpWUFPd0FBQUFjQVFnRG1BVnYvL3dBYi9rc0Q1QVhMQWlZQVd3QUFBQVlBUW04R0FBRC8vd0JuQkNNQS9RWVlBZ1lBQ1FBQS8vOEFhUVFVQWg4R0dBSUdBQVFBQVAvL0FLa0FBQU4xQmJBQUpnUWJBQUFBQndRYkFnOEFBUC8vQUVJQUFBUVlCaTBBSmdCSUFBQUFCd0JPQXI0QUFQLy8vN1QrU3dKQUJkMENKZ0NZQUFBQUJ3Q2IvMG4vOVAvL0FEQUQ1d0ZIQmhnQ0JnRm1BQUQvL3dDMkFBQUdUUWNmQWlZQUx3QUFBQWNBY3dLcEFWbi8vd0NRQUFBR2NnWGRBaVlBVHdBQUFBY0Fjd0s3QUJmLy93QW4vb2NGSWdXd0FpWUFJd0FBQUFjQW9nRlBBQUQvL3dCeS9vY0Q3QVJPQWlZQVF3QUFBQWNBb2dDZUFBRC8vLzgrLytzRkRRYWlBaVlBTVFBQUFBY0IxZjdQQU16Ly93QkNBQUFHaXdZdEFDWUFTQUFBQUFjQmtnSytBQUQvL3dCQ0FBQUcxZ1l0QUNZQVNBQUFBQ2NBU0FLK0FBQUFCd0JPQlh3QUFQLy9BTFlBQUFSMUJ5SUNKZ0FuQUFBQUJ3QkNBT0FCWGYvL0FMWUFBQVQrQnlJQ0pnRFhBQUFBQndCQ0FVb0JYZi8vQUdMLzdBUHBCZUVDSmdCSEFBQUFCd0JDQUpzQUhQLy9BSndBQUFRQkJjc0NKZ0RyQUFBQUJ3QkNBTHNBQnYvL0FGMEFBQVVZQmJBQ0JnQzBBQUQvL3dCZi9pa0ZRd1E2QWdZQXlBQUEvLzhBRndBQUJOb0hSd0ltQVJRQUFBQUhBS2NFTndGWi8vLy8rUUFBQkFzR0h3SW1BUlVBQUFBSEFLY0QwZ0F4Ly84QVlQNUxDR3dFVGdBbUFGRUFBQUFIQUZzRWlBQUEvLzhBZ3Y1TENYUUZ4UUFtQURFQUFBQUhBRnNGa0FBQS8vOEFVZjVSQkdjRnhRSW1BTllBQUFBSEFad0JuUCs0Ly84QVdQNVNBNndFVEFJbUFPb0FBQUFIQVp3QlEvKzUvLzhBZy81UkJNa0Z4UUltQUNVQUFBQUhBWndCN3YrNC8vOEFZZjVSQS9JRVRnSW1BRVVBQUFBSEFad0JXUCs0Ly84QUhnQUFCTk1Gc0FJR0FEc0FBUC8vQUM3K1lBUGZCRG9DQmdDNEFBRC8vd0REQUFBQmZBV3dBZ1lBS3dBQS8vOEFHd0FBQnlnSFRBSW1BTlVBQUFBSEFKd0IrQUdjLy84QUZRQUFCZ1FGOVFJbUFPa0FBQUFIQUp3QmpRQkYvLzhBd3dBQUFYd0ZzQUlHQUNzQUFQLy9BQ2NBQUFVaUIwd0NKZ0FqQUFBQUJ3Q2NBUHNCblAvL0FITC83QVBzQmdvQ0pnQkRBQUFBQmdDY2ZWb0FBUC8vQUNjQUFBVWlCd3dDSmdBakFBQUFCd0JvQUtvQlhQLy9BSEwvN0FQc0Jjb0NKZ0JEQUFBQUJnQm9MQm9BQVAvLy8vSUFBQWRYQmJBQ0JnQi9BQUQvL3dBOS8rc0dmQVJPQWdZQWhBQUEvLzhBdGdBQUJIVUhUQUltQUNjQUFBQUhBSndBeHdHYy8vOEFZdi9zQStrR0N3SW1BRWNBQUFBSEFKd0FnZ0JiLy84QVgvL3JCUkFHM2dJbUFVRUFBQUFIQUdnQWZRRXUvLzhBWXYvc0Era0VUd0lHQUprQUFQLy9BR0wvN0FQcEJjc0NKZ0NaQUFBQUJnQm9NUnNBQVAvL0FCc0FBQWNvQnd3Q0pnRFZBQUFBQndCb0FhY0JYUC8vQUJVQUFBWUVCYlVDSmdEcEFBQUFCd0JvQVR3QUJmLy9BRkgvNndSbkJ5RUNKZ0RXQUFBQUJ3Qm9BR0VCY2YvL0FGai83UU9zQmNrQ0pnRHFBQUFBQmdCb0NCa0FBUC8vQUxZQUFBVCtCdm9DSmdEWEFBQUFCd0J1QVFRQlN2Ly9BSndBQUFRQkJhUUNKZ0RyQUFBQUJnQnVkZlFBQVAvL0FMWUFBQVQrQnd3Q0pnRFhBQUFBQndCb0FPQUJYUC8vQUp3QUFBUUJCYlVDSmdEckFBQUFCZ0JvVVFVQUFQLy9BSUwvNndVTkJ5RUNKZ0F4QUFBQUJ3Qm9BTW9CY2YvL0FHRC83QVFuQmNvQ0pnQlJBQUFBQmdCb1NSb0FBUC8vQUhQLzZ3VCtCY1VDQmdFU0FBRC8vd0JnLyt3RUp3Uk9BZ1lCRXdBQS8vOEFjLy9yQlA0SEJ3SW1BUklBQUFBSEFHZ0EwZ0ZYLy84QVlQL3NCQ2NGNWdJbUFSTUFBQUFHQUdneU5nQUEvLzhBc2Yvc0JQWUhJZ0ltQU9JQUFBQUhBR2dBdHdGeS8vOEFaUC9yQStBRnlnSW1BUG9BQUFBR0FHZ21HZ0FBLy84QVVmL3JCTWdHK2dJbUFOa0FBQUFIQUc0QXJRRksvLzhBRy81TEErUUZwQUltQUZzQUFBQUdBRzRwOUFBQS8vOEFVZi9yQk1nSERBSW1BTmtBQUFBSEFHZ0FpUUZjLy84QUcvNUxBK1FGdFFJbUFGc0FBQUFHQUdnRkJRQUEvLzhBVWYvckJNZ0hTd0ltQU5rQUFBQUhBS0VCTmdGZC8vOEFHLzVMQS9vRjlBSW1BRnNBQUFBSEFLRUFzZ0FHLy84QWx3QUFCTVFIREFJbUFOd0FBQUFIQUdnQXN3RmMvLzhBWndBQUE3MEZ0UUltQVBRQUFBQUdBR2dPQlFBQS8vOEF0UUFBQmpVSERBQW1BT0VQQUFBbkFDc0V1UUFBQUFjQWFBRjlBVnovL3dDZEFBQUZmd1cxQUNZQStRQUFBQ2NBaWdRcUFBQUFCd0JvQVJjQUJmLy9BRUgrU3dVWEJiQUNKZ0E2QUFBQUJ3R2FBN0FBQVAvL0FDNytTd1FmQkRvQ0pnQmFBQUFBQndHYUFyZ0FBUC8vQUdULzdBUHdCaGdDQmdCR0FBRC8vd0F3L2tzRnJBV3dBaVlBMkFBQUFBY0JtZ1JGQUFELy93QW8va3NFdXdRNkFpWUE3UUFBQUFjQm1nTlVBQUQvL3dBbi9yRUZJZ1d3QWlZQUl3QUFBQWNBcUFVQkFBRC8vd0J5L3JFRDdBUk9BaVlBUXdBQUFBY0FxQVJRQUFELy93QW5BQUFGSWdmR0FpWUFJd0FBQUFjQXBnVDFBVlAvL3dCeS8rd0Q3QWFFQWlZQVF3QUFBQWNBcGdSM0FCSC8vd0FuQUFBRklnZW9BaVlBSXdBQUFBY0Jvd0RLQVJiLy93QnkvK3dFcEFabkFpWUFRd0FBQUFZQm8welZBQUQvL3dBbkFBQUZJZ2VsQWlZQUl3QUFBQWNCb2dET0FTWC8vLyt1Lyt3RDdBWmtBaVlBUXdBQUFBWUJvbERrQUFELy93QW5BQUFGSWdmYkFpWUFJd0FBQUFjQm9RRFBBUTMvL3dCeS8rd0VQUWFhQWlZQVF3QUFBQVlCb1ZITUFBRC8vd0FuQUFBRklnZmxBaVlBSXdBQUFBY0JvQURPQVJQLy93QnkvK3dEN0Fha0FpWUFRd0FBQUFZQm9GRFNBQUQvL3dBbi9yRUZJZ2RHQWlZQUl3QUFBQ2NBbWdEUUFWMEFCd0NvQlFFQUFQLy9BSEwrc1FQc0JnUUNKZ0JEQUFBQUpnQ2FVaHNBQndDb0JGQUFBQUFBLy84QUp3QUFCU0lIM1FJbUFDTUFBQUFIQVo4QThRRlUvLzhBY3Yvc0Erd0dtd0ltQUVNQUFBQUdBWjl6RWdBQS8vOEFKd0FBQlNJSDRBSW1BQ01BQUFBSEFhUUE5UUZuLy84QWN2L3NBK3dHbmdJbUFFTUFBQUFHQWFSM0pRQUEvLzhBSndBQUJTSUlTd0ltQUNNQUFBQUhBWjRBOVFGSi8vOEFjdi9zQSt3SENRSW1BRU1BQUFBR0FaNTNCd0FBLy84QUp3QUFCU0lJSHdJbUFDTUFBQUFIQVowQTlRRlIvLzhBY3Yvc0Erd0czUUltQUVNQUFBQUdBWjEzRHdBQS8vOEFKLzZ4QlNJSFRBSW1BQ01BQUFBbkFKd0Erd0djQUFjQXFBVUJBQUQvL3dCeS9yRUQ3QVlLQWlZQVF3QUFBQ1lBbkgxYUFBY0FxQVJRQUFBQUFQLy9BTGIrdXdSMUJiQUNKZ0FuQUFBQUJ3Q29CTWdBQ3YvL0FHTCtzUVBwQkU0Q0pnQkhBQUFBQndDb0JKSUFBUC8vQUxZQUFBUjFCOFlDSmdBbkFBQUFCd0NtQk1FQlUvLy9BR0wvN0FQcEJvVUNKZ0JIQUFBQUJ3Q21CSHdBRXYvL0FMWUFBQVIxQjFFQ0pnQW5BQUFBQndDZ0FKWUJZUC8vQUdMLzdBUHBCaEFDSmdCSEFBQUFCZ0NnVVI4QUFQLy9BTFlBQUFUdUI2Z0NKZ0FuQUFBQUJ3R2pBSllCRnYvL0FHTC83QVNwQm1nQ0pnQkhBQUFBQmdHalVkWUFBUC8vLy9nQUFBUjFCNlVDSmdBbkFBQUFCd0dpQUpvQkpmLy8vN1AvN0FQcEJtVUNKZ0JIQUFBQUJnR2lWZVVBQVAvL0FMWUFBQVNIQjlzQ0pnQW5BQUFBQndHaEFKc0JEZi8vQUdMLzdBUkNCcHNDSmdCSEFBQUFCZ0doVnMwQUFQLy9BTFlBQUFSMUIrVUNKZ0FuQUFBQUJ3R2dBSm9CRS8vL0FHTC83QVBwQnFVQ0pnQkhBQUFBQmdHZ1ZkTUFBUC8vQUxiK3V3UjFCMFlDSmdBbkFBQUFKd0NhQUp3QlhRQUhBS2dFeUFBSy8vOEFZdjZ4QStrR0JRSW1BRWNBQUFBbUFKcFhIQUFIQUtnRWtnQUFBQUQvL3dEREFBQUNBUWZHQWlZQUt3QUFBQWNBcGdOdEFWUC8vd0NiQUFBQjJnWndBaVlBaWdBQUFBY0FwZ05HLy8zLy93QzMvcmtCaGdXd0FpWUFLd0FBQUFjQXFBTjBBQWovL3dDVy9yc0JaUVlZQWlZQVN3QUFBQWNBcUFOVEFBci8vd0NDL3FrRkRRWEZBaVlBTVFBQUFBY0FxQVVkLy9qLy93QmcvcWdFSndST0FpWUFVUUFBQUFjQXFBU2IvL2YvL3dDQy8rc0ZEUWZiQWlZQU1RQUFBQWNBcGdVVkFXai8vd0JnLyt3RUp3YUVBaVlBVVFBQUFBY0FwZ1NVQUJILy93Q0MvK3NGUWdlOUFpWUFNUUFBQUFjQm93RHFBU3YvL3dCZy8rd0V3UVpuQWlZQVVRQUFBQVlCbzJuVkFBRC8vd0JNLytzRkRRZTZBaVlBTVFBQUFBY0JvZ0R1QVRyLy8vL0wvK3dFSndaa0FpWUFVUUFBQUFZQm9tM2tBQUQvL3dDQy8rc0ZEUWZ3QWlZQU1RQUFBQWNCb1FEdkFTTC8vd0JnLyt3RVdnYWFBaVlBVVFBQUFBWUJvVzdNQUFELy93Q0MvK3NGRFFmNkFpWUFNUUFBQUFjQm9BRHVBU2ovL3dCZy8rd0VKd2FrQWlZQVVRQUFBQVlCb0czU0FBRC8vd0NDL3FrRkRRZGJBaVlBTVFBQUFDY0FtZ0R3QVhJQUJ3Q29CUjMvK1AvL0FHRCtxQVFuQmdRQ0pnQlJBQUFBSmdDYWJ4c0FCd0NvQkp2Lzl3QUEvLzhBY2YvckJaMEhEd0ltQUpRQUFBQUhBSE1CNWdGSi8vOEFZUC9zQkxvRjNRSW1BSlVBQUFBSEFITUJiUUFYLy84QWNmL3JCWjBIRWdJbUFKUUFBQUFIQUVJQkxBRk4vLzhBWVAvc0JMb0Y0QUltQUpVQUFBQUhBRUlBc3dBYi8vOEFjZi9yQlowSHRnSW1BSlFBQUFBSEFLWUZEUUZELy84QVlQL3NCTG9HaEFJbUFKVUFBQUFIQUtZRWxBQVIvLzhBY2YvckJaMEhRUUltQUpRQUFBQUhBS0FBNGdGUS8vOEFZUC9zQkxvR0R3SW1BSlVBQUFBR0FLQnBIZ0FBLy84QWNmNnhCWjBHTmdJbUFKUUFBQUFIQUtnRkNRQUEvLzhBWVA2b0JMb0VzQUltQUpVQUFBQUhBS2dFbS8vMy8vOEFsdjZxQk5jRnNBSW1BRGNBQUFBSEFLZ0ZEUC81Ly84QWpmNnhBL1lFT2dJbUFGY0FBQUFIQUtnRVZ3QUEvLzhBbHYvckJOY0h4Z0ltQURjQUFBQUhBS1lGQndGVC8vOEFqZi9zQS9ZR2NBSW1BRmNBQUFBSEFLWUVrdi85Ly84QWx2L3JCaVlISHdJbUFKWUFBQUFIQUhNQjNRRlovLzhBamYvc0JSQUZ5QUltQUpjQUFBQUhBSE1CYXdBQy8vOEFsdi9yQmlZSElnSW1BSllBQUFBSEFFSUJJd0ZkLy84QWpmL3NCUkFGeXdJbUFKY0FBQUFIQUVJQXNRQUcvLzhBbHYvckJpWUh4Z0ltQUpZQUFBQUhBS1lGQkFGVC8vOEFqZi9zQlJBR2NBSW1BSmNBQUFBSEFLWUVrdi85Ly84QWx2L3JCaVlIVVFJbUFKWUFBQUFIQUtBQTJRRmcvLzhBamYvc0JSQUYrZ0ltQUpjQUFBQUdBS0JuQ1FBQS8vOEFsdjZwQmlZR0RRSW1BSllBQUFBSEFLZ0ZDZi80Ly84QWpmNnhCUkFFa1FJbUFKY0FBQUFIQUtnRVZ3QUEvLzhBSHY2N0JOTUZzQUltQURzQUFBQUhBS2dFemdBSy8vOEFHLzRVQStRRU9nSW1BRnNBQUFBSEFLZ0ZJdjlqLy84QUhnQUFCTk1IeEFJbUFEc0FBQUFIQUtZRXh3RlIvLzhBRy81TEErUUdjQUltQUZzQUFBQUhBS1lFVVAvOS8vOEFIZ0FBQk5NSFR3SW1BRHNBQUFBSEFLQUFuQUZlLy84QUcvNUxBK1FGK2dJbUFGc0FBQUFHQUtBbENRQUFBQUlBWlAvc0JMRUdHQUFhQUNnQUFBRWpFU01uRGdFaklnSTlBUkFTTXpJV0Z6Y1JJVFVoTlRNVk13RVVGak15TmpjUkxnRWpJZ1lWQkxIQm9SQTJtR25KMjlyTVpKSTBBLzcrQVFLNXdmeHNoNUplZWlrb2ZGdVRpQVRTK3k2SFRrMEJHdThWQVFvQk9raEdBUUVSbGJHeC9JNnF4VkpNQWZaSVV1ckFBQUQvL3dCay91NEVzUVlZQUNZQVJnQUFBQ2NCMHdHbUFrWUFCd0JCQUtQL2cvLy9BTGIrbVFWYkJiQUNKZ0F0QUFBQUJ3R2NCRG9BQVAvL0FKeittUVJwQkRvQ0pnRHNBQUFBQndHY0EwZ0FBUC8vQUxiK21RV0hCYkFDSmdBcUFBQUFCd0djQkdZQUFQLy9BSnorbVFTS0JEb0NKZ0R2QUFBQUJ3R2NBMmtBQVAvL0FEdittUVNLQmJBQ0pnQTJBQUFBQndHY0FpZ0FBUC8vQUNqK21RT3dCRG9DSmdEeEFBQUFCd0djQWE0QUFQLy9BRUgrbVFUcEJiQUNKZ0E2QUFBQUJ3R2NBOGdBQVAvL0FDNyttUVB4QkRvQ0pnQmFBQUFBQndHY0F0QUFBUC8vQUpmK21RVk9CYkFDSmdEY0FBQUFCd0djQkMwQUFQLy9BR2YrbVFSR0JEc0NKZ0QwQUFBQUJ3R2NBeVVBQVAvL0FKZittUVRFQmJBQ0pnRGNBQUFBQndHY0F4a0FBUC8vQUdmK21RTzlCRHNDSmdEMEFBQUFCd0djQWhBQUFQLy9BTFgrbVFRd0JiQUNKZ0NzQUFBQUJ3R2NBTmNBQVAvL0FKcittUU5IQkRvQ0pnRG5BQUFBQndHY0FKNEFBUC8vQUJ2K21RZHFCYkFDSmdEVkFBQUFCd0djQmtrQUFQLy9BQlgrbVFZbEJEb0NKZ0RwQUFBQUJ3R2NCUVFBQVAvL0FFZitWQVhBQmNNQ0pnRTdBQUFBQndHY0F3Yi91Ly8vLytQK1dBUlpCRTRDSmdFOEFBQUFCd0djQWdIL3YvLy9BSkVBQUFQNkJoZ0NCZ0JLQUFBQUF2L1VBQUFFc1FXd0FCSUFHd0FBQVNNVklUSVdGUlFHSXlFUkl6VXpOVE1WTXdNUklUSTJOVFFtSXdKUThRRm83dno5N2YzZjB0SzU4ZkVCYUp5VWxKd0VVUGpoeDhqb0JGQ1Z5OHY5M3YzU24zNTVtQUFBQUFMLzFBQUFCTEVGc0FBU0FCc0FBQUVqRlNFeUZoVVVCaU1oRVNNMU16VXpGVE1ERVNFeU5qVTBKaU1DVVBFQmFPNzgvZTM5MzlMU3VmSHhBV2ljbEpTY0JGRDQ0Y2ZJNkFSUWxjdkwvZDc5MHA5K2VaZ0FBQUFCQUFNQUFBUXdCYkFBRFFBQUFTRVJJeEVqTlRNUklSVWhFU0VDZi83dnViS3lBM3Y5UGdFUkFxejlWQUtzbFFKdmx2NG5BQUFBQUFILy9BQUFBMGNFT2dBTkFBQUJJUkVqRVNNMU14RWhGU0VSSVFKNC90eTZucDRDcmY0TkFTUUIzLzRoQWQrVkFjYVgvdEVBQUFBQUFmLzFBQUFGTUFXd0FCUUFBQUVqRVNNUkl6VXpOVE1WTXhVakVUTUJNd2tCSXdJenNMblYxYm51N3A4Q0VkVDl3d0ptNHdLVS9Xd0VoWldXbHBYK3BBS0gvVDc5RWdBQUFmL1lBQUFFS0FZWUFCUUFBQUVqRVNNUkl6VXpOVE1WTXhVakVUTUJNd2tCSXdIaGdick96cnIwOUg0Qk85ditoZ0d1MndIMi9nb0V3WlhDd3BYOXpBR3QvaFA5c3dELy93QzIvb29GdHdkTUFpWUExd0FBQUNjQW5BRXhBWndBQndBT0JJUC92di8vQUp6K2lnUzZCZlVDSmdEckFBQUFKd0NjQUtJQVJRQUhBQTREaHYrKy8vOEF0djZLQmJZRnNBSW1BQ29BQUFBSEFBNEVndisrLy84QW5QNktCTGtFT2dJbUFPOEFBQUFIQUE0RGhmKysvLzhBdHY2S0J3WUZzQUltQUM4QUFBQUhBQTRGMHYrKy8vOEFuZjZLQmdzRU9nSW1BTzRBQUFBSEFBNEUxLysrLy84QU1QNktCYTBGc0FJbUFOZ0FBQUFIQUE0RWVmKysvLzhBS1A2S0JMd0VPZ0ltQU8wQUFBQUhBQTREaVArK0FBRUFIZ0FBQk5NRnNBQVFBQUFKQVRNQk14VWpCeEVqRVNjak5UTUJNd0o0QVlmVS9sZCt6d2k0QWV5YS9salVBcjRDOHZ6MmxRLzkvZ0lQQXBVRENnQUJBQzcrWUFQZkJEb0FFUUFBQlNNUkl4RWpOVE1CTXdFWE16Y0JNd0V6QTBybXV0ekIvcCs5QVFjV0F4Y0JBTDMrb3NrTS9td0JsSlVEc2YwQVhsNERBUHhQQUFFQVFRQUFCTkFGc0FBUkFBQUJJd0VqQ1FFakFTTTFNd0V6Q1FFekFUTUR6YkFCczl6K2x2Nlg0QUd5b3BYK1p0NEJYQUZnMy81bG93S2UvV0lDU1AyNEFwNlZBbjM5d3dJOS9ZTUFBQUFBQVFBdUFBQUR6d1E2QUJFQUFBRWpBU01MQVNNQkl6VXpBVE1iQVRNQk13TStyd0ZBMWZyNjJBRkJyYUwrMWRidDhOaisxcVFCNGY0ZkFaNytZZ0hobFFIRS9tMEJrLzQ4QUFBQS8vOEFZLy90QSt3RVRBSUdBTG9BQVAvL0FCc0FBQVJ6QmJBQ0pnQW9BQUFBQndIVC80eitmdi8vQUxzQ2pBWHpBeUVBUmdHR3J3Qm1aa0FBQUFJQXFRQUFBV1lGc0FBREFBY0FBQUVqRVRNVEl6VXpBV1M1dVFLOXZRSGVBOUw2VU1nQUFBQUFBQUFBQUFBQUFBQUFHZ0JTQUpJQTZBRkFBVkFCY2dHV0Fib0IwZ0hvQWZZQ0FnSVFBa0FDVUFKNkFyUUMxQU1HQTBZRFpBT3VBL0FEL0FRSUJDQUVOQVJNQkh3RThBVU1CVUlGZEFXYUJiUUZ5Z1lBQmhnR0pBWkFCbHdHYkFhUUJxZ0czZ2NDQjBBSGVBZXlCOFlINWdmK0NDb0lTZ2hpQ0hnSWpBaWFDS3dJeEFqU0NPQUpIZ2xVQ1lBSnRBbm1DZ29LVGdweUNvUUtxQXJFQ3RBTENnc3VDMXdMa2d2R0MrWU1IZ3hFREdnTWdBeXFETWdNOGcwSURUZ05SZzEwRFo0TnNnM21EaG9PWmc2UURxUVBDQThjRDNJUHNnKytEODRRTWhCQUVHWVFoaEN3RU9vUStCRWdFVFlSUkJGZ0VYSVJuQkdvRWJvUnpCSGVFZzRTT0JKYUVxd1MwaE1NRTJnVHRoUFFGQndVVWhSOEZJZ1VwQlRBRk5nVkFoVTJGWFFWeUJYa0Zob1dYQmFXRnNBVzdoY01GMEFYVkJkb0Y0SVhrQmUyRjlnWCtCZ09HRFFZUWhoUUdGb1llQmlPR0p3WXFoakVHTXdZM2hqMEdUQVpSaGxpR1hRWmtoblFHZm9hTkJwNEdyZ2ExQnNjRzFZYmpodXlHK29jQ0J3K0hJZ2NzQnprSFJnZFRoMXlIWmdkMWg0SUhrZ2VoQjdBSHdZZk5COXFINklmMGgvNklCSWdPaUJtSUpJZ3ppRG1JUVloTGlGd0lZZ2hxaUhFSWVRaURDSTJJbG9pamlMTUl2WWpPQ051STRBanFpUFdKQkFrS0NSRUpHWWtoQ1NjSks0a3dpVWNKVFFsVmlWd0paQWx1Q1hrSmdnbU5pWnVKcGdtMWljR0p6d25iQ2VhSjdRbjVpZ1lLRVlvaENpOEtONHBCQ2t5S1dJcG9DblVLaHdxWENxc0t2b3JOaXRxSzQ0cnRpdjRMRFFzbEN6MExUSXRjQzJjTGNRdDhDNEVMaUl1TWk1Q0x0d3ZOQzlpTDQ0dnpDL2lML2d3SURCSU1HNHdsREMwTU5RdzhERU1NVFl4WURHMk1nZ3lKakpFTW00eWxqSzRNdm96TmpOZ000Z3pzRFBZTkJBMFBEUm9OSGcwaURTc05PSTFOalY2TmNBMkFEWkNObncydERicU54dzNXRGVPTjc0MzdEZ3FPQ280S2pncU9DbzRLamdxT0NvNEtqZ3FPQ280S2pncU9EUTRQamhLT0dBNGRqaU1PSmc0cERpd09OUTQ3amtTT1NvNU5qbEdPY0k1MWpuc09mbzZHam84T25nNnVqcjRPMDQ3aUR2TU8vWThMRHcrUEZBOFlqeDBQSzQ4d2p6Z1BPNDlDRDFhUFlnOTRENEdQaFkrSmo1TVBsbytiajZFUHE0K3JqK0lQODVBQUVBZ1FGQkFia0NLUUt4QXVrRHNRUnhCUEVGcVFaSkJyRUhHUWVaQjlrSVNRa2hDZGtLYVFyUkN5a0w4UXhSRElFTThRMWhEYUVPSVE2SkQwRVFHUkQ1RWRrU0tSS3BFd2tUcVJRcEZJa1U0UldSRmRFV2VSZGhGK0VZaVJsNUdla2JDUnY1SERrYzJSM0JIZ0Vld1IreElCa2hPU0lwSXRFakNTUEJKRUVsS1NXcEpuRW5jU2twS2FFcW1TdkJMS0V0dVM1Ukwwa3YrVEJ4TU9reFdUSEpNdEV6WVRPQk02RXp3VFNCTlVFMStUWnBOeUUzVVRlQk43RTM0VGdST0VFNGNUaWhPTkU1QVRreE9XRTVrVG5CT2ZFNklUcFJPb0U2c1RyaE94RTdRVHR4TzZFNzBUd0JQREU4WVR5UlBNRTg4VDBoUFZFOWdUMnhQZUUrRVQ1QlBuRStvVDdSUHdFL01UOWhQNUUvd1QveFFDRkFVVUNCUUxGQTRVRVJRVUZCY1VHaFFkRkNBVUl4UXdGRVlVU1JSTUZFOFVVaFJWRkZnVVd4UmVGR0VVWkJSbkZHb1ViUlJ3RkhNVWRoU0RGSllVbVJTY0ZKOFVvaFNsRktnVXF4U3VGTEVVdEJTM0ZMb1V2UlRBRk1NVXhoVEpGTXdVenhUU0ZOVVUyQlRiRk40VTRSVGtGT2NVNmhUdEZQQVU4eFQyRlBrVS9CVC9GUUlWQlJVSUZRc1ZEaFVSRlJRVkZ4VWFGUjBWSUJVakZTWVZLUlVzRlM4Vk1oVTFGVGdWT3hVK0ZVRVZSQlZIRlVvVlRSVlFGVk1WVmhWWkZWd1ZYeFZpRldVVmFCVnJGVzRWY1JWMEZYY1ZlaFY5RllBVmd4V0dGWlVWcEJXbkZhb1ZyUld3RmJNVnRoVzVGYndWdnhYQ0ZjVVZ5QlhMRmM0VjBSWFVGZGNWMmhYZEZlQVY0eFhtRmVrVjdCWHZGZklWOVJYNEZmc1YvaFlCRmdRV0J4WUtGZzBXRUJZVEZoWVdHUlljRmg4V0loWWxGaWdXS3hZdUZqRVdQaFpCRmtRV1J4WktGazBXVUJaVEZsWVdZeFptRm1rV2JCWnZGbklXZFJaNEZuc1dmaGFCRm9RV2h4YUtGbzBXa0JhVEZwWVdtUmFjRnA4V29oYWxGcWdXcXhhdUZyRVd0QmEzRnJvV3ZSYkFGc01XeGhiSkZzd1d6eGJTRnVFVzVCYm5GdW9XN1Jid0Z2TVc5aGI1RnZ3Vy94Y0NGd1VYQ0JjTEZ3NFhFQmNTRnhRWEZoY1lGeG9YSEJjZUZ5QVhJaGNrRnlZWEtCY3FGeTBYTUJjekZ6WVhPUmM4Rno4WFFSZERGMFVYUnhkSkYwd1hUeGRTRjFVWFdCZGJGMTRYYkpkdWwzR1hjNWQxbDNpWGU1ZDlsMytYZ1plRGw0YVhpSmVLbDR5WGpwZVFsNUtYbEplV2w1aVhtcGVkbDUrWG9aZXNsNjZYc0plemw3YVh1SmU2bDcyWHY1ZkNsOFdYeUpmTGw4NlgwWmZVbDllWDJwZmRsOStYNFpma2wrZVg2cGZzbCsrWDhwZjFsL2lYKzVmK21BS1lCWmdJbUF1WURwZ1FtQktZRlpnWW1CdVlIcGdobUNTWUo1Z3FtQ3lZTHBnd21ET1lOcGc0bUR1WVBwaEJtRVNZUnBoSW1FdVlUcGhSbUZPWVZwaFptRnlZWDVoaW1HV1lhSmhybUc2WWNaaDBtSGFZZUpoN21INllnWmlFbUllWWlwaU5tSkNZazVpV21KbVluSmlnbUtTWXA1aXFtS3lZcjVpeW1MV1l1Smk3bUw2WXdaakVtTWVZeXBqTm1OQ1kwNWpXbU5xWTNwamhtT1NZNTVqcW1PMlk4Smp6bVBhWStwaittUUdaQkprSG1RcVpEWmtRbVJPWkZwa1ptUnlaSDVraW1TV1pLSmtzbVRDWk01azJtVG1aUEprL21VS1pSWmxJbVV1WlRwbFJtVlNaVjVsYW1WMlpZSmxrbVdpWmE1bHVtWEdaZEpsM21YcVpmWm1BbVlPWmhwbUptWXlaajVtU21aV1ptSm1ibVo2Wm9abWttYWVacXBtdG1iQ1pzNW0ybWJtWnZKbS9tY0taMHBuV21kbVozSm5mbWVLWjVabm9tZXVaN3BueG1mU1o5NW42bWYyYUFKb0RtZ2FhQ1pvTW1nNmFHWm9rbWl1YU1wbzdta1NhU0pwTW1rK2FVcHBWbWxpYVc1cGVtbWFhYnhwNUdvS2FoSnFIbW9vYWlocVBBQUFBQUFBR3dGS0FBRUFBQUFBQUFBQUh3QUFBQUVBQUFBQUFBRUFCZ0FmQUFFQUFBQUFBQUlBQndBbEFBRUFBQUFBQUFNQUVnQXNBQUVBQUFBQUFBUUFEZ0ErQUFFQUFBQUFBQVVBRmdCTUFBRUFBQUFBQUFZQURnQmlBQUVBQUFBQUFBY0FJQUJ3QUFFQUFBQUFBQWtBQmdDUUFBRUFBQUFBQUFzQUNnQ1dBQUVBQUFBQUFBd0FFd0NnQUFFQUFBQUFBQTBBTGdDekFBRUFBQUFBQUE0QUtnRGhBQUVBQUFBQUFCSUFEZ0VMQUFNQUFRUUpBQUFBUGdFWkFBTUFBUVFKQUFFQURBRlhBQU1BQVFRSkFBSUFEZ0ZqQUFNQUFRUUpBQU1BSkFGeEFBTUFBUVFKQUFRQUhBR1ZBQU1BQVFRSkFBVUFMQUd4QUFNQUFRUUpBQVlBSEFIZEFBTUFBUVFKQUFjQVFBSDVBQU1BQVFRSkFBa0FEQUk1QUFNQUFRUUpBQXNBRkFKRkFBTUFBUVFKQUF3QUpnSlpBQU1BQVFRSkFBMEFYQUovQUFNQUFRUUpBQTRBVkFMYlJtOXVkQ0JrWVhSaElHTnZjSGx5YVdkb2RDQkhiMjluYkdVZ01qQXhNMUp2WW05MGIxSmxaM1ZzWVhKSGIyOW5iR1U2VW05aWIzUnZPakl3TVROU2IySnZkRzhnVW1WbmRXeGhjbFpsY25OcGIyNGdNUzR5TURBek1UQTdJREl3TVROU2IySnZkRzh0VW1WbmRXeGhjbEp2WW05MGJ5QnBjeUJoSUhSeVlXUmxiV0Z5YXlCdlppQkhiMjluYkdVdVIyOXZaMnhsUjI5dloyeGxMbU52YlVOb2NtbHpkR2xoYmlCU2IySmxjblJ6YjI1TWFXTmxibk5sWkNCMWJtUmxjaUIwYUdVZ1FYQmhZMmhsSUV4cFkyVnVjMlVzSUZabGNuTnBiMjRnTWk0d2FIUjBjRG92TDNkM2R5NWhjR0ZqYUdVdWIzSm5MMnhwWTJWdWMyVnpMMHhKUTBWT1UwVXRNaTR3VW05aWIzUnZJRkpsWjNWc1lYSUFSZ0J2QUc0QWRBQWdBR1FBWVFCMEFHRUFJQUJqQUc4QWNBQjVBSElBYVFCbkFHZ0FkQUFnQUVjQWJ3QnZBR2NBYkFCbEFDQUFNZ0F3QURFQU13QlNBRzhBWWdCdkFIUUFid0JTQUdVQVp3QjFBR3dBWVFCeUFFY0Fid0J2QUdjQWJBQmxBRG9BVWdCdkFHSUFid0IwQUc4QU9nQXlBREFBTVFBekFGSUFid0JpQUc4QWRBQnZBQ0FBVWdCbEFHY0FkUUJzQUdFQWNnQldBR1VBY2dCekFHa0Fid0J1QUNBQU1RQXVBRElBTUFBd0FETUFNUUF3QURzQUlBQXlBREFBTVFBekFGSUFid0JpQUc4QWRBQnZBQzBBVWdCbEFHY0FkUUJzQUdFQWNnQlNBRzhBWWdCdkFIUUFid0FnQUdrQWN3QWdBR0VBSUFCMEFISUFZUUJrQUdVQWJRQmhBSElBYXdBZ0FHOEFaZ0FnQUVjQWJ3QnZBR2NBYkFCbEFDNEFSd0J2QUc4QVp3QnNBR1VBUndCdkFHOEFad0JzQUdVQUxnQmpBRzhBYlFCREFHZ0FjZ0JwQUhNQWRBQnBBR0VBYmdBZ0FGSUFid0JpQUdVQWNnQjBBSE1BYndCdUFFd0FhUUJqQUdVQWJnQnpBR1VBWkFBZ0FIVUFiZ0JrQUdVQWNnQWdBSFFBYUFCbEFDQUFRUUJ3QUdFQVl3Qm9BR1VBSUFCTUFHa0FZd0JsQUc0QWN3QmxBQ3dBSUFCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTWdBdUFEQUFhQUIwQUhRQWNBQTZBQzhBTHdCM0FIY0Fkd0F1QUdFQWNBQmhBR01BYUFCbEFDNEFid0J5QUdjQUx3QnNBR2tBWXdCbEFHNEFjd0JsQUhNQUx3Qk1BRWtBUXdCRkFFNEFVd0JGQUMwQU1nQXVBREFBQUFBQUFnQUFBQUFBQVA5cUFHUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFjQUFBQkFnQUNBQU1BQlFBR0FBY0FDQUFKQUFvQUN3QU1BQTBBRGdBUEFCQUFFUUFTQUJNQUZBQVZBQllBRndBWUFCa0FHZ0FiQUJ3QUhRQWVBQjhBSUFBaEFDSUFJd0FrQUNVQUpnQW5BQ2dBS1FBcUFDc0FMQUF0QUM0QUx3QXdBREVBTWdBekFEUUFOUUEyQURjQU9BQTVBRG9BT3dBOEFEMEFQZ0EvQUVBQVFRQkNBRU1BUkFCRkFFWUFSd0JJQUVrQVNnQkxBRXdBVFFCT0FFOEFVQUJSQUZJQVV3QlVBRlVBVmdCWEFGZ0FXUUJhQUZzQVhBQmRBRjRBWHdCZ0FHRUFvd0NFQUlVQXZRQ1dBT2dBaGdDT0FJc0FuUUNwQUtRQWlnRURBSU1Ba3dEeUFQTUFqUUNYQUlnQkJBRGVBUEVBbmdDcUFQVUE5QUQyQUtJQWtBRHdBSkVBN1FDSkFLQUE2Z0M0QUtFQTdnRUZBTmNCQmdEaUFPTUJCd0VJQUxBQXNRRUpBS1lCQ2dFTEFRd0JEUUVPQVE4QTJBRGhBTnNBM0FEZEFPQUEyUURmQVJBQkVRRVNBUk1CRkFFVkFSWUJGd0VZQVJrQkdnRWJBUndCSFFFZUFSOEJJQUVoQVNJQW53RWpBU1FCSlFFbUFTY0JLQUVwQVNvQkt3RXNBUzBBbXdFdUFTOEJNQUV4QVRJQk13RTBBVFVCTmdFM0FUZ0JPUUU2QVRzQlBBRTlBVDRCUHdGQUFVRUJRZ0ZEQVVRQlJRRkdBVWNCU0FGSkFVb0JTd0ZNQVUwQlRnRlBBVkFCVVFGU0FWTUJWQUZWQVZZQlZ3RllBVmtCV2dGYkFWd0JYUUZlQVY4QllBRmhBV0lCWXdGa0FXVUJaZ0ZuQVdnQmFRRnFBV3NCYkFGdEFXNEJid0Z3QVhFQmNnRnpBWFFCZFFGMkFYY0JlQUY1QVhvQmV3RjhBWDBCZmdGL0FZQUJnUUdDQVlNQmhBR0ZBWVlCaHdHSUFZa0JpZ0dMQVl3QmpRR09BWThCa0FHUkFaSUJrd0dVQVpVQmxnR1hBWmdCbVFHYUFac0JuQUdkQVo0Qm53R2dBYUVCb2dHakFhUUJwUUdtQWFjQnFBR3BBYW9CcXdHc0FhMEJyZ0d2QWJBQnNRR3lBYk1CdEFHMUFiWUJ0d0c0QWJrQnVnRzdBYndCdlFHK0FiOEJ3QUhCQWNJQnd3SEVBY1VCeGdISEFjZ0J5UUhLQWNzQnpBSE5BTElBc3dIT0FMWUF0d0RFQWM4QXRBQzFBTVVBZ2dEQ0FJY0IwQUNyQU1ZQXZnQy9BTHdCMFFIU0FkTUIxQUhWQWRZQjF3SFlBSXdCMlFIYUFkc0IzQUhkQUpnQW1nQ1pBTzhBcFFDU0FKd0Fwd0NQQUpRQWxRQzVBZDRCM3dIZ0FNQUI0UUhpQWVNQjVBSGxBZVlCNXdIb0Fla0I2Z0hyQWV3QjdRSHVBZThCOEFIeEFmSUI4d0gwQWZVQjlnSDNBZmdCK1FINkFmc0IvQUg5QWY0Qi93SUFBZ0VDQWdJREFnUUNCUUlHQWdjQ0NBSUpBZ29DQ3dJTUFnMENEZ0lQQWhBQ0VRSVNBaE1DRkFJVkFoWUNGd0lZQWhrQ0dnSWJBaHdDSFFJZUFoOENJQUloQWlJQ0l3SWtBaVVDSmdJbkFpZ0NLUUlxQWlzQ0xBSXRBaTRDTHdJd0FqRUNNZ0l6QWpRQ05RSTJBamNBckFJNEFqa0E2UUk2QWpzQ1BBQ3RBTWtBeHdDdUFHSUFZd0k5QUdRQXl3QmxBTWdBeWdEUEFNd0F6UURPQUdZQTB3RFFBTkVBcndCbkFOWUExQURWQUdnQTZ3QnFBR2tBYXdCdEFHd0FiZ0krQUc4QWNRQndBSElBY3dCMUFIUUFkZ0IzQUhnQWVnQjVBSHNBZlFCOEFIOEFmZ0NBQUlFQTdBQzZBajhDUUFKQkFrSUNRd0pFQVAwQS9nSkZBa1lDUndKSUFQOEJBQUpKQWtvQ1N3Sk1BazBDVGdKUEFsQUNVUUpTQWxNQ1ZBSlZBbFlBK0FENUFsY0NXQUpaQWxvQ1d3SmNBbDBDWGdKZkFtQUNZUUppQW1NQ1pBSmxBbVlDWndKb0Fta0NhZ0pyQW13Q2JRSnVBbThDY0FKeEFuSUNjd0owQW5VQ2RnSjNBbmdDZVFKNkFuc0NmQUo5QW40Q2Z3S0FBb0VDZ2dLREFvUUNoUUtHQW9jQ2lBS0pBb29BK3dEOEFvc0NqQURrQU9VQ2pRS09BbzhDa0FLUkFwSUNrd0tVQXBVQ2xnS1hBcGdDbVFLYUFwc0NuQUtkQXA0Q253S2dBcUVDb2dDN0FxTUNwQUtsQXFZQTVnRG5BcWNDcUFLcEFxb0Nxd0tzQXEwQ3JnS3ZBckFDc1FLeUFyTUN0QUsxQXJZQ3R3SzRBcmtDdWdLN0Fyd0N2UUsrQXI4Q3dBTEJBc0lDd3dMRUFzVUN4Z0xIQXNnQ3lRTEtBc3NDekFMTkFzNEN6d0xRQXRFQzBnTFRBdFFDMVFMV0F0Y0MyQUxaQXRvQzJ3TGNBdDBDM2dMZkF1QUM0UUxpQXVNQzVBTGxBdVlDNXdMb0F1a0M2Z0xyQXV3QzdRTHVBdThDOEFMeEF2SUM4d0wwQXZVQzlnTDNBdmdDK1FMNkF2c0MvQUw5QXY0Qy93TUFBd0VEQWdNREF3UURCUU1HQXdjRENBTUpBd29EQ3dNTUF3MEREZ01QQXhBREVRTVNBeE1ERkFNVkF4WURGd01ZQXhrREdnTWJBeHdESFFNZUF4OERJQU1oQXlJREl3TWtBeVVESmdNbkF5Z0RLUU1xQXlzRExBTXRBeTRETHdNd0F6RURNZ016QXpRRE5RTTJBemNET0FNNUF6b0RPd004QXowRFBnTS9BMEFEUVFOQ0EwTURSQU5GQTBZRFJ3TklBMGtEU2dOTEEwd0RUUU5PQTA4RFVBTlJBMUlEVXdOVUExVURWZ05YQTFnRFdRTmFBMXNEWEFOZEExNERYd05nQTJFRFlnTmpBMlFEWlFObUEyY0RhQU5wQTJvRGF3TnNBMjBEYmdOdkEzQURjUU55QTNNRGRBTjFBM1lEZHdONEEza0RlZ043QTN3RGZRTitBMzhEZ0FPQkE0SURnd09FQTRVRGhnT0hBNGdEaVFPS0E0c0RqQU9OQTQ0RGp3T1FBNUVEa2dPVEE1UURsUU9XQTVjRG1BT1pBNW9EbXdPY0E1MERuZ09mQTZBRG9RT2lBNk1EcEFPbEE2WURwd09vQTZrRHFnT3JBNndEclFPdUE2OERzQU94QTdJRHN3TzBBN1VEdGdPM0E3Z0R1UU82QTdzRHZBTzlBNzREdndQQUE4RUR3Z1BEQThRRHhRUEdBOGNEeUFQSkE4b0R5d1BNQTgwRHpnUFBBOUFEMFFQU0E5TUQxQVBWQTlZRDF3UFlBOWtEMmdQYkE5d0QzUVBlQTk4RDRBUGhBK0lENHdQa0ErVUQ1Z1BuQStnRDZRUHFBK3NEN0FQdEErNEQ3d1B3QS9FRDhnUHpBL1FEOVFQMkEvY0QrQVA1QS9vRCt3UDhBLzBEL2dQL0JBQUVBUVFDQkFNRUJBUUZCQVlFQndRSUJBa0VDZ1FMQkF3RURRUU9CQThFRUFRUkJCSUVFd1FVQkJVRUZnUVhCQmdFR1FRYUJCc0VIQVFkQkI0RUh3UWdCQ0VBOXdRaUJDTUFCQWQxYm1rd01EQTVCbTFoWTNKdmJnNXdaWEpwYjJSalpXNTBaWEpsWkFSSVltRnlER3RuY21WbGJteGhibVJwWXdORmJtY0RaVzVuQld4dmJtZHpCVTlvYjNKdUJXOW9iM0p1QlZWb2IzSnVCWFZvYjNKdUIzVnVhVEF5TXpjRmMyTm9kMkVIZFc1cE1ESkdNd2xuY21GMlpXTnZiV0lKWVdOMWRHVmpiMjFpQ1hScGJHUmxZMjl0WWdSb2IyOXJCM1Z1YVRBek1FWUlaRzkwWW1Wc2IzY0ZkRzl1YjNNTlpHbGxjbVZ6YVhOMGIyNXZjd2xoYm05MFpXeGxhV0VGUjJGdGJXRUZSR1ZzZEdFRlZHaGxkR0VHVEdGdFltUmhBbGhwQWxCcEJWTnBaMjFoQTFCb2FRTlFjMmtGWVd4d2FHRUVZbVYwWVFWbllXMXRZUVZrWld4MFlRZGxjSE5wYkc5dUJIcGxkR0VEWlhSaEJYUm9aWFJoQkdsdmRHRUdiR0Z0WW1SaEFuaHBBM0pvYndaemFXZHRZVEVGYzJsbmJXRURkR0YxQjNWd2MybHNiMjREY0docEEzQnphUVZ2YldWbllRZDFibWt3TTBReEIzVnVhVEF6UkRJSGRXNXBNRE5FTmdkMWJta3dOREF5QjNWdWFUQTBNRFFIZFc1cE1EUXdPUWQxYm1rd05EQkJCM1Z1YVRBME1FSUhkVzVwTURRd1JnZDFibWt3TkRFeEIzVnVhVEEwTVRRSGRXNXBNRFF4TmdkMWJta3dOREUzQjNWdWFUQTBNVGdIZFc1cE1EUXhRZ2QxYm1rd05ESXpCM1Z1YVRBME1qUUhkVzVwTURReU5nZDFibWt3TkRJM0IzVnVhVEEwTWpnSGRXNXBNRFF5T1FkMWJta3dOREpCQjNWdWFUQTBNa0lIZFc1cE1EUXlRd2QxYm1rd05ESkVCM1Z1YVRBME1rVUhkVzVwTURReVJnZDFibWt3TkRNeEIzVnVhVEEwTXpJSGRXNXBNRFF6TXdkMWJta3dORE0wQjNWdWFUQTBNellIZFc1cE1EUXpOd2QxYm1rd05ETTRCM1Z1YVRBME0wRUhkVzVwTURRelFnZDFibWt3TkROREIzVnVhVEEwTTBRSGRXNXBNRFF6UmdkMWJta3dORFF5QjNWdWFUQTBORFFIZFc1cE1EUTBOZ2QxYm1rd05EUTNCM1Z1YVRBME5EZ0hkVzVwTURRME9RZDFibWt3TkRSQkIzVnVhVEEwTkVJSGRXNXBNRFEwUXdkMWJta3dORFJFQjNWdWFUQTBORVVIZFc1cE1EUTBSZ2QxYm1rd05EVXlCM1Z1YVRBME5UUUhkVzVwTURRMU9RZDFibWt3TkRWQkIzVnVhVEEwTlVJSGRXNXBNRFExUmdkMWJta3dORFl3QjNWdWFUQTBOakVIZFc1cE1EUTJNd2QxYm1rd05EWTBCM1Z1YVRBME5qVUhkVzVwTURRMk5nZDFibWt3TkRZM0IzVnVhVEEwTmpnSGRXNXBNRFEyT1FkMWJta3dORFpCQjNWdWFUQTBOa0lIZFc1cE1EUTJRd2QxYm1rd05EWkVCM1Z1YVRBME5rVUhkVzVwTURRMlJnZDFibWt3TkRjeUIzVnVhVEEwTnpNSGRXNXBNRFEzTkFkMWJta3dORGMxQjNWdWFUQTBOMEVIZFc1cE1EUTNRZ2QxYm1rd05EZERCM1Z1YVRBME4wUUhkVzVwTURRM1JRZDFibWt3TkRkR0IzVnVhVEEwT0RBSGRXNXBNRFE0TVFkMWJta3dORGd5QjNWdWFUQTBPRE1IZFc1cE1EUTROQWQxYm1rd05EZzFCM1Z1YVRBME9EWUhkVzVwTURRNE9BZDFibWt3TkRnNUIzVnVhVEEwT0VRSGRXNXBNRFE0UlFkMWJta3dORGhHQjNWdWFUQTBPVEFIZFc1cE1EUTVNUWQxYm1rd05EazBCM1Z1YVRBME9UVUhkVzVwTURRNVF3ZDFibWt3TkRsRUIzVnVhVEEwUVRBSGRXNXBNRFJCTVFkMWJta3dORUUwQjNWdWFUQTBRVFVIZFc1cE1EUkJOZ2QxYm1rd05FRTNCM1Z1YVRBMFFUZ0hkVzVwTURSQk9RZDFibWt3TkVJMEIzVnVhVEEwUWpVSGRXNXBNRFJDT0FkMWJta3dORUk1QjNWdWFUQTBRa0VIZFc1cE1EUkNRd2QxYm1rd05FSkVCM1Z1YVRBMFF6TUhkVzVwTURSRE5BZDFibWt3TkVNM0IzVnVhVEEwUXpnSGRXNXBNRFJFT0FkMWJta3dORVV3QjNWdWFUQTBSVEVIZFc1cE1EUkdRUWQxYm1rd05FWkNCM1Z1YVRBMU1EQUhkVzVwTURVd01nZDFibWt3TlRBekIzVnVhVEExTURRSGRXNXBNRFV3TlFkMWJta3dOVEEyQjNWdWFUQTFNRGNIZFc1cE1EVXdPQWQxYm1rd05UQTVCM1Z1YVRBMU1FRUhkVzVwTURVd1FnZDFibWt3TlRCREIzVnVhVEExTUVRSGRXNXBNRFV3UlFkMWJta3dOVEJHQjNWdWFUQTFNVEFIZFc1cE1qQXdNQWQxYm1reU1EQXhCM1Z1YVRJd01ESUhkVzVwTWpBd013ZDFibWt5TURBMEIzVnVhVEl3TURVSGRXNXBNakF3TmdkMWJta3lNREEzQjNWdWFUSXdNRGdIZFc1cE1qQXdPUWQxYm1reU1EQkJCM1Z1YVRJd01FSU5kVzVrWlhKelkyOXlaV1JpYkExeGRXOTBaWEpsZG1WeWMyVmtCM1Z1YVRJd01qVUhkVzVwTWpBM05BbHVjM1Z3WlhKcGIzSUViR2x5WVFad1pYTmxkR0VFUlhWeWJ3ZDFibWt5TVRBMUIzVnVhVEl4TVRNSGRXNXBNakV4TmdsbGMzUnBiV0YwWldRSmIyNWxaV2xuYUhSb0RIUm9jbVZsWldsbmFIUm9jd3RtYVhabFpXbG5hSFJvY3d4elpYWmxibVZwWjJoMGFITUtZMjlzYjI0dWJHNTFiUWx4ZFc5MFpXUmliSGdMWTI5dGJXRmhZMk5sYm5RSGRXNXBSa1ZHUmdkMWJtbEdSa1pEQjNWdWFVWkdSa1FKWm1sMlpTNXpiV053Q0dadmRYSXVjM1Z3Q1hwbGNtOHViRzUxYlE1c1lYSm5aWEpwWjJoMGFHOXZhd3hqZVhKcGJHeHBZMmh2YjJzUVkzbHlhV3hzYVdOb2IyOXJiR1ZtZEF0amVYSnBiR3hwWTNScFl3NWljbVYyWlhScGJHUmxZMjl0WWcxaWNtVjJaV2h2YjJ0amIyMWlEbUp5WlhabFlXTjFkR1ZqYjIxaUUyTnBjbU4xYldac1pYaDBhV3hrWldOdmJXSVNZMmx5WTNWdFpteGxlR2h2YjJ0amIyMWlFMk5wY21OMWJXWnNaWGhuY21GMlpXTnZiV0lUWTJseVkzVnRabXhsZUdGamRYUmxZMjl0WWc1aWNtVjJaV2R5WVhabFkyOXRZaEZqYjIxdFlXRmpZMlZ1ZEhKdmRHRjBaUVpCTG5OdFkzQUdRaTV6YldOd0JrTXVjMjFqY0FaRUxuTnRZM0FHUlM1emJXTndCa1l1YzIxamNBWkhMbk50WTNBR1NDNXpiV053QmtrdWMyMWpjQVpLTG5OdFkzQUdTeTV6YldOd0Jrd3VjMjFqY0FaTkxuTnRZM0FHVGk1emJXTndCazh1YzIxamNBWlJMbk50WTNBR1VpNXpiV053QmxNdWMyMWpjQVpVTG5OdFkzQUdWUzV6YldOd0JsWXVjMjFqY0FaWExuTnRZM0FHV0M1emJXTndCbGt1YzIxamNBWmFMbk50WTNBSmVtVnlieTV6YldOd0NHOXVaUzV6YldOd0NIUjNieTV6YldOd0NuUm9jbVZsTG5OdFkzQUpabTkxY2k1emJXTndDSFIzYnk1c2JuVnRDSE5wZUM1emJXTndDbk5sZG1WdUxuTnRZM0FLWldsbmFIUXVjMjFqY0FsdWFXNWxMbk50WTNBSGIyNWxMbk4xY0FkMGQyOHVjM1Z3Q1hSb2NtVmxMbk4xY0FodmJtVXViRzUxYlFobWFYWmxMbk4xY0FkemFYZ3VjM1Z3Q1hObGRtVnVMbk4xY0FsbGFXZG9kQzV6ZFhBSWJtbHVaUzV6ZFhBSWVtVnlieTV6ZFhBSVkzSnZjM05pWVhJSmNtbHVaMkZqZFhSbENXUmhjMmxoYjNocFlRcDBhSEpsWlM1c2JuVnRDV1p2ZFhJdWJHNTFiUWxtYVhabExteHVkVzBJYzJsNExteHVkVzBGWnk1aGJIUUtjMlYyWlc0dWJHNTFiUWRqYUdrdVlXeDBDbVZwWjJoMExteHVkVzBKWVd4d2FHRXVZV3gwQ1dSbGJIUmhMbUZzZEFSRUxtTnVCR0V1WTI0RlVpNWhiSFFGU3k1aGJIUUZheTVoYkhRR1N5NWhiSFF5Qm1zdVlXeDBNZ2x1YVc1bExteHVkVzBHVUM1emJXTndEV041Y21sc2JHbGpZbkpsZG1VSGRXNXBNREJCUkFaRVkzSnZZWFFFYUdKaGNnUlVZbUZ5QkhSaVlYSUtRWEpwYm1kaFkzVjBaUXBoY21sdVoyRmpkWFJsQjBGdFlXTnliMjRIWVcxaFkzSnZiZ1pCWW5KbGRtVUdZV0p5WlhabEIwRnZaMjl1WldzSFlXOW5iMjVsYXd0RFkybHlZM1Z0Wm14bGVBdGpZMmx5WTNWdFpteGxlQWQxYm1rd01UQkJCM1Z1YVRBeE1FSUdSR05oY205dUJtUmpZWEp2YmdkRmJXRmpjbTl1QjJWdFlXTnliMjRHUldKeVpYWmxCbVZpY21WMlpRcEZaRzkwWVdOalpXNTBDbVZrYjNSaFkyTmxiblFIUlc5bmIyNWxhd2RsYjJkdmJtVnJCa1ZqWVhKdmJnWmxZMkZ5YjI0TFIyTnBjbU4xYldac1pYZ0xaMk5wY21OMWJXWnNaWGdIZFc1cE1ERXlNQWQxYm1rd01USXhERWRqYjIxdFlXRmpZMlZ1ZEF4blkyOXRiV0ZoWTJObGJuUUxTR05wY21OMWJXWnNaWGdMYUdOcGNtTjFiV1pzWlhnR1NYUnBiR1JsQm1sMGFXeGtaUWRKYldGamNtOXVCMmx0WVdOeWIyNEdTV0p5WlhabEJtbGljbVYyWlFkSmIyZHZibVZyQjJsdloyOXVaV3NLU1dSdmRHRmpZMlZ1ZEFKSlNnSnBhZ3RLWTJseVkzVnRabXhsZUF0cVkybHlZM1Z0Wm14bGVBeExZMjl0YldGaFkyTmxiblFNYTJOdmJXMWhZV05qWlc1MEJreGhZM1YwWlFac1lXTjFkR1VNVEdOdmJXMWhZV05qWlc1MERHeGpiMjF0WVdGalkyVnVkQVpNWTJGeWIyNEdiR05oY205dUJFeGtiM1FFYkdSdmRBWk9ZV04xZEdVR2JtRmpkWFJsREU1amIyMXRZV0ZqWTJWdWRBeHVZMjl0YldGaFkyTmxiblFHVG1OaGNtOXVCbTVqWVhKdmJndHVZWEJ2YzNSeWIzQm9aUWRQYldGamNtOXVCMjl0WVdOeWIyNEdUMkp5WlhabEJtOWljbVYyWlExUGFIVnVaMkZ5ZFcxc1lYVjBEVzlvZFc1bllYSjFiV3hoZFhRR1VtRmpkWFJsQm5KaFkzVjBaUXhTWTI5dGJXRmhZMk5sYm5RTWNtTnZiVzFoWVdOalpXNTBCbEpqWVhKdmJnWnlZMkZ5YjI0R1UyRmpkWFJsQm5OaFkzVjBaUXRUWTJseVkzVnRabXhsZUF0elkybHlZM1Z0Wm14bGVBZDFibWt3TWpFNEIzVnVhVEF5TVRrSGRXNXBNREl4UVFkMWJta3dNakZDQjNWdWFUQXhOaklIZFc1cE1ERTJNd1pVWTJGeWIyNEdkR05oY205dUJsVjBhV3hrWlFaMWRHbHNaR1VIVlcxaFkzSnZiZ2QxYldGamNtOXVCbFZpY21WMlpRWjFZbkpsZG1VRlZYSnBibWNGZFhKcGJtY05WV2gxYm1kaGNuVnRiR0YxZEExMWFIVnVaMkZ5ZFcxc1lYVjBCMVZ2WjI5dVpXc0hkVzluYjI1bGF3dFhZMmx5WTNWdFpteGxlQXQzWTJseVkzVnRabXhsZUF0WlkybHlZM1Z0Wm14bGVBdDVZMmx5WTNWdFpteGxlQVphWVdOMWRHVUdlbUZqZFhSbENscGtiM1JoWTJObGJuUUtlbVJ2ZEdGalkyVnVkQWRCUldGamRYUmxCMkZsWVdOMWRHVUxUM05zWVhOb1lXTjFkR1VMYjNOc1lYTm9ZV04xZEdVTFJHTnliMkYwTG5OdFkzQUlSWFJvTG5OdFkzQUpWR0poY2k1emJXTndDMEZuY21GMlpTNXpiV053QzBGaFkzVjBaUzV6YldOd0VFRmphWEpqZFcxbWJHVjRMbk50WTNBTFFYUnBiR1JsTG5OdFkzQU9RV1JwWlhKbGMybHpMbk50WTNBS1FYSnBibWN1YzIxamNBOUJjbWx1WjJGamRYUmxMbk50WTNBTlEyTmxaR2xzYkdFdWMyMWpjQXRGWjNKaGRtVXVjMjFqY0F0RllXTjFkR1V1YzIxamNCQkZZMmx5WTNWdFpteGxlQzV6YldOd0RrVmthV1Z5WlhOcGN5NXpiV053QzBsbmNtRjJaUzV6YldOd0MwbGhZM1YwWlM1emJXTndFRWxqYVhKamRXMW1iR1Y0TG5OdFkzQU9TV1JwWlhKbGMybHpMbk50WTNBTFRuUnBiR1JsTG5OdFkzQUxUMmR5WVhabExuTnRZM0FMVDJGamRYUmxMbk50WTNBUVQyTnBjbU4xYldac1pYZ3VjMjFqY0F0UGRHbHNaR1V1YzIxamNBNVBaR2xsY21WemFYTXVjMjFqY0F0VlozSmhkbVV1YzIxamNBdFZZV04xZEdVdWMyMWpjQkJWWTJseVkzVnRabXhsZUM1emJXTndEbFZrYVdWeVpYTnBjeTV6YldOd0MxbGhZM1YwWlM1emJXTndERUZ0WVdOeWIyNHVjMjFqY0F0QlluSmxkbVV1YzIxamNBeEJiMmR2Ym1WckxuTnRZM0FMUTJGamRYUmxMbk50WTNBUVEyTnBjbU4xYldac1pYZ3VjMjFqY0F4MWJta3dNVEJCTG5OdFkzQUxRMk5oY205dUxuTnRZM0FMUkdOaGNtOXVMbk50WTNBTVJXMWhZM0p2Ymk1emJXTndDMFZpY21WMlpTNXpiV053RDBWa2IzUmhZMk5sYm5RdWMyMWpjQXhGYjJkdmJtVnJMbk50WTNBTFJXTmhjbTl1TG5OdFkzQVFSMk5wY21OMWJXWnNaWGd1YzIxamNBdEhZbkpsZG1VdWMyMWpjQXgxYm1rd01USXdMbk50WTNBUlIyTnZiVzFoWVdOalpXNTBMbk50WTNBUVNHTnBjbU4xYldac1pYZ3VjMjFqY0F0SmRHbHNaR1V1YzIxamNBeEpiV0ZqY205dUxuTnRZM0FMU1dKeVpYWmxMbk50WTNBTVNXOW5iMjVsYXk1emJXTndEMGxrYjNSaFkyTmxiblF1YzIxamNCQktZMmx5WTNWdFpteGxlQzV6YldOd0VVdGpiMjF0WVdGalkyVnVkQzV6YldOd0MweGhZM1YwWlM1emJXTndFVXhqYjIxdFlXRmpZMlZ1ZEM1emJXTndDMHhqWVhKdmJpNXpiV053Q1V4a2IzUXVjMjFqY0F0T1lXTjFkR1V1YzIxamNCRk9ZMjl0YldGaFkyTmxiblF1YzIxamNBdE9ZMkZ5YjI0dWMyMWpjQXhQYldGamNtOXVMbk50WTNBTFQySnlaWFpsTG5OdFkzQVNUMmgxYm1kaGNuVnRiR0YxZEM1emJXTndDMUpoWTNWMFpTNXpiV053RVZKamIyMXRZV0ZqWTJWdWRDNXpiV053QzFKallYSnZiaTV6YldOd0MxTmhZM1YwWlM1emJXTndFRk5qYVhKamRXMW1iR1Y0TG5OdFkzQU5VMk5sWkdsc2JHRXVjMjFqY0F0VFkyRnliMjR1YzIxamNCRlVZMjl0YldGaFkyTmxiblF1YzIxamNBdFVZMkZ5YjI0dWMyMWpjQXRWZEdsc1pHVXVjMjFqY0F4VmJXRmpjbTl1TG5OdFkzQUxWV0p5WlhabExuTnRZM0FLVlhKcGJtY3VjMjFqY0JKVmFIVnVaMkZ5ZFcxc1lYVjBMbk50WTNBTVZXOW5iMjVsYXk1emJXTndFRmRqYVhKamRXMW1iR1Y0TG5OdFkzQVFXV05wY21OMWJXWnNaWGd1YzIxamNBNVpaR2xsY21WemFYTXVjMjFqY0F0YVlXTjFkR1V1YzIxamNBOWFaRzkwWVdOalpXNTBMbk50WTNBTFdtTmhjbTl1TG5OdFkzQVBaMlZ5YldGdVpHSnNjeTV6YldOd0NrRnNjR2hoZEc5dWIzTU1SWEJ6YVd4dmJuUnZibTl6Q0VWMFlYUnZibTl6Q1VsdmRHRjBiMjV2Y3d4UGJXbGpjbTl1ZEc5dWIzTU1WWEJ6YVd4dmJuUnZibTl6Q2s5dFpXZGhkRzl1YjNNUmFXOTBZV1JwWlhKbGMybHpkRzl1YjNNRlFXeHdhR0VFUW1WMFlRZEZjSE5wYkc5dUJGcGxkR0VEUlhSaEJFbHZkR0VGUzJGd2NHRUNUWFVDVG5VSFQyMXBZM0p2YmdOU2FHOERWR0YxQjFWd2MybHNiMjREUTJocERFbHZkR0ZrYVdWeVpYTnBjdzlWY0hOcGJHOXVaR2xsY21WemFYTUtZV3h3YUdGMGIyNXZjd3hsY0hOcGJHOXVkRzl1YjNNSVpYUmhkRzl1YjNNSmFXOTBZWFJ2Ym05ekZIVndjMmxzYjI1a2FXVnlaWE5wYzNSdmJtOXpCV3RoY0hCaEIyOXRhV055YjI0SGRXNXBNRE5DUXdKdWRRTmphR2tNYVc5MFlXUnBaWEpsYzJsekQzVndjMmxzYjI1a2FXVnlaWE5wY3d4dmJXbGpjbTl1ZEc5dWIzTU1kWEJ6YVd4dmJuUnZibTl6Q205dFpXZGhkRzl1YjNNSGRXNXBNRFF3TVFkMWJta3dOREF6QjNWdWFUQTBNRFVIZFc1cE1EUXdOZ2QxYm1rd05EQTNCM1Z1YVRBME1EZ0hkVzVwTURReFFRZDFibWt3TkRCREIzVnVhVEEwTUVVSGRXNXBNRFF4TUFkMWJta3dOREV5QjNWdWFUQTBNVE1IZFc1cE1EUXhOUWQxYm1rd05ERTVCM1Z1YVRBME1VTUhkVzVwTURReFJBZDFibWt3TkRGRkIzVnVhVEEwTVVZSGRXNXBNRFF5TUFkMWJta3dOREl4QjNWdWFUQTBNaklIZFc1cE1EUXlOUWQxYm1rd05ETXdCM1Z1YVRBME16VUhkVzVwTURRek9RZDFibWt3TkRORkIzVnVhVEEwTkRBSGRXNXBNRFEwTVFkMWJta3dORFF6QjNWdWFUQTBORFVIZFc1cE1EUTFNUWQxYm1rd05EVXpCM1Z1YVRBME5UVUhkVzVwTURRMU5nZDFibWt3TkRVM0IzVnVhVEEwTlRnSGRXNXBNRFExUXdkMWJta3dORFZGQmxkbmNtRjJaUVozWjNKaGRtVUdWMkZqZFhSbEJuZGhZM1YwWlFsWFpHbGxjbVZ6YVhNSmQyUnBaWEpsYzJsekJsbG5jbUYyWlFaNVozSmhkbVVHYldsdWRYUmxCbk5sWTI5dVpBbGxlR05zWVcxa1ltd0hkVzVwUmtJd01nZDFibWt3TVVZd0IzVnVhVEF5UWtNSGRXNXBNVVV6UlFkMWJta3hSVE5HQjNWdWFURkZNREFIZFc1cE1VVXdNUWQxYm1reFJqUkVCM1Z1YVVaQ01ETUhkVzVwUmtJd05BZDFibWt3TkRBd0IzVnVhVEEwTUVRSGRXNXBNRFExTUFkMWJta3dORFZFQjNWdWFUQTBOekFIZFc1cE1EUTNNUWQxYm1rd05EYzJCM1Z1YVRBME56Y0hkVzVwTURRM09RZDFibWt3TkRjNEIzVnVhVEEwT1RnSGRXNXBNRFE1T1FkMWJta3dORUZCQjNWdWFUQTBRVUlIZFc1cE1EUkJSUWQxYm1rd05FRkdCM1Z1YVRBMFF6QUhkVzVwTURSRE1RZDFibWt3TkVNeUIzVnVhVEEwUTBZSGRXNXBNRFJFTUFkMWJta3dORVF4QjNWdWFUQTBSRElIZFc1cE1EUkVNd2QxYm1rd05FUTBCM1Z1YVRBMFJEVUhkVzVwTURSRU5nZDFibWt3TkVRM0IzVnVhVEEwUkVFSGRXNXBNRFJFT1FkMWJta3dORVJDQjNWdWFUQTBSRU1IZFc1cE1EUkVSQWQxYm1rd05FUkZCM1Z1YVRBMFJFWUhkVzVwTURSRk1nZDFibWt3TkVVekIzVnVhVEEwUlRRSGRXNXBNRFJGTlFkMWJta3dORVUyQjNWdWFUQTBSVGNIZFc1cE1EUkZPQWQxYm1rd05FVTVCM1Z1YVRBMFJVRUhkVzVwTURSRlFnZDFibWt3TkVWREIzVnVhVEEwUlVRSGRXNXBNRFJGUlFkMWJta3dORVZHQjNWdWFUQTBSakFIZFc1cE1EUkdNUWQxYm1rd05FWXlCM1Z1YVRBMFJqTUhkVzVwTURSR05BZDFibWt3TkVZMUIzVnVhVEEwUmpnSGRXNXBNRFJHT1FkMWJta3dORVpEQjNWdWFUQTBSa1FIZFc1cE1EVXdNUWQxYm1rd05URXlCM1Z1YVRBMU1UTUhkVzVwTVVWQk1BZDFibWt4UlVFeEIzVnVhVEZGUVRJSGRXNXBNVVZCTXdkMWJta3hSVUUwQjNWdWFURkZRVFVIZFc1cE1VVkJOZ2QxYm1reFJVRTNCM1Z1YVRGRlFUZ0hkVzVwTVVWQk9RZDFibWt4UlVGQkIzVnVhVEZGUVVJSGRXNXBNVVZCUXdkMWJta3hSVUZFQjNWdWFURkZRVVVIZFc1cE1VVkJSZ2QxYm1reFJVSXdCM1Z1YVRGRlFqRUhkVzVwTVVWQ01nZDFibWt4UlVJekIzVnVhVEZGUWpRSGRXNXBNVVZDTlFkMWJta3hSVUkyQjNWdWFURkZRamNIZFc1cE1VVkNPQWQxYm1reFJVSTVCM1Z1YVRGRlFrRUhkVzVwTVVWQ1FnZDFibWt4UlVKREIzVnVhVEZGUWtRSGRXNXBNVVZDUlFkMWJta3hSVUpHQjNWdWFURkZRekFIZFc1cE1VVkRNUWQxYm1reFJVTXlCM1Z1YVRGRlF6TUhkVzVwTVVWRE5BZDFibWt4UlVNMUIzVnVhVEZGUXpZSGRXNXBNVVZETndkMWJta3hSVU00QjNWdWFURkZRemtIZFc1cE1VVkRRUWQxYm1reFJVTkNCM1Z1YVRGRlEwTUhkVzVwTVVWRFJBZDFibWt4UlVORkIzVnVhVEZGUTBZSGRXNXBNVVZFTUFkMWJta3hSVVF4QjNWdWFURkZSRElIZFc1cE1VVkVNd2QxYm1reFJVUTBCM1Z1YVRGRlJEVUhkVzVwTVVWRU5nZDFibWt4UlVRM0IzVnVhVEZGUkRnSGRXNXBNVVZFT1FkMWJta3hSVVJCQjNWdWFURkZSRUlIZFc1cE1VVkVRd2QxYm1reFJVUkVCM1Z1YVRGRlJFVUhkVzVwTVVWRVJnZDFibWt4UlVVd0IzVnVhVEZGUlRFSGRXNXBNVVZGTWdkMWJta3hSVVV6QjNWdWFURkZSVFFIZFc1cE1VVkZOUWQxYm1reFJVVTJCM1Z1YVRGRlJUY0hkVzVwTVVWRk9BZDFibWt4UlVVNUIzVnVhVEZGUlVFSGRXNXBNVVZGUWdkMWJta3hSVVZEQjNWdWFURkZSVVFIZFc1cE1VVkZSUWQxYm1reFJVVkdCM1Z1YVRGRlJqQUhkVzVwTVVWR01RZDFibWt4UlVZMEIzVnVhVEZGUmpVSGRXNXBNVVZHTmdkMWJta3hSVVkzQjNWdWFURkZSamdIZFc1cE1VVkdPUVprWTNKdllYUUhkVzVwTWpCQlFnZDFibWt3TkRsQkIzVnVhVEEwT1VJSGRXNXBNRFJCTWdkMWJta3dORUV6QjNWdWFUQTBRVU1IZFc1cE1EUkJSQWQxYm1rd05FSXlCM1Z1YVRBMFFqTUhkVzVwTURSQ05nZDFibWt3TkVJM0IzVnVhVEEwUTBJSGRXNXBNRFJEUXdkMWJta3dORVkyQjNWdWFUQTBSamNIZFc1cE1EUTVOZ2QxYm1rd05EazNCM1Z1YVRBMFFrVUhkVzVwTURSQ1JnZDFibWt3TkVKQ0IzVnVhVEEwT0VNSGRXNXBNRFEyTWdkMWJta3dORGt5QjNWdWFUQTBPVE1IZFc1cE1EUTVSUWQxYm1rd05EbEdCM1Z1YVRBME9FRUhkVzVwTURRNFFnZDFibWt3TkVNNUIzVnVhVEEwUTBFSGRXNXBNRFJEUkFkMWJta3dORU5GQjNWdWFUQTBRelVIZFc1cE1EUkROZ2QxYm1rd05FSXdCM1Z1YVRBMFFqRUhkVzVwTURSR1JRZDFibWt3TkVaR0IzVnVhVEExTVRFSGRXNXBNakF4TlFkMWJta3dNREF5QUFBQUFRQUFBQXdBQUFBQUFBQUFBZ0FJQU1vQXlnQUJBUjRCSkFBQkFWWUJZUUFCQVhZQmRnQUJBWHNCZkFBQkFYNEJmZ0FCQVpNQmxRQUJBZFVCMVFBQkFBQUFBQUFBQUFBQUFRQUFBQW9BSGdBc0FBRkVSa3hVQUFnQUJBQUFBQUQvL3dBQkFBQUFBV3RsY200QUNBQUFBQUVBQUFBQkFBUUFBZ0FBQUFRQURrMW9WUVp6WEFBQmV0Z0FCQUFBQWEwRFpBTnFBM0FEZGdQb0EvSUVCQVFxQkVBRVNnUnNCSTRFbEFUaUJSQUZNZ1ZVQlhvRm9BV21Cb3dHa2dhNEJ0NEhRQWZTQi9RSUVnZ3NDRElJUUFoR0NFd0lVZ2g0Q0pJSW9BaStDTVFJNGdqOENRSUp4QW8yQ2x3S3pnclVDdDRLNUFycUN2QUxEZ3NjQzBZTFRBdGlDM3dMZ2d1Y0M2SUxxQXZlQytRTDdnd2NERUlNYUF5S0RLd016Z3o4RFY0TmRBMldEYmdPQWc0a0RrWU9lQTZlRHNRT3pnN1lEdklQQkE4T0R5Z1BMZzlFRDVJUHJBL0dEOXdQL2hBZ0VEb1FRQkJpRUlRUXBoRVlFVDRSWkJHQ0Vad1NYaEpvRXJZVEJCTU9FeFFUR2hNZ0V5WVRMQk5TRTF3VFloTjBFNTRUdEJQR0U5Z1QvaFFFRkJvVUpCUTJGRndVY2hSNEZINFVtQlNlRk1RVTZoWFFGa0lXdEJjbUY1Z1lDaGg4R080WkFCa1dHU3daUWhsWUdYb1puQm0rR2VBYUFob29HazRhZEJxYUdzQWF4aHJNR3RJYTJCdHFHNGdicGh2RUcrSWNBQndlSER3Y1FoeElIRTRjVkJ4YUhJQWNwaHpNSFBJZEdCMDJIVlFkeGgza0hsWWVkQjdtSHdRZkZoOG9Iem9mVEI5eUg0Z2ZqaCtrSDZvZndCL0dIOXdmNGgvNEgvNGdJQ0FtSUVnZ2FpQ01JSzRnMENEV0lTUWhVaUdBSWE0aDNDSCtJZ1FpSmlJc0lrNGlWQ0phSW9BaXBpTE1JdklqR0NNK0kwd2pXaU5vSkU0bE5DWWFKaUFtSmlZc0pqSW1PQ1krSm1RbTlpY1VKNllueUNmcUtBd29maWlVS0xZbzJDaitLWkFxQWlvTUtpSXFSQ3BtS29ncTFpcjRLeG9yUUN0bUxFd3MzaTFBTFdJdDlDMzZMaUF1UGk1a0xub3ZQQzllTDRBdmhpL1VNQ0l3YkREZU1PZ3hxakhBTWVJeUJESXFNbEF5WWpOSU02b3p5RFBPTS9RMERqUXNOREkwT0RSQ05HQTBoalNzTk5JMVpEV0NOWWcxampXVU5iWTF2RFl1Tmt3MmNqYUlObzQydERiU051UTNkamVVTjdZNEdEZ2VPRUE0c2pqUU9VSTVZRGwyT1h3NWdqbUlPZW81OERvV09qdzZZanA4T3NZNjVEc3VPMHc3bGp1MFBCWThIRHlPUEt3OUhqMDhQYTQ5ekQ0K1Bsdyt6ajdzUDE0L2ZEL3VRQXhBZmtDY1FRNUJMRUdlUWJ4Q0xrSk1RcjVDM0VMeVF2aEREa01VUXlwRE1FTkdRMHhEWWtOb1EzNURoRU9hUTZCRHRrTzhROTVFQUVRbVJFeEVja1NZUkw1RTVFVUtSVEJGVmtWOFJhSkZ5RVh1UmhSR09rWkFSa1pHMkViMlI0aEhwa2c0U0ZaSXBFakdTYXhLRGtvVVN0Wks0RXRDUzBoTFRrdDBURFpNaEV5bVRNZ0FBUUJaQUFzQUFRQlpBQXNBQVFBUi95QUFIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUFnRU1BQXNCVS8vbUFBUUFDLy9tQUQvLzlBQmYvKzhCUFAvdEFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWYvN1FHOS8vVUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFJQVZQL21BYWYvd0FBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQUVCcC8vckFCTUFXZi9CQUxQL3hRREYvN1FBNWYvWEFQSC91UUVFLzdJQkYvL1NBUnYveUFFdi82QUJPZi9GQVVILzVBRksvOHdCVFAvTUFWVC95d0ZWLys4QnFmL29BYTMvNWdHMS8rY0J0di9uQUFzQVdmK2tBYWNBRXdHcC8vTUJyZi94QWJYLzhnRzIvL0VCdWY4N0Fici8yZ0c3LzFRQnZQK1JBYjcvUHdBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFmLzdRRzkvL1VBQ1FCV0FBNEFmLytmQUwvLzNnREMvK1VBMVArb0FPai95Z0ZHLytNQnAvL0dBZC8vOVFBQkFhY0FEZ0E1QUZUL3RRQlovOGNBYS82NEFIci9LQUIvLzAwQWhQK09BSWYvb1FDei82NEF1djkrQUw3L1p3REIvNGNBd3Y5bEFNWC9uZ0RILzJvQXlQOXpBTW4vWGdEVS82VUE0UUFQQU9YLzVBRG0vNkFBNlA5MEFPci9nQUR4LzdJQStQOTlBUHIvZ0FEOC8za0JBdjk5QVFUL2Z3RVgvNWdCRy8vYUFTZi9nUUVwLzVnQkxmOTlBUy8vc3dFei82QUJPZjk4QVR2L21nRTgvMndCUWYvbUFVYi9hd0ZLLzVJQlRQK3RBVkQvZXdGVEFBOEJWUCtSQVZYLzhnR24vNjhCcWYrNUFhMy91UUcxLzdrQnR2KzVBYmovdkFHNS8vRUJ2UC94QWIzLzdRSGMvNmtCMy8vSkFBRUJwLy9yQUFrQUN3QVVBRDhBRVFCVS8rSUFYd0FUQWFmL3RBR3AvOWtCcmYvWkFiWC8yUUcyLzlrQUNRQUxBQThBUHdBTUFGVC82d0JmQUE0QnAvL0xBYW4vNlFHdC8rY0J0Zi9uQWJiLzV3QVlBTFAvMUFDOS8rMEF2d0FSQU1YLzRBREgvK2NBeVAvbEFNbi83Z0RVQUJJQTVmL3BBUEgvMXdFdi85Y0JPZi9UQVR2LzFnRTgvOFVCUWYvbkFVa0FEUUZMQUF3QlZQL1dBVlgvOGdHcC8ra0JyZi9uQWJYLzV3RzIvK2tCMy8vd0FDUUFDUC9pQUFzQUZBQU0vODhBUHdBU0FFai82Z0JVLzlnQVZ2L3FBRjhBRXdCci82NEFldi9OQUgvL29BQ0UvOEVBaC8vQUFMUC8wQUMzLytvQXV2L0dBTHNBRFFDOS8ra0F2di9XQU1ILzZBREMvN29BeGYvcEFNZi95d0RJLzlvQXlmL0hBVzcvMHdHbi82c0JxZi9OQWEzL3l3RzEvOHNCdHYvTEFibi84d0c4Ly9NQnZmL3ZBZHovNkFIZi8rNEFDQUJaLytVQXMvL0xBTWovNUFHbkFBMEJxZi90QWEzLzZ3RzEvK3dCdHYvc0FBY0E4Zi93QVFULzhRRWIvL01CTC8veEFVci84d0ZNLytrQlZQL1RBQVlBeGYvcUFPai83Z0R4LzdBQkwvL3NBVlQvN0FIYy8rZ0FBUUR4Ly9VQUF3QUxBQlFBUHdBU0FGOEFFd0FCQVBIL3dBQUJBUEgvd0FBQkFQSC93QUFKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFZQXhmL3FBT2ovN2dEeC83QUJMLy9zQVZULzdBSGMvK2dBQXdCSUFBOEFWZ0FnQUZrQUVRQUhBRWdBRFFEQkFBc0F3di9xQU1VQURBRG8vOGdCRi8veEFkLy85UUFCQVJmLzhRQUhBRWdBRFFEQkFBc0F3di9xQU1VQURBRG8vOGdCRi8veEFkLy85UUFHQU1YLzZnRG8vKzRBOGYrd0FTLy83QUZVLyt3QjNQL29BQUVBOGYvMUFEQUFWUDl0QUZuL2pBQnIvYjhBZXY1OUFILyt2QUNFL3lzQWgvOUxBTFAvWVFDNi93OEF2djdvQU1IL0h3REMvdVVBeGY5R0FNZis3UURJL3YwQXlmN1pBTlQvVWdEaEFBVUE1Zis5QU9iL1NRRG8vdjRBNnY4VEFQSC9hQUQ0L3c0QSt2OFRBUHovQndFQy93NEJCUDhSQVJmL1BBRWIvNndCSi84VkFTbi9QQUV0L3c0QkwvOXFBVFAvU1FFNS93d0JPLzgvQVR6KzhRRkIvOEFCUnY3dkFVci9NUUZNLzE4QlVQOEtBVk1BQlFGVS96QUJWZi9WQWR6L1dRSGYvNDhBSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFjQUNIL3d3QlcvKzhBV2YvZkFKYi83Z0N6LytVQXRQL1JBTDhBRVFERi84Z0ExQUFUQU9IL3hRRHgvOG9CTC8rZkFUai9VUUU1LzNzQk8vL0tBVHovM1FGQi8vSUJTZjkxQVV2L3lnRlQvMDhCVlArTUFhMy85UUcxLy9VQnVmL0hBYnIvOFFHNy84MEJ2UC9kQWI3L3hBQUJBTDhBRFFBQ0FMUC93Z0MvQUJBQUFRQy8vK0lBQVFEQy8vSUFBUUMvQUE0QUJ3QklBQTBBd1FBTEFNTC82Z0RGQUF3QTZQL0lBUmYvOFFIZi8vVUFBd0RGLyswQThmL0FBZHovN0FBS0FMci81Z0M5LytzQXZ2L3BBTUQvOEFEQi8rY0F4Zi9qQU1mL3pnREkvOVFBeWYvYkFkLy83Z0FCQVBIL3dBQUZBTDMvN0FDL0FBOEF3Zi9xQU1YL3hBREgvK2NBQmdCSS8ra0F2Zi91QUw4QUVBREIvK3dBeGY4Z0Fkei8yZ0FCQUw4QUR3QUdBTVgvNmdEby8rNEE4ZityQVMvLzdBRlUvK3dCM1Avb0FBRUE4Zi9WQUFFQXhRQUxBQTBBU0FBTUFNRUFDd0RGQUF3QnAvKy9BYW4vN2dHdC8rd0J0Zi90QWJiLzdBRzQvL1VCdVFBT0Fic0FEUUcrQUEwQjMvL3RBQUVBOGYvWUFBSUE4ZitxQWR6LzRRQUxBT0gvMUFEeC84a0JCUC9sQVJ2LzR3RXYvOFFCT1AvaEFVbi8xQUZLLy9VQlMvL25BVlAvMGdGVS84a0FDUURoLzhNQThmL1BBUy8vemdFNC8rY0JPLy9mQVVuLzBRRkwvK3dCVS8rZ0FWVC8wUUFKQU9IL3d3RHgvODhCTC8vT0FUai81d0U3Lzk4QlNmL1JBVXYvN0FGVC82QUJWUC9SQUFnQTRmL0pBUEgvM3dFRS8rMEJHLy9yQVMvLzN3RTcvK2tCU3YvMUFWVC80QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURoLytZQThmL1FBUy8vemdFNC8rZ0JTZi9uQVV2LzdRRlQvK1lCVlAvUUFBc0ExQUFVQU9ILzRBRG9BQk1CT1AvaEFUbi80QUU4LytFQlFmL3BBVW4vM3dGTC85NEJVLy9mQVZYLzhnQVlBTFAvMUFDOS8rMEF2d0FSQU1YLzRBREgvK2NBeVAvbEFNbi83Z0RVQUJJQTVmL3BBUEgvMXdFdi85Y0JPZi9UQVR2LzFnRTgvOFVCUWYvbkFVa0FEUUZMQUF3QlZQL1dBVlgvOGdHcC8ra0JyZi9uQWJYLzV3RzIvK2tCMy8vd0FBVUFHZi95QU9ILzhRRkovL0lCUy8veUFWUC84Z0FJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FCSUExUCt1QU9FQUVnRG0vK0FBNlArdEFPci8xZ0Q0Lzk4QS9QL1NBUUwvNEFFWC84NEJKLy9kQVNuLzRnRXQvK0FCTS8vZ0FUbi82UUU4LzlvQlJ2KzlBVkQvM3dGVEFCRUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBTUFOUUFFd0RoLytZQTR2LzBBT2dBRWdEeC8rY0JMLy9uQVRqLzVRRTUvK2dCU2YvbUFVdi81Z0ZULytZQlZQL25BQWtBNGYvREFQSC96d0V2Lzg0Qk9QL25BVHYvM3dGSi85RUJTLy9zQVZQL29BRlUvOUVBQ1FEaC84TUE4Zi9QQVMvL3pnRTQvK2NCTy8vZkFVbi8wUUZMLyt3QlUvK2dBVlQvMFFBQ0FOVC80Z0ZULytRQUFnRFUvK0VBNlAva0FBWUE2UC91QVBILzdnRUUvL1FCRy8veEFTLy83d0ZVLys4QUJBRHgvL1FCQlAvMUFTLy85UUZVLy9VQUFnRG8vOGtCRi8vdUFBWUE2QUFVQVBILzdRRDMvK0lCTC8vdEFUbi83UUZVLyswQUFRRVgvL0VBQlFFWC8rc0JxZi9yQWEzLzZRRzEvK3NCdHYvckFCTUFTQUFOQU1ML3F3REQvOEFBeC8vVkFPai9xZ0VYLytJQkd3QU1BVW9BQ3dGTUFBc0JwLysvQWFuLzdnR3QvK3dCdGYvdEFiYi83QUc0Ly9VQnVRQU9BYnNBRFFHK0FBMEIzLyt3QUFZQXhmL3FBT2ovN2dEeC83QUJMLy9zQVZULzdBSGMvK2dBQmdEb0FCUUE4Zi93QVB3QURBRXYvL0FCT2YvbUFWVC84QUFGQU9nQU9nRHgvK01CTC8vaUFUbi80d0ZVLytNQUNBRHgvN29CQlAvUEFSdi8yd0V2LzFBQk9mK2RBVXIvOEFGTS8vSUJWUDlNQUFnQThmKzZBUVQvendFYi85c0JMLzlRQVRuL25RRksvL0FCVFAveUFWVC9UQUFHQU1YLzZnRG8vKzRBOGYrd0FTLy83QUZVLyt3QjNQL29BQUVBNlAvdkFBZ0E4Zis2QVFUL3p3RWIvOXNCTC85UUFUbi9uUUZLLy9BQlRQL3lBVlQvVEFBSUFQSC91Z0VFLzg4QkcvL2JBUy8vVUFFNS81MEJTdi93QVV6LzhnRlUvMHdBQ0FEeC83b0JCUC9QQVJ2LzJ3RXYvMUFCT2YrZEFVci84QUZNLy9JQlZQOU1BQndBSWYvREFGYi83d0JaLzk4QWx2L3VBTFAvNVFDMC85RUF2d0FSQU1YL3lBRFVBQk1BNGYvRkFQSC95Z0V2LzU4Qk9QOVJBVG4vZXdFNy84b0JQUC9kQVVILzhnRkovM1VCUy8vS0FWUC9Ud0ZVLzR3QnJmLzFBYlgvOVFHNS84Y0J1di94QWJ2L3pRRzgvOTBCdnYvRUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FDUUFMQUJRQVB3QVJBRlQvNGdCZkFCTUJwLyswQWFuLzJRR3QvOWtCdGYvWkFiYi8yUUFIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBR0FNWC82Z0RvLys0QThmK3dBUy8vN0FGVS8rd0IzUC9vQURBQVZQOXRBRm4vakFCci9iOEFldjU5QUgvK3ZBQ0UveXNBaC85TEFMUC9ZUUM2L3c4QXZ2N29BTUgvSHdEQy91VUF4ZjlHQU1mKzdRREkvdjBBeWY3WkFOVC9VZ0RoQUFVQTVmKzlBT2IvU1FEby92NEE2djhUQVBIL2FBRDQvdzRBK3Y4VEFQei9Cd0VDL3c0QkJQOFJBUmYvUEFFYi82d0JKLzhWQVNuL1BBRXQvdzRCTC85cUFUUC9TUUU1L3d3Qk8vOC9BVHorOFFGQi84QUJSdjd2QVVyL01RRk0vMThCVVA4S0FWTUFCUUZVL3pBQlZmL1ZBZHovV1FIZi80OEFBZ0RvLzhrQkYvL3VBQk1BV2YvQkFMUC94UURGLzdRQTVmL1hBUEgvdVFFRS83SUJGLy9TQVJ2L3lBRXYvNkFCT2YvRkFVSC81QUZLLzh3QlRQL01BVlQveXdGVi8rOEJxZi9vQWEzLzVnRzEvK2NCdHYvbkFCTUFXZi9CQUxQL3hRREYvN1FBNWYvWEFQSC91UUVFLzdJQkYvL1NBUnYveUFFdi82QUJPZi9GQVVILzVBRksvOHdCVFAvTUFWVC95d0ZWLys4QnFmL29BYTMvNWdHMS8rY0J0di9uQUFJQTZQL0pBUmYvN2dBQkFGa0FDd0FCQUZrQUN3QUJBRmtBQ3dBQkFGa0FDd0FCQUZrQUN3QUpBYW4vOGdHdC8vSUJ0Zi95QWJiLzhnRzUvOEFCdXYvc0Fidi94d0c4LzlnQnZ2Ky9BQUlCdS8vdUFiei85UUFCQWFmLzBnQUVBYW4vNndHdC8ra0J0Zi9yQWJiLzZ3QUtBYWNBRVFHcC8vQUJyZi91QWJYLzd3RzIvL0FCdWYrN0Fici83QUc3LzdjQnZQL1ZBYjcvdEFBRkFhZi84d0c1Lys0QnUvL3hBYjMvN0FHKy8rb0FCQUc1LytrQnUvL3JBYnovOFFHKy8rVUFCQUc1Ly9JQnUvL3hBYnovOVFHKy8rNEFDUUduLzc4QnFmL3VBYTMvN0FHMS8rMEJ0di9zQWJqLzlRRzVBQTRCdXdBTkFiNEFEUUFCQWFmLzd3QUZBYWYveHdHcC8vSUJyZi93QWJYLzhBRzIvL0FBQWdHbi85d0J1UUFPQUFRQnFmL3RBYTMvNndHMS8rc0J0di9yQUFrQnAvL0FBYW4vN1FHdC8rc0J0Zi9yQWJiLzZ3RzVBQThCdXdBUUFid0FEUUcrQUJBQUJRR25BQXdCcWYvd0FhMy84QUcxLy9BQnR2L3dBQUVCMS85cUFBRUIxLzhWQUFZQVNBQUxBTHIvOGdESC8vRUF5Zi92QWR3QUR3SGYvKzRBQVFHbi85VUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQURrQVZQKzFBRm4veHdCci9yZ0FldjhvQUgvL1RRQ0UvNDRBaC8raEFMUC9yZ0M2LzM0QXZ2OW5BTUgvaHdEQy8yVUF4ZitlQU1mL2FnREkvM01BeWY5ZUFOVC9wUURoQUE4QTVmL2tBT2Ivb0FEby8zUUE2ditBQVBIL3NnRDQvMzBBK3YrQUFQei9lUUVDLzMwQkJQOS9BUmYvbUFFYi85b0JKLytCQVNuL21BRXQvMzBCTC8rekFUUC9vQUU1LzN3Qk8vK2FBVHovYkFGQi8rWUJSdjlyQVVyL2tnRk0vNjBCVVA5N0FWTUFEd0ZVLzVFQlZmL3lBYWYvcndHcC83a0JyZis1QWJYL3VRRzIvN2tCdVArOEFibi84UUc4Ly9FQnZmL3RBZHovcVFIZi84a0FIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUhBQWgvOE1BVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FTLy9ud0U0LzFFQk9mOTdBVHYveWdFOC85MEJRZi95QVVuL2RRRkwvOG9CVS85UEFWVC9qQUd0Ly9VQnRmLzFBYm4veHdHNi8vRUJ1Ly9OQWJ6LzNRRysvOFFBSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUhBQWgvOE1BVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FTLy9ud0U0LzFFQk9mOTdBVHYveWdFOC85MEJRZi95QVVuL2RRRkwvOG9CVS85UEFWVC9qQUd0Ly9VQnRmLzFBYm4veHdHNi8vRUJ1Ly9OQWJ6LzNRRysvOFFBSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUJBQUwvK1lBUC8vMEFGLy83d0U4LyswQUJRQkkvKzRBV2YvcUFidi84QUc4LyswQnZ2L3dBQVVBU1AvdUFGbi82Z0c3Ly9BQnZQL3RBYjcvOEFBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnAvL3RBYjMvOVFBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWYvN1FHOS8vVUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFFQnAvL3JBQUVCcC8vckFBRUJwLy9yQUFFQnAvL3JBQ1FBQ1AvaUFBc0FGQUFNLzg4QVB3QVNBRWovNmdCVS85Z0FWdi9xQUY4QUV3QnIvNjRBZXYvTkFILy9vQUNFLzhFQWgvL0FBTFAvMEFDMy8rb0F1di9HQUxzQURRQzkvK2tBdnYvV0FNSC82QURDLzdvQXhmL3BBTWYveXdESS85b0F5Zi9IQVc3LzB3R24vNnNCcWYvTkFhMy95d0cxLzhzQnR2L0xBYm4vOHdHOC8vTUJ2Zi92QWR6LzZBSGYvKzRBQndEeC8vQUJCUC94QVJ2Lzh3RXYvL0VCU3YvekFVei82UUZVLzlNQUJ3RHgvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovNlFGVS85TUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BQndEeC8vQUJCUC94QVJ2Lzh3RXYvL0VCU3YvekFVei82UUZVLzlNQUJ3RHgvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovNlFGVS85TUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BQndEeC8vQUJCUC94QVJ2Lzh3RXYvL0VCU3YvekFVei82UUZVLzlNQUFRRHgvL1VBQVFEeC8vVUFBUUR4Ly9VQUFRRHgvL1VBQVFEeC84QUFDUURGLytvQTZQKzRBUEgvNmdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFrQXhmL3FBT2ovdUFEeC8rb0JCUC93QVJ2LzhRRXYvK3NCU3YvMUFWVC83QUhjLytvQUNRREYvK29BNlArNEFQSC82Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUFjQVNBQU5BTUVBQ3dEQy8rb0F4UUFNQU9qL3lBRVgvL0VCMy8vMUFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFjQThmL3dBUVQvOFFFYi8vTUJMLy94QVVyLzh3Rk0vK2tCVlAvVEFBUUFDLy9tQUQvLzlBQmYvKzhCUFAvdEFBUUFDLy9tQUQvLzlBQmYvKzhCUFAvdEFBUUFDLy9tQUQvLzlBQmYvKzhCUFAvdEFBUUFDLy9tQUQvLzlBQmYvKzhCUFAvdEFBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWYvN1FHOS8vVUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFFQThmLzFBQVVBU1AvdUFGbi82Z0c3Ly9BQnZQL3RBYjcvOEFBQkFQSC85UUFGQUVqLzdnQlovK29CdS8vd0Fiei83UUcrLy9BQUFRRHgvL1VBQlFCSS8rNEFXZi9xQWJ2LzhBRzgvKzBCdnYvd0FBRUE4Zi8xQUFVQVNQL3VBRm4vNmdHNy8vQUJ2UC90QWI3LzhBQUJBUEgvOVFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQVFEeC84QUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ0FEVUFCVUE2QUFWQVRqLzVBRTUvK1VCTy8va0FVbi80d0ZMLytJQlUvL2tBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUJBYWYvNndBVEFGbi93UUN6LzhVQXhmKzBBT1gvMXdEeC83a0JCUCt5QVJmLzBnRWIvOGdCTC8rZ0FUbi94UUZCLytRQlN2L01BVXovekFGVS84c0JWZi92QWFuLzZBR3QvK1lCdGYvbkFiYi81d0FMQUZuL3BBR25BQk1CcWYvekFhMy84UUcxLy9JQnR2L3hBYm4vT3dHNi85b0J1LzlVQWJ6L2tRRysvejhBQ3dCWi82UUJwd0FUQWFuLzh3R3QvL0VCdGYveUFiYi84UUc1L3pzQnV2L2FBYnYvVkFHOC81RUJ2djgvQUFzQVdmK2tBYWNBRXdHcC8vTUJyZi94QWJYLzhnRzIvL0VCdWY4N0Fici8yZ0c3LzFRQnZQK1JBYjcvUHdBTEFGbi9wQUduQUJNQnFmL3pBYTMvOFFHMS8vSUJ0di94QWJuL093RzYvOW9CdS85VUFiei9rUUcrL3o4QUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFFQThmL0FBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUJBUEgvd0FBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQVFEeC84QUFBUUR4LzhBQUNRQi8vOThBc1AvekFMTC84QUMvLytvQTFQL2ZBT0gvNEFGVC8rQUJwLy90QWIzLzlRQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFmLzdRRzkvL1VBQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FBd0JJQUE4QVZnQWdBRmtBRVFBREFFZ0FEd0JXQUNBQVdRQVJBQU1BU0FBUEFGWUFJQUJaQUJFQU9RQlUvN1VBV2YvSEFHdit1QUI2L3lnQWYvOU5BSVQvamdDSC82RUFzLyt1QUxyL2ZnQysvMmNBd2YrSEFNTC9aUURGLzU0QXgvOXFBTWovY3dESi8xNEExUCtsQU9FQUR3RGwvK1FBNXYrZ0FPai9kQURxLzRBQThmK3lBUGovZlFENi80QUEvUDk1QVFML2ZRRUUvMzhCRi8rWUFSdi8yZ0VuLzRFQktmK1lBUzMvZlFFdi83TUJNLytnQVRuL2ZBRTcvNW9CUFA5c0FVSC81Z0ZHLzJzQlN2K1NBVXovclFGUS8zc0JVd0FQQVZUL2tRRlYvL0lCcC8rdkFhbi91UUd0LzdrQnRmKzVBYmIvdVFHNC83d0J1Zi94QWJ6LzhRRzkvKzBCM1ArcEFkLy95UUE1QUZUL3RRQlovOGNBYS82NEFIci9LQUIvLzAwQWhQK09BSWYvb1FDei82NEF1djkrQUw3L1p3REIvNGNBd3Y5bEFNWC9uZ0RILzJvQXlQOXpBTW4vWGdEVS82VUE0UUFQQU9YLzVBRG0vNkFBNlA5MEFPci9nQUR4LzdJQStQOTlBUHIvZ0FEOC8za0JBdjk5QVFUL2Z3RVgvNWdCRy8vYUFTZi9nUUVwLzVnQkxmOTlBUy8vc3dFei82QUJPZjk4QVR2L21nRTgvMndCUWYvbUFVYi9hd0ZLLzVJQlRQK3RBVkQvZXdGVEFBOEJWUCtSQVZYLzhnR24vNjhCcWYrNUFhMy91UUcxLzdrQnR2KzVBYmovdkFHNS8vRUJ2UC94QWIzLzdRSGMvNmtCMy8vSkFEa0FWUCsxQUZuL3h3QnIvcmdBZXY4b0FILy9UUUNFLzQ0QWgvK2hBTFAvcmdDNi8zNEF2djluQU1IL2h3REMvMlVBeGYrZUFNZi9hZ0RJLzNNQXlmOWVBTlQvcFFEaEFBOEE1Zi9rQU9iL29BRG8vM1FBNnYrQUFQSC9zZ0Q0LzMwQSt2K0FBUHovZVFFQy8zMEJCUDkvQVJmL21BRWIvOW9CSi8rQkFTbi9tQUV0LzMwQkwvK3pBVFAvb0FFNS8zd0JPLythQVR6L2JBRkIvK1lCUnY5ckFVci9rZ0ZNLzYwQlVQOTdBVk1BRHdGVS81RUJWZi95QWFmL3J3R3AvN2tCcmYrNUFiWC91UUcyLzdrQnVQKzhBYm4vOFFHOC8vRUJ2Zi90QWR6L3FRSGYvOGtBQVFHbi8rc0FBUUduLytzQUFRR24vK3NBQVFHbi8rc0FBUUduLytzQUFRR24vK3NBQ1FBTEFBOEFQd0FNQUZULzZ3QmZBQTRCcC8vTEFhbi82UUd0LytjQnRmL25BYmIvNXdBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFBY0FTQUFOQU1FQUN3REMvK29BeFFBTUFPai95QUVYLy9FQjMvLzFBQ1FBQ1AvaUFBc0FGQUFNLzg4QVB3QVNBRWovNmdCVS85Z0FWdi9xQUY4QUV3QnIvNjRBZXYvTkFILy9vQUNFLzhFQWgvL0FBTFAvMEFDMy8rb0F1di9HQUxzQURRQzkvK2tBdnYvV0FNSC82QURDLzdvQXhmL3BBTWYveXdESS85b0F5Zi9IQVc3LzB3R24vNnNCcWYvTkFhMy95d0cxLzhzQnR2L0xBYm4vOHdHOC8vTUJ2Zi92QWR6LzZBSGYvKzRBQ0FCWi8rVUFzLy9MQU1qLzVBR25BQTBCcWYvdEFhMy82d0cxLyt3QnR2L3NBQWdBV2YvbEFMUC95d0RJLytRQnB3QU5BYW4vN1FHdC8rc0J0Zi9zQWJiLzdBQUlBRm4vNVFDei84c0F5UC9rQWFjQURRR3AvKzBCcmYvckFiWC83QUcyLyt3QUhBQWgvOE1BVnYvdkFGbi8zd0NXLys0QXMvL2xBTFQvMFFDL0FCRUF4Zi9JQU5RQUV3RGgvOFVBOGYvS0FTLy9ud0U0LzFFQk9mOTdBVHYveWdFOC85MEJRZi95QVVuL2RRRkwvOG9CVS85UEFWVC9qQUd0Ly9VQnRmLzFBYm4veHdHNi8vRUJ1Ly9OQWJ6LzNRRysvOFFBQlFCSS8rNEFXZi9xQWJ2LzhBRzgvKzBCdnYvd0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQ1FCLy85OEFzUC96QUxMLzhBQy8vK29BMVAvZkFPSC80QUZULytBQnAvL3RBYjMvOVFBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFCd0FJZi9EQUZiLzd3QlovOThBbHYvdUFMUC81UUMwLzlFQXZ3QVJBTVgveUFEVUFCTUE0Zi9GQVBIL3lnRXYvNThCT1A5UkFUbi9ld0U3LzhvQlBQL2RBVUgvOGdGSi8zVUJTLy9LQVZQL1R3RlUvNHdCcmYvMUFiWC85UUc1LzhjQnV2L3hBYnYvelFHOC85MEJ2di9FQUFJQkRBQUxBVlAvNWdBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFDQUJaLytVQXMvL0xBTWovNUFHbkFBMEJxZi90QWEzLzZ3RzEvK3dCdHYvc0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBRXdCWi84RUFzLy9GQU1YL3RBRGwvOWNBOGYrNUFRVC9zZ0VYLzlJQkcvL0lBUy8vb0FFNS84VUJRZi9rQVVyL3pBRk0vOHdCVlAvTEFWWC83d0dwLytnQnJmL21BYlgvNXdHMi8rY0FDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0FWZ0FPQUgvL253Qy8vOTRBd3YvbEFOVC9xQURvLzhvQlJ2L2pBYWYveGdIZi8vVUFPUUJVLzdVQVdmL0hBR3YrdUFCNi95Z0FmLzlOQUlUL2pnQ0gvNkVBcy8rdUFMci9mZ0MrLzJjQXdmK0hBTUwvWlFERi81NEF4LzlxQU1qL2N3REovMTRBMVArbEFPRUFEd0RsLytRQTV2K2dBT2ovZEFEcS80QUE4Zit5QVBqL2ZRRDYvNEFBL1A5NUFRTC9mUUVFLzM4QkYvK1lBUnYvMmdFbi80RUJLZitZQVMzL2ZRRXYvN01CTS8rZ0FUbi9mQUU3LzVvQlBQOXNBVUgvNWdGRy8yc0JTditTQVV6L3JRRlEvM3NCVXdBUEFWVC9rUUZWLy9JQnAvK3ZBYW4vdVFHdC83a0J0Zis1QWJiL3VRRzQvN3dCdWYveEFiei84UUc5LyswQjNQK3BBZC8veVFBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFCZ0FzLy9VQUwzLzdRQy9BQkVBeGYvZ0FNZi81d0RJLytVQXlmL3VBTlFBRWdEbC8ra0E4Zi9YQVMvLzF3RTUvOU1CTy8vV0FUei94UUZCLytjQlNRQU5BVXNBREFGVS85WUJWZi95QWFuLzZRR3QvK2NCdGYvbkFiYi82UUhmLy9BQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUNRQUNQL2lBQXNBRkFBTS84OEFQd0FTQUVqLzZnQlUvOWdBVnYvcUFGOEFFd0JyLzY0QWV2L05BSC8vb0FDRS84RUFoLy9BQUxQLzBBQzMvK29BdXYvR0FMc0FEUUM5LytrQXZ2L1dBTUgvNkFEQy83b0F4Zi9wQU1mL3l3REkvOW9BeWYvSEFXNy8wd0duLzZzQnFmL05BYTMveXdHMS84c0J0di9MQWJuLzh3RzgvL01CdmYvdkFkei82QUhmLys0QUFRRHgvOEFBQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQVVBU1AvdUFGbi82Z0c3Ly9BQnZQL3RBYjcvOEFBd0FGVC9iUUJaLzR3QWEvMi9BSHIrZlFCLy9yd0FoUDhyQUlmL1N3Q3ovMkVBdXY4UEFMNys2QURCL3g4QXd2N2xBTVgvUmdESC91MEF5UDc5QU1uKzJRRFUvMUlBNFFBRkFPWC92UURtLzBrQTZQNytBT3IvRXdEeC8yZ0ErUDhPQVByL0V3RDgvd2NCQXY4T0FRVC9FUUVYL3p3QkcvK3NBU2YvRlFFcC96d0JMZjhPQVMvL2FnRXovMGtCT2Y4TUFUdi9Qd0U4L3ZFQlFmL0FBVWIrN3dGSy96RUJUUDlmQVZEL0NnRlRBQVVCVlA4d0FWWC8xUUhjLzFrQjMvK1BBQWdBMUFBVkFPZ0FGUUU0LytRQk9mL2xBVHYvNUFGSi8rTUJTLy9pQVZQLzVBQUlBTlFBRlFEb0FCVUJPUC9rQVRuLzVRRTcvK1FCU2YvakFVdi80Z0ZULytRQUFRR24vK3NBRXdCWi84RUFzLy9GQU1YL3RBRGwvOWNBOGYrNUFRVC9zZ0VYLzlJQkcvL0lBUy8vb0FFNS84VUJRZi9rQVVyL3pBRk0vOHdCVlAvTEFWWC83d0dwLytnQnJmL21BYlgvNXdHMi8rY0FFd0JaLzhFQXMvL0ZBTVgvdEFEbC85Y0E4Zis1QVFUL3NnRVgvOUlCRy8vSUFTLy9vQUU1LzhVQlFmL2tBVXIvekFGTS84d0JWUC9MQVZYLzd3R3AvK2dCcmYvbUFiWC81d0cyLytjQUVnRFUvNjRBNFFBU0FPYi80QURvLzYwQTZ2L1dBUGovM3dEOC85SUJBdi9nQVJmL3pnRW4vOTBCS2YvaUFTMy80QUV6LytBQk9mL3BBVHovMmdGRy83MEJVUC9mQVZNQUVRQWNBQ0gvd3dCVy8rOEFXZi9mQUpiLzdnQ3ovK1VBdFAvUkFMOEFFUURGLzhnQTFBQVRBT0gveFFEeC84b0JMLytmQVRqL1VRRTUvM3NCTy8vS0FUei8zUUZCLy9JQlNmOTFBVXYveWdGVC8wOEJWUCtNQWEzLzlRRzEvL1VCdWYvSEFici84UUc3LzgwQnZQL2RBYjcveEFBQ0FRd0FDd0ZULytZQU1BQlUvMjBBV2YrTUFHdjl2d0I2L24wQWYvNjhBSVQvS3dDSC8wc0FzLzloQUxyL0R3QysvdWdBd2Y4ZkFNTCs1UURGLzBZQXgvN3RBTWorL1FESi90a0ExUDlTQU9FQUJRRGwvNzBBNXY5SkFPaisvZ0RxL3hNQThmOW9BUGovRGdENi94TUEvUDhIQVFML0RnRUUveEVCRi84OEFSdi9yQUVuL3hVQktmODhBUzMvRGdFdi8yb0JNLzlKQVRuL0RBRTcvejhCUFA3eEFVSC93QUZHL3U4QlN2OHhBVXovWHdGUS93b0JVd0FGQVZUL01BRlYvOVVCM1A5WkFkLy9qd0FGQUVqLzdnQlovK29CdS8vd0Fiei83UUcrLy9BQUNBRFVBQlVBNkFBVkFUai81QUU1LytVQk8vL2tBVW4vNHdGTC8rSUJVLy9rQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFrQVZnQU9BSC8vbndDLy85NEF3di9sQU5UL3FBRG8vOG9CUnYvakFhZi94Z0hmLy9VQUJBQUwvK1lBUC8vMEFGLy83d0U4LyswQU9RQlUvN1VBV2YvSEFHdit1QUI2L3lnQWYvOU5BSVQvamdDSC82RUFzLyt1QUxyL2ZnQysvMmNBd2YrSEFNTC9aUURGLzU0QXgvOXFBTWovY3dESi8xNEExUCtsQU9FQUR3RGwvK1FBNXYrZ0FPai9kQURxLzRBQThmK3lBUGovZlFENi80QUEvUDk1QVFML2ZRRUUvMzhCRi8rWUFSdi8yZ0VuLzRFQktmK1lBUzMvZlFFdi83TUJNLytnQVRuL2ZBRTcvNW9CUFA5c0FVSC81Z0ZHLzJzQlN2K1NBVXovclFGUS8zc0JVd0FQQVZUL2tRRlYvL0lCcC8rdkFhbi91UUd0LzdrQnRmKzVBYmIvdVFHNC83d0J1Zi94QWJ6LzhRRzkvKzBCM1ArcEFkLy95UUFZQUxQLzFBQzkvKzBBdndBUkFNWC80QURILytjQXlQL2xBTW4vN2dEVUFCSUE1Zi9wQVBILzF3RXYvOWNCT2YvVEFUdi8xZ0U4LzhVQlFmL25BVWtBRFFGTEFBd0JWUC9XQVZYLzhnR3AvK2tCcmYvbkFiWC81d0cyLytrQjMvL3dBQWNBOGYvd0FRVC84UUViLy9NQkwvL3hBVXIvOHdGTS8ra0JWUC9UQUFFQThmLzFBQWtBeGYvcUFPai91QUR4LytvQkJQL3dBUnYvOFFFdi8rc0JTdi8xQVZULzdBSGMvK29BQmdERi8rb0E2UC91QVBIL3NBRXYvK3dCVlAvc0Fkei82QUFIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBQkFSZi84UUFCQVBILzlRQUNBT2oveVFFWC8rNEFCd0JJQUEwQXdRQUxBTUwvNmdERkFBd0E2UC9JQVJmLzhRSGYvL1VBQ1FBTEFBOEFQd0FNQUZULzZ3QmZBQTRCcC8vTEFhbi82UUd0LytjQnRmL25BYmIvNXdBSkFBc0FEd0EvQUF3QVZQL3JBRjhBRGdHbi84c0JxZi9wQWEzLzV3RzEvK2NCdHYvbkFBa0FDd0FQQUQ4QURBQlUvK3NBWHdBT0FhZi95d0dwLytrQnJmL25BYlgvNXdHMi8rY0FKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBQkFGa0FDd0FCQUZrQUN3QUJBRmtBQ3dBSUFOUUFGUURvQUJVQk9QL2tBVG4vNVFFNy8rUUJTZi9qQVV2LzRnRlQvK1FBQVFEeC84QUFIQUFoLzhNQVZ2L3ZBRm4vM3dDVy8rNEFzLy9sQUxULzBRQy9BQkVBeGYvSUFOUUFFd0RoLzhVQThmL0tBUy8vbndFNC8xRUJPZjk3QVR2L3lnRTgvOTBCUWYveUFVbi9kUUZMLzhvQlUvOVBBVlQvakFHdC8vVUJ0Zi8xQWJuL3h3RzYvL0VCdS8vTkFiei8zUUcrLzhRQUJ3RHgvL0FCQlAveEFSdi84d0V2Ly9FQlN2L3pBVXovNlFGVS85TUFDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFGQUVqLzdnQlovK29CdS8vd0Fiei83UUcrLy9BQUFRRHgvL1VBQ1FBTEFCUUFQd0FSQUZULzRnQmZBQk1CcC8rMEFhbi8yUUd0LzlrQnRmL1pBYmIvMlFBSEFFZ0FEUURCQUFzQXd2L3FBTVVBREFEby84Z0JGLy94QWQvLzlRQUVBQXYvNWdBLy8vUUFYLy92QVR6LzdRQWtBQWovNGdBTEFCUUFEUC9QQUQ4QUVnQkkvK29BVlAvWUFGYi82Z0JmQUJNQWEvK3VBSHIvelFCLy82QUFoUC9CQUlmL3dBQ3ovOUFBdC8vcUFMci94Z0M3QUEwQXZmL3BBTDcvMWdEQi8rZ0F3dis2QU1YLzZRREgvOHNBeVAvYUFNbi94d0Z1LzlNQnAvK3JBYW4velFHdC84c0J0Zi9MQWJiL3l3RzUvL01CdlAvekFiMy83d0hjLytnQjMvL3VBQWNBU0FBTkFNRUFDd0RDLytvQXhRQU1BT2oveUFFWC8vRUIzLy8xQUFnQTFBQVZBT2dBRlFFNC8rUUJPZi9sQVR2LzVBRkovK01CUy8vaUFWUC81QUFZQUxQLzFBQzkvKzBBdndBUkFNWC80QURILytjQXlQL2xBTW4vN2dEVUFCSUE1Zi9wQVBILzF3RXYvOWNCT2YvVEFUdi8xZ0U4LzhVQlFmL25BVWtBRFFGTEFBd0JWUC9XQVZYLzhnR3AvK2tCcmYvbkFiWC81d0cyLytrQjMvL3dBQUVCRi8veEFBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBY0FDSC93d0JXLys4QVdmL2ZBSmIvN2dDei8rVUF0UC9SQUw4QUVRREYvOGdBMUFBVEFPSC94UUR4LzhvQkwvK2ZBVGovVVFFNS8zc0JPLy9LQVR6LzNRRkIvL0lCU2Y5MUFVdi95Z0ZULzA4QlZQK01BYTMvOVFHMS8vVUJ1Zi9IQWJyLzhRRzcvODBCdlAvZEFiNy94QUFIQVBILzhBRUUvL0VCRy8vekFTLy84UUZLLy9NQlRQL3BBVlQvMHdBY0FDSC93d0JXLys4QVdmL2ZBSmIvN2dDei8rVUF0UC9SQUw4QUVRREYvOGdBMUFBVEFPSC94UUR4LzhvQkwvK2ZBVGovVVFFNS8zc0JPLy9LQVR6LzNRRkIvL0lCU2Y5MUFVdi95Z0ZULzA4QlZQK01BYTMvOVFHMS8vVUJ1Zi9IQWJyLzhRRzcvODBCdlAvZEFiNy94QUFIQVBILzhBRUUvL0VCRy8vekFTLy84UUZLLy9NQlRQL3BBVlQvMHdBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFBUUR4Ly9VQUFRRHgvL1VBQVFEeC8vVUFHQUN6LzlRQXZmL3RBTDhBRVFERi8rQUF4Ly9uQU1qLzVRREovKzRBMUFBU0FPWC82UUR4LzljQkwvL1hBVG4vMHdFNy85WUJQUC9GQVVILzV3RkpBQTBCU3dBTUFWVC8xZ0ZWLy9JQnFmL3BBYTMvNXdHMS8rY0J0di9wQWQvLzhBQUJBUmYvOFFBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FDUURGLytvQTZQKzRBUEgvNmdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FHQU1YLzZnRG8vKzRBOGYrd0FTLy83QUZVLyt3QjNQL29BQklBMVArdUFPRUFFZ0RtLytBQTZQK3RBT3IvMWdENC85OEEvUC9TQVFMLzRBRVgvODRCSi8vZEFTbi80Z0V0LytBQk0vL2dBVG4vNlFFOC85b0JSdis5QVZELzN3RlRBQkVBQndCSUFBMEF3UUFMQU1MLzZnREZBQXdBNlAvSUFSZi84UUhmLy9VQUVnRFUvNjRBNFFBU0FPYi80QURvLzYwQTZ2L1dBUGovM3dEOC85SUJBdi9nQVJmL3pnRW4vOTBCS2YvaUFTMy80QUV6LytBQk9mL3BBVHovMmdGRy83MEJVUC9mQVZNQUVRQUhBRWdBRFFEQkFBc0F3di9xQU1VQURBRG8vOGdCRi8veEFkLy85UUFTQU5UL3JnRGhBQklBNXYvZ0FPai9yUURxLzlZQStQL2ZBUHovMGdFQy8rQUJGLy9PQVNmLzNRRXAvK0lCTGYvZ0FUUC80QUU1LytrQlBQL2FBVWIvdlFGUS85OEJVd0FSQUFjQVNBQU5BTUVBQ3dEQy8rb0F4UUFNQU9qL3lBRVgvL0VCMy8vMUFCZ0FzLy9VQUwzLzdRQy9BQkVBeGYvZ0FNZi81d0RJLytVQXlmL3VBTlFBRWdEbC8ra0E4Zi9YQVMvLzF3RTUvOU1CTy8vV0FUei94UUZCLytjQlNRQU5BVXNBREFGVS85WUJWZi95QWFuLzZRR3QvK2NCdGYvbkFiYi82UUhmLy9BQUFRRVgvL0VBSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BSEFBaC84TUFWdi92QUZuLzN3Q1cvKzRBcy8vbEFMVC8wUUMvQUJFQXhmL0lBTlFBRXdEaC84VUE4Zi9LQVMvL253RTQvMUVCT2Y5N0FUdi95Z0U4LzkwQlFmL3lBVW4vZFFGTC84b0JVLzlQQVZUL2pBR3QvL1VCdGYvMUFibi94d0c2Ly9FQnUvL05BYnovM1FHKy84UUFCd0R4Ly9BQkJQL3hBUnYvOHdFdi8vRUJTdi96QVV6LzZRRlUvOU1BQlFCSS8rNEFXZi9xQWJ2LzhBRzgvKzBCdnYvd0FBRUE4Zi8xQUFVQVNQL3VBRm4vNmdHNy8vQUJ2UC90QWI3LzhBQUJBUEgvOVFBRkFFai83Z0JaLytvQnUvL3dBYnovN1FHKy8vQUFBUUR4Ly9VQUJRQkkvKzRBV2YvcUFidi84QUc4LyswQnZ2L3dBQUVBOGYvMUFBVUFTUC91QUZuLzZnRzcvL0FCdlAvdEFiNy84QUFCQVBILzlRQUZBRWovN2dCWi8rb0J1Ly93QWJ6LzdRRysvL0FBQVFEeC8vVUFCUUJJLys0QVdmL3FBYnYvOEFHOC8rMEJ2di93QUFFQThmLzFBQVVBU1AvdUFGbi82Z0c3Ly9BQnZQL3RBYjcvOEFBQkFQSC85UUFJQU5RQUZRRG9BQlVCT1Ava0FUbi81UUU3LytRQlNmL2pBVXYvNGdGVC8rUUFDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBa0FmLy9mQUxELzh3Q3kvL0FBdi8vcUFOVC8zd0RoLytBQlUvL2dBYWYvN1FHOS8vVUFDUURGLytvQTZQKzRBUEgvNmdFRS8vQUJHLy94QVMvLzZ3RksvL1VCVlAvc0Fkei82Z0FKQUgvLzN3Q3cvL01Bc3Yvd0FMLy82Z0RVLzk4QTRmL2dBVlAvNEFHbi8rMEJ2Zi8xQUFrQXhmL3FBT2ovdUFEeC8rb0JCUC93QVJ2LzhRRXYvK3NCU3YvMUFWVC83QUhjLytvQUNRQi8vOThBc1AvekFMTC84QUMvLytvQTFQL2ZBT0gvNEFGVC8rQUJwLy90QWIzLzlRQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQWtBZi8vZkFMRC84d0N5Ly9BQXYvL3FBTlQvM3dEaC8rQUJVLy9nQWFmLzdRRzkvL1VBQ1FERi8rb0E2UCs0QVBILzZnRUUvL0FCRy8veEFTLy82d0ZLLy9VQlZQL3NBZHovNmdBSkFILy8zd0N3Ly9NQXN2L3dBTC8vNmdEVS85OEE0Zi9nQVZQLzRBR24vKzBCdmYvMUFBa0F4Zi9xQU9qL3VBRHgvK29CQlAvd0FSdi84UUV2LytzQlN2LzFBVlQvN0FIYy8rb0FDUUIvLzk4QXNQL3pBTEwvOEFDLy8rb0ExUC9mQU9ILzRBRlQvK0FCcC8vdEFiMy85UUFKQU1YLzZnRG8vN2dBOGYvcUFRVC84QUViLy9FQkwvL3JBVXIvOVFGVS8rd0IzUC9xQUFrQWYvL2ZBTEQvOHdDeS8vQUF2Ly9xQU5ULzN3RGgvK0FCVS8vZ0FhZi83UUc5Ly9VQUNRREYvK29BNlArNEFQSC82Z0VFLy9BQkcvL3hBUy8vNndGSy8vVUJWUC9zQWR6LzZnQUpBTVgvNmdEby83Z0E4Zi9xQVFULzhBRWIvL0VCTC8vckFVci85UUZVLyt3QjNQL3FBQUVCcC8vckFBRUJwLy9yQUNRQUNQL2lBQXNBRkFBTS84OEFQd0FTQUVqLzZnQlUvOWdBVnYvcUFGOEFFd0JyLzY0QWV2L05BSC8vb0FDRS84RUFoLy9BQUxQLzBBQzMvK29BdXYvR0FMc0FEUUM5LytrQXZ2L1dBTUgvNkFEQy83b0F4Zi9wQU1mL3l3REkvOW9BeWYvSEFXNy8wd0duLzZzQnFmL05BYTMveXdHMS84c0J0di9MQWJuLzh3RzgvL01CdmYvdkFkei82QUhmLys0QUJ3QklBQTBBd1FBTEFNTC82Z0RGQUF3QTZQL0lBUmYvOFFIZi8vVUFKQUFJLytJQUN3QVVBQXovendBL0FCSUFTUC9xQUZULzJBQlcvK29BWHdBVEFHdi9yZ0I2LzgwQWYvK2dBSVQvd1FDSC84QUFzLy9RQUxmLzZnQzYvOFlBdXdBTkFMMy82UUMrLzlZQXdmL29BTUwvdWdERi8ra0F4Ly9MQU1qLzJnREovOGNCYnYvVEFhZi9xd0dwLzgwQnJmL0xBYlgveXdHMi84c0J1Zi96QWJ6Lzh3RzkvKzhCM1Avb0FkLy83Z0FIQUVnQURRREJBQXNBd3YvcUFNVUFEQURvLzhnQkYvL3hBZC8vOVFBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFBY0FTQUFOQU1FQUN3REMvK29BeFFBTUFPai95QUVYLy9FQjMvLzFBQk1BV2YvQkFMUC94UURGLzdRQTVmL1hBUEgvdVFFRS83SUJGLy9TQVJ2L3lBRXYvNkFCT2YvRkFVSC81QUZLLzh3QlRQL01BVlQveXdGVi8rOEJxZi9vQWEzLzVnRzEvK2NCdHYvbkFBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBNUFGVC90UUJaLzhjQWEvNjRBSHIvS0FCLy8wMEFoUCtPQUlmL29RQ3ovNjRBdXY5K0FMNy9ad0RCLzRjQXd2OWxBTVgvbmdESC8yb0F5UDl6QU1uL1hnRFUvNlVBNFFBUEFPWC81QURtLzZBQTZQOTBBT3IvZ0FEeC83SUErUDk5QVByL2dBRDgvM2tCQXY5OUFRVC9md0VYLzVnQkcvL2FBU2YvZ1FFcC81Z0JMZjk5QVMvL3N3RXovNkFCT2Y5OEFUdi9tZ0U4LzJ3QlFmL21BVWIvYXdGSy81SUJUUCt0QVZEL2V3RlRBQThCVlArUkFWWC84Z0duLzY4QnFmKzVBYTMvdVFHMS83a0J0dis1QWJqL3ZBRzUvL0VCdlAveEFiMy83UUhjLzZrQjMvL0pBQmdBcy8vVUFMMy83UUMvQUJFQXhmL2dBTWYvNXdESS8rVUF5Zi91QU5RQUVnRGwvK2tBOGYvWEFTLy8xd0U1LzlNQk8vL1dBVHoveFFGQi8rY0JTUUFOQVVzQURBRlUvOVlCVmYveUFhbi82UUd0LytjQnRmL25BYmIvNlFIZi8vQUFBUUVYLy9FQU1BQlUvMjBBV2YrTUFHdjl2d0I2L24wQWYvNjhBSVQvS3dDSC8wc0FzLzloQUxyL0R3QysvdWdBd2Y4ZkFNTCs1UURGLzBZQXgvN3RBTWorL1FESi90a0ExUDlTQU9FQUJRRGwvNzBBNXY5SkFPaisvZ0RxL3hNQThmOW9BUGovRGdENi94TUEvUDhIQVFML0RnRUUveEVCRi84OEFSdi9yQUVuL3hVQktmODhBUzMvRGdFdi8yb0JNLzlKQVRuL0RBRTcvejhCUFA3eEFVSC93QUZHL3U4QlN2OHhBVXovWHdGUS93b0JVd0FGQVZUL01BRlYvOVVCM1A5WkFkLy9qd0FDQU9qL3lRRVgvKzRBR0FDei85UUF2Zi90QUw4QUVRREYvK0FBeC8vbkFNai81UURKLys0QTFBQVNBT1gvNlFEeC85Y0JMLy9YQVRuLzB3RTcvOVlCUFAvRkFVSC81d0ZKQUEwQlN3QU1BVlQvMWdGVi8vSUJxZi9wQWEzLzV3RzEvK2NCdHYvcEFkLy84QUFCQVJmLzhRQUJBUEgvd0FBSkFPSC93d0R4Lzg4QkwvL09BVGovNXdFNy85OEJTZi9SQVV2LzdBRlQvNkFCVlAvUkFEQUFWUDl0QUZuL2pBQnIvYjhBZXY1OUFILyt2QUNFL3lzQWgvOUxBTFAvWVFDNi93OEF2djdvQU1IL0h3REMvdVVBeGY5R0FNZis3UURJL3YwQXlmN1pBTlQvVWdEaEFBVUE1Zis5QU9iL1NRRG8vdjRBNnY4VEFQSC9hQUQ0L3c0QSt2OFRBUHovQndFQy93NEJCUDhSQVJmL1BBRWIvNndCSi84VkFTbi9QQUV0L3c0QkwvOXFBVFAvU1FFNS93d0JPLzgvQVR6KzhRRkIvOEFCUnY3dkFVci9NUUZNLzE4QlVQOEtBVk1BQlFGVS96QUJWZi9WQWR6L1dRSGYvNDhBRXdCWi84RUFzLy9GQU1YL3RBRGwvOWNBOGYrNUFRVC9zZ0VYLzlJQkcvL0lBUy8vb0FFNS84VUJRZi9rQVVyL3pBRk0vOHdCVlAvTEFWWC83d0dwLytnQnJmL21BYlgvNXdHMi8rY0FDQURVQUJVQTZBQVZBVGovNUFFNS8rVUJPLy9rQVVuLzR3RkwvK0lCVS8va0FBZ0ExQUFWQU9nQUZRRTQvK1FCT2YvbEFUdi81QUZKLytNQlMvL2lBVlAvNUFBa0FBai80Z0FMQUJRQURQL1BBRDhBRWdCSS8rb0FWUC9ZQUZiLzZnQmZBQk1BYS8rdUFIci96UUIvLzZBQWhQL0JBSWYvd0FDei85QUF0Ly9xQUxyL3hnQzdBQTBBdmYvcEFMNy8xZ0RCLytnQXd2KzZBTVgvNlFESC84c0F5UC9hQU1uL3h3RnUvOU1CcC8rckFhbi96UUd0LzhzQnRmL0xBYmIveXdHNS8vTUJ2UC96QWIzLzd3SGMvK2dCMy8vdUFBRXdzZ0FFQUFBQUNnQWVBSFFEcGdRa0JJNEUwQVh1QnVRSFFnZGNBQlVBT0FBVUFEa0FFZ0E3QUJZQkZBQVVBZ3NBRmdLU0FCSUNsQUFXQXBZQUZnTDlBQllEREFBV0F3OEFGZ05GQUJJRFJ3QVNBMGtBRWdOTEFCWURZQUFVQTJnQUZnUHFBQllEN0FBV0ErNEFGZ1FUQUJZQXpBQU8veFlBRVA4V0FDUC9WZ0FzL3ZnQU5nQVVBRVAvM2dCRi8rc0FSdi9yQUVmLzZ3QkovK3NBVWYvckFGUC82d0JYLytvQVdQL29BRnYvNkFDUi8rc0FsZi9yQUpmLzZnQ3QvMVlBci85V0FMYi82d0M0LytnQXcvL3JBTVQvNndERy8rb0F6UUFVQU5FQUZBRHkvK3NBL3YvckFRai9WZ0VULytzQkZmL29BUm4vNndFZC8rc0JMZ0FVQVRYLzZ3RTJBQlFCUi8vckFVai82d0ZTLytzQlovOFdBV3YvRmdGdi94WUJjUDhXQWZIL1ZnSHkvMVlCOC85V0FmVC9WZ0gxLzFZQjl2OVdBZmYvVmdJTS85NENEZi9lQWc3LzNnSVAvOTRDRVAvZUFoSC8zZ0lTLzk0Q0UvL3JBaFQvNndJVi8rc0NGdi9yQWhmLzZ3SWQvK3NDSHYvckFoLy82d0lnLytzQ0lmL3JBaUwvNmdJai8rb0NKUC9xQWlYLzZnSW0vK2dDSi8vb0Fpai9WZ0lwLzk0Q0t2OVdBaXYvM2dJcy8xWUNMZi9lQWkvLzZ3SXgvK3NDTS8vckFqWC82d0kzLytzQ09mL3JBanYvNndJOS8rc0NQLy9yQWtILzZ3SkQvK3NDUmYvckFrZi82d0pKLytzQ1YvNzRBbXYvNndKdC8rc0NiLy9yQW9BQUZBS0NBQlFDaEFBVUFvZi82Z0tKLytvQ2kvL3FBbzMvNmdLUC8rb0NrZi9xQXBYLzZBTDQvMVlEQVA5V0F4RC82d01VLytvREZ2L3JBeGovNkFNYi8rb0RIUC9yQXgzLzZnTWsvdmdES1A5V0F6TUFGQU0xLzk0RE52L3JBemovNndNNi8rc0RPLy9vQXozLzZ3TkUvK2dEVFAvb0ExWC9WZ05XLzk0RFhQL3JBMkgvNkFOaS8rc0RaLy9yQTJuLzZBTnUvMVlEYi8vZUEzRC9WZ054Lzk0RGRmL3JBM2YvNndONC8rc0Rndi9yQTRULzZ3T0cvK3NEaXYvb0E0ei82QU9PLytnRGxmL3JBNWovVmdPWi85NERtdjlXQTV2LzNnT2MvMVlEbmYvZUE1Ny9WZ09mLzk0RG9QOVdBNkgvM2dPaS8xWURvLy9lQTZUL1ZnT2wvOTREcHY5V0E2Zi8zZ09vLzFZRHFmL2VBNnIvVmdPci85NERyUDlXQTYzLzNnT3UvMVlEci8vZUE3SC82d096LytzRHRmL3JBN2YvNndPNS8rc0R1Ly9yQTczLzZ3Ty8vK3NEeGYvckE4Zi82d1BKLytzRHkvL3JBODMvNndQUC8rc0QwZi9yQTlQLzZ3UFYvK3NEMS8vckE5bi82d1BiLytzRDNmL3FBOS8vNmdQaC8rb0Q0Ly9xQStYLzZnUG4vK29ENmYvcUErdi82QVB0LytnRDcvL29BL1lBRkFBZkFEYi8xUUE0LytRQU9mL3NBRHYvM1FETi85VUEwZi9WQVJULzVBRXUvOVVCTnYvVkFndi8zUUtBLzlVQ2d2L1ZBb1QvMVFLUy8rd0NsUC9kQXBiLzNRTDkvOTBERFAvZEF3Ly8zUU16LzlVRFJmL3NBMGYvN0FOSi8rd0RTLy9kQTJELzVBTm8vOTBENnYvZEErei8zUVB1LzkwRDl2L1ZCQlAvM1FBYUFEYi9zQUE0LyswQU8vL1FBTTMvc0FEUi83QUJGUC90QVM3L3NBRTIvN0FDQy8vUUFvRC9zQUtDLzdBQ2hQK3dBcFQvMEFLVy85QUMvZi9RQXd6LzBBTVAvOUFETS8rd0Ewdi8wQU5nLyswRGFQL1FBK3IvMEFQcy85QUQ3di9RQS9iL3NBUVQvOUFBRUFBcy8rNEFOLy91QWdmLzdnSUkvKzRDQ2YvdUFnci83Z0pYLys0Q2h2L3VBb2ovN2dLSy8rNENqUC91QW83LzdnS1EvKzRESlAvdUE5ei83Z1BlLys0QVJ3QUVBQkFBQ1FBUUFFWC82QUJHLytnQVIvL29BRW4vNkFCVC8rZ0FrZi9vQUpYLzZBQzIvK2dBdy8vb0FNVC82QUR5LytnQS92L29BUm4vNkFFZC8rZ0JOZi9vQVVmLzZBRkkvK2dCVXYvb0FXVUFFQUZtQUJBQmFBQVFBV2tBRUFGcUFCQUNFLy9vQWhULzZBSVYvK2dDRnYvb0FoZi82QUl2LytnQ01mL29BalAvNkFJMS8rZ0NOLy9vQWpuLzZBSTcvK2dDUGYvb0FqLy82QUpCLytnQ1EvL29Ba1gvNkFKSC8rZ0NTZi9vQXhELzZBTTIvK2dET3Yvb0F6My82QU5OQUJBRFRnQVFBMUlBRUFOYy8rZ0RZdi9vQTJmLzZBTjEvK2dEZC8vb0Ezai82QU9FLytnRGxmL29BN0gvNkFPei8rZ0R0Zi9vQTdmLzZBTzUvK2dEdS8vb0E3My82QU8vLytnRDAvL29BOVgvNkFQWC8rZ0QyLy9vQUQwQVJmL3NBRWIvN0FCSC8rd0FTZi9zQUZQLzdBQ1IvK3dBbGYvc0FMYi83QURELyt3QXhQL3NBUEwvN0FEKy8rd0JHZi9zQVIzLzdBRTEvK3dCUi8vc0FVai83QUZTLyt3Q0UvL3NBaFQvN0FJVi8rd0NGdi9zQWhmLzdBSXYvK3dDTWYvc0FqUC83QUkxLyt3Q04vL3NBam4vN0FJNy8rd0NQZi9zQWovLzdBSkIvK3dDUS8vc0FrWC83QUpILyt3Q1NmL3NBeEQvN0FNMi8rd0RPdi9zQXozLzdBTmMvK3dEWXYvc0EyZi83QU4xLyt3RGQvL3NBM2ovN0FPRS8rd0RsZi9zQTdILzdBT3ovK3dEdGYvc0E3Zi83QU81Lyt3RHUvL3NBNzMvN0FPLy8rd0QwLy9zQTlYLzdBUFgvK3dEMi8vc0FCY0FVZi9zQVJQLzdBSWQvK3dDSHYvc0FoLy83QUlnLyt3Q0lmL3NBbXYvN0FKdC8rd0NiLy9zQXhiLzdBTWMvK3dET1Avc0E0TC83QU9HLyt3RHhmL3NBOGYvN0FQSi8rd0R5Ly9zQTgzLzdBUFAvK3dEMGYvc0E5bi83QUFHQUE3L2hBQVEvNFFCWi8rRUFXdi9oQUZ2LzRRQmNQK0VBQkFBTFAvc0FEZi83QUlILyt3Q0NQL3NBZ24vN0FJSy8rd0NWLy9zQW9iLzdBS0kvK3dDaXYvc0Fvei83QUtPLyt3Q2tQL3NBeVQvN0FQYy8rd0Qzdi9zQUFFcExBQUVBQUFBSWdCT0FNUUJxZ0tRQTJvRUJBYWVDR1FKTmdvc0MvSU1KQXhXRE5RT3VnOHdFQUlTRkJMS0ZEQVU2aFZ3RmM0V2tCY0dGeGdYUWhpVUd0SWE5QndLSElnY3NoemNBQjBBQlAveUFBbi84Z0JZLy9NQVcvL3pBTGovOHdFVi8vTUJaZi95QVdiLzhnRm8vL0lCYWYveUFXci84Z0ltLy9NQ0ovL3pBcFgvOHdNWS8vTURPLy96QTBULzh3Tk0vL01EVGYveUEwNy84Z05TLy9JRFlmL3pBMm4vOHdPSy8vTURqUC96QTQ3Lzh3UHIvL01EN2YvekErLy84d0E1QUNYLzh3QXAvL01BTWYvekFEUC84d0NCLy9NQWtQL3pBSlQvOHdDdS8vTUF6di96QVFQLzh3RVMvL01CRnYvekFSai84d0VhLy9NQkhQL3pBVFQvOHdGUi8vTUIrUC96QWdMLzh3SUQvL01DQlAvekFnWC84d0lHLy9NQ0x2L3pBakQvOHdJeS8vTUNOUC96QWtMLzh3SkUvL01DUnYvekFrai84d0pxLy9NQ2JQL3pBbTcvOHdLZi8vTUMvUC96QXduLzh3TXYvL01ETXYvekExZi84d05qLy9NRFp2L3pBNEgvOHdPRC8vTURoZi96QThULzh3UEcvL01EeVAvekE4ci84d1BNLy9NRHp2L3pBOUQvOHdQUy8vTUQxUC96QTliLzh3UFkvL01EMnYvekFEa0FKZi9tQUNuLzVnQXgvK1lBTS8vbUFJSC81Z0NRLytZQWxQL21BSzcvNWdETy8rWUJBLy9tQVJMLzVnRVcvK1lCR1AvbUFSci81Z0VjLytZQk5QL21BVkgvNWdINC8rWUNBdi9tQWdQLzVnSUUvK1lDQmYvbUFnYi81Z0l1LytZQ01QL21BakwvNWdJMC8rWUNRdi9tQWtULzVnSkcvK1lDU1AvbUFtci81Z0pzLytZQ2J2L21BcC8vNWdMOC8rWURDZi9tQXkvLzVnTXkvK1lEVi8vbUEyUC81Z05tLytZRGdmL21BNFAvNWdPRi8rWUR4UC9tQThiLzVnUEkvK1lEeXYvbUE4ei81Z1BPLytZRDBQL21BOUwvNWdQVS8rWUQxdi9tQTlqLzVnUGEvK1lBTmdBai8rUUFPdi9TQUR2LzB3Q3QvK1FBci8va0FOWC8wZ0VJLytRQjhmL2tBZkwvNUFIei8rUUI5UC9rQWZYLzVBSDIvK1FCOS8va0Fndi8wd0lvLytRQ0t2L2tBaXovNUFLVS85TUNsdi9UQXZqLzVBTDkvOU1EQVAva0F3ei8wd01OLzlJREQvL1RBeWovNUFNMC85SURTLy9UQTFYLzVBTm8vOU1EYS8vU0EyNy81QU53LytRRGVmL1NBNVAvMGdPWS8rUURtdi9rQTV6LzVBT2UvK1FEb1Ava0E2TC81QU9rLytRRHB2L2tBNmovNUFPcS8rUURyUC9rQTY3LzVBUHEvOU1EN1AvVEErNy8wd1A0LzlJRUFQL1NCQlAvMHdBbUFBNy9IZ0FRL3g0QUkvL05BSzMvelFDdi84MEJDUC9OQVdmL0hnRnIveDRCYi84ZUFYRC9IZ0h4LzgwQjh2L05BZlAvelFIMC84MEI5Zi9OQWZiL3pRSDMvODBDS1AvTkFpci96UUlzLzgwQytQL05Bd0QvelFNby84MERWZi9OQTI3L3pRTncvODBEbVAvTkE1ci96UU9jLzgwRG52L05BNkQvelFPaS84MERwUC9OQTZiL3pRT28vODBEcXYvTkE2ei96UU91LzgwQXBnQkYvOXdBUnYvY0FFZi8zQUJKLzl3QVQvL3pBRkQvOHdCUi85WUFVdi96QUZQLzNBQlgvOTBBV1AvaEFGdi80UUNSLzl3QWxmL2NBSmYvM1FDMi85d0F1UC9oQUx6Lzh3REQvOXdBeFAvY0FNYi8zUURuLy9NQTYvL3pBT3ovOHdEdS8vTUE3Ly96QVBELzh3RHkvOXdBOC8vekFQWC84d0QyLy9NQStmL3pBUHYvOHdEKy85d0JBUC96QVJQLzFnRVYvK0VCR2YvY0FSMy8zQUV4Ly9NQk5mL2NBVUQvOHdGRi8vTUJSLy9jQVVqLzNBRlMvOXdDRS8vY0FoVC8zQUlWLzl3Q0Z2L2NBaGYvM0FJYy8vTUNIZi9XQWg3LzFnSWYvOVlDSVAvV0FpSC8xZ0lpLzkwQ0kvL2RBaVQvM1FJbC85MENKdi9oQWlmLzRRSXYvOXdDTWYvY0FqUC8zQUkxLzl3Q04vL2NBam4vM0FJNy85d0NQZi9jQWovLzNBSkIvOXdDUS8vY0FrWC8zQUpILzl3Q1NmL2NBbVQvOHdKbS8vTUNhUC96QW1uLzh3SnIvOVlDYmYvV0FtLy8xZ0tILzkwQ2lmL2RBb3YvM1FLTi85MENqLy9kQXBILzNRS1YvK0VERVAvY0F4TC84d01VLzkwREZ2L1dBeGovNFFNYi85MERIUC9XQXgzLzNRTTIvOXdETi8vekF6ai8xZ001Ly9NRE92L2NBenYvNFFNOS85d0RQdi96QTBQLzh3TkUvK0VEVFAvaEExVC84d05jLzl3RFhmL3pBMkgvNFFOaS85d0RaLy9jQTJuLzRRTjEvOXdEZC8vY0Ezai8zQU4rLy9NRGdQL3pBNEwvMWdPRS85d0Rodi9XQTRyLzRRT00vK0VEanYvaEE1TC84d09WLzl3RHNmL2NBN1AvM0FPMS85d0R0Ly9jQTduLzNBTzcvOXdEdmYvY0E3Ly8zQVBGLzlZRHgvL1dBOG4vMWdQTC85WUR6Zi9XQTgvLzFnUFIvOVlEMC8vY0E5WC8zQVBYLzl3RDJmL1dBOXYvM0FQZC85MEQzLy9kQStILzNRUGovOTBENWYvZEErZi8zUVBwLzkwRDYvL2hBKzMvNFFQdi8rRUQ4Ly96QS9YLzh3UC8vL01FRFAvekJBNy84d1FRLy9NQWNRQUUvOW9BQ2YvYUFFWC84QUJHLy9BQVIvL3dBRW4vOEFCVC8vQUFWLy92QUZqLzNBQmIvOXdBa2Yvd0FKWC84QUNYLys4QXR2L3dBTGovM0FERC8vQUF4UC93QU1iLzd3RHkvL0FBL3Yvd0FSWC8zQUVaLy9BQkhmL3dBVFgvOEFGSC8vQUJTUC93QVZMLzhBRmwvOW9CWnYvYUFXai8yZ0ZwLzlvQmF2L2FBaFAvOEFJVS8vQUNGZi93QWhiLzhBSVgvL0FDSXYvdkFpUC83d0lrLys4Q0pmL3ZBaWIvM0FJbi85d0NMLy93QWpILzhBSXovL0FDTmYvd0FqZi84QUk1Ly9BQ08vL3dBajMvOEFJLy8vQUNRZi93QWtQLzhBSkYvL0FDUi8vd0Frbi84QUtILys4Q2lmL3ZBb3YvN3dLTi8rOENqLy92QXBILzd3S1YvOXdERVAvd0F4VC83d01ZLzl3REcvL3ZBeDMvN3dNMi8vQURPdi93QXp2LzNBTTkvL0FEUlAvY0Ewei8zQU5OLzlvRFR2L2FBMUwvMmdOYy8vQURZZi9jQTJMLzhBTm4vL0FEYWYvY0EzWC84QU4zLy9BRGVQL3dBNFQvOEFPSy85d0RqUC9jQTQ3LzNBT1YvL0FEc2Yvd0E3UC84QU8xLy9BRHQvL3dBN24vOEFPNy8vQUR2Zi93QTcvLzhBUFQvL0FEMWYvd0E5Zi84QVBiLy9BRDNmL3ZBOS8vN3dQaC8rOEQ0Ly92QStYLzd3UG4vKzhENmYvdkErdi8zQVB0Lzl3RDcvL2NBRFFBQlArZ0FBbi9vQUJYLy9FQVdQL0ZBRnYveFFDWC8vRUF1UC9GQU1iLzhRRVYvOFVCWmYrZ0FXYi9vQUZvLzZBQmFmK2dBV3Ivb0FJaS8vRUNJLy94QWlULzhRSWwvL0VDSnYvRkFpZi94UUtILy9FQ2lmL3hBb3YvOFFLTi8vRUNqLy94QXBILzhRS1YvOFVERlAveEF4ai94UU1iLy9FREhmL3hBenYveFFORS84VURUUC9GQTAzL29BTk8vNkFEVXYrZ0EySC94UU5wLzhVRGl2L0ZBNHoveFFPTy84VUQzZi94QTkvLzhRUGgvL0VENC8veEErWC84UVBuLy9FRDZmL3hBK3YveFFQdC84VUQ3Ly9GQUQwQVJmL25BRWIvNXdCSC8rY0FTZi9uQUZQLzV3Q1IvK2NBbGYvbkFMYi81d0RELytjQXhQL25BUEwvNXdEKy8rY0JHZi9uQVIzLzV3RTEvK2NCUi8vbkFVai81d0ZTLytjQ0UvL25BaFQvNXdJVi8rY0NGdi9uQWhmLzV3SXYvK2NDTWYvbkFqUC81d0kxLytjQ04vL25Bam4vNXdJNy8rY0NQZi9uQWovLzV3SkIvK2NDUS8vbkFrWC81d0pILytjQ1NmL25BeEQvNXdNMi8rY0RPdi9uQXozLzV3TmMvK2NEWXYvbkEyZi81d04xLytjRGQvL25BM2ovNXdPRS8rY0RsZi9uQTdILzV3T3ovK2NEdGYvbkE3Zi81d081LytjRHUvL25BNzMvNXdPLy8rY0QwLy9uQTlYLzV3UFgvK2NEMi8vbkFIRUFCQUFNQUFrQURBQkYvK2dBUnYvb0FFZi82QUJKLytnQVVmL3FBRlAvNkFCWUFBc0FXd0FMQUpILzZBQ1YvK2dBdHYvb0FMZ0FDd0RELytnQXhQL29BUEwvNkFEKy8rZ0JFLy9xQVJVQUN3RVovK2dCSGYvb0FUWC82QUZILytnQlNQL29BVkwvNkFGbEFBd0JaZ0FNQVdnQURBRnBBQXdCYWdBTUFoUC82QUlVLytnQ0ZmL29BaGIvNkFJWC8rZ0NIZi9xQWg3LzZnSWYvK29DSVAvcUFpSC82Z0ltQUFzQ0p3QUxBaS8vNkFJeC8rZ0NNLy9vQWpYLzZBSTMvK2dDT2Yvb0Fqdi82QUk5LytnQ1AvL29Ba0gvNkFKRC8rZ0NSZi9vQWtmLzZBSkovK2dDYS8vcUFtMy82Z0p2LytvQ2xRQUxBeEQvNkFNVy8rb0RHQUFMQXh6LzZnTTIvK2dET1AvcUF6ci82QU03QUFzRFBmL29BMFFBQ3dOTUFBc0RUUUFNQTA0QURBTlNBQXdEWFAvb0EyRUFDd05pLytnRFovL29BMmtBQ3dOMS8rZ0RkLy9vQTNqLzZBT0MvK29EaFAvb0E0Yi82Z09LQUFzRGpBQUxBNDRBQ3dPVi8rZ0RzZi9vQTdQLzZBTzEvK2dEdC8vb0E3bi82QU83LytnRHZmL29BNy8vNkFQRi8rb0R4Ly9xQThuLzZnUEwvK29EemYvcUE4Ly82Z1BSLytvRDAvL29BOVgvNkFQWC8rZ0QyZi9xQTl2LzZBUHJBQXNEN1FBTEErOEFDd0FNQUZyLzdRQmMvKzBBNmYvdEFwai83UUthLyswQ25QL3RBenovN1FOcy8rMERldi90QTVULzdRUDUvKzBFQWYvdEFBd0FXdi95QUZ6LzhnRHAvL0lDbVAveUFwci84Z0tjLy9JRFBQL3lBMnovOGdONi8vSURsUC95QS9uLzhnUUIvL0lBSHdCWS8vUUFXdi95QUZ2LzlBQmMvL01BdVAvMEFPbi84Z0VWLy9RQ0p2LzBBaWYvOUFLVi8vUUNtUC96QXByLzh3S2MvL01ER1AvMEF6di85QU04Ly9JRFJQLzBBMHovOUFOaC8vUURhZi8wQTJ6LzhnTjYvL0lEaXYvMEE0ei85QU9PLy9RRGxQL3lBK3YvOUFQdC8vUUQ3Ly8wQS9uLzhnUUIvL0lBZVFBRS84b0FDZi9LQURiLzBnQTQvOVFBT3YvMEFEdi8wd0JQLzlFQVVQL1JBRkwvMFFCWS8rWUFXdi92QUZ2LzVnQzQvK1lBdlAvUkFNMy8wZ0RSLzlJQTFmLzBBTm4vN1FEYy8rRUE1Ly9SQU9uLzd3RHIvOUVBN1AvUkFPNy8wUUR2LzlFQThQL1JBUFAvMFFEMS85RUE5di9SQVBuLzBRRDcvOUVCQVAvUkFSVC8xQUVWLytZQkx2L1NBVEgvMFFFMi85SUJRUC9SQVVYLzBRRmwvOG9CWnYvS0FXai95Z0ZwLzhvQmF2L0tBZ3YvMHdJYy85RUNKdi9tQWlmLzVnSmsvOUVDWnYvUkFtai8wUUpwLzlFQ2dQL1NBb0wvMGdLRS85SUNsUC9UQXBYLzVnS1cvOU1DL2YvVEF3ei8wd01OLy9RREQvL1RBeEwvMFFNWS8rWURKLy90QXpQLzBnTTAvL1FETi8vUkF6bi8wUU03LytZRFBQL3ZBejcvMFFORC85RURSUC9tQTB2LzB3Tk0vK1lEVGYvS0EwNy95Z05TLzhvRFZQL1JBMTMvMFFOZy85UURZZi9tQTJqLzB3TnAvK1lEYS8vMEEyei83d041Ly9RRGV2L3ZBMzcvMFFPQS85RURpZi90QTRyLzVnT0wvKzBEalAvbUE0My83UU9PLytZRGovL2hBNUwvMFFPVC8vUURsUC92QStyLzB3UHIvK1lEN1AvVEErMy81Z1B1LzlNRDcvL21BL1AvMFFQMS85RUQ5di9TQS9qLzlBUDUvKzhEK3YvaEEvei80UVAvLzlFRUFQLzBCQUgvN3dRTS85RUVEdi9SQkJELzBRUVQvOU1BSFFBMi83NEFXUC92QUZ2Lzd3QzQvKzhBemYrK0FOSC92Z0VWLys4Qkx2KytBVGIvdmdJbS8rOENKLy92QW9EL3ZnS0MvNzRDaFArK0FwWC83d01ZLys4RE0vKytBenYvN3dORS8rOERUUC92QTJILzd3TnAvKzhEaXYvdkE0ei83d09PLys4RDYvL3ZBKzMvN3dQdi8rOEQ5disrQURRQU52L21BRGovNXdBNi8vSUFPLy9uQUZyLzhRRE4vK1lBMGYvbUFOWC84Z0RaLys0QTNQL29BT24vOFFFVS8rY0JMdi9tQVRiLzVnSUwvK2NDZ1AvbUFvTC81Z0tFLytZQ2xQL25BcGIvNXdMOS8rY0REUC9uQXczLzhnTVAvK2NESi8vdUF6UC81Z00wLy9JRFBQL3hBMHYvNXdOZy8rY0RhUC9uQTJ2LzhnTnMvL0VEZWYveUEzci84UU9KLys0RGkvL3VBNDMvN2dPUC8rZ0RrLy95QTVULzhRUHEvK2NEN1AvbkErNy81d1AyLytZRCtQL3lBL24vOFFQNi8rZ0QvUC9vQkFELzhnUUIvL0VFRS8vbkFJUUFJd0FRQUNYLzZBQXAvK2dBTWYvb0FEUC82QUEyLytBQU9QL2dBRHYvM3dDQi8rZ0FrUC9vQUpULzZBQ3RBQkFBcnYvb0FLOEFFQUROLytBQXp2L29BTThBRUFEUi8rQUEyQUFRQU56LzRRRHRBQkFBOVAvZ0FQOEFFQUVELytnQkNBQVFBUkwvNkFFVS8rQUJGdi9vQVJqLzZBRWEvK2dCSFAvb0FTNy80QUUwLytnQk52L2dBVTBBRUFGUi8rZ0I4UUFRQWZJQUVBSHpBQkFCOUFBUUFmVUFFQUgyQUJBQjl3QVFBZmovNkFJQy8rZ0NBLy9vQWdULzZBSUYvK2dDQnYvb0Fndi8zd0lvQUJBQ0tnQVFBaXdBRUFJdS8rZ0NNUC9vQWpMLzZBSTAvK2dDUXYvb0FrVC82QUpHLytnQ1NQL29BbXIvNkFKcy8rZ0Nidi9vQW9ELzRBS0MvK0FDaFAvZ0FwVC8zd0tXLzk4Q24vL29BdmdBRUFMOC8rZ0MvZi9mQXdBQUVBTUovK2dERFAvZkF3Ly8zd01vQUJBREwvL29BekwvNkFNei8rQURTLy9mQTFVQUVBTlgvK2dEWVAvZ0EyUC82QU5tLytnRGFQL2ZBMjRBRUFOd0FCQURnZi9vQTRQLzZBT0YvK2dEai8vaEE1RC80QU9XQUJBRGx3QVFBNWdBRUFPYUFCQURuQUFRQTU0QUVBT2dBQkFEb2dBUUE2UUFFQU9tQUJBRHFBQVFBNm9BRUFPc0FCQURyZ0FRQThULzZBUEcvK2dEeVAvb0E4ci82QVBNLytnRHp2L29BOUQvNkFQUy8rZ0QxUC9vQTliLzZBUFkvK2dEMnYvb0Erci8zd1BzLzk4RDd2L2ZBL2IvNEFQNi8rRUQrLy9nQS96LzRRUDkvK0FFRVFBUUJCSUFFQVFULzk4QUxRQTIvL0VBT1AvMEFEci85QUE3Ly9BQXpmL3hBTS8vOVFEUi8vRUExZi8wQU5qLzlRRFovL01CRlAvMEFTNy84UUUyLy9FQlRmLzFBZ3YvOEFLQS8vRUNndi94QW9ULzhRS1UvL0FDbHYvd0F2My84QU1NLy9BRERmLzBBdy8vOEFNbi8vTURNLy94QXpULzlBTkwvL0FEWVAvMEEyai84QU5yLy9RRGVmLzBBNG4vOHdPTC8vTURqZi96QTVQLzlBT1cvL1VENnYvd0Erei84QVB1Ly9BRDl2L3hBL2ovOUFRQS8vUUVFZi8xQkJQLzhBQlpBQ01BRHdBMi8rWUFPUC9tQURvQURnQTcvK1lBclFBUEFLOEFEd0ROLytZQXp3QU9BTkgvNWdEVkFBNEEyQUFPQU5rQUN3RGMvK1VBN1FBUEFQVC82QUQvQUE4QkNBQVBBUlQvNWdFdS8rWUJOdi9tQVUwQURnSHhBQThCOGdBUEFmTUFEd0gwQUE4QjlRQVBBZllBRHdIM0FBOENDLy9tQWlnQUR3SXFBQThDTEFBUEFvRC81Z0tDLytZQ2hQL21BcFQvNWdLVy8rWUMrQUFQQXYzLzVnTUFBQThERFAvbUF3MEFEZ01QLytZREp3QUxBeWdBRHdNei8rWUROQUFPQTB2LzVnTlZBQThEWVAvbUEyai81Z05yQUE0RGJnQVBBM0FBRHdONUFBNERpUUFMQTRzQUN3T05BQXNEai8vbEE1RC82QU9UQUE0RGxnQU9BNWNBRHdPWUFBOERtZ0FQQTV3QUR3T2VBQThEb0FBUEE2SUFEd09rQUE4RHBnQVBBNmdBRHdPcUFBOERyQUFQQTY0QUR3UHEvK1lEN1AvbUErNy81Z1AyLytZRCtBQU9BL3IvNVFQNy8rZ0QvUC9sQS8zLzZBUUFBQTRFRVFBT0JCSUFEd1FULytZQUxnQTIvK01BT3YvbEFEdi81QUROLytNQXovL2xBTkgvNHdEVi8rVUEyUC9sQU5uLzZRRHQvK29BLy8vcUFTNy80d0UyLytNQlRmL2xBZ3YvNUFLQS8rTUNndi9qQW9ULzR3S1UvK1FDbHYva0F2My81QU1NLytRRERmL2xBdy8vNUFNbi8ra0RNLy9qQXpULzVRTkwvK1FEYVAva0Eydi81UU41LytVRGlmL3BBNHYvNlFPTi8ra0RrLy9sQTViLzVRT1gvK29ENnYva0Erei81QVB1LytRRDl2L2pBL2ovNVFRQS8rVUVFZi9sQkJMLzZnUVQvK1FBSVFBMi8rSUFPdi9rQU0zLzRnRFAvK1FBMGYvaUFOWC81QURZLytRQTJmL3BBTzMvNndELy8rc0JMdi9pQVRiLzRnRk4vK1FDZ1AvaUFvTC80Z0tFLytJRERmL2tBeWYvNlFNei8rSUROUC9rQTJ2LzVBTjUvK1FEaWYvcEE0di82UU9OLytrRGsvL2tBNWIvNUFPWC8rc0Q5di9pQS9qLzVBUUEvK1FFRWYva0JCTC82d0FYQURiLzZ3QTcvL01BemYvckFOSC82d0V1LytzQk52L3JBZ3YvOHdLQS8rc0Nndi9yQW9ULzZ3S1UvL01DbHYvekF2My84d01NLy9NREQvL3pBelAvNndOTC8vTURhUC96QStyLzh3UHMvL01EN3YvekEvYi82d1FULy9NQU1BQlAvKzhBVVAvdkFGTC83d0JhLy9BQXZQL3ZBT2YvN3dEcC8vQUE2Ly92QU96Lzd3RHUvKzhBNy8vdkFQRC83d0R6Lys4QTlmL3ZBUGIvN3dENS8rOEErLy92QVFELzd3RXgvKzhCUVAvdkFVWC83d0ljLys4Q1pQL3ZBbWIvN3dKby8rOENhZi92QXhMLzd3TTMvKzhET2YvdkF6ei84QU0rLys4RFEvL3ZBMVQvN3dOZC8rOERiUC93QTNyLzhBTisvKzhEZ1AvdkE1TC83d09VLy9BRDgvL3ZBL1gvN3dQNS8vQUQvLy92QkFILzhBUU0vKzhFRHYvdkJCRC83d0FkQUFULzhnQUovL0lBV1AvMUFGdi85UUM0Ly9VQkZmLzFBV1gvOGdGbS8vSUJhUC95QVduLzhnRnEvL0lDSnYvMUFpZi85UUtWLy9VREdQLzFBenYvOVFORS8vVURUUC8xQTAzLzhnTk8vL0lEVXYveUEySC85UU5wLy9VRGl2LzFBNHovOVFPTy8vVUQ2Ly8xQSszLzlRUHYvL1VBQkFEMC8rMERrUC90QS92LzdRUDkvKzBBQ2dBRS8vVUFDZi8xQVdYLzlRRm0vL1VCYVAvMUFXbi85UUZxLy9VRFRmLzFBMDcvOVFOUy8vVUFWQUJGLy9BQVJ2L3dBRWYvOEFCSi8vQUFVZi9yQUZQLzhBQ1IvL0FBbGYvd0FMYi84QURELy9BQXhQL3dBUEwvOEFEKy8vQUJFLy9yQVJuLzhBRWQvL0FCTmYvd0FVZi84QUZJLy9BQlV2L3dBaFAvOEFJVS8vQUNGZi93QWhiLzhBSVgvL0FDSGYvckFoNy82d0lmLytzQ0lQL3JBaUgvNndJdi8vQUNNZi93QWpQLzhBSTEvL0FDTi8vd0Fqbi84QUk3Ly9BQ1BmL3dBai8vOEFKQi8vQUNRLy93QWtYLzhBSkgvL0FDU2Yvd0Ftdi82d0p0LytzQ2IvL3JBeEQvOEFNVy8rc0RIUC9yQXpiLzhBTTQvK3NET3Yvd0F6My84QU5jLy9BRFl2L3dBMmYvOEFOMS8vQURkLy93QTNqLzhBT0MvK3NEaFAvd0E0Yi82d09WLy9BRHNmL3dBN1AvOEFPMS8vQUR0Ly93QTduLzhBTzcvL0FEdmYvd0E3Ly84QVBGLytzRHgvL3JBOG4vNndQTC8rc0R6Zi9yQTgvLzZ3UFIvK3NEMC8vd0E5WC84QVBYLy9BRDJmL3JBOXYvOEFDUEFBUUFEUUFKQUEwQVEvL3dBRVgvc0FCRy83QUFSLyt3QUVuL3NBQlIvOVlBVS8rd0FGZ0FDd0JiQUFzQWtmK3dBSlgvc0FDMi83QUF1QUFMQU1UL3NBRHQvNjhBOHYrd0FQNy9zQUQvLzY4QkUvL1dBUlVBQ3dFWi83QUJIZit3QVRYL3NBRkgvN0FCU1Ard0FWTC9zQUZsQUEwQlpnQU5BV2dBRFFGcEFBMEJhZ0FOQWd6LzhBSU4vL0FDRHYvd0FnLy84QUlRLy9BQ0VmL3dBaEwvOEFJVC83QUNGUCt3QWhYL3NBSVcvN0FDRi8rd0FoMy8xZ0llLzlZQ0gvL1dBaUQvMWdJaC85WUNKZ0FMQWljQUN3SXAvL0FDSy8vd0FpMy84QUl2LzdBQ01mK3dBalAvc0FJMS83QUNOLyt3QWpuL3NBSTcvN0FDUGYrd0FqLy9zQUpCLzdBQ1EvK3dBa1gvc0FKSC83QUNTZit3QW12LzFnSnQvOVlDYi8vV0FwVUFDd01RLzdBREZ2L1dBeGdBQ3dNYy85WUROZi93QXpiL3NBTTQvOVlET3Yrd0F6c0FDd005LzdBRFJBQUxBMHdBQ3dOTkFBMERUZ0FOQTFJQURRTlcvL0FEWFArd0EyRUFDd05pLzdBRFovK3dBMmtBQ3dOdi8vQURjZi93QTNYL3NBTjMvN0FEZVArd0E0TC8xZ09FLzdBRGh2L1dBNG9BQ3dPTUFBc0RqZ0FMQTVYL3NBT1gvNjhEbWYvd0E1di84QU9kLy9BRG4vL3dBNkgvOEFPai8vQURwZi93QTZmLzhBT3AvL0FEcS8vd0E2My84QU92Ly9BRHNmK3dBN1Avc0FPMS83QUR0Lyt3QTduL3NBTzcvN0FEdmYrd0E3Ly9zQVBGLzlZRHgvL1dBOG4vMWdQTC85WUR6Zi9XQTgvLzFnUFIvOVlEMC8rd0E5WC9zQVBYLzdBRDJmL1dBOXYvc0FQckFBc0Q3UUFMQSs4QUN3UVMvNjhBQ0FEdEFCQUE5UC93QVA4QUVBT1EvL0FEbHdBUUEvdi84QVA5Ly9BRUVnQVFBRVVBUlFBTUFFWUFEQUJIQUF3QVNRQU1BRk1BREFDUkFBd0FsUUFNQUxZQURBRERBQXdBeEFBTUFPMEFHQUR5QUF3QTlQLzNBUDRBREFEL0FCZ0JHUUFNQVIwQURBRTFBQXdCUndBTUFVZ0FEQUZTQUF3Q0V3QU1BaFFBREFJVkFBd0NGZ0FNQWhjQURBSXZBQXdDTVFBTUFqTUFEQUkxQUF3Q053QU1BamtBREFJN0FBd0NQUUFNQWo4QURBSkJBQXdDUXdBTUFrVUFEQUpIQUF3Q1NRQU1BeEFBREFNMkFBd0RPZ0FNQXowQURBTmNBQXdEWWdBTUEyY0FEQU4xQUF3RGR3QU1BM2dBREFPRUFBd0RrUC8zQTVVQURBT1hBQmdEc1FBTUE3TUFEQU8xQUF3RHR3QU1BN2tBREFPN0FBd0R2UUFNQTc4QURBUFRBQXdEMVFBTUE5Y0FEQVBiQUF3RCsvLzNBLzMvOXdRU0FCZ0FId0JZLy9RQVd2L3dBRnYvOUFDNC8vUUE2Zi93QU8zLzh3RC8vL01CRmYvMEFpYi85QUluLy9RQ2xmLzBBeGovOUFNNy8vUURQUC93QTBULzlBTk0vL1FEWWYvMEEybi85QU5zLy9BRGV2L3dBNHIvOUFPTS8vUURqdi8wQTVULzhBT1gvL01ENi8vMEErMy85QVB2Ly9RRCtmL3dCQUgvOEFRUy8vTUFDZ0FFLzlZQUNmL1dBV1gvMWdGbS85WUJhUC9XQVduLzFnRnEvOVlEVGYvV0EwNy8xZ05TLzlZQUNnQUUvL1VBQ2YvMUFXWC85UUZtLy9VQmFQLzFBV24vOVFGcS8vVURUZi8xQTA3LzlRTlMvL1VBWGdBRUFBc0FDUUFMQUVYLzZ3QkcvK3NBUi8vckFFbi82d0JSLytrQVUvL3JBSkgvNndDVi8rc0F0di9yQU1QLzZ3REUvK3NBOHYvckFQNy82d0VULytrQkdmL3JBUjMvNndFMS8rc0JSLy9yQVVqLzZ3RlMvK3NCWlFBTEFXWUFDd0ZvQUFzQmFRQUxBV29BQ3dJVC8rc0NGUC9yQWhYLzZ3SVcvK3NDRi8vckFoMy82UUllLytrQ0gvL3BBaUQvNlFJaC8ra0NMLy9yQWpILzZ3SXovK3NDTmYvckFqZi82d0k1LytzQ08vL3JBajMvNndJLy8rc0NRZi9yQWtQLzZ3SkYvK3NDUi8vckFrbi82d0pyLytrQ2JmL3BBbS8vNlFNUS8rc0RGdi9wQXh6LzZRTTIvK3NET1AvcEF6ci82d005LytzRFRRQUxBMDRBQ3dOU0FBc0RYUC9yQTJMLzZ3Tm4vK3NEZGYvckEzZi82d040LytzRGd2L3BBNFQvNndPRy8ra0RsZi9yQTdILzZ3T3ovK3NEdGYvckE3Zi82d081LytzRHUvL3JBNzMvNndPLy8rc0R4Zi9wQThmLzZRUEovK2tEeS8vcEE4My82UVBQLytrRDBmL3BBOVAvNndQVi8rc0QxLy9yQTluLzZRUGIvK3NBQWdzZUFBUUFBQTNtRlRvQUlRQWRBQUFBRWYvTy80OEFFdi8xLysvL2lQLzAvN3YvZi8vMUFBei9xZitpLzhrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rVUFBQUFBLytqL3lRQUEvL01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFELzVRQVJBQUFBQUFBQUFBQUFBUC9qQUFBQUFBQUEvK1QvNUFBQUFCSUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzRRQUFBQUFBQUFBQUFBQUFBQUFBQUFELzVRQUFBQUQvNnYvVkFBQUFBUC9yLytyL212L3BBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rWUFBQUFBQUFBQUFBQUEvKzBBQUFBVS8rOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC83UUFBQUFBQUFBQUFBQUFBQUFBQUFBRC95Lys0LzN6L2Z2L2tBQUFBQVArZEFBOEFFUCtoLzhRQUVBQVFBQUFBQVAreEFBRC9KZ0FBLzUzL3MvOFkvNVAvOFArUC80ei9FQUFBLzVML2N2OE0vdy8vdlFBQUFBRC9SQUFGQUFmL1MvK0dBQWNBQndBQUFBRC9QZ0FBL25vQUFQOUUvMnIrWXY4ei85SC9MUDhuQUFBQUFBQUFBQUFBQVAvWUFBQUFBQUFBLyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvWS82TUFBUC9oQUFBQUFQL2xBQUFBQVAvcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rWUFBUC9BLytrQUFBQUFBQUFBQUFBQUFBRC9ld0FBQUFEL3YvL0svM1lBQVA5eC91My8xQUFBLzFIL0VRQUFBQUFBRXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9KQUE4QUFQL1pBQUFBQUFBQS8vTUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8zYi80ZjY4LytiLzh3QUFBQUFBQUFBQS8vVUFBUDg0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOVFBQUFBRC84d0FBQUFELzBnQUFBQUQvNUFBQUFBQUFBQUFBQUFEL3RRQUEveDhBQVAvVUFBRC8yd0FBQUFELzBnQUFBQUFBQUFBUi8rSC8wUUFSLytjQUFBQUEvK3NBQUFBQS8rc0FBQUFPQUFBQUFBQUFBQUFBQUFBQUFBRC81Z0FBLzlJQUFBQUFBQUFBQUFBQUFBQUFBUC9zQUFBQUFQL2ovNkFBQVArL0FCRUFFZi9aLytJQUVnQVNBQUFBQVAraUFBMy9MUUFBLzcvLzZmL00vOWovOFArMy84Yi9vQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC80UUFBQUE3LzdRQUFBQUFBQUFBQUFBRC8xUUFBLzRVQUFQL2hBQUQveEFBQUFBRC8zd0FBQUFBQUFBQUEvK1VBQUFBQS8rWUFBQUFBLytzQUFBQUEvKzBBQUFBQUFBQUFBQUFBQUEwQUFBQUFBQUQvNndBQUFBQUFBQUFBQUFBQUFBQUFBQUQveWdBQS8rbi91Ly9wQUFBQUFQKzlBQUFBRWdBQUFBQUFBQUFTQUFBQUFQK2xBQUQrYlFBQS83MEFBUCtKLzVvQUFQK1IvOUlBQUFBQUFBRC84UUFBQUFBQUFBQUEvNzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvMUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzFBQUQvOGdBQUFBRC80d0FBQUFBQUFBQUEvL0VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOFFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOHdBQUFBQUFBQUFBLy9JQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC94QUFELzhBQUFBQUQvN0FBQUFBQUFBQUFBLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzZ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvOWNBQUFBQUFBLy84UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzVVQUFQL3pBQUFBQUFBQUFBRC84UUFBQUFBQUFBQUFBQklBQUFBQUFBQUFBQUFRLyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK0ZBQUQvN1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVArVi84TUFBQUFBQUFBQUFBQUFBQUFBQUFBQS80Z0FBQUFBQUFEL3hRQUFBQUQvN0FBQS84Ny9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC9WZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL1VBQUFBQUFBQUFBQUFBLzhBQUFBQUEvdlVBQUFBQS84ai9yZi9uLytzQUFQL3dBQUFBQUFBQS84a0FBQUFBQUFBQUFBQUFBQUFBQUFBQS85My8yUUFBQUFBQUFQOTVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8xQUFBQUFBQUFBQUFBQUFBQUFBSUFpQUFFQUFRQUFBQUpBQWtBQVFBUkFCRUFBZ0FqQUNnQUF3QXFBRE1BQ1FBMkFEd0FFd0JEQUVRQUdnQkhBRWdBSEFCS0FFb0FIZ0JQQUZJQUh3QlVBRlFBSXdCWUFGZ0FKQUJhQUZzQUpRQ0lBSWdBSndDWkFKa0FLQUNzQUxBQUtRQ3lBTFFBTGdDMkFMWUFNUUM0QUxrQU1nQzdBTHdBTkFDK0FNQUFOZ0RDQU1jQU9RRE5BTTBBUHdEUEFOa0FRQURiQU5zQVN3RGRBTjhBVEFEaEFPTUFUd0RsQU9rQVVnRHNBT3dBVndEeEFQTUFXQUQyQVBjQVd3RDVBUHNBWFFEL0FRQUFZQUVGQVFVQVlnRUlBUWdBWXdFVEFSVUFaQUVuQVNrQVp3RXNBU3dBYWdFdUFTNEFhd0ZGQVVVQWJBRmxBV1lBYlFGb0FXb0Fid0dtQWFZQWNnR3BBYWtBY3dHckFhc0FkQUd3QWJFQWRRRzBBYllBZHdHNEFiNEFlZ0hFQWNRQWdRSGJBZHdBZ2dIb0FlZ0FoQUhzQWUwQWhRSHZBZThBaHdIeEFoSUFpQUlVQWhjQXFnSWNBaUVBcmdJbUFpNEF0QUl3QWpBQXZRSXlBaklBdmdJMEFqUUF2d0kyQWpZQXdBSTRBa0VBd1FKS0Frd0F5d0pPQWs0QXpnSlFBbEFBendKU0FsSUEwQUpVQWxRQTBRSlhBbGNBMGdKWkFsa0Ewd0piQWxzQTFBSmRBbDBBMVFKZkFsOEExZ0poQW1FQTF3SmpBbThBMkFKeEFuRUE1UUp6QW5NQTVnSjFBblVBNXdLQUFvQUE2QUtDQW9JQTZRS0VBb1FBNmdLR0FvWUE2d0tJQW9nQTdBS0tBb29BN1FLTUFvd0E3Z0tPQW80QTd3S1FBcEFBOEFLU0FwSUE4UUtVQXBjQThnS1pBcGtBOWdLYkFwc0E5d0w0QXYwQStBTUFBdzhBL2dNU0F4SUJEZ01XQXhZQkR3TVlBeGdCRUFNY0F4d0JFUU1mQXlBQkVnTWlBeXNCRkFNdEF5OEJIZ014QXpZQklRTTRBemtCSndNN0F6NEJLUU5FQTBVQkxRTkhBMGNCTHdOSkEwa0JNQU5MQTA0Qk1RTlNBMWNCTlFOYUExb0JPd05jQTF3QlBBTmdBMkVCUFFObUEyWUJQd05vQTNFQlFBTjBBM1VCU2dOM0Ezb0JUQU9CQTRJQlVBT0dBNFlCVWdPSUE0NEJVd09UQTVRQldnT1lBOEFCWEFQQ0E4SUJoUVBFQTlFQmhnUFpBOWtCbEFQY0E5d0JsUVBlQTk0QmxnUHFBKzhCbHdQeUEvSUJuUVAwQS9RQm5nUDJBL1lCbndQNEEva0JvQVArQkFFQm9nUUVCQVFCcGdRR0JBY0Jwd1FKQkFrQnFRUU5CQTBCcWdRUEJBOEJxd1FUQkJNQnJBQUJBQW9BQ2dBb0FETUFOQUE5QUVnQVRRQldBRmtBWFFBQkFDSUFtUUN3QUxJQXN3QzBBTHNBdmdDL0FNQUF4UURIQU1nQXlRRE5BTkVBMHdEVUFOWUEzZ0RpQU9NQTVBRGxBT1lBNkFEcUFPd0E4UUR6QVBZQSt3RCtBUjBCM0FBQ0FIWUFCQUFFQUFBQUNRQUpBQUVBRGdBT0FBSUFFQUFRQUFNQUl3QW5BQVFBS2dBeUFBa0FOZ0E4QUJJQVF3QkZBQmtBUndCSEFCd0FTZ0JLQUIwQVR3QlNBQjRBVkFCVUFDSUFXQUJZQUNNQVdnQmNBQ1FBaUFDSUFDY0FyQUN2QUNnQXVBQzRBQ3dBdkFDOEFDMEF3Z0RDQUM0QXp3RFFBQzhBMGdEU0FERUExUURWQURJQTF3RFpBRE1BMndEYkFEWUEzUURkQURjQTN3RGZBRGdBNFFEaEFEa0E1d0RuQURvQTZRRHBBRHNBOGdEeUFEd0E5d0QzQUQwQStRRDZBRDRBL3dFQUFFQUJCUUVGQUVJQkNBRUlBRU1CRXdFVkFFUUJKd0VwQUVjQkxBRXNBRW9CTGdFdUFFc0JSUUZGQUV3QlpRRnJBRTBCYndGd0FGUUI3QUh0QUZZQjd3SHZBRmdCOFFJWEFGa0NIQUloQUlBQ0pnSTJBSVlDT0FKQkFKY0NTZ0pNQUtFQ1RnSk9BS1FDVUFKUUFLVUNVZ0pTQUtZQ1ZBSlVBS2NDVndKWEFLZ0NXUUpaQUtrQ1d3SmJBS29DWFFKZEFLc0NYd0pmQUt3Q1lRSmhBSzBDWXdKdkFLNENjUUp4QUxzQ2N3SnpBTHdDZFFKMUFMMENnQUtBQUw0Q2dnS0NBTDhDaEFLRUFNQUNoZ0tHQU1FQ2lBS0lBTUlDaWdLS0FNTUNqQUtNQU1RQ2pnS09BTVVDa0FLUUFNWUNrZ0tTQU1jQ2xBS2NBTWdDK0FMOUFORURBQU1QQU5jREVnTVNBT2NERmdNV0FPZ0RHQU1ZQU9rREhBTWNBT29ESHdNZ0FPc0RJZ01yQU8wRExRTXZBUGNETVFNMkFQb0RPQU0rQVFBRFJBTkZBUWNEUndOSEFRa0RTUU5KQVFvRFN3Tk9BUXNEVWdOWEFROERXZ05hQVJVRFhBTmNBUllEWUFOaEFSY0RaZ054QVJrRGRBTjFBU1VEZHdONkFTY0RnUU9DQVNzRGhnT0dBUzBEaUFPT0FTNERrd09VQVRVRG1BUEFBVGNEd2dQQ0FXQUR4QVBSQVdFRDJRUFpBVzhEM0FQY0FYQUQzZ1BlQVhFRDZnUHZBWElEOGdQeUFYZ0Q5QVAwQVhrRDlnUDJBWG9EK0FQNUFYc0QvZ1FCQVgwRUJBUUVBWUVFQmdRSEFZSUVDUVFKQVlRRURRUU5BWVVFRHdRUEFZWUVFd1FUQVljQUFnRTRBQVFBQkFBZEFBa0FDUUFkQUE0QURnQWVBQkFBRUFBZUFDUUFKQUFCQUNVQUpRQUVBQ1lBSmdBREFDY0FKd0FGQUNvQUt3QUNBQ3dBTEFBTUFDMEFMUUFKQUM0QUxnQUtBQzhBTUFBQ0FERUFNUUFEQURJQU1nQUxBRFlBTmdBR0FEY0FOd0FNQURnQU9BQU5BRGtBT1FBUUFEb0FPZ0FPQURzQU93QVBBRHdBUEFBUkFFTUFRd0FUQUVRQVJBQVZBRVVBUlFBVUFFY0FSd0FXQUVvQVNnQVhBRThBVUFBWEFGRUFVUUFZQUZJQVVnQVZBRlFBVkFBYUFGZ0FXQUFaQUZvQVdnQWJBRnNBV3dBWkFGd0FYQUFjQUlnQWlBQVZBS3dBckFBSEFLNEFyZ0FEQUxnQXVBQVpBTHdBdkFBWEFNSUF3Z0FWQU04QTBBQWZBTklBMGdBQ0FOVUExUUFPQU5jQTJBQUNBTmtBMlFBU0FOc0Eyd0FDQU4wQTNRQUNBTjhBM3dBZkFPRUE0UUFmQU9jQTV3QUlBT2tBNlFBYkFQSUE4Z0FWQVBjQTl3QWdBUGtBK1FBZ0FQb0ErZ0FWQVA4QkFBQWdBUVVCQlFBZ0FSTUJFd0FZQVJRQkZBQU5BUlVCRlFBWkFTY0JKd0FWQVNnQktBQUhBU2tCS1FBSUFTd0JMQUFKQVM0QkxnQUpBVVVCUlFBSUFXVUJaZ0FkQVdjQlp3QWVBV2dCYWdBZEFXc0Jhd0FlQVc4QmNBQWVBZXdCN1FBREFlOEI3d0FHQWZnQitBQUVBZmtCL0FBRkFmMENBUUFDQWdJQ0JnQURBZ2NDQ2dBTUFnc0NDd0FQQWd3Q0VnQVRBaE1DRXdBVUFoUUNGd0FXQWh3Q0hBQVhBaDBDSVFBWUFpWUNKd0FaQWlrQ0tRQVRBaXNDS3dBVEFpMENMUUFUQWk0Q0xnQUVBaThDTHdBVUFqQUNNQUFFQWpFQ01RQVVBaklDTWdBRUFqTUNNd0FVQWpRQ05BQUVBalVDTlFBVUFqWUNOZ0FEQWpnQ09BQUZBamtDT1FBV0Fqb0NPZ0FGQWpzQ093QVdBandDUEFBRkFqMENQUUFXQWo0Q1BnQUZBajhDUHdBV0FrQUNRQUFGQWtFQ1FRQVdBa29DU2dBQ0Frc0NTd0FYQWt3Q1RBQUNBazRDVGdBQ0FsQUNVQUFDQWxJQ1VnQUNBbFFDVkFBQ0FsY0NWd0FNQWxrQ1dRQUpBbHNDV3dBS0FsMENYUUFLQWw4Q1h3QUtBbUVDWVFBS0FtTUNZd0FDQW1RQ1pBQVhBbVVDWlFBQ0FtWUNaZ0FYQW1jQ1p3QUNBbWdDYVFBWEFtb0NhZ0FEQW1zQ2F3QVlBbXdDYkFBREFtMENiUUFZQW00Q2JnQURBbThDYndBWUFuRUNjUUFhQW5NQ2N3QWFBblVDZFFBYUFvQUNnQUFHQW9JQ2dnQUdBb1FDaEFBR0FvWUNoZ0FNQW9nQ2lBQU1Bb29DaWdBTUFvd0NqQUFNQW80Q2pnQU1BcEFDa0FBTUFwSUNrZ0FRQXBRQ2xBQVBBcFVDbFFBWkFwWUNsZ0FQQXBjQ2x3QVJBcGdDbUFBY0Fwa0NtUUFSQXBvQ21nQWNBcHNDbXdBUkFwd0NuQUFjQXZrQytRQUZBdm9DK3dBQ0F2d0MvQUFEQXYwQy9RQVBBd0VEQVFBQkF3SURBZ0FGQXdNREF3QVJBd1FEQlFBQ0F3WURCZ0FKQXdjRENBQUNBd2tEQ1FBREF3b0RDZ0FMQXdzREN3QUdBd3dEREFBUEF3MEREUUFPQXc0RERnQUNBdzhERHdBUEF4SURFZ0FYQXhZREZnQVlBeGdER0FBWkF4d0RIQUFZQXg4REh3QUZBeUFESUFBSEF5SURJd0FDQXlRREpBQU1BeVVESmdBSkF5Y0RKd0FTQXlrREtRQUJBeW9ES2dBSEF5c0RLd0FGQXkwRExnQUNBeThETHdBREF6RURNUUFMQXpJRE1nQUVBek1ETXdBR0F6UUROQUFPQXpVRE5RQVRBellETmdBV0F6Z0RPQUFZQXprRE9RQVZBem9ET2dBVUF6c0RPd0FaQXp3RFBBQWJBejBEUFFBV0F6NERQZ0FJQTBRRFJBQVpBMFVEUlFBUUEwY0RSd0FRQTBrRFNRQVFBMHNEU3dBUEEwd0RUQUFaQTAwRFRnQWRBMUlEVWdBZEExTURVd0FDQTFRRFZBQVhBMVlEVmdBVEExY0RWd0FEQTFvRFdnQUZBMXdEWEFBV0EyQURZQUFOQTJFRFlRQVpBMllEWmdBRUEyY0Rad0FVQTJnRGFBQVBBMmtEYVFBWkEyb0RhZ0FDQTJzRGF3QU9BMndEYkFBYkEyMERiUUFDQTI4RGJ3QVRBM0VEY1FBVEEzUURkQUFGQTNVRGRRQVdBM2NEZUFBV0Eza0RlUUFPQTNvRGVnQWJBNEVEZ1FBREE0SURnZ0FZQTRZRGhnQVlBNGdEaUFBVkE0a0RpUUFTQTRvRGlnQVpBNHNEaXdBU0E0d0RqQUFaQTQwRGpRQVNBNDREamdBWkE1TURrd0FPQTVRRGxBQWJBNWtEbVFBVEE1c0Rtd0FUQTUwRG5RQVRBNThEbndBVEE2RURvUUFUQTZNRG93QVRBNlVEcFFBVEE2Y0Rwd0FUQTZrRHFRQVRBNnNEcXdBVEE2MERyUUFUQTY4RHJ3QVRBN0FEc0FBRkE3RURzUUFXQTdJRHNnQUZBN01Ec3dBV0E3UUR0QUFGQTdVRHRRQVdBN1lEdGdBRkE3Y0R0d0FXQTdnRHVBQUZBN2tEdVFBV0E3b0R1Z0FGQTdzRHV3QVdBN3dEdkFBRkE3MER2UUFXQTc0RHZnQUZBNzhEdndBV0E4QUR3QUFDQThJRHdnQUNBOFFEeEFBREE4VUR4UUFZQThZRHhnQURBOGNEeHdBWUE4Z0R5QUFEQThrRHlRQVlBOG9EeWdBREE4c0R5d0FZQTh3RHpBQURBODBEelFBWUE4NER6Z0FEQTg4RHp3QVlBOUFEMEFBREE5RUQwUUFZQTlrRDJRQVlBOXdEM0FBTUE5NEQzZ0FNQStvRDZnQVBBK3NENndBWkErd0Q3QUFQQSswRDdRQVpBKzREN2dBUEErOEQ3d0FaQS9JRDhnQUpBL1FEOUFBQ0EvWUQ5Z0FHQS9nRCtBQU9BL2tEK1FBYkEvNEQvZ0FIQS84RC93QUlCQUFFQUFBT0JBRUVBUUFiQkFRRUJBQVhCQVlFQmdBZkJBY0VCd0FIQkFrRUNRQUpCQTBFRFFBQ0JBOEVEd0FDQkJNRUV3QVBBQUVBQkFRV0FBY0FBQUFBQUFBQUFBQUhBQUFBQUFBQUFBQUFFd0FYQUJNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVRQUFBQVVBQUFBQUFBQUFCUUFBQUFBQUhBQUFBQUFBQUFBQUFBVUFBQUFGQUFBQUdRQUtBQVlBRFFBSkFCSUFEZ0FVQUFBQUFBQUFBQUFBQUFBQUFCb0FBQUFWQUJVQUZRQUFBQlVBQUFBQUFBQUFBQUFBQUJnQUdBQUlBQmdBRlFBQUFCc0FBQUFMQUFJQUFBQVdBQUlBREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQlVBQUFBQUFBVUFGUUFBQUFzQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRVFBRkFCRUFBQUFBQUFBQUFBQUFBQUFBRlFBQUFBSUFBQUFBQUFBQUdBQUFBQUFBQUFBQUFBQUFBQUFWQUJVQUFBQUxBQUFBQUFBQUFBQUFBQUFBQUFvQUJRQUJBQUFBQ2dBQUFBQUFBQUFTQUFBQUFBQUJBQkFBQUFBQUFBOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUZnQUFBQmdBR0FBRUFCZ0FHQUFZQUFBQUZRQVlBQU1BR0FBWUFBQUFBQUFZQUFBQUdBQUFBQUFBRlFBRUFCZ0FBQUFBQUFVQUFBQUFBQUFBQUFBUkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFDQUFOQUFJQUJRQUFBQVVBRlFBRkFBQUFCUUFWQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDZ0FBQUFBQUdBQUFBQUFBQlFBVkFBb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQUFBQUFBQUFBQmdBQUFBVkFCVUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBVUFGUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWEFCY0FBQUFIQUFjQUV3QUhBQWNBQndBVEFBQUFBQUFBQUJNQUV3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGd0FBQUFBQUFBQUFBQUFBRVFBUkFCRUFFUUFSQUJFQUVRQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVVBQlFBRkFBVUFCUUFHQUFZQUJnQUdBQTRBR2dBYUFCb0FHZ0FhQUJvQUdnQVZBQlVBRlFBVkFCVUFBQUFBQUFBQUFBQVlBQWdBQ0FBSUFBZ0FDQUFMQUFzQUN3QUxBQUlBQWdBUkFCb0FFUUFhQUJFQUdnQUZBQlVBQlFBVkFBVUFGUUFGQUJVQUFBQVZBQUFBRlFBQUFCVUFBQUFWQUFBQUZRQUFBQlVBQlFBVkFBVUFGUUFGQUJVQUJRQVZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBR0FBQUFCZ0FHQUFGQUFnQUJRQUlBQVVBQ0FBQUFBQUFBQUFBQUFBQUFBQVpBQnNBR1FBYkFCa0FHd0FaQUJzQUdRQWJBQW9BQUFBS0FBQUFDZ0FBQUFZQUN3QUdBQXNBQmdBTEFBWUFDd0FHQUFzQUJnQUxBQWtBQUFBT0FBSUFEZ0FVQUF3QUZBQU1BQlFBREFBQUFBQUFCUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRUFBQUFBQUFBQUJRQU9BQUFBQUFBUkFBQUFBQUFVQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFPQUJJQUFBQU9BQlVBQUFBWUFBQUFDd0FBQUFnQUFBQUNBQUFBQUFBTEFBZ0FDd0FBQUFBQUFBQUFBQUFBQUFBY0FBQUFBQUFRQUJFQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUJRQUtBQklBR2dBVkFCZ0FDQUFZQUJVQUFnQVdBQlVBR0FBYkFBQUFBQUFBQUJnQUFnQUpBQUFBQ1FBQUFBa0FBQUFPQUFJQUJ3QUhBQUFBQUFBQUFBY0FBQUFZQUJFQUdnQUZBQUFBQUFBQUFBQUFGUUFZQUFBQUFBQU5BQUlBRlFBRkFBQUFBQUFGQUJVQURnQUNBQUFBRWdBV0FBQUFFUUFhQUJFQUdnQUFBQUFBQUFBVkFBQUFGUUFWQUJJQUZnQUFBQUFBQUFBWUFBQUFHQUFGQUFnQUJRQVZBQVVBQ0FBQUFBQUFFQUFDQUJBQUFnQVFBQUlBRHdBREFBQUFHQUFTQUJZQUZRQUJBQVFBRVFBYUFCRUFHZ0FSQUJvQUVRQWFBQkVBR2dBUkFCb0FFUUFhQUJFQUdnQVJBQm9BRVFBYUFCRUFHZ0FSQUJvQUFBQVZBQUFBRlFBQUFCVUFBQUFWQUFBQUZRQUFBQlVBQUFBVkFBQUFGUUFBQUFBQUFBQUFBQVVBQ0FBRkFBZ0FCUUFJQUFVQUNBQUZBQWdBQlFBSUFBVUFDQUFGQUJVQUJRQVZBQVVBRlFBRkFBZ0FCUUFWQUFZQUN3QUdBQXNBQUFBTEFBQUFDd0FBQUFzQUFBQUxBQUFBQ3dBT0FBSUFEZ0FDQUE0QUFnQUFBQUFBQUFBWUFBQUFHQUFLQUFBQUVnQVdBQThBQXdBUEFBTUFBQUFZQUJJQUZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmdBQUFBWUFBQUFHQUFCQUFRQURnQUFBQUFBQUFBQUFBQUFGd0FCQUFBQUNnQXNBSTRBQVVSR1RGUUFDQUFFQUFBQUFQLy9BQWdBQUFBQkFBSUFBd0FFQUFVQUJnQUhBQWhzYVdkaEFESnNiblZ0QURoemJXTndBRDV6Y3pBeEFFUnpjekF5QUVwemN6QXpBRkJ6Y3pBMEFGWnpjekExQUZ3QUFBQUJBQUVBQUFBQkFBSUFBQUFCQUFBQUFBQUJBQU1BQUFBQkFBUUFBQUFCQUFVQUFBQUJBQVlBQUFBQkFBY0FDQUFTQUJvQUlnQXFBRElBT2dCQ0FFb0FBUUFBQUFFQVFBQUVBQUFBQVFIMkFBRUFBQUFCQWdBQUFRQUFBQUVDRWdBQkFBQUFBUUlRQUFFQUFBQUJBZzRBQVFBQUFBRUNEQUFCQUFBQUFRSU9BQUlDRUFEY0FhWUJwd0dvQWFrQnFnR3JBYXdCclFHdUFhOEJzQUd4QWJJQnN3RzBBZWdCdFFHMkFiY0J1QUc1QWJvQnV3RzhBYjBCdmdHbUFhY0JxQUdwQWFvQnF3R3NBYTBCcmdHdkFiQUJzUUd5QWJNQnRBSG9BYlVCdGdHM0FiZ0J1UUc2QWJzQnZBRzlBYjRDOXdLaUFxRUNvZ0tqQXFNQ3BBS2xBcVlDcHdLb0Fxa0NxZ0tyQXF3Q3JRS3VBcThDc0FLeEFySUNzd0swQXJVQ3RnSzNBcmdDdVFLNkFyc0N2QUs5QXI0Q3BBS2xBcVlDcHdLb0Fxa0NxZ0tyQXF3Q3JRS3VBcThDc0FLeEFySUNzd0swQXJVQ3RnSzNBcmdDdVFLNkFyc0N2QUs5QXI0Qzh3Sy9BcjhDd0FMQUFzRUN3UUxDQXNJQ3d3TERBc1VDeFFMR0FzWUN4d0xIQXNnQ3lBTEpBc2tDeWdMS0Fzc0N5d0xNQXN3Q3pRTE5BczhDendMUUF0QUMwUUxSQXRJQzBnTFRBdE1DMUFMVUF0VUMxZ0xXQXRjQzF3TFlBdGdDMlFMWkF0b0MyZ0xiQXRzQzNBTGNBdDBDM1FMZUF0NEMzd0xmQXVBQzRBTGhBdUVDNGdMaUF1TUM0d0xrQXVRQzVRTGxBdVlDNWdMbkF1Y0M2QUxvLy8vLy93THFBdW9DNndMckF1d0M3QUx0QXUwQzdnTHVBdThDN3dMd0F2QUM4UUx4QXZJQzhnTHpBdlFDOUFMMUF2VUM5Z0wyQXFFQUFRQ2tBQUVBQ0FBQkFBUUJrZ0FDQUVzQUFnQ1lBQW9CbUFITUFjUUIxZ0hYQWRnQjJRSGJBZDBCNXdBQkFJZ0JrUUFCQUlnQktBQUJBSWdCcmdBQ0FJZ0FBZ0hqQWVRQUFnQitBQUlCNVFIbUFBSUFEUUFqQUR3QUFBQkRBRndBR2dDREFJTUFOQUNGQUlVQU5RSHNBZTBBTmdIdkFqRUFPQUkwQWtVQWV3SklBbFFBalFKWEFtZ0FtZ0pxQW5zQXJBSitBbjhBdmdLQ0Fwd0F3QVB3QS9BQTJ3QUJBQUVBU0FBQ0FBRUFFZ0FiQUFBQUFRQUJBRWtBQVFBQkFMWUFBUUFCQURRQUFRQUNBQzBBVFE9PSIsInNhbXBsZUltYWdlLmpwZyI6Ii85ai80UkM1UlhocFpnQUFUVTBBS2dBQUFBZ0FCd0VTQUFNQUFBQUJBQUVBQUFFYUFBVUFBQUFCQUFBQVlnRWJBQVVBQUFBQkFBQUFhZ0VvQUFNQUFBQUJBQUlBQUFFeEFBSUFBQUFnQUFBQWNnRXlBQUlBQUFBVUFBQUFrb2RwQUFRQUFBQUJBQUFBcUFBQUFOUUFDdnlBQUFBbkVBQUsvSUFBQUNjUVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5TNHhJRTFoWTJsdWRHOXphQUF5TURFME9qQXpPakU1SURBek9qQXlPakkyQUFBQUFBT2dBUUFEQUFBQUFRQUJBQUNnQWdBRUFBQUFBUUFBQXJlZ0F3QUVBQUFBQVFBQUFUWUFBQUFBQUFBQUJnRURBQU1BQUFBQkFBWUFBQUVhQUFVQUFBQUJBQUFCSWdFYkFBVUFBQUFCQUFBQktnRW9BQU1BQUFBQkFBSUFBQUlCQUFRQUFBQUJBQUFCTWdJQ0FBUUFBQUFCQUFBUGZ3QUFBQUFBQUFCSUFBQUFBUUFBQUVnQUFBQUIvOWovN1FBTVFXUnZZbVZmUTAwQUFmL3VBQTVCWkc5aVpRQmtnQUFBQUFILzJ3Q0VBQXdJQ0FnSkNBd0pDUXdSQ3dvTEVSVVBEQXdQRlJnVEV4VVRFeGdSREF3TURBd01FUXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdCRFFzTERRNE5FQTRPRUJRT0RnNFVGQTRPRGc0VUVRd01EQXdNRVJFTURBd01EQXdSREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNRFAvQUFCRUlBRWNBb0FNQklnQUNFUUVERVFILzNRQUVBQXIveEFFL0FBQUJCUUVCQVFFQkFRQUFBQUFBQUFBREFBRUNCQVVHQndnSkNnc0JBQUVGQVFFQkFRRUJBQUFBQUFBQUFBRUFBZ01FQlFZSENBa0tDeEFBQVFRQkF3SUVBZ1VIQmdnRkF3d3pBUUFDRVFNRUlSSXhCVUZSWVJNaWNZRXlCaFNSb2JGQ0l5UVZVc0ZpTXpSeWd0RkRCeVdTVS9EaDhXTnpOUmFpc29NbVJKTlVaRVhDbzNRMkY5SlY0bVh5czRURDAzWGo4MFlubEtTRnRKWEUxT1QwcGJYRjFlWDFWbVoyaHBhbXRzYlc1dlkzUjFkbmQ0ZVhwN2ZIMStmM0VRQUNBZ0VDQkFRREJBVUdCd2NHQlRVQkFBSVJBeUV4RWdSQlVXRnhJaE1GTW9HUkZLR3hRaVBCVXRId015Umk0WEtDa2tOVEZXTnpOUEVsQmhhaXNvTUhKalhDMGtTVFZLTVhaRVZWTm5SbDR2S3poTVBUZGVQelJwU2toYlNWeE5UazlLVzF4ZFhsOVZabWRvYVdwcmJHMXViMkp6ZEhWMmQzaDVlbnQ4Zi8yZ0FNQXdFQUFoRURFUUEvQU85Z0piZk5TaEtGYXRwc2ZjUE5SSmQzMVJJVEVKV3BHSDJBNkV4NEtKUGtpbHFiYWpZUnFpa3BpUExYeFJDeE50VHJVaklQKzFTRzhjQlBCVDdkUFB4U3RDVnJzbHJRNWpkekJ6dzZGSDdWYUhTSUk3d09GQ1hBUkpBOEZFaVUwUkhVQmNaSG9TbisxdlBZZk0vM3FGbVc5NGlJK0NGdDdka21ob0kzYXQ3Z2NvaUVSMFZ4eVBWbXkyc0NYeVQ0YXdwRzlyajdYbG83aFFsbjVvMmp4T3FpNDF4TFpKSGM4ZmxSNFJmVlhGcHVGdzkycm51MC9OSDk2R2JuN3V5UjNIa3AyMHZlSkVSNXAxQWJvc25aZzYxNS93QnlHU1R5aWxrSG1mZ21oT0JDMDMxZi85RDBYMEgrQi9CUk5UeDJWdUpHaWJYd1QvY0xFY1FhZTF3N0ppUEVLOUJQSVRHdVNqN25najJ1elMwU0EzR0J5cmJEWGJ1OU10czJPTFg3VE1PSDBtUDIvbi95VTVZRDJSOXp3UjdYaTBvVGJKUEN0dW9iT21pUXBFenlVZmNDUGJMV1lHUVE1bTQ5ai9CUkxZNWFGYzJ0QTFIOFUyeXVaaVo3aExqODA4R2pSSStTYUZlZFRWT2c3ZUovdlVEVUJ3SlRoa0MwNGkxTnFZdFZyMHhQaDhVdGlkeHJmYkxUMitTVzFXeTF6UjIxOGxBc1BnUGtpSm9NR3R0K2FjTlBhZnZSaldmQk1LWGVDUEVGY0o3TVJYcUNZUGtuT09ESmJCOGdpQ3Q0SEErOU9HeHloeGVLNFI3aC85SDBvT3JKMEJrckt0K3RmMWFxa2Z0S2w3aEkyMXYzNmpUODMyLzlKWE1mSnF2eHE4dG9jYUxhbTNjYTdIdDlTSGZ1KzFlYlY5Syt2RUFPejhNalFDSzZOUHZ3djNFVEt1MzFXZ2Z5RDFuVWZybDArN0R2eDhPNHR0dHJjMWw1dXJyTENkQll3c2RiWjdWeTd1bzUxdnR5ZXFldXdHV3RPWEVHTnU3K2IvZTlUL3ozL3dBSWlZUFMvclB2c1BVY3lsMVhwT05JeDJZd2Y2Mm5vZW82M0IvbVBwZXIvaEZhNmhnOVhkamJlblhWWStVWGphKzJ1aTJzdDJuZlU1cnNjK243L2Y2M3YvMGYrRVE0dkdQOHY4RlJqZlNYOHY4QUNhUnlud1d0eklhWEY0YU1zRDNrYmZVZnRxOTluOHRFWjFUcjI0T1oxbmE5cm11YVhYZXEyQVd5MnluYXh0akg3YldmUy9QL0FPQ1YrdkF6Z3lrV3VZNndDb1hsb29BYzROL1dmVC9WdmI2bG44MnNmNnd2YjArdGh6emIrc1kxMWVCOW5jMWhibU5MWG0vSSt6Zlkvd0JWOUYrUCtqczlmMytwK2dUZ1NTQmNkZTMvQUtLaWdOYWxwMy85R2Vud2ZySzdIdXZ0dHZydWJrSGU2dXl5R3NmN1c3cUhiWGVuVjZiUGRSOUQvRGZUOWIxYmJ2cnBoTWZzZTdIYS9UVDFYbVpJYTJITm9jMTI1em1yeWdkUnl3MGwyUmNXZ1NZc2ZNZjV5MXM3cTMxbjZEUmgwNUZ1TXgxN0M2cHROTlpiNklhejB0N203YXZWOTN2WjZQcWY2VzIzL0JHV014SUYzeGZUL3ZsQ1lJSnFxK3I2QVBydjAwamQ2dU9RWWcrcS91ZGpmOEIrL3dDMUlmWGZwWkJkNjJQR2tuMVg5NWovQUFIOGh5NXZvM1ZlcDV0SXM5VnVjeHpLblB2cnFOYmE3WDZaSFQzQ3R1MjI3RVpzdXN0LzRWWFdabldEWFc3N0hadmM2dHIyZnBKWUh1MlhXVDZmdWJqcy9TdS9mVFNDUC9Sby93RGVwc2Z5akoxMi9YWHBibzIyNDdwNGkxeDdPZC9vUDNhM29wK3RPR09mUmtjZ1hhL2pVc08yNzZ4UEFxeE1MMUxyQzFvc3RuMDZ3NzFQV3lMZldheXQ3Y1ZsYkxQVHNmOEFwUFUvNnpkaDU5SFViT3EzVnN1dlpXQXcyT3FiWTlsVGpVeXh0VGhoQnpIT3MrbitoWi9oRW8yVFYxOVlsRTVBQzZ2L0FBWlBRZFU2OTFISnVhN0V6cXNTb05MUld5MkpjZnpuR0g3dmQvMEZVSFZPc2d1STZuN25kL1hIQStoelQrNys2c2pvN3VvMlpJeDJ1dGJuMTJCMTFkOWdMQmp0Mi9iY2Q3TWgxbGYycmFmMFQvVDNzLzAxYTIzMWRYbHhhS2cwQjRBSm9KbmVEWC9nL2QrZzNNVHR0TGovQUlYL0FLS3MzMXFYK0QvNk1oL2FmV1dPY2F1cEJoZWR6eWJnWk1NWUhIOUQvb3E5bit2djFlbS9XTzZqR0ZlYmZWbFcrb1hHMDJpU3d4K2krZ3o2S29DbnFRcXVGanFoYTk5NHhuQTBGb0RoL2s5bGtWL1NyZjhBenU3L0FNR1NOUFV6ZFhIcENzUEp0YnV4NWRXYWkxcldPTmYwdnRleXovaS8rMjByL3JRL2wvZ3BBcnBMNi84QW96dkQ2MDlOUE1zSGp2cFA0QzVFSDFnd0hBRnBKQjFCQnEvOUxybmE2dW9Bc05vWVdnczlRQjFBUEJGdjVqWE4vU2JITGh1cFkzU3ErcVpkSFVhWDI5UXJEN3NxeXE2cHJIV2VtY3EzMG1WWXpXYlhmOEcxQyt4aWZMVkk4UkllYjdGVjFLcThNTllKRmhJYWZiMjNmdVBmKzRpbTArQzRqNm85UXBvcXI2ZlNQVHdjS3k5b2ZZN2M4UTkrbnNyWXh6SDIydmMzNmRpNkw5dDlQTG5NRmppNW9CUHNjTkhGd2I3bmhyZnpISlFub2VLdEQrQ1pSTml1ei8vU285UDZ0OWx5dlZaWWR6V3c3ZmZXNnNISUF4cTc3TGEyNzNNcCswZmFYdjJQci9SL3k2MXJXOVVvZjB1N0hxNjEwK25xTGc0VlpMTWtPcllkKzVqdDE3ck1qK1kvUnU5bjAxeUhvQnpybmZhSE8rMDJsdGpIczNGMVZURDZMdEs5bSsyLzAvMGRMZGxmNkpaN3NLeHRSZlhqdWRZV1BFdGFUOUwyVHVhMzNlMXloamtqS0p1VWVJYTFwNmx2dUFlUDFlOHQ2aTExMWo2dnJCZ3NxZGJsdnJZY2hudHF1cGJWMHVyL0FOcCtadXliUCtoNnlWUFVBMnlwMXYxZ3diSzJXWUxyV2pJcjFaUlc1blYyL20vOHAzL3BLLzhBd1QwRndGWFJzemMyNnJGdmUxamc4bHREbkNCN3ZwdERtdFJjZnAyZjZELzhtUGU3MDNrdU5OaEx2VWRXeDBrZlMremZUcS9jVW5DTHJpRzI5eFR4K0JleisxNXJjUVZINno5UCswL1pmVDlVM3NnNUgybjdUOXIxYnUyZnN2OEFVZm8vVC93ZXo5TXMvd0R4ZzlTd01vZE9HRmZSbEFQeVNmU3NiYjZZSXg5djh5OTIxLzhBWFhMNCtQYTU5UkdGNjFUN1crbmMrcHp0N1dOOUY3UTRiR3VyL3dBSnNRWFlXYzFqTG5ZMTFlT3dCckgrbTRNZDNjTjhiZnBsS0ZjVVNTQjlZb2xPd1JTWnI1QkcwdkVHV2prZ0NYTFIrdFZtVDlrNldNcnFPUDFPMW91aTdHc2E4TVp0eHZUeDdCVTFucDJWeCtjcWJjTElaaVc1VHkycDFCSU5GcERiUGFCcWEzdVpaK2RzYnRaOU5hWitxUFQ3Y2ZiWGxXTmMwZXFTL3dCTVFYdHJjVzI3alg2ZnNaL2hYVnFUSm14MkpjWUloZDBqSEEwUlh6VlRkK3AyWmsxOUllTU8zR3BKdXlUYTNLdHJEamI5bm9IVDMxTnQyZm9mdGY4QVAvOEFCcm9yZW85UjNIME1ycDRiK24yN3JxcC9tSy8yZCtmL0FPV1hyL2FmKzYyeGNmVDlUdWx2TDkrWSthaExtdWRqVnZIMHR1NnF5OTNxN3E2MzIvb24yZjhBRkl0djFKNmQ2RGpYZGs3dGhOYm5NcURTZmNXT2M3ZDlCUkdjSmVvU0JFdFFXUUFqU3RucjZ1cVpMTXRydnRtQXluZmI3emZVTnJQU3IreXZkN3p1MlpuMnAxMy9BQVhwTGsrcnVlL3FEM1B2cnlYRnRjMzBQMzF1T3hvM1Yyc0RHdjhBYjdQb29lSjlVYWNYSnJ0dHVCWUphUnNEbk9rVzB4WFRGdnJQZTcwLzBYdnM5L3Aveml2dDZKMHh0ZnR5cnhWVUlrWTczTmEyU1lMMlZiVys0N1BlakNVQWR4OWl5WU10Sy9GbjlWOHZwMkptN3N2WlM4aXd0ekxiUld4alRXUjZUMjJmbzNPdGQrZXQ5M1Z1bkhJM042dmhDbzIxUEZmMmxrK20xcmhmWHMxL25iTnJ2cGY5Y3JYUDA5TjZiaDlScHZHYmFjaW9FMTR6OFoxalhraHpKT09hWCt0OVA5ejZmL0NMSHp2cXU5blZNbXZEKzBYWWxCY3ltOW9MM09JRGZ6NldiUGQrazNiTm5wdittaVp4Sk5IY1ZzZ0FnVld4djV2MHYzZlM5bU9xNExXdGJaMW5DTDJpb1BQMnBwOXpiTjJRNzZQK0VvL1JmK2ZQOUlnM2RVcmRVOXRYWCtuTXNOZGphM20wRUN4MTR1eDdDQitaWGdic1IvOEF3dnZXSWVpOU54K25ZN2pqM1daRHk5dVRZV1hGeldOdEcrbDdhUjZmcU93bmJYKzMzL3AvVC9TSVdUaTlKcnZ4Mll2UmJjcW03K2R0MjViVFVKajFOcm0vcDJiSGIvMGFhY2tTZGZQNVloTlZwNGRaRjZOL1djTTJXRnZXdW5pdHo4ZzF0OVlnaGp3ejluc0o5M3Z4bk50KzBPLzdZWEpabGZXMzlRejNNdXR6SzdMTFhVNU5KY1dXTnNwdTlJMDJlM2ZXMnowV04vNFZKcmF5QlAxV3REeS9hVzdza2tOLzBuMFZmdDZOMEg3WHYvWmxyc1UxdkRweDh3T2RkdmJzZkpqMmVqNm50L2ZTTTRqL0FIb3ArejdWc0N5L3ArSG01T1pRNDdYM1hlbS9iN2c0TmR2L0FFZ3RZNzlJNTFuNlN1eithUVhmWExDQWhtRXhzTjNPZitqQmMxdzlQL0I0elBUOTlqWGZvMCtUVjA3Q2N3NHVDNFl6NmJxdnN0bGR6UFZ2ZWEvVFo2bG0yOXZxMDd2OEovTjFXcXRRT21tN0ZPUjBadEdNK3N1eUhEMW5pZmY2RlEzV0hmVHZiUlkyeXREM0lqVTY2OTFFK0lIMWYvL1Q1bHY3ZC9TRnB5SklBMURvMCtqTFd0Mi9SK2g2ZjVpa0xldGoydEY0c2lYRXRreEhmMkxqa2xsbjJ1dkIvd0ExcWErTDF6citweWR6WDdkZDB0Z3lkTmYwZjdxZWgzVXk1N2k2eGhjUklhMG5RZlIwTFBiWXVRU1FQdFVhNGY4QW1vMWUxc3Q2bzRQRnJyQU9IYnF3RC8xSC9mMU9vOVRkWWZUZFlEL0pCQm4rd3hyVnc2U2pQdDFwdy84QU5WcjR2YmkzcXBMUVBXRWlHKzB6SGo3V3U5aUVjblBFdzF4QUpEajZjRGozZXA3UCtxWEdwSnc5cnJYL0FEVmF2Wmk3T2E2V0QzUnFHTUJkQitqdTluL21DZHVSY1d0YzRiZENBMTliUEx3Wi93Q1lMaTBrdlI0WDlGYXZiMTNaam1iYS9vbHgrZ3dEWHZEaFh0M0pQdXVicmExam10amNIc0d6eTNhYlZ4Q1NhZUcrbjlxdFh2cU03RWxvdHgyU2VJYXpVNmJZaHU1djhoV21XWWo5ME1yQUgwaEFCL3RiZnp0cTgzU1VjNi9SWEMvQjlKRDhjUG1wdExyQjlJQ054Si9lamFuRG11WnUyTllDQm9EN1FCMmhwZTN1dk5Va3hXcjZXNXczaHRnWnZqNlJIYjV1M0tKRmpoRXNhQkhwbG5oK1o5SDZmNTMwbDVza2lGUG9qeFZ1Sk4xUXNjN1J2cFNPUCtpNzAxRVY0d2M4TnNZYkR0M2VRbjlIRzBOZi9WWG5xU2RxajdILzJmL3RGK2hRYUc5MGIzTm9iM0FnTXk0d0FEaENTVTBFSlFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQTRRa2xOQkRvQUFBQUFBSk1BQUFBUUFBQUFBUUFBQUFBQUMzQnlhVzUwVDNWMGNIVjBBQUFBQlFBQUFBQkRiSEpUWlc1MWJRQUFBQUJEYkhKVEFBQUFBRkpIUWtNQUFBQUFTVzUwWldWdWRXMEFBQUFBU1c1MFpRQUFBQUJEYkhKdEFBQUFBRTF3UW14aWIyOXNBUUFBQUE5d2NtbHVkRk5wZUhSbFpXNUNhWFJpYjI5c0FBQUFBQXR3Y21sdWRHVnlUbUZ0WlZSRldGUUFBQUFCQUFBQU9FSkpUUVE3QUFBQUFBR3lBQUFBRUFBQUFBRUFBQUFBQUJKd2NtbHVkRTkxZEhCMWRFOXdkR2x2Ym5NQUFBQVNBQUFBQUVOd2RHNWliMjlzQUFBQUFBQkRiR0p5WW05dmJBQUFBQUFBVW1kelRXSnZiMndBQUFBQUFFTnlia05pYjI5c0FBQUFBQUJEYm5SRFltOXZiQUFBQUFBQVRHSnNjMkp2YjJ3QUFBQUFBRTVuZEhaaWIyOXNBQUFBQUFCRmJXeEVZbTl2YkFBQUFBQUFTVzUwY21KdmIyd0FBQUFBQUVKamEyZFBZbXBqQUFBQUFRQUFBQUFBQUZKSFFrTUFBQUFEQUFBQUFGSmtJQ0JrYjNWaVFHL2dBQUFBQUFBQUFBQUFSM0p1SUdSdmRXSkFiK0FBQUFBQUFBQUFBQUJDYkNBZ1pHOTFZa0J2NEFBQUFBQUFBQUFBQUVKeVpGUlZiblJHSTFKc2RBQUFBQUFBQUFBQUFBQUFBRUpzWkNCVmJuUkdJMUpzZEFBQUFBQUFBQUFBQUFBQUFGSnpiSFJWYm5SR0kxQjRiRUJTQUFBQUFBQUFBQUFBQ25abFkzUnZja1JoZEdGaWIyOXNBUUFBQUFCUVoxQnpaVzUxYlFBQUFBQlFaMUJ6QUFBQUFGQm5VRU1BQUFBQVRHVm1kRlZ1ZEVZalVteDBBQUFBQUFBQUFBQUFBQUFBVkc5d0lGVnVkRVlqVW14MEFBQUFBQUFBQUFBQUFBQUFVMk5zSUZWdWRFWWpVSEpqUUZrQUFBQUFBQUE0UWtsTkErMEFBQUFBQUJBQVNBQUFBQUVBQWdCSUFBQUFBUUFDT0VKSlRRUW1BQUFBQUFBT0FBQUFBQUFBQUFBQUFEK0FBQUE0UWtsTkJBMEFBQUFBQUFRQUFBQjRPRUpKVFFRWkFBQUFBQUFFQUFBQUhqaENTVTBEOHdBQUFBQUFDUUFBQUFBQUFBQUFBUUE0UWtsTkp4QUFBQUFBQUFvQUFRQUFBQUFBQUFBQ09FSkpUUVAxQUFBQUFBQklBQzltWmdBQkFHeG1aZ0FHQUFBQUFBQUJBQzltWmdBQkFLR1ptZ0FHQUFBQUFBQUJBRElBQUFBQkFGb0FBQUFHQUFBQUFBQUJBRFVBQUFBQkFDMEFBQUFHQUFBQUFBQUJPRUpKVFFQNEFBQUFBQUJ3QUFELy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BK2dBQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vd1BvQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhENkFBQUFBRC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQStnQUFEaENTVTBFQUFBQUFBQUFBZ0FCT0VKSlRRUUNBQUFBQUFBRUFBQUFBRGhDU1UwRU1BQUFBQUFBQWdFQk9FSkpUUVF0QUFBQUFBQUdBQUVBQUFBQ09FSkpUUVFJQUFBQUFBQVFBQUFBQVFBQUFrQUFBQUpBQUFBQUFEaENTVTBFSGdBQUFBQUFCQUFBQUFBNFFrbE5CQm9BQUFBQUEwc0FBQUFHQUFBQUFBQUFBQUFBQUFFMkFBQUN0d0FBQUFzQVFnQmxBSG9BSUFCdUFHRUFlZ0IzQUhrQUxRQXhBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBSzNBQUFCTmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUJBQUFBQUFBQWJuVnNiQUFBQUFJQUFBQUdZbTkxYm1SelQySnFZd0FBQUFFQUFBQUFBQUJTWTNReEFBQUFCQUFBQUFCVWIzQWdiRzl1WndBQUFBQUFBQUFBVEdWbWRHeHZibWNBQUFBQUFBQUFBRUowYjIxc2IyNW5BQUFCTmdBQUFBQlNaMmgwYkc5dVp3QUFBcmNBQUFBR2MyeHBZMlZ6Vm14TWN3QUFBQUZQWW1wakFBQUFBUUFBQUFBQUJYTnNhV05sQUFBQUVnQUFBQWR6YkdsalpVbEViRzl1WndBQUFBQUFBQUFIWjNKdmRYQkpSR3h2Ym1jQUFBQUFBQUFBQm05eWFXZHBibVZ1ZFcwQUFBQU1SVk5zYVdObFQzSnBaMmx1QUFBQURXRjFkRzlIWlc1bGNtRjBaV1FBQUFBQVZIbHdaV1Z1ZFcwQUFBQUtSVk5zYVdObFZIbHdaUUFBQUFCSmJXY2dBQUFBQm1KdmRXNWtjMDlpYW1NQUFBQUJBQUFBQUFBQVVtTjBNUUFBQUFRQUFBQUFWRzl3SUd4dmJtY0FBQUFBQUFBQUFFeGxablJzYjI1bkFBQUFBQUFBQUFCQ2RHOXRiRzl1WndBQUFUWUFBQUFBVW1kb2RHeHZibWNBQUFLM0FBQUFBM1Z5YkZSRldGUUFBQUFCQUFBQUFBQUFiblZzYkZSRldGUUFBQUFCQUFBQUFBQUFUWE5uWlZSRldGUUFBQUFCQUFBQUFBQUdZV3gwVkdGblZFVllWQUFBQUFFQUFBQUFBQTVqWld4c1ZHVjRkRWx6U0ZSTlRHSnZiMndCQUFBQUNHTmxiR3hVWlhoMFZFVllWQUFBQUFFQUFBQUFBQWxvYjNKNlFXeHBaMjVsYm5WdEFBQUFEMFZUYkdsalpVaHZjbnBCYkdsbmJnQUFBQWRrWldaaGRXeDBBQUFBQ1habGNuUkJiR2xuYm1WdWRXMEFBQUFQUlZOc2FXTmxWbVZ5ZEVGc2FXZHVBQUFBQjJSbFptRjFiSFFBQUFBTFltZERiMnh2Y2xSNWNHVmxiblZ0QUFBQUVVVlRiR2xqWlVKSFEyOXNiM0pVZVhCbEFBQUFBRTV2Ym1VQUFBQUpkRzl3VDNWMGMyVjBiRzl1WndBQUFBQUFBQUFLYkdWbWRFOTFkSE5sZEd4dmJtY0FBQUFBQUFBQURHSnZkSFJ2YlU5MWRITmxkR3h2Ym1jQUFBQUFBQUFBQzNKcFoyaDBUM1YwYzJWMGJHOXVad0FBQUFBQU9FSkpUUVFvQUFBQUFBQU1BQUFBQWovd0FBQUFBQUFBT0VKSlRRUVVBQUFBQUFBRUFBQUFBamhDU1UwRURBQUFBQUFQbXdBQUFBRUFBQUNnQUFBQVJ3QUFBZUFBQUlVZ0FBQVBmd0FZQUFILzJQL3RBQXhCWkc5aVpWOURUUUFCLys0QURrRmtiMkpsQUdTQUFBQUFBZi9iQUlRQURBZ0lDQWtJREFrSkRCRUxDZ3NSRlE4TURBOFZHQk1URlJNVEdCRU1EQXdNREF3UkRBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBRU5Dd3NORGcwUURnNFFGQTRPRGhRVURnNE9EaFFSREF3TURBd1JFUXdNREF3TURCRU1EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd00vOEFBRVFnQVJ3Q2dBd0VpQUFJUkFRTVJBZi9kQUFRQUN2L0VBVDhBQUFFRkFRRUJBUUVCQUFBQUFBQUFBQU1BQVFJRUJRWUhDQWtLQ3dFQUFRVUJBUUVCQVFFQUFBQUFBQUFBQVFBQ0F3UUZCZ2NJQ1FvTEVBQUJCQUVEQWdRQ0JRY0dDQVVERERNQkFBSVJBd1FoRWpFRlFWRmhFeUp4Z1RJR0ZKR2hzVUlqSkJWU3dXSXpOSEtDMFVNSEpaSlQ4T0h4WTNNMUZxS3lneVpFazFSa1JjS2pkRFlYMGxYaVpmS3poTVBUZGVQelJpZVVwSVcwbGNUVTVQU2x0Y1hWNWZWV1puYUdscWEyeHRibTlqZEhWMmQzaDVlbnQ4Zlg1L2NSQUFJQ0FRSUVCQU1FQlFZSEJ3WUZOUUVBQWhFRElURVNCRUZSWVhFaUV3VXlnWkVVb2JGQ0k4RlMwZkF6SkdMaGNvS1NRMU1WWTNNMDhTVUdGcUt5Z3djbU5jTFNSSk5Vb3hka1JWVTJkR1hpOHJPRXc5TjE0L05HbEtTRnRKWEUxT1QwcGJYRjFlWDFWbVoyaHBhbXRzYlc1dlluTjBkWFozZUhsNmUzeC8vYUFBd0RBUUFDRVFNUkFEOEE3MkFsdDgxS0VvVnEybXg5dzgxRWwzZlZFaE1RbGFrWWZZRG9USGdvaytTS1dwdHFOaEdxS1NtSTh0ZkZFTEUyMU90U01nLzdWSWJ4d0U4RlB0MDgvRkswSld1eVd0RG1OM01IUERvVWZ0Vm9kSWdqdkE0VUpjQkVrRHdVU0pUUkVkUUZ4a2VoS2Y3Vzg5aDh6L2VvV1piM2lJajRJVzN0MlNhR2dqZHEzdUJ5aUlSSFJYSEk5V2JMYXdKZkpQaHJDa2IydVB0ZVdqdUZDV2ZtamFQRTZxTGpYRXRra2R6eCtWSGhGOVZjV200WEQzYXVlN1Q4MGYzb1p1ZnU3SkhjZVNuYlM5NGtSSG1uVUJ1aXlkbURyWG4vQUhJWkpQS0tXUWVaK0NhRTRFTFRmVi8vMFBSZlFmNEg4RkUxUEhaVzRrYUp0ZkJQOXdzUnhCcDdYRHNtSThRcjBFOGhNYTVLUHVlQ1BhN05MUklEY1lIS3RzTmR1NzB5MnpZNHRmdE13NGZTWS9iK2YvSlRsZ1BaSDNQQkh0ZUxTaE5zazhLMjZoczZhSkNrVFBKUjl3STlzdFpnWkJEbWJqMlA4RkV0amxvVnphMERVZnhUYks1bUpudUV1UHpUd2FORWo1Sm9WNTFOVTZEdDRuKzlRTlFIQWxPR1FMVGlMVTJwaTFXdlRFK0h4UzJKM0d0OXN0UGI1SmJWYkxYTkhiWHlVQ3crQStTSW1nd2EyMzVwdzA5cCs5R05aOEV3cGQ0SThRVnduc3hGZW9KZytTYzQ0TWxzSHlDSUszZ2NENzA0YkhLSEY0cmhIdUgvMGZTZzZzblFHU3NxMzYxL1ZxcVIrMHFYdUVqYlcvZnFOUHpmYi8wbGN4OG1xL0dyeTJoeG90cWJkeHJzZTMxSWQrNzdWNXRYMHI2OFFBN1B3eU5BSXJvMCsvQy9jUk1xN2ZWYUIvSVBXZFIrdVhUN3NPL0h3N2kyMjJ0eldYbTZ1c3NKMEZqQ3gxdG50WEx1NmpuVyszSjZwNjdBWmEwNWNRWTI3djV2OTcxUC9QZi9BQWlKZzlMK3MrK3c5UnpLWFZlazQwakhaakIvcmFlaDZqcmNIK1krbDZ2K0VWcnFHRDFkMk50NmRkVmo1UmVOcjdhNkxheTNhZDlUbXV4ejZmdjkvcmUvL1IvNFJEaThZL3kvd1ZHTjlKZnkvd0FKcEhLZkJhM01ocGNYaG95d1BlUnQ5UisycjMyZnkwUm5WT3ZiZzVuV2RyMnVhNXBkZDZyWUJiTGJLZHJHMk1mdHRaOUw4LzhBNEpYNjhET0RLUmE1anJBS2hlV2lnQnpnMzlaOVA5Vzl2cVdmemF4L3JDOXZUNjJIUE52NnhqWFY0SDJkeldGdVkwdGViOGo3TjlqL0FGWDBYNC82T3oxL2Y2bjZCT0JKSUZ4MTdmOEFvcUtBMXFXbmYvMFo2ZkIrc3JzZTYrMjIrdTV1UWQ3cTdMSWF4L3RidW9kdGQ2ZFhwczkxSDBQOE45UDF2VnR1K3VtRXgreDdzZHI5TlBWZVpraHJZYzJoelhibk9hdktCMUhMRFNYWkZ4YUJKaXg4eC9uTFd6dXJmV2ZvTkdIVGtXNHpIWHNMcW0wMDFsdm9oclBTM3VidHE5WDNlOW5vK3AvcGJiZjhFWll6RWdYZkY5UCsrVUpnZ21xcjZ2b0ErdS9UU04zcTQ1QmlENnIrNTJOL3dINy9BTFVoOWQrbGtGM3JZOGFTZlZmM21QOEFBZnlITG0ramRWNm5tMGl6MVc1ekhNcWMrK3VvMXRydGZwa2RQY0syN2Jic1JteTZ5My9oVmRabWRZTmRidnNkbTl6cTJ2WitrbGdlN1pkWlBwKzV1T3o5Szc5OU5JSS85R2ovQU42bXgvS01uWGI5ZGVsdWpiYmp1bmlMWEhzNTMrZy9kcmVpbjYwNFk1OUdSeUJkcitOU3c3YnZyRThDckV3dlV1c0xXaXkyZlRyRHZVOWJJdDlackszdHhXVnNzOU94L3dDazlUL3JOMkhuMGRSczZyZFd5NjlsWUREWTZwdGoyVk9OVExHMU9HRUhNYzZ6NmY2Rm4rRVNqWk5YWDFpVVRrQUxxLzhBQms5QjFUcjNVY201cnNUT3F4S2cwdEZiTFlseC9PY1lmdTkzL1FWUWRVNnlDNGpxZnVkMzljY0Q2SE5QN3Y3cXlPanU2alprakhhNjF1ZlhZSFhWMzJBc0dPM2I5dHgzc3lIV1YvYXRwL1JQOVBlei9UVnJiZlYxZVhGb3FEUUhnQW1nbWQ0TmYrRDkzNkRjeE8yMHVQOEFoZjhBb3F6ZldwZjRQL295SDlwOVpZNXhxNmtHRjUzUEp1Qmt3eGdjZjBQK2lyMmY2Ky9WNmI5WTdxTVlWNXQ5V1ZiNmhjYlRhSkxESDZMNkRQb3FnS2VwQ3E0V09xRnIzM2pHY0RRV2dPSCtUMldSWDlLdC93RE83djhBd1pJMDlUTjFjZWtLdzhtMXU3SGwxWnFMV3RZNDEvUysxN0xQK0wvN2JTdit0RCtYK0NrQ3VrdnIvd0NqTzhQclQwMDh5d2VPK2svZ0xrUWZXREFjQVdra0hVRUdyLzB1dWRycTZnQ3cyaGhhQ3oxQUhVQThFVy9tTmMzOUpzY3VHNmxqZEtyNnBsMGRScGZiMUNzUHV5cktycW1zZFo2WnlyZlNaVmpOWnRkL3diVUw3R0o4dFVqeEVoNXZzVlhVcXJ3dzFna1dFaHA5dmJkKzQ5LzdpS2JUNExpUHFqMUNtaXF2cDlJOVBCd3JMMmg5anR6eEQzNmV5dGpITWZiYTl6ZnAyTG92MjMwOHVjd1dPTG1nRSt4dzBjWEJ2dWVHdC9NY2xDZWg0cTBQNEpsRTJLN1AvOUtqMC9xMzJYSzlWbGgzTmJEdDk5YnF3Y2dER3J2c3RyYnZjeW43UjlwZS9ZK3Y5SC9Mcld0YjFTaC9TN3NlcnJYVDZlb3VEaFZrc3lRNnRoMzdtTzNYdXN5UDVqOUc3MmZUWEllZ0hPdWQ5b2M3N1RhVzJNZXpjWFZWTVBvdTByMmI3Yi9UL1IwdDJWL29sbnV3ckcxRjllTzUxaFk4UzFwUDB2Wk81cmZkN1hLR09TTW9tNVI0aHJXbnFXKzRCNC9WN3kzcUxYWFdQcStzR0N5cDF1Vyt0aHlHZTJxNmx0WFM2djhBMm41bTdKcy82SHJKVTlRRGJLblcvV0RCc3JaWmd1dGFNaXZWbEZibWRYYitiL3luZitrci93REJQUVhBVmRHek56YnFzVzk3V09EeVcwT2NJSHUrbTBPYTFGeCtuWi9vUC95WTk3dlRlUzQwMkV1OVIxYkhTUjlMN045T3I5eFNjSXV1SWJiM0ZQSDRGN1A3WG10eEJVZnJQMC83VDlsOVAxVGV5RGtmYWZ0UDJ2VnU3Wit5L3dCUitqOVAvQjdQMHl6L0FQR0QxTEF5aDA0WVY5R1VBL0pKOUt4dHZwZ2pIMi96TDNiWC93QmRjdmo0OXJuMUVZWHJWUHRiNmR6Nm5PM3RZMzBYdERoc2E2di9BQW14QmRoWnpXTXVkalhWNDdBR3NmNmJneDNkdzN4dCttVW9WeFJKSUgxaWlVN0JGSm12a0ViUzhRWmFPU0FKY3RINjFXWlAyVHBZeXVvNC9VN1dpNkxzYXhyd3htM0c5UEhzRlRXZW5aWEg1eXB0d3NobUpibFBMYW5VRWcwV2tOczlvR3ByZTVsbjUyeHUxbjAxcG42bzlQdHg5dGVWWTF6UjZwTC9BRXhCZTJ0eGJidU5mcCt4bitGZFdwTW1iSFlseGdpRjNTTWNEUkZmTlZOMzZuWm1UWDBoNHc3Y2FrbTdKTnJjcTJzT052MmVnZFBmVTIzWitoKzEvd0EvL3dBR3VpdDZqMUhjZlF5dW5odjZmYnV1cW4rWXIvWjM1LzhBNVpldjlwLzdyYkZ4OVAxTzZXOHYzNWo1cUV1YTUyTlc4ZlMyN3FyTDNlcnVycmZiK2lmWi93QVVpMi9VbnAzb09OZDJUdTJFMXVjeW9OSjl4WTV6dDMwRkVad2w2aElFUzFCWkFDTksyZXZxNnBrc3kydSsyWURLZDl2dk45UTJzOUt2N0s5M3ZPN1ptZmFuWGY4QUJla3VUNnU1NytvUGMrK3ZKY1cxemZRL2ZXNDdHamRYYXdNYS93QnZzK2loNG4xUnB4Y211MjI0RmdscEd3T2M2UmJURmRNVytzOTd2VC9SZSt6MytuL09LKzNvblRHMSszS3ZGVlFpUmp2YzFyWkpndlpWdGI3anM5Nk1KUUIzSDJMSmd5MHI4V2YxWHkrblltYnV5OWxMeUxDM010dEZiR05OWkhwUGJaK2pjNjEzNTYzM2RXNmNjamMzcStFS2piVThWL2FXVDZiV3VGOWV6WCtkczJ1K2wvMXl0Yy9UMDNwdUgxR204WnRweUtnVFhqUHhuV05lU0hNazQ1cGY2MzAvM1BwLzhJc2ZPK3E3MmRVeWE4UDdSZGlVRnpLYjJndmM0Z04vUHBaczkzNlRkczJlbS82YUpuRWswZHhXeUFDQlZiRy9tL1MvZDlMMlk2cmd0YTF0bldjSXZhS2c4L2FtbjNOczNaRHZvLzRTajlGLzU4LzBpRGQxU3QxVDIxZGY2Y3l3MTJOcmViUVFMSFhpN0hzSUg1bGVCdXhIL3dEQys5WWg2TDAzSDZkanVPUGRaa1BMMjVOaFpjWE5ZMjBiNlh0cEhwK283Q2R0ZjdmZituOVA5SWhaT0wwbXUvSFppOUZ0eXFidjUyM2JsdE5RbVBVMnViK25ac2R2L1JwcHlSSjE4L2xpRTFXbmgxa1hvMzlad3paWVc5YTZlSzNQeURXMzFpQ0dQRFAyZXduM2UvR2MyMzdRNy90aGNsbVY5YmYxRFBjeTYzTXJzc3RkVGswbHhaWTJ5bTcwalRaN2Q5YmJQUlkzL2hVbXRySUUvVmEwUEw5cGJ1eVNRMy9TZlJWKzNvM1FmdGUvOW1XdXhUVzhPbkh6QTUxMjl1eDhtUFo2UHFlMzk5SXppUDhBZWluN1B0V3dMTCtuNGViazVsRGp0ZmRkNmI5dnVEZzEyLzhBU0MxanYwam5XZnBLN1A1cEJkOWNzSUNHWVRHdzNjNS82TUZ6WEQwLzhIak05UDMyTmQralQ1TlhUc0p6RGk0TGhqUHB1cSt5MlYzTTlXOTVyOU5ucVdiYjIrclR1L3duODNWYXExQTZhYnNVNUhSbTBZejZ5N0ljUFdlSjkvb1ZEZFlkOU85dEZqYkswUGNpTlRycjNVVDRnZlYvLzlQbVcvdDM5SVduSWtnRFVPalQ2TXRhM2I5SDZIcC9tS1F0NjJQYTBYaXlKY1MyVEVkL1l1T1NXV2ZhNjhIL0FEV3ByNHZYT3Y2bkozTmZ0MTNTMkRKMDEvUi91cDZIZFRMbnVMckdGeEVoclNkQjlIUXM5dGk1QkpBKzFScmgvd0NhalY3V3kzcWpnOFd1c0E0ZHVyQVAvVWY5L1U2ajFOMWg5TjFnUDhrRUdmN0RHdFhEcEtNKzNXbkQvd0ExV3ZpOXVMZXFrdEE5WVNJYjdUTWVQdGE3MklSeWM4VERYRUFrT1Bwd09QZDZucy82cGNha25EMnV0ZjhBTlZxOW1MczVycFlQZEdvWXdGMEg2TzcyZitZSjI1RnhhMXpodDBJRFgxczh2Qm4vQUpndUxTUzlIaGYwVnE5dlhkbU9adHIraVhINkRBTmU4T0ZlM2NrKzY1dXRyV09hMk53ZXdiUExkcHRYRUpKcDRiNmYycTFlK296c1NXaTNIWko0aHJOVHB0aUc3bS95RmFaWmlQM1F5c0FmU0VBSCsxdC9PMnJ6ZEpSenI5RmNMOEgwa1B4dythbTB1c0gwZ0kzRW45Nk5xY09hNW03WTFnSUdnUHRBSGFHbDdlNjgxU1RGYXZwYm5EZUcyQm0rUHBFZHZtN2Nva1dPRVN4b0VlbVdlSDVuMGZwL25mU1hteVNJVStpUEZXNGszVkN4enRHK2xJNC82THZUVVJYakJ6dzJ4aHNPM2Q1Q2YwY2JRMS85VmVlcEoycVBzZi9aQURoQ1NVMEVJUUFBQUFBQVdRQUFBQUVCQUFBQUR3QkJBR1FBYndCaUFHVUFJQUJRQUdnQWJ3QjBBRzhBY3dCb0FHOEFjQUFBQUJVQVFRQmtBRzhBWWdCbEFDQUFVQUJvQUc4QWRBQnZBSE1BYUFCdkFIQUFJQUJEQUZNQU5RQXVBREVBQUFBQkFEaENTVTBFQmdBQUFBQUFCd0FFQUFBQUFRRUEvK0VOM0doMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM4QVBEOTRjR0ZqYTJWMElHSmxaMmx1UFNMdnU3OGlJR2xrUFNKWE5VMHdUWEJEWldocFNIcHlaVk42VGxSamVtdGpPV1FpUHo0Z1BIZzZlRzF3YldWMFlTQjRiV3h1Y3pwNFBTSmhaRzlpWlRwdWN6cHRaWFJoTHlJZ2VEcDRiWEIwYXowaVFXUnZZbVVnV0UxUUlFTnZjbVVnTlM0d0xXTXdOakVnTmpRdU1UUXdPVFE1TENBeU1ERXdMekV5THpBM0xURXdPalUzT2pBeElDQWdJQ0FnSUNBaVBpQThjbVJtT2xKRVJpQjRiV3h1Y3pweVpHWTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MekU1T1Rrdk1ESXZNakl0Y21SbUxYTjViblJoZUMxdWN5TWlQaUE4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWlCNGJXeHVjenA0YlhBOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOGlJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJaUI0Yld4dWN6cHpkRVYyZEQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sUlhabGJuUWpJaUI0Yld4dWN6cGtZejBpYUhSMGNEb3ZMM0IxY213dWIzSm5MMlJqTDJWc1pXMWxiblJ6THpFdU1TOGlJSGh0Ykc1ek9uQm9iM1J2YzJodmNEMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzl3YUc5MGIzTm9iM0F2TVM0d0x5SWdlRzF3T2tOeVpXRjBiM0pVYjI5c1BTSkJaRzlpWlNCUWFHOTBiM05vYjNBZ1ExTTFMakVnVFdGamFXNTBiM05vSWlCNGJYQTZRM0psWVhSbFJHRjBaVDBpTWpBeE5DMHdNeTB4T1ZRd016b3dNam95Tmlzd01Ub3dNQ0lnZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDBpTWpBeE5DMHdNeTB4T1ZRd016b3dNam95Tmlzd01Ub3dNQ0lnZUcxd09rMXZaR2xtZVVSaGRHVTlJakl3TVRRdE1ETXRNVGxVTURNNk1ESTZNallyTURFNk1EQWlJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZNREk0TURFeE56UXdOekl3TmpneE1UZzNNVVk0TVRNeFJrSTJSVFk0T1RnaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNk1ERTRNREV4TnpRd056SXdOamd4TVRnM01VWTRNVE14UmtJMlJUWTRPVGdpSUhodGNFMU5Pazl5YVdkcGJtRnNSRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRG93TVRnd01URTNOREEzTWpBMk9ERXhPRGN4UmpneE16RkdRalpGTmpnNU9DSWdaR002Wm05eWJXRjBQU0pwYldGblpTOXFjR1ZuSWlCd2FHOTBiM05vYjNBNlEyOXNiM0pOYjJSbFBTSXpJaUJ3YUc5MGIzTm9iM0E2U1VORFVISnZabWxzWlQwaWMxSkhRaUJKUlVNMk1UazJOaTB5TGpFaVBpQThlRzF3VFUwNlNHbHpkRzl5ZVQ0Z1BISmtaanBUWlhFK0lEeHlaR1k2YkdrZ2MzUkZkblE2WVdOMGFXOXVQU0pqY21WaGRHVmtJaUJ6ZEVWMmREcHBibk4wWVc1alpVbEVQU0o0YlhBdWFXbGtPakF4T0RBeE1UYzBNRGN5TURZNE1URTROekZHT0RFek1VWkNOa1UyT0RrNElpQnpkRVYyZERwM2FHVnVQU0l5TURFMExUQXpMVEU1VkRBek9qQXlPakkyS3pBeE9qQXdJaUJ6ZEVWMmREcHpiMlowZDJGeVpVRm5aVzUwUFNKQlpHOWlaU0JRYUc5MGIzTm9iM0FnUTFNMUxqRWdUV0ZqYVc1MGIzTm9JaTgrSUR4eVpHWTZiR2tnYzNSRmRuUTZZV04wYVc5dVBTSnpZWFpsWkNJZ2MzUkZkblE2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRvd01qZ3dNVEUzTkRBM01qQTJPREV4T0RjeFJqZ3hNekZHUWpaRk5qZzVPQ0lnYzNSRmRuUTZkMmhsYmowaU1qQXhOQzB3TXkweE9WUXdNem93TWpveU5pc3dNVG93TUNJZ2MzUkZkblE2YzI5bWRIZGhjbVZCWjJWdWREMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROUzR4SUUxaFkybHVkRzl6YUNJZ2MzUkZkblE2WTJoaGJtZGxaRDBpTHlJdlBpQThMM0prWmpwVFpYRStJRHd2ZUcxd1RVMDZTR2x6ZEc5eWVUNGdQQzl5WkdZNlJHVnpZM0pwY0hScGIyNCtJRHd2Y21SbU9sSkVSajRnUEM5NE9uaHRjRzFsZEdFK0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUEQ5NGNHRmphMlYwSUdWdVpEMGlkeUkvUHYvaURGaEpRME5mVUZKUFJrbE1SUUFCQVFBQURFaE1hVzV2QWhBQUFHMXVkSEpTUjBJZ1dGbGFJQWZPQUFJQUNRQUdBREVBQUdGamMzQk5VMFpVQUFBQUFFbEZReUJ6VWtkQ0FBQUFBQUFBQUFBQUFBQUJBQUQyMWdBQkFBQUFBTk10U0ZBZ0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFV053Y25RQUFBRlFBQUFBTTJSbGMyTUFBQUdFQUFBQWJIZDBjSFFBQUFId0FBQUFGR0pyY0hRQUFBSUVBQUFBRkhKWVdWb0FBQUlZQUFBQUZHZFlXVm9BQUFJc0FBQUFGR0pZV1ZvQUFBSkFBQUFBRkdSdGJtUUFBQUpVQUFBQWNHUnRaR1FBQUFMRUFBQUFpSFoxWldRQUFBTk1BQUFBaG5acFpYY0FBQVBVQUFBQUpHeDFiV2tBQUFQNEFBQUFGRzFsWVhNQUFBUU1BQUFBSkhSbFkyZ0FBQVF3QUFBQURISlVVa01BQUFROEFBQUlER2RVVWtNQUFBUThBQUFJREdKVVVrTUFBQVE4QUFBSURIUmxlSFFBQUFBQVEyOXdlWEpwWjJoMElDaGpLU0F4T1RrNElFaGxkMnhsZEhRdFVHRmphMkZ5WkNCRGIyMXdZVzU1QUFCa1pYTmpBQUFBQUFBQUFCSnpVa2RDSUVsRlF6WXhPVFkyTFRJdU1RQUFBQUFBQUFBQUFBQUFFbk5TUjBJZ1NVVkROakU1TmpZdE1pNHhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCWVdWb2dBQUFBQUFBQTgxRUFBUUFBQUFFV3pGaFpXaUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFXRmxhSUFBQUFBQUFBRytpQUFBNDlRQUFBNUJZV1ZvZ0FBQUFBQUFBWXBrQUFMZUZBQUFZMmxoWldpQUFBQUFBQUFBa29BQUFENFFBQUxiUFpHVnpZd0FBQUFBQUFBQVdTVVZESUdoMGRIQTZMeTkzZDNjdWFXVmpMbU5vQUFBQUFBQUFBQUFBQUFBV1NVVkRJR2gwZEhBNkx5OTNkM2N1YVdWakxtTm9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR1JsYzJNQUFBQUFBQUFBTGtsRlF5QTJNVGsyTmkweUxqRWdSR1ZtWVhWc2RDQlNSMElnWTI5c2IzVnlJSE53WVdObElDMGdjMUpIUWdBQUFBQUFBQUFBQUFBQUxrbEZReUEyTVRrMk5pMHlMakVnUkdWbVlYVnNkQ0JTUjBJZ1kyOXNiM1Z5SUhOd1lXTmxJQzBnYzFKSFFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrWlhOakFBQUFBQUFBQUN4U1pXWmxjbVZ1WTJVZ1ZtbGxkMmx1WnlCRGIyNWthWFJwYjI0Z2FXNGdTVVZETmpFNU5qWXRNaTR4QUFBQUFBQUFBQUFBQUFBc1VtVm1aWEpsYm1ObElGWnBaWGRwYm1jZ1EyOXVaR2wwYVc5dUlHbHVJRWxGUXpZeE9UWTJMVEl1TVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZG1sbGR3QUFBQUFBRTZUK0FCUmZMZ0FRenhRQUErM01BQVFUQ3dBRFhKNEFBQUFCV0ZsYUlBQUFBQUFBVEFsV0FGQUFBQUJYSCtkdFpXRnpBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNqd0FBQUFKemFXY2dBQUFBQUVOU1ZDQmpkWEoyQUFBQUFBQUFCQUFBQUFBRkFBb0FEd0FVQUJrQUhnQWpBQ2dBTFFBeUFEY0FPd0JBQUVVQVNnQlBBRlFBV1FCZUFHTUFhQUJ0QUhJQWR3QjhBSUVBaGdDTEFKQUFsUUNhQUo4QXBBQ3BBSzRBc2dDM0FMd0F3UURHQU1zQTBBRFZBTnNBNEFEbEFPc0E4QUQyQVBzQkFRRUhBUTBCRXdFWkFSOEJKUUVyQVRJQk9BRStBVVVCVEFGU0FWa0JZQUZuQVc0QmRRRjhBWU1CaXdHU0Fab0JvUUdwQWJFQnVRSEJBY2tCMFFIWkFlRUI2UUh5QWZvQ0F3SU1BaFFDSFFJbUFpOENPQUpCQWtzQ1ZBSmRBbWNDY1FKNkFvUUNqZ0tZQXFJQ3JBSzJBc0VDeXdMVkF1QUM2d0wxQXdBREN3TVdBeUVETFFNNEEwTURUd05hQTJZRGNnTitBNG9EbGdPaUE2NER1Z1BIQTlNRDRBUHNBL2tFQmdRVEJDQUVMUVE3QkVnRVZRUmpCSEVFZmdTTUJKb0VxQVMyQk1RRTB3VGhCUEFFL2dVTkJSd0ZLd1U2QlVrRldBVm5CWGNGaGdXV0JhWUZ0UVhGQmRVRjVRWDJCZ1lHRmdZbkJqY0dTQVpaQm1vR2V3YU1CcDBHcndiQUJ0RUc0d2IxQndjSEdRY3JCejBIVHdkaEIzUUhoZ2VaQjZ3SHZ3ZlNCK1VIK0FnTENCOElNZ2hHQ0ZvSWJnaUNDSllJcWdpK0NOSUk1d2o3Q1JBSkpRazZDVThKWkFsNUNZOEpwQW02Q2M4SjVRbjdDaEVLSndvOUNsUUthZ3FCQ3BnS3JnckZDdHdLOHdzTEN5SUxPUXRSQzJrTGdBdVlDN0FMeUF2aEMva01FZ3dxREVNTVhBeDFESTRNcHd6QUROa004dzBORFNZTlFBMWFEWFFOamcycERjTU4zZzM0RGhNT0xnNUpEbVFPZnc2YkRyWU8wZzd1RHdrUEpROUJEMTRQZWcrV0Q3TVB6dy9zRUFrUUpoQkRFR0VRZmhDYkVMa1ExeEQxRVJNUk1SRlBFVzBSakJHcUVja1I2QklIRWlZU1JSSmtFb1FTb3hMREV1TVRBeE1qRTBNVFl4T0RFNlFUeFJQbEZBWVVKeFJKRkdvVWl4U3RGTTRVOEJVU0ZUUVZWaFY0RlpzVnZSWGdGZ01XSmhaSkZtd1dqeGF5RnRZVytoY2RGMEVYWlJlSkY2NFgwaGYzR0JzWVFCaGxHSW9ZcnhqVkdQb1pJQmxGR1dzWmtSbTNHZDBhQkJvcUdsRWFkeHFlR3NVYTdCc1VHenNiWXh1S0c3SWIyaHdDSENvY1VoeDdIS01jekJ6MUhSNGRSeDF3SFprZHd4M3NIaFllUUI1cUhwUWV2aDdwSHhNZlBoOXBINVFmdngvcUlCVWdRU0JzSUpnZ3hDRHdJUndoU0NGMUlhRWh6aUg3SWljaVZTS0NJcThpM1NNS0l6Z2paaU9VSThJajhDUWZKRTBrZkNTckpOb2xDU1U0SldnbGx5WEhKZmNtSnlaWEpvY210eWJvSnhnblNTZDZKNnNuM0NnTktEOG9jU2lpS05RcEJpazRLV3NwblNuUUtnSXFOU3BvS3BzcXp5c0NLellyYVN1ZEs5RXNCU3c1TEc0c29pelhMUXd0UVMxMkxhc3Q0UzRXTGt3dWdpNjNMdTR2SkM5YUw1RXZ4eS8rTURVd2JEQ2tNTnN4RWpGS01ZSXh1akh5TWlveVl6S2JNdFF6RFROR00zOHp1RFB4TkNzMFpUU2VOTmcxRXpWTk5ZYzF3alg5TmpjMmNqYXVOdWszSkRkZ041dzMxemdVT0ZBNGpEaklPUVU1UWpsL09idzUrVG8yT25RNnNqcnZPeTA3YXp1cU8rZzhKenhsUEtRODR6MGlQV0U5b1QzZ1BpQStZRDZnUHVBL0lUOWhQNkkvNGtBalFHUkFwa0RuUVNsQmFrR3NRZTVDTUVKeVFyVkM5ME02UTMxRHdFUURSRWRFaWtUT1JSSkZWVVdhUmQ1R0lrWm5ScXRHOEVjMVIzdEh3RWdGU0V0SWtValhTUjFKWTBtcFNmQktOMHA5U3NSTERFdFRTNXBMNGt3cVRISk11azBDVFVwTmswM2NUaVZPYms2M1R3QlBTVStUVDkxUUoxQnhVTHRSQmxGUVVadFI1bEl4VW54U3gxTVRVMTlUcWxQMlZFSlVqMVRiVlNoVmRWWENWZzlXWEZhcFZ2ZFhSRmVTVitCWUwxaDlXTXRaR2xscFdiaGFCMXBXV3FaYTlWdEZXNVZiNVZ3MVhJWmMxbDBuWFhoZHlWNGFYbXhldlY4UFgyRmZzMkFGWUZkZ3FtRDhZVTlob21IMVlrbGluR0x3WTBOamwyUHJaRUJrbEdUcFpUMWxrbVhuWmoxbWttYm9aejFuazJmcGFEOW9sbWpzYVVOcG1tbnhha2hxbjJyM2EwOXJwMnYvYkZkc3IyMEliV0J0dVc0U2JtdHV4RzhlYjNodjBYQXJjSVp3NEhFNmNaVng4SEpMY3FaekFYTmRjN2gwRkhSd2RNeDFLSFdGZGVGMlBuYWJkdmgzVm5lemVCRjRibmpNZVNwNWlYbm5la1o2cFhzRWUyTjd3bndoZklGODRYMUJmYUYrQVg1aWZzSi9JMytFZitXQVI0Q29nUXFCYTRITmdqQ0Nrb0wwZzFlRHVvUWRoSUNFNDRWSGhhdUdEb1p5aHRlSE80ZWZpQVNJYVlqT2lUT0ptWW4raW1TS3lvc3dpNWFML0l4ampNcU5NWTJZamYrT1pvN09qemFQbnBBR2tHNlExcEUva2FpU0VaSjZrdU9UVFpPMmxDQ1VpcFQwbFYrVnlaWTBscCtYQ3BkMWwrQ1lUSmk0bVNTWmtKbjhtbWlhMVp0Q202K2NISnlKblBlZFpKM1Nua0NlcnA4ZG40dWYrcUJwb05paFI2RzJvaWFpbHFNR28zYWo1cVJXcE1lbE9LV3BwaHFtaTZiOXAyNm40S2hTcU1TcE42bXBxaHlxajZzQ3EzV3I2YXhjck5DdFJLMjRyaTJ1b2E4V3I0dXdBTEIxc09xeFlMSFdza3V5d3JNNHM2NjBKYlNjdFJPMWlyWUJ0bm0yOExkb3QrQzRXYmpSdVVxNXdybzd1clc3THJ1bnZDRzhtNzBWdlkrK0NyNkV2disvZXIvMXdIREE3TUZud2VQQ1g4TGJ3MWpEMU1SUnhNN0ZTOFhJeGtiR3c4ZEJ4Ny9JUGNpOHlUckp1Y280eXJmTE5zdTJ6RFhNdGMwMXpiWE9OczYyenpmUHVOQTUwTHJSUE5HKzBqL1N3ZE5FMDhiVVNkVEwxVTdWMGRaVjF0alhYTmZnMkdUWTZObHMyZkhhZHRyNzI0RGNCZHlLM1JEZGx0NGMzcUxmS2QrdjREYmd2ZUZFNGN6aVUrTGI0MlBqNitSejVQemxoT1lONXBibkgrZXA2RExvdk9sRzZkRHFXK3JsNjNEcisreUc3Ukh0bk80bzdyVHZRTy9NOEZqdzVmRnk4Zi95alBNWjg2ZjBOUFRDOVZEMTN2WnQ5dnYzaXZnWitLajVPUG5IK2xmNjUvdDMvQWY4bVAwcC9icitTLzdjLzIzLy8vL3VBQTVCWkc5aVpRQmtBQUFBQUFILzJ3Q0VBQVlFQkFRRkJBWUZCUVlKQmdVR0NRc0lCZ1lJQ3d3S0Nnc0tDZ3dRREF3TURBd01FQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdCQndjSERRd05HQkFRR0JRT0RnNFVGQTRPRGc0VUVRd01EQXdNRVJFTURBd01EQXdSREF3TURBd01EQXdNREF3TURBd01EQXdNREF3TURBd01EQXdNRFAvQUFCRUlBVFlDdHdNQkVRQUNFUUVERVFILzNRQUVBRmYveEFHaUFBQUFCd0VCQVFFQkFBQUFBQUFBQUFBRUJRTUNCZ0VBQndnSkNnc0JBQUlDQXdFQkFRRUJBQUFBQUFBQUFBRUFBZ01FQlFZSENBa0tDeEFBQWdFREF3SUVBZ1lIQXdRQ0JnSnpBUUlERVFRQUJTRVNNVUZSQmhOaEluR0JGREtSb1FjVnNVSWp3VkxSNFRNV1l2QWtjb0x4SlVNMFU1S2lzbU56d2pWRUo1T2pzellYVkdSMHc5TGlDQ2FEQ1FvWUdZU1VSVWFrdEZiVFZTZ2E4dVB6eE5UazlHVjFoWldsdGNYVjVmVm1kb2FXcHJiRzF1YjJOMGRYWjNlSGw2ZTN4OWZuOXpoSVdHaDRpSmlvdU1qWTZQZ3BPVWxaYVhtSm1hbTV5ZG5wK1NvNlNscHFlb3FhcXJySzJ1cjZFUUFDQWdFQ0F3VUZCQVVHQkFnREEyMEJBQUlSQXdRaEVqRkJCVkVUWVNJR2NZR1JNcUd4OEJUQjBlRWpRaFZTWW5MeE15UTBRNElXa2xNbG9tT3l3Z2R6MGpYaVJJTVhWSk1JQ1FvWUdTWTJSUm9uWkhSVk4vS2pzOE1vS2RQajg0U1VwTFRFMU9UMFpYV0ZsYVcxeGRYbDlVWldabmFHbHFhMnh0Ym05a2RYWjNlSGw2ZTN4OWZuOXpoSVdHaDRpSmlvdU1qWTZQZzVTVmxwZVltWnFibkoyZW41S2pwS1dtcDZpcHFxdXNyYTZ2ci8yZ0FNQXdFQUFoRURFUUEvQU83MFluTm82cHFyQTljVU81djQ0MHJmUHhyalN0aHdkcTQwbDNJZEs0S1lrdTJ3cTBHSTJyVVlxdURLRFFnZlBwa1NHVnIvQUZTbytFa1UrbkJ3cDRuQzZsSW9XL0RIZ0M4WmFNcy9Ya1Rqd2hQRVd4Y1NlSitXUEFGNHk1cmhpZGpRNDhBVHhGY3QwMU56andCZU5ZMHJuclhDSWhCa1NwY3BCKzBmbGtxWUV0Q1dRSHJ2andoSWt2RnpJT29yZzRBanhGVkw0anZUSW5HMkRLckpxRlJRN2pJZUV5OFZTbG1EYkJ2b09TRVVFb1VsZ2FkTXRwb050Rm0rbkZSYTBwS042VThNS2FMdmpwdTIrRkMwaGdSVTdlSXhWc3VlV3hOTVNGYmFSeWExMjhNZUZiY3hGUVJVRHdHTkp0YTVOVFNvd2hDd254SndzYlc3MTZuQ3JpRDQ0b3RiVmdldTJLTFhpYVFINFRUQlFUeEZ4ZG1OU2FuQ0FrRXRGcWVPS2JYTEpzZXUrRGhXMmpROXpYd3dzVnlwWDl2NzhCTEtsUVJVL2JHUkpaQlZCb0tjOGpUWUhEbFdvZjhBSEJTRVZieVVQeE5sVW90c1NqVk1URDdYMFpTUVd3RnIwb2kxYWtIRGJLbFgwMUE2MXlOcDRWSnlpSGZwa2h1Z3JGY051djNZU0dKWGlRanRnSVNDcXBOUWcxK2pJRU03VlRkRHR2a09CZUpZWm1ZMHlRaW0xcHJrcVFTcHVqRTlTTVFxcWtaSFU0a3BjMjNmQWdxYlNVQjN5UURFeVE4bHdRTmpYSmlMQXlRYjNOVGx3aTFHYWtaOThtSW80bWpjTFRZNDhMSGlhV1NwMmJEUzJySkthN0E1QWhrQ1VRQ3hIU24wNVcyQXJ1YktPdjBZS1RiWXV2ZkhnUnhMWHVRY1BBdkdGTTNBOGZveVhBampVek9QZkpDSzhTbTArUzRXQmt0OVFrMEpKcmhwRnIxQjcxd0p0cGxYeHhXbGpjUVA0NFFnaFQ5UTlCMHlWS3ZWL2JBUXRybVlIMnhDa3Fic2FiSDc4SURGWVF3NzVKQkN3MDdFNFVLYnV3NlpJQmlTb3M1N2s1T21OclBXcDRuNmNOTWVKWVpIUGVudGhwYmNDZkhGRnY4QS85RHZsTTJWdW9hNGpHMWFLakcxYUtBNGJWYVkvRERhYmR3TmNWYm8zaGpZVmFTUnZoUTFXdlhGWFV4UTREZkZiVkZsSzloa1NHWEUyYmc5d01lQlBHcHRJRCt5TUlpeE1sbklWMkpCKy9KVXhCYldWc0ZKNG15OVIweFJ4TFNSaFcxcFkwdzBxem52aEFRMmowUFRBUW0wUU54VWIrMlJMTzJtWmxXcEcySVVsVGFTdUdtTnRDVnFVR0drMlZwWTRhUXQ1WVZhTCsyS0xkeXhSYmRjTkxhNXBLakJTMnRXakhmRlFxbU9NTFd0VGtiTEtnb3NCMnliQXJNVU9waXJzVmFJT0ZXaHlHS3JnVFdtQlZ3RzlhbkZJTGpUeHdNclhLQjNOY1NvVlVXTUFiMHIyeUJaaFVHMjZpdjA1RmxiZnIwRmEwT1BEYThUazFCbElxYTREaVh4a1ltbzdlT1ZIRTJqS3B6WHl1RGtvNDZSTElvSmVMSHVEOU9UT08ySEd1L1NXL1hyZzhKZkZWb3JsbTNCMjhjaVlVMkNkcXl6SHZ1ZTJRNFdRazAxdzZpcG9CaUlwNDEwZHlDSzhxSEV3VHhocHJoeHZYYkFJSU1tMHZQSHBpY2FpYmJYS2tibW5oZ0VFbWFIZVZTZXVXQ0xBeUNHbW1OZXZYTFl4YXBTVU9hK09UcGhiWE1OMC9IRFMycUpCeTNBclhJa3FJb3FHeGpHOG4zREtwVExkR1BlaVFzWFJSbGRrc3d0WkI0NFZVSitRSHc1T0xDU0Rra2w3akxnR29rdVNPVnhVbmlNVFNBRnhRZ0dwcmdaVWhaWldERUE3WmFJdFJrcENTVTdEZkRRUnhGRjIwYkZnN0UvTEs1RnNqdXJUektwcFdtUmlHWmxTaWJxT25YNmNsd01UTlJlN0ZkaGtoQmljaTM2MEQwMjhjbndMeHVXNUl3Y0NPSnh1aWVtUEFqaVdHWjY5Y1BDamlXTks1NnRrdUZCa1ZwbGJ4dzhLMnNhVW52a2dFV3NabU9MRWxyQ3hiRytLMjJLZFBuZ1NILy8wZStac1hVRjJLdXdxMWl5YjN4UlRzQ0hZcTBWcjF3MnExbzZrVTJ3OFNyU3JEQ3ROWVVVN0ZEUkFPS0thNDRxdHB2aFYyRkxxbnd4cGFjS1U2WTB0TFNCaXEwcmh0YWNCVENsY3JzcDJPUnBWeGtMYk5qU3JNS3JhYjF3cTFVaysyS0dnTjhWWEZjVmRURkZMU01LS2R2aWhvWXEzVnFkY1V1cGlyWkZEaW1uTXZoMHhRVm1LSFlxN0ZYWXEzVTRxNnUrS3VyVEZJSzRONDF3RUo0bFZKbFhvZDhpWXNoSmJJM0llSndnS1NvaGQvYnZrbUNLVjRTb0hjZUdWa0Z0QkRZamhZMDVFWUxLZGtQUEVVT3hxTXNpYllTaXBaSnJWbG1ZRGJJOElaY1M0WEVuWTRPQU14SXJqUFVVY2xzSEN2RXQ5UTlqVHd4NFZ0ZjZ6VW9UdGp3cDRpdDljanY5K1BDZ3lkOVplbldtUEFqald0T2ZHdUhoWGlXR1VFYjduSkFNU1ZNaytPRmphNUFPdGNCU0V3c3lPSlBhblhLSnVSalh5VHg5aVQ3NUVSYkRJT1c1QXc4Q09OdjZ5cDJyandKNG5HUUhhdVBDdHJDRlBYcGh0aVFHdGdhWVVGUm1ZQVpLSVlTT3lBYXJIYnZsNGFWYTJYaVFTTWhJc29oRzhsVmRzcmJrTE1wa05hNzVPT3pYSUlXUlF2ZjZNdEJheXBFNU5EcWpGRnVCd0xiZUsyNG5DcXcxcmhRMWlyUkcrS3JjS3RqRkZON1lGY092MFlwZi85THZaelpPcWNNVU9HS3VyWEZhZFhGYWJvY0NIWXE3RlhZcTdEYXRVeHRWcGo4TU5vcGFWSUcrRmFhb01VVTdpTWJRMFZ3MnJYRTRWYUswNjRxMVREYVhjY1Zhb01WYTQ3NFV0RlNNYlYyS3RZVmFJUHl4VnVudmlpblV3V3RPR0tYVXh0WFV4dEZPNEREYUtXa1V4dFM2aHdzYWIrS21CazBTeDY0b2E0MTNHRkZPS2dEcnY0WXF0eFZVQ1ZIYkJiS2x2cHYyR0cwVXVFWkIrSWJkOEJLUkZlRXR5TnlRY2paWmNJWHh3b1AydHNCa3lFUWk0SUxkNmNxSEtaU0liWXdDSWJTTGQwUEQ0YTk4aDR4RFB3Z1VKTm84aU5WRFZPL3p5MFp3V3FXQ2tJWUhqTkhVakxSSUZyTUNHbW9Qc2o3OElRczVrOThJQ0NXdUtuZW4wNGJSVFhBWW9wdzJ4VUZVRExUY1lDeUM1WGovQUpRY2liWldGMVlEN2UyTzYyRmt5cFFFRVlSYUpLREVaTnJXN1lxM2lyUnhWc2Y1akZWVDE1QUtBOFI0WU9FTWhJckRNL2M0YVJaYTladkhHazI0VE5XdU5LSkx2WGY2TWVGUEVWNjNMMTM2WkhoQ1JJci9BS3hRZU9QQ3k0bEo1RmZ4cmhBcEJXb29yaFJTdWxBTWdXUVdOTHhyVVlSRlNhVUhuWnRoc01zRVdzeVV5Szlja3dVMnJrZ3JzS3RyZ0tHOENDdE8vd0JHU0NRM1FuRlZwQkdLdFlxN2pYRldpS1lxNm1LMDRZcS8vOVB2ZWJKMUpid0lkVEZXcURDbTI2ZUJwaXR1NTlzQ0c4Q3VJR0cxZFRiRlhVeFZyRlhZcTdDclJVSEcxV2VtM2poVm9nanFQcHhSVHFmZGhSVFZCaWh4QXcyclJHMk5xMVRDclJBeFZ4WEZOdFUzNlkyclJYRGFXaWhHTnF0eVN1d0ZYWUZkaXJlS3Q0cTBjVmIzeFJUV0swM2l0TmJmTERhV2lCaHRGTmNSamEwM3RUcGdTdldRamJyZ0lWdDVhbW9GTUZLc0RrVXdxQ3VhUXQxQStqRFNxa096QTcvTElTREtLYVFYREJRQWFqd3pGbEJ5b3lha3Y2TnhwaEdOWlpFSE5LSEhYN3N1akdtbVVyUWNnb2V1V3RKV3FWQjNHR2tXdWFmYWlqR2xNbFBsNDlja0FpMW5OR1loU0NWKzBCMnhZdDF4VjFjVnR4YkZWcEpQZmJ3d3JiV0t1b2NWZGlydmJGWGNXOE1VMHVDZUozd1drQnYwaWNiVHd0L1Z4NDQyeTRWcGg4RGhCUlRSalVEcmhSUzBjYTljYlRTNENwcGdTdldJVnJnSlNBdm9BY0ZxMXo3WTB0cUVyQTk4bUF3a1ZMSnNHOFdLMHFEaEJWb3BRYlliVm9iWWxXOEN1eFYyS3VwamF0Y1JodFdpdmhqYXVJcmhTMVQ3OFZjQnZpci9BUC9VNzVteGRRN0ZYWXE0QTk4VmJwZ3ROT3A3WWJRNDRGYTNGTVZieFYyS3VwWENycVlxMVE0cTdGWFlxN0ZWcEF3cHBvcjRZVVV0cDkrRmlRN0FpbXNLdUl4dFdxWWJWckNyc1ZhcGltM1VCeHRLM2hqYXRGVGhWcmljVmRRNHE2dUt0NHE3RlhZcTBUaXJXS3V4VnZGV3NWWEJDYWUrTnF1YUZnYWRjRnBwYVN3Mk80d29keUg4b3dxMXlhdFJ0Z3BWd2xldlU0S1RaYmVRdDQxOGNhVzFuSTFyaFEwYUhydlhDRUZZeWpzYTVJTUdxWXE3RlZxUlJvWFpGQ3RJZVVoSDdSb0JVL1FNVnRkaXJzVmRzY1ZhcGhWckZYWXEyS2s0cWlJN1VsQ1QxN1pXWnR3eHU5QisrUEVvZ3ZXQmgrejlPQXlUd3VaSHh0TktUaGhrZ3hKV1VydFhya21LckxZc3ExRDhpY2lKcytCRGlGZ3g1WkxpWTBxVkFQVGZGVnJUTjBBeEFVeVUya2J4eVZOWkttek1kNjVJQmJXNFVONG90MktIWXE3RldxREcxZHh4Vm9nNFZhT0t1eFYyS3V4VnNVeFYxQmh0WEJOOGJTLy8xZStac1hVT3B0aFRUWUh2Z1dtNllGRGdjVXUyeFYxTVVVMVhGYWRpaHZGTFdLSFlxN0ZOT0lyaHREcVlxMVRGV3FZVXV4VjN6eFZvb3VHMFUxd3h0QkMwaW1LS2RoUTFzY1ZkeHh0THVHRzFwYlNtRkRzVmR0aXR1cGl0dFU5c1dUVkJqYXRjZmZHMWFJSXdxMXVNVmF4VnYzeFZyRlc2WXE2aHdxMkNWT0JWNGZhcllGV01SVGJvY0tyY1ZkaXJzVmJ4VjJLdUl3Mmd0R3YzWVF4cG9qRmFkeEhIM3dyUzJoeFE3RlduNUJDVlhrd0d5MXBVK0ZUaXJvZ1dVRXJ3WWpkU1FTRDRWRzJLYVhFVVBqaWhvcjM3WXE0cnRoVFNJdDBSU0diSzVsc2pRUjYzTUFIeXlqaExrY1lVWHVZNi9DUHB5UWdXSnlCRHRjc3g3NVBoYXprVW1sSlA4TW5USGlhUkhsTkFOdkh0aVRTeDNSRWRvb0h2a0ROc0VVUjZhRUFNNEZQSEs3TFpzcFNSd0FHa2dKeWNTV0JwQVNFQTBEWmNHa2xUeVRCYXdyaFF0NG5DcnNLbDJCRk93clRzVnB2aVNLakJhYWR3T0MxcHYwMjc3WTJ0T0tFWTJ0TGFaSkZOVUdLMDdqaXRORVlWcDFEaXRPcmltbTk4VXY4QS85YnZ0TjgyTnVxZHZqYXV3SzRIZkNsdmZwZ1ExdmhWMkJWM2VtS2x4R0JpMGE0VmQ5R0tYWXE3RkRXS3V4VjJLdW9NVmRURGF1NGp4eHROcmFIQ3R1NllxN2J2aXRPb01VVTF3SGJHMEVOY1NNTnJUVkRpcnNWYW9NS3U0akcwVTF4T0cxcGJRNFVVNm1LdFV4VzNVeFRicVlyYnVJeFJiUlFZMnR1Q2pGa3VGS2RNQ0xkaHREUkZjVmRURlhFQTQycTNnYTdZVTJ0SU9LV3NWYkdLdDRxN0ZYWXE3Q2ltaml0TmNSOUdGalMybUtLZFRGWENveFYzWEZXd0s3VjM4TVZEdUlwMXdzbXErK05JdHFweFJic1ZjUzNZNHJibElIWEZLcEhNVTZkTUJES01xYWU1bEpORFFZQkFKTTFMbXgySnJrNllFdEhGQ3cxUFhDcnNLdXhWc1lwYXB2aXRON1lGY0F0YUhHMXBXaXR1ZlFIM3lKbFNSRzBVdGl2ZnA0SEt6a2JCQmQ5VmpyOEkrL0J4c3VBS1R4S3U1TzJURW1CQ0hrSzdnWk1NU3BHbERrcllMQ0Q0WWJWbzE4TVZkaFYyTnExeEdOcGJBeFYvLzlmMEJUTTkxVHEweFExMXhWM0hHMWJyaWgySzIxUVlyYnFERkZ1MnhWMU1VdTN4VjFNVnRvakZXNkRGVnBya2d5QzArK0drVTJEdmdwYVhZRU9vY1ZkaXJWQmh0WFVHTnE3aU1iVm9qd3hTMXZoVjJLdUlVOWNVVTF4R0swMXhQYkRhMDBhK0dLR2lhWVZkc2ZuamEwc09GaTdDcmhYRlcrSndMVFZNVTA3RmFkaXRPcGl0T3BpdE93clRzVnAyS0hZcXQ0REcxdG9wNFkybTJ1RFkydHVvYTB3cGR2aXJxYllxN0ZYWXE2Z3cyaW5VR05vNFhZcndyU0NSNFlVVXMzQndvY1NjVmRpcldLdDRxN0ZXanZpclJHS3RZVmRpcnNWY1JpclhIRGF1SytHTnExUWplbUtYWVZkUTRGVm8xRzFRTWlTa0lpTitQZW1Wa014c3JMTFhyMDhjalRPMm5jOXNRRnRDeWx5cDdETEFHdVJROU5qVGM1WXdMVktlMk5xNm83YjQyaHhIamphWGJkS1lVT05BUERGVmhwWERhdUdLdi8vUTlBNzVudXJwckZEc1ZkaXJxWXJUc1ZwbzRvcDFEaWltcW5DdE4xT05MVHQvREF0TzN4V25ZclRzVTA0clhEYVFzSzRiVnVoeHRWd3BUSW9kVEZGT3hWMkt1cGlycVlxNGphdUZXcUU5TnhqYVhlMktHaXVHMWE0NDJseEJHS3RWT0ZYWXEwVkJIVEZWcFNudmtyUlMzamhSVGZ5R0JhY0RVNzlNTEtsU0syZVZ3cVZOZnV5RXBnTTQ0N1h2YVN4dng2KytBWkFReU9JaHMycmtVTkI3NFBFUjRaVXpiU2c3OWNseHNUQnlXMGpLV0hRZGNlTmZETHZRaUQ3a25IaUs4S242YkE3S2ZiSldqaGI5SmlQaTJ4dEJpc0swK2pEYkFockNoMkt1eFYyS3V4VzFwQitqRzF0b3I0WWJTQzRBbi9Qd3hUYlZENGI0cTZoOE1WdDJLdXhWcW1HMEVOY1I0WTJpbWlveHRhZHd3MnRORmNOb3AzQTQyaW11SjhNVnAxRGl0T0trZHNiVnFtS3VDNDJyWEU0cTdDcnE0cTZtS3RjUmlyWEQzeHRWeTFIZkF0cnViZHNhVGJmcVA0NEtYaUx2V2JHazhUWUxOdFRyaFVGeGlGVFEvUmd0TkxURnZ2dmh0YVhKRWE3ZE1CS2lLb2JmK2JCeEo0VktTSURZN2VHU0VrR0tseGJ3eVZvcDNwdDRZMnRPNEd2VEcxcC8vOUgwTVkycm1iYnJTdE1YamphQ0Zwajk4TnJUZnBqeHh0YWFLR3UySzAxUTRVTllxN0ZhYW9NVU40cTdGWFlxN0ZYWXE3RlhZcTFURld4dGlycTRxN2JGWENneFZ2YkZhZFRGYWFJeFdtdDhXTHFZcTRqRlhiWXE0ancyeHROdEZjSUsydElHRlhZVnBxb3hWeEk4TVZwdjBtSXFCWEhpWmNMUUEra1lzU2l0UGw0U2NTTmoweXJLTERkaWtqWENPelZwWHRsSTJjallxRXJjU1ZHV1JZRkNPNzh3VDM2akxBR3FSYzl4OEhGZHE5VGlJc1ROUTUwTk1td3RXQlJBRDFPUkxNRUxaWmdSc1BuaEVVU2tvVTJ5YlNXdU9HME9waXJXRlhZcTdGWFlxN0ZYWXE3RlhWeFZyaXVLdEZmRERhMnROUmltMnE0cGRYRlhWeFYyS3UyeFJUcWUrRzBVMXhIWHZqYXUrUDU0VUxhMDZqRlhFand3MGhzY1QzcDg4Q3VJR0cwcmVJeFduY2NVTzQ0VmRpcllYZnd3RlFHeWdBcjF4WlV0b1BERkRhOER0VDZjU29YN0wwNzVFc2xoREhvY0lTdVZYUDBkOEJLZ0txQ2g3NUVza1NTcFRicU1peVVXVWJtbFRoQ0NGSXhud3BrclJTemdSMEdFU1FRNEszaGh0RC8vMHZSVytaVnV1b3VLbnVNYkM4SmEySGJEYWFMVkJYYkcwVVhjZC9mRzFvclRHZDhOcHBvSURqeEtXaW0rMlN0RkxUR2NiV21pTUtLYW9jVVU2bUswN0ZEc1VPeFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMUNBRFRZOURndFBDWFlVTzJ4V25VR0swMWlpbXFZVXVJeEJWYnh3cGI0NDJxNk4rUEllT1JJWmlXeXdnMTY3NU5ycHlsbE5RZDhCU0ZWSmp5K0k5ZTR5Qml6ak50MlpqMTJ4QVNTcE1IclU1TU1TdG9LN2pEYldRNEtPdlRHME5jZHV1RzBoWndhbUVGV3FrWVVVNEVZS1kwM2l0TlV4dERWTU5xNGpHMWFwaXJxSEZYWVZkaXJzVmRpcnNWY2Q4VldsRnhUYlhwNGJXM0ZLZE1iVzFtS1hZcTdGV3djVmRpaDFQRVliUlRSUVliV25jQmphMDZtNDJ4dE5PTk1VRnJGRHNOclRSVUhHMFUxeE9CTkxnTVVyZ2lucmphYWFaRDRmVGphZUZlcUZodjhBUmtTVWdLeXhBRFliNUcyWEM3aEpYMndXbW0rbU5yVGNjYmtrZ1lrcGlGWllSV2hHUU1tZE52QU9neEVsNFZKNENveVFrZ3dVaW54RGJKV3c0WC8vMC9US29wNkNtV0V0Rk5sQlR4eU5wNFdndTUvVmh0Rk9NTVorMEJYSGlLUkFGWTBLZHNJa2d3V0czV2xSdWNQRXg0Vk13U2RLRDU1TGlESGhXbTJsVVZwMDY1SVRERXdLejAyUGJEYkhnYkZ1eEhRVThjZUplQlkwVER0aEVsNFZ2cHQ0WWVKRk5HSnZERHhMd3RHSStHTmhIQ3RFVG5vSzRiQzhEakd3Nmc0MkVHSlcvaGhSd2wxRGlpblVPS3V4VjJLMDZtSzA2bUswNm1LMDdmRkk1b3dFdWxDS2p3SGJLWEk1b2VkVlZxQVVwMXl5SnRvbUtVOGt4Y2NWY0trN1lxMlFRZDhiV21pTWJXbllxNEQyeFdsNnFnVW5qdmd0blN3cjkrRUZqVFhBbnB2aHROTitpM2hnNGs4S29zUk8xUmdKWlUzNk1mN1RmZGc0bHBhUkQwR0lKUVloWVVVOU1tQ3g0UXM5TDR0ajlHTnJ3dEZhSGJEYkV4VzBQaGh0Rk5GQVJodGFXaEQ0NGJZMDF1TzJLMDJBVDJ4UlRxSHd4V25VUGhqYTA2aDhNRnJUWEgydzJpbmNjYlduY1I0NGJXbmNhNDJ0TmNEamEwN2ljYlduY1RpdE5ZVUx0aUJnVmFVcjJ3MmxyZ01VT01mdGphZDF2cG54eHRMdUI5c05xN2lhNDJpMnFId3h0TnRoU1RUcGlyUkZENDRxMWh0WFVHTm9wcmpodGFkeDk4Yldtd01GclRlS1d3Q1RnVlUzR0JrRndwVEFsZUNRUDE0Q2tGZHlyOHNESU5WM3hWZjZ0QlFDbUNsQldDWTh0OXdNZUZQRWlGbERibmJJMHppV3lWSTY0S1pXc0twVVliWXYvOVQwd3RSWHc5OG1XbmRVcURrV1Z0Y1BjNHFRdDRnTnVhWVNVQUxxTDQxeUxKc0JTTnNiUXNwdlE0clRpQ1ZJOGNsRmlWb2pXdlNwdzJpbHhqVTdGZHNGcDRWclJMdDJ3OFNPRnZnbE9tRzA4S2xXZ1B3NGJZa09FWEpTVHNNZUpIQ3BqNFBua3JSUzVwcWloR0lWWUZWbXFWMncyaWw0Z2pKb0I4OFRKUENITGJSazFwVVlPTmVBTkdPTmFnSUI3NGdxWWhTZEkrcEpIMFpNRmdZaHI2c3AreVRpWnJ3S3EyME5Od2E1SGpMSVl3c2UyaTVVclErR0hqS0RqQzJTMmpIMld3aVpSd05yRzRXaXR0NFlDVWlOS2J3eUhya2hKZ1lrckRBNEZjbnhNVEJhVUk2NDJqaGJTb09LZ0t3TlJYalVuSU0xakNwSmJ0MEdFRmlwbGQrbVN0RktpUmlsVHZnSlpDS29BTmkzVHJUSWtzd0tjeUt5MUFwZ0JWdU9KUVdJNmpwaVpKQVhKRlVFdGd0SWlzOU1zeDhjTm9wenhLRjY0aVM4S2d5RWRBY21KTUNIZW05UnR0aHRBQlhlbHR2MThNSEVuaFUyK0UwT1NZbGFYalBWYWtZUXEwbGZEQ3hhb0s3WTJ2QzJWUGhqYURGM0UxeHRGTzRZMm9EWWp3V3k0WGVsamE4THZUT0cxNFdpdStOc2VGM0VWL2hqYTAzUVkya2gxQjQ0Mnhwb3FLNDJrQnNxdEsweHRhVyttbmhodEhDMkkxN1kydkMxNk5laHg0azhOdGkzd2NTUkJWRUlZVTdqQmJMZ1dtekZOc1JOZUFLTWx1eWlveVlrMXlncDhXSFkvUEpXeDRYSEcwTllxMFZCdzJyUlZSdFRHMHRFSmh0VnRCWEZYZlBGWGJZcTdGWGNqMjJ4VmNIUGZBcS80TzR3TWx3S2pyWDJHS1ZRZmhrV1lhYjJ4dEJXcVc3OU1LSGJWNllxcUk0cDB5SkRZQ3U1a21nd1V5ZFUxclRGWC8vVjlPRUU5Qml3YUNWNjlzTnJ3bDMyUWUrQmFhTFZ5VklMVzJBb0M0RlIweG9wdHg0azc0RXRnREZRRm9XaDY0cVYxQXRUaWhhYUhGTGlvcVBERlcrRmVuVEZhY1ZvTUlMRWhhVUZLVTJ5Vm9wWjZBUHNNUEVqaFhlZ3RPbURpVFRsb0NSdnYzeFJUZ0F1d3dFc2hGektDTnhqeExUWEJPdkhFeUtlRUxnbzhBTUlMR2x3QTQ3QVZ3RmtwbU5DM0lqZkhpWThJYWFKRDAyT0VTVWhyZ0FhR21TdGpUUmpMRFlBZStHMDB0YTNOT3VJa3hNVkgwU092WHd5ZkV4TVZoRkR1dVN0Z1E0RVY2R255eFVMdmdQaUQzd0pwYUFLN1lTaWxkRkZOdXA2bklFdGtRdktBaWxCa2JMTGhjc2FnSHBpU29DNFFpb1BUQVpKNFcyamFsQjB4dFBDcCttVkpKNkhEYUtYOEVydmd0VmpxcmJEWWVPRVdnaFVDeEtLQVZJd1dVZ0tieDh2RERhQ0Z3dElLMTQ3K0p3SElVakdGendRMDNVREJHUlV3Q2c4RWZiWTVhSkZnWUxGZ1VHdlVmamp4STRYTkdLZUdFU1V4VW1ncjB5WEV3TUdqRXFtaE9IaVhoYkFDbnRqYWFiNEJnU01GclMweE40YlliUVFwdkdSMTYrR0VGalMwSnQ0WkswVTZnRzFjVUVOK21wM0J3RXJUWWpYeE9OcDRXL1JUK2JCeEo0UTRoUjN4VmFXUUR3d2dLMEhPR2tPOVZoalM4VGZyc1IweDRWNDNldTJOSTQyak14N2JkOE5MeExlWUozeHBpM1JmRGJGVnBDZnk0YlJRV21OQ2ZEQ0N0TFRIVERiR2xoUUh3dzJ0TmVtTytOb3BiNmErSncycnZUSGpqYXVDYjc0MnJZVWRzVmRURmtBdUJHQXBWQlRydGtXUVZGWlFDUUJYd3dVeWE5VGZvTWFVRm9sU09neENkbWdnclhhdmpoSlFBdkFVNUhka3U0cU54anV5ZFhBaC8vVzlPQngyTk1OTmRyZ2E5OERNRm80cVdpQWFZMnhVMkFYWWZDUEhya2dXQkRsSjdNR0dFb0hOc1Vya0MyTnNqSFpmdndpbUpVNnNyZkVlbVNBQ0xYZ3FSMTJ3VWtGMVU2Vng0VTJ2RktiWkZWd09MSUZwcUhGU3RLanRodGpUUkJ4V20rTEhBbW1ncDc3WWJSd3Q4YVlGV2s3ZE1taTJsTmUySzhTN0kybDJKS3R0VGpnVmJYWTRRZ3JDREljbXhYcWhVVXdXeWNWcjFPSUtGSmtOYUFWT1N0RkxnaHBqYTA3MHozNllMUVFzRU5SVTk4bHhJb0x2cTBmUUNtUEdVOEx2UW9hcWNIRW5nV2tzRFRDRkxXMWNKWWhlczNJOGVudWNpUXlCWDhxYkU0RTJ1QlU5S0hCUlN0S1ZPRzBMVEV3NkhIaVdtMFUvdGZSaWltK0MxNjc0cEFYZ1Z5QlpndVpSaERFaFJaQVAydm95WUtDNFJGdHhTbmpodERmcElEVmpYQmFrS2JJTzJTdEJDbTBaTzlBVGtyWThLd3hudUtaSUZIQ3A4aXRSVENoY0hOUnR0alN1S3FldmpnUVF0RWFuM3cyamhkNktIeHg0aWtSYk1GQjhPRzA4TFJSdSsvdmphQ0d1QjhNYlJ3clNudFhEYU9GYVltT0VGRkZyMEdyMXBqeEk0WGVpY2JYaFdzaEdFRkJpdE5mREN4NFM3NTRVVTRqRlZ0UGZGTFJMWVVMYW5HbGJxM2poQ3RZVmFxQmlob2pGV2dEaXJkTVZwMURpbHZneDc0clRYcHNNYlRUWTVkQ01VTjc0cGR5STdWd0piRE9kZ044QlNGNERFMHBndG1BdU1lQzAwMmtaUFVZTFNBMzZlK05wcC8vMS9UaFJEMXlUQ2c3aWxLZHNCU3VBRk1DV2lwUFFrWXFRdDR0NDErZUtLYW9SMis3RGFLY0ZCNmpBdHJxNzBvZm5paG9yWHZodGF0M0R0WEcwOExYb0R4dzhTOEs0UjA3NUZQQzN3OThWcHVtS2FkUVlyVFhIZXVLMDdGSWJ4VWhhUVQyeFlPS2pGRk80ZzRiV21xSENwYW8zYnBrVXQ4U2VweFZwa05DTUlRWElwQjZZU1ZDL0lxc3BRNUlGWFZJN2JZa3BhM3lOclRpdGV2VENDeHBiNmZhdVN0RkxndE5xMU9LUTRBMXlESnhXbzN5UUxFaGFJa3JrN1JUakZUcHVjYldtZ3hBK0pjQ0ZNMHJzVGtnRmJTZGdhZGNURlFWUXlxKzMzNUdxVGFtVkFCd3F0SElOV3UyU0tGUUY2K0k5OGlXUVZSV20vNFpGa284UXprRTdWeWJGYzRWUlFibkF0S1lBSjNKd29YTWkwMk5jYlZid1A4QU5qYUtXdEV4L2J3aVNDRnBpK0hadDhsYkhoV2VuSlhEYThMWEZnZHpqYThMWjhmeHdzWEFxVHNjVWhzMDhkOEFaVzF2U3VGZWJ0OFVFTGVHTEdtNkh0aXRPcDQ0cTdGQ3c5ZW1TQlN0TlBEQ0NndGNWUFVZYlkwNzA0L3Z4dGVFTFRHbmhqYUNHakVweHRlRjNwSmg0bDRHakVQQ3VJa3BncG1IZkpjVEhoYjlIeHg0bDRXdlJZZHNlTmVGdjB0c0hFeUVXeEFUc01lSlBBMzZERHRqeEx3THZRYjZjanhMd0xoRXdGS1k4U1JGdjBoNFlPSlBDNzBSanhNdUZ4UURhbGNIRWpoYTRpdlNtUEVpbkJSaHRrM3QweFZva2RzVmFCM3JoVi8vMFBTeGNWcFRiTEdxMmhLRkd3cGp3b0JYTE1PK0F4U0N2RXludlRIaFpXMzZpZnpZT0ZIRTdtdmpncGJiNUNtQ2x0dkRTMjZveHBJTHE0MG0zVjlzQzI2dnRpbTJ3Q2R3RGl0dW9mQTRyYmRHOE1VV2xQbU8vd0RxdWtYVWtkd0laMEM4U0N2SUVzQjBQendnSUpTWmZ6SjBjLzhBSHRjajVoUDhud2IvQUNzUENrRmQvd0FySDBqdmJYUC9BQUtmNVgrVi9rNDhLZUo1M2FUK1poK2U5ekdKNzFkTmU4UkJDSkhNSHBla1dZY2FsUWhQdGs1RFpxeG15WHRHbzNzZGhZelhreWt4d0laR1ZhY2lGRmFMV20rVjAyMngzL2xZdWpWQTlDNXFUVFpVL200L3pZZUZiQ1lhTDVyMC9WN3ByYUNLV09SWS9VcklGQUkrSFlVSjMrTEFRdHB5UWZEQXhib2ZERkRxSHd4VnJGV21kVlVzeEFWUlZpZGdBTytLb1d5MWpTYjhzdGplUVhUSjlvUlNLNUgzSEdsUlZTYWluMDRxMXh4VmRpcTFodmlsYlVBMHlZVmVLMHlKUXROZStFQlhDaE5lK0ZMVG1nd3NTdENWRlNUamEwdGFQZmJDQ3BEdlJQajlHTnNhYTRFYkhHMHRxaTFyVTQybWx4VlI3NDJtbHZlbzJ4VnZrM1RBcFdGTytHMFU3aVIwTmNOb1drUFhiRGF1K090TWRrTi9FY2RrdGQ4VmRoVnBxOXNVTytFOVJpaGFlQnhCUXQrRHd5YXRIamlyVE5HaXN6R2lnVko4QU1CVEVYeVViTzlzNzYzVzVzNWt1TGQ2OEpvbURLYUdob1I0SEcyVW9rR2lyOU1iWTAxeXh0QkNuY1hjRnZieVR5c0VqalV1N0hZQUFWNzRrckFHUnBMdkxmbWZTdk1Pa3JxZW5jeGJQSkpGU1FjV0RSTnhZRVZPSURQTmpPT1hDVTA5U0tuZ1RocHJKV2tKNDQyaW1pRjhjSUtLYTRFbmJmRFlXbS9UZnd3Y1FYaGJDSEhpV20rRCtHRGlUVFFWeHNSWEhpV25lbjNPUEd2QzJJeGdNMDhMWlQyd2NTOExxYlllSklpMVRIaVdtOEhFbW5ERGEwN0RhMDBkc1VVMFdBR0tyU3plT0pLR2prVVU3RGFLYUpxTWJVTGNtQ2xvbmNaSlgvL1I5S21KdkN1VzIxVXQ5R1N2VER4TFM3MDNIdmd0YWE0TjRZMnJSamJyVEcwVXRLTUQwSXc3SXAxWEhqaXJoejhUaG9LN2t3L2FJK2VDa3JnN0R2aVFtMTZ6RUhlcHdHS2dydlhYd3lQQ3R2RC9BTTNQTUYvWmVjakRiYWhjV3EvVm9pSVlwM2pVMXJWdUtzQi9zc25SYVpUTmxnN2VmTHRhcTNtQ1VNbXhCdm5CSjhQN3pIaExIakswZWZMNGdmOEFPd1RVUFUvWG4yOXY3ekJ3cEV5aDdyekxIZmxoUHFmMWw1UnhJa3VpOVZIYWhmSGhXeXByZDZlcHFYWGJaZjNyYm4zK0xCd2xmRVhDOTA0Ym1kVFRjL3ZtOE9uMnNlQmo0aFJNZm1JUjNodTQ5UWFPNU83VGk1WVA0YnR5cjluRHcybU9TbDE5NXZtdklQUnV0V2xtaFlnbUtTNmNyVWRDUVd3K0d2aUZBZnBIVEJ1YmhOajE5YytQK3RrZkRVektJdHRjdDdXWVQyMThZSmxGVWxqdUNyQWtFYkVOandKR1FvNy9BQjFxdFIvdWV1Q1Q0WGowL3dDSjRlQlBFV3Y4ZGFzQUQrbnJrRUdoL3dCTWYvbXZCd3J4RnR2UFd0Y1NScjF5UEEvVzM2ZjhGaDRVSEl6ajhzUHpzc0VrYlF2TTJvQUFNZnFHcHpFbXZmMHBYMzVmOFZTZnRmWWJJeWpUZEdWdlJiNzh3dkpLMmN4L1MwTWdaR1drUWFSdmlGTmxBOThBWkVHbmpINVgzK2srVUxyVmRTbG1CdWZxYnJaUm1GdmpscUNxbmhVOXZpeVJrQ1VSQkFlOGVVL00xbDVpMFNEVWJkMDlSMVVYVUN0eU1NdkVGbzI3cWQvMnYyY3I2c3FUbW9yVEpVaGExSzljRksxOU8yR2t1UEh2aFZ3ZFIzd0VGWGNnVGlyUmVtR2xXRTF5U0xYSzYwcHZnSVcxeFlVcU4vYkdsV2wyK1dLclR5SnhVaHJjWVVnTmx2SEFsYlhDeEpkVURGaTJEWEZtR2ljQ0MxeU9MRzNWM3hRNnJIdmh0VnRDT3VTdExYSWc3OU1iVnNNdVJ0VXUxbldZYkZSR2dFbDQ0K0NQc0IvTS9ndi9BQkxBWktBOG52Zk9YbW1LL25qWFYzQVNWbFZPTVd3NWRLY2NuSGNXMFRPNmtmTy9td2h2OXl6KzN3UmY4MDVKanhJZTM4MGVZYmFRTkZxc29KQko1Y1dxZnBCeFhpWFhQblB6Uk5ibUNYVm45T1VGWkFGaVdxbW9JcUZyMHhTTXBCc0liUnZNZXM2SHB5NmRwZW9HQzBpWm5qaUN4c0FYUEp0MkJiN1J4VFBOS1JzODBlUHpCODJjai91V3FLZDQ0YS84UnhwaHhsWTNuM3pZNnFEcXhITHJTT0lIN3dNRkx4bFR1Zk9YbWE1c1pMVzQxQVRRUDhMQm80NjBydDhWSzF3a1dveUVHd2g5SDh6YTNvc0V0cnB0NHNFRHUwcGo0SzlaSCswM3hjdDJ4cGxMTktSczgwZEY1OTgzcFRqcWZMa0tubEZHMi90VVlzZkVLNy9sWVBuVUN2NlNUYzBBTUVYOU1GSjR5NC9tRjUxUEttb3EzRVYyZ2lwMCtXRmZFTEtQeSs4MDY5cXVzVFcrcDNhelFyYm1TT01ScEg4UWNDdFZGZWh3Rk1aRzNvQmNVeU50eUZzN3VXYTR1NDVBRkVFaXFnNm1qUnEyNUh1MkVsRjdvcW95S1hWR0t1TERGVnBiQ3JSY2VPSGhWcmtNYVcydWE0OEsyN211UEN0dURqR2tOOGdlbUhkTnRWcmp1clhMYnRqWlZwbXhDcmVXU1Zya2NVRnJGRFZjUXJ1VytIaVYvOUwwNXk5c20xdTVlSXdGWEdoeFZiVEdsZFFZVmQ4c0t1SUo2OU1DMHRLZUdHMFV0TWJlR0cxcG94bkRhMHRLY1JWalFlSjJHTm9TeTk4eWVYN0pTMXpxTUM4ZGlvWU9hK0ZFNUhHd3J4Lzh3UE8xdFA1d2d1N0hUcnk3dDRMRnJlUnhHcVViMXVkUjZqTFZTb3k3SGtpQnU0MlhGS1JOUE90SjErV3pzbzdlYnlXdDVLWGxjWERpRG5KemtaNm5rakhZTi9Oa2puaW93U29CQ1crclN4K1piclZtOG5LOXROYngycVdkSU9LU0k5UzQrRGlTMzJkbHdlTUVqQklBcGhkYThaN2kwOVB5ZCtqelozTVZ6TmNRaTNMaEk2a2o0VlQ3WCt0aU0wVUhCSmtYK05sSlZmME5mY21GUVBUaTZEL1o1TVo0TmZnU0t5eTg1UXBiS3JhTmZrbDNBWVJ4RUVzNU8zeDREbWphUnA1VW9Ydm0yM2RweitoNzZub05FeE1jV3pGZ2V6K0dQNWlMRTZhUlZ2OEFGbW5GdUowVy9yUW1oaGo2ZjhIa2hxQXY1V1NuYSticktOWC9BTnc5OVNhUXZGU0dQY0ZSL2wrMkE2aUtqVFNDV2VZL01sdGVTYWRMSDVmdWJ1S3p1V2t1TGVlS0pVZmxFMFlIeEZ3U0djSHBnOGVMS09DUUtXNnpyRUY1cGQ1YVFlU2ZxMDhzTElzd1MzckdXQkFmNFVCMjlzSGpRVDRFMTJsYXhid1dGcGF5ZVIvWG1qaFJXa0tXeExsRkFML0VsZC9mRVpvTWpnbmZOVWgxVC9jRnJ0cEY1ZnViYVhVM20rcXdReFJHTkRKRXNhcnlVcVB0S2EwWEQ0MEdCMDh6VEhOQzh1K1l0UDFmVEpVc1p2MGZ6QmxCRlRidXExTmFWb2puY0E1aHpuWWM3SEducjlocVV0T0pKQlduWHJtUGJrQk40YjNrQlU3K05jS2tLM2xiV0o5RTh3M2w4MWxQY1d0eWhUOXhKR09UVkhFdWpzdTZVYmlmOHJKeGxRWWNMTVArVmxRVS93Q09QZTdmNVZ2L0FOVk1QaUJoNFR2K1ZsMjUvd0NsUmZENllQOEFxcGo0b1h3bkQ4eUxldjhBeHlMNm4vUEQvcXBqNG9Yd3k1dnpJdHlmK09SZS93REpEL3Fwa3ZFaXZBV3grWkZ0MzBtK0gwUWY5Vk1mRWl2QVZ3L01lMTdhVmZmZEQvMVV3ZUpGZUVyaCtZbHQzMHErKzZEL0FLcTQrSkZlQXQvOHJFc3gvd0JLcSsrNkgvcXJnOFFJOE10LzhyRXMvd0RxMTN3LzJNUC9BRlZ4OFFKNEMyUHpDcy8rcmJlLzhERC9BTlZNUGlSWGhMaCtZTm1mK2xiZS93REF3LzhBVlRCNGtWNEMyUHpBc3EvOGM2OS80R0wvQUtxWStLRjRTMy9qK3cvNnQ5Ny9BTURGL3dCVk1mRkNlQm8rZmJFLzhlRjUvd0FCSC8xVXg4UUx3RnIvQUI3WWpwWVhuL0FSZjlWTWZFQ1BETHY4ZldCNjJGNS93RWYvQURYajRvVHdGMytQOVBBLzNndmYrQWovQU9xbVBpQlBBV3Y4ZjZkWGV3dnZuNmFmODE0K0lHUEFXLzhBSDJtbi9qeHZmK1JhZjgxNCtJRjhNdHA1NzBvazF0cnhLZU1hL3dBR09IakNPQXJqNTIwa24rNXV0LzhBaXIvbTdIeEFqaExYK050S0IyaXVmK1JYOXVIeFlvNFN2L3h4cFFHOE56L3lLL3R4OFNLZUVwWEwrWUYwTGlkVXNaREFWQXQzS2lvYXZ4RmhYZjRkeGxaeU1oRmgzbVR6TGN6YXBIYVFMUFoydHd2SzkxUmxWcGdCVUZZa3IvZU4vdncvREgreXVSakt5bVFvUEw3OWZMNlJlWjdlRFM3aHpjeVRIVEpKTFNXVnlyUWhWUHFsU3dQcUFtcGIvS3phWVp4RWFMcnMwSkdkaEZRM2ZrUVJ4aVR5NU56Q3J5UDZOWTdnVVBieHlabkJyOEtTRDBxZnlaQ2wwTHZ5L003UGRUUEFUcDd2U0Yyckd2VGJpUDJmMmNlT0NuRkpmYjNQazlkZStzSm8wc05uOVVNYksybnlBR1gxUXdQRUkzN0g3V0VaSXNUam1tRjNxSGswMjhpcHBqY3lQaHBwMG83K1BwNUx4WUk4T2FvZFc4aVZyK2p5UCszZEwvMVN3ZUxCQnh6UWtlbytTaE9oZlR5RkJtTEUyRXZSbUJUL0FIWDRZK0xCZkRtdnZOVThqTmJTckhZbm1WK0VDd2xHL3dEeUx3K0pCUGh6VmYwcDVCSnI5UzJyL3dBc0V2OEExVHg4U0NCam1rMWxkK1JrbXZ6ZWFWTEw2bDFJOXZJTEtZajBTRjRnVVVVb2VYdzVFemd5TU1pbTl6NUYvVGFTZm9pWVdQMVpsa1Q2blBUMXVhbFR4cC9KeStMRVRndkJrWGFqZGVTWkk3YjlINlRORktsMUE3dDlUblVla3NnTW9KSTNIRDluOXJFU3hxWTVLWjkrV3ZtZlF0TDh3YXd0anA3a1gwTnNMZDFpTnZ2SDZucUFHUlY4VUpwbEdmSkhvM2FlRWh6ZWxONTlwVC9jYktUM0JrUVpqZUtITTRDZzRQT1ppdkxxNE9teU42N0l5Z1RKc0ZqQ0dvNmRzZkZDUERrekd4dWpkV2NOendNWm1SWDlNN2xlUXJTb3lmTmlyQnhUcU1hVUYzUERTa3JTeHhwQmFMWVZXbHppcTNrY0t1NStPS0hjamdTN21mSEN0dEZ6NC9SaXJYUDU0cTdtZWxkc2FSYlJmRFMydDlVZHNJQ0xkNm1QQ3R0ZW9SaDRWdHdreDRVdi85UDBoOVlmTGFhVy9YZjVZZUZYZXUzamp3cTE2eitPTkpiRXJIdmg0VVc0enNvcXg0anhPdy9IQlNiUys4ODBhTFpzRXVOUWhSejBqRGhuTlA4QUpXcHhvTWVKSmJ2OHk5RGlEK2lKN2dKc1dWT0MxOEFYS2svUXVPekxkSjduODBkU2NjTE94amhjaXY3NXpKd1grWnVQQWY3R3VBa0x3bEo3dno3NW51V0JGNFlZaWZnU0JGUnBEVHNTQ3dUNmNqYVFFbnU3Kzl1V2RybTZsbGIvQUhkSzdzeXIva0lDZnRZQ1dRaWgxREx4VkVDc0JXS005RUg4Ny81V0tVTk5IR3dxUVhqSjYvdFRQL3pUL245bkJhMG9QYXFXZXJBT0JXNGxHd1VkUWkvNS93Q1ZnUXBmVkI4QlZBR3BTM2ovQUpSM2RzVXRmVklndTQ1UXFkejFNc2xmNi81OFZ4UXUrcGtsbExBTVJXZHgwVlIwUUgvUCtiRlFHMXRtcWhWZUxINFlFcDlsZjVpUDgvNWNVckd0VUFPMVlZanVlcGVTdjQ3L0FQRDRzVy9xUlBKRDl0L2luWWRGWCtVWVVnTmZWaVQ2b0ZHaytDQlQyWCtiK1A4QXdPQmFiTm9nSFNzVUhUeFovd0RNL3dEQllvcHY2aFVpSjkyZjk1Y0VlSFlmTHQvcXJpcTlMYXFjMTJlWThJdlpmSDliWUNrQlZFRU1kV1VmdTdjVUE4V0l3Mm1rUmJSTWdTSW40eis4bFB2WHA5K0FwUkhNc3ZKcU8wcjBqQkZhRHgrNFZ3VW0xZFhoWG0xQ3F4OVNOOTZWcFE1SGhaQW9xS1ZLaFF3TEVWNDlEU3VLYlJNY2pEcjlHQWhLdXM0NlV5QkNDdlYxUGhqU3Jnd0hoalNGMVZyMnhTM1FFMXhwV3lmQVkwcmk0NkhiQlMyNHYwMnhWeGNnMEF4VjNJbnh3SzN5YnJUZnZnVmNDZXBIWENxMG5zQnVNYlMyUTFCMXdxNmpkeGlyaHkzMnhWMVNOcWJuRkRSSkEzNmVPS3RxQ3kxcDF3clM0SjRqRkZCVGt1TFNJMGVRQnY1UWFuN2hpSWtvTkJEdnFRcCs2aUozcHlmNFI5MjV5WXhsanhJU2E1dXBLOG00QWI4VUZOdm1kOHNHTU1lSkR5VzZuZWxTdzJZN243emtxREVsREdJMHFkd2Rtd29JV0czYWxQRDdKOFI0WTJpbHYxWHdORlkxK25HMXBZMXF4UEluY2ZDZmxpbW0vcXJtcTE5eDc0MnROQzJOTisvNjhGb3ByNnN3NjlSMXdnclRUV3hJMk8zYkNTaW12cTdiRDd0OGJXbkxDd3FLVkpPNE9OcXU5SGVyRDR1bS9mQmEwdStyZzl1aHcybWtUYng4ZVlQdFdtQzFDS0RTclRpeCsvWS8yNEtETzF3bkpKREFIMzZmZlRIZ1R4S2JQcUZXRVYvY1JSdHNJbElZS1BhdE5zc0V5T1RVY1lKVVZ0YjVoUTZuSlU5bVVEOGVtUGpTN2d2Z2p2UkZ1dXYyNGI2dnFjNnEzWGhTbjRISUhOTHVTTUk3MFJiNm41bXQ1UkorbHBwT1A3RW9WMTZkMU9SR1VzdkNDTC94UjVvUFc4aTl2M0NZZkZLK0VIZjRuOHovQVBMWEY5TUMvd0JjSGlsUGdoci9BQlA1b3IvdlhGVC9BSXdML1hIeFNqd1IzdC80bTh6Zjh0VVIvd0NlQy8xeDhZcjRJNzJ2OFNlWnYrV3FFL09CZjRIRDR4WHdSM3RIekw1cHJ0ZFEvd0RJZ2Y4QU5XRHhpdmdqdlRteTFUVlpyV041YmxmVUkrSXJHb0IrK3VVUzFFbWNjSVZXdWIxbE5idHgvcWhCL3dBYTVIOHhMdlorREZVMEthZDVyOVpabm00U3FJK1pyeFVvRFFiRHZtZHBzaGxIZHhNMFFKVUUxNTVrdFR1ZUt0Y2poVnFweFZzRTRMVzMvOVQwVlJhN0E1YmJVMkR0aHREcTF4dFc2WUxWNVYrYy9tZlhOTVMzajBmVzRyYUs0U1NPZTJSRWtrREpTcDU4dVNIZnBUQVMxRStwNVczbkRXcGdndXI5NVNDU1E1TEFrYkFua3g2REkwV3ppVWg1cjFHa2dGeDlwdmpiaUFhVjZMUTdiWThQbW5qTGw4NGFseTVHWlFRdjdwZUk0ajNwWHJqd3A4UXIyOHo2Z3ZHTTNGVnJ5YzhSVmpUOXJmQndyNGhiWHpScVRpUWk1NHlOOE5lTzZyV253NzdZT0JmRThseDgwYWdzdkgxeHhpWDRGNENsVDNQeGI0OEhtbnhQSllubXJVV1ZVTnovQUhoNVRIZ0tuYXRLOHVuYkhnODBlSWU1eithZFRBbG1GeU9RSEZCd0ZBS2RoeXc4UG1ueEZoODAzWEtOQmREZ29MRUdNVlp0cWN2aTM4Y2VIelI0bmsxL2ltK0tQVzdYbkkzeHNFRlF0YVVIeGJiWUJEelh4VDNOanpYZTh1WHJwOEMwaVgwOWhYdlN1SGg4MERJMnZtaTlDSWh1RktrOHBTVTNKcFdoM3djQTcxT1U5eW9mTkYrVmFRWEsrbzVJcndGVlVEYmp2andwOFF0LzRvdWxrVWZXRjlPTVZVY0J1M1RmZkhnWHhUM05MNW92REdBYmhheU5XV2lDdEs5T3ZUSGhYeEd4NXB2Q1pwQmNKeUE0eERoc0JTdGV2amp3cjRpb25tRzZyRWh1VktLQ3grQVZMQ25YZjN4NFY4WHlYSjVndkpJMjQzSzg1WHAvZGpZVnBUcjRZT0ZIaUZ1WFh0YkU1RU1rREZDa1NoMUlIeGhtSjI1ZnlZQ3lFeXJ4M1htTXh4ajZ6YVVyeWFxdVNUMTMyOGNDbkl2Tjc1akhxbjYxYWNqdDlsOWhUdHRqdW54QXEvVy9NWWtYL1NiTUJGb3E4SktkdnB4M1h4Rm92UE0zcGdHN3RLTS9JL3U1S240c2QxOFFMamYrWlE4aCt0V2dKVUFmQklhVXJnVDRnY3VwZWFGOUpWdmJZQlZOQndrcDA3NzRyNHFGYnoxcStqMzBMYXUwTStueXplblBMRUhEeHEyL0pWUHc4Vi9hL3dBbkhodE1jMW1sK3MyTVZ4cjJvWHR4NWR1ZFp0N2owVFozVUJSazRMRUF3RlpVL2EveWN5TVU0Z2J0V1dFaWRranZkQmViVnRPbnR2S04vRllRbVUzMFB3Z3k4bHBHS2V0dnhiZk1qeGNiUWNXVlYxYlFQVzB1NmhzUEtPb3dYMGtiQzJtUEVCSEkyTlJNZW55d0hMalFNT1JGVzJqV3lXc0tTK1RkUWVkVVVTeWJmRTRVQmovZmR6ZzhiR3B4WlVKcE9oVFc4bW9IVVBLZW8zQ1RYTFNXUUcvcHdGUUFuOThPamNzZkV4cDhMSWpiZlRIVFVUSmIrVzcremcrcHp4TUhRdnltY3FZMkE5Ui9zZ044V0h4Y2FEaXlMTk4wZUlXZHZGZCtVZFNhNFNKRm5sb3g1U0tvRE4vZkQ3UndITGpUSEZsNmxCNmZvZDVEZWFnMTE1VjFLV0NXY1BZcDhYN3VMaUJ3L3Zkdmkzd2pMalFjV1Z1OTBLL2sxT3dsdC9LK3B4Mk1Sa043QjhROVFNbEUyOVg5bHNmRnhLTWVidlZkVDBhN2wwMjVpc2ZLdXFRWGJ4c0xlWDRnRmVtemYzeDZIRDR1SlJqemQ2S3R0S3Bhd0pONVQxWjUxalVUT2VXN2hRR1A5OTNPUUdURW53OHZlaExyUU5ZazB4SVYwUFV3djE5NVdnVG1rb3RpRHhYMUJKMk5QaDU1YkhOaEhOaWNlYTlpZzc3eXRxVGFaT2xuNWYxeVBVR1UraEs5eE1VUnV4STlZMS80SERMTGc2TW94ejlTbWNHbHpKREVzdmxiVm1rVkZFakF5R3JCUnlQOTkzT1YrSmhZbkhuNzBIbytsWDhVTnd1bytXOVhtbGE0bGVGbE1oNHdNUjZhSDk2UHNqSHhNVEx3ODNlcXc2THoxOHkzbmx6WGYwUDlXNHBid1NUUnVMbm5YbWFURDRlRzMyc2ljbUxvempETDFUVmRMMGxMelQ1Tk44dStZTGFTSzVWcnA3dDU1b1RCeFlNcGphYVFNZVJYOWpCeDQyUmhNaE50VExUemVqcDhFbHRKRWdaL3JDU1JLcERCaDhOUlhrQmdPYVBJTlp4ejVsRHd6ZVlJbVhpOXVhRFl0NmgrZmZLeUxUNHBDb3VwK1psVlR6dFJVL3l0andyNHBkK2xmTlB4bm5iSCtVY1c4SzQ4SlplTjVPL1NmbXY0YXZiZSt6NzRERW84WU5IVlBOWHBzZVZ0c2FEWi9sdGp3cDhacjYvNW9Kb2ZxM1RjVWJIaFNjdmtzaTFQek1YWDFtdHhHZXBVTVdyMUhXbTJTRUdKemVTSit2NnVXYWtzUjhBVVBXbnp3OENQRkxYMTdXUUYvZXdtbjJ2Z1A5Y0JndmlsbzZoclFyOGNOUjArQTlQdnhHTmZHTGY2UTFqa0t5UWhUL2tIcjkrUEF2aWxyOUlhengza2hxUHRFcWVuMzRlQkhpbHByL1dLbWtrUVA3SHdIK3VQQW54U3RiVU5YMlBxUThmMnZnUFg3OEhocjRwYS9TZXMwUHhRMXJ0OEI2ZmZoNEY4VXRuVTlYcVBpZ3AxSHd0MUhYdmc0RWVNMStrOWE0MTV3Vi9hK0J2NjRlQmZHOG0xMWpXMTVBTkJVZlpIRnY2NDhDK0tWemF6cnBLOFdoNDEzcXJmMXdjQytNMyttTmM2TVlPVmQvaGJwOStIZ1h4Vy93Qkw2NEswTUhUNGZoYit1UEFueFhmcG5XcURlR25mWnV2MzQ4QytLNGF6cmdxYXdWNm5adW1EdzE4WXJocit2MSsxRVIrelVNYS9mZzhJSjhjcWNtdWVaQTBaaml0blJmdGhpNjFQZ2FBNERpWHh5a3Q3K2RYbC9TN21XeDFhMnVSZlc3bU9jd1Job3VWSy9Bek9DZGprZkRMa1JuWVVQK2hnUEpIKytMNy9BSkZKL3dBMTRQRExMaWNQK2NnZkpIVXdYMy9JcFA4QW12SHd5dkUzL3dCREJlU1A5OFgxUCtNU2Y4MTRmREs4VHY4QW9ZSHlPVFgwTDcva1VuL05lRHd5dkVIcW5rL3pCWmE3NWNzOVdzdVl0YnBTMFlrQVZ3RllxYWdFOXhtSGtpUVd5RXJDZWN2RHd5dG1yYUVRTHZVVlA4OFRmZW1iTFNmUzRHcCt0T1BoOGN6UTB0YmVPRldpUU8rQkxYSVU2NDJob0VlT0JYLy8xZlJ1M3Q5MldOSzJxMTZZRmQ4UHZpcnZocnRpcnlQenRxSGt6U2RmdVJya2xuWlhGd3hsUTNLb3JPaDI1Z2tmRjB6R3lBMjNZeURza0k4Mi9sVi8xZE5MKytMK21WN3R0QmNQTlg1V09LRFU5TFB0V1A4QXBnM1RRY2ZNbjVYR24rNURUUHBNWDlNYks4SWNQTVg1V0hmOUphVi93VVdHMTRXajVoL0s3L3E0NlVLOStVV05wNEYzNmUvS3YvcTRhVi93VVdObEhDNzlOL2xaVDRkUTBvLzdLTEJhOERZMW44cktmNzNhVVQvclJZOFM4SzRhditWbGY5N3RKLzRLTERaWGhDNzlMZmxiWC9lM1NmbnloeHNvRVEyTlgvSzMvbHUwbi9nNGNiSzBIZnBmOHJEV3Q3cE8vaTBPQzE0UTEray95cnAvdmJwSUgrdkRodFBDSGZwTDhxRC9BTWZ1a2Y4QUJ3NGJSd2h2Ni84QWxWV3YxelNOdjh1SCt1TmxlRU5pL3dEeXBKcjljMGluK3ZEL0FGeEpLT0VOZlgveXFyL3ZacEZmOWVIK3VOcndobzZoK1ZmL0FDMmFTUDhBWncvMXh0ZUVOTmZmbFh3YmhlYVVUU253eVJWL1hpQ1ZsRVU4Ui94MWYyZDdkV2x1c01sckRjU3BDeDV0OEN1UXU0YmNVell3eEFoMThqdWlvZlB1cFB5SHBSSGwxMmY1ZU9XL2x3V0hFaWg1MDFkalgwSXVuUUNUK3VIOHNFOGE1Zk9lcEhiNnZIdHZXa25qWHh3SFRCSEV1UG5IVVNTZlFqOE5oSi9YQitWODFFM0R6ZnFXeDlHUGJZRGpKL1hIOHI1cnhwcDVWZUR6SHJjVmpxOXZHOXBSNVdVR1JEeUFBSHhFKytZK294Y0ViYjhGRXZWcmZ5eG90blppQzBtbmdnaVVySEdseTRDanNBS25NSzNNNUtkamRTRnpiWEJyYzI5QTdkT2FuN01nSCtWMy93QXZsaFNtQWxGRDc0b1hySWNWWEpQMklyZ1dtemNyVVZOQjc0clRSdjRsWUJtQUcvZkZhWFBmUTBEQnhVL0xBdExGMUZROUdJcDBCd0pwVlcvaEpweUgzNHJSV20vUWtnTUtBYjc0clRadm9odnlBcnYxR0MxcHFUVVl3aDNCTk45eGphMDZQVVl5Q0FSN2JqQ3RMMHVvdC9pQXJoV2wzcngxRldyWFlVM0pKNkFVd0pSMnI2Qk5hV2xuTmN5eVJYRnh6SmlSdUlSUUFRRDR2djhBRmhERXNROHkyc1duNkhmNmhiU2NycUpES09iY3d4cUsxSFUxR1d3dTJ1ZFU4d0hualdCVDl4Ym1uVDRaUDY1bmNEcjdhUG5iV0NCKzR0Njlmc3liL2pqd0l0bytkdGJxYVJXNHJ0L2R2dCtPUEFrRnkrZHRhb3RZb0hDOUtvLzhEZzRGdHNlZDlZQU5ZWUFEdWZoa0g4Y2VCZUpVajgrNmxVY283WTBIK1gvWEFZTTRtM3ArbjNIbFdUeXpvZDNmdlpRWGw1YnZKTUhsVldMR1p3dXp0eSt5TnN3akkzVG1DTWF0VUQrUzYvNzBXWC9JMlA4QTVxdzNKZUdIazRIeVl5bmpjV1RBYkFpVktiYmRtdyt0SEREeWJZK1RRQnl1TEpTVFFWbWpGVDRDcllDWkpFWXQ4UEtGUDcrenIveG1UL21yRDZrVkIxUEp4ci9wTm5Yb2FUSjEvd0NDeHVTZUdQa3RjK1RWb1d1N0pSMkpuUWZyYkc1THdoc2p5ZWFFWE5tUWU0bVFqL2lXTnlUd3g4bXlQS0ZhZldMT3ZnSmtyVC9nc2JrdkRGYVI1UUE1TmNXWVZkeVRNbFB4YkJja2NFZkoxUEo1M0U5bVFlNGxUcC93V1N1U0tqNU5WOG9BMEZ4Wmh2RDFrclQvQUlMQmNrOE1mSnBoNVBWYW00c3dPcEptUWY4QUcyTnlYaGo1TktmSnpEa3R6WnNPbFZuUS9xYkc1STRZdDA4bi93RExSYVZQUUdaS24vaHNmVXRSOG5jUEtWZjcrMHIvQU1aay93Q2FzZld2REh5YVgvQjUzK3NXWkhTdnJJZitOc2ZVaW9OY3ZKd0lCdUxJSHNETW40ZkZqNmsxRHlXdEo1TkEzdXJNQWY4QUZ5ZjgxWStwZUdMeXI4OTdUVGI3VE5IL0FFRTBOMHl6U21kTFdSSG9HUmVMTnhKKy9MTVBGZTZaY0lEeDBhQnJQVDZuTHQ3WmswMDhRY1BMK3M5UHFjbGZsL2JpbmlEWCtIOWFQU3psKzRmMXdVdkVIZjRmMXY4QTVZcGZ1dzB2RUgxSitTRTRYOHY5UHNaQ0Z2TFQxUlBiMUhOQTByc3ZJRHB5RzR6VzZrSGlic0IyUHZlZ2gvdnpIYjFYUldBMUMvRmVxd3QrREROanBENlhCMVAxQk91YTA2NWw3dERSWVV4U3RKSGppdE5jbDhjVnBvT0s0VmYvMXZSUTMzeWJTM2hWckZXaUs5ZW1CWHkxL3dBNVRSclA1MnRJMkFiMDlQam9HOTVITzJYQ05oeDRtcEY0Uk5wa2RTQUFEN1lQRGIrSW9qUjlNcGVjNnF5cHgvRnFkOEhDQVZNalNaelFyOVNtQVFFOFA1Uit6Q3hPVzhJYWJOcm9yT0dPd3QxTVNzV2lSdVZCMTRuL0FKcXlNUUdVcEcwTUxXM2JVZzNwcjhLb0FPSTdzY2tJaEhFYVU3MkszR255a0l2TGlRQ0ZBcDhaOXNKaUVSa2JacitUUDVkNk41bHNkU3VyNktTVm9aMGhoQ01GSDJlUjZnK09ESHA0UzVzczJXVWFwbTNucjhsZksyamVUYjNWMFNSWjdjd21OWGRTdnh6SWhCSEh3YkkrQkFIWmdNdVRhMlp3NlBwQ1FMR3RqYmNWVUt2N21Qb1BveXdBTmM1RzFIVHRMMHI2enFCTmxiMCtzQVU5R1B0RW50aElER0pOTWIvTnpUdE1oL0w3VnBZck9DT1VDTGk2UklyQ3NxOUNCWElTcWltSlBGSDN2bVBNTjJiTWZ5eHNyZTQ4NWFHc3NTU285eDhhT29aU0FyR2hCcUQweTJBRFZNODMwc3VoNkpYL0FJNTFwN2Z1SXY4QW1uTWtBT0RaUzNROUcwYzZhamZVTFk4cEpqVXd4ZjcrZi9KdzBFQWxLdGEwYlNXODYrV2tGbGJoQ3Q4enFJb3dEU0ZhVkFYZWxjRXdLWll6dVdTL29IUXlQK09kYS9QMEl2OEFtbkhaQnRML0FDNW8yamZvc04rajdVMW51ZHpCR1RUNnhJQjFYQlFUWm9NRy9QalRkTWg4djZXYmUwaGdkcnR3V2lqUkNSNlIyUEVESWtBczhjaUpQVVB5NnNMTmZJMmdnUVJEL1FvU2ZnWGNsYWs5TytWMm1lNVlEK2U4TUVkL293alJFckZPVHhvbGZpVHd6SXdjbXJxOHlRa2Z0Q3ZzNXk5a3JyTnR2eC80TTRvVkZsUW1uSlFmK01oeFN2RGRkeC95TU9CVXM4dzNVMXZaTFBDL0Y0cEFRUTVOZGlLRVpqNm1OeGJjQklraGJUemRWQVhuS04wSUpJcCtPYWlXRXV6RTJWNjUrWlExWHk1WStsZHRIcmxsTjZVc2tUc3JTMjdLYU1lSkZmaUM4djhBSytMTXJUUTMzYU04dHRrcmg4ejY5SUFScUYxU20vN3lUL21yTS93NDl6aDhjdTlXVHpKci9iVUxyNWVwSi96Vmg4T1BjeDhTU3crYk5hVWtmcEs1cXV4bzhoMytoc0hoeDdrK0xMdlpoK1dQbkhRL3J1cGY0dDFSRmk5S1A2bUw2UnFjaXpjK0hJbnRTdVltb2lBUlFjakRPK2IwTmZNbjVTa2N2cjFnYTk2bittWTlOdGp2YkhtWDhvbTJPb2FkNEVjamp3K1NiODF3OHgvazZTRk9vNmJ5N0x5Mys3R3ZKYlhqWC95aEZTTC9BRTRlOVNQNFkxNUxmbXZYWC95aUZmOEFUOU9OZXBxZjZZREh5VzNEekwrVFhMaWRUMHNPUDJTNHI5eHdjQjdrMnUveEgrVHhGZjBucGxQZHhqd0h1Vy9OMzZkL0tDdGYwaHBuME9NZUE5eTM1dC80ai9LSHRxV21tbXhwSldsTzJBeFBjbmlSTm4rWWY1UGFKTitrbTFLeEQyaXRKR2tSNVNzd1g3TWFucTU3WlVRVHlaZ3ZOZk1ubk80OCthbCttOVN2MHQ3YUs0aGowalJFWTE0R1pkM0hlbysxWDdXWkdDQjRnMVpjZzRTQXlUenpwZGpIb0Uwa01DUk9raWtNaWhUdFdvcU16ekVPdWhJdk1pU2Q2LzhBRDRiUTd3LzVyeVFGb0pBM0xpQ0trZ2dlUEk0VGpsM05Renc3dzZvQUcvWC9BQzhnMm9yVEFyYWhhQmdHUXp4QmxMY2dRWEhidmhnTjBUNVBUUDBmcDViZTFnb1ArSzAvcG1TUUhHc3ZHckcwdG9QemRrQ1JxcXg2cW9qVUFVVUZqc0IyR1kwWWppY3ljandQZm8waE5DVlg3aGxoYVJMWmpXaktpRFVGQUFwcVY2ZGdPODdIK09XUjVOVXVhUi9tSXFHUHk4eEFQSFdMYzFvUGZCTG16Z1R3eTl6TFNxVk5WSDNZWEh0S2RBV1BscW80ai9qbzNGUlFkd2gvamhwbEk3c1kvT1dDTi9MTm9TbzJ2QjFBN3h0bGVRQ3c1T0NSM2VnZVM3ZTNieWRvamNGSitvMi9ZZjc3R01odTFoMGRwQVBPVXc0TDhXbXg5aCt6Y1A4QTF4QlNlaUcvTUcwaFBrdlcxNEwvQUx5U0hvT3dyakxremhzVUw1VVdOdkxPa25pTjdPSHQva0RMU0hIYVdHUC9BQlhMOEkrTFQ0OTZmeXp2L1hBQWs5RVA1N3Q0bThtYXdPQS8zbVk5QjJJT1FrTm0zRWZVRXAvSmUzaWZ5YXc0RDRidVh0N0tjSWlBR09RM01zaTh4VzBTUzZPM0VWR29SaWxCKzFISVA0NUlEZGhQNlNtSG9wVWZDUHVHSlJScEtmTFVNWTAxMTRnY0xxNlhvUDhBbG9mRlR6SysraWpIbURSRHhHN1hTMUlIZUd2L0FCcmdXWEw0cDIwRVJSZ1VYY0VkQjRaQThteVBNUEdmSzNrT1RVZElTNVNlT05mVWtVS3lrbjRXSTdITVNlWVFOVTVveEdTY0Q4c3BhLzcxeEQvWW4rdVEvTkR1Wi9seXYvNVZpOUttOGovNEEvMXdmbWgzSi9MbnZiLzVWak1PbDFIVC9VUDljZnpRN2tmbHozdGo4c1orcHVvLytCUDljZnpRN2tqVG52Wlo1RzB1NjhxL1hPSmp1dnJmQ3U1VGo2ZkwyYitiTWJOUGpiY09NeE5zcUhtaTlEQS9WWTl2K0xEL0FNMDVSNGJrY1RJZkxGdzF4Y3pUT29ScFlJbUtxYWdIa3c2a0RNelM3Q25GMUc1QlpEVE11MmltcTc0TFNBMVVZMm1taVJqeElwd2JmcHRodGFmLzErMWVVdk0ybTZ4WWNiUy9OL05hMFM1bGFKb1dxYThlU3NPdEIyeG9qbWcwZDArRW1IaVk4TFlZWThTOExqSnRqeEk0WHovK2EvbGJXdk5QbVJ0UTA2M2pVSWl3SDYweTFLeDE2Y2EvdFZ4am5BS0JoUE1NSEg1UitiQ0pmVWdzaWVOSS9pSW8xUjE5cVZ3blVqelplRVZHTDhuL0FEZXR5anRiMkxSQXB6Q3lNQ1ZEVk5OL0RwakxVUlFNSjZxOC93Q1Zmbk5iY3BiMnRrU1k1SXdzejhsVU9wU2czYjlsdnRmelpIOHhGZ01CYmwvS2Z6VVZ0Vmp0YlFlbkNpVGNwRysyQnZ4b2ZzNUlad0V5d20xQWZrLzV0NVNTUGFXWHJNVkNFU1BRSUFhMTMrMXlPRDh5RjhFcWJmazM1c2UzZUI3S3lJS01GcE0vMnFmQlUxNmN2dFpMOHlFK0NXY2ZsaDVTMW55cG85eGFYdGl2MW1hNE0xYk9ZZW1WNEtvcjZqY3VXeHljZFVBaVdFbWs2ODgyL21IWHZLMTNvOW5ZL3Zaekh4K3N5SUkvM2NpdjhYQTgvd0JuSDh6RmdjRXJDcEJENWdGckdKYk9rNFFlb3FzaFhuVGZpU3dOTXJHb0NaWUNWSzJ0TmVpa3VuYTBQNzJYMUU0bVBjY1ZYZXI5ZHNsK1lGc2Z5eHBicVZocWw5cDhsbmQ2TkRmUVNFRnJlNDRNaEFOZDZTRHBUbGtjbWV4c3p4NENEdXdUenArVzE5NWhncHAzbHF3dGI2MUVjQ3pSeWZWNGxDQUV4bEkySExpclU1WmpSbWVya21LQzhwZmxONXYwWHpCcHQ4K24yaVcxcVE4enBLN3lCakdRM0VNMUQ4VGJWeThaaFRYTEdTOVZhSFZoUWkzSkk5bC81cXl3YWdORXRPVUhwdW5hM2IyU1F5VzFKRkxraE9KRldjdDNid09IOHpGaitXa2dyelJ2TU0zbUhTdFJTeURSV1VkeXNqRmxEcVpsVlY0am5SdW54VnhPcEZVbUdua0xUWkl0YzVVTm8zRUhZbmhYL2lXUi9NUlg4dEpBYWRwM21TMXMwZ2F5QUllVm00dXRQamxkeDFhdlJoWEpEVVJVNmFTUS9tTDVSOHhlWTlLdGJkYklFMjBqeXVTNmdoVEd3cWxHM2JseCsxK3pnL01qa3lqZ0k1b1h5eitkUGxmU2RBMC9TcnF6dnpkMkVDVzF4NmNLc3ZxUkRpOUR6M0hJWlp3RXRjZ3hmOHgvUE9sK2JMMndsMDZHNWhTMGlrV1Q2ekdFcXpzQ09OR2JzTXlNSUk1dFJqdXhOV1B2L3dBQ011UXFBdC9sVS8xQmlsdXJkK1gvQUFBeFZlcnVQc2x2K0F4VnVUUXRWMTlKYkd3dEh2YmtMNmdoWGloUEUvekU1ajV5QU4yM0VEYTdSdnljODBIVW9XMWp5N2VKcHl1UHJQcHpSOHZUb2FsYUJqOE5Nd0RJVTVnQ2IrWTR2eWtnMENDRzMwdTRzTHhoY213bkR5dElaRWJnd21ETDhTK29QaDVmczRjVXBrN0Jqa0FwZ2R0SlJSVUQvZ1RteWk0WlIwVWdQWWY4Q2NraW51SDVWUW8vazYyTkJ2SmNmOG5teWlVbUJHN3pmODk0a0htdTJYYWhzVlAvQUE3NE9ZM2JJYlBYOUtVZm9teW91d3Q0ZTNiMDF5UWFTbzZmRW4rbW5pUDk2WnV3OFJrbUxIZFFWUDhBbFplak1GQXBwMTFYWWZ6REl5M0xaSDZTeUhXRkIwZS9xQnZhemR2OGc0a01BbU1kdW5veDBVQUJWN2UyUjRrMDhobGhpSDU1TVNvcFh3SC9BQ3lERFF0bVNlQjZucWNFYjZSZC91MXI2RXZZZjc3T0pheHlSTU1FWnRvdmhIMkY2Z2Z5akJ4SklMSHZLaVF4MzNtQWxBZU9yeWtyUWIvdW9qVEpFV0U4aUxlWC9teW11MytvdzN1cXRFc1BxU3hXZGxBU3lSSWhGU1NRdFhiOXBzeEk0cWN2eCtMa3pEeTlwV29TZVM0VGIyTTh4YWRKSXpIRXpjaEhNak54TktHZ0dUaGtBTFZLRWl6KzdlejFTMGtodmJPOWl0UTZ0SUhoTVJJRmR2anBzZkhJNU0xY216RmdQVjV4NWhzL0xGc0kyMGE5dUxsblB4cExIR1FvL3dCWktmUnRrOGVRbm9qSkNJUzdUZml2b3dSVVVPeFNuUWVPYkRTQUdkT2o3WU5ZUGl6clRmTFZyZjhBbHJWZFRra2RaYkpXNFJBTHhhaWN2aXFLOTh6TlJuTVppRmJTZEpvOUdNbUtXUzZPTjVwYU81aFNwclVEcXVhcVEzZXR4L1NFZGJYSzI4OFV6cTdKRklraktpVlloV0JQSDMyd0EwV1VoWVplUFAyamtrL1ZyMm4vQUJnLzV1eTN4QTArREpqNThnZWR2OFpEek5IbzhwMDY4dUl0UXRWTHhMSzhESGtDVkwvQ3pMK3kyWW8xRVFYTE9DUmk5RVc3MTlSL3lqMTcvd0FIYmY4QVZYTERxb0ZnTk5KTExDRHpMYnRlZXA1ZnV5Sjd1ZTRUaTl1YUxLM0lBL3ZPdmppTlhDa1Mwc3lVdTgxNko1czFlTFRrdHRCdVVhenZvYnB6SkpiaXFSVnFCU1EvRnZnT3FnbU9sa0xUd2p6RVNUK2dMemM5NUxiL0FLcTVMODNCcU9pbWc5TXNmTTlySmZNK2czSkYxZFBjUjBsdHRsZFVXaC9lZGFyaithaWs2T2FXZWUvTEhtN3pGbzBWamFhTkxGTEhPc3ZPYVdBTFFLd0krRjJQN1dST3BpMjQ5TktMSnZMYStZdE04dmFkcGsraFhEejJkdkhESTZUV3hVbEJTb3JJRFRJblV4WDh0SkVXcWFuK24zMU84MDY0dExZV1gxWlJXS1Z5L3FtVGxSSElDcXZpMlJucXdPVElhVTN1MzVwdDdqVS9MVjdZNmRaM1Z4ZFhsdThTODFpaWpCZGFLeFpwUHMvNm9iSXgxZ1BNTm41V3VxVWFEWStaOU8wU3hzSjlEbmFhMWhTSjJTYTNLa3FLVkZaQm1SK2JnNHY1U2R0bXo4ei9BS2FGK05DdVBTK3EvVnl2clczTGw2bk92OTVTbE1INXVDVHBKN0tldjJmbWpVZEV2dFBpMEM0V1c2aGVKSGVhMjRnc0tBbWtoT0oxVUN5aHBwQTJsdjVmNkI1eDhzNkhKcDkzb2swOGp6dE1IaG10K0lES29wOFRxYS9EZy9OUnFrSFN5TWlVMjFXRHpUZS9VL1QwQzRVMjExSGNOeW10dDFRTUNCU1RyOFdJMVVWT2xsU0s5WHpJUCttZXV2OEFrZGEvOVZNa2RYQkg1U2FDMHEzODBXY0VzVW5sNjRjeVhFOHk4WnJiN01zaGNBMWs2aXVQNXVDUHlrN1hYbHQ1cG12OU51by9MODRXeWtrZVFOUGJWS3ZFMGRCKzg4V3lQNXVOcE9rbFNZL1hmTW5meTdjbngvZjJ2L1ZUQWRWRkkwMG5ubHZvWG5ieTE1VzFoNzVaTE5ES2tsaTZQRTRqNXY4QUgwcjlxdVlzNVJuSnpJZ3hCWWRxbm03emZiMnBsajFpNDVjZ0Q5am9mOWpsM2d4YW9aNUVyby9OWG05N05aZjB6Y2NtVGwxVHJUL1Z3SERFTWZIbGJJL01PdStZSTlOMENhRFVwNFh1YkJKTGhrS2oxSk5xdTIzMnNxeHdCSmJja3lJaWxrSG1EekdmSU9vM2cxU2I5SXdhZ2tTWExjV1pZaXEvQnVLVTN3SEdPS21lT1pJSldmbDVmZVovTU1WNWNhdDVvbXRMZUV0SEVzU3hQTHpVQTgyVDRmM1FyVHI4VFpYbEFpMlJsWlpVdWszcVNxSS9ObDVlRWlwajlIMGgxNmMxWnhsUEVHYjF2eWZHMEVpeEZpNUZwSHlaalZpZVIzSlB6ekkwMHViajVoeVpPemdmYUlIenpLdHJwUmU5c296UjU0MVB1d0dDMDAwdDdhTUtyT2hXdlVNTWJDMHRmVWJGUHRYRVkvMlF5SmtHUWlvblhkTEJBOWNHdmNBMC9WZzhRSjhNdi8vUW1INUdTckxaNjB5c3BLWEVjYjhUV2g0RTBQZ2Q4bmxObGpFVkI2WkxkUVE4UFdsV1AxR0NSODJDOG1QUlJYdmxkSXRWNWI0YVczRjlzQzJ3TXNESy9qeWI5WnpIUE55SThsQzVsbEVMbUFLWnVKOVBsWGp5cHR5cHZUSXNxWHdzL3BMNm9BZmlPZE54V205TVdKQzMxTGo2eUFGUTIzRGMxUFBuWHc2Y2FZcEFWV2MwYmlCeXA4SWJwWENxeTJrbk1DRzVWVm00Z3lpTWtyWC9BQ2EvRlRBcnJpUzRBUTI2bzVad0pPWklBVDlvaWdQeGVHS3EzTWJWMnA5MktxU1MzSDFtVU1xZlZ3cSttNEo1RS90VkhUNVlyUzZhV1FReUdBS1pncE1hdlVLV3B0V205TU5xdVNSekVwa0FWNkFzRjNBTk44VVVzZVc1OVVDTlVNSHBrbHlUeTUxMkZQNWFlK0JOSmQ1ZSt2QzJ1VHFEUmZXemN5bVQwUVFuWURqeTM2WXBUSzNsdVdWaE9pb1F6Y09CNUFwWDRTYWdiMCsxaHRCYnVaSjB0M2EyVlpKZ1AzYXVTcWsxN2tBbjhNYlVMeEpRYjdWNjRvS21KTGo2MDY4RityY0FVY044WmFwNUFpbEtkS2I0RkNvemtLM0hkd0R4VTdBbnRYRzFwcTNsa2FCRE9nU1VxRElxbmtvYW05RFFWR0ZWdDQ0RmpPUUsvQTIvMFlSelJMaytPcHBnZFN1elVDczhwKzBlN25OeGpPenJaQkV4eWp4WDU4amx0c0Nyb3dQUXJ0MzVuQ3FvcEZlcS93REJuRlZRTUtqNGwvNE00cXVEQTkxOXZqT0ZXZGZrN3Y1cWxOUWFXN2RHSjZzdmptRHJlUWNyUzh5OXlkZ0ltM29hWnJuTGZPbjUzV2FTM2RuZlJRQzJnUm1oQzlESTBsWkhjcU4wWU1PTEE1bDZZOUdqT0huVUxnVTZmOE5tY0M0cENMam1BK1h6T1R0Rk1sMEw4elBOV2c2Y21uV0NXYjJzVE8wWmxTUXYrOFl1YWtNQjFPVXl4cEZNcDhzK1g3MzgwVXZkWjFXKytvWE5veVdTTFp4amdZd3ZxVlBxRW5sVjh4OGt6RTAzUXgyOVRnOHEzRVZ0SEF0NVVSb3FCaW01Q2dDdlgyeVBqbGZ5NGFnOHBUeCtyUzg1ZXE3U0dxOU9YWWI0K09VZmx4M29LNC9MeWFiV0xmVkJxYkpKYnd2QUloR0NoRWhxV05UV3VQakZQZ2JWYUxtOGozVTBFa1Rha1FzcU1qRVI3Z01LVkh4WW5PV0kwdzcwYkg1VXVnS2ZYYWlnSDkzNGY3TEtqbUxNYWNKSC93QXFpUStaRzE5OVdsOWRpRzlBUnJ3RkkvVG9EWGwwM3lRMUJaZUFLcFBwZkpza3RzOEJ2U0ZrUmtMQktrY2w0MTY5c1RxQ3hHbUNvbmxLVkVWQmVmWkFGU3ZXbTNqa2ZIS2Z5NDcwQmJmbHZMQkxlUEhxai82Yk8xeXdNWVBGbVZWb3RDUGgrRHZoL05GWmFVSHF2dGZ5UjB2V3RhdEpkWXZwYnF4dG1rbGtzd3Fvc25LbndzMVMzSEtwYW1SWngwOFl2UlBORm5hMmE2ZmEyc0t3VzBFTEpGREdBcUtxa1VBQXlIVnU1TVQxM2lOS3VtNDFvaE5CMTI4TWJWNEpvV2t0cTkzTmJSczRhTzNtdUZDVmN0NlFxRnBWZVBLdjJ2MmMySWxRZGFSY2s5SDViYXlIQ2pVckNPNlNUNnY2UXVqekYyVTlUNnQ5bisrOU04K1A4dVNobW8yR0dYU2ljYWtMQ3ZENWQvTUJ0R2JUTGZWNHFYU3d5WGVrSkxHdHlzZDAzQ041U0l3M0ZqdDl2N09Tbm5NcFdXT0xSUWhBeGlLQlFTK1E3VzIwNzZ3K3N3UDZkekphT2JibFBFSGlSV0tobG8zTUU4WFhqOE9XWVJ4azAwNnpNTUVRU3hpR1lPZ0kyOWk1eXFRb3QrTTJBVWZBVklHNDZmem5LWnQwZWI2SWdsUTZSb3RTQlhUTFh2OEE4VjVnM3U3QURadmxGVHFQd3dyU0ZTS1ZicWFUNndHamZqd2hOS0xRVU5ENzQyZ2hFK3JHS1ZJSDBqRmFiOVdJaW9aZnZHQmFRZ2ptRjFMTjlZRFJTQUJZVFNpa2RTRC9BSldHMUlWMW1qcFFrRDZSZ3RpdkVzUkgybCs4WWJaVWc3MkpuazlaTGdxaXh1clFBZ3EzSWRUN2p0Z3RRRlBScitLNjB1Mm40dEdySUFGa0hCdmgrR3ZFNzBOS3IvazRRV0pHNk85U0E3aDErOFkybWtQZHh0SzBMUjNIcENOdVRLcFdqaWxPSnIyd2NTMHFyS0ZGR1pUN2dqQ0Noc1R3SDl0ZnZHQktuZUtzOXM4TWR4NkR1S0NWR0hKZmNZcGRISUVRQjVWY2dVSnFLbkZpdk54Q1I5dFFmY2pDcWplaGJpM2FLTzVFTE5Ta2lNdklVTmRzRnNnRzQ1RlZmaWtScWQrUTN4c0lZaCtiMTBpZmw1cThrYnEwa2FJd1dvUFNSZkRKd082YTJMNWJmVjd1NnQzV1hkQ3dOQW8ycDc1bndsYmhIR0FVeXQ5WWdXelNJeFNGZ25IWUNuVDU0UzFjRzdJL090N012bDd5bEpDenFIc1NEU243UER4eWpGOVJjaVE5S3BvbDJXL0xUWEhsRHNZNzJGbTZGank0REJJK3NKeGpZcWY1V0lrc3VzQS9BR2liN1hZSGZ0OHNocUF5eDgzcHVoS2hoUmdDb2JjQmhRajVqTVZ2WjRtdU5hdWt0cXc1TkFFZDl2aG9hOURrc1ZpMk00M1NCdTliMUM0WXViZzc5Q0FBZndHV21TaUlROFYxTzBvWnBXSlBYYzlNRnBwak9pM04yM21DVVN1N29seEtGcVdJQzhUVDIyd3NUelpiNjdEdjJ3RXNxWEpPZUozL0FHVCtyRWNrdi8vUlpaYWpCYnlzK25YUXR6SXhKYTNrOVBrVk5DVHdJNUVaWHV5QkZKeEQ1dzgwUWxTbW92S0ZQd2laVW1GZjlrcFA0NGVJcVlwdmIvbWY1aGlVZXZEYlhBNy9BQXRHZnZVa2Y4TGg0MEdBWnQ1Vzh4dnIybVMzYlc0dGpHNWo0aCtZTkZCcURSZkhEeE1aUXJkSWR6VTA2bk1ZODI2UEpTSW8xRDg4REplU0I4K3d4UlRxQ3UzWEVKWGNUM0czdU1KQ2hvTDFDNEtSVHFBSGZxTVVydUo4RFRDdE5JdEcyRzVGY0N1S2Jrc092VEZWeXFlTkFDUmlyVk42ZDhWUXVtZ21PNVlqWTNNMi93QW1waVZSYXFld3JURlhGZkViKytLRnlxM2dkKytKVnBSdWFEcmlyWlVkd2ZiR2xiSEZRQURzT2d4S3FPb2NmMGZjdDRSdFQ3c1luZGpMaytOblpqZTNKMzNta1BRZnpuTjFEazYrU0tpTGJmYUgwREpzQ2lrTFVwOFgzREN4VmxadW81ZTJ3eVFWY0dmL0FDdHZZWUZWQVhJL2ErNFkyck92eWZEL0FPSnBpYTdXNTZnRDlzZUdZV3RPd2NyUzlYdGtwUG9OdDJPYTRGelhobjU5OGZSMDVxa056QU81QXB4WTlPbVplbTV1UG5lUkkzdi9BTU5tYzRwVjFrUFkvd0REWkpXcEpqVGMvTDRzQlE5dy93Q2NlSkQvQUlkMVkxM042dmV2KzZsekIxSE55c1hKNjByaW1VdGpyZUwwbEtoMmVwTFZjbGlPUnJUZnQ0WXF2YVBsSWo4bUJTdndnMFUxL21IZkZWY2dNaEJKRlJTbzY0Q1VOd2owNDFqQkxCUUFHWTFZMDhUM3lCWkF0bGYzd2w1dFVLVjQxK0hlaHJ4OGNESmM4bktNclVnRVVxTmlQa2NWV1J0NmNheDhpL0FCZVRHckdtMVNUMU9LdG8zR1pwQkkzeEFEZ1Q4SXBYb08zWGZJa0pDS2cxeTRzeURiUkxMTXhDSUhORjM3azlhREsyU2FlYk5NUTJsckxkU05QY3lNUTBsU29BNDE0b29ORlhKZ01TV0Y2eHAwQ1dNekpYNFJVQXMzWS9QSmhpWGhlaWF0ZDZWZVMzTnJJa2NyUXlRVmxpTHJ4a29HMlVydlRmTmdSczRBTkZHdDV5MWxidHJ6MTdjenZxQzZ4eCtyeUJmckt3aTM0L2EreHdIL0FEZGdwa1pML3dESFd0dkJHR2x0UHJrSHBpQy9Oa2ZyQUVMYzQvajVVK0Q3SXF2MmNlRlBHb2FwNXUxZlVvMHR6SloyTnNzank4TGEwTVFhV1VmdkpYQVp2alBqbCtITExHYkhWdzlYcFlad0JMbEVwSGJxeUlCVW1uZmlNZ1RlN2RHQWlLQ1lRZXBUOXIvZ1JsTTJ5UE43dDVTdExlZnlMb0R6UmlTUXBkQXU0Qlk4YmhnS2srQTZaaEVidWJBN0k4NlhabnBFbi9BakZPNjM5RjIxYUNCVDhsR05Jc3VPbVd3Mk1Dai9BR0l4cGJMZjZNdDZmN3pyL3dBQ01OTGEzOUcyaC8zUXAvMkl4cGJjZE10QjFnVUQzVVkwdkVYZm91ME80dDFwL3FqQlM4UmFiVGJVVnBBZ0lyK3lLamJHbHNxTm5wdHNiRzNab0ZxWTBKSlVkMUdHbHRWR21XcEcwQ2Y4Q1A2WTB0dG5UTFhiOXdnLzJJL3BncEMwNmJiQVZNQ2Y4Q1A2WWVGTnVHbTJoNlFJZjlpTWVGRnRIVGJUcDZDVjhPSXdVbTJqcHRvS2Z1RTMvd0FrZjB3MGkxdzArelBTRlBvVVkwcnYwYmEvNzRUL0FJRVlnSnR4MCsxSCs2RTIvd0FrWTBFTUwvTmVQUklQSzdSWDA2YWZiM3NuMWMzUEVHaFpTMndwL2s0WWpmWklHenhSZkx2a1M1OU8zL3hPR2RpRWpWSTFCSlk3ZEJtU01zbkhHTUk2ZlFQSjJtVFBZWFhtWXdUVzU0UEUwU2xsMnJRL0NjZkdrUW53QmFhNnZhK1VYOHZhSWsrdkczc1lvcElyTzQ0QnZYVlNGWWtGVFRpUmxjSmtGSmhZcEF0YWVYYmZ5QnI5dm9lcG5VbDV3U3pNVks4RzlSUUIwWHFGdzJUSUpqRUFGTC95cDJ2ZFdScWIyN0hiL1VZNUxVQmhpK3A2ZnBiSGl0Y3hIS0tiU3ZlK21xMmRySmR6SGIwb2hVMDhUN1pPTEZEeFdQbmViajZmbDJaVllBTjZrc1NjZkhxZDhiQzI3OUdlZDZNcGhzYldWZHYzdHlIb1FEV29RVjJPRkZxVVBsN3pjc25OdFQwNkZXSEowaWpta2F0TnlHSnA5cXY3T1NRYlJzZWhhd3dRUzYwT1E2dEZiamZhbjdiRWRlbU5CTzZuZTZUTGFUV3JqVWJtVDZ4TjZaU2tRUmVTMCt6eHJ0MSszaEN2LzlLSlI2VGZ4UGJlcEFUNkF1aTVGRDhVek1WcDcvRmlKQnJNVDlpR0VWN2JXUUhHV0tXT3dLQ25LdnJWQkFGT3I0ZGttMHhndjc0YW1zSHJPWWpORkdWYmNjZlJabjYrTEFaR1FGTW9rMjl5L0xDZzh1c1IrMWN2K0FVWkdMTEx5WUQ1Uzh2NkJxRWVzMzJxVzBjOHR6ckdvY1paZHlJMG5NYXFDVHNxOGVnek40QTRJa2VFYm92eWRaZVhvalBkYVJJaFc0TW5PSktIZ3F5c0Y2VmJ0dHl6RDFFS2N6VHlKRzdKYTdlL2ptTTVDUWZtRGNOQjVJMWlkV282VzVJM0kvYUhjWlBHTGsxNXBWSFo1aCtVbXQzRjc1eWloa2pSRlNDWnlWNTEyQkg3VE1NdjFHTUFiTmVta1NUYXIrZmwvZDIrdTZZTGVhU1AvUTVIWUk3S0QrOThBZmJEcDRBamRyelRJTE9QeWVta2w4and6U3VYZVNlZHFzZVJBTGRLbnd5bk1QVzVZK2dQRWRNMUhVNVBOTnJFYnFZeHkzNmdxWkhJb2JoZHV2Z2N5NVFBZzRlR1o0dzllL1B2VWJpdzhrTFBieU5ISWJ5SmVTTVZOQ0hKRlJtRmpHN2ZtSlk5L3dBNDk2dmQ2bGNhczl6SzBnaWhoVk9URnR5N1ZPL3l4ekFCbGl2aE5wUCtaK3FhaEY1KzFCWTdtV09CQkN2RU93VVZpV3RBRFFaa1l3T0Z4cHpJTDArU2VWUHlsZTREdDZxNk9YOVdwNWN2UUpyeTYxekdQTnk4aDJlWitTdFZ2Wi96Y3NyUnJ1VXdScFZvUzdGV1AxU3BMQ3RQdGI0eUd6VmhKTXltMy9PUldvMzlvMmdHMHVaTGZsOVk1K2s3SlduQ2xlSkZjTWVUSExNZ3A5K1FOM2MzbmsyNG51Wm51SkRmU0tyeXNXTkZqajJxY2pQWXQwQ1RBUEhkZjgyNjlINTIxSzFpdW5XQVgwcUJTeE5CNnBGQnZsM0NLYVl6TnZlZnphdnA3RHlIY1hNVEZYam10Z0NDUjFrQUlxS2RjcXhDeTJhaVJBMllmK1NldTNlcGE5ZUpjU0ZoSGFrZ1ZKRlRJdmlUbG1VVTE2ZVJrRGIyVUVVeW0zSUNHMUlrYVpkZjhZemlCdWlYSjhxcGZhRkZJVmswV09adVRlcE0wamprYW5mTmdMcDEwdWFGdlo5UGx1Z2JPMlMyaFZBQ2daalZpU2FrdFhNakVUMVlrTkx3QS9ZKzg1YXhJVkZLMXBSUHZQWENFTGd5N2ZacC9ySENxb3JMMStHbnpPS3JHMW0vMHU4dHA3RzRlMmRtWlhNTWpLV1hqMFBFamF1WStlSUkzYk1VaUxJWkJwSG5MekpmYXJZVzBtbzNRamU1UU1WbWszWGVxbmZjSE1HV0lCeWNlWWtwditlOG9hMzA4R3ZNVE5VallVQ3NCazlOelpaM2tha25lcDI5eG1hNHhDc0dOQjErVlJrMEl5RFJ0V3VyY1hGdkFYaGF0SDVvT2hvZGpsRXN3QnBiZTEva0pZWGxub09wUlhLY0drdkZZQ29iYjBnTzJZdVdWbHlzWEpPckQ4M05CdXRiaTBkTFM1RnhKTUxkWGIwK0hJdHdyOXF1UU1Tb3lSSnBPUE9YNWdhVjVTRm9iNkNhWVhucWVtWUFwcDZmR3RlVEwxNVl4aVNzcGlQTkhlWFBOdGpyK2dIVzdTS1dPMkJsQmprNDgvM1AydnNramZ0dmdJbzB5aVFSYVNlWFB6ZjBEWHRZdGRMdGJTNmpudXVYcHZLSStJNG9YTmVMRTlCa3BZeUJiQ09RRTBqdk5uNWw2TDVYdjRMRy9pbWVTNGo5VkhqNGNRT1JYY3N3UFVaQVFKWm1RQjNUS0R6WllUZVZ2OFNLa24xTDBXdVBUUEhueFFsVDM0OXZISThKdW1mRUVxOHJmbWRvbm1YVTIwNnl0NTRwa2llWXRMdzRjVUtnajRXWTErTEp6eEdJc3NJWlJJMEZMekorYU9qNkRxczJtWE5yUEpOQWlTTzhaVGpTUVZGT1RBNEk0aklXRmxsRVR1bTJxK2FiUFQvTFkxNldLUjdZeHhTaUpTdk9rM0hpTnp4MjVaQVJKTk5uRUt0YnBmbWFPOWxYaENRM3BKY0tDNnQ4TG5ZSGowT1FNYUtpVm9yODBmTTk0OC9scU9HNmtoaWxubWpuamhkbzBZZWszR3BHNTRrRExjTzUzYTg4aUk3TUwrdTMvd0JiU05yMjV1SW5jSVVlZG1XaFBVaXY2OHlKUUFpNGtNc2pKNWt3SEk3Z2VQeG5NaVBKaWViUjRFVVBIMitNNUlJZFNJYmZEL3daeU5xMnFwVGVudjhBR2NiVkUyTU52TGVRUnlBR09TVkZkUTdWS3M0QkFwN1lRTjBFN1BVaDVGOHFoL2hzbUFyUWZ2cHYrYTh5VENOTk1aUzcyZGFGWlEyUGxiVGJXQUZZWXBiMFJLU1dvcHVXSUZXSmJ2bWtsekx1SWZTaWFqSXBZNTUxaVdXenRsWXR4RXhORlpsL1lQOEFLUm14N05oR1dTcEMzQTdSeUdHT3dhM1Fua1NKWWJyVWdyTVl5TGNxck96Z0g5NENSeUpwV2d5enRURkdFZ0lqaGErenNzcHhQRWJZOTV0dGwrc2F0S0Vta21yTHhFVWpxMWFVSEVjbFVjY3pkTmhnY0hGVzdpYW5QTVo2NHFETWRWVXkrVmxSeVdEUlFjelVnbjdQY2I1cU5ORUhLQVhaNTVFWWlRZDZTVHlyYUxENWdVcHlDTmF5aGw1c1ZKRWtaRlFTUlhybWYyamlqR0lvT0QyZmxsS1I0amF2NWdzYktmWEpXbmo1dHdqQStKZ0tjZWxBUmgwR0tNc2RrZFdXdXpTak1BR2hTWWVYa2RQSjF2R3pNV1NGbERNU1cyWmdOelU5Qm1zenhBeUVPd3dtNGdzVTBTeWlqOHc2VFBFR1Z2WGtFdEdhaERRU2RRVFQ3Vk0ybXF4UUdBRUIxZWx6U09ZZ2xNUHpFMXpUZEl1clJyeUo1VmxoWXB3cHR4YnZVcjFybXYwa2JKZGhxaVFCU2FmbC9xTUdvK1hEY3dLMGNVazh3UkgzSW9RUEU1WG5qVXFUcHpjV0JhTjVxMDY0MXF3cy9TbWpsa3VZa1Z6UWlvY2RhTm1YS0k0SEhCa0pzcS9OUFc0TkcwL1Q3bVdBekpKTThaVkc0a0hnR3J1UGJNVFQxZTdrWjc0TmwvNVg2MVphdFpYOXphS3lScE9pRlhwVU42WUpwUW5EcUt2WmpwWkd0Mk82bnJXaUpxVjNESmVRcmNMUEloakxVZm1ISXBUcld1WkVBT0JveXlrTW5ObW5uYTR0TFhSa2x1cEZpaStzSWhkelJlVEJnQWN4Y0FIRzVXY2tZN0NYK1JibTFudXJ4cmFXT1ZQVGg1R05ndyswL2hsbXBBQkZOT21rVGFBMUdLRTZ0ZGNsQlByUFgvZ2ptVmhnRERrMDU1a1RPN3d2ODJpeTMybnhCaUl4QTZsYW1oYU9lUkExT25LbmZLNXhBRGs0Q1RlN0ROSGtLYXRaVk93dUlpVDhuR1VXM1M1TWg4L292K090VjVpcXRJaHB1ZGlpNGNQSkUraWJhcXRzL2tIeTAwaWx3cHVGVUJTMVBqOXZsZ2g5VFgvQ2ZldjhxL1ZqNVI4Mng4U3NmcFFNUVFRYUEvZjJ3UzVobGpIM0wveXBrai9UT3BMR2ZoTnRKVHIvQUNONDQ1ellUajJrSHAybXlmQ3VZaGNobVhrK1gvY3FCWHFqQStQYkQwWUhteE9MODAvTmttbmVZNXA3dUMzYlNkUmd0WVpZNFYrR0dScFZma0c1OG0rQmZpeTQ0aHN3eVpDRElEK0VNb3Q3bjZ4R2wwVzV0T2lTbVNsT1JkUTFhZTljQkRLRXVJQWxXVndGQjhLNEdTUzZoNWhtdGJ5eXQ0WTBLejgrVHNUVmVKVVVBRksxNTRiV1d3UnVzYnRZSCtXNlQ4UWNJUWVULzlPSlIrZG8zalNTU05QaXR6ZHVxbHFoZVZFRktIN2RjcklwUEgwUjl0NWt0Ym1TVkhpWkd0WWttdVFwNUZQVkh3cFNuMjh4OCtZUWlEYW1ZSE5mYjYxWVRYUXQxRCtwejlOU1FDS3F2UHJYd3k2TzhRVmpJSGtqSS9PVjdwdDdIcGRwY01ra2tpaU9GWDQxZVNsTnZmTWpIUWpiVkk4UnBKRThsZm1CSGJtQjlMOVJqUExOSko5YVFCekxNWk9oK2VTR3BEWDRCcW1UZmxQNVgxbnkrZFYvU2xvTFY3dDBlUGc2eUFrY2kzMmVuWE1mUGtFdVRsNG84TWFMMExrUDdjcHRta0huN1Q5UTFMeWZxV242ZEQ5WXZMbU5VaWk1S3RmalVuZGlCMEdTeG1qYkRMR3d3RDhyL0pQbW5SUE5SdnRXMC82dGEvVjVZL1VFaVA4QUcvR2dvcHIvQURaZG16Q1FvTU1FREc3VlB6ZzhtZWFQTVd1MnR6cEZrYm0yaHREQzhucUlsSFptTktNUWUrT0hLSWpkaG14bVVtWS9scHBlb2FONU90N0RVSURiM3NUVEY0YXF4b3pFclFxYWJqS2NrZ1pXNUkrbW5rK2lmbHA1NnQvTWRqZDNXbGxiYUs3am1sZjFvalJCS0dZMERlQXpKbm5CalRqWXNSRXJMMGY4NS9MZXNlWmZLOEdtNlJibTRuRjJrc2lobFNpS3JDdnhFZDJ6R3hFRG0yNVFTZGtvL0pIeVo1aThyUzZxTlp0dnE2WEt3QzErSlhxRUw4dnNrMCsxamtJTExIOU82VWZtSjVJODU2dDVvMUs3MDNTMmt0NW1UNnZjaVdKZVFXTlYzQllHbFIzeVlsczQ4OFpKZWhYZW02azM1Wnk2UEZDemFvMmxDMFczcW9KbU1RUXJVbmo5cjN5bVBOeVo3alo1L3dDVGZJbm1TMC9NK1B6QmNXYkpwU0NTUDF1U0hjUStsOWtIbDlzVXl5UkJEREZHaWJUUDg4UEpubWZ6Uk5wSTBTeU56SGFwTjY3ODBRS1pHWGlQaUkvbHh4a1V3eVJKTnA1K1MvbHpWL0xYbEo5TzFlRDZ2ZC9YSkp1RlF3S3NxQUVGU1IremtNaHN0NCttbmt1cmZsSitZRjE1cnVkVFhURytyUzN6enFmVWlxWXpNV0JweS9seTdpRk5FWWtGN0orYStqNnJydmttZlRkS3QydUx5U2VCaEVDcS9DajhtTldJRzJWWTVjSlo1bzhRMllsK1RIazd6SDVkMW0vbjFpemUyU2UyRWNUc3lNQ3djRWo0V0p5ek5NUzVNY0VERUczc0lOZW0rVUZ1Q0gxWnVPbDNSLzRyT0dQTkUrVDR6bXVKcHJtUjBqazRFbWcyOGZubXlqRTA2OHg4MWV4THFYTHE2bGlPb0hhdVh3QkRBaE1GZnJ1MzNETEVGZXNqMUozK2RCaXhYaVE5YXQ5d3dxcUxLNUZhbWc2N0RDcStIUXRYMXU4Z2hzTFdhNk1QS1NaWWdoWlZJb0RSbVVkZmZNZlVTQURaamlUYklkSThpK2NMVFc3TzViUkxtS3lnbVNSMkpqZGdBRFUwVnFuTUl6Rk4yUENRVVQrZU15dkhwNVUxL2V0MjhGSU5RZmZEcGViYmxlVXBYYW8yN2JETTBPT1Y5VDRmOEtNa3hwRjJXclhzVVloVzRkSWxMVVZXS2dWTmVtVVNpRHVnaDduK1JGM0pjYUZxRE81Y3JlS29MR3AvdTFPWTJRVWRuSndqMHZOUExzeUg4eExFaGh5L1NnQkZSV3ZybkxTUFM0OEI2MmRmODVBTWpOb1FjZ0xXNUpxYWJmdThoaGJkUU5tUS9sUk1yZmxwSXkwQzhyMmdIUVVCeUUvcWJNWDB2S2Z5ZW01Zm1McEFyMDlidi94UytaR1d1Qm94RDFNay93Q2NnaC91ZDA2VTBJRnB3cFVBZ21SalduaGtjRExVUjNaZnBjbi9BQ0FRR3Y4QTBxcHQvd0RaUGxVdnJib2owTUcvSWFkbjg2WEhML2xobDcxLzNaSGwyb1BwYU1BOVNIL091NEtlZWJ4QXdVU1cxdUNlK3lISTRKVkZkUUxsczlJODRTb3Y1Um83ZlpXMHNTZDZmdFJkOG9pYW01QkhvU2o4cTlTV2VXZFRPc2kyOWxDdGVRUEVlcTNYRG01b3hjbVRmbUJZNnRxRnJvZHhwZGxOZnBhM0VqekdBS2FBb3k5V0tqSVlqUlpab21Rb0pCYVczbVA5SVdwbTBhNnQ3Y1NxWnA1Ukh4VlFPcDR1VCtHWkU1aXFjWEZoa0RaWUdlVmQrUi8ySXk4SFpnZWJqeXAwUC9BakRhRzZ0VG93SS95UmdWc0J2OHIvQUlFWXFxd1R0RElrL0IzTVRMSnhVTFZ1SkJvUHV3ZzBVVTlBai9OZlNXYmZTTlEzL3dBbUgvbXZKenpMSEU5Sjh1NnBGcW5sSFRMK0dHUzNqbGx2QXNVMU9ZcE4zNGtqTlhJN3V5anlSZzNGY0NVZzg1UWFwTFkyL3dDamJJMzB5UzFlRVNKRVFwVWpseWZicm1Ybzg0eHlzdUpyTUJ5UW9JVHlaQnE4VXQyZFMwNXJEbUl4R0RMSEtINDhxL1k2VXJrOWRxWTVTQ0d2UllEaUJCU2ZYN0R6UytxM3pXdWpHNXRwSFl4VGk1aFRrckRyd1B4TDlPWlduMThZWStFdVBxTkNaNU9JTW4xRkw5dkxQcFcxdDYxOHNVSUZxWFZDV1VyeVhtYXIyTythN0ZrNGNuRjBjK2VNeWdZcFA1YWc4d3BxcXlhaHBac29CRTYrcjY4Y3Z4TVZvdkZOeDlucm1WcTlYSEtLRGphWFNuSEszZVo0UE1SMWN5YWRwWDEyMk1hVmwrc1J3MFlWQlhpd3I5T0hSNndZbzBRaldhTTVKV0UyMFNHOFh5L0hCY3dmVjd2ZzRlQXVyaFN6TVFBNCtFOWV1WVdiSUpUSkRtYWVCakVBc1owU3k4eGpWN1dhYlN4SFlKSXpDNkZ3akhoeFpWYjA2Y3Zpci9zY3pzdXRqTEZ3VTRHUFJ5amw0N1Zmekk4dmE1ckl0QnBkb3R5RmpkSlMwcXhjQ1dETHN3UExwbUhneThEbTVvY1FUVDh2dFAxWFROQ0ZycTBDVzkwSjVINFJzcnJ4WWdpaFdtUnpaT0kydUNCaUtMemZSL3kwODZXUG1HMHY1YlNJMjhGNHM3MHVWYjkySk9WUXZFYjhlMWN0OFlHTk5aeEhpdG0vNXBlV05VOHlhUFpXdW5STE5MRGNHVjFlVVFnS1VLMXFWYXZ5eW5ITGhPN2RPUEZHbEQ4cVBLMnNlV3JIVUxiVklWaU56T2swUHB5Q1VVQ2NUVWdMM0dPV1lrd3c0ekhtd256TCtWSG5HKzh6NmhxZHJCQWJlZTdlZUJtbkFQRXZ5RlY0N2ZmbHNNb0FwaGx3a3l0NkorWStnYW41azhwU2FicDZSL1hKSm9aUWt6OEZBUWt0OFFCMzN5bU13SlczbU54cEl2eWw4bGVZZks5eHFYNldqaENYYXcrbThNbk9oaUwxQkZGL255ZVhKeE5XSEVZbTBUZmFENXpUV05RbXRyTzJ1clNlNWVhMmVTNk1iQkdwOEpYMDJwdlg5ckxzZXA0WTAxNXRPWlRzUEovemM4a2VhcmJUWXRjMUtLM2h0clkrZ3lSVEdWaTAwcnlBMEtKL05URTVoSVUyNHNSamJ5MnhiamZXN250S2grNWhsYk9YSXNtL01kakg1MHZwQnZ5RUxVOXpHdlhIR2RsSXNCTjVaa1A1ZWFDelVIK2tYS0QvQUlJbkRENm11UXFKVlBKOGlIUi9Oa2RkdnFrYlY3YlZ3VDVoT0liL0FBVS95cWtEZVpMMVZOUTl2TFErUHdOZ3pja3c1aDZkcGtnNHJUTVF1UW1kejVsbDh0MkUyc1JRaTRlQ2c5Sm1LQWh6VDdRcms4Y2JOTVNXTndmbTlhSkhQNlhsZlRVRnl3a3VBYW4xSEJKRFA4UHhOdWV1WlBnK2JWNG0vSmJjZm0zY2VnTHBkTmhWWFBFd3E3S3FjVHhvdEIweEdOZkVya2h6K2J0OFVhbW53anNQM2o5UGZiSHcwK0lnOVU4OE5PYkM2Rm9pK2twWlJ6YmN5VXFEVWRBVXhqalJLZXl2ZGZtZHFsMllTMXRCR0laVm5VSVgzTWUvRmlhL0NmMnNrTWRJOFIvLzFJMS9oZnkwa2pUU0tVUkkwUnlIWWowNG1ESXRCeVA3STdaZzZ6TndRSjZsR1FpSXRqMnQzbWcyMHNqU1RUSTE3TUpycjAyQ3NLRGlsYWhhYmJySC93QUxtcnhYa0l2ZU1YREpFalJLZGFUNWJ0Yk81dDd5SzdsbVZTOG9FZ0I1ZXVvRy9mNFFNM0dHUU1kdVRtd2pRUytYMG0vTVhUZzdLQUx1M0c3VTdLZkQrT1pZK2hwZ2YzcjN0cnEyclQxVS93Q0NYK3VZYm1xWnViWW1vbFR3KzBQNjRvcG9UUW1vOVJQK0NHSzB1RXNBSVBxSi93QUVQNjRsTkxudW9DUDd4ZjhBZ2gvWEhtclMzRUlHMGkwcnVlUXhDMDBKNHQvM2lHditVUDY0cUF2OWVMalRtdGUrNHhwU0hMTEVLL0d2MEVZMHU3ak1oL2FCK2tZVnBlSllndGVRKzhZRnBhSGpKWDRodVIzR0pSVklUU1pSOVJTcEgyNUQxOFpHeENhUnF1bzNxUGZjWTB0TzVxZDZnNzc3NDgwVTJXUUxRbmZHa1V0NUQraHdVdE9ETDB4cGFiRERGTzZYNi9kSkhwVndqR2pTUnZ3MzYwRlRqR1ZTREdmSjhkd1NBbHFrZFQzUGptNmlYWHlDTGo0K3grazVZR0tKVXB0OW4vZ2pocEJWRkMrSzBQdWNDaGVPSGlvMi9tT0tDcVI4T0krelQvV09GRDBmOGxGQjErK0lBMnQxNkVuOXZNSFc4ZzVtbTZ2YkdVOERzY3dMRGwwOEsvNXlNZ3Q0N214WkVBZHBuQmFuWllrSUgzc2N5Tk1kMmpLSGpLc1BEN3djejNIcGVHSGgrQndoQ2xKSEdhbmlLL0k1RXhESVNMM0wvbkhvOGZMT3FBYmY2Y1ArVFM1aFplYmtRZWlSZVhQTGtkd3R4SHBkb2x3amMxbVdHTU9HclhrR3BXdGUrUXNwNEFqTDdTdEsxSDB6ZjJjTjM2ZGZUOWVOWk9QTHJUa0RTdE1iSVVpMVcwc2RQczdZMnRwYlJXOXNlVllJMENvZVgydmhBcHZnU0JTbGFhQm9OcE1rOXJwMXRCTkg5aVdPRkZaYWlteEFCR1NKTklFUUZXOTBiUnIrUlpiNnh0N3FSUnhWNW8wZGd2Z0N3TzJSc2hKQUtxbGpZSlpmVUV0NGxzdUpUNnNFVVJjVHVWNFU0MHlIVlFOcVVMVFJORXNadlhzckMydHA2RmZVaGlSRzRucUtxQnRoSkpVUkFXWG1oNkhlekdlODArM3VKeUFETExFanRRZEJWZ1RpQ1FuaEN0TloyRXRuOVNsdDQ1TE9nWDZzeUtZNkwwSEVpbTFOc2ltbEd4MGJRN09RbTBzYmVCcEtCL1RpUmVRQnFBMUFLME9BMnRBTXVXcDA5UUJzSkIwLzFUaXFXNnN0TlBuUEhvaC9WaDZxK2NXTVovbEovd0JZNXNoeWRjZWJpVjIyWC9namlodzRHbXlqL1pIRld3WSs0WC9namlxNVdRSGNMdjduQmFvbUdTSWRlUFh4T1Z6Wmg3bjVFbmdIa0RTT1VpS1BXdkFBV0EvM2FQSE1JODNOaHlUZjZ4YlYvdm8vK0NYK3VLWEdlM3AvZW9QOWt2OEFYRklkOVl0NlU5YVAvZzEvcmlyWDFtMTd6UmcvNjYvMXdxMTlhcys4OFgvQnIvWEFWV3RlV0hWcm1FSHRXUkIvSEZhVXpxT25qcmR3ZjhqVS9yaW1taHFlbDFBK3VXOWYrTXNmOWNiV2tMcCtwNllsaEFrbDVicXlxQXdhYU1FRWJkQ2NXRks1MWpSeDExQzFBOTU0L3dEbXJKSW9yVHJlaUE3NmphZjhqNHYrYXNGbEZOUHIyaGJEOUoybi9TUkYvd0ExWXBwWi9pRHkrS2c2cFovOUpFWC9BRFZpVkFLMCtaZkxxbW42V3NoLzBjUmY4MVlzcVduek41WnAvd0FkYXlIL0FFY3cvd0ROV0tyUjVxOHJyMTFpeC82U1lmOEFtckZOTkh6WjVXMy9BTnpOaVA4QW81aC81cXh0U0hmNHc4b2pycmRoL3dCSlVQOEF6VmpTS1lSK2MxM3AydmZsOWQyMmozY0dvM1AxaTNkWXJhVkpHb0gzMlVudGs0YzkwWHpENTNYeWw1aFYxWWFkT0tFSGNEeHkweURVYklaTjU3OHRheHFIbUdTNXRMS2FhT1NLSWMwNDhTeW9BZXB5TUpBSk4wRmE0OHM2M0w1QjA3VC9BS2pJMTNiM2tzandEaUdWR0JveHFhYjF4RWdKTFJWUEovbFhYN1hUdk1jRnhZeVF0ZldSaXRWWXBWMzNvdXhwMzc0SnlDWTgxYjh0dktYbWJUUE1KbnZyRjRZR2lkQzVaRDFVL3dBckhISkt3Z0RkbmxoYjNpcW9lTWdVQnJ0bU9RM1dvK2N6L3dBNnBxUllHaVJxMUtWT3pETE1XeFFYanNXdDJ5eGlzY3ZoOWorM016aWNXa1V0NGo2Sk5PQTNCWkNRS2ZGMUhiQUNpdDBGK203Y0tCNlV1LzhBa2ordVNKREtrYzk4RjBXRzRaV1plUW90S3RRc2UyUkJZZ1doazF5MzZlbkxRZ2tmQ1BBKytUdGVGLy9WNW5vV202bGE2eHFkM0xFMFVDVzluQXJTS2FGUWlpVUx1S0VjVDhXYWJ0YklPQVI2eWFjeHFPL2V4cThsdDE4d1R1R0Uxdk01a2hma0ZNUTZrS0s5Vi9ad1l3VGpIOEpIMU9KRVdHV2VVMnZXdjdKWkRPWVJGY3RJSEo0bHVTQmEvcytKWE0zVDdSYy9DZGt1OHo2Z0xiekJjbG5QcHExQXRXMi9kcDJIZk02TWJEUk9RRWl4UzZaaGNTWEhwQ2N5QXFCTXZOYUgyUGYzd25FMlF5N0pBMWxjS2U5TUJnejQxTm9iaGY1c2VCSW1qdEIwcTQxRFU0WUtrUmc4NW1xUUFnNjVqYXZLTVVDVUhJN1h3N2FyT3lOVU1hMVVtbmgzdzZVWGpESEhQWkwrTXZpY3llQm54dTR6ZUp4OE5lTjM3LzhBbWI3emp3SjQwZm8xbE5lM3l4TzdpSmZpa0lKR3c5OHg5VFB3NDJ4bGtvS045YlhscmNORTdrMDNCVnVRb2ZjSEpZcENZc0xISllRNGU1L25mN3psM0FXWEV1ak4yMGlJSkhCWmdBYW5xVGdNRjRrMDgyUGRqekxxWU1qRmhjT0NRVDFCcGp3SUUwQmFKZHozRWNmT1FobUFiaVNTQlhmYklaUFRHMEhJbXZtYzNIMXhYaWxjS3FoQ29MQWdMc0NmbU14TkVialJhOGVXN3RKZlZ2UDkrdjhBOEVmNjVuK0cyOGJ2V3ZQOS9TZjhFMlBocnh0K3RlLzcray80SnY2NCtHdkdxVy82U25sV0tLV1F1eG9CeWIrdVJtQkVXVUhKVEk3bGpaV0VkaWtyTmNTUjB1WExOVXRYa0IxMjQ1ck1jamtueGRBZlM0eHlrbEtiZUdRZGo5d3pvWWpaRWtaR0pSdFEvY01zWUt3U1R3YjdoaHRTcXFyRHFIKzRZRkNvdFJ1UTQrZ1lyU1phVmUzTnN0ekhIREM0bWhkR2ttakR1QVZwUkRXaTEvbXBrWlJ0a0NrZDdOcWtIRDZyTzhVcEJCZFdhT3Z3K01aQjI2NVJualliY01xU3MrWi9OTU1oWDlMWGlzcC81YUpldlgrYk1UaERsQ1pUZnpwcjJ1WDlyb2lhbGVQZDhySmJubEx1NWtrZDBKTGZhYjRJMFhMTVVhWVNOc2FWL3dEUGZNa0ZySVhoelQyOE44TEVob3NhWUNrQk4vTC9BSjc4MWVYTGVXMjBlOStyUVRQNnNpZW5HOVhvRnJWMVk5Qm1QT0xiRXByL0FNcm4vTWIvQUt1Zy93Q1JFSC9OR1Y4SVpXdkg1MS9tUU9tcHIveUlnLzVveDRRdHQvOEFLN2Z6SS82dWEvOEFTUEIvelJnNEF0dEg4N1B6Si82dWdIL1BDRC9takR3cmJ2OEFsZG41bGY4QVYySC9BQ0lnL3dDYU1IQUZ0ci9sZGY1bC93RFYzLzVJUWY4QVZQSGdDZUp3L09uOHkyTlAwdjEvNG9nLzZwNCtHRUdiWi9PVDh5ei9BTkxiL2toQi93QlU4ZkNDK0l0Yjg0L3pLNzZzZitSTUgvVlBENGFqSWp0QS9OTDh4OVExV0sxL1N4K01NVCs1Z0gyVko3SmtUakNUbEtwckhtdnp1OTZFdWRldldvZDFFcm9BM1lCVUFIZkk4REE1U2lmSVdzZVpMenpIRFozbDFjM1Ara0dWWkpKNVRRUW94OVBpVzRNamZ0RGprakJmRlJZWnQ2OHE5dnM1bURrNFo1dUpZbjlyN2x4UTFXVGFuUDhBNFhGVzZzQlNqLzhBQzRxNE94MitQL2hjRkpEYkdhblJ4OTJSMlpMTEt6MWVhNk56WTJVbDdMQUtidy9XRlRsMFBHaEN0dDhKeW1lSUZzamxJMlNmVXRGMWJUN2NMcWNFdHJheVR0S1piaUpsTFNPS0VjbW9hVS9aeUhBczhwclpCVFRXcDVJSlZlTWZER1djN0NsZTR4NEd2eFNsdHhSVEp3a2hhSW9hb1dxOWFkdGdQbGt1QU1obEt0bzB6VFIyN1N5Um4wNkpTUW5rZDl1dGR0OGpLQ1pUbGFjUXJwUk1oSlgxRkIyMk5HSFR0MHlvd1lIS1VuMWF4TjNjcXhvYVJxQ1U2ZFQ0NVppZzJSbWFROTlhUGROSDZpSWdoakVVYVJxRVVLdnNPNU81T1hERWc1U29SYVFnbVNvMkRMWDc4bHdJOFFweDV4OHUrbjVpMVNVRldSN3VhaWcxWURtYWNzeDhXU01wY1BVTXBaS0tSL29nVjZaa2NDUEVMWDZKSGhqd0w0aGQraUI0Zmpqd0w0cGQraUI0WThDUEZMdjBRRDJwandMNGhkK2lGOFB4dzhDZkZMZjZJWHcvSEJ3SThRb3FPM2pSRVQwRkpSZU5lUkFQWGNpbnZnT0swK0tWQk5JanJ1QjkrU0dOajRoVHJTL01jWGxsR0F0UFhGelFpajhlUEQ2RzY4c2hsZ3p3bXphT2I4MkVKQi9SaDIvNHUvNXN5cmdjZ0ZWSDV3QUtCK2lxa2QvWC93Q3ZlUEF0cmwvT1FocS9vZ0VlSHJuL0FLcDRQQ1cxVmZ6bWZ0bzlHOGZYci94b01Jd2xqYWIrWHZ6VW4xVFdMYlQ0OU1FTFhEOEJKNnZLaElwMDRqQkxGU1JNV21NWG5lL05vWlVzSXlFYjAwVnBTQ3hIVWo0Y3hKWndKaVBVc2lRRFNycmQ5ZDZqNU0xYVM0Z1dCL3F6VVJHTGJBajJHWkVlYWVid2ZrL0R2MTk4eVdxaGFmV0xFK1dMc0RZZ245WU9Ib3cvaVNJeVNGVnJXbTlPdU5sbHdoUHBlZjhBaE5DUVJRamlhRWJjNllPSUhraUkzS1JvNzhodCt3M2o0SER4TXFEL0FQL1c1WGMrZEw2KzBEVW81NElZSkhZUlI4R1p1ZFRVamNlMmFyV1lieVFON0J4dFRLd0dDU2xrbGludlZXWDFGcUk0MkNsVDBvUlFqdG1UR2lDSXNZZ2NnOUMwanpUTlplWDRwVXR5a0s3cjhaa2NtdlJxZ1VHYS9VUmtKQ01TeWxrcERHOTBUVm9vYjY4a3VJN21lUWlWSVpPS2cwcDA0bndYTmhpenlpT0U3bHJsRUZJWjRvVEszSGpRTWVQSWttbGRxKytiWWJoa0F0dFlZa3VZM0tJL0UxcDE2RHd5TWhzeUJVYnF6Z004dEZRRGsxQVBuZ0EyVzBYb2RtRk53SWdwZDFGU0NSUWRlb3pWOXBpZ0NlVEdSc0pKY1BBc2pwTEdyT0s4bUEzSnIvVE1uU0haRU9TRXVJeEhQRXZFTnlRVkcvV3Y2OHlKMzBiUWRsVkxaUHJMRGdGb1NLVjJ5ckZJa3JleWxHMXFzU2x3cGJpQzFSVTE5VHAvd09aWXBCdE50QWxqU042S0t5bWdvRHVCMVdtYXp0Q054QllaRHRTQjFOdVVzQ0ZBcmNndEFLYmY1V0RTODBZZVJaRDVXMEhUTHkydW51cmRabVdYakc1TGJBS3Bwc1I0NWRxSkVGTTVHa0pyV2wyTnJyTU1GckNJay9kR2dMRThtazl5Y25pSk1TbkhJa3N3MUx5cm90MWUzbHhOYUF5TThzanlCbjNOU2E3RVpTSm02UktSQmVkMlVpMjEzQklRQWpMUm0rSWdjaU55QnZYd3llc2laUXBKM0NMdlhWYjJUbUM4NzdBZ2tqclQ0cSsyWU9HK0VWeWFvSjdvL2xYVEo5QnRycWUyNXpTOG1MOG1GUlgyUGhsbVhOSUdnVzJVa2xYU2JSL01DMllqQWdhNEtla0dib0ZKcFd0Y3plTStGZHJFMlU1MXZ5MXBOcnAxekpIYkJab2tVbzRadGl6VXJ1Y3B3NVpHa0dTU2FYQ2tMU1RCVjVSQU1yMVB3MTJ5enRBK211OWhJN0tlcFNRelRCbGtjc29KWW5weU5CVWQ4d2NBTVF4aHlTU1c3bVNYaU51TzFLay94ell4bWE1dVhHQUlUWFRuWm9TNzBCcUtBa2phbGE1bFlDU04ybVlSWVlEZjRTZkRrY3lHdFdESi9rKzN4SEZLN2tsQURUZi9BQ2ppcXRCS29xQnhwU2crSTRRaEs5ZU5MWGtoQ3NDQjhMRW5mS2MzSnN4YzJOa2ttcE5UbUU1YklQTlZlR2lEdzBxMy9GNURsbU5CU1JmODk4dllGZUtmNW5GQ3BHb0kzMnJXbTU4Y3hKNVNDeEphbVdQMUdWZWdBM3IzK25KNGlaRGRNU2FVZlRIK1p5emhaOFN2YlJRc0dEeDgraERjaUtlMjJWVDJMQ2N5R3BZSWhLQW9vdnc4Z1NlNXdSbHNWak0waXA3T3orcnUwU2NXUURjc1NUdlRwbGNabTZZREpLMUdDS3pDVm1XcEJJTkNRZnd5Y3BHMlVwUzZJZTZTTlhiMDlrclJSOUdTdlpuQTJ0dEJ5dUVCOS8xWXhPN0tmSk0wdG9QUkRPV0xPZHFIWWJuS3BaS0xpbVJ0cXp0SXBua1Y2bWtic3REM0RBQS9kbGhrUUxiQVUvOEFJbGxGL2l1MVJTVHlqdUs4VFZ0b2owOThqakprV01wMUVsbVIrbzN0dExORTg0YUk4Wm9XM2xRazAzVUE1ZExFUTB3MU1aQkp2THNzbWwrWnByamQydG1tNG94TkNlSlhlbFBIQUk5SEp0R0dOQVNLcDE4RGxzUnMwbm0xNmFqdXYzSERTdVZFN3NvLzJKeHBEWWpUZmRmK0JPS3FkekdvczV6VVY5SjkrQnI5azk4QjVKREVodW9xV3BUeFA5Y3hMTGE5YS9KaldkUDByVE5WanU1bWllNktjR0NOSnNwWU4wSS9tMjN6S3dZcFRHemc2cldZOEo5ZjhTbCtkdXRhYmUrVUxHMXRibDVaYmFma0c5Tm82SnhDZ1ZZc2EvTTVMUHA1UUZsZEhyOFdVOE1PanltNjV0NVkwbU1lb2VWMWNCVFhkeWVBcFduYk1XUjlJYzd2U3VLQUZwQks3b3lnOStoSFk1VDRoQlltUzJHRUdLTXhzNGNzQXhCb092YkNjaDRtZTlycmkxbWh2WklpWkZDbmR1UnJ4TzRKUCtVTU1wN0tVLzBhM0Jab2h4K0pZK0wvQUJFc1dKRldxVFE1UEhtc2JoaFJackorVld1ai9kMEc0RFVITHVLNU1haUxJNFpLTC9sanJNS2lTVzR0MFRrQlUxRzU2REl6MU1RR1BoU1ErcDZGZWF2NTExT3ppdUkwazllWGpHNFBSVzZtbWEvVDVBSjNTSnhKbFNOSDVVYTFXbjFtRGY4QXlXelkvbVlwR0dTNGZsTnJKLzQrNEIvc0QvWEg4MUZQZ1NYajhwZFI5SXI5YWk5VXNDcmNUVGlCdU9OZXRjZnpNVStCSmFQeWoxY2ovZTJFZjdBLzF4L05SWHdKTy81VkhxeDJGNUQvQU1BZjY0ZnpNVjhDVHY4QWxVZXJrZjcyUTBIYmdmNjRQekk3bDhDVGgrVWVySGY2NUVLZjVCL3JqK1pIY3ZnU1hmOEFLbzlTclQ2N0h2OEE1SDl1UDVrZHkrQkpldjVTNmhUL0FIdVQyL2QvMjRmelE3bDhBb2JVZnlXdmIxWXdkUlJDbFRYMDY5ZjlsN1pHV3BCNk1vWXBSU3U4L0pMNmhidmRYbXJxdHZGdklSRWEwLzRMTWZOckJHTmdNNUNRQ2hwWDVTV2VzQm4wL1ZnQXYyb3BJL2pYdHZSc0dEV2lRM0c3Q01wRk1mOEFsUTF5RHRxYVU3Vmovd0Nic3Y4QXpBN21SaE5zZmtYZFYzMUZOdjhBaXY4QTV1eC9NRHVSNGNrNDhyL2xaRm9Hc1E2eGQ2Z3JSMmF5U3JWS0FPcU1VcjFxT1ZOc3lOTVJsbHdrTldXTW8wYnJkaTE5cnJXMnFlcEx4YUZ3c2tFRUkrQUdlak9hZnpiMHpRVHcrczF6RWxuTThWdlI1UExNMTNvODFxTGhGaXZZU25JVkpVT0FmcHBtZkNYVnlva2tXd3R2eURRZjlMWTBKMi9kYjAvNExMdkZDS2tqYmI4bVZnMCthei9TSlpKaWF2d0FJcjdWeDhieVkrR2J0REwrUTFpRkhQVkpDUWFzUWdHM3kzeUU4L0NMWlVWT3o4bldHdVRTNko5WmtTMnRrVklHVWhtQ3FUOW8wS2pjZlp6WGFQVUVtei9FMGdFU3BNSWZ5SDBSVWJuZlhEdVZaVmNGRkFKQkZTT0JyOStiTHhXL2dMLy8xK2U2bG9XamFIcGQyNHFibGxNa1VjbkpxR3V3RkRzemRmOEFVLzE4MUdzeUdSakVkN1RxZ0FHSGVXTkdiVzlVbnRYWmxua2pjcktWSlRxQWQ5K2dxUDJjdG5zQlRERmg0Z252bVBSNWRLMEtLMm5IcGRJeEZHU1ZmaDBldFQxL2xiTVc1SEtDV09XRkVLUGs3eTlwdW9XVTZ5eWZ2NEhKNExJd05HSDJpQVIrck1zVDlUZEhFSkMwck96RUx6QUJJRkFPeDk4M2NPVFNVUnA4ZnFhaGJSc0hJZVZGWVVXaERNQWE0WmNreDVyYjlGRjVjQlZkVkVyaFFBdEtjalRFRFppQ3JSWFMyV215eXhSOHBuK0VzNUFBcWFEYmJORjJoRXp5Q0orbGpNOUdLUk5OZHp5SnhxUUtGaFQ2TXk4TUtJcHNpS0NMdWRQbm5rU1NqS1kxQ2tFRHNhNW5tTnFEVGNObk9zaGRneERWcUJUcmtjZUVSS1RMWkJQb3QyQnVkdjhBVnl6aFhqQ1o2WjZsamFPUXZKNHh1emJLS25iOGMxMnZnU0FDMVpKV2w3U3ZjWGJnTUtxUVpEUWt0UTFOSzQ2WEdBUXlpS0NiNmZydXNhYkRMQmFHUDBaWE1qZXBIVnFrQWRhKzJabVRUOFJVa0htNUxtLzFMVnJaN3JqemVTR05TaThSUVNEcjkrU2ppNFlsbEVBSFpNdFY4MGEvSHFONURFMFhvck5LaUF4MVBIa1IxeUVjSFZaU0JLU2FkQlM4am1kZVNRSnVEVWI5anRtUDJoQStHeEoyVXRUdlhGOFJFb1Zwd0FPOUFUVS9UbURneFhIZm94aEc5MGJiZVkvTWR0YVIyY0VzWG9SQ2lBeFZOSzEzTmMyUDVFSGRzTWdnMXV0UVM1VzhWbCt1cktaZVhENEtrRWRQcHpJOEgwOEtCSUFwdGU2bnE5MTVmTTl3MGZPZTUrcnlCVUkvZHhvSkJTcCsxeWJJUXdDTWxKRkphYmdRV2pzMGxLL1pRanIyTmN4OWFPS1FEWFZwTVpCSUhrQTRtb0FwNDVWVmJOb2pXeXU5aTdTckkwY1RFZFJ4Y0J0dTlEbWJqdzdKR1NoU0tnV1ZDOVZWQVRYakdDRkZCVDlvazVrNDQ4TFhJMnJjbTI2N2V3eXkySytybnJ5Tk9td3cycmFsaUtmRVI0MEdEaUNkMVVTa0FBVis0WWdxbkhsN3kzYStZNXByVzhrZU9PTlZjRktBMXJUd09ZMnB5OExmaGhhZkg4bHZMbGRycTQvNE5QOEFtbk1IeC9KeWZEUGVpdFcvSzdRcnFTMldhZVlMYTIwTnJFUXdGUWljdjVUVTFiOW5KUnoxMFFjWjcwc3Yvd0FtYlI3Y3JwODBzVndTQ0htS3N2SHY4SW9hbkovbXd4OE1wSllmbFRlM3huRU42STJ0cERGSXJKVWxoMVlmRU5qbGVQWEE4Mkl4a294ZnlZMWdVSTFDUDRhZ2Z1cTdIL1o0eXl4TzdNNENpYmY4b3JTeGhlVFZyaVNmbklpbzF2eGpDZzFCTEFsNjVJWjY1TDRKVFdMOG9QSzhvcUxtNUZmRjEvNXB3L21pdmcrYXF2NU4rWFZyeHVMazEyKzJCL3hya0pacjZJT0ZzZmt0NWNickxja25Zam1QK2FjUmwyNU1oaFYvK1ZMNkY2ZkV2ZGNUVG8zZ2Y5WEI0bmt4OEFMZitWSitYanR5dS9Fa3RRYis5TUp5K1NmQjgwRHJ2NVFhUlo2YkxjMnNWeGNTb1FlRHZWZDlxa0F4ay84QUJya281TDJYdzYzWWZaK1M5WjljeUxvVVpXSlM3bjFpS0tOaXhyUHQxeXdOTWlUMFRMVC9BQ1BxRjVNMFU5aEJEQ2tjc2dLeVBJUnhWbTdUaklHSXUwUmhaNUxiSHlYckR6cEJiV3Vuck02c29EeTNCcXRPUi9iMit6NDVNa1ZTZUU5eVkrUy9KbHRkK1lZSXIxck1JNlNjUmJQT3N2TGdhVUx0UUN2WDRXeGpNUTNEQ2VuNDQ4Slp4cFBrQ0N4bWU2RGw3bGs0cXBjbEFXQUxWMkJiZko1TllEczBZT3p6RGUyclg4dTRFMUs1dkpISEc1U1lTcXJFa2VwR2VYR29wMSt6bEVzb096bkRHMHZrSU9RM3FtamI3c2VoMzhNa05ReDhHMXcvTDlPVldsUEd2WjJyVEg4eW53SEorWHliOHBLanZSMngvTXI0RGwvTCtQbzBwMzdCbjY5dStEOHl2Z09iOHZJcElwSXpJYU9wWFozNzdiNytHSjFDakFsYS9rNVpFR3R3YTdjZDNwNzErTEsvR0NmQktkNkgrWDQwamcxdk1oZU53NkZ3N0xzYTdndDQ1a1lkZDRZSXJZdURyZXkvR01UZEdLZDZmK1d1ajY3cVlpMTFSZFcwdnFTTkNoZU5lUm9RZG1yc2NocWUwdkVpSWhqb3V4eGltWmsvVThwL05IUUxPd2x0dEgwbUF3VzluZXlDMWlUbElhekpHN2sxTE0yNHpHaE05WE95amgyWVhQWTNNa0lrbWRKQVRTT1N1MUtHdmJFU0RRQ0tUYnlyNWJndnRBK3R4N1gzcm1LSnhKVGlRb2NWUS9EUnQwLzJXR2M5MitCQkJSdmxmUXJHODErNVhWWUd1SXByZDVvRllGUXhEY1Y0a1VQVWNjaVpzT1pwSFdmbHkxdGRmbHQ0eVVqTnpGRXFqb3ErcVJ0VW5wbGdsNlMyU2p1OSsxM1NiU3kwMHlvQ2JpSnhISXhKb3dDN0duYW9HWWdrYmNyaEZNSTEyOGpUVEdKb0VxUFZMN0tCVUhjL3M0ekZoaFBreHZSTGEyYjh5ZGFtYjk2Nmt2RUZGVlF1YWxtSjcvc3JUQkFidEhENnJaM3orbkxtOWR5VmFzYThRS252NzRDbDUrUHpoOHYyTTl6QnFRdURLczBnak1NWVpmVHI4TzdNcHc0b0dUV0pDM0g4OFBKWTI5Tzk5djNLZjlWTXQ4S1RMakNaNnArWVdtNlRaeGFyZXBPZFB2VmdheldPTlRJUFZqTW54QXN2WWZ6WkNNTE5NckNVZjhyejhvQ243bSs2L3dDK28vOEFxcmsvQmtqaUNiYWIrYU9nWDFsYzNrTU55c052Qkxjc3NpSUhaSXFjdUlEc08vZHNwUDFjS0JrQk5KTC9BTXI1OHFBN1dWK1IvcVEvOVZjdEdFcDRnbmZsSDh5dEc4MFgwMWpZMjl6REpERVptZWNSaGVJWUxUNFhZMXEyQ2VNZ0x4QmxZWTFyV29wMXlxMlZNZjhBUDE1SmErVnJ1Ukkxa1hqU1FOWFpUKzFzRDN5ak1DYURYaytsaGY1THczVXM5L2V5cklJd0FpU2swakpPL0VEdVJsNWdBZG5HeERmWjZxWDNHL3RpNXEwdDF4V2xleXVYZ3Vra2pDRmpWS09vZGZpRlBzbkpSa1FkbU1vZ3ZuSFdyTXBlRlVqZVZnL3dvdEFWVkNSVGo5cXRCL3h0bE1UdWJjTEpIY2w2MjNta2FWNU9PcnRiQ1dDMWlpRWNNVGdjZ1NxSDRpRHhveHl6RUxjbkR5WWtmejh0ZjJkR2srbTRIL1ZQTWp3bWZFR1VlU2Z6Q1R6UEJxTXFXSnR2MGVxdFJwQTVmbUdOUHNyVDdHUW5DbEVybFRHSVB6dHQ5UWtObzJtTmJDY2NQVzljTng5NmVtTXAxbW5KeG1tTThsQkUrUVBNTVVubWcyTU1YSVRSU1NHVUVWK0RjR2xLN2pyOFdZK253R01iTFZINnJlbnBmWFNvOFNGUWowRGJBbWczb0Q3NWxXNUwvOURuUG02ODlTRjQycS9yT0JjVHFRWkF2S3UzVGI1ZnM1emtaQ1dTeDBhTlNRU21IbEtiUXJPeVMzdHJvUGRNT1V5a21nK2cvQ29GY3lCbDZseWNVNGdLbm5PM2x2N05ZSVpGMnE1VTdWMm9DRFh2bE9YVVFFd1hIMU13U0ZIeXhZV0dqYVBjVFNOSDlhdVhQcVBHYWtxQjhJcDI2OU1zL05DclpqTEdNUGV4TzRqMDVtYUN5dDU1Snh5UHFzeEttbE9SNHFPbStaMm4xdVF5QmtZeGk0VVNUdXUweTB1RTFLM2tlT2tjRThmcXR5UHc4V0JOYzJHVFdZNGpjdGdtQVZDOWhCdUpTaks3YzJKQ3VmMmpYK09IRHE0eVlpVm9LNC8za21WaUY1S2FtcFltbmdNcDFZNHFJNkZtUmFYMlVrRnFGaWR4emxxU2FIZXYyZDhxeFRQRmZSdjRka2RYNHFEaWZINGptMEVnUTBVVjQyN0x0MCtNNGJWYVNRZWdQK3pPTm9wWlBNWTdHY0lnTE9BRFJpVFFaZzZ6R1pFSG9HSkNWNmZDemlTWWhlVGJMdlFnRHJsbW5pQTJTRzFJcGxZZFZIdjhSekx0cklUUHlzb2Z6THBTTUF5dGRSQXFTU0Q4WXlPUWpoYk1ZOVNHMVkxMVc3SUFvWjVQMmovTWNNRHN3STNYV1JTR0pwM1ZpSzBVQWtqN2h1YzErdlBFS2JZUXNKTTBEUGZGbnF5Z0ZneEJXdFRVZGNqcHdEUVU3QkVWSjZqL0FJWTVzeElOSkRkUU42YmQ5emhzS21jakQvREVCN0crbHB1ZTBNZjljaC9FeWx5Q1UzU3ZMQVZXbFJ2dVNjcHpRNHQwUk82WHhBeVNxaXFCd05TM1Q3OHhvd3N0cEd5WmM2VUZOdlpqbXlGQVUwdDhxOXQvbWNiQzB2RGs3ZnhPRlUrOGw2TU5ZMXlPMzRySUkxOVgwaXdBa0lJQ3gvRVF2eE1jeE5YcUk0NFdlVGs2WFR5eUUwUHBaOXFHbitlb3VJaGdtUll6U0tPSzRnUUwvc1F5cm1yaHFNQkZtMjR4eWVURmRiMGp6Qkl4ajFlSC9jc0U5ZUlDU01scmNHaFppclVxcEZPdVhZTlhqQjlKOUt5MDh6R3l1L0xtNUNhaGNzYUNzYTk2bnFmSE12Vm13R3ZUaW5vNnl5eVZCUEZPek1CWDZGLzVxLzRITUxpcHlxVnVNWXZKbDdxSWxVbWxhZWloNi9Ua0p6VkZBVVBKUlVqcDA2K0dBbWdrQ3lsYzl0cnVuenhMcDFyQkRwOHBaNXVMMm9tY2tWTFZja2xneDZIN0svRG1yaGswMHBFU011TnlKNHNzTmdOa3ViVi9OaTZnclR4OHRPZDErcklmUUVvSzlWZjB6djZpOHY4QUpSdUdYUnpZQktzWk4veEloaXl5QjRoc25Hc3FidXdpaFFyRkxOSkdFRWg2dHZSZmg1ZkV4K0ZmOHJOaEEyZWJSTFpNYmZTdnpGc1ZhMzA3eXdKckxqdGNPaU5LejFCK0xrNDdiY2N6WTRoWE53cFpaZEFzYVB6NUVKSjlYMG9hWkF2Mkppb0VZQS8zNXhaeXJiOWhqa2dBTml6eDVUMVVKdk1WMGxyYnl4U1VaMUlrMjdnN1Z6RkZ1UzMvQUlqdVpOTW1lUXFaVm5pQzFIN0xKSldnSCtxTWQxcHUzMTY1YXl2ZWEvR2dpYUtnUDg5R3A5QncyVVVweGFqZFhGbGVvOEhxc2JkMmhqSktneUlReTFOTnNRZDFJUUdpUjNVdDFMRGVhYXNjTnpCTEd4V1l0VThlU2paVm9PUzlja1N4NFd0QjB0RnY0emM2ZkhHa3dhR1ZvNUM1NHlxVU94QThjRmhhYjA3eTdZMmQvSFBGYktwUnlDdzY4U0Nwb2ErQjhNQks4S0l0UEs5aHAycCt2YmpnMERrUmtVM0EyM1B5d1dLUndicC9TTzNBdDA1TXNTS29ZbmNqaUtZZ3N5clNmQ0hBTlFZWFlINW8yRUhkQkNuYUYzdFlHUDJtalFrajNVWUNrSzRVN2JZVXU0bmlhREFpbkVlMjJKVndVK0dRSkswVytRRkNjQ1JFcnc0clFrVnlNbVFpVTU4dE1wMVNNQmhYaTNmMnlrdGp4Mzh6QjZYbWI2MUhQNlV0dGZDUlFZZlZVa1FpZ1B4THRUTS9ERVZiaDVRT0pna2VncE1maDFNaFJXaS9Wd0FQK0h5M2dIYzBISGFlK1VOUHQ5TUVsajlhTnhDOVg0dkVxamw4TktIa1R0eHlFNERtemhGdUpMbGRSZ3Y0TlNWSHRrZUdHTVdxbEFqdTBocldUNGp5a2I0c1RFTXlBU252bGVlR3cxSzZ2OVFsR3B2Y2xDc2JSSkVFS3VYSlhkK3RjcnlRc2JOa2ViMVRXdGJ0dFU4bnZxNk1JbE5STWhJK0FyeVB4SGI3T1kxVVd5OW5sMXhyR2pYTWJ3VFQyODBFZzR2RzhrWkRBOXR6VExoRXRjdDFDQzZ0Ykh6eHJzVFhTV3lyTFNram9vWlFCUWI3N1pYd25pYVNLa3lBZVl0SDZmWDdjZTVsVCt1WGNKYmJWUjVqMFJRV09vVzMvSTVOdnh3R0pSWWVCZm1LTGNlWTV2cXJwSkFhdHppK0pDek1kdzI5YWltVzZZVUdGQzJNN254cm1VVmVpZWU5UXM3anlabzhVVnhHOHlSV1BPSldCWUZiWjFhb0creDY1alFCNGl6NlBPdDZETWxnelR5MHNFbmxqVVpacFk0bXQ0TGxJMWFYZzdGNHRnRUc3MVk1aFR4L3ZMYXdQVmJDd0Q0Wm1ObHMrL0p6VTdEVHRmdkpMNmRMYUo3TXFyeUhpQzNxb2FEM3BsV1lFalpRZDNyL0FQalR5c0tmN2xJSzkvaVA5TXhlQ1hjM2NRUTE3NXQ4b1hkcE5iVGFsQzBVeWxHQUxkQ1BZWkRKaU1oVEV5Q1ZlVXRlOHI2SG8vMUdYVUxaWkZkMmJnWkQxTzNMa1B0VThQaHlVTVVxM2E4WUVVM2J6LzVTcUs2akY3VUQvd0ROT1RPT1hjMjhZV04rWVBsT2dycU1mWGVpdi96VGc0SmR5OFlWdE84OCtXTG5WTGEyaXZsYVNhVkVSUXJpcGNnQWZaOThSamxmSkVwaDVwNW4xSFRGODBXN3gwWXF2cDZnR0RjYW8zRnEwNi9aM3lxVUR1NCtZN3AzNTE4MitXN3p5cHFHbldNNFozaVZZWVVpZEZxc2ltZ0hFQWRNeU1lT1FQSnVoS0lEeGYwWnY1Rys0NWxFRmp4QjZEK1ZQbURUdEZoMWhOU2thQmJwSWhEUkdia1ZFZ2JvRC9NTXF5UUpUR1FCdGc5aTEzYlhJa1NONjdxUlFqWnR1dUhKRGlqUllTSUxOUEptdTJPbCthN1c4dVRJTGVPMW1oa2tDbC9qWlNGVUFEcHl6SHhZenduM29nYTV2U0UvTXp5dFFneXoxb2QvUmZyUTRmQmszY1lmLzlIbklqaXVvek9rL0NKQ3lzSkVDa0d1d0liYmY1NXlFaVltaU4zV0h2WFcrbFR5eU9ab1ZpVXgxVlltSEp2aXFPUlVqYi9KeG5tb2JGSXVsSWFQcmhEUEllTXM2a2NReGFOQXBwUnFqMi9ad25QajVEbEgvVElOcjdIeTdjZkRGTko2clNIbk9rZktnR3dwdnQyK0xJNWRVT1lRU3F5ZVc5VGh1V05oREpDN0Exa2Qwa1NuN0lBVUFoZjhuRWFtQkZTM1dKSVVqNWV2TGtxMnJLMHlvM1AwNGdVU25lbzM1Zlp5ZjVrUitqL1pLQW9MNVNzcmZUNWJlQkdhNGxMU05keVZMSkdDQ0ZRVXB5MzZZZnowcFNCUElmd3FTU2l6NUUwOWJhS080aU4wOFE1UlN1ekt3cjhSNGhSMy9sSXdEdEtYRWEyQmJJeUlRQjhvYVVMZUpUYWNoR1MxeElWY3llS3F2N1B4SC9KK3psbzE4NzVzem1KS3JINWI4aDNqUk5mNlZkVzh6TlJtZ2RrUWl0Q1dCVnUvWE1qRnJza05pZUlOa2N3Nm8reS9MejhzWjNBZyt0U0JqdVduSUNnRWcxckNPbVpNdTFJam5zMmVKRTlVYXY1UC9sdzdzUFh1RnAxLzBwUUtucFNzT1RIYVVPOW1KeDcwRGZmbGwrVzlvRHhlOWxib1FMbEFGUGNuOXlQOWpsY3UxTzdkRXBqb2dwdnk3OGlldmJvaTN2cHVPYkgxMDVGZnBqNkg5bjRjckhhMWJrTmZpZ0ZIeGZsZCtYY3NCdUZXL0NLeFQwek9uSW54QTlMK09UUGE4YXRuNHNhdTBSNWIvTDd5VW10eDNWcEZmSmRXTW9taU1zcWVoVkRWZVJXSUg4Zjlsamg3VEUrZXk0Y29KVmRSL0tYeVQ2bnFYTXQyOTFkU0hrME15OGZVWThqc0kyNGo1bkxKOXA0eHRlNFpHb3NRMTd5UFBhM1F0ZE9XUk5LWFpwaXdrSUJGU2VhbGZpcit6eFhLZjVReG5lN0xDV1VCZjVlOGsrV2JtUVdlcVNYTHpOMFpKRmpScVVyUUdOdW4rdGhQYU5lcWxoTytleVo2ditYUGtqVEdnK3JyYzNOeklRNlJOT2pKUUdsRy9kcmpQdEs0M0VzY3VTdVJTcFBLdmt1R1ZvOVJzcjZHWlFDZlF1SWlsRzhWZEdZVUc1dzQrMENSZk5oRE1PcVkzbmxEeWhCWlIyRUtYZHpieE9icHdaUTBpdE1pcCt4R2c0MFFISVpPMHAzNmFXZVU5RVBaZmw3NVJ1cFpLMjJwSkJHR0ZWbWg1TTZqOW5sSDkyVm50ZVVhNHEzUU0rNmMyMzVRZVJMcEc5Rzd2T1lBNXh0UENIV3ZTb01mWHRtWmo3UmhJWGJrUk1TTEJRR28vbGY1UXNaUGhON2NLT1hNZXBFVFVEZWxGWHBtTFB0ZTVWRm95WmFPekhsOG55WGZCb3RIZUMwTGtySUdLVGNBZnRzSDVHbjh1MlRPdkVEdlBmOEEyTFhISWI1c2l2OEE4dnZMOW02Q0dPNnVXRkdWWDlQMDZnVVV1VlhmcDQ1VGs3VE4xRWltV1hJUnNGMmwyVjdvN3k2bERabFR3V040N1JrRXBITU12MkswcWUzL0FBV1krVFVESU9BeTUvem16UzZrNGp0MVpDZGM4d3RKd1lTckVDb2FZb2pBTVR2OEtqbWVQODFNb2pJaU5DWCthNXcxdU03bGoydTMrdlhqVHlyWXpUZWt2QnBuMkRvNUlxRkhHbzNQTGZMdFB3UnE1YnljVE5ySkhhUEpCZVR2TDlrbXBOZVhjVnpwcHR2VGxpamg0TEhLVWFwRGVxd3FCL3Jac3pyUUJSSUxIQms3eXpmVnZORmpCYmo2aDZrcy9IbThaVkQ4SU5LZkM1Njc3NVJMVWcvUzJTMUE2SXV5MVdPOFdPOVpXU0dWRVlGVlJpUDNZV3ArSmQ2ci93QURrWjVSQ1YyekdRYzB4aHY3V09TRzRabmFOR0R0OEVkR0FOYVU5VDlxbVZadFdERWkyMk9ZQTMwUUxlYy8waGVTeVJhRTloYWwzS1NTZWdvRkRROFk0alg0djlYNHM1K2VpbEgxZUp4U1A4M2ljNmZhbUt1cUd2dFdqa2hrZGJFdE1pMWpuQWpZMVk4ZjNkYXNHNGovQUNjbGh3eUVnZUw3MnVmYWtlQWdCSWsvTUt6c3RWMHI2L2FPME5wZHd6Y3EvdFFtb0JBNmp4WE9rMDhzbk94UWRXTlFTZDJiMy81MFNYVG84R202dDZFcVA2VXNGM0xFckFHdFFnZGFEaiszVC9WelBHdWdPWnB0T1dQZWh0Yjg5M01sdEJaUS9YakxleEJGbmFTUzhGdWVhc3pTK3NlTEVJWEladjhBVXltSGFzSmlYOFBEL3NrU2xFYjJ0MHpYTkxtbitvdmVOY1hLa0tKekFpbGl4N3FwQ3JUTVVkb2RUc0V3enhKcE9KVHBpUks1NVNIb1VXTlN3UGlWcms0ZG9RSnEyNHlBUXNsenBCY0RnVnIxYVdJQ24zSEJrMThRZGkxSFBGUXZiN1NiU0JuZUpuS2dGUXNaUVVJOTI2ZlJobHJRQjVyUE9Bb1FhOTVkYUlTeVRHQ1hvc1h4VnIyM0I3NGpYQ3JLQnFJb2l4MUxRN3VZeHhYYlJ1bzVLQUdCSEhyMzJPQWRvRHFtT1lGYnFGekRaU0sxSnpDVkwrdVI4TlFlZzNPK0hOcnhIa0xUS2RKZHJ2bU9Pd0ViUkxOY3l6ZkVWWlFEUTdrN0EvWkdVZm41VGxVYW9OR1RVVWRtNWZJdWplWUkzMXk1dUxxS1M1VldZR2FTRW1pOFFGUlhDOUY4TXpSck9HTzlOd2xZdTBzczdIU204eEpkeXkza0owaUlKQy9OekZJVVVva2NpbW9QMnF1Mll1UHRNZzNLcWFCbVBGdWRrRkYrWDNrMmVYOTc1bDFXRzRZcVhoNWdJR2M5RStBL0RYN09abVB0VEhJY21RekR2VG1UOGovTGlDc25tYlZsK2MwZi9OT1hIWFl3TjZiZml4dS84bC9sL1ozYVd6ZVl0YWxMRUtXU1NNZ0UvTmUzZktQNVRCTzBkbWs1aGRXbjNsM3kxNUVpMGZXYlMzMSsva1MvaVNDNGE0a2pFa1hGaXdNZnc5LzV2aXd6N1FpQlpEWUppdWFVcDVEOGpSYVdkVWoxZlVMdVpBUWJDU2NjQzRyc1NxcS9RY3NweTlvRTQ5dlRNdFU1K25Zc2VlMzBxNlFSM01hMnFtaE1jVGxaRlFuNGZqSllLeEh4ZkZtUEhQa2lic3pjT09lWU4yVXcwdnluK1crbzZ0SHBzTnpyVFNTS1dYbmNRaGlBS2toUW4yZjlsbWQrZGx6NGZTNXNOUnhIbXozeXQ1VDhrK1M5Y2kxdXluMUs0dkxkSFFRVHVHV2tvNE5WUWc4ZjVzamsxc1NISUdRRHFsR3VhbjVaMWpYTGlQVXA1OVBrZWIxRlpWU1JkbDQwSWFoQXAzT0RGcjZqZGJPUFBPREpFYWY1VThsWFk1Mit1UElTUGlYakdDTzIrMlpBN1FpV1VlRTlVWEY1TzhySTdNbXB5eG1NMEpWWXQ2ajNCT1IvUFJQTm1DTzlZdmt2eWQ2aUl1cVRmRjhUT0JFS0NsUnVGeUdUdEdFVnVQSzFPNnRQTGVpRTJ5elQzRWJPcXZPeXhPU0pLQUJXNDAyOFB0Wmc1ZFpISk1FRXNaWlJIWk90UFR5eExvbC9vNmFqY3lXbDRDdHhHL0FOR3hVcTNFOFFPVlA5Yk15R3JnZCtUT0dVRWMyRzNQNU9lVzRLUGJYMXo2REVIbE9pOXpSZmlYWTVMSnFKRGxJVTB5eEhueElqWGZJbWxhcHFXbzZ4TExKNmtzaFl3b29MY2FmRFd1MVNNeGMydmxFY1VTRVpPKzBwdFBKSGxTVVJySk5MSEk1K0dCbCtLdjBaVkh0SExMK0pvaWI2cHN2NVVhQ3ljbHZYb3crSWNVNzk4dkdzeWZ6NHR2aGYwa0ZjZmxyNWVpNFNOZFRTUmx1RW5GSTM0Yjl3Sy9xeUV0Zk9KdTRyS0I3MFFuNVgrVlBTNXJlTTROS2tKSDErVmNtZTBwMTlRVVE4MFFuNVM2QkxHMDBkeEw2WTJxVmkycDJvVDF5eUdzeUVYeFJaZUdlOVRINVM2SVlnMzF4a1VuNGVTUWIvQVBEREpSMTBxc3lpandmTlJoL0xQUVpXcEZxTXpqY09xSkJSU0RUZXJybGY1K3pkaFJEelhwK1czbGoxbmllN25CaXB5SldGZDJOT1BYcmpEdENaSkZ4Q0JBWHpSaWZsVjVhb3pyUE8vSGRncGhCRmZweXo4MWtQOGNXWXhYMVhuOHRQTFltOUpubkxqYjdjWTdkUHRaVithbmYxeFh3dk5HSDhvZkxoWlkwdVZkeW9ZeEdZSzRyMk5hRDhjUDVqSi9QQ2ZCODFHYjhydEdoTHl2YlR1QlV5TjZzVGovaFd5dWVweWpuSkVzS2cza1R5cTNCRnRwejRqWU5ROXhSL2l5c2FySjBrdzRBb2p5TjVTOVQwbnQ1bEIySDd4YW1tNTI1NC9uTXQ3eVR3ZWE2ejh1K1JiUFY3ZDQyZGJ1M2tTVlltbFVIbEd3WVZCYjJ5WDU2WTM0alh1WW1JdmNwWnEvbGp5d3NGM3FNMEx2ZEJtZG1FZ0Nrc3hicHlyeDM3WkdXc2xJN0ZaMFdJUVgrblhzc1FUVG9sc2p4UzRsREZYVnEwb3BxTjZETHpMSkhuTThUaWtrSnZxSThqV2NxSkJwMTdPZ0FaNVN6S0ZCN2JBcjE4VGtCcWM4anRJVTJtWVRUVGREOGxUNldMdWUwbFZwQjZrU2lRMFpEMCswMnh5azlvNUkzRW4xTENZUE5BK2o1SWFWNHhaTy93MWpkSm1BOEtNZXYzTGhqcTg0RmtvRXdGa21tZVdZRmthYTNKQzBLTHlrQitJOUJ1T1crUUd1em5ZRkJtcFdWejVjbGE1QTB6aTBhODZNV0lLVUlxSzViUFBtRmVybWc1TjMvLzBvaEY1azBRVE9qK21zUElzSXdsUnlHMzQrK2NSUFM1QzY3Wko5VzgzM01jeEZvOGNkc2praDJRSzRCb0NBY3lzT2pCalVodWdTVE9EemxZWEZ1alNPdE9RRkZxdFFOcStHWTg5RklHbVJrRVRMNWsweTNqV0lUbHZWcnlDQ3BVRWZEL0FDN2Y4TmxjZEpNN3AyUXFlWnROWnVFVXNxTHNHWTFGUGwxeXc2U1FRYVZUcXRrNy91cmtzTnF1U1ZJQXBrUEJrT2lMQ3V0eFlMUnJpOFprbUJZN2dBVk5SeXBrZUU4Z0UyRlpOYzBhRkVqOVNyVnFLVkpxZTlUWGJCNEV6dXpFZ3FOckZvamNqY0NwSFZRU2Z3R0E0Wk1DUWhIMUsxbFZqRTdTVHF3STU5Szkrb09TNEpDa0dRVklyKzJZaFhZUlB3UE5BUVZGTzFmbmpLQktiQldSWGZydFZKWXdZcUdqUFFFMDhSL0wyd2lCaW9VZFJ2NFk0U0VNVWtyVTVSTVFWWnQ4bGpnU2ZKQms1TlN0NW9HRXNLTE1xOFl5T2g0L1pCMjZZbUJDSmJwTmU2L2VSWEt0SVZaSXlHWGtLYjBvVldoMkdaV1BBSkJqdUU4MC9XTENleldWbVJISHdtTWNqU2dvS01ldTV6RnlZQ0RUTVNWUDB0WkQ0a3V1Ulg0ZURkZC9EYjlucmtmQVBjdkVyV1dwMkYwaFZwNHdzYm1pTVJVa210YXRTcE9RbGhJNkpSbHhkV1N4aHk2ODR4L2Q3RmdCNEdtMytWa0JHWFFNaVZPU1RUWkFxb09Vdkxpckt3QnF1L3cxNjRSR1RFZ0xMK1hUNFVIQXhlcjZuOTYzRTlGb2FkZXRhWktFWkJFcVN0YnU0YS9Wa0NVUmdCQ0dDaWhKSEt0Y3U0Qlc2SW9qVXJtYUc0dDA0UnhnZ3RIS3pqaVdxT1FPK1F4NFFRVWwxeGYzRnNBRUVDQnFGbVVyWGlhN21wOThNWWRFQTF5VkpQTWNFTlZLeGMyRkNRUWFoZDZqcjhzaU5NU3BMY2ZtS3pQU2FPSlcrRUY2L0UvZHEveWpFNllySFp4MW5URE8wY2x3czVrb1BUL1pKTzFSVThjSXdUNW9wZkpxR25zekxCd0VsQUZBS2dWQjNJOTlzZkNreXJ1VVd1SWtZTUpvRWFSUVNqT09RQzlhVkI3bkRIRVVDSlZKdFhYMFZobGtpbzVJWU15Z1UzOE9uamdHQTlBeTVOSnFsbGNLNGo5Sm82SGtDM1k5cWRjSnhrTFlhV3owMHVXa3RvMjVqaXNpR2pDZyt5RFhHSmx5dElJRG9aYk5iY0pDaUxESFJlSWZZQWZUNFl6RWlXUmtGOXZxTVYxS3NhTXNrWUZSRVhCSkcvN08zMmNoUEVRR0hGZXlsTHArbnRMTFBNdm9zaWtJb1loZHp4UFFqeHd3a2FwaFMxWTdROGx0MjZrcnk5V3JVVTBEZkVOdXVTa0RiSWtkRkdMU2JkS1RHS0I1QlZKSGtJWmd2VGFtM3RYSm5KS3FzcUVYeVFGekkwVEJGSldFMFZWWCtWYWVJeW94S2JSY2oyOGxvcVNCWTRwUjhJTGNhMEhRZzc3WkFZeURha2doREMwc09TY0U0U2tnaHdOenZzSy9MTGFrZ0FCRWZWTHoxUFZlK1YwcHUzRUthVUlYcC9MWEJLSTdtUnNkVUtkTG51SjVGRjJzaTlPSzdOeTJOT1Zja0RRNU1TNGFiZnFPU3orb0kxOUxpZXA0bjR1VzU2ZUdSa1IzSkpYcnBTUTBKNEtDM09wNG40bS9hMyt6aVpFc0NGQ3kweElmVm5qdVlnaTE5WjFDczVIWGVudjF5VWlUelpBSnZheGxiZU9OSlNVakh3MCt5Szd2dHZsY2diYlJNOHJVMmpwRUdFd0pIeC9GMTQvTHBYQndNZUVJSnJqbVdqanVsQWJmMDAzM1BmMzhjdDRPOUJLcTF1N1dwRTg1V05hbGtBQWI2ZS95eUczY3hNdHFRMGlhWnhYbXI4SXdWQUM3ME8vSS93QTNUSkFGamEwcnBseEdzWXZKWStUVlVmdERsc2V1L1RKRGJkSWs1dkxVRTBUeHczaXNKcWNpNkJqVUVHb1pnRzdZUm1vOG1RcEV4YURiMmtreFNkUTBsT2NRUThkaFRyOFdRbGs0dWFDRmkrV3RLdUlRek16S3grTGlTQTFkdTNoNDRSbElSR0t4L0t1bU94bE1JYVVzQlUwQUlYYWxLZlp3alVTcXJUUUtJSGxxMUVrZHdsWXArWkx6S1FHTlJUaUcvWkZQNWNBelNxazhLSS9SbndCQzdOTUJUbTlDd29LVjVFVTJ5dmlKSzBWcDh1K3VrbnFBTXowSEZnTmpUcnlPOVRrdU1qa2pnYnN0SGh0bktDM0M4VDhOQnNhaWhxTnNFcEU4MHhqVG83R1NCeVRJdXdKNVVyOFZkaU92dmlXWVE2MmdOdy9xem1qa3FxcWRnUGVnNjRDQTBycDlITW9qL2VjMGlJWkVadjJnTzlPdStNZHI4MlZXcC80YWdhQzRuZjRqTFI1S2ZaWHdJUDJoMHlmSExhdWpJUWJ0Tk5palJiVDFDSTY3MG1KSGpVY2hzY1oyZDJQUk1ZdEh0WTRwdURNcGthc2daaTNJRFkwUGJJRVg4R1FpcHBwVWxhbWRJNGdlS3FPdE8xVDF5UENHUENzdW9KTE9QMW1xNlI3VkE1SGhYZWcycmlNWVVncmJBMlU4amxKbGREOFh3YmZINEd2eEhwOFdTTUNFQTdycmhHa1QvUnlGbFJ0MXJ0V29GU2VuZW1BUUZzankyWFc4TnlJRitzeWhYYy9Db1BJQ1NtL1RFZ0E3S0NVUko2Y2t2cHB5VU1vNUNnQUo2ZGFZQkJQRVVIYzZGcDdSdUpHZFZjRlRSaURYcjI3N2JaT002WThLMnowelRBWDlJU2Vyc0pYbEpKTER3K2pKU2tTaWxadEpEU0V4VEgxRVdpS1dvQ2R5SzE5OHJCU0xYNlhwQk1qeVhna05TUFZSWmY1ZHFBamYvV3lRRWVaNkppQ1R1aUxyU0xPU1VYRm0wcXhrMDlOcEN4U3UyNU9Ta1J6RE9ZcmtsczBXbVFKTkhLR0FsK0Z6emJmZjI2Wkd5d0dRaHVPV3poY3NLVlJhSUY2VThCVHIwd0NKdEVTaXJhd1M2V3FBUHpYNnpISThnVWNSMTM2aHFEN0dXakdTbWlVbE5wb3N0MDl3bHZHMHByemFocXExclVuSGprQlZ0UjV0eDJXa1NNZnJGc2VBWWlPbklnMUJCNVlpWkhKbUExQm92bHpUclpvTEtDV1dJdVhMQWN2ZXUrNUF5V1RMS1pzbmRTQmUyNnJOYTZNWXZUYW9lNTRLa1RmQ1dZZFBoOGFaR3lPWFJqWVEwaDRsNFFxQkZRcXFrN0tXWGJiL0FHT1JxemFMcEFXR2syTWQxNnFXd1NKQ1Vra2liOW5iN1MxNisrWkU4MGlLSldVckthM3Nlbm16OVVRbGtLOUs4U2VSMjNPWTRKdGwwUTF2Y2FleVNJYlVDNFJDVTMyTEVmRnZ0OHN0SVBleGYvL1Q0YzhONHdBaElhUUZ1VHRRVVZUMEJ6UzNHemJxZzIwOEU4WVdZMHFOMk93Skg2OGlJa0haQ0l0dE9XR01qbXZFN3B5N0Q2UEhLNTVyS2t0YWhKQ25CU3pQUVVXblVVK2VPSUVvVTdmMHJrbHJlVmtJSTVJNG9DUG43WktkeCtvSkJLT01Fc1Vpa09TZC9oQjYvUEtPSUVLVmRqTXNaV1JsYW82ZUF5QXE5a0lXU1M0a25Ld3pLa01ZM0cxUWV3SGZybG9BQTNHNjIxRUxwcGY3MG9WYmNocTdlSXduaEE1TGFNV2FoSURuaTFLbXRUWEtURkZxTTk2dG82aVNXcnlIWWRxRStQYkp4eDhRMkRJRmI2VWMxMHR3WmtaVWFpVnFSV25YYW0rR3pHTlVxSllvVkZYVm1CRkRzZCttVkMxUTk5ZmkzUlZrTEhZMElQUVYrZVdZOFhGeVZBSkpCZU92NzZoL1oySnIvckhMeURBY2trVW1VTU1zUUZaZVRyVUtLVUZLVXpIbElIb3hKVTRYMVpKZzBvUjRxR2lxSzFQdjRaS1F4a2JjMXRYVlpBTmxGRDhYSWRSWHdya0xDUVZrU2dsanlZQUhqeHFCdjNPM3o2NFpGTnIxaW1aUVVrTEFiRnZuM3lKa0IwWTJvU004VGdPQ3dhZ1pqMjM4Qmxnb2hiWHBDMGtsQ3hwdTNjZXd5SmxRVGFJa3NUeUQ4aTNBajRTZHFnN1pBWkVXMmZVV1FoNHcyMnhwV2xSMU9OaWs4U29KRkFQN3NGanNSeDMyeU81Nm90ZElDMVdRQkQ0ZFNQb3dBMHh0cU1xQ1JRbGtHelVHNUhTbUpKVGEyU1lIWm9lUkoyb09uZkNCNXB0WjZDcy9JZ2hTM1R0U2xBTjhseEdsdGU2Z3R5WGpYbzYwMlAzNUcwRWxUTWt5UFdLSkE0NlBTbFI0REpnRHF5QlgvV0NVSHFyd2I5b0U3VjY5RGc0ZDlrRXJvMlEwSFU3c3dBRkJrU0VLWDd1S1V5UXNRNUZHY0hmcjI5OGx1UlJTTmxYMW5aZ3JOVkN0ZmlOU2ZEWTRPRk5xaHVJRURLUVRYb0IwMnlKaVNVV29YTFF2Q0NwSWtEQWx1UnBTbjRaS0d5YjJVYk56SEMzcnlCcVVvdnNhMDYvTEp6Rm5aRm9obXRwYWw1WGZpS29yTjhJSnBnRzNSTnI0N2VrZ0p1SENrL0Qzb2V1eDdZREx5VGFKcW5HUUNWeXJDZ29mdis3S3ZnaTB1V0MraXVraytzL0E0SlluMjJIVEx5WW1OVXRvMFN6eHR5TWpSTWFWNEVrbmJlbnp5dmhDMjR6RnBWZEpub0I4VlJUZW5YcDF4NFFFMnB4M01YcW1ObUFSZ2VRSHcxNWRlV0hoNnFDaVlwWm9TRjlaVVdoQ0FHaG93NllERWR5MmhKMEQxRWt6TVVZMVdoTkNkcUh0dmtvME9pcjQ0TFljNVk0enpBQkZLcWR2bGdsTThtTm9pSzZFY0JWbms0bjlrc1dGZnA4S1pXUmFTVjMxMmNzc2JTU2x3S0JhN0x0NEhBUWkyemNJamxrcHpTbEdacWI5K25qa2VHMDJtRUdyckVpaDRmVm9BQUJUaFFuZmM1QTRtWEVqWVo0NWkwTHlUSmI4YUJBUjMzSkRBZy9Ea09Ha2lhWVd2RzNVUnh5dE8waEJWbjZLS2pZTHRsY3JMS0ozWHAra1liZ2xZK1NONGJBS1RYMzNxZC84bkViTXVxT2hFemZGSndDcldxZzdpdXdQYkdtUUJkZHVFUXNHUEVuWUJSV29wdmdwQlE4dDFiS204aitvd3FxZzlUWHI0OThrQWppQ2tzNnF5c1BXZmtlSUI2cUR1YStJeElSeEs4ODRvREhHdnF0UW9Ec2EwcnVjQkRJbGVaRkVZZmdxdDFLZ2c5dTFjQ0xDSGpqaWo1dEhHR0IrTW5kVFh3Nm53eEpLQlN2SlBHaUZ2VVBwS1JVTHR5STNJSnhCTExqUWQzZnFrSWFHQnBUVUJvSDJOQ1J1S2loeVVSM3NiQ05Hb3dGT1lRczFLMHJRMUg4Y0ZyeGhUR3B4UEd6eHdNa2dyVldJQXJzYThnVGlrekNnMXhiWENGWkxkbXIxcVNRSy9JNDBVY1M5TGZSN2RJd3R1SXViTVc0QTFKTzVKcHZoSko1c2RsR1JJRmxkWVJHcWdCeUhGVkpEVTN5SUpTQ3BHUlk1VktOR0YzSkc1RktlUGJmRHcyR05vcUxWb1F2UGlybGFGNkxRN2lvRlNjUUdRa0Y3WHlTTHhFWTIyNi9GeEh4R2hHQWltUkxSdTR5VWFSWTNHM0pWQm9LMXIwN2ozeEZwdENwcXBFb1JZa0VsUnltSStLaEh3MHJYdmp3a01lS2lwVDYxZHhySXF3SnlXb2tQS29xYVVPM2pYZkpDTEV6V1d0N0xNZ2VXTUFiVllDbzNIWVZOTWFwUk8xVXgyTXhXUjIrSlZvRjZBYmR2WTRDdXhRV29UQ0pGa2lISlFRb1ZCOWtFMEkzN1V5VUJiQmZQZHd4cXFHWUJ1SnFDVnFPNUZPbTJKaVN5SGtnWTlRdGJlWlhEOHdsWE1qZkVRU09wTk44bjRaTEdselBONjVuVlNZQUN6bFRSU2RpZXZXbklmRGdyWmF0YXV2ZlU3dElvb0RISkp6RGxneHFDS2tLd3B4cVA4bkpqRVNMWGlwV3Q3aTN1VHhtWW5tT1lyVGxRRGZjR3ZRZjhEa09FaFFYQ3lzcmx1Q3lsRlZlSzFvdktsUnNEOFJ3OFZMemJ0ZEp0YmVwUzdrNHlWRW53QW1pajRTYTRaWkNlaWVGRWsyVnFpcWlNWTIrTGMvQ2VXeDZDbVFKdGx3b2UzbjA4U1BjQ3pad1kySlp6c09vcXA4Y3MzVHdoLzlUakU5eHhmZ2xPVlRTdlkxMzY1ejRqM3VuSVU1OVBqbVpDOU9KSmIxRk5PSXB2aGpsSTVKdWxhR2hraWhER1JGRmVmamtKY2lWVXA0R053ZVlOYUd2Wmh5MkdUakxaYlVMZTFoZ2w5SU1RL0U4YW5mcms1VE1oYVRKR0xVZ0w2aHBYNFNkdnB5ays1aTNNQWtvY3lja0hUY0VVSTZtbU1keFZJVTRHaWVZc0s4U0Qyb3UyM1gyeVVnUUV1aUVWdEk1TDFKRlFOeVFEMDZZSlhJTFRhOGxqNVVKSFhZME5TZS9YRTgxcERYMWtzMUpHYW5IdldnSk85T21XNHNsYkpCSVgya0JpaEk5UUdJS2FiZC9FWUp5cythMnJMYjNIRU9zZ1dNTHlERWdVWTVYeER1UWg1YkthNGhLTEowYXBKcWVSOE42VXkyT1FSS1ltbTdmVExxS1NNc3dGRHhaYTBISTlNRTgwU0N0cHdsalZveTdGMHBWOSszaHRtR2N2TkJWcld5UzE1cHk1amRncE5hWkNlUXkzVmRJYlVzWWlDV2Y0aHZUWWQ4QTR1YUxRN1IyYkV4ckp4cnNRZXBHV0F5NTBpN1gvQUtORGpsRE9Zb3FiZ0h4d2VOWE1XVXFrY1FWcXZLdkVIaUY5L3ArV0FtK1FTMkFyUHpWaXhVY2dCMEk2Vk9SNUJTdFNQNFc5UTc4ZVJIaWE0U2U1Z0NwdzJVNGtyNnhJTzVGZXg5OGxMSUs1SkpSRWVsU1RUTFNSa3JVbml3M0s3bWhQVTdmRGtEbUFISmxHTnFrOXZFa0phRkpYbDlZeENQWXNVSzE1R25oKzFnaklrNzF3MHlPUGJaQ3ZjUng4UXdvRFVLQ2FFOXFqTEJBbGdBcEpjUjNTYzR3MndwWHdQeXlSZ1ltaWtCcG8zamNHS1VoaFJRTy9Md3lRTE1TQVYwZzVvM3hEa2FWOGZubFJuVEdSdHpReXFBb0pPKy9IMlAzNGJRaDdwWSthUnpWNXlrbGlmcytIVTVPQlBNSVVoSEVwZVRteE1nNEtwOEJTbXcyMkF5WmtUc3BLMkNyMWpVMElyeDVWNmRlMjJNdHQxQlhSSmNNVkpaZU5maTVHbFB2cDRZbmhTcS9VdFVjcUFPQVBhdTVIMDlzSEZFS3JmVXJxQ0YyZEE3VjJYMnBVNUhqQktxUktxSEVrWEZxZ3NEMHFkZ3UrS3I2MENWaEhNVjRvS2N0L25ncnpRUW93Nm9raGFOa0NrQTdGZ0sxOE5xWk9XRWpkYlI5dEpVY2xqNHEzUVZCcDM2REtKQ2toV055MDVST0FBakpWZUlGZHp5TmZ2eHBMVHE5UnhvYUE3bnB2Z0d5aFRXQjFscFVFa2hTUnVTYVpLMUxTMjhoWWhDR1VkZGgxNjByaEJSVGMxc1NpaDZGbE94NjdEcDB4RWtoeVFNbytFa0ExTlJXZ3AxMndjU2t0Q1pPZnBGMkREY0tBYUg1ay9QRXhOV2hXaVpXa1Q0blZCdlE3amZiNk91UnNwRGtBa1pqeDVGV05HSGNEM09FN01TcHpSSUNPTEJuQm93cFRZYjF5UVZ0WWtZOEtzaXN0ZVI3OGFiQURFN0pDOUpabzZVTGJBOVRzS2ZMSThLb2xOU2R5R1J3bmJpRHQ5MlJsaUJaQW8ySFhYQkNlcis4SSt5VFErOU1ybGlUeEprdXFTb0JSdVJQN1RFVVAzMHl2Z1pjUlZZOVJjTXhrWWZGOEtpbTQ3K09EaFk4VGJYQ2NWZWlQeVltb05DUEFGamtTVnRVTThwSytwSFJtUDJnUWVLL1RUSXBWWHQrQ0l5Vll2WDlxcEhYd3drcVhPSncvSDB5MFpHN0FoZ2RxbXFqQllTUTBVZGo2Z2pOV0o0QVZJRzN0aDRnaWxHNFM0S2VudXJzZHllZ3BXZ3AvTlQvaHNGcExVVnRjQTBrcVBTb1VZMEo2YjlOamhrR05GQ1NPQXd0aUdLVUozQjM4U1R0M3lLS1F0bHFrTHlDMlFPcFdqS3FyV25XdGFWSDM1YktCQXRDWkZyUXlQRUoyVXFRWnVXM0VuZnFSa0syWjdLb2hnUnk4Y3ZxQ01sR1dvcnVLSDdoa2FBUlRoWnZ5VXN3OU1xU0hGQU56MzZrSEVTVFc2bWxwRHlkZVh3Vkh3RWJrbXBBeVFrRVVxUGFpRkVaMVVGL2dJTktrL3MrKytEaVpHRkxmM01ib2kvQ0N2SUtPcW5meDM2WWJXbHJ5Tkl2SlVCVG1LdURVVjY3L0FEeENPRkZMYnlyQzdORXJTQWx3aW5jQVU4TzNJMXdsbkdOb0s2WFZtV1I0YldQNFF6cXFuaUN1eWhBQjhWZVdHTlh1V1hoMkZDd2FlWm1obmdrU1doWXVhRkFhbjRVSUk2WktVQU9SYXVFcTl2cDF5OFRiaEVJS3NXcnNRZHFaQUZlRXI1N0M5TWtURjFLS3krcENWTlhUcVR0L04vazVJRURtbmdWNWRQMG1kaThjQzE1VkZhc2ZzMHdjZmN6cTNXMm5LTFRoQmF4eHB1SGpBb0NRZDl2REJ4RXNRT2lMYUoxUS9aK0dnQ1UzNHIvYlRCYVJDa05jYWZieXRHNzFRcUs4MTJPeDZOaEV5cEFRdzBhMTlXaXJUYXFzVHhKUGZjRHZ2aE1rQ0N0SnBucC9HVDhTZzducUIxK0VaRTJ5TWFjYldKbzFUbVJJNStKalFlK1N0RzZuZFdjM29MQ0ZVdXpVS2RRQlNwWVZ3RXFvblQ0dmdkWTJyeGJtcDIvWlBFVXJURHhJZi8vVjQxZXJhay9iVldxMUQ4UlBYZnRtZ2h4VzZrcVN4TDZLY3BoeHA0TlNuL0EvZmhKM1UwcTJNVUl1QUk1aXpkU2FNQjh1bVJ5M1c2b3E3VTgyS09ESlN0S0dsUERwbE9PdXZKaVVNeVJOeDVPaVM5cVZwWDZBMitXajdFMHR1SUxmNnR6VzRUNndBdFkxRW5KZzFlL0VBQlAyc2xEbjVKQVUvU3JhYnpLQnR6SUZmaStrWWI5U05rUkFqZWd2b1NJVThBRyttbGRzcmxWN3BLbktxaGpWMUpwUWc4cVU3SGNaS0tsVC9lY3FiZE56VS8weVZCaTE2YkdaS1NrRVVyeURjVDQ5aU1kcVNMUlRpTUtLbFNLSGpYWWRUbFlDbEN5K3RST2REQnRXdGEwOXRxNVpFUitLTm1vVUJaQkc3Q015ZmFQTFk5dWkvcXd5ODY1S2lvMGIwcEt1dGFubWZpcnlydDFIaGxScXdxdkdzNDQrbTRNZkdnKzFTdlk5TXJQRDE1cEtKcGNnZ0VxWmVJMzc4YTl0c3JxUHdRc0N6aVZXNUlkdGxiclgyMnlYcHBRQWw5eEdoZERKSUJSeVNvNWIrSTJIam1SRGxzdTFwbkI2Z3RFOUtoYXZ4RGZ4OTh4cEFjVzVVcUpFZktMMUNoM0pXdjhBTjNHK1NyblNVVGIvQUczTWZHdEJRRHBTdVZ5RzI2R3o2dnFGbW9RUWVhZGdLK0p3VUtRVnNvdWVFbEdCSGZqWHJVVXB0NFpLSWpzd0tNdHpkaU1FS0MvZGEveHltUWpmTnNDdHAzSTNoRVFJdU9EL0FCSVJYaHgrUFlqK1hJNUFPSGM3TmtMU0s3TnZ5YjFWV28reVZKcVQ3VW8yWnNBZWhhdXEvVEJCV2N4SDlyOTRvclRsMzNJL1ZoeTN0YVYwNXZRcW1NSXhCM1d1NStXUmlJM3VWVTdVWFJuSmNxcjdiRGtUdzk2NFpDTmJJVmJvM1lSdlFVTXhJRTFEU252OTJSaUkzdVZTMjlCS0w2eFZRS2VtWDVFbnc3VXBYTWpHQmV5cXNadURiZ01Bc1hZZ2s5OTY5OGdSRytlN0VvYUlYUklyUUQ0cUExOGV2VExDSXFFY0lveXE4NWxXSS9iNGdrQnZvR1UzODJTYXhxL0tIaTFSUVVyV3ZUNWVHWXByZFYxd0xrU2ZhQlhZc1dyNDlNRVFFb0cvRG1UNHl3bFBMZEsxQjl1SXkvRUdPNkJDdDlYYm14NlVUank1Y2R1UjNIS3VYYldoUmppZ0JvSnl6YjhYSWNIajMySXljaVVwcnBxMFQ0VzVLZnQwclFEMzVETWJLR1lSaDlXcmVsVDFLbmlCMTQ5NjdkY2h0U0R5VUlIdTZrR05UQUFBaHFLbjMvbXdrUnJudW9WSk9BakgyV3FmaUlKRktuYWxCOW9aR0lWWk1HRDFTamJqa0RVQ24zWVloU3JXNXVCQ2dSVkxFbmNubzMwN1pHUUY4MVhXUjFNTVRPcU1OZ0FTZU5kOXhYYjUweHlDUFFxaTBLRzRISVJxTnFrK0dWVWFTVzdrRVJuZ1EwbGZnN2I5cVZ3UUcrNkV1Y1M4VDZaL2VpbGVGYUg1OFJUTWdBS1c0T0pIeGdMSnY0a1Y0bnd4cmZaUTJpclFmRXBOU0R5NWJiYm5wZ2txeVdJczRaSmlrYXRVb2lraHZhdVdST3lVUUZnRlFyY3BpQnVhMEE5cWpJU3UwSWVyMTRxcTBxM0ppZmlyWGJ0WEdoM3FFVk1KVEFQWFpWa3JSUXZJajVuYklHclZIUmMvUUZPbTlPUk5PdS9hdVZUQXRVZEJ6TWZ3VVhjR3V4N25acTlzcG9NZ2lveWpiRmVBM29RYW5wdmtDRWhNWVRGNkpDQ2pjcWhpU1RXbXkwcGdEUG9oZVVucUVjRDZuRWZHRDgrTlFOc2pJRHZZbTFXTm5KVXNvVjZLQ0trbW0rNXB0dU91TkJMcmg3MmdNOGE4cXFJMUpOQU9KMy9sNlV5WkE2SktuS2x4Nld6a3R5VXlFVjVWMjIrRVpGaWJXUDZQcm9EeDRoUGpadGlUVFlFVU9UVXFHblJXSXVDMXJNR3U2RUJDQ0R1VHhJSkhRZkYxeVU3cEFwWFpMQXpIMXBFVzU1RG42b0pPeDJyVWR6L3d1VjdzdXU3WG8yWmMvVnJobFVNUUNBL0V0eUJKK3o5R0UycFY3bUZlSlpyajkxeVVoQ3JmYURDZ3FCMFBmQXFsQ243MlVUTzNxamp6SnJVZ01lUGJ1Y2lReEhOcThqdDN1U2JtWVF5Y2hSYU0zeGpvQnRUZnYvbFlZaGxOU21qc2ZVWUNhdDJKQ2FzRzVGZU80b0JrK2l0Mkt4RG44YU1oUHdDUU5RR3UvS29DMXJpeUZwbGFpNytzU20yUDc4YlNnOGlEc0RWcWpwVEJSWnh2b3FyekNNR28wWkJvUlVVVDRlWHZnMnRNVEtsQmZXSElSOENBOWVSclU3YmdEcU1RRGJBMjNId0V1KzlVY2pxRkhXb0czWENRamRES2wweVNFU2Vtd0lJVnd6QXJUNGdOdWxmOWpnQVJ1MVlnQ2VzQkpKUThsRmFBMTZFa2RNSzdycmQ5YTlOK1VZNUxVTDlrY2xyMU81cGtpQjNxT0pEUnRyYUZsQ2lSMVpqenJUblVqWUEwQW9mOWpncVBlajFJU1p2TVBxL3ZrSHBBamtGSy9GOFZOaVArQ3lZRUs1bzlTWnFMdFozcWVhYkdJaW9QVHBUcGtKQkk0bENkTDQzQy9HRmtLL0Z6REdnNzlza0ZOcUVvbENoV1lOSUtWZGVWQ2U5QlRiSFppcXlwS1F0WG9BcEtraDZVcDBhZzZmUEFlYWdkN2NmMXVyRktlblFod2VYVHgzMy9BT05zSTVwM2YvL1oifTs="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
40 <link href="data:text/css;charset=utf-8,div%2Edt%2Dbutton%2Dinfo%7Bposition%3Afixed%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A400px%3Bmargin%2Dtop%3A%2D100px%3Bmargin%2Dleft%3A%2D200px%3Bbackground%2Dcolor%3Awhite%3Bborder%3A2px%20solid%20%23111%3Bbox%2Dshadow%3A3px%203px%208px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bborder%2Dradius%3A3px%3Btext%2Dalign%3Acenter%3Bz%2Dindex%3A21%7Ddiv%2Edt%2Dbutton%2Dinfo%20h2%7Bpadding%3A0%2E5em%3Bmargin%3A0%3Bfont%2Dweight%3Anormal%3Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bbackground%2Dcolor%3A%23f3f3f3%7Ddiv%2Edt%2Dbutton%2Dinfo%3Ediv%7Bpadding%3A1em%7Dbutton%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Ca%2Edt%2Dbutton%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bbox%2Dsizing%3Aborder%2Dbox%3Bmargin%2Dright%3A0%2E333em%3Bpadding%3A0%2E5em%201em%3Bborder%3A1px%20solid%20%23999%3Bborder%2Dradius%3A2px%3Bcursor%3Apointer%3Bfont%2Dsize%3A0%2E88em%3Bcolor%3Ablack%3Bwhite%2Dspace%3Anowrap%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e9e9e9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27white%27%2C%20EndColorStr%3D%27%23e9e9e9%27%29%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%3Btext%2Ddecoration%3Anone%3Boutline%3Anone%7Dbutton%2Edt%2Dbutton%2Edisabled%2Cdiv%2Edt%2Dbutton%2Edisabled%2Ca%2Edt%2Dbutton%2Edisabled%7Bcolor%3A%23999%3Bborder%3A1px%20solid%20%23d0d0d0%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23f9f9f9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23ffffff%27%2C%20EndColorStr%3D%27%23f9f9f9%27%29%7Dbutton%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cbutton%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%7Bbackground%2Dcolor%3A%23e2e2e2%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f3f3f3%27%2C%20EndColorStr%3D%27%23e2e2e2%27%29%3Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23999999%7Dbutton%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cbutton%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%7Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23999999%3Bbackground%2Dcolor%3A%23cccccc%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23eaeaea%27%2C%20EndColorStr%3D%27%23cccccc%27%29%7Dbutton%2Edt%2Dbutton%3Ahover%2Cdiv%2Edt%2Dbutton%3Ahover%2Ca%2Edt%2Dbutton%3Ahover%7Btext%2Ddecoration%3Anone%7Dbutton%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%7Bborder%3A1px%20solid%20%23666%3Bbackground%2Dcolor%3A%23e0e0e0%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f9f9f9%27%2C%20EndColorStr%3D%27%23e0e0e0%27%29%7Dbutton%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%7Bborder%3A1px%20solid%20%23426c9e%3Btext%2Dshadow%3A0%201px%200%20%23c4def1%3Boutline%3Anone%3Bbackground%2Dcolor%3A%2379ace9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23bddef4%27%2C%20EndColorStr%3D%27%2379ace9%27%29%7D%2Edt%2Dbutton%20embed%7Boutline%3Anone%7Ddiv%2Edt%2Dbuttons%7Bposition%3Arelative%3Bfloat%3Aleft%7Ddiv%2Edt%2Dbuttons%2Ebuttons%2Dright%7Bfloat%3Aright%7Ddiv%2Edt%2Dbutton%2Dcollection%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bwidth%3A150px%3Bmargin%2Dtop%3A3px%3Bpadding%3A8px%208px%204px%208px%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E4%29%3Bbackground%2Dcolor%3Awhite%3Boverflow%3Ahidden%3Bz%2Dindex%3A2002%3Bborder%2Dradius%3A5px%3Bbox%2Dshadow%3A3px%203px%205px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bz%2Dindex%3A2002%3B%2Dwebkit%2Dcolumn%2Dgap%3A8px%3B%2Dmoz%2Dcolumn%2Dgap%3A8px%3B%2Dms%2Dcolumn%2Dgap%3A8px%3B%2Do%2Dcolumn%2Dgap%3A8px%3Bcolumn%2Dgap%3A8px%7Ddiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%7Bposition%3Arelative%3Bleft%3A0%3Bright%3A0%3Bdisplay%3Ablock%3Bfloat%3Anone%3Bmargin%2Dbottom%3A4px%3Bmargin%2Dright%3A0%7Ddiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%7Bbackground%2Dcolor%3A%23dadada%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f0f0f0%27%2C%20EndColorStr%3D%27%23dadada%27%29%3Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23666%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%7Bposition%3Afixed%3Btop%3A50%25%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D75px%3Bborder%2Dradius%3A0%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Etwo%2Dcolumn%7Bmargin%2Dleft%3A%2D150px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Ethree%2Dcolumn%7Bmargin%2Dleft%3A%2D225px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Efour%2Dcolumn%7Bmargin%2Dleft%3A%2D300px%7Ddiv%2Edt%2Dbutton%2Dcollection%3E%2A%7B%2Dwebkit%2Dcolumn%2Dbreak%2Dinside%3Aavoid%3Bbreak%2Dinside%3Aavoid%7Ddiv%2Edt%2Dbutton%2Dcollection%2Etwo%2Dcolumn%7Bwidth%3A300px%3Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A2%3B%2Dmoz%2Dcolumn%2Dcount%3A2%3B%2Dms%2Dcolumn%2Dcount%3A2%3B%2Do%2Dcolumn%2Dcount%3A2%3Bcolumn%2Dcount%3A2%7Ddiv%2Edt%2Dbutton%2Dcollection%2Ethree%2Dcolumn%7Bwidth%3A450px%3Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A3%3B%2Dmoz%2Dcolumn%2Dcount%3A3%3B%2Dms%2Dcolumn%2Dcount%3A3%3B%2Do%2Dcolumn%2Dcount%3A3%3Bcolumn%2Dcount%3A3%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efour%2Dcolumn%7Bwidth%3A600px%3Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A4%3B%2Dmoz%2Dcolumn%2Dcount%3A4%3B%2Dms%2Dcolumn%2Dcount%3A4%3B%2Do%2Dcolumn%2Dcount%3A4%3Bcolumn%2Dcount%3A4%7Ddiv%2Edt%2Dbutton%2Dbackground%7Bposition%3Afixed%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bbackground%3Argba%280%2C0%2C0%2C0%2E7%29%3Bbackground%3A%2Dms%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Do%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Dwebkit%2Dgradient%28radial%2C%20center%20center%2C%200%2C%20center%20center%2C%20497%2C%20color%2Dstop%280%2C%20rgba%280%2C0%2C0%2C0%2E3%29%29%2C%20color%2Dstop%281%2C%20rgba%280%2C0%2C0%2C0%2E7%29%29%29%3Bbackground%3A%2Dwebkit%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3Aradial%2Dgradient%28ellipse%20farthest%2Dcorner%20at%20center%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bz%2Dindex%3A2001%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7Bdiv%2Edt%2Dbuttons%7Bfloat%3Anone%20%21important%3Btext%2Dalign%3Acenter%7D%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
41 <script src="data:application/x-javascript;base64,LyohCiBCdXR0b25zIGZvciBEYXRhVGFibGVzIDEuMi4wCiDCqTIwMTYgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKKi8KKGZ1bmN0aW9uKGQpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSIsImRhdGF0YWJsZXMubmV0Il0sZnVuY3Rpb24obyl7cmV0dXJuIGQobyx3aW5kb3csZG9jdW1lbnQpfSk6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihvLG4pe298fChvPXdpbmRvdyk7aWYoIW58fCFuLmZuLmRhdGFUYWJsZSluPXJlcXVpcmUoImRhdGF0YWJsZXMubmV0IikobyxuKS4kO3JldHVybiBkKG4sbyxvLmRvY3VtZW50KX06ZChqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGQsbyxuLGwpe3ZhciBpPWQuZm4uZGF0YVRhYmxlLHU9MCx2PTAsaz1pLmV4dC5idXR0b25zLG09ZnVuY3Rpb24oYSxiKXshMD09PWImJihiPXt9KTtkLmlzQXJyYXkoYikmJihiPXtidXR0b25zOmJ9KTt0aGlzLmM9ZC5leHRlbmQoITAse30sbS5kZWZhdWx0cyxiKTtiLmJ1dHRvbnMmJih0aGlzLmMuYnV0dG9ucz1iLmJ1dHRvbnMpOwp0aGlzLnM9e2R0Om5ldyBpLkFwaShhKSxidXR0b25zOltdLGxpc3RlbktleXM6IiIsbmFtZXNwYWNlOiJkdGIiK3UrK307dGhpcy5kb209e2NvbnRhaW5lcjpkKCI8Iit0aGlzLmMuZG9tLmNvbnRhaW5lci50YWcrIi8+IikuYWRkQ2xhc3ModGhpcy5jLmRvbS5jb250YWluZXIuY2xhc3NOYW1lKX07dGhpcy5fY29uc3RydWN0b3IoKX07ZC5leHRlbmQobS5wcm90b3R5cGUse2FjdGlvbjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX25vZGVUb0J1dHRvbihhKTtpZihiPT09bClyZXR1cm4gYy5jb25mLmFjdGlvbjtjLmNvbmYuYWN0aW9uPWI7cmV0dXJuIHRoaXN9LGFjdGl2ZTpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX25vZGVUb0J1dHRvbihhKSxlPXRoaXMuYy5kb20uYnV0dG9uLmFjdGl2ZSxjPWQoYy5ub2RlKTtpZihiPT09bClyZXR1cm4gYy5oYXNDbGFzcyhlKTtjLnRvZ2dsZUNsYXNzKGUsYj09PWw/ITA6Yik7cmV0dXJuIHRoaXN9LGFkZDpmdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzLnMuYnV0dG9ucztpZigic3RyaW5nIj09PXR5cGVvZiBiKXtmb3IodmFyIGU9Yi5zcGxpdCgiLSIpLGM9dGhpcy5zLGQ9MCxoPWUubGVuZ3RoLTE7ZDxoO2QrKyljPWMuYnV0dG9uc1sxKmVbZF1dO2M9Yy5idXR0b25zO2I9MSplW2UubGVuZ3RoLTFdfXRoaXMuX2V4cGFuZEJ1dHRvbihjLGEsITEsYik7dGhpcy5fZHJhdygpO3JldHVybiB0aGlzfSxjb250YWluZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb20uY29udGFpbmVyfSxkaXNhYmxlOmZ1bmN0aW9uKGEpe2E9dGhpcy5fbm9kZVRvQnV0dG9uKGEpO2QoYS5ub2RlKS5hZGRDbGFzcyh0aGlzLmMuZG9tLmJ1dHRvbi5kaXNhYmxlZCk7cmV0dXJuIHRoaXN9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtkKCJib2R5Iikub2ZmKCJrZXl1cC4iK3RoaXMucy5uYW1lc3BhY2UpO3ZhciBhPXRoaXMucy5idXR0b25zLGIsYztiPTA7Zm9yKGM9YS5sZW5ndGg7YjxjO2IrKyl0aGlzLnJlbW92ZShhW2JdLm5vZGUpO3RoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmUoKTsKYT10aGlzLnMuZHQuc2V0dGluZ3MoKVswXTtiPTA7Zm9yKGM9YS5sZW5ndGg7YjxjO2IrKylpZihhLmluc3Q9PT10aGlzKXthLnNwbGljZShiLDEpO2JyZWFrfXJldHVybiB0aGlzfSxlbmFibGU6ZnVuY3Rpb24oYSxiKXtpZighMT09PWIpcmV0dXJuIHRoaXMuZGlzYWJsZShhKTt2YXIgYz10aGlzLl9ub2RlVG9CdXR0b24oYSk7ZChjLm5vZGUpLnJlbW92ZUNsYXNzKHRoaXMuYy5kb20uYnV0dG9uLmRpc2FibGVkKTtyZXR1cm4gdGhpc30sbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmMubmFtZX0sbm9kZTpmdW5jdGlvbihhKXthPXRoaXMuX25vZGVUb0J1dHRvbihhKTtyZXR1cm4gZChhLm5vZGUpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fbm9kZVRvQnV0dG9uKGEpLGM9dGhpcy5fbm9kZVRvSG9zdChhKSxlPXRoaXMucy5kdDtpZihiLmJ1dHRvbnMubGVuZ3RoKWZvcih2YXIgZz1iLmJ1dHRvbnMubGVuZ3RoLTE7MDw9ZztnLS0pdGhpcy5yZW1vdmUoYi5idXR0b25zW2ddLm5vZGUpOwpiLmNvbmYuZGVzdHJveSYmYi5jb25mLmRlc3Ryb3kuY2FsbChlLmJ1dHRvbihhKSxlLGQoYSksYi5jb25mKTt0aGlzLl9yZW1vdmVLZXkoYi5jb25mKTtkKGIubm9kZSkucmVtb3ZlKCk7YT1kLmluQXJyYXkoYixjKTtjLnNwbGljZShhLDEpO3JldHVybiB0aGlzfSx0ZXh0OmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5fbm9kZVRvQnV0dG9uKGEpLGU9dGhpcy5jLmRvbS5jb2xsZWN0aW9uLmJ1dHRvbkxpbmVyLGU9Yy5pbkNvbGxlY3Rpb24mJmUmJmUudGFnP2UudGFnOnRoaXMuYy5kb20uYnV0dG9uTGluZXIudGFnLGc9dGhpcy5zLmR0LGg9ZChjLm5vZGUpLGY9ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBhP2EoZyxoLGMuY29uZik6YX07aWYoYj09PWwpcmV0dXJuIGYoYy5jb25mLnRleHQpO2MuY29uZi50ZXh0PWI7ZT9oLmNoaWxkcmVuKGUpLmh0bWwoZihiKSk6aC5odG1sKGYoYikpO3JldHVybiB0aGlzfSxfY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgYT0KdGhpcyxiPXRoaXMucy5kdCxjPWIuc2V0dGluZ3MoKVswXSxlPXRoaXMuYy5idXR0b25zO2MuX2J1dHRvbnN8fChjLl9idXR0b25zPVtdKTtjLl9idXR0b25zLnB1c2goe2luc3Q6dGhpcyxuYW1lOnRoaXMuYy5uYW1lfSk7Zm9yKHZhciBjPTAsZz1lLmxlbmd0aDtjPGc7YysrKXRoaXMuYWRkKGVbY10pO2Iub24oImRlc3Ryb3kiLGZ1bmN0aW9uKCl7YS5kZXN0cm95KCl9KTtkKCJib2R5Iikub24oImtleXVwLiIrdGhpcy5zLm5hbWVzcGFjZSxmdW5jdGlvbihiKXtpZighbi5hY3RpdmVFbGVtZW50fHxuLmFjdGl2ZUVsZW1lbnQ9PT1uLmJvZHkpe3ZhciBjPVN0cmluZy5mcm9tQ2hhckNvZGUoYi5rZXlDb2RlKS50b0xvd2VyQ2FzZSgpO2Eucy5saXN0ZW5LZXlzLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihjKSE9PS0xJiZhLl9rZXlwcmVzcyhjLGIpfX0pfSxfYWRkS2V5OmZ1bmN0aW9uKGEpe2Eua2V5JiYodGhpcy5zLmxpc3RlbktleXMrPWQuaXNQbGFpbk9iamVjdChhLmtleSk/YS5rZXkua2V5OgphLmtleSl9LF9kcmF3OmZ1bmN0aW9uKGEsYil7YXx8KGE9dGhpcy5kb20uY29udGFpbmVyLGI9dGhpcy5zLmJ1dHRvbnMpO2EuY2hpbGRyZW4oKS5kZXRhY2goKTtmb3IodmFyIGM9MCxkPWIubGVuZ3RoO2M8ZDtjKyspYS5hcHBlbmQoYltjXS5pbnNlcnRlciksYltjXS5idXR0b25zJiZiW2NdLmJ1dHRvbnMubGVuZ3RoJiZ0aGlzLl9kcmF3KGJbY10uY29sbGVjdGlvbixiW2NdLmJ1dHRvbnMpfSxfZXhwYW5kQnV0dG9uOmZ1bmN0aW9uKGEsYixjLGUpe2Zvcih2YXIgZz10aGlzLnMuZHQsaD0wLGI9IWQuaXNBcnJheShiKT9bYl06YixmPTAscT1iLmxlbmd0aDtmPHE7ZisrKXt2YXIgaj10aGlzLl9yZXNvbHZlRXh0ZW5kcyhiW2ZdKTtpZihqKWlmKGQuaXNBcnJheShqKSl0aGlzLl9leHBhbmRCdXR0b24oYSxqLGMsZSk7ZWxzZXt2YXIgcD10aGlzLl9idWlsZEJ1dHRvbihqLGMpO2lmKHApe2UhPT1sPyhhLnNwbGljZShlLDAscCksZSsrKTphLnB1c2gocCk7aWYocC5jb25mLmJ1dHRvbnMpe3ZhciBzPQp0aGlzLmMuZG9tLmNvbGxlY3Rpb247cC5jb2xsZWN0aW9uPWQoIjwiK3MudGFnKyIvPiIpLmFkZENsYXNzKHMuY2xhc3NOYW1lKTtwLmNvbmYuX2NvbGxlY3Rpb249cC5jb2xsZWN0aW9uO3RoaXMuX2V4cGFuZEJ1dHRvbihwLmJ1dHRvbnMscC5jb25mLmJ1dHRvbnMsITAsZSl9ai5pbml0JiZqLmluaXQuY2FsbChnLmJ1dHRvbihwLm5vZGUpLGcsZChwLm5vZGUpLGopO2grK319fX0sX2J1aWxkQnV0dG9uOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jLmRvbS5idXR0b24sZT10aGlzLmMuZG9tLmJ1dHRvbkxpbmVyLGc9dGhpcy5jLmRvbS5jb2xsZWN0aW9uLGg9dGhpcy5zLmR0LGY9ZnVuY3Rpb24oYil7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiBiP2IoaCxqLGEpOmJ9O2ImJmcuYnV0dG9uJiYoYz1nLmJ1dHRvbik7YiYmZy5idXR0b25MaW5lciYmKGU9Zy5idXR0b25MaW5lcik7aWYoYS5hdmFpbGFibGUmJiFhLmF2YWlsYWJsZShoLGEpKXJldHVybiExO3ZhciBxPWZ1bmN0aW9uKGEsCmIsYyxlKXtlLmFjdGlvbi5jYWxsKGIuYnV0dG9uKGMpLGEsYixjLGUpO2QoYi50YWJsZSgpLm5vZGUoKSkudHJpZ2dlckhhbmRsZXIoImJ1dHRvbnMtYWN0aW9uLmR0IixbYi5idXR0b24oYyksYixjLGVdKX0saj1kKCI8IitjLnRhZysiLz4iKS5hZGRDbGFzcyhjLmNsYXNzTmFtZSkuYXR0cigidGFiaW5kZXgiLHRoaXMucy5kdC5zZXR0aW5ncygpWzBdLmlUYWJJbmRleCkuYXR0cigiYXJpYS1jb250cm9scyIsdGhpcy5zLmR0LnRhYmxlKCkubm9kZSgpLmlkKS5vbigiY2xpY2suZHRiIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7IWouaGFzQ2xhc3MoYy5kaXNhYmxlZCkmJmEuYWN0aW9uJiZxKGIsaCxqLGEpO2ouYmx1cigpfSkub24oImtleXVwLmR0YiIsZnVuY3Rpb24oYil7Yi5rZXlDb2RlPT09MTMmJiFqLmhhc0NsYXNzKGMuZGlzYWJsZWQpJiZhLmFjdGlvbiYmcShiLGgsaixhKX0pOyJhIj09PWMudGFnLnRvTG93ZXJDYXNlKCkmJmouYXR0cigiaHJlZiIsIiMiKTsKZS50YWc/KGc9ZCgiPCIrZS50YWcrIi8+IikuaHRtbChmKGEudGV4dCkpLmFkZENsYXNzKGUuY2xhc3NOYW1lKSwiYSI9PT1lLnRhZy50b0xvd2VyQ2FzZSgpJiZnLmF0dHIoImhyZWYiLCIjIiksai5hcHBlbmQoZykpOmouaHRtbChmKGEudGV4dCkpOyExPT09YS5lbmFibGVkJiZqLmFkZENsYXNzKGMuZGlzYWJsZWQpO2EuY2xhc3NOYW1lJiZqLmFkZENsYXNzKGEuY2xhc3NOYW1lKTthLnRpdGxlQXR0ciYmai5hdHRyKCJ0aXRsZSIsYS50aXRsZUF0dHIpO2EubmFtZXNwYWNlfHwoYS5uYW1lc3BhY2U9Ii5kdC1idXR0b24tIit2KyspO2U9KGU9dGhpcy5jLmRvbS5idXR0b25Db250YWluZXIpJiZlLnRhZz9kKCI8IitlLnRhZysiLz4iKS5hZGRDbGFzcyhlLmNsYXNzTmFtZSkuYXBwZW5kKGopOmo7dGhpcy5fYWRkS2V5KGEpO3JldHVybntjb25mOmEsbm9kZTpqLmdldCgwKSxpbnNlcnRlcjplLGJ1dHRvbnM6W10saW5Db2xsZWN0aW9uOmIsY29sbGVjdGlvbjpudWxsfX0sX25vZGVUb0J1dHRvbjpmdW5jdGlvbihhLApiKXtifHwoYj10aGlzLnMuYnV0dG9ucyk7Zm9yKHZhciBjPTAsZD1iLmxlbmd0aDtjPGQ7YysrKXtpZihiW2NdLm5vZGU9PT1hKXJldHVybiBiW2NdO2lmKGJbY10uYnV0dG9ucy5sZW5ndGgpe3ZhciBnPXRoaXMuX25vZGVUb0J1dHRvbihhLGJbY10uYnV0dG9ucyk7aWYoZylyZXR1cm4gZ319fSxfbm9kZVRvSG9zdDpmdW5jdGlvbihhLGIpe2J8fChiPXRoaXMucy5idXR0b25zKTtmb3IodmFyIGM9MCxkPWIubGVuZ3RoO2M8ZDtjKyspe2lmKGJbY10ubm9kZT09PWEpcmV0dXJuIGI7aWYoYltjXS5idXR0b25zLmxlbmd0aCl7dmFyIGc9dGhpcy5fbm9kZVRvSG9zdChhLGJbY10uYnV0dG9ucyk7aWYoZylyZXR1cm4gZ319fSxfa2V5cHJlc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihlKXtmb3IodmFyIGc9MCxoPWUubGVuZ3RoO2c8aDtnKyspe3ZhciBmPWVbZ10uY29uZixxPWVbZ10ubm9kZTtpZihmLmtleSlpZihmLmtleT09PWEpZChxKS5jbGljaygpO2Vsc2UgaWYoZC5pc1BsYWluT2JqZWN0KGYua2V5KSYmCmYua2V5LmtleT09PWEmJighZi5rZXkuc2hpZnRLZXl8fGIuc2hpZnRLZXkpKWlmKCFmLmtleS5hbHRLZXl8fGIuYWx0S2V5KWlmKCFmLmtleS5jdHJsS2V5fHxiLmN0cmxLZXkpKCFmLmtleS5tZXRhS2V5fHxiLm1ldGFLZXkpJiZkKHEpLmNsaWNrKCk7ZVtnXS5idXR0b25zLmxlbmd0aCYmYyhlW2ddLmJ1dHRvbnMpfX07Yyh0aGlzLnMuYnV0dG9ucyl9LF9yZW1vdmVLZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPWQuaXNQbGFpbk9iamVjdChhLmtleSk/YS5rZXkua2V5OmEua2V5LGE9dGhpcy5zLmxpc3RlbktleXMuc3BsaXQoIiIpLGI9ZC5pbkFycmF5KGIsYSk7YS5zcGxpY2UoYiwxKTt0aGlzLnMubGlzdGVuS2V5cz1hLmpvaW4oIiIpfX0sX3Jlc29sdmVFeHRlbmRzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYj10aGlzLnMuZHQsYyxlLGc9ZnVuY3Rpb24oYyl7Zm9yKHZhciBlPTA7IWQuaXNQbGFpbk9iamVjdChjKSYmIWQuaXNBcnJheShjKTspe2lmKGM9PT1sKXJldHVybjsKaWYoImZ1bmN0aW9uIj09PXR5cGVvZiBjKXtpZihjPWMoYixhKSwhYylyZXR1cm4hMX1lbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGMpe2lmKCFrW2NdKXRocm93IlVua25vd24gYnV0dG9uIHR5cGU6ICIrYztjPWtbY119ZSsrO2lmKDMwPGUpdGhyb3ciQnV0dG9uczogVG9vIG1hbnkgaXRlcmF0aW9ucyI7fXJldHVybiBkLmlzQXJyYXkoYyk/YzpkLmV4dGVuZCh7fSxjKX0sYT1nKGEpO2EmJmEuZXh0ZW5kOyl7aWYoIWtbYS5leHRlbmRdKXRocm93IkNhbm5vdCBleHRlbmQgdW5rbm93biBidXR0b24gdHlwZTogIithLmV4dGVuZDt2YXIgaD1nKGtbYS5leHRlbmRdKTtpZihkLmlzQXJyYXkoaCkpcmV0dXJuIGg7aWYoIWgpcmV0dXJuITE7Yz1oLmNsYXNzTmFtZTthPWQuZXh0ZW5kKHt9LGgsYSk7YyYmYS5jbGFzc05hbWUhPT1jJiYoYS5jbGFzc05hbWU9YysiICIrYS5jbGFzc05hbWUpO3ZhciBmPWEucG9zdGZpeEJ1dHRvbnM7aWYoZil7YS5idXR0b25zfHwoYS5idXR0b25zPVtdKTsKYz0wO2ZvcihlPWYubGVuZ3RoO2M8ZTtjKyspYS5idXR0b25zLnB1c2goZltjXSk7YS5wb3N0Zml4QnV0dG9ucz1udWxsfWlmKGY9YS5wcmVmaXhCdXR0b25zKXthLmJ1dHRvbnN8fChhLmJ1dHRvbnM9W10pO2M9MDtmb3IoZT1mLmxlbmd0aDtjPGU7YysrKWEuYnV0dG9ucy5zcGxpY2UoYywwLGZbY10pO2EucHJlZml4QnV0dG9ucz1udWxsfWEuZXh0ZW5kPWguZXh0ZW5kfXJldHVybiBhfX0pO20uYmFja2dyb3VuZD1mdW5jdGlvbihhLGIsYyl7Yz09PWwmJihjPTQwMCk7YT9kKCI8ZGl2Lz4iKS5hZGRDbGFzcyhiKS5jc3MoImRpc3BsYXkiLCJub25lIikuYXBwZW5kVG8oImJvZHkiKS5mYWRlSW4oYyk6ZCgiYm9keSA+IGRpdi4iK2IpLmZhZGVPdXQoYyxmdW5jdGlvbigpe2QodGhpcykucmVtb3ZlKCl9KX07bS5pbnN0YW5jZVNlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIGQubWFwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5zdH0pO3ZhciBjPVtdLGU9ZC5tYXAoYiwKZnVuY3Rpb24oYSl7cmV0dXJuIGEubmFtZX0pLGc9ZnVuY3Rpb24oYSl7aWYoZC5pc0FycmF5KGEpKWZvcih2YXIgZj0wLHE9YS5sZW5ndGg7ZjxxO2YrKylnKGFbZl0pO2Vsc2Uic3RyaW5nIj09PXR5cGVvZiBhPy0xIT09YS5pbmRleE9mKCIsIik/ZyhhLnNwbGl0KCIsIikpOihhPWQuaW5BcnJheShkLnRyaW0oYSksZSksLTEhPT1hJiZjLnB1c2goYlthXS5pbnN0KSk6Im51bWJlciI9PT10eXBlb2YgYSYmYy5wdXNoKGJbYV0uaW5zdCl9O2coYSk7cmV0dXJuIGN9O20uYnV0dG9uU2VsZWN0b3I9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W10sZT1mdW5jdGlvbihhLGIsYyl7Zm9yKHZhciBkLGcsZj0wLGg9Yi5sZW5ndGg7ZjxoO2YrKylpZihkPWJbZl0pZz1jIT09bD9jK2Y6ZisiIixhLnB1c2goe25vZGU6ZC5ub2RlLG5hbWU6ZC5jb25mLm5hbWUsaWR4Omd9KSxkLmJ1dHRvbnMmJmUoYSxkLmJ1dHRvbnMsZysiLSIpfSxnPWZ1bmN0aW9uKGEsYil7dmFyIGYsaCxpPVtdO2UoaSxiLnMuYnV0dG9ucyk7CmY9ZC5tYXAoaSxmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlfSk7aWYoZC5pc0FycmF5KGEpfHxhIGluc3RhbmNlb2YgZCl7Zj0wO2ZvcihoPWEubGVuZ3RoO2Y8aDtmKyspZyhhW2ZdLGIpfWVsc2UgaWYobnVsbD09PWF8fGE9PT1sfHwiKiI9PT1hKXtmPTA7Zm9yKGg9aS5sZW5ndGg7ZjxoO2YrKyljLnB1c2goe2luc3Q6Yixub2RlOmlbZl0ubm9kZX0pfWVsc2UgaWYoIm51bWJlciI9PT10eXBlb2YgYSljLnB1c2goe2luc3Q6Yixub2RlOmIucy5idXR0b25zW2FdLm5vZGV9KTtlbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGEpaWYoLTEhPT1hLmluZGV4T2YoIiwiKSl7aT1hLnNwbGl0KCIsIik7Zj0wO2ZvcihoPWkubGVuZ3RoO2Y8aDtmKyspZyhkLnRyaW0oaVtmXSksYil9ZWxzZSBpZihhLm1hdGNoKC9eXGQrKFwtXGQrKSokLykpZj1kLm1hcChpLGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkeH0pLGMucHVzaCh7aW5zdDpiLG5vZGU6aVtkLmluQXJyYXkoYSxmKV0ubm9kZX0pO2Vsc2UgaWYoLTEhPT0KYS5pbmRleE9mKCI6bmFtZSIpKXt2YXIgaz1hLnJlcGxhY2UoIjpuYW1lIiwiIik7Zj0wO2ZvcihoPWkubGVuZ3RoO2Y8aDtmKyspaVtmXS5uYW1lPT09ayYmYy5wdXNoKHtpbnN0OmIsbm9kZTppW2ZdLm5vZGV9KX1lbHNlIGQoZikuZmlsdGVyKGEpLmVhY2goZnVuY3Rpb24oKXtjLnB1c2goe2luc3Q6Yixub2RlOnRoaXN9KX0pO2Vsc2Uib2JqZWN0Ij09PXR5cGVvZiBhJiZhLm5vZGVOYW1lJiYoaT1kLmluQXJyYXkoYSxmKSwtMSE9PWkmJmMucHVzaCh7aW5zdDpiLG5vZGU6ZltpXX0pKX0saD0wLGY9YS5sZW5ndGg7aDxmO2grKylnKGIsYVtoXSk7cmV0dXJuIGN9O20uZGVmYXVsdHM9e2J1dHRvbnM6WyJjb3B5IiwiZXhjZWwiLCJjc3YiLCJwZGYiLCJwcmludCJdLG5hbWU6Im1haW4iLHRhYkluZGV4OjAsZG9tOntjb250YWluZXI6e3RhZzoiZGl2IixjbGFzc05hbWU6ImR0LWJ1dHRvbnMifSxjb2xsZWN0aW9uOnt0YWc6ImRpdiIsY2xhc3NOYW1lOiJkdC1idXR0b24tY29sbGVjdGlvbiJ9LApidXR0b246e3RhZzoiYSIsY2xhc3NOYW1lOiJkdC1idXR0b24iLGFjdGl2ZToiYWN0aXZlIixkaXNhYmxlZDoiZGlzYWJsZWQifSxidXR0b25MaW5lcjp7dGFnOiJzcGFuIixjbGFzc05hbWU6IiJ9fX07bS52ZXJzaW9uPSIxLjIuMCI7ZC5leHRlbmQoayx7Y29sbGVjdGlvbjp7dGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLmNvbGxlY3Rpb24iLCJDb2xsZWN0aW9uIil9LGNsYXNzTmFtZToiYnV0dG9ucy1jb2xsZWN0aW9uIixhY3Rpb246ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGE9Yy5vZmZzZXQoKSxnPWQoYi50YWJsZSgpLmNvbnRhaW5lcigpKSxoPSExO2QoImRpdi5kdC1idXR0b24tYmFja2dyb3VuZCIpLmxlbmd0aCYmKGg9ZCgiZGl2LmR0LWJ1dHRvbi1jb2xsZWN0aW9uIikub2Zmc2V0KCksZCgiYm9keSIpLnRyaWdnZXIoImNsaWNrLmR0Yi1jb2xsZWN0aW9uIikpO2UuX2NvbGxlY3Rpb24uYWRkQ2xhc3MoZS5jb2xsZWN0aW9uTGF5b3V0KS5jc3MoImRpc3BsYXkiLAoibm9uZSIpLmFwcGVuZFRvKCJib2R5IikuZmFkZUluKGUuZmFkZSk7dmFyIGY9ZS5fY29sbGVjdGlvbi5jc3MoInBvc2l0aW9uIik7aCYmImFic29sdXRlIj09PWY/ZS5fY29sbGVjdGlvbi5jc3Moe3RvcDpoLnRvcCs1LGxlZnQ6aC5sZWZ0KzV9KToiYWJzb2x1dGUiPT09Zj8oZS5fY29sbGVjdGlvbi5jc3Moe3RvcDphLnRvcCtjLm91dGVySGVpZ2h0KCksbGVmdDphLmxlZnR9KSxjPWEubGVmdCtlLl9jb2xsZWN0aW9uLm91dGVyV2lkdGgoKSxnPWcub2Zmc2V0KCkubGVmdCtnLndpZHRoKCksYz5nJiZlLl9jb2xsZWN0aW9uLmNzcygibGVmdCIsYS5sZWZ0LShjLWcpKSk6KGE9ZS5fY29sbGVjdGlvbi5oZWlnaHQoKS8yLGE+ZChvKS5oZWlnaHQoKS8yJiYoYT1kKG8pLmhlaWdodCgpLzIpLGUuX2NvbGxlY3Rpb24uY3NzKCJtYXJnaW5Ub3AiLC0xKmEpKTtlLmJhY2tncm91bmQmJm0uYmFja2dyb3VuZCghMCxlLmJhY2tncm91bmRDbGFzc05hbWUsZS5mYWRlKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZCgiZGl2LmR0LWJ1dHRvbi1iYWNrZ3JvdW5kIikub24oImNsaWNrLmR0Yi1jb2xsZWN0aW9uIiwKZnVuY3Rpb24oKXt9KTtkKCJib2R5Iikub24oImNsaWNrLmR0Yi1jb2xsZWN0aW9uIixmdW5jdGlvbihhKXtpZighZChhLnRhcmdldCkucGFyZW50cygpLmFuZFNlbGYoKS5maWx0ZXIoZS5fY29sbGVjdGlvbikubGVuZ3RoKXtlLl9jb2xsZWN0aW9uLmZhZGVPdXQoZS5mYWRlLGZ1bmN0aW9uKCl7ZS5fY29sbGVjdGlvbi5kZXRhY2goKX0pO2QoImRpdi5kdC1idXR0b24tYmFja2dyb3VuZCIpLm9mZigiY2xpY2suZHRiLWNvbGxlY3Rpb24iKTttLmJhY2tncm91bmQoZmFsc2UsZS5iYWNrZ3JvdW5kQ2xhc3NOYW1lLGUuZmFkZSk7ZCgiYm9keSIpLm9mZigiY2xpY2suZHRiLWNvbGxlY3Rpb24iKTtiLm9mZigiYnV0dG9ucy1hY3Rpb24uYi1pbnRlcm5hbCIpfX0pfSwxMCk7aWYoZS5hdXRvQ2xvc2UpYi5vbigiYnV0dG9ucy1hY3Rpb24uYi1pbnRlcm5hbCIsZnVuY3Rpb24oKXtkKCJkaXYuZHQtYnV0dG9uLWJhY2tncm91bmQiKS5jbGljaygpfSl9LGJhY2tncm91bmQ6ITAsY29sbGVjdGlvbkxheW91dDoiIiwKYmFja2dyb3VuZENsYXNzTmFtZToiZHQtYnV0dG9uLWJhY2tncm91bmQiLGF1dG9DbG9zZTohMSxmYWRlOjQwMH0sY29weTpmdW5jdGlvbihhLGIpe2lmKGsuY29weUh0bWw1KXJldHVybiJjb3B5SHRtbDUiO2lmKGsuY29weUZsYXNoJiZrLmNvcHlGbGFzaC5hdmFpbGFibGUoYSxiKSlyZXR1cm4iY29weUZsYXNoIn0sY3N2OmZ1bmN0aW9uKGEsYil7aWYoay5jc3ZIdG1sNSYmay5jc3ZIdG1sNS5hdmFpbGFibGUoYSxiKSlyZXR1cm4iY3N2SHRtbDUiO2lmKGsuY3N2Rmxhc2gmJmsuY3N2Rmxhc2guYXZhaWxhYmxlKGEsYikpcmV0dXJuImNzdkZsYXNoIn0sZXhjZWw6ZnVuY3Rpb24oYSxiKXtpZihrLmV4Y2VsSHRtbDUmJmsuZXhjZWxIdG1sNS5hdmFpbGFibGUoYSxiKSlyZXR1cm4iZXhjZWxIdG1sNSI7aWYoay5leGNlbEZsYXNoJiZrLmV4Y2VsRmxhc2guYXZhaWxhYmxlKGEsYikpcmV0dXJuImV4Y2VsRmxhc2gifSxwZGY6ZnVuY3Rpb24oYSxiKXtpZihrLnBkZkh0bWw1JiZrLnBkZkh0bWw1LmF2YWlsYWJsZShhLApiKSlyZXR1cm4icGRmSHRtbDUiO2lmKGsucGRmRmxhc2gmJmsucGRmRmxhc2guYXZhaWxhYmxlKGEsYikpcmV0dXJuInBkZkZsYXNoIn0scGFnZUxlbmd0aDpmdW5jdGlvbihhKXt2YXIgYT1hLnNldHRpbmdzKClbMF0uYUxlbmd0aE1lbnUsYj1kLmlzQXJyYXkoYVswXSk/YVswXTphLGM9ZC5pc0FycmF5KGFbMF0pP2FbMV06YSxlPWZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMucGFnZUxlbmd0aCIseyItMSI6IlNob3cgYWxsIHJvd3MiLF86IlNob3cgJWQgcm93cyJ9LGEucGFnZS5sZW4oKSl9O3JldHVybntleHRlbmQ6ImNvbGxlY3Rpb24iLHRleHQ6ZSxjbGFzc05hbWU6ImJ1dHRvbnMtcGFnZS1sZW5ndGgiLGF1dG9DbG9zZTohMCxidXR0b25zOmQubWFwKGIsZnVuY3Rpb24oYSxiKXtyZXR1cm57dGV4dDpjW2JdLGFjdGlvbjpmdW5jdGlvbihiLGMpe2MucGFnZS5sZW4oYSkuZHJhdygpfSxpbml0OmZ1bmN0aW9uKGIsYyxkKXt2YXIgZT10aGlzLGM9ZnVuY3Rpb24oKXtlLmFjdGl2ZShiLnBhZ2UubGVuKCk9PT0KYSl9O2Iub24oImxlbmd0aC5kdCIrZC5uYW1lc3BhY2UsYyk7YygpfSxkZXN0cm95OmZ1bmN0aW9uKGEsYixjKXthLm9mZigibGVuZ3RoLmR0IitjLm5hbWVzcGFjZSl9fX0pLGluaXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXM7YS5vbigibGVuZ3RoLmR0IitjLm5hbWVzcGFjZSxmdW5jdGlvbigpe2QudGV4dChlKGEpKX0pfSxkZXN0cm95OmZ1bmN0aW9uKGEsYixjKXthLm9mZigibGVuZ3RoLmR0IitjLm5hbWVzcGFjZSl9fX19KTtpLkFwaS5yZWdpc3RlcigiYnV0dG9ucygpIixmdW5jdGlvbihhLGIpe2I9PT1sJiYoYj1hLGE9bCk7cmV0dXJuIHRoaXMuaXRlcmF0b3IoITAsInRhYmxlIixmdW5jdGlvbihjKXtpZihjLl9idXR0b25zKXJldHVybiBtLmJ1dHRvblNlbGVjdG9yKG0uaW5zdGFuY2VTZWxlY3RvcihhLGMuX2J1dHRvbnMpLGIpfSwhMCl9KTtpLkFwaS5yZWdpc3RlcigiYnV0dG9uKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5idXR0b25zKGEsYik7MTxjLmxlbmd0aCYmCmMuc3BsaWNlKDEsYy5sZW5ndGgpO3JldHVybiBjfSk7aS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5hY3RpdmUoKSIsImJ1dHRvbigpLmFjdGl2ZSgpIixmdW5jdGlvbihhKXtyZXR1cm4gYT09PWw/dGhpcy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5zdC5hY3RpdmUoYS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihiKXtiLmluc3QuYWN0aXZlKGIubm9kZSxhKX0pfSk7aS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5hY3Rpb24oKSIsImJ1dHRvbigpLmFjdGlvbigpIixmdW5jdGlvbihhKXtyZXR1cm4gYT09PWw/dGhpcy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5zdC5hY3Rpb24oYS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihiKXtiLmluc3QuYWN0aW9uKGIubm9kZSxhKX0pfSk7aS5BcGkucmVnaXN0ZXIoWyJidXR0b25zKCkuZW5hYmxlKCkiLCJidXR0b24oKS5lbmFibGUoKSJdLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LmVuYWJsZShiLm5vZGUsCmEpfSl9KTtpLkFwaS5yZWdpc3RlcihbImJ1dHRvbnMoKS5kaXNhYmxlKCkiLCJidXR0b24oKS5kaXNhYmxlKCkiXSxmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYSl7YS5pbnN0LmRpc2FibGUoYS5ub2RlKX0pfSk7aS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5ub2RlcygpIiwiYnV0dG9uKCkubm9kZSgpIixmdW5jdGlvbigpe3ZhciBhPWQoKTtkKHRoaXMuZWFjaChmdW5jdGlvbihiKXthPWEuYWRkKGIuaW5zdC5ub2RlKGIubm9kZSkpfSkpO3JldHVybiBhfSk7aS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS50ZXh0KCkiLCJidXR0b24oKS50ZXh0KCkiLGZ1bmN0aW9uKGEpe3JldHVybiBhPT09bD90aGlzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pbnN0LnRleHQoYS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihiKXtiLmluc3QudGV4dChiLm5vZGUsYSl9KX0pO2kuQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkudHJpZ2dlcigpIiwKImJ1dHRvbigpLnRyaWdnZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGEpe2EuaW5zdC5ub2RlKGEubm9kZSkudHJpZ2dlcigiY2xpY2siKX0pfSk7aS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5jb250YWluZXJzKCkiLCJidXR0b25zKCkuY29udGFpbmVyKCkiLGZ1bmN0aW9uKCl7dmFyIGE9ZCgpO2QodGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2E9YS5hZGQoYi5pbnN0LmNvbnRhaW5lcigpKX0pKTtyZXR1cm4gYX0pO2kuQXBpLnJlZ2lzdGVyKCJidXR0b24oKS5hZGQoKSIsZnVuY3Rpb24oYSxiKXsxPT09dGhpcy5sZW5ndGgmJnRoaXNbMF0uaW5zdC5hZGQoYixhKTtyZXR1cm4gdGhpcy5idXR0b24oYSl9KTtpLkFwaS5yZWdpc3RlcigiYnV0dG9ucygpLmRlc3Ryb3koKSIsZnVuY3Rpb24oKXt0aGlzLnBsdWNrKCJpbnN0IikudW5pcXVlKCkuZWFjaChmdW5jdGlvbihhKXthLmRlc3Ryb3koKX0pO3JldHVybiB0aGlzfSk7aS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5yZW1vdmUoKSIsCiJidXR0b25zKCkucmVtb3ZlKCkiLGZ1bmN0aW9uKCl7dGhpcy5lYWNoKGZ1bmN0aW9uKGEpe2EuaW5zdC5yZW1vdmUoYS5ub2RlKX0pO3JldHVybiB0aGlzfSk7dmFyIHI7aS5BcGkucmVnaXN0ZXIoImJ1dHRvbnMuaW5mbygpIixmdW5jdGlvbihhLGIsYyl7dmFyIGU9dGhpcztpZighMT09PWEpcmV0dXJuIGQoIiNkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIpLmZhZGVPdXQoZnVuY3Rpb24oKXtkKHRoaXMpLnJlbW92ZSgpfSksY2xlYXJUaW1lb3V0KHIpLHI9bnVsbCx0aGlzO3ImJmNsZWFyVGltZW91dChyKTtkKCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5sZW5ndGgmJmQoIiNkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIpLnJlbW92ZSgpO2QoJzxkaXYgaWQ9ImRhdGF0YWJsZXNfYnV0dG9uc19pbmZvIiBjbGFzcz0iZHQtYnV0dG9uLWluZm8iLz4nKS5odG1sKGE/IjxoMj4iK2ErIjwvaDI+IjoiIikuYXBwZW5kKGQoIjxkaXYvPiIpWyJzdHJpbmciPT09dHlwZW9mIGI/Imh0bWwiOgoiYXBwZW5kIl0oYikpLmNzcygiZGlzcGxheSIsIm5vbmUiKS5hcHBlbmRUbygiYm9keSIpLmZhZGVJbigpO2MhPT1sJiYwIT09YyYmKHI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuYnV0dG9ucy5pbmZvKCExKX0sYykpO3JldHVybiB0aGlzfSk7aS5BcGkucmVnaXN0ZXIoImJ1dHRvbnMuZXhwb3J0RGF0YSgpIixmdW5jdGlvbihhKXtpZih0aGlzLmNvbnRleHQubGVuZ3RoKXtmb3IodmFyIGI9bmV3IGkuQXBpKHRoaXMuY29udGV4dFswXSksYz1kLmV4dGVuZCghMCx7fSx7cm93czpudWxsLGNvbHVtbnM6IiIsbW9kaWZpZXI6e3NlYXJjaDoiYXBwbGllZCIsb3JkZXI6ImFwcGxpZWQifSxvcnRob2dvbmFsOiJkaXNwbGF5IixzdHJpcEh0bWw6ITAsc3RyaXBOZXdsaW5lczohMCxkZWNvZGVFbnRpdGllczohMCx0cmltOiEwLGZvcm1hdDp7aGVhZGVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEpfSxmb290ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSl9LGJvZHk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSl9fX0sCmEpLGU9ZnVuY3Rpb24oYSl7aWYoInN0cmluZyIhPT10eXBlb2YgYSlyZXR1cm4gYTtjLnN0cmlwSHRtbCYmKGE9YS5yZXBsYWNlKC88W14+XSo+L2csIiIpKTtjLnRyaW0mJihhPWEucmVwbGFjZSgvXlxzK3xccyskL2csIiIpKTtjLnN0cmlwTmV3bGluZXMmJihhPWEucmVwbGFjZSgvXG4vZywiICIpKTtjLmRlY29kZUVudGl0aWVzJiYodC5pbm5lckhUTUw9YSxhPXQudmFsdWUpO3JldHVybiBhfSxhPWIuY29sdW1ucyhjLmNvbHVtbnMpLmluZGV4ZXMoKS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGMuZm9ybWF0LmhlYWRlcihiLmNvbHVtbihhKS5oZWFkZXIoKS5pbm5lckhUTUwsYSl9KS50b0FycmF5KCksZz1iLnRhYmxlKCkuZm9vdGVyKCk/Yi5jb2x1bW5zKGMuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXt2YXIgZD1iLmNvbHVtbihhKS5mb290ZXIoKTtyZXR1cm4gYy5mb3JtYXQuZm9vdGVyKGQ/ZC5pbm5lckhUTUw6IiIsYSl9KS50b0FycmF5KCk6bnVsbCxoPQpiLnJvd3MoYy5yb3dzLGMubW9kaWZpZXIpLmluZGV4ZXMoKS50b0FycmF5KCksaD1iLmNlbGxzKGgsYy5jb2x1bW5zKS5yZW5kZXIoYy5vcnRob2dvbmFsKS50b0FycmF5KCksZj1hLmxlbmd0aCxrPTA8Zj9oLmxlbmd0aC9mOjAsaj1BcnJheShrKSxtPTAsbD0wO2w8aztsKyspe2Zvcih2YXIgbz1BcnJheShmKSxuPTA7bjxmO24rKylvW25dPWMuZm9ybWF0LmJvZHkoaFttXSxuLGwpLG0rKztqW2xdPW99cmV0dXJue2hlYWRlcjphLGZvb3RlcjpnLGJvZHk6an19fSk7dmFyIHQ9ZCgiPHRleHRhcmVhLz4iKVswXTtkLmZuLmRhdGFUYWJsZS5CdXR0b25zPW07ZC5mbi5EYXRhVGFibGUuQnV0dG9ucz1tO2Qobikub24oImluaXQuZHQgcGx1Z2luLWluaXQuZHQiLGZ1bmN0aW9uKGEsYil7aWYoImR0Ij09PWEubmFtZXNwYWNlKXt2YXIgYz1iLm9Jbml0LmJ1dHRvbnN8fGkuZGVmYXVsdHMuYnV0dG9ucztjJiYhYi5fYnV0dG9ucyYmKG5ldyBtKGIsYykpLmNvbnRhaW5lcigpfX0pO2kuZXh0LmZlYXR1cmUucHVzaCh7Zm5Jbml0OmZ1bmN0aW9uKGEpe3ZhciBhPQpuZXcgaS5BcGkoYSksYj1hLmluaXQoKS5idXR0b25zfHxpLmRlZmF1bHRzLmJ1dHRvbnM7cmV0dXJuKG5ldyBtKGEsYikpLmNvbnRhaW5lcigpfSxjRmVhdHVyZToiQiJ9KTtyZXR1cm4gbX0pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
42 <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKGcpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSIsImRhdGF0YWJsZXMubmV0IiwiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyJdLGZ1bmN0aW9uKGkpe3JldHVybiBnKGksd2luZG93LGRvY3VtZW50KX0pOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaSxrKXtpfHwoaT13aW5kb3cpO2lmKCFrfHwhay5mbi5kYXRhVGFibGUpaz1yZXF1aXJlKCJkYXRhdGFibGVzLm5ldCIpKGksaykuJDtrLmZuLmRhdGFUYWJsZS5CdXR0b25zfHxyZXF1aXJlKCJkYXRhdGFibGVzLm5ldC1idXR0b25zIikoaSxrKTtyZXR1cm4gZyhrLGksaS5kb2N1bWVudCl9OmcoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KShmdW5jdGlvbihnLGksayxvKXtmdW5jdGlvbiBsKGEsYixkKXt2YXIgYz1hLmNyZWF0ZUVsZW1lbnQoYik7ZCYmKGQuYXR0ciYmZyhjKS5hdHRyKGQuYXR0ciksZC5jaGlsZHJlbiYmCmcuZWFjaChkLmNoaWxkcmVuLGZ1bmN0aW9uKGEsYil7Yy5hcHBlbmRDaGlsZChiKX0pLGQudGV4dCYmYy5hcHBlbmRDaGlsZChhLmNyZWF0ZVRleHROb2RlKGQudGV4dCkpKTtyZXR1cm4gY31mdW5jdGlvbiB5KGEsYil7dmFyIGQ9YS5oZWFkZXJbYl0ubGVuZ3RoLGM7YS5mb290ZXImJmEuZm9vdGVyW2JdLmxlbmd0aD5kJiYoZD1hLmZvb3RlcltiXS5sZW5ndGgpO2Zvcih2YXIgZT0wLGY9YS5ib2R5Lmxlbmd0aDtlPGYmJiEoYz1hLmJvZHlbZV1bYl0udG9TdHJpbmcoKS5sZW5ndGgsYz5kJiYoZD1jKSw0MDxkKTtlKyspO3JldHVybiA1PGQ/ZDo1fWZ1bmN0aW9uIHUoYSl7bj09PW8mJihuPS0xPT09di5zZXJpYWxpemVUb1N0cmluZyhnLnBhcnNlWE1MKHBbInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCJdKSkuaW5kZXhPZigieG1sbnM6ciIpKTtnLmVhY2goYSxmdW5jdGlvbihiLGQpe2lmKGcuaXNQbGFpbk9iamVjdChkKSl1KGQpO2Vsc2V7aWYobil7dmFyIGM9ZC5jaGlsZE5vZGVzWzBdLAplLGYsaD1bXTtmb3IoZT1jLmF0dHJpYnV0ZXMubGVuZ3RoLTE7MDw9ZTtlLS0pe2Y9Yy5hdHRyaWJ1dGVzW2VdLm5vZGVOYW1lO3ZhciBpPWMuYXR0cmlidXRlc1tlXS5ub2RlVmFsdWU7LTEhPT1mLmluZGV4T2YoIjoiKSYmKGgucHVzaCh7bmFtZTpmLHZhbHVlOml9KSxjLnJlbW92ZUF0dHJpYnV0ZShmKSl9ZT0wO2ZvcihmPWgubGVuZ3RoO2U8ZjtlKyspaT1kLmNyZWF0ZUF0dHJpYnV0ZShoW2VdLm5hbWUucmVwbGFjZSgiOiIsIl9kdF9iX25hbWVzcGFjZV90b2tlbl8iKSksaS52YWx1ZT1oW2VdLnZhbHVlLGMuc2V0QXR0cmlidXRlTm9kZShpKX1jPXYuc2VyaWFsaXplVG9TdHJpbmcoZCk7biYmKC0xPT09Yy5pbmRleE9mKCI8P3htbCIpJiYoYz0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrYyksYz1jLnJlcGxhY2UoL19kdF9iX25hbWVzcGFjZV90b2tlbl8vZywiOiIpKTtjPWMucmVwbGFjZSgvPHJvdyB4bWxucz0iIiAvZywKIjxyb3cgIikucmVwbGFjZSgvPGNvbHMgeG1sbnM9IiI+L2csIjxjb2xzPiIpO2FbYl09Y319KX12YXIgaj1nLmZuLmRhdGFUYWJsZSxoPXt2ZXJzaW9uOiIxLjAuNC1UYWJsZVRvb2xzMiIsY2xpZW50czp7fSxtb3ZpZVBhdGg6IiIsbmV4dElkOjEsJDpmdW5jdGlvbihhKXsic3RyaW5nIj09dHlwZW9mIGEmJihhPWsuZ2V0RWxlbWVudEJ5SWQoYSkpO2EuYWRkQ2xhc3N8fChhLmhpZGU9ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxhLnNob3c9ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9IiJ9LGEuYWRkQ2xhc3M9ZnVuY3Rpb24oYSl7dGhpcy5yZW1vdmVDbGFzcyhhKTt0aGlzLmNsYXNzTmFtZSs9IiAiK2F9LGEucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24oYSl7dGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWUucmVwbGFjZShSZWdFeHAoIlxccyoiK2ErIlxccyoiKSwiICIpLnJlcGxhY2UoL15ccysvLCIiKS5yZXBsYWNlKC9ccyskLywiIil9LGEuaGFzQ2xhc3M9CmZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy5jbGFzc05hbWUubWF0Y2goUmVnRXhwKCJcXHMqIithKyJcXHMqIikpfSk7cmV0dXJuIGF9LHNldE1vdmllUGF0aDpmdW5jdGlvbihhKXt0aGlzLm1vdmllUGF0aD1hfSxkaXNwYXRjaDpmdW5jdGlvbihhLGIsZCl7KGE9dGhpcy5jbGllbnRzW2FdKSYmYS5yZWNlaXZlRXZlbnQoYixkKX0sbG9nOmZ1bmN0aW9uKGEpe2NvbnNvbGUubG9nKCJGbGFzaDogIithKX0scmVnaXN0ZXI6ZnVuY3Rpb24oYSxiKXt0aGlzLmNsaWVudHNbYV09Yn0sZ2V0RE9NT2JqZWN0UG9zaXRpb246ZnVuY3Rpb24oYSl7dmFyIGI9e2xlZnQ6MCx0b3A6MCx3aWR0aDphLndpZHRoP2Eud2lkdGg6YS5vZmZzZXRXaWR0aCxoZWlnaHQ6YS5oZWlnaHQ/YS5oZWlnaHQ6YS5vZmZzZXRIZWlnaHR9OyIiIT09YS5zdHlsZS53aWR0aCYmKGIud2lkdGg9YS5zdHlsZS53aWR0aC5yZXBsYWNlKCJweCIsIiIpKTsiIiE9PWEuc3R5bGUuaGVpZ2h0JiYoYi5oZWlnaHQ9YS5zdHlsZS5oZWlnaHQucmVwbGFjZSgicHgiLAoiIikpO2Zvcig7YTspYi5sZWZ0Kz1hLm9mZnNldExlZnQsYi50b3ArPWEub2Zmc2V0VG9wLGE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGJ9LENsaWVudDpmdW5jdGlvbihhKXt0aGlzLmhhbmRsZXJzPXt9O3RoaXMuaWQ9aC5uZXh0SWQrKzt0aGlzLm1vdmllSWQ9Ilplcm9DbGlwYm9hcmRfVGFibGVUb29sc01vdmllXyIrdGhpcy5pZDtoLnJlZ2lzdGVyKHRoaXMuaWQsdGhpcyk7YSYmdGhpcy5nbHVlKGEpfX07aC5DbGllbnQucHJvdG90eXBlPXtpZDowLHJlYWR5OiExLG1vdmllOm51bGwsY2xpcFRleHQ6IiIsZmlsZU5hbWU6IiIsYWN0aW9uOiJjb3B5IixoYW5kQ3Vyc29yRW5hYmxlZDohMCxjc3NFZmZlY3RzOiEwLGhhbmRsZXJzOm51bGwsc2l6ZWQ6ITEsc2hlZXROYW1lOiIiLGdsdWU6ZnVuY3Rpb24oYSxiKXt0aGlzLmRvbUVsZW1lbnQ9aC4kKGEpO3ZhciBkPTk5O3RoaXMuZG9tRWxlbWVudC5zdHlsZS56SW5kZXgmJihkPXBhcnNlSW50KHRoaXMuZG9tRWxlbWVudC5zdHlsZS56SW5kZXgsCjEwKSsxKTt2YXIgYz1oLmdldERPTU9iamVjdFBvc2l0aW9uKHRoaXMuZG9tRWxlbWVudCk7dGhpcy5kaXY9ay5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgZT10aGlzLmRpdi5zdHlsZTtlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZS5sZWZ0PSIwcHgiO2UudG9wPSIwcHgiO2Uud2lkdGg9Yy53aWR0aCsicHgiO2UuaGVpZ2h0PWMuaGVpZ2h0KyJweCI7ZS56SW5kZXg9ZDsidW5kZWZpbmVkIiE9dHlwZW9mIGImJiIiIT09YiYmKHRoaXMuZGl2LnRpdGxlPWIpOzAhPT1jLndpZHRoJiYwIT09Yy5oZWlnaHQmJih0aGlzLnNpemVkPSEwKTt0aGlzLmRvbUVsZW1lbnQmJih0aGlzLmRvbUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXYpLHRoaXMuZGl2LmlubmVySFRNTD10aGlzLmdldEhUTUwoYy53aWR0aCxjLmhlaWdodCkucmVwbGFjZSgvJi9nLCImYW1wOyIpKX0scG9zaXRpb25FbGVtZW50OmZ1bmN0aW9uKCl7dmFyIGE9aC5nZXRET01PYmplY3RQb3NpdGlvbih0aGlzLmRvbUVsZW1lbnQpLApiPXRoaXMuZGl2LnN0eWxlO2IucG9zaXRpb249ImFic29sdXRlIjtiLndpZHRoPWEud2lkdGgrInB4IjtiLmhlaWdodD1hLmhlaWdodCsicHgiOzAhPT1hLndpZHRoJiYwIT09YS5oZWlnaHQmJih0aGlzLnNpemVkPSEwLGI9dGhpcy5kaXYuY2hpbGROb2Rlc1swXSxiLndpZHRoPWEud2lkdGgsYi5oZWlnaHQ9YS5oZWlnaHQpfSxnZXRIVE1MOmZ1bmN0aW9uKGEsYil7dmFyIGQ9IiIsYz0iaWQ9Iit0aGlzLmlkKyImd2lkdGg9IithKyImaGVpZ2h0PSIrYjtpZihuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9NU0lFLykpdmFyIGU9bG9jYXRpb24uaHJlZi5tYXRjaCgvXmh0dHBzL2kpPyJodHRwczovLyI6Imh0dHA6Ly8iLGQ9ZCsoJzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiBjb2RlYmFzZT0iJytlKydkb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIjdmVyc2lvbj0xMCwwLDAsMCIgd2lkdGg9IicrCmErJyIgaGVpZ2h0PSInK2IrJyIgaWQ9IicrdGhpcy5tb3ZpZUlkKyciIGFsaWduPSJtaWRkbGUiPjxwYXJhbSBuYW1lPSJhbGxvd1NjcmlwdEFjY2VzcyIgdmFsdWU9ImFsd2F5cyIgLz48cGFyYW0gbmFtZT0iYWxsb3dGdWxsU2NyZWVuIiB2YWx1ZT0iZmFsc2UiIC8+PHBhcmFtIG5hbWU9Im1vdmllIiB2YWx1ZT0iJytoLm1vdmllUGF0aCsnIiAvPjxwYXJhbSBuYW1lPSJsb29wIiB2YWx1ZT0iZmFsc2UiIC8+PHBhcmFtIG5hbWU9Im1lbnUiIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0icXVhbGl0eSIgdmFsdWU9ImJlc3QiIC8+PHBhcmFtIG5hbWU9ImJnY29sb3IiIHZhbHVlPSIjZmZmZmZmIiAvPjxwYXJhbSBuYW1lPSJmbGFzaHZhcnMiIHZhbHVlPSInK2MrJyIvPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50Ii8+PC9vYmplY3Q+Jyk7ZWxzZSBkKz0nPGVtYmVkIGlkPSInK3RoaXMubW92aWVJZCsnIiBzcmM9IicraC5tb3ZpZVBhdGgrJyIgbG9vcD0iZmFsc2UiIG1lbnU9ImZhbHNlIiBxdWFsaXR5PSJiZXN0IiBiZ2NvbG9yPSIjZmZmZmZmIiB3aWR0aD0iJysKYSsnIiBoZWlnaHQ9IicrYisnIiBuYW1lPSInK3RoaXMubW92aWVJZCsnIiBhbGlnbj0ibWlkZGxlIiBhbGxvd1NjcmlwdEFjY2Vzcz0iYWx3YXlzIiBhbGxvd0Z1bGxTY3JlZW49ImZhbHNlIiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgcGx1Z2luc3BhZ2U9Imh0dHA6Ly93d3cubWFjcm9tZWRpYS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiIGZsYXNodmFycz0iJytjKyciIHdtb2RlPSJ0cmFuc3BhcmVudCIgLz4nO3JldHVybiBkfSxoaWRlOmZ1bmN0aW9uKCl7dGhpcy5kaXYmJih0aGlzLmRpdi5zdHlsZS5sZWZ0PSItMjAwMHB4Iil9LHNob3c6ZnVuY3Rpb24oKXt0aGlzLnJlcG9zaXRpb24oKX0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5kb21FbGVtZW50JiZ0aGlzLmRpdiYmKGcodGhpcy5kaXYpLnJlbW92ZSgpLHRoaXMuZGl2PXRoaXMuZG9tRWxlbWVudD1udWxsLGcuZWFjaChoLmNsaWVudHMsZnVuY3Rpb24oYixkKXtkPT09YSYmZGVsZXRlIGguY2xpZW50c1tiXX0pKX0sCnJlcG9zaXRpb246ZnVuY3Rpb24oYSl7YSYmKCh0aGlzLmRvbUVsZW1lbnQ9aC4kKGEpKXx8dGhpcy5oaWRlKCkpO2lmKHRoaXMuZG9tRWxlbWVudCYmdGhpcy5kaXYpe3ZhciBhPWguZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50KSxiPXRoaXMuZGl2LnN0eWxlO2IubGVmdD0iIithLmxlZnQrInB4IjtiLnRvcD0iIithLnRvcCsicHgifX0sY2xlYXJUZXh0OmZ1bmN0aW9uKCl7dGhpcy5jbGlwVGV4dD0iIjt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLmNsZWFyVGV4dCgpfSxhcHBlbmRUZXh0OmZ1bmN0aW9uKGEpe3RoaXMuY2xpcFRleHQrPWE7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5hcHBlbmRUZXh0KGEpfSxzZXRUZXh0OmZ1bmN0aW9uKGEpe3RoaXMuY2xpcFRleHQ9YTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLnNldFRleHQoYSl9LHNldEZpbGVOYW1lOmZ1bmN0aW9uKGEpe3RoaXMuZmlsZU5hbWU9YTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLnNldEZpbGVOYW1lKGEpfSwKc2V0U2hlZXREYXRhOmZ1bmN0aW9uKGEpe3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0U2hlZXREYXRhKEpTT04uc3RyaW5naWZ5KGEpKX0sc2V0QWN0aW9uOmZ1bmN0aW9uKGEpe3RoaXMuYWN0aW9uPWE7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5zZXRBY3Rpb24oYSl9LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24oYSxiKXthPWEudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL15vbi8sIiIpO3RoaXMuaGFuZGxlcnNbYV18fCh0aGlzLmhhbmRsZXJzW2FdPVtdKTt0aGlzLmhhbmRsZXJzW2FdLnB1c2goYil9LHNldEhhbmRDdXJzb3I6ZnVuY3Rpb24oYSl7dGhpcy5oYW5kQ3Vyc29yRW5hYmxlZD1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0SGFuZEN1cnNvcihhKX0sc2V0Q1NTRWZmZWN0czpmdW5jdGlvbihhKXt0aGlzLmNzc0VmZmVjdHM9ISFhfSxyZWNlaXZlRXZlbnQ6ZnVuY3Rpb24oYSxiKXt2YXIgZCxhPWEudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL15vbi8sCiIiKTtzd2l0Y2goYSl7Y2FzZSAibG9hZCI6dGhpcy5tb3ZpZT1rLmdldEVsZW1lbnRCeUlkKHRoaXMubW92aWVJZCk7aWYoIXRoaXMubW92aWUpe2Q9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZC5yZWNlaXZlRXZlbnQoImxvYWQiLG51bGwpfSwxKTtyZXR1cm59aWYoIXRoaXMucmVhZHkmJm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvKSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2luZG93cy8pKXtkPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2QucmVjZWl2ZUV2ZW50KCJsb2FkIixudWxsKX0sMTAwKTt0aGlzLnJlYWR5PSEwO3JldHVybn10aGlzLnJlYWR5PSEwO3RoaXMubW92aWUuY2xlYXJUZXh0KCk7dGhpcy5tb3ZpZS5hcHBlbmRUZXh0KHRoaXMuY2xpcFRleHQpO3RoaXMubW92aWUuc2V0RmlsZU5hbWUodGhpcy5maWxlTmFtZSk7dGhpcy5tb3ZpZS5zZXRBY3Rpb24odGhpcy5hY3Rpb24pO3RoaXMubW92aWUuc2V0SGFuZEN1cnNvcih0aGlzLmhhbmRDdXJzb3JFbmFibGVkKTsKYnJlYWs7Y2FzZSAibW91c2VvdmVyIjp0aGlzLmRvbUVsZW1lbnQmJnRoaXMuY3NzRWZmZWN0cyYmdGhpcy5yZWNvdmVyQWN0aXZlJiZ0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoImFjdGl2ZSIpO2JyZWFrO2Nhc2UgIm1vdXNlb3V0Ijp0aGlzLmRvbUVsZW1lbnQmJnRoaXMuY3NzRWZmZWN0cyYmKHRoaXMucmVjb3ZlckFjdGl2ZT0hMSx0aGlzLmRvbUVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpJiYodGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLnJlY292ZXJBY3RpdmU9ITApKTticmVhaztjYXNlICJtb3VzZWRvd24iOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiZ0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoImFjdGl2ZSIpO2JyZWFrO2Nhc2UgIm1vdXNldXAiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiYodGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLnJlY292ZXJBY3RpdmU9ITEpfWlmKHRoaXMuaGFuZGxlcnNbYV0pZm9yKHZhciBjPQowLGU9dGhpcy5oYW5kbGVyc1thXS5sZW5ndGg7YzxlO2MrKyl7dmFyIGY9dGhpcy5oYW5kbGVyc1thXVtjXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZilmKHRoaXMsYik7ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIGYmJjI9PWYubGVuZ3RoKWZbMF1bZlsxXV0odGhpcyxiKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZilpW2ZdKHRoaXMsYil9fX07aC5oYXNGbGFzaD1mdW5jdGlvbigpe3RyeXtpZihuZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSlyZXR1cm4hMH1jYXRjaChhKXtpZihuYXZpZ2F0b3IubWltZVR5cGVzJiZuYXZpZ2F0b3IubWltZVR5cGVzWyJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdIT09byYmbmF2aWdhdG9yLm1pbWVUeXBlc1siYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giXS5lbmFibGVkUGx1Z2luKXJldHVybiEwfXJldHVybiExfTtpLlplcm9DbGlwYm9hcmRfVGFibGVUb29scz1oO3ZhciB3PWZ1bmN0aW9uKGEsCmIpe2IuYXR0cigiaWQiKTtiLnBhcmVudHMoImh0bWwiKS5sZW5ndGg/YS5nbHVlKGJbMF0sIiIpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt3KGEsYil9LDUwMCl9LHE9ZnVuY3Rpb24oYSxiKXt2YXIgZD0iKiI9PT1hLmZpbGVuYW1lJiYiKiIhPT1hLnRpdGxlJiZhLnRpdGxlIT09bz9hLnRpdGxlOmEuZmlsZW5hbWU7ImZ1bmN0aW9uIj09PXR5cGVvZiBkJiYoZD1kKCkpOy0xIT09ZC5pbmRleE9mKCIqIikmJihkPWcudHJpbShkLnJlcGxhY2UoIioiLGcoInRpdGxlIikudGV4dCgpKSkpO2Q9ZC5yZXBsYWNlKC9bXmEtekEtWjAtOV9cdTAwQTEtXHVGRkZGXC4sXC1fICFcKFwpXS9nLCIiKTtyZXR1cm4gYj09PW98fCEwPT09Yj9kK2EuZXh0ZW5zaW9uOmR9LHo9ZnVuY3Rpb24oYSl7dmFyIGI9IlNoZWV0MSI7YS5zaGVldE5hbWUmJihiPWEuc2hlZXROYW1lLnJlcGxhY2UoL1tcW1xdXCpcL1xcXD9cOl0vZywiIikpO3JldHVybiBifSxyPWZ1bmN0aW9uKGEsYil7dmFyIGQ9Yi5tYXRjaCgvW1xzXFNdezEsODE5Mn0vZyl8fApbXTthLmNsZWFyVGV4dCgpO2Zvcih2YXIgYz0wLGU9ZC5sZW5ndGg7YzxlO2MrKylhLmFwcGVuZFRleHQoZFtjXSl9LHg9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9Yi5uZXdsaW5lP2IubmV3bGluZTpuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLyk/IlxyXG4iOiJcbiIsYz1hLmJ1dHRvbnMuZXhwb3J0RGF0YShiLmV4cG9ydE9wdGlvbnMpLGU9Yi5maWVsZEJvdW5kYXJ5LGY9Yi5maWVsZFNlcGFyYXRvcixnPVJlZ0V4cChlLCJnIiksaD1iLmVzY2FwZUNoYXIhPT1vP2IuZXNjYXBlQ2hhcjoiXFwiLGk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspMDxjJiYoYis9ZiksYis9ZT9lKygiIithW2NdKS5yZXBsYWNlKGcsaCtlKStlOmFbY107cmV0dXJuIGJ9LGs9Yi5oZWFkZXI/aShjLmhlYWRlcikrZDoiIixtPWIuZm9vdGVyJiZjLmZvb3Rlcj9kK2koYy5mb290ZXIpOiIiLGw9W10sdD0wLEE9Yy5ib2R5Lmxlbmd0aDt0PEE7dCsrKWwucHVzaChpKGMuYm9keVt0XSkpOwpyZXR1cm57c3RyOmsrbC5qb2luKGQpK20scm93czpsLmxlbmd0aH19LHM9e2F2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiBoLmhhc0ZsYXNoKCl9LGluaXQ6ZnVuY3Rpb24oYSxiLGQpe2gubW92aWVQYXRoPWouQnV0dG9ucy5zd2ZQYXRoO3ZhciBjPW5ldyBoLkNsaWVudDtjLnNldEhhbmRDdXJzb3IoITApO2MuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VEb3duIixmdW5jdGlvbigpe2QuX2Zyb21GbGFzaD0hMDthLmJ1dHRvbihiWzBdKS50cmlnZ2VyKCk7ZC5fZnJvbUZsYXNoPSExfSk7dyhjLGIpO2QuX2ZsYXNoPWN9LGRlc3Ryb3k6ZnVuY3Rpb24oYSxiLGQpe2QuX2ZsYXNoLmRlc3Ryb3koKX0sZmllbGRTZXBhcmF0b3I6IiwiLGZpZWxkQm91bmRhcnk6JyInLGV4cG9ydE9wdGlvbnM6e30sdGl0bGU6IioiLGZpbGVuYW1lOiIqIixleHRlbnNpb246Ii5jc3YiLGhlYWRlcjohMCxmb290ZXI6ITF9O3RyeXt2YXIgdj1uZXcgWE1MU2VyaWFsaXplcixufWNhdGNoKEIpe312YXIgcD0KeyJfcmVscy8ucmVscyI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48UmVsYXRpb25zaGlwcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIj48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50IiBUYXJnZXQ9InhsL3dvcmtib29rLnhtbCIvPjwvUmVsYXRpb25zaGlwcz4nLCJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48UmVsYXRpb25zaGlwcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIj48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIgVGFyZ2V0PSJ3b3Jrc2hlZXRzL3NoZWV0MS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyIgVGFyZ2V0PSJzdHlsZXMueG1sIi8+PC9SZWxhdGlvbnNoaXBzPicsCiJbQ29udGVudF9UeXBlc10ueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxUeXBlcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9jb250ZW50LXR5cGVzIj48RGVmYXVsdCBFeHRlbnNpb249InhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3htbCIgLz48RGVmYXVsdCBFeHRlbnNpb249InJlbHMiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtcGFja2FnZS5yZWxhdGlvbnNoaXBzK3htbCIgLz48RGVmYXVsdCBFeHRlbnNpb249ImpwZWciIENvbnRlbnRUeXBlPSJpbWFnZS9qcGVnIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3dvcmtib29rLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiIC8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvc3R5bGVzLnhtbCIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWwiIC8+PC9UeXBlcz4nLAoieGwvd29ya2Jvb2sueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pjx3b3JrYm9vayB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIj48ZmlsZVZlcnNpb24gYXBwTmFtZT0ieGwiIGxhc3RFZGl0ZWQ9IjUiIGxvd2VzdEVkaXRlZD0iNSIgcnVwQnVpbGQ9IjI0ODE2Ii8+PHdvcmtib29rUHIgc2hvd0lua0Fubm90YXRpb249IjAiIGF1dG9Db21wcmVzc1BpY3R1cmVzPSIwIi8+PGJvb2tWaWV3cz48d29ya2Jvb2tWaWV3IHhXaW5kb3c9IjAiIHlXaW5kb3c9IjAiIHdpbmRvd1dpZHRoPSIyNTYwMCIgd2luZG93SGVpZ2h0PSIxOTAyMCIgdGFiUmF0aW89IjUwMCIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9IiIgc2hlZXRJZD0iMSIgcjppZD0icklkMSIvPjwvc2hlZXRzPjwvd29ya2Jvb2s+JywKInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48d29ya3NoZWV0IHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iIHhtbG5zOnI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMiIHhtbG5zOm1jPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNiIgbWM6SWdub3JhYmxlPSJ4MTRhYyIgeG1sbnM6eDE0YWM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjIj48c2hlZXREYXRhLz48L3dvcmtzaGVldD4nLCJ4bC9zdHlsZXMueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3R5bGVTaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PGZvbnRzIGNvdW50PSI1IiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48Y29sb3IgcmdiPSJGRkZGRkZGRiIgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjxiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48aSAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PHUgLz48L2ZvbnQ+PC9mb250cz48ZmlsbHMgY291bnQ9IjYiPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ibm9uZSIgLz48L2ZpbGw+PGZpbGwvPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iRkZEOUQ5RDkiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJGRkQ5OTc5NSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9ImZmYzZlZmNlIiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iZmZjNmNmZWYiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PC9maWxscz48Ym9yZGVycyBjb3VudD0iMiI+PGJvcmRlcj48bGVmdCAvPjxyaWdodCAvPjx0b3AgLz48Ym90dG9tIC8+PGRpYWdvbmFsIC8+PC9ib3JkZXI+PGJvcmRlciBkaWFnb25hbFVwPSJmYWxzZSIgZGlhZ29uYWxEb3duPSJmYWxzZSI+PGxlZnQgc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvbGVmdD48cmlnaHQgc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvcmlnaHQ+PHRvcCBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC90b3A+PGJvdHRvbSBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC9ib3R0b20+PGRpYWdvbmFsIC8+PC9ib3JkZXI+PC9ib3JkZXJzPjxjZWxsU3R5bGVYZnMgY291bnQ9IjEiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiAvPjwvY2VsbFN0eWxlWGZzPjxjZWxsWGZzIGNvdW50PSIyIj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjwvY2VsbFhmcz48Y2VsbFN0eWxlcyBjb3VudD0iMSI+PGNlbGxTdHlsZSBuYW1lPSJOb3JtYWwiIHhmSWQ9IjAiIGJ1aWx0aW5JZD0iMCIgLz48L2NlbGxTdHlsZXM+PGR4ZnMgY291bnQ9IjAiIC8+PHRhYmxlU3R5bGVzIGNvdW50PSIwIiBkZWZhdWx0VGFibGVTdHlsZT0iVGFibGVTdHlsZU1lZGl1bTkiIGRlZmF1bHRQaXZvdFN0eWxlPSJQaXZvdFN0eWxlTWVkaXVtNCIgLz48L3N0eWxlU2hlZXQ+J307CmouQnV0dG9ucy5zd2ZQYXRoPSIvL2Nkbi5kYXRhdGFibGVzLm5ldC9idXR0b25zLzEuMi4wL3N3Zi9mbGFzaEV4cG9ydC5zd2YiO2ouQXBpLnJlZ2lzdGVyKCJidXR0b25zLnJlc2l6ZSgpIixmdW5jdGlvbigpe2cuZWFjaChoLmNsaWVudHMsZnVuY3Rpb24oYSxiKXtiLmRvbUVsZW1lbnQhPT1vJiZiLmRvbUVsZW1lbnQucGFyZW50Tm9kZSYmYi5wb3NpdGlvbkVsZW1lbnQoKX0pfSk7ai5leHQuYnV0dG9ucy5jb3B5Rmxhc2g9Zy5leHRlbmQoe30scyx7Y2xhc3NOYW1lOiJidXR0b25zLWNvcHkgYnV0dG9ucy1mbGFzaCIsdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLmNvcHkiLCJDb3B5Iil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXtjLl9mcm9tRmxhc2gmJihhPWMuX2ZsYXNoLGQ9eChiLGMpLGM9Yy5jdXN0b21pemU/Yy5jdXN0b21pemUoZC5zdHIsYyk6ZC5zdHIsYS5zZXRBY3Rpb24oImNvcHkiKSxyKGEsYyksYi5idXR0b25zLmluZm8oYi5pMThuKCJidXR0b25zLmNvcHlUaXRsZSIsCiJDb3B5IHRvIGNsaXBib2FyZCIpLGIuaTE4bigiYnV0dG9ucy5jb3B5U3VjY2VzcyIse186IkNvcGllZCAlZCByb3dzIHRvIGNsaXBib2FyZCIsMToiQ29waWVkIDEgcm93IHRvIGNsaXBib2FyZCJ9LGQucm93cyksM0UzKSl9LGZpZWxkU2VwYXJhdG9yOiJcdCIsZmllbGRCb3VuZGFyeToiIn0pO2ouZXh0LmJ1dHRvbnMuY3N2Rmxhc2g9Zy5leHRlbmQoe30scyx7Y2xhc3NOYW1lOiJidXR0b25zLWNzdiBidXR0b25zLWZsYXNoIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY3N2IiwiQ1NWIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXthPWMuX2ZsYXNoO2I9eChiLGMpO2I9Yy5jdXN0b21pemU/Yy5jdXN0b21pemUoYi5zdHIsYyk6Yi5zdHI7YS5zZXRBY3Rpb24oImNzdiIpO2Euc2V0RmlsZU5hbWUocShjKSk7cihhLGIpfSxlc2NhcGVDaGFyOiciJ30pO2ouZXh0LmJ1dHRvbnMuZXhjZWxGbGFzaD1nLmV4dGVuZCh7fSxzLHtjbGFzc05hbWU6ImJ1dHRvbnMtZXhjZWwgYnV0dG9ucy1mbGFzaCIsCnRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5leGNlbCIsIkV4Y2VsIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt2YXIgYT1jLl9mbGFzaCxlPTAsZj1nLnBhcnNlWE1MKHBbInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCJdKSxoPWYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNoZWV0RGF0YSIpWzBdLGQ9e19yZWxzOnsiLnJlbHMiOmcucGFyc2VYTUwocFsiX3JlbHMvLnJlbHMiXSl9LHhsOntfcmVsczp7Indvcmtib29rLnhtbC5yZWxzIjpnLnBhcnNlWE1MKHBbInhsL19yZWxzL3dvcmtib29rLnhtbC5yZWxzIl0pfSwid29ya2Jvb2sueG1sIjpnLnBhcnNlWE1MKHBbInhsL3dvcmtib29rLnhtbCJdKSwic3R5bGVzLnhtbCI6Zy5wYXJzZVhNTChwWyJ4bC9zdHlsZXMueG1sIl0pLHdvcmtzaGVldHM6eyJzaGVldDEueG1sIjpmfX0sIltDb250ZW50X1R5cGVzXS54bWwiOmcucGFyc2VYTUwocFsiW0NvbnRlbnRfVHlwZXNdLnhtbCJdKX0sYj1iLmJ1dHRvbnMuZXhwb3J0RGF0YShjLmV4cG9ydE9wdGlvbnMpLAppLGssaj1mdW5jdGlvbihhKXtpPWUrMTtrPWwoZiwicm93Iix7YXR0cjp7cjppfX0pO2Zvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKyl7Zm9yKHZhciBkPWIsaj0iIjswPD1kOylqPVN0cmluZy5mcm9tQ2hhckNvZGUoZCUyNis2NSkraixkPU1hdGguZmxvb3IoZC8yNiktMTtkPWorIiIraTtpZihudWxsPT09YVtiXXx8YVtiXT09PW8pYVtiXT0iIjsibnVtYmVyIj09PXR5cGVvZiBhW2JdfHxhW2JdLm1hdGNoJiZnLnRyaW0oYVtiXSkubWF0Y2goL14tP1xkKyhcLlxkKyk/JC8pJiYhZy50cmltKGFbYl0pLm1hdGNoKC9eMFxkKy8pP2Q9bChmLCJjIix7YXR0cjp7dDoibiIscjpkfSxjaGlsZHJlbjpbbChmLCJ2Iix7dGV4dDphW2JdfSldfSk6KGo9IWFbYl0ucmVwbGFjZT9hW2JdOmFbYl0ucmVwbGFjZSgvJig/IWFtcDspL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvW1x4MDAtXHgwOVx4MEJceDBDXHgwRS1ceDFGXHg3Ri1ceDlGXS9nLAoiIiksZD1sKGYsImMiLHthdHRyOnt0OiJpbmxpbmVTdHIiLHI6ZH0sY2hpbGRyZW46e3JvdzpsKGYsImlzIix7Y2hpbGRyZW46e3JvdzpsKGYsInQiLHt0ZXh0Omp9KX19KX19KSk7ay5hcHBlbmRDaGlsZChkKX1oLmFwcGVuZENoaWxkKGspO2UrK307Zygic2hlZXRzIHNoZWV0IixkLnhsWyJ3b3JrYm9vay54bWwiXSkuYXR0cigibmFtZSIseihjKSk7Yy5jdXN0b21pemVEYXRhJiZjLmN1c3RvbWl6ZURhdGEoYik7Yy5oZWFkZXImJihqKGIuaGVhZGVyLGUpLGcoInJvdyBjIixmKS5hdHRyKCJzIiwiMiIpKTtmb3IodmFyIG09MCxuPWIuYm9keS5sZW5ndGg7bTxuO20rKylqKGIuYm9keVttXSxlKTtjLmZvb3RlciYmYi5mb290ZXImJihqKGIuZm9vdGVyLGUpLGcoInJvdzpsYXN0IGMiLGYpLmF0dHIoInMiLCIyIikpO2o9bChmLCJjb2xzIik7Zygid29ya3NoZWV0IixmKS5wcmVwZW5kKGopO209MDtmb3Iobj1iLmhlYWRlci5sZW5ndGg7bTxuO20rKylqLmFwcGVuZENoaWxkKGwoZiwKImNvbCIse2F0dHI6e21pbjptKzEsbWF4Om0rMSx3aWR0aDp5KGIsbSksY3VzdG9tV2lkdGg6MX19KSk7Yy5jdXN0b21pemUmJmMuY3VzdG9taXplKGQpO3UoZCk7YS5zZXRBY3Rpb24oImV4Y2VsIik7YS5zZXRGaWxlTmFtZShxKGMpKTthLnNldFNoZWV0RGF0YShkKTtyKGEsIiIpfSxleHRlbnNpb246Ii54bHN4In0pO2ouZXh0LmJ1dHRvbnMucGRmRmxhc2g9Zy5leHRlbmQoe30scyx7Y2xhc3NOYW1lOiJidXR0b25zLXBkZiBidXR0b25zLWZsYXNoIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMucGRmIiwiUERGIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt2YXIgYT1jLl9mbGFzaCxkPWIuYnV0dG9ucy5leHBvcnREYXRhKGMuZXhwb3J0T3B0aW9ucyksZT1iLnRhYmxlKCkubm9kZSgpLm9mZnNldFdpZHRoLGY9Yi5jb2x1bW5zKGMuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYi5jb2x1bW4oYSkuaGVhZGVyKCkub2Zmc2V0V2lkdGgvCmV9KTthLnNldEFjdGlvbigicGRmIik7YS5zZXRGaWxlTmFtZShxKGMpKTtyKGEsSlNPTi5zdHJpbmdpZnkoe3RpdGxlOnEoYywhMSksbWVzc2FnZTpjLm1lc3NhZ2UsY29sV2lkdGg6Zi50b0FycmF5KCksb3JpZW50YXRpb246Yy5vcmllbnRhdGlvbixzaXplOmMucGFnZVNpemUsaGVhZGVyOmMuaGVhZGVyP2QuaGVhZGVyOm51bGwsZm9vdGVyOmMuZm9vdGVyP2QuZm9vdGVyOm51bGwsYm9keTpkLmJvZHl9KSl9LGV4dGVuc2lvbjoiLnBkZiIsb3JpZW50YXRpb246InBvcnRyYWl0IixwYWdlU2l6ZToiQTQiLG1lc3NhZ2U6IiIsbmV3bGluZToiXG4ifSk7cmV0dXJuIGouQnV0dG9uc30pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
43 <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKGcpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSIsImRhdGF0YWJsZXMubmV0IiwiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyJdLGZ1bmN0aW9uKGope3JldHVybiBnKGosd2luZG93LGRvY3VtZW50KX0pOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oaixpLHEscil7anx8KGo9d2luZG93KTtpZighaXx8IWkuZm4uZGF0YVRhYmxlKWk9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShqLGkpLiQ7aS5mbi5kYXRhVGFibGUuQnV0dG9uc3x8cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyIpKGosaSk7cmV0dXJuIGcoaSxqLGouZG9jdW1lbnQscSxyKX06ZyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGcsaixpLHEscixtKXtmdW5jdGlvbiBFKGEsYil7dj09PW0mJih2PS0xPT09eS5zZXJpYWxpemVUb1N0cmluZyhnLnBhcnNlWE1MKEZbInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCJdKSkuaW5kZXhPZigieG1sbnM6ciIpKTsKZy5lYWNoKGIsZnVuY3Rpb24oYixjKXtpZihnLmlzUGxhaW5PYmplY3QoYykpe3ZhciBlPWEuZm9sZGVyKGIpO0UoZSxjKX1lbHNle2lmKHYpe3ZhciBlPWMuY2hpbGROb2Rlc1swXSxmLGgsbj1bXTtmb3IoZj1lLmF0dHJpYnV0ZXMubGVuZ3RoLTE7MDw9ZjtmLS0pe2g9ZS5hdHRyaWJ1dGVzW2ZdLm5vZGVOYW1lO3ZhciBrPWUuYXR0cmlidXRlc1tmXS5ub2RlVmFsdWU7LTEhPT1oLmluZGV4T2YoIjoiKSYmKG4ucHVzaCh7bmFtZTpoLHZhbHVlOmt9KSxlLnJlbW92ZUF0dHJpYnV0ZShoKSl9Zj0wO2ZvcihoPW4ubGVuZ3RoO2Y8aDtmKyspaz1jLmNyZWF0ZUF0dHJpYnV0ZShuW2ZdLm5hbWUucmVwbGFjZSgiOiIsIl9kdF9iX25hbWVzcGFjZV90b2tlbl8iKSksay52YWx1ZT1uW2ZdLnZhbHVlLGUuc2V0QXR0cmlidXRlTm9kZShrKX1lPXkuc2VyaWFsaXplVG9TdHJpbmcoYyk7diYmKC0xPT09ZS5pbmRleE9mKCI8P3htbCIpJiYoZT0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrCmUpLGU9ZS5yZXBsYWNlKC9fZHRfYl9uYW1lc3BhY2VfdG9rZW5fL2csIjoiKSk7ZT1lLnJlcGxhY2UoLzxyb3cgeG1sbnM9IiIgL2csIjxyb3cgIikucmVwbGFjZSgvPGNvbHMgeG1sbnM9IiI+L2csIjxjb2xzPiIpO2EuZmlsZShiLGUpfX0pfWZ1bmN0aW9uIG8oYSxiLGQpe3ZhciBjPWEuY3JlYXRlRWxlbWVudChiKTtkJiYoZC5hdHRyJiZnKGMpLmF0dHIoZC5hdHRyKSxkLmNoaWxkcmVuJiZnLmVhY2goZC5jaGlsZHJlbixmdW5jdGlvbihhLGIpe2MuYXBwZW5kQ2hpbGQoYil9KSxkLnRleHQmJmMuYXBwZW5kQ2hpbGQoYS5jcmVhdGVUZXh0Tm9kZShkLnRleHQpKSk7cmV0dXJuIGN9ZnVuY3Rpb24gTihhLGIpe3ZhciBkPWEuaGVhZGVyW2JdLmxlbmd0aCxjO2EuZm9vdGVyJiZhLmZvb3RlcltiXS5sZW5ndGg+ZCYmKGQ9YS5mb290ZXJbYl0ubGVuZ3RoKTtmb3IodmFyIGU9MCxmPWEuYm9keS5sZW5ndGg7ZTxmJiYhKGM9YS5ib2R5W2VdW2JdLnRvU3RyaW5nKCkubGVuZ3RoLGM+ZCYmCihkPWMpLDQwPGQpO2UrKyk7cmV0dXJuIDU8ZD9kOjV9dmFyIHM9Zy5mbi5kYXRhVGFibGU7cT09PW0mJihxPWouSlNaaXApO3I9PT1tJiYocj1qLnBkZk1ha2UpO3ZhciBwO3ZhciBoPSJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGYmJnNlbGZ8fCJ1bmRlZmluZWQiIT09dHlwZW9mIGomJmp8fHRoaXMuY29udGVudDtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBuYXZpZ2F0b3ImJi9NU0lFIFsxLTldXC4vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpcD12b2lkIDA7ZWxzZXt2YXIgdz1oLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImEiKSxPPSJkb3dubG9hZCJpbiB3LEc9L1ZlcnNpb25cL1tcZFwuXSsuKlNhZmFyaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSx6PWgud2Via2l0UmVxdWVzdEZpbGVTeXN0ZW0sSD1oLnJlcXVlc3RGaWxlU3lzdGVtfHx6fHxoLm1velJlcXVlc3RGaWxlU3lzdGVtLFA9ZnVuY3Rpb24oYSl7KGguc2V0SW1tZWRpYXRlfHwKaC5zZXRUaW1lb3V0KShmdW5jdGlvbigpe3Rocm93IGE7fSwwKX0sQT0wLEI9ZnVuY3Rpb24oYSl7c2V0VGltZW91dChmdW5jdGlvbigpe3R5cGVvZiBhPT09InN0cmluZyI/KGguVVJMfHxoLndlYmtpdFVSTHx8aCkucmV2b2tlT2JqZWN0VVJMKGEpOmEucmVtb3ZlKCl9LDRFNCl9LEM9ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgYj1bXS5jb25jYXQoYiksYz1iLmxlbmd0aDtjLS07KXt2YXIgZT1hWyJvbiIrYltjXV07aWYodHlwZW9mIGU9PT0iZnVuY3Rpb24iKXRyeXtlLmNhbGwoYSxkfHxhKX1jYXRjaChmKXtQKGYpfX19LEk9ZnVuY3Rpb24oYSl7cmV0dXJuL15ccyooPzp0ZXh0XC9cUyp8YXBwbGljYXRpb25cL3htbHxcUypcL1xTKlwreG1sKVxzKjsuKmNoYXJzZXRccyo9XHMqdXRmLTgvaS50ZXN0KGEudHlwZSk/bmV3IEJsb2IoWyLvu78iLGFdLHt0eXBlOmEudHlwZX0pOmF9LEo9ZnVuY3Rpb24oYSxiLGQpe2R8fChhPUkoYSkpO3ZhciBjPXRoaXMsZD1hLnR5cGUsZT1mYWxzZSwKZixnLG49ZnVuY3Rpb24oKXtDKGMsWyJ3cml0ZXN0YXJ0IiwicHJvZ3Jlc3MiLCJ3cml0ZSIsIndyaXRlZW5kIl0pfSxrPWZ1bmN0aW9uKCl7aWYoZyYmRyYmdHlwZW9mIEZpbGVSZWFkZXIhPT0idW5kZWZpbmVkIil7dmFyIGI9bmV3IEZpbGVSZWFkZXI7Yi5vbmxvYWRlbmQ9ZnVuY3Rpb24oKXt2YXIgYT1iLnJlc3VsdDtnLmxvY2F0aW9uLmhyZWY9ImRhdGE6YXR0YWNobWVudC9maWxlIithLnNsaWNlKGEuc2VhcmNoKC9bLDtdLykpO2MucmVhZHlTdGF0ZT1jLkRPTkU7bigpfTtiLnJlYWRBc0RhdGFVUkwoYSk7Yy5yZWFkeVN0YXRlPWMuSU5JVH1lbHNle2lmKGV8fCFmKWY9KGguVVJMfHxoLndlYmtpdFVSTHx8aCkuY3JlYXRlT2JqZWN0VVJMKGEpO2lmKGcpZy5sb2NhdGlvbi5ocmVmPWY7ZWxzZSBpZihoLm9wZW4oZiwiX2JsYW5rIik9PT1tJiZHKWgubG9jYXRpb24uaHJlZj1mO2MucmVhZHlTdGF0ZT1jLkRPTkU7bigpO0IoZil9fSx0PWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe2lmKGMucmVhZHlTdGF0ZSE9PQpjLkRPTkUpcmV0dXJuIGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0saj17Y3JlYXRlOnRydWUsZXhjbHVzaXZlOmZhbHNlfSx1O2MucmVhZHlTdGF0ZT1jLklOSVQ7Ynx8KGI9ImRvd25sb2FkIik7aWYoTyl7Zj0oaC5VUkx8fGgud2Via2l0VVJMfHxoKS5jcmVhdGVPYmplY3RVUkwoYSk7c2V0VGltZW91dChmdW5jdGlvbigpe3cuaHJlZj1mO3cuZG93bmxvYWQ9Yjt2YXIgYT1uZXcgTW91c2VFdmVudCgiY2xpY2siKTt3LmRpc3BhdGNoRXZlbnQoYSk7bigpO0IoZik7Yy5yZWFkeVN0YXRlPWMuRE9ORX0pfWVsc2V7aWYoaC5jaHJvbWUmJmQmJmQhPT0iYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIil7dT1hLnNsaWNlfHxhLndlYmtpdFNsaWNlO2E9dS5jYWxsKGEsMCxhLnNpemUsImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpO2U9dHJ1ZX16JiZiIT09ImRvd25sb2FkIiYmKGI9YisiLmRvd25sb2FkIik7aWYoZD09PSJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifHx6KWc9aDtpZihIKXtBPQpBK2Euc2l6ZTtIKGguVEVNUE9SQVJZLEEsdChmdW5jdGlvbihkKXtkLnJvb3QuZ2V0RGlyZWN0b3J5KCJzYXZlZCIsaix0KGZ1bmN0aW9uKGQpe3ZhciBmPWZ1bmN0aW9uKCl7ZC5nZXRGaWxlKGIsaix0KGZ1bmN0aW9uKGIpe2IuY3JlYXRlV3JpdGVyKHQoZnVuY3Rpb24oZCl7ZC5vbndyaXRlZW5kPWZ1bmN0aW9uKGEpe2cubG9jYXRpb24uaHJlZj1iLnRvVVJMKCk7Yy5yZWFkeVN0YXRlPWMuRE9ORTtDKGMsIndyaXRlZW5kIixhKTtCKGIpfTtkLm9uZXJyb3I9ZnVuY3Rpb24oKXt2YXIgYT1kLmVycm9yO2EuY29kZSE9PWEuQUJPUlRfRVJSJiZrKCl9O1sid3JpdGVzdGFydCIsInByb2dyZXNzIiwid3JpdGUiLCJhYm9ydCJdLmZvckVhY2goZnVuY3Rpb24oYSl7ZFsib24iK2FdPWNbIm9uIithXX0pO2Qud3JpdGUoYSk7Yy5hYm9ydD1mdW5jdGlvbigpe2QuYWJvcnQoKTtjLnJlYWR5U3RhdGU9Yy5ET05FfTtjLnJlYWR5U3RhdGU9Yy5XUklUSU5HfSksayl9KSxrKX07ZC5nZXRGaWxlKGIsCntjcmVhdGU6ZmFsc2V9LHQoZnVuY3Rpb24oYSl7YS5yZW1vdmUoKTtmKCl9KSx0KGZ1bmN0aW9uKGEpe2EuY29kZT09PWEuTk9UX0ZPVU5EX0VSUj9mKCk6aygpfSkpfSksayl9KSxrKX1lbHNlIGsoKX19LGw9Si5wcm90b3R5cGU7InVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYj9wPWZ1bmN0aW9uKGEsYixkKXtkfHwoYT1JKGEpKTtyZXR1cm4gbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoYSxifHwiZG93bmxvYWQiKX06KGwuYWJvcnQ9ZnVuY3Rpb24oKXt0aGlzLnJlYWR5U3RhdGU9dGhpcy5ET05FO0ModGhpcywiYWJvcnQiKX0sbC5yZWFkeVN0YXRlPWwuSU5JVD0wLGwuV1JJVElORz0xLGwuRE9ORT0yLGwuZXJyb3I9bC5vbndyaXRlc3RhcnQ9bC5vbnByb2dyZXNzPWwub253cml0ZT1sLm9uYWJvcnQ9bC5vbmVycm9yPWwub253cml0ZWVuZD1udWxsLHA9ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBuZXcgSihhLGIsZCl9KX1zLmZpbGVTYXZlPQpwO3ZhciB4PWZ1bmN0aW9uKGEsYil7dmFyIGQ9YS5maWxlbmFtZT09PSIqIiYmYS50aXRsZSE9PSIqIiYmYS50aXRsZSE9PW0/YS50aXRsZTphLmZpbGVuYW1lO3R5cGVvZiBkPT09ImZ1bmN0aW9uIiYmKGQ9ZCgpKTtkLmluZGV4T2YoIioiKSE9PS0xJiYoZD1nLnRyaW0oZC5yZXBsYWNlKCIqIixnKCJ0aXRsZSIpLnRleHQoKSkpKTtkPWQucmVwbGFjZSgvW15hLXpBLVowLTlfXHUwMEExLVx1RkZGRlwuLFwtXyAhXChcKV0vZywiIik7cmV0dXJuIGI9PT1tfHxiPT09dHJ1ZT9kK2EuZXh0ZW5zaW9uOmR9LFE9ZnVuY3Rpb24oYSl7dmFyIGI9IlNoZWV0MSI7YS5zaGVldE5hbWUmJihiPWEuc2hlZXROYW1lLnJlcGxhY2UoL1tcW1xdXCpcL1xcXD9cOl0vZywiIikpO3JldHVybiBifSxSPWZ1bmN0aW9uKGEpe2E9YS50aXRsZTt0eXBlb2YgYT09PSJmdW5jdGlvbiImJihhPWEoKSk7cmV0dXJuIGEuaW5kZXhPZigiKiIpIT09LTE/YS5yZXBsYWNlKCIqIixnKCJ0aXRsZSIpLnRleHQoKXx8CiJFeHBvcnRlZCBkYXRhIik6YX0sSz1mdW5jdGlvbihhKXtyZXR1cm4gYS5uZXdsaW5lP2EubmV3bGluZTpuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLyk/IlxyXG4iOiJcbiJ9LEw9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGQ9SyhiKSxjPWEuYnV0dG9ucy5leHBvcnREYXRhKGIuZXhwb3J0T3B0aW9ucyksZT1iLmZpZWxkQm91bmRhcnksZj1iLmZpZWxkU2VwYXJhdG9yLGc9UmVnRXhwKGUsImciKSxoPWIuZXNjYXBlQ2hhciE9PW0/Yi5lc2NhcGVDaGFyOiJcXCIsaz1mdW5jdGlvbihhKXtmb3IodmFyIGI9IiIsYz0wLGQ9YS5sZW5ndGg7YzxkO2MrKyl7Yz4wJiYoYj1iK2YpO2I9YisoZT9lKygiIithW2NdKS5yZXBsYWNlKGcsaCtlKStlOmFbY10pfXJldHVybiBifSxqPWIuaGVhZGVyP2soYy5oZWFkZXIpK2Q6IiIsaT1iLmZvb3RlciYmYy5mb290ZXI/ZCtrKGMuZm9vdGVyKToiIix1PVtdLEQ9MCxsPWMuYm9keS5sZW5ndGg7RDxsO0QrKyl1LnB1c2goayhjLmJvZHlbRF0pKTsKcmV0dXJue3N0cjpqK3Uuam9pbihkKStpLHJvd3M6dS5sZW5ndGh9fSxNPWZ1bmN0aW9uKCl7cmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiU2FmYXJpIikhPT0tMSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJDaHJvbWUiKT09PS0xJiZuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk9wZXJhIik9PT0tMX07dHJ5e3ZhciB5PW5ldyBYTUxTZXJpYWxpemVyLHZ9Y2F0Y2goUyl7fXZhciBGPXsiX3JlbHMvLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIgVGFyZ2V0PSJ4bC93b3JrYm9vay54bWwiLz48L1JlbGF0aW9uc2hpcHM+JywKInhsL19yZWxzL3dvcmtib29rLnhtbC5yZWxzIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0IiBUYXJnZXQ9IndvcmtzaGVldHMvc2hlZXQxLnhtbCIvPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDIiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzIiBUYXJnZXQ9InN0eWxlcy54bWwiLz48L1JlbGF0aW9uc2hpcHM+JywiW0NvbnRlbnRfVHlwZXNdLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48VHlwZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvY29udGVudC10eXBlcyI+PERlZmF1bHQgRXh0ZW5zaW9uPSJ4bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJyZWxzIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJqcGVnIiBDb250ZW50VHlwZT0iaW1hZ2UvanBlZyIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3JrYm9vay54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3N0eWxlcy54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIiAvPjwvVHlwZXM+JywKInhsL3dvcmtib29rLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48d29ya2Jvb2sgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyI+PGZpbGVWZXJzaW9uIGFwcE5hbWU9InhsIiBsYXN0RWRpdGVkPSI1IiBsb3dlc3RFZGl0ZWQ9IjUiIHJ1cEJ1aWxkPSIyNDgxNiIvPjx3b3JrYm9va1ByIHNob3dJbmtBbm5vdGF0aW9uPSIwIiBhdXRvQ29tcHJlc3NQaWN0dXJlcz0iMCIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PSIwIiB5V2luZG93PSIwIiB3aW5kb3dXaWR0aD0iMjU2MDAiIHdpbmRvd0hlaWdodD0iMTkwMjAiIHRhYlJhdGlvPSI1MDAiLz48L2Jvb2tWaWV3cz48c2hlZXRzPjxzaGVldCBuYW1lPSIiIHNoZWV0SWQ9IjEiIHI6aWQ9InJJZDEiLz48L3NoZWV0cz48L3dvcmtib29rPicsCiJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PHNoZWV0RGF0YS8+PC93b3Jrc2hlZXQ+JywieGwvc3R5bGVzLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxmb250cyBjb3VudD0iNSIgeDE0YWM6a25vd25Gb250cz0iMSI+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGNvbG9yIHJnYj0iRkZGRkZGRkYiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48YiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGkgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjx1IC8+PC9mb250PjwvZm9udHM+PGZpbGxzIGNvdW50PSI2Ij48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiIC8+PC9maWxsPjxmaWxsLz48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9IkZGRDlEOUQ5IiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iRkZEOTk3OTUiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJmZmM2ZWZjZSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9ImZmYzZjZmVmIiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjIiPjxib3JkZXI+PGxlZnQgLz48cmlnaHQgLz48dG9wIC8+PGJvdHRvbSAvPjxkaWFnb25hbCAvPjwvYm9yZGVyPjxib3JkZXIgZGlhZ29uYWxVcD0iZmFsc2UiIGRpYWdvbmFsRG93bj0iZmFsc2UiPjxsZWZ0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L2xlZnQ+PHJpZ2h0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L3JpZ2h0Pjx0b3Agc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvdG9wPjxib3R0b20gc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvYm90dG9tPjxkaWFnb25hbCAvPjwvYm9yZGVyPjwvYm9yZGVycz48Y2VsbFN0eWxlWGZzIGNvdW50PSIxIj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iMiI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9IjEiPjxjZWxsU3R5bGUgbmFtZT0iTm9ybWFsIiB4ZklkPSIwIiBidWlsdGluSWQ9IjAiIC8+PC9jZWxsU3R5bGVzPjxkeGZzIGNvdW50PSIwIiAvPjx0YWJsZVN0eWxlcyBjb3VudD0iMCIgZGVmYXVsdFRhYmxlU3R5bGU9IlRhYmxlU3R5bGVNZWRpdW05IiBkZWZhdWx0UGl2b3RTdHlsZT0iUGl2b3RTdHlsZU1lZGl1bTQiIC8+PC9zdHlsZVNoZWV0Pid9OwpzLmV4dC5idXR0b25zLmNvcHlIdG1sNT17Y2xhc3NOYW1lOiJidXR0b25zLWNvcHkgYnV0dG9ucy1odG1sNSIsdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLmNvcHkiLCJDb3B5Iil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt2YXIgYT1MKGIsYyksZT1hLnN0cixkPWcoIjxkaXYvPiIpLmNzcyh7aGVpZ2h0OjEsd2lkdGg6MSxvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoiZml4ZWQiLHRvcDowLGxlZnQ6MH0pO2MuY3VzdG9taXplJiYoZT1jLmN1c3RvbWl6ZShlLGMpKTtjPWcoIjx0ZXh0YXJlYSByZWFkb25seS8+IikudmFsKGUpLmFwcGVuZFRvKGQpO2lmKGkucXVlcnlDb21tYW5kU3VwcG9ydGVkKCJjb3B5Iikpe2QuYXBwZW5kVG8oYi50YWJsZSgpLmNvbnRhaW5lcigpKTtjWzBdLmZvY3VzKCk7Y1swXS5zZWxlY3QoKTt0cnl7aS5leGVjQ29tbWFuZCgiY29weSIpO2QucmVtb3ZlKCk7Yi5idXR0b25zLmluZm8oYi5pMThuKCJidXR0b25zLmNvcHlUaXRsZSIsCiJDb3B5IHRvIGNsaXBib2FyZCIpLGIuaTE4bigiYnV0dG9ucy5jb3B5U3VjY2VzcyIsezE6IkNvcGllZCBvbmUgcm93IHRvIGNsaXBib2FyZCIsXzoiQ29waWVkICVkIHJvd3MgdG8gY2xpcGJvYXJkIn0sYS5yb3dzKSwyRTMpO3JldHVybn1jYXRjaChmKXt9fWE9ZygiPHNwYW4+IitiLmkxOG4oImJ1dHRvbnMuY29weUtleXMiLCJQcmVzcyA8aT5jdHJsPC9pPiBvciA8aT7ijJg8L2k+ICsgPGk+QzwvaT4gdG8gY29weSB0aGUgdGFibGUgZGF0YTxicj50byB5b3VyIHN5c3RlbSBjbGlwYm9hcmQuPGJyPjxicj5UbyBjYW5jZWwsIGNsaWNrIHRoaXMgbWVzc2FnZSBvciBwcmVzcyBlc2NhcGUuIikrIjwvc3Bhbj4iKS5hcHBlbmQoZCk7Yi5idXR0b25zLmluZm8oYi5pMThuKCJidXR0b25zLmNvcHlUaXRsZSIsIkNvcHkgdG8gY2xpcGJvYXJkIiksYSwwKTtjWzBdLmZvY3VzKCk7Y1swXS5zZWxlY3QoKTt2YXIgaD1nKGEpLmNsb3Nlc3QoIi5kdC1idXR0b24taW5mbyIpLGo9ZnVuY3Rpb24oKXtoLm9mZigiY2xpY2suYnV0dG9ucy1jb3B5Iik7CmcoaSkub2ZmKCIuYnV0dG9ucy1jb3B5Iik7Yi5idXR0b25zLmluZm8oZmFsc2UpfTtoLm9uKCJjbGljay5idXR0b25zLWNvcHkiLGopO2coaSkub24oImtleWRvd24uYnV0dG9ucy1jb3B5IixmdW5jdGlvbihhKXthLmtleUNvZGU9PT0yNyYmaigpfSkub24oImNvcHkuYnV0dG9ucy1jb3B5IGN1dC5idXR0b25zLWNvcHkiLGZ1bmN0aW9uKCl7aigpfSl9LGV4cG9ydE9wdGlvbnM6e30sZmllbGRTZXBhcmF0b3I6Ilx0IixmaWVsZEJvdW5kYXJ5OiIiLGhlYWRlcjohMCxmb290ZXI6ITF9O3MuZXh0LmJ1dHRvbnMuY3N2SHRtbDU9e2NsYXNzTmFtZToiYnV0dG9ucy1jc3YgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGouRmlsZVJlYWRlciE9PW0mJmouQmxvYn0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLmNzdiIsIkNTViIpfSxhY3Rpb246ZnVuY3Rpb24oYSxiLGQsYyl7YT1MKGIsYykuc3RyO2I9Yy5jaGFyc2V0O2MuY3VzdG9taXplJiYKKGE9Yy5jdXN0b21pemUoYSxjKSk7aWYoYiE9PWZhbHNlKXtifHwoYj1pLmNoYXJhY3RlclNldHx8aS5jaGFyc2V0KTtiJiYoYj0iO2NoYXJzZXQ9IitiKX1lbHNlIGI9IiI7cChuZXcgQmxvYihbYV0se3R5cGU6InRleHQvY3N2IitifSkseChjKSl9LGZpbGVuYW1lOiIqIixleHRlbnNpb246Ii5jc3YiLGV4cG9ydE9wdGlvbnM6e30sZmllbGRTZXBhcmF0b3I6IiwiLGZpZWxkQm91bmRhcnk6JyInLGVzY2FwZUNoYXI6JyInLGNoYXJzZXQ6bnVsbCxoZWFkZXI6ITAsZm9vdGVyOiExfTtzLmV4dC5idXR0b25zLmV4Y2VsSHRtbDU9e2NsYXNzTmFtZToiYnV0dG9ucy1leGNlbCBidXR0b25zLWh0bWw1IixhdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gai5GaWxlUmVhZGVyIT09bSYmcSE9PW0mJiFNKCkmJnl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5leGNlbCIsIkV4Y2VsIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt2YXIgZT0wLGE9ZnVuY3Rpb24oYSl7cmV0dXJuIGcucGFyc2VYTUwoRlthXSl9LApmPWEoInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIpLGg9Zi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2hlZXREYXRhIilbMF0sYT17X3JlbHM6eyIucmVscyI6YSgiX3JlbHMvLnJlbHMiKX0seGw6e19yZWxzOnsid29ya2Jvb2sueG1sLnJlbHMiOmEoInhsL19yZWxzL3dvcmtib29rLnhtbC5yZWxzIil9LCJ3b3JrYm9vay54bWwiOmEoInhsL3dvcmtib29rLnhtbCIpLCJzdHlsZXMueG1sIjphKCJ4bC9zdHlsZXMueG1sIiksd29ya3NoZWV0czp7InNoZWV0MS54bWwiOmZ9fSwiW0NvbnRlbnRfVHlwZXNdLnhtbCI6YSgiW0NvbnRlbnRfVHlwZXNdLnhtbCIpfSxiPWIuYnV0dG9ucy5leHBvcnREYXRhKGMuZXhwb3J0T3B0aW9ucyksaixrLGQ9ZnVuY3Rpb24oYSl7aj1lKzE7az1vKGYsInJvdyIse2F0dHI6e3I6an19KTtmb3IodmFyIGI9MCxjPWEubGVuZ3RoO2I8YztiKyspe2Zvcih2YXIgZD1iLGk9IiI7ZD49MDspe2k9U3RyaW5nLmZyb21DaGFyQ29kZShkJTI2KzY1KStpO2Q9TWF0aC5mbG9vcihkLwoyNiktMX1kPWkrIiIrajtpZihhW2JdPT09bnVsbHx8YVtiXT09PW0pYVtiXT0iIjtpZih0eXBlb2YgYVtiXT09PSJudW1iZXIifHxhW2JdLm1hdGNoJiZnLnRyaW0oYVtiXSkubWF0Y2goL14tP1xkKyhcLlxkKyk/JC8pJiYhZy50cmltKGFbYl0pLm1hdGNoKC9eMFxkKy8pKWQ9byhmLCJjIix7YXR0cjp7dDoibiIscjpkfSxjaGlsZHJlbjpbbyhmLCJ2Iix7dGV4dDphW2JdfSldfSk7ZWxzZXtpPSFhW2JdLnJlcGxhY2U/YVtiXTphW2JdLnJlcGxhY2UoLyYoPyFhbXA7KS9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoL1tceDAwLVx4MDlceDBCXHgwQ1x4MEUtXHgxRlx4N0YtXHg5Rl0vZywiIik7ZD1vKGYsImMiLHthdHRyOnt0OiJpbmxpbmVTdHIiLHI6ZH0sY2hpbGRyZW46e3JvdzpvKGYsImlzIix7Y2hpbGRyZW46e3JvdzpvKGYsInQiLHt0ZXh0Oml9KX19KX19KX1rLmFwcGVuZENoaWxkKGQpfWguYXBwZW5kQ2hpbGQoayk7CmUrK307Zygic2hlZXRzIHNoZWV0IixhLnhsWyJ3b3JrYm9vay54bWwiXSkuYXR0cigibmFtZSIsUShjKSk7Yy5jdXN0b21pemVEYXRhJiZjLmN1c3RvbWl6ZURhdGEoYik7aWYoYy5oZWFkZXIpe2QoYi5oZWFkZXIsZSk7Zygicm93IGMiLGYpLmF0dHIoInMiLCIyIil9Zm9yKHZhciBpPTAsbD1iLmJvZHkubGVuZ3RoO2k8bDtpKyspZChiLmJvZHlbaV0sZSk7aWYoYy5mb290ZXImJmIuZm9vdGVyKXtkKGIuZm9vdGVyLGUpO2coInJvdzpsYXN0IGMiLGYpLmF0dHIoInMiLCIyIil9ZD1vKGYsImNvbHMiKTtnKCJ3b3Jrc2hlZXQiLGYpLnByZXBlbmQoZCk7aT0wO2ZvcihsPWIuaGVhZGVyLmxlbmd0aDtpPGw7aSsrKWQuYXBwZW5kQ2hpbGQobyhmLCJjb2wiLHthdHRyOnttaW46aSsxLG1heDppKzEsd2lkdGg6TihiLGkpLGN1c3RvbVdpZHRoOjF9fSkpO2MuY3VzdG9taXplJiZjLmN1c3RvbWl6ZShhKTtiPW5ldyBxO2Q9e3R5cGU6ImJsb2IiLG1pbWVUeXBlOiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCJ9OwpFKGIsYSk7Yi5nZW5lcmF0ZUFzeW5jP2IuZ2VuZXJhdGVBc3luYyhkKS50aGVuKGZ1bmN0aW9uKGEpe3AoYSx4KGMpKX0pOnAoYi5nZW5lcmF0ZShkKSx4KGMpKX0sZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLnhsc3giLGV4cG9ydE9wdGlvbnM6e30saGVhZGVyOiEwLGZvb3RlcjohMX07cy5leHQuYnV0dG9ucy5wZGZIdG1sNT17Y2xhc3NOYW1lOiJidXR0b25zLXBkZiBidXR0b25zLWh0bWw1IixhdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gai5GaWxlUmVhZGVyIT09bSYmcn0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLnBkZiIsIlBERiIpfSxhY3Rpb246ZnVuY3Rpb24oYSxiLGQsYyl7SyhjKTthPWIuYnV0dG9ucy5leHBvcnREYXRhKGMuZXhwb3J0T3B0aW9ucyk7Yj1bXTtjLmhlYWRlciYmYi5wdXNoKGcubWFwKGEuaGVhZGVyLGZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OnR5cGVvZiBhPT09InN0cmluZyI/YTphKyIiLHN0eWxlOiJ0YWJsZUhlYWRlciJ9fSkpOwpmb3IodmFyIGU9MCxkPWEuYm9keS5sZW5ndGg7ZTxkO2UrKyliLnB1c2goZy5tYXAoYS5ib2R5W2VdLGZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OnR5cGVvZiBhPT09InN0cmluZyI/YTphKyIiLHN0eWxlOmUlMj8idGFibGVCb2R5RXZlbiI6InRhYmxlQm9keU9kZCJ9fSkpO2MuZm9vdGVyJiZhLmZvb3RlciYmYi5wdXNoKGcubWFwKGEuZm9vdGVyLGZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OnR5cGVvZiBhPT09InN0cmluZyI/YTphKyIiLHN0eWxlOiJ0YWJsZUZvb3RlciJ9fSkpO2E9e3BhZ2VTaXplOmMucGFnZVNpemUscGFnZU9yaWVudGF0aW9uOmMub3JpZW50YXRpb24sY29udGVudDpbe3RhYmxlOntoZWFkZXJSb3dzOjEsYm9keTpifSxsYXlvdXQ6Im5vQm9yZGVycyJ9XSxzdHlsZXM6e3RhYmxlSGVhZGVyOntib2xkOnRydWUsZm9udFNpemU6MTEsY29sb3I6IndoaXRlIixmaWxsQ29sb3I6IiMyZDQxNTQiLGFsaWdubWVudDoiY2VudGVyIn0sdGFibGVCb2R5RXZlbjp7fSx0YWJsZUJvZHlPZGQ6e2ZpbGxDb2xvcjoiI2YzZjNmMyJ9LAp0YWJsZUZvb3Rlcjp7Ym9sZDp0cnVlLGZvbnRTaXplOjExLGNvbG9yOiJ3aGl0ZSIsZmlsbENvbG9yOiIjMmQ0MTU0In0sdGl0bGU6e2FsaWdubWVudDoiY2VudGVyIixmb250U2l6ZToxNX0sbWVzc2FnZTp7fX0sZGVmYXVsdFN0eWxlOntmb250U2l6ZToxMH19O2MubWVzc2FnZSYmYS5jb250ZW50LnVuc2hpZnQoe3RleHQ6Yy5tZXNzYWdlLHN0eWxlOiJtZXNzYWdlIixtYXJnaW46WzAsMCwwLDEyXX0pO2MudGl0bGUmJmEuY29udGVudC51bnNoaWZ0KHt0ZXh0OlIoYyxmYWxzZSksc3R5bGU6InRpdGxlIixtYXJnaW46WzAsMCwwLDEyXX0pO2MuY3VzdG9taXplJiZjLmN1c3RvbWl6ZShhLGMpO2E9ci5jcmVhdGVQZGYoYSk7Yy5kb3dubG9hZD09PSJvcGVuIiYmIU0oKT9hLm9wZW4oKTphLmdldEJ1ZmZlcihmdW5jdGlvbihhKXthPW5ldyBCbG9iKFthXSx7dHlwZToiYXBwbGljYXRpb24vcGRmIn0pO3AoYSx4KGMpKX0pfSx0aXRsZToiKiIsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLnBkZiIsCmV4cG9ydE9wdGlvbnM6e30sb3JpZW50YXRpb246InBvcnRyYWl0IixwYWdlU2l6ZToiQTQiLGhlYWRlcjohMCxmb290ZXI6ITEsbWVzc2FnZTpudWxsLGN1c3RvbWl6ZTpudWxsLGRvd25sb2FkOiJkb3dubG9hZCJ9O3JldHVybiBzLkJ1dHRvbnN9KTsK"></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
44 <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKGcpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSIsImRhdGF0YWJsZXMubmV0IiwiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyJdLGZ1bmN0aW9uKGQpe3JldHVybiBnKGQsd2luZG93LGRvY3VtZW50KX0pOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oZCxlKXtkfHwoZD13aW5kb3cpO2lmKCFlfHwhZS5mbi5kYXRhVGFibGUpZT1yZXF1aXJlKCJkYXRhdGFibGVzLm5ldCIpKGQsZSkuJDtlLmZuLmRhdGFUYWJsZS5CdXR0b25zfHxyZXF1aXJlKCJkYXRhdGFibGVzLm5ldC1idXR0b25zIikoZCxlKTtyZXR1cm4gZyhlLGQsZC5kb2N1bWVudCl9OmcoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KShmdW5jdGlvbihnLGQsZSxoKXtkPWcuZm4uZGF0YVRhYmxlO2cuZXh0ZW5kKGQuZXh0LmJ1dHRvbnMse2NvbHZpczpmdW5jdGlvbihhLGIpe3JldHVybntleHRlbmQ6ImNvbGxlY3Rpb24iLAp0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY29sdmlzIiwiQ29sdW1uIHZpc2liaWxpdHkiKX0sY2xhc3NOYW1lOiJidXR0b25zLWNvbHZpcyIsYnV0dG9uczpbe2V4dGVuZDoiY29sdW1uc1RvZ2dsZSIsY29sdW1uczpiLmNvbHVtbnN9XX19LGNvbHVtbnNUb2dnbGU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb2x1bW5zKGIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5Ub2dnbGUiLGNvbHVtbnM6YX19KS50b0FycmF5KCl9LGNvbHVtblRvZ2dsZTpmdW5jdGlvbihhLGIpe3JldHVybntleHRlbmQ6ImNvbHVtblZpc2liaWxpdHkiLGNvbHVtbnM6Yi5jb2x1bW5zfX0sY29sdW1uc1Zpc2liaWxpdHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb2x1bW5zKGIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5WaXNpYmlsaXR5Iixjb2x1bW5zOmEsdmlzaWJpbGl0eTpiLnZpc2liaWxpdHl9fSkudG9BcnJheSgpfSwKY29sdW1uVmlzaWJpbGl0eTp7Y29sdW1uczpoLHRleHQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjLl9jb2x1bW5UZXh0KGEsYy5jb2x1bW5zKX0sY2xhc3NOYW1lOiJidXR0b25zLWNvbHVtblZpc2liaWxpdHkiLGFjdGlvbjpmdW5jdGlvbihhLGIsYyxmKXthPWIuY29sdW1ucyhmLmNvbHVtbnMpO2I9YS52aXNpYmxlKCk7YS52aXNpYmxlKGYudmlzaWJpbGl0eSE9PWg/Zi52aXNpYmlsaXR5OiEoYi5sZW5ndGgmJmJbMF0pKX0saW5pdDpmdW5jdGlvbihhLGIsYyl7dmFyIGY9dGhpcyxkPWEuY29sdW1uKGMuY29sdW1ucyk7YS5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQiK2MubmFtZXNwYWNlLGZ1bmN0aW9uKGEsYil7Yi5iRGVzdHJveWluZ3x8Zi5hY3RpdmUoZC52aXNpYmxlKCkpfSkub24oImNvbHVtbi1yZW9yZGVyLmR0IitjLm5hbWVzcGFjZSxmdW5jdGlvbihiLGQsZSl7MT09PWEuY29sdW1ucyhjLmNvbHVtbnMpLmNvdW50KCkmJigibnVtYmVyIj09PXR5cGVvZiBjLmNvbHVtbnMmJgooYy5jb2x1bW5zPWUubWFwcGluZ1tjLmNvbHVtbnNdKSxiPWEuY29sdW1uKGMuY29sdW1ucyksZi50ZXh0KGMuX2NvbHVtblRleHQoYSxjLmNvbHVtbnMpKSxmLmFjdGl2ZShiLnZpc2libGUoKSkpfSk7dGhpcy5hY3RpdmUoZC52aXNpYmxlKCkpfSxkZXN0cm95OmZ1bmN0aW9uKGEsYixjKXthLm9mZigiY29sdW1uLXZpc2liaWxpdHkuZHQiK2MubmFtZXNwYWNlKS5vZmYoImNvbHVtbi1yZW9yZGVyLmR0IitjLm5hbWVzcGFjZSl9LF9jb2x1bW5UZXh0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5jb2x1bW4oYikuaW5kZXgoKTtyZXR1cm4gYS5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1tjXS5zVGl0bGUucmVwbGFjZSgvXG4vZywiICIpLnJlcGxhY2UoLzwuKj8+L2csIiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX19LGNvbHZpc1Jlc3RvcmU6e2NsYXNzTmFtZToiYnV0dG9ucy1jb2x2aXNSZXN0b3JlIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY29sdmlzUmVzdG9yZSIsCiJSZXN0b3JlIHZpc2liaWxpdHkiKX0saW5pdDpmdW5jdGlvbihhLGIsYyl7Yy5fdmlzT3JpZ2luYWw9YS5jb2x1bW5zKCkuaW5kZXhlcygpLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYS5jb2x1bW4oYikudmlzaWJsZSgpfSkudG9BcnJheSgpfSxhY3Rpb246ZnVuY3Rpb24oYSxiLGMsZCl7Yi5jb2x1bW5zKCkuZXZlcnkoZnVuY3Rpb24oYSl7YT1iLmNvbFJlb3JkZXImJmIuY29sUmVvcmRlci50cmFuc3Bvc2U/Yi5jb2xSZW9yZGVyLnRyYW5zcG9zZShhLCJ0b09yaWdpbmFsIik6YTt0aGlzLnZpc2libGUoZC5fdmlzT3JpZ2luYWxbYV0pfSl9fSxjb2x2aXNHcm91cDp7Y2xhc3NOYW1lOiJidXR0b25zLWNvbHZpc0dyb3VwIixhY3Rpb246ZnVuY3Rpb24oYSxiLGMsZCl7Yi5jb2x1bW5zKGQuc2hvdykudmlzaWJsZSghMCwhMSk7Yi5jb2x1bW5zKGQuaGlkZSkudmlzaWJsZSghMSwhMSk7Yi5jb2x1bW5zLmFkanVzdCgpfSxzaG93OltdLGhpZGU6W119fSk7cmV0dXJuIGQuQnV0dG9uc30pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
45 <script src="data:application/x-javascript;base64,KGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSIsImRhdGF0YWJsZXMubmV0IiwiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyJdLGZ1bmN0aW9uKGQpe3JldHVybiBlKGQsd2luZG93LGRvY3VtZW50KX0pOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZnVuY3Rpb24oZCxhKXtkfHwoZD13aW5kb3cpO2lmKCFhfHwhYS5mbi5kYXRhVGFibGUpYT1yZXF1aXJlKCJkYXRhdGFibGVzLm5ldCIpKGQsYSkuJDthLmZuLmRhdGFUYWJsZS5CdXR0b25zfHxyZXF1aXJlKCJkYXRhdGFibGVzLm5ldC1idXR0b25zIikoZCxhKTtyZXR1cm4gZShhLGQsZC5kb2N1bWVudCl9OmUoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KShmdW5jdGlvbihlLGQsYSl7dmFyIGk9ZS5mbi5kYXRhVGFibGUsZz1hLmNyZWF0ZUVsZW1lbnQoImEiKTtpLmV4dC5idXR0b25zLnByaW50PXtjbGFzc05hbWU6ImJ1dHRvbnMtcHJpbnQiLAp0ZXh0OmZ1bmN0aW9uKGMpe3JldHVybiBjLmkxOG4oImJ1dHRvbnMucHJpbnQiLCJQcmludCIpfSxhY3Rpb246ZnVuY3Rpb24oYyxiLGEsZil7Yz1iLmJ1dHRvbnMuZXhwb3J0RGF0YShmLmV4cG9ydE9wdGlvbnMpO2E9ZnVuY3Rpb24oYyxhKXtmb3IodmFyIGI9Ijx0cj4iLGQ9MCxlPWMubGVuZ3RoO2Q8ZTtkKyspYis9IjwiK2ErIj4iK2NbZF0rIjwvIithKyI+IjtyZXR1cm4gYisiPC90cj4ifTtiPSc8dGFibGUgY2xhc3M9IicrYi50YWJsZSgpLm5vZGUoKS5jbGFzc05hbWUrJyI+JztmLmhlYWRlciYmKGIrPSI8dGhlYWQ+IithKGMuaGVhZGVyLCJ0aCIpKyI8L3RoZWFkPiIpO2Zvcih2YXIgYj1iKyI8dGJvZHk+IixqPTAsaT1jLmJvZHkubGVuZ3RoO2o8aTtqKyspYis9YShjLmJvZHlbal0sInRkIik7Yis9IjwvdGJvZHk+IjtmLmZvb3RlciYmYy5mb290ZXImJihiKz0iPHRmb290PiIrYShjLmZvb3RlciwidGgiKSsiPC90Zm9vdD4iKTt2YXIgaD1kLm9wZW4oIiIsIiIpLGM9Zi50aXRsZTsKImZ1bmN0aW9uIj09PXR5cGVvZiBjJiYoYz1jKCkpOy0xIT09Yy5pbmRleE9mKCIqIikmJihjPWMucmVwbGFjZSgiKiIsZSgidGl0bGUiKS50ZXh0KCkpKTtoLmRvY3VtZW50LmNsb3NlKCk7dmFyIGs9Ijx0aXRsZT4iK2MrIjwvdGl0bGU+IjtlKCJzdHlsZSwgbGluayIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1rLGI9ZSh0aGlzKS5jbG9uZSgpWzBdLGE7ImxpbmsiPT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYoZy5ocmVmPWIuaHJlZixhPWcuaG9zdCwtMT09PWEuaW5kZXhPZigiLyIpJiYwIT09Zy5wYXRobmFtZS5pbmRleE9mKCIvIikmJihhKz0iLyIpLGIuaHJlZj1nLnByb3RvY29sKyIvLyIrYStnLnBhdGhuYW1lK2cuc2VhcmNoKTtrPWMrYi5vdXRlckhUTUx9KTtoLmRvY3VtZW50LmhlYWQuaW5uZXJIVE1MPWs7aC5kb2N1bWVudC5ib2R5LmlubmVySFRNTD0iPGgxPiIrYysiPC9oMT48ZGl2PiIrZi5tZXNzYWdlKyI8L2Rpdj4iK2I7Zi5jdXN0b21pemUmJmYuY3VzdG9taXplKGgpOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zi5hdXRvUHJpbnQmJihoLnByaW50KCksaC5jbG9zZSgpKX0sMjUwKX0sdGl0bGU6IioiLG1lc3NhZ2U6IiIsZXhwb3J0T3B0aW9uczp7fSxoZWFkZXI6ITAsZm9vdGVyOiExLGF1dG9QcmludDohMCxjdXN0b21pemU6bnVsbH07cmV0dXJuIGkuQnV0dG9uc30pOwo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
46 <link href="data:text/css;charset=utf-8,%0A%2EnoUi%2Dtarget%2C%2EnoUi%2Dtarget%20%2A%7B%2Dwebkit%2Dtouch%2Dcallout%3Anone%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dms%2Dtouch%2Daction%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2EnoUi%2Dtarget%7Bposition%3Arelative%3Bdirection%3Altr%7D%2EnoUi%2Dbase%7Bwidth%3A100%25%3Bheight%3A100%25%3Bposition%3Arelative%7D%2EnoUi%2Dorigin%7Bposition%3Aabsolute%3Bright%3A0%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%7D%2EnoUi%2Dhandle%7Bposition%3Arelative%3Bz%2Dindex%3A1%7D%2EnoUi%2Dstacking%20%2EnoUi%2Dhandle%7Bz%2Dindex%3A10%7D%2EnoUi%2Dstate%2Dtap%20%2EnoUi%2Dorigin%7B%2Dwebkit%2Dtransition%3Aleft%20%2E3s%2Ctop%20%2E3s%3Btransition%3Aleft%20%2E3s%2Ctop%20%2E3s%7D%2EnoUi%2Dstate%2Ddrag%20%2A%7Bcursor%3Ainherit%21important%7D%2EnoUi%2Dbase%7B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C0%2C0%29%3Btransform%3Atranslate3d%280%2C0%2C0%29%7D%2EnoUi%2Dhorizontal%7Bheight%3A10px%7D%2EnoUi%2Dhorizontal%20%2EnoUi%2Dhandle%7Bwidth%3A24px%3Bheight%3A18px%3Bleft%3A%2D12px%3Btop%3A%2D6px%7D%2EnoUi%2Dvertical%7Bwidth%3A18px%7D%2EnoUi%2Dvertical%20%2EnoUi%2Dhandle%7Bwidth%3A28px%3Bheight%3A34px%3Bleft%3A%2D6px%3Btop%3A%2D17px%7D%2EnoUi%2Dbackground%7Bbackground%3A%23FAFAFA%3Bbox%2Dshadow%3Ainset%200%201px%201px%20%23f0f0f0%7D%2EnoUi%2Dconnect%7Bbackground%3A%233FB8AF%3Bbox%2Dshadow%3Ainset%200%200%203px%20rgba%2851%2C51%2C51%2C%2E45%29%3B%2Dwebkit%2Dtransition%3Abackground%20450ms%3Btransition%3Abackground%20450ms%7D%2EnoUi%2Dorigin%7Bborder%2Dradius%3A2px%7D%2EnoUi%2Dtarget%7Bborder%2Dradius%3A4px%3Bborder%3A1px%20solid%20%23D3D3D3%3Bbox%2Dshadow%3Ainset%200%201px%201px%20%23F0F0F0%2C0%203px%206px%20%2D5px%20%23BBB%7D%2EnoUi%2Dtarget%2EnoUi%2Dconnect%7Bbox%2Dshadow%3Ainset%200%200%203px%20rgba%2851%2C51%2C51%2C%2E45%29%2C0%203px%206px%20%2D5px%20%23BBB%7D%2EnoUi%2Ddragable%7Bcursor%3Aw%2Dresize%7D%2EnoUi%2Dvertical%20%2EnoUi%2Ddragable%7Bcursor%3An%2Dresize%7D%2EnoUi%2Dhandle%7Bborder%3A1px%20solid%20%23D9D9D9%3Bborder%2Dradius%3A3px%3Bbackground%3A%23FFF%3Bcursor%3Adefault%3Bbox%2Dshadow%3Ainset%200%200%201px%20%23FFF%2Cinset%200%201px%207px%20%23EBEBEB%2C0%203px%206px%20%2D3px%20%23BBB%7D%2EnoUi%2Dactive%7Bbox%2Dshadow%3Ainset%200%200%201px%20%23FFF%2Cinset%200%201px%207px%20%23DDD%2C0%203px%206px%20%2D3px%20%23BBB%7D%2EnoUi%2Dhandle%3Aafter%2C%2EnoUi%2Dhandle%3Abefore%7Bcontent%3A%22%22%3Bdisplay%3Ablock%3Bposition%3Aabsolute%3Bheight%3A9px%3Bwidth%3A1px%3Bbackground%3A%23E8E7E6%3Bleft%3A9px%3Btop%3A3%2E5px%7D%2EnoUi%2Dhandle%3Aafter%7Bleft%3A12px%7D%2EnoUi%2Dvertical%20%2EnoUi%2Dhandle%3Aafter%2C%2EnoUi%2Dvertical%20%2EnoUi%2Dhandle%3Abefore%7Bwidth%3A14px%3Bheight%3A1px%3Bleft%3A6px%3Btop%3A14px%7D%2EnoUi%2Dvertical%20%2EnoUi%2Dhandle%3Aafter%7Btop%3A17px%7D%5Bdisabled%5D%20%2EnoUi%2Dconnect%2C%5Bdisabled%5D%2EnoUi%2Dconnect%7Bbackground%3A%23B8B8B8%7D%5Bdisabled%5D%20%2EnoUi%2Dhandle%7Bcursor%3Anot%2Dallowed%7D" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
47 <script src="data:application/x-javascript;base64,LyohIG5vVWlTbGlkZXIgLSA3LjAuMTAgLSAyMDE1LTAzLTE3IDE3OjMwOjIyICovCgohZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYSxiKXtyZXR1cm4gTWF0aC5yb3VuZChhL2IpKmJ9ZnVuY3Rpb24gYyhhKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGEmJiFpc05hTihhKSYmaXNGaW5pdGUoYSl9ZnVuY3Rpb24gZChhKXt2YXIgYj1NYXRoLnBvdygxMCw3KTtyZXR1cm4gTnVtYmVyKChNYXRoLnJvdW5kKGEqYikvYikudG9GaXhlZCg3KSl9ZnVuY3Rpb24gZShhLGIsYyl7YS5hZGRDbGFzcyhiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5yZW1vdmVDbGFzcyhiKX0sYyl9ZnVuY3Rpb24gZihhKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4oYSwxMDApLDApfWZ1bmN0aW9uIGcoYil7cmV0dXJuIGEuaXNBcnJheShiKT9iOltiXX1mdW5jdGlvbiBoKGEpe3ZhciBiPWEuc3BsaXQoIi4iKTtyZXR1cm4gYi5sZW5ndGg+MT9iWzFdLmxlbmd0aDowfWZ1bmN0aW9uIGkoYSxiKXtyZXR1cm4gMTAwLyhiLWEpfWZ1bmN0aW9uIGooYSxiKXtyZXR1cm4gMTAwKmIvKGFbMV0tYVswXSl9ZnVuY3Rpb24gayhhLGIpe3JldHVybiBqKGEsYVswXTwwP2IrTWF0aC5hYnMoYVswXSk6Yi1hWzBdKX1mdW5jdGlvbiBsKGEsYil7cmV0dXJuIGIqKGFbMV0tYVswXSkvMTAwK2FbMF19ZnVuY3Rpb24gbShhLGIpe2Zvcih2YXIgYz0xO2E+PWJbY107KWMrPTE7cmV0dXJuIGN9ZnVuY3Rpb24gbihhLGIsYyl7aWYoYz49YS5zbGljZSgtMSlbMF0pcmV0dXJuIDEwMDt2YXIgZCxlLGYsZyxoPW0oYyxhKTtyZXR1cm4gZD1hW2gtMV0sZT1hW2hdLGY9YltoLTFdLGc9YltoXSxmK2soW2QsZV0sYykvaShmLGcpfWZ1bmN0aW9uIG8oYSxiLGMpe2lmKGM+PTEwMClyZXR1cm4gYS5zbGljZSgtMSlbMF07dmFyIGQsZSxmLGcsaD1tKGMsYik7cmV0dXJuIGQ9YVtoLTFdLGU9YVtoXSxmPWJbaC0xXSxnPWJbaF0sbChbZCxlXSwoYy1mKSppKGYsZykpfWZ1bmN0aW9uIHAoYSxjLGQsZSl7aWYoMTAwPT09ZSlyZXR1cm4gZTt2YXIgZixnLGg9bShlLGEpO3JldHVybiBkPyhmPWFbaC0xXSxnPWFbaF0sZS1mPihnLWYpLzI/ZzpmKTpjW2gtMV0/YVtoLTFdK2IoZS1hW2gtMV0sY1toLTFdKTplfWZ1bmN0aW9uIHEoYSxiLGQpe3ZhciBlO2lmKCJudW1iZXIiPT10eXBlb2YgYiYmKGI9W2JdKSwiW29iamVjdCBBcnJheV0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGIpKXRocm93IG5ldyBFcnJvcigibm9VaVNsaWRlcjogJ3JhbmdlJyBjb250YWlucyBpbnZhbGlkIHZhbHVlLiIpO2lmKGU9Im1pbiI9PT1hPzA6Im1heCI9PT1hPzEwMDpwYXJzZUZsb2F0KGEpLCFjKGUpfHwhYyhiWzBdKSl0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICdyYW5nZScgdmFsdWUgaXNuJ3QgbnVtZXJpYy4iKTtkLnhQY3QucHVzaChlKSxkLnhWYWwucHVzaChiWzBdKSxlP2QueFN0ZXBzLnB1c2goaXNOYU4oYlsxXSk/ITE6YlsxXSk6aXNOYU4oYlsxXSl8fChkLnhTdGVwc1swXT1iWzFdKX1mdW5jdGlvbiByKGEsYixjKXtyZXR1cm4gYj92b2lkKGMueFN0ZXBzW2FdPWooW2MueFZhbFthXSxjLnhWYWxbYSsxXV0sYikvaShjLnhQY3RbYV0sYy54UGN0W2ErMV0pKTohMH1mdW5jdGlvbiBzKGEsYixjLGQpe3RoaXMueFBjdD1bXSx0aGlzLnhWYWw9W10sdGhpcy54U3RlcHM9W2R8fCExXSx0aGlzLnhOdW1TdGVwcz1bITFdLHRoaXMuc25hcD1iLHRoaXMuZGlyZWN0aW9uPWM7dmFyIGUsZj1bXTtmb3IoZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJmYucHVzaChbYVtlXSxlXSk7Zm9yKGYuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KSxlPTA7ZTxmLmxlbmd0aDtlKyspcShmW2VdWzFdLGZbZV1bMF0sdGhpcyk7Zm9yKHRoaXMueE51bVN0ZXBzPXRoaXMueFN0ZXBzLnNsaWNlKDApLGU9MDtlPHRoaXMueE51bVN0ZXBzLmxlbmd0aDtlKyspcihlLHRoaXMueE51bVN0ZXBzW2VdLHRoaXMpfWZ1bmN0aW9uIHQoYSxiKXtpZighYyhiKSl0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICdzdGVwJyBpcyBub3QgbnVtZXJpYy4iKTthLnNpbmdsZVN0ZXA9Yn1mdW5jdGlvbiB1KGIsYyl7aWYoIm9iamVjdCIhPXR5cGVvZiBjfHxhLmlzQXJyYXkoYykpdGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAncmFuZ2UnIGlzIG5vdCBhbiBvYmplY3QuIik7aWYodm9pZCAwPT09Yy5taW58fHZvaWQgMD09PWMubWF4KXRocm93IG5ldyBFcnJvcigibm9VaVNsaWRlcjogTWlzc2luZyAnbWluJyBvciAnbWF4JyBpbiAncmFuZ2UnLiIpO2Iuc3BlY3RydW09bmV3IHMoYyxiLnNuYXAsYi5kaXIsYi5zaW5nbGVTdGVwKX1mdW5jdGlvbiB2KGIsYyl7aWYoYz1nKGMpLCFhLmlzQXJyYXkoYyl8fCFjLmxlbmd0aHx8Yy5sZW5ndGg+Mil0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICdzdGFydCcgb3B0aW9uIGlzIGluY29ycmVjdC4iKTtiLmhhbmRsZXM9Yy5sZW5ndGgsYi5zdGFydD1jfWZ1bmN0aW9uIHcoYSxiKXtpZihhLnNuYXA9YiwiYm9vbGVhbiIhPXR5cGVvZiBiKXRocm93IG5ldyBFcnJvcigibm9VaVNsaWRlcjogJ3NuYXAnIG9wdGlvbiBtdXN0IGJlIGEgYm9vbGVhbi4iKX1mdW5jdGlvbiB4KGEsYil7aWYoYS5hbmltYXRlPWIsImJvb2xlYW4iIT10eXBlb2YgYil0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICdhbmltYXRlJyBvcHRpb24gbXVzdCBiZSBhIGJvb2xlYW4uIil9ZnVuY3Rpb24geShhLGIpe2lmKCJsb3dlciI9PT1iJiYxPT09YS5oYW5kbGVzKWEuY29ubmVjdD0xO2Vsc2UgaWYoInVwcGVyIj09PWImJjE9PT1hLmhhbmRsZXMpYS5jb25uZWN0PTI7ZWxzZSBpZihiPT09ITAmJjI9PT1hLmhhbmRsZXMpYS5jb25uZWN0PTM7ZWxzZXtpZihiIT09ITEpdGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAnY29ubmVjdCcgb3B0aW9uIGRvZXNuJ3QgbWF0Y2ggaGFuZGxlIGNvdW50LiIpO2EuY29ubmVjdD0wfX1mdW5jdGlvbiB6KGEsYil7c3dpdGNoKGIpe2Nhc2UiaG9yaXpvbnRhbCI6YS5vcnQ9MDticmVhaztjYXNlInZlcnRpY2FsIjphLm9ydD0xO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAnb3JpZW50YXRpb24nIG9wdGlvbiBpcyBpbnZhbGlkLiIpfX1mdW5jdGlvbiBBKGEsYil7aWYoIWMoYikpdGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAnbWFyZ2luJyBvcHRpb24gbXVzdCBiZSBudW1lcmljLiIpO2lmKGEubWFyZ2luPWEuc3BlY3RydW0uZ2V0TWFyZ2luKGIpLCFhLm1hcmdpbil0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICdtYXJnaW4nIG9wdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBvbiBsaW5lYXIgc2xpZGVycy4iKX1mdW5jdGlvbiBCKGEsYil7aWYoIWMoYikpdGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAnbGltaXQnIG9wdGlvbiBtdXN0IGJlIG51bWVyaWMuIik7aWYoYS5saW1pdD1hLnNwZWN0cnVtLmdldE1hcmdpbihiKSwhYS5saW1pdCl0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICdsaW1pdCcgb3B0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIG9uIGxpbmVhciBzbGlkZXJzLiIpfWZ1bmN0aW9uIEMoYSxiKXtzd2l0Y2goYil7Y2FzZSJsdHIiOmEuZGlyPTA7YnJlYWs7Y2FzZSJydGwiOmEuZGlyPTEsYS5jb25uZWN0PVswLDIsMSwzXVthLmNvbm5lY3RdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAnZGlyZWN0aW9uJyBvcHRpb24gd2FzIG5vdCByZWNvZ25pemVkLiIpfX1mdW5jdGlvbiBEKGEsYil7aWYoInN0cmluZyIhPXR5cGVvZiBiKXRocm93IG5ldyBFcnJvcigibm9VaVNsaWRlcjogJ2JlaGF2aW91cicgbXVzdCBiZSBhIHN0cmluZyBjb250YWluaW5nIG9wdGlvbnMuIik7dmFyIGM9Yi5pbmRleE9mKCJ0YXAiKT49MCxkPWIuaW5kZXhPZigiZHJhZyIpPj0wLGU9Yi5pbmRleE9mKCJmaXhlZCIpPj0wLGY9Yi5pbmRleE9mKCJzbmFwIik+PTA7YS5ldmVudHM9e3RhcDpjfHxmLGRyYWc6ZCxmaXhlZDplLHNuYXA6Zn19ZnVuY3Rpb24gRShhLGIpe2lmKGEuZm9ybWF0PWIsImZ1bmN0aW9uIj09dHlwZW9mIGIudG8mJiJmdW5jdGlvbiI9PXR5cGVvZiBiLmZyb20pcmV0dXJuITA7dGhyb3cgbmV3IEVycm9yKCJub1VpU2xpZGVyOiAnZm9ybWF0JyByZXF1aXJlcyAndG8nIGFuZCAnZnJvbScgbWV0aG9kcy4iKX1mdW5jdGlvbiBGKGIpe3ZhciBjLGQ9e21hcmdpbjowLGxpbWl0OjAsYW5pbWF0ZTohMCxmb3JtYXQ6Vn07cmV0dXJuIGM9e3N0ZXA6e3I6ITEsdDp0fSxzdGFydDp7cjohMCx0OnZ9LGNvbm5lY3Q6e3I6ITAsdDp5fSxkaXJlY3Rpb246e3I6ITAsdDpDfSxzbmFwOntyOiExLHQ6d30sYW5pbWF0ZTp7cjohMSx0Onh9LHJhbmdlOntyOiEwLHQ6dX0sb3JpZW50YXRpb246e3I6ITEsdDp6fSxtYXJnaW46e3I6ITEsdDpBfSxsaW1pdDp7cjohMSx0OkJ9LGJlaGF2aW91cjp7cjohMCx0OkR9LGZvcm1hdDp7cjohMSx0OkV9fSxiPWEuZXh0ZW5kKHtjb25uZWN0OiExLGRpcmVjdGlvbjoibHRyIixiZWhhdmlvdXI6InRhcCIsb3JpZW50YXRpb246Imhvcml6b250YWwifSxiKSxhLmVhY2goYyxmdW5jdGlvbihhLGMpe2lmKHZvaWQgMD09PWJbYV0pe2lmKGMucil0aHJvdyBuZXcgRXJyb3IoIm5vVWlTbGlkZXI6ICciK2ErIicgaXMgcmVxdWlyZWQuIik7cmV0dXJuITB9Yy50KGQsYlthXSl9KSxkLnN0eWxlPWQub3J0PyJ0b3AiOiJsZWZ0IixkfWZ1bmN0aW9uIEcoYSxiLGMpe3ZhciBkPWErYlswXSxlPWErYlsxXTtyZXR1cm4gYz8oMD5kJiYoZSs9TWF0aC5hYnMoZCkpLGU+MTAwJiYoZC09ZS0xMDApLFtmKGQpLGYoZSldKTpbZCxlXX1mdW5jdGlvbiBIKGEpe2EucHJldmVudERlZmF1bHQoKTt2YXIgYixjLGQ9MD09PWEudHlwZS5pbmRleE9mKCJ0b3VjaCIpLGU9MD09PWEudHlwZS5pbmRleE9mKCJtb3VzZSIpLGY9MD09PWEudHlwZS5pbmRleE9mKCJwb2ludGVyIiksZz1hO3JldHVybiAwPT09YS50eXBlLmluZGV4T2YoIk1TUG9pbnRlciIpJiYoZj0hMCksYS5vcmlnaW5hbEV2ZW50JiYoYT1hLm9yaWdpbmFsRXZlbnQpLGQmJihiPWEuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgsYz1hLmNoYW5nZWRUb3VjaGVzWzBdLnBhZ2VZKSwoZXx8ZikmJihmfHx2b2lkIDAhPT13aW5kb3cucGFnZVhPZmZzZXR8fCh3aW5kb3cucGFnZVhPZmZzZXQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQsd2luZG93LnBhZ2VZT2Zmc2V0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3ApLGI9YS5jbGllbnRYK3dpbmRvdy5wYWdlWE9mZnNldCxjPWEuY2xpZW50WSt3aW5kb3cucGFnZVlPZmZzZXQpLGcucG9pbnRzPVtiLGNdLGcuY3Vyc29yPWUsZ31mdW5jdGlvbiBJKGIsYyl7dmFyIGQ9YSgiPGRpdj48ZGl2Lz48L2Rpdj4iKS5hZGRDbGFzcyhVWzJdKSxlPVsiLWxvd2VyIiwiLXVwcGVyIl07cmV0dXJuIGImJmUucmV2ZXJzZSgpLGQuY2hpbGRyZW4oKS5hZGRDbGFzcyhVWzNdKyIgIitVWzNdK2VbY10pLGR9ZnVuY3Rpb24gSihhLGIsYyl7c3dpdGNoKGEpe2Nhc2UgMTpiLmFkZENsYXNzKFVbN10pLGNbMF0uYWRkQ2xhc3MoVVs2XSk7YnJlYWs7Y2FzZSAzOmNbMV0uYWRkQ2xhc3MoVVs2XSk7Y2FzZSAyOmNbMF0uYWRkQ2xhc3MoVVs3XSk7Y2FzZSAwOmIuYWRkQ2xhc3MoVVs2XSl9fWZ1bmN0aW9uIEsoYSxiLGMpe3ZhciBkLGU9W107Zm9yKGQ9MDthPmQ7ZCs9MSllLnB1c2goSShiLGQpLmFwcGVuZFRvKGMpKTtyZXR1cm4gZX1mdW5jdGlvbiBMKGIsYyxkKXtyZXR1cm4gZC5hZGRDbGFzcyhbVVswXSxVWzgrYl0sVVs0K2NdXS5qb2luKCIgIikpLGEoIjxkaXYvPiIpLmFwcGVuZFRvKGQpLmFkZENsYXNzKFVbMV0pfWZ1bmN0aW9uIE0oYixjLGQpe2Z1bmN0aW9uIGkoKXtyZXR1cm4gQ1tbIndpZHRoIiwiaGVpZ2h0Il1bYy5vcnRdXSgpfWZ1bmN0aW9uIGooYSl7dmFyIGIsYz1bRS52YWwoKV07Zm9yKGI9MDtiPGEubGVuZ3RoO2IrPTEpRS50cmlnZ2VyKGFbYl0sYyl9ZnVuY3Rpb24gayhhKXtyZXR1cm4gMT09PWEubGVuZ3RoP2FbMF06Yy5kaXI/YS5yZXZlcnNlKCk6YX1mdW5jdGlvbiBsKGEpe3JldHVybiBmdW5jdGlvbihiLGMpe0UudmFsKFthP251bGw6YyxhP2M6bnVsbF0sITApfX1mdW5jdGlvbiBtKGIpe3ZhciBjPWEuaW5BcnJheShiLE4pO0VbMF0ubGlua0FQSSYmRVswXS5saW5rQVBJW2JdJiZFWzBdLmxpbmtBUElbYl0uY2hhbmdlKE1bY10sRFtjXS5jaGlsZHJlbigpLEUpfWZ1bmN0aW9uIG4oYixkKXt2YXIgZT1hLmluQXJyYXkoYixOKTtyZXR1cm4gZCYmZC5hcHBlbmRUbyhEW2VdLmNoaWxkcmVuKCkpLGMuZGlyJiZjLmhhbmRsZXM+MSYmKGU9MT09PWU/MDoxKSxsKGUpfWZ1bmN0aW9uIG8oKXt2YXIgYSxiO2ZvcihhPTA7YTxOLmxlbmd0aDthKz0xKXRoaXMubGlua0FQSSYmdGhpcy5saW5rQVBJW2I9TlthXV0mJnRoaXMubGlua0FQSVtiXS5yZWNvbmZpcm0oYil9ZnVuY3Rpb24gcChhLGIsZCxlKXtyZXR1cm4gYT1hLnJlcGxhY2UoL1xzL2csUysiICIpK1MsYi5vbihhLGZ1bmN0aW9uKGEpe3JldHVybiBFLmF0dHIoImRpc2FibGVkIik/ITE6RS5oYXNDbGFzcyhVWzE0XSk/ITE6KGE9SChhKSxhLmNhbGNQb2ludD1hLnBvaW50c1tjLm9ydF0sdm9pZCBkKGEsZSkpfSl9ZnVuY3Rpb24gcShhLGIpe3ZhciBjLGQ9Yi5oYW5kbGVzfHxELGU9ITEsZj0xMDAqKGEuY2FsY1BvaW50LWIuc3RhcnQpL2koKSxnPWRbMF1bMF0hPT1EWzBdWzBdPzE6MDtjPUcoZixiLnBvc2l0aW9ucyxkLmxlbmd0aD4xKSxlPXYoZFswXSxjW2ddLDE9PT1kLmxlbmd0aCksZC5sZW5ndGg+MSYmKGU9dihkWzFdLGNbZz8wOjFdLCExKXx8ZSksZSYmaihbInNsaWRlIl0pfWZ1bmN0aW9uIHIoYil7YSgiLiIrVVsxNV0pLnJlbW92ZUNsYXNzKFVbMTVdKSxiLmN1cnNvciYmYSgiYm9keSIpLmNzcygiY3Vyc29yIiwiIikub2ZmKFMpLFEub2ZmKFMpLEUucmVtb3ZlQ2xhc3MoVVsxMl0pLGooWyJzZXQiLCJjaGFuZ2UiXSl9ZnVuY3Rpb24gcyhiLGMpezE9PT1jLmhhbmRsZXMubGVuZ3RoJiZjLmhhbmRsZXNbMF0uY2hpbGRyZW4oKS5hZGRDbGFzcyhVWzE1XSksYi5zdG9wUHJvcGFnYXRpb24oKSxwKFQubW92ZSxRLHEse3N0YXJ0OmIuY2FsY1BvaW50LGhhbmRsZXM6Yy5oYW5kbGVzLHBvc2l0aW9uczpbRlswXSxGW0QubGVuZ3RoLTFdXX0pLHAoVC5lbmQsUSxyLG51bGwpLGIuY3Vyc29yJiYoYSgiYm9keSIpLmNzcygiY3Vyc29yIixhKGIudGFyZ2V0KS5jc3MoImN1cnNvciIpKSxELmxlbmd0aD4xJiZFLmFkZENsYXNzKFVbMTJdKSxhKCJib2R5Iikub24oInNlbGVjdHN0YXJ0IitTLCExKSl9ZnVuY3Rpb24gdChiKXt2YXIgZCxmPWIuY2FsY1BvaW50LGc9MDtiLnN0b3BQcm9wYWdhdGlvbigpLGEuZWFjaChELGZ1bmN0aW9uKCl7Zys9dGhpcy5vZmZzZXQoKVtjLnN0eWxlXX0pLGc9Zy8yPmZ8fDE9PT1ELmxlbmd0aD8wOjEsZi09Qy5vZmZzZXQoKVtjLnN0eWxlXSxkPTEwMCpmL2koKSxjLmV2ZW50cy5zbmFwfHxlKEUsVVsxNF0sMzAwKSx2KERbZ10sZCksaihbInNsaWRlIiwic2V0IiwiY2hhbmdlIl0pLGMuZXZlbnRzLnNuYXAmJnMoYix7aGFuZGxlczpbRFtnXV19KX1mdW5jdGlvbiB1KGEpe3ZhciBiLGM7aWYoIWEuZml4ZWQpZm9yKGI9MDtiPEQubGVuZ3RoO2IrPTEpcChULnN0YXJ0LERbYl0uY2hpbGRyZW4oKSxzLHtoYW5kbGVzOltEW2JdXX0pO2EudGFwJiZwKFQuc3RhcnQsQyx0LHtoYW5kbGVzOkR9KSxhLmRyYWcmJihjPUMuZmluZCgiLiIrVVs3XSkuYWRkQ2xhc3MoVVsxMF0pLGEuZml4ZWQmJihjPWMuYWRkKEMuY2hpbGRyZW4oKS5ub3QoYykuY2hpbGRyZW4oKSkpLHAoVC5zdGFydCxjLHMse2hhbmRsZXM6RH0pKX1mdW5jdGlvbiB2KGEsYixkKXt2YXIgZT1hWzBdIT09RFswXVswXT8xOjAsZz1GWzBdK2MubWFyZ2luLGg9RlsxXS1jLm1hcmdpbixpPUZbMF0rYy5saW1pdCxqPUZbMV0tYy5saW1pdDtyZXR1cm4gRC5sZW5ndGg+MSYmKGI9ZT9NYXRoLm1heChiLGcpOk1hdGgubWluKGIsaCkpLGQhPT0hMSYmYy5saW1pdCYmRC5sZW5ndGg+MSYmKGI9ZT9NYXRoLm1pbihiLGkpOk1hdGgubWF4KGIsaikpLGI9SS5nZXRTdGVwKGIpLGI9ZihwYXJzZUZsb2F0KGIudG9GaXhlZCg3KSkpLGI9PT1GW2VdPyExOihhLmNzcyhjLnN0eWxlLGIrIiUiKSxhLmlzKCI6Zmlyc3QtY2hpbGQiKSYmYS50b2dnbGVDbGFzcyhVWzE3XSxiPjUwKSxGW2VdPWIsTVtlXT1JLmZyb21TdGVwcGluZyhiKSxtKE5bZV0pLCEwKX1mdW5jdGlvbiB3KGEsYil7dmFyIGQsZSxmO2ZvcihjLmxpbWl0JiYoYSs9MSksZD0wO2E+ZDtkKz0xKWU9ZCUyLGY9YltlXSxudWxsIT09ZiYmZiE9PSExJiYoIm51bWJlciI9PXR5cGVvZiBmJiYoZj1TdHJpbmcoZikpLGY9Yy5mb3JtYXQuZnJvbShmKSwoZj09PSExfHxpc05hTihmKXx8dihEW2VdLEkudG9TdGVwcGluZyhmKSxkPT09My1jLmRpcik9PT0hMSkmJm0oTltlXSkpfWZ1bmN0aW9uIHgoYSl7aWYoRVswXS5MaW5rSXNFbWl0dGluZylyZXR1cm4gdGhpczt2YXIgYixkPWcoYSk7cmV0dXJuIGMuZGlyJiZjLmhhbmRsZXM+MSYmZC5yZXZlcnNlKCksYy5hbmltYXRlJiYtMSE9PUZbMF0mJmUoRSxVWzE0XSwzMDApLGI9RC5sZW5ndGg+MT8zOjEsMT09PWQubGVuZ3RoJiYoYj0xKSx3KGIsZCksaihbInNldCJdKSx0aGlzfWZ1bmN0aW9uIHkoKXt2YXIgYSxiPVtdO2ZvcihhPTA7YTxjLmhhbmRsZXM7YSs9MSliW2FdPWMuZm9ybWF0LnRvKE1bYV0pO3JldHVybiBrKGIpfWZ1bmN0aW9uIHooKXtyZXR1cm4gYSh0aGlzKS5vZmYoUykucmVtb3ZlQ2xhc3MoVS5qb2luKCIgIikpLmVtcHR5KCksZGVsZXRlIHRoaXMuTGlua1VwZGF0ZSxkZWxldGUgdGhpcy5MaW5rQ29uZmlybSxkZWxldGUgdGhpcy5MaW5rRGVmYXVsdEZvcm1hdHRlcixkZWxldGUgdGhpcy5MaW5rRGVmYXVsdEZsYWcsZGVsZXRlIHRoaXMucmVhcHBlbmQsZGVsZXRlIHRoaXMudkdldCxkZWxldGUgdGhpcy52U2V0LGRlbGV0ZSB0aGlzLmdldEN1cnJlbnRTdGVwLGRlbGV0ZSB0aGlzLmdldEluZm8sZGVsZXRlIHRoaXMuZGVzdHJveSxkfWZ1bmN0aW9uIEEoKXt2YXIgYj1hLm1hcChGLGZ1bmN0aW9uKGEsYil7dmFyIGM9SS5nZXRBcHBsaWNhYmxlU3RlcChhKSxkPWgoU3RyaW5nKGNbMl0pKSxlPU1bYl0sZj0xMDA9PT1hP251bGw6Y1syXSxnPU51bWJlcigoZS1jWzJdKS50b0ZpeGVkKGQpKSxpPTA9PT1hP251bGw6Zz49Y1sxXT9jWzJdOmNbMF18fCExO3JldHVybltbaSxmXV19KTtyZXR1cm4gayhiKX1mdW5jdGlvbiBCKCl7cmV0dXJuIGR9dmFyIEMsRCxFPWEoYiksRj1bLTEsLTFdLEk9Yy5zcGVjdHJ1bSxNPVtdLE49WyJsb3dlciIsInVwcGVyIl0uc2xpY2UoMCxjLmhhbmRsZXMpO2lmKGMuZGlyJiZOLnJldmVyc2UoKSxiLkxpbmtVcGRhdGU9bSxiLkxpbmtDb25maXJtPW4sYi5MaW5rRGVmYXVsdEZvcm1hdHRlcj1jLmZvcm1hdCxiLkxpbmtEZWZhdWx0RmxhZz0ibG93ZXIiLGIucmVhcHBlbmQ9byxFLmhhc0NsYXNzKFVbMF0pKXRocm93IG5ldyBFcnJvcigiU2xpZGVyIHdhcyBhbHJlYWR5IGluaXRpYWxpemVkLiIpO0M9TChjLmRpcixjLm9ydCxFKSxEPUsoYy5oYW5kbGVzLGMuZGlyLEMpLEooYy5jb25uZWN0LEUsRCksdShjLmV2ZW50cyksYi52U2V0PXgsYi52R2V0PXksYi5kZXN0cm95PXosYi5nZXRDdXJyZW50U3RlcD1BLGIuZ2V0T3JpZ2luYWxPcHRpb25zPUIsYi5nZXRJbmZvPWZ1bmN0aW9uKCl7cmV0dXJuW0ksYy5zdHlsZSxjLm9ydF19LEUudmFsKGMuc3RhcnQpfWZ1bmN0aW9uIE4oYSl7dmFyIGI9RihhLHRoaXMpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtNKHRoaXMsYixhKX0pfWZ1bmN0aW9uIE8oYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCF0aGlzLmRlc3Ryb3kpcmV0dXJuIHZvaWQgYSh0aGlzKS5ub1VpU2xpZGVyKGIpO3ZhciBjPWEodGhpcykudmFsKCksZD10aGlzLmRlc3Ryb3koKSxlPWEuZXh0ZW5kKHt9LGQsYik7YSh0aGlzKS5ub1VpU2xpZGVyKGUpLHRoaXMucmVhcHBlbmQoKSxkLnN0YXJ0PT09ZS5zdGFydCYmYSh0aGlzKS52YWwoYyl9KX1mdW5jdGlvbiBQKCl7cmV0dXJuIHRoaXNbMF1bYXJndW1lbnRzLmxlbmd0aD8idlNldCI6InZHZXQiXS5hcHBseSh0aGlzWzBdLGFyZ3VtZW50cyl9dmFyIFE9YShkb2N1bWVudCksUj1hLmZuLnZhbCxTPSIubnVpIixUPXdpbmRvdy5uYXZpZ2F0b3IucG9pbnRlckVuYWJsZWQ/e3N0YXJ0OiJwb2ludGVyZG93biIsbW92ZToicG9pbnRlcm1vdmUiLGVuZDoicG9pbnRlcnVwIn06d2luZG93Lm5hdmlnYXRvci5tc1BvaW50ZXJFbmFibGVkP3tzdGFydDoiTVNQb2ludGVyRG93biIsbW92ZToiTVNQb2ludGVyTW92ZSIsZW5kOiJNU1BvaW50ZXJVcCJ9OntzdGFydDoibW91c2Vkb3duIHRvdWNoc3RhcnQiLG1vdmU6Im1vdXNlbW92ZSB0b3VjaG1vdmUiLGVuZDoibW91c2V1cCB0b3VjaGVuZCJ9LFU9WyJub1VpLXRhcmdldCIsIm5vVWktYmFzZSIsIm5vVWktb3JpZ2luIiwibm9VaS1oYW5kbGUiLCJub1VpLWhvcml6b250YWwiLCJub1VpLXZlcnRpY2FsIiwibm9VaS1iYWNrZ3JvdW5kIiwibm9VaS1jb25uZWN0Iiwibm9VaS1sdHIiLCJub1VpLXJ0bCIsIm5vVWktZHJhZ2FibGUiLCIiLCJub1VpLXN0YXRlLWRyYWciLCIiLCJub1VpLXN0YXRlLXRhcCIsIm5vVWktYWN0aXZlIiwiIiwibm9VaS1zdGFja2luZyJdO3MucHJvdG90eXBlLmdldE1hcmdpbj1mdW5jdGlvbihhKXtyZXR1cm4gMj09PXRoaXMueFBjdC5sZW5ndGg/aih0aGlzLnhWYWwsYSk6ITF9LHMucHJvdG90eXBlLnRvU3RlcHBpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIGE9bih0aGlzLnhWYWwsdGhpcy54UGN0LGEpLHRoaXMuZGlyZWN0aW9uJiYoYT0xMDAtYSksYX0scy5wcm90b3R5cGUuZnJvbVN0ZXBwaW5nPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRpcmVjdGlvbiYmKGE9MTAwLWEpLGQobyh0aGlzLnhWYWwsdGhpcy54UGN0LGEpKX0scy5wcm90b3R5cGUuZ2V0U3RlcD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5kaXJlY3Rpb24mJihhPTEwMC1hKSxhPXAodGhpcy54UGN0LHRoaXMueFN0ZXBzLHRoaXMuc25hcCxhKSx0aGlzLmRpcmVjdGlvbiYmKGE9MTAwLWEpLGF9LHMucHJvdG90eXBlLmdldEFwcGxpY2FibGVTdGVwPWZ1bmN0aW9uKGEpe3ZhciBiPW0oYSx0aGlzLnhQY3QpLGM9MTAwPT09YT8yOjE7cmV0dXJuW3RoaXMueE51bVN0ZXBzW2ItMl0sdGhpcy54VmFsW2ItY10sdGhpcy54TnVtU3RlcHNbYi1jXV19LHMucHJvdG90eXBlLmNvbnZlcnQ9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0U3RlcCh0aGlzLnRvU3RlcHBpbmcoYSkpfTt2YXIgVj17dG86ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9GaXhlZCgyKX0sZnJvbTpOdW1iZXJ9O2EuZm4udmFsPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGEuaGFzQ2xhc3MoVVswXSk/UDpSfWlmKCFhcmd1bWVudHMubGVuZ3RoKXt2YXIgZD1hKHRoaXNbMF0pO3JldHVybiBjKGQpLmNhbGwoZCl9dmFyIGU9YS5pc0Z1bmN0aW9uKGIpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oZCl7dmFyIGY9YixnPWEodGhpcyk7ZSYmKGY9Yi5jYWxsKHRoaXMsZCxnLnZhbCgpKSksYyhnKS5jYWxsKGcsZil9KX0sYS5mbi5ub1VpU2xpZGVyPWZ1bmN0aW9uKGEsYil7c3dpdGNoKGEpe2Nhc2Uic3RlcCI6cmV0dXJuIHRoaXNbMF0uZ2V0Q3VycmVudFN0ZXAoKTtjYXNlIm9wdGlvbnMiOnJldHVybiB0aGlzWzBdLmdldE9yaWdpbmFsT3B0aW9ucygpfXJldHVybihiP086TikuY2FsbCh0aGlzLGEpfX0od2luZG93LmpRdWVyeXx8d2luZG93LlplcHRvKTs="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
48 <link href="data:text/css;charset=utf-8,%0A%2Eselectize%2Dcontrol%2Eplugin%2Ddrag%5Fdrop%2Emulti%20%3E%20%2Eselectize%2Dinput%20%3E%20div%2Eui%2Dsortable%2Dplaceholder%20%7B%0Avisibility%3A%20visible%20%21important%3B%0Abackground%3A%20%23f2f2f2%20%21important%3B%0Abackground%3A%20rgba%280%2C%200%2C%200%2C%200%2E06%29%20%21important%3B%0Aborder%3A%200%20none%20%21important%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20inset%200%200%2012px%204px%20%23ffffff%3B%0Abox%2Dshadow%3A%20inset%200%200%2012px%204px%20%23ffffff%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Ddrag%5Fdrop%20%2Eui%2Dsortable%2Dplaceholder%3A%3Aafter%20%7B%0Acontent%3A%20%27%21%27%3B%0Avisibility%3A%20hidden%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Ddrag%5Fdrop%20%2Eui%2Dsortable%2Dhelper%20%7B%0A%2Dwebkit%2Dbox%2Dshadow%3A%200%202px%205px%20rgba%280%2C%200%2C%200%2C%200%2E2%29%3B%0Abox%2Dshadow%3A%200%202px%205px%20rgba%280%2C%200%2C%200%2C%200%2E2%29%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Dheader%20%7B%0Aposition%3A%20relative%3B%0Apadding%3A%203px%2012px%3B%0Aborder%2Dbottom%3A%201px%20solid%20%23d0d0d0%3B%0Abackground%3A%20%23f8f8f8%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%204px%204px%200%200%3B%0A%2Dmoz%2Dborder%2Dradius%3A%204px%204px%200%200%3B%0Aborder%2Dradius%3A%204px%204px%200%200%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Dheader%2Dclose%20%7B%0Aposition%3A%20absolute%3B%0Aright%3A%2012px%3B%0Atop%3A%2050%25%3B%0Acolor%3A%20%23333333%3B%0Aopacity%3A%200%2E4%3B%0Amargin%2Dtop%3A%20%2D12px%3B%0Aline%2Dheight%3A%2020px%3B%0Afont%2Dsize%3A%2020px%20%21important%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Dheader%2Dclose%3Ahover%20%7B%0Acolor%3A%20%23000000%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Eplugin%2Doptgroup%5Fcolumns%20%2Eoptgroup%20%7B%0Aborder%2Dright%3A%201px%20solid%20%23f2f2f2%3B%0Aborder%2Dtop%3A%200%20none%3B%0Afloat%3A%20left%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Eplugin%2Doptgroup%5Fcolumns%20%2Eoptgroup%3Alast%2Dchild%20%7B%0Aborder%2Dright%3A%200%20none%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Eplugin%2Doptgroup%5Fcolumns%20%2Eoptgroup%3Abefore%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Eplugin%2Doptgroup%5Fcolumns%20%2Eoptgroup%2Dheader%20%7B%0Aborder%2Dtop%3A%200%20none%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Dremove%5Fbutton%20%5Bdata%2Dvalue%5D%20%7B%0Aposition%3A%20relative%3B%0Apadding%2Dright%3A%2024px%20%21important%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Dremove%5Fbutton%20%5Bdata%2Dvalue%5D%20%2Eremove%20%7B%0Az%2Dindex%3A%201%3B%0A%0Aposition%3A%20absolute%3B%0Atop%3A%200%3B%0Aright%3A%200%3B%0Abottom%3A%200%3B%0Awidth%3A%2017px%3B%0Atext%2Dalign%3A%20center%3B%0Afont%2Dweight%3A%20bold%3B%0Afont%2Dsize%3A%2012px%3B%0Acolor%3A%20inherit%3B%0Atext%2Ddecoration%3A%20none%3B%0Avertical%2Dalign%3A%20middle%3B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%3A%201px%200%200%200%3B%0Aborder%2Dleft%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%200%29%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%200%202px%202px%200%3B%0A%2Dmoz%2Dborder%2Dradius%3A%200%202px%202px%200%3B%0Aborder%2Dradius%3A%200%202px%202px%200%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Dremove%5Fbutton%20%5Bdata%2Dvalue%5D%20%2Eremove%3Ahover%20%7B%0Abackground%3A%20rgba%280%2C%200%2C%200%2C%200%2E05%29%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Dremove%5Fbutton%20%5Bdata%2Dvalue%5D%2Eactive%20%2Eremove%20%7B%0Aborder%2Dleft%2Dcolor%3A%20rgba%280%2C%200%2C%200%2C%200%29%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Dremove%5Fbutton%20%2Edisabled%20%5Bdata%2Dvalue%5D%20%2Eremove%3Ahover%20%7B%0Abackground%3A%20none%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Eplugin%2Dremove%5Fbutton%20%2Edisabled%20%5Bdata%2Dvalue%5D%20%2Eremove%20%7B%0Aborder%2Dleft%2Dcolor%3A%20rgba%2877%2C%2077%2C%2077%2C%200%29%3B%0A%7D%0A%2Eselectize%2Dcontrol%20%7B%0Aposition%3A%20relative%3B%0A%7D%0A%2Eselectize%2Ddropdown%2C%0A%2Eselectize%2Dinput%2C%0A%2Eselectize%2Dinput%20input%20%7B%0Acolor%3A%20%23333333%3B%0Afont%2Dfamily%3A%20inherit%3B%0Afont%2Dsize%3A%20inherit%3B%0Aline%2Dheight%3A%2020px%3B%0A%2Dwebkit%2Dfont%2Dsmoothing%3A%20inherit%3B%0A%7D%0A%2Eselectize%2Dinput%2C%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%2Einput%2Dactive%20%7B%0Abackground%3A%20%23ffffff%3B%0Acursor%3A%20text%3B%0Adisplay%3A%20inline%2Dblock%3B%0A%7D%0A%2Eselectize%2Dinput%20%7B%0Aborder%3A%201px%20solid%20%23cccccc%3B%0Apadding%3A%206px%2012px%3B%0Adisplay%3A%20inline%2Dblock%3B%0Awidth%3A%20100%25%3B%0Aoverflow%3A%20hidden%3B%0Aposition%3A%20relative%3B%0Az%2Dindex%3A%201%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20none%3B%0Abox%2Dshadow%3A%20none%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%204px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%204px%3B%0Aborder%2Dradius%3A%204px%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%2Ehas%2Ditems%20%7B%0Apadding%3A%205px%2012px%202px%3B%0A%7D%0A%2Eselectize%2Dinput%2Efull%20%7B%0Abackground%2Dcolor%3A%20%23ffffff%3B%0A%7D%0A%2Eselectize%2Dinput%2Edisabled%2C%0A%2Eselectize%2Dinput%2Edisabled%20%2A%20%7B%0Acursor%3A%20default%20%21important%3B%0A%7D%0A%2Eselectize%2Dinput%2Efocus%20%7B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20inset%200%201px%202px%20rgba%280%2C%200%2C%200%2C%200%2E15%29%3B%0Abox%2Dshadow%3A%20inset%200%201px%202px%20rgba%280%2C%200%2C%200%2C%200%2E15%29%3B%0A%7D%0A%2Eselectize%2Dinput%2Edropdown%2Dactive%20%7B%0A%2Dwebkit%2Dborder%2Dradius%3A%204px%204px%200%200%3B%0A%2Dmoz%2Dborder%2Dradius%3A%204px%204px%200%200%3B%0Aborder%2Dradius%3A%204px%204px%200%200%3B%0A%7D%0A%2Eselectize%2Dinput%20%3E%20%2A%20%7B%0Avertical%2Dalign%3A%20baseline%3B%0Adisplay%3A%20%2Dmoz%2Dinline%2Dstack%3B%0Adisplay%3A%20inline%2Dblock%3B%0Azoom%3A%201%3B%0A%2Adisplay%3A%20inline%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%20%3E%20div%20%7B%0Acursor%3A%20pointer%3B%0Amargin%3A%200%203px%203px%200%3B%0Apadding%3A%201px%203px%3B%0Abackground%3A%20%23efefef%3B%0Acolor%3A%20%23333333%3B%0Aborder%3A%200%20solid%20rgba%280%2C%200%2C%200%2C%200%29%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%20%3E%20div%2Eactive%20%7B%0Abackground%3A%20%23428bca%3B%0Acolor%3A%20%23ffffff%3B%0Aborder%3A%200%20solid%20rgba%280%2C%200%2C%200%2C%200%29%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%2Edisabled%20%3E%20div%2C%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%2Edisabled%20%3E%20div%2Eactive%20%7B%0Acolor%3A%20%23808080%3B%0Abackground%3A%20%23ffffff%3B%0Aborder%3A%200%20solid%20rgba%2877%2C%2077%2C%2077%2C%200%29%3B%0A%7D%0A%2Eselectize%2Dinput%20%3E%20input%20%7B%0Adisplay%3A%20inline%2Dblock%20%21important%3B%0Apadding%3A%200%20%21important%3B%0Amin%2Dheight%3A%200%20%21important%3B%0Amax%2Dheight%3A%20none%20%21important%3B%0Amax%2Dwidth%3A%20100%25%20%21important%3B%0Amargin%3A%200%20%21important%3B%0Atext%2Dindent%3A%200%20%21important%3B%0Aborder%3A%200%20none%20%21important%3B%0Abackground%3A%20none%20%21important%3B%0Aline%2Dheight%3A%20inherit%20%21important%3B%0A%2Dwebkit%2Duser%2Dselect%3A%20auto%20%21important%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20none%20%21important%3B%0Abox%2Dshadow%3A%20none%20%21important%3B%0A%7D%0A%2Eselectize%2Dinput%20%3E%20input%3A%3A%2Dms%2Dclear%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Eselectize%2Dinput%20%3E%20input%3Afocus%20%7B%0Aoutline%3A%20none%20%21important%3B%0A%7D%0A%2Eselectize%2Dinput%3A%3Aafter%20%7B%0Acontent%3A%20%27%20%27%3B%0Adisplay%3A%20block%3B%0Aclear%3A%20left%3B%0A%7D%0A%2Eselectize%2Dinput%2Edropdown%2Dactive%3A%3Abefore%20%7B%0Acontent%3A%20%27%20%27%3B%0Adisplay%3A%20block%3B%0Aposition%3A%20absolute%3B%0Abackground%3A%20%23ffffff%3B%0Aheight%3A%201px%3B%0Abottom%3A%200%3B%0Aleft%3A%200%3B%0Aright%3A%200%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%2010%3B%0Aborder%3A%201px%20solid%20%23d0d0d0%3B%0Abackground%3A%20%23ffffff%3B%0Amargin%3A%20%2D1px%200%200%200%3B%0Aborder%2Dtop%3A%200%20none%3B%0A%2Dwebkit%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dmoz%2Dbox%2Dsizing%3A%20border%2Dbox%3B%0Abox%2Dsizing%3A%20border%2Dbox%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%200%201px%203px%20rgba%280%2C%200%2C%200%2C%200%2E1%29%3B%0Abox%2Dshadow%3A%200%201px%203px%20rgba%280%2C%200%2C%200%2C%200%2E1%29%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%200%200%204px%204px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%200%200%204px%204px%3B%0Aborder%2Dradius%3A%200%200%204px%204px%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%5Bdata%2Dselectable%5D%20%7B%0Acursor%3A%20pointer%3B%0Aoverflow%3A%20hidden%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%5Bdata%2Dselectable%5D%20%2Ehighlight%20%7B%0Abackground%3A%20rgba%28255%2C%20237%2C%2040%2C%200%2E4%29%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%201px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%201px%3B%0Aborder%2Dradius%3A%201px%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%5Bdata%2Dselectable%5D%2C%0A%2Eselectize%2Ddropdown%20%2Eoptgroup%2Dheader%20%7B%0Apadding%3A%203px%2012px%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eoptgroup%3Afirst%2Dchild%20%2Eoptgroup%2Dheader%20%7B%0Aborder%2Dtop%3A%200%20none%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eoptgroup%2Dheader%20%7B%0Acolor%3A%20%23777777%3B%0Abackground%3A%20%23ffffff%3B%0Acursor%3A%20default%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eactive%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0Acolor%3A%20%23262626%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eactive%2Ecreate%20%7B%0Acolor%3A%20%23262626%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Ecreate%20%7B%0Acolor%3A%20rgba%2851%2C%2051%2C%2051%2C%200%2E5%29%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Dcontent%20%7B%0Aoverflow%2Dy%3A%20auto%3B%0Aoverflow%2Dx%3A%20hidden%3B%0Amax%2Dheight%3A%20200px%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%2C%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%20input%20%7B%0Acursor%3A%20pointer%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%2Einput%2Dactive%2C%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%2Einput%2Dactive%20input%20%7B%0Acursor%3A%20text%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%3Aafter%20%7B%0Acontent%3A%20%27%20%27%3B%0Adisplay%3A%20block%3B%0Aposition%3A%20absolute%3B%0Atop%3A%2050%25%3B%0Aright%3A%2017px%3B%0Amargin%2Dtop%3A%20%2D3px%3B%0Awidth%3A%200%3B%0Aheight%3A%200%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dwidth%3A%205px%205px%200%205px%3B%0Aborder%2Dcolor%3A%20%23333333%20transparent%20transparent%20transparent%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Esingle%20%2Eselectize%2Dinput%2Edropdown%2Dactive%3Aafter%20%7B%0Amargin%2Dtop%3A%20%2D4px%3B%0Aborder%2Dwidth%3A%200%205px%205px%205px%3B%0Aborder%2Dcolor%3A%20transparent%20transparent%20%23333333%20transparent%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Ertl%2Esingle%20%2Eselectize%2Dinput%3Aafter%20%7B%0Aleft%3A%2017px%3B%0Aright%3A%20auto%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Ertl%20%2Eselectize%2Dinput%20%3E%20input%20%7B%0Amargin%3A%200%204px%200%20%2D2px%20%21important%3B%0A%7D%0A%2Eselectize%2Dcontrol%20%2Eselectize%2Dinput%2Edisabled%20%7B%0Aopacity%3A%200%2E5%3B%0Abackground%2Dcolor%3A%20%23ffffff%3B%0A%7D%0A%2Eselectize%2Ddropdown%2C%0A%2Eselectize%2Ddropdown%2Eform%2Dcontrol%20%7B%0Aheight%3A%20auto%3B%0Apadding%3A%200%3B%0Amargin%3A%202px%200%200%200%3B%0Az%2Dindex%3A%201000%3B%0Abackground%3A%20%23ffffff%3B%0Aborder%3A%201px%20solid%20%23cccccc%3B%0Aborder%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%200%2E15%29%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%204px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%204px%3B%0Aborder%2Dradius%3A%204px%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%200%206px%2012px%20rgba%280%2C%200%2C%200%2C%200%2E175%29%3B%0Abox%2Dshadow%3A%200%206px%2012px%20rgba%280%2C%200%2C%200%2C%200%2E175%29%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eoptgroup%2Dheader%20%7B%0Afont%2Dsize%3A%2012px%3B%0Aline%2Dheight%3A%201%2E42857143%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eoptgroup%3Afirst%2Dchild%3Abefore%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Eselectize%2Ddropdown%20%2Eoptgroup%3Abefore%20%7B%0Acontent%3A%20%27%20%27%3B%0Adisplay%3A%20block%3B%0Aheight%3A%201px%3B%0Amargin%3A%209px%200%3B%0Aoverflow%3A%20hidden%3B%0Abackground%2Dcolor%3A%20%23e5e5e5%3B%0Amargin%2Dleft%3A%20%2D12px%3B%0Amargin%2Dright%3A%20%2D12px%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Dcontent%20%7B%0Apadding%3A%205px%200%3B%0A%7D%0A%2Eselectize%2Ddropdown%2Dheader%20%7B%0Apadding%3A%206px%2012px%3B%0A%7D%0A%2Eselectize%2Dinput%20%7B%0Amin%2Dheight%3A%2034px%3B%0A%7D%0A%2Eselectize%2Dinput%2Edropdown%2Dactive%20%7B%0A%2Dwebkit%2Dborder%2Dradius%3A%204px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%204px%3B%0Aborder%2Dradius%3A%204px%3B%0A%7D%0A%2Eselectize%2Dinput%2Edropdown%2Dactive%3A%3Abefore%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Eselectize%2Dinput%2Efocus%20%7B%0Aborder%2Dcolor%3A%20%2366afe9%3B%0Aoutline%3A%200%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20inset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C%200%200%208px%20rgba%28102%2C%20175%2C%20233%2C%200%2E6%29%3B%0Abox%2Dshadow%3A%20inset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C%200%200%208px%20rgba%28102%2C%20175%2C%20233%2C%200%2E6%29%3B%0A%7D%0A%2Ehas%2Derror%20%2Eselectize%2Dinput%20%7B%0Aborder%2Dcolor%3A%20%23a94442%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20inset%200%201px%201px%20rgba%280%2C%200%2C%200%2C%200%2E075%29%3B%0Abox%2Dshadow%3A%20inset%200%201px%201px%20rgba%280%2C%200%2C%200%2C%200%2E075%29%3B%0A%7D%0A%2Ehas%2Derror%20%2Eselectize%2Dinput%3Afocus%20%7B%0Aborder%2Dcolor%3A%20%23843534%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20inset%200%201px%201px%20rgba%280%2C%200%2C%200%2C%200%2E075%29%2C%200%200%206px%20%23ce8483%3B%0Abox%2Dshadow%3A%20inset%200%201px%201px%20rgba%280%2C%200%2C%200%2C%200%2E075%29%2C%200%200%206px%20%23ce8483%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%2Ehas%2Ditems%20%7B%0Apadding%2Dleft%3A%209px%3B%0Apadding%2Dright%3A%209px%3B%0A%7D%0A%2Eselectize%2Dcontrol%2Emulti%20%2Eselectize%2Dinput%20%3E%20div%20%7B%0A%2Dwebkit%2Dborder%2Dradius%3A%203px%3B%0A%2Dmoz%2Dborder%2Dradius%3A%203px%3B%0Aborder%2Dradius%3A%203px%3B%0A%7D%0A%2Eform%2Dcontrol%2Eselectize%2Dcontrol%20%7B%0Apadding%3A%200%3B%0Aheight%3A%20auto%3B%0Aborder%3A%20none%3B%0Abackground%3A%20none%3B%0A%2Dwebkit%2Dbox%2Dshadow%3A%20none%3B%0Abox%2Dshadow%3A%20none%3B%0A%2Dwebkit%2Dborder%2Dradius%3A%200%3B%0A%2Dmoz%2Dborder%2Dradius%3A%200%3B%0Aborder%2Dradius%3A%200%3B%0A%7D%0A" rel="stylesheet" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
49 <script src="data:application/x-javascript;base64,LyohIHNlbGVjdGl6ZS5qcyAtIHYwLjEyLjEgfCBodHRwczovL2dpdGh1Yi5jb20vYnJpYW5yZWF2aXMvc2VsZWN0aXplLmpzIHwgQXBhY2hlIExpY2Vuc2UgKHYyKSAqLwohZnVuY3Rpb24oYSxiKXsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSgic2lmdGVyIixiKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YigpOmEuU2lmdGVyPWIoKX0odGhpcyxmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKGEsYil7dGhpcy5pdGVtcz1hLHRoaXMuc2V0dGluZ3M9Ynx8e2RpYWNyaXRpY3M6ITB9fTthLnByb3RvdHlwZS50b2tlbml6ZT1mdW5jdGlvbihhKXtpZihhPWQoU3RyaW5nKGF8fCIiKS50b0xvd2VyQ2FzZSgpKSwhYXx8IWEubGVuZ3RoKXJldHVybltdO3ZhciBiLGMsZixoLGk9W10saj1hLnNwbGl0KC8gKy8pO2ZvcihiPTAsYz1qLmxlbmd0aDtjPmI7YisrKXtpZihmPWUoaltiXSksdGhpcy5zZXR0aW5ncy5kaWFjcml0aWNzKWZvcihoIGluIGcpZy5oYXNPd25Qcm9wZXJ0eShoKSYmKGY9Zi5yZXBsYWNlKG5ldyBSZWdFeHAoaCwiZyIpLGdbaF0pKTtpLnB1c2goe3N0cmluZzpqW2JdLHJlZ2V4Om5ldyBSZWdFeHAoZiwiaSIpfSl9cmV0dXJuIGl9LGEucHJvdG90eXBlLml0ZXJhdG9yPWZ1bmN0aW9uKGEsYil7dmFyIGM7Yz1mKGEpP0FycmF5LnByb3RvdHlwZS5mb3JFYWNofHxmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspYSh0aGlzW2JdLGIsdGhpcyl9OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiB0aGlzKXRoaXMuaGFzT3duUHJvcGVydHkoYikmJmEodGhpc1tiXSxiLHRoaXMpfSxjLmFwcGx5KGEsW2JdKX0sYS5wcm90b3R5cGUuZ2V0U2NvcmVGdW5jdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmO2M9dGhpcyxhPWMucHJlcGFyZVNlYXJjaChhLGIpLGU9YS50b2tlbnMsZD1hLm9wdGlvbnMuZmllbGRzLGY9ZS5sZW5ndGg7dmFyIGc9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO3JldHVybiBhPyhhPVN0cmluZyhhfHwiIiksZD1hLnNlYXJjaChiLnJlZ2V4KSwtMT09PWQ/MDooYz1iLnN0cmluZy5sZW5ndGgvYS5sZW5ndGgsMD09PWQmJihjKz0uNSksYykpOjB9LGg9ZnVuY3Rpb24oKXt2YXIgYT1kLmxlbmd0aDtyZXR1cm4gYT8xPT09YT9mdW5jdGlvbihhLGIpe3JldHVybiBnKGJbZFswXV0sYSl9OmZ1bmN0aW9uKGIsYyl7Zm9yKHZhciBlPTAsZj0wO2E+ZTtlKyspZis9ZyhjW2RbZV1dLGIpO3JldHVybiBmL2F9OmZ1bmN0aW9uKCl7cmV0dXJuIDB9fSgpO3JldHVybiBmPzE9PT1mP2Z1bmN0aW9uKGEpe3JldHVybiBoKGVbMF0sYSl9OiJhbmQiPT09YS5vcHRpb25zLmNvbmp1bmN0aW9uP2Z1bmN0aW9uKGEpe2Zvcih2YXIgYixjPTAsZD0wO2Y+YztjKyspe2lmKGI9aChlW2NdLGEpLDA+PWIpcmV0dXJuIDA7ZCs9Yn1yZXR1cm4gZC9mfTpmdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPTA7Zj5iO2IrKyljKz1oKGVbYl0sYSk7cmV0dXJuIGMvZn06ZnVuY3Rpb24oKXtyZXR1cm4gMH19LGEucHJvdG90eXBlLmdldFNvcnRGdW5jdGlvbj1mdW5jdGlvbihhLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbCxtLG47aWYoZj10aGlzLGE9Zi5wcmVwYXJlU2VhcmNoKGEsYyksbj0hYS5xdWVyeSYmYy5zb3J0X2VtcHR5fHxjLnNvcnQsbD1mdW5jdGlvbihhLGIpe3JldHVybiIkc2NvcmUiPT09YT9iLnNjb3JlOmYuaXRlbXNbYi5pZF1bYV19LGg9W10sbilmb3IoZD0wLGU9bi5sZW5ndGg7ZT5kO2QrKykoYS5xdWVyeXx8IiRzY29yZSIhPT1uW2RdLmZpZWxkKSYmaC5wdXNoKG5bZF0pO2lmKGEucXVlcnkpe2ZvcihtPSEwLGQ9MCxlPWgubGVuZ3RoO2U+ZDtkKyspaWYoIiRzY29yZSI9PT1oW2RdLmZpZWxkKXttPSExO2JyZWFrfW0mJmgudW5zaGlmdCh7ZmllbGQ6IiRzY29yZSIsZGlyZWN0aW9uOiJkZXNjIn0pfWVsc2UgZm9yKGQ9MCxlPWgubGVuZ3RoO2U+ZDtkKyspaWYoIiRzY29yZSI9PT1oW2RdLmZpZWxkKXtoLnNwbGljZShkLDEpO2JyZWFrfWZvcihrPVtdLGQ9MCxlPWgubGVuZ3RoO2U+ZDtkKyspay5wdXNoKCJkZXNjIj09PWhbZF0uZGlyZWN0aW9uPy0xOjEpO3JldHVybiBpPWgubGVuZ3RoLGk/MT09PWk/KGc9aFswXS5maWVsZCxqPWtbMF0sZnVuY3Rpb24oYSxjKXtyZXR1cm4gaipiKGwoZyxhKSxsKGcsYykpfSk6ZnVuY3Rpb24oYSxjKXt2YXIgZCxlLGY7Zm9yKGQ9MDtpPmQ7ZCsrKWlmKGY9aFtkXS5maWVsZCxlPWtbZF0qYihsKGYsYSksbChmLGMpKSlyZXR1cm4gZTtyZXR1cm4gMH06bnVsbH0sYS5wcm90b3R5cGUucHJlcGFyZVNlYXJjaD1mdW5jdGlvbihhLGIpe2lmKCJvYmplY3QiPT10eXBlb2YgYSlyZXR1cm4gYTtiPWMoe30sYik7dmFyIGQ9Yi5maWVsZHMsZT1iLnNvcnQsZz1iLnNvcnRfZW1wdHk7cmV0dXJuIGQmJiFmKGQpJiYoYi5maWVsZHM9W2RdKSxlJiYhZihlKSYmKGIuc29ydD1bZV0pLGcmJiFmKGcpJiYoYi5zb3J0X2VtcHR5PVtnXSkse29wdGlvbnM6YixxdWVyeTpTdHJpbmcoYXx8IiIpLnRvTG93ZXJDYXNlKCksdG9rZW5zOnRoaXMudG9rZW5pemUoYSksdG90YWw6MCxpdGVtczpbXX19LGEucHJvdG90eXBlLnNlYXJjaD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc9dGhpcztyZXR1cm4gZD10aGlzLnByZXBhcmVTZWFyY2goYSxiKSxiPWQub3B0aW9ucyxhPWQucXVlcnksZj1iLnNjb3JlfHxnLmdldFNjb3JlRnVuY3Rpb24oZCksYS5sZW5ndGg/Zy5pdGVyYXRvcihnLml0ZW1zLGZ1bmN0aW9uKGEsZSl7Yz1mKGEpLChiLmZpbHRlcj09PSExfHxjPjApJiZkLml0ZW1zLnB1c2goe3Njb3JlOmMsaWQ6ZX0pfSk6Zy5pdGVyYXRvcihnLml0ZW1zLGZ1bmN0aW9uKGEsYil7ZC5pdGVtcy5wdXNoKHtzY29yZToxLGlkOmJ9KX0pLGU9Zy5nZXRTb3J0RnVuY3Rpb24oZCxiKSxlJiZkLml0ZW1zLnNvcnQoZSksZC50b3RhbD1kLml0ZW1zLmxlbmd0aCwibnVtYmVyIj09dHlwZW9mIGIubGltaXQmJihkLml0ZW1zPWQuaXRlbXMuc2xpY2UoMCxiLmxpbWl0KSksZH07dmFyIGI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGEmJiJudW1iZXIiPT10eXBlb2YgYj9hPmI/MTpiPmE/LTE6MDooYT1oKFN0cmluZyhhfHwiIikpLGI9aChTdHJpbmcoYnx8IiIpKSxhPmI/MTpiPmE/LTE6MCl9LGM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGU7Zm9yKGI9MSxjPWFyZ3VtZW50cy5sZW5ndGg7Yz5iO2IrKylpZihlPWFyZ3VtZW50c1tiXSlmb3IoZCBpbiBlKWUuaGFzT3duUHJvcGVydHkoZCkmJihhW2RdPWVbZF0pO3JldHVybiBhfSxkPWZ1bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKC9eXHMrfFxzKyR8L2csIiIpfSxlPWZ1bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKC8oWy4/KiteJFtcXVxcKCl7fXwtXSkvZywiXFwkMSIpfSxmPUFycmF5LmlzQXJyYXl8fCQmJiQuaXNBcnJheXx8ZnVuY3Rpb24oYSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX0sZz17YToiW2HDgMOBw4LDg8OEw4XDoMOhw6LDo8Okw6XEgMSBxIXEhF0iLGM6Iltjw4fDp8SHxIbEjcSMXSIsZDoiW2TEkcSQxI/Ejl0iLGU6Iltlw4jDicOKw4vDqMOpw6rDq8SbxJrEksSTxJnEmF0iLGk6Iltpw4zDjcOOw4/DrMOtw67Dr8SqxKtdIixsOiJbbMWCxYFdIixuOiJbbsORw7HFiMWHxYTFg10iLG86Iltvw5LDk8OUw5XDlcOWw5jDssOzw7TDtcO2w7jFjMWNXSIscjoiW3LFmcWYXSIsczoiW3PFoMWhxZvFml0iLHQ6Ilt0xaXFpF0iLHU6Ilt1w5nDmsObw5zDucO6w7vDvMWvxa7FqsWrXSIseToiW3nFuMO/w73DnV0iLHo6Ilt6xb3FvsW8xbvFusW5XSJ9LGg9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZCxlPSIiLGY9e307Zm9yKGMgaW4gZylpZihnLmhhc093blByb3BlcnR5KGMpKWZvcihkPWdbY10uc3Vic3RyaW5nKDIsZ1tjXS5sZW5ndGgtMSksZSs9ZCxhPTAsYj1kLmxlbmd0aDtiPmE7YSsrKWZbZC5jaGFyQXQoYSldPWM7dmFyIGg9bmV3IFJlZ0V4cCgiWyIrZSsiXSIsImciKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZShoLGZ1bmN0aW9uKGEpe3JldHVybiBmW2FdfSkudG9Mb3dlckNhc2UoKX19KCk7cmV0dXJuIGF9KSxmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJtaWNyb3BsdWdpbiIsYik6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWIoKTphLk1pY3JvUGx1Z2luPWIoKX0odGhpcyxmdW5jdGlvbigpe3ZhciBhPXt9O2EubWl4aW49ZnVuY3Rpb24oYSl7YS5wbHVnaW5zPXt9LGEucHJvdG90eXBlLmluaXRpYWxpemVQbHVnaW5zPWZ1bmN0aW9uKGEpe3ZhciBjLGQsZSxmPXRoaXMsZz1bXTtpZihmLnBsdWdpbnM9e25hbWVzOltdLHNldHRpbmdzOnt9LHJlcXVlc3RlZDp7fSxsb2FkZWQ6e319LGIuaXNBcnJheShhKSlmb3IoYz0wLGQ9YS5sZW5ndGg7ZD5jO2MrKykic3RyaW5nIj09dHlwZW9mIGFbY10/Zy5wdXNoKGFbY10pOihmLnBsdWdpbnMuc2V0dGluZ3NbYVtjXS5uYW1lXT1hW2NdLm9wdGlvbnMsZy5wdXNoKGFbY10ubmFtZSkpO2Vsc2UgaWYoYSlmb3IoZSBpbiBhKWEuaGFzT3duUHJvcGVydHkoZSkmJihmLnBsdWdpbnMuc2V0dGluZ3NbZV09YVtlXSxnLnB1c2goZSkpO2Zvcig7Zy5sZW5ndGg7KWYucmVxdWlyZShnLnNoaWZ0KCkpfSxhLnByb3RvdHlwZS5sb2FkUGx1Z2luPWZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMsZD1jLnBsdWdpbnMsZT1hLnBsdWdpbnNbYl07aWYoIWEucGx1Z2lucy5oYXNPd25Qcm9wZXJ0eShiKSl0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kICInK2IrJyIgcGx1Z2luJyk7ZC5yZXF1ZXN0ZWRbYl09ITAsZC5sb2FkZWRbYl09ZS5mbi5hcHBseShjLFtjLnBsdWdpbnMuc2V0dGluZ3NbYl18fHt9XSksZC5uYW1lcy5wdXNoKGIpfSxhLnByb3RvdHlwZS5yZXF1aXJlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMsYz1iLnBsdWdpbnM7aWYoIWIucGx1Z2lucy5sb2FkZWQuaGFzT3duUHJvcGVydHkoYSkpe2lmKGMucmVxdWVzdGVkW2FdKXRocm93IG5ldyBFcnJvcignUGx1Z2luIGhhcyBjaXJjdWxhciBkZXBlbmRlbmN5ICgiJythKyciKScpO2IubG9hZFBsdWdpbihhKX1yZXR1cm4gYy5sb2FkZWRbYV19LGEuZGVmaW5lPWZ1bmN0aW9uKGIsYyl7YS5wbHVnaW5zW2JdPXtuYW1lOmIsZm46Y319fTt2YXIgYj17aXNBcnJheTpBcnJheS5pc0FycmF5fHxmdW5jdGlvbihhKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfX07cmV0dXJuIGF9KSxmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJzZWxlY3RpemUiLFsianF1ZXJ5Iiwic2lmdGVyIiwibWljcm9wbHVnaW4iXSxiKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YihyZXF1aXJlKCJqcXVlcnkiKSxyZXF1aXJlKCJzaWZ0ZXIiKSxyZXF1aXJlKCJtaWNyb3BsdWdpbiIpKTphLlNlbGVjdGl6ZT1iKGEualF1ZXJ5LGEuU2lmdGVyLGEuTWljcm9QbHVnaW4pfSh0aGlzLGZ1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9ZnVuY3Rpb24oYSxiKXtpZigic3RyaW5nIiE9dHlwZW9mIGJ8fGIubGVuZ3RoKXt2YXIgYz0ic3RyaW5nIj09dHlwZW9mIGI/bmV3IFJlZ0V4cChiLCJpIik6YixkPWZ1bmN0aW9uKGEpe3ZhciBiPTA7aWYoMz09PWEubm9kZVR5cGUpe3ZhciBlPWEuZGF0YS5zZWFyY2goYyk7aWYoZT49MCYmYS5kYXRhLmxlbmd0aD4wKXt2YXIgZj1hLmRhdGEubWF0Y2goYyksZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7Zy5jbGFzc05hbWU9ImhpZ2hsaWdodCI7dmFyIGg9YS5zcGxpdFRleHQoZSksaT0oaC5zcGxpdFRleHQoZlswXS5sZW5ndGgpLGguY2xvbmVOb2RlKCEwKSk7Zy5hcHBlbmRDaGlsZChpKSxoLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGcsaCksYj0xfX1lbHNlIGlmKDE9PT1hLm5vZGVUeXBlJiZhLmNoaWxkTm9kZXMmJiEvKHNjcmlwdHxzdHlsZSkvaS50ZXN0KGEudGFnTmFtZSkpZm9yKHZhciBqPTA7ajxhLmNoaWxkTm9kZXMubGVuZ3RoOysrailqKz1kKGEuY2hpbGROb2Rlc1tqXSk7cmV0dXJuIGJ9O3JldHVybiBhLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpfSl9fSxlPWZ1bmN0aW9uKCl7fTtlLnByb3RvdHlwZT17b246ZnVuY3Rpb24oYSxiKXt0aGlzLl9ldmVudHM9dGhpcy5fZXZlbnRzfHx7fSx0aGlzLl9ldmVudHNbYV09dGhpcy5fZXZlbnRzW2FdfHxbXSx0aGlzLl9ldmVudHNbYV0ucHVzaChiKX0sb2ZmOmZ1bmN0aW9uKGEsYil7dmFyIGM9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gMD09PWM/ZGVsZXRlIHRoaXMuX2V2ZW50czoxPT09Yz9kZWxldGUgdGhpcy5fZXZlbnRzW2FdOih0aGlzLl9ldmVudHM9dGhpcy5fZXZlbnRzfHx7fSx2b2lkKGEgaW4gdGhpcy5fZXZlbnRzIT0hMSYmdGhpcy5fZXZlbnRzW2FdLnNwbGljZSh0aGlzLl9ldmVudHNbYV0uaW5kZXhPZihiKSwxKSkpfSx0cmlnZ2VyOmZ1bmN0aW9uKGEpe2lmKHRoaXMuX2V2ZW50cz10aGlzLl9ldmVudHN8fHt9LGEgaW4gdGhpcy5fZXZlbnRzIT0hMSlmb3IodmFyIGI9MDtiPHRoaXMuX2V2ZW50c1thXS5sZW5ndGg7YisrKXRoaXMuX2V2ZW50c1thXVtiXS5hcHBseSh0aGlzLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSl9fSxlLm1peGluPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bIm9uIiwib2ZmIiwidHJpZ2dlciJdLGM9MDtjPGIubGVuZ3RoO2MrKylhLnByb3RvdHlwZVtiW2NdXT1lLnByb3RvdHlwZVtiW2NdXX07dmFyIGY9L01hYy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxnPTY1LGg9MTMsaT0yNyxqPTM3LGs9MzgsbD04MCxtPTM5LG49NDAsbz03OCxwPTgscT00NixyPTE2LHM9Zj85MToxNyx0PWY/MTg6MTcsdT05LHY9MSx3PTIseD0hL2FuZHJvaWQvaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSYmISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIikudmFsaWRpdHkseT1mdW5jdGlvbihhKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGF9LHo9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT09YT9udWxsOiJib29sZWFuIj09dHlwZW9mIGE/YT8iMSI6IjAiOmErIiJ9LEE9ZnVuY3Rpb24oYSl7cmV0dXJuKGErIiIpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpfSxCPWZ1bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKC9cJC9nLCIkJCQkIil9LEM9e307Qy5iZWZvcmU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWFbYl07YVtiXT1mdW5jdGlvbigpe3JldHVybiBjLmFwcGx5KGEsYXJndW1lbnRzKSxkLmFwcGx5KGEsYXJndW1lbnRzKX19LEMuYWZ0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWFbYl07YVtiXT1mdW5jdGlvbigpe3ZhciBiPWQuYXBwbHkoYSxhcmd1bWVudHMpO3JldHVybiBjLmFwcGx5KGEsYXJndW1lbnRzKSxifX07dmFyIEQ9ZnVuY3Rpb24oYSl7dmFyIGI9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7Ynx8KGI9ITAsYS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX0sRT1mdW5jdGlvbihhLGIpe3ZhciBjO3JldHVybiBmdW5jdGlvbigpe3ZhciBkPXRoaXMsZT1hcmd1bWVudHM7d2luZG93LmNsZWFyVGltZW91dChjKSxjPXdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5hcHBseShkLGUpfSxiKX19LEY9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU9YS50cmlnZ2VyLGY9e307YS50cmlnZ2VyPWZ1bmN0aW9uKCl7dmFyIGM9YXJndW1lbnRzWzBdO3JldHVybi0xPT09Yi5pbmRleE9mKGMpP2UuYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQoZltjXT1hcmd1bWVudHMpfSxjLmFwcGx5KGEsW10pLGEudHJpZ2dlcj1lO2ZvcihkIGluIGYpZi5oYXNPd25Qcm9wZXJ0eShkKSYmZS5hcHBseShhLGZbZF0pfSxHPWZ1bmN0aW9uKGEsYixjLGQpe2Eub24oYixjLGZ1bmN0aW9uKGIpe2Zvcih2YXIgYz1iLnRhcmdldDtjJiZjLnBhcmVudE5vZGUhPT1hWzBdOyljPWMucGFyZW50Tm9kZTtyZXR1cm4gYi5jdXJyZW50VGFyZ2V0PWMsZC5hcHBseSh0aGlzLFtiXSl9KX0sSD1mdW5jdGlvbihhKXt2YXIgYj17fTtpZigic2VsZWN0aW9uU3RhcnQiaW4gYSliLnN0YXJ0PWEuc2VsZWN0aW9uU3RhcnQsYi5sZW5ndGg9YS5zZWxlY3Rpb25FbmQtYi5zdGFydDtlbHNlIGlmKGRvY3VtZW50LnNlbGVjdGlvbil7YS5mb2N1cygpO3ZhciBjPWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLGQ9ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4dC5sZW5ndGg7Yy5tb3ZlU3RhcnQoImNoYXJhY3RlciIsLWEudmFsdWUubGVuZ3RoKSxiLnN0YXJ0PWMudGV4dC5sZW5ndGgtZCxiLmxlbmd0aD1kfXJldHVybiBifSxJPWZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9e307aWYoYylmb3IoZD0wLGU9Yy5sZW5ndGg7ZT5kO2QrKylmW2NbZF1dPWEuY3NzKGNbZF0pO2Vsc2UgZj1hLmNzcygpO2IuY3NzKGYpfSxKPWZ1bmN0aW9uKGIsYyl7aWYoIWIpcmV0dXJuIDA7dmFyIGQ9YSgiPHRlc3Q+IikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotOTk5OTksbGVmdDotOTk5OTksd2lkdGg6ImF1dG8iLHBhZGRpbmc6MCx3aGl0ZVNwYWNlOiJwcmUifSkudGV4dChiKS5hcHBlbmRUbygiYm9keSIpO0koYyxkLFsibGV0dGVyU3BhY2luZyIsImZvbnRTaXplIiwiZm9udEZhbWlseSIsImZvbnRXZWlnaHQiLCJ0ZXh0VHJhbnNmb3JtIl0pO3ZhciBlPWQud2lkdGgoKTtyZXR1cm4gZC5yZW1vdmUoKSxlfSxLPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGwsYz1mdW5jdGlvbihjLGQpe3ZhciBlLGYsZyxoLGksaixrLGw7Yz1jfHx3aW5kb3cuZXZlbnR8fHt9LGQ9ZHx8e30sYy5tZXRhS2V5fHxjLmFsdEtleXx8KGQuZm9yY2V8fGEuZGF0YSgiZ3JvdyIpIT09ITEpJiYoZT1hLnZhbCgpLGMudHlwZSYmImtleWRvd24iPT09Yy50eXBlLnRvTG93ZXJDYXNlKCkmJihmPWMua2V5Q29kZSxnPWY+PTk3JiYxMjI+PWZ8fGY+PTY1JiY5MD49Znx8Zj49NDgmJjU3Pj1mfHwzMj09PWYsZj09PXF8fGY9PT1wPyhsPUgoYVswXSksbC5sZW5ndGg/ZT1lLnN1YnN0cmluZygwLGwuc3RhcnQpK2Uuc3Vic3RyaW5nKGwuc3RhcnQrbC5sZW5ndGgpOmY9PT1wJiZsLnN0YXJ0P2U9ZS5zdWJzdHJpbmcoMCxsLnN0YXJ0LTEpK2Uuc3Vic3RyaW5nKGwuc3RhcnQrMSk6Zj09PXEmJiJ1bmRlZmluZWQiIT10eXBlb2YgbC5zdGFydCYmKGU9ZS5zdWJzdHJpbmcoMCxsLnN0YXJ0KStlLnN1YnN0cmluZyhsLnN0YXJ0KzEpKSk6ZyYmKGo9Yy5zaGlmdEtleSxrPVN0cmluZy5mcm9tQ2hhckNvZGUoYy5rZXlDb2RlKSxrPWo/ay50b1VwcGVyQ2FzZSgpOmsudG9Mb3dlckNhc2UoKSxlKz1rKSksaD1hLmF0dHIoInBsYWNlaG9sZGVyIiksIWUmJmgmJihlPWgpLGk9SihlLGEpKzQsaSE9PWImJihiPWksYS53aWR0aChpKSxhLnRyaWdnZXJIYW5kbGVyKCJyZXNpemUiKSkpfTthLm9uKCJrZXlkb3duIGtleXVwIHVwZGF0ZSBibHVyIixjKSxjKCl9LEw9ZnVuY3Rpb24oYyxkKXt2YXIgZSxmLGcsaCxpPXRoaXM7aD1jWzBdLGguc2VsZWN0aXplPWk7dmFyIGo9d2luZG93LmdldENvbXB1dGVkU3R5bGUmJndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGgsbnVsbCk7aWYoZz1qP2ouZ2V0UHJvcGVydHlWYWx1ZSgiZGlyZWN0aW9uIik6aC5jdXJyZW50U3R5bGUmJmguY3VycmVudFN0eWxlLmRpcmVjdGlvbixnPWd8fGMucGFyZW50cygiW2Rpcl06Zmlyc3QiKS5hdHRyKCJkaXIiKXx8IiIsYS5leHRlbmQoaSx7b3JkZXI6MCxzZXR0aW5nczpkLCRpbnB1dDpjLHRhYkluZGV4OmMuYXR0cigidGFiaW5kZXgiKXx8IiIsdGFnVHlwZToic2VsZWN0Ij09PWgudGFnTmFtZS50b0xvd2VyQ2FzZSgpP3Y6dyxydGw6L3J0bC9pLnRlc3QoZyksZXZlbnROUzoiLnNlbGVjdGl6ZSIrICsrTC5jb3VudCxoaWdobGlnaHRlZFZhbHVlOm51bGwsaXNPcGVuOiExLGlzRGlzYWJsZWQ6ITEsaXNSZXF1aXJlZDpjLmlzKCJbcmVxdWlyZWRdIiksaXNJbnZhbGlkOiExLGlzTG9ja2VkOiExLGlzRm9jdXNlZDohMSxpc0lucHV0SGlkZGVuOiExLGlzU2V0dXA6ITEsaXNTaGlmdERvd246ITEsaXNDbWREb3duOiExLGlzQ3RybERvd246ITEsaWdub3JlRm9jdXM6ITEsaWdub3JlQmx1cjohMSxpZ25vcmVIb3ZlcjohMSxoYXNPcHRpb25zOiExLGN1cnJlbnRSZXN1bHRzOm51bGwsbGFzdFZhbHVlOiIiLGNhcmV0UG9zOjAsbG9hZGluZzowLGxvYWRlZFNlYXJjaGVzOnt9LCRhY3RpdmVPcHRpb246bnVsbCwkYWN0aXZlSXRlbXM6W10sb3B0Z3JvdXBzOnt9LG9wdGlvbnM6e30sdXNlck9wdGlvbnM6e30saXRlbXM6W10scmVuZGVyQ2FjaGU6e30sb25TZWFyY2hDaGFuZ2U6bnVsbD09PWQubG9hZFRocm90dGxlP2kub25TZWFyY2hDaGFuZ2U6RShpLm9uU2VhcmNoQ2hhbmdlLGQubG9hZFRocm90dGxlKX0pLGkuc2lmdGVyPW5ldyBiKHRoaXMub3B0aW9ucyx7ZGlhY3JpdGljczpkLmRpYWNyaXRpY3N9KSxpLnNldHRpbmdzLm9wdGlvbnMpe2ZvcihlPTAsZj1pLnNldHRpbmdzLm9wdGlvbnMubGVuZ3RoO2Y+ZTtlKyspaS5yZWdpc3Rlck9wdGlvbihpLnNldHRpbmdzLm9wdGlvbnNbZV0pO2RlbGV0ZSBpLnNldHRpbmdzLm9wdGlvbnN9aWYoaS5zZXR0aW5ncy5vcHRncm91cHMpe2ZvcihlPTAsZj1pLnNldHRpbmdzLm9wdGdyb3Vwcy5sZW5ndGg7Zj5lO2UrKylpLnJlZ2lzdGVyT3B0aW9uR3JvdXAoaS5zZXR0aW5ncy5vcHRncm91cHNbZV0pO2RlbGV0ZSBpLnNldHRpbmdzLm9wdGdyb3Vwc31pLnNldHRpbmdzLm1vZGU9aS5zZXR0aW5ncy5tb2RlfHwoMT09PWkuc2V0dGluZ3MubWF4SXRlbXM/InNpbmdsZSI6Im11bHRpIiksImJvb2xlYW4iIT10eXBlb2YgaS5zZXR0aW5ncy5oaWRlU2VsZWN0ZWQmJihpLnNldHRpbmdzLmhpZGVTZWxlY3RlZD0ibXVsdGkiPT09aS5zZXR0aW5ncy5tb2RlKSxpLmluaXRpYWxpemVQbHVnaW5zKGkuc2V0dGluZ3MucGx1Z2lucyksaS5zZXR1cENhbGxiYWNrcygpLGkuc2V0dXBUZW1wbGF0ZXMoKSxpLnNldHVwKCl9O3JldHVybiBlLm1peGluKEwpLGMubWl4aW4oTCksYS5leHRlbmQoTC5wcm90b3R5cGUse3NldHVwOmZ1bmN0aW9uKCl7dmFyIGIsYyxkLGUsZyxoLGksaixrLGw9dGhpcyxtPWwuc2V0dGluZ3Msbj1sLmV2ZW50TlMsbz1hKHdpbmRvdykscD1hKGRvY3VtZW50KSxxPWwuJGlucHV0O2lmKGk9bC5zZXR0aW5ncy5tb2RlLGo9cS5hdHRyKCJjbGFzcyIpfHwiIixiPWEoIjxkaXY+IikuYWRkQ2xhc3MobS53cmFwcGVyQ2xhc3MpLmFkZENsYXNzKGopLmFkZENsYXNzKGkpLGM9YSgiPGRpdj4iKS5hZGRDbGFzcyhtLmlucHV0Q2xhc3MpLmFkZENsYXNzKCJpdGVtcyIpLmFwcGVuZFRvKGIpLGQ9YSgnPGlucHV0IHR5cGU9InRleHQiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPicpLmFwcGVuZFRvKGMpLmF0dHIoInRhYmluZGV4IixxLmlzKCI6ZGlzYWJsZWQiKT8iLTEiOmwudGFiSW5kZXgpLGg9YShtLmRyb3Bkb3duUGFyZW50fHxiKSxlPWEoIjxkaXY+IikuYWRkQ2xhc3MobS5kcm9wZG93bkNsYXNzKS5hZGRDbGFzcyhpKS5oaWRlKCkuYXBwZW5kVG8oaCksZz1hKCI8ZGl2PiIpLmFkZENsYXNzKG0uZHJvcGRvd25Db250ZW50Q2xhc3MpLmFwcGVuZFRvKGUpLGwuc2V0dGluZ3MuY29weUNsYXNzZXNUb0Ryb3Bkb3duJiZlLmFkZENsYXNzKGopLGIuY3NzKHt3aWR0aDpxWzBdLnN0eWxlLndpZHRofSksbC5wbHVnaW5zLm5hbWVzLmxlbmd0aCYmKGs9InBsdWdpbi0iK2wucGx1Z2lucy5uYW1lcy5qb2luKCIgcGx1Z2luLSIpLGIuYWRkQ2xhc3MoayksZS5hZGRDbGFzcyhrKSksKG51bGw9PT1tLm1heEl0ZW1zfHxtLm1heEl0ZW1zPjEpJiZsLnRhZ1R5cGU9PT12JiZxLmF0dHIoIm11bHRpcGxlIiwibXVsdGlwbGUiKSxsLnNldHRpbmdzLnBsYWNlaG9sZGVyJiZkLmF0dHIoInBsYWNlaG9sZGVyIixtLnBsYWNlaG9sZGVyKSwhbC5zZXR0aW5ncy5zcGxpdE9uJiZsLnNldHRpbmdzLmRlbGltaXRlcil7dmFyIHU9bC5zZXR0aW5ncy5kZWxpbWl0ZXIucmVwbGFjZSgvWy1cL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKTtsLnNldHRpbmdzLnNwbGl0T249bmV3IFJlZ0V4cCgiXFxzKiIrdSsiK1xccyoiKX1xLmF0dHIoImF1dG9jb3JyZWN0IikmJmQuYXR0cigiYXV0b2NvcnJlY3QiLHEuYXR0cigiYXV0b2NvcnJlY3QiKSkscS5hdHRyKCJhdXRvY2FwaXRhbGl6ZSIpJiZkLmF0dHIoImF1dG9jYXBpdGFsaXplIixxLmF0dHIoImF1dG9jYXBpdGFsaXplIikpLGwuJHdyYXBwZXI9YixsLiRjb250cm9sPWMsbC4kY29udHJvbF9pbnB1dD1kLGwuJGRyb3Bkb3duPWUsbC4kZHJvcGRvd25fY29udGVudD1nLGUub24oIm1vdXNlZW50ZXIiLCJbZGF0YS1zZWxlY3RhYmxlXSIsZnVuY3Rpb24oKXtyZXR1cm4gbC5vbk9wdGlvbkhvdmVyLmFwcGx5KGwsYXJndW1lbnRzKX0pLGUub24oIm1vdXNlZG93biBjbGljayIsIltkYXRhLXNlbGVjdGFibGVdIixmdW5jdGlvbigpe3JldHVybiBsLm9uT3B0aW9uU2VsZWN0LmFwcGx5KGwsYXJndW1lbnRzKX0pLEcoYywibW91c2Vkb3duIiwiKjpub3QoaW5wdXQpIixmdW5jdGlvbigpe3JldHVybiBsLm9uSXRlbVNlbGVjdC5hcHBseShsLGFyZ3VtZW50cyl9KSxLKGQpLGMub24oe21vdXNlZG93bjpmdW5jdGlvbigpe3JldHVybiBsLm9uTW91c2VEb3duLmFwcGx5KGwsYXJndW1lbnRzKX0sY2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gbC5vbkNsaWNrLmFwcGx5KGwsYXJndW1lbnRzKX19KSxkLm9uKHttb3VzZWRvd246ZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX0sa2V5ZG93bjpmdW5jdGlvbigpe3JldHVybiBsLm9uS2V5RG93bi5hcHBseShsLGFyZ3VtZW50cyl9LGtleXVwOmZ1bmN0aW9uKCl7cmV0dXJuIGwub25LZXlVcC5hcHBseShsLGFyZ3VtZW50cyl9LGtleXByZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIGwub25LZXlQcmVzcy5hcHBseShsLGFyZ3VtZW50cyl9LHJlc2l6ZTpmdW5jdGlvbigpe2wucG9zaXRpb25Ecm9wZG93bi5hcHBseShsLFtdKX0sYmx1cjpmdW5jdGlvbigpe3JldHVybiBsLm9uQmx1ci5hcHBseShsLGFyZ3VtZW50cyl9LGZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIGwuaWdub3JlQmx1cj0hMSxsLm9uRm9jdXMuYXBwbHkobCxhcmd1bWVudHMpfSxwYXN0ZTpmdW5jdGlvbigpe3JldHVybiBsLm9uUGFzdGUuYXBwbHkobCxhcmd1bWVudHMpfX0pLHAub24oImtleWRvd24iK24sZnVuY3Rpb24oYSl7bC5pc0NtZERvd249YVtmPyJtZXRhS2V5IjoiY3RybEtleSJdLGwuaXNDdHJsRG93bj1hW2Y/ImFsdEtleSI6ImN0cmxLZXkiXSxsLmlzU2hpZnREb3duPWEuc2hpZnRLZXl9KSxwLm9uKCJrZXl1cCIrbixmdW5jdGlvbihhKXthLmtleUNvZGU9PT10JiYobC5pc0N0cmxEb3duPSExKSxhLmtleUNvZGU9PT1yJiYobC5pc1NoaWZ0RG93bj0hMSksYS5rZXlDb2RlPT09cyYmKGwuaXNDbWREb3duPSExKX0pLHAub24oIm1vdXNlZG93biIrbixmdW5jdGlvbihhKXtpZihsLmlzRm9jdXNlZCl7aWYoYS50YXJnZXQ9PT1sLiRkcm9wZG93blswXXx8YS50YXJnZXQucGFyZW50Tm9kZT09PWwuJGRyb3Bkb3duWzBdKXJldHVybiExO2wuJGNvbnRyb2wuaGFzKGEudGFyZ2V0KS5sZW5ndGh8fGEudGFyZ2V0PT09bC4kY29udHJvbFswXXx8bC5ibHVyKGEudGFyZ2V0KX19KSxvLm9uKFsic2Nyb2xsIituLCJyZXNpemUiK25dLmpvaW4oIiAiKSxmdW5jdGlvbigpe2wuaXNPcGVuJiZsLnBvc2l0aW9uRHJvcGRvd24uYXBwbHkobCxhcmd1bWVudHMpfSksby5vbigibW91c2Vtb3ZlIituLGZ1bmN0aW9uKCl7bC5pZ25vcmVIb3Zlcj0hMX0pLHRoaXMucmV2ZXJ0U2V0dGluZ3M9eyRjaGlsZHJlbjpxLmNoaWxkcmVuKCkuZGV0YWNoKCksdGFiaW5kZXg6cS5hdHRyKCJ0YWJpbmRleCIpfSxxLmF0dHIoInRhYmluZGV4IiwtMSkuaGlkZSgpLmFmdGVyKGwuJHdyYXBwZXIpLGEuaXNBcnJheShtLml0ZW1zKSYmKGwuc2V0VmFsdWUobS5pdGVtcyksZGVsZXRlIG0uaXRlbXMpLHgmJnEub24oImludmFsaWQiK24sZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGwuaXNJbnZhbGlkPSEwLGwucmVmcmVzaFN0YXRlKCl9KSxsLnVwZGF0ZU9yaWdpbmFsSW5wdXQoKSxsLnJlZnJlc2hJdGVtcygpLGwucmVmcmVzaFN0YXRlKCksbC51cGRhdGVQbGFjZWhvbGRlcigpLGwuaXNTZXR1cD0hMCxxLmlzKCI6ZGlzYWJsZWQiKSYmbC5kaXNhYmxlKCksbC5vbigiY2hhbmdlIix0aGlzLm9uQ2hhbmdlKSxxLmRhdGEoInNlbGVjdGl6ZSIsbCkscS5hZGRDbGFzcygic2VsZWN0aXplZCIpLGwudHJpZ2dlcigiaW5pdGlhbGl6ZSIpLG0ucHJlbG9hZD09PSEwJiZsLm9uU2VhcmNoQ2hhbmdlKCIiKX0sc2V0dXBUZW1wbGF0ZXM6ZnVuY3Rpb24oKXt2YXIgYj10aGlzLGM9Yi5zZXR0aW5ncy5sYWJlbEZpZWxkLGQ9Yi5zZXR0aW5ncy5vcHRncm91cExhYmVsRmllbGQsZT17b3B0Z3JvdXA6ZnVuY3Rpb24oYSl7cmV0dXJuJzxkaXYgY2xhc3M9Im9wdGdyb3VwIj4nK2EuaHRtbCsiPC9kaXY+In0sb3B0Z3JvdXBfaGVhZGVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuJzxkaXYgY2xhc3M9Im9wdGdyb3VwLWhlYWRlciI+JytiKGFbZF0pKyI8L2Rpdj4ifSxvcHRpb246ZnVuY3Rpb24oYSxiKXtyZXR1cm4nPGRpdiBjbGFzcz0ib3B0aW9uIj4nK2IoYVtjXSkrIjwvZGl2PiJ9LGl0ZW06ZnVuY3Rpb24oYSxiKXtyZXR1cm4nPGRpdiBjbGFzcz0iaXRlbSI+JytiKGFbY10pKyI8L2Rpdj4ifSxvcHRpb25fY3JlYXRlOmZ1bmN0aW9uKGEsYil7cmV0dXJuJzxkaXYgY2xhc3M9ImNyZWF0ZSI+QWRkIDxzdHJvbmc+JytiKGEuaW5wdXQpKyI8L3N0cm9uZz4maGVsbGlwOzwvZGl2PiJ9fTtiLnNldHRpbmdzLnJlbmRlcj1hLmV4dGVuZCh7fSxlLGIuc2V0dGluZ3MucmVuZGVyKX0sc2V0dXBDYWxsYmFja3M6ZnVuY3Rpb24oKXt2YXIgYSxiLGM9e2luaXRpYWxpemU6Im9uSW5pdGlhbGl6ZSIsY2hhbmdlOiJvbkNoYW5nZSIsaXRlbV9hZGQ6Im9uSXRlbUFkZCIsaXRlbV9yZW1vdmU6Im9uSXRlbVJlbW92ZSIsY2xlYXI6Im9uQ2xlYXIiLG9wdGlvbl9hZGQ6Im9uT3B0aW9uQWRkIixvcHRpb25fcmVtb3ZlOiJvbk9wdGlvblJlbW92ZSIsb3B0aW9uX2NsZWFyOiJvbk9wdGlvbkNsZWFyIixvcHRncm91cF9hZGQ6Im9uT3B0aW9uR3JvdXBBZGQiLG9wdGdyb3VwX3JlbW92ZToib25PcHRpb25Hcm91cFJlbW92ZSIsb3B0Z3JvdXBfY2xlYXI6Im9uT3B0aW9uR3JvdXBDbGVhciIsZHJvcGRvd25fb3Blbjoib25Ecm9wZG93bk9wZW4iLGRyb3Bkb3duX2Nsb3NlOiJvbkRyb3Bkb3duQ2xvc2UiLHR5cGU6Im9uVHlwZSIsbG9hZDoib25Mb2FkIixmb2N1czoib25Gb2N1cyIsYmx1cjoib25CbHVyIn07Zm9yKGEgaW4gYyljLmhhc093blByb3BlcnR5KGEpJiYoYj10aGlzLnNldHRpbmdzW2NbYV1dLGImJnRoaXMub24oYSxiKSl9LG9uQ2xpY2s6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcztiLmlzRm9jdXNlZHx8KGIuZm9jdXMoKSxhLnByZXZlbnREZWZhdWx0KCkpfSxvbk1vdXNlRG93bjpmdW5jdGlvbihiKXt7dmFyIGM9dGhpcyxkPWIuaXNEZWZhdWx0UHJldmVudGVkKCk7YShiLnRhcmdldCl9aWYoYy5pc0ZvY3VzZWQpe2lmKGIudGFyZ2V0IT09Yy4kY29udHJvbF9pbnB1dFswXSlyZXR1cm4ic2luZ2xlIj09PWMuc2V0dGluZ3MubW9kZT9jLmlzT3Blbj9jLmNsb3NlKCk6Yy5vcGVuKCk6ZHx8Yy5zZXRBY3RpdmVJdGVtKG51bGwpLCExfWVsc2UgZHx8d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmZvY3VzKCl9LDApfSxvbkNoYW5nZTpmdW5jdGlvbigpe3RoaXMuJGlucHV0LnRyaWdnZXIoImNoYW5nZSIpfSxvblBhc3RlOmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7Yy5pc0Z1bGwoKXx8Yy5pc0lucHV0SGlkZGVufHxjLmlzTG9ja2VkP2IucHJldmVudERlZmF1bHQoKTpjLnNldHRpbmdzLnNwbGl0T24mJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtmb3IodmFyIGI9YS50cmltKGMuJGNvbnRyb2xfaW5wdXQudmFsKCl8fCIiKS5zcGxpdChjLnNldHRpbmdzLnNwbGl0T24pLGQ9MCxlPWIubGVuZ3RoO2U+ZDtkKyspYy5jcmVhdGVJdGVtKGJbZF0pfSwwKX0sb25LZXlQcmVzczpmdW5jdGlvbihhKXtpZih0aGlzLmlzTG9ja2VkKXJldHVybiBhJiZhLnByZXZlbnREZWZhdWx0KCk7dmFyIGI9U3RyaW5nLmZyb21DaGFyQ29kZShhLmtleUNvZGV8fGEud2hpY2gpO3JldHVybiB0aGlzLnNldHRpbmdzLmNyZWF0ZSYmIm11bHRpIj09PXRoaXMuc2V0dGluZ3MubW9kZSYmYj09PXRoaXMuc2V0dGluZ3MuZGVsaW1pdGVyPyh0aGlzLmNyZWF0ZUl0ZW0oKSxhLnByZXZlbnREZWZhdWx0KCksITEpOnZvaWQgMH0sb25LZXlEb3duOmZ1bmN0aW9uKGEpe3ZhciBiPShhLnRhcmdldD09PXRoaXMuJGNvbnRyb2xfaW5wdXRbMF0sdGhpcyk7aWYoYi5pc0xvY2tlZClyZXR1cm4gdm9pZChhLmtleUNvZGUhPT11JiZhLnByZXZlbnREZWZhdWx0KCkpO3N3aXRjaChhLmtleUNvZGUpe2Nhc2UgZzppZihiLmlzQ21kRG93bilyZXR1cm4gdm9pZCBiLnNlbGVjdEFsbCgpO2JyZWFrO2Nhc2UgaTpyZXR1cm4gdm9pZChiLmlzT3BlbiYmKGEucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpLGIuY2xvc2UoKSkpO2Nhc2UgbzppZighYS5jdHJsS2V5fHxhLmFsdEtleSlicmVhaztjYXNlIG46aWYoIWIuaXNPcGVuJiZiLmhhc09wdGlvbnMpYi5vcGVuKCk7ZWxzZSBpZihiLiRhY3RpdmVPcHRpb24pe2IuaWdub3JlSG92ZXI9ITA7dmFyIGM9Yi5nZXRBZGphY2VudE9wdGlvbihiLiRhY3RpdmVPcHRpb24sMSk7Yy5sZW5ndGgmJmIuc2V0QWN0aXZlT3B0aW9uKGMsITAsITApfXJldHVybiB2b2lkIGEucHJldmVudERlZmF1bHQoKTtjYXNlIGw6aWYoIWEuY3RybEtleXx8YS5hbHRLZXkpYnJlYWs7Y2FzZSBrOmlmKGIuJGFjdGl2ZU9wdGlvbil7Yi5pZ25vcmVIb3Zlcj0hMDt2YXIgZD1iLmdldEFkamFjZW50T3B0aW9uKGIuJGFjdGl2ZU9wdGlvbiwtMSk7ZC5sZW5ndGgmJmIuc2V0QWN0aXZlT3B0aW9uKGQsITAsITApfXJldHVybiB2b2lkIGEucHJldmVudERlZmF1bHQoKTtjYXNlIGg6cmV0dXJuIHZvaWQoYi5pc09wZW4mJmIuJGFjdGl2ZU9wdGlvbiYmKGIub25PcHRpb25TZWxlY3Qoe2N1cnJlbnRUYXJnZXQ6Yi4kYWN0aXZlT3B0aW9ufSksYS5wcmV2ZW50RGVmYXVsdCgpKSk7Y2FzZSBqOnJldHVybiB2b2lkIGIuYWR2YW5jZVNlbGVjdGlvbigtMSxhKTtjYXNlIG06cmV0dXJuIHZvaWQgYi5hZHZhbmNlU2VsZWN0aW9uKDEsYSk7Y2FzZSB1OnJldHVybiBiLnNldHRpbmdzLnNlbGVjdE9uVGFiJiZiLmlzT3BlbiYmYi4kYWN0aXZlT3B0aW9uJiYoYi5vbk9wdGlvblNlbGVjdCh7Y3VycmVudFRhcmdldDpiLiRhY3RpdmVPcHRpb259KSxiLmlzRnVsbCgpfHxhLnByZXZlbnREZWZhdWx0KCkpLHZvaWQoYi5zZXR0aW5ncy5jcmVhdGUmJmIuY3JlYXRlSXRlbSgpJiZhLnByZXZlbnREZWZhdWx0KCkpO2Nhc2UgcDpjYXNlIHE6cmV0dXJuIHZvaWQgYi5kZWxldGVTZWxlY3Rpb24oYSl9cmV0dXJuIWIuaXNGdWxsKCkmJiFiLmlzSW5wdXRIaWRkZW58fChmP2EubWV0YUtleTphLmN0cmxLZXkpP3ZvaWQgMDp2b2lkIGEucHJldmVudERlZmF1bHQoKX0sb25LZXlVcDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKGIuaXNMb2NrZWQpcmV0dXJuIGEmJmEucHJldmVudERlZmF1bHQoKTt2YXIgYz1iLiRjb250cm9sX2lucHV0LnZhbCgpfHwiIjtiLmxhc3RWYWx1ZSE9PWMmJihiLmxhc3RWYWx1ZT1jLGIub25TZWFyY2hDaGFuZ2UoYyksYi5yZWZyZXNoT3B0aW9ucygpLGIudHJpZ2dlcigidHlwZSIsYykpfSxvblNlYXJjaENoYW5nZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9Yi5zZXR0aW5ncy5sb2FkO2MmJihiLmxvYWRlZFNlYXJjaGVzLmhhc093blByb3BlcnR5KGEpfHwoYi5sb2FkZWRTZWFyY2hlc1thXT0hMCxiLmxvYWQoZnVuY3Rpb24oZCl7Yy5hcHBseShiLFthLGRdKX0pKSl9LG9uRm9jdXM6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWIuaXNGb2N1c2VkO3JldHVybiBiLmlzRGlzYWJsZWQ/KGIuYmx1cigpLGEmJmEucHJldmVudERlZmF1bHQoKSwhMSk6dm9pZChiLmlnbm9yZUZvY3VzfHwoYi5pc0ZvY3VzZWQ9ITAsImZvY3VzIj09PWIuc2V0dGluZ3MucHJlbG9hZCYmYi5vblNlYXJjaENoYW5nZSgiIiksY3x8Yi50cmlnZ2VyKCJmb2N1cyIpLGIuJGFjdGl2ZUl0ZW1zLmxlbmd0aHx8KGIuc2hvd0lucHV0KCksYi5zZXRBY3RpdmVJdGVtKG51bGwpLGIucmVmcmVzaE9wdGlvbnMoISFiLnNldHRpbmdzLm9wZW5PbkZvY3VzKSksYi5yZWZyZXNoU3RhdGUoKSkpfSxvbkJsdXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzO2lmKGMuaXNGb2N1c2VkJiYoYy5pc0ZvY3VzZWQ9ITEsIWMuaWdub3JlRm9jdXMpKXtpZighYy5pZ25vcmVCbHVyJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09Yy4kZHJvcGRvd25fY29udGVudFswXSlyZXR1cm4gYy5pZ25vcmVCbHVyPSEwLHZvaWQgYy5vbkZvY3VzKGEpO3ZhciBkPWZ1bmN0aW9uKCl7Yy5jbG9zZSgpLGMuc2V0VGV4dGJveFZhbHVlKCIiKSxjLnNldEFjdGl2ZUl0ZW0obnVsbCksYy5zZXRBY3RpdmVPcHRpb24obnVsbCksYy5zZXRDYXJldChjLml0ZW1zLmxlbmd0aCksYy5yZWZyZXNoU3RhdGUoKSwoYnx8ZG9jdW1lbnQuYm9keSkuZm9jdXMoKSxjLmlnbm9yZUZvY3VzPSExLGMudHJpZ2dlcigiYmx1ciIpfTtjLmlnbm9yZUZvY3VzPSEwLGMuc2V0dGluZ3MuY3JlYXRlJiZjLnNldHRpbmdzLmNyZWF0ZU9uQmx1cj9jLmNyZWF0ZUl0ZW0obnVsbCwhMSxkKTpkKCl9fSxvbk9wdGlvbkhvdmVyOmZ1bmN0aW9uKGEpe3RoaXMuaWdub3JlSG92ZXJ8fHRoaXMuc2V0QWN0aXZlT3B0aW9uKGEuY3VycmVudFRhcmdldCwhMSl9LG9uT3B0aW9uU2VsZWN0OmZ1bmN0aW9uKGIpe3ZhciBjLGQsZT10aGlzO2IucHJldmVudERlZmF1bHQmJihiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSksZD1hKGIuY3VycmVudFRhcmdldCksZC5oYXNDbGFzcygiY3JlYXRlIik/ZS5jcmVhdGVJdGVtKG51bGwsZnVuY3Rpb24oKXtlLnNldHRpbmdzLmNsb3NlQWZ0ZXJTZWxlY3QmJmUuY2xvc2UoKX0pOihjPWQuYXR0cigiZGF0YS12YWx1ZSIpLCJ1bmRlZmluZWQiIT10eXBlb2YgYyYmKGUubGFzdFF1ZXJ5PW51bGwsZS5zZXRUZXh0Ym94VmFsdWUoIiIpLGUuYWRkSXRlbShjKSxlLnNldHRpbmdzLmNsb3NlQWZ0ZXJTZWxlY3Q/ZS5jbG9zZSgpOiFlLnNldHRpbmdzLmhpZGVTZWxlY3RlZCYmYi50eXBlJiYvbW91c2UvLnRlc3QoYi50eXBlKSYmZS5zZXRBY3RpdmVPcHRpb24oZS5nZXRPcHRpb24oYykpKSl9LG9uSXRlbVNlbGVjdDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2IuaXNMb2NrZWR8fCJtdWx0aSI9PT1iLnNldHRpbmdzLm1vZGUmJihhLnByZXZlbnREZWZhdWx0KCksYi5zZXRBY3RpdmVJdGVtKGEuY3VycmVudFRhcmdldCxhKSl9LGxvYWQ6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcyxjPWIuJHdyYXBwZXIuYWRkQ2xhc3MoYi5zZXR0aW5ncy5sb2FkaW5nQ2xhc3MpO2IubG9hZGluZysrLGEuYXBwbHkoYixbZnVuY3Rpb24oYSl7Yi5sb2FkaW5nPU1hdGgubWF4KGIubG9hZGluZy0xLDApLGEmJmEubGVuZ3RoJiYoYi5hZGRPcHRpb24oYSksYi5yZWZyZXNoT3B0aW9ucyhiLmlzRm9jdXNlZCYmIWIuaXNJbnB1dEhpZGRlbikpLGIubG9hZGluZ3x8Yy5yZW1vdmVDbGFzcyhiLnNldHRpbmdzLmxvYWRpbmdDbGFzcyksYi50cmlnZ2VyKCJsb2FkIixhKX1dKX0sc2V0VGV4dGJveFZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuJGNvbnRyb2xfaW5wdXQsYz1iLnZhbCgpIT09YTtjJiYoYi52YWwoYSkudHJpZ2dlckhhbmRsZXIoInVwZGF0ZSIpLHRoaXMubGFzdFZhbHVlPWEpfSxnZXRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhZ1R5cGU9PT12JiZ0aGlzLiRpbnB1dC5hdHRyKCJtdWx0aXBsZSIpP3RoaXMuaXRlbXM6dGhpcy5pdGVtcy5qb2luKHRoaXMuc2V0dGluZ3MuZGVsaW1pdGVyKX0sc2V0VmFsdWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iP1tdOlsiY2hhbmdlIl07Rih0aGlzLGMsZnVuY3Rpb24oKXt0aGlzLmNsZWFyKGIpLHRoaXMuYWRkSXRlbXMoYSxiKX0pfSxzZXRBY3RpdmVJdGVtOmZ1bmN0aW9uKGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosayxsPXRoaXM7aWYoInNpbmdsZSIhPT1sLnNldHRpbmdzLm1vZGUpe2lmKGI9YShiKSwhYi5sZW5ndGgpcmV0dXJuIGEobC4kYWN0aXZlSXRlbXMpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxsLiRhY3RpdmVJdGVtcz1bXSx2b2lkKGwuaXNGb2N1c2VkJiZsLnNob3dJbnB1dCgpKTtpZihkPWMmJmMudHlwZS50b0xvd2VyQ2FzZSgpLCJtb3VzZWRvd24iPT09ZCYmbC5pc1NoaWZ0RG93biYmbC4kYWN0aXZlSXRlbXMubGVuZ3RoKXtmb3Ioaz1sLiRjb250cm9sLmNoaWxkcmVuKCIuYWN0aXZlOmxhc3QiKSxnPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmFwcGx5KGwuJGNvbnRyb2xbMF0uY2hpbGROb2Rlcyxba1swXV0pLGg9QXJyYXkucHJvdG90eXBlLmluZGV4T2YuYXBwbHkobC4kY29udHJvbFswXS5jaGlsZE5vZGVzLFtiWzBdXSksZz5oJiYoaj1nLGc9aCxoPWopLGU9ZztoPj1lO2UrKylpPWwuJGNvbnRyb2xbMF0uY2hpbGROb2Rlc1tlXSwtMT09PWwuJGFjdGl2ZUl0ZW1zLmluZGV4T2YoaSkmJihhKGkpLmFkZENsYXNzKCJhY3RpdmUiKSxsLiRhY3RpdmVJdGVtcy5wdXNoKGkpKTtjLnByZXZlbnREZWZhdWx0KCl9ZWxzZSJtb3VzZWRvd24iPT09ZCYmbC5pc0N0cmxEb3dufHwia2V5ZG93biI9PT1kJiZ0aGlzLmlzU2hpZnREb3duP2IuaGFzQ2xhc3MoImFjdGl2ZSIpPyhmPWwuJGFjdGl2ZUl0ZW1zLmluZGV4T2YoYlswXSksbC4kYWN0aXZlSXRlbXMuc3BsaWNlKGYsMSksYi5yZW1vdmVDbGFzcygiYWN0aXZlIikpOmwuJGFjdGl2ZUl0ZW1zLnB1c2goYi5hZGRDbGFzcygiYWN0aXZlIilbMF0pOihhKGwuJGFjdGl2ZUl0ZW1zKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksbC4kYWN0aXZlSXRlbXM9W2IuYWRkQ2xhc3MoImFjdGl2ZSIpWzBdXSk7bC5oaWRlSW5wdXQoKSx0aGlzLmlzRm9jdXNlZHx8bC5mb2N1cygpfX0sc2V0QWN0aXZlT3B0aW9uOmZ1bmN0aW9uKGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo9dGhpcztqLiRhY3RpdmVPcHRpb24mJmouJGFjdGl2ZU9wdGlvbi5yZW1vdmVDbGFzcygiYWN0aXZlIiksai4kYWN0aXZlT3B0aW9uPW51bGwsYj1hKGIpLGIubGVuZ3RoJiYoai4kYWN0aXZlT3B0aW9uPWIuYWRkQ2xhc3MoImFjdGl2ZSIpLChjfHwheShjKSkmJihlPWouJGRyb3Bkb3duX2NvbnRlbnQuaGVpZ2h0KCksZj1qLiRhY3RpdmVPcHRpb24ub3V0ZXJIZWlnaHQoITApLGM9ai4kZHJvcGRvd25fY29udGVudC5zY3JvbGxUb3AoKXx8MCxnPWouJGFjdGl2ZU9wdGlvbi5vZmZzZXQoKS50b3Atai4kZHJvcGRvd25fY29udGVudC5vZmZzZXQoKS50b3ArYyxoPWcsaT1nLWUrZixnK2Y+ZStjP2ouJGRyb3Bkb3duX2NvbnRlbnQuc3RvcCgpLmFuaW1hdGUoe3Njcm9sbFRvcDppfSxkP2ouc2V0dGluZ3Muc2Nyb2xsRHVyYXRpb246MCk6Yz5nJiZqLiRkcm9wZG93bl9jb250ZW50LnN0b3AoKS5hbmltYXRlKHtzY3JvbGxUb3A6aH0sZD9qLnNldHRpbmdzLnNjcm9sbER1cmF0aW9uOjApKSl9LHNlbGVjdEFsbDpmdW5jdGlvbigpe3ZhciBhPXRoaXM7InNpbmdsZSIhPT1hLnNldHRpbmdzLm1vZGUmJihhLiRhY3RpdmVJdGVtcz1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYS4kY29udHJvbC5jaGlsZHJlbigiOm5vdChpbnB1dCkiKS5hZGRDbGFzcygiYWN0aXZlIikpLGEuJGFjdGl2ZUl0ZW1zLmxlbmd0aCYmKGEuaGlkZUlucHV0KCksYS5jbG9zZSgpKSxhLmZvY3VzKCkpfSxoaWRlSW5wdXQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2Euc2V0VGV4dGJveFZhbHVlKCIiKSxhLiRjb250cm9sX2lucHV0LmNzcyh7b3BhY2l0eTowLHBvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDphLnJ0bD8xZTQ6LTFlNH0pLGEuaXNJbnB1dEhpZGRlbj0hMH0sc2hvd0lucHV0OmZ1bmN0aW9uKCl7dGhpcy4kY29udHJvbF9pbnB1dC5jc3Moe29wYWNpdHk6MSxwb3NpdGlvbjoicmVsYXRpdmUiLGxlZnQ6MH0pLHRoaXMuaXNJbnB1dEhpZGRlbj0hMX0sZm9jdXM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EuaXNEaXNhYmxlZHx8KGEuaWdub3JlRm9jdXM9ITAsYS4kY29udHJvbF9pbnB1dFswXS5mb2N1cygpLHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5pZ25vcmVGb2N1cz0hMSxhLm9uRm9jdXMoKX0sMCkpfSxibHVyOmZ1bmN0aW9uKGEpe3RoaXMuJGNvbnRyb2xfaW5wdXRbMF0uYmx1cigpLHRoaXMub25CbHVyKG51bGwsYSl9LGdldFNjb3JlRnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuc2lmdGVyLmdldFNjb3JlRnVuY3Rpb24oYSx0aGlzLmdldFNlYXJjaE9wdGlvbnMoKSl9LGdldFNlYXJjaE9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnNldHRpbmdzLGI9YS5zb3J0RmllbGQ7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoYj1be2ZpZWxkOmJ9XSkse2ZpZWxkczphLnNlYXJjaEZpZWxkLGNvbmp1bmN0aW9uOmEuc2VhcmNoQ29uanVuY3Rpb24sc29ydDpifX0sc2VhcmNoOmZ1bmN0aW9uKGIpe3ZhciBjLGQsZSxmPXRoaXMsZz1mLnNldHRpbmdzLGg9dGhpcy5nZXRTZWFyY2hPcHRpb25zKCk7aWYoZy5zY29yZSYmKGU9Zi5zZXR0aW5ncy5zY29yZS5hcHBseSh0aGlzLFtiXSksImZ1bmN0aW9uIiE9dHlwZW9mIGUpKXRocm93IG5ldyBFcnJvcignU2VsZWN0aXplICJzY29yZSIgc2V0dGluZyBtdXN0IGJlIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgZnVuY3Rpb24nKTtpZihiIT09Zi5sYXN0UXVlcnk/KGYubGFzdFF1ZXJ5PWIsZD1mLnNpZnRlci5zZWFyY2goYixhLmV4dGVuZChoLHtzY29yZTplfSkpLGYuY3VycmVudFJlc3VsdHM9ZCk6ZD1hLmV4dGVuZCghMCx7fSxmLmN1cnJlbnRSZXN1bHRzKSxnLmhpZGVTZWxlY3RlZClmb3IoYz1kLml0ZW1zLmxlbmd0aC0xO2M+PTA7Yy0tKS0xIT09Zi5pdGVtcy5pbmRleE9mKHooZC5pdGVtc1tjXS5pZCkpJiZkLml0ZW1zLnNwbGljZShjLDEpO3JldHVybiBkfSxyZWZyZXNoT3B0aW9uczpmdW5jdGlvbihiKXt2YXIgYyxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIsczsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSEwKTt2YXIgdD10aGlzLHU9YS50cmltKHQuJGNvbnRyb2xfaW5wdXQudmFsKCkpLHY9dC5zZWFyY2godSksdz10LiRkcm9wZG93bl9jb250ZW50LHg9dC4kYWN0aXZlT3B0aW9uJiZ6KHQuJGFjdGl2ZU9wdGlvbi5hdHRyKCJkYXRhLXZhbHVlIikpO2ZvcihnPXYuaXRlbXMubGVuZ3RoLCJudW1iZXIiPT10eXBlb2YgdC5zZXR0aW5ncy5tYXhPcHRpb25zJiYoZz1NYXRoLm1pbihnLHQuc2V0dGluZ3MubWF4T3B0aW9ucykpLGg9e30saT1bXSxjPTA7Zz5jO2MrKylmb3Ioaj10Lm9wdGlvbnNbdi5pdGVtc1tjXS5pZF0saz10LnJlbmRlcigib3B0aW9uIixqKSxsPWpbdC5zZXR0aW5ncy5vcHRncm91cEZpZWxkXXx8IiIsbT1hLmlzQXJyYXkobCk/bDpbbF0sZT0wLGY9bSYmbS5sZW5ndGg7Zj5lO2UrKylsPW1bZV0sdC5vcHRncm91cHMuaGFzT3duUHJvcGVydHkobCl8fChsPSIiKSxoLmhhc093blByb3BlcnR5KGwpfHwoaFtsXT1bXSxpLnB1c2gobCkpLGhbbF0ucHVzaChrKTtmb3IodGhpcy5zZXR0aW5ncy5sb2NrT3B0Z3JvdXBPcmRlciYmaS5zb3J0KGZ1bmN0aW9uKGEsYil7dmFyIGM9dC5vcHRncm91cHNbYV0uJG9yZGVyfHwwLGQ9dC5vcHRncm91cHNbYl0uJG9yZGVyfHwwO3JldHVybiBjLWR9KSxuPVtdLGM9MCxnPWkubGVuZ3RoO2c+YztjKyspbD1pW2NdLHQub3B0Z3JvdXBzLmhhc093blByb3BlcnR5KGwpJiZoW2xdLmxlbmd0aD8obz10LnJlbmRlcigib3B0Z3JvdXBfaGVhZGVyIix0Lm9wdGdyb3Vwc1tsXSl8fCIiLG8rPWhbbF0uam9pbigiIiksbi5wdXNoKHQucmVuZGVyKCJvcHRncm91cCIsYS5leHRlbmQoe30sdC5vcHRncm91cHNbbF0se2h0bWw6b30pKSkpOm4ucHVzaChoW2xdLmpvaW4oIiIpKTtpZih3Lmh0bWwobi5qb2luKCIiKSksdC5zZXR0aW5ncy5oaWdobGlnaHQmJnYucXVlcnkubGVuZ3RoJiZ2LnRva2Vucy5sZW5ndGgpZm9yKGM9MCxnPXYudG9rZW5zLmxlbmd0aDtnPmM7YysrKWQodyx2LnRva2Vuc1tjXS5yZWdleCk7aWYoIXQuc2V0dGluZ3MuaGlkZVNlbGVjdGVkKWZvcihjPTAsZz10Lml0ZW1zLmxlbmd0aDtnPmM7YysrKXQuZ2V0T3B0aW9uKHQuaXRlbXNbY10pLmFkZENsYXNzKCJzZWxlY3RlZCIpO3A9dC5jYW5DcmVhdGUodSkscCYmKHcucHJlcGVuZCh0LnJlbmRlcigib3B0aW9uX2NyZWF0ZSIse2lucHV0OnV9KSkscz1hKHdbMF0uY2hpbGROb2Rlc1swXSkpLHQuaGFzT3B0aW9ucz12Lml0ZW1zLmxlbmd0aD4wfHxwLHQuaGFzT3B0aW9ucz8odi5pdGVtcy5sZW5ndGg+MD8ocj14JiZ0LmdldE9wdGlvbih4KSxyJiZyLmxlbmd0aD9xPXI6InNpbmdsZSI9PT10LnNldHRpbmdzLm1vZGUmJnQuaXRlbXMubGVuZ3RoJiYocT10LmdldE9wdGlvbih0Lml0ZW1zWzBdKSkscSYmcS5sZW5ndGh8fChxPXMmJiF0LnNldHRpbmdzLmFkZFByZWNlZGVuY2U/dC5nZXRBZGphY2VudE9wdGlvbihzLDEpOncuZmluZCgiW2RhdGEtc2VsZWN0YWJsZV06Zmlyc3QiKSkpOnE9cyx0LnNldEFjdGl2ZU9wdGlvbihxKSxiJiYhdC5pc09wZW4mJnQub3BlbigpKToodC5zZXRBY3RpdmVPcHRpb24obnVsbCksYiYmdC5pc09wZW4mJnQuY2xvc2UoKSl9LGFkZE9wdGlvbjpmdW5jdGlvbihiKXt2YXIgYyxkLGUsZj10aGlzO2lmKGEuaXNBcnJheShiKSlmb3IoYz0wLGQ9Yi5sZW5ndGg7ZD5jO2MrKylmLmFkZE9wdGlvbihiW2NdKTtlbHNlKGU9Zi5yZWdpc3Rlck9wdGlvbihiKSkmJihmLnVzZXJPcHRpb25zW2VdPSEwLGYubGFzdFF1ZXJ5PW51bGwsZi50cmlnZ2VyKCJvcHRpb25fYWRkIixlLGIpKX0scmVnaXN0ZXJPcHRpb246ZnVuY3Rpb24oYSl7dmFyIGI9eihhW3RoaXMuc2V0dGluZ3MudmFsdWVGaWVsZF0pO3JldHVybiFifHx0aGlzLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoYik/ITE6KGEuJG9yZGVyPWEuJG9yZGVyfHwrK3RoaXMub3JkZXIsdGhpcy5vcHRpb25zW2JdPWEsYil9LHJlZ2lzdGVyT3B0aW9uR3JvdXA6ZnVuY3Rpb24oYSl7dmFyIGI9eihhW3RoaXMuc2V0dGluZ3Mub3B0Z3JvdXBWYWx1ZUZpZWxkXSk7cmV0dXJuIGI/KGEuJG9yZGVyPWEuJG9yZGVyfHwrK3RoaXMub3JkZXIsdGhpcy5vcHRncm91cHNbYl09YSxiKTohMX0sYWRkT3B0aW9uR3JvdXA6ZnVuY3Rpb24oYSxiKXtiW3RoaXMuc2V0dGluZ3Mub3B0Z3JvdXBWYWx1ZUZpZWxkXT1hLChhPXRoaXMucmVnaXN0ZXJPcHRpb25Hcm91cChiKSkmJnRoaXMudHJpZ2dlcigib3B0Z3JvdXBfYWRkIixhLGIpfSxyZW1vdmVPcHRpb25Hcm91cDpmdW5jdGlvbihhKXt0aGlzLm9wdGdyb3Vwcy5oYXNPd25Qcm9wZXJ0eShhKSYmKGRlbGV0ZSB0aGlzLm9wdGdyb3Vwc1thXSx0aGlzLnJlbmRlckNhY2hlPXt9LHRoaXMudHJpZ2dlcigib3B0Z3JvdXBfcmVtb3ZlIixhKSl9LGNsZWFyT3B0aW9uR3JvdXBzOmZ1bmN0aW9uKCl7dGhpcy5vcHRncm91cHM9e30sdGhpcy5yZW5kZXJDYWNoZT17fSx0aGlzLnRyaWdnZXIoIm9wdGdyb3VwX2NsZWFyIil9LHVwZGF0ZU9wdGlvbjpmdW5jdGlvbihiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGs9dGhpcztpZihiPXooYiksZj16KGNbay5zZXR0aW5ncy52YWx1ZUZpZWxkXSksbnVsbCE9PWImJmsub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShiKSl7aWYoInN0cmluZyIhPXR5cGVvZiBmKXRocm93IG5ldyBFcnJvcigiVmFsdWUgbXVzdCBiZSBzZXQgaW4gb3B0aW9uIGRhdGEiKTtqPWsub3B0aW9uc1tiXS4kb3JkZXIsZiE9PWImJihkZWxldGUgay5vcHRpb25zW2JdLGc9ay5pdGVtcy5pbmRleE9mKGIpLC0xIT09ZyYmay5pdGVtcy5zcGxpY2UoZywxLGYpKSxjLiRvcmRlcj1jLiRvcmRlcnx8aixrLm9wdGlvbnNbZl09YyxoPWsucmVuZGVyQ2FjaGUuaXRlbSxpPWsucmVuZGVyQ2FjaGUub3B0aW9uLGgmJihkZWxldGUgaFtiXSxkZWxldGUgaFtmXSksaSYmKGRlbGV0ZSBpW2JdLGRlbGV0ZSBpW2ZdKSwtMSE9PWsuaXRlbXMuaW5kZXhPZihmKSYmKGQ9ay5nZXRJdGVtKGIpLGU9YShrLnJlbmRlcigiaXRlbSIsYykpLGQuaGFzQ2xhc3MoImFjdGl2ZSIpJiZlLmFkZENsYXNzKCJhY3RpdmUiKSxkLnJlcGxhY2VXaXRoKGUpKSxrLmxhc3RRdWVyeT1udWxsLGsuaXNPcGVuJiZrLnJlZnJlc2hPcHRpb25zKCExKX19LHJlbW92ZU9wdGlvbjpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXM7YT16KGEpO3ZhciBkPWMucmVuZGVyQ2FjaGUuaXRlbSxlPWMucmVuZGVyQ2FjaGUub3B0aW9uO2QmJmRlbGV0ZSBkW2FdLGUmJmRlbGV0ZSBlW2FdLGRlbGV0ZSBjLnVzZXJPcHRpb25zW2FdLGRlbGV0ZSBjLm9wdGlvbnNbYV0sYy5sYXN0UXVlcnk9bnVsbCxjLnRyaWdnZXIoIm9wdGlvbl9yZW1vdmUiLGEpLGMucmVtb3ZlSXRlbShhLGIpfSxjbGVhck9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EubG9hZGVkU2VhcmNoZXM9e30sYS51c2VyT3B0aW9ucz17fSxhLnJlbmRlckNhY2hlPXt9LGEub3B0aW9ucz1hLnNpZnRlci5pdGVtcz17fSxhLmxhc3RRdWVyeT1udWxsLGEudHJpZ2dlcigib3B0aW9uX2NsZWFyIiksYS5jbGVhcigpfSxnZXRPcHRpb246ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0RWxlbWVudFdpdGhWYWx1ZShhLHRoaXMuJGRyb3Bkb3duX2NvbnRlbnQuZmluZCgiW2RhdGEtc2VsZWN0YWJsZV0iKSl9LGdldEFkamFjZW50T3B0aW9uOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9dGhpcy4kZHJvcGRvd24uZmluZCgiW2RhdGEtc2VsZWN0YWJsZV0iKSxlPWQuaW5kZXgoYikrYztyZXR1cm4gZT49MCYmZTxkLmxlbmd0aD9kLmVxKGUpOmEoKX0sZ2V0RWxlbWVudFdpdGhWYWx1ZTpmdW5jdGlvbihiLGMpe2lmKGI9eihiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPT1iKWZvcih2YXIgZD0wLGU9Yy5sZW5ndGg7ZT5kO2QrKylpZihjW2RdLmdldEF0dHJpYnV0ZSgiZGF0YS12YWx1ZSIpPT09YilyZXR1cm4gYShjW2RdKTtyZXR1cm4gYSgpfSxnZXRJdGVtOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmdldEVsZW1lbnRXaXRoVmFsdWUoYSx0aGlzLiRjb250cm9sLmNoaWxkcmVuKCkpfSxhZGRJdGVtczpmdW5jdGlvbihiLGMpe2Zvcih2YXIgZD1hLmlzQXJyYXkoYik/YjpbYl0sZT0wLGY9ZC5sZW5ndGg7Zj5lO2UrKyl0aGlzLmlzUGVuZGluZz1mLTE+ZSx0aGlzLmFkZEl0ZW0oZFtlXSxjKX0sYWRkSXRlbTpmdW5jdGlvbihiLGMpe3ZhciBkPWM/W106WyJjaGFuZ2UiXTtGKHRoaXMsZCxmdW5jdGlvbigpe3ZhciBkLGUsZixnLGgsaT10aGlzLGo9aS5zZXR0aW5ncy5tb2RlO3JldHVybiBiPXooYiksLTEhPT1pLml0ZW1zLmluZGV4T2YoYik/dm9pZCgic2luZ2xlIj09PWomJmkuY2xvc2UoKSk6dm9pZChpLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoYikmJigic2luZ2xlIj09PWomJmkuY2xlYXIoYyksIm11bHRpIj09PWomJmkuaXNGdWxsKCl8fChkPWEoaS5yZW5kZXIoIml0ZW0iLGkub3B0aW9uc1tiXSkpLGg9aS5pc0Z1bGwoKSxpLml0ZW1zLnNwbGljZShpLmNhcmV0UG9zLDAsYiksaS5pbnNlcnRBdENhcmV0KGQpLCghaS5pc1BlbmRpbmd8fCFoJiZpLmlzRnVsbCgpKSYmaS5yZWZyZXNoU3RhdGUoKSxpLmlzU2V0dXAmJihmPWkuJGRyb3Bkb3duX2NvbnRlbnQuZmluZCgiW2RhdGEtc2VsZWN0YWJsZV0iKSxpLmlzUGVuZGluZ3x8KGU9aS5nZXRPcHRpb24oYiksZz1pLmdldEFkamFjZW50T3B0aW9uKGUsMSkuYXR0cigiZGF0YS12YWx1ZSIpLGkucmVmcmVzaE9wdGlvbnMoaS5pc0ZvY3VzZWQmJiJzaW5nbGUiIT09aiksZyYmaS5zZXRBY3RpdmVPcHRpb24oaS5nZXRPcHRpb24oZykpKSwhZi5sZW5ndGh8fGkuaXNGdWxsKCk/aS5jbG9zZSgpOmkucG9zaXRpb25Ecm9wZG93bigpLGkudXBkYXRlUGxhY2Vob2xkZXIoKSxpLnRyaWdnZXIoIml0ZW1fYWRkIixiLGQpLGkudXBkYXRlT3JpZ2luYWxJbnB1dCh7c2lsZW50OmN9KSkpKSl9KX0scmVtb3ZlSXRlbTpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmPXRoaXM7Yz0ib2JqZWN0Ij09dHlwZW9mIGE/YTpmLmdldEl0ZW0oYSksYT16KGMuYXR0cigiZGF0YS12YWx1ZSIpKSxkPWYuaXRlbXMuaW5kZXhPZihhKSwtMSE9PWQmJihjLnJlbW92ZSgpLGMuaGFzQ2xhc3MoImFjdGl2ZSIpJiYoZT1mLiRhY3RpdmVJdGVtcy5pbmRleE9mKGNbMF0pLGYuJGFjdGl2ZUl0ZW1zLnNwbGljZShlLDEpKSxmLml0ZW1zLnNwbGljZShkLDEpLGYubGFzdFF1ZXJ5PW51bGwsIWYuc2V0dGluZ3MucGVyc2lzdCYmZi51c2VyT3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShhKSYmZi5yZW1vdmVPcHRpb24oYSxiKSxkPGYuY2FyZXRQb3MmJmYuc2V0Q2FyZXQoZi5jYXJldFBvcy0xKSxmLnJlZnJlc2hTdGF0ZSgpLGYudXBkYXRlUGxhY2Vob2xkZXIoKSxmLnVwZGF0ZU9yaWdpbmFsSW5wdXQoe3NpbGVudDpifSksZi5wb3NpdGlvbkRyb3Bkb3duKCksZi50cmlnZ2VyKCJpdGVtX3JlbW92ZSIsYSxjKSl9LGNyZWF0ZUl0ZW06ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzLGU9ZC5jYXJldFBvcztiPWJ8fGEudHJpbShkLiRjb250cm9sX2lucHV0LnZhbCgpfHwiIik7dmFyIGY9YXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGYmJihmPWZ1bmN0aW9uKCl7fSksImJvb2xlYW4iIT10eXBlb2YgYyYmKGM9ITApLCFkLmNhbkNyZWF0ZShiKSlyZXR1cm4gZigpLCExO2QubG9jaygpO3ZhciBnPSJmdW5jdGlvbiI9PXR5cGVvZiBkLnNldHRpbmdzLmNyZWF0ZT90aGlzLnNldHRpbmdzLmNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj17fTtyZXR1cm4gYltkLnNldHRpbmdzLmxhYmVsRmllbGRdPWEsYltkLnNldHRpbmdzLnZhbHVlRmllbGRdPWEsYn0saD1EKGZ1bmN0aW9uKGEpe2lmKGQudW5sb2NrKCksIWF8fCJvYmplY3QiIT10eXBlb2YgYSlyZXR1cm4gZigpO3ZhciBiPXooYVtkLnNldHRpbmdzLnZhbHVlRmllbGRdKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGI/ZigpOihkLnNldFRleHRib3hWYWx1ZSgiIiksZC5hZGRPcHRpb24oYSksZC5zZXRDYXJldChlKSxkLmFkZEl0ZW0oYiksZC5yZWZyZXNoT3B0aW9ucyhjJiYic2luZ2xlIiE9PWQuc2V0dGluZ3MubW9kZSksdm9pZCBmKGEpKX0pLGk9Zy5hcHBseSh0aGlzLFtiLGhdKTtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGkmJmgoaSksITB9LHJlZnJlc2hJdGVtczpmdW5jdGlvbigpe3RoaXMubGFzdFF1ZXJ5PW51bGwsdGhpcy5pc1NldHVwJiZ0aGlzLmFkZEl0ZW0odGhpcy5pdGVtcyksdGhpcy5yZWZyZXNoU3RhdGUoKSx0aGlzLnVwZGF0ZU9yaWdpbmFsSW5wdXQoKX0scmVmcmVzaFN0YXRlOmZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzO2IuaXNSZXF1aXJlZCYmKGIuaXRlbXMubGVuZ3RoJiYoYi5pc0ludmFsaWQ9ITEpLGIuJGNvbnRyb2xfaW5wdXQucHJvcCgicmVxdWlyZWQiLGEpKSxiLnJlZnJlc2hDbGFzc2VzKCl9LHJlZnJlc2hDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPWIuaXNGdWxsKCksZD1iLmlzTG9ja2VkO2IuJHdyYXBwZXIudG9nZ2xlQ2xhc3MoInJ0bCIsYi5ydGwpLGIuJGNvbnRyb2wudG9nZ2xlQ2xhc3MoImZvY3VzIixiLmlzRm9jdXNlZCkudG9nZ2xlQ2xhc3MoImRpc2FibGVkIixiLmlzRGlzYWJsZWQpLnRvZ2dsZUNsYXNzKCJyZXF1aXJlZCIsYi5pc1JlcXVpcmVkKS50b2dnbGVDbGFzcygiaW52YWxpZCIsYi5pc0ludmFsaWQpLnRvZ2dsZUNsYXNzKCJsb2NrZWQiLGQpLnRvZ2dsZUNsYXNzKCJmdWxsIixjKS50b2dnbGVDbGFzcygibm90LWZ1bGwiLCFjKS50b2dnbGVDbGFzcygiaW5wdXQtYWN0aXZlIixiLmlzRm9jdXNlZCYmIWIuaXNJbnB1dEhpZGRlbikudG9nZ2xlQ2xhc3MoImRyb3Bkb3duLWFjdGl2ZSIsYi5pc09wZW4pLnRvZ2dsZUNsYXNzKCJoYXMtb3B0aW9ucyIsIWEuaXNFbXB0eU9iamVjdChiLm9wdGlvbnMpKS50b2dnbGVDbGFzcygiaGFzLWl0ZW1zIixiLml0ZW1zLmxlbmd0aD4wKSxiLiRjb250cm9sX2lucHV0LmRhdGEoImdyb3ciLCFjJiYhZCl9LGlzRnVsbDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5zZXR0aW5ncy5tYXhJdGVtcyYmdGhpcy5pdGVtcy5sZW5ndGg+PXRoaXMuc2V0dGluZ3MubWF4SXRlbXN9LHVwZGF0ZU9yaWdpbmFsSW5wdXQ6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGUsZj10aGlzO2lmKGE9YXx8e30sZi50YWdUeXBlPT09dil7Zm9yKGQ9W10sYj0wLGM9Zi5pdGVtcy5sZW5ndGg7Yz5iO2IrKyllPWYub3B0aW9uc1tmLml0ZW1zW2JdXVtmLnNldHRpbmdzLmxhYmVsRmllbGRdfHwiIixkLnB1c2goJzxvcHRpb24gdmFsdWU9IicrQShmLml0ZW1zW2JdKSsnIiBzZWxlY3RlZD0ic2VsZWN0ZWQiPicrQShlKSsiPC9vcHRpb24+Iik7ZC5sZW5ndGh8fHRoaXMuJGlucHV0LmF0dHIoIm11bHRpcGxlIil8fGQucHVzaCgnPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD0ic2VsZWN0ZWQiPjwvb3B0aW9uPicpLGYuJGlucHV0Lmh0bWwoZC5qb2luKCIiKSl9ZWxzZSBmLiRpbnB1dC52YWwoZi5nZXRWYWx1ZSgpKSxmLiRpbnB1dC5hdHRyKCJ2YWx1ZSIsZi4kaW5wdXQudmFsKCkpO2YuaXNTZXR1cCYmKGEuc2lsZW50fHxmLnRyaWdnZXIoImNoYW5nZSIsZi4kaW5wdXQudmFsKCkpKX0sdXBkYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oKXtpZih0aGlzLnNldHRpbmdzLnBsYWNlaG9sZGVyKXt2YXIgYT10aGlzLiRjb250cm9sX2lucHV0O3RoaXMuaXRlbXMubGVuZ3RoP2EucmVtb3ZlQXR0cigicGxhY2Vob2xkZXIiKTphLmF0dHIoInBsYWNlaG9sZGVyIix0aGlzLnNldHRpbmdzLnBsYWNlaG9sZGVyKSxhLnRyaWdnZXJIYW5kbGVyKCJ1cGRhdGUiLHtmb3JjZTohMH0pfX0sb3BlbjpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS5pc0xvY2tlZHx8YS5pc09wZW58fCJtdWx0aSI9PT1hLnNldHRpbmdzLm1vZGUmJmEuaXNGdWxsKCl8fChhLmZvY3VzKCksYS5pc09wZW49ITAsYS5yZWZyZXNoU3RhdGUoKSxhLiRkcm9wZG93bi5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSksYS5wb3NpdGlvbkRyb3Bkb3duKCksYS4kZHJvcGRvd24uY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGEudHJpZ2dlcigiZHJvcGRvd25fb3BlbiIsYS4kZHJvcGRvd24pKX0sY2xvc2U6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5pc09wZW47InNpbmdsZSI9PT1hLnNldHRpbmdzLm1vZGUmJmEuaXRlbXMubGVuZ3RoJiZhLmhpZGVJbnB1dCgpLGEuaXNPcGVuPSExLGEuJGRyb3Bkb3duLmhpZGUoKSxhLnNldEFjdGl2ZU9wdGlvbihudWxsKSxhLnJlZnJlc2hTdGF0ZSgpLGImJmEudHJpZ2dlcigiZHJvcGRvd25fY2xvc2UiLGEuJGRyb3Bkb3duKX0scG9zaXRpb25Ecm9wZG93bjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuJGNvbnRyb2wsYj0iYm9keSI9PT10aGlzLnNldHRpbmdzLmRyb3Bkb3duUGFyZW50P2Eub2Zmc2V0KCk6YS5wb3NpdGlvbigpO2IudG9wKz1hLm91dGVySGVpZ2h0KCEwKSx0aGlzLiRkcm9wZG93bi5jc3Moe3dpZHRoOmEub3V0ZXJXaWR0aCgpLHRvcDpiLnRvcCxsZWZ0OmIubGVmdH0pfSxjbGVhcjpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2IuaXRlbXMubGVuZ3RoJiYoYi4kY29udHJvbC5jaGlsZHJlbigiOm5vdChpbnB1dCkiKS5yZW1vdmUoKSxiLml0ZW1zPVtdLGIubGFzdFF1ZXJ5PW51bGwsYi5zZXRDYXJldCgwKSxiLnNldEFjdGl2ZUl0ZW0obnVsbCksYi51cGRhdGVQbGFjZWhvbGRlcigpLGIudXBkYXRlT3JpZ2luYWxJbnB1dCh7c2lsZW50OmF9KSxiLnJlZnJlc2hTdGF0ZSgpLGIuc2hvd0lucHV0KCksYi50cmlnZ2VyKCJjbGVhciIpKX0saW5zZXJ0QXRDYXJldDpmdW5jdGlvbihiKXt2YXIgYz1NYXRoLm1pbih0aGlzLmNhcmV0UG9zLHRoaXMuaXRlbXMubGVuZ3RoKTswPT09Yz90aGlzLiRjb250cm9sLnByZXBlbmQoYik6YSh0aGlzLiRjb250cm9sWzBdLmNoaWxkTm9kZXNbY10pLmJlZm9yZShiKSx0aGlzLnNldENhcmV0KGMrMSl9LGRlbGV0ZVNlbGVjdGlvbjpmdW5jdGlvbihiKXt2YXIgYyxkLGUsZixnLGgsaSxqLGssbD10aGlzO2lmKGU9YiYmYi5rZXlDb2RlPT09cD8tMToxLGY9SChsLiRjb250cm9sX2lucHV0WzBdKSxsLiRhY3RpdmVPcHRpb24mJiFsLnNldHRpbmdzLmhpZGVTZWxlY3RlZCYmKGk9bC5nZXRBZGphY2VudE9wdGlvbihsLiRhY3RpdmVPcHRpb24sLTEpLmF0dHIoImRhdGEtdmFsdWUiKSksZz1bXSxsLiRhY3RpdmVJdGVtcy5sZW5ndGgpe2ZvcihrPWwuJGNvbnRyb2wuY2hpbGRyZW4oIi5hY3RpdmU6IisoZT4wPyJsYXN0IjoiZmlyc3QiKSksaD1sLiRjb250cm9sLmNoaWxkcmVuKCI6bm90KGlucHV0KSIpLmluZGV4KGspLGU+MCYmaCsrLGM9MCxkPWwuJGFjdGl2ZUl0ZW1zLmxlbmd0aDtkPmM7YysrKWcucHVzaChhKGwuJGFjdGl2ZUl0ZW1zW2NdKS5hdHRyKCJkYXRhLXZhbHVlIikpOwpiJiYoYi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCkpfWVsc2UobC5pc0ZvY3VzZWR8fCJzaW5nbGUiPT09bC5zZXR0aW5ncy5tb2RlKSYmbC5pdGVtcy5sZW5ndGgmJigwPmUmJjA9PT1mLnN0YXJ0JiYwPT09Zi5sZW5ndGg/Zy5wdXNoKGwuaXRlbXNbbC5jYXJldFBvcy0xXSk6ZT4wJiZmLnN0YXJ0PT09bC4kY29udHJvbF9pbnB1dC52YWwoKS5sZW5ndGgmJmcucHVzaChsLml0ZW1zW2wuY2FyZXRQb3NdKSk7aWYoIWcubGVuZ3RofHwiZnVuY3Rpb24iPT10eXBlb2YgbC5zZXR0aW5ncy5vbkRlbGV0ZSYmbC5zZXR0aW5ncy5vbkRlbGV0ZS5hcHBseShsLFtnXSk9PT0hMSlyZXR1cm4hMTtmb3IoInVuZGVmaW5lZCIhPXR5cGVvZiBoJiZsLnNldENhcmV0KGgpO2cubGVuZ3RoOylsLnJlbW92ZUl0ZW0oZy5wb3AoKSk7cmV0dXJuIGwuc2hvd0lucHV0KCksbC5wb3NpdGlvbkRyb3Bkb3duKCksbC5yZWZyZXNoT3B0aW9ucyghMCksaSYmKGo9bC5nZXRPcHRpb24oaSksai5sZW5ndGgmJmwuc2V0QWN0aXZlT3B0aW9uKGopKSwhMH0sYWR2YW5jZVNlbGVjdGlvbjpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGcsaCxpPXRoaXM7MCE9PWEmJihpLnJ0bCYmKGEqPS0xKSxjPWE+MD8ibGFzdCI6ImZpcnN0IixkPUgoaS4kY29udHJvbF9pbnB1dFswXSksaS5pc0ZvY3VzZWQmJiFpLmlzSW5wdXRIaWRkZW4/KGY9aS4kY29udHJvbF9pbnB1dC52YWwoKS5sZW5ndGgsZz0wPmE/MD09PWQuc3RhcnQmJjA9PT1kLmxlbmd0aDpkLnN0YXJ0PT09ZixnJiYhZiYmaS5hZHZhbmNlQ2FyZXQoYSxiKSk6KGg9aS4kY29udHJvbC5jaGlsZHJlbigiLmFjdGl2ZToiK2MpLGgubGVuZ3RoJiYoZT1pLiRjb250cm9sLmNoaWxkcmVuKCI6bm90KGlucHV0KSIpLmluZGV4KGgpLGkuc2V0QWN0aXZlSXRlbShudWxsKSxpLnNldENhcmV0KGE+MD9lKzE6ZSkpKSl9LGFkdmFuY2VDYXJldDpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZT10aGlzOzAhPT1hJiYoYz1hPjA/Im5leHQiOiJwcmV2IixlLmlzU2hpZnREb3duPyhkPWUuJGNvbnRyb2xfaW5wdXRbY10oKSxkLmxlbmd0aCYmKGUuaGlkZUlucHV0KCksZS5zZXRBY3RpdmVJdGVtKGQpLGImJmIucHJldmVudERlZmF1bHQoKSkpOmUuc2V0Q2FyZXQoZS5jYXJldFBvcythKSl9LHNldENhcmV0OmZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7aWYoYj0ic2luZ2xlIj09PWMuc2V0dGluZ3MubW9kZT9jLml0ZW1zLmxlbmd0aDpNYXRoLm1heCgwLE1hdGgubWluKGMuaXRlbXMubGVuZ3RoLGIpKSwhYy5pc1BlbmRpbmcpe3ZhciBkLGUsZixnO2ZvcihmPWMuJGNvbnRyb2wuY2hpbGRyZW4oIjpub3QoaW5wdXQpIiksZD0wLGU9Zi5sZW5ndGg7ZT5kO2QrKylnPWEoZltkXSkuZGV0YWNoKCksYj5kP2MuJGNvbnRyb2xfaW5wdXQuYmVmb3JlKGcpOmMuJGNvbnRyb2wuYXBwZW5kKGcpfWMuY2FyZXRQb3M9Yn0sbG9jazpmdW5jdGlvbigpe3RoaXMuY2xvc2UoKSx0aGlzLmlzTG9ja2VkPSEwLHRoaXMucmVmcmVzaFN0YXRlKCl9LHVubG9jazpmdW5jdGlvbigpe3RoaXMuaXNMb2NrZWQ9ITEsdGhpcy5yZWZyZXNoU3RhdGUoKX0sZGlzYWJsZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS4kaW5wdXQucHJvcCgiZGlzYWJsZWQiLCEwKSxhLiRjb250cm9sX2lucHV0LnByb3AoImRpc2FibGVkIiwhMCkucHJvcCgidGFiaW5kZXgiLC0xKSxhLmlzRGlzYWJsZWQ9ITAsYS5sb2NrKCl9LGVuYWJsZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS4kaW5wdXQucHJvcCgiZGlzYWJsZWQiLCExKSxhLiRjb250cm9sX2lucHV0LnByb3AoImRpc2FibGVkIiwhMSkucHJvcCgidGFiaW5kZXgiLGEudGFiSW5kZXgpLGEuaXNEaXNhYmxlZD0hMSxhLnVubG9jaygpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPWIuZXZlbnROUyxkPWIucmV2ZXJ0U2V0dGluZ3M7Yi50cmlnZ2VyKCJkZXN0cm95IiksYi5vZmYoKSxiLiR3cmFwcGVyLnJlbW92ZSgpLGIuJGRyb3Bkb3duLnJlbW92ZSgpLGIuJGlucHV0Lmh0bWwoIiIpLmFwcGVuZChkLiRjaGlsZHJlbikucmVtb3ZlQXR0cigidGFiaW5kZXgiKS5yZW1vdmVDbGFzcygic2VsZWN0aXplZCIpLmF0dHIoe3RhYmluZGV4OmQudGFiaW5kZXh9KS5zaG93KCksYi4kY29udHJvbF9pbnB1dC5yZW1vdmVEYXRhKCJncm93IiksYi4kaW5wdXQucmVtb3ZlRGF0YSgic2VsZWN0aXplIiksYSh3aW5kb3cpLm9mZihjKSxhKGRvY3VtZW50KS5vZmYoYyksYShkb2N1bWVudC5ib2R5KS5vZmYoYyksZGVsZXRlIGIuJGlucHV0WzBdLnNlbGVjdGl6ZX0scmVuZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPSIiLGY9ITEsZz10aGlzLGg9L15bXHQgXHJcbl0qPChbYS16XVthLXowLTlcLV9dKig/Olw6W2Etel1bYS16MC05XC1fXSopPykvaTtyZXR1cm4oIm9wdGlvbiI9PT1hfHwiaXRlbSI9PT1hKSYmKGM9eihiW2cuc2V0dGluZ3MudmFsdWVGaWVsZF0pLGY9ISFjKSxmJiYoeShnLnJlbmRlckNhY2hlW2FdKXx8KGcucmVuZGVyQ2FjaGVbYV09e30pLGcucmVuZGVyQ2FjaGVbYV0uaGFzT3duUHJvcGVydHkoYykpP2cucmVuZGVyQ2FjaGVbYV1bY106KGU9Zy5zZXR0aW5ncy5yZW5kZXJbYV0uYXBwbHkodGhpcyxbYixBXSksKCJvcHRpb24iPT09YXx8Im9wdGlvbl9jcmVhdGUiPT09YSkmJihlPWUucmVwbGFjZShoLCI8JDEgZGF0YS1zZWxlY3RhYmxlIikpLCJvcHRncm91cCI9PT1hJiYoZD1iW2cuc2V0dGluZ3Mub3B0Z3JvdXBWYWx1ZUZpZWxkXXx8IiIsZT1lLnJlcGxhY2UoaCwnPCQxIGRhdGEtZ3JvdXA9IicrQihBKGQpKSsnIicpKSwoIm9wdGlvbiI9PT1hfHwiaXRlbSI9PT1hKSYmKGU9ZS5yZXBsYWNlKGgsJzwkMSBkYXRhLXZhbHVlPSInK0IoQShjfHwiIikpKyciJykpLGYmJihnLnJlbmRlckNhY2hlW2FdW2NdPWUpLGUpfSxjbGVhckNhY2hlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7InVuZGVmaW5lZCI9PXR5cGVvZiBhP2IucmVuZGVyQ2FjaGU9e306ZGVsZXRlIGIucmVuZGVyQ2FjaGVbYV19LGNhbkNyZWF0ZTpmdW5jdGlvbihhKXt2YXIgYj10aGlzO2lmKCFiLnNldHRpbmdzLmNyZWF0ZSlyZXR1cm4hMTt2YXIgYz1iLnNldHRpbmdzLmNyZWF0ZUZpbHRlcjtyZXR1cm4hKCFhLmxlbmd0aHx8ImZ1bmN0aW9uIj09dHlwZW9mIGMmJiFjLmFwcGx5KGIsW2FdKXx8InN0cmluZyI9PXR5cGVvZiBjJiYhbmV3IFJlZ0V4cChjKS50ZXN0KGEpfHxjIGluc3RhbmNlb2YgUmVnRXhwJiYhYy50ZXN0KGEpKX19KSxMLmNvdW50PTAsTC5kZWZhdWx0cz17b3B0aW9uczpbXSxvcHRncm91cHM6W10scGx1Z2luczpbXSxkZWxpbWl0ZXI6IiwiLHNwbGl0T246bnVsbCxwZXJzaXN0OiEwLGRpYWNyaXRpY3M6ITAsY3JlYXRlOiExLGNyZWF0ZU9uQmx1cjohMSxjcmVhdGVGaWx0ZXI6bnVsbCxoaWdobGlnaHQ6ITAsb3Blbk9uRm9jdXM6ITAsbWF4T3B0aW9uczoxZTMsbWF4SXRlbXM6bnVsbCxoaWRlU2VsZWN0ZWQ6bnVsbCxhZGRQcmVjZWRlbmNlOiExLHNlbGVjdE9uVGFiOiExLHByZWxvYWQ6ITEsYWxsb3dFbXB0eU9wdGlvbjohMSxjbG9zZUFmdGVyU2VsZWN0OiExLHNjcm9sbER1cmF0aW9uOjYwLGxvYWRUaHJvdHRsZTozMDAsbG9hZGluZ0NsYXNzOiJsb2FkaW5nIixkYXRhQXR0cjoiZGF0YS1kYXRhIixvcHRncm91cEZpZWxkOiJvcHRncm91cCIsdmFsdWVGaWVsZDoidmFsdWUiLGxhYmVsRmllbGQ6InRleHQiLG9wdGdyb3VwTGFiZWxGaWVsZDoibGFiZWwiLG9wdGdyb3VwVmFsdWVGaWVsZDoidmFsdWUiLGxvY2tPcHRncm91cE9yZGVyOiExLHNvcnRGaWVsZDoiJG9yZGVyIixzZWFyY2hGaWVsZDpbInRleHQiXSxzZWFyY2hDb25qdW5jdGlvbjoiYW5kIixtb2RlOm51bGwsd3JhcHBlckNsYXNzOiJzZWxlY3RpemUtY29udHJvbCIsaW5wdXRDbGFzczoic2VsZWN0aXplLWlucHV0Iixkcm9wZG93bkNsYXNzOiJzZWxlY3RpemUtZHJvcGRvd24iLGRyb3Bkb3duQ29udGVudENsYXNzOiJzZWxlY3RpemUtZHJvcGRvd24tY29udGVudCIsZHJvcGRvd25QYXJlbnQ6bnVsbCxjb3B5Q2xhc3Nlc1RvRHJvcGRvd246ITAscmVuZGVyOnt9fSxhLmZuLnNlbGVjdGl6ZT1mdW5jdGlvbihiKXt2YXIgYz1hLmZuLnNlbGVjdGl6ZS5kZWZhdWx0cyxkPWEuZXh0ZW5kKHt9LGMsYiksZT1kLmRhdGFBdHRyLGY9ZC5sYWJlbEZpZWxkLGc9ZC52YWx1ZUZpZWxkLGg9ZC5vcHRncm91cEZpZWxkLGk9ZC5vcHRncm91cExhYmVsRmllbGQsaj1kLm9wdGdyb3VwVmFsdWVGaWVsZCxrPWZ1bmN0aW9uKGIsYyl7dmFyIGgsaSxqLGssbD1iLmF0dHIoZSk7aWYobClmb3IoYy5vcHRpb25zPUpTT04ucGFyc2UobCksaD0wLGk9Yy5vcHRpb25zLmxlbmd0aDtpPmg7aCsrKWMuaXRlbXMucHVzaChjLm9wdGlvbnNbaF1bZ10pO2Vsc2V7dmFyIG09YS50cmltKGIudmFsKCl8fCIiKTtpZighZC5hbGxvd0VtcHR5T3B0aW9uJiYhbS5sZW5ndGgpcmV0dXJuO2ZvcihqPW0uc3BsaXQoZC5kZWxpbWl0ZXIpLGg9MCxpPWoubGVuZ3RoO2k+aDtoKyspaz17fSxrW2ZdPWpbaF0sa1tnXT1qW2hdLGMub3B0aW9ucy5wdXNoKGspO2MuaXRlbXM9an19LGw9ZnVuY3Rpb24oYixjKXt2YXIgayxsLG0sbixvPWMub3B0aW9ucyxwPXt9LHE9ZnVuY3Rpb24oYSl7dmFyIGI9ZSYmYS5hdHRyKGUpO3JldHVybiJzdHJpbmciPT10eXBlb2YgYiYmYi5sZW5ndGg/SlNPTi5wYXJzZShiKTpudWxsfSxyPWZ1bmN0aW9uKGIsZSl7Yj1hKGIpO3ZhciBpPXooYi5hdHRyKCJ2YWx1ZSIpKTtpZihpfHxkLmFsbG93RW1wdHlPcHRpb24paWYocC5oYXNPd25Qcm9wZXJ0eShpKSl7aWYoZSl7dmFyIGo9cFtpXVtoXTtqP2EuaXNBcnJheShqKT9qLnB1c2goZSk6cFtpXVtoXT1baixlXTpwW2ldW2hdPWV9fWVsc2V7dmFyIGs9cShiKXx8e307a1tmXT1rW2ZdfHxiLnRleHQoKSxrW2ddPWtbZ118fGksa1toXT1rW2hdfHxlLHBbaV09ayxvLnB1c2goayksYi5pcygiOnNlbGVjdGVkIikmJmMuaXRlbXMucHVzaChpKX19LHM9ZnVuY3Rpb24oYil7dmFyIGQsZSxmLGcsaDtmb3IoYj1hKGIpLGY9Yi5hdHRyKCJsYWJlbCIpLGYmJihnPXEoYil8fHt9LGdbaV09ZixnW2pdPWYsYy5vcHRncm91cHMucHVzaChnKSksaD1hKCJvcHRpb24iLGIpLGQ9MCxlPWgubGVuZ3RoO2U+ZDtkKyspcihoW2RdLGYpfTtmb3IoYy5tYXhJdGVtcz1iLmF0dHIoIm11bHRpcGxlIik/bnVsbDoxLG49Yi5jaGlsZHJlbigpLGs9MCxsPW4ubGVuZ3RoO2w+aztrKyspbT1uW2tdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSwib3B0Z3JvdXAiPT09bT9zKG5ba10pOiJvcHRpb24iPT09bSYmcihuW2tdKX07cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKCF0aGlzLnNlbGVjdGl6ZSl7dmFyIGUsZj1hKHRoaXMpLGc9dGhpcy50YWdOYW1lLnRvTG93ZXJDYXNlKCksaD1mLmF0dHIoInBsYWNlaG9sZGVyIil8fGYuYXR0cigiZGF0YS1wbGFjZWhvbGRlciIpO2h8fGQuYWxsb3dFbXB0eU9wdGlvbnx8KGg9Zi5jaGlsZHJlbignb3B0aW9uW3ZhbHVlPSIiXScpLnRleHQoKSk7dmFyIGk9e3BsYWNlaG9sZGVyOmgsb3B0aW9uczpbXSxvcHRncm91cHM6W10saXRlbXM6W119OyJzZWxlY3QiPT09Zz9sKGYsaSk6ayhmLGkpLGU9bmV3IEwoZixhLmV4dGVuZCghMCx7fSxjLGksYikpfX0pfSxhLmZuLnNlbGVjdGl6ZS5kZWZhdWx0cz1MLmRlZmF1bHRzLGEuZm4uc2VsZWN0aXplLnN1cHBvcnQ9e3ZhbGlkaXR5Onh9LEwuZGVmaW5lKCJkcmFnX2Ryb3AiLGZ1bmN0aW9uKCl7aWYoIWEuZm4uc29ydGFibGUpdGhyb3cgbmV3IEVycm9yKCdUaGUgImRyYWdfZHJvcCIgcGx1Z2luIHJlcXVpcmVzIGpRdWVyeSBVSSAic29ydGFibGUiLicpO2lmKCJtdWx0aSI9PT10aGlzLnNldHRpbmdzLm1vZGUpe3ZhciBiPXRoaXM7Yi5sb2NrPWZ1bmN0aW9uKCl7dmFyIGE9Yi5sb2NrO3JldHVybiBmdW5jdGlvbigpe3ZhciBjPWIuJGNvbnRyb2wuZGF0YSgic29ydGFibGUiKTtyZXR1cm4gYyYmYy5kaXNhYmxlKCksYS5hcHBseShiLGFyZ3VtZW50cyl9fSgpLGIudW5sb2NrPWZ1bmN0aW9uKCl7dmFyIGE9Yi51bmxvY2s7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGM9Yi4kY29udHJvbC5kYXRhKCJzb3J0YWJsZSIpO3JldHVybiBjJiZjLmVuYWJsZSgpLGEuYXBwbHkoYixhcmd1bWVudHMpfX0oKSxiLnNldHVwPWZ1bmN0aW9uKCl7dmFyIGM9Yi5zZXR1cDtyZXR1cm4gZnVuY3Rpb24oKXtjLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgZD1iLiRjb250cm9sLnNvcnRhYmxlKHtpdGVtczoiW2RhdGEtdmFsdWVdIixmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMCxkaXNhYmxlZDpiLmlzTG9ja2VkLHN0YXJ0OmZ1bmN0aW9uKGEsYil7Yi5wbGFjZWhvbGRlci5jc3MoIndpZHRoIixiLmhlbHBlci5jc3MoIndpZHRoIikpLGQuY3NzKHtvdmVyZmxvdzoidmlzaWJsZSJ9KX0sc3RvcDpmdW5jdGlvbigpe2QuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIn0pO3ZhciBjPWIuJGFjdGl2ZUl0ZW1zP2IuJGFjdGl2ZUl0ZW1zLnNsaWNlKCk6bnVsbCxlPVtdO2QuY2hpbGRyZW4oIltkYXRhLXZhbHVlXSIpLmVhY2goZnVuY3Rpb24oKXtlLnB1c2goYSh0aGlzKS5hdHRyKCJkYXRhLXZhbHVlIikpfSksYi5zZXRWYWx1ZShlKSxiLnNldEFjdGl2ZUl0ZW0oYyl9fSl9fSgpfX0pLEwuZGVmaW5lKCJkcm9wZG93bl9oZWFkZXIiLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7Yj1hLmV4dGVuZCh7dGl0bGU6IlVudGl0bGVkIixoZWFkZXJDbGFzczoic2VsZWN0aXplLWRyb3Bkb3duLWhlYWRlciIsdGl0bGVSb3dDbGFzczoic2VsZWN0aXplLWRyb3Bkb3duLWhlYWRlci10aXRsZSIsbGFiZWxDbGFzczoic2VsZWN0aXplLWRyb3Bkb3duLWhlYWRlci1sYWJlbCIsY2xvc2VDbGFzczoic2VsZWN0aXplLWRyb3Bkb3duLWhlYWRlci1jbG9zZSIsaHRtbDpmdW5jdGlvbihhKXtyZXR1cm4nPGRpdiBjbGFzcz0iJythLmhlYWRlckNsYXNzKyciPjxkaXYgY2xhc3M9IicrYS50aXRsZVJvd0NsYXNzKyciPjxzcGFuIGNsYXNzPSInK2EubGFiZWxDbGFzcysnIj4nK2EudGl0bGUrJzwvc3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSInK2EuY2xvc2VDbGFzcysnIj4mdGltZXM7PC9hPjwvZGl2PjwvZGl2Pid9fSxiKSxjLnNldHVwPWZ1bmN0aW9uKCl7dmFyIGQ9Yy5zZXR1cDtyZXR1cm4gZnVuY3Rpb24oKXtkLmFwcGx5KGMsYXJndW1lbnRzKSxjLiRkcm9wZG93bl9oZWFkZXI9YShiLmh0bWwoYikpLGMuJGRyb3Bkb3duLnByZXBlbmQoYy4kZHJvcGRvd25faGVhZGVyKX19KCl9KSxMLmRlZmluZSgib3B0Z3JvdXBfY29sdW1ucyIsZnVuY3Rpb24oYil7dmFyIGM9dGhpcztiPWEuZXh0ZW5kKHtlcXVhbGl6ZVdpZHRoOiEwLGVxdWFsaXplSGVpZ2h0OiEwfSxiKSx0aGlzLmdldEFkamFjZW50T3B0aW9uPWZ1bmN0aW9uKGIsYyl7dmFyIGQ9Yi5jbG9zZXN0KCJbZGF0YS1ncm91cF0iKS5maW5kKCJbZGF0YS1zZWxlY3RhYmxlXSIpLGU9ZC5pbmRleChiKStjO3JldHVybiBlPj0wJiZlPGQubGVuZ3RoP2QuZXEoZSk6YSgpfSx0aGlzLm9uS2V5RG93bj1mdW5jdGlvbigpe3ZhciBhPWMub25LZXlEb3duO3JldHVybiBmdW5jdGlvbihiKXt2YXIgZCxlLGYsZztyZXR1cm4hdGhpcy5pc09wZW58fGIua2V5Q29kZSE9PWomJmIua2V5Q29kZSE9PW0/YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KGMuaWdub3JlSG92ZXI9ITAsZz10aGlzLiRhY3RpdmVPcHRpb24uY2xvc2VzdCgiW2RhdGEtZ3JvdXBdIiksZD1nLmZpbmQoIltkYXRhLXNlbGVjdGFibGVdIikuaW5kZXgodGhpcy4kYWN0aXZlT3B0aW9uKSxnPWIua2V5Q29kZT09PWo/Zy5wcmV2KCJbZGF0YS1ncm91cF0iKTpnLm5leHQoIltkYXRhLWdyb3VwXSIpLGY9Zy5maW5kKCJbZGF0YS1zZWxlY3RhYmxlXSIpLGU9Zi5lcShNYXRoLm1pbihmLmxlbmd0aC0xLGQpKSx2b2lkKGUubGVuZ3RoJiZ0aGlzLnNldEFjdGl2ZU9wdGlvbihlKSkpfX0oKTt2YXIgZD1mdW5jdGlvbigpe3ZhciBhLGI9ZC53aWR0aCxjPWRvY3VtZW50O3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGE9Yy5jcmVhdGVFbGVtZW50KCJkaXYiKSxhLmlubmVySFRNTD0nPGRpdiBzdHlsZT0id2lkdGg6NTBweDtoZWlnaHQ6NTBweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi01MHB4O3RvcDotNTBweDtvdmVyZmxvdzphdXRvOyI+PGRpdiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxMDBweDsiPjwvZGl2PjwvZGl2PicsYT1hLmZpcnN0Q2hpbGQsYy5ib2R5LmFwcGVuZENoaWxkKGEpLGI9ZC53aWR0aD1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGgsYy5ib2R5LnJlbW92ZUNoaWxkKGEpKSxifSxlPWZ1bmN0aW9uKCl7dmFyIGUsZixnLGgsaSxqLGs7aWYoaz1hKCJbZGF0YS1ncm91cF0iLGMuJGRyb3Bkb3duX2NvbnRlbnQpLGY9ay5sZW5ndGgsZiYmYy4kZHJvcGRvd25fY29udGVudC53aWR0aCgpKXtpZihiLmVxdWFsaXplSGVpZ2h0KXtmb3IoZz0wLGU9MDtmPmU7ZSsrKWc9TWF0aC5tYXgoZyxrLmVxKGUpLmhlaWdodCgpKTtrLmNzcyh7aGVpZ2h0Omd9KX1iLmVxdWFsaXplV2lkdGgmJihqPWMuJGRyb3Bkb3duX2NvbnRlbnQuaW5uZXJXaWR0aCgpLWQoKSxoPU1hdGgucm91bmQoai9mKSxrLmNzcyh7d2lkdGg6aH0pLGY+MSYmKGk9ai1oKihmLTEpLGsuZXEoZi0xKS5jc3Moe3dpZHRoOml9KSkpfX07KGIuZXF1YWxpemVIZWlnaHR8fGIuZXF1YWxpemVXaWR0aCkmJihDLmFmdGVyKHRoaXMsInBvc2l0aW9uRHJvcGRvd24iLGUpLEMuYWZ0ZXIodGhpcywicmVmcmVzaE9wdGlvbnMiLGUpKX0pLEwuZGVmaW5lKCJyZW1vdmVfYnV0dG9uIixmdW5jdGlvbihiKXtpZigic2luZ2xlIiE9PXRoaXMuc2V0dGluZ3MubW9kZSl7Yj1hLmV4dGVuZCh7bGFiZWw6IiZ0aW1lczsiLHRpdGxlOiJSZW1vdmUiLGNsYXNzTmFtZToicmVtb3ZlIixhcHBlbmQ6ITB9LGIpO3ZhciBjPXRoaXMsZD0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iJytiLmNsYXNzTmFtZSsnIiB0YWJpbmRleD0iLTEiIHRpdGxlPSInK0EoYi50aXRsZSkrJyI+JytiLmxhYmVsKyI8L2E+IixlPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zZWFyY2goLyg8XC9bXj5dKz5ccyopJC8pO3JldHVybiBhLnN1YnN0cmluZygwLGMpK2IrYS5zdWJzdHJpbmcoYyl9O3RoaXMuc2V0dXA9ZnVuY3Rpb24oKXt2YXIgZj1jLnNldHVwO3JldHVybiBmdW5jdGlvbigpe2lmKGIuYXBwZW5kKXt2YXIgZz1jLnNldHRpbmdzLnJlbmRlci5pdGVtO2Muc2V0dGluZ3MucmVuZGVyLml0ZW09ZnVuY3Rpb24oKXtyZXR1cm4gZShnLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxkKX19Zi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy4kY29udHJvbC5vbigiY2xpY2siLCIuIitiLmNsYXNzTmFtZSxmdW5jdGlvbihiKXtpZihiLnByZXZlbnREZWZhdWx0KCksIWMuaXNMb2NrZWQpe3ZhciBkPWEoYi5jdXJyZW50VGFyZ2V0KS5wYXJlbnQoKTtjLnNldEFjdGl2ZUl0ZW0oZCksYy5kZWxldGVTZWxlY3Rpb24oKSYmYy5zZXRDYXJldChjLml0ZW1zLmxlbmd0aCl9fSl9fSgpfX0pLEwuZGVmaW5lKCJyZXN0b3JlX29uX2JhY2tzcGFjZSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpczthLnRleHQ9YS50ZXh0fHxmdW5jdGlvbihhKXtyZXR1cm4gYVt0aGlzLnNldHRpbmdzLmxhYmVsRmllbGRdfSx0aGlzLm9uS2V5RG93bj1mdW5jdGlvbigpe3ZhciBjPWIub25LZXlEb3duO3JldHVybiBmdW5jdGlvbihiKXt2YXIgZCxlO3JldHVybiBiLmtleUNvZGU9PT1wJiYiIj09PXRoaXMuJGNvbnRyb2xfaW5wdXQudmFsKCkmJiF0aGlzLiRhY3RpdmVJdGVtcy5sZW5ndGgmJihkPXRoaXMuY2FyZXRQb3MtMSxkPj0wJiZkPHRoaXMuaXRlbXMubGVuZ3RoKT8oZT10aGlzLm9wdGlvbnNbdGhpcy5pdGVtc1tkXV0sdGhpcy5kZWxldGVTZWxlY3Rpb24oYikmJih0aGlzLnNldFRleHRib3hWYWx1ZShhLnRleHQuYXBwbHkodGhpcyxbZV0pKSx0aGlzLnJlZnJlc2hPcHRpb25zKCEwKSksdm9pZCBiLnByZXZlbnREZWZhdWx0KCkpOmMuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX0pLEx9KTs="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
50 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
51 <div class="navbar navbar-inverse" role="navigation"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
52 <div class="container"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
53 <div class="navbar-header"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
54 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
55 <span class="icon-bar"></span> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
56 <span class="icon-bar"></span> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
57 <span class="icon-bar"></span> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
58 </button> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
59 <a class="navbar-brand" href="/">RCAS v0.1</a> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
60 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
61 <div id="navbar" class="navbar-collapse collapse"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
62 <ul class="nav navbar-nav"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
63 <li class="dropdown"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
64 <a href="Links" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Links <span class="caret"></span></a> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
65 <ul class="dropdown-menu" role="menu"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
66 <li><a href="https://www.denbi.de/">de.NBI</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
67 <li><a href="https://www.mdc-berlin.de/">MDC</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
68 <li><a href="https://www.mdc-berlin.de/13800178/en/bimsb">BIMSB</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
69 <li><a href="https://www.mdc-berlin.de/20902467/en/research/core_facilities/cf_bioinformatic">Bioinformatics Platform</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
70 </ul> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
71 </li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
72 <li class="dropdown"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
73 <a class="dropdown-toggle" data-toggle="dropdown" href="#">About the authors |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
74 <span class="caret"></span></a> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
75 <ul class="dropdown-menu"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
76 <li><a href="http://bioinformatics.mdc-berlin.de/team.html#altuna-akalin-phd">Altuna Akalin</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
77 <li><a href="http://bioinformatics.mdc-berlin.de/team.html#dilmurat-yusuf-phd">Dilmurat Yusuf</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
78 <li><a href="http://bioinformatics.mdc-berlin.de/team.html#ricardo-wurmus">Ricardo Wurmus</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
79 <li><a href="http://bioinformatics.mdc-berlin.de/team.html#bora-uyar-phd">Bora Uyar</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
80 </ul> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
81 </li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
82 <li><a href="https://github.com/BIMSBbioinfo/RCAS">GitHUB</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
83 <li><a href="http://dorina.mdc-berlin.de/">DoRiNA</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
84 <li><a href="http://bioinformatics.mdc-berlin.de/contact.html">Contact</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
85 <li><a href="#acknowledgements">Acknowledgements</a></li> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
86 </ul> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
87 </div><!--/.nav-collapse --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
88 </div><!--/.container --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
89 </div><!--/.navbar --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
90 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
91 <style type="text/css">code{white-space: pre;}</style> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
92 <link href="data:text/css;charset=utf-8,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0Acolor%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0Apre%20%2Eliteral%20%7B%0Acolor%3A%20%23990073%0A%7D%0Apre%20%2Enumber%20%7B%0Acolor%3A%20%23099%3B%0A%7D%0Apre%20%2Ecomment%20%7B%0Acolor%3A%20%23998%3B%0Afont%2Dstyle%3A%20italic%0A%7D%0Apre%20%2Ekeyword%20%7B%0Acolor%3A%20%23900%3B%0Afont%2Dweight%3A%20bold%0A%7D%0Apre%20%2Eidentifier%20%7B%0Acolor%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0Apre%20%2Estring%20%7B%0Acolor%3A%20%23d14%3B%0A%7D%0A" rel="stylesheet" type="text/css" /> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
93 <script src="data:application/x-javascript;base64,CnZhciBobGpzPW5ldyBmdW5jdGlvbigpe2Z1bmN0aW9uIG0ocCl7cmV0dXJuIHAucmVwbGFjZSgvJi9nbSwiJmFtcDsiKS5yZXBsYWNlKC88L2dtLCImbHQ7Iil9ZnVuY3Rpb24gZihyLHEscCl7cmV0dXJuIFJlZ0V4cChxLCJtIisoci5jST8iaSI6IiIpKyhwPyJnIjoiIikpfWZ1bmN0aW9uIGIocil7Zm9yKHZhciBwPTA7cDxyLmNoaWxkTm9kZXMubGVuZ3RoO3ArKyl7dmFyIHE9ci5jaGlsZE5vZGVzW3BdO2lmKHEubm9kZU5hbWU9PSJDT0RFIil7cmV0dXJuIHF9aWYoIShxLm5vZGVUeXBlPT0zJiZxLm5vZGVWYWx1ZS5tYXRjaCgvXHMrLykpKXticmVha319fWZ1bmN0aW9uIGgodCxzKXt2YXIgcD0iIjtmb3IodmFyIHI9MDtyPHQuY2hpbGROb2Rlcy5sZW5ndGg7cisrKXtpZih0LmNoaWxkTm9kZXNbcl0ubm9kZVR5cGU9PTMpe3ZhciBxPXQuY2hpbGROb2Rlc1tyXS5ub2RlVmFsdWU7aWYocyl7cT1xLnJlcGxhY2UoL1xuL2csIiIpfXArPXF9ZWxzZXtpZih0LmNoaWxkTm9kZXNbcl0ubm9kZU5hbWU9PSJCUiIpe3ArPSJcbiJ9ZWxzZXtwKz1oKHQuY2hpbGROb2Rlc1tyXSl9fX1pZigvTVNJRSBbNjc4XS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7cD1wLnJlcGxhY2UoL1xyL2csIlxuIil9cmV0dXJuIHB9ZnVuY3Rpb24gYShzKXt2YXIgcj1zLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyk7cj1yLmNvbmNhdChzLnBhcmVudE5vZGUuY2xhc3NOYW1lLnNwbGl0KC9ccysvKSk7Zm9yKHZhciBxPTA7cTxyLmxlbmd0aDtxKyspe3ZhciBwPXJbcV0ucmVwbGFjZSgvXmxhbmd1YWdlLS8sIiIpO2lmKGVbcF0pe3JldHVybiBwfX19ZnVuY3Rpb24gYyhxKXt2YXIgcD1bXTsoZnVuY3Rpb24ocyx0KXtmb3IodmFyIHI9MDtyPHMuY2hpbGROb2Rlcy5sZW5ndGg7cisrKXtpZihzLmNoaWxkTm9kZXNbcl0ubm9kZVR5cGU9PTMpe3QrPXMuY2hpbGROb2Rlc1tyXS5ub2RlVmFsdWUubGVuZ3RofWVsc2V7aWYocy5jaGlsZE5vZGVzW3JdLm5vZGVOYW1lPT0iQlIiKXt0Kz0xfWVsc2V7aWYocy5jaGlsZE5vZGVzW3JdLm5vZGVUeXBlPT0xKXtwLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0OnQsbm9kZTpzLmNoaWxkTm9kZXNbcl19KTt0PWFyZ3VtZW50cy5jYWxsZWUocy5jaGlsZE5vZGVzW3JdLHQpO3AucHVzaCh7ZXZlbnQ6InN0b3AiLG9mZnNldDp0LG5vZGU6cy5jaGlsZE5vZGVzW3JdfSl9fX19cmV0dXJuIHR9KShxLDApO3JldHVybiBwfWZ1bmN0aW9uIGsoeSx3LHgpe3ZhciBxPTA7dmFyIHo9IiI7dmFyIHM9W107ZnVuY3Rpb24gdSgpe2lmKHkubGVuZ3RoJiZ3Lmxlbmd0aCl7aWYoeVswXS5vZmZzZXQhPXdbMF0ub2Zmc2V0KXtyZXR1cm4oeVswXS5vZmZzZXQ8d1swXS5vZmZzZXQpP3k6d31lbHNle3JldHVybiB3WzBdLmV2ZW50PT0ic3RhcnQiP3k6d319ZWxzZXtyZXR1cm4geS5sZW5ndGg/eTp3fX1mdW5jdGlvbiB0KEQpe3ZhciBBPSI8IitELm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7Zm9yKHZhciBCPTA7QjxELmF0dHJpYnV0ZXMubGVuZ3RoO0IrKyl7dmFyIEM9RC5hdHRyaWJ1dGVzW0JdO0ErPSIgIitDLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoQy52YWx1ZSE9PXVuZGVmaW5lZCYmQy52YWx1ZSE9PWZhbHNlJiZDLnZhbHVlIT09bnVsbCl7QSs9Jz0iJyttKEMudmFsdWUpKyciJ319cmV0dXJuIEErIj4ifXdoaWxlKHkubGVuZ3RofHx3Lmxlbmd0aCl7dmFyIHY9dSgpLnNwbGljZSgwLDEpWzBdO3orPW0oeC5zdWJzdHIocSx2Lm9mZnNldC1xKSk7cT12Lm9mZnNldDtpZih2LmV2ZW50PT0ic3RhcnQiKXt6Kz10KHYubm9kZSk7cy5wdXNoKHYubm9kZSl9ZWxzZXtpZih2LmV2ZW50PT0ic3RvcCIpe3ZhciBwLHI9cy5sZW5ndGg7ZG97ci0tO3A9c1tyXTt6Kz0oIjwvIitwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkrIj4iKX13aGlsZShwIT12Lm5vZGUpO3Muc3BsaWNlKHIsMSk7d2hpbGUocjxzLmxlbmd0aCl7eis9dChzW3JdKTtyKyt9fX19cmV0dXJuIHorbSh4LnN1YnN0cihxKSl9ZnVuY3Rpb24gaigpe2Z1bmN0aW9uIHEoeCx5LHYpe2lmKHguY29tcGlsZWQpe3JldHVybn12YXIgdTt2YXIgcz1bXTtpZih4Lmspe3gubFI9Zih5LHgubHx8aGxqcy5JUix0cnVlKTtmb3IodmFyIHcgaW4geC5rKXtpZigheC5rLmhhc093blByb3BlcnR5KHcpKXtjb250aW51ZX1pZih4Lmtbd10gaW5zdGFuY2VvZiBPYmplY3Qpe3U9eC5rW3ddfWVsc2V7dT14Lms7dz0ia2V5d29yZCJ9Zm9yKHZhciByIGluIHUpe2lmKCF1Lmhhc093blByb3BlcnR5KHIpKXtjb250aW51ZX14Lmtbcl09W3csdVtyXV07cy5wdXNoKHIpfX19aWYoIXYpe2lmKHguYldLKXt4LmI9IlxcYigiK3Muam9pbigifCIpKyIpXFxzIn14LmJSPWYoeSx4LmI/eC5iOiJcXEJ8XFxiIik7aWYoIXguZSYmIXguZVcpe3guZT0iXFxCfFxcYiJ9aWYoeC5lKXt4LmVSPWYoeSx4LmUpfX1pZih4Lmkpe3guaVI9Zih5LHguaSl9aWYoeC5yPT09dW5kZWZpbmVkKXt4LnI9MX1pZigheC5jKXt4LmM9W119eC5jb21waWxlZD10cnVlO2Zvcih2YXIgdD0wO3Q8eC5jLmxlbmd0aDt0Kyspe2lmKHguY1t0XT09InNlbGYiKXt4LmNbdF09eH1xKHguY1t0XSx5LGZhbHNlKX1pZih4LnN0YXJ0cyl7cSh4LnN0YXJ0cyx5LGZhbHNlKX19Zm9yKHZhciBwIGluIGUpe2lmKCFlLmhhc093blByb3BlcnR5KHApKXtjb250aW51ZX1xKGVbcF0uZE0sZVtwXSx0cnVlKX19ZnVuY3Rpb24gZChCLEMpe2lmKCFqLmNhbGxlZCl7aigpO2ouY2FsbGVkPXRydWV9ZnVuY3Rpb24gcShyLE0pe2Zvcih2YXIgTD0wO0w8TS5jLmxlbmd0aDtMKyspe2lmKChNLmNbTF0uYlIuZXhlYyhyKXx8W251bGxdKVswXT09cil7cmV0dXJuIE0uY1tMXX19fWZ1bmN0aW9uIHYoTCxyKXtpZihEW0xdLmUmJkRbTF0uZVIudGVzdChyKSl7cmV0dXJuIDF9aWYoRFtMXS5lVyl7dmFyIE09dihMLTEscik7cmV0dXJuIE0/TSsxOjB9cmV0dXJuIDB9ZnVuY3Rpb24gdyhyLEwpe3JldHVybiBMLmkmJkwuaVIudGVzdChyKX1mdW5jdGlvbiBLKE4sTyl7dmFyIE09W107Zm9yKHZhciBMPTA7TDxOLmMubGVuZ3RoO0wrKyl7TS5wdXNoKE4uY1tMXS5iKX12YXIgcj1ELmxlbmd0aC0xO2Rve2lmKERbcl0uZSl7TS5wdXNoKERbcl0uZSl9ci0tfXdoaWxlKERbcisxXS5lVyk7aWYoTi5pKXtNLnB1c2goTi5pKX1yZXR1cm4gZihPLE0uam9pbigifCIpLHRydWUpfWZ1bmN0aW9uIHAoTSxMKXt2YXIgTj1EW0QubGVuZ3RoLTFdO2lmKCFOLnQpe04udD1LKE4sRSl9Ti50Lmxhc3RJbmRleD1MO3ZhciByPU4udC5leGVjKE0pO3JldHVybiByP1tNLnN1YnN0cihMLHIuaW5kZXgtTCksclswXSxmYWxzZV06W00uc3Vic3RyKEwpLCIiLHRydWVdfWZ1bmN0aW9uIHooTixyKXt2YXIgTD1FLmNJP3JbMF0udG9Mb3dlckNhc2UoKTpyWzBdO3ZhciBNPU4ua1tMXTtpZihNJiZNIGluc3RhbmNlb2YgQXJyYXkpe3JldHVybiBNfXJldHVybiBmYWxzZX1mdW5jdGlvbiBGKEwsUCl7TD1tKEwpO2lmKCFQLmspe3JldHVybiBMfXZhciByPSIiO3ZhciBPPTA7UC5sUi5sYXN0SW5kZXg9MDt2YXIgTT1QLmxSLmV4ZWMoTCk7d2hpbGUoTSl7cis9TC5zdWJzdHIoTyxNLmluZGV4LU8pO3ZhciBOPXooUCxNKTtpZihOKXt4Kz1OWzFdO3IrPSc8c3BhbiBjbGFzcz0iJytOWzBdKyciPicrTVswXSsiPC9zcGFuPiJ9ZWxzZXtyKz1NWzBdfU89UC5sUi5sYXN0SW5kZXg7TT1QLmxSLmV4ZWMoTCl9cmV0dXJuIHIrTC5zdWJzdHIoTyxMLmxlbmd0aC1PKX1mdW5jdGlvbiBKKEwsTSl7aWYoTS5zTCYmZVtNLnNMXSl7dmFyIHI9ZChNLnNMLEwpO3grPXIua2V5d29yZF9jb3VudDtyZXR1cm4gci52YWx1ZX1lbHNle3JldHVybiBGKEwsTSl9fWZ1bmN0aW9uIEkoTSxyKXt2YXIgTD1NLmNOPyc8c3BhbiBjbGFzcz0iJytNLmNOKyciPic6IiI7aWYoTS5yQil7eSs9TDtNLmJ1ZmZlcj0iIn1lbHNle2lmKE0uZUIpe3krPW0ocikrTDtNLmJ1ZmZlcj0iIn1lbHNle3krPUw7TS5idWZmZXI9cn19RC5wdXNoKE0pO0ErPU0ucn1mdW5jdGlvbiBHKE4sTSxRKXt2YXIgUj1EW0QubGVuZ3RoLTFdO2lmKFEpe3krPUooUi5idWZmZXIrTixSKTtyZXR1cm4gZmFsc2V9dmFyIFA9cShNLFIpO2lmKFApe3krPUooUi5idWZmZXIrTixSKTtJKFAsTSk7cmV0dXJuIFAuckJ9dmFyIEw9dihELmxlbmd0aC0xLE0pO2lmKEwpe3ZhciBPPVIuY04/Ijwvc3Bhbj4iOiIiO2lmKFIuckUpe3krPUooUi5idWZmZXIrTixSKStPfWVsc2V7aWYoUi5lRSl7eSs9SihSLmJ1ZmZlcitOLFIpK08rbShNKX1lbHNle3krPUooUi5idWZmZXIrTitNLFIpK099fXdoaWxlKEw+MSl7Tz1EW0QubGVuZ3RoLTJdLmNOPyI8L3NwYW4+IjoiIjt5Kz1PO0wtLTtELmxlbmd0aC0tfXZhciByPURbRC5sZW5ndGgtMV07RC5sZW5ndGgtLTtEW0QubGVuZ3RoLTFdLmJ1ZmZlcj0iIjtpZihyLnN0YXJ0cyl7SShyLnN0YXJ0cywiIil9cmV0dXJuIFIuckV9aWYodyhNLFIpKXt0aHJvdyJJbGxlZ2FsIn19dmFyIEU9ZVtCXTt2YXIgRD1bRS5kTV07dmFyIEE9MDt2YXIgeD0wO3ZhciB5PSIiO3RyeXt2YXIgcyx1PTA7RS5kTS5idWZmZXI9IiI7ZG97cz1wKEMsdSk7dmFyIHQ9RyhzWzBdLHNbMV0sc1syXSk7dSs9c1swXS5sZW5ndGg7aWYoIXQpe3UrPXNbMV0ubGVuZ3RofX13aGlsZSghc1syXSk7aWYoRC5sZW5ndGg+MSl7dGhyb3ciSWxsZWdhbCJ9cmV0dXJue3I6QSxrZXl3b3JkX2NvdW50OngsdmFsdWU6eX19Y2F0Y2goSCl7aWYoSD09IklsbGVnYWwiKXtyZXR1cm57cjowLGtleXdvcmRfY291bnQ6MCx2YWx1ZTptKEMpfX1lbHNle3Rocm93IEh9fX1mdW5jdGlvbiBnKHQpe3ZhciBwPXtrZXl3b3JkX2NvdW50OjAscjowLHZhbHVlOm0odCl9O3ZhciByPXA7Zm9yKHZhciBxIGluIGUpe2lmKCFlLmhhc093blByb3BlcnR5KHEpKXtjb250aW51ZX12YXIgcz1kKHEsdCk7cy5sYW5ndWFnZT1xO2lmKHMua2V5d29yZF9jb3VudCtzLnI+ci5rZXl3b3JkX2NvdW50K3Iucil7cj1zfWlmKHMua2V5d29yZF9jb3VudCtzLnI+cC5rZXl3b3JkX2NvdW50K3Aucil7cj1wO3A9c319aWYoci5sYW5ndWFnZSl7cC5zZWNvbmRfYmVzdD1yfXJldHVybiBwfWZ1bmN0aW9uIGkocixxLHApe2lmKHEpe3I9ci5yZXBsYWNlKC9eKCg8W14+XSs+fFx0KSspL2dtLGZ1bmN0aW9uKHQsdyx2LHUpe3JldHVybiB3LnJlcGxhY2UoL1x0L2cscSl9KX1pZihwKXtyPXIucmVwbGFjZSgvXG4vZywiPGJyPiIpfXJldHVybiByfWZ1bmN0aW9uIG4odCx3LHIpe3ZhciB4PWgodCxyKTt2YXIgdj1hKHQpO3ZhciB5LHM7aWYodil7eT1kKHYseCl9ZWxzZXtyZXR1cm59dmFyIHE9Yyh0KTtpZihxLmxlbmd0aCl7cz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTtzLmlubmVySFRNTD15LnZhbHVlO3kudmFsdWU9ayhxLGMocykseCl9eS52YWx1ZT1pKHkudmFsdWUsdyxyKTt2YXIgdT10LmNsYXNzTmFtZTtpZighdS5tYXRjaCgiKFxcc3xeKShsYW5ndWFnZS0pPyIrdisiKFxcc3wkKSIpKXt1PXU/KHUrIiAiK3YpOnZ9aWYoL01TSUUgWzY3OF0vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnQudGFnTmFtZT09IkNPREUiJiZ0LnBhcmVudE5vZGUudGFnTmFtZT09IlBSRSIpe3M9dC5wYXJlbnROb2RlO3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3AuaW5uZXJIVE1MPSI8cHJlPjxjb2RlPiIreS52YWx1ZSsiPC9jb2RlPjwvcHJlPiI7dD1wLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDtwLmZpcnN0Q2hpbGQuY049cy5jTjtzLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHAuZmlyc3RDaGlsZCxzKX1lbHNle3QuaW5uZXJIVE1MPXkudmFsdWV9dC5jbGFzc05hbWU9dTt0LnJlc3VsdD17bGFuZ3VhZ2U6dixrdzp5LmtleXdvcmRfY291bnQscmU6eS5yfTtpZih5LnNlY29uZF9iZXN0KXt0LnNlY29uZF9iZXN0PXtsYW5ndWFnZTp5LnNlY29uZF9iZXN0Lmxhbmd1YWdlLGt3Onkuc2Vjb25kX2Jlc3Qua2V5d29yZF9jb3VudCxyZTp5LnNlY29uZF9iZXN0LnJ9fX1mdW5jdGlvbiBvKCl7aWYoby5jYWxsZWQpe3JldHVybn1vLmNhbGxlZD10cnVlO3ZhciByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwcmUiKTtmb3IodmFyIHA9MDtwPHIubGVuZ3RoO3ArKyl7dmFyIHE9YihyW3BdKTtpZihxKXtuKHEsaGxqcy50YWJSZXBsYWNlKX19fWZ1bmN0aW9uIGwoKXtpZih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcil7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLG8sZmFsc2UpO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixvLGZhbHNlKX1lbHNle2lmKHdpbmRvdy5hdHRhY2hFdmVudCl7d2luZG93LmF0dGFjaEV2ZW50KCJvbmxvYWQiLG8pfWVsc2V7d2luZG93Lm9ubG9hZD1vfX19dmFyIGU9e307dGhpcy5MQU5HVUFHRVM9ZTt0aGlzLmhpZ2hsaWdodD1kO3RoaXMuaGlnaGxpZ2h0QXV0bz1nO3RoaXMuZml4TWFya3VwPWk7dGhpcy5oaWdobGlnaHRCbG9jaz1uO3RoaXMuaW5pdEhpZ2hsaWdodGluZz1vO3RoaXMuaW5pdEhpZ2hsaWdodGluZ09uTG9hZD1sO3RoaXMuSVI9IlthLXpBLVpdW2EtekEtWjAtOV9dKiI7dGhpcy5VSVI9IlthLXpBLVpfXVthLXpBLVowLTlfXSoiO3RoaXMuTlI9IlxcYlxcZCsoXFwuXFxkKyk/Ijt0aGlzLkNOUj0iXFxiKDBbeFhdW2EtZkEtRjAtOV0rfChcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQrKT8pIjt0aGlzLkJOUj0iXFxiKDBiWzAxXSspIjt0aGlzLlJTUj0iIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcKnxcXCo9fFxcK3xcXCs9fCx8XFwufC18LT18L3wvPXw6fDt8PHw8PHw8PD18PD18PXw9PXw9PT18Pnw+PXw+Pnw+Pj18Pj4+fD4+Pj18XFw/fFxcW3xcXHt8XFwofFxcXnxcXF49fFxcfHxcXHw9fFxcfFxcfHx+Ijt0aGlzLkVSPSIoPyFbXFxzXFxTXSkiO3RoaXMuQkU9e2I6IlxcXFwuIixyOjB9O3RoaXMuQVNNPXtjTjoic3RyaW5nIixiOiInIixlOiInIixpOiJcXG4iLGM6W3RoaXMuQkVdLHI6MH07dGhpcy5RU009e2NOOiJzdHJpbmciLGI6JyInLGU6JyInLGk6IlxcbiIsYzpbdGhpcy5CRV0scjowfTt0aGlzLkNMQ009e2NOOiJjb21tZW50IixiOiIvLyIsZToiJCJ9O3RoaXMuQ0JMQ0xNPXtjTjoiY29tbWVudCIsYjoiL1xcKiIsZToiXFwqLyJ9O3RoaXMuSENNPXtjTjoiY29tbWVudCIsYjoiIyIsZToiJCJ9O3RoaXMuTk09e2NOOiJudW1iZXIiLGI6dGhpcy5OUixyOjB9O3RoaXMuQ05NPXtjTjoibnVtYmVyIixiOnRoaXMuQ05SLHI6MH07dGhpcy5CTk09e2NOOiJudW1iZXIiLGI6dGhpcy5CTlIscjowfTt0aGlzLmluaGVyaXQ9ZnVuY3Rpb24ocixzKXt2YXIgcD17fTtmb3IodmFyIHEgaW4gcil7cFtxXT1yW3FdfWlmKHMpe2Zvcih2YXIgcSBpbiBzKXtwW3FdPXNbcV19fXJldHVybiBwfX0oKTtobGpzLkxBTkdVQUdFUy5jcHA9ZnVuY3Rpb24oKXt2YXIgYT17a2V5d29yZDp7ImZhbHNlIjoxLCJpbnQiOjEsImZsb2F0IjoxLCJ3aGlsZSI6MSwicHJpdmF0ZSI6MSwiY2hhciI6MSwiY2F0Y2giOjEsImV4cG9ydCI6MSx2aXJ0dWFsOjEsb3BlcmF0b3I6MixzaXplb2Y6MixkeW5hbWljX2Nhc3Q6Mix0eXBlZGVmOjIsY29uc3RfY2FzdDoyLCJjb25zdCI6MSxzdHJ1Y3Q6MSwiZm9yIjoxLHN0YXRpY19jYXN0OjIsdW5pb246MSxuYW1lc3BhY2U6MSx1bnNpZ25lZDoxLCJsb25nIjoxLCJ0aHJvdyI6MSwidm9sYXRpbGUiOjIsInN0YXRpYyI6MSwicHJvdGVjdGVkIjoxLGJvb2w6MSx0ZW1wbGF0ZToxLG11dGFibGU6MSwiaWYiOjEsInB1YmxpYyI6MSxmcmllbmQ6MiwiZG8iOjEsInJldHVybiI6MSwiZ290byI6MSxhdXRvOjEsInZvaWQiOjIsImVudW0iOjEsImVsc2UiOjEsImJyZWFrIjoxLCJuZXciOjEsZXh0ZXJuOjEsdXNpbmc6MSwidHJ1ZSI6MSwiY2xhc3MiOjEsYXNtOjEsImNhc2UiOjEsdHlwZWlkOjEsInNob3J0IjoxLHJlaW50ZXJwcmV0X2Nhc3Q6MiwiZGVmYXVsdCI6MSwiZG91YmxlIjoxLHJlZ2lzdGVyOjEsZXhwbGljaXQ6MSxzaWduZWQ6MSx0eXBlbmFtZToxLCJ0cnkiOjEsInRoaXMiOjEsInN3aXRjaCI6MSwiY29udGludWUiOjEsd2NoYXJfdDoxLGlubGluZToxLCJkZWxldGUiOjEsYWxpZ25vZjoxLGNoYXIxNl90OjEsY2hhcjMyX3Q6MSxjb25zdGV4cHI6MSxkZWNsdHlwZToxLG5vZXhjZXB0OjEsbnVsbHB0cjoxLHN0YXRpY19hc3NlcnQ6MSx0aHJlYWRfbG9jYWw6MSxyZXN0cmljdDoxLF9Cb29sOjEsY29tcGxleDoxfSxidWlsdF9pbjp7c3RkOjEsc3RyaW5nOjEsY2luOjEsY291dDoxLGNlcnI6MSxjbG9nOjEsc3RyaW5nc3RyZWFtOjEsaXN0cmluZ3N0cmVhbToxLG9zdHJpbmdzdHJlYW06MSxhdXRvX3B0cjoxLGRlcXVlOjEsbGlzdDoxLHF1ZXVlOjEsc3RhY2s6MSx2ZWN0b3I6MSxtYXA6MSxzZXQ6MSxiaXRzZXQ6MSxtdWx0aXNldDoxLG11bHRpbWFwOjEsdW5vcmRlcmVkX3NldDoxLHVub3JkZXJlZF9tYXA6MSx1bm9yZGVyZWRfbXVsdGlzZXQ6MSx1bm9yZGVyZWRfbXVsdGltYXA6MSxhcnJheToxLHNoYXJlZF9wdHI6MX19O3JldHVybntkTTp7azphLGk6IjwvIixjOltobGpzLkNMQ00saGxqcy5DQkxDTE0saGxqcy5RU00se2NOOiJzdHJpbmciLGI6IidcXFxcPy4iLGU6IiciLGk6Ii4ifSx7Y046Im51bWJlciIsYjoiXFxiKFxcZCsoXFwuXFxkKik/fFxcLlxcZCspKHV8VXxsfEx8dWx8VUx8ZnxGKSJ9LGhsanMuQ05NLHtjTjoicHJlcHJvY2Vzc29yIixiOiIjIixlOiIkIn0se2NOOiJzdGxfY29udGFpbmVyIixiOiJcXGIoZGVxdWV8bGlzdHxxdWV1ZXxzdGFja3x2ZWN0b3J8bWFwfHNldHxiaXRzZXR8bXVsdGlzZXR8bXVsdGltYXB8dW5vcmRlcmVkX21hcHx1bm9yZGVyZWRfc2V0fHVub3JkZXJlZF9tdWx0aXNldHx1bm9yZGVyZWRfbXVsdGltYXB8YXJyYXkpXFxzKjwiLGU6Ij4iLGs6YSxyOjEwLGM6WyJzZWxmIl19XX19fSgpO2hsanMuTEFOR1VBR0VTLnI9e2RNOntjOltobGpzLkhDTSx7Y046Im51bWJlciIsYjoiXFxiMFt4WF1bMC05YS1mQS1GXStbTGldP1xcYiIsZTpobGpzLklNTUVESUFURV9SRSxyOjB9LHtjTjoibnVtYmVyIixiOiJcXGJcXGQrKD86W2VFXVsrXFwtXT9cXGQqKT9MXFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcYlxcZCtcXC4oPyFcXGQpKD86aVxcYik/IixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJudW1iZXIiLGI6IlxcYlxcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCopP2k/XFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MH0se2NOOiJudW1iZXIiLGI6IlxcLlxcZCsoPzpbZUVdWytcXC1dP1xcZCopP2k/XFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJrZXl3b3JkIixiOiIoPzp0cnlDYXRjaHxsaWJyYXJ5fHNldEdlbmVyaWN8c2V0R3JvdXBHZW5lcmljKVxcYiIsZTpobGpzLklNTUVESUFURV9SRSxyOjEwfSx7Y046ImtleXdvcmQiLGI6IlxcLlxcLlxcLiIsZTpobGpzLklNTUVESUFURV9SRSxyOjEwfSx7Y046ImtleXdvcmQiLGI6IlxcLlxcLlxcZCsoPyFbXFx3Ll0pIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MTB9LHtjTjoia2V5d29yZCIsYjoiXFxiKD86ZnVuY3Rpb24pIixlOmhsanMuSU1NRURJQVRFX1JFLHI6Mn0se2NOOiJrZXl3b3JkIixiOiIoPzppZnxpbnxicmVha3xuZXh0fHJlcGVhdHxlbHNlfGZvcnxyZXR1cm58c3dpdGNofHdoaWxlfHRyeXxzdG9wfHdhcm5pbmd8cmVxdWlyZXxhdHRhY2h8ZGV0YWNofHNvdXJjZXxzZXRNZXRob2R8c2V0Q2xhc3MpXFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJsaXRlcmFsIixiOiIoPzpOQXxOQV9pbnRlZ2VyX3xOQV9yZWFsX3xOQV9jaGFyYWN0ZXJffE5BX2NvbXBsZXhfKVxcYiIsZTpobGpzLklNTUVESUFURV9SRSxyOjEwfSx7Y046ImxpdGVyYWwiLGI6Iig/Ok5VTEx8VFJVRXxGQUxTRXxUfEZ8SW5mfE5hTilcXGIiLGU6aGxqcy5JTU1FRElBVEVfUkUscjoxfSx7Y046ImlkZW50aWZpZXIiLGI6IlthLXpBLVouXVthLXpBLVowLTkuX10qXFxiIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MH0se2NOOiJvcGVyYXRvciIsYjoiPFxcLSg/IVxccypcXGQpIixlOmhsanMuSU1NRURJQVRFX1JFLHI6Mn0se2NOOiJvcGVyYXRvciIsYjoiXFwtPnw8XFwtIixlOmhsanMuSU1NRURJQVRFX1JFLHI6MX0se2NOOiJvcGVyYXRvciIsYjoiJSV8fiIsZTpobGpzLklNTUVESUFURV9SRX0se2NOOiJvcGVyYXRvciIsYjoiPj18PD18PT18IT18XFx8XFx8fCYmfD18XFwrfFxcLXxcXCp8L3xcXF58Pnw8fCF8JnxcXHx8XFwkfDoiLGU6aGxqcy5JTU1FRElBVEVfUkUscjowfSx7Y046Im9wZXJhdG9yIixiOiIlIixlOiIlIixpOiJcXG4iLHI6MX0se2NOOiJpZGVudGlmaWVyIixiOiJgIixlOiJgIixyOjB9LHtjTjoic3RyaW5nIixiOiciJyxlOiciJyxjOltobGpzLkJFXSxyOjB9LHtjTjoic3RyaW5nIixiOiInIixlOiInIixjOltobGpzLkJFXSxyOjB9LHtjTjoicGFyZW4iLGI6IltbKHtcXF0pfV0iLGU6aGxqcy5JTU1FRElBVEVfUkUscjowfV19fTsKaGxqcy5pbml0SGlnaGxpZ2h0aW5nT25Mb2FkKCk7Cgo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
94 <style type="text/css"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
95 pre:not([class]) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
96 background-color: white; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
97 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
98 </style> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
99 <script type="text/javascript"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
100 if (window.hljs && document.readyState && document.readyState === "complete") { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
101 window.setTimeout(function() { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
102 hljs.initHighlighting(); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
103 }, 0); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
104 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
105 </script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
106 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
107 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
108 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
109 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
110 </head> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
111 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
112 <body> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
113 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
114 <style type="text/css"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
115 .main-container { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
116 max-width: 940px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
117 margin-left: auto; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
118 margin-right: auto; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
119 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
120 code { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
121 color: inherit; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
122 background-color: rgba(0, 0, 0, 0.04); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
123 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
124 img { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
125 max-width:100%; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
126 height: auto; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
127 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
128 h1 { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
129 font-size: 34px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
130 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
131 h1.title { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
132 font-size: 38px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
133 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
134 h2 { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
135 font-size: 30px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
136 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
137 h3 { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
138 font-size: 24px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
139 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
140 h4 { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
141 font-size: 18px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
142 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
143 h5 { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
144 font-size: 16px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
145 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
146 h6 { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
147 font-size: 12px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
148 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
149 .tabbed-pane { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
150 padding-top: 12px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
151 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
152 button.code-folding-btn:focus { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
153 outline: none; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
154 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
155 </style> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
156 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
157 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
158 <div class="container-fluid main-container"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
159 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
160 <!-- tabsets --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
161 <script src="data:application/x-javascript;base64,Cgp3aW5kb3cuYnVpbGRUYWJzZXRzID0gZnVuY3Rpb24odG9jSUQpIHsKCiAgLy8gYnVpbGQgYSB0YWJzZXQgZnJvbSBhIHNlY3Rpb24gZGl2IHdpdGggdGhlIC50YWJzZXQgY2xhc3MKICBmdW5jdGlvbiBidWlsZFRhYnNldCh0YWJzZXQpIHsKCiAgICAvLyBjaGVjayBmb3IgZmFkZSBhbmQgcGlsbHMgb3B0aW9ucwogICAgdmFyIGZhZGUgPSB0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1mYWRlIik7CiAgICB2YXIgcGlsbHMgPSB0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1waWxscyIpOwogICAgdmFyIG5hdkNsYXNzID0gcGlsbHMgPyAibmF2LXBpbGxzIiA6ICJuYXYtdGFicyI7CgogICAgLy8gZGV0ZXJtaW5lIHRoZSBoZWFkaW5nIGxldmVsIG9mIHRoZSB0YWJzZXQgYW5kIHRhYnMKICAgIHZhciBtYXRjaCA9IHRhYnNldC5hdHRyKCdjbGFzcycpLm1hdGNoKC9sZXZlbChcZCkgLyk7CiAgICBpZiAobWF0Y2ggPT09IG51bGwpCiAgICAgIHJldHVybjsKICAgIHZhciB0YWJzZXRMZXZlbCA9IE51bWJlcihtYXRjaFsxXSk7CiAgICB2YXIgdGFiTGV2ZWwgPSB0YWJzZXRMZXZlbCArIDE7CgogICAgLy8gZmluZCBhbGwgc3ViaGVhZGluZ3MgaW1tZWRpYXRlbHkgYmVsb3cKICAgIHZhciB0YWJzID0gdGFic2V0LmZpbmQoImRpdi5zZWN0aW9uLmxldmVsIiArIHRhYkxldmVsKTsKICAgIGlmICghdGFicy5sZW5ndGgpCiAgICAgIHJldHVybjsKCiAgICAvLyBjcmVhdGUgdGFibGlzdCBhbmQgdGFiLWNvbnRlbnQgZWxlbWVudHMKICAgIHZhciB0YWJMaXN0ID0gJCgnPHVsIGNsYXNzPSJuYXYgJyArIG5hdkNsYXNzICsgJyIgcm9sZT0idGFibGlzdCI+PC91bD4nKTsKICAgICQodGFic1swXSkuYmVmb3JlKHRhYkxpc3QpOwogICAgdmFyIHRhYkNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPSJ0YWItY29udGVudCI+PC9kaXY+Jyk7CiAgICAkKHRhYnNbMF0pLmJlZm9yZSh0YWJDb250ZW50KTsKCiAgICAvLyBidWlsZCB0aGUgdGFic2V0CiAgICB0YWJzLmVhY2goZnVuY3Rpb24oaSkgewoKICAgICAgLy8gZ2V0IHRoZSB0YWIgZGl2CiAgICAgIHZhciB0YWIgPSAkKHRhYnNbaV0pOwoKICAgICAgLy8gZ2V0IHRoZSBpZCB0aGVuIHNhbml0aXplIGl0IGZvciB1c2Ugd2l0aCBib290c3RyYXAgdGFicwogICAgICB2YXIgaWQgPSB0YWIuYXR0cignaWQnKTsKCiAgICAgIC8vIHJlbW92ZSBhbnkgdGFibGUgb2YgY29udGVudHMgZW50cmllcyBhc3NvY2lhdGVkIHdpdGgKICAgICAgLy8gdGhpcyBJRCAoc2luY2Ugd2UnbGwgYmUgcmVtb3ZpbmcgdGhlIGhlYWRpbmcgZWxlbWVudCkKICAgICAgJCgiZGl2IyIgKyB0b2NJRCArICIgbGkgYVtocmVmPScjIiArIGlkICsgIiddIikucGFyZW50KCkucmVtb3ZlKCk7CgogICAgICAvLyBzYW5pdGl6ZSB0aGUgaWQgZm9yIHVzZSB3aXRoIGJvb3RzdHJhcCB0YWJzCiAgICAgIGlkID0gaWQucmVwbGFjZSgvWy5cLz8mISM8Pl0vZywgJycpLnJlcGxhY2UoL1xzL2csICdfJyk7CiAgICAgIHRhYi5hdHRyKCdpZCcsIGlkKTsKCiAgICAgIC8vIGdldCB0aGUgaGVhZGluZyBlbGVtZW50IHdpdGhpbiBpdCwgZ3JhYiBpdCdzIHRleHQsIHRoZW4gcmVtb3ZlIGl0CiAgICAgIHZhciBoZWFkaW5nID0gdGFiLmZpbmQoJ2gnICsgdGFiTGV2ZWwgKyAnOmZpcnN0Jyk7CiAgICAgIHZhciBoZWFkaW5nVGV4dCA9IGhlYWRpbmcuaHRtbCgpOwogICAgICBoZWFkaW5nLnJlbW92ZSgpOwoKICAgICAgLy8gYnVpbGQgYW5kIGFwcGVuZCB0aGUgdGFiIGxpc3QgaXRlbQogICAgICB2YXIgYSA9ICQoJzxhIHJvbGU9InRhYiIgZGF0YS10b2dnbGU9InRhYiI+JyArIGhlYWRpbmdUZXh0ICsgJzwvYT4nKTsKICAgICAgYS5hdHRyKCdocmVmJywgJyMnICsgaWQpOwogICAgICBhLmF0dHIoJ2FyaWEtY29udHJvbHMnLCBpZCk7CiAgICAgIHZhciBsaSA9ICQoJzxsaSByb2xlPSJwcmVzZW50YXRpb24iPjwvbGk+Jyk7CiAgICAgIGxpLmFwcGVuZChhKTsKICAgICAgaWYgKGkgPT09IDApCiAgICAgICAgbGkuYXR0cignY2xhc3MnLCAnYWN0aXZlJyk7CiAgICAgIHRhYkxpc3QuYXBwZW5kKGxpKTsKCiAgICAgIC8vIHNldCBpdCdzIGF0dHJpYnV0ZXMKICAgICAgdGFiLmF0dHIoJ3JvbGUnLCAndGFicGFuZWwnKTsKICAgICAgdGFiLmFkZENsYXNzKCd0YWItcGFuZScpOwogICAgICB0YWIuYWRkQ2xhc3MoJ3RhYmJlZC1wYW5lJyk7CiAgICAgIGlmIChmYWRlKQogICAgICAgIHRhYi5hZGRDbGFzcygnZmFkZScpOwogICAgICBpZiAoaSA9PT0gMCkgewogICAgICAgIHRhYi5hZGRDbGFzcygnYWN0aXZlJyk7CiAgICAgICAgaWYgKGZhZGUpCiAgICAgICAgICB0YWIuYWRkQ2xhc3MoJ2luJyk7CiAgICAgIH0KCiAgICAgIC8vIG1vdmUgaXQgaW50byB0aGUgdGFiIGNvbnRlbnQgZGl2CiAgICAgIHRhYi5kZXRhY2goKS5hcHBlbmRUbyh0YWJDb250ZW50KTsKICAgIH0pOwogIH0KCiAgLy8gY29udmVydCBzZWN0aW9uIGRpdnMgd2l0aCB0aGUgLnRhYnNldCBjbGFzcyB0byB0YWJzZXRzCiAgdmFyIHRhYnNldHMgPSAkKCJkaXYuc2VjdGlvbi50YWJzZXQiKTsKICB0YWJzZXRzLmVhY2goZnVuY3Rpb24oaSkgewogICAgYnVpbGRUYWJzZXQoJCh0YWJzZXRzW2ldKSk7CiAgfSk7Cn07Cgo="></script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
162 <script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
163 $(document).ready(function () { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
164 window.buildTabsets("TOC"); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
165 }); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
166 </script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
167 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
168 <!-- code folding --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
169 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
170 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
171 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
172 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
173 <script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
174 $(document).ready(function () { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
175 // establish options |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
176 var options = { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
177 selectors: "h1,h2,h3", |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
178 theme: "bootstrap3", |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
179 context: '.toc-content', |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
180 hashGenerator: function (text) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
181 return text.replace(/[.\/?&!#<>]/g, '').replace(/\s/g, '_').toLowerCase(); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
182 }, |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
183 ignoreSelector: "h1.title, .toc-ignore", |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
184 scrollTo: 0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
185 }; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
186 options.showAndHide = true; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
187 options.smoothScroll = true; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
188 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
189 // tocify |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
190 var toc = $("#TOC").tocify(options).data("toc-tocify"); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
191 }); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
192 </script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
193 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
194 <style type="text/css"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
195 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
196 #TOC { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
197 margin: 25px 0px 20px 0px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
198 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
199 @media (max-width: 768px) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
200 #TOC { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
201 position: relative; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
202 width: 100%; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
203 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
204 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
205 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
206 .toc-content { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
207 padding-left: 30px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
208 padding-right: 40px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
209 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
210 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
211 div.main-container { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
212 max-width: 1200px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
213 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
214 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
215 div.tocify { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
216 width: 20%; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
217 max-width: 260px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
218 max-height: 85%; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
219 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
220 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
221 @media (min-width: 768px) and (max-width: 991px) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
222 div.tocify { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
223 width: 25%; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
224 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
225 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
226 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
227 @media (max-width: 767px) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
228 div.tocify { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
229 width: 100%; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
230 max-width: none; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
231 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
232 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
233 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
234 .tocify ul, .tocify li { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
235 line-height: 20px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
236 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
237 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
238 .tocify-subheader .tocify-item { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
239 font-size: 0.9em; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
240 padding-left: 5px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
241 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
242 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
243 .tocify .list-group-item { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
244 border-radius: 0px; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
245 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
246 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
247 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
248 </style> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
249 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
250 <!-- setup 3col/9col grid for toc_float and main content --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
251 <div class="row-fluid"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
252 <div class="col-xs-12 col-sm-4 col-md-3"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
253 <div id="TOC" class="tocify"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
254 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
255 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
256 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
257 <div class="toc-content col-xs-12 col-sm-8 col-md-9"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
258 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
259 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
260 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
261 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
262 <div class="fluid-row" id="header"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
263 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
264 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
265 <h1 class="title">The RNA Centric Analysis System Report</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
266 <h4 class="author"><em>Bora Uyar, Dilmurat Yusuf, Ricardo Wurmus, Altuna Akalin</em></h4> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
267 <h4 class="date"><em>2017-04-07</em></h4> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
268 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
269 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
270 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
271 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
272 <div id="introduction" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
273 <h1><span class="header-section-number">1</span> Introduction</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
274 <p>RCAS is an automated system that provides dynamic genome annotations for custom input files that contain transcriptomic regions. Such transcriptomic regions could be, for instance, peak regions detected by CLIP-Seq analysis that detect protein-RNA interactions, RNA modifications (alias the epitranscriptome), CAGE-tag locations, or any other collection of target regions at the level of the transcriptome.</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
275 <p>RCAS is designed as a reporting tool for the functional analysis of RNA-binding sites detected by high-throughput experiments. It takes as input a BED format file containing the genomic coordinates of the RNA binding sites and a GTF file that contains the genomic annotation features usually provided by publicly available databases such as Ensembl and UCSC. RCAS performs overlap operations between the genomic coordinates of the RNA binding sites and the genomic annotation features and produces in-depth annotation summaries such as the distribution of binding sites with respect to gene features (exons, introns, 5’/3’ UTR regions, exon-intron boundaries, promoter regions, and whole transcripts). Moreover, by detecting the collection of targeted transcripts, RCAS can carry out functional annotation tables for enriched gene sets (annotated by the Molecular Signatures Database) and GO terms. As one of the most important questions that arise during protein-RNA interaction analysis; RCAS has a module for detecting sequence motifs enriched in the targeted regions of the transcriptome. The final report of RCAS consists of high-quality dynamic figures and tables, which are readily applicable for publications or other academic usage.</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
276 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
277 <div id="input-settings" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
278 <h1><span class="header-section-number">2</span> Input Settings</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
279 <p><div id="htmlwidget-3fb5dcf2cea84bf571d8" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
280 <script type="application/json" data-for="htmlwidget-3fb5dcf2cea84bf571d8">{"x":{"filter":"none","extensions":["FixedColumns"],"data":[["1","2","3","4","5","6","7","8","9","10","11","12"],["Query BED file","Target GTF file","Gene set Annotations","Annotation Summary Module","GO Analysis Module","Gene Set Enrichment Analysis Module","Motif Analysis Module","Genome Version","Species","Print Processed Tables?","Randomly sample query regions down to (N)","Working Directory"],["/home/ydilimu/workspace/galaxy_wrapper/galaxytools/tools/rna_tools/rcas/test-data/test_RCAS/input.TIA1.bed","/home/ydilimu/workspace/galaxy_wrapper/galaxytools/tools/rna_tools/rcas/test-data/test_RCAS/input.Homo_sapiens.GRCh37-chr1-f10k.75.gtf","/home/ydilimu/workspace/galaxy_wrapper/galaxytools/tools/rna_tools/rcas/test-data/test_RCAS/input.msigdb_test.gmt","TRUE","TRUE","TRUE","TRUE","hg19","human","TRUE","0","/home/ydilimu/workspace/galaxy_wrapper/galaxytools/tools/rna_tools/rcas/test-data/test_RCAS"]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>parameters\u003c/th>\n <th>values\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"pageLength":20,"dom":"t","order":[],"autoWidth":false,"orderClasses":false,"columnDefs":[{"orderable":false,"targets":0}],"lengthMenu":[10,20,25,50,100]}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
281 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
282 <div id="annotation-summary-for-query-regions" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
283 <h1><span class="header-section-number">3</span> Annotation Summary for Query Regions</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
284 <div id="distribution-of-query-regions-across-gene-features" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
285 <h2><span class="header-section-number">3.1</span> Distribution of query regions across gene features</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
286 <p><strong>Figure 1 :</strong> The number of query regions that overlap different kinds of gene features are counted. The ‘y’ axis denotes the types of gene features included in the analysis and the ‘x’ axis denotes the percentage of query regions (out of total number of query regions denoted with ‘n’) that overlap at least one genomic interval that host the corresponding feature. Notice that the sum of the percentage values for different features don’t add up to 100%, because some query regions may overlap multiple kinds of features</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
287 <p><div id="htmlwidget-fdf2747d62453e52ff34" style="width:768px;height:432px;" class="plotly html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
288 <script type="application/json" data-for="htmlwidget-fdf2747d62453e52ff34">{"x":{"layout":{"margin":{"b":150,"l":60,"t":25,"r":50},"xaxis":{"domain":[0,1],"title":"features","type":"category","categoryorder":"array","categoryarray":["cds","exons","fiveUTRs","introns","promoters","threeUTRs","transcripts"]},"yaxis":{"domain":[0,1],"title":"percentage of query regions, n = 9995"},"font":{"size":14}},"config":{"modeBarButtonsToRemove":["sendDataToCloud"]},"base_url":"https://plot.ly","source":"A","data":[{"x":["cds"],"y":[0],"text":"count: 3","type":"bar","name":"cds","marker":{"fillcolor":"rgba(102,194,165,0.5)","color":"rgba(102,194,165,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"},{"x":["exons"],"y":[0.2],"text":"count: 15","type":"bar","name":"exons","marker":{"fillcolor":"rgba(252,141,98,0.5)","color":"rgba(252,141,98,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"},{"x":["fiveUTRs"],"y":[0],"text":"count: 4","type":"bar","name":"fiveUTRs","marker":{"fillcolor":"rgba(141,160,203,0.5)","color":"rgba(141,160,203,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"},{"x":["introns"],"y":[0.1],"text":"count: 6","type":"bar","name":"introns","marker":{"fillcolor":"rgba(231,138,195,0.5)","color":"rgba(231,138,195,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"},{"x":["promoters"],"y":[0],"text":"count: 4","type":"bar","name":"promoters","marker":{"fillcolor":"rgba(166,216,84,0.5)","color":"rgba(166,216,84,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"},{"x":["threeUTRs"],"y":[0.1],"text":"count: 12","type":"bar","name":"threeUTRs","marker":{"fillcolor":"rgba(255,217,47,0.5)","color":"rgba(255,217,47,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"},{"x":["transcripts"],"y":[0.2],"text":"count: 18","type":"bar","name":"transcripts","marker":{"fillcolor":"rgba(229,196,148,0.5)","color":"rgba(229,196,148,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"}]},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
289 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
290 <div id="interactive-table-of-genes-that-overlap-query-regions" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
291 <h2><span class="header-section-number">3.2</span> Interactive table of genes that overlap query regions</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
292 <p><strong>Table 1 :</strong> Interactive table of top 100 genes that overlap query regions, grouped by gene features such as introns, exons, UTRs, etc.</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
293 <p><div id="htmlwidget-31891b3b38adaa91d5a2" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
294 <script type="application/json" data-for="htmlwidget-31891b3b38adaa91d5a2">{"x":{"filter":"bottom","filterHTML":"<tr>\n <td>\u003c/td>\n <td data-type=\"character\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"5\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"4\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"1\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"1\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"1\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"1\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0\" data-max=\"3\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n\u003c/tr>","extensions":["Buttons","FixedColumns"],"data":[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100"],["ENST00000378609","ENST00000327044","ENST00000347370","ENST00000378536","ENST00000450390","ENST00000477976","ENST00000263741","ENST00000291386","ENST00000306256","ENST00000308647","ENST00000323275","ENST00000360001","ENST00000378512","ENST00000378513","ENST00000378518","ENST00000378567","ENST00000378726","ENST00000400809","ENST00000400920","ENST00000400921","ENST00000408952","ENST00000411962","ENST00000418865","ENST00000419704","ENST00000421495","ENST00000429572","ENST00000430786","ENST00000434686","ENST00000434694","ENST00000435064","ENST00000439272","ENST00000443438","ENST00000450926","ENST00000458452","ENST00000461106","ENST00000461465","ENST00000461893","ENST00000465727","ENST00000466651","ENST00000468310","ENST00000469113","ENST00000470596","ENST00000471354","ENST00000471930","ENST00000472194","ENST00000472614","ENST00000474481","ENST00000478938","ENST00000481140","ENST00000481223","ENST00000482365","ENST00000482621","ENST00000482686","ENST00000483767","ENST00000485748","ENST00000486681","ENST00000487214","ENST00000488042","ENST00000488340","ENST00000488353","ENST00000494748","ENST00000495347","ENST00000496007","ENST00000496325","ENST00000496353","ENST00000498173","ENST00000505849","ENST00000525603","ENST00000526113","ENST00000526332","ENST00000526797","ENST00000526904","ENST00000527098","ENST00000527719","ENST00000528879","ENST00000530031","ENST00000531377","ENST00000532772","ENST00000540437","ENST00000545578","ENST00000605895","ENST00000378733","ENST00000425828","ENST00000444968","ENST00000462432","ENST00000480479","ENST00000480646","ENST00000492998",null,null,null,null,null,null,null,null,null,null,null,null],[5,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null],[4,1,2,2,2,1,1,1,1,1,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,null,null,null,null,null,null,null,null,null,null,null,null],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null],[1,1,0,0,0,1,0,0,0,0,1,0,0,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null],[1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null],[3,1,2,2,2,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,null,null,null,null,null,null,null,null,null,null,null,null]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>tx_name\u003c/th>\n <th>transcripts\u003c/th>\n <th>exons\u003c/th>\n <th>promoters\u003c/th>\n <th>fiveUTRs\u003c/th>\n <th>introns\u003c/th>\n <th>cds\u003c/th>\n <th>threeUTRs\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"dom":"Bfrtip","buttons":["copy","print","csv","excel","pdf"],"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7,8]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
295 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
296 <div id="distribution-of-query-regions-in-the-genome-grouped-by-gene-types" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
297 <h2><span class="header-section-number">3.3</span> Distribution of query regions in the genome grouped by gene types</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
298 <p><strong>Figure 2 :</strong> The number of query regions that overlap different kinds of gene types are counted. The ‘x’ axis denotes the types of genes included in the analysis and the ‘y’ axis denotes the percentage of query regions (out of total number of query regions denoted with ‘n’) that overlap at least one genomic interval that host the corresponding gene type. If the query regions don’t overlap any known genes, they are classified as ‘Unknown’.</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
299 <p><div id="htmlwidget-b81d284a5b809992de82" style="width:768px;height:432px;" class="plotly html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
300 <script type="application/json" data-for="htmlwidget-b81d284a5b809992de82">{"x":{"layout":{"margin":{"b":150,"l":100,"t":25,"r":100},"xaxis":{"domain":[0,1],"showticklabels":true,"tickangle":90,"type":"category","categoryorder":"array","categoryarray":["protein_coding"]},"yaxis":{"domain":[0,1],"title":"percentage of query regions, n = 9995"},"font":{"size":14}},"config":{"modeBarButtonsToRemove":["sendDataToCloud"]},"base_url":"https://plot.ly","source":"A","data":[{"x":["protein_coding"],"y":[0.2],"text":"count: 18","type":"bar","name":"protein_coding","marker":{"fillcolor":"rgba(252,141,98,0.5)","color":"rgba(252,141,98,1)","line":{"color":"transparent"}},"xaxis":"x","yaxis":"y"}]},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
301 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
302 <div id="coverage-profile-of-query-regions-ataround-transcription-startend-sites" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
303 <h2><span class="header-section-number">3.4</span> Coverage profile of query regions at/around Transcription Start/End Sites</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
304 <p><strong>Figure 3 :</strong> The depth of coverage of query regions at and around Transcription Start/End Sites</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
305 <p><div id="htmlwidget-030561e52758cd3582c3" style="width:768px;height:432px;" class="plotly html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
306 <script type="application/json" data-for="htmlwidget-030561e52758cd3582c3">{"x":{"data":[{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mode":"lines","name":"transcripts 5' end coverage","type":"scatter","line":{"fillcolor":"rgba(31,119,180,1)","color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y"},{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,999,999,998,997,996,995,994,993,992,991,990,989,988,987,986,985,984,983,982,981,980,979,978,977,976,975,974,973,972,971,970,969,968,967,966,965,964,963,962,961,960,959,958,957,956,955,954,953,952,951,950,949,948,947,946,945,944,943,942,941,940,939,938,937,936,935,934,933,932,931,930,929,928,927,926,925,924,923,922,921,920,919,918,917,916,915,914,913,912,911,910,909,908,907,906,905,904,903,902,901,900,899,898,897,896,895,894,893,892,891,890,889,888,887,886,885,884,883,882,881,880,879,878,877,876,875,874,873,872,871,870,869,868,867,866,865,864,863,862,861,860,859,858,857,856,855,854,853,852,851,850,849,848,847,846,845,844,843,842,841,840,839,838,837,836,835,834,833,832,831,830,829,828,827,826,825,824,823,822,821,820,819,818,817,816,815,814,813,812,811,810,809,808,807,806,805,804,803,802,801,800,799,798,797,796,795,794,793,792,791,790,789,788,787,786,785,784,783,782,781,780,779,778,777,776,775,774,773,772,771,770,769,768,767,766,765,764,763,762,761,760,759,758,757,756,755,754,753,752,751,750,749,748,747,746,745,744,743,742,741,740,739,738,737,736,735,734,733,732,731,730,729,728,727,726,725,724,723,722,721,720,719,718,717,716,715,714,713,712,711,710,709,708,707,706,705,704,703,702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687,686,685,684,683,682,681,680,679,678,677,676,675,674,673,672,671,670,669,668,667,666,665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617,616,615,614,613,612,611,610,609,608,607,606,605,604,603,602,601,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,575,574,573,572,571,570,569,568,567,566,565,564,563,562,561,560,559,558,557,556,555,554,553,552,551,550,549,548,547,546,545,544,543,542,541,540,539,538,537,536,535,534,533,532,531,530,529,528,527,526,525,524,523,522,521,520,519,518,517,516,515,514,513,512,511,510,509,508,507,506,505,504,503,502,501,500,499,498,497,496,495,494,493,492,491,490,489,488,487,486,485,484,483,482,481,480,479,478,477,476,475,474,473,472,471,470,469,468,467,466,465,464,463,462,461,460,459,458,457,456,455,454,453,452,451,450,449,448,447,446,445,444,443,442,441,440,439,438,437,436,435,434,433,432,431,430,429,428,427,426,425,424,423,422,421,420,419,418,417,416,415,414,413,412,411,410,409,408,407,406,405,404,403,402,401,400,399,398,397,396,395,394,393,392,391,390,389,388,387,386,385,384,383,382,381,380,379,378,377,376,375,374,373,372,371,370,369,368,367,366,365,364,363,362,361,360,359,358,357,356,355,354,353,352,351,350,349,348,347,346,345,344,343,342,341,340,339,338,337,336,335,334,333,332,331,330,329,328,327,326,325,324,323,322,321,320,319,318,317,316,315,314,313,312,311,310,309,308,307,306,305,304,303,302,301,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,274,273,272,271,270,269,268,267,266,265,264,263,262,261,260,259,258,257,256,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-63,-64,-65,-66,-67,-68,-69,-70,-71,-72,-73,-74,-75,-76,-77,-78,-79,-80,-81,-82,-83,-84,-85,-86,-87,-88,-89,-90,-91,-92,-93,-94,-95,-96,-97,-98,-99,-100,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-113,-114,-115,-116,-117,-118,-119,-120,-121,-122,-123,-124,-125,-126,-127,-128,-129,-130,-131,-132,-133,-134,-135,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-211,-212,-213,-214,-215,-216,-217,-218,-219,-220,-221,-222,-223,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,-235,-236,-237,-238,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-257,-258,-259,-260,-261,-262,-263,-264,-265,-266,-267,-268,-269,-270,-271,-272,-273,-274,-275,-276,-277,-278,-279,-280,-281,-282,-283,-284,-285,-286,-287,-288,-289,-290,-291,-292,-293,-294,-295,-296,-297,-298,-299,-300,-301,-302,-303,-304,-305,-306,-307,-308,-309,-310,-311,-312,-313,-314,-315,-316,-317,-318,-319,-320,-321,-322,-323,-324,-325,-326,-327,-328,-329,-330,-331,-332,-333,-334,-335,-336,-337,-338,-339,-340,-341,-342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-368,-369,-370,-371,-372,-373,-374,-375,-376,-377,-378,-379,-380,-381,-382,-383,-384,-385,-386,-387,-388,-389,-390,-391,-392,-393,-394,-395,-396,-397,-398,-399,-400,-401,-402,-403,-404,-405,-406,-407,-408,-409,-410,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508,-509,-510,-511,-512,-513,-514,-515,-516,-517,-518,-519,-520,-521,-522,-523,-524,-525,-526,-527,-528,-529,-530,-531,-532,-533,-534,-535,-536,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-548,-549,-550,-551,-552,-553,-554,-555,-556,-557,-558,-559,-560,-561,-562,-563,-564,-565,-566,-567,-568,-569,-570,-571,-572,-573,-574,-575,-576,-577,-578,-579,-580,-581,-582,-583,-584,-585,-586,-587,-588,-589,-590,-591,-592,-593,-594,-595,-596,-597,-598,-599,-600,-601,-602,-603,-604,-605,-606,-607,-608,-609,-610,-611,-612,-613,-614,-615,-616,-617,-618,-619,-620,-621,-622,-623,-624,-625,-626,-627,-628,-629,-630,-631,-632,-633,-634,-635,-636,-637,-638,-639,-640,-641,-642,-643,-644,-645,-646,-647,-648,-649,-650,-651,-652,-653,-654,-655,-656,-657,-658,-659,-660,-661,-662,-663,-664,-665,-666,-667,-668,-669,-670,-671,-672,-673,-674,-675,-676,-677,-678,-679,-680,-681,-682,-683,-684,-685,-686,-687,-688,-689,-690,-691,-692,-693,-694,-695,-696,-697,-698,-699,-700,-701,-702,-703,-704,-705,-706,-707,-708,-709,-710,-711,-712,-713,-714,-715,-716,-717,-718,-719,-720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734,-735,-736,-737,-738,-739,-740,-741,-742,-743,-744,-745,-746,-747,-748,-749,-750,-751,-752,-753,-754,-755,-756,-757,-758,-759,-760,-761,-762,-763,-764,-765,-766,-767,-768,-769,-770,-771,-772,-773,-774,-775,-776,-777,-778,-779,-780,-781,-782,-783,-784,-785,-786,-787,-788,-789,-790,-791,-792,-793,-794,-795,-796,-797,-798,-799,-800,-801,-802,-803,-804,-805,-806,-807,-808,-809,-810,-811,-812,-813,-814,-815,-816,-817,-818,-819,-820,-821,-822,-823,-824,-825,-826,-827,-828,-829,-830,-831,-832,-833,-834,-835,-836,-837,-838,-839,-840,-841,-842,-843,-844,-845,-846,-847,-848,-849,-850,-851,-852,-853,-854,-855,-856,-857,-858,-859,-860,-861,-862,-863,-864,-865,-866,-867,-868,-869,-870,-871,-872,-873,-874,-875,-876,-877,-878,-879,-880,-881,-882,-883,-884,-885,-886,-887,-888,-889,-890,-891,-892,-893,-894,-895,-896,-897,-898,-899,-900,-901,-902,-903,-904,-905,-906,-907,-908,-909,-910,-911,-912,-913,-914,-915,-916,-917,-918,-919,-920,-921,-922,-923,-924,-925,-926,-927,-928,-929,-930,-931,-932,-933,-934,-935,-936,-937,-938,-939,-940,-941,-942,-943,-944,-945,-946,-947,-948,-949,-950,-951,-952,-953,-954,-955,-956,-957,-958,-959,-960,-961,-962,-963,-964,-965,-966,-967,-968,-969,-970,-971,-972,-973,-974,-975,-976,-977,-978,-979,-980,-981,-982,-983,-984,-985,-986,-987,-988,-989,-990,-991,-992,-993,-994,-995,-996,-997,-998,-999,-1000],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mode":"lines","name":"transcripts 5' standard error (95% conf. int.)","type":"scatter","hoveron":"points","fill":"toself","line":{"fillcolor":"rgba(255,127,14,1)","color":"rgba(182, 7, 127, 0.05)"},"fillcolor":"rgba(182, 7, 127, 0.22)","xaxis":"x","yaxis":"y"},{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00123456790123457,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.0037037037037037,0.0037037037037037,0.0037037037037037,0.0037037037037037,0.0037037037037037,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.0037037037037037,0.0037037037037037,0.0037037037037037,0.0037037037037037,0.0037037037037037,0.00493827160493827,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00617283950617284,0.00740740740740741,0.00740740740740741,0.00740740740740741,0.00864197530864197,0.00864197530864197,0.00987654320987654,0.00987654320987654,0.00864197530864197,0.00864197530864197,0.00864197530864197,0.00864197530864197,0.00864197530864197,0.00864197530864197,0.00864197530864197,0.00617283950617284,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.0037037037037037,0.00493827160493827,0.00493827160493827,0.0037037037037037,0.0037037037037037,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00246913580246914,0.0037037037037037,0.0037037037037037,0.00493827160493827,0.00493827160493827,0.00493827160493827,0.00246913580246914,0.00123456790123457,0.00123456790123457,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00246913580246914,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00246913580246914,0.00246913580246914,0.00246913580246914,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457],"mode":"lines","name":"transcripts 3' end coverage","type":"scatter","line":{"fillcolor":"rgba(31,119,180,1)","color":"rgba(44,160,44,1)"},"xaxis":"x2","yaxis":"y"},{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,999,999,998,997,996,995,994,993,992,991,990,989,988,987,986,985,984,983,982,981,980,979,978,977,976,975,974,973,972,971,970,969,968,967,966,965,964,963,962,961,960,959,958,957,956,955,954,953,952,951,950,949,948,947,946,945,944,943,942,941,940,939,938,937,936,935,934,933,932,931,930,929,928,927,926,925,924,923,922,921,920,919,918,917,916,915,914,913,912,911,910,909,908,907,906,905,904,903,902,901,900,899,898,897,896,895,894,893,892,891,890,889,888,887,886,885,884,883,882,881,880,879,878,877,876,875,874,873,872,871,870,869,868,867,866,865,864,863,862,861,860,859,858,857,856,855,854,853,852,851,850,849,848,847,846,845,844,843,842,841,840,839,838,837,836,835,834,833,832,831,830,829,828,827,826,825,824,823,822,821,820,819,818,817,816,815,814,813,812,811,810,809,808,807,806,805,804,803,802,801,800,799,798,797,796,795,794,793,792,791,790,789,788,787,786,785,784,783,782,781,780,779,778,777,776,775,774,773,772,771,770,769,768,767,766,765,764,763,762,761,760,759,758,757,756,755,754,753,752,751,750,749,748,747,746,745,744,743,742,741,740,739,738,737,736,735,734,733,732,731,730,729,728,727,726,725,724,723,722,721,720,719,718,717,716,715,714,713,712,711,710,709,708,707,706,705,704,703,702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687,686,685,684,683,682,681,680,679,678,677,676,675,674,673,672,671,670,669,668,667,666,665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617,616,615,614,613,612,611,610,609,608,607,606,605,604,603,602,601,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,575,574,573,572,571,570,569,568,567,566,565,564,563,562,561,560,559,558,557,556,555,554,553,552,551,550,549,548,547,546,545,544,543,542,541,540,539,538,537,536,535,534,533,532,531,530,529,528,527,526,525,524,523,522,521,520,519,518,517,516,515,514,513,512,511,510,509,508,507,506,505,504,503,502,501,500,499,498,497,496,495,494,493,492,491,490,489,488,487,486,485,484,483,482,481,480,479,478,477,476,475,474,473,472,471,470,469,468,467,466,465,464,463,462,461,460,459,458,457,456,455,454,453,452,451,450,449,448,447,446,445,444,443,442,441,440,439,438,437,436,435,434,433,432,431,430,429,428,427,426,425,424,423,422,421,420,419,418,417,416,415,414,413,412,411,410,409,408,407,406,405,404,403,402,401,400,399,398,397,396,395,394,393,392,391,390,389,388,387,386,385,384,383,382,381,380,379,378,377,376,375,374,373,372,371,370,369,368,367,366,365,364,363,362,361,360,359,358,357,356,355,354,353,352,351,350,349,348,347,346,345,344,343,342,341,340,339,338,337,336,335,334,333,332,331,330,329,328,327,326,325,324,323,322,321,320,319,318,317,316,315,314,313,312,311,310,309,308,307,306,305,304,303,302,301,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,274,273,272,271,270,269,268,267,266,265,264,263,262,261,260,259,258,257,256,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-63,-64,-65,-66,-67,-68,-69,-70,-71,-72,-73,-74,-75,-76,-77,-78,-79,-80,-81,-82,-83,-84,-85,-86,-87,-88,-89,-90,-91,-92,-93,-94,-95,-96,-97,-98,-99,-100,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-113,-114,-115,-116,-117,-118,-119,-120,-121,-122,-123,-124,-125,-126,-127,-128,-129,-130,-131,-132,-133,-134,-135,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-211,-212,-213,-214,-215,-216,-217,-218,-219,-220,-221,-222,-223,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,-235,-236,-237,-238,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-257,-258,-259,-260,-261,-262,-263,-264,-265,-266,-267,-268,-269,-270,-271,-272,-273,-274,-275,-276,-277,-278,-279,-280,-281,-282,-283,-284,-285,-286,-287,-288,-289,-290,-291,-292,-293,-294,-295,-296,-297,-298,-299,-300,-301,-302,-303,-304,-305,-306,-307,-308,-309,-310,-311,-312,-313,-314,-315,-316,-317,-318,-319,-320,-321,-322,-323,-324,-325,-326,-327,-328,-329,-330,-331,-332,-333,-334,-335,-336,-337,-338,-339,-340,-341,-342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-368,-369,-370,-371,-372,-373,-374,-375,-376,-377,-378,-379,-380,-381,-382,-383,-384,-385,-386,-387,-388,-389,-390,-391,-392,-393,-394,-395,-396,-397,-398,-399,-400,-401,-402,-403,-404,-405,-406,-407,-408,-409,-410,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508,-509,-510,-511,-512,-513,-514,-515,-516,-517,-518,-519,-520,-521,-522,-523,-524,-525,-526,-527,-528,-529,-530,-531,-532,-533,-534,-535,-536,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-548,-549,-550,-551,-552,-553,-554,-555,-556,-557,-558,-559,-560,-561,-562,-563,-564,-565,-566,-567,-568,-569,-570,-571,-572,-573,-574,-575,-576,-577,-578,-579,-580,-581,-582,-583,-584,-585,-586,-587,-588,-589,-590,-591,-592,-593,-594,-595,-596,-597,-598,-599,-600,-601,-602,-603,-604,-605,-606,-607,-608,-609,-610,-611,-612,-613,-614,-615,-616,-617,-618,-619,-620,-621,-622,-623,-624,-625,-626,-627,-628,-629,-630,-631,-632,-633,-634,-635,-636,-637,-638,-639,-640,-641,-642,-643,-644,-645,-646,-647,-648,-649,-650,-651,-652,-653,-654,-655,-656,-657,-658,-659,-660,-661,-662,-663,-664,-665,-666,-667,-668,-669,-670,-671,-672,-673,-674,-675,-676,-677,-678,-679,-680,-681,-682,-683,-684,-685,-686,-687,-688,-689,-690,-691,-692,-693,-694,-695,-696,-697,-698,-699,-700,-701,-702,-703,-704,-705,-706,-707,-708,-709,-710,-711,-712,-713,-714,-715,-716,-717,-718,-719,-720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734,-735,-736,-737,-738,-739,-740,-741,-742,-743,-744,-745,-746,-747,-748,-749,-750,-751,-752,-753,-754,-755,-756,-757,-758,-759,-760,-761,-762,-763,-764,-765,-766,-767,-768,-769,-770,-771,-772,-773,-774,-775,-776,-777,-778,-779,-780,-781,-782,-783,-784,-785,-786,-787,-788,-789,-790,-791,-792,-793,-794,-795,-796,-797,-798,-799,-800,-801,-802,-803,-804,-805,-806,-807,-808,-809,-810,-811,-812,-813,-814,-815,-816,-817,-818,-819,-820,-821,-822,-823,-824,-825,-826,-827,-828,-829,-830,-831,-832,-833,-834,-835,-836,-837,-838,-839,-840,-841,-842,-843,-844,-845,-846,-847,-848,-849,-850,-851,-852,-853,-854,-855,-856,-857,-858,-859,-860,-861,-862,-863,-864,-865,-866,-867,-868,-869,-870,-871,-872,-873,-874,-875,-876,-877,-878,-879,-880,-881,-882,-883,-884,-885,-886,-887,-888,-889,-890,-891,-892,-893,-894,-895,-896,-897,-898,-899,-900,-901,-902,-903,-904,-905,-906,-907,-908,-909,-910,-911,-912,-913,-914,-915,-916,-917,-918,-919,-920,-921,-922,-923,-924,-925,-926,-927,-928,-929,-930,-931,-932,-933,-934,-935,-936,-937,-938,-939,-940,-941,-942,-943,-944,-945,-946,-947,-948,-949,-950,-951,-952,-953,-954,-955,-956,-957,-958,-959,-960,-961,-962,-963,-964,-965,-966,-967,-968,-969,-970,-971,-972,-973,-974,-975,-976,-977,-978,-979,-980,-981,-982,-983,-984,-985,-986,-987,-988,-989,-990,-991,-992,-993,-994,-995,-996,-997,-998,-999,-1000],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.00118518518518519,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.000482247740962296,-0.000482247740962296,-0.000482247740962296,-0.000482247740962296,-0.000482247740962296,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,-0.000482247740962296,-0.000482247740962296,-0.000482247740962296,-0.000482247740962296,-0.000482247740962296,0.000107746892681135,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.000775500038668353,0.00149859174838016,0.00149859174838016,0.00149859174838016,0.00226369525126141,0.00226369525126141,0.0030621220810116,0.0030621220810116,0.00226369525126141,0.00226369525126141,0.00226369525126141,0.00226369525126141,0.00226369525126141,0.00226369525126141,0.00226369525126141,0.000775500038668353,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,0.000107746892681135,-0.000482247740962296,0.000107746892681135,0.000107746892681135,-0.000482247740962296,-0.000482247740962296,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0009507961897794,-0.000482247740962296,-0.000482247740962296,0.000107746892681135,0.000107746892681135,0.000107746892681135,-0.0009507961897794,-0.00118518518518519,-0.00118518518518519,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.0009507961897794,-0.0009507961897794,-0.0009507961897794,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0.00365432098765432,0.00365432098765432,0.00588906779471767,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.0078896551483697,0.0078896551483697,0.00588906779471767,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.0078896551483697,0.0078896551483697,0.00976879631719541,0.00976879631719541,0.0078896551483697,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.0115701789736773,0.0150202553660225,0.0150202553660225,0.0150202553660225,0.0150202553660225,0.0150202553660225,0.0150202553660225,0.0150202553660225,0.0166909643387415,0.0166909643387415,0.0150202553660225,0.0150202553660225,0.0133162230664347,0.0133162230664347,0.0133162230664347,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.0115701789736773,0.00976879631719541,0.0078896551483697,0.0078896551483697,0.0078896551483697,0.0078896551483697,0.0078896551483697,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.00976879631719541,0.0078896551483697,0.0078896551483697,0.0078896551483697,0.0078896551483697,0.0078896551483697,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0.00365432098765432,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00588906779471767,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mode":"lines","name":"transcripts 3' standard error (95% conf. int.)","type":"scatter","hoveron":"points","fill":"toself","line":{"fillcolor":"rgba(255,127,14,1)","color":"rgba(7, 164, 181, 0.05)"},"fillcolor":"rgba(7, 164, 181, 0.2)","xaxis":"x2","yaxis":"y"}],"layout":{"xaxis":{"domain":[0,0.48],"anchor":"y","title":"Distance (bp) to 5' boundary"},"xaxis2":{"domain":[0.52,1],"anchor":"y","title":"Distance (bp) to 3' boundary"},"yaxis":{"domain":[0,1],"title":"Mean Coverage Score","anchor":"x"},"margin":{"b":100,"l":100,"t":25,"r":10},"legend":{"x":0,"y":100,"orientation":"h"},"font":{"size":14}},"config":{"modeBarButtonsToRemove":["sendDataToCloud"]},"source":"A","subplot":true},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
307 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
308 <div id="coverage-profile-of-query-regions-at-exon---intron-boundaries" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
309 <h2><span class="header-section-number">3.5</span> Coverage profile of query regions at Exon - Intron Boundaries</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
310 <p><strong>Figure 4 :</strong> The depth of coverage of query regions at exon - intron junctions</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
311 <p><div id="htmlwidget-a1c856db045004f40208" style="width:768px;height:432px;" class="plotly html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
312 <script type="application/json" data-for="htmlwidget-a1c856db045004f40208">{"x":{"data":[{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0.00181598062953995,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.00121065375302663,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0,0,0,0,0,0,0,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0.00423728813559322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mode":"lines","name":"Internal Exons 5' end coverage","type":"scatter","line":{"fillcolor":"rgba(31,119,180,1)","color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y"},{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,999,999,998,997,996,995,994,993,992,991,990,989,988,987,986,985,984,983,982,981,980,979,978,977,976,975,974,973,972,971,970,969,968,967,966,965,964,963,962,961,960,959,958,957,956,955,954,953,952,951,950,949,948,947,946,945,944,943,942,941,940,939,938,937,936,935,934,933,932,931,930,929,928,927,926,925,924,923,922,921,920,919,918,917,916,915,914,913,912,911,910,909,908,907,906,905,904,903,902,901,900,899,898,897,896,895,894,893,892,891,890,889,888,887,886,885,884,883,882,881,880,879,878,877,876,875,874,873,872,871,870,869,868,867,866,865,864,863,862,861,860,859,858,857,856,855,854,853,852,851,850,849,848,847,846,845,844,843,842,841,840,839,838,837,836,835,834,833,832,831,830,829,828,827,826,825,824,823,822,821,820,819,818,817,816,815,814,813,812,811,810,809,808,807,806,805,804,803,802,801,800,799,798,797,796,795,794,793,792,791,790,789,788,787,786,785,784,783,782,781,780,779,778,777,776,775,774,773,772,771,770,769,768,767,766,765,764,763,762,761,760,759,758,757,756,755,754,753,752,751,750,749,748,747,746,745,744,743,742,741,740,739,738,737,736,735,734,733,732,731,730,729,728,727,726,725,724,723,722,721,720,719,718,717,716,715,714,713,712,711,710,709,708,707,706,705,704,703,702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687,686,685,684,683,682,681,680,679,678,677,676,675,674,673,672,671,670,669,668,667,666,665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617,616,615,614,613,612,611,610,609,608,607,606,605,604,603,602,601,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,575,574,573,572,571,570,569,568,567,566,565,564,563,562,561,560,559,558,557,556,555,554,553,552,551,550,549,548,547,546,545,544,543,542,541,540,539,538,537,536,535,534,533,532,531,530,529,528,527,526,525,524,523,522,521,520,519,518,517,516,515,514,513,512,511,510,509,508,507,506,505,504,503,502,501,500,499,498,497,496,495,494,493,492,491,490,489,488,487,486,485,484,483,482,481,480,479,478,477,476,475,474,473,472,471,470,469,468,467,466,465,464,463,462,461,460,459,458,457,456,455,454,453,452,451,450,449,448,447,446,445,444,443,442,441,440,439,438,437,436,435,434,433,432,431,430,429,428,427,426,425,424,423,422,421,420,419,418,417,416,415,414,413,412,411,410,409,408,407,406,405,404,403,402,401,400,399,398,397,396,395,394,393,392,391,390,389,388,387,386,385,384,383,382,381,380,379,378,377,376,375,374,373,372,371,370,369,368,367,366,365,364,363,362,361,360,359,358,357,356,355,354,353,352,351,350,349,348,347,346,345,344,343,342,341,340,339,338,337,336,335,334,333,332,331,330,329,328,327,326,325,324,323,322,321,320,319,318,317,316,315,314,313,312,311,310,309,308,307,306,305,304,303,302,301,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,274,273,272,271,270,269,268,267,266,265,264,263,262,261,260,259,258,257,256,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-63,-64,-65,-66,-67,-68,-69,-70,-71,-72,-73,-74,-75,-76,-77,-78,-79,-80,-81,-82,-83,-84,-85,-86,-87,-88,-89,-90,-91,-92,-93,-94,-95,-96,-97,-98,-99,-100,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-113,-114,-115,-116,-117,-118,-119,-120,-121,-122,-123,-124,-125,-126,-127,-128,-129,-130,-131,-132,-133,-134,-135,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-211,-212,-213,-214,-215,-216,-217,-218,-219,-220,-221,-222,-223,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,-235,-236,-237,-238,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-257,-258,-259,-260,-261,-262,-263,-264,-265,-266,-267,-268,-269,-270,-271,-272,-273,-274,-275,-276,-277,-278,-279,-280,-281,-282,-283,-284,-285,-286,-287,-288,-289,-290,-291,-292,-293,-294,-295,-296,-297,-298,-299,-300,-301,-302,-303,-304,-305,-306,-307,-308,-309,-310,-311,-312,-313,-314,-315,-316,-317,-318,-319,-320,-321,-322,-323,-324,-325,-326,-327,-328,-329,-330,-331,-332,-333,-334,-335,-336,-337,-338,-339,-340,-341,-342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-368,-369,-370,-371,-372,-373,-374,-375,-376,-377,-378,-379,-380,-381,-382,-383,-384,-385,-386,-387,-388,-389,-390,-391,-392,-393,-394,-395,-396,-397,-398,-399,-400,-401,-402,-403,-404,-405,-406,-407,-408,-409,-410,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508,-509,-510,-511,-512,-513,-514,-515,-516,-517,-518,-519,-520,-521,-522,-523,-524,-525,-526,-527,-528,-529,-530,-531,-532,-533,-534,-535,-536,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-548,-549,-550,-551,-552,-553,-554,-555,-556,-557,-558,-559,-560,-561,-562,-563,-564,-565,-566,-567,-568,-569,-570,-571,-572,-573,-574,-575,-576,-577,-578,-579,-580,-581,-582,-583,-584,-585,-586,-587,-588,-589,-590,-591,-592,-593,-594,-595,-596,-597,-598,-599,-600,-601,-602,-603,-604,-605,-606,-607,-608,-609,-610,-611,-612,-613,-614,-615,-616,-617,-618,-619,-620,-621,-622,-623,-624,-625,-626,-627,-628,-629,-630,-631,-632,-633,-634,-635,-636,-637,-638,-639,-640,-641,-642,-643,-644,-645,-646,-647,-648,-649,-650,-651,-652,-653,-654,-655,-656,-657,-658,-659,-660,-661,-662,-663,-664,-665,-666,-667,-668,-669,-670,-671,-672,-673,-674,-675,-676,-677,-678,-679,-680,-681,-682,-683,-684,-685,-686,-687,-688,-689,-690,-691,-692,-693,-694,-695,-696,-697,-698,-699,-700,-701,-702,-703,-704,-705,-706,-707,-708,-709,-710,-711,-712,-713,-714,-715,-716,-717,-718,-719,-720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734,-735,-736,-737,-738,-739,-740,-741,-742,-743,-744,-745,-746,-747,-748,-749,-750,-751,-752,-753,-754,-755,-756,-757,-758,-759,-760,-761,-762,-763,-764,-765,-766,-767,-768,-769,-770,-771,-772,-773,-774,-775,-776,-777,-778,-779,-780,-781,-782,-783,-784,-785,-786,-787,-788,-789,-790,-791,-792,-793,-794,-795,-796,-797,-798,-799,-800,-801,-802,-803,-804,-805,-806,-807,-808,-809,-810,-811,-812,-813,-814,-815,-816,-817,-818,-819,-820,-821,-822,-823,-824,-825,-826,-827,-828,-829,-830,-831,-832,-833,-834,-835,-836,-837,-838,-839,-840,-841,-842,-843,-844,-845,-846,-847,-848,-849,-850,-851,-852,-853,-854,-855,-856,-857,-858,-859,-860,-861,-862,-863,-864,-865,-866,-867,-868,-869,-870,-871,-872,-873,-874,-875,-876,-877,-878,-879,-880,-881,-882,-883,-884,-885,-886,-887,-888,-889,-890,-891,-892,-893,-894,-895,-896,-897,-898,-899,-900,-901,-902,-903,-904,-905,-906,-907,-908,-909,-910,-911,-912,-913,-914,-915,-916,-917,-918,-919,-920,-921,-922,-923,-924,-925,-926,-927,-928,-929,-930,-931,-932,-933,-934,-935,-936,-937,-938,-939,-940,-941,-942,-943,-944,-945,-946,-947,-948,-949,-950,-951,-952,-953,-954,-955,-956,-957,-958,-959,-960,-961,-962,-963,-964,-965,-966,-967,-968,-969,-970,-971,-972,-973,-974,-975,-976,-977,-978,-979,-980,-981,-982,-983,-984,-985,-986,-987,-988,-989,-990,-991,-992,-993,-994,-995,-996,-997,-998,-999,-1000],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0.000363993734275228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,2.47519988575708e-05,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0,0,0,0,0,0,0,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0.00202203320082956,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0.00645254307035688,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0,0,0,0,0,0,0,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.0023965555071957,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0.00326796752480468,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mode":"lines","name":"Internal Exons 5' standard error (95% conf. int.)","type":"scatter","hoveron":"points","fill":"toself","line":{"fillcolor":"rgba(255,127,14,1)","color":"rgba(182, 7, 127, 0.05)"},"fillcolor":"rgba(182, 7, 127, 0.22)","xaxis":"x","yaxis":"y"},{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999],"y":[0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0.00393462469733656,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0.00121065375302663,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00151331719128329,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.00242130750605327,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00453995157384988,0.00484261501210654,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000605326876513317,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0.000302663438256659,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0.000907990314769976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"mode":"lines","name":"Internal Exons 3' end coverage","type":"scatter","line":{"fillcolor":"rgba(31,119,180,1)","color":"rgba(44,160,44,1)"},"xaxis":"x2","yaxis":"y"},{"x":[-1000,-999,-998,-997,-996,-995,-994,-993,-992,-991,-990,-989,-988,-987,-986,-985,-984,-983,-982,-981,-980,-979,-978,-977,-976,-975,-974,-973,-972,-971,-970,-969,-968,-967,-966,-965,-964,-963,-962,-961,-960,-959,-958,-957,-956,-955,-954,-953,-952,-951,-950,-949,-948,-947,-946,-945,-944,-943,-942,-941,-940,-939,-938,-937,-936,-935,-934,-933,-932,-931,-930,-929,-928,-927,-926,-925,-924,-923,-922,-921,-920,-919,-918,-917,-916,-915,-914,-913,-912,-911,-910,-909,-908,-907,-906,-905,-904,-903,-902,-901,-900,-899,-898,-897,-896,-895,-894,-893,-892,-891,-890,-889,-888,-887,-886,-885,-884,-883,-882,-881,-880,-879,-878,-877,-876,-875,-874,-873,-872,-871,-870,-869,-868,-867,-866,-865,-864,-863,-862,-861,-860,-859,-858,-857,-856,-855,-854,-853,-852,-851,-850,-849,-848,-847,-846,-845,-844,-843,-842,-841,-840,-839,-838,-837,-836,-835,-834,-833,-832,-831,-830,-829,-828,-827,-826,-825,-824,-823,-822,-821,-820,-819,-818,-817,-816,-815,-814,-813,-812,-811,-810,-809,-808,-807,-806,-805,-804,-803,-802,-801,-800,-799,-798,-797,-796,-795,-794,-793,-792,-791,-790,-789,-788,-787,-786,-785,-784,-783,-782,-781,-780,-779,-778,-777,-776,-775,-774,-773,-772,-771,-770,-769,-768,-767,-766,-765,-764,-763,-762,-761,-760,-759,-758,-757,-756,-755,-754,-753,-752,-751,-750,-749,-748,-747,-746,-745,-744,-743,-742,-741,-740,-739,-738,-737,-736,-735,-734,-733,-732,-731,-730,-729,-728,-727,-726,-725,-724,-723,-722,-721,-720,-719,-718,-717,-716,-715,-714,-713,-712,-711,-710,-709,-708,-707,-706,-705,-704,-703,-702,-701,-700,-699,-698,-697,-696,-695,-694,-693,-692,-691,-690,-689,-688,-687,-686,-685,-684,-683,-682,-681,-680,-679,-678,-677,-676,-675,-674,-673,-672,-671,-670,-669,-668,-667,-666,-665,-664,-663,-662,-661,-660,-659,-658,-657,-656,-655,-654,-653,-652,-651,-650,-649,-648,-647,-646,-645,-644,-643,-642,-641,-640,-639,-638,-637,-636,-635,-634,-633,-632,-631,-630,-629,-628,-627,-626,-625,-624,-623,-622,-621,-620,-619,-618,-617,-616,-615,-614,-613,-612,-611,-610,-609,-608,-607,-606,-605,-604,-603,-602,-601,-600,-599,-598,-597,-596,-595,-594,-593,-592,-591,-590,-589,-588,-587,-586,-585,-584,-583,-582,-581,-580,-579,-578,-577,-576,-575,-574,-573,-572,-571,-570,-569,-568,-567,-566,-565,-564,-563,-562,-561,-560,-559,-558,-557,-556,-555,-554,-553,-552,-551,-550,-549,-548,-547,-546,-545,-544,-543,-542,-541,-540,-539,-538,-537,-536,-535,-534,-533,-532,-531,-530,-529,-528,-527,-526,-525,-524,-523,-522,-521,-520,-519,-518,-517,-516,-515,-514,-513,-512,-511,-510,-509,-508,-507,-506,-505,-504,-503,-502,-501,-500,-499,-498,-497,-496,-495,-494,-493,-492,-491,-490,-489,-488,-487,-486,-485,-484,-483,-482,-481,-480,-479,-478,-477,-476,-475,-474,-473,-472,-471,-470,-469,-468,-467,-466,-465,-464,-463,-462,-461,-460,-459,-458,-457,-456,-455,-454,-453,-452,-451,-450,-449,-448,-447,-446,-445,-444,-443,-442,-441,-440,-439,-438,-437,-436,-435,-434,-433,-432,-431,-430,-429,-428,-427,-426,-425,-424,-423,-422,-421,-420,-419,-418,-417,-416,-415,-414,-413,-412,-411,-410,-409,-408,-407,-406,-405,-404,-403,-402,-401,-400,-399,-398,-397,-396,-395,-394,-393,-392,-391,-390,-389,-388,-387,-386,-385,-384,-383,-382,-381,-380,-379,-378,-377,-376,-375,-374,-373,-372,-371,-370,-369,-368,-367,-366,-365,-364,-363,-362,-361,-360,-359,-358,-357,-356,-355,-354,-353,-352,-351,-350,-349,-348,-347,-346,-345,-344,-343,-342,-341,-340,-339,-338,-337,-336,-335,-334,-333,-332,-331,-330,-329,-328,-327,-326,-325,-324,-323,-322,-321,-320,-319,-318,-317,-316,-315,-314,-313,-312,-311,-310,-309,-308,-307,-306,-305,-304,-303,-302,-301,-300,-299,-298,-297,-296,-295,-294,-293,-292,-291,-290,-289,-288,-287,-286,-285,-284,-283,-282,-281,-280,-279,-278,-277,-276,-275,-274,-273,-272,-271,-270,-269,-268,-267,-266,-265,-264,-263,-262,-261,-260,-259,-258,-257,-256,-255,-254,-253,-252,-251,-250,-249,-248,-247,-246,-245,-244,-243,-242,-241,-240,-239,-238,-237,-236,-235,-234,-233,-232,-231,-230,-229,-228,-227,-226,-225,-224,-223,-222,-221,-220,-219,-218,-217,-216,-215,-214,-213,-212,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182,-181,-180,-179,-178,-177,-176,-175,-174,-173,-172,-171,-170,-169,-168,-167,-166,-165,-164,-163,-162,-161,-160,-159,-158,-157,-156,-155,-154,-153,-152,-151,-150,-149,-148,-147,-146,-145,-144,-143,-142,-141,-140,-139,-138,-137,-136,-135,-134,-133,-132,-131,-130,-129,-128,-127,-126,-125,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109,-108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90,-89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68,-67,-66,-65,-64,-63,-62,-61,-60,-59,-58,-57,-56,-55,-54,-53,-52,-51,-50,-49,-48,-47,-46,-45,-44,-43,-42,-41,-40,-39,-38,-37,-36,-35,-34,-33,-32,-31,-30,-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,999,999,998,997,996,995,994,993,992,991,990,989,988,987,986,985,984,983,982,981,980,979,978,977,976,975,974,973,972,971,970,969,968,967,966,965,964,963,962,961,960,959,958,957,956,955,954,953,952,951,950,949,948,947,946,945,944,943,942,941,940,939,938,937,936,935,934,933,932,931,930,929,928,927,926,925,924,923,922,921,920,919,918,917,916,915,914,913,912,911,910,909,908,907,906,905,904,903,902,901,900,899,898,897,896,895,894,893,892,891,890,889,888,887,886,885,884,883,882,881,880,879,878,877,876,875,874,873,872,871,870,869,868,867,866,865,864,863,862,861,860,859,858,857,856,855,854,853,852,851,850,849,848,847,846,845,844,843,842,841,840,839,838,837,836,835,834,833,832,831,830,829,828,827,826,825,824,823,822,821,820,819,818,817,816,815,814,813,812,811,810,809,808,807,806,805,804,803,802,801,800,799,798,797,796,795,794,793,792,791,790,789,788,787,786,785,784,783,782,781,780,779,778,777,776,775,774,773,772,771,770,769,768,767,766,765,764,763,762,761,760,759,758,757,756,755,754,753,752,751,750,749,748,747,746,745,744,743,742,741,740,739,738,737,736,735,734,733,732,731,730,729,728,727,726,725,724,723,722,721,720,719,718,717,716,715,714,713,712,711,710,709,708,707,706,705,704,703,702,701,700,699,698,697,696,695,694,693,692,691,690,689,688,687,686,685,684,683,682,681,680,679,678,677,676,675,674,673,672,671,670,669,668,667,666,665,664,663,662,661,660,659,658,657,656,655,654,653,652,651,650,649,648,647,646,645,644,643,642,641,640,639,638,637,636,635,634,633,632,631,630,629,628,627,626,625,624,623,622,621,620,619,618,617,616,615,614,613,612,611,610,609,608,607,606,605,604,603,602,601,600,599,598,597,596,595,594,593,592,591,590,589,588,587,586,585,584,583,582,581,580,579,578,577,576,575,574,573,572,571,570,569,568,567,566,565,564,563,562,561,560,559,558,557,556,555,554,553,552,551,550,549,548,547,546,545,544,543,542,541,540,539,538,537,536,535,534,533,532,531,530,529,528,527,526,525,524,523,522,521,520,519,518,517,516,515,514,513,512,511,510,509,508,507,506,505,504,503,502,501,500,499,498,497,496,495,494,493,492,491,490,489,488,487,486,485,484,483,482,481,480,479,478,477,476,475,474,473,472,471,470,469,468,467,466,465,464,463,462,461,460,459,458,457,456,455,454,453,452,451,450,449,448,447,446,445,444,443,442,441,440,439,438,437,436,435,434,433,432,431,430,429,428,427,426,425,424,423,422,421,420,419,418,417,416,415,414,413,412,411,410,409,408,407,406,405,404,403,402,401,400,399,398,397,396,395,394,393,392,391,390,389,388,387,386,385,384,383,382,381,380,379,378,377,376,375,374,373,372,371,370,369,368,367,366,365,364,363,362,361,360,359,358,357,356,355,354,353,352,351,350,349,348,347,346,345,344,343,342,341,340,339,338,337,336,335,334,333,332,331,330,329,328,327,326,325,324,323,322,321,320,319,318,317,316,315,314,313,312,311,310,309,308,307,306,305,304,303,302,301,300,299,298,297,296,295,294,293,292,291,290,289,288,287,286,285,284,283,282,281,280,279,278,277,276,275,274,273,272,271,270,269,268,267,266,265,264,263,262,261,260,259,258,257,256,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26,-27,-28,-29,-30,-31,-32,-33,-34,-35,-36,-37,-38,-39,-40,-41,-42,-43,-44,-45,-46,-47,-48,-49,-50,-51,-52,-53,-54,-55,-56,-57,-58,-59,-60,-61,-62,-63,-64,-65,-66,-67,-68,-69,-70,-71,-72,-73,-74,-75,-76,-77,-78,-79,-80,-81,-82,-83,-84,-85,-86,-87,-88,-89,-90,-91,-92,-93,-94,-95,-96,-97,-98,-99,-100,-101,-102,-103,-104,-105,-106,-107,-108,-109,-110,-111,-112,-113,-114,-115,-116,-117,-118,-119,-120,-121,-122,-123,-124,-125,-126,-127,-128,-129,-130,-131,-132,-133,-134,-135,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-211,-212,-213,-214,-215,-216,-217,-218,-219,-220,-221,-222,-223,-224,-225,-226,-227,-228,-229,-230,-231,-232,-233,-234,-235,-236,-237,-238,-239,-240,-241,-242,-243,-244,-245,-246,-247,-248,-249,-250,-251,-252,-253,-254,-255,-256,-257,-258,-259,-260,-261,-262,-263,-264,-265,-266,-267,-268,-269,-270,-271,-272,-273,-274,-275,-276,-277,-278,-279,-280,-281,-282,-283,-284,-285,-286,-287,-288,-289,-290,-291,-292,-293,-294,-295,-296,-297,-298,-299,-300,-301,-302,-303,-304,-305,-306,-307,-308,-309,-310,-311,-312,-313,-314,-315,-316,-317,-318,-319,-320,-321,-322,-323,-324,-325,-326,-327,-328,-329,-330,-331,-332,-333,-334,-335,-336,-337,-338,-339,-340,-341,-342,-343,-344,-345,-346,-347,-348,-349,-350,-351,-352,-353,-354,-355,-356,-357,-358,-359,-360,-361,-362,-363,-364,-365,-366,-367,-368,-369,-370,-371,-372,-373,-374,-375,-376,-377,-378,-379,-380,-381,-382,-383,-384,-385,-386,-387,-388,-389,-390,-391,-392,-393,-394,-395,-396,-397,-398,-399,-400,-401,-402,-403,-404,-405,-406,-407,-408,-409,-410,-411,-412,-413,-414,-415,-416,-417,-418,-419,-420,-421,-422,-423,-424,-425,-426,-427,-428,-429,-430,-431,-432,-433,-434,-435,-436,-437,-438,-439,-440,-441,-442,-443,-444,-445,-446,-447,-448,-449,-450,-451,-452,-453,-454,-455,-456,-457,-458,-459,-460,-461,-462,-463,-464,-465,-466,-467,-468,-469,-470,-471,-472,-473,-474,-475,-476,-477,-478,-479,-480,-481,-482,-483,-484,-485,-486,-487,-488,-489,-490,-491,-492,-493,-494,-495,-496,-497,-498,-499,-500,-501,-502,-503,-504,-505,-506,-507,-508,-509,-510,-511,-512,-513,-514,-515,-516,-517,-518,-519,-520,-521,-522,-523,-524,-525,-526,-527,-528,-529,-530,-531,-532,-533,-534,-535,-536,-537,-538,-539,-540,-541,-542,-543,-544,-545,-546,-547,-548,-549,-550,-551,-552,-553,-554,-555,-556,-557,-558,-559,-560,-561,-562,-563,-564,-565,-566,-567,-568,-569,-570,-571,-572,-573,-574,-575,-576,-577,-578,-579,-580,-581,-582,-583,-584,-585,-586,-587,-588,-589,-590,-591,-592,-593,-594,-595,-596,-597,-598,-599,-600,-601,-602,-603,-604,-605,-606,-607,-608,-609,-610,-611,-612,-613,-614,-615,-616,-617,-618,-619,-620,-621,-622,-623,-624,-625,-626,-627,-628,-629,-630,-631,-632,-633,-634,-635,-636,-637,-638,-639,-640,-641,-642,-643,-644,-645,-646,-647,-648,-649,-650,-651,-652,-653,-654,-655,-656,-657,-658,-659,-660,-661,-662,-663,-664,-665,-666,-667,-668,-669,-670,-671,-672,-673,-674,-675,-676,-677,-678,-679,-680,-681,-682,-683,-684,-685,-686,-687,-688,-689,-690,-691,-692,-693,-694,-695,-696,-697,-698,-699,-700,-701,-702,-703,-704,-705,-706,-707,-708,-709,-710,-711,-712,-713,-714,-715,-716,-717,-718,-719,-720,-721,-722,-723,-724,-725,-726,-727,-728,-729,-730,-731,-732,-733,-734,-735,-736,-737,-738,-739,-740,-741,-742,-743,-744,-745,-746,-747,-748,-749,-750,-751,-752,-753,-754,-755,-756,-757,-758,-759,-760,-761,-762,-763,-764,-765,-766,-767,-768,-769,-770,-771,-772,-773,-774,-775,-776,-777,-778,-779,-780,-781,-782,-783,-784,-785,-786,-787,-788,-789,-790,-791,-792,-793,-794,-795,-796,-797,-798,-799,-800,-801,-802,-803,-804,-805,-806,-807,-808,-809,-810,-811,-812,-813,-814,-815,-816,-817,-818,-819,-820,-821,-822,-823,-824,-825,-826,-827,-828,-829,-830,-831,-832,-833,-834,-835,-836,-837,-838,-839,-840,-841,-842,-843,-844,-845,-846,-847,-848,-849,-850,-851,-852,-853,-854,-855,-856,-857,-858,-859,-860,-861,-862,-863,-864,-865,-866,-867,-868,-869,-870,-871,-872,-873,-874,-875,-876,-877,-878,-879,-880,-881,-882,-883,-884,-885,-886,-887,-888,-889,-890,-891,-892,-893,-894,-895,-896,-897,-898,-899,-900,-901,-902,-903,-904,-905,-906,-907,-908,-909,-910,-911,-912,-913,-914,-915,-916,-917,-918,-919,-920,-921,-922,-923,-924,-925,-926,-927,-928,-929,-930,-931,-932,-933,-934,-935,-936,-937,-938,-939,-940,-941,-942,-943,-944,-945,-946,-947,-948,-949,-950,-951,-952,-953,-954,-955,-956,-957,-958,-959,-960,-961,-962,-963,-964,-965,-966,-967,-968,-969,-970,-971,-972,-973,-974,-975,-976,-977,-978,-979,-980,-981,-982,-983,-984,-985,-986,-987,-988,-989,-990,-991,-992,-993,-994,-995,-996,-997,-998,-999,-1000],"y":[0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0.00179962723497438,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,2.47519988575708e-05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000187639628702497,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,0.000745205905223101,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00224729337813078,0.00247512780126407,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000233486366031032,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,-0.000290556900726392,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,-0.000119186328195486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.007210102222949,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0.00683260976956898,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0.000895883777239709,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0.00283899475386409,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0.00193516695773544,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0.0023965555071957,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0.00409740910688344,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0.00144414011905767,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874,0.00606962215969874],"mode":"lines","name":"Internal Exons 3' standard error (95% conf. int.)","type":"scatter","hoveron":"points","fill":"toself","line":{"fillcolor":"rgba(255,127,14,1)","color":"rgba(7, 164, 181, 0.05)"},"fillcolor":"rgba(7, 164, 181, 0.2)","xaxis":"x2","yaxis":"y"}],"layout":{"xaxis":{"domain":[0,0.48],"anchor":"y","title":"Distance (bp) to 5' boundary"},"xaxis2":{"domain":[0.52,1],"anchor":"y","title":"Distance (bp) to 3' boundary"},"yaxis":{"domain":[0,1],"title":"Mean Coverage Score","anchor":"x"},"margin":{"b":100,"l":100,"t":25,"r":10},"legend":{"x":0,"y":100,"orientation":"h"},"font":{"size":14}},"config":{"modeBarButtonsToRemove":["sendDataToCloud"]},"source":"A","subplot":true},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
313 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
314 <div id="coverage-profile-of-query-regions-across-the-length-of-different-gene-features" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
315 <h2><span class="header-section-number">3.6</span> Coverage profile of query regions across the length of different gene features</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
316 <p><strong>Figure 5 :</strong> The query regions are overlaid with the genomic coordinates of features. Each entry corresponding to a feature is divided into 100 bins of equal length and for each bin the number of query regions that cover the corresponding bin is counted. Features shorter than 100bp are excluded. Thus, a coverage profile is obtained based on the distribution of the query regions. Mean coverage score for each bin is represented with ribbons where the thickness of the ribbon indicates the 95% confidence interval (mean +- standard error of the mean x 1.96). The strandedness of the features are taken into account. The coverage profile is plotted in the 5’ to 3’ direction.</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
317 <p><div id="htmlwidget-d87f31d1d970df034989" style="width:768px;height:432px;" class="plotly html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
318 <script type="application/json" data-for="htmlwidget-d87f31d1d970df034989">{"x":{"layout":{"margin":{"b":40,"l":60,"t":25,"r":10},"font":{"size":14},"xaxis":{"domain":[0,1],"title":"bins"},"yaxis":{"domain":[0,1],"title":"meanCoverage"}},"config":{"modeBarButtonsToRemove":["sendDataToCloud"]},"base_url":"https://plot.ly","source":"A","data":[{"mode":"lines","type":"scatter","line":{"fillcolor":"rgba(31,119,180,1)","color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0.00372208436724566,0,0,0,0,0,0,0.00124069478908189,0.00248138957816377,0.00372208436724566,0.00124069478908189,0,0,0,0,0,0,0.00248138957816377,0.00124069478908189,0,0.00124069478908189,0.00124069478908189,0.00124069478908189,0,0,0,0.00124069478908189,0.00248138957816377,0.00124069478908189,0,0.00248138957816377,0.00124069478908189,0.00248138957816377,0.00124069478908189,0,0,0,0,0,0.00372208436724566,0.00248138957816377,0,0,0.00124069478908189,0,0.011166253101737,0.00372208436724566,0.00124069478908189,0,0.00124069478908189,0.00124069478908189,0,0,0,0.00248138957816377,0.00124069478908189,0.00248138957816377,0.00124069478908189,0,0.00496277915632754,0.00620347394540943,0.00248138957816377,0.00496277915632754,0.00620347394540943,0.00248138957816377,0,0.00124069478908189,0.00248138957816377,0.00248138957816377,0,0,0,0.00124069478908189,0,0,0,0.00124069478908189,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00124069478908189,0.00372208436724566,0.00124069478908189,0.00496277915632754,0.00620347394540943,0.0210918114143921],"legendgroup":"transcripts","showlegend":false,"opacity":1,"name":"transcripts","line":{"fillcolor":"rgba(229,196,148,0.5)","color":"rgba(229,196,148,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"transcripts","name":"transcripts","y":[-0.000484615127833662,0,0,0,0,0,0,-0.00119106699751861,-0.00095550421333905,-0.000484615127833662,-0.00119106699751861,0,0,0,0,0,0,-0.00095550421333905,-0.00119106699751861,0,-0.00119106699751861,-0.00119106699751861,-0.00119106699751861,0,0,0,-0.00119106699751861,-0.00095550421333905,-0.00119106699751861,0,-0.00095550421333905,-0.00119106699751861,-0.00095550421333905,-0.00119106699751861,0,0,0,0,0,-0.000484615127833662,-0.00095550421333905,0,0,-0.00119106699751861,0,0.0039073081191651,-0.000484615127833662,-0.00119106699751861,0,-0.00119106699751861,-0.00119106699751861,0,0,0,-0.00095550421333905,-0.00119106699751861,-0.00095550421333905,-0.00119106699751861,0,0.000108326508473171,0.000779415636435436,-0.00095550421333905,0.000108326508473171,0.000779415636435436,-0.00095550421333905,0,-0.00119106699751861,-0.00095550421333905,-0.00095550421333905,0,0,0,-0.00119106699751861,0,0,0,-0.00119106699751861,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00119106699751861,-0.000484615127833662,-0.00119106699751861,0.000108326508473171,0.000779415636435436,0.0111655421551414,0.0111655421551414,0.0310180806736427,0.0116275322543834,0.00981723180418191,0.00367245657568238,0.00792878386232498,0.00367245657568238,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00367245657568238,0,0,0,0.00367245657568238,0,0,0,0.00591828336966659,0.00591828336966659,0.00367245657568238,0,0.00591828336966659,0.0116275322543834,0.00981723180418191,0.00591828336966659,0.0116275322543834,0.00981723180418191,0,0.00367245657568238,0.00591828336966659,0.00367245657568238,0.00591828336966659,0,0,0,0.00367245657568238,0.00367245657568238,0,0.00367245657568238,0.00792878386232498,0.0184251980843088,0,0.00367245657568238,0,0,0.00591828336966659,0.00792878386232498,0,0,0,0,0,0.00367245657568238,0.00591828336966659,0.00367245657568238,0.00591828336966659,0,0.00367245657568238,0.00591828336966659,0.00367245657568238,0,0,0,0.00367245657568238,0.00367245657568238,0.00367245657568238,0,0.00367245657568238,0.00591828336966659,0,0,0,0,0,0,0.00367245657568238,0.00792878386232498,0.00591828336966659,0.00367245657568238,0,0,0,0,0,0,0.00792878386232498],"line":{"fillcolor":"rgba(229,196,148,0.5)","color":"rgba(229,196,148,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000602409638554217,0.000301204819277108,0.00120481927710843,0.00120481927710843,0.00120481927710843,0.00120481927710843,0.000301204819277108,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00180722891566265,0.00240963855421687,0.00240963855421687,0.00240963855421687,0.00240963855421687,0.00240963855421687,0.00240963855421687,0.00180722891566265,0.00150602409638554,0.00150602409638554,0.00210843373493976,0.00210843373493976,0.00180722891566265,0.00210843373493976,0.000903614457831325,0.000903614457831325,0.000903614457831325,0.000301204819277108,0.000602409638554217,0.000602409638554217,0.000602409638554217,0.000602409638554217,0.000903614457831325,0.000903614457831325,0.00150602409638554,0.00150602409638554,0.00150602409638554,0.00150602409638554,0.00120481927710843,0.00150602409638554,0.00180722891566265,0.00120481927710843,0.00120481927710843,0.00120481927710843,0.00180722891566265,0.00180722891566265,0.000903614457831325,0.000903614457831325,0.000903614457831325,0.000903614457831325,0.000301204819277108,0.000903614457831325,0.00150602409638554,0.00150602409638554,0.00120481927710843,0.000903614457831325,0.000903614457831325,0.00210843373493976,0.00210843373493976],"legendgroup":"exons","showlegend":false,"opacity":1,"name":"exons","line":{"fillcolor":"rgba(252,141,98,0.5)","color":"rgba(252,141,98,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"exons","name":"exons","y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.0002323617398904,-0.000289156626506024,2.46301260463043e-05,2.46301260463043e-05,2.46301260463043e-05,2.46301260463043e-05,-0.000289156626506024,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000362234267214681,0.000741606012703995,0.000741606012703995,0.000741606012703995,0.000741606012703995,0.000741606012703995,0.000741606012703995,0.000362234267214681,0.000186731485667208,0.000186731485667208,0.000547896629861328,0.000547896629861328,0.000362234267214681,0.000547896629861328,-0.000118613429094836,-0.000118613429094836,-0.000118613429094836,-0.000289156626506024,-0.0002323617398904,-0.0002323617398904,-0.0002323617398904,-0.0002323617398904,-0.000118613429094836,-0.000118613429094836,0.000186731485667208,0.000186731485667208,0.000186731485667208,0.000186731485667208,2.46301260463043e-05,0.000186731485667208,0.000362234267214681,2.46301260463043e-05,2.46301260463043e-05,2.46301260463043e-05,0.000362234267214681,0.000362234267214681,-0.000118613429094836,-0.000118613429094836,-0.000118613429094836,-0.000118613429094836,-0.000289156626506024,-0.000118613429094836,0.000186731485667208,0.000186731485667208,2.46301260463043e-05,-0.000118613429094836,-0.000118613429094836,0.000547896629861328,0.000547896629861328,0.000547896629861328,0.00366897084001819,0.00366897084001819,0.00192584234475749,0.00192584234475749,0.00238500842817056,0.00282531670710388,0.00282531670710388,0.00192584234475749,0.000891566265060241,0.00192584234475749,0.00192584234475749,0.00192584234475749,0.00192584234475749,0.00325222356411062,0.00325222356411062,0.00238500842817056,0.00238500842817056,0.00238500842817056,0.00325222356411062,0.00282531670710388,0.00238500842817056,0.00282531670710388,0.00282531670710388,0.00282531670710388,0.00282531670710388,0.00192584234475749,0.00192584234475749,0.00143718101699883,0.00143718101699883,0.00143718101699883,0.00143718101699883,0.000891566265060241,0.00192584234475749,0.00192584234475749,0.00192584234475749,0.00366897084001819,0.00325222356411062,0.00366897084001819,0.00366897084001819,0.00282531670710388,0.00282531670710388,0.00325222356411062,0.00407767109572974,0.00407767109572974,0.00407767109572974,0.00407767109572974,0.00407767109572974,0.00407767109572974,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.00325222356411062,0.000891566265060241,0.00238500842817056,0.00238500842817056,0.00238500842817056,0.00238500842817056,0.000891566265060241,0.00143718101699883,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"line":{"fillcolor":"rgba(252,141,98,0.5)","color":"rgba(252,141,98,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0,0,0,0.00123456790123457,0.00123456790123457,0,0,0,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00246913580246914,0.00123456790123457,0.00123456790123457,0.00123456790123457,0.00123456790123457,0,0,0.00123456790123457,0.00123456790123457,0,0,0,0,0,0,0,0,0.00123456790123457,0.0037037037037037],"legendgroup":"promoters","showlegend":false,"opacity":1,"name":"promoters","line":{"fillcolor":"rgba(166,216,84,0.5)","color":"rgba(166,216,84,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"promoters","name":"promoters","y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,0,0,0,-0.00118518518518519,-0.00118518518518519,0,0,0,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.0009507961897794,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,-0.00118518518518519,0,0,-0.00118518518518519,-0.00118518518518519,0,0,0,0,0,0,0,0,-0.00118518518518519,-0.000482247740962296,-0.000482247740962296,0.0078896551483697,0.00365432098765432,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0,0,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00588906779471767,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00365432098765432,0.00365432098765432,0,0,0,0.00365432098765432,0.00365432098765432,0,0,0,0.00365432098765432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"line":{"fillcolor":"rgba(166,216,84,0.5)","color":"rgba(166,216,84,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0.0160427807486631,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0053475935828877,0.0160427807486631,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0053475935828877,0.0106951871657754,0.0106951871657754,0,0,0,0,0,0,0,0,0,0.0053475935828877,0.0053475935828877,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0053475935828877,0.0053475935828877,0,0,0,0],"legendgroup":"fiveUTRs","showlegend":false,"opacity":1,"name":"fiveUTRs","line":{"fillcolor":"rgba(141,160,203,0.5)","color":"rgba(141,160,203,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"fiveUTRs","name":"fiveUTRs","y":[-0.0020134681033118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00513368983957219,-0.0020134681033118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00513368983957219,-0.00408768613578817,-0.00408768613578817,0,0,0,0,0,0,0,0,0,-0.00513368983957219,-0.00513368983957219,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.00513368983957219,-0.00513368983957219,0,0,0,0,0,0,0,0,0,0.0158288770053476,0.0158288770053476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.0158288770053476,0.0158288770053476,0,0,0,0,0,0,0,0,0,0.025478060467339,0.025478060467339,0.0158288770053476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.034099029600638,0.0158288770053476,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.034099029600638],"line":{"fillcolor":"rgba(141,160,203,0.5)","color":"rgba(141,160,203,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0.00146584579302257,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.000879507475813544,0.000879507475813544,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.00058633831720903,0.000879507475813544,0.00527704485488127,0.00058633831720903,0.000879507475813544,0.00058633831720903,0.00058633831720903,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00117267663441806,0,0,0.000293169158604515,0,0,0,0.000293169158604515,0.00058633831720903,0,0,0,0,0,0,0.000879507475813544,0.00058633831720903,0,0,0,0,0,0,0,0.000293169158604515,0.000879507475813544,0,0.00058633831720903,0.00058633831720903,0,0,0.000879507475813544,0,0.000293169158604515,0.000293169158604515,0,0,0,0,0,0,0.00058633831720903,0.00058633831720903,0.000879507475813544,0.000879507475813544,0.000879507475813544,0.000879507475813544,0.000293169158604515,0.000293169158604515,0.000293169158604515,0.000293169158604515,0.000293169158604515,0.000293169158604515,0,0.00058633831720903,0.00058633831720903,0,0,0,0,0,0,0,0,0,0],"legendgroup":"introns","showlegend":false,"opacity":1,"name":"introns","line":{"fillcolor":"rgba(231,138,195,0.5)","color":"rgba(231,138,195,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"introns","name":"introns","y":[0.000181729115485221,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000115457018045323,-0.000115457018045323,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000226165969385151,-0.000115457018045323,0.00284525890547187,-0.000226165969385151,-0.000115457018045323,-0.000226165969385151,-0.000226165969385151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2.39591672813182e-05,0,0,-0.000281442392260334,0,0,0,-0.000281442392260334,-0.000226165969385151,0,0,0,0,0,0,-0.000115457018045323,-0.000226165969385151,0,0,0,0,0,0,0,-0.000281442392260334,-0.000115457018045323,0,-0.000226165969385151,-0.000226165969385151,0,0,-0.000115457018045323,0,-0.000281442392260334,-0.000281442392260334,0,0,0,0,0,0,-0.000226165969385151,-0.000226165969385151,-0.000115457018045323,-0.000115457018045323,-0.000115457018045323,-0.000115457018045323,-0.000281442392260334,-0.000281442392260334,-0.000281442392260334,-0.000281442392260334,-0.000281442392260334,-0.000281442392260334,0,-0.000226165969385151,-0.000226165969385151,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00139884260380321,0.00139884260380321,0,0.000867780709469364,0.000867780709469364,0.000867780709469364,0.000867780709469364,0.000867780709469364,0.000867780709469364,0.00187447196967241,0.00187447196967241,0.00187447196967241,0.00187447196967241,0.00139884260380321,0.00139884260380321,0,0,0,0,0,0,0.000867780709469364,0.000867780709469364,0,0.00187447196967241,0,0,0.00139884260380321,0.00139884260380321,0,0.00187447196967241,0.000867780709469364,0,0,0,0,0,0,0,0.00139884260380321,0.00187447196967241,0,0,0,0,0,0,0.00139884260380321,0.000867780709469364,0,0,0,0.000867780709469364,0,0,0.0023213941015548,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00139884260380321,0.00139884260380321,0.00187447196967241,0.00139884260380321,0.00770883080429067,0.00187447196967241,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00187447196967241,0.00187447196967241,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00139884260380321,0.00274996247055993],"line":{"fillcolor":"rgba(231,138,195,0.5)","color":"rgba(231,138,195,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0.00315457413249211,0,0,0,0,0,0,0,0,0,0,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0.000630914826498423,0,0,0,0,0,0,0,0,0,0,0,0,0],"legendgroup":"cds","showlegend":false,"opacity":1,"name":"cds","line":{"fillcolor":"rgba(102,194,165,0.5)","color":"rgba(102,194,165,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"cds","name":"cds","y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,0,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0.000392961492491348,0,0,0,0,0,0,0,0,0,0,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,-0.000605678233438486,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0,0,0,0,0,0,0,0,0,0,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0.00591618677249288,0,0.00186750788643533,0.00186750788643533,0.00186750788643533,0.00186750788643533,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"line":{"fillcolor":"rgba(102,194,165,0.5)","color":"rgba(102,194,165,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100],"y":[0,0,0,0,0.00462962962962963,0.00462962962962963,0.00462962962962963,0,0,0,0,0,0,0,0.00462962962962963,0,0,0,0,0,0.00462962962962963,0,0,0,0.00925925925925926,0.00925925925925926,0.00925925925925926,0.00925925925925926,0.00925925925925926,0.0138888888888889,0.00925925925925926,0.00925925925925926,0.00925925925925926,0,0,0,0.00462962962962963,0.00462962962962963,0.00462962962962963,0,0,0,0,0,0,0,0.00462962962962963,0.00462962962962963,0,0,0,0,0,0,0,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0,0,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0,0,0.00462962962962963,0,0,0,0,0,0,0,0,0,0,0,0,0.00462962962962963,0,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.00462962962962963,0,0,0.00462962962962963,0.00462962962962963,0.00462962962962963,0.0138888888888889,0.00925925925925926,0.00925925925925926,0,0.00462962962962963,0.0138888888888889],"legendgroup":"threeUTRs","showlegend":false,"opacity":1,"name":"threeUTRs","line":{"fillcolor":"rgba(255,217,47,0.5)","color":"rgba(255,217,47,1)"},"xaxis":"x","yaxis":"y"},{"mode":"lines","type":"scatter","x":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,100,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1],"hoveron":"points","fill":"toself","legendgroup":"threeUTRs","name":"threeUTRs","y":[0,0,0,0,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,0,0,0,0,0,0,0,-0.00444444444444444,0,0,0,0,0,-0.00444444444444444,0,0,0,-0.00354354114100987,-0.00354354114100987,-0.00354354114100987,-0.00354354114100987,-0.00354354114100987,-0.00175459644405544,-0.00354354114100987,-0.00354354114100987,-0.00354354114100987,0,0,0,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,0,0,0,0,0,0,0,-0.00444444444444444,-0.00444444444444444,0,0,0,0,0,0,0,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,0,0,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,0,0,-0.00444444444444444,0,0,0,0,0,0,0,0,0,0,0,0,-0.00444444444444444,0,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,0,0,-0.00444444444444444,-0.00444444444444444,-0.00444444444444444,-0.00175459644405544,-0.00354354114100987,-0.00354354114100987,0,-0.00444444444444444,-0.00175459644405544,-0.00175459644405544,0.0295323742218332,0.0137037037037037,0,0.0220620596595284,0.0220620596595284,0.0295323742218332,0.0137037037037037,0.0137037037037037,0.0137037037037037,0,0,0.0137037037037037,0.0137037037037037,0.0137037037037037,0.0137037037037037,0.0137037037037037,0.0137037037037037,0.0137037037037037,0,0.0137037037037037,0,0,0,0,0,0,0,0,0,0,0,0,0.0137037037037037,0,0,0.0137037037037037,0.0137037037037037,0.0137037037037037,0.0137037037037037,0,0,0.0137037037037037,0.0137037037037037,0.0137037037037037,0.0137037037037037,0,0,0,0,0,0,0,0.0137037037037037,0.0137037037037037,0,0,0,0,0,0,0,0.0137037037037037,0.0137037037037037,0.0137037037037037,0,0,0,0.0220620596595284,0.0220620596595284,0.0220620596595284,0.0295323742218332,0.0220620596595284,0.0220620596595284,0.0220620596595284,0.0220620596595284,0.0220620596595284,0,0,0,0.0137037037037037,0,0,0,0,0,0.0137037037037037,0,0,0,0,0,0,0,0.0137037037037037,0.0137037037037037,0.0137037037037037,0,0,0,0],"line":{"fillcolor":"rgba(255,217,47,0.5)","color":"rgba(255,217,47,1)"},"xaxis":"x","yaxis":"y"}]},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
319 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
320 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
321 <div id="motifrg-analysis-results" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
322 <h1><span class="header-section-number">4</span> motifRG analysis results</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
323 <div id="top-motifs-discovered-using-motifrg" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
324 <h2><span class="header-section-number">4.1</span> Top motifs discovered using motifRG</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
325 <p><strong>Figure 6 :</strong> Top motifs discovered in the sequences of the query regions</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
326 <p><strong>Motif 1 :</strong> Consensus: ATTTTT <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAANgCAIAAABlQDTBAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAgAElEQVR4nOzda3RV9Z038H24iZAiF0EqFSIBUQQECZAqZRB1IZdqwVsVWaKrSgsy2o616IMVKxYd2qKz6gCjWFGcqkutVUHxBkRQKEYKGLnITa7FcI1ggQDnebFnzpBjCIGc5ITN57N88TtnX/JNq0v5rv9/71g8Hg8AAAAAiK5q6Q4AAAAAQMVSAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAirka6A1DlfPPNN88///x7772Xl5e3devWb7755vTTT2/ZsuVll102aNCg1q1bpzsgAAAAcGxi8Xg83RmoQv77v//7zjvv3Lp1a4lHq1WrNmTIkMcee+w73/lOJQcDAAAAjpsCiP/zyCOP3HvvvUc9rU2bNjNnzvzud79bCZEAAACA8lMA8T/efffd3r17J/5+uPjii6+++up27do1aNBgyZIlM2fOfO655xInZ2dnz507t1atWmkKCwAAABwDBRBBEATxePzCCy/8+9//Hn4cPXr0r3/961gsdvg5c+bMGTRo0Lp168KPjz322J133lnZQQEAAIBjpwAiCILgww8/7NGjRzhnZ2f/7W9/S2p/QnPnzv3BD34Q/j1z1llnffnllyWeBgAAAFQpXgNPEATBO++8k5jHjh17pFrn4osvHjJkSDivX79+0aJFlZANAAAAKCcFEEEQBHPmzAmHevXqXXrppaWcmVgoFATB8uXLKzYWAAAAkAoKIIIgCBJP9mnbtm3pu7rOP//8xLxjx46KjQUAAACkggKIIAiCLVu2hMPh/U7pZwZB0KJFiwrMBAAAAKRIjXQHoErYsGFDOJxyyimlnzl79uzEfM4551RgJgAAACBFvAWMY1BQUNCyZcvdu3cHQXDuuefm5+dXq2YRGQAAAFR1VgBRVv/85z8HDBgQtj9BENx3330pbH+2b9/+l7/85eDBg+W8z549e7788st///d/r1WrVkqCAQAAQAQogCiTdevWDRo0aO7cueHH7OzsG264IYX3f+ihhx577LFU3a1OnTq//e1vU3U3AAAAONEpgDiKgwcPTp48+Ve/+tXOnTvDb1q1ajVt2rQaNVL5N8+tt966d+/eQ4cOlfM+s2bNWrFiRfPmzVOSCgAAAKJBAURpZs2adeeddy5evDjxTdu2bd94440mTZqk9ge1b99+woQJ5b/PkCFDVqxYceqpp5b/VgAAABAZnuBLybZs2XLttddecsklifYnFovdfffdeXl5LVu2TG82AAAA4JhYAUQJXnnllaFDh27bti3xTbdu3caPH//9738/jakAAACA42MFEMXs2LFj8ODB11xzTaL9admy5Ysvvvjxxx9rfwAAAOAEZQUQ/2fTpk2XXnrpsmXLwo+nnnrqQw89NGLECK9UBwAAgBOaAoj/UVhY2KtXr+XLl4cfu3fv/qc//alVq1bpTQUAAACUny1g/I+f/vSnifbnlltumTlzpvYHAAAAosEKIIIgCObPn//nP/85nAcNGjR58uRYLJbeSAAAAECqWAFEEATBH/7wh3A4/fTT/+M//kP7AwAAAFGiACLYu3fvtGnTwvm6665r2LBhevMAAAAAqWULGMHy5cv37NkTzqtWrbr77rvLeOHw4cPPPvvsCssFAAAApIYCiGD16tWJecaMGTNmzCjjhT/60Y8UQAAAAFD12QJGsGbNmnRHAAAAACqQAohiK4AAAACA6FEAEfzxj3+MH5fu3bunOzsAAABwdAogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMTVSHeAKmfZsmVBENSuXTszM7OMlxQVFa1atSoIgjp16jRv3rzisgEAAAAcBwVQsvPOOy8Igm7dus2bN6+Ml+zZsye8qmvXrvPnz6/AcAAAAADHzhawFKhXr14sFguCYOPGjenOAgAAAJBMAZQC+fn58Xg8CIKCgoJ0ZwEAAABIdlJvAZs6derUqVNLPLR06dIrrriiLDfZu3dvXl5eODdt2jRl4QAAAABS5KQugFauXDljxowSDxUWFh7pUClycnLKHQoAAAAgxWwBS5kGDRrcf//96U4BAAAAkOykXgGUnZ09dOjQpC8nTZoUBEHjxo0HDhxYxvvEYrGsrKzrrrvOO+ABAACAKuikLoD69+/fv3//pC/DAqhly5YTJ05MRygAAACAFLMFDAAAACDiTuoVQCUaP3584H1eAAAAQIQogJLddddd6Y4AAAAAkEq2gAEAAABEnBVAJTt06NCqVavy8vJWrVoVj8fLfuGoUaMqLhUAAADAcVAAlWDTpk2DBg2aNWvWcVyrAAIAAACqGgVQss2bN3fs2LGgoCDdQQAAAABSQwGUbPTo0UntT4sWLWrXrp2uPAAAAADlpAAq5h//+MdTTz0VzhkZGePGjbvpppsyMjLSmwoAAACgPBRAxeTn5x86dCicX3jhhX79+qU3DwAAAED5eQ18MV988UU45OTkaH8AAACAaFAAFVNYWBgOnTp1Sm8SAAAAgFRRABXTrFmzcKhfv356kwAAAACkigKomA4dOoRDYi8YAAAAwIlOAVRM+/btu3XrFgTBW2+9tW3btnTHAQAAAEgBBVCy3/3udzVq1NizZ8/w4cMTbwQDAAAAOHEpgJJ179590qRJsVjsxRdfHDBgwIoVK9KdCAAAAKBcaqQ7QFV06623tmjRYtCgQa+//vq0adNuvPHGnJyc1q1bZ2Zm1qxZs/RrMzMzKyUjAAAAQFkpgJIlGpz9+/cHQXDw4MHnnnvuueeeK+Pl8Xi8goIBAAAAHB8FULIvv/wy3REAAAAAUskzgAAAAAAizgqgZAsWLEh3BAAAAIBUUgAly87OTncEAAAAgFRSAJ3Y7rzzzilTpjRv3nzx4sXlv9vUqVM/+eSTMp786KOPnnLKKeX/oQAAAEBFUwCdwIqKip5//vldu3YVFham5IaTJ0+eNWtWGU8eM2aMAggAAABOCAqgo1u/fv2CBQt27txZWFj49ddf33///eH3Bw8erF69ehqDvf3229u2bUvhDVetWpXCuwEAAABVhALoiL755ptHHnnk+eefX7169eHfJwqgH//4xwUFBbfddtt1111Xs2bNSo63devW4cOHp/CGe/fu3bBhQwpvCAAAAFQRXgNfspkzZ55//vkPPfRQUvtzuKKiotmzZ990002dO3f+7LPPKi1bPB6fNWtW//79169fn8Lbrl69Oh6Ph/Pnn38eP5qMjIwU/nQAAACg4lgBVIK8vLz+/ft/8803ZTx/yZIl3bt3f++99yr0DWKzZ89etGhRfn7+Rx99VBF9U2L/V7Vq1Vq2bJny+wMAAADpogBKVlBQ8MMf/jDR/nTo0GHEiBFdu3a94oorNm/efPiZt9xyy/Lly5ctWxYEwa5duwYOHPjZZ5/Vq1evgoJdffXVqX3iT5KVK1eGQ4sWLTzdGQAAAKLEFrBkEydOTBQ9I0aM+Nvf/vaTn/ykQ4cO1aol/2911VVX5efnjx49Ovy4fv36Rx55pDKjplaiADrnnHPSmwQAAABILSuAitm/f/+ECRPCuWfPno8//ngsFivl/GrVqj3wwAM7dux4/PHHgyCYNGnSgw8+WEEPhB4/fvy+ffsO/+app56aP39+qu6f2ALWunXrVN0TAAAAqAoUQMUsWrQosfxn4sSJpbc/CSNHjpwwYcL+/fu3b9++cOHCrl27VkS2wYMHJ30za9asFBZAJa4A2rVr16ZNm04//fRGjRp9ew0UAAAAcELwR/pi1qxZEw7NmjVr06ZNGa9q2rRpu3btwnnRokUVkqyCFRUVrV27Npxbt269aNGiAQMGNG3atH79+m3btm3SpEmDBg2uueaa6dOnJ94UBgAAAJwoFEDFJEqQDh06HNOFzZs3D4cKfU5zxVm3bt3BgwfDedy4cZ06dXrttde2bNmSOKGwsPCVV17p169fr169kh6GDQAAAFRxtoAVU6tWrXAo+zvgQ4lO5AR9f1Zi/1cQBB988EEpZ86aNatLly5z5szJzMxMYYCvv/76nXfeOXToUDnvE1Z4likBAADA4RRAxTRt2jQcPvvss3g8XsZnAB08eHDJkiXhfMYZZ1RUuIp0eAEUBEGbNm3uvvvuyy+/vEmTJhs3bly8ePG77747efLkoqKiIAg2btx4zTXXzJ07N4Vt1+jRo//whz+k6m6LFy9O1a0AAAAgAhRAxeTk5ITDtm3bZs+e3bNnz7JcNXPmzMSKoQsvvLCCslWoxCvAgiC44YYbnnrqqTp16oQfW7Vq1apVq4EDB/7kJz/p169fuC8sLy/vmWeeGTp0aKoC3HDDDRs3biz/CqAFCxasXbs2KysrJakAAAAgGhRAxWRmZnbq1GnhwoVBEAwfPnzhwoWJTWFHsnPnzhEjRoRzVlZW2R8dXaWcccYZV111VRAELVq0+P3vf1+jRgl/Y3Tu3PmFF1645JJLwo/jxo27/fbby7hI6qiys7NfeOGF8t9nyJAha9euzcjIKP+tAAAAIDI8BDrZAw88EA6ff/75FVdcsWnTplJOzs/P79mz57Jly8KP99xzT6oKkUr2q1/96rXXXnvttdcef/zxEtufUM+ePfv27RvOq1atSto4BgAAAFRNCqBkV1555cCBA8N55syZHTp0uOOOO/7yl7+Ej78JgmDdunWffPLJk08+edVVV7Vv3z7x3vcuXbrceuut6QldiXr37p2Y582bl8YkAAAAQBnZApYsFotNnTq1f//+4cuwtm3b9sQTTzzxxBOJE1q0aPHtq1q3bv3mm2+WsnYmMg7f4/bVV1+lMQkAAABQRlYAleDUU099++23H3jggTIWOoMGDfrb3/7WpEmTig5WFbRu3Tox79mzJ41JAAAAgDJSAJWsZs2ao0ePXrNmzX333Xd45XG4Jk2aDBky5NNPP506dWr9+vUrOWG67Nq1KzGffvrpaUwCAAAAlFH0tyyVx/e+972HH3744YcfLigoWLJkyfbt23fu3FmnTp2GDRu2atUqKyvrBH3kc5K333571qxZQRBUq1Zt9OjRpb/4bPny5Ym5WbNmFZ0NAAAAKD8FUJk0bty4V69e6U5RUfbs2fPoo4+Gc3Z2duIZ2CVKPPQ6Fov94Ac/qPBwAAAAQLnZApZs2bJly5YtW7t2bdkvKSoqCq9at25dheWqQL169Uqs+nniiSfi8fiRzvz6668nT54czhdffHHDhg0rIx8AAABQPgqgZOedd95555334x//uOyX7NmzJ7zq2muvrbhg5bRmzZpZ/2vp0qWHH2rQoMH1118fzh988MHYsWNLvENRUdEtt9xSUFAQfhw5cmSFBgYAAABSRQGUAvXq1QsfBrRx48Z0ZzmiyZMnX/K/Hn744aSj9913X2IR0KhRo4YOHbp58+bE0QMHDsydO7dXr16vvPJK+M0VV1zRt2/fykkOAAAAlJMCKAXy8/PDbVOJ1TEnnHPPPfeRRx4J53g8/l//9V9nnXVW69atL7/88gsuuKBu3brdu3efM2dOeEJWVtbUqVOj8QBsAAAAOBmc1A+Bnjp16tSpU0s8tHTp0iuuuKIsN9m7d29eXl44N23aNGXhKt3Pf/7zvXv3jho16tChQ0EQHDx4cOXKlStXrkw6rXv37q+++mqjRo3SkREAAAA4Hid1AbRy5coZM2aUeKiwsPBIh0qRk5NT7lDpdO+99/bq1evBBx98++23v/0o6PPPP3/kyJE33HBD9erV0xIPAAAAOD4ndQGUWg0aNLj//vsr8yeWsoLp28aMGTNmzJijntatW7fp06fv2LFj5cqVa9asWbt2bc2aNZs2bdqtW7eWLVuWLy8AAACQHid1AZSdnT106NCkLydNmhQEQePGjQcOHFjG+8RisaysrOuuu6558+YpjpgmDRo06NKlS5cuXdIdBAAAAEiBk7oA6t+/f//+/ZO+DAugli1bTpw4MR2hAAAAAFLMW8AAAAAAIu6kXgFUovHjxwcn+Pu8AAAAAA6nAEp21113pTsCAAAAQCrZAgYAAAAQcVYAlezQoUOrVq3Ky8tbtWpVPB4v+4WjRo2quFQAAAAAx0EBVIJNmzYNGjRo1qxZx3GtAggAAACoahRAyTZv3tyxY8eCgoJ0BwEAAABIDQVQstGjRye1Py1atKhdu3a68gAAAACUkwKomH/84x9PPfVUOGdkZIwbN+6mm27KyMhIbyoAAACA8lAAFZOfn3/o0KFwfuGFF/r165fePAAAAADl5zXwxXzxxRfhkJOTo/0BAAAAokEBVExhYWE4dOrUKb1JAAAAAFJFAVRMs2bNwqF+/frpTQIAAACQKgqgYjp06BAOib1gAAAAACc6BVAx7du379atWxAEb7311rZt29IdBwAAACAFFEDJfve739WoUWPPnj3Dhw9PvBEMAAAA4MSlAErWvXv3SZMmxWKxF198ccCAAStWrEh3IgAAAIByqZHuAFXRrbfe2qJFi0GDBr3++uvTpk278cYbc3JyWrdunZmZWbNmzdKvzczMrJSMAAAAAGWlAEqWaHD2798fBMHBgwefe+655557royXx+PxCgoGAAAAcHwUQMm+/PLLdEcAAAAASCXPAAIAAACIOCuAki1YsCDdEQAAAABSSQGULDs7O90RAAAAAFLJFjAAAACAiFMAAQAAAEScLWBHF4/HN2zYsHz58h07duzatSsjI6Nhw4YtW7bMysqKxWLpTgcAAABwFAqg0uTl5U2YMGH69OmbN2/+9tEmTZr06dNnxIgRnTt3rvxsAAAAAGVkC1jJtm7deu2112ZnZ0+ePLnE9icIgq+++mrKlCnZ2dnXX3/99u3bKzkhAAAAQBkpgEqwfv36zp07v/zyy2U8/6WXXsrOzj5STwQAAACQXraAJdu3b1+fPn3WrVuX+KZHjx79+vXLzMxs3rx5s2bNCgoKVq9evXr16mnTpuXm5obnrFmzpl+/fvPnz69Zs2aaggMAAACUTAGU7IknnsjPzw/ndu3aPf300126dDn8hLPOOuvCCy8MguCee+6ZN2/eLbfcsmzZsiAIFi5c+OSTTw4bNqzyM3NC8gTxVInH050AAACgqrMFrJh4PD5+/PhwPv/883Nzc5PanyQ5OTm5ubmtW7cOP44bNy7uz6IAAABAFaMAKmbx4sUbNmwI50mTJjVo0OColzRu3HjixInhvHbt2qVLl1ZgPgAAAIBjpwAqZtGiReGQlZV10UUXlfGqSy65pEWLFuG8cOHCCkkGAAAAcLwUQMUUFBSEQ9u2bWNlfkRLLBZr165dOG/ZsqVCkgEAAAAcLwVQMUVFReFQvXr1Y7qwRo3/eZz2gQMHUpwJAAAAoHwUQMU0adIkHFauXHlMF37xxRfhcMYZZ6Q4EwAAAED5KICKadOmTTh89tlniZfBH1V+fv7nn3+edAcAAACAKkIBVEy3bt0aNmwYzsOGDdu/f/9RL9m/f/+wYcPCuVGjRqW/Nh4AAACg8imAiqlRo8Ztt90Wzrm5uf3799+0aVMp52/evPnKK6/Mzc0NP952223H+vAgAAAAgIqmAEp27733Nm3aNJzffffdNm3aDBs27I033sjPz9+9e3cQBLt3787Pz3/zzTeHDx/epk2bGTNmhCc3bdp05MiRacsNAAAAcAQ10h2gyjnttNOmT5/es2fPwsLCIAh27949YcKECRMmhEfr1q27Z8+eb19Vr1696dOnn3baaZWaFQAAAKAMrAAqQadOnT7++ONOnTp9+1CJ7U/Hjh3nzp1b4vkAAAAAaacAKlnbtm3nzZv37LPP5uTklHJa165dn3nmmfnz57dr167SsgEAAAAcE1vAjqhWrVqDBw8ePHjw9u3b582bt2LFip07d+7evTsjI6N+/frnnHNOt27dGjVqlO6YAAAAAEehADq6hg0b9u3bt2/fvukOAgAAAHA8bAE7TgcOHIjH4+lOAQAAAHB0CqAjKioqmjFjxh133NGrV6+NGzcmHX3vvffq1avXo0ePxx9/PHxfGAAAAEDVZAtYyd5555077rjjiy++CD8WFRV9+5zdu3d/+OGHH3744dixYydMmDBgwIDKzQgAAABQJlYAleDpp5/u06dPov05qi1btlx99dVPP/10haYCAAAAOD4KoGSffvrp0KFDDx06FH489dRT+/fvX69evaTTOnbseN99951//vnhx3g8PmzYsCVLllRqVgAAAIAyUAAlGzVq1IEDB8J56NChBQUFb7zxRsOGDZNOa9q06cMPP7xkyZI//vGPtWrVCoJg3759Dz74YGXHBQAAADgaBVAx27dvf+utt8J5+PDhEydOrFu3binnx2Kx4cOH//a3vw0/vvrqqzt27KjwlAAAAADHQgFUzIoVK8KhTp06Dz30UBmvGj58eIMGDYIgiMfjc+bMqahwAAAAAMdFAVRMogBq27Zt2OmURe3atc8777xw/vLLLyskGQAAAMDxUgAVs3HjxnBo0aLFMV343e9+Nxx27dqV4kwAAAAA5VMj3QGqlsTDnrdu3XpMF27ZsiUcTj/99BRnIqri8XQnCIJYrLx3qAq/BQAAAEdjBVAxZ599djjMmzev7Gt5du7cOX/+/HBu3rx5hSQDAAAAOF4KoGJ69OiRkZERBMG+fft+85vflPGqMWPGFBUVBUFQu3btHj16VGA+AAAAgGOnACqmdu3agwcPDuc//OEPY8aM2b9/fynnHzx48Pe///3vf//78OPVV19d+mvjAQAAACqfAijZb37zm8T7v+6///6WLVuOGzdu8+bN8eLPOtm5c+ef/vSnc8899+677w6/qV279sMPP1zZcQEAAACOxkOgk51++umvv/567969v/nmmyAINm7ceM8999xzzz2nnHLKWWeddeaZZ+7cuXPt2rWFhYWHX1WtWrXnn3/+WN8dBgAAAFAJrAAqQffu3d9///1WrVod/uW+fftWrlyZm5u7ePHipPanYcOGL7/88sCBAys3JgAAAECZKIBKlpOT8/e//33s2LGlL+r5zne+M2LEiCVLlgwYMKDSsgEAAAAcE1vAjqhu3bojR4785S9/mZeX99FHHy1evHjbtm27du069dRTGzRokJWVddFFF/3gBz8I3xoGAAAAUGUpgI6ievXqXbt27dq1a7qDAAAAABwnW8AAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiaqQ7QBV16NChVatW5eXlrVq1Kh6Pl/3CUaNGVVwqAAAAgOOgACrBpk2bBg0aNGvWrOO4VgEEAAAAVDUKoGSbN2/u2LFjQUFBuoMAAAAApIYCKNno0aOT2p8WLVrUrl07XXkAAAAAykkBVMw//vGPp556KpwzMjLGjRt30003ZWRkpDcVAAAAQHkogIrJz88/dOhQOL/wwgv9+vVLbx4AAACA8vMa+GK++OKLcMjJydH+AAAAANGgACqmsLAwHDp16pTeJAAAAACpogAqplmzZuFQv3799CYBAAAASBUFUDEdOnQIh8ReMAAAAIATnQKomPbt2588ju0AACAASURBVHfr1i0Igrfeemvbtm3pjgMAAACQAgqgZL/73e9q1KixZ8+e4cOHJ94IBgAAAHDiUgAl6969+6RJk2Kx2IsvvjhgwIAVK1akOxEAAABAudRId4Cq6NZbb23RosWgQYNef/31adOm3XjjjTk5Oa1bt87MzKxZs2bp12ZmZlZKxspz5513TpkypXnz5osXL053FgAAAOB4KICSJRqc/fv3B0Fw8ODB55577rnnnivj5fF4vIKCpUVRUdHzzz+/a9euwsLCdGcBAAAAjpMCKNmXX36Z7ghVyNtvv+1h2AAAAHCi8wwgjmjr1q3Dhw9PdwoAAACgvKwASrZgwYJ0R0i/eDw+e/bskSNHrl+/Pt1ZAAAAgPJSACXLzs5Od4S0mT179qJFi/Lz8z/66KPPPvss3XEAAACA1FAA8X+uvvpqT/wBAACA6PEMIAAAAICIswLo6OLx+IYNG5YvX75jx45du3ZlZGQ0bNiwZcuWWVlZsVgs3elSafz48fv27Tv8m6eeemr+/PnpygMAAACkhAKoNHl5eRMmTJg+ffrmzZu/fbRJkyZ9+vQZMWJE586dKz9bRRg8eHDSN7NmzVIAAQAAwInOFrCSbd269dprr83Ozp48eXKJ7U8QBF999dWUKVOys7Ovv/767du3V3JCAAAAgDJSAJVg/fr1nTt3fvnll8t4/ksvvZSdnX2knggAAAAgvWwBS7Zv374+ffqsW7cu8U2PHj369euXmZnZvHnzZs2aFRQUrF69evXq1dOmTcvNzQ3PWbNmTb9+/ebPn1+zZs00BT+x/fOf//z4448PHTpUzvuo4QAAAODbFEDJnnjiifz8/HBu167d008/3aVLl8NPOOussy688MIgCO6555558+bdcssty5YtC4Jg4cKFTz755LBhwyo/cwQ88MAD48aNS9XdlixZkqpbAQAAQAQogIqJx+Pjx48P5/PPPz83N7dBgwalnJ+Tk5Obm3vxxRd/8cUXQRCMGzfuZz/7WcReDVY5rrzyyiVLlhw4cKCc98nPz9+8eXOLFi1SkgoAAACiQQFUzOLFizds2BDOkyZNKr39CTVu3HjixImXXnppEARr165dunRp27ZtKzZlFHXv3v2tt94q/32GDBkyZcqUevXqlf9WAAAAEBkeAl3MokWLwiErK+uiiy4q41WXXHJJYsnJwoULKyQZAAAAwPFSABVTUFAQDm3bti37Tq5YLNauXbtw3rJlS4UkAwAAADheCqBiioqKwqF69erHdGGNGv+zma78T7EBAAAASC0FUDFNmjQJh5UrVx7TheFDoIMgOOOMM1KcCQAAAKB8FEDFtGnTJhw+++yzxMvgjyo/P//zzz9PugMAAABAFaEAKqZbt24NGzYM52HDhu3fv/+ol+zfv3/YsGHh3KhRoy5dulRgPgAAAIBjpwAqpkaNGrfddls45+bm9u/ff9OmTaWcv3nz5iuvvDI3Nzf8eNtttx3rw4MAAAAAKpoCKNm9997btGnTcH733XfbtGkzbNiwN954Iz8/f/fu3UEQ7N69Oz8//8033xw+fHibNm1mzJgRnty0adORI0emLTcAAADAEdRId4Aq57TTTps+fXrPnj0LCwuDINi9e/eECRMmTJgQHq1bt+6ePXu+fVW9evWmT59+2mmnVWpWAAAAgDKwAqgEnTp1+vjjjzt16vTtQyW2Px07dpw7d26J5wMAAACknQKoZG3btp03b96zzz6bk5NTymldu3Z95pln5s+f365du0rLBgAAAHBMbAE7olq1ag0ePHjw4MHbt2+fN2/eihUrdu7cuXv37oyMjPr1659zzjndunVr1KhRumMCAAAAHIUC6OgaNmzYt2/fvn37pjsIAAAAwPGwBYzSTJ06NR6Px+PxtWvXpjsLAAAAcJwUQAAAAAARd/JuAbvrrrsS8x133NGqVatwLudSl8zMzPJcDgAAAJByJ28B9PjjjyfmH/3oR4kC6Oyzzy7PbePxeLliARANsVi6E0SIf7cCAJSbLWAAAAAAEacAAgAAAIi4k3cL2NChQxPzmWeemZgXLFiQjjgAAAAAFeXkLYAmTpxY4vfZ2dmVnAQAAACgQtkCBgAAABBxJ+8KoCNZtmxZEAS1a9cu+wvdi4qKVq1aFQRBnTp1mjdvXnHZAAAAAI6DAijZeeedFwRBt27d5s2bV8ZL9uzZE17VtWvX+fPnV2A4AAAAgGNnC1gK1KtXLxaLBUGwcePGdGcBAAAASKYASoH8/Px4PB4EQUFBQbqzAAAAACQ7qbeATZ06derUqSUeWrp06RVXXFGWm+zduzcvLy+cmzZtmrJwAAAAAClyUhdAK1eunDFjRomHCgsLj3SoFDk5OeUOBQAAAJBitoClTIMGDe6///50pwAAAABIdlKvAMrOzh46dGjSl5MmTQqCoHHjxgMHDizjfWKxWFZW1nXXXecd8AAAAEAVdFIXQP379+/fv3/Sl2EB1LJly4kTJ6YjFAAAAECK2QIGAAAAEHEn9QqgEo0fPz7wPi8AAAAgQhRAye66667juOqZZ57Zu3dvVlbW5ZdfnvJIAJx44vF0JwiCWKy8d6gKvwUAAKmgAEqBgwcP/uIXv9ixY8f3v/99BRAAAABQ1XgGUAq89dZbO3bsCILg888/T3cWAAAAgGRWAJVszpw5kyZNWrJkyc6dO0s/s6ioaNOmTeH8ne98p+KjAQAAABwbBVAJxo4de9999x3HhTfeeGPKwwAAAACUky1gyT766KPja3+uvvrqBx54IOV5AAAAAMrJCqBkjz32WGLu1q1b7969MzIyZs+ePW3atCAIunTpEi7z2b9//9KlS1966aVvvvkmCIKRI0eOHTs2XZnhpFb+9xyR4JVPAAAQUbG4/9w/zFdffXXmmWcePHgwCIJBgwZNmTKlevXqQRDE4/HLLrvsgw8+aNmy5cqVK2P/+wfOpUuXXnbZZZs2bapevfpf/vKXH/7wh+lMTxAMGTJkypQpzzzzzM0335zuLCeCaLwiWgGUQlXh/1BSKBr/jAMAkAq2gBWzYsWKsP2pVq3a2LFjw/YnCIJYLDZ48OAgCFavXr127drE+eedd97s2bNr1ap18ODBW265Zdu2belIDQAAAFAaBVAxGzZsCIcLLrjgrLPOOvxQx44dw2H58uWHf9+qVatwscm2bdsefPDBSokJAAAAcAwUQMVs3LgxHM4888ykQ+ecc044rFixIunQ0KFDw2Hq1Kn79++vyIAAAAAAx0wBVEzi4T41a9ZMOlSnTp3vfe97wbdWAAVBcO6554bDjh075s6dW8EZAQAAAI6NAqiYsOIJgmDz5s3fPtq6desgCBYvXpz0fd26dZs2bRrOq1atqsiAAAAAAMdMAVRMogDKz88vLCxMOhoWQAsXLgwfFH248GXwQRBs3bq1gjMCAAAAHBsFUDGtWrUKd4Ht3r37scceSzoabvXas2fPrFmzDv9+y5YtibaoRYsWlREUAAAAoMwUQMU0adKkR48e4fzAAw/84he/WLp0aTweD7+57LLLwuGRRx45fBHQpEmTEnOrVq0qKywAAABAmSiAko0ePToxjx8/vm3btrm5ueHHdu3anX322UEQvPfee1dfffXbb7/94Ycf3nfffYlLGjRocN5551V2YgAAAIBSKYCS9ezZc8yYMYd/k1gBFIvFEl3PX//61z59+vTo0WPs2LGJE0aNGpWRkVGJYQEAAACOTgFUgvvuu+/VV18tcS3PTTfddP3115d4VadOnYYNG1bB0QAAAACOmQKoBLFYbMCAAfn5+UuXLn311VfPOeecxKFq1ao9//zzDz30UMOGDRNf1q5d+2c/+9nMmTNr166djrwAAAAApamR7gBVVywWO/fcc8M3fx2uevXqo0aN+rd/+7cVK1Zs3LjxtNNO69ixY926ddMSEgAAAOCoFEDH6dRTT73gggsuuOCCdAeBk97/PoQrzWKx8t6hivwiAABAFNkCBgAAABBxCiAAAACAiLMFrGSHDh3asGHDsmXL1q5de+jQobJf+NOf/rTiUgEAAAAcBwVQCT799NPbb789Ly/vOK5VAAEAAABVjQIo2ccff9y9e/djWvUDAAAAUJUpgIo5ePDg8OHDk9qfunXr1q5dO12RAAAAqFTlf8ErCd51W2UogIpZtGjRwoULw7lRo0YPPfTQgAEDzjjjjJh//gEAAIATlgKomBUrVoRD9erVp0+f3rVr1/TmAQAAACg/r4EvZu3ateHQu3dv7Q8AAAAQDQqgYjIyMsKhbdu26U0CAAAAkCoKoGKaN28eDps2bUpvEgAAAIBUUQAVc+mll9apUycIgjlz5hw4cCDdcQAAAABSQAFUTN26de+6664gCNatW/eb3/wm3XEAAAAAUkABlOzXv/51+PjnMWPG/Pa3v92/f3+6EwEAAACUi9fAJzvllFPeeeed/v37z5kz5//9v//37LPPXnnlle3bt2/cuHFZLr/iiisqOiEAAADAMVEAlWDbtm3xeDycly9fPm7cuLJfm7gQAAAAoIpQACVbuXJl165dd+zYke4gAAAAAKmhAEp20003aX8AAABOXlVhY0csloKbVIVfhCpDAVTMokWL5s+fH86nnHLKz3/+86uuuiorK+vUU09NbzAAAACA46YAKiYvLy8x//Wvf+3du3cawwAAAACkhNfAF7Nly5Zw6NWrl/YHAAAAiAYFUDH16tULhw4dOqQ3CQAAAECqKICKyczMDIevv/46rUEAAAAAUkYBVMyll17asGHDIAjmzp0b97x0AAAAIBIUQMXUrl37nnvuCYJg2bJlTz75ZLrjAAAAAKSAAijZL3/5y/79+wdB8K//+q8vvviidUAAAMAJIBbzV8r+gijyGvhk1apVe+WVV4YNGzZ58uQf//jHTz755MCBA9u3b9+4ceOyXH7uuedWdEIAAACAY6IAShY+Bzqx8Of9999///33y365FUMAAABAVaMASvbll1+mOwIAAABAKnkGEAAAAEDEWQGUbOnSpemOAAAAAJBKCqBknuIMAAAARIwtYAAAAAARpwAq5umnnz73f23atCndcQAAAABSwBawYrZs2bJ8+fJw3rZt25lnnpnePAAAVEWxWLoTREg8nu4EACcFBVAxrVq1SszLly9v3759GsMAVDZ/nkkhf54BoJJVkX/1lP8/J6rILwKRYwtYMb17927SpEk4z5gxI71hAAAAAFJCAVRMvXr1nnjiiVgsFgTB1KlT16xZk+5EAAAAAOWlAEp2zTXXPPvsszVq1Ni7d2+fPn0SjwQCAAAAOEF5BlAJbrrpprZt2950001Lly694IILBg4c+C//8i/NmjVr1qxZ/fr1Y6Vuas3MzKysmAAAAABlogBKdu6554bD3r17gyDYt2/fn//85z//+c9lvDzuiWUAAABAFaMASmbPFwAAABAxngEEAAAAEHFWACVbsGBBuiMAAFC1VYVd/6U+mLJMqsJvAUBlUQAly87OTncEgDSpCn8SKP+fZ4Kq8YsAAEBVYgsYAAAAQMQpgAAAAAAizhawo4vH4xs2bFi+fPmOHTt27dqVkZHRsGHDli1bZmVlxVKyVQEAAACgIimASpOXlzdhwoTp06dv3rz520ebNGnSp0+fESNGdO7cufKzAQAAAJSRLWAl27p167XXXpudnT158uQS258gCL766qspU6ZkZ2dff/3127dvr+SEAAAAAGWkACrB+vXrO3fu/PLLL5fx/Jdeeik7O/tIPREAAABAetkClmzfvn19+vRZt25d4psePXr069cvMzOzefPmzZo1KygoWL169erVq6dNm5abmxues2bNmn79+s2fP79mzZppCg4AAABQMgVQsieeeCI/Pz+c27Vr9/TTT3fp0uXwE84666wLL7wwCIJ77rln3rx5t9xyy7Jly4IgWLhw4ZNPPjls2LDKzwwAAABQCgVQMfF4fPz48eF8/vnn5+bmNmjQoJTzc3JycnNzL7744i+++CIIgnHjxv3sZz+r0FeDHTp0aNasWc8880xeXt769euDIPje977XuXPnm2++uVevXtWqlWtP39SpUz/55JMynvzoo4+ecsop5flxAAAAQOVQABWzePHiDRs2hPOkSZNKb39CjRs3njhx4qWXXhoEwdq1a5cuXdq2bdsKivfVV1/dfPPNb7/99uFfLl26dOnSpVOnTu3du/eUKVPOOOOM477/5MmTZ82aVcaTx4wZowACAACAE4KHQBezaNGicMjKyrrooovKeNUll1zSokWLcF64cGGFJAuCbdu25eTkJLU/h5sxY0ZOTs7WrVuP+0esWrXquK8FAAAAqiwFUDEFBQXh0LZt27Lv5IrFYu3atQvnLVu2VESwQ4cOXX/99WvWrAk/NmvW7NFHH33//ffff//9Rx55pFmzZuH3a9euve666w4dOnQcP2Lv3r2J1U8AAABAlNgCVkxRUVE4VK9e/ZgurFHjf/6XPHDgQIozBUEQBK+//vr7778fzl27dn3rrbcaNmwYfuzVq9dPfvKTPn36LFiwIAiCmTNnvv766z/60Y+O9UesXr06Ho+H8+eff37eeeelKDsAAACQZlYAFdOkSZNwWLly5TFdGD4EOgiC8jyC50ji8fhDDz0UznXr1n3ppZcS7U+oUaNGL730Up06dcKPDz/8cKLKKbvE/q9q1aq1bNmyfJEBAACAKkQBVEybNm3C4bPPPku8DP6o8vPzP//886Q7pNCyZcs+/fTTcL799tsTzxs6XGZm5u233x7On3zySaKQKrtE59WiRQtPdwYAAIAoUQAV061bt8TimmHDhu3fv/+ol+zfv3/YsGHh3KhRoy5duqQ81fTp0xPzkCFDjnTazTffnJjfeuutY/0piQLonHPOOdZrAQAAgKpMAVRMjRo1brvttnDOzc3t37//pk2bSjl/8+bNV155ZW5ubvjxtttuO9aHB5VF4uk/p59+evv27Y902gUXXJBorxKXlF1iC1jr1q2PPSMAAABQdSmAkt17771NmzYN53fffbdNmzbDhg1744038vPzd+/eHQTB7t278/Pz33zzzeHDh7dp02bGjBnhyU2bNh05cmRFRFq2bFk4dO3atZR3k8VisW7duiVdUnYlrgDatWvX0qVLCwoKju/NYgAAAEBV4C1gyU477bTp06f37NmzsLAwCILdu3dPmDBhwoQJ4dG6devu2bPn21fVq1dv+vTpp512Wsrz7Nu3b+3ateF85plnln7yd7/73XBYs2bNgQMHEu8mO6qioqLET2nduvWiRYtGjx798ccfJ95qX69evcsvv/zWW2/t06dPKSUUAAAAUAVZAVSCTp06ffzxx506dfr2oRLbn44dO86dO7fE88tv/fr1iVd6Jb3869saNWoUDgcOHNiwYUPZf8q6desOHjwYzuPGjevUqdNrr72WaH+CICgsLHzllVf69evXq1evzZs3H8MvAAAAAKSbFUAla9u27bx581588cX//M//nDdv3pFO69q167Bhw2644YZatWpVUJKvv/46MTdo0KD0kw9viA6/8KgOf+39Bx98UMqZs2bN6tKly5w5czIzM8t+/6MqKiqaN2/evn37ynkf5RQAAAB8mwLoiGrVqjV48ODBgwdv37593rx5K1as2Llz5+7duzMyMurXr3/OOed069YtseKm4nzzzTeJ+agrgA4/ocTFSkdyeAEUBEGbNm3uvvvuyy+/vEmTJhs3bly8ePG77747efLkoqKiIAg2btx4zTXXzJ07N4Vvi3/ggQfGjh2bqrvl5+en6lYAAAAQAQqgo2vYsGHfvn379u2blp9+eAFUv3790k8+/IT/z959x0dR7f8fPxs6CZESINSEFroIISReihQFRBRBijQBC817QdEriqhYEZBLUa+XpiIgRb2UqxCBQES4SAggPUAwoQsEQicJye7vj/ne+Q2bzbLZnZ22r+cfPE6Ss7ufGaa+d+ZMoQIg+RFgQoj+/fvPnz+/dOnS0o9169atW7dur169nn/++ccee0y6L2zXrl1ff/31iBEjPP8I9zp16pScnCzf7Oa1gwcPnjt37p6DJQEAAAAAEFACNADatGmTNMbzE088ERR010BIq1atEkKUK1fuoYce0qe4uykHcs7JyXHf+fbt23Lbabrcq1y5co8ePYQQERER06dPdzl6dHR09LJlyzp06CD9OG3atOHDh6s1IHSnTp06derk+/sMHTp04cKF97xXDgAAAACAgBKgAdCQIUOkMZJzcnKcgpKePXsKIWJjY90M/aOl4OBguZ2Zmem+s7KD8oX3NH78eE+6tW/fvlu3bmvXrhVCHD9+PDU1tV69ep5/CgAAAAAA0EWAPgXs4sWLUsP4YwYrc5zLly+776wMgEJCQvxRT5cuXeS2QTIyAAAAAADgXoAGQBEREVLjrbfeysrK0rcY98LCwuR2oa4AuueI0d6pX7++3L5w4YI/PgIAAAAAAKgrQG8Ba9my5dGjR4UQ33zzzYoVK6pXr16kSBFlh99//71BgwZevHNKSoo6Jf5PpUqVQkNDpRGLPL8CqEyZMpUrV1a3Eonynq9CjTMNAAAAAAD0EqAB0Pvvv79q1SrpAVtZWVlOD0EXQmRnZx85ckSP0pzZbLaoqKjk5GQhxLFjx9x3ljs0aNBAreGZnVy9elVuK69OAgAAAAAAhhWgAVDt2rV/+umnkSNHGiTlcS86OloKgHbv3p2dnV2iRAmX3bKzs/fs2SO1mzdv7vn7x8fHJyYmCiGCgoImTZpUvHhxN52Vc6xatWqefwoAAAAAANBLgAZAQoj27dvv27cvKSnpyJEjyqGg33rrLSFEtWrVRo4cqV91d+nWrducOXOEEDk5ORs2bOjevbvLbgkJCfJz4gvq49LNmzenTJkitVu2bNmrVy83nffu3Ss1bDZb27ZtPf8UAAAAAACgF5vD4dC7BmOR7pwyzmPghRA3btyoWLGiNFj1E088sXr1apfdevXqtXLlSiFEqVKlMjIySpcu7eH7Z2ZmhoeHS+FRx44dN27cWNDtY9evX69Tp470DLU2bdr8+uuvXkyOXw0dOnThwoVff/31kCFD9K7FDHy/T5ANiIyZqRZVbl9lZkpYLAFrs8w67p+BCwKRZf5DDTIhuuOgCGoL0KeAmUtISMiIESOk9po1azZu3Ji/T0JCgpT+CCFGjRqVP/1JS0tL/J/Dhw8r/1SuXLl+/fpJ7U2bNk2ePNllGXfu3Bk2bJiU/gghXn/9dW8nCAAAAAAAaIoAyNm6devWrVs3Y8YMvQu5y/jx40uVKiW1+/btu3XrVuVfExMTe/fuLbWDg4Nfe+21/O+wYMGCDv/z4YcfOv11woQJ8tA/EydOHDFihPK2uNzc3G3btnXs2PGHH36QftO1a9du3bqpMWUAAAAAAMDvAncMoIJ07dpV7xJcqFKlyoIFCwYMGCCEyMzMbNu2befOnVu0aJGXl5eUlPTLL7/IPb/66isvHgDfoEGDjz/+eNy4cUIIh8Mxd+7cBQsW1KpVKzIy8sKFCykpKfLoQkKIOnXqLF682E9PGQMAAAAAAKojADKN/v37nzlzZvz48Xa7XQixfv369evXKzsULVp0+vTpffr08e79X3755aysrIkTJ0rvn5eXl5qampqa6tStTZs2//73vytUqODdpwAAAAAAAO0RALlmt9uPHz++a9eu48ePF2qc7IkTJ/qvqldfffXBBx8cP378tm3bnP7Url27qVOnxsbG+vL+b7zxRseOHd999934+Pj8U924cePXX3+9f//+RYoU8eVTAAAAAACAxngKmAtnz54dOHBgYmKiF6/VZn6mpqYmJyefOXNGCFG9evVWrVrVqlVLxffPzMxMTU1NS0tLT08vVqxYeHh4bGxs7dq1VfwIP+EpYIXDMxpUxMxUCw+8UBGLJWBtrOMqYmaqiJmpFg6KoDauAHJ27ty5Bx54QH7WlTHVrVu3bt26/nv/cuXKxcTExMTE+O8jAAAAAACAZgiAnE2aNMkp/YmIiChZsqRe9QAAAAAAAPiIAOguf/755/z586V2SEjItGnTBg0aFBISom9VAAAAAAAAviAAusvBgwelZ2AJIZYtW/bYY4/pWw8AAAAAAIDvgvQuwFiOHTsmNeLi4kh/AAAAAACANRAA3eXatWtSo3nz5vpWAgAAAAAAoBYCoLtUq1ZNapQtW1bfSgAAAAAAANRCAHSX+++/X2rI94IBAAAAAACYHQHQXZo2bRobGyuEWLdu3aVLl/QuBwAAAAAAQAUEQM4++eSTokWL3rx588UXX5SfCAYAAAAAAGBeBEDO2rRpM2fOHJvNtnz58p49ex49elTvigAAAAAAAHxSVO8CjOjZZ5+NiIgYOHDgmjVrfvrppwEDBsTFxdWrVy8yMrJYsWLuXxsZGalJjQAAAAAAAJ4iAHImJzg5OTlCiLy8vEWLFi1atMjDlzscDj8VBgAAAAAA4B0CIGcnTpzQuwQAAAAAAAA1MQYQAAAAAACAxXEFkLOdO3fqXQIAAAAAAICaCICctWzZUu8SAAAAAAAA1MQtYAAAAAAAABZHAAQAAAAAAGBxBEAAAAAAAAAWRwAEAAAAAABgcQE6CHTXrl399M7x8fF+emcAAAAAAADvBGgA9PPPP+tdAgAAAAAAgEa4BQwAAAAAAMDiCIAAAAAAAAAsLkBvAXM4HHqXAAAAoC2bTe8KLISDSQCA2XAFEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFBegYQAAAAAHHIMPW+D4UkUEmBAAAU+EKIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjVYSk9gAAIABJREFUAAIAAAAAALC4onoXAAAA/MPh0LsCAAAAGAVXAAEAAAAAAFgcARAAAAAAAIDFcQsYAADWYbP58c25pQwwFtZJAEBhEAABAGAyfk15vPhcTkIBAACMjwAIAGAkZAmu6JX4eCh/efw3AkDgYh8AGBUBEBDA2D0DRmXwxOeelPWzpQH8wSbU2Uw4BKsoYFTsQaE2AiAAAAzB7KFPQQiDANWplf7Ib0UMBACBgAAICFy+Hz5yvAh1qXhKY6KF08jDNqtem/yGJEGA11TcVCrf00SbTRgZ16apSJWZyZyEEgEQEKBU2aNwvAgVqXtKY4qFU8V4xU95SkFv63vlJEGAF/wR/Sjf3PibTRiZ6vtxEdjhhVrzk1UbSgRAQCBS99JxdipCcBbrEz+d0hj22FGV3EffJc7p032ZIum1rEDAPfk1/ZE/woDbTBif/xZOw+7K/Ur1+RmYsxEuEQABAccfOxX2KPCav09pDLV8+hj9GDYlkQvzegKJgQD3NEh/lB9knM0mDE6bJdNQu3J/82uaFjizEQUhAAICi/8utQjMPYrqI6QE2glwQB04er20mGip8DEJIgYCXNIs/VF+ohE2mzAyjRfLAIkmA+pbMeiCAAgIIIwd4Al9n8RU2E8376lyQB04BkL048SXJMhmyzfhVn1AmvbMu0gFMO3TH/lzrbFbhz/ouFgKi8ZAXOUHbRAAAVCNiQ4WLXM6WdCEGPwsL6DOZ7xb2Az+P+g5h0OlDAgIPHptKpUFmGW3Ds2o9QxZX97HehEGV/lBMwRAQKAIqHttnKgb92h5XurjiCpKxjmd1veURuNF1Iv/QeP8T6lFhSkywkzxfTtihKmAeah1mu3jW1nvTBteU3GZFMRA/6PjQZE1ZiAKiwAICAi6f4uoPWuMtuumjMJOoFN/XSYw0M5nSH8AeEf1M20f39CY3+6ojO1vwdRdIJ1+7/vC6eb9DU6VGcvajUIhAAKsT/vBVnTckQTO7TY+Podb7q/ZtHM+c09mXA4BqM4fJ9uW3GZCA/6Lfpw6BNryqeKM5VoqFAoBEGBxulz7o/1uOHByn4IYfFoC8HzGMuNMAdCMX0+2Db7N1Jg2m2iD75rd0yD6yd85QFKMADwognEQAAFWpu99xZrtRbjRxsj8fT7j40eY6HgRgLWZ4lIL428zDRW+e1iMAY9JNE5/nF5l4UVUlSNz7qeDLwiAAMvSfdwfbTIg0h8j0+YI0hrferFYIoCwuOej5fm2NbaZhgp6fGSoB3rqFf3kfwfrxUCmCHmFMVZw+A8BEGBNRnhIp9BkF+LdQ6ahAc5nClcADz4HApX2p9xm3GaquK83xdM8Xb7Wr5UbIfrJ/26WiYE4KIJBEAABFqTitT+m2IUUNgOSOnOy7T+6HERa7EgRsCq/3gFhOjqecht//87TPN2/RMUJVOu4Ufdrz13SfefOQREMhQAIsBrVj62Nf4wovLoOyJIxkBEGw9b3K0TjLK7eLZMWWyABJRVPDq1xZqL7BRfGPEX0Ovcx3fbTCE/zNGZk4w96XdLCQRGMhgAIgDN/bOi1yYD+77MKfzWQ0zuYiy/fkRot+hEqjR1gkEEQyYAA4c8zTPmdzXh+onv6o3wfg5wiGuE7DB1pPCGBE/3INA6ODbKOGzPnhY4IgABL8dPOxvejQy0pD6G8DoNcvpsR+D4Igp+myCAHOsq3MsgpTaE/14oZUICf1wUmLfcapkuCDLXBFMbIgHikg5aMtgQWlvHjDKPNYSOs4zAIAiDAOvz9vG0z7jl8vL7aw5eocgzqv6GsNThENtqBjvyeui+00swP5PsTA+duDsh0/MLA+N9UG3NrKfTeYBZ2Q8H2wWuGXQK9qMGYMZBh57CRZxq0RAAEWIQ2j5bU/XTaR/kPGVWJXYzzGDLtj4mtPXKkUOlwx7tn1Zk9BjLOzYnQhuq7Ia/f0LAXBKmyoTPs1lJwfmhshg0mvGbARMPy67gwwME8fEQABFiBZjt1C2RATu55nmmccEdiqBNjgx+jqEivS4GULzHUf717RD8BxX+Df8m/tEYSxAZTzY+w4q2y/mO96EfJIIemgbOCC6JekyMAAkxP4/26QXa0muEQsyABdawjVFpuvbsU6P8KMHYSZNjRqeA/Wn734OPH6Z4EscF0z4uI3OzXSGrD2tGPTPdLgQJtBZeY63geMgIgwNx02bUHWgYEJ6Y+oNT9WnHvHld3VxmGeXSdWtfHcQpnLnptAXy/IEjo8cV1YJ4ZCq929F7HQMIqmxEVx8s3yHM5taRXDBSwB0WC43lzIgACTEzHXQ4ZUMAy9YGOMNKi6/VNYXcVk+/l/jsLUv12SGucsAUO45xPmujWMLNvMIUep9PepeROnc2yefHTDbMWWPC8pmUMZIH5rPvFU9AeARBgVrp/qWicE2l9qfsfYfAZYoFjHWGwRdf3C4KcGG3UqvzMcmLmzKx1q0DFrZzuey4nfk2C2GBKvN5gKtc5756l6P49taTiltmTSTDCkqMvDeaANVZwiaGOi+BvBEBA4DLCltq8Oww/ncboPlBFQax0oCMM+ZWX6kmQ0QRwfmJWRgtr/MqADwMyzjbTCCeHThsQVW6hNQW2nAZkpbVbZsDjIvgJARBgSgbZ9/h+UCjMlgFpdkZkqP2oQZY31RnhrCY/X770NhpOXczIOLd6eU3fW8MsucE02tbS9ag3bDDhf5ZcwWVGW9PhDwRAgPkYat+jSgZkfHpNoxEuCDLU8qY6gx/r5D8fMPgZjvVOYPyx7ht2jbDMyq7jU8MsMw/zM/4FAvfc/ui7/bTS5lH3PZEuM9PCa7eS8dd0+IgACDAZA+5+DH4K7QvVvwk3/pClLj/Ua8b8b3VirmMd40RCVjqZceLvwFf5/kZYR6y6pmv/1DCrzkklU+/xLbzV8gfdUx433NTmp//lQFi7lUy9psM9AiDATAy7+7HefsJPs5qH1xiWeZdhDw92PT+UD9hzJF0u9NPxKj8L3OrlIW02vIGzzTTv1hJuGDnuKRSXE+LLfi1wNpVOVFnThTmn3doIgADTUGUPZOTbtYxwRKjZEbzBk6DAOZNRsvZZTcDGOu75Y1H37j21vCwoMFdw4bdbwwJwflp7axkg/JT4qLuv8cfzMQtVYQCu3Uq+bzMFK7vxEAAB5mDk4EZFeu0kdNzBGy0J4lhHmOd2MHjNr8u50Vbq/AJ8+VR38gN2m2n0qwO+NclR0wBN//dVyVO0/DrBzWep8iS4e06LSVdPdTETLIYACDCBAEl/JFpmQIY6cNdx1NL8ZQQ4088EP535aHuiojrt13ffLxIx2mhBcGKonYj2dLs6QLNwx/1GT5UyPHkTn7e9PuY+xryAVJUR8eSXGHMaAX8gAAKMLqDSH4m/MyAVZ6kx/3e4CMWy9P1OW5MTFdUZ5BTd+JcFwQv8Xwh/zwTfN3r+2yj58s6Fmi6XnT37dK+jHzMGIsqaCzvhJEEIHARAgKEZM1/QgD8yoECbmZwumphZbl7Ir6DKNb7NQdWV3WibDqNdFmSKsWM5qTMT7zaAxkuf3SmoWs+n3alnvjf0bsW0zJoiT4gXSZAxhzHSkWWWCkgIgACL0+v0wPdTJhUzIINcAuAj8144YPCjH0Mc2fg18fHuvEjdkvK/mx/O1sy7pht87Tb4KuwJ95NgiI0AvNjmmCv08YRKU+TFOmvVtcDf06Xi5lHj/wLPK79nT6suPFZFAAQYl3lPZoQaw0P6ztQzMD9j3kJi+TNDifoHN2rFK/re3eDLVChf68NUWGM1N9RoQeY9nxHeFq/6c6O9Zootql/mTGE3JtaLftRD+uMnFrufzsOqPJlq42xC4QkCIMCgLHBWo9djYi0w69zTKwky3dND3PB6dAAlb6bFx9zHaOc8LuvxYhrll3g8gRZezbVfwX1ZtQ2yRstUfGaQ18+NVqsAwzLE5QDf2gy3PTQG0h91BfiddMJa0wIJARBgRJY5t9EyA7LMTPOcvx8cZrEvu5RUOUt06uluqr3Ofcx4hqOsubAT7jYJCrR1XMUkSLia9kA7sXGqvFCTX9gwyEpxucTr2SW7x+RIq7x3QyNrtp00+OhsZtxfGBtpGiyJAAgwHIud5GiWARlqqrWk/mjZgX3Eo/K0BMJopm7IE+JdEnT3fGAdV0uAr+MS1afIwom5KLhIlRNz7+JjTYYY8+PbqporORz6D3tsGcxMWBIBEGAsFkt/JHrdC4bC4rRQZYxpKrPqdJkN67jqAnyW+nFa8m80fImE7vnm/qP5dUPEFiry4mlihbg62CSsnW4HIAIgwEAsmf5IyIAQcEh/AEsL8OhHB262kF7fbWpR3mVAwoqLqFrraf5fevjOpngEofXuWoUbBEBwZrfbExMTv/766127dp06dUoIUb169ejo6CFDhnTs2DEoKEjvAi3LwumPxMQZkHGOFP0cEEg7by/GemCvrwLSHz+wzLC7Trxe47g0ANbkxfZTmz2754WpXY8XO3Rlf7Ov9RpctOK+pyrxkNGYfamAhAAId7lw4cKQIUPi4+OVvzx8+PDhw4cXL17cpUuXhQsXVq5cWa/yLEz3J6Zrw3AZkHGSHQ95UrDPOYLXMZDy5aamz9XOPNSmMALninSXU+rh5Lv5Htu7Fdx0c++efLk6gIsszM1o21v/1ONdDCTMuVs31AMNfX9D1bMhs/w/wt8IgPD/Xbp0KS4uLi0traAOP//8c1xc3M6dO8PCwrQsDJ4w+OU/KvIyA1Ix6zH4A0cKelUhy/b6iTkF9TTgkYfvR1fuJmqAw5u7Eox2TmIMgXyvjZ8mxIuBLYQ5zwmdqBsdBuxsVAqcNNa8vFtQZcYc1Mbydy0ZuTaYGgEQ/o/dbu/Xr5+c/lSrVm3MmDEtW7YUQuzcufPTTz89c+aMECI9Pb1v374bN27kXjAVWf7mLyXfLwISnmRAPsY9BjkJv2cZ3j0x18M3v5vLAxHfHwzsdQ3aXzXtzaGY8TMgg18EZ5A10dK8Xq0MHvVqfHKobmJukHnoxL+Jud7UuhDb4MdjquxG3bzQOA/Xc8/IiyLgbwRA+D9r1qxJSEiQ2q1atVq3bl358uWlHzt27Pj8888/+uijO3fuFEJs3rx5zZo1Tz75pG61WktApT8SVTIg1wLtkdtqPSTF2zlwz0ModQ/d/Br6+Otw0LsMSH4thBBejb5pinE378nHZb6wk+n1KKc+vsTlR/v4hurW4PtbaRCXe16/BrPUFKuYPw5FlO9p8MMzr1NLNww7oo2hF0jdv4nhYCPAEABBCCEcDsf7778vtYODg1esWCGnP5IKFSqsWLGicePGt27dEkJ8+OGHPXr0sBl2M28eAZj+SFQeDCjQch83DDZRhj7k0swAbxdUNUK6e/DfAuPnI9pCLVr5d1bm3X1pvE4V9HGqz0At/0d02S5pEJdrvFSbdPOu5ZCLTp9l8AM2VfJfg9Bz4dQ9zfECDy0NMARAEEKIlJSU3bt3S+3hw4dHRETk7xMZGTl8+PCZM2cKIZKTk48dOxYVFaVplZYTsOmPRM8BodlvQRdeJ0H5X2LAZdjAR70mPVM1ssLOUn+fSVrgv9gCk2BMqiQ+Tgcb3r2niS4Okhjhujw3TJzyGHAPruTJ1LnpY/CpAwEQJGvXrpXbQ4cOLajbkCFDpABICLFu3ToCIF8EePojMdxDwQBtKA+PdB3qW7XPBdwi3YCW/H2IpfxrgIRBTgJujQ6oK80LKtvDmWD876sCHgEQhBBCHv0nLCysadOmBXVr1qxZ+fLlL1++LL1k7NixGtVnRWbc3/uDOvOhsMOsSJ013icZ/MxZrblh8Mn0nGaLh9MH+TgDLTP/AaAw9PpejTDIyrg3SsnCkxZgCIAghBApKSlSo1WrVm5G9rHZbLGxsevWrVO+BDAEL26u0WCAFQvwJVAw3VxVTmxhJ1ytifVlYG8IP88ur/+X/f2faKh1zSBLrKHmiUsGmVFq0WOGG+1iasIgAMZHAASRnZ2dnp4utatWreq+c5UqVaRGWlpabm5u0aIsQn7njxut1b1211gVendzjcue6h7Oqvtu/jtz0Cv4MAJjTov7qnQ/h3RTnuq1mfcifCPU4Ia6Oa9hJ9avcbbXb27Y2eU5adq1ulZC3VGctRwTurA0CoO034n4fhO0Kh9dqP5G/nJR98MA9yywibMczt4hTp065fjf2bbTw7/yq1ChgtTIzc09ffp0ZGSkX2uDMMON1sat0MeLKTzvHMj3T3E/nRONZ4WRD61UrI3r8NUSyHNS9QkJ5Jmp5OeJ8scozvryYooK90AxEy2ZZlkjvLtZW5uRks3y/SIMgwAI4vr163K7XLly7jsrEyLlC31kt9v379+fm5vr4/tcunRJlXpgWT6ObFcQK+0vvZtFHs4B/90n5QUr/a9Znsv/cV+WSbOcdai4lEqT7MVpjAYXSGpJlVnqcmZ68uZWenSOinMyH6Pd26Uuv98pJs1V777x0mw5NPgu2P188P3SV4NPPiyNAAji1q1bcvueVwApO9y8eVOtGt5999333ntPrXc7cuSIWm+FQFHYIx4N9tyFKslo9eTn9T0C/qbuGMzQkirLpJENcHhzA0JhP8JHxp+NMg3ObANkfsr5l6rVWjv0KYgfw6AAWRrzU3vJLPSne0eXmv13cysMjAAIdwVAZcuWdd9Z2UHFACg2NjYmJsZut/v4PlevXs3IyOjevbsqVQEFMtpXtUarJz/jVygxS53wnbn+rw1brWELK4jBCzZ4eU5UrdaM8Y26DDcHzLU0KpmxcmPWbMyq4BsCIAjlQM45OTnuO9++fVtuBwUFqVVDt27dunXrpta7AQAAAAAAJdVO4GFewcHBcjszM9N9Z2UH5QsBAAAAAIBhEQDhrhzn8uXL7jsrA6CQkBB/1QQAAAAAANRDAAQRFhYmtwt1BdA9R4wGAAAAAABGQAAEUalSpdDQUKnt+RVAZcqUqVy5sn8rAwAAAAAAaiAAgrDZbFFRUVL72LFj7jvLHRo0aGCz8WhAAAAAAABMgAAIQggRHR0tNXbv3p2dnV1Qt+zs7D179kjt5s2ba1EZAAAAAADwGQEQhBBCfgR7Tk7Ohg0bCuqWkJAgPye+e/fuWlQGAAAAAAB8RgAEIYTo2LFjyZIlpfa8efMK6jZ//nypUapUqU6dOmlRGQAAAAAA8BkBEIQQIiQkZMSIEVJ7zZo1GzduzN8nISFh5cqVUnvUqFGlS5fWrj4AAAAAAOADm8Ph0LsGGMK5c+fq1Klz+/ZtIUS5cuXWrFnTpk0b+a+JiYk9e/a8cuWKECI4OPj48eM8AgwAAAAAALMgAML/t3Tp0gEDBsg/du7cuUWLFnl5eUlJSb/88ov8+xUrVvTp00ePAgEAAAAAgDcIgHCXTz75ZPz48Xa73eVfixYtOn369DFjxmhcFQAAAAAA8AVjAOEur7766pYtW1q3bp3/T+3atdu6dSvpDwAAAAAApsMVQHAtNTU1OTn5zJkzQojq1au3atWqVq1aehcFAAAAAAC8QQAEAAAAAABgcdwCBgAAAAAAYHEEQAAAAAAAABZHAAQAAAAAAGBxBEAAAAAAAAAWRwAEAAAAAABgcQRAAAAAAAAAFldU7wIAGNTatWu3bt0aGRmpdyFWcPTo0YoVK5YrV07vQkzvzp07hw8fbtiwYbFixfSuxfQyMzMvXLhQv359vQuxgvT09BIlSlSpUkXvQkzP4XAcOHCgTp06pUuX1rsW07t58+Yff/zRpEkTm82mdy2md+7cuezsbA6KVJGSklK5cmUOinx3586dEydOTJgwoWzZsnrXAtOwORwOvWsAYETFixe/c+eO3lUAAAAAcK13797fffed3lXANLgCCIBrpUqVunPnzjPPPFOyZEm9azG3ixcvrly5smLFij179tS7FtPbvXt3cnJyixYtWrZsqXctprdq1aoLFy48+eSTlSpV0rsWc8vOzl64cGGJEiWGDBmidy2md+zYsc2bN9erV69Dhw5612J6mzZtSk1N7dixY926dfWuxfQWLlyYnZ09ZMiQEiVK6F2LuZ0/f3716tWVK1fu0aOH3rWYXnJy8u7duyMiIvQuBGZCAATANekQ55NPPqlYsaLetZjbzp07V65cGRkZOWfOHL1rMb333nsvOTm5e/fu7777rt61mN6+ffsuXLgwfvz4uLg4vWsxt8uXLy9cuDA4OJh13HeLFy/evHlzbGwsM9N3AwcOTE1Nfe655wYMGKB3Lab33XffZWdnz5gxgxuXfLR9+/bVq1fXrl2bddx3b7/99u7du++77z69C4GZMAg0AAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAFwrWjRovK/8AVzUkXSbCxSpIjehVgBS6ZamJMqYmaqiJmpImamWpiTKpIOh5iZKJQikyZN0rsGAEZUpUqVBx98sFOnTnoXYnoVK1Z0OBzPPPNM3bp19a7F9CIiIhwOx4gRI8qWLat3LaZXvXr1iIiIp59+OiiIb4N8UqJEidDQ0F69et1///1612J6NWrUyM7OHj58eJUqVfSuxfQiIiKCg4Off/75EiVK6F2L6YWHh7dt2/ahhx7SuxDTq1Spkt1uf+aZZ+rUqaN3LaYXGRkphBg5cuR9992ndy0wDZvD4dC7BgAAAAAAAPgRX/oBAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxRXVuwAAxjV27NiFCxfWrFlz3759etdiPrdu3VqyZMnGjRt37dqVkZFx69atsLCw2rVrP/zwwwMHDqxXr57eBZrJrl27li5dumXLlpMnT16+fLlkyZIVKlSIjo5++OGHBw0aFBISoneB5rZy5cphw4YJIYYNGzZjxgy9yzGBxYsXJycne9h5ypQpJUqU8Gs91pCVlbVmzZolS5YcOXLk1KlTRYoUqVGjRvv27YcPH96sWTO9qzOu8+fPT5482YsX1qhR45VXXlG9HiuR9uPr1q3btWvXxYsXhRAVK1aMjo7u2rXroEGDSpcurXeBZnLp0qVFixbFx8cfPnz4/PnzpUuXrlKlSnR0dL9+/bp06VK0KOekrnlxKG632xMTE7/++utdu3adOnVKCFG9evXo6OghQ4Z07NgxKIjrPwKeAwBcycnJqVChghAiIiJC71rMZ8mSJWFhYQVteIOCgp599tlr167pXaYJXLp0qUePHm72Yvfdd9+XX35pt9v1rtSszpw5I63pQogRI0boXY45tG/f3vMDrevXr+tdrwls2bKlRo0aBc3DESNG3Lp1S+8aDerw4cOeL41K0dHRetduaMuWLXOzH69QocK3336rd43mkJeXN2XKlDJlyhQ0M1u1anXw4EG9yzQiLw7Fz58/37Vr14JmdZcuXf78809/lgwTIAIE4Fp8fPylS5f0rsKUPv7444EDB2ZkZBTUwW63f/nllzExMefOndOyMNO5fPlyXFzc6tWr3fS5evXqs88++84772hWlZXY7fahQ4eyphfW8ePH9S7BUhYuXNi+fXvpm2qX5syZ07t379zcXC2rQiD78MMPn376aTf78UuXLg0YMOD999/XsiozysnJ6d279/jx469fv15Qn6SkpLi4uL1792pZmCkU9lD80qVLcXFx8fHxBXX4+eef4+Li3CzYCAQEQABcyMjIePHFF/WuwpQ2bNgwYcIE+cfWrVv/4x//WL9+/c6dO7/88svBgwfLfzpy5MgTTzyRk5OjR5nm8Oyzzx47dkxqlyxZ8u9///vy5ct37dq1adOmzz///P7775d7vv/++26OeFCQWbNmbdiwQe8qTCYrK+v06dN6V2Ed27Zte+GFF+x2uxDCZrM99dRTS5cu3bZt2/Lly0eMGCHfrbB27dopU6boWqnVVK1aVe8SDOo///nPxIkT5R/j4uJmz569fv36DRs2fPrppw8++KD8p7fffvvHH3/Uo0bTGDNmzMqVK+UfBwwYMH/+/J07d/7000/vvfde7dq1pd9fv369W7duly9f1qlMIyrsobjdbu/Xr19aWpr0Y7Vq1aZMmZKQkJCQkPDxxx9Xq1ZN+n16enrfvn2lTS4ClN6XIAEwFrvdvnnz5tjYWHkrwS1gnrPb7Q888IA86yZNmpT/1qRff/21Zs2acp+ZM2fqUqrxJSUlyXOpQYMGx44dc+pw586d1157Te7D7QyFtXfv3uLFiysPCbgFzBMHDx6U59ihQ4f0LsfccnJyatWqJc3MkJCQtWvXOnVISkqSR1opVarU1atXdanTMpKSkooUKSKECA0NTUtL07scI7Lb7cpB+mbNmuW0H7fb7bNnz5Y71KtXj3uQC7J582Z5RlWuXPnnn3926nD9+vXnnntO7vPaa6/pUqfReHcorgzaWrU7ZqIPAAAgAElEQVRqdenSJeVfMzIyYmJi5A4rV670V/UwPAIgAA6Hw5GYmDhr1qzhw4c3adLEKSYmAPLcli1b5PnWsmXLgg4Kt27darPZpG41atTg2NGlUaNGyTNz/fr1LvvcuXOnZcuWcrcTJ05oXKR53bp1q3Hjxk4rOwGQJ9asWSPNrqCgoKysLL3LMbe5c+fKi9/SpUtd9vnyyy/lPitWrNC4Qiu5detWgwYNpDnJ+DUFUX730L9//4K69evXT+6WlJSkZYUm0qFDB3ku5Y93JXa7vVOnTlKfkiVLOsUWAcWXQ3G73d6iRQupc3BwcHp6ev4+aWlpcp7u5hgVlsctYACEEOKpp54aO3bs3LlzDxw4oHctJrZ+/Xq5PXnyZDnlcdK6deuhQ4dK7VOnTnHfu0uJiYlSo2XLlo888ojLPkWLFh0wYID8I3PSc6+//rp0JUvTpk1DQ0P1LsdMUlNTpUZERASP9/KFw+GYOnWq1G7fvv3TTz/tstugQYPkccr/85//aFScFb3xxhspKSlCiMGDB/fv31/vcgxK+YC/gQMHFtRN+addu3b5tyZzunTp0i+//CK1n3zyyUcffdRlN5vN9sUXX0hPAcvKyvrpp5+0K9FgfDkUT0lJ2b17t9QePnx4RERE/j6RkZHDhw+X2snJyfIt9gg0BEAAoJqtW7dKjdDQUPkbLZfatWsnt48cOeLfskzIbrfLsyX/V2FKyr8yrqGH4uPjpVsYSpQosWTJkmLFiuldkZnIAVBUVJS+lZjdoUOH5Jn50ksvFdStWLFic+fOnTx58uTJk1u3bq1VdVazadOmWbNmCSFq1ar12Wef6V2OcUmPe5c0atSooG7KKyiVL4Fs69at8kAzbp5LJYSoV69e06ZNpfaqVav8XpkVrV27Vm7LXzHmN2TIELm9bt06v5YEwyqqdwEADGHGjBnZ2dnK38yfP3/Hjh161WNSJ0+elBqNGjUq6PIfifLYMTMz079lmdDly5flA8e6deu66Xnr1i25XbFiRf+WZQkXL16Ujw4//vhj+bAbHpIfAaYcKARekG+mK1myZOfOnd307NWrlyYVWdbVq1eltb5IkSJLlizhoj835MvNhBAnTpyQx6hyIu/uhRBunhYfyM6ePSu377mjadq06Z49e8TdV2AFGl8OxRMSEqRGWFiYm7ndrFmz8uXLS4NtJyQkjB071od6YVYEQACEEEL5dCpJYmIiAVBhnT9/XmrkH12loJ5CCJdX6ga48uXLy4+MdX+XjfJK6fr16/u3LPNzOBzPPfectPg9/PDDY8aM0bsi83F5BdDVq1fPnj0bFhZWoUIF+cFVcG/btm1SIyYmplSpUvoWY20vvfTSqVOnhBBjx45VPsQK+SmfL7lu3br27du77KZ87iQxukvXrl2T2/dcwStVqiQ1Tp48efPmzeDgYD9WZlS+HIpLd3cKIVq1auXmC0ibzRYbGytd+yO/BIGGYxQAUM3p06czMzMzMzM//fRT9z3lG+MFN5K4EhQUFPI/bm5QSk9Pl+9l6NSpE1dk3NOcOXOkUVTKlSv39ddfE1UU1p07d9LT06V2vXr19u7d27Nnz/Dw8LJlyzZq1KhSpUrlypXr3bu3NNyprpWagHz6UaNGDeXvb9y4cfTo0fT09Nu3b+tRl9Xs2rXr66+/FkKEhoZOmDBB73KMrk2bNvLTPKdPny6PRqf0yy+/fPLJJ1K7WbNm3JnokvJaqnsON6N8uiJj0xRWdna2vGOqWrWq+85VqlSRGmlpabm5uX4tDMbEkR8AqKbs/7j/suvixYv/+te/pHaDBg0KusIcThwOx82bN0+fPr1///5Vq1YNHDiwSZMmf/75pxAiLCxMGt4CbqSkpIwbN05qz507t1q1avrWY0YnT57My8uT2tOmTWvevPmqVauUF/Rdu3bthx9+eOyxxzp27Hju3DmdyjSBrKystLQ0qR0eHi6EuHz58jvvvBMVFVWmTJn69evXqlUrODj4L3/5y+zZs7OysnQt1tzeeOMNqfHaa68pz8nhks1mW758uXRXV15eXqdOnUaPHr1t27aMjIyMjIxt27aNHj26Y8eO0nagQoUKy5cvd3/Hd8CqU6eO3P7999/d9MzJyVEOpH3lyhU/lmVFp06dkr9yKF++vPvO8kYgNzf39OnT/q0MhsQtYACgqdu3b/fs2fPGjRvSjxMmTOAqDA8dOXKkYcOG+X8fFxc3f/78e952F+BycnIGDhwoXVIxdOjQ3r17612RKcn3fwkhNm3a5KZnYmJiTEzM1q1bIyMj/V6WCZ09e1Ye5ys8PDwhIWHw4MFOkZnD4di+ffv27dv/8Y9/fPfddzExMXpUam4JCQkbNmwQQlSuXJnxPjwUFRX1yy+/9OvX78CBA3a7/Ysvvvjiiy/yd2vWrNm3337LrccF+ctf/lK6dGlpnL7PPvtszJgxUtSb3wcffHDhwgX5R/kACR6Sb5kXQpQrV859Z2VCpHwhAgdnHQCgnZMnT3bu3Fke+aJly5Y8i9dHDRo0+Oabb0h/7untt9+WnhFbq1YtrpbymjIAEkLUr19/3rx56enpt27dOnbs2A8//DBy5Ej5psUzZ8707t3baVBPSJTneKmpqd27d3dzwdSJEyfatWu3ZcsWTUqzDofD8frrr0vtt99+OyQkRN96TKRRo0arVq267777CuoQFha2Zs0aN48JQ4kSJYYNGya1r1+//txzz+W/tMfhcCxduvSjjz5S/pIAqLCUT8O45xVAyg43b970V00wMAIgANBCXl7e3LlzmzVrJj8qvm7duj/99FPRolyJ6ZOUlJSGDRuOHDnyzp07etdiXImJiVOnThVCBAUFLVq0iGcAeU1+BJgQon///rt3737++ecjIiJKlSpVt27dXr16ffHFF9u3b69cubLURx5+BU6U53hz586VbvJq167d0qVLDx48eO3atZ07d/7zn/+ULxnIysrq27cvz9sulO+//156plLt2rWff/55vcsxDYfDMWfOnObNm1+9erWgPhkZGc2aNVuwYIGWhZnOhAkT5AtS1q5d26RJk7lz5+7evfvGjRvHjh1buXJlt27dBgwYIN9XK3Ez8B9cUgZAZcuWdd9Z2YEAKDARAAGA3yUmJrZo0WLEiBHy11+NGjX6+eef5cdewBP169e/c+eONNjhxo0b33nnHekL7by8vDlz5vTt25cMyKXMzMzBgwdLAwRMmDCB8Up9Ubly5R49evTo0WPMmDHffPNN6dKl8/eJjo5etmyZ/OO0adMYEDq//Ccen3/++ebNm59++ulGjRqVKVOmZcuWo0aN2r9/f6dOnaQO58+fl0fexT3l5uZOnDhRak+cOLF48eL61mMiH3300ciRI6W7Y0qVKvXmm2/Gx8efPHny5MmT8fHxEyZMkIb5u3LlyvPPPz9t2jS96zWuqlWrLl++XHlR5IgRI6Kjo8uUKRMVFdWrVy/pYWqlS5dWPpKyTJky+pRrWsqvEnNyctx3Vg6uzxAEAcoBAK4MHDhQ2kpEREToXYuJ/fnnn06DrdhstldfffX27dt6l2YF586da9WqlTxvv/rqK70rMhy73d63b19p/sTExOTk5OTvIw8JOWLECO0rtKpu3brJS+bRo0f1LsdwNm/erNwwjhw5sqCep06dkofVDw0NdbkMI79Vq1ZJM61MmTI3btzQuxzTWLFihbxYxsXFnThxIn+f9PT02NhYudsPP/ygfZ0msnXrVjePpqpevfqWLVuUz07dtm2b3iUbhYeH4spHxc+ePdv9e86YMUPuvGPHDjXLhUkQ+wGAv/zwww+NGzf+/vvv5d/ExsZu27Zt2rRpJUuW1LEwywgPD//mm2/kmTlz5kx96zGgRYsWSeczpUuXXrx4MZfWa6ZLly5y+7ffftOxEmMKDg6W2yEhIR9//HFBPatXr/7iiy9K7WvXriUlJfm9OEuYM2eO1Ojbt69ybsMNu90+adIkqV2mTJlly5bVrFkzf7eIiIhly5bJYyq9++67Dq7yK1jr1q2PHTs2Y8aM2NhY5RPTIiMjJ06ceODAgbZt2yqfpXjPUWzgRLmCX7582X3nzMxMuc24YIGJsScAQH2ZmZljxoxZvHix/JvatWtPnjy5T58+PC9WXfXr1+/evbuUsu3du/fWrVsu78oJWO+9957UGDx48OXLl10mEfKtc+fPn5c7BAcHN23aVJsiLUn5bCDlA24gUZ54NGvWzM1ou0II5dUWhw4d4jbGezpx4oR0c40QYujQobrWYibbt28/dOiQ1H7llVciIiIK6hkZGTlu3DhpA7tv376kpCTlUgonpUuXfumll1566aXbt2+fP3/+9u3b4eHhZcuWlY+I5ACoaNGiyufHwxNhYWFyW5nvuKTsQNYWmAiAAEBlZ8+e7dSpU0pKivRjqVKl3n///b/97W8MweC5q1evSqlEkSJF7vlMU+VlVqdPn46KivJ7feaRm5srNebMmSNfEVCQVatWybeNREdHS8PHwjv16tWT2wy0mV+1atXk9j2f4qdcqZVXCqAg8+fPl65JqVOnDnmZ544ePSq3Y2Ji3HdW3oB85MgRAiBPlCpVKjIyMv/v5fW6Tp06XKlaWJUqVQoNDb127ZoozBVAZcqUkZ9XgIDCLWAAoKZr16517NhRTn/atGmzb9++V155hfSnUEaNGlWxYsWKFSt68nx35RGMm4e2AFpSLorKr2chCQ0NlYcFcXoGUH7Ky/pKlCjhx7IsITc3V3461dChQ7ns1HOnT5+W2w0bNnTfWfkM+JMnT/qrpgDgcDh27twptbny1As2m01OyY8dO+a+s9yhQYMGbBwCE1cAAYCaRo4ceeTIEak9bNiwuXPn8qB3L8gX3p87d+7SpUvyKMUuKQ93Klas6N/KEMDi4+MTExOFEEFBQZMmTXKf6srbAXH31S6QNWrU6OzZs0KIgwcPuu+p7MDDE+/pxx9/PHfunBDCZrMNHjxY73LMJDQ0VG6fOXOmVq1abjor0yLlCyHbvn27dP1jxYoVmzVrVlC3gwcPSkusEOKxxx7TqDhrkS/a3b17d3Z2dkFBeXZ29p49e6R28+bNtasPRsIVQACgmh07dixdulRqDxw4cMGCBaQ/3lFe+LN37173neUhG0qVKlWlShU/lmVC6enp93wehMungHH/V343b96cMmXKlClTJk+e/OOPP7rvLC+3Nputbdu2/q/OfDp37iw19u/fLz1yuyC7d++W29HR0f4ty/y++eYbqdG8eXM3o9ggP+WQz/fc9Sg7uBwrGjNnznzkkUceeeSRxx9/3M042fIFazabjQDIO/JzJ3NycjZs2FBQt4SEBPk58d27d9eiMhgPARAAqOYf//iH1AgLC5s9ezbX1nrt4YcfltvTpk1z03PPnj3ysU779u25PQT+07FjR/mqn88//9zN+cz169flU5rWrVsz0KZLTzzxhNS4efOmPFp5fhcuXJg9e7bUrlq1qie3hQayO3fubNy4UWqTPBZWhw4d5K9t5syZk52dXVDP7OzsuXPnSu2iRYt26NBBi/rM5tFHH5Uap06d+u9//+uyz9mzZ+WtZffu3bmM1zsdO3aUn4g6b968grrNnz9fapQqVapTp05aVAbjIQACAHVkZWX99NNPUrtv376c8vkiPDz8oYcektrx8fGrV6922e3mzZujRo2y2+3Sj8OGDdOoPgSkcuXK9evXT2pv2rRp8uTJLrvduXNn2LBhFy9elH58/fXXNarPbOrXry+fNs+cOXPz5s35++Tk5Pz1r3+9cuWK9OPYsWMJ1t377bff5MupGP65sMqWLdujRw+pvX///jfffNNlzutwOCZMmLB//37pxx49erh/jF3A6tKli9weOXJkVlaWU4fs7OxnnnlGXmLfeecd7YqzlpCQkBEjRkjtNWvWyCmwUkJCwsqVK6X2qFGjeGRqwLK5+f4KQCAbNGjQkiVLhBARERHp6el6l2MCe/fufeCBB6R2ly5dmjRp4uELX3zxRfcDDQSm9evXy8eOJUqU+Oijj1544YUyZcpIv8nLy9u4ceOoUaPS0tKk38TExPz2229BQXyxUWhhYWGXLl0SQowYMeJf//qX3uUYWkpKSrNmzaRL6G022wsvvDBp0iT5xsPc3NwdO3a8/vrrW7dulX7TtWvXtWvXklkUZMeOHXFxcVI7KCjozTfffOWVV6RzaYfDsXfv3ueee06+/ysyMnL//v3K58cjv4kTJ3744YdS+8yZM/JI2/DQkSNH7r//fvk2mU6dOn366afycLkOh2Pfvn0vvfSSNByYEKJ48eL79u2rX7++XgUbXJ8+feTHdLZr127+/PnyExL3798/evRoeWv5zDPPLFy4UJ8qjapQh+Lnzp2rU6fO7du3hRDlypVbs2ZNmzZt5L8mJib27NlTCtODg4OPHz/OI8ACFgEQANcIgApr5cqVvXr18uKFv/76q3InDdnw4cOdrmSuWbNm3bp1MzMzDx8+rPwusVKlSklJSYx24R0CoEKZMWPGuHHj5B+LFClSq1atyMjICxcupKSkyOeNQog6ders2LHD/RDmeOuttz744APlb+rXr1+lSpW9e/fKjysWQpQuXXrr1q2MWnpPMTEx0gBetWvXPn78uN7lmNK33347cOBA5W/Kly/fqFGj3Nzcw4cPOz1rcsmSJQMGDNC2QDM5efJky5Yt5Ssig4KC6tatGxERcfr06cOHD8vdWrRo8euvv3JNipPCHoovXbpUuTR27ty5RYsWeXl5SUlJv/zyi/z7FStW9OnTxw/1whwYnRQA1CFfigK1fPrpp1lZWYsWLZJ/c/LkyfxP273//vu///570h9o4+WXX87Kypo4caJ072FeXl5qampqaqpTtzZt2vz73/8m/bmn995778qVK5999pn8myNHjiifoSaEqFq16po1a0h/7ikjI2PXrl1Sm+8VvDZgwIDixYs/++yz8q1Jly9fli9UkYWGhi5YsKB3796aF2gmNWvW/PHHH7t37y5lQHa7/ejRo0ePHlX26dChw7fffkv647v+/fufOXNm/Pjx0u5p/fr169evV3YoWrTo9OnTSX8CHJfKA4A6/vjjD71LsJoSJUosXLhwxYoVLVq0cNmhTp06n3/++Y4dO+RLygENvPHGG//9738fffRRl/d2NW7ceNGiRYmJiYxm6gmbzfbpp5/Gx8e3atUq/18rVKgwceLEQ4cO8fAvT2zYsEG+tJ8BgHzRu3fvQ4cOjRkzxuXz3UNDQ8eOHXvw4EHSH0+0atVq165dAwcOzH+Pdt26dWfMmLFhw4bw8HBdarOeV199dcuWLS5X/3bt2m3dunXMmDHaVwVD4RYwAIAJnD59evv27efOnbt27VqZMmUqVarUqlWr2rVrM7oKdJSZmZmampqWlpaenl6sWLHw8PDY2NjatWvrXZdZpaWl7dy589y5c7du3apYsWLDhg3j4uKKFCmid10IXLm5ucnJyYcOHcrIyBBChIWFNW7cODo6Wn5YGDyXkZGxefPmkydP5uXlVa9evV69ei1btmQn7iepqanJyclnzpwRQlSvXr1Vq1YMNwkJARAAAAAAAIDFcQsYAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAECBFi9ebPNA2bJl69at269fv3nz5t26dUvvqgEAAJwRAAEAAPjq6tWrx48fX7FixfDhwyMiIpYsWaJ3RS6MHDlSTqxeeuklzV4LAACMoKjeBQAAAFhKRkbGoEGD0tLSJk6cqHcthfDjjz8mJycLIerWrTto0CC9ywEAACojAAIAAPDI6NGj27Ztm//3V65cOXLkSHJy8tatW+VfvvXWWy1btuzatauGBfrkxx9/nDNnjhCiS5cuBEAAAFgPARAAAIBHHnzwwaefftpNh7Vr144cOfLUqVPSj2+88UaXLl1sNpsm1QEAALhDAAQAAKCObt26LV++vHXr1g6HQwjx+++/7969Ozo6Wu+6/s+4cePkAKt69eqavRYAABgBARAAAIBqHnzwwWeeeWbhwoXSj4mJicYJgKKioqKiorR/LQAAMAKeAgYAAKCmuLg4uX38+HEdKwEAAJBxBRAAAICa6tevL7cvXbrkpmdeXl5SUtKRI0fOnz9frFixypUr33///U2aNPFw2KDbt2//8ccfx48fP378eLFixerUqVO7du3atWsXK1bM12nwgY8TpXTgwIF9+/adPn36vvvui4qKaty4caVKlfxRMwAAgYAACAAAQE3nzp2T2yVLlnTZ59q1ax9//PG8efMyMjKc/lSjRo1x48aNGjWqRIkSBX3E2bNnJ02a9O233968edPpT+Hh4X/7299effXV4sWLO/0pOTk5JiZGaqelpUVGRgohZs6c+fLLLyu7/fzzz3JYc/jw4QYNGhT0WrUmSn7ziIiI9PR0IcS2bdv+/ve/b9++XdmtSJEiL7zwwjvvvBMeHu5qrgAAAHe4BQwAAEBN+/fvl9tVqlTJ32Hv3r0NGzacPHly/qBECHHq1KmXX365ZcuWp0+fdvn+mzdvbtiw4bx58/KnP0KIP//888033+zQoYPLv/qPjxOl9NVXX3Xo0MEp/RFC5OXl/etf/2rcuPGhQ4fUKRoAgEDCFUAAAACqycjI+PLLL+Uf27Zt69Th0KFD7dq1u3btmvybRo0a1atXLzc399ChQ2lpadIvDxw40Lp16127doWFhSlffvz48e7du9+6dUv6sVixYk2bNq1Zs+aNGzeOHj168uRJ6ff//e9/x40bN2fOnHsWHB4eHhsbK4T4448/Ll68KIQIDQ1t2LCh9NeCrmBSd6KUNm3a9Pzzz9vt9tKlS3ft2jUqKiozM3PPnj1JSUlSh8uXLz/zzDM7d+704p4yAAACmgMAAAAFWLRokXzUtGjRIvedr1279sQTT8j9y5cvf+PGDWWHnJycFi1ayB3atGmzb98++a92u33Lli1y+CKE6Nu3r9NH9O/fX/7rsGHDzp49K/8pLy9v5cqVwcHB0l+DgoL+/PNP5Wt37twpvzYtLc3pnUeMGCH9qUuXLvknzc1rfZ8o+c3LlStXuXJlIUSfPn0uXryo7LNmzZqQkBD5TY4dO5a/SAAA4Aa3gAEAAPjk6tWrSUlJ//znP+vXr79mzRr596+99pocx0iWL1++e/duqf3II49s3LixadOm8l9tNlvbtm23bt3auHFj6TcrVqyQ+wsh8vLyVq9eLbU7duw4f/585S1mQUFBTz755PTp06Uf7XZ7QkKCmtNZAB8nSikzM/P8+fNPPPHEsmXLnK4Sevzxx6dOnSr/mJycrPJkAABgdQRAAAAAHhk8eLDNlbJly8bGxr744ovK4Z/bt2//yiuvOL3DP//5T6kREhLy1VdfuRwRuXz58gsWLMj/EiFERkaGfPPX448/HhTk4kDu8ccfD/4fZT3+4+NEOSlSpMi0adNcTtrgwYPl9vHjx72vGACAgEQABAAAoLJHH3109erVRYveNdji5cuX5YGNBw0aVK1atYJeHhsbKw8etHbtWofDIbXvu+8+eeCbgsKdqlWr3vif/AmU6nyfKCcDBgyIiopy+aeQkJCIiAipXdDLAQBAQQiAAAAAVPPAAw8sWbLkxx9/DA0NdfrTb7/9Jre7devm/n0ee+wxqXHu3LkzZ85I7ZIlS9aqVUtqz5w587vvvtM9B/F9opzExcW5eQcPB6UGAAD58RQwAAAAj4wePTr/U70kQUFBFStWjIqKcnMJzNGjR+V27dq13X9WZGSk3E5JSalevbrUHjdu3F//+lchRE5OTt++fZs3b/7UU0917tz5gQceKFasmMeTohpVJkqpXr16KpUGAADuQgAEAADgkQcffPDpp5/2+uVXrlyR2/KtTAVRdsjMzJTbo0eP/u233xYvXiz9uGfPnj179kycODE4ODguLu6hhx7q2bNn48aNNXtEuioTpaQMiQAAgIq4BQwAAEALN27ckBrBwcHKJ5q7pLyS6OrVq3LbZrMtWrTop59+Uj5YXQhx8+bNhISEt99+u2nTplFRUV988YXdblev9gKpMlFKulzHBABAICAAAgAA0IKcj9y8eVPOTQpy8eLF/C+UdevW7eDBg/v37//ggw9atWrl9Mys1NTU0aNHt27duqCrbFSk4kQBAAC/IgACAADQQtmyZeX2iRMn3Hf+448/5Hb58uXzd7DZbE2aNHnzzTd37Nhx5cqV+Pj4CRMmNGvWTO7w22+/jR071ueq70HdiQIAAP5DAAQAAKAF5dPN09PT3XdWZiX3HFy5TJkyXbp0+fDDD3///fft27fLTwpbtGjR+fPnvSzXM/6bKAAAoC4CIAAAAC3ExsbK7XXr1rnvvHbtWqlRqVKlOnXqSO3//Oc/H3zwwQcffDB16tSCHgAfFxc3e/Zs+ceDBw/6VPS9+D5RAABAGwRAAAAAWqhQoUKrVq2k9qJFi/7888+Ceu7YseOXX36R2l27dpUf6SkhK1kAAAUgSURBVLVly5a33nrrrbfeGj9+fEpKSkEvr1y5sty+du2aCqUXzPeJAgAA2iAAAgAA0Mjo0aOlxrVr14YNG5aTk5O/T0ZGxrBhw+Qf//rXv8rtRo0aye0FCxYU9Cnff/+93PbiQpusrKxC9fdxogAAgDYIgAAAADTSv39/eZzm+Pj4Ll26HDp0SP6rw+FITExs06bN4cOHpd/06dMnJiZG7vDoo48WLVpUak+fPn3q1Kk3b95Uvn9GRsbEiROnTp0q/Vi/fv0mTZp4WJt8Sc7u3bsPHDjgcDiuXLly584df08UAADQRlG9CwAAAAgUxYsXX7x48V/+8pfr168LIRITExs3bty0adM6derk5eUdOHAgLS1N7hwZGfnFF18oXx4eHj5y5MjPPvtM+nH8+PEffPBB8+bNK1SokJeXd+bMmf379ysvwJk1a5bnd1rJ1wpdv369adOmNpvN4XAcPny4QYMGfp0oAACgDQIgAAAA7TRp0iQxMbFbt27y87n279+/f/9+p27NmjVbu3ZthQoVnH4/bdq0lJSUjRs3Sj9ev359y5Yt+T+lRIkS8+bN69Kli+eF9enT56OPPsrMzJR+LGiQaZd8nCgAAKABbgEDAADQVIsWLVJSUv7+97+XK1cu/19r1qw5a9aspKSkqlWr5v9ryZIl4+PjZ82aVdBj1ENCQoYMGXLw4MHBgwcXqqqIiIgtW7Y89dRT1apVK1asWNWqVWNiYkqXLu3hy32ZKAAAoAFbob7eAQAAgFpyc3OTkpKOHDly4cKFIkWKVK5c+YEHHmjSpIkn9205HI60tLSTJ0+eOnXqzJkzZcuWjYiIiIiIqF27dsmSJTUoviC+TBQAAPAfAiAAAAAAAACL4xYwAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAD/rx07kAEAAAAY5G99j68wAgAAYE4AAQAAAMwJIAAAAIA5AQQAAAAwJ4AAAAAA5gQQAAAAwJwAAgAAAJgTQAAAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMCSAAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwIIAAAAYE4AAQAAAMwJIAAAAIA5AQQAAAAwJ4AAAAAA5gQQAAAAwJwAAgAAAJgTQAAAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMBcyJPuDyIdo+AAAAAElFTkSuQmCC" title alt width="768" /></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
327 <p><strong>Motif 2 :</strong> Consensus: TTTTTA <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAANgCAIAAABlQDTBAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAgAElEQVR4nOzdaXRV9b038H2YREiRQZBKhcgoCAgSIFXKRdSFCNWCUxVYoqtKC3K1vdaij1ZaseilLXpXvcBVrCjeqkutVQFxAiIoFCMFjAwyyVgMYwQLBDjPi92eS44hBHKSEzafz+LF75w95BsXq7bf/v97x+LxeAAAAABAdFVJdwAAAAAAypcCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBx1dIdgErn66+/fv755999993c3Nxt27Z9/fXXZ555ZvPmzS+77LJBgwa1atUq3QEBAACA4xOLx+PpzkAl8r//+7933nnntm3bij1apUqVoUOHPvbYY9/61rcqOBgAAABwwhRA/J9HHnnk3nvvPeZpbdq0mTVr1re//e0KiAQAAACUnQKIf3rnnXf69OmT+Ptw8cUXX3PNNe3bt69Xr97SpUtnzZr13HPPJU7OysqaN29ejRo10hQWAAAAOA4KIIIgCOLx+IUXXvi3v/0t/Dh69Ohf/vKXsVjsyHPmzp07aNCg9evXhx8fe+yxO++8s6KDAgAAAMdPAUQQBMEHH3zQs2fPcM7KyvrrX/+a1P6E5s2b973vfS/8O3POOed88cUXxZ4GAAAAVCpeA08QBMHbb7+dmMeOHXu0Wufiiy8eOnRoOG/YsGHx4sUVkA0AAAAoIwUQQRAEc+fODYc6depceumlJZyZWCgUBMGKFSvKNxYAAACQCgoggiAIEk/2adeuXcm7us4///zEvHPnzvKNBQAAAKSCAoggCIKtW7eGw5H9TslnBkHQrFmzcswEAAAApEi1dAegUti4cWM4nHbaaSWfOWfOnMTcunXrcswEAAAApIi3gHEc8vPzmzdvvmfPniAIzjvvvLy8vCpVLCIDAACAys4KIErrH//4x4ABA8L2JwiC++67L4Xtz44dO/785z8fOnSojPfZu3fvF1988Z//+Z81atRISTAAAACIAAUQpbJ+/fpBgwbNmzcv/JiVlXXjjTem8P4PPfTQY489lqq71apV6ze/+U2q7gYAAAAnOwUQx3Do0KHJkyf/4he/2LVrV/hNy5Ytp02bVq1aKv/y3Hrrrfv27Tt8+HAZ7zN79uyVK1c2bdo0JakAAAAgGhRAlGT27Nl33nnnkiVLEt+0a9fujTfeaNSoUWp/UIcOHSZMmFD2+wwdOnTlypWnn3562W8FAAAAkeEJvhRv69at11133SWXXJJof2Kx2N13352bm9u8efP0ZgMAAACOixVAFOOVV14ZNmzY9u3bE9907959/Pjx3/3ud9OYCgAAADgxVgBRxM6dO4cMGXLttdcm2p/mzZu/+OKLH330kfYHAAAATlJWAPF/Nm/efOmlly5fvjz8ePrppz/00EMjR470SnUAAAA4qSmA+KeCgoLevXuvWLEi/NijR48//vGPLVu2TG8qAAAAoOxsAeOffvzjHyfan1tuuWXWrFnaHwAAAIgGK4AIgiBYsGDBn/70p3AeNGjQ5MmTY7FYeiMBAAAAqWIFEEEQBL///e/D4cwzz/yv//ov7Q8AAABEiQKIYN++fdOmTQvn66+/vn79+unNAwAAAKSWLWAEK1as2Lt3bzivXr367rvvLuWFI0aMOPfcc8stFwAAAJAaCiCCNWvWJOaZM2fOnDmzlBf+4Ac/UAABAABA5WcLGMHatWvTHQEAAAAoRwogiqwAAgAAAKJHAUTwhz/8IX5CevToke7sAAAAwLEpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARVy3dASqd5cuXB0FQs2bNzMzMUl5SWFi4evXqIAhq1arVtGnT8ssGAAAAcAIUQMnatm0bBEH37t3nz59fykv27t0bXtWtW7cFCxaUYzgAAACA42cLWArUqVMnFosFQbBp06Z0ZwEAAABIpgBKgby8vHg8HgRBfn5+urMAAAAAJDult4BNnTp16tSpxR5atmzZFVdcUZqb7Nu3Lzc3N5wbN26csnAAAAAAKXJKF0CrVq2aOXNmsYcKCgqOdqgE2dnZZQ4FAAAAkGK2gKVMvXr1HnjggXSnAAAAAEh2Sq8AysrKGjZsWNKXkyZNCoKgYcOGAwcOLOV9YrFYixYtrr/+eu+ABwAAACqhU7oA6t+/f//+/ZO+DAug5s2bT5w4MR2hAAAAAFLMFjAAAACAiDulVwAVa/z48YH3eQEAAAARogBKdtddd6U7AgAAAEAq2QIGAAAAEHFWABXv8OHDq1evzs3NXb16dTweL/2F999/f/mlAgAAADgBCqBibN68edCgQbNnzz6BaxVAAAAAQGWjAEq2ZcuWTp065efnpzsIAAAAQGoogJKNHj06qf1p1qxZzZo105UHAAAAoIwUQEX8/e9/f+qpp8I5IyNj3LhxgwcPzsjISG8qoikWS3eCqDiep3QBAACcmhRAReTl5R0+fDicX3jhhX79+qU3DwAAAEDZeQ18EZ9//nk4ZGdna38AAACAaFAAFVFQUBAOnTt3Tm8SAAAAgFRRABXRpEmTcKhbt256kwAAAACkigKoiI4dO4ZDYi8YAAAAwMlOAVREhw4dunfvHgTBjBkztm/fnu44AAAAACmgAEr229/+tlq1anv37h0xYkTijWAAAAAAJy8FULIePXpMmjQpFou9+OKLAwYMWLlyZboTAQAAAJRJtXQHqIxuvfXWZs2aDRo06PXXX582bdpNN92UnZ3dqlWrzMzM6tWrl3xtZmZmhWQEAAAAKC0FULJEg3PgwIEgCA4dOvTcc88999xzpbw8Ho+XUzAAAACAE6MASvbFF1+kOwIAAABAKnkGEAAAAEDEWQGUbOHChemOAAAAAJBKCqBkWVlZ6Y4AAAAAkEoKoJPbnXfeOWXKlKZNmy5ZsqTsd5s6derHH39cypMfffTR0047rew/FAAAAChvCqCTWGFh4fPPP7979+6CgoKU3HDy5MmzZ88u5cljxoxRAAEAAMBJQQF0bBs2bFi4cOGuXbsKCgq++uqrBx54IPz+0KFDVatWTWOwt956a/v27Sm84erVq1N4NwAAAKCSUAAd1ddff/3II488//zza9asOfL7RAH0wx/+MD8//7bbbrv++uurV69ewfG2bds2YsSIFN5w3759GzduTOENAQAAgErCa+CLN2vWrPPPP/+hhx5Kan+OVFhYOGfOnMGDB3fp0uXTTz+tsGzxeHz27Nn9+/ffsGFDCm+7Zs2aeDwezp999ln8WDIyMlL40wEAAIDyYwVQMXJzc/v37//111+X8vylS5f26NHj3XffLdc3iM2ZM2fx4sV5eXkffvhhefRNif1fVapUad68ecrvDwAAAKSLAihZfn7+97///UT707Fjx5EjR3br1u2KK67YsmXLkWfecsstK1asWL58eRAEu3fvHjhw4KefflqnTp1yCnbNNdek9ok/SVatWhUOzZo183RnAAAAiBJbwJJNnDgxUfSMHDnyr3/9649+9KOOHTtWqZL8z+rqq6/Oy8sbPXp0+HHDhg2PPPJIRUZNrUQB1Lp16/QmAQAAAFLLCqAiDhw4MGHChHDu1avX448/HovFSji/SpUqDz744M6dOx9//PEgCCZNmvSrX/2qnB4IPX78+P379x/5zVNPPbVgwYJU3T+xBaxVq1apuicAAABQGSiAili8eHFi+c/EiRNLbn8SRo0aNWHChAMHDuzYsWPRokXdunUrj2xDhgxJ+mb27NkpLICKXQG0e/fuzZs3n3nmmQ0aNPjmGigAAADgpOB/0hexdu3acGjSpEmbNm1KeVXjxo3bt28fzosXLy6XZOWssLBw3bp14dyqVavFixcPGDCgcePGdevWbdeuXaNGjerVq3fttddOnz498aYwAAAA4GShACoiUYJ07NjxuC5s2rRpOJTrc5rLz/r16w8dOhTO48aN69y582uvvbZ169bECQUFBa+88kq/fv169+6d9DBsAAAAoJKzBayIGjVqhEPp3wEfSnQiJ+n7sxL7v4IgeP/990s4c/bs2V27dp07d25mZmYKA3z11Vdvv/324cOHy3ifsMKzTAkAAACOpAAqonHjxuHw6aefxuPxUj4D6NChQ0uXLg3ns846q7zClacjC6AgCNq0aXP33XdffvnljRo12rRp05IlS955553JkycXFhYGQbBp06Zrr7123rx5KWy7Ro8e/fvf/z5Vd1uyZEmqbgUAAAARoAAqIjs7Oxy2b98+Z86cXr16leaqWbNmJVYMXXjhheWUrVwlXgEWBMGNN9741FNP1apVK/zYsmXLli1bDhw48Ec/+lG/fv3CfWG5ubnPPPPMsGHDUhXgxhtv3LRpU9lXAC1cuHDdunUtWrRISSoAAACIBgVQEZmZmZ07d160aFEQBCNGjFi0aFFiU9jR7Nq1a+TIkeHcokWL0j86ulI566yzrr766iAImjVr9rvf/a5atWL+YnTp0uWFF1645JJLwo/jxo27/fbbS7lI6piysrJeeOGFst9n6NCh69aty8jIKPutAAAAIDI8BDrZgw8+GA6fffbZFVdcsXnz5hJOzsvL69Wr1/Lly8OP99xzT6oKkQr2i1/84rXXXnvttdcef/zxYtufUK9eva688spwXr16ddLGMQAAAKByUgAlu+qqqwYOHBjOs2bN6tix4x133PHnP/85fPxNEATr16//+OOPn3zyyauvvrpDhw6J97537dr11ltvTU/oCtSnT5/EPH/+/DQmAQAAAErJFrBksVhs6tSp/fv3D1+GtX379ieeeOKJJ55InNCsWbNvXtWqVas333yzhLUzkXHkHrcvv/wyjUkAAACAUrICqBinn376W2+99eCDD5ay0Bk0aNBf//rXRo0alXewyqBVq1aJee/evWlMAgAAAJSSAqh41atXHz169Nq1a++7774jK48jNWrUaOjQoZ988snUqVPr1q1bwQnTZffu3Yn5zDPPTGMSAAAAoJSiv2WpLL7zne88/PDDDz/8cH5+/tKlS3fs2LFr165atWrVr1+/ZcuWLVq0OEkf+Zzkrbfemj17dhAEVapUGT16dMkvPluxYkVibtKkSXlnAwAAAMpOAVQqDRs27N27d7pTlJe9e/c++uij4ZyVlZV4BnaxEg+9jsVi3/ve98o9HAAAAFBmCqBk4Tvda9asmZmZWcpLCgsLV69eHQRBrVq1mjZtWn7Zyknv3r1r1Khx4MCBIAieeOKJAQMGHG1l01dffTV58uRwvvjii+vXr19xKaMnHk93giAo+xK2yvBbAAAAcCyeAZSsbdu2bdu2/eEPf1j6S/bu3Rtedd1115VfsDJau3bt7H9ZtmzZkYfq1at3ww03hPP7778/duzYYu9QWFh4yy235Ofnhx9HjRpVroEBAACAVFEApUCdOnXCJTObNm1Kd5ajmjx58iX/8vDDDycdve+++xKP/rn//vuHDRu2ZcuWxNGDBw/Omzevd+/er7zySvjNFVdcceWVV1ZMcgAAAKCMFEApkJeXF4/HgyBIrI456Zx33nmPPPJIOMfj8f/5n/8555xzWrVqdfnll19wwQW1a9fu0aPH3LlzwxNatGgxderUaDwAGwAAAE4Fp/QzgKZOnTp16tRiDy1btuyKK64ozU327duXm5sbzo0bN05ZuAr305/+dN++fffff//hw4eDIDh06NCqVatWrVqVdFqPHj1effXVBg0apCMjAAAAcCJO6QJo1apVM2fOLPZQQUHB0Q6VIDs7u8yh0unee+/t3bv3r371q7feeiv+jYf7nn/++aNGjbrxxhurVq2alngAAADAiTmlC6DUqlev3gMPPFCRP7GEFUzfNGbMmDFjxhzztO7du0+fPn3nzp2rVq1au3btunXrqlev3rhx4+7duzdv3rxseQEAAID0OKULoKysrGHDhiV9OWnSpCAIGjZsOHDgwFLeJxaLtWjR4vrrrz8Z3wFfrHr16nXt2rVr167pDgIAAACkwCldAPXv379///5JX4YFUPPmzSdOnJiOUAAAAAAp5i1gAAAAABF3Sq8AKtb48eODk/x9XgAAAABHUgAlu+uuu9IdAQAAACCVbAEDAAAAiDgrgIp3+PDh1atX5+bmrl69Oh6Pl/7C+++/v/xSAQAAAJwABVAxNm/ePGjQoNmzZ5/AtQogAAAAoLJRACXbsmVLp06d8vPz0x0EAAAAIDUUQMlGjx6d1P40a9asZs2a6coDAAAAUEYKoCL+/ve/P/XUU+GckZExbty4wYMHZ2RkpDcVAAAAQFkogIrIy8s7fPhwOL/wwgv9+vVLbx4AAACAsvMa+CI+//zzcMjOztb+AAAAANGgACqioKAgHDp37pzeJAAAAACpogAqokmTJuFQt27d9CYBAAAASBUFUBEdO3YMh8ReMAAAAICTnQKoiA4dOnTv3j0IghkzZmzfvj3dcQAAAABSQAGU7Le//W21atX27t07YsSIxBvBAAAAAE5eCqBkPXr0mDRpUiwWe/HFFwcMGLBy5cp0JwIAAAAok2rpDlAZ3Xrrrc2aNRs0aNDrr78+bdq0m266KTs7u1WrVpmZmdWrVy/52szMzArJCAAAAFBaCqBkiQbnwIEDQRAcOnToueeee+6550p5eTweL6dgAAAAACdGAZTsiy++SHcEAAAAgFTyDCAAAACAiLMCKNnChQvTHQEAAAAglRRAybKystIdAQAAACCVbAEDAAAAiDgFEAAAAEDE2QJ2bPF4fOPGjStWrNi5c+fu3bszMjLq16/fvHnzFi1axGKxdKcDAAAAOAYFUElyc3MnTJgwffr0LVu2fPNoo0aN+vbtO3LkyC5dulR8NgAAAIBSsgWseNu2bbvuuuuysrImT55cbPsTBMGXX345ZcqUrKysG264YceOHRWcEAAAAKCUFEDF2LBhQ5cuXV5++eVSnv/SSy9lZWUdrScCAAAASC9bwJLt37+/b9++69evT3zTs2fPfv36ZWZmNm3atEmTJvn5+WvWrFmzZs20adNycnLCc9auXduvX78FCxZUr149TcEBAAAAiqcASvbEE0/k5eWFc/v27Z9++umuXbseecI555xz4YUXBkFwzz33zJ8//5Zbblm+fHkQBIsWLXryySeHDx9e8ZkBAAAASmALWBHxeHz8+PHhfP755+fk5CS1P0mys7NzcnJatWoVfhw3blw8Hi/3lAAAAADHQwFUxJIlSzZu3BjOkyZNqlev3jEvadiw4cSJE8N53bp1y5YtK8d8AAAAAMdPAVTE4sWLw6FFixYXXXRRKa+65JJLmjVrFs6LFi0ql2QAAAAAJ0oBVER+fn44tGvXLhaLlfKqWCzWvn37cN66dWu5JAMAAAA4UQqgIgoLC8OhatWqx3VhtWr/fJz2wYMHU5wJAAAAoGwUQEU0atQoHFatWnVcF37++efhcNZZZ6U4EwAAAEDZKICKaNOmTTh8+umniZfBH1NeXt5nn32WdAcAAACASkIBVET37t3r168fzsOHDz9w4MAxLzlw4MDw4cPDuUGDBiW/Nh4AAACg4imAiqhWrdptt90Wzjk5Of3799+8eXMJ52/ZsuWqq67KyckJP952223H+/AgAAAAgPKmAEp27733Nm7cOJzfeeedNm3aDB8+/I033sjLy9uzZ08QBHv27MnLy3vzzTdHjBjRpk2bmTNnhic3btx41KhRacsNAAAAcBTV0h2g0jnjjDOmT5/eq1evgoKCIAj27NkzYcKECRMmhEdr1669d+/eb15Vp06d6dOnn3HGGRWaFQAAAKAUrAAqRufOnT/66KPOnTt/81Cx7U+nTp3mzZtX7PkAAAAAaacAKl67du3mz5//7LPPZmdnl3Bat27dnnnmmQULFrRv377CsgEAAAAcF1vAjqpGjRpDhgwZMmTIjh075s+fv3Llyl27du3ZsycjI6Nu3bqtW7fu3r17gwYN0h0TAAAA4BgUQMdWv379K6+88sorr0x3EAAAAIATYQvYCTp48GA8Hk93CgAAAIBjUwAdVWFh4cyZM++4447evXtv2rQp6ei7775bp06dnj17Pv744+H7wgAAAAAqJ1vAivf222/fcccdn3/+efixsLDwm+fs2bPngw8++OCDD8aOHTthwoQBAwZUbEYAAACAUrECqBhPP/103759E+3PMW3duvWaa655+umnyzUVAAAAwIlRACX75JNPhg0bdvjw4fDj6aef3r9//zp16iSd1qlTp/vuu+/8888PP8bj8eHDhy9durRCswIAAACUggIo2f3333/w4MFwHjZsWH5+/htvvFG/fv2k0xo3bvzwww8vXbr0D3/4Q40aNYIg2L9//69+9auKjgsAAABwLAqgInbs2DFjxoxwHjFixMSJE2vXrl3C+bFYbMSIEb/5zW/Cj6+++urOnTvLPSUAAADA8VAAFbFy5cpwqFWr1kMPPVTKq0aMGFGvXr0gCOLx+Ny5c8srHAAAAMAJUQAVkSiA2rVrF3Y6pVGzZs22bduG8xdffFEuyQAAAABOlAKoiE2bNoVDs2bNjuvCb3/72+Gwe/fuFGcCAAAAKBsFUBGJhz1v27btuC7cunVrOJx55pkpzgQAAABQNgqgIs4999xwmD9/funX8uzatWvBggXh3LRp03JJBgAAAHCiFEBF9OzZMyMjIwiC/fv3//rXvy7lVWPGjCksLAyCoGbNmj179izHfAAAAADHTwFURM2aNYcMGRLOv//978eMGXPgwIESzj906NDvfve73/3ud+HHa665puTXxgMAAABUPAVQsl//+teJ93898MADzZs3Hzdu3JYtW+Lx+JGn7dq1649//ON555139913h9/UrFnz4Ycfrui4AAAAAMdSLd0BKp0zzzzz9ddf79Onz9dffx0EwaZNm+6555577rnntNNOO+ecc84+++xdu3atW7euoKDgyKuqVKny/PPPH++7wwAAAAAqgBVAxejRo8d7773XsmXLI7/cv3//qlWrcnJylixZktT+1K9f/+WXXx44cGDFxgQAAAAoFQVQ8bKzs//2t7+NHTu25EU93/rWt0aOHLl06dIBAwZUWDYAAACA42IL2FHVrl171KhRP//5z3Nzcz/88MMlS5Zs37599+7dp59+er169Vq0aHHRRRd973vfC98aBgAAAFBpKYCOoWrVqt26devWrVu6gwAAAACcIFvAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4qqlO0Aldfjw4dWrV+fm5q5evToej5f+wvvvv7/8UgEAAACcAAVQMTZv3jxo0KDZs2efwLUKIAAAAKCyUQAl27JlS6dOnfLz89MdBAAAACA1FEDJRo8endT+NGvWrGbNmunKAwAAAFBGCqAi/v73vz/11FPhnJGRMW7cuMGDB2dkZKQ3FQAAAEBZKICKyMvLO3z4cDi/8MIL/fr1S28eAAAAgLLzGvgiPv/883DIzs7W/gAAAADRoAAqoqCgIBw6d+6c3iQAAAAAqaIAKqJJkybhULdu3fQmAQAAAEgVBVARHV6HzEgAACAASURBVDt2DIfEXjAAAACAk50CqIgOHTp07949CIIZM2Zs37493XEAAAAAUkABlOy3v/1ttWrV9u7dO2LEiMQbwQAAAABOXgqgZD169Jg0aVIsFnvxxRcHDBiwcuXKdCcCAAAAKJNq6Q5QGd16663NmjUbNGjQ66+/Pm3atJtuuik7O7tVq1aZmZnVq1cv+drMzMwKyVhx7rzzzilTpjRt2nTJkiXpzgIAAACcCAVQskSDc+DAgSAIDh069Nxzzz333HOlvDwej5dTsLQoLCx8/vnnd+/eXVBQkO4sAAAAwAlSACX74osv0h2hEnnrrbc8DBsAAABOdp4BxFFt27ZtxIgR6U4BAAAAlJUVQMkWLlyY7gjpF4/H58yZM2rUqA0bNqQ7CwAAAFBWCqBkWVlZ6Y6QNnPmzFm8eHFeXt6HH3746aefpjsOAAAAkBoKIP7PNddc44k/AADHFoulO0GEROslKgCVlmcAAQAAAEScFUDHFo/HN27cuGLFip07d+7evTsjI6N+/frNmzdv0aJFLFr/58/48eP3799/5DdPPfXUggUL0pUHAAAASAkFUElyc3MnTJgwffr0LVu2fPNoo0aN+vbtO3LkyC5dulR8tvIwZMiQpG9mz56tAAIAAICTnS1gxdu2bdt1112XlZU1efLkYtufIAi+/PLLKVOmZGVl3XDDDTt27KjghAAAAAClpAAqxoYNG7p06fLyyy+X8vyXXnopKyvraD0RAAAAQHrZApZs//79ffv2Xb9+feKbnj179uvXLzMzs2nTpk2aNMnPz1+zZs2aNWumTZuWk5MTnrN27dp+/fotWLCgevXqaQp+cvvHP/7x0UcfHT58uIz3UcMBAADANymAkj3xxBN5eXnh3L59+6effrpr165HnnDOOedceOGFQRDcc8898+fPv+WWW5YvXx4EwaJFi5588snhw4dXfOYIePDBB8eNG5equy1dujRVtwIAAIAIUAAVEY/Hx48fH87nn39+Tk5OvXr1Sjg/Ozs7Jyfn4osv/vzzz4MgGDdu3E9+8pOIvRqsYlx11VVLly49ePBgGe+Tl5e3ZcuWZs2apSQVAAAARIMCqIglS5Zs3LgxnCdNmlRy+xNq2LDhxIkTL7300iAI1q1bt2zZsnbt2pVvyijq0aPHjBkzyn6foUOHTpkypU6dOmW/FQAAAESGh0AXsXjx4nBo0aLFRRddVMqrLrnkksSSk0WLFpVLMgAAAIATpQAqIj8/PxzatWtX+p1csVisffv24bx169ZySQYAAABwohRARRQWFoZD1apVj+vCatX+uZmu7E+xAQAAAEgtBVARjRo1CodVq1Yd14XhQ6CDIDjrrLNSnAkAAACgbBRARbRp0yYcPv3008TL4I8pLy/vs88+S7oDAAAAQCWhACqie/fu9evXD+fhw4cfOHDgmJccOHBg+PDh4dygQYOuXbuWYz4AAACA46cAKqJatWq33XZbOOfk5PTv33/z5s0lnL9ly5arrroqJycn/Hjbbbcd78ODAAAAAMqbAijZvffe27hx43B+55132rRpM3z48DfeeCMvL2/Pnj1BEOzZsycvL+/NN98cMWJEmzZtZs6cGZ7cuHHjUaNGpS03AAAAwFFUS3eASueMM86YPn16r169CgoKgiDYs2fPhAkTJkyYEB6tXbv23r17v3lVnTp1pk+ffsYZZ1RoVgAAAIBSsAKoGJ07d/7oo486d+78zUPFtj+dOnWaN29esecDAAAApJ0CqHjt2rWbP3/+s88+m52dXcJp3bp1e+aZZxYsWNC+ffsKywYAQJrF4+n/E43fIiW/CAClYAvYUdWoUWPIkCFDhgzZsWPH/PnzV65cuWvXrj179mRkZNStW7d169bdu3dv0KBBumMCAAAAHIMC6Njq169/5ZVXXnnllekOAgAAAHAibAGjJFOnTo3H4/F4fN26denOAgAAAJwgBRAAAABAxJ26W8DuuuuuxHzHHXe0bNkynMu41CUzM7MslwMAAACk3KlbAD3++OOJ+Qc/+EGiADr33HPLctu4FxkAAAAAlYwtYAAAAAARpwACAAAAiLhTdwvYsGHDEvPZZ5+dmBcuXJiOOAAAAADl5dQtgCZOnFjs91lZWRWcBAAAAKBc2QIGAAAAEHGn7gqgo1m+fHkQBDVr1iz9C90LCwtXr14dBEGtWrWaNm1aftkAAAAAToACKFnbtm2DIOjevfv8+fNLecnevXvDq7p167ZgwYJyDAcAAABw/GwBS4E6derEYrEgCDZt2pTuLAAAAADJFEApkJeXF4/HgyDIz89PdxYAAACAZKf0FrCpU6dOnTq12EPLli274oorSnOTffv25ebmhnPjxo1TFg4AAAAgRU7pAmjVqlUzZ84s9lBBQcHRDpUgOzu7zKEAAAAAUswWsJSpV6/eAw88kO4UAAAAAMlO6RVAWVlZw4YNS/py0qRJQRA0bNhw4MCBpbxPLBZr0aLF9ddf7x3wAAAAQCV0ShdA/fv379+/f9KXYQHUvHnziRMnpiMUAAAAQIrZAgYAAAAQcaf0CqBijR8/PvA+LwAAACBCFEDJ7rrrrhO46plnntm3b1+LFi0uv/zylEcCAAAAKAsFUAocOnToZz/72c6dO7/73e8qgAAAAIDKxjOAUmDGjBk7d+4MguCzzz5LdxYAAACAZFYAFW/u3LmTJk1aunTprl27Sj6zsLBw8+bN4fytb32r/KMBAAAAHB8FUDHGjh173333ncCFN910U8rDAAAAAJSRLWDJPvzwwxNrf6655poHH3ww5XkAAAAAysgKoGSPPfZYYu7evXufPn0yMjLmzJkzbdq0IAi6du0aLvM5cODAsmXLXnrppa+//joIglGjRo0dOzZdmQEAAABKEIvH4+nOUIl8+eWXZ5999qFDh4IgGDRo0JQpU6pWrRoEQTwev+yyy95///3mzZuvWrUqFouF5y9btuyyyy7bvHlz1apV//znP3//+99PZ3qCYOjQoVOmTHnmmWduvvnmdGc5Gfzrb/KJ8x8gAJAu/j0OwPGwBayIlStXhu1PlSpVxo4dG7Y/QRDEYrEhQ4YEQbBmzZp169Ylzm/btu2cOXNq1Khx6NChW265Zfv27elIDQAAAFASBVARGzduDIcLLrjgnHPOOfJQp06dwmHFihVHft+yZctwscn27dt/9atfVUhMAAAAgOOgACpi06ZN4XD22WcnHWrdunU4rFy5MunQsGHDwmHq1KkHDhwoz4DAN8Ri/qTsDwAAEFEKoCISD/epXr160qFatWp95zvfCb6xAigIgvPOOy8cdu7cOW/evHLOCAAAAHB8FEBFhBVPEARbtmz55tFWrVoFQbBkyZKk72vXrt24ceNwXr16dXkGBAAAADhuCqAiEgVQXl5eQUFB0tGwAFq0aFH4oOgjhS+DD4Jg27Zt5ZwRAAAA4PgogIpo2bJluAtsz549jz32WNLRcKvX3r17Z8+efeT3W7duTbRFzZo1q4igAAAAAKWmACqiUaNGPXv2DOcHH3zwZz/72bJly+LxePjNZZddFg6PPPLIkYuAJk2alJhbtmxZUWEBAAAASkUBlGz06NGJefz48e3atcvJyQk/tm/f/txzzw2C4N13373mmmveeuutDz744L777ktcUq9evbZt21Z0YgAAAIASKYCS9erVa8yYMUd+k1gBFIvFEl3PX/7yl759+/bs2XPs2LGJE+6///6MjIwKDAsAAABwbAqgYtx3332vvvpqsWt5Bg8efMMNNxR7VefOnYcPH17O0QAAAACOmwKoGLFYbMCAAXl5ecuWLXv11Vdbt26dOFSlSpXnn3/+oYceql+/fuLLmjVr/uQnP5k1a1bNmjXTkRcAAACgJNXSHaDyisVi5513XvjmryNVrVr1/vvv/4//+I+VK1du2rTpjDPO6NSpU+3atdMSEgAAAOCYFEAn6PTTT7/gggsuuOCCdAcBAAAAOAYFEAAAwMkvFkt3ggj513t+IEo8AwgAAAAg4qwAKt7hw4c3bty4fPnydevWHT58uPQX/vjHPy6/VAAAAAAnQAFUjE8++eT222/Pzc09gWsVQFDRKskC3bIvuq4kvwgAABBFCqBkH330UY8ePY5r1Q8AAABAZaYAKuLQoUMjRoxIan9q165ds2bNdEUCAAAAKCMFUBGLFy9etGhRODdo0OChhx4aMGDAWWedFfNEfQAAAOCkpQAqYuXKleFQtWrV6dOnd+vWLb15AAAAAMrOa+CLWLduXTj06dNH+wMAAABEgwKoiIyMjHBo165depMAAAAApIoCqIimTZuGw+bNm9ObBAAAACBVFEBFXHrppbVq1QqCYO7cuQcPHkx3HAAAAIAUUAAVUbt27bvuuisIgvXr1//6179OdxwAAACAFFAAJfvlL38ZPv55zJgxv/nNbw4cOJDuRAAAAMcSj1eKP9H4RSCKvAY+2Wmnnfb222/3799/7ty5/+///b9nn332qquu6tChQ8OGDUtz+RVXXFHeCQEAAACOiwKoGNu3b4//q/RdsWLFuHHjSn9tXFsMAAAAVDIKoGSrVq3q1q3bzp070x0EAAAAIDU8AyjZ4MGDtT8AAABAlFgBVMTixYsXLFgQzqeddtpPf/rTq6++ukWLFqeffnp6gwEAAACcMAVQEbm5uYn5L3/5S58+fdIYBgAAACAlbAErYuvWreHQu3dv7Q8AAAAQDQqgIurUqRMOHTt2TG8SAAAAgFRRABWRmZkZDl999VVagwAAAACkjAKoiEsvvbR+/fpBEMybNy8ej6c7DgAAAEAKKICKqFmz5j333BMEwfLly5988sl0xwEAAABIAQVQsp///Of9+/cPguDf//3fX3zxReuAAAAAgJOd18Anq1KlyiuvvDJ8+PDJkyf/8Ic/fPLJJwcOHNihQ4eGDRuW5vLzzjuvvBMCAAAAHBcFULLwOdCJhT/vvffee++9V/rLrRgCAAAAKhsFULIvvvgi3REAAAAAUskzgAAAAAAizgqgZMuWLUt3BAAAAIBUUgAl8xRnAAAAIGJsAQMAAACIOAVQEU8//fR5/7J58+Z0xwEAAABIAVvAiti6deuKFSvCefv27WeffXZ68wAAAACUnRVARbRs2TIxJ5ogAAAAgJOaAqiIPn36NGrUKJxnzpyZ3jAAAAAAKaEAKqJOnTpPPPFELBYLgmDq1Klr165NdyIAAACAslIAJbv22mufffbZatWq7du3r2/fvjaCAaeQWMyflP0BAIDKxEOgizF48OB27doNHjx42bJlF1xwwcCBA//t3/6tSZMmTZo0qVu3bqzE/1qfmZlZUTEBAAAASkUBlOy8884Lh3379gVBsH///j/96U9/+tOfSnl5PB4vr2QAAAAAJ0QBlMyeLwAAACBiPAMIAAAAIOKsAEq2cOHCdEcAAAAASCUFULKsrKx0RwAAAABIJVvAAAAAACJOAQQAAAAQcbaAHVs8Ht+4ceOKFSt27ty5e/fujIyM+vXrN2/evEWLFrFYLN3pAAAAAI5BAVSS3NzcCRMmTJ8+fcuWLd882qhRo759+44cObJLly4Vnw0g9eLxdCcIgpQU65XhFwEAgMrEFrDibdu27brrrsvKypo8eXKx7U8QBF9++eWUKVOysrJuuOGGHTt2VHBCAAAAgFJSABVjw4YNXbp0efnll0t5/ksvvZSVlXW0nggAAAAgvWwBS7Z///6+ffuuX78+8U3Pnj379euXmZnZtGnTJk2a5Ofnr1mzZs2aNdOmTcvJyQnPWbt2bb9+/RYsWFC9evU0BQcAAAAongIo2RNPPJGXlxfO7du3f/rpp7t27XrkCeecc86FF14YBME999wzf/78W265Zfny5UEQLFq06Mknnxw+fHjFZwYAAAAogQKoiHg8Pn78+HA+//zzc3Jy6tWrV8L52dnZOTk5F1988eeffx4Ewbhx437yk5+U66vBDh8+PHv27GeeeSY3N3fDhg1BEHznO9/p0qXLzTff3Lt37ypVyrSnb+rUqR9//HEpT3700UdPO+20svw4AAAAoGIogIpYsmTJxo0bw3nSpEkltz+hhg0bTpw48dJLLw2CYN26dcuWLWvXrl05xfvyyy9vvvnmt95668gvly1btmzZsqlTp/bp02fKlClnnXXWCd9/8uTJs2fPLuXJY8aMUQABAADAScFDoItYvHhxOLRo0eKiiy4q5VWXXHJJs2bNwnnRokXlkiwItm/fnp2dndT+HGnmzJnZ2dnbtm074R+xevXqE74WAAAAqLQUQEXk5+eHQ7t27Uq/kysWi7Vv3z6ct27dWh7BDh8+fMMNN6xduzb82KRJk0cfffS999577733HnnkkSZNmoTfr1u37vrrrz98+PAJ/Ih9+/YlVj8BAAAAUWILWBGFhYXhULVq1eO6sFq1f/6TPHjwYIozBUEQBK+//vp7770Xzt26dZsxY0b9+vXDj7179/7Rj37Ut2/fhQsXBkEwa9as119//Qc/+MHx/og1a9bE4/Fw/uyzz9q2bZui7AAAAECaWQFURKNGjcJh1apVx3Vh+BDoIAjK8gieo4nH4w899FA4165d+6WXXkq0P6EGDRq89NJLtWrVCj8+/PDDiSqn9BL7v6pUqdK8efOyRQYAAAAqEQVQEW3atAmHTz/9NPEy+GPKy8v77LPPku6QQsuXL//kk0/C+fbbb088b+hImZmZt99+ezh//PHHiUKq9BKdV7NmzTzdGQAAAKJEAVRE9+7dE4trhg8ffuDAgWNecuDAgeHDh4dzgwYNunbtmvJU06dPT8xDhw492mk333xzYp4xY8bx/pREAdS6devjvRYAAACozBRARVSrVu22224L55ycnP79+2/evLmE87ds2XLVVVfl5OSEH2+77bbjfXhQaSSe/nPmmWd26NDhaKddcMEFifYqcUnpJbaAtWrV6vgzAgAAAJWXAijZvffe27hx43B+55132rRpM3z48DfeeCMvL2/Pnj1BEOzZsycvL+/NN98cMWJEmzZtZs6cGZ7cuHHjUaNGlUek5cuXh0O3bt1KeDdZLBbr3r170iWlV+wKoN27dy9btiw/P//E3iwGAAAAVAbeApbsjDPOmD59eq9evQoKCoIg2LNnz4QJEyZMmBAerV279t69e795VZ06daZPn37GGWekPM/+/fvXrVsXzmeffXbJJ3/7298Oh7Vr1x48eDDxbrJjKiwsTPyUVq1aLV68ePTo0R999FHirfZ16tS5/PLLb7311r59+5ZQQgEAAACVkBVAxejcufNHH33UuXPnbx4qtv3p1KnTvHnzij2/7DZs2JB4pVfSy7++qUGDBuFw8ODBjRs3lv6nrF+//tChQ+E8bty4zp07v/baa4n2JwiCgoKCV155pV+/fr17996yZctx/AIAAABAulkBVLx27drNnz//xRdf/O///u/58+cf7bRu3boNHz78xhtvrFGjRjkl+eqrrxJzvXr1Sj75yIboyAuP6cjX3r///vslnDl79uyuXbvOnTs3MzOz9Pc/psLCwvnz5+/fv7+M91FOAQAAwDcpgI6qRo0aQ4YMGTJkyI4dO+bPn79y5cpdu3bt2bMnIyOjbt26rVu37t69e2LFTfn5+uuvE/MxVwAdeUKxi5WO5sgCKAiCNm3a3H333ZdffnmjRo02bdq0ZMmSd955Z/LkyYWFhUEQbNq06dprr503b14K3xb/4IMPjh07NlV3y8vLS9WtAAAAIAIUQMdWv379K6+88sr/z959x0dV5f8fPwmdhEgJEGpCC12EEBKXIkUBEUWQIh0Uae4XFF1RRMWKgCxFXZemIiBFXcpSIhAICIuEANIDBBN6C4ROEpKZ3x939/6GycxkMnPntnk9/+BxkpyZfO5lMnPmPeee06WLJr/dNgAqXbq06862HQoUAMlbgAkh+vbtO3/+/JIlS0pf1q5du3bt2j169Bg2bNgzzzwjXRe2d+/e77//fsSIEe7/Ctc6dOiQlJQkX+zmsSNHjly8eDHfxZIAAAAAwCmWPVWQ1+/yoBQ/DYC2bNkirfH83HPPBQY+tBDSqlWrhBBlypR54okntCnuYbYLOWdnZ7vufP/+fbltd1yuVaxYsVu3bkKI8PDw6dOnO1w9OioqatmyZe3atZO+nDZt2vDhw5VaELpDhw4dOnTw/n6GDBmycOHCfK+VAwAAAADAr/hpADR48GBpjeTs7Gy7oKR79+5CiJiYGBdL/6gpKChIbmdkZLjubNvB9ob5Gj9+vDvd2rZt26VLl/Xr1wshTp06lZKSUqdOHfd/CwAAAAAA0ISf7gJ29epVqaH/NYNtc5zr16+77mwbAAUHB/uink6dOsltnWRkAAAAAADANT8NgMLDw6XGe++9l5mZqW0xroWGhsrtAs0AynfFaM/UrVtXbl+5csUXvwIAAAAAACjLTy8Ba968+YkTJ4QQP/zww4oVK6pWrVqoUCHbDn/88Ue9evU8uOfk5GRlSvyfChUqhISESCsWuT8DqFSpUhUrVlS2EontNV8FWmcaAAAAAABoxU8DoI8//njVqlXSBluZmZl2m6ALIbKyso4fP65FafYCAgIiIyOTkpKEECdPnnTdWe5Qr149pZZntnPz5k25bTs7CQAAAAAA6JafBkA1a9Zct27dyJEjdZLyuBYVFSUFQPv27cvKyipWrJjDbllZWfv375faTZs2df/+4+LiEhIShBCBgYGTJk0qWrSoi862Z6xKlSru/xYAAAAAMAY97FyuyCf6ejgQ6IafBkBCiLZt2x48eDAxMfH48eO2S0G/9957QogqVaqMHDlSu+oe0qVLlzlz5gghsrOzN23a1LVrV4fd4uPj5X3infVx6O7du1OmTJHazZs379Gjh4vOBw4ckBoBAQGtW7d2/7cAAAAADvhm3ro/4q0+AJcCrDxNPEy6cko/28ALIe7cuVO+fHlpsernnntu9erVDrv16NFj5cqVQogSJUqkp6eXLFnSzfvPyMgICwuTwqP27dtv3rzZ2eVjt2/frlWrlrSHWqtWrX777TcPDsenhgwZsnDhwu+//37w4MFa12IE3o+3eAKRcTKVwoddAOAm07z0EAApxTT/oTo5EM0xKILS/HQXMGMJDg4eMWKE1F6zZs3mzZvz9omPj5fSHyHEqFGj8qY/qampCf9z7Ngx2x+VKVOmT58+UnvLli2TJ092WMaDBw+GDh0qpT9CiLffftvTAwIAAAAAAKoiALK3YcOGDRs2zJgxQ+tCHjJ+/PgSJUpI7d69e+/YscP2pwkJCT179pTaQUFBb731Vt57WLBgQbv/+fTTT+1+OmHCBHnpn4kTJ44YMcL2sricnJydO3e2b9/+l19+kb7TuXPnLl26KHFkAAAAAADA5/x3DSBnOnfurHUJDlSqVGnBggX9+vUTQmRkZLRu3bpjx47NmjXLzc1NTEzctm2b3PO7777zYAP4evXqff755+PGjRNCWK3WuXPnLliwoEaNGhEREVeuXElOTpZXFxJC1KpVa/HixT7aZQwAAAAAACiOAMgw+vbte/78+fHjx1ssFiHExo0bN27caNuhcOHC06dP79Wrl2f3//rrr2dmZk6cOFG6/9zc3JSUlJSUFLturVq1+te//lWuXDnPfgsAAAAAAFAfAZBjFovl1KlTe/fuPXXqVIHWyZ44caLvqnrzzTcff/zx8ePH79y50+5Hbdq0mTp1akxMjDf3/84777Rv3/7DDz+Mi4vLe9QNGzZ8++23+/btW6hQIW9+CwAAAAAAUBm7gDlw4cKF/v37JyQkeHBbdc5nSkpKUlLS+fPnhRBVq1Zt0aJFjRo1FLz/jIyMlJSU1NTUtLS0IkWKhIWFxcTE1KxZU8Ff4SPsAlYw7NGgIE6mUtjwAgDcxEuPgjiZCuJkKoVBEZTGDCB7Fy9efOyxx+S9rvSpdu3atWvX9t39lylTJjo6Ojo62ne/AgAAAAAAqIYAyN6kSZPs0p/w8PDixYtrVQ8AAIAy2MBBQXyoDgAwGgKgh1y6dGn+/PlSOzg4eNq0aQMGDAgODta2KgAAAAAAAG8QAD3kyJEj0h5YQohly5Y988wz2tYDAAAAAADgvUCtC9CXkydPSo3Y2FjSHwAAAAAAYA4EQA+5deuW1GjatKm2lQAAAAAAACiFS8AeUqVKFalRunRpbSsBAABQmE7WLWaLaAAAtMAMoIc8+uijUkO+FgwAAAAAAMDoCIAe0rhx45iYGCHEhg0brl27pnU5AAAAAAAACiAAsvfFF18ULlz47t27r776qrwjGAAAAAAAgHERANlr1arVnDlzAgICli9f3r179xMnTmhdEQAAAAAAgFdYBNqBl156KTw8vH///mvWrFm3bl2/fv1iY2Pr1KkTERFRpEgR17eNiIhQpUYAAAAAAAB3EQDZkxOc7OxsIURubu6iRYsWLVrk5s2tbEsBAAAAAAB0hgDI3unTp7UuAQAAAAAAQEmsAQQAAAAAAGByzACyt2fPHq1LAAAAAAAAUBIBkL3mzZtrXQIAAAAAAICSuAQMAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEzOTxeB7ty5s4/uOS4uzkf3DAAAAAAA4Bk/DYB+/fVXrUsAAAAAAABQCZeAAQAAAAAAmBwBEAAAAAAAgMn56SVgVqtV6xIAAAAAAABUwgwgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyusdQEAAAAuBQRoXYFZWK1aVwAAADTDDCAAAAAAAACTIwACAAAAAAAwOS4BAwDAB7hqSUF6uHDJ+/9QPRwFAKiApztAr5gBBAAAAAAAYHLMnnBSVwAAIABJREFUAAIAAAAAKCNAeDtl0iqYQwT4BAEQAAA+oIcJ8Fy1BABQkffRj3w/ZECAL3AJGAAAAADAK0qlP/K9KXuHAAQBEAAAAADAY74La8iAAGVxCRgAAABgQFykCR3wdUYj3T9XhAGKYAYQAAAAAKDAVJuhw1QgQBEEQAAAAACAAlB/jR4yIMB7XAIGAAAAGID3O/vli6vK4A6tshguBwO8RAAEAAAA6IUKKY9nv51sCEKJ6McqrF7eCZvEAx4jAAIAJTAuVgpnEoA/0TbuKZC8pfKE7W8USX/kf725N6YCAZ4hAAIAAICK/Ds2MFDiky/bY/Hv/1XzU+SaL7u8hqlAgPoIgAAAOuKLISYAaE6d3Md1CuPTGgiDTEypiT8Ov+99BuTi/gHYIQACAG8ptRSinw9fFFxRkuEgAD1QNnDxPlVx5x4UqVm+E5IgE/Bd+mP7U6YCAeogAAIADym+BYbfxhY+2kzEb88noFsK/rHr/E/b+xhFq+gk7+/15lhIggzN19GPXU8yIAf4y4HSCIAAoMB8uvupfOcmHMfkocI+ssRAgE4o+/euzzd7XuY++nyvZ1eVZ8co3UqfBwiH1Ex/bPuzMjTgUwRAAFAAKgQWdr/LrOMYNc+kMPvJBPTPF3/yuvq79ib6MVYsIlfrwSETAxmC+tGP3W2ZCiRjYUQojgAIAPKnclqR91eb6cWbkwn4FV//yevhzZ5n6Y/RcxCpfvPEQLorSBvapj+29+DnU4FYGBE+QgAEAK4oOxLy+N7McV2YgifTz8eFgFGoE/hq+0ftQQJipqjBmxjITOfBBPQ22cRvpwKxMCJ8igAIABzzxYdgfvuhluLDSjaOBXRO/bl+mrzZ8/P0R2b0g1JwvzaDngo9TPxxeJ9+9VrPwohQAQEQADxEhTGQX8VAvvtEUamNY53dPwCPaXWlp8p/0aQ/+qRgmqPCb9fDQ0KRP1gNr+/Ol/6nArEwIlRDAAQA/6Xyx1/eX82k/+vCDJGmCSMMDQGjUOSv3hB/0aQ/2tI25VGQiwNR4QGj59RGWbp9oWdhRKiMAAgAtN/wwssadPgSrkmaZrJzCBiOUn/4RsmAoBpDX6LlcfF5b6hs8f6T/kj09kLPwojQBAEQAP+lqyveTRNhaHhWTXMOAcNR/A+fP2d4E/roarKVi2IKeoy2/b05Rl2NfwrKBOkwT5jQEAEQAH+k1KdeOvz0TMPrwnQyoGQYBKjMd3/7TAXyQ57lPrpKfNxnV3aBjt3jMEgnL9Ze/naDvsr79OQb+sxANQRAAPyLDiMbH1HzVVyHo0mGQYAKVNg3Wrd/y1arJ9M3DJpTqMCvch9nfH04etvo3RuGS4dVGynp9jkTOkEABMAv6DChcJ+eX8VNPJdKwjAI/2WyN5pKUPN51XBv9lAgrKitAkMPhBwyyibxmpx5YiA4QwAEwORMMOJR6lVcKHosuo1sfMGowyDeIcE3NJlHoMP3M55NAhL8aXqNE1hQJhgLOaTznUA1P+06fNqE5giAAJiW5q+7ytLPXg+GPrGanz3A6DTfNlFXb/Y8yICE6WIg9a/e4mI69xn6JdtNentaEDo77cRAsEUABMBsdPWi6wsavpCb4NwyDEJBKTvZzeiPHD08Cejtr1hKIvwzBvJ4oy67o2YulY/o4Q9WHfp5WtDtOdfPKYK2CIAAmIduX3R9QeXrwkx2bk0/DCKz8JLvrnDUcJ8+L+ntSUBvn/l7GQMJQ2UZvtigXf6+ZzthGejsuaBUoCb09werDm2fFky/KqJE5+Mf5IsACIAZ+OdAR6hyXZiJz635YiAfjRqNm1kUlJrDbtvfpf8Tq8/nAR3+CXscA9ndSodxhjehj8TNg/IyCSrQ79KcL6I0odc/WHVo8rSg88jGF/Q2/oH7CIAAmAGvQL44A34ygtThe0iPa1Dttxjif9Z9Sj3UPb4fPZ9Yf/hMW/HlP7yJgSR6iDO8T3wkHhdve0PPLhBTth6PKXUmhfshmv6eSVSm2hkwwUjJ6OMfFBQBEADAngkGNAVl0BhIqzfVeg4s3Kf449z7GXl6O7F6Tm2U5Yu/X89msjjk7B68zzIUzCbsKJuzOLjEydPKfXfIijPKPCb/ZJqRkkHHP/AYARAA4P/TZHdn/VBk+QDh+zOg7LjT34Z9KozaTZAE+U/0Y8tHu0F7M5PFNR1mGaplFq4ugNLfaXGBlMdwTBP92CIG8h8EQACQx49GGDz28+EmEf5Mz2fAR/GcCdKKfGmVbBr03Br67Y2uVobOy3dhkFZ0mF94VpJqixyZkk8fzPo5sYZ+bnQHMZA/IAAC4JcMEfG4lu8h+CYhgibUGXQaNK1wQT+Dde+nXKmzaLR+zpiXBRjiDYyClzWpST/vxpVl1uNSioYPTte/Wp3/OBM8N7rPQM+i8AABEODH/GSwo1TWo2Ge4tkh5L0VkZDRaDXiNPrgT8HLl/R5JZSPgjYzvcPR2ybxbnL4sqzhG28/GSYgL0NkkRKHpSr40DXTE2OBGH0kAGcIgACYkcehjz4jEhdVFehI7TqrfrC6GlDq+Y2NToabhpsQpJPz5gHNz7ApF/8yzbuXgj5Z6WoDLKNQKurV/NHiMV29QHtPwX30jPt/qgg/P3xTIgACYBaehT76THzcZ1e/Z3mQcifBQCNIPUwpt2PieSs+TYKMm/vkLUCTJMgEJ9AFg04F8gYpj/sUf6pU51JNpfjoJVuRR6DvlkvnDwR+jgAI8EfKjni0H+J4EP0YPfdxRsXj0ueKj0pV5esp5fa/Tmd5je/oZ8aK9k9cjiiYBAk3jtGUE3/yMs1UIChCtedbva2JJlHqVdLXMYrvdnmTb04SBP9EAAT4ER8NejQe4pD+qEWRUaOGQ0Zbnh2LglPK/3uHBk8x1H9HbfQz5j7vF40W+T05+8/JlJhkKpCvdzAw7+ujhjm7TpIgL1/E9ROXKLV6uuZJkH4mTevnPxcqIAACzM/kH3b1s5phSy+98mZ0oufxhCIrrXo8pdw0b7xVu3DJNGfMM744z/55SvU+FUgPr2Xu1GCokMgXD3XNF+0q2C816eu4Lds6PThe6SZKrhutgz/lAnG/YKM8JOACARBgWn70YVdBMyCps8pDWD2M7F3IczY8G74YemTgzQjSzeGjWd91+zoJ0udRq0+R82DWB6H7dDEVSOevCK45K143wZCvr230foKeOksFeRxDmOClXJ0YyCjX07ngzUdftgz9mPE3BECA2fhi3GOAD7ukcafHW2LpZtiqBx4MaMz3wq/sEfnPW26lZlgI4xyy4XBihfonwadxj5evXwrWpvlGk1o80+p2t0Q//BTHlnwgyn6cY75MzXVh7h+v4tfIw3cIgACT8OnnXbod39izHW56sz+68MHIVfE79M07ioIObniNd8F/ch87ilxnpMmyu1rN2+fvyISUeor2dYyS7/17fCBqfcqik2daXY2U+CBHpsBqfX4cpZnjKGCHAAgwNpX3cNHV+CYf3uyP7k5/Xw/KtbhAwHBXreucQeMbBenhDBjiUV2gIhmR65qXT906nI6atyQPjtEHYZCC17nrbR9GLy8QI/1REJ+KwXwIgACj0vYjL+Nd6OFsxKnIZ5sANKVgyqP+8F2pJRiEWsUbIlPLl8LnyuNXBB0mPvnyeLKt7U08OnC9JTUqUGGwRGbhjDme6wA7BECAwehkqrPdXRkpCbLjzhhUP1mP4jHWw6xWXy1+DA2Zb80Ck21qk//a4SquwmDoKE3i5iHk260A9XvwDGzE3Mch+UA8m2br3nnQ1cjHSz7fM1E3AxYT8GxQpMNXGcAWARBgDCae6izTZMkPt+h/pK5chZ5tn2HKGEj9y/71NnD3RT3qnx8TPCx9dwjmCweFe7W5c+B5+zi4Z3+Ofuz44LjMlPvIfL5nYsEzC7jgwWLStj31/FRZIH77+mtKBECArhl39GOARYLgnGfbZ5hg0OPT98Mmm7figosj9WzaBUtaKIiTKZQ6ItIfH1B5ZUMN6WcveSatuMP2FHk8KzPvXemQlwGizo8OggAIeVksloSEhO+//37v3r1nz54VQlStWjUqKmrw4MHt27cPDAzUukC/YNzcJ28BJEGG5uVGqg7vSj+8/5hUqf1T3bxDo9D8KDQvQLf89jEJnTPBsMcbyg6ZuHDJ17z8oELlhaV9NyOMx4xBEQDhIVeuXBk8eHBcXJztN48dO3bs2LHFixd36tRp4cKFFStW1Ko80zPlAMiISZAhpk+r/Lpr9+s8OEVKrrih0G/0gPtF8k5bQQV9P2PKaxIV4cE1npxMqECHoxdNKHUeyIDUp/gHQorc1ks8JEyJAAj/37Vr12JjY1NTU511+PXXX2NjY/fs2RMaGqpmYaZnytwnL/0kQYbId/Klfp7i+s69P6s6/H/x5hx6s3CA+YZc3i8f4HFykfeujEupSxS9XNUi7x0ai2JXevazerLyMVeBQRXs6qCrNc4Uuc8CHZFp/h+hOAIg/JfFYunTp4+c/lSpUmXMmDHNmzcXQuzZs+fLL788f/68ECItLa13796bN2/mWjDv+Unuk5eaSZAimYJ+XkQ9fvcr892xuLhnHSY7tnz9/+vBXHF3zphBH5bOuHk4Hs9EM9xCDOqswuDxhQxulqfyGdZgCzP9Z0D62cXSIZXjMG3PhurZnze7Ogh9P0O6YOLl9nReHoyCAAj/tWbNmvj4eKndokWLDRs2lC1bVvqyffv2w4YNe/rpp/fs2SOE2Lp165o1a55//nnNajULg8Y3CvLFGTDxC79wXqHOP8b3+LeY+MMu7y8l03msJlE/XPM+JC3ob/TRLyoQZc+zgiua6/NRqvDDUnpXX6BkQe7MbCAv6TzeslPQahV6eHgWA9ndRP+vsCxdDLiJAAhCCGG1Wj/++GOpHRQUtGLFCjn9kZQrV27FihUNGza8d++eEOLTTz/t1q1bgD5HdvBLfr4/pWkOxI5Zj6tAOAkFku/p8vKFS5PXPR0+BnRYksY8iIHs+vsoDPJdxqRa+OL9L9Jb0ObmEbnoVvAj8nhLB4e30sMzgOGneOswvtTbXwp8gwAIQgiRnJy8b98+qT18+PDw8PC8fSIiIoYPHz5z5kwhRFJS0smTJyMjI1WtEgpR/A2M5uMAVtsF4Cb+9uFD8tsnD97a2d1Eh+/EdJ746PCMOeOiVI+zIbcP38skyMVtffTsqu1+Du7y3V+HIg9s7zNHZwz0d4f/IQCCEEKsX79ebg8ZMsRZt8GDB0sBkBBiw4YNBEA+4uvPNIy4KIOy68vwDlBVOvyMKy9GMAAUZPuU4tlzoKKzP5T5vb7Gm0+h6hEpkgTZ0vmFAcqM/Tz+A9H2serxb8/3eJ11MN/fpokQAEEIIeTVf0JDQxs3buysW5MmTcqWLXv9+nXpJmPHjlWpPjPyn9hChUVA/HyfC/Uo9cZA82FB3gPRyQfOhgjLvKT5/z68YbKHqDqPRrvf4v05NNn/gkSj9XEgvFhcX+e0THxM8/g0zYHABgEQhBAiOTlZarRo0cLFyj4BAQExMTEbNmywvQk84/GWxsQWeXn2KZbR97lwSJm1kEw/3NGkVIN+bOglj7M2BY/afO+WlX1IeHN+DPfgtDvYAh27Ugeb937M9xD1QEH3U5M6G+4RaAReLq6vFZ+M5ZiVBjMiAILIyspKS0uT2pUrV3bduVKlSlIjNTU1JyencGEeQl7xYLMVDba5dc53YwLParO9lTf7QxsiEvLJhheMdRTEyRR6miRljnMrHb6XcyX8eaqFPo/FdVWax0PeL1hT0F/k/t2qvHCS5v8Xrvns8JW9DN8bag/PPN7jT82nGn99WMJjvHuHOHv2rPV/T6h2m3/lVa5cOamRk5Nz7ty5iIgIn9YGoe8wwli1eRMJufkrFKHleodejr9Ve5nX83BHPgkMHL3n8ZK6Zh1xKnJchphqYZRHpsl+V0Gps3OZx3mQi/v0jJrL8RqEnseBivHgAanmyjg++jM01wMVtgiAIG7fvi23y5Qp47qzbUJke0MvWSyWQ4cO5eTkeHk/165dU6QemJLiH2HpbVK0kuMwzz7yVe16Ct8tZ6g4Z6Uqchq9H/YZ5f1MQa+a0WoBXV/wxdpbvntY+u46KQ/wBsYcFJkhxYMBSvFmThyPQ+gAARDEvXv35Ha+M4BsO9y9e1epGj788MOPPvpIqXs7fvy4UncFP1HQ6ESd6EenH6x588bMduij+TDI4YGoVpUip1Hzc2hL5ZVNvAwIdHXqnJGO0YOpZF7+Ro/9GKDHE6v4GszQFQ8etPr5JMAWj0wTMNCnUzKdX4IKHyAAwkMBUOnSpV13tu2gYAAUExMTHR1tsVi8vJ+bN2+mp6d37dpVkaoAZ3Qazeif/idf6L9CYZAihb7r1HNtDhmiYIqEIejzMaDPqqAO3f7v67YweIEACMJ2Iefs7GzXne/fvy+3AwMDlaqhS5cuXbp0UereAAAAAACALcXewMO4goKC5HZGRobrzrYdbG8IAAAAAAB0iwAID+U4169fd93ZNgAKDg72VU0AAAAAAEA5BEAQoaGhcrtAM4DyXTEaAAAAAADoAQEQRIUKFUJCQqS2+zOASpUqVbFiRd9WBgAAAAAAlEAABBEQEBAZGSm1T5486bqz3KFevXoB6myFDQAAAAAAvEMABCGEiIqKkhr79u3Lyspy1i0rK2v//v1Su2nTpmpUBgAAAAAAvEYABCGEkLdgz87O3rRpk7Nu8fHx8j7xXbt2VaMyAAAAAADgNQIgCCFE+/btixcvLrXnzZvnrNv8+fOlRokSJTp06KBGZQAAAAAAwGsEQBBCiODg4BEjRkjtNWvWbN68OW+f+Pj4lStXSu1Ro0aVLFlSvfoAAAAAAIAXAqxWq9Y1QBcuXrxYq1at+/fvCyHKlCmzZs2aVq1ayT9NSEjo3r37jRs3hBBBQUGnTp1iCzAAAAAAAIyCAAj/39KlS/v16yd/2bFjx2bNmuXm5iYmJm7btk3+/ooVK3r16qVFgQAAAAAAwBMEQHjIF198MX78eIvF4vCnhQsXnj59+pgxY1SuCgAAAAAAeIM1gPCQN998c/v27S1btsz7ozZt2uzYsYP0BwAAAAAAw2EGEBxLSUlJSko6f/68EKJq1aotWrSoUaOG1kUBAAAAAABPEAABAAAAAACYHJeAAQAAAAAAmBwBEAAAAAAAgMkRAAEAAAAAAJgcARAAAAAAAIDJEQABAAAAAACYHAEQAAAAAACAyRXWugAAOrV+/fodO3ZERERoXYgZnDhxonz58mXKlNG6EMN78ODBsWPH6tevX6RIEa1rMbyMjIwrV67UrVtX60LMIC0trVixYpUqVdK6EMOzWq2HDx+uVatWyZIlta7F8O7evfvnn382atQoICBA61oM7+LFi1lZWQyKFJGcnFyxYkUGRd578ODB6dOnJ0yYULp0aa1rgWEEWK1WrWsAoEdFixZ98OCB1lUAAAAAcKxnz54//fST1lXAMJgBBMCxEiVKPHjwYNCgQcWLF9e6FmO7evXqypUry5cv3717d61rMbx9+/YlJSU1a9asefPmWtdieKtWrbpy5crzzz9foUIFrWsxtqysrIULFxYrVmzw4MFa12J4J0+e3Lp1a506ddq1a6d1LYa3ZcuWlJSU9u3b165dW+taDG/hwoVZWVmDBw8uVqyY1rUY2+XLl1evXl2xYsVu3bppXYvhJSUl7du3Lzw8XOtCYCQEQAAck4Y4X3zxRfny5bWuxdj27NmzcuXKiIiIOXPmaF2L4X300UdJSUldu3b98MMPta7F8A4ePHjlypXx48fHxsZqXYuxXb9+feHChUFBQfyNe2/x4sVbt26NiYnhZHqvf//+KSkpL7/8cr9+/bSuxfB++umnrKysGTNmcOGSl3bt2rV69eqaNWvyN+69999/f9++fY888ojWhcBIWAQaAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAA4VrhwYflfeIMzqSDpNBYqVEjrQsyAR6ZSOJMK4mQqiJOpIE6mUjiTCpKGQ5xMFEihSZMmaV0DAD2qVKnS448/3qFDB60LMbzy5ctbrdZBgwbVrl1b61oMLzw83Gq1jhgxonTp0lrXYnhVq1YNDw9/8cUXAwP5NMgrxYoVCwkJ6dGjx6OPPqp1LYZXrVq1rKys4cOHV6pUSetaDC88PDwoKGjYsGHFihXTuhbDCwsLa9269RNPPKF1IYZXoUIFi8UyaNCgWrVqaV2L4UVERAghRo4c+cgjj2hdCwwjwGq1al0DAAAAAAAAfIgP/QAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCmtdAAD9Gjt27MKFC6tXr37w4EGtazGee/fuLVmyZPPmzXv37k1PT793715oaGjNmjWffPLJ/v3716lTR+sCjWTv3r1Lly7dvn37mTNnrl+/Xrx48XLlykVFRT355JMDBgwIDg7WukBjW7ly5dChQ4UQQ4cOnTFjhtblGMDixYuTkpLc7DxlypRixYr5tB5zyMzMXLNmzZIlS44fP3727NlChQpVq1atbdu2w4cPb9KkidbV6dfly5cnT57swQ2rVav2xhtvKF6PmUiv4xs2bNi7d+/Vq1eFEOXLl4+KiurcufOAAQNKliypdYFGcu3atUWLFsXFxR07duzy5cslS5asVKlSVFRUnz59OnXqVLgw70kd82AobrFYEhISvv/++7179549e1YIUbVq1aioqMGDB7dv3z4wkPkffs8KAI5kZ2eXK1dOCBEeHq51LcazZMmS0NBQZ0+8gYGBL7300q1bt7Qu0wCuXbvWrVs3F69ijzzyyLfffmuxWLSu1KjOnz8v/aULIUaMGKF1OcbQtm1b9wdat2/f1rpeA9i+fXu1atWcncMRI0bcu3dP6xp16tixY+4/Gm1FRUVpXbuuLVu2zMXreLly5X788UetazSG3NzcKVOmlCpVytnJbNGixZEjR7QuU488GIpfvny5c+fOzk51p06dLl265MuSYQBEgAAci4uLu3btmtZVGNLnn3/ev3//9PR0Zx0sFsu3334bHR198eJFNQsznOvXr8fGxq5evdpFn5s3b7700ksffPCBalWZicViGTJkCH/pBXXq1CmtSzCVhQsXtm3bVvqk2qE5c+b07NkzJydHzargzz799NMXX3zRxev4tWvX+vXr9/HHH6tZlRFlZ2f37Nlz/Pjxt2/fdtYnMTExNjb2wIEDahZmCAUdil+7di02NjYuLs5Zh19//TU2NtbFAxv+gAAIgAPp6emvvvqq1lUY0qZNmyZMmCB/2bJly7///e8bN27cs2fPt99+O3DgQPlHx48ff+6557Kzs7Uo0xheeumlkydPSu3ixYv/7W9/W758+d69e7ds2fL1118/+uijcs+PP/7YxYgHzsyaNWvTpk1aV2EwmZmZ586d07oK89i5c+crr7xisViEEAEBAS+88MLSpUt37ty5fPnyESNGyFcrrF+/fsqUKZpWajaVK1fWugSd+ve//z1x4kT5y9jY2NmzZ2/cuHHTpk1ffvnl448/Lv/o/fffX7t2rRY1GsaYMWNWrlwpf9mvX7/58+fv2bNn3bp1H330Uc2aNaXv3759u0uXLtevX9eoTD0q6FDcYrH06dMnNTVV+rJKlSpTpkyJj4+Pj4///PPPq1SpIn0/LS2td+/e0lMu/JTWU5AA6IvFYtm6dWtMTIz8LMElYO6zWCyPPfaYfOomTZqU99Kk3377rXr16nKfmTNnalKq/iUmJspnqV69eidPnrTr8ODBg7feekvuw+UMBXXgwIGiRYvaDgm4BMwdR44ckc/Y0aNHtS7H2LKzs2vUqCGdzODg4PXr19t1SExMlFdaKVGixM2bNzWp0zQSExMLFSokhAgJCUlNTdW6HD2yWCy2i/TNmjXL7nXcYrHMnj1b7lCnTh2uQXZm69at8omqWLHir7/+atfh9u3bL7/8stznrbfe0qROvfFsKG4btLVo0eLatWu2P01PT4+OjpY7rFy50lfVQ/cIgABYrVZrQkLCrFmzhg8f3qhRI7uYmADIfdu3b5fPW/PmzZ0NCnfs2BEQECB1q1atGmNHh0aNGiWfzI0bNzrs8+DBg+bNm8vdTp8+rXKRxnXv3r2GDRva/bETALljzZo10ukKDAzMzMzUuhxjmzt3rvzwW7p0qcM+3377rdxnxYoVKldoJvfu3atXr550Jlm/xhnbzx769u3rrFufPn3kbomJiWpWaCDt2rWTz1LeeFdisVg6dOgg9SlevLhdbOFXvBmKWyyWZs2aSZ2DgoLS0tLy9klNTZXzdBdjVJgel4ABEEKIF154YezYsXPnzj18+LDWtRjYxo0b5fZLnNs6AAAgAElEQVTkyZPllMdOy5YthwwZIrXPnj3Lde8OJSQkSI3mzZs/9dRTDvsULly4X79+8pecSfe9/fbb0kyWxo0bh4SEaF2OkaSkpEiN8PBwtvfyhtVqnTp1qtRu27btiy++6LDbgAED5HXK//3vf6tUnBm98847ycnJQoiBAwf27dtX63J0ynaDv/79+zvrZvujvXv3+rYmY7p27dq2bduk9vPPP//000877BYQEPDNN99Iu4BlZmauW7dOvRJ1xpuheHJy8r59+6T28OHDw8PD8/aJiIgYPny41E5KSpIvsYe/IQACAMXs2LFDaoSEhMifaDnUpk0buX38+HHflmVAFotFPi15PwqzZftT1jV0U1xcnHQJQ7FixZYsWVKkSBGtKzISOQCKjIzUthKjO3r0qHwyX3vtNWfdihQpMnfu3MmTJ0+ePLlly5ZqVWc2W7ZsmTVrlhCiRo0aX331ldbl6Je03bukQYMGzrrZzqC0vQlkO3bskBeacbEvlRCiTp06jRs3ltqrVq3yeWVmtH79erktf8SY1+DBg+X2hg0bfFoSdKuw1gUA0IUZM2ZkZWXZfmf+/Pm7d+/Wqh6DOnPmjNRo0KCBs+k/EtuxY0ZGhm/LMqDr16/LA8fatWu76Hnv3j25Xb58ed+WZQpXr16VR4eff/65POyGm+QtwGwXCoEH5Ivpihcv3rFjRxc9e/TooUpFpnXz5k3pr75QoUJLlixh0p8L8nQzIcTp06flNarsyC/3QggXu8X7swsXLsjtfF9oGjduvH//fvHwDCx/481QPD4+XmqEhoa6ONtNmjQpW7astNh2fHz82LFjvagXRkUABEAIIWx3p5IkJCQQABXU5cuXpUbe1VWc9RRCOJyp6+fKli0rbxnr+iob25nSdevW9W1Zxme1Wl9++WXp4ffkk0+OGTNG64qMx+EMoJs3b164cCE0NLRcuXLyxlVwbefOnVIjOjq6RIkS2hZjbq+99trZs2eFEGPHjrXdxAp52e4vuWHDhrZt2zrsZrvvJDG6Q7du3ZLb+f6BV6hQQWqcOXPm7t27QUFBPqxMr7wZiktXdwohWrRo4eIDyICAgJiYGGnuj3wT+BvGKACgmHPnzmVkZGRkZHz55Zeue8oXxgsuJHEkMDAw+H9cXKCUlpYmX8vQoUMHZmTka86cOdIqKmXKlPn++++JKgrqwYMHaWlpUrtOnToHDhzo3r17WFhY6dKlGzRoUKFChTJlyvTs2VNa7lTTSg1AfvtRrVo12+/fuXPnxIkTaWlp9+/f16Ius9m7d+/3338vhAgJCZkwYYLW5ehdq1at5N08p0+fLq9GZ2vbtm1ffPGF1G7SpAlXJjpkO5cq3+VmbHdXZG2agsrKypJfmCpXruy6c6VKlaRGampqTk6OTwuDPjHyAwDFlP4f1x92Xb169Z///KfUrlevnrMZ5rBjtVrv3r177ty5Q4cOrVq1qn///o0aNbp06ZIQIjQ0VFreAi4kJyePGzdOas+dO7dKlSra1mNEZ86cyc3NldrTpk1r2rTpqlWrbCf03bp165dffnnmmWfat29/8eJFjco0gMzMzNTUVKkdFhYmhLh+/foHH3wQGRlZqlSpunXr1qhRIygo6C9/+cvs2bMzMzM1LdbY3nnnHanx1ltv2b4nh0MBAQHLly+XrurKzc3t0KHD6NGjd+7cmZ6enp6evnPnztGjR7dv3156HihXrtzy5ctdX/Htt2rVqiW3//jjDxc9s7OzbRfSvnHjhg/LMqOzZ8/KHzmULVvWdWf5SSAnJ+fcuXO+rQy6xCVgAKCq+/fvd+/e/c6dO9KXEyZMYBaGm44fP16/fv2834+NjZ0/f36+l935uezs7P79+0tTKoYMGdKzZ0+tKzIk+fovIcSWLVtc9ExISIiOjt6xY0dERITPyzKgCxcuyOt8hYWFxcfHDxw40C4ys1qtu3bt2rVr19///veffvopOjpai0qNLT4+ftOmTUKIihUrst6HmyIjI7dt29anT5/Dhw9bLJZvvvnmm2++ydutSZMmP/74I5ceO/OXv/ylZMmS0jp9X3311ZgxY6SoN69PPvnkypUr8pfyAAluki+ZF0KUKVPGdWfbhMj2hvAfvOsAAPWcOXOmY8eO8soXzZs3Zy9eL9WrV++HH34g/cnX+++/L+0RW6NGDWZLecw2ABJC1K1bd968eWlpaffu3Tt58uQvv/wycuRI+aLF8+fP9+zZ025RT0hs3+OlpKR07drVxYSp06dPt2nTZvv27aqUZh5Wq/Xtt9+W2u+//35wcLC29RhIgwYNVq1a9cgjjzjrEBoaumbNGhfbhKFYsWJDhw6V2rdv33755ZfzTu2xWq1Lly797LPPbL9JAFRQtrth5DsDyLbD3bt3fVUTdIwACADUkJubO3fu3CZNmshbxdeuXXvdunWFCzMT0yvJycn169cfOXLkgwcPtK5FvxISEqZOnSqECAwMXLRoEXsAeUzeAkwI0bdv33379g0bNiw8PLxEiRK1a9fu0aPHN998s2vXrooVK0p95OVXYMf2Pd7cuXOli7zatGmzdOnSI0eO3Lp1a8+ePf/4xz/kKQOZmZm9e/dmv+0C+fnnn6U9lWrWrDls2DCtyzEMq9U6Z86cpk2b3rx501mf9PT0Jk2aLFiwQM3CDGfChAnyhJT169c3atRo7ty5+/btu3PnzsmTJ1euXNmlS5d+/frJ19VKXCz8B4dsA6DSpUu77mzbgQDIPxEAAYDPJSQkNGvWbMSIEfLHXw0aNPj111/lbS/gjrp16z548EBa7HDz5s0ffPCB9IF2bm7unDlzevfuTQbkUEZGxsCBA6UFAiZMmMB6pd6oWLFit27dunXrNmbMmB9++KFkyZJ5+0RFRS1btkz+ctq0aSwInVfeNx5ff/311q1bX3zxxQYNGpQqVap58+ajRo06dOhQhw4dpA6XL1+WV95FvnJyciZOnCi1J06cWLRoUW3rMZDPPvts5MiR0tUxJUqUePfdd+Pi4s6cOXPmzJm4uLgJEyZIy/zduHFj2LBh06ZN07pe/apcufLy5cttJ0WOGDEiKiqqVKlSkZGRPXr0kDZTK1mypO2WlKVKldKmXMOy/SgxOzvbdWfbxfVZgsBPWQHAkf79+0vPEuHh4VrXYmCXLl2yW2wlICDgzTffvH//vtalmcHFixdbtGghn9vvvvtO64p0x2Kx9O7dWzo/0dHR2dnZefvIS0KOGDFC/QrNqkuXLvIj88SJE1qXoztbt261fWIcOXKks55nz56Vl9UPCQlx+BhGXqtWrZJOWqlSpe7cuaN1OYaxYsUK+WEZGxt7+vTpvH3S0tJiYmLkbr/88ov6dRrIjh07XGxNVbVq1e3bt9vunbpz506tS9YLN4fitlvFz5492/V9zpgxQ+68e/duJcuFQRD7AYCv/PLLLw0bNvz555/l78TExOzcuXPatGnFixfXsDDTCAsL++GHH+STOXPmTG3r0aFFixZJ72dKliy5ePFiptarplOnTnL7999/17ASfQoKCpLbwcHBn3/+ubOeVatWffXVV6X2rVu3EhMTfV6cKcyZM0dq9O7d2/ZswwWLxTJp0iSpXapUqWXLllWvXj1vt/Dw8GXLlslrKn344YdWZvk517Jly5MnT86YMSMmJsZ2x7SIiIiJEycePny4devWtnsp5ruKDezY/oFfv37ddeeMjAy5zbpg/om1JwBAeRkZGWPGjFm8eLH8nZo1a06ePLlXr17sF6usunXrdu3aVUrZDhw4cO/ePYdX5fitjz76SGoMHDjw+vXrDpMI+dK5y5cvyx2CgoIaN26sTpGmZLs3kO0GN5DYvvFo0qSJi9V2hRC2sy2OHj3KZYz5On36tHRxjRBiyJAhmtZiJLt27Tp69KjUfuONN8LDw531jIiIGDdunPQEe/DgwcTERNtHKeyULFnytddee+211+7fv3/58uX79++HhYWVLl1aHhHJAVDhwoVt94+HO0JDQ+W2bb7jkG0Hsjb/RAAEAAq7cOFChw4dkpOTpS9LlCjx8ccf/9///R9LMLjv5s2bUipRqFChfPc0tZ1mde7cucjISJ/XZxw5OTlSY86cOfKMAGdWrVolXzYSFRUlLR8Lz9SpU0dus9BmXlWqVJHb+e7iZ/tHbTtTAM7Mnz9fmpNSq1Yt8jL3nThxQm5HR0e77mx7AfLx48cJgNxRokSJiIiIvN+X/65r1arFTNWCqlChQkhIyK1bt0RBZgCVKlVK3q8AfoVLwABASbdu3Wrfvr2c/rRq1ergwYNvvPEG6U+BjBo1qnz58uXLl3dnf3fbEYyLTVsANdk+FG0/noUkJCREXhbEbg+gvGyn9RUrVsyHZZlCTk6OvDvVkCFDmHbqvnPnzsnt+vXru+5suwf8mTNnfFWTH7BarXv27JHazDz1QEBAgJySnzx50nVnuUO9evV4cvBPzAACACWNHDny+PHjUnvo0KFz585lo3cPyBPvL168eO3aNXmVYodshzvly5f3bWXwY3FxcQkJCUKIwMDASZMmuU515ecB8fBsF8gaNGhw4cIFIcSRI0dc97TtwOaJ+Vq7du3FixeFEAEBAQMHDtS6HCMJCQmR2+fPn69Ro4aLzrZpke0NIdu1a5c0/7F8+fJNmjRx1u3IkSPSI1YI8cwzz6hUnLnIk3b37duXlZXlLCjPysrav3+/1G7atKl69UFPmAEEAIrZvXv30qVLpXb//v0XLFhA+uMZ24k/Bw4ccN1ZXrKhRIkSlSpV8mFZBpSWlpbvfhAOdwHj+q+87t69O2XKlClTpkyePHnt2rWuO8uP24CAgNatW/u+OuPp2LGj1Dh06JC05bYz+/btk9tRUVG+Lcv4fvjhB6nRtGlTF6vYIC/bJZ/zfemx7eBwrWjMnDnzqaeeeuqpp5599lkX62TLE9YCAgIIgDwj7zuZnZ29adMmZ93i4+PlfeK7du2qRmXQHwIgAFDM3//+d6kRGho6e/Zs5tZ67Mknn5Tb06ZNc9Fz//798linbdu2XB4C32nfvr086+frr7928X7m9u3b8luali1bstCmQ88995zUuHv3rrxaeV5XrlyZPXu21K5cubI7l4X6swcPHmzevFlqkzwWVLt27eSPbebMmZOVleWsZ1ZW1ty5c6V24cKF27Vrp0Z9RvP0009LjbNnz/7nP/9x2OfChQvys2XXrl2ZxuuZ9u3byzuizps3z1m3+fPnS40SJUp06NBBjcqgPwRAAKCMzMzMdevWSe3evXvzls8bYWFhTzzxhNSOi4tbvXq1w253794dNWqUxWKRvhw6dKhK9cEvlSlTpk+fPlJ7y5YtkydPdtjtwYMHQ4cOvXr1qvTl22+/rVJ9RlO3bl35bfPMmTO3bt2at092dvZf//rXGzduSF+OHTuWYN2133//XZ5OxfLPBVW6dOlu3bpJ7UOHDr377rsOc16r1TphwoRDhw5JX3br1s31NnZ+q1OnTnJ75MiRmZmZdh2ysrIGDRokP2I/+OAD9Yozl+Dg4BEjRkjtNWvWyCmwrfj4+JUrV0rtUaNGsWWq3wpw8fkVAH82YMCAJUuWCCHCw8PT0tK0LscADhw48Nhjj0ntTp06NWrUyM0bvvrqq64XGvBPGzdulMeOxYoV++yzz1555ZVSpUpJ38nNzd28efOoUaNSU1Ol70RHR//++++BgXywUWChoaHXrl0TQowYMeKf//yn1uXoWnJycpMmTaQp9AEBAa+88sqkSZPkCw9zcnJ279799ttv79ixQ/pO586d169fT2bhzO7du2NjY6V2YGDgu++++8Ybb0jvpa1W64EDB15++WX5+q+IiIhDhw7Z7h+PvCZOnPjpp59K7fPnz8srbcNNx48ff/TRR+XLZDp06PDll1/Ky+VardaDBw++9tpr0nJgQoiiRYsePHiwbt26WhWsc7169ZK36WzTps38+fPlHRIPHTo0evRo+dly0KBBCxcu1KZKvSrQUPzixYu1atW6f/++EKJMmTJr1qxp1aqV/NOEhITu3btLYXpQUNCpU6fYAsxvEQABcIwAqKBWrlzZo0cPD27422+/2b5IQzZ8+HC7mczVq1evXbt2RkbGsWPHbD9LrFChQmJiIqtdeIYAqEBmzJgxbtw4+ctChQrVqFEjIiLiypUrycnJ8vtGIUStWrV2797teglzvPfee5988ontd+rWrVupUqUDBw7I2xULIUqWLLljxw5WLc1XdHS0tIBXzZo1T506pXU5hvTjjz/279/f9jtly5Zt0KBBTk7OsWPH7PaaXLJkSb9+/dQt0EjOnDnTvHlzeUZkYGBg7dq1w8PDz507d+zYMblbs2bNfvvtN+ak2CnoUHzp0qW2j8aOHTs2a9YsNzc3MTFx27Zt8vdXrFjRq1cvH9QLY2B1UgBQhjwVBUr58ssvMzMzFy1aJH/nzJkzeXfbffTRR3/++WfSH6jj9ddfz8zMnDhxonTtYW5ubkpKSkpKil23Vq1a/etf/yL9yddHH31048aNr776Sv7O8ePHbfdQE0JUrlx5zZo1pD/5Sk9P37t3r9TmcwWP9evXr2jRoi+99JJ8adL169fliSqykJCQBQsW9OzZU/UCjaR69epr167t2rWrlAFZLJYTJ06cOHHCtk+7du1+/PFH0h/v9e3b9/z58+PHj5denjZu3Lhx40bbDoULF54+fTrpj59jqjwAKOPPP//UugSzKVas2MKFC1esWNGsWTOHHWrVqvX111/v3r1bnlIOqOCdd975z3/+8/TTTzu8tqthw4aLFi1KSEhgNVN3BAQEfPnll3FxcS1atMj703Llyk2cOPHo0aNs/uWOTZs2yVP7WQDIGz179jx69OiYMWMc7u8eEhIyduzYI0eOkP64o0WLFnv37u3fv3/ea7Rr1649Y8aMTZs2hYWFaVKb+bz55pvbt293+Offpk2bHTt2jBkzRv2qoCtcAgYAMIBz587t2rXr4sWLt27dKlWqVIUKFVq0aFGzZk1WV4GGMjIyUlJSUlNT09LSihQpEhYWFhMTU7NmTa3rMqrU1NQ9e/ZcvHjx3r175cuXr1+/fmxsbKFChbSuC/4rJycnKSnp6NGj6enpQojQ0NCGDRtGRUXJm4XBfenp6Vu3bj1z5kxubm7VqlXr1KnTvHlzXsR9JCUlJSkp6fz580KIqlWrtmjRguUmISEAAgAAAAAAMDkuAQMAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAAAAAMDkCIAAAAAAAAJMjAAIAAAAAADA5AiAAAAAAAACTIwACAAAAAAAwOQIgAAAAAAAAkyMAAgAAcGrx4sUBbihdunTt2rX79Okzb968e/fuaV01AACAPQIgAAAAb928efPUqVMrVqwYPnx4eHj4kiVLtK7IgZEjR8qJ1WuvvababQEAgB4U1roAAAAAU0lPTx8wYEBqaurEiRO1rqUA1q5dm5SUJISoXbv2gAEDtC4HAAAojAAIAADALaNHj27dunXe79+4ceP48eNJSUk7duyQv/nee+81b968c+fOKhbolbVr186ZM0cI0alTJwIgAADMhwAIAADALY8//viLL77oosP69etHjhx59uxZ6ct33nmnU6dOAQEBqlQHAADgCgEQAACAMrp06bJ8+fKWLVtarVYhxB9//LFv376oqCit6/qvcePGyQFW1apVVbstAADQAwIgAAAAxTz++OODBg1auHCh9GVCQoJ+AqDIyMjIyEj1bwsAAPSAXcAAAACUFBsbK7dPnTqlYSUAAAAyZgABAAAoqW7dunL72rVrLnrm5uYmJiYeP3788uXLRYoUqVix4qOPPtqoUSM3lw26f//+n3/+eerUqVOnThUpUqRWrVo1a9asWbNmkSJFvD0GL3h5ULYOHz588ODBc+fOPfLII5GRkQ0bNqxQoYIvagYAwB8QAAEAACjp4sWLcrt48eIO+9y6devzzz+fN29eenq63Y+qVas2bty4UaNGFStWzNmvuHDhwqRJk3788ce7d+/a/SgsLOz//u//3nzzzaJFi9r9KCkpKTo6WmqnpqZGREQIIWbOnPn666/bdvv111/lsObYsWP16tVzdlulDkq+8/Dw8LS0NCHEzp07//a3v+3atcu2W6FChV555ZUPPvggLCzM0VkBAACucAkYAACAkg4dOiS3K1WqlLfDgQMH6tevP3ny5LxBiRDi7Nmzr7/+evPmzc+dO+fw/rdu3Vq/fv158+blTX+EEJcuXXr33XfbtWvn8Ke+4+VB2fruu+/atWtnl/4IIXJzc//5z382bNjw6NGjyhQNAIA/YQYQAACAYtLT07/99lv5y9atW9t1OHr0aJs2bW7duiV/p0GDBnXq1MnJyTl69Ghqaqr0zcOHD7ds2XLv3r2hoaG2Nz916lTXrl3v3bsnfVmkSJHGjRtXr179zp07J06cOHPmjPT9//znP+PGjZszZ06+BYeFhcXExAgh/vzzz6tXrwohQkJC6tevL/3U2QwmZQ/K1pYtW4YNG2axWEqWLNm5c+fIyMiMjIz9+/cnJiZKHa5fvz5o0KA9e/Z4cE0ZAAB+zQoAAAAnFi1aJI+aFi1a5LrzrVu3nnvuObl/2bJl79y5Y9shOzu7WbNmcodWrVodPHhQ/qnFYtm+fbscvgghevfubfcr+vbtK/906NChFy5ckH+Um5u7cuXKoKAg6aeBgYGXLl2yve2ePXvk26amptrd84gRI6QfderUKe+hubit9wcl33mZMmUqVqwohOjVq9fVq1dt+6xZsyY4OFi+k5MnT+YtEgAAuMAlYAAAAF65efNmYmLiP/7xj7p1665Zs0b+/ltvvSXHMZLly5fv27dPaj/11FObN29u3Lix/NOAgIDWrVvv2LGjYcOG0ndWrFgh9xdC5Obmrl69Wmq3b99+/vz5tpeYBQYGPv/889OnT5e+tFgs8fHxSh6nE14elK2MjIzLly8/99xzy5Yts5sl9Oyzz06dOlX+MikpSeHDAADA7AiAAAAA3DJw4MAAR0qXLh0TE/Pqq6/aLv/ctm3bN954w+4e/vGPf0iN4ODg7777zuGKyGXLll2wYEHemwgh0tPT5Yu/nn322cBABwO5Z599Nuh/bOvxHS8Pyk6hQoWmTZvm8NAGDhwot0+dOuV5xQAA+CUCIAAAAIU9/fTTq1evLlz4ocUWr1+/Li9sPGDAgCpVqji7eUxMjLx40Pr1661Wq9R+5JFH5IVvnIU7lStXvvM/eRMoxXl/UHb69esXGRnp8EfBwcHh4eFS29nNAQCAMwRAAAAAinnssceWLFmydu3akJAQux/9/vvvcrtLly6u7+eZZ56RGhcvXjx//rzULl68eI0aNaT2zJkzf/rpJ81zEO8Pyk5sbKyLe3BzUWoAAJAXu4ABAAC4ZfTo0Xl39ZIEBgaWL18+MjLSxRSYEydOyO2aNWu6/l0RERFyOzk5uWrVqlJ73Lhxf/3rX4UQ2dnZvXv3btq06QsvvNCxY8fHHnusSJEibh+KYhQ5KFt16tRRqDQAAPAQAiAAAAC3PP744y+++KLHN79x44bcli9lcsa2Q0ZGhtwePXr077//vnjxYunL/fv379+/f+LEiUFBQbGxsU888UT37t0bNmyo2hbpihyULduQCAAAKIhLwAAAANRw584dqREUFGS7o7lDtjOJbt68KbcDAgIWLVq0bt06243VhRB3796Nj49///33GzduHBkZ+c0331gsFuVqd0qRg7KlyTwmAAD8AQEQAACAGuR85O7du3Ju4szVq1fz3lDWpUuXI0eOHDp06JNPPmnRooXdnlkpKSmjR49u2bKls1k2ClLwoAAAgE8RAAEAAKihdOnScvv06dOuO//5559yu2zZsnk7BAQENGrU6N133929e/eNGzfi4uImTJjQpEkTucPvv/8+duxYr6vOh7IHBQAAfIcACAAAQA22u5unpaW57mybleS7uHKpUqU6der06aef/vHHH7t27ZJ3Clu0aNHly5c9LNc9vjsoAACgLAIgAAAANcTExMjtDRs2uO68fv16qVGhQoVatWpJ7X//+9+ffPLJJ598MnXqVGcbwMfGxs6ePVv+8siRI14VnR/vDwoAAKiDAAgAAEAN5cqVa9GihdRetGjRpUuXnPXcvXv3tm3bpHbnzp3lLb22b9/+3nvvvffee+PHj09OTnZ284oVK8rtW7duKVC6c94fFAAAUAcBEAAAgEpGjx4tNW7dujV06NDs7Oy8fdLT04cOHSp/+de//lVuN2jQQG4vWLDA2W/5+eef5bYHE20yMzML1N/LgwIAAOogAAIAAFBJ37595XWa4+LiOnXqdPToUfmnVqs1ISGhVatWx44dk77Tq1ev6OhoucPTTz9duHBhqT19+vSpU6fevXvX9v7T09MnTpw4depU6cu6des2atTIzdrkKTn79u07fPiw1Wq9cePGgwcPfH1QAABAHYW1LgAAAMBfFC1adPHixX/5y19u374thEhISGjYsGHjxo1r1aqVm5t7+PDh1NRUuXNERMQ333xje/OwsLCRI0ygXl8AAAQGSURBVEd+9dVX0pfjx4//5JNPmjZtWq5cudzc3PPnzx86dMh2As6sWbPcv9JKnit0+/btxo0bBwQEWK3WY8eO1atXz6cHBQAA1EEABAAAoJ5GjRolJCR06dJF3p/r0KFDhw4dsuvWpEmT9evXlytXzu7706ZNS05O3rx5s/Tl7du3t2/fnve3FCtWbN68eZ06dXK/sF69en322WcZGRnSl84WmXbIy4MCAAAq4BIwAAAAVTVr1iw5Oflvf/tbmTJl8v60evXqs2bNSkxMrFy5ct6fFi9ePC4ubtasWc62UQ8ODh48ePCRI0cGDhxYoKrCw8O3b9/+wgsvVKlSpUiRIpUrV46Oji5ZsqSbN/fmoAAAgAoCCvTxDgAAAJSSk5OTmJh4/PjxK1euFCpUqGLFio899lijRo3cuW7LarWmpqaeOXPm7Nmz58+fL126dHh4eHh4eM2aNYsXL65C8c54c1AAAMB3CIAAAAAAAABMjkvAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCIAAAAAAAABMjgAIAAAAAADA5AiAAAAAAAAATI4ACAAAAAAAwOQIgAAAAAAAAEyOAAgAAAAAAMDkCID+Xzt2IAMAAAAwyN/6Hl9hBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMCSAAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwIIAAAAYE4AAQAAAMwJIAAAAIA5AQQAAAAwJ4AAAAAA5gQQAAAAwJwAAgAAAJgTQAAAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMCSAAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwIIAAAAYE4AAQAAAMwJIAAAAIC5AKR67H6bEhNAAAAAAElFTkSuQmCC" title alt width="768" /></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
328 <p><strong>Motif 3 :</strong> Consensus: TTTTCT <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAANgCAIAAABlQDTBAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAgAElEQVR4nOzdeZBV5Z0/4HPZROggiyBKhJZVEBCkgY4SBlELEaIBtyhQohUlARlNxhj0h5FEDBqSoFNxgFGMKE7UisaogLgBLSgEWwLYssgma7BZWzBAA/f3x8ncoa9N09C3+zbH56n88b33nvfwIWVVyk/e95xYPB4PAAAAAIiuKukOAAAAAED5UgABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIq5augNQ6Xz11VfPP//8O++8k5ubu3379q+++urMM89s3rz55ZdfPmjQoFatWqU7IAAAAHBiYvF4PN0ZqET+53/+56677tq+fXuxv1apUmXo0KGPPfbYt771rQoOBgAAAJw0BRD/55FHHrnvvvuOe1mbNm1mz5599tlnV0AkAAAAoOwUQPzL22+/3adPn8Q/D5dccsm1117bvn37evXqLVu2bPbs2c8991zi4qysrPnz59eoUSNNYQEAAIAToAAiCIIgHo9fdNFFf//738OPY8aM+cUvfhGLxY6+Zt68eYMGDdqwYUP48bHHHrvrrrsqOigAAABw4hRABEEQvP/++z179gznrKysv/3tb0ntT2j+/Pnf/e53w39mzj333M8//7zYywAAAIBKxWvgCYIgeOuttxLzuHHjjlXrXHLJJUOHDg3njRs3LlmypAKyAQAAAGWkACIIgmDevHnhUKdOncsuu6yEKxMbhYIgWLlyZfnGAgAAAFJBAUQQBEHiyT7t2rUr+VTXBRdckJh37dpVvrEAAACAVFAAEQRBsG3btnA4ut8p+cogCJo1a1aOmQAAAIAUqZbuAFQKmzZtCofTTjut5Cvnzp2bmFu3bl2OmQAAAIAU8RYwTkB+fn7z5s337t0bBMH555+fl5dXpYpNZAAAAFDZ2QFEaf3zn/8cMGBA2P4EQXD//fensP3ZuXPnX/7yl8OHD5fxPvv27fv8889/85vf1KhRIyXBAAAAIAIUQJTKhg0bBg0aNH/+/PBjVlbWTTfdlML7P/TQQ4899liq7larVq1f//rXqbobAAAAnOoUQBzH4cOHp0yZ8vOf/3z37t3hNy1btpw+fXq1aqn8h+e2227bv3//kSNHynifOXPmrFq1qmnTpilJBQAAANGgAKIkc+bMueuuu5YuXZr4pl27dq+//nqjRo1S+wd16NBh4sSJZb/P0KFDV61adfrpp5f9VgAAABAZnuBL8bZt23b99ddfeumlifYnFovdc889ubm5zZs3T282AAAA4ITYAUQxXn755WHDhu3YsSPxTffu3SdMmPCd73wnjakAAACAk2MHEEXs2rVryJAh1113XaL9ad68+Ysvvvjhhx9qfwAAAOAUZQcQ/2fLli2XXXbZihUrwo+nn376Qw89NHLkSK9UBwAAgFOaAoh/KSgo6N2798qVK8OPPXr0+OMf/9iyZcv0pgIAAADKzhEw/uVHP/pRov259dZbZ8+erf0BAACAaLADiCAIgoULF/7pT38K50GDBk2ZMiUWi6U3EgAAAJAqdgARBEHw+9//PhzOPPPM//zP/9T+AAAAQJQogAj2798/ffr0cL7hhhvq16+f3jwAAABAajkCRrBy5cp9+/aF85o1a+65555SLhwxYsR5551XbrkAAACA1FAAEaxduzYxz5o1a9asWaVc+P3vf18BBAAAAJWfI2AE69atS3cEAAAAoBwpgCiyAwgAAACIHgUQwR/+8If4SenRo0e6swMAAADHpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARFy1dAeodFasWBEEQc2aNTMzM0u5pLCwcM2aNUEQ1KpVq2nTpuWXDQAAAOAkKICStW3bNgiC7t27L1iwoJRL9u3bF67q1q3bwoULyzEcAAAAwIlzBCwF6tSpE4vFgiDYvHlzurMAAAAAJFMApUBeXl48Hg+CID8/P91ZAAAAAJJ9o4+ATZs2bdq0acX+tHz58iuvvLI0N9m/f39ubm44N27cOGXhAAAAAFLkG10ArV69etasWcX+VFBQcKyfSpCdnV3mUAAAAAAp5ghYytSrV++BBx5IdwoAAACAZN/oHUBZWVnDhg1L+nLy5MlBEDRs2HDgwIGlvE8sFmvRosUNN9zgHfAAAABAJfSNLoD69+/fv3//pC/DAqh58+aTJk1KRygAAACAFHMEDAAAACDivtE7gIo1YcKEwPu8AAAAgAhRACW7++670x0BAAAAIJUcAQMAAACIODuAinfkyJE1a9bk5uauWbMmHo+XfuHo0aPLLxUAAADASVAAFWPLli2DBg2aM2fOSaxVAAEAAACVjQIo2datWzt16pSfn5/uIAAAAACpoQBKNmbMmKT2p1mzZjVr1kxXHgAAAIAyUgAV8Y9//OOpp54K54yMjPHjxw8ePDgjIyO9qQAAAADKQgFURF5e3pEjR8L5hRde6NevX3rzAAAAAJSd18AX8dlnn4VDdna29gcAAACIBgVQEQUFBeHQuXPn9CYBAAAASBUFUBFNmjQJh7p166Y3CQAAAECqKICK6NixYzgkzoIBAAAAnOoUQEV06NChe/fuQRDMnDlzx44d6Y4DAAAAkAIKoGS//e1vq1Wrtm/fvhEjRiTeCAYAAABw6lIAJevRo8fkyZNjsdiLL744YMCAVatWpTsRAAAAQJlUS3eAyui2225r1qzZoEGDXnvttenTp998883Z2dmtWrXKzMysXr16yWszMzMrJCMAAABAaSmAkiUanIMHDwZBcPjw4eeee+65554r5fJ4PF5OwQAAAABOjgIo2eeff57uCAAAAACp5BlAAAAAABFnB1CyRYsWpTsCAAAAQCopgJJlZWWlOwIAAABAKimATm133XXX1KlTmzZtunTp0rLfbdq0aR999FEpL3700UdPO+20sv+hAAAAQHlTAJ3CCgsLn3/++T179hQUFKTkhlOmTJkzZ04pLx47dqwCCAAAAE4JCqDj27hx46JFi3bv3l1QUPDll18+8MAD4feHDx+uWrVqGoO9+eabO3bsSOEN16xZk8K7AQAAAJWEAuiYvvrqq0ceeeT5559fu3bt0d8nCqAf/OAH+fn5t99++w033FC9evUKjrd9+/YRI0ak8Ib79+/ftGlTCm8IAAAAVBJeA1+82bNnX3DBBQ899FBS+3O0wsLCuXPnDh48uEuXLp988kmFZYvH43PmzOnfv//GjRtTeNu1a9fG4/Fw/vTTT+PHk5GRkcI/HQAAACg/dgAVIzc3t3///l999VUpr1+2bFmPHj3eeeedcn2D2Ny5c5csWZKXl/fBBx+UR9+UOP9VpUqV5s2bp/z+AAAAQLoogJLl5+d/73vfS7Q/HTt2HDlyZLdu3a688sqtW7cefeWtt966cuXKFStWBEGwZ8+egQMHfvLJJ3Xq1CmnYNdee21qn/iTZPXq1eHQrFkzT3cGAACAKHEELNmkSZMSRc/IkSP/9re//fCHP+zYsWOVKsn/XV1zzTV5eXljxowJP27cuPGRRx6pyKiplSiAWrdund4kAAAAQGrZAVTEwYMHJ06cGM69evV6/PHHY7FYCddXqVLlwQcf3LVr1+OPPx4EweTJk3/5y1+W0wOhJ0yYcODAgaO/eeqppxYuXJiq+yeOgLVq1SpV9wQAAAAqAwVQEUuWLEls/5k0aVLJ7U/CqFGjJk6cePDgwZ07dy5evLhbt27lkW3IkCFJ38yZMyeFBVCxO4D27NmzZcuWM888s0GDBl/fAwUAAACcEvwrfRHr1q0LhyZNmrRp06aUqxo3bty+fftwXrJkSbkkK2eFhYXr168P51atWi1ZsmTAgAGNGzeuW7duu3btGjVqVK9eveuuu27GjBmJN4UBAAAApwoFUBGJEqRjx44ntLBp06bhUK7PaS4/GzZsOHz4cDiPHz++c+fOr7766rZt2xIXFBQUvPzyy/369evdu3fSw7ABAACASs4RsCJq1KgRDqV/B3wo0Ymcou/PSpz/CoLgvffeK+HKOXPmdO3add68eZmZmSkM8OWXX7711ltHjhwp433CCs82JQAAADiaAqiIxo0bh8Mnn3wSj8dL+Qygw4cPL1u2LJzPOuus8gpXno4ugIIgaNOmzT333HPFFVc0atRo8+bNS5cuffvtt6dMmVJYWBgEwebNm6+77rr58+ensO0aM2bM73//+1TdbenSpam6FQAAAESAAqiI7OzscNixY8fcuXN79epVmlWzZ89O7Bi66KKLyilbuUq8AiwIgptuuumpp56qVatW+LFly5YtW7YcOHDgD3/4w379+oXnwnJzc5955plhw4alKsBNN920efPmsu8AWrRo0fr161u0aJGSVAAAABANCqAiMjMzO3fuvHjx4iAIRowYsXjx4sShsGPZvXv3yJEjw7lFixalf3R0pXLWWWddc801QRA0a9bsd7/7XbVqxfyD0aVLlxdeeOHSSy8NP44fP/6OO+4o5Sap48rKynrhhRfKfp+hQ4euX78+IyOj7LcCAACAyPAQ6GQPPvhgOHz66adXXnnlli1bSrg4Ly+vV69eK1asCD/ee++9qSpEKtjPf/7zV1999dVXX3388ceLbX9CvXr1uuqqq8J5zZo1SQfHAAAAgMpJAZTs6quvHjhwYDjPnj27Y8eOd95551/+8pfw8TdBEGzYsOGjjz568sknr7nmmg4dOiTe+961a9fbbrstPaErUJ8+fRLzggUL0pgEAAAAKCVHwJLFYrFp06b1798/fBnWjh07nnjiiSeeeCJxQbNmzb6+qlWrVm+88UYJe2ci4+gzbl988UUakwAAAAClZAdQMU4//fQ333zzwQcfLGWhM2jQoL/97W+NGjUq72CVQatWrRLzvn370pgEAAAAKCUFUPGqV68+ZsyYdevW3X///UdXHkdr1KjR0KFDP/7442nTptWtW7eCE6bLnj17EvOZZ56ZxiQAAABAKUX/yFJZfPvb33744Ycffvjh/Pz8ZcuW7dy5c/fu3bVq1apfv37Lli1btGhxij7yOcmbb745Z86cIAiqVKkyZsyYkl98tnLlysTcpEmT8s4GAAAAlJ0CqFQaNmzYu3fvdKcoL/v27Xv00UfDOSsrK/EM7GIlHnodi8W++93vlns4AAAAoMwcAUu2YsWKFStWrF+/vvRLCgsLw1UbNmwot1zlqHfv3oldP0888UQ8Hj/WlV9++eWUKVPC+ZJLLqlfv35F5AMAAADKRgGUrG3btm3btv3BD35Q+iX79u0LV11//fXlF6yM1q1bN+d/LV++/Oif6tWrd+ONN4bze++9N27cuGLvUFhYeOutt+bn54cfR40aVa6BAQAAgFRRAKVAnTp1wocBbd68Od1ZjmnKlCmX/q+HH3446df7778/sQlo9OjRw4YN27p1a+LXQ4cOzZ8/v3fv3i+//HL4zZVXXnnVVVdVTHIAAACgjBRAKZCXlxcem0rsjjnlnH/++Y888kg4x+Px//7v/z733HNbtWp1xRVXXHjhhbVr1+7Ro8e8efPCC1q0aDFt2rRoPAAbAAAAvgm+0Q+BnjZt2rRp04r9afny5VdeeWVpbrJ///7c3Nxwbty4ccrCVbif/OQn+/fvHz169JEjR4IgOHz48OrVq1evXp10WY8ePV555ZUGDRqkIyMAAABwMr7RBdDq1atnzZpV7E8FBQXH+qkE2dnZZQ6VTvfdd1/v3r1/+ctfvvnmm19/FPQFF1wwatSom266qWrVqmmJBwAAAJycb3QBlFr16tV74IEHKvJPLGEH09eNHTt27Nixx72se/fuM2bM2LVr1+rVq9etW7d+/frq1as3bty4e/fuzZs3L1teAAAAID2+0QVQVlbWsGHDkr6cPHlyEAQNGzYcOHBgKe8Ti8VatGhxww03NG3aNMUR06RevXpdu3bt2rVruoMAAAAAKfCNLoD69+/fv3//pC/DAqh58+aTJk1KRygAAACAFPMWMAAAAICI+0bvACrWhAkTglP8fV4AAAAAR1MAJbv77rvTHQEAAAAglRwBAwAAAIg4O4CKd+TIkTVr1uTm5q5ZsyYej5d+4ejRo8svFQAAAMBJUAAVY8uWLYMGDZozZ85JrFUAAQAAAJWNAijZ1q1bO3XqlJ+fn+4gAAAAAKmhAEo2ZsyYpPanWbNmNWvWTFceAAAAgDJSABXxj3/846mnngrnjIyM8ePHDx48OCMjI72pAAAAAMpCAVREXl7ekSNHwvmFF17o169fevMAAAAAlJ3XwBfx2WefhUN2drb2BwAAAIgGBVARBQUF4dC5c+f0JgEAAABIFQVQEU2aNAmHunXrpjcJAAAAQKoogIro2LFjOCTOggEAAACc6hRARXTo0KF79+5BEMycOXPHjh3pjgMAAACQAgqgZL/97W+rVau2b9++ESNGJN4IBgAAAHDqUgAl69Gjx+TJk2Ox2IsvvjhgwIBVq1alOxEAAABAmVRLd4DK6LbbbmvWrNmgQYNee+216dOn33zzzdnZ2a1atcrMzKxevXrJazMzMyskIwAAAEBpKYCSJRqcgwcPBkFw+PDh55577rnnnivl8ng8Xk7BAAAAAE6OAijZ559/nu4IAAAAAKnkGUAAAAAAEWcHULJFixalOwIAAABAKimAkmVlZaU7AgAAAEAqOQIGAAAAEHEKIAAAAICIcwTs+OLx+KZNm1auXLlr1649e/ZkZGTUr1+/efPmLVq0iMVi6U4HAAAAcBwKoJLk5uZOnDhxxowZW7du/fqvjRo16tu378iRI7t06VLx2QAAAABKyRGw4m3fvv3666/PysqaMmVKse1PEARffPHF1KlTs7Kybrzxxp07d1ZwQgAAAIBSUgAVY+PGjV26dPnzn/9cyutfeumlrKysY/VEAAAAAOnlCFiyAwcO9O3bd8OGDYlvevbs2a9fv8zMzKZNmzZp0iQ/P3/t2rVr166dPn16Tk5OeM26dev69eu3cOHC6tWrpyk4AAAAQPEUQMmeeOKJvLy8cG7fvv3TTz/dtWvXoy8499xzL7rooiAI7r333gULFtx6660rVqwIgmDx4sVPPvnk8OHDKz4zAAAAQAkcASsiHo9PmDAhnC+44IKcnJyk9idJdnZ2Tk5Oq1atwo/jx4+Px+PlnhIAAADgRCiAili6dOmmTZvCefLkyfXq1TvukoYNG06aNCmc169fv3z58nLMBwAAAHDiFEBFLFmyJBxatGhx8cUXl3LVpZde2qxZs3BevHhxuSQDAAAAOFkKoCLy8/PDoV27drFYrJSrYrFY+/btw3nbtm3lkgwAAADgZCmAiigsLAyHqlWrntDCatX+9TjtQ4cOpTgTAAAAQNkogIpo1KhROKxevfqEFn722WfhcNZZZ6U4EwAAAEDZKICKaNOmTTh88skniZfBH1deXt6nn36adAcAAACASkIBVET37t3r168fzsOHDz948OBxlxw8eHD48OHh3KBBg5JfGw//Jxbzn9T8BwAAgONRABVRrVq122+/PZxzcnL69++/ZcuWEq7funXr1VdfnZOTE368/fbbT/ThQQAAAADlTQGU7L777mvcuHE4v/32223atBk+fPjrr7+el5e3d+/eIAj27t2bl5f3xhtvjBgxok2bNrNmzQovbty48ahRo9KWGwAAAOAYqqU7QKVzxhlnzJgxo1evXgUFBUEQ7N27d+LEiRMnTgx/rV279r59+76+qk6dOjNmzDjjjDMqNCsAAABAKdgBVIzOnTt/+OGHnTt3/vpPxbY/nTp1mj9/frHXAwAAAKSdAqh47dq1W7BgwbPPPpudnV3CZd26dXvmmWcWLlzYvn37CssGAAAAcEIcATumGjVqDBkyZMiQITt37lywYMGqVat27969d+/ejIyMunXrtm7dunv37g0aNEh3TAAAAIDjUAAdX/369a+66qqrrroq3UEAAAAAToYjYCfp0KFD8Xg83SkAAAAAjk8BdEyFhYWzZs268847e/fuvXnz5qRf33nnnTp16vTs2fPxxx8P3xcGAAAAUDk5Ala8t95668477/zss8/Cj4WFhV+/Zu/eve+///77778/bty4iRMnDhgwoGIzAgDAqS8WS3eCqHBAASiRHUDFePrpp/v27Ztof45r27Zt11577dNPP12uqQAAAABOjgIo2ccffzxs2LAjR46EH08//fT+/fvXqVMn6bJOnTrdf//9F1xwQfgxHo8PHz582bJlFZoVAAAAoBQUQMlGjx596NChcB42bFh+fv7rr79ev379pMsaN2788MMPL1u27A9/+EONGjWCIDhw4MAvf/nLio4LAAAAcDwKoCJ27tw5c+bMcB4xYsSkSZNq165dwvWxWGzEiBG//vWvw4+vvPLKrl27yj0lAAAAwIlQABWxatWqcKhVq9ZDDz1UylUjRoyoV69eEATxeHzevHnlFQ4AAADgpCiAikgUQO3atQs7ndKoWbNm27Ztw/nzzz8vl2QAAAAAJ0sBVMTmzZvDoVmzZie08Oyzzw6HPXv2pDgTAAAAQNkogIpIPOx5+/btJ7Rw27Zt4XDmmWemOBMAAABA2SiAijjvvPPCYcGCBaXfy7N79+6FCxeGc9OmTcslGQAAAMDJUgAV0bNnz4yMjCAIDhw48Ktf/aqUq8aOHVtYWBgEQc2aNXv27FmO+QAAAABOnAKoiJo1aw4ZMiScf//7348dO/bgwYMlXH/48OHf/e53v/vd78KP1157bcmvjQcAAACoeAqgZL/61a8S7/964IEHmjdvPn78+K1bt8bj8aMv27179x//+Mfzzz//nnvuCb+pWbPmww8/XNFxAQAAAI6nWroDVDpnnnnma6+91qdPn6+++ioIgs2bN99777333nvvaaeddu65555zzjm7d+9ev359QUHB0auqVKny/PPPn+i7wwAAAAAqgB1AxejRo8e7777bsmXLo788cODA6tWrc3Jyli5dmtT+1K9f/89//vPAgQMrNiYAAABAqSiAipednf33v/993LhxJW/q+da3vjVy5Mhly5YNGDCgwrIBAAAAnBBHwI6pdu3ao0aN+tnPfpabm/vBBx8sXbp0x44de/bsOf300+vVq9eiRYuLL774u9/9bvjWMAAAAIBKSwF0HFWrVu3WrVu3bt3SHYTIKfpY8fSIxcp6h8rwtwAAAOB4HAEDAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAESc18ADAADpE4+nO0EQxGJlvUNl+FsAlMgOIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxHkNfPGOHDmyZs2a3NzcNWvWxE/knY6jR48uv1QAAAAAJ0EBVIwtW7YMGjRozpw5J7FWAQQAAABUNgqgZFu3bu3UqVN+fn66gwAAAACkhgIo2ZgxY5Lan2bNmtWsWTNdeQAAAADKSAFUxD/+8Y+nnnoqnDMyMsaPHz948OCMjIz0pgIAAAAoCwVQEXl5eUeOHAnnF154oV+/funNAwAAAFB2XgNfxGeffRYO2dnZ2h8AAAAgGhRARRQUFIRD586d05sEAAAAIFUUQEU0adIkHOrWrZveJAAAAACporkXRv8AACAASURBVAAqomPHjuGQOAsGAAAAcKpTABXRoUOH7t27B0Ewc+bMHTt2pDsOAAAAQAoogJL99re/rVat2r59+0aMGJF4IxgAAADAqUsBlKxHjx6TJ0+OxWIvvvjigAEDVq1ale5EAAAAAGVSLd0BKqPbbrutWbNmgwYNeu2116ZPn37zzTdnZ2e3atUqMzOzevXqJa/NzMyskIwV56677po6dWrTpk2XLl2a7iwAAADAyVAAJUs0OAcPHgyC4PDhw88999xzzz1XyuXxeLycgqVFYWHh888/v2fPnoKCgnRnAQAAAE6SAijZ559/nu4Ilcibb77pYdgAAABwqvMMII5p+/btI0aMSHcKAAAAoKzsAEq2aNGidEdIv3g8Pnfu3FGjRm3cuDHdWQAAAICyUgAly8rKSneEtJk7d+6SJUvy8vI++OCDTz75JN1xAAAAgNRQAPF/rr32Wk/8AQAAgOjxDCAAAACAiLMD6Pji8fimTZtWrly5a9euPXv2ZGRk1K9fv3nz5i1atIjFYulOl0oTJkw4cODA0d889dRTCxcuTFceAAAAICUUQCXJzc2dOHHijBkztm7d+vVfGzVq1Ldv35EjR3bp0qXis5WHIUOGJH0zZ84cBRAAAACc6hwBK9727duvv/76rKysKVOmFNv+BEHwxRdfTJ06NSsr68Ybb9y5c2cFJwQAAAAoJQVQMTZu3NilS5c///nPpbz+pZdeysrKOlZPBAAAAJBejoAlO3DgQN++fTds2JD4pmfPnv369cvMzGzatGmTJk3y8/PXrl27du3a6dOn5+TkhNesW7euX79+CxcurF69epqCn9r++c9/fvjhh0eOHCnjfdRwAAAA8HUKoGRPPPFEXl5eOLdv3/7pp5/u2rXr0Rece+65F110URAE995774IFC2699dYVK1YEQbB48eInn3xy+PDhFZ85Ah588MHx48en6m7Lli1L1a0AAAAgAhRARcTj8QkTJoTzBRdckJOTU69evRKuz87OzsnJueSSSz777LMgCMaPH//jH/84Yq8GqxhXX331smXLDh06VMb75OXlbd26tVmzZilJBQAAANGgACpi6dKlmzZtCufJkyeX3P6EGjZsOGnSpMsuuywIgvXr1y9fvrxdu3blmzKKevToMXPmzLLfZ+jQoVOnTq1Tp07ZbwUAAACR4SHQRSxZsiQcWrRocfHFF5dy1aWXXprYcrJ48eJySQYAAABwshRAReTn54dDu3btSn+SKxaLtW/fPpy3bdtWLskAAAAATpYCqIjCwsJwqFq16gktrFbtX4fpyv4UGwAAAIDUUgAV0ahRo3BYvXr1CS0MHwIdBMFZZ52V4kwAAAAAZaMAKqJNmzbh8MknnyReBn9ceXl5n376adIdAAAAACoJBVAR3bt3r1+/fjgPHz784MGDx11y8ODB4cOHh3ODBg26du1ajvkAAAAATpwCqIhq1ardfvvt4ZyTk9O/f/8tW7aUcP3WrVuvvvrqnJyc8OPtt99+og8PAgAAAChvCqBk9913X+PGjcP57bffbtOmzfDhw19//fW8vLy9e/cGQbB37968vLw33nhjxIgRbdq0mTVrVnhx48aNR40albbcAAAAAMdQLd0BKp0zzjhjxowZvXr1KigoCIJg7969EydOnDhxYvhr7dq19+3b9/VVderUmTFjxhlnnFGhWQEAAABKwQ6gYnTu3PnDDz/s3Lnz138qtv3p1KnT/Pnzi70eAAAAIO0UQMVr167dggULnn322ezs7BIu69at2zPPPLNw4cL27dtXWDYAAACAE+II2DHVqFFjyJAhQ4YM2blz54IFC1atWrV79+69e/dmZGTUrVu3devW3bt3b9CgQbpjAgAAAByHAuj46tevf9VVV1111VXpDgIAAABwMhwBoyTTpk2Lx+PxeHz9+vXpzgIAAACcJAUQAAAAQMR9c4+A3X333Yn5zjvvbNmyZTiXcatLZmZmWZYDJywWS3eCCInH050AAAAoF9/cAujxxx9PzN///vcTBdB5551XltvG/esTAAAAUMk4AgYAAAAQcQogAAAAgIj75h4BGzZsWGI+55xzEvOiRYvSEQcAAACgvHxzC6BJkyYV+31WVlYFJwEAAAAoV46AAQAAAETcN3cH0LGsWLEiCIKaNWuW/oXuhYWFa9asCYKgVq1aTZs2Lb9sAAAAACdBAZSsbdu2QRB07959wYIFpVyyb9++cFW3bt0WLlxYjuEAAAAATpwjYClQp06dWCwWBMHmzZvTnQUAAAAgmQIoBfLy8uLxeBAE+fn56c4CAAAAkOwbfQRs2rRp06ZNK/an5cuXX3nllaW5yf79+3Nzc8O5cePGKQsHAAAAkCLf6AJo9erVs2bNKvangoKCY/1Uguzs7DKHAgAAAEgxR8BSpl69eg888EC6UwAAAAAk+0bvAMrKyho2bFjSl5MnTw6CoGHDhgMHDizlfWKxWIsWLW644QbvgAcAAAAqoW90AdS/f//+/fsnfRkWQM2bN580aVI6QgEAAACkmCNgAAAAABH3jd4BVKwJEyYE3ucFAAAARIgCKNndd999EqueeeaZ/fv3t2jR4oorrkh5JKAk8Xi6EwRBEASxWFnvUEn+IgAAQBQpgFLg8OHDP/3pT3ft2vWd73xHAQQAAABUNp4BlAIzZ87ctWtXEASffvppurMAAAAAJLMDqHjz5s2bPHnysmXLdu/eXfKVhYWFW7ZsCedvfetb5R8NAAAA4MQogIoxbty4+++//yQW3nzzzSkPAwAAAFBGjoAl++CDD06u/bn22msffPDBlOcBAAAAKCM7gJI99thjibl79+59+vTJyMiYO3fu9OnTgyDo2rVruM3n4MGDy5cvf+mll7766qsgCEaNGjVu3Lh0ZQYAAAAoQSzuxcNH+eKLL84555zDhw8HQTBo0KCpU6dWrVo1CIJ4PH755Ze/9957zZs3X716dex/3/e8fPnyyy+/fMuWLVWrVv3LX/7yve99L53pCYKhQ4dOnTr1mWeeueWWW9Kd5VTgzeUp5L9MADh1+d9x4BvAEbAiVq1aFbY/VapUGTduXNj+BEEQi8WGDBkSBMHatWvXr1+fuL5t27Zz586tUaPG4cOHb7311h07dqQjNQAAAEBJFEBFbNq0KRwuvPDCc8899+ifOnXqFA4rV648+vuWLVuGm0127Njxy1/+skJiAgAAAJwABVARmzdvDodzzjkn6afWrVuHw6pVq5J+GjZsWDhMmzbt4MGD5RkQAAAA4IQpgIpIPNynevXqST/VqlXr29/+dvC1HUBBEJx//vnhsGvXrvnz55dzRgAAAIATowAqIqx4giDYunXr139t1apVEARLly5N+r527dqNGzcO5zVr1pRnQAAAAIATpgAqIlEA5eXlFRQUJP0aFkCLFy8OHxR9tPBl8EEQbN++vZwzAgAAAJwYBVARLVu2DE+B7d2797HHHkv6NTzqtW/fvjlz5hz9/bZt2xJtUbNmzSoiKAAAAECpKYCKaNSoUc+ePcP5wQcf/OlPf7p8+fJ4PB5+c/nll4fDI488cvQmoMmTJyfmli1bVlRYAAAAgFJRACUbM2ZMYp4wYUK7du1ycnLCj+3btz/vvPOCIHjnnXeuvfbaN9988/3337///vsTS+rVq9e2bduKTgwAAABQIgVQsl69eo0dO/bobxI7gGKxWKLr+etf/9q3b9+ePXuOGzcuccHo0aMzMjIqMCwAAADA8SmAinH//fe/8sorxe7lGTx48I033ljsqs6dOw8fPrycowEAAACcMAVQMWKx2IABA/Ly8pYvX/7KK6+0bt068VOVKlWef/75hx56qH79+okva9as+eMf/3j27Nk1a9ZMR14AAACAklRLd4DKKxaLnX/++eGbv45WtWrV0aNH/8d//MeqVas2b958xhlndOrUqXbt2mkJCQAAAHBcCqCTdPrpp1944YUXXnhhuoMAAAAAHIcjYAAAAAARpwACAAAAiDhHwIp35MiRTZs2rVixYv369UeOHCn9wh/96EfllwoAAADgJCiAivHxxx/fcccdubm5J7FWAQQAAABUNgqgZB9++GGPHj1OaNcPAAAAQGWmACri8OHDI0aMSGp/ateuXbNmzXRFAgAAACgjBVARS5YsWbx4cTg3aNDgoYceGjBgwFlnnRWLxdIbDAAAgAriXwBTKB5PdwL+RQFUxKpVq8KhatWqM2bM6NatW3rzAAAAAJSd18AXsX79+nDo06eP9gcAAACIBgVQERkZGeHQrl279CYBAAAASBUFUBFNmzYNhy1btqQ3CQAAAECqKICKuOyyy2rVqhUEwbx58w4dOpTuOAAAAAApoAAqonbt2nfffXcQBBs2bPjVr36V7jgAAAAAKaAASvaLX/wifPzz2LFjf/3rXx88eDDdiQAAAADKxGvgk5122mlvvfVW//79582b9//+3/979tlnr7766g4dOjRs2LA0y6+88sryTggAAABwQhRAxdixY0c8Hg/nlStXjh8/vvRrEwsBAAAAKgkFULLVq1d369Zt165d6Q4CAAAAkBqeAZRs8ODB2h8AAAAgSuwAKmLJkiULFy4M59NOO+0nP/nJNddc06JFi9NPPz29wQAAAABOmgKoiNzc3MT817/+tU+fPmkMAwAAQBpUhke7xmIpuEll+ItQaTgCVsS2bdvCoXfv3tofAAAAIBoUQEXUqVMnHDp27JjeJAAAAACpogAqIjMzMxy+/PLLtAYBAAAASBkFUBGXXXZZ/fr1gyCYP39+3GlJAAAAIBIUQEXUrFnz3nvvDYJgxYoVTz75ZLrjAAAAAKSAAijZz372s/79+wdB8O///u8vvviifUAAAADAqc5r4JNVqVLl5ZdfHj58+JQpU37wgx88+eSTAwcO7NChQ8OGDUuz/Pzzzy/vhAAAAAAnRAGULHwOdGLjz7vvvvvuu++WfrkdQwAAAEBlowBK9vnnn6c7AgAAAEAqeQYQAAAAQMTZAZRs+fLl6Y4AAAAAkEoKoGSe4gwAAABEjCNgAAAAABFnB1ARTz/99G9+85twfu+9984555z05gGoULFYuhNEiJdCAgBQmSiAiti2bdvKlSvDeceOHQogAAAAIAIcASuiZcuWiTnRBAEAAACc0hRARfTp06dRo0bhPGvWrPSGAQAAAEgJBVARderUeeKJJ2KxWBAE06ZNW7duXboTAQAAAJSVAijZdddd9+yzz1arVm3//v19+/Z1EAwAAAA41XkIdDEGDx7crl27wYMHL1++/MILLxw4cOC//du/NWnSpEmTJnXr1o2V+JaczMzMiooJAAAAUCoKoGTnn39+OOzfvz8IggMHDvzpT3/605/+VMrlce/9BQAAACoZBVAyZ74AAIBTT4knFTgx/n99osgzgAAAAAAizg6gZIsWLUp3BIA0qQz/Z1dK/t/LyvAXAQCAykQBlCwrKyvdEQAAAABSyREwAAAAgIhTAAEAAABEnCNgxxePxzdt2rRy5cpdu3bt2bMnIyOjfv36zZs3b9GiRcyT9gEAAIBKTwFUktzc3IkTJ86YMWPr1q1f/7VRo0Z9+/YdOXJkly5dKj4bAAAAQCk5Ala87du3X3/99VlZWVOmTCm2/QmC4Isvvpg6dWpWVtaNN964c+fOCk4IAAAAUEp2ABVj48aNPXr02LBhQymvf+mllxYtWjR//vyzzz67XIMBAAAULx5Pd4IgCIKg7E/JqCR/EYgcBVCyAwcO9O3b9+j2p2fPnv369cvMzGzatGmTJk3y8/PXrl27du3a6dOn5+TkhNesW7euX79+CxcurF69epqCAwAAABRPAZTsiSeeyMvLC+f27ds//fTTXbt2PfqCc88996KLLgqC4N57712wYMGtt966YsWKIAgWL1785JNPDh8+vOIzAwAAAJRAAVREPB6fMGFCOF9wwQU5OTn16tUr4frs7OycnJxLLrnks88+C4Jg/PjxP/7xj8v11WBHjhyZM2fOM888k5ubu3HjxiAIvv3tb3fp0uWWW27p3bt3lSpleqjTtGnTPvroo1Je/Oijj5522mll+eMAAACAiqEAKmLp0qWbNm0K58mTJ5fc/oQaNmw4adKkyy67LAiC9evXL1++vF27duUU74svvrjlllvefPPNo79cvnz58uXLp02b1qdPn6lTp5511lknff8pU6bMmTOnlBePHTtWAQQAAACnBG8BK2LJkiXh0KJFi4svvriUqy699NJmzZqF8+LFi8slWRDs2LEjOzs7qf052qxZs7Kzs7dv337Sf8SaNWtOei0AAABQaSmAisjPzw+Hdu3alf4kVywWa9++fThv27atPIIdOXLkxhtvXLduXfixSZMmjz766Lvvvvvuu+8+8sgjTZo0Cb9fv379DTfccOTIkZP4I/bv35/Y/QQAAABEiSNgRRQWFoZD1apVT2hhtWr/+m/y0KFDKc4UBEEQvPbaa++++244d+vWbebMmfXr1w8/9u7d+4c//GHfvn0XLVoUBMHs2bNfe+2173//+yf6R6xduzb+vy9c/PTTT9u2bZui7AAAAECa2QFURKNGjcJh9erVJ7QwfAh0EARleQTPscTj8Yceeiica9eu/dJLLyXan1CDBg1eeumlWrVqhR8ffvjhRJVTeonzX1WqVGnevHnZIgMAAACViAKoiDZt2oTDJ598kngZ/HHl5eV9+umnSXdIoRUrVnz88cfhfMcddySeN3S0zMzMO+64I5w/+uijRCFVeonOq1mzZp7uDAAAAFGiACqie/fuic01w4cPP3jw4HGXHDx4cPjw4eHcoEGDrl27pjzVjBkzEvPQoUOPddktt9ySmGfOnHmif0qiAGrduvWJrgUAAAAqMwVQEdWqVbv99tvDOScnp3///lu2bCnh+q1bt1599dU5OTnhx9tvv/1EHx5UGomn/5x55pkdOnQ41mUXXnhhor1KLCm9xBGwVq1anXhGAAAAoPJSACW77777GjduHM5vv/12mzZthg8f/vrrr+fl5e3duzcIgr179+bl5b3xxhsjRoxo06bNrFmzwosbN248atSo8oi0YsWKcOjWrVsJ7yaLxWLdu3dPWlJ6xe4A2rNnz/Lly/Pz80/uzWIAAABAZeAtYMnOOOOMGTNm9OrVq6CgIAiCvXv3Tpw4ceLEieGvtWvX3rdv39dX1alTZ8aMGWeccUbK8xw4cGD9+vXhfM4555R88dlnnx0O69atO3ToUOLdZMdVWFiY+FNatWq1ZMmSMWPGfPjhh4m32tepU+eKK6647bbb+vbtW0IJBQAAAFRCdgAVo3Pnzh9++GHnzp2//lOx7U+nTp3mz59f7PVlt3HjxsQrvZJe/vV1DRo0CIdDhw5t2rSp9H/Khg0bDh8+HM7jx4/v3Lnzq6++mmh/giAoKCh4+eWX+/Xr17t3761bt57AXwAAAABINzuAiteuXbsFCxa8+OKL//Vf/7VgwYJjXdatW7fhw4ffdNNNNWrUKKckX375ZWKuV69eyRcf3RAdvfC4jn7t/XvvvVfClXPmzOnateu8efMyMzNLf//jKiwsXLBgwYEDB8p4H+UUAAAAfJ0C6Jhq1KgxZMiQIUOG7Ny5c8GCBatWrdq9e/fevXszMjLq1q3bunXr7t27J3bclJ+vvvoqMR93B9DRFxS7WelYji6AgiBo06bNPffcc8UVVzRq1Gjz5s1Lly59++23p0yZUlhYGATB5s2br7vuuvnz56fwbfEPPvjguHHjUnW3vLy8VN0KAAAAIkABdHz169e/6qqrrrrq/7N33/FRVfn/x8+ETkKkBAg1oYUuQgiJS5GigIgiSJEOijR3QdEVRVSsqMgClnVBUBEQQV2QVYhAICAsEgJIDxBMqKEEQicJyczvj/vd+7tMJsNk5s5t83o+fPg4Sc7MfO5lyr3vOfecHro8ujIAKl++vPvOyg5FCoDkJcCEEAMHDpw/f37ZsmWlH+vXr1+/fv0+ffqMGjXqkUceka4L27lz59dffz1mzBjPH8K9Ll26JCcnyxe7ee3AgQMZGRl3nSwJAAAAAICAEqAB0IYNG6Q5nh977LGgoDsmQlq5cqUQokKFCg888IA+xd1JOZFzbm6u+863bt2S207b5V7VqlV79eolhIiIiJg5c6bL2aOjo6O/++67Tp06ST/OmDFj9OjRak0I3aVLly5duvh+PyNGjFi4cOFdr5UDAAAAACCgBGgANHz4cGmO5NzcXKegpHfv3kKI2NhYN1P/aCk4OFhuZ2Vlue+s7KC84V1NnjzZk24dO3bs0aPH6tWrhRDHjh1LTU1t0KCB548CAAAAAAB0EaCrgF24cEFqGH/OYGWOc+nSJfedlQFQSEiIP+rp1q2b3DZIRgYAAAAAANwL0AAoIiJCarz22mvZ2dn6FuNeWFiY3C7SCKC7zhjtnYYNG8rt8+fP++MhAAAAAACAugL0ErDWrVsfOXJECPHNN98sX768Zs2axYoVU3b4448/GjVq5MU9p6SkqFPi/1SpUiU0NFSascjzEUDlypWrWrWqupVIlNd8FWmeaQAAAAAAoJcADYDefvvtlStXSgtsZWdnOy2CLoTIyck5fPiwHqU5s9lsUVFRycnJQoijR4+67yx3aNSokVrTMzu5cuWK3FaOTgIAAAAAAIYVoAFQ3bp1f/nll7Fjxxok5XEvOjpaCoB27dqVk5NTqlQpl91ycnJ2794ttVu2bOn5/cfHxycmJgohgoKCpk2bVrJkSTedlXusRo0anj8KAAAAAADQS4AGQEKIjh077t27Nykp6fDhw8qpoF977TUhRI0aNcaOHatfdXfo0aPH3LlzhRC5ubnr1q3r2bOny24JCQnyOvGF9XHpxo0bH3zwgdRu3bp1nz593HTes2eP1LDZbO3bt/f8UQAAAAAAgF5sDodD7xqMRbpyyjjLwAshrl+/XrlyZWmy6scee+ynn35y2a1Pnz4rVqwQQpQpUyYzM7Ns2bIe3n9WVlZ4eLgUHnXu3Hn9+vWFXT527dq1evXqSWuotWvX7rfffvNic/xqxIgRCxcu/Prrr4cPH653LWbg+3WCvIHI2JlqUeXyVXYmAKBI+BxXETtTLRwUQW0BugqYuYSEhIwZM0Zqr1q1av369QX7JCQkSOmPEGLcuHEF05+0tLTE/zl06JDyTxUqVBgwYIDU3rBhw/Tp012Wcfv27ZEjR0rpjxDi5Zdf9naDAAAAAACApgiAnK1Zs2bNmjWzZs3Su5A7TJ48uUyZMlK7f//+W7ZsUf41MTGxb9++Ujs4OPill14qeA8LFizo9D/vvvuu01+nTJkiT/0zderUMWPGKC+Ly8vL27p1a+fOnX/88UfpN927d+/Ro4caWwYAAAAAAPwucOcAKkz37t31LsGFatWqLViwYNCgQUKIrKys9u3bd+3atVWrVvn5+UlJSZs2bZJ7fvXVV14sAN+oUaP3339/0qRJQgiHwzFv3rwFCxbUqVMnMjLy/PnzKSkp8uxCQoh69eotXrzYT6uMAQAAAAAA1REAmcbAgQNPnz49efJku90uhFi7du3atWuVHYoXLz5z5sx+/fp5d//PP/98dnb21KlTpfvPz89PTU1NTU116tauXbt///vflSpV8u5RAAAAAACA9giAXLPb7ceOHdu5c+exY8eKNE/21KlT/VfViy++eP/990+ePHnr1q1Of+rQocOHH34YGxvry/2/8sornTt3fvPNN+Pj4wtuddOmTV9++eWBAwcWK1bMl0cBAAAAAAAaYxUwF86cOTN48ODExEQvbqvN/kxNTU1OTj59+rQQombNmm3atKlTp46K95+VlZWampqWlpaenl6iRInw8PDY2Ni6deuq+BB+wipgRcMaDSpiZ6qFBS9QEBcdq4WXBlAYPsdVxM5UCwdFUBsjgJxlZGTcd9998lpXxlS/fv369ev77/4rVKgQExMTExPjv4cAAAAAAACaIQByNm3aNKf0JyIionTp0nrVAwAAAAAA4CMCoDucPXt2/vz5UjskJGTGjBlDhgwJCQnRtyoAAAAAAABfEADd4cCBA9IaWEKI77777pFHHtG3HgAAAAAAAN8F6V2AsRw9elRqxMXFkf4AAAAAAABrYATQHa5evSo1WrZsqW8lAADg/xhhBRMWtQEAACbHCKA71KhRQ2qUL19e30oAAAAAAADUQgB0h3vvvVdqyNeCAQAAAAAAmB0B0B2aN28eGxsrhFizZs3Fixf1LgcAAAAAAEAFBEDOPvroo+LFi9+4cePZZ5+VVwQDAAAAAAAwLwIgZ+3atZs7d67NZlu2bFnv3r2PHDmid0UAAAAAAAA+YRUwF5566qmIiIjBgwevWrXql19+GTRoUFxcXIMGDSIjI0uUKOH+tpGRkZrUCAAAAAAA4CkCIGdygpObmyuEyM/PX7Ro0aJFizy8uYNFXgEAAAAAgMEQADk7fvy43iUAAADA2Gw2vSuwEL5ABQBNMAcQAAAAAACAxTECyNmOHTv0LgEAAAAAAEBNBEDOWrdurXcJAAAAAAAAauISMAAAAAAAAItjBBAAAABQREaYt9j3iaiNsBUAAK0wAggAAAAAAMDiCIAAAAAAAAAsLkAvAevevbuf7jk+Pt5P9wwAAAAAAOCdAA2Afv31V71LAAAAAAAA0AiXgAEAAAAAAFgcARAAAAAAAIDFBeglYA7WvAQAAAAAAAGDEUAAAAAAAAAWRwAEAAAAAABgcQRAAAAAAAAAFkcABAAAAAAAYHEEQAAAAAAAABZHAAQAAAAAAGBxBEAAAAAAAAAWRwAEAAAAAABgcQRAAAAAAAAAFldc7wIAALAim03vCizE4dC7AgAAANNjBBAAAAAAAIDFEQABAAAAAABYHJeAAQDgB0a4asn3y9CMsBUAAABQAyOAAAAAAAAALI4RQAAAAAACGwMeAQQARgABAAAAAABYHCOAAAAAAAQ0m/B15i3P2wAAIABJREFU0jSHYAwRAKNjBBAAAACAwOV7+qPWnQCAXxEAAQAAAAhQKgY3ZEAADI4ACAAAAEAgUj2yIQMCYGTMAQQAAAAAgMGwOB3UxgggAAAAAAHHT6N1GAQEwLAIgAAAAAAEFr/GNGRAAIyJS8AAAAAAQE02YWNhePhCxRiRpyJkjAACAAAAEEAYoQODU/cpyhMeMkYAAQCMhPkOAQD+pNnJMIOA4B1/PEV5NkLCCCAAAAAAAUHjoRCMvECR2ITNf88Zv945zIIRQAAAAADgF4E48oLBvF7RJp0JxCckFAiAAABGwXyHAAD/YfgDDEvLJycZUCAjAAIANfBll29UP+6R7pDjG+AONs5+1cPbvtnomP4E+Pm2J288gfx60uWZyWFSwCIAAgDoya/HPRzfAACEAcb+WCYD8lOM7MXdWiMz0veZaZmnJTxHAAQARfSthh/Vg6z8qazlOiyCGAgQhjlh8v0M0iAbAliUKQYLFlakWd4eVDkKcgiHj/fDMVKgIQACAAUtwx1PeFKPCUMiRjsDADTj+4eO9Nnh+5m2MT+DTBH3eK7g5hgwElLrOSms/uSE6giAAAQkowU9vnC5LUZNhVQ54vHlToiB4CUDnkAA8IC6Z9qWOc32R+jjj7dJVep0uhPd385VfE4qf2OZJyf8igAIQGBQMfHRLFvxpeaCt9U7EjLUl13EQAAAXeh4mq1KmKJxelLYw/myLfJttU+C/BH9KP/E5WC4KwIgABble+Kjd2LirgAvtk55E203zU+HO8RAAAKd7iMZDE/1DyDfz7G152PuY8xnWcGqvNhMjZMgv6Y/yg4MBYIbBEAArMXr3Ef3uKdInKot6lbL/f281WpNcOj+r3zfBb9S92SPZxqgGf99/WCWE2yvox9jhj7uKWsu6oZrkARpkP4oe5rlKQrtEQABAcyMH+9ueBf9mCv3KYxyK4q0H/yZBGl2rMP3XfATf3zPT+AIaMP419r49X3Au+jHMgeG0oZ4NyZI9Z2gZfTjdBNGSaMgAiAAluBF+mON6KcgA2wXxzowO39f4sGTDZ7Ta4Umy2QBhuW/DMiL54wl/7mNsFG6HBEpb2vwpBLaIwACYH5FTX8MEJFYlb4HOoIYCD7TcnYPnmyQGHMR7rtWZYSz68JoM9mKMScDIv0xDt0PigQZEAogAAIClFpHLfp/JFhpQXczM8JRjtNdEQOhSPQ6l+PJFjiMGfR4zeXmGCFK0PICZAucWhvhn8x6OCiCYQXpXQAArdmETcXzHHXvzRteDOchM1KVWs8B6X5U/M84mwaD8/0f2iEcPh4Z82SzJKd3JR85HFr8Z6hN9qYAbV9Hvp8Sq1uwxUJGkzJU+qPiffIhZQ2MAAICiP/euHX+ZmCQw5tlsDS+EMzgqZNXeyNADgVM/MUXX+zejbqH6XzLCqHGGbi+L1w3j+7LMtvu79lQTP0CdDi8WQDLLP80xqfWcZFhj6/4kLIAAiAgIGjzQaLnp4KUXxhmASzLM+yhif9w0GMx/vuGlhgoMAXCettOpQb4StvKmxjqQjAyIL0EzqGRES5dhNcIgACL0/7TyGQxkFN//4VB/rtnbccWGXNgc5FwZh7gtHkOEwMFjoBdb1u5CUXaCX5KgnT8eCIDQuCkPxIyIPMiAAIsS9+PIv1jIIkvYVDBe9OdrteRWSD6kQTCmbnqL38jb6yHVNknRd0PgfBkC2QBG/0UpPtGWeD02wgZkHxbC9Ds5anLh4sqfE8tBR9PJkQABFiQuifq5j518SUM8vBWKiZERp0nyDLRj5Ilz8wtO8+Xb3R/AlvyyQYW27YY31/mRguhpOebLzM3me4Z68sMXN5trO6fL74/tKEGr0EDBECApfjjc8g6py4FkxpVAhejpjaqMO/3Wh5SZdy+0HsbNTvrkB/IyP+mSoY6NFfrvVSYZ/8D2jDIK91oF4JJ5FzDxzm8hVHzIB+nXfdlowzyxPO9BgM+b+E/BECARfj7Q8g6MZCSm8E7Bo91nCr3Q7WWj35kan0DJjTfXh2/bTZ+EmHtpViM+HYK6MRQJ+FGPpf2JQlyc0MtUyEVF7n3sWxDPet8Z82DfBSCAAgwPS0/hALoG2wvLuzyOoUx1DRDQgjLHdl4wlwDoVX/B/L6Dg34ijZmZOMPHHDri3l24Sf+/ijxcTU3JyqGMv6m1qvPqsdIRo4voSICIMDE9PoEMu+ICf/SMcdR76GteljjIYN/CWb8lcvdPIQGAif6UTLle6lVUhCv59m1yg7QnwE/sww4GZB76uZBhuKPF5oBn3IqIgMKBARAgCkZ4eOHGMiS+LcQxtsJmr3e5W6GjcDcP6gvjPCPbrrdDuHtPLvmnWTXiddhgSobbtgXvqnPol3+0xg8FdLmdWTY55u6DP5NGHxHAASYjNE+foiBhHrjDsy7B+APOk7D5HsSpNmAIKO9JfqCw27z8np2FVNMsutE+4WWXJehxjukkYfqGGokhSf/cP4LiYzwurDSZ40nTB1iwj0CIMA0rD2nqTDhqYvqe9IIF9HoyzjzO+rLOAeaRk6CjLOX1GXVGMhPHz1G20zlO4/viy4VvE+NqfWebOo3ZHjIqv/KgbMmhhMyIKsiAAJMwLCRjT8Y89RFSYN/DoslQboMHff8QY1zzKriU8uAbxoqPqutGv0oWSMG0vLdUui9sQWpNbWKFzfU/Soef7+vGvAtzh84f9ZdIHzcuGGNTyI4IQACDM3UHzwW+8DQ5XDTgPvBDYPPEVCYwsrWLBgKkDMZmS/PalO/JXrBjAffqvwbeXcnRg6DhKu3FP+9Z2r8bqxxjB5Q75mmz4CKtECq8RZFNffOVwk7wWIIgAAjssZwUzOeuhRWgy+MfBGNL7Q5wfD8vEL1egreobonOdbIMjR7Vltjd3nH+O+lqv/rKH+0ZBgkcfOWYrQ83ZIjJc3CEBlQkXIcXR7FeOERYEwEQICxWCP6UTL+qYv7x/VFYac05k2CjDwfhIf36csmKG/ryyZYKcvQ7FltnE3Wi9H2gPaL03n9oKYIg5wYJ3BBANEm5fETN8WTDQEKBECAUVgv+lEyUQykwVmN6ZIgg6z5ogq1psbwYhVnK+U+Ban1GhfG3swAp/vnVGCGQZAF4PAfifqDgFTPevwasvhYbcGbGyYSMshYP6MdqsGvCIAA/el+SK0ZI8dAupycGzwJ8vq4xHRHEr4s3HPXJMjauY8T35/SQsO01wtqTcdrLuqedRvnHJ4wyFzM/l6q/4JKPsYoOoYm7h/ai+1yuok/N80gEY977ou0wKcYlAiAAD0FTvSjZKgYyCAHlEYbPeHd8Yo1DhHkrfAuCfr/NzfGU0svBgw39ToKN/KFk24YJ6bRhhnDIBX/jcyyyQHOmwzI69DHMGNk7q5gqUXdarm/b1ttiqzHCy63yxqHfIGJAAjQR2BGP0r6xkDGPDk3wuiJQI5+nPi4UaZ+eapI0/Wn/HDw7Y/ntnd1avANrTHfGL1mnPBRRX4K5oy8yRILPDm9Xt7OS95FPybKfdzQaitU/NDR5ThKrVkRhUWPA62KAAjQh+4HIgah8X5Q8djL4F+Pa3Y0z0c+9GLeqan8sbad14vWWeC8ujBWmjBIs08cYyZBlnmW+p4BeTQIyIvoxxq5jyZ8DH0MddRU6KXrmkyMCL0QAAEICGY/fNTmq2yrjl62Nh3/1bS+KCnwhqcVLN67SMjpfsz+fugFk4ZBOn7TEIDhlzY0yoCKhPTHM4HzGeT8kVGUDScJMj4CICCA+PtE0YDv9ZY5zzHgjCrwB3NlcJrNiByYUy+7pMp2BfibgPE330+fXAH78WHSsmEQgZP7FMZK2wJBAASYi8FPDo0zLNYyuU9Bfk2CHA5vZj7myKCofH8hG22f+3KlkkzFjTLa/gE84e9PLjN+kWDJT3PDDQL61sYgoMLw9QOshwAIMBbrnRlKPNku36c4teSRYmH8tHCYdxmQMOoTzyAs//2h+1I93Hw3M0oW9WnJc9L4zDuFk+q0/+QySxJk4c90/2ZAUppTpJmAVFoGy5tHNKZBDkH6A4siAAJ0FiCfLr6fH7qZ4tTCx4h35Y+Fw6QdG+AxkCqRTYC8uu9KnauWiv60dDMJjkl5HZr4svkGHHlqluXe3DDISqBGToIsNvVPQX4fB+RFDCQ0TIL8ev8GT5cAXREAwZndbk9MTPz666937tx58uRJIUTNmjWjo6OHDx/euXPnoKAgvQu0CM4MlVhv23eq7wRfYiDlPZiIukMSinpvpttduvA6YnPZ08j7XLMragNqJI6bjb3rflBlY9UNNQwVkRhwniDjVKInZc7i3Zggl3dlKH6Le7wYEw0YHwEQ7nD+/Pnhw4fHx8crf3no0KFDhw4tXry4W7duCxcurFq1ql7lAdDY/x9m5cOaoE53ZRx+veKSq5Y04HJ3qTIhkXcPreL9e66oz5lA/vpBrw0xVFLjb6osHxYgA3u1ngzI6zDIw5v4LyHSb0QPH+WwHgIg/H8XL16Mi4tLS0srrMOvv/4aFxe3Y8eOsLAwLQuzJC/Oq009tsINk06P4tdTO923riBlSd5tuzaz/xbpcb3jebVe7DQ3lzqakS6XLGkTzRgz3LmrQE5/tGeZFEPjC8Qss988oduE0C7DGh9zFoteeOX13IjCQu+funyaw08IgPB/7Hb7gAED5PSnRo0aEyZMaN26tRBix44dn3zyyenTp4UQ6enp/fv3X79+PdeCqcW7K0d8ny9ZY0ae3NqA43sN/kHr+0w3Tgz4T6Ck4hQ2Sl5HQne9Z82o9Q+n/SYY8E1SG3z3oOSnrx+sl18YeaogCBUXBXMzhMfg4Y5T5WpX6/VoaFO/fwbUBcIBhQAI/2fVqlUJCQlSu02bNmvWrKlYsaL0Y+fOnUeNGvXwww/v2LFDCLFx48ZVq1Y9/vjjutVqdf6YL9n4zDIGROuJQn041HDiv8p9vAzHULT891Vl5awi9dQLB4IGVNg/ivunk+dPtgDMJa2X+xSkQRIUCLvRie+DgLTg++Vd7kMZw04wdCeui3fPgBuFggiAIIQQDofj7bffltrBwcHLly+X0x9JpUqVli9f3rRp05s3bwoh3n333V69etmMf9phRerMQ6nqP53R3u6t9JWFihezaHxtkVrphuqM9k9cGN/rNO/wHOhIrRmFDHiA4KdncgAGFsJvSVBg7kyh44VgWtIy4vH/Y/k+FFr74b0WWD8RqiAAghBCpKSk7Nq1S2qPHj06IiKiYJ/IyMjRo0fPnj1bCJGcnHz06NGoqChNq4R6rPd+bdKJhFRhxq0wY82mw052weBXMbhh1K/HeZoZ/azbz1Tc/IBNfyQBkQFZl+qXxqt1J6rjPd8CCIAghBCrV6+W2yNGjCis2/Dhw6UASAixZs0aAiAYBOttAwFNlVjHCAmLmw3xfBuNsCEA9KB7BuSPa9nMmGq5Oc40ZqzjhONkayMAghBCyLP/hIWFNW/evLBuLVq0qFix4qVLl6SbTJw4UaP64AmzfLPNyQngHV7jwtudYJa3HU/qvOsecNnBLHsA3vH6zcEwT4wAH/4jMcdkQP+jWakuH8i8/9weZitcrgX/IQCCEEKkpKRIjTZt2riZ2cdms8XGxq5Zs0Z5E6jMx3M8wxzMuSBtmh+OU4u6Qqf1lufUjWaRhBGWJlHrxWXh17gQ4lubTxtY2NYV9T4Nvpd8oc2mqfuy0qBm1d8HDPJ6V3JTkj/2sDaV/495z+fVZdj94O+Erqj3X7C/YXeddzhAhf8QAEHk5OSkp6dL7erVq7vvXK1aNamRlpaWl5dXvDhPIW95cWhl9lMaf9av/KT0evkk837cqr9svInGWfjvQZ12gof7RFkPL3O9fGszSiXGZKIXuId0rM2qL3NTFAk/0GU0VsGb+B4JeVcJYHmcvUOcPHnS8b+zQKfFvwqqVKmS1MjLyzt16lRkZKRfa7OyQY4iHzVySuMZr6fi035FBg9pt5yTVc9kvGPhTTMdp38LT56oFrsSyvfhGPK2M5xKLbxhwvz8cSWXcS5kM9BAIbNcxO2EtywrIgCCuHbtmtyuUKGC+87KhEh5Qx/Z7fZ9+/bl5eX5eD8XL15UpR6NuHxXdf8J4cnnhzHfrP3xyefZlqq4Hrn1p+5T/TlpzGejS2o9RZWb7MUFTbzGlQrbUq8vCfTH5WmeM8gJQFFf5uZ9Tir546K2gHqBy0x3eSD+x5ITLfl3oJCKIS9PdRgGARDEzZs35fZdRwApO9y4cUOtGt5888233npLrXs7fPiwWnelA8ucYxTkxXf4/udFXKJlDGSIq9Is/JyUKM/ltCnVx11q2P1phNe41/vWu8mV1aXjXFdWfU5KBjm8HwDl3cP5wvg7U2bwUgObJeOeglwWqdqMQv77QAkcJF/GQwCEOwKg8uXLu++s7KBiABQbGxsTE2O32328nytXrmRmZvbs2VOVqszKLG+1ZqmzAEOEMuZion9rU5RqiiKFeeqUGLxaylOL8Us1foUyE5UaeEwR3/iJ/tvOSwMGRgAEoZzIOTc3133nW7duye2goCC1aujRo0ePHj3UujcAAAAAAKCk2gk8zCs4OFhuZ2Vlue+s7KC8IQAAAAAAMCwCINyR41y6dMl9Z2UAFBIS4q+aAAAAAACAegiAIMLCwuR2kUYA3XXGaAAAAAAAYAQEQBBVqlQJDQ2V2p6PACpXrlzVqlX9WxkAAAAAAFADARCEzWaLioqS2kePHnXfWe7QqFEjm5arYQMAAAAAAG8RAEEIIaKjo6XGrl27cnJyCuuWk5Oze/duqd2yZUstKgMAAAAAAD4jAIIQQshLsOfm5q5bt66wbgkJCfI68T179tSiMgAAAAAA4DMCIAghROfOnUuXLi21v/jii8K6zZ8/X2qUKVOmS5cuWlQGAAAAAAB8RgAEIYQICQkZM2aM1F61atX69esL9klISFixYoXUHjduXNmyZbWrDwAAAAAA+MDmcDj0rgGGkJGRUa9evVu3bgkhKlSosGrVqnbt2sl/TUxM7N279+XLl4UQwcHBx44dYwkwAAAAAADMggAI/9/SpUsHDRok/9i1a9dWrVrl5+cnJSVt2rRJ/v3y5cv79eunR4EAAAAAAMAbBEC4w0cffTR58mS73e7yr8WLF585c+aECRM0rgoAAAAAAPiCOYBwhxdffHHz5s1t27Yt+KcOHTps2bKF9AcAAAAAANNhBBBcS01NTU5OPn36tBCiZs2abdq0qVOnjt5FAQAAAAAAbxAAAQAAAAAAWByXgAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMUV17sAAAa1evXqLVu2REZG6l2IFRw5cqRy5coVKlTQuxDTu3379qFDhxo3blyiRAm9azG9rKys8+fPN2zYUO9CrCA9Pb1UqVLVqlXTuxDTczgc+/fvr1evXtmyZfWuxfRu3Ljx559/NmvWzGaz6V2L6WVkZOTk5HBQpIqUlJSqVatyUOS727dvHz9+fMqUKeXLl9e7FpiGzeFw6F0DACMqWbLk7du39a4CAAAAgGt9+/b9/vvv9a4CpsEIIACulSlT5vbt28OGDStdurTetZjbhQsXVqxYUbly5d69e+tdi+nt2rUrOTm5VatWrVu31rsW01u5cuX58+cff/zxKlWq6F2LueXk5CxcuLBUqVLDhw/XuxbTO3r06MaNGxs0aNCpUye9azG9DRs2pKamdu7cuX79+nrXYnoLFy7MyckZPnx4qVKl9K7F3M6dO/fTTz9VrVq1V69eetdiesnJybt27YqIiNC7EJgJARAA16RDnI8++qhy5cp612JuO3bsWLFiRWRk5Ny5c/WuxfTeeuut5OTknj17vvnmm3rXYnp79+49f/785MmT4+Li9K7F3C5durRw4cLg4GBe475bvHjxxo0bY2Nj2Zm+Gzx4cGpq6tNPPz1o0CC9azG977//PicnZ9asWVy45KNt27b99NNPdevW5TXuu9dff33Xrl333HOP3oXATJgEGgAAAAAAwOIIgAAAAAAAACyOAAgAAAAAAMDiCIAAAAAAAAAsjgAIAAAAAADA4giAAAAAAAAALI4ACAAAAAAAwOIIgAAAAAAAACyOAAgAAAAAAMDiCIAAAAAAAAAsjgAIAAAAAADA4giAAAAAAAAALI4ACAAAAAAAwOIIgAAAAAAAACyOAAgAAAAAAMDiCIAAAAAAAAAsjgAIAAAAAADA4giAAAAAAAAALI4ACAAAAAAAwOIIgAAAAAAAACyOAAgAAAAAAMDiCIAAuFa8eHH5//AFe1JF0m4sVqyY3oVYAc9MtbAnVcTOVBE7U0XsTLWwJ1UkHQ6xM1EkxaZNm6Z3DQCMqFq1avfff3+XLl30LsT0Kleu7HA4hg0bVr9+fb1rMb2IiAiHwzFmzJjy5cvrXYvp1axZMyIi4sknnwwK4tsgn5QqVSo0NLRPnz733nuv3rWYXq1atXJyckaPHl2tWjW9azG9iIiI4ODgUaNGlSpVSu9aTC88PLx9+/YPPPCA3oWYXpUqVex2+7Bhw+rVq6d3LaYXGRkphBg7duw999yjdy0wDZvD4dC7BgAAAAAAAPgRX/oBAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxRXXuwAAxjVx4sSFCxfWrl177969etdiPjdv3lyyZMn69et37tyZmZl58+bNsLCwunXrPvjgg4MHD27QoIHeBZrJzp07ly5dunnz5hMnTly6dKl06dKVKlWKjo5+8MEHhwwZEhISoneB5rZixYqRI0cKIUaOHDlr1iy9yzGBxYsXJycne9j5gw8+KFWqlF/rsYbs7OxVq1YtWbLk8OHDJ0+eLFasWK1atTp27Dh69OgWLVroXZ1xnTt3bvr06V7csFatWi+88ILq9ViJ9Dm+Zs2anTt3XrhwQQhRuXLl6Ojo7t27DxkypGzZsnoXaCYXL15ctGhRfHz8oUOHzp07V7Zs2WrVqkVHRw8YMKBbt27Fi3NO6poXh+J2uz0xMfHrr7/euXPnyZMnhRA1a9aMjo4ePnx4586dg4IY/xHwHADgSm5ubqVKlYQQERERetdiPkuWLAkLCyvsjTcoKOipp566evWq3mWawMWLF3v16uXmU+yee+758ssv7Xa73pWa1enTp6VXuhBizJgxepdjDh07dvT8QOvatWt612sCmzdvrlWrVmH7cMyYMTdv3tS7RoM6dOiQ589GpejoaL1rN7TvvvvOzed4pUqVvv32W71rNIf8/PwPPvigXLlyhe3MNm3aHDhwQO8yjciLQ/Fz58517969sF3drVu3s2fP+rNkmAARIADX4uPjL168qHcVpvT+++8PHjw4MzOzsA52u/3LL7+MiYnJyMjQsjDTuXTpUlxc3E8//eSmz5UrV5566qk33nhDs6qsxG63jxgxgld6UR07dkzvEixl4cKFHTt2lL6pdmnu3Ll9+/bNy8vTsioEsnfffffJJ5908zl+8eLFQYMGvf3221pWZUa5ubl9+/adPHnytWvXCuuTlJQUFxe3Z88eLQszhaIeil+8eDEuLi4+Pr6wDr/++mtcXJybJzYCAQEQABcyMzOfffZZvaswpXXr1k2ZMkX+sW3btv/4xz/Wrl27Y8eOL7/8cujQofKfDh8+/Nhjj+Xm5upRpjk89dRTR48eldqlS5f++9//vmzZsp07d27YsOGzzz6799575Z5vv/22myMeFGbOnDnr1q3TuwqTyc7OPnXqlN5VWMfWrVufeeYZu90uhLDZbE888cTSpUu3bt26bNmyMWPGyFcrrF69+oMPPtC1UqupXr263iUY1H/+85+pU6fKP8bFxX388cdr165dt27dJ598cv/998t/ev3113/++Wc9ajSNCRMmrFixQv5x0KBB8+fP37Fjxy+//PLWW2/VrVtX+v21a9d69Ohx6dIlnco0oqIeitvt9gEDBqSlpUk/1qhR44MPPkhISEhISHj//fdr1Kgh/T49Pb1///7SWy4ClN5DkAAYi91u37hxY2xsrPwuwSVgnrPb7ffdd5+866ZNm1bw0qTffvutdu3acp/Zs2frUqrxJSUlyXupUaNGR48edepw+/btl156Se7D5QxFtWfPnpIlSyoPCbgEzBMHDhyQ99jBgwf1LsfccnNz69SpI+3MkJCQ1atXO3VISkqSZ1opU6bMlStXdKnTMpKSkooVKyaECA0NTUtL07scI7Lb7cpJ+ubMmeP0OW632z/++GO5Q4MGDbgGuTAbN26Ud1TVqlV//fVXpw7Xrl17+umn5T4vvfSSLnUajXeH4sqgrU2bNhcvXlT+NTMzMyYmRu6wYsUKf1UPwyMAAuBwOByJiYlz5swZPXp0s2bNnGJiAiDPbd68Wd5vrVu3LuygcMuWLTabTepWq1Ytjh1dGjdunLwz165d67LP7du3W7duLXc7fvy4xkWa182bN5s2ber0YicA8sSqVauk3RUUFJSdna13OeY2b948+em3dOlSl32+/PJLuc/y5cs1rtBKbt682ahRI2lPMn9NYZTfPQwcOLCwbgMGDJC7JSUlaVmhiXTq1EneSwXV/RRGAAAgAElEQVTjXYndbu/SpYvUp3Tp0k6xRUDx5VDcbre3atVK6hwcHJyenl6wT1pampynuzlGheVxCRgAIYR44oknJk6cOG/evP379+tdi4mtXbtWbk+fPl1OeZy0bdt2xIgRUvvkyZNc9+5SYmKi1GjduvVDDz3ksk/x4sUHDRok/8ie9NzLL78sjWRp3rx5aGio3uWYSWpqqtSIiIhgeS9fOByODz/8UGp37NjxySefdNltyJAh8jzl//nPfzQqzopeeeWVlJQUIcTQoUMHDhyodzkGpVzgb/DgwYV1U/5p586d/q3JnC5evLhp0yap/fjjjz/88MMuu9lsts8//1xaBSw7O/uXX37RrkSD8eVQPCUlZdeuXVJ79OjRERERBftERkaOHj1aaicnJ8uX2CPQEAABgGq2bNkiNUJDQ+VvtFzq0KGD3D58+LB/yzIhu90u75aCX4UpKf/KvIYeio+Ply5hKFWq1JIlS0qUKKF3RWYiB0BRUVH6VmJ2Bw8elHfmc889V1i3EiVKzJs3b/r06dOnT2/btq1W1VnNhg0b5syZI4SoU6fOp59+qnc5xiUt9y5p0qRJYd2UIyiVN4Fsy5Yt8kQzbtalEkI0aNCgefPmUnvlypV+r8yKVq9eLbflrxgLGj58uNxes2aNX0uCYRXXuwAAhjBr1qycnBzlb+bPn799+3a96jGpEydOSI0mTZoUNvxHojx2zMrK8m9ZJnTp0iX5wLF+/fpuet68eVNuV65c2b9lWcKFCxfko8P3339fPuyGh+QlwJQThcAL8sV0pUuX7tq1q5ueffr00aQiy7py5Yr0qi9WrNiSJUsY9OeGPNxMCHH8+HF5jion8se9EMLNavGB7MyZM3L7rh80zZs33717t7hzBFag8eVQPCEhQWqEhYW52dstWrSoWLGiNNl2QkLCxIkTfagXZkUABEAIIZSrU0kSExMJgIrq3LlzUqPg7CqF9RRCuBypG+AqVqwoLxnr/iob5Ujphg0b+rcs83M4HE8//bT09HvwwQcnTJigd0Xm43IE0JUrV86cORMWFlapUiV54Sq4t3XrVqkRExNTpkwZfYuxtueee+7kyZNCiIkTJyoXsUJByvUl16xZ07FjR5fdlOtOEqO7dPXqVbl91xd4lSpVpMaJEydu3LgRHBzsx8qMypdDcenqTiFEmzZt3HwBabPZYmNjpbE/8k0QaDhGAQDVnDp1KisrKysr65NPPnHfU74wXnAhiStBQUEh/+PmAqX09HT5WoYuXbowIuOu5s6dK82iUqFCha+//pqooqhu376dnp4utRs0aLBnz57evXuHh4eXL1++SZMmVapUqVChQt++faXpTnWt1ATk049atWopf3/9+vUjR46kp6ffunVLj7qsZufOnV9//bUQIjQ0dMqUKXqXY3Tt2rWTV/OcOXOmPBud0qZNmz766COp3aJFC65MdEk5luqu080oV1dkbpqiysnJkT+Yqlev7r5ztWrVpEZaWlpeXp5fC4MxceQHAKop/z/uv+y6cOHCv/71L6ndqFGjwkaYw4nD4bhx48apU6f27du3cuXKwYMHN2vW7OzZs0KIsLAwaXoLuJGSkjJp0iSpPW/evBo1auhbjxmdOHEiPz9fas+YMaNly5YrV65UDui7evXqjz/++Mgjj3Tu3DkjI0OnMk0gOzs7LS1NaoeHhwshLl269MYbb0RFRZUrV65hw4Z16tQJDg7+y1/+8vHHH2dnZ+tarLm98sorUuOll15SnpPDJZvNtmzZMumqrvz8/C5duowfP37r1q2ZmZmZmZlbt24dP358586dpfeBSpUqLVu2zP0V3wGrXr16cvuPP/5w0zM3N1c5kfbly5f9WJYVnTx5Uv7KoWLFiu47y28CeXl5p06d8m9lMCQuAQMATd26dat3797Xr1+XfpwyZQqjMDx0+PDhxo0bF/x9XFzc/Pnz73rZXYDLzc0dPHiwNKRixIgRffv21bsiU5Kv/xJCbNiwwU3PxMTEmJiYLVu2REZG+r0sEzpz5ow8z1d4eHhCQsLQoUOdIjOHw7Ft27Zt27b94x//+P7772NiYvSo1NwSEhLWrVsnhKhatSrzfXgoKipq06ZNAwYM2L9/v91u//zzzz///POC3Vq0aPHtt99y6XFh/vKXv5QtW1aap+/TTz+dMGGCFPUW9M4775w/f17+UT5AgofkS+aFEBUqVHDfWZkQKW+IwMFZBwBo58SJE127dpVnvmjdujVr8fqoUaNG33zzDenPXb3++uvSGrF16tRhtJTXlAGQEKJhw4ZffPFFenr6zZs3jx49+uOPP44dO1a+aPH06dN9+/Z1mtQTEuU5Xmpqas+ePd0MmDp+/HiHDh02b96sSWnW4XA4Xn75Zan9+uuvh4SE6FuPiTRp0mTlypX33HNPYR3CwsJWrVrlZpkwlCpVauTIkVL72rVrTz/9dMGhPQ6HY+nSpe+9957ylwRARaVcDeOuI4CUHW7cuOGvmmBgBEAAoIX8/Px58+a1aNFCXiq+fv36v/zyS/HijMT0SUpKSuPGjceOHXv79m29azGuxMTEDz/8UAgRFBS0aNEi1gDymrwEmBBi4MCBu3btGjVqVERERJkyZerXr9+nT5/PP/9827ZtVatWlfrI06/AifIcb968edJFXh06dFi6dOmBAweuXr26Y8eOf/7zn/KQgezs7P79+7PedpH88MMP0ppKdevWHTVqlN7lmIbD4Zg7d27Lli2vXLlSWJ/MzMwWLVosWLBAy8JMZ8qUKfKAlNWrVzdr1mzevHm7du26fv360aNHV6xY0aNHj0GDBsnX1UrcTPwHl5QBUPny5d13VnYgAApMBEAA4HeJiYmtWrUaM2aM/PVXkyZNfv31V3nZC3iiYcOGt2/fliY7XL9+/RtvvCF9oZ2fnz937tz+/fuTAbmUlZU1dOhQaYKAKVOmMF+pL6pWrdqrV69evXpNmDDhm2++KVu2bME+0dHR3333nfzjjBkzmBC6oIInHp999tnGjRuffPLJJk2alCtXrnXr1uPGjdu3b1+XLl2kDufOnZNn3sVd5eXlTZ06VWpPnTq1ZMmS+tZjIu+9997YsWOlq2PKlCnz6quvxsfHnzhx4sSJE/Hx8VOmTJGm+bt8+fKoUaNmzJihd73GVb169WXLlikHRY4ZMyY6OrpcuXJRUVF9+vSRFlMrW7ascknKcuXK6VOuaSm/SszNzXXfWTm5PlMQBCgHALgyePBg6V0iIiJC71pM7OzZs06TrdhsthdffPHWrVt6l2YFGRkZbdq0kfftV199pXdFhmO32/v37y/tn5iYmNzc3IJ95Ckhx4wZo32FVtWjRw/5mXnkyBG9yzGcjRs3Kt8Yx44dW1jPkydPytPqh4aGunwOo6CVK1dKO61cuXLXr1/XuxzTWL58ufy0jIuLO378eME+6enpsbGxcrcff/xR+zpNZMuWLW6WpqpZs+bmzZuVa6du3bpV75KNwsNDceVS8R9//LH7+5w1a5bcefv27WqWC5Mg9gMAf/nxxx+bNm36ww8/yL+JjY3dunXrjBkzSpcurWNhlhEeHv7NN9/IO3P27Nn61mNAixYtks5nypYtu3jxYobWa6Zbt25y+/fff9exEmMKDg6W2yEhIe+//35hPWvWrPnss89K7atXryYlJfm9OEuYO3eu1Ojfv79yb8MNu90+bdo0qV2uXLnvvvuudu3aBbtFRER899138pxKb775poNRfoVr27bt0aNHZ82aFRsbq1wxLTIycurUqfv372/fvr1yLcW7zmIDJ8oX+KVLl9x3zsrKktvMCxaYmHsCANSXlZU1YcKExYsXy7+pW7fu9OnT+/Xrx3qx6mrYsGHPnj2llG3Pnj03b950eVVOwHrrrbekxtChQy9duuQyiZAvnTt37pzcITg4uHnz5toUaUnKtYGUC9xAojzxaNGihZvZdoUQytEWBw8e5DLGuzp+/Lh0cY0QYsSIEbrWYibbtm07ePCg1H7hhRciIiIK6xkZGTlp0iTpDXbv3r1JSUnKZymclC1b9rnnnnvuuedu3bp17ty5W7duhYeHly9fXj4ikgOg4sWLK9ePhyfCwsLktjLfcUnZgawtMBEAAYDKzpw506VLl5SUFOnHMmXKvP3223/729+YgsFzV65ckVKJYsWK3XVNU+Uwq1OnTkVFRfm9PvPIy8uTGnPnzpVHBBRm5cqV8mUj0dHR0vSx8E6DBg3kNhNtFlSjRg25fddV/JQvauVIARRm/vz50piUevXqkZd57siRI3I7JibGfWflBciHDx8mAPJEmTJlIiMjC/5efl3Xq1ePkapFVaVKldDQ0KtXr4qijAAqV66cvF4BAgqXgAGAmq5evdq5c2c5/WnXrt3evXtfeOEF0p8iGTduXOXKlStXruzJ+u7KIxg3i7YAWlI+FZVfz0ISGhoqTwvitAZQQcphfaVKlfJjWZaQl5cnr041YsQIhp167tSpU3K7cePG7jsr14A/ceKEv2oKAA6HY8eOHVKbkadesNlsckp+9OhR953lDo0aNeLNITAxAggA1DR27NjDhw9L7ZEjR86bN4+F3r0gD7zPyMi4ePGiPEuxS8rDncqVK/u3MgSw+Pj4xMREIURQUNC0adPcp7ry+4C4c7QLZE2aNDlz5owQ4sCBA+57KjuweOJd/fzzzxkZGUIIm802dOhQvcsxk9DQULl9+vTpOnXquOmsTIuUN4Rs27Zt0vjHypUrt2jRorBuBw4ckJ6xQohHHnlEo+KsRR60u2vXrpycnMKC8pycnN27d0vtli1balcfjIQRQACgmu3bty9dulRqDx48eMGCBaQ/3lEO/NmzZ4/7zvKUDWXKlKlWrZofyzKh9PT0u64H4XIVMK7/KujGjRsffPDBBx98MH369J9//tl9Z/l5a7PZ2rdv7//qzKdr165SY9++fdKS24XZtWuX3I6OjvZvWeb3zTffSI2WLVu6mcUGBSmnfL7rR4+yg8u5ojF79uyHHnrooYceevTRR93Mky0PWLPZbARA3pHXnczNzV23bl1h3RISEuR14nv27KlFZTAeAiAAUM0//vEPqREWFvbxxx8zttZrDz74oNyeMWOGm567d++Wj3U6duzI5SHwn86dO8ujfj777DM35zPXrl2TT2natm3LRJsuPfbYY1Ljxo0b8mzlBZ0/f/7jjz+W2tWrV/fkstBAdvv27fXr10ttksei6tSpk/y1zdy5c3NycgrrmZOTM2/ePKldvHjxTp06aVGf2Tz88MNS4+TJk//9739d9jlz5oz8btmzZ0+G8Xqnc+fO8oqoX3zxRWHd5s+fLzXKlCnTpUsXLSqD8RAAAYA6srOzf/nlF6ndv39/Tvl8ER4e/sADD0jt+Pj4n376yWW3GzdujBs3zm63Sz+OHDlSo/oQkCpUqDBgwACpvWHDhunTp7vsdvv27ZEjR164cEH68eWXX9aoPrNp2LChfNo8e/bsjRs3FuyTm5v717/+9fLly9KPEydOJFh37/fff5eHUzH9c1GVL1++V69eUnvfvn2vvvqqy5zX4XBMmTJl37590o+9evVyv4xdwOrWrZvcHjt2bHZ2tlOHnJycYcOGyc/YN954Q7virCUkJGTMmDFSe9WqVXIKrJSQkLBixQqpPW7cOJZMDVg2N99fAQhkQ4YMWbJkiRAiIiIiPT1d73JMYM+ePffdd5/U7tatW7NmzTy84bPPPut+ooHAtHbtWvnYsVSpUu+9994zzzxTrlw56Tf5+fnr168fN25cWlqa9JuYmJjff/89KIgvNoosLCzs4sWLQogxY8b861//0rscQ0tJSWnRooU0hN5msz3zzDPTpk2TLzzMy8vbvn37yy+/vGXLFuk33bt3X716NZlFYbZv3x4XFye1g4KCXn311RdeeEE6l3Y4HHv27Hn66afl678iIyP37dunXD8eBU2dOvXdd9+V2qdPn5Zn2oaHDh8+fO+998qXyXTp0uWTTz6Rp8t1OBx79+597rnnpOnAhBAlS5bcu3dvw4YN9SrY4Pr16ycv09mhQ4f58+fLKyTu27dv/Pjx8rvlsGHDFi5cqE+VRlWkQ/GMjIx69erdunVLCFGhQoVVq1a1a9dO/mtiYmLv3r2lMD04OPjYsWMsARawCIAAuEYAVFQrVqzo06ePFzf87bfflB/SkI0ePdppJHPt2rXr16+flZV16NAh5XeJVapUSUpKYrYL7xAAFcmsWbMmTZok/1isWLE6depERkaeP38+JSVFPm8UQtSrV2/79u3upzDHa6+99s477yh/07Bhw2rVqu3Zs0derlgIUbZs2S1btjBr6V3FxMRIE3jVrVv32LFjepdjSt9+++3gwYOVv6lYsWKTJk3y8vIOHTrktNbkkiVLBg0apG2BZnLixInWrVvLIyKDgoLq168fERFx6tSpQ4cOyd1atWr122+/MSbFSVEPxZcuXap8Nnbt2rVVq1b5+flJSUmbNm2Sf798+fJ+/fr5oV6YA7OTAoA65KEoUMsnn3ySnZ29aNEi+TcnTpwouNruvffe+8MPP5D+QBvPP/98dnb21KlTpWsP8/PzU1NTU1NTnbq1a9fu3//+N+nPXb311luXL1/+9NNP5d8cPnxYuYaaEKJ69eqrVq0i/bmrzMzMnTt3Sm2+V/DaoEGDSpYs+dRTT8mXJl26dEkeqCILDQ1dsGBB3759NS/QTGrXrv3zzz/37NlTyoDsdvuRI0eOHDmi7NOpU6dvv/2W9Md3AwcOPH369OTJk6WPp7Vr165du1bZoXjx4jNnziT9CXAMlQcAdfz55596l2A1pUqVWrhw4fLly1u1auWyQ7169T777LPt27fLQ8oBDbzyyiv//e9/H374YZfXdjVt2nTRokWJiYnMZuoJm832ySefxMfHt2nTpuBfK1WqNHXq1IMHD7L4lyfWrVsnD+1nAiBf9O3b9+DBgxMmTHC5vntoaOjEiRMPHDhA+uOJNm3a7Ny5c/DgwQWv0a5fv/6sWbPWrVsXHh6uS23W8+KLL27evNnly79Dhw5btmyZMGGC9lXBULgEDABgAqdOndq2bVtGRsbVq1fLlStXpUqVNm3a1K1bl9lVoKOsrKzU1NS0tLT09PQSJUqEh4fHxsbWrVtX77rMKi0tbceOHRkZGTdv3qxcuXLjxo3j4uKKFSumd10IXHl5ecnJyQcPHszMzBRChIWFNW3aNDo6Wl4sDJ7LzMzcuHHjiRMn8vPza9as2aBBg9atW/Mh7iepqanJycmnT58WQtSsWbNNmzZMNwkJARAAAAAAAIDFcQkYAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAAAAAIDFEQABAAAAAABYHAEQAAAAAACAxREAAQAAAAAAWBwBEAAAAAAAgMURAAEAAAAAAFgcARAAAEChFi9ebPNA+fLl69evP2DAgC+++OLmzZt6Vw0AAOCMAAgAAMBXV65cOXbs2PLly0ePHh0REbFkyRK9K3Jh7NixcmL13HPPaXZbAABgBMX1LgAAAMBSMjMzhwwZkpaWNnXqVL1rKYKff/45OTlZCFG/fv0hQ4boXQ4AAFAZARAAAIBHxo8f3759+4K/v3z58uHDh5OTk7ds2SL/8rXXXmvdunX37t01LNAnP//889y5c4UQ3bp1IwACAMB6CIAAAAA8cv/99z/55JNuOqxevXrs2LEnT56UfnzllVe6detms9k0qQ4AAMAdAiAAAAB19OjRY9myZW3btnU4HEKIP/74Y9euXdHR0XrX9X8mTZokB1g1a9bU7LYAAMAICIAAAABUc//99w8bNmzhwoXSj4mJicYJgKKioqKiorS/LQAAMAJWAQMAAFBTXFyc3D527JiOlQAAAMgYAQQAAKCmhg0byu2LFy+66Zmfn5+UlHT48OFz586VKFGiatWq9957b7NmzTycNujWrVt//vnnsWPHjh07VqJEiXr16tWtW7du3bolSpTwdRt84ONGKe3fv3/v3r2nTp265557oqKimjZtWqVKFX/UDABAICAAAgAAUFNGRobcLl26tMs+V69eff/997/44ovMzEynP9WqVWvSpEnjxo0rVapUYQ9x5syZadOmffvttzdu3HD6U3h4+N/+9rcXX3yxZMmSTn9KTk6OiYmR2mlpaZGRkUKI2bNnP//888puv/76qxzWHDp0qFGjRoXdVq2Nku88IiIiPT1dCLF169a///3v27ZtU3YrVqzYM88888Ybb4SHh7vaKwAAwB0uAQMAAFDTvn375Ha1atUKdtizZ0/jxo2nT59eMCgRQpw8efL5559v3br1qVOnXN7/xo0bGzdu/MUXXxRMf4QQZ8+effXVVzt16uTyr/7j40YpffXVV506dXJKf4QQ+fn5//rXv5o2bXrw4EF1igYAIJAwAggAAEA1mZmZX375pfxj+/btnTocPHiwQ4cOV69elX/TpEmTBg0a5OXlHTx4MC0tTfrl/v3727Ztu3PnzrCwMOXNjx071rNnz5s3b0o/lihRonnz5rVr175+/fqRI0dOnDgh/f6///3vpEmT5s6de9eCw8PDY2NjhRB//vnnhQsXhBChoaGNGzeW/lrYCCZ1N0ppw4YNo0aNstvtZcuW7d69e1RUVFZW1u7du5OSkqQOly5dGjZs2I4dO7y4pgwAgIDmAAAAQCEWLVokHzUtWrTIfeerV68+9thjcv+KFStev35d2SE3N7dVq1Zyh3bt2u3du1f+q91u37x5sxy+CCH69+/v9BADBw6U/zpy5MgzZ87If8rPz1+xYkVwcLD016CgoLNnzypvu2PHDvm2aWlpTvc8ZswY6U/dunUruGlubuv7Rsl3XqFChapVqwoh+vXrd+HCBWWfVatWhYSEyHdy9OjRgkUCAAA3uAQMAADAJ1euXElKSvrnP//ZsGHDVatWyb9/6aWX5DhGsmzZsl27dknthx56aP369c2bN5f/arPZ2rdvv2XLlqZNm0q/Wb58udxfCJGfn//TTz9J7c6dO8+fP195iVlQUNDjjz8+c+ZM6Ue73Z6QkKDmdhbCx41SysrKOnfu3GOPPfbdd985jRJ69NFHP/zwQ/nH5ORklTcDAACrIwACAADwyNChQ22ulC9fPjY29tlnn1VO/9yxY8cXXnjB6R7++c9/So2QkJCvvvrK5YzIFStWXLBgQcGbCCEyMzPli78effTRoCAXB3KPPvpo8P8o6/EfHzfKSbFixWbMmOFy04YOHSq3jx075n3FAAAEJAIgAAAAlT388MM//fRT8eJ3TLZ46dIleWLjIUOG1KhRo7Cbx8bGypMHrV692uFwSO177rlHnvimsHCnevXq1/+nYAKlOt83ysmgQYOioqJc/ikkJCQiIkJqF3ZzAABQGAIgAAAA1dx3331Lliz5+eefQ0NDnf70+++/y+0ePXq4v59HHnlEamRkZJw+fVpqly5duk6dOlJ79uzZ33//ve45iO8b5SQuLs7NPXg4KTUAACiIVcAAAAA8Mn78+IKrekmCgoIqV64cFRXlZgjMkSNH5HbdunXdP1ZkZKTcTklJqVmzptSeNGnSX//6VyFEbm5u//79W7Zs+cQTT3Tt2vW+++4rUaKEx5uiGlU2SqlBgwYqlQYAAO5AAAQAAOCR+++//8knn/T65pcvX5bb8qVMhVF2yMrKktvjx4///fffFy9eLP24e/fu3bt3T506NTg4OC4u7oEHHujdu3fTpk01WyJdlY1SUoZEAABARVwCBgAAoIXr169LjeDgYOWK5i4pRxJduXJFbttstkWLFv3yyy/KhdWFEDdu3EhISHj99debN28eFRX1+eef2+129WovlCobpaTLOCYAAAIBARAAAIAW5Hzkxo0bcm5SmAsXLhS8oaxHjx4HDhzYt2/fO++806ZNG6c1s1JTU8ePH9+2bdvCRtmoSMWNAgAAfkUABAAAoIXy5cvL7ePHj7vv/Oeff8rtihUrFuxgs9maNWv26quvbt++/fLly/Hx8VOmTGnRooXc4ffff584caLPVd+FuhsFAAD8hwAIAABAC8rVzdPT0913VmYld51cuVy5ct26dXv33Xf/+OOPbdu2ySuFLVq06Ny5c16W6xn/bRQAAFAXARAAAIAWYmNj5faaNWvcd169erXUqFKlSr169aT2f/7zn3feeeedd9758MMPC1sAPi4u7uOPP5Z/PHDggE9F343vGwUAALRBAAQAAKCFSpUqtWnTRmovWrTo7NmzhfXcvn37pk2bpHb37t3lJb02b9782muvvfbaa5MnT05JSSns5lWrVpXbV69eVaH0wvm+UQAAQBsEQAAAABoZP3681Lh69erIkSNzc3ML9snMzBw5cqT841//+le53aRJE7m9YMGCwh7lhx9+kNteDLTJzs4uUn8fNwoAAGiDAAgAAEAjAwcOlOdpjo+P79at28GDB+W/OhyOxMTEdu3aHTp0SPpNv379YmJi5A4PP/xw8eLFpfbMmTM//PDDGzduKO8/MzNz6tSpH374ofRjw4YNmzVr5mFt8pCcXbt27d+/3+FwXGe+m+oAAARPSURBVL58+fbt2/7eKAAAoI3iehcAAAAQKEqWLLl48eK//OUv165dE0IkJiY2bdq0efPm9erVy8/P379/f1pamtw5MjLy888/V948PDx87Nixn376qfTj5MmT33nnnZYtW1aqVCk/P//06dP79u1TDsCZM2eO51dayWOFrl271rx5c5vN5nA4Dh061KhRI79uFAAA0AYBEAAAgHaaNWuWmJjYo0cPeX2uffv27du3z6lbixYtVq9eXalSJaffz5gxIyUlZf369dKP165d27x5c8FHKVWq1BdffNGtWzfPC+vXr997772XlZUl/VjYJNMu+bhRAABAA1wCBgAAoKlWrVqlpKT8/e9/r1ChQsG/1q5de86cOUlJSdWrVy/419KlS8fHx8+ZM6ewZdRDQkKGDx9+4MCBoUOHFqmqiIiIzZs3P/HEEzVq1ChRokT16tVjYmLKli3r4c192SgAAKABW5G+3gEAAIBa8vLykpKSDh8+fP78+WLFilWtWvW+++5r1qyZJ9dtORyOtLS0EydOnDx58vTp0+XLl4+IiIiIiKhbt27p0qU1KL4wvmwUAADwHwIgAAAAAAAAi+MSMAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwACAAAAAACwOAIgAAAAAAAAiyMAAgAAAAAAsDgCIAAAAAAAAIsjAAIAAAAAALA4AiAAAAAAAACLIwAC/l87diADAAAAMMjf+h5fYQQAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMCSAAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwIIAAAAYE4AAQAAAMwJIAAAAIA5AQQAAAAwJ4AAAAAA5gQQAAAAwJwAAgAAAJgTQAAAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMCSAAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwF9rco0SXEW0gAAAABJRU5ErkJggg==" title alt width="768" /></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
329 <p><strong>Motif 4 :</strong> Consensus: TTTATT <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAANgCAIAAABlQDTBAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAgAElEQVR4nOzdaZBV9Z038HPZROggiyCRCC2rICBIAx0lDKIWIkQDblGgRCtKAjKajDHoo5FEDDokQafiAKMYUZyopcaogLgBLSgEWwLYssgma7BZWzBAA/d5cZI79LVpGvp23+bw+RQvfveepb9YlFV8+f/PicXj8QAAAACA6KqS7gAAAAAAlC8FEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiqqU7AJXO119//fzzz7/77ru5ubnbtm37+uuvzzzzzObNm1922WWDBg1q1apVugMCAAAAxycWj8fTnYFK5H//93/vvPPObdu2FXu0SpUqQ4cOfeyxx771rW9VcDAAAADghCmA+D+PPPLIvffee8zT2rRpM2vWrG9/+9sVEAkAAAAoOwUQ//TOO+/06dMn8efh4osvvuaaa9q3b1+vXr2lS5fOmjXrueeeS5yclZU1b968GjVqpCksAAAAcBwUQARBEMTj8QsvvPBvf/tb+HH06NG//OUvY7HYkefMnTt30KBB69evDz8+9thjd955Z0UHBQAAAI6fAoggCIIPPvigZ8+e4ZyVlfXXv/41qf0JzZs373vf+174Z+acc8754osvij0NAAAAqFS8Bp4gCIK33347MY8dO/Zotc7FF188dOjQcN6wYcPixYsrIBsAAABQRgoggiAI5s6dGw516tS59NJLSzgzsVAoCIIVK1aUbywAAAAgFRRABEEQJJ7s065du5J3dZ1//vmJeefOneUbCwAAAEgFBRBBEARbt24NhyP7nZLPDIKgWbNm5ZgJAAAASJFq6Q5ApbBx48ZwOO2000o+c86cOYm5devW5ZgJAAAASBFvAeM45OfnN2/efM+ePUEQnHfeeXl5eVWqWEQGAAAAlZ0VQJTWP/7xjwEDBoTtTxAE9913Xwrbnx07dvz5z38+dOhQGe+zd+/eL7744j//8z9r1KiRkmAAAAAQAQogSmX9+vWDBg2aN29e+DErK+vGG29M4f0feuihxx57LFV3q1Wr1m9+85tU3Q0AAABOdgogjuHQoUOTJ0/+xS9+sWvXrvCbli1bTps2rVq1VP7hufXWW/ft23f48OEy3mf27NkrV65s2rRpSlIBAABANCiAKMns2bPvvPPOJUuWJL5p167dG2+80ahRo9T+oA4dOkyYMKHs9xk6dOjKlStPP/30st8KAAAAIsMTfCne1q1br7vuuksuuSTR/sRisbvvvjs3N7d58+bpzQYAAAAcFyuAKMYrr7wybNiw7du3J77p3r37+PHjv/vd76YxFQAAAHBirACiiJ07dw4ZMuTaa69NtD/Nmzd/8cUXP/roI+0PAAAAnKSsAOL/bN68+dJLL12+fHn48fTTT3/ooYdGjhzpleoAAABwUlMA8U8FBQW9e/desWJF+LFHjx5//OMfW7Zsmd5UAAAAQNnZAsY//fjHP060P7fccsusWbO0PwAAABANVgARBEGwYMGCP/3pT+E8aNCgyZMnx2Kx9EYCAAAAUsUKIIIgCH7/+9+Hw5lnnvlf//Vf2h8AAACIEgUQwb59+6ZNmxbO119/ff369dObBwAAAEgtW8AIVqxYsXfv3nBevXr13XffXcoLR4wYce6555ZbLgAAACA1FEAEa9asScwzZ86cOXNmKS/8wQ9+oAACAACAys8WMIK1a9emOwIAAABQjhRAFFkBBAAAAESPAojgD3/4Q/yE9OjRI93ZAQAAgGNTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIUwABAAAARJwCCAAAACDiFEAAAAAAEacAAgAAAIg4BRAAAABAxCmAAAAAACJOAQQAAAAQcQogAAAAgIhTAAEAAABEnAIIAAAAIOIUQAAAAAARpwACAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAirlq6A1Q6y5cvD4KgZs2amZmZpbyksLBw9erVQRDUqlWradOm5ZcNAAAA4AQogJK1bds2CILu3bvPnz+/lJfs3bs3vKpbt24LFiwox3AAAAAAx88WsBSoU6dOLBYLgmDTpk3pzgIAAACQTAGUAnl5efF4PAiC/Pz8dGcBAAAASHZKbwGbOnXq1KlTiz20bNmyK664ojQ32bdvX25ubjg3btw4ZeEAAAAAUuSULoBWrVo1c+bMYg8VFBQc7VAJsrOzyxwKAAAAIMVsAUuZevXqPfDAA+lOAQAAAJDslF4BlJWVNWzYsKQvJ02aFARBw4YNBw4cWMr7xGKxFi1aXH/99d4BDwAAAFRCp3QB1L9///79+yd9GRZAzZs3nzhxYjpCAQAAAKSYLWAAAAAAEXdKrwAq1vjx4wPv8wIAAAAiRAGU7K677kp3BAAAAIBUsgUMAAAAIOKsACre4cOHV69enZubu3r16ng8XvoL77///vJLBQAAAHACFEDF2Lx586BBg2bPnn0C1yqAAAAAgMpGAZRsy5YtnTp1ys/PT3cQAAAAgNRQACUbPXp0UvvTrFmzmjVrpisPAAAAQBkpgIr4+9///tRTT4VzRkbGuHHjBg8enJGRkd5UAAAAAGWhACoiLy/v8OHD4fzCCy/069cvvXkAAAAAys5r4Iv4/PPPwyE7O1v7AwAAAESDAqiIgoKCcOjcuXN6kwAAAACkigKoiCZNmoRD3bp105sEAAAAIFUUQEV07NgxHBJ7wQAAAABOdgqgIjp06NC9e/cgCGbMmLF9+/Z0xwEAAABIAQVQst/+9rfVqlXbu3fviBEjEm8EAwAAADh5KYCS9ejRY9KkSbFY7MUXXxwwYMDKlSvTnQgAAACgTKqlO0BldOuttzZr1mzQoEGvv/76tGnTbrrppuzs7FatWmVmZlavXr3kazMzMyskIwAAAEBpKYCSJRqcAwcOBEFw6NCh55577rnnnivl5fF4vJyCAQAAAJwYBVCyL774It0RAAAAAFLJM4AAAAAAIs4KoGQLFy5MdwQAAACAVFIAJcvKykp3BAAAAIBUUgCd3O68884pU6Y0bdp0yZIlZb/b1KlTP/7441Ke/Oijj5522mll/6EAAABAeVMAncQKCwuff/753bt3FxQUpOSGkydPnj17dilPHjNmjAIIAAAATgoKoGPbsGHDwoULd+3aVVBQ8NVXXz3wwAPh94cOHapatWoag7311lvbt29P4Q1Xr16dwrsBAAAAlYQC6Ki+/vrrRx555Pnnn1+zZs2R3ycKoB/+8If5+fm33Xbb9ddfX7169QqOt23bthEjRqTwhvv27du4cWMKbwgAAABUEl4DX7xZs2adf/75Dz30UFL7c6TCwsI5c+YMHjy4S5cun376aYVli8fjs2fP7t+//4YNG1J42zVr1sTj8XD+7LPP4seSkZGRwp8OAAAAlB8rgIqRm5vbv3//r7/+upTnL126tEePHu+++265vkFszpw5ixcvzsvL+/DDD8ujb0rs/6pSpUrz5s1Tfn8AAAAgXRRAyfLz87///e8n2p+OHTuOHDmyW7duV1xxxZYtW44885ZbblmxYsXy5cuDINi9e/fAgQM//fTTOnXqlFOwa665JrVP/EmyatWqcGjWrJmnOwMAAECU2AKWbOLEiYmiZ+TIkX/9619/9KMfdezYsUqV5P9WV199dV5e3ujRo8OPGzZseOSRRyoyamolCqDWrVunNwkAAACQWlYAFXHgwIEJEyaEc69evR5//PFYLFbC+VWqVHnwwQd37tz5+OOPB0EwadKkX/3qV+X0QOjx48fv37//yG+eeuqpBQsWpOr+iS1grVq1StU9AQAAgMpAAVTE4sWLE8t/Jk6cWHL7kzBq1KgJEyYcOHBgx44dixYt6tatW3lkGzJkSNI3s2fPTmEBVOwKoN27d2/evPnMM89s0KDBN9dAAQAAACcFf6UvYu3ateHQpEmTNm3alPKqxo0bt2/fPpwXL15cLsnKWWFh4bp168K5VatWixcvHjBgQOPGjevWrduuXbtGjRrVq1fv2muvnT59euJNYQAAAMDJQgFURKIE6dix43Fd2LRp03Ao1+c0l5/169cfOnQonMeNG9e5c+fXXntt69atiRMKCgpeeeWVfv369e7dO+lh2AAAAEAlZwtYETVq1AiH0r8DPpToRE7S92cl9n8FQfD++++XcObs2bO7du06d+7czMzMFAb46quv3n777cOHD5fxPmGFZ5kSAAAAHEkBVETjxo3D4dNPP43H46V8BtChQ4eWLl0azmeddVZ5hStPRxZAQRC0adPm7rvvvvzyyxs1arRp06YlS5a88847kydPLiwsDIJg06ZN11577bx581LYdo0ePfr3v/99qu62ZMmSVN0KAAAAIkABVER2dnY4bN++fc6cOb169SrNVbNmzUqsGLrwwgvLKVu5SrwCLAiCG2+88amnnqpVq1b4sWXLli1bthw4cOCPfvSjfv36hfvCcnNzn3nmmWHDhqUqwI033rhp06ayrwBauHDhunXrWrRokZJUAAAAEA0KoCIyMzM7d+68aNGiIAhGjBixaNGixKawo9m1a9fIkSPDuUWLFqV/dHSlctZZZ1199dVBEDRr1ux3v/tdtWrF/MHo0qXLCy+8cMkll4Qfx40bd/vtt5dykdQxZWVlvfDCC2W/z9ChQ9etW5eRkVH2WwEAAEBkeAh0sgcffDAcPvvssyuuuGLz5s0lnJyXl9erV6/ly5eHH++5555UFSIV7Be/+MVrr7322muvPf7448W2P6FevXpdeeWV4bx69eqkjWMAAABA5aQASnbVVVcNHDgwnGfNmtWxY8c77rjjz3/+c/j4myAI1q9f//HHHz/55JNXX311hw4dEu9979q166233pqe0BWoT58+iXn+/PlpTAIAAACUki1gyWKx2NSpU/v37x++DGv79u1PPPHEE088kTihWbNm37yqVatWb775ZglrZyLjyD1uX375ZRqTAAAAAKVkBVAxTj/99LfeeuvBBx8sZaEzaNCgv/71r40aNSrvYJVBq1atEvPevXvTmAQAAAAoJQVQ8apXrz569Oi1a9fed999R1YeR2rUqNHQoUM/+eSTqVOn1q1bt4ITpsvu3bsT85lnnpnGJAAAAEApRX/LUll85zvfefjhhx9++OH8/PylS5fu2LFj165dtWrVql+/fsuWLVu0aHGSPvI5yVtvvTV79uwgCKpUqTJ69OiSX3y2YsWKxNykSZPyzgYAAACUnQKoVBo2bNi7d+90pygve/fuffTRR8M5Kysr8QzsYiUeeh2Lxb73ve+VezgAAACgzGwBS7Z8+fLly5evW7eu9JcUFhaGV61fv77ccpWj3r17J1b9PPHEE/F4/GhnfvXVV5MnTw7niy++uH79+hWRDwAAACgbBVCytm3btm3b9oc//GHpL9m7d2941XXXXVd+wcpo7dq1s/9l2bJlRx6qV6/eDTfcEM7vv//+2LFji71DYWHhLbfckp+fH34cNWpUuQYGAAAAUkUBlAJ16tQJHwa0adOmdGc5qsmTJ1/yLw8//HDS0fvuuy+xCOj+++8fNmzYli1bEkcPHjw4b9683r17v/LKK+E3V1xxxZVXXlkxyQEAAIAyUgClQF5eXrhtKrE65qRz3nnnPfLII+Ecj8f/53/+55xzzmnVqtXll19+wQUX1K5du0ePHnPnzg1PaNGixdSpU6PxAGwAAAA4FZzSD4GeOnXq1KlTiz20bNmyK664ojQ32bdvX25ubjg3btw4ZeEq3E9/+tN9+/bdf//9hw8fDoLg0KFDq1atWrVqVdJpPXr0ePXVVxs0aJCOjAAAAMCJOKULoFWrVs2cObPYQwUFBUc7VILs7Owyh0qne++9t3fv3r/61a/eeuutbz4K+vzzzx81atSNN95YtWrVtMQDAAAATswpXQClVr169R544IGK/IklrGD6pjFjxowZM+aYp3Xv3n369Ok7d+5ctWrV2rVr161bV7169caNG3fv3r158+ZlywsAAACkxyldAGVlZQ0bNizpy0mTJgVB0LBhw4EDB5byPrFYrEWLFtdff33Tpk1THDFN6tWr17Vr165du6Y7CAAAAJACp3QB1L9///79+yd9GRZAzZs3nzhxYjpCAQAAAKSYt4ABAAAARNwpvQKoWOPHjw9O8vd5AQAAABxJAZTsrrvuSncEAAAAgFSyBQwAAAAg4qwAKt7hw4dXr16dm5u7evXqeDxe+gvvv//+8ksFAAAAcAIUQMXYvHnzoEGDZs+efQLXKoAAAACAykYBlGzLli2dOnXKz89PdxAAAACA1FAAJRs9enRS+9OsWbOaNWumKw8AAABAGSmAivj73//+1FNPhXNGRsa4ceMGDx6ckZGR3lQAAAAAZaEAKiIvL+/w4cPh/MILL/Tr1y+9eQAAAADKzmvgi/j888/DITs7W/sDAAAARIMCqIiCgoJw6Ny5c3qTAAAAAKSKAqiIJk2ahEPdunXTmwQAAAAgVRRARXTs2DEcEnvBAAAAAE52CqAiOnTo0L179yAIZsyYsX379nTHAQAAAEgBBVCy3/72t9WqVdu7d++IESMSbwQDAAAAOHkpgJL16NFj0qRJsVjsxRdfHDBgwMqVK9OdCAAAAKBMqqU7QGV06623NmvWbNCgQa+//vq0adNuuumm7OzsVq1aZWZmVq9eveRrMzMzKyQjAAAAQGkpgJIlGpwDBw4EQXDo0KHnnnvuueeeK+Xl8Xi8nIIBAAAAnBgFULIvvvgi3REAAAAAUskzgAAAAAAizgqgZAsXLkx3BAAAAIBUUgAly8rKSncEAAAAgFSyBQwAAAAg4hRAAAAAABFnC9ixxePxjRs3rlixYufOnbt3787IyKhfv37z5s1btGgRi8XSnQ4AAADgGBRAJcnNzZ0wYcL06dO3bNnyzaONGjXq27fvyJEju3TpUvHZAAAAAErJFrDibdu27brrrsvKypo8eXKx7U8QBF9++eWUKVOysrJuuOGGHTt2VHBCAAAAgFJSABVjw4YNXbp0efnll0t5/ksvvZSVlXW0nggAAAAgvWwBS7Z///6+ffuuX78+8U3Pnj379euXmZnZtGnTJk2a5Ofnr1mzZs2aNdOmTcvJyQnPWbt2bb9+/RYsWFC9evU0BQcAAAAongIo2RNPPJGXlxfO7du3f/rpp7t27XrkCeecc86FF14YBME999wzf/78W265Zfny5UEQLFq06Mknnxw+fHjFZwYAAAAogS1gRcTj8fHjx4fz+eefn5OTk9T+JMnOzs7JyWnVqlX4cdy4cfF4vNxTAgAAABwPBVARS5Ys2bhxYzhPmjSpXr16x7ykYcOGEydODOd169YtW7asHPMBAAAAHD8FUBGLFy8OhxYtWlx00UWlvOqSSy5p1qxZOC9atKhckgEAAACcKAVQEfn5+eHQrl27WCxWyqtisVj79u3DeevWreWSDAAAAOBEKYCKKCwsDIeqVase14XVqv3zcdoHDx5McSYAAACAslEAFdGoUaNwWLVq1XFd+Pnnn4fDWWedleJMAAAAAGWjACqiTZs24fDpp58mXgZ/THl5eZ999lnSHQAAAAAqCQVQEd27d69fv344Dx8+/MCBA8e85MCBA8OHDw/nBg0alPzaeAAAAICKpwAqolq1arfddls45+Tk9O/ff/PmzSWcv2XLlquuuionJyf8eNtttx3vw4MAAAAAypsCKNm9997buHHjcH7nnXfatGkzfPjwN954Iy8vb8+ePUEQ7NmzJy8v78033xwxYkSbNm1mzpwZnty4ceNRo0alLTcAAADAUVRLd4BK54wzzpg+fXqvXr0KCgqCINizZ8+ECRMmTJgQHq1du/bevXu/eVWdOnWmT59+xhlnVGhWAAAAgFKwAqgYnTt3/uijjzp37vzNQ8W2P506dZo3b16x5wMAAACknQKoeO3atZs/f/6zzz6bnZ1dwmndunV75plnFixY0L59+wrLBgAAAHBcbAE7qho1agwZMmTIkCE7duyYP3/+ypUrd+3atWfPnoyMjLp167Zu3bp79+4NGjRId0wAAACAY1AAHVv9+vWvvPLKK6+8Mt1BAAAAAE6ELWAn6ODBg/F4PN0pAAAAAI5NAXRUhYWFM2fOvOOOO3r37r1p06ako++++26dOnV69uz5+OOPh+8LAwAAAKicbAEr3ttvv33HHXd8/vnn4cfCwsJvnrNnz54PPvjggw8+GDt27IQJEwYMGFCxGQEAAABKxQqgYjz99NN9+/ZNtD/HtHXr1muuuebpp58u11QAAAAAJ0YBlOyTTz4ZNmzY4cOHw4+nn356//7969Spk3Rap06d7rvvvvPPPz/8GI/Hhw8fvnTp0grNCgAAAFAKCqBk999//8GDB8N52LBh+fn5b7zxRv369ZNOa9y48cMPP7x06dI//OEPNWrUCIJg//79v/rVryo6LgAAAMCxKICK2LFjx4wZM8J5xIgREydOrF27dgnnx2KxESNG/OY3vwk/vvrqqzt37iz3lAAAAADHQwFUxMqVK8OhVq1aDz30UCmvGjFiRL169YIgiMfjc+fOLa9wAAAAACdEAVREogBq165d2OmURs2aNdu2bRvOX3zxRbkkAwAAADhRCqAiNm3aFA7NmjU7rgu//e1vh8Pu3btTnAkAAACgbBRARSQe9rxt27bjunDr1q3hcOaZZ6Y4EwAAAEDZKICKOPfcc8Nh/vz5pV/Ls2vXrgULFoRz06ZNyyUZAAAAwIlSABXRs2fPjIyMIAj279//61//upRXjRkzprCwMAiCmjVr9uzZsxzzAQAAABw/BVARNWvWHDJkSDj//ve/HzNmzIEDB0o4/9ChQ7/73e9+97vfhR+vueaakl8bDwAAAFDxFEDJfv3rXyfe//XAAw80b9583LhxW7ZsicfjR562a9euP/7xj+edd97dd98dflOzZs2HH364ouMCAAAAHEu1dAeodM4888zXX3+9T58+X3/9dRAEmzZtuueee+65557TTjvtnHPOOfvss3ft2rVu3bqCgoIjr6pSpcrzzz9/vO8OAwAAAKgAVgAVo0ePHu+9917Lli2P/HL//v2rVq3KyclZsmRJUvtTv379l19+eeDAgRUbEwAAAKBUFEDFy87O/tvf/jZ27NiSF/V861vfGjly5NKlSwcMGFBh2QAAAACOiy1gR1W7du1Ro0b9/Oc/z83N/fDDD5csWbJ9+/bdu3effvrp9erVa9GixUUXXfS9730vfGsYAAAAQKWlADqGqlWrduvWrVu3bukOAgAAAHCCbAEDAAAAiDgFEAAAAEDEKYAAAAAAIk4BBAAAABBxCiAAAACAiFMAAQAAAEScAggAAAAg4hRAAAAAABGnAAIAAACIOAUQAAAAQMQpgAAAAAAiTgEEAAAAEHEKIAAAAICIq5buAJXU4cOHV69enZubu3r16ng8XvoL77///vJLBQAAAHACFEDF2Lx586BBg2bPnn0C1yqAAAAAgMpGAZRsy5YtnTp1ys/PT3cQAAAAgNRQACUbPXp0UvvTrFmzmjVrpisPAAAAQBkpgIr4+9///tRTT4VzRkbGuHHjBg8enJGRkd5UAAAAAGWhACoiLy/v8OHD4fzCCy/069cvvXkAAAAAys5r4Iv4/PPPwyE7O1v7AwAAAESDAqiIgoKCcOjcuXN6kwAAAACkigKoiCZNmoRD3bp105sEAAAAIFUUQEV07NgxHBJ7wQAAAABOdgqgIjp06NC9e/cgCGbMmLF9+/Z0xwEAAABIAej8eKMAACAASURBVAVQst/+9rfVqlXbu3fviBEjEm8EAwAAADh5KYCS9ejRY9KkSbFY7MUXXxwwYMDKlSvTnQgAAACgTKqlO0BldOuttzZr1mzQoEGvv/76tGnTbrrppuzs7FatWmVmZlavXr3kazMzMyskY8W58847p0yZ0rRp0yVLlqQ7CwAAAHAiFEDJEg3OgQMHgiA4dOjQc88999xzz5Xy8ng8Xk7B0qKwsPD555/fvXt3QUFBurMAAAAAJ0gBlOyLL75Id4RK5K233vIwbAAAADjZeQYQR7Vt27YRI0akOwUAAABQVlYAJVu4cGG6I6RfPB6fM2fOqFGjNmzYkO4sAAAAQFkpgJJlZWWlO0LazJkzZ/HixXl5eR9++OGnn36a7jgAAABAaiiA+D/XXHONJ/4AAABA9HgGEAAAAEDEWQF0bPF4fOPGjStWrNi5c+fu3bszMjLq16/fvHnzFi1axGKxdKdLpfHjx+/fv//Ib5566qkFCxakKw8AAACQEgqgkuTm5k6YMGH69Olbtmz55tFGjRr17dt35MiRXbp0qfhs5WHIkCFJ38yePVsBBAAAACc7W8CKt23btuuuuy4rK2vy5MnFtj9BEHz55ZdTpkzJysq64YYbduzYUcEJAQAAAEpJAVSMDRs2dOnS5eWXXy7l+S+99FJWVtbReiIAAACA9LIFLNn+/fv79u27fv36xDc9e/bs169fZmZm06ZNmzRpkp+fv2bNmjVr1kybNi0nJyc8Z+3atf369VuwYEH16tXTFPzk9o9//OOjjz46fPhwGe+jhgMAAIBvUgAle+KJJ/Ly8sK5ffv2Tz/9dNeuXY884ZxzzrnwwguDILjnnnvmz59/yy23LF++PAiCRYsWPfnkk8OHD6/4zBHw4IMPjhs3LlV3W7p0aapuBQAAABGgACoiHo+PHz8+nM8///ycnJx69eqVcH52dnZOTs7FF1/8+eefB0Ewbty4n/zkJxF7NVjFuOqqq5YuXXrw4MEy3icvL2/Lli3NmjVLSSoAAACIBgVQEUuWLNm4cWM4T5o0qeT2J9SwYcOJEydeeumlQRCsW7du2bJl7dq1K9+UUdSjR48ZM2aU/T5Dhw6dMmVKnTp1yn4rAAAAiAwPgS5i8eLF4dCiRYuLLrqolFddcskliSUnixYtKpdkAAAAACdKAVREfn5+OLRr1670O7lisVj79u3DeevWreWSDAAAAOBEKYCKKCwsDIeqVase14XVqv1zM13Zn2IDAAAAkFoKoCIaNWoUDqtWrTquC8OHQAdBcNZZZ6U4EwAAAEDZKICKaNOmTTh8+umniZfBH1NeXt5nn32WdAcAAACASkIBVET37t3r168fzsOHDz9w4MAxLzlw4MDw4cPDuUGDBl27di3HfAAAAADHTwFURLVq1W677bZwzsnJ6d+//+bNm0s4f8uWLVdddVVOTk748bbbbjvehwcBAAAAlDcFULJ77723cePG4fzOO++0adNm+PDhb7zxRl5e3p49e4Ig2LNnT15e3ptvvjlixIg2bdrMnDkzPLlx48ajRo1KW24AAACAo6iW7gCVzhlnnDF9+vRevXoVFBQEQbBnz54JEyZMmDAhPFq7du29e/d+86o6depMnz79jDPOqNCsAAAAAKVgBVAxOnfu/NFHH3Xu3Pmbh4ptfzp16jRv3rxizwcAAABIOwVQ8dq1azd//vxnn302Ozu7hNO6dev2zDPPLFiwoH379hWWDQAAAOC42AJ2VDVq1BgyZMiQIUN27Ngxf/78lStX7tq1a8+ePRkZGXXr1m3dunX37t0bNGiQ7pgAAAAAx6AAOrb69etfeeWVV155ZbqDAAAAAJwIW8AoydSpU+PxeDweX7duXbqzAAAAACdIAQQAAAAQcafuFrC77rorMd9xxx0tW7YM5zIudcnMzCzL5QAAAAApd+oWQI8//nhi/sEPfpAogM4999yy3DYej5cpFgAAAECq2QIGAAAAEHGn7gogAAAAKEYslu4EEWKXTKVx6hZAw4YNS8xnn312Yl64cGE64gAAAACUl1O3AJo4cWKx32dlZVVwEgAAAIBy5RlAAAAAABF36q4AOprly5cHQVCzZs3Sv9C9sLBw9erVQRDUqlWradOm5ZcNAAAA4AQogJK1bds2CILu3bvPnz+/lJfs3bs3vKpbt24LFiwox3AAAAAAx88WsBSoU6dOLBYLgmDTpk3pzgIAAACQTAGUAnl5efF4PAiC/Pz8dGcBAAAASHZKbwGbOnXq1KlTiz20bNmyK664ojQ32bdvX25ubjg3btw4ZeEAAAAAUuSULoBWrVo1c+bMYg8VFBQc7VAJsrOzyxwKAAAAIMVsAUuZevXqPfDAA+lOAQAAAJDslF4BlJWVNWzYsKQvJ02aFARBw4YNBw4cWMr7xGKxFi1aXH/99d4BDwAAAFRCp3QB1L9///79+yd9GRZAzZs3nzhxYjpCAQAAAKSYLWAAAAAAEXdKrwAq1vjx4wPv8wIAAAAiRAGU7K677jqBq5555pl9+/a1aNHi8ssvT3kkAAAAgLJQAKXAoUOHfvazn+3cufO73/2uAggAAODkFo+nO0EQxGIpuEll+I1QaXgGUArMmDFj586dQRB89tln6c4CAAAAkMwKoOLNnTt30qRJS5cu3bVrV8lnFhYWbt68OZy/9a1vlX80oiIljT6Bf9YAAAA4NgVQMcaOHXvfffedwIU33XRTysMAAAAAlJEtYMk+/PDDE2t/rrnmmgcffDDleQAAAADKyAqgZI899lhi7t69e58+fTIyMubMmTNt2rQgCLp27Rou8zlw4MCyZcteeumlr7/+OgiCUaNGjR07Nl2ZAQAAAEoQi3t8xhG+/PLLs88++9ChQ0EQDBo0aMqUKVWrVg2CIB6PX3bZZe+//37z5s1XrVoV+9fTW5YtW3bZZZdt3ry5atWqf/7zn7///e+nMz1BMHTo0ClTpjzzzDM333xzurMci2cApYr/iQEAED3eAkaq2QJWxMqVK8P2p0qVKmPHjg3bnyAIYrHYkCFDgiBYs2bNunXrEue3bdt2zpw5NWrUOHTo0C233LJ9+/Z0pAYAAAAoiQKoiI0bN4bDBRdccM455xx5qFOnTuGwYsWKI79v2bJluNhk+/btv/rVryokJgAAAMBxUAAVsWnTpnA4++yzkw61bt06HFauXJl0aNiwYeEwderUAwcOlGdAAAAAgOOmACoi8XCf6tWrJx2qVavWd77zneAbK4CCIDjvvPPCYefOnfPmzSvnjAAAAADHRwFURFjxBEGwZcuWbx5t1apVEARLlixJ+r527dqNGzcO59WrV5dnQAAAAIDjpgAqIlEA5eXlFRQUJB0NC6BFixaFD4o+Uvgy+CAItm3bVs4ZAcpNLOZXyn4BAEBlogAqomXLluEusD179jz22GNJR8OtXnv37p09e/aR32/dujXRFjVr1qwiggIAAACUmgKoiEaNGvXs2TOcH3zwwZ/97GfLli2Lx+PhN5dddlk4PPLII0cuApo0aVJibtmyZUWFBQAAACgVBVCy0aNHJ+bx48e3a9cuJycn/Ni+fftzzz03CIJ33333mmuueeuttz744IP77rsvcUm9evXatm1b0YkBAAAASqQAStarV68xY8Yc+U1iBVAsFkt0PX/5y1/69u3bs2fPsWPHJk64//77MzIyKjAsAAAAwLEpgIpx3333vfrqq8Wu5Rk8ePANN9xQ7FWdO3cePnx4OUcjQuLx9P/yuwAAADg1KICKEYvFBgwYkJeXt2zZsldffbV169aJQ1WqVHn++ecfeuih+vXrJ76sWbPmT37yk1mzZtWsWTMdeQEAAABKUi3dASqvWCx23nnnhW/+OlLVqlXvv//+//iP/1i5cuWmTZvOOOOMTp061a5dOy0hAQAAAI5JAXSCTj/99AsuuOCCCy5IdxAAAACAY7AFDAAAACDiFEAAAAAAEWcLWPEOHz68cePG5cuXr1u37vDhw6W/8Mc//nH5pQIAAAA4AQqgYnzyySe33357bm7uCVyrAAIAAAAqGwVQso8++qhHjx7HteoHAAAAoDJTABVx6NChESNGJLU/tWvXrlmzZroiAVSceDzdCYIgFkvBTSrDbwQAACoTBVARixcvXrRoUTg3aNDgoYceGjBgwFlnnRVLyV9IAAAAANJBAVTEypUrw6Fq1arTp0/v1q1bevMAAAAAlJ3XwBexbt26cOjTp4/2BwAAAIgGBVARGRkZ4dCuXbv0JgEAAABIFQVQEU2bNg2HzZs3pzcJAAAAQKoogIq49NJLa9WqFQTB3LlzDx48mO44AAAAACmgACqidu3ad911VxAE69ev//Wvf53uOAAAAAApoABK9stf/jJ8/POYMWN+85vfHDhwIN2JAAAAAMrEa+CTnXbaaW+//Xb//v3nzp37//7f/3v22WevuuqqDh06NGzYsDSXX3HFFeWdECgiFkt3ggiJx9OdAAAAKBcKoGJs3749/q+/Ba1YsWLcuHGlvzbur08AAABAJaMASrZq1apu3brt3Lkz3UEAAAAAUsMzgJINHjxY+wMAAABEiRVARSxevHjBggXhfNppp/30pz+9+uqrW7Rocfrpp6c3GAAAAMAJUwAVkZubm5j/8pe/9OnTJ41hAAAAAFLCFrAitm7dGg69e/fW/gAAAADRoAAqok6dOuHQsWPH9CYBAAAASBUFUBGZmZnh8NVXX6U1CAAAAEDKeAZQEZdeemn9+vV37Ngxb968eDwei8XSnQgAAKAU/OUlheLxdCeA1LMCqIiaNWvec889QRAsX778ySefTHccAAAAgBRQACX7+c9/3r9//yAI/v3f//3FF1+Mq34BAACAk5wtYMmqVKnyyiuvDB8+fPLkyT/84Q+ffPLJgQMHdujQoWHDhqW5/LzzzivvhEARlaSlLfui60ryGwEAAKJIAZQsfA50YuHPe++9995775X+ciuGAAAAgMpGAZTsiy++SHcEAAAAgFTyDCAAAACAiLMCKNmyZcvSHQEAAAAglRRAyTzFGQAAAIgYBRAAlIOyvxgOUs6rKgDgFOYZQEU8/fTT5/3L5s2b0x0HAAAAIAWsACpi69atK1asCOft27efffbZ6c0DAABQKpVklV/Z18BWkt8IRI4CqIiWLVsm5hUrVnTo0CGNYQAAIPrsmU0VvQlQIlvAiujTp0+jRo3CeebMmekNAwAAAJASCqAi6tSp88QTT8RisSAIpk6dunbt2nQnAgAAACgrBVCya6+99tlnn61Wrdq+ffv69u2beCQQAAAAwEnKM4CKMXjw4Hbt2g0ePHjZsmUXXHDBwIED/+3f/q1JkyZNmjSpW7durMRdypmZmRUVEwAAAKBUFEDJzjvvvHDYt29fEAT79+//05/+9Kc//amUl8c9eg0AAACoZBRAyez5AiAFKsO/B3gRbwr5jwkAnOQ8AwgAAAAg4qwASrZw4cJ0RwAAAABIJQVQsqysrHRHAAAAAEglBRAAABynsj8WioTK8IQsz/kCTgGeAQQAAAAQcVYAHVs8Ht+4ceOKFSt27ty5e/fujIyM+vXrN2/evEWLFjH/+AMAAABUegqgkuTm5k6YMGH69Olbtmz55tFGjRr17dt35MiRXbp0qfhsAAAAAKVkC1jxtm3bdt1112VlZU2ePLnY9icIgi+//HLKlClZWVk33HDDjh07KjghAAAAQCkpgIqxYcOGLl26vPzyy6U8/6WXXsrKyjpaTwQAAACQXraAJdu/f3/fvn3Xr1+f+KZnz579+vXLzMxs2rRpkyZN8vPz16xZs2bNmmnTpuXk5ITnrF27tl+/fgsWLKhevXqaggMAAAAUTwGU7IknnsjLywvn9u3bP/300127dj3yhHPOOefCCy8MguCee+6ZP3/+Lbfcsnz58iAIFi1a9OSTTw4fPrziMwMAAACUQAFURDweHz9+fDiff/75OTk59erVK+H87OzsnJyciy+++PPPPw+CYNy4cT/5yU/K9dVghw8fnj179jPPPJObm7thw4YgCL7zne906dLl5ptv7t27d5UqZdrTN3Xq1I8//riUJz/66KOnnXZaWX4cAAAAUDEUQEUsWbJk48aN4Txp0qSS259Qw4YNJ06ceOmllwZBsG7dumXLlrVr166c4n355Zc333zzW2+9deSXy5YtW7Zs2dSpU/v06TNlypSzzjrrhO8/efLk2bNnl/LkMWPGKIAAgFNUPJ7uBEFQ9n90rAy/CwAqiodAF7F48eJwaNGixUUXXVTKqy655JJmzZqF86JFi8olWRBs3749Ozs7qf050syZM7Ozs7dt23bCP2L16tUnfC0AAABQaSmAisjPzw+Hdu3alX4nVywWa9++fThv3bq1PIIdPnz4hhtuWLt2bfixSZMmjz766Hvvvffee+898sgjTZo0Cb9ft27d9ddff/jw4RP4Efv27UusfgIAAACixBawIgoLC8OhatWqx3VhtWr//C958ODBFGcKgiAIXn/99ffeey+cu3XrNmPGjPr164cfe/fu/aMf/ahv374LFy4MgmDWrFmvv/76D37wg+P9EWvWrIn/axnwZ5991rZt2xRlBwAAANLMCqAiGjVqFA6rVq06rgvDh0AHQVCWR/AcTTwef+ihh8K5du3aL730UqL9CTVo0OCll16qVatW+PHhhx+OH/+O7sT+rypVqjRv3rxskQEAAIBKRAFURJs2bcLh008/TbwM/pjy8vI+++yzpDuk0PLlyz/55JNwvv322xPPGzpSZmbm7bffHs4ff/xxopAqvUTn1axZM093BgAAgChRABXRvXv3xOKa4cOHHzhw4JiXHDhwYPjw4eHcoEGDrl27pjzV9OnTE/PQoUOPdtrNN9+cmGfMmHG8PyVRALVu3fp4rwUAAAAqMwVQEdWqVbvtttvCOScnp3///ps3by7h/C1btlx11VU5OTnhx9tuu+14Hx5UGomn/5x55pkdOnQ42mkXXHBBor1KXFJ6iS1grVq1Ov6MAAAAQOWlAEp27733Nm7cOJzfeeedNm3aDB8+/I033sjLy9uzZ08QBHv27MnLy3vzzTdHjBjRpk2bmTNnhic3btx41KhR5RFp+fLl4dCtW7cS3k0Wi8W6d++edEnpFbsCaPfu3cuWLcvPzz+xN4sBAAAAlYG3gCU744wzpk+f3qtXr4KCgiAI9uzZM2HChAkTJoRHa9euvXfv3m9eVadOnenTp59xxhkpz7N///5169aF89lnn13yyd/+9rfDYe3atQcPHky8m+yYCgsLEz+lVatWixcvHj169EcffZR4q32dOnUuv/zyW2+9tW/fviWUUAAAAEAlZAVQMTp37vzRRx917tz5m4eKbX86deo0b968Ys8vuw0bNiRe6ZX08q9vatCgQTgcPHhw48aNpf8p69evP3ToUDiPGzeuc+fOr732WqL9CYKgoKDglVde6devX+/evbds2XIcvwEAAAAg3awAKl67du3mz5//4osv/vd///f8+fOPdlq3bt2GDx9+44031qhRo5ySfPXVV4m5Xr16JZ98ZEN05IXHdORr799///0Szpw9e3bXrl3nzp2bmZlZ+vsfU2Fh4fz58/fv31/G+yinAAAA4JsUQEdVo0aNIUOGDBkyZMeOHfPnz1+5cuWuXbv27NmTkZFRt27d1q1bd+/ePbHipvx8/fXXifmYK4COPKHYxUpHc2QBFARBmzZt7r777ssvv7xRo0abNm1asmTJO++8M3ny5MLCwiAINm3adO21186bNy+Fb4t/8MEHx44dm6q75eXlpepWAAAAEAEKoGOrX///s3ff8VFVaQPHz4QSICFSAoSiCS10EUJIXIoUBUQUQYo0AUWau6DoiiIqVkR0wbYuCCoCIqgLsgoRCASERUIA6QGCCV0gEDpJSGbeP+563yGZDJOZO7ec+X3/4HOSnJl57uWWc585pVL37t27d+9uyKc7J4AqVKjgvrJzhWIlgNQlwIQQAwYMmDNnTrly5ZQf69WrV69evd69e48YMeKBBx5QxoVt27btyy+/HDVqlOcf4V7nzp1TUlLUwW5e27t376lTp245WRIAAAAAAAElQBNAa9euVeZ4fuihh4KCbpoIadmyZUKIihUr3nPPPcYEdzPniZxzc3PdV75+/bpaLrBd7lWrVq1nz55CiMjIyPfff9/l7NExMTHffPNNx44dlR+nT58+cuRIrSaE7ty5c+fOnX1/n2HDhs2bN++WY+UAAAAAAAgoAZoAGjp0qDJHcm5uboFESa9evYQQcXFxbqb+0VNISIhazsrKcl/ZuYLzC29p4sSJnlTr0KFD9+7dV6xYIYQ4fPhwWlpa/fr1Pf8UAAAAAABgiABdBezs2bNKwfxzBjvncc6fP+++snMCKDQ01B/xdO3aVS2bJEcGAAAAAADcC9AEUGRkpFJ4+eWXs7OzjQ3GvfDwcLVcrB5At5wx2jsNGjRQy2fOnPHHRwAAAAAAAG0F6BCwVq1aHTx4UAjx1VdfLVmypFatWiVKlHCu8NtvvzVs2NCLd05NTdUmxD9VrVo1LCxMmbHI8x5A5cuXr1atmraRKJzHfBVrnmkAAAAAAGCUAE0AvfHGG8uWLVMW2MrOzi6wCLoQIicn58CBA0aEVpDNZouOjk5JSRFCHDp0yH1ltULDhg21mp65gIsXL6pl595JAAAAAADAtAI0AVSnTp2ffvpp9OjRJsnyuBcTE6MkgLZv356TkxMcHOyyWk5Ozo4dO5RyixYtPH//hISEpKQkIURQUNCUKVNKly7tprLzHqtZs6bnnwIAAAAAAIwSoAkgIUSHDh127dqVnJx84MAB56mgX375ZSFEzZo1R48ebVx0N+nevfusWbOEELm5uatXr+7Ro4fLaomJieo68UXVcenq1avTpk1Tyq1aterdu7ebyjt37lQKNputXbt2nn8KAAAAAAAwis3hcBgdg7koI6fMswy8EOLKlStVqlRRJqt+6KGHfvjhB5fVevfuvXTpUiFE2bJlMzMzy5Ur5+H7Z2VlRUREKMmjTp06rVmzpqjhY5cvX65bt66yhlrbtm1/+eUXLzbHr4YNGzZv3rwvv/xy6NChRsdiBb6PE+QComJnakWT4avsTAWHpYbYmTAhDksNsTM1xM7UCo0iaC1AVwGzltDQ0FGjRinl5cuXr1mzpnCdxMREJfsjhBgzZkzh7E96enrSn/bv3+/8p4oVK/bv318pr127durUqS7DuHHjxvDhw5XsjxDihRde8HaDAAAAAACArkgAFbRy5cqVK1fOmDHD6EBuMnHixLJlyyrlfv36bdy40fmvSUlJffr0UcohISHPP/984XeYO3duxz+99dZbBf46adIkdeqfyZMnjxo1ynlYXF5e3qZNmzp16vT9998rv+nWrVv37t212DIAAAAAAOB3gTsHUFG6detmdAguVK9efe7cuQMHDhRCZGVltWvXrkuXLi1btszPz09OTl6/fr1a84svvvBiAfiGDRu+8847EyZMEEI4HI7Zs2fPnTu3du3aUVFRZ86cSU1NVWcXEkLUrVt3wYIFflplDAAAAAAAaI4EkGUMGDDgxIkTEydOtNvtQohVq1atWrXKuULJkiXff//9vn37evf+zzzzTHZ29uTJk5X3z8/PT0tLS0tLK1Ctbdu2//73vytXruzdpwAAAAAAAP2RAHLNbrcfPnx427Zthw8fLtY82ZMnT/ZfVM8999zdd989ceLETZs2FfhT+/bt33333bi4OF/e/8UXX+zUqdNrr72WkJBQeKubNGnywgsvDBgwoESJEr58CgAAAAAA0BmrgLlw8uTJQYMGJSUlefFaffZnWlpaSkrKiRMnhBC1atVq3bp17dq1NXz/rKystLS09PT0jIyMUqVKRURExMXF1alTR8OP8BNWASse1mjQEDtTKyx4oSEOSw2xM2FCHJYaYmdqiJ2pFRpF0Bo9gAo6derUXXfdpa51ZU716tWrV6+e/96/YsWKsbGxsbGx/vsIAAAAAACgGxJABU2ZMqVA9icyMrJMmTJGxQMAAAAAAOAjEkA3+eOPP+bMmaOUQ0NDp0+fPnjw4NDQUGOjAgAAAAAA8AUJoJvs3btXWQNLCPHNN9888MADxsYDAAAAAADguyCjAzCXQ4cOKYX4+HiyPwAAAAAAQA4kgG5y6dIlpdCiRQtjIwEAAAAAANAKCaCb1KxZUylUqFDB2EgAAAAAAAC0QgLoJnfeeadSUMeCAQAAAAAAWB0JoJs0a9YsLi5OCLFy5cpz584ZHQ4AAAAAAIAGSAAV9N5775UsWfLq1atPPfWUuiIYAAAAAACAdZEAKqht27azZs2y2WyLFy/u1avXwYMHjY4IAAAAAADAJyWNDsCMHn/88cjIyEGDBi1fvvynn34aOHBgfHx8/fr1o6KiSpUq5f61UVFRusQIAAAAAADgKRJABakZnNzcXCFEfn7+/Pnz58+f7+HLHQ6HnwIDAAAAAADwDgmggo4cOWJ0CAAAAAAAAFpiDiAAAAAAAADJ0QOooK1btxodAgAAAAAAgJZIABXUqlUro0MAAAAAAADQEkPAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByAToJdLdu3fz0zgkJCX56ZwAAAAAAAO8EaALo559/NjoEAAAAAAAAnTAEDAAAAAAAQHIkgAAAAAAAACQXoEPAHA6H0SEAAAAAAADohB5AAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAILmSRgcAAABgeg6H0REAAAD4hB5AAAAAAAAAkqMHEAAAQGCw2YyOQCJ0wIvlgwAAIABJREFUCgMAWA0JIAAAANf8kTAhbwAAAAxBAggAAEmRafCMzt1i3Hyc3//HTHJI+L7HTbIhAABYCgkgAAAQQMw8CqpwbCQ6ACBwcQ+A1kgAAQDMhLaOdmxCg1SHQ1j+f8TMGZ9bKhA85wcAAPAaCSAAACSkSfZHeR+L5oAsnfcpirpRZIIAAEBxkQACAJidkXOmWJBWqR/nN7RKDsjfSR/vjjd/ROX8npwFACAlevJCcySAAAB60/B5uLhvJf2jsubZH/VtTd6C1PCg0vwgcfOGmoStvIn0xzYABA4N7+bKW5n8Jg7dkAACAhiPC/AzE47BKSokOc4GP2V/1Dc3YfNRk2PMwP/9Ah/ty+YwOiwQ8Z8NyMgfd3Nz3sShPxJAAABtmDDd4zkJVl/ya/ZH/QjzNB99PN7M+f/rHJXXG0iHIAAG4wLkA//dzU11E4dRSAABALxn6aSPe9aaY0WH7I/6QWZoPnp94Jn/v1KlhurdxtpsVtpYAIDw/93cJDdxGIgEEBCgtLrBcBf5n0B60tI86ePXnafhHCsKE/5X65b9UT/OwBM/EFI/BSiRe7HhdAWSG/dxQDL63M3JAQU4EkBAwNH27sLEcoHDopOtuPxEmWZa0Tn74/yh+p/43v3HmeR/yke+pIHk2ANwxgSx2uM88YqeHYHl/i/S825ODiiQkQACAkvArhAEX8g32Yo0M60Ykv1x/nQ9T3wv/qdMeOz5SL4tQnH57z4uSAPBFfOM9XYTidWvjfrfzWm6BywSQECg0GFQsQjItqO2O9ZsOzAQhtv4mAwyMA3k+7HnEA4f30S3FiTZH0AwPwj8zzzpnmKx7koOBn6RE7BN9wBHAggICIE2Qaw+/LRIpzDHzTgwx9p4Pe2u/mkgTbI/wiI5ILI/gJ73cWGO25CeAnlCJYtmfG6pwHaZ86YQUF/kwCRIAAGSM6RPqbBmG8hz0nen4nnbzJujyeHnfHTRfARMjuEh/uOPiRGFFVpBFlrPQdbFHALqixyYBwkgQGbGdiuV8l6i8xR9wiLz7JqkLRUItGovFv6lTM1HDkhIg+EhfiL9FzkusZhDgdcaeLPQ9m4u2U0cfkUCCJCTVvcVX97HnK0frxnVCtd5N5L9MTM/ZX/UP9F8BMxDq75+nNcFBMIXOS4i8WGjzXmXLxCVdxtoVCbIH3dzTnZ4iAQQICEN7yua3E6EOVo/XgucbBrZHzPza/ZHrUDzETADbe/jPr6hBPdxRYB8kVPw0wNgMQdhqfUc/Hc35yYOT5AAAqTip68UfH9ni95RNO+g6+N7StMKR3HpkP1Rq0lwsttsFnt0AVSaT/Kl/kaCU9trgfNFzk2fGJCLOYg/N8GcaSB/380D/EyHJ0gAAfIw//AQ9x9hKn79fsbH97fWnoTvdMv+qJVpPgKG8Pd93MePsOLdJ2C/yKFLr9k2x0+5XZd1AqrFjuIiAQTIQJ/nwwDpCmSVnemP27PDIe1ysNalc/ZHfYmpmo9eHJl0AoK10MtPc+b/IsfNR/iI7I/Z6P9Fju8fapUzHcUVZHQAAHxlyE3FFzZhM3BZEzd8D8whHMXdmT7uT8N3JgkjvzIk+6O+UJOT3cd3UHnxcGKzcXzCGvS/j1v91uOG7X+nvt/v5kodE+5Jsj9mY9St3FQ3cZgHPYAACzP2jiLTFwsGPmYLk/UG8q6rhaD56AfGHpbqO5jnTPeuh5pkXYEkmdTDdAEZxtgkr3nObk1Yt1Gk4U2c7I/ZGN7ClOw0h+9IAAFWZfjDodkGifgSgy80e7g1TQvSu9kTJUsDGf6Ybaoj0zzNR69zQML6B2eALOUTUAw/zc1z3/GR4XtSSLQzoSGTHJnmuYnDDEgAAdZjhtuJ8/tY8b6i21R83r2nGVqQAfukbfhjtgkPTlM1H31c3kVY7fj0ZRSbtbY0oJjnPi4s/nWOqfakMMFNnLn8zMM8B6epbuIwHAkgwGLMcztxfkMLtR01HM9s5qHRmuxS35+0hUUeQX1sLpuq44/wW2rSVM1Hrw9OYZFMkHmOSW1pe9m06AOJOe/jwmpf52h1LJnzVq5ru0iucbImYbbT3Gw3cRiIBBBgGXK3dYT/by2m3XD/MTYN9L8YzJoM0uQ7Um23iHO8uCQ7OE14TGrFT8ek5YbMBMI5Lvz/P2Lazdecd/uTufyMJfcXOcJSl1y4RAIIsADaOpq8rY+sO1eRhmkg4dszauHX6tbc1LZLvD/CDpDT3B95Xh/TQIoCL9fnyDT/Yek7HQ5sqzyTBMg5Lvz2dY7Vb+Vex+/FmvFMma/Qfzo/6ZO8gq5A1kcCCDA7M98D/ETDW4vV24sFYjA8DSRubhj5/vjq+Tu4bJDpOdOBX5vFAXWa+6ntqEmOUuX+TTw/GHQ4RE37wKbzUe3FQ7JuAuoEV2iblTPbaBpfYtDtPu7Leg7CxBcWDxkynV/gnOnkgCyNBBBgXlZPXhibrZCjvViAedJA/4tH02SQe4bMaqlTN5CAaTKq/Np21DYT5JIZ5lg17eOZJtde81zlfBTI93GhxZku363cEmkgYc1MkLFTpwXarZwckHWRAAJMSoJGj1ETzkmw69wzWxpIUaDlZIYnZC/o39K17uFq/qkE9ExQ6sPkT2IaHszmvMp5F4MvDL8ZGfgfIcHec8MqaaDCrzLbVcj3a7smWxRo2R8FOSCLIgEEmI7VvzB0pnMTR+72YgEmf0AyfMTWLZmhFWvpI9b3DK/Qsflo0QSlGY5ST/jpSNbqKlfU+/uPTPdxofvXOZa+MBaLIWkgwVx+QgiTLd8ZyL38oD8SQIC5WPouUhQd2o5S7jdPmDwNVIAn7S2JF0IqQIKD1opLRysKHyFmSAlZ4rh1ps8xrNaxyoVOglO7MH3uNVLuulvS/z5u1Fx+wuhrrzkXcDD2oGV5+ABEAggwC8m+MCzA3+0b0264PmTafMs9A3vH6k1GZ3I0H90feFo9okhzeBtyAJs/3y3Tee2Sv092k2++Xxm17Tr3jtQ/1e6/q6407XaWhw80JIAAU5C+1aiQ40ER8IU0TUZn0p/a0iRufGf43cq048IM3zP6MH8aDr6w6GhZlX7j0eQ6363bnxdeIAEEGEzKp0E3aDvCPbnPCIm3TvocUIAz26FrqnFhkj0KeoLzPUAUlU8xPDFkbFJe1lOe8zpAkAACjCTrLeSWrHWPMbyho5K7G4KGi2iYM0so/flurfPaV197sKUDLbItbml+YpqNj5cL6c/roljs6xxPTlh9SHFZ8KI14qYpZa22jdynfGDdxwMVCSDAGHLfPzxhhrajeTI7HvIkYGs1pBR+eiw0VRooQE55q7Yd/fRwWNy3NdmToTnzNX7ixbiwADmp3TPF7CHmSe54wsNoTXY18J0VGyeFBcJZb9X7ODxGAggwBldGhRV78Zh8xdOiXmXatpe/HzLN0BAJhCajytRtR5M/KLoJT8enQbON9vKCPl8tWOis9Cv99oOG56+e6RXvwnb5KumyQtYSOLdyU9/H4TMSQAAk5GO6xyS5kluGUazNLFDZDNuoW/8CY7sCBU6TUWWWtqPJ0z3FUmBb/PMcKM2xaoYepvCVj+eveXIl7iMp1mYWrmyezfyThnd2U52A0lwePWSW+zj8gAQQENB8SZSYIYNQgHebY8IN8VDhyD3fA8419d8DhgwtMeSJLtCajCrDBob4L+nj+4OWhrFpnQ+S8kCVMg2kw8hlg++J3p0m5suDeKpw5N6lhIzeA/64rftpwT6vw/CFqS4jHjLFAE/4AQkgQAaGzGXj9Ydq3rgMtLyPG+bfKE2eM63yRCflQ7XnfG87Cg+/QtQqseLvJygNOwK4eW1xtiIQHmx8Xy9Mh6dQU01I53kwGt9xvDgFjM56+IWlNkqfr3MMzARxHxcsDy8dEkCANZiqdegj99uiQwrD/FkSKWn4qGmVb6Vo8fh3D0gzQkRRIB6vt0554a22LgCfaszQIUimW7nQdso5i8+YHmiMmiFe50xQAF4nXWI4mGRIAAFmpEkb0QxpDi82pPBLzLAh8JHmrSi+lQpoXidHLPTQ6ByqF9tb9MCQAH+k0TMNpFW6x8CboFZrEWi/CV/brHQ6S0TbC4iZ++X5+82thV0hExJAgClINhePqqjYtJ292OHw5g3NvN9k4tenTTN8pQ9dBdr8IAo1fq8zQU57gKNdmHUwlwnvSprcxAvUd/2eAx3FPrw96+ymJZPPK+/PXeGnW7klRmgCkiEBBBgpYCevKbAJ3uWDnN9ELVtlFmTNmWdKJpVuHQ0CMQ1ktucQfZ7BmCJEss2RSKDdzTW/iQvhbaLT2wmw4Amd7+O+fKLVM0GGjA+17iUIviABBBjGi2u9rFdqDbfL+a28Swa5fCuzMfk694aMMZEnDWS25I4nPIzZl8czsj+WJffCVdzKheZb5PX4R5eVNbwOaPhW5r7OGzhQVLJMkMmn/TJsxncYigQQYIzi3hK48nrBl1XSi1VZq/8dPzUU9Dx4DF9UyCrzQwthnbWriuLLxDTOPImf7I85mPZhxpAOOKR+9ODyRPY9K+TFh2r+KeZjqgnCrJUJMn/7zccItZzxHUYjAQRYg83GRVYDWk1noO3LNWGGw8MkbUfzzg/tyxOCCdMZWi1qXrim7xtrwt1lHRpe0HS+LvkyMU0BZriiokhuTnBNEjFSZHM8p+GSXkatDuae5pkg3y+S+l9hPPxE36+iXDzNjwQQYIzizlssmLrYn4q7V+Ue0eAFk6R+Cr+h8SPCAnPSYuHbouZFr2AFzck0afEt4/FlXLDZNhaueXfR0DbjY4YYPGDOZI1f+ZgJCoSpvlxGq80kXzANEkAoyG63JyUlffnll9u2bTt27JgQolatWjExMUOHDu3UqVNQUJDRAcrDi3mLhXQXVhNOXWz+TzcVrVqQpm2J+pQGKm6DXuJ8h86bxhLRtxKYw5e03QTl3ViDUgZmuFzoFYMJv7Dxju9f8AjPtiUwr5bOJNsckADCTc6cOTN06NCEhATnX+7fv3///v0LFizo2rXrvHnzqlWrZlR4svIxE1T4fUzL5FMXo1hMm7LxB2/SQGR/NOTdEtH6Z53M7M+9wQx02vI6DSQk2reB0DPC6qTJ+6h8nyRIeJAJ4oIJ+ZAAwv87d+5cfHx8enp6URV+/vnn+Pj4rVu3hoeH6xlY4PBlXVVP6vt97SetH38scB/1xyOf6RMBhs/07DVTzw9NpxX3vMsBCQucUHoyw4RlUtLkixwL3PL+ZPWRg3qeCMZur3x5n8L8lwniggkpkQDC/9jt9v79+6vZn5o1a44bN65Vq1ZCiK1bt3700UcnTpwQQmRkZPTr12/NmjWMBdOB5jMWm/ZOZnBz0Gzf25t7qmBLtyZ1nR9a+b8w+dw3Zjv4CyiwH7zYpYI00E0YteRvzjtKq29xrLXIvUt+3QTTtm0UhgwgsvSd2msaZoKUt/Juvk6uljA5EkD4n+XLlycmJirl1q1br1y5slKlSsqPnTp1GjFixP33379161YhxLp165YvX/7www8bFmvA8+TWYp72kCluhGaY39E73j3ruuRz2NI0KHWdH9p5t3u9MJb/Djn/vbP/Uku+pIEEO1MIr7qrWLevikv6TD9XuLJ3n2ueG7qH/HF4WCIV5YaPY/xVHsZvkrutUbRcjZ41WyAdEkAQQgiHw/HGG28o5ZCQkCVLlqjZH0XlypWXLFnSpEmTa9euCSHeeuutnj172izXJAkkAX3jMXcPmuLxJB4Pt9eHxbalSf04M2CZMK8XxnJf06iD1tjeQ96lgQq/xGynvEKvfev1uGMT9lUpzIRLNWvesddY/vvvtugCEW5otUSdFed/tLpAG+DpzOqDPeESCSAIIURqaur27duV8siRIyMjIwvXiYqKGjly5MyZM4UQKSkphw4dio6O1jVKwD0vHpnM+exXXP7cCilTP86MXC3e5X+c7xmNgKLuQ693gg+JUc2Y5n/Q9/SERRMZwuhnFQ8/XZ/da60RZ9I8ZEqzIRLzZaZOl5VN9Z9uwow5/IQEEIQQYsWKFWp52LBhRVUbOnSokgASQqxcuZIEEMyC5Zb8wLozPXvBIRxmmR/aw4PTNCmD/1c4cj2D9G6onUsevlzD3nmmZ6r0RLFI9kAi2eY4C+TUjynIcrEqkh8afr6P8fRHTzfdrsOcgNZFAghCCKHO/hMeHt6sWbOiqjVv3rxSpUrnz59XXjJ+/Hid4oNC+tuzIDVjFtJ3/ClM1/mhfWeJM8WoIL0ealcsgXBBLiaeBwCTkmlovHtFbakne8DnLdUtL0OWB74gAQQhhEhNTVUKrVu3djOzj81mi4uLW7lypfNLoAGvb8zWuisXVnjDvfvuvbjrQ+u/1pIw/ePin7siAFM/zowcEQY/MbZrku+8nu0I8tHtMNC9dcH6dFoK2BHxwrwbUtwD1U8pHs4XCBJAEELk5ORkZGQo5Ro1arivXL16daWQnp6el5dXsiSHkLcC+fas0nCLTL7Wkr/fXLunAjIXgp0gPTcno1F5Fvku7wHLx0PI/ZFgkuPEb91JAnl9OiPnvTbJcQUn1j2SYX48vUMcO3bM8edlpsDiX4VVrlxZKeTl5R0/fjwqKsqvscmsuJ1WxJ9NLjqtqIraFX5aa8nNJ/qbyf8j4JnAWU3Dwltq2gchE64xb9p95Z6G2xuwX+T4fyu8nl3lltUssQy8Gx7FX9zZ8Q2ZC9/kDRs5TlXAFRJAEJcvX1bLFStWdF/ZOUPk/EIf2e323bt35+Xl+fg+586d0yQenXj3LbTnt0zf716+v4MZbvAafttvhs0xPwn2kkYtv4Cd1lSOrZBWwKYtFH7qeSo827Eu61h39/p+tfd427WaXcWEU5UXptkl1Ov2jw5XieLWN3nTwk/haXhxMH+E0AsJIIhr166p5Vv2AHKucPXqVa1ieO21115//XWt3u3AgQNavZVhfLmeqpd4U90szTkNh3f72ai1jdzQJyQd2/p60CTNWpjTNvrYiLfEg4onyAeZi4+noRku3YZzuQ/l+MrEQ2a6mHtxhdHz6mrSC6Am7cxb/tLfitoK3YLR6oN0OKH8tK9M23ceRSMBhJsSQBUqVHBf2bmChgmguLi42NhYu93u4/tcvHgxMzOzR48emkRlVVa51FolzsJMGLk+IZlww31h+s0x6WMDApzpTxwLs9y+tVzAf+Lq6hPz/7/rFqH5d8UtSbAJKCYSQBDOEznn5ua6r3z9+nW1HBQUpFUM3bt37969u1bvBgAAAAAAnGn2AA/rCgkJUctZWVnuKztXcH4hAAAAAAAwLRJAuCmPc/78efeVnRNAoaGh/ooJAAAAAABohwQQRHh4uFouVg+gW84YDQAAAAAAzIAEEETVqlXDwsKUsuc9gMqXL1+tWjX/RgYAAAAAALRAAgjCZrNFR0cr5UOHDrmvrFZo2LChTZo1igEAAAAAkBoJIAghRExMjFLYvn17Tk5OUdVycnJ27NihlFu0aKFHZAAAAAAAwGckgCCEEOoS7Lm5uatXry6qWmJiorpOfI8ePfSIDAAAAAAA+IwEEIQQolOnTmXKlFHKn332WVHV5syZoxTKli3buXNnPSIDAAAAAAA+IwEEIYQIDQ0dNWqUUl6+fPmaNWsK10lMTFy6dKlSHjNmTLly5fSLDwAAAAAA+MDmcDiMjgGmcOrUqbp1616/fl0IUbFixeXLl7dt21b9a1JSUq9evS5cuCCECAkJOXz4MEuAAQAAAABgFSSA8P8WLVo0cOBA9ccuXbq0bNkyPz8/OTl5/fr16u+XLFnSt29fIwIEAAAAAADeIAGEm7z33nsTJ0602+0u/1qyZMn3339/3LhxOkcFAAAAAAB8wRxAuMlzzz23YcOGNm3aFP5T+/btN27cSPYHAAAAAADLoQcQXEtLS0tJSTlx4oQQolatWq1bt65du7bRQQEAAAAAAG+QAAIAAAAAAJAcQ8AAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJY0OAIBJrVixYuPGjVFRUUYHIoODBw9WqVKlYsWKRgdieTdu3Ni/f3+jRo1KlSpldCyWl5WVdebMmQYNGhgdiAwyMjKCg4OrV69udCCW53A49uzZU7du3XLlyhkdi+VdvXr1999/b9q0qc1mMzoWyzt16lROTg6NIk2kpqZWq1aNRpHvbty4ceTIkUmTJlWoUMHoWGAZNofDYXQMAMyodOnSN27cMDoKAAAAAK716dPn22+/NToKWAY9gAC4VrZs2Rs3bjz22GNlypQxOhZrO3v27NKlS6tUqdKrVy+jY7G87du3p6SktGzZslWrVkbHYnnLli07c+bMww8/XLVqVaNjsbacnJx58+YFBwcPHTrU6Fgs79ChQ+vWratfv37Hjh2NjsXy1q5dm5aW1qlTp3r16hkdi+XNmzcvJydn6NChwcHBRsdibadPn/7hhx+qVavWs2dPo2OxvJSUlO3bt0dGRhodCKyEBBAA15QmznvvvVelShWjY7G2rVu3Ll26NCoqatasWUbHYnmvv/56SkpKjx49XnvtNaNjsbxdu3adOXNm4sSJ8fHxRsdibefPn583b15ISAjnuO8WLFiwbt26uLg4dqbvBg0alJaW9sQTTwwcONDoWCzv22+/zcnJmTFjBgOXfLR58+YffvihTp06nOO+e+WVV7Zv337bbbcZHQishEmgAQAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAgiAayVLllT/hS/YkxpSdmOJEiWMDkQGHJlaYU9qiJ2pIXamhtiZWmFPakhpDrEzUSwlpkyZYnQMAMyoevXqd999d+fOnY0OxPKqVKnicDgee+yxevXqGR2L5UVGRjocjlGjRlWoUMHoWCyvVq1akZGRjz76aFAQ3wb5JDg4OCwsrHfv3nfeeafRsVje7bffnpOTM3LkyOrVqxsdi+VFRkaGhISMGDEiODjY6FgsLyIiol27dvfcc4/RgVhe1apV7Xb7Y489VrduXaNjsbyoqCghxOjRo2+77TajY4Fl2BwOh9ExAAAAAAAAwI/40g8AAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkV9LoAACY1/jx4+fNm3fHHXfs2rXL6Fis59q1awsXLlyzZs22bdsyMzOvXbsWHh5ep06de++9d9CgQfXr1zc6QCvZtm3bokWLNmzYcPTo0fPnz5cpU6Zy5coxMTH33nvv4MGDQ0NDjQ7Q2pYuXTp8+HAhxPDhw2fMmGF0OBawYMGClJQUDytPmzYtODjYr/HIITs7e/ny5QsXLjxw4MCxY8dKlChx++23d+jQYeTIkc2bNzc6OvM6ffr01KlTvXjh7bff/uyzz2oej0yU+/jKlSu3bdt29uxZIUSVKlViYmK6des2ePDgcuXKGR2glZw7d27+/PkJCQn79+8/ffp0uXLlqlevHhMT079//65du5YsyTOpa140xe12e1JS0pdffrlt27Zjx44JIWrVqhUTEzN06NBOnToFBdH/I+A5AMCV3NzcypUrCyEiIyONjsV6Fi5cGB4eXtSFNygo6PHHH7906ZLRYVrAuXPnevbs6eYudtttt33++ed2u93oSK3qxIkTypkuhBg1apTR4VhDhw4dPG9oXb582eh4LWDDhg233357Uftw1KhR165dMzpGk9q/f7/nR6OzmJgYo2M3tW+++cbNfbxy5cpff/210TFaQ35+/rRp08qXL1/UzmzduvXevXuNDtOMvGiKnz59ulu3bkXt6q5du/7xxx/+DBkWQAoQgGsJCQnnzp0zOgpLeueddwYNGpSZmVlUBbvd/vnnn8fGxp46dUrPwCzn/Pnz8fHxP/zwg5s6Fy9efPzxx1999VXdopKJ3W4fNmwYZ3pxHT582OgQpDJv3rwOHToo31S7NGvWrD59+uTl5ekZFQLZW2+99eijj7q5j587d27gwIFvvPGGnlFZUW5ubp8+fSZOnHj58uWi6iQnJ8fHx+/cuVPPwCyhuE3xc+fOxcfHJyQkFFXh559/jo+Pd3NgIxCQAALgQmZm5lNPPWV0FJa0evXqSZMmqT+2adPmH//4x6pVq7Zu3fr5558PGTJE/dOBAwceeuih3NxcI8K0hscff/zQoUNKuUyZMn//+98XL168bdu2tWvXfvLJJ3feeada84033nDT4kFRPvjgg9WrVxsdhcVkZ2cfP37c6CjksWnTpieffNJutwshbDbbI488smjRok2bNi1evHjUqFHqaIUVK1ZMmzbN0EhlU6NGDaNDMKn//Oc/kydPVn+Mj4//8MMPV61atXr16o8++ujuu+9W//TKK6/8+OOPRsRoGeNVJ+N/AAAgAElEQVTGjVu6dKn648CBA+fMmbN169affvrp9ddfr1OnjvL7y5cvd+/e/fz58waFaUbFbYrb7fb+/funp6crP9asWXPatGmJiYmJiYnvvPNOzZo1ld9nZGT069dPueQiQBndBQmAudjt9nXr1sXFxalXCYaAec5ut991113qrpsyZUrhoUm//PLLHXfcodaZOXOmIaGaX3JysrqXGjZseOjQoQIVbty48fzzz6t1GM5QXDt37ixdurRzk4AhYJ7Yu3evusf27dtndDjWlpubW7t2bWVnhoaGrlixokCF5ORkdaaVsmXLXrx40ZA4pZGcnFyiRAkhRFhYWHp6utHhmJHdbneepO+DDz4ocB+32+0ffvihWqF+/fqMQS7KunXr1B1VrVq1n3/+uUCFy5cvP/HEE2qd559/3pA4zca7prhzoq1169bnzp1z/mtmZmZsbKxaYenSpf6KHqZHAgiAw+FwJCUlffDBByNHjmzatGmBNDEJIM9t2LBB3W+tWrUqqlG4ceNGm82mVLv99ttpO7o0ZswYdWeuWrXKZZ0bN260atVKrXbkyBGdg7Sua9euNWnSpMDJTgLIE8uXL1d2V1BQUHZ2ttHhWNvs2bPVw2/RokUu63z++edqnSVLlugcoUyuXbvWsGFDZU8yf01RnL97GDBgQFHV+vfvr1ZLTk7WM0IL6dixo7qXCqd3FXa7vXPnzkqdMmXKFEhbBBRfmuJ2u71ly5ZK5ZCQkIyMjMJ10tPT1Xy6mzYqpMcQMABCCPHII4+MHz9+9uzZe/bsMToWC1u1apVanjp1qprlKaBNmzbDhg1TyseOHWPcu0tJSUlKoVWrVvfdd5/LOiVLlhw4cKD6I3vScy+88ILSk6VZs2ZhYWFGh2MlaWlpSiEyMpLlvXzhcDjeffddpdyhQ4dHH33UZbXBgwer85T/5z//0Sk4Gb344oupqalCiCFDhgwYMMDocEzKeYG/QYMGFVXN+U/btm3zb0zWdO7cufXr1yvlhx9++P7773dZzWazffrpp8oqYNnZ2T/99JN+IZqML03x1NTU7du3K+WRI0dGRkYWrhMVFTVy5EilnJKSog6xR6AhAQQAmtm4caNSCAsLU7/Rcql9+/Zq+cCBA/4Ny4Lsdru6Wwp/FebM+a/Ma+ihhIQEZQhDcHDwwoULS5UqZXREVqImgKKjo42NxOr27dun7synn366qGqlSpWaPXv21KlTp06d2qZNG72ik83atWs/+OADIUTt2rU//vhjo8MxL2W5d0Xjxo2Lqubcg9L5JVBt3LhRnWjGzbpUQoj69es3a9ZMKS9btszvkcloxYoValn9irGwoUOHquWVK1f6NSSYVkmjAwBgCjNmzMjJyXH+zZw5c7Zs2WJUPBZ19OhRpdC4ceOiuv8onNuOWVlZ/g3Lgs6fP682HOvVq+em5rVr19RylSpV/BuWFM6ePau2Dt955x212Q0PqUuAOU8UAi+og+nKlCnTpUsXNzV79+6tS0TSunjxonLWlyhRYuHChXT6c0PtbiaEOHLkiDpHVQHq7V4I4Wa1+EB28uRJtXzLG02zZs127Nghbu6BFWh8aYonJiYqhfDwcDd7u3nz5pUqVVIm205MTBw/frwP8cKqSAABEEII59WpFElJSSSAiuv06dNKofDsKkXVFEK47Kkb4CpVqqQuGet+lI1zT+kGDRr4NyzrczgcTzzxhHL43XvvvePGjTM6Iutx2QPo4sWLJ0+eDA8Pr1y5srpwFdzbtGmTUoiNjS1btqyxwcjt6aefPnbsmBBi/PjxzotYoTDn9SVXrlzZoUMHl9Wc150kje7SpUuX1PItT/CqVasqhaNHj169ejUkJMSPkZmVL01xZXSnEKJ169ZuvoC02WxxcXFK3x/1JQg0tFEAQDPHjx/PysrKysr66KOP3NdUB8YLBpK4EhQUFPonNwOUMjIy1LEMnTt3pkfGLc2aNUuZRaVixYpffvklqYriunHjRkZGhlKuX7/+zp07e/XqFRERUaFChcaNG1etWrVixYp9+vRRpjs1NFILUB8/br/9duffX7ly5eDBgxkZGdevXzciLtls27btyy+/FEKEhYVNmjTJ6HDMrm3btupqnu+//746G52z9evXv/fee0q5efPmjEx0ybkv1S2nm3FeXZG5aYorJydHvTHVqFHDfeXq1asrhfT09Ly8PL8GBnOi5QcAmqnwJ/dfdp09e/Zf//qXUm7YsGFRPcxRgMPhuHr16vHjx3fv3r1s2bJBgwY1bdr0jz/+EEKEh4cr01vAjdTU1AkTJijl2bNn16xZ09h4rOjo0aP5+flKefr06S1atFi2bJlzh75Lly59//33DzzwQKdOnU6dOmVQmBaQnZ2dnp6ulCMiIoQQ58+ff/XVV6Ojo8uXL9+gQYPatWuHhIT85S9/+fDDD7Ozsw0N1tpefPFFpfD88887P5PDJZvNtnjxYmVUV35+fufOnceOHbtp06bMzMzMzMxNmzaNHTu2U6dOynWgcuXKixcvdj/iO2DVrVtXLf/2229uaubm5jpPpH3hwgU/hiWjY8eOqV85VKpUyX1l9SKQl5d3/Phx/0YGU2IIGADo6vr167169bpy5Yry46RJk+iF4aEDBw40atSo8O/j4+PnzJlzy2F3AS43N3fQoEFKl4phw4b16dPH6IgsSR3/JYRYu3atm5pJSUmxsbEbN26Miorye1gWdPLkSXWer4iIiMTExCFDhhRImTkcjs2bN2/evPkf//jHt99+Gxsba0Sk1paYmLh69WohRLVq1Zjvw0PR0dHr16/v37//nj177Hb7p59++umnnxau1rx586+//pqhx0X5y1/+Uq5cOWWevo8//njcuHFKqrewN99888yZM+qPagMJHlKHzAshKlas6L6yc4bI+YUIHDx1AIB+jh492qVLF3Xmi1atWrEWr48aNmz41Vdfkf25pVdeeUVZI7Z27dr0lvKacwJICNGgQYPPPvssIyPj2rVrhw4d+v7770ePHq0OWjxx4kSfPn0KTOoJhfMzXlpaWo8ePdx0mDpy5Ej79u03bNigS2jycDgcL7zwglJ+5ZVXQkNDjY3HQho3brxs2bLbbrutqArh4eHLly93s0wYgoODhw8frpQvX778xBNPFO7a43A4Fi1a9Pbbbzv/kgRQcTmvhnHLHkDOFa5eveqvmGBiJIAAQA/5+fmzZ89u3ry5ulR8vXr1fvrpp5Il6Ynpk9TU1EaNGo0ePfrGjRtGx2JeSUlJ7777rhAiKCho/vz5rAHkNXUJMCHEgAEDtm/fPmLEiMjIyLJly9arV693796ffvrp5s2bq1WrptRRp19BAc7PeLNnz1YGebVv337RokV79+69dOnS1q1b//nPf6pdBrKzs/v168d628Xy3XffKWsq1alTZ8SIEUaHYxkOh2PWrFktWrS4ePFiUXUyMzObN28+d+5cPQOznEmTJqkdUlasWNG0adPZs2dv3779ypUrhw4dWrp0affu3QcOHKiOq1W4mfgPLjkngCpUqOC+snMFEkCBiQQQAPhdUlJSy5YtR40apX791bhx459//lld9gKeaNCgwY0bN5TJDtesWfPqq68qX2jn5+fPmjWrX79+5IBcysrKGjJkiDJBwKRJk5iv1BfVqlXr2bNnz549x40b99VXX5UrV65wnZiYmG+++Ub9cfr06UwIXVjhB49PPvlk3bp1jz76aOPGjcuXL9+qVasxY8bs3r27c+fOSoXTp0+rM+/ilvLy8iZPnqyUJ0+eXLp0aWPjsZC333579OjRyuiYsmXLvvTSSwkJCUePHj169GhCQsKkSZOUaf4uXLgwYsSI6dOnGx2vedWoUWPx4sXOnSJHjRoVExNTvnz56Ojo3r17K4uplStXznlJyvLlyxsTrmU5f5WYm5vrvrLz5PpMQRCgHADgyqBBg5SrRGRkpNGxWNgff/xRYLIVm8323HPPXb9+3ejQZHDq1KnWrVur+/aLL74wOiLTsdvt/fr1U/ZPbGxsbm5u4TrqlJCjRo3SP0JZde/eXT0yDx48aHQ4prNu3TrnC+Po0aOLqnns2DF1Wv2wsDCXxzAKW7ZsmbLTypcvf+XKFaPDsYwlS5aoh2V8fPyRI0cK18nIyIiLi1Orff/99/rHaSEbN250szRVrVq1NmzY4Lx26qZNm4wO2Sw8bIo7LxX/4Ycfun/PGTNmqJW3bNmiZbiwCNJ+AOAv33//fZMmTb777jv1N3FxcZs2bZo+fXqZMmUMDEwaERERX331lbozZ86caWw8JjR//nzleaZcuXILFiyga71uunbtqpZ//fVXAyMxp5CQELUcGhr6zjvvFFWzVq1aTz31lFK+dOlScnKy34OTwqxZs5RCv379nPc23LDb7VOmTFHK5cuX/+abb+64447C1SIjI7/55ht1TqXXXnvNQS+/orVp0+bQoUMzZsyIi4tzXjEtKipq8uTJe/bsadeunfNairecxQYFOJ/g58+fd185KytLLTMvWGBi7gkA0F5WVta4ceMWLFig/qZOnTpTp07t27cv68Vqq0GDBj169FCybDt37rx27ZrLUTkB6/XXX1cKQ4YMOX/+vMtMhDp07vTp02qFkJCQZs2a6ROklJzXBnJe4AYK5weP5s2bu5ltVwjh3Nti3759DGO8pSNHjiiDa4QQw4YNMzQWK9m8efO+ffuU8rPPPhsZGVlUzaioqAkTJigX2F27diUnJzsfpSigXLlyTz/99NNPP339+vXTp09fv349IiKiQoUKaotITQCVLFnSef14eCI8PFwtO+d3XHKuQK4tMJEAAgCNnTx5snPnzqmpqcqPZcuWfeONN/72t78xBYPnLl68qGQlSpQoccs1TZ27WR0/fjw6Otrv8VlHXl6eUpg1a5baI6Aoy5YtU4eNxMTEKNPHwjv169dXy0y0WVjNmjXV8i1X8XM+qZ17CqAoc+bMUfqk1K1bl3yZ5w4ePKiWY2Nj3Vd2HoB84MABEkCeKFu2bFRUVOHfq+d13bp16alaXFWrVg0LC7t06ZIoTg+g8uXLq+sVIKAwBAwAtHTp0qVOnTqp2Z+2bdvu2rXr2WefJftTLGPGjKlSpUqVKlU8Wd/duQXjZtEWQE/Oh6Lz17NQhIWFqdOCFFgDqDDnbn3BwcF+DEsKeXl56upUw4YNo9up544fP66WGzVq5L6y8xrwR48e9VdMAcDhcGzdulUp0/PUCzabTc2SHzp0yH1ltULDhg25OAQmegABgJZGjx594MABpTx8+PDZs2ez0LsX1I73p06dOnfunDpLsUvOzZ0qVar4NzIEsISEhKSkJCFEUFDQlClT3Gd11euAuLm3C1SNGzc+efKkEGLv3r3uazpXYPHEW/rxxx9PnTolhLDZbEOGDDE6HCsJCwtTyydOnKhdu7abys7ZIucXQrV582al/2OVKlWaN29eVLW9e/cqR6wQ4oEHHtApOLmonXa3b9+ek5NTVKI8Jydnx44dSrlFixb6xQczoQcQAGhmy5YtixYtUsqDBg2aO3cu2R/vOHf82blzp/vK6pQNZcuWrV69uh/DsqCMjIxbrgfhchUwxn8VdvXq1WnTpk2bNm3q1Kk//vij+8rqcWuz2dq1a+f/6KynS5cuSmH37t3KkttF2b59u1qOiYnxb1jW99VXXymFFi1auJnFBoU5T/l8y1uPcwWXc0Vj5syZ991333333ffggw+6mSdb7bBms9lIAHlHXXcyNzd39erVRVVLTExU14nv0aOHHpHBfEgAAYBm/vGPfyiF8PDwDz/8kL61Xrv33nvV8vTp093U3LFjh9rW6dChA8ND4D+dOnVSe/188sknbp5nLl++rD7StGnThok2XXrooYeUwtWrV9XZygs7c+bMhx9+qJRr1KjhybDQQHbjxo01a9YoZTKPxdWxY0f1a5tZs2bl5OQUVTMnJ2f27NlKuWTJkh07dtQjPqu5//77lcKxY8f++9//uqxz8uRJ9WrZo0cPuvF6p1OnTuqKqJ999llR1ebMmaMUypYt27lzZz0ig/mQAAIAbWRnZ//0009KuV+/fjzy+SIiIuKee+5RygkJCT/88IPLalevXh0zZozdbld+HD58uE7xISBVrFixf//+Snnt2rVTp051We3GjRvDhw8/e/as8uMLL7ygU3xW06BBA/WxeebMmevWrStcJzc3969//euFCxeUH8ePH09i3b1ff/1V7U7F9M/FVaFChZ49eyrl3bt3v/TSSy7zvA6HY9KkSbt371Z+7Nmzp/tl7AJW165d1fLo0aOzs7MLVMjJyXnsscfUI/bVV1/VLzi5hIaGjho1SikvX75czQI7S0xMXLp0qVIeM2YMS6YGLJub768ABLLBgwcvXLhQCBEZGZmRkWF0OBawc+fOu+66Syl37dq1adOmHr7wqaeecj/RQGBatWqV2nYMDg5+++23n3zyyfLlyyu/yc/PX7NmzZgxY9LT05XfxMbG/vrrr0FBfLFRbOHh4efOnRNCjBo16l//+pfR4Zhaampq8+bNlS70NpvtySefnDJlijrwMC8vb8uWLS+88MLGjRuV33Tr1m3FihXkLIqyZcuW+Ph4pRwUFPTSSy89++yzyrO0w+HYuXPnE088oY7/ioqK2r17t/P68Shs8uTJb731llI+ceKEOtM2PHTgwIE777xTHSbTuXPnjz76SJ0u1+Fw7Nq16+mnn1amAxNClC5deteuXQ0aNDAqYJPr27evukxn+/bt58yZo66QuHv37rFjx6pXy8cee2zevHnGRGlWxWqKnzp1qm7dutevXxdCVKxYcfny5W3btlX/mpSU1KtXLyWZHhIScvjwYZYAC1gkgAC4RgKouJYuXdq7d28vXvjLL78436ShGjlyZIGezHfccUe9evWysrL279/v/F1i1apVk5OTme3COySAimXGjBkTJkxQfyxRokTt2rWjoqLOnDmTmpqqPjcKIerWrbtlyxb3U5jj5ZdffvPNN51/06BBg+rVq+/cuVNdrlgIUa5cuY0bNzJr6S3FxsYqE3jVqVPn8OHDRodjSV9//fWgQYOcf1OpUqXGjRvn5eXt37+/wFqTCxcuHDhwoL4BWsnRo0dbtWql9ogMCgqqV69eZGTk8ePH9+/fr1Zr2bLlL7/8Qp+UAorbFF+0aJHz0dilS5eWLVvm5+cnJyevX79e/f2SJUv69u3rh3hhDcxOCgDaULuiQCsfffRRdnb2/Pnz1d8cPXq08Gq7d95553fffUf2B/p45plnsrOzJ0+erIw9zM/PT0tLS0tLK1Ctbdu2//73v8n+3NLrr79+4cKFjz/+WP3NgQMHnNdQE0LUqFFj+fLlZH9uKTMzc9u2bUqZ7xW8NnDgwNKlSz/++OPq0KTz58+rHVVUYWFhc+fO7dOnj+4BWskdd9zx448/9ujRQ8kB2e32gwcPHjx40LlOx44dv/76a7I/vhswYMCJEycmTpyo3J5WrVq1atUq5wolS5Z8//33yf4EOLrKA4A2fv/9d6NDkE1wcPC8efOWLFnSsmVLlxXq1q37ySefbNmyRe1SDujgxRdf/O9//3v//fe7HNvVpEmT+fPnJyUlMZupJ2w220cffZSQkNC6devCf61cufLkyZP37dvH4l+eWL16tdq1nwmAfNGnT599+/aNGzfO5fruYWFh48eP37t3L9kfT7Ru3Xrbtm2DBg0qPEa7Xr16M2bMWL16dUREhCGxyee5557bsGGDy9O/ffv2GzduHDdunP5RwVQYAgYAsIDjx49v3rz51KlTly5dKl++fNWqVVu3bl2nTh1mV4GBsrKy0tLS0tPTMzIySpUqFRERERcXV6dOHaPjsqr09PStW7eeOnXq2rVrVapUadSoUXx8fIkSJYyOC4ErLy8vJSVl3759mZmZQojw8PAmTZrExMSoi4XBc5mZmevWrTt69Gh+fn6tWrXq16/fqlUrbuJ+kpaWlpKScuLECSFErVq1WrduzXSTUJAAAgAAAAAAkBxDwAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAAAAAJEcCCAAAAAAAQHIkgAAAAAAAACRHAggAAAAAAEByJIAAAAAAAAAkRwIIAAAAAABAciSAAAAAirRgwQKbBypUqFCvXr3+/ft/9tln165dMzpqAACAgkgAAQAA+OrixYuHDx9esmTJyJEjIyMjFy5caHRELowePVrNWD399NO6vRYAAJhBSaMDAAAAkEpmZubgwYPT09MnT55sdCzF8OOPP6akpAgh6tWrN3jwYKPDAQAAGiMBBAAA4JGxY8e2a9eu8O8vXLhw4MCBlJSUjRs3qr98+eWXW7Vq1a1bNx0D9MmPP/44a9YsIUTXrl1JAAEAIB8SQAAAAB65++67H330UTcVVqxYMXr06GPHjik/vvjii127drXZbLpEBwAA4A4JIAAAAG1079598eLFbdq0cTgcQojffvtt+/btMTExRsf1PxMmTFATWLVq1dLttQAAwAxIAAEAAGjm7rvvfuyxx+bNm6f8mJSUZJ4EUHR0dHR0tP6vBQAAZsAqYAAAAFqKj49Xy4cPHzYwEgAAABU9gAAAALTUoEEDtXzu3Dk3NfPz85OTkw8cOHD69OlSpUpVq1btzjvvbNq0qYfTBl2/fv33338/fPjw4cOHS5UqVbdu3Tp16tSpU6dUqVK+boMPfNwoZ3v27Nm1a9fx48dvu+226OjoJk2aVK1a1R8xAwAQCEgAAQAAaOnUqVNquUyZMi7rXLp06Z133vnss88yMzML/On222+fMGHCmDFjgoODi/qIkydPTpky5euvv7569WqBP0VERPztb3977rnnSpcuXeBPKSkpsbGxSjk9PT0qKkoIMXPmzGeeeca52s8//6wma/bv39+wYcOiXqvVRqlvHhkZmZGRIYTYtGnT3//+982bNztXK1GixJNPPvnqq69GRES42isAAMAdhoABAABoaffu3Wq5evXqhSvs3LmzUaNGU6dOLZwoEUIcO3bsmWeeadWq1fHjx12+/7p16xo1avTZZ58Vzv4IIf7444+XXnqpY8eOLv/qPz5ulLMvvviiY8eOBbI/Qoj8/Px//etfTZo02bdvnzZBAwAQSOgBBAAAoJnMzMzPP/9c/bFdu3YFKuzbt699+/aXLl1Sf9O4ceP69evn5eXt27cvPT1d+eWePXvatGmzbdu28PBw55cfPny4R48e165dU34sVapUs2bN7rjjjitXrhw8ePDo0aPK7//73/9OmDBh1qxZtww4IiIiLi5OCPH777+fPXtWCBEWFtaoUSPlr0X1YNJ2o5ytXbt2xIgRdru9XLly3bp1i46OzsrK2rFjR3JyslLh/Pnzjz322NatW70YUwYAQEBzAAAAoAjz589XW03z5893X/nSpUsPPfSQWr9SpUpXrlxxrpCbm9uyZUu1Qtu2bXft2qX+1W63b9iwQU2+CCH69etX4CMGDBig/nX48OEnT55U/5Sfn7906dKQkBDlr0FBQX/88Yfza7du3aq+Nj09vcA7jxo1SvlT165dC2+am9f6vlHqm1esWLFatWpCiL59+549e9a5zvLly0NDQ9U3OXToUOEgAQCAGwwBAwAA8MnFixeTk5P/+c9/NmjQYPny5ervn3/+eTUdo1i8ePH27duV8n333bdmzZpmzZqpf7XZbO3atdu4cWOTJk2U3yxZskStL4TIz8//4YcflHKnTp3mzJnjPMQsKCjo4Ycffv/995Uf7XZ7YmKilttZBB83yllWVtbp06cfeuihb775pkAvoQcffPDdd99Vf0xJSdF4MwAAkB0JIAAAAI8MGTLE5kqFChXi4uKeeuop5+mfO3To8OyzzxZ4h3/+859KITQ09IsvvnA5I3KlSpXmzp1b+CVCiMzMTHXw14MPPhgU5KIh9+CDD4b8yTke//FxowooUaLE9OnTXW7akCFD1PLhw4e9jxgAgIBEAggAAEBj999//w8//FCy5E2TLZ4/f16d2Hjw4ME1a9Ys6uVxcXHq5EErVqxwOBxK+bbbblMnvikquVOjRo0rfyqcgdKc7xtVwMCBA6Ojo13+KTQ0NDIyUikX9XIAAFAUEkAAAACaueuuuxYuXPjjjz+GhYUV+NOvv/6qlrt37+7+fR544AGlcOrUqRMnTijlMmXK1K5dWynPnDnz22+/NTwP4vtGFRAfH+/mHTyclBoAABTGKmAAAAAeGTt2bOFVvRRBQUFVqlSJjo520wXm4MGDarlOnTruPysqKkotp6am1qpVSylPmDDhr3/9qxAiNze3X79+LVq0eOSRR7p06XLXXXeVKlXK403RjCYb5ax+/foahQYAAG5CAggAAMAjd99996OPPur1yy9cuKCW1aFMRXGukJWVpZbHjh3766+/LliwQPlxx44dO3bsmDx5ckhISHx8/D333NOrV68mTZrotkS6JhvlzDlJBAAANMQQMAAAAD1cuXJFKYSEhDivaO6Sc0+iixcvqmWbzTZ//vyffvrJeWF1IcTVq1cTExNfeeWVZs2aRUdHf/rpp3a7XXZbPGYAAAZVSURBVLvYi6TJRjkzpB8TAACBgAQQAACAHtT8yNWrV9W8SVHOnj1b+IWq7t277927d/fu3W+++Wbr1q0LrJmVlpY2duzYNm3aFNXLRkMabhQAAPArEkAAAAB6qFChglo+cuSI+8q///67Wq5UqVLhCjabrWnTpi+99NKWLVsuXLiQkJAwadKk5s2bqxV+/fXX8ePH+xz1LWi7UQAAwH9IAAEAAOjBeXXzjIwM95WdcyW3nFy5fPnyXbt2feutt3777bfNmzerK4XNnz//9OnTXobrGf9tFAAA0BYJIAAAAD3ExcWp5ZUrV7qvvGLFCqVQtWrVunXrKuX//Oc/b7755ptvvvnuu+8WtQB8fHz8hx9+qP64d+9en4K+Fd83CgAA6IMEEAAAgB4qV67cunVrpTx//vw//vijqJpbtmxZv369Uu7WrZu6pNeGDRtefvnll19+eeLEiampqUW9vFq1amr50qVLGoReNN83CgAA6IMEEAAAgE7Gjh2rFC5dujR8+PDc3NzCdTIzM4cPH67++Ne//lUtN27cWC3PnTu3qE/57rvv1LIXHW2ys7OLVd/HjQIAAPogAQQAAKCTAQMGqPM0JyQkdO3add++fepfHQ5HUlJS27Zt9+/fr/ymb9++sbGxaoX777+/ZMmSSvn9999/9913r1696vz+mZmZkydPfvfdd5UfGzRo0LRpUw9jU7vkbN++fc+ePQ6H48KFCzdu3PD3RgEAAH2UNDoAAACAQFG6dOkFCxb85S9/uXz5shAiKSmpSZMmzZo1q1u3bn5+/p49e9LT09XKUVFRn376qfPLIyIiRo8e/fHHHys/Tpw48c0332zRokXlypXz8/NPnDixe/du5w44H3zwgecjrdS+QpcvX27WrJnNZnM4HPv372/YsKFfNwoAAOiDBBAAAIB+mjZtmpSU1L17d3V9rt27d+/evbtAtebNm69YsaJy5coFfj99+vTU1NQ1a9YoP16+fHnDhg2FPyU4OPizzz7r2rWr54H17dv37bffzsrKUn4sapJpl3zcKAAAoAOGgAEAAOiqZcuWqampf//73ytWrFj4r3fccccHH3yQnJxco0aNwn8tU6ZMQkLCBx98UNQy6qGhoUOHDt27d++QIUOKFVVkZOSGDRseeeSRmjVrlipVqkaNGrGxseXKlfPw5b5sFAAA0IGtWF/vAAAAQCt5eXnJyckHDhw4c+ZMiRIlqlWrdtdddzVt2tSTcVsOhyM9Pf3o0aPHjh07ceJEhQoVIiMjIyMj69SpU6ZMGR2CL4ovGwUAAPyHBBAAAAAAAIDkGAIGAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBBAAAAAAAIDkSQAAAAAAAAJIjAQQAAAAAACA5EkAAAAAAAACSIwEEAAAAAAAgORJAAAAAAAAAkiMBhP9rxw5kAAAAAAb5W9/jK4wAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwIIAAAAYE4AAQAAAMwJIAAAAIA5AQQAAAAwJ4AAAAAA5gQQAAAAwJwAAgAAAJgTQAAAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMCSAAAACAOQEEAAAAMCeAAAAAAOYEEAAAAMCcAAIAAACYE0AAAAAAcwIIAAAAYE4AAQAAAMwJIAAAAIA5AQQAAAAwJ4AAAAAA5gQQAAAAwJwAAgAAAJgTQAAAAABzAggAAABgTgABAAAAzAkgAAAAgDkBBAAAADAngAAAAADmBBAAAADAnAACAAAAmBNAAAAAAHMCCAAAAGBOAAEAAADMBeb5wwobCcU4AAAAAElFTkSuQmCC" title alt width="768" /></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
330 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
331 <div id="motifrg-motif-discovery-statistics" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
332 <h2><span class="header-section-number">4.2</span> motifRG motif discovery statistics</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
333 <p><strong>Table 2 :</strong> motifRG motif discovery statistics. fg: foreground; bg: background; hits: number of motif hits; seq: number of sequences with motifs; frac: fraction of sequences that contain the motif compared to the all sequences; ratio: ratio of foreground motif fraction versus background motif fraction</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
334 <p><div id="htmlwidget-40217ac6bfc39f0c0b8c" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
335 <script type="application/json" data-for="htmlwidget-40217ac6bfc39f0c0b8c">{"x":{"filter":"bottom","filterHTML":"<tr>\n <td>\u003c/td>\n <td data-type=\"factor\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"width: 100%; display: none;\">\n <select multiple=\"multiple\" style=\"width: 100%;\" data-options=\"["ATTTTT","TTTATT","TTTTCT","TTTTTA"]\">\u003c/select>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"22.2\" data-max=\"27.9\" data-scale=\"1\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"1280\" data-max=\"1864\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"296\" data-max=\"412\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"integer\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"1200\" data-max=\"1746\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"integer\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"282\" data-max=\"393\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"4.1\" data-max=\"4.6\" data-scale=\"1\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0.1201\" data-max=\"0.1747\" data-scale=\"4\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0.0282\" data-max=\"0.0393\" data-scale=\"4\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n\u003c/tr>","extensions":["Buttons","FixedColumns"],"data":[["1","2","3","4"],["ATTTTT","TTTTTA","TTTTCT","TTTATT"],[26,27.9,22.2,22.3],[1719,1864,1280,1402],[412,404,296,341],[1623,1746,1200,1280],[393,391,282,314],[4.2,4.6,4.3,4.1],[0.1624,0.1747,0.1201,0.1281],[0.0393,0.0391,0.0282,0.0314]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>patterns\u003c/th>\n <th>scores\u003c/th>\n <th>fgHits\u003c/th>\n <th>bgHits\u003c/th>\n <th>fgSeq\u003c/th>\n <th>bgSeq\u003c/th>\n <th>ratio\u003c/th>\n <th>fgFrac\u003c/th>\n <th>bgFrac\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"dom":"Bfrtip","buttons":["copy","print","csv","excel","pdf"],"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6,7,8,9]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
336 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
337 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
338 <div id="go-term-analysis-results" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
339 <h1><span class="header-section-number">5</span> GO Term Analysis Results</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
340 <div id="biological-processes" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
341 <h2><span class="header-section-number">5.1</span> Biological Processes</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
342 <p><strong>Table 3 :</strong> Significant Biological Process GO terms (FDR < 0.1) enriched for genes that overlap query regions <div id="htmlwidget-fcb926654e5855b232ce" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
343 <script type="application/json" data-for="htmlwidget-fcb926654e5855b232ce">{"x":{"filter":"bottom","filterHTML":"<tr>\n <td>\u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n\u003c/tr>","extensions":["Buttons","FixedColumns"],"data":[[],[],[],[],[],[],[]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>Term\u003c/th>\n <th>Significant\u003c/th>\n <th>Expected\u003c/th>\n <th>bonferroni\u003c/th>\n <th>bh\u003c/th>\n <th>foldEnrichment\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"dom":"Bfrtip","buttons":["copy","print","csv","excel","pdf"],"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
344 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
345 <div id="molecular-functions" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
346 <h2><span class="header-section-number">5.2</span> Molecular Functions</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
347 <p><strong>Table 4 :</strong> Significant Molecular Function GO terms (FDR < 0.1) enriched for genes that overlap query regions <div id="htmlwidget-01627777789ec9a5ee6d" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
348 <script type="application/json" data-for="htmlwidget-01627777789ec9a5ee6d">{"x":{"filter":"bottom","filterHTML":"<tr>\n <td>\u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n\u003c/tr>","extensions":["Buttons","FixedColumns"],"data":[[],[],[],[],[],[],[]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>Term\u003c/th>\n <th>Significant\u003c/th>\n <th>Expected\u003c/th>\n <th>bonferroni\u003c/th>\n <th>bh\u003c/th>\n <th>foldEnrichment\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"dom":"Bfrtip","buttons":["copy","print","csv","excel","pdf"],"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
349 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
350 <div id="cellular-compartments" class="section level2"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
351 <h2><span class="header-section-number">5.3</span> Cellular Compartments</h2> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
352 <p><strong>Table 5 :</strong> Significant Cellular Compartment GO terms (FDR < 0.1) enriched for genes that overlap query regions <div id="htmlwidget-094df49baa235f29e311" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
353 <script type="application/json" data-for="htmlwidget-094df49baa235f29e311">{"x":{"filter":"bottom","filterHTML":"<tr>\n <td>\u003c/td>\n <td data-type=\"character\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"integer\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"10\" data-max=\"11\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"3.97\" data-max=\"7.57\" data-scale=\"2\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0.001054\" data-max=\"0.21097\" data-scale=\"15\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"0.000935\" data-max=\"0.023441111111112\" data-scale=\"15\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"number\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n <div style=\"display: none; position: absolute; width: 200px;\">\n <div data-min=\"1.45\" data-max=\"2.52\" data-scale=\"2\">\u003c/div>\n <span style=\"float: left;\">\u003c/span>\n <span style=\"float: right;\">\u003c/span>\n \u003c/div>\n \u003c/td>\n\u003c/tr>","extensions":["Buttons","FixedColumns"],"data":[["GO:0044446","GO:0044422","GO:0043231","GO:0043227","GO:0043229","GO:0005737","GO:0043226","GO:0005622","GO:0044424"],["intracellular organelle part","organelle part","intracellular membrane-bounded organelle","membrane-bounded organelle","intracellular organelle","cytoplasm","organelle","intracellular","intracellular part"],[10,10,11,11,11,10,11,11,11],[3.97,4.15,6.13,6.49,6.85,6.31,7.21,7.57,7.57],[0.001054,0.00187,0.01156,0.02448,0.04896,0.21097,0.09401,0.17408,0.17408],[0.000935,0.000935,0.00385333333333333,0.00612,0.009792,0.0234411111111111,0.0156683333333333,0.02176,0.02176],[2.52,2.41,1.79,1.69,1.61,1.58,1.53,1.45,1.45]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>Term\u003c/th>\n <th>Significant\u003c/th>\n <th>Expected\u003c/th>\n <th>bonferroni\u003c/th>\n <th>bh\u003c/th>\n <th>foldEnrichment\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"dom":"Bfrtip","buttons":["copy","print","csv","excel","pdf"],"columnDefs":[{"className":"dt-right","targets":[2,3,4,5,6]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
354 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
355 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
356 <div id="gene-set-enrichment-analysis-results" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
357 <h1><span class="header-section-number">6</span> Gene Set Enrichment Analysis Results</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
358 <p><strong>Table 6 :</strong> Significant MSigDB Gene Sets (FDR < 0.1) enriched for genes that overlap query regions</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
359 <p><div id="htmlwidget-04cfc9c557834f0fe974" style="width:100%;height:auto;" class="datatables html-widget"></div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
360 <script type="application/json" data-for="htmlwidget-04cfc9c557834f0fe974">{"x":{"filter":"bottom","filterHTML":"<tr>\n <td>\u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n <td data-type=\"disabled\" style=\"vertical-align: top;\">\n <div class=\"form-group has-feedback\" style=\"margin-bottom: auto;\">\n <input type=\"search\" placeholder=\"All\" class=\"form-control\" style=\"width: 100%;\"/>\n <span class=\"glyphicon glyphicon-remove-circle form-control-feedback\">\u003c/span>\n \u003c/div>\n \u003c/td>\n\u003c/tr>","extensions":["Buttons","FixedColumns"],"data":[[],[],[],[],[],[]],"container":"<table class=\"display\">\n <thead>\n <tr>\n <th> \u003c/th>\n <th>treatment\u003c/th>\n <th>expectedInTreatment\u003c/th>\n <th>BH\u003c/th>\n <th>bonferroni\u003c/th>\n <th>foldEnrichment\u003c/th>\n \u003c/tr>\n \u003c/thead>\n\u003c/table>","options":{"fixedColumns":true,"scrollX":true,"dom":"Bfrtip","buttons":["copy","print","csv","excel","pdf"],"columnDefs":[{"className":"dt-right","targets":[1,2,3,4,5]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":[],"jsHooks":[]}</script></p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
361 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
362 <div id="acknowledgements" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
363 <h1><span class="header-section-number">7</span> Acknowledgements</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
364 <p>RCAS is developed in the group of <a href="http://bioinformatics.mdc-berlin.de/team.html#altuna-akalin-phd">Altuna Akalin</a> (head of the Scientific Bioinformatics Platform) by <a href="http://bioinformatics.mdc-berlin.de/team.html#bora-uyar-phd">Bora Uyar</a> (Bioinformatics Scientist), <a href="http://bioinformatics.mdc-berlin.de/team.html#dilmurat-yusuf-phd">Dilmurat Yusuf</a> (Bioinformatics Scientist) and <a href="http://bioinformatics.mdc-berlin.de/team.html#ricardo-wurmus">Ricardo Wurmus</a> (System Administrator) at the Berlin Institute of Medical Systems Biology (<a href="https://www.mdc-berlin.de/13800178/en/bimsb">BIMSB</a>) at the Max-Delbrueck-Center for Molecular Medicine (<a href="https://www.mdc-berlin.de">MDC</a>) in Berlin.</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
365 <p>RCAS is developed as a bioinformatics service as part of the <a href="http://www.denbi.de/index.php/rbc">RNA Bioinformatics Center</a>, which is one of the eight centers of the German Network for Bioinformatics Infrastructure (<a href="http://www.denbi.de/">de.NBI</a>).</p> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
366 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
367 <div id="session-information" class="section level1"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
368 <h1><span class="header-section-number">8</span> Session Information</h1> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
369 <pre><code>## R version 3.3.1 (2016-06-21) |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
370 ## Platform: x86_64-pc-linux-gnu (64-bit) |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
371 ## Running under: Ubuntu 16.04.2 LTS |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
372 ## |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
373 ## locale: |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
374 ## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
375 ## [3] LC_TIME=de_DE.UTF-8 LC_COLLATE=en_US.UTF-8 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
376 ## [5] LC_MONETARY=de_DE.UTF-8 LC_MESSAGES=en_US.UTF-8 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
377 ## [7] LC_PAPER=de_DE.UTF-8 LC_NAME=C |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
378 ## [9] LC_ADDRESS=C LC_TELEPHONE=C |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
379 ## [11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
380 ## |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
381 ## attached base packages: |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
382 ## [1] grid stats4 parallel stats graphics grDevices utils |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
383 ## [8] datasets methods base |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
384 ## |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
385 ## other attached packages: |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
386 ## [1] org.Hs.eg.db_3.3.0 RCAS_1.1.1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
387 ## [3] motifRG_1.18.0 BSgenome.Hsapiens.UCSC.hg19_1.4.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
388 ## [5] BSgenome_1.42.0 rtracklayer_1.34.1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
389 ## [7] GenomicRanges_1.26.1 GenomeInfoDb_1.8.7 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
390 ## [9] seqLogo_1.38.0 Biostrings_2.40.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
391 ## [11] XVector_0.12.1 topGO_2.24.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
392 ## [13] SparseM_1.7 GO.db_3.3.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
393 ## [15] AnnotationDbi_1.36.0 IRanges_2.8.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
394 ## [17] S4Vectors_0.12.0 Biobase_2.32.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
395 ## [19] graph_1.50.0 BiocGenerics_0.20.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
396 ## [21] data.table_1.10.0 DT_0.2 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
397 ## [23] plotly_4.5.2 ggplot2_2.2.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
398 ## |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
399 ## loaded via a namespace (and not attached): |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
400 ## [1] Rcpp_0.12.8 lattice_0.20-34 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
401 ## [3] tidyr_0.6.0 Rsamtools_1.26.1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
402 ## [5] assertthat_0.1 digest_0.6.9 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
403 ## [7] gridBase_0.4-7 R6_2.2.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
404 ## [9] plyr_1.8.4 evaluate_0.10 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
405 ## [11] RSQLite_1.0.0 httr_1.2.1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
406 ## [13] zlibbioc_1.18.0 GenomicFeatures_1.26.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
407 ## [15] lazyeval_0.2.0 Matrix_1.2-6 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
408 ## [17] rmarkdown_0.9.5 BiocParallel_1.6.6 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
409 ## [19] readr_0.2.2 stringr_1.1.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
410 ## [21] htmlwidgets_0.8 RCurl_1.95-4.8 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
411 ## [23] biomaRt_2.28.0 munsell_0.4.3 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
412 ## [25] base64enc_0.1-3 htmltools_0.3.5 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
413 ## [27] SummarizedExperiment_1.4.0 tibble_1.2 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
414 ## [29] matrixStats_0.51.0 XML_3.98-1.4 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
415 ## [31] viridisLite_0.1.3 dplyr_0.5.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
416 ## [33] GenomicAlignments_1.10.0 bitops_1.0-6 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
417 ## [35] jsonlite_0.9.19 gtable_0.2.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
418 ## [37] DBI_0.4-1 formatR_1.4 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
419 ## [39] magrittr_1.5 scales_0.4.1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
420 ## [41] KernSmooth_2.23-15 stringi_1.1.2 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
421 ## [43] impute_1.46.0 reshape2_1.4.2 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
422 ## [45] RColorBrewer_1.1-2 tools_3.3.1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
423 ## [47] seqPattern_1.6.0 purrr_0.2.2 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
424 ## [49] yaml_2.1.13 plotrix_3.6-1 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
425 ## [51] colorspace_1.3-1 genomation_1.6.0 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
426 ## [53] knitr_1.12.3</code></pre> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
427 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
428 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
429 <script type="text/javascript"> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
430 var RCAS = (function () { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
431 function captureSVG (that, selector) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
432 var container = document.querySelector(selector).parentNode, |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
433 height = container.offsetHeight, |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
434 width = container.offsetWidth, |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
435 svgs = container.querySelectorAll('svg.main-svg'), |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
436 prefix = 'data:image/svg+xml;base64,', |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
437 data = '', |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
438 draglayers = []; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
439 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
440 for (var i = 0; i < svgs.length; i++) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
441 // Remove drag layer because it looks like a black box |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
442 // when rendered in Inkscape. This won't remove the |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
443 // element from the DOM because we use querySelectorAll, |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
444 // which returns a static node list. |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
445 draglayers = svgs[i].getElementsByClassName('draglayer'); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
446 while (draglayers.length > 0) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
447 draglayers[0].parentNode.removeChild(draglayers[0]); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
448 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
449 // Some plots may contain non UTF-8 characters that cause |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
450 // btoa to fail in Firefox, so we remove them with a call |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
451 // to "replace". |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
452 data = data + svgs[i].innerHTML.replace(/[\u0100-\uFFFF]/g,''); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
453 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
454 data = prefix + btoa('<?xml version="1.0" standalone="yes"?>'+ |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
455 '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="' + width +'" ' + |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
456 'height="' + height + '"' + '>' + |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
457 data + '</svg>'); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
458 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
459 // override link target |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
460 that.href = data; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
461 return true; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
462 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
463 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
464 function generateModebarButton (selector) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
465 var el = document.createElement('div'), |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
466 button = '<a href=# download="rcas.svg" onClick=\'RCAS.captureSVG(this, "'+ |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
467 selector + '")\' ' + |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
468 'data-gravity="n" data-toggle="false" data-title="Download plot as a SVG" class="modebar-btn" rel="tooltip">' + |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
469 '<svg viewBox="0 0 1000 1000" width="1em" height="1em">'+ |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
470 '<path transform="matrix(1 0 0 -1 0 850)" d="m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z"></path>'+ |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
471 '</svg>'+ |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
472 '</a>'; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
473 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
474 el.innerHTML = button; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
475 el.className = 'modebar-group'; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
476 return el; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
477 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
478 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
479 function injectLink (pathToWidget) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
480 var widget = document.getElementById(pathToWidget), |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
481 button = generateModebarButton('#' + pathToWidget + ' .main-svg'), |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
482 bar = widget.getElementsByClassName('modebar')[0]; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
483 // insert at the very beginning |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
484 bar.insertBefore(button, bar.firstChild.nextSibling); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
485 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
486 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
487 // inject links in every widget |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
488 function init () { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
489 var nodes = document.getElementsByClassName('js-plotly-plot'); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
490 for (var i = 0; i < nodes.length; i++) { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
491 injectLink(nodes[i].id); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
492 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
493 } |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
494 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
495 return { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
496 captureSVG: captureSVG, |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
497 init: init |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
498 }; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
499 })(); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
500 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
501 window.onload = RCAS.init; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
502 </script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
503 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
504 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
505 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
506 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
507 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
508 </div> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
509 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
510 <script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
511 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
512 // add bootstrap table styles to pandoc tables |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
513 $(document).ready(function () { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
514 $('tr.header').parent('thead').parent('table').addClass('table table-condensed'); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
515 }); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
516 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
517 </script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
518 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
519 <!-- dynamically load mathjax for compatibility with self-contained --> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
520 <script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
521 (function () { |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
522 var script = document.createElement("script"); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
523 script.type = "text/javascript"; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
524 script.src = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"; |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
525 document.getElementsByTagName("head")[0].appendChild(script); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
526 })(); |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
527 </script> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
528 |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
529 </body> |
aa9579837a2e
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/rna_tools/rcas/ commit 3b9aec9beb72407e01f4a0c5b31c17ac3f92a851
rnateam
parents:
diff
changeset
|
530 </html> |