.contain-pri-tdfs{display:flex;flex-wrap:wrap;justify-content:space-between}.contain-pri-tdfs label{flex:1 0 99%;font-weight:400 !important;margin-bottom:.65rem}.contain-pri-tdfs .firstName,.contain-pri-tdfs .lastName{flex:0 0 49%}.contain-pri-tdfs .middleName{display:none}.containPanel{margin:0 auto;max-width:960px;padding:20px 0 40px;position:relative;text-align:center\9;width:100%;z-index:3}@media (max-width: 37.5em){.containPanel{padding:0 0 40px}}@media (min-width: 37.51em) and (max-width: 63.99em){.containPanel{margin:0% 2.5%;width:95%}}@media (min-width: 64em){.containPanel{max-width:960px}}.containPanel .content{padding:2% 2.5%;text-align:left;width:100%}@media (min-width: 37.5em){.containPanel .content{margin:0 auto;padding:15px 0;text-align:left}.containPanel .content .left{border-left:1px solid #333;float:left;padding:0 15px;width:280px}.containPanel .content .right{border-right:1px solid #333}.containPanel .content form{margin:0 0 10px 0}}.containPanel .bd-logo-main{margin:0}.containPanel .bd-logo-main{display:block;float:none;width:40%}.containPanel .bd-logo-main img{height:auto;width:100%}.containPanel .containContentForm h3{font-size:1.375rem;font-weight:400}@media (max-width: 37.5em){.containPanel .containContentForm h3{font-size:1.2rem}}.containPanel .containContentForm p{font-weight:400;margin-bottom:.5em}.containPanel .containContentForm p.txtSocialInstructions{font-size:.75rem}.containPanel .containContentForm p:nth-child(3){font-size:.75rem}.containPanel .containContentForm .containSocialButtons{margin:10px 0}.containPanel .required-text{color:#B6112D;font-size:0.722em;margin-bottom:1.5em;position:inherit;top:0}.containPanel input{font-size:0.889em;margin-bottom:0;padding:.5em .5em .5em 2.25em}.containPanel input[placeholder]{color:#424242;font-size:0.889em;font-style:normal !important;font-weight:400 !important;padding:.5em .5em .5em 2.25em;transition:all, 0.3s, ease}.containPanel ::-webkit-input-placeholder{color:#769ace}.containPanel :-moz-placeholder{color:#769ace}.containPanel ::-moz-placeholder{color:#769ace}.containPanel :-ms-input-placeholder{color:#769ace}.containPanel label[for=country] select{padding:.5em .5em .5em 2.25em}.containPanel .firstName,.containPanel .lastName,.containPanel .email,.containPanel .emailConfirm,.containPanel .phoneNumber,.containPanel .countrySelect{position:relative}.containPanel .firstName:before,.containPanel .lastName:before,.containPanel .email:before,.containPanel .emailConfirm:before,.containPanel .phoneNumber:before,.containPanel .countrySelect:before{color:#769ace;height:1em;left:.7em;position:absolute;top:.5em;width:1em}.containPanel .firstName:before,.containPanel .lastName:before{content:url(/browser/img/icons/form-name.svg)}.containPanel .email:before,.containPanel .emailConfirm:before{content:url(/browser/img/icons/form-email.svg)}.containPanel .phoneNumber:before{content:url(/browser/img/icons/form-phone.svg)}.containPanel .countrySelect:before{content:url(/browser/img/icons/form-country.svg)}.containPanel .label-standard{color:#769ace;font-size:1em;padding:.2em .5em;position:absolute;z-index:99}.reveal-left{clear:none;float:left;position:relative;width:40%}@media (max-width: 37.5em){.reveal-left{clear:both;margin:2.5% 0px;width:100%}}.reveal-right{background:#f7f7f7;border:1px dashed #ccc;border-radius:10px;clear:none;float:left;margin-left:5%;padding:20px 5%;width:55%}@media (max-width: 37.5em){.reveal-right{border:1px dashed #ccc;border-radius:.5em;clear:both;margin-bottom:2em;margin-left:0px;margin-top:2.5%;padding:.5em 1em;width:100%}}.reveal-right.ty{background:none;border:0px}@media (min-width: 37.51em){.reveal-right.ty{padding:20px;top:40px}}@media (max-width: 64em){.reveal-right.ty{background:none;border:0px;padding:0px}}.container-first-50{margin-bottom:.5em}.tdfs_padB{padding-bottom:1em}@media (max-width: 37.5em){.tdfs_padB{padding-bottom:0}}.tdfs_us_number,.tdfsPhoneNumber{display:block;font-size:2.444em;line-height:1.25em;white-space:nowrap}@media (max-width: 37.5em){.tdfs_us_number,.tdfsPhoneNumber{display:initial;font-size:1.5em;padding-right:.25em}}.tdfs_worldwide_number{font-size:1.389em;white-space:nowrap}.txt-phone-area{color:#507ec0}.txt-ww-phone{display:block;font-size:1.667em;line-height:1.25em}@media (max-width: 37.5em){.txt-ww-phone{display:initial;font-size:1.5em;padding-right:.25em}}.txt-no-case{color:#233a78;font-size:2.667em;font-weight:300;line-height:1em;margin:0;padding:0 0 5px}.text-for-sale{color:#c81231;display:block;font-size:.583em}@media (max-width: 37.5em){.txt-agree-terms{font-size:.8em}}#continue-form-button{background:linear-gradient(to bottom, #d21334 45%, #c81231 52%);border:none;border-radius:.5em;color:#fff;cursor:pointer;display:inline-block;font-size:1em;font-weight:700;margin-top:20px;opacity:1;padding:.75em 1.5em;text-align:center;transition:all, 400ms, ease-in-out}#continue-form-button:hover{box-shadow:inset 0 -3px 0px rgba(0,0,0,0.25);opacity:1}.btn-form-submit.toggle-original{background:url(/browser/img/bg-target-bd-icon.png) no-repeat right top;display:inline-block;min-height:79px;padding:0;padding-right:22px}.btn-form-submit.toggle-original:hover{background-color:transparent}.btn-form-submit.toggle-original strong{background:linear-gradient(to bottom, #c81231 0%, #bd112f 100%);border:1px solid #ccc;border-radius:10px;color:#fff;display:block;font-size:1.111em;margin:.85em .75em .75em 0;padding:.35em 1em;text-shadow:0 1px 2px rgba(0,0,0,0.3);transition:all, 1s, ease-in-out}.btn-form-submit.toggle-original strong:hover{background:linear-gradient(to bottom, #c81231 5%, #bd112f 5%);text-shadow:0 -1px 2px rgba(255,255,255,0.5)}#txt-phone-world span{font-size:.889em}span.select{color:#507ec0 !important;font-size:.8em;padding:.2em 2.8em}.btn-depressed,.btn-disabled{background:#d5d5d5;border:1px solid #f7f7f7;border-radius:.4em;color:#fff;font-size:1.3em;font-weight:500;margin:10px 0px 0px 0px;padding:.6em .2em;text-align:center;text-decoration:none}.btn-disabled{box-shadow:inset 0px 0px 15px rgba(90,90,90,0.7)}.btn-modal-feature{margin:0 auto;text-align:center}.btn-modal-feature img{width:100%}.txt-thanks{font-size:1.3em;font-weight:600}@media (max-width: 37.5em){.txt-thanks{color:#233a78;font-size:1.2em;font-weight:700;margin:0 0 10px 0}}.video-text{display:inline-block;font-style:italic;font-weight:400;margin-bottom:10px;margin-top:10px}@media (max-width: 37.5em){.video-text{font-style:italic}}@media (max-width: 64em){.video-text{display:inline-block;font-style:italic;margin-bottom:10px;margin-top:10px;width:100%}}.withQuote{float:left;margin:0px 5% 0px 0px;width:50%}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZGVyL2EvdGRmc0Jhc2UuY3NzIiwic291cmNlcyI6WyJsYW5kZXIvYS90ZGZzQmFzZS5zY3NzIiwiX2luY2x1ZGUtbWVkaWEuc2NzcyIsIl9ib3VyYm9uLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2J1dHRvbnMtbGlzdC5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zY2FsZXMuc2NzcyIsImJvdXJib24vaGVscGVycy9fdGV4dC1pbnB1dHMtbGlzdC5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fc2V0dGluZ3Muc2NzcyIsImJvdXJib24vdmFsaWRhdG9ycy9fY29udGFpbnMuc2NzcyIsImJvdXJib24vdmFsaWRhdG9ycy9fY29udGFpbnMtZmFsc3kuc2NzcyIsImJvdXJib24vdmFsaWRhdG9ycy9faXMtY29sb3Iuc2NzcyIsImJvdXJib24vdmFsaWRhdG9ycy9faXMtbGVuZ3RoLnNjc3MiLCJib3VyYm9uL3ZhbGlkYXRvcnMvX2lzLW51bWJlci5zY3NzIiwiYm91cmJvbi92YWxpZGF0b3JzL19pcy1zaXplLnNjc3MiLCJib3VyYm9uL3V0aWxpdGllcy9fYXNzaWduLWlucHV0cy5zY3NzIiwiYm91cmJvbi91dGlsaXRpZXMvX2NvbXBhY3Qtc2hvcnRoYW5kLnNjc3MiLCJib3VyYm9uL3V0aWxpdGllcy9fZGlyZWN0aW9uYWwtcHJvcGVydHkuc2NzcyIsImJvdXJib24vdXRpbGl0aWVzL19mZXRjaC1ib3VyYm9uLXNldHRpbmcuc2NzcyIsImJvdXJib24vdXRpbGl0aWVzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiYm91cmJvbi91dGlsaXRpZXMvX2dhbW1hLnNjc3MiLCJib3VyYm9uL3V0aWxpdGllcy9fbGlnaHRuZXNzLnNjc3MiLCJib3VyYm9uL3V0aWxpdGllcy9fY29udHJhc3QtcmF0aW8uc2NzcyIsImJvdXJib24vdXRpbGl0aWVzL191bnBhY2stc2hvcnRoYW5kLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX2JvcmRlci1jb2xvci5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19ib3JkZXItcmFkaXVzLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX2JvcmRlci1zdHlsZS5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19ib3JkZXItd2lkdGguc2NzcyIsImJvdXJib24vbGlicmFyeS9fYnV0dG9ucy5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19jbGVhcmZpeC5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19jb250cmFzdC1zd2l0Y2guc2NzcyIsImJvdXJib24vbGlicmFyeS9fZWxsaXBzaXMuc2NzcyIsImJvdXJib24vbGlicmFyeS9fZm9udC1mYWNlLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX2ZvbnQtc3RhY2tzLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX2hpZGUtdGV4dC5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19oaWRlLXZpc3VhbGx5LnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX21hcmdpbi5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19tb2R1bGFyLXNjYWxlLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX292ZXJmbG93LXdyYXAuc2NzcyIsImJvdXJib24vbGlicmFyeS9fcGFkZGluZy5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19wb3NpdGlvbi5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19zaGFkZS5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L19zaXplLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX3N0cmlwLXVuaXQuc2NzcyIsImJvdXJib24vbGlicmFyeS9fdGV4dC1pbnB1dHMuc2NzcyIsImJvdXJib24vbGlicmFyeS9fdGltaW5nLWZ1bmN0aW9ucy5zY3NzIiwiYm91cmJvbi9saWJyYXJ5L190aW50LnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX3RyaWFuZ2xlLnNjc3MiLCJib3VyYm9uL2xpYnJhcnkvX3ZhbHVlLXByZWZpeGVyLnNjc3MiLCJiaXR0ZXJzL192YXJpYWJsZXMuc2NzcyIsImxhbmRlci9hL19jdXN0b21MYW5kZXIuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBmb3IgZGlzY291bnQgdGVtcGxhdGVcblxuQGltcG9ydCBcIi4uLy4uL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCIuLi8uLi9ib3VyYm9uXCI7XG5AaW1wb3J0IFwiLi4vLi4vYml0dGVycy92YXJpYWJsZXNcIjtcblxuLy8gVERGUyBzdHlsZVxuQGltcG9ydCBcImN1c3RvbUxhbmRlclwiO1xuIiwiQGNoYXJzZXQgJ1VURi04JztcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuNlxuLy9cbi8vICAgICAgICAgICAgICAgIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuLy9cbi8vICAgICAgICAgQXV0aG9yczogRWR1YXJkbyBCb3VjYXMgKEBlZHVhcmRvYm91Y2FzKVxuLy8gICAgICAgICAgICAgICAgICBIdWdvIEdpcmF1ZGVsIChAaHVnb2dpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2VcblxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ21vYmlsZS1zbSc6IDIwZW0sIC8vMzIwcHhcbiAgJ21vYmlsZS1tZWQnOiAyMy40MzhlbSwgLy8gMzkwcHhcbiAgJ21vYmlsZS1sZyc6IDI3LjE4OGVtLCAvLzQzNXB4XG4gICdwaGFibGV0JzogMzcuNWVtLCAvLzYwMHB4XG4gICd0YWJsZXQnOiA0OGVtLCAvLzc2OHB4XG4gICdkZXNrdG9wJzogNjRlbSwgLy8xMDI0XG4gICdkZXNrdG9wLWxnJzogNzVlbSwgLy8xMjAwXG4gICdnaWFudC1zY3JlZW4nOiAxMDBlbSwgLy8xNjAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGxvZygnLi4nKSB7fWAgb3IgYCRfOiBsb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBsb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBsb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBsb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBsb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBsb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIEJvdXJib24gNS4wLjBcbi8vIGh0dHBzOi8vd3d3LmJvdXJib24uaW8vXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE4IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJib3VyYm9uL2hlbHBlcnMvYnV0dG9ucy1saXN0XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9oZWxwZXJzL3NjYWxlc1wiO1xuQGltcG9ydCBcImJvdXJib24vaGVscGVycy90ZXh0LWlucHV0cy1saXN0XCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uL3NldHRpbmdzL3NldHRpbmdzXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uL3ZhbGlkYXRvcnMvY29udGFpbnNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL3ZhbGlkYXRvcnMvY29udGFpbnMtZmFsc3lcIjtcbkBpbXBvcnQgXCJib3VyYm9uL3ZhbGlkYXRvcnMvaXMtY29sb3JcIjtcbkBpbXBvcnQgXCJib3VyYm9uL3ZhbGlkYXRvcnMvaXMtbGVuZ3RoXCI7XG5AaW1wb3J0IFwiYm91cmJvbi92YWxpZGF0b3JzL2lzLW51bWJlclwiO1xuQGltcG9ydCBcImJvdXJib24vdmFsaWRhdG9ycy9pcy1zaXplXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uL3V0aWxpdGllcy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi91dGlsaXRpZXMvY29tcGFjdC1zaG9ydGhhbmRcIjtcbkBpbXBvcnQgXCJib3VyYm9uL3V0aWxpdGllcy9kaXJlY3Rpb25hbC1wcm9wZXJ0eVwiO1xuQGltcG9ydCBcImJvdXJib24vdXRpbGl0aWVzL2ZldGNoLWJvdXJib24tc2V0dGluZ1wiO1xuQGltcG9ydCBcImJvdXJib24vdXRpbGl0aWVzL2ZvbnQtc291cmNlLWRlY2xhcmF0aW9uXCI7XG5AaW1wb3J0IFwiYm91cmJvbi91dGlsaXRpZXMvZ2FtbWFcIjtcbkBpbXBvcnQgXCJib3VyYm9uL3V0aWxpdGllcy9saWdodG5lc3NcIjtcbkBpbXBvcnQgXCJib3VyYm9uL3V0aWxpdGllcy9jb250cmFzdC1yYXRpb1wiO1xuQGltcG9ydCBcImJvdXJib24vdXRpbGl0aWVzL3VucGFjay1zaG9ydGhhbmRcIjtcblxuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9saWJyYXJ5L2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvY29udHJhc3Qtc3dpdGNoXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9saWJyYXJ5L2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9saWJyYXJ5L2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9mb250LXN0YWNrc1wiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvaGlkZS12aXN1YWxseVwiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9tYXJnaW5cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvbW9kdWxhci1zY2FsZVwiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9vdmVyZmxvdy13cmFwXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9saWJyYXJ5L3BhZGRpbmdcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvcG9zaXRpb25cIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvc2hhZGVcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvc2l6ZVwiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS9zdHJpcC11bml0XCI7XG5AaW1wb3J0IFwiYm91cmJvbi9saWJyYXJ5L3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYm91cmJvbi9saWJyYXJ5L3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJib3VyYm9uL2xpYnJhcnkvdGludFwiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS90cmlhbmdsZVwiO1xuQGltcG9ydCBcImJvdXJib24vbGlicmFyeS92YWx1ZS1wcmVmaXhlclwiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBsaXN0IG9mIGFsbCBIVE1MIGJ1dHRvbiBlbGVtZW50cy5cbi8vL1xuLy8vIEB0eXBlIGxpc3Rcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG4kX2J1dHRvbnMtbGlzdDogKFxuICBcImJ1dHRvblwiLFxuICBcIlt0eXBlPSdidXR0b24nXVwiLFxuICBcIlt0eXBlPSdyZXNldCddXCIsXG4gIFwiW3R5cGU9J3N1Ym1pdCddXCIsXG4pO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8vXG4vLy8gUHJlLWRlZmluZWQgc2NhbGVzIGZvciB1c2Ugd2l0aCB0aGUgYG1vZHVsYXItc2NhbGVgIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQHR5cGUgbnVtYmVyICh1bml0bGVzcylcbi8vL1xuLy8vIEBzZWUge2Z1bmN0aW9ufSBtb2R1bGFyLXNjYWxlXG4vLy8vXG5cbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJGdvbGRlbjogICAgICAgICAgIDEuNjE4O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgbGlzdCBvZiBhbGwgX3RleHQtYmFzZWRfIEhUTUwgaW5wdXRzLlxuLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbiRfdGV4dC1pbnB1dHMtbGlzdDogKFxuICBcIlt0eXBlPSdjb2xvciddXCIsXG4gIFwiW3R5cGU9J2RhdGUnXVwiLFxuICBcIlt0eXBlPSdkYXRldGltZSddXCIsXG4gIFwiW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ11cIixcbiAgXCJbdHlwZT0nZW1haWwnXVwiLFxuICBcIlt0eXBlPSdtb250aCddXCIsXG4gIFwiW3R5cGU9J251bWJlciddXCIsXG4gIFwiW3R5cGU9J3Bhc3N3b3JkJ11cIixcbiAgXCJbdHlwZT0nc2VhcmNoJ11cIixcbiAgXCJbdHlwZT0ndGVsJ11cIixcbiAgXCJbdHlwZT0ndGV4dCddXCIsXG4gIFwiW3R5cGU9J3RpbWUnXVwiLFxuICBcIlt0eXBlPSd1cmwnXVwiLFxuICBcIlt0eXBlPSd3ZWVrJ11cIixcbiAgXCJpbnB1dDpub3QoW3R5cGVdKVwiLFxuICBcInRleHRhcmVhXCIsXG4pO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGVmYXVsdCBnbG9iYWwgQm91cmJvbiBzZXR0aW5ncy4gVmFsdWVzIGluIHRoaXMgbWFwIGFyZSBvdmVyd3JpdHRlbiBieSBhbnlcbi8vLyB2YWx1ZXMgc2V0IGluIHRoZSBgJGJvdXJib25gIG1hcC5cbi8vL1xuLy8vIEB0eXBlIG1hcFxuLy8vXG4vLy8gQHByb3BlcnR5IHtjb2xvcn0gY29udHJhc3Qtc3dpdGNoLWRhcmstY29sb3IgWyMwMDBdXG4vLy8gICBHbG9iYWwgZGFyayBjb2xvciBmb3IgdGhlIGBjb250cmFzdC1zd2l0Y2hgIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQHByb3BlcnR5IHtjb2xvcn0gY29udHJhc3Qtc3dpdGNoLWxpZ2h0LWNvbG9yIFsjZmZmXVxuLy8vICAgR2xvYmFsIGxpZ2h0IGNvbG9yIGZvciB0aGUgYGNvbnRyYXN0LXN3aXRjaGAgZnVuY3Rpb24uXG4vLy9cbi8vLyBAcHJvcGVydHkge2xpc3R9IGdsb2JhbC1mb250LWZpbGUtZm9ybWF0cyBbKFwidHRmXCIsIFwid29mZjJcIiwgXCJ3b2ZmXCIpXVxuLy8vICAgR2xvYmFsIGZvbnQgZmlsZSBmb3JtYXRzIGZvciB0aGUgYGZvbnQtZmFjZWAgbWl4aW4uXG4vLy9cbi8vLyBAcHJvcGVydHkge251bWJlciAod2l0aCB1bml0KX0gbW9kdWxhci1zY2FsZS1iYXNlIFsxZW1dXG4vLy8gICBHbG9iYWwgYmFzZSB2YWx1ZSBmb3IgdGhlIGBtb2R1bGFyLXNjYWxlYCBmdW5jdGlvbi5cbi8vL1xuLy8vIEBwcm9wZXJ0eSB7bnVtYmVyICh1bml0bGVzcyl9IG1vZHVsYXItc2NhbGUtcmF0aW8gWyRtYWpvci10aGlyZCAoMS4yNSldXG4vLy8gICBHbG9iYWwgYmFzZSByYXRpbyBmb3IgdGhlIGBtb2R1bGFyLXNjYWxlYCBmdW5jdGlvbi5cbi8vL1xuLy8vIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcmFpbHMtYXNzZXQtcGlwZWxpbmUgW2ZhbHNlXVxuLy8vICAgU2V0IHRoaXMgdG8gYHRydWVgIHdoZW4gdXNpbmcgdGhlIFJhaWxzIEFzc2V0IFBpcGVsaW5lIGFuZCBCb3VyYm9uIHdpbGxcbi8vLyAgIHdyaXRlIGFzc2V0IHBhdGhzIHVzaW5nXG4vLy8gICBbc2Fzcy1yYWlsc+KAmSBhc3NldCBoZWxwZXJzXShodHRwczovL2dpdGh1Yi5jb20vcmFpbHMvc2Fzcy1yYWlscyNhc3NldC1oZWxwZXJzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG4kX2JvdXJib24tZGVmYXVsdHM6IChcbiAgXCJjb250cmFzdC1zd2l0Y2gtZGFyay1jb2xvclwiOiAjMDAwLFxuICBcImNvbnRyYXN0LXN3aXRjaC1saWdodC1jb2xvclwiOiAjZmZmLFxuICBcImdsb2JhbC1mb250LWZpbGUtZm9ybWF0c1wiOiAoXCJ0dGZcIiwgXCJ3b2ZmMlwiLCBcIndvZmZcIiksXG4gIFwibW9kdWxhci1zY2FsZS1iYXNlXCI6IDFlbSxcbiAgXCJtb2R1bGFyLXNjYWxlLXJhdGlvXCI6ICRtYWpvci10aGlyZCxcbiAgXCJyYWlscy1hc3NldC1waXBlbGluZVwiOiBmYWxzZSxcbik7XG5cbi8vLyBHbG9iYWwgQm91cmJvbiBzZXR0aW5ncy5cbi8vL1xuLy8vIEBuYW1lIFNldHRpbmdzXG4vLy9cbi8vLyBAdHlwZSBtYXBcbi8vL1xuLy8vIEBwcm9wZXJ0eSB7Y29sb3J9IGNvbnRyYXN0LXN3aXRjaC1kYXJrLWNvbG9yIFsjMDAwXVxuLy8vICAgR2xvYmFsIGRhcmsgY29sb3IgZm9yIHRoZSBgY29udHJhc3Qtc3dpdGNoYCBmdW5jdGlvbi5cbi8vL1xuLy8vIEBwcm9wZXJ0eSB7Y29sb3J9IGNvbnRyYXN0LXN3aXRjaC1saWdodC1jb2xvciBbI2ZmZl1cbi8vLyAgIEdsb2JhbCBsaWdodCBjb2xvciBmb3IgdGhlIGBjb250cmFzdC1zd2l0Y2hgIGZ1bmN0aW9uLlxuLy8vXG4vLy8gQHByb3BlcnR5IHtsaXN0fSBnbG9iYWwtZm9udC1maWxlLWZvcm1hdHMgWyhcInR0ZlwiLCBcIndvZmYyXCIsIFwid29mZlwiKV1cbi8vLyAgIEdsb2JhbCBmb250IGZpbGUgZm9ybWF0cyBmb3IgdGhlIGBmb250LWZhY2VgIG1peGluLlxuLy8vXG4vLy8gQHByb3BlcnR5IHtudW1iZXIgKHdpdGggdW5pdCl9IG1vZHVsYXItc2NhbGUtYmFzZSBbMWVtXVxuLy8vICAgR2xvYmFsIGJhc2UgdmFsdWUgZm9yIHRoZSBgbW9kdWxhci1zY2FsZWAgZnVuY3Rpb24uXG4vLy9cbi8vLyBAcHJvcGVydHkge251bWJlciAodW5pdGxlc3MpfSBtb2R1bGFyLXNjYWxlLXJhdGlvIFskbWFqb3ItdGhpcmQgKDEuMjUpXVxuLy8vICAgR2xvYmFsIGJhc2UgcmF0aW8gZm9yIHRoZSBgbW9kdWxhci1zY2FsZWAgZnVuY3Rpb24uXG4vLy9cbi8vLyBAcHJvcGVydHkge2Jvb2xlYW59IHJhaWxzLWFzc2V0LXBpcGVsaW5lIFtmYWxzZV1cbi8vLyAgIFNldCB0aGlzIHRvIGB0cnVlYCB3aGVuIHVzaW5nIHRoZSBSYWlscyBBc3NldCBQaXBlbGluZSBhbmQgQm91cmJvbiB3aWxsXG4vLy8gICB3cml0ZSBhc3NldCBwYXRocyB1c2luZ1xuLy8vICAgW3Nhc3MtcmFpbHPigJkgYXNzZXQgaGVscGVyc10oaHR0cHM6Ly9naXRodWIuY29tL3JhaWxzL3Nhc3MtcmFpbHMjYXNzZXQtaGVscGVycykuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAkYm91cmJvbjogKFxuLy8vICAgICBcImNvbnRyYXN0LXN3aXRjaC1kYXJrLWNvbG9yXCI6ICMwMDAsXG4vLy8gICAgIFwiY29udHJhc3Qtc3dpdGNoLWxpZ2h0LWNvbG9yXCI6ICNmZmYsXG4vLy8gICAgIFwiZ2xvYmFsLWZvbnQtZmlsZS1mb3JtYXRzXCI6IChcInR0ZlwiLCBcIndvZmYyXCIsIFwid29mZlwiKSxcbi8vLyAgICAgXCJtb2R1bGFyLXNjYWxlLWJhc2VcIjogMWVtLFxuLy8vICAgICBcIm1vZHVsYXItc2NhbGUtcmF0aW9cIjogJG1ham9yLXRoaXJkLFxuLy8vICAgICBcInJhaWxzLWFzc2V0LXBpcGVsaW5lXCI6IGZhbHNlLFxuLy8vICAgKTtcblxuJGJvdXJib246ICgpICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQHJldHVybiB7Ym9vbGVhbn1cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2NvbnRhaW5zKFxuICAkbGlzdCxcbiAgJHZhbHVlcy4uLlxuKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbiBhbnkgdmFsdWVzLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge2Jvb2xlYW59XG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9jb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgY29sb3IuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJGNvbG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtib29sZWFufVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfaXMtY29sb3IoJGNvbG9yKSB7XG4gIEByZXR1cm4gKHR5cGUtb2YoJGNvbG9yKSA9PSBjb2xvcikgb3IgKCRjb2xvciA9PSBcImN1cnJlbnRDb2xvclwiKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJldHVybiB7Ym9vbGVhbn1cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2lzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQHJldHVybiB0eXBlLW9mKCR2YWx1ZSkgIT0gXCJudWxsXCIgYW5kIChzdHItc2xpY2UoJHZhbHVlICsgXCJcIiwgMSwgNCkgPT0gXCJjYWxjXCJcbiAgICAgICBvciBpbmRleChhdXRvIGluaGVyaXQgaW5pdGlhbCAwLCAkdmFsdWUpXG4gICAgICAgb3IgKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiIGFuZCBub3QodW5pdGxlc3MoJHZhbHVlKSkpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBudW1iZXIuXG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlcn0gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF9jb250YWluc1xuLy8vXG4vLy8gQHJldHVybiB7Ym9vbGVhbn1cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2lzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBfY29udGFpbnMoXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCIgMCAxIDIgMyA0IDUgNiA3IDggOSwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1Mgc2l6ZS5cbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nfSAkdmFsdWVcbi8vL1xuLy8vIEByZXR1cm4ge2Jvb2xlYW59XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF9jb250YWluc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfaXMtbGVuZ3RoXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9pcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIF9pcy1sZW5ndGgoJHZhbHVlKVxuICAgICAgICAgIG9yIF9jb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEFwcGVuZCBwc2V1ZG8tY2xhc3NlcyB0byBhIHNlbGVjdG9yKHMpLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0IHwgc3RyaW5nfSAkaW5wdXRzXG4vLy8gICBBIHNlbGVjdG9yLCBvciBsaXN0IG9mIHNlbGVjdG9ycywgdG8gYXBwbHkgdGhlIHBzZXVkby1jbGFzcyB0by5cbi8vL1xuLy8vIEBhcmd1bWVudCB7cHNldWRvLWNsYXNzfSAkcHNldWRvIFtudWxsXVxuLy8vICAgVGhlIHBzZXVkby1jbGFzcyB0byBiZSBhcHBlbmRlZC5cbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9XG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9hc3NpZ24taW5wdXRzKFxuICAkaW5wdXRzLFxuICAkcHNldWRvOiBudWxsXG4pIHtcbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIEVsc2VQbGFjZW1lbnRcblxuLy8vIFRyYW5zZm9ybXMgc2hvcnRoYW5kIHRvIGl0cyBzaG9ydGVzdCBwb3NzaWJsZSBmb3JtLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0fSAkdmFsdWVzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICR2YWx1ZXM6IF9jb21wYWN0LXNob3J0aGFuZCgxMHB4IDIwcHggMTBweCAyMHB4KTtcbi8vL1xuLy8vICAgLy8gT3V0cHV0XG4vLy8gICAkdmFsdWVzOiAxMHB4IDIwcHg7XG4vLy9cbi8vLyBAcmV0dXJuIHtsaXN0fVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfY29tcGFjdC1zaG9ydGhhbmQoJHZhbHVlcykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHVlcywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHVlcykgPCAyLCAkYSwgbnRoKCR2YWx1ZXMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFsdWVzKSA8IDMsICRhLCBudGgoJHZhbHVlcywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWx1ZXMpIDwgMiwgJGEsIG50aCgkdmFsdWVzLCBpZihsZW5ndGgoJHZhbHVlcykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG5cbi8vLyBCdWlsZHMgZGlyZWN0aW9uYWwgcHJvcGVydGllcyBieSBwYXJzaW5nIENTUyBzaG9ydGhhbmQgdmFsdWVzLiBGb3IgZXhhbXBsZSxcbi8vLyBhIHZhbHVlIG9mIGAxMHB4IG51bGxgIHdpbGwgb3V0cHV0IHRvcCBhbmQgYm90dG9tIGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsXG4vLy8gYnV0IHRoZSBgbnVsbGAgc2tpcHMgbGVmdCBhbmQgcmlnaHQgZnJvbSBiZWluZyBvdXRwdXQuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBCYXNlIHByb3BlcnR5LlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICRzdWZmaXhcbi8vLyAgIFN1ZmZpeCB0byBhcHBlbmQuIFVzZSBgbnVsbGAgdG8gb21pdC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJHZhbHVlc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdG8gc2V0IGZvciB0aGUgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIF9kaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCBudWxsIDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiA1cHg7XG4vLy8gICAgIGJvcmRlci1sZWZ0LXdpZHRoOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF9jb21wYWN0LXNob3J0aGFuZFxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfY29udGFpbnMtZmFsc3lcbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2RpcmVjdGlvbmFsLXByb3BlcnR5KFxuICAkcHJvcGVydHksXG4gICRzdWZmaXgsXG4gICR2YWx1ZXNcbikge1xuICAkdG9wOiAgICAkcHJvcGVydHkgKyBcIi10b3BcIiAgICArIGlmKCRzdWZmaXgsIFwiLSN7JHN1ZmZpeH1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcm9wZXJ0eSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZmZpeCwgXCItI3skc3VmZml4fVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByb3BlcnR5ICsgXCItbGVmdFwiICAgKyBpZigkc3VmZml4LCBcIi0jeyRzdWZmaXh9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJvcGVydHkgKyBcIi1yaWdodFwiICArIGlmKCRzdWZmaXgsIFwiLSN7JHN1ZmZpeH1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcm9wZXJ0eSArICAgICAgICAgICAgIGlmKCRzdWZmaXgsIFwiLSN7JHN1ZmZpeH1cIiwgXCJcIik7XG5cbiAgJHZhbHVlczogX2NvbXBhY3Qtc2hvcnRoYW5kKCR2YWx1ZXMpO1xuXG4gIEBpZiBfY29udGFpbnMtZmFsc3koJHZhbHVlcykge1xuICAgIEBpZiBudGgoJHZhbHVlcywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHVlcywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWx1ZXMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHVlcywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHVlcywgMikgeyAjeyRyaWdodH06IG50aCgkdmFsdWVzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHVlcykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWx1ZXMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWx1ZXMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWx1ZXMsIDIpIHsgI3skbGVmdH06IG50aCgkdmFsdWVzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWx1ZXMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFsdWVzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFsdWVzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFsdWVzLCAyKSB7ICN7JGxlZnR9OiBudGgoJHZhbHVlcywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFsdWVzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHVlcywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHVlcywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHVlcywgNCkgeyAjeyRsZWZ0fTogbnRoKCR2YWx1ZXMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFsdWVzO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZXR1cm4gYSBCb3VyYm9uIHNldHRpbmcuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHNldHRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge2Jvb2xlYW4gfCBjb2xvciB8IGxpc3QgfCBudW1iZXIgfCBzdHJpbmd9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBfZmV0Y2gtYm91cmJvbi1zZXR0aW5nKHJhaWxzLWFzc2V0LXBpcGVsaW5lKVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfZmV0Y2gtYm91cmJvbi1zZXR0aW5nKCRzZXR0aW5nKSB7XG4gIEByZXR1cm4gbWFwLWdldChtYXAtbWVyZ2UoJF9ib3VyYm9uLWRlZmF1bHRzLCAkYm91cmJvbiksICRzZXR0aW5nKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEJ1aWxkcyB0aGUgYHNyY2AgbGlzdCBmb3IgYW4gYEBmb250LWZhY2VgIGRlY2xhcmF0aW9uLlxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9nb28uZ2wvUnUxYktQXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJGZvbnQtZmFtaWx5XG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJGZpbGUtcGF0aFxuLy8vXG4vLy8gQGFyZ3VtZW50IHtib29sZWFufSAkYXNzZXQtcGlwZWxpbmVcbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJGZpbGUtZm9ybWF0c1xuLy8vXG4vLy8gQHJldHVybiB7bGlzdH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gX2NvbnRhaW5zXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9mb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHNcbikge1xuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKSxcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIF9jb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUGVyZm9ybXMgZ2FtbWEgY29ycmVjdGlvbiBvbiBhIHNpbmdsZSBjb2xvciBjaGFubmVsLlxuLy8vXG4vLy8gTm90ZSB0aGF0IFNhc3MgZG9lcyBub3QgaGF2ZSBhIGBwb3coKWAgZnVuY3Rpb24sIHNvIHRoZSBjYWxjdWxhdGlvblxuLy8vIGlzIGFwcHJveGltYXRlLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKDAtMSl9ICRjaGFubmVsXG4vLy9cbi8vLyBAcmV0dXJuIHtudW1iZXIgKDAtMSl9XG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9nYW1tYSgkY2hhbm5lbCkge1xuICBAaWYgJGNoYW5uZWwgPCAwLjAzOTI4IHtcbiAgICBAcmV0dXJuICRjaGFubmVsIC8gMTIuOTI7XG4gIH0gQGVsc2Uge1xuICAgICRjOiAoJGNoYW5uZWwgKyAwLjA1NSkgLyAxLjA1NTtcbiAgICBAcmV0dXJuICgxMzMgKiAkYyAqICRjICogJGMgKyAxNTUgKiAkYyAqICRjKSAvIDI4ODtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgdGhlIGxpZ2h0bmVzcyBvZiBhIGNvbG9yLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtjb2xvciAoaGV4KX0gJGhleC1jb2xvclxuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyICgwLTEpfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgX2xpZ2h0bmVzcygkY29sb3IpXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcblxuQGZ1bmN0aW9uIF9saWdodG5lc3MoJGhleC1jb2xvcikge1xuICAkLWxvY2FsLXJlZC1yYXc6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbi1yYXc6IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWUtcmF3OiBibHVlKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuXG4gICQtbG9jYWwtcmVkOiBfZ2FtbWEoJC1sb2NhbC1yZWQtcmF3IC8gMjU1KTtcbiAgJC1sb2NhbC1ncmVlbjogX2dhbW1hKCQtbG9jYWwtZ3JlZW4tcmF3IC8gMjU1KTtcbiAgJC1sb2NhbC1ibHVlOiBfZ2FtbWEoJC1sb2NhbC1ibHVlLXJhdyAvIDI1NSk7XG5cbiAgQHJldHVybiAkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjI7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB0aGUgY29udHJhc3QgcmF0aW8gYmV0d2VlbiB0d28gY29sb3JzLlxuLy8vXG4vLy8gTm90ZSB0aGF0IHRoZSBhbHBoYSBjaGFubmVsIGlzIGlnbm9yZWQuXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC81NGh0TFZcbi8vL1xuLy8vIEBhcmd1bWVudCB7Y29sb3IgKGhleCl9ICRjb2xvci0xXG4vLy9cbi8vLyBAYXJndW1lbnQge2NvbG9yIChoZXgpfSAkY29sb3ItMlxuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyICgxLTIxKX1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIF9jb250cmFzdC1yYXRpbyhibGFjaywgd2hpdGUpXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF9saWdodG5lc3Ncbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AZnVuY3Rpb24gX2NvbnRyYXN0LXJhdGlvKCRjb2xvci0xLCAkY29sb3ItMikge1xuICAkLWxvY2FsLWxpZ2h0bmVzcy0xOiBfbGlnaHRuZXNzKCRjb2xvci0xKSArIDAuMDU7XG4gICQtbG9jYWwtbGlnaHRuZXNzLTI6IF9saWdodG5lc3MoJGNvbG9yLTIpICsgMC4wNTtcblxuICBAaWYgJC1sb2NhbC1saWdodG5lc3MtMSA+ICQtbG9jYWwtbGlnaHRuZXNzLTIge1xuICAgIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MtMSAvICQtbG9jYWwtbGlnaHRuZXNzLTI7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MtMiAvICQtbG9jYWwtbGlnaHRuZXNzLTE7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRyYW5zZm9ybXMgc2hvcnRoYW5kIHRoYXQgY2FuIHJhbmdlIGZyb20gMS10by00IHZhbHVlcyB0byBiZSA0IHZhbHVlcy5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IF91bnBhY2stc2hvcnRoYW5kKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG5cbkBmdW5jdGlvbiBfdW5wYWNrLXNob3J0aGFuZCgkc2hvcnRoYW5kKSB7XG4gIEBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMSB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSk7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDIge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAzIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDMpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkc2hvcnRoYW5kO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIGNvbmNpc2UsIG9uZS1saW5lIG1ldGhvZCBmb3Igc2V0dGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpY1xuLy8vIGVkZ2VzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBlZGdlcyBvZiB0aGUgYm94IHdpdGggc3RhbmRhcmRcbi8vLyBDU1Mgc2hvcnRoYW5kLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0fSAkdmFsdWVzXG4vLy8gICBMaXN0IG9mIGNvbG9yczsgYWNjZXB0cyBDU1Mgc2hvcnRoYW5kLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gX2RpcmVjdGlvbmFsLXByb3BlcnR5XG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHVlcykge1xuICBAaW5jbHVkZSBfZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHVlcyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIGNvbmNpc2UsIG9uZS1saW5lIG1ldGhvZCBmb3Igc2V0dGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCB0aGVcbi8vLyB0b3AtbGVmdCBhbmQgdG9wLXJpZ2h0IG9mIGEgYm94LlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKHdpdGggdW5pdCl9ICRyYWRpaVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyg0cHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDRweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDRweDtcbi8vLyAgIH1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbi8vLyBQcm92aWRlcyBhIGNvbmNpc2UsIG9uZS1saW5lIG1ldGhvZCBmb3Igc2V0dGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCB0aGVcbi8vLyB0b3AtcmlnaHQgYW5kIGJvdHRvbS1yaWdodCBvZiBhIGJveC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh3aXRoIHVuaXQpfSAkcmFkaWlcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzcHg7XG4vLy8gICB9XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG4vLy8gUHJvdmlkZXMgYSBjb25jaXNlLCBvbmUtbGluZSBtZXRob2QgZm9yIHNldHRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggdGhlXG4vLy8gYm90dG9tLWxlZnQgYW5kIGJvdHRvbS1yaWdodCBvZiBhIGJveC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh3aXRoIHVuaXQpfSAkcmFkaWlcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoMnB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAycHg7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAycHg7XG4vLy8gICB9XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG4vLy8gUHJvdmlkZXMgYSBjb25jaXNlLCBvbmUtbGluZSBtZXRob2QgZm9yIHNldHRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggdGhlXG4vLy8gdG9wLWxlZnQgYW5kIGJvdHRvbS1sZWZ0IG9mIGEgYm94LlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKHdpdGggdW5pdCl9ICRyYWRpaVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItbGVmdC1yYWRpdXMoMXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAxcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDFweDtcbi8vLyAgIH1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIGNvbmNpc2UsIG9uZS1saW5lIG1ldGhvZCBmb3Igc2V0dGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpY1xuLy8vIGVkZ2VzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBlZGdlcyBvZiB0aGUgYm94IHdpdGggc3RhbmRhcmRcbi8vLyBDU1Mgc2hvcnRoYW5kLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtsaXN0fSAkdmFsdWVzXG4vLy8gICBMaXN0IG9mIGJvcmRlciBzdHlsZXM7IGFjY2VwdHMgQ1NTIHNob3J0aGFuZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRhc2hlZCBudWxsIHNvbGlkKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBfZGlyZWN0aW9uYWwtcHJvcGVydHlcblxuQG1peGluIGJvcmRlci1zdHlsZSgkdmFsdWVzKSB7XG4gIEBpbmNsdWRlIF9kaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFsdWVzKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgY29uY2lzZSwgb25lLWxpbmUgbWV0aG9kIGZvciBzZXR0aW5nIGBib3JkZXItd2lkdGhgIG9uIHNwZWNpZmljXG4vLy8gZWRnZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGVkZ2VzIG9mIHRoZSBib3ggd2l0aCBzdGFuZGFyZFxuLy8vIENTUyBzaG9ydGhhbmQuXG4vLy9cbi8vLyBAYXJndW1lbnQge2xpc3R9ICR2YWx1ZXNcbi8vLyAgIExpc3Qgb2YgYm9yZGVyIHdpZHRoczsgYWNjZXB0cyBDU1Mgc2hvcnRoYW5kLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMjBweDtcbi8vLyAgICAgYm9yZGVyLXRvcC13aWR0aDogMWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBfZGlyZWN0aW9uYWwtcHJvcGVydHlcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFsdWVzKSB7XG4gIEBpbmNsdWRlIF9kaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFsdWVzKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vL1xuLy8vIEB0eXBlIGxpc3Rcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gX2Fzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJF9idXR0b25zLWxpc3Rcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBhbGwgSFRNTCBidXR0b24gZWxlbWVudHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgaW50ZXJwb2xhdGVcbi8vLyB0aGUgdmFyaWFibGUgKGAje31gKSB0byB1c2UgaXQgYXMgYSBzZWxlY3Rvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIFt0eXBlPSdidXR0b24nXSxcbi8vLyAgIFt0eXBlPSdyZXNldCddLFxuLy8vICAgW3R5cGU9J3N1Ym1pdCddIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cblxuJGFsbC1idXR0b25zOiBfYXNzaWduLWlucHV0cygkX2J1dHRvbnMtbGlzdCk7XG5cbi8vLyBBIGxpc3Qgb2YgYWxsIEhUTUwgYnV0dG9uIGVsZW1lbnRzIHdpdGggdGhlIGA6YWN0aXZlYCBwc2V1ZG8tY2xhc3MgYXBwbGllZC5cbi8vLyBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IGludGVycG9sYXRlIHRoZSB2YXJpYWJsZSAoYCN7fWApIHRvIHVzZSBpdCBhcyBhXG4vLy8gc2VsZWN0b3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIFt0eXBlPSdidXR0b24nXTphY3RpdmUsXG4vLy8gICBbdHlwZT0ncmVzZXQnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0nc3VibWl0J106YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cblxuJGFsbC1idXR0b25zLWFjdGl2ZTogX2Fzc2lnbi1pbnB1dHMoJF9idXR0b25zLWxpc3QsIGFjdGl2ZSk7XG5cbi8vLyBBIGxpc3Qgb2YgYWxsIEhUTUwgYnV0dG9uIGVsZW1lbnRzIHdpdGggdGhlIGA6Zm9jdXNgIHBzZXVkby1jbGFzcyBhcHBsaWVkLlxuLy8vIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgaW50ZXJwb2xhdGUgdGhlIHZhcmlhYmxlIChgI3t9YCkgdG8gdXNlIGl0IGFzIGFcbi8vLyBzZWxlY3Rvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIFt0eXBlPSdidXR0b24nXTpmb2N1cyxcbi8vLyAgIFt0eXBlPSdyZXNldCddOmZvY3VzLFxuLy8vICAgW3R5cGU9J3N1Ym1pdCddOmZvY3VzIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cblxuJGFsbC1idXR0b25zLWZvY3VzOiBfYXNzaWduLWlucHV0cygkX2J1dHRvbnMtbGlzdCwgZm9jdXMpO1xuXG4vLy8gQSBsaXN0IG9mIGFsbCBIVE1MIGJ1dHRvbiBlbGVtZW50cyB3aXRoIHRoZSBgOmhvdmVyYCBwc2V1ZG8tY2xhc3MgYXBwbGllZC5cbi8vLyBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IGludGVycG9sYXRlIHRoZSB2YXJpYWJsZSAoYCN7fWApIHRvIHVzZSBpdCBhcyBhXG4vLy8gc2VsZWN0b3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBbdHlwZT0nYnV0dG9uJ106aG92ZXIsXG4vLy8gICBbdHlwZT0ncmVzZXQnXTpob3Zlcixcbi8vLyAgIFt0eXBlPSdzdWJtaXQnXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG5cbiRhbGwtYnV0dG9ucy1ob3ZlcjogX2Fzc2lnbi1pbnB1dHMoJF9idXR0b25zLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC95UDVoaVpcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN3aXRjaGVzIGJldHdlZW4gdHdvIGNvbG9ycyBiYXNlZCBvbiB0aGUgY29udHJhc3QgdG8gYW5vdGhlciBjb2xvci4gSXTigJlzXG4vLy8gbGlrZSBhIFt0ZXJuYXJ5IG9wZXJhdG9yXSBmb3IgY29sb3IgY29udHJhc3QgYW5kIGNhbiBiZSB1c2VmdWwgZm9yIGJ1aWxkaW5nXG4vLy8gYSBidXR0b24gc3lzdGVtLlxuLy8vXG4vLy8gVGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBjb250cmFzdCByYXRpbyBpcyBiYXNlZCBvbiB0aGUgW1dDQUcgMi4wXG4vLy8gc3BlY2lmaWNhdGlvbl0uIEhvd2V2ZXIsIHdlIGNhbm5vdCBndWFyYW50ZWUgZnVsbCBjb21wbGlhbmNlLCB0aG91Z2ggYWxsIG9mXG4vLy8gb3VyIG1hbnVhbCB0ZXN0aW5nIHBhc3NlZC5cbi8vL1xuLy8vICAgW3Rlcm5hcnkgb3BlcmF0b3JdOiBodHRwczovL2dvby5nbC9jY2ZMcWlcbi8vLyAgIFtXQ0FHIDIuMCBzcGVjaWZpY2F0aW9uXTogaHR0cHM6Ly9nb28uZ2wvemhRdVlBXG4vLy9cbi8vLyBAYXJndW1lbnQge2NvbG9yfSAkYmFzZS1jb2xvclxuLy8vICAgVGhlIGNvbG9yIHRvIGV2YWx1YXRlIGxpZ2h0bmVzcyBhZ2FpbnN0LlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtjb2xvcn0gJGRhcmstY29sb3IgWyMwMDBdXG4vLy8gICBUaGUgY29sb3IgdG8gYmUgb3V0cHV0IHdoZW4gYCRiYXNlLWNvbG9yYCBpcyBsaWdodC4gQ2FuIGFsc28gYmUgc2V0XG4vLy8gICBnbG9iYWxseSB1c2luZyB0aGUgYGNvbnRyYXN0LXN3aXRjaC1kYXJrLWNvbG9yYCBrZXkgaW4gdGhlXG4vLy8gICBCb3VyYm9uIHNldHRpbmdzLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtjb2xvcn0gJGxpZ2h0LWNvbG9yIFsjZmZmXVxuLy8vICAgVGhlIGNvbG9yIHRvIGJlIG91dHB1dCB3aGVuIGAkYmFzZS1jb2xvcmAgaXMgZGFyay4gQ2FuIGFsc28gYmUgc2V0XG4vLy8gICBnbG9iYWxseSB1c2luZyB0aGUgYGNvbnRyYXN0LXN3aXRjaC1saWdodC1jb2xvcmAga2V5IGluIHRoZVxuLy8vICAgQm91cmJvbiBzZXR0aW5ncy5cbi8vL1xuLy8vIEByZXR1cm4ge2NvbG9yfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBjb2xvcjogY29udHJhc3Qtc3dpdGNoKCNiYWU2ZTYpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGNvbG9yOiAjMDAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAkYnV0dG9uLWNvbG9yOiAjMmQ3MmQ5O1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uLWNvbG9yO1xuLy8vICAgICBjb2xvcjogY29udHJhc3Qtc3dpdGNoKCRidXR0b24tY29sb3IsICMyMjIsICNlZWUpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMyZDcyZDk7XG4vLy8gICAgIGNvbG9yOiAjZWVlO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfZmV0Y2gtYm91cmJvbi1zZXR0aW5nXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF9pcy1jb2xvclxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfY29udHJhc3QtcmF0aW9cbi8vL1xuLy8vIEBzaW5jZSA1LjAuMFxuXG5AZnVuY3Rpb24gY29udHJhc3Qtc3dpdGNoKFxuICAkYmFzZS1jb2xvcixcbiAgJGRhcmstY29sb3I6IF9mZXRjaC1ib3VyYm9uLXNldHRpbmcoXCJjb250cmFzdC1zd2l0Y2gtZGFyay1jb2xvclwiKSxcbiAgJGxpZ2h0LWNvbG9yOiBfZmV0Y2gtYm91cmJvbi1zZXR0aW5nKFwiY29udHJhc3Qtc3dpdGNoLWxpZ2h0LWNvbG9yXCIpXG4pIHtcbiAgQGlmIG5vdCBfaXMtY29sb3IoJGJhc2UtY29sb3IpIHtcbiAgICBAZXJyb3IgXCJgI3skYmFzZS1jb2xvcn1gIGlzIG5vdCBhIHZhbGlkIGNvbG9yIGZvciB0aGUgYCRiYXNlLWNvbG9yYCBcIiArXG4gICAgICAgICAgIFwiYXJndW1lbnQgaW4gdGhlIGBjb250cmFzdC1zd2l0Y2hgIGZ1bmN0aW9uLlwiO1xuICB9IEBlbHNlIGlmIG5vdCBfaXMtY29sb3IoJGRhcmstY29sb3IpIHtcbiAgICBAZXJyb3IgXCJgI3skZGFyay1jb2xvcn1gIGlzIG5vdCBhIHZhbGlkIGNvbG9yIGZvciB0aGUgYCRkYXJrLWNvbG9yYCBcIiArXG4gICAgICAgICAgIFwiYXJndW1lbnQgaW4gdGhlIGBjb250cmFzdC1zd2l0Y2hgIGZ1bmN0aW9uLlwiO1xuICB9IEBlbHNlIGlmIG5vdCBfaXMtY29sb3IoJGxpZ2h0LWNvbG9yKSB7XG4gICAgQGVycm9yIFwiYCN7JGxpZ2h0LWNvbG9yfWAgaXMgbm90IGEgdmFsaWQgY29sb3IgZm9yIHRoZSBgJGxpZ2h0LWNvbG9yYCBcIiArXG4gICAgICAgICAgIFwiYXJndW1lbnQgaW4gdGhlIGBjb250cmFzdC1zd2l0Y2hgIGZ1bmN0aW9uLlwiO1xuICB9IEBlbHNlIHtcbiAgICAkLWNvbnRyYXN0LXRvLWRhcms6IF9jb250cmFzdC1yYXRpbygkYmFzZS1jb2xvciwgJGRhcmstY29sb3IpO1xuICAgICQtY29udHJhc3QtdG8tbGlnaHQ6IF9jb250cmFzdC1yYXRpbygkYmFzZS1jb2xvciwgJGxpZ2h0LWNvbG9yKTtcbiAgICAkLXByZWZlci1kYXJrOiAkLWNvbnRyYXN0LXRvLWRhcmsgPj0gJC1jb250cmFzdC10by1saWdodDtcblxuICAgIEByZXR1cm4gaWYoJC1wcmVmZXItZGFyaywgJGRhcmstY29sb3IsICRsaWdodC1jb2xvcik7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBUaGUgYG1heC13aWR0aGAgZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICRkaXNwbGF5IFtpbmxpbmUtYmxvY2tdXG4vLy8gICBTZXRzIHRoZSBkaXNwbGF5LXZhbHVlIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBlbGxpcHNpcztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoXG4gICR3aWR0aDogMTAwJSxcbiAgJGRpc3BsYXk6IGlubGluZS1ibG9ja1xuKSB7XG4gIGRpc3BsYXk6ICRkaXNwbGF5O1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIGFuIGBAZm9udC1mYWNlYCBkZWNsYXJhdGlvbi4gWW91IGNhbiBjaG9vc2UgdGhlIHNwZWNpZmljIGZpbGVcbi8vLyBmb3JtYXRzIHlvdSBuZWVkIHRvIG91dHB1dDsgdGhlIG1peGluIHN1cHBvcnRzIGBlb3RgLCBgdHRmYCwgYHN2Z2AsIGB3b2ZmMmBcbi8vLyBhbmQgYHdvZmZgLiBUaGUgbWl4aW4gYWxzbyBzdXBwb3J0cyB1c2FnZSB3aXRoIHRoZSBSYWlscyBBc3NldCBQaXBlbGluZSxcbi8vLyB3aGljaCB5b3UgY2FuIGVuYWJsZSBwZXIgdXNlLCBvciBnbG9iYWxseSBpbiB0aGUgYCRib3VyYm9uKClgIHNldHRpbmdzLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICRmb250LWZhbWlseVxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICRmaWxlLXBhdGhcbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nfSAkYXNzZXQtcGlwZWxpbmUgW2ZhbHNlXVxuLy8vICAgU2V0IHRvIGB0cnVlYCBpZiB5b3XigJlyZSB1c2luZyB0aGUgUmFpbHMgQXNzZXQgUGlwZWxpbmUgKHBsYWNlIHRoZSBmb250c1xuLy8vICAgaW4gYGFwcC9hc3NldHMvZm9udHMvYCkuIENhbiBhbHNvIGJlIHNldCBnbG9iYWxseSB1c2luZyB0aGVcbi8vLyAgIGByYWlscy1hc3NldC1waXBlbGluZWAga2V5IGluIHRoZSBCb3VyYm9uIHNldHRpbmdzLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmcgfCBsaXN0fSAkZmlsZS1mb3JtYXRzIFsoXCJ0dGZcIiwgXCJ3b2ZmMlwiLCBcIndvZmZcIildXG4vLy8gICBMaXN0IG9mIHRoZSBmb250IGZpbGUgZm9ybWF0cyB0byBpbmNsdWRlLiBDYW4gYWxzbyBiZSBzZXQgZ2xvYmFsbHkgdXNpbmdcbi8vLyAgIHRoZSBgZ2xvYmFsLWZvbnQtZmlsZS1mb3JtYXRzYCBrZXkgaW4gdGhlIEJvdXJib24gc2V0dGluZ3MuXG4vLy9cbi8vLyBAY29udGVudFxuLy8vICAgQW55IGFkZGl0aW9uYWwgQ1NTIHByb3BlcnRpZXMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIGBAaW5jbHVkZWBcbi8vLyAgIGRpcmVjdGl2ZSB3aWxsIGJlIG91dHB1dCB3aXRoaW4gdGhlIGBAZm9udC1mYWNlYCBkZWNsYXJhdGlvbiwgZS5nLiB5b3UgY2FuXG4vLy8gICBwYXNzIGluIGBmb250LXdlaWdodGAsIGBmb250LXN0eWxlYCBhbmQvb3IgYHVuaWNvZGUtcmFuZ2VgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQGluY2x1ZGUgZm9udC1mYWNlKFxuLy8vICAgICBcInNvdXJjZS1zYW5zLXByb1wiLFxuLy8vICAgICBcImZvbnRzL3NvdXJjZS1zYW5zLXByby1yZWd1bGFyXCIsXG4vLy8gICAgIChcIndvZmYyXCIsIFwid29mZlwiKVxuLy8vICAgKSB7XG4vLy8gICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbi8vLyAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgQGZvbnQtZmFjZSB7XG4vLy8gICAgIGZvbnQtZmFtaWx5OiBcInNvdXJjZS1zYW5zLXByb1wiO1xuLy8vICAgICBzcmM6IHVybChcImZvbnRzL3NvdXJjZS1zYW5zLXByby1yZWd1bGFyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLFxuLy8vICAgICAgICAgIHVybChcImZvbnRzL3NvdXJjZS1zYW5zLXByby1yZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcbi8vLyAgICAgZm9udC1zdHlsZTogbm9ybWFsO1xuLy8vICAgICBmb250LXdlaWdodDogNDAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gX2ZldGNoLWJvdXJib24tc2V0dGluZ1xuXG5AbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRmaWxlLWZvcm1hdHM6IF9mZXRjaC1ib3VyYm9uLXNldHRpbmcoXCJnbG9iYWwtZm9udC1maWxlLWZvcm1hdHNcIiksXG4gICRhc3NldC1waXBlbGluZTogX2ZldGNoLWJvdXJib24tc2V0dGluZyhcInJhaWxzLWFzc2V0LXBpcGVsaW5lXCIpXG4pIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBzcmM6IF9mb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzXG4gICAgKTtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSB2YXJpYWJsZSB0aGF0IG91dHB1dHMgYSBIZWx2ZXRpY2EgZm9udCBzdGFjay5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ29vLmdsL3VTSnZaZVxuLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2staGVsdmV0aWNhO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcbi8vLyAgIH1cblxuJGZvbnQtc3RhY2staGVsdmV0aWNhOiAoXG4gIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgXCJIZWx2ZXRpY2FcIixcbiAgXCJBcmlhbFwiLFxuICBzYW5zLXNlcmlmLFxuKTtcblxuLy8vIEEgdmFyaWFibGUgdGhhdCBvdXRwdXRzIGEgTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9nb28uZ2wvUjVVeVlFXG4vLy9cbi8vLyBAdHlwZSBsaXN0XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zdGFjay1sdWNpZGEtZ3JhbmRlO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtZmFtaWx5OiBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2FucyBVbmljb2RlXCIsIFwiR2VuZXZhXCIsIFwiVmVyZGFuYVwiLCBzYW5zLXNlcmlmO1xuLy8vICAgfVxuXG4kZm9udC1zdGFjay1sdWNpZGEtZ3JhbmRlOiAoXG4gIFwiTHVjaWRhIEdyYW5kZVwiLFxuICBcIkx1Y2lkYSBTYW5zIFVuaWNvZGVcIixcbiAgXCJHZW5ldmFcIixcbiAgXCJWZXJkYW5hXCIsXG4gIHNhbnMtc2VyaWYsXG4pO1xuXG4vLy8gQSB2YXJpYWJsZSB0aGF0IG91dHB1dHMgYSBWZXJkYW5hIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC95R1hXU1Ncbi8vL1xuLy8vIEB0eXBlIGxpc3Rcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrLXZlcmRhbmE7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1mYW1pbHk6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuLy8vICAgfVxuXG4kZm9udC1zdGFjay12ZXJkYW5hOiAoXG4gIFwiVmVyZGFuYVwiLFxuICBcIkdlbmV2YVwiLFxuICBzYW5zLXNlcmlmLFxuKTtcblxuLy8vIEEgdmFyaWFibGUgdGhhdCBvdXRwdXRzIGEgc3lzdGVtIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC9MSFJaSWZcbi8vL1xuLy8vIEB0eXBlIGxpc3Rcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrLXN5c3RlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIkF2ZW5pciBOZXh0XCIsIFwiQXZlbmlyXCIsIFwiU2Vnb2UgVUlcIiwgXCJMdWNpZGEgR3JhbmRlXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJGaXJhIFNhbnNcIiwgXCJSb2JvdG9cIiwgXCJOb3RvXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkNhbnRhcmVsbFwiLCBcIk94eWdlblwiLCBcIlVidW50dVwiLCBcIkZyYW5rbGluIEdvdGhpYyBNZWRpdW1cIiwgXCJDZW50dXJ5IEdvdGhpY1wiLCBcIkxpYmVyYXRpb24gU2Fuc1wiLCBzYW5zLXNlcmlmO1xuLy8vICAgfVxuXG4kZm9udC1zdGFjay1zeXN0ZW06IChcbiAgLWFwcGxlLXN5c3RlbSxcbiAgQmxpbmtNYWNTeXN0ZW1Gb250LFxuICBcIkF2ZW5pciBOZXh0XCIsXG4gIFwiQXZlbmlyXCIsXG4gIFwiU2Vnb2UgVUlcIixcbiAgXCJMdWNpZGEgR3JhbmRlXCIsXG4gIFwiSGVsdmV0aWNhIE5ldWVcIixcbiAgXCJIZWx2ZXRpY2FcIixcbiAgXCJGaXJhIFNhbnNcIixcbiAgXCJSb2JvdG9cIixcbiAgXCJOb3RvXCIsXG4gIFwiRHJvaWQgU2Fuc1wiLFxuICBcIkNhbnRhcmVsbFwiLFxuICBcIk94eWdlblwiLFxuICBcIlVidW50dVwiLFxuICBcIkZyYW5rbGluIEdvdGhpYyBNZWRpdW1cIixcbiAgXCJDZW50dXJ5IEdvdGhpY1wiLFxuICBcIkxpYmVyYXRpb24gU2Fuc1wiLFxuICBzYW5zLXNlcmlmLFxuKTtcblxuLy8vIEEgdmFyaWFibGUgdGhhdCBvdXRwdXRzIGEgR2FyYW1vbmQgZm9udCBzdGFjay5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ29vLmdsL1FRRkVrVlxuLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2stZ2FyYW1vbmQ7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1mYW1pbHk6IFwiR2FyYW1vbmRcIiwgXCJCYXNrZXJ2aWxsZVwiLCBcIkJhc2tlcnZpbGxlIE9sZCBGYWNlXCIsIFwiSG9lZmxlciBUZXh0XCIsIFwiVGltZXMgTmV3IFJvbWFuXCIsIHNlcmlmO1xuLy8vICAgfVxuXG4kZm9udC1zdGFjay1nYXJhbW9uZDogKFxuICBcIkdhcmFtb25kXCIsXG4gIFwiQmFza2VydmlsbGVcIixcbiAgXCJCYXNrZXJ2aWxsZSBPbGQgRmFjZVwiLFxuICBcIkhvZWZsZXIgVGV4dFwiLFxuICBcIlRpbWVzIE5ldyBSb21hblwiLFxuICBzZXJpZixcbik7XG5cbi8vLyBBIHZhcmlhYmxlIHRoYXQgb3V0cHV0cyBhIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ29vLmdsL3d0elZQeVxuLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2stZ2VvcmdpYTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogXCJHZW9yZ2lhXCIsIFwiVGltZXNcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLy8gICB9XG5cbiRmb250LXN0YWNrLWdlb3JnaWE6IChcbiAgXCJHZW9yZ2lhXCIsXG4gIFwiVGltZXNcIixcbiAgXCJUaW1lcyBOZXcgUm9tYW5cIixcbiAgc2VyaWYsXG4pO1xuXG4vLy8gQSB2YXJpYWJsZSB0aGF0IG91dHB1dHMgYSBIb2VmbGVyIFRleHQgZm9udCBzdGFjay5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ29vLmdsL243VTd6eFxuLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2staG9lZmxlci10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtZmFtaWx5OiBcIkhvZWZsZXIgVGV4dFwiLCBcIkJhc2tlcnZpbGxlIE9sZCBGYWNlXCIsIFwiR2FyYW1vbmRcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgc2VyaWY7XG4vLy8gICB9XG5cbiRmb250LXN0YWNrLWhvZWZsZXItdGV4dDogKFxuICBcIkhvZWZsZXIgVGV4dFwiLFxuICBcIkJhc2tlcnZpbGxlIE9sZCBGYWNlXCIsXG4gIFwiR2FyYW1vbmRcIixcbiAgXCJUaW1lcyBOZXcgUm9tYW5cIixcbiAgc2VyaWYsXG4pO1xuXG4vLy8gQSB2YXJpYWJsZSB0aGF0IG91dHB1dHMgYSBDb25zb2xhcyBmb250IHN0YWNrLlxuLy8vXG4vLy8gQGxpbmsgaHR0cHM6Ly9nb28uZ2wvaUtydHF2XG4vLy9cbi8vLyBAdHlwZSBsaXN0XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtZmFtaWx5OiAkZm9udC1zdGFjay1jb25zb2xhcztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogXCJDb25zb2xhc1wiLCBcIm1vbmFjb1wiLCBtb25vc3BhY2U7XG4vLy8gICB9XG5cbiRmb250LXN0YWNrLWNvbnNvbGFzOiAoXG4gIFwiQ29uc29sYXNcIixcbiAgXCJtb25hY29cIixcbiAgbW9ub3NwYWNlLFxuKTtcblxuLy8vIEEgdmFyaWFibGUgdGhhdCBvdXRwdXRzIGEgQ291cmllciBOZXcgZm9udCBzdGFjay5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ29vLmdsL2JIZldNUFxuLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogJGZvbnQtc3RhY2stY291cmllci1uZXc7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1mYW1pbHk6IFwiQ291cmllciBOZXdcIiwgXCJDb3VyaWVyXCIsIFwiTHVjaWRhIFNhbnMgVHlwZXdyaXRlclwiLCBcIkx1Y2lkYSBUeXBld3JpdGVyXCIsIG1vbm9zcGFjZTtcbi8vLyAgIH1cblxuJGZvbnQtc3RhY2stY291cmllci1uZXc6IChcbiAgXCJDb3VyaWVyIE5ld1wiLFxuICBcIkNvdXJpZXJcIixcbiAgXCJMdWNpZGEgU2FucyBUeXBld3JpdGVyXCIsXG4gIFwiTHVjaWRhIFR5cGV3cml0ZXJcIixcbiAgbW9ub3NwYWNlLFxuKTtcblxuLy8vIEEgdmFyaWFibGUgdGhhdCBvdXRwdXRzIGEgTW9uYWNvIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC85UGdLRE9cbi8vL1xuLy8vIEB0eXBlIGxpc3Rcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1mYW1pbHk6ICRmb250LXN0YWNrLW1vbmFjbztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LWZhbWlseTogXCJNb25hY29cIiwgXCJDb25zb2xhc1wiLCBcIkx1Y2lkYSBDb25zb2xlXCIsIG1vbm9zcGFjZTtcbi8vLyAgIH1cblxuJGZvbnQtc3RhY2stbW9uYWNvOiAoXG4gIFwiTW9uYWNvXCIsXG4gIFwiQ29uc29sYXNcIixcbiAgXCJMdWNpZGEgQ29uc29sZVwiLFxuICBtb25vc3BhY2UsXG4pO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlIGluc3RlYWQuIFNvbWVcbi8vLyBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC9FdkxSSXVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG92ZXJmbG93OiBoaWRkZW47XG4vLy8gICAgIHRleHQtaW5kZW50OiAxMDElO1xuLy8vICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuLy8vICAgfVxuXG5AbWl4aW4gaGlkZS10ZXh0IHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBIaWRlcyBhbiBlbGVtZW50IHZpc3VhbGx5IHdoaWxlIHN0aWxsIGFsbG93aW5nIHRoZSBjb250ZW50IHRvIGJlIGFjY2Vzc2libGVcbi8vLyB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSwgZS5nLiBzY3JlZW4gcmVhZGVycy4gUGFzc2luZyBgdW5oaWRlYCB3aWxsIHJldmVyc2Vcbi8vLyB0aGUgYWZmZWN0cyBvZiB0aGUgaGlkaW5nLCB3aGljaCBpcyBoYW5keSBmb3Igc2hvd2luZyB0aGUgZWxlbWVudCBvbiBmb2N1cyxcbi8vLyBmb3IgZXhhbXBsZS5cbi8vL1xuLy8vIEBsaW5rIGh0dHBzOi8vZ29vLmdsL1ZmMVRHblxuLy8vXG4vLy8gQGFyZ3VtZW50IHtzdHJpbmd9ICR0b2dnbGUgW2hpZGVdXG4vLy8gICBBY2NlcHRzIGBoaWRlYCBvciBgdW5oaWRlYC4gYHVuaGlkZWAgcmV2ZXJzZXMgdGhlIGFmZmVjdHMgb2YgYGhpZGVgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBoaWRlLXZpc3VhbGx5O1xuLy8vXG4vLy8gICAgICY6YWN0aXZlLFxuLy8vICAgICAmOmZvY3VzIHtcbi8vLyAgICAgICBAaW5jbHVkZSBoaWRlLXZpc3VhbGx5KFwidW5oaWRlXCIpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyOiAwO1xuLy8vICAgICBjbGlwOiByZWN0KDFweCwgMXB4LCAxcHgsIDFweCk7XG4vLy8gICAgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSk7XG4vLy8gICAgIGhlaWdodDogMXB4O1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICBwYWRkaW5nOiAwO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHdpZHRoOiAxcHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5oaWRlLXZpc3VhbGx5OmFjdGl2ZSxcbi8vLyAgIC5oaWRlLXZpc3VhbGx5OmZvY3VzIHtcbi8vLyAgICAgY2xpcDogYXV0bztcbi8vLyAgICAgY2xpcC1wYXRoOiBub25lO1xuLy8vICAgICBoZWlnaHQ6IGF1dG87XG4vLy8gICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuLy8vICAgICBwb3NpdGlvbjogc3RhdGljO1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vIEBzaW5jZSA1LjAuMFxuXG5AbWl4aW4gaGlkZS12aXN1YWxseSgkdG9nZ2xlOiBcImhpZGVcIikge1xuICBAaWYgbm90IGluZGV4KFwiaGlkZVwiIFwidW5oaWRlXCIsICR0b2dnbGUpIHtcbiAgICBAZXJyb3IgXCJgI3skdG9nZ2xlfWAgaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBgJHRvZ2dsZWAgYXJndW1lbnQgaW4gXCIgK1xuICAgICAgICAgICBcInRoZSBgaGlkZS12aXN1YWxseWAgbWl4aW4uIE11c3QgYmUgZWl0aGVyIGBoaWRlYCBvciBgdW5oaWRlYC5cIjtcbiAgfSBAZWxzZSBpZiAkdG9nZ2xlID09IFwiaGlkZVwiIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgxcHgsIDFweCwgMXB4LCAxcHgpO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHdpZHRoOiAxcHg7XG4gIH0gQGVsc2UgaWYgJHRvZ2dsZSA9PSBcInVuaGlkZVwiIHtcbiAgICBjbGlwOiBhdXRvO1xuICAgIGNsaXAtcGF0aDogbm9uZTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aGl0ZS1zcGFjZTogaW5oZXJpdDtcbiAgICB3aWR0aDogYXV0bztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBjb25jaXNlLCBvbmUtbGluZSBtZXRob2QgZm9yIHNldHRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgZWRnZXNcbi8vLyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gZWRnZXMgb2YgdGhlIGJveCB3aXRoIHN0YW5kYXJkXG4vLy8gQ1NTIHNob3J0aGFuZC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJHZhbHVlc1xuLy8vICAgTGlzdCBvZiBtYXJnaW4gdmFsdWVzOyBhY2NlcHRzIENTUyBzaG9ydGhhbmQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbigxMHB4IDNlbSAyMHZoIG51bGwpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogM2VtO1xuLy8vICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBfZGlyZWN0aW9uYWwtcHJvcGVydHlcblxuQG1peGluIG1hcmdpbigkdmFsdWVzKSB7XG4gIEBpbmNsdWRlIF9kaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIG51bGwsICR2YWx1ZXMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gSW5jcmVtZW50cyB1cCBvciBkb3duIGEgZGVmaW5lZCBzY2FsZSBhbmQgcmV0dXJucyBhbiBhZGp1c3RlZCB2YWx1ZS4gVGhpc1xuLy8vIGhlbHBzIGVzdGFibGlzaCBjb25zaXN0ZW50IG1lYXN1cmVtZW50cyBhbmQgc3BhY2lhbCByZWxhdGlvbnNoaXBzIHRocm91Z2hvdXRcbi8vLyB5b3VyIHByb2plY3QuIFdlIHByb3ZpZGUgYSBsaXN0IG9mIGNvbW1vbmx5IHVzZWQgc2NhbGVzIGFzXG4vLy8gW3ByZS1kZWZpbmVkIHZhcmlhYmxlc11bc2NhbGVzXS5cbi8vL1xuLy8vIFtzY2FsZXNdOiBodHRwczovL2dpdGh1Yi5jb20vdGhvdWdodGJvdC9ib3VyYm9uL2Jsb2IvbWFzdGVyL2NvcmUvYm91cmJvbi9oZWxwZXJzL19zY2FsZXMuc2Nzc1xuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKHVuaXRsZXNzKX0gJGluY3JlbWVudFxuLy8vICAgSG93IG1hbnkgc3RlcHMgdG8gaW5jcmVtZW50IHVwIG9yIGRvd24gdGhlIHNjYWxlLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKHdpdGggdW5pdCkgfCBsaXN0fSAkdmFsdWUgWzFlbV1cbi8vLyAgIFRoZSBiYXNlIHZhbHVlIHRoZSBzY2FsZSBzdGFydHMgYXQuIENhbiBhbHNvIGJlIHNldCBnbG9iYWxseSB1c2luZyB0aGVcbi8vLyAgIGBtb2R1bGFyLXNjYWxlLWJhc2VgIGtleSBpbiB0aGUgQm91cmJvbiBzZXR0aW5ncy5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh1bml0bGVzcyl9ICRyYXRpbyBbMS4yNV1cbi8vLyAgIFRoZSByYXRpbyB0aGUgc2NhbGUgaXMgYnVpbHQgb24uIENhbiBhbHNvIGJlIHNldCBnbG9iYWxseSB1c2luZyB0aGVcbi8vLyAgIGBtb2R1bGFyLXNjYWxlLXJhdGlvYCBrZXkgaW4gdGhlIEJvdXJib24gc2V0dGluZ3MuXG4vLy9cbi8vLyBAcmV0dXJuIHtudW1iZXIgKHdpdGggdW5pdCl9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtc2l6ZTogbW9kdWxhci1zY2FsZSgyKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LXNpemU6IDEuNTYyNWVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IG1vZHVsYXItc2NhbGUoMywgMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDMuOTA2MjVlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1zaXplOiBtb2R1bGFyLXNjYWxlKDMsIDFlbSAxLjZlbSwgJG1ham9yLXNldmVudGgpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGZvbnQtc2l6ZTogM2VtO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLy8gR2xvYmFsbHkgY2hhbmdlIHRoZSBiYXNlIHJhdGlvXG4vLy8gICAkYm91cmJvbjogKFxuLy8vICAgICBcIm1vZHVsYXItc2NhbGUtcmF0aW9cIjogMS4yLFxuLy8vICAgKTtcbi8vL1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBmb250LXNpemU6IG1vZHVsYXItc2NhbGUoMyk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgZm9udC1zaXplOiAxLjcyOGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfZmV0Y2gtYm91cmJvbi1zZXR0aW5nXG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKFxuICAkaW5jcmVtZW50LFxuICAkdmFsdWU6IF9mZXRjaC1ib3VyYm9uLXNldHRpbmcoXCJtb2R1bGFyLXNjYWxlLWJhc2VcIiksXG4gICRyYXRpbzogX2ZldGNoLWJvdXJib24tc2V0dGluZyhcIm1vZHVsYXItc2NhbGUtcmF0aW9cIilcbikge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgdGhlIGBvdmVyZmxvdy13cmFwYCBwcm9wZXJ0eSBhbmQgaXRzIGxlZ2FjeSBuYW1lIGB3b3JkLXdyYXBgIHRvXG4vLy8gc3VwcG9ydCBicm93c2VycyB0aGF0IGRvIG5vdCB5ZXQgdXNlIGBvdmVyZmxvdy13cmFwYC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIEFjY2VwdGVkIENTUyB2YWx1ZXMgYXJlIGBub3JtYWxgLCBgYnJlYWstd29yZGAsIGBpbmhlcml0YCwgYGluaXRpYWxgLFxuLy8vICAgb3IgYHVuc2V0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgb3ZlcmZsb3ctd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiBvdmVyZmxvdy13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBjb25jaXNlIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhXG4vLy8gYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAYXJndW1lbnQge2xpc3R9ICR2YWx1ZXNcbi8vLyAgIExpc3Qgb2YgcGFkZGluZyB2YWx1ZXM7IGFjY2VwdHMgQ1NTIHNob3J0aGFuZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAxcmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuLy8vICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMHZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTB2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gX2RpcmVjdGlvbmFsLXByb3BlcnR5XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWx1ZXMpIHtcbiAgQGluY2x1ZGUgX2RpcmVjdGlvbmFsLXByb3BlcnR5KHBhZGRpbmcsIG51bGwsICR2YWx1ZXMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBjb25jaXNlLCBvbmUtbGluZSBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb25pbmdcbi8vLyBwcm9wZXJ0aWVzOiBgcG9zaXRpb25gLCBgdG9wYCwgYHJpZ2h0YCwgYGJvdHRvbWAgYW5kIGBsZWZ0YC4gVXNlIGEgYG51bGxgXG4vLy8gdmFsdWUgdG8g4oCcc2tpcOKAnSBhbiBlZGdlIG9mIHRoZSBib3guXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHBvc2l0aW9uXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZS5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJGJveC1lZGdlLXZhbHVlc1xuLy8vICAgTGlzdCBvZiBsZW5ndGhzOyBhY2NlcHRzIENTUyBzaG9ydGhhbmQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAwIG51bGwgbnVsbCAxMGVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDApO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgICByaWdodDogMDtcbi8vLyAgICAgYm90dG9tOiAwO1xuLy8vICAgICBsZWZ0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfaXMtbGVuZ3RoXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF91bnBhY2stc2hvcnRoYW5kXG5cbkBtaXhpbiBwb3NpdGlvbihcbiAgJHBvc2l0aW9uLFxuICAkYm94LWVkZ2UtdmFsdWVzXG4pIHtcbiAgJGJveC1lZGdlLXZhbHVlczogX3VucGFjay1zaG9ydGhhbmQoJGJveC1lZGdlLXZhbHVlcyk7XG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGJveC1lZGdlLXZhbHVlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGJveC1lZGdlLXZhbHVlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGJveC1lZGdlLXZhbHVlcywgMyksXG4gICAgbGVmdDogICBudGgoJGJveC1lZGdlLXZhbHVlcywgNCksXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBfaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZlbmRvciBwcmVmaXhlcy5cbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nfSAkcHJvcGVydHlcbi8vLyAgIFByb3BlcnR5IHRvIHByZWZpeC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7c3RyaW5nfSAkdmFsdWVcbi8vLyAgIFZhbHVlIHRvIHVzZS5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bGlzdH0gJHByZWZpeGVzXG4vLy8gICBWZW5kb3IgcHJlZml4ZXMgdG8gb3V0cHV0LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCBub25lLCAoXCJ3ZWJraXRcIiwgXCJtb3pcIikpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbi8vLyAgICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuLy8vICAgICBhcHBlYXJhbmNlOiBub25lO1xuLy8vICAgfVxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG5cbkBtaXhpbiBwcmVmaXhlcihcbiAgJHByb3BlcnR5LFxuICAkdmFsdWUsXG4gICRwcmVmaXhlczogKClcbikge1xuICBAZWFjaCAkcHJlZml4IGluICRwcmVmaXhlcyB7XG4gICAgI3tcIi1cIiArICRwcmVmaXggKyBcIi1cIiArICRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgfVxuICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBhcmd1bWVudCB7Y29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQGFyZ3VtZW50IHtudW1iZXIgKHBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEByZXR1cm4ge2NvbG9yfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG5cbkBmdW5jdGlvbiBzaGFkZShcbiAgJGNvbG9yLFxuICAkcGVyY2VudFxuKSB7XG4gIEBpZiBub3QgX2lzLWNvbG9yKCRjb2xvcikge1xuICAgIEBlcnJvciBcImAjeyRjb2xvcn1gIGlzIG5vdCBhIHZhbGlkIGNvbG9yIGZvciB0aGUgYCRjb2xvcmAgYXJndW1lbnQgaW4gXCIgK1xuICAgICAgICAgICBcInRoZSBgc2hhZGVgIG1peGluLlwiO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgYHdpZHRoYCBhbmQgYGhlaWdodGAgb2YgdGhlIGVsZW1lbnQgaW4gb25lIHN0YXRlbWVudC5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh3aXRoIHVuaXQpIHwgc3RyaW5nfSAkd2lkdGhcbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyICh3aXRoIHVuaXQpIHwgc3RyaW5nfSAkaGVpZ2h0IFskd2lkdGhdXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoYXV0bywgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIC5zZWNvbmQtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiBhdXRvO1xuLy8vICAgICBoZWlnaHQ6IDEwZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IF9pcy1zaXplXG5cbkBtaXhpbiBzaXplKFxuICAkd2lkdGgsXG4gICRoZWlnaHQ6ICR3aWR0aFxuKSB7XG4gIEBpZiBfaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAZXJyb3IgXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIGFyZ3VtZW50IFwiICtcbiAgICAgICAgICAgXCJpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIF9pcy1zaXplKCR3aWR0aCkge1xuICAgIHdpZHRoOiAkd2lkdGg7XG4gIH0gQGVsc2Uge1xuICAgIEBlcnJvciBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIGFyZ3VtZW50IFwiICtcbiAgICAgICAgICAgXCJpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBhcmd1bWVudCB7bnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXR1cm4ge251bWJlciAodW5pdGxlc3MpfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdCgxMGVtKTtcbi8vL1xuLy8vICAgLy8gT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8vXG4vLy8gQHR5cGUgbGlzdFxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBfYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkX3RleHQtaW5wdXRzLWxpc3Rcbi8vLy9cblxuLy8vIEEgbGlzdCBvZiBhbGwgX3RleHQtYmFzZWRfIEhUTUwgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0XG4vLy8gaW50ZXJwb2xhdGUgdGhlIHZhcmlhYmxlIChgI3t9YCkgdG8gdXNlIGl0IGFzIGEgc2VsZWN0b3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgW3R5cGU9J2NvbG9yJ10sXG4vLy8gICBbdHlwZT0nZGF0ZSddLFxuLy8vICAgW3R5cGU9J2RhdGV0aW1lJ10sXG4vLy8gICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXSxcbi8vLyAgIFt0eXBlPSdlbWFpbCddLFxuLy8vICAgW3R5cGU9J21vbnRoJ10sXG4vLy8gICBbdHlwZT0nbnVtYmVyJ10sXG4vLy8gICBbdHlwZT0ncGFzc3dvcmQnXSxcbi8vLyAgIFt0eXBlPSdzZWFyY2gnXSxcbi8vLyAgIFt0eXBlPSd0ZWwnXSxcbi8vLyAgIFt0eXBlPSd0ZXh0J10sXG4vLy8gICBbdHlwZT0ndGltZSddLFxuLy8vICAgW3R5cGU9J3VybCddLFxuLy8vICAgW3R5cGU9J3dlZWsnXSxcbi8vLyAgIGlucHV0Om5vdChbdHlwZV0pLFxuLy8vICAgdGV4dGFyZWEge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuLy8vICAgfVxuXG4kYWxsLXRleHQtaW5wdXRzOiBfYXNzaWduLWlucHV0cygkX3RleHQtaW5wdXRzLWxpc3QpO1xuXG4vLy8gQSBsaXN0IG9mIGFsbCBfdGV4dC1iYXNlZF8gSFRNTCBpbnB1dHMgd2l0aCB0aGUgYDphY3RpdmVgIHBzZXVkby1jbGFzc1xuLy8vIGFwcGxpZWQuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgaW50ZXJwb2xhdGUgdGhlIHZhcmlhYmxlIChgI3t9YCkgdG8gdXNlXG4vLy8gaXQgYXMgYSBzZWxlY3Rvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgW3R5cGU9J2NvbG9yJ106YWN0aXZlLFxuLy8vICAgW3R5cGU9J2RhdGUnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0nZGF0ZXRpbWUnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0nZGF0ZXRpbWUtbG9jYWwnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0nZW1haWwnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0nbW9udGgnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0nbnVtYmVyJ106YWN0aXZlLFxuLy8vICAgW3R5cGU9J3Bhc3N3b3JkJ106YWN0aXZlLFxuLy8vICAgW3R5cGU9J3NlYXJjaCddOmFjdGl2ZSxcbi8vLyAgIFt0eXBlPSd0ZWwnXTphY3RpdmUsXG4vLy8gICBbdHlwZT0ndGV4dCddOmFjdGl2ZSxcbi8vLyAgIFt0eXBlPSd0aW1lJ106YWN0aXZlLFxuLy8vICAgW3R5cGU9J3VybCddOmFjdGl2ZSxcbi8vLyAgIFt0eXBlPSd3ZWVrJ106YWN0aXZlLFxuLy8vICAgaW5wdXQ6bm90KFt0eXBlXSk6YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbi8vLyAgIH1cblxuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IF9hc3NpZ24taW5wdXRzKCRfdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcblxuLy8vIEEgbGlzdCBvZiBhbGwgX3RleHQtYmFzZWRfIEhUTUwgaW5wdXRzIHdpdGggdGhlIGA6Zm9jdXNgIHBzZXVkby1jbGFzc1xuLy8vIGFwcGxpZWQuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgaW50ZXJwb2xhdGUgdGhlIHZhcmlhYmxlIChgI3t9YCkgdG8gdXNlXG4vLy8gaXQgYXMgYSBzZWxlY3Rvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1mb2N1c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMTU2NWMwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICBbdHlwZT0nY29sb3InXTpmb2N1cyxcbi8vLyAgIFt0eXBlPSdkYXRlJ106Zm9jdXMsXG4vLy8gICBbdHlwZT0nZGF0ZXRpbWUnXTpmb2N1cyxcbi8vLyAgIFt0eXBlPSdkYXRldGltZS1sb2NhbCddOmZvY3VzLFxuLy8vICAgW3R5cGU9J2VtYWlsJ106Zm9jdXMsXG4vLy8gICBbdHlwZT0nbW9udGgnXTpmb2N1cyxcbi8vLyAgIFt0eXBlPSdudW1iZXInXTpmb2N1cyxcbi8vLyAgIFt0eXBlPSdwYXNzd29yZCddOmZvY3VzLFxuLy8vICAgW3R5cGU9J3NlYXJjaCddOmZvY3VzLFxuLy8vICAgW3R5cGU9J3RlbCddOmZvY3VzLFxuLy8vICAgW3R5cGU9J3RleHQnXTpmb2N1cyxcbi8vLyAgIFt0eXBlPSd0aW1lJ106Zm9jdXMsXG4vLy8gICBbdHlwZT0ndXJsJ106Zm9jdXMsXG4vLy8gICBbdHlwZT0nd2VlayddOmZvY3VzLFxuLy8vICAgaW5wdXQ6bm90KFt0eXBlXSk6Zm9jdXMsXG4vLy8gICB0ZXh0YXJlYTpmb2N1cyB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMxNTY1YzA7XG4vLy8gICB9XG5cbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6IF9hc3NpZ24taW5wdXRzKCRfdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuXG4vLy8gQSBsaXN0IG9mIGFsbCBfdGV4dC1iYXNlZF8gSFRNTCBpbnB1dHMgd2l0aCB0aGUgYDpob3ZlcmAgcHNldWRvLWNsYXNzXG4vLy8gYXBwbGllZC4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCBpbnRlcnBvbGF0ZSB0aGUgdmFyaWFibGUgKGAje31gKSB0byB1c2Vcbi8vLyBpdCBhcyBhIHNlbGVjdG9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIFt0eXBlPSdjb2xvciddOmhvdmVyLFxuLy8vICAgW3R5cGU9J2RhdGUnXTpob3Zlcixcbi8vLyAgIFt0eXBlPSdkYXRldGltZSddOmhvdmVyLFxuLy8vICAgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106aG92ZXIsXG4vLy8gICBbdHlwZT0nZW1haWwnXTpob3Zlcixcbi8vLyAgIFt0eXBlPSdtb250aCddOmhvdmVyLFxuLy8vICAgW3R5cGU9J251bWJlciddOmhvdmVyLFxuLy8vICAgW3R5cGU9J3Bhc3N3b3JkJ106aG92ZXIsXG4vLy8gICBbdHlwZT0nc2VhcmNoJ106aG92ZXIsXG4vLy8gICBbdHlwZT0ndGVsJ106aG92ZXIsXG4vLy8gICBbdHlwZT0ndGV4dCddOmhvdmVyLFxuLy8vICAgW3R5cGU9J3RpbWUnXTpob3Zlcixcbi8vLyAgIFt0eXBlPSd1cmwnXTpob3Zlcixcbi8vLyAgIFt0eXBlPSd3ZWVrJ106aG92ZXIsXG4vLy8gICBpbnB1dDpub3QoW3R5cGVdKTpob3Zlcixcbi8vLyAgIHRleHRhcmVhOmhvdmVyIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbi8vLyAgIH1cblxuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogX2Fzc2lnbi1pbnB1dHMoJF90ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG5cbi8vLyBBIGxpc3Qgb2YgYWxsIF90ZXh0LWJhc2VkXyBIVE1MIGlucHV0cyB3aXRoIHRoZSBgOmludmFsaWRgIHBzZXVkby1jbGFzc1xuLy8vIGFwcGxpZWQuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgaW50ZXJwb2xhdGUgdGhlIHZhcmlhYmxlIChgI3t9YCkgdG8gdXNlXG4vLy8gaXQgYXMgYSBzZWxlY3Rvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1pbnZhbGlkfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC8vIENTUyBPdXRwdXRcbi8vLyAgIFt0eXBlPSdjb2xvciddOmludmFsaWQsXG4vLy8gICBbdHlwZT0nZGF0ZSddOmludmFsaWQsXG4vLy8gICBbdHlwZT0nZGF0ZXRpbWUnXTppbnZhbGlkLFxuLy8vICAgW3R5cGU9J2RhdGV0aW1lLWxvY2FsJ106aW52YWxpZCxcbi8vLyAgIFt0eXBlPSdlbWFpbCddOmludmFsaWQsXG4vLy8gICBbdHlwZT0nbW9udGgnXTppbnZhbGlkLFxuLy8vICAgW3R5cGU9J251bWJlciddOmludmFsaWQsXG4vLy8gICBbdHlwZT0ncGFzc3dvcmQnXTppbnZhbGlkLFxuLy8vICAgW3R5cGU9J3NlYXJjaCddOmludmFsaWQsXG4vLy8gICBbdHlwZT0ndGVsJ106aW52YWxpZCxcbi8vLyAgIFt0eXBlPSd0ZXh0J106aW52YWxpZCxcbi8vLyAgIFt0eXBlPSd0aW1lJ106aW52YWxpZCxcbi8vLyAgIFt0eXBlPSd1cmwnXTppbnZhbGlkLFxuLy8vICAgW3R5cGU9J3dlZWsnXTppbnZhbGlkLFxuLy8vICAgaW5wdXQ6bm90KFt0eXBlXSk6aW52YWxpZCxcbi8vLyAgIHRleHRhcmVhOmludmFsaWQge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMDBmO1xuLy8vICAgfVxuXG4kYWxsLXRleHQtaW5wdXRzLWludmFsaWQ6IF9hc3NpZ24taW5wdXRzKCRfdGV4dC1pbnB1dHMtbGlzdCwgaW52YWxpZCk7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQWZ0ZXJDb21tYSwgVW5uZWNlc3NhcnlNYW50aXNzYSwgVHJhaWxpbmdaZXJvXG5cbi8vLy9cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuXG4vLy9cbi8vLyBAbGluayBodHRwczovL2dvby5nbC9wOHU2U0tcbi8vL1xuLy8vIEB0eXBlIHN0cmluZ1xuLy8vL1xuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQGFyZ3VtZW50IHtjb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlciAocGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQHJldHVybiB7Y29sb3J9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLy8gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdGludChcbiAgJGNvbG9yLFxuICAkcGVyY2VudFxuKSB7XG4gIEBpZiBub3QgX2lzLWNvbG9yKCRjb2xvcikge1xuICAgIEBlcnJvciBcImAjeyRjb2xvcn1gIGlzIG5vdCBhIHZhbGlkIGNvbG9yIGZvciB0aGUgYCRjb2xvcmAgYXJndW1lbnQgaW4gXCIgK1xuICAgICAgICAgICBcInRoZSBgdGludGAgbWl4aW4uXCI7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgYSB0cmlhbmdsZSBwb2ludGluZyBpbiBhIHNwZWNpZmllZCBkaXJlY3Rpb24uXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJGRpcmVjdGlvblxuLy8vICAgVGhlIGRpcmVjdGlvbiB0aGUgdHJpYW5nbGUgc2hvdWxkIHBvaW50LiBBY2NlcHRzIGB1cGAsIGB1cC1yaWdodGAsXG4vLy8gICBgcmlnaHRgLCBgZG93bi1yaWdodGAsIGBkb3duYCwgYGRvd24tbGVmdGAsIGBsZWZ0YCBvciBgdXAtbGVmdGAuXG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlciAod2l0aCB1bml0KX0gJHdpZHRoXG4vLy8gICBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy9cbi8vLyBAYXJndW1lbnQge251bWJlciAod2l0aCB1bml0KX0gJGhlaWdodFxuLy8vICAgSGVpZ2h0IG9mIHRoZSB0cmlhbmdsZS5cbi8vL1xuLy8vIEBhcmd1bWVudCB7Y29sb3J9ICRjb2xvclxuLy8vICAgQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAmOjpiZWZvcmUge1xuLy8vICAgICAgIEBpbmNsdWRlIHRyaWFuZ2xlKFwidXBcIiwgMnJlbSwgMXJlbSwgI2IyNWM5Yyk7XG4vLy8gICAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YmVmb3JlIHtcbi8vLyAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgaGVpZ2h0OiAwO1xuLy8vICAgICB3aWR0aDogMDtcbi8vLyAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjYjI1YzljO1xuLy8vICAgICBib3JkZXItd2lkdGg6IDAgMXJlbSAxcmVtO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgfVxuXG5AbWl4aW4gdHJpYW5nbGUoXG4gICRkaXJlY3Rpb24sXG4gICR3aWR0aCxcbiAgJGhlaWdodCxcbiAgJGNvbG9yXG4pIHtcbiAgQGlmIG5vdCBpbmRleChcbiAgICBcInVwXCIgXCJ1cC1yaWdodFwiIFwicmlnaHRcIiBcImRvd24tcmlnaHRcIiBcImRvd25cIiBcImRvd24tbGVmdFwiIFwibGVmdFwiIFwidXAtbGVmdFwiLFxuICAgICRkaXJlY3Rpb25cbiAgKSB7XG4gICAgQGVycm9yIFwiRGlyZWN0aW9uIG11c3QgYmUgYHVwYCwgYHVwLXJpZ2h0YCwgYHJpZ2h0YCwgYGRvd24tcmlnaHRgLCBcIiArXG4gICAgICAgICAgIFwiYGRvd25gLCBgZG93bi1sZWZ0YCwgYGxlZnRgIG9yIGB1cC1sZWZ0YC5cIjtcbiAgfSBAZWxzZSBpZiBub3QgX2lzLWNvbG9yKCRjb2xvcikge1xuICAgIEBlcnJvciBcImAjeyRjb2xvcn1gIGlzIG5vdCBhIHZhbGlkIGNvbG9yIGZvciB0aGUgYCRjb2xvcmAgYXJndW1lbnQgaW4gXCIgK1xuICAgICAgICAgICBcInRoZSBgdHJpYW5nbGVgIG1peGluLlwiO1xuICB9IEBlbHNlIHtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGhlaWdodDogMDtcbiAgICB3aWR0aDogMDtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IFwidXBcIiB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICRjb2xvcjtcbiAgICAgIGJvcmRlci13aWR0aDogMCAoJHdpZHRoIC8gMikgJGhlaWdodDtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJ1cC1yaWdodFwiIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgJGNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXdpZHRoOiAwICR3aWR0aCAkd2lkdGggMDtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJyaWdodFwiIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAoJGhlaWdodCAvIDIpIDAgKCRoZWlnaHQgLyAyKSAkd2lkdGg7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1yaWdodFwiIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGNvbG9yO1xuICAgICAgYm9yZGVyLXdpZHRoOiAwIDAgJHdpZHRoICR3aWR0aDtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gXCJkb3duXCIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgKCR3aWR0aCAvIDIpIDA7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IFwiZG93bi1sZWZ0XCIge1xuICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkY29sb3I7XG4gICAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAwIDAgJHdpZHRoO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci13aWR0aDogKCRoZWlnaHQgLyAyKSAkd2lkdGggKCRoZWlnaHQgLyAyKSAwO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBcInVwLWxlZnRcIiB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci13aWR0aDogJHdpZHRoICR3aWR0aCAwIDA7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmVuZG9yIHByZWZpeGVzIGZvciB2YWx1ZXMuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byB1c2UuXG4vLy9cbi8vLyBAYXJndW1lbnQge3N0cmluZ30gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byBwcmVmaXguXG4vLy9cbi8vLyBAYXJndW1lbnQge2xpc3R9ICRwcmVmaXhlc1xuLy8vICAgVmVuZG9yIHByZWZpeGVzIHRvIG91dHB1dC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3Ncbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgdmFsdWUtcHJlZml4ZXIoY3Vyc29yLCBncmFiLCAoXCJ3ZWJraXRcIiwgXCJtb3pcIikpO1xuLy8vICAgfVxuLy8vXG4vLy8gICAvLyBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGN1cnNvcjogLXdlYmtpdC1ncmFiO1xuLy8vICAgICBjdXJzb3I6IC1tb3otZ3JhYjtcbi8vLyAgICAgY3Vyc29yOiBncmFiO1xuLy8vICAgfVxuLy8vXG4vLy8gQGF1dGhvciBNYXR0aGV3IFRvYmlhc3pcblxuQG1peGluIHZhbHVlLXByZWZpeGVyKFxuICAkcHJvcGVydHksXG4gICR2YWx1ZSxcbiAgJHByZWZpeGVzOiAoKVxuKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICAjeyRwcm9wZXJ0eX06ICN7XCItXCIgKyAkcHJlZml4ICsgXCItXCIgKyAkdmFsdWV9O1xuICB9XG4gICN7JHByb3BlcnR5fTogJHZhbHVlO1xufVxuIiwiLy8gQnJlYWtwb2ludHNcbiRtZWRpdW0tc2NyZWVuOiA2MDBweDtcbiRsYXJnZS1zY3JlZW46IDkwMHB4O1xuXG4vLyBUeXBvZ3JhcGh5XG4kZm9udC1zdGFjazogXCJPcGVuIFNhbnNcIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtcbiRiYXNlLWZvbnQtZmFtaWx5OiAkZm9udC1zdGFjaztcbiRoZWFkaW5nLWZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcblxuLy8gRm9udCBTaXplc1xuJGJhc2UtZm9udC1zaXplOiAxNnB4ICFkZWZhdWx0O1xuXG4vLyBMaW5lIGhlaWdodFxuJGJhc2UtbGluZS1oZWlnaHQ6IDEuNTtcbiRoZWFkaW5nLWxpbmUtaGVpZ2h0OiAxLjI7XG5cbi8vIE90aGVyIFNpemVzXG4kYmFzZS1ib3JkZXItcmFkaXVzOiAzcHg7XG4kYmFzZS1zcGFjaW5nOiAkYmFzZS1saW5lLWhlaWdodCAqIDFlbTtcbiRzbWFsbC1zcGFjaW5nOiAkYmFzZS1zcGFjaW5nIC8gMjtcbiRiYXNlLXotaW5kZXg6IDA7XG5cbi8vIENvbG9yc1xuJGJsdWU6ICMyMzNhNzg7XG4kYmx1ZS1za3k6ICMzN2MwZjY7XG4kYmx1ZS1za3ktbGlnaHQ6IGxpZ2h0ZW4oJGJsdWUtc2t5LCAzJSk7XG4kcmVkOiAjZDIxMzM0O1xuJGRhcmstZ3JheTogIzQyNDI0MjtcbiRtZWRpdW0tZ3JheTogIzk1OTU5NTtcbiRncmF5OiAjY2NjO1xuJGdyZWVuOiAjMWQ4NTAyO1xuJGxpZ2h0LWdyYXk6ICNkNWQ1ZDU7XG4kd2hpdGU6ICNmZmY7XG4kYmxhY2s6ICMwMDA7XG5cbi8vIEJyYW5kIGNvbG9yc1xuJGNvbG9yLWJhY2tncm91bmQ6ICNlNmYxZjU7XG4kY29sb3ItYnJhbmQ6ICRibHVlOyAvKiBiZC1ibHVlICovXG4kY29sb3ItYnJhbmQtaG92ZXI6ICMzZjY5ZDk7XG4kY29sb3ItYnJhbmQtbWVkOiAjNTA3ZWMwOyAvKiBtZWQtYmx1ZSAqL1xuJGNvbG9yLWJyYW5kLWxpZ2h0OiAjOGNhN2M2OyAvKiBsZ2h0LWJsdWUgKi9cbiRjb2xvci1icmFuZC1saWdodGVyOiAjYWFjMGQ3OyAvKiBsZ2h0ZXIgYmx1ZSAqL1xuJGNvbG9yLWJyYW5kLWxpZ2h0ZXN0OiAjNmRjZmY2OyAvKiBsZ2h0ZXN0LWJsdWUgKi9cbiRjb2xvci1icmFuZC04MDogcmdiYSgkY29sb3ItYnJhbmQsIDAuOCk7XG5cbiRjb2xvci1hY2NlbnQ6ICRyZWQ7IC8qIGJkLXJlZCAqL1xuJGNvbG9yLWFjY2VudC1tZWQ6IHNoYWRlKCRyZWQsIDUlKTsgLyogbWVkLXJlZCAqL1xuJGNvbG9yLWFjY2VudC1kYXJrOiBzaGFkZSgkcmVkLCAxMCUpOyAvKiBkcmstcmVkICovXG4vLyBGb250IENvbG9yc1xuJGJhc2UtZm9udC1jb2xvcjogJGRhcmstZ3JheTtcbiRhY3Rpb24tY29sb3I6ICRjb2xvci1icmFuZDtcbiRjb2xvci10eHQ6ICRkYXJrLWdyYXk7XG4kY29sb3ItdHh0LWxnaHQ6ICRtZWRpdW0tZ3JheTtcbiRjb2xvci10eHQtbGlnaHRlcjogJGdyYXk7XG4kY29sb3ItdHh0LWxpZ2h0ZXN0OiAkbGlnaHQtZ3JheTtcbiR3aGl0ZTogJHdoaXRlO1xuJGNvbG9yLXR4dC1ibGFjazogJGJsYWNrO1xuJGNvbG9yLXR4dC1jYWxsb3V0OiAkZ3JlZW47XG4kY29sb3ItbXNnLXBvczogJGNvbG9yLWFjY2VudC1kYXJrO1xuXG4vLyBCb3JkZXJcbiRiYXNlLWJvcmRlci1jb2xvcjogJGxpZ2h0LWdyYXk7XG4kYmFzZS1ib3JkZXI6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG5cbi8vIEJhY2tncm91bmQgQ29sb3JzXG4kYmFzZS1iYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCRiYXNlLWJvcmRlci1jb2xvciwgNzUlKTtcblxuLy8gRm9ybXNcbiRmb3JtLWJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDNweCByZ2JhKCRibGFjaywgMC4wNik7XG4kZm9ybS1ib3gtc2hhZG93LWZvY3VzOiAkZm9ybS1ib3gtc2hhZG93LCAwIDAgNXB4IGFkanVzdC1jb2xvcigkYWN0aW9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUsICRhbHBoYTogLTAuMyk7XG5cbi8vIEFuaW1hdGlvbnNcbiRiYXNlLWR1cmF0aW9uOiAxNTBtcztcbiRiYXNlLXRpbWluZzogZWFzZTtcblxuXG5cblxuXG5cbiRjb2xvci1ib3JkZXItYm90dG9tOiAjZDllN2YwO1xuJGNvbG9yLWJvcmRlci1sZWZ0OiAjZjFmNGZhO1xuXG4kYXNzZXRzX3BhdGg6IFwiXCI7XG4kYXNzZXRzX3ZlcnNpb246IFwiXCI7IiwiLmNvbnRhaW4tcHJpLXRkZnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwOztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMCA5OSU7XG5cbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAuNjVyZW07XG4gICAgfVxuXG5cbiAgICAuZmlyc3ROYW1lLFxuICAgIC5sYXN0TmFtZSB7XG4gICAgICAgIGZsZXg6IDAgMCA0OSU7XG4gICAgfVxuXG5cbiAgICAubWlkZGxlTmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uY29udGFpblBhbmVsIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMCA0MHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXJcXDk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBoYWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCA0MHB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPnBoYWJsZXQnLCAnPGRlc2t0b3AnKSB7XG4gICAgICAgIG1hcmdpbjogMCUgMi41JTtcbiAgICAgICAgd2lkdGg6IDk1JTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICB9XG5cbiAgICAuY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDIlIDIuNSU7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBoYWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDE1cHggMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgICAgIC5sZWZ0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMzMzM7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMCAxNXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyODBweDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAucmlnaHQge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzMzM7XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgZm9ybSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuYmQtbG9nby1tYWluIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuXG4gICAgLmJkLWxvZ28tbWFpbiB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgd2lkdGg6IDQwJTt9XG5cblxuICAgICAgICAuYmQtbG9nby1tYWluIGltZ3tcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cblxuXG4gICAgLmNvbnRhaW5Db250ZW50Rm9ybSB7XG4gICAgICAgIGgzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1waGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAuNWVtO1xuXG4gICAgICAgICAgICAmLnR4dFNvY2lhbEluc3RydWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAuNzVyZW07XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogLjc1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cblxuICAgICAgICAuY29udGFpblNvY2lhbEJ1dHRvbnMge1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBcbiAgICAucmVxdWlyZWQtdGV4dCB7XG4gICAgICAgIGNvbG9yOiAjQjYxMTJEO1xuICAgICAgICBmb250LXNpemU6IDAuNzIyZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICBwb3NpdGlvbjogaW5oZXJpdDtcbiAgICAgICAgdG9wOiAwO1xuICAgIH1cblxuXG4gICAgaW5wdXQge1xuICAgICAgICBmb250LXNpemU6IDAuODg5ZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIDIuMjVlbTtcbiAgICB9XG5cblxuICAgIGlucHV0W3BsYWNlaG9sZGVyXSB7XG5cbiAgICAgIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICAgICAgZm9udC1zaXplOiAwLjg4OWVtO1xuICAgICAgZm9udC1zdHlsZTpub3JtYWwgIWltcG9ydGFudDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIDIuMjVlbTtcbiAgICAgIHRyYW5zaXRpb246YWxsLCAwLjNzLCBlYXNlO1xuICAgIH1cblxuXG4gICAgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICAgICBjb2xvcjogbGlnaHRlbigkY29sb3ItYnJhbmQtbWVkLCAxMCUpO1xuICAgIH1cblxuXG4gICAgOi1tb3otcGxhY2Vob2xkZXIgeyAvKiBGaXJlZm94IDE4LSAqL1xuICAgICAgIGNvbG9yOiBsaWdodGVuKCRjb2xvci1icmFuZC1tZWQsIDEwJSk7ICBcbiAgICB9XG5cblxuICAgIDo6LW1vei1wbGFjZWhvbGRlciB7ICAvKiBGaXJlZm94IDE5KyAqL1xuICAgICAgIGNvbG9yOiBsaWdodGVuKCRjb2xvci1icmFuZC1tZWQsIDEwJSk7ICBcbiAgICB9XG5cblxuICAgIDotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyAgXG4gICAgICAgY29sb3I6IGxpZ2h0ZW4oJGNvbG9yLWJyYW5kLW1lZCwgMTAlKTsgIFxuICAgIH1cblxuXG4gICAgbGFiZWxbZm9yPWNvdW50cnldIHNlbGVjdCB7XG4gICAgICAgIHBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIDIuMjVlbTtcbiAgICB9XG5cblxuICAgIC5maXJzdE5hbWUsXG4gICAgLmxhc3ROYW1lLFxuICAgIC5lbWFpbCxcbiAgICAuZW1haWxDb25maXJtLFxuICAgIC5waG9uZU51bWJlcixcbiAgICAuY291bnRyeVNlbGVjdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb2xvcjogbGlnaHRlbigkY29sb3ItYnJhbmQtbWVkLCAxMCUpO1xuICAgICAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgICAgICBsZWZ0OiAuN2VtO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAuNWVtO1xuICAgICAgICAgICAgd2lkdGg6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLmZpcnN0TmFtZSxcbiAgICAubGFzdE5hbWUge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiB1cmwoI3skYXNzZXRzX3BhdGh9L2Jyb3dzZXIvaW1nL2ljb25zL2Zvcm0tbmFtZS5zdmcpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuZW1haWwsXG4gICAgLmVtYWlsQ29uZmlybSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHVybCgjeyRhc3NldHNfcGF0aH0vYnJvd3Nlci9pbWcvaWNvbnMvZm9ybS1lbWFpbC5zdmcpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAucGhvbmVOdW1iZXIge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiB1cmwoI3skYXNzZXRzX3BhdGh9L2Jyb3dzZXIvaW1nL2ljb25zL2Zvcm0tcGhvbmUuc3ZnKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLmNvdW50cnlTZWxlY3Qge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiB1cmwoI3skYXNzZXRzX3BhdGh9L2Jyb3dzZXIvaW1nL2ljb25zL2Zvcm0tY291bnRyeS5zdmcpO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIC5sYWJlbC1zdGFuZGFyZCB7XG4gICAgICAgIGNvbG9yOiBsaWdodGVuKCRjb2xvci1icmFuZC1tZWQsIDEwJSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICBwYWRkaW5nOiAuMmVtIC41ZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogOTk7XG4gICAgfVxufVxuXG5cbi5yZXZlYWwtbGVmdCB7XG4gICAgY2xlYXI6IG5vbmU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiA0MCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waGFibGV0Jykge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgbWFyZ2luOiAyLjUlIDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ucmV2ZWFsLXJpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRncmF5LCAxNyUpO1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAkY29sb3ItdHh0LWxpZ2h0ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjbGVhcjogbm9uZTtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogNSU7XG4gICAgcGFkZGluZzogMjBweCA1JTtcbiAgICB3aWR0aDogNTUlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhhYmxldCcpIHtcbiAgICAgICAgYm9yZGVyOiAxcHggZGFzaGVkICRjb2xvci10eHQtbGlnaHRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogLjVlbTtcbiAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMi41JTtcbiAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICYudHkge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IDBweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnBoYWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgdG9wOiA0MHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250YWluZXItZmlyc3QtNTAge1xuICAgIG1hcmdpbi1ib3R0b206IC41ZW07XG59XG5cbi50ZGZzX3BhZEIge1xuICAgIHBhZGRpbmctYm90dG9tOiAxZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi50ZGZzX3VzX251bWJlcixcbi50ZGZzUGhvbmVOdW1iZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMi40NDRlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNWVtO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBpbml0aWFsO1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAuMjVlbTtcbiAgICB9XG59XG5cbi50ZGZzX3dvcmxkd2lkZV9udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogMS4zODllbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udHh0LXBob25lLWFyZWEge1xuICAgIGNvbG9yOiAkY29sb3ItYnJhbmQtbWVkO1xufVxuXG4udHh0LXd3LXBob25lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuNjY3ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjVlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBoYWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGluaXRpYWw7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IC4yNWVtO1xuICAgIH1cbn1cblxuLnR4dC1uby1jYXNlIHtcbiAgICBjb2xvcjogJGNvbG9yLWJyYW5kO1xuICAgIGZvbnQtc2l6ZTogMi42NjdlbTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCA1cHg7XG59XG5cbi50ZXh0LWZvci1zYWxlIHtcbiAgICBjb2xvcjogJGNvbG9yLWFjY2VudC1tZWQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAuNTgzZW07XG59XG4udHh0LWFncmVlLXRlcm1zIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waGFibGV0Jykge1xuICAgICAgICBmb250LXNpemU6IC44ZW07XG4gICAgfVxufVxuXG4vLyBNb25ldGF0ZSBjb250aW51ZSBidXR0b25cbiNjb250aW51ZS1mb3JtLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgJGNvbG9yLWFjY2VudCA0NSUsICRjb2xvci1hY2NlbnQtbWVkIDUyJSk7XG5cbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogLjVlbTtcbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcGFkZGluZzogLjc1ZW0gMS41ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgdHJhbnNpdGlvbjogYWxsLCA0MDBtcywgZWFzZS1pbi1vdXQ7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDBweCByZ2JhKDAsMCwwLCAwLjI1KTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4uYnRuLWZvcm0tc3VibWl0LnRvZ2dsZS1vcmlnaW5hbCB7XG4gICAgYmFja2dyb3VuZDogdXJsKCN7JGFzc2V0c19wYXRofS9icm93c2VyL2ltZy9iZy10YXJnZXQtYmQtaWNvbi5wbmcpIG5vLXJlcGVhdCByaWdodCB0b3A7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1pbi1oZWlnaHQ6IDc5cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMnB4O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICRjb2xvci1hY2NlbnQtbWVkIDAlLCAkY29sb3ItYWNjZW50LWRhcmsgMTAwJSk7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXR4dC1saWdodGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAxLjExMWVtO1xuICAgICAgICBtYXJnaW46IC44NWVtIC43NWVtIC43NWVtIDA7XG4gICAgICAgIHBhZGRpbmc6IC4zNWVtIDFlbTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG5cbiAgICAgICAgdHJhbnNpdGlvbjogYWxsLCAxcywgZWFzZS1pbi1vdXQ7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkY29sb3ItYWNjZW50LW1lZCA1JSwgJGNvbG9yLWFjY2VudC1kYXJrIDUlKTtcblxuICAgICAgICAgICAgdGV4dC1zaGFkb3c6IDAgLTFweCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jdHh0LXBob25lLXdvcmxkIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogLjg4OWVtO1xufVxuXG5cbnNwYW4uc2VsZWN0IHtcbiAgICBjb2xvcjogJGNvbG9yLWJyYW5kLW1lZCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogLjhlbTtcbiAgICBwYWRkaW5nOiAuMmVtIDIuOGVtO1xufVxuXG4vKiAtLS0tLS0tLS0gIGRpc2FibGVkIGJ1dHRvbnMgZm9yIGZhY2Vib29rICYgbGlua2VkaW4gLS0tLS0tLS0tICovXG4uYnRuLWRlcHJlc3NlZCB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLXR4dC1saWdodGVzdDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZjdmN2Y3O1xuICAgIGJvcmRlci1yYWRpdXM6IC40ZW07XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbWFyZ2luOiAxMHB4IDBweCAwcHggMHB4O1xuICAgIHBhZGRpbmc6IC42ZW0gLjJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYnRuLWRpc2FibGVkIHtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDBweCAwcHggMTVweCByZ2JhKDkwLCA5MCwgOTAsIDAuNyk7XG4gICAgQGV4dGVuZCAuYnRuLWRlcHJlc3NlZDtcbn1cblxuLyogLS0tLS0tLS0tICBkaXNhYmxlZCBidXR0b25zIGZvciBmYWNlYm9vayAmIGxpbmtlZGluIC9lbmQgLS0tLS0tLS0tICovXG5cblxuLmJ0bi1tb2RhbC1mZWF0dXJlIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi50eHQtdGhhbmtzIHtcbiAgICBmb250LXNpemU6IDEuM2VtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPD1waGFibGV0Jykge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWJyYW5kO1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgfVxuICAgIFxufVxuXG4udmlkZW8tdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBoYWJsZXQnKSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJzw9ZGVza3RvcCcpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuXG4ud2l0aFF1b3RlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW46IDBweCA1JSAwcHggMHB4O1xuICAgIHdpZHRoOiA1MCU7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFpREFBLEFBQUEsaUJBQWlCLEFBQUMsQ0FDZCxPQUFPLENBQUUsSUFBSSxDQUNiLFNBQVMsQ0FBRSxJQUFJLENBQ2YsZUFBZSxDQUFFLGFBQWEsQ0FtQmpDLEFBdEJELEFBS0ksaUJBTGEsQ0FLYixLQUFLLEFBQUMsQ0FDRixJQUFJLENBQUUsT0FBTyxDQUViLFdBQVcsQ0FBRSxjQUFjLENBQzNCLGFBQWEsQ0FBRSxNQUFNLENBQ3hCLEFBVkwsQUFhSSxpQkFiYSxDQWFiLFVBQVUsQ0FiZCxpQkFBaUIsQ0FjYixTQUFTLEFBQUMsQ0FDTixJQUFJLENBQUUsT0FBTyxDQUNoQixBQWhCTCxBQW1CSSxpQkFuQmEsQ0FtQmIsV0FBVyxBQUFDLENBQ1IsT0FBTyxDQUFFLElBQUksQ0FDaEIsQUFHTCxBQUFBLGFBQWEsQUFBQyxDQUNWLE1BQU0sQ0FBRSxNQUFNLENBQ2QsU0FBUyxDQUFFLEtBQUssQ0FDaEIsT0FBTyxDQUFFLFdBQVcsQ0FDcEIsUUFBUSxDQUFFLFFBQVEsQ0FDbEIsVUFBVSxDQUFFLFFBQVEsQ0FDcEIsS0FBSyxDQUFFLElBQUksQ0FDWCxPQUFPLENBQUUsQ0FBQyxDQXVNYixBaEQrVUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVnRDdoQjdCLEFBQUEsYUFBYSxBQUFDLENBVU4sT0FBTyxDQUFFLFFBQVEsQ0FvTXhCLENoRCtVRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sT0FBbEIsU0FBUyxFQUFFLE9BQU8sRWdEN2hCOUIsQUFBQSxhQUFhLEFBQUMsQ0FhTixNQUFNLENBQUUsT0FBTyxDQUNmLEtBQUssQ0FBRSxHQUFHLENBZ01qQixDaEQrVUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVnRDdoQjNCLEFBQUEsYUFBYSxBQUFDLENBaUJOLFNBQVMsQ0FBRSxLQUFLLENBNkx2QixDQTlNRCxBQW9CSSxhQXBCUyxDQW9CVCxRQUFRLEFBQUMsQ0FDTCxPQUFPLENBQUUsT0FBTyxDQUNoQixVQUFVLENBQUUsSUFBSSxDQUNoQixLQUFLLENBQUUsSUFBSSxDQXdCZCxBaEQ4ZUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVnRDdoQjdCLEFBb0JJLGFBcEJTLENBb0JULFFBQVEsQUFBQyxDQU1ELE1BQU0sQ0FBRSxNQUFNLENBQ2QsT0FBTyxDQUFFLE1BQU0sQ0FDZixVQUFVLENBQUUsSUFBSSxDQW1CdkIsQUEvQ0wsQUE4QlksYUE5QkMsQ0FvQlQsUUFBUSxDQVVBLEtBQUssQUFBQyxDQUNGLFdBQVcsQ0FBRSxjQUFjLENBQzNCLEtBQUssQ0FBRSxJQUFJLENBQ1gsT0FBTyxDQUFFLE1BQU0sQ0FDZixLQUFLLENBQUUsS0FBSyxDQUNmLEFBbkNiLEFBc0NZLGFBdENDLENBb0JULFFBQVEsQ0FrQkEsTUFBTSxBQUFDLENBQ0gsWUFBWSxDQUFFLGNBQWMsQ0FDL0IsQUF4Q2IsQUEyQ1ksYUEzQ0MsQ0FvQlQsUUFBUSxDQXVCQSxJQUFJLEFBQUMsQ0FDRCxNQUFNLENBQUUsVUFBVSxDQUNyQixDQTdDYixBQWtESSxhQWxEUyxDQWtEVCxhQUFhLEFBQUMsQ0FDVixNQUFNLENBQUUsQ0FBQyxDQUNaLEFBcERMLEFBa0RJLGFBbERTLENBa0RULGFBQWEsQUFLQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUUsS0FBSyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsR0FBRyxDQUFHLEFBdkQzRCxBQTBEUSxhQTFESyxDQTBETCxhQUFhLENBQUMsR0FBRyxBQUFBLENBQ2IsTUFBTSxDQUFFLElBQUksQ0FDWixLQUFLLENBQUUsSUFBSSxDQUNkLEFBN0RULEFBa0VRLGFBbEVLLENBaUVULG1CQUFtQixDQUNmLEVBQUUsQUFBQyxDQUNDLFNBQVMsQ0FBRSxRQUFRLENBQ25CLFdBQVcsQ0FBRSxHQUFHLENBS25CLEFoRG9kTCxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRWdEN2hCN0IsQUFrRVEsYUFsRUssQ0FpRVQsbUJBQW1CLENBQ2YsRUFBRSxBQUFDLENBS0ssU0FBUyxDQUFFLE1BQU0sQ0FFeEIsQ0F6RVQsQUE0RVEsYUE1RUssQ0FpRVQsbUJBQW1CLENBV2YsQ0FBQyxBQUFDLENBQ0UsV0FBVyxDQUFFLEdBQUcsQ0FDaEIsYUFBYSxDQUFFLElBQUksQ0FVdEIsQUF4RlQsQUFnRlksYUFoRkMsQ0FpRVQsbUJBQW1CLENBV2YsQ0FBQyxBQUlJLHNCQUFzQixBQUFDLENBQ3BCLFNBQVMsQ0FBRSxNQUFNLENBQ3BCLEFBbEZiLEFBcUZZLGFBckZDLENBaUVULG1CQUFtQixDQVdmLENBQUMsQUFTSSxVQUFXLENBQUEsQ0FBQyxDQUFFLENBQ1gsU0FBUyxDQUFFLE1BQU0sQ0FDcEIsQUF2RmIsQUEyRlEsYUEzRkssQ0FpRVQsbUJBQW1CLENBMEJmLHFCQUFxQixBQUFDLENBQ2xCLE1BQU0sQ0FBRSxNQUFNLENBQ2pCLEFBN0ZULEFBaUdJLGFBakdTLENBaUdULGNBQWMsQUFBQyxDQUNYLEtBQUssQ0FBRSxPQUFPLENBQ2QsU0FBUyxDQUFFLE9BQU8sQ0FDbEIsYUFBYSxDQUFFLEtBQUssQ0FDcEIsUUFBUSxDQUFFLE9BQU8sQ0FDakIsR0FBRyxDQUFFLENBQUMsQ0FDVCxBQXZHTCxBQTBHSSxhQTFHUyxDQTBHVCxLQUFLLEFBQUMsQ0FDRixTQUFTLENBQUUsT0FBTyxDQUNsQixhQUFhLENBQUUsQ0FBQyxDQUNoQixPQUFPLENBQUUscUJBQXFCLENBQ2pDLEFBOUdMLEFBaUhJLGFBakhTLENBaUhULEtBQUssQ0FBQSxBQUFBLFdBQUMsQUFBQSxDQUFhLENBRWpCLEtBQUssQ0RoSEMsT0FBTyxDQ2lIYixTQUFTLENBQUUsT0FBTyxDQUNsQixVQUFVLENBQUMsaUJBQWlCLENBQzVCLFdBQVcsQ0FBRSxjQUFjLENBQzNCLE9BQU8sQ0FBRSxxQkFBcUIsQ0FDOUIsVUFBVSxDQUFDLGVBQWUsQ0FDM0IsQUF6SEwsQUE0SEksYUE1SFMsQ0E0SFQsMkJBQTJCLEFBQUMsQ0FDekIsS0FBSyxDQUFFLE9BQThCLENBQ3ZDLEFBOUhMLEFBaUlJLGFBaklTLENBaUlULGlCQUFpQixBQUFDLENBQ2YsS0FBSyxDQUFFLE9BQThCLENBQ3ZDLEFBbklMLEFBc0lJLGFBdElTLENBc0lULGtCQUFrQixBQUFDLENBQ2hCLEtBQUssQ0FBRSxPQUE4QixDQUN2QyxBQXhJTCxBQTJJSSxhQTNJUyxDQTJJVCxzQkFBc0IsQUFBQyxDQUNwQixLQUFLLENBQUUsT0FBOEIsQ0FDdkMsQUE3SUwsQUFnSkksYUFoSlMsQ0FnSlQsS0FBSyxDQUFBLEFBQUEsR0FBQyxDQUFELE9BQUMsQUFBQSxFQUFhLE1BQU0sQUFBQyxDQUN0QixPQUFPLENBQUUscUJBQXFCLENBQ2pDLEFBbEpMLEFBcUpJLGFBckpTLENBcUpULFVBQVUsQ0FySmQsYUFBYSxDQXNKVCxTQUFTLENBdEpiLGFBQWEsQ0F1SlQsTUFBTSxDQXZKVixhQUFhLENBd0pULGFBQWEsQ0F4SmpCLGFBQWEsQ0F5SlQsWUFBWSxDQXpKaEIsYUFBYSxDQTBKVCxjQUFjLEFBQUMsQ0FDWCxRQUFRLENBQUUsUUFBUSxDQVVyQixBQXJLTCxBQTZKUSxhQTdKSyxDQXFKVCxVQUFVLEFBUUwsT0FBTyxDQTdKaEIsYUFBYSxDQXNKVCxTQUFTLEFBT0osT0FBTyxDQTdKaEIsYUFBYSxDQXVKVCxNQUFNLEFBTUQsT0FBTyxDQTdKaEIsYUFBYSxDQXdKVCxhQUFhLEFBS1IsT0FBTyxDQTdKaEIsYUFBYSxDQXlKVCxZQUFZLEFBSVAsT0FBTyxDQTdKaEIsYUFBYSxDQTBKVCxjQUFjLEFBR1QsT0FBTyxBQUFDLENBQ0wsS0FBSyxDQUFFLE9BQThCLENBQ3JDLE1BQU0sQ0FBRSxHQUFHLENBQ1gsSUFBSSxDQUFFLElBQUksQ0FDVixRQUFRLENBQUUsUUFBUSxDQUNsQixHQUFHLENBQUUsSUFBSSxDQUNULEtBQUssQ0FBRSxHQUFHLENBQ2IsQUFwS1QsQUEwS1EsYUExS0ssQ0F3S1QsVUFBVSxBQUVMLE9BQU8sQ0ExS2hCLGFBQWEsQ0F5S1QsU0FBUyxBQUNKLE9BQU8sQUFBQyxDQUNMLE9BQU8sQ0FBRSxxQ0FBSyxDQUNqQixBQTVLVCxBQWtMUSxhQWxMSyxDQWdMVCxNQUFNLEFBRUQsT0FBTyxDQWxMaEIsYUFBYSxDQWlMVCxhQUFhLEFBQ1IsT0FBTyxBQUFDLENBQ0wsT0FBTyxDQUFFLHNDQUFLLENBQ2pCLEFBcExULEFBeUxRLGFBekxLLENBd0xULFlBQVksQUFDUCxPQUFPLEFBQUMsQ0FDTCxPQUFPLENBQUUsc0NBQUssQ0FDakIsQUEzTFQsQUFnTVEsYUFoTUssQ0ErTFQsY0FBYyxBQUNULE9BQU8sQUFBQyxDQUNMLE9BQU8sQ0FBRSx3Q0FBSyxDQUNqQixBQWxNVCxBQXVNSSxhQXZNUyxDQXVNVCxlQUFlLEFBQUMsQ0FDWixLQUFLLENBQUUsT0FBOEIsQ0FDckMsU0FBUyxDQUFFLEdBQUcsQ0FDZCxPQUFPLENBQUUsU0FBUyxDQUNsQixRQUFRLENBQUUsUUFBUSxDQUNsQixPQUFPLENBQUUsRUFBRSxDQUNkLEFBSUwsQUFBQSxZQUFZLEFBQUMsQ0FDVCxLQUFLLENBQUUsSUFBSSxDQUNYLEtBQUssQ0FBRSxJQUFJLENBQ1gsUUFBUSxDQUFFLFFBQVEsQ0FDbEIsS0FBSyxDQUFFLEdBQUcsQ0FPYixBaERpVUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVnRDVVN0IsQUFBQSxZQUFZLEFBQUMsQ0FPTCxLQUFLLENBQUUsSUFBSSxDQUNYLE1BQU0sQ0FBRSxRQUFRLENBQ2hCLEtBQUssQ0FBRSxJQUFJLENBRWxCLENBRUQsQUFBQSxhQUFhLEFBQUMsQ0FDVixVQUFVLENBQUUsT0FBbUIsQ0FDL0IsTUFBTSxDQUFFLEdBQUcsQ0FBQyxNQUFNLENEM05mLElBQUksQ0M0TlAsYUFBYSxDQUFFLElBQUksQ0FDbkIsS0FBSyxDQUFFLElBQUksQ0FDWCxLQUFLLENBQUUsSUFBSSxDQUNYLFdBQVcsQ0FBRSxFQUFFLENBQ2YsT0FBTyxDQUFFLE9BQU8sQ0FDaEIsS0FBSyxDQUFFLEdBQUcsQ0EyQmIsQWhENFJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFZ0QvVDdCLEFBQUEsYUFBYSxBQUFDLENBV04sTUFBTSxDQUFFLEdBQUcsQ0FBQyxNQUFNLENEcE9uQixJQUFJLENDcU9ILGFBQWEsQ0FBRSxJQUFJLENBQ25CLEtBQUssQ0FBRSxJQUFJLENBQ1gsYUFBYSxDQUFFLEdBQUcsQ0FDbEIsV0FBVyxDQUFFLEdBQUcsQ0FDaEIsVUFBVSxDQUFFLElBQUksQ0FDaEIsT0FBTyxDQUFFLFFBQVEsQ0FDakIsS0FBSyxDQUFFLElBQUksQ0FpQmxCLENBbkNELEFBcUJJLGFBckJTLEFBcUJSLEdBQUcsQUFBQyxDQUNELFVBQVUsQ0FBRSxJQUFJLENBQ2hCLE1BQU0sQ0FBRSxHQUFHLENBV2QsQWhENlJELE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFZ0QvVDlCLEFBcUJJLGFBckJTLEFBcUJSLEdBQUcsQUFBQyxDQUtHLE9BQU8sQ0FBRSxJQUFJLENBQ2IsR0FBRyxDQUFFLElBQUksQ0FPaEIsQ2hENlJELE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFZ0QvVDNCLEFBcUJJLGFBckJTLEFBcUJSLEdBQUcsQUFBQyxDQVNHLFVBQVUsQ0FBRSxJQUFJLENBQ2hCLE1BQU0sQ0FBRSxHQUFHLENBQ1gsT0FBTyxDQUFFLEdBQUcsQ0FFbkIsQ0FHTCxBQUFBLG1CQUFtQixBQUFDLENBQ2hCLGFBQWEsQ0FBRSxJQUFJLENBQ3RCLEFBRUQsQUFBQSxVQUFVLEFBQUMsQ0FDUCxjQUFjLENBQUUsR0FBRyxDQUt0QixBaERnUkcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVnRHRSN0IsQUFBQSxVQUFVLEFBQUMsQ0FJSCxjQUFjLENBQUUsQ0FBQyxDQUV4QixDQUVELEFBQUEsZUFBZSxDQUNmLGdCQUFnQixBQUFDLENBQ2IsT0FBTyxDQUFFLEtBQUssQ0FDZCxTQUFTLENBQUUsT0FBTyxDQUNsQixXQUFXLENBQUUsTUFBTSxDQUNuQixXQUFXLENBQUUsTUFBTSxDQU90QixBaERrUUcsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVnRDlRN0IsQUFBQSxlQUFlLENBQ2YsZ0JBQWdCLEFBQUMsQ0FPVCxPQUFPLENBQUUsT0FBTyxDQUNoQixTQUFTLENBQUUsS0FBSyxDQUNoQixhQUFhLENBQUUsS0FBSyxDQUUzQixDQUVELEFBQUEsc0JBQXNCLEFBQUMsQ0FDbkIsU0FBUyxDQUFFLE9BQU8sQ0FDbEIsV0FBVyxDQUFFLE1BQU0sQ0FDdEIsQUFFRCxBQUFBLGVBQWUsQUFBQyxDQUNaLEtBQUssQ0RwUlMsT0FBTyxDQ3FSeEIsQUFFRCxBQUFBLGFBQWEsQUFBQyxDQUNWLE9BQU8sQ0FBRSxLQUFLLENBQ2QsU0FBUyxDQUFFLE9BQU8sQ0FDbEIsV0FBVyxDQUFFLE1BQU0sQ0FPdEIsQWhENk9HLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFZ0R2UDdCLEFBQUEsYUFBYSxBQUFDLENBTU4sT0FBTyxDQUFFLE9BQU8sQ0FDaEIsU0FBUyxDQUFFLEtBQUssQ0FDaEIsYUFBYSxDQUFFLEtBQUssQ0FFM0IsQ0FFRCxBQUFBLFlBQVksQUFBQyxDQUNULEtBQUssQ0RwVEYsT0FBTyxDQ3FUVixTQUFTLENBQUUsT0FBTyxDQUNsQixXQUFXLENBQUUsR0FBRyxDQUNoQixXQUFXLENBQUUsR0FBRyxDQUNoQixNQUFNLENBQUUsQ0FBQyxDQUNULE9BQU8sQ0FBRSxPQUFPLENBQ25CLEFBRUQsQUFBQSxjQUFjLEFBQUMsQ0FDWCxLQUFLLENUdlRHLE9BQTJCLENTd1RuQyxPQUFPLENBQUUsS0FBSyxDQUNkLFNBQVMsQ0FBRSxNQUFNLENBQ3BCLEFoRDhORyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRWdEN043QixBQUFBLGdCQUFnQixBQUFDLENBRVQsU0FBUyxDQUFFLElBQUksQ0FFdEIsQ0FHRCxBQUFBLHFCQUFxQixBQUFDLENBQ2xCLFVBQVUsQ0FBRSxvREFBb0UsQ0FFaEYsTUFBTSxDQUFFLElBQUksQ0FDWixhQUFhLENBQUUsSUFBSSxDQUNuQixLQUFLLENEcFVELElBQUksQ0NxVVIsTUFBTSxDQUFFLE9BQU8sQ0FDZixPQUFPLENBQUUsWUFBWSxDQUNyQixTQUFTLENBQUUsR0FBRyxDQUNkLFdBQVcsQ0FBRSxHQUFHLENBQ2hCLFVBQVUsQ0FBRSxJQUFJLENBQ2hCLE9BQU8sQ0FBRSxDQUFDLENBQ1YsT0FBTyxDQUFFLFdBQVcsQ0FDcEIsVUFBVSxDQUFFLE1BQU0sQ0FFbEIsVUFBVSxDQUFFLHVCQUF1QixDQU10QyxBQXJCRCxBQWlCSSxxQkFqQmlCLEFBaUJoQixNQUFNLEFBQUMsQ0FDSixVQUFVLENBQUUsS0FBSyxDQUFDLENBQUMsQ0FBRSxJQUFHLENBQUMsR0FBRyxDQUFDLGdCQUFpQixDQUM5QyxPQUFPLENBQUUsQ0FBQyxDQUNiLEFBRUwsQUFBQSxnQkFBZ0IsQUFBQSxnQkFBZ0IsQUFBQyxDQUM3QixVQUFVLENBQUUsdUNBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDckMsT0FBTyxDQUFFLFlBQVksQ0FDckIsVUFBVSxDQUFFLElBQUksQ0FDaEIsT0FBTyxDQUFFLENBQUMsQ0FDVixhQUFhLENBQUUsSUFBSSxDQTBCdEIsQUEvQkQsQUFPSSxnQkFQWSxBQUFBLGdCQUFnQixBQU8zQixNQUFNLEFBQUMsQ0FDSixnQkFBZ0IsQ0FBRSxXQUFXLENBQ2hDLEFBVEwsQUFXSSxnQkFYWSxBQUFBLGdCQUFnQixDQVc1QixNQUFNLEFBQUMsQ0FDSCxVQUFVLENBQUUsb0RBQXlFLENBRXJGLE1BQU0sQ0FBRSxHQUFHLENBQUMsS0FBSyxDRHRXbEIsSUFBSSxDQ3VXSCxhQUFhLENBQUUsSUFBSSxDQUNuQixLQUFLLENEcldMLElBQUksQ0NzV0osT0FBTyxDQUFFLEtBQUssQ0FDZCxTQUFTLENBQUUsT0FBTyxDQUNsQixNQUFNLENBQUUsbUJBQW1CLENBQzNCLE9BQU8sQ0FBRSxTQUFTLENBQ2xCLFdBQVcsQ0FBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFrQixDQUV6QyxVQUFVLENBQUUsb0JBQW9CLENBT25DLEFBOUJMLEFBeUJRLGdCQXpCUSxBQUFBLGdCQUFnQixDQVc1QixNQUFNLEFBY0QsTUFBTSxBQUFDLENBQ0osVUFBVSxDQUFFLGtEQUF1RSxDQUVuRixXQUFXLENBQUUsQ0FBQyxDQUFFLElBQUcsQ0FBQyxHQUFHLENBQUMscUJBQXdCLENBQ25ELEFBSVQsQUFBQSxnQkFBZ0IsQ0FBQyxJQUFJLEFBQUMsQ0FDbEIsU0FBUyxDQUFFLE1BQU0sQ0FDcEIsQUFHRCxBQUFBLElBQUksQUFBQSxPQUFPLEFBQUMsQ0FDUixLQUFLLENEclhTLE9BQU8sQ0NxWEcsVUFBVSxDQUNsQyxTQUFTLENBQUUsSUFBSSxDQUNmLE9BQU8sQ0FBRSxVQUFVLENBQ3RCLEFBR0QsQUFBQSxjQUFjLENBYWQsYUFBYSxBQWJFLENBQ1gsVUFBVSxDRHBZRCxPQUFPLENDcVloQixNQUFNLENBQUUsaUJBQWlCLENBQ3pCLGFBQWEsQ0FBRSxJQUFJLENBQ25CLEtBQUssQ0R0WUQsSUFBSSxDQ3VZUixTQUFTLENBQUUsS0FBSyxDQUNoQixXQUFXLENBQUUsR0FBRyxDQUNoQixNQUFNLENBQUUsZ0JBQWdCLENBQ3hCLE9BQU8sQ0FBRSxTQUFTLENBQ2xCLFVBQVUsQ0FBRSxNQUFNLENBQ2xCLGVBQWUsQ0FBRSxJQUFJLENBQ3hCLEFBRUQsQUFBQSxhQUFhLEFBQUMsQ0FFVixVQUFVLENBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFxQixDQUV2RCxBQUtELEFBQUEsa0JBQWtCLEFBQUMsQ0FDZixNQUFNLENBQUUsTUFBTSxDQUNkLFVBQVUsQ0FBRSxNQUFNLENBS3JCLEFBUEQsQUFJSSxrQkFKYyxDQUlkLEdBQUcsQUFBQyxDQUNBLEtBQUssQ0FBRSxJQUFJLENBQ2QsQUFHTCxBQUFBLFdBQVcsQUFBQyxDQUNSLFNBQVMsQ0FBRSxLQUFLLENBQ2hCLFdBQVcsQ0FBRSxHQUFHLENBU25CLEFoRHlHRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRWdEcEg3QixBQUFBLFdBQVcsQUFBQyxDQUtKLEtBQUssQ0QvYU4sT0FBTyxDQ2diTixTQUFTLENBQUUsS0FBSyxDQUNoQixXQUFXLENBQUUsR0FBRyxDQUNoQixNQUFNLENBQUUsVUFBVSxDQUd6QixDQUVELEFBQUEsV0FBVyxBQUFDLENBQ1IsT0FBTyxDQUFFLFlBQVksQ0FDckIsVUFBVSxDQUFFLE1BQU0sQ0FDbEIsV0FBVyxDQUFFLEdBQUcsQ0FDaEIsYUFBYSxDQUFFLElBQUksQ0FDbkIsVUFBVSxDQUFFLElBQUksQ0FZbkIsQWhEc0ZHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFZ0R2RzdCLEFBQUEsV0FBVyxBQUFDLENBUUosVUFBVSxDQUFFLE1BQU0sQ0FTekIsQ2hEc0ZHLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFZ0R2RzNCLEFBQUEsV0FBVyxBQUFDLENBV0osT0FBTyxDQUFFLFlBQVksQ0FDckIsVUFBVSxDQUFFLE1BQU0sQ0FDbEIsYUFBYSxDQUFFLElBQUksQ0FDbkIsVUFBVSxDQUFFLElBQUksQ0FDaEIsS0FBSyxDQUFFLElBQUksQ0FFbEIsQ0FHRCxBQUFBLFVBQVUsQUFBQyxDQUNQLEtBQUssQ0FBRSxJQUFJLENBQ1gsTUFBTSxDQUFFLGNBQWMsQ0FDdEIsS0FBSyxDQUFFLEdBQUcsQ0FDYiJ9 */
