1752026092 waR3U4bTeM%3Ad64512090a9492520265dafb040878ea-aa43ed24973659b1a0dee5b50095306e s:313380:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IlZUTFMgVmlydHVhIERyaXZlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2ODk6IlBIUCB2ZXJzaW9uIDgKCkNvcHlyaWdodCAoQykgVW5pdmVyc2l0eSBvZiBTb3V0aGVybiBRdWVlbnNsYW5kIDIwMDguCgpUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQppdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiwKYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgpUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJjYXRlZ29yeSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjoiVnVGaW5kIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMToiSUxTX0RyaXZlcnMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTU6IkdyZWcgUGVuZGxlYnVyeSI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czozMzoidnVmaW5kLXRlY2hAbGlzdHMuc291cmNlZm9yZ2UubmV0Ijt9aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OToiaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC0yLjAucGhwIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0O086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsiOjM6e3M6NzoiACoAbmFtZSI7czo0OiJsaW5rIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0OiJXaWtpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluawBsaW5rIjtzOjU1OiJodHRwczovL3Z1ZmluZC5vcmcvd2lraS9kZXZlbG9wbWVudDpwbHVnaW5zOmlsc19kcml2ZXJzIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJhYTQzZWQyNDk3MzY1OWIxYTBkZWU1YjUwMDk1MzA2ZSI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEwOiJWaXJ0dWEucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6Mzk6IlZ1RmluZC9zcmMvVnVGaW5kL0lMUy9Ecml2ZXIvVmlydHVhLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NzE2ODU6Ijw/cGhwCgovKioKICogVlRMUyBWaXJ0dWEgRHJpdmVyCiAqCiAqIFBIUCB2ZXJzaW9uIDgKICoKICogQ29weXJpZ2h0IChDKSBVbml2ZXJzaXR5IG9mIFNvdXRoZXJuIFF1ZWVuc2xhbmQgMjAwOC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIsCiAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICoKICogQGNhdGVnb3J5IFZ1RmluZAogKiBAcGFja2FnZSAgSUxTX0RyaXZlcnMKICogQGF1dGhvciAgIEdyZWcgUGVuZGxlYnVyeSA8dnVmaW5kLXRlY2hAbGlzdHMuc291cmNlZm9yZ2UubmV0PgogKiBAbGljZW5zZSAgaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC0yLjAucGhwIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIEBsaW5rICAgICBodHRwczovL3Z1ZmluZC5vcmcvd2lraS9kZXZlbG9wbWVudDpwbHVnaW5zOmlsc19kcml2ZXJzIFdpa2kKICovCgpuYW1lc3BhY2UgVnVGaW5kXElMU1xEcml2ZXI7Cgp1c2UgVnVGaW5kXERhdGVcRGF0ZUV4Y2VwdGlvbjsKdXNlIFZ1RmluZFxFeGNlcHRpb25cSUxTIGFzIElMU0V4Y2VwdGlvbjsKCnVzZSBmdW5jdGlvbiBjb3VudDsKdXNlIGZ1bmN0aW9uIGluX2FycmF5Owp1c2UgZnVuY3Rpb24gaXNfYXJyYXk7CnVzZSBmdW5jdGlvbiBzdHJsZW47CgovKioKICogVlRMUyBWaXJ0dWEgRHJpdmVyCiAqCiAqIEBjYXRlZ29yeSBWdUZpbmQKICogQHBhY2thZ2UgIElMU19Ecml2ZXJzCiAqIEBhdXRob3IgICBHcmVnIFBlbmRsZWJ1cnkgPHZ1ZmluZC10ZWNoQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4KICogQGxpY2Vuc2UgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtMi4wLnBocCBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBAbGluayAgICAgaHR0cHM6Ly92dWZpbmQub3JnL3dpa2kvZGV2ZWxvcG1lbnQ6cGx1Z2luczppbHNfZHJpdmVycyBXaWtpCiAqLwpjbGFzcyBWaXJ0dWEgZXh0ZW5kcyBBYnN0cmFjdEJhc2UgaW1wbGVtZW50cyBcVnVGaW5kSHR0cFxIdHRwU2VydmljZUF3YXJlSW50ZXJmYWNlCnsKICAgIHVzZSBcVnVGaW5kSHR0cFxIdHRwU2VydmljZUF3YXJlVHJhaXQ7CgogICAgLyoqCiAgICAgKiBPcmFjbGUgY29ubmVjdGlvbgogICAgICoKICAgICAqIEB2YXIgXFZ1RmluZFxDb25uZWN0aW9uXE9yYWNsZQogICAgICovCiAgICBwcm90ZWN0ZWQgJGRiOwoKICAgIC8qKgogICAgICogSW5pdGlhbGl6ZSB0aGUgZHJpdmVyLgogICAgICoKICAgICAqIFZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gYW5kIHBlcmZvcm0gYWxsIHJlc291cmNlLWludGVuc2l2ZSB0YXNrcyBuZWVkZWQgdG8KICAgICAqIG1ha2UgdGhlIGRyaXZlciBhY3RpdmUuCiAgICAgKgogICAgICogQHRocm93cyBJTFNFeGNlcHRpb24KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaW5pdCgpCiAgICB7CiAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5jb25maWcpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJTFNFeGNlcHRpb24oJ0NvbmZpZ3VyYXRpb24gbmVlZHMgdG8gYmUgc2V0LicpOwogICAgICAgIH0KCiAgICAgICAgLy8gRGVmaW5lIERhdGFiYXNlIE5hbWUKICAgICAgICAkdG5zID0gJyhERVNDUklQVElPTj0nIC4KICAgICAgICAgICAgICAgICAnKEFERFJFU1NfTElTVD0nIC4KICAgICAgICAgICAgICAgICAgICcoQUREUkVTUz0nIC4KICAgICAgICAgICAgICAgICAgICAgJyhQUk9UT0NPTD1UQ1ApJyAuCiAgICAgICAgICAgICAgICAgICAgICcoSE9TVD0nIC4gJHRoaXMtPmNvbmZpZ1snQ2F0YWxvZyddWydob3N0J10gLiAnKScgLgogICAgICAgICAgICAgICAgICAgICAnKFBPUlQ9JyAuICR0aGlzLT5jb25maWdbJ0NhdGFsb2cnXVsncG9ydCddIC4gJyknIC4KICAgICAgICAgICAgICAgICAgICcpJyAuCiAgICAgICAgICAgICAgICAgJyknIC4KICAgICAgICAgICAgICAgICAnKENPTk5FQ1RfREFUQT0nIC4KICAgICAgICAgICAgICAgICAgICcoU0VSVklDRV9OQU1FPScgLiAkdGhpcy0+Y29uZmlnWydDYXRhbG9nJ11bJ3NlcnZpY2UnXSAuICcpJyAuCiAgICAgICAgICAgICAgICAgJyknIC4KICAgICAgICAgICAgICAgJyknOwogICAgICAgICR0aGlzLT5kYiA9IG5ldyBcVnVGaW5kXENvbm5lY3Rpb25cT3JhY2xlKAogICAgICAgICAgICAkdGhpcy0+Y29uZmlnWydDYXRhbG9nJ11bJ3VzZXInXSwKICAgICAgICAgICAgJHRoaXMtPmNvbmZpZ1snQ2F0YWxvZyddWydwYXNzd29yZCddLAogICAgICAgICAgICAkdG5zCiAgICAgICAgKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBTdGF0dXMKICAgICAqCiAgICAgKiBUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIHRoZSBzdGF0dXMgaW5mb3JtYXRpb24gb2YgYSBjZXJ0YWluCiAgICAgKiByZWNvcmQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkaWQgVGhlIHJlY29yZCBpZCB0byByZXRyaWV2ZSB0aGUgaG9sZGluZ3MgZm9yCiAgICAgKgogICAgICogQHRocm93cyBJTFNFeGNlcHRpb24KICAgICAqIEByZXR1cm4gbWl4ZWQgICAgIE9uIHN1Y2Nlc3MsIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGZvbGxvd2luZyBrZXlzOgogICAgICogaWQsIGF2YWlsYWJpbGl0eSAoYm9vbGVhbiksIHN0YXR1cywgbG9jYXRpb24sIHJlc2VydmUsIGNhbGxudW1iZXIuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTdGF0dXMoJGlkKQogICAgewogICAgICAgICRob2xkaW5nID0gW107CgogICAgICAgIC8vIFN0cmlwIG9mZiB0aGUgcHJlZml4IGZyb20gdnRscyBleHBvcnRzCiAgICAgICAgJGRiX2lkID0gc3RyX3JlcGxhY2UoJ3Z0bHMnLCAnJywgJGlkKTsKCiAgICAgICAgLy8gQnVpbGQgU1FMIFN0YXRlbWVudAogICAgICAgICRzcWwgPSAnU0VMRUNUIGQuaXRlbWlkIEFTIGl0ZW1faWQsIGMuZHVlX2RhdGUsIHMubmFtZSBBUyBzdGF0dXMsICcgLgogICAgICAgICAgICAgICAgICAgICAgJ3Muc3RhdHVzX2NvZGUsIGwubmFtZSBBUyBsb2NhdGlvbiwgJyAuCiAgICAgICAgICAgICAgICAgICAgICAnU1VCU1RSKGQubG9jYXRpb24sIDAsIDEpIGFzIGNhbXBfaWQsICcgLgogICAgICAgICAgICAgICAgICAgICAgIkRFQ09ERShoLnJlcV9udW0sIG51bGwsICdOJywgJ1knKSBBUyByZXNlcnZlLCAiIC4KICAgICAgICAgICAgICAgICAgICAgICdiLmNhbGxfbnVtYmVyIEFTIGJpYl9jYWxsX251bSwgJyAuCiAgICAgICAgICAgICAgICAgICAgICAnaS5jYWxsX251bWJlciBBUyBpdGVtX2NhbGxfbnVtICcgLgogICAgICAgICAgICAgICAnRlJPTSBkYmFkbWluLml0ZW1kZXRsMiBkLCBkYmFkbWluLmxvY2F0aW9uIGwsICcgLgogICAgICAgICAgICAgICAgICAgICdkYmFkbWluLnN0YXRkZXRsIHNkLCBkYmFkbWluLml0ZW1fc3RhdHVzIHMsICcgLgogICAgICAgICAgICAgICAgICAgICdkYmFkbWluLmNpcmNkZXRsIGMsIGRiYWRtaW4uYmlibGlvZ3JhcGhpY19maWVsZHMgYiwgJyAuCiAgICAgICAgICAgICAgICAgICAgJ2RiYWRtaW4uaXRlbV9jYWxsX251bWJlciBpLCAnIC4KCiAgICAgICAgICAgICAgICAgICAgJyhTRUxFQ1QgZDEuaXRlbWlkLCBNQVgoaDEucmVxdWVzdF9jb250cm9sX251bWJlcikgQVMgcmVxX251bSAnIC4KICAgICAgICAgICAgICAgICAgICAnIEZST00gICBkYmFkbWluLml0ZW1kZXRsMiBkMSwgZGJhZG1pbi5obHJjZGV0bCBoMSAnIC4KICAgICAgICAgICAgICAgICAgICAnIFdIRVJFIChkMS5pdGVtaWQgPSBoMS5pdGVtaWQgJyAuCiAgICAgICAgICAgICAgICAgICAgJyAgICBPUiAoZDEuYmliaWQgID0gaDEuYmliaWQgJyAuCiAgICAgICAgICAgICAgICAgICAgJyAgICAgICAgQU5EICcgLgogICAgICAgICAgICAgICAgICAgICcgICAgICAgIGgxLml0ZW1pZCBpcyBudWxsKSkgJyAuCiAgICAgICAgICAgICAgICAgICAgJyAgIEFORCAgZDEuYmliaWQgID0gOmJpYl9pZCAnIC4KICAgICAgICAgICAgICAgICAgICAnIEdST1VQIEJZIGQxLml0ZW1pZCAnIC4KICAgICAgICAgICAgICAgICAgICAnKSBoICcgLgoKICAgICAgICAgICAgICAgJ1dIRVJFIGQubG9jYXRpb24gPSBsLmxvY2F0aW9uX2lkICcgLgogICAgICAgICAgICAgICAnQU5EICAgZC5pdGVtaWQgICA9IHNkLml0ZW1pZCAoKykgJyAuCiAgICAgICAgICAgICAgICdBTkQgICBzZC5zdGF0ICAgID0gcy5zdGF0dXNfY29kZSAoKykgJyAuCiAgICAgICAgICAgICAgICdBTkQgICBkLml0ZW1pZCAgID0gYy5pdGVtaWQgKCspICcgLgogICAgICAgICAgICAgICAnQU5EICAgZC5pdGVtaWQgICA9IGguaXRlbWlkICgrKSAnIC4KICAgICAgICAgICAgICAgJ0FORCAgIGQuaXRlbWlkICAgPSBpLml0ZW1pZCAoKykgJyAuCiAgICAgICAgICAgICAgICdBTkQgICBkLmJpYmlkICAgID0gYi5iaWJfaWQgJyAuCiAgICAgICAgICAgICAgICdBTkQgICBkLmJpYmlkICAgID0gOmJpYl9pZCc7CgogICAgICAgIC8vIEJpbmQgb3VyIGJpYl9pZCBhbmQgZXhlY3V0ZQogICAgICAgICRmaWVsZHMgPSBbJ2JpYl9pZDpzdHJpbmcnID0+ICRkYl9pZF07CiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwsICRmaWVsZHMpOwoKICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbm8gcmVzdWx0cywgbGV0cyB0cnkgYWdhaW4gYmVjYXVzZSBpdCBoYXMgbm8gaXRlbXMKICAgICAgICBpZiAoY291bnQoJHJlc3VsdCkgPT0gMCkgewogICAgICAgICAgICAkc3FsID0gJ1NFTEVDVCBiLmNhbGxfbnVtYmVyICcgLgogICAgICAgICAgICAgICAgICAgJ0ZST00gZGJhZG1pbi5iaWJsaW9ncmFwaGljX2ZpZWxkcyBiICcgLgogICAgICAgICAgICAgICAgICAgJ1dIRVJFIGIuYmliX2lkID0gOmJpYl9pZCc7CiAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+ZGItPnNpbXBsZVNlbGVjdCgkc3FsLCAkZmllbGRzKTsKCiAgICAgICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA+IDApIHsKICAgICAgICAgICAgICAgICRuZXdfaG9sZGluZyA9IFsKICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICA9PiAkaWQsCiAgICAgICAgICAgICAgICAgICAgJ2F2YWlsYWJpbGl0eScgPT4gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgJ3Jlc2VydmUnICAgICAgPT4gJ1knLAogICAgICAgICAgICAgICAgICAgICdzdGF0dXMnICAgICAgID0+IG51bGwsCiAgICAgICAgICAgICAgICAgICAgJ2xvY2F0aW9uJyAgICAgPT4gJ1Rvb3dvb21iYScsCiAgICAgICAgICAgICAgICAgICAgJ2NhbXB1cycgICAgICAgPT4gJ1Rvb3dvb21iYScsCiAgICAgICAgICAgICAgICAgICAgJ2NhbGxudW1iZXInICAgPT4gJHJlc3VsdFswXVsnQ0FMTF9OVU1CRVInXSwKICAgICAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgIHN3aXRjaCAoJHJlc3VsdFswXVsnQ0FMTF9OVU1CRVInXSkgewogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0VMRUNUUk9OSUMgUkVTT1VSQ0UnOgogICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2hvbGRpbmdbJ2F2YWlsYWJpbGl0eSddID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19ob2xkaW5nWydzdGF0dXMnXSAgICAgICA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfaG9sZGluZ1snbG9jYXRpb24nXSAgICAgPSAnT25saW5lJzsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19ob2xkaW5nWydyZXNlcnZlJ10gICAgICA9ICdOJzsKICAgICAgICAgICAgICAgICAgICAgICAgJGhvbGRpbmdbXSA9ICRuZXdfaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRob2xkaW5nOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdPTiBPUkRFUic6CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfaG9sZGluZ1snc3RhdHVzJ10gICAgICAgPSAnT04gT1JERVInOwogICAgICAgICAgICAgICAgICAgICAgICAkbmV3X2hvbGRpbmdbJ2xvY2F0aW9uJ10gICAgID0gJ1BlbmRpbmcuLi4nOwogICAgICAgICAgICAgICAgICAgICAgICAkaG9sZGluZ1tdID0gJG5ld19ob2xkaW5nOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGhvbGRpbmc7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGNhc2UgJ09SREVSIENBTkNFTExFRCc6CiAgICAgICAgICAgICAgICAgICAgICAgICRuZXdfaG9sZGluZ1snc3RhdHVzJ10gICAgICAgPSAnT1JERVIgQ0FOQ0VMTEVEJzsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19ob2xkaW5nWydsb2NhdGlvbiddICAgICA9ICdOb25lJzsKICAgICAgICAgICAgICAgICAgICAgICAgJGhvbGRpbmdbXSA9ICRuZXdfaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRob2xkaW5nOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBjYXNlICdNSVNTSU5HJzoKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19ob2xkaW5nWydzdGF0dXMnXSAgICAgICA9ICdNSVNTSU5HJzsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld19ob2xkaW5nWydsb2NhdGlvbiddICAgICA9ICdVbmtub3duJzsKICAgICAgICAgICAgICAgICAgICAgICAgJGhvbGRpbmdbXSA9ICRuZXdfaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRob2xkaW5nOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3RpbGwgaGF2ZW4ndCBmb3VuZCBpdC4gTGV0J3MgY2hlY2sgaWYgaXQgaGFzIGEgc2VyaWFscwogICAgICAgICAgICAgICAgICAgICAgICAvLyBob2xkaW5nIGxvY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsX251bWJlciA9ICRyZXN1bHRbMF1bJ0NBTExfTlVNQkVSJ107CiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAnU0VMRUNUIGwubmFtZSwgJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU1VCU1RSKGwubG9jYXRpb25faWQsIDAsIDEpIGFzIGNhbXBfaWQgJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRlJPTSBkYmFkbWluLmhvbGRsaW5rIGgsIGxvY2F0aW9uIGwgJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV0hFUkUgaC5sb2NhdGlvbiA9IGwubG9jYXRpb25faWQgJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQU5EIGguYmliaWQgPSA6YmliX2lkJzsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwsICRmaWVsZHMpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvdW50KCRyZXN1bHQpID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXBfaG9sZGluZyA9ICRuZXdfaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBjcmVhdGUgYSBjb25maWd1cmF0aW9uIGZpbGUgbWVjaGFuaXNtIGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNwZWNpZnlpbmcgbG9jYXRpb25zIHNvIHdlIGNhbiBlbGltaW5hdGUgdGhlc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoYXJkLWNvZGVkIFVTUS1zcGVjaWZpYyB2YWx1ZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkclsnQ0FNUF9JRCddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYW1wdXMgPSAnRnJhc2VyIENvYXN0JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FtcHVzID0gJ1NwcmluZ2ZpZWxkJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGNhbXB1cyA9ICdUb293b29tYmEnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG1wX2hvbGRpbmdbJ3N0YXR1cyddICAgICA9ICdOb3QgRm9yIExvYW4nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0bXBfaG9sZGluZ1snbG9jYXRpb24nXSAgID0gJHJbJ05BTUUnXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG1wX2hvbGRpbmdbJ3Jlc2VydmUnXSAgICA9ICdOJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdG1wX2hvbGRpbmdbJ2NhbXB1cyddICAgICA9ICRjYW1wdXM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRtcF9ob2xkaW5nWydjYWxsbnVtYmVyJ10gPSAkY2FsbF9udW1iZXI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGhvbGRpbmdbXSA9ICR0bXBfaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN0aWxsIGhhdmVuJ3QgZm91bmQgYW55dGhpbmc/IFJldHVybiBub3RoaW5nIHRoZW4uLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkaG9sZGluZzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIFN0aWxsIGhhdmVuJ3QgZm91bmQgYW55dGhpbmc/IFJldHVybiBub3RoaW5nIHRoZW4uLi4KICAgICAgICAgICAgICAgIHJldHVybiAkaG9sZGluZzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQnVpbGQgSG9sZGluZ3MgQXJyYXkKICAgICAgICBmb3JlYWNoICgkcmVzdWx0IGFzICRyb3cpIHsKICAgICAgICAgICAgLy8gVE9ETzogY3JlYXRlIGEgY29uZmlndXJhdGlvbiBmaWxlIG1lY2hhbmlzbSBmb3Igc3BlY2lmeWluZyBsb2NhdGlvbnMKICAgICAgICAgICAgLy8gc28gd2UgY2FuIGVsaW1pbmF0ZSB0aGVzZSBoYXJkLWNvZGVkIFVTUS1zcGVjaWZpYyB2YWx1ZXMuCiAgICAgICAgICAgIHN3aXRjaCAoJHJvd1snQ0FNUF9JRCddKSB7CiAgICAgICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgICAgICAgJGNhbXB1cyA9ICdGcmFzZXIgQ29hc3QnOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgICAgICRjYW1wdXMgPSAnU3ByaW5nZmllbGQnOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAkY2FtcHVzID0gJ1Rvb3dvb21iYSc7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIElmIGl0IGhhcyBhIGR1ZSBkYXRlLi4uIG5vdCBhdmFpbGFibGUKICAgICAgICAgICAgaWYgKCRyb3dbJ0RVRV9EQVRFJ10gIT0gbnVsbCkgewogICAgICAgICAgICAgICAgJGF2YWlsYWJsZSA9IGZhbHNlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gQWxsIHRoZXNlIHN0YXR1c2VzIGFyZSBhbHNvIHVuYXZhaWxhYmxlCiAgICAgICAgICAgICAgICAvLyBUT0RPOiBtYWtlIHRoZXNlIGNvbmZpZ3VyYWJsZSB0aHJvdWdoIFZpcnR1YS5pbmkuCiAgICAgICAgICAgICAgICBzd2l0Y2ggKCRyb3dbJ1NUQVRVU19DT0RFJ10pIHsKICAgICAgICAgICAgICAgICAgICBjYXNlICc1NDAyJzogIC8vICcyNCBob3VyIGhvbGQnCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNDQwMSc6ICAvLyAnQXQgUmVwYWlyJwogICAgICAgICAgICAgICAgICAgIGNhc2UgJzU0MDAnOiAgLy8gJ0JlaW5nIFByb2Nlc3NlZCcKICAgICAgICAgICAgICAgICAgICBjYXNlICcyMTAxJzogIC8vICdEYW1hZ2VkIEl0ZW0nCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNzQwMCc6ICAvLyAnRnJhc2VyIENvYXN0IG9ubHknCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNTcwMCc6ICAvLyAnSU4gVFJBTlNJVCcKICAgICAgICAgICAgICAgICAgICBjYXNlICc3NzAwJzogIC8vICdJbnZvaWNlZCcKICAgICAgICAgICAgICAgICAgICBjYXNlICczNDAwJzogIC8vICdJbnZvaWNlZCAtIFJlLW9yZGVyZWQnCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNDYwMCc6ICAvLyAnTE9ORyBPVkVSRFVFJwogICAgICAgICAgICAgICAgICAgIGNhc2UgJzQ3MDAnOiAgLy8gJ01JU1NJTkcnCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNDcwNSc6ICAvLyAnT04gSE9MRCcKICAgICAgICAgICAgICAgICAgICBjYXNlICc1NzEwJzogIC8vICdSRVFVRVNURUQgRk9SIEhPTEQnCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnNTQwMSc6ICAvLyAnU3RhZmYgVXNlJwogICAgICAgICAgICAgICAgICAgICAgICAkYXZhaWxhYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UgaXQncyBhdmFpbGFibGUKICAgICAgICAgICAgICAgICAgICBjYXNlICc3MjAwJzogIC8vICdFeHRlcm5hbCBMb2FuIE9ubHknCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnMzEwMCc6ICAvLyAnSW4gTGlicmFyeSB1c2Ugb25seScKICAgICAgICAgICAgICAgICAgICBjYXNlICcyNzAwJzogIC8vICdMaW1pdGVkIExvYW4nCiAgICAgICAgICAgICAgICAgICAgY2FzZSAnMjcwMSc6ICAvLyAnTm90IEZvciBMb2FuJwogICAgICAgICAgICAgICAgICAgIGNhc2UgJzIxMDAnOiAgLy8gJ05vdCBmb3IgbG9hbicKICAgICAgICAgICAgICAgICAgICBjYXNlICc1NDAxJzogIC8vICdPbiBEaXNwbGF5JwogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICRhdmFpbGFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGhvbGRpbmdbXSA9IFsKICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgID0+ICRpZCwKICAgICAgICAgICAgICAgICdhdmFpbGFiaWxpdHknID0+ICRhdmFpbGFibGUsCiAgICAgICAgICAgICAgICAnc3RhdHVzJyAgICAgICA9PiAkcm93WydTVEFUVVMnXSwKICAgICAgICAgICAgICAgICdsb2NhdGlvbicgICAgID0+ICRyb3dbJ0xPQ0FUSU9OJ10sCiAgICAgICAgICAgICAgICAncmVzZXJ2ZScgICAgICA9PiAkcm93WydSRVNFUlZFJ10sCiAgICAgICAgICAgICAgICAnY2FtcHVzJyAgICAgICA9PiAkY2FtcHVzLAogICAgICAgICAgICAgICAgJ2NhbGxudW1iZXInICAgPT4gJHJvd1snQklCX0NBTExfTlVNJ10sCiAgICAgICAgICAgICAgICBdOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRob2xkaW5nOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IFN0YXR1c2VzCiAgICAgKgogICAgICogVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyB0aGUgc3RhdHVzIGluZm9ybWF0aW9uIGZvciBhCiAgICAgKiBjb2xsZWN0aW9uIG9mIHJlY29yZHMuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRpZExpc3QgVGhlIGFycmF5IG9mIHJlY29yZCBpZHMgdG8gcmV0cmlldmUgdGhlIHN0YXR1cyBmb3IKICAgICAqCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBhcnJheSAgICAgICAgQW4gYXJyYXkgb2YgZ2V0U3RhdHVzKCkgcmV0dXJuIHZhbHVlcyBvbiBzdWNjZXNzLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3RhdHVzZXMoJGlkTGlzdCkKICAgIHsKICAgICAgICAkc3RhdHVzID0gW107CiAgICAgICAgZm9yZWFjaCAoJGlkTGlzdCBhcyAkaWQpIHsKICAgICAgICAgICAgJHN0YXR1c1tdID0gJHRoaXMtPmdldFN0YXR1cygkaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHN0YXR1czsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBIb2xkaW5nCiAgICAgKgogICAgICogVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyB0aGUgaG9sZGluZyBpbmZvcm1hdGlvbiBvZiBhIGNlcnRhaW4KICAgICAqIHJlY29yZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpZCAgICAgIFRoZSByZWNvcmQgaWQgdG8gcmV0cmlldmUgdGhlIGhvbGRpbmdzIGZvcgogICAgICogQHBhcmFtIGFycmF5ICAkcGF0cm9uICBQYXRyb24gZGF0YQogICAgICogQHBhcmFtIGFycmF5ICAkb3B0aW9ucyBFeHRyYSBvcHRpb25zIChub3QgY3VycmVudGx5IHVzZWQpCiAgICAgKgogICAgICogQHRocm93cyBEYXRlRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBhcnJheSAgICAgICAgIE9uIHN1Y2Nlc3MsIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGZvbGxvd2luZwogICAgICoga2V5czogaWQsIGF2YWlsYWJpbGl0eSAoYm9vbGVhbiksIHN0YXR1cywgbG9jYXRpb24sIHJlc2VydmUsIGNhbGxudW1iZXIsCiAgICAgKiBkdWVkYXRlLCBudW1iZXIsIGJhcmNvZGUuCiAgICAgKgogICAgICogQFN1cHByZXNzV2FybmluZ3MoUEhQTUQuVW51c2VkRm9ybWFsUGFyYW1ldGVyKQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0SG9sZGluZygkaWQsIGFycmF5ICRwYXRyb24gPSBudWxsLCBhcnJheSAkb3B0aW9ucyA9IFtdKQogICAgewogICAgICAgIC8vIFN0cmlwIG9mZiB0aGUgcHJlZml4IGZyb20gdnRscyBleHBvcnRzCiAgICAgICAgJGRiX2lkID0gc3RyX3JlcGxhY2UoJ3Z0bHMnLCAnJywgJGlkKTsKICAgICAgICAkZmllbGRzID0gWydiaWJfaWQ6c3RyaW5nJyA9PiAkZGJfaWRdOwoKICAgICAgICAkaG9sZHMgPSAnU0VMRUNUIGQxLml0ZW1pZCwgTUFYKGgxLnJlcXVlc3RfY29udHJvbF9udW1iZXIpIEFTIHJlcV9udW0gJyAuCiAgICAgICAgICAgICdGUk9NICAgZGJhZG1pbi5pdGVtZGV0bDIgZDEsIGRiYWRtaW4uaGxyY2RldGwgaDEgJyAuCiAgICAgICAgICAgICdXSEVSRSAgZDEuaXRlbWlkID0gaDEuaXRlbWlkICcgLgogICAgICAgICAgICAnQU5EICAgIGQxLmJpYmlkICA9IDpiaWJfaWQgJyAuCiAgICAgICAgICAgICdHUk9VUCBCWSBkMS5pdGVtaWQnOwoKICAgICAgICAkYmliX3JlcXMgPSAnU0VMRUNUIGguYmliaWQsIGNvdW50KCopIGFzIGJpYl9yZXEgJyAuCiAgICAgICAgICAgICdGUk9NICAgaGxyY2RldGwgaCAnIC4KICAgICAgICAgICAgJ1dIRVJFICBoLml0ZW1pZCA9IDAgJyAuCiAgICAgICAgICAgICdHUk9VUCBCWSBoLmJpYmlkJzsKCiAgICAgICAgJGl0ZW1fcmVxcyA9ICdTRUxFQ1QgaC5pdGVtaWQsIGNvdW50KCopIGFzIGl0ZW1fcmVxICcgLgogICAgICAgICAgICAnRlJPTSAgIGhscmNkZXRsIGggJyAuCiAgICAgICAgICAgICdXSEVSRSAgaC5pdGVtaWQgPD4gMCAnIC4KICAgICAgICAgICAgJ0dST1VQIEJZIGguaXRlbWlkJzsKCiAgICAgICAgJGlzc3VlcyA9ICdTRUxFQ1QgTUFYKHMuaXNzdWVfaWQpIEFTIGxhdGVzdF9pc3N1ZSwgaC5iaWJpZCAnIC4KICAgICAgICAgICAgJ0ZST00gICBzZXJpYWxzX2lzc3VlIHMsIGhvbGRsaW5rIGggJyAuCiAgICAgICAgICAgICdXSEVSRSAgaC5iaWJpZCAgICAgID0gOmJpYl9pZCAnIC4KICAgICAgICAgICAgJ0FORCAgICBoLmhvbGRpbmdzaWQgPSBzLmhvbGRpbmdzaWQgJyAuCiAgICAgICAgICAgICdHUk9VUCBCWSBoLmJpYmlkJzsKCiAgICAgICAgJHJlc2VydmVfY2xhc3MgPSAnU0VMRUNUIERJU1RJTkNUIGl0ZW1faWQsIGl0ZW1fY2xhc3MgJyAuCiAgICAgICAgICAgICcgRlJPTSByZXNlcnZlX2l0ZW1fdic7CgogICAgICAgIC8vIEJ1aWxkIFNRTCBTdGF0ZW1lbnQKICAgICAgICAkc3FsID0gJ1NFTEVDVCBkLml0ZW1pZCBhcyBpdGVtX2lkLCBkLmNvcHlubywgZC5iYXJjb2RlLCBjLmR1ZV9kYXRlLCAnIC4KICAgICAgICAgICAgJ3MubmFtZSBhcyBzdGF0dXMsIHMuc3RhdHVzX2NvZGUsICcgLgogICAgICAgICAgICAnbC5uYW1lIGFzIGxvY2F0aW9uLCBsLmxvY2F0aW9uX2lkLCBiLmNhbGxfbnVtYmVyIGFzIGJpYl9jYWxsX251bSwgJyAuCiAgICAgICAgICAgICdpLmNhbGxfbnVtYmVyIGFzIGl0ZW1fY2FsbF9udW0sICcgLgogICAgICAgICAgICAnaXNzLmxhdGVzdF9pc3N1ZSwgci5pdGVtX2NsYXNzIGFzIHJlc2VydmVfaXRlbV9jbGFzcywgJyAuCiAgICAgICAgICAgICdpYy5pdGVtX2NsYXNzLCBkLnVuaXRzLCAnIC4KICAgICAgICAgICAgJ2JyLmJpYl9yZXEsIGlyLml0ZW1fcmVxICcgLgogICAgICAgICAgICAnRlJPTSAgIGRiYWRtaW4uaXRlbWRldGwyIGQsIGRiYWRtaW4ubG9jYXRpb24gbCwgJyAuCiAgICAgICAgICAgICdkYmFkbWluLnN0YXRkZXRsIHNkLCBkYmFkbWluLml0ZW1fc3RhdHVzIHMsICcgLgogICAgICAgICAgICAnZGJhZG1pbi5jaXJjZGV0bCBjLCBkYmFkbWluLmJpYmxpb2dyYXBoaWNfZmllbGRzIGIsICcgLgogICAgICAgICAgICAnZGJhZG1pbi5pdGVtX2NhbGxfbnVtYmVyIGksIGl0ZW1fY2xhc3NfdiBpYywgJyAuCiAgICAgICAgICAgICIoJGhvbGRzKSBoLCAoJGJpYl9yZXFzKSBiciwgKCRpdGVtX3JlcXMpIGlyLCAoJGlzc3VlcykgaXNzLCAiIC4KICAgICAgICAgICAgIigkcmVzZXJ2ZV9jbGFzcykgciAiIC4KICAgICAgICAgICAgJ1dIRVJFICBkLmxvY2F0aW9uICA9IGwubG9jYXRpb25faWQgJyAuCiAgICAgICAgICAgICdBTkQgICAgZC5pdGVtY2xhc3MgPSBpYy5pdGVtX2NsYXNzX2lkICcgLgogICAgICAgICAgICAnQU5EICAgIGQuaXRlbWlkICAgID0gc2QuaXRlbWlkICgrKSAnIC4KICAgICAgICAgICAgJ0FORCAgICBzZC5zdGF0ICAgICA9IHMuc3RhdHVzX2NvZGUgKCspICcgLgogICAgICAgICAgICAnQU5EICAgIGQuaXRlbWlkICAgID0gYy5pdGVtaWQgKCspICcgLgogICAgICAgICAgICAnQU5EICAgIGQuaXRlbWlkICAgID0gaC5pdGVtaWQgKCspICcgLgogICAgICAgICAgICAnQU5EICAgIGQuYmliaWQgICAgID0gYnIuYmliaWQgKCspICcgLgogICAgICAgICAgICAnQU5EICAgIGQuaXRlbWlkICAgID0gaXIuaXRlbWlkICgrKSAnIC4KICAgICAgICAgICAgJ0FORCAgICBkLml0ZW1pZCAgICA9IGkuaXRlbWlkICgrKSAnIC4KICAgICAgICAgICAgJ0FORCAgICBkLml0ZW1pZCAgICA9IHIuaXRlbV9pZCAoKykgJyAuCiAgICAgICAgICAgICdBTkQgICAgZC5iaWJpZCAgICAgPSBpc3MuYmliaWQgKCspICcgLgogICAgICAgICAgICAnQU5EICAgIGQuYmliaWQgICAgID0gYi5iaWJfaWQgJyAuCiAgICAgICAgICAgICdBTkQgICAgZC5iaWJpZCAgICAgPSA6YmliX2lkICcgLgogICAgICAgICAgICAnT1JERVIgQlkgbC5sb2NhdGlvbl9pZCwgZC51bml0c19zb3J0X2Zvcm0gZGVzYywgZC5jb3B5bm8nOwogICAgICAgIC8vcHJpbnQgIjxkaXYgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnPiRzcWw8L2Rpdj4iOwoKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmRiLT5zaW1wbGVTZWxlY3QoJHNxbCwgJGZpZWxkcyk7CiAgICAgICAgaWYgKCRyZXN1bHQgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJTFNFeGNlcHRpb24oJHRoaXMtPmRiLT5nZXRIdG1sRXJyb3IoKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBCdWlsZCBIb2xkaW5ncyBBcnJheQogICAgICAgICRob2xkaW5nID0gW107CiAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KSB7CiAgICAgICAgICAgIC8vIElmIGl0J3MgcmVzZXJ2ZWQgb3IgaGFzIGEgZHVlIGRhdGUuLi4gbm90IGF2YWlsYWJsZQogICAgICAgICAgICBpZiAoJHJvd1snRFVFX0RBVEUnXSAhPSBudWxsIHx8ICRyb3dbJ1JFUV9DT1VOVCddICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICRhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIEFsbCB0aGVzZSBzdGF0dXNlcyBhcmUgYWxzbyB1bmF2YWlsYWJsZQogICAgICAgICAgICAgICAgLy8gVE9ETzogTWFrZSB0aGlzIGNvbmZpZ3VyYWJsZSB0aHJvdWdoIFZpcnR1YS5pbmkuCiAgICAgICAgICAgICAgICBzd2l0Y2ggKCRyb3dbJ1NUQVRVUyddKSB7CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnRnJhc2VyIENvYXN0IG9ubHknOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0JlaW5nIFByb2Nlc3NlZCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnTm90IEZvciBMb2FuJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdOb3QgZm9yIGxvYW4nOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0ludm9pY2VkJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdJTiBUUkFOU0lUJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdTdGFmZiBVc2UnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ01JU1NJTkcnOgogICAgICAgICAgICAgICAgICAgIGNhc2UgJ0RhbWFnZWQgSXRlbSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnQXQgUmVwYWlyJzoKICAgICAgICAgICAgICAgICAgICBjYXNlICdPTiBPUkRFUic6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnT04gSE9MRCc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnU3ByaW5nZmllbGQgT25seSc6CiAgICAgICAgICAgICAgICAgICAgY2FzZSAnUGFydCBPcmRlciBSZWNlaXZlZCc6CiAgICAgICAgICAgICAgICAgICAgICAgICRhdmFpbGFibGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSBpdCdzIGF2YWlsYWJsZQogICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICRhdmFpbGFibGUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQ2FsbCBudW1iZXIKICAgICAgICAgICAgaWYgKCRyb3dbJ0lURU1fQ0FMTF9OVU0nXSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAkY2FsbF9udW0gPSAkcm93WydJVEVNX0NBTExfTlVNJ107CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkY2FsbF9udW0gPSAkcm93WydCSUJfQ0FMTF9OVU0nXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRlbXAgPSBbCiAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgPT4gJGlkLAogICAgICAgICAgICAgICAgJ2F2YWlsYWJpbGl0eScgID0+ICRhdmFpbGFibGUsCiAgICAgICAgICAgICAgICAnc3RhdHVzJyAgICAgICAgPT4gJHJvd1snU1RBVFVTJ10sCiAgICAgICAgICAgICAgICAnc3RhdHVzX2NvZGUnICAgPT4gJHJvd1snU1RBVFVTX0NPREUnXSwKICAgICAgICAgICAgICAgICdsb2NhdGlvbicgICAgICA9PiAkcm93WydMT0NBVElPTiddLAogICAgICAgICAgICAgICAgJ2xvY2F0aW9uX2NvZGUnID0+ICRyb3dbJ0xPQ0FUSU9OX0lEJ10sCiAgICAgICAgICAgICAgICAncmVzZXJ2ZScgICAgICAgPT4gJHJvd1snSVRFTV9SRVEnXSArICRyb3dbJ0JJQl9SRVEnXSwKICAgICAgICAgICAgICAgICdjYWxsbnVtYmVyJyAgICA9PiAkY2FsbF9udW0sCiAgICAgICAgICAgICAgICAnZHVlZGF0ZScgICAgICAgPT4gJHJvd1snRFVFX0RBVEUnXSwKICAgICAgICAgICAgICAgICdudW1iZXInICAgICAgICA9PiAkcm93WydDT1BZTk8nXSwKICAgICAgICAgICAgICAgICdiYXJjb2RlJyAgICAgICA9PiAkcm93WydCQVJDT0RFJ10sCiAgICAgICAgICAgICAgICAnaXRlbWNsYXNzJyAgICAgPT4gJHJvd1snSVRFTV9DTEFTUyddLAogICAgICAgICAgICAgICAgJ3VuaXRzJyAgICAgICAgID0+ICRyb3dbJ1VOSVRTJ10sCiAgICAgICAgICAgICAgICAncmVzaXRlbWNsYXNzJyAgPT4gJHJvd1snUkVTRVJWRV9JVEVNX0NMQVNTJ10sCiAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgLy8gQWRkIHRvIHRoZSBob2xkaW5ncyBhcnJheQogICAgICAgICAgICAkaG9sZGluZ1tdID0gJHRlbXA7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gKGNvdW50KCRob2xkaW5nKSAhPSAwICYmICRwYXRyb25bJ2lkJ10gIT0gbnVsbCkKICAgICAgICAgICAgPyAkdGhpcy0+Y2hlY2tIb2xkQWxsb3dlZCgkcGF0cm9uWydpZCddLCAkaG9sZGluZykgOiAkaG9sZGluZzsKICAgIH0KCiAgICAvKioKICAgICAqIENoZWNrIGlmIHRoaXMgcGF0cm9uIGlzIGFsbG93ZWQgdG8gcGxhY2UgYSByZXF1ZXN0LgogICAgICogICAtIFJldHVybiB0aGUgaG9sZGluZ3MgYXJyYXkgd2l0aCB0cnVlL2ZhbHNlIGFuZCBhIHJlYXNvbi4KICAgICAqCiAgICAgKiBCZWNhdXNlIG9mIHRoZSBsb2NhdGlvbiBjb21wYXJpc29ucyB3aXRoIHRoZSBwYXRyb24ncwogICAgICogICBsb2NhdGlvbiB0aGF0IG9jY3VyIGhlcmUgd2UgYWxzbyB0YWtlIHRoZSBvcHB1cnR1bml0eQogICAgICogICB0byBwdXNoIHRoZWlyICJIb21lIiBsb2NhdGlvbiB0byB0aGUgdG9wLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdHJvbl9pZCBJRCBvZiBwYXRyb24KICAgICAqIEBwYXJhbSBhcnJheSAgJGhvbGRpbmdzICBIb2xkaW5ncyBpbmZvcm1hdGlvbiBmcm9tIGdldEhvbGRpbmcKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICAgICAgICAgICAgSG9sZGluZ3MgaW5mbyBhdWdtZW50ZWQgd2l0aCByZXFfYWxsb3dlZCBmaWVsZAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gY2hlY2tIb2xkQWxsb3dlZCgkcGF0cm9uX2lkLCAkaG9sZGluZ3MpCiAgICB7CiAgICAgICAgLy8gR2V0IHRoZSBwYXRyb24gdHlwZQogICAgICAgICRzcWwgPSAnU0VMRUNUIHAucGF0cm9uX3R5cGVfaWQgJyAuCiAgICAgICAgICAgICdGUk9NICAgcGF0cm9uX3R5cGVfcGF0cm9uIHAsIHBhdHJvbl9iYXJjb2RlIGIgJyAuCiAgICAgICAgICAgICdXSEVSRSAgYi5wYXRyb25faWQgPSBwLnBhdHJvbl9pZCAnIC4KICAgICAgICAgICAgJ0FORCAgICBiLmJhcmNvZGUgICA9IDpwYXRyb24nOwogICAgICAgICRmaWVsZHMgPSBbJ3BhdHJvbjpzdHJpbmcnID0+ICRwYXRyb25faWRdOwogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+ZGItPnNpbXBsZVNlbGVjdCgkc3FsLCAkZmllbGRzKTsKCiAgICAgICAgLy8gV2Ugc2hvdWxkIGhhdmUgMSByb3cgYW5kIG9ubHkgMSByb3cuCiAgICAgICAgaWYgKGNvdW50KCRyZXN1bHQpICE9IDEpIHsKICAgICAgICAgICAgcmV0dXJuICRob2xkaW5nczsKICAgICAgICB9CiAgICAgICAgJHBhdHJvbl90eXBlID0gJHJlc3VsdFswXVsnUEFUUk9OX1RZUEVfSUQnXTsKCiAgICAgICAgLy8gQSBtYXRyaXggb2YgcGF0cm9uIHR5cGVzIGFuZCBsb2NhdGlvbnMKICAgICAgICAvLyBUT0RPOiBNYWtlIHRoaXMgY29uZmlndXJhYmxlIHRocm91Z2ggVmlydHVhLmluaS4KICAgICAgICAkdHlwZV9saXN0ID0gWwogICAgICAgICAgICAnRXh0ZXJuYWxzJyAgICA9PiBbJ0FYJywgJ0FEJywgJ0JYJywgJ0JEJywgJ0VYJywgJ0VEJywgJ0dYJywgJ0dEJywKICAgICAgICAgICAgICAgICdSWCcsICdTWCcsICdTRCcsICdYUycsICdDQycsICdSRCddLAogICAgICAgICAgICAnU3VwZXIgVXNlcicgICA9PiBbJ0xQJywgJ09DJ10sCiAgICAgICAgICAgIC8vIDEgID0+IFRvb3dvb21iYQogICAgICAgICAgICAnMScgPT4gWydBVScsICdBTScsICdCVScsICdCTScsICdFVScsICdFTScsICdHVScsICdHTScsICdSSScsICdTVScsCiAgICAgICAgICAgICAgICAnU00nLCAnU0MnLCAnUkInLCAnT1QnLCAnU1QnLCAnRkMnLCAnTFMnXSwKICAgICAgICAgICAgLy8gNSAgPT4gU3ByaW5nZmllbGQKICAgICAgICAgICAgJzUnID0+IFsnVVMnLCAnRVMnLCAnUFMnLCAnQVMnLCAnR1MnLCAnVFMnLCAnVEFTJywgJ0VQUycsICdYVlMnLAogICAgICAgICAgICAgICAgJ1hQUyddLAogICAgICAgICAgICAvLyA0ICA9PiBGcmFzZXIgQ29hc3QKICAgICAgICAgICAgJzQnID0+IFsnVUYnLCAnUEYnLCAnQUYnXSwKICAgICAgICAgICAgXTsKICAgICAgICAvLyBXaGVyZSBpcyB0aGUgcGF0cm9uIGZyb20/CiAgICAgICAgJGxvY2F0aW9uID0gJyc7CiAgICAgICAgZm9yZWFjaCAoJHR5cGVfbGlzdCBhcyAkbG9jID0+ICRwYXRyb25fdHlwZXMpIHsKICAgICAgICAgICAgaWYgKGluX2FycmF5KCRwYXRyb25fdHlwZSwgJHBhdHJvbl90eXBlcykpIHsKICAgICAgICAgICAgICAgICRsb2NhdGlvbiA9ICRsb2M7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gUmVxdWVzdGFibGUgU3RhdHVzZXMKICAgICAgICAvLyBUT0RPOiBNYWtlIHRoaXMgY29uZmlndXJhYmxlIHRocm91Z2ggVmlydHVhLmluaS4KICAgICAgICAkc3RhdHVzX2xpc3QgPSBbCiAgICAgICAgICAgICc0NDAxJywgLy8gQXQgUmVwYWlyCiAgICAgICAgICAgICc0NzA1JywgLy8gT04gSE9MRAogICAgICAgICAgICAnNTQwMCcsIC8vIEJlaW5nIFByb2Nlc3NlZAogICAgICAgICAgICAnNTQwMScsIC8vIE9uIERpc3BsYXkKICAgICAgICAgICAgJzU0MDInLCAvLyAyNCBIb3VyIEhvbGQKICAgICAgICAgICAgJzU3MDAnLCAgLy8gSU4gVFJBTlNJVAogICAgICAgICAgICBdOwogICAgICAgIC8vIFdobyBjYW4gcGxhY2UgcmVzZXJ2YXRpb25zIG9uIGF2YWlsYWJsZSBpdGVtcwogICAgICAgICRhdmFpbGFibGVfbG9jcyA9IFsKICAgICAgICAgICAgJzEnID0+IFsnNScsICc0J10sCiAgICAgICAgICAgICc0JyA9PiBbXSwKICAgICAgICAgICAgJzUnID0+IFtdLAogICAgICAgICAgICBdOwogICAgICAgIC8vIFdobyBjYW4gcGxhY2UgcmVzZXJ2YXRpb25zIG9uIFVOYXZhaWxhYmxlIGl0ZW1zCiAgICAgICAgJHVuYXZhaWxhYmxlX2xvY3MgPSBbCiAgICAgICAgICAgICcxJyA9PiBbJzEnLCAnNScsICc0J10sCiAgICAgICAgICAgICc0JyA9PiBbXSwKICAgICAgICAgICAgJzUnID0+IFsnNSddLAogICAgICAgICAgICBdOwogICAgICAgIC8vIFdobyBjYW4gcGxhY2UgcmVzZXJ2YXRpb25zIG9uIFNUQVRVUyBpdGVtcwogICAgICAgICRzdGF0dXNfbG9jcyA9IFsKICAgICAgICAgICAgJzEnID0+IFsnMScsICc1JywgJzQnXSwKICAgICAgICAgICAgJzQnID0+IFtdLAogICAgICAgICAgICAnNScgPT4gWyc1J10sCiAgICAgICAgICAgIF07CgogICAgICAgIC8vIFNldCBhIGZsYWcgZm9yIHN1cGVyIHVzZXJzLCBiZXR0ZXIgdGhlbgogICAgICAgIC8vICB0aGUgZnVsbCBmdW5jdGlvbiBjYWxsIGluc2lkZSB0aGUgbG9vcAogICAgICAgIGlmIChpbl9hcnJheSgkcGF0cm9uX3R5cGUsICR0eXBlX2xpc3RbJ1N1cGVyIFVzZXInXSkpIHsKICAgICAgICAgICAgJHN1cGVyX3VzZXIgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRzdXBlcl91c2VyID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIC8vIEV4dGVybmFsIFVzZXJzIGNhbm5vdCBwbGFjZSBhIHJlcXVlc3QKICAgICAgICBpZiAoaW5fYXJyYXkoJHBhdHJvbl90eXBlLCAkdHlwZV9saXN0WydFeHRlcm5hbHMnXSkpIHsKICAgICAgICAgICAgcmV0dXJuICRob2xkaW5nczsKICAgICAgICB9CgogICAgICAgIC8qCiAgICAgICAgICogRmluaXNoZWQgb3VyIGJhc2ljIHRlc3RzLCB0aGUgcmVhbCBsb2dpYyBzdGFydHMgaGVyZQogICAgICAgICAqLwogICAgICAgICRzb3J0ZWQgPSBbXTsgLy8gV2UnbGwgcHV0IGl0ZW1zIGZyb20gdGhlIHBhdHJvbidzIGxvY2F0aW9uIGluIGhlcmUKICAgICAgICAkcmV0dXJuID0gW107IC8vIEV2ZXJ5dGhpbmcgZWxzZSBpbiBoZXJlCiAgICAgICAgZm9yZWFjaCAoJGhvbGRpbmdzIGFzICRoKSB7CiAgICAgICAgICAgICRpdGVtX2xvY19jb2RlID0gbnVsbDsKICAgICAgICAgICAgLy8gU3VwZXIgVXNlcnMgKGVnLiBPZmYtQ2FtcCwgYW5kIExlbmRpbmcpIGNhbiByZXF1ZXN0IGFueXRoaW5nCiAgICAgICAgICAgIGlmICgkc3VwZXJfdXNlcikgewogICAgICAgICAgICAgICAgJGhbJ3JlcV9hbGxvd2VkJ10gPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gRXZlcnlvbmUgZWxzZSB3ZSBuZWVkIHRvIGRvIHNvbWUgbG9va3VwcwoKICAgICAgICAgICAgICAgIC8vIENhbid0IGZpbmQgdGhlaXIgbG9jYXRpb24/CiAgICAgICAgICAgICAgICBpZiAoJGxvY2F0aW9uID09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgJGhbJ3JlcV9hbGxvd2VkJ10gPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gS25vd24gbG9jYXRpb24KICAgICAgICAgICAgICAgICAgICAkY2FuX3JlcSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIC8vIERldGFpbHMgYWJvdXQgdGhpcyBpdGVtIC0tIG5vdGUgdGhhdCB3ZSB1c2UgMS8wIGZvcgogICAgICAgICAgICAgICAgICAgIC8vICRpdGVtX2lzX291dCBzaW5jZSBkaWdpdHMgZGlzcGxheSBiZXR0ZXIgaW4gb24gc2NyZWVuCiAgICAgICAgICAgICAgICAgICAgLy8gZGVidWdnaW5nIHRoYW4gYm9vbGVhbnMuCiAgICAgICAgICAgICAgICAgICAgJGl0ZW1faXNfb3V0ICAgICAgPSAkaFsnZHVlZGF0ZSddID8gJzEnIDogJzAnOwogICAgICAgICAgICAgICAgICAgICRpdGVtX2xvY19jb2RlICAgID0gc3Vic3RyKCRoWydsb2NhdGlvbl9jb2RlJ10sIDAsIDEpOwogICAgICAgICAgICAgICAgICAgICRpdGVtX3N0YXRfY29kZSAgID0gJGhbJ3N0YXR1c19jb2RlJ107CgogICAgICAgICAgICAgICAgICAgIC8vIFRoZSBpdGVtIGlzIG9uIGxvYW4gLi4uCiAgICAgICAgICAgICAgICAgICAgaWYgKCRpdGVtX2lzX291dCkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4gYW5kIGhhcyBhIHJlcXVlc3RhYmxlIHN0YXR1cyBvciBubyBzdGF0dXMgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2FycmF5KCRpdGVtX3N0YXRfY29kZSwgJHN0YXR1c19saXN0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgJGl0ZW1fc3RhdF9jb2RlID09PSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uIGNhbiB0aGlzIHVzZXIgYm9ycm93IG9uIGxvYW4gaXRlbXMgYXQgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9jYXRpb24/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FuX3JlcSA9IGluX2FycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsb2NhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdW5hdmFpbGFibGVfbG9jc1skaXRlbV9sb2NfY29kZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgaXRlbSBpcyBOT1Qgb24gbG9hbiAuLi4KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLiBhbmQgaGFzIGEgcmVxdWVzdGFibGUgc3RhdHVzIC4uLgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGl0ZW1fc3RhdF9jb2RlLCAkc3RhdHVzX2xpc3QpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAuLi4gY2FuIHRoZSB1c2VyIGJvcnJvdyBzdGF0dXMgaXRlbXMgYXQgdGhpcyBsb2NhdGlvbj8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYW5fcmVxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBpbl9hcnJheSgkbG9jYXRpb24sICRzdGF0dXNfbG9jc1skaXRlbV9sb2NfY29kZV0pOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uIGFuZCBET0VTTidUIGhhdmUgYSByZXF1ZXN0YWJsZSBzdGF0dXMgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGl0ZW1fc3RhdF9jb2RlICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uIGJ1dCBoYXMgYSBzdGF0dXMsIHNvIGl0IGNhbid0IGJlIHJlcXVlc3RlZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uIGNhbiB0aGUgdXNlciBib3Jyb3cgYXZhaWxhYmxlIGl0ZW1zIGF0IHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2NhdGlvbj8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2FuX3JlcSA9IGluX2FycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbG9jYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhdmFpbGFibGVfbG9jc1skaXRlbV9sb2NfY29kZV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIC8qIERFQlVHR0lORyAqLwogICAgICAgICAgICAgICAgICAgIC8vJGNhbl9yZXEgPSAkY2FuX3JlcSA/ICJZIiA6ICJOIjsKICAgICAgICAgICAgICAgICAgICAvLyRoWydyZXFfYWxsb3dlZCddID0gIk86JGl0ZW1faXNfb3V0CiAgICAgICAgICAgICAgICAgICAgLy8gTDokaXRlbV9sb2NfY29kZSBTOiRpdGVtX3N0YXRfY29kZSA6ICRjYW5fcmVxIjsKICAgICAgICAgICAgICAgICAgICAvKiBOb3JtYWwgUmV0dXJuIHZhbHVlICovCiAgICAgICAgICAgICAgICAgICAgJGhbJ3JlcV9hbGxvd2VkJ10gPSAkY2FuX3JlcTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBJdGVtIGZyb20gdGhpcyBwYXRyb24ncyAiSG9tZSIKICAgICAgICAgICAgaWYgKCRpdGVtX2xvY19jb2RlID09ICRsb2NhdGlvbikgewogICAgICAgICAgICAgICAgJHNvcnRlZFtdID0gJGg7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmV0dXJuW10gPSAkaDsKICAgICAgICAgICAgfQogICAgICAgIH0gLy8gRW5kIGhvbGRpbmdzIGxvb3AKICAgICAgICByZXR1cm4gYXJyYXlfbWVyZ2UoJHNvcnRlZCwgJHJldHVybik7CiAgICB9CgogICAgLyogU1RBUlQgLSBTZXJpYWxzIGZ1bmN0aW9ucyAqLwoKICAgIC8qKgogICAgICogU2ltcGxlIHV0aWxpdHkgLS0gcmV0cmlldmUgZGF0YSBtYXRjaGluZyBhIGNvZGUKICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgICRkYXRhIERhdGEgdG8gc2VhcmNoCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2RlIENvZGUgdG8gc2VhcmNoIGZvcgogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldEZpZWxkKCRkYXRhLCAkY29kZSkKICAgIHsKICAgICAgICBmb3JlYWNoICgkZGF0YSBhcyAkZCkgewogICAgICAgICAgICBpZiAoJGRbJ2NvZGUnXSA9PSAkY29kZSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRkWydkYXRhJ107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBQYXR0ZXJucyBjb21pbmcgaW4gaGVyZSBhcmUgZWl0aGVyIGFsbCBjaHJvbm8KICAgICAqICAgIHBhdHRlcm5zLCBvciBubyBjaHJvbm8gcGF0dGVybnMuCiAgICAgKgogICAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIHRoZSBmaW5hbCBzdHJpbmcKICAgICAqICAgIHJlbmRlciBmb3IgZWFjaCBwYXR0ZXJuIHN1YnBhcnQuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkYXRhIERhdGEgdG8gcmVuZGVyCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlbmRlclBhcnRTdWJQYXR0ZXJuKCRkYXRhKQogICAgewogICAgICAgICRlbmRfdGltZSA9ICRzdGFydF9zdHJpbmcgPSBudWxsOwoKICAgICAgICAvLyBIYW5kbGUgZW1wdHkgcGF0dGVybnMKICAgICAgICBpZiAoY291bnQoJGRhdGEpID09IDApIHsKICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgIH0KCiAgICAgICAgLy8gVGVzdCB0aGUgZmlyc3QgZWxlbWVudAogICAgICAgICRpc19jaHJvbm8gPSBzdHJwb3MoJGRhdGFbJ3BhdHRlcm4nXVswXSwgJygnKTsKICAgICAgICAkcmV0dXJuX3N0cmluZyA9ICcnOwoKICAgICAgICAvLyBOT04gY2hyb25vCiAgICAgICAgaWYgKCRpc19jaHJvbm8gPT09IGZhbHNlKSB7CiAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgZm9yZWFjaCAoJGRhdGFbJ3BhdHRlcm4nXSBhcyAkZCkgewogICAgICAgICAgICAgICAgJHJldHVybl9zdHJpbmcgLj0gJGQgLiAnICcgLiAkZGF0YVsnZGF0YSddWyRpXSAuICcgJzsKICAgICAgICAgICAgICAgICRpKys7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBDaHJvbm8KICAgICAgICAgICAgLy8gSW1wb3J0YW50IG5vdGU6IHN0cnRvdGltZSgpIGV4cGVjdHMKICAgICAgICAgICAgLy8gMDEvMDIvMjAwMCA9IDJuZCBKYW4gMjAwMAogICAgICAgICAgICAvLyAwMS0wMi0yMDAwID0gMXN0IEZlYiAyMDAwIDw9IFVzZSBoeXBoZW5zCiAgICAgICAgICAgICRwYXR0ZXJuID0gaW1wbG9kZSgnJywgJGRhdGFbJ3BhdHRlcm4nXSk7CiAgICAgICAgICAgIHN3aXRjaCAoc3RydG9sb3dlcih0cmltKCRwYXR0ZXJuKSkpIHsKICAgICAgICAgICAgICAgIC8vIEVycm9yIGNhc2UKICAgICAgICAgICAgICAgIGNhc2UgJyc6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgLy8gWWVhciBvbmx5CiAgICAgICAgICAgICAgICBjYXNlICcoeWVhciknOgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkZGF0YVsnZGF0YSddWzBdIC4gJyAnOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIC8vIFllYXIgKyBNb250aAogICAgICAgICAgICAgICAgY2FzZSAnKHllYXIpKG1vbnRoKSc6CiAgICAgICAgICAgICAgICAgICAgJG1vbnRocyA9IGV4cGxvZGUoJy0nLCAkZGF0YVsnZGF0YSddWzFdKTsKICAgICAgICAgICAgICAgICAgICAkbSA9IGNvdW50KCRtb250aHMpOwogICAgICAgICAgICAgICAgICAgICR5ZWFycyAgPSBleHBsb2RlKCctJywgJGRhdGFbJ2RhdGEnXVswXSk7CiAgICAgICAgICAgICAgICAgICAgJHkgPSBjb3VudCgkeWVhcnMpOwogICAgICAgICAgICAgICAgICAgICRteSA9ICRtIC4gJHk7CgogICAgICAgICAgICAgICAgICAgICRzdGFydF90aW1lID0gc3RydG90aW1lKCcwMS0nIC4gJG1vbnRoc1swXSAuICctJyAuICR5ZWFyc1swXSk7CiAgICAgICAgICAgICAgICAgICAgJGVuZF9zdHJpbmcgPSAnRiBZJzsKCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkbXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gSmFudWFyeSAyMDAwIC0gRmVicnVhcnkgMjAwMQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcyMic6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhcnRfc3RyaW5nID0gJ0YgWSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5kX3RpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHN0cnRvdGltZSgnMDEtJyAuICRtb250aHNbMV0gLiAnLScgLiAkeWVhcnNbMV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBKYW51YXJ5IC0gRmVicnVhcnkgMjAwMAogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcyMSc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhcnRfc3RyaW5nID0gJ0YnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVuZF90aW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBzdHJ0b3RpbWUoJzAxLScgLiAkbW9udGhzWzFdIC4gJy0nIC4gJHllYXJzWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSmFudWFyeSAyMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzExJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGFydF9zdHJpbmcgPSAnRiBZJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbmRfdGltZSA9IG51bGw7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEphbnVhcnkgMjAwMCAtIEphbnVhcnkgMjAwMQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcxMic6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhcnRfc3RyaW5nID0gJ0YgWSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5kX3RpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IHN0cnRvdGltZSgnMDEtJyAuICRtb250aHNbMF0gLiAnLScgLiAkeWVhcnNbMV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICgkZW5kX3RpbWUgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSgkc3RhcnRfc3RyaW5nLCAkc3RhcnRfdGltZSkgLiAnIC0gJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlKCRlbmRfc3RyaW5nLCAkZW5kX3RpbWUpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlKCRzdGFydF9zdHJpbmcsICRzdGFydF90aW1lKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgLy8gWWVhciArIE1vbnRoICsgRGF5CiAgICAgICAgICAgICAgICBjYXNlICcoeWVhcikobW9udGgpKGRheSknOgogICAgICAgICAgICAgICAgICAgICRkYXlzICAgPSBleHBsb2RlKCctJywgJGRhdGFbJ2RhdGEnXVsyXSk7CiAgICAgICAgICAgICAgICAgICAgJGQgPSBjb3VudCgkZGF5cyk7CiAgICAgICAgICAgICAgICAgICAgJG1vbnRocyA9IGV4cGxvZGUoJy0nLCAkZGF0YVsnZGF0YSddWzFdKTsKICAgICAgICAgICAgICAgICAgICAkbSA9IGNvdW50KCRtb250aHMpOwogICAgICAgICAgICAgICAgICAgICR5ZWFycyAgPSBleHBsb2RlKCctJywgJGRhdGFbJ2RhdGEnXVswXSk7CiAgICAgICAgICAgICAgICAgICAgJHkgPSBjb3VudCgkeWVhcnMpOwogICAgICAgICAgICAgICAgICAgICRkbXkgPSAkZCAuICRtIC4gJHk7CgogICAgICAgICAgICAgICAgICAgICRzdGFydF90aW1lCiAgICAgICAgICAgICAgICAgICAgICAgID0gc3RydG90aW1lKCRkYXlzWzBdIC4gJy0nIC4gJG1vbnRoc1swXSAuICctJyAuICR5ZWFyc1swXSk7CiAgICAgICAgICAgICAgICAgICAgJGVuZF9zdHJpbmcgPSAnalMgRiBZJzsKCiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkZG15KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAxIEphbnVhcnkgMjAwMAogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcxMTEnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXJ0X3N0cmluZyA9ICdqUyBGIFknOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVuZF90aW1lID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMDEgSmFudWFyeSAyMDAwIC0gMDEgSmFudWFyeSAyMDAxCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzExMic6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhcnRfc3RyaW5nID0gJ2pTIEYgWSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5kX3RpbWUgPSBzdHJ0b3RpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRheXNbMF0gLiAnLScgLiAkbW9udGhzWzBdIC4gJy0nIC4gJHllYXJzWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwMSBKYW51YXJ5IC0gMDEgRmVicnVhcnkgMjAwMAogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcxMjEnOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXJ0X3N0cmluZyA9ICdqUyBGJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbmRfdGltZSA9IHN0cnRvdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF5c1swXSAuICctJyAuICRtb250aHNbMV0gLiAnLScgLiAkeWVhcnNbMF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAxIEphbnVhcnkgMjAwMCAtIDAxIEZlYnJ1YXJ5IDIwMDEKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMTIyJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGFydF9zdHJpbmcgPSAnalMgRiBZJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbmRfdGltZSA9IHN0cnRvdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF5c1swXSAuICctJyAuICRtb250aHNbMV0gLiAnLScgLiAkeWVhcnNbMV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAxIC0gMDIgSmFudWFyeSAyMDAwCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzIxMSc6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhcnRfc3RyaW5nID0gJ2pTJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlbmRfdGltZSA9IHN0cnRvdGltZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGF5c1sxXSAuICctJyAuICRtb250aHNbMF0gLiAnLScgLiAkeWVhcnNbMF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDAxIEphbnVhcnkgMjAwMCAtIDAyIEphbnVhcnkgMjAwMQogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICcyMTInOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXJ0X3N0cmluZyA9ICdqUyBGIFknOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVuZF90aW1lID0gc3RydG90aW1lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYXlzWzFdIC4gJy0nIC4gJG1vbnRoc1swXSAuICctJyAuICR5ZWFyc1sxXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gMDEgSmFudWFyeSAtIDAyIEZlYnJ1YXJ5IDIwMDAKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnMjIxJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGFydF9zdHJpbmcgPSAnalMgRic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5kX3RpbWUgPSBzdHJ0b3RpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRheXNbMV0gLiAnLScgLiAkbW9udGhzWzFdIC4gJy0nIC4gJHllYXJzWzBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAwMSBKYW51YXJ5IDIwMDAgLSAwMiBGZWJydWFyeSAyMDAxCiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzIyMic6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhcnRfc3RyaW5nID0gJ2pTIEYgWSc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5kX3RpbWUgPSBzdHJ0b3RpbWUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRheXNbMV0gLiAnLScgLiAkbW9udGhzWzFdIC4gJy0nIC4gJHllYXJzWzFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICgkZW5kX3RpbWUgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZSgkc3RhcnRfc3RyaW5nLCAkc3RhcnRfdGltZSkgLiAnIC0gJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlKCRlbmRfc3RyaW5nLCAkZW5kX3RpbWUpOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlKCRzdGFydF9zdHJpbmcsICRzdGFydF90aW1lKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgkZGF0YVsncGF0dGVybiddIGFzICRkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXR1cm5fc3RyaW5nIC49ICRkIC4gJyAnIC4gJGRhdGFbJ2RhdGEnXVskaV0gLiAnICc7CiAgICAgICAgICAgICAgICAgICAgICAgICRpKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJldHVybl9zdHJpbmc7CiAgICB9CgogICAgLyoqCiAgICAgKiBCcmVha3MgdXAgdGhlIGZ1bGwgcGF0dGVybiBpbnRvIGNocm9ubyBhbmQgb3RoZXIKICAgICAqICAgY2hyb25vID0gKHllYXIpIGV0Yy4uLiBpZS4gZ2V0cyByZXBsYWNlZCBpbmxpbmUKICAgICAqICAgb3RoZXIgID0gbW9zdCBlbnVtIGhvbGRpbmdzIG9yICdQdC4nLi4uIGllLiBnZXQgY29uY2F0ZW5hdGVkCiAgICAgKgogICAgICogICBUaGUgc2FtZSBzdWIgZnVuY3Rpb24gaGFuZGxlcyBib3RoLCBidXQgdGhleSBtdXN0IGJlCiAgICAgKiAgICBzZW50IGluIGxpa2UgZ3JvdXBzLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZGF0YSBEYXRhIHRvIHJlbmRlcgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZW5kZXJTdWJQYXR0ZXJuKCRkYXRhKQogICAgewogICAgICAgICRyZXR1cm5fc3RyaW5nID0gJyc7CiAgICAgICAgJHN1Yl9wYXR0ZXJuID0gW107CiAgICAgICAgJGkgPSAwOwogICAgICAgIGZvcmVhY2ggKCRkYXRhWydwYXR0ZXJuJ10gYXMgJHApIHsKICAgICAgICAgICAgLy8gSXMgdGhpcyBjaHJvbm8gcGF0dGVybiBlbGVtZW50PwogICAgICAgICAgICAkaXNfY2hfcGF0dGVybiA9IHN0cnBvcygkcCwgJygnKTsKCiAgICAgICAgICAgIC8vIElmIGl0J3Mgbm90LCByZW5kZXIgd2hhdCB3ZSBoYXZlIHNvIGZhcgogICAgICAgICAgICAvLyAgIGFuZCBjbGVhciB0aGUgYXJyYXkKICAgICAgICAgICAgaWYgKCRpc19jaF9wYXR0ZXJuID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJHJldHVybl9zdHJpbmcgLj0gJHRoaXMtPnJlbmRlclBhcnRTdWJQYXR0ZXJuKCRzdWJfcGF0dGVybik7CiAgICAgICAgICAgICAgICAkc3ViX3BhdHRlcm4gPSBbXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gQWRkIHRoZSBjdXJyZW50IGVsZW1lbnQgdG8gdGhlIGFycmF5CiAgICAgICAgICAgICRzdWJfcGF0dGVyblsncGF0dGVybiddW10gPSAkZGF0YVsncGF0dGVybiddWyRpXTsKICAgICAgICAgICAgJHN1Yl9wYXR0ZXJuWydkYXRhJ11bXSAgICA9ICRkYXRhWydkYXRhJ11bJGldOwoKICAgICAgICAgICAgLy8gTm93IGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgbm90IGEKICAgICAgICAgICAgLy8gICBjaHJvbm8gcGF0dGVybiBlbGVtZW50IHdlIHJlbmRlciBpdAogICAgICAgICAgICAvLyAgIG9uIGl0J3Mgb3duIGFuZCBjbGVhciB0aGUgYXJyYXkgYWdhaW4KICAgICAgICAgICAgaWYgKCRpc19jaF9wYXR0ZXJuID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJHJldHVybl9zdHJpbmcgLj0gJHRoaXMtPnJlbmRlclBhcnRTdWJQYXR0ZXJuKCRzdWJfcGF0dGVybik7CiAgICAgICAgICAgICAgICAkc3ViX3BhdHRlcm4gPSBbXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkaSsrOwogICAgICAgIH0KICAgICAgICAvLyBSZW5kZXIgdGhlIGxhc3Qgc2VnbWVudCBvZiB0aGUgYXJyYXkKICAgICAgICAkcmV0dXJuX3N0cmluZyAuPSAkdGhpcy0+cmVuZGVyUGFydFN1YlBhdHRlcm4oJHN1Yl9wYXR0ZXJuKTsKICAgICAgICByZXR1cm4gJHJldHVybl9zdHJpbmc7CiAgICB9CgogICAgLyoqCiAgICAgKiBDdXJyZW50bHkgdXNlZCB0byBoYW5kbGVkIG5vdGUgU1VCZmllbGRzCiAgICAgKiBlZy4gODYzL3osIG5vdCA4NjYgZ2VuZXJhbGx5CiAgICAgKiAgIGJ1dCBhbnl0aGluZyBub24gZW51bSBhbmQgY2hyb25vCiAgICAgKiAgIHJlbGF0ZWQgZW5kcyB1cCBoZXJlLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZGF0YSBEYXRhIHRvIHJlbmRlcgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlbmRlck90aGVyUGF0dGVybigkZGF0YSkKICAgIHsKICAgICAgICAkcmV0dXJuID0gW107CiAgICAgICAgJGkgPSAwOwogICAgICAgIGZvcmVhY2ggKCRkYXRhWydkYXRhJ10gYXMgJGQpIHsKICAgICAgICAgICAgc3dpdGNoICgkZGF0YVsncGF0dGVybl9jb2RlJ11bJGldKSB7CiAgICAgICAgICAgICAgICBjYXNlICd6JzoKICAgICAgICAgICAgICAgICAgICAkcmV0dXJuWydub3RlcyddW10gPSAkZDsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgJHJldHVyblskZGF0YVsncGF0dGVybl9jb2RlJ11bJGldXVtdID0gJGQ7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGkrKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXR1cm47CiAgICB9CgogICAgLyoqCiAgICAgKiBSZW5kZXJzIGluZGl2aWR1YWwgaG9sZGluZ3MgYWdhaW5zdCBhIHBhdHRlcm4KICAgICAqICAgTm90ZSBmaWVsZHMgYW5kIHByZWRpY3Rpb24gcGF0dGVybnMgYXJlIGhhbmRsZWQKICAgICAqICAgc2VwYXJhdGVseQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkcGF0dGVybnMgUGF0dGVybiBkYXRhCiAgICAgKiBAcGFyYW0gYXJyYXkgJGZpZWxkICAgIEZpZWxkIGRhdGEKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiByZW5kZXJQYXR0ZXJuKCRwYXR0ZXJucywgJGZpZWxkKQogICAgewogICAgICAgICRyZXR1cm4gPSBbXTsKICAgICAgICAvLyBDaGVjayB3ZSBoYXZlIGEgcGF0dGVybiBhbmQgdGhlIHBhdHRlcm4gZXhpc3RzCiAgICAgICAgaWYgKGlzc2V0KCRmaWVsZFsncGF0dGVybiddKSAmJiBpc3NldCgkcGF0dGVybnNbJGZpZWxkWydwYXR0ZXJuJ11dKSkgewogICAgICAgICAgICAvLyBFbnVtZXJhdGlvbiwgQ2hvbm9sb2d5IGFuZCBPdGhlciBmaWVsZHMKICAgICAgICAgICAgJGVudW1fY2hyb25vID0gWwogICAgICAgICAgICAgICAgJ2EnLCAnYicsICdjJywgJ2QnLCAnZScsICdmJywgJ2knLCAnaicsICdrJywgJ2wnLCAnbScsCiAgICAgICAgICAgIF07CiAgICAgICAgICAgICR0aGlzX2VuX2NoICA9IFsncGF0dGVybicgPT4gW10sICdkYXRhJyA9PiBbXV07CiAgICAgICAgICAgICR0aGlzX290aGVyICA9IFsncGF0dGVybicgPT4gW10sICdkYXRhJyA9PiBbXV07CgogICAgICAgICAgICAkcGF0dGVybiA9ICRwYXR0ZXJuc1skZmllbGRbJ3BhdHRlcm4nXV07CiAgICAgICAgICAgIC8vIEZvcmVhY2ggc3ViZmllbGQKICAgICAgICAgICAgZm9yZWFjaCAoJGZpZWxkWydkYXRhJ10gYXMgJGQpIHsKICAgICAgICAgICAgICAgIC8vIEdldCB0aGUgcGF0dGVybiBmb3IgdGhlIHN1YmZpZWxkCiAgICAgICAgICAgICAgICAkcCA9ICR0aGlzLT5nZXRGaWVsZCgkcGF0dGVybiwgJGRbJ2NvZGUnXSk7CiAgICAgICAgICAgICAgICAvLyBQdXQgaW50byB0aGUgc3ViIHBhdHRlcm4KICAgICAgICAgICAgICAgIC8vIC4uLiBFbnVtZXJhdGlvbi9DaHJvbm9sb2d5CiAgICAgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGRbJ2NvZGUnXSwgJGVudW1fY2hyb25vKSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzX2VuX2NoWydwYXR0ZXJuX2NvZGUnXVtdID0gJGRbJ2NvZGUnXTsKICAgICAgICAgICAgICAgICAgICAkdGhpc19lbl9jaFsncGF0dGVybiddW10gPSAkcDsKICAgICAgICAgICAgICAgICAgICAkdGhpc19lbl9jaFsnZGF0YSddW10gPSAkZFsnZGF0YSddOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyAuLi4gT3RoZXIKICAgICAgICAgICAgICAgICAgICAkdGhpc19vdGhlclsncGF0dGVybl9jb2RlJ11bXSA9ICRkWydjb2RlJ107CiAgICAgICAgICAgICAgICAgICAgJHRoaXNfb3RoZXJbJ3BhdHRlcm4nXVtdID0gJHA7CiAgICAgICAgICAgICAgICAgICAgJHRoaXNfb3RoZXJbJ2RhdGEnXVtdID0gJGRbJ2RhdGEnXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkcmV0dXJuWydlbl9jaCddID0gJHRoaXMtPnJlbmRlclN1YlBhdHRlcm4oJHRoaXNfZW5fY2gpOwogICAgICAgICAgICAgICAgJHJldHVyblsnb3RoZXInXSA9ICR0aGlzLT5yZW5kZXJPdGhlclBhdHRlcm4oJHRoaXNfb3RoZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIGp1c3QgcmV0dXJuIHRoZSBhIHN1YmZpZWxkIGFzIGEgbm90ZQogICAgICAgICAgICAkcmV0dXJuWydvdGhlciddWydub3RlcyddW10gPSAkdGhpcy0+Z2V0RmllbGQoJGZpZWxkWydkYXRhJ10sICdhJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmV0dXJuOwogICAgfQoKICAgIC8qKgogICAgICogQSBmdW5jdGlvbiB0dXJuaW5nIGhvbGRpbmdzIG1hcmMgaW50byBhbiBhcnJheSBvZiBkaXNwbGF5IHJlYWR5IHN0cmluZ3MuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRob2xkaW5nc19tYXJjIEhvbGRpbmdzIGRhdGEgZnJvbSBNQVJDLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHJlbmRlclNlcmlhbEhvbGRpbmdzKCRob2xkaW5nc19tYXJjKQogICAgewogICAgICAgIC8vIENvbnZlcnQgdG8gb25lIGxpbmUgcGVyIHRhZwogICAgICAgICRkYXRhX3NldCA9IFtdOwogICAgICAgIGZvcmVhY2ggKCRob2xkaW5nc19tYXJjIGFzICRyb3cpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJHJvd1snU1VCRklFTERfREFUQSddICE9IG51bGwKICAgICAgICAgICAgICAgICYmIHRyaW0oJHJvd1snU1VCRklFTERfREFUQSddKSAhPSAnJwogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICRkYXRhX3NldFskcm93WydGSUVMRF9TRVFVRU5DRSddXVtdID0gWwogICAgICAgICAgICAgICAgICAgICd0YWcnICA9PiB0cmltKCRyb3dbJ0ZJRUxEX1RBRyddKSwKICAgICAgICAgICAgICAgICAgICAnY29kZScgPT4gdHJpbSgkcm93WydTVUJGSUVMRF9DT0RFJ10pLAogICAgICAgICAgICAgICAgICAgICdkYXRhJyA9PiB0cmltKCRyb3dbJ1NVQkZJRUxEX0RBVEEnXSksCiAgICAgICAgICAgICAgICBdOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBQcmVwYXJlIHRoZSBzZXQgZm9yIHNvcnRpbmcgb24gJzgnIHN1YmZpZWxkcywgYWxzbyBtb3ZlIHRoZSB0YWcgZGF0YSBvdXQKICAgICAgICAkc29ydF9zZXQgPSBbXTsKICAgICAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBzZXF1ZW5jZQogICAgICAgIGZvcmVhY2ggKCRkYXRhX3NldCBhcyAkcm93KSB7CiAgICAgICAgICAgICR0YWcgID0gJyc7CiAgICAgICAgICAgICRkYXRhID0gW107CiAgICAgICAgICAgICRzb3J0X3J1bGUgPSAnJzsKICAgICAgICAgICAgJHNvcnRfb3JkZXIgPSAnJzsKICAgICAgICAgICAgLy8gQW5kIGVhY2ggc3ViZmllbGQKICAgICAgICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkc3ViZmllbGQpIHsKICAgICAgICAgICAgICAgIC8vIEZvdW5kIHRoZSAnOCcgc3ViZmllbGQKICAgICAgICAgICAgICAgIGlmICgkc3ViZmllbGRbJ2NvZGUnXSA9PSA4KSB7CiAgICAgICAgICAgICAgICAgICAgLy8gR3JhYiB0aGUgdGFnIGZvciB0aGlzIHNlcXVlbmNlIHdoaWxzdCBoZXJlCiAgICAgICAgICAgICAgICAgICAgJHRhZyAgPSAkc3ViZmllbGRbJ3RhZyddOwogICAgICAgICAgICAgICAgICAgICRzb3J0ID0gZXhwbG9kZSgnLicsICRzdWJmaWVsZFsnZGF0YSddKTsKICAgICAgICAgICAgICAgICAgICAkc29ydF9ydWxlICA9ICRzb3J0WzBdOwogICAgICAgICAgICAgICAgICAgICRzb3J0X29yZGVyID0gJHNvcnRbMV0gPz8gMDsKICAgICAgICAgICAgICAgICAgICAkc29ydF9vcmRlciA9IHNwcmludGYoJyUwNWQnLCAkc29ydF9vcmRlcik7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBnb2VzIGluIHRoZSBkYXRhIGJ1Y2tldAogICAgICAgICAgICAgICAgICAgICRkYXRhW10gPSBbCiAgICAgICAgICAgICAgICAgICAgICAgICdjb2RlJyA9PiAkc3ViZmllbGRbJ2NvZGUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnID0+ICRzdWJmaWVsZFsnZGF0YSddLAogICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHNvcnRfc2V0WyRzb3J0X3J1bGUgLiAnLicgLiAkc29ydF9vcmRlcl0gPSBbCiAgICAgICAgICAgICAgICAndGFnJyAgPT4gJHRhZywKICAgICAgICAgICAgICAgICdkYXRhJyA9PiAkZGF0YSwKICAgICAgICAgICAgXTsKICAgICAgICB9CgogICAgICAgIC8vIFNvcnQgdGhlIGZsb2F0IGFycmF5CiAgICAgICAga3Jzb3J0KCRzb3J0X3NldCk7CgogICAgICAgIC8vIFJlbW92ZSB0aGUgcHJlZGljdGlvbiBwYXR0ZXJucyBmcm9tIHRoZSBsaXN0CiAgICAgICAgLy8gIGFuZCBkcm9wIHNvcnQgb3JkZXJzIG9yIGhvbGRpbmdzLgogICAgICAgICRwYXR0ZXJucyA9IFtdOwogICAgICAgICRob2xkaW5nc19kYXRhID0gW107CiAgICAgICAgZm9yZWFjaCAoJHNvcnRfc2V0IGFzICRzb3J0ID0+ICRyb3cpIHsKICAgICAgICAgICAgJHJ1bGUgPSBleHBsb2RlKCcuJywgJHNvcnQpOwogICAgICAgICAgICBpZiAoJHJvd1sndGFnJ10gPT0gODUzKSB7CiAgICAgICAgICAgICAgICAkcGF0dGVybnNbJHJ1bGVbMF1dID0gJHJvd1snZGF0YSddOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGhvbGRpbmdzX2RhdGFbXSA9IFsKICAgICAgICAgICAgICAgICAgICAncGF0dGVybicgPT4gJHJ1bGVbMF0sCiAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgID0+ICRyb3dbJ2RhdGEnXSwKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIFJlbmRlciBhbGwgdGhlIGhvbGRpbmdzIG5vdwogICAgICAgICRyZW5kZXJlZF9saXN0ID0gW107CiAgICAgICAgZm9yZWFjaCAoJGhvbGRpbmdzX2RhdGEgYXMgJHJvdykgewogICAgICAgICAgICAkcmVuZGVyZWRfbGlzdFtdID0gJHRoaXMtPnJlbmRlclBhdHRlcm4oJHBhdHRlcm5zLCAkcm93KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVuZGVyZWRfbGlzdDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBQdXJjaGFzZSBIaXN0b3J5CiAgICAgKgogICAgICogVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyB0aGUgYWNxdWlzaXRpb25zIGhpc3RvcnkgZGF0YSBmb3IgdGhlCiAgICAgKiBzcGVjaWZpYyByZWNvcmQgKHVzdWFsbHkgcmVjZW50bHkgcmVjZWl2ZWQgaXNzdWVzIG9mIGEgc2VyaWFsKS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRpZCBUaGUgcmVjb3JkIGlkIHRvIHJldHJpZXZlIHRoZSBpbmZvIGZvcgogICAgICoKICAgICAqIEB0aHJvd3MgSUxTRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5ICAgICBBbiBhcnJheSB3aXRoIHRoZSBhY3F1aXNpdGlvbnMgZGF0YSBvbiBzdWNjZXNzLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UHVyY2hhc2VIaXN0b3J5KCRpZCkKICAgIHsKICAgICAgICAvLyBTdHJpcCBvZmYgdGhlIHByZWZpeCBmcm9tIHZ0bHMgZXhwb3J0cwogICAgICAgICRkYl9pZCA9IHN0cl9yZXBsYWNlKCd2dGxzJywgJycsICRpZCk7CiAgICAgICAgJGZpZWxkcyA9IFsnYmliX2lkOnN0cmluZycgPT4gJGRiX2lkXTsKCiAgICAgICAgLy8gTGV0J3MgZ28gY2hlY2sgaWYgdGhpcyBiaWIgaWQgaXMgZm9yIGEgc2VyaWFsCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaC5ob2xkaW5nc2lkLCBsLm5hbWUgJyAuCiAgICAgICAgICAgICdGUk9NIGRiYWRtaW4uaG9sZGxpbmsgaCwgZGJhZG1pbi5sb2NhdGlvbiBsICcgLgogICAgICAgICAgICAnV0hFUkUgaC5iaWJpZCAgID0gOmJpYl9pZCAnIC4KICAgICAgICAgICAgJ0FORCBoLm1hc2tlZCAgICA9IDAgJyAuCiAgICAgICAgICAgICdBTkQgaC5sb2NhdGlvbiAgPSBsLmxvY2F0aW9uX2lkJzsKCiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwsICRmaWVsZHMpOwoKICAgICAgICAvLyBSZXN1bHRzIGluZGljYXRlIHNlcmlhbCBob2xkaW5ncwogICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA9PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CgogICAgICAgICRzcWwgPSAnU0VMRUNUICogJyAuCiAgICAgICAgICAgICdGUk9NIGRiYWRtaW4uaXNvXzI3MDkgaSAnIC4KICAgICAgICAgICAgJ1dIRVJFIGkuaWQgPSA6aGlkICcgLgogICAgICAgICAgICAnQU5EIGkuaWR0eXBlID0gMTA0ICcgLgogICAgICAgICAgICAiQU5EIGkuZmllbGRfdGFnIGluICgnODUzJywgJzg2MycsICc4NjYnKSAiIC4KICAgICAgICAgICAgJ09SREVSIEJZIGkuZmllbGRfc2VxdWVuY2UsIGkuc3ViZmllbGRfc2VxdWVuY2UnOwoKICAgICAgICAkZGF0YSA9IFtdOwogICAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykgewogICAgICAgICAgICAkZmllbGRzID0gWydoaWQ6c3RyaW5nJyA9PiAkcm93WydIT0xESU5HU0lEJ11dOwogICAgICAgICAgICAkaHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwsICRmaWVsZHMpOwogICAgICAgICAgICAkZGF0YVskcm93WydOQU1FJ11dID0gJHRoaXMtPnJlbmRlclNlcmlhbEhvbGRpbmdzKCRocmVzdWx0KTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkZGF0YTsKICAgIH0KCiAgICAvKioKICAgICAqICBVc2VkIGZvciBURVNUSU5HIG9ubHkuIEdyYWJzIGFsbCBwcmVkaWN0aW9uCiAgICAgKiAgICAgcGF0dGVybnMgaW4gdGhlIHN5c3RlbSBmb3IgYW5hbHlzaXMKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGw4NTMoKQogICAgewogICAgICAgICRzcWwgPSAnU0VMRUNUICogJyAuCiAgICAgICAgICAgICdGUk9NIGRiYWRtaW4uaXNvXzI3MDkgaSAnIC4KICAgICAgICAgICAgJ1dIRVJFIGkuaWR0eXBlID0gMTA0ICcgLgogICAgICAgICAgICAiQU5EIGkuZmllbGRfdGFnIGluICgnODUzJykgIiAuCiAgICAgICAgICAgICdPUkRFUiBCWSBpLmZpZWxkX3NlcXVlbmNlLCBpLnN1YmZpZWxkX3NlcXVlbmNlJzsKICAgICAgICAkaHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwpOwogICAgICAgIGlmIChjb3VudCgkaHJlc3VsdCkgPT0gMCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CgogICAgICAgICRkYXRhX3NldCA9IFtdOwogICAgICAgIGZvcmVhY2ggKCRocmVzdWx0IGFzICRyb3cpIHsKICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJHJvd1snU1VCRklFTERfREFUQSddICE9IG51bGwKICAgICAgICAgICAgICAgICYmIHRyaW0oJHJvd1snU1VCRklFTERfREFUQSddKSAhPSAnJwogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICRkYXRhX3NldFskcm93WydJRCddIC4gJ18nIC4gJHJvd1snRklFTERfU0VRVUVOQ0UnXV1bXSA9IFsKICAgICAgICAgICAgICAgICAgICAnaWQnICAgPT4gdHJpbSgkcm93WydJRCddKSwKICAgICAgICAgICAgICAgICAgICAnY29kZScgPT4gdHJpbSgkcm93WydTVUJGSUVMRF9DT0RFJ10pLAogICAgICAgICAgICAgICAgICAgICdkYXRhJyA9PiB0cmltKCRyb3dbJ1NVQkZJRUxEX0RBVEEnXSksCiAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGRhdGFfc2V0OwogICAgfQoKICAgIC8qIEVORCAtIFNlcmlhbHMgZnVuY3Rpb25zICovCgogICAgLyoqCiAgICAgKiBQYXRyb24gTG9naW4KICAgICAqCiAgICAgKiBUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciBhdXRoZW50aWNhdGluZyBhIHBhdHJvbiBhZ2FpbnN0IHRoZSBjYXRhbG9nLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJhcmNvZGUgIFRoZSBwYXRyb24gYmFyY29kZQogICAgICogQHBhcmFtIHN0cmluZyAkcGFzc3dvcmQgVGhlIHBhdHJvbiBwYXNzd29yZAogICAgICoKICAgICAqIEB0aHJvd3MgSUxTRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIG1peGVkICAgICAgICAgICBBc3NvY2lhdGl2ZSBhcnJheSBvZiBwYXRyb24gaW5mbyBvbiBzdWNjZXNzZnVsIGxvZ2luLAogICAgICogbnVsbCBvbiB1bnN1Y2Nlc3NmdWwgbG9naW4uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwYXRyb25Mb2dpbigkYmFyY29kZSwgJHBhc3N3b3JkKQogICAgewogICAgICAgICRzcWwgPSAnU0VMRUNUIGkuaWQsIGIuYmFyY29kZSwgaS5zdWJmaWVsZF9kYXRhIEFTIHBhc3N3b3JkLCBwLm5hbWUsICcgLgogICAgICAgICAgICAncC5lX21haWxfYWRkcmVzc19wcmltYXJ5LCBwLmRlcGFydG1lbnQgJyAuCiAgICAgICAgICAgICdGUk9NIGRiYWRtaW4uaXNvXzI3MDkgaSwgZGJhZG1pbi5wYXRyb24gcCwgZGJhZG1pbi5wYXRyb25fYmFyY29kZSBiICcgLgogICAgICAgICAgICAnV0hFUkUgaS5pZHR5cGUgICAgICAgID0gMTA1ICcgLgogICAgICAgICAgICAiQU5EICAgaS5maWVsZF90YWcgICAgID0gJzAxNScgIiAuCiAgICAgICAgICAgICJBTkQgICBpLnN1YmZpZWxkX2NvZGUgPSAnYicgIiAuCiAgICAgICAgICAgICdBTkQgICBwLnBhdHJvbl9pZCAgICAgPSBpLmlkICcgLgogICAgICAgICAgICAnQU5EICAgYi5wYXRyb25faWQgICAgID0gaS5pZCAnIC4KICAgICAgICAgICAgJ0FORCAgIGkuaWQgPSAoICcgLgogICAgICAgICAgICAnICBTRUxFQ1QgcC5wYXRyb25faWQgQVMgaWQgJyAuCiAgICAgICAgICAgICcgIEZST00gICBkYmFkbWluLnBhdHJvbl9iYXJjb2RlIHAgJyAuCiAgICAgICAgICAgICcgIFdIRVJFICBVUFBFUihwLmJhcmNvZGUpICAgID0gVVBQRVIoOmJhcmNvZGUpICcgLgogICAgICAgICAgICAnKSc7CgogICAgICAgICRmaWVsZHMgPSBbJ2JhcmNvZGU6c3RyaW5nJyA9PiAkYmFyY29kZV07CiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwsICRmaWVsZHMpOwoKICAgICAgICBpZiAoY291bnQoJHJlc3VsdCkgPiAwKSB7CiAgICAgICAgICAgIC8vIFZhbGlkIFBhc3N3b3JkCiAgICAgICAgICAgIGlmICgkcmVzdWx0WzBdWydQQVNTV09SRCddID09ICRwYXNzd29yZCkgewogICAgICAgICAgICAgICAgJHVzZXIgPSBbXTsKICAgICAgICAgICAgICAgICRzcGxpdCAgICAgID0gc3RycG9zKCRyZXN1bHRbMF1bJ05BTUUnXSwgJywnKTsKICAgICAgICAgICAgICAgICRsYXN0X25hbWUgID0gdHJpbShzdWJzdHIoJHJlc3VsdFswXVsnTkFNRSddLCAwLCAkc3BsaXQpKTsKICAgICAgICAgICAgICAgICRmaXJzdF9uYW1lID0gdHJpbShzdWJzdHIoJHJlc3VsdFswXVsnTkFNRSddLCAkc3BsaXQgKyAxKSk7CiAgICAgICAgICAgICAgICAkc3BsaXQgICAgICA9IHN0cnBvcygkZmlyc3RfbmFtZSwgJyAnKTsKICAgICAgICAgICAgICAgIGlmICgkc3BsaXQgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJGZpcnN0X25hbWUgPSB0cmltKHN1YnN0cigkZmlyc3RfbmFtZSwgMCwgJHNwbGl0KSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHVzZXJbJ2lkJ10gICAgICAgICAgID0gdHJpbSgkcmVzdWx0WzBdWydJRCddKTsKICAgICAgICAgICAgICAgICR1c2VyWydmaXJzdG5hbWUnXSAgICA9IHRyaW0oJGZpcnN0X25hbWUpOwogICAgICAgICAgICAgICAgJHVzZXJbJ2xhc3RuYW1lJ10gICAgID0gdHJpbSgkbGFzdF9uYW1lKTsKICAgICAgICAgICAgICAgICR1c2VyWydjYXRfdXNlcm5hbWUnXSA9IHN0cnRvdXBwZXIodHJpbSgkcmVzdWx0WzBdWydCQVJDT0RFJ10pKTsKICAgICAgICAgICAgICAgICR1c2VyWydjYXRfcGFzc3dvcmQnXSA9IHRyaW0oJHJlc3VsdFswXVsnUEFTU1dPUkQnXSk7CiAgICAgICAgICAgICAgICAkdXNlclsnZW1haWwnXSAgICAgICAgPSB0cmltKCRyZXN1bHRbMF1bJ0VfTUFJTF9BRERSRVNTX1BSSU1BUlknXSk7CiAgICAgICAgICAgICAgICAkdXNlclsnbWFqb3InXSAgICAgICAgPSB0cmltKCRyZXN1bHRbMF1bJ0RFUEFSVE1FTlQnXSk7CiAgICAgICAgICAgICAgICAkdXNlclsnY29sbGVnZSddICAgICAgPSBudWxsOwoKICAgICAgICAgICAgICAgIHJldHVybiAkdXNlcjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIEludmFsaWQgUGFzc3dvcmQKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gVXNlciBub3QgZm91bmQKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogR2V0IFBhdHJvbiBQcm9maWxlCiAgICAgKgogICAgICogVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyB0aGUgcHJvZmlsZSBmb3IgYSBzcGVjaWZpYyBwYXRyb24uCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRwYXRyb24gVGhlIHBhdHJvbiBhcnJheQogICAgICoKICAgICAqIEB0aHJvd3MgSUxTRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5ICAgICAgICBBcnJheSBvZiB0aGUgcGF0cm9uJ3MgcHJvZmlsZSBkYXRhIG9uIHN1Y2Nlc3MuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNeVByb2ZpbGUoJHBhdHJvbikKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBwLm5hbWUsIHAuc3RyZWV0X2FkZHJlc3NfMSwgcC5zdHJlZXRfYWRkcmVzc18yLCBwLmNpdHksICcgLgogICAgICAgICAgICAncC5wb3N0YWxfY29kZSwgcC50ZWxlcGhvbmVfcHJpbWFyeSwgdC5uYW1lIGFzIHBhdHJvbl90eXBlICcgLgogICAgICAgICAgICAnRlJPTSAgZGJhZG1pbi5wYXRyb25fdHlwZV9wYXRyb24gcHQsIGRiYWRtaW4ucGF0cm9uIHAsICcgLgogICAgICAgICAgICAnZGJhZG1pbi5wYXRyb25fdHlwZSB0ICcgLgogICAgICAgICAgICAnV0hFUkUgcC5wYXRyb25faWQgICAgICA9IHB0LnBhdHJvbl9pZCAnIC4KICAgICAgICAgICAgJ0FORCAgIHQucGF0cm9uX3R5cGVfaWQgPSBwdC5wYXRyb25fdHlwZV9pZCAnIC4KICAgICAgICAgICAgJ0FORCAgIHAucGF0cm9uX2lkICAgICAgPSA6cGF0cm9uX2lkJzsKCiAgICAgICAgJGZpZWxkcyA9IFsncGF0cm9uX2lkOnN0cmluZycgPT4gJHBhdHJvblsnaWQnXV07CiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwsICRmaWVsZHMpOwoKICAgICAgICBpZiAoY291bnQoJHJlc3VsdCkgPiAwKSB7CiAgICAgICAgICAgICRzcGxpdCAgICAgID0gc3RycG9zKCRyZXN1bHRbMF1bJ05BTUUnXSwgJywnKTsKICAgICAgICAgICAgJGxhc3RfbmFtZSAgPSBzdWJzdHIoJHJlc3VsdFswXVsnTkFNRSddLCAwLCAkc3BsaXQpOwogICAgICAgICAgICAkZmlyc3RfbmFtZSA9IHN1YnN0cigkcmVzdWx0WzBdWydOQU1FJ10sICRzcGxpdCArIDEpOwogICAgICAgICAgICAkc3BsaXQgICAgICA9IHN0cnBvcygkcmVzdWx0WzBdWydOQU1FJ10sICcgJyk7CiAgICAgICAgICAgIGlmICgkc3BsaXQgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkZmlyc3RfbmFtZSA9IHN1YnN0cigkZmlyc3RfbmFtZSwgMCwgJHNwbGl0KTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHBhdHJvbiA9IFsKICAgICAgICAgICAgICAgICdmaXJzdG5hbWUnID0+IHRyaW0oJGZpcnN0X25hbWUpLAogICAgICAgICAgICAgICAgJ2xhc3RuYW1lJyAgPT4gdHJpbSgkbGFzdF9uYW1lKSwKICAgICAgICAgICAgICAgICdhZGRyZXNzMScgID0+IHRyaW0oJHJlc3VsdFswXVsnU1RSRUVUX0FERFJFU1NfMSddKSwKICAgICAgICAgICAgICAgICdhZGRyZXNzMicgID0+IHRyaW0oJHJlc3VsdFswXVsnU1RSRUVUX0FERFJFU1NfMiddKSwKICAgICAgICAgICAgICAgICd6aXAnICAgICAgID0+IHRyaW0oJHJlc3VsdFswXVsnUE9TVEFMX0NPREUnXSksCiAgICAgICAgICAgICAgICAncGhvbmUnICAgICA9PiB0cmltKCRyZXN1bHRbMF1bJ1RFTEVQSE9ORV9QUklNQVJZJ10pLAogICAgICAgICAgICAgICAgJ2dyb3VwJyAgICAgPT4gdHJpbSgkcmVzdWx0WzBdWydQQVRST05fVFlQRSddKSwKICAgICAgICAgICAgICAgIF07CgogICAgICAgICAgICBpZiAoJHJlc3VsdFswXVsnQ0lUWSddICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGlmIChzdHJsZW4oJHBhdHJvblsnYWRkcmVzczInXSkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgJHBhdHJvblsnYWRkcmVzczInXSAuPSAnLCAnIC4gdHJpbSgkcmVzdWx0WzBdWydDSVRZJ10pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcGF0cm9uWydhZGRyZXNzMiddID0gdHJpbSgkcmVzdWx0WzBdWydDSVRZJ10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJHBhdHJvbjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgUGF0cm9uIEZpbmVzCiAgICAgKgogICAgICogVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyBhbGwgZmluZXMgYnkgYSBzcGVjaWZpYyBwYXRyb24uCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRwYXRyb24gVGhlIHBhdHJvbiBhcnJheSBmcm9tIHBhdHJvbkxvZ2luCiAgICAgKgogICAgICogQHRocm93cyBEYXRlRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBtaXhlZCAgICAgICAgQXJyYXkgb2YgdGhlIHBhdHJvbidzIGZpbmVzIG9uIHN1Y2Nlc3MuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNeUZpbmVzKCRwYXRyb24pCiAgICB7CiAgICAgICAgJGZpbmVMaXN0ID0gW107CgogICAgICAgICRzcWwgPSAnU0VMRUNUIGEuYXNzZXNzbWVudF9hbW91bnQgZmluZV9hbW91bnQsIGYuZGVzY3JpcHRpb24sICcgLgogICAgICAgICAgICAnYS5iYWxhbmNlLCBhLml0ZW1fZHVlX2RhdGUgZHVlX2RhdGUsIGkuYmliaWQgYmliX2lkICcgLgogICAgICAgICAgICAnRlJPTSAgcGF0cm9uX2FjY291bnQgYSwgZmluZV9jb2RlX3YgZiwgaXRlbWRldGwyIGkgJyAuCiAgICAgICAgICAgICdXSEVSRSBhLnN0YXRlICAgICAgICA9IDAgJyAuCiAgICAgICAgICAgICdBTkQgICBhLmJhbGFuY2UgICAgICA+IDAgJyAuCiAgICAgICAgICAgICdBTkQgICBhLml0ZW1pZCAgICAgICA9IGkuaXRlbWlkICcgLgogICAgICAgICAgICAnQU5EICAgYS5maW5lX2NvZGVfaWQgPSBmLmZpbmVfY29kZV9pZCAnIC4KICAgICAgICAgICAgJ0FORCAgIGEucGF0cm9uX2lkICAgID0gOnBhdHJvbl9pZCc7CgogICAgICAgICRmaWVsZHMgPSBbJ3BhdHJvbl9pZDpzdHJpbmcnID0+ICRwYXRyb25bJ2lkJ11dOwogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+ZGItPnNpbXBsZVNlbGVjdCgkc3FsLCAkZmllbGRzKTsKCiAgICAgICAgaWYgKGNvdW50KCRyZXN1bHQpID4gMCkgewogICAgICAgICAgICBmb3JlYWNoICgkcmVzdWx0IGFzICRyb3cpIHsKICAgICAgICAgICAgICAgICRmaW5lTGlzdFtdID0gWwogICAgICAgICAgICAgICAgICAgICdhbW91bnQnICAgPT4gJHJvd1snRklORV9BTU9VTlQnXSAqIDEwMCwKICAgICAgICAgICAgICAgICAgICAnZmluZScgICAgID0+ICRyb3dbJ0RFU0NSSVBUSU9OJ10sCiAgICAgICAgICAgICAgICAgICAgJ2JhbGFuY2UnICA9PiAkcm93WydCQUxBTkNFJ10gKiAxMDAsCiAgICAgICAgICAgICAgICAgICAgJ2R1ZWRhdGUnICA9PiAkcm93WydEVUVfREFURSddLAogICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgPT4gJ3Z0bHMnIC4gc3ByaW50ZignJTA5ZCcsIChpbnQpJHJvd1snQklCX0lEJ10pLAogICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRmaW5lTGlzdDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBQYXRyb24gSG9sZHMKICAgICAqCiAgICAgKiBUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIGFsbCBob2xkcyBieSBhIHNwZWNpZmljIHBhdHJvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJHBhdHJvbiBUaGUgcGF0cm9uIGFycmF5IGZyb20gcGF0cm9uTG9naW4KICAgICAqCiAgICAgKiBAdGhyb3dzIERhdGVFeGNlcHRpb24KICAgICAqIEB0aHJvd3MgSUxTRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGFycmF5ICAgICAgICBBcnJheSBvZiB0aGUgcGF0cm9uJ3MgaG9sZHMgb24gc3VjY2Vzcy4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldE15SG9sZHMoJHBhdHJvbikKICAgIHsKICAgICAgICAkaG9sZExpc3QgPSBbXTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgaC5iaWJpZCwgbC5uYW1lIHBpY2t1cF9sb2NhdGlvbiwgaC5waWNrdXBfYW55X2xvY2F0aW9uLCAnIC4KICAgICAgICAgICAgJ2guZGF0ZV9sYXN0X25lZWRlZCwgaC5kYXRlX3BsYWNlZCwgaC5yZXF1ZXN0X2NvbnRyb2xfbnVtYmVyICcgLgogICAgICAgICAgICAnRlJPTSAgZGJhZG1pbi5obHJjZGV0bCBoLCBkYmFkbWluLmxvY2F0aW9uIGwgJyAuCiAgICAgICAgICAgICdXSEVSRSBoLnBpY2t1cF9sb2NhdGlvbiA9IGwubG9jYXRpb25faWQgJyAuCiAgICAgICAgICAgICdBTkQgICBoLnBhdHJvbl9pZCAgICAgICA9IDpwYXRyb25faWQnOwoKICAgICAgICAkZmllbGRzID0gWydwYXRyb25faWQ6c3RyaW5nJyA9PiAkcGF0cm9uWydpZCddXTsKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmRiLT5zaW1wbGVTZWxlY3QoJHNxbCwgJGZpZWxkcyk7CgogICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA+IDApIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KSB7CiAgICAgICAgICAgICAgICAkaG9sZExpc3RbXSA9IFsKICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgID0+ICd2dGxzJyAuIHNwcmludGYoJyUwOWQnLCAoaW50KSRyb3dbJ0JJQklEJ10pLAogICAgICAgICAgICAgICAgICAgICdsb2NhdGlvbicgPT4gJHJvd1snUElDS1VQX0xPQ0FUSU9OJ10sCiAgICAgICAgICAgICAgICAgICAgJ2V4cGlyZScgICA9PiAkcm93WydEQVRFX0xBU1RfTkVFREVEJ10sCiAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZScgICA9PiAkcm93WydEQVRFX1BMQUNFRCddLAogICAgICAgICAgICAgICAgICAgICdyZXFudW0nICAgPT4gJHJvd1snUkVRVUVTVF9DT05UUk9MX05VTUJFUiddLAogICAgICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRob2xkTGlzdDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBQYXRyb24gVHJhbnNhY3Rpb25zCiAgICAgKgogICAgICogVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyBhbGwgdHJhbnNhY3Rpb25zIChpLmUuIGNoZWNrZWQgb3V0IGl0ZW1zKQogICAgICogYnkgYSBzcGVjaWZpYyBwYXRyb24uCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRwYXRyb24gVGhlIHBhdHJvbiBhcnJheSBmcm9tIHBhdHJvbkxvZ2luCiAgICAgKgogICAgICogQHRocm93cyBEYXRlRXhjZXB0aW9uCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBhcnJheSAgICAgICAgQXJyYXkgb2YgdGhlIHBhdHJvbidzIHRyYW5zYWN0aW9ucyBvbiBzdWNjZXNzLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TXlUcmFuc2FjdGlvbnMoJHBhdHJvbikKICAgIHsKICAgICAgICAkdHJhbnNMaXN0ID0gW107CgogICAgICAgICRiaWJfcmVxcyA9ICdTRUxFQ1QgaC5iaWJpZCwgY291bnQoKikgYXMgYmliX3JlcSAnIC4KICAgICAgICAgICAgJ0ZST00gICBobHJjZGV0bCBoICcgLgogICAgICAgICAgICAnV0hFUkUgIGguaXRlbWlkID0gMCAnIC4KICAgICAgICAgICAgJ0dST1VQIEJZIGguYmliaWQnOwogICAgICAgICRpdGVtX3JlcXMgPSAnU0VMRUNUIGguaXRlbWlkLCBjb3VudCgqKSBhcyBpdGVtX3JlcSAnIC4KICAgICAgICAgICAgJ0ZST00gICBobHJjZGV0bCBoICcgLgogICAgICAgICAgICAnV0hFUkUgIGguaXRlbWlkIDw+IDAgJyAuCiAgICAgICAgICAgICdHUk9VUCBCWSBoLml0ZW1pZCc7CgogICAgICAgICRzcWwgPSAnU0VMRUNUIGkuYmliaWQsIGkuaXRlbWlkLCBjLmR1ZV9kYXRlLCBpLmJhcmNvZGUsICcgLgogICAgICAgICAgICAnYy5yZW5ld19jb3VudCwgKGJyLmJpYl9yZXEgKyBpci5pdGVtX3JlcSkgYXMgcmVxX2NvdW50ICcgLgogICAgICAgICAgICAiRlJPTSAgIGNpcmNkZXRsIGMsIGl0ZW1kZXRsMiBpLCAoJGJpYl9yZXFzKSBiciwgKCRpdGVtX3JlcXMpIGlyICIgLgogICAgICAgICAgICAnV0hFUkUgIGMuaXRlbWlkICAgID0gaS5pdGVtaWQgJyAuCiAgICAgICAgICAgICdBTkQgICAgaS5iaWJpZCAgICAgPSBici5iaWJpZCAoKykgJyAuCiAgICAgICAgICAgICdBTkQgICAgaS5pdGVtaWQgICAgPSBpci5pdGVtaWQgKCspICcgLgogICAgICAgICAgICAnQU5EICAgIGMucGF0cm9uX2lkID0gOnBhdHJvbl9pZCAnIC4KICAgICAgICAgICAgJ09SREVSIEJZIGMuZHVlX2RhdGUnOwoKICAgICAgICAkZmllbGRzID0gWydwYXRyb25faWQ6c3RyaW5nJyA9PiAkcGF0cm9uWydpZCddXTsKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmRiLT5zaW1wbGVTZWxlY3QoJHNxbCwgJGZpZWxkcyk7CgogICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA+IDApIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KSB7CiAgICAgICAgICAgICAgICAkdHJhbnNMaXN0W10gPSBbCiAgICAgICAgICAgICAgICAgICAgJ2R1ZWRhdGUnID0+ICRyb3dbJ0RVRV9EQVRFJ10sCiAgICAgICAgICAgICAgICAgICAgJ2JhcmNvZGUnID0+ICRyb3dbJ0JBUkNPREUnXSwKICAgICAgICAgICAgICAgICAgICAncmVuZXcnICAgPT4gJHJvd1snUkVORVdfQ09VTlQnXSwKICAgICAgICAgICAgICAgICAgICAncmVxdWVzdCcgPT4gJHJvd1snUkVRX0NPVU5UJ10sCiAgICAgICAgICAgICAgICAgICAgLy8gSURzIG5lZWQgdG8gc2hvdyBhcyAndnRsczAwMDU4OTU4OScKICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgPT4gJ3Z0bHMnIC4gc3ByaW50ZignJTA5ZCcsIChpbnQpJHJvd1snQklCSUQnXSksCiAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRyYW5zTGlzdDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBDb3Vyc2VzCiAgICAgKgogICAgICogT2J0YWluIGEgbGlzdCBvZiBjb3Vyc2VzIGZvciB1c2UgaW4gbGltaXRpbmcgdGhlIHJlc2VydmVzIGxpc3QuCiAgICAgKgogICAgICogQHRocm93cyBJTFNFeGNlcHRpb24KICAgICAqIEByZXR1cm4gYXJyYXkgQW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCBrZXkgPSBJRCwgdmFsdWUgPSBuYW1lLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0Q291cnNlcygpCiAgICB7CiAgICAgICAgJGNvdXJzZUxpc3QgPSBbXTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgRElTVElOQ1QgbC5jb3Vyc2VfaWQgJyAuCiAgICAgICAgICAgICdGUk9NIHJlc2VydmVfbGlzdF92IGwsIHJlc2VydmVfaXRlbV92IGkgJyAuCiAgICAgICAgICAgICdXSEVSRSBsLlJlc2VydmVfbGlzdF9pZCA9IGkuUmVzZXJ2ZV9saXN0X2lkICcgLgogICAgICAgICAgICAnQU5EIFNZU0RBVEUgQkVUV0VFTiBpLkJlZ2luX2RhdGUgQU5EIGkuRW5kX2RhdGUgJyAuCiAgICAgICAgICAgICdPUkRFUiBCWSBsLmNvdXJzZV9pZCc7CiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+c2ltcGxlU2VsZWN0KCRzcWwpOwoKICAgICAgICBpZiAoY291bnQoJHJlc3VsdCkgPiAwKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykgewogICAgICAgICAgICAgICAgJGNvdXJzZUxpc3RbXSA9ICRyb3dbJ0NPVVJTRV9JRCddOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGNvdXJzZUxpc3Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBGaW5kIFJlc2VydmVzCiAgICAgKgogICAgICogT2J0YWluIGluZm9ybWF0aW9uIG9uIGNvdXJzZSByZXNlcnZlcy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb3Vyc2UgSUQgZnJvbSBnZXRDb3Vyc2VzIChlbXB0eSBzdHJpbmcgdG8gbWF0Y2ggYWxsKQogICAgICogQHBhcmFtIHN0cmluZyAkaW5zdCAgIElEIGZyb20gZ2V0SW5zdHJ1Y3RvcnMgKGVtcHR5IHN0cmluZyB0byBtYXRjaCBhbGwpCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkZXB0ICAgSUQgZnJvbSBnZXREZXBhcnRtZW50cyAoZW1wdHkgc3RyaW5nIHRvIG1hdGNoIGFsbCkKICAgICAqCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBhcnJheSBBbiBhcnJheSBvZiBhc3NvY2lhdGl2ZSBhcnJheXMgcmVwcmVzZW50aW5nIHJlc2VydmUgaXRlbXMuCiAgICAgKgogICAgICogQFN1cHByZXNzV2FybmluZ3MoUEhQTUQuVW51c2VkRm9ybWFsUGFyYW1ldGVyKQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZmluZFJlc2VydmVzKCRjb3Vyc2UsICRpbnN0ID0gZmFsc2UsICRkZXB0ID0gZmFsc2UpCiAgICB7CiAgICAgICAgJHJlY29yZExpc3QgPSBbXTsKCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgRElTVElOQ1QgZC5iaWJpZCAnIC4KICAgICAgICAgICAgJ0ZST00gcmVzZXJ2ZV9pdGVtX3YgaSwgcmVzZXJ2ZV9saXN0X3YgbCwgaXRlbWRldGwyIGQgJyAuCiAgICAgICAgICAgICdXSEVSRSBpLlJlc2VydmVfbGlzdF9pZCA9IGwuUmVzZXJ2ZV9saXN0X2lkICcgLgogICAgICAgICAgICAnQU5EIFNZU0RBVEUgQkVUV0VFTiBpLkJlZ2luX2RhdGUgQU5EIGkuRW5kX2RhdGUgJyAuCiAgICAgICAgICAgICdBTkQgaS5JdGVtX2lkID0gZC5pdGVtaWQgJyAuCiAgICAgICAgICAgICdBTkQgbC5Db3Vyc2VfaWQgPSA6Y291cnNlJzsKICAgICAgICAkZmllbGRzID0gWydjb3Vyc2U6c3RyaW5nJyA9PiAkY291cnNlXTsKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmRiLT5zaW1wbGVTZWxlY3QoJHNxbCwgJGZpZWxkcyk7CgogICAgICAgIGlmIChjb3VudCgkcmVzdWx0KSA+IDApIHsKICAgICAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KSB7CiAgICAgICAgICAgICAgICAkcmVjb3JkTGlzdFtdID0gJ3Z0bHMnIC4gc3ByaW50ZignJTA5ZCcsIChpbnQpJHJvd1snQklCSUQnXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmVjb3JkTGlzdDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHJpZXZlIHRoZSBvcGVuaW5nIGhvdXJzIGZvciBhbGwgY2FtcHVzZXMuCiAgICAgKiAgIC0gVXNlZCBvbiB0aGUgaG9tZSBwYWdlIHRvIHNob3cgdGltZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmYWtlX3RpbWUgT3B0aW9uYWwgdGltZSBzdHJpbmcgKGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMpCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgICAgICAgICAgIE9wZW5pbmcgaG91cnMgaW5mb3JtYXRpb24uCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRPcGVuaW5nSG91cnMoJGZha2VfdGltZSA9IG51bGwpCiAgICB7CiAgICAgICAgLy8gQ2hhbmdlIHRoaXMgdmFsdWUgZm9yIGRlYnVnZ2luZwogICAgICAgIC8vIGVnLiBzdHJ0b3RpbWUoJzI1LTEyLTIwMDknKSA9IENocmlzdG1hcwogICAgICAgIGlmICgkZmFrZV90aW1lKSB7CiAgICAgICAgICAgICR0aW1lID0gc3RydG90aW1lKCRmYWtlX3RpbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aW1lID0gc3RydG90aW1lKCdub3cnKTsKICAgICAgICB9CiAgICAgICAgJHRvZGF5ID0gZGF0ZSgnZC1tLVknLCAkdGltZSk7CiAgICAgICAgJHRpbWVfZm9ybWF0ID0gJ0g6aTpzJzsKCiAgICAgICAgLy8gRml4IERhdGUgSGFuZGxpbmcKICAgICAgICAkdGhpcy0+ZGItPnNpbXBsZVNxbCgKICAgICAgICAgICAgIkFMVEVSIFNFU1NJT04gU0VUIE5MU19EQVRFX0ZPUk1BVCA9ICdERC1NTS1ZWSBISDI0Ok1JOlNTJyIKICAgICAgICApOwoKICAgICAgICAvLyBOb3JtYWwgb3BlbmluZyBob3VycwogICAgICAgICRzcWwgPSAnU0VMRUNUIGNhbXB1cywgb3Blbl90aW1lLCBjbG9zZV90aW1lLCBzdGF0dXMgJyAuCiAgICAgICAgICAgICdGUk9NIHVzcV9zcl9vcGVuX25vcm1hbCBuICcgLgogICAgICAgICAgICAnV0hFUkUgVVBQRVIoZGF5b2Z3ZWVrKSA9IFVQUEVSKDpkb3cpJzsKICAgICAgICAkZmllbGRzID0gWydkb3c6c3RyaW5nJyA9PiBkYXRlKCdsJywgJHRpbWUpXTsKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmRiLT5zaW1wbGVTZWxlY3QoJHNxbCwgJGZpZWxkcyk7CiAgICAgICAgaWYgKGNvdW50KCRyZXN1bHQpID09IDApIHsKICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KCiAgICAgICAgLy8gQ3JlYXRlIG91ciByZXR1cm4gZGF0YSBzdHJ1Y3R1cmUKICAgICAgICAkdGltZXMgPSBbXTsKICAgICAgICBmb3JlYWNoICgkcmVzdWx0IGFzICRyb3cpIHsKICAgICAgICAgICAgLy8gUmVtZW1iZXIgdGltZXMgY29tZSBvdXQgd2l0aCBubyBkYXRlLCBhZGQgaW4gdG9kYXkuCiAgICAgICAgICAgICR0aW1lc1skcm93WydDQU1QVVMnXV0gPSBbCiAgICAgICAgICAgICAgICAnb3BlbicgICA9PiAiJHRvZGF5ICIgLgogICAgICAgICAgICAgICAgICAgIGRhdGUoJHRpbWVfZm9ybWF0LCBzdHJ0b3RpbWUoJHJvd1snT1BFTl9USU1FJ10pKSwKICAgICAgICAgICAgICAgICdjbG9zZScgID0+ICIkdG9kYXkgIiAuCiAgICAgICAgICAgICAgICAgICAgZGF0ZSgkdGltZV9mb3JtYXQsIHN0cnRvdGltZSgkcm93WydDTE9TRV9USU1FJ10pKSwKICAgICAgICAgICAgICAgICdzdGF0dXMnID0+ICRyb3dbJ1NUQVRVUyddLAogICAgICAgICAgICAgICAgXTsKICAgICAgICB9CgogICAgICAgIC8vIE9wZW5pbmcgaG91cnMgZXhjZXB0aW9ucwogICAgICAgICRkYXkgID0gc3RydG9sb3dlcihkYXRlKCdEJywgJHRpbWUpKTsKICAgICAgICAvLyBMb3dlc3QgcHJpb3JpdHkgcm93IChudW1lcmljYWx5LCBpZS4gMSA9IG1vc3QgaW1wb3J0YW50KQogICAgICAgICRwcmlvcml0eSA9ICdTRUxFQ1QgZS5jYW1wdXMsIE1JTihlLnByaW9yaXR5KSBhcyBwcmlvcml0eSAnIC4KICAgICAgICAgICAgJ0ZST00gICB1c3Ffc3Jfb3Blbl9leGNlcHQgZSAnIC4KICAgICAgICAgICAgIldIRVJFIHRvX2RhdGUoOnRvZGF5LCdkZC9tbS95eXl5JykgIiAuCiAgICAgICAgICAgICdCRVRXRUVOIGUuZXhjZXB0X2RhdGVfZnJvbSBBTkQgZS5leGNlcHRfZGF0ZV90byAnIC4KICAgICAgICAgICAgIiAgQU5EIGFwcF8kZGF5ID0gMSAiIC4KICAgICAgICAgICAgJ0dST1VQIEJZIGUuY2FtcHVzJzsKICAgICAgICAvLyBSZXRyaWV2ZSBFeGNlcHRpb25zCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgZS5jYW1wdXMsIGUub3Blbl90aW1lLCBlLmNsb3NlX3RpbWUsIGUuc3RhdHVzLCBlLnJlYXNvbiAnIC4KICAgICAgICAgICAgIkZST00gKCRwcmlvcml0eSkgcCwgdXNxX3NyX29wZW5fZXhjZXB0IGUgIiAuCiAgICAgICAgICAgICdXSEVSRSBlLmNhbXB1cyAgID0gcC5jYW1wdXMgJyAuCiAgICAgICAgICAgICdBTkQgICBlLnByaW9yaXR5ID0gcC5wcmlvcml0eSAnIC4KICAgICAgICAgICAgIkFORCAgIHRvX2RhdGUoOnRvZGF5LCdkZC9tbS95eXl5JykgIiAuCiAgICAgICAgICAgICdCRVRXRUVOIGUuZXhjZXB0X2RhdGVfZnJvbSBBTkQgZS5leGNlcHRfZGF0ZV90byAnIC4KICAgICAgICAgICAgIkFORCAgIGFwcF8kZGF5ID0gMSI7CiAgICAgICAgJGZpZWxkcyA9IFsndG9kYXk6c3RyaW5nJyA9PiBkYXRlKCdkL20vWScsICR0aW1lKV07CiAgICAgICAgJGV4Y2VwdGlvbnMgPSAkdGhpcy0+ZGItPnNpbXBsZVNlbGVjdCgkc3FsLCAkZmllbGRzKTsKCiAgICAgICAgZm9yZWFjaCAoJGV4Y2VwdGlvbnMgYXMgJHJvdykgewogICAgICAgICAgICAkdGltZXNbJHJvd1snQ0FNUFVTJ11dID0gWwogICAgICAgICAgICAgICAgLy8gUmVtZW1iZXIgdGltZXMgY29tZSBvdXQgd2l0aCBubyBkYXRlLCBhZGQgaW4gdG9kYXkuCiAgICAgICAgICAgICAgICAnb3BlbicgICA9PiAiJHRvZGF5ICIKICAgICAgICAgICAgICAgICAgICAuIGRhdGUoJHRpbWVfZm9ybWF0LCBzdHJ0b3RpbWUoJHJvd1snT1BFTl9USU1FJ10pKSwKICAgICAgICAgICAgICAgICdjbG9zZScgID0+ICIkdG9kYXkgIgogICAgICAgICAgICAgICAgICAgIC4gZGF0ZSgkdGltZV9mb3JtYXQsIHN0cnRvdGltZSgkcm93WydDTE9TRV9USU1FJ10pKSwKICAgICAgICAgICAgICAgICdzdGF0dXMnID0+ICRyb3dbJ1NUQVRVUyddLAogICAgICAgICAgICAgICAgJ3JlYXNvbicgPT4gJHJvd1snUkVBU09OJ10sCiAgICAgICAgICAgIF07CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGltZXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBQbGFjZSBIb2xkCiAgICAgKgogICAgICogQXR0ZW1wdHMgdG8gcGxhY2UgYSBob2xkIG9yIHJlY2FsbCBvbiBhIHBhcnRpY3VsYXIgaXRlbSBhbmQgcmV0dXJucwogICAgICogYW4gYXJyYXkgd2l0aCByZXN1bHQgZGV0YWlscyBvciB0aHJvd3MgYW4gZXhjZXB0aW9uIG9uIGZhaWx1cmUgb2Ygc3VwcG9ydAogICAgICogY2xhc3NlcwogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkaG9sZERldGFpbHMgQW4gYXJyYXkgb2YgaXRlbSBhbmQgcGF0cm9uIGRhdGEKICAgICAqCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBtaXhlZCBBbiBhcnJheSBvZiBkYXRhIG9uIHRoZSByZXF1ZXN0IGluY2x1ZGluZwogICAgICogd2hldGhlciBvciBub3QgaXQgd2FzIHN1Y2Nlc3NmdWwgYW5kIGEgc3lzdGVtIG1lc3NhZ2UgKGlmIGF2YWlsYWJsZSkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBsYWNlSG9sZCgkaG9sZERldGFpbHMpCiAgICB7CiAgICAgICAgLy8gRXh0cmFjdCBrZXkgdmFsdWVzIGZyb20gdGhlIGhvbGQgZGV0YWlscwogICAgICAgICRwYXRyb25faWQgPSAkaG9sZERldGFpbHNbJ3BhdHJvbiddOwogICAgICAgICRyZXFfbGV2ZWwgPSAkaG9sZERldGFpbHNbJ3JlcV9sZXZlbCddOwogICAgICAgICRwaWNrdXBfbG9jID0gJGhvbGREZXRhaWxzWydwaWNrVXBMb2NhdGlvbiddOwogICAgICAgICRpdGVtX2lkID0gJGhvbGREZXRhaWxzWydpdGVtX2lkJ107CiAgICAgICAgJGxhc3RfZGF0ZSA9ICRob2xkRGV0YWlsc1sncmVxdWlyZWRCeSddOwoKICAgICAgICAvLyBBc3N1bWUgYW4gZXJyb3IgcmVzcG9uc2U6CiAgICAgICAgJHJlc3BvbnNlID0gWydzdWNjZXNzJyA9PiBmYWxzZSwgJ3N0YXR1cycgPT4gJ2hvbGRfZXJyb3JfZmFpbCddOwoKICAgICAgICAvLyBWYWxpZGF0ZSBpbnB1dAogICAgICAgIC8vICAqIFJlcXVlc3QgbGV2ZWwKICAgICAgICAkYWxsb3dlZF9yZXFfbGV2ZWxzID0gWwogICAgICAgICAgICAnaXRlbScgICA9PiAwLAogICAgICAgICAgICAnYmliJyAgICA9PiAxLAogICAgICAgICAgICAndm9sdW1lJyA9PiAyLAogICAgICAgICAgICBdOwogICAgICAgIGlmICghaW5fYXJyYXkoJHJlcV9sZXZlbCwgYXJyYXlfa2V5cygkYWxsb3dlZF9yZXFfbGV2ZWxzKSkpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXNwb25zZTsKICAgICAgICB9CiAgICAgICAgLy8gICogUGlja3VwIExvY2F0aW9uCiAgICAgICAgJGFsbG93ZWRfcGlja3VwX2xvY3MgPSBbCiAgICAgICAgICAgICdUb293b29tYmEnICAgID0+ICcxMDAwMCcsCiAgICAgICAgICAgICdGcmFzZXIgQ29hc3QnID0+ICc0MDAwMCcsCiAgICAgICAgICAgICdTcHJpbmdmaWVsZCcgID0+ICc1MDAwMCcsCiAgICAgICAgICAgIF07CiAgICAgICAgaWYgKCFpbl9hcnJheSgkcGlja3VwX2xvYywgYXJyYXlfa2V5cygkYWxsb3dlZF9waWNrdXBfbG9jcykpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzcG9uc2U7CiAgICAgICAgfQogICAgICAgIC8vICAqIExhc3QgRGF0ZSAtIFZhbGlkIGRhdGUgYW5kIGEgZnV0dXJlIGRhdGUKICAgICAgICAkdHNfbGFzdF9kYXRlID0gc3RydG90aW1lKCRsYXN0X2RhdGUpOwogICAgICAgIGlmICgkdHNfbGFzdF9kYXRlID09IDAgfHwgJHRzX2xhc3RfZGF0ZSA8PSBzdHJ0b3RpbWUoJ25vdycpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzcG9uc2U7CiAgICAgICAgfQoKICAgICAgICAvLyBTdGlsbCBoZXJlPyBHdWVzcyB0aGUgcmVxdWVzdCBpcyB2YWxpZCwgbGV0cyBzZW5kIGl0IHRvIHZpcnR1YQogICAgICAgICR2aXJ0dWFfdXJsID0gJHRoaXMtPmdldEFwaUJhc2VVcmwoKSAuICc/JyAuCiAgICAgICAgICAgIC8vIFN0YW5kYXJkIHN0dWZmCiAgICAgICAgICAgICdzZWFyY2g9Tk9TUkNIJmZ1bmN0aW9uPVJFUVVFU1RTJnJlcXJlcXR5cGU9MCZyZXF0eXBlPTAnIC4KICAgICAgICAgICAgJyZyZXFzY3I9MiZyZXFyZXFsZXZlbD0yJnJlcWlkdHlwZT0xMjcmcmVxbWluY2lyY3BlcmlvZD0nIC4KICAgICAgICAgICAgLy8gSXRlbSBJRAogICAgICAgICAgICAiJnJlcWlkbm89JGl0ZW1faWQiIC4KICAgICAgICAgICAgLy8gUGF0cm9uIGJhcmNvZGUKICAgICAgICAgICAgIiZyZXFwYXRyb25iYXJjb2RlPSRwYXRyb25faWQiIC4KICAgICAgICAgICAgLy8gUmVxdWVzdCBMZXZlbAogICAgICAgICAgICAnJnJlcWF1dG9hZGp1c3RsZXZlbD0nIC4gJGFsbG93ZWRfcmVxX2xldmVsc1skcmVxX2xldmVsXSAuCiAgICAgICAgICAgIC8vIFBpY2t1cCBsb2NhdGlvbgogICAgICAgICAgICAnJnJlcXBpY2t1cGxvY2F0aW9uPScgLiAkYWxsb3dlZF9waWNrdXBfbG9jc1skcGlja3VwX2xvY10gLgogICAgICAgICAgICAvLyBMYXN0IERhdGUKICAgICAgICAgICAgJyZyZXFleHBpcmVkYXk9JyAuIGRhdGUoJ2onLCAkdHNfbGFzdF9kYXRlKSAuCiAgICAgICAgICAgICcmcmVxZXhwaXJlbW9udGg9JyAuIGRhdGUoJ24nLCAkdHNfbGFzdF9kYXRlKSAuCiAgICAgICAgICAgICcmcmVxZXhwaXJleWVhcj0nIC4gZGF0ZSgnWScsICR0c19sYXN0X2RhdGUpOwoKICAgICAgICAvLyBHZXQgdGhlIHJlc3BvbnNlCiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5odHRwUmVxdWVzdCgkdmlydHVhX3VybCk7CgogICAgICAgIC8vIExvb2sgZm9yIGFuIGVycm9yIG1lc3NhZ2UKICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICdZb3VyIHJlcXVlc3Qgd2FzIG5vdCBwcm9jZXNzZWQuJzsKICAgICAgICAkdGVzdCA9IHN0cnBvcygkcmVzdWx0LCAkZXJyb3JfbWVzc2FnZSk7CgogICAgICAgIC8vIElmIHdlIHN1Y2NlZWRlZCwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZmFpbCBtZXNzYWdlIHdpdGggc3VjY2VzczoKICAgICAgICBpZiAoJHRlc3QgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICRyZXNwb25zZVsnc3VjY2VzcyddID0gdHJ1ZTsKICAgICAgICAgICAgJHJlc3BvbnNlWydzdGF0dXMnXSA9ICdob2xkX3N1Y2Nlc3MnOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZXNwb25zZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBDYW5jZWwgSG9sZCBEZXRhaWxzCiAgICAgKgogICAgICogSW4gb3JkZXIgdG8gY2FuY2VsIGEgaG9sZCwgVm95YWdlciByZXF1aXJlcyB0aGUgcGF0cm9uIGRldGFpbHMgYW4gaXRlbSBJRAogICAgICogYW5kIGEgcmVjYWxsIElELiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGl0ZW0gaWQgYW5kIHJlY2FsbCBpZCBhcyBhIHN0cmluZwogICAgICogc2VwYXJhdGVkIGJ5IGEgcGlwZSwgd2hpY2ggaXMgdGhlbiBzdWJtaXR0ZWQgYXMgZm9ybSBkYXRhIGluIEhvbGQucGhwLiBUaGlzCiAgICAgKiB2YWx1ZSBpcyB0aGVuIGV4dHJhY3RlZCBieSB0aGUgQ2FuY2VsSG9sZHMgZnVuY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRob2xkRGV0YWlscyBBIHNpbmdsZSBob2xkIGFycmF5IGZyb20gZ2V0TXlIb2xkcwogICAgICogQHBhcmFtIGFycmF5ICRwYXRyb24gICAgICBQYXRyb24gaW5mb3JtYXRpb24gZnJvbSBwYXRyb25Mb2dpbgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIERhdGEgZm9yIHVzZSBpbiBhIGZvcm0gZmllbGQKICAgICAqCiAgICAgKiBAU3VwcHJlc3NXYXJuaW5ncyhQSFBNRC5VbnVzZWRGb3JtYWxQYXJhbWV0ZXIpCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDYW5jZWxIb2xkRGV0YWlscygkaG9sZERldGFpbHMsICRwYXRyb24gPSBbXSkKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignVE9ETzogaW1wbGVtZW50IGdldENhbmNlbEhvbGREZXRhaWxzLicpOwogICAgfQoKICAgIC8qKgogICAgICogQ2FuY2VsIEhvbGRzCiAgICAgKgogICAgICogQXR0ZW1wdHMgdG8gQ2FuY2VsIGEgaG9sZCBvciByZWNhbGwgb24gYSBwYXJ0aWN1bGFyIGl0ZW0uIFRoZQogICAgICogZGF0YSBpbiAkY2FuY2VsRGV0YWlsc1snZGV0YWlscyddIGlzIGRldGVybWluZWQgYnkgZ2V0Q2FuY2VsSG9sZERldGFpbHMoKS4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGNhbmNlbERldGFpbHMgQW4gYXJyYXkgb2YgaXRlbSBhbmQgcGF0cm9uIGRhdGEKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICAgICAgICAgICAgICAgQW4gYXJyYXkgb2YgZGF0YSBvbiBlYWNoIHJlcXVlc3QgaW5jbHVkaW5nCiAgICAgKiB3aGV0aGVyIG9yIG5vdCBpdCB3YXMgc3VjY2Vzc2Z1bCBhbmQgYSBzeXN0ZW0gbWVzc2FnZSAoaWYgYXZhaWxhYmxlKQogICAgICoKICAgICAqIEBTdXBwcmVzc1dhcm5pbmdzKFBIUE1ELlVudXNlZEZvcm1hbFBhcmFtZXRlcikKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNhbmNlbEhvbGRzKCRjYW5jZWxEZXRhaWxzKQogICAgewogICAgICAgIC8vIFRPRE86IGltcGxlbWVudCBzdGFuZGFyZCBWdUZpbmQgaG9sZHMgQVBJOyB1dGlsaXplIGNhbmNlbEhvbGQoKQogICAgICAgIC8vIGJlbG93IGFzIGEgc3VwcG9ydCBtZXRob2QuCiAgICAgICAgdGhyb3cgbmV3IFxFeGNlcHRpb24oJ2NhbmNlbEhvbGRzKCkgaXMgbm90IHN1cHBvcnRlZCB5ZXQuJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDYW5jZWwgYSByZXF1ZXN0IGluIHZpcnR1YS4KICAgICAqICAgLSBSZXR1cm4gdHJ1ZS9mYWxzZSBmb3Igc3VjY2Vzcy9mYWlsdXJlLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHJlcXVlc3RfbnVtYmVyIElEIG9mIGhvbGQgdG8gY2FuY2VsCiAgICAgKgogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBjYW5jZWxIb2xkKCRyZXF1ZXN0X251bWJlcikKICAgIHsKICAgICAgICAkdmlydHVhX3VybCA9ICR0aGlzLT5nZXRBcGlCYXNlVXJsKCkgLiAnPycgLgogICAgICAgICAgICAvLyBTdGFuZGFyZCBzdHVmZgogICAgICAgICAgICAnc2VhcmNoPU5PU1JDSCZmdW5jdGlvbj1SRVFVRVNUUyZyZXFyZXF0eXBlPTEmcmVxdHlwZT0wJyAuCiAgICAgICAgICAgICcmcmVxc2NyPTQmcmVxcmVxbGV2ZWw9MiZyZXFpZHR5cGU9MTI3JyAuCiAgICAgICAgICAgIC8vIiZyZXFpZG5vPTEwMDA2NTE1NDEiIC4KICAgICAgICAgICAgIiZyZXFjdHJsbnVtPSRyZXF1ZXN0X251bWJlciI7CgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIC8vIEdldCB0aGUgcmVzcG9uc2UKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5odHRwUmVxdWVzdCgkdmlydHVhX3VybCk7CiAgICAgICAgICAgIC8vIEludmFsaWQgc2VydmVyIHJlc3BvbnNlLiBJdCdzIHByb2JhYmx5IGRvd24KICAgICAgICB9IGNhdGNoIChcRXhjZXB0aW9uICRlKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIC8vIExvb2sgZm9yIGFuIGVycm9yIG1lc3NhZ2UKICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICdZb3VyIHJlcXVlc3QgY291bGQgbm90IGJlIGRlbGV0ZWQuJzsKICAgICAgICAkdGVzdCA9IHN0cnBvcygkcmVzdWx0LCAkZXJyb3JfbWVzc2FnZSk7CgogICAgICAgIC8vIFJldHVybiB0cnVlIHVubGVzcyB3ZSBmaW5kIHRoZSBlcnJvcgogICAgICAgIGlmICgkdGVzdCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEZha2UgYSB2aXJ0dWEgbG9naW4gb24gdGhlIHBhdHJvbidzIGJlaGFsZi4KICAgICAqICAgLSBSZXR1cm4gYSBzZXNzaW9uIGlkLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkcGF0cm9uIEFycmF5IHdpdGggY2F0X3VzZXJuYW1lL2NhdF9wYXNzd29yZCBrZXlzCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgICAgICAgU2Vzc2lvbiBJRAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZmFrZUxvZ2luKCRwYXRyb24pCiAgICB7CiAgICAgICAgJHZpcnR1YV91cmwgPSAkdGhpcy0+Z2V0QXBpQmFzZVVybCgpOwogICAgICAgICRwb3N0UGFyYW1zID0gWwogICAgICAgICAgICAnU291cmNlU2NyZWVuJyA9PiAnSU5JVFJFUScsCiAgICAgICAgICAgICdjb25mJyA9PiAnLiYjMDQ3O2NoYW1lbGVvbi5jb25mJywKICAgICAgICAgICAgJ2VsZW1lbnRjb3VudCcgPT4gJzEnLAogICAgICAgICAgICAnZnVuY3Rpb24nID0+ICdQQVRST05BVFRFTVBUJywKICAgICAgICAgICAgJ2hvc3QnID0+ICR0aGlzLT5jb25maWdbJ0NhdGFsb2cnXVsnaG9zdF9zdHJpbmcnXSwKICAgICAgICAgICAgJ2xuZycgPT4gJHRoaXMtPmdldENvbmZpZ3VyZWRMYW5ndWFnZSgpLAogICAgICAgICAgICAnbG9naW4nID0+ICcxJywKICAgICAgICAgICAgJ3BvcycgPT4gJzEnLAogICAgICAgICAgICAncm9vdHNlYXJjaCcgPT4gJ0tFWVdPUkQnLAogICAgICAgICAgICAnc2VhcmNoJyA9PiAnTk9TUkNIJywKICAgICAgICAgICAgJ3NraW4nID0+ICdob21lcGFnZScsCiAgICAgICAgICAgICdwYXRyb25pZCcgPT4gJHBhdHJvblsnY2F0X3VzZXJuYW1lJ10sCiAgICAgICAgICAgICdwYXRyb25wYXNzd29yZCcgPT4gJHBhdHJvblsnY2F0X3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICdwYXRyb25ob3N0JyA9PiAkdGhpcy0+Y29uZmlnWydDYXRhbG9nJ11bJ3BhdHJvbl9ob3N0J10sCiAgICAgICAgXTsKCiAgICAgICAgLy8gR2V0IHRoZSByZXNwb25zZQogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+aHR0cFJlcXVlc3QoJHZpcnR1YV91cmwsICRwb3N0UGFyYW1zKTsKICAgICAgICAvLyBOb3cgZmluZCB0aGUgc2Vzc2lvbmlkLiBUaGVyZSBzaG91bGQgYmUgb25lIGluIHRoZSBtZXRhIHRhZ3MsCiAgICAgICAgLy8gc28gd2UgY2FuIGxvb2sgZm9yIHRoZSBmaXJzdCBvbmUgaW4gdGhlIGRvY3VtZW50CiAgICAgICAgLy8gZWcuIDxtZXRhIGh0dHAtZXF1aXY9IlJlZnJlc2giIGNvbnRlbnQ9IjMwMDAwOwogICAgICAgIC8vIHVybD1odHRwOi8vbGlid2VidGVzdDIudXNxLmVkdS5hdTo4MC9jZ2ktYmluL2NoYW1lbGVvbj9zZXNzaW9uaWQ9CiAgICAgICAgLy8yMDA5MDcxNzEyNDgzNjA1MTMxJmFtcDtza2luPWhvbWVwYWdlJmFtcDtsbmc9ZW4mYW1wO2luc3Q9CiAgICAgICAgLy9jb25zb3J0aXVtJmFtcDtjb25mPS4lMjYlMjMwNDclM2JjaGFtZWxlb24uY29uZiZhbXA7dGltZWRvdXQ9MSIgLz4KICAgICAgICAkc3RhcnQgPSBzdHJwb3MoJHJlc3VsdCwgJ3Nlc3Npb25pZD0nKSArIDEwOwogICAgICAgICRlbmQgICA9IHN0cnBvcygkcmVzdWx0LCAnJmFtcDtza2luPScpOwogICAgICAgIHJldHVybiBzdWJzdHIoJHJlc3VsdCwgJHN0YXJ0LCAkZW5kIC0gJHN0YXJ0KTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBSZW5ldyBEZXRhaWxzCiAgICAgKgogICAgICogSW4gb3JkZXIgdG8gcmVuZXcgYW4gaXRlbSwgVm95YWdlciByZXF1aXJlcyB0aGUgcGF0cm9uIGRldGFpbHMgYW5kIGFuIGl0ZW0KICAgICAqIGlkLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGl0ZW0gaWQgYXMgYSBzdHJpbmcgd2hpY2ggaXMgdGhlbiB1c2VkCiAgICAgKiBhcyBzdWJtaXR0ZWQgZm9ybSBkYXRhIGluIGNoZWNrZWRPdXQucGhwLiBUaGlzIHZhbHVlIGlzIHRoZW4gZXh0cmFjdGVkIGJ5CiAgICAgKiB0aGUgUmVuZXdNeUl0ZW1zIGZ1bmN0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkY2hlY2tPdXREZXRhaWxzIEFuIGFycmF5IG9mIGl0ZW0gZGF0YQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIERhdGEgZm9yIHVzZSBpbiBhIGZvcm0gZmllbGQKICAgICAqCiAgICAgKiBAU3VwcHJlc3NXYXJuaW5ncyhQSFBNRC5VbnVzZWRGb3JtYWxQYXJhbWV0ZXIpCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRSZW5ld0RldGFpbHMoJGNoZWNrT3V0RGV0YWlscykKICAgIHsKICAgICAgICB0aHJvdyBuZXcgXEV4Y2VwdGlvbignVE9ETzogaW1wbGVtZW50IGdldFJlbmV3RGV0YWlscycpOwogICAgfQoKICAgIC8qKgogICAgICogUmVuZXcgTXkgSXRlbXMKICAgICAqCiAgICAgKiBGdW5jdGlvbiBmb3IgYXR0ZW1wdGluZyB0byByZW5ldyBhIHBhdHJvbidzIGl0ZW1zLiBUaGUgZGF0YSBpbgogICAgICogJHJlbmV3RGV0YWlsc1snZGV0YWlscyddIGlzIGRldGVybWluZWQgYnkgZ2V0UmVuZXdEZXRhaWxzKCkuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRyZW5ld0RldGFpbHMgQW4gYXJyYXkgb2YgZGF0YSByZXF1aXJlZCBmb3IgcmVuZXdpbmcgaXRlbXMKICAgICAqIGluY2x1ZGluZyB0aGUgUGF0cm9uIElEIGFuZCBhbiBhcnJheSBvZiByZW5ld2FsIElEUwogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgICAgICAgICAgICAgIEFuIGFycmF5IG9mIHJlbmV3YWwgaW5mb3JtYXRpb24ga2V5ZWQgYnkgaXRlbSBJRAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcmVuZXdNeUl0ZW1zKCRyZW5ld0RldGFpbHMpCiAgICB7CiAgICAgICAgJGl0ZW1fbGlzdCA9ICRyZW5ld0RldGFpbHNbJ2RldGFpbHMnXTsKICAgICAgICAkcGF0cm9uID0gJHJlbmV3RGV0YWlsc1sncGF0cm9uJ107CgogICAgICAgIC8vIEdldCBpdGVtcyBvdXQgb24gbG9hbiBhdCB0aGUgbW9tZW50CiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5nZXRNeVRyYW5zYWN0aW9ucygkcGF0cm9uKTsKICAgICAgICAvLyBNYWtlIGl0IG1vcmUgYWNjZXNzaWJsZSAtIGJ5IGJhcmNvZGUKICAgICAgICAkaW5pdGlhbCA9IFtdOwogICAgICAgIGZvcmVhY2ggKCRyZXN1bHQgYXMgJHJvdykgewogICAgICAgICAgICAkaW5pdGlhbFskcm93WydiYXJjb2RlJ11dID0gJHJvdzsKICAgICAgICB9CgogICAgICAgIC8vIEZha2UgYSBsb2dpbiB0byBnZXQgYW4gYXV0aGVudGljYXRlZCBzZXNzaW9uCiAgICAgICAgJHNlc3Npb25faWQgPSAkdGhpcy0+ZmFrZUxvZ2luKCRwYXRyb24pOwoKICAgICAgICAkdmlydHVhX3VybCA9ICR0aGlzLT5nZXRBcGlCYXNlVXJsKCk7CgogICAgICAgIC8vIEhhdmUgdG8gdXNlIHJhdyBwb3N0IGRhdGEgYmVjYXVzZSBvZiB0aGUgd2F5CiAgICAgICAgLy8gICB2aXJ0dWEgZXhwZWN0cyB0aGUgYmFyY29kZXMgdG8gY29tZSBhY3Jvc3MuCiAgICAgICAgJHBvc3RfZGF0YSAgPSAnZnVuY3Rpb249JyAuICdSRU5FV0FMJzsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmc2VhcmNoPScgLiAnUEFUUk9OJzsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmc2Vzc2lvbmlkPScgLiAiJHNlc3Npb25faWQiOwogICAgICAgICRwb3N0X2RhdGEgLj0gJyZza2luPScgLiAnaG9tZXBhZ2UnOwogICAgICAgICRwb3N0X2RhdGEgLj0gJyZsbmc9JyAuICR0aGlzLT5nZXRDb25maWd1cmVkTGFuZ3VhZ2UoKTsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmaW5zdD0nIC4gJ2NvbnNvcnRpdW0nOwogICAgICAgICRwb3N0X2RhdGEgLj0gJyZjb25mPScgLiB1cmxlbmNvZGUoJy4mIzA0NztjaGFtZWxlb24uY29uZicpOwogICAgICAgICRwb3N0X2RhdGEgLj0gJyZ1MT0nIC4gJzEyJzsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmU291cmNlU2NyZWVuPScgLiAnUEFUUk9OQUNUSVZJVFknOwogICAgICAgICRwb3N0X2RhdGEgLj0gJyZwb3M9JyAuICcxJzsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmcGF0cm9uaWQ9JyAuICRwYXRyb25bJ2NhdF91c2VybmFtZSddOwogICAgICAgICRwb3N0X2RhdGEgLj0gJyZwYXRyb25ob3N0PScKICAgICAgICAgICAgLiB1cmxlbmNvZGUoJHRoaXMtPmNvbmZpZ1snQ2F0YWxvZyddWydwYXRyb25faG9zdCddKTsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmaG9zdD0nCiAgICAgICAgICAgIC4gdXJsZW5jb2RlKCR0aGlzLT5jb25maWdbJ0NhdGFsb2cnXVsnaG9zdF9zdHJpbmcnXSk7CiAgICAgICAgJHBvc3RfZGF0YSAuPSAnJml0ZW1iYXJjb2RlPScgLiBpbXBsb2RlKCcmaXRlbWJhcmNvZGU9JywgJGl0ZW1fbGlzdCk7CiAgICAgICAgJHBvc3RfZGF0YSAuPSAnJnN1Ym1pdD0nIC4gJ1JlbmV3JzsKICAgICAgICAkcG9zdF9kYXRhIC49ICcmcmVzZXQ9JyAuICdDbGVhcic7CgogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+aHR0cFJlcXVlc3QoJHZpcnR1YV91cmwsIG51bGwsICRwb3N0X2RhdGEpOwoKICAgICAgICAvLyBHZXQgaXRlbXMgb3V0IG9uIGxvYW4gd2l0aCByZW5ld2VkIGluZm8KICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmdldE15VHJhbnNhY3Rpb25zKCRwYXRyb24pOwoKICAgICAgICAvLyBGb3JlYWNoIGl0ZW0gY3VycmVudGx5IG9uIGxvYW4KICAgICAgICAkcmV0dXJuID0gW107CiAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KSB7CiAgICAgICAgICAgIC8vIERpZCB3ZSBldmVuIGF0dGVtcHQgdG8gcmVuZXc/CiAgICAgICAgICAgIGlmIChpbl9hcnJheSgkcm93WydiYXJjb2RlJ10sICRpdGVtX2xpc3QpKSB7CiAgICAgICAgICAgICAgICAvLyBZZXMsIHNvIGNoZWNrIGlmIHRoZSBkdWUgZGF0ZSBjaGFuZ2VkCiAgICAgICAgICAgICAgICBpZiAoJHJvd1snZHVlZGF0ZSddICE9ICRpbml0aWFsWyRyb3dbJ2JhcmNvZGUnXV1bJ2R1ZWRhdGUnXSkgewogICAgICAgICAgICAgICAgICAgICRyb3dbJ2Vycm9yJ10gPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkcm93WydyZW5ld190ZXh0J10gPSAnSXRlbSBzdWNjZXNzZnVsbHkgcmVuZXdlZC4nOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcm93WydlcnJvciddID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAkcm93WydyZW5ld190ZXh0J10gPSAnSXRlbSByZW5ld2FsIGZhaWxlZC4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHJldHVybltdID0gJHJvdzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIE5vIGF0dGVtcHQgdG8gcmVuZXcgdGhpcyBpdGVtCiAgICAgICAgICAgICAgICAkcmV0dXJuW10gPSAkcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmV0dXJuOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHN1cHByZXNzZWQgYXV0aG9yaXR5IHJlY29yZHMKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5IElEIG51bWJlcnMgb2Ygc3VwcHJlc3NlZCBhdXRob3JpdHkgcmVjb3JkcyBpbiB0aGUgc3lzdGVtLgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0U3VwcHJlc3NlZEF1dGhvcml0eVJlY29yZHMoKQogICAgewogICAgICAgICRsaXN0ID0gW107CgogICAgICAgICRzcWwgPSAnc2VsZWN0IGF1dGhfaWQgJyAuCiAgICAgICAgICAgICdmcm9tIHN0YXRlX3JlY29yZF9hdXRob3JpdHkgJyAuCiAgICAgICAgICAgICdXSEVSRSBTVEFURV9JRCA9IDEnOwoKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmRiLT5zaW1wbGVTZWxlY3QoJHNxbCk7CgogICAgICAgIGlmICgkcmVzdWx0ID09PSBmYWxzZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSUxTRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGNvbm5lY3RpbmcgdG8gVmlydHVhJwogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHJlc3VsdCBhcyAkcm93KSB7CiAgICAgICAgICAgICRsaXN0W10gPSAndnRscycgLiBzdHJfcGFkKCRyb3dbJ0FVVEhfSUQnXSwgOSwgJzAnLCBTVFJfUEFEX0xFRlQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGxpc3Q7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdXBwb3J0IG1ldGhvZCAtLSBnZXQgYmFzZSBVUkwgZm9yIEFQSSByZXF1ZXN0cy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0QXBpQmFzZVVybCgpCiAgICB7CiAgICAgICAgLy8gR2V0IHRoZSBpUG9ydGFsIHNlcnZlcgogICAgICAgICRob3N0ID0gJHRoaXMtPmNvbmZpZ1snQ2F0YWxvZyddWyd3ZWJob3N0J107CiAgICAgICAgJHBhdGggPSBpc3NldCgkdGhpcy0+Y29uZmlnWydDYXRhbG9nJ11bJ2NnaV90b2tlbiddKQogICAgICAgICAgICA/IHRyaW0oJHRoaXMtPmNvbmZpZ1snQ2F0YWxvZyddWydjZ2lfdG9rZW4nXSwgJy8nKQogICAgICAgICAgICA6ICdjZ2ktYmluJzsKICAgICAgICByZXR1cm4gImh0dHA6Ly97JGhvc3R9L3skcGF0aH0vY2hhbWVsZW9uIjsKICAgIH0KCiAgICAvKioKICAgICAqIFN1cHBvcnQgbWV0aG9kIC0tIGRldGVybWluZSB0aGUgbGFuZ3VhZ2UgZnJvbSB0aGUgY29uZmlndXJhdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0Q29uZmlndXJlZExhbmd1YWdlKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmNvbmZpZ1snQ2F0YWxvZyddWydsYW5ndWFnZSddID8/ICdlbic7CiAgICB9CgogICAgLyoqCiAgICAgKiBTdXBwb3J0IG1ldGhvZCAtLSBwZXJmb3JtIGFuIEhUVFAgcmVxdWVzdC4gVGhpcyB3aWxsIGJlIGEgR0VUIHJlcXVlc3QgdW5sZXNzCiAgICAgKiBlaXRoZXIgJHBvc3RQYXJhbXMgb3IgJHJhd1Bvc3QgaXMgc2V0IHRvIGEgbm9uLW51bGwgdmFsdWUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdXJsICAgICAgICBUYXJnZXQgVVJMIGZvciByZXF1ZXN0CiAgICAgKiBAcGFyYW0gYXJyYXkgICRwb3N0UGFyYW1zIEFzc29jaWF0aXZlIGFycmF5IG9mIFBPU1QgcGFyYW1ldGVycyAobnVsbCBmb3IKICAgICAqIG5vbmUpLgogICAgICogQHBhcmFtIHN0cmluZyAkcmF3UG9zdCAgICBTdHJpbmcgcmVwcmVzZW50aW5nIHJhdyBQT1NUIHBhcmFtZXRlcnMgKG51bGwgZm9yCiAgICAgKiBub25lKS4KICAgICAqCiAgICAgKiBAdGhyb3dzIElMU0V4Y2VwdGlvbgogICAgICogQHJldHVybiBzdHJpbmcgUmVzcG9uc2UgYm9keQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gaHR0cFJlcXVlc3QoJHVybCwgJHBvc3RQYXJhbXMgPSBudWxsLCAkcmF3UG9zdCA9IG51bGwpCiAgICB7CiAgICAgICAgJG1ldGhvZCA9IChudWxsID09PSAkcG9zdFBhcmFtcyAmJiBudWxsID09PSAkcmF3UG9zdCkgPyAnR0VUJyA6ICdQT1NUJzsKCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGNsaWVudCA9ICR0aGlzLT5odHRwU2VydmljZS0+Y3JlYXRlQ2xpZW50KCR1cmwpOwogICAgICAgICAgICBpZiAoaXNfYXJyYXkoJHBvc3RQYXJhbXMpKSB7CiAgICAgICAgICAgICAgICAkY2xpZW50LT5zZXRQYXJhbWV0ZXJQb3N0KCRwb3N0UGFyYW1zKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobnVsbCAhPT0gJHJhd1Bvc3QpIHsKICAgICAgICAgICAgICAgICRjbGllbnQtPnNldFJhd0JvZHkoJHJhd1Bvc3QpOwogICAgICAgICAgICAgICAgJGNsaWVudC0+c2V0RW5jVHlwZSgnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJlc3VsdCA9ICRjbGllbnQtPnNldE1ldGhvZCgkbWV0aG9kKS0+c2VuZCgpOwogICAgICAgIH0gY2F0Y2ggKFxFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgJHRoaXMtPnRocm93QXNJbHNFeGNlcHRpb24oJGUpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkcmVzdWx0LT5pc1N1Y2Nlc3MoKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgSUxTRXhjZXB0aW9uKCdIVFRQIGVycm9yJyk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJlc3VsdC0+Z2V0Qm9keSgpOwogICAgfQoKICAgIC8qIE1ldGhvZHMgeWV0IHRvIGJlIGltcGxlbWVudGVkIC0tIHNlZSBWb3lhZ2VyIGRyaXZlciBmb3IgZXhhbXBsZXMKCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TmV3SXRlbXMoJHBhZ2UsICRsaW1pdCwgJGRheXNPbGQsICRmdW5kSWQgPSBudWxsKQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRGdW5kcygpCgogICAgcHVibGljIGZ1bmN0aW9uIGdldFN1cHByZXNzZWRSZWNvcmRzKCkKICAgICAqLwp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MTg6IlxWdUZpbmRcSUxTXERyaXZlciI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE4OiJcVnVGaW5kXElMU1xEcml2ZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJEcml2ZXIiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czoyNToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjEzOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjY6IlZpcnR1YSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTg6IlZUTFMgVmlydHVhIERyaXZlciI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo1OntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImNhdGVnb3J5IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OiJWdUZpbmQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6InBhY2thZ2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExOiJJTFNfRHJpdmVycyI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxNToiR3JlZyBQZW5kbGVidXJ5IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjMzOiJ2dWZpbmQtdGVjaEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQiO31pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluayI6Mzp7czo3OiIAKgBuYW1lIjtzOjQ6ImxpbmsiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ6Ildpa2kiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rAGxpbmsiO3M6NTU6Imh0dHBzOi8vdnVmaW5kLm9yZy93aWtpL2RldmVsb3BtZW50OnBsdWdpbnM6aWxzX2RyaXZlcnMiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czoxNzoiVnVGaW5kXElMU1xEcml2ZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjI6e3M6MTM6IkRhdGVFeGNlcHRpb24iO3M6MjU6IlZ1RmluZFxEYXRlXERhdGVFeGNlcHRpb24iO3M6MTI6IklMU0V4Y2VwdGlvbiI7czoyMDoiVnVGaW5kXEV4Y2VwdGlvblxJTFMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzE6IlxWdUZpbmRcSUxTXERyaXZlclxBYnN0cmFjdEJhc2UiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiQWJzdHJhY3RCYXNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MTp7czozNzoiXFZ1RmluZEh0dHBcSHR0cFNlcnZpY2VBd2FyZUludGVyZmFjZSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM3OiJcVnVGaW5kSHR0cFxIdHRwU2VydmljZUF3YXJlSW50ZXJmYWNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjU6Ikh0dHBTZXJ2aWNlQXdhcmVJbnRlcmZhY2UiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czozMDoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6JGRiIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozMDoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6JGRiIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjoiZGIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTc6Ik9yYWNsZSBjb25uZWN0aW9uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI1OiJcVnVGaW5kXENvbm5lY3Rpb25cT3JhY2xlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiT3JhY2xlIjt9fXM6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAc3RhdGljIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo1ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlIjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHJlYWRPbmx5IjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAbWV0YWRhdGEiO2E6MDp7fX19czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6MzI6e3M6MzM6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmluaXQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIyOiJJbml0aWFsaXplIHRoZSBkcml2ZXIuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk3OiJWYWxpZGF0ZSBjb25maWd1cmF0aW9uIGFuZCBwZXJmb3JtIGFsbCByZXNvdXJjZS1pbnRlbnNpdmUgdGFza3MgbmVlZGVkIHRvCm1ha2UgdGhlIGRyaXZlciBhY3RpdmUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMToiXFZ1RmluZFxFeGNlcHRpb25cSUxTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiSUxTIjt9fX1pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzM6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmluaXQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6ImluaXQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzg6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldFN0YXR1cygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTA6IkdldCBTdGF0dXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Nzg6IlRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHJldHJpZXZpbmcgdGhlIHN0YXR1cyBpbmZvcm1hdGlvbiBvZiBhIGNlcnRhaW4KcmVjb3JkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0MjoiVGhlIHJlY29yZCBpZCB0byByZXRyaWV2ZSB0aGUgaG9sZGluZ3MgZm9yIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoyOiJpZCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMToiXFZ1RmluZFxFeGNlcHRpb25cSUxTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiSUxTIjt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTI0OiJPbiBzdWNjZXNzLCBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czoKaWQsIGF2YWlsYWJpbGl0eSAoYm9vbGVhbiksIHN0YXR1cywgbG9jYXRpb24sIHJlc2VydmUsIGNhbGxudW1iZXIuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRTdGF0dXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6ImdldFN0YXR1cyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoyOiJpZCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEwNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMwNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDA6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldFN0YXR1c2VzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMjoiR2V0IFN0YXR1c2VzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjg2OiJUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIHRoZSBzdGF0dXMgaW5mb3JtYXRpb24gZm9yIGEKY29sbGVjdGlvbiBvZiByZWNvcmRzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1MDoiVGhlIGFycmF5IG9mIHJlY29yZCBpZHMgdG8gcmV0cmlldmUgdGhlIHN0YXR1cyBmb3IiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo2OiJpZExpc3QiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjE6IlxWdUZpbmRcRXhjZXB0aW9uXElMUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6IklMUyI7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ5OiJBbiBhcnJheSBvZiBnZXRTdGF0dXMoKSByZXR1cm4gdmFsdWVzIG9uIHN1Y2Nlc3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldFN0YXR1c2VzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiZ2V0U3RhdHVzZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoiaWRMaXN0IjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzIwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzI3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czozOToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0SG9sZGluZygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTE6IkdldCBIb2xkaW5nIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjc5OiJUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIHRoZSBob2xkaW5nIGluZm9ybWF0aW9uIG9mIGEgY2VydGFpbgpyZWNvcmQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Nzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQyOiJUaGUgcmVjb3JkIGlkIHRvIHJldHJpZXZlIHRoZSBob2xkaW5ncyBmb3IiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjI6ImlkIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTE6IlBhdHJvbiBkYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NjoicGF0cm9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjI7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzQ6IkV4dHJhIG9wdGlvbnMgKG5vdCBjdXJyZW50bHkgdXNlZCkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo3OiJvcHRpb25zIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjM7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI2OiJcVnVGaW5kXERhdGVcRGF0ZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJEYXRlRXhjZXB0aW9uIjt9fX1pOjQ7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIxOiJcVnVGaW5kXEV4Y2VwdGlvblxJTFMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJJTFMiO319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNTA6Ik9uIHN1Y2Nlc3MsIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGZvbGxvd2luZwprZXlzOiBpZCwgYXZhaWxhYmlsaXR5IChib29sZWFuKSwgc3RhdHVzLCBsb2NhdGlvbiwgcmVzZXJ2ZSwgY2FsbG51bWJlciwKZHVlZGF0ZSwgbnVtYmVyLCBiYXJjb2RlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19aTo2O086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxNjoiU3VwcHJlc3NXYXJuaW5ncyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6IihQSFBNRC5VbnVzZWRGb3JtYWxQYXJhbWV0ZXIpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRIb2xkaW5nKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiZ2V0SG9sZGluZyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTozOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoyOiJpZCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6InBhdHJvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6Nzoib3B0aW9ucyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czoyOiJbXSI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ3NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDU6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmNoZWNrSG9sZEFsbG93ZWQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjUxOiJDaGVjayBpZiB0aGlzIHBhdHJvbiBpcyBhbGxvd2VkIHRvIHBsYWNlIGEgcmVxdWVzdC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjEyOiItIFJldHVybiB0aGUgaG9sZGluZ3MgYXJyYXkgd2l0aCB0cnVlL2ZhbHNlIGFuZCBhIHJlYXNvbi4KCkJlY2F1c2Ugb2YgdGhlIGxvY2F0aW9uIGNvbXBhcmlzb25zIHdpdGggdGhlIHBhdHJvbidzCiAgbG9jYXRpb24gdGhhdCBvY2N1ciBoZXJlIHdlIGFsc28gdGFrZSB0aGUgb3BwdXJ0dW5pdHkKICB0byBwdXNoIHRoZWlyICJIb21lIiBsb2NhdGlvbiB0byB0aGUgdG9wLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMjoiSUQgb2YgcGF0cm9uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo5OiJwYXRyb25faWQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozNjoiSG9sZGluZ3MgaW5mb3JtYXRpb24gZnJvbSBnZXRIb2xkaW5nIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6ODoiaG9sZGluZ3MiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NjoiSG9sZGluZ3MgaW5mbyBhdWdtZW50ZWQgd2l0aCByZXFfYWxsb3dlZCBmaWVsZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ1OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpjaGVja0hvbGRBbGxvd2VkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNjoiY2hlY2tIb2xkQWxsb3dlZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJwYXRyb25faWQiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJob2xkaW5ncyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ5MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY0ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzc6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldEZpZWxkKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NzoiU2ltcGxlIHV0aWxpdHkgLS0gcmV0cmlldmUgZGF0YSBtYXRjaGluZyBhIGNvZGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE0OiJEYXRhIHRvIHNlYXJjaCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6ImRhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxODoiQ29kZSB0byBzZWFyY2ggZm9yIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJjb2RlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM3OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRGaWVsZCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiZ2V0RmllbGQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImNvZGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2Njg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpyZW5kZXJQYXJ0U3ViUGF0dGVybigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6ODE6IlBhdHRlcm5zIGNvbWluZyBpbiBoZXJlIGFyZSBlaXRoZXIgYWxsIGNocm9ubwogICBwYXR0ZXJucywgb3Igbm8gY2hyb25vIHBhdHRlcm5zLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo3NzoiVGhpcyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIHRoZSBmaW5hbCBzdHJpbmcKcmVuZGVyIGZvciBlYWNoIHBhdHRlcm4gc3VicGFydC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ6IkRhdGEgdG8gcmVuZGVyIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoiZGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OnJlbmRlclBhcnRTdWJQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMDoicmVuZGVyUGFydFN1YlBhdHRlcm4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGF0YSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjY4MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDU6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OnJlbmRlclN1YlBhdHRlcm4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE2MToiQnJlYWtzIHVwIHRoZSBmdWxsIHBhdHRlcm4gaW50byBjaHJvbm8gYW5kIG90aGVyCiAgY2hyb25vID0gKHllYXIpIGV0Yy4uLiBpZS4gZ2V0cyByZXBsYWNlZCBpbmxpbmUKICBvdGhlciAgPSBtb3N0IGVudW0gaG9sZGluZ3Mgb3IgJ1B0LicuLi4gaWUuIGdldCBjb25jYXRlbmF0ZWQiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NzM6IlRoZSBzYW1lIHN1YiBmdW5jdGlvbiBoYW5kbGVzIGJvdGgsIGJ1dCB0aGV5IG11c3QgYmUKc2VudCBpbiBsaWtlIGdyb3Vwcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTQ6IkRhdGEgdG8gcmVuZGVyIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoiZGF0YSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDU6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OnJlbmRlclN1YlBhdHRlcm4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJyZW5kZXJTdWJQYXR0ZXJuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4NjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo4OTM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQ3OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpyZW5kZXJPdGhlclBhdHRlcm4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEyODoiQ3VycmVudGx5IHVzZWQgdG8gaGFuZGxlZCBub3RlIFNVQmZpZWxkcwplZy4gODYzL3osIG5vdCA4NjYgZ2VuZXJhbGx5CiAgYnV0IGFueXRoaW5nIG5vbiBlbnVtIGFuZCBjaHJvbm8KICByZWxhdGVkIGVuZHMgdXAgaGVyZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE0OiJEYXRhIHRvIHJlbmRlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjQ6ImRhdGEiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6cmVuZGVyT3RoZXJQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoicmVuZGVyT3RoZXJQYXR0ZXJuIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6ImRhdGEiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MDU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5MjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQyOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpyZW5kZXJQYXR0ZXJuKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMDg6IlJlbmRlcnMgaW5kaXZpZHVhbCBob2xkaW5ncyBhZ2FpbnN0IGEgcGF0dGVybgogIE5vdGUgZmllbGRzIGFuZCBwcmVkaWN0aW9uIHBhdHRlcm5zIGFyZSBoYW5kbGVkCiAgc2VwYXJhdGVseSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTI6IlBhdHRlcm4gZGF0YSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6InBhdHRlcm5zIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IkZpZWxkIGRhdGEiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo1OiJmaWVsZCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQyOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpyZW5kZXJQYXR0ZXJuKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoicmVuZGVyUGF0dGVybiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJwYXR0ZXJucyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjU6ImZpZWxkIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTcxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0OToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6cmVuZGVyU2VyaWFsSG9sZGluZ3MoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjcyOiJBIGZ1bmN0aW9uIHR1cm5pbmcgaG9sZGluZ3MgbWFyYyBpbnRvIGFuIGFycmF5IG9mIGRpc3BsYXkgcmVhZHkgc3RyaW5ncy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0OiJIb2xkaW5ncyBkYXRhIGZyb20gTUFSQy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMzoiaG9sZGluZ3NfbWFyYyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpyZW5kZXJTZXJpYWxIb2xkaW5ncygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6InJlbmRlclNlcmlhbEhvbGRpbmdzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEzOiJob2xkaW5nc19tYXJjIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTgwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA1NTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDc6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldFB1cmNoYXNlSGlzdG9yeSgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MjA6IkdldCBQdXJjaGFzZSBIaXN0b3J5IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzNjoiVGhpcyBpcyByZXNwb25zaWJsZSBmb3IgcmV0cmlldmluZyB0aGUgYWNxdWlzaXRpb25zIGhpc3RvcnkgZGF0YSBmb3IgdGhlCnNwZWNpZmljIHJlY29yZCAodXN1YWxseSByZWNlbnRseSByZWNlaXZlZCBpc3N1ZXMgb2YgYSBzZXJpYWwpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozODoiVGhlIHJlY29yZCBpZCB0byByZXRyaWV2ZSB0aGUgaW5mbyBmb3IiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjI6ImlkIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIxOiJcVnVGaW5kXEV4Y2VwdGlvblxJTFMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJJTFMiO319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NzoiQW4gYXJyYXkgd2l0aCB0aGUgYWNxdWlzaXRpb25zIGRhdGEgb24gc3VjY2Vzcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NzoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0UHVyY2hhc2VIaXN0b3J5KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxODoiZ2V0UHVyY2hhc2VIaXN0b3J5Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjI6ImlkIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA2ODtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM4OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRBbGw4NTMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjgzOiJVc2VkIGZvciBURVNUSU5HIG9ubHkuIEdyYWJzIGFsbCBwcmVkaWN0aW9uCiAgICBwYXR0ZXJucyBpbiB0aGUgc3lzdGVtIGZvciBhbmFseXNpcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzg6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldEFsbDg1MygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiZ2V0QWxsODUzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExMTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMTM3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MDoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6cGF0cm9uTG9naW4oKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEyOiJQYXRyb24gTG9naW4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Njg6IlRoaXMgaXMgcmVzcG9uc2libGUgZm9yIGF1dGhlbnRpY2F0aW5nIGEgcGF0cm9uIGFnYWluc3QgdGhlIGNhdGFsb2cuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE4OiJUaGUgcGF0cm9uIGJhcmNvZGUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjc6ImJhcmNvZGUiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxOToiVGhlIHBhdHJvbiBwYXNzd29yZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6ODoicGFzc3dvcmQiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjE6IlxWdUZpbmRcRXhjZXB0aW9uXElMUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6IklMUyI7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjgxOiJBc3NvY2lhdGl2ZSBhcnJheSBvZiBwYXRyb24gaW5mbyBvbiBzdWNjZXNzZnVsIGxvZ2luLApudWxsIG9uIHVuc3VjY2Vzc2Z1bCBsb2dpbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OnBhdHJvbkxvZ2luKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToicGF0cm9uTG9naW4iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoiYmFyY29kZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjg6InBhc3N3b3JkIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE1MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMDI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQxOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRNeVByb2ZpbGUoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE4OiJHZXQgUGF0cm9uIFByb2ZpbGUiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Njk6IlRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHJldHJpZXZpbmcgdGhlIHByb2ZpbGUgZm9yIGEgc3BlY2lmaWMgcGF0cm9uLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxNjoiVGhlIHBhdHJvbiBhcnJheSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjY6InBhdHJvbiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMToiXFZ1RmluZFxFeGNlcHRpb25cSUxTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiSUxTIjt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDY6IkFycmF5IG9mIHRoZSBwYXRyb24ncyBwcm9maWxlIGRhdGEgb24gc3VjY2Vzcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0TXlQcm9maWxlKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiZ2V0TXlQcm9maWxlIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6InBhdHJvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEyMTQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czozOToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0TXlGaW5lcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTY6IkdldCBQYXRyb24gRmluZXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjY6IlRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHJldHJpZXZpbmcgYWxsIGZpbmVzIGJ5IGEgc3BlY2lmaWMgcGF0cm9uLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMzoiVGhlIHBhdHJvbiBhcnJheSBmcm9tIHBhdHJvbkxvZ2luIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NjoicGF0cm9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI2OiJcVnVGaW5kXERhdGVcRGF0ZUV4Y2VwdGlvbiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEzOiJEYXRlRXhjZXB0aW9uIjt9fX1pOjI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIxOiJcVnVGaW5kXEV4Y2VwdGlvblxJTFMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJJTFMiO319fWk6MztPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozOToiQXJyYXkgb2YgdGhlIHBhdHJvbidzIGZpbmVzIG9uIHN1Y2Nlc3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRNeUZpbmVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiZ2V0TXlGaW5lcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJwYXRyb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMjcxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTI5OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzk6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldE15SG9sZHMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjE2OiJHZXQgUGF0cm9uIEhvbGRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY2OiJUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciByZXRyaWV2aW5nIGFsbCBob2xkcyBieSBhIHNwZWNpZmljIHBhdHJvbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo0OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzM6IlRoZSBwYXRyb24gYXJyYXkgZnJvbSBwYXRyb25Mb2dpbiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX1zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjY6InBhdHJvbiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNjoiXFZ1RmluZFxEYXRlXERhdGVFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMzoiRGF0ZUV4Y2VwdGlvbiI7fX19aToyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMToiXFZ1RmluZFxFeGNlcHRpb25cSUxTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiSUxTIjt9fX1pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzk6IkFycmF5IG9mIHRoZSBwYXRyb24ncyBob2xkcyBvbiBzdWNjZXNzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRNeUhvbGRzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiZ2V0TXlIb2xkcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJwYXRyb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMzEyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTMzNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDY6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldE15VHJhbnNhY3Rpb25zKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMzoiR2V0IFBhdHJvbiBUcmFuc2FjdGlvbnMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6OTg6IlRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHJldHJpZXZpbmcgYWxsIHRyYW5zYWN0aW9ucyAoaS5lLiBjaGVja2VkIG91dCBpdGVtcykKYnkgYSBzcGVjaWZpYyBwYXRyb24uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NDp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjMzOiJUaGUgcGF0cm9uIGFycmF5IGZyb20gcGF0cm9uTG9naW4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo2OiJwYXRyb24iO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjY6IlxWdUZpbmRcRGF0ZVxEYXRlRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6IkRhdGVFeGNlcHRpb24iO319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjE6IlxWdUZpbmRcRXhjZXB0aW9uXElMUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6IklMUyI7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ2OiJBcnJheSBvZiB0aGUgcGF0cm9uJ3MgdHJhbnNhY3Rpb25zIG9uIHN1Y2Nlc3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDY6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldE15VHJhbnNhY3Rpb25zKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiZ2V0TXlUcmFuc2FjdGlvbnMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NjoicGF0cm9uIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTM1MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzODk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRDb3Vyc2VzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMToiR2V0IENvdXJzZXMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjM6Ik9idGFpbiBhIGxpc3Qgb2YgY291cnNlcyBmb3IgdXNlIGluIGxpbWl0aW5nIHRoZSByZXNlcnZlcyBsaXN0LiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjI6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xUaHJvd3MiOjM6e3M6NzoiACoAbmFtZSI7czo2OiJ0aHJvd3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MjE6IlxWdUZpbmRcRXhjZXB0aW9uXElMUyI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjM6IklMUyI7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ5OiJBbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIGtleSA9IElELCB2YWx1ZSA9IG5hbWUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mzk6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldENvdXJzZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJnZXRDb3Vyc2VzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjEzOTk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDE3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6ZmluZFJlc2VydmVzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMzoiRmluZCBSZXNlcnZlcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozODoiT2J0YWluIGluZm9ybWF0aW9uIG9uIGNvdXJzZSByZXNlcnZlcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo2OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDY6IklEIGZyb20gZ2V0Q291cnNlcyAoZW1wdHkgc3RyaW5nIHRvIG1hdGNoIGFsbCkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjY6ImNvdXJzZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUwOiJJRCBmcm9tIGdldEluc3RydWN0b3JzIChlbXB0eSBzdHJpbmcgdG8gbWF0Y2ggYWxsKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoiaW5zdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjUwOiJJRCBmcm9tIGdldERlcGFydG1lbnRzIChlbXB0eSBzdHJpbmcgdG8gbWF0Y2ggYWxsKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NDoiZGVwdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMToiXFZ1RmluZFxFeGNlcHRpb25cSUxTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiSUxTIjt9fX1pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTg6IkFuIGFycmF5IG9mIGFzc29jaWF0aXZlIGFycmF5cyByZXByZXNlbnRpbmcgcmVzZXJ2ZSBpdGVtcy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319fWk6NTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTY6IlN1cHByZXNzV2FybmluZ3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI5OiIoUEhQTUQuVW51c2VkRm9ybWFsUGFyYW1ldGVyKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6ZmluZFJlc2VydmVzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMjoiZmluZFJlc2VydmVzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6ImNvdXJzZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjQ6Imluc3QiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtzOjU6ImZhbHNlIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZGVwdCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NToiZmFsc2UiO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNDMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ1MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDQ6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldE9wZW5pbmdIb3VycygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6IlJldHJpZXZlIHRoZSBvcGVuaW5nIGhvdXJzIGZvciBhbGwgY2FtcHVzZXMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ5OiItIFVzZWQgb24gdGhlIGhvbWUgcGFnZSB0byBzaG93IHRpbWUgaW5mb3JtYXRpb24uIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ1OiJPcHRpb25hbCB0aW1lIHN0cmluZyAoZm9yIGRlYnVnZ2luZyBwdXJwb3NlcykiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6ImZha2VfdGltZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI2OiJPcGVuaW5nIGhvdXJzIGluZm9ybWF0aW9uLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ0OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRPcGVuaW5nSG91cnMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE1OiJnZXRPcGVuaW5nSG91cnMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToiZmFrZV90aW1lIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTQ2MztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1MzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjM4OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpwbGFjZUhvbGQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjEwOiJQbGFjZSBIb2xkIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE0OToiQXR0ZW1wdHMgdG8gcGxhY2UgYSBob2xkIG9yIHJlY2FsbCBvbiBhIHBhcnRpY3VsYXIgaXRlbSBhbmQgcmV0dXJucwphbiBhcnJheSB3aXRoIHJlc3VsdCBkZXRhaWxzIG9yIHRocm93cyBhbiBleGNlcHRpb24gb24gZmFpbHVyZSBvZiBzdXBwb3J0CmNsYXNzZXMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzI6IkFuIGFycmF5IG9mIGl0ZW0gYW5kIHBhdHJvbiBkYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTE6ImhvbGREZXRhaWxzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVGhyb3dzIjozOntzOjc6IgAqAG5hbWUiO3M6NjoidGhyb3dzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjIxOiJcVnVGaW5kXEV4Y2VwdGlvblxJTFMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czozOiJJTFMiO319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMTA6IkFuIGFycmF5IG9mIGRhdGEgb24gdGhlIHJlcXVlc3QgaW5jbHVkaW5nCndoZXRoZXIgb3Igbm90IGl0IHdhcyBzdWNjZXNzZnVsIGFuZCBhIHN5c3RlbSBtZXNzYWdlIChpZiBhdmFpbGFibGUpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpwbGFjZUhvbGQoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6InBsYWNlSG9sZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxMToiaG9sZERldGFpbHMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNTUwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTYxOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDk6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldENhbmNlbEhvbGREZXRhaWxzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoyMzoiR2V0IENhbmNlbCBIb2xkIERldGFpbHMiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjc5OiJJbiBvcmRlciB0byBjYW5jZWwgYSBob2xkLCBWb3lhZ2VyIHJlcXVpcmVzIHRoZSBwYXRyb24gZGV0YWlscyBhbiBpdGVtIElECmFuZCBhIHJlY2FsbCBJRC4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBpdGVtIGlkIGFuZCByZWNhbGwgaWQgYXMgYSBzdHJpbmcKc2VwYXJhdGVkIGJ5IGEgcGlwZSwgd2hpY2ggaXMgdGhlbiBzdWJtaXR0ZWQgYXMgZm9ybSBkYXRhIGluIEhvbGQucGhwLiBUaGlzCnZhbHVlIGlzIHRoZW4gZXh0cmFjdGVkIGJ5IHRoZSBDYW5jZWxIb2xkcyBmdW5jdGlvbi4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTo0OntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzU6IkEgc2luZ2xlIGhvbGQgYXJyYXkgZnJvbSBnZXRNeUhvbGRzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTE6ImhvbGREZXRhaWxzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MzU6IlBhdHJvbiBpbmZvcm1hdGlvbiBmcm9tIHBhdHJvbkxvZ2luIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NjoicGF0cm9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjg6IkRhdGEgZm9yIHVzZSBpbiBhIGZvcm0gZmllbGQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czoxNjoiU3VwcHJlc3NXYXJuaW5ncyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mjk6IihQSFBNRC5VbnVzZWRGb3JtYWxQYXJhbWV0ZXIpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQ5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRDYW5jZWxIb2xkRGV0YWlscygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjA6ImdldENhbmNlbEhvbGREZXRhaWxzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjI6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjExOiJob2xkRGV0YWlscyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjY6InBhdHJvbiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6MjoiW10iO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTYzOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDA6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmNhbmNlbEhvbGRzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czoxMjoiQ2FuY2VsIEhvbGRzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzNjoiQXR0ZW1wdHMgdG8gQ2FuY2VsIGEgaG9sZCBvciByZWNhbGwgb24gYSBwYXJ0aWN1bGFyIGl0ZW0uIFRoZQpkYXRhIGluICRjYW5jZWxEZXRhaWxzWydkZXRhaWxzJ10gaXMgZGV0ZXJtaW5lZCBieSBnZXRDYW5jZWxIb2xkRGV0YWlscygpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czozMjoiQW4gYXJyYXkgb2YgaXRlbSBhbmQgcGF0cm9uIGRhdGEiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMzoiY2FuY2VsRGV0YWlscyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExMToiQW4gYXJyYXkgb2YgZGF0YSBvbiBlYWNoIHJlcXVlc3QgaW5jbHVkaW5nCndoZXRoZXIgb3Igbm90IGl0IHdhcyBzdWNjZXNzZnVsIGFuZCBhIHN5c3RlbSBtZXNzYWdlIChpZiBhdmFpbGFibGUpIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjE2OiJTdXBwcmVzc1dhcm5pbmdzIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyOToiKFBIUE1ELlVudXNlZEZvcm1hbFBhcmFtZXRlcikiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjg4O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDA6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmNhbmNlbEhvbGRzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiY2FuY2VsSG9sZHMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTM6ImNhbmNlbERldGFpbHMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNjU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzk6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmNhbmNlbEhvbGQoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI3OiJDYW5jZWwgYSByZXF1ZXN0IGluIHZpcnR1YS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDA6Ii0gUmV0dXJuIHRydWUvZmFsc2UgZm9yIHN1Y2Nlc3MvZmFpbHVyZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjA6IklEIG9mIGhvbGQgdG8gY2FuY2VsIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxNDoicmVxdWVzdF9udW1iZXIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM5OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpjYW5jZWxIb2xkKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiY2FuY2VsSG9sZCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czoxNDoicmVxdWVzdF9udW1iZXIiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNjY5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTY5NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6Mzg6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmZha2VMb2dpbigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDM6IkZha2UgYSB2aXJ0dWEgbG9naW4gb24gdGhlIHBhdHJvbidzIGJlaGFsZi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MjI6Ii0gUmV0dXJuIGEgc2Vzc2lvbiBpZC4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToyOntpOjA7Tzo0NDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0iOjY6e3M6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDE6IkFycmF5IHdpdGggY2F0X3VzZXJuYW1lL2NhdF9wYXNzd29yZCBrZXlzIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NjoicGF0cm9uIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IlNlc3Npb24gSUQiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM4OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpmYWtlTG9naW4oKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6ImZha2VMb2dpbiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJwYXRyb24iO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzA2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTczNztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDQ6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OmdldFJlbmV3RGV0YWlscygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTc6IkdldCBSZW5ldyBEZXRhaWxzIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI0NDoiSW4gb3JkZXIgdG8gcmVuZXcgYW4gaXRlbSwgVm95YWdlciByZXF1aXJlcyB0aGUgcGF0cm9uIGRldGFpbHMgYW5kIGFuIGl0ZW0KaWQuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgaXRlbSBpZCBhcyBhIHN0cmluZyB3aGljaCBpcyB0aGVuIHVzZWQKYXMgc3VibWl0dGVkIGZvcm0gZGF0YSBpbiBjaGVja2VkT3V0LnBocC4gVGhpcyB2YWx1ZSBpcyB0aGVuIGV4dHJhY3RlZCBieQp0aGUgUmVuZXdNeUl0ZW1zIGZ1bmN0aW9uLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyMToiQW4gYXJyYXkgb2YgaXRlbSBkYXRhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6MTU6ImNoZWNrT3V0RGV0YWlscyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI4OiJEYXRhIGZvciB1c2UgaW4gYSBmb3JtIGZpZWxkIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6MTY6IlN1cHByZXNzV2FybmluZ3MiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjI5OiIoUEhQTUQuVW51c2VkRm9ybWFsUGFyYW1ldGVyKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0NDoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0UmVuZXdEZXRhaWxzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNToiZ2V0UmVuZXdEZXRhaWxzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjE6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE1OiJjaGVja091dERldGFpbHMiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNzUzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTc1NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6NDE6IlxWdUZpbmRcSUxTXERyaXZlclxWaXJ0dWE6OnJlbmV3TXlJdGVtcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTQ6IlJlbmV3IE15IEl0ZW1zIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEyMzoiRnVuY3Rpb24gZm9yIGF0dGVtcHRpbmcgdG8gcmVuZXcgYSBwYXRyb24ncyBpdGVtcy4gVGhlIGRhdGEgaW4KJHJlbmV3RGV0YWlsc1snZGV0YWlscyddIGlzIGRldGVybWluZWQgYnkgZ2V0UmVuZXdEZXRhaWxzKCkuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk2OiJBbiBhcnJheSBvZiBkYXRhIHJlcXVpcmVkIGZvciByZW5ld2luZyBpdGVtcwppbmNsdWRpbmcgdGhlIFBhdHJvbiBJRCBhbmQgYW4gYXJyYXkgb2YgcmVuZXdhbCBJRFMiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMjoicmVuZXdEZXRhaWxzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDg6IkFuIGFycmF5IG9mIHJlbmV3YWwgaW5mb3JtYXRpb24ga2V5ZWQgYnkgaXRlbSBJRCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQxOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpyZW5ld015SXRlbXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJyZW5ld015SXRlbXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTI6InJlbmV3RGV0YWlscyI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE3Njk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo1ODoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0U3VwcHJlc3NlZEF1dGhvcml0eVJlY29yZHMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjMyOiJHZXQgc3VwcHJlc3NlZCBhdXRob3JpdHkgcmVjb3JkcyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTc6IklEIG51bWJlcnMgb2Ygc3VwcHJlc3NlZCBhdXRob3JpdHkgcmVjb3JkcyBpbiB0aGUgc3lzdGVtLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjEwOiIAKgBrZXlUeXBlIjtOO3M6MTc6IgAqAGRlZmF1bHRLZXlUeXBlIjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29tcG91bmQiOjI6e3M6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdHlwZXMiO2E6Mjp7aTowO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9aToxO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9fXM6NTI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQWdncmVnYXRlZFR5cGUAdG9rZW4iO3M6MToifCI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU4OiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRTdXBwcmVzc2VkQXV0aG9yaXR5UmVjb3JkcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6Mjk6ImdldFN1cHByZXNzZWRBdXRob3JpdHlSZWNvcmRzIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODYwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo0MjoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0QXBpQmFzZVVybCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDg6IlN1cHBvcnQgbWV0aG9kIC0tIGdldCBiYXNlIFVSTCBmb3IgQVBJIHJlcXVlc3RzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6ODg7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MjoiXFZ1RmluZFxJTFNcRHJpdmVyXFZpcnR1YTo6Z2V0QXBpQmFzZVVybCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImdldEFwaUJhc2VVcmwiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg2NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4NzU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjUwOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRDb25maWd1cmVkTGFuZ3VhZ2UoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjY0OiJTdXBwb3J0IG1ldGhvZCAtLSBkZXRlcm1pbmUgdGhlIGxhbmd1YWdlIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpnZXRDb25maWd1cmVkTGFuZ3VhZ2UoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjIxOiJnZXRDb25maWd1cmVkTGFuZ3VhZ2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTg4MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE4ODU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjQwOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpodHRwUmVxdWVzdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MTM1OiJTdXBwb3J0IG1ldGhvZCAtLSBwZXJmb3JtIGFuIEhUVFAgcmVxdWVzdC4gVGhpcyB3aWxsIGJlIGEgR0VUIHJlcXVlc3QgdW5sZXNzCmVpdGhlciAkcG9zdFBhcmFtcyBvciAkcmF3UG9zdCBpcyBzZXQgdG8gYSBub24tbnVsbCB2YWx1ZS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIyOiJUYXJnZXQgVVJMIGZvciByZXF1ZXN0IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czozOiJ1cmwiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo1MzoiQXNzb2NpYXRpdmUgYXJyYXkgb2YgUE9TVCBwYXJhbWV0ZXJzIChudWxsIGZvcgpub25lKS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czoxMDoicG9zdFBhcmFtcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aToyO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjU2OiJTdHJpbmcgcmVwcmVzZW50aW5nIHJhdyBQT1NUIHBhcmFtZXRlcnMgKG51bGwgZm9yCm5vbmUpLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQB2YXJpYWJsZU5hbWUiO3M6NzoicmF3UG9zdCI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDt9aTozO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMToiXFZ1RmluZFxFeGNlcHRpb25cSUxTIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MzoiSUxTIjt9fX1pOjQ7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTM6IlJlc3BvbnNlIGJvZHkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo4ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQwOiJcVnVGaW5kXElMU1xEcml2ZXJcVmlydHVhOjpodHRwUmVxdWVzdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTE6Imh0dHBSZXF1ZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjM6e2k6MDtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjM6InVybCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MTtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJwb3N0UGFyYW1zIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7czo0OiJudWxsIjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToyO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NzoicmF3UG9zdCI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO3M6NDoibnVsbCI7czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5MDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjE6e3M6MzM6IlxWdUZpbmRIdHRwXEh0dHBTZXJ2aWNlQXdhcmVUcmFpdCI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMzOiJcVnVGaW5kSHR0cFxIdHRwU2VydmljZUF3YXJlVHJhaXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToiSHR0cFNlcnZpY2VBd2FyZVRyYWl0Ijt9fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDk7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxOTMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";