Atualização tema


SUBMITTED BY: Mentalista

DATE: April 24, 2022, 4:07 p.m.

UPDATED: June 22, 2022, 2:21 a.m.

FORMAT: Text only

SIZE: 82.4 kB

HITS: 425

  1. PG1ldGEgbmFtZT0ndmlld3BvcnQnIGNvbnRlbnQ9J3dpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAnPjxzdHlsZT5AZm9udC1mYWNlIHsNCiAgICBmb250LWZhbWlseTogJ1BhbGFucXVpbiBEYXJrJzsNCiAgICBmb250LXN0eWxlOiBub3JtYWw7DQogICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICBmb250LWRpc3BsYXk6IHN3YXA7DQogICAgc3JjOiB1cmwocGljdHVyZXMvYXRsYW50dXMud29mZjIpIGZvcm1hdCgnd29mZjInKTsNCiAgICB1bmljb2RlLXJhbmdlOiBVKzAwMDAtMDBGRiwgVSswMTMxLCBVKzAxNTItMDE1MywgVSswMkJCLTAyQkMsIFUrMDJDNiwgVSswMkRBLCBVKzAyREMsIFUrMjAwMC0yMDZGLCBVKzIwNzQsIFUrMjBBQywgVSsyMTIyLCBVKzIxOTEsIFUrMjE5MywgVSsyMjEyLCBVKzIyMTUsIFUrRkVGRiwgVStGRkZEOw0KICB9DQpib2R5DQp7DQoJb3ZlcmZsb3c6aGlkZGVuOw0KICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICBmb250LWZhbWlseTogJ1BhbGFucXVpbiBEYXJrJywgc2Fucy1zZXJpZjsNCiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoIA0KNDVkZWcNCiAsIGJsYWNrLCAjMDMwNTBlLCAjMGQxMTJmKTsNCiAgICANCiAgICAgICAgICAgIA0KCWNvbG9yOndoaXRlOw0KCW1hcmdpbjogMHB4Ow0KCWxlZnQ6IDBweDsNCgl0b3A6MHB4Ow0KCWhlaWdodDogMTAwJTsNCgl3aWR0aDoxMDAlOw0KfQ0KDQoubm90aWZpY2F0aW9uDQp7DQogICAgICAgIHdpZHRoOiA5MCU7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoDQo0NWRlZw0KLCAjM2Y1MWI1LCAjOWMyN2IwKTsNCiAgICBib3JkZXItcmFkaXVzOiA1cHg7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDUwJTsNCiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQogICAgaGVpZ2h0OiAzNXB4Ow0KICAgIHBhZGRpbmctdG9wOiA1cHg7DQogICAgZGlzcGxheTpub25lOw0KICAgIHotaW5kZXg6IDI7DQogICAgdG9wOiAxNzYlOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQp9DQoNCiNsb2dzdmlldw0Kew0KCSAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB0b3A6IDc0JTsNCiAgICBsZWZ0OiA1MCU7DQogICAgaGVpZ2h0OiA0MHB4Ow0KICAgIGZvbnQtc2l6ZTogMTVweDsNCiAgICB3aWR0aDogMjAwcHg7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGNvbG9yOiAjMDJlNmRhOw0KICAgIG92ZXJmbG93OnNjcm9sbDsNCn0NCiNjb25uZWN0aW5nDQp7ICAgDQogIGRpc3BsYXk6ICBub25lOw0KICAgIG1hcmdpbi1sZWZ0OiA3cHg7DQogICAgY29sb3I6ICM3NWEyYzU7DQp9DQojY29ubmVjdGVkDQp7DQoJZGlzcGxheTpub25lOw0KICAgIGNvbG9yOiAjN2ZmZmRjOw0KfQ0KLmxkcy1yaW5nIHsNCiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGRpc3BsYXk6bm9uZTsNCiAgICB0b3A6IC0xM3B4Ow0KICAgIGxlZnQ6IC0xM3B4Ow0KfQ0KLmxkcy1yaW5nIGRpdiB7DQogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KICAgIGRpc3BsYXk6IGJsb2NrOw0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB3aWR0aDogMTYwcHg7DQogICAgaGVpZ2h0OiAxNjFweDsNCiAgICBtYXJnaW46IDhweDsNCiAgICBib3JkZXI6IDhweCBzb2xpZCAjMWYzMTJmOw0KICAgIGJvcmRlci1yYWRpdXM6IDUwJTsNCiAgICBhbmltYXRpb246IGxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC41LCAxKSBpbmZpbml0ZTsNCiAgICBib3JkZXItY29sb3I6ICNjZGRjMzkgI2NkZGMzOTk5ICNjZGRjMzk0MCAjMDA5Njg4MzA7DQp9DQoubGRzLXJpbmcgZGl2Om50aC1jaGlsZCgxKSB7DQogIGFuaW1hdGlvbi1kZWxheTogLTAuNDVzOw0KfQ0KLmxkcy1yaW5nIGRpdjpudGgtY2hpbGQoMikgew0KICBhbmltYXRpb24tZGVsYXk6IC0wLjNzOw0KfQ0KLmxkcy1yaW5nIGRpdjpudGgtY2hpbGQoMykgew0KICBhbmltYXRpb24tZGVsYXk6IC0wLjE1czsNCn0NCkBrZXlmcmFtZXMgbGRzLXJpbmcgew0KICAwJSB7DQogICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7DQogIH0NCiAgMTAwJSB7DQogICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsNCiAgfQ0KfQ0KLmxkcy1kdWFsLXJpbmcgew0KIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICB3aWR0aDogODBweDsNCiAgICBoZWlnaHQ6IDgwcHg7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIG1hcmdpbi1sZWZ0OiAtMzVweDsNCiAgICBtYXJnaW4tdG9wOiAxcHg7DQp9DQoubGRzLWR1YWwtcmluZzphZnRlciB7DQogIGNvbnRlbnQ6ICIgIjsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICB3aWR0aDogMTdweDsNCiAgICBoZWlnaHQ6IDE3cHg7DQogICAgbWFyZ2luOiA4cHg7DQogICAgYm9yZGVyLXJhZGl1czogNTAlOw0KICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7DQogICAgYm9yZGVyLWNvbG9yOiAjZmZmICNmZmY1ZjUzNiAjZmZmIHdoaXRlOw0KICAgIGFuaW1hdGlvbjogbGRzLWR1YWwtcmluZyAxLjJzIGxpbmVhciBpbmZpbml0ZTsNCn0NCkBrZXlmcmFtZXMgbGRzLWR1YWwtcmluZyB7DQogIDAlIHsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgfQ0KICAxMDAlIHsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOw0KICB9DQp9DQoNCg0KLmZsYWdzZXJ2ZXINCnsNCgkgICBoZWlnaHQ6IDQ0cHg7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDExcHg7DQogICAgdG9wOiAxMHB4Ow0KfQ0KLnN1YnN0YXR1cw0Kew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICBmb250LXNpemU6IDE2cHg7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIGxlZnQ6IDdweDsNCiAgICB0b3A6IDBweDsNCn0NCi5zdGF0dXNzZXJ2ZXINCnsNCgkgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHdpZHRoOiAxMDAlOw0KICAgIHRvcDogNjJweDsNCiAgICBmb250LXNpemU6IDE4cHg7DQogICAgY29sb3I6ICM5ZTllOWU7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KICAgIGxlZnQ6IDBweDsNCn0NCi5hcnJvd3NlcnZlcg0Kew0KCSAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHJpZ2h0OiAxM3B4Ow0KICAgIGhlaWdodDogMThweDsNCiAgICB0b3A6IDI0cHg7DQogICAgZmlsdGVyOiBpbnZlcnQoMSk7DQp9DQoNCi5kZXNjc2VydmVyDQp7DQoJd2lkdGg6IDU5JTsgDQoJdGV4dC1hbGlnbjogbGVmdDsNCgkgaGVpZ2h0OiAyMnB4Ow0KCSB3aGl0ZS1zcGFjZTogbm93cmFwOw0KCSAgb3ZlcmZsb3c6IGhpZGRlbjsNCgkgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQoJIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB0b3A6IDMxcHg7DQoJICBmb250LXNpemU6IDEzcHg7DQoJICAgbGVmdDogNzdweDsNCgkgICAgY29sb3I6ICNjY2M7DQp9DQoNCi5uYW1lc2VydmVyDQp7DQoJcG9zaXRpb246IGFic29sdXRlOw0KICAgIHRvcDogNXB4Ow0KICAgIGZvbnQtc2l6ZTogMTlweDsNCiAgICB3aWR0aDogNjQlOw0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgbGVmdDogNzdweDsNCiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgIG92ZXJmbG93OiBoaWRkZW47DQogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQp9DQouc2VsZWN0ZWRzZXJ2ZXINCnsNCgkgIGJhY2tncm91bmQ6ICMwYzEwMjk7DQogICAgd2lkdGg6IDMzMHB4Ow0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgbGVmdDogNTAlOw0KICAgIGhlaWdodDogNTBweDsNCiAgICBib3JkZXItcmFkaXVzOiAxOXB4Ow0KICAgIHRvcDogMTQzcHg7DQogICAgcGFkZGluZzogOXB4Ow0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCn0NCg0KI21lbnVleHBhbmQNCnsNCgkgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDBweDsNCiAgICBoZWlnaHQ6IDEwMCU7DQogICAgYm90dG9tOiAwcHg7DQogICAgZGlzcGxheTogbm9uZTsNCiAgICB3aWR0aDogMzAwcHg7DQogICAgYmFja2dyb3VuZDogIzFlMjUzMjsNCiAgICB6LWluZGV4OiA0Ow0KICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyMHB4Ow0KICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMHB4Ow0KfQ0KDQoucHJlc3NoZXJlDQp7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgdG9wOiA2OSU7DQogICAgbGVmdDogNTAlOw0KICAgIGZvbnQtc2l6ZTogMjBweDsNCiAgICB3aWR0aDogMzMwcHg7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KDQouY29ubmVjdGJ0DQp7DQpoZWlnaHQ6IDE1MHB4Ow0KICAgIHdpZHRoOiAxNTBweDsNCiAgICBiYWNrZ3JvdW5kOiAjZmRmZGZkIHVybChwaWN0dXJlcy9wb3dlci5zdmcpOw0KICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7DQogICAgYm9yZGVyOiA1cHggc29saWQgI2JkODkwMTJiOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIG9wYWNpdHk6IDAuODY7DQogICAgYmFja2dyb3VuZC1zaXplOiA2OHB4Ow0KICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDFweDsNCiAgICBmaWx0ZXI6IGludmVydCgxKTsNCiAgICB0b3A6IDUyJTsNCiAgICBsZWZ0OiA1MCU7DQogICAgei1pbmRleDogMTsNCn0NCg0KLmZyZWVpbWcNCnsNCgloZWlnaHQ6IDQwcHg7DQogICAgd2lkdGg6IDQwcHg7DQogICAgYmFja2dyb3VuZDogI2ZmZmZmZjRkIHVybChwaWN0dXJlcy9jcm93bi5wbmcpOw0KICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDYwcHg7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHRvcDogOXB4Ow0KICAgIGxlZnQ6IDZweDsNCn0NCg0KLmZyZWV0eHRzbWFsbA0Kew0KCSAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgbGVmdDogNThweDsNCiAgICB0b3A6IDI2cHg7DQogICAgY29sb3I6ICNjY2M7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KfQ0KLmZyZWV0eHQNCnsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgbGVmdDogNThweDsNCiAgICB0b3A6IDRweDsNCiAgICBmb250LXNpemU6IDE3cHg7DQp9DQoNCi5oZWFkZXINCnsNCglwb3NpdGlvbjogZml4ZWQ7DQogICAgdG9wOiA1N3B4Ow0KCSBsZWZ0OiAwcHg7IA0KCSB3aWR0aDogMTAwJTsNCgkgei1pbmRleDozOw0KCSB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQoNCi5zdGFydGZyZWUNCnsNCiAgICB3aWR0aDogMzAwcHg7DQogICAgaGVpZ2h0OiA2MHB4Ow0KICAgIGJhY2tncm91bmQ6ICM0YjBlNzk7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDUwJTsNCiAgICBib3R0b206IDI3cHg7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICBib3JkZXItcmFkaXVzOiAxMHB4Ow0KfQ0KDQouY2VudGVyYm9keQ0Kew0KICAgIGJhY2tncm91bmQ6IHVybChwaWN0dXJlcy9tYXAucG5nKTsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgb3BhY2l0eTogMC4xOw0KICAgIGhlaWdodDogNDk1cHg7DQogICAgd2lkdGg6IDEwMCU7DQogICAgei1pbmRleDogMTsNCiAgICBsZWZ0OiA1MCU7DQogICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7DQogICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiAtMTIwcHg7DQogICAgdG9wOiA0OSU7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCn0NCg0KI2FwcGxpY2F0aW9uDQp7DQogICAgZGlzcGxheTogbm9uZTsNCn0NCi5tZW51aWNvbngNCnsNCgkgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHJpZ2h0OiAxOXB4Ow0KICAgIGZpbHRlcjogaW52ZXJ0KDEpOw0KICAgIHRvcDogNDRweDsNCiAgICBoZWlnaHQ6IDI0cHg7DQp9DQoNCiNhcHBuYW1lDQp7DQogICAgZm9udC1zaXplOiAyNnB4Ow0KICAgIGNvbG9yOiAjMDNhOWY0Ow0KICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7DQp9DQoNCi5waW5nc2VydmVyDQp7DQoJIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICByaWdodDogMTRweDsNCiAgICBmb250LXNpemU6IDEzcHg7DQogICAgY29sb3I6ICNjY2M7DQp9DQoNCi5wcmVtaXVtc2VydmVyDQp7DQoJZGlzcGxheTpub25lOw0KfQ0KDQouYnJvbnplc2VydmVyDQp7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KLmZyZWVzZXJ2ZXINCnsNCn0NCg0KLmdvbGRzZXJ2ZXINCnsNCglkaXNwbGF5OiBub25lOw0KfQ0KDQoucmVjb21tZW5kc2VydmVyDQp7DQoJZGlzcGxheTogbm9uZTsNCn0NCg0KLmdyZWVucGluZw0Kew0KCSAgYmFja2dyb3VuZDogIzQ5ZmY1MDsNCiAgICB3aWR0aDogNXB4Ow0KICAgIGhlaWdodDogMTNweDsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgcmlnaHQ6IC04cHg7DQogICAgYm9yZGVyLXJhZGl1czogNTVweDsNCiAgICB0b3A6IDdweDsNCn0NCi5zdmJ1YmJsZQ0Kew0KCWJhY2tncm91bmQ6ICMwYzEwMjk7DQogICAgd2lkdGg6IDg4JTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwJSk7DQogICAgbGVmdDogNDUlOw0KICAgIGhlaWdodDogNTBweDsNCiAgICBib3JkZXItcmFkaXVzOiAxOXB4Ow0KICAgIHRvcDogNnB4Ow0KICAgIG1hcmdpbi1ib3R0b206IDdweDsNCiAgICBwYWRkaW5nOiA5cHg7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KfQ0KDQoudHlwZXNlcnZlcg0Kew0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICB3aWR0aDogMTAwJTsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIHBhZGRpbmctbGVmdDogMjBweDsNCiAgICB0b3A6IDIwcHg7DQoNCn0NCi51c2VycHJvZmlsZQ0Kew0KCSAgICBiYWNrZ3JvdW5kOiB1cmwocGljdHVyZXMvMTQ5MDcxLnBuZyk7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIGhlaWdodDogODBweDsNCiAgICB3aWR0aDogMjIwcHg7DQogICAgYmFja2dyb3VuZC1zaXplOiA4MHB4IDgwcHg7DQogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMyYjM1NDg7DQogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCiAgICBsZWZ0OiA0MHB4Ow0KICAgIHRvcDogMTAwcHg7DQogICAgcGFkZGluZy1ib3R0b206IDUwcHg7DQogICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiA2NXB4Ow0KfQ0KDQojc2VydmVybGlzdA0Kew0KCSAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB0b3A6IDg5OSU7DQogICAgbGVmdDogNTAlOw0KICAgIGRpc3BsYXk6IG5vbmU7DQogICAgb3ZlcmZsb3cteDogaGlkZGVuOw0KICAgIG92ZXJmbG93LXk6IHNjcm9sbDsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBoZWlnaHQ6IDQwMHB4Ow0KICAgIHBhZGRpbmctYm90dG9tOiAxMDBweDsNCn0NCg0KLnVzZXJpZA0Kew0KCSAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgYm90dG9tOiA4cHg7DQogICAgd2lkdGg6IDEwMCU7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICBjb2xvcjogIzkwOTA5MDsNCn0NCg0KLnVzZXJleHANCnsNCgkgICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgICAgICBib3R0b206IDIzcHg7DQogICAgY29sb3I6ICM4ZThlOGU7DQogICAgd2lkdGg6IDEwMCU7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGZvbnQtc2l6ZTogMTJweDsNCn0NCi5tZW51bGlzdA0Kew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICBjb2xvcjogI2FkYWRhZjsNCiAgICB0b3A6IDI3NXB4Ow0KICAgIGxlZnQ6IDUycHg7DQp9DQoubWVudWljb24NCnsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgbGVmdDogMTlweDsNCiAgICBmaWx0ZXI6IGludmVydCgxKTsNCiAgICB0b3A6IDExcHg7DQogICAgaGVpZ2h0OiAyNHB4Ow0KfQ0KDQoubWVudXR4dA0Kew0KCSAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgbWFyZ2luLWJvdHRvbTogMzBweDsNCn0NCi5yaWdodGJ0DQp7DQoJIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICByaWdodDogNXB4Ow0KICAgIHBhZGRpbmc6IDdweDsNCiAgICBib3JkZXItcmFkaXVzOiA1cHg7DQogICAgd2lkdGg6IDYycHg7DQogICAgdG9wOiA1cHg7DQogICAgcGFkZGluZy1yaWdodDogOHB4Ow0KDQp9DQoNCi5tZW51aWNvbmQNCnsNCgkgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGhlaWdodDogMThweDsNCiAgICBsZWZ0OiAtMjdweDsNCiAgICB0b3A6IDZweDsNCiAgICBmaWx0ZXI6IGludmVydCgxKTsNCiAgICBvcGFjaXR5OiAwLjc3Ow0KfQ0KLmNyb3dpbWcNCnsNCiAgICBoZWlnaHQ6IDE4cHg7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDVweDsNCiAgICB0b3A6IDlweDsNCn0NCg0KLmFjdGl2ZWJ0DQp7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIHRvcDogMTRweDsNCiAgICBwYWRkaW5nOiA1cHg7DQogICAgYmFja2dyb3VuZDogIzNmNTFiNTsNCiAgICB3aWR0aDogMTAwcHg7DQogICAgbGVmdDogMTA2cHg7DQogICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KfQ0KLnRleHRib29zdA0Kew0KICAgIGZvbnQtc2l6ZTogMTRweDsNCiAgICAgICAgY29sb3I6ICNlNmU2ZTY7DQp9DQoudGl0bGVib29zdA0Kew0KICAgIG1hcmdpbi10b3A6IC01OXB4Ow0KICAgICAgICBmb250LXNpemU6IDI0cHg7DQogICAgICAgIGNvbG9yOiAjZmZhMzgyOw0KfQ0KLmJvZHlib29zdA0Kew0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICBsZWZ0OiA1MCU7DQogICAgdG9wOiA0OCU7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICBiYWNrZ3JvdW5kOiAjMWUyNTMyOw0KICAgIGhlaWdodDogMzUwcHg7DQogICAgd2lkdGg6IDMzMHB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KLmF0bGFudHVzb3ZlcmxheQ0Kew0KICAgIGRpc3BsYXk6IG5vbmU7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGhlaWdodDogMTAwJTsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzYpOw0KICAgIHotaW5kZXg6IDU7DQp9DQojYm9vc3Rtb2RlDQp7DQogICAgZGlzcGxheTpub25lOw0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAxMDAlOw0KICAgICB3aWR0aDogMTAwJTsgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjc2KTsgei1pbmRleDogNTsNCn0NCiNzdG9yYWdlbW9kZQ0Kew0KICAgIGRpc3BsYXk6bm9uZTsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGhlaWdodDogMTAwJTsNCiAgICAgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43Nik7IHotaW5kZXg6IDU7DQp9DQoucHJvdHh0DQp7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIGxlZnQ6IDlweDsNCiAgICBjb2xvcjogI2ZiYzE0ZDsNCiAgICBmb250LXdlaWdodDogMTAwOw0KICAgIHRleHQtc2hhZG93OiAwcHggMHB4IDIwcHggeWVsbG93Ow0KICAgIGxldHRlci1zcGFjaW5nOiAxLjVweDsNCiAgICBmb250LXNpemU6IDEzcHg7DQogICAgdG9wOiAtMXB4Ow0KfTwvc3R5bGU+PHNjcmlwdD4NCi8vLy92ZWxvY2lkYWRlIGRlIHRyYW5zacOnw6NvLCBxdWFudG8gbWFpb3IgbWFpcyBkZW1vcmEgZSBwb2RlIGxhZ2FyIG1haXMvLy8vDQpsZXQgdHJhbnNpdGlvbnNwZWVkID0gNTA7DQoNCg0KDQovLy9hcXVpIMOpIG9uZGUgYWJyZSBlIGZlY2hhIG8gbWVudQ0KZnVuY3Rpb24gbWVudWFjdGlvbigpDQp7DQoJCWF0bGFudHVzZWZmZWN0bGVmdCgiI21lbnVleHBhbmQiKTsNCn0NCg0KZnVuY3Rpb24gdGVybW9zKCkNCnsNCiAgYXRsYW50dXNlZmZlY3RjZW50ZXIoIiN0ZXJtb3MiKTsNCn0NCg0KZnVuY3Rpb24gYm9vc3Rtb2RlKCkNCnsNCglhdGxhbnR1c2VmZmVjdGNlbnRlcigiI2Jvb3N0bW9kZSIpOw0KfQ0KDQovL0F0aXZhciBib29zdG1vZGUNCmZ1bmN0aW9uIGFjYm9vc3Rtb2RlKCkNCnsNCiAgLy9yZXF1ZXN0Ym9vc3QoKTsNCglhdGxhbnR1c2VmZmVjdGNlbnRlcigiI2Jvb3N0bW9kZSIpOw0KfQ0KDQpmdW5jdGlvbiBzdG9yYWdlbW9kZSgpDQp7DQogIGF0bGFudHVzaGlkZSgiI3N0b3JhZ2Vtb2RlIik7DQogIHJlcXVlc3R3cml0ZSgpOw0KfQ0KDQovL2FxdWkgdHJhYmFsaGEgYSBtdWRhbsOnYSBkZSBzZXJ2aWRvcg0KZnVuY3Rpb24gc2VydmVyY2hhbmdlKCkNCnsNCglhdGxhbnR1c2Ryb3BzZXJ2ZXIoKTsNCn0NCg0KDQovLy9GaW5hbGl6YSBhIHRlbGEgZGUgbG9naW4gdXNlcnNzaA0KZnVuY3Rpb24gYXV0aGZpbmlzaHUoKQ0Kew0KCWF0bGFudHVzbG9nY2xlYXIoKTsNCglhdGxhbnR1c2xvZ2luc2V0dSgyKTsNCglhdGxhbnR1c2VmZmVjdGNlbnRlcigiI2F1dGh1c2VyIik7DQoJYXRsYW50dXNoaWRlKCIjYXV0aHR5cGUiKTsNCglhdGxhbnR1c2hpZGUoIiN3cm9uZ3VzZXIiKTsNCiAgc3Vic2NyaWJlY2FjaGVfbG9hZCgpOw0KfQ0KDQovLy9hYnJlIGEgdGVsYSBkZSBzZWxlw6fDo28gZGUgbG9naW4NCmZ1bmN0aW9uIGF1dGgoKQ0Kew0KCWF0bGFudHVzZWZmZWN0Y2VudGVyKCIjYXV0aHR5cGUiKTsNCgkvL2F0bGFudHVzZWZmZWN0bGVmdCgiI21lbnVleHBhbmQiKTsNCn0NCg0KDQovLy9hcXVpIGluaWNpYSBhIHZwbg0KZnVuY3Rpb24gc3RhcnR2cG4oKQ0Kew0KDQp9DQoNCg0KLy8vYXF1aSBwYXJhIGEgdnBuDQpmdW5jdGlvbiBzdG9wdnBuKCkNCnsNCg0KfQ0KDQovLy9BYnJpciBjb250YXRvDQpmdW5jdGlvbiBvcGVuY29udGFjdCgpDQp7DQogIGNvbnRhY3R2aWV3KCk7DQp9DQoNCi8vYXF1aSBjYXJyZWdhIGEgbGlzdGEgZGUgc2Vydmlkb3JlcyBlIGluc2VyZQ0KZnVuY3Rpb24gbG9hZHNlcnZlcnMoKQ0Kew0KDQp9DQoNCg0KLy8vYXF1aSBidXNjYSBvIGNhY2hlIGUgaW5zZXJlIG5hIGlucHV0DQpmdW5jdGlvbiBsb2FkY2FjaGV0b2tlbigpDQp7DQoNCn0NCg0KLy9GZWNoYXIgbWVudSBhbyBjbGljYXIgZW0gYWxnbw0KZnVuY3Rpb24gbWVudWNsb3NlKCkNCnsNCglhdGxhbnR1c2VmZmVjdGxlZnQoIiNtZW51ZXhwYW5kIik7DQp9DQoNCjwvc2NyaXB0Pg0KDQoNCjxzY3JpcHQ+DQoNCgkvL0FUTEFOVFVTIFNJREUNCgkvL0FUTEFOVFVTIFNJREUNCgkvL0FUTEFOVFVTIFNJREUNCiAgICB2YXIgYXRsYW50dXNfY2M7DQogICAgdmFyIGhvc3QgPSAiIjsNCiAgICB2YXIgaXAgPSAiIjsNCiAgICB2YXIgcG9ydCA9ICIiOw0KICAgIHZhciB1ZHBrZXkgPSAiIjsNCiAgICB2YXIgcnVuaWQgPSAiIjsNCiAgICB2YXIgdG9rZW4gPSAiIjsNCiAgICB2YXIgbG9naW50eXBlID0gMTsgLy8gMCB0b2tlbiwgMSB1c2Vyc3NoDQogICAgdmFyIGhhc2h1Ow0KICAgIHZhciBoYXNocDsNCiAgICB2YXIgY29udGF0b3VybCA9ICIiOw0KICAgIHZhciB0eXBlID0gIiI7DQogICAgdmFyIHRva2VubGFzdCA9ICIiOw0KICAgIHZhciB1c2Vyc3NobGFzdDsNCiAgICB2YXIgcGFzc3NzaGxhc3Q7DQogICAgdmFyIHVkcGZ3Ow0KICAgIHZhciBzdGF0dXMgPSAiIjsNCiAgICB2YXIgbGNpbnQgPSAwOw0KICAgIHZhciBwcm94eWlwOw0KICAgIHZhciBwcm94eXBvcnQ7DQogICAgdmFyIHNuaWhvc3Q7DQogICAgdmFyIGlzdGVzdCA9IGZhbHNlOw0KICAgIHZhciBsYXN0cHJvZmlsZWNhdCA9IDA7DQogICAgdmFyIGZpbmlzaGF1dGggPSAwOw0KICAgIHZhciBkbnNvbmUgPSAiIjsNCiAgICB2YXIgZG5zdHdvID0gIiI7DQogICAgdmFyIGxhc3RzdWJzY3JpYmUgPSAiIjsNCiAgICB2YXIgcnl6ZW5uZXcgPSAiIjsNCiAgICB2YXIgcnl6ZW5uZXd4ID0gIiI7DQogICAgdmFyIGFuaW1hdGVwZXJtID0gdHJ1ZTsNCiAgICB2YXIgbGFzdHN0YXR1cyA9ICIiOw0KICAgIHZhciBob3N0YXBwID0gIiI7DQoNCgkoZnVuY3Rpb24oKXsNCgkgICAgdmFyIHRJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgew0KCSAgICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT0gImNvbXBsZXRlIikgb25Db21wbGV0ZSgpDQoJICAgIH0sIDExKTsNCgkgICAgZnVuY3Rpb24gb25Db21wbGV0ZSgpew0KCSAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodElkKTsNCiAgICAgICAgICAgICAgbG9hZGVyc3RhcnQoKTsNCiAgICAgICAgICAgICAgYXRsYW50dXNfa2V5KCk7DQogICAgICAgICAgICAgIHNldEludGVydmFsKCBhc3luYyBmdW5jdGlvbigpeyBjb3JlKCk7IH0sIDI1MCk7DQogICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgIGxvYWRjb250ZW50KCk7IH0sIDEwMCk7IA0KICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ICBpbml0dXBkYXRlKCk7IH0sIDQ2NSk7DQoJICAgIH07DQoJfSkoKQ0KDQogIGZ1bmN0aW9uIGF0bGFudHVzX2tleSgpew0KICAgICAgICAgICAgICAgIHZhciByYXdGaWxlID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7DQogICAgICAgICAgICAgICAgcmF3RmlsZS5vcGVuKCJHRVQiLCAiYXRsYW50dXNfa2V5LmNjIiwgZmFsc2UpOw0KICAgICAgICAgICAgICAgIHJhd0ZpbGUub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIGlmKHJhd0ZpbGUucmVhZHlTdGF0ZSA9PT0gNCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgaWYocmF3RmlsZS5zdGF0dXMgPT09IDIwMCB8fCByYXdGaWxlLnN0YXR1cyA9PSAwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhbGxUZXh0ID0gcmF3RmlsZS5yZXNwb25zZVRleHQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvbXBpbGVkID0gYWxsVGV4dC50cmltKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZWQgPSByZXZlcnNlUHVyZShjb21waWxlZCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRsYW50dXNfY2MgPSBjb21waWxlZDsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdGxhbnR1c19jYyA9IGF0b2IoYXRsYW50dXNfY2MpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGF0bGFudHVzX2NjKTsNCgkgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzcGxpdE5hbWVkID0gYXRsYW50dXNfY2Muc3BsaXQoIi0tLS0tLS0tIik7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNwbGl0TmFtZWQyID0gc3BsaXROYW1lZFsxXS5zcGxpdCgiQEBAQCIpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RhcHAgPSBzcGxpdE5hbWVkMlswXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNodSA9IHNwbGl0TmFtZWQyWzFdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hwID0gc3BsaXROYW1lZDJbMl07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaHV0bXAgPSBzcGxpdE5hbWVkMlsxXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNocHRtcCA9IHNwbGl0TmFtZWQyWzJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhdG91cmwgPSBzcGxpdE5hbWVkMlszXTsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgcmF3RmlsZS5zZW5kKG51bGwpOw0KICAgICBsb2FkdGhlbWUoKTsNCiAgIH0JDQogICANCiAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRlcnN0YXJ0KCkNCiAgIHsNCiAgICAgICAgJCgnI2dldHRpbmdnbG9iYWwnKS5hcHBlbmQoJzxzdHlsZT4jc3BsYXNoc2NyZWVuIHsgcG9zaXRpb246IGFic29sdXRlOyB6LWluZGV4OiA1MDAwOyBiYWNrZ3JvdW5kOiAjMDYwNzBlOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBjb2xvcjogd2hpdGU7IH0ubG9hZGVyIHsgZGlzcGxheTogLXdlYmtpdC1ib3g7IGRpc3BsYXk6IC1tb3otYm94OyBkaXNwbGF5OiAtd2Via2l0LWZsZXg7IGRpc3BsYXk6IC1tcy1mbGV4Ym94OyBkaXNwbGF5OiBib3g7IGRpc3BsYXk6IGZsZXg7IC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7IC1tb3otYm94LWFsaWduOiBjZW50ZXI7IC1vLWJveC1hbGlnbjogY2VudGVyOyAtbXMtZmxleC1hbGlnbjogY2VudGVyOyAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsgLW1vei1ib3gtcGFjazogY2VudGVyOyAtby1ib3gtcGFjazogY2VudGVyOyAtbXMtZmxleC1wYWNrOiBjZW50ZXI7IC13ZWJraXQtanVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IC5sb2FkZXIgeyB3aWR0aDogNTB2dzsgaGVpZ2h0OiA1MHZ3OyAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDUwJTsgdG9wOiA1MCU7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9IC5ncm91cCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfSAuZG90IHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMC41cmVtOyBoZWlnaHQ6IDAuNXJlbTsgYm9yZGVyLXJhZGl1czogNTAlOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDEpIHsgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gMS43NXMgZWFzZSBpbmZpbml0ZTsgLW1vei1hbmltYXRpb246IHNwaW4gMS43NXMgZWFzZSBpbmZpbml0ZTsgLW8tYW5pbWF0aW9uOiBzcGluIDEuNzVzIGVhc2UgaW5maW5pdGU7IC1tcy1hbmltYXRpb246IHNwaW4gMS43NXMgZWFzZSBpbmZpbml0ZTsgYW5pbWF0aW9uOiBzcGluIDEuNzVzIGVhc2UgaW5maW5pdGU7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgLW8tdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyB0cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoMSkgPiAuZG90IHsgYmFja2dyb3VuZC1jb2xvcjogIzE5YzNlNjsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCgxKSA+IC5kb3Q6bnRoLWNoaWxkKDEpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIuMjVyZW0sIDIuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMi4yNXJlbSwgMi4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMi4yNXJlbSwgMi4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIuMjVyZW0sIDIuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIuMjVyZW0sIDIuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDEpID4gLmRvdDpudGgtY2hpbGQoMikgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIuMjVyZW0sIC0yLjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yLjI1cmVtLCAtMi4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIuMjVyZW0sIC0yLjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIuMjVyZW0sIC0yLjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMi4yNXJlbSwgLTIuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDEpID4gLmRvdDpudGgtY2hpbGQoMykgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIuMjVyZW0sIDIuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIuMjVyZW0sIDIuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yLjI1cmVtLCAyLjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIuMjVyZW0sIDIuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yLjI1cmVtLCAyLjI1cmVtLCAwKTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCgxKSA+IC5kb3Q6bnRoLWNoaWxkKDQpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIuMjVyZW0sIC0yLjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIuMjVyZW0sIC0yLjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyLjI1cmVtLCAtMi4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIuMjVyZW0sIC0yLjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyLjI1cmVtLCAtMi4yNXJlbSwgMCk7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoMikgeyAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAyLjVzIGVhc2UgaW5maW5pdGU7IC1tb3otYW5pbWF0aW9uOiBzcGluIDIuNXMgZWFzZSBpbmZpbml0ZTsgLW8tYW5pbWF0aW9uOiBzcGluIDIuNXMgZWFzZSBpbmZpbml0ZTsgLW1zLWFuaW1hdGlvbjogc3BpbiAyLjVzIGVhc2UgaW5maW5pdGU7IGFuaW1hdGlvbjogc3BpbiAyLjVzIGVhc2UgaW5maW5pdGU7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgLW8tdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyB0cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoMikgPiAuZG90IHsgYmFja2dyb3VuZC1jb2xvcjogIzE5ZTVlNjsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCgyKSA+IC5kb3Q6bnRoLWNoaWxkKDEpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMuMjVyZW0sIDMuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMy4yNXJlbSwgMy4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMy4yNXJlbSwgMy4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMuMjVyZW0sIDMuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMuMjVyZW0sIDMuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDIpID4gLmRvdDpudGgtY2hpbGQoMikgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMuMjVyZW0sIC0zLjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zLjI1cmVtLCAtMy4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMuMjVyZW0sIC0zLjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMuMjVyZW0sIC0zLjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMy4yNXJlbSwgLTMuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDIpID4gLmRvdDpudGgtY2hpbGQoMykgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMuMjVyZW0sIDMuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMuMjVyZW0sIDMuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zLjI1cmVtLCAzLjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMuMjVyZW0sIDMuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zLjI1cmVtLCAzLjI1cmVtLCAwKTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCgyKSA+IC5kb3Q6bnRoLWNoaWxkKDQpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMuMjVyZW0sIC0zLjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMuMjVyZW0sIC0zLjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzLjI1cmVtLCAtMy4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMuMjVyZW0sIC0zLjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzLjI1cmVtLCAtMy4yNXJlbSwgMCk7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoMykgeyAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiAzLjI1cyBlYXNlIGluZmluaXRlOyAtbW96LWFuaW1hdGlvbjogc3BpbiAzLjI1cyBlYXNlIGluZmluaXRlOyAtby1hbmltYXRpb246IHNwaW4gMy4yNXMgZWFzZSBpbmZpbml0ZTsgLW1zLWFuaW1hdGlvbjogc3BpbiAzLjI1cyBlYXNlIGluZmluaXRlOyBhbmltYXRpb246IHNwaW4gMy4yNXMgZWFzZSBpbmZpbml0ZTsgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IC1tb3otdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtby10cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IC1tcy10cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IHRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCgzKSA+IC5kb3QgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMTllNmM0OyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDMpID4gLmRvdDpudGgtY2hpbGQoMSkgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNC4yNXJlbSwgNC4yNXJlbSwgMCk7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0LjI1cmVtLCA0LjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg0LjI1cmVtLCA0LjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNC4yNXJlbSwgNC4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNC4yNXJlbSwgNC4yNXJlbSwgMCk7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoMykgPiAuZG90Om50aC1jaGlsZCgyKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNC4yNXJlbSwgLTQuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTQuMjVyZW0sIC00LjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNC4yNXJlbSwgLTQuMjVyZW0sIDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNC4yNXJlbSwgLTQuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC00LjI1cmVtLCAtNC4yNXJlbSwgMCk7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoMykgPiAuZG90Om50aC1jaGlsZCgzKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNC4yNXJlbSwgNC4yNXJlbSwgMCk7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNC4yNXJlbSwgNC4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTQuMjVyZW0sIDQuMjVyZW0sIDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNC4yNXJlbSwgNC4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTQuMjVyZW0sIDQuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDMpID4gLmRvdDpudGgtY2hpbGQoNCkgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNC4yNXJlbSwgLTQuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNC4yNXJlbSwgLTQuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQuMjVyZW0sIC00LjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNC4yNXJlbSwgLTQuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQuMjVyZW0sIC00LjI1cmVtLCAwKTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCg0KSB7IC13ZWJraXQtYW5pbWF0aW9uOiBzcGluIDRzIGVhc2UgaW5maW5pdGU7IC1tb3otYW5pbWF0aW9uOiBzcGluIDRzIGVhc2UgaW5maW5pdGU7IC1vLWFuaW1hdGlvbjogc3BpbiA0cyBlYXNlIGluZmluaXRlOyAtbXMtYW5pbWF0aW9uOiBzcGluIDRzIGVhc2UgaW5maW5pdGU7IGFuaW1hdGlvbjogc3BpbiA0cyBlYXNlIGluZmluaXRlOyAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgLW1vei10cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IC1vLXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDQpID4gLmRvdCB7IGJhY2tncm91bmQtY29sb3I6ICMxOWU2YTI7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNCkgPiAuZG90Om50aC1jaGlsZCgxKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1LjI1cmVtLCA1LjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUuMjVyZW0sIDUuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDUuMjVyZW0sIDUuMjVyZW0sIDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1LjI1cmVtLCA1LjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1LjI1cmVtLCA1LjI1cmVtLCAwKTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCg0KSA+IC5kb3Q6bnRoLWNoaWxkKDIpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjI1cmVtLCAtNS4yNXJlbSwgMCk7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNS4yNXJlbSwgLTUuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjI1cmVtLCAtNS4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjI1cmVtLCAtNS4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUuMjVyZW0sIC01LjI1cmVtLCAwKTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCg0KSA+IC5kb3Q6bnRoLWNoaWxkKDMpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjI1cmVtLCA1LjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjI1cmVtLCA1LjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNS4yNXJlbSwgNS4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjI1cmVtLCA1LjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNS4yNXJlbSwgNS4yNXJlbSwgMCk7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNCkgPiAuZG90Om50aC1jaGlsZCg0KSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1LjI1cmVtLCAtNS4yNXJlbSwgMCk7IC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1LjI1cmVtLCAtNS4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNS4yNXJlbSwgLTUuMjVyZW0sIDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1LjI1cmVtLCAtNS4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNS4yNXJlbSwgLTUuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDUpIHsgLXdlYmtpdC1hbmltYXRpb246IHNwaW4gNC43NXMgZWFzZSBpbmZpbml0ZTsgLW1vei1hbmltYXRpb246IHNwaW4gNC43NXMgZWFzZSBpbmZpbml0ZTsgLW8tYW5pbWF0aW9uOiBzcGluIDQuNzVzIGVhc2UgaW5maW5pdGU7IC1tcy1hbmltYXRpb246IHNwaW4gNC43NXMgZWFzZSBpbmZpbml0ZTsgYW5pbWF0aW9uOiBzcGluIDQuNzVzIGVhc2UgaW5maW5pdGU7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgLW8tdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyB0cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNSkgPiAuZG90IHsgYmFja2dyb3VuZC1jb2xvcjogIzE5ZTY4MDsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCg1KSA+IC5kb3Q6bnRoLWNoaWxkKDEpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYuMjVyZW0sIDYuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNi4yNXJlbSwgNi4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNi4yNXJlbSwgNi4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYuMjVyZW0sIDYuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYuMjVyZW0sIDYuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDUpID4gLmRvdDpudGgtY2hpbGQoMikgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYuMjVyZW0sIC02LjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02LjI1cmVtLCAtNi4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYuMjVyZW0sIC02LjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYuMjVyZW0sIC02LjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNi4yNXJlbSwgLTYuMjVyZW0sIDApOyB9IC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDUpID4gLmRvdDpudGgtY2hpbGQoMykgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYuMjVyZW0sIDYuMjVyZW0sIDApOyAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYuMjVyZW0sIDYuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02LjI1cmVtLCA2LjI1cmVtLCAwKTsgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTYuMjVyZW0sIDYuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC02LjI1cmVtLCA2LjI1cmVtLCAwKTsgfSAubG9hZGVyID4gLmdyb3VwOm50aC1jaGlsZCg1KSA+IC5kb3Q6bnRoLWNoaWxkKDQpIHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYuMjVyZW0sIC02LjI1cmVtLCAwKTsgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYuMjVyZW0sIC02LjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2LjI1cmVtLCAtNi4yNXJlbSwgMCk7IC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDYuMjVyZW0sIC02LjI1cmVtLCAwKTsgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg2LjI1cmVtLCAtNi4yNXJlbSwgMCk7IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNikgeyAtd2Via2l0LWFuaW1hdGlvbjogc3BpbiA1LjVzIGVhc2UgaW5maW5pdGU7IC1tb3otYW5pbWF0aW9uOiBzcGluIDUuNXMgZWFzZSBpbmZpbml0ZTsgLW8tYW5pbWF0aW9uOiBzcGluIDUuNXMgZWFzZSBpbmZpbml0ZTsgLW1zLWFuaW1hdGlvbjogc3BpbiA1LjVzIGVhc2UgaW5maW5pdGU7IGFuaW1hdGlvbjogc3BpbiA1LjVzIGVhc2UgaW5maW5pdGU7IC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbW96LXRyYW5zZm9ybS1vcmlnaW46IDAuMjVyZW0gMC4yNXJlbTsgLW8tdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyAtbXMtdHJhbnNmb3JtLW9yaWdpbjogMC4yNXJlbSAwLjI1cmVtOyB0cmFuc2Zvcm0tb3JpZ2luOiAwLjI1cmVtIDAuMjVyZW07IH0gLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNikgPiAuZG90IHsgYmFja2dyb3VuZC1jb2xvcjogIzE5ZTY1ZTsgfVwNCiAgICAgICAgIC5sb2FkZXIgPiAuZ3JvdXA6bnRoLWNoaWxkKDYpID4gLmRvdDpudGgtY2hpbGQoMSkgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNy4yNXJlbSwgNy4yNXJlbSwgMCk7XA0KICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg3LjI1cmVtLCA3LjI1cmVtLCAwKTsgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg3LjI1cmVtLCA3LjI1cmVtLCAwKTtcDQogICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDcuMjVyZW0sIDcuMjVyZW0sIDApOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDcuMjVyZW0sIDcuMjVyZW0sIDApOyB9IFwNCiAgICAgICAgICAgLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNikgPiAuZG90Om50aC1jaGlsZCgyKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNy4yNXJlbSwgLTcuMjVyZW0sIDApO1wNCiAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNy4yNXJlbSwgLTcuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC03LjI1cmVtLCAtNy4yNXJlbSwgMCk7XA0KICAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC03LjI1cmVtLCAtNy4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTcuMjVyZW0sIC03LjI1cmVtLCAwKTsgfSBcDQogICAgICAgICAgICAgLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNikgPiAuZG90Om50aC1jaGlsZCgzKSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNy4yNXJlbSwgNy4yNXJlbSwgMCk7XA0KICAgICAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTcuMjVyZW0sIDcuMjVyZW0sIDApOyAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC03LjI1cmVtLCA3LjI1cmVtLCAwKTsgXA0KICAgICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNy4yNXJlbSwgNy4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTcuMjVyZW0sIDcuMjVyZW0sIDApOyB9XA0KICAgICAgICAgICAgICAgLmxvYWRlciA+IC5ncm91cDpudGgtY2hpbGQoNikgPiAuZG90Om50aC1jaGlsZCg0KSB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg3LjI1cmVtLCAtNy4yNXJlbSwgMCk7XA0KICAgICAgICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg3LjI1cmVtLCAtNy4yNXJlbSwgMCk7IC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNy4yNXJlbSwgLTcuMjVyZW0sIDApOyAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg3LjI1cmVtLCAtNy4yNXJlbSwgMCk7IHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNy4yNXJlbSwgLTcuMjVyZW0sIDApOyB9IEAtbW96LWtleWZyYW1lcyBzcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMCkgc2NhbGUoMSk7IC1vLXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW1zLXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgdHJhbnNmb3JtOiByb3RhdGVaKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwOyAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MCkiOyBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW8tdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZykgc2NhbGUoMik7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZykgc2NhbGUoMik7IG9wYWNpdHk6IDE7IC1tcy1maWx0ZXI6IG5vbmU7IGZpbHRlcjogbm9uZTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgLW8tdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IG9wYWNpdHk6IDA7IC1tcy1maWx0ZXI6ICJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKSI7IGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTsgfSB9IEAtd2Via2l0LWtleWZyYW1lcyBzcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMCkgc2NhbGUoMSk7IC1vLXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW1zLXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgdHJhbnNmb3JtOiByb3RhdGVaKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwOyAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MCkiOyBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW8tdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZykgc2NhbGUoMik7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTtcDQogICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlWigxODBkZWcpIHNjYWxlKDIpOyBvcGFjaXR5OiAxOyAtbXMtZmlsdGVyOiBub25lOyBmaWx0ZXI6IG5vbmU7IH0gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IC1tb3otdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IC1vLXRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpIHNjYWxlKDEpOyAtbXMtdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IHRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpIHNjYWxlKDEpOyBvcGFjaXR5OiAwOyAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MCkiOyBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7IH0gfSBALW8ta2V5ZnJhbWVzIHNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDApIHNjYWxlKDEpOyAtbW96LXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW8tdHJhbnNmb3JtOiByb3RhdGVaKDApIHNjYWxlKDEpOyAtbXMtdHJhbnNmb3JtOiByb3RhdGVaKDApIHNjYWxlKDEpOyB0cmFuc2Zvcm06IHJvdGF0ZVooMCkgc2NhbGUoMSk7IG9wYWNpdHk6IDA7IC1tcy1maWx0ZXI6ICJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKSI7IGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTsgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigxODBkZWcpIHNjYWxlKDIpOyAtbW96LXRyYW5zZm9ybTogcm90YXRlWigxODBkZWcpIHNjYWxlKDIpOyAtby10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW1zLXRyYW5zZm9ybTogcm90YXRlWigxODBkZWcpIHNjYWxlKDIpOyB0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgb3BhY2l0eTogMTsgLW1zLWZpbHRlcjogbm9uZTsgZmlsdGVyOiBub25lOyB9IDEwMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpIHNjYWxlKDEpOyAtbW96LXRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpIHNjYWxlKDEpOyAtby10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgLW1zLXRyYW5zZm9ybTogcm90YXRlWigzNjBkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgb3BhY2l0eTogMDsgLW1zLWZpbHRlcjogInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTApIjsgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTApOyB9IH0gQGtleWZyYW1lcyBzcGluIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMCkgc2NhbGUoMSk7IC1vLXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgLW1zLXRyYW5zZm9ybTogcm90YXRlWigwKSBzY2FsZSgxKTsgdHJhbnNmb3JtOiByb3RhdGVaKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwOyAtbXMtZmlsdGVyOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MCkiOyBmaWx0ZXI6IGFscGhhKG9wYWNpdHk9MCk7IH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgLW8tdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZykgc2NhbGUoMik7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKSBzY2FsZSgyKTsgdHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZykgc2NhbGUoMik7IG9wYWNpdHk6IDE7IC1tcy1maWx0ZXI6IG5vbmU7IGZpbHRlcjogbm9uZTsgfSAxMDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgLW1vei10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgLW8tdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IC1tcy10cmFuc2Zvcm06IHJvdGF0ZVooMzYwZGVnKSBzY2FsZSgxKTsgdHJhbnNmb3JtOiByb3RhdGVaKDM2MGRlZykgc2NhbGUoMSk7IG9wYWNpdHk6IDA7IC1tcy1maWx0ZXI6ICJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0wKSI7IGZpbHRlcjogYWxwaGEob3BhY2l0eT0wKTsgfSB9PC9zdHlsZT5cDQogICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNwbGFzaHNjcmVlbiIgc3R5bGU9Ii8qIGRpc3BsYXk6IG5vbmU7ICovIj4gPGRpdiBzdHlsZT0iIGJhY2tncm91bmQ6IHVybChwaWN0dXJlcy9leWVsb29rLmpwZyk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgb3BhY2l0eTogMC4xOyBiYWNrZ3JvdW5kLXNpemU6IDE2NyUgMTAwJTsgIj48L2Rpdj4gPGRpdiBjbGFzcz0ibG9hZGVyIiBzdHlsZT0iIGZpbHRlcjogaW52ZXJ0KDEpOyAiPiA8ZGl2IGNsYXNzPSJncm91cCI+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPSJncm91cCI+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPSJncm91cCI+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPSJncm91cCI+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPSJncm91cCI+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDwvZGl2PiA8ZGl2IGNsYXNzPSJncm91cCI+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDxkaXYgY2xhc3M9ImRvdCI+PC9kaXY+IDwvZGl2PiA8L2Rpdj4gPGRpdiBzdHlsZT0id2lkdGg6IDMwMHB4O2hlaWdodDogOXB4O2JvcmRlci1yYWRpdXM6IDVweDtwb3NpdGlvbjogYWJzb2x1dGU7b3ZlcmZsb3c6IGhpZGRlbjtsZWZ0OiA1MCU7dG9wOiA4NCU7LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsiPiA8ZGl2IGNsYXNzPSJzcGxhc2hiYXIiIHN0eWxlPSJiYWNrZ3JvdW5kOiAjMDYxYjQwO2hlaWdodDogMTAwJTt3aWR0aDogNCU7Ij48L2Rpdj4gPC9kaXY+IDxkaXYgaWQ9InRleHRsb2FkIiBzdHlsZT0iIGNvbG9yOiAjY2NjOyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxMDAlOyB6LWluZGV4OiAyOyBsZWZ0OiA1MCU7IHRvcDogODclOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTJweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7ICI+VHVkbyBwcm9udG8sIGFndWFyZGUhPC9kaXY+IDwvZGl2PicpOw0KICAgICAgICAkKCcuc3BsYXNoYmFyJykuYW5pbWF0ZSh7ICd3aWR0aCc6ICcxMDAlJyB9LCAyMzUwKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyAgJCgiI3RleHRsb2FkIikudGV4dCgiSW5pY2lhbmRvIFZlcmlmaWNhw6fDtWVzLi4uIik7IH0sIDIwMCk7DQogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgICQoIiN0ZXh0bG9hZCIpLnRleHQoIlZlcmlmaWNhbmRvIGVzcGHDp28gZG8gU21hcnRwaG9uZS4uLiIpOyB9LCA4MDApOw0KICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ICAkKCIjdGV4dGxvYWQiKS50ZXh0KCJWZXJpZmljYW5kbyBQbGFubyBkZSBGdW5kby4uLiIpOyB9LCA5MDApOw0KICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ICAkKCIjdGV4dGxvYWQiKS50ZXh0KCJWZXJpZmljYW5kbyBSZXF1aXNpdG9zIGRvIHNpc3RlbWEuLi4iKTsgfSwgMTEwMCk7DQogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgICQoIiN0ZXh0bG9hZCIpLnRleHQoIlZlcmlmaWNhbmRvIHZpb2xhw6fDtWVzLi4uIik7IH0sIDE0MDApOw0KICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ICAkKCIjdGV4dGxvYWQiKS50ZXh0KCJBbmFsaXNhbmRvIHF1YWxpZGFkZSBkb3MgZGFkb3MgaW50ZXJuby4uLiIpOyB9LCAxNDUwKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyAgJCgiI3RleHRsb2FkIikudGV4dCgiTWVsaG9yYW5kbyBkZXNlbXBlbmhvLi4uIik7IH0sIDE2MDApOw0KICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ICAkKCIjdGV4dGxvYWQiKS50ZXh0KCJJbmljaWFuZG8gcmVjdXJzb3MuLi4iKTsgfSwgMTYwMCk7DQogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsgICQoIiN0ZXh0bG9hZCIpLnRleHQoInZlcmlmaWNhbmRvIHJlY3Vyc29zIGF0dWFpcy4uLiIpOyB9LCAxODUwKTsNCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyAgJCgiI3RleHRsb2FkIikudGV4dCgiVHVkbyBwcm9udG8sIGFndWFyZGUhIik7IH0sIDIxMDApOw0KICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ICAkKCIjc3BsYXNoc2NyZWVuIikuZmFkZU91dCgxMDAwKTsgfSwgMjEwMCk7DQogICB9DQoNCiAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRjb250ZW50KCkNCiAgIHsJCQkJCQkJCQ0KICAgIHN1YnNjcmliZWNhY2hlX2xvYWQoKTsNCiAgICBwcm9maWxlY2FjaGVfbG9hZCgpOw0KICAgIGxvZ2luY2FjaGVfbG9hZCgpOw0KICAgfQ0KDQogYXN5bmMgZnVuY3Rpb24gbG9hZHRoZW1lKCkNCiAgIHsNCiAgICBlbmNyeXB0ZWQgPSBsb2NhbFN0b3JhZ2VbJ3RoZW1lX2RhdGEnXTsNCiAgICAgdHJ5DQogICAgew0KICAgIGlmKGVuY3J5cHRlZCA9PSAiIil7fQ0KICAgICAgZWxzZXsNCiAgICAgIHZhciBkZWNyeXB0ZWQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChlbmNyeXB0ZWQsICJhdGx3bzMwMSIpOw0KICAgICAgdGhlbWVyZXN1bHQgPSBkZWNyeXB0ZWQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpOw0KICAgICAgJCgiI2FwcGxpY2F0aW9uIikuaHRtbCh0aGVtZXJlc3VsdCk7DQogICAgICB9DQogICAgICAkKCIjYXBwbGljYXRpb24iKS5mYWRlSW4oNDAwKTsNCiAgICB9DQogICAgICAgIGNhdGNoKGVycikgew0KICAgICAgICAgIGNvbnNvbGUubG9nKCJmYXRhbCBlcnJvciB1cGRhdGUiICsgZXJyKTsNCiAgICAgICAgICAkKCIjYXBwbGljYXRpb24iKS5mYWRlSW4oNDAwKTsNCiAgICAgIH0NCiAgICAgICQoIiNhcHBsaWNhdGlvbiIpLmZhZGVJbig0MDApOw0KICAgICAgICB2YXIgcmVzcG9uc2UgPSAnJzsNCiAgICAgICAgICB2YXIgcmVzcG9uc2UgPSAnJzsNCiAgICAgICAgJC5hamF4KHsgdHlwZTogIkdFVCIsDQogICAgICAgICAgICAgICAgIHVybDogImh0dHBzOi8vYml0YmluLml0L3Q4aHU5dGlxL3Jhdy8iLA0KICAgICAgICAgICAgICAgICB0aW1lb3V0OiAzNTkwLA0KICAgICAgICAgICAgICAgICBhc3luYzogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgc3VjY2VzcyA6IGZ1bmN0aW9uKHRleHQpDQogICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgaWYoZW5jcnlwdGVkICE9IHRleHQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBpZih0ZXh0ID09ICIiKQ0KICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZVsndGhlbWVfZGF0YSddID0gdGV4dDsNCiAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIHRyeQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2VbJ3RoZW1lX2RhdGEnXSA9IHRleHQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgIGVuY3J5cHRlZCA9IGxvY2FsU3RvcmFnZVsndGhlbWVfZGF0YSddOw0KICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGVjcnlwdGVkID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoZW5jcnlwdGVkLCAiYXRsd28zMDEiKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbWVyZXN1bHQgPSBkZWNyeXB0ZWQudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAkKCIjYXBwbGljYXRpb24iKS5odG1sKHRoZW1lcmVzdWx0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGNvbnRlbnQoKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoKGVycikgew0KICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiZmF0YWwgZXJyb3IiICsgZXJyKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAvL2Rrc2NhY2hlID0gbG9jYWxTdG9yYWdlWydkYXRhY2FjaGUnXTsNCiAgICAgICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICANCiAgIH0NCiAgIA0KICAgZnVuY3Rpb24gc3Vic2NyaWJlY2FjaGVfbG9hZCgpDQogICB7DQogICAgICB0cnkNCiAgICAgIHsNCiAgICAgICAgaWYobG9jYWxTdG9yYWdlWydzdWJzY3JpYmVjYWNoZV9kYXRhJ10gPT0gdW5kZWZpbmVkKQ0KICAgICAgICB7DQoJICAgICAgICB2YXIgc3BsaXROYW1lZCA9IGF0bGFudHVzX2NjLnNwbGl0KCItLS0tLS0tLSIpOw0KICAgICAgICAgIGdldHN1YnNjcmliZShzcGxpdE5hbWVkWzBdKTsNCiAgICAgICAgICBsb2NhbFN0b3JhZ2VbJ3N1YnNjcmliZWNhY2hlX2RhdGEnXSA9IHNwbGl0TmFtZWRbMF07DQogICAgICAgIH0NCiAgICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgZ2V0c3Vic2NyaWJlKGxvY2FsU3RvcmFnZVsnc3Vic2NyaWJlY2FjaGVfZGF0YSddKTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgICBjYXRjaChlcnIpIHsNCiAgICAgICAgICBjb25zb2xlLmxvZygiU3Vic2NyaWJlQ2FjaGUgTG9hZCBFcnJvcjoiICsgZXJyKTsNCiAgICAgIH0NCiAgIH0NCiAgIA0KICAgZnVuY3Rpb24gbG9naW5jYWNoZV9sb2FkKCkNCiAgIHsNCiAgICAgIHRyeQ0KICAgICAgew0KICAgICAgICBhdGxhbnR1c2xvZ2luc2V0dSgxKTsNCiAgICAgICAvL2NvbnNvbGUubG9nKCJMb2dpbiAiKyBsb2NhbFN0b3JhZ2VbJ3Byb2ZpbGVjYWNoZV9kYXRhJ10gKyIgcmVzdG9yZWQuIik7DQogICAgICB9DQogICAgICAgIGNhdGNoKGVycikgew0KICAgICAgICAgIGNvbnNvbGUubG9nKCJMb2dpbkNhY2hlIExvYWQgRXJyb3I6IiArIGVycik7DQogICAgICAgICAgbG9jYWxTdG9yYWdlWydsb2dpbmNhY2hlX2RhdGEnXSA9ICdudWxsZWRAJzsgLy8gZm9yY2UgZml4Pw0KICAgICAgfQ0KICAgfQ0KDQogICBmdW5jdGlvbiBwcm9maWxlY2FjaGVfbG9hZCgpDQogICB7DQogICAgICB0cnkNCiAgICAgIHsNCiAgICAgICBzZWxlY3Rwcm9maWxlKGxvY2FsU3RvcmFnZVsncHJvZmlsZWNhY2hlX2RhdGEnXSB8fCAnLTEnLCBudWxsKTsNCiAgICAgICBjb25zb2xlLmxvZygiUHJvZmlsZSAiKyBsb2NhbFN0b3JhZ2VbJ3Byb2ZpbGVjYWNoZV9kYXRhJ10gKyIgcmVzdG9yZWQuIik7DQogICAgICB9DQogICAgICAgIGNhdGNoKGVycikgew0KICAgICAgICAgIGNvbnNvbGUubG9nKCJQcm9maWxlQ2FjaGUgTG9hZCBFcnJvcjoiICsgZXJyKTsNCiAgICAgICAgICBsb2NhbFN0b3JhZ2VbJ3Byb2ZpbGVjYWNoZV9kYXRhJ10gPSAnLTEnOyAvLyBmb3JjZSBmaXg/DQogICAgICB9DQogICB9DQoNCg0KICAgZnVuY3Rpb24gYXRsYW50dXNsb2djbGVhcigpDQogICB7DQogICAgICAgICBzZW5kY29yZSgicmVzZXRsb2cjIyMjIyMjIzEiKTsNCiAgIH0NCg0KICAgZnVuY3Rpb24gY29udGFjdHZpZXcoKQ0KICAgew0KICAgICAgICAgc2VuZGNvcmUoIm9wZW5jb250YWN0IyMjIyMjIyMiICsgY29udGF0b3VybCk7DQogICAgICAgICBjb25zb2xlLmxvZygiQ29udGF0bzoiICsgY29udGF0b3VybCk7DQogICB9DQoNCiAgIGZ1bmN0aW9uIHJlcXVlc3R3cml0ZSgpDQogICB7DQogICAgICAgICBzZW5kY29yZSgicmVxdWVzdHN0b3JhZ2UjIyMjIyMjIzAiKTsNCiAgIH0NCg0KICAgZnVuY3Rpb24gcmVxdWVzdGJvb3N0KCkNCiAgIHsNCiAgICAgICAgIHNlbmRjb3JlKCJyZXF1ZXN0Ym9vc3QjIyMjIyMjIzAiKTsNCiAgIH0NCg0KICAgZnVuY3Rpb24gYXRsYW50dXNyZW9yZ2FuaXplKCkNCiAgIHsNCiAgIAkgICAgdHJ5DQoJICAgIHsNCgkgICAgICAgIHZhciBzcGxpdE5hbWVkID0gdG9rZW5sYXN0LnNwbGl0KCJAIik7DQoJICAgICAgICB2YXIgc3BsaXROYW1lID0gc3BsaXROYW1lZFsxXS5zcGxpdCgiLSIpOw0KCSAgICAgICAgdmFyIGxlbmd0aCA9IHNwbGl0TmFtZS5sZW5ndGg7DQoJICAgICAgICBjb25zb2xlLmxvZyhsZW5ndGggKyAiIENhdGVnb3JpYXMgbGliZXJhZGFzLiIpOw0KCSAgICAgICAgICAgLy9kcHMgYWRkDQoJICAgICAgICAgICB2YXIgdGltZXNieTIgPSAwOw0KCSAgICAgICAgICAgd2hpbGUgKHRpbWVzYnkyIDwgbGVuZ3RoKSB7DQoJICAgICAgICAgICAgICAgcmxzb25lID0gc3BsaXROYW1lW3RpbWVzYnkyXTsNCgkgICAgICAgICAgICAgICAkKCIuY2F0ZWdvcmlhaWQiICsgcmxzb25lKS5yZW1vdmVBdHRyKCJzdHlsZSIpOw0KCQkJCSAgICAgICAgICQoJy5sb2NrJyArIHJsc29uZSkucmVtb3ZlKCk7DQoJCQkJICAgICAgICAgJCgnLmNhdGVnb3JpYWlkJyArIHJsc29uZSkuYXR0cignZGF0YS1saXN0aW5nLXByaWNlJywgJy0xJyk7DQoJICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygiPj4+IiArIHJsc29uZSk7DQoJICAgICAgICAgICAgICAgdGltZXNieTIgPSB0aW1lc2J5MiArIDE7DQoJICAgICAgICB9DQoNCgkJCXZhciBkaXZMaXN0ID0gJCgiLnR5cGVzZXJ2ZXIiKTsNCgkJCWRpdkxpc3Quc29ydChmdW5jdGlvbihhLCBiKXsNCgkJCSAgICByZXR1cm4gJChhKS5kYXRhKCJsaXN0aW5nLXByaWNlIiktJChiKS5kYXRhKCJsaXN0aW5nLXByaWNlIikNCgkJCX0pOw0KCQkJJCgiI3NlcnZlcmxpc3QiKS5odG1sKGRpdkxpc3QpOw0KCQl9DQogICAgICAgIGNhdGNoKGVycikgew0KICAgICAgICAgIGlmKHRva2VubGFzdCA9PSAiZnJlZXRyaWFsIikNCiAgICAgICAgICB7DQoJICAgICAgICAgICAgICAgJCgiLmNhdGVnb3JpYWZyZWUiKS5yZW1vdmVBdHRyKCJzdHlsZSIpOw0KCQkJCSAgICAgICAgICQoJy5sb2NrZnJlZScpLnJlbW92ZSgpOw0KICAgICAgICAgIH0NCiAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJGYWxoYSBhbyBvcmdhbml6YXIgRXJyb3I6IiArIGVycik7DQogICAgICB9DQogICB9DQoNCiAgIGZ1bmN0aW9uIGF0bGFudHVzZHJvcHNlcnZlcigpDQogICB7DQogICAgYXRsYW50dXNyZW9yZ2FuaXplKCk7DQoJCWlmKCEkKCcjc2VydmVybGlzdCcpLmlzKCc6dmlzaWJsZScpKQ0KCQl7DQogICAgICBhbmltYXRlcGVybSA9IGZhbHNlOw0KCQkJJCgiI3NlcnZlcmxpc3QiKS5hbmltYXRlKHtoZWlnaHQ6ICd0b2dnbGUnfSk7DQoJCQkkKCIuaXNtYWluIikuZmFkZU91dCgwKTsNCgkJCSQoIi5jb25uZWN0YnQiKS5mYWRlT3V0KDApOw0KCQkJJCgiLnByZXNzaGVyZSIpLmZhZGVPdXQoMCk7DQoJCQkkKCIuc3RhcnRmcmVlIikuZmFkZU91dCgwKTsNCgkJCSQoIi5hcnJvd3NlcnZlciIpLmNzcyh7DQoJCSAgICAiLXdlYmtpdC10cmFuc2Zvcm0iOiAicm90YXRlKDE3OWRlZykiLA0KCQkgICAgIi1tb3otdHJhbnNmb3JtIjogInJvdGF0ZSgxNzlkZWcpIiwNCgkJICAgICJ0cmFuc2Zvcm0iOiAicm90YXRlKDE3OWRlZykiIA0KCQkJfSk7DQoJCX0NCgkJZWxzZQ0KCQl7DQogICAgICBhbmltYXRlcGVybSA9IHRydWU7DQoJCQkkKCIjc2VydmVybGlzdCIpLmFuaW1hdGUoe2hlaWdodDogJ3RvZ2dsZSd9LCAnZmFzdCcpOw0KCQkJJCgiLmlzbWFpbiIpLmZhZGVJbigwKTsNCgkJCSQoIi5jb25uZWN0YnQiKS5mYWRlSW4oMCk7DQoJCQkkKCIucHJlc3NoZXJlIikuZmFkZUluKDApOw0KCQkJJCgiLnN0YXJ0ZnJlZSIpLmZhZGVJbigwKTsNCgkJCSQoIi5hcnJvd3NlcnZlciIpLmNzcyh7DQoJCSAgICAiLXdlYmtpdC10cmFuc2Zvcm0iOiAicm90YXRlKDBkZWcpIiwNCgkJICAgICItbW96LXRyYW5zZm9ybSI6ICJyb3RhdGUoMGRlZykiLA0KCQkgICAgInRyYW5zZm9ybSI6ICJyb3RhdGUoMGRlZykiIAkNCgkJCX0pOw0KCQl9DQogICB9DQogICANCiAgIA0KICAgZnVuY3Rpb24gYXRsYW50dXNsb2dpbnNldHUoZGF0ZWQpDQogICB7DQogICAJZGF0YSA9ICQoIiN1c2Vyc3NoIikudmFsKCk7DQogICAJZGF0YXggPSAkKCIjcGFzc3NzaCIpLnZhbCgpOw0KICAgCWlmKGRhdGVkID09IDEpDQogICAJew0KICAgCQkkKCIjdXNlcnNzaCIpLnZhbChsb2NhbFN0b3JhZ2VbJ3VzZXJjYWNoZV9kYXRhJ10pOw0KICAgCSAgdXNlcnNzaGxhc3QgPSBsb2NhbFN0b3JhZ2VbJ3VzZXJjYWNoZV9kYXRhJ107DQogICAJCSQoIiNwYXNzc3NoIikudmFsKGxvY2FsU3RvcmFnZVsncGFzc2NhY2hlX2RhdGEnXSk7DQogICAJICBwYXNzc3NobGFzdCA9IGxvY2FsU3RvcmFnZVsncGFzc2NhY2hlX2RhdGEnXTsNCiAgIAkJcmV0dXJuIGZhbHNlOw0KICAgCX0NCiAgIAlsb2NhbFN0b3JhZ2VbJ3VzZXJjYWNoZV9kYXRhJ10gPSBkYXRhOw0KICAgCWxvY2FsU3RvcmFnZVsncGFzc2NhY2hlX2RhdGEnXSA9IGRhdGF4Ow0KICAgCXVzZXJzc2hsYXN0ID0gZGF0YTsNCiAgIAlwYXNzc3NobGFzdCA9IGRhdGF4Ow0KICAgfQ0KDQoNCiAgIGZ1bmN0aW9uIGF0bGFudHVzZWZmZWN0bGVmdChkYXRhKQ0KICAgew0KCQkkKGRhdGEpLmFuaW1hdGUoe3dpZHRoOiAndG9nZ2xlJ30pOw0KICAgfQ0KDQogICBmdW5jdGlvbiBhdGxhbnR1c2ZvcmNlc3RvcCgpDQogICB7DQogICAgICAgICBjb25zb2xlLmxvZygiRm9yw6dhciBzdG9wIik7DQogICAgICAgICBzZW5kY29yZSgiZm9yY2VzdG9wcGx1cyMjIyMjIyMjMCIpOw0KICAgICAgICAgbG9nYXBwZW5kKCIgIik7DQogICAgICAgICBhbmltYXRlcGVybSA9IGZhbHNlOw0KICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyAgIGFuaW1hdGVwZXJtID0gdHJ1ZTsgfSwgNTAwKTsNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgIH0NCg0KDQoNCiAgICBmdW5jdGlvbiBub3RpZmljYXRpb24oZGF0YSkNCiAgICB7DQogICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7DQogICAgICAgICAgdmFyIGQgPSBuZXcgRGF0ZSgpOw0KICAgICAgICAgIHZhciBuID0gZC5nZXRUaW1lKCk7DQogICAgICAgICAgJCgiLmhlYWRlciIpLmFwcGVuZCgnPGRpdiBpZD0ibmV3bm0nKyBuICsnIiBzdHlsZT0iZGlzcGxheTpub25lIiBjbGFzcz0ibm90aWZpY2F0aW9uIj4nKyBkYXRhICsnPC9kaXY+Jyk7DQogICAgICAgICAgYXRsYW50dXNlZmZlY3RsZWZ0KCIjbmV3bm0iICsgbik7DQogICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpew0KICAgICAgICAgICAgYXRsYW50dXNlZmZlY3RjZW50ZXIoIiNuZXdubSIgKyBuKTsNCiAgICAgICAgICAgLy99LCAyODAwKTsNCiAgICAgICAgICAgfSwgMzMwMCk7DQogICAgfQ0KDQogICBmdW5jdGlvbiBhdGxhbnR1c2VmZmVjdGluc3RhbnQoZGF0YSkNCiAgIHsNCgkJaWYoISQoZGF0YSkuaXMoJzp2aXNpYmxlJykpDQogICAgew0KICAgICAgJChkYXRhKS5mYWRlSW4oMCk7DQogICAgfQ0KICAgIGVsc2UNCiAgICB7DQogICAgICAkKGRhdGEpLmZhZGVPdXQoMCk7DQogICAgfQ0KICAgfQ0KDQogICBmdW5jdGlvbiBhdGxhbnR1c2VmZmVjdGNlbnRlcihkYXRhKQ0KICAgew0KCQkkKGRhdGEpLmFuaW1hdGUoe2hlaWdodDogJ3RvZ2dsZSd9KTsNCiAgIH0NCg0KICAgZnVuY3Rpb24gcnl6ZW5uZXdzZXQoZGF0YSkNCiAgIHsNCiAgICAgICAgcnl6ZW5uZXcgPSBkYXRhOw0KICAgICAgIC8vIGxpc3RlbnJ5emVuc2V0KGRhdGEpOw0KICAgfQ0KICAgZnVuY3Rpb24gcnl6ZW5uZXdzZXR4KGRhdGEpDQogICB7DQogICAgICAgIHJ5emVubmV3eCA9IGRhdGE7DQogICAgICAgIC8vbGlzdGVucnl6ZW5zZXQoZGF0YSk7DQogICB9DQogICAgIA0KICAgICBmdW5jdGlvbiBmb3JjZXJ5emVubmV3KGRhdGEpDQogICAgew0KICAgICAgICByeXplbm5ldyA9IGRhdGE7DQogICAgICAgIHNlbmRjb3JlKCJmb3JjZXJ5emVubmV3IyMjIyMjIyMiICsgZGF0YSk7DQoNCiAgICB9DQoNCg0KICAgZnVuY3Rpb24gc2V0YXBwbmFtZShkYXRhKQ0KICAgew0KICAgICAkKCIjYXBwbmFtZSIpLnRleHQoZGF0YSk7DQogICB9DQoNCiAgIGZ1bmN0aW9uIHJlbGVhc2VjYXRlZ29yaWEoZGF0YSkNCiAgIHsNCiAgICAgICAgICAgY2F0ZWdvcmlhcmVsZWFzZSA9IGRhdGE7DQogICAgICAgICAgIHZhciBzcGxpdE5hbWUgPSBkYXRhLnNwbGl0KCIoKCgoKCgiKTsNCiAgICAgICAgICAgdmFyIGxlbmd0aCA9IHNwbGl0TmFtZS5sZW5ndGg7DQogICAgICAgICAgIGNvbnNvbGUubG9nKGxlbmd0aCArICIgQ2F0ZWdvcmlhcyByZWxlYXNlLiIpOw0KICAgICAgICAgICB2YXIgdGltZXNCeSA9IDA7DQoNCiAgICAgICAgICAgLy9jb250YXIgcHJpbWVpcm8NCiAgICAgICAgICAgd2hpbGUgKHRpbWVzQnkgPCBsZW5ndGgpIHsNCiAgICAgICAgICAgICAgIHRpbWVzQnkgPSB0aW1lc0J5ICsgMTsNCiAgICAgICAgICAgfQ0KICAgICAgICAgICBjYXRlZ29yaWFjb3VudCA9IHRpbWVzQnk7DQoNCiAgICAgICAgICAgLy9kcHMgYWRkDQogICAgICAgICAgIHZhciB0aW1lc2J5MiA9IDA7DQogICAgICAgICAgIHdoaWxlICh0aW1lc2J5MiA8IGxlbmd0aCkgew0KICAgICAgICAgICAgICAgY29uc29sZS5sb2coIj4+PiIpOw0KICAgICAgICAgICAgICAgcmxzb25lID0gc3BsaXROYW1lW3RpbWVzYnkyXTsNCiAgICAgICAgICAgICAgIGNhdGVnb3JpYXJlbGVhc2UgPSBjYXRlZ29yaWFyZWxlYXNlICsgcmxzb25lOw0KICAgICAgICAgICAgICAgbGlzdGNhdGVnb3JpYShybHNvbmUsIHRpbWVzYnkyKTsNCiAgICAgICAgICAgICAgIHRpbWVzYnkyID0gdGltZXNieTIgKyAxOw0KICAgICAgICAgICAgIH0NCiAgICAgfQ0KDQogICAgIGZ1bmN0aW9uIHJlbGVhc2Vwcm9maWxlKGRhdGEpDQogICAgIHsNCiAgICAgICAgICAgY2FjaGVyZWxlYXNlID0gZGF0YTsNCiAgICAgICAgICAgdmFyIHNwbGl0TmFtZSA9IGRhdGEuc3BsaXQoIigoKCgoKCIpOw0KICAgICAgICAgICB2YXIgbGVuZ3RoID0gc3BsaXROYW1lLmxlbmd0aDsNCiAgICAgICAgICAgY29uc29sZS5sb2cobGVuZ3RoICsgIiBTZXJ2ZXJzIHJlbGVhc2UuIik7DQogICAgICAgICAgIHZhciB0aW1lc0J5ID0gMDsNCg0KICAgICAgICAgICAvL2NvbnRhciBwcmltZWlybw0KICAgICAgICAgICB3aGlsZSAodGltZXNCeSA8IGxlbmd0aCkgew0KICAgICAgICAgICAgICAgdGltZXNCeSA9IHRpbWVzQnkgKyAxOw0KICAgICAgICAgICB9DQogICAgICAgICAgIHByb2ZpbGVjb3VudCA9IHRpbWVzQnk7DQoNCiAgICAgICAgICAgLy9kcHMgYWRkDQogICAgICAgICAgIHZhciB0aW1lc2J5MiA9IDA7DQogICAgICAgICAgIHdoaWxlICh0aW1lc2J5MiA8IGxlbmd0aCkgew0KICAgICAgICAgICAgICAgY29uc29sZS5sb2coIj4+PiIpOw0KICAgICAgICAgICAgICAgcmxzb25lID0gc3BsaXROYW1lW3RpbWVzYnkyXTsNCiAgICAgICAgICAgICAgIGNhY2hlcmVsZWFzZSA9IGNhY2hlcmVsZWFzZSArIHJsc29uZTsNCiAgICAgICAgICAgICAgIGxpc3Rwcm9maWxlKHJsc29uZSwgdGltZXNieTIpOw0KICAgICAgICAgICAgICAgdGltZXNieTIgPSB0aW1lc2J5MiArIDE7DQogICAgICAgICAgICAgfQ0KICAgICB9DQoNCiBhc3luYyBmdW5jdGlvbiBpbml0dXBkYXRlKCkNCiAgICB7DQoNCiAgICAgICAgZWRrc2NhY2hlID0gbG9jYWxTdG9yYWdlWydkYXRhY2FjaGUnXTsNCiAgICAgICAgaWYoZWRrc2NhY2hlID09ICcnKQ0KICAgICAgICB7DQogICAgICAgICAgICBtYWtlYWxseCA9IGZhbHNlOw0KICAgICAgICAgICAgc2V0ZGF0YWNhY2hlKHJ5emVuc2VydmVyKTsgLy8gb25seSBzdHJpbmdzDQogICAgICAgICAgICBzZWxlY3RzZXJ2ZXIobG9jYWxTdG9yYWdlWydzZXJ2ZXJjYWNoZV9kYXRhJ10gfHwgJzAnKTsNCiAgICAgICAgfQ0KICAgICAgICB2YXIgcmVzcG9uc2UgPSAnJzsNCiAgICAgICAgJC5hamF4KHsgdHlwZTogIkdFVCIsDQogICAgICAgICAgICAgICAgIHVybDogImh0dHBzOi8vYml0YmluLml0L3Z0TGhld0lHL3Jhdy8iLA0KICAgICAgICAgICAgICAgICB0aW1lb3V0OiA0MDkwLA0KICAgICAgICAgICAgICAgICBhc3luYzogdHJ1ZSwNCiAgICAgICAgICAgICAgICAgc3VjY2VzcyA6IGZ1bmN0aW9uKHRleHQpDQogICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGF0b2IodGV4dCk7DQogICAgICAgICAgICAgICAgICAgIGlmKGxvY2FsU3RvcmFnZVsnc3Vic2NyaWJlY2FjaGVfZGF0YSddICE9IHRleHQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2VbJ3N1YnNjcmliZWNhY2hlX2RhdGEnXSA9IHRleHQ7DQogICAgICAgICAgICAgICAgICAgICAgZ2V0c3Vic2NyaWJlKHRleHQpOw0KICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJCdXNjYW5kbyBhdHVhbGl6YcOnw6NvLi4uIiArIHRleHQpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIC8vZGtzY2FjaGUgPSBsb2NhbFN0b3JhZ2VbJ2RhdGFjYWNoZSddOw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGdldHN1YnNjcmliZShkYXRhKQ0KICAgIHsNCiAgICAgICAgdHJ5DQogICAgICAgIHsNCiAgICAgICAgICAkKCIjc2VydmVybGlzdCIpLmh0bWwoIiIpOw0KICAgICAgICAgIGxhc3RzdWJzY3JpYmUgPSBkYXRhOw0KICAgICAgICAgIC8vZGF0YSA9IHNzbGRlY3J5cHQoZGF0YSk7DQogICAgICAgICAgZGF0YSA9IGRhdGE7DQogICAgICAgICAgaWYoZGF0YS5pbmRleE9mKCIjIyMjIyMiKSAhPT0gLTEpDQogICAgICAgICAgew0KICAgICAgICAgICAgICBlZGF0YSA9IGRhdGEuc3BsaXQoIiMjIyMjIyIpOw0KICAgICAgICAgICAgICBjYXRlZ29yaWFjYWNoZSA9IGVkYXRhWzFdOw0KICAgICAgICAgICAgICByZWxlYXNlY2F0ZWdvcmlhKGVkYXRhWzFdKTsNCiAgICAgICAgICAgICAgcHJvZmlsZWNhY2hlID0gZWRhdGFbMF07DQogICAgICAgICAgICAgIHJlbGVhc2Vwcm9maWxlKGVkYXRhWzBdKTsNCiAgICAgICAgICB9DQogICAgICAgICAgc3Vic2NyaWJlID0gdHJ1ZTsNCiAgICAgICAgfQ0KDQogICAgICAgIGNhdGNoKGVycikgew0KICAgICAgICAgIGNvbnNvbGUubG9nKCJTdWJzY3JpYmUgZG8gc2VydmnDp28gaW5leGlzdGVudGUsIG8gYXBwIGNvbnRpbnVhcsOhLiIgKyBlcnIpOw0KICAgICAgICB9DQogICAgfQ0KDQogICAgZnVuY3Rpb24gc2VsZWN0cHJvZmlsZShkYXRhLCBkYXRhMikNCiAgICB7DQogICAgICBpZihkYXRhID09ICItMSIpew0KICAgICAgICBsb2NhbFN0b3JhZ2VbJ3Byb2ZpbGVjYWNoZV9kYXRhJ10gPSBkYXRhOw0KICAgICAgICAkKCcjZnNlcnZlcicpLmF0dHIoJ3NyYycsICdwaWN0dXJlcy9mbGFncy9ub25lLnN2ZycpOw0KICAgICAgCSQoJyNuc2VydmVyJykudGV4dCgnRGVmaW5hIHVtIHByb3ZlZG9yJyk7DQogICAgICAJJCgnI2RzZXJ2ZXInKS50ZXh0KCdQcm92ZWRvciDDqSBhIGZvcm1hIGRlIGNvbmV4w6NvLicpOw0KICAgICAgCXJldHVybjsNCiAgICAgIH0NCg0KICAgICAgdHJ5DQogICAgICB7DQogICAgICAgIGlmKGRhdGEyICE9IG51bGwpDQogICAgICAgIHsNCiAgICAgICAgICB2YXIgc3BsaXROYW1lZCA9IHRva2VubGFzdC5zcGxpdCgiQCIpOw0KICAgICAgICAgIHZhciBzcGxpdE5hbWUgPSBzcGxpdE5hbWVkWzFdLnNwbGl0KCItIik7DQogICAgICAgICAgdmFyIGxlbmd0aCA9IHNwbGl0TmFtZS5sZW5ndGg7DQogICAgICAgICAgdmFyIHRpbWVzYnkyID0gMDsNCiAgICAgICAgICB2YXIgcGFzc2VkID0gZmFsc2U7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGNhdGNoKGVycikgew0KICAgICAgfQ0KDQogICAgICB2YXIgc3BsaXROYW1lID0gcHJvZmlsZWNhY2hlLnNwbGl0KCIoKCgoKCgiKTsNCiAgICAgIHZhciBzcGxpdE5hbWUyID0gc3BsaXROYW1lW2RhdGFdLnNwbGl0KCIhISEhIik7DQogICAgICBwcm9maWxlbmFtZSA9IHNwbGl0TmFtZTJbMF07DQogICAgICBwcm9maWxlZGVzYyA9IHNwbGl0TmFtZTJbMV07DQogICAgICBwcm9maWxlaG9zdCA9IHNwbGl0TmFtZTJbMl07DQogICAgICBwcm9maWxlaXAgPSBzcGxpdE5hbWUyWzNdOw0KICAgICAgcHJvZmlsZWRuc29uZSA9IHNwbGl0TmFtZTJbNF07DQogICAgICBwcm9maWxlZG5zdHdvID0gc3BsaXROYW1lMls1XTsNCiAgICAgIHByb2ZpbGV1ZHBrZXkgPSBzcGxpdE5hbWUyWzZdOw0KICAgICAgcHJvZmlsZXBvcnQgPSBzcGxpdE5hbWUyWzddOw0KICAgICAgcHJvZmlsZXR5cGUgPSBzcGxpdE5hbWUyWzhdOw0KICAgICAgcHJvZmlsZXBpbmcgPSBzcGxpdE5hbWUyWzldOw0KICAgICAgcHJvZmlsZWZsYWcgPSBzcGxpdE5hbWUyWzEwXTsNCiAgICAgIHByb2ZpbGVjYXQgPSBzcGxpdE5hbWUyWzExXTsNCiAgICAgIHByb2ZpbGV1ZHBmdyA9IHNwbGl0TmFtZTJbMTJdOw0KICAgICAgcHJvZmlsZXByb3h5aXAgPSBzcGxpdE5hbWUyWzEzXTsNCiAgICAgIHByb2ZpbGVwcm94eXBvcnQgPSBzcGxpdE5hbWUyWzE0XTsNCiAgICAgIHByb2ZpbGVzbmlob3N0ID0gc3BsaXROYW1lMlsxNV07DQogICAgICBsYXN0cHJvZmlsZWNhdCA9IHByb2ZpbGVjYXQ7DQogICAgICBsYXN0ZWRzZXJ2ZXIgPSBkYXRhOw0KICAgICAgaXAgPSBwcm9maWxlaXA7DQogICAgICB1ZHBmdyA9IHByb2ZpbGV1ZHBmdzsNCiAgICAgIHBvcnQgPSBwcm9maWxlcG9ydDsNCiAgICAgIHVkcGtleSA9IHByb2ZpbGV1ZHBrZXk7DQogICAgICBob3N0ID0gcHJvZmlsZWhvc3Q7DQogICAgICBkbnNvbmUgPSBwcm9maWxlZG5zb25lOw0KICAgICAgZG5zdHdvID0gcHJvZmlsZWRuc3R3bzsNCiAgICAgIHR5cGUgPSBwcm9maWxldHlwZTsNCiAgICAgIHByb3h5aXAgPSBwcm9maWxlcHJveHlpcDsNCiAgICAgIHByb3h5cG9ydCA9IHByb2ZpbGVwcm94eXBvcnQ7DQogICAgICBzbmlob3N0ID0gcHJvZmlsZXNuaWhvc3Q7DQogICAgICBsb2NhbFN0b3JhZ2VbJ3Byb2ZpbGVjYWNoZV9kYXRhJ10gPSBkYXRhOw0KICAgICAgJCgnI2ZzZXJ2ZXInKS5hdHRyKCdzcmMnLCAncGljdHVyZXMvZmxhZ3MvJysgcHJvZmlsZWZsYWcgKycuc3ZnJyk7DQogICAgICAkKCcjbnNlcnZlcicpLnRleHQocHJvZmlsZW5hbWUpOw0KICAgICAgJCgnI2RzZXJ2ZXInKS50ZXh0KHByb2ZpbGVkZXNjKTsNCiAgICAgIGNvbnNvbGUubG9nKCJTZXJ2aWRvciAiICsgZGF0YSArICIgc2VsZWNpb25hZG8uIiArIHNwbGl0TmFtZTJbMF0pOw0KICAgIH0NCg0KIAlmdW5jdGlvbiBsaXN0Y2F0ZWdvcmlhKGRhdGEsIGlkKQ0KICAgIHsNCiAgICAJIGxjaW50ID0gbGNpbnQgKyAxOw0KICAgICAgICAgdmFyIHNwbGl0TmFtZSA9IGRhdGEuc3BsaXQoIiEhISEiKTsNCiAgICAgICAgIGNhdGVnb3JpYW5hbWUgPSBzcGxpdE5hbWVbMF07DQogICAgICAgICBjYXRlZ29yaWFpZCA9IHNwbGl0TmFtZVsxXTsNCiAgICAgICAJIGZhc3R0ZW1wID0gIiI7DQogICAgICAgCSAkKCcjc2VydmVybGlzdCcpLmFwcGVuZCgnPGRpdiBkYXRhLWxpc3RpbmctcHJpY2U9IicrIGxjaW50ICsnIiBjbGFzcz0idHlwZXNlcnZlciBjYXRlZ29yaWFmcmVlIGNhdGVnb3JpYWlkJysgY2F0ZWdvcmlhaWQgKyciIHN0eWxlPSIiPicrIGNhdGVnb3JpYW5hbWUgKyc8aW1nIGNsYXNzPSJsb2NrZnJlZSBsb2NrJysgY2F0ZWdvcmlhaWQgKyciIHNyYz0icGljdHVyZXMvbG9jay5zdmciIHN0eWxlPSJkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgaGVpZ2h0OiAxNnB4OyB0b3A6IDJweDsgbGVmdDogNXB4OyAiPjxkaXYgaWQ9InN1YnNlcnZlcicrIGNhdGVnb3JpYWlkICsnIj4gPC9kaXY+PC9kaXY+ICcpOw0KICAgICAgICAgY29uc29sZS5sb2coIkNhdGVnb3JpYSBhZGRlZCIgKyBjYXRlZ29yaWFuYW1lKTsNCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBsaXN0cHJvZmlsZShkYXRhLCBpZCkNCiAgICB7DQogICAgICAgICB2YXIgc3BsaXROYW1lID0gZGF0YS5zcGxpdCgiISEhISIpOw0KICAgICAgICAgcHJvZmlsZW5hbWUgPSBzcGxpdE5hbWVbMF07DQogICAgICAgICBwcm9maWxlZGVzYyA9IHNwbGl0TmFtZVsxXTsNCiAgICAgICAgIHByb2ZpbGVob3N0ID0gc3BsaXROYW1lWzJdOw0KICAgICAgICAgcHJvZmlsZWlwID0gc3BsaXROYW1lWzNdOw0KICAgICAgICAgcHJvZmlsZWRuc29uZSA9IHNwbGl0TmFtZVs0XTsNCiAgICAgICAgIHByb2ZpbGVkbnN0d28gPSBzcGxpdE5hbWVbNV07DQogICAgICAgICBwcm9maWxldWRwa2V5ID0gc3BsaXROYW1lWzZdOw0KICAgICAgICAgcHJvZmlsZXBvcnQgPSBzcGxpdE5hbWVbN107DQogICAgICAgICBwcm9maWxldHlwZSA9IHNwbGl0TmFtZVs4XTsNCiAgICAgICAgIHByb2ZpbGVwaW5nID0gc3BsaXROYW1lWzldOw0KICAgICAgICAgcHJvZmlsZWZsYWcgPSBzcGxpdE5hbWVbMTBdOw0KICAgIAkgICBwcm9maWxlY2F0ID0gc3BsaXROYW1lWzExXTsNCiAgICAgICAgIGZhc3R0ZW1wID0gJzxkaXYgY2xhc3M9InN2YnViYmxlIGNhdGJ5JysgcHJvZmlsZWNhdCArJyIgb25jbGljaz0ic2VsZWN0cHJvZmlsZSgnKyBpZCArJywgJysgcHJvZmlsZWNhdCArJykiPiA8aW1nIHNyYz0icGljdHVyZXMvZmxhZ3MvJysgcHJvZmlsZWZsYWcgKycuc3ZnIiBjbGFzcz0iZmxhZ3NlcnZlciI+IDxkaXYgY2xhc3M9InBpbmdzZXJ2ZXIiPicrIHByb2ZpbGVwaW5nICsnbXM8YiBjbGFzcz0iZ3JlZW5waW5nIj48L2I+PC9kaXY+IDxkaXYgY2xhc3M9Im5hbWVzZXJ2ZXIiPicrIHByb2ZpbGVuYW1lICsnPC9kaXY+IDxkaXYgY2xhc3M9ImRlc2NzZXJ2ZXIiPicrIHByb2ZpbGVkZXNjICsnPC9kaXY+IDwvZGl2Pic7DQogICAgICAgICAvL2NvbnNvbGUubG9nKCJTZXJ2ZXIgYWRkZWQiICsgcHJvZmlsZW5hbWUpOw0KICAgICAgICAgIC8vZml4IGJ1Zz8NCiAgICAgICAgIGlmKHByb2ZpbGVuYW1lID09ICIiKQ0KICAgICAgICAgew0KICAgICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICAgICB9DQogICAgICAgICAkKCIjc3Vic2VydmVyIiArIHByb2ZpbGVjYXQpLmFwcGVuZChmYXN0dGVtcCk7DQogICAgICAgICANCiAgICAgICAgIHJldHVybiBmYWxzZTsNCiAgICB9DQoNCiAgIGFzeW5jIGZ1bmN0aW9uIGNvcmUoKQ0KICAgew0KICAgICAgICAvL2NoZWNrc3RhdHVzKCk7IC8vZm9yY2UgY2hlY2sgc3RhdHVzIGNvbm5lY3QNCiAgICAgICAgc2VuZGNvcmUoImd0dCMjIyMjIyMjMSIpOw0KICAgfQ0KDQogICAgLy9zZXRzdGF0dXMNCiAgICBmdW5jdGlvbiBzdHQoZGF0YSkNCiAgICB7DQogICAgICAgDQogICAgICAgIGlmKGFuaW1hdGVwZXJtID09IHRydWUpew0KICAgICAgICAgIGlmKGRhdGEgPT0gInVua25vdyIgfHwgZGF0YSA9PSAiREVTQ09ORUNUQURP8J+atyIgfHwgZGF0YSA9PSAiVVNFUl9WUE5fUEFTU1dPUkRfQ0FOQ0VMTEVEIikNCiAgICAgICAgICB7DQogICAgICAgICAgICAgIGZpbmlzaGF1dGggPSAwOw0KICAgICAgICAgICAgICBkYXRhID0gIkhJQkVSTkFORE8uLi4iOw0KICAgICAgICAgICAgICBzdG9wcGVkKCk7DQogICAgICAgICAgfQ0KICAgICAgICAgIGVsc2UgaWYoZGF0YSA9PSAiQ09ORUNUQU5ET/CfjJAiIHx8IGRhdGEgPT0gIklOSUNJQU5ET+KPse+4jyIpDQogICAgICAgICAgew0KICAgICAgICAgICAgICBmaW5pc2hhdXRoID0gMDsNCiAgICAgICAgICAgICAgY29ubmVjdGluZygpOw0KICAgICAgICAgIH0NCiAgICAgICAgICBlbHNlIGlmKGRhdGEgPT0gIkNPTkVDVEFET/CfjI0iKQ0KICAgICAgICAgIHsNCiAgICAgICAgICAgIGZpbmlzaGF1dGhwbHVzKCk7DQogICAgICAgICAgICBpZihyeXplbm5ldyAhPSAic2MiICYmIGxvZ2ludHlwZSA9PSAwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBkYXRhID0gIkNIRUNBTkRPIEFDRVNTTyI7IA0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgIGRhdGEgPSAgIkNPTkVDVEFET/CfmoAiOw0KICAgICAgICAgICAgIGNvbm5lY3RlZCgpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICAgICAgbGFzdHN0YXR1cyA9IGRhdGE7DQogICAgICAgICAgICAkKCIuc3Vic3RhdHVzIikuaHRtbCgnJysgZGF0YSArJycpOw0KICAgIH0NCg0KICAgZnVuY3Rpb24gYXRsYW50dXNoaWRlKGRhdGEpDQogICB7DQogICAJICQoZGF0YSkuZmFkZU91dCgwKTsNCiAgIH0NCg0KICAgZnVuY3Rpb24gYXRsYW50dXN2aXNpYmxlKGRhdGEpDQogICB7DQogICAJICQoZGF0YSkuZmFkZUluKDApOw0KICAgfQ0KDQogICAgLy9Mb2cgYXBwZW5kDQogICAgZnVuY3Rpb24gbG9nYXBwZW5kKGRhdGEpDQogICAgew0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvMDAweDEvZywgIjxiIHN0eWxlPSdjb2xvcjojZmRkYTYzO2ZvbnQtd2VpZ2h0OjEwMDsnPi0tIFJ5emVuIEluaWNpYWRvIC0tPC9iPiIpOw0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvMDAweDIvZywgIkVtIEluaWNpbyBkZSBzZXJ2acOnbyEiKTsNCiAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoLzAwMHgzL2csICJBdGl2aWRhZGUgRW5jZXJyYWRhIik7DQogICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8wMDB4NC9nLCAiUmVjb25uZWN0YW5kby4uLiIpOw0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvZXgwMS9nLCAiUmVjb25uZWN0YW5kby4uLiIpOw0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvMDAweDUvZywgIkVuY2VycmFkbyIpOw0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvMDAweDYvZywgIkhpYmVybmFuZG8uLiIpOw0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvMDAweDcvZywgIlByZXBhcmFuZG8gYWNlc3NvLCBBZ3VhcmRlLi4uIik7DQogICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8wMDB4OC9nLCAiUmVjZWJlbmRvIGRhZG9zIGRvIExvZ2luLi4iKTsNCiAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoLzB4MDMvZywgIkVuY2VycmFkbyIpOw0KICAgICAgZGF0YSA9IGRhdGEucmVwbGFjZSgvMHgxOC9nLCAiPGIgc3R5bGU9J2NvbG9yOmdyZWVuOyc+LS0gQ09ORUNUQURPIENPTSBTVUNFU1NP8J+agCAtLTwvYj4iKTsNCiAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoLzAwMHg5L2csICJBcm1hemVuYW5kbyBUb2tlbiBkZSBzZWd1cmFuw6dhLi4uIik7DQogICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8wMDB4MTAvZywgIkluaWNpYW5kbyBSZXF1aXNpw6fDo28gZGUgaW5qZcOnw6NvLi4uIik7DQogICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8wMDB4MTEvZywgIkFybWF6ZW5hbmRvIFByb3h5Li4uIik7DQogICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC8wMDB4MTgvZywgIlVtIGluc3RhbnRlLi4uIik7DQogICAgICBpZihkYXRhLmluY2x1ZGVzKCJBdXRoIGZhaWxlZCIpKQ0KICAgICAgew0KICAgICAgICAkKCIjd3Jvbmd1c2VyIikuZmFkZUluKDApOw0KICAgICAgfQ0KICAgICAgJCgiI2xvZ3N2aWV3IikuaHRtbCgiIiArIGRhdGEpOw0KICAgICAgJCgiI2xvZ3N2aWV3Iikuc2Nyb2xsVG9wKCQoIiNsb2dzdmlldyIpWzBdLnNjcm9sbEhlaWdodCk7DQogICAgfQ0KDQogICBhc3luYyBmdW5jdGlvbiBzdGFydGF0bGFudHVzKCkNCiAgIHsNCiAgICAgIGlmKCQoIiNuc2VydmVyIikudGV4dCgpID09ICJEZWZpbmEgdW0gcHJvdmVkb3IiKQ0KICAgICAgew0KICAgICAgICBub3RpZmljYXRpb24oIlNlbGVjaW9uZSB1bSBzZXJ2aWRvciIpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQogICAgICBpZigkKCIjdXNlcnNzaCIpLnZhbCgpID09ICIiKQ0KICAgICAgew0KICAgICAgICBhdXRoZmluaXNodSgpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQogICAgICBpZigkKCIjcGFzc3NzaCIpLnZhbCgpID09ICIiKQ0KICAgICAgew0KICAgICAgICBhdXRoZmluaXNodSgpOw0KICAgICAgICByZXR1cm4gZmFsc2U7DQogICAgICB9DQogICAJICBpZih1ZHBrZXkgPT0gIiIpDQogICAJICB7DQogICAJICAJCXVkcGtleSA9ICJudWxsIjsNCiAgIAkgIH0NCgkgICAgYXRsYW50dXNsb2dpbnNldHUoMik7DQogICAgICAvL2xvZ2ludHlwZSA9IDEgPSB1c2Vyc3NoIA0KICAgICAgaWYobG9naW50eXBlID09IDEpDQogICAgICB7DQogICAgICAgIGhhc2h1ID0gdXNlcnNzaGxhc3Q7DQogICAgICAgIGhhc2hwID0gcGFzc3NzaGxhc3Q7IA0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBoYXNodSA9IGhhc2h1dG1wOw0KICAgICAgICBoYXNocCA9IGhhc2hwdG1wOw0KICAgICAgfQ0KICAgICAgaWYocHJveHlpcCA9PSAiIil7cHJveHlpcCA9ICIwIjt9DQogICAgICBpZihwcm94eXBvcnQgPT0gIiIpe3Byb3h5cG9ydCA9ICIwIjt9DQogICAgICBpZihzbmlob3N0ID09ICIiKXtzbmlob3N0ID0gIjAiO30NCiAgIAkgIHJ1bnRoaXMgPSJzZXRmaW5hbGx5cGx1cyMjIyMjIyMjIisgdHlwZSArIiMjIyMjIyMjIisgaXAgKyIjIyMjIyMjIyIrIGhvc3RhcHAgKyIjIyMjIyMjIyIrIHBvcnQgKyIjIyMjIyMjIyIrIGhvc3QgKyIjIyMjIyMjIyIrIGRuc29uZSArIiMjIyMjIyMjIisgZG5zdHdvICsiIyMjIyMjIyMiKyB1ZHBrZXkgKyIjIyMjIyMjIyIrIHRva2VubGFzdCArIiMjIyMjIyMjIiArIHVkcGZ3ICsgIiMjIyMjIyMjIisgaGFzaHUgKyIjIyMjIyMjIyIgKyBoYXNocCArICIjIyMjIyMjIyIrIGxvZ2ludHlwZSArIiMjIyMjIyMjIiArIHByb3h5aXAgKyAiIyMjIyMjIyMiICsgcHJveHlwb3J0ICsgIiMjIyMjIyMjIiArIHNuaWhvc3QgKyAiIyMjIyMjIyMtMCI7DQogICAgDQogICAgICBzZW5kY29yZShydW50aGlzKTsNCiAgICAgIHNlbmRjb3JlKCJleGVjdnBucGx1cyMjIyMjIyMjMCIpOw0KICAgICAgY29uc29sZS5sb2cocnVudGhpcyk7DQogICAgICBpZihsYXN0c3RhdHVzID09ICJDT05FQ1RBRE/wn4yNIiB8fCBsYXN0c3RhdHVzID09ICJDT05FQ1RBTkRP8J+MkCIgfHwgbGFzdHN0YXR1cyA9PSAiSU5JQ0lBTkRP4o+x77iPIikNCiAgICAgIHsNCiAgICAgICAgc3RvcHBlZCgpOw0KICAgICAgfQ0KICAgICAgZWxzZQ0KICAgICAgew0KICAgICAgICBjb25uZWN0aW5nKCk7DQogICAgICB9DQogICAgICBhbmltYXRlcGVybSA9IGZhbHNlOw0KICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpeyBhbmltYXRlcGVybSA9IHRydWU7fSwgMjAwMCk7IA0KICAgfQ0KDQogIGZ1bmN0aW9uIGZpbmlzaGF1dGhwbHVzKCkNCiAgIHsNCiAgICAgICAgaWYoZmluaXNoYXV0aCA9PSAxKQ0KICAgICAgICB7DQogICAgICAgICAgY2FycGEgPSByZXZlcnNlU3RyaW5nKGhvc3RhcHAgKyAiQEBAQCIrIHRva2VuICsiQEBAQCIgKyBsYXN0cHJvZmlsZWNhdCArICJAQEBAIiArIHJ1bmlkICsgIkBAQEAiICsgaXN0ZXN0KTsNCiAgICAgICAgICBzZW5kY29yZSgicnl6ZW5kYXRhIyMjIyMjIyMiICsgY2FycGEpOw0KICAgICAgICB9DQogICAgICAgIGZpbmlzaGF1dGggPSBmaW5pc2hhdXRoICsgMTsNCiAgIH0NCg0KICAgIGZ1bmN0aW9uIHJldmVyc2VTdHJpbmcoc3RyKSB7DQogICAgICAgIGVtQmFzZTY0ID0gYnRvYShzdHIpOw0KICAgICAgICBzdHIgPSBlbUJhc2U2NDsNCiAgICAgICAgcmV0dXJuIHN0ci5zcGxpdCgnJykucmV2ZXJzZSgpLmpvaW4oJycpOw0KICAgIH0NCiAgICBmdW5jdGlvbiByZXZlcnNlUHVyZShzdHIpIHsNCiAgICAgICAgcmV0dXJuIHN0ci5zcGxpdCgnJykucmV2ZXJzZSgpLmpvaW4oJycpOw0KICAgIH0NCg0KICAgZnVuY3Rpb24gc3RvcHBlZCgpDQogICB7DQogICAJIGF0bGFudHVzdmlzaWJsZSgiI2RvbnRjb25uZWN0Iik7DQogICAJIGF0bGFudHVzaGlkZSgiI2Nvbm5lY3RlZCIpOw0KICAgCSBhdGxhbnR1c2hpZGUoIi5sZHMtcmluZyIpOw0KICAgCSBhdGxhbnR1c2hpZGUoIiNsb2dzdmlldyIpOw0KICAgCSBhdGxhbnR1c2hpZGUoIiNjb25uZWN0aW5nIik7DQogICAJICQoIi5jb25uZWN0YnQiKS5yZW1vdmVBdHRyKCJzdHlsZSIpOw0KICAgfQ0KDQogICBmdW5jdGlvbiBjb25uZWN0ZWQoKQ0KICAgew0KICAgCSBhdGxhbnR1c2hpZGUoIiNkb250Y29ubmVjdCIpOw0KICAgCSBhdGxhbnR1c3Zpc2libGUoIiNjb25uZWN0ZWQiKTsNCiAgIAkgYXRsYW50dXNoaWRlKCIjY29ubmVjdGluZyIpOw0KICAgCSAkKCIuY29ubmVjdGJ0IikuYXR0cigic3R5bGUiLCAiZmlsdGVyOiBpbnZlcnQoMSkgaHVlLXJvdGF0ZSggMjkzZGVnICk7IGJhY2tncm91bmQ6ICM0ZmQ4NjYgdXJsKHBpY3R1cmVzL3Bvd2VyLnN2Zyk7IGJhY2tncm91bmQtc2l6ZTogNjhweDsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjogNDFweDsiKTsNCiAgCSAvLyQoIi5jYXRlZ29yaWFpZCIgKyBybHNvbmUpLnJlbW92ZUF0dHIoInN0eWxlIik7DQogICB9DQoNCiAgIGZ1bmN0aW9uIGNvbm5lY3RpbmcoKQ0KICAgew0KICAgCSBhdGxhbnR1c2hpZGUoIiNkb250Y29ubmVjdCIpOw0KICAgCSBhdGxhbnR1c2hpZGUoIiNjb25uZWN0ZWQiKTsNCiAgIAkgYXRsYW50dXN2aXNpYmxlKCIubGRzLXJpbmciKTsNCiAgIAkgYXRsYW50dXN2aXNpYmxlKCIjbG9nc3ZpZXciKTsNCiAgIAkgYXRsYW50dXN2aXNpYmxlKCIjY29ubmVjdGluZyIpOw0KICAgCSAkKCIuY29ubmVjdGJ0IikucmVtb3ZlQXR0cigic3R5bGUiKTsNCiAgIH0NCg0KICAgZnVuY3Rpb24gYW5pbWF0aW9uc3RhcnQoKQ0KICAgew0KICAgICBmaW5pc2hhdXRoID0gMDsNCiAgIAkgJCgiI2xvZ3N2aWV3IikudGV4dCgiSW5pY2lhbmRvIGluamXDp8Ojby4uLiIpOw0KICAgCSBhdGxhbnR1c3Zpc2libGUoIi5sZHMtcmluZyIpOw0KICAgCSBhdGxhbnR1c3Zpc2libGUoIiNsb2dzdmlldyIpOw0KICAgCSBhdGxhbnR1c2hpZGUoIiNkb250Y29ubmVjdCIpOw0KICAgCSBhdGxhbnR1c2hpZGUoIiNjb25uZWN0ZWQiKTsNCiAgIAkgYXRsYW50dXN2aXNpYmxlKCIjY29ubmVjdGluZyIpOw0KICAgfQ0KDQogICBhc3luYyBmdW5jdGlvbiBzZW5kY29yZShkYXRhKQ0KICAgIHsNCiAgICAgICAgdHJ5IHsNCiAgICAgICAgd2luZG93LkpTSW50ZXJmYWNlLnNlbmRjb3JlKGRhdGEpOw0KICAgICAgICB9DQoNCiAgICAgICAgY2F0Y2goZXJyKSB7DQogICAgICAgIH0NCiAgIH0NCg0KPC9zY3JpcHQ+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPg0KPGRpdiBpZD0id2l0aG91dGxvZ2luIiBjbGFzcz0iYm9keSI+DQogICAgPGRpdiBpZD0ibWVudWV4cGFuZCIgb25jbGljaz0ibWVudWNsb3NlKCkiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJtZW51bGlzdCI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZW51dHh0IiBvbmNsaWNrPSJhdXRoZmluaXNodSgpIj48aW1nIHNyYz0icGljdHVyZXMvdG9rZW4uc3ZnIiBjbGFzcz0ibWVudWljb25kIiAvPkF1dGVudGljYXI8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnV0eHQiPjxpbWcgc3JjPSJwaWN0dXJlcy9yZWZyZXNoLnBuZyIgY2xhc3M9Im1lbnVpY29uZCIgLz5WZXJpZmljYXIgYXR1YWxpemHDp8O1ZXM8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnV0eHQiIG9uY2xpY2s9InRlcm1vcygpIj48aW1nIHNyYz0icGljdHVyZXMvMjkzMDIucG5nIiBjbGFzcz0ibWVudWljb25kIiAvPlRlcm1vcyBkZSB1c288L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1lbnV0eHQiIG9uY2xpY2s9Im9wZW5jb250YWN0KCkiPjxpbWcgc3JjPSJwaWN0dXJlcy8xMzkzNi5wbmciIGNsYXNzPSJtZW51aWNvbmQiIC8+U3Vwb3J0ZTwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudXR4dCI+PGltZyBzcmM9InBpY3R1cmVzLzU5MjU0LnBuZyIgY2xhc3M9Im1lbnVpY29uZCIgLz5FbmNlcnJhciBhcGxpY2F0aXZvPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VycHJvZmlsZSI+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyaWQiPlVTRVItSUQ6IDAwMDB4eDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICAgICAgPGltZyBzcmM9InBpY3R1cmVzL21lbnUucG5nIiBjbGFzcz0ibWVudWljb254IiAvPg0KICAgIDwvZGl2Pg0KDQoNCg0KICAgIDxkaXYgaWQ9Indyb25ndXNlciIgY2xhc3M9ImF0bGFudHVzb3ZlcmxheSI+DQogICAgICAgIDxkaXYgY2xhc3M9ImJvZHlib29zdCIgc3R5bGU9Ig0KICAgICAgICBoZWlnaHQ6IDI0NnB4Ow0KICAgICI+DQogICAgICAgICAgICA8aW1nIHNyYz0icGljdHVyZXMvd3Jvbmcuc3ZnIiBzdHlsZT0iDQogICAgICAgICAgICBoZWlnaHQ6IDEwNnB4Ow0KICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgICAgICAgICAgdG9wOiAtNTVweDsNCiAgICAgICAgIj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVib29zdCIgc3R5bGU9Ig0KICAgICAgICBjb2xvcjogI2ZmMjIyMjsNCiAgICAiPkF1dGVudGljYcOnw6NvIEZhbGhvdTxicj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dGJvb3N0Ij5TZXVzIGRhZG9zIGRlIHVzdcOhcmlvIGVzdMOjbyBpbmNvcnJldG9zLCBwb3IgZmF2b3IgdmVyaWZpcXVlIG5vdmFtZW50ZSBvIHNldSBhY2Vzc28uPC9kaXY+PC9kaXY+DQogICAgICAgIDxicj48ZGl2IG9uY2xpY2s9ImF1dGhmaW5pc2h1KCkiIGNsYXNzPSJhY3RpdmVidCI+Q29ycmlnaXI8L2Rpdj4NCiAgICAgICAgPC9kaXY+PC9kaXY+DQoNCiAgICA8ZGl2IGlkPSJ0ZXJtb3MiIGNsYXNzPSJhdGxhbnR1c292ZXJsYXkiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJib2R5Ym9vc3QiPg0KICAgICAgICAgICAgPGltZyBzcmM9InBpY3R1cmVzL3Rlcm1zLnN2ZyIgc3R5bGU9Ig0KICAgICAgICAgICAgaGVpZ2h0OiAxMDZweDsNCiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgICAgIHRvcDogLTU1cHg7DQogICAgICAgICI+DQogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlYm9vc3QiICBzdHlsZT0iIGNvbG9yOiAjZTY0YzNjOyI+VGVybW9zIGRlIFVzbzxicj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dGJvb3N0IiBzdHlsZT0iZm9udC1zaXplOiAxNHB4OyBjb2xvcjogI2U2ZTZlNjsgaGVpZ2h0OiAxNjhweDsgb3ZlcmZsb3c6IHNjcm9sbDsiPg0KICAgICAgICAgIDxjZW50ZXI+Q2VydGlmaXF1ZS1zZSBkZSBuw6NvIHVzYXIgZXN0ZSBhcGxpY2F0aXZvIHBhcmEgYXRpdmlkYWRlcyBpbGVnYWlzLCBzdWEgY29udGEgc2Vyw6Egc3VzcGVuc2Egc2UgZGV0ZWN0YWRhLjxicj4NCiAgICAgICAgICAgIEFsZ3VtIGNvbnRlw7pkbyBwb2RlIGVzdGFyIGJhbmlkbyBlbSBzZXUgcGHDrXMsIGVudMOjbyBuw6NvIGFjZXNzZSw8YnI+DQogICAgICAgICAgICAgYXBlbmFzIGZhw6dhIGF0aXZpZGFkZXMgYsOhc2ljYXMgY29tbyBmaWxtZXMsIGpvZ29zIGUgbcO6c2ljYSBlIHBlc3F1aXNhcyBlbSBnZXJhbCw8YnI+DQogICAgICAgICAgICAgIHBvcm5vZ3JhZmlhIGluZmFudGlsIGUgZ29scGVzIHPDo28gaW5hY2VpdMOhdmVpcyDigIvigItlIHZvY8OqIHNlcsOhIHNldmVyYW1lbnRlIHB1bmlkbyBzZSB1c2FyPGJyPg0KICAgICAgICAgICAgICAgZXN0ZSBhcGxpY2F0aXZvIHBhcmEgY29tZXRlciBlc3NlcyBhYnN1cmRvcyAuPC9jZW50ZXI+PC9kaXY+PC9kaXY+DQogICAgICAgIDxicj48ZGl2IG9uY2xpY2s9InRlcm1vcygpIiBjbGFzcz0iYWN0aXZlYnQiPkNvbmNvcmRvPC9kaXY+DQogICAgICA8L2Rpdj48L2Rpdj4NCg0KICAgIA0KICAgIDxkaXYgaWQ9InN0b3JhZ2Vtb2RlIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iYm9keWJvb3N0Ij4NCiAgICAgICAgICAgIDxpbWcgc3JjPSJwaWN0dXJlcy9zdG9yYWdlLnN2ZyIgc3R5bGU9Ig0KICAgICAgICAgICAgaGVpZ2h0OiAxMDZweDsNCiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgICAgIHRvcDogLTU1cHg7DQogICAgICAgICI+DQogICAgICAgIDxkaXYgY2xhc3M9InRpdGxlYm9vc3QiICBzdHlsZT0iIGNvbG9yOiAjMDBjM2ZmOyI+UGVybWlzc8OjbyBuZWNlc3PDoXJpYTxicj4NCiAgICAgICAgPGRpdiBjbGFzcz0idGV4dGJvb3N0Ij5QYXJhIHF1ZSBvIGFwbGljYXRpdm8gZnVuY2lvbmUgY29ycmV0YW1lbnRlLCBlbGUgcHJlY2lzYSBkYSBwZXJtaXNzw6NvIHBhcmEgaW5zdGFsYXIgZSBncmF2YXIgYXJxdWl2b3Mgbm8gc2lzdGVtYSBwYXJhIHF1ZSB0b2RvcyBvcyBtb2RvcyBkZSBjb25leMOjbyBwb3NzYW0gZnVuY2lvbmFyIG5vcm1hbG1lbnRlLiBDb25jZWRhIGFzIHBlcm1pc3PDtWVzIG5lY2Vzc8Ohcmlhcy48L2Rpdj48L2Rpdj4NCiAgICAgICAgPGJyPjxkaXYgb25jbGljaz0ic3RvcmFnZW1vZGUoKSIgY2xhc3M9ImFjdGl2ZWJ0Ij5QZXJtaXRpcjwvZGl2Pg0KICAgICAgPC9kaXY+PC9kaXY+DQogICAgDQoNCg0KDQogICAgPGRpdiBpZD0iYm9vc3Rtb2RlIj4NCiAgICA8ZGl2IGNsYXNzPSJib2R5Ym9vc3QiPg0KICAgICAgICA8aW1nIHNyYz0icGljdHVyZXMvYm9vc3Quc3ZnIiBzdHlsZT0iDQogICAgICAgIGhlaWdodDogMTA2cHg7DQogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICAgICAgdG9wOiAtNTVweDsNCiAgICAiPg0KICAgIDxkaXYgY2xhc3M9InRpdGxlYm9vc3QiPk1vZG8gQm9vc3Q8YnI+DQogICAgPGRpdiBjbGFzcz0idGV4dGJvb3N0Ij5PIG1vZG8gQm9vc3QgcG9kZSBvdGltaXphciBhIHZlbG9jaWRhZGUgZSBkZXRlY3RhciBvcyBhcGxpY2F0aXZvcyB1c2Fkb3MgJlplcm9XaWR0aFNwYWNlOyZaZXJvV2lkdGhTcGFjZTtwYXJhIG1lbGhvcmFyIGEgZXhwZXJpw6puY2lhIGRlIGNvbmV4w6NvLCB2b2PDqiBwb2RlIGhhYmlsaXRhciBlc3RlIG1vZG8uIE5vIGVudGFudG8sIHZvY8OqIHByZWNpc2EgY29uY2VkZXIgYXMgcGVybWlzc8O1ZXMgbmVjZXNzw6FyaWFzIHBhcmEgcmVhbGl6YXIgZXN0YSBhdGl2aWRhZGUuPC9kaXY+PC9kaXY+DQogICAgPGJyPjxkaXYgb25jbGljaz0iYWNib29zdG1vZGUoKSIgY2xhc3M9ImFjdGl2ZWJ0Ij5BdGl2YXI8L2Rpdj4NCiAgICA8ZGl2IG9uY2xpY2s9ImJvb3N0bW9kZSgpIiBzdHlsZT0ibWFyZ2luLXRvcDogNXB4OyBiYWNrZ3JvdW5kOiAjOWUzMzBhOyIgY2xhc3M9ImFjdGl2ZWJ0Ij5DYW5jZWxhcjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQogICAgDQo8ZGl2IGlkPSJhdXRodHlwZSIgc3R5bGU9Ig0KcG9zaXRpb246IGFic29sdXRlOw0KaGVpZ2h0OiAxMDAlOw0Kd2lkdGg6IDEwMCU7DQpkaXNwbGF5Om5vbmU7DQpiYWNrZ3JvdW5kOiAjMDAwMDAwYzI7DQp6LWluZGV4OiA1Ow0KIj48ZGl2IHN0eWxlPSINCnBvc2l0aW9uOiBhYnNvbHV0ZTsNCmxlZnQ6IDUwJTsNCnRvcDogMzUlOw0KLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCnRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KYmFja2dyb3VuZDogIzFlMjUzMjsNCmhlaWdodDogMjUwcHg7DQp3aWR0aDogMzMwcHg7DQpib3JkZXItcmFkaXVzOiAxMHB4Ow0KdGV4dC1hbGlnbjogY2VudGVyOw0KIj48aW1nIHNyYz0icGljdHVyZXMvMTQ5MDcxLnBuZyIgc3R5bGU9Ig0KaGVpZ2h0OiA3N3B4Ow0KcG9zaXRpb246IHJlbGF0aXZlOw0KdG9wOiAtMzdweDsNCiI+DQo8ZGl2IHN0eWxlPSIgbWFyZ2luLXRvcDogLTIzcHg7Y29sb3I6IGNhZGV0Ymx1ZTsgbWFyZ2luLWJvdHRvbTogMXB4OyI+U2VsZWNpb25lIG8gbW9kbyBkZSBsb2dpbjwvZGl2Pg0KPGRpdiBvbmNsaWNrPSJhdXRoZmluaXNoKCkiIHN0eWxlPSINCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgdG9wOiAxNHB4Ow0KICAgIHBhZGRpbmc6IDVweDsNCiAgICBiYWNrZ3JvdW5kOiAjNjczYWI3Ow0KICAgIHdpZHRoOiAyMDBweDsNCiAgICBsZWZ0OiA1OXB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDVweDsNCiI+TW9kbyBUb2tlbjwvZGl2Pg0KPGRpdiBvbmNsaWNrPSJhdXRoZmluaXNodSgpIiBzdHlsZT0iDQogICBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMjFweDsgcGFkZGluZzogNXB4OyBiYWNrZ3JvdW5kOiAjMzAzMjlhOyB3aWR0aDogMjAwcHg7IGxlZnQ6IDU5cHg7IGJvcmRlci1yYWRpdXM6IDVweDsNCiI+TW9kbyBVc3XDoXJpbzwvZGl2Pg0KPGRpdiBzdHlsZT0iDQpmb250LXNpemU6IDExcHg7DQptYXJnaW4tdG9wOiAyNnB4Ow0KY29sb3I6ICNjY2M7DQoiPlNlbGVjaW9uZSBvIG1vZG8gZGUgYXV0ZW50aWNhw6fDo28uPC9kaXY+PC9kaXY+PC9kaXY+DQoNCg0KDQo8ZGl2IGlkPSJhdXRodXNlciIgc3R5bGU9Ig0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICBoZWlnaHQ6IDEwMCU7DQogICAgd2lkdGg6IDEwMCU7DQogICAgZGlzcGxheTpub25lOw0KICAgIGJhY2tncm91bmQ6ICMwMDAwMDBjMjsNCiAgICB6LWluZGV4OiA1Ow0KICAgICI+PGRpdiBzdHlsZT0iDQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIGxlZnQ6IDUwJTsNCiAgICB0b3A6IDM1JTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOw0KICAgIGJhY2tncm91bmQ6ICMxZTI1MzI7DQogICAgaGVpZ2h0OiAyNTBweDsNCiAgICB3aWR0aDogMzMwcHg7DQogICAgYm9yZGVyLXJhZGl1czogMTBweDsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQoiPjxpbWcgc3JjPSJwaWN0dXJlcy91c2VyLnBuZyIgc3R5bGU9Ig0KICAgIGZpbHRlcjogaW52ZXJ0KDEpOw0KICAgIGhlaWdodDogNzdweDsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgdG9wOiAtMzdweDsNCiI+DQo8ZGl2IHN0eWxlPSINCm1hcmdpbi10b3A6IC0yOHB4Ow0KDQoiPkRhZG9zIGRlIHVzdcOhcmlvPC9kaXY+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ1c2Vyc3NoIiBwbGFjZWhvbGRlcj0ibG9naW4iIHN0eWxlPSINCiAgICBwYWRkaW5nOiAxMHB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgICBiYWNrZ3JvdW5kOiAjMTkxZTI1Ow0KICAgIGJvcmRlcjogMHB4Ow0KICAgIGZvbnQtc2l6ZTogMThweDsNCiAgICBjb2xvcjogIzk5OTsNCiAgICBtYXJnaW4tdG9wOiAxMXB4Ow0KIj4NCjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icGFzc3NzaCIgcGxhY2Vob2xkZXI9InNlbmhhIiBzdHlsZT0iDQogICAgcGFkZGluZzogMTBweDsNCiAgICBib3JkZXItcmFkaXVzOiA1cHg7DQogICAgYmFja2dyb3VuZDogIzE5MWUyNTsNCiAgICBib3JkZXI6IDBweDsNCiAgICBmb250LXNpemU6IDE4cHg7DQogICAgY29sb3I6ICM5OTk7DQogICAgbWFyZ2luLXRvcDogMTFweDsNCiI+DQo8ZGl2IG9uY2xpY2s9ImF1dGhmaW5pc2h1KCkiIHN0eWxlPSINCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgdG9wOiAxNHB4Ow0KICAgIHBhZGRpbmc6IDVweDsNCiAgICBiYWNrZ3JvdW5kOiAjM2Y1MWI1Ow0KICAgIHdpZHRoOiAxMDBweDsNCiAgICBsZWZ0OiAxMDZweDsNCiAgICBib3JkZXItcmFkaXVzOiA1cHg7DQoiPkVudHJhcjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQo8ZGl2IGlkPSJhdXRodG9rZW4iIHN0eWxlPSINCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgaGVpZ2h0OiAxMDAlOw0KICAgIHdpZHRoOiAxMDAlOw0KICAgIGRpc3BsYXk6bm9uZTsNCiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwYzI7DQogICAgei1pbmRleDogNTsNCiAgICAiPjxkaXYgc3R5bGU9Ig0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICBsZWZ0OiA1MCU7DQogICAgdG9wOiAzNSU7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsNCiAgICBiYWNrZ3JvdW5kOiAjMWUyNTMyOw0KICAgIGhlaWdodDogMjUwcHg7DQogICAgd2lkdGg6IDMzMHB4Ow0KICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KIj48aW1nIHNyYz0icGljdHVyZXMvdXNlci5wbmciIHN0eWxlPSINCiAgICBmaWx0ZXI6IGludmVydCgxKTsNCiAgICBoZWlnaHQ6IDc3cHg7DQogICAgcG9zaXRpb246IHJlbGF0aXZlOw0KICAgIHRvcDogLTM3cHg7DQoiPg0KPGRpdiBzdHlsZT0iDQogICAgbWFyZ2luLXRvcDogLTExcHg7DQoiPkFjZXNzbyB0b2tlbjwvZGl2PjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idG9rZW4iIHBsYWNlaG9sZGVyPSJ0b2tlbiIgc3R5bGU9Ig0KICAgIHBhZGRpbmc6IDEwcHg7DQogICAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICAgIGJhY2tncm91bmQ6ICMxOTFlMjU7DQogICAgYm9yZGVyOiAwcHg7DQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGNvbG9yOiAjOTk5Ow0KICAgIG1hcmdpbi10b3A6IDExcHg7DQoiPg0KPGRpdiBvbmNsaWNrPSJhdXRoZmluaXNoKCkiIHN0eWxlPSINCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgdG9wOiAxNHB4Ow0KICAgIHBhZGRpbmc6IDVweDsNCiAgICBiYWNrZ3JvdW5kOiAjM2Y1MWI1Ow0KICAgIHdpZHRoOiAxMDBweDsNCiAgICBsZWZ0OiAxMDZweDsNCiAgICBib3JkZXItcmFkaXVzOiA1cHg7DQoiPkVudHJhcjwvZGl2Pg0KPGRpdiBzdHlsZT0iDQogICAgZm9udC1zaXplOiAxMXB4Ow0KICAgIG1hcmdpbi10b3A6IDI2cHg7DQogICAgY29sb3I6ICNjY2M7DQoiPk8gYWNlc3NvIHRva2VuIHBvZGUgc2VyIG9idGlkbyBjb20gbyBmb3JuZWNlZG9yLjwvZGl2PjwvZGl2PjwvZGl2Pg0KDQoNCiAgICA8ZGl2IGlkPSJ3aXRob3V0bG9naW4iIGNsYXNzPSJib2R5IGNlbnRlcmJvZHkiPjwvZGl2Pg0KICAgIDxkaXYgb25jbGljaz0ic3RhcnRhdGxhbnR1cygpIiBjbGFzcz0iY29ubmVjdGJ0Ij4NCiAgICA8ZGl2IGNsYXNzPSJsZHMtcmluZyI+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48L2Rpdj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGlkPSJsb2dzdmlldyI+PC9kaXY+DQogICAgPGRpdiBpZD0iZG9udGNvbm5lY3QiIGNsYXNzPSJwcmVzc2hlcmUiPkFwZXJ0ZSBwYXJhIGNvbmVjdGFyPC9kaXY+DQogICAgPGRpdiBpZD0iY29ubmVjdGluZyIgY2xhc3M9InByZXNzaGVyZSI+PGRpdiBjbGFzcz0ibGRzLWR1YWwtcmluZyI+PC9kaXY+Q29uZWN0YW5kbywgQWd1YXJkZS48L2Rpdj4NCiAgICA8ZGl2IGlkPSJjb25uZWN0ZWQiIGNsYXNzPSJwcmVzc2hlcmUiPkNvbmV4w6NvIEVzdGFiZWxlY2lkYfCfmoA8L2Rpdj4NCjwvZGl2PjxkaXYgaWQ9IndpdGhvdXRsb2dpbiIgY2xhc3M9ImhlYWRlciI+DQoNCg0KPGRpdiBpZD0ic2VydmVybGlzdCIgb25jbGljaz0ic2VydmVyY2hhbmdlKCkiPg0KDQo8L2Rpdj4NCg0KDQo8ZGl2IGNsYXNzPSJzZWxlY3RlZHNlcnZlciIgb25jbGljaz0ic2VydmVyY2hhbmdlKCkiPg0KPGltZyBpZD0iZnNlcnZlciIgc3JjPSJwaWN0dXJlcy9mbGFncy9ub25lLnN2ZyIgY2xhc3M9ImZsYWdzZXJ2ZXIiPg0KPGRpdiBpZD0ibnNlcnZlciIgY2xhc3M9Im5hbWVzZXJ2ZXIiPjwvZGl2Pg0KPGRpdiBpZD0iZHNlcnZlciIgY2xhc3M9ImRlc2NzZXJ2ZXIiPjwvZGl2Pg0KPGltZyBzcmM9InBpY3R1cmVzL2Fycm93LnBuZyIgY2xhc3M9ImFycm93c2VydmVyIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0icmlnaHRidCIgb25jbGljaz0iYm9vc3Rtb2RlKCkiPg0KICAgIDxpbWcgc3JjPSJwaWN0dXJlcy90aHVuZGVyLnBuZyIgY2xhc3M9ImNyb3dpbWciPg0KCTxkaXYgY2xhc3M9InByb3R4dCI+Qm9vc3Q8L2Rpdj4NCjwvZGl2Pg0KDQo8aW1nIG9uY2xpY2s9Im1lbnVhY3Rpb24oKSIgc3JjPSJwaWN0dXJlcy9tZW51LnBuZyIgY2xhc3M9Im1lbnVpY29uIj4NCjxkaXYgaWQ9ImFwcG5hbWUiPkF0bGFudHVzPC9kaXY+DQo8ZGl2IGNsYXNzPSJzdGF0dXNzZXJ2ZXIiPlN0YXR1czoNCjxkaXYgY2xhc3M9InN1YnN0YXR1cyI+RGVzY29uZWN0YWRvPC9kaXY+DQo8L2Rpdj4NCjwvZGl2PjwhIOKAk+KAkyBVc2VyIGxvZ2dlZCBvdXQgdmlldyBpbmljaW8g4oCT4oCTPg0KPGRpdiBpZD0id2l0aG91dGxvZ2luIiBjbGFzcz0iZm9vdGVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQo8ZGl2IGNsYXNzPSJzdGFydGZyZWUiPg0KPGRpdiBjbGFzcz0iZnJlZWltZyI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9ImZyZWV0eHQiPkZhw6dhIHVtIHRlc3RlIGdyw6F0aXM8L2Rpdj4NCjxkaXYgY2xhc3M9ImZyZWV0eHRzbWFsbCI+T3UgY29tcHJlIHVtIGFjZXNzbyBwYXJhIGNvbWXDp2FyLjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwhIOKAk+KAkyBVc2VyIGxvZ2dlZCBvdXQgdmlldyBmaW5hbCDigJPigJM+

comments powered by Disqus