1688054433
waR3U4bTeM%3Aac03c5b040f5d7268b2914e8c595b39f-0990fc800a14ed11f1d496cfb9d7ccd4
s:77488:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTY6IkFuIGFic3RyYWN0IGNsYXNzIHRoYXQgYWxsIHNuaWZmIHVuaXQgdGVzdHMgbXVzdCBleHRlbmQuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIxNDoiQSBzbmlmZiB1bml0IHRlc3QgY2hlY2tzIGEgLmluYyBmaWxlIGZvciBleHBlY3RlZCB2aW9sYXRpb25zIG9mIGEgc2luZ2xlCmNvZGluZyBzdGFuZGFyZC4gRXhwZWN0ZWQgZXJyb3JzIGFuZCB3YXJuaW5ncyB0aGF0IGFyZSBub3QgZm91bmQsIG9yCndhcm5pbmdzIGFuZCBlcnJvcnMgdGhhdCBhcmUgbm90IGV4cGVjdGVkLCBhcmUgY29uc2lkZXJlZCB0ZXN0IGZhaWx1cmVzLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMzoiR3JlZyBTaGVyd29vZCI7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JFbWFpbCI7czoxOToiZ3NoZXJ3b29kQHNxdWl6Lm5ldCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6OToiY29weXJpZ2h0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo0NDoiMjAwNi0yMDE1IFNxdWl6IFB0eSBMdGQgKEFCTiA3NyAwODQgNjcwIDYwMCkiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjgwOiJodHRwczovL2dpdGh1Yi5jb20vc3F1aXpsYWJzL1BIUF9Db2RlU25pZmZlci9ibG9iL21hc3Rlci9saWNlbmNlLnR4dCBCU0QgTGljZW5jZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMDk5MGZjODAwYTE0ZWQxMWYxZDQ5NmNmYjlkN2NjZDQiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyNToiQWJzdHJhY3RTbmlmZlVuaXRUZXN0LnBocCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjc0OiJ2ZW5kb3Ivc3F1aXpsYWJzL3BocF9jb2Rlc25pZmZlci90ZXN0cy9TdGFuZGFyZHMvQWJzdHJhY3RTbmlmZlVuaXRUZXN0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTYyNjY6Ijw/cGhwCi8qKgogKiBBbiBhYnN0cmFjdCBjbGFzcyB0aGF0IGFsbCBzbmlmZiB1bml0IHRlc3RzIG11c3QgZXh0ZW5kLgogKgogKiBBIHNuaWZmIHVuaXQgdGVzdCBjaGVja3MgYSAuaW5jIGZpbGUgZm9yIGV4cGVjdGVkIHZpb2xhdGlvbnMgb2YgYSBzaW5nbGUKICogY29kaW5nIHN0YW5kYXJkLiBFeHBlY3RlZCBlcnJvcnMgYW5kIHdhcm5pbmdzIHRoYXQgYXJlIG5vdCBmb3VuZCwgb3IKICogd2FybmluZ3MgYW5kIGVycm9ycyB0aGF0IGFyZSBub3QgZXhwZWN0ZWQsIGFyZSBjb25zaWRlcmVkIHRlc3QgZmFpbHVyZXMuCiAqCiAqIEBhdXRob3IgICAgR3JlZyBTaGVyd29vZCA8Z3NoZXJ3b29kQHNxdWl6Lm5ldD4KICogQGNvcHlyaWdodCAyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKQogKiBAbGljZW5zZSAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlCiAqLwoKbmFtZXNwYWNlIFBIUF9Db2RlU25pZmZlclxUZXN0c1xTdGFuZGFyZHM7Cgp1c2UgUEhQX0NvZGVTbmlmZmVyXENvbmZpZzsKdXNlIFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb247CnVzZSBQSFBfQ29kZVNuaWZmZXJcUnVsZXNldDsKdXNlIFBIUF9Db2RlU25pZmZlclxGaWxlc1xMb2NhbEZpbGU7CnVzZSBQSFBfQ29kZVNuaWZmZXJcVXRpbFxDb21tb247CnVzZSBQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZTsKCmFic3RyYWN0IGNsYXNzIEFic3RyYWN0U25pZmZVbml0VGVzdCBleHRlbmRzIFRlc3RDYXNlCnsKCiAgICAvKioKICAgICAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSBiYWNrdXAgYW5kIHJlc3RvcmF0aW9uIG9mIHRoZSAkR0xPQkFMUyBhcnJheS4KICAgICAqIE92ZXJ3cml0ZSB0aGlzIGF0dHJpYnV0ZSBpbiBhIGNoaWxkIGNsYXNzIG9mIFRlc3RDYXNlLgogICAgICogU2V0dGluZyB0aGlzIGF0dHJpYnV0ZSBpbiBzZXRVcCgpIGhhcyBubyBlZmZlY3QhCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHByb3RlY3RlZCAkYmFja3VwR2xvYmFscyA9IGZhbHNlOwoKICAgIC8qKgogICAgICogVGhlIHBhdGggdG8gdGhlIHN0YW5kYXJkJ3MgbWFpbiBkaXJlY3RvcnkuCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRzdGFuZGFyZHNEaXIgPSBudWxsOwoKICAgIC8qKgogICAgICogVGhlIHBhdGggdG8gdGhlIHN0YW5kYXJkJ3MgdGVzdCBkaXJlY3RvcnkuCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICR0ZXN0c0RpciA9IG51bGw7CgoKICAgIC8qKgogICAgICogU2V0cyB1cCB0aGlzIHVuaXQgdGVzdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldFVwKCkKICAgIHsKICAgICAgICAkY2xhc3MgPSBnZXRfY2xhc3MoJHRoaXMpOwogICAgICAgICR0aGlzLT5zdGFuZGFyZHNEaXIgPSAkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX1NUQU5EQVJEX0RJUlMnXVskY2xhc3NdOwogICAgICAgICR0aGlzLT50ZXN0c0RpciAgICAgPSAkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX1RFU1RfRElSUyddWyRjbGFzc107CgogICAgfS8vZW5kIHNldFVwKCkKCgogICAgLyoqCiAgICAgKiBHZXQgYSBsaXN0IG9mIGFsbCB0ZXN0IGZpbGVzIHRvIGNoZWNrLgogICAgICoKICAgICAqIFRoZXNlIHdpbGwgaGF2ZSB0aGUgc2FtZSBiYXNlIGFzIHRoZSBzbmlmZiBuYW1lIGJ1dCBkaWZmZXJlbnQgZXh0ZW5zaW9ucy4KICAgICAqIFdlIGlnbm9yZSB0aGUgLnBocCBmaWxlIGFzIGl0IGlzIHRoZSBjbGFzcy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0ZXN0RmlsZUJhc2UgVGhlIGJhc2UgcGF0aCB0aGF0IHRoZSB1bml0IHRlc3RzIGZpbGVzIHdpbGwgaGF2ZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZ1tdCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRUZXN0RmlsZXMoJHRlc3RGaWxlQmFzZSkKICAgIHsKICAgICAgICAkdGVzdEZpbGVzID0gW107CgogICAgICAgICRkaXIgPSBzdWJzdHIoJHRlc3RGaWxlQmFzZSwgMCwgc3RycnBvcygkdGVzdEZpbGVCYXNlLCBESVJFQ1RPUllfU0VQQVJBVE9SKSk7CiAgICAgICAgJGRpICA9IG5ldyBcRGlyZWN0b3J5SXRlcmF0b3IoJGRpcik7CgogICAgICAgIGZvcmVhY2ggKCRkaSBhcyAkZmlsZSkgewogICAgICAgICAgICAkcGF0aCA9ICRmaWxlLT5nZXRQYXRobmFtZSgpOwogICAgICAgICAgICBpZiAoc3Vic3RyKCRwYXRoLCAwLCBzdHJsZW4oJHRlc3RGaWxlQmFzZSkpID09PSAkdGVzdEZpbGVCYXNlKSB7CiAgICAgICAgICAgICAgICBpZiAoJHBhdGggIT09ICR0ZXN0RmlsZUJhc2UuJ3BocCcgJiYgc3Vic3RyKCRwYXRoLCAtNSkgIT09ICdmaXhlZCcgJiYgc3Vic3RyKCRwYXRoLCAtNCkgIT09ICcuYmFrJykgewogICAgICAgICAgICAgICAgICAgICR0ZXN0RmlsZXNbXSA9ICRwYXRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBQdXQgdGhlbSBpbiBvcmRlci4KICAgICAgICBzb3J0KCR0ZXN0RmlsZXMpOwoKICAgICAgICByZXR1cm4gJHRlc3RGaWxlczsKCiAgICB9Ly9lbmQgZ2V0VGVzdEZpbGVzKCkKCgogICAgLyoqCiAgICAgKiBTaG91bGQgdGhpcyB0ZXN0IGJlIHNraXBwZWQgZm9yIHNvbWUgcmVhc29uLgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2hvdWxkU2tpcFRlc3QoKQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKCiAgICB9Ly9lbmQgc2hvdWxkU2tpcFRlc3QoKQoKCiAgICAvKioKICAgICAqIFRlc3RzIHRoZSBleHRlbmRpbmcgY2xhc3NlcyBTbmlmZiBjbGFzcy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqIEB0aHJvd3MgXFBIUFVuaXRcRnJhbWV3b3JrXEV4Y2VwdGlvbgogICAgICovCiAgICBmaW5hbCBwdWJsaWMgZnVuY3Rpb24gdGVzdFNuaWZmKCkKICAgIHsKICAgICAgICAvLyBTa2lwIHRoaXMgdGVzdCBpZiB3ZSBjYW4ndCBydW4gaW4gdGhpcyBlbnZpcm9ubWVudC4KICAgICAgICBpZiAoJHRoaXMtPnNob3VsZFNraXBUZXN0KCkgPT09IHRydWUpIHsKICAgICAgICAgICAgJHRoaXMtPm1hcmtUZXN0U2tpcHBlZCgpOwogICAgICAgIH0KCiAgICAgICAgJHNuaWZmQ29kZSA9IENvbW1vbjo6Z2V0U25pZmZDb2RlKGdldF9jbGFzcygkdGhpcykpOwogICAgICAgIGxpc3QoJHN0YW5kYXJkTmFtZSwgJGNhdGVnb3J5TmFtZSwgJHNuaWZmTmFtZSkgPSBleHBsb2RlKCcuJywgJHNuaWZmQ29kZSk7CgogICAgICAgICR0ZXN0RmlsZUJhc2UgPSAkdGhpcy0+dGVzdHNEaXIuJGNhdGVnb3J5TmFtZS5ESVJFQ1RPUllfU0VQQVJBVE9SLiRzbmlmZk5hbWUuJ1VuaXRUZXN0Lic7CgogICAgICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIHRlc3QgZmlsZXMgdG8gY2hlY2suCiAgICAgICAgJHRlc3RGaWxlcyA9ICR0aGlzLT5nZXRUZXN0RmlsZXMoJHRlc3RGaWxlQmFzZSk7CiAgICAgICAgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9TTklGRl9DQVNFX0ZJTEVTJ11bXSA9ICR0ZXN0RmlsZXM7CgogICAgICAgIGlmIChpc3NldCgkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX0NPTkZJRyddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAkY29uZmlnID0gJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9DT05GSUcnXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY29uZmlnICAgICAgICA9IG5ldyBDb25maWcoKTsKICAgICAgICAgICAgJGNvbmZpZy0+Y2FjaGUgPSBmYWxzZTsKICAgICAgICAgICAgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9DT05GSUcnXSA9ICRjb25maWc7CiAgICAgICAgfQoKICAgICAgICAkY29uZmlnLT5zdGFuZGFyZHMgPSBbJHN0YW5kYXJkTmFtZV07CiAgICAgICAgJGNvbmZpZy0+c25pZmZzICAgID0gWyRzbmlmZkNvZGVdOwogICAgICAgICRjb25maWctPmlnbm9yZWQgICA9IFtdOwoKICAgICAgICBpZiAoaXNzZXQoJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9SVUxFU0VUUyddKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9SVUxFU0VUUyddID0gW107CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9SVUxFU0VUUyddWyRzdGFuZGFyZE5hbWVdKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJHJ1bGVzZXQgPSBuZXcgUnVsZXNldCgkY29uZmlnKTsKICAgICAgICAgICAgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9SVUxFU0VUUyddWyRzdGFuZGFyZE5hbWVdID0gJHJ1bGVzZXQ7CiAgICAgICAgfQoKICAgICAgICAkcnVsZXNldCA9ICRHTE9CQUxTWydQSFBfQ09ERVNOSUZGRVJfUlVMRVNFVFMnXVskc3RhbmRhcmROYW1lXTsKCiAgICAgICAgJHNuaWZmRmlsZSA9ICR0aGlzLT5zdGFuZGFyZHNEaXIuRElSRUNUT1JZX1NFUEFSQVRPUi4nU25pZmZzJy5ESVJFQ1RPUllfU0VQQVJBVE9SLiRjYXRlZ29yeU5hbWUuRElSRUNUT1JZX1NFUEFSQVRPUi4kc25pZmZOYW1lLidTbmlmZi5waHAnOwoKICAgICAgICAkc25pZmZDbGFzc05hbWUgPSBzdWJzdHIoZ2V0X2NsYXNzKCR0aGlzKSwgMCwgLTgpLidTbmlmZic7CiAgICAgICAgJHNuaWZmQ2xhc3NOYW1lID0gc3RyX3JlcGxhY2UoJ1xUZXN0c1xcJywgJ1xTbmlmZnNcXCcsICRzbmlmZkNsYXNzTmFtZSk7CiAgICAgICAgJHNuaWZmQ2xhc3NOYW1lID0gQ29tbW9uOjpjbGVhblNuaWZmQ2xhc3MoJHNuaWZmQ2xhc3NOYW1lKTsKCiAgICAgICAgJHJlc3RyaWN0aW9ucyA9IFtzdHJ0b2xvd2VyKCRzbmlmZkNsYXNzTmFtZSkgPT4gdHJ1ZV07CiAgICAgICAgJHJ1bGVzZXQtPnJlZ2lzdGVyU25pZmZzKFskc25pZmZGaWxlXSwgJHJlc3RyaWN0aW9ucywgW10pOwogICAgICAgICRydWxlc2V0LT5wb3B1bGF0ZVRva2VuTGlzdGVuZXJzKCk7CgogICAgICAgICRmYWlsdXJlTWVzc2FnZXMgPSBbXTsKICAgICAgICBmb3JlYWNoICgkdGVzdEZpbGVzIGFzICR0ZXN0RmlsZSkgewogICAgICAgICAgICAkZmlsZW5hbWUgID0gYmFzZW5hbWUoJHRlc3RGaWxlKTsKICAgICAgICAgICAgJG9sZENvbmZpZyA9ICRjb25maWctPmdldFNldHRpbmdzKCk7CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgJHRoaXMtPnNldENsaVZhbHVlcygkZmlsZW5hbWUsICRjb25maWcpOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZSA9IG5ldyBMb2NhbEZpbGUoJHRlc3RGaWxlLCAkcnVsZXNldCwgJGNvbmZpZyk7CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5wcm9jZXNzKCk7CiAgICAgICAgICAgIH0gY2F0Y2ggKFJ1bnRpbWVFeGNlcHRpb24gJGUpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5mYWlsKCdBbiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiBoYXMgYmVlbiBjYXVnaHQ6ICcuJGUtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRmYWlsdXJlcyAgICAgICAgPSAkdGhpcy0+Z2VuZXJhdGVGYWlsdXJlTWVzc2FnZXMoJHBocGNzRmlsZSk7CiAgICAgICAgICAgICRmYWlsdXJlTWVzc2FnZXMgPSBhcnJheV9tZXJnZSgkZmFpbHVyZU1lc3NhZ2VzLCAkZmFpbHVyZXMpOwoKICAgICAgICAgICAgaWYgKCRwaHBjc0ZpbGUtPmdldEZpeGFibGVDb3VudCgpID4gMCkgewogICAgICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBmaXggdGhlIGVycm9ycy4KICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5maXhGaWxlKCk7CiAgICAgICAgICAgICAgICAkZml4YWJsZSA9ICRwaHBjc0ZpbGUtPmdldEZpeGFibGVDb3VudCgpOwogICAgICAgICAgICAgICAgaWYgKCRmaXhhYmxlID4gMCkgewogICAgICAgICAgICAgICAgICAgICRmYWlsdXJlTWVzc2FnZXNbXSA9ICJGYWlsZWQgdG8gZml4ICRmaXhhYmxlIGZpeGFibGUgdmlvbGF0aW9ucyBpbiAkZmlsZW5hbWUiOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIENoZWNrIGZvciBhIC5maXhlZCBmaWxlIHRvIGNoZWNrIGZvciBhY2N1cmFjeSBvZiBmaXhlcy4KICAgICAgICAgICAgICAgICRmaXhlZEZpbGUgPSAkdGVzdEZpbGUuJy5maXhlZCc7CiAgICAgICAgICAgICAgICBpZiAoZmlsZV9leGlzdHMoJGZpeGVkRmlsZSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAkZGlmZiA9ICRwaHBjc0ZpbGUtPmZpeGVyLT5nZW5lcmF0ZURpZmYoJGZpeGVkRmlsZSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRyaW0oJGRpZmYpICE9PSAnJykgewogICAgICAgICAgICAgICAgICAgICAgICAkZmlsZW5hbWUgICAgICAgICAgPSBiYXNlbmFtZSgkdGVzdEZpbGUpOwogICAgICAgICAgICAgICAgICAgICAgICAkZml4ZWRGaWxlbmFtZSAgICAgPSBiYXNlbmFtZSgkZml4ZWRGaWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZhaWx1cmVNZXNzYWdlc1tdID0gIkZpeGVkIHZlcnNpb24gb2YgJGZpbGVuYW1lIGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkIHZlcnNpb24gaW4gJGZpeGVkRmlsZW5hbWU7IHRoZSBkaWZmIGlzXG4kZGlmZiI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBSZXN0b3JlIHRoZSBjb25maWcuCiAgICAgICAgICAgICRjb25maWctPnNldFNldHRpbmdzKCRvbGRDb25maWcpOwogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIGlmIChlbXB0eSgkZmFpbHVyZU1lc3NhZ2VzKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgJHRoaXMtPmZhaWwoaW1wbG9kZShQSFBfRU9MLCAkZmFpbHVyZU1lc3NhZ2VzKSk7CiAgICAgICAgfQoKICAgIH0vL2VuZCB0ZXN0U25pZmYoKQoKCiAgICAvKioKICAgICAqIEdlbmVyYXRlIGEgbGlzdCBvZiB0ZXN0IGZhaWx1cmVzIGZvciBhIGdpdmVuIHNuaWZmZWQgZmlsZS4KICAgICAqCiAgICAgKiBAcGFyYW0gXFBIUF9Db2RlU25pZmZlclxGaWxlc1xMb2NhbEZpbGUgJGZpbGUgVGhlIGZpbGUgYmVpbmcgdGVzdGVkLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqIEB0aHJvd3MgXFBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb24KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdlbmVyYXRlRmFpbHVyZU1lc3NhZ2VzKExvY2FsRmlsZSAkZmlsZSkKICAgIHsKICAgICAgICAkdGVzdEZpbGUgPSAkZmlsZS0+Z2V0RmlsZW5hbWUoKTsKCiAgICAgICAgJGZvdW5kRXJyb3JzICAgICAgPSAkZmlsZS0+Z2V0RXJyb3JzKCk7CiAgICAgICAgJGZvdW5kV2FybmluZ3MgICAgPSAkZmlsZS0+Z2V0V2FybmluZ3MoKTsKICAgICAgICAkZXhwZWN0ZWRFcnJvcnMgICA9ICR0aGlzLT5nZXRFcnJvckxpc3QoYmFzZW5hbWUoJHRlc3RGaWxlKSk7CiAgICAgICAgJGV4cGVjdGVkV2FybmluZ3MgPSAkdGhpcy0+Z2V0V2FybmluZ0xpc3QoYmFzZW5hbWUoJHRlc3RGaWxlKSk7CgogICAgICAgIGlmIChpc19hcnJheSgkZXhwZWN0ZWRFcnJvcnMpID09PSBmYWxzZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbignZ2V0RXJyb3JMaXN0KCkgbXVzdCByZXR1cm4gYW4gYXJyYXknKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc19hcnJheSgkZXhwZWN0ZWRXYXJuaW5ncykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCdnZXRXYXJuaW5nTGlzdCgpIG11c3QgcmV0dXJuIGFuIGFycmF5Jyk7CiAgICAgICAgfQoKICAgICAgICAvKgogICAgICAgICAgICBXZSBtZXJnZSBlcnJvcnMgYW5kIHdhcm5pbmdzIHRvZ2V0aGVyIHRvIG1ha2UgaXQgZWFzaWVyCiAgICAgICAgICAgIHRvIGl0ZXJhdGUgb3ZlciB0aGVtIGFuZCBwcm9kdWNlIHRoZSBlcnJvcnMgc3RyaW5nLiBJbiB0aGlzIHdheSwKICAgICAgICAgICAgd2UgY2FuIHJlcG9ydCBvbiBlcnJvcnMgYW5kIHdhcm5pbmdzIGluIHRoZSBzYW1lIGxpbmUgZXZlbiB0aG91Z2gKICAgICAgICAgICAgaXQncyBub3QgcmVhbGx5IHN0cnVjdHVyZWQgdG8gYWxsb3cgdGhhdC4KICAgICAgICAqLwoKICAgICAgICAkYWxsUHJvYmxlbXMgICAgID0gW107CiAgICAgICAgJGZhaWx1cmVNZXNzYWdlcyA9IFtdOwoKICAgICAgICBmb3JlYWNoICgkZm91bmRFcnJvcnMgYXMgJGxpbmUgPT4gJGxpbmVFcnJvcnMpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGxpbmVFcnJvcnMgYXMgJGNvbHVtbiA9PiAkZXJyb3JzKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFsbFByb2JsZW1zWyRsaW5lXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2Vycm9ycycgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfd2FybmluZ3MnID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICdmb3VuZF9lcnJvcnMnICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICAgICAgICAgICdmb3VuZF93YXJuaW5ncycgICAgPT4gW10sCiAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkZm91bmRFcnJvcnNUZW1wID0gW107CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkYWxsUHJvYmxlbXNbJGxpbmVdWydmb3VuZF9lcnJvcnMnXSBhcyAkZm91bmRFcnJvcikgewogICAgICAgICAgICAgICAgICAgICRmb3VuZEVycm9yc1RlbXBbXSA9ICRmb3VuZEVycm9yOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRlcnJvcnNUZW1wID0gW107CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkZXJyb3JzIGFzICRmb3VuZEVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yc1RlbXBbXSA9ICRmb3VuZEVycm9yWydtZXNzYWdlJ10uJyAoJy4kZm91bmRFcnJvclsnc291cmNlJ10uJyknOwoKICAgICAgICAgICAgICAgICAgICAkc291cmNlID0gJGZvdW5kRXJyb3JbJ3NvdXJjZSddOwogICAgICAgICAgICAgICAgICAgIGlmIChpbl9hcnJheSgkc291cmNlLCAkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX1NOSUZGX0NPREVTJ10sIHRydWUpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX1NOSUZGX0NPREVTJ11bXSA9ICRzb3VyY2U7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBpZiAoJGZvdW5kRXJyb3JbJ2ZpeGFibGUnXSA9PT0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAmJiBpbl9hcnJheSgkc291cmNlLCAkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX0ZJWEFCTEVfQ09ERVMnXSwgdHJ1ZSkgPT09IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRHTE9CQUxTWydQSFBfQ09ERVNOSUZGRVJfRklYQUJMRV9DT0RFUyddW10gPSAkc291cmNlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkYWxsUHJvYmxlbXNbJGxpbmVdWydmb3VuZF9lcnJvcnMnXSA9IGFycmF5X21lcmdlKCRmb3VuZEVycm9yc1RlbXAsICRlcnJvcnNUZW1wKTsKICAgICAgICAgICAgfS8vZW5kIGZvcmVhY2gKCiAgICAgICAgICAgIGlmIChpc3NldCgkZXhwZWN0ZWRFcnJvcnNbJGxpbmVdKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXVsnZXhwZWN0ZWRfZXJyb3JzJ10gPSAkZXhwZWN0ZWRFcnJvcnNbJGxpbmVdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXVsnZXhwZWN0ZWRfZXJyb3JzJ10gPSAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICB1bnNldCgkZXhwZWN0ZWRFcnJvcnNbJGxpbmVdKTsKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgICAgICBmb3JlYWNoICgkZXhwZWN0ZWRFcnJvcnMgYXMgJGxpbmUgPT4gJG51bUVycm9ycykgewogICAgICAgICAgICBpZiAoaXNzZXQoJGFsbFByb2JsZW1zWyRsaW5lXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkYWxsUHJvYmxlbXNbJGxpbmVdID0gWwogICAgICAgICAgICAgICAgICAgICdleHBlY3RlZF9lcnJvcnMnICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfd2FybmluZ3MnID0+IDAsCiAgICAgICAgICAgICAgICAgICAgJ2ZvdW5kX2Vycm9ycycgICAgICA9PiBbXSwKICAgICAgICAgICAgICAgICAgICAnZm91bmRfd2FybmluZ3MnICAgID0+IFtdLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXVsnZXhwZWN0ZWRfZXJyb3JzJ10gPSAkbnVtRXJyb3JzOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJGZvdW5kV2FybmluZ3MgYXMgJGxpbmUgPT4gJGxpbmVXYXJuaW5ncykgewogICAgICAgICAgICBmb3JlYWNoICgkbGluZVdhcm5pbmdzIGFzICRjb2x1bW4gPT4gJHdhcm5pbmdzKSB7CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJGFsbFByb2JsZW1zWyRsaW5lXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXSA9IFsKICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cGVjdGVkX2Vycm9ycycgICA9PiAwLAogICAgICAgICAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfd2FybmluZ3MnID0+IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICdmb3VuZF9lcnJvcnMnICAgICAgPT4gW10sCiAgICAgICAgICAgICAgICAgICAgICAgICdmb3VuZF93YXJuaW5ncycgICAgPT4gW10sCiAgICAgICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkZm91bmRXYXJuaW5nc1RlbXAgPSBbXTsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRhbGxQcm9ibGVtc1skbGluZV1bJ2ZvdW5kX3dhcm5pbmdzJ10gYXMgJGZvdW5kV2FybmluZykgewogICAgICAgICAgICAgICAgICAgICRmb3VuZFdhcm5pbmdzVGVtcFtdID0gJGZvdW5kV2FybmluZzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkd2FybmluZ3NUZW1wID0gW107CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkd2FybmluZ3MgYXMgJHdhcm5pbmcpIHsKICAgICAgICAgICAgICAgICAgICAkd2FybmluZ3NUZW1wW10gPSAkd2FybmluZ1snbWVzc2FnZSddLicgKCcuJHdhcm5pbmdbJ3NvdXJjZSddLicpJzsKCiAgICAgICAgICAgICAgICAgICAgJHNvdXJjZSA9ICR3YXJuaW5nWydzb3VyY2UnXTsKICAgICAgICAgICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHNvdXJjZSwgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9TTklGRl9DT0RFUyddLCB0cnVlKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9TTklGRl9DT0RFUyddW10gPSAkc291cmNlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCR3YXJuaW5nWydmaXhhYmxlJ10gPT09IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgJiYgaW5fYXJyYXkoJHNvdXJjZSwgJEdMT0JBTFNbJ1BIUF9DT0RFU05JRkZFUl9GSVhBQkxFX0NPREVTJ10sIHRydWUpID09PSBmYWxzZQogICAgICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICAgICAkR0xPQkFMU1snUEhQX0NPREVTTklGRkVSX0ZJWEFCTEVfQ09ERVMnXVtdID0gJHNvdXJjZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXVsnZm91bmRfd2FybmluZ3MnXSA9IGFycmF5X21lcmdlKCRmb3VuZFdhcm5pbmdzVGVtcCwgJHdhcm5pbmdzVGVtcCk7CiAgICAgICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgICAgICBpZiAoaXNzZXQoJGV4cGVjdGVkV2FybmluZ3NbJGxpbmVdKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXVsnZXhwZWN0ZWRfd2FybmluZ3MnXSA9ICRleHBlY3RlZFdhcm5pbmdzWyRsaW5lXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRhbGxQcm9ibGVtc1skbGluZV1bJ2V4cGVjdGVkX3dhcm5pbmdzJ10gPSAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICB1bnNldCgkZXhwZWN0ZWRXYXJuaW5nc1skbGluZV0pOwogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIGZvcmVhY2ggKCRleHBlY3RlZFdhcm5pbmdzIGFzICRsaW5lID0+ICRudW1XYXJuaW5ncykgewogICAgICAgICAgICBpZiAoaXNzZXQoJGFsbFByb2JsZW1zWyRsaW5lXSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkYWxsUHJvYmxlbXNbJGxpbmVdID0gWwogICAgICAgICAgICAgICAgICAgICdleHBlY3RlZF9lcnJvcnMnICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfd2FybmluZ3MnID0+IDAsCiAgICAgICAgICAgICAgICAgICAgJ2ZvdW5kX2Vycm9ycycgICAgICA9PiBbXSwKICAgICAgICAgICAgICAgICAgICAnZm91bmRfd2FybmluZ3MnICAgID0+IFtdLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGFsbFByb2JsZW1zWyRsaW5lXVsnZXhwZWN0ZWRfd2FybmluZ3MnXSA9ICRudW1XYXJuaW5nczsKICAgICAgICB9CgogICAgICAgIC8vIE9yZGVyIHRoZSBtZXNzYWdlcyBieSBsaW5lIG51bWJlci4KICAgICAgICBrc29ydCgkYWxsUHJvYmxlbXMpOwoKICAgICAgICBmb3JlYWNoICgkYWxsUHJvYmxlbXMgYXMgJGxpbmUgPT4gJHByb2JsZW1zKSB7CiAgICAgICAgICAgICRudW1FcnJvcnMgICAgICAgID0gY291bnQoJHByb2JsZW1zWydmb3VuZF9lcnJvcnMnXSk7CiAgICAgICAgICAgICRudW1XYXJuaW5ncyAgICAgID0gY291bnQoJHByb2JsZW1zWydmb3VuZF93YXJuaW5ncyddKTsKICAgICAgICAgICAgJGV4cGVjdGVkRXJyb3JzICAgPSAkcHJvYmxlbXNbJ2V4cGVjdGVkX2Vycm9ycyddOwogICAgICAgICAgICAkZXhwZWN0ZWRXYXJuaW5ncyA9ICRwcm9ibGVtc1snZXhwZWN0ZWRfd2FybmluZ3MnXTsKCiAgICAgICAgICAgICRlcnJvcnMgICAgICA9ICcnOwogICAgICAgICAgICAkZm91bmRTdHJpbmcgPSAnJzsKCiAgICAgICAgICAgIGlmICgkZXhwZWN0ZWRFcnJvcnMgIT09ICRudW1FcnJvcnMgfHwgJGV4cGVjdGVkV2FybmluZ3MgIT09ICRudW1XYXJuaW5ncykgewogICAgICAgICAgICAgICAgJGxpbmVNZXNzYWdlICAgICA9ICJbTElORSAkbGluZV0iOwogICAgICAgICAgICAgICAgJGV4cGVjdGVkTWVzc2FnZSA9ICdFeHBlY3RlZCAnOwogICAgICAgICAgICAgICAgJGZvdW5kTWVzc2FnZSAgICA9ICdpbiAnLmJhc2VuYW1lKCR0ZXN0RmlsZSkuJyBidXQgZm91bmQgJzsKCiAgICAgICAgICAgICAgICBpZiAoJGV4cGVjdGVkRXJyb3JzICE9PSAkbnVtRXJyb3JzKSB7CiAgICAgICAgICAgICAgICAgICAgJGV4cGVjdGVkTWVzc2FnZSAuPSAiJGV4cGVjdGVkRXJyb3JzIGVycm9yKHMpIjsKICAgICAgICAgICAgICAgICAgICAkZm91bmRNZXNzYWdlICAgIC49ICIkbnVtRXJyb3JzIGVycm9yKHMpIjsKICAgICAgICAgICAgICAgICAgICBpZiAoJG51bUVycm9ycyAhPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAkZm91bmRTdHJpbmcgLj0gJ2Vycm9yKHMpJzsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9ycyAgICAgIC49IGltcGxvZGUoUEhQX0VPTC4nIC0+ICcsICRwcm9ibGVtc1snZm91bmRfZXJyb3JzJ10pOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCRleHBlY3RlZFdhcm5pbmdzICE9PSAkbnVtV2FybmluZ3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGV4cGVjdGVkTWVzc2FnZSAuPSAnIGFuZCAnOwogICAgICAgICAgICAgICAgICAgICAgICAkZm91bmRNZXNzYWdlICAgIC49ICcgYW5kICc7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbnVtV2FybmluZ3MgIT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkZm91bmRTdHJpbmcgIT09ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdW5kU3RyaW5nIC49ICcgYW5kICc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCRleHBlY3RlZFdhcm5pbmdzICE9PSAkbnVtV2FybmluZ3MpIHsKICAgICAgICAgICAgICAgICAgICAkZXhwZWN0ZWRNZXNzYWdlIC49ICIkZXhwZWN0ZWRXYXJuaW5ncyB3YXJuaW5nKHMpIjsKICAgICAgICAgICAgICAgICAgICAkZm91bmRNZXNzYWdlICAgIC49ICIkbnVtV2FybmluZ3Mgd2FybmluZyhzKSI7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRudW1XYXJuaW5ncyAhPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAkZm91bmRTdHJpbmcgLj0gJ3dhcm5pbmcocyknOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJGVycm9ycykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzIC49IFBIUF9FT0wuJyAtPiAnOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3JzIC49IGltcGxvZGUoUEhQX0VPTC4nIC0+ICcsICRwcm9ibGVtc1snZm91bmRfd2FybmluZ3MnXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRmdWxsTWVzc2FnZSA9ICIkbGluZU1lc3NhZ2UgJGV4cGVjdGVkTWVzc2FnZSAkZm91bmRNZXNzYWdlLiI7CiAgICAgICAgICAgICAgICBpZiAoJGVycm9ycyAhPT0gJycpIHsKICAgICAgICAgICAgICAgICAgICAkZnVsbE1lc3NhZ2UgLj0gIiBUaGUgJGZvdW5kU3RyaW5nIGZvdW5kIHdlcmU6Ii5QSFBfRU9MLiIgLT4gJGVycm9ycyI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGZhaWx1cmVNZXNzYWdlc1tdID0gJGZ1bGxNZXNzYWdlOwogICAgICAgICAgICB9Ly9lbmQgaWYKICAgICAgICB9Ly9lbmQgZm9yZWFjaAoKICAgICAgICByZXR1cm4gJGZhaWx1cmVNZXNzYWdlczsKCiAgICB9Ly9lbmQgZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZXMoKQoKCiAgICAvKioKICAgICAqIEdldCBhIGxpc3Qgb2YgQ0xJIHZhbHVlcyB0byBzZXQgYmVmb3JlIHRoZSBmaWxlIGlzIHRlc3RlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgICAgICAgICAgJGZpbGVuYW1lIFRoZSBuYW1lIG9mIHRoZSBmaWxlIGJlaW5nIHRlc3RlZC4KICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXENvbmZpZyAkY29uZmlnICAgVGhlIGNvbmZpZyBkYXRhIGZvciB0aGUgcnVuLgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0Q2xpVmFsdWVzKCRmaWxlbmFtZSwgJGNvbmZpZykKICAgIHsKICAgICAgICByZXR1cm47CgogICAgfS8vZW5kIHNldENsaVZhbHVlcygpCgoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbGluZXMgd2hlcmUgZXJyb3JzIHNob3VsZCBvY2N1ci4KICAgICAqCiAgICAgKiBUaGUga2V5IG9mIHRoZSBhcnJheSBzaG91bGQgcmVwcmVzZW50IHRoZSBsaW5lIG51bWJlciBhbmQgdGhlIHZhbHVlCiAgICAgKiBzaG91bGQgcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgZXJyb3JzIHRoYXQgc2hvdWxkIG9jY3VyIG9uIHRoYXQgbGluZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5PGludCwgaW50PgogICAgICovCiAgICBhYnN0cmFjdCBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2V0RXJyb3JMaXN0KCk7CgoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbGluZXMgd2hlcmUgd2FybmluZ3Mgc2hvdWxkIG9jY3VyLgogICAgICoKICAgICAqIFRoZSBrZXkgb2YgdGhlIGFycmF5IHNob3VsZCByZXByZXNlbnQgdGhlIGxpbmUgbnVtYmVyIGFuZCB0aGUgdmFsdWUKICAgICAqIHNob3VsZCByZXByZXNlbnQgdGhlIG51bWJlciBvZiB3YXJuaW5ncyB0aGF0IHNob3VsZCBvY2N1ciBvbiB0aGF0IGxpbmUuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheTxpbnQsIGludD4KICAgICAqLwogICAgYWJzdHJhY3QgcHJvdGVjdGVkIGZ1bmN0aW9uIGdldFdhcm5pbmdMaXN0KCk7CgoKfS8vZW5kIGNsYXNzCiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MzI6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzI6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiU3RhbmRhcmRzIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6NTQ6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjEzOntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1NDoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xTdGFuZGFyZHNcQWJzdHJhY3RTbmlmZlVuaXRUZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MjE6IkFic3RyYWN0U25pZmZVbml0VGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6IlRlc3RDYXNlIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGltcGxlbWVudHMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjM6e3M6NzA6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6JGJhY2t1cEdsb2JhbHMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OiRiYWNrdXBHbG9iYWxzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTM6ImJhY2t1cEdsb2JhbHMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Njc6IkVuYWJsZSBvciBkaXNhYmxlIHRoZSBiYWNrdXAgYW5kIHJlc3RvcmF0aW9uIG9mIHRoZSAkR0xPQkFMUyBhcnJheS4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTAzOiJPdmVyd3JpdGUgdGhpcyBhdHRyaWJ1dGUgaW4gYSBjaGlsZCBjbGFzcyBvZiBUZXN0Q2FzZS4KU2V0dGluZyB0aGlzIGF0dHJpYnV0ZSBpbiBzZXRVcCgpIGhhcyBubyBlZmZlY3QhIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFZhcl8iOjQ6e3M6MTU6IgAqAHZhcmlhYmxlTmFtZSI7czowOiIiO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6MzoidmFyIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czozMToiUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkcyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6Njp7czo2OiJDb25maWciO3M6MjI6IlBIUF9Db2RlU25pZmZlclxDb25maWciO3M6MTY6IlJ1bnRpbWVFeGNlcHRpb24iO3M6NDM6IlBIUF9Db2RlU25pZmZlclxFeGNlcHRpb25zXFJ1bnRpbWVFeGNlcHRpb24iO3M6NzoiUnVsZXNldCI7czoyMzoiUEhQX0NvZGVTbmlmZmVyXFJ1bGVzZXQiO3M6OToiTG9jYWxGaWxlIjtzOjMxOiJQSFBfQ29kZVNuaWZmZXJcRmlsZXNcTG9jYWxGaWxlIjtzOjY6IkNvbW1vbiI7czoyNzoiUEhQX0NvZGVTbmlmZmVyXFV0aWxcQ29tbW9uIjtzOjg6IlRlc3RDYXNlIjtzOjI2OiJQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZSI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjU6ImZhbHNlIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjMzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fXM6Njk6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6JHN0YW5kYXJkc0RpciI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eSI6MTE6e3M6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njk6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6JHN0YW5kYXJkc0RpciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJzdGFuZGFyZHNEaXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDI6IlRoZSBwYXRoIHRvIHRoZSBzdGFuZGFyZCdzIG1haW4gZGlyZWN0b3J5LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcVmFyXyI6NDp7czoxNToiACoAdmFyaWFibGVOYW1lIjtzOjA6IiI7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB0eXBlcyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZGVmYXVsdCI7czo0OiJudWxsIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBzdGF0aWMiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQwO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGUiO047czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAcmVhZE9ubHkiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBtZXRhZGF0YSI7YTowOnt9fXM6NjU6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6JHRlc3RzRGlyIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo2NToiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xTdGFuZGFyZHNcQWJzdHJhY3RTbmlmZlVuaXRUZXN0OjokdGVzdHNEaXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0ZXN0c0RpciI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0MjoiVGhlIHBhdGggdG8gdGhlIHN0YW5kYXJkJ3MgdGVzdCBkaXJlY3RvcnkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo3OiIAKgBuYW1lIjtzOjM6InZhciI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHR5cGVzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkZWZhdWx0IjtzOjQ6Im51bGwiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjg6e3M6NjM6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6c2V0VXAoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIzOiJTZXRzIHVwIHRoaXMgdW5pdCB0ZXN0LiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjcxO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjM6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6c2V0VXAoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6InNldFVwIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo5OiJwcm90ZWN0ZWQiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjcwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OmdldFRlc3RGaWxlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6Mzg6IkdldCBhIGxpc3Qgb2YgYWxsIHRlc3QgZmlsZXMgdG8gY2hlY2suIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjExNzoiVGhlc2Ugd2lsbCBoYXZlIHRoZSBzYW1lIGJhc2UgYXMgdGhlIHNuaWZmIG5hbWUgYnV0IGRpZmZlcmVudCBleHRlbnNpb25zLgpXZSBpZ25vcmUgdGhlIC5waHAgZmlsZSBhcyBpdCBpcyB0aGUgY2xhc3MuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjEyOiJ0ZXN0RmlsZUJhc2UiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1ZhcmlhZGljIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzUmVmZXJlbmNlIjtiOjA7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6NzoiACoAbmFtZSI7czo1OiJwYXJhbSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NTA6IlRoZSBiYXNlIHBhdGggdGhhdCB0aGUgdW5pdCB0ZXN0cyBmaWxlcyB3aWxsIGhhdmUuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MDoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xTdGFuZGFyZHNcQWJzdHJhY3RTbmlmZlVuaXRUZXN0OjpnZXRUZXN0RmlsZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJnZXRUZXN0RmlsZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTI6InRlc3RGaWxlQmFzZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjc0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6OTU7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjcyOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OnNob3VsZFNraXBUZXN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NDoiU2hvdWxkIHRoaXMgdGVzdCBiZSBza2lwcGVkIGZvciBzb21lIHJlYXNvbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjcxO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NzI6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6c2hvdWxkU2tpcFRlc3QoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE0OiJzaG91bGRTa2lwVGVzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDM7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxMDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjY3OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OnRlc3RTbmlmZigpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDA6IlRlc3RzIHRoZSBleHRlbmRpbmcgY2xhc3NlcyBTbmlmZiBjbGFzcy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFZvaWRfIjowOnt9czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjg6IlxQSFBVbml0XEZyYW1ld29ya1xFeGNlcHRpb24iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo5OiJFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjY3OiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OnRlc3RTbmlmZigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToidGVzdFNuaWZmIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIwOTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fXM6ODE6IlxQSFBfQ29kZVNuaWZmZXJcVGVzdHNcU3RhbmRhcmRzXEFic3RyYWN0U25pZmZVbml0VGVzdDo6Z2VuZXJhdGVGYWlsdXJlTWVzc2FnZXMoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU4OiJHZW5lcmF0ZSBhIGxpc3Qgb2YgdGVzdCBmYWlsdXJlcyBmb3IgYSBnaXZlbiBzbmlmZmVkIGZpbGUuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjM6e2k6MDtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo0OiJmaWxlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXExvY2FsRmlsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IkxvY2FsRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIyOiJUaGUgZmlsZSBiZWluZyB0ZXN0ZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDQ6IlxQSFBfQ29kZVNuaWZmZXJcRXhjZXB0aW9uc1xSdW50aW1lRXhjZXB0aW9uIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlJ1bnRpbWVFeGNlcHRpb24iO319czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgxOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OmdlbmVyYXRlRmFpbHVyZU1lc3NhZ2VzKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMzoiZ2VuZXJhdGVGYWlsdXJlTWVzc2FnZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MTp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6NDoiZmlsZSI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8iOjE6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMyOiJcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXExvY2FsRmlsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjk6IkxvY2FsRmlsZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyMjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MjE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjcwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OnNldENsaVZhbHVlcygpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTg6IkdldCBhIGxpc3Qgb2YgQ0xJIHZhbHVlcyB0byBzZXQgYmVmb3JlIHRoZSBmaWxlIGlzIHRlc3RlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjg6ImZpbGVuYW1lIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNWYXJpYWRpYyI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbQBpc1JlZmVyZW5jZSI7YjowO3M6NzoiACoAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjM0OiJUaGUgbmFtZSBvZiB0aGUgZmlsZSBiZWluZyB0ZXN0ZWQuIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjY6ImNvbmZpZyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXFBIUF9Db2RlU25pZmZlclxDb25maWciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJDb25maWciO319czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoyODoiVGhlIGNvbmZpZyBkYXRhIGZvciB0aGUgcnVuLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086MzY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xWb2lkXyI6MDp7fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NzE7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo3MDoiXFBIUF9Db2RlU25pZmZlclxUZXN0c1xTdGFuZGFyZHNcQWJzdHJhY3RTbmlmZlVuaXRUZXN0OjpzZXRDbGlWYWx1ZXMoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEyOiJzZXRDbGlWYWx1ZXMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoiZmlsZW5hbWUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo2OiJjb25maWciO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MzI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MzY7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjcwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OmdldEVycm9yTGlzdCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6IlJldHVybnMgdGhlIGxpbmVzIHdoZXJlIGVycm9ycyBzaG91bGQgb2NjdXIuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjEzNzoiVGhlIGtleSBvZiB0aGUgYXJyYXkgc2hvdWxkIHJlcHJlc2VudCB0aGUgbGluZSBudW1iZXIgYW5kIHRoZSB2YWx1ZQpzaG91bGQgcmVwcmVzZW50IHRoZSBudW1iZXIgb2YgZXJyb3JzIHRoYXQgc2hvdWxkIG9jY3VyIG9uIHRoYXQgbGluZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcwOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OmdldEVycm9yTGlzdCgpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTI6ImdldEVycm9yTGlzdCI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjoxO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6OToicHJvdGVjdGVkIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NDc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjcyOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OmdldFdhcm5pbmdMaXN0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NjoiUmV0dXJucyB0aGUgbGluZXMgd2hlcmUgd2FybmluZ3Mgc2hvdWxkIG9jY3VyLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzk6IlRoZSBrZXkgb2YgdGhlIGFycmF5IHNob3VsZCByZXByZXNlbnQgdGhlIGxpbmUgbnVtYmVyIGFuZCB0aGUgdmFsdWUKc2hvdWxkIHJlcHJlc2VudCB0aGUgbnVtYmVyIG9mIHdhcm5pbmdzIHRoYXQgc2hvdWxkIG9jY3VyIG9uIHRoYXQgbGluZS4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQXJyYXlfIjozOntzOjEyOiIAKgB2YWx1ZVR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e31zOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3MTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjcyOiJcUEhQX0NvZGVTbmlmZmVyXFRlc3RzXFN0YW5kYXJkc1xBYnN0cmFjdFNuaWZmVW5pdFRlc3Q6OmdldFdhcm5pbmdMaXN0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNDoiZ2V0V2FybmluZ0xpc3QiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjk6InByb3RlY3RlZCI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDU4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjIzO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDYxO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";