Argument 1 passed to func() must be of the type array, null given, called in data://text/plain;base64,PCEtLSBTTVBfRFlOQU1JQ19QQUdFIERJU1BMQVlfRVJST1JTPU9OIE5BTUU9aW5zZXJ0IC0tPg0KPD9waHANCnJlcXVpcmUoInBocC9Ib2xpZGF5LnBocCIpOw0KDQokZm9ybV91cmwgPSAiaHR0cHM6Ly9yZWcxOC5zbXAubmUuanAvcmVnaXN0L2lzP1NNUEZPUk09cWFwaS1sY3BobmUtMmRlOGZiNmMyYmUwNTAxM2UyYzM1ZmY0OTZmYmNiYTAiOw0KJGVudHJhbmNlX3VybCA9ICJodHRwczovL3JlZzE4LnNtcC5uZS5qcC9yZWdpc3QvaXM/U01QRk9STT1xYXBpLWxjcGZrZi1hYTQ0ODBhNGY5M2ZjMTcyODEyNjliZGRlZTBjZTE3MiI7DQokZm9ybV90eXBlID0gIm9yZ2FuaWMiOw0KDQokZ2VuZGVyID0gJFNQSVJBTC0+Z2V0UGFyYW0oImdlbmRlciIpOw0KJGJpcnRoRGF5eSA9ICRTUElSQUwtPmdldFBhcmFtKCJiaXJ0aERheTp5Iik7DQokYmlydGhEYXltID0gJFNQSVJBTC0+Z2V0UGFyYW0oImJpcnRoRGF5Om0iKTsNCiRiaXJ0aERheWQgPSAkU1BJUkFMLT5nZXRQYXJhbSgiYmlydGhEYXk6ZCIpOw0KJHN0b3JlSWQgPSAkU1BJUkFMLT5nZXRQYXJhbSgic3RvcmVJZCIpOw0KJGRhdGUgPSAkU1BJUkFMLT5nZXRQYXJhbSgiZGF0ZSIpOw0KJHN0YXJ0dGltZSA9ICRTUElSQUwtPmdldFBhcmFtKCJzdGFydFRpbWUiKTsNCiRlbmR0aW1lID0gJFNQSVJBTC0+Z2V0UGFyYW0oImVuZFRpbWUiKTsNCiRpcnJlZ3VsYXIyID0gJFNQSVJBTC0+Z2V0UGFyYW0oImlycmVndWxhciIpOw0KJEhvcGVEYXRlMXN0ID0gJFNQSVJBTC0+Z2V0UGFyYW0oIjFzdEhvcGVEYXRlIik7DQokSG9wZURhdGUybmQgPSAkU1BJUkFMLT5nZXRQYXJhbSgiMm5kSG9wZURhdGUiKTsNCiRIb3BlRGF0ZTNyZCA9ICRTUElSQUwtPmdldFBhcmFtKCIzcmRIb3BlRGF0ZSIpOw0KDQogICAgICRkYiA9ICRTUElSQUwtPmdldERhdGFCYXNlKCJzdG9yZVNjaGVkdWxlREIiKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoImlkIiwgdHJ1ZSk7DQogICAgICRkYi0+YWRkU2VsZWN0RmllbGRzKCJzdG9yZVNjaGVkdWxlSWQiLCAic3RvcmVJZCIsICJkYXRlIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsImVsYXBzZWRUaW1lIiwieFZpZXdGbGciKTsNCiAgICAgJHJlc3VsdDEgPSAkZGItPmRvU2VsZWN0TG9vcCgpOw0KICAgICAgZm9yZWFjaCAoJHJlc3VsdDFbImRhdGEiXSBhcyAkdmFsdWUxKSB7DQogICRkYl9kYXRlW10gPSAkdmFsdWUxOw0KIH0NCg0KICAgICAkZGIgPSAkU1BJUkFMLT5nZXREYXRhQmFzZSgic3RvcmVUYWJsZVZpZXdEQiIpOw0KICAgICAkZGItPmFkZFNvcnRGaWVsZCgiYXJlYUlkIiwgdHJ1ZSk7DQogICAgICRkYi0+YWRkU2VsZWN0RmllbGRzKCJhcmVhSWQiLCJhcmVhTmFtZSIsInN0b3JlSWQiLCJzdG9yZU5hbWUiKTsNCiAgICAgJHJlc3VsdDIgPSAkZGItPmRvU2VsZWN0TG9vcCgpOw0KICAgICAgZm9yZWFjaCAoJHJlc3VsdDJbImRhdGEiXSBhcyAkdmFsdWUyKSB7DQogICRzdG9yZVRhYmxlW10gPSAkdmFsdWUyOw0KIH0NCiRyZXMyID0gYXJyYXkoKTsNCi8v54q25oWL44OB44Kn44OD44KvDQokY2hlY2tfZm9ybSA9ICRTUElSQUwtPmdldFBhcmFtKCJjaGVjayIpOw0KDQpmdW5jdGlvbiBnZXRXZWVrU3RhcnRBbmRFbmREYXRlKCRjaGVja0RhdGEpDQp7DQoNCiAgJHdlZWtObyA9IGRhdGUoJ3cnLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpOw0KICBpZigkd2Vla05vID09ICIwIil7JHdlZWtObyA9ICR3ZWVrTm8gKzc7fQ0KDQogIC8vIOaciOabnOaXpTEzDQogICRtb24gICAgICAgICAgPSAtNiAtICR3ZWVrTm87DQogICRyZXN1bHRbJ21vbiddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyRtb259IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOaciCkiOw0KICAkcmVzdWx0Wydtb24nXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JG1vbn0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0Wydtb24nXVsxXSA9ICRyZXN1bHRbJ21vbiddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOeBq+abnOaXpQ0KICAkdHVlICAgICAgICAgID0gLTUgLSAkd2Vla05vOw0KICAkcmVzdWx0Wyd0dWUnXVswXSA9IGRhdGUoJ24vaicsIHN0cnRvdGltZSgiK3skdHVlfSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKS4iICjngaspIjsNCiAgJHJlc3VsdFsndHVlJ11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyR0dWV9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsndHVlJ11bMV0gPSAkcmVzdWx0Wyd0dWUnXVsxXS0+aG9saWRheSgpOw0KICAvLyDmsLTmm5zml6UNCiAgJHdlZCAgICAgICAgICA9IC00IC0gJHdlZWtObzsNCiAgJHJlc3VsdFsnd2VkJ11bMF0gID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyR3ZWR9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOawtCkiOw0KICAkcmVzdWx0Wyd3ZWQnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHdlZH0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0Wyd3ZWQnXVsxXSA9ICRyZXN1bHRbJ3dlZCddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOacqOabnOaXpQ0KICAkdGh1ICAgICAgICAgID0gLTMgLSAkd2Vla05vOw0KICAkcmVzdWx0Wyd0aHUnXVswXSA9IGRhdGUoJ24vaicsIHN0cnRvdGltZSgiK3skdGh1fSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKS4iICjmnKgpIjsNCiAgJHJlc3VsdFsndGh1J11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyR0aHV9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsndGh1J11bMV0gPSAkcmVzdWx0Wyd0aHUnXVsxXS0+aG9saWRheSgpOw0KICAvLyDph5Hmm5zml6UNCiAgJGZyaSAgICAgICAgICA9IC0yIC0gJHdlZWtObzsNCiAgJHJlc3VsdFsnZnJpJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JGZyaX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo6YeRKSI7DQogICRyZXN1bHRbJ2ZyaSddWzFdID0gbmV3IEhvbGlkYXlEYXRlVGltZShkYXRlKCdZLW4taicsIHN0cnRvdGltZSgiK3skZnJpfSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKSk7DQogICRyZXN1bHRbJ2ZyaSddWzFdID0gJHJlc3VsdFsnZnJpJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g5Zyf5puc5pelDQogICRzYXQgICAgICAgICAgPSAtMSAtICR3ZWVrTm87DQogICRyZXN1bHRbJ3NhdCddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyRzYXR9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOWcnykiOw0KICAkcmVzdWx0WydzYXQnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHNhdH0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0WydzYXQnXVsxXSA9ICRyZXN1bHRbJ3NhdCddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOaXpeabnOaXpQ0KICAkc3VuICAgICAgICAgID0gMCAtICR3ZWVrTm87DQogICRyZXN1bHRbJ3N1biddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyRzdW59IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOaXpSkiOw0KICAkcmVzdWx0WydzdW4nXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHN1bn0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0WydzdW4nXVsxXSA9ICRyZXN1bHRbJ3N1biddWzFdLT5ob2xpZGF5KCk7DQoNCiAgLy8g5pyI5puc5pelDQogICRtb24gICAgPSAkbW9uICs3Ow0KICAkcmVzdWx0Wydtb24yJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JG1vbn0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo5pyIKSI7DQogICRyZXN1bHRbJ21vbjInXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JG1vbn0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0Wydtb24yJ11bMV0gPSAkcmVzdWx0Wydtb24yJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g54Gr5puc5pelDQogICR0dWUgICAgICAgICAgPSAkdHVlICs3Ow0KICAkcmVzdWx0Wyd0dWUyJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JHR1ZX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo54GrKSI7DQogICRyZXN1bHRbJ3R1ZTInXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHR1ZX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0Wyd0dWUyJ11bMV0gPSAkcmVzdWx0Wyd0dWUyJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g5rC05puc5pelDQogICR3ZWQgICAgICAgICAgPSAkd2VkICs3Ow0KICAkcmVzdWx0Wyd3ZWQyJ11bMF0gID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyR3ZWR9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOawtCkiOw0KICAkcmVzdWx0Wyd3ZWQyJ11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyR3ZWR9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsnd2VkMiddWzFdID0gJHJlc3VsdFsnd2VkMiddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOacqOabnOaXpQ0KICAkdGh1ICAgICAgICAgID0gJHRodSArNzsNCiAgJHJlc3VsdFsndGh1MiddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyR0aHV9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOacqCkiOw0KICAkcmVzdWx0Wyd0aHUyJ11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyR0aHV9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsndGh1MiddWzFdID0gJHJlc3VsdFsndGh1MiddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOmHkeabnOaXpQ0KICAkZnJpICAgICAgICAgID0gJGZyaSArNzsNCiAgJHJlc3VsdFsnZnJpMiddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyRmcml9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOmHkSkiOw0KICAkcmVzdWx0WydmcmkyJ11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyRmcml9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsnZnJpMiddWzFdID0gJHJlc3VsdFsnZnJpMiddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOWcn+abnOaXpQ0KICAkc2F0ICAgICAgICAgID0gJHNhdCArNzsNCiAgJHJlc3VsdFsnc2F0MiddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyRzYXR9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOWcnykiOw0KICAkcmVzdWx0WydzYXQyJ11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyRzYXR9IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsnc2F0MiddWzFdID0gJHJlc3VsdFsnc2F0MiddWzFdLT5ob2xpZGF5KCk7DQogIC8vIOaXpeabnOaXpQ0KICAkc3VuICAgICAgICAgID0gJHN1biArNzsNCiAgJHJlc3VsdFsnc3VuMiddWzBdID0gZGF0ZSgnbi9qJywgc3RydG90aW1lKCIreyRzdW59IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpLiIgKOaXpSkiOw0KICAkcmVzdWx0WydzdW4yJ11bMV0gPSBuZXcgSG9saWRheURhdGVUaW1lKGRhdGUoJ1ktbi1qJywgc3RydG90aW1lKCIreyRzdW59IGRheSIsIHN0cnRvdGltZSgkY2hlY2tEYXRhKSkpKTsNCiAgJHJlc3VsdFsnc3VuMiddWzFdID0gJHJlc3VsdFsnc3VuMiddWzFdLT5ob2xpZGF5KCk7DQogIA0KICAvLyDmnIjmm5zml6UNCiAgJG1vbiAgICA9ICRtb24gKzc7DQogICRyZXN1bHRbJ21vbjMnXVswXSA9IGRhdGUoJ24vaicsIHN0cnRvdGltZSgiK3skbW9ufSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKS4iICjmnIgpIjsNCiAgJHJlc3VsdFsnbW9uMyddWzFdID0gbmV3IEhvbGlkYXlEYXRlVGltZShkYXRlKCdZLW4taicsIHN0cnRvdGltZSgiK3skbW9ufSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKSk7DQogICRyZXN1bHRbJ21vbjMnXVsxXSA9ICRyZXN1bHRbJ21vbjMnXVsxXS0+aG9saWRheSgpOw0KICAvLyDngavmm5zml6UNCiAgJHR1ZSAgICAgICAgICA9ICR0dWUgKzc7DQogICRyZXN1bHRbJ3R1ZTMnXVswXSA9IGRhdGUoJ24vaicsIHN0cnRvdGltZSgiK3skdHVlfSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKS4iICjngaspIjsNCiAgJHJlc3VsdFsndHVlMyddWzFdID0gbmV3IEhvbGlkYXlEYXRlVGltZShkYXRlKCdZLW4taicsIHN0cnRvdGltZSgiK3skdHVlfSBkYXkiLCBzdHJ0b3RpbWUoJGNoZWNrRGF0YSkpKSk7DQogICRyZXN1bHRbJ3R1ZTMnXVsxXSA9ICRyZXN1bHRbJ3R1ZTMnXVsxXS0+aG9saWRheSgpOw0KICAvLyDmsLTmm5zml6UNCiAgJHdlZCAgICAgICAgICA9ICR3ZWQgKzc7DQogICRyZXN1bHRbJ3dlZDMnXVswXSAgPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JHdlZH0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo5rC0KSI7DQogICRyZXN1bHRbJ3dlZDMnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHdlZH0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0Wyd3ZWQzJ11bMV0gPSAkcmVzdWx0Wyd3ZWQzJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g5pyo5puc5pelDQogICR0aHUgICAgICAgICAgPSAkdGh1ICs3Ow0KICAkcmVzdWx0Wyd0aHUzJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JHRodX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo5pyoKSI7DQogICRyZXN1bHRbJ3RodTMnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHRodX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0Wyd0aHUzJ11bMV0gPSAkcmVzdWx0Wyd0aHUzJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g6YeR5puc5pelDQogICRmcmkgICAgICAgICAgPSAkZnJpICs3Ow0KICAkcmVzdWx0WydmcmkzJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JGZyaX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo6YeRKSI7DQogICRyZXN1bHRbJ2ZyaTMnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JGZyaX0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0WydmcmkzJ11bMV0gPSAkcmVzdWx0WydmcmkzJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g5Zyf5puc5pelDQogICRzYXQgICAgICAgICAgPSAkc2F0ICs3Ow0KICAkcmVzdWx0WydzYXQzJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JHNhdH0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo5ZyfKSI7DQogICRyZXN1bHRbJ3NhdDMnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHNhdH0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0WydzYXQzJ11bMV0gPSAkcmVzdWx0WydzYXQzJ11bMV0tPmhvbGlkYXkoKTsNCiAgLy8g5pel5puc5pelDQogICRzdW4gICAgICAgICAgPSAkc3VuICs3Ow0KICAkcmVzdWx0WydzdW4zJ11bMF0gPSBkYXRlKCduL2onLCBzdHJ0b3RpbWUoIit7JHN1bn0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkuIiAo5pelKSI7DQogICRyZXN1bHRbJ3N1bjMnXVsxXSA9IG5ldyBIb2xpZGF5RGF0ZVRpbWUoZGF0ZSgnWS1uLWonLCBzdHJ0b3RpbWUoIit7JHN1bn0gZGF5Iiwgc3RydG90aW1lKCRjaGVja0RhdGEpKSkpOw0KICAkcmVzdWx0WydzdW4zJ11bMV0gPSAkcmVzdWx0WydzdW4zJ11bMV0tPmhvbGlkYXkoKTsNCiAgcmV0dXJuICRyZXN1bHQ7DQp9DQoNCmZ1bmN0aW9uIHNlYXJjaE1lbnMoJHN0YWZmU2NoZWR1bGUsJFNjaGVkdWxlRGF0ZSwgJHN0b3JlSWQpDQp7DQogICAgJGZpbHRlciA9IGZ1bmN0aW9uICgkY29uZGl0aW9ucykgew0KICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCR2YWx1ZSkgdXNlICgkY29uZGl0aW9ucykgew0KICAgICAgICAgICAgcmV0dXJuICR2YWx1ZVsic3RvcmVJZCJdID09PSAkY29uZGl0aW9uc1sic3RvcmVJZCJdICYmICR2YWx1ZVsiZGF0ZSJdID09PSAkY29uZGl0aW9uc1siZGF0ZSJdOw0KICAgICAgICB9Ow0KICAgIH07DQogICAgJGNvbmRpdGlvbnMgPSBbDQogICAgICAgICJzdG9yZUlkIiA9PiAkc3RvcmVJZCwNCiAgICAgICAgImRhdGUiID0+ICRTY2hlZHVsZURhdGUNCiAgICBdOw0KICAgIHJldHVybiBhcnJheV9maWx0ZXIoJHN0YWZmU2NoZWR1bGUsICRmaWx0ZXIoJGNvbmRpdGlvbnMpKTsNCn0NCg0KaWYoJGNoZWNrX2Zvcm0gPT0gIjAiKXsNCi8v44K544Kx44K444Ol44O844Or5YaN5Y+W5b6XDQoNCmZ1bmN0aW9uIGZ1bmMoYXJyYXkgJGFycikNCnsNCiAgICAkbWF4ID0gbWluKCRhcnIpOw0KICAgICRhcnJGaW5kID0gYXJyYXlfa2V5cygkYXJyLCAkbWF4KTsNCiAgICAka2V5ID0gYXJyYXlfcmFuZCgkYXJyRmluZCwgMSk7DQogICAgcmV0dXJuICRhcnJGaW5kWyRrZXldOw0KfQ0KDQppZigkaXJyZWd1bGFyMiA9PSAwKXsNCiAgICAgJGRiID0gJFNQSVJBTC0+Z2V0RGF0YUJhc2UoInN0YWZmcmFua3ZpZXdEQiIpOw0KICAgICAkZGItPmFkZFNvcnRGaWVsZCgiaWQiLCB0cnVlKTsNCiAgICAgJGRiLT5hZGRTZWxlY3RGaWVsZHMoInN0YWZmU2NoZWR1bGVJZCIsInN0b3JlSWQiLCJib290aElkIiwiZGF0ZSIsInN0YWZmSWQiLCJzdGFmZlJhbmsiLCJzdGFydFRpbWUxIiwiZW5kVGltZTEiLCJzdGFydFRpbWUyIiwiZW5kVGltZTIiLCJzdGFydFRpbWUzIiwiZW5kVGltZTMiLCJzdGFydFRpbWU0IiwiZW5kVGltZTQiLCJzdGFydFRpbWU1IiwiZW5kVGltZTUiLCJzdGFydFRpbWU2IiwiZW5kVGltZTYiLCJzdGFydFRpbWU3IiwiZW5kVGltZTciLCJzdGFydFRpbWU4IiwiZW5kVGltZTgiLCJzdGFydFRpbWU5IiwiZW5kVGltZTkiLCJzdGFydFRpbWUxMCIsImVuZFRpbWUxMCIsInN0YXJ0VGltZTExIiwiZW5kVGltZTExIiwic3RhcnRUaW1lMTIiLCJlbmRUaW1lMTIiKTsNCiAgICAgJGRiLT5hZGRFcXVhbENvbmRpdGlvbigic3RvcmVJZCIsICRzdG9yZUlkKTsNCiAgICAgJGRiLT5hZGRFcXVhbENvbmRpdGlvbigiZGF0ZSIsICRkYXRlKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoInN0YWZmUmFuayIpOw0KICAgICAkcmVzdWx0MyA9ICRkYi0+ZG9TZWxlY3RMb29wKCk7DQogICAgICBmb3JlYWNoICgkcmVzdWx0M1siZGF0YSJdIGFzICR2YWx1ZTMpIHsNCiAgJHN0YWZmU2NoZWR1bGUyW10gPSAkdmFsdWUzOw0KIH0NCiANCiBpZighZW1wdHkoJHN0YWZmU2NoZWR1bGUyKSl7DQogZm9yZWFjaCgkc3RhZmZTY2hlZHVsZTIgYXMgJHZhbHVlKXsNCiAgaWYoYXJyYXlfc2VhcmNoKCRzdGFydHRpbWUsICR2YWx1ZSkpew0KICAgJHZhbHVlWyJjb25mU3RhcnRUaW1lIl0gPSBhcnJheV9zZWFyY2goJHN0YXJ0dGltZSwgJHZhbHVlKTsNCiAgICR2YWx1ZVsiY29uZkVuZFRpbWUiXSAgPSBhcnJheV9zZWFyY2goJGVuZHRpbWUsICR2YWx1ZSk7DQogICAkcmVjb3JkW10gPSAkdmFsdWU7DQogICAkcmVjb3JkQ2ggPSAiMCI7DQogIH1lbHNlew0KICAgaWYoJHJlY29yZENoICE9ICIwIil7JHJlY29yZENoID0gIjEiO30NCiAgfQ0KIH19ZWxzZXsNCiAgIGlmKCRyZWNvcmRDaCAhPSAiMCIpeyRyZWNvcmRDaCA9ICIxIjt9DQogfQ0KDQppZighZW1wdHkoJHJlY29yZCkpeyRyZXMyID0gYXJyYXlfY29sdW1uKCRyZWNvcmQsICJzdGFmZlJhbmsiKTskcmVzID0gZnVuYygkcmVzMik7fQ0KDQoNCiRyZWNvcmQgPSAkcmVjb3JkWyRyZXNdOyANCg0KIA0KfWVsc2UgaWYoJGlycmVndWxhcjIgPT0gMSl7DQogJGRiID0gJFNQSVJBTC0+Z2V0RGF0YUJhc2UoInN0YWZmcmFua3ZpZXdEQiIpOw0KICAgICAkZGItPmFkZFNvcnRGaWVsZCgiaWQiLCB0cnVlKTsNCiAgICAgJGRiLT5hZGRTZWxlY3RGaWVsZHMoInN0YWZmU2NoZWR1bGVJZCIsInN0b3JlSWQiLCJib290aElkIiwiZGF0ZSIsInN0YWZmSWQiLCJzdGFmZlJhbmsiLCJzdGFydFRpbWUxIiwiZW5kVGltZTEiLCJzdGFydFRpbWUyIiwiZW5kVGltZTIiLCJzdGFydFRpbWUzIiwiZW5kVGltZTMiLCJzdGFydFRpbWU0IiwiZW5kVGltZTQiLCJzdGFydFRpbWU1IiwiZW5kVGltZTUiLCJzdGFydFRpbWU2IiwiZW5kVGltZTYiLCJzdGFydFRpbWU3IiwiZW5kVGltZTciLCJzdGFydFRpbWU4IiwiZW5kVGltZTgiLCJzdGFydFRpbWU5IiwiZW5kVGltZTkiLCJzdGFydFRpbWUxMCIsImVuZFRpbWUxMCIsInN0YXJ0VGltZTExIiwiZW5kVGltZTExIiwic3RhcnRUaW1lMTIiLCJlbmRUaW1lMTIiKTsNCiAgICAgJGRiLT5hZGRFcXVhbENvbmRpdGlvbigic3RvcmVJZCIsICRzdG9yZUlkKTsNCiAgICAgJGRiLT5hZGRFcXVhbENvbmRpdGlvbigiZGF0ZSIsICRkYXRlKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoInN0YWZmUmFuayIpOw0KICAgICAkcmVzdWx0MyA9ICRkYi0+ZG9TZWxlY3RMb29wKCk7DQogICAgICBmb3JlYWNoICgkcmVzdWx0M1siZGF0YSJdIGFzICR2YWx1ZTMpIHsNCiAgICAgICAkdmFsdWUzWyJpcnJlZ3VsYXIiXSA9IDA7DQogICRzdGFmZlNjaGVkdWxlMltdID0gJHZhbHVlMzsNCiB9DQogICRkYiA9ICRTUElSQUwtPmdldERhdGFCYXNlKCJpcnJlZ3VsYXJWaWV3REIiKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoImlkIiwgdHJ1ZSk7DQogICAgICRkYi0+YWRkU2VsZWN0RmllbGRzKCJzdGFmZlNjaGVkdWxlSWQiLCJzdG9yZUlkIiwiYm9vdGhJZCIsImRhdGUiLCJzdGFmZklkIiwic3RhZmZSYW5rIiwic3RhcnRUaW1lMSIsImVuZFRpbWUxIiwic3RhcnRUaW1lMiIsImVuZFRpbWUyIiwic3RhcnRUaW1lMyIsImVuZFRpbWUzIiwic3RhcnRUaW1lNCIsImVuZFRpbWU0Iiwic3RhcnRUaW1lNSIsImVuZFRpbWU1Iiwic3RhcnRUaW1lNiIsImVuZFRpbWU2Iiwic3RhcnRUaW1lNyIsImVuZFRpbWU3Iiwic3RhcnRUaW1lOCIsImVuZFRpbWU4Iiwic3RhcnRUaW1lOSIsImVuZFRpbWU5Iiwic3RhcnRUaW1lMTAiLCJlbmRUaW1lMTAiLCJzdGFydFRpbWUxMSIsImVuZFRpbWUxMSIsInN0YXJ0VGltZTEyIiwiZW5kVGltZTEyIik7DQogICAgICRkYi0+YWRkRXF1YWxDb25kaXRpb24oInN0b3JlSWQiLCAkc3RvcmVJZCk7DQogICAgICRkYi0+YWRkRXF1YWxDb25kaXRpb24oImRhdGUiLCAkZGF0ZSk7DQogICAgICRkYi0+YWRkRXF1YWxDb25kaXRpb24oIm9wZW5GbGciLCAiMSIpOw0KICAgICAkZGItPmFkZFNvcnRGaWVsZCgic3RhZmZSYW5rIik7DQogICAgICRyZXN1bHQ0ID0gJGRiLT5kb1NlbGVjdExvb3AoKTsNCiAgICAgIGZvcmVhY2ggKCRyZXN1bHQ0WyJkYXRhIl0gYXMgJHZhbHVlNCkgew0KICAgICAgICR2YWx1ZTRbImlycmVndWxhciJdID0gMTsNCiAgJHN0YWZmU2NoZWR1bGUyW10gPSAkdmFsdWU0Ow0KfQ0KICAkZGIgPSAkU1BJUkFMLT5nZXREYXRhQmFzZSgiaXJyZWd1bGFyVmlld0RCIik7DQogICAgICRkYi0+YWRkU29ydEZpZWxkKCJpZCIsIHRydWUpOw0KICAgICAkZGItPmFkZFNlbGVjdEZpZWxkcygic3RhZmZTY2hlZHVsZUlkIiwic3RvcmVJZCIsImJvb3RoSWQiLCJkYXRlIiwic3RhZmZJZCIsInN0YWZmUmFuayIsInN0YXJ0VGltZTEiLCJlbmRUaW1lMSIsInN0YXJ0VGltZTIiLCJlbmRUaW1lMiIsInN0YXJ0VGltZTMiLCJlbmRUaW1lMyIsInN0YXJ0VGltZTQiLCJlbmRUaW1lNCIsInN0YXJ0VGltZTUiLCJlbmRUaW1lNSIsInN0YXJ0VGltZTYiLCJlbmRUaW1lNiIsInN0YXJ0VGltZTciLCJlbmRUaW1lNyIsInN0YXJ0VGltZTgiLCJlbmRUaW1lOCIsInN0YXJ0VGltZTkiLCJlbmRUaW1lOSIsInN0YXJ0VGltZTEwIiwiZW5kVGltZTEwIiwic3RhcnRUaW1lMTEiLCJlbmRUaW1lMTEiLCJzdGFydFRpbWUxMiIsImVuZFRpbWUxMiIpOw0KICAgICAkZGItPmFkZEVxdWFsQ29uZGl0aW9uKCJzdG9yZUlkIiwgJHN0b3JlSWQpOw0KICAgICAkZGItPmFkZEVxdWFsQ29uZGl0aW9uKCJkYXRlIiwgJGRhdGUpOw0KICAgICAkZGItPmFkZEVxdWFsQ29uZGl0aW9uKCJvcGVuRmxnIiwgIjIiKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoInN0YWZmUmFuayIpOw0KICAgICAkcmVzdWx0NSA9ICRkYi0+ZG9TZWxlY3RMb29wKCk7DQogICAgICBmb3JlYWNoICgkcmVzdWx0NVsiZGF0YSJdIGFzICR2YWx1ZTUpIHsNCiAgICAgICAkdmFsdWU1WyJpcnJlZ3VsYXIiXSA9IDE7DQogICRzdGFmZlNjaGVkdWxlNVtdID0gJHZhbHVlNTsNCn0NCg0KaWYoIWVtcHR5KCRzdGFmZlNjaGVkdWxlMikgYW5kICFlbXB0eSgkc3RhZmZTY2hlZHVsZTUpKXsNCmZvcmVhY2ggKCRzdGFmZlNjaGVkdWxlMiBhcyAka2V5enp6ID0+ICRjaGVja1ZhbHVlKXsNCiAka2V5SW5kZXggPSBhcnJheV9zZWFyY2goJGNoZWNrVmFsdWVbInN0YWZmSWQiXSwgYXJyYXlfY29sdW1uKCRzdGFmZlNjaGVkdWxlNSwgJ3N0YWZmSWQnKSk7DQogJHJlc3VsdGFhYSA9ICRzdGFmZlNjaGVkdWxlNVska2V5SW5kZXhdOw0KIGlmKCRyZXN1bHRhYWFbInN0YWZmSWQiXT09JGNoZWNrVmFsdWVbInN0YWZmSWQiXSBhbmQgaW5fYXJyYXkoJHN0YXJ0dGltZSwgJHJlc3VsdGFhYSkpew0KICAkYWFhID0gYXJyYXlfc2VhcmNoKCRzdGFydHRpbWUsJGNoZWNrVmFsdWUpOw0KICAkbnVtYmVyID0gc3RyX3JlcGxhY2UoJ3N0YXJ0VGltZScsICcnLCAkYWFhKTsNCiAgICAkbnVtYmVyID0gImVuZFRpbWUiLiRudW1iZXI7DQogICAgJHN0YWZmU2NoZWR1bGUyWyRrZXl6enpdWyRhYWFdID0gIiI7DQogICAgJHN0YWZmU2NoZWR1bGUyWyRrZXl6enpdWyRudW1iZXJdID0gIiI7DQogIH0NCiB9DQp9IA0KDQppZighZW1wdHkoJHN0YWZmU2NoZWR1bGUyKSl7DQogZm9yZWFjaCgkc3RhZmZTY2hlZHVsZTIgYXMgJHZhbHVlKXsNCiAgaWYoYXJyYXlfc2VhcmNoKCRzdGFydHRpbWUsICR2YWx1ZSkpew0KICAgJHZhbHVlWyJjb25mU3RhcnRUaW1lIl0gPSBhcnJheV9zZWFyY2goJHN0YXJ0dGltZSwgJHZhbHVlKTsNCiAgICR2YWx1ZVsiY29uZkVuZFRpbWUiXSA9IGFycmF5X3NlYXJjaCgkZW5kdGltZSwgJHZhbHVlKTsNCiAgICRyZWNvcmRbXSA9ICR2YWx1ZTsNCiAgICRyZWNvcmRDaCA9ICIwIjsNCiAgfWVsc2V7DQogICBpZigkcmVjb3JkQ2ggIT0gIjAiKXskcmVjb3JkQ2ggPSAiMSI7fQ0KICB9DQogfX1lbHNlew0KICAgaWYoJHJlY29yZENoICE9ICIwIil7JHJlY29yZENoID0gIjEiO30NCiB9DQogDQokcmVzMiA9IGFycmF5X2NvbHVtbigkcmVjb3JkLCAic3RhZmZSYW5rIik7DQoNCiRyZXMgPSBmdW5jKCRyZXMyKTsNCiRyZWNvcmQgPSAkcmVjb3JkWyRyZXNdOyANCiANCn1lbHNlew0KJHJlY29yZCA9IiI7IC8v4paz44Gu5aC05ZCIDQp9DQp9ZWxzZXsNCiAgICAgICRkYiA9ICRTUElSQUwtPmdldERhdGFCYXNlKCJzdGFmZnJhbmt2aWV3REIiKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoImlkIiwgdHJ1ZSk7DQogICAgICRkYi0+YWRkU2VsZWN0RmllbGRzKCJzdGFmZlNjaGVkdWxlSWQiLCJzdG9yZUlkIiwiYm9vdGhJZCIsImRhdGUiLCJzdGFmZklkIiwic3RhZmZSYW5rIiwic3RhcnRUaW1lMSIsImVuZFRpbWUxIiwic3RhcnRUaW1lMiIsImVuZFRpbWUyIiwic3RhcnRUaW1lMyIsImVuZFRpbWUzIiwic3RhcnRUaW1lNCIsImVuZFRpbWU0Iiwic3RhcnRUaW1lNSIsImVuZFRpbWU1Iiwic3RhcnRUaW1lNiIsImVuZFRpbWU2Iiwic3RhcnRUaW1lNyIsImVuZFRpbWU3Iiwic3RhcnRUaW1lOCIsImVuZFRpbWU4Iiwic3RhcnRUaW1lOSIsImVuZFRpbWU5Iiwic3RhcnRUaW1lMTAiLCJlbmRUaW1lMTAiLCJzdGFydFRpbWUxMSIsImVuZFRpbWUxMSIsInN0YXJ0VGltZTEyIiwiZW5kVGltZTEyIik7DQogICAgICRyZXN1bHQzID0gJGRiLT5kb1NlbGVjdExvb3AoKTsNCiAgICAgIGZvcmVhY2ggKCRyZXN1bHQzWyJkYXRhIl0gYXMgJHZhbHVlMykgew0KICAkc3RhZmZTY2hlZHVsZVtdID0gJHZhbHVlMzsNCiB9DQogICAgICRkYiA9ICRTUElSQUwtPmdldERhdGFCYXNlKCJpcnJlZ3VsYXJWaWV3REIiKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoImlkIiwgdHJ1ZSk7DQogICAgICRkYi0+YWRkU2VsZWN0RmllbGRzKCJzdGFmZlNjaGVkdWxlSWQiLCJzdG9yZUlkIiwiYm9vdGhJZCIsImRhdGUiLCJzdGFmZklkIiwic3RhZmZSYW5rIiwib3BlbkZsZyIsInN0YXJ0VGltZTEiLCJlbmRUaW1lMSIsInN0YXJ0VGltZTIiLCJlbmRUaW1lMiIsInN0YXJ0VGltZTMiLCJlbmRUaW1lMyIsInN0YXJ0VGltZTQiLCJlbmRUaW1lNCIsInN0YXJ0VGltZTUiLCJlbmRUaW1lNSIsInN0YXJ0VGltZTYiLCJlbmRUaW1lNiIsInN0YXJ0VGltZTciLCJlbmRUaW1lNyIsInN0YXJ0VGltZTgiLCJlbmRUaW1lOCIsInN0YXJ0VGltZTkiLCJlbmRUaW1lOSIsInN0YXJ0VGltZTEwIiwiZW5kVGltZTEwIiwic3RhcnRUaW1lMTEiLCJlbmRUaW1lMTEiLCJzdGFydFRpbWUxMiIsImVuZFRpbWUxMiIpOw0KICAgICAkZGItPmFkZEVxdWFsQ29uZGl0aW9uKCJvcGVuRmxnIiwgIjEiKTsNCiAgICAgJHJlc3VsdDQgPSAkZGItPmRvU2VsZWN0TG9vcCgpOw0KICAgICAgZm9yZWFjaCAoJHJlc3VsdDRbImRhdGEiXSBhcyAkdmFsdWU0KSB7DQogICRpcnJlZ3VsYXJbXSA9ICR2YWx1ZTQ7DQogfQ0KfQ0KPz4NCjwhRE9DVFlQRSBodG1sPg0KPGh0bWwgbGFuZz0iamEiPg0KDQo8aGVhZD4NCiA8Pw0KIGlmKCRyZWNvcmRDaCA9PSAiMSIpew0KICAgIGVjaG8gIjxtZXRhIGh0dHAtZXF1aXY9XCJyZWZyZXNoXCIgY29udGVudD1cIjA7VVJMPWh0dHBzOi8vcmVnMTguc21wLm5lLmpwL3JlZ2lzdC9pcz9TTVBGT1JNPXFhcGktbGRsY2xlLWNlZmQzOWI3NGVjNGM3MmVjNzFkZTdhNGYyZDAxMzkyJmNpZD0ke19HRVRbJ2NpZCddfSZmb3JtX3R5cGU9JGZvcm1fdHlwZVwiPiI7DQp9DQogPz4NCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPUVkZ2UiPg0KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xLjAiPg0KICAgIDx0aXRsZT7nhKHmlpnmnaXlupfkuojntIQgfCDntZDlqZrnm7joq4fmiYDjg7vntZDlqZrmg4XloLHjgarjgonjg5Hjg7zjg4jjg4rjg7zjgqjjg7zjgrjjgqfjg7Pjg4jjgJDmiJDlqZrnjodOby4x44CRPC90aXRsZT4NCiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0i5p2l5bqX5LqI57SELOWpmua0uyzntZDlqZrnm7joq4fmiYAiIC8+DQogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IueEoeaWmeadpeW6l+S6iOe0hOOBr+e1kOWpmuebuOirh+aJgOODkeODvOODiOODiuODvOOCqOODvOOCuOOCp+ODs+ODiOWFrOW8j+OCteOCpOODiOOBuOOBiuS7u+OBm+OBj+OBoOOBleOBhOOAgueEoeaWmeOBp+Wpmua0u+OChOOBiuimi+WQiOOBhOOAgeOBiuebuOaJi+e0ueS7i+OCteODvOODk+OCueOBq+mWouOBmeOCi+aDheWgseOCkuOAgeOBiuWuouanmOOBruS+oeWApOims+OBq+WQiOOCj+OBm+OBpuOBlOe0ueS7i+OBl+OBvuOBmeOAgiIgLz4NCiAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL2Nzcy9pbXBvcnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIC8+DQogICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vd3d3LnAtYS5qcC9zcGlyYWwvcmVzZXJ2YXRpb24vY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiAvPg0KICAgIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBtZWRpYT0ib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDY0MHB4KSIgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL3NwL2Zvcm0vcmVzZXJ2YXRpb24vIj4NCiAgICA8bGluayBocmVmPSJodHRwczovL3d3dy5wLWEuanAvZm9ybS9yZXNlcnZhdGlvbi8iIHJlbD0iY2Fub25pY2FsIj4NCiAgICA8IS0tIFNWR+OCouODi+ODoeODvOOCt+ODp+ODsyAtLT4NCiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS92aXZ1c0BsYXRlc3QvZGlzdC92aXZ1cy5taW4uanMiPjwvc2NyaXB0Pg0KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjcuMi9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4NCiAgICA8c3R5bGU+DQogICAgICAgICAgICAuWmVicmFfRGF0ZVBpY2tlciB7DQogICAgICAgICAgICB0b3A6IDE2MDBweCAhaW1wb3J0YW50Ow0KICAgICAgICB9DQogICAgICAgIC5tc2cyIHsNCiAgZGlzcGxheTogYmxvY2s7DQogIGNvbG9yOiAjREQwMDAwOw0KICBmb250LXNpemU6IDEwMCU7DQogIGZvbnQtd2VpZ2h0OmJvbGQ7DQogIG1hcmdpbi1ib3R0b206IDVweDsNCiAgdGV4dC1hbGlnbjpsZWZ0Ow0KIH0NCiAgICA8L3N0eWxlPg0KPD9yZXF1aXJlKCJodG1sL3RhZ19oZWFkLnBocCIpOz8+ICAgIA0KICA8IS0tR3lyby1uIEVGTy0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICB2YXIgX19neXIgPSB7DQogICAgImNvbmZpZyI6IHsNCiAgICAgICJjbGllbnRUb2tlbiI6ICJXU1BNMlVDSVROIiwNCiAgICAgICJzaXRlIjogInAtYS5qcCINCiAgICB9DQogIH07DQogIChmdW5jdGlvbigpIHsNCiAgICB2YXIgdWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsNCiAgICB1Yi50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IHViLmFzeW5jID0gdHJ1ZTsNCiAgICB1Yi5zcmMgPSBsb2NhdGlvbi5wcm90b2NvbCArICIvL2Ntbi5neXJvLW4uY29tL2pzL2d5ci5taW4uanMiOw0KICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOw0KICAgIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodWIsIHMpOw0KICB9KSgpOw0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keT4NCjw/cmVxdWlyZSgiaHRtbC90YWdfYm9keS5waHAiKTs/PiAgDQogICAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iZm9ybV9oZWFkZXIiPg0KICAgICAgICA8aDEgaWQ9ImRlc2NyaXB0aW9uIj7nhKHmlpnmnaXlupfkuojntIQgfCDntZDlqZrnm7joq4fmiYDjg7vntZDlqZrmg4XloLHjgarjgonjg5Hjg7zjg4jjg4rjg7zjgqjjg7zjgrjjgqfjg7Pjg4jjgJDmiJDlqZrnjodOby4x44CRPC9oMT4NCiAgICAgICAgPHAgaWQ9ImhlYWRlci1sb2dvIj48YSBocmVmPSJodHRwczovL3d3dy5wLWEuanAvIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cucC1hLmpwL2ltYWdlcy9sb2dvLnN2ZyIgYWx0PSLntZDlqZrnm7joq4fmiYDjg5Hjg7zjg4jjg4rjg7zjgqjjg7zjgrjjgqfjg7Pjg4giPjwvYT48L3A+DQogICAgICAgIDxwIGlkPSJoZWFkZXItdGVsIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cucC1hLmpwL2ltYWdlcy9oZWFkZXJfdGVsMDMuZ2lmIiB3aWR0aD0iNDUyIiBoZWlnaHQ9Ijc5IiBhbHQ9IuOBiumbu+ipseOBruOBiuWVj+OBhOWQiOOCj+OBmzoyNOaZgumWk+WPl+S7mOS4rSAwMTIwLTE0Ny00NjYgfCBQSFPjg7swNTDjgafjga/jgZjjgb7jgotJUOmbu+ipseOBi+OCieOBrzAzLTU3NTktMjY1MO+8iOacieaWme+8iSI+PC9wPg0KICAgIDwvZGl2PjwhLS0gLyNoZWFkZXIgLS0+DQogICAgPGRpdiBjbGFzcz0icGF0aCI+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwLyI+57WQ5ama55u46KuH5omA44O757WQ5ama5pSv5o+044K144O844OT44K544OR44O844OI44OK44O844Ko44O844K444Kn44Oz44OIPC9hPiAmZ3Q7IDxzdHJvbmc+54Sh5paZ5p2l5bqX5LqI57SEPC9zdHJvbmc+PC9kaXY+DQogICAgPG1haW4+DQogICAgICAgIDxkaXYgY2xhc3M9Im1haW5fdHRsIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW5fdHRsLWlubmVyIj4NCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iaW1nIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cucC1hLmpwL3NwaXJhbC9yZXNlcnZhdGlvbi9pbWFnZXMvaW1nX21haW4wMS5wbmciIGFsdD0iMeWIhuOBp+WFpeWKm+WujOS6hiI+PC9wPg0KICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0idHRsIj48c3BhbiBjbGFzcz0ibXNnIj7jgb7jgZrjga/pm7Dlm7LmsJfjgpLmhJ/jgZjjgabjgb/jgabjgY/jgaDjgZXjgYQ8L3NwYW4+5p2l5bqX5LqI57SE44OV44Kp44O844OgPC9oMj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3ZnX3JpYmJvbiI+DQogICAgICAgICAgICAgICAgPHN2ZyBpZD0icmliYm9uXzAxXzAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MTkuMjE3IiBoZWlnaHQ9Ijc1LjA1MiIgdmlld0JveD0iMCAwIDcxOC43MTQgNzUiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPg0KICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjAwLjgzLDQ0NVM3MzIuNzM2LDUwNiwxMjk5LDUwNiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU5OS45MDYgLTQ0NC41KSIvPg0KICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMTI5OCw1MDdzOS0xNywxNy0xMiwwLDExLTE3LDEyYy0xLjUsMi4yNTEtOS4xNywxMC0yMSwxMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTU5OS45MDYgLTQ0NC41KSIvPg0KICAgICAgICAgICAgICAgIDwvc3ZnPg0KICAgICAgICAgICAgICAgIDxzdmcgaWQ9InJpYmJvbl8wMV8wMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNzIyLjEyNSIgaGVpZ2h0PSI3NC45NTgiIHZpZXdCb3g9IjAgMCA3MjEuNjIgNzQuOTA2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj4NCiAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE5OTksNDQ3cy0xMzcuMTUsNjAtNzAwLDYwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTI3Ny4zOCAtNDQ1LjU5NCkiLz4NCiAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTEyOTksNTA3cy05LTE3LTE3LTEyLDAsMTEsMTcsMTJjMS41LDIuMjUxLDguMzcsMTEuNjY3LDE5LDEyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTI3Ny4zOCAtNDQ1LjU5NCkiLz4NCiAgICAgICAgICAgICAgICA8L3N2Zz4NCiAgICAgICAgICAgIDwvZGl2Pg0KICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1pbm5lciI+DQogICAgICAgICAgICA8b2wgY2xhc3M9ImZsb3ctbGlzdCI+DQogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0LWl0ZW0gaXMtY3VycmVudCI+PHAgY2xhc3M9InR0bCI+PHNwYW4gY2xhc3M9Im51bSI+MTwvc3Bhbj4g5bqX6IiX44O75pel5pmC6YG45oqePC9wPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpIGlkPSJpdGVtMSIgY2xhc3M9Imxpc3QtaXRlbSA8P2lmKCRjaGVja19mb3JtICE9IDEpe2VjaG8gImlzLWN1cnJlbnQiO30/PiI+PHAgY2xhc3M9InR0bCI+PHNwYW4gY2xhc3M9Im51bSI+Mjwvc3Bhbj4g44GK5a6i5qeY5oOF5aCx5YWl5YqbPC9wPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpIGlkPSJpdGVtMiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiIGNsYXNzPSJsaXN0LWl0ZW0gaXMtY3VycmVudCI+PHAgY2xhc3M9InR0bCI+PHNwYW4gY2xhc3M9Im51bSI+Mjwvc3Bhbj4g44GK5a6i5qeY5oOF5aCx5YWl5YqbPC9wPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsaXN0LWl0ZW0iPjxwIGNsYXNzPSJ0dGwiPjxzcGFuIGNsYXNzPSJudW0iPjM8L3NwYW4+IOWFpeWKm+aDheWgseeiuuiqjTwvcD48L2xpPg0KICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdC1pdGVtIj48cCBjbGFzcz0idHRsIj48c3BhbiBjbGFzcz0ibnVtIj40PC9zcGFuPiDpgIHkv6HlrozkuoY8L3A+PC9saT4NCiAgICAgICAgICAgIDwvb2w+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiID4gICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwDQogICAgJGRiID0gJFNQSVJBTC0+Z2V0RGF0YUJhc2UoInN0b3JlVGFibGVWaWV3REIiKTsNCiAgICAgJGRiLT5hZGRTb3J0RmllbGQoImFyZWFJZCIsIHRydWUpOw0KICAgICAkZGItPmFkZFNlbGVjdEZpZWxkcygiYXJlYUlkIiwiYXJlYU5hbWUiLCJzdG9yZUlkIiwic3RvcmVOYW1lIik7DQogICAgICRkYi0+YWRkRXF1YWxDb25kaXRpb24oInN0b3JlSWQiLCAkc3RvcmVJZCk7DQogICAgICRyZXN1bHQgPSAkZGItPmRvU2VsZWN0KCk7DQogICAgICRzdG9yZU5hbWUgPSAkcmVzdWx0WyJkYXRhIl1bMF1bInN0b3JlTmFtZSJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQppZigkX0dFVFsiY2hlY2siXSA9PSAxKXsNCg0KICAgICAkZGIgPSAkU1BJUkFMLT5nZXREYXRhQmFzZSgic3RvcmVTY2hlZHVsZURCIik7DQogICAgICRkYi0+YWRkU29ydEZpZWxkKCJpZCIsIHRydWUpOw0KICAgICAkZGItPmFkZFNlbGVjdEZpZWxkcygic3RvcmVTY2hlZHVsZUlkIiwgInN0b3JlSWQiLCAiZGF0ZSIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJlbGFwc2VkVGltZSIsInhWaWV3RmxnIik7DQogICAgICRkYi0+YWRkRXF1YWxDb25kaXRpb24oInN0b3JlSWQiLCAkc3RvcmVJZCk7DQogICAgICRyZXN1bHQgPSAkZGItPmRvU2VsZWN0TG9vcCgpOw0KICAgICAgZm9yZWFjaCAoJHJlc3VsdFsiZGF0YSJdIGFzICR2YWx1ZSkgew0KICAkc3RvcmVTY2hlZHVsZUFycmF5W10gPSAkdmFsdWU7DQogfQ0KIA0KZWNobyAiDQo8ZGl2IGlkPVwiMm5kM3JkXCI+DQo8aDMgY2xhc3M9XCJoZWFkbGluZVwiPuOBlOW4jOacm+aXpeaZguOCkuOBiumBuOOBs+OBj+OBoOOBleOBhDxzcGFuIGNsYXNzPVwibm90ZS10eHRcIj7igLvpgbjmip7jgZfjgZ/lupfoiJfjga7nqbrjgY3nirbms4HjgYzooajnpLrjgZXjgozjgabjgYTjgb7jgZnjgII8L3NwYW4+PC9oMz4NCjxkaXYgY2xhc3M9XCJzY2hlZHVsZS1oZWFkZXJcIj4NCiAgICA8aDQgY2xhc3M9XCJzY2hlZHVsZS10dGxcIj4kc3RvcmVOYW1lPC9oND4NCiAgICA8L2Rpdj4NCiAgICA8dWwgY2xhc3M9XCJndWlkZS1saXN0XCI+DQogICAgIDxsaSBjbGFzcz1cImxpc3QtaXRlbVwiPjxzcGFuIGNsYXNzPVwiaWNvblwiPjxpbWcgc3JjPVwiaHR0cHM6Ly93d3cucC1hLmpwL3NwaXJhbC9yZXNlcnZhdGlvbi9pbWFnZXMvaWNvbl9jaXJjbGUucG5nXCIgYWx0PVwi44CHXCI+PC9zcGFuPuKApiDnqbrluK3jgYLjgoo8L2xpPg0KICAgICA8bGkgY2xhc3M9XCJsaXN0LWl0ZW1cIj48c3BhbiBjbGFzcz1cImljb25cIj48aW1nIHNyYz1cImh0dHBzOi8vd3d3LnAtYS5qcC9zcGlyYWwvcmVzZXJ2YXRpb24vaW1hZ2VzL2ljb25fdHJpYW5nbGUucG5nXCIgYWx0PVwi4pazXCI+PC9zcGFuPuKApiDjgq3jg6Pjg7Pjgrvjg6vlvoXjgaE8L2xpPg0KICAgICA8bGkgY2xhc3M9XCJsaXN0LWl0ZW1cIj48c3BhbiBjbGFzcz1cImljb25cIj48aW1nIHNyYz1cImh0dHBzOi8vd3d3LnAtYS5qcC9zcGlyYWwvcmVzZXJ2YXRpb24vaW1hZ2VzL2ljb25fY3Jvc3MucG5nXCIgYWx0PVwiw5dcIj48L3NwYW4+4oCmIOS6iOe0hOS4jeWPrzwvbGk+DQogICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NoZWR1bGUtbm90ZS1hcmVhXCI+DQogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5vdGUtbGlzdFwiPg0KICAgICA8bGkgY2xhc3M9XCJsaXN0LWl0ZW0gbm90ZVwiPuOBlOW4jOacm+OBruaXpeaZguOBjOOAjOKWs+OAjeOBruWgtOWQiOOBr+OAgeOBlOWFpeWKm+W+jOOAgeaLheW9k+iAheOBi+OCieaKmOOCiui/lOOBl+OBruOBlOmAo+e1oeOCkuOBleOBm+OBpuOBhOOBn+OBoOOBjeOBvuOBmeOAgjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxlbT7jgZTluIzmnJvjga7ml6XmmYLjgpIz44Gk44GU55m76Yyy44GP44Gg44GV44GEPC9lbT7jgII8YnI+DQogICAgICDjgb7jgZ/jgIHjgYrpm7voqbHjgafjgoLlj5fjgZHku5jjgZHjgabjgYrjgorjgb7jgZnjga7jgafjgIHjgYrmsJfou73jgavjgYrllY/jgYTlkIjjgo/jgZvjgY/jgaDjgZXjgYTjgb7jgZvjgII8L2xpPg0KICAgICAgICAgICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVsLWJveFwiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJpbWdcIj48aW1nIHNyYz1cImh0dHBzOi8vd3d3LnAtYS5qcC9zcGlyYWwvcmVzZXJ2YXRpb24vaW1hZ2VzL2ltZ190ZWwucG5nXCIgYWx0PVwi44CQ44GK6Zu76Kmx44Gn44Gu44GK5ZWP44GE5ZCI44KP44Gb44CR44OV44Oq44O844Kz44O844Or77yaMDEyMC0xNDctNDY2XCI+PC9wPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCg0KICAgIDx1bCBjbGFzcz1cInNjaGVkdWxlLWxpc3RcIj4iOw0KICAgICR3ZWVrY291bnQgPSAkU1BJUkFMLT5nZXRQYXJhbSgid2Vla2NvdW50Iik7DQppZihlbXB0eSgkd2Vla2NvdW50KSl7JHdlZWtjb3VudCA9ICI3Ijt9ZWxzZXskd2Vla2NvdW50ID0gJHdlZWtjb3VudCArIDIxO30NCiRub3dXZWVrID0gZGF0ZSgnWS9tL2QnLHN0cnRvdGltZSgiKyR3ZWVrY291bnQgZGF5IikpOw0KJG5vd1dlZWtBcnJheSA9IGdldFdlZWtTdGFydEFuZEVuZERhdGUoJG5vd1dlZWspOw0KDQpmb3JlYWNoKCRub3dXZWVrQXJyYXkgYXMgJGtleSA9PiAkaXRlbWhlYWQpew0KICAgICBlY2hvICI8bGkgY2xhc3M9XCJsaXN0LWl0ZW1cIj4NCiAgICAgIDxwIGNsYXNzPVwiaXRlbS1oZWFkZXIiOyANCiAgICAgIGlmKCRrZXkgPT0gInNhdCIgb3IgJGtleSA9PSAic2F0MiIgb3IgJGtleSA9PSAic2F0MyIpew0KICAgICAgIGVjaG8gIiBzYXR1cmRheSI7DQogICAgICB9ZWxzZSBpZigka2V5ID09InN1biIgb3IgJGtleSA9PSJzdW4yIiBvciAka2V5ID09InN1bjMiIG9yICRpdGVtaGVhZFsxXSAhPSBmYWxzZSl7DQogICAgICAgZWNobyAiIGhvbGlkYXkiOw0KICAgICAgfQ0KICAgICAgJGl0ZW1oZWFkMiA9IGV4cGxvZGUoIiAiLCRpdGVtaGVhZFswXSk7DQogICAgICBlY2hvICJcIj4kaXRlbWhlYWQyWzBdPHNwYW4gY2xhc3M9XCJ5b3ViaVwiPiRpdGVtaGVhZDJbMV08L3NwYW4+PC9wPg0KICAgICAgIjsNCiAgICAgIA0KICAgICAgZWNobyAiPHVsIGNsYXNzPVwiaXRlbS1ib2R5XCI+IjsNCiAgICAgICAgICAkY3V0ID0gNjsvL+OCq+ODg+ODiOOBl+OBn+OBhOaWh+Wtl+aVsA0KICAgICRpdGVtaGVhZCA9IHN1YnN0ciggJGl0ZW1oZWFkWzBdICwgMCAsIHN0cmxlbigkaXRlbWhlYWRbMF0pLSRjdXQgKTsNCiAgICAkaXRlbWhlYWQgPSBkYXRlKCdZJykuIi8iLiRpdGVtaGVhZDsNCiAgICAkaXRlbWhlYWQgPSBkYXRlKCdZ5bm0buaciGrml6UnLHN0cnRvdGltZSgkaXRlbWhlYWQpKTsNCiAgICAkc2Fua2FrdWNvdW50ID0gMDsNCiAgICAkdG9kYXkgPSBkYXRlKCJZL20vZCBIOmkiKTsNCiAgICANCiAgICAgICAgaWYoIWVtcHR5KCRzdG9yZVNjaGVkdWxlQXJyYXkpKXsNCiAgICAgICAgZm9yZWFjaCgkc3RvcmVTY2hlZHVsZUFycmF5IGFzICRzdG9yZXZhbHVlKXsNCiAgICAgICAgICRzdG9yZXZhbHVlVmlldyA9IERhdGVUaW1lOjpjcmVhdGVGcm9tRm9ybWF0KCdI5pmCaeWIhicsICRzdG9yZXZhbHVlWyJzdGFydFRpbWUiXSktPmZvcm1hdCgnSDppJyk7DQogICAgICAgICAgaWYoJGl0ZW1oZWFkID09ICRzdG9yZXZhbHVlWydkYXRlJ10pew0KDQogICAgICAgICAgICAkbm93RGF0ZSA9ICRzdG9yZXZhbHVlWyJkYXRlIl0uJHN0b3JldmFsdWVbInN0YXJ0VGltZSJdOw0KICAgICAgICAgICAgJG5vd0RhdGUgPSBEYXRlVGltZTo6Y3JlYXRlRnJvbUZvcm1hdCgnWeW5tG3mnIhk5pelIEjmmYJp5YiGJywgJG5vd0RhdGUpLT5mb3JtYXQoJ1kvbS9kIEg6aScpOw0KICAgICAgICAgICAgDQogICAgICAgICAgIGlmKCRzdG9yZXZhbHVlWyd4Vmlld0ZsZyddID09ICIxIil7DQogICAgICAgICAgICBlY2hvICAiPGxpIGNsYXNzPVwiaXRlbVwiPjxwIGNsYXNzPVwiY3Jvc3NcIj4kc3RvcmV2YWx1ZVZpZXc8L3A+PC9saT4iOw0KICAgICAgICAgICB9ZWxzZSBpZiAoJHRvZGF5ID4gJG5vd0RhdGUpew0KICAgZWNobyAgIjxsaSBjbGFzcz1cIml0ZW1cIj48cCBjbGFzcz1cImNyb3NzXCI+JHN0b3JldmFsdWVWaWV3PC9wPjwvbGk+IjsNCiAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICBpZighZW1wdHkoJHN0YWZmU2NoZWR1bGUpKXskcmVzdWx0ID0gc2VhcmNoTWVucygkc3RhZmZTY2hlZHVsZSwkc3RvcmV2YWx1ZVsiZGF0ZSJdLCRzdG9yZXZhbHVlWyJzdG9yZUlkIl0pO30NCiAgICAgICAgICAgIGlmKCFlbXB0eSgkaXJyZWd1bGFyKSl7JHJlc3VsdDIgPSBzZWFyY2hNZW5zKCRpcnJlZ3VsYXIsJHN0b3JldmFsdWVbImRhdGUiXSwkc3RvcmV2YWx1ZVsic3RvcmVJZCJdKTt9DQoNCiAgICAgICAgICAgICRjaGVja0RhdGEyID0gIjIiOw0KICAgICAgICAgICAgJGlycmVndWxhcmNsb3NlID0gIjIiOw0KICAgICAgICAgICAgJGlycmVndWxhcm9wZW4gPSAiMiI7DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmKCFlbXB0eSgkcmVzdWx0KSl7DQogICAgICAgICAgICBmb3JlYWNoKCRyZXN1bHQgYXMgJHJlc3VsdFZhbCl7DQogICAgICAgICAgICAgJGNoZWNrVmFsID0gYXJyYXlfc2VhcmNoKCRzdG9yZXZhbHVlWyJzdGFydFRpbWUiXSwgJHJlc3VsdFZhbCk7DQogICAgICAgICAgICAgaWYoJGNoZWNrRGF0YTIgIT0gIjAiIGFuZCAkY2hlY2tWYWwgPT09IGZhbHNlKXskY2hlY2tEYXRhMiA9IjEiO31lbHNleyRjaGVja0RhdGEyID0gIjAiO30NCiAgICAgICAgICAgIH19DQogICAgICAgICAgICANCiAgICAgICAgICAgIGlmKCFlbXB0eSgkcmVzdWx0Mikpew0KICAgICAgICAgICAgZm9yZWFjaCgkcmVzdWx0MiBhcyAkcmVzdWx0VmFsMil7DQogICAgICAgICAgICAgaWYoJHJlc3VsdFZhbDJbIm9wZW5GbGciXSA9PSAiMiIpew0KICAgICAgICAgICAgICRjaGVja1ZhbDIgPSBhcnJheV9zZWFyY2goJHN0b3JldmFsdWVbInN0YXJ0VGltZSJdLCAkcmVzdWx0VmFsMik7DQogICAgICAgICAgICAgaWYoJGNoZWNrVmFsMiAhPT0gZmFsc2UpeyRpcnJlZ3VsYXJjbG9zZSA9IjEiO30NCiAgICAgICAgICAgIH19DQoNCiAgICAgICAgICAgIGZvcmVhY2goJHJlc3VsdDIgYXMgJHJlc3VsdFZhbDIpew0KICAgICAgICAgICAgIGlmKCRyZXN1bHRWYWwyWyJvcGVuRmxnIl0gPT0gIjEiKXsNCiAgICAgICAgICAgICAkY2hlY2tWYWwyID0gYXJyYXlfc2VhcmNoKCRzdG9yZXZhbHVlWyJzdGFydFRpbWUiXSwgJHJlc3VsdFZhbDIpOw0KICAgICAgICAgICAgIGlmKCRjaGVja1ZhbDIgIT09IGZhbHNlKXskaXJyZWd1bGFyb3BlbiA9IjEiO30NCiAgICAgICAgICAgIH19DQogICAgICAgICAgICB9DQogICAgICAgICAgICBpZihlbXB0eSgkcmVzdWx0KSBvciAkY2hlY2tEYXRhMiA9PSAiMSIgb3IgJGlycmVndWxhcmNsb3NlID09ICIxIiBvciAkaXJyZWd1bGFyb3BlbiA9PSAiMSIpew0KICAgICAgICAgICAgICRzYW5rYWt1Y291bnQgPSAkc2Fua2FrdWNvdW50ICsxOw0KICAgICAgICAgICAgICRob3VyMjEgPSBkYXRlKCJZL20vZCAyMTowMCIpOw0KICAgICAgICAgICAgICRuZXh0X2RhdGUgPSBkYXRlKCdZLW0tZCcsIHN0cnRvdGltZSgkdG9kYXkgLicgKzEgZGF5JykpOw0KICAgICAgICAgICAgICRub3dEYXRlMiA9IERhdGVUaW1lOjpjcmVhdGVGcm9tRm9ybWF0KCdZL20vZCBIOmknLCAkbm93RGF0ZSktPmZvcm1hdCgnWS1tLWQnKTsNCiAgICAgICAgICAgICBpZigkc2Fua2FrdWNvdW50ID09ICIxIiBhbmQgJHRvZGF5ID4gJGhvdXIyMSBhbmQgJG5vd0RhdGUyID09ICRuZXh0X2RhdGUpew0KICAgICAgICAgICAgICBlY2hvICAiPGxpIGNsYXNzPVwiaXRlbVwiPjxwIGNsYXNzPVwiY3Jvc3NcIj4kc3RvcmV2YWx1ZVZpZXc8L3A+PC9saT4iOw0KICAgICAgICAgICAgfWVsc2VpZigkaXJyZWd1bGFyb3BlbiA9PSAiMSIpew0KICAgICAgICAgICAgICBlY2hvICAiPGxpIGNsYXNzPVwiaXRlbVwiPjxwIGNsYXNzPVwiY3Jvc3NcIj4kc3RvcmV2YWx1ZVZpZXc8L3A+PC9saT4iOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgZWNobyAiPGxpIGNsYXNzPVwiaXRlbVwiPjxhIGlkPVwiJHtzdG9yZXZhbHVlWydkYXRlJ119JHtzdG9yZXZhbHVlWydzdGFydFRpbWUnXX1cIiBuYW1lPVwidGltZVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCIgY2xhc3M9XCJ0aW1lLWJ0biB0cmlhbmdsZVwiPiRzdG9yZXZhbHVlVmlldzwvYT48L2xpPiI7fQ0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgIGVjaG8gICI8bGkgY2xhc3M9XCJpdGVtXCI+PHAgY2xhc3M9XCJjcm9zc1wiPiRzdG9yZXZhbHVlVmlldzwvcD48L2xpPiI7DQogICAgICAgICAgICB9DQogICAgICAgDQogICAgICB9fX19DQogICAgIGVjaG8gIjwvdWw+PC9saT4iOw0KfQ0KICAgIGVjaG8gIjwvdWw+PHVsIGNsYXNzPVwic2NoZWR1bGUtbmF2XCI+IjsNCiAgICAgICAgICAgICAgICAgaWYoJHdlZWtjb3VudCA+ICI3Iil7DQogICAgICAgICAgICAgICAgICAkcHJldndlZWtjb3VudCA9ICR3ZWVrY291bnQgLSA0MjsgIA0KICAgICAgICAgICAgICAgICAgaWYoJHByZXZ3ZWVrY291bnQgPD0gMCl7DQogICAgICAgICAgICAgICAgICAgJHByZXZ3ZWVrY291bnQgPSAiMCI7DQogICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIGVjaG8gIjxsaSBjbGFzcz1cIm5hdi1pdGVtIHByZXZcIj48YSBpZD1cInByZXZcIiBocmVmPVwiJGZvcm1fdXJsJmNoZWNrPSR7X0dFVFsnY2hlY2snXX0mc3RvcmVJZD0ke19HRVRbJ3N0b3JlSWQnXX0mZGF0ZT0ke19HRVRbJ2RhdGUnXX0mc3RhcnRUaW1lPSR7X0dFVFsnc3RhcnRUaW1lJ119JmVuZFRpbWU9JHtfR0VUWydlbmRUaW1lJ119JjFzdEhvcGVEYXRlPSR7X0dFVFsnMXN0SG9wZURhdGUnXX0mY2lkPSR7X0dFVFsnY2lkJ119JmlycmVndWxhcj0ke19HRVRbJ2lycmVndWxhciddfSZ3ZWVrY291bnQ9JHByZXZ3ZWVrY291bnRcIj7liY3pgLHjgbg8L2E+PC9saT4iOw0KICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIGlmKCR3ZWVrY291bnQgPD0gIjcwIil7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gIjxsaSBjbGFzcz1cIm5hdi1pdGVtIG5leHRcIj48YSBpZD1cIm5leHRcIiBocmVmPVwiJGZvcm1fdXJsJmNoZWNrPSR7X0dFVFsnY2hlY2snXX0mc3RvcmVJZD0ke19HRVRbJ3N0b3JlSWQnXX0mZGF0ZT0ke19HRVRbJ2RhdGUnXX0mc3RhcnRUaW1lPSR7X0dFVFsnc3RhcnRUaW1lJ119JmVuZFRpbWU9JHtfR0VUWydlbmRUaW1lJ119JjFzdEhvcGVEYXRlPSR7X0dFVFsnMXN0SG9wZURhdGUnXX0mY2lkPSR7X0dFVFsnY2lkJ119JmlycmVndWxhcj0ke19HRVRbJ2lycmVndWxhciddfSZ3ZWVrY291bnQ9JHdlZWtjb3VudFwiPuasoemAseOBuDwvYT48L2xpPiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBlY2hvICI8L3VsPiI7DQogICAgDQogICAgZWNobyAiPGRpdiBjbGFzcz1cInNlbGVjdC1hcmVhXCI+DQogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInNlbGVjdC1saXN0XCI+DQogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWl0ZW1cIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInR0bFwiPuW4jOacm+aXpeaZgjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImRhdGVcIj4kSG9wZURhdGUxc3Qg772ePC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaXRlbVwiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidHRsXCI+5biM5pyb5pel5pmCPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZGF0ZSAybmRIb3BlXCI+5LuW5biM5pyb5pel44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE77yI5b+F6aCI77yJPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtaXRlbVwiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwidHRsXCI+5biM5pyb5pel5pmCPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZGF0ZSAzcmRIb3BlXCI+5LuW5biM5pyb5pel44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE77yI5b+F6aCI77yJPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRlbC1ib3hcIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaW1nXCI+PGltZyBzcmM9XCJodHRwczovL3d3dy5wLWEuanAvc3BpcmFsL3Jlc2VydmF0aW9uL2ltYWdlcy9pbWdfdGVsLnBuZ1wiIGFsdD1cIuOAkOOBiumbu+ipseOBp+OBruOBiuWVj+OBhOWQiOOCj+OBm+OAkeODleODquODvOOCs+ODvOODq++8mjAxMjAtMTQ3LTQ2NlwiPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1hcmVhXCI+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4taXRlbSBidG4gYnRuLWJhY2tcIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIkZW50cmFuY2VfdXJsJiR7X0dFVFsnY2lkJ119XCI+5bqX6IiX44O75pel5pmC6YG45oqe44Gr5oi744KLPC9hPg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1pdGVtIGJ0bi1zdWJtaXRcIj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCLjgYrlrqLmp5jmg4XloLHlhaXlipvjgbhcIj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIA0KDQogICAgIjsNCn0NCj8+DQo8L2Rpdj4gDQogICAgICAgICAgICA8Zm9ybSBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL3JlZ2lzdC9SZWcyIj4NCiAgICAgICAgICAgICAgICA8aDMgY2xhc3M9ImhlYWRsaW5lIj7jgYrlrqLmp5jmg4XloLHjgpLjgZTlhaXlipvjgY/jgaDjgZXjgYTjgII8L2gzPg0KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJmb3JtLWxlYWQiPuS4i+iomOODleOCqeODvOODoOOBq+W/heimgeS6i+mgheOCkuOBlOiomOWFpeOBj+OBoOOBleOBhOOAguadpeW6l+aXpeeoi+eiuuWumumAmuefpeOBjOWxiuOBjeOBvuOBmeOBruOBp+OAgeWFpeWKm+mWk+mBleOBhOOBruOBquOBhOOCiOOBhuOBiuawl+OCkuS7mOOBkeOBj+OBoOOBleOBhOOAgjwvcD4NCiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlLWJhc2UgbGlua2luZyI+DQogICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0aD7mnaXlupfluIzmnJvlupfoiJc8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/cGhwIGVjaG8gJHN0b3JlTmFtZTs/PjwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDw/cGhwDQogICAgICAgICAgICAgICAgICAgIGlmKCRjaGVja19mb3JtID09IjAiKXsNCiAgICAgICAgICAgICAgICAgZWNobyAiPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPuadpeW6l+W4jOacm+aXpeaZgjwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+5biM5pyb5pel5pmC44CAIjsNCiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJEhvcGVEYXRlMXN0Ow0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyLvvZ48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8L3RyPiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGlmKCRjaGVja19mb3JtID09IjEiKXsNCiAgICAgICAgICAgICAgICAgZWNobyAiPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoPuadpeW6l+W4jOacm+aXpeaZgjwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+5biM5pyb5pel5pmC44CAIjtlY2hvICRIb3BlRGF0ZTFzdDsgZWNobyLvvZ48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg5biM5pyb5pel5pmC44CAPHNwYW4gaWQ9XCIybmRDaGVja1wiPlwkMm5kSG9wZURhdGVcJO+9njwvc3Bhbj48YnI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg5biM5pyb5pel5pmC44CAPHNwYW4gaWQ9XCIzcmRDaGVja1wiPlwkM3JkSG9wZURhdGVcJO+9njwvc3Bhbj48L3RkPg0KICAgICAgICAgICAgICAgICAgICA8L3RyPiI7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgPz4NCiAgICAgICAgICAgICAgICA8L3RhYmxlPg0KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0idGFibGUtYmFzZSB0YWJsZS1mb3JtIj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJyZXF1aXJlZCI+5oCn5YilPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJnZW5kZXItbGlzdCIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3QtaXRlbSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0iZ2VuZGVyMDEiIG5hbWU9ImdlbmRlciIgdmFsdWU9IueUt+aApyIgPD9waHAgaWYoJGdlbmRlciA9PSAi55S35oCnIil7ZWNobyAiY2hlY2tlZCI7fSA/PiByZXF1aXJlZD48bGFiZWwgZm9yPSJnZW5kZXIwMSI+55S35oCnPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3QtaXRlbSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBpZD0iZ2VuZGVyMDIiIG5hbWU9ImdlbmRlciIgdmFsdWU9IuWls+aApyIgPD9waHAgaWYoJGdlbmRlciA9PSAi5aWz5oCnIil7ZWNobyAiY2hlY2tlZCI7fSA/PiByZXF1aXJlZD48bGFiZWwgZm9yPSJnZW5kZXIwMiI+5aWz5oCnPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1zZzIiPiRlcnJvcjpnZW5kZXIkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJyZXF1aXJlZCI+55Sf5bm05pyI5pelPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0ieWVhciIgbmFtZT0iYmlydGhEYXk6eSIgY2xhc3M9ImlucHV0LWhhbGYiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiI+44GK6YG444Gz44GP44Gg44GV44GEPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMjAwMCIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIyMDAwIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yMDAwPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5OSIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTk5Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTk5PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5OCIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTk4Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTk4PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5NyIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTk3Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTk3PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5NiIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTk2Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTk2PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5NSIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTk1Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTk1PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5NCIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTk0Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTk0PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5MyIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTkzIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTkzPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5MiIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTkyIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTkyPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5MSIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTkxIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTkxPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTk5MCIgPD9waHAgaWYoJGJpcnRoRGF5eSA9PSIxOTkwIiBvciAkYmlydGhEYXl5ID09IiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk5MDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODkiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4OSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4OTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODgiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4OCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4ODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODciIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4NyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4Nzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODYiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4NiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4Njwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODUiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4NSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4NTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODQiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4NCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4NDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODMiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4MyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4Mzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODIiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4MiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4Mjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODEiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4MSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4MTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5ODAiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk4MCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk4MDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzkiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3OSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3OTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzgiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3OCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3ODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzciIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3NyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3Nzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzYiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3NiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3Njwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzUiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3NSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3NTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzQiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3NCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3NDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzMiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3MyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3Mzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzIiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3MiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3Mjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzEiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3MSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3MTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NzAiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk3MCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk3MDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjkiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2OSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2OTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjgiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2OCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2ODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjciIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2NyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2Nzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjYiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2NiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2Njwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjUiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2NSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2NTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjQiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2NCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2NDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjMiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2MyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2Mzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjIiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2MiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2Mjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjEiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2MSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2MTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NjAiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk2MCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk2MDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTkiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1OSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1OTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTgiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1OCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1ODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTciIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1NyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1Nzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTYiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1NiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1Njwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTUiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1NSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1NTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTQiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1NCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1NDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTMiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1MyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1Mzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTIiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1MiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1Mjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTEiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1MSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1MTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NTAiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk1MCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk1MDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDkiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0OSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0OTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDgiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0OCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0ODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDciIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0NyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0Nzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDYiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0NiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0Njwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDUiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0NSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0NTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDQiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0NCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0NDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDMiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0MyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0Mzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDIiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0MiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0Mjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDEiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0MSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0MTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5NDAiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTk0MCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTk0MDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5MzkiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTkzOSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTkzOTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5MzgiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTkzOCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTkzODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5MzciIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTkzNyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTkzNzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5MzYiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTkzNiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTkzNjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5MzUiIDw/cGhwIGlmKCRiaXJ0aERheXkgPT0iMTkzNSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTkzNTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJ5ZWFyIiBjbGFzcz0iaW5wdXQtYmFjazAxIj7lubQ8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Qtd3JhcCBpbnB1dC1iYWNrMDIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0ibW9udGgiIG5hbWU9ImJpcnRoRGF5Om0iIGNsYXNzPSJpbnB1dC1zaG9ydCIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiA8P3BocCBpZigkYmlydGhEYXltID09IiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+Jm5ic3A7PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSIxIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMiIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSIyIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMyIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSIzIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4zPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNCIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSI0Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj40PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNSIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSI1Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj41PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNiIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSI2Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj42PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNyIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSI3Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj43PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iOCIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSI4Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj44PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iOSIgPD9waHAgaWYoJGJpcnRoRGF5bSA9PSI5Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj45PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTAiIDw/cGhwIGlmKCRiaXJ0aERheW0gPT0iMTAiKXtlY2hvICJzZWxlY3RlZCI7fT8+PjEwPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTEiIDw/cGhwIGlmKCRiaXJ0aERheW0gPT0iMTEiKXtlY2hvICJzZWxlY3RlZCI7fT8+PjExPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMTIiIDw/cGhwIGlmKCRiaXJ0aERheW0gPT0iMTIiKXtlY2hvICJzZWxlY3RlZCI7fT8+PjEyPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Im1vbnRoIiBjbGFzcz0iaW5wdXQtYmFjazAxIj7mnIg8L2xhYmVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWxlY3Qtd3JhcCBpbnB1dC1iYWNrMDIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iZGF5IiBuYW1lPSJiaXJ0aERheTpkIiBjbGFzcz0iaW5wdXQtc2hvcnQiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IiIgPD9waHAgaWYoJGJpcnRoRGF5ZCA9PSIiKXtlY2hvICJzZWxlY3RlZCI7fT8+PiZuYnNwOzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iMSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+MTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iMiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+Mjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iMyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+Mzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjQiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iNCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+NDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjUiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iNSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+NTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjYiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iNiIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+Njwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjciIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iNyIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+Nzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjgiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iOCIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+ODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjkiIDw/cGhwIGlmKCRiaXJ0aERheWQgPT0iOSIpe2VjaG8gInNlbGVjdGVkIjt9Pz4+OTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEwIiA8P3BocCBpZigkYmlydGhEYXlkID09IjEwIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xMDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjExIiA8P3BocCBpZigkYmlydGhEYXlkID09IjExIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xMTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEyIiA8P3BocCBpZigkYmlydGhEYXlkID09IjEyIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xMjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEzIiA8P3BocCBpZigkYmlydGhEYXlkID09IjEzIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xMzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE0IiA8P3BocCBpZigkYmlydGhEYXlkID09IjE0Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xNDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE1IiA8P3BocCBpZigkYmlydGhEYXlkID09IjE1Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xNTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE2IiA8P3BocCBpZigkYmlydGhEYXlkID09IjE2Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xNjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE3IiA8P3BocCBpZigkYmlydGhEYXlkID09IjE3Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xNzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE4IiA8P3BocCBpZigkYmlydGhEYXlkID09IjE4Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjE5IiA8P3BocCBpZigkYmlydGhEYXlkID09IjE5Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4xOTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIwIiA8P3BocCBpZigkYmlydGhEYXlkID09IjIwIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yMDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIxIiA8P3BocCBpZigkYmlydGhEYXlkID09IjIxIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yMTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIyIiA8P3BocCBpZigkYmlydGhEYXlkID09IjIyIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yMjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIzIiA8P3BocCBpZigkYmlydGhEYXlkID09IjIzIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yMzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjI0IiA8P3BocCBpZigkYmlydGhEYXlkID09IjI0Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yNDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjI1IiA8P3BocCBpZigkYmlydGhEYXlkID09IjI1Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yNTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjI2IiA8P3BocCBpZigkYmlydGhEYXlkID09IjI2Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yNjwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjI3IiA8P3BocCBpZigkYmlydGhEYXlkID09IjI3Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yNzwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjI4IiA8P3BocCBpZigkYmlydGhEYXlkID09IjI4Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yODwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjI5IiA8P3BocCBpZigkYmlydGhEYXlkID09IjI5Iil7ZWNobyAic2VsZWN0ZWQiO30/Pj4yOTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMwIiA8P3BocCBpZigkYmlydGhEYXlkID09IjMwIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4zMDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjMxIiA8P3BocCBpZigkYmlydGhEYXlkID09IjMxIil7ZWNobyAic2VsZWN0ZWQiO30/Pj4zMTwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJkYXkiIGNsYXNzPSJpbnB1dC1iYWNrMDEiPuaXpTwvbGFiZWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1zZzIiPiRlcnJvcjpiaXJ0aERheSQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgICAgICA8dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InJlcXVpcmVkIj7jgYrlkI3liY3vvIjmvKLlrZfvvIk8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJuYW1lMDEiIGNsYXNzPSJpbnB1dC1mcm9udDAyIj7lp5M8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibmFtZTAxIiBuYW1lPSJuYW1hU2VpIiB2YWx1ZT0iJG5hbWFTZWkkIiBwbGFjZWhvbGRlcj0i77yI5L6L77yJ5pel5pysIiBjbGFzcz0iaW5wdXQtdGV4dC1oYWxmIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibmFtZTAyIiBjbGFzcz0iaW5wdXQtZnJvbnQwMiBpbnB1dC1iYWNrMDIiPuWQjTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJuYW1lMDIiIG5hbWU9Im5hbWVNZWkiIHZhbHVlPSIkbmFtZU1laSQiIHBsYWNlaG9sZGVyPSLvvIjkvovvvInlpKrpg44iIGNsYXNzPSJpbnB1dC10ZXh0LWhhbGYiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6bmFtYVNlaSQ8YnI+JGVycm9yOm5hbWVNZWkkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJyZXF1aXJlZCI+44GK5ZCN5YmN77yI44Kr44OK77yJPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ia2FuYTAxIiBjbGFzcz0iaW5wdXQtZnJvbnQwMiI+44K744KkPC9sYWJlbD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImthbmEwMSIgbmFtZT0ibmFtZVNlaUthbmEiIHZhbHVlPSIkbmFtZVNlaUthbmEkIiBwbGFjZWhvbGRlcj0i77yI5L6L77yJ44OL44Ob44OzIiBjbGFzcz0iaW5wdXQtdGV4dC1oYWxmIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ia2FuYTAyIiBjbGFzcz0iaW5wdXQtZnJvbnQwMiBpbnB1dC1iYWNrMDIiPuODoeOCpDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGlkPSJrYW5hMDIiIG5hbWU9Im5hbWVNZWlLYW5hIiB2YWx1ZT0iJG5hbWVNZWlLYW5hJCIgcGxhY2Vob2xkZXI9Iu+8iOS+i++8ieOCv+ODreOCpiIgY2xhc3M9ImlucHV0LXRleHQtaGFsZiIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1zZzIiPiRlcnJvcjpuYW1lU2VpS2FuYSQ8YnI+JGVycm9yOm5hbWVNZWlLYW5hJDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDwhLS08dHI+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9InJlcXVpcmVkIj7jgYrlkI3liY3vvIjmvKLlrZfjg7vjg5Xjg6vjg43jg7zjg6DvvIk8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im5hbWUwMSIgbmFtZT0ibmFtYVNlaSIgdmFsdWU9IiRuYW1hU2VpJCIgcGxhY2Vob2xkZXI9Iu+8iOS+i++8ieaXpeacrOOAgOWkqumDjiIgY2xhc3M9ImlucHV0LXRleHQtaGFsZiIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1zZzIiPiRlcnJvcjpuYW1hU2VpJDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icmVxdWlyZWQiPuOBiuWQjeWJje+8iOOCq+ODiu+8iTwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ia2FuYTAxIiBuYW1lPSJuYW1lU2VpS2FuYSIgdmFsdWU9IiRuYW1lU2VpS2FuYSQiIHBsYWNlaG9sZGVyPSLvvIjkvovvvInjg4vjg5vjg7PjgIDjgr/jg63jgqYiIGNsYXNzPSJpbnB1dC10ZXh0LWhhbGYiIHJlcXVpcmVkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6bmFtZVNlaUthbmEkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4gLS0+DQogICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ib3B0aW9uYWwiPumDteS+v+eVquWPt++8iOWNiuinkuWFpeWKm++8iQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0ibm90ZS1saXN0IHRhYmxlLW5vdGUiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3QtaXRlbSBub3RlIj7jg4/jgqTjg5Xjg7PnhKHjgZfjgaflhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgII8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9Imxpc3QtaXRlbSBub3RlIj7pg7Xkvr/nlarlj7fjgpLlhaXjgozjgovjgajjgIHkvY/miYDjgYzoh6rli5XlhaXlipvjgZXjgozjgb7jgZnjgII8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icG9zdENvZGUiIG1heGxlbmd0aD0iNyIgdmFsdWU9IiRwb3N0Q29kZSQiY2xhc3M9ImlucHV0LWhhbGYiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6cG9zdENvZGUkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJyZXF1aXJlZCI+6YO96YGT5bqc55yMPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VsZWN0LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0icHJlZmVjdHVyZXMiIG5hbWU9InByZWZlY3R1cmVzIiBjbGFzcz0iaW5wdXQtaGFsZiIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD7jgYrpgbjjgbPjgY/jgaDjgZXjgYQ8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLljJfmtbfpgZMiICRwcmVmZWN0dXJlczoxJD7ljJfmtbfpgZM8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLpnZLmo67nnIwiICRwcmVmZWN0dXJlczoyJD7pnZLmo67nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLlsqnmiYvnnIwiICRwcmVmZWN0dXJlczozJD7lsqnmiYvnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLlrq7ln47nnIwiICRwcmVmZWN0dXJlczo0JD7lrq7ln47nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLnp4vnlLDnnIwiICRwcmVmZWN0dXJlczo1JD7np4vnlLDnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLlsbHlvaLnnIwiICRwcmVmZWN0dXJlczo2JD7lsbHlvaLnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLnpo/ls7bnnIwiICRwcmVmZWN0dXJlczo3JD7npo/ls7bnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLojKjln47nnIwiICRwcmVmZWN0dXJlczo4JD7ojKjln47nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLmoIPmnKjnnIwiICRwcmVmZWN0dXJlczo5JD7moIPmnKjnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLnvqTppqznnIwiICRwcmVmZWN0dXJlczoxMCQ+576k6aas55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5Z+8546J55yMIiAkcHJlZmVjdHVyZXM6MTEkPuWfvOeOieecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuWNg+iRieecjCIgJHByZWZlY3R1cmVzOjEyJD7ljYPokYnnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLmnbHkuqzpg70iICRwcmVmZWN0dXJlczoxMyQ+5p2x5Lqs6YO9PC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i56We5aWI5bed55yMIiAkcHJlZmVjdHVyZXM6MTQkPuelnuWliOW3neecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuaWsOa9n+ecjCIgJHByZWZlY3R1cmVzOjE1JD7mlrDmvZ/nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLlr4zlsbHnnIwiICRwcmVmZWN0dXJlczoxNiQ+5a+M5bGx55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i55+z5bed55yMIiAkcHJlZmVjdHVyZXM6MTckPuefs+W3neecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Iuemj+S6leecjCIgJHByZWZlY3R1cmVzOjE4JD7npo/kupXnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLlsbHmoqjnnIwiICRwcmVmZWN0dXJlczoxOSQ+5bGx5qKo55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i6ZW36YeO55yMIiAkcHJlZmVjdHVyZXM6MjAkPumVt+mHjuecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuWykOmYnOecjCIgJHByZWZlY3R1cmVzOjIxJD7lspDpmJznnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLpnZnlsqHnnIwiICRwcmVmZWN0dXJlczoyMiQ+6Z2Z5bKh55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5oSb55+l55yMIiAkcHJlZmVjdHVyZXM6MjMkPuaEm+efpeecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuS4iemHjeecjCIgJHByZWZlY3R1cmVzOjI0JD7kuInph43nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLmu4vos4DnnIwiICRwcmVmZWN0dXJlczoyNSQ+5ruL6LOA55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5Lqs6YO95bqcIiAkcHJlZmVjdHVyZXM6MjYkPuS6rOmDveW6nDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuWkp+mYquW6nCIgJHByZWZlY3R1cmVzOjI3JD7lpKfpmKrlupw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLlhbXluqvnnIwiICRwcmVmZWN0dXJlczoyOCQ+5YW15bqr55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5aWI6Imv55yMIiAkcHJlZmVjdHVyZXM6MjkkPuWliOiJr+ecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuWSjOatjOWxseecjCIgJHByZWZlY3R1cmVzOjMwJD7lkozmrYzlsbHnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLps6Xlj5bnnIwiICRwcmVmZWN0dXJlczozMSQ+6bOl5Y+W55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5bO25qC555yMIiAkcHJlZmVjdHVyZXM6MzIkPuWztuagueecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuWyoeWxseecjCIgJHByZWZlY3R1cmVzOjMzJD7lsqHlsbHnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLluoPls7bnnIwiICRwcmVmZWN0dXJlczozNCQ+5bqD5bO255yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5bGx5Y+j55yMIiAkcHJlZmVjdHVyZXM6MzUkPuWxseWPo+ecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuW+s+WztuecjCIgJHByZWZlY3R1cmVzOjM2JD7lvrPls7bnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLpppnlt53nnIwiICRwcmVmZWN0dXJlczozNyQ+6aaZ5bed55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5oSb5aqb55yMIiAkcHJlZmVjdHVyZXM6MzgkPuaEm+Wqm+ecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IumrmOefpeecjCIgJHByZWZlY3R1cmVzOjM5JD7pq5jnn6XnnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLnpo/lsqHnnIwiICRwcmVmZWN0dXJlczo0MCQ+56aP5bKh55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5L2Q6LOA55yMIiAkcHJlZmVjdHVyZXM6NDEkPuS9kOizgOecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IumVt+W0juecjCIgJHByZWZlY3R1cmVzOjQyJD7plbfltI7nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLnhormnKznnIwiICRwcmVmZWN0dXJlczo0MyQ+54aK5pys55yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5aSn5YiG55yMIiAkcHJlZmVjdHVyZXM6NDQkPuWkp+WIhuecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuWuruW0juecjCIgJHByZWZlY3R1cmVzOjQ1JD7lrq7ltI7nnIw8L29wdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSLpub/lhZDls7bnnIwiICRwcmVmZWN0dXJlczo0NiQ+6bm/5YWQ5bO255yMPC9vcHRpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0i5rKW57iE55yMIiAkcHJlZmVjdHVyZXM6NDckPuaylue4hOecjDwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IuOBneOBruS7liIgJHByZWZlY3R1cmVzOjAkPuOBneOBruS7ljwvb3B0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6cHJlZmVjdHVyZXMkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJyZXF1aXJlZCI+5biC44O75Yy644O76YOh44O755S65ZCN44O755Wq5ZywPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImNpdHkiIHZhbHVlPSIkY2l0eSQiIGNsYXNzPSJpbnB1dC1sb25nIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXNnMiI+JGVycm9yOmNpdHkkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJvcHRpb25hbCI+5bu654mp44O744Oe44Oz44K344On44Oz5ZCNPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbnB1dC13cmFwIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InRvd25OYW1lIiB2YWx1ZT0iJHRvd25OYW1lJCIgY2xhc3M9ImlucHV0LWxvbmciPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6dG93bk5hbWUkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgICAgICAgICAgPC90cj4NCiAgICAgICAgICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJyZXF1aXJlZCI+6Zu76Kmx55Wq5Y+377yI5pC65biv77yJDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJub3RlLWxpc3QgdGFibGUtbm90ZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0ibGlzdC1pdGVtIG5vdGUiPuODj+OCpOODleODs+eEoeOBl+OBp+WFpeWKm+OBl+OBpuOBj+OBoOOBleOBhOOAgjwvbGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJwaG9uZSIgbWF4bGVuZ3RoPSIxNCIgdmFsdWU9IiRwaG9uZSQiIGNsYXNzPSJpbnB1dC1oYWxmIiByZXF1aXJlZD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibXNnMiI+JGVycm9yOnBob25lJDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0icmVxdWlyZWQiPmUtbWFpbDwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5wdXQtd3JhcCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJtYWlsIiB2YWx1ZT0iJG1haWwkIiBjbGFzcz0iaW5wdXQtbG9uZyIgcmVxdWlyZWQ+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Im1zZzIiPiRlcnJvcjptYWlsJDwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ib3B0aW9uYWwiPuOCs+ODoeODs+ODiA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0YWJsZS1ub3RlIG5vdGUtdHh0Ij7jgZTopoHmnJvjgoTjgZTos6rllY/jgYzjgZTjgZbjgYTjgb7jgZfjgZ/jgonjgIHjgYrmsJfou73jgavjgZToqJjlhaXjgY/jgaDjgZXjgYTjgII8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlucHV0LXdyYXAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iY29tbWVudCIgcm93cz0iMyIgY29scz0iNTAiIGNsYXNzPSJpbnB1dC1sb25nIj4kY29tbWVudCQ8L3RleHRhcmVhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6Y29tbWVudCQ8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgICAgICAgICA8L3RyPg0KICAgICAgICAgICAgICAgIDwvdGFibGU+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGV0ZWN0IiB2YWx1ZT0i5Yik5a6aIj4NCiAgICAgICAgICAgICAgICA8IS0tIEhJRERFTl9QQVJBTSBTVEFSVCAtLT4NCiAgICAgICAgICAgICAgICAkZm9ybTpoaWRkZW4kDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVpZENvZGUiIHZhbHVlPSI8P3BocCBlY2hvICRTUElSQUwtPmdldFBhcmFtKCJ1aWQiKTsgPz4iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjaWRDb2RlIiB2YWx1ZT0iPD9waHAgZWNobyAkU1BJUkFMLT5nZXRQYXJhbSgiY2lkIik7ID8+Ij4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iMXN0SG9wZURhdGUiIHZhbHVlPSI8P3BocCBlY2hvICRTUElSQUwtPmdldFBhcmFtKCIxc3RIb3BlRGF0ZSIpOyA/PiI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IjJuZEhvcGVEYXRlIiB2YWx1ZT0iJDJuZEhvcGVEYXRlJCI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IjNyZEhvcGVEYXRlIiB2YWx1ZT0iJDNyZEhvcGVEYXRlJCI+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdGFmZklkIiB2YWx1ZT0iPD9waHAgZWNobyAkcmVjb3JkWyJzdGFmZklkIl0gPz4iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdG9yZUlkIiB2YWx1ZT0iPD9waHAgZWNobyAkc3RvcmVJZCA/PiI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJvb3RoSWQiIHZhbHVlPSI8P3BocCBlY2hvICRyZWNvcmRbImJvb3RoSWQiXSA/PiI+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzdHJhdFRpbWUiIHZhbHVlPSI8P3BocCBlY2hvICRzdGFydHRpbWUgPz4iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbmRUaW1lIiB2YWx1ZT0iPD9waHAgZWNobyAkZW5kdGltZSA/PiI+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25mU3RhcnRUaW1lIiB2YWx1ZT0iPD9waHAgZWNobyAkcmVjb3JkWyJjb25mU3RhcnRUaW1lIl0gPz4iPg0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25mRW5kVGltZSIgdmFsdWU9Ijw/cGhwIGVjaG8gJHJlY29yZFsiY29uZkVuZFRpbWUiXSA/PiI+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpcnJlZ3VsYXI0IiB2YWx1ZT0iPD9waHAgZWNobyAkcmVjb3JkWyJpcnJlZ3VsYXIiXSA/PiI+DQogICAgICAgICAgICAgICAgPCEtLSBISURERU5fUEFSQU0gRU5EIC0tPg0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImluZm8tYXJlYSI+DQogICAgICAgICAgICAgICAgICAgIDxwPuOBlOiomOWFpeOBguOCiuOBjOOBqOOBhuOBlOOBluOBhOOBvuOBl+OBn+OAgjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgIOW9k+ekvuOBruOAjOWAi+S6uuaDheWgseOBruWPluOCiuaJseOBhOOBq+OBpOOBhOOBpuOAjeOCkuOBiuiqreOBv+OBhOOBn+OBoOOBjeOAgeWQjOaEj+OBquOBleOCi+WgtOWQiOOBr+OAjOWQjOaEj+OBmeOCi+OAjeOBq+ODgeOCp+ODg+OCr+OCkuWFpeOCjOOBpuOAgeOAjOeiuuiqjeOBmeOCi+OAjeOCkuaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgjwvcD4NCiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxpbmsiPjxhIGhyZWY9Imh0dHBzOi8vdGFtZW55LmpwL3ByaXZhY3kvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImxpbmstYnJhbmsiPuWAi+S6uuaDheWgseOBruWPluOCiuaJseOBhOOBq+OBpOOBhOOBpjwvYT48L3A+DQogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFncmVlLWFyZWEiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImFncmVlLWJveCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJhZ3JlZSIgaWQ9ImFncmVlIiB2YWx1ZT0iMSIgJGFncmVlJCByZXF1aXJlZD48bGFiZWwgZm9yPSJhZ3JlZSIgY2xhc3M9ImFncmVlLWJ0biI+5ZCM5oSP44GZ44KLPC9sYWJlbD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJtc2cyIj4kZXJyb3I6YWdyZWUkPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VibWl0LWJveCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InVuc3VibWl0LWJ0biI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJidG4taW5uZXIiPuacquWFpeWKm+OBrumgheebruOBjOOBguOCiuOBvuOBmTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InN1Ym1pdC1idG4gaXMtaGlkZSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1YiIgdmFsdWU9IueiuuiqjeeUu+mdouOBuCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KIA0KICAgICAgICAgICAgPC9mb3JtPg0KICA8L2Rpdj4NCiAgICAgICAgPGRpdiBjbGFzcz0icGF0aCI+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwLyI+57WQ5ama55u46KuH5omA44O757WQ5ama5pSv5o+044K144O844OT44K544OR44O844OI44OK44O844Ko44O844K444Kn44Oz44OIPC9hPiAmZ3Q7IDxzdHJvbmc+54Sh5paZ5p2l5bqX5LqI57SEPC9zdHJvbmc+PC9kaXY+DQogPC9tYWluPg0KDQogICAgPGRpdiBpZD0iZm9vdGVyIj4NCiAgICAgICAgPGRpdiBpZD0iZm9vdGVyX2lubmVyIj4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0icG1hcmtMaXN0IGNsZWFyZml4Ij4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3ByaXZhY3ltYXJrLmpwLyIgcmVsPSJub2ZvbGxvdyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Imh0dHBzOi8vd3d3LnAtYS5qcC9pbWFnZXMvZm9vdGVyL2ljb25fcHJpdmVyY3kuZ2lmIiB3aWR0aD0iNTAiIGhlaWdodD0iNTQiIGFsdD0i77yw44Oe44O844KvIj48L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5pc21zLmppcGRlYy5qcC9pc21zLmh0bWwiIHJlbD0ibm9mb2xsb3ciIHRhcmdldD0iX2JsYW5rIj48aW1nDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPSJodHRwczovL3d3dy5wLWEuanAvaW1hZ2VzL2Zvb3Rlci9pY29uX2JzaTIuZ2lmIiB3aWR0aD0iODIiIGhlaWdodD0iMzAiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJJUyA1MTc5NjkvSVNP77yISklTIFHvvIkyNzAwMSI+PC9hPg0KICAgICAgICAgICAgICAgICAgICA8cD5GUyA1MjQwMzkvPGJyPklTTyhKSVMgUSk5MDAxPC9wPg0KICAgICAgICAgICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgPGxpPjxpbWcgc3JjPSJodHRwczovL3d3dy5wLWEuanAvaW1hZ2VzL2Zvb3Rlci9pY29uX2JzaTMuZ2lmIiB3aWR0aD0iODMiIGhlaWdodD0iMzEiIGFsdD0iRlMgNTI0MDM5L0lTTyhKSVMgUSk5MDAxIj4NCiAgICAgICAgICAgICAgICAgICAgPHA+SVMgNTE3OTY5Lzxicj5JU08oSklTIFEpMjcwMDE8L3A+DQogICAgICAgICAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL2NvbXBhbnkvY29tcGxhaW50c3JlYWN0aW9uLmh0bWwiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly93d3cucC1hLmpwL2ltYWdlcy9mb290ZXIvaWNvbl9ic2kxLmdpZiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD0iMzEiIGhlaWdodD0iMzAiIGFsdD0iQ01TIDU2NjI5OC9JU0/vvIhKSVMgUe+8iTEwMDAyIj48L2E+DQogICAgICAgICAgICAgICAgICAgIDxwPkNNUyA1NjYyOTgvPGJyPklTTyhKSVMgUSkxMDAwMjwvcD4NCiAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmptaWMuZ3IuanAvIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnAtYS5qcC9pbWFnZXMvZm9vdGVyL2ljb25fam1pYy5naWYiIHdpZHRoPSI5NiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9IjU4IiBhbHQ9IkpNSUMiPjwvYT48L2xpPg0KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3Lmltcy1ucG8ub3JnLyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL3d3dy5wLWEuanAvaW1hZ2VzL2Zvb3Rlci9pY29uX2Ntcy5naWYiIGhlaWdodD0iNjAiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PSJDTVMiPjwvYT48L2xpPg0KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCk7IiBvbmNsaWNrPSJ2ZXJpc2lnbigpOyI+PGltZyBzcmM9Imh0dHBzOi8vd3d3LnAtYS5qcC9pbWFnZXMvZm9vdGVyL2ljb25fdmVyaXNpZ24uZ2lmIg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPSI3OSIgaGVpZ2h0PSI0OCIgYWx0PSJWZXJpU2lnbiI+PC9hPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJjb2RlIGNsZWFyZml4Ij48aW1nIHNyYz0iaHR0cHM6Ly93d3cucC1hLmpwL2ltYWdlcy9mb290ZXIvaWNvbl9jb2RlLnBuZyINCiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD0i5qCq5byP5Lya56S+44OR44O844OI44OK44O844Ko44O844K444Kn44Oz44OI44Gv44CB5p2x5Lqs6Ki85Yi45Y+W5byV5omA44Oe44K244O844K644Gr5LiK5aC044GX44Gm44GK44KK44G+44GZ44CC77yI6Ki85Yi444Kz44O844OJ77yaNjE4Me+8iSIgY2xhc3M9ImZsIj4NCiAgICAgICAgICAgICAgICAgICAgPHA+5qCq5byP5Lya56S+44OR44O844OI44OK44O844Ko44O844K444Kn44Oz44OI44Gv44CB5p2x5Lqs6Ki85Yi45Y+W5byV5omA44Oe44K244O844K644Gr5LiK5aC044GX44Gm44GK44KK44G+44GZ44CC77yI6Ki85Yi444Kz44O844OJ77yaNjE4Me+8iTwvcD4NCiAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyX21lbnUgY2xlYXJmaXgiPg0KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3d3dy5wLWEuanAvcG9saWN5L3BtYXJrLyI+44K744Kt44Ol44Oq44OG44Kj44O7Q1PlkJHkuIrjgbjjga7lj5bntYTjgb88L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL3BvbGljeS9wcml2YWN5LyI+5YCL5Lq65oOF5aCx5L+d6K235pa56YedPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnAtYS5qcC9wb2xpY3kvcHJpdmFjeS9hYm91dDMuaHRtbCI+5YCL5Lq65oOF5aCx44Gu5Y+W5omx44GE44Gr44Gk44GE44GmPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnAtYS5qcC9wb2xpY3kvc2VjdXJpdHkvIj7mg4XloLHjgrvjgq3jg6Xjg6rjg4bjgqPln7rmnKzmlrnph508L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL3BvbGljeS9jb21wbGFpbnRzcmVhY3Rpb24vIj7oi6bmg4Xlr77lv5zmlrnph508L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL3BvbGljeS9hY3Rpb25wbGFuLyI+5LiA6Iis5LqL5qWt5Li76KGM5YuV6KiI55S7PC9hPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnAtYS5qcC9wb2xpY3kvY29weXJpZ2h0LyI+6JGX5L2c5qip44O744Oq44Oz44Kv44Gr44Gk44GE44GmPC9hPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnAtYS5qcC9wb2xpY3kvc25zLyI+44K944O844K344Oj44Or44Oh44OH44Kj44Ki44Od44Oq44K344O8PC9hPjwvbGk+DQogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LnAtYS5qcC9wb2xpY3kvc2l0ZWhpc3RvcnkvIj7lsaXmrbTmg4XloLHjgYrjgojjgbPnibnmgKfmg4XloLHjga7liKnnlKjnrYnjgavjgaTjgYTjgaY8L2E+PC9saT4NCiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cucC1hLmpwL3BvbGljeS9ydWxlLyI+54m55a6a5ZWG5Y+W5byV5rOV44Gr5Z+644Gl44GP6KGo6KiYPC9hPjwvbGk+DQogICAgICAgICAgICA8L3VsPg0KICAgICAgICAgICAgPHAgY2xhc3M9ImNvcHlyaWdodCI+VGFtZW55LEluYy4gQWxsIHJpZ2h0cyBSZXNlcnZlZC4gPC9wPg0KICAgICAgICAgICAgPCEtLSAvI2Zvb3Rlcl9pbm5lciAtLT4NCiAgICAgICAgPC9kaXY+DQogICAgICAgIDwhLS0gLyNmb290ZXIgLS0+DQogICAgPC9kaXY+DQogICAgPCEtLSAvI3dyYXBwZXIgLS0+DQoNCiAgICA8ZGl2IGNsYXNzPSJzcF90YWciPg0KICAgIDwvZGl2Pg0KDQogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vd3d3LnAtYS5qcC9zcGlyYWwvcmVzZXJ2YXRpb24vanMvcmliYm9uLmpzIj48L3NjcmlwdD4NCiAgICA8IS0tR3lyby1uIEVGTy0tPg0KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogIHZhciBfX2d5cmVmb19xdWV1ZSA9IF9fZ3lyZWZvX3F1ZXVlIHx8IFtdOw0KICAgICAgX19neXJlZm9fcXVldWUucHVzaChbImxvYWRFRk8iLCAiZm9ybV9yZXNlcnZhdGlvbiJdKTsNCiAgKGZ1bmN0aW9uKCkgew0KICAgIHZhciBnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOw0KICAgIGdlLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsgZ2UuYXN5bmMgPSB0cnVlOw0KICAgIGdlLmNoYXJzZXQgPSAidXRmLTgiOw0KICAgIGdlLnNyYyA9IGxvY2F0aW9uLnByb3RvY29sICsgIi8vZWZvLmd5cm8tbi5jb20vanMvZ3lyLWVmby5taW4uanMiOw0KICAgIHZhciBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOw0KICAgIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZ2UsIHMpOw0KICB9KSgpOw0KPC9zY3JpcHQ+DQoNCjwhLS0gVmUgc3RhcnQgLS0+PCEtLQ0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiFmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2EudHlwZT0idGV4dC9qYXZhc2NyaXB0IixhLmFzeW5jPSEwLGEuc3JjPSIvL2NvbmZpZ2pwMi52ZWludGVyYWN0aXZlLmNvbS90YWdzL0M5Q0ZBRDY0L0EwRUMvNEIyNC9BQzMxLzhFQzE4RkQxRUUwRi90YWcuanMiO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07aWYoYiliLmFwcGVuZENoaWxkKGEsYik7ZWxzZXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfX0oKTs8L3NjcmlwdD4tLT4NCjwhLS0gVmUgZW5kIC0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vanMvaGRheWpwLmpzIj48L3NjcmlwdD4NCiA8c2NyaXB0IHNyYz0iLi4vanMvemVicmFfZGF0ZXBpY2tlci5taW4uanMiPjwvc2NyaXB0Pg0KIDxzY3JpcHQ+DQogLyoNCiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAkKCcjZGF5MScpLlplYnJhX0RhdGVQaWNrZXIoew0KICAgIGRpcmVjdGlvbjogMSwNCiAgICBmb3JtYXQ6ICdZL20vZCcsDQogICAgZmlyc3RfZGF5X29mX3dlZWs6ICcwJywNCiAgICBkYXlzOiBbJ+aXpScsICfmnIgnLCAn54GrJywgJ+awtCcsICfmnKgnLCAn6YeRJywgJ+WcnyddLA0KICAgIG1vbnRoczogWycx5pyIJywgJzLmnIgnLCAnM+aciCcsICc05pyIJywgJzXmnIgnLCAnNuaciCcsICc35pyIJywgJzjmnIgnLCAnOeaciCcsICcxMOaciCcsICcxMeaciCcsICcxMuaciCddLA0KICAgIHNob3dfc2VsZWN0X3RvZGF5OiBmYWxzZSwNCiAgICBsYW5nX2NsZWFyX2RhdGU6ICfliYrpmaQnLA0KICAgIG9uQ2hhbmdlOiAoZnVuY3Rpb24odmlldywgZWxlbWVudHMpIHsNCiAgICAgaWYgKHZpZXcgPT0gJ2RheXMnKSB7DQogICAgICBlbGVtZW50cy5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgIHZhciBkYXRlX3NsYXNoID0gJCh0aGlzKS5kYXRhKCdkYXRlJykucmVwbGFjZSgvLS9nLCAnLycpOw0KICAgICAgIHZhciBkYXRlX29iaiA9IG5ldyBEYXRlKGRhdGVfc2xhc2gpOw0KICAgICAgIHZhciBoZGF5cyA9IGhkYXlqcC5jYWxjdWxhdGUoZGF0ZV9vYmouZ2V0RnVsbFllYXIoKSwgZGF0ZV9vYmouZ2V0TW9udGgoKSwgdHJ1ZSk7DQogICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZGF5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgciA9IGhkYXlzW2ldOw0KICAgICAgICB2YXIgcnIgPSBuZXcgUmVnRXhwKCJcLSIgKyAoIjAiICsgci5tZCkuc3Vic3RyKC0yKSArICIkIik7DQogICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2RhdGUnKS5tYXRjaChycikpIHsNCiAgICAgICAgICQodGhpcykuY3NzKHsNCiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmVkOWQ5JywNCiAgICAgICAgICBjb2xvcjogJyMzMzMnDQogICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgIH0NCiAgICAgIH0pOw0KICAgICB9DQogICAgfSksDQogICAgb25TZWxlY3Q6IGZ1bmN0aW9uKCkgew0KICAgICAkKHRoaXMpLmNoYW5nZSgpOw0KICAgIH0NCiAgIH0pOw0KICB9KTsqLw0KICANCiAgLyoNCiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAkKCcjZGF5MicpLlplYnJhX0RhdGVQaWNrZXIoew0KICAgIGRpcmVjdGlvbjogMSwNCiAgICBmb3JtYXQ6ICdZL20vZCcsDQogICAgZmlyc3RfZGF5X29mX3dlZWs6ICcwJywNCiAgICBkYXlzOiBbJ+aXpScsICfmnIgnLCAn54GrJywgJ+awtCcsICfmnKgnLCAn6YeRJywgJ+WcnyddLA0KICAgIG1vbnRoczogWycx5pyIJywgJzLmnIgnLCAnM+aciCcsICc05pyIJywgJzXmnIgnLCAnNuaciCcsICc35pyIJywgJzjmnIgnLCAnOeaciCcsICcxMOaciCcsICcxMeaciCcsICcxMuaciCddLA0KICAgIHNob3dfc2VsZWN0X3RvZGF5OiBmYWxzZSwNCiAgICBsYW5nX2NsZWFyX2RhdGU6ICfliYrpmaQnLA0KICAgIG9uQ2hhbmdlOiAoZnVuY3Rpb24odmlldywgZWxlbWVudHMpIHsNCiAgICAgaWYgKHZpZXcgPT0gJ2RheXMnKSB7DQogICAgICBlbGVtZW50cy5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgIHZhciBkYXRlX3NsYXNoID0gJCh0aGlzKS5kYXRhKCdkYXRlJykucmVwbGFjZSgvLS9nLCAnLycpOw0KICAgICAgIHZhciBkYXRlX29iaiA9IG5ldyBEYXRlKGRhdGVfc2xhc2gpOw0KICAgICAgIHZhciBoZGF5cyA9IGhkYXlqcC5jYWxjdWxhdGUoZGF0ZV9vYmouZ2V0RnVsbFllYXIoKSwgZGF0ZV9vYmouZ2V0TW9udGgoKSwgdHJ1ZSk7DQogICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZGF5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgciA9IGhkYXlzW2ldOw0KICAgICAgICB2YXIgcnIgPSBuZXcgUmVnRXhwKCJcLSIgKyAoIjAiICsgci5tZCkuc3Vic3RyKC0yKSArICIkIik7DQogICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2RhdGUnKS5tYXRjaChycikpIHsNCiAgICAgICAgICQodGhpcykuY3NzKHsNCiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmVkOWQ5JywNCiAgICAgICAgICBjb2xvcjogJyMzMzMnDQogICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgIH0NCiAgICAgIH0pOw0KICAgICB9DQogICAgfSksDQogICAgb25TZWxlY3Q6IGZ1bmN0aW9uKCkgew0KICAgICAkKHRoaXMpLmNoYW5nZSgpOw0KICAgIH0NCiAgIH0pOw0KICB9KTsqLw0KICANCiAgLyoNCiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAkKCcjZGF5MycpLlplYnJhX0RhdGVQaWNrZXIoew0KICAgIGRpcmVjdGlvbjogMSwNCiAgICBmb3JtYXQ6ICdZL20vZCcsDQogICAgZmlyc3RfZGF5X29mX3dlZWs6ICcwJywNCiAgICBkYXlzOiBbJ+aXpScsICfmnIgnLCAn54GrJywgJ+awtCcsICfmnKgnLCAn6YeRJywgJ+WcnyddLA0KICAgIG1vbnRoczogWycx5pyIJywgJzLmnIgnLCAnM+aciCcsICc05pyIJywgJzXmnIgnLCAnNuaciCcsICc35pyIJywgJzjmnIgnLCAnOeaciCcsICcxMOaciCcsICcxMeaciCcsICcxMuaciCddLA0KICAgIHNob3dfc2VsZWN0X3RvZGF5OiBmYWxzZSwNCiAgICBsYW5nX2NsZWFyX2RhdGU6ICfliYrpmaQnLA0KICAgIG9uQ2hhbmdlOiAoZnVuY3Rpb24odmlldywgZWxlbWVudHMpIHsNCiAgICAgaWYgKHZpZXcgPT0gJ2RheXMnKSB7DQogICAgICBlbGVtZW50cy5lYWNoKGZ1bmN0aW9uKCkgew0KICAgICAgIHZhciBkYXRlX3NsYXNoID0gJCh0aGlzKS5kYXRhKCdkYXRlJykucmVwbGFjZSgvLS9nLCAnLycpOw0KICAgICAgIHZhciBkYXRlX29iaiA9IG5ldyBEYXRlKGRhdGVfc2xhc2gpOw0KICAgICAgIHZhciBoZGF5cyA9IGhkYXlqcC5jYWxjdWxhdGUoZGF0ZV9vYmouZ2V0RnVsbFllYXIoKSwgZGF0ZV9vYmouZ2V0TW9udGgoKSwgdHJ1ZSk7DQogICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoZGF5cy5sZW5ndGg7IGkrKykgew0KICAgICAgICB2YXIgciA9IGhkYXlzW2ldOw0KICAgICAgICB2YXIgcnIgPSBuZXcgUmVnRXhwKCJcLSIgKyAoIjAiICsgci5tZCkuc3Vic3RyKC0yKSArICIkIik7DQogICAgICAgIGlmICgkKHRoaXMpLmRhdGEoJ2RhdGUnKS5tYXRjaChycikpIHsNCiAgICAgICAgICQodGhpcykuY3NzKHsNCiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmVkOWQ5JywNCiAgICAgICAgICBjb2xvcjogJyMzMzMnDQogICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgIH0NCiAgICAgIH0pOw0KICAgICB9DQogICAgfSksDQogICAgb25TZWxlY3Q6IGZ1bmN0aW9uKCkgew0KICAgICAkKHRoaXMpLmNoYW5nZSgpOw0KICAgIH0NCiAgIH0pOw0KICB9KTsqLw0KIDwvc2NyaXB0Pg0KPCEtLSBWZSBzdGFydCAtLT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiFmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2EudHlwZT0idGV4dC9qYXZhc2NyaXB0IixhLmFzeW5jPSEwLGEuc3JjPSIvL2NvbmZpZ2pwMi52ZWludGVyYWN0aXZlLmNvbS90YWdzLzk1ZGYzMjcwL2NkMDEvNDYwMi9iMjBjL2Y5MWVhOTc1NWJjMC90YWcuanMiO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07aWYoYiliLmFwcGVuZENoaWxkKGEsYik7ZWxzZXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07Yi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLGIpfX0oKTsNCjwvc2NyaXB0Pg0KPCEtLSBWZSBlbmQgLS0+DQo8L2JvZHk+DQogICAgPHNjcmlwdD4NCiAgICAgICAgISBmdW5jdGlvbiAoKSB7DQogICAgICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOw0KICAgICAgICAgICAgYS50eXBlID0gInRleHQvamF2YXNjcmlwdCIsIGEuYXN5bmMgPSAhMCwgYS5zcmMgPQ0KICAgICAgICAgICAgICAgICIvL2NvbmZpZ2pwMi52ZWludGVyYWN0aXZlLmNvbS90YWdzLzk1ZGYzMjcwL2NkMDEvNDYwMi9iMjBjL2Y5MWVhOTc1NWJjMC90YWcuanMiOw0KICAgICAgICAgICAgdmFyIGIgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdOw0KICAgICAgICAgICAgaWYgKGIpIGIuYXBwZW5kQ2hpbGQoYSwgYik7DQogICAgICAgICAgICBlbHNlIHsNCiAgICAgICAgICAgICAgICB2YXIgYiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsNCiAgICAgICAgICAgICAgICBiLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsIGIpDQogICAgICAgICAgICB9DQogICAgICAgIH0oKTsNCiAgICA8L3NjcmlwdD4NCiAgICA8IS0tIFZlIGVuZCAtLT4NCiAgICA8c2NyaXB0Pg0KICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCiAgICAgdmFyIGRhdGUyID0gIjw/ZWNobyAkSG9wZURhdGUybmQ7Pz4iOw0KICAgICB2YXIgZGF0ZTMgPSAiPD9lY2hvICRIb3BlRGF0ZTNyZDs/PiI7DQogICAgIA0KICAgICBpZihkYXRlMil7DQogICAgICBuZXh0dXJsID0gJCgiI25leHQiKS5hdHRyKCdocmVmJykgKyAiJjJuZEhvcGVEYXRlPSIgKyBkYXRlMjsNCiAgIHByZXZ1cmwgPSAkKCIjcHJldiIpLmF0dHIoJ2hyZWYnKSArICImMm5kSG9wZURhdGU9IiArIGRhdGUyOw0KICAgJCgiI25leHQiKS5hdHRyKCJocmVmIiwgbmV4dHVybCk7DQogICAkKCIjcHJldiIpLmF0dHIoImhyZWYiLCBwcmV2dXJsKTsgDQogICAgIH0NCiAgICAgDQogICAgIGlmKGRhdGUzKXsNCiAgICAgIG5leHR1cmwgPSAkKCIjbmV4dCIpLmF0dHIoJ2hyZWYnKSArICImM3JkSG9wZURhdGU9IiArIGRhdGUzOw0KICAgcHJldnVybCA9ICQoIiNwcmV2IikuYXR0cignaHJlZicpICsgIiYzcmRIb3BlRGF0ZT0iICsgZGF0ZTM7DQogICAkKCIjbmV4dCIpLmF0dHIoImhyZWYiLCBuZXh0dXJsKTsNCiAgICQoIiNwcmV2IikuYXR0cigiaHJlZiIsIHByZXZ1cmwpOw0KICAgICB9DQogICAgIA0KICAgICAgICAvL+W/hemgiOmgheebruOBjOepuuOBi+OBqeOBhuOBi+ODleODqeOCsA0KICAgICAgICBsZXQgZmxhZyA9IHRydWU7DQogICAgICAgIC8v5b+F6aCI6aCF55uu44KS44Gy44Go44Gk44Ga44Gk44OB44Kn44OD44KvDQogICAgICAgICQoJ2Zvcm0gaW5wdXQ6cmVxdWlyZWQnKS5lYWNoKGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAgIC8v44KC44GX5b+F6aCI6aCF55uu44GM56m644Gq44KJDQogICAgICAgICAgICBpZiAoJCgnZm9ybSBpbnB1dDpyZXF1aXJlZCcpLmVxKGUpLnZhbCgpID09PSAiIikgew0KICAgICAgICAgICAgICAgIGZsYWcgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIA0KICAgICAgICAkKCdbdHlwZT0iY2hlY2tib3giXScpLmVhY2goZnVuY3Rpb24oZSkgew0KICAgICAgICAgICAgLy/jgoLjgZflv4XpoIjpoIXnm67jgYznqbrjgarjgokNCiAgICAgICAgICAgIGlmICgkKCdpbnB1dFtuYW1lPSJhZ3JlZSJdOmNoZWNrZWQnKS5sZW5ndGggPT09IDApIHsNCiAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICANCiAgICAgICAgJCgnW3R5cGU9InJhZGlvIl0nKS5lYWNoKGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAgIC8v44KC44GX5b+F6aCI6aCF55uu44GM56m644Gq44KJDQogICAgICAgICAgICBpZiAoJCgnaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkJykubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgDQogICAgICAgIC8v5YWo44Gm5Z+L44G+44Gj44Gm44GE44Gf44KJDQogICAgICAgIGlmIChmbGFnKSB7DQogICAgICAgICAgICAvL+mAgeS/oeODnOOCv+ODs+OCkuW+qea0uw0KICAgICAgICAgICAgJCgiLnN1Ym1pdC1idG4iKS5zaG93KCk7DQogICAgICAgICAgICAkKCIudW5zdWJtaXQtYnRuIikuaGlkZSgpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgLy/pgIHkv6Hjg5zjgr/jg7PjgpLplonjgZjjgosNCiAgICAgICAgICAgICQoIi5zdWJtaXQtYnRuIikuaGlkZSgpOw0KICAgICAgICAgICAgJCgiLnVuc3VibWl0LWJ0biIpLnNob3coKTsNCiAgICAgICAgfQ0KICAgICANCiAgICB2YXIgY2hlY2sgPSA8P3BocCBlY2hvICRjaGVja19mb3JtOyA/PjsNCiAgICBpZihjaGVjayA9PSAxKXsNCiAgICAgJCgiZm9ybSIpLmhpZGUoKTsNCiAgICAgJCgiLmJ0bi1zdWJtaXQiKS5oaWRlKCk7DQogICAgICQoIiNpdGVtMiIpLmhpZGUoKTsNCiAgICAgDQogICAgIHZhciB0ZF9ub3cgPSAiPD9waHAgZWNobyAkSG9wZURhdGUxc3Q7ID8+IjsNCiAgICAgJCgiIyIgKyB0ZF9ub3cpLmFkZENsYXNzKCdpcy1jdXJyZW50Jyk7DQogICAgICQoIiMiICsgdGRfbm93KS5jc3MoInBvaW50ZXItZXZlbnRzIiwgIm5vbmUiKTsNCiAgICAgDQogICAgIHZhciBob3BlMiA9ICI8P3BocCBlY2hvICRIb3BlRGF0ZTJuZDsgPz4iOw0KICAgICBpZihob3BlMil7DQogICAgICAkKCIuMm5kSG9wZSIpLnRleHQoaG9wZTIgKyAiIO+9niIpOw0KICAkKCIuMm5kSG9wZSIpLnBhcmVudCgpLmFwcGVuZCgnPHAgY2xhc3M9XCJjYW5jZWwgY2xlYXIybmRcIj48YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+5Y+W44KK5raI44GZPC9hPjwvcD4nKTsNCiAgJCgiIzJuZENoZWNrIikudGV4dChob3BlMiArICLvvZ4iKTsNCiAgJCgiIyIgKyBob3BlMikuYWRkQ2xhc3MoJ2lzLWN1cnJlbnQnKTsNCiAgICAgJCgiIyIgKyBob3BlMikuY3NzKCJwb2ludGVyLWV2ZW50cyIsICJub25lIik7DQogICAgIH0NCiAgICAgdmFyIGhvcGUzID0gIjw/cGhwIGVjaG8gJEhvcGVEYXRlM3JkOyA/PiI7DQogICAgIGlmKGhvcGUzKXsNCiAgICAgICQoIi4zcmRIb3BlIikudGV4dChob3BlMyArICIg772eIik7DQogICQoIi4zcmRIb3BlIikucGFyZW50KCkuYXBwZW5kKCc8cCBjbGFzcz1cImNhbmNlbCBjbGVhcjNyZFwiPjxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj7lj5bjgormtojjgZk8L2E+PC9wPicpOw0KICAkKCIjM3JkQ2hlY2siKS50ZXh0KGhvcGUzICsgIu+9niIpOw0KICAgICQoIiMiICsgaG9wZTMpLmFkZENsYXNzKCdpcy1jdXJyZW50Jyk7DQogICAgICQoIiMiICsgaG9wZTMpLmNzcygicG9pbnRlci1ldmVudHMiLCAibm9uZSIpOw0KICAgICB9DQogICAgdmFyIGNvdW50MSA9ICQoJ2lucHV0OmhpZGRlbltuYW1lPSIybmRIb3BlRGF0ZSJdJykudmFsKCk7DQogICAgdmFyIGNvdW50MiA9ICQoJ2lucHV0OmhpZGRlbltuYW1lPSIzcmRIb3BlRGF0ZSJdJykudmFsKCk7DQoNCmlmKGNvdW50Mil7DQogJCgiYVtuYW1lPSd0aW1lJ10iKS5jc3MoInBvaW50ZXItZXZlbnRzIiwgIm5vbmUiKTsNCiAkKCIuYnRuLXN1Ym1pdCIpLnNob3coKTsNCn0NCiAgICAgfQ0KICAgICBpZihjaGVjayA9PSAwKXsNCiAgICAgICQoIiNpdGVtMiIpLmhpZGUoKTsNCiAgICAgfQ0KICAgICB2YXIgaHJlZiA9IGxvY2F0aW9uLmhyZWYNCiAgICAgaWYoaHJlZiA9PSAiaHR0cHM6Ly9yZWcxOC5zbXAubmUuanAvcmVnaXN0L1JlZzIiKXsNCiAgICAgICQoIiNpdGVtMSIpLmhpZGUoKTsNCiAgICAgICQoIiNpdGVtMiIpLnNob3coKTsNCiAgICAgICQoIiMybmQzcmQiKS5oaWRlKCk7DQogICAkKCJmb3JtIikuc2hvdygpOw0KICAgICB9DQogICAgfQ0KICAgIA0KICAgIA0KICAgICQoZnVuY3Rpb24oKSB7DQogICAgLy/lhaXlipvmrITjga7mk43kvZzmmYINCiAgICAkKCdmb3JtIGlucHV0OnJlcXVpcmVkJykuY2hhbmdlKGZ1bmN0aW9uICgpIHsNCg0KICAgICAgICAvL+W/hemgiOmgheebruOBjOepuuOBi+OBqeOBhuOBi+ODleODqeOCsA0KICAgICAgICBsZXQgZmxhZyA9IHRydWU7DQogICAgICAgIC8v5b+F6aCI6aCF55uu44KS44Gy44Go44Gk44Ga44Gk44OB44Kn44OD44KvDQogICAgICAgICQoJ2Zvcm0gaW5wdXQ6cmVxdWlyZWQnKS5lYWNoKGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAgIC8v44KC44GX5b+F6aCI6aCF55uu44GM56m644Gq44KJDQogICAgICAgICAgICBpZiAoJCgnZm9ybSBpbnB1dDpyZXF1aXJlZCcpLmVxKGUpLnZhbCgpID09PSAiIikgew0KICAgICAgICAgICAgICAgIGZsYWcgPSBmYWxzZTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIA0KICAgICAgICAkKCdbdHlwZT0iY2hlY2tib3giXScpLmVhY2goZnVuY3Rpb24oZSkgew0KICAgICAgICAgICAgLy/jgoLjgZflv4XpoIjpoIXnm67jgYznqbrjgarjgokNCiAgICAgICAgICAgIGlmICgkKCdpbnB1dFtuYW1lPSJhZ3JlZSJdOmNoZWNrZWQnKS5sZW5ndGggPT09IDApIHsNCiAgICAgICAgICAgICAgICBmbGFnID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICANCiAgICAgICAgJCgnW3R5cGU9InJhZGlvIl0nKS5lYWNoKGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgICAgIC8v44KC44GX5b+F6aCI6aCF55uu44GM56m644Gq44KJDQogICAgICAgICAgICBpZiAoJCgnaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkJykubGVuZ3RoID09PSAwKSB7DQogICAgICAgICAgICAgICAgZmxhZyA9IGZhbHNlOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgDQogICAgICAgIC8v5YWo44Gm5Z+L44G+44Gj44Gm44GE44Gf44KJDQogICAgICAgIGlmIChmbGFnKSB7DQogICAgICAgICAgICAvL+mAgeS/oeODnOOCv+ODs+OCkuW+qea0uw0KICAgICAgICAgICAgJCgiLnN1Ym1pdC1idG4iKS5zaG93KCk7DQogICAgICAgICAgICAkKCIudW5zdWJtaXQtYnRuIikuaGlkZSgpOw0KICAgICAgICB9DQogICAgICAgIGVsc2Ugew0KICAgICAgICAgICAgLy/pgIHkv6Hjg5zjgr/jg7PjgpLplonjgZjjgosNCiAgICAgICAgICAgICQoIi5zdWJtaXQtYnRuIikuaGlkZSgpOw0KICAgICAgICAgICAgJCgiLnVuc3VibWl0LWJ0biIpLnNob3coKTsNCiAgICAgICAgfQ0KICAgIH0pOw0KfSk7DQoNCg0KDQoNCiQoImFbbmFtZT0ndGltZSddIikuY2xpY2soZnVuY3Rpb24oKXsNCiB2YXIga29yZSA9JCh0aGlzKS5hdHRyKCdpZCcpOw0KICQoIiMiICsga29yZSkuY3NzKCJwb2ludGVyLWV2ZW50cyIsICJub25lIik7DQogDQogDQogdmFyIHNlbGVjdGVkID0gJCh0aGlzKS5oYXNDbGFzcygnaXMtY3VycmVudCcpOw0KICAgIGlmIChzZWxlY3RlZCkgew0KICAgICAgICAvL+OCr+ODqeOCueWJiumZpA0KICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKCdpcy1jdXJyZW50Jyk7DQogICAgfQ0KICAgIGVsc2Ugew0KICAgICAgICAvLyDjgq/jg6njgrnov73liqANCiAgICAgICAgJCh0aGlzKS5hZGRDbGFzcygnaXMtY3VycmVudCcpOw0KICAgIH0NCiANCiB2YXIgdGRfbm93ID0gJCh0aGlzKS5hdHRyKCdpZCcpOw0KIGlmKCQoJ2lucHV0OmhpZGRlbltuYW1lPSIybmRIb3BlRGF0ZSJdJykudmFsKCkgPT0gIiIpew0KICQoIi4ybmRIb3BlIikudGV4dCh0ZF9ub3cgKyAiIO+9niIpOw0KICQoIi4ybmRIb3BlIikucGFyZW50KCkuYXBwZW5kKCc8cCBjbGFzcz1cImNhbmNlbCBjbGVhcjJuZFwiPjxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj7lj5bjgormtojjgZk8L2E+PC9wPicpOw0KICQoIiMybmRDaGVjayIpLnRleHQodGRfbm93ICsgIu+9niIpOw0KICQoJ2lucHV0OmhpZGRlbltuYW1lPSIybmRIb3BlRGF0ZSJdJykudmFsKHRkX25vdyk7DQogbmV4dHVybCA9ICQoIiNuZXh0IikuYXR0cignaHJlZicpICsgIiYybmRIb3BlRGF0ZT0iICsgdGRfbm93Ow0KIHByZXZ1cmwgPSAkKCIjcHJldiIpLmF0dHIoJ2hyZWYnKSArICImMm5kSG9wZURhdGU9IiArIHRkX25vdzsNCiAkKCIjbmV4dCIpLmF0dHIoImhyZWYiLCBuZXh0dXJsKTsNCiAkKCIjcHJldiIpLmF0dHIoImhyZWYiLCBwcmV2dXJsKTsNCn1lbHNlew0KICQoIi4zcmRIb3BlIikudGV4dCh0ZF9ub3cgKyAiIO+9niIpOw0KICQoIi4zcmRIb3BlIikucGFyZW50KCkuYXBwZW5kKCc8cCBjbGFzcz1cImNhbmNlbCBjbGVhcjNyZFwiPjxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj7lj5bjgormtojjgZk8L2E+PC9wPicpOw0KICQoIiMzcmRDaGVjayIpLnRleHQodGRfbm93ICsgIu+9niIpOw0KICQoJ2lucHV0OmhpZGRlbltuYW1lPSIzcmRIb3BlRGF0ZSJdJykudmFsKHRkX25vdyk7DQogbmV4dHVybCA9ICQoIiNuZXh0IikuYXR0cignaHJlZicpICsgIiYzcmRIb3BlRGF0ZT0iICsgdGRfbm93Ow0KIHByZXZ1cmwgPSAkKCIjcHJldiIpLmF0dHIoJ2hyZWYnKSArICImM3JkSG9wZURhdGU9IiArIHRkX25vdzsNCiAkKCIjbmV4dCIpLmF0dHIoImhyZWYiLCBuZXh0dXJsKTsNCiAkKCIjcHJldiIpLmF0dHIoImhyZWYiLCBwcmV2dXJsKTsNCn0NCiAgICB2YXIgY291bnQxID0gJCgnaW5wdXQ6aGlkZGVuW25hbWU9IjJuZEhvcGVEYXRlIl0nKS52YWwoKTsNCiAgICB2YXIgY291bnQyID0gJCgnaW5wdXQ6aGlkZGVuW25hbWU9IjNyZEhvcGVEYXRlIl0nKS52YWwoKTsNCg0KaWYoY291bnQyKXsNCiAkKCJhW25hbWU9J3RpbWUnXSIpLmNzcygicG9pbnRlci1ldmVudHMiLCAibm9uZSIpOw0KICQoIi5idG4tc3VibWl0Iikuc2hvdygpOw0KfQ0KfSk7DQoNCiQoJ2JvZHknKS5vbignY2xpY2snLCAiLmNsZWFyMm5kIiwgZnVuY3Rpb24oKSB7DQokKCIuYnRuLXN1Ym1pdCIpLmhpZGUoKTsNCiB2YXIgdGRfbm93ID0gJCgiIzJuZENoZWNrIikudGV4dCgpOw0KIHZhciB0ZF9ub3cgPSB0ZF9ub3cuc2xpY2UoIDAsIC0xICk7DQogDQogJCgiYVtuYW1lPSd0aW1lJ10iKS5jc3MoInBvaW50ZXItZXZlbnRzIiwgIiIpOw0KICQoIiMiICsgdGRfbm93KS5yZW1vdmVDbGFzcygnaXMtY3VycmVudCcpOw0KIA0KIGlmKCQoIiNuZXh0IikubGVuZ3RoKXsNCiBuZXh0dXJsID0gJCgiI25leHQiKS5hdHRyKCdocmVmJykucmVwbGFjZSgvMm5kSG9wZURhdGU9KC4qPykoJnwkKS8sIiIpOw0KIG5leHR1cmwgPSBuZXh0dXJsLnJlcGxhY2UoLzNyZEhvcGVEYXRlLywiMm5kSG9wZURhdGUiKTsNCiB9DQogDQogaWYoJCgiI3ByZXYiKS5sZW5ndGgpew0KIHByZXZ1cmwgPSAkKCIjcHJldiIpLmF0dHIoJ2hyZWYnKS5yZXBsYWNlKC8ybmRIb3BlRGF0ZT0oLio/KSgmfCQpLywiIik7DQogcHJldnVybCA9IHByZXZ1cmwucmVwbGFjZSgvM3JkSG9wZURhdGUvLCIybmRIb3BlRGF0ZSIpOw0KIH0NCiANCiAkKCIjbmV4dCIpLmF0dHIoImhyZWYiLCBuZXh0dXJsKTsNCiAkKCIjcHJldiIpLmF0dHIoImhyZWYiLCBwcmV2dXJsKTsNCiANCmlmKCQoJ2lucHV0OmhpZGRlbltuYW1lPSIzcmRIb3BlRGF0ZSJdJykudmFsKCkgIT0gIiIpew0KICAkKCIuMm5kSG9wZSIpLnRleHQoJCgnaW5wdXQ6aGlkZGVuW25hbWU9IjNyZEhvcGVEYXRlIl0nKS52YWwoKSArIiDvvZ4iKQ0KICAkKCIjMm5kQ2hlY2siKS50ZXh0KCQoJ2lucHV0OmhpZGRlbltuYW1lPSIzcmRIb3BlRGF0ZSJdJykudmFsKCkgKyLvvZ4iKQ0KICAkKCdpbnB1dDpoaWRkZW5bbmFtZT0iMm5kSG9wZURhdGUiXScpLnZhbCgkKCdpbnB1dDpoaWRkZW5bbmFtZT0iM3JkSG9wZURhdGUiXScpLnZhbCgpKTsNCiAgDQogICQoIi4zcmRIb3BlIikudGV4dCgi5LuW5biM5pyb5pel44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE77yI5b+F6aCI77yJIik7DQogICQoIi5jbGVhcjNyZCIpLnJlbW92ZSgpOw0KICAkKCdpbnB1dDpoaWRkZW5bbmFtZT0iM3JkSG9wZURhdGUiXScpLnZhbCgiIik7DQp9ZWxzZXsNCiAgJCgiLjJuZEhvcGUiKS50ZXh0KCLku5bluIzmnJvml6XjgpLpgbjmip7jgZfjgabjgY/jgaDjgZXjgYTvvIjlv4XpoIjvvIkiKTsNCiAgJCgiLmNsZWFyMm5kIikucmVtb3ZlKCk7DQogICQoJ2lucHV0OmhpZGRlbltuYW1lPSIybmRIb3BlRGF0ZSJdJykudmFsKCIiKTsNCn0gICAgDQp9KTsNCg0KJCgnYm9keScpLm9uKCdjbGljaycsICIuY2xlYXIzcmQiLCBmdW5jdGlvbigpIHsNCiAkKCIuYnRuLXN1Ym1pdCIpLmhpZGUoKTsNCiB2YXIgdGRfbm93ID0gJCgiIzNyZENoZWNrIikudGV4dCgpOw0KIHZhciB0ZF9ub3cgPSB0ZF9ub3cuc2xpY2UoIDAsIC0xICk7DQogaWYoJCgiI25leHQiKS5sZW5ndGgpew0KIG5leHR1cmwgPSAkKCIjbmV4dCIpLmF0dHIoJ2hyZWYnKS5yZXBsYWNlKC8zcmRIb3BlRGF0ZT0oLio/KSgmfCQpLywiIik7DQogfQ0KIA0KIGlmKCQoIiNwcmV2IikubGVuZ3RoKXsNCiBwcmV2dXJsID0gJCgiI3ByZXYiKS5hdHRyKCdocmVmJykucmVwbGFjZSgvM3JkSG9wZURhdGU9KC4qPykoJnwkKS8sIiIpOw0KIH0NCiANCiAkKCIjbmV4dCIpLmF0dHIoImhyZWYiLCBuZXh0dXJsKTsNCiAkKCIjcHJldiIpLmF0dHIoImhyZWYiLCBwcmV2dXJsKTsNCiANCiAgJCgiLjNyZEhvcGUiKS50ZXh0KCLku5bluIzmnJvml6XjgpLpgbjmip7jgZfjgabjgY/jgaDjgZXjgYTvvIjlv4XpoIjvvIkiKTsNCiAgJCgiLmNsZWFyM3JkIikucmVtb3ZlKCk7DQogICQoJ2lucHV0OmhpZGRlbltuYW1lPSIzcmRIb3BlRGF0ZSJdJykudmFsKCIiKTsNCiAkKCJhW25hbWU9J3RpbWUnXSIpLmNzcygicG9pbnRlci1ldmVudHMiLCAiIik7DQogJCgiIyIgKyB0ZF9ub3cpLnJlbW92ZUNsYXNzKCdpcy1jdXJyZW50Jyk7DQp9KTsNCg0KJCgnYm9keScpLm9uKCdjbGljaycsICIuYnRuLXN1Ym1pdCIsIGZ1bmN0aW9uKCkgew0KJCgiI2l0ZW0xIikuaGlkZSgpOw0KJCgiI2l0ZW0yIikuc2hvdygpOw0KDQokKCIjMm5kM3JkIikuaGlkZSgpOw0KJCgiZm9ybSIpLnNob3coKTsNCiQoJ2JvZHksaHRtbCcpLmFuaW1hdGUoe3Njcm9sbFRvcDowfSwwKTsNCg0KDQp9KTsNCg0KKGZ1bmN0aW9uKCQpew0KICBmdW5jdGlvbiBmb3JtU2V0RGF5KCl7DQogICAgdmFyIGxhc3RkYXkgPSBmb3JtU2V0TGFzdERheSgkKCcjeWVhcicpLnZhbCgpLCAkKCcjbW9udGgnKS52YWwoKSk7DQogICAgdmFyIG9wdGlvbiA9ICcnOw0KICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IGxhc3RkYXk7IGkrKykgew0KICAgICAgaWYgKGkgPT09ICQoJyNkYXknKS52YWwoKSl7DQogICAgICAgIG9wdGlvbiArPSAnPG9wdGlvbiB2YWx1ZT0iJyArIGkgKyAnIiBzZWxlY3RlZD0ic2VsZWN0ZWQiPicgKyBpICsgJzwvb3B0aW9uPlxuJzsNCiAgICAgIH1lbHNlew0KICAgICAgICBvcHRpb24gKz0gJzxvcHRpb24gdmFsdWU9IicgKyBpICsgJyI+JyArIGkgKyAnPC9vcHRpb24+XG4nOw0KICAgICAgfQ0KICAgIH0NCiAgICAkKCcjZGF5JykuaHRtbChvcHRpb24pOw0KICB9DQoNCiAgZnVuY3Rpb24gZm9ybVNldExhc3REYXkoeWVhciwgbW9udGgpew0KICAgIHZhciBsYXN0ZGF5ID0gbmV3IEFycmF5KCcnLCAzMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxKTsNCiAgICBpZiAoKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDApIHx8IHllYXIgJSA0MDAgPT09IDApew0KICAgICAgbGFzdGRheVsyXSA9IDI5Ow0KICAgIH0NCiAgICByZXR1cm4gbGFzdGRheVttb250aF07DQogIH0NCg0KICAkKCcjeWVhciwgI21vbnRoJykuY2hhbmdlKGZ1bmN0aW9uKCl7DQogICAgZm9ybVNldERheSgpOw0KICB9KTsNCn0pKGpRdWVyeSk7DQogICAgPC9zY3JpcHQ+DQokcmVtb3RlX3JlcGxhY2Vfa2V5JA0KPC9odG1sPg0K on line 281